Working with Time
In this chapter, we will discuss aspects of time, rhythm, and the sequencing of events. When used in combination with what you know about generating pitch material, this chapter will help you to create interactive performance and composition systems, as well as create patches that demonstrate rhythmic complexity. By the end of this chapter, you will have created patches that can record and loop MIDI sequences as well as a number of patches that work with notes over time. Digital Audio Workstations (DAWs) are complex programs that generally all allow users to sequence music in some way by recording MIDI and audio, and make edits to the recording data. Popular commercial DAWs include Apple Logic and GarageBand, Digidesign Pro Tools, Sony Acid, and Ableton Live, to name a few. The last thing you’d probably want to do in Max is write a patch that operates like one of these DAWs. In fact, one of the great things about Max is that since it’s not a DAW but a programming language, it’s so unlike traditional DAWs that it allows you to write any kind of program you want (like our synth that used the wheels to play pitches in Chapter 2). However, there are some aspects of these DAWs that we will want to incorporate into our patches. In particular, recording MIDI and playing it back is made possible in Max through an object called seq (as in sequencer). 1. Create a new patch 2. Create a new object called seq The seq object can record and play back raw MIDI data. Since we’re dealing with raw MIDI data as opposed to just pitches, we’ll use the midiin and midiout objects. In fact, just to protect ourselves, let’s also include the “raw MIDI” version of flush, midiflush, to avoid any stuck notes.