playing 16th notes through transport and live.grid, timing sounds inaccurate

    May 28 2013 | 1:32 pm
    I've written an algorithm that takes the output of [transport] and converts it to a number between 1 and 64, which is then fed to a live.grid.
    If I set all 64 semiquavers to 'on' and start the transport, the timing of the notes sounds a little off, when compared to playing semiquavers from a Live clip.
    I'm using a straight Max patch here (not an M4L device) but I'm assuming that shouldn't matter.
    Could it be my algorithm is inefficient? I've read that it's better to put your whole calculation into a single [expr] (as I have in this patch) rather than use a chain of math objects (which, by the way, produces the same inaccuracies).
    I'd be grateful if you could try the patch on your machine and tell me if you experience the same inaccuracies, and also suggest how I might eliminate them. Thanks.
    Edit: system details: Max 6.0.5 OSX 10.6.8

    • May 28 2013 | 3:00 pm
      Well, it turns out I get similar inaccuracies even if I just use a metro hooked straight up to a makenote.
      So what else could the problem be? I'm sending the MIDI to the AU DLS Synth 1, the default synth on a Mac. If I had an external synth I would try it through that.
      Or could it just be a problem with my system in general? I have a MacBook Pro 2.3 GHz i7 with 8GB RAM, so it's a very capable system.
    • May 28 2013 | 5:52 pm
      It's the 16n in the metro - metros are horrible timekeepers in max, for some reason.
      Here's how I usually handle it.
    • May 28 2013 | 6:06 pm
      Thanks Wetterberg.
      Your patch is an improvement, but I still think I can hear some smaller inaccuracies.
      I wonder what would be a good way to test whether it's real or I'm just imagining it. Perhaps record some audio and then analyse it.
      Any suggestions welcome for audio analysis tools that could do this.
    • May 28 2013 | 6:19 pm
      load it up in Live. Trigger something like a square wave in operator. Record it. Measure the spaces between each note. Repeat.
      Honestly that midi sample thing it plays drove me nearly nuts.
    • May 28 2013 | 6:32 pm
      I was thinking more along the lines of a command line tool where I could feed in the audio and it would give me information such as average time between transients, and an error margin e.g. ±5ms
      Indeed, any repetitive sound will drive you crazy after a while - thanks for bearing with it to help me!
    • May 28 2013 | 10:26 pm
      I think my point was that it's rather difficult to even hear if it's tight when it grates like that - integrating it in a track and actually *using* it is really the way forward for me.
      Anyways, I've been using the above method live and in the studio for a while now, and I've yet to see anything snappier in Max.