mpdPup - Simplified MPD Music Server/Jukebox - v0.9.3
mpdpup kocozze
Hi Kocozze, This morning i've tried the cf-card and usb music storage without any problem on my alix board, operation was headless from another pc. Here's what i did: With the help of unetbootin and mpdpup 0.9.3 iso i prepared the cf-card, mind you not partioned!!
Then with the help of putty on another pc, i logged in at tunes.local with root and woofwoof. In the wizzard i could chose local storage, alltough i had only one usb drive connected, there were two options to choose from. After choosing "jukebox copy" on which my music is, i completed the wizzard. Just before the end of the wizzard, i saw two remarks coming along...... "cannot move library" and "no input files" so i thought this is not going well. But to my surprise, after a long wait (be patient it can take a quit long time) i started gmpc program on my pc and there was the music from the usb drive.
So it is possible, also for a Linux dummie like me
Now i'm only hoping you will succeed to! MPDpup is for me the best audiophile solution there is, i have tried Linn gear (sneaky), logitech touch, xxhigh end, but every time i had some trouble's be it network or control problems. MPDpup with mpad or mpod control is simply the best. Good luck with your'e efforts.
Toine
mpdpup 0.93 on usb or cf-card, mx on qnap nas or usbdrive, alix 3d3, m2tech young dac, mf v-link, edgar tube amp, magnepan 1.6, stax srs-4170
Then with the help of putty on another pc, i logged in at tunes.local with root and woofwoof. In the wizzard i could chose local storage, alltough i had only one usb drive connected, there were two options to choose from. After choosing "jukebox copy" on which my music is, i completed the wizzard. Just before the end of the wizzard, i saw two remarks coming along...... "cannot move library" and "no input files" so i thought this is not going well. But to my surprise, after a long wait (be patient it can take a quit long time) i started gmpc program on my pc and there was the music from the usb drive.
So it is possible, also for a Linux dummie like me

Toine
mpdpup 0.93 on usb or cf-card, mx on qnap nas or usbdrive, alix 3d3, m2tech young dac, mf v-link, edgar tube amp, magnepan 1.6, stax srs-4170
mpdpup kocozze
Hi Kocozze, I guess when the cf-card is prepared with unetbootin he should be ok.. Trying another one can't harm! Remember....try it with only one partition. My hard drive is 2 tb en ntfs formatted.
mpdpup 0.93 on usb or cf-card, mx on qnap nas or usbdrive, alix 3d3, m2tech young dac, mf v-link, edgar tube amp, magnepan 1.6, stax srs-4170
mpdpup 0.93 on usb or cf-card, mx on qnap nas or usbdrive, alix 3d3, m2tech young dac, mf v-link, edgar tube amp, magnepan 1.6, stax srs-4170
mpdpup kocozze
Sad to hear Kocozze. I think cpu intel core duo 64 should work with mpdpup but i'm no expert. Hopefully someone else will react!?
SoliSoli wrote:Hi Idolse.
I am usually using MPD on Debian minimal. In the beginning I used a lot of time to toy around with all the usual tweaks, and also some of the more extreme ones. Writing scripts, tweaking the OS to my liking, it took quite a while to get the basics right. Nowadays, I usually spend time listening to music, but now and then I might try a new setting. I always had a separate a dirty linux install to do the experiments and compile, and to keep the clean install as light weight as possible.
Could you share some of the settings that got you great sound on Debian?
Perhaps we could duplicate on the mpdpup platform.
Nothing beyond the extraordinary, followed the guide from http://www.symphonic-net.com/kubotayo/articles/ + some added things like thread/cpu affinity and also stripped the kernel of almost ALL unneccesary drivers or features, and also compiled a realtime kernel. I use USB nrpacks=1 which just sounds better, but I see others use other values. (might be dependent on a powerful CPU and/or a RT kernel. I use Hpet instead of TSC. I use higher buffers than usual.
Also compiled MPD with the realtime patch (although not strictly neccesary since you can set the priorities and affinity of the MPD threads after starting MPD).
It only support USB DACS, the advantage is that the USB soundcard is automatically HW:0,0 so it is plug and plug whatever USB soundcard you plug in. Also patched the kernel with overlayfs to support booting from a USB stick while also copying everything to ram. (also supporting persistence so you dont have to rescan the library on every reboot) Also added support for Mytek and M2tech in the kernel. I dont have a M2tech/Mytek card, but it should work.
I disabled powerboost, and hyperthreading. Lastly using a 64bit kernel also sounds better than the 32bit. I believe it is the sum of all parts that makes the difference.
In the music folders I have subfolders named USB and NAS. USB obviously points to automounted usb mounts. I disabled automounting the Linux file systems from USB sticks since "nobody" uses those anyways. But exfat, fat, hfs(+), ntfs are all mounted automatically, and MPD automatically scans both NAS and external storage, unlike MPDpup which makes you choose.
Also compiled MPD with the realtime patch (although not strictly neccesary since you can set the priorities and affinity of the MPD threads after starting MPD).
It only support USB DACS, the advantage is that the USB soundcard is automatically HW:0,0 so it is plug and plug whatever USB soundcard you plug in. Also patched the kernel with overlayfs to support booting from a USB stick while also copying everything to ram. (also supporting persistence so you dont have to rescan the library on every reboot) Also added support for Mytek and M2tech in the kernel. I dont have a M2tech/Mytek card, but it should work.
I disabled powerboost, and hyperthreading. Lastly using a 64bit kernel also sounds better than the 32bit. I believe it is the sum of all parts that makes the difference.
In the music folders I have subfolders named USB and NAS. USB obviously points to automounted usb mounts. I disabled automounting the Linux file systems from USB sticks since "nobody" uses those anyways. But exfat, fat, hfs(+), ntfs are all mounted automatically, and MPD automatically scans both NAS and external storage, unlike MPDpup which makes you choose.
New mpdpup around the corner? I doubt it.... This is a dead pup.lugili wrote:Hi all,
it appears that there are now newer versions of MPD around (0.18.5) than the one used in the mpdpup version (0.17).
- Are these significantly better?
- Is it possible to upgrade/change without much hacking?
or
... is there a new mpdpup version around the corner ...
Easy to hack and install newer version? No
Does the newer version sound better? Yes
This was a great idea, which is now frozen in time. Its about 80% as good as mpd gets in terms of sq.
I got an E-MU 0404 USB "sound card" for testing, which is used as external DAC, and I need to get it working with mpdPup.
It works (kind of) - the problem is that it does NOT swich sample rates automatically: I need to use "alsamixer" and manually set "Clock rate", where e.g. 100% is used for hi-res 24/192 sample rates, and if I turn it off completely, then it's good for playing 16/41... So, for every track that uses different sample rate, I should change clock rate in alsamixer manually
If I use wrong sample rate ("Clock rate") while playing track with a different sample rate (e.g. when I use a 100% setting in alsamixer for a track which has 16/41 rate), I get horribly distorted, tinny sound.
On other newer Linux distros this DAC/sound card seems to be working OK (i.e. sample rate is switched/changed automatically, without the need for "manual" intervention).
Anyone has any idea what could be done to solve this in mpdPup - i.e. to handle the sample rate (clock rate) automatically?
It works (kind of) - the problem is that it does NOT swich sample rates automatically: I need to use "alsamixer" and manually set "Clock rate", where e.g. 100% is used for hi-res 24/192 sample rates, and if I turn it off completely, then it's good for playing 16/41... So, for every track that uses different sample rate, I should change clock rate in alsamixer manually

If I use wrong sample rate ("Clock rate") while playing track with a different sample rate (e.g. when I use a 100% setting in alsamixer for a track which has 16/41 rate), I get horribly distorted, tinny sound.
On other newer Linux distros this DAC/sound card seems to be working OK (i.e. sample rate is switched/changed automatically, without the need for "manual" intervention).
Anyone has any idea what could be done to solve this in mpdPup - i.e. to handle the sample rate (clock rate) automatically?
- Attachments
-
- alsamix-emu0404.jpg
- alsamixer E-MU 0404 USB
- (34.9 KiB) Downloaded 3447 times
any ideas how to upgrade?
Looks like Ildose is busy or taking a well deserved break.
Does anyone know how to upgrade MPDPUP to use MPD 18?
Does anyone know how to upgrade MPDPUP to use MPD 18?
Well, further to my problem with E-MU 0404 USB DAC:
- I tried compiling newer alsa (alsa-driver, alsa-firmware, etc.), but to no avail: the compiled alsa-driver throws errors when used (and I seem to be missing "alsamixer"), so I gave that up
But, since this is Linux we're dealing with, I realized that there's more ways to skin a cat
If I can't make this DAC "behave" properly, I could do a "manual" change of DAC sample rate on every track change - and automate it!
I'm working on a bash script that will take output from
where the output of the above command looks like this:
and, taking just the first two digits after the equal sign, see which sample rate the track uses, compare it to currently active DAC sample rate, and change it accordingly if it differs... It should all be done during the first half a second of the new track, so that there's no audible "glitches"...
Easier said than done.... I'm still struggling (never did any bash scripting to speak of), but I'm getting close...
Unless anyone has a better idea?
- I tried compiling newer alsa (alsa-driver, alsa-firmware, etc.), but to no avail: the compiled alsa-driver throws errors when used (and I seem to be missing "alsamixer"), so I gave that up

But, since this is Linux we're dealing with, I realized that there's more ways to skin a cat

If I can't make this DAC "behave" properly, I could do a "manual" change of DAC sample rate on every track change - and automate it!
I'm working on a bash script that will take output from
Code: Select all
cat /proc/asound/card1/stream0 | grep Momentary
Code: Select all
Momentary freq = 44098 Hz (0x5.8320)
Easier said than done.... I'm still struggling (never did any bash scripting to speak of), but I'm getting close...
Unless anyone has a better idea?
Re: any ideas how to upgrade?
- second that.wlowes wrote:Looks like Ildose is busy or taking a well deserved break.
Hope everything is well, Idolse -
- enjoying the fruit of your work almost daily
Re: any ideas how to upgrade?
We haven't heard from Idolse in a while, I sure do hope he's OK..willemoes wrote:
- second that.
Hope everything is well, Idolse -
- enjoying the fruit of your work almost daily
Likewise, I am enjoying his work on mpdPup on a daily basis

And, Idolse, please contact me at
denple AT gmail.com
- I promised you a hardware donation, which is still waiting for you

Yes if you can post it Denis P that would be good to have a look at the Emu chip.
If you could get that analogue input pin going even better,
I don't think the Alsa people have quite finished the job on the Emu chip, but it is pretty good when used with Jack and audio programs. Up to 192khz available (if anyone can spot the difference between 88.2khz+192khz).
If you could get that analogue input pin going even better,

Well, here's the script. Perhaps I should not post such ugly hacks, but, hey - it worksSmithy wrote:Yes if you can post it Denis P that would be good to have a look at the Emu chip.

Unfortunately, I had to return the E-MU 0404 device - I just had to make it work for someone else. Hopefully, the owner will be satisfied...
Anyway, here's the script:
Code: Select all
#!/bin/bash
# if this is the first run, EMU-rate does not exist,create it
if [ ! -f /dev/shm/EMU-rate ]; then # file does not exist
echo "00" > /dev/shm/EMU-rate
fi
while : ; do
mpc idle
# stuff below executes when mpc is not idle
sleep 0.4 # wait for actual track to start playing (fist 0,4 sec., to determine the sample rate)
old_rate=$(cat /dev/shm/EMU-rate)
# echo "old rate:$old_rate"
sRateStr=$(cat /proc/asound/card1/stream0 | grep Momentary)
# echo "full line: " $sRateStr
cur_rate=${sRateStr:21:2} # here we get just the first two digits (44, 48, 96, etc.)
# echo "cur rate:$cur_rate"
# if $cur_rate is empty, next iteration ("continue")
if [ -z "$cur_rate" ] # string is empty
then
# echo "No song playing"
continue # $cur_rate is null/empty, nothing to do, wait for next iteration
fi
# echo "Track sample rate: $cur_rate"
if [ "$old_rate" = "$cur_rate" ]
then
# echo "The rates are the same"
continue # rates are the same, nothing to do, wait for next iteration
fi
# here we actually compare rates and take appropriate action (change EMU clock rate using "amixer")
# E-MU 0404 is visible as "card 1" on my system, i.e. it needs switch "-c1" for manipulation
case $cur_rate in
44)
amixer -c1 set 'Clock rate Selector' 0
echo "$cur_rate" > /dev/shm/EMU-rate
continue
;;
48)
amixer -c1 set 'Clock rate Selector' 1
echo "$cur_rate" > /dev/shm/EMU-rate
continue
;;
88)
amixer -c1 set 'Clock rate Selector' 2
echo "$cur_rate" > /dev/shm/EMU-rate
continue
;;
96)
amixer -c1 set 'Clock rate Selector' 3
echo "$cur_rate" > /dev/shm/EMU-rate
continue
;;
17)
amixer -c1 set 'Clock rate Selector' 4
echo "$cur_rate" > /dev/shm/EMU-rate
continue
;;
19)
amixer -c1 set 'Clock rate Selector' 5
echo "$cur_rate" > /dev/shm/EMU-rate
continue
;;
esac
echo "$cur_rate" > /dev/shm/EMU-rate
done
