Composing with Computer
Assignment page
Assignment 1
Due: Monday, January 17
Read chapters 5, 6, and 7 in Ballora and answer these questions (open as a PDF file), to be turned in on Monday.
Assignment 2
Due: Thursday, January 20
Open Max. Under the Help file, open Max Tutorials. (Not MSP Tutorials). Go through the following tutorials and be sure to read the text associated with them:
Basics
- Hello
- Bang
- Numbers
- Metro and Toggle
- Message Ordering
- Simple Math
MIDI
- Basics
- Note Management
- Parsing
- Basic Sequencing
Then create a series of Max patches and save them to your flash drive. These patches should do the following, based on each of the tutorials in turn:
Basics
- Write a program that prints a friendly, original message to the Max window. Safe as Basic1 to your tumb drive.
- Write a program that prints a short sentence to the Max window by way of a cascade of bangs. Save it as Basic 2.
- Do something fun with the toggle object and the metro object, like create a metro where you can choose multiple metronome speeds with one click.
- (No activity for Message Ordering, but do understand the concept).
- Write a little calculator that adds and subtracts two numbers that you enter.
- Open this little patch that takes in MIDI from the on-screen keyboard and spits it out to the local Mac synthesizer. Modify this program so that it adds a fifth to the note that you play, like we did at the end of class on Monday.
- Create a little program that uses Makenote, as in the MIDI tutorial 2 and also as in the previous patch.
Having absorbed this, try to creat a Notein-Noteout patcher that "does something interesting" when you play a single melody on the MIDI keyboard. Here is the patch you can use to get started.
Some ideas:
- When I play a note, it adds a random interval to the note I play.
- When I play a note, it doesn't play the note I'm playing, but plays a note that relates to tthe velocity of the note I'm playing. (You'll need to deal with what happens when there's a zero or a low velocity -- better check out stripnote for this.)
- When I play a note, it adds a certain interval at one octave, another interval at another octave, and so forth.
Assignment 3
Making a Max Patch that responds to keyboard or bang inputs
Here is a list of possible tasks you could accomplish to create a 'hyper-piano,' which is a piano that plays more than one note when a key is hit. Or you can creat an on-line patch that responds to bangs. Open this pdf for suggestions.
Remember, as always, this is a three-hour minimum assignment.
Here are the patches we created on Thursday (download to the local computer then open within Max):
Velocity to pitch (you could try to alter this to come up with a better way to cancel the final hung note)
Gate-It. We didn't get to this, but check it out. It shows how to use the all-important gate object to open and close the flow of information. Here, stepping on or off the foot pedal open closes the harmonizer.
Assignment 4
DUE: Monday, January 31
By this time, you should have put a total of 12 hours into learning Max. If you haven't yet done, so you need to catch up.
Monday’s Max Assignment: Either come up with your own idea for a final “hyper-piano” patch that is actually useful and musical, or open this pdf, first pointed out in Assignment 3, and try out those ideas. I would like everyone to have something workable that responds to a keyboard command and 'does something useful.' Try to use some or all of the the following suggestions.
Required: make use of at least one subpatcher. See below.
-----------------------------
First, within Max, go to “tips and shortcuts” under the help menu and read this very helpful list of things that make programming in Max easier.
Make use of: Object boxes, message boxes, toggles and bangs, integer and/or floating point boxes, and be sure to use the comment box.
MIDI:
1. Notein from the keyboard or the virtual
“slider” keyboard.
2. The Mod wheel on the keyboard, or you can use a slider
or dial (under the sliders choices) to emulate the 0-127 range of the mod
wheel. Take into Max through the ctlin in object. You can give this two
arguments, the first being the continuous controller number, so that that
ctlin object will only look for the CC data that corresponds to that number.
Graphical interfaces:
1. The Gswitch (which you’ll find
under the ‘buttons’ options in the new object pallete (when you double
click the space).
2. Sliders and/or dials (these can be connected to dials
and sliders on the Oxygen keyboard through the ctlin object).
Some or all of these useful objects (typed in as text). If you don’t know for sure what these do or haven’t used them yet, type them in and go to their help page (option click while the window is locked):
1. Counter – counts bangs
and outputs the count number. A range can be set.
2. Split – sets a range
of numbers to output out the left outlet, sends everything else out the
right 3. Comparatives: > , < ,
!= , ==, && , || (the or object)
4. Pack and unpack (puts together
or pulls apart a list of numbers, for example note number and velocity)
5. Iter – unpacks a list one item at a time
6. Gate. When the gate is open
(with a toggle), output goes through. When it’s closed (no X in the toggle),
no data gets through.
7. Change – filters out repeated numbers
8. Mathematical
functions – simple arithmetic and other mathematical functions are available
9. Others as you come across them. Often reading the help file will direct
you to similar objects, and you can thereby increase your knowledge of
what’s available. Also make use of at least one embedded subpatcher window
(type “patcher” or just ‘p’ into an object box to create the subpatcher
window).
