live.miditool.in for Ableton 11? Not Possible?

Nova New Chorus's icon

Nova New Chorus

7月 24 2024 | 12:56 午前

Hi!

Live12 has Midi Generators, which can use live.miditool.in to generate whole patches of midi data like this:

Live 11 does not have these device types and according to the cycling74 docs live.miditool.in & .out only works with those live device types. Therefore live.miditool.in will only work in live 12.

I'm happy to build it in other ways, but is it even possible.

miditool has access to the entire midi channel and can input notes at different spaces. This could be a LOM11 v LOM12 accessibility issue. As far as I can tell midiin and midiout are the only real ways to do that in Live11 but they play with midi data in real time, so it's hard to live update the entire midi clip in real time. You're limited to outputting or inputting notes at the cursor/timeline position during playthrough.

I would love to be wrong. I'd like to hack something fun together without having to spend $200 I don't have for an upgrade.

ShelLuser's icon

ShelLuser

7月 24 2024 | 8:13 午前

There's nothing stopping you from building a MIDI effect which instead of processing is actually generating MIDI. Of course this would be realtime, which may not be what you want.

So another possible solution is the add_new_notes function (part of the clip class). I just verified with the LOM and this function is available from Live 11 and up. So here is the cool part: this function basically works in the exact same way as [live.miditool.out]; both require a dictionary with the notes definition to apply.

I suggest looking into the get_notes_extended function; this more or less behaves in the same way as [live.miditool.in]; it will provide a dictionary which contains all the notes in the clip you're working with.

Perhaps this guide of mine (posted on Reddit) could be of some use to get your fingers behind it. Although I'm obviously working with previously mentioned nodes (this covers Live 12) you might be able to use my examples to get your fingers behind the dictionary setup.

Nova New Chorus's icon

Nova New Chorus

7月 24 2024 | 7:52 午後

Thank you this is awesome. I'm already getting MIDI dicts now thanks to you.

LOM is a bit of a bane for me.

It's essentially a giant tree (similar to a json dict) that just provides location ids and other info for every piece of the LOM

Which is awesome. But browsing it with Max8 is a huge pain in the ass and it's the least documented part of max8 IMO.

I'd really love a tool that lets you visualize and explore it easily

My current issue is that addressing different midi clips is tenuous. Small changes to my program or deleting/changing a clip makes my patch output empty dicts. I'm sure it's my lack of understanding LOM or some syntax issue, but I really struggle to learn the LOM because of how little documentation and tools there are for exploring it.

Max Patch
Copy patch and select New From Clipboard in Max.