I have a session with a single MIDI track with some automation lanes. I have tried but failed to find where this automation data resides in the session folder (as I’m hoping to cut and paste it). It does not appear to be in the main .ardour file and most of the directories are empty.
It looks like the only remaining possibility is that the automation data is in the $session/interchange/songtitle/midifiles/automationtrack-1.mid file, but I can’t read it.
- Am I right?
- How can I read MIDI files like I’d read a text or XML file?
- (bonus) Why are MIDI files binary in the first place? It’s just structured data, right?
Thanks in advance.
“Automation data” for MIDI tracks is actually (generally) just MIDI Continuous Controller messages. We present that data as if it is “automation” because it plays almost exactly the same role as automation for audio tracks, and has very similar semantics.
Consequently, the automation data is just a part of the MIDI data for the track, not something separate the way it is for audio tracks.
The MIDI file specification (“Standard MIDI File format” aka SMF) is part of the MIDI specification and was written at a time when every byte counted (in fact, when every 7 bits counted). It was never intended to be human readable.
On Linux there are a variety of tools for “decompiling” MIDI back to text, and vice versa. I personally use one called “midicomp”.
Thanks. But now I’m curious about some behavior I’m seeing:
The old session has a MIDI track called “automation” with outbound MIDI automations and program changes on channels 14 and 16. When I export the track to a mid file and reimport it to a new session, I get TWO tracks. The first is labeled “automation-1-t0-1-L” and has the automations and changes for ch 14. The other is labeled “automation-1-t1-1-R” and has the automations and changes for ch 16.
What’s the deal there? Will it split a new track for every channel?
There is a dropdown menu to select this behavior in the Import Dialog. You can map imported MIDI to “one track per file” or “one track per [MIDI] channel”. A similar option exist when importing multi-channel audio.