Jump to content
IGNORED

MIDI over USB: am I doing it wrong or does it really just suck


thawkins

Recommended Posts

Yesterday I finally got frustrated enough to come here asking for advice.

 

Here's a short overview of my setup:

  1. Master keyboard Roland A33 -> MOTU Track16 MIDI IN -> cheap chinese USB2.0 to USB-C adapter -> Macbook Pro. No issues in this chain.
  2. Macbook Pro -> cheap chinese USB2.0 to USB-C adapter -> MOTU Track16 MIDI OUT -> Korg MS2000R (MIDI Thru -> Volca Sample). No issues in this chain either.
  3. Macbook Pro -> cheap chinese USB2.0 to USB-C adapter No. 2 -> cheap chinese powered USB2.0 hub -> Livid Code v2, Korg MicroX, external numpad. Plenty of issues in this chain last night.

The symptoms - the Code lights up and hooks up with my Live controller script, numpad works fine, but the MicroX does not show up in Live at all. I think there are some times when it can actually send MIDI out but not receive any, which is pretty weird, but I might be misremembering this.

 

To fix this, first I unplug & plug the USB cable on the MicroX - no change. Then I unplug & plug the whole hub from the laptop - now the MicroX shows up but the Code is unresponsive. Then I dived into the cable hell under my desk and just unplugged everything from the hub and then plugged the things back in and finally (I think) unplugged the hub from the laptop again.

 

In the end I got Live to recognize everything, but the whole experience was pretty bad. I want to fix this stuff once and for all. The GAS devil inside of me says "hey man you should get a proper fancy USB-C hub with USB3.0 connections, you deserve it, you NEED it, it's not GAS if you NEED it".

 

On the other hand, having written down all that stuff now I think maybe what I am doing wrong is that I should actually plug in the USB hub before I turn on the power to the hub.

On the other other hand, isn't USB-C supposed to be this hyper super powered mega-fast thing, so I could finally just have only the power cable and the fancy hub cable going into my laptop and make all my dreams come true?

On the other other other hand, I get a ground loop hum from my MicroX if the power adapter on the USB hub is not plugged in, so if I do get a fancy USB-C hub without an external adapter, will I also get that hum?

 

Anyways, are there any others here who have a lot of USB stuff plugged in their studio computer or other fancy new USB-C ports only MBP people? I know I could bikeshed my own solution, but I would prefer not to. :)

 

Thanks for and ideas & suggestions and sorry for the wall of text.

Link to comment
Share on other sites

I'd try going into osx's midi setup, delete the one that shows up and then rescan and see if everything shows up. Also definitely look into getting a good powered usb hub, doesn't need to be usb-c I don't think.

Link to comment
Share on other sites

I need a USB-C hub because my laptop is one of those fancy new MBP's that no longer have normal USB ports. So getting a USB-C hub means that I don't need to have a cheapo chinese adapter in between.

 

Thanks for the suggestion of clearing MIDI stuff in the OSX settings thing though - I haven't checked there in ages, although I am not sure if that configuration matters for Live at all.

Link to comment
Share on other sites

Ah right, yeah in that case...

 

I think it does, at least in the sense that if things don't show up there they don't show up in live either.

Could also be a dodgy cable somewhere along the line btw.

Link to comment
Share on other sites

USB stuff on synths seems to be sketchy as fuck to be honest.Dont like it so much.Driver issues,noise etc etc

I myself had trouble with the Monologue and the TR09/08.

Real MIDI is so much better.

Link to comment
Share on other sites

Yeah, USB over MIDI sucks because

 

A) USB transmits data in bursts rather than continuously, and even at the highest priority you can set the USB subsystem in a modern multitasking OS it's still relatively low priority, so your OS will regularly give interrupt requests from other processes higher priority (and yes I'm aware I'm butchering this description) which is why multitasking operating systems (all of them - MacOS, Windows, Linux; BeOS and AmigaOS might be exceptions but that's not really relevant to most people) have notoriously bad MIDI timing compared to non-multitasking OSes like the Atari ST and the proprietary stuff that's running in hardware.  The easiest (if not the most practical) workaround is to get a piece of hardware that understands SMPTE and MIDI clock, slave it to the DAW via SMPTE and then slave all of your other hardware to it.  Audio has very high thread priority and the timing is strictly determined by the sample rate (unlike MIDI where any given message has no timestamp or anything of any kind, so if it arrives late there's no way to reconstruct the original timing by having a buffer or anything like that- and yes, I'm still butchering the technical details and terms here).  Faster CPUs have improved things, but it's still pretty bad unless you're that one guy who posted on some forum last year that he had optimized his new Mac to have lower-than-MIDI-spec jitter. 

 

