How to set up MIDI shortcuts in Ardour?

I have Alesis v25 midi and I am trying to set up som shortcuts for make my life easier but it seems that it does not works properly. I did make it work once but now it does not working and I can not understand why.So,
I connect the midi to my laptop and I start ardour. I create a new session wit this settings:


I read that to create a shortcut I have to press Ctrl+middle mouse click then a Operete controller now is showing up and then I press the knob or the button that I want to control.
In my case it seems that there is not any input.
I checked the MIDI tracer to see if ardour get the signal and it seems that does not get anything.
(But If I create a track and connect it to MIDI throw MIDI input it works fine)

Also my settings are:

Can anyone help me with this?

The first dialog window (new session) you show is for audio. Click the Midi Device Setup button in that window.

1 Like

Thank you for your help my friend!
I went to the new session window -> clicked to the MIDI system and selected the ALSA sequencer
and then I clicked to the MIDI device Setup and I saw my MIDI keyboard.



For some reason I have 2 midi interfaces but only the first one is working. I do not know the use of the other.

And then I had to set up the connections like this:

Thank you!

^Select ‘Music Data’ for the first row, ‘Control Data’ for the second.

Uncheck ‘V25 MIDI 1(In)’ and select the one just below it.

^ Go to Preferences/‘Control Surfaces’ – try the ‘Generic MIDI’ surface definition, and choose the ‘V25 MIDI 2(In)’ in the ‘Show Protocols Settings’.
(the following is a screenshot of how this looks like on another system)

When you do "ctrl+middle-mouse-button’ on a bindable/Midi-learn control on the daw, such as the ‘play’ or ‘stop’ button, you can set things… by turning a ‘control’ from the Midi controller (your hardware keyboard). If Midi-learning does not work with the chosen ‘control surface’ protocol, then try the ‘Mackie Control’ control surface controller instead. (from the Preferences/‘Control Surfaces’ window)

You’re using “V25 MIDI 1(In)” for sending midi notes – and this midi input always goes to the track… so avoid binding it as a ‘control surface’.( if you’ve got “V25 MIDI 1(In)” set as a ‘control surface’ then you will no longer be able to send notes from it.)

Those two things that show up as Hardware devices, those are referred to as “hardware midi ports”.

From what I understand the ‘Generic MIDI Control in’ pertains to the Ardour program as a whole – and relates to the ‘control surface’ << this is a fancy name that translates easily to ‘Midi Controller’… just consider the two equivalent for now, it’s easier to understand it as an “external” piece of midi equipment.

The problem here with ‘control surface’ settings, is that the ‘Midi Connections’ window defines the settings better in a particular fashion that should be noted since it was opened – if you happen to “change” the ‘control surface’ from there – for example set all hardware midi ports, and then go to ‘Preferences/Surface Control’, choose protocol, then choose ‘Show protocol settings’ … the “pulldown” of one option(from the Preferences window) is not “resetting” and “unselecting” options that have been set from the ‘Midi connections’ window.

^ So if you did this, then verify everything looks correctly from the ‘Midi connections’ window and make sure there is only one ‘control surface’ hardware midi port selected. I always wondered where I can set more than one ‘surface control’ midi port, and apparently I didn’t know the two places of Preferences and ‘Midi connections’ window here are related.

hope this helps (and see the later notes)

perhaps this area of Ardour can be enhanced

@x42 I think I also spotted a bug in the Midi connections – I’m not 100% sure it is a bug,
‘MIDI Control in’ becomes ‘General MIDI Control in’ after another ‘surface controller’ is added from the Preferences/‘Control surfaces’… this makes it a bit difficult to keep track of where settings are related.

The other, as described previously, is there is not a full reset of ‘control surface’ selections when using Preferences/‘Control surfaces’. The Preferences/‘Control surfaces’+‘Show protocol settings’ pulldown is not intuitive because it does not “unselect” other possible things from the “Midi connections” window.

… I just tested Ardour 6.0.pre0.2488 here with Linux 64-bit, and the I think it is a bug, because
I can select these two items in the “Midi connections” window.
(selected both “Keystation 88 Midi 1” and “Keystation 88 Midi 2” in this window)

