Max for Live app ideas

neuronaut's icon

I have decades of experience with programming - but none in Max for Live yet. I've been doing tons of research though and I'm an expert JS programmer, so I'm sure I can be useful. I'd be glad to help with either of these pet projects of mine:

meta-mapping (style-sheets for music)
The idea is to be able to separate the composition from the sounds, effects, etc that a required to make the song sound right. Then be able to use "style-sheets", to basically mix and match. In web dev, CSS is used to define how a page looks, and the HTML page defines the content. So the idea in Ableton would be, the notes and tracks define the content, and the new, missing layer, defines how the content SOUNDS! Another way to look at it would be an attempt to apply the MVC model to Ableton.

- snapshot of entire song as midi data, including settings of instruments in a user editable file
- apply snapshots to a new song, overriding only settings I want - EG, just the instrument settings W/O the midi notes
- ability to edit snapshot's meta-data (JSON)
- meta data should be similar to CSS
- cascading datasets - override attributes, else inherit from parent
- sounds should be broken into distinct building blocks so the LFOs, filters, etc could be applied to any instrument
- ability to save chunks of meta-data so they can be dropped on top of other tracks

Instrument/Effect Plug-in reference
I download all sorts of cool plug-ins, but I forget what they do when the time comes. I want to automate a look-up reference for the plug-ins I have installed.

Essentially, it needs to do this:
- get a list of all available plug ins, preferably in searchable list
- clicking an item in the list launches a google search for the instrument - uses "I feel lucky" functionality to present the best search result for a plug in!
- not all searches work "off-the-shelf", so the ability to customize search criteria or a specific page for each plug in.

I already have an alpha of this as a web-app that uses Cubase's XML export of the available plug-ins.
Check it out here:
http://neuronaut.org/alpha-plugin-browser/

Thanks for your help/thoughts/direction!

Jdudeo's icon

The style sheet idea seems interesting, though this makes me wonder if it's possible for M4L devices to tell Ableton to create objects, since this would be a necessary function for what you're looking to implement. But it also seems you could do this without Max anyway by just creating custom racks in Ableton to drag into your tracks, independent of the MIDI data.

When you get into wanting all your LFO and filter devices etc. to be separate it seems that trying to do all this with Max will not save you any time even in the long run since Ableton already has many ways to deal with this stuff.

The other difficult part I see is that sometimes you can (as I often do) have MIDI effects that are integral to the musical composition of the track, stuff like arpeggiators, pitch objects, step sequencers etc. and these would have to be associated with your musical composition as opposed to your style-sheet.

On top of that, how do you deal with VST plugins? Especially ones that need to be configured to make desired functions available to live for modulation. It becomes hairier for MIDI VST plugins and the necessary MIDI and track routing.

Somebody correct me if I'm wrong but it seems easier and more convenient to just take advantage of Ableton's built-in functions for saving presets, racks and browser locations.

zeeshanaayan07's icon

Thanks for sharing a great post.I appreciate your thinking

vichug's icon

erm, yes, how i understand this is that you want to, kind of, re-make a part of ableton's saving system ? isn't that odd ?

neuronaut's icon

RE: Meta-data mapping

I agree that Ableton's native environment is almost exactly what I described. That's why this is actually a possibility, instead of a pie-in-the-sky! :)

Essentially, if Kapture (https://www.ableton.com/en/packs/kapture/) was rewritten slightly, so that the data saved produced an editable markup document, the basic implementation would be 90% done.

Imagine markup like this:
.bass{
lfo1:
lfo2:
osc1:
osc2:
etc....
}

And then imagine being able to assign the markup to any track or clip, etc.... buy adding ".bass" to the title of the track, etc.

There are 2 master conversion scripts:
- From song to meta-data
- From meta-data to song

Both of which could start off simple and evolve over time:
- Stage 1 implementation would be something like Kapture, but with a CSS
- Stage 2 implementation would include a way to convert note relationships into algorithms!

Regarding the unique setups found inside channels, including all the non-normal ways of using any plug-in: I think there should be a way to pass paramaters "raw" from any device, into a workable CSS model. As time permits, special methods could be added to handle any use case. Preferably by the artist!

Jdudeo's icon

Why do you want to edit a CSS-style file instead of just using Ableton to edit presets, what's the advantage? It's like you want to build a harder-to-use and less visually intuitive Ableton inside of Ableton.