#221677 - 06/07/2002 21:19
Another replacement player client
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
Hey everyone,
I've also written a replacement player that runs on the Rio. It is compatible with the Rio supplied server software (should be compatible with JReceiver etc but I haven't tried it with that yet) and also supports Shoutcast streams. Currently the shoutcast stream addresses are loaded from a streams.cfg file in the /etc directory so you can't enter stream addresses at run time. I plan to include a web interface soon which will make it easier to change the list of streams while the player is running. Anyway more information and all the files are available here:
http://www.pier13.com/rioplay/
|
Top
|
|
|
|
#221679 - 07/07/2002 08:20
Re: Another replacement player client
[Re: dave]
|
addict
Registered: 10/01/2001
Posts: 630
Loc: Windsor, Ontario Canada
|
Thank you Dave,
The ability to stream from an 'net broadcast was exactly what I was looking for. Looking forward to your next implementation.
John
_________________________
01001010 01101111 01101000 01101110
|
Top
|
|
|
|
#221680 - 07/07/2002 16:46
Re: Another replacement player client
[Re: tfabris]
|
addict
Registered: 11/11/2001
Posts: 552
Loc: Houston, TX
|
Why replace perfection? I'd rather have an interface for the receiver that behaves exactly like empeg car....Along with the ability to play streams directly.
_________________________
--Ben 78GB MkIIa, Dead tuner.
|
Top
|
|
|
|
#221681 - 08/07/2002 07:52
Re: Another replacement player client
[Re: BAKup]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
In reply to:
I'd rather have an interface for the receiver that behaves exactly like empeg car
Unfortunately I don't own an empeg car or Rio Car... What specifically about that interface do you like so much? I was under the impression that the empeg car and the Rio Receiver had basically the same player software in them (well, without all those fancy animations and such...)
|
Top
|
|
|
|
#221682 - 08/07/2002 08:55
Re: Another replacement player client
[Re: dave]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
Although the Rio Receiver and the Rio Car share some of the same "under the hood" code, the user interfaces and feature-sets are completely different.
One isn't necessarily better than the other in terms of UI design, but the car player has a greatly expanded set of features.
|
Top
|
|
|
|
#221683 - 08/07/2002 20:15
Re: Another replacement player client
[Re: dave]
|
addict
Registered: 11/11/2001
Posts: 552
Loc: Houston, TX
|
The feature set that the Empeg car has that I just totaly love is the fact you can adjust the playlist while it's playing. I'm so used to the buttons on the remote that lets you swap out the next songs with tracks that are like the current track(genre, year, album, artist), that I reach for the remote for the receiver to do the same thing, and then find out it doesn't work
_________________________
--Ben 78GB MkIIa, Dead tuner.
|
Top
|
|
|
|
#221684 - 08/07/2002 20:21
Re: Another replacement player client
[Re: dave]
|
stranger
Registered: 08/07/2002
Posts: 18
|
Hi.... this sounds like just what I have been looking for.
I downloaded receiver.arf and dropped in place of the one that came with the rio software and now my rio won't boot. It finds the music server, but then it hangs with the message "Please wait". Have any suggestions on how to debug this?
I am running Windows XP.
Thanks in advance for any help.
|
Top
|
|
|
|
#221685 - 08/07/2002 20:26
Re: Another replacement player client
[Re: John3914]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
Try re-downloading the "receiver.arf" file with a download-manager program such as GetRight. My guess is that the Pier13.com server doesn't properly send the file as a binary, and therefore your web browser downloaded it as ASCII.
This is just a guess, though.
If that turns out to be the case, may I suggest to the author that he zip his binary files on the server to prevent the problem in the future.
|
Top
|
|
|
|
#221686 - 08/07/2002 20:35
Re: Another replacement player client
[Re: tfabris]
|
stranger
Registered: 08/07/2002
Posts: 18
|
Good idea... but no joy. Thanks anyway. Got any other ideas?
|
Top
|
|
|
|
#221687 - 09/07/2002 05:08
Re: Another replacement player client
[Re: John3914]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
Are you by chance using HPNA instead of Ethernet? I didn't include the HPNA driver in my receiver.arf distribution because I'm not sure if I'm allowed to. I'll look into this a little more. Maybe that arf patch program that's floating around would be useful here.
|
Top
|
|
|
|
#221688 - 09/07/2002 15:09
Re: Another replacement player client
[Re: dave]
|
stranger
Registered: 08/07/2002
Posts: 18
|
Yes, I am using HPNA instead of Ethernet. If you come up with anything I would be grateful.
Thanks!
|
Top
|
|
|
|
#221689 - 10/07/2002 05:47
Re: Another replacement player client
[Re: John3914]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
OK I've got something for you to try. First, download the GNU tar utility for MS-DOS from ftp://ftp.gnu.org/gnu/tar/. Rename that file to tar.exe and put it in your path somewhere (like your windows directory). Next, make a directory c:\riotemp. Copy the original receiver.arf into this directory. In an MS-DOS window, cd into that directory and run the command:
tar -xvf receiver.arf
which will untar the original. You'll get some errors when untarring it but don't worry about them. Now delete the receiver.arf file. Then download a copy of my receiver.arf file and place it into this c:\riotemp directory. In your MS-DOS window, run these two commands:
tar --delete -vf receiver.arf ./il-binary.o ./zImage
tar -rvf receiver.arf ./il-binary.o ./zImage
This should delete my zImage and il-binary.o file and replace it with the original versions, respectively.
That should leave you with a receiver.arf that will work with HPNA. As I don't have HPNA set up, I really can't test this, but I don't see why it won't work. Let me know how it works out!
|
Top
|
|
|
|
#221690 - 10/07/2002 06:33
Re: Another replacement player client
[Re: dave]
|
new poster
Registered: 30/08/2000
Posts: 35
|
Dave,
This looks excellent ! However I'm having a few problems.
The Rio boots, I get the "RioPlay" splash screen, I hit menu and it gives me a menu of (from memory) "Select music" and "About player". At this point the rotatary control/select button doesn't function, all I can do is hit menu at which point it then looks like its trying to play a track but it has no track information at all.
At no point do I see any information to suggest its been able to pull any info back from jreceiver.
Have you any thoughts ?
Thanks
Dobbin.
|
Top
|
|
|
|
#221691 - 10/07/2002 06:49
Re: Another replacement player client
[Re: Dobbin]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
In reply to:
At this point the rotatary control/select button doesn't function, all I can do is hit menu at which point it then looks like its trying to play a track but it has no track information at all.
Have you tried the remote? I looked at the code and realized that the way I have it set up now, the rotary knob controls volume at all times, even when a menu is active. I guess I need to change it so that when a menu is active, the rotary knob scrolls through the menu instead. The up, down and enter buttons on the remote should work just fine though.
|
Top
|
|
|
|
#221692 - 10/07/2002 16:46
Re: Another replacement player client
[Re: dave]
|
stranger
Registered: 08/07/2002
Posts: 18
|
It works! Thanks so much. I got stuck on the menu using the volume knob, but I saw your post and sure enough, the remote works and I have music streaming from SHOUTcast.
Using your tar instructions I figured out how to replace the streams.cfg file so I am ALMOST all set. The thing I am trying to figure out now is how to stream from my PC which I have been using as a SHOUTcast server. I can access it from anywhere on my home network my going to http://192.168.0.3:8000/listen.pls
How do I enter this in the streams file to make Rioplay recognize it? I have gotten as far as getting the title to appear, but I haven't been successful in my attempts at getting the http address correctly. Also, do I need to worry about the differences in how Linux and Windows handle <eol> and <CR> characters?
Thanks again for the help. Your program is very cool.
P.S. I am also looking forward to the version where the volume knob works the menu. :-)
|
Top
|
|
|
|
#221693 - 10/07/2002 18:42
Re: Another replacement player client
[Re: John3914]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
Great to hear that it's working for you! As for your shoutcast stream on your server, I think the problem is you need to put the contents of the listen.pls file into the streams.cfg file. The listen.pls file should contain a list of one or more URLs which are the actual stream URLs.
Regarding the streams.cfg file, it probably won't work if it's generated on Windows due to the extra <CR> characters. I'll try to fix that along with the rotary knob menu selection tonight.
|
Top
|
|
|
|
#221694 - 11/07/2002 00:30
Re: Another replacement player client
[Re: dave]
|
carpal tunnel
Registered: 10/06/1999
Posts: 5916
Loc: Wivenhoe, Essex, UK
|
Can your player play back MP2 files as well as MP3s ?
If so I think I'll be making use of it as the Rio Receiver software cannot play MP2s.
_________________________
Remind me to change my signature to something more interesting someday
|
Top
|
|
|
|
#221695 - 11/07/2002 04:58
Re: Another replacement player client
[Re: andy]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
In reply to:
Can your player play back MP2 files as well as MP3s ?
I've never tried it myself but my player uses the MAD mp3 decoding library and according to their site it should be supported. However depending on what server you're using you may have to trick it into indexing the mp2 file by renaming it to mp3.
|
Top
|
|
|
|
#221696 - 11/07/2002 05:19
Re: Another replacement player client
[Re: John3914]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
OK I placed version 0.24 up on my site this morning. This version supports navigating the menus with the knob on the front of the receiver and supports DOS style text files (as well as Unix) for the streams.cfg file.
http://www.pier13.com/rioplay/
|
Top
|
|
|
|
#221697 - 11/07/2002 06:55
Re: Another replacement player client
[Re: dave]
|
stranger
Registered: 08/07/2002
Posts: 18
|
Wow.. quick work! I will try it out tonight. I got the entries for my SHOUTcast server right last night and it works great.
Thanks again.
|
Top
|
|
|
|
#221698 - 11/07/2002 12:08
Re: Another replacement player client
[Re: John3914]
|
stranger
Registered: 08/07/2002
Posts: 18
|
I got a few minutes to try this out today. I added the HPNA drivers, my SHOUTcast addresses to the new streams.cfg and it worked first time. This is exactly what I have been looking for. I had figured out how to get it to work with JReceiver, but it was pretty clunky and way too much java and other overhead.
Thanks for all your efforts!!
|
Top
|
|
|
|
#221699 - 11/07/2002 13:46
Re: Another replacement player client
[Re: John3914]
|
newbie
Registered: 06/07/2002
Posts: 30
|
Ouch.
What I'd hope was apparent to all but the casual observer is that what is being attempted with the development of jrec is to be far more than a host to the Rio.
Those of modest needs who only require a basic host should definitely stick with the provided Windows software. If direct streaming capabilities can then be provided from the Rio, so much the better.
--Reed
|
Top
|
|
|
|
#221700 - 11/07/2002 16:40
Re: Another replacement player client
[Re: dave]
|
carpal tunnel
Registered: 10/06/1999
Posts: 5916
Loc: Wivenhoe, Essex, UK
|
I don't actually want to play back MP2 files, I want to play back an MP2 stream. The reason for this is that my Wavefinder DAB digital radio tuner can be made to output a MP2 stream via HTTP.
Well the good news is that it works, sort of.
There are two problems, firstly the audio is choppy, as if frames are missing. However this problem appears to effect all the streams I try (including the default ones in streams.cfg) so I suspect that it may be a general problem with my setup. The Receiver is connected to my DSL line via a wireless network, I will try plugging it in direct over the weekend to see if that helps.
The other problem is that the stream plays back slightly slowly (you can notice that the pitch is lower than it should be) I think this may be due to the sample rate, the MP2 stream is a 48khz stream. Anyone know if there is anything that can be done about this ?
P.S. Should I be pointing the player at the stream itself, or the .pls file with the details in ?
_________________________
Remind me to change my signature to something more interesting someday
|
Top
|
|
|
|
#221701 - 11/07/2002 17:13
Re: Another replacement player client
[Re: andy]
|
new poster
Registered: 11/05/2000
Posts: 65
Loc: San Diego, CA
|
In reply to:
The other problem is that the stream plays back slightly slowly (you can notice that the pitch is lower than it should be) I think this may be due to the sample rate, the MP2 stream is a 48khz stream. Anyone know if there is anything that can be done about this ?
Yes, the sample rate is the problem. The Rio hardware is locked at 44.1KHz. I'm sure it's possible to downsample, but I'm not enough of a physics person to know off hand how to do it. Anybody have any suggestions? Can we just drop every nth frame?
In reply to:
P.S. Should I be pointing the player at the stream itself, or the .pls file with the details in ?
Right now you need to point the player at the stream itself. I'm looking into adding code to handle the .pls files but it's not there yet. Eventually I'd like to have a better way of entering streams. I could make a web based interface to the receiver, but the stream URLs would not be persistent (as far as I can tell, the built in NFS server in the Rio software is read-only). Otherwise maybe I could write a supplemental server program that just serves up the stream addresses, but that seems overkill. I also considered hiding the stream URLs in a file that looked like an MP3, but that seems like a hack. Anyone have a good idea for this?
|
Top
|
|
|
|
#221702 - 11/07/2002 17:16
Re: Another replacement player client
[Re: dave]
|
carpal tunnel
Registered: 10/06/1999
Posts: 5916
Loc: Wivenhoe, Essex, UK
|
Thanks Dave, great work on the player by the way.
_________________________
Remind me to change my signature to something more interesting someday
|
Top
|
|
|
|
#221703 - 11/07/2002 17:28
Re: Another replacement player client
[Re: dave]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
Sample rate conversion is a bit of a black art. To do it well requires a certain amount of attention from code in the CPU to prevent severe aliasing artifacts. Software packages which do the best job of it are patented, if I recall correctly.
|
Top
|
|
|
|
#221704 - 11/07/2002 17:34
Re: Another replacement player client
[Re: tfabris]
|
carpal tunnel
Registered: 10/06/1999
Posts: 5916
Loc: Wivenhoe, Essex, UK
|
Presumably the Rio Receiver and Rio Car code does the sample rate conversion in the player executable (I have not seen anything in the kernel to do with sample rate conversion) ?
_________________________
Remind me to change my signature to something more interesting someday
|
Top
|
|
|
|
#221705 - 11/07/2002 17:42
Re: Another replacement player client
[Re: andy]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
Yes, but as a discussion on the Car Player BBS recently brought up, they don't do it particularly well. It's best to just feed them a proper 44khz file if you want it to sound good.
|
Top
|
|
|
|
#221706 - 11/07/2002 17:53
Re: Another replacement player client
[Re: tfabris]
|
carpal tunnel
Registered: 10/06/1999
Posts: 5916
Loc: Wivenhoe, Essex, UK
|
That isn't an option in this case. The MP2 data in question is getting stream raw out of my DAB digital radio tuner, the native format is 48khz MP2.
I have been digging through the mad source code. There is actually some resampling code in there. It is in resample.c and uses linear interpolation.
However, it appears that the resampling code is only called by the code in player.c and not by the main library. I don't suppose that someone could transplant in into Dave's player code ?
_________________________
Remind me to change my signature to something more interesting someday
|
Top
|
|
|
|
|
|