Intro to MaxMSP Intro to MaxMSP
Synthesis Techniques — Dr. Louis Goldford (2024)
These slides will discuss:
These slides will discuss:
What is MaxMSP?
MaxMSP History
Useful Concepts for Our Class
These slides will discuss:
What is MaxMSP?
  • Uses (and Abuses)
  • Visual Programming
  • Realtime vs. Non-Realtime ("Offline") Electronics
MaxMSP History
  • Max Mathews
  • Miller Puckette
Useful Concepts for Our Class
  • Max is Not a DAW
  • Control Rate vs. Signal Rate
  • New Terms and Shortcuts
  • Listening Repertoire
  • Pedagogical Patches In Class

What is MaxMSP? — Uses (and Abuses)

What is MaxMSP? — Uses (and Abuses)

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.

What is MaxMSP? — Uses (and Abuses)

What Is MaxMSP Used For?

Artists of all kinds use MaxMSP to create many kinds of projects:

  • concert pieces with electronics
  • improvisational environments with technology
  • video art
  • sound art installations
  • audio effects and "plugin" software
  • sound programs to be embedded in other systems (like websites...)

What is MaxMSP? — Uses (and Abuses)

In Sound Synthesis Techniques and Creative Coding,
we'll focus on using MaxMSP to teach you:

  • a variety of classic electronic synthesis tools,
  • ...to understand what you're hearing and what is artistically available to you...
  • how to go from making your very first sounds, at the beginning of the semester,
    to realizing your first full-scale project using live signal processing, by the end.

What is MaxMSP? — Uses (and Abuses)

Is Max a "program?"

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.

What is MaxMSP? — Visual Programming

Is Max a programming language?

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!

What is MaxMSP? — Visual Programming

boxes & cables
Is MaxMSP "coding?"

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.

What is MaxMSP? — Visual Programming

boxes & cables
Objects, Functions, and Arguments

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.

What is MaxMSP? — Visual Programming

boxes & cables
Objects, Functions, and Arguments

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.

What is MaxMSP? — Visual Programming

Buchla 200e

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.

What is MaxMSP? — Visual Programming

Visual programming is useful because it helps us see each step of the process

in a logical chain of operations

on our sound signals.

What is MaxMSP? — Visual Programming

cable types

In the digital synthesis world of MaxMSP, patch cables carry many kinds of signals:

  • signals that carry data (simple numbers, strings of text characters, lists, etc.)
  • signals that carry sound (numbers that move fast...)
  • and signals that carry video (matrices of numbers carrying, for example, pixel values)

What is MaxMSP? — Realtime vs. Offline

What is Realtime vs. Offline Signal Processing?

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!!

What is MaxMSP? — Realtime vs. Offline

What is Realtime vs. Offline Signal Processing?

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.

What is MaxMSP? — Realtime vs. Offline

What is Realtime vs. Offline Signal Processing?

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 History

So, why is it called Max?

MaxMSP History — Max Mathews

boxes & cables

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...

MaxMSP History — Max Mathews

boxes & cables

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.

MaxMSP History

boxes & cables

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)

MaxMSP History

boxes & cables

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 History — Miller Puckette

boxes & cables

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.

MaxMSP History — Miller Puckette

boxes & cables

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.

MaxMSP History — Miller Puckette

boxes & cables

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.

MaxMSP History — Miller Puckette

boxes & cables

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.

Useful Concepts — Max is Not a DAW

boxes & cables

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.

Useful Concepts — Max is Not a DAW

boxes & cables

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.

Useful Concepts — Max is Not a DAW

boxes & cables

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:

Useful Concepts — Max is Not a DAW

boxes & cables

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.

Useful Concepts

boxes & cables
Control Rate vs. Signal Rate

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.

Useful Concepts

boxes & cables
Control Rate vs. Signal Rate

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.

Useful Concepts

boxes & cables
Control Rate vs. Signal Rate

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.

Useful Concepts — New Terms and Shortcuts

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.

Useful Concepts — Listening Repertoire

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:

Useful Concepts — Listening Repertoire

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!

Useful Concepts — Pedagogical Patches

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.

Useful Concepts — Pedagogical Patches

Isn't this just mimicking the teacher?

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.

Useful Concepts — Pedagogical Patches

Isn't this just mimicking the teacher?

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.

Useful Concepts — Pedagogical Patches

How to Move Beyond Mimicking

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.

Useful Concepts — Pedagogical Patches

How to Move Beyond Mimicking

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.

Useful Concepts — Pedagogical Patches

Why should this be any different for highly-skilled artists learning to
use the same kind of technologies, such as yourselves?

Useful Concepts — Pedagogical Patches

How to Move Beyond Mimicking

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.

Useful Concepts — Pedagogical Patches

How to Move Beyond Mimicking

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.

Useful Concepts — Pedagogical Patches

Just be patient... and keep patching!...

And that's all for now.