Jump to content

Logic Pro 9 Midi Fluctuation


kenti

Recommended Posts

Dear fellow Logic friends, here's the thing..

 

Lately I've noticed something weird when playing back external instruments via midi. The midi is constantly fluctuating around a given tempo.

 

Say I record a 4/4 rimshot at 123bpm then align the recorded track to be in sync with the bar/metronome. The first aligned wave is of-course in-sync, but the rest fluctuates randomly around the needed values, sometimes forward sometimes backward.

It's never really noticeable like a +/- 1bpm galloping fluctuation, it's a tiny but very annoying fluctuation especially on drums.

 

And it's not just ONE particular midi instrument or audioInterface or Midi Interface.

Tried 4 different midi interfaces, 4 different clocks. Tried Logic 8. Erased logic preferences, audioMidi preferences, restarted twice, updated Interface drivers... wtf?

Link to comment
Share on other sites

believe me I've tried 32, 64, 128, 256, you name it, I've tried it.

 

Has nothing to do with Midi interface: Fact.

Nothing to do with Audio Interface: Fact.

Nothing to do with natural round trip latencies, it's a random fwd. backward. fraction fluctuation: Fact.

Nothing to do with Studio-clock: Fact.

 

I'm not sending out any kind of midi sync signals, no MTC, sequencing or the like.

Notes/velocity only. This applies to any type of external gear, be it a synth or ANY other midi receiving device controlled via logic.

Logic's internal midi is in perfect sync as usual.

 

here's another ongoing discussion, I've started on another forum, I'm not alone on this anomaly as you'll see:

 

http://www.gearslutz.com/board/music-computers/482777-logic-pro-midi-fluctuation.html

Link to comment
Share on other sites

kenti,

 

I think this is due to your audio card,.if i get you. You are looping ext midi back in recording it as audio and seeing an offset.

correct?

 

You can search here for "audio offset" fader8 has outlined a detailed thread on audio offset.

 

I dicked around with this but,.gave up. I did find that my audio loopback was about a 1 sample difference. so,.thing is,.tbh...unless you're looking specifically for a discrepancy by doing these comparisions you don't hear it (in my case)

when playing a project.

external midi devices all have there own oddness, I use a few external modules.

They sound great but this technology is 20-some years old unfortunately we are slave to this dated protocol.

 

Now,.

Sitting back,...listening to a project, you really shouldn't hear the midi drift in time.

IMO, logic has the best midi clocking of any daw and I'm fluent in use with

DP, Sonar, Cubase, Nuendo.

I at one point was a user of each.

Link to comment
Share on other sites

Thank you for the reply Minimoog.

If it were a matter of 1 sample I wouldn't be worried about it at all.

 

We've just established (on another forum) that the minimum latency is 80 sample.

you can check out the following screenshots to see that the fluctuation is random and a note will sometimes trigger and record even before it is meant to be "played" via midi but also much later, and all within a single bar.

 

0) Overview of recorded external device

http://img138.imageshack.us/img138/1992/picture3ib.png

 

1) recorded audio aligned to Bar.

http://img69.imageshack.us/img69/8245/picture6kr.png

 

2) recorded audio fluctuation at 2nd Bar:

http://img268.imageshack.us/img268/9894/picture4ou.png

 

3) recorded audio fluctuation at 4th Bar:

http://img232.imageshack.us/img232/631/picture5cd.png

 

Also this has been tested with various recording devices, I do not even use an all-in-one audio card in the classical sense. In this example it's an RME AIO clocked via a Lavry AD-10.

Link to comment
Share on other sites

wow,..80 samples off is weird, something is just wrong with that,..

 

btw,..I read the gearsltz thread,...take that with a grain of salt because one clown was posting his midi was playing back and started doing triplets and sixteenths...

I mean,...?!

still there has to be reasons in your case. I used to use an RME fireface audio card,..no issues really. But is it possible that the driver for your device is not happening?

It used to be that Mattias at RME hates Macs,.IMO they are more developed for PC.

 

still.

have you tested others DAWS and have you tried other audio cards?

Link to comment
Share on other sites

wow,..80 samples off is weird, something is just wrong with that,..

 

btw,..I read the gearsltz thread,...take that with a grain of salt because one clown was posting his midi was playing back and started doing triplets and sixteenths...

I mean,...?!

 

EDIT: My mistake. Thought you were on about the midi tests i'd run. I see the poster saying his midi starting doing jazz time and fox trot swing :shock:

Link to comment
Share on other sites

It takes about 1ms to transmit one MIDI event through a MIDI cable.

 

@ 44,100 Hz, 1ms = 44 samples.

 

If you have two MIDI events, that's 88 samples.

 

You can't get more precision when using external MIDI.

 

David, that would be perfectly acceptable if the offset was "constant" or at least unidirectional.

 

In my of recording of 16th single-hit notes it went from (after first 16th aligned to 0 or 1st bar) -30 samples on 2nd hit, to -70 sample on 3rd hit, to -100 samples on 4th to +(PLUS)125 samples on the 5th.

This is the very definition of inconsistency and randomness. Of course were I to go on counting offset for the next 20, 40, 100 bars the effect is the same.

 

You can check my screenshots (posted above) for a visual representation of what I'm talking about.

Link to comment
Share on other sites

My own tests here, 48k SR, 120 bpm. Sequenced quarter notes, 4/4 time, over 25 bars. So, 100 events.

 

Sending this to an external sampler which is playing back a single pulse in response to each event. I get a jitter value of +/- .505 milliseconds. That includes outliers, it's usually better.

 

I can live with that.

Link to comment
Share on other sites

My own tests here, 48k SR, 120 bpm. Sequenced quarter notes, 4/4 time, over 25 bars. So, 100 events.

 

Sending this to an external sampler which is playing back a single pulse in response to each event. I get a jitter value of +/- .505 milliseconds. That includes outliers, it's usually better.

 

I can live with that.

 

 

Excellent acceptable values. I'd be happy with those as well.

What Logic version were these recorded on?

Link to comment
Share on other sites

Having now set up my recording delay to what I'm satisfied is more or less spot on, i re-ran my midi test.

One bar of 16 notes, coming out of a unitor 8 and back into my audio unit via a midi to audio jack cable i wired.

32 samples buffer size, PDC off, software monitoring off, Logic 9.1.1, Unitor 8 with latest drivers.

The midi data started at bar 2, and from the screen we can see Logic actually sends out the data 90 samples early. So around 2 ms. (90 divided by 44.1)

This test bypasses any midi instrument delay, as it uses a straight midi cable to audio jack.

Not good.....

542042958_Screenshot2010-04-11at00_19_43.png.8f95439b54d0342b73831700973a2963.png

Link to comment
Share on other sites

john909kid,

I guess I'm not seeing the relevance of your last post. Are you recording the actual MIDI signal for a reason? Is this something you do as part of your production?

 

No... it's just me having too much time on my hands and running tests which attempt to investigate things like midi jitter..... incase it's of interest to anyone. I may get round to making music one day :lol:

 

In a perfect world 16ths notes would be spaced apart 5512 samples.

 

So i just did a quick count and i found that from the bar i recorded as audio the timing was more or less spot on. 5510, 5512, 5509.... max variation 6 samples of jitter.

 

So even though Logic is sending midi data EARLY, the rest of the data follows more or less in time.

Edited by john909kid
Link to comment
Share on other sites

My own tests here, 48k SR, 120 bpm. Sequenced quarter notes, 4/4 time, over 25 bars. So, 100 events.

.

 

I see you ran a test, except in mine i had 16ths, and i used a midi to audio cable. I think this is a good test method rather than using the timing off a hardware synth which has it' own reaction time to midi data.

Link to comment
Share on other sites

If anyone's interested I ran some test in this thread

http://www.gearslutz.com/board/electronic-music-instruments-electronic-music-production/131654-what-best-daw-midi-6.html similar to the above one. Really to test how tight, or not Logic is with midi hardware synths.

 

Post 159 onwards is where it may be of interest. I also ran Logic under heavy CPU load, and the timing still held up.

 

