PDA

View Full Version : Could grider replace the Russound SMS3 Media Server?



bymyhand
September 13th, 2006, 05:32 PM
I currently have a Russound CAV6.6 and I am looking at getting the SMS3 Media Server from them. The functionality from the keypads looks really cool but the price doesn't.. :( I don't really want to spend 2k for an mp3 server when I already have a HTPC that can do it just as well. So I was wondering if grider could be the missing link here. Could I use grider to control the interface between the keypad and my computer? Not only would I like next track and previous track, but I would like to see what is currently playing from the keypad and be able to access a play list or two. The final thing would be able to setup multiple interfaces on it like the sms3 has. I have the sound card and know how to setup winamp to do this but I would need grider to activate a different instance of winamp when I picked a certain zone. Any help to point me in any direction on this would be greatly appreciated. My wallet will thank you very much! :)

ByMyHand

Promixis
September 14th, 2006, 08:31 AM
Hi,

For your use I would like at NetRemote and Girder with J River Media Center. JRMC will do multizone output without multiple instances. You can control it easily using NetRemote and the Mediabridge from anywhere.

Girder talks to the Russound and receives events from the keypads/remotes. You can easily forward these to JRMC as needed. This side of the solution is doable but built. So it would require some work. I have not implemented or used the display side of the Russound RNET protocol but we could look at that for you.

bymyhand
September 14th, 2006, 09:41 AM
That would be great! I was thinking of a lot of different multi-room audio systems and I choose this one because it gave me the best control over their other audio products, IE MP3 players, XM, and FM. If you guys could get that same control into a grider based system, with mp3 player software, fm tuner, and xm tuner, I think it would really help your software out immensely. And then everyone's wallet can breathe a sight of relief. :P If you can spare the time I look forward to see what you guys come up with.

milehighautomation
November 16th, 2006, 11:39 AM
I'll second this request.

I'm an HAI/Russound dealer and would like to be able to offer my clients something other then the $2300 Russound SMS.

Promixis
November 19th, 2006, 10:22 AM
I have the Russound CAV 6.6 connected to my JRMC PC using a Firewire 410 Audio device. This gives me 4 zones of music from a $500 PC.

milehighautomation
November 19th, 2006, 10:43 AM
Thanks for the reply Mike.

Does the RNET information display on the Russound keypads?

I did a quick search on the Friewire 410 device, it is about $300? I want to be sure I'm looking at the correct part.

Also, I've figured out how to have the NEXT button on my Russound keypad skip ahead to the next song in Windows Media Player. Is that same thing possible when using zones with JRiver? For example, if keypad #1 is listening to source 2 from the computer can it be told to hit Next for source 2 rather then source 1?

Thanks,

Josh

Mortie
November 20th, 2006, 03:52 AM
Hi Mike,

would it be possible to have a look at your CAV6.6 gml files?


Regards,
Morten

Promixis
November 20th, 2006, 04:37 PM
Thanks for the reply Mike.

Does the RNET information display on the Russound keypads?

I did a quick search on the Friewire 410 device, it is about $300? I want to be sure I'm looking at the correct part.

Also, I've figured out how to have the NEXT button on my Russound keypad skip ahead to the next song in Windows Media Player. Is that same thing possible when using zones with JRiver? For example, if keypad #1 is listening to source 2 from the computer can it be told to hit Next for source 2 rather then source 1?

Thanks,

Josh

Yes, its about 260-300. By maudio.

I am working on a cleaner solution for changing MB zones. Hang on ;)

Promixis
November 20th, 2006, 04:38 PM
Hi Mike,

would it be possible to have a look at your CAV6.6 gml files?


Regards,
Morten


Morten, I do not really use any GML's. With the G5 device manager all the zones populate automatically to NR. We should have another alpha this week showing this.

WinoOutWest
November 24th, 2006, 09:21 AM
I have also implented a JRMC-->Girder-->NetRemote-->Cav 6.6 setup for my buddy. Using a MAudio Revolution for one source and onboard sound for his second source. Works quite nicely - especially if you throw in a nice PDA to do your detailed browsing/selecting. He's quite happy with the setup.

