[PLUGIN] cd player

This topic is dedicated to the cd player plugin which allows to play audio cds within volumio.

! CAUTION - this is a early stage plugin please backup you system before you install it !

State:

  • detect insertion / remove of discs
  • eject disc by a menu
  • set drive speed (to reduce noise)
  • add disc or tracks to playlist
  • grep metadata from musicbrainz
  • add cdio plugin to mpd.conf

TODOs:

  • read cd text
  • beautification & i18n
  • more robust setup for non arm architectures

Project;
https://github.com/geeks-r-us/volumio-plugins/tree/f/cdplayer
Zip:
https://www.dropbox.com/s/rm0tmltht276zsm/cdplayer.zip?dl=0

Feel free to test it, report bugs or contribute translations.

– Update –
added metadata from musicbrainz
some fixes
moved to github
added mpd plugin via new mechanism

Hey geeks-r-us,

this is super interesting, I already tried to accomplish this here, but always failed to get mpd running without buffer underflows. Which CD drive are you using? I always had the impression that my cheap external CD drive was the cause of the problem, but I was always afraid of buying one just to find it was also not solving the problem. If I can be of any help, feel free to contact me.

1 Like

Currently I took 5,25" DVD writer with an USB to IDE adapter because I had it here. I experienced also some buffer underrun when I reduce the drive speed too much (x4 - x6 depends on CD quality). I figured out that x10 worked well for my drive without making too much noise. Therefor I added the drive speed option in the config section.

But I plan to add an USB slot in drive. The one I have here is a cheap one from aliexpress which is not recognized as cd drive by the kernel.

This is another example that shows that adding lines to mpd.conf can be useful… You’re right we should take care about conflicts… but its probably the way to go

Would it make sense to have that plugin “cdio_paranoia” statement within default template mpd.conf.tmpl then, to avoid this gets rewritten by /volumio/app/plugins/music_service/mpd/index.js?

Thanks for the insight, I tried to read the current speed of the drive and I ended up with 24x, but not sure whether I read the actual speed or mistakenly read the max speed. On the other hand it might also be a power problem, as it seemed to spin up and then immediately spin down again repeatedly. Will have to look at it again and try out your plugin draft.

Do you already have it on GitHub?

I got another slim slot in drive but still have issues with it. Even after using an 3A power supply.
It seems the Initio INIC1510 USB PATA bridge is the issue.

It’s not on github right now because the plugin is written in typescript and I don’t know how far the plans to support typescript.
A solution would be to check in ts and js files.

If it is included in the template this would be a quick fix for releasing the plugin

Hi geeks-r-us

Been playing a bit with the plugin: this is a great start for a much wanted feature!
Cool MusicBrainz addition.