Problem now is this midi starting early thing which is bugging me... :cry:

 

PS i'm Jauqq in the other thread.

Link to comment
Share on other sites

My own tests here, 48k SR, 120 bpm. Sequenced quarter notes, 4/4 time, over 25 bars. So, 100 events.

 

Sending this to an external sampler which is playing back a single pulse in response to each event. I get a jitter value of +/- .505 milliseconds. That includes outliers, it's usually better.

 

I can live with that.

 

Have you tested to see if your midi data starts on time? ie not before the start of the bar.

 

Ski's post in this thread shows this has been going on for some time...

http://www.logicprohelp.com/viewtopic.php?p=202696

Link to comment
Share on other sites

Have you tested to see if your midi data starts on time? ie not before the start of the bar.

 

Ski's post in this thread shows this has been going on for some time...

http://www.logicprohelp.com/viewtopic.php?p=202696

Yeah, you'll see my old sync method further down the page in that thread.

 

I think this is a good test method rather than using the timing off a hardware synth which has it' own reaction time to midi data.

Well, I'm only concerned about the whole round trip time, and how much it deviates from it, in context with each synth or sampler.

Link to comment
Share on other sites

Kenti, I had a look at the midi interfaces you were using and noted that none of them were of the old Emagic interfaces.

Both Fader8 and myself have confirmed we'e getting very minimal jitter (even though notes start early for me... ignore that for now) and you'll also see we both use old Emagic Unitor interfaces.

Many people have stated that midi timing was great under Logic 5 using the old AMT time stamping Emagic used back then. And now you'll even see that Apple releases drivers specifically for the Unitor family of interfaces.

I believe these latest drivers are just updates of the old AMT code from Logic 5. The code was solid then, so it wont take much to update it to work with the same interfaces today.

It may be an idea to try and test your set-up with an old Unitor 8 mk2 or AMT 8.....

Just a thought.

Link to comment
Share on other sites

believe me I've tried 32, 64, 128, 256, you name it, I've tried it.

 

Has nothing to do with Midi interface: Fact.

Nothing to do with Audio Interface: Fact.

Nothing to do with natural round trip latencies, it's a random fwd. backward. fraction fluctuation: Fact.

Nothing to do with Studio-clock: Fact.

kenti,

In none of your posts in this thread do you state what version of Logic, what MIDI interface, what audio interface, or what methods you used to test.

 

Had a look over your method, but to be honest i'm a bit lost.

Any chance you could up a Logic song file with things set up as you described please? I'd like to investigate this. Thanks

Some things have changed in Logic 9 and I haven't had a chance to calibrate a sampler yet, so I'll look into it today and post back.

Link to comment
Share on other sites

In none of your posts in this thread do you state what version of Logic, what MIDI interface, what audio interface, or what methods you used to test.

 

Logic 9.1.1, Logic 8.0.2

Midi Interfaces: RME AIO, Midisport 2x2, Motu Traveller Mk3, E-Mu Xmidi

Audio Interfaces: RME AIO, RME 9632, Motu Traveller

Clocks: Lavry AD-10, UA 2192, RME AIO, RME 9632

External Devices: Moog Voyager, Poly Evolver DS, PC with V-stack and Cubase 5 as sampler

Link to comment
Share on other sites

Thanks kenti.

 

Method is important! When I use the external instrument plug-in, then real-time bounce the track, my round trip delay (MIDI to audio captured) is about 563 samples. If I create an external MIDI track, then record in real time to an audio track, that delay becomes 333 samples!

 

(Note: 48k, buffer 64)

 

Something else I've discovered . . from the manual:

 

Common Instrument Parameters

The following parameters are available for both software instrument and MIDI instrument channel strips.

 

• Delay: The Delay parameter allows you to compensate for any differences in reaction time between your various MIDI devices, or to create offsets between channel strips. The parameter contains a pop-up menu with the following two settings, common to both software instrument and MIDI instrument channel strips:

 

• Delay in Ticks: Sets the instrument delay in ticks, with a range between –99 and +99.

