I have the Quadra plugin as it was my dream synth from the age of 16 over 40 years ago. Now I'm building an external hardware controller for it and I have hit a few snags, much like I have with Arturia products. I like to shoot for the stars and fail miserably, but in this case I'm hoping you can fix this.
When controlling with CC messages we are limited to 119 usable messages as various others are reserved for specific tasks, so out of 128 only 119 are available. So that means using CC alone it is not possible to control the whole Quadra as there are more than 119 controls. Is it possible to implement NRPN messages to expand the range to 16000+ possible messages.
Also, although I haven't fully tested things yet, it seems the CC messages just toggle the parameter regardless of value, normally you would send a CC message and value 0 to turn off a parameter and anything over 63 to turn it on. But the quadra seems to just toggle on receiving the same message. Am I wrong on this as I have only been testing with note values so far and they just seems to toggle, that would seems normal as notes cant really have variables besides velocity which is hard to control manually, but simple with a MIDI controller.
Update: I have tested the CC messages with a Launch control and it seems CC messages with a value of 0 do nothing and a value of 127 toggle which seems totally wrong as you need to press the buttons twice for anything to happen. Testing on the Arturia CS80 V3 behaves as expected with the button toggling the parameter on each press as it changes between 0 and 127.
NRPN controllers
NRPN controllers
- Attachments
-
- 20230723_164043_Medium.jpg (430.81 KiB) Viewed 8246 times
Re: NRPN controllers
It's been a while since I posted the request, now the controller is nearing completion, is there any news on the toggling of CC messages or NRPN implementation.
https://youtube.com/shorts/JckSRK87uQY? ... jh8o-4YFya
https://youtube.com/shorts/JckSRK87uQY? ... jh8o-4YFya
-
- Posts: 625
- Joined: Mon Nov 15, 2021 9:23 pm
Re: NRPN controllers
I suspect you've just asked a question in an area not too many of us know much about. At this point, why not make it a formal question to CA's support site?
https://cherryaudio.kayako.com/
Reid
https://cherryaudio.kayako.com/
Reid
Cyberwerks Heavy Industries -- viewforum.php?f=76
Re: NRPN controllers
I suspect that the MIDI implementation of the buttons is as follows:
CC controller value >= x, after being < x previously
Treat as a "Button Down / Depressed" event.
CC controller value < x, after being >= x previously
Treat as a "Button Up / Released" event.
Edit: (Based on a quick experiment, the Depress / Release threshold value 'x' appears to be 64 for the Quadra buttons.)
Only the pulg-in itself knows the internal state of the parameter related to that button, and it only communicates that to the outside world through the on-screen LED. i.e., there is no way for an external MIDI device to monitor the state of those LEDs, and hence derive the internal state of those parameters. This is even worse if several buttons are grouped as a set of related 'radio buttons'.
If you load up a saved patch, the internal parameter state will be updated and the on-screen LEDs will be updated to reflect this. However, there will be no events sent from the plug-in to the outside world. The only way I could imagine updating your hardware's LEDs is to monitor the pixels of the plug-in's window. Even if you did this, there's no guarantee that the entire panel will be on-screen at all times, unless you run it as an exclusive stand-alone, rather than a plug-in within a host DAW.
TL;DR: I don't think there is a way that your external controller design can ever work 100% as you intended (beautiful as it is). Maybe concentrate on implementing sliders, switches and buttons, and forget about the LEDs?
CC controller value >= x, after being < x previously
Treat as a "Button Down / Depressed" event.
CC controller value < x, after being >= x previously
Treat as a "Button Up / Released" event.
Edit: (Based on a quick experiment, the Depress / Release threshold value 'x' appears to be 64 for the Quadra buttons.)
Only the pulg-in itself knows the internal state of the parameter related to that button, and it only communicates that to the outside world through the on-screen LED. i.e., there is no way for an external MIDI device to monitor the state of those LEDs, and hence derive the internal state of those parameters. This is even worse if several buttons are grouped as a set of related 'radio buttons'.
If you load up a saved patch, the internal parameter state will be updated and the on-screen LEDs will be updated to reflect this. However, there will be no events sent from the plug-in to the outside world. The only way I could imagine updating your hardware's LEDs is to monitor the pixels of the plug-in's window. Even if you did this, there's no guarantee that the entire panel will be on-screen at all times, unless you run it as an exclusive stand-alone, rather than a plug-in within a host DAW.
TL;DR: I don't think there is a way that your external controller design can ever work 100% as you intended (beautiful as it is). Maybe concentrate on implementing sliders, switches and buttons, and forget about the LEDs?
______________________
Dome Music Technologies
Dome Music Technologies
Re: NRPN controllers
For what its worth, I did a quick test of some CA Quatra buttons in VM and they seem to have been coded at bona fide toggles (at least the ones I tried. In other words: Send data = ON changes the state, zero out and send another state changes the state again. I'll have time to test that more in 2-3 days (too much to do) if no one else has the time to confirm that the CC/Automation is written as State Change parameter toggles.
PS: I didn't have time to test if the implementation simulates press/release state cycles, but that that explanation makes sense.
PS: I didn't have time to test if the implementation simulates press/release state cycles, but that that explanation makes sense.
Re: NRPN controllers
From what I can see, they do respond as toggles, to make a setting of a button I have to send CC number + 127 and CC number + 0 to set it to one state and CC number + 127 and CC number + 0 to set it to another, the slide switches will respond with CC + 0 for off and CC + 127 for on, but the bottons do not. I have tried all combinations of sending CC messages and notes.
What I would like to see is sending CC number + 127 = on state and CC number + 0 = off state for buttons, that allows automation from a DAW, external controller etc as you know the state of the button, currently you cannot fix the state of a button, you can only toggle it from its current state.
What I would like to see is sending CC number + 127 = on state and CC number + 0 = off state for buttons, that allows automation from a DAW, external controller etc as you know the state of the button, currently you cannot fix the state of a button, you can only toggle it from its current state.
Re: NRPN controllers
Hi Reid
Yes, I am in contact with Cherry and I have asked for a feature request for toggling of paramters.
Craig
Yes, I am in contact with Cherry and I have asked for a feature request for toggling of paramters.
Craig
UrbanCyborg wrote: ↑Thu Aug 31, 2023 11:44 am I suspect you've just asked a question in an area not too many of us know much about. At this point, why not make it a formal question to CA's support site?
https://cherryaudio.kayako.com/
Reid
Re: NRPN controllers
Yes that did cross my mind to forget about LEDs, but it still begs the question that if you want to automate fully then you need to be able to set the status of the button/slider/slideswitch to the precise position and not just hope its right. So the feature to send 0 or 127 to switch a button off an on would be very useful, not only for my use case, but anyone controlling the Cherry Audio VSTs from a DAW or an external controller.utdgrant wrote: ↑Thu Aug 31, 2023 12:21 pm I suspect that the MIDI implementation of the buttons is as follows:
CC controller value >= x, after being < x previously
Treat as a "Button Down / Depressed" event.
CC controller value < x, after being >= x previously
Treat as a "Button Up / Released" event.
Edit: (Based on a quick experiment, the Depress / Release threshold value 'x' appears to be 64 for the Quadra buttons.)
Only the pulg-in itself knows the internal state of the parameter related to that button, and it only communicates that to the outside world through the on-screen LED. i.e., there is no way for an external MIDI device to monitor the state of those LEDs, and hence derive the internal state of those parameters. This is even worse if several buttons are grouped as a set of related 'radio buttons'.
If you load up a saved patch, the internal parameter state will be updated and the on-screen LEDs will be updated to reflect this. However, there will be no events sent from the plug-in to the outside world. The only way I could imagine updating your hardware's LEDs is to monitor the pixels of the plug-in's window. Even if you did this, there's no guarantee that the entire panel will be on-screen at all times, unless you run it as an exclusive stand-alone, rather than a plug-in within a host DAW.
TL;DR: I don't think there is a way that your external controller design can ever work 100% as you intended (beautiful as it is). Maybe concentrate on implementing sliders, switches and buttons, and forget about the LEDs?
Re: NRPN controllers
I tried running Quadra as a VST within Reason. I recorded a section whereby I was toggling the Poly Synthesizer section's "NOTE TRIG" state from SINGL to MULT and back again, several times (using the mouse to press the button on-screen).craigyb wrote: ↑Sun Sep 03, 2023 11:36 am From what I can see, they do respond as toggles, to make a setting of a button I have to send CC number + 127 and CC number + 0 to set it to one state and CC number + 127 and CC number + 0 to set it to another, the slide switches will respond with CC + 0 for off and CC + 127 for on, but the bottons do not. I have tried all combinations of sending CC messages and notes.
What I would like to see is sending CC number + 127 = on state and CC number + 0 = off state for buttons, that allows automation from a DAW, external controller etc as you know the state of the button, currently you cannot fix the state of a button, you can only toggle it from its current state.
Now, the interesting thing was that Reason recorded the STATE of the NOTE TRIG parameter, not just the fact that the button had been pressed and released multiple times. As evidence, whenever I replayed that section within Reason, it would restore the STATE of the parameter that was recorded previously - it didn't simply toggle from its arbitrary current state.
It occurs to me that the Quadra plug-in MUST be sending out some kind of state message to the host DAW through the VST API, as Reason is recording the absolute state of a toggled parameter, not just the fact that the button has been pressed then released.
Unfortunately, the MIDI implementation does not appear to be able to report state.
______________________
Dome Music Technologies
Dome Music Technologies
Re: NRPN controllers
Sometimes though, a button can be used to cycle round many different states, not just toggle between "On" and "Off". For example, the "STEP" button on Voltage Modular's 8 STEP SEQUENCER module.craigyb wrote: ↑Sun Sep 03, 2023 11:41 am Yes that did cross my mind to forget about LEDs, but it still begs the question that if you want to automate fully then you need to be able to set the status of the button/slider/slideswitch to the precise position and not just hope its right. So the feature to send 0 or 127 to switch a button off an on would be very useful, not only for my use case, but anyone controlling the Cherry Audio VSTs from a DAW or an external controller.
______________________
Dome Music Technologies
Dome Music Technologies