If I now choose either “Keystation 88 Midi 1” or “Keystation 88 Midi 2” from the Preferences/‘control surface’+‘Show protocol settings’, the ‘Midi Connections’ window whether it is closed or open, never reveals an update from the selection from the Preferences window.

However if I choose “disconnected” from the Preferences window, the “Midi connections” window gets updated showing no selection hardware midi input devices, as shown in the following screenshot.

^ So I suppose it is a bug – if my release of Ardour6 is out-dated and this has been fixed or improved in some way then I guess there’s nothing more to report.

I’m too new to Ardour to know if this is a bug, it is also difficult to explain these things without pictures, so I think it might be easier that I post about it here.

^ also it helps to illustrate that if this is a feature, then it is rather pretty confusing.

Essentially the user can lose the ability to send Midi notes to a midi track, because the “pulldown” menu is not updating things correctly imho.

If this is a bug, then I suppose the solution here is that as a workaround the user needs to choose “Disconnected” first, then choose a hardware midi input device.


thanks. I think I am learning something in the process here, discourse provides the ability to enhance paragraphing things, so I’ll try out one its nice features of summarization.

Further notes – separated because I do not want it to sound too confusing above^, expand the following summary notation for extra tips which should solve the problem I think @joynstar is going after. I never tested the following because I do not have “that hardware” but I am pretty sure it is the solution that is being sought because it looks like a simple Midi Controller, and so it shouldn’t be too difficult to resolve the MIDI-Learn/binding issue. (“MIDI shortcuts” is a misnomer – actually the request pertains as “MIDI Learning” because “controls” from the “Midi controller” get binded to “controls inside the daw” << easy vocabulary – if someone knows a better to phrase it, let me know… I think I got this right.)

Mapping CC-* numbers for the Alesis v25 "PADS"

Tracks also have their own “Midi port I/O” ports…

eg: the Midi port I/O for MyMidiTrack, is named “MyMidiTrack in” and “MyMidiTrack out” – as these are like “slots” but they’re really just called “track midi ports” as they belong to the track.
( see also about “track’s outputs” – Ardour just says “track’s output ports” as the ports can be either “audio” or “midi” types. I call it track midi ports here just to make it easier to explain how midi ports actually exist for a midi track. The midi ports are either “input” or “output” and belong to a “track”. )

(these screenshots are not from your setup, and are just demonstration purposes)


^ Notice that you can select/bind a MIDI input source from the pull-down above the plugin list. I am not able to select the hardware midi port that is binded as a ‘control surface’.

Here, even though the “MyMidiTrack in” is “binded” to listen to MIDI notes from “Keystation 88 MIDI 1”, I don’t think messages from the ‘control surface’ can reach into MIDI-Learning for plugins. << if I am wrong on this, someone can correct me… Here I can send CC- messages from the note-sending hardware midi port.

The Alesis V25’s documentation mentions that the “PADS” generate CC-* messages. With the MIDI Tracer window from Window/Midi_Tracer menu (details about in manual here), it should show the CC- number right after the channel number – note: if it shows it in hex, then you probably just want to use something like kmidimon or gmidimon to see it in human decimal.

With Note-sending hardware midi input port “V25 MIDI 1(In)” connected to a track, and having test what the CC-* number is for each PAD button, you can then use the following plugin to grab the specific CC-* number message and transform that into a “Midi note” message that the sitting “synth plugin” only understands. The name of this plugin is called "MIDI CC to Note", and it comes with Ardour.

^ It looks pretty intuitive, and I suppose the setting to use is

  • All keys, key = parameter, velocity= CC-value” for the Operation mode,
  • CC Parameter to intercept: use the human “decimal” value of the traced MIDI CC-* message over here.
  • Key (midi-note) to use with fixed-key mode: – this one is pretty obvious, and represents 128 possible notes from 0 to 127. C-4 is the “middle C key”…

note: The lowest keys are “LETTER-1”, so it is “C-1” (represents MIDI note-on value “0”), one octave up becomes “C0”(value “12”), then “C1”(value “24”), …G9 as the highest note which is MIDI note-on value “127”.
The lowest MIDI note value is numerically always “0” to “127”, representing 128 notes.

