3 ms·
I was a musician before becoming a software developer. Max/MSP was my gateway into the general field of programming and I still rely on the intuition I built ba
by jakobloekke 7y ago
I was a musician before becoming a software developer. Max/MSP was my gateway into the general field of programming and I still rely on the intuition I built back then when forming mental models about problem solving. Object-orientation, functional concepts, declarative programming – it’s all in there in a very tangible way. It’s just a joy to work with!
So, seeing how Max just keeps maturing and becoming more and more accessible makes me very happy!
And having it integrate so well with Ableton and the outside world is really a major leap forward compared to back then (2004, pre-Ableton acqusition). We spent oceans of time getting sensors, midi and OSC working together reliably! Now it’s a non-issue.
- cactus2093 7y agoThat's an interesting perspective, I've found quite the opposite. I'm an experienced developer and I've dabbled with Max for Live but have not quite found it a joy to work with. Having to do everything in a GUI is just really tough to do, so I give them props for how good it is, there's no other purely visual programming environment I've tried that is even this usable. I did find the discoverability surprisingly poor when starting out, but after a while I think I now understand the structure and what's possible. But my biggest complaint is it's just soooo slow to do basic things. You have to drag and drop every single little construct, instead of typing "if { } else { }" which takes maybe 5 seconds, you have to drag and arrange and connect like 6 different things which takes at least 20 seconds and a lot more focused dexterity. I also find the freeform spatial layout kind of stressful and dread changing anything, instead of going into a function and editing code or adding a couple of lines of new functionality, you have to drag everything everything else around the page to add space for the extra blocks you want to insert. I don't want to undersell it, the libraries and building blocks you get in Max are amazing, and the ease of things like working with audio buffers make up for a lot of the painpoints. But I do wish there was a first-class way to connect things together with code instead of the current system, I think it would make iterating much faster and more enjoyable.
- jcelerier 7y ago> You have to drag and drop every single little construct, what ? no :) You type `n`, type the name of your object, and press enter. e.g. to create a [trigger b b] your keyboard sequence would be `ntrigger b b<enter>`. Hardly the end of the world
- dkersten 7y agoI, like you, was an experienced developer before I ever used Max, but unlike you, I found Max a pleasure to work in and have always wished I could use something like it for my day to day work. I mean, yes, Max had (maybe still does, been some years) some major limitations that prevented it from being used as a general purpose language and yes, some things are simply easier to express in text, but I loved working in Max. I loved not having to name things until I was done experimenting and knew exactly what it did, I loved visually connecting things together. I'm a heavy user of boxes and lines, usually on paper, to help me think through complex problems and I found that in Max, I could do most of my thinking directly in code, rather than having to doodle on paper. Yes, Max has (had?) a ton of limitations and gotchas, but I don't feel that they're something that couldn't be fixed. Some day, I'd like to try make something Max-like but with what I saw as problems "fixed", but I've never had the time to do it. > I also find the freeform spatial layout kind of stressful For me it was the opposite. I found it liberating. I did make very heavy use of abstracting things into smaller components and making sure my visual code didn't look like spaghetti. I loved how clear the flow of my code became.
- erikschoster 7y agoThere are plenty of mature text-based options for music programming. For example SuperCollider (which also serves as a sound engine for many other front-end languages), Faust, ChucK, RTcmix, Csound (one of the oldest and still widely used & developed), HMSL, Hiroki Nishino's forthcoming microsound-oriented LC language, Paul Batchelor's stack-based Sporth... and on and on. Not to mention many options for using your general purpose language of choice with a music synthesis library, I'm the author of one for python called pippi. Paul Batchelor's C-based SoundPipe library is meant to be embedded. (I'm using parts of it in pippi.) And so on! (FWIW Max also has many text-based options like the lower level embedded gen language, and many bridges to higher-level languages like javascript, python, lua for programming at control rate...)
- pottering 7y agoJust refs for stuff others mentioned: https://docs.cycling74.com/max8/vignettes/keycommands https://docs.cycling74.com/max8/vignettes/keycommands https://docs.cycling74.com/max8/vignettes/quickref https://docs.cycling74.com/max8/vignettes/quickref https://docs.cycling74.com/max8/vignettes/shortcuts https://docs.cycling74.com/max8/vignettes/shortcuts https://docs.cycling74.com/max7/vignettes/javascriptinmax https://docs.cycling74.com/max7/vignettes/javascriptinmax https://docs.cycling74.com/max8/vignettes/00_N4M_index https://docs.cycling74.com/max8/vignettes/00_N4M_index https://docs.cycling74.com/max8/vignettes/lua_in_max_topic https://docs.cycling74.com/max8/vignettes/lua_in_max_topic https://docs.cycling74.com/max8/vignettes/gen_overview https://docs.cycling74.com/max8/vignettes/gen_overview https://cycling74.com/tools/max-toolbox https://cycling74.com/tools/max-toolbox http://www.music.mcgill.ca/~ich/classes/mumt402/MaxMSPExternalsTutorial3.1.pdf http://www.music.mcgill.ca/~ich/classes/mumt402/MaxMSPExtern... http://www.interactionlab.biz/v2/wp-content/uploads/2010/09/WritingMaxExternalsInJava.pdf http://www.interactionlab.biz/v2/wp-content/uploads/2010/09/...