Forum Information

Dear users, I have decided to phase out the posting on the forums on this website and move any discussions over to this private facebook group or join the Discord for realtime chat. I will not make the forums offline as there is a wealth of content, but posting has now been disabled. Thanks to all those who have contributed over the years, and I'll see you over on the Facebook group or Discord! -Tom

Welcome, Guest

TOPIC: live input Looped BPM Finder (w.i.p.)

live input Looped BPM Finder (w.i.p.) 4 years 2 weeks ago #21144

  • insomniac
  • insomniac's Avatar
  • Offline
  • Fundamental (Fresh Boarder)
  • Posts: 2
  • Thank you received: 1
Hi, I thought I'd share this work in progress. It is my first project to try and learn more about M4L. Tried to keep the patch layout as tidy as possible in case anyone wants to tweak it. Feel free to get involved if you find it useful!

It is actually a very specific tool at the moment. Created it to make it easier to find the exact BPM of a non-midi synced guitar loop pedal. In other words, if a guitarist creates a loop on a non-synced loop pedal while you're jamming along on Live, you can use this device to tell you the exact BPM to enter into Live's tempo to be able to get in sync without drifting too much (or hopefully at all) during the rest of the jam. This could be useful for stage situation when a guitarist starts a track on a loop pedal and you need to get your Live tracks in sync with it. Of course you can probably just do it with tap tempo and nudge in live anyway with enough experience or just use a midi-clock capable loop pedal to start with (but thats not the point here :laugh: )

It works by recording audio into a buffer, creating a duplicate of the buffer. The user chooses a loop point (a few millisec long) in the audio, and then also a target area to search for a repetition of that loop point) The algorithm steps through the selected buffer area trying to match the chosen loop point to the current search location. If found it can calculate sample offset from the original loop point and thus work out a BPM for the user.

The algorithm only works with an exact repetition of the loop point. (ie. ideally a loop pedal source) Analog drift is accounted for with some "fuzziness" in the search and some parameters are adjustable to make the search more lenient or try to match a longer section.

I'm sure this could be coded to find the result much faster, at the moment the matching algorithm is made up of clunky max device chains cycling through buffers (slow!) And it would be cool to create something that automatically detects a looped input without having to visually select loop points etc..

Instructions (Looped BPM Finder v0.5)

1. Input live feed from loop pedal source into a Live audio track
2. Use the Looped BPM Finder device's Record button to record a section (can increase or decrease buffer length for convenience)
3. Hit the same Record button again to stop
(The top and bottom waveform displays will now both display the recorded buffer)
4. In the top waveform display, select an obvious loop point.
5. In the bottom waveform display, drag-select a section to search for a repetition of this loop point.
6. Hit "Find BPM" button and hope for the best.
7. If it fails and you are sure there is a loop point in the search area, try adjusting Match length, Detection Threshold & Error Margin and try "Find BPM" again.

Looped BPM Finder v0.5.amxd
Last Edit: 4 years 2 weeks ago by insomniac.
The administrator has disabled public write access.
The following user(s) said Thank You: Karl37

Please publish modules in offcanvas position.

Cron Job Starts