beat prediction (beat tracking)

    Dec 17 2010 | 10:08 am
    Have anyone worked with beattracking/beat prediction in max?
    I have looked at beat~ and btrack~ ... however, I can't get any of these objects to do what I want them to do:
    I have two persons activate x amount of tones (with a bang).
    Then I want max to 'listen' to these x amount of tone activations and determine a tactus (a common rhythm)
    Does anyone have an idea how I can do this? For example, do I layer btrack~ objects? I have trouble understanding why btrack~ doesn't keep predicting the next beat in a stable way. There must be something that I don't understand about the object's internal memory structure - when the memory is reset etc.
    Thank you for your help!

    • Dec 17 2010 | 10:34 am
      Hi again,
      Hmm, I found an object by François Pachet that is called beatitude~, and it almost does what I want. Except that instead of tracking beats x amounts of seconds backwards in time, I need to track the tempo from x amount of triggered tones ...
    • Dec 17 2010 | 12:57 pm
      I just wonder where the objects of Adam Stark can be found. Neither google nor searching the archive provide usable links (they are mentioned several times but no links...)
    • Dec 17 2010 | 2:36 pm
    • Oct 22 2012 | 8:26 pm
      this is probably better link:
      There has been a re-vamp to thse externals since, and they are called qm.btrack~ etc in the newer versions, although both work well.
    • Oct 22 2012 | 10:38 pm
      you might want to build it from scratch. i would start off an [timer] object and see what i need to do to the input data.
    • Nov 20 2014 | 7:07 pm
      Hi all,
      I am using Max 6 (PC) and neither beat~ nor beatitude~ work. Any suggestions for another external for beat tracking?
    • Dec 07 2015 | 7:18 am
      Has anyone got any of this to work? All the externals objects I've tried don't seem to work. They are all grayed out or they crash Max.
    • May 05 2016 | 6:35 am
      Hate to bump this with no updated info but I'm having trouble compiling btrack. Everything else seems dead.
    • May 05 2016 | 10:14 pm
      I have tried to compile using an old aubio libarry for fftw and libsamplerate
      the external is at
      however, on testing, the resample onset function crashed it
    • May 05 2016 | 10:47 pm
      I emailed the author this morning. It's really sad that there's been so many attempts at this functionality and it's fallen by the wayside. Seems like there's a lot of stuff max can do until someone's graduate project goes out of date.
    • May 05 2016 | 11:20 pm
      I've added the 2010 version of btrack external to the github above.
      In this case, the source is here, so you could compile an object if required, so to some extent, it's not out of date, it's just not so simple to be immediately useful. I think compiled versions would be helpful. Will mention to Adam.
    • May 06 2016 | 1:41 am
      IT WORKS!!!!! Zakir Hussain is confusing the hell out of it in the most glorious way! SO COOL Are you the other author or did you just manage to compile it? This is amazing!
    • May 06 2016 | 9:06 am
      which one working? (the 2010 zip or the recent one?)
      I've been working with Adam for years on things. I'll let him know. really we should compile a new version of these and check for windows.
      what are you looking to do with it? what kind of signal are you hoping to beat track? if you want to send over an example .wav, I can check possibilities there...?
      however, hopefully btrack~ can do the trick.
    • May 06 2016 | 10:48 pm
      GAH! I spoke too soon!!!! Something happened and nothing works in 64 bit again! I could have SWORN I had it working last night.
      First of all, your github has three btracks. A) is only 1k, in the top directory. It doesn't work anywhere B) is in a zip called That only works in 32bit. C) is labelled 2010 and only works in 32bit. I included the error messages
      I'm working on a project building effects for tabla so I would never expect it to know where 1 is, but it's certainly beautiful.
      A) 64 bit
      btrack~: unable to load object bundle executable 2016-05-06 18:33:18.334 Max[1005:42709] Cannot find executable for CFBundle 0x7fd7a19de1b0 (not loaded)
      B) 64Bit btrack~: unable to load object bundle executable 2016-05-06 18:34:55.242 Max[1013:43983] Error loading /Users/MattUser/Downloads/btrack_external-master 3/Second Zip/btrack~.mxo/Contents/MacOS/btrack~: dlopen(/Users/MattUser/Downloads/btrack_external-master 3/Second Zip/btrack~.mxo/Contents/MacOS/btrack ~, 262): no suitable image found. Did find: /Users/MattUser/Downloads/btrack_external-master 3/Second Zip/btrack~.mxo/Contents/MacOS/btrack~: mach-o, but wrong architecture
      C 64Bit btrack~: unable to load object bundle executable 2016-05-06 18:37:10.243 Max[1021:45989] Error loading /Users/MattUser/Downloads/btrack_external-master 3/BTrack2010/btrack~.mxo/Contents/MacOS/btrack~: dlopen(/Users/MattUser/Downloads/btrack_external-master 3/BTrack2010/btrack~.mxo/Contents/MacOS/btrack ~, 262): no suitable image found. Did find: /Users/MattUser/Downloads/btrack_external-master 3/BTrack2010/btrack~.mxo/Contents/MacOS/btrack~: mach-o, but wrong architecture
    • May 08 2016 | 1:15 am
      I spent the morning trying to load the code into another xcode project. I can't FFTW to get included because I'm an xcode moron
    • Oct 22 2016 | 2:58 pm
      I was looking for a stable/reactive beat tracking solution and stumbled upon this thread. It turned out that brack~seemed to be the best solution so far. thanks! If you are still interested, here is btrack~ external compiled for Max7/32bit/64bit for OS X.
      BTW, you can open Max in 32-bit mode if you want. like this:
    • Oct 22 2016 | 7:25 pm
      @nao i can't get yours to work in 32 or 64bit. it just shows up as a broken/orange object.
    • Oct 23 2016 | 2:57 am
      oops... sorry. I fixed a linker error. could you download and try it again?
    • Oct 23 2016 | 4:10 am
      nice! it loads fine, looking forward to trying this out. thank you.
      Just one question. I'm usually terrible at remembering specific names of externals, do you know how add an object description so that when i create a new object, i can type "beat" and the btrack~ object would show up under the list of all my objects/externals that have some "beat"-related functionality? Just a minor thing, no worries if it can't be done.
    • Jun 08 2017 | 12:16 pm
      I need to use tempo tracking for a project I'm working on! Does anybody know where I can find a version of btrack~ for Windows? I've been looking everywhere and can't seem to find one, only OS versions.
      Similarly can anyone recommend other good tempo tracker/analysis objects or threads? Any help would be greatly appreciated.
    • Jun 15 2017 | 2:44 am
      I came across this eternal object. They have Windows version as well!
      IBT (INESC Porto Beat Tracking software)
      Hope this helps!
    • Jun 16 2017 | 4:05 pm
      @NAO Thank you very much Nao, I have that up and running now! I'm trying to use it to get the accurate tempo of piano pieces. A tricky problem! Thanks again