BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bsemidievent.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_MIDI_EVENT_H__
3 #define __BSE_MIDI_EVENT_H__
4 
5 #include <bse/bseobject.hh>
6 
7 G_BEGIN_DECLS
8 
9 /* --- MIDI constants --- */
10 #define BSE_MIDI_MAX_CHANNELS (99)
11 
12 
13 /* --- MIDI event types --- */
14 #define BSE_MIDI_CHANNEL_VOICE_MESSAGE(s) ((s) < 0x0F0)
15 #define BSE_MIDI_SYSTEM_COMMON_MESSAGE(s) (((s) & 0x0F8) == 0x0F0)
16 #define BSE_MIDI_SYSTEM_REALTIME_MESSAGE(s) (((s) & 0x0F8) == 0x0F8)
17 typedef enum
18 {
19  /* channel voice messages */
20  BSE_MIDI_NOTE_OFF = 0x080, /* 7bit note, 7bit velocity */
21  BSE_MIDI_NOTE_ON = 0x090, /* 7bit note, 7bit velocity */
22  BSE_MIDI_KEY_PRESSURE = 0x0A0, /* 7bit note, 7bit intensity */
23  BSE_MIDI_CONTROL_CHANGE = 0x0B0, /* 7bit ctl-nr, 7bit value */
24  BSE_MIDI_PROGRAM_CHANGE = 0x0C0, /* 7bit prg-nr */
25  BSE_MIDI_CHANNEL_PRESSURE = 0x0D0, /* 7bit intensity */
26  BSE_MIDI_PITCH_BEND = 0x0E0, /* 14bit signed: 7lsb, 7msb */
27  /* system common messages */
28  BSE_MIDI_SYS_EX = 0x0F0, /* data... (without final 0x7F) */
29  BSE_MIDI_SONG_POINTER = 0x0F2, /* 14bit pointer: 7lsb, 7msb */
30  BSE_MIDI_SONG_SELECT = 0x0F3, /* 7bit song-nr */
31  BSE_MIDI_TUNE = 0x0F6,
32  BSE_MIDI_END_EX = 0x0F7,
33  /* system realtime messages */
34  BSE_MIDI_TIMING_CLOCK = 0x0F8,
35  BSE_MIDI_SONG_START = 0x0FA,
36  BSE_MIDI_SONG_CONTINUE = 0x0FB,
37  BSE_MIDI_SONG_STOP = 0x0FC,
38  BSE_MIDI_ACTIVE_SENSING = 0x0FE,
39  BSE_MIDI_SYSTEM_RESET = 0x0FF,
40  /* midi file meta events */
41  BSE_MIDI_SEQUENCE_NUMBER = 0x100, /* 16bit sequence number (msb, lsb) */
42  BSE_MIDI_TEXT_EVENT = 0x101, /* 8bit text */
43  BSE_MIDI_COPYRIGHT_NOTICE = 0x102, /* 8bit text */
44  BSE_MIDI_TRACK_NAME = 0x103, /* 8bit text */
45  BSE_MIDI_INSTRUMENT_NAME = 0x104, /* 8bit text */
46  BSE_MIDI_LYRIC = 0x105, /* 8bit text */
47  BSE_MIDI_MARKER = 0x106, /* 8bit text */
48  BSE_MIDI_CUE_POINT = 0x107, /* 8bit text */
49  BSE_MIDI_TEXT_EVENT_08 = 0x108, /* 8bit text */
50  BSE_MIDI_TEXT_EVENT_09 = 0x109, /* 8bit text */
51  BSE_MIDI_TEXT_EVENT_0A = 0x10A, /* 8bit text */
52  BSE_MIDI_TEXT_EVENT_0B = 0x10B, /* 8bit text */
53  BSE_MIDI_TEXT_EVENT_0C = 0x10C, /* 8bit text */
54  BSE_MIDI_TEXT_EVENT_0D = 0x10D, /* 8bit text */
55  BSE_MIDI_TEXT_EVENT_0E = 0x10E, /* 8bit text */
56  BSE_MIDI_TEXT_EVENT_0F = 0x10F, /* 8bit text */
57  BSE_MIDI_CHANNEL_PREFIX = 0x120, /* 8bit channel number (0..15) */
58  BSE_MIDI_END_OF_TRACK = 0x12F,
59  BSE_MIDI_SET_TEMPO = 0x151, /* 24bit usecs-per-quarter-note (msb first) */
60  BSE_MIDI_SMPTE_OFFSET = 0x154, /* 8bit hour, minute, second, frame, 100th-frame-fraction */
61  BSE_MIDI_TIME_SIGNATURE = 0x158, /* 8bit numerator, -ld(1/denominator), metro-clocks, 32nd-npq */
62  BSE_MIDI_KEY_SIGNATURE = 0x159, /* 8bit sharpsflats, majorminor */
63  BSE_MIDI_SEQUENCER_SPECIFIC = 0x17F, /* manufacturer specific sequencing data */
64  /* implementation specific add-ons */
65  BSE_MIDI_MULTI_SYS_EX_START = 0x201, /* BSE_MIDI_SYS_EX split across multiple events */
66  BSE_MIDI_MULTI_SYS_EX_NEXT = 0x202, /* continuation, last data byte of final packet is 0xF7 */
67  /* BSE specific extra events */
68  BSE_MIDI_X_CONTINUOUS_CHANGE = 0x400
69 } BseMidiEventType;
70 
71 
72 /* --- BSE MIDI Event --- */
73 #define BSE_TYPE_MIDI_EVENT (bse_midi_event_get_type ())
74 typedef struct
75 {
76  BseMidiEventType status;
77  guint channel; /* 1 .. 16 for standard events */
78  guint64 delta_time; /* GSL tick stamp, SMF tpqn or SMTPE */
79  union {
80  struct {
81  gfloat frequency;
82  gfloat velocity; /* or intensity: 0..+1 */
83  } note;
84  struct {
85  guint control; /* 0..0x7f */
86  gfloat value; /* -1..+1 */
87  } control;
88  guint program; /* 0..0x7f */
89  gfloat intensity; /* 0..+1 */
90  gfloat pitch_bend; /* -1..+1 */
91  guint song_pointer; /* 0..0x3fff */
92  guint song_number; /* 0..0x7f */
93  /* meta event data */
94  struct {
95  guint8 *bytes;
96  guint n_bytes;
97  } sys_ex; /* sys-ex variants and sequencer-specific */
98  guint sequence_number; /* 0..0xffff */
99  gchar *text;
100  guint usecs_pqn; /* micro seconds per quarter note */
101  struct {
102  guint8 hour, minute, second;
103  guint8 frame, fraction; /* fraction is always 100th of a frame */
104  } smpte_offset;
105  struct {
106  guint denominator;
107  guint8 numerator;
108  guint8 metro_clocks; /* # MIDI clocks in a metronome click */
109  guint8 notated_32nd; /* # of notated 32nd notes per quarter note */
110  } time_signature;
111  struct {
112  guint16 n_flats; /* there's not n_sharps and n_flats at the same time */
113  guint16 n_sharps;
114  guint major_key : 1; /* dur */
115  guint minor_key : 1; /* moll */
116  } key_signature;
117  /* implementation specific */
118  guint zprefix;
119  } data;
120 } BseMidiEvent;
121 
122 
123 /* --- API --- */
124 GType bse_midi_event_get_type (void); /* boxed */
125 BseMidiEvent* bse_midi_alloc_event (void);
126 BseMidiEvent* bse_midi_copy_event (const BseMidiEvent *src);
127 void bse_midi_free_event (BseMidiEvent *event);
128 BseMidiEvent* bse_midi_event_note_on (uint midi_channel,
129  uint64 delta_time,
130  float frequency,
131  float velocity);
132 BseMidiEvent* bse_midi_event_note_off (uint midi_channel,
133  uint64 delta_time,
134  gfloat frequency);
135 BseMidiEvent* bse_midi_event_signal (uint midi_channel,
136  uint64 delta_time,
137  BseMidiSignalType signal_type,
138  float value);
139 
140 
141 /* --- MIDI Signals --- */
142 #if 0
143 typeNOTdef enum /*< prefix=BSE_MIDI_SIGNAL >*/ /* FIXME: sync to bserecords.sfidl */
144 {
145  /* special cased signals */
146  BSE_MIDI_SIGNAL_PROGRAM = 1, /*< nick=Program Change >*/ /* 7bit */
147  BSE_MIDI_SIGNAL_PRESSURE, /*< nick=Channel Pressure >*/ /* 7bit */
148  BSE_MIDI_SIGNAL_PITCH_BEND, /*< nick=Pitch Bend >*/ /* 14bit */
149  BSE_MIDI_SIGNAL_VELOCITY, /*< nick=Note Velocity >*/
150  BSE_MIDI_SIGNAL_FINE_TUNE, /*< nick=Note Fine Tune >*/
151  /* 14bit, continuous controls */
152  BSE_MIDI_SIGNAL_CONTINUOUS_0 = 64, /*< nick=Bank Select >*/
153  BSE_MIDI_SIGNAL_CONTINUOUS_1, /*< nick=Modulation Depth >*/
154  BSE_MIDI_SIGNAL_CONTINUOUS_2, /*< nick=Breath Control >*/
155  BSE_MIDI_SIGNAL_CONTINUOUS_3, /*< nick=Continuous 3 >*/
156  BSE_MIDI_SIGNAL_CONTINUOUS_4, /*< nick=Foot Controller >*/
157  BSE_MIDI_SIGNAL_CONTINUOUS_5, /*< nick=Portamento Time >*/
158  BSE_MIDI_SIGNAL_CONTINUOUS_6, /*< nick=Data Entry >*/
159  BSE_MIDI_SIGNAL_CONTINUOUS_7, /*< nick=Volume >*/
160  BSE_MIDI_SIGNAL_CONTINUOUS_8, /*< nick=Balance >*/
161  BSE_MIDI_SIGNAL_CONTINUOUS_9, /*< nick=Continuous 9 >*/
162  BSE_MIDI_SIGNAL_CONTINUOUS_10, /*< nick=Panorama >*/
163  BSE_MIDI_SIGNAL_CONTINUOUS_11, /*< nick=Expression >*/
164  BSE_MIDI_SIGNAL_CONTINUOUS_12, /*< nick=Effect Control 1 >*/
165  BSE_MIDI_SIGNAL_CONTINUOUS_13, /*< nick=Effect Control 2 >*/
166  BSE_MIDI_SIGNAL_CONTINUOUS_14, /*< nick=Continuous 14 >*/
167  BSE_MIDI_SIGNAL_CONTINUOUS_15, /*< nick=Continuous 15 >*/
168  BSE_MIDI_SIGNAL_CONTINUOUS_16, /*< nick=General Purpose Controller 1 >*/
169  BSE_MIDI_SIGNAL_CONTINUOUS_17, /*< nick=General Purpose Controller 2 >*/
170  BSE_MIDI_SIGNAL_CONTINUOUS_18, /*< nick=General Purpose Controller 3 >*/
171  BSE_MIDI_SIGNAL_CONTINUOUS_19, /*< nick=General Purpose Controller 4 >*/
172  BSE_MIDI_SIGNAL_CONTINUOUS_20, /*< nick=Continuous 20 >*/
173  BSE_MIDI_SIGNAL_CONTINUOUS_21, /*< nick=Continuous 21 >*/
174  BSE_MIDI_SIGNAL_CONTINUOUS_22, /*< nick=Continuous 22 >*/
175  BSE_MIDI_SIGNAL_CONTINUOUS_23, /*< nick=Continuous 23 >*/
176  BSE_MIDI_SIGNAL_CONTINUOUS_24, /*< nick=Continuous 24 >*/
177  BSE_MIDI_SIGNAL_CONTINUOUS_25, /*< nick=Continuous 25 >*/
178  BSE_MIDI_SIGNAL_CONTINUOUS_26, /*< nick=Continuous 26 >*/
179  BSE_MIDI_SIGNAL_CONTINUOUS_27, /*< nick=Continuous 27 >*/
180  BSE_MIDI_SIGNAL_CONTINUOUS_28, /*< nick=Continuous 28 >*/
181  BSE_MIDI_SIGNAL_CONTINUOUS_29, /*< nick=Continuous 29 >*/
182  BSE_MIDI_SIGNAL_CONTINUOUS_30, /*< nick=Continuous 30 >*/
183  BSE_MIDI_SIGNAL_CONTINUOUS_31, /*< nick=Continuous 31 >*/
184  /* 14bit, special cased signals */
185  BSE_MIDI_SIGNAL_CONSTANT_HIGH = 96, /*< nick=Constant HIGH >*/
186  BSE_MIDI_SIGNAL_CONSTANT_CENTER, /*< nick=Constant CENTER >*/
187  BSE_MIDI_SIGNAL_CONSTANT_LOW, /*< nick=Constant LOW >*/
188  BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER, /*< nick=Constant Negative CENTER >*/
189  BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH, /*< nick=Constant Negative HIGH >*/
190  BSE_MIDI_SIGNAL_PARAMETER, /*< nick=Registered Parameter >*/
191  BSE_MIDI_SIGNAL_NON_PARAMETER, /*< nick=Non-Registered Parameter >*/
192  /* 7bit, literal channel controls, MSB values */
193  BSE_MIDI_SIGNAL_CONTROL_0 = 128, /*< nick=Control 0 Bank Select MSB >*/
194  BSE_MIDI_SIGNAL_CONTROL_1, /*< nick=Control 1 Modulation Depth MSB >*/
195  BSE_MIDI_SIGNAL_CONTROL_2, /*< nick=Control 2 Breath Control MSB >*/
196  BSE_MIDI_SIGNAL_CONTROL_3,
197  BSE_MIDI_SIGNAL_CONTROL_4, /*< nick=Control 4 Foot Controller MSB >*/
198  BSE_MIDI_SIGNAL_CONTROL_5, /*< nick=Control 5 Portamento Time MSB >*/
199  BSE_MIDI_SIGNAL_CONTROL_6, /*< nick=Control 6 Data Entry MSB >*/
200  BSE_MIDI_SIGNAL_CONTROL_7, /*< nick=Control 7 Volume MSB >*/
201  BSE_MIDI_SIGNAL_CONTROL_8, /*< nick=Control 8 Balance MSB >*/
202  BSE_MIDI_SIGNAL_CONTROL_9,
203  BSE_MIDI_SIGNAL_CONTROL_10, /*< nick=Control 10 Panorama MSB >*/
204  BSE_MIDI_SIGNAL_CONTROL_11, /*< nick=Control 11 Expression MSB >*/
205  BSE_MIDI_SIGNAL_CONTROL_12, /*< nick=Control 12 Effect Control 1 MSB >*/
206  BSE_MIDI_SIGNAL_CONTROL_13, /*< nick=Control 13 Effect Control 2 MSB >*/
207  BSE_MIDI_SIGNAL_CONTROL_14,
208  BSE_MIDI_SIGNAL_CONTROL_15,
209  BSE_MIDI_SIGNAL_CONTROL_16, /*< nick=Control 16 General Purpose Controller 1 MSB >*/
210  BSE_MIDI_SIGNAL_CONTROL_17, /*< nick=Control 17 General Purpose Controller 2 MSB >*/
211  BSE_MIDI_SIGNAL_CONTROL_18, /*< nick=Control 18 General Purpose Controller 3 MSB >*/
212  BSE_MIDI_SIGNAL_CONTROL_19, /*< nick=Control 19 General Purpose Controller 4 MSB >*/
213  BSE_MIDI_SIGNAL_CONTROL_20,
214  BSE_MIDI_SIGNAL_CONTROL_21,
215  BSE_MIDI_SIGNAL_CONTROL_22,
216  BSE_MIDI_SIGNAL_CONTROL_23,
217  BSE_MIDI_SIGNAL_CONTROL_24,
218  BSE_MIDI_SIGNAL_CONTROL_25,
219  BSE_MIDI_SIGNAL_CONTROL_26,
220  BSE_MIDI_SIGNAL_CONTROL_27,
221  BSE_MIDI_SIGNAL_CONTROL_28,
222  BSE_MIDI_SIGNAL_CONTROL_29,
223  BSE_MIDI_SIGNAL_CONTROL_30,
224  BSE_MIDI_SIGNAL_CONTROL_31,
225  /* 7bit, literal channel controls, LSB values */
226  BSE_MIDI_SIGNAL_CONTROL_32, /*< nick=Control 32 Bank Select LSB >*/
227  BSE_MIDI_SIGNAL_CONTROL_33, /*< nick=Control 33 Modulation Depth LSB >*/
228  BSE_MIDI_SIGNAL_CONTROL_34, /*< nick=Control 34 Breath Control LSB >*/
229  BSE_MIDI_SIGNAL_CONTROL_35,
230  BSE_MIDI_SIGNAL_CONTROL_36, /*< nick=Control 36 Foot Controller LSB >*/
231  BSE_MIDI_SIGNAL_CONTROL_37, /*< nick=Control 37 Portamento Time LSB >*/
232  BSE_MIDI_SIGNAL_CONTROL_38, /*< nick=Control 38 Data Entry LSB >*/
233  BSE_MIDI_SIGNAL_CONTROL_39, /*< nick=Control 39 Volume LSB >*/
234  BSE_MIDI_SIGNAL_CONTROL_40, /*< nick=Control 40 Balance LSB >*/
235  BSE_MIDI_SIGNAL_CONTROL_41,
236  BSE_MIDI_SIGNAL_CONTROL_42, /*< nick=Control 42 Panorama LSB >*/
237  BSE_MIDI_SIGNAL_CONTROL_43, /*< nick=Control 43 Expression LSB >*/
238  BSE_MIDI_SIGNAL_CONTROL_44, /*< nick=Control 44 Effect Control 1 LSB >*/
239  BSE_MIDI_SIGNAL_CONTROL_45, /*< nick=Control 45 Effect Control 2 LSB >*/
240  BSE_MIDI_SIGNAL_CONTROL_46,
241  BSE_MIDI_SIGNAL_CONTROL_47,
242  BSE_MIDI_SIGNAL_CONTROL_48, /*< nick=Control 48 General Purpose Controller 1 LSB >*/
243  BSE_MIDI_SIGNAL_CONTROL_49, /*< nick=Control 49 General Purpose Controller 2 LSB >*/
244  BSE_MIDI_SIGNAL_CONTROL_50, /*< nick=Control 50 General Purpose Controller 3 LSB >*/
245  BSE_MIDI_SIGNAL_CONTROL_51, /*< nick=Control 51 General Purpose Controller 4 LSB >*/
246  BSE_MIDI_SIGNAL_CONTROL_52,
247  BSE_MIDI_SIGNAL_CONTROL_53,
248  BSE_MIDI_SIGNAL_CONTROL_54,
249  BSE_MIDI_SIGNAL_CONTROL_55,
250  BSE_MIDI_SIGNAL_CONTROL_56,
251  BSE_MIDI_SIGNAL_CONTROL_57,
252  BSE_MIDI_SIGNAL_CONTROL_58,
253  BSE_MIDI_SIGNAL_CONTROL_59,
254  BSE_MIDI_SIGNAL_CONTROL_60,
255  BSE_MIDI_SIGNAL_CONTROL_61,
256  BSE_MIDI_SIGNAL_CONTROL_62,
257  BSE_MIDI_SIGNAL_CONTROL_63,
258  /* 7bit, literal channel controls */
259  BSE_MIDI_SIGNAL_CONTROL_64, /*< nick=Control 64 Damper Pedal Switch (Sustain) >*/
260  BSE_MIDI_SIGNAL_CONTROL_65, /*< nick=Control 65 Portamento Switch >*/
261  BSE_MIDI_SIGNAL_CONTROL_66, /*< nick=Control 66 Sustenuto Switch >*/
262  BSE_MIDI_SIGNAL_CONTROL_67, /*< nick=Control 67 Soft Switch >*/
263  BSE_MIDI_SIGNAL_CONTROL_68, /*< nick=Control 68 Legato Pedal Switch >*/
264  BSE_MIDI_SIGNAL_CONTROL_69, /*< nick=Control 69 Hold Pedal Switch >*/
265  BSE_MIDI_SIGNAL_CONTROL_70, /*< nick=Control 70 Sound Variation >*/
266  BSE_MIDI_SIGNAL_CONTROL_71, /*< nick=Control 71 Filter Resonance (Timbre) >*/
267  BSE_MIDI_SIGNAL_CONTROL_72, /*< nick=Control 72 Sound Release Time >*/
268  BSE_MIDI_SIGNAL_CONTROL_73, /*< nick=Control 73 Sound Attack Time >*/
269  BSE_MIDI_SIGNAL_CONTROL_74, /*< nick=Control 74 Sound Brightness >*/
270  BSE_MIDI_SIGNAL_CONTROL_75, /*< nick=Control 75 Sound Decay Time >*/
271  BSE_MIDI_SIGNAL_CONTROL_76, /*< nick=Control 76 Vibrato Rate >*/
272  BSE_MIDI_SIGNAL_CONTROL_77, /*< nick=Control 77 Vibrato Depth >*/
273  BSE_MIDI_SIGNAL_CONTROL_78, /*< nick=Control 78 Vibrato Delay >*/
274  BSE_MIDI_SIGNAL_CONTROL_79, /*< nick=Control 79 Sound Control 10 >*/
275  BSE_MIDI_SIGNAL_CONTROL_80, /*< nick=Control 80 General Purpose Switch 5 >*/
276  BSE_MIDI_SIGNAL_CONTROL_81, /*< nick=Control 81 General Purpose Switch 6 >*/
277  BSE_MIDI_SIGNAL_CONTROL_82, /*< nick=Control 82 General Purpose Switch 7 >*/
278  BSE_MIDI_SIGNAL_CONTROL_83, /*< nick=Control 83 General Purpose Switch 8 >*/
279  BSE_MIDI_SIGNAL_CONTROL_84, /*< nick=Control 84 Portamento Control (Note) >*/
280  BSE_MIDI_SIGNAL_CONTROL_85,
281  BSE_MIDI_SIGNAL_CONTROL_86,
282  BSE_MIDI_SIGNAL_CONTROL_87,
283  BSE_MIDI_SIGNAL_CONTROL_88,
284  BSE_MIDI_SIGNAL_CONTROL_89,
285  BSE_MIDI_SIGNAL_CONTROL_90,
286  BSE_MIDI_SIGNAL_CONTROL_91, /*< nick=Control 91 Reverb Depth >*/
287  BSE_MIDI_SIGNAL_CONTROL_92, /*< nick=Control 92 Tremolo Depth >*/
288  BSE_MIDI_SIGNAL_CONTROL_93, /*< nick=Control 93 Chorus Depth >*/
289  BSE_MIDI_SIGNAL_CONTROL_94, /*< nick=Control 93 Detune Depth >*/
290  BSE_MIDI_SIGNAL_CONTROL_95, /*< nick=Control 95 Phase Depth >*/
291  BSE_MIDI_SIGNAL_CONTROL_96, /*< nick=Control 96 Data Increment Trigger >*/
292  BSE_MIDI_SIGNAL_CONTROL_97, /*< nick=Control 97 Data Decrement Trigger >*/
293  BSE_MIDI_SIGNAL_CONTROL_98, /*< nick=Control 98 Non-Registered Parameter MSB >*/
294  BSE_MIDI_SIGNAL_CONTROL_99, /*< nick=Control 99 Non-Registered Parameter LSB >*/
295  BSE_MIDI_SIGNAL_CONTROL_100, /*< nick=Control 100 Registered Parameter MSB >*/
296  BSE_MIDI_SIGNAL_CONTROL_101, /*< nick=Control 101 Registered Parameter LSB >*/
297  BSE_MIDI_SIGNAL_CONTROL_102,
298  BSE_MIDI_SIGNAL_CONTROL_103,
299  BSE_MIDI_SIGNAL_CONTROL_104,
300  BSE_MIDI_SIGNAL_CONTROL_105,
301  BSE_MIDI_SIGNAL_CONTROL_106,
302  BSE_MIDI_SIGNAL_CONTROL_107,
303  BSE_MIDI_SIGNAL_CONTROL_108,
304  BSE_MIDI_SIGNAL_CONTROL_109,
305  BSE_MIDI_SIGNAL_CONTROL_110,
306  BSE_MIDI_SIGNAL_CONTROL_111,
307  BSE_MIDI_SIGNAL_CONTROL_112,
308  BSE_MIDI_SIGNAL_CONTROL_113,
309  BSE_MIDI_SIGNAL_CONTROL_114,
310  BSE_MIDI_SIGNAL_CONTROL_115,
311  BSE_MIDI_SIGNAL_CONTROL_116,
312  BSE_MIDI_SIGNAL_CONTROL_117,
313  BSE_MIDI_SIGNAL_CONTROL_118,
314  BSE_MIDI_SIGNAL_CONTROL_119,
315  BSE_MIDI_SIGNAL_CONTROL_120, /*< nick=Control 120 All Sound Off ITrigger >*/
316  BSE_MIDI_SIGNAL_CONTROL_121, /*< nick=Control 121 All Controllers Off ITrigger >*/
317  BSE_MIDI_SIGNAL_CONTROL_122, /*< nick=Control 122 Local Control Switch >*/
318  BSE_MIDI_SIGNAL_CONTROL_123, /*< nick=Control 123 All Notes Off ITrigger >*/
319  BSE_MIDI_SIGNAL_CONTROL_124, /*< nick=Control 124 Omni Mode Off ITrigger >*/
320  BSE_MIDI_SIGNAL_CONTROL_125, /*< nick=Control 125 Omni Mode On ITrigger >*/
321  BSE_MIDI_SIGNAL_CONTROL_126, /*< nick=Control 126 Monophonic Voices Mode >*/
322  BSE_MIDI_SIGNAL_CONTROL_127 /*< nick=Control 127 Polyphonic Mode On ITrigger >*/
323 } BseMidiSignalType;
324 #endif
325 
326 gfloat bse_midi_signal_default (BseMidiSignalType signal);
327 const gchar* bse_midi_signal_name (BseMidiSignalType signal);
328 const gchar* bse_midi_signal_nick (BseMidiSignalType signal);
329 
330 G_END_DECLS
331 
332 #endif /* __BSE_MIDI_EVENT_H__ */
void bse_midi_free_event(BseMidiEvent *event)
Definition: bsemidievent.cc:87
gfloat bse_midi_signal_default(BseMidiSignalType signal)
Definition: bsemidievent.cc:24
uint64_t uint64
Definition: bsemidievent.hh:74