Working with a MIDI keyboard (Roland FA-06)

Hi. I’m always struggling with Ardours MIDI workflow. I connected a Roland FA-06 keyboard for both playing and as sound generator. I actually was able to do some stuff with Ardour (see here - I mean, listen here: https://soundcloud.com/stefan-steinegger/childish). But the workflow was very cumbersome and I wonder whether it is just me doing it wrong.

I would like to have a track per instrument and a channel per track. I guess, this is very common. There doesn’t seem to be a simple way how to assign a channel to a track in Ardour. In the channel selector I configured a single channel on each track (which I have to remember, because it is not displayed anywhere). On the patch selector, I have to be careful to select the correct channel before choosing an instrument (otherwise the instrument of another track is changed in my keyboard). When I play on the keyboard, all channels get the MIDI events (instead of the one I would like to record). So I guess all my channel setup was of no use. So I always disable the MIDI inputs by clicking on the nice green button showing a MIDI connector (and turning black when disconnected) except of one track, which I record (while I have to “arm” it for recording at the same time…).

I had to change the channel on the Keyboard too. I had to put the Roland FA-06 into a special “mode” to select a channel. This mode doesn’t seem to be made for working with a DAW. Because it creates sound when playing and gets the MIDI events sent back from the DAW, it plays every note twice and I have to disable MIDI output in Ardour while recording.

So in short, the workflow for recording was: select the track on the keyboard, disable MIDI input on all tracks in Ardour, enable MIDI input on the track I would like to record, disable MID output of that track and “arm” it for recording. Then start recording. Pew.

I couldn’t find anything in the manual. Probably I was blind or too stupid.

Then I tried Qtractor: created a track, assigned a channel and an instrument. When I play the keyboard, the track that is currently selected in Qtractor gets the events and I heard the selected instrument. It just works and I start recording in no time.

I would like to work with Ardour, because I like it very much - except of that. Can anybody please tell me if I missed something?

Ardour pays very little attention to the channel information in incoming MIDI messages. It really doesn’t care.

The channel selector in 5.x has absolutely zero effect on incoming MIDI data. Whatever arrives at the track input will be recorded to disk. The selector only affects what happens to data during playback.

So yes, there is no concept of “assign a MIDI channel to a track”.

The workflow you want will be most closely matched by:

  • create as many MIDI tracks as MIDI channels that you intend to use
  • Go to Preferences > MIDI Ports and ensure that the relevant incoming MIDI ports are marked as
  1. Music Data
  2. Follow Selection
  • at the top of this preferences tab, be sure that “MIDI Input follows Track Selection” is enabled

Now the device will automatically be connected to whichever track you select.

What this will not do is to select tracks based on the incoming channel information. You will need to be certain that your keyboard has had the channel changed to whatever you want before you record data to a given track.

2 Likes

Thanks for the quick answer.

It actually helped a bit. I wonder if this should be a default setting. It’s still weird that the tracks do not have a channel and that I can select an instrument on every channel on every track separately, which doesn’t really work if there is a single keyboard. Every track overwrites the instrument settings (in the keyboard) of other tracks. Setting a single channel on the channel selector didn’t help.

Another consequence is that I cannot quickly assign an instrument to a track, I have to open this dialog and then select the correct channel (which I do have to remember somehow). It would also be nice if I wouldn’t have to set the track (or channel) in both Ardour and the keyboard (I don’t have to in Qtractor for instance). Especially because Ardour ignores the channel information of incoming data.

I think you should try working with multitimbral synths and multichannel MIDI files. You will then see why the concept of “1 channel == 1 track” is fairly limiting, at least for certain workflows.

It’s also not the case that “tracks do not have a channel”. More accurate to say that tracks do not force a channel … if you make sure you only ever record channel N on a given track, then that track does have a channel!

I’m also not clear that you have a totally clear picture of the relationship between channels, instruments and your keyboard. Here’s how I see it:

  • an instrument is something that receives MIDI and generates audio.
  • an instrument may respond to only a single channel, or multiple channels, or all channels.
  • an instrument might make the same sound for the same note on any given channel, or it might be multitimbral, and generate different sounds depending on the channel
  • an instrument may have a single “patch” or “program”; it may have hundreds. so when referring to “the instrument” it is ambiguous whether you mean “this synth, program 13” or “this synth, that only ever really sounds like this”.
  • a track has a single instrument, but because of the previous point, a track could be mono-timbral or polytimbral. And because of the point before that, it could usefully contain data from just one channel, or many.
  • a keyboard could send 1 or more channels out its port(s), and its MIDI data could usefully be delivered to one or more tracks at the same time. Only the user’s workflow dictates whether the numbers here are one or larger. It is not uncommon to have “split” keyboards that send on a different channel from the left and right side of the keyboard (when told to by the user). Does this go to a single track or two tracks? There is no correct answer - in different workflows, either would make sense.

Finally, this is the default setting, except for identifying what type of data your MIDI device should be considered as sending, and whether it should follow the selection. Ardour can’t do this for you. For example, in front of me right now I have a Roland Handsonic, which should be considered as sending music data and should NOT follow the selection (it is intended to be routed primarily to a drum-like track); an M-Audio Keystation 88 which has 2 ports, one of which sends music data and should follow the selection, the other sends only control data and should not follow the selection; an Ableton Push 2 which should not be considered as sending either nor should it follow the selection - this is handled by our control surface support which splits apart the music data/performance part from the control elements. The user (in this case me) is the only person who can know this sort of thing.

I don’t know what you mean by “every track overwrites the instrument settings (in the keyboard)”.

1 Like

Thanks for the explanations. May be I don’t have a clear picture of all the relationships. I still think that I understand these points. I probably should have said “sound” rather than “instrument”. I’m not a pro, but usually try to create many tracks, one for each thing that is kind of separate.

The hardware synth is actually two things in one: a MIDI controller and a sound generator. Both have channels. The problem with the Roland is that it’s kind of hard to change the channel of the MIDI controller when connected to a DAW. So I would like to tell Ardour to translate the incoming events to whatever channel I currently want to record.

I understand that the possibility to have multiple channels for a single track may be useful. I don’t know how common it is. It might make sense to have an explicit “single channel mode” for tracks; to simplify the workflow in these cases.

The “every track overwrites the instrument settings” part means the following. In Ardour, every track could have data for all channels. There is also the possibility to choose a sound for each channel in the “patch selector”. The sound selection is sent to the keyboard and the keyboard will use that sound on that channel. Many of my tracks use the same keyboard. Every channel now has multiple sound definitions: one in every track. When I change the sound for channel 1 in track “MIDI 1”, the keyboard will use that on channel 1. When I now choose another sound for channel 1 in track “MIDI 2”, the keyboard will use that other sound and the settings of track “MIDI 1” is overwritten by track “MIDI 2”. If track “MIDI 1” contains data for channel 1, it will not use the selected sound of that track. This is kind of weird. If there would be a single channel mode, this problem would be gone (given that the patch selector is reduced to that single channel).

From what I can tell, you can set the pads on the FA-06 to be use for “part select”. When in a given part, all MIDI note (and CC) data will be sent on the same channel as the part number (so part 1 sends on channel 1, part 2 sends on channel 2). This seems like a fairly trivial and easy way to get the keyboard to send different channel information.

It is true that assigning a “default channel” to a MIDI track and then using that when either using the Patch Selector is inserting a direct program change message into the track would be a workflow improvement. As it stands now, you do need to remember to pick the right channel yourself.

In addition, I just tested 5.12 … I right clicked on a MIDI track “header” in the editor, and chose “channel selector”. In the channel selector, I chose the “Inbound” setting to be “Force all channels to 1 channel”. I selected channel 2 as “the 1 channel”. Then I recorded some MIDI from my KeyStation 88 controller, sending on channel 1. Ardour recorded all the data as if it was sent on Channel 2, and with the default “playback” settings, plays it back that too. I used pianoteq as the synth. If told to only play notes on channel 1, it will play nothing. I then changed the channel selector’s “Playback” setting to “Use a single fixed channel for all playback” and selected channel 1. Pianoteq now plays notes, since the track sends them out using channel 1.

So I think just using the channel selector as described here will solve most of your issues.

Let me know if not.

The roland fa-06 has pretty versatile capabilities. It can have its synth on/off for interpreting input midi notes.

The nomenclature/jargon for MIDI is confusing and it took me a while.

Basically the term “instrument” is used for -> hardware or for a daw’s synth plugin.

When looking at the plugin or a physical keyboard, from a distance, it is just “instrument”.

“Patch instrument(s)” are defined inside the synth of a hardware Instrument or inside the synth(plugin) of daw software.

“Patch instruments” are often just abbreviated and called as “patch” because it is easier to pronounce.

When talking about sending Midi notes, it is easier to talk about “Midi controller”->Instrument… because the Instrument decides what to ultimately do later with Midi Channel messages.

You can have a “Midi controller” (hardware) that is not in itself an “instrument” because it has no synthesis capability. (and here I have such a keyboard)

The thing with the “one track” == “1 channel” == “1 patch instrument” is actually misleading.

-> “Channel messages” can also comprise of “program change” (patch instrument change).

So even if you restrict the track to just “one channel”, and your “synth plugin” is set up to only listen to “one channel” from your “Midi controller” (your hardware keyboard), that does not stop you from being able to perform a “program change” as a “Channel 1 message”…

See here,

Ardour records “program changes” (patch instrument changes) – and those ^ “patch instrument” names shown are all coming in as “Channel 1 messages”.

You can get the hang of what channel you’re send notes on with the rt-context menu from a midi region over here,

2019-11-15_04-05

“Playing the FA’s Sound Engine from DAW Software” – p.91 – describes how you can use an “Instrument” – and that “Instrument” refers to your Midi keyboard.

^ Such configuration means you are not using an “Instrument” on an Ardour Midi track(–> “Synth plugin” ), and instead you want to use just the “Instrument” that is your Midi physical keyboard.

Differentiate between “Instrument” and “Patch instrument”… so that users can relate :slight_smile:

Users tend to say “patch” instead of “patch instrument”, as it is easier to convey what they’re referring to.

Your Instrument contains sub-collections called “Banks” – and Banks can have at most of 128 “patch instruments” each.

Same thing for an “Instrument” (plugin synth) on an Ardour track. It has its own “internal” banks.

The Midi controller sends messages to a target Instrument, and it is the receiving Instrument’s job to handle that Midi note message to one of its internal patch instruments.

Midi controllers do not send to a “patch”, they send to an “Instrument”. The Instrument in turn uses “data” (Channel 1 messages, Channel 2 messages, etc…) and does whatever it is designed to do to perform something with one of its internal patch instruments.

I have a Midi controller keyboard, but it has no “Instrument” counterpart because it doesn’t contain any synthesizer chip… so I need a daw with a “plugin synth” to act as the Instrument and now I can send Midi messages to it.