:control_knobs: Episode 47 - Max/MSP & Pure D...
# thinking-together
i
πŸŽ›οΈ Episode 47 - Max/MSP & Pure Data with Miller Puckette 🎧 I heard an interview with Miller on another podcast (linked in the show notes), which focussed on the history of Max and Pd and the arc of his career. He dropped a few kernels of design-related ideas that went unexplored, so I decided to bring Miller on our show and have him go in-depth. We talked about the design of Max's scheduler (vs other kinds of realtime scheduling available in the early 80s), how he arrived at the visual "patcher" interface, why Pd looks and feels so spartan compared to Max, to what extent the patcher interface is actually visual as opposed to just a fancier CLI, and other notions that'd be interesting to folks designing their own live/visual programming environments. This episode is the shortest, tightest interview I've done yet. I'm also slowly dialling-in the sonic identity that I'd like the show to have. Not there yet, but getting closer. Enjoy! And please help spread the word about the show if you have a good way to do so. Show notes & detailed transcript: https://futureofcoding.org/episodes/047
❀️ 1
πŸ‘ 13
πŸŽ‰ 8
m
on the front page of HN
🍻 4
i
This surpassed the previous 1-day download record by 62%! Glad it's getting spread around a bit.
c
Enjoyed it; I had heard the original poor quality podcast a few weeks ago; this was much better πŸ™‚
🍰 1
o
I really enjoyed this episode, thanks! In fact it is after playing with Pd/Max/Max4Live for some time that I wanted to explore programming by non experts. It was even before I discovered Scratch.
There are very inspiring discussions in this episode and, @Ivan Reese, I like the way you ask Pluckette some questions which make him consider things from other point of views.
At some point Pluckette says that PureData is terrible for some programming tasks (the example he gives is finding prime numbers) and that "Pd really needs a text language of some kind". Well, it is something I felt a lot, when doing some patch for Max4Live to simply process OSC information, which was a frustrating experience with visual Max/MSP. At that time I actually was able to do that using JavaScript because MaxMSP allows to do that, which was way easier, even if you had to edit your JavaScript code in an external editor, which is unnecessary complicated. It is this experience of complicated way to combine visual and text programming that makes me want to explore some programming environment that mixes the two, which eventually led me to work on my zed editor project 6 years ago. I hope I will find some time to post some TMW videos about it (🀞🀞 ).
🀞 1
And later on in the discussion he seems to agree that what is missing is more a way to program with another paradigm, like imperative programming. I guess he would agree that it doesn't need to be a text language. I think that this is an important point: box'n arrows are very expressive for some kind of programming tasks but for others we must look for some other visual representations that are more expressive. And my point of view now, is that a combination of box'n arrow and block programming (Γ  la Scratch) can be a very good start.
i
It seems to me like he doesn't actually much care for visual design. Thus, the distaste for bevels and drop shadows, seeing those things as superfluous eye candy rather than tools that designers can use to create meaning. He built the patcher as a tool for non-programmers. My whole philosophy is: build a visual tool for expert programmers, where "programmer" is more of a way of thinking than a particular skillset. So his inclination to reach for text and an imperative paradigm feels like a blind spot β€” and an unexpected one, considering he basically defined how most people conceive of visual programming. To me, that's terrifying. We might have been better off if Max and Pd hadn't existed, and visual programming had instead been popularized by someone with a knack for visual communication.
😁 1
It occurred to me after publishing the episode that I missed a good opportunity to synthesize and reflect on the interview. As the host, and de facto curator of which ideas make it to the show (and which ones get cut β€” like the red herring discussion about whether "bang" is feminist or not), I should probably spend a few minutes at the end of the episode recapping the key ideas and offering my take. After all, I have the benefit of hearing the interview multiple times, living with it for a few weeks while I work on the edit, whereas the listeners will likely only hear it once, and might not have the occasion or attention or energy to do that synthesis.
w
I thought it was "bang" as in what one can do to a drum.
πŸ’₯ 1
i
w
On finding primes graphically, something like this

https://www.youtube.com/watch?v=R8zqqLlrnQMβ–Ύ

comes to mind.
o
@Ivan Reese said:
It seems to me like he doesn't actually much care for visual design. Thus, the distaste for bevels and drop shadows, seeing those things as superfluous eye candy rather than tools that designers can use to create meaning.
Yes, I agree and PureData would have been better with some a bit use of visual effects, to improve readability. In that space Max/MSP did a good work, and I generally find that Max/MSP patches are more "readable" than PureData ones, with their mere black on white look with no contrast at all. I also find that the interview shows that, on the contrary, he actually cares about visual design. He only choose to stick to this very simple and basic visual design but I guess it is very consistent for him. But I agree it would be better if he had stop a bit farer in the "raw <-> eye candy" scale! πŸ™‚ I have also heard that one of the reason he doesn't want to redesign with visual "effects" is to not break existing patches that "rely" on the old look. I guess something like, if you add thicker borders and inner padding for blocks, the 2D arrangement might change and some patches can become less readable.
He built the patcher as a tool for non-programmers. My whole philosophy is: build a visual tool for expert programmers, where "programmer" is more of a way of thinking than a particular skillset.
I totally agree with this philosophy!! 100% of it. In fact it is that kind of idea that makes me want to work on FoC and start my experiments (ok, now, I must find the time to make a TMW video to present this πŸ•πŸ•‘πŸ•’πŸ•“...). It was first because block and arrow coding was a pain for some "simple" programing task I know I can manage quickly with text programming.
So his inclination to reach for text and an imperative paradigm feels like a blind spot β€” and an unexpected one, considering he basically defined how most people conceive of visual programming.
At least, the take away of this for me is that he agrees that block and arrow programming with PureData is not efficient for some programming tasks. And that something is missing.
To me, that's terrifying. We might have been better off if Max and Pd hadn't existed, and visual programming had instead been popularized by someone with a knack for visual communication.
Yes maybe. But as we all know there is a huuuge load of visual programming environments, trying lots of way to convey "programming" meaning. With very few that are still useful/used, even some with great visual communication. In that space, for me Max/MSP and PureData are apart, they are (and especially Max) some programming environments that lots of non expert programmers are using to build things that are useful to them. They are succesful in that, because there is something in them that "works" and this success is an inspiration for me.
πŸ‘ 2
j
The DAG approach to scheduling may be related to lucid synchrone/lustre. I’m not sure, I’ve only worked with lucid, which is a predecessor that doesn’t have the idea of real-time, but is a dataflow language where each step is based on updating values from the previous step.
πŸ€” 2