Making M4L Launchpad MIDI Effect

joshg567's icon

I posted this on the Ableton M4L forum months ago to no avail. Perhaps I can find more interest here.

When I got the LP the first thing I did was make 8 midi tracks in session view with each one sending notes to part of a drumkit (kick, snare, hats, etc), and edited the clips such that the top-most row was one beat on 1, with successively more uniformly spaced notes on the descending rows. That is, two beats on 1 and 3, four beats on the quarters, eight beats on the eights, etc. Most every clip is in legato mode and launch set to toggle with no quantize.

It becomes a fun way to mess around with beats, but I don't like the way I more or less have to reserve those 8 scenes in every live set I want to use it with. I like seeing an empty session view as a blank slate. Moreover, I'd like to not need the LP session focus parked on those 8 midi tracks to do the beat crafting. Seeing as there's nothing too intricate about the midi in the clips themselves I figured I'd write a M4L midi device to receive signals from LP user1 mode to free the LP session focus and output evenly spaced midi notes for drums on a single track rather than 8.

After managing to tell which buttons were being pressed in LP user1 mode I was able to use metro and makenote objects to do the work. Pressing a button in a given column starts a metro sending fixed pitches from makenote, pressing another button in the same col changes the beat division of the metro object, somewhat like legato mode works with my clips, whereas pressing the same button twice will stop the metro object, like a session clip set to toggle. Unfortunately there is noticeably greater latency with this method compared to that which is attained prior, despite the latter's drawbacks.

As a compromise I have resorted to using the original 64 session clip matrix I used originally (actually variable numbers of columns are possible, but hidden in a folder track on the far left of my mixer and triggered through the LOM with M4L via LP user1 mode. Now LP session focus is free to roam away from those 8 scenes atop my template set with the beat midi clips and I get the responsiveness of toggling session clips without the latency of my initial M4L metro/makenote solution.

However, I'm still not satisfied. I think it should be possible to do it in one track with M4L producing the notes and not Ableton clips, AND with the responsiveness of toggling session clips in legato mode. I get the impression from reading that using MIDI sync is inferior to audio sync, but I'm not sure how to start down that path or whether it's the best approach. Of course, I'm an amateur and there could be an alternate way to conceive of the problem I'm not aware of. I've gotten to the point I'm soliciting help from the community.

If I can get that worked out I think it'd be worth programming the lights! Any suggestions are highly valued. I've hosted my "workbench" live set on blend.io if anyone wants to get a better sense of what I'm shooting for. Either use LP session mode to trigger clips in tracks named 1-13 (inside folder track 0), use User 1 mode with the device in track Clip Based after routing LP input to trigger those same clips (fyi I flipped the row/column orientation), or User 1 mode with the device in track MIDI Based to send similar MIDI for kick, snare, and hi-hat. There's more comments in the two Max devices themselves.

Thanks in advance!