Pandora Ncurses-Musicplayer "cplay" On The Pandora


lomaxx

Active Member
Joined
Sep 22, 2008
Messages
747
Hello.

I am planning to get the python-based ncurses-musicplayer named "cplay" running on the pandora, because

- i am used to it to it and like it very much.
- the user-interface is lean.
- it is easy to control via keyboard.
- can be run though an ssh-shell.
- rather easy configurable for new command-line-players.

The user-interface itself seems to run perfectly thanks to Python already working on the Pandora. I copied cplay over to my SDHC-card and ran it without noticing any flaws. Still i am far from playing music through it, because it depends on small commandline-players. To make it work like i am used to it, either the players i use need porting or i need to find replacement for them. Here is my .cplayrc, which might be configured a little crappy, but works for me:

Code:
PLAYERS = [
    FrameOffsetPlayer("ogg123 -q -v -k %d %s", "\.ogg$"),
    FrameOffsetPlayer("/home/lomaxx/downloads/mpg321-0.2.12-1/mpg321 -v -q -k %d %s", "\.mp[123]$", 38.28),
    FrameOffsetPlayer("mplayer %d %s", "^http://", 38.28),
    FrameOffsetPlayer("flac123 -q %d %s", "\.flac$"),
    NoOffsetPlayer("uade123 -k 0 %s", "\.(1|10|ac1d|ast|avp|ahx|aon[8]|aam|adsc|bp[3]|bss|bd[s]|bsi|chan|cin|core|cm|crb|cust|dz|dl[n]|dh|dw|dm[12]|dlm[12]|di|digi|dsc|dns|dum|ea|emod|ems[v6]|eu|ex|fc13|fc14|fc4|fc-m|fw|fm|fred|fp|fuzz|glue|gmc|gray|hip[c]|hn|hd|hmc|hrt|ice|ims|is|is20|jam|jcb|jd|jmf|jpnd|jpold|jpo|jo|kh|ksm|lme|ma|mc|md|mco|mcr|mw|mcmd|mdat|med|med[023]|mkii|ml|mmdc|mm4|mod|mon|mok|mug[2]|np[23]|okt|osp|p40a|p40b|p41a|p4x|p50a|p60|p60a|p6a1|pap|pc|pha|pm01|pm1|pm20|pm40|pp10|pp21|pp30|pru[12]|prun[12]|psa|pt|puma|pvp|riff|rh|rho|uds|unic|s|sa|sas|scumm|sb|sc|scn|scr|sct|sdr|sg|sid[12]|smn|smus|sng|snx|spl|sfx|skt|sog|src|ss|sun|syn|synmod|s7g|tiny|tf|tfmx|thm|thx|tn|tme|tp[123]|tronic|tw|vss|wb|xann|ym|zen)$"),
    NoOffsetPlayer("aoss mikmod -q -p0 %s", "\.(fm|col)$"),
    NoOffsetPlayer("aoss modplugplay  %s", "\.(669|amf|ams|dbm|dsm|far|it|j2b|mdl|mt2|mtm|psm|ptm|s3m|stm|ult|umx|xm)$"),
    NoOffsetPlayer("aplay %s", "\.(aiff|au|cdr|wav)$"),
    NoOffsetPlayer("speexdec %s", "\.spx$"),
    NoOffsetPlayer("aoss sexypsf %s", "\.(minipsf|psf)$"),
    NoOffsetPlayer("aoss playgsf %s", "\.minigsf$"),
    NoOffsetPlayer("aoss gbsplay %s", "\.gbs$"),
    NoOffsetPlayer("aoss festalon %s", "\.nsf$"),
    NoOffsetPlayer("screensidplay.sh  %s", "\.(sid|.PSID)$"),
    NoOffsetPlayer("aoss aylet -n %s", "\.ay$"),
    NoOffsetPlayer("aoss OpenSPClite -t 4:00 -n 0:01 %s", "\.spc$"),
    NoOffsetPlayer("sc68play.sh %s", "\.sc68$|\.sndh$|\.snd$"),
    NoOffsetPlayer("uade123 -k 0 %s", "^/mnt/storage/lomaxx/audio/.*(\/dat\..*|\.dat$)"),
    NoOffsetPlayer("uade123 -k 0 %s", "(^|\/)(1|10|ac1d|ast|avp|ahx|aon[8]|aam|adsc|bp[3]|bss|bd[s]|bsi|chan|cin|core|cm|crb|cust|dz|dl[n]|dh|dw|dm[12]|dlm[12]|di|digi|dsc|dns|dum|ea|emod|ems[v6]|eu|ex|fc13|fc14|fc4|fc-m|fw|fm|fred|fp|fuzz|glue|gmc|gray|hip[c]|hn|hd|hmc|hrt|ice|ims|is|is20|jam|jcb|jd|jmf|jpnd|jpold|jpo|jo|kh|ksm|lme|ma|mc|md|mco|mcr|mw|mcmd|mdat|med|med[023]|mkii|ml|mmdc|mm4|mod|mon|mok|mug[2]|np[23]|okt|osp|p40a|p40b|p41a|p4x|p50a|p60|p60a|p6a1|pap|pc|pha|pm01|pm1|pm20|pm40|pp10|pp21|pp30|pru[12]|prun[12]|psa|pt|puma|pvp|riff|rh|rho|uds|unic|s|sa|sas|scumm|sb|sc|scn|scr|sct|sdr|sg|sid[12]|smn|smus|sng|snx|spl|sfx|skt|sog|src|ss|sun|syn|synmod|s7g|tiny|tf|tfmx|thm|thx|tn|tme|tp[123]|tronic|tw|vss|wb|xann|ym|zen)\..*")

screensidplay is a dirty-hacked bashscript of mine, which enables me to run sidplay in the background, which otherwise doesn't work.

Can someone give me some help with getting it to work? What are the chances to get the above command-line players ported to the Pandora (mplayer does already work)? Which other CLI-players could i use instead?
Unfortunately i am not very experienced in programming/compiling. I did do manual compiling of source-codes, but without tweaking anything.
 
Couldn't you use mplayer for all the file types? That should work as long as the codec pack is installed.
 
Unfortunately not, as far as i know. Most of these formats are too exotic. They come in a format that contains the notes and the instruments or instrument-settings for the soundchip they are intended to be played on. So the player has to put stuff together again and for some formats even has to emulate the hardware (like e.g. the C64-musicchip SID). Some formats are supported by gstreamer as far as i know, but still that leaves me with some missing features.
When i use the CMD-players, these output some information that cplay is able to read out and show in it's userinterface. Additionaly for example sidplay has the feature to use the songlength-database of HVSC (a huge SID-music-collection). Without this feature a single SID-song just keeps on playing without advancing to the next song in the playlist.
 
Lomaxx said:
Hello.

I am planning to get the python-based ncurses-musicplayer named "cplay" running on the pandora, because

- i am used to it to it and like it very much.
- the user-interface is lean.
- it is easy to control via keyboard.
- can be run though an ssh-shell.
- rather easy configurable for new command-line-players.

The user-interface itself seems to run perfectly thanks to Python already working on the Pandora. I copied cplay over to my SDHC-card and ran it without noticing any flaws. Still i am far from playing music through it, because it depends on small commandline-players. To make it work like i am used to it, either the players i use need porting or i need to find replacement for them. Here is my .cplayrc, which might be configured a little crappy, but works for me:

Code:
PLAYERS = [
    FrameOffsetPlayer("ogg123 -q -v -k %d %s", "\.ogg$"),
    FrameOffsetPlayer("/home/lomaxx/downloads/mpg321-0.2.12-1/mpg321 -v -q -k %d %s", "\.mp[123]$", 38.28),
    FrameOffsetPlayer("mplayer %d %s", "^http://", 38.28),
    FrameOffsetPlayer("flac123 -q %d %s", "\.flac$"),
    NoOffsetPlayer("uade123 -k 0 %s", "\.(1|10|ac1d|ast|avp|ahx|aon[8]|aam|adsc|bp[3]|bss|bd[s]|bsi|chan|cin|core|cm|crb|cust|dz|dl[n]|dh|dw|dm[12]|dlm[12]|di|digi|dsc|dns|dum|ea|emod|ems[v6]|eu|ex|fc13|fc14|fc4|fc-m|fw|fm|fred|fp|fuzz|glue|gmc|gray|hip[c]|hn|hd|hmc|hrt|ice|ims|is|is20|jam|jcb|jd|jmf|jpnd|jpold|jpo|jo|kh|ksm|lme|ma|mc|md|mco|mcr|mw|mcmd|mdat|med|med[023]|mkii|ml|mmdc|mm4|mod|mon|mok|mug[2]|np[23]|okt|osp|p40a|p40b|p41a|p4x|p50a|p60|p60a|p6a1|pap|pc|pha|pm01|pm1|pm20|pm40|pp10|pp21|pp30|pru[12]|prun[12]|psa|pt|puma|pvp|riff|rh|rho|uds|unic|s|sa|sas|scumm|sb|sc|scn|scr|sct|sdr|sg|sid[12]|smn|smus|sng|snx|spl|sfx|skt|sog|src|ss|sun|syn|synmod|s7g|tiny|tf|tfmx|thm|thx|tn|tme|tp[123]|tronic|tw|vss|wb|xann|ym|zen)$"),
    NoOffsetPlayer("aoss mikmod -q -p0 %s", "\.(fm|col)$"),
    NoOffsetPlayer("aoss modplugplay  %s", "\.(669|amf|ams|dbm|dsm|far|it|j2b|mdl|mt2|mtm|psm|ptm|s3m|stm|ult|umx|xm)$"),
    NoOffsetPlayer("aplay %s", "\.(aiff|au|cdr|wav)$"),
    NoOffsetPlayer("speexdec %s", "\.spx$"),
    NoOffsetPlayer("aoss sexypsf %s", "\.(minipsf|psf)$"),
    NoOffsetPlayer("aoss playgsf %s", "\.minigsf$"),
    NoOffsetPlayer("aoss gbsplay %s", "\.gbs$"),
    NoOffsetPlayer("aoss festalon %s", "\.nsf$"),
    NoOffsetPlayer("screensidplay.sh  %s", "\.(sid|.PSID)$"),
    NoOffsetPlayer("aoss aylet -n %s", "\.ay$"),
    NoOffsetPlayer("aoss OpenSPClite -t 4:00 -n 0:01 %s", "\.spc$"),
    NoOffsetPlayer("sc68play.sh %s", "\.sc68$|\.sndh$|\.snd$"),
    NoOffsetPlayer("uade123 -k 0 %s", "^/mnt/storage/lomaxx/audio/.*(\/dat\..*|\.dat$)"),
    NoOffsetPlayer("uade123 -k 0 %s", "(^|\/)(1|10|ac1d|ast|avp|ahx|aon[8]|aam|adsc|bp[3]|bss|bd[s]|bsi|chan|cin|core|cm|crb|cust|dz|dl[n]|dh|dw|dm[12]|dlm[12]|di|digi|dsc|dns|dum|ea|emod|ems[v6]|eu|ex|fc13|fc14|fc4|fc-m|fw|fm|fred|fp|fuzz|glue|gmc|gray|hip[c]|hn|hd|hmc|hrt|ice|ims|is|is20|jam|jcb|jd|jmf|jpnd|jpold|jpo|jo|kh|ksm|lme|ma|mc|md|mco|mcr|mw|mcmd|mdat|med|med[023]|mkii|ml|mmdc|mm4|mod|mon|mok|mug[2]|np[23]|okt|osp|p40a|p40b|p41a|p4x|p50a|p60|p60a|p6a1|pap|pc|pha|pm01|pm1|pm20|pm40|pp10|pp21|pp30|pru[12]|prun[12]|psa|pt|puma|pvp|riff|rh|rho|uds|unic|s|sa|sas|scumm|sb|sc|scn|scr|sct|sdr|sg|sid[12]|smn|smus|sng|snx|spl|sfx|skt|sog|src|ss|sun|syn|synmod|s7g|tiny|tf|tfmx|thm|thx|tn|tme|tp[123]|tronic|tw|vss|wb|xann|ym|zen)\..*")

screensidplay is a dirty-hacked bashscript of mine, which enables me to run sidplay in the background, which otherwise doesn't work.

Can someone give me some help with getting it to work? What are the chances to get the above command-line players ported to the Pandora (mplayer does already work)? Which oder CLI-players could i use instead?
Unfortunately i am not very experienced in programming/compiling. I did do manual compiling of source-codes, but without tweaking anything.


I am happy to see that this works on the pandora. I already tried to get cplay running on the pandora but I got trouble to get ncurses to work on it.
I am already used to cplay on my PC and have an addition for your list of cli players.
It is the 'test' aplication of the vgmstream libary. It is written in C and could compiled more or less easily for the pandora.
You can throw the most obscure game music stream files at it and it will output a wave file that can be piped to mplayer.

SVN source can be found here:
http://sourceforge.net/projects/vgmstream/

Which version of cplay do you use to get it to run on the pandora?? I have seen several forks of it on the internet and had trouble to get this to work
http://github.com/holizz/cplay

I hope that this could become a good port for the pandora since other music players i have seen for the pandora seem heavily rely on GTK and other stuff so this could be a good alternative as cplay is a good interface for several music players.

thank you for your attention.
 
Last edited by a moderator:
Sorry for the late answer. I am investigating in so many things, trying to configure so many different applications, that i nearly missed your answer.

First of all: Thank you for the information about the vgmstream-library. That looks interesting.

Now back to cplay. If i remember correctly then i succeeded in running cplay through two different ways. One was by simply copying cplay from my gentoo-system over to the pandora and running it. Oh my, i can't even remember if i had to install ncurses myself or if it already was. Well - in any case - i just did a "opkg list-installed" on my pandora and these are the related packages that are installed:

libncursesw5 - 5.7+20100501-r12.5
ncurses - 5.4-r19.5
ncurses-dev - 5.7+20100501-r12.5
ncurses-tools - 5.4-r19.5
python-curses - 2.6.2-ml8.0.5

The front-end itself is starting and running fine. Although i didn't test all features. Just of course the players are missing. My package-manager ("emerge") pulls the package from http://mirrors.xservers.ro/gentoo/distfiles/cplay-1.49.tar.gz.

The second way i tried was to run the "extend utils" for pandora, install a debian-arm-system and chroot to it. In that i was able to simply use the cplay-package in there and also install mpg321 (i think it was 321 and not 123), aylet, sidplay2 and and something else (was it ogg123 or flac123, uhn, no idea). I can't verify this anymore since i deleted the debian-chroot-environment. I will probably try this again in near future.

I myself manage to port - well, let's better call it "compile", since i didn't have to change anything - gbsplay. Unfortunately i had less luck witch playgsf, sc68 and uade. I think uade will be the hardest part. But on the other hand i bet someone with more knowledge than me will try that since there are probably many Amiga-fans in the Pandora-scene.
 
Back
Top