![]()
lecture notes • Spring, 2012
Mar 28
Signal Processing in Reason
Processing modules: reverb, complex reverb, flanger, delay, scream, etc.
Assign each module a MIDI channel (mixer too, if you want to control Pan or
Aux Send) in Reason Hardware Interface.
Controller numbers assigned to each parameter are in the MIDI Implementation
Chart PDF.
Mar 14
Lab safety and rules:
Goggles when using any power tools. No power tools when you’re alone except
hand drill.
Don’t use tools you don’t know how to use, especially soldering irons, jigsaw,
drill press.
First aid kits.
Unplug soldering irons after use. Unplug glue gun after use.
Don’t overuse hot glue. Heat destroys components.
No spray painting in the building except for small parts, inside a cardboard
box. Make sure there’s plenty of ventilation. To paint larger items, take them
outside and use cardboard backing so paint doesn’t get on pavement or grass.
Mar 12
What makes a musical
interface good?
–Good feel (ergonomics, haptic response)
- Fun to play (at least eventually)
- Ability to master with practice
- Stable, causal, reliable characteristics
- …But at the edge of playability
- Good instruments are hard to learn!
- Good sonic vocabulary and expressiveness
- Match between gesture and sounds?
- Causality for audience?
- Visual aesthetic?
Mar 7
| First Project Teams: | ||
Scott Winther |
Andrew Schweig |
Nicholas Harmon |
Jonathan Wolf |
Neil Foxman |
Scott Jacobson |
Eli Kohlenberg |
Joo Kang |
Jeffrey Prescott |
Benjamin Ewing |
John Bradley |
Mar 5
Wiimotes as musical instruments:
Bluetooth connection, OSCulator converts commands to MIDI=>Reason
or Max
Max useful objects and other hints from Phil Acimovic
Designing an instrument:
What gestures will control it?
What sensors do you need for those gestures?
What will need to be done with the sensors to make them "playable",
e.g., mounted on wood, put in tubes, duct-taped to your head?
How do the sensors translate into switch contacts, or 10KΩ resistors, or +5V
DC sources, to use with the MIDItron? Will there need to be supplementary electronics?
What processes will be applied to the MIDI data coming from the MIDItron?
What will the instrument sound like, and how will the sound be controlled by
the gestures?
Assigning tasks within the group:
Specifying and obtaining sensors.
Specifying materials to make sensors playable, i.e., the human interface.
Wiring the sensors making the wiring robust.
Adding circuits to process sensor data.
Writing the Max patch to process the data.
Designing the Reason patch.
Feb 29
Sensors: Continuous
Continuous sensors can act as resistors or current generators. Most resistive
types are wired to MIDItron/Arduino as voltage dividers. Others
need buffering, amplification, and/or filtering to provide usable signal.
• Force-sensing resistor=pressure. Button-type or strip.
• “Softpot”, flat variable resistor, ribbon or circular
• Flex sensor=bending angle
• Infrared distance sensor=from about 1.5-10 inches. Available in various ranges.
Get too close and the field inverts.
• Photocell: presence or absence of light
• Accelerometer: 1-axis, 2-axis, 3-axis. More sensitive ones can measure tilt
(responding to gravity)
• Piezo electric foil=striking or bending force. High voltage.
• Capacitive
Feb 27
MIDItrons: can be analog (continuous) or digital (binary). Configure using
Max programmer. Can be notes or controllers, adjustable limits and scaling,
velocity.
Sensors:
Binary=switches
Toggle, push-button, momentary, lever, magnetic
Rotary encoder: has two different switch contacts, “0” and “1”. Speed of encoder
determined by how fast switch contacts are made; direction determined by order
of contacts.
Feb 23
Free Max/MSP 30-day trial download—fully functional! http://cycling74.com/downloads/ (Look for Max 5 to make sure your patches are compatible with the lab.)
Max
Arithmetic functions (+ - * / ^).
Use space after operator, press Enter when done.
Select: waits for value, passes 1.
Relational operators. <. >, =, != (not equal). Puts out 1 when condition
is met, 0 when it's not.
Metro=clock, number of milliseconds.
Clocker=metro that reports the time since it starts
Random n=puts out random value 1-n
Gates (two-way switch): pass data or not.
Overdrive: improve MIDI speed at expense of screen redraws.
zl: list functions, zl mth chooses mth number in list.
Can have multiple patches open and active. Communicate between then using snd and rcv.
Feb 22
Intro to Max
Check AudioMIDI Setup to see that TrigFinger or keyboard is recognized.
Launch Max. Before opening a patch, check Max's MIDI Setup: in a is Trigger
Finger or keyboard, out a is "from MaxMSP1". Disable all other inputs and outputs
Launch Reason. Set Advanced MIDI Pref Bus A to "fromMaxMSP1"
Edit and locked mode. command-E toggles, or click on lock icon.
object box = function
start typing, list of objects appears. To list them all, Max Help: objects
A-Z or by function
Number box = for monitoring.
Can choose to display MIDI note numbers OR names (get info)
Patch cables connect everything.
notein: port a, note# vel
ch
noteout: ditto
makenote: note#, vel, length. Has to then go to a noteout. test for not-zero [ != 0 ]
cntlin: controller value, controller #, channel (if no channel, will accept
all. If wrong channel, won't respond)
cntlout: same
Sliders (0-127), can change shape, scale, direction(Get Info)
Pipe: number of arguments is number of messages passed, with last one being delay time in ms. "0 0 0 time" will delay a MIDI message (zeroes are placeholders).
MIDI Scope: Max patch showing incoming MIDI data. Good for diagnosis!
Feb 13
Trigger Finger as MIDI
source (use MIDI Monitor application to check what’s coming in): notes,
controllers.
Programming Trigger Finger with Enigma:
Connect Trigger Finger to USB port. Make sure it shows up in AudioMIDI Setup
Open Enigma.
Click “+” to create a blank bank.
Select Preset 1, give it a name.
To program a pad note: Click on note icon on pad, set CC to “147”.
Put in note # (0-127). Set Vel. mode to Off. Set channel to whatever.
To program a pad controller: Click on CC icon on pad. Set CC to whatever. Set
channel to whatever.
To program a slider or knob: Click on slider. Set CC and channel number.
You can copy and paste individual pads, knobs and sliders.
To upload data into Trigger Finger: first, twiddle a knob on the TF. Then use
Straight-Up Arrow in Engima to send bank. On TF, press Memory Recall and Pad
1 (bottom left).
Save your preset/bank: File>Export Preset Bank (to your folder,
name it).
Using Trigger Finger with Reason--you can now control anything on the
panel with the proper controller numbers (tables on paper, and PDF on machines)
Multiple modules in Reason: addressable by MIDI channel.
Programming the Trigger Finger
Feb 8
Reason NN19 module: samples, with many of the same filtering and envelope
parameters as Subtractor.
Building sample map, assigning controllers.
Aligning pitches in sample map—setting root note. Keyboard tracking: no pitch
change, good for percussion and sound effects.
AIFF or WAV audio format. Samples can be mono or stereo.
"Browse samples" to import sounds.
Sound effects libraries are on all the computers.
Self-contain setting! Make sure all external (non-Reason) samples are checked,
so they get saved with the rack.
Feb 1
Translating MIDI into sound in
Reason. Using the controller chart.
How parameters affect sound.
Mapping keyboard physical gestures to musical ones
examples: Slider to pitch vibrato, volume vibrato, timbral change
velocity to duration
velocity upside down to volume
pedal to pitch, vibrato, timbral change
What are synth parameters?
Waveform
Octave
Pitch, detune
Filter freq and resonance
Envelope, filter envelope
LFO rate and depth, mod envelope
Creating an original Reason sound.
Saving a whole rack (.rns) in Reason: create your own folder in “Student Work”
folder.
Jan 30
Familiar vs. unfamiliar user interfaces for music
Familiar: keyboard, guitar, drums, malletboard, violin, woodwind, brass. Advantage,
people already know how to use it. Doesn't require new skills, practicing,
rethinking how you make music.
Most commonly in electronic world: keyboard. Used with Moog synths, Switched-on
Bach. Became glorified organs with thousands of stops, people play all of them
the same way.
But, can extend technique to play keyboard in new way that has different expressive
parameters (aftertouch, wheels, pedals).
Adaptive: or extended, like keyboard with pedals; stringless guitar; wind controllers
with more buttons and levers than a conventional wind instrument; violins with
sensors on the bow, etc.
Unfamiliar: like Theremin: hard for guitar players used to articulating with
right hand. Using different parts of the body, or in different ways. Finger position
or movement on surface or in free space. Relative positions of fingers -- spread
or angle. Bend of joints: wrists, elbows, knees. Pressure on surface. Requires
practice and mastery! Think of music in different ways than simple button-pushes/discrete
events.
MIDI Hardware:
Out jack connects to In jack using MIDI cable. Speed is limited to 31,250 bits/sec,
about 1000 commands/sec.
Virtual MIDI connections (inside operating system, using software synths) has
no speed limit.
External devices communicate with computer using MIDI-USB interface or just
USB, in which case computer must have driver software that recognizes the device.
We have custom driver for Max that recognizes Arduino.
MIDI command structure
Real-time control language.
Some commands three-bytes, some two, some one, some longer.
Best expressed in hexadecimal notation: 0-255 decimal ($)=00-FF Hex
Numbers below 128$ (80H) are data bytes. Numbers 128$-255$ are command bytes.
Channels: second half of command byte, 0-F=read as 1-16. Different insruments
respond to different channels. In Reason, each module is on its own MIDI channel.
Note on (9n) + note number + velocity, off (velocity). Decimal ($): 144-159
Note off (8n)+ note # + velocity. Duration is time between on and off. 128-143$
9n with velocity zero is equivalent to note-off
Controller (Bn), controller number, value. Some continuous (wheel, slider,
breath, foot control), some switched (sustain pedal). 127 of them, not all
defined. Used for any kind of continuous command. 176-191$
Pitchbend: (En) + LSB + MSB. Like controller but its own command, double precision.
224-239$
Mono Aftertouch or Channel Pressure: (Dn) + value. 208-223$
Poly aftertouch: (An) + note # + value. 160-175$
Program change: (Cn) 0-127. Reason doesn't respond to it. 192-207$
Jan 25
Two metaphors/paradigms for musical instrument:
1) Instrument metaphor:
Causes a sound to be made
Control of pitch(es)
Expressivity
Pitch articulation (more than just turning on a note)
Amplitude articulation (initial and subsequent)
Timbre articulation
Virtuosity? As you learn it, you get better and can do more with it.
Something interesting to look at? Audience needs to pay attention.
2) Mixer metaphor.
A tool to control an audio process
Selection, adjustment, nudging, changing volume/balance/timbre on the fly
Simple sound parameters
Pitch (inc. glide, bend)
volume
timbre: waveform, filter freq, filter res, noise level
Envelopes of all (ADSR)
Duration
Vibrato (LFO) + vibrato envelopes
MIDI horn: mapping aftertouch to musical parameters: volume, vibrato, filter, noise
Jan 23
1) What is
music? Working definition: Sound that is created deliberately, and has interest
as sound.
2) The elements of music: melody, rhythm/tempo, harmony, timbre/orchestration.
3) What's a gesture controller? Something that responds to a physical action
by one (or more) human beings. Examples: Squeeze, blow, pluck, bow, hit with
hand or foot or stick, press with fingers.
An electronic musical instrument uses gestures to control electronic circuits.
Can be simple (direct) like theremin or complex (through microprocessor) like
Wriggle Screamer
Computers provide ultimate flexibility: they can produce any sound, and interpret
any gesture however we like, once we get the gestural information into the computer.
Links in the chain:
• Electronic sensors to detect gestures: touch, pressure/force, movement,
acceleration, distance, displacement
• Device to turn data from sensors into MIDI: Doepfer boxes, MIDItron,
Bluetooth and USB devices
• Software to interpret and process the MIDI data: Max
• Synthesis software to turn the processed MIDI into sound: Reason
• Audio system to produce the sound
What we will do in the class:
• Study existing electronic instruments, see them demonstrated live and
on video
• Conceptualize physical gestures as they can be used to make music
• Learn MIDI, what the commands mean, how they can be used to control
music
• Learn Reason, a software synthesis system, and how to use its parameters
• Translate gestures into electronic form, using sensors, and then translate
them into MIDI using Doepfer boxes
• Look at data from other real-time control devices—Bluetooth and USB—and translate
it into MIDI
• Process real-time MIDI data with MAX
• Build new controllers and systems
• at the end, do a public demonstration