Diva midi control

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Just bought diva and trying to understand some details of manual

Diva has 4 modes of midi control:

Continuous 7bit - 7-bit MIDI CC (standard) - clear
Continuous 14bit - 14-bit MIDI CC - almost clear: sending values at 14 bit resolution using MSB/LSB CC# pairs (CC# 0-31 for MSB + CC# 32-63 for LSB)

Encoder 127 - unipolar encoders - not clear
Encoder 64 - bipolar encoders - not clear too, but looks like the same as previous with 64 is 0, 0 is -63, 172 is +63 :)

1. What is Encoder 127?
2. Is there a way in DIVA of supporting rotary encoders?
3. Is there a way to request current value of controlled param?
Murderous duck!

Post

david.beholder wrote:Encoder 127 - unipolar encoders - not clear
Encoder 64 - bipolar encoders - not clear too, but looks like the same as previous with 64 is 0, 0 is -63, 172 is +63 :)
1. What is Encoder 127?
2. Is there a way in DIVA of supporting rotary encoders?
3. Is there a way to request current value of controlled param?
1. Encoder 127 and Encoder 64 are relative-based encoder offsets where 127 and 64 are the number that they start from. Depending how hard you turn the knob sends a midi offset from that number. 64 tends to be used for knobs that by default are set to the middle position (pan) and 127 tends to be used for knobs that have 0/127 as the default (volume).
2. I assume you mean by this question "relative-offset" encoders. Yes. It's done in #1. You'll have to read your device manual on how to setup the knobs into the appropriate mode. For example the BCF2000 has "Relative 1" and "Relative 2" modes. Of course absolute CC sending from an encoder works just fine. ;)
3. No. If you switch presets Diva does not send the Midi CC state of the knobs that changed. You can get around this by having your host DAW send the notifications (Live does this well and so does Reaper). You'll have to read up in your DAW on how to accomplish this.

Post

