Release DeaDBeeF


You're welcome. Thanks for packaging. ;)


An update: I had a partial success. To be more precise I found a work-around I could live with. Here is the full story:


First I made some tests by compiling deadbeef myself with cdevtools. The first go without optimizing flags, the second one with. As you, Seb, I didn't see any improvement. Still deadbeef used 95% and more cpu when playing PSFs while sexypsf used the described 20-25%.


Then I read that deadbeef uses the AOSDK (Audio Overload SDK) for playback and came to the conclusion (without a proof) that the routines of both decoders simply are different power-hungry. So with that on my mind I thought whether there might be ways of configuring the AOSDK-plugin itself. Alas there was no user-friendly way of doing this. So with little hope left - as I really don't much about coding itself - I searched for clues in the source-code of the AO-plugin and - I still find this a bit of surprising - really found a parameter that I could tweak without breaking everything.


I edit the file "plugins/ao/eng_psf/psx_hw.c" and modified line 89:



Code:
#define CLOCK_DIV	 (8) // 33 MHz / this = what we run the R3000 at to keep the CPU usage not insane



I made two tests. One with "(16)" and one with "(32)". The cpu-usage as shown in "top" was roughly as follows:





Code:
(8) ~95%

(16) ~70%

(32) ~60%


So the last two settings worked nicely. No more stuttering and I couldn't hear any quality-issues. So this would be the solution. The 70% still were a bit too hungry for my taste, which is why i personally would prefer to see the 32-setting applied. As the difference between these two is "only" about 10%, it doesn't seem to be worth trying higher values, but of course you can test them. Hopefully all this does not bring new problems.


Now please excuse me, I need to enjoy the FF9 soundtrack once again - this time playing with deadbeef. :D


Edit: I also wanted to remind you that there is a typo in the description of deadbeef (repo): "pugin" not "plugin"
 
Last edited by a moderator:
Couldn't withstand my curiosity to do another test: with "(64)" there is no output anymore. Everything compiles, deadbeef runs, the tracks show up and can be selected. The player even seems to play them, but you can not hear anything at all.
 
Nice tests !


I can compile and do an another build with the cpu_div set to 32 (and the typo on plugin in the XML also corrected).


Expect a new PND soon :)


* Edit*


done, Build 03 on the repo :


Build 03:

  • Use hint submited by Loomax to reduce cpu usage (at least 30%) on psf files
  • Stripped debug info to reduce size
 
Last edited by a moderator:
Hello there! DeadBeef is my one and only audio playyer, so am really happy to see an update. However, since the update from the old version in the repo, I'm not able to play m4a files.


Am I missing something stupid? I have lots of these as m4a is the format outputted by get-iplayer.


Thanks in advance for any help!
 
That's strange, it should still play all other formats, I only changes psf. What is happening ? The m4a files doesn't show up ? It remain silent ? I have to get a file or two to check on my side also.
 
Hello! They appear in the file quite happily in the 'Open Files' dialog box (with 'supported file formats' chosen). But selecting them and opening/adding them takes you back to the play window without them there.


Very strange! I was using the old 4.1 DeadBeef last night to play one, so they did work. Although it did struggle with larger files!
 
I think m4a never worked with "little Sebs" ;) version.


m4a needs the AAC-plugin as you can see here.


And that doesn't seem to be configured/compiled in as far as I can see after a very quick view (I'm in a hurry.)





 
Ok, it's simple, the plugin for m4a is missing. It didn't compile because of missing lib (FAAD2). I compile missing libs and compile the plugin.


Expect a new PND soon ^_^ .


By the way, FAAD2 will be in my next Code::Block update (build 07).


*EDIT* I see Loomax figured it out also, oh, and he even translate my nickname :lol: ! By the way, did you know you can (somewhat) localise your Pandora ? Mine is partly in french, I may open a thread in the General Subject forum...
 
Last edited by a moderator:
That's it, new version on the repo.


I tested a m4a file, and cpu usage is higher than with a mp3, but it is reseanable (from 10% to 15% with OSS, 15% to 20% with ALSA roughly)


Build 04:

  • Added aac plugin, so m4a files are playable
 
Ah no, sorry, I was talking about "locale", translation of various text in GUI... My Pandora partly "speak" french now, and many programs automatically switched to french also...


That map is quite cool, but I don't think it is accurate, to many people living in the middle of the Atlantic ocean.
 
Ah, that locale-stuff. Yeah, I fiddled around with it more than once. All that locale-, keymap-, timezone-stuff is always a confusing thing as I never know if I made it to the best setting (as in most "compatible" and suiting my personal taste) and there are several places that need to be configured correctly for e.g. console- AND xorg-usage. Well currently I am having no issues and it's off-topic here. So I will leave it for now. :)
 
sidenote: "Lomaxx" with two "x" and one "o" not vice versa. :D See repo.
 
Wow, that beastly little music player got a hefty upgrade! Nice work, Seb!


Noticed one thing, though. I upgraded to the latest build, and now the program seems to lag when selecting/switching/ending songs. It's a pretty significant stutter, about a second, and even cuts off the ends of songs and smaller sound files. Any insight as to what's going on there?
 
Oh, no, I have no ideas ?! It doesn't do that on my panora. I mostly plays mp3, and my rebirth pandora is heavily overclocked (1 Ghz), but I have no stutter or pause between songs, so maybe it's not visible (earable ?) on my config.


Things you can do to help me debug:


What format of song do you play (mp3, psf, etc...) ? Does it happens with every song ?


Do you use some particular plugins ? May-be paste your config file for deadbeef here.


Have you try downgrade to previous version to see if it's a regression


Open a Terminal and launch "top" to see cpu consuption of the deadbeef process
 
Last edited by a moderator:
@Borax: Is that one single gap that sometimes (not always) appears a few seconds before a song ends and the next one starts? I had something like that with the old deadbeef version. It seemed to me like this is related to card-access and/or caching the next song. But I never was able to find a clear pattern on this. Sometimes it appeared, sometimes it didn't.


So far I didn't notice this with the new version, which is why I was hoping that it vanished. But if we are talking about the same thing, then I assume that sooner or later I will experience it again. I will drop a note if I do so.


Edit: I made a quick test with the same small mp3-collection that I experienced the problem with before, but couldn't reproduce it for now. 2-3 seconds before the song ends the green LED on the left lights for a second, but the music does not stop any more. Tried it with normal and random playback.


Maybe this was related to other influences like a different kernel-version (now 3.2.30) or a different filesystem for the root-OS. I boot from sdcard and switched to ext4. The filesystem of the card containing the mp3s did not change though (ext2).
 
Last edited by a moderator:
New build on the repo.


I added the last few plugin that didn't compiled at last try (Zip file support now, maybe useful for game music).


Recompile everything with a fairly recent gcc (v4.6.3) and agressive optimizations. I hope nothing is broken. For performance improvement, I must confess I didn't see any. But just looking at "top" may not be precise enough to witness the 0.5% speed gain of -O3 on gcc 4.6.3 versus -O2 on gcc 4.3.3 :huh: .


Build 05

  • Recompiled with gcc 4.6.3 and with "-O3 -funsafe-math-optimizations" (didn't measure any effect)
  • Added some missing plugins (like WAV/PCM, Zip file or Ressampling).
 
Back
Top