Promixis
November 25th, 2006, 07:01 AM
I have also implented a JRMC-->Girder-->NetRemote-->Cav 6.6 setup for my buddy. Using a MAudio Revolution for one source and onboard sound for his second source. Works quite nicely - especially if you throw in a nice PDA to do your detailed browsing/selecting. He's quite happy with the setup.

Cool. Its a powerful combo.

netarc
December 2nd, 2006, 01:57 PM
I'll second this request.

I'm an HAI/Russound dealer and would like to be able to offer my clients something other then the $2300 Russound SMS.
Ditto that - we're also a Russound dealer, and I have some concerns re: the stability/flexibility of their SMS3; we've been investigating options to integrate JRMC with Russound (not just the CAV, but the UNO-S1, S2 and TS2 keypads), but haven't really come upon a solution yet that meets all our needs ... the list of requirements includes:

- display of artist & track info from the UNO keypads
- track/transport control from UNO
- viewing/selecting playlists from UNO
- ability to control _all_ zones from a standalone device (e.g., tablet PC, PDA or dedicated in-wall touchpanel); ideally, this same would also allow for control of Russound's ST2 AM/FM, XM and Sirius tuner modules



For your use I would like at NetRemote and Girder with J River Media Center. JRMC will do multizone output without multiple instances. You can control it easily using NetRemote and the Mediabridge from anywhere.

Girder talks to the Russound and receives events from the keypads/remotes. You can easily forward these to JRMC as needed. This side of the solution is doable but built. So it would require some work. I have not implemented or used the display side of the Russound RNET protocol but we could look at that for you.
It's great that one would be able to conrol the JRMC source directly from a PDA, that's 1/2 of the equation; but what chance of incorporating NetRemote/Girder control and 2way metadata transfer between the UNO keypads and JRMC? Additionally, do you folks expect you'd try to tackle control of the various Russound ST2 tuners from NetRemote?

Promixis
December 2nd, 2006, 03:59 PM
Hi,

For my Russound setup, I have the S1 keypads. I simply use them for quick local control of volume and power. The screen is too small for any useful metadata.

The Russound plugin will send text to the keypads but I have not tried the other models. No reason why it shouldn't work.

The plugin has code in place to talk to the tuners but I have yet to buy one to try it. IMHO, the sound from both XM and Sirus is so compressed and lousy sounding I just don't listen to them (I have Sirus in my car). Interet Radio is far better.

netarc
December 2nd, 2006, 09:54 PM
Hi,

For my Russound setup, I have the S1 keypads. I simply use them for quick local control of volume and power. The screen is too small for any useful metadata.

The Russound plugin will send text to the keypads but I have not tried the other models. No reason why it shouldn't work.

Thanks for the info, Mike - I guess the best place to start would be to download the trial versions, set up a config and play with it. I'm a n00b to NetRemote/Girder, though .... can you recommend a reference or two to get me started? e.g., is there an "intro to NetRemote" document anywhere?

Promixis
December 5th, 2006, 12:10 PM
Thanks for the info, Mike - I guess the best place to start would be to download the trial versions, set up a config and play with it. I'm a n00b to NetRemote/Girder, though .... can you recommend a reference or two to get me started? e.g., is there an "intro to NetRemote" document anywhere?

Hi, attached is the user guide to NR for version 1.1. It still needs to be updated for v 2 but most of the concepts are the same. On the NR product page there is also the manual for NetRetmote Designer.

I will get Ron to add you to the G5 alpha area so you can try out the new Device Manager which makes controlling the Russound and other devices very easy. What lighting are you using?

bymyhand
June 6th, 2007, 08:14 PM
Alright It has been awhile but I am back. I now have all my equipment and ready to get it all working. For my front end I am using xlobby. For my hardware I have a M-Audio Delta 1010LT that is supplying the multi source audio. For the mp3 software I am using three copies of winamp pointed to different audio outputs that are setup as “zones” in xlobby. Everything other then girder is setup and working beautifully. I can output separately to all my sources and it comes out crystal clear through my multi room controller. Now I would like to add some automation and see if I can do the whole “russound sms server replacement” that I originally asked about.