Some synth plugins exhibit a “virtual keyboard” and represent the “lowest” numerical MIDI note not the same as Ardour’s pianoroll of “C-1” but something as “C0”. This makes the highest C- key become “C10” to represent the value 120. The highest note is never altered and always is Note-on value “127”, but it is symbolically represented as G10 by the plugin’s virtual keyboard which in turn plays G9 on the pianoroll – both G10(in plugin) and G9(piano-roll) symbolic labels here play the same “MIDI value” of “127” for the note-on message. There can never be a note-on value beyond 127, or below 0, so just to be clear on that.

… if ever in doubt, the user just has to look at the piano-roll on the track and see which piano key is lighting up. This is not difficult or a “big deal” to keep a reminder on, just something to be aware of as this is not very well explained. The minimum/maximum for the “MIDI” note values is always “0” and “127”, so whatever the “symbolic” starting/ending labels a plugin can display its virtual keyboard, the user just has to look at the piano-roll and see if the “lowest” possible play-note is matching to the same as the pianoroll.

^ Why is this being mentioned. It’s because the ‘MIDI CC to Note’ is using the symbolic-convention used as Ardour’s pianoroll. If you expect “C0” in the synth plugin to represent value “12” but you find out it isn’t, you’ll understand why there’s a difference in the mismatch of “MIDI note-on” values being passed. This is not obvious for starters, and this took me a little while to realize after trying out dozens of plugins… There’s at least a couple that provide virtual keyboards that do not share the same symbolic labels as Ardour’s pianoroll. At first it seems confusing, so if ever in doubt, one just has to look at the “pianoroll” to see if “C0” in the synth plugin’s virtual keyboard is “lighting up” the C0 play-key on the pianoroll and it is easy to determine later what “symbolic value” needs to be set in the “MIDI CC to Note” plugin. :slight_smile:

When placing the ‘MIDI CC to Note’, it should be placed above(“prior”), the synth plugin that is receiving the incoming MIDI notes. The order of plugins is important as the signal-routing starts from the top as “earlier” passing the signal down as “later”.

If you haven’t yet picked up, the “red lines” represent “MIDI” input, and the “green lines” represent “audio”. You can read up about this color coding scheme from over here,

The processor box is where the effects are added. By default, one effect is always present: the Fader (see below). The effects can be added pre -fader and appear in brown, or post -fader, where they will appear in dark green. The signal flow is represented by lines, red for the MIDI and green for the audio.


@x42 , the reason why I add commentaries that are lengthy is so that other users can correct me as I am learning things. I am pretty sure there’s something very weird going on between the Midi connections even into the Ardour6-prealpha – and we are not yet able to send bugtracking reports about it yet – however this issue is also found in Ardour 5.xx – I don’t think it’s a “design”, I think it’s somewhere between feature and bug, I’m too new to Ardour to know really what the “intention” is. However when I choose “disconnected” as I illustrated, then the Midi connections gets fully updated as expected. < Design or bug? I’m wondering if I can make a feature request for this into Ardour6 prealpha – if this is already resolved in the upcoming release then I suppose I would be eager to try it out.

hope this is helps someone who is wondering how to map similar hardware devices that send the CC-*

@joynstar, also if you check the manual of the Alesis v25, it mentions it sends CC-* things. I suppose that means it sends it with "V25 MIDI 1(In)”. Midi is very versatile, I think you would want to use the ‘Midi Input follows Midi Track selection’ as I mentioned I think on your other topic for the same hardware Problem with midi sound
– your hardware is connected via usb, and there is more than 1 midi port from it. 1 is for note-on data(with some CC-* messages), the other is for the ‘control surface’. From memory, you cannot service a hardware midi port as both a “control surface” and as a midi note-on port. – afaict this is not possible.
– I hope the illustration of the ‘MIDI CC to Note’ helps solve the issue of not requiring an advanced MIDI-Learning plugin, instead you can use any digital synth along with it.

Easier said than done, but I also think there’s a possibility that there might even be a bug here – and I think @joynstar you’re attempting things caught within this potential bug/feature that won’t resolve on its own::: the workaround for now afaict is to select “Disconnected”, and then choose a hardware midi input source in Preferences/'Control surfaces'+protocol+"Show protocol settings" (see above pictures)

hope this helps


This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.