Roon Extension: Alarm Clock v0.9.1 (current)

It does to me sometimes. If i find example will share it.

Implemented default music source: Roon Radio (v0.4.0)

I finished the implementation of the default music source. If there is nothing to play when the alarm expires and the play history can be accessed via the Previous button, then a track from history is played. At the start of playback also the radio function is enabled to keep the music going after the initial track finished playing.

I would expect that this gives music for the cases that there is no source selected in advance. If you have a condition in which it does not, let me know about it.

To install, step 3 till 7 of the installation guide have to be repeated (overwrite the files of the previous install). See the first post for the link.

Love the alarm, thank you @Jan_Koudijs

Think I might be being a bit dim but Iā€™m struggling to get a fade in to workā€¦

Have a fade out working wellā€¦ after the fade out the volume returns to 100. The next alarm starts at 100 whatever I do.

Any help appreciated. Just a screen shot of working setting for a short fade in on an alarm would be appreciatedā€¦

Thanks,

Matt

After a fade out the volume that was set before fading is restored. This prevents the need to adjust the volume when you want to start playback again manually at a later time. This does not impact a fade in.

In the below screenshot I setup a one time alarm that will kick-in in a minute and has a fade time of 1 minute. The selected zone is ready to play, as can be seen at the bottom of the screen, and the action is set to Play.

If you save the settings the status information should show that a Faded Play will start in a minute.

When the alarm expires playback should start with the volume set to 0 and it should increase to the set volume (90 in this example) in a 1 minute time frame.

If this does not work for you, please provide me a screenshot of your settings and some information about what you want to play (internet radio, playlist, queue) to which device.

Thanks for your response.

I am trying to set a morning alarmā€¦ say 06:00 with a fade from 0 to 100.

Content not really important although I have tried with both local, tidal and streamed radio!

The output device is a Meridian Explorer 2 connected directly to a NUC running the Core with volume set to use deviceā€¦

OK, whilst writing I found the issue, with device settings set to ā€˜DSP volumeā€™ its works fine, with ā€˜Use Deviceā€™ it jumps straight to 100.

Not sure if this was a known issue, and I can live with it!

Thanks again for your work.

Matt

When the volume setting is set to ā€˜Use Deviceā€™ is it then also not possible to control the volume via the Roon Remote?

The extension is using the same control to do the fading, and I would expect that both fade-in and fade-out do not work with the ā€˜Use Deviceā€™ setting.

If this is the case then there is nothing I can do about it, except for adding it as a limitation in the first post.

Thanks for your report.

One more question @Hectorson.
Is the Volume setting in the extension available in combination with ā€˜Use Deviceā€™?
If not then I can hide the Fade Time setting under the same conditions.

Sounds like an issue for Roon thenā€¦ the behaviour is different between the two settings.
Just as a side note the volume scales are different, with DSP volume itā€™s a decibel scale and with the Meridian device 0 - 100.
I wouldnā€™t change anything and hope that @support can help!

Think I got to the bottom of it! There is a setting that forces maximum volume on playback starting. This setting only applies if you are using device volume control.

Problem solved, thanks for your time

1 Like

Good to hear that you nailed it.
Can you provide a screenshot of this setting, so that it can be of help for others?

I created a video on how to setup a wake alarm.
You can watch it on YouTube:

https://youtu.be/LYBaF6PyZi0

If this is considered useful then I can create more videos like this.
Just let me know.

I made a small guide here as well, how to automaticly start and run node automaticly in Windows.

I hope soon Roon can make the extentions available in the Roon core one way or another. So a need of a second PC is not needed (in my case).

1 Like

When finishing a listening session I donā€™t like to quit a song halfway, so what I typically do is that I clear the queue and let the currently playing song finish.

One of the use cases for the Alarm Clock is to stop playback when something else has to be done. If I setup an alarm for this I run into the issue of the terminated song which I, as said, donā€™t like.

So when combining the above, what I was looking for is a way to set a stop alarm that adjusts its time to a song boundary. I now found a way to do thisā€¦

One of the current features of Alarm Clock is a fade-out. Playback ends by reducing the volume over a configured timeframe. This is a way to transition from Play to Stop, stopping at a song boundary is another way to make this transition.