So I setup the CAV in girder and checked out the examples section of the russound.gml file. I tested out some of the examples and they worked great. I will be reading up on how to get this working with xlobby and such but I have some preliminary questions.

Does anyone have a list of all the commands I can send to the CAV? I tried looking through the forums, the girder docs, and the russound website and all I could find were the RS232 Codes from the russound website. If someone could provide me with all the commands and an example of thier usage that would be great!

Next I have seen posts where people have been able to press buttons on their UNO-S1 or UNO-S2 keypads and it changes something on the software in their pc. IE pressing next would go to the next song in winamp. How would I go about doing this. Just a quick example and I should be able to pick it up from there.

Finally Mike, you said you were able to send text to the S1 keypad. How do you do this, and could I take the scrolling text from winamp and send that to the keypad?

Thanks in advance for all your help on this!!
ByMyHand

jwilson56
June 6th, 2007, 08:21 PM
Hmmmm.... I would have gone JRMC and Netremote. They integrate seemlessly into each other and with Girder. I myself have a 5 zone system that is rock stable using NR2/G5/JRMC11. I also control all my lights, do CID, Weather,ect.

JRMC is so much better in handling the database side of a music library.

Check out my showcase:

http://www.promixis.com/forums/showthread.php?t=16567

John

Promixis
June 6th, 2007, 08:32 PM
Alright It has been awhile but I am back. I now have all my equipment and ready to get it all working. For my front end I am using xlobby. For my hardware I have a M-Audio Delta 1010LT that is supplying the multi source audio. For the mp3 software I am using three copies of winamp pointed to different audio outputs that are setup as “zones” in xlobby. Everything other then girder is setup and working beautifully. I can output separately to all my sources and it comes out crystal clear through my multi room controller. Now I would like to add some automation and see if I can do the whole “russound sms server replacement” that I originally asked about.

So I setup the CAV in girder and checked out the examples section of the russound.gml file. I tested out some of the examples and they worked great. I will be reading up on how to get this working with xlobby and such but I have some preliminary questions.

Does anyone have a list of all the commands I can send to the CAV? I tried looking through the forums, the girder docs, and the russound website and all I could find were the RS232 Codes from the russound website. If someone could provide me with all the commands and an example of thier usage that would be great!

Next I have seen posts where people have been able to press buttons on their UNO-S1 or UNO-S2 keypads and it changes something on the software in their pc. IE pressing next would go to the next song in winamp. How would I go about doing this. Just a quick example and I should be able to pick it up from there.

Finally Mike, you said you were able to send text to the S1 keypad. How do you do this, and could I take the scrolling text from winamp and send that to the keypad?

Thanks in advance for all your help on this!!
ByMyHand

Hi,

You should see the keypress events in the G log window (F4 to open). You can attach these to any action you want (ie winamp song changes).

Will have to check on the what the send text is again :( What keypads do you have? Note: I have tried this with S1's and the experience sucks. Just not worth it.

Also worth noting, the controlling of zones via the keypads and JRMC is automated in G5.

bymyhand
June 6th, 2007, 09:44 PM
First of all I really like Xlobby. I have included some screenies of my setup. I think it’s pretty sweet. :) Sorry for my ignorance but what is JRMC? Maybe I can use that instead of winamp to integrate into xlobby. Thanks for the button logger info that is really cool! I am using the UNO-S2 Keypads. I already have the Ibridge Dock and it acts just like a SMS sever without the internet radio. Just in case you don’t know it is the Ipod docking kit. It works pretty good. You can press the up and down arrows to select your playlists and then left and right to change the tracks. You then have the option to change between shuffle modes if you keep hitting the play button. On the display it shows the name of the ipod and then scrolls the artitst and title of the track. You can also see which playlist your selecting, and other responses when press a certain button. I would like to replicate this as much as possible. Also do you have a list of the available commands I am able to send to the unit? Or can I just take what I see from the log and make it into a new command?

