[PLUGIN] NanoSound CD plugin

I amusind USB dac with Tinkerboard S,
Nanosound is reading CD connection is ok, looks like a playing music, but no sound.

I am using USB dac with Tinkerboard S,
Nanosound is reading CD connection is ok, looks like a playing music, but no sound.

Hi, have you tried what posted on Jun 16 2019 about USB DAC ? Thanks

I had a problem at using nanosound CD plugin. When I play the CD there was no audio sound, so I looked volumio.log. The volumio log said that “ERROR increasePlaybackTimer remainingTime:-220 negative - askedForPrefetch:true - simulateStopStartDone:false”.

My external CD driver is Lenovo usb slim DVD drive and I use external power for usb drive. Could you fix the problem?


  1. My Boot Log
    [ 1681.967537] usb 1-1.3: USB disconnect, device number 5
    [ 1687.125587] usb 1-1.3: new high-speed USB device number 8 using dwc_otg
    [ 1687.256525] usb 1-1.3: New USB device found, idVendor=13fd, idProduct=3940
    [ 1687.256531] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1687.256536] usb 1-1.3: Product: DVDRAM GT50N
    [ 1687.256540] usb 1-1.3: Manufacturer: HL-DT-ST
    [ 1687.256544] usb 1-1.3: SerialNumber: 4D384743353839333334312020202020
    [ 1687.256986] usb-storage 1-1.3:1.0: USB Mass Storage device detected
    [ 1687.258357] scsi host2: usb-storage 1-1.3:1.0
    [ 1688.306525] scsi 2:0:0:0: CD-ROM HL-DT-ST DVDRAM GT50N LC01 PQ: 0 ANSI: 0
    [ 1688.309070] sr 2:0:0:0: [sr1] scsi3-mmc drive: 20x/24x writer dvd-ram cd/rw xa/form2 cdda tray
    [ 1688.309428] sr 2:0:0:0: Attached scsi CD-ROM sr1
    [ 1688.309933] sr 2:0:0:0: Attached scsi generic sg0 type 5

  2. Volumio.log