Almost all hardware has some jitter (the MPC 3000 has allegedly been tested to have no measurable jitter) but computers tend to have jitter that's an order of magnitude worse than the average hardware.  Hardware with solid timing, like the MPC2000 or the Elektron boxes, tends to have around half a millisecond of jitter. 

 

Unless something is badly wrong, you probably won't hear jitter as obvious timing problems, but it absolutely will mess up the feel of your sequences if you're doing stuff that relies on really solid timing (i.e. programming really tight drum sequences and stuff). Comfort and fear of change aren't the only reason a lot of 90s producers kept using their old Atari ST systems well into the mid 2000s.

 

 

Anyhow, I haven't used it yet myself but this freeware program to analyze MIDI jitter, latency and other timing issues is supposed to be very good:

 

http://www.users.on.net/~mcdds001/mmmmqac/midi_jitter.html

 

You need to do some basic soldering to take advantage of its more advanced features but for the basic stuff all you need is a MIDI interface and any hardware sound module with good timing.

Link to comment
Share on other sites

Feel really stupid asking this question but using a midi interface that's hooked up via usb to your computer = same as midi over usb, right?

Link to comment
Share on other sites

Yeah, the issue is the way OSes prioritize USB and the fact that MIDI data doesn't carry any kind of timing information.

 

How big a problem it is really depends on what you're doing, though.

 

I use an Octatrack for a lot of stuff and I've noticed that if I'm continuously sampling and playing back in real time (so there's being recorded to a record buffer in the Octatrack while simultaneously being played back from the buffer, in a continuous loop, so that it just sounds like the audio is passing through  until you start manipulating it), which works flawlessly when the Octatrack is the master, if I try to slave it to a DAW the jitter is bad enough that there are actually clicks at the loop point, because timing of the record and play trigs isn't stable (if you don't use an Octatrack, this setup basically consists of a record trigger and playback trigger on the same step in the step sequencer, so every time playback passes that step it restarts both the recording and the playback - normally it's completely seamless).

 

THAwkins,IknowIalrady mntiondthistoyou via PM but for anyone else who has problems with jitter (and it really is program dependent- ifyou're doinga lotof slow pads or somethingyou'llnever noticeit- most of the time itdoesn'tbother me but it can definitelymess withthefeelof drum patterns, especially if you're multitracking a drummachineinmorethanone pass) god damn itmy keyboardisfucking upagain tl;drthis shouldbe a good fix but I need to get a couple parts before I can build one:

 

https://midisizer.com/midigal/midiclk/

Link to comment
Share on other sites

Thanks for all the info! It makes sense to me because I have noticed that even connecting my audio interface through the USB hub instead of directly makes a 20ms difference in latency.

 

I checked the docs for the MOTU Track16, and it seems to support SMPTE. It's still unclear where to go from here though.

 

Basically I understand I need to fix two things:

1. Figure out what is the latency of any time-critical MIDI going in to the computer. I think this is easy, all I have to do is just play my keyboard to Live's click and make sure that the recorded notes are more or less close to the grid (5-10ms max delay). Now all the MIDI that lives in Live should be nicely in time.

2. Figure out all the latencies of the outboard gear. If I route all MIDI through the Track16, this probably means setting up a bunch of External Instruments and figuring out the correct delays (and hope that the delay does not change day-to-day), so the incoming audio is recorded nicely aligned to the grid and also sounds tight together with the metronome.

 

However now that I think of it, at the point where I get the incoming audio to sound together with the click track, doesn't this mean that should go back to step 1 and mess with the incoming delay once more to make sure that when I play to the click track, all the MIDI still ends up correctly on the grid (because the audio will probably be delayed 20-40ms).

 

Seems like some kind of a plan to test out sometime this week. :)

Link to comment
Share on other sites

