|
|
|
|
|
by tumult
878 days ago
|
|
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 editor that crashes pretty regularly in normal use, and incomplete documentation. In the long history of Max, I can only think of a couple of things I've liked that were made with it, and they were both for Max for Live. I think the fact that they were made with Max was just incidental — it's the easiest way to add MIDI effects to Live. (For anyone who answers with "but you can just write JavaScript now to do everything in it" — running MIDI events through its JS nodes defers the events to the non-timing-critical thread, ruining the timing of the MIDI events.) |
|
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~