NiCMidi 1.1.0
A MIDI library derived from J.D.Koftinoff jdksmidi
|
These are the enum used by the library to avoid MIDI hexadecimal values. More...
Channel status bytes | |
enum | : unsigned char { NOTE_OFF =0x80 , NOTE_ON =0x90 , POLY_PRESSURE =0xa0 , CONTROL_CHANGE =0xb0 , PROGRAM_CHANGE =0xc0 , CHANNEL_PRESSURE =0xd0 , PITCH_BEND =0xe0 , SYSEX_START =0xf0 , MTC =0xf1 , SONG_POSITION =0xf2 , SONG_SELECT =0xf3 , TUNE_REQUEST =0xf6 , SYSEX_END =0xf7 , RESET =0xff , META_EVENT =0xff } |
These are the type values for a MIDI channel message. More... | |
MIDI Real Time Messages | |
enum | : unsigned char { RT_TIMING_CLOCK =0xf8 , RT_MEASURE_END =0xf9 , RT_START =0xfa , RT_CONTINUE =0xfb , RT_STOP =0xfc , RT_ACTIVE_SENSE =0xfe } |
These bytes are used for quick one-byte messages intended to be sent during playback. More... | |
GM Controller Numbers | |
enum | : unsigned char { C_LSB =0x20 , C_GM_BANK =0x00 , C_MODULATION =0x01 , C_BREATH =0x02 , C_FOOT =0x04 , C_PORTA_TIME =0x05 , C_DATA_ENTRY =0x06 , C_MAIN_VOLUME =0x07 , C_BALANCE =0x08 , C_PAN =0x0a , C_EXPRESSION =0x0b , C_GENERAL_1 =0x10 , C_GENERAL_2 =0x11 , C_GENERAL_3 =0x12 , C_GENERAL_4 =0x13 , C_DAMPER =0x40 , C_PORTA =0x41 , C_SOSTENUTO =0x42 , C_SOFT_PEDAL =0x43 , C_HOLD_2 =0x45 , C_GENERAL_5 =0x50 , C_GENERAL_6 =0x51 , C_GENERAL_7 =0x52 , C_GENERAL_8 =0x53 , C_EFFECT_DEPTH =0x5b , C_TREMELO_DEPTH =0x5c , C_CHORUS_DEPTH =0x5d , C_CELESTE_DEPTH =0x5e , C_PHASER_DEPTH =0x5f , C_DATA_INC =0x60 , C_DATA_DEC =0x61 , C_NRPN_LSB =0x62 , C_NRPN_MSB =0x63 , C_RPN_LSB =0x64 , C_RPN_MSB =0x65 , C_ALL_SOUND_OFF =0x78 , C_RESET =0x79 , C_LOCAL =0x7a , C_ALL_NOTES_OFF =0x7b , C_OMNI_OFF =0x7c , C_OMNI_ON =0x7d , C_MONO =0x7e , C_POLY =0x7f } |
General MIDI standardized controller numbers. More... | |
Registered Parameter Numbers | |
enum | : unsigned char { RPN_BEND_WIDTH =0x00 , RPN_FINE_TUNE =0x01 , RPN_COARSE_TUNE =0x02 } |
These bytes are used by the GS standard in a RPN Control Change message. More... | |
META Event types | |
enum | : unsigned char { META_SEQUENCE_NUMBER = 0x00 , META_GENERIC_TEXT = 0x01 , META_COPYRIGHT = 0x02 , META_TRACK_NAME = 0x03 , META_INSTRUMENT_NAME = 0x04 , META_LYRIC_TEXT = 0x05 , META_MARKER_TEXT = 0x06 , META_CUE_TEXT = 0x07 , META_PROGRAM_NAME = 0x08 , META_DEVICE_NAME = 0x09 , META_GENERIC_TEXT_A = 0x0A , META_GENERIC_TEXT_B = 0x0B , META_GENERIC_TEXT_C = 0x0C , META_GENERIC_TEXT_D = 0x0D , META_GENERIC_TEXT_E = 0x0E , META_GENERIC_TEXT_F = 0x0F , META_CHANNEL_PREFIX = 0x20 , META_OUTPUT_CABLE = 0x21 , META_END_OF_TRACK = 0x2F , META_TEMPO = 0x51 , META_SMPTE = 0x54 , META_TIMESIG = 0x58 , META_KEYSIG = 0x59 , META_SEQUENCER_SPECIFIC = 0x7F } |
This is the byte 1 (after the status) of a message with status 0xff (MIDI meta event). More... | |
These are the enum used by the library to avoid MIDI hexadecimal values.
anonymous enum : unsigned char |
#include <midi.h>
These are the type values for a MIDI channel message.
For a channel message (with status byte between 0x80 ... 0xef) only the upper four bits of the status determine its type (while lower four bits represent the channel); all status bytes between 0xf0 ... 0xff are considered system messages. You can use these in the MIDIMessage::SetType() method.
Enumerator | |
---|---|
NOTE_OFF | Note off. |
NOTE_ON | Note on. |
POLY_PRESSURE | Polyphonic (aftertouch) pressure. |
CONTROL_CHANGE | Control change. |
PROGRAM_CHANGE | Program (patch) change. |
CHANNEL_PRESSURE | Channel (afertouch) pressure. |
PITCH_BEND | Pitch bend. |
SYSEX_START | Start of a sysex. |
MTC | MIDI Time Code. |
SONG_POSITION | Song Position pointer. |
SONG_SELECT | Song Select Pointer. |
TUNE_REQUEST | Tune request. |
SYSEX_END | End of a sysex. |
RESET | 0xff never used as reset in a MIDIMessage |
META_EVENT | Meta event. |
anonymous enum : unsigned char |
#include <midi.h>
These bytes are used for quick one-byte messages intended to be sent during playback.
anonymous enum : unsigned char |
#include <midi.h>
General MIDI standardized controller numbers.
They are stored in the first data byte of a Control Change message; the last ones (between 0x78 ... 0x7f) are the channel mode messages. You can use these in the MIDIMessage::SetController() method.
anonymous enum : unsigned char |
#include <midi.h>
These bytes are used by the GS standard in a RPN Control Change message.
Enumerator | |
---|---|
RPN_BEND_WIDTH | bender sensitivity |
RPN_FINE_TUNE | fine tuning |
RPN_COARSE_TUNE | coarse tuning |
anonymous enum : unsigned char |
#include <midi.h>
This is the byte 1 (after the status) of a message with status 0xff (MIDI meta event).
These types are the same as MIDIFile meta-events. When the data length is <= 2 bytes the library stores data in bytes 2 and 3 of the MIDIMessage, otherwise in the MIDISystemExclusive object attached to it. So the format of the meta-events in a MIDIMessage class will be different than the standard MIDIFile meta-events. You can use these in the MIDIMessage::SetMetaType() method.
Enumerator | |
---|---|
META_SEQUENCE_NUMBER | Defines the pattern number of a Type 2 MIDI file or the number of a sequence in a Type 0 or Type 1 MIDI file. Should always have a delta time of 0 and come before all MIDI Channel Events and non-zero delta time events. The data length is 2 bytes. |
META_GENERIC_TEXT | This and the following are used for embedding ascii text in a MIDI file. They have variable data length (stored in the sysex object). |
META_COPYRIGHT | Text: copyright. |
META_TRACK_NAME | Text: track name. |
META_INSTRUMENT_NAME | Text: instrument name. |
META_LYRIC_TEXT | Text: lyric. |
META_MARKER_TEXT | Text: marker. |
META_CUE_TEXT | Text: cue point. |
META_PROGRAM_NAME | Text: program name. |
META_DEVICE_NAME | Text: device name. |
META_GENERIC_TEXT_A | Text: generic a. |
META_GENERIC_TEXT_B | Text: generic b. |
META_GENERIC_TEXT_C | Text: generic c. |
META_GENERIC_TEXT_D | Text: generic d. |
META_GENERIC_TEXT_E | Text: generic e. |
META_GENERIC_TEXT_F | Text: generic f. |
META_CHANNEL_PREFIX | Associates a MIDI channel with following meta events. Its effect is terminated by another MIDI Channel Prefix event or any non-Meta event. It is often used before an Instrument Name Event to specify which channel an instrument name represents. The data length is 1 byte. |
META_OUTPUT_CABLE | This may be used in multiport environments to associate a track with a specific port. The data length is 1 byte. |
META_END_OF_TRACK | The end of track marker in a MIDI file (also used in the MIDITrack object). The data length is 0 byte. |
META_TEMPO | Specifies a tempo change and has a length of 3 bytes. The data is a 3-byte integer, the number of microseconds for a quarter note. The MIDIMessage::GetTempo() method converts it into the usual bpm value (a double). |
META_SMPTE | Specifies the initial SMPTE offset of the beginning of playback. It has 5 data bytes (stored in the sysex object) which denote hours, minutes, second frames and subframes of the SMPTE. |
META_TIMESIG | Specifies a musical time signature change. It has 4 data bytes (stored in the sysex object) which denote the time numerator, the denominator power of two (1->2, 2->4, 3->8 etc), the metronome note(24 = quarter, 12 = eigth, 36 dotted quarter etc) and the number of 32th for a quarter note (usually 8, but you are allowed to change this). The MIDIMessage::GetTimeSigNumerator() and MidiMessage::GetTimeSigDenominator() methods give you the timesig numerator and denominator. |
META_KEYSIG | Specifies a musical key signature change. It has 2 data bytes: the 1st is a signed char denoting the number of accidents (-7 = 7 flats, 0 = no accidents, +7 = 7 sharps), the second is the mode (0 = major, 1 = minor). |
META_SEQUENCER_SPECIFIC | Used to give informations specific to a hardware or software sequencer. The first Data byte (or three bytes if the first byte is 0) specifies the manufacturer's ID and the following bytes contain information specified by the manufacturer. Currently is ignored by the library. |