MIDI Happenings

Dave “MIDI” Robillard writes: Hi all. Thought I’d make a little post on MIDI stuff so things appear alive to you weirdos who aren’t on IRC 24 hours a day. Just some random not-very-prepared screenshots:

An older shot showing multi-line controllers, and the editor controllers: Editor controls. On MIDI controller tracks (CC) the bar controllers can be used to record/touch, or twiddled in realtime to control MIDI apps/gear.

MIDI import was introduced yesterday (Importing MIDI is done with the same dialog as audio, though it doesn’t look appropriate yet…). Here’s some Mozart imported into Ardour from a (single, multi-track) Standard MIDI File: Mozart Import.

Other new stuff is correct handling of MIDI streams/files with several channels, ability to create controller tracks for a specific channel, fixed the infamous “all region notes stuck at random times” bug, and several other crash bugs. The import shots above also show the newer version of the ClearLooks GTK engine used, with a ’gloss’ effect (just because). It’s not designed or coloured well at all though - if anyone out there wants to make a pretty colour theme for 3.0 we’re taking applications :slight_smile:

Next up: more bug fixes, MIDI export, implement remaining MIDI features (so passing MIDI through Ardour is completely lossless), then MIDI effect plugins (and possibly instrument plugins).

What about Staff Notation? Using Lilypond or similar for lines with noteheads instead of piano roll. What linux lacks is an note editor which is capable of mixing midi/audio and left to right writing while seeing all staves at once instead of just Paper-like sites which are only because of “reality” where it is not possible to write endless. But in fact that is how music works and musicians think: from left to right without page- or linebreaks.

So in short: Lines with traditionall noteheads instead of piano roll?
like this… http://www.pcrevue.sk/buxus_dev/images/2005/sw0705_SW_Shareware_noteworth_b.jpg

Hi Dave,

is it planned to bundle a MIDI play engine with Ardour so that a user could effortlessly play MIDI as opposed to setting up Timidity which can be cumbersome, doesn’t always work, and lacks a graphical way to load soundfonts?

Looks great! I can’t wait to play with it.


Hooray! Hooray! Hooray!

Any word on an alpha release or some kind of roadmap? I’d really like to test the midi functionality, but if the code and features are still moving targets, testing it would be quite pointless…

No. Ardour will record & playback MIDI, enable editing of MIDI data, and will host instrument plugins, but we’re not going to bundle a sampler with it. This is not necessary in a world where the software is a command or mouse click away, and all connected via JACK.


if and when Lilypond can render to a Cairo surface (cairo is a 2D drawing library), we will look forward to use lilypond for staff notation. Until then, we’re not planning to spend even 1 second looking at notation support when Lilypond has already got it all.

Staff notation is not a priority right now, and isn’t likely to be any time soon, to be honest.

However: Lossless/robust MIDI import and export is a high priority, so you can use whatever tool you like to edit MIDI with a score editor, until Ardour has support.

Writing a score editor from scratch is a huge undertaking, and isn’t something the Ardour team will ever do (bad design anyway). That said, there is a new score editor in town, NtEd, which uses the same graphics stuff as Ardour (Gtk/Cairo and friends). If the code there is easily reusable, score editing in Ardour may be feasible.

In short: maybe eventually, but definitely post 3.0.

Testing is far from pointless! Please fill the tracker up with whatever you find, even if you think it’s “obvious”. Bugs in the tracker are bugs that are likely to be fixed. Bugs not in the tracker… not so much.

Sooo I didn’t read the whole thread before replying… What he said. :slight_smile:

The ardour’s ability to edit and record/playback midi data while playing/recording audio tracks, is the feature that, in my point of view, will make it the true pro linux DAW.

About staff notation, yes I too need it, but doing some import/export with Lilypound, I think, its not a major drawback.
I. ex, why not arrange a key-binding script that does both the jobs.

Multiple stave notation like what you are looking for can be done. I don’t know if ardour does this, but I know rosegarden4 does. What I usually do, Is this:

RG4 for MIDI editing, Then I’ll use a less memory intensive program like Seq24 to pipe the tracks into Ardour.

You could use RG4 to “bounce” the MIDI to wav, but then you could have latency issues with Hi resolution audio (I record at 96KHz) which RG4 seems to not be good for.

Hope that helps


Thanks for the tip!
So, RG4 does multiple tracks midi editing/play/record in staff notation?

Piping with Seq24, ok, I understand.

About “bouncing” MIDI to wav, I’m not sure if I’ve understood…
I record some audio instruments [piano, wurlitzer, guitars, bass] at 192khz, and my midi instruments will be only some physical samplers, drum-machines, linuxsampler connected with jack, and maybe something like Hydrogen.
I will not use the RG “internal” provided instruments.

