## Synthesis

• Make a sound: contrast with analysis, effects

• Many popular approaches

• Wavetables

• Frequency Modulation

• Some really fancy stuff

• Today: MIDI (synth control) and Wavetables

## Notes

• A "note" is a sound with a fixed frequency

• Briefly: Western music uses a "12-tone scale"

• Remember that the ear hears frequency on log / exp scale

• An "octave" is a frequency that is twice some other frequency

• We divide an octave into 12 parts: with a base frequency f, we have

$$note_i(f) = f \cdot 2^{i/12}$$

• For example:

\begin{eqnarray*} note_0(f) &=& f \\ note_{12}(f) &=& 2f \\ note_{-24}(f) &=& \frac{f}{4} \end{eqnarray*}

• There is a bunch of music theory here for future

## Key Numbers, Note Names

• For Western scales, the base frequency is 440Hz, because reasons

• We can use a numbering based on piano keys as a standard: MIDI "key number"

• In MIDI 440Hz A is key 69; we call this the A in "octave 4" or A4

• We give the notes letter names with a possible "sharp" or "flat" modifier

  Key   Freq    Name    Octave
69    440     A       4
70    466.16  B♭/A♯
71    493.88  B
72    523.25  C
73    554.37  D♭/C♯
74    587.33  D
75    622.25  E♭/D♯
76    659.26  E
77    698.46  F
78    739.99  F♯/G♭
79    783.99  G
80    830.61  A♭/G♯
81    880     A       5

• The "why" of all this is a future lecture

## Note Timing

• Notes start at a particular time, have a particular duration (how long they continue to play)

• For now, will think of this as an "on time" and "off time" for the note

• There's a whole complicated theory here, but we don't need it yet

• Typically start times are 4 to 30ms apart or thereabouts, durations are 4ms and up

• Notes may overlap: "polyphony". Some instruments (including some synths) are monophonic: one note at a time, so start of next note is end of current

## MIDI

• Musical Instrument Digital Interface (MIDI, requires free registration): ancient unidirectional standard for keyboard to synth communication (Prophet 600, 1982); replaced analog "control voltage" schemes

• "Instrument" is a synth. "Controller" is a keyboard or something

• Physical interface is…a thing. Two-wire interface on 5-pin DIN connector (also AT keyboard connector). 5ma current loop with optical isolation required. 31250 bps (halfway between 19200 and 38400, ugh) 8N1 (like modem baseband)

• USB MIDI Device Class trades jitter and (maybe) latency for simplicity and throughput; MIDI←→USB interfaces are cheap

## MIDI Protocol

• 1-3 byte messages

• 1st byte is "Status Byte" with high bit set,

• Rest are data bytes

• Special case: "System Exclusive" messages are arbitrary length, terminated by status message (usually EOX)

• 16 "channels" used to address specific instruments: management can get fairly complicated. "Thru" in standard MIDI for chaining instruments; latency is a thing here

• Key messages (pun intended): Note-On, Note-Off. These can have "velocity" of press and release encoded

• Support for pitch bend, continuous controllers, pushbuttons. Volume, Balance, Pan, Expression etc are standardized

• Bank / Program / Patch support for changing instrument sound

• Much, much more: read the spec

## MIDI Timing, Sequencing, "MIDI Files"

• Keyboards are realtime, but MIDI can handle

• Synchronizing messages to specific times

• Driving a sequencer on-beat

• Playing MIDI files: standard format for timed MIDI messages

## Working With MIDI

• Get a library. This stuff gets a bit complicated

• For a controller: figure out what you want to be able to make an instrument do; figure out what minimum set of messages will make an instrument do that

• For an instrument: figure out what you want the instrument be able to do; figure out what message you have to and are willing to respond to

• Start bare-bones, add functionality incrementally