2019-07-25T04:55:53.168Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:55:53.168Z - info: CoreCommandRouter::volumioRemoveToBrowseSourcesAudio CD
2019-07-25T04:55:53.168Z - info: CoreCommandRouter::executeOnPlugin: my_music , getDisabledSources
2019-07-25T04:55:59.645Z - info: Executing endpoint detectCD
2019-07-25T04:55:59.646Z - info: CoreCommandRouter::executeOnPlugin: cd_controller , detectCD
2019-07-25T04:55:59.646Z - info: CD Permission correctly applied
2019-07-25T04:55:59.704Z - error: Cannot properly apply CD permissions
2019-07-25T04:55:59.705Z - info: Writing CDDB file
2019-07-25T04:55:59.729Z - info: CDDB Entry Already exists
2019-07-25T04:56:34.295Z - info: CoreCommandRouter::executeOnPlugin: nanosound_cd , handleBrowseUri
2019-07-25T04:56:48.111Z - info: CoreCommandRouter::volumioAddQueueItems
2019-07-25T04:56:48.112Z - info: CoreStateMachine::addQueueItems
2019-07-25T04:56:48.112Z - info: CorePlayQueue::addQueueItems
2019-07-25T04:56:48.112Z - info: Adding Item to queue: nanosound_cd/1
2019-07-25T04:56:48.113Z - info: Exploding uri nanosound_cd/1 in service nanosound_cd
2019-07-25T04:56:48.128Z - info: CorePlayQueue::saveQueue
2019-07-25T04:56:48.130Z - info: CoreCommandRouter::volumioPushQueue
2019-07-25T04:56:48.149Z - info: CoreStateMachine::updateTrackBlock
2019-07-25T04:56:48.149Z - info: CorePlayQueue::getTrackBlock
2019-07-25T04:56:48.150Z - info: CoreCommandRouter::volumioPlay
2019-07-25T04:56:48.151Z - info: CoreStateMachine::play index 84
2019-07-25T04:56:48.151Z - info: CoreStateMachine::setConsumeUpdateService undefined
2019-07-25T04:56:48.152Z - info: CoreStateMachine::stop
2019-07-25T04:56:48.152Z - info: CoreStateMachine::setConsumeUpdateService undefined
2019-07-25T04:56:48.153Z - info: CoreStateMachine::updateTrackBlock
2019-07-25T04:56:48.153Z - info: CorePlayQueue::getTrackBlock
2019-07-25T04:56:48.153Z - info: CoreStateMachine::stPlaybackTimer
2019-07-25T04:56:48.154Z - info: CoreStateMachine::pushState
2019-07-25T04:56:48.154Z - info: CoreStateMachine::getState
2019-07-25T04:56:48.154Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:56:48.155Z - info: CoreCommandRouter::volumioPushState
2019-07-25T04:56:48.155Z - info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
2019-07-25T04:56:48.176Z - info: CoreStateMachine::serviceStop
2019-07-25T04:56:48.176Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:56:48.177Z - info: CoreCommandRouter::serviceStop
2019-07-25T04:56:48.177Z - info: [1564030608177] nanosoundCd::stop
2019-07-25T04:56:48.199Z - info: CoreCommandRouter::servicePushState
2019-07-25T04:56:48.200Z - info: CoreStateMachine::syncState
2019-07-25T04:56:48.200Z - info: CoreStateMachine::pushState
2019-07-25T04:56:48.200Z - info: CoreStateMachine::getState
2019-07-25T04:56:48.200Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:56:48.201Z - info: CoreCommandRouter::volumioPushState
2019-07-25T04:56:48.201Z - info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
2019-07-25T04:56:48.226Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:56:48.227Z - info: STATE SERVICE {“status”:“stop”}
2019-07-25T04:56:48.227Z - info: CURRENT POSITION 83
2019-07-25T04:56:48.227Z - info: CoreStateMachine::syncState stateService stop
2019-07-25T04:56:48.227Z - info: CoreStateMachine::syncState currentStatus stop
2019-07-25T04:56:48.228Z - info: CoreStateMachine::pushState
2019-07-25T04:56:48.228Z - info: CoreStateMachine::getState
2019-07-25T04:56:48.228Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:56:48.229Z - info: CoreCommandRouter::volumioPushState
2019-07-25T04:56:48.229Z - info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
2019-07-25T04:56:48.252Z - info: No code
2019-07-25T04:56:48.252Z - info: CoreStateMachine::pushState
2019-07-25T04:56:48.253Z - info: CoreStateMachine::getState
2019-07-25T04:56:48.253Z - info: CorePlayQueue::getTrack 83
2019-07-25T04:56:48.254Z - info: CoreCommandRouter::volumioPushState
2019-07-25T04:56:48.254Z - info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
2019-07-25T04:56:48.303Z - info: CoreStateMachine::play index undefined
2019-07-25T04:56:48.304Z - info: CoreStateMachine::setConsumeUpdateService undefined
2019-07-25T04:56:48.307Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:48.308Z - info: CoreStateMachine::startPlaybackTimer
2019-07-25T04:56:48.308Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:48.309Z - info: [1564030608309] nanosoundCd::clearAddPlayTrack
2019-07-25T04:56:48.942Z - info: CoreStateMachine::getState
2019-07-25T04:56:48.943Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:48.944Z - info: curduration:149
2019-07-25T04:56:48.944Z - info: CoreCommandRouter::servicePushState
2019-07-25T04:56:48.945Z - info: CoreStateMachine::syncState
2019-07-25T04:56:48.945Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:48.945Z - info: STATE SERVICE {“status”:“play”,“service”:“nanosound_cd”,“type”:“track”,“trackType”:“NanoSound CD”,“uri”:“nanosound_cd/1”,“name”:“Track 1”,“title”:“Track 1”,“streaming”:false,“artist”:“Unknown Artist”,“album”:“Unknown Album”,“duration”:149,“seek”:0,“samplerate”:“44.1khz”,“bitdepth”:“16bit”,“channels”:2}
2019-07-25T04:56:48.946Z - info: CURRENT POSITION 84
2019-07-25T04:56:48.947Z - info: CoreStateMachine::syncState stateService play
2019-07-25T04:56:48.947Z - info: CoreStateMachine::syncState currentStatus stop
2019-07-25T04:56:48.947Z - info: CoreStateMachine::pushState
2019-07-25T04:56:48.948Z - info: CoreStateMachine::getState
2019-07-25T04:56:48.948Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:48.948Z - info: CoreCommandRouter::volumioPushState
2019-07-25T04:56:48.949Z - info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
2019-07-25T04:56:48.976Z - info: *************curduration:149
2019-07-25T04:56:49.060Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:49.061Z - info: CorePlayQueue::getTrack 85
2019-07-25T04:56:49.313Z - info: ERROR increasePlaybackTimer remainingTime:-220 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:49.565Z - info: ERROR increasePlaybackTimer remainingTime:-471 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:49.815Z - info: ERROR increasePlaybackTimer remainingTime:-722 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:50.067Z - info: ERROR increasePlaybackTimer remainingTime:-974 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:50.319Z - info: ERROR increasePlaybackTimer remainingTime:-1225 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:50.571Z - info: ERROR increasePlaybackTimer remainingTime:-1477 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:50.822Z - info: ERROR increasePlaybackTimer remainingTime:-1729 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:51.074Z - info: ERROR increasePlaybackTimer remainingTime:-1980 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:51.325Z - info: ERROR increasePlaybackTimer remainingTime:-2232 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:51.577Z - info: ERROR increasePlaybackTimer remainingTime:-2483 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:51.827Z - info: ERROR increasePlaybackTimer remainingTime:-2734 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:52.079Z - info: ERROR increasePlaybackTimer remainingTime:-2985 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:52.329Z - info: ERROR increasePlaybackTimer remainingTime:-3236 negative - askedForPrefetch:true - simulateStopStartDone:false
2019-07-25T04:56:52.481Z - info: CoreCommandRouter::volumioPause
2019-07-25T04:56:52.482Z - info: CoreStateMachine::pause
2019-07-25T04:56:52.482Z - info: CoreStateMachine::stPlaybackTimer
2019-07-25T04:56:52.482Z - info: CoreStateMachine::servicePause
2019-07-25T04:56:52.483Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:52.483Z - info: CoreCommandRouter::servicePause
2019-07-25T04:56:52.483Z - info: [1564030612483] nanosoundCd::pause
2019-07-25T04:56:52.696Z - info: CoreCommandRouter::servicePushState
2019-07-25T04:56:52.697Z - info: CoreStateMachine::syncState
2019-07-25T04:56:52.697Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:52.698Z - info: STATE SERVICE {“status”:“pause”,“service”:“nanosound_cd”,“type”:“track”,“streaming”:false,“trackType”:“NanoSound CD”,“duration”:149,“samplerate”:“44.1khz”,“bitdepth”:“16bit”,“channels”:2}
2019-07-25T04:56:52.698Z - info: CURRENT POSITION 84
2019-07-25T04:56:52.698Z - info: CoreStateMachine::syncState stateService pause
2019-07-25T04:56:52.698Z - info: CoreStateMachine::syncState currentStatus pause
2019-07-25T04:56:52.699Z - info: CoreStateMachine::pushState
2019-07-25T04:56:52.699Z - info: CoreStateMachine::getState
2019-07-25T04:56:52.699Z - info: CorePlayQueue::getTrack 84
2019-07-25T04:56:52.699Z - info: CoreCommandRouter::volumioPushState
2019-07-25T04:56:52.700Z - info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
2019-07-25T04:56:52.722Z - info: CoreStateMachine::stPlaybackTimer

HI cgsong,

Have you tried the “Auto reconfig audio” function and restart?

If problem persist, a few questions:

  1. Are you using Raspberry pi or platform?
  2. what DAC are you using? Does the drive spins and shows the track titles?
  3. Can you send us the output of below:

cat /etc/asound.conf
cat /proc/asound/modules
cat /proc/asound/cards
aplay -l



When I tried “Auto reconfig audio” function and it works very well. Thanks!!.
But, when I play CD, there are always “info: ERROR increasePlaybackTimer remainingTime:-4344 negative - askedForPrefetch:true - simulateStopStartDone:false” logs in volumio.log so next time please fix the ERROR increasePlaybackTimer logs.

Anyway, it works well. Thanks.

For your information, my platform is Raspberry pi 2B and I’m using Amanero Combo384 DAC.
volumio@volumiorp2:~$ cat /proc/asound/cards
0 [ALSA ]: bcm2835_alsa - bcm2835 ALSA
bcm2835 ALSA
5 [Amanero ]: USB-Audio - Combo384 Amanero
Amanero Technologies Combo384 Amanero at usb-3f980000.usb-1.3, high speed

volumio@volumiorp2:~$ cat /etc/asound.conf
defaults.pcm.card 5
defaults.ctl.card 5

defaults.pcm.rate_converter “samplerate”

