BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bsemidievent.hh
Go to the documentation of this file.
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__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines