Ardour runs on Linux and Mac OS X, and uses the Jack Audio Connection Kit (JACK) to interface with the computer's sound card, as well as with other audio applications running on the same system.
Ardour is designed to work best with a 3 button mouse equipped with a scroll wheel.
It can be used with a 2 button mouse or touchpad, but at least 2 key operations will not (easily) be available to you:
- time-constrained region copying
- MIDI bindings created by "learning" them from incoming MIDI
Setting Up MIDI
What Can Ardour Do With MIDI?
MIDI is a way of both describing musical data and controlling musical hardware\software. MIDI doesn't actually create any audio but rather describes the audio in order to control hardware/software. Ardour can import MIDI data, record MIDI data and allow MIDI data to be edited in a variety of ways. Also, MIDI can be used to control various things withing Ardour.
This allows for the most flexible work flow with regards to MIDI. What Ardour doesn't have is any built in synthesis to turn the MIDI data into audio. Rather, this is handled through the use of plug-ins and external hardware/software. While this makes MIDI a powerful tool it can also be a stumbling block for first time users who expect MIDI input to result in audio output by default. Please see the section on working with plug-ins for more information on turning MIDI data into audio output with Ardour.
MIDI Handling Frameworks
Below is a list of various MIDI Frameworks for getting MIDI data into and out of Ardour in order to work with MIDI aware software/hardware.
CoreMIDI is the standard MIDI framework to comunicate with MIDI hardware on OSX systems. It provides drivers and libraries needed by MIDI clients. These ports do not show up in qjackctl
ALSA MIDI is the standard MIDI framework to comunicate with MIDI hardware on Linux systems. It provides drivers and libraries needed by MIDI clients. These ports show up under the "ALSA" tab in qjackctl
JACK MIDI is a framework used to comunicate between JACK MIDI software clients. It provides zero jitter and a fixed latency of 1 "period" (the same latency that exists for audio). These ports show up under the "MIDI" tab in qjackctl.
Various ways of "bridging" between the native MIDI framework (e.g. CoreMIDI or ALSA) and JACK MIDI, as described in the sections below.
- MIDI on OS X.
There are multiple locations MIDI ports can show up in Ardour's MIDI connection matrix. CoreMIDI ports that are created by other software clients as well as JACK MIDI ports created by other software clients will show up under the "Other" tab. CoreMIDI hardware ports show up under the "Hardware" tab.
There are multiple options for connecting MIDI ports outside of ardour
MIDI Monitor is a handy tool for doing various things with midi on OS X.
MIDI Patchbay is a handy tool for connecting MIDI ports.
- MIDI on Linux
a2jmididis an application that "bridges" between the system MIDI ports and JACK.
First you should be sure that there is no ALSA sequencer support enabled in jack. To do that open qjackctl's
In the Settings tab set the MIDI Driver drop down to the none option.
Then go to the Misc tab and uncheck the Enable ALSA Sequencer support option.
Now it's time to restart your jack server before going on.
Checking for a2jmidid availability.
First thing is checking if a2jmidid is already installed in your system. To do it first start your jack server and then call
a2jmidid -efrom the command. If a2jmidid is there go on with Checking surface control MIDI ports. Otherwise install the newest a2jmidid available and try again.
Checking surface control MIDI ports.
After starting a2jmidid your control surface MIDI ports should appear in qjackctl's Connections window on the MIDI tab under a2j. If it does go on to the next step: Automatically calling a2jmidid when starting jack. If it doesn't you have to troubleshoot why it didn't. (How to troubleshoot
Automatically calling a2jmidid when starting jack.It's troublesome to have to manually start a2jmidid by hand each time you start jack. Here is one way to do it automatically. This step isn't mandatory, it's just a convenience. If you are not interested you can go on to the next step Enabling Ardour's mackie control ports in qjackctl.
Create a script that calls jack if you aren't using one yet. In it change the line that calls jack to have an ampersand at it's end like that:
/usr/bin/qjackctl &In this case I call qjackctl that starts jack so I include the ampersand in qjackctl's call. If you call jack directly, put the ampersand at the end of it's call line.
Now include the following lines after the line that calls jack:
/usr/bin/sleep 5All you have to do now is use your new script to call jack.
/bin/bash -c "/usr/bin/a2jmidid -e" &
/bin/bash -c "/usr/bin/a2jmidid -e" &
If you liked this article, subscribe to the feed by clicking the image below to keep informed about new contents of the blog: