Release DeaDBeeF


Tried it in a quick test with the same audio-files as before. No issues so far. Although my personal opinion is to better stick to a less optimized version if the performance-gain is not noticeable. But as long as we do not experience problems we can try out the latest version. Thanks for the update.
 
In fact, I recompiled DeaDBeeF and all Plugins as part as a Test Scenario for the upcoming build 07 of the Code::Blocks PND. Once compiled and tested, well, why not release it :p


Thanks for testing.
 
Last edited by a moderator:
Thanks for building DeaDBeeF!


I found a problem: I cannot play internet radio streams (for example http://ca.ah.fm:9000). Afaik, streams need the vfs_curl plugin. pndrun_deadbeef.out shows that it fails to load:



Code:
loading plugin /mnt/utmp/deadbeef/lib/deadbeef/vfs_curl.so

dlopen error: libgnutls.so.28: cannot open shared object file: No such file or directory

trying /mnt/utmp/deadbeef/lib/deadbeef/vfs_curl.fallback.so...



I just flashed my pandora to the latest firmware + codecs. It has libgnutls.so.26. If I symlink that one to libgnutls.so.28, I get another missing library:



Code:
dlopen error: libhogweed.so.2: cannot open shared object file: No such file or directory

Maybe there are more missing: ldd can show this.


Am I missing something, or can you include these libraries in the pnd?
 
hum, yes, you are right, I have to check libs used by plugins. I only checked the lib used by deadbeef itself.


Time to repackage I think,
 
Ok, I added a bunch of lib to the DeaDBeeF PND. It's bigger, but all should run now. It tried Internet Streaming and it works (but I always have my dev PND running, so all libs are always available)... Uploading to the repo.
 
New build on the repo. Just a repack...


Build 06

  • Added missing libs, so Internet Radio Streaming works now (maybe some other plugins also).
 
Thanks! Streaming works fine! There seems to be a problem using the alsa output (worked with the previous PND):



Code:
selected output plugin: ALSA output plugin

ALSA lib conf.c:3700:(snd_config_update_r) Cannot access file /mnt/utmp/codeblocks/usr/share/alsa/alsa.conf

ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default

could not open audio device (No such file or directory)

ALSA lib conf.c:3700:(snd_config_update_r) Cannot access file /mnt/utmp/codeblocks/usr/share/alsa/alsa.conf

ALSA lib conf.c:3700:(snd_config_update_r) Cannot access file /mnt/utmp/codeblocks/usr/share/alsa/alsa.conf

ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default

could not open audio device (No such file or directory)

ALSA lib conf.c:3700:(snd_config_update_r) Cannot access file /mnt/utmp/codeblocks/usr/share/alsa/alsa.conf

ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default

could not open audio device (No such file or directory)

streamer: failed to start playback (start track)


It works fine with OSS ouput, so I am happy :)
 
New version on the repo, I hopefully fixed everything now !


Build 07

  • Made sure the libasound.so used (by the Alsa pugin) is the firmware one
 
Pokeparadox asked if it is possible to use Left & Right Shoulder to Go to Prev / Next Song. I looked at the "global hotkey plugin", sure it was the answer, but, no. It doesn't work.


In fact, this plugin use the XGrabKey function to, well, grab the key. Left & Right Shoulder buttons are in fact Shift_R & Control_R (in X11 dialect), but I dind't found how to uses "modifier" key alone (and only the _R, not the _L). Does someone already had this kind of problem ? Any suggestion ?
 
Last edited by a moderator:
Pokeparadox asked if it is possible to use Left & Right Shoulder to Go to Prev / Next Song. I looked at the "global hotkey plugin", sure it was the answer, but, no. It doesn't work.


In fact, this plugin use the XGrabKey function to, well, grab the key. Left & Right Shoulder buttons are in fact Shift_R & Control_R (in X11 dialect), but I dind't found how to uses "modifier" key alone (and only the _R, not the _L). Does someone already had this kind of problem ? Any suggestion ?
create a file with the following text called musiccontrol or something like that:



Code:
keycode 105=b

keycode 62=z

and then create a file named defaultcontrol with



Code:
keycode 105=Control_R

keycode 62=Shift_R

then type xmodmap musiccontrol to get controls that work in deadbeef and audacious. When you are done, type xmodmap defaultcontrol to switch back
 
That is a simple way. But I cannot package this I a suppose the modification is system wide.


But that can work for now, until a way that can work without altering other apps is found !


Good one apersonthinks :)
 
I wonder if it could be made to work with one of those bluetooth remote thingies?
 
Sorry for the long post. I was experimenting while writing and made it further than i thought. Thus i decided to write it all down for someone who wants to try it out.


About the bluetooth remote: deadbeef comes with some command-line-parameters to control itself:



Code:
$ deadbeef --help

starting deadbeef 0.5.1

Usage: deadbeef [options] [file(s)]

Options:

--help or -h     Print help (this message) and exit

--quit             Quit player

--version         Print version info and exit

--play             Start playback

--stop             Stop playback

--pause         Pause playback

--toggle-pause     Toggle pause

--play-pause     Start playback if stopped, toggle pause otherwise

--next             Next song in playlist

--prev             Previous song in playlist