So this is what Iā€™m changing: The transition type becomes a separate setting (besides the transition time) that can be set to:

  • Instant
  • Fading
  • Track Boundary

When Track Boundary is selected the transition time gives the maximum added playback time in minutes. When the alarm expires and the remaining time of the song is less than this transition time then the song will be finished, otherwise the stop will be instant. For popular music a transition time of 5 minutes will work for most cases, for other genres longer times are probably required.

The below screenshot shows a setup for a 30 minutes listening session/sleep timer with a track transition time of 5 minutes.

When used with a sleep timer the nice thing is that a song is played till the end and the other day a wake alarm can continue with the next song of the album.

Note: The stop at Track Boundary is not sample accurate. It can happen that a very short part of the next song is played (less than a second), but this is too short to end up in the History.

1 Like

Ok Its lateā€¦ but I have done steps 1 and 2ā€¦Node is installed as V7.10.0 - Iā€™m doing all this is Win10Pro

Where do I create step 3? In RoonServer or Node or ???

how do I do step 4?

5 I think is just a txt file with a rename to app.js?

6 how do I run that

OK I managed to Download the file from git hub and read the README.md

I installed GIT too

but I get this now when i run the ā€˜npm installā€™ and ā€˜nam .ā€™ doesnā€™t work ā€¦ HELP Please @Jan_Koudijs

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\ladmin>cd roon-extension-alarm-clock-master

C:\Users\ladmin\roon-extension-alarm-clock-master>dir
 Volume in drive C has no label.
 Volume Serial Number is A8A1-4BBD

 Directory of C:\Users\ladmin\roon-extension-alarm-clock-master

05/04/2017  12:03 AM    <DIR>          .
05/04/2017  12:03 AM    <DIR>          ..
05/03/2017  11:59 PM                25 .gitignore
05/03/2017  11:59 PM            27,406 alarm-clock.js
05/03/2017  11:59 PM            11,357 LICENSE
05/03/2017  11:59 PM               572 package.json
05/03/2017  11:59 PM             1,831 README.md
           5 File(s)         41,191 bytes
           2 Dir(s)  33,767,026,688 bytes free

