Live data from Hacker News

Learn How to Build Your Own Max for Live Devices

elphnt.io

11–20 of 24 posts

Re: Learn How to Build Your Own Max for Live Devices

#11
post #2

Max and Max for Live are both great, though I do wish for something more like a normal programming API. I own Max and have loved to use it but dealing with the fact that it's a visual language can be very painful. I know a lot of people who just moved away from Max to JUCE, which is a C++ framework for writing VSTs, AUs, etc. The problem is that in that case you lose a lot of the power of Max for Live, since Ableton…

I love max, though I haven't used it since it got the upgrade from the old black and white UI. One thing I really liked about it is you can combine visual programming with procedural code, you can add boxes which process inputs using javascript code

Re: Learn How to Build Your Own Max for Live Devices

#12
post #8

Earlier quoted context omitted.

If you start your comment with a disagreement then why would I read the rest of your comment as an agreement if you did not state so?

If you can realize that your opening statement was a 'backhanded-compliment' towards MAX, you would see that you both functionally said the same thing. "It's great, but..." and "Is it great?" both convey the message that MAX gets a lot of praise/recognition that maybe isn't deserved or warranted, at least anymore. They're much more in agreement than disagreement when taken full context.

Yes, that's what I'm saying

Re: Learn How to Build Your Own Max for Live Devices

#13
Max4Live is what got me into Ableton, it also got me out of Ableton...

As someone who had been using PureData for quite a while the idea of having that kind of development environment integrated into the DAW was super exciting, unfortunately the actual implementation leaves a lot to be desired; personally the final straw was when I realized that the Max process space was global to Ableton so that global variables would leak between devices (no sandboxing)... This may have been addressed in further releases as I was a very early adopter, but all of the other issues pointed out by the other posters still stand.

If you're looking for a platform agnostic alternative to Max4Live there is PlugData[0] which is a VST implementation of PureData -- the open-source origin of Max and created by the same authors.

And there is the Grid for Bitwig[1] which offers a modular graph based MIDI/DSP programming environment that runs at audio rate and is fully integrated into the DAW as a native solution! The Grid is somewhat limited as it isn't extensible, but it supports >95% of common use cases and is used internally to build Bitwig's native devices. Hopefully in the future Bitwig will extend it's open API surface to include building custom Grid modules -- in the meantime PlugData is perfectly acceptable patch for doing unusual logic calculations and doing left-field things like interfacing with robotics :)

[0] https://plugdata.org/ [1] https://www.bitwig.com/the-grid/

Re: Learn How to Build Your Own Max for Live Devices

#14
I really wish Bitwig had similar capabilities.

Yes you could quite easily write plugins nowadays but you can't really embed them into the DAW itself, using floating windows instead. And you can't really make them look native easily.

OTOH you can create Grid devices but they're not as sophisticated as Max. And you can't explicitly code them.

Re: Learn How to Build Your Own Max for Live Devices

#15
post #2

Max and Max for Live are both great, though I do wish for something more like a normal programming API. I own Max and have loved to use it but dealing with the fact that it's a visual language can be very painful. I know a lot of people who just moved away from Max to JUCE, which is a C++ framework for writing VSTs, AUs, etc. The problem is that in that case you lose a lot of the power of Max for Live, since Ableton…

I love max, though I haven't used it since it got the upgrade from the old black and white UI. One thing I really liked about it is you can combine visual programming with procedural code, you can add boxes which process inputs using javascript code

JS code is not processed at audio rate. Would be a total gamechanger if it was

Re: Learn How to Build Your Own Max for Live Devices

#16
post #14

I really wish Bitwig had similar capabilities. Yes you could quite easily write plugins nowadays but you can't really embed them into the DAW itself, using floating windows instead. And you can't really make them look native easily. OTOH you can create Grid devices but they're not as sophisticated as Max. And you can't explicitly code them.

Maaybe you'd find https://ossia.io interesting :D

Re: Learn How to Build Your Own Max for Live Devices

#17
Of possible interest here, I wrote Scheme for Max, which lets you use S7 Scheme in side Max, and hence, inside Lisp. I use it to make Max for Live devices in Scheme!

It's fantastic for controlling the Live API because the way the Live API works is you identify things you want to control with lists of symbols. This is far more pleasant in Scheme than either in Max, JS, or Python (your other options in Live, though Python is not officially supported for non-device vendors).

While Live has many warts, and I wouldn't want it to be my only DAW (I also use Reaper), the Live API lets you do things you can't come close to any other pro audio software (yes, including bitwig and reaper). Being able to have my sequencers interface with the entire app is incredibly powerful.

Here's the project page and youtube page if you want to check it out:

YouTube: Hacking Live with Lisp https://www.youtube.com/watch?v=j0sKBA-Pv2c

Scheme for Max on Github: https://github.com/iainctduncan/scheme-for-max

I also ported csound~ for Pd to Max so one can mix csound in with Scheme and Max seamlessly. https://github.com/iainctduncan/csound_max

Re: Learn How to Build Your Own Max for Live Devices

#18

Max4Live is what got me into Ableton, it also got me out of Ableton... As someone who had been using PureData for quite a while the idea of having that kind of development environment integrated into the DAW was super exciting, unfortunately the actual implementation leaves a lot to be desired; personally the final straw was when I realized that the Max process space was global to Ableton so that global variables wou…

I love Pd, and think plugdata is great, but it should be mentioned that it's not really an equivalent of M4L devices - it does the audio processing side, but none of the DAW controlling side.

(I wrote Scheme for Pd, which puts a scheme interpreter in Pd)

Re: Learn How to Build Your Own Max for Live Devices

#19
post #2

Max and Max for Live are both great, though I do wish for something more like a normal programming API. I own Max and have loved to use it but dealing with the fact that it's a visual language can be very painful. I know a lot of people who just moved away from Max to JUCE, which is a C++ framework for writing VSTs, AUs, etc. The problem is that in that case you lose a lot of the power of Max for Live, since Ableton…

See my top level reply on Scheme for Max. By I have managed to hide the Max bits when working in Scheme so one gets essentially a Scheme api for Ableton. I have plans to release more features for this when Live 12 goes public...

As someone who works in all spots on the spectrum, I would personally never say "just learn to code". My music rig includes Live, Max, C code, Scheme, and eurorack. There are parts in each layer that are vastly more efficient to do in that layer. (Many years ago I did do it all in code, and wouldn't go back)

Re: Learn How to Build Your Own Max for Live Devices

#20
post #3
post #2

Max and Max for Live are both great, though I do wish for something more like a normal programming API. I own Max and have loved to use it but dealing with the fact that it's a visual language can be very painful. I know a lot of people who just moved away from Max to JUCE, which is a C++ framework for writing VSTs, AUs, etc. The problem is that in that case you lose a lot of the power of Max for Live, since Ableton…

Is it great? I've never liked it. It has downsides of assembly programming, like unnamed (but persistent) values stored in temporary "register" slot output pins, some additional own-goal downsides like "significant whitespace" of the positioning of wires and port output ordering, and all of the downsides of an oldschool scripting language like TCL, with terrible performance characteristics, buggy implementation, an e…

Well, it is great, just not great for you. :-) It's a low code environment built to allow non-developers to develop! It is undoubtedly great for many, many people.

BTW, my Scheme for Max extension does run in the timing thread, if you want to write sequencing code in Max. I basically did the same thing they did with JS (lock it to one thread) but let the user choose the thread and let the user control when the GC runs. It works suprisingly well for sequencing - locks in with Live completely if you trigger things with plugsync~

Post reply on HN