I’m interested in using MIDI files as the basis for some backing parts, sequencing, automating parameters, etc. I’m interested in developing and using best practices. Here are some goals:
- Composing and authoring the MIDI in a WYHIWYG (What you hear is what you get) way. I don’t want to edit the MIDI in a sequencer blind, load it in, play it, find mistakes, and try, try again.
- Avoiding rewiring the rackspaces when going between authoring and performance modes.
- Automatically changing song parts without missing a beat.
- Possibly bridging songs (think Abbey Road, side 2 or most any concept album), though this could be done as one big song with song parts.
Let’s start with the micro. Composing the MIDI. In my case, I’m running Logic on a Mac. To start, I created a virtual MIDI connection and named it “Virtual GP.” (On a Mac, you open the Audio MIDI Setup app to do so.) I can now add a new MIDI Input in GP and map it to Virtual GP. IMPORTANT: In the DAW disable the Virtual GP input, or else you risk a loop back. When creating a new MIDI track, map it to Virtual GP and set the channel number as you please. (You can use a convention, such as drum kit on channel 10, but it’s arbitrary, really. It’s probably better to use channel 1 for track 1, etc.)
I found that it was best to create a MIDI Channel Constrainers in GP and put them between the Virtual GP MIDI input and the MIDI instruments. Load up your various sounds, and your DAW is now using GP as a virtual multi-instrument.
Now compose in your DAW as you normally would. Once complete (or partially complete), export the MIDI from all tracks, and save the file. You can now quit the DAW.
In the rackspace, add the MIDI File Player. Add the MIDI file to it. Map each track to its channel. Now connect the MIDI file player to each of the MIDI Channel Constrainers that feed your instruments. Hit Play in the Midi File Player, and the result should sound just like what you heard when you composed it in the DAW. WYHIWYG!
You can add a play widget to a panel, connect it up, and start and stop playback. (I didn’t find a Pause control. That would be nice, but way more complex for the developers to implement than Stop.)
One thing to note is that the mixer controls in the DAW don’t work. You need to pan and balance with a mixer in GP. And then we need to send volume and pan for each track and control the mixer. I haven’t done that yet. This would let the DAW (and the MIDI file) set the mix. We might add a way to tweak the mix live, just in case.
Okay, so much for the micro. That is, the song that plays (WYHIWYG) within one song part and rackspace of one song. As we move to the macro, we need to consider how to bridge rack spaces, change song parts, etc. I haven’t gotten that far yet, and I’m really hoping that others can contribute their proven methods. And if there are better ways to implement the micro, I’m all ears. The key for me was to play the actual sounds in GP from the DAW, rather than to manually load similar plugins into the DAW and GP.
Looking forward to building the skills and gigs to bring this all together!