• Delay in Milliseconds: Allows the user to set tempo independent delays (or pre-delays) in steps of 0.1 milliseconds, with a range between –200 ms and +200 ms.

 

This setting does NOTHING in Logic 9.0.2 if you are using the External Instrument Plug-In.

 

So, in order to avail yourself of the new instrument "Delay" parameter, you must use external MIDI instruments by sequencing an external MIDI track, not a software instrument track using the external instrument plug-in.

 

But the Delay setting in the instrument common parameters in the inspector is the key to tightening up external MIDI device response. I'll post a procedure shortly.

Link to comment
Share on other sites

I'm not using an external instrument plug-in.

I'm using a regular external midi track, and recording to an audio track.

The round-trip latencies are of no concern to me as I'm aligning the recorded result manually to be in perfect alignment with the 1st bar.

If you check my screenshots you will see exactly what I mean.

If the problem were round-trip latencies or predictable/constant offset, well then there would be no "problem".

 

The actual problem is the wildly varying offset, as in -30/+125 samples between 3 quarter notes. If I record a simple 4/4 bassdrum it's galloping like a retarded drummer.

 

 

EDIT, here are the screenshots so you won't need to scroll through all the previous posts:

 

 

0) Overview of recorded external device

http://img138.imageshack.us/img138/1992/picture3ib.png

 

1) recorded audio aligned to Bar.

http://img69.imageshack.us/img69/8245/picture6kr.png

 

2) recorded audio fluctuation at 2nd Bar:

http://img268.imageshack.us/img268/9894/picture4ou.png

 

3) recorded audio fluctuation at 4th Bar:

http://img232.imageshack.us/img232/631/picture5cd.png

Link to comment
Share on other sites

The actual problem is the wildly varying offset, as in -30/+125 samples between 3 quarter notes. If I record a simple 4/4 bassdrum it's galloping like a retarded drummer.

I agree, 3-4 mS of jitter is too much, particularly if it's happening all the time. What OS are you running? What version of CoreMIDI.framework? Open Audio MIDI Setup, there's a menu item called "Core Audio Versions" and that's where you'll find it.

 

Is anything sharing the USB port with your MIDI interface?

 

I just recorded a spike on my sampler from a 100 event MIDI track 12 times, then bounced all 12 tracks together. The pic shows the 2 max jitter amounts I got on these runs collectively. Most were much tighter. 62 samples was the worst case. The tall spikes show where the sample hit 2 or more times in the same place.

1830195351_multipassjitter.jpg.26ab405e6007bacab49c2af17ff7ea33.jpg

Link to comment
Share on other sites

fader8, just wanted to thank you for helping so far.

I think it's an issue many users could also benefit from.

 

My CoreMidi Framework is 1.6.1

I'm on 10.5.8

In the case of RME AIO's own midi port there's no USB sharing the port, it's PCIe, by default that's my midi interface of choice for external devices.

Link to comment
Share on other sites

My CoreMidi Framework is 1.6.1

I'm on 10.5.8

OK, same here. That's good, ie apples to apples, as it were.

 

Wow, I just did the same thing in Ableton Live 8. Rendered 10 tracks from a MIDI sequence of quarter notes. Took all those audio files and dropped them into Logic, bounced the mix of them to a single file. About a third of them were bad, and I mean bad! You'd almost think there was some kind of random swing applied. 625 samples is over 14 mSec's at 44.1k! That's an outright flam. Here's a pic of the typically bad jitter examples from Live 8:

AbletonMIDI.jpg.8408c9919ea682245d7c458dda03570e.jpg

Link to comment
Share on other sites

[What version of CoreMIDI.framework? Open Audio MIDI Setup, there's a menu item called "Core Audio Versions" and that's where you'll find it.

 

You mean to open the Audio MIDI setup from the Utilities folder?

Ive opened that but cant see anywhere about "core audio versions".......??

Id be interested in what version I have too.

 

EDIT: I've found it, it's ok. My CoreMIDI framework is version 1.7

 

It's found under the preferences> Info tab in the audio midi setup.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...