Description

follow records pitches, or you can give it a MIDI file, in which case it looks at the file's note-ons and ignores other events. When it is "following" it outputs the index of the last note matched.

Examples

A note that matches the recorded note can trigger a process, or the notes can be stepped through

Arguments

filename [symbol]

Optional

The argument is the name of a file containing a previously recorded sequence, to be read into follow automatically when the patch is loaded.

Attributes

Common Box Attributes

annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

Messages

bang

int

Arguments

input
[int]

When follow is recording, the numbers received in its inlet are recorded as a sequence. The numbers may be bytes of MIDI messages (from midiformat or midiin), exactly as with the seq object. However, follow differs from seq in its ability to record individual integers; with follow you can record notes as a single pitch value. Whether the performance is recorded as complete MIDI messages or just as note-on pitches, follow can effectively step through the note-on pitch numbers later, when following a performance.

(inlet1)

Arguments

input
[int]

When follow is following, numbers received in its inlet are compared to the numbers recorded in the sequence. When a number is received that matches the number in the sequence, follow sends out the index of that number.

float

Arguments

input
[float]

Converted to int.

append

Starts recording at the end of the stored sequence, without erasing the existing sequence.

delay

Arguments

onset-time (milliseconds)
[int]

The word delay, followed by a number, sets the onset time, in milliseconds, of the first event in the recorded sequence.

dump

Calls up the standard Open Document dialog box, so that a previously recorded sequence or standard MIDI file can be opened as text and displayed in a new Untitled text window. This in fact has no direct effect on the follow object, but does allow you to view or edit a sequence, save your changes in a file, then load the new file into follow with a read message.

follow

Arguments

index
[int]

The follow message is the main feature that distinguishes follow from seq. In effect, follow is like a score reader, comparing a live performance with the one previously stored.

The word follow, and a number, causes follow to begin comparing incoming numbers to its own stored numbers, beginning at the specified index (the specified event in its own stored sequence). When follow is following, and a number is received that matches the number recorded in follow, it sends out the index of that number.

The follow object is a forgiving score reader, and will try to follow along even if the incoming numbers do not exactly match the recorded sequence. If a number arrives that does not match the next number, or either of the two subsequent numbers in the sequence, follow does nothing. If a number arrives that matches a number up to two notes ahead in the sequence, follow assumes that the performer simply missed a note or two, and jumps ahead to the matched number.

next

Causes follow to send out the index and the stored number it is currently trying to match, and move on to the next number.

print

Prints the first few events of the recorded sequence in the Max Console.

read

Arguments

filename
[list]

The word read with no arguments puts up a standard Open Document dialog box for choosing a sequence file to load into follow. If read is followed by a symbol filename argument, the named file is located and loaded into follow.

record

Starts recording integers received in the inlet.

start

Arguments

tempo
[int]

The word start by itself has the same effect as bang. The word start, followed by a number, plays the stored sequence at a tempo determined by the number. The message start 1024 indicates normal tempo. If the number is 512, follow plays the sequence at half the original recorded speed, start 2048 plays it back at twice the original speed, and so on.

stop

Stops follow from recording, playing, or following. A stop message need not be received before switching directly from recording to playing, following to recording, etc.

write

Arguments

filename
[list]

Opens a standard Save As dialog box to save the follow sequence as a file.

Output

int

Out left outlet: When follow is following, and the number received in the inlet matches the next number in the stored sequence (or one of the two numbers after that), the index of the matched number is sent out. The index of the next number is also sent out when a next message is received.

Out right outlet: When follow receives a bang or a start message, the recorded numbers are played back. When follow is following, and a next message is received, the next number in the recorded sequence is sent out.