(maxmsp) line~ and meter~

Two objects worthy of a special mention right from the start are line~ and meter~.

If you have any sound experience at all you keep track of your visual indicators (meters) to make sure sound isn’t clipping at some point in the signal chain. In MaxMSP you have the meter~ object (and the more picturesque levelmeter~) to show audio levels. Meter~ can be arranged to be either horizontal or vertical, and sized according to visual need. You should insert meters into your patchers at all points that could output an original and/or a modified audio signal. This technique is like using number boxes for display purposes.

The line~ object will create a smooth ramp to a specified value over a specified time (generally in ms). You will use the line~ object to create amplitude and frequency envelopes, and to smooth control-rate changes being used as arguments to audio-rate objects. In the basicaudio.maxpat, I use line~ in both ways. The messages for full envelopes contain some segment (or all) of an ADSR envelope. A value followed by a comma tells line~ to immediately change to that value. Otherwise, line~ expects <targetValue> <time> pairs. Multiple pairs can be sent as one message list and line~ will execute all the pairs at the proper time.

Line~ is also used to create a smooth ramp between amplitude multiplier values being sent to the *~ object. In my example, the floating point number box feeds a message object with the contents <$1 10>. The floating point number replaces the $1 and causes the list to be output to line~. The tutorial (MSP tutorial number 2) uses a pack object with arguments <0. 100>. The amplitude replaces the 0. and outputs the list. Either way is fine. Note that a message box doesn’t require you to format your argument according to data type. Pack does, however.


Leave a Reply