--random         Random song in playlist

--queue         Append file(s) to existing playlist

--nowplaying FMT Print formatted track name to stdout

                     FMT %-syntax: [a]rtist, [t]itle, al[b]um,

                     [l]ength, track[n]umber, [y]ear, [c]omment,

                     copy[r]ight, [e]lapsed

                     e.g.: --nowplaying "%a - %t" should print "artist - title"

                     for more info, see http://sourceforge.net/apps/mediawiki/deadbeef/index.php?title=Title_Formatting


I have no experience with such remotes, but if they are nothing else but HID-devices, then it should be relative easy to use something like xbindkeys to execute these commands when the remote-buttons are being triggered.


The same method should work for the shoulder-buttons. Alas the xfce-shortkey-system is broken since the very first day. In theory you can configure them in Start->Settings->Desktop->"Window Manager" (subsection "keyboard") and Start->Settings->Desktop->"Keyboard". You will need Alt+F7 then cursor-keys to move the windows around that are too large. And after that you will notice that clearing/setting keys does not work at all on the first try. At some point it worked for me one single time (per key) while fiddling around, but was broken afterwards. And even if it would work, you'd set them for the whole system even if deadbeef is not running, which is probably not what you want.


On the old PandoraOS I compiled xbindkeys, which would be a solution since you can write your self a quick bash-script that launches xbindkeys with an individual configuration for deadbeef. Then you could run/quit the script manually when you start deadbeef or even throw in a line into the deadbeef-startscript that on start runs xbindkeys with the one configuration and on quit launches it again with another configuration.


I split half of this thread into a quick HowTo about manually installing xbindkeys.


With xbindkeys running it should now be possible to get the shoulder-buttons to work as prev/next-buttons by modifying the ~/.xbindkeysrc. Add the following to the end of the file:

"LD_LIBRARY_PATH="/mnt/utmp/deadbeef/lib:/mnt/utmp/deadbeef/bin:${LD_LIBRARY_PATH:-"/usr/lib:/lib"}" /mnt/utmp/deadbeef/bin/deadbeef --prev"


Shift_R


"LD_LIBRARY_PATH="/mnt/utmp/deadbeef/lib:/mnt/utmp/deadbeef/bin:${LD_LIBRARY_PATH:-"/usr/lib:/lib"}" /mnt/utmp/deadbeef/bin/deadbeef --next"


Control_R

This is not very clean as the commands will be executed always (even if deadbeef is not running). But on the other hand nothing will happen when the pnd is not mount, as the command "/mnt/utmp/deadbeef" will not be found. The biggest problem about it is that the normal function of the shoulderbuttons (Shift and Ctrl) will be deactivated. Another issue is that you will always trigger prev/next, even if deadbeef is not focused. But on the other hand in some situations this behavior might be desired.


I better send this post for now. If I find a better solution, then I will report.
 
Last edited by a moderator:
I have checked, the script.sh used to launch deadbeef handle command line argument. So I assume you can first check the presence of the deadbeef executable in the folder, and not present, first mount the PND and launch via the script.sh to be sure the Home is correctly set, or else use you're method.


Something like



Code:
if [ ! -e /mnt/utmp/deadbeaf/deadbeef ]

then

#launch via run_pnd

else

#directly launch the exe

fi
 
Actually, I have no idea what kind of device the bluetooth remote shows up as. Well, I mean, it shows up as a bluetooth headset, but as yet I've no clue how to read events from the media control buttons those things have.
 
@p'titSeb:


I don't think that it's desired in this context to mount the pnd and run deadbeef if it's not running. I wouldn't want the shoulder-buttons to start deadbeef. But a test like you mention still could be used to make this a bit cleaner. For example:


"[ -f /mnt/utmp/deadbeef/bin/deadbeef ] && LD_LIBRARY_PATH="/mnt/utmp/deadbeef/lib:/mnt/utmp/deadbeef/bin:${LD_LIBRARY_PATH:-"/usr/lib:/lib"}" /mnt/utmp/deadbeef/bin/deadbeef --next"


Because of the "&&" the part behind it will only be executed if the first part is true (i.e if the file exists).
 
Just noticed that deadbeef has a little issue with at least some SIDs - which is not only related to the Pandora-port. I noticed that the song from the game "Deactivators" plays too slow. Most SIDs seem to play fine, though I am not sure anymore if the playback-speed is always 100% correct after doing the following tests:


About the test:


I tried to play the Deactivators.sid on my GentooPC with the deadbeef-version I have installed there. First i thought everything is alright. Then while playing the song, I pressed "play" again and the song started from the beginning again, but this time playing much too slow just like on the Pandora. When I press "stop" and "play" again, then it plays at "normal" speed again. Although that "normal" speed is still a little bit slower than what I hear when playing the song with the command-line-player "sidplayfp". Maybe that little difference is related to some internal "PAL"- or "NTSC"-configuration though(?). Still there seems to be a bug in deadbeef or it's sid-plugin.


If you want to test it too, then go to www.hvsc.c64.org/, search for "Deactivators" by using the search box and download the song.


Recordings of the song done on a real c64 (with three different sid-versions) can be found here. Only the first track is of interest for comparison.
 
Back
Top