TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Max/MSP: A visual programming language for music and multimedia

128 pointsby zaisteover 5 years ago

14 comments

jancsikaover 5 years ago
Max is Max&#x2F;MSP, where:<p>* MSP is an engine for generating&#x2F;synthesizing&#x2F;analyzing realtime audio which the user builds as a diagram in a GUI. The backend automatically sorts the diagram into a graph and generates the audio as the user builds the program. So by the end, the programmer has used their ears to measure whether the program can indeed compute audio for the diagram in realtime. (And the corresponding classes for signal computation are designed with soft realtime scheduling in mind.)<p>* Max is a general purpose programming language where the user creates and connects various branches of different Rube Goldberg machines together in a GUI. This appears superficially similar to DSP diagrams above. But each object in the chain can do anything from simple realtime appropriate math to doing file i&#x2F;o while allocating large chunks of memory. There&#x27;s no easy way to tell which of these Rube Goldberg objects are realtime safe. Plus one can iterate infinitely and recurse into already recursive chains of calls with ease. (The MSP engine prohibits recursion.)<p>Due to lack of constant aural feedback for Max diagrams, users typically keep a separate, erroneous mental model of all the Rube Goldberg machines in their short-term memory. In fact, most users practice a novel form of cryptography I call &quot;Fresco-based write protection&quot;: the user keeps drawing and connecting more Rube Goldberg machines atop one another until their short-term memory becomes the only private key that can decode them. Given about 30 minutes for the frescoes to &quot;dry,&quot; this technique is proven secure even against rubber hose attacks.<p>For maximum frustration, Max&#x2F;MSP has objects which let the user hook Rube Goldberg machines up to a DSP graph, and vice versa. And I mean maximum frustration: while such inter-diagram connections give users functionality they wouldn&#x27;t otherwise have, they also give users the false-confidence necessary to schedule a performance that ends up with that user staring at a silent laptop and muttering, &quot;I don&#x27;t understand, this worked fine on Tuesday.&quot;<p>Edit: clarification
评论 #22349352 未加载
评论 #22394988 未加载
评论 #22357299 未加载
评论 #22349318 未加载
评论 #22352276 未加载
H1Supremeover 5 years ago
I&#x27;ve been using MaxMsp for a few years now, and I&#x27;ve been writing software for much longer. When I&#x27;m using Max (for audio and midi), it does not strike me as a &quot;visual programming language&quot;, nor do I feel like I&#x27;m writing software. It strikes me as a modular environment like Reaktor or VCV rack, but one step closer to the &quot;metal&quot;.<p>And in that space, I think it works wonders. I initially got into Max because I had a lot of ideas for midi sequencing that I couldn&#x27;t execute with more traditional tools. Initially I tried writing it by hand in C++ (which I did to an extent), but it became tiresome.<p>Max was a breath of fresh air. I was building sequencers, clock dividers, sequential switches, and all types of bespoke tools very quickly. A background in software definitely helped, but it was still a quick learn. Additionally, I can sync with DAW&#x27;s, grab data off of IAC busses, and map controls to Midi controllers very easily. All things I&#x27;m happy to not concentrate on while being creative.<p>I don&#x27;t have as much experience with the MSP (audio) side, but I have built some loopers and granular inspired patches.
tayistayover 5 years ago
Max and Pd are interesting languages. Quoting the original designer, Miller Puckette [0]:<p>&quot;The design of Max breaks many of the rules of computer science orthodoxy, sometimes for reasons of practicality and sometimes of style.&quot;<p>Audio and control signals are both represented in the same canvas, but with substantially different semantics. Audio signals are roughly what you might expect if you are familiar with analog audio processing: plug one box into the next, and data is constantly flowing. The control signals are actually messages (think MIDI), and can have some counterintuitive semantics. For example: if a single message is sent to two different objects, then those two objects send a message to a third (diamond shape), the third object will be executed twice, despite all of this happening in the same logical time-step. Execution order also depends on the position of the objects in the canvas, IIRC.<p>The semantics are at least partially historical, because when Max was originally developed, real-time DSP wasn&#x27;t available.<p>[0]: <a href="http:&#x2F;&#x2F;msp.ucsd.edu&#x2F;Publications&#x2F;dartmouth-reprint.dir&#x2F;" rel="nofollow">http:&#x2F;&#x2F;msp.ucsd.edu&#x2F;Publications&#x2F;dartmouth-reprint.dir&#x2F;</a>
评论 #22349063 未加载
raptorraverover 5 years ago
Opensource alternative Pure Data is also worth mentioning: <a href="https:&#x2F;&#x2F;puredata.info&#x2F;" rel="nofollow">https:&#x2F;&#x2F;puredata.info&#x2F;</a>
评论 #22348559 未加载
评论 #22350044 未加载
评论 #22348878 未加载
pier25over 5 years ago
Also check out GEN which was recently added to Max.<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=eDYs2UZzhI4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=eDYs2UZzhI4</a><p>It&#x27;s a low level DSP engine that is already used in Ableton Live and embedded systems for modular synths.
评论 #22350878 未加载
sideb0ardover 5 years ago
If you&#x27;re in SF in march and interested in Max&#x2F;MSP, my conf&#x2F;music festival, Algorithmic Art Assembly, has a workshop on Creating Digital Instruments with Max&#x2F;MSP - <a href="https:&#x2F;&#x2F;aaassembly.org&#x2F;workshops&#x2F;" rel="nofollow">https:&#x2F;&#x2F;aaassembly.org&#x2F;workshops&#x2F;</a> (conf also features Miller Puckette, Curtis Roads and many more!)
评论 #22350144 未加载
jcelerierover 5 years ago
If anyone&#x27;s interested - I&#x27;m working on ossia score (<a href="https:&#x2F;&#x2F;ossia.io" rel="nofollow">https:&#x2F;&#x2F;ossia.io</a> ; <a href="https:&#x2F;&#x2F;github.com&#x2F;OSSIA&#x2F;score" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;OSSIA&#x2F;score</a>) which is a bit like Max &amp; PD, but the dataflow is integrated directly in the timeline which allows for better expressibility of evolution of time in the artwork.
pmoriartyover 5 years ago
I have a real problem with visual languages like Max and PureData (and all the other visual languages I&#x27;ve ever seen).<p>They seem like a good idea, and might be fine for computer-phobic people just starting to be introduced to programming, but whenever one tries to make anything even a little complex in them they inevitably become a mess of spaghetti-code.<p>Languages like these also don&#x27;t have the almost hundred years of research and effort in to creating an ecosystem around them like text-based languages do.<p>There&#x27;s no way to grep, diff or sed the source while remaining on the visual level. There&#x27;s no way to harness the incredible power of text editors like vim or emacs. When there are lots of connections, determining what&#x27;s going where becomes difficult to determine, though at least they do have some modularity. Debugging and tracing facilities tend to be minimal to non-existent. There are no static analysis tools, refactoring tools, fuzzing tools, unit-testing tools, or behavior-driven testing tools, no way to design by contract.<p>These things are in their own little backwater. They look cool, and are easy to start with, but that&#x27;s about it.
评论 #22349193 未加载
评论 #22350013 未加载
评论 #22349182 未加载
评论 #22352490 未加载
JoeDaDudeover 5 years ago
For those interested in learning formally, there is an online course in Max&#x2F;MSP available through the Kadenze online school:<p><a href="https:&#x2F;&#x2F;www.kadenze.com&#x2F;courses&#x2F;programming-max-structuring-interactive-software-for-digital-arts-i&#x2F;info" rel="nofollow">https:&#x2F;&#x2F;www.kadenze.com&#x2F;courses&#x2F;programming-max-structuring-...</a>
_defover 5 years ago
I don&#x27;t know if you can use this with the Max standalone version, but here are plenty of devices for Max4Live (Ableton Live&#x27;s integrated version of Max): <a href="https:&#x2F;&#x2F;maxforlive.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;maxforlive.com&#x2F;</a>
skybrianover 5 years ago
I&#x27;ve used PureData a bit and found the UI rather minimalist. VCV Rack has a UI that&#x27;s considerably more fun, but from a programming perspective, most modules are quirky rather than orthogonal and general-purpose. How does Max compare?
评论 #22348452 未加载
评论 #22348504 未加载
Doctor_Feggover 5 years ago
Opcode did so much great stuff: their sequencer Vision was so much more immediate and intuitive than anything else I ever tried. It was a tragedy when Gibson bought and gutted them.
techbioover 5 years ago
Anyone familiar with music design languages—-how do this and others mentioned in comments (supercollider, puredata) compare with Ruby&#x2F;midi based sonic-pi?
billfruitover 5 years ago
Does it do rhythm heavy scores with regular drum beats etc?
评论 #22348623 未加载
评论 #22348515 未加载