Electronic Musical Instrument Design

lecture notes • Spring, 2017

Feb 13

Intro to Max: 30-day free trial : http://cycling74.com/downloads/

Check AudioMIDI Setup to see that MPD or keyboard is recognized.
Launch Max. Before opening a patch, check Max's MIDI Setup: in a is MPD or keyboard, out a is "from Max1". Disable all other inputs and outputs

Launch Reason. In Preferences>Sync set Bus A to "from Max1".

Edit and locked mode. command-E toggles, or click on lock icon.

object box = a function
start typing, list of objects appears following your input.

Number box = for monitoring.
Can choose to display MIDI note numbers OR names (get info)

Patch cables connect everything.

notein arguments: port a, note#, velocity, channel
noteout: same

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 (Get Info). Kslider, shows keyboard.

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).

Random n=puts out random value 1-n

Metro=clock, number of milliseconds. Start and stop with toggle at input.
Select, waits for value, passes 1.

MIDI Scope patch for monitoring input.

Print command: open Max Console window to view output

Feb 8

Akai MPD26 and Reason
Using MPD with Reason--you can now control anything on the panel with the proper controller numbers. Controller assignments for the Reason modules are in the "Reason controller charts" folder in EMID Resources
Multiple modules in Reason: addressable by MIDI channel, and by different pads and controls on MPD

Vyzex MPD editor instructions
Launch application
Click OK at MIDI Ports Setup
Wait! Image of the device will appear on screen.
Click on a pad or control to change it.
MIDI CH CC=current global channel (usually 1) You can set a pad or control to any channel, but use bank A (e.g., 1A)
Pads can be set to momentary or toggle (on/off). Pressure (aftertouch) can be on or off (don’t use Poly Pressure-PPr)
Here's what I was doing wrong today:
WHEN YOU HAVE SET A NOTE NUMBER, MOVE THE CURSOR OFF THE NOTE NUMBER—or else playing another pad will impose that pad’s note number on the current pad! (It's a feature: it lets you program the thing using a keyboard.)
Sliders can be set to controller number or Pressure.
Knobs similar, also option for NRPN—don’t use.
Click on name (“Generic”) to name your preset.
File>Save Set As….to save entire bank of presets. When you come back to the lab, File>Open to get it back.

Reason NN19 module: samples, with many of the same filtering and envelope parameters as Subtractor.

Feb 6

What are synth parameters?
In Subtractor:
Key number
Pitch, detune
Filter freq and resonance
Envelope, filter envelope
LFO rate and depth, mod envelope

Mapping keyboard physical gestures to musical ones: mod wheel and velocity
Mod wheel to pitch vibrato, volume vibrato, timbral change, envelope
velocity to amplitude
velocity upside down to volume
velocity to envelope attack time
velocity to filter envelope (brightness)

Use MIDI Monitor to check your incoming MIDI data.

Save the whole rack (.reason) in Reason: create your own folder in EMID Resources folder.

Feb 1

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 or string 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:
Traditionally uses MIDI cable, speed is limited to 31,250 bits/sec, about 1000 commands/sec. Other transports (USB, Firewire, Ethernet, Bluetooth) have much higher speed limit—essentially none.
Virtual MIDI connections (inside operating system, using software synths) also have no speed limit.
External devices communicate with computer using MIDI-USB interface or just USB, in which case computer must have software that recognizes the device. We have custom driver/patch for Max that recognizes Arduino.

MIDI command structure
Real-time control language.
Some commands three-bytes, some two, some one, some longer.
Often 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$
NB: 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$ Reason doesn't respond to it.
Program change (Cn) 0-127. 192-207$ Reason doesn't respond to it.

Jan 25

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.
The physical aspects of an instrument no longer have to have any relationship to the sounds it makes.

Two metaphors/paradigms for a new musical instrument:
1) Instrument metaphor:
Causes a sound to be made
Control of pitch(es)
Expressivity takes many forms:
Pitch articulation (more than just turning on a note)
Amplitude articulation (initial and subsequent)
Timbre articulation
2) Controller/Mixer metaphor:
Sequence or pattern generated automatically or by a single gesture.
Gestures control the parameters of the sequence as it plays.
Selection, adjustment, nudging, changing volume/balance/timbre on the fly

Basic things to think about when designing an instrument:
Depth & Virtuosity: As you learn it, you get better and can do more with it.
Something interesting to look at: Audience needs to pay attention, be able to connect what they see visually with what they hear.

Basic sound parameters
Pitch (inc. glide, bend)
timbre: waveform, filter freq, filter res, noise level
Envelopes of all (ADSR)
Vibrato (LFO) + vibrato envelopes

Jan 23

1) What's music? Varese: organized sound. Working definition: Sound that is created deliberately, with intent, and has interest as sound.

2) Elements of music: melody, rhythm/tempo, harmony, timbre/orchestration.
Elements of music performance: prescription, improvisation, interaction (and grey areas between)

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.

How we do it—Links in the chain:
• Electronic sensors to detect gestures: touch, pressure/force, movement, acceleration, distance, displacement
• Framework to hold the sensors and make them playable.
• Device to turn data from sensors into MIDI: Arduinos
• Software to interpret and process the MIDI data: Max
• Synthesis software to turn the processed MIDI into sound: Reason, Max MSP
• Audio system to produce the sound

What we will do in the class:
• Study existing electronic instruments, see them demonstrated on video and live
• 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 set its parameters
• Translate gestures into electronic form, using sensors, and then translate them into MIDI using Arduinos
• processing real-time MIDI data with MAX
• Building new controllers and systems
• Work in teams of students with complementary skillsets
• at the end, do a public demonstration

Resources: Course pack (buy at Gnomon Copy), What’s MIDI (buy from me or at Music office, if you didn't take Music 64 or 65), reference books, manuals and catalogs in lab, on computers, and on-line.

Lab: Electronic parts and tools, sensors, software, mechanical parts, hand and power tools for woodworking and assembly. 3D printer.

Laser cutter, more tools in Bray Labs and at CEEO at 200 Boston Ave. Available to all with simple training.