pcm_slave.x4 {
pcm “hw:1,0”
rate 176400

pcm_slave.x2 {
pcm “hw:1,0”
rate 88200

pcm.rate_convertx4 {
type rate
slave x4
converter “samplerate”

pcm.rate_convertx2 {
type rate
slave x2
converter “samplerate”

Glad that it works well ! thanks!

Hi nanomesher,

I just tested NanoSound and wanted to give some feedback. It’s already very nice but still not a clear choice for me compared to ripping the CD in advance.

First of all, it took me at least 2 hours of my evening (I actually wanted to spend listening to music) to get the first title to come out of my speaker. It was this very problem of my precursor or this aforementioned button that solved it.
I suggest to place this button more prominently or to run the procedure on default. It took me to search this thread to find the button. Additionally there is no hint for the need of a restart apart from your post afaics.

Furthermore there is a shitload of dependencies (e.g. python-pip, python-pillow, etc.) that took nearly half an hour to install (and take plenty of space) on my RPi 3b. I suppose, there is plenty of room for shrinking this list down.

Additionally it is really annoying to me when every plugin generally makes an (l. 4 in install.sh) apt-get update at first (sidenote: apt is the successor of apt-get). This takes ages on a Pi and you have lots of fun if you install some in a row. I propose making the update unless the database is younger than say one or two days.
E.g. by having a look at stat /var/cache/apt/pkgcache.bin | grep Change | cut -d' ' -f2

Some CDs take reeaaly long ( > 1 min ) to load when entering NanoSound. Additionally, I hate being cheated on and thus hate the progress bar on top. I don’t know whether this godless thing is committed by Volumio and if there is hence room for improvement but it tells you nothing but I’m working but by lying to you making up false status information (it starts fast and gets slower converging to speed 0).

Entering the NanoSound compartment from the main menu stops the playback. E.g. when I start a song from my tft-touchscreen and want to go to the songs list on my smartphone while playback to ponder about my next choice, it stops everything by clicking on NanoSound.

The artist - title information on the Playback screen is buggy. Right now I’m listening to a Pink Floyd CD a few tracks already but the info is still stuck on Fleetwood Mac. Although I can’t blame it for a certain dislike of Fleetwood Mac …

That’s all for now - thanks for the work!


would you mind to share you knowledge about how to get Apples SuperDrive working?

Thanks a lot.

Hi ThomasL,

Have a look at the latest version of the plugin - it
has an Eject button in the UI

That should help with Apple‘s drive and others
where the vendor cannot afford a hardware button. :wink:

Best Regards

Hi Josef.

My Superdrive didn’t work at all. So it was not just about the eject button. It didn‘t even accept the CD. But I now have it up and running.

sudo apt-get install sg3-utils
(only needed the first time)
ls /dev
(to check whether sr0 or sr1, usually it’s sr0 unless you had already other USB drives connected)
sg_raw /dev/sr0 EA 00 00 00 00 00 01

That did the trick.

1 Like

Thank you for the plugin, and hard work you put into this.

I’m testing the same with free version before buying. but I do agree with the below comments. I’m also building a proper player that has no eject button on the front but want to either use the menu or from directly from nanosound interface.

also i’ve notice even when a CD is playing, if you go out of NanoSound cd and come back to it, it takes the same amount of time to reload the CD data, so some cashing of the cd data is needed.

Thank you for using the NanoSound CD . Agree with the points below!

Recently we have been very busy with both ourNanoSound Amp 10 launch as well as spending time porting NanoSound CD to x86 systems (ripping is faster :slight_smile: ) . More info here: https://nanomesher.com/nanosound-cd-support/

Summarising the list of to-dos:

  • More accessible eject button
  • Detecting disc change
  • Caching to improve performance

We are pleased to announce that a new version is available which add a local cache (sqlite database) for CD meta, loading CD is a lot faster from second time onwards after cached. It’s available for ARM version only for now (x86 version soon), just click Upgrade Version in NanoSound CD settings and enjoy!

Detail Info: https://nanomesher.com/nanosound-cd-support/
To purchase your full license: https://nanomesher.com/nanosoundcd


I can’t get this plugin to work in my Pi 2 running the latest version of volumio with an IDE to USB adapter and an ATX psu going to any of the drives I plug into it. They are all standard IDE DVD-ROM or DVD-RW drives that would otherwise work fine in other systems.

Here’s the behavior I have with it:

dmesg detects the drive just fine, inserting a cd, then waiting for a while so it picks it up, and going to Nanosound CD retrieves the audio tracks of the drive with their tags perfectly fine, finally the plugin appears to play the tracks… but they won’t sound!

I tried playing music with both the internal audio jack of the pi and a cheap USB PCM2704 DAC in case that would make it work but nope, still nothing, regardless of the audio output I have set up in the options, i just won’t get any sound whatsoever.

Here’s my asound.conf in case it helps:

volumio@volumio:~$ cat /etc/asound.conf
defaults.pcm.card 1
defaults.ctl.card 1

defaults.pcm.rate_converter "samplerate"

pcm_slave.x4 {
        pcm "hw:1,0"
    rate 176400

pcm_slave.x2 {
    pcm "hw:1,0"
    rate 88200

pcm.rate_convertx4 {
        type rate
        slave x4
        converter "samplerate"

pcm.rate_convertx2 {
    type rate
    slave x2
    converter "samplerate"

Hope we can sort this out.

Can you please try the auto config audio button in NanoSound CD? Make sure you reboot after.

If it still doesn’t work, please share your output of below? thanks

cat /proc/asound/modules

sorry, i have a problem with a volume of cd. i’ve set a mixer to software mode.

radio, mp3 dlna works prefect and i modify a volume on apps. with cd player the volume start to max level and i don’t modify.

can i use a software mixer with nanosound cd?

Optimal settings for volumio options as here. Let us know if anything is not working.

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

Audio Jack (i2S DAC off)
Mixer Type: Hardware
Mixer Control Name: PCM

Mixer Type: Hardware
Mixer Control Name: PCM

I tested plugin with two old IDE CD-ROM drives trough USB to IDE converter cable - Toshiba/Samsung SH-C522 and Teac CD-540E. Drives itself are powered from external supply.
Playback works good with both of them but there is one weird thing - when I insert A CD in Teac drive it becomes locked and can only be opened from settings page eject button or after unplugging USB cable. Samsung drive has no such problem.
I would prefer to use Teac drive because it is dead silent opposing Samsung that is noisy as hell.
Another thing I noticed - cover art is available only for few CD’s and is low quality (looks blurred).
Noticed another problem - sometime between tracks there is loud clicks like from ripping damaged CD’s, problem is not persistent, if I play this again it mostly not happens again. Most likely it is problem with extraction methods from CD and might be compatibility problem with drive.
Pioneer DVD-117DR - the same - CD is locked inside, no clicks so far, tough also noisy drive.

Evidently this plugin don’t do gapless playback :frowning: What a waste…

Hi All,
I have the same problem as Burghy. I use software mixer and audio jack output (for testing, active speakers connected) - normally HifiBerry DAC+ with RCA. The radio and mp3 works perfect and I can adjust the volume using the GUI’s “volume knob”. In the case of cd-roms, the volume is set to maximum and does not respond to the GUI’s “volume knob”. I connected to volumio using ssh and noticed something like in the picture below. With PCM settings I can adjust the volume of the cd-rom. The SoftMaster changes the volume like GUI’s “volume knob” - this is the same “knob”. I tried the auto config audio button and reboot.
Here’s my asound.conf:

[code]volumio@volumio:~$ cat /etc/asound.conf
defaults.pcm.card 0
defaults.ctl.card 0


type plug
slave.pcm “softvol”

pcm.softvol {
type softvol
slave {
pcm “plughw:0,0”
control {
name “SoftMaster”
card 0
device 0
max_dB 0.0
min_dB -50.0
resolution 100


defaults.pcm.rate_converter “samplerate”

pcm_slave.x4 {
pcm “hw:1,0”
rate 176400

pcm_slave.x2 {
pcm “hw:1,0”
rate 88200

pcm.rate_convertx4 {
type rate
slave x4
converter “samplerate”

pcm.rate_convertx2 {
type rate
slave x2
converter “samplerate”