However I’m having a recurrent issue: hitting last song in the list led to a looping exception: log is here.
for instance:ep 18 08:19:19 volumio volumio[1973]: info: ADDING THIS ITEM TO QUEUE: {"uri":"cdio/tracks/dev/sr0/13","title":"No Need to Argue","service":"cdio_paranoia"} Sep 18 08:19:19 volumio volumio[1973]: info: Exploding uri cdio/tracks/dev/sr0/13 in service cdio_paranoia Sep 18 08:19:19 volumio volumio[1973]: info: explode: cdio/tracks/dev/sr0/13 Sep 18 08:19:19 volumio volumio[1973]: info: [ Sep 18 08:19:19 volumio volumio[1973]: "dev", Sep 18 08:19:19 volumio volumio[1973]: "sr0", Sep 18 08:19:19 volumio volumio[1973]: "13" Sep 18 08:19:19 volumio volumio[1973]: ] Sep 18 08:19:19 volumio volumio[1973]: /data/plugins/music_service/cdio_paranoia/index.js:262 Sep 18 08:19:19 volumio volumio[1973]: name = disc.tracks[parts.track].name; Sep 18 08:19:19 volumio volumio[1973]: ^ Sep 18 08:19:19 volumio volumio[1973]: TypeError: Cannot read property 'name' of undefined Sep 18 08:19:19 volumio volumio[1973]: at ControllerCdio.explodeUri (/data/plugins/music_service/cdio_paranoia/index.js:262:44) Sep 18 08:19:19 volumio volumio[1973]: at CoreCommandRouter.explodeUriFromService (/volumio/app/index.js:1189:22) Sep 18 08:19:19 volumio volumio[1973]: at CorePlayQueue.addQueueItems (/volumio/app/playqueue.js:150:52) Sep 18 08:19:19 volumio volumio[1973]: at CoreStateMachine.addQueueItems (/volumio/app/statemachine.js:231:24) Sep 18 08:19:19 volumio volumio[1973]: at CoreCommandRouter.addQueueItems (/volumio/app/index.js:385:27) Sep 18 08:19:19 volumio volumio[1973]: at Socket.<anonymous> (/volumio/app/plugins/user_interface/websocket/index.js:157:36) Sep 18 08:19:19 volumio volumio[1973]: at emitTwo (events.js:106:13) Sep 18 08:19:19 volumio volumio[1973]: at Socket.emit (events.js:191:7) Sep 18 08:19:19 volumio volumio[1973]: at /volumio/node_modules/socket.io/lib/socket.js:514:12 Sep 18 08:19:19 volumio volumio[1973]: at _combinedTickCallback (internal/process/next_tick.js:73:7)EDIT: probably related to this, I noticed that when selecting a track to play, pushed UI message (green) does display the title of following track, not the one of the selected track (the proper track does play). I think when one select the last track (as I did for the bug), then the error kicks-in as there is no following record. Some index/reference might be wrong by 1 extra.
BTW, I also noted before that bug, that volumio Playback UI would only show track# (not song title) and no album art.

Another issue here where disk speed setting might need some protectionSep 18 08:17:14 volumio volumio[1973]: info: TypeError: Cannot read property 'toString' of undefined Sep 18 08:17:14 volumio volumio[1973]: at CDController.setDriveSpeed (/data/plugins/music_service/cdio_paranoia/libs/CDController.js:99:58) Sep 18 08:17:14 volumio volumio[1973]: at SimpleEventDispatcher.<anonymous> (/data/plugins/music_service/cdio_paranoia/index.js:56:31) Sep 18 08:17:14 volumio volumio[1973]: at Subscription.execute (/data/plugins/music_service/cdio_paranoia/node_modules/strongly-typed-events/strongly-typed-events.js:53:20) Sep 18 08:17:14 volumio volumio[1973]: at SimpleEventDispatcher.DispatcherBase._dispatch (/data/plugins/music_service/cdio_paranoia/node_modules/strongly-typed-events/strongly-typed-events.js:151:17) Sep 18 08:17:14 volumio volumio[1973]: at SimpleEventDispatcher.dispatch (/data/plugins/music_service/cdio_paranoia/node_modules/strongly-typed-events/strongly-typed-events.js:225:14) Sep 18 08:17:14 volumio volumio[1973]: at Promise._successFn (/data/plugins/music_service/cdio_paranoia/libs/CDController.js:61:28) Sep 18 08:17:14 volumio volumio[1973]: at nextTickCallback (/data/plugins/music_service/cdio_paranoia/node_modules/kew/kew.js:47:28) Sep 18 08:17:14 volumio volumio[1973]: at _combinedTickCallback (internal/process/next_tick.js:73:7) Sep 18 08:17:14 volumio volumio[1973]: at process._tickCallback (internal/process/next_tick.js:104:9) Sep 18 08:17:15 volumio volumio[1973]: info: CoreCommandRouter::executeOnPlugin: cdio_paranoia , handleBrowseUri Sep 18 08:17:15 volumio volumio[1973]: CDIO: cdioMaybe a pick-list with few values would ensure proper info is passed?

Any plan to put you project in github, so that issues and tracking can be easier?
Thanks again for this great work.

I found the mentioned issues and fixed the wrong indexing.
I also reworked the musicbrainz query so that name and cover are collected in the right way

I will put it on github later

Thanks for your proactive support.
Indeed looks much better now (no more last-track crash), but still track titles & album arts are not passed to Playback UI view: only track# is.
Queue shows the AlbumArt, but track titles do not match (but album name is fine).

I still noticed a crash for a disk that does not have musikBrainz infoSep 21 14:48:31 volumio volumio[17618]: CDIO: cdio Sep 21 14:48:31 volumio volumio[17618]: info: { Sep 21 14:48:31 volumio volumio[17618]: "loaded": false, Sep 21 14:48:31 volumio volumio[17618]: "disc": null Sep 21 14:48:31 volumio volumio[17618]: } Sep 21 14:48:31 volumio volumio[17618]: /data/plugins/music_service/cdio_paranoia/index.js:194 Sep 21 14:48:31 volumio volumio[17618]: artist: disc.artist, Sep 21 14:48:31 volumio volumio[17618]: ^ Sep 21 14:48:31 volumio volumio[17618]: TypeError: Cannot read property 'artist' of null Sep 21 14:48:31 volumio volumio[17618]: at ControllerCdio.listRoot (/data/plugins/music_service/cdio_paranoia/index.js:194:29) Sep 21 14:48:31 volumio volumio[17618]: at ControllerCdio.handleBrowseUri (/data/plugins/music_service/cdio_paranoia/index.js:124:29) Sep 21 14:48:31 volumio volumio[17618]: at CoreCommandRouter.executeOnPlugin (/volumio/app/index.js:986:29) Sep 21 14:48:31 volumio volumio[17618]: at CoreMusicLibrary.executeBrowseSource (/volumio/app/musiclibrary.js:327:43) Sep 21 14:48:31 volumio volumio[17618]: at Socket.<anonymous> (/volumio/app/plugins/user_interface/websocket/index.js:579:32) Sep 21 14:48:31 volumio volumio[17618]: at emitTwo (events.js:106:13) Sep 21 14:48:31 volumio volumio[17618]: at Socket.emit (events.js:191:7) Sep 21 14:48:31 volumio volumio[17618]: at /volumio/node_modules/socket.io/lib/socket.js:503:12 Sep 21 14:48:31 volumio volumio[17618]: at _combinedTickCallback (internal/process/next_tick.js:73:7) Sep 21 14:48:31 volumio volumio[17618]: at process._tickCallback (internal/process/next_tick.js:104:9) Sep 21 14:48:31 volumio systemd[1]: volumio.service: main process exited, code=exited, status=1/FAILURE You may want to protect against that (for any type of missing info maybe, setting any field to sth “empty” by default), and fallback to just track#s if no info is available (including cd-text from cd-info)

Actually I re-installed from scratch on a new image, to double-check install problems I initially had which lead to Volumio crash at first preference panel setup: I confirm it’s still there (though I did not report initially).
This issue comes from the failed linking command to libdiscid.so due to a typo in install.sh: it should be: sudo ln -s /usr/lib/arm-linux-gnueabihf/libdiscid.so.0 /usr/lib/arm-linux-gnueabihf/libdiscid.so (note the missing hf in arm-linux-gnueabihf in the second argument path).

Interestingly I could play CD without altering original mpd.conf / mpd.conf.tmpl files: indeed by default all input plugins are enabled, so we can run out-off standard mpd.conf.
cdparanoia does NOT need to be installed either, as only libcdio13 is needed and is already part of base install (mpd dependency).
Install procedure is then simpler, since Volumio’s built-in mpd has been compiled with all necessary input plugins support: only eject and MusicBrainz stuff are needed dependencies (libdiscid; note, it seems libmusicbrainz may be a preferred method to extract data looking forward?)

I also noticed a promise error in onStop routine L67: it should do: return defer.promise; (did not check if there are other similar mismatches. getTracksFromMusicBrainz(drive) may not return promises consistently for instance).

Thanks, things like these will be easier to fix with PRs.

Other issues:
Ejecting disk without stopping playback lead to some sound issues as mpd seems to keep playing buffer remaings…You may want to manage such kind of rude exit.
Pause/Stop do not work as expected: once paused, playback can not be resumed.

Just cosmetic stuff: wouldn’t a name like “CD Player” plugin or “AudioCD” plugin be easier to understand for users, rather than reference to a library name?
Would you consider adding ripping capability (with abcde for instance) into same plugin, or rather leave that for other plugin?

