It could be good to start with recalling the things we explored in the first lesson, to double check our knowledge so far.
Sound as disturbance
Sound is a disturbance propagating through air. It is detected by our eardrums as a pressure variation in the air in which we are immersed. Sound also creates a disturbance noticeable in the movement of the air particles. We can’t detect that, but some other beings do, like arthropods for example.
Microphone’s magnetic systems, for example in dynamic microphones, use variation in air pressure to emulate our eardrum and generate electrical voltage variations, which can then be recorded in a digital format and played back as recorded sound.
Max interferes at this point, at the digital creation of numbers. It can detect this sonic data and act on its flow of number, making judgements, comparisons, calculations, and running operations, to transfer our creativity on those original sounds.
Max can also generate by itself numbers and patterns, that from digital could then be converted again into analogue, into the loudspeaker’s diaphragm movement and, thus, into sound.
Take for example the objects adc~ and dac~. They are designed to convert these voltage differentials in and out from the analogue to digital and vice-versa.
Knowing how these mechanisms work, and considering the physics of a simple oscillation, we are able to recreate digitally a simple sinusoid, and to listen to it via the loudspeakers.
From this point on, it would be interesting to build up and learn the techniques used to create more complex sounds.
Unlocking/locking patcher
Everything in Max happens through a patcher: it is a sort of hub where you can place and connect objects to handle data and design your sounds. A patcher works in two modes: unlocked and locked. Each mode is activated at the bottom left corner of the patcher by clicking on the lock. Unlocked means the patcher is editable, locked means you can interact with the objects in the patcher. I would call these modes the edit mode (unlocked) and the performance mode (locked), for convenience, in this text.
In the edit mode you can freely drag objects, resize them, connect them, and edit their properties by typing in them attributes, names, values etc. In the performance mode the patcher is not editable anymore but the specific task, for which each object is designed for, can be performed:
There are shortcuts, as you might have learned through your practice of last week, which are:
CMD+E
or
CLiCK on patcher’s background.
Objects
Objects are placed in the patcher to start programming with Max.
An object is a block of code, a list of commands or actions that will be performed under certain conditions. These conditions include input from external sources (another object or function), or internal loops and calculations. In Max, an object just looks like a box with a name, or as a graphical object (slider, toggle, bang, number box…), with some inlets and some outlets. Its function is most likely specified by its name, and by hovering with the mouse each inlet and outlet a specialised hint will tell us what type of data to feed the object with or to expect to come out.
Shortcuts
You might have gone through already the practice of last week, but here is a refresher of the shortcut, in case you need more details.
N: This is the most general, an empty box appears and you type in the object you like to see, if you remember the name. Max helps you with a list of possible hints while you are typing, so you can choose directly from there or see suggestions. If you don’t remember the particular name you can look up at the inspector, which can give you at one glance the whole extensive list of objects in one go, ordered by function, or alphabetically.
M: This creates a Message Box
T, B, F, I, C: These are the most used objects in Max, therefore they have their dedicated shortcuts.
T, Toggle 0,1 selector
B, Bang general trigger button
F, Flonum Number box (decimal values number box)
I, Integer Number box
C, Comment box
Audio signal sign
The ~ sign is an important symbol to understand what type of data is passing through Max. The main distinction between objects is that some deal with data, some with audio signals, other with video signals. For example, certain objects might be designed to receive only audio signals, some others only data or some could accept both. How Max handles the different data is an important part the programming syntax you need to learn. At the end of an object’s name, if you find the ~ simbol, it is certainly an audio signal object, instead if the name is anticipated by the text “jit” it is most likely a video data.
Object’s help, reference, and parameters
For each object in Max, a specific help file has been created and made available. The help file in itself is a Max patcher well commented which explains with comments and examples the main purpose, behaviour, and syntax for each object.
CTL+Click the object and choose help from the contextual menu.
From the same contextual menu, you can open the reference file, which can indicate some tutorial available in which the object is used, other resources, and, most of all, a full list of all the messages, attributes, and settings for the object.
Lesson 2 in summary
Keeping all this in mind, lesson 2 will focus on continuing making sounds. You will learn to add variety not just by simply using different types of oscillators/waveform, but by connecting signal together for composing even more complex types of waveforms. The well-known techniques for synthesis are introduced and explained, in particular, Additive Synthesis, Amplitude and Frequency Modulations.