MIDI NRPN Support

Right now you can link plugin controls, gain faders and some other stuff to MIDI CC messagges, pity that MIDI CC have a 7bit resolution, which means that for instance a 128dB dynamic range gain fader can be controlled via MIDI with steps of a whole 1dB at a time, not very suitable for real delicate and subtle changes.
Besides, think on this situation: you have a BIG midi setup with several MIDI controlled synths, effects and stuff you’re recording on ardour controlling the whole with several MIDI surfaces, every CC parameter you bind to an ardour control on a channel is a CC/MIDI channel combination you will not be able to use on your MIDI chain, you don’t want for instance midi control of master gain affecting modulation of your lead synth, do you?

Behringer (BCR2000, BCN44, BCF2000), Peavey (PC 1600x) and several other MIDI controllers support sending of NRPN MIDI messages, which can use 14bit resolution and there are hundreds to choose from, without having collisions with other equipment you could have on your MIDI chains.

It shouldn’t be that difficult to implement NRPN MIDI support in ardour and IMHO I think it could be really valuable for using control surfaces.

greetings and a big HURRA to the ardour team for a wonderful job.

Sebastian.

If I understand correctly, OSC (liblo) kinda makes this a non-issue.

Hi there … well, the answer 'bout if it’s an issue or not depends on what do you intend to control with external control surfaces … and perhaps where.

On the first comment I’m talking 'bout a Linux ardour box working along with racks of existent/legacy/vintage HARDWARE midi equipment which speaks just MIDI (usually just Note On/Off, Velocity, CC, aftertouch and Sysex) controlled from MIDI control surfaces which besides the messages I told first can speak also NRPN … and the idea I speak of is controlling ardour from the very same control surfaces you’re using for controlling the MIDI racks. Think for instance on multitracking with ardour while tweaking several racks of synths on realtime (I mean knob manual tweaking!) playing over sequences fired from an external or software sequencer, having ardour controls at a hand just besides the synths control for tweaking just that right mix level or correcting just that tiny bit of excessive reverb you got on that lead synth.

On a BCR2000 for instance you got at the first sight 32 knobs + 20 switches to use as message sources, if you got several synths you rapidly exhaust the useful combinations of CC/midi channel you could use from the same surface controller for moving ardour faders for instance, and if you want to tweak on realtime some plugins the useful combinations amount decreases even more rapidly. Legacy MIDI equipment on the other hand rarely speaks NRPN, and anyway the amount of available NRPN messagges is so huge that a collission has a really low probability.

As you can read on the opensound lists in http://www.opensoundcontrol.org/node/97 , OSC is not direct a replacement for MIDI if you intend to work with existent MIDI hardware. OSC is indeed a wonderful new protocol, but it has not still implemented some way to fully encode existent MIDI messages. Remember, MIDI control surfaces speak MIDI, not OSC.

I might be wrong, but just tell me: if I have a hardware MIDI chain, with 8 or so hardware synths plus several MIDI controlled effects and a couple of MIDI surfaces for controlling the whole how could I for instance tie a knob to an ardour fader using more than 7bit resolution??? what can I do if I can’t use a MIDI CC because every single MIDI CC is already in use on some of the hardware synths?? I mean … if a synth answers to say 20 CC messagges you can’t go on an say it: " hey bro, answer just to parameter 7 and forget 'bout the rest"

The idea of using NRPN came on the first place from a ‘looper toy’ i ‘made’ using 8 parallel sooperloopers, when I realized that sooperlooper could be controlled via MIDI I went on linking MIDI controllers, and notes, and … and at the end I discovered that if I wanted the chance to control via MIDI every single parameter on every single sooperlooper I had no controls available for the hardware synths :frowning:
Now I’m using ardour for mastering/recording tasks and I really need more than 7bit resolution on the faders sometimes.

As you can read on the opensound lists in http://www.opensoundcontrol.org/node/97 , OSC is not direct a replacement for MIDI if you intend to work with existent MIDI hardware. OSC is indeed a wonderful new protocol, but it has not still implemented some way to fully encode existent MIDI messages. Remember, MIDI control surfaces speak MIDI, not OSC.

IIRC, you can embed MIDI (and I assume NRPN as well) within the OSC protocol. It seems like it would be more reasonable for software (such as ardour) to use OSC and then let the whole MIDI / NRPN aspect be delt with futher down the chain.

I’m not really sure what features will be built into ardour though. (I don’t make those decisions) What I am fairly certain of though, is that it will likely be determined by what MIDI / NRPN / OSC features are being built into jack. You would probably be best served by bringing this issue up with the people currently inplementing midi support into jack.

Hi again, so you say that liblo & OSC support might give me a chance to control faders/plugin controls with greater resolution? For OSC support I should try Ardour2, shouldn’t I? I’m using Ardour 0.99 from a CVS dump from a couple of months ago.

How does MIDI binding work on OSC lands? usual Ctrl+MouseButton2+moving the slider on the control surface?

Just a question, what can be bound to a MIDI control on ardour? I mean, which faders, switches? Is there a way to bind the horizontal scrollbar in track view to a data wheel for instance? (when I’m editing I usually have to look around the waveforms both forwarding and rewinding to find what I’m looking for and the mouse is not always the best tool for doin’ so)

greetings and thanks for the answers,

Seba.

I think that Ardour2 is pretty much the same as Ardour 0.99 right now as far as Midi controllers are concerned.

I just mentioned OSC because once the developers start adding support for MIDI tracks, I’m sure OSC will be something they consider. It offers much much finer control than standard MIDI or NRPN. Midi tracks are probably not going to be implemented until Ardour 2.0 is finished though.

Developers like Paul or Sampo would know much more about this than I can tell you.

Right now I think transport controlls, faders and pan controlls can be mapped to MIDI controllers. (I don’t have a controll surface so I can’t be for sure) Theoretically, it wouldn’t be hard to implement MIDI control for any type of control than can be automated.