Download presentation
Presentation is loading. Please wait.
1
Arduino MIDI Processing
2
MIDI and OSC MIDI: is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and related music and audio devices. MIDI carries event messages that specify notation, pitch, velocity, vibrato, panning, and clock signals (which set tempo). For example, a MIDI keyboard or other controller might trigger a sound module to generate sound produced by a keyboard amplifier. A file format that stores and exchanges the data is also defined. Advantages of MIDI include small file size, ease of modification and manipulation and a wide choice of electronic instruments and synthesizer or digitally-sampled sounds.
3
MIDI and OSC MIDI technology was standardized in 1983.
All official MIDI standards are jointly developed and published by the MIDI Manufacturers Association MMA in Los Angeles, and the MIDI Committee of the Association of Musical Electronics Industry (AMEI) in Tokyo. In 2016, the MMA established the MIDI Association (TMA) to support a global community of people who work, play, or create with MIDI.
4
BASIC Arduino
5
Subjects Covered Arduino Architecture.
Process of Development of Audio Applications. Requires Basic knowledge of C language. Functions Structures if statements for – loops etc.
6
Basic Architecture of Arduino
Arduino Architecture Processor Communications Peripherals User I/O - Pins Power Supply & Control Computer Power Supply Basic Architecture of Arduino The processor Communications User I/O Pins Power Supply Control Peripherals
7
Arduino Processors Based on original Atmega x8 processor.
8 – bit processor Today we have various architectures that are based on: 8 – bit 16 - bit 32 – bit
10
Arduino Processors Variety of processor have different:
Flash memory sizes: Flash memory is used to store the program Data Sizes: Static Random Access Memory - SRAM Electrically Erasable Programmable Read Only Memory – EEPROM Variety of processors support various configurations such as: 32uX series that supports USB SAM3X8E ARM Cotrex-M3 – this provides step up in processor technology and power Arduino Yun that runs Linux with two core processors.
11
Communications Block Communicating with the computer is performed over this block. Typically is a USB/Serial Converter Some of the chips sets do not have this module and it requires users to provide this function separately if needed.
12
User I/O Pins The basic Arduino is capable to being expanded to an almost unlimited number of pins. The use of the word “pin” to mean a single input/output line is unique to the Arduino and is sometimes confused with a physical pin on a chip. This in turn has given flexibility to build various Arduino lines where the physical pin assignment is done in software configuration step.
13
Power Supply Control Block
Power can be provide to Arduino in two ways: Via USB Specific power supply. Modern Arduinos detect automatically the source of the power
14
Onboard Peripherals Two kinds of peripherals: Inside the processor, &
Mounted on the Arduino board.
15
Peripheral Inside the Processor
The processor peripherals: Hardware counter/timer Serial Ports Pin Interrupts Analog to Digital (A/D) converter. For example Timer can be used to: Produce a fixed frequency pulse Width Modulation (PWM) signal. Various chips have a variety of number of timers: From 3 timers that produce 2 pulses each (6 pulses total). To variety of modes a and timers generating 15 PWMs
16
Board Peripherals Arduino Ethernet – has an Ethernet controller.
Arduino WiFi - has an a WiFi module build-in. In addition to various board peripherals Arduino supports extension boards.
17
Arduino for Audio The more powerful the base processor the better and it will make processing easier. For example: Shortcomings in terms of peripherals can be accommodated for by adding addional input/output pins using external chips. This memory however, is not part of the general memory: it can not be used store variables or arrays and it can be used only to store data. As of 2015 the best Arduino for use in audio projects is Arduino Due: 96K SRAM A/D 12 – bit resolution (4096) 2 D/A
18
Basic MIDI
19
Basic MIDI Using the MIDI signal Understanding MIDI messages
Hardware handling of MIDI singles Building a MIDI shield Sending and Receiving MIDI messages USB
20
Basic MIDI Using MIDI is the simplest way to get the Arduino to interact with a MIDI supported devices: It is simple to send and receive messages over MIDI interface MIDI specifies a language of interaction that is understood by an countless number of musical instruments and controllers. MIDI provides a simple electrical interface and its is designed to be compatible with a wide variety of electronic systems.
21
What is MIDI? MIDI – Musical Instrument Digital Interface
Introduced in 1983 with the goal to provide a standardized way to control musical instruments. MIDI is designed with the goal of generality so that it can be applied to: Lighting effect Movement of various automation machinery Movement of Robots, and more conventionally For controlling applications involving music.
22
MIDI MIDI Standard – defines a protocol
MIDI Standard – defines an interface in terms of voltage, current, and connectors.
23
Electrical Signals MIDI is defined as an asynchronous serial interface that uses Speed of communication – kHz Chips that use Universal Asynchronous Receivers and Transmitters (UART), need a clock oscillator that is 16 time the required speed – baud rate. UART chip has all the logic for sending and receiving and asynchronous data stream. Arduino chips all have at lest one UART.
24
Electrical Signals of MIDI
Data is send Asynchronously one bit at a time. Synchronization of transmitting and receiving streams is done every byte (8 – bits).
25
Electrical Signals of MIDI
MIDI Uses UART – Universal Asynchronous Receiver and Transmitter protocol. UART communication requires synchronization step between Receiver and Transmitter. It utilizes 1MHz clock as a base clocking device. This clock then fed into divisor circuit to produce kHz signal. The rate of communication ranges from: 300 boud 1200 boud 9600 bound … Boud means “data bits per second”
26
Electrical Signals of MIDI
UART chip has the logic for sending and receiving an asynchronous data stream. Each Arduino has at least one built in UART. For example Arduino Mega have four UARTs Synchronization of Receiver and Transmitter port is done after each byte (8 bits). Start bit Stop bit Data bit 0 Data bit 2 Data bit 4 Data bit 6 Data bit 1 Data bit 3 Data bit 5 Data bit 7
27
Electrical Signals of MIDI
Optional extra bit that comes bewtween the last data bit and the stop bit – parity bit. Parity bit if used will be chosen so that there is an odd or even number of data bits. Note that in MIDI signaling parity bit is not used. There a number of options is UART communications: 5,7, or 8 bits Odd , Even or no parity, 1, 1 *1/2 or 2 stop bits
28
Electrical Signals of MIDI
For MIDI communication requires 0 stop bits to be send, and 8 bits of data to be transmitted.
29
MIDI Messages In order to control a MIDI device, several bytes are combined to form a MIDI message. The number of bytes required varies based on the content of the message. There are a number of classes of MIDI messages to control various aspects of music system. Each MIDI connection can communicate with its MIDID channels. Each MIDI device can be set to be one or several different MIDI channels. Typically there are some switches on the device that control which channel it is on.
30
MIDI Messages The channel number is embedded in the first byte of the MIDI message as the four least significant bits. Message's first byte contains two pieces of information: The channel number, what kind of message it is. How many other bytes make the whole message The first by of MID message is often called the “status byte”. In the case of the note, there are tow other bytes associated with this message as displayed next.
31
MIDI Messages The anatomy of a note on message
32
MIDI Messages First MIDI message has the most significant bit set.
All subsequent messages start with most significant bit set to zero.
33
MIDI Messages The two other bytes in the MIDI message contain
the note numbed and the velocity (or how hard the note is struck) Because the first most significant bit is reserved for message only, the range of values contained in the message is Because this is insufficient in order to generate all the notes: Note’s timber is another ‘quality’ of sound that is required to be set for some instruments. Sound color of piano changes depending on how hard you hit the key.
34
‘Note on’ and ‘Note off’
‘Note on’ message is almost always accompanied by a matching ‘Note off’ message. We sow in previous slides how the details of ‘Note on’ message. The MIDI system allowas two ways of turning a note off. It’s own note off message, with data being the note number and the velocity being how quickly it was released. Some devices may ignore this value while other ones may set it to a fixed value typically set to 0. Turning a note off message by seinding a note on message with note on velocity set to 0.
35
‘Note on’ and ‘Note off’
Any system receiving MID should be capable of coping with both methods of running a note off. If there is not a note off message that matches a previous note on message, a note can become stuck.
36
Hexadecimal Notation Sign Magnitude One’s Complement Two’s Complement
There are several different binary number representational conventions for signed and unsigned numbers. Most notable are: . Hexadecimal Notation Decimal Value Sign Magnitude One’s Complement Two’s Complement +7 0111 +6 0110 +5 0101 +4 0100 +3 0011 +2 0010 +1 0001 +0 0000 -0 1000 1111 - -1 1001 1110 -2 1010 1101 -3 1011 1100 -4 -5 -6 -7 -8 Sign Magnitude One’s Complement Two’s Complement Example of 4-bit signed numbers is presented in the Table for three formats listed above: Example Table of 4 bit number representations
37
Hexadecimal Notation Binary Decimal Hexadecimal 0000 0001 1 0010 2
0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 Binary Decimal Hexadecimal 1000 8 1001 9 1010 10 A 1011 11 B 1100 12 C 1101 13 D 1110 14 E 1111 15 F
38
MIDI Connections There are 3 types of MIDI sockets on the device:
IN OUT THRU When connecting different devices, a MIDI OUT must be connected to a MIDI IN. MDI THRU is a copy of the single on the MIDI IN and can be used chin one MIDI OUT to several device:
39
MIDI Connections
40
Arduino Implementation of MIDI
Arduino has a UART built in. It uses it to upload music and send and receive serial data. By setting appropriate serial interface to the correct bound rate, one can Send to, Listen to, any standard MIDI device.
41
Software MIDI Output Driving MIDI is done through a C program described next: /* Generating MIDI output * Sending MIDI serial data, automatically for a test */ # define midiChannel (byte) 0 // Channel #1 void setup() { // Setting up Serial Port (UART) Serial.begin(31250); // MIDI Speed } void loop() { int val; val = random(20, 100); noteSend(0x90, val, 127); // note on delay(200); noteSend(0x80, val, 127); //note off delay(800); // playing a MIDI note void noteSend(char cmd, char data1, char data2) { cmd = cmd | char(midiChannel); // merge channel number Serial.write(cmd); Serial.write(data1); Serial.write(data2);
42
Software MIDI Input /* MIDI Input * Listen for MIDI Serial Port */
byte channel = 1; // MIDI channel - #2 void setup() { pinMode(13, OUTPUT); // LED to light up digitalWrite(13, LOW); // Turn LED off Serial.begin(31250); // start serial port } void loop () { checkIn(); // input arrivals void checkIn() { static int state = 0; // 0 – command waiting // 1 – note waiting // 2 – velocity waiting static char note = 60; static Boolean noteDown = LOW;
43
if (Serial.avialble() > 0) {
byte icommingByte = Serial.read(); switch (state) { case 0: // status-byte, note on if (incommingByte == ( 0x90 | channel)) { noteDown = HIGH; state = 1; } // status-byte, note off ( 0x80 | channel)) { noteDown = LOW;
44
case 1: // note to play or stop if (incommingByte < 128) { note = incommingByte; state = 2; } else { state = 0 break; case 2: doNote(note, incommingByte, noteDown); state = 0; // reset state machine
45
Software MIDI Input void doNote(byte note, byte velocity, boolean down) { // if velocity = 0 on a ‘Note ON’ command, treat it as a note off if ((down == HIGH) && 9velocity == 0)) { down = LOW); } // doing something with a note message // toggling Pin 13 and ignoring the note value and velocity digitalWrite(13, down);
46
Additional Notes on MIDI
47
Additional Notes on MIDI
We have seen previously the implementation on NOTE ON and NOTE OFF messages. They are going to be essential in playing the notes (sounds). MIDI controller is a device that can control an aspect of a sound: Volume, Vibrato, Position of the instrument on a stage, etc. Two types of messages: A channel message aimed a one playing channel, and A system message aimed at the whole system.
48
Additional Notes on MIDI
There are 5 types of channel messages related to voice. Note on/Note off Controller change Program Change Pitch bend Aftertouch
49
Additional Notes on MIDI
We already have discussed note on/note off messages. For full specification of MIDI see this web site:
50
Controller Change MIDI Messages
A method for providing a control change. Up to 120 controllers on each MIDI channel. Associated with each channel is a number with a value between 0 – 127. Controller channel usages: ON/OFF switching, etc. 1 Message Top bit set means this is a message number Channel Value = 11 = 0xB Controller Change Value = 2 = 0x2 Chanel 3
51
Controller Change MIDI Messages
1 1 1 1 1 Top bit is set to 0 It means is a data value Value = 61 = 0x3D Controller 61 1 Value = 64 = 0x40 Controller 64
52
Controller Change MIDI Messages
Controller Channel (CC) message: CC120 (all sounds off) and CC123 (all notes off) look rather similar. The CC123 message will have no effect on a note sustained due to unresolved CC64 (sustain peddle hold) or CC65 (Partamento Pedal). As opposed to CC120 that will change the effect.
53
Controller Channel Message
Value Meaning 120 All sounds off – turn all notes on this channel off. 121 Reset all controllers to their default values. 122 Local control off – respond only to MIDI messages. 127 Local control on – respond to local inputs like a keyboard. 123 All notes off. 124 Omni mode off. 125 Omni mode on. 126 M Mono mode on (poly mode off) where M is the number of channels Poly mode on (mono mode off). Mote the last four message also cause all notes to be off.
54
Channel Controller Messages
Recommended standard that helps interconnectivity as shown in the next Table. Controller Number Function Bank Select MSB 32 Bank Select LSB 1 Modulation MSB 33 Modulation LSB 2 Breath Control MSB 34 Breath Control LSB 4 Foot Pedal MSB 36 Foot Pedal LSB 5 Portamento Time MSB 37 Portamento Time LSB 6 Data Entry MSB 38 Data Entry LSB 7 Channel Volume MSB 39 Channel Volume LSB 8 Balance MSB 40 Balance LSB 10 Pan MSB 42 Pan LSB 11 Expression MSB 43 Expression LSB 12 Effect-Type Selector #1 44 Undefined
55
13 Effect-Type Selector #2 45 Undefined 16 General Purpose 1 MSB 48 General Purpose 1 LSB 27 General Purpose 2 MSB 49 General Purpose 2 LSB 28 General Purpose 3 MSB 50 General Purpose 3 LSB 29 General Purpose 4 MSB 51 General Purpose 4 LSB 64 Sustained Pedal (On/Off) 65 Portamento Pedal (On/Off) 66 67 Soft Pedal (On/Off) 68 Legato Pedal (On/Off) 69 Hold 2 (On/Off) 70 Sound Control 1 (Sound Variation) 71 Sound Control 2 (Harmonic Content) 72 Sound Control 3 (Release Time) 73 Sound Control 4 (Attack Time) 74 Sound Control 5 (Brightness) 75-79 Sound Control 6-10 (Undefined)
56
Controller Number Function 80 General Purpose 5 81 General Purpose 6 82 General Purpose 7 83 General Purpose 8 84 Portamento Control 91 Reverb Depth 92 Tremolo Depth 93 Chorus Depth 94 Celeste Detune Depth 95 Phaser Depth 96 Data Increment 97 Data Depth 98 NRPN LSB 99 NRPN MSB 100 RPN LSB 101 RPN MSB
57
Program Change MIDI Messages
The program change message sets up the voice a MIDI sound module will play in. It is a two-byte message: First byte contains the message number and a channel Second byte represents the number of the new voice. 1 Message Top bit set means this is a message number Channel Value = 14 = 0xC Program Change Value = 10 = 0x11 Chanel 11
58
Program Change MIDI Messages
Program Change Message 1 Top bit clear means this is a data value Value = 70 = 0x4D = Instrument 71 = Bassoon
59
General MIDI 1 Sound Set General MIDI's most recognized feature is the defined list of sounds (or "patches"). Each manufacturer must insure that their sounds provide an acceptable representation of song data written for General MIDI. The names of the instruments indicate what sort of sound will be heard when that instrument number (MIDI Program Change or "PC#") is selected on the GM1 synthesizer. These sounds are the same for all MIDI Channels except Channel 10, which has only "percussion" sounds. However, General MIDI does not actually define the way the sound will be reproduced, only the name of that sound. Though this can obviously result in wide variations in performance from the same song data on different GM sound sources, the authors of General MIDI felt it important to allow each manufacturer to have their own ideas and express their personal aesthetics when it comes to picking the exact timbres for each sound.
60
General MIDI 1 Sound Se Just like channel numbers, instrument numbers run from (actual values range from 0-127). General MIDI defines voice number ranges into families of instruments shown in the Table below. Range Family Name 1-8 Piano 9-16 Chromatic Percussion 17-24 Organ 25-32 Guitar 34-40 Bass 42-48 Strings 49-56 Ensemble 57-64 Brass 65-72 Reed 73-80 Pipe 81-88 Synth Lead 89-96 Synth Pad 97-104 Synth Effects Ethnic Percussive Sound Effects
61
General MIDI Level 1 Instrument Families
The voices for the first group in the previous table, e.g., Piano, are split over the first eight values are shown in the Table below: Range Family Name 1 Acoustic Grand Piano 2 Bright Acoustic Piano 3 Electric Grand Piano 4 Honky-tonk Piano 5 Electric Piano 1 6 Electric Piano 2 7 Harpsichord 8 Clavi
62
General MIDI Level 1 Instrument Patch Map
Note: While GM1 does not define the actual characteristics of any sounds, the names in parentheses after each of the synth leads, pads, and sound effects are, in particular, intended only as guides). PC# Instrument Name 1. Acoustic Grand Piano 20. Church Organ 2. Bright Acoustic Piano 21. Reed Organ 3. Electric Grand Piano 22. Accordion 4. Honky-tonk Piano 23. Harmonica 5. Electric Piano 1 24. Tango Accordion 6. Electric Piano 2 25. Acoustic Guitar (nylon) 7. Harpsichord 26. Acoustic Guitar (steel) 8. Clavi 27. Electric Guitar (jazz) 9. Celesta 28. Electric Guitar (clean) 10. Glockenspiel 29. Electric Guitar (muted) 11. Music Box 30. Overdriven Guitar 12. Vibraphone 31. Distortion Guitar 13. Marimba 32. Guitar harmonics 14. Xylophone 33. Acoustic Bass 15. Tubular Bells 34. Electric Bass (finger) 16. Dulcimer 35. Electric Bass (pick) 17. Drawbar Organ 36. Fretless Bass 18. Percussive Organ 37. Slap Bass 1 19. Rock Organ 38. Slap Bass 2 39. Synth Bass 1
63
40. Synth Bass 2 66. Alto Sax 42. Viola 67. Tenor Sax 43. Cello 68. Baritone Sax 44. Contrabass 69. Oboe 45. Tremolo Strings 70. English Horn 46. Pizzicato Strings 71. Bassoon 47. Orchestral Harp 72. Clarinet 48. Timpani 73. Piccolo 49. String Ensemble 1 74. Flute 50. String Ensemble 2 75. Recorder 51. SynthStrings 1 76. Pan Flute 52. SynthStrings 2 77. Blown Bottle 53. Choir Aahs 78. Shakuhachi 54. Voice Oohs 79. Whistle 55. Synth Voice 80. Ocarina 56. Orchestra Hit 81. Lead 1 (square) 57. Trumpet 82. Lead 2 (sawtooth) 58. Trombone 83. Lead 3 (calliope) 59. Tuba 84. Lead 4 (chiff) 60. Muted Trumpet 85. Lead 5 (charang) 61. French Horn 86. Lead 6 (voice) 62. Brass Section 87. Lead 7 (fifths) 63. SynthBrass 1 88. Lead 8 (bass + lead) 64. SynthBrass 2 89. Pad 1 (new age) 65. Soprano Sax 90. Pad 2 (warm)
64
91. Pad 3 (polysynth) 116. Woodblock 92. Pad 4 (choir) 117. Taiko Drum 93. Pad 5 (bowed) 118. Melodic Tom 94. Pad 6 (metallic) 119. Synth Drum 95. Pad 7 (halo) 120. Reverse Cymbal 96. Pad 8 (sweep) 121. Guitar Fret Noise 97. FX 1 (rain) 122. Breath Noise 98. FX 2 (soundtrack) 123. Seashore 99. FX 3 (crystal) 124. Bird Tweet 100. FX 4 (atmosphere) 125. Telephone Ring 101. FX 5 (brightness) 126. Helicopter 102. FX 6 (goblins) 127. Applause 103. FX 7 (echoes) 128. Gunshot 104. FX 8 (sci-fi) 105. Sitar 106. Banjo 107. Shamisen 108. Koto 109. Kalimba 110. Bag pipe 111. Fiddle 112. Shanai 113. Tinkle Bell 114. Agogo 115. Steel Drums
65
General MIDI Level 1 Percussion Key Map
On MIDI Channel 10, each MIDI Note number ("Key#") corresponds to a different drum sound, as shown below. GM-compatible instruments must have the sounds on the keys shown here. While many current instruments also have additional sounds above or below the range show here, and may even have additional "kits" with variations of these sounds, only these sounds are supported by General MIDI Level 1 devices. Key# Drum Sound 35 Acoustic Bass Drum 36 Bass Drum 1 37 Side Stick 38 Acoustic Snare 39 Hand Clap 40 Electric Snare 41 Low Floor Tom 42 Closed Hi Hat 43 High Floor Tom 44 Pedal Hi-Hat 45 Low Tom 46 Open Hi-Hat
66
47 Low-Mid Tom 70 Maracas 48 Hi-Mid Tom 71 Short Whistle 49 Crash Cymbal 1 72 Long Whistle 50 High Tom 73 Short Guiro 51 Ride Cymbal 1 74 Long Guiro 52 Chinese Cymbal 75 Claves 53 Ride Bell 76 Hi Wood Block 54 Tambourine 77 Low Wood Block 55 Splash Cymbal 78 Mute Cuica 56 Cowbell 79 Open Cuica 57 Crash Cymbal 2 80 Mute Triangle 58 Vibraslap 81 Open Triangle 59 Ride Cymbal 2 60 Hi Bongo 61 Low Bongo 62 Mute Hi Conga 63 Open Hi Conga 64 Low Conga 65 High Timbale 66 Low Timbale 67 High Agogo 68 Low Agogo 69 Cabasa
67
Pitch Bend MIDI Messages
68
Changing the Pitch of a Note
Three-byte message, with two bytes of what follows form the 14-bit value. 1 Message Top bit set means this is a message number Channel Value = 14 = 0xC Pitch Bend Value = 15 = 0xE Chanel 16 First byte (8 bit)
69
Changing the Pitch of a Note
Three-byte message, with two bytes that follow form the 14-bit value to use. 1 Top bit clear means this is a data value Value = 107 (or 0x68) 1 1 1 Value = 82 (or 0x52) Second (8 bits) and Third (8 bits)
70
Changing the Pitch of a Note
Three-byte message, with two bytes that follow form the 14-bit value. The data format follows the “little endian” format with the LSB first. 1 1 1 1 1 1 1 1 Pitch Bend Value = 0x296B = 10603
71
Aftertouch MIDI Messages
72
Aftertouch Messages 1 Message Channel
The last of the channel voice messages is the Aftertouch message. This message will determine how hard one presses down on the keys. There are two types of Aftertouch message: Monophonic (all keys have only one pressure-sensitive sensor) Polyphonic (each key has individual pressure-sensitive sensor) 1 Message Top bit set means this is a message number Channel Value = 13 = 0xD Aftertouch Value = 0 = 0x0 Chanel 1 First byte (8 bit)
73
Aftertouch Messages 1 Top bit clear means this is a data value Value = 67 = 0x43 = Value of 67 = Pressure Value of 63 The pressure values do not correspond to any absolute measure; they are relative readings with 127 corresponding to highest value and 0 indicating the lightest of touchers. Note that if you change the pressure while holding donw a note, a new Aftertouch message will be generated.
74
System MIDI Messages
75
System MIDI Messages 1 Message Channel
The other class of MIDI messages is the system message. They are messages that target the whole System as opposed to individual channels. With the system messages there is no need to specify channel and the lower part of the message now represents the type of system message. 1 Message Top bit set means this is a message number Channel Value = 15 = 0xF System message Reset
76
Anatomy of System Messages
Most of System Messages have only on byte; 0xFF. There are three groups of system messages: System real-time System common System exclusive
77
System Real-Time Messages
System Real-Time messages are used to synchronize the timing between several MIDI devices or between a device and a recording system. Five types of messages: System Reset (0xFF) – Device can wipe their memory clean. MIDI Clock (0xF8) – it is send 24 times per quarter of a note. It is used as a metronome that forces the receiving device to keep the same time as the sending device. Start (0xFA) , Stop (0xFC), Continue (oxF9) – Used for controlling sequences. Active Sensing (0xFE) – This is optional command that once it is send the receiver will expect to see a message like this three times a second. If the receiver stops getting these messages, it assumes something is wrong and shuts down turning all notes off. Reserved (0xF9) – This message is reserved for future revisions.
78
System Common Messages
Controlling and synchronizing other devices. MIDI Time Code (0xF1 + one data) – This is 100 pulses per second system used to synchronize MIDI with audio or video. Song Pointer (0x2 + two data) – This is a 14-bit value that records how many MIDI beats there have been since the start of the song. One MIDI beat consists of six MIDI clocks. Song Selector (0xF3 + one data) – This specififies which sequence or song is to be played or in the case of a drum machine what chain of patterns. Tune Request (0xF6) – A message to ask analogue synthesizer to retune their oscillators. Reserved (0xF4 & 0xF5) – Two unused messages.
79
System Exclusive Messages
System Exclusive messages are the most complex messages on a MIDI system. Those messages are typically used to tell devices to load or save sound samples or other data. A device should only respond to its own manufacturers ID number.
80
………………….. ………………….. ………………….. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Top bit set means this is a message number 1 1 1 1 Value = 0xF0 = Start SysEx message Top bit clear means this is data message 1 1 1 1 Value = 0x96 = Manufacturers ID code 1 1 1 1 1 1 1 1 ………………….. ………………….. Other bytes of data ………………….. 1 1 1 1 1 1 1 Value = 0xF7 = End SysEx message
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.