Thanks,
ByMyHand

jwilson56
June 7th, 2007, 04:12 AM
J Rivers Media Center.

http://www.jrmediacenter.com/

Promixis
June 7th, 2007, 06:32 AM
Easiest to just grab the events from the logger and do what you please with them.

You can use the variable inspector (F12) to see the RNET functions. I will have to look at the text stuff again. My first experience was negative so I think I dropped it...

bymyhand
June 7th, 2007, 09:53 AM
Awesome thanks! I will try that out. Also I would be happy to test the text stuff for you if you need. Just let me know.

ByMyHand

bymyhand
June 10th, 2007, 10:28 PM
Ok, I have gotten just about everything working but the text. Did you remember how you were able to do It before? Also if you have any pointers on how you get the text from winamp that would be awesome! :)

Thanks,
ByMyHand

bymyhand
June 11th, 2007, 01:33 AM
I found this if it helps at all:

8 Displaying a String
Since the keypad contains a text display, we’ve provided a message that will allow you to send
text messages to All Keypads simultaneously or a Specific Keypad individually.

“Alignment” – When sending a message to display text on a Keypad the first Data byte sets
your Alignment (0x00 = Centered, 0x01 = Left justified).

“Flash Time” – Messages can be displayed constant or they can be flashed on the display for a
brief time. When sending a message to display text on a Keypad the second and third Data bytes
set the Flash Time. Flash Time defines how long the string is displayed. This is measured in
10ms increments with a value of 0x00 being constant.

“Null character” – A value of 0x00 used as a Data byte will be a text character of Null. A Null
text character is always used after the last text character in the display string. With a 12
character text message you would use a Null character as the 13th text character. A Null
character is also used for each unused text character at the end of the text display message if the
maximum number of Data bytes are not all used.

8.1 On All Keypads
The following example shows how to display a text message on All Keypads (or other devices
with a text display) in the system.
Byte # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Value F0 7F 00 00 00 00 70 00 02 01 01 00 00 00 01 00 10 00 ## ## ## ## ## ##
Byte # 25 26 27 28 29 30 31 32 33 34 35 36
Value ## ## ## ## ## ## ## ## ## ## xx F7
cc = Controller Number -1 (0x7F = All Devices = All Keypads)
zz = Zone Number -1
kk = Keypad Number -1
xx = Checksum
Byte #19 = Alignment (0x00 = Centered, 0x01 = Left justified)
Byte #20 = Low Byte of Flash Time
Byte #21 = High Byte of Flash Time
Byte #22 – #34 = ASCII text characters (Section 11 ASCII Character Set)

8.2 On A Specific Keypad
The following example shows how to display a text message on a Specific Keypad in the system.
This is accomplished by setting the Target Device ID for the particular keypad in question.
Byte # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Value F0 cc zz kk 00 00 70 00 02 01 01 00 00 00 01 00 10 00 ## ## ## ## ## ##
Byte # 25 26 27 28 29 30 31 32 33 34 35 36
Value ## ## ## ## ## ## ## ## ## ## xx F7
cc = Controller Number -1
zz = Zone Number -1
kk = Keypad Number -1
xx = Checksum
Byte #19 = Alignment (0x00 = Centered, 0x01 = Left justified)
Byte #20 = Low Byte of Flash Time
Byte #21 = High Byte of Flash Time
Byte #22 – #34 = ASCII text characters (Section 11 ASCII Character Set)

bymyhand
June 11th, 2007, 09:59 AM
Actually I have one more question. I kind of know how JRMC is setup and it seems like its setup like my frontend software. Which brings up some questions on how you got it to work with the key pads. Its seems that when you press play on your keypad it only references the controller number and the zone number. It does not reference the source number. And then on JRMC or my frontend you toggle, let’s say source 2, and then it clears out the playlist and you can select a new song. Here is the problem I am seeing. Since there is no reference to source, if you have two zones playing from two different sources you would start to run into some conflicts. Let me explain how:

Zone 1 selects source 1
(the software changes the interface to source 1)
Zone 1 presses play
(the software starts playing a song out of source 1)
(Zone 2 turns on and since someone is using source 1 it changes to source 2)
Zone 2 selects source 2
(the software changes the interface to source 2)
Zone 2 presses play
(the software starts playing a song out of source 2)
Zone 1 presses next song
(the software, since it’s still on the source 2 interface, changes the song for source 2 and not source 1)

See how the way they seem to interfere with each other because the commands aren’t tied to a certain zone. Did you run into this same issue and did you have to script something or how did you get around it?

Thanks,
ByMyHand

Promixis
June 11th, 2007, 11:30 AM
Hi,

Still haven't had a chance to look at the text send... :(

For JRMC, we use the MediaBridge (part of NR) which talks to JRMC (you could do this directly via G5 if wanted)

The Girder MediaBridge component (G5) matches zone and source names. So when a keypad on the Russound is selected, G takes for Source Name, looks for a match to a MediaBridge Zone (which controls JRMC) and then if it finds one, sends the appropriate command.

You could script around this if you know match the Russound source to the Winamp source.

bymyhand
June 11th, 2007, 02:47 PM
Ok, let me get this straight because I don’t really understand exactly everything your saying. Let you give you some more specifics of my setup and then we can see what would be my best option.

Again my frontend is Xlobby. In xlobby there is a plugin called XRemote that I use to call events from girder to xlobby. I basically setup the information I want in the plugin and then it exports a gml file for me to use in girder. I then load up that gml file and assign a russound keypad event to the specific action. Checking out the gml file it looks like all of the actions are “Girder 3 legacy actions” but I included my gml file for you to check out if you want. Finally when I press a key on the keypad it goes to girder, then sends a command to XRemote and it then interfaces with xlobby to run the command.

So with that info would it be even possible to use G5 to interface nicely with it or would I have to end up scripting something?

Thanks,
ByMyHand

Promixis
June 12th, 2007, 04:54 AM
So, does Xlobby take commands from and then send them to Winamp?

If so, then on the G side, you could script to determine which zone the keypad is on, then send a modified command to xlobby?

try this

local zoneinfo = RNET:GetZoneInfo (1,1)

table.print (zoneinfo)

2 questions... does xlobby and girder have to be on the same machine to talk? is there a ppc version of xlobby?

bymyhand
June 12th, 2007, 07:58 AM
Well technically xlobby just sends the play, stop, next commands to winamp but since xlobby manages all the files and playlists all the commands from girder have to go through xlobby to get all of the functionality.

I ran the script and got the attached output. So I am guessing that worked. I have really no experience with scripting in girder so if you have some helpful Ideas on how I would script this that would very appreciated. :)

For all the tests I have done, girder and xlobby had to be on the same machine. But this is ok because xlobby also works as a server for other xlobby clients. So my PPC version connects to this xlobby server and just uses the files on it. The PPC doesn’t need to keep anything on it but the executable. I can also do the same from another desktop computer. Or I can connect to the server with a standalone copy that will just share its database files, audio zones and not all the other the other flies. So if you’re worried about it working with other clients I should be good to go there.

bymyhand
June 12th, 2007, 10:30 AM
Well for the scripting let me see if I can you help out with the design and then maybe you can help me out with the actual script.

I think the best option would keep only one copy of xlobby running and have it control all of the zones. Then in girder I could do a couple of things.

1. I could setup a script file for each action I want. So I would have only one script file for all keypads that press play and then have another one for pause. Then I would put the six zone’s play command events under that script file. Then in the script it would pull the last event that came in then pull the zone number out of that event. You would then run the check source command and pull out the source info from that response. Once that is done you send a command to xlobby to change to the certain zone and then another command to send the action you want to complete. IE play.
2. Or if that is not going to work you could setup a set of script action files for each keypad. This way you would only assign one keypad to the script file and you would not need to pull that information from the event.

What do you think about this. Does this help you? Do you think this will be the best thing to do?

Thanks,
ByMyHand

