Welcome, Guest
Username: Password: Remember me
This is the optional Forum header for the Suggestion Box.
  • Page:
  • 1

TOPIC:

SHD presets per input selection / control APIs. 2 years 3 months ago #42898

  • rhollan
  • rhollan's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
  • Posts: 186
  • Thank you received: 21
It would be real nice if changing input selection on the SHD can select a per-input preset and volume, with the option to lock either (so some inputs with volume control done elsewhere could be safely set to 0 db without blasting one's speakers if the input was changed).

The obvious application is integrating a home theatre output requiring no further processing or volume control with a high-res audio input that needs both.

On Edit: The more I think about this, the more I want it, particularly on the SHD.

See, I have a home theatre setup with two nanoAVRs (the first for bass management, the second for Dirac Live), with digital audio de-embedded via an HDTV Supply HDMI to SDI and Blackmagic SDI audio deembeder, sent to a Lucid ADA 8824 for D to A, and Crown and Outlaw Audio amps. This is fine for home theatre and works very well, but the specs are lacking a bit for two channel stereo listening.

I would really like to integrate an SHD for that purpose. But, here's the rub: while it has the inputs for the front left and right channels from my theatre system, I don't want any additional processing, nor volume control. The former is easy via preset selection, but the latter is not: I'd have to remember to set volume to 0 dB when using the home theatre and selecting the right preset (no processing), and, more importantly, remember to reduce the volume when switching to stereo listing mode. It would be far nicer if these could be combined into a single step.

An alternative is something like the Emotiva XSP-1, which accepts home theatre and stereo inputs, and offers dual stereo subwoofer bass routing for the front two channels (something the SHD can do too, and better), with fixed volume for theatre inputs, and variable volume control for stereo inputs. It also costs $1249, though for its specs and what it does, that is a fair price. I really don't want to have to get an SHD and an XSP-1.

The only feature the SHD would need is specification of (a) preferred preset for each input, (b) initial volume for each input, (c) with a means to lock either, so it can't be changed except through the config application. Alternately, presets could have (a) allowed input selections, and (b) fixed or variable volume settings, with locks. I think it makes more sense to associate these settings with inputs, than presets, but either way works (and many preamps already have such a feature, per-input).

In use, one would select an input (input-centric), and be switched to either the default preset, or the last preset used on that input; and the default volume or last volume used on that input (which might be locked). In the preset-centric case, selecting a preset would select either the default input for that preset, or the last input used with it, and the default volume for that preset, or the last volume used with it.

Switching presets (input centric), would be limited to presets allowed for the current input, and switching inputs (preset centric) would be limited to inputs allowed for the current preset.

I understand miniDSP has finite resources, but it is extremely frustrating for those of us who might have the skills to enhance their products (and share those enhancements), but can't. Simply publishing the USB and/or ethernet interfaces used between config and control apps, and the devices themselves would let us write our own UIs for functionality like this, and make for far more useful products. I understand miniDSP can't offer "hand-holding" in such areas, but they could certainly be published "without support or warranty". Lucid did this when publishing the SysEx commands for their ADA 8824, so I could set the levels via a USB to MIDI adapter under Linux, even thought their legacy app to do so ran on Windows.

Furthermore, publishing such interfaces would allow for the development of equipment (likely Raspberry Pi-based, or similar) to do things like coordinated control of volume via USB (or ethernet) of multiple miniDSP products, like the use of dual DDRC-88As in the showcased 16 channel Dirac Live Atmos or dual nanoAVRs "Gonzo" setups.

On Edit 2: If this is too complicated, a Home Theatre Bypass option on each input would set the volume to 0 dB (because it is controlled elsewhere). One would still have to switch to a non-processing preset (or have an additional option to indicate the preset when a Home Theatre Bypass input is selected), but at least one would not blast one's speakers (assuming the home theatre setup had a volume control, which it should).
The following user(s) said Thank You: loran.maury

Please Log in or Create an account to join the conversation.

Last edit: by rhollan.

SHD presets per input selection / control APIs. 2 years 3 months ago #42928

  • kj
  • kj's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 1
  • Thank you received: 0
I also think this would be very useful feature. I would like to use SHD as a preamp and having option to set HT bypass on analog input would allow to integrate home ciname easily

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 10 months 3 weeks ago #52003

  • osiig
  • osiig's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 2
  • Thank you received: 0
I agree. Necessity to preset a volume when integrating the SHD as part of a multi-channel system to ensure all levels align. When switching with a remote Hub e.g. Logitech the right preset with correct default volume could be programmed.

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 9 months 2 weeks ago #52828

  • lyons238
  • lyons238's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 6
  • Thank you received: 0
I too would really like volume settings to go along with the presets, the ability to set a base volume when that preset is switched to and the ability to set a max volume for each preset as well. it would be a heck of a lot safer as I often find myself either way to low or high in volume depending on the source and preset being used.

edit - I actually have a harmony elite remote i just got recently so I hadn't thought about setting up some volume commands with that that's a good idea! ill try that. has anyone had success in doing so?

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 9 months 2 weeks ago #52852

  • mrene
  • mrene's Avatar
  • Offline
  • Senior Member
  • Senior Member
  • Posts: 44
  • Thank you received: 27

Simply publishing the USB and/or ethernet interfaces used between config and control apps, and the devices themselves would let us write our own UIs for functionality like this, and make for far more useful products


Could you try here github.com/mrene/minidsp-rs/releases ? I'm looking for reports on how it works with other devices.

I've documented what I've discovered about the meaning of each command in the published crate at docs.rs/minidsp/ (see the commands module for lower-level info)

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 9 months 2 weeks ago #52870

  • osiig
  • osiig's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 2
  • Thank you received: 0
Unfortunately, to my knowledge there is no SHD command for setting volume to a specific value.

In principle you could add a repeat series of Volume Down IR commands to your Harmony Hub activity. However,

"To change the volume, rotate the encoder knob. Volume changes in 0.5 dB steps. Minimum volume is -127.5 dB and maximum volume is 0.0 dB."

Would mean 255 Volume Down commands to ensure starting from -127.5 dB and then however many Volume Up commands to get the desired Activity volume.

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 5 months 2 weeks ago #55336

  • nealsal
  • nealsal's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 11
  • Thank you received: 0
Following up on this- I have a RasPI in my system that converts Harmony play/pause/skip commands into Roon commands for SHD. Has anyone had luck creating a 'go to volume -12.5' command for Harmony? Or some other solution?

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 5 months 1 week ago #55407

  • loran.maury
  • loran.maury's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 5
  • Thank you received: 0
To me, the suggestion below is one of the most interesting and needed features that could be added to the miniDSP

It would be real nice if changing input selection on the SHD can select a per-input preset and volume, with the option to lock either (so some inputs with volume control done elsewhere could be safely set to 0 db without blasting one's speakers if the input was changed).

The obvious application is integrating a home theatre output requiring no further processing or volume control with a high-res audio input that needs both.

On Edit: The more I think about this, the more I want it, particularly on the SHD.

See, I have a home theatre setup with two nanoAVRs (the first for bass management, the second for Dirac Live), with digital audio de-embedded via an HDTV Supply HDMI to SDI and Blackmagic SDI audio deembeder, sent to a Lucid ADA 8824 for D to A, and Crown and Outlaw Audio amps. This is fine for home theatre and works very well, but the specs are lacking a bit for two channel stereo listening.

I would really like to integrate an SHD for that purpose. But, here's the rub: while it has the inputs for the front left and right channels from my theatre system, I don't want any additional processing, nor volume control. The former is easy via preset selection, but the latter is not: I'd have to remember to set volume to 0 dB when using the home theatre and selecting the right preset (no processing), and, more importantly, remember to reduce the volume when switching to stereo listing mode. It would be far nicer if these could be combined into a single step.

An alternative is something like the Emotiva XSP-1, which accepts home theatre and stereo inputs, and offers dual stereo subwoofer bass routing for the front two channels (something the SHD can do too, and better), with fixed volume for theatre inputs, and variable volume control for stereo inputs. It also costs $1249, though for its specs and what it does, that is a fair price. I really don't want to have to get an SHD and an XSP-1.

The only feature the SHD would need is specification of (a) preferred preset for each input, (b) initial volume for each input, (c) with a means to lock either, so it can't be changed except through the config application. Alternately, presets could have (a) allowed input selections, and (b) fixed or variable volume settings, with locks. I think it makes more sense to associate these settings with inputs, than presets, but either way works (and many preamps already have such a feature, per-input).

In use, one would select an input (input-centric), and be switched to either the default preset, or the last preset used on that input; and the default volume or last volume used on that input (which might be locked). In the preset-centric case, selecting a preset would select either the default input for that preset, or the last input used with it, and the default volume for that preset, or the last volume used with it.

Switching presets (input centric), would be limited to presets allowed for the current input, and switching inputs (preset centric) would be limited to inputs allowed for the current preset.

I understand miniDSP has finite resources, but it is extremely frustrating for those of us who might have the skills to enhance their products (and share those enhancements), but can't. Simply publishing the USB and/or ethernet interfaces used between config and control apps, and the devices themselves would let us write our own UIs for functionality like this, and make for far more useful products. I understand miniDSP can't offer "hand-holding" in such areas, but they could certainly be published "without support or warranty". Lucid did this when publishing the SysEx commands for their ADA 8824, so I could set the levels via a USB to MIDI adapter under Linux, even thought their legacy app to do so ran on Windows.

Furthermore, publishing such interfaces would allow for the development of equipment (likely Raspberry Pi-based, or similar) to do things like coordinated control of volume via USB (or ethernet) of multiple miniDSP products, like the use of dual DDRC-88As in the showcased 16 channel Dirac Live Atmos or dual nanoAVRs "Gonzo" setups.

On Edit 2: If this is too complicated, a Home Theatre Bypass option on each input would set the volume to 0 dB (because it is controlled elsewhere). One would still have to switch to a non-processing preset (or have an additional option to indicate the preset when a Home Theatre Bypass input is selected), but at least one would not blast one's speakers (assuming the home theatre setup had a volume control, which it should).

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 2 months 3 weeks ago #56212

  • cunim
  • cunim's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 5
  • Thank you received: 0
How did all this work out?  I have an SHD on order and a Harmony Elite hub remote.  That has the SHD in its device listing, and I am able to select presets via the Harmony -though I have yet to actually try it.

I will just use the SHD to control a pair of subs.  Bass response profiles for stereo and HT are different.  What I am hoping to do is to establish two presets with different profiles, one for home theater and one for stereo.  Then I can assign one preset to each of the activities.  Selecting "Watch bluray" would load a bass profile in preset 1 (as well as set theater bypass in the preamp, select inputs in the prepro, etc.).  "Listen to music" would load preset 2.  Loading all the activity settings with one button is very convenient and now works.  Is SHD preset selection on the Harmony going to be possible when I add the SHD to the system?

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 2 months 3 weeks ago #56248

  • devteam
  • devteam's Avatar
  • Offline
  • Administrator
  • Administrator
  • Posts: 8971
  • Thank you received: 1299
Dear All, 

Some great feedback already in the below and some great ideas for room for improvement. Work from @mrene is already a great start indeed if you want USB control from your RPI. 

While some of the request here can't easily be done (e.g. max level) as it's not supported by the firmware/DSP/software, some can indeed be done on the SHD via the REST API. 
volumio.github.io/docs/API/REST_API.html
i.e. master volume control/play/start/pause. We tested the below commands fine. 
 

Volumio also has support for Preset/Source selection for the SHD. We just don't know yet how to access them via the REST API but will ask Team Volumio for more feedback. Stay tuned. 

DevTeam
miniDSP, building a DSP community one board at a time.
Attachments:

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 1 month 3 weeks ago #56784

  • frieburd
  • frieburd's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 2
  • Thank you received: 0
I would really like to access this functionality on the SHD, too.  I'm working on an LMS plugin that provides for hardware volume control of the SHD using the published REST api's for volumio.  Works well but feels incomplete without being able to control the preset and source selections (and of course Dirac on/off to round out the package).  The work needed to get volume and mute well behaved in my plugin was a bit tricky, but I'm thinking the remaining functionality would be relatively simple.....if I only knew the API.  @devteam, please do follow up on this thread and make the remainder of the api public.

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 1 month 2 weeks ago #56902

  • BossBunos
  • BossBunos's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 1
  • Thank you received: 1
I was looking into the same functionality. Coming from Hegel that have a published protocol, I had to do some debug work in volumio here.
It seems like its working with websockets. The basic commands are described here . For the SHD there are some custom commands.
For input selection:
4215["browseLibrary",{"uri":"inputs/id/2","prevUri":"inputs"}]
Where the id represents the input.
1 = Toslink
2 = SPDIF
3 = AES-EBU
4 = RCA
5 = XLR
6 = USB

I don't know yet how to select LAN.
The same type of service is also available for the 4 presets:
4222["browseLibrary", {uri: "presets/id/2", prevUri: "presets"}]
Where the id just matches the preset number (1 trough 4).

When I have some more time I'll add a app to Homey (my current domotics controller)
The following user(s) said Thank You: saaibo

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 1 month 1 week ago #56922

  • frieburd
  • frieburd's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 2
  • Thank you received: 0
Jannes, I too discovered these uri's by looking at the volumio code on the shd.  They are not currently exposed via volumio's REST api, although it appears that volumio includes a mechanism to expose them and route their handling to the shd plugin, where it could tie in to the same code that the websocket requests are handled.  I'll note that no other plugin is using this mechanism (at least in this version of volumio, 1.099), so whether its fully functional or not remains to be seen.  I might spend some time fleshing this aspect out, since using websockets is a non-starter for my needs (no support for websocket client in current LMS, nor would I want to try and add it).

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 1 month 1 week ago #56971

  • saaibo
  • saaibo's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 4
  • Thank you received: 0

I was looking into the same functionality. Coming from Hegel that have a published protocol, I had to do some debug work in volumio here.
It seems like its working with websockets. The basic commands are described here . For the SHD there are some custom commands.

Thank you for sharing BossBunos!

For input selection:
4215["browseLibrary",{"uri":"inputs/id/2","prevUri":"inputs"}]
Where the id represents the input.
1 = Toslink
2 = SPDIF
3 = AES-EBU
4 = RCA
5 = XLR
6 = USB

How do you pass those to the SHD? I tried to connect by using a client (socket.io-client) from a linux CLI, to no extent (I get a "xhr poll error" when I go https, a generic "server error" when I test connection on http). Total node noob here, please help me with (or point me to) some basics.

TIA!

Please Log in or Create an account to join the conversation.

SHD presets per input selection / control APIs. 1 month 4 days ago #57008

  • saaibo
  • saaibo's Avatar
  • Offline
  • New Member
  • New Member
  • Posts: 4
  • Thank you received: 0
Ok, got this through Volumio’s websocket API. I have an always-on Raspberry Pi on my LAN, it’s got a Debian derivative distro running: I made a directory inside my home, set it up with a basic node config, and added the socket.io-client package, version 1.7.4, as that is server’s version on my SHD.

I can now call the following code by iPhone’s Shortcuts ssh shell command:
var socket = require('socket.io-client')('http://minidsp-shd');

//Switch to RCA input
socket.emit('browseLibrary',{uri:'inputs/id/4'});

//Set volume to 80%
socket.emit('volume',80);

//Load preset 3
socket.emit('browseLibrary',{uri:'presets/id/3'});

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

sleep(1000).then(process.exit);

To be well noticed: YMMV, I do not take any responsibility; I guess this could work from any *nix CLI (most NAS’s have one) but, again, please do not fiddle with turfs you are not confident on.

Please Log in or Create an account to join the conversation.

Last edit: by saaibo.
  • Page:
  • 1
Moderators: devteam