A newer version of Max is available. Click here to access the latest version of this document.

makenote

Generate a note-off message following each note-on

Description

makenote outputs a MIDI note-on message paired with a velocity value followed by a note-off message after a specified amount of time. This object uses the Max time format syntax. The interval that the makenote object uses to specify the time between not-on and note-off can be either fixed or tempo-relative (it must be a single-valued). An additional third argument can be used to specify a MIDI output channel (the makenote object will then have four inputs and three outputs).

Arguments

Name Type Opt Description
initial-velocity and initial-duration int float symbol opt The first argument sets an initial velocity value (int or float) to be paired with incoming pitch numbers. If there is no argument, the initial velocity is 0.

The second optional argument sets an initial note duration (time before a note-off is sent out), in any of Max's time units. A simple int or float will set the duration in milliseconds. If the second argument is not present, the note-off follows the note-on immediately.
An optional third int argument sets an initial MIDI channel number. If a third argument is used, the makenote object will have an additional fourth inlet (which specifies MIDI channel number) and an additional third outlet (which specifies MIDI output channel).

Messages

int pitch-value velocity and duration [int]
In first inlet: The number is treated as a pitch value for a MIDI note-on message. It is paired with a velocity value and the numbers are sent out the outlets. After a certain time, a note-off message (a note-on with a velocity of 0) is sent out for that pitch.

In second inlet: The number is stored as a velocity to be paired with pitch numbers received in the left inlet.

In third inlet: The number is stored as the duration (in milliseconds) that makenote waits before a note-off message is sent out.
In fourth inlet: The number specifies a MIDI output channel. The fourth inlet will only be present if the makenote object is initialized with three arguments.
float pitch-value velocity and duration [float]
In first inlet: The number is treated as a pitch value for a MIDI note-on message. It is paired with a velocity value and the numbers are sent out the outlets. After a certain time, a note-off message (a note-on with a velocity of 0) is sent out for that pitch.

In second inlet: The number is stored as a velocity to be paired with pitch numbers received in the left inlet.

In third inlet: The number is stored as the duration (in milliseconds) that makenote waits before a note-off message is sent out.
In fourth inlet: The number specifies a MIDI output channel. The fourth inlet will only be present if the makenote object is initialized with three arguments.
list pitch-value and velocity [list]
In left inlet: The second number is treated as the velocity and is sent out the right outlet. The first number is treated as the pitch and is sent out the left outlet. A corresponding note-off message is sent out later.
If the makenote object is instantiated with three arguments, a four-item list can be used which contains an additional fourth element specifying the MIDI channel number, which is sent out the rightmost outlet of the object.
anything pitch-value and velocity [list]
Performs the same function as list.
clear Erases all notes currently held by makenote, without sending note-offs.
clock setclock object name [symbol]
The word clock, followed by the name of an existing setclock object, sets the makenote object to be controlled by that setclock object rather than by Max’s internal millisecond clock. The word clock by itself sets the makenote object back to using Max’s regular millisecond clock.
stop Causes makenote to send out immediate note-offs for all pitches it currently holds.

Attributes

Name Type g/s Description
duration atom The duration (in milliseconds) that makenote waits before a note-off message is sent out.
repeatmode int Sets behavior when a note is retriggered. The modes are:

repeatmode 0 (default): There is no pre-specified behavior when when you repeat a pitch before the note-off for that pitch has been sent.
repeatmode 1: If a note is still playing when you retrigger it, the makenote object will send a note-off (velocity 0) message to stop the first note and then send a new note-on message.
repeatmode 2: If a note is still playing when you retrigger it, the makenote object will cancel the scheduled output of the first note - only the last played note will send note-off (velocity 0) message.

Information for box attributes common to all objects

Output

int: Out left outlet: The number received in the left inlet is sent out immediately, paired with a velocity value out the other outlet. After a certain duration, the same number is sent out paired with a velocity of 0.

Out right outlet: The number in the middle inlet is sent out as a velocity value in conjunction with a pitch value out the left outlet. After a certain duration, 0 is sent out paired with the same pitch.

Examples

Supply note-offs for note-ons generated within Max

See Also

Name Description
flush Provide note-offs for held notes
midiout Transmit raw MIDI data
noteout Transmit MIDI note messages
nslider Output numbers from a notation display onscreen
stripnote Filter out note-off messages, pass only note-on messages
transport Control a master clock and report time values.
xnoteout Format MIDI note messages with release velocity
Max MIDI Tutorial 2: MIDI Note Management Max MIDI Tutorial 2: MIDI Note Management