Alexa voice control

Very Interesting. I was thinking of building my own custom skill and hooking up via Roon Extensions. I am unclear as to how you are controlling things like play [artistname] and switch zones without any Roon keyboard shortcuts, etc for these. You are using a macro to move the mouse over zones icon in the bottom right??! and for playing an artist doing a roon search and inputting a string via macro?

Exactly. I’m using the Node.js library RobotJS to move/click the mouse, press keys or check the color of the pixel at the mouse cursor position. Meanwhile the Roon API is available and all the playback/volume control functions or query of current playing track can be done directly through the API. But since my macro solution works fine for me, i haven’t bothered to update the code. Sooner or later it will bei replaced by Roon’s official skill. For features like searching for an artist, you still need a macro at the moment, because the API doesn’t offer such a function.

Here’s an example of the “play [artist]” function:

var robot = require("robotjs");
var sleep = require("sleep");

var uiPlaySelectedIcon =   [ 220,  55];
var uiTopResultIcon =      [ 210, 220];

function playArtist(artist) {
    if (artist) {
        console.log("spiele Interpret:", artist);
        activateRoonWindow();
        // open "find" dialog with CTRL+F
        robot.keyTap("f", "control");
        sleep.sleep(1);
        // type artist name
        robot.typeString(artist);
        // press enter
        robot.keyTap("enter");
        sleep.sleep(3);
        // click on "top result" icon
        robot.moveMouse(uiTopResultIcon[0],uiTopResultIcon[1]);
        sleep.sleep(1);
        robot.mouseClick("right");
        // click on "play selected icon"
        robot.moveMouse(uiPlaySelectedIcon[0],uiPlaySelectedIcon[1]);
        sleep.sleep(1);
        robot.mouseClick("left");
        // open screensaver window
        robot.keyTap("S", "control");
    } else {
        console.log("artist parameter is missing")
    }
}

It’s far from being an ideal solution, because everytime the UI changes after an update, all the coordinates of the changed icons have to be updated. But at the moment i don’t have a better idea. But there’s one big advantage of the macros. If you can do something sitting in front of your computer, you can do it with Alexa too :slight_smile:

Pretty funny, because I too built this skill for Roon and I even created my own RoonCloud so that my Roon can be accessed over the web. It’s been a fun IOT learning side project. My Alexa skill can do basics stuff like select and persist what RoonZone should be controlled. Then you can just say, ‘Alexa, tell Roon to pause’, etc. Naturally, I support all the basics controls. Selecting an Album or Artist or Song is still pretty hacky and the latency isn’t that great. In my prototype, my AWS Lamda is communicating with a Heroku service which then talks to my RoonServer over WebSockets (SocketCluster, I initially tried using ZeroMQ but couldn’t get it to work on Heroku). Anywho
 its works but would still would need that API to be locked down, checked for security holes, etc. Oh
 and I never have figured out a good way for users to register their RoonServer with my CloudService. Currently, I’m just editing a local JSON file for credentials (no input options in the current RoonAPI for Username and Password login text input fields).

I was considering commercially offering my system as a Roon Extension but I was pretty sure people would complain about having to pay money for ‘Cloud’ support, but the reality is that something would have to cover AWS costs. It will be interesting to see if the official Roon Echo support will be included or be an additional charge. :slight_smile:

Roon policy is not to levy additional charges. They’ve introduced a whole DSP Engine amongst other functional upgrades without changing that. I don’t see voice control changing the policy.

+1 for this feature

Another +1, the anticipation is killing me

+1. This would be a fantastic feature.

“Louder!”
“What?”
“LOUDER!”
“I can’t hear you because the music is too loud.”

Oh, dad


Or play a song with lyrics “Hi Alexa, make it louder, louder, louder.” :wink:

1 Like

Alexa, play:

https://i.imgur.com/U4CnAnr.png

Maybe not.

3 Likes

Let me add my “vote” for support of Alexa and / or Google Home control of Roon. My wife just won’t use the computer or her phone to start and play music - she’ll just use “OK Google” and we’re listening to that little egg-shaped box rather than our audio system. Wouldn’t it be great to be able to say something like, “Ok Google. Play in Kitchen Roon Playlist Jazz.” (Or replace that with Alexa.) Voila! We get the Jazz playlist playing on the audio system in the Kitchen.

Same here! Alexa, play the radio! would be another one. The shorter the command the better. Setting some preset Alexa radio stations, play lists, tags, artists etc would be cool in Roon. And that Alexa goes back to Roon directly without going to the Amazon music services, not to Sonos, blue sound etc.

I’ve been using a skill called House Band (https://www.amazon.com/Philosophical-Creations-House-Band/dp/B01ATZM6N4) to control JRiver. I was extremely excited to try it out, but in practice it’s pretty cumbersome - I’m hoping that’s just an implementation issue. For you consideration, here’s a rough transcript of me talking to Alexa while preparing dinner last night:

“Alexa tell House Band to set zone to Kitchen.”
<No response, so let’s just hope that happened, huh?>
“Alexa tell House Band to play Somethin’ Else”
<No response>
“Alexa tell House Band to play Somethin’ Else”
<Alexa tells me she can’t find it>
“Alexa tell House Band to play Cannonball Adderley”
<Alexa spends 2 minutes listing every Cannonball Adderley album I own, including Somethin’ Else>
“Alexa tell House Band to play Somethin’ Else”
<Finally, music 
 in the kitchen!>
“Alexa tell House Band to turn volume up”
<Kitchen volume is suddenly muted>
“Damn it!”

1 Like

I’ve just ordered a Dot so I’m hoping this will be available soon

I’d take the day off work to set this up. Absolutely killer.

I used this Alexa skill with a full size echo and an echo dot. When I worked with it, it was to enable control of five SONOS boxes I had in my home. I had all of the frustrations noted above. I gave up. It wasn’t worth the constant hassle.

I’m just happy that my Logitech Hub links nicely to my Alexa account allowing complex on/off/input control via Alexa voice control. It works very well with both the full size echo and the echo dot. JCR

For those using Google Home, I’ve created - with Logitech Harmony & IFTTT - simple instructions for switching Roon on & off.
As the rest of my AV equipment can also be controlled by Harmony, I’m able to switch between sources (using specific IFTTT applets) which is very useful, albeit a little clunky sometimes !

Commands for on / off are “RoonPlayer on / off” otherwise Google Assistant thinks you’re saying “room” and then you get all kinds of weird responses !

Volume up / down is even more clunky as you need to say “OK Google, tell Harmony to increase / decrease volume”, but it works - and until there’s a more sophisticated solution - it does the job


Roland - I’d love to hear more about that. You should start a “Alexa voice control with Logitech Harmony” thread, and lay out the details. I’ve got a Harmony myself, and I’m sure we’re not unique in that regard around here. :wink:

@scolley
Er, although this is the ‘Alexa voice control’ thread, I don’t have Alexa - I have Google Home devices - I just thought it was worth mentioning the alternatives


My apologies. You did mention that. Not familiar with it, but the Harmony ties in with Alexa too. So assume d Alexa was involved.

Still might be people interested in details though, just slightly different name for the thread. :wink: