follow
Compare a live performance to a recorded performance
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.
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]: 0
Adds or removes the object from the patcher's background layer.
adds the object to the background layer, removes it. Objects in the background layer are shown behind all objects in the default foreground layer.
color[4 floats]
Sets the color for the object box outline.
fontface[int]
Sets the type style used by the object. The options are:
plain
bold
italic
bold italic
Possible values:
0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'
fontname[symbol]
Sets the object's font.
fontsize[float]
Sets the object's font size (in points).
Possible values:
'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'
hint[symbol]
Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.
ignoreclick[int]: 0
Toggles whether an object ignores mouse clicks in a locked patcher.
jspainterfile[symbol]
You can override the default appearance of a user interface object by assigning a JavaScript file with code for painting the object. The file must be in the search path.
patching_rect[4 floats]: 0. 0. 100. 0.
Sets the position and size of the object in the patcher window.
position[2 floats]
write-only
Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.
presentation[int]: 0
Sets whether an object belongs to the patcher's presentation.
presentation_rect[4 floats]: 0. 0. 0. 0.
Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.
rect[4 floats]
write-only
Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).
size[2 floats]
write-only
Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.
textcolor[4 floats]
Sets the color for the object's text in RGBA format.
textjustification[int]
Sets the justification for the object's text.
Possible values:
0 = 'left'
1 = 'center'
2 = 'right'
varname[symbol]
Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.
Messages
bang
Starts playing back the sequence stored in follow.
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.
- input
[int]
(inlet1)
float
Converted to
.- input
[float]
append
Starts recording at the end of the stored sequence, without erasing the existing sequence.
delay
The word
, followed by a number, sets the onset time, in milliseconds, of the first event in the recorded sequence.- onset-time (milliseconds)
[int]
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 message.
follow
The follow from seq. In effect, follow is like a score reader, comparing a live performance with the one previously stored.
The word , 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.
- index
[int]
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
record
Starts recording integers received in the inlet.
start
The word follow plays the sequence at half the original recorded speed, plays it back at twice the original speed, and so on.
by itself has the same effect as . The word , followed by a number, plays the stored sequence at a tempo determined by the number. The message indicates normal tempo. If the number is ,- tempo
[int]
stop
Stops follow from recording, playing, or following. A message need not be received before switching directly from recording to playing, following to recording, etc.
write
Opens a standard Save As dialog box to save the follow sequence as a file.
- filename
[list]
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 message is received.
Out right outlet: When follow receives a or a message, the recorded numbers are played back. When follow is following, and a message is received, the next number in the recorded sequence is sent out.
See Also
Name | Description |
---|---|
seq | Sequencer for recording and playing MIDI data |
detonate | Play a score of note events |