Monday, December 10, 2007

Computers Make Me Mad

A disclaimer: I love computers. My day job is testing software. I use computers 18 hours out of every day. They still make me mad.

Case in point, at work they've decided to do this company compilation and give a copy of it to everyone for christmas. Everyone (who wanted to) was supposed to submit at least 1 track. I of course didn't find out about it until the last minute and only had a weekend before the deadline for submission. And by "weekend" I mean Sunday afternoon.

I actually was able to compose the backbone of the track on the MachineDrum Saturday night while "watching" TV. I also had a couple of modular patches in mind, both utilizing one of the joysticks that I've gotten wired up to a pair of patch cables. So I was rather excited because that short window of time on Sunday would simply be for tracking and quick mixdown. Easy peasy japanesy.

So I sit down Sunday afternoon, tweak on the patches for an hour or so and then decide to get down to tracking. I wanted to get each of the 12 tracks/sounds of the machine drum recorded onto it's own stereo track (stereo tracks because the machinedrum sounds had stereo verb and panning and delay on them and I wanted to preserve that). This meant syncing to MIDI big deal right? Well, after about 20 minutes of hooking all that shit up, finding the sync settings on the MD and setting the right stuff up in Logic+AudioMidiSetup I finally got it going. Hit play in Logic...MachineDrum starts playing. Sweet! :D

Add new stereo track-> Solo kick track on MachineDrum -> Record 4 bars -> Stop -> Playback -> WTF!?

The recorded audio was actually being printed earlier than it should off; effectively making each hit fall earlier than the beat in Logic. I know it should not do this so I spend the next 2 hours trying to figure out why it was doing it...I gave up out of frustration after that. No new track, and more stress on the weekend. Fuck.

I still have no idea where the problem lies. I'm keen to blame Logic as that is a favorite pastime, but I don't necessarily know if it is purely at fault. I imagine it's a combination of Logic settings, the midi interface connection (Elektron TM-1) over USB and some good ol' MIDI slop.

The thing that really sucks is I can't let it rest until I figure it out...I know I'll end up in there tonight cursing and yelling and kicking things. Heroes isn't on, I'll have nothing else to do but lock myself away in the nerd cave and get pissed off.


I'm also pissed off in general that this kind of setup doesn't "just work". I know it could be the USB hub, or just midi slop or some other unavoidable thing like that, but IMO, that's unacceptable. If MIDI Clock is supported it should fucking work, rock solid...if it's sloppy, what the fuck is the point, don't even put it on there. Same thing for USB midi interfaces...if you can't make it work reliably connected to a hub with a keyboard, mouse and dongle, don't fucking bother! It's not like I have cheap shit either.... ok, I'm getting off on a rant. :/

Fingers crossed for a happy ending.


brandon daniel said...

Back when I was a logic user, it used to have an audio setting for latency compensation that would let you set the number of audio buffers before or after it's actual location that you wanted the audio to land after a recording. This was really useful, as you could account for the inherent latency of your audio interface and have the audio land *exactly* "on the one" where you wanted it. Having this set wrong could account for what you see, if this setting is still in there.

felix said...

That is in fact what I thought the problem was. I know my interface has ~1ms of converter latency which is not reported in the driver for some reason.

But, it seemed that in this case, Logic was already over-compensating for this latency being that the audio was actually printing early rather than late.

I was able to get closer using an extreme number, 800ms. That can't be right, I know there isn't nearly 1 second of latency in my signal path. Even if it was, I would expect maybe -800ms seeing as Logic is over-compensating already.

Actually, now that I think about it, I bet when I had 800ms set, it was probably skipping the first kick drum and I was actually hearing the second kick the tempo I was using, they were about 800ms apart.

I'll be fuckin with it all again tonight, hopefully I can pin it down...if not, I'm trying Live to see if I have the same problem.

brandon daniel said...

Something eles to check: there could be similar settings for midi/midi clock that cause your machinedrum to run early... good luck, I hate troubleshooting this kind of stuff. Fortunately, for the most part once you get it settled right once, it's good until your next format and install.

J.w.M. said...

Agh! Maddening stuff, for sure.
Any luck?

felix said...

Well it was an interesting night...

First off, part of the problem was the 1 bar count in! Of all the things to cause problems, giving the sequencer a whole bar's time to get it's shit together would be the last thing I thought to cause a problem.

Once that was set to have no count in, the recorded audio was now late...somewhat expected, if Logic wasn't, for some reason, compensating for any audio interface latency. So I immediately adjusted the "Recording Delay" parameter. Adjusting this did nothing.

I decided at this point to once again record the machinedrum sequence as MIDI to eliminate MIDI clock as an issue (I also had taken the Elektron TM-1 and plugged it directly into the MacbookPro instead of a hub, which made no difference). I was able to determine that MIDI clock was not an issue because there was no difference between Logic playing the MIDI into the MachineDrum, or having the MachineDrum lock to Logic's clock.

So, I thought that maybe Logic 8's compensation of recording latency was somehow broken and decided to change from a setting of 512 samples to 64. This cause the amount that the audio was late *TO GET BIGGER*. I was absolutely lower buffer sizes, the audio was later and at higher buffer sizes it was early. I nearly lost my mind contemplating the paradox.

I decided to try a newly found setting which would advance the midi clock (and another setting which would advance all midi) by a certain amount. It didn't do anything.

So I went back to messing with the I/O buffer size. 256 samples had the least amount of delay to the recorded audio; 512 had some of the audio too early. Since you can only choose 32, 64, 128, 256, 512, 1024, 2048, I settled on 256 and just accepted the amount of delay and proceeded to tediously track out all the machinedrum sounds. I then cropped the delay off of the front and adjusted the tracks.

After all that, I found that there actually was a bit of midi slop, so much so that each track was off a little bit and the collective slop made the track less punchy than just playing the stereo output of the machinedrum. At this point all I could do was sigh with a broken spirit.

This did give me an excuse to use the MachineDrum's Song mode and actually sequence out the various muting of sounds. In just a little more time than I took me to fuck around with Logic, I was able to sequence out the whole thing. By the end of it all though I was pretty tired and didn't actually record any of it yet. I will this weekend.

All in all, I'm glad it forced me to use the MD's song mode, but I'm not looking forward to syncing anything again any time soon. I should have checked sync in Live just to see if it's all Logic's fault, but I'm starting to give up on the whole thing.

Ugghh... Good news is, I got a sequencer today! I'll put up a separate post, hopefully with an audio demo, tonight. :D