MIDI Binding Maps for Ardour 3.0 and later versions

Thanks for spotting the error, Paul.

I noticed that I’d made similar errors with function= and sysex=. The copy at the above URL now has all of these corrected.

I have trouble compiling Ardour3 at the moment because of my Hardy based system, but I will upgrade and contribute as soon as I can complete my current project. DDX3216.

@ qharley:

You can do this with ardour 2; If you read above, Paul specifies a note:

"(Note: in Ardour3, you get a dedicated, custom dialog for this kind of tracing) "

Right below on how to have the terminal show you the message tracing. I did mine on Ardour 2 and Hardy.

Great… I’ll start as soon as I finish installing 64 Studio 3.3 alpha 2 (not for the faint hearted yet…)

ctl= is the number of midi cc?
in your example, how define the route for gain to track?(i don’t understand what is B1, is a bus? and B1 1 for example, what it this?you can refer to me some documentation if prefers)

@bocho999: the article your comment is attached to is the current documentation. If its not clear then i’d suggest just leaving it for now. if you have details about the MIDI messages sent by a controller, pass them along.

Here’s a controller mapping for the Roland SI-24, as well as a photo of the board:
http://www.duffrecords.com/documents/Roland_SI-24.map
http://www.duffrecords.com/documents/Roland_SI-24.jpg

…and the owner’s manual if anyone’s interested:
http://media.rolandus.com/manuals/SI-24_OM.pdf

Every controller number has been identified but I’ve commented out the majority of the bindings because it’s still a little unclear how they should be mapped in Ardour. The device was designed to integrate specifically with Logic, ProTools, and Cubase, so some retrofitting is necessary.

For example, the pan pots and jog wheel don’t generate CC messages; they output a Note On with a value of 1 for a single clockwise tick and 127 for counter-clockwise. Ardour’s pan controls expect a CC message, so the SI-24’s panner only ends up toggling between 100% left and 100% right. I’m not sure how to map the jog wheel to Ardour’s timeline or shuttle controller, although it looks like this is possible with the Frontier Tranzport.

Also, rather than giving each track its own dedicated solo, mute, record enable, automation read/write, and surround pan control (which would have added to the cost of manufacturing), Roland only gave each track a status button. Toggling one of these features involves switching the status mode (mute, solo, rec/play, automix), then pressing the track’s status button. That involves two button presses. However, the Ardour bindings are one-to-one. To make the device function as it was designed, I think the MIDI data would need to be piped through a filter before connecting it to Ardour’s 0:control port in qjackctl.

@duffrecords: really nice work.

Panning is currently not possible because of the design of Ardour’s panning system. Ardour has 1 panning control per channel reaching the output of a track/bus, so there is no clear way to refer to “the panner” of a given track. We need to provide something like a “balance” control instead, so that there is a clear “endpoint” when trying to control panning. For a pathological case, consider a 1in/2out track that has a 1in/2out reverb plugin. Ardour provides a panning control for each channel coming out of the reverb. Remove the reverb, the track now has only 1 panning control. Complicated.

The status button design sounds awful :slight_smile: However, its not impossible to imagine adding 2 new functions so that you could bind the status mode button to the function “status-switch” and then the other buttons to “status-mumble”. Will consider it. Is this device still in production?

And yes, we need to figure out a way to define bindings for rotaries that behave like the pan pots on this device. Its not the only one to have this kind of design.

The SI-24 is now a legacy product but the RPC-1 R-BUS card it utilizes is very similar to the ever-popular M-Audio Delta 1010LT. They both have 8 analog inputs/outputs, 1 S/PDIF in/out, 1 MIDI in/out, and use the Envy24 chipset.

folks, the update explains how it is now possible to include two new kinds of bindings, one involving an arbitrary MIDI message, the other invoking any of Ardour’s (main) menu (and its submenus) items. This seems useful for some categories of controllers, as was discussed on IRC today.

Of course!!! sorry i don’t see this section in the article, i start working now.

ace! how about transport-forward and transport-backward bindings as well? that way a rotary dial could be used to navigate within a project.

@delete
it would be good to bind that to the shuttle speed control

Hi,

I own a M-Audio Keystudio 49, and I would like to help out.

However, I’m having trouble understanding what I should do. I’ve started up kmidimon, and it seems to be displaying the midi commands. However, I don’t really understand what the different types of bindings are. On top of that it seems you need the raw hex of the midi commands, but it seems kmidimon interprets them.

They keyboard itself is really simple: the only controls it has are two wheels, a slider, and two buttons. However, the entire thing is programmable, meaning you can choose the channel it goes out on, and choose the functions of the wheels, sliders, and buttons. I’m not sure but it seems like this might be a problem.

If you want to look at the possible outputs, you can see the user guide here: http://www.m-audio.com/images/global/manuals/070921_KyStuMac_UG_EN01.pdf

If someone could explain how to convert the readings from kmidimon into a mapping, that would be really useful, because right now I’m not sure I understand how ardour handles the midi. To me it seems strange that you would specify the track in a mapping, because that would mean you couldn’t change the keyboard to record to different tracks.

Thanks,
Jeremy

@jeremybub: why don’t you post a little bit of what kmidimon displays? It sounds as if your keystudio is sending standard commands (such as MMC “Start” or “Stop”) which don’t need to be bound if you want them just do the “normal” thing.

Alright, here is a very simple log.
I changed the volume, bent the pitch a little bit, moved the modulation wheel a little bit, and pressed and released a note.

0,0.0219,0:0,ALSA Port subscribed,0:1,128:0
2663,5.5497,0:0,ALSA Port subscribed,20:0,128:0
7699,16.0432,20:0,1,Control change,7,1
7835,16.3271,20:0,1,Control change,7,2
12192,25.4001,20:0,1,Pitch bend,128,
12203,25.4294,20:0,1,Pitch bend,384,
12216,25.4561,20:0,1,Pitch bend,512,
12226,25.4839,20:0,1,Pitch bend,640,
12245,25.5178,20:0,1,Pitch bend,768,
12282,25.5891,20:0,1,Pitch bend,896,
12339,25.7101,20:0,1,Pitch bend,0,
15127,31.5198,20:0,1,Control change,1,1
15150,31.5801,20:0,1,Control change,1,2
15175,31.6268,20:0,1,Control change,1,3
19447,40.5199,20:0,1,Note on,36,80
19488,40.6028,20:0,1,Note on,36,0

Hey!

I recently purchased a Korg nanoPad and I want to use this sometimes as a transport control. Do you think this is of any use for someone else and I should post the midi binding here? Any other idea of how to use it with Ardour?
I’m iwlling to help :slight_smile:

Best,
chrisi

It certainly won’t hurt to post the MIDI maps you create for ANY surface. The idea is to try to have defaults so that out of the box Ardour can directly use some functionality of just about any controller.

 Seablade

Howdy! I work for Livid Instruments out of Austin, Tx. I would love to create some mappings for our
Ohm
Block
and Code Controllers

It seems like the information here is pretty complete, thanks!

I was wondering…
Is it possible for me to link an encoder to loop points?
So that I could roll them back and forth one measure at a time?

I am a newb to this forum, for the most part.
Is there a list of supported operations?
Is it possible to Bank plugs in in the way tracks are done…
Say,
CC 56 always controls
parameter 1 of the
1st plug-in on
Track 1

Or even Simpler that
CC 52 always controls the Gverb Plug-in Associated with track one (even if it’s not there)

the list of supported operations is described in the original post. there are currently no operations to control the loop range. the binding to the nth-parameter of the nth-plugin on the nth-track is described in the original post. there is no way to refer to plugins by name. thanks for your interest, and we’d love to see binding maps for your controllers, especially since they look so cool :slight_smile: