According to Cycling74.com,
Max is an interactive, visual patching environment for musicians,
artists, and anyone who loves creating, inventing,
or prototyping their own unique software.
Artists of all kinds use MaxMSP to create many kinds of projects:
In Sound Synthesis Techniques and Creative Coding,
we'll focus on using MaxMSP to teach you:
MaxMSP is unlike other computer programs you might be used to...
MaxMSP is a programming environment,
meaning: it's a program you use to create other programs.
Your program might supply electronic sounds to a live instrumental performance,
or it might be part of an installation that runs continuously for years, etc.
If you're not a programmer, MaxMSP feels like a programming language,
because they share many of the same characteristics
that help you build larger structures in software.
But, to be sure, MaxMSP is not quite a programming language
because it lacks some of the fundamental features
that make programming languages more versatile.
In other words, you can't quite create anything in MaxMSP
(that you would create in a proper programming language) ...but close!
Well, sort of...
Instead of typing lines of code, in MaxMSP we construct our projects using
visual, object-oriented programming:
A file in MaxMSP is called a patch.
Inside our patches, we connect small boxes in space.
These boxes are called objects.
Inside the objects, we type the names of functions,
and we connect them using patch cables.
Functions are just other patches that process sound and video data.
In addition to input from a patch cable, functions may require
more values called arguments and attributes.
In this way, sound and video data move from one box to the next through the patch cables,
and our data is processed one object at a time in a series of ordered steps.
This system is visual because it mimics how a modular synthesizer works:
you can see the data flow from one step to the next.
In this Buchla 200e system, the individual boxes with knobs are called modules.
Each module, like a Max object, performs some kind of unique operation on the incoming signal
and passes its output to the next module through patch cables.
An arrangement of cables and module settings that make up a particular
sound program is called a patch, similar to a patch in MaxMSP.
Visual programming is useful because it helps us see each step of the process
in a logical chain of operations
on our sound signals.
In the digital synthesis world of MaxMSP, patch cables carry many kinds of signals:
Unlike the audio programs of its own time, MaxMSP grew to become
a tool for realtime signal processing.
This means Max processes and outputs sound signals
at nearly the exact same moment it generates them...
...at the same time a musician creates the music...
...which is extremely fast!!
By contrast, non-realtime or "offline" signal processing is much slower.
When you use a program like ProTools, Reaper, or Logic,
these tools were meant to process sound in one big chunk:
From the start to the end of the music.
When you play back, or mix, an entire sound file, for example, that is non-realtime.
MaxMSP can be used for both realtime and non-realtime purposes,
But it was designed for realtime use, and that is where it really shines.
When you add an audio effect to the input signal of a microphone,
for example a delay or harmonizer,
these are simple examples of realtime audio processing.
MaxMSP (the software) is named after this guy:
Max Mathews (1926—2011)
Max (the man, the myth, the legend) was a software engineer
who worked at Bell Laboratories in New Jersey.
He can be thought of as the first computer musician...
Max wrote the first software programs for digital sound creation, dating from 1957.
He was a pioneer of synthesis techniques, including wavetable synthesis.
As we heard, Max was among the first to make a computer "speak..."
...by adding sine waves together in order to simulate human speech.
The earliest versions of MaxMSP (1985) looked something like this...
When the software was first created, it did not process sound!
Its first versions were designed to connect MIDI devices (like keyboards and other controllers)
and provide users with an easy-to-use graphical user interface,,
allowing creative artists to program a computer
by easily connecting boxes with virtual "patch cables"
using the familiar logic of a modular synthesizer.
MaxMSP was created by this guy:
Miller Puckette (b. 1959)
Miller is computer scientist, mathematician,
and was an early member of the MIT Media Lab
He developed early versions of MaxMSP while working in Paris
with the composer Philippe Manoury, a close collaborator.
The MSP in MaxMSP is, coincidentally, Miller's initials...
MSP = Miller Smith Puckette
But MSP also stands for, "Max Signal Processing..."
Miller added MSP later, which is the audio signal processing side of the program.
Miller, with his programs MaxMSP and its later descendant PureData (PD),
changed the course of electronic and computer music.
Thanks to these programs, artists who don't code can still
leverage the power of programming logic
using the visual, object-oriented approach to sound programs.
In 2023, Miller Puckette was awarded the Silver Lion at the Venice Biennale
in recognition of his lifetime achievement and ongoing
contributions to electronic and contemporary music.
Notice how MaxMSP does not immediately include
familiar faders, meters, or a timeline with waveforms.
These things are included in a digital audio workstation (DAW)
such as Reaper, Logic, ProTools, and Ableton Live.
A DAW is perfect for offline, non-realtime audio processing:
mixing, mastering, and creating fixed media (tape) pieces.
Using a DAW for creating tape pieces is covered in depth
in our course Electronic Studio Methods and Composition.
We can build something like this in MaxMSP,
but it's important to note that MaxMSP is not a DAW.
MaxMSP is designed with realtime audio processing in mind:
Let's say you've built a patch that you, yourself, will improvise with on stage...
In this case, it's hard to predict what the future will hold...
so, a timeline representation of a pre-existing sound file,
like a DAW would give you, won't be very useful for this kind of work.
In MaxMSP, you can create more personal and custom interfaces that serve your artistic needs.
You already know there are different kinds of patch cables in Max.
And you know that Max is actually 2 programs:
Max — the data side, and
MSP — the audio/sound side.
The grey cables (left) carry numbers and other values.
This data moves slower than the rest of the program.
Slower-moving data is used to control faster-moving data.
So, the Max side of the program is associated with the control rate of data flow.
On the other hand, the yellow striped cables (middle) carry sound data,
in a stream of numbers known as audio sample values.
This data moves much faster than Max.
Sound and video data move several thousands of times faster than control data.
So, MSP is associated with the signal rate or audio rate of data flow.
After each class, on our website's Schedule page, under the Assignments,
you will find a list of new Terms, Concepts, Objects, and Shortcuts
Develop an understanding of what these are.
They will help you work more efficiently in MaxMSP.
Many of these terms will be defined and used in our classes as we build our pedagogical patches.
Also, for each class on our website's Schedule page,
you will find the Listening section
consisting of historic repertoire in electronic and computer music.
Study these as well:
Our listening repertoire is designed to help you
connect our synthesis concepts to the resulting sounds you actually hear,
so that you can better evaluate what you encounter in music,
and to remind you to let your ear guide you
when making artistic decisions about Max, programming, and electronic music.
And hopefully you'll discover something you enjoy listening to beyond this class!
Each week in class, we're building patches together...
Importantly, these are pedagogical patches.
They are the basis for the work you will do on your own,
in your own music-making, video-making, instrument-building, or installation-making, etc.
In other words, they are just a starting place.
It's important to recognize that the first step in learning something new,
especially a new language,
requires an initial stage of mimicking or imitating.
In our class, mimicking a synthesizer is only the first step towards creating your own stuff.
By mimicking, at first, you are building a vocabulary in a new software language.
But once you've learned these basic steps, you'll start to feel free to go your own way.
As we go, start by making a copy of a pedagogical patch you want to work with,
making small changes to see if you like the sonic result...
Experiment by using your own numbers and values for frequency, amplitude,
and other parameters that change the behavior of your synthesizers.
Gradually, you'll feel the freedom to change more of the objects in these patches,
reordering the algorithms, and adding your own code to better serve your needs.
More and more, you will begin to speak the language of MaxMSP and computer music,
instead of simply mimicking and reproducing the language of our pedagogical patches.
Even the best-trained software developers learn
by first recycling the working code of impressively large systems...
before they can produce their own original work.
Why should this be any different for highly-skilled artists learning to
use the same kind of technologies, such as yourselves?
Our in-class pedagogical patching is only 50% of the work...
The other 50% comes from self-guided exploratory patching
that you'll largely do on your own, in search of sounds and systems
that you want to use in your own work.
Generally, I find that students who feel they just "mimicking" in-class work
aren't doing much on their own, or they don't know how to proceed.
So, try making small changes first, as described above,
and remember that larger changes will come as you gain fluidity and flexibility.
Remember to ask questions if you need help fixing something that broke,
or finding a way to do something cool.
Don't allow yourself to get stuck on a problem for too long:
Use Discord to ask each other, and send me a message or an email as well.
Just be patient... and keep patching!...
And that's all for now.