C:\Users\ladmin\roon-extension-alarm-clock-master>npm install
npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit  roonlabs/node-roon-api-settings resetting remote C:\Users\ladmin\AppData\Roaming\npm-cache\_git-remotes\git-github-com-roonlabs-node-roon-api-settings-git-19f6b67e because of error: { Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit   killed: false,
npm WARN addRemoteGit   code: 1,
npm WARN addRemoteGit   signal: null,
npm WARN addRemoteGit   cmd: 'git -c core.longpaths=true config --get remote.origin.url' }
npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit  roonlabs/node-roon-api-status resetting remote C:\Users\ladmin\AppData\Roaming\npm-cache\_git-remotes\git-github-com-roonlabs-node-roon-api-status-git-6e99c067 because of error: { Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit   killed: false,
npm WARN addRemoteGit   code: 1,
npm WARN addRemoteGit   signal: null,
npm WARN addRemoteGit   cmd: 'git -c core.longpaths=true config --get remote.origin.url' }
npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit  roonlabs/node-roon-api-transport resetting remote C:\Users\ladmin\AppData\Roaming\npm-cache\_git-remotes\git-github-com-roonlabs-node-roon-api-transport-git-b8d4411d because of error: { Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit   killed: false,
npm WARN addRemoteGit   code: 1,
npm WARN addRemoteGit   signal: null,
npm WARN addRemoteGit   cmd: 'git -c core.longpaths=true config --get remote.origin.url' }
npm WARN addRemoteGit Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit  roonlabs/node-roon-api resetting remote C:\Users\ladmin\AppData\Roaming\npm-cache\_git-remotes\git-github-com-roonlabs-node-roon-api-git-a25990b1 because of error: { Error: Command failed: git -c core.longpaths=true config --get remote.origin.url
npm WARN addRemoteGit
npm WARN addRemoteGit     at ChildProcess.exithandler (child_process.js:205:12)
npm WARN addRemoteGit     at emitTwo (events.js:106:13)
npm WARN addRemoteGit     at ChildProcess.emit (events.js:194:7)
npm WARN addRemoteGit     at maybeClose (internal/child_process.js:899:16)
npm WARN addRemoteGit     at Socket.<anonymous> (internal/child_process.js:342:11)
npm WARN addRemoteGit     at emitOne (events.js:96:13)
npm WARN addRemoteGit     at Socket.emit (events.js:191:7)
npm WARN addRemoteGit     at Pipe._handle.close [as _onclose] (net.js:511:12)
npm WARN addRemoteGit   killed: false,
npm WARN addRemoteGit   code: 1,
npm WARN addRemoteGit   signal: null,
npm WARN addRemoteGit   cmd: 'git -c core.longpaths=true config --get remote.origin.url' }
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
roon-extension-alarm-clock@0.4.0 C:\Users\ladmin\roon-extension-alarm-clock-master
+-- node-roon-api@0.0.1  (git://github.com/roonlabs/node-roon-api.git#a153bb466c7b483a62593fcf058b29e337425f02)
| +-- ip@1.1.5
| +-- node-uuid@1.4.8
| `-- ws@1.1.4
|   +-- options@0.0.6
|   `-- ultron@1.0.2
+-- node-roon-api-settings@1.0.0  (git://github.com/roonlabs/node-roon-api-settings.git#67cd8ca156c5bcd01ea63833ceaaec6d6a79654d)
+-- node-roon-api-status@1.0.0  (git://github.com/roonlabs/node-roon-api-status.git#504c918d6da267e03fbb4337befa71ca3d3c7526)
`-- node-roon-api-transport@1.0.0  (git://github.com/roonlabs/node-roon-api-transport.git#189beb51fdf196fcf0ded36d19153d10b0fc8c2c)

npm WARN roon-extension-alarm-clock@0.4.0 No repository field.

C:\Users\ladmin\roon-extension-alarm-clock-master>npm .

Usage: npm <command>

where <command> is one of:
access, adduser, bin, bugs, c, cache, completion, config,
ddp, dedupe, deprecate, dist-tag, docs, doctor, edit,
explore, get, help, help-search, i, init, install,
install-test, it, link, list, ln, login, logout, ls,
outdated, owner, pack, ping, prefix, prune, publish, rb,
rebuild, repo, restart, root, run, run-script, s, se,
search, set, shrinkwrap, star, stars, start, stop, t, team,
test, tst, un, uninstall, unpublish, unstar, up, update, v,
version, view, whoami

npm <cmd> -h     quick help on <cmd>
npm -l           display full usage info
npm help <term>  search for help on <term>
npm help npm     involved overview

Specify configs in the ini-formatted file:
C:\Users\ladmin\.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@4.2.0 C:\Program Files\nodejs\node_modules\npm

C:\Users\ladmin\roon-extension-alarm-clock-master>

Please try to run the ā€˜npm installā€™ command from a Git CMD window. As suggested by @R1200CL in this post:

not much better

The ā€˜No repository fieldā€™ warning is ā€œnormalā€. Is there a node_modules directory created?

If so, you should try the ā€˜node .ā€™ command.

C:\Windows\System32\cmd.exe /k ā€œC:\Program Files\nodejs\nodevars.batā€ & ā€œCD C:\Users\ladmin\roon-extension-alarm-clock & node .ā€

Is what I have in the shortcut in the startup folder but I get this error when I try to run the shortcut

but if I do a git version it opens a window and I get the pings

ā€œC:\Program Files\Git\git-cmd.exeā€ --cd-to-home ā€œcd C:\Users\ladmin\roon-extension-alarm-clock & node .ā€

and when I run the command from the folder it runs and then I see this so Iā€™m close I think - but should that window with the pings run all the time?

@Jan_Koudijs OK so I have manually started a node. command window and its scrolling awayā€¦ I have a set wake alarm but how does one choose a play queue to open?

for now I have just started a play on that endpoint and paused it in the hope that the api will just start it up tomorrow morningā€¦fingers x it will

I might try a sleep one shortly too