For the past five years, I've had a story happen twice in pretty much the same way, ending up with the same result, so I wanted to share it with you. It's about MIDI, in-house/proprietary/SDK software, and Logic.
This all stems from the fact that hardware manufacturers have traditionally worked in slight disagreement about standards in general, each one often proposing a new "data format", and these have piled up over the years. During all this, we also got file formats piling up, and sampling technology also has files grow larger.
So in 2008 I find myself in the following position: I need to produce music for a console game. The music has to be MIDI. The sound-bank is custom so I can use sounds to my liking. After some foot-dragging, I am having the need to deliver in a short time frame. And then the woes begin.
First of all, Logic takes ages to load any project where I've used fancy sounds. Sample manufacturers optimise for quality, not size (silly of them, if you think in terms of reach). So one minute arrangement with, say, east-asian percussion takes me 1GB of memory and takes a minute to load. This is OK, except when Logic decides that the notion of having many files open translates to "keep many arrangements open, reload instruments for each arrangement when brought up". Very logical, but when you have a 1gb project from which you export MIDI and you want to check if the tiny exported file is OK, it quickly turns painful.
Why would you want to check? Well in the course of this I found out that Logic cannot export to MIDI automagically. I need to manually conform all my data so I don't get junk in the output:
- Logic does "export selection as MIDI" which is a double-edged sword.
- I use a lot of loops and sometimes aliases. These must be turned to real copies. The manual has instructions on how to do this, only the command that turns loops to real copies is missing from the menus.
- Same for overlapping or trimmed regions. No idea how that affects the output.
- Then there are muted notes which find their way in the output file. Unmuted, of course.
- Then there's quantize, which is undo-ed on exporting to MIDI.
- When exporting channels and programs' settings, they end up before the 184.108.40.206 mark. (??)
On top of reloading instruments and exporting crap as MIDI, Logic treats me to an endless MIDI loop if I try to use something like MIDI Yoke and Logic Platinum under Windows. I only have one computer, you see. I need to use this proprietary SDK/emulator software to construct the sound banks and find out how it plays. It does support MIDI in, but how do you feed it music directly from the sequencer?
I mentioned Windows. I've had this happen with two large manufacturers. I get handed some piece of Windows-only software that's not guaranteed to work with my environment at all. For a Nokia project in the past I got something that would only work with Cubase. This time it's worse. Another OS altogether.
Now, this program here is part of an SDK that costs. It's also NDA-d so I can't disclose names. It came with documentation that is very confusing to read at times, so it doesn't help any more than mentioning key words. It can't import anything I work with, except WAV/AIFF as separate files. Now guess how many times I need to drag a WAV file and adjust parameters for an Ultrabeat drumset. Now how about ultrabeat samples being in their own proprietary "ubs" format? So I end up using Battery, WAV samples, but it turns out the guys made 10 samples per cell. And Battery won't let me right click any of them and "reveal in finder".
The same piece of code has no built-in MIDI player, so I need to either send it MIDI or bring in some from say, Media Player, via the above mentioned MidiYoke.
I end up with two possible ways of working on this:
1] Export MIDI from Logic and play it back with Media Player into this SDK thing. or 2] Bring the MIDI output from Logic into the proprietary software in real time.
For #1 I already described the hurdles. For #2 I am dealing with the task of routing MIDI out of Logic on OSX, and into a MIDI port under Windows running Parallels. Software didn't help me here. OSX has a network MIDI driver, but Windows would have none of it. Nor would any software "MIDI over LAN" implementation. Luckily I have a Midisport 2x2 and can route the MIDI out from the Echo to the in of the Midisport. Connect the Midisport exclusively under Windows (in Parallels) and use that as a MIDI interface. Explaining just did my head in. It turned out I can't find the only MIDI cable I have.
Anyway, going all around this I settled on a workflow of exporting sample sounds from Logic (whether bouncing the most complex ones, or simply locating the wave files and copying them) to a shared folder, then launching the sound software, and crafting the sound bank.
By this time I've probably lost about ten days discovering with the SDK software itself:
- It won't import anything common like SF2 or AKAI, or modern, like, EXS, NKI, CEL etc.
- Timing is so loose, you can hardly hear what you're doing. This is because the program is too busy redrawing black and white keys being hit. (Very clever, have you seen a MIDI activity light on a full piece?)
- Minimizing the soundbank window stops playback because it loses focus.
- Clicking the mouse anywhere in the program interrupts playback. If you click too many times the sound begins to crackle.
- Clicking an instrument sets that as active program on channel 1, overriding anything else you might have had playing there.
- Instruments support multi-samples, but you can't select multiple WAVs on creating a new instruments.
- Did I mention there's not a simple "play sample" (in original form) button?
There are many others, from big stuff such as inconsistent sound levels, to minor things like file associations. Of course, my samples all ended up on the shared network folder, so the first time I tried to play a whole song, everything froze. That's how I found out files are saved to XML, leaving trails of old file references so if you started in one folder, you're stuck there unless you really know what you're doing.
After what now seems like ages of frustration and pain I failed to produce anything useful on time. :(
If you've managed to read this far, you'd probably guess I was not exactly having a very fun time with this. So could I suggest:
- If you're asked to produce anything in a format you're not comfortable with - maybe say no. For a modern DAW, MIDI alone should set your red light blinking.
- If you still need to work in MIDI, start with its limitations from day 1. No effects, no mixer, no quick-creation stuff like aliases, loops, etc. Plan plenty of time. My tracker background didn't help me enough.
- If you will be working with samples (i.e. your own provided ones) stay away from soft synths. Carefully consider multisampled instruments. Do not even begin to think about sampling softsynths later.
- If you must deliver for a large company that forces you to use an unknown format, made with proprietary software, just drop the task, unless it's really worth it, and you have plenty of time. At least this way you won't lose much "standing".
- If you still accepted in #4, spend a day studying what the likely piece of crap you're given can(not) do. Chances are you can still give up.
It is beyond me why SDK developers would not think of making people's lives easier. The one company I can think of that does this is Apple? It can't be that hard to do. I can't think of any current console that won't last for years. They are all very strong.
I am so off to the sea now.