MPD with native DSD mode support

Hi all,

As you may have noticed, I have been experimenting lately with various DSD configurations.

Having a DAC with a DIYINHK usb to i2s interface which supports native DSD, I tried to bypass DoP and make it work in native mode.

Both latest rpi and udoo kernels support native DSD mode for various usb interfaces. You can explore latest dev rpi kernel tree here and see the supported devices:

https://github.com/raspberrypi/linux/bl … b/quirks.c

In addition since alsa 1.0.29 there is native DSD support. I decided to test native mode (by disabling DoP option in mpd.conf plus an additional line) and it was not possible to make it work.

I had a conversation with the main MPD developer (Max) in MPD forum and he told me that DSD_U32_BE format needed for my usb interface is not currently supported by official MPD, which at the moment only supports DSD_U8. You can read the whole topic here:

http://forum.musicpd.org/viewtopic.php?f=8&t=345

The next step was to patch MPD 0.19.9 with this code:

https://github.com/lintweaker/mpd-dsd-019

Using the experimental package I created I was able to use my DIY DAC in native DSD mode.

I have already uploaded the PKGBUILD and all other files needed in order to create an Archlinux package:

https://github.com/archphile/playground … native-dsd

There is no package yet uploaded. I will wait until MPD 0.20 is out in order to decide what exactly I will do.

My first choice will always be vanilla MPD. However if in next versions there’s still not support for all DSD formats needed, I will create an extra package for everyone that wants to try DSD reproduction in native mode and i place it in the unofficial Playground Repository.

I still can’t understand the advantages of native DSD, when there’s DoP protocol that can successfully transfer unaltered DSD, but anyway it’s up to us to experiment and decide.

Stay tuned!

Cheers,
Michael

 

PS. If you want to discuss about it, please visit Archphile forum!

Experimental MPD package with SACD/DVD-A ISO support

Hi all,

Lately I have been experimenting with various stuff from the DSD world. As many of you know, MPD can play DSD (DFF,DSF) files fine, but there is no official support of SACD ISO. Although I believe that the best practice is to extract DSF files from the ISO, there are people who have a large library of ISO and they need direct support.

I did some google search, and it seems that a nice guy named Maxim V. Anisiutkin has created his own MPD development tree and has written all the code needed for SACD and DVD-A ISO support.

I could not resist testing it, so I created an experimental package (mpd-archphile-sacd) for arm7 (I am sorry, no support yet for the old raspberries). I tested with some SACD ISO files and the result is 100% fine. I decided to share this package for anyone who wants to experiment with this new feature.

The procedure is pretty simple and you can find all the details here.

Please note that with the new package, your mpd.conf file will be overwritten.

Cheers,

Michael

Archphile 0.99.3 Beta for all devices (including Raspberry Pi 2)

Note: Updated I2s configuraiton section in order to fix a small bug (thanks Panagiotis!)

Hi all!

I am very happy to announce you that Archphile 0.99.3 is available for downloading for all supported devices:

– Raspberry Pi 2
– Rasbperry Pi B/B+
– Udoo Quad
– Cubox-i

I would really like to thank all the people who donated and especiallty Kostis for donating 2 Raspberry Pi model 2 and made the release for this board possible! In addition I would like to thank Pierre, Stavros and Kostis for helping me testing the images in various stages of Archphile preparation.

 

– Download

Changelog

Major changes/additions:

– Raspberry Pi 2 support
– native ffmpeg support (not enabled by default)
– i2s configuration tool (i2select)
– support of local cover art (using mongoose  – see below for instructions)
– latest ArchlinuxARM and MPD 0.19.9

Configuration:

System configuration (optional)

Network configuration (static ip highly recommended – ethernet connection also highly recommended)

Nas configuration (optional – only for NAS owners ) (usb disks are supported by default, you just plug and enjoy!)

MPD configuration (please ignore the section for more file formats and see below for details – this section will be updated ASAP)

I2s configuration (please ignore it a the moment and see below – it’s much easier now!)

Upnp and Airplay configuration

Android remote control configuration

 

Configuring your i2s dac with i2select configuration tool:

– use Putty from a windows machine or the terminal from Linux/BSD/Mac os X and connect via ssh on your Raspberry Pi

– I just got report about a small bug that causes mpd not to run so only the first time and before running i2select, please give the following commands

rm /usr/bin/i2select
rm -r /root/.orig
pacman -Sy i2select

– run i2select command:

i2select

You will then see the image below:

i2select

– write the number of your i2s dac and press enter

– follow the instructions in red and reboot your machine immediately using systemctl reboot command

Notes:

1. The only devices tested are Iqaudio Plus and Mamboberry. I also got some nice feedback from a friend of Archphile and I believe that configuration for Hifiberry Plus will be correct out of the box. All other Dacs will also work but there might be some issues with their volume levels. Please give me feedback in Archphile forum and I will do my best to support you!

2. Some I2s Dacs like Hifiberry Plus need a special configuration for their max volume level to be 0db (bit perfect). The script apply correct settings for Hifiberry dac. These default settings will be reloaded after each reboot. If you dont want this to happen, please edit /usr/bin/archphile-optimize:

nano /usr/bin/archphile-optimize

and comment the line /usr/bin/unmute (put a # in the beginning of the line). In order to exit nano, press CTRL+X and then Y and press ENTER.

3. The volume mixer is, as always in archphile, disabled by default. If you want to change this, please edit mpd.conf:

nano /etc/mpd.conf

and change:

mixer_type      “disabled”

to

mixer_type      “hardware”

or

mixer_type      “software”

In order to exit nano, press CTRL+X and then Y and press ENTER. Then, restart MPD and you are ready:

systemctl restart mpd

systemctl restart mpd
systemctl daemon-reload

 

I suggest you to leave number 2 and number 3 as they are by default. These are the optimal settings for bit perfect playback. My advice is to change the volume from your amplifier, leaving Archphile configuration untouched.

 

FFMPEG support (or how to play various exotic file formats)

Some month ago I decided to drop support for ffmped in MPD. That meant that if you had files like alac etc, you needed to install mpd from archphile repositories. After many efforts I managed to create a very minimal in dependencies package (ffmpeg-archphile) and ffmpeg support is now supported by default. However it is not enabled by default. If you want to enable it:

nano /etc/mpd.conf

you will find the section like below

decoder {
plugin “ffmpeg”
enabled “no”
}

change the no to yes:

decoder {
plugin “ffmpeg”
enabled “yes”
}

CTRL+X and then Y and press ENTER

The last step is to restart MPD:

systemctl restart mpd
systemctl daemon-reload

And you are ready!

 

Local cover art support using Mongoose

Many users prefer to user their own cover art while using Mpdroid or Mpod/Mpad. This is usually possible by using well known web server solutions (apache, lighttpd) and this was the reason it was not supported until now. These web servers are not light and I do not wanted a bloated Archphile. I tried various solutions and I ended up with one of the simplest. My solution uses mongoose, which is a very light web server. In order to enable it you must do the following:

edit /usr/bin/archphile-optimize

nano /usr/bin/archphile-optimize

You will find the following section

# local cover art support
#
# uncomment below if you use Mpdroid. The path to music is http://xxx.xxx.xxx.xxx:8080/music/
#mongoose -listening_port 8080 -document_root /var/www/covers
#
# uncomment below if you use Mpod or Mpad. Please change the cover server address to http://xxx.xxx.xxx.xxx:8080
#mongoose -listening_port 8080 -document_root /var/www/Music

 

Lets assume that the ip of your Archphile device is 10.0.0.100. If you want to fetch cover art using Mpdroid you must uncomment and modify the appropriate line so that the result is:

# local cover art support
#
# uncomment below if you use Mpdroid. The path to music is http://xxx.xxx.xxx.xxx:8080/music/
mongoose -listening_port 8080 -document_root /var/www/covers
#
# uncomment below if you use Mpod or Mpad. Please change the cover server address to http://xxx.xxx.xxx.xxx:8080
#mongoose -listening_port 8080 -document_root /var/www/Music

In order to exit nano, press CTRL+X and then Y and press ENTER.

You must then go to settings of Mpdroid and set as path to music

http://10.0.0.100:8080/music/

 

If you wan to fetch cover art using Mpod/Mpad, you will enable the next line:

# local cover art support
#
# uncomment below if you use Mpdroid. The path to music is http://xxx.xxx.xxx.xxx:8080/music/
#mongoose -listening_port 8080 -document_root /var/www/covers
#
# uncomment below if you use Mpod or Mpad. Please change the cover server address to http://xxx.xxx.xxx.xxx:8080
mongoose -listening_port 8080 -document_root /var/www/Music

In order to exit nano, press CTRL+X and then Y and press ENTER.

You must then go to settings of Mpod/Mpad and set as path to music

http://10.0.0.100:8080/

You must then go to settings of Mpdroid and set as path to music

http://10.0.0.100:8080

A good friend Pierre tested it and reported that you can also use:

http://10.0.0.100:8080/music/

He reported that the second option was faster. I don’t have an idevice to test. You will test both and choose what is best for you!

The last step is to reboot:

systemctl reboot

Now, after each boot, you will have mongoose enabled serving your local cover art.

 

Enjoy!

Cheers,

Michael

Archphile needs your support

Hi all!

It’s been almost 10 months that Archphile project is active. During all this period, I have done my best to support various ARM devices. This project however has a cost. Until now I have covered these costs alone (apart from two donations for Udoo Quad), but as there is always need for new devices (for example I need 2 Raspberry Pi 2 boards in order to support it) I really need your support in order to be able to continue.

As you can see, I have added a Paypal donate button on the right side of this website. If you believe that Archphile is a project that you want to see it alive in the future, your help is highly appreciated!

Cheers,

Michael

Arm7 repository and upgrades

Hi all,

I wish you a happy new year!

I am preparing the new beta version for Udoo and Cubox these days. This means that the repositories will be loaded with newer packages. It’s highly recommended not to upgrade or install any packages in your existing installations as you might break your Os!

It’s a good idea for existing users to leave their system untouched from today until further notice. For new users it’s highly recommended to stay with default image.

Cheers,

Michael

Archphile 0.99.2 Beta for the Raspberry Pi B and B+ (I2S bugfix release)

Hi all,

Archphile 0.99.2 Beta is up. It came too quickly after 0.99.1 only to fix issues with I2S dacs and 24/96 and 24/192. Some of the symptoms were:

– distorted or “fast forward” sound in 24/96 playback
– no or distorted 24/192 playback

 With this release all issues with 24/96 and 24/192 files and I2s Dacs are fixed.

If you have already downloaded 0.99.1 beta and you don’t want to download again, in this forum thread  I give all instructions to update from 0.99.1  to 0.99.2.

Changelog

Download

Note: If you use an i2s Dac, do not use rpi-update or pacman -Syu to update system. It will break 24 bit playback.

Ps. A big thanks to Marcel  and DimDim for their bug reports and to Vasilis-T who gave me his (in beta stage) I2s Dac (Mamboberry) to do my tests and be able to bugfix!

 

Archphile 0.99.1 Beta for Cubox-i

Hi all,

0.99.1 Beta for Cubox-i is up!

– upnp/dlna (upmpdcli)
– Airport/Aiplay support (shairport)
Ympd 1.2.3 and MPD 0.19.1

 

Changelog

Download 

Configuration Guides   

NEW upnp/dlna and airplay/shairport guide

 

Note for wifi use: When wifi is enabled, it’s still impossible to get a console over ssh. For this reason until a solution is found, users who want to use cubox-i with wifi must enable and use telnet. This is very easy.

After configuring wifi with netctl and BEFORE rebooting you have to give one extra command:

systemctl enable xinetd

After reboot you will be able to access Archphile from a terminal using:

telnet xxx.xxx.xxx.xxx

or with putty from windows choosing telnet option

Archphile 0.99.1 Beta for Udoo Quad

Hi all,

0.99.1 Beta for Udoo Quad is up!

– upnp/dlna (upmpdcli)
– Airport/Aiplay support (shairport)
Ympd 1.2.3 and MPD 0.19.1

 

Changelog

Download 

Configuration Guides   

NEW upnp/dlna and airplay/shairport guide

 

Guide for Udoo Dual users: Although Udoo Dual is not officially supported, you can install Archphile on it. You will need to do the following procedure (being root or with sudo) from a Linux machine, replacing X with the number of your sd card:

wget http://archlinuxarm.org/os/imx6/boot/udoo/u-boot-dual.imx
dd if=u-boot-dual.imx of=/dev/sdX bs=512 seek=2
sync

 

Note: The entries of Archphile Repositories were written twice in pacman.conf by mistake. That doesn’t affect anything and it’s of zero importance. In any case if you want to change it:

wget http://archphile.org/lab/misc/pacman.conf
mv pacman.conf /etc/pacman.conf

Archphile and i2s Dacs

One of the most interesting features of the Raspberry Pi is that it gives us the option to connect our Dacs directly using I2S.  This is really important because this way we avoid one extra step (USB to I2S) during music reproduction. Since the beginning of Archphile I focused on USB dacs for 2 reasons:

– Most of us have a USB Dac

– I don’t have a Dac that gives me the I2S option

At the moment I feel that Archphile/USB is very stable and it’s time to see what the I2S can give us in terms of sound quality. I have created some quick notes here:

http://archphile.org/lab/i2s/  (edit: you can read the new guide here)

When I will be able to perform some tests and get feedback I will add an official guide in this website but the above link is a good beginning.

Unfortunately all you will find there is just theory. I give you all the steps needed to modify 0.99 Beta and start playing around with I2s Dacs. Unfortunately I do not own any of them and I cannot test, so your feedback is really important!

 

Ps. Most of the steps needed for 0.99 Beta will be included in next image.