Promixis
June 12th, 2007, 03:02 PM
RNETEventHandler = function (event,device,mod,payloads,id)
print ('rnet event',event,device,mod,payloads,id)
local _,_,event,controllerid,zoneid,key = string.find (event,'(%w+):(%d):(%d):(.+)')

if event and controllerid and zoneid and key then
print ('rnet keypad',event,controllerid,zoneid,key)
local rz = RNET:GetZoneInfo (controllerid,zoneid)
table.print (rz)
if rz then
-- send what ever info you need to xlobby here
--using rz.Source to see what source this zone is connected to
end
end
end




RNETEventHandlerID = gir.AddEventHandler ('*.',10025,10025,function (...) RNETEventHandler (unpack (arg)) end)

bymyhand
June 12th, 2007, 09:31 PM
I am having some issues with this script. It works but every time I run the script it seems like it keeps the old action and then adds the new one to it. This is my script:



RNETEventHandler = function (event,device,mod,payloads,id)
print ('rnet event',event,device,mod,payloads,id)
local _,_,event,controllerid,zoneid,key = string.find (event,'(%w+):(%d):(%d):(.+)')

if event and controllerid and zoneid and key then
print ('rnet keypad',event,controllerid,zoneid,key)
local rz = RNET:GetZoneInfo (controllerid,zoneid)
table.print (rz)
if rz then
if (rz.Source == 1) then
print 'hello'
gir.TriggerEventEx("play", 18, 0)
end
end
end
end




RNETEventHandlerID = gir.AddEventHandler ('*.',10025,10025,function (...) RNETEventHandler (unpack (arg)) end)


The first response I get is one hello. Then the next time I do it I get 2 hello’s, then 3 …etc. I tried putting a “RemoveEventHandler” at the end but then it didn’t seem to do anything but keep the old actions. Do you have any ideas?

Thanks,
ByMyHand

bymyhand
June 12th, 2007, 09:47 PM
Actually let me give you some more info. It seems that after I press the trigger button on my keypad once and press any other button it will repeat that last action only once. But I press the trigger button again it will start increasing. Not sure what that means but I hope it helps out. :)

ByMyHand

Rob H
June 13th, 2007, 01:51 AM
That script should only be run once, probably from a ScriptEnable event.

bymyhand
June 13th, 2007, 06:55 AM
This script has to run every time I press play to pull out the source. That is the only way the other zones don’t conflict with each other. It’s just that for some reason after the script runs it is somehow storing the last thing that happened. It’s weird because if I reset the scripting engine it will go away and then if I press stop, which is not setup to trigger that script, it will not do anything. But if I press play and it works then I can press any other button on my keypad and it will repeat what play just did. Even though it doesn’t match any of the clauses it still repeats what it has stored in memory. Then when you press play again and get two responses you can press any other button and get the same two responses back. So every time you press the button that triggers the script it will add to what it all had and then you can repeat that same amount of responses with any other button. It looks pretty obvious what it’s doing I just don’t know how to fix it. :P

ByMyHand

Promixis
June 13th, 2007, 08:13 AM
rob is right, just run the script once. the script has an eventhandler that captures and processes the rnet keypad events.

bymyhand
June 13th, 2007, 10:19 AM
Haha nice!! I got it now! Very nice! Now I don't need to assign devices to these at all. Just pick out the key and source and assign that to a certain action in xlobby. Then that will work for everything, very simple. Thanks a bunch! This will save me a lot of setup time.

Thanks again! :)
ByMyHand

kanebullen
October 8th, 2007, 07:29 AM
Hi,

Also worth noting, the controlling of zones via the keypads and JRMC is automated in G5.

Hi Mike,

Just wondering what is required to set this up? I have the names of my zones matching between the Russound setup and JRMC, but the keypad button presses don't seem to make their way to JRMC? (I can see them in the girder log though)

Otherwise, how do I target a particular zone in JRMC from luascript? (ie, can I send a "next" command to a zone apart from the currently active zone?).

Also, how do I buy the Russound plugin - I'm pretty sure Girder and Netremote are going to do everything I need them to do, so will need to get the full pack including russound plugin, but can't seem to see that on the promixis site?

Cheers

Kane