bmrzycki wrote: 1. Encoder 127 and Encoder 64 are relative-based encoder offsets where 127 and 64 are the number that they start from. Depending how hard you turn the knob sends a midi offset from that number. 64 tends to be used for knobs that by default are set to the middle position (pan) and 127 tends to be used for knobs that have 0/127 as the default (volume).
Not clear with 127 still: if it's 7 bit cc then 127 is maximum value, therefore it can be turned only in one direction (127->0) and never in opposite :)
bmrzycki wrote:2. I assume you mean by this question "relative-offset" encoders. Yes. It's done in #1. You'll have to read your device manual on how to setup the knobs into the appropriate mode. For example the BCF2000 has "Relative 1" and "Relative 2" modes. Of course absolute CC sending from an encoder works just fine. ;)
Yes, endless encoder (since it doesn't have start point) can produce only relative offset (series of -1 or +1s). BCF2000 is a good example of what I'm asking about: position leds + endless encoder. I do understand MIDI protocol and looking for theory of how to do it/how it's done by others because midi barely made for it.
bmrzycki wrote: 3. No. If you switch presets Diva does not send the Midi CC state of the knobs that changed. You can get around this by having your host DAW send the notifications (Live does this well and so does Reaper). You'll have to read up in your DAW on how to accomplish this.
If you by the chance do know where to look in reaper docs to figure it out?

Thanks for helping!
Murderous duck!

Post

david.beholder wrote:Not clear with 127 still: if it's 7 bit cc then 127 is maximum value, therefore it can be turned only in one direction (127->0) and never in opposite :)
The name is a bit of a misnomer -- a lot of this is dependent on the controller itself. I've seen different vendors handle this in different ways. I'm more used to the names like these:
Absolute 7 bit: Use the CC value as an absolute value.
* Relative signed bit: Increase at [065 - 127], decrease at [001 - 063].
* Relative signed bit 2: Increase at [001 - 063], decrease at [065 - 127].
* Relative bin offset: Increase at [065 - 127], decrease at [063 - 000].
* Relative two's comp: Increase at [001 - 64], decrease at [127 - 065].
(pulled from the Renoise docs, explanations are still confusing)
david.beholder wrote:Yes, endless encoder (since it doesn't have start point) can produce only relative offset (series of -1 or +1s). BCF2000 is a good example of what I'm asking about: position leds + endless encoder. I do understand MIDI protocol and looking for theory of how to do it/how it's done by others because midi barely made for it.
I did this a long time ago so my memory is fuzzy. What I did was try the different modes with the BCR2000 and watched the MIDI CC log with Reaper's JS: midi_logger. After finding the one that I wanted I'd try to map it to controls in various synths/DAWs to see if it worked. I had very mixed results. The one I'm most comfortable with is the 64 +/- relative knob speed. So if you turn down slowly the CC sent will be 63 or 62. If you spin down fast it might be sending 45 or 30. Experimentation with your own gear really is key here IMO.
david.beholder wrote:If you by the chance do know where to look in reaper docs to figure it out?
It's very much a hack at this point in Reaper. There is a formal FR : http://forum.cockos.com/project.php?issueid=4388 but there are some degree of tinkering you can do if you want to get you some of the way there: http://forum.cockos.com/showthread.php?t=97255

Post

Thanks a lot, I'm taking a look! :)
Murderous duck!

Post

david.beholder wrote:If you by the chance do know where to look in reaper docs to figure it out?
It's very much a hack at this point in Reaper. There is a formal FR : http://forum.cockos.com/project.php?issueid=4388 but there are some degree of tinkering you can do if you want to get you some of the way there: http://forum.cockos.com/showthread.php?t=97255[/quote]

It's done thru osc and it's reaper<->osc2midi<->midi hardware hack. I'm having tremendous idea to teach my diy hardware osc directly. ;)

Damn It's not getting getting any easier (Cartman)

But thanks for helping!
Murderous duck!

Post

Hello, I am very interested in getting 14bit midi control with proper feedback in Reaper. I have a BCF2000, but would be happy to buy something else if it did the job.

The last post in this thread is over 4 months old, I was just wondering if there was any update? I am not able to do any programming, just need a simple solution :)

Post

thermal wrote:Hello, I am very interested in getting 14bit midi control with proper feedback in Reaper. I have a BCF2000, but would be happy to buy something else if it did the job.

The last post in this thread is over 4 months old, I was just wondering if there was any update? I am not able to do any programming, just need a simple solution :)
To be clear: the REAPER bug report / feature request tracker uses separate threads for the formal report / request, versus the discussion of the bug / feature in question. For this FR, for example, the discussion thread is here (and the last post is just over a month old as we speak, just for the record, not that it matters very much to our topic at hand).

Using REAPER, the OSC <--> MIDI <--> plug-in parameter automation hack seems to be the best way to go for now, at least if proper feedback is required. While it may not be as easy to set up as we'd like, it certainly does not require any programming skills or expertise. So you should be good with that BCF-2000 (I use a BCR-2000 myself, they share most if not all of their MIDI specs), thermal - no need to buy other stuff. :)

Btw, just in case you did not know this yet (as it is very poorly documented), with some SysEx hacking, you can send any arbitrary MIDI data, and also use four 'acceleration levels' with the BCF/BCR-2000, which can be *very* useful with relative and/or 14 bit modes.

Still, all of that stops short of the native support for MIDI controller feedback that we've been waiting for. However, note that Cockos is currently focusing on improving the MIDI aspects of REAPER, by popular demand of its users. So it would definitely not hurt to vote for the aforementioned FR and bump that request in the pre-release discussion threads as well. ;)

Regardless, I will be glad to create and post another tutorial on how to use the OSC <--> MIDI conversion route in REAPER (as imho using OSC with an intermediate application also has some very useful benefits over native support for MIDI feedback), specific to controlling Diva with as high resolution as possible, as it seems that there a a few catches and gotchas that make it a little bit different from the 'normal' case. Most notably, the maximum CC# value is set to 126 (instead of 127) in 7 bit mode (so the exact centre of a aparameter value range can be reached by sending a value of 63, as Urs explained here).

However, do note that I'm still having a bit of trouble myself to wrap my head around how Diva's 14 bit MIDI control *exactly* (is supposed to) work(s) myself, see e.g. my post here. Once I figure it out, with the help of u-he and friends, I'll be glad to adapt my OSC <--> MIDI workaround hacks for Diva (and of course all other u-he plug-ins, which all seem to use the exact same MIDI control system) in REAPER, and share them with other admirers of the First Lady and friends.