You can output SMPTE from any line out on an interface, the trick is having some kind of hardware sequencer that can receive it and generate MIDI clock.  Which isn't many anymore, it's convenient with some old gear but with modern gear you're better off with something like the MIDIgal with the clock tester/generator firmware.  The clicking problem with the Octatrack when I slave it to the DAW was the last straw for me but of course one part that should be no problem to get is on backorder until October and holding up my entire order of parts for the thing, so I can't vouch for it personally yet but I build a MidiREX (designed by the same guy) years ago and it works well, plus the original MIDIpal's high resolution clock mode worked really well, so I am confident this thing will be great.There are other alternatives but they're either way more expensive (Innerclock Systems and the like) or proprietary (Elektron had a high precision USB MIDI interface for a while that I think is discontinued, but it uses a proprietary Elektron version of MIDI that only a few of their boxes support).  There are some really cheap old boxes that will listen to SMPTE or sometimes a superior proprietary timecode and convert to Midi Time Code, but MTC is pretty obsolete and not widely supported anymore so probably not useful.

 

FWIW modern hardware is more than capable of very solid midi timing, it's more down to drivers and OS settings.  I'm not a MAC person but there should be a wayin MacOS to configre the priority of your USB interface and that should improve things.

 

Here's the thread from a few years back where someone apparently got better-than-Atari (which is known for having some of the best MIDI timing of any computer ever) on OSX, might have useful information:

 

https://www.logicprohelp.com/forum/viewtopic.php?t=120285

Link to comment
Share on other sites

I skimmed through that forum post quickly and it seems there's no need for me to worry about jitter if it really is more like a nanosecond game, because my main concern right now is to just get my latencies corrected to have all notes in time (not 10-40ms off to the side).

 

I suppose the connectivity issue can just be fixed by ditching the cursed USB in favor of a real midi cable.

 

I did see one of those Elektroni MIDI boxes for sale on CL, but if you say it's an Elektron-specific standard I am not sure if getting one will help. :)

Link to comment
Share on other sites

Are you sure those latencies aren't on the audio side rather than the MIDI side?  That's excessive.

 

 

To me, really bad jitter starts in the 1-2ms range (which is WAY more than you'd get out of any decent hardware clock source) and even that isn't a big deal in a lot of contexts (but it can be a big problem if, say, you sequence something in hardware and then transfer it to a DAW in multiple passes for mixing - even a millisecond of jitter on every pass is enough to change the feel, and on older computers you would sometimes see more like 5-6ms which is HUGE but not common anymore).  Anyway, the person who posted all of that stuff is getting exceptionally good timing, which is what I'd expect with MIDI timestamping (I've got an older interface so I don't have the advantage of that,but it's usually good enough).

 

It sounds like the trouble you're having is probably something else, because those are huge latency numbers.

Link to comment
Share on other sites

Are you sure those latencies aren't on the audio side rather than the MIDI side?  That's excessive.

 

 

I am sure the latencies are on the audio side. Now I lost some sleep wondering if it is normal to have a 40ms latency with an outboard hardware synth.

Link to comment
Share on other sites

I spent a couple of hours messing around with latencies yesterday and I am not sure if I should be disappointed in my software/hardware or I am still doing something significant wrong, OR this is actually normal for my kind of setup.

 

Basically I tuned my MIDI and audio tracks' delays so that the incoming audio would be aligned to the grid. For some reason I could not perfectly get it to match the metronome click, but I figured it's good enough even so. I tested this with an arpeggiator, so the initial MIDI should have been pretty close to perfect timing on the Live side of things.

 

And then I went and tested recording a MIDI clip playing myself on the keyboard, and even though while recording & monitoring, it sounded perfectly in time, the moment I started the playback it was noticeably late and sounded like shit. I am pretty sure everything was more or less 40ms late, and that is due to me tuning the latencies before to get the audio to align to the grid.

 

I am pretty sure I am doing something wrong somewhere - I don't run millions of effects and I have an up to date MBP with a nice audio interface so 40ms latency should not be happening.

 

By the way, I just figured that all the MIDI also goes through my bespoke Camomile-wrapped Pure Data thing, which could well be a bottleneck itself. Got to try with just the bare bones setup tonight.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.