Forums > MaxMSP

Woohoo!

May 14, 2007 | 10:12 pm

I’ve just been approved for a grant to compose a new piece of music for percussion and electronics using Max/MSP!
Now the work starts! :)
Any advice for the early stages of patch building? My goal is to have a patch that will sample and apply realtime effects to a live percussionist. On top of that, I’m going to use a MIDI drum pad for the electronics performer to play back these altered samples.
I was thinking of linking the velocity from the pad to something like a pitch bend so that the harder they’re played, the lower/higher a sample is played back.
Also, I’m going to try to get a foot pedal so that other parameters that can be changed simultaneously while playing.
How do you guys start out in the early stages of a patch?
I’m still kind of new to Max/MSP, so it will still likely be a relatively simple, but I’ve got a pretty wide open summer to work on it.


May 15, 2007 | 8:45 am

Plan out your patch on paper somewhat. This may be hard if you are new to max though.

From your post, it doesn’t seem like an entire modular system is required. I’d start with a patch like the one below. Note that all the subpatchers are empty, but that your structure is in place. First build the routing of all the signals without any effects (with ‘empty’ effects). Get your input working and your audio input as output.

Then decide which effects are necessary and fill them in one by one. This guarantees you will have a working product by the end.

#P toggle 97 208 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#N vpatcher 105 453 705 853;
#P inlet 55 43 15 0;
#P pop;
#P newobj 175 254 46 196617 p output;
#N vpatcher 30 89 630 489;
#P inlet 50 48 15 0;
#P pop;
#P newobj 97 254 61 196617 p recording;
#P toggle 95 65 15 0;
#N vpatcher 248 346 848 746;
#P outlet 47 88 15 0;
#P inlet 47 45 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 95 100 57 196617 p playback;
#N vpatcher 30 89 630 489;
#P inlet 127 39 15 0;
#P outlet 33 83 15 0;
#P inlet 33 39 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 175 206 54 196617 p effect 3;
#N vpatcher 30 89 630 489;
#P inlet 127 39 15 0;
#P outlet 33 83 15 0;
#P inlet 33 39 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 175 175 54 196617 p effect 2;
#N vpatcher 30 89 630 489;
#P inlet 127 39 15 0;
#P outlet 33 83 15 0;
#P inlet 33 39 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 175 144 54 196617 p effect 1;
#N vpatcher 30 89 630 489;
#P outlet 23 80 15 0;
#P inlet 23 36 15 0;
#P connect 0 0 1 0;
#P pop;
#P newobj 282 105 54 196617 p mapping;
#N vpatcher 30 89 630 489;
#P outlet 29 40 15 0;
#P pop;
#P newobj 175 65 70 196617 p sound-input;
#N vpatcher 30 89 630 489;
#P outlet 92 64 15 0;
#P pop;
#P newobj 282 65 64 196617 p midi-input;
#P connect 10 0 8 0;
#P connect 5 0 8 0;
#P connect 5 0 9 0;
#P connect 2 0 3 1;
#P connect 2 0 4 1;
#P connect 2 0 5 1;
#P connect 4 0 5 0;
#P connect 3 0 4 0;
#P connect 6 0 3 0;
#P connect 1 0 6 0;
#P connect 7 0 6 0;
#P connect 0 0 2 0;
#P window clipboard copycount 11;


May 15, 2007 | 12:43 pm

Don’t start with the final patch, build small parts for testing. You can implement them later on.

Keep older versions somewhere.

You can also use triggers on a real drumkit if you want.


May 15, 2007 | 1:28 pm


May 15, 2007 | 4:35 pm


May 16, 2007 | 12:32 am

>
> I was thinking of linking the velocity from the pad to something like
> a pitch bend so that the harder they’re played, the lower/higher a
> sample is played back.

This is an idea that can be tweaked with the "function" object.
(graphical envelope) It can also be used as a lookup table, so you can
create relationships that are mostly linear, but have weird behaviors
in certain ranges. For instance, maybe the above is true from niente
to f but above that it behaves unpredictably.

Linear mappings can be very useful but if x always happens with y it
tends to reduce musical interest. Try to model your interactions like
counterpoint, using a good blend of similar, contrary, and oblique
motion, and you’ll be happy with the results.

Figure out a reliable system for gain structure coming into the patch.
My experience has shown that gain~ (when doing live signal processing)
is generally helpful only at the output stage. If you need the input
louder, a *~ paired with dbtoa works great.

Create a recording/playback system for the live input so that you can
easily test the electronics without having to be at your instruments.

Respect the control bandwidth of your players. If an LFO can control a
parameter just as interestingly, go with that. Only have performers
control parameters that cannot be replicated or anticipated by the
computer.

Think carefully about the performer’s interface with the electronics.
I’ve seen pieces that operate on the "C4 = preset1, C#4 = preset2"
mentality; while this works in a certain way, in performance it only
matters that you make it to the next value, so instead it’s
significantly easier to have one key/switch/drumpad which simply
advances to the next state. You can always add a timeout function so
they can’t double-hit. Where possible/practical, digital instruments
should work the way the performer expects

Peter McCulloch

> Also, I’m going to try to get a foot pedal so that other parameters
> that can be changed simultaneously while playing.
> How do you guys start out in the early stages of a patch?
> I’m still kind of new to Max/MSP, so it will still likely be a
> relatively simple, but I’ve got a pretty wide open summer to work on
> it.
>
>
http://www.petermcculloch.com


May 16, 2007 | 3:32 am

Wow! Wonderful advice, folks.
I have worked through most of the tutorials in the recent past, but I will certainly be visiting them again extensively in the early stages of this project.
I think that I may work with several patches. I’ll use one that has my MIDI inputs mapped out and keep that as sort of a "master". Then I’ll start new patches to experiement with sounds and implement those as I decide on what exactly I want this thing to do. I will certainly plan as much of this as possible, but sound-wise, there’s going to have to be a good deal of experimentation.
This won’t be my first patch, but my first patch was quite simple- just a handful of reverbs, sliders, buttons, and a pitch shift.
Thanks again!


Viewing 7 posts - 1 through 7 (of 7 total)