110 likes | 351 Views
CSC 320 – Music Instrument Digital Interface (MIDI) and Digital Audio, Spring 2017. April 2017 Dr. Dale Parson. Musical Instrument Digital Interface. MIDI stores, transmits, and receives information to control electronic musical instruments, including hardware and software synthesizers.
E N D
CSC 320 – Music Instrument Digital Interface (MIDI) and Digital Audio, Spring 2017 April 2017 Dr. Dale Parson
Musical Instrument Digital Interface • MIDI stores, transmits, and receives information to control electronic musical instruments, including hardware and software synthesizers. • MIDI messages are packets of data, sent or received by a synthesizer or MIDI controller device. • MIDI is not Digital Audio. • Digital Audio is a sequence of binary numbers representing measurements of sound pressure levels (SPLs). • MIDI numbers do no represent sound. They represent control of instruments.
MIDI Short Messages • See javax.sound.midi.ShortMessage. • http://docs.oracle.com/javase/7/docs/api/index.html • See the MIDI specification. • http://midi.teragonaudio.com/ • See NOTE_ON to start a note, NOTE_OFF to stop it, PROGRAM_CHANGE to change the instrument voice, CONTROL_CHANGE for audio effects. • There are many distinct messages. • http://midi.teragonaudio.com/tech/midispec.htm
Chords & Instrument Voices • Polyphonic synthesizers can play many notes at a time. Monophonic synths play 1 at a time. • A MIDI channel 0..15 (1..16 on most user interfaces) represents one instrument. Thus a given synth supports addressing up to 16 simultaneous instruments, each of which may be polyphonic.
Program Change & Control Change • A Program Change message enables a channel to play a new instrument, 0..127. • Bank switching may support > 128 instruments. • A Control Change applies an effect to a channel in the amount 0..127 or 0..16383. • Not all synthesizers support all combinations of NOTE_ON ranges, Programs & Controllers.
Hardware & Soft Synths • A synthesizer may be a hardware device connected via a MIDI cable, or software connected to a controller via a soft bus. • There are 3+ basic approaches to synthesizing sound: • Harmonic synthesis combines overtones by adding or subtracting component sine waves. It models sounds. • Samplinguses recorded instrument sounds and pitch shifting as the basis for sound reproduction. • Physicalmodeling uses software that models the acoustic properties of physical instruments. • There are other, less heavily used approaches.
ConcentricCirclesIntervals • We will go over my ConcentricCirclesIntervals sketch, posted on the course page, that takes advantage of some of these additional MIDI features.
Pulse Code Modulation • PCM is a digital representation of Sound Pressure Level (SPL). It is the primary digital representation of audio signals (sound). • It is not instrument-control data like MIDI. • PCM converts a series of measurements of analog SPLs to a sequence of binary numbers, where the magnitude of a number represents the SPL strength during a brief interval of time.
http://www.electronicshub.org/modulation-and-different-types-of-modulation/http://www.electronicshub.org/modulation-and-different-types-of-modulation/
There are two categories of resolution in PCM. • Samples per second gives the rate at which PCM takes measurements of sounds. The lowest standard rate is 44,100 samples per second. • Bits per samples gives the resolution of each sample in terms of how many bits store each measurement. 16 bits per sample is a common minimal amount, giving numbers in the range 0..65536 or -32768..32767. Some old systems use 8-bit samples (0..255). 24-bit samples are common (0..16,777,215), • Sample rates go to 192,000 samples per second.
SoundToWavePixels • We will go over my SoundToWavePixels sketch, posted on the course page, that converts PCM-encoded audio signal data into pixel waveform displays. • This requires using polarized_shuffle.mp3. • Will will also go over PShape3DGroups, previously posted on the course page, that shows using a PImage as a PShape texture. • This requires using Window250x250.png.