Post

bmrzycki wrote:
david.beholder wrote:[…]
3. Is there a way to request current value of controlled param?
[…]
3. No. If you switch presets Diva does not send the Midi CC state of the knobs that changed. You can get around this by having your host DAW send the notifications (Live does this well and so does Reaper). You'll have to read up in your DAW on how to accomplish this.
Fwiw, I read this question 3. to be completely unrelated to switching presets.

My answer would be: yes, you can, but not using Diva's (native) MIDI support.

This can be achieved with plug-in parameters which are exposed to automation in the host. Then you can retrieve a parameter value without setting it, and also read out its value in 'human readable' format in a 'normalized' value range. Afaik, this is accomplished using the Cockos Extensions to the VST SDK (and may as such not work in every host).

I think the MIDI <--> OSC <--> plug-in parameter automation route in REAPER (discussed above) allows us to do such things; but I should check it again to confirm exactly how it works, as it's been a while... I do know for sure that values are updated properly on my MIDI controller(s) when switching between Diva presets, and when 'banking' between different sets of parameters to control, and that selecting the parameter in the host or on the plug-in GUI can also be used for this, by means of support of a specialised 'last selected parameter' in REAPER).

Post

Ch00rD wrote:However, do note that I'm still having a bit of trouble myself to wrap my head around how Diva's 14 bit MIDI control *exactly* (is supposed to) work(s) myself, see e.g. my post here. Once I figure it out, with the help of u-he and friends, I'll be glad to adapt my OSC <--> MIDI workaround hacks for Diva (and of course all other u-he plug-ins, which all seem to use the exact same MIDI control system) in REAPER, and share them with other admirers of the First Lady and friends.
THANK YOU so much for all your input on this!

It seems wise to wait until the final 1.2 version before attempting to implement all the things you have mentioned. Fingers crossed all will be well with MIDI in Diva then :wink:

I have been following your posts on MIDI on this forum, good work! Good to hear in the other thread you are into c64 and SID too, I recently got a MSSIAH, but now need to get a c64 8)

Post

thermal wrote:
Ch00rD wrote:However, do note that I'm still having a bit of trouble myself to wrap my head around how Diva's 14 bit MIDI control *exactly* (is supposed to) work(s) myself, see e.g. my post here. Once I figure it out, with the help of u-he and friends, I'll be glad to adapt my OSC <--> MIDI workaround hacks for Diva (and of course all other u-he plug-ins, which all seem to use the exact same MIDI control system) in REAPER, and share them with other admirers of the First Lady and friends.
THANK YOU so much for all your input on this!

It seems wise to wait until the final 1.2 version before attempting to implement all the things you have mentioned. Fingers crossed all will be well with MIDI in Diva then :wink:

I have been following your posts on MIDI on this forum, good work! Good to hear in the other thread you are into c64 and SID too, I recently got a MSSIAH, but now need to get a c64 8)
You're welcome. :) There are a bunch of great software emulations of the C=64 as well, afaik. Not sure if that gives you SID in all its 8-but glory. If all else fails, you could always go nuts and hunt down a SID Station - a synth built around a cannibalized ancient chip digital chip, go figure... :D

And indeed, it may seems to be unwise to invest much time in devising workarounds when enhancements are likely to happen in the near future. But the complications with the current system used by u-he plug-ins seem to mainly make working with 14 bit MIDI CC# *directly* a bit of a headache, or at least less than ideal, unless one wishes to use separate controls for coarse / fine tuning (which should work decent enough to get by for now; also see my post here and Urs' reply here). So for that purpose, it indeed seems to be best to wait for a bit and see if u-he comes up with any changes / enhancements to the 14 bit MIDI CC# support specs. It also seems a good time to discuss related issues and perhaps formulate some feature requests (Perhaps I'll post a simple demonstration of my own suggestion in the post linked to above too.)

However, these complications also imply that the *indirect* route is currently still a relatively interesting option: using 14 bit MIDI on the controller side, converted to plug-in parameter automation in the host (i.e. *not* using any MIDI on the plug-in side) - and ideally vice versa, of course (which is a bit more complicated). So I'll put creating a tutorial for such a thing a bit higher on my too long to-do list.

Post Reply

Return to “u-he”