MUC4401: Composition of Electroacoustic Music
MAX Assignment No. 3
-
The purpose of this assignment is to build two patchers.
- include a method of storing MIDI data (sequence, buffer, table, etc.)
- allow the user to initiate the algorithmic process
- utilize a user scalable time element if appropriate
- allow the user to select with a menu the MIDI controller (keyboard, wind controller, dance controller, et al) via "midiinfo"
- allow the user to select with a menu the target MIDI module via "midiinfo"
(1) Create an algorithmic patcher. This patcher will utilize a mathmatic expression or set of expressions to generate a musical phrase from a dynamic input (could be different each time). Research the literature for expression to use in the generation of your material (fractal, geometric, and genetic areas are packed with usable equations). This patcher should include the following:
midiin | ||||
midiout | ||||
midiinfo | ||||
button a.k.a. bang button, or loadbang | ||||
slider | ||||
number box | ||||
message box | ||||
comment box | ||||
seq, mtr, funbuff, or table | ||||
expr and/or vexpr | ||||
prob and/or random | ||||
stripnote | ||||
metro |
-
http://www.arts.ufl.edu/composition/downloads/nelson.pdf
http://www.arts.ufl.edu/composition/downloads/nelson.sit
http://www.arts.ufl.edu/composition/downloads/nelson.zip
-
(2) Create a "hyper-keyboard" MAX controller. This patcher allow the performer to select the functions of a sequencer from the MIDI controller (keyboard). This patcher will have the following functions:
- allow a user to send "record," "start," "stop," "read," and "write" sequencer functions from the MIDI controller (keyboard)
- let the performer control the playback tempo of a sequence from the modulation wheel of the MIDI controller (keyboard).
- trigger an algorithmic "sub-patcher" (see part one of this assignment)
- allow the user to select with a menu the MIDI controller (keyboard, wind controller, dance controller, et al) via "midiinfo"
- allow the user to select with a menu the target MIDI module via "midiinfo"
select | ||||
midiin | ||||
midiout | ||||
midiinfo | ||||
button a.k.a. bang button, or loadbang | ||||
slider | ||||
number box | ||||
message box | ||||
comment box | ||||
midiparse | ||||
midiformat | ||||
pack | ||||
unpack | ||||
umenu | ||||
seq | ||||
route and/or select | ||||
patcher | ||||
metro |
Utilize the Clue Menu (found under the WINDOW menu) to identify the objects available in the palette. Remember that you can use print statements, number boxes, buttons, etc. to debug your patcher. These items will help you track the program flow though the patcher.
BONUS: Included "panic" button (all notes off) on the hyper-keyboard assignment above. See Borax, flush, and midiflush objects as keys to possible solutions.
Borax | |
flush | |
midiflush |
EXAMPLE: Smale's Horse Shoe