Step Sequencer Built in MaxMSP

step_seq_detailI built this step sequencer in Max/MSP today as an exercise. My intent was a to build a simple step sequencer, however it got more and more complicated as time went on. This is probably not a tool that I’d actually use without some significant changes, but I learned quite a bit in the process of creating it.

The core of the sequencer is an itable object that contains the note sequence. The user interface items all have a green background. The first thing I wanted to be able to do was to allow the user to set the number of notes in the sequence and adjust the note range (click the image for a detailed view). Then I wanted to be able to randomize the notes regardless of the length and range of the sequence. I also added the ability for the user to set the velocity of each note in the sequence with a multislider object.

BPM, note length, amplitude envelope, and master volume are all also adjustable. After all that I added in the ability to send the sequence to a noteout object, so it can be played via MIDI. Here’s a clippy sequence I created using the tool.

Clippy Step Sequence

GMS Beta Release, September 28, 2009

gms_grabI have decided on September 28, 2009 as the release date of the GMS, coinciding with my performance with Graham O’Brien, and my birthday. We can call it a combination Ostraka with Dial System and DJ Zenrock show, GMS beta software release, and birthday party. Currently I am releasing a binary version of the software for Mac OS X only. A windows version is in the works, with no prediction of when it’ll arrive.

The GMS is a Gestural Music Sequencer that I developed in Processing (processing.org). The application samples video and displays it either normally or inverted so it looks as though you’re looking into a mirror. Each frame is analyzed for brightness, then the X and Y data of the brightest pixel is converted into a MIDI note. These notes produce a non-repeating sequence based on movement within the range of the capture device.

For more details, including audio examples and video produced using the GMS, checkout the
GMS category. There’s also a Gestural Music Sequencer Documentary Short produced by Josh Clos, that does a good job of illustrating what the software does.

The Microtonal Beep Master 9000

beep_master_9000One of my recent class assignments led me to create a patch that automates the playback of a pair of microtonal tones with a frequency range of 200Hz to 1200Hz. I call it the Beep Master 9000 (press tongue firmly against cheek). The large toggles in the upper left turn on and off each of the sine waves individually. The large bangs to the right randomize the frequency when clicked. Below the bangs are a couple of smaller toggles that turn on metronomes that automate the randomization of the frequency for each cycle~ object. The number boxes allow the user to adjust how often the pitches are randomized in milliseconds. The encapsulated sub-patch (“p rightMetro” amd “p leftMetro”) multiplies the frequency of each metro by 0.25, 0.50, 0.75, or 1 randomly. This causes the beats to change by divisions (i.e. 4 times faster when multiplied by 0.25, twice as fast by 0.50, and so on). Here’s a sequence I created using the Beep Master 9000.

Beep Master 9000

Simple Wavetable Oscillation with Max/MSP

wavetable_oscillatorFor my second entry in the One Max Patch Per Week category I’ve created a very simple, monophonic, wavetable oscillator.

Although it hasn’t been a week since my last patch, I’m going to allow myself to produce more than one example per week, if I happen to have the time available. To create output from the patch I loaded a rim shot sample using the read button into the buffer object. After that I turned on the dac and dragged the mouse around on the keyboard, known as the kslider object in Max.

The kslider sends velocity data from the bottom right outlet. The velocity values are determined by the vertical position of the mouse on each key. I scaled the velocities to 100 through 127 so that I wouldn’t get very quiet notes while dragging near the bottom of the keyboard. View the comments to copy the compressed patcher.

Simple Wavetable Oscillator

Mapping Pitch and Amplitude to the Track Pad with Max/MSP

trackpad_to_pitch_and_amplitudeCurrently I’m taking a graduate class in Max/MSP/Jitter at the University of Minnesota with Ali Momeni. Recent experiences including a night class in July at CNMAT (the Center for New Music and Audio Technology, UC Berkeley), and this current class at the U are really opening up my eyes (and ears) to the possibilities of Max 5. As a result I’m becoming more and more convinced that this is the ideal platform for the kind of projects I’m currently interested in.

The workload in the class is intense, but I have decided to punish myself even further by committing to post the audio output of at least one Max patch per week on Audio Cookbook in a new category called One Max Patch Per Week. It’s not quite as ambitious as my One Sound Every Day project, but with my busy schedule I should be able to keep up the pace.

Here’s my first entry into this new category. It is a simple way to map the input from the track pad or a mouse to the pitch and amplitude of a sinusoidal sound wave. For the patch I used the “pictslider” object, which outputs the x and y coordinates as scaled values.

I mapped the x coordinate to pitch with a range of values between 200 and 800 Hertz, and the Y to the amplitude with the typical MIDI based values of 0 to 127. I’ve included a screen grab of the patch so you can see how simple it was to do this.

Track Pad to Pitch and Amplitude