Changing presets in Analog
I'm new to M4L and doing a computer science project for school. I will need audio clips of each preset (.adg) for Analog. Basically, this is for ML purposes so I need some good training data.
I need a Max for Live device that can:
Load Presets: Automatically load each preset into the Analog synth.
Listen to a loop: Set a loop within Live with MIDI clip inside of it. For now, I'll just play a single C note but would also like to record a progression later on.
Record the Output: Start and stop recording to capture the audio from the synth.
Save and Label the Recording: Each recording is saved with an appropriate label that matches the preset for easy identification.
So far I haven't had any luck with anything. I can't seem to even access the device using live.path and live.object.
Just wondering about the complexity of this task. I've watched the tutorials and played around with it but any of the things I've listed above I can't figure out. I'm also not sure how I would iterate through each preset? What do you guys think?
Why do you specifically need Analog?
I'm not a M4L specialist so I can't say for sure you can do all this, but I can say you can do it in standalone Max quite easily. However, you won't have access to the Analog synth but any VST (or any Max made synth).
Regarding the M4L approach, looking at the LOM, it seems that there is no way to change a Live device preset, unfortunately. A workaround could be to use the chain selector, but it would be quite annoying to set up and basically cannot be done programatically. Or use ClyphX in between.
I’m starting with Analog because someone already trained a model to create patches for it based on category (lead, pad, bass, etc.). The configuration for the patches are stored in XML files which are easy to parse compared to say a .fxp. Are you saying I could access vst parameters through Max and train my model to create Serum patches? That might be a good workaround but I suppose you’d have to save them manually.
Yes, using the [vst~] object you can load any VST in max and access all of its exposed parameters. You could then use [pattrstorage] to save and export your presets as json or xml files.
You didn't mentionned in your first post that you want to actually export preset files. .fxp
preset files seem to be very different from device to device, and there doesn't seem to be any way to export Serum preset files outside of Serum.
This said, if you really need to export your presets in .fxp format, you might be able to use 11clicks and 11strokes from 11Olsen, they allow to simulate clicks and key strokes, so with a bit of fiddling you should be able to programmatically hit the "save preset" button of Serum and write your programmatically generated preset names.
You can do all of the tasks in a m4l device, loading .adv/adg presets with the 11live.tools external, controlling playback and record into a buffer~ capturing the Analog output. But it will take some time to figure stuff out if you are new to m4l. But once you got it working, it will be easy to adopt it to other Instruments or vst's (if you have fxp presets). Make sure to bookmark the LOM link above.
Ooh I forgot about your 11live.tools. I actually never used any of your externals because I never needed to, but I frequently end up recommending them. They definitely fill a gap in Max!
Yes, that's usually where my motivation to write some C code comes from, in the end, having something that the vanilla objects don't offer.