EDIT: added notes on simplified install

Thx for these reports macmpi.

I improved the handling of disc infos and adapted the install.sh to your suggestions.
Ejecting the disc should stop volumio now correct.

I’m not sure why the album art is shown in playlist but not on the start page. This is still unsolved.

I’m not sure if ripping is within my scope, there was already an other thread about this topic. But feel free to make suggestions or PR how to integrate it.

The code is now on github (see link in first post)

Thanks a lot @geeks-r-us, I’ll check and report.
Could you provide a full .zip archive (including npm dependencies), so that it is easier for more users to install in a standard way?

Side-question: any specific reason to move to typescript rather than sticking with javascript like the rest of Volumio?

I’ll upload a zip file. But I think it must be created for arm and x86 because ffi is platform depended.

I’m used to have the comfort of modern strongly typed language like C# which supports you to write right code without adding a ton of log outputs just to figure out the type is not matching. From that sight js is a real pain in the a… IMHO it ranges between assembler and vba script concerning the comfort of writing code. TypeScirpt get’s me a little of that comfort into js. And as shown it integrates well in the project.
So from my side the question is why does the project not switch to ts for new code parts :laughing:

But I think this was already discussed in the github issues.

Hi,

How does it work? Connect an USB cd player to the RPi3 ? Thx.

Yes just connect an CD Drive by USB and it should work. Maybe you need change the USB output current by adding

max_usb_current=1

to /boot/config.txt

Thanks to geeks-r-us for this Plugin.
Unfortunately I can’t get it to work.
Here is what I have done:
I have downloaded all the files and folders from github.com/geeks-r-us/volumio-p … e/cdplayer
I have compressed these files and folders to a ZIP archive. I’ve named it cdplayer.zip
I have installed the plugin via volumio.local/dev - Plugin Upload

2017-10-04T12:19:31.015Z - info: Downloading plugin at http://127.0.0.1:3000/plugin-serve/b028ca49-000f-45c3-994c-0b011d723717.zip
2017-10-04T12:19:31.052Z - info: END DOWNLOAD: http://127.0.0.1:3000/plugin-serve/b028ca49-000f-45c3-994c-0b011d723717.zip
2017-10-04T12:19:31.055Z - info: Folder /tmp/plugins removed
2017-10-04T12:19:31.091Z - info: Checking if plugin already exists
2017-10-04T12:19:31.103Z - info: Rename folder
2017-10-04T12:19:31.127Z - info: Folder /tmp/downloaded_plugin.zip removed
2017-10-04T12:19:31.139Z - info: Move to category
2017-10-04T12:19:31.172Z - info: Checking if install.sh is present
2017-10-04T12:19:31.184Z - info: Executing install.sh
2017-10-04T12:19:31.337Z - info: Installing cdplayer Dependencies
2017-10-04T12:19:31.961Z - info: Get:1 http://archive.raspberrypi.org jessie InRelease [22.9 kB]
.
.
.
2017-10-04T12:21:03.576Z - info: Suggested packages:
2017-10-04T12:21:03.583Z - info:   cdtool setcd libdiscid0-dbg
2017-10-04T12:21:03.610Z - info: The following NEW packages will be installed:
2017-10-04T12:21:03.614Z - info:   eject libdiscid0
2017-10-04T12:21:04.127Z - info: 0 upgraded, 2 newly installed, 0 to remove and 52 not upgraded.
2017-10-04T12:21:04.134Z - info: Need to get 65.0 kB of archives.
2017-10-04T12:21:04.136Z - info: After this operation, 198 kB of additional disk space will be used.
2017-10-04T12:21:04.137Z - info: Get:1 http://archive.raspbian.org/raspbian/ jessie/main libdiscid0 armhf 0.6.1-3 [14.8 kB]
2017-10-04T12:21:04.598Z - info: Get:2 http://archive.raspbian.org/raspbian/ jessie/main eject armhf 2.1.5+deb1+cvs20081104-13.1+deb8u1 [50.2 kB]
2017-10-04T12:21:06.126Z - info: Fetched 65.0 kB in 1s (48.4 kB/s)
2017-10-04T12:21:07.804Z - info: Selecting previously unselected package libdiscid0:armhf.
.
.
.
2017-10-04T12:21:36.825Z - info: Install script completed
2017-10-04T12:21:36.845Z - info: Adding reference to registry
2017-10-04T12:21:36.856Z - info: Done installing plugin.
2017-10-04T12:21:36.884Z - info: Folder /tmp/plugins removed
2017-10-04T12:21:36.886Z - info: Folder /tmp/downloaded_plugin.zip removed
2017-10-04T12:21:36.905Z - info: Folder /data/temp removed

I have activated it in Plugins and want to go to Settins. But now Volumio start and crash in a loop.

Oct 04 14:55:35 VolumioWZ volumio[14212]: info: Enabling plugin cdplayer
Oct 04 14:55:35 VolumioWZ volumio[14212]: info: Loading plugin "cdplayer"...
Oct 04 14:55:35 VolumioWZ volumio[14212]: info: Error: Error: Cannot find module '/data/plugins//music_service/cdplayer/index.js'
Oct 04 14:56:42 VolumioWZ volumio[14212]: info: CoreCommandRouter::getUIConfigOnPlugin
Oct 04 14:56:42 VolumioWZ volumio[14212]: /volumio/app/index.js:992
Oct 04 14:56:42 VolumioWZ volumio[14212]: return thisPlugin.getUIConfig(data);
Oct 04 14:56:42 VolumioWZ volumio[14212]: ^
Oct 04 14:56:42 VolumioWZ volumio[14212]: TypeError: Cannot read property 'getUIConfig' of undefined
Oct 04 14:56:42 VolumioWZ volumio[14212]: at CoreCommandRouter.getUIConfigOnPlugin (/volumio/app/index.js:992:19)
Oct 04 14:56:42 VolumioWZ volumio[14212]: at Socket.<anonymous> (/volumio/app/plugins/user_interface/websocket/index.js:537:36)
Oct 04 14:56:42 VolumioWZ volumio[14212]: at emitTwo (events.js:106:13)
Oct 04 14:56:42 VolumioWZ volumio[14212]: at Socket.emit (events.js:191:7)
Oct 04 14:56:42 VolumioWZ volumio[14212]: at /volumio/node_modules/socket.io/lib/socket.js:503:12
Oct 04 14:56:42 VolumioWZ volumio[14212]: at _combinedTickCallback (internal/process/next_tick.js:73:7)
Oct 04 14:56:42 VolumioWZ volumio[14212]: at process._tickCallback (internal/process/next_tick.js:104:9)
Oct 04 14:56:42 VolumioWZ volumio-remote-updater[600]: [2017-10-04 14:56:42] [error] handle_read_frame error: websocketpp.transport:7 (End of File)
Oct 04 14:56:42 VolumioWZ systemd[1]: volumio.service: main process exited, code=exited, status=1/FAILURE
Oct 04 14:56:42 VolumioWZ volumio-remote-updater[600]: [2017-10-04 14:56:42] [disconnect] Disconnect close local:[1006,End of File] remote:[1006]
Oct 04 14:56:42 VolumioWZ systemd[1]: Unit volumio.service entered failed state.
Oct 04 14:56:42 VolumioWZ systemd[1]: Starting dynamicswap.service...
Oct 04 14:56:42 VolumioWZ systemd[1]: Started dynamicswap.service.
Oct 04 14:56:43 VolumioWZ systemd[1]: volumio.service holdoff time over, scheduling restart.
Oct 04 14:56:43 VolumioWZ systemd[1]: Starting dynamicswap.service...
Oct 04 14:56:43 VolumioWZ systemd[1]: Started dynamicswap.service.
Oct 04 14:56:43 VolumioWZ systemd[1]: Stopping Volumio Backend Module...
Oct 04 14:56:43 VolumioWZ systemd[1]: Starting Volumio Backend Module...
Oct 04 14:56:43 VolumioWZ systemd[1]: Started Volumio Backend Module.
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: -------------------------------------------
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: -----            Volumio2              ----
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: -------------------------------------------
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: -----          System startup          ----
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: -------------------------------------------
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Plugin folders cleanup
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning into folder /volumio/app/plugins/
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category audio_interface
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category miscellanea
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category music_service
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category plugins.json
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category system_controller
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category user_interface
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning into folder /data/plugins/
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category miscellanea
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category music_service
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Scanning category system_controller
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Plugin folders cleanup completed
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Loading plugins from folder /volumio/app/plugins/
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Loading plugins from folder /data/plugins/
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Loading plugin "system"...
Oct 04 14:56:45 VolumioWZ volumio[25728]: info: Loading plugin "appearance"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "network"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "services"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "alsa_controller"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "volumio_command_line_client"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: alsa_controller , getConfigParam
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: alsa_controller , getConfigParam
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: alsa_controller , getConfigParam
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: alsa_controller , getConfigParam
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "upnp"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: [1507121807441] Starting Upmpd Daemon
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: system , registerCallback
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "mpd"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Plugin upnp_browser is not enabled
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "networkfs"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Cannot mount NAS WAP0007 at system boot, trial number 1 ,retrying in 5 seconds
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "alarm-clock"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "airplay_emulation"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: [1507121807845] Starting Shairport Sync
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "last_100"...
Oct 04 14:56:47 VolumioWZ volumio[25728]: info: Loading plugin "webradio"...
Oct 04 14:56:47 VolumioWZ volumio-remote-updater[600]: [2017-10-04 14:56:47] [connect] Successful connection
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: Loading plugin "i2s_dacs"...
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: system , getConfigParam
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: Loading plugin "my_volumio"...
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: Loading plugin "volumiodiscovery"...
Oct 04 14:56:48 VolumioWZ volumio[25728]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
Oct 04 14:56:48 VolumioWZ node[25728]: *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.
Oct 04 14:56:48 VolumioWZ node[25728]: *** WARNING *** Please fix your application to use the native API of Avahi!
Oct 04 14:56:48 VolumioWZ node[25728]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
Oct 04 14:56:48 VolumioWZ node[25728]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
Oct 04 14:56:48 VolumioWZ node[25728]: *** WARNING *** Please fix your application to use the native API of Avahi!
Oct 04 14:56:48 VolumioWZ node[25728]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Oct 04 14:56:48 VolumioWZ volumio[25728]: *** WARNING *** Please fix your application to use the native API of Avahi!
Oct 04 14:56:48 VolumioWZ volumio[25728]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
Oct 04 14:56:48 VolumioWZ volumio[25728]: *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.
Oct 04 14:56:48 VolumioWZ volumio[25728]: *** WARNING *** Please fix your application to use the native API of Avahi!
Oct 04 14:56:48 VolumioWZ volumio[25728]: *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node&f=DNSServiceRegister>
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: Applying required configuration parameters for plugin volumiodiscovery
Oct 04 14:56:48 VolumioWZ volumio[25728]: Discovery: StartAdv! undefined
Oct 04 14:56:48 VolumioWZ volumio[25728]: Discovery: Started advertising... VolumioWZ - undefined
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: CoreCommandRouter::executeOnPlugin: system , registerCallback
Oct 04 14:56:48 VolumioWZ volumio[25728]: info: Loading plugin "youtube"...
Oct 04 14:56:49 VolumioWZ volumio[25728]: info: Plugin gpio-buttons is not enabled
Oct 04 14:56:49 VolumioWZ volumio[25728]: info: Loading plugin "albumart"...
Oct 04 14:56:49 VolumioWZ volumio[25728]: info: Plugin example_plugin is not enabled
Oct 04 14:56:49 VolumioWZ volumio[25728]: info: Loading plugin "updater_comm"...
Oct 04 14:56:50 VolumioWZ volumio[25728]: info: Plugin mpdemulation is not enabled
Oct 04 14:56:50 VolumioWZ volumio[25728]: info: Loading plugin "rest_api"...
Oct 04 14:56:50 VolumioWZ volumio[25728]: info: Loading plugin "websocket"...
Oct 04 14:56:50 VolumioWZ volumio[25728]: info: Loading plugin "snapcast"...
Oct 04 14:56:51 VolumioWZ volumio[25728]: info: SnapCast initiated
Oct 04 14:56:51 VolumioWZ volumio[25728]: info: Loading plugin "cdplayer"...
Oct 04 14:56:51 VolumioWZ volumio[25728]: module.js:471
Oct 04 14:56:51 VolumioWZ volumio[25728]: throw err;
Oct 04 14:56:51 VolumioWZ volumio[25728]: ^
Oct 04 14:56:51 VolumioWZ volumio[25728]: Error: Cannot find module '/data/plugins//music_service/cdplayer/index.js'
Oct 04 14:56:51 VolumioWZ volumio[25728]: at Function.Module._resolveFilename (module.js:469:15)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at Function.Module._load (module.js:417:25)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at Module.require (module.js:497:17)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at require (internal/module.js:20:19)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at PluginManager.loadPlugin (/volumio/app/pluginmanager.js:117:25)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at /volumio/app/pluginmanager.js:218:30
Oct 04 14:56:51 VolumioWZ volumio[25728]: at Array.forEach (native)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at HashMap.<anonymous> (/volumio/app/pluginmanager.js:217:17)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at HashMap.forEach (/volumio/node_modules/hashmap/hashmap.js:157:10)
Oct 04 14:56:51 VolumioWZ volumio[25728]: at HashMap.proto.(anonymous function) [as forEach] (/volumio/node_modules/hashmap/hashmap.js:169:7)
Oct 04 14:56:51 VolumioWZ volumio-remote-updater[600]: [2017-10-04 14:56:51] [info] asio async_read_at_least error: system:104 (Connection reset by peer)
Oct 04 14:56:51 VolumioWZ volumio-remote-updater[600]: [2017-10-04 14:56:51] [error] handle_read_http_response error: websocketpp.transport:2 (Underlying Transport Error)
Oct 04 14:56:51 VolumioWZ volumio-remote-updater[600]: [2017-10-04 14:56:51] [info] Error getting remote endpoint: system:107 (Transport endpoint is not connected)
Oct 04 14:56:51 VolumioWZ systemd[1]: volumio.service: main process exited, code=exited, status=1/FAILURE
Oct 04 14:56:51 VolumioWZ systemd[1]: Unit volumio.service entered failed state.
Oct 04 14:56:51 VolumioWZ systemd[1]: Starting dynamicswap.service...
Oct 04 14:56:51 VolumioWZ systemd[1]: Started dynamicswap.service.
Oct 04 14:56:51 VolumioWZ systemd[1]: volumio.service holdoff time over, scheduling restart.
Oct 04 14:56:51 VolumioWZ systemd[1]: Starting dynamicswap.service...
Oct 04 14:56:51 VolumioWZ systemd[1]: Started dynamicswap.service.
Oct 04 14:56:51 VolumioWZ systemd[1]: Stopping Volumio Backend Module...
Oct 04 14:56:51 VolumioWZ systemd[1]: Starting Volumio Backend Module...
Oct 04 14:56:51 VolumioWZ systemd[1]: Started Volumio Backend Module.
Oct 04 14:56:53 VolumioWZ volumio[25798]: info: -------------------------------------------
Oct 04 14:56:53 VolumioWZ volumio[25798]: info: -----            Volumio2              ----
Oct 04 14:56:53 VolumioWZ volumio[25798]: info: -------------------------------------------
Oct 04 14:56:53 VolumioWZ volumio[25798]: info: -----          System startup          ----
Oct 04 14:56:53 VolumioWZ volumio[25798]: info: -------------------------------------------

What means

?
I can’t find a index.js on github. There is index.ts but no index.js
Is that the right way to install the Plugin? Or have I done something wrong?

Thanks in advance

Apart from the missing index.js, the GitHub also doesn’t feature the necessary node modules that are required. From what I got there is still some way to go for it to be plug&play. Patience is key :slight_smile:

Of course, I will be patient :wink:

I understand that it would work. I know it’s in an early state. I do not expect a perfect working plugin.
Where can I find some instructions or hints to successfully install the plugin?

You need to compile the typescript into javascript. You can use node to do this:

INSTALL
npm install -g typescript

COMPILE
tsc helloworld.ts

see more

Also you can use npm to retrieve the necessary node packages.