Will each track support multiple MIDI channels (instead of just one channel per track) ? I was impressed with Master Tracks Pro and other sequencers that did this in the later 1980s, it would be nice to see such support in Ardour3 in the 21st century.

ok, what i meant by “bouncing” is this:
mute all the MIDI except the one you want to “bounce” and then recors it as a 192KHz wav and then export it (I usually just right click and choose “edit with default editor” which opens the wav in audacity. Then i save it into my ardour project folder and import it to ardour. I think there is a way to export each MIDI at the same time, but this would require more outputs from the midi controller. IE: In Qsynth, you would need to be able to increase your audio outs to accommodate 16 channels. (I can’t do this lol cause my setup only allows me 1 stereo out that will work)

As for Hydrogen, I just export it as a wav file sice I mix the individual drums in hydrogen, so my drum tracks are a single file complete with the effects I want (But that is purely choice.)

I never use the rosegarden internals either except maybe the analog synth plugins, but i rarely use that.


no, I don’t believe that it will. But you can have more than one track per MIDI channel. What happens when you use that is that RG will use the levels of one track for all tracks onthat channel.

What I usually do is increase Qsynth’s amount of midi channels and then plug away. In Qsynth’s setup under the midi tab, you can adjust how many channels it will accept. In RG Setup, you can choose which ones are connected to what. This will give me up to 256 channels of midi. Then i can use the Qsynth Channels dialogue to pop what ever sounfont I want in there.


DavePhillips: Each track can support multiple MIDI channels, but there’s nothing on the GUI side and no specific plans yet, I think. This topic came up on IRC recently.

Good to know, thank you. Such a feature would be invaluable for many MIDI-based composers.

“Channels” in MIDI aren’t really channels at all, just a number in every event. So yes, you can have multi-channel data in a MIDI track currently (it requires effort not to do this, really). Operations to split (or merge) tracks by channel so you can edit them independently in separate tracks aren’t there yet, but will be soon enough.

However: I’m not sure if there is a reasonable way to independently edit multiple channels in a single track though. Even just from the interface point of view, how would that work? The best I can think of is a selector on the track header to only show events of a certain channel (with an option to show all events of course). This is very feasible.

If that’s not good enough, I’m not sure what else could be done that isn’t just separate tracks. Examples/Screenshots?

(All that aside, keep in mind that with Jack MIDI, or any patchable port-based MIDI system (including Alsa Sequencer) channel really isn’t as useful as it once was…)

Dave, there’s quite a few examples in various programmes (most commercial i think) of editable multiple midi channels per track. The easiest (and this could well be just subjective on my part) is a drop list of midi channels and pick one. At this point, options diversify, with some programmes then showing only the selected channel, and others merely highlighting the selected channel for edit.
Personally, i’d opt every time for a ‘highlighted’ editable channel, because it would enable me to match up instrument articulations, i.e., 1st violins downbow=mcha1, 1st violins upbow=mcha2. Being able to see both, or as another example, complex chord structures across instrument assigned channels, would be extremely useful.

In addition, with shortcuts for each channel, either qwerty or cc based(midi channels able to be switched from a second midikbd, or a dedicated control surface.) a user would be able to dedicate a port per track, and edit various channels, articulations, etc. from within the inline editor, including, if possible, changing the midi channel of a note. So a user would play a line in for say strings, then go back and assign the right channel for each note to trigger a particular articulation. (Another mention for a great step forward, inline editing.) Matching string bow positions is a pain at the best of times, but in a multiple midi channel per track paradigm, much of that pain is allayed, with simple qwerty or midikbd keyswitched channel allocation per note. (violins downbow=mcha1, violins upbow=mcha2, etc…)

As for why we would want mutiple channels per track, and why not just 1 track=1 channel? Well, my full orchestra template runs to 300+ tracks if 1 channel=1 track. On top of that, there’s the routing for all those tracks, and of course,a lot of scrolling. If i want to double the flute with the 1st violin in this scenario, there’s a long way to travel down the canvas to get there, and that takes a considerable amount of time.

If all my 1st violin articulations can be put into ‘port’ tracks,each with 16 channels, then i would use about 4 tracks, instead of over 60.
Makes a big difference when doing film or orchestral work.

And i guess you could say, better to have this option than not. After all, if you want just 1 channel, you have it, and don’t lose anything, and with the option, multiple channel per track users get to join in as well.

Here’s a screenshot of just one way of doing this, in a midi editor. In the top left of the image, you’ll see a drop down list of channels, including all. Each channel (including all) is key shortcut assignable, both in qwerty, and cc midi. (I have this setup to be switched from the black and whites on a second midikbd i use as a control surface.)