NanoSound CD Plugin for Volumio – Support

Thanks for supporting NanoSound CD – The best CD playing and extraction plug-in for Volumio 2.x.

At this stage, Nanosound CD does not work with Volumio 3.x yet, this is due to VLC dependencies not available in Volumio 3.x

Installation Instructions

Method 1 – Install from volumio plugin repository

** IMPORTANT NOTE WHEN USING volumio version 2.882 or above**

  • Visit http://volumio.local
  • Go to Settings -> Plugins
  • Under Search Plugins, find NanoSound CD and install
  • Installation does take quite a bit of time (15 – 30mins)

Method 2 – Run the installation script

Always get latest using this method

NanoSound CD Plug-in Installation Script
Version: Install Latest Version
  • Download installation script from above
  • Use Putty to SSH volumio.local . Default login and password are both “volumio”
  • Copy and paste the commands in the installation scripts and run them

  • Be patient, even with a fast broadband connection, it will take around 15 – 20minutes to complete.  It will appear to be at “Progress: 70” for a long time.  This is normal.

  • To monitor the installation progress, use below command:
sudo journalctl -f
  • After installation, a reboot required. This is because the alsa sound modules settings are changed.
  • Enable the NanoSound CD plug-in under Plug-in

  • To verify that installation is ok, check below services are running by running below commands:
systemctl status nanosoundcd_web

systemctl status nanosoundcd_progressweb

Method 3 – Pre-installed Volumio image

When you have trouble with method 1 and 2, you may try this method.

NanoSound DAC and CD Pre-installed Volumio image
Version: 2023-01-17
  • Download the pre-installed image from above.  Use win32diskimager or your favorite tool to burn your image to your microsd (16gb or above).
  • “NanoSound CD” and “NanoSound by Nanomesher” plug-ins are pre-installed.  You do not need “NanoSound by Nanomesher” if you are not using NanoSound DAC (but we recommend it 🙂 ).

Registration for Full version Features

  • To access full features of NanoSound CD, such as upsampling and extraction, go to Settings of NanoSound CD to register.

  • If you haven’t already done so, purchase your license key here
  • In email, please enter:
    • The Email you used for purchase via kickstarter or Nanomesher store
  • In Order Number:
    • If you purchase via Kickstarter – NanoSound CD or Kickstarter – NanoSound Archiver ,please enter your backer number prefixed with “KS”.  For example if your backer number is “123”, enter “KS123“.
    • If you purchase via Nanomesher store, just enter your order number without any prefix. For example, if you order number is #456, just enter “456“.
  • Click Register, you should then see a success message hopefully and get all the full features.
  • Note that this is an early access beta release, if there are problems / bugs, please email us on [email protected]

Release Notes

  • 2020-10-26
    • Support Autoeject after extraction
    • Suppot API for extract selected tracks
    • Support override alsadevice (for use of softvolume)
  • 2020-10-10
    • Release of plugin with bug fix on browsing and playback CD. Track number was out of sequence before
  • 2020-09-26
    • Release of arm version for avoiding special characters which is not supported by file system
  • 2020-09-08
    • Release of arm version for fixing the auto reconfig issue of detecting audio device’s card number
  • 2020-08-16
    • Release of x86 and arm version for support album and artist name in folder name
  • 2020-08-09
    • Since May 2020, the CDDB service used by NanoSound CD, freedb, has been shutdown.  This is a very bad news as other alternative , Musicbrainz, seems to have a smaller database causing many CD meta to be missing. Luckily, we have just found gnudb.org, a freedb alternative and very good.
    • Release of x86 and arm version which use gnudb.org.  Thank you gnudb team!
  • 2020-08-08
    • Latest x86 version released
  • 2020-06-21
    • Fixed problem with FreeDB not available. Album and Artist titles are now retrievable.
  •  2020-02-10
    • Upsampling algo has been improved to avoid click sound when switching track
  •  2020-02-02 (Beta only)
    • Support Auto-Rip experimental
  •  2020-01-11
    • USB Audio now supported by Auto config
  •  2019-10-20
    • arm version only for now – added quiet mode (spin drive to slowest during cd playback)
  •  2019-09-15
    • arm version only for now (x86 soon) – added local cache to speed up disc loading
    • Just click upgrade in plugin settings to update
  • 2019-09-09
    • x86 version released

  • 2019-06-08
    • Bug fix on extract to USB flash drive
  • 2019-04-13
    • Support CD cover loading (enable in settings)
    • Support CD Eject.  If you use upgrade function in NanoSound CD Settings to upgrade, you need to install the library with below command.
      • sudo apt-get install eject
  •  2019-03-30
    • Fix bug on upgrading
  • 2019-02-27
    • Handling of no CD inserted
    • Support upgrade from plug-in
  • 2019-02-17
    • Initial Release of Plug-in
  • 2019-02-22
    • Support multiple languages (English, German, Spanish, French, Italian, Japanese, Chinese, Korean)
    • Fix bug to pick up new settings after saving
    • Fix bug to detect sound device for Tinkerboard
  • 2019-02-24
    • Support version update from NanoSound CD settings
      • run /home/volumio/nanomesher_nanosoundcd/upgrade.sh to force update
  • 2019-02-27
    • Bug fix to handle no CD inserted

Usage

Playback

  • Once the NanoSound CD plug-in has been installed, to play CD, go to browse and choose Nanosound CD
  • This video would help you with CD playback. Upsampling options are available in NanoSound CD settings.

Audio Extraction

  • For CD Extraction, there are 2 ways currently:
    • In Extract CD section under NanoSound CD settings

  • By default, the extracted files are saved in the microsd card (/mnt/INTERNAL).  If you want to change the location, you can change the settings in NanoSound CD plug-in settings:

Extraction to NAS

  • To save to NAS drive, enter ‘NAS/your-share-name’
    • Setup your NAS alias via Sources -> Add New Drive

For example, in windows, the drive is \\192.168.11.6\Multimedia\extracted

    • To set your extraction destination to NAS, make sure you specify ‘rw’ in options in your NAS mount. This will allow write access to your mounts under /mnt/NAS.  In this example,
      • NAS IP Address: 192.168.11.6
      • Path: Multimedia/extracted
      • Options: rw  (for some older NAS models , try Options: rw,vers=1.0)
      • Username / Password: username / password to login to your NAS, make sure it has read write access.  Leave blank for guest.

    • To verify that your NAS mount is setup correctly, login to your volumio system and run below command.

    • if you would like to store the extracted audio files to below NAS share, in NanoSound CD plug-in settings, set Extraction to Path to ‘NAS/extmusic’

Extraction to USB

  • To save to USB drive,
    • From version v.1.1.2, enter ‘USB’. It will automatically choose your USB flash drive if there is only one inserted.
    • Enter ‘USB/your-usb-volume-name’.  To check your volume, you can either check from your Pi or computer. Note that it’s case sensitive

Pi

Computer

    • In this case, the usb volume name is “MYUSBDRIVE”, therefore below should be set in the extraction path

Artist and Album name in extracted folder

This is available from version 1.2.

In “Extract Folder Format”, you can now specify the format of the extracted folder.  For example, “%artist%-%album%” will output a folder such as below:

Integration with NanoSound DAC

NanoSound CD seamlessly integrates with NanoSound DAC to leverage on the display, control buttons and remote control.  However, NanoSound DAC is optional, so you can use any DAC with NanoSound CD.  If you are using NanoSound DAC, we highly recommend you to upgrade your NanoSound volumio plug-in to v1.6 or above.

Nanosound Plug-in V1.6 for Volumio

Volume Options

The best volume options  depends on the DAC hardware you use and your setup.  The volume option is set under PLAYBACK OPTIONS in volumio

Here are the recommended settings.

If you do not need volume control, since you would like volume to be controlled by an external amplifier:  

  • Mixer Type: None

NanoSound DAC / DAC2 and i2s DACs which supports hardware volume

  • Mixer Type: Hardware
  • Mixer Control Name: Digital

i2s DACs which does not support hardware volume

  • Mixer Type: Software
  • You need the latest version (2020-10-26 or later). Use the “Show Version” button to check.  If needed, use the “Upgrade Version” button in NanoSound CD to upgrade
  • In /data/configuration/music_service/nanosound_cd/  create a file called alsadevice.json, and put below into the content.  This will override the alsadevice to softvolume
{
"alsadevice": {
"type": "string",
"value": "softvolume"
}
}

Audio Jack (i2S DAC off)

  • Mixer Type: Hardware
  • Mixer Control Name: PCM

USB DACs

  • Mixer Type: Hardware
  • Mixer Control Name: PCM

Upsampling for USB DAC

Auto config is now working for USB DAC since 2020-01-11, so you wont need to manually edit the file anymore.

  • If you are using USB DAC and upsampling is not working, please follow below steps:
    • check your card id.
      cat /proc/asound/modules

      For example if you:

      0 snd_bcm2835
      5 snd_usb_audio

      so card5 is our USB DAC.

    • find out capabilities of your the DAC
      cat /proc/asound/card5/stream0
      
      
      Breeze audio SA9023 USB Audio at usb-3f980000.usb-1.3, full speed : USB Audio
      
      Playback:
      Status: Running
      Interface = 3
      Altset = 1
      Packet Size = 288
      Momentary freq = 48000 Hz (0x30.0000)
      Interface 3
      Altset 1
      Format: S16_LE
      Channels: 2
      Endpoint: 3 OUT (ADAPTIVE)
      Rates: 96000, 88200, 48000, 44100, 32000
      Interface 3
      Altset 2
      Format: S24_3LE
      Channels: 2
      Endpoint: 3 OUT (ADAPTIVE)
      Rates: 96000, 88200, 48000, 44100, 32000
       

      In this example, this USB DAC can only do 96000 max. Many other USB DAC can do higher.

    • edit /etc/asound.conf and it should look like
</data/nanosound_cd/asound.conf>
    • edit /data/nanosound_cd/asound.conf and replace hw:5,0 and card 5 with your card number if needed. Restart NanoSound CD plugin.

      defaults.pcm.rate_converter "speexrate_best"
      pcm.!default {
      type plug
      slave {
      pcm "hw:5,0"
      rate 44100
      }
      }
      
      pcm.rate_convertx2 {
      type plug
      slave {
      pcm "hw:5,0"
      rate 88200
      }
      }
      
      pcm.rate_convertx4 {
      type plug
      slave {
      pcm "hw:5,0"
      rate 176400
      }
      }
      
      ctl.!default {
      type hw
      card 5
      }

Troubleshooting / Advanced Config

  • Make sure your CD/DVD USB drive does not draw too much power.  The Sony and Pioneer one which we sell draws around 1A and can be directly powered via Raspberry Pi, other drives might need external power. Please let us know (email to [email protected] ) if certain drives works well or not.
  • To verify that installation was successful, go to NanoSound CD plugin settings and click “Show Version”. A green box will popup showing the date of the release
  • If there is no sound coming out while playing CD:
    • Try the Auto Audio Reconfig function under NanoSound CD. This will attempt to select the best audio device for you. Reboot after running it.
NanoSound CD config Audio
    • Check if there is enough power for the CD/DVD drive. Use an external power supply if in doubt.
  • If uninstalling the plugin doesn’t work, you can try removing the  NanoSound CD plugin via below commands
    • Load http://volumio.local/dev and enable ssh if you haven’t done so
    • Use terminal software such as putty to ssh to volumio.local (default user name and password are volumio / volumio)
    • Run below commands and ignore if any errors:

sudo /bin/systemctl stop nanosoundcd_web

sudo /bin/systemctl stop nanosoundcd_progressweb

sudo /bin/systemctl disable nanosoundcd_web

sudo /bin/systemctl disable nanosoundcd_progressweb

sudo rm /lib/systemd/system/nanosoundcd_progressweb.service

sudo rm /lib/systemd/system/nanosoundcd_web.service

sudo /bin/systemctl daemon-reload

sudo rm –r -f /home/volumio/nanomesher_nanosoundcd

sudo rm –r -f /home/volumio/python-audio-tools/

sudo rm r /data/plugins/music_service/nanosound_cd

  • If you have tried above steps and still get no sound:
    • Drop an email to [email protected] and attach these 2 files:
      • /etc/asound.conf
      • /data/nanosound_cd/asound.conf
      • Specify your DAC model
      • output of command “aplay -l”
      • output of command “cat /proc/asound/modules”
      • output of command “cat /proc/asound/cards”

Autoplay CD when insert

  • Edit /home/volumio/playcd.sh

#!/bin/bash

curl localhost:3000/api/v1/v1/browse?uri=nanosound_cd | jq ‘.navigation.lists[0].items’ > myjson.txt

curl -i –header “Content-Type: application/json” localhost:3000/api/v1/commands/?cmd=clearQueue

curl -i –header “Content-Type: application/json” localhost:3000/api/v1/addToQueue –data “$(cat myjson.txt)”

curl -i –header “Content-Type: application/json” localhost:3000/api/v1/commands/?cmd=volume&volume=50

curl -i –header “Content-Type: application/json” localhost:3000/api/v1/commands/?cmd=play

  • Edit /home/volumio/stopcd.sh
#!/bin/bash
curl -i --header “Content-Type: application/json” localhost:3000/api/v1/commands/?cmd=stop
curl -i --header “Content-Type: application/json” localhost:3000/api/v1/commands/?cmd=clearQueue
  • /etc/udev/rules.d/99-local.rules
KERNEL=="sr[0-9]", ACTION=="change", ENV{ID_CDROM_MEDIA}=="1", ENV{ID_CDROM_MEDIA_STATE}!="blank", RUN+="/home/volumio/playcd.sh &" KERNEL=="sr[0-9]", ACTION=="change", ENV{DISK_EJECT_REQUEST}=="1", RUN+="/home/volumio/stopcd.sh &"


  • chmod +x /home/volumio/playcd.sh
  • chmod +x /home/volumio/stopcd.sh

Thank you for providing the solution,  sideshowbob

Issues Log

Issues are being tracked here

Developer’s Info

For developers, here are some info which would be useful for you to hack!

NanoSound CD is highly complexed and have multiple components and not all components are open sourced / free. Here’s a breakdown:

  • Nanosound OLED.  The display / control software for NanoSound DAC. Installed in /home/volumio/nanosound_oled.  Open sourced in github.
  • Nanosound by Nanomesher. This is the NanoSound DAC volumio plugin.  Open sourced in github.
  • Nanosound CD. This is the volumio plugin installed in /data/plugins/music_service/nanosound_cd/ .   Open sourced and in github and will be merged into volumio’s github later.
  • NanoSound CD services. These services are not open sourced and are REST web daemon services which interface between NanoSound CD volumio plugin, VLC and Python Audio tools.  These services are installed in /home/volumio/nanomesher_nanosoundcd. You can check the status of these services by these commands:
    • systemctl status nanosoundcd_web
    • systemctl status nanosoundcd_progressweb

3rd Party libraries / tools installed