BEAST/BSE - Better Audio System and Sound Engine
0.8.2
|
00001 // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html 00002 #ifndef __BSE_MIDI_EVENT_H__ 00003 #define __BSE_MIDI_EVENT_H__ 00004 00005 #include <bse/bseobject.hh> 00006 00007 G_BEGIN_DECLS 00008 00009 /* --- MIDI constants --- */ 00010 #define BSE_MIDI_MAX_CHANNELS (99) 00011 00012 00013 /* --- MIDI event types --- */ 00014 #define BSE_MIDI_CHANNEL_VOICE_MESSAGE(s) ((s) < 0x0F0) 00015 #define BSE_MIDI_SYSTEM_COMMON_MESSAGE(s) (((s) & 0x0F8) == 0x0F0) 00016 #define BSE_MIDI_SYSTEM_REALTIME_MESSAGE(s) (((s) & 0x0F8) == 0x0F8) 00017 typedef enum 00018 { 00019 /* channel voice messages */ 00020 BSE_MIDI_NOTE_OFF = 0x080, /* 7bit note, 7bit velocity */ 00021 BSE_MIDI_NOTE_ON = 0x090, /* 7bit note, 7bit velocity */ 00022 BSE_MIDI_KEY_PRESSURE = 0x0A0, /* 7bit note, 7bit intensity */ 00023 BSE_MIDI_CONTROL_CHANGE = 0x0B0, /* 7bit ctl-nr, 7bit value */ 00024 BSE_MIDI_PROGRAM_CHANGE = 0x0C0, /* 7bit prg-nr */ 00025 BSE_MIDI_CHANNEL_PRESSURE = 0x0D0, /* 7bit intensity */ 00026 BSE_MIDI_PITCH_BEND = 0x0E0, /* 14bit signed: 7lsb, 7msb */ 00027 /* system common messages */ 00028 BSE_MIDI_SYS_EX = 0x0F0, /* data... (without final 0x7F) */ 00029 BSE_MIDI_SONG_POINTER = 0x0F2, /* 14bit pointer: 7lsb, 7msb */ 00030 BSE_MIDI_SONG_SELECT = 0x0F3, /* 7bit song-nr */ 00031 BSE_MIDI_TUNE = 0x0F6, 00032 BSE_MIDI_END_EX = 0x0F7, 00033 /* system realtime messages */ 00034 BSE_MIDI_TIMING_CLOCK = 0x0F8, 00035 BSE_MIDI_SONG_START = 0x0FA, 00036 BSE_MIDI_SONG_CONTINUE = 0x0FB, 00037 BSE_MIDI_SONG_STOP = 0x0FC, 00038 BSE_MIDI_ACTIVE_SENSING = 0x0FE, 00039 BSE_MIDI_SYSTEM_RESET = 0x0FF, 00040 /* midi file meta events */ 00041 BSE_MIDI_SEQUENCE_NUMBER = 0x100, /* 16bit sequence number (msb, lsb) */ 00042 BSE_MIDI_TEXT_EVENT = 0x101, /* 8bit text */ 00043 BSE_MIDI_COPYRIGHT_NOTICE = 0x102, /* 8bit text */ 00044 BSE_MIDI_TRACK_NAME = 0x103, /* 8bit text */ 00045 BSE_MIDI_INSTRUMENT_NAME = 0x104, /* 8bit text */ 00046 BSE_MIDI_LYRIC = 0x105, /* 8bit text */ 00047 BSE_MIDI_MARKER = 0x106, /* 8bit text */ 00048 BSE_MIDI_CUE_POINT = 0x107, /* 8bit text */ 00049 BSE_MIDI_TEXT_EVENT_08 = 0x108, /* 8bit text */ 00050 BSE_MIDI_TEXT_EVENT_09 = 0x109, /* 8bit text */ 00051 BSE_MIDI_TEXT_EVENT_0A = 0x10A, /* 8bit text */ 00052 BSE_MIDI_TEXT_EVENT_0B = 0x10B, /* 8bit text */ 00053 BSE_MIDI_TEXT_EVENT_0C = 0x10C, /* 8bit text */ 00054 BSE_MIDI_TEXT_EVENT_0D = 0x10D, /* 8bit text */ 00055 BSE_MIDI_TEXT_EVENT_0E = 0x10E, /* 8bit text */ 00056 BSE_MIDI_TEXT_EVENT_0F = 0x10F, /* 8bit text */ 00057 BSE_MIDI_CHANNEL_PREFIX = 0x120, /* 8bit channel number (0..15) */ 00058 BSE_MIDI_END_OF_TRACK = 0x12F, 00059 BSE_MIDI_SET_TEMPO = 0x151, /* 24bit usecs-per-quarter-note (msb first) */ 00060 BSE_MIDI_SMPTE_OFFSET = 0x154, /* 8bit hour, minute, second, frame, 100th-frame-fraction */ 00061 BSE_MIDI_TIME_SIGNATURE = 0x158, /* 8bit numerator, -ld(1/denominator), metro-clocks, 32nd-npq */ 00062 BSE_MIDI_KEY_SIGNATURE = 0x159, /* 8bit sharpsflats, majorminor */ 00063 BSE_MIDI_SEQUENCER_SPECIFIC = 0x17F, /* manufacturer specific sequencing data */ 00064 /* implementation specific add-ons */ 00065 BSE_MIDI_MULTI_SYS_EX_START = 0x201, /* BSE_MIDI_SYS_EX split across multiple events */ 00066 BSE_MIDI_MULTI_SYS_EX_NEXT = 0x202, /* continuation, last data byte of final packet is 0xF7 */ 00067 /* BSE specific extra events */ 00068 BSE_MIDI_X_CONTINUOUS_CHANGE = 0x400 00069 } BseMidiEventType; 00070 00071 00072 /* --- BSE MIDI Event --- */ 00073 #define BSE_TYPE_MIDI_EVENT (bse_midi_event_get_type ()) 00074 typedef struct 00075 { 00076 BseMidiEventType status; 00077 guint channel; /* 1 .. 16 for standard events */ 00078 guint64 delta_time; /* GSL tick stamp, SMF tpqn or SMTPE */ 00079 union { 00080 struct { 00081 gfloat frequency; 00082 gfloat velocity; /* or intensity: 0..+1 */ 00083 } note; 00084 struct { 00085 guint control; /* 0..0x7f */ 00086 gfloat value; /* -1..+1 */ 00087 } control; 00088 guint program; /* 0..0x7f */ 00089 gfloat intensity; /* 0..+1 */ 00090 gfloat pitch_bend; /* -1..+1 */ 00091 guint song_pointer; /* 0..0x3fff */ 00092 guint song_number; /* 0..0x7f */ 00093 /* meta event data */ 00094 struct { 00095 guint8 *bytes; 00096 guint n_bytes; 00097 } sys_ex; /* sys-ex variants and sequencer-specific */ 00098 guint sequence_number; /* 0..0xffff */ 00099 gchar *text; 00100 guint usecs_pqn; /* micro seconds per quarter note */ 00101 struct { 00102 guint8 hour, minute, second; 00103 guint8 frame, fraction; /* fraction is always 100th of a frame */ 00104 } smpte_offset; 00105 struct { 00106 guint denominator; 00107 guint8 numerator; 00108 guint8 metro_clocks; /* # MIDI clocks in a metronome click */ 00109 guint8 notated_32nd; /* # of notated 32nd notes per quarter note */ 00110 } time_signature; 00111 struct { 00112 guint16 n_flats; /* there's not n_sharps and n_flats at the same time */ 00113 guint16 n_sharps; 00114 guint major_key : 1; /* dur */ 00115 guint minor_key : 1; /* moll */ 00116 } key_signature; 00117 /* implementation specific */ 00118 guint zprefix; 00119 } data; 00120 } BseMidiEvent; 00121 00122 00123 /* --- API --- */ 00124 GType bse_midi_event_get_type (void); /* boxed */ 00125 BseMidiEvent* bse_midi_alloc_event (void); 00126 BseMidiEvent* bse_midi_copy_event (const BseMidiEvent *src); 00127 void bse_midi_free_event (BseMidiEvent *event); 00128 BseMidiEvent* bse_midi_event_note_on (uint midi_channel, 00129 uint64 delta_time, 00130 float frequency, 00131 float velocity); 00132 BseMidiEvent* bse_midi_event_note_off (uint midi_channel, 00133 uint64 delta_time, 00134 gfloat frequency); 00135 BseMidiEvent* bse_midi_event_signal (uint midi_channel, 00136 uint64 delta_time, 00137 BseMidiSignalType signal_type, 00138 float value); 00139 00140 00141 /* --- MIDI Signals --- */ 00142 #if 0 00143 typeNOTdef enum /*< prefix=BSE_MIDI_SIGNAL >*/ /* FIXME: sync to bserecords.sfidl */ 00144 { 00145 /* special cased signals */ 00146 BSE_MIDI_SIGNAL_PROGRAM = 1, /*< nick=Program Change >*/ /* 7bit */ 00147 BSE_MIDI_SIGNAL_PRESSURE, /*< nick=Channel Pressure >*/ /* 7bit */ 00148 BSE_MIDI_SIGNAL_PITCH_BEND, /*< nick=Pitch Bend >*/ /* 14bit */ 00149 BSE_MIDI_SIGNAL_VELOCITY, /*< nick=Note Velocity >*/ 00150 BSE_MIDI_SIGNAL_FINE_TUNE, /*< nick=Note Fine Tune >*/ 00151 /* 14bit, continuous controls */ 00152 BSE_MIDI_SIGNAL_CONTINUOUS_0 = 64, /*< nick=Bank Select >*/ 00153 BSE_MIDI_SIGNAL_CONTINUOUS_1, /*< nick=Modulation Depth >*/ 00154 BSE_MIDI_SIGNAL_CONTINUOUS_2, /*< nick=Breath Control >*/ 00155 BSE_MIDI_SIGNAL_CONTINUOUS_3, /*< nick=Continuous 3 >*/ 00156 BSE_MIDI_SIGNAL_CONTINUOUS_4, /*< nick=Foot Controller >*/ 00157 BSE_MIDI_SIGNAL_CONTINUOUS_5, /*< nick=Portamento Time >*/ 00158 BSE_MIDI_SIGNAL_CONTINUOUS_6, /*< nick=Data Entry >*/ 00159 BSE_MIDI_SIGNAL_CONTINUOUS_7, /*< nick=Volume >*/ 00160 BSE_MIDI_SIGNAL_CONTINUOUS_8, /*< nick=Balance >*/ 00161 BSE_MIDI_SIGNAL_CONTINUOUS_9, /*< nick=Continuous 9 >*/ 00162 BSE_MIDI_SIGNAL_CONTINUOUS_10, /*< nick=Panorama >*/ 00163 BSE_MIDI_SIGNAL_CONTINUOUS_11, /*< nick=Expression >*/ 00164 BSE_MIDI_SIGNAL_CONTINUOUS_12, /*< nick=Effect Control 1 >*/ 00165 BSE_MIDI_SIGNAL_CONTINUOUS_13, /*< nick=Effect Control 2 >*/ 00166 BSE_MIDI_SIGNAL_CONTINUOUS_14, /*< nick=Continuous 14 >*/ 00167 BSE_MIDI_SIGNAL_CONTINUOUS_15, /*< nick=Continuous 15 >*/ 00168 BSE_MIDI_SIGNAL_CONTINUOUS_16, /*< nick=General Purpose Controller 1 >*/ 00169 BSE_MIDI_SIGNAL_CONTINUOUS_17, /*< nick=General Purpose Controller 2 >*/ 00170 BSE_MIDI_SIGNAL_CONTINUOUS_18, /*< nick=General Purpose Controller 3 >*/ 00171 BSE_MIDI_SIGNAL_CONTINUOUS_19, /*< nick=General Purpose Controller 4 >*/ 00172 BSE_MIDI_SIGNAL_CONTINUOUS_20, /*< nick=Continuous 20 >*/ 00173 BSE_MIDI_SIGNAL_CONTINUOUS_21, /*< nick=Continuous 21 >*/ 00174 BSE_MIDI_SIGNAL_CONTINUOUS_22, /*< nick=Continuous 22 >*/ 00175 BSE_MIDI_SIGNAL_CONTINUOUS_23, /*< nick=Continuous 23 >*/ 00176 BSE_MIDI_SIGNAL_CONTINUOUS_24, /*< nick=Continuous 24 >*/ 00177 BSE_MIDI_SIGNAL_CONTINUOUS_25, /*< nick=Continuous 25 >*/ 00178 BSE_MIDI_SIGNAL_CONTINUOUS_26, /*< nick=Continuous 26 >*/ 00179 BSE_MIDI_SIGNAL_CONTINUOUS_27, /*< nick=Continuous 27 >*/ 00180 BSE_MIDI_SIGNAL_CONTINUOUS_28, /*< nick=Continuous 28 >*/ 00181 BSE_MIDI_SIGNAL_CONTINUOUS_29, /*< nick=Continuous 29 >*/ 00182 BSE_MIDI_SIGNAL_CONTINUOUS_30, /*< nick=Continuous 30 >*/ 00183 BSE_MIDI_SIGNAL_CONTINUOUS_31, /*< nick=Continuous 31 >*/ 00184 /* 14bit, special cased signals */ 00185 BSE_MIDI_SIGNAL_CONSTANT_HIGH = 96, /*< nick=Constant HIGH >*/ 00186 BSE_MIDI_SIGNAL_CONSTANT_CENTER, /*< nick=Constant CENTER >*/ 00187 BSE_MIDI_SIGNAL_CONSTANT_LOW, /*< nick=Constant LOW >*/ 00188 BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER, /*< nick=Constant Negative CENTER >*/ 00189 BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH, /*< nick=Constant Negative HIGH >*/ 00190 BSE_MIDI_SIGNAL_PARAMETER, /*< nick=Registered Parameter >*/ 00191 BSE_MIDI_SIGNAL_NON_PARAMETER, /*< nick=Non-Registered Parameter >*/ 00192 /* 7bit, literal channel controls, MSB values */ 00193 BSE_MIDI_SIGNAL_CONTROL_0 = 128, /*< nick=Control 0 Bank Select MSB >*/ 00194 BSE_MIDI_SIGNAL_CONTROL_1, /*< nick=Control 1 Modulation Depth MSB >*/ 00195 BSE_MIDI_SIGNAL_CONTROL_2, /*< nick=Control 2 Breath Control MSB >*/ 00196 BSE_MIDI_SIGNAL_CONTROL_3, 00197 BSE_MIDI_SIGNAL_CONTROL_4, /*< nick=Control 4 Foot Controller MSB >*/ 00198 BSE_MIDI_SIGNAL_CONTROL_5, /*< nick=Control 5 Portamento Time MSB >*/ 00199 BSE_MIDI_SIGNAL_CONTROL_6, /*< nick=Control 6 Data Entry MSB >*/ 00200 BSE_MIDI_SIGNAL_CONTROL_7, /*< nick=Control 7 Volume MSB >*/ 00201 BSE_MIDI_SIGNAL_CONTROL_8, /*< nick=Control 8 Balance MSB >*/ 00202 BSE_MIDI_SIGNAL_CONTROL_9, 00203 BSE_MIDI_SIGNAL_CONTROL_10, /*< nick=Control 10 Panorama MSB >*/ 00204 BSE_MIDI_SIGNAL_CONTROL_11, /*< nick=Control 11 Expression MSB >*/ 00205 BSE_MIDI_SIGNAL_CONTROL_12, /*< nick=Control 12 Effect Control 1 MSB >*/ 00206 BSE_MIDI_SIGNAL_CONTROL_13, /*< nick=Control 13 Effect Control 2 MSB >*/ 00207 BSE_MIDI_SIGNAL_CONTROL_14, 00208 BSE_MIDI_SIGNAL_CONTROL_15, 00209 BSE_MIDI_SIGNAL_CONTROL_16, /*< nick=Control 16 General Purpose Controller 1 MSB >*/ 00210 BSE_MIDI_SIGNAL_CONTROL_17, /*< nick=Control 17 General Purpose Controller 2 MSB >*/ 00211 BSE_MIDI_SIGNAL_CONTROL_18, /*< nick=Control 18 General Purpose Controller 3 MSB >*/ 00212 BSE_MIDI_SIGNAL_CONTROL_19, /*< nick=Control 19 General Purpose Controller 4 MSB >*/ 00213 BSE_MIDI_SIGNAL_CONTROL_20, 00214 BSE_MIDI_SIGNAL_CONTROL_21, 00215 BSE_MIDI_SIGNAL_CONTROL_22, 00216 BSE_MIDI_SIGNAL_CONTROL_23, 00217 BSE_MIDI_SIGNAL_CONTROL_24, 00218 BSE_MIDI_SIGNAL_CONTROL_25, 00219 BSE_MIDI_SIGNAL_CONTROL_26, 00220 BSE_MIDI_SIGNAL_CONTROL_27, 00221 BSE_MIDI_SIGNAL_CONTROL_28, 00222 BSE_MIDI_SIGNAL_CONTROL_29, 00223 BSE_MIDI_SIGNAL_CONTROL_30, 00224 BSE_MIDI_SIGNAL_CONTROL_31, 00225 /* 7bit, literal channel controls, LSB values */ 00226 BSE_MIDI_SIGNAL_CONTROL_32, /*< nick=Control 32 Bank Select LSB >*/ 00227 BSE_MIDI_SIGNAL_CONTROL_33, /*< nick=Control 33 Modulation Depth LSB >*/ 00228 BSE_MIDI_SIGNAL_CONTROL_34, /*< nick=Control 34 Breath Control LSB >*/ 00229 BSE_MIDI_SIGNAL_CONTROL_35, 00230 BSE_MIDI_SIGNAL_CONTROL_36, /*< nick=Control 36 Foot Controller LSB >*/ 00231 BSE_MIDI_SIGNAL_CONTROL_37, /*< nick=Control 37 Portamento Time LSB >*/ 00232 BSE_MIDI_SIGNAL_CONTROL_38, /*< nick=Control 38 Data Entry LSB >*/ 00233 BSE_MIDI_SIGNAL_CONTROL_39, /*< nick=Control 39 Volume LSB >*/ 00234 BSE_MIDI_SIGNAL_CONTROL_40, /*< nick=Control 40 Balance LSB >*/ 00235 BSE_MIDI_SIGNAL_CONTROL_41, 00236 BSE_MIDI_SIGNAL_CONTROL_42, /*< nick=Control 42 Panorama LSB >*/ 00237 BSE_MIDI_SIGNAL_CONTROL_43, /*< nick=Control 43 Expression LSB >*/ 00238 BSE_MIDI_SIGNAL_CONTROL_44, /*< nick=Control 44 Effect Control 1 LSB >*/ 00239 BSE_MIDI_SIGNAL_CONTROL_45, /*< nick=Control 45 Effect Control 2 LSB >*/ 00240 BSE_MIDI_SIGNAL_CONTROL_46, 00241 BSE_MIDI_SIGNAL_CONTROL_47, 00242 BSE_MIDI_SIGNAL_CONTROL_48, /*< nick=Control 48 General Purpose Controller 1 LSB >*/ 00243 BSE_MIDI_SIGNAL_CONTROL_49, /*< nick=Control 49 General Purpose Controller 2 LSB >*/ 00244 BSE_MIDI_SIGNAL_CONTROL_50, /*< nick=Control 50 General Purpose Controller 3 LSB >*/ 00245 BSE_MIDI_SIGNAL_CONTROL_51, /*< nick=Control 51 General Purpose Controller 4 LSB >*/ 00246 BSE_MIDI_SIGNAL_CONTROL_52, 00247 BSE_MIDI_SIGNAL_CONTROL_53, 00248 BSE_MIDI_SIGNAL_CONTROL_54, 00249 BSE_MIDI_SIGNAL_CONTROL_55, 00250 BSE_MIDI_SIGNAL_CONTROL_56, 00251 BSE_MIDI_SIGNAL_CONTROL_57, 00252 BSE_MIDI_SIGNAL_CONTROL_58, 00253 BSE_MIDI_SIGNAL_CONTROL_59, 00254 BSE_MIDI_SIGNAL_CONTROL_60, 00255 BSE_MIDI_SIGNAL_CONTROL_61, 00256 BSE_MIDI_SIGNAL_CONTROL_62, 00257 BSE_MIDI_SIGNAL_CONTROL_63, 00258 /* 7bit, literal channel controls */ 00259 BSE_MIDI_SIGNAL_CONTROL_64, /*< nick=Control 64 Damper Pedal Switch (Sustain) >*/ 00260 BSE_MIDI_SIGNAL_CONTROL_65, /*< nick=Control 65 Portamento Switch >*/ 00261 BSE_MIDI_SIGNAL_CONTROL_66, /*< nick=Control 66 Sustenuto Switch >*/ 00262 BSE_MIDI_SIGNAL_CONTROL_67, /*< nick=Control 67 Soft Switch >*/ 00263 BSE_MIDI_SIGNAL_CONTROL_68, /*< nick=Control 68 Legato Pedal Switch >*/ 00264 BSE_MIDI_SIGNAL_CONTROL_69, /*< nick=Control 69 Hold Pedal Switch >*/ 00265 BSE_MIDI_SIGNAL_CONTROL_70, /*< nick=Control 70 Sound Variation >*/ 00266 BSE_MIDI_SIGNAL_CONTROL_71, /*< nick=Control 71 Filter Resonance (Timbre) >*/ 00267 BSE_MIDI_SIGNAL_CONTROL_72, /*< nick=Control 72 Sound Release Time >*/ 00268 BSE_MIDI_SIGNAL_CONTROL_73, /*< nick=Control 73 Sound Attack Time >*/ 00269 BSE_MIDI_SIGNAL_CONTROL_74, /*< nick=Control 74 Sound Brightness >*/ 00270 BSE_MIDI_SIGNAL_CONTROL_75, /*< nick=Control 75 Sound Decay Time >*/ 00271 BSE_MIDI_SIGNAL_CONTROL_76, /*< nick=Control 76 Vibrato Rate >*/ 00272 BSE_MIDI_SIGNAL_CONTROL_77, /*< nick=Control 77 Vibrato Depth >*/ 00273 BSE_MIDI_SIGNAL_CONTROL_78, /*< nick=Control 78 Vibrato Delay >*/ 00274 BSE_MIDI_SIGNAL_CONTROL_79, /*< nick=Control 79 Sound Control 10 >*/ 00275 BSE_MIDI_SIGNAL_CONTROL_80, /*< nick=Control 80 General Purpose Switch 5 >*/ 00276 BSE_MIDI_SIGNAL_CONTROL_81, /*< nick=Control 81 General Purpose Switch 6 >*/ 00277 BSE_MIDI_SIGNAL_CONTROL_82, /*< nick=Control 82 General Purpose Switch 7 >*/ 00278 BSE_MIDI_SIGNAL_CONTROL_83, /*< nick=Control 83 General Purpose Switch 8 >*/ 00279 BSE_MIDI_SIGNAL_CONTROL_84, /*< nick=Control 84 Portamento Control (Note) >*/ 00280 BSE_MIDI_SIGNAL_CONTROL_85, 00281 BSE_MIDI_SIGNAL_CONTROL_86, 00282 BSE_MIDI_SIGNAL_CONTROL_87, 00283 BSE_MIDI_SIGNAL_CONTROL_88, 00284 BSE_MIDI_SIGNAL_CONTROL_89, 00285 BSE_MIDI_SIGNAL_CONTROL_90, 00286 BSE_MIDI_SIGNAL_CONTROL_91, /*< nick=Control 91 Reverb Depth >*/ 00287 BSE_MIDI_SIGNAL_CONTROL_92, /*< nick=Control 92 Tremolo Depth >*/ 00288 BSE_MIDI_SIGNAL_CONTROL_93, /*< nick=Control 93 Chorus Depth >*/ 00289 BSE_MIDI_SIGNAL_CONTROL_94, /*< nick=Control 93 Detune Depth >*/ 00290 BSE_MIDI_SIGNAL_CONTROL_95, /*< nick=Control 95 Phase Depth >*/ 00291 BSE_MIDI_SIGNAL_CONTROL_96, /*< nick=Control 96 Data Increment Trigger >*/ 00292 BSE_MIDI_SIGNAL_CONTROL_97, /*< nick=Control 97 Data Decrement Trigger >*/ 00293 BSE_MIDI_SIGNAL_CONTROL_98, /*< nick=Control 98 Non-Registered Parameter MSB >*/ 00294 BSE_MIDI_SIGNAL_CONTROL_99, /*< nick=Control 99 Non-Registered Parameter LSB >*/ 00295 BSE_MIDI_SIGNAL_CONTROL_100, /*< nick=Control 100 Registered Parameter MSB >*/ 00296 BSE_MIDI_SIGNAL_CONTROL_101, /*< nick=Control 101 Registered Parameter LSB >*/ 00297 BSE_MIDI_SIGNAL_CONTROL_102, 00298 BSE_MIDI_SIGNAL_CONTROL_103, 00299 BSE_MIDI_SIGNAL_CONTROL_104, 00300 BSE_MIDI_SIGNAL_CONTROL_105, 00301 BSE_MIDI_SIGNAL_CONTROL_106, 00302 BSE_MIDI_SIGNAL_CONTROL_107, 00303 BSE_MIDI_SIGNAL_CONTROL_108, 00304 BSE_MIDI_SIGNAL_CONTROL_109, 00305 BSE_MIDI_SIGNAL_CONTROL_110, 00306 BSE_MIDI_SIGNAL_CONTROL_111, 00307 BSE_MIDI_SIGNAL_CONTROL_112, 00308 BSE_MIDI_SIGNAL_CONTROL_113, 00309 BSE_MIDI_SIGNAL_CONTROL_114, 00310 BSE_MIDI_SIGNAL_CONTROL_115, 00311 BSE_MIDI_SIGNAL_CONTROL_116, 00312 BSE_MIDI_SIGNAL_CONTROL_117, 00313 BSE_MIDI_SIGNAL_CONTROL_118, 00314 BSE_MIDI_SIGNAL_CONTROL_119, 00315 BSE_MIDI_SIGNAL_CONTROL_120, /*< nick=Control 120 All Sound Off ITrigger >*/ 00316 BSE_MIDI_SIGNAL_CONTROL_121, /*< nick=Control 121 All Controllers Off ITrigger >*/ 00317 BSE_MIDI_SIGNAL_CONTROL_122, /*< nick=Control 122 Local Control Switch >*/ 00318 BSE_MIDI_SIGNAL_CONTROL_123, /*< nick=Control 123 All Notes Off ITrigger >*/ 00319 BSE_MIDI_SIGNAL_CONTROL_124, /*< nick=Control 124 Omni Mode Off ITrigger >*/ 00320 BSE_MIDI_SIGNAL_CONTROL_125, /*< nick=Control 125 Omni Mode On ITrigger >*/ 00321 BSE_MIDI_SIGNAL_CONTROL_126, /*< nick=Control 126 Monophonic Voices Mode >*/ 00322 BSE_MIDI_SIGNAL_CONTROL_127 /*< nick=Control 127 Polyphonic Mode On ITrigger >*/ 00323 } BseMidiSignalType; 00324 #endif 00325 00326 gfloat bse_midi_signal_default (BseMidiSignalType signal); 00327 const gchar* bse_midi_signal_name (BseMidiSignalType signal); 00328 const gchar* bse_midi_signal_nick (BseMidiSignalType signal); 00329 00330 G_END_DECLS 00331 00332 #endif /* __BSE_MIDI_EVENT_H__ */