A LAN-based Democratic Jukebox? 27
"I'm trying to find the right combination of hardware and software to accomplish this. What I'm looking for is a system where we can bring up a page on the local LAN, and punch in a username, password and a rating for the song that is playing. Over time, the songs that have been rated higher by the people around the area will get played while the ones rated down won't get played that often. Also, if all of us say that a song -really- sucks, we can get it to skip the song.
While hardware is a matter of choice, I'd appreciate any experience people have had with different soundcards and high quality output. Also, all of us can code decent C, one of us has decent C++ skills and I can throw together semi-basic SQL queries. Is there any software out there that will fit the needs for this situation or at least provide an open source building block for us to go from?"
MP3Linux (Score:1)
Once I get home from work I'll try to dig up the harddrive I had it installed on. I axed the project since I didnt have any drives larger than a gig to deticate to a jukebox machine.
Also, I think they have something like this over at ID Software. jukebox.idsoftware.com if my brain serves me correctly.
on sound cards... (Score:1)
Buy a good reciever, speakers and subwoofer.
Wish I knew even a little to help with the rest of your project, but I'm just a college student who failed intermediate java. I wouldn't be much of a help in anything there.
I'd love to hear how this project turns out. Feel free to e-mail me if this ever gets off the ground!
-NeoTomba
Re:on sound cards... (Score:1)
FYI (Score:1)
Re:FYI (Score:1)
Re:FYI (Score:1)
Re:on sound cards... (Score:2)
Re:on sound cards... (Score:2, Interesting)
I still don't know why soundcards still exist in their current form. Computer cases are horrible environments, full of noise and static.
Motherboards manufacturers should just agree on a standard digital header for audio and then Creative/etc would just make external Digital-Analog converters.
Of course you CAN already do this with USB audio and with soundcards with digital output, but why even bother with having a full blown soundcard in your PC when a good DSP plus an external converter will do a much better job?
One Solution (Score:3, Insightful)
Here is my thought.
You have this PC machine with the good speakers/etc playing the songs (I'm assuming that this is powering speakers that everyone can hear, if this is shoutcasting or streaming somehow, that's a different story, but not TOO much worse).
On that machine make sure you have a web server going.
Now, write a small script that will look through a directory of mp3s, randomly pick one and play it. As it does this, it 'marks' that one as being played (for example, writes it's name into a file 'nowplaying.txt').
Ok, now write a little CGI/PHP/etc page on your website. Make it prompt for a username/password, and then display the song that is playing (by reading nowplaying.txt), and ask for a rating.
Store these ratings in a big file, let's say 'ratings.txt'. This file can have 1 line per song, and have a list of ratings after it. So if you have 5 people, and you only have 2 ratings (0=hate it, 1=like it) it might look like this:
Stairway_to_Heaven.mp3 0 1 0 1 1
Ok, So actually what you would need to do is autogenerate this ratings.txt file in the first place with ALL of the filenames in it, but no ratings yet. Now, instead of making your random player script actually look at the directory of MP3s, have it each time load this ratings file, and 'randomly' pick from it. In this case, if you have 5 people, and a hate it/love it system. You could simply have any song that has 3 hate its, never be played. Beyond that, give any song as many 'chances' as it has 'love its'. So a song that is 4 loves, 1 hate, as twice as much chance to be played as a song with 2 loves, 2 hates, which has twice as much chance to be played as a song with 1 love, 0 hates. etc.
Of course, this is the simple version. You could easily have a more complicated rating system and therefore a more complicated picking system.
But the basic gist is:
1) A random picker script that loops forever, reading ratings.txt (or a DB), applying rules to pick the song to play, and playing.
2) A CGI that asks for input on the song being played via reading nowplaying.txt, and updates ratings.txt
Re:One Solution (Score:1, Interesting)
<song filename="Stairway_to_Heaven.ogg">
<user name="tom">awful</user>
<user name="dick">awful</user>
<user name="harry">awful</user>
</song>
Echo (Score:3, Informative)
On the note of hardware, I would use an SB Live. I Have one myself and love it. Greatest Sound Card I have ever owned.
"The Ultimate Home Jukebox" (Score:1)
The authors basically took their 300+ CDs, ripped them to MP3 (and created a filing/naming convention for them all), stored them on a server with a web based interface, and hooked the whole thing up to their home lan and stereo. It's exactly the info you are looking for.
The article is available online from the DDJ store for $5. http://www.ddj.com/store/ and follow the Dr. Dobbs Online Library link.
Jukebox Program (Score:1)
http://www.globecom.se/jukebox/
It can do ripping, playing, queueing, and many other things all with a web interface. It stores MP3 information in a MySQL database. If voting is not currently implememted, the structure of this app allows easy addition of the feature.
Re:Jukebox Program (Score:1)
It features random play, operates headless, song voting, different users and playlists.
Playlists are the best feature on this jukebox prog, here is why from the website: [globecom.se]
Re:Jukebox Program (Score:1)
Talez
some things to consider (Score:1)
all the songs a rated already so how does the new person's choice make much difference
> tastes change
that new limp biskit tune was popular last month but now everyone is sick of hearing it. in three months though ppl will say "yeah, that ch00n r0x0r5" when they hear it (or at least they would in my irc channel
personally I'd go for a web server interface and mpg123 [mpg123.de] as the engine and cobble together some scripts
tbh so long as there aren't loads of tunes ppl hate then your probably just as well off running it in shuffle mode and tweak the playlist as you go along.
if you use a webserver for your mp3's then users can use xmms and winamp to play a tune that's not on the playlist
Obsequieum (Score:1)
Tunez (Score:2, Informative)
Gee, how hard can typing in "mp3 vote" in freshmeat really be.
mserv (Score:1)
Re:mserv (Score:3, Informative)
It already exists (Score:2)
The reason I haven't used it in at least six months is because my sound card sucks, so I'll have to disagree with the person who recommended the Creative Ensoniq. This sound card sucks. The sound is filled with static and crackling even with a very short patch cable.
I upgraded my motherboard and CPU and case. The new one has on-board sound that Mandrake 8.1 can't detect so I reused the Creative Ensoniq. I can veryify that this sound card sucks in two different machines under Mandrake. (It sounds fine under Windows)
Re:It already exists (Score:1)
I have the opposite problem with my Laptop's ESS Solo. It sounds just awful under Windows, like the quality of a 64Kbps to a bad 128Kbps MP3 no matter what the audio file quality it is. However under Linux it sounds great, the audio sounds the same as if it were on CD.
Both tests done using Winamp (under Wine in Linux) just so we know the player isn't what is causing the bad sound.
Re:It already exists (Score:1)
DRACO-
Music Jukebox (Score:1)
(enters command)
thorin:/music$ find . -name '*.mp3' -o -name '*.ogg' | wc -l
12648
thorin:/music$
...mmm, alot of songs (900+ albums, yes I own all the CDs), organized by alphabetically by Artist/Album/Song. I use Edna [sourceforge.net](v0.3?) as the music web server to serve the music (hacked slightly to support
Any user at a client computer on the LAN can use their preferred browser to stream whatever music (album/playlist/song) they want to their local desktop. Windows clients currently are using Winamp, Linux clients are using XMMS, but any client with support for streaming mp3 and ogg files should work.
For MP3s I use ID3V2 tags because they work with streaming. The tags on the
On the server itself, I use Konqueror pointed at the local Edna web server to pick playlists handled by XMMS via an Ensoniq sound card to the main stereo system. MP3s are encoded at a relatively high quality using LAME [sulaco.org] 3.89 in VBR mode with an average bit rate running about 190Kb/s. I'm currently re-encoding the music from the original sources into the ogg/Vorbis" [xiph.org] format, using an average bit rate of 192Kb/s. I use GRIP [nostatic.org] to rip my CDs with (with full paranoia), and normalize [columbia.edu] to even out the volume variations of songs so that playlists with songs taken from different albums aren't at radically different volumes. There is a volume normalizing plugin for XMMS that adjusts the level in real time, but I didn't like the way it worked. The volume level of the next song was significantly different (louder) than the previous song, it could take a half second or so to adjust itself. Pre-normalizing (with conservative values) seems to work much better. The music currently occupies about 70GB of disk space.
BTW, my music server is what I use to rip/encode all of the new music, run setiathome, and function as a SAMBA file server/domain controller. It will do all that while streaming music to several clients as well as play through the local sound card without skipping. I discovered that if I used XMMS to read the MP3/OGG files directly from disk (on the server), I had problems with skipping when the server was heavily loaded, even with the XMMS buffers set to very high values, but clients on the LAN would never skip. Streaming to XMMS on the server solved that problem without resorting to the low latency patches for the kernel. On the Linux clients I setting my browser to launch xmms with the -e option which causes new songs or playlists selected with the browser to be appended to the current xmms playlist.
It already exists (Score:1)
It's called Mserv [mserv.org]. Works great, has a web interface, if you want it, or you can use telnet. You can also filter which songs the weighted random play will consider by date, genere, or whatever else is in the ID3 tag.
-Nathan
check out fatfreeradio.net (Score:1)
You tune into the stream, and pop up window tells you what song is playing. In this window, you have a chance to vote on whether or not you like the song. Songs that get voted on more often get played in the rotation more often. I suppose the major missing part is to generate the playlist dynamically.
Sadly, it looks like they are closing down, however. Should be around for another month at least. According to the site, they use Icecast, PHP and apache.