Meridian Roon Extension

Hi Danny,

I have connected a set of (old) D33’s to my MC200. I had trouble controlling their volume through an AC12. I also tried to control their volume directly from other Meridian series 500 gear. So far nothing happened. Today I connected an Global Caché iTach to my D33’s and with vMSR I could control their volume. So could it be possible to control their volume through the ROON extension?

Pieter

that means your node-meridian library isnt updated. npm update? grep for 6ii03 in node_modules/node-meridian/lib.js to make sure you are

Yes – that’s what we are trying to get working – I have it working on newer gear, but the DSP33 seems to speak an older protocol.

Danny, what do I have to do to try it with my gear? I don’t have any extensions at the moment.

Pieter

Think it was updated but npm update returns the following:


C:\Users\Matt\Desktop\m2>

C:\Users\Matt\Desktop\m2>npm update
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
roon-extension-meridian@1.0.0 C:\Users\Matt\Desktop\m2
+-- node-meridian@1.0.0  (git://github.com/roonlabs/node-meridian.git#5c648ebc9957dcc0fd887ed9f3270c4fdd170556)
+-- node-roon-api@0.0.1  (git://github.com/roonlabs/node-roon-api.git#37fb0761f9b9d3482c1f5977ceaf6c555d13b5ca)
+-- node-roon-api-settings@1.0.0  (git://github.com/roonlabs/node-roon-api-settings.git#67cd8ca156c5bcd01ea63833ceaaec6d6a79654d)
+-- node-roon-api-source-control@1.0.0  (git://github.com/roonlabs/node-roon-api-source-control.git#31ba0da65baab2261df35b0c787516e6064532d6)
+-- node-roon-api-status@1.0.0  (git://github.com/roonlabs/node-roon-api-status.git#504c918d6da267e03fbb4337befa71ca3d3c7526)
`-- node-roon-api-volume-control@1.0.0  (git://github.com/roonlabs/node-roon-api-volume-control.git#e3e012b2376b87a5af82c10cc5cc9f4a53e2907a)

npm WARN roon-extension-meridian@1.0.0 No repository field.

nothing wrong there…

do you have a package-lock.json file? if so, delete it and try npm update again

@pieterdvr – how’s your unix/command line/nodejs skills? this stuff is not turn-key yet.

No package-lock.json file to delete!

@Hectorson Try npm update again… I just pushed a fix. I forgot something.

sorry, coding blindly here – can’t test because I lack the devices

Daredevil! I ordered the cable – will be in in a few days.

I am in IT since 1966, but I have no experience with unix. So I am able to type command line commands. If you think my situation is interesting I am willing to add my experience.

Pieter

npm update didn’t work but re downloading and npm install did.

Have a functional volume slider! Time to order a RPi or two!

Thanks.

1 Like

ok great… does standby/mute work too? If you use your IR remote to do the following, does the state reflect in Roon?

  • volume change via remote
  • switching sources via remote
  • mute via remote
  • unmute via remote
  • standby via remote
  • back out of standby via remote

if you are on source A, but Roon is configured for source B, when you hit play in Roon, does it switch to source B?

Until I package this up, this may be too much for just “typing command line commands”.

This will involve getting nodejs environment up, grabbing the extension, installing dependency modules, and running… once running, keeping it “up” for permanent usage is not trivial.

I am pretty happy to see @Hecterson running a new set of speakers I hadn’t added support for previously. My own system is working well too.

Don’t hold your breath on this packaging up, but it is on the roadmap. Extensions can be really powerful, but they are still for tinkerers right now.

Thank Danny,

I will wait.

Pieter

OK, the 33s have no IR so have connected a 568 Surround Processor to create comms commands.

When I enable source switching and click play within a couple of seconds it stops.

volume change via front panel on 568:
Volume change is reflected in Roon

switching sources via remote
Command is received and shown in the trace.

mute and unmute via front panel on 568:
Mute functions but state is not reflected in Roon, you can force this by clicking on the volume slider and not changing the volume. Roon then does reflect correct state.
Unmuting on 568: Roon does reflect correct state

standby via front panel on 568:
Not reflected in Roon

back out of standby front panel on 568:

if you are on source A, but Roon is configured for source B, when you hit play in Roon, does it switch to source B?
Yes source switching functions

not sure how I didn’t notice earlier but when making a change in volume can cause music to stop. Restarting extension can fix this but end up back with the same problem after changing volume a few times.

Need trace from when something doesn’t work… Like mute. Also about music stopping

Sorry for delay.

This trace was from after changing device setting to allow source switching then change vol.

Music stopped. Wont restart without removing source switching extension.


[Meridian] writing: VN40
[Meridian] received: VN40
[Meridian Extension] received source change from device: VN40
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received: #S3028
[Meridian Extension] received source change from device: #S3028
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received:
[Meridian Extension] received source change from device:
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received: CD    40
[Meridian Extension] received volume change from device: 40
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":40,"volume_step":1,"is_muted":false,"control_key":1}]}
[Meridian Extension] received source change from device: CD
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":40,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"selected","control_key":"1"}]}
<- REQUEST 40399 com.roonlabs.sourcecontrol:1/convenience_switch {"control_key":"1"}
[Meridian] writing: CD
-> COMPLETE 40399 Success
[Meridian] received: CD
[Meridian] received: CD    40
[Meridian] received:
[Meridian Extension] received source change from device:
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":40,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received: #SF028010000000151
[Meridian Extension] received source change from device: #SF028010000000151
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":40,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}

Just because it happened whilst I was sitting at the PC below is the trace from when a volume change resulted in music stopping. This was with no source switching extension selected in roon.


[Meridian Extension] received source change from device:
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":30,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received: CD    35
[Meridian Extension] received volume change from device: 35
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
[Meridian Extension] received source change from device: CD
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"selected","control_key":"1"}]}
<- REQUEST 197 com.roonlabs.volumecontrol:1/set_volume {"control_key":"1","mode":"relative","value":-5}
-> COMPLETE 197 Success
[Meridian] writing: VN30
[Meridian] received: VN30
[Meridian Extension] received source change from device: VN30
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received: #S301E
[Meridian Extension] received source change from device: #S301E
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received:
[Meridian Extension] received source change from device:
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":35,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"deselected","control_key":"1"}]}
[Meridian] received: CD    30
[Meridian Extension] received volume change from device: 30
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":30,"volume_step":1,"is_muted":false,"control_key":1}]}
[Meridian Extension] received source change from device: CD
-> CONTINUE 1 Changed {"controls_changed":[{"display_name":"Meridian","volume_type":"number","volume_min":1,"volume_max":99,"volume_value":30,"volume_step":1,"is_muted":false,"control_key":1}]}
-> CONTINUE 2 Changed {"controls_changed":[{"display_name":"Meridian","supports_standby":true,"status":"selected","control_key":"1"}]}

I wonder what those # messages are… the rest is just echos back… I need to ignore the echos… these older devices rs232 was kinda meant for console level access and not really to be used an api.

I have a new change to node-meridian (which will require npm install? npm update?) That should fix this the parsing of these other random messages as source changes.

However, I’m flying to CEDIA right now and the stupid JetBue WiFi wont let me push the change over SSH. i’ll push it when I am at hotel.