Miller Puckette, creator of Max/MSP and Pure Data, discusses the evolution of visual programming in computer music. Topics include real-time sound generation, scheduling techniques, limitations of function sending in coding, computational abstractions, and the benefits of real-time code collaboration. Exploring graphical music creation software and design simplicity in Pure Data.
Max/MSP and Pure Data revolutionized computer music by providing visual programming tools for composers.
Real-time processing in coding tools like Max and Pure Data is crucial for efficient music creation and dynamic system development.
Visual programming languages like Max and Pure Data face challenges with data visualization and storage, driving the need for flexible and integrated solutions.
Deep dives
Evolution of Coding Tools and Visual Programming
The podcast episode discusses the evolution of coding tools, focusing on visual programming languages like Max and Pure Data. It delves into the history of these tools, highlighting the importance of real-time processing in computer music. Miller Puckett, the creator, shares insights on the early days of developing these tools and the challenges faced in designing complex scheduling systems.
Types and User Interaction with the Software
The conversation navigates through the types system implemented in Max and Pure Data, emphasizing the significance of simple and practical type distinctions like integers, floats, and symbols for efficient real-time processing. It also touches upon the user roles within the software ecosystem, including composers, researchers, and plugin developers, showcasing the diverse interactions and requirements of different user groups.
Challenges of Data Visualization and Data Structures
The episode addresses the challenges of data visualization in coding tools, specifically focusing on the limitations faced in storing and manipulating heaps of data like musical scores within Max and Pure Data. The discussion explores the need for a more flexible and integrated approach to visualizing data within real-time programming environments, highlighting ongoing efforts to marry real-time functionality with data storage and retrieval capabilities.
Evolution of Pure Data Creation
Pure Data, initially designed to solve a data visibility problem, evolved from the need to create a graph for a physics paper. The software was conceived as a simplified version of Max, focusing on making sound synthesis accessible without the complexities of traditional programming. This evolution led to the concept of instantiating objects through command lines, enabling modular synthesis akin to patching in a modular synthesizer.
User Interface Development and Aesthetic Choices
The user interface improvements in Pure Data were a collaborative effort between the creator and users seeking a more user-friendly experience, with features like the 'duplicate' function arising from practical use needs. While user experience enhancements were part of the evolution, the aesthetic of Pure Data remained monochrome and minimalist. Puckett's mathematics background influenced the software's aesthetics, favoring essential design elements over decorative distractions like decorative graphical embellishments.
Miller Puckette created "The Patcher" Max (the precursor to Max/MSP), and later Pure Data, two of the most important tools in the history of visual programming and computer music. Max was designed by Miller in the mid-1980s as an aid to computer-music composers who wanted to build their own dynamic systems without needing write C code. Max had no facility for sound generation at first, but that would come eventually with the addition of MSP. A decade later, after some academic politics nonsense forced him away from Max, Miller went on to create its successor, the open source Pure Data. Both Max/MSP and Pure Data have become wildly popular, with Max/MSP as a more polished-looking commercial product developed by Cycling '74 (now owned by music behemoth Ableton), and Pure Data as the thriving independent community project of hackers and techno-punks. Node-and-wire visual programming languages are almost a cliche at this point, as the vast majority of them either borrow heavily or at least reference the visual design of Miller Puckette's original Max patcher and its MSP/Pd offspring. Though as you'll hear in the interview, many of them are poorer for not rethinking some of the underling assumptions of their inspiration.
I decided to bring Miller on the show after hearing a fabulous interview of him by Darwin Grosse on the Art + Music + Technology podcast. (Tip: subscribe, it's good.) Miller gave a great retelling of the history of Max and Pure Data and the forces at play when he created them, and that episode is a tidy complement the more design-focussed interview here on our show. Miller mentioned in passing that one of the three books he has yet to write would be his thoughts on realtime scheduling, so that was the initial hook for my interview. Looking back on the 30+ years of Max/Pd history, what has he learned about the design of tools? What were the alternative ideas that he didn't pursue? Where is there room for improvement, perhaps by others picking up where he left off?
In this interview, Miller said a handful of things that were, well, painful for me to hear as a dogmatic champion of visual programming. So if you come into this thinking it'll be a well-earned hour of congratulation and adoration, sit up and get ready to flip the dang table. This interview was a blast; on a personal level, I was thrilled to have the chance to talk to such an influential figure in the history of my field, and I hope you enjoy it as much as I did.
Quote of the Show: "It's not only powerful, but it's also inadequate."