[beast: 16/29] BSE: convert enum type MidiSignalType to enum class MidiSignal



commit 1378ebe5ea33841d51b2bf33dd1e2172da4c073b
Author: Tim Janik <timj gnu org>
Date:   Sat Jan 30 01:49:19 2016 +0100

    BSE: convert enum type MidiSignalType to enum class MidiSignal
    
    Signed-off-by: Tim Janik <timj gnu org>

 beast-gtk/bstbseutils.hh       |    4 +-
 beast-gtk/bsteventroll.cc      |    2 +-
 beast-gtk/bsteventroll.hh      |    4 +-
 beast-gtk/bstpartdialog.cc     |    6 +-
 beast-gtk/bstpatterncolumns.cc |   10 +-
 bse/bseapi.idl                 |  366 ++++++++++++++++++++--------------------
 bse/bsecxxmodule.cc            |    2 +-
 bse/bsemidicontroller.cc       |   24 ++--
 bse/bsemidicontroller.hh       |    2 +-
 bse/bsemidievent.cc            |   21 +--
 bse/bsemidievent.hh            |    6 +-
 bse/bsemidifile.cc             |   12 +-
 bse/bsemidireceiver.cc         |   64 ++++----
 bse/bsemidireceiver.hh         |   10 +-
 bse/bsepart.cc                 |   54 +++---
 bse/bsepart.hh                 |   34 ++--
 bse/bsesequencer.cc            |    2 +-
 bse/bsesource.cc               |    6 +-
 bse/bsesource.hh               |    6 +-
 bse/bsesource.proc             |    6 +-
 bse/bsestorage.cc              |    4 +-
 bse/bseutils.cc                |    2 +-
 bse/bseutils.hh                |    2 +-
 23 files changed, 324 insertions(+), 325 deletions(-)
---
diff --git a/beast-gtk/bstbseutils.hh b/beast-gtk/bstbseutils.hh
index 0c066cf..4f35009 100644
--- a/beast-gtk/bstbseutils.hh
+++ b/beast-gtk/bstbseutils.hh
@@ -6,8 +6,8 @@
 G_BEGIN_DECLS
 #define SFIDL_SKIPDEF__BseErrorType             // replaced by Bse::Error
 #define BseErrorType Bse::Error
-#define SFIDL_SKIPDEF__BseMidiSignalType        // replaced by Bse::MidiSignalType
-#define BseMidiSignalType Bse::MidiSignalType
+#define SFIDL_SKIPDEF__BseMidiSignalType        // replaced by Bse::MidiSignal
+#define BseMidiSignalType Bse::MidiSignal
 #include "bstoldbseapi.h" /* include this within extern "C" */
 #undef BseErrorType
 /* --- BSE utilities --- */
diff --git a/beast-gtk/bsteventroll.cc b/beast-gtk/bsteventroll.cc
index e8bf276..612b07b 100644
--- a/beast-gtk/bsteventroll.cc
+++ b/beast-gtk/bsteventroll.cc
@@ -697,7 +697,7 @@ bst_event_roll_set_view_selection (BstEventRoll *self,
 }
 
 void
-bst_event_roll_set_control_type (BstEventRoll *self, Bse::MidiSignalType control_type)
+bst_event_roll_set_control_type (BstEventRoll *self, Bse::MidiSignal control_type)
 {
   assert_return (BST_IS_EVENT_ROLL (self));
 
diff --git a/beast-gtk/bsteventroll.hh b/beast-gtk/bsteventroll.hh
index c69fb1f..b0c0bf5 100644
--- a/beast-gtk/bsteventroll.hh
+++ b/beast-gtk/bsteventroll.hh
@@ -39,7 +39,7 @@ struct _BstEventRoll
   GxkScrollCanvas parent_instance;
 
   Bse::PartH          part;
-  Bse::MidiSignalType control_type;
+  Bse::MidiSignal control_type;
   GtkWidget          *child;
 
   /* horizontal layout */
@@ -99,7 +99,7 @@ void        bst_event_roll_set_view_selection    (BstEventRoll   *self,
 void        bst_event_roll_set_vpanel_width_hook (BstEventRoll   *self,
                                                   gint          (*fetch_vpanel_width) (gpointer data),
                                                   gpointer        data);
-void        bst_event_roll_set_control_type      (BstEventRoll *self, Bse::MidiSignalType control_type);
+void        bst_event_roll_set_control_type      (BstEventRoll *self, Bse::MidiSignal control_type);
 void        bst_event_roll_init_segment          (BstEventRoll   *self,
                                                   BstSegmentType  type);
 void        bst_event_roll_segment_start         (BstEventRoll   *self,
diff --git a/beast-gtk/bstpartdialog.cc b/beast-gtk/bstpartdialog.cc
index d9c0e46..0070c85 100644
--- a/beast-gtk/bstpartdialog.cc
+++ b/beast-gtk/bstpartdialog.cc
@@ -93,7 +93,7 @@ eparam_changed (gpointer  data,
   BstPartDialog *self = BST_PART_DIALOG (data);
   if (self->eroll)
     {
-      Bse::MidiSignalType midi_signal_type = Rapicorn::Aida::enum_value_from_string<Bse::MidiSignalType> 
(sfi_value_get_choice (&param->value));
+      Bse::MidiSignal midi_signal_type = Rapicorn::Aida::enum_value_from_string<Bse::MidiSignal> 
(sfi_value_get_choice (&param->value));
       bst_event_roll_set_control_type (self->eroll, midi_signal_type);
       gxk_widget_update_actions (self); /* update controllers */
     }
@@ -202,7 +202,7 @@ bst_part_dialog_init (BstPartDialog *self)
   // event roll control type
   static GParamSpec *control_type_pspec =
     g_param_spec_ref (sfi_pspec_choice ("control_type", NULL, NULL, "MidiSignal::PITCH_BEND",
-                                        Bse::choice_values_from_enum<Bse::MidiSignalType>(),
+                                        Bse::choice_values_from_enum<Bse::MidiSignal>(),
                                         ":r:w:S:G:"));
   if (control_type_pspec)
     {
@@ -210,7 +210,7 @@ bst_part_dialog_init (BstPartDialog *self)
       GtkWidget *rwidget = gxk_param_create_editor (param, "choice-button");
       gxk_radget_add (radget, "event-roll-control-area", rwidget);
       g_object_connect (radget, "swapped_signal::destroy", gxk_param_destroy, param, NULL);
-      sfi_value_set_choice (&param->value, Rapicorn::Aida::enum_value_to_string<Bse::MidiSignalType> 
(Bse::MidiSignal::VELOCITY).c_str());
+      sfi_value_set_choice (&param->value, Rapicorn::Aida::enum_value_to_string<Bse::MidiSignal> 
(Bse::MidiSignal::VELOCITY).c_str());
       gxk_param_apply_value (param); /* update model, auto updates GUI */
     }
 
diff --git a/beast-gtk/bstpatterncolumns.cc b/beast-gtk/bstpatterncolumns.cc
index 50af93f..75a4f8c 100644
--- a/beast-gtk/bstpatterncolumns.cc
+++ b/beast-gtk/bstpatterncolumns.cc
@@ -372,10 +372,10 @@ pattern_column_event_value_from_string (BstPatternColumn *column,
   return pattern_column_event_value_from_int (column, ival);
 }
 
-static Bse::MidiSignalType
+static Bse::MidiSignal
 pattern_column_control_type (BstPatternColumn *column, bool *isnote_p)
 {
-  Bse::MidiSignalType control_type;
+  Bse::MidiSignal control_type;
   bool isnote = true;
   if (column->ltype == BST_PATTERN_LTYPE_VELOCITY)
     control_type = Bse::MidiSignal::VELOCITY;
@@ -383,7 +383,7 @@ pattern_column_control_type (BstPatternColumn *column, bool *isnote_p)
     control_type = Bse::MidiSignal::FINE_TUNE;
   else
     {
-      control_type = Bse::MidiSignalType (Bse::MidiSignal::CONTINUOUS_0 + column->num);
+      control_type = Bse::MidiSignal (int64 (Bse::MidiSignal::CONTINUOUS_0) + column->num);
       isnote = false;
     }
   if (isnote_p)
@@ -399,7 +399,7 @@ pattern_column_event_lookup (BstPatternColumn   *column,
                              Bse::PartControlSeq *cseq_p,
                              gchar              *placeholder_p)
 {
-  Bse::MidiSignalType control_type = (Bse::MidiSignalType) pattern_column_control_type (column, NULL);
+  Bse::MidiSignal control_type = (Bse::MidiSignal) pattern_column_control_type (column, NULL);
   Bse::PartH part = pview->part;
   Bse::PartControlSeq cseq = part.get_channel_controls (column->num, tick, duration, control_type);
   Bse::PartControl pctrl;
@@ -510,7 +510,7 @@ pattern_column_event_key_event (BstPatternColumn       *column,
       guint digit = column->n_focus_positions - focus_pos;
       gint dmax = control_get_max (num_type, 1);
       bool isnote;
-      Bse::MidiSignalType control_type = pattern_column_control_type (column, &isnote);
+      Bse::MidiSignal control_type = pattern_column_control_type (column, &isnote);
       gfloat value;
       ivalue = MIN (param, dmax) * control_get_digit_increment (num_type, digit);
       value = pattern_column_event_value_from_int (column, ivalue);
diff --git a/bse/bseapi.idl b/bse/bseapi.idl
index bdda050..8154e62 100644
--- a/bse/bseapi.idl
+++ b/bse/bseapi.idl
@@ -93,185 +93,185 @@ enum Error {
   INVALID_OVERLAP           = Enum (67, "", _("Invalid overlap")),
 };
 
-enum MidiSignalType {
+enum MidiSignal {
   // special case signals
-  MIDI_SIGNAL_PROGRAM                   = Enum (1,   _("Program Change")),     // 7bit
-  MIDI_SIGNAL_PRESSURE                  = Enum (2,   _("Channel Pressure")),   // 7bit
-  MIDI_SIGNAL_PITCH_BEND                = Enum (3,   _("Pitch Bend")),         // 14bit
-  MIDI_SIGNAL_VELOCITY                  = Enum (4,   _("Note Velocity")),
-  MIDI_SIGNAL_FINE_TUNE                 = Enum (5,   _("Note Fine Tune")),
+  PROGRAM                   = Enum (1,   _("Program Change")),     // 7bit
+  PRESSURE                  = Enum (2,   _("Channel Pressure")),   // 7bit
+  PITCH_BEND                = Enum (3,   _("Pitch Bend")),         // 14bit
+  VELOCITY                  = Enum (4,   _("Note Velocity")),
+  FINE_TUNE                 = Enum (5,   _("Note Fine Tune")),
   // 14bit, continuous controls
-  MIDI_SIGNAL_CONTINUOUS_0              = Enum (64,  _("Bank Select")),
-  MIDI_SIGNAL_CONTINUOUS_1              = Enum (65,  _("Modulation Depth")),
-  MIDI_SIGNAL_CONTINUOUS_2              = Enum (66,  _("Breath Control")),
-  MIDI_SIGNAL_CONTINUOUS_3              = Enum (67,  _("Continuous 3")),
-  MIDI_SIGNAL_CONTINUOUS_4              = Enum (68,  _("Foot Controller")),
-  MIDI_SIGNAL_CONTINUOUS_5              = Enum (69,  _("Portamento Time")),
-  MIDI_SIGNAL_CONTINUOUS_6              = Enum (70,  _("Data Entry")),
-  MIDI_SIGNAL_CONTINUOUS_7              = Enum (71,  _("Volume")),
-  MIDI_SIGNAL_CONTINUOUS_8              = Enum (72,  _("Balance")),
-  MIDI_SIGNAL_CONTINUOUS_9              = Enum (73,  _("Continuous 9")),
-  MIDI_SIGNAL_CONTINUOUS_10             = Enum (74,  _("Panorama")),
-  MIDI_SIGNAL_CONTINUOUS_11             = Enum (75,  _("Expression")),
-  MIDI_SIGNAL_CONTINUOUS_12             = Enum (76,  _("Effect Control 1")),
-  MIDI_SIGNAL_CONTINUOUS_13             = Enum (77,  _("Effect Control 2")),
-  MIDI_SIGNAL_CONTINUOUS_14             = Enum (78,  _("Continuous 14")),
-  MIDI_SIGNAL_CONTINUOUS_15             = Enum (79,  _("Continuous 15")),
-  MIDI_SIGNAL_CONTINUOUS_16             = Enum (80,  _("General Purpose Controller 1")),
-  MIDI_SIGNAL_CONTINUOUS_17             = Enum (81,  _("General Purpose Controller 2")),
-  MIDI_SIGNAL_CONTINUOUS_18             = Enum (82,  _("General Purpose Controller 3")),
-  MIDI_SIGNAL_CONTINUOUS_19             = Enum (83,  _("General Purpose Controller 4")),
-  MIDI_SIGNAL_CONTINUOUS_20             = Enum (84,  _("Continuous 20")),
-  MIDI_SIGNAL_CONTINUOUS_21             = Enum (85,  _("Continuous 21")),
-  MIDI_SIGNAL_CONTINUOUS_22             = Enum (86,  _("Continuous 22")),
-  MIDI_SIGNAL_CONTINUOUS_23             = Enum (87,  _("Continuous 23")),
-  MIDI_SIGNAL_CONTINUOUS_24             = Enum (88,  _("Continuous 24")),
-  MIDI_SIGNAL_CONTINUOUS_25             = Enum (89,  _("Continuous 25")),
-  MIDI_SIGNAL_CONTINUOUS_26             = Enum (90,  _("Continuous 26")),
-  MIDI_SIGNAL_CONTINUOUS_27             = Enum (91,  _("Continuous 27")),
-  MIDI_SIGNAL_CONTINUOUS_28             = Enum (92,  _("Continuous 28")),
-  MIDI_SIGNAL_CONTINUOUS_29             = Enum (93,  _("Continuous 29")),
-  MIDI_SIGNAL_CONTINUOUS_30             = Enum (94,  _("Continuous 30")),
-  MIDI_SIGNAL_CONTINUOUS_31             = Enum (95,  _("Continuous 31")),
+  CONTINUOUS_0              = Enum (64,  _("Bank Select")),
+  CONTINUOUS_1              = Enum (65,  _("Modulation Depth")),
+  CONTINUOUS_2              = Enum (66,  _("Breath Control")),
+  CONTINUOUS_3              = Enum (67,  _("Continuous 3")),
+  CONTINUOUS_4              = Enum (68,  _("Foot Controller")),
+  CONTINUOUS_5              = Enum (69,  _("Portamento Time")),
+  CONTINUOUS_6              = Enum (70,  _("Data Entry")),
+  CONTINUOUS_7              = Enum (71,  _("Volume")),
+  CONTINUOUS_8              = Enum (72,  _("Balance")),
+  CONTINUOUS_9              = Enum (73,  _("Continuous 9")),
+  CONTINUOUS_10             = Enum (74,  _("Panorama")),
+  CONTINUOUS_11             = Enum (75,  _("Expression")),
+  CONTINUOUS_12             = Enum (76,  _("Effect Control 1")),
+  CONTINUOUS_13             = Enum (77,  _("Effect Control 2")),
+  CONTINUOUS_14             = Enum (78,  _("Continuous 14")),
+  CONTINUOUS_15             = Enum (79,  _("Continuous 15")),
+  CONTINUOUS_16             = Enum (80,  _("General Purpose Controller 1")),
+  CONTINUOUS_17             = Enum (81,  _("General Purpose Controller 2")),
+  CONTINUOUS_18             = Enum (82,  _("General Purpose Controller 3")),
+  CONTINUOUS_19             = Enum (83,  _("General Purpose Controller 4")),
+  CONTINUOUS_20             = Enum (84,  _("Continuous 20")),
+  CONTINUOUS_21             = Enum (85,  _("Continuous 21")),
+  CONTINUOUS_22             = Enum (86,  _("Continuous 22")),
+  CONTINUOUS_23             = Enum (87,  _("Continuous 23")),
+  CONTINUOUS_24             = Enum (88,  _("Continuous 24")),
+  CONTINUOUS_25             = Enum (89,  _("Continuous 25")),
+  CONTINUOUS_26             = Enum (90,  _("Continuous 26")),
+  CONTINUOUS_27             = Enum (91,  _("Continuous 27")),
+  CONTINUOUS_28             = Enum (92,  _("Continuous 28")),
+  CONTINUOUS_29             = Enum (93,  _("Continuous 29")),
+  CONTINUOUS_30             = Enum (94,  _("Continuous 30")),
+  CONTINUOUS_31             = Enum (95,  _("Continuous 31")),
   // 14bit, special case signals
-  MIDI_SIGNAL_CONSTANT_HIGH             = Enum (96,  _("Constant HIGH")),
-  MIDI_SIGNAL_CONSTANT_CENTER           = Enum (97,  _("Constant CENTER")),
-  MIDI_SIGNAL_CONSTANT_LOW              = Enum (98,  _("Constant LOW")),
-  MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER  = Enum (99,  _("Constant Negative CENTER")),
-  MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH    = Enum (100, _("Constant Negative HIGH")),
-  MIDI_SIGNAL_PARAMETER                 = Enum (101, _("Registered Parameter")),
-  MIDI_SIGNAL_NON_PARAMETER             = Enum (102, _("Non-Registered Parameter")),
+  CONSTANT_HIGH             = Enum (96,  _("Constant HIGH")),
+  CONSTANT_CENTER           = Enum (97,  _("Constant CENTER")),
+  CONSTANT_LOW              = Enum (98,  _("Constant LOW")),
+  CONSTANT_NEGATIVE_CENTER  = Enum (99,  _("Constant Negative CENTER")),
+  CONSTANT_NEGATIVE_HIGH    = Enum (100, _("Constant Negative HIGH")),
+  PARAMETER                 = Enum (101, _("Registered Parameter")),
+  NON_PARAMETER             = Enum (102, _("Non-Registered Parameter")),
   // 7bit, literal channel controls, MSB values
-  MIDI_SIGNAL_CONTROL_0                 = Enum (128, _("Control 0 Bank Select MSB")),
-  MIDI_SIGNAL_CONTROL_1                 = Enum (129, _("Control 1 Modulation Depth MSB")),
-  MIDI_SIGNAL_CONTROL_2                 = Enum (130, _("Control 2 Breath Control MSB")),
-  MIDI_SIGNAL_CONTROL_3                 = Enum (131, _("control-3")),
-  MIDI_SIGNAL_CONTROL_4                 = Enum (132, _("Control 4 Foot Controller MSB")),
-  MIDI_SIGNAL_CONTROL_5                 = Enum (133, _("Control 5 Portamento Time MSB")),
-  MIDI_SIGNAL_CONTROL_6                 = Enum (134, _("Control 6 Data Entry MSB")),
-  MIDI_SIGNAL_CONTROL_7                 = Enum (135, _("Control 7 Volume MSB")),
-  MIDI_SIGNAL_CONTROL_8                 = Enum (136, _("Control 8 Balance MSB")),
-  MIDI_SIGNAL_CONTROL_9                 = Enum (137, _("control-9")),
-  MIDI_SIGNAL_CONTROL_10                = Enum (138, _("Control 10 Panorama MSB")),
-  MIDI_SIGNAL_CONTROL_11                = Enum (139, _("Control 11 Expression MSB")),
-  MIDI_SIGNAL_CONTROL_12                = Enum (140, _("Control 12 Effect Control 1 MSB")),
-  MIDI_SIGNAL_CONTROL_13                = Enum (141, _("Control 13 Effect Control 2 MSB")),
-  MIDI_SIGNAL_CONTROL_14                = Enum (142, _("control-14")),
-  MIDI_SIGNAL_CONTROL_15                = Enum (143, _("control-15")),
-  MIDI_SIGNAL_CONTROL_16                = Enum (144, _("Control 16 General Purpose Controller 1 MSB")),
-  MIDI_SIGNAL_CONTROL_17                = Enum (145, _("Control 17 General Purpose Controller 2 MSB")),
-  MIDI_SIGNAL_CONTROL_18                = Enum (146, _("Control 18 General Purpose Controller 3 MSB")),
-  MIDI_SIGNAL_CONTROL_19                = Enum (147, _("Control 19 General Purpose Controller 4 MSB")),
-  MIDI_SIGNAL_CONTROL_20                = Enum (148, _("control-20")),
-  MIDI_SIGNAL_CONTROL_21                = Enum (149, _("control-21")),
-  MIDI_SIGNAL_CONTROL_22                = Enum (150, _("control-22")),
-  MIDI_SIGNAL_CONTROL_23                = Enum (151, _("control-23")),
-  MIDI_SIGNAL_CONTROL_24                = Enum (152, _("control-24")),
-  MIDI_SIGNAL_CONTROL_25                = Enum (153, _("control-25")),
-  MIDI_SIGNAL_CONTROL_26                = Enum (154, _("control-26")),
-  MIDI_SIGNAL_CONTROL_27                = Enum (155, _("control-27")),
-  MIDI_SIGNAL_CONTROL_28                = Enum (156, _("control-28")),
-  MIDI_SIGNAL_CONTROL_29                = Enum (157, _("control-29")),
-  MIDI_SIGNAL_CONTROL_30                = Enum (158, _("control-30")),
-  MIDI_SIGNAL_CONTROL_31                = Enum (159, _("control-31")),
+  CONTROL_0                 = Enum (128, _("Control 0 Bank Select MSB")),
+  CONTROL_1                 = Enum (129, _("Control 1 Modulation Depth MSB")),
+  CONTROL_2                 = Enum (130, _("Control 2 Breath Control MSB")),
+  CONTROL_3                 = Enum (131, _("control-3")),
+  CONTROL_4                 = Enum (132, _("Control 4 Foot Controller MSB")),
+  CONTROL_5                 = Enum (133, _("Control 5 Portamento Time MSB")),
+  CONTROL_6                 = Enum (134, _("Control 6 Data Entry MSB")),
+  CONTROL_7                 = Enum (135, _("Control 7 Volume MSB")),
+  CONTROL_8                 = Enum (136, _("Control 8 Balance MSB")),
+  CONTROL_9                 = Enum (137, _("control-9")),
+  CONTROL_10                = Enum (138, _("Control 10 Panorama MSB")),
+  CONTROL_11                = Enum (139, _("Control 11 Expression MSB")),
+  CONTROL_12                = Enum (140, _("Control 12 Effect Control 1 MSB")),
+  CONTROL_13                = Enum (141, _("Control 13 Effect Control 2 MSB")),
+  CONTROL_14                = Enum (142, _("control-14")),
+  CONTROL_15                = Enum (143, _("control-15")),
+  CONTROL_16                = Enum (144, _("Control 16 General Purpose Controller 1 MSB")),
+  CONTROL_17                = Enum (145, _("Control 17 General Purpose Controller 2 MSB")),
+  CONTROL_18                = Enum (146, _("Control 18 General Purpose Controller 3 MSB")),
+  CONTROL_19                = Enum (147, _("Control 19 General Purpose Controller 4 MSB")),
+  CONTROL_20                = Enum (148, _("control-20")),
+  CONTROL_21                = Enum (149, _("control-21")),
+  CONTROL_22                = Enum (150, _("control-22")),
+  CONTROL_23                = Enum (151, _("control-23")),
+  CONTROL_24                = Enum (152, _("control-24")),
+  CONTROL_25                = Enum (153, _("control-25")),
+  CONTROL_26                = Enum (154, _("control-26")),
+  CONTROL_27                = Enum (155, _("control-27")),
+  CONTROL_28                = Enum (156, _("control-28")),
+  CONTROL_29                = Enum (157, _("control-29")),
+  CONTROL_30                = Enum (158, _("control-30")),
+  CONTROL_31                = Enum (159, _("control-31")),
   // 7bit, literal channel controls, LSB values
-  MIDI_SIGNAL_CONTROL_32                = Enum (160, _("Control 32 Bank Select LSB")),
-  MIDI_SIGNAL_CONTROL_33                = Enum (161, _("Control 33 Modulation Depth LSB")),
-  MIDI_SIGNAL_CONTROL_34                = Enum (162, _("Control 34 Breath Control LSB")),
-  MIDI_SIGNAL_CONTROL_35                = Enum (163, _("control-35")),
-  MIDI_SIGNAL_CONTROL_36                = Enum (164, _("Control 36 Foot Controller LSB")),
-  MIDI_SIGNAL_CONTROL_37                = Enum (165, _("Control 37 Portamento Time LSB")),
-  MIDI_SIGNAL_CONTROL_38                = Enum (166, _("Control 38 Data Entry LSB")),
-  MIDI_SIGNAL_CONTROL_39                = Enum (167, _("Control 39 Volume LSB")),
-  MIDI_SIGNAL_CONTROL_40                = Enum (168, _("Control 40 Balance LSB")),
-  MIDI_SIGNAL_CONTROL_41                = Enum (169, _("control-41")),
-  MIDI_SIGNAL_CONTROL_42                = Enum (170, _("Control 42 Panorama LSB")),
-  MIDI_SIGNAL_CONTROL_43                = Enum (171, _("Control 43 Expression LSB")),
-  MIDI_SIGNAL_CONTROL_44                = Enum (172, _("Control 44 Effect Control 1 LSB")),
-  MIDI_SIGNAL_CONTROL_45                = Enum (173, _("Control 45 Effect Control 2 LSB")),
-  MIDI_SIGNAL_CONTROL_46                = Enum (174, _("control-46")),
-  MIDI_SIGNAL_CONTROL_47                = Enum (175, _("control-47")),
-  MIDI_SIGNAL_CONTROL_48                = Enum (176, _("Control 48 General Purpose Controller 1 LSB")),
-  MIDI_SIGNAL_CONTROL_49                = Enum (177, _("Control 49 General Purpose Controller 2 LSB")),
-  MIDI_SIGNAL_CONTROL_50                = Enum (178, _("Control 50 General Purpose Controller 3 LSB")),
-  MIDI_SIGNAL_CONTROL_51                = Enum (179, _("Control 51 General Purpose Controller 4 LSB")),
-  MIDI_SIGNAL_CONTROL_52                = Enum (180, _("control-52")),
-  MIDI_SIGNAL_CONTROL_53                = Enum (181, _("control-53")),
-  MIDI_SIGNAL_CONTROL_54                = Enum (182, _("control-54")),
-  MIDI_SIGNAL_CONTROL_55                = Enum (183, _("control-55")),
-  MIDI_SIGNAL_CONTROL_56                = Enum (184, _("control-56")),
-  MIDI_SIGNAL_CONTROL_57                = Enum (185, _("control-57")),
-  MIDI_SIGNAL_CONTROL_58                = Enum (186, _("control-58")),
-  MIDI_SIGNAL_CONTROL_59                = Enum (187, _("control-59")),
-  MIDI_SIGNAL_CONTROL_60                = Enum (188, _("control-60")),
-  MIDI_SIGNAL_CONTROL_61                = Enum (189, _("control-61")),
-  MIDI_SIGNAL_CONTROL_62                = Enum (190, _("control-62")),
-  MIDI_SIGNAL_CONTROL_63                = Enum (191, _("control-63")),
+  CONTROL_32                = Enum (160, _("Control 32 Bank Select LSB")),
+  CONTROL_33                = Enum (161, _("Control 33 Modulation Depth LSB")),
+  CONTROL_34                = Enum (162, _("Control 34 Breath Control LSB")),
+  CONTROL_35                = Enum (163, _("control-35")),
+  CONTROL_36                = Enum (164, _("Control 36 Foot Controller LSB")),
+  CONTROL_37                = Enum (165, _("Control 37 Portamento Time LSB")),
+  CONTROL_38                = Enum (166, _("Control 38 Data Entry LSB")),
+  CONTROL_39                = Enum (167, _("Control 39 Volume LSB")),
+  CONTROL_40                = Enum (168, _("Control 40 Balance LSB")),
+  CONTROL_41                = Enum (169, _("control-41")),
+  CONTROL_42                = Enum (170, _("Control 42 Panorama LSB")),
+  CONTROL_43                = Enum (171, _("Control 43 Expression LSB")),
+  CONTROL_44                = Enum (172, _("Control 44 Effect Control 1 LSB")),
+  CONTROL_45                = Enum (173, _("Control 45 Effect Control 2 LSB")),
+  CONTROL_46                = Enum (174, _("control-46")),
+  CONTROL_47                = Enum (175, _("control-47")),
+  CONTROL_48                = Enum (176, _("Control 48 General Purpose Controller 1 LSB")),
+  CONTROL_49                = Enum (177, _("Control 49 General Purpose Controller 2 LSB")),
+  CONTROL_50                = Enum (178, _("Control 50 General Purpose Controller 3 LSB")),
+  CONTROL_51                = Enum (179, _("Control 51 General Purpose Controller 4 LSB")),
+  CONTROL_52                = Enum (180, _("control-52")),
+  CONTROL_53                = Enum (181, _("control-53")),
+  CONTROL_54                = Enum (182, _("control-54")),
+  CONTROL_55                = Enum (183, _("control-55")),
+  CONTROL_56                = Enum (184, _("control-56")),
+  CONTROL_57                = Enum (185, _("control-57")),
+  CONTROL_58                = Enum (186, _("control-58")),
+  CONTROL_59                = Enum (187, _("control-59")),
+  CONTROL_60                = Enum (188, _("control-60")),
+  CONTROL_61                = Enum (189, _("control-61")),
+  CONTROL_62                = Enum (190, _("control-62")),
+  CONTROL_63                = Enum (191, _("control-63")),
   // 7bit, literal channel controls
-  MIDI_SIGNAL_CONTROL_64                = Enum (192, _("Control 64 Damper Pedal Switch (Sustain)")),
-  MIDI_SIGNAL_CONTROL_65                = Enum (193, _("Control 65 Portamento Switch")),
-  MIDI_SIGNAL_CONTROL_66                = Enum (194, _("Control 66 Sustenuto Switch")),
-  MIDI_SIGNAL_CONTROL_67                = Enum (195, _("Control 67 Soft Switch")),
-  MIDI_SIGNAL_CONTROL_68                = Enum (196, _("Control 68 Legato Pedal Switch")),
-  MIDI_SIGNAL_CONTROL_69                = Enum (197, _("Control 69 Hold Pedal Switch")),
-  MIDI_SIGNAL_CONTROL_70                = Enum (198, _("Control 70 Sound Variation")),
-  MIDI_SIGNAL_CONTROL_71                = Enum (199, _("Control 71 Filter Resonance (Timbre)")),
-  MIDI_SIGNAL_CONTROL_72                = Enum (200, _("Control 72 Sound Release Time")),
-  MIDI_SIGNAL_CONTROL_73                = Enum (201, _("Control 73 Sound Attack Time")),
-  MIDI_SIGNAL_CONTROL_74                = Enum (202, _("Control 74 Sound Brightness")),
-  MIDI_SIGNAL_CONTROL_75                = Enum (203, _("Control 75 Sound Decay Time")),
-  MIDI_SIGNAL_CONTROL_76                = Enum (204, _("Control 76 Vibrato Rate")),
-  MIDI_SIGNAL_CONTROL_77                = Enum (205, _("Control 77 Vibrato Depth")),
-  MIDI_SIGNAL_CONTROL_78                = Enum (206, _("Control 78 Vibrato Delay")),
-  MIDI_SIGNAL_CONTROL_79                = Enum (207, _("Control 79 Sound Control 10")),
-  MIDI_SIGNAL_CONTROL_80                = Enum (208, _("Control 80 General Purpose Switch 5")),
-  MIDI_SIGNAL_CONTROL_81                = Enum (209, _("Control 81 General Purpose Switch 6")),
-  MIDI_SIGNAL_CONTROL_82                = Enum (210, _("Control 82 General Purpose Switch 7")),
-  MIDI_SIGNAL_CONTROL_83                = Enum (211, _("Control 83 General Purpose Switch 8")),
-  MIDI_SIGNAL_CONTROL_84                = Enum (212, _("Control 84 Portamento Control (Note)")),
-  MIDI_SIGNAL_CONTROL_85                = Enum (213, _("control-85")),
-  MIDI_SIGNAL_CONTROL_86                = Enum (214, _("control-86")),
-  MIDI_SIGNAL_CONTROL_87                = Enum (215, _("control-87")),
-  MIDI_SIGNAL_CONTROL_88                = Enum (216, _("control-88")),
-  MIDI_SIGNAL_CONTROL_89                = Enum (217, _("control-89")),
-  MIDI_SIGNAL_CONTROL_90                = Enum (218, _("control-90")),
-  MIDI_SIGNAL_CONTROL_91                = Enum (219, _("Control 91 Reverb Depth")),
-  MIDI_SIGNAL_CONTROL_92                = Enum (220, _("Control 92 Tremolo Depth")),
-  MIDI_SIGNAL_CONTROL_93                = Enum (221, _("Control 93 Chorus Depth")),
-  MIDI_SIGNAL_CONTROL_94                = Enum (222, _("Control 93 Detune Depth")),
-  MIDI_SIGNAL_CONTROL_95                = Enum (223, _("Control 95 Phase Depth")),
-  MIDI_SIGNAL_CONTROL_96                = Enum (224, _("Control 96 Data Increment Trigger")),
-  MIDI_SIGNAL_CONTROL_97                = Enum (225, _("Control 97 Data Decrement Trigger")),
-  MIDI_SIGNAL_CONTROL_98                = Enum (226, _("Control 98 Non-Registered Parameter MSB")),
-  MIDI_SIGNAL_CONTROL_99                = Enum (227, _("Control 99 Non-Registered Parameter LSB")),
-  MIDI_SIGNAL_CONTROL_100               = Enum (228, _("Control 100 Registered Parameter MSB")),
-  MIDI_SIGNAL_CONTROL_101               = Enum (229, _("Control 101 Registered Parameter LSB")),
-  MIDI_SIGNAL_CONTROL_102               = Enum (230, _("control-102")),
-  MIDI_SIGNAL_CONTROL_103               = Enum (231, _("control-103")),
-  MIDI_SIGNAL_CONTROL_104               = Enum (232, _("control-104")),
-  MIDI_SIGNAL_CONTROL_105               = Enum (233, _("control-105")),
-  MIDI_SIGNAL_CONTROL_106               = Enum (234, _("control-106")),
-  MIDI_SIGNAL_CONTROL_107               = Enum (235, _("control-107")),
-  MIDI_SIGNAL_CONTROL_108               = Enum (236, _("control-108")),
-  MIDI_SIGNAL_CONTROL_109               = Enum (237, _("control-109")),
-  MIDI_SIGNAL_CONTROL_110               = Enum (238, _("control-110")),
-  MIDI_SIGNAL_CONTROL_111               = Enum (239, _("control-111")),
-  MIDI_SIGNAL_CONTROL_112               = Enum (240, _("control-112")),
-  MIDI_SIGNAL_CONTROL_113               = Enum (241, _("control-113")),
-  MIDI_SIGNAL_CONTROL_114               = Enum (242, _("control-114")),
-  MIDI_SIGNAL_CONTROL_115               = Enum (243, _("control-115")),
-  MIDI_SIGNAL_CONTROL_116               = Enum (244, _("control-116")),
-  MIDI_SIGNAL_CONTROL_117               = Enum (245, _("control-117")),
-  MIDI_SIGNAL_CONTROL_118               = Enum (246, _("control-118")),
-  MIDI_SIGNAL_CONTROL_119               = Enum (247, _("control-119")),
-  MIDI_SIGNAL_CONTROL_120               = Enum (248, _("Control 120 All Sound Off ITrigger")),
-  MIDI_SIGNAL_CONTROL_121               = Enum (249, _("Control 121 All Controllers Off ITrigger")),
-  MIDI_SIGNAL_CONTROL_122               = Enum (250, _("Control 122 Local Control Switch")),
-  MIDI_SIGNAL_CONTROL_123               = Enum (251, _("Control 123 All Notes Off ITrigger")),
-  MIDI_SIGNAL_CONTROL_124               = Enum (252, _("Control 124 Omni Mode Off ITrigger")),
-  MIDI_SIGNAL_CONTROL_125               = Enum (253, _("Control 125 Omni Mode On ITrigger")),
-  MIDI_SIGNAL_CONTROL_126               = Enum (254, _("Control 126 Monophonic Voices Mode")),
-  MIDI_SIGNAL_CONTROL_127               = Enum (255, _("Control 127 Polyphonic Mode On ITrigger")),
+  CONTROL_64                = Enum (192, _("Control 64 Damper Pedal Switch (Sustain)")),
+  CONTROL_65                = Enum (193, _("Control 65 Portamento Switch")),
+  CONTROL_66                = Enum (194, _("Control 66 Sustenuto Switch")),
+  CONTROL_67                = Enum (195, _("Control 67 Soft Switch")),
+  CONTROL_68                = Enum (196, _("Control 68 Legato Pedal Switch")),
+  CONTROL_69                = Enum (197, _("Control 69 Hold Pedal Switch")),
+  CONTROL_70                = Enum (198, _("Control 70 Sound Variation")),
+  CONTROL_71                = Enum (199, _("Control 71 Filter Resonance (Timbre)")),
+  CONTROL_72                = Enum (200, _("Control 72 Sound Release Time")),
+  CONTROL_73                = Enum (201, _("Control 73 Sound Attack Time")),
+  CONTROL_74                = Enum (202, _("Control 74 Sound Brightness")),
+  CONTROL_75                = Enum (203, _("Control 75 Sound Decay Time")),
+  CONTROL_76                = Enum (204, _("Control 76 Vibrato Rate")),
+  CONTROL_77                = Enum (205, _("Control 77 Vibrato Depth")),
+  CONTROL_78                = Enum (206, _("Control 78 Vibrato Delay")),
+  CONTROL_79                = Enum (207, _("Control 79 Sound Control 10")),
+  CONTROL_80                = Enum (208, _("Control 80 General Purpose Switch 5")),
+  CONTROL_81                = Enum (209, _("Control 81 General Purpose Switch 6")),
+  CONTROL_82                = Enum (210, _("Control 82 General Purpose Switch 7")),
+  CONTROL_83                = Enum (211, _("Control 83 General Purpose Switch 8")),
+  CONTROL_84                = Enum (212, _("Control 84 Portamento Control (Note)")),
+  CONTROL_85                = Enum (213, _("control-85")),
+  CONTROL_86                = Enum (214, _("control-86")),
+  CONTROL_87                = Enum (215, _("control-87")),
+  CONTROL_88                = Enum (216, _("control-88")),
+  CONTROL_89                = Enum (217, _("control-89")),
+  CONTROL_90                = Enum (218, _("control-90")),
+  CONTROL_91                = Enum (219, _("Control 91 Reverb Depth")),
+  CONTROL_92                = Enum (220, _("Control 92 Tremolo Depth")),
+  CONTROL_93                = Enum (221, _("Control 93 Chorus Depth")),
+  CONTROL_94                = Enum (222, _("Control 93 Detune Depth")),
+  CONTROL_95                = Enum (223, _("Control 95 Phase Depth")),
+  CONTROL_96                = Enum (224, _("Control 96 Data Increment Trigger")),
+  CONTROL_97                = Enum (225, _("Control 97 Data Decrement Trigger")),
+  CONTROL_98                = Enum (226, _("Control 98 Non-Registered Parameter MSB")),
+  CONTROL_99                = Enum (227, _("Control 99 Non-Registered Parameter LSB")),
+  CONTROL_100               = Enum (228, _("Control 100 Registered Parameter MSB")),
+  CONTROL_101               = Enum (229, _("Control 101 Registered Parameter LSB")),
+  CONTROL_102               = Enum (230, _("control-102")),
+  CONTROL_103               = Enum (231, _("control-103")),
+  CONTROL_104               = Enum (232, _("control-104")),
+  CONTROL_105               = Enum (233, _("control-105")),
+  CONTROL_106               = Enum (234, _("control-106")),
+  CONTROL_107               = Enum (235, _("control-107")),
+  CONTROL_108               = Enum (236, _("control-108")),
+  CONTROL_109               = Enum (237, _("control-109")),
+  CONTROL_110               = Enum (238, _("control-110")),
+  CONTROL_111               = Enum (239, _("control-111")),
+  CONTROL_112               = Enum (240, _("control-112")),
+  CONTROL_113               = Enum (241, _("control-113")),
+  CONTROL_114               = Enum (242, _("control-114")),
+  CONTROL_115               = Enum (243, _("control-115")),
+  CONTROL_116               = Enum (244, _("control-116")),
+  CONTROL_117               = Enum (245, _("control-117")),
+  CONTROL_118               = Enum (246, _("control-118")),
+  CONTROL_119               = Enum (247, _("control-119")),
+  CONTROL_120               = Enum (248, _("Control 120 All Sound Off ITrigger")),
+  CONTROL_121               = Enum (249, _("Control 121 All Controllers Off ITrigger")),
+  CONTROL_122               = Enum (250, _("Control 122 Local Control Switch")),
+  CONTROL_123               = Enum (251, _("Control 123 All Notes Off ITrigger")),
+  CONTROL_124               = Enum (252, _("Control 124 Omni Mode Off ITrigger")),
+  CONTROL_125               = Enum (253, _("Control 125 Omni Mode On ITrigger")),
+  CONTROL_126               = Enum (254, _("Control 126 Monophonic Voices Mode")),
+  CONTROL_127               = Enum (255, _("Control 127 Polyphonic Mode On ITrigger")),
 };
 
 // For musical tunings, see: http://en.wikipedia.org/wiki/Musical_tuning
@@ -518,7 +518,7 @@ sequence PartNoteSeq {
 record PartControl {
   int32          id           = Num ("ID", "", ":readwrite");
   int32          tick         = Range ("Tick", "", ":readwrite", 0, MAXINT31, 1);
-  MidiSignalType control_type;
+  MidiSignal     control_type;
   float64        value        = Range ("Value", "", ":readwrite", -1, +1, 0.1);
   bool           selected     = Bool ("Selected", "", ":readwrite");
 };
@@ -530,30 +530,30 @@ sequence PartControlSeq {
 
 /// Data interface for containment of piano notes and MIDI effects.
 interface Part : Item {
-  PartControlSeq list_selected_controls    (MidiSignalType control_type); ///< List all currently selected 
control events of a specific type.
-  PartControlSeq list_controls             (int32 tick, int32 duration, MidiSignalType control_type); ///< 
List all control events within a tick range.
-  PartControlSeq get_channel_controls      (int32 channel, int32 tick, int32 duration, MidiSignalType 
control_type); ///< Retrieve all control events of a specific type within range of a channel.
-  PartControlSeq get_controls              (int32 tick, MidiSignalType control_type); ///< Retrieve all 
control events of a specific type at specified tick.
+  PartControlSeq list_selected_controls    (MidiSignal control_type); ///< List all currently selected 
control events of a specific type.
+  PartControlSeq list_controls             (int32 tick, int32 duration, MidiSignal control_type); ///< List 
all control events within a tick range.
+  PartControlSeq get_channel_controls      (int32 channel, int32 tick, int32 duration, MidiSignal 
control_type); ///< Retrieve all control events of a specific type within range of a channel.
+  PartControlSeq get_controls              (int32 tick, MidiSignal control_type); ///< Retrieve all control 
events of a specific type at specified tick.
   SongTiming     get_timing                (int32 tick); ///< Retrieve song timing information at a specific 
tick.
   int32          get_max_note              ();           ///< Retrieve the maximum note supported in this 
part.
   int32          get_min_note              ();           ///< Retrieve the minimum note supported in this 
part.
-  Error          change_control            (int32 id, int32 tick, MidiSignalType control_type, float64 
value); ///< Change an existing control event within a part.
+  Error          change_control            (int32 id, int32 tick, MidiSignal control_type, float64 value); 
///< Change an existing control event within a part.
   Error          change_note               (int32 id, int32 tick, int32 duration, int32 note, int32 
fine_tune, float64 velocity); ///< Change an existing note within a part.
   Error          delete_event              (int32 id); ///< Delete an existing event from a part.
-  int32          insert_control            (int32 tick, MidiSignalType control_type, float64 value); ///< 
Insert a new control event into a part.
+  int32          insert_control            (int32 tick, MidiSignal control_type, float64 value); ///< Insert 
a new control event into a part.
   int32          insert_note               (int32 channel, int32 tick, int32 duration, int32 note, int32 
fine_tune, float64 velocity); ///< Insert a new note into a part.
   int32          insert_note_auto          (int32 tick, int32 duration, int32 note, int32 fine_tune, float64 
velocity); ///< Insert a new note into a part with automatic channel selection.
   bool           is_event_selected         (int32 id); ///< Check whether an event is selected.
   void           queue_controls            (int32 tick, int32 duration); ///< Queue updates for all control 
events and notes starting within the given range.
   void           queue_notes               (int32 tick, int32 duration, int32 min_note, int32 max_note); 
///< Queue updates for all notes starting within the given rectangle.
   void           select_notes_exclusive    (int32 tick, int32 duration, int32 min_note, int32 max_note); 
///< Select all notes within rectangle and deselect all others.
-  void           select_controls_exclusive (int32 tick, int32 duration, MidiSignalType control_type); ///< 
Select all control events within range and deselect all others.
+  void           select_controls_exclusive (int32 tick, int32 duration, MidiSignal control_type); ///< 
Select all control events within range and deselect all others.
   void           select_notes              (int32 tick, int32 duration, int32 min_note, int32 max_note); 
///< Select all notes within rectangle.
   void           select_event              (int32 id); ///< Select an existing event.
-  void           select_controls           (int32 tick, int32 duration, MidiSignalType control_type); ///< 
Select all control events within range.
+  void           select_controls           (int32 tick, int32 duration, MidiSignal control_type); ///< 
Select all control events within range.
   void           deselect_notes            (int32 tick, int32 duration, int32 min_note, int32 max_note); 
///< Deselect all notes within rectangle.
   void           deselect_event            (int32 id); ///< Deselect an existing event.
-  void           deselect_controls         (int32 tick, int32 duration, MidiSignalType control_type); ///< 
Deselect all controls within given range.
+  void           deselect_controls         (int32 tick, int32 duration, MidiSignal control_type); ///< 
Deselect all controls within given range.
   PartNoteSeq list_notes_crossing (int32 tick, int32 duration); ///< List all notes within or crossing a 
tick range.
   PartNoteSeq list_notes_within   (int32 channel, int32 tick, int32 duration); ///< List all notes within a 
tick range.
   PartNoteSeq list_selected_notes (); ///< List all currently selected notes.
diff --git a/bse/bsecxxmodule.cc b/bse/bsecxxmodule.cc
index 2b0f901..1c34f1b 100644
--- a/bse/bsecxxmodule.cc
+++ b/bse/bsecxxmodule.cc
@@ -225,7 +225,7 @@ auto_update_data_free (gpointer data)   /* UserThread */
 static void
 midi_control_handler (gpointer                  handler_data,  /* MIDI Device Thread (and possibly others) */
                       guint64                   tick_stamp,
-                      Bse::MidiSignalType         signal_type,
+                      Bse::MidiSignal         signal_type,
                       gfloat                    control_value, /* -1 .. +1 */
                       guint                     n_mcdatas,
                       BseModule          *const*modules,
diff --git a/bse/bsemidicontroller.cc b/bse/bsemidicontroller.cc
index f1d3cac..cb31735 100644
--- a/bse/bsemidicontroller.cc
+++ b/bse/bsemidicontroller.cc
@@ -98,25 +98,25 @@ bse_midi_controller_class_init (BseMidiControllerClass *klass)
                              PROP_CONTROL_1,
                              bse_param_spec_genum ("control_1", "Signal 1", NULL,
                                                    BSE_TYPE_MIDI_SIGNAL_TYPE,
-                                                   Bse::MidiSignal::PITCH_BEND,
+                                                   int64 (Bse::MidiSignal::PITCH_BEND),
                                                    SFI_PARAM_STANDARD));
   bse_object_class_add_param (object_class, "MIDI Controls",
                              PROP_CONTROL_2,
                              bse_param_spec_genum ("control_2", "Signal 2", NULL,
                                                    BSE_TYPE_MIDI_SIGNAL_TYPE,
-                                                   Bse::MidiSignal::CONTINUOUS_1,
+                                                   int64 (Bse::MidiSignal::CONTINUOUS_1),
                                                    SFI_PARAM_STANDARD));
   bse_object_class_add_param (object_class, "MIDI Controls",
                              PROP_CONTROL_3,
                              bse_param_spec_genum ("control_3", "Signal 3", NULL,
                                                    BSE_TYPE_MIDI_SIGNAL_TYPE,
-                                                   Bse::MidiSignal::CONTINUOUS_7,
+                                                   int64 (Bse::MidiSignal::CONTINUOUS_7),
                                                    SFI_PARAM_STANDARD));
   bse_object_class_add_param (object_class, "MIDI Controls",
                              PROP_CONTROL_4,
                              bse_param_spec_genum ("control_4", "Signal 4", NULL,
                                                    BSE_TYPE_MIDI_SIGNAL_TYPE,
-                                                   Bse::MidiSignal::PRESSURE,
+                                                   int64 (Bse::MidiSignal::PRESSURE),
                                                    SFI_PARAM_STANDARD));
 
   ochannel_id = bse_source_class_add_ochannel (source_class, "ctrl-out1", _("Ctrl Out1"), _("MIDI Signal 
1"));
@@ -154,19 +154,19 @@ bse_midi_controller_set_property (GObject      *object,
       bse_midi_controller_update_modules (self);
       break;
     case PROP_CONTROL_1:
-      self->controls[0] = Bse::MidiSignalType (g_value_get_enum (value));
+      self->controls[0] = Bse::MidiSignal (g_value_get_enum (value));
       bse_midi_controller_update_modules (self);
       break;
     case PROP_CONTROL_2:
-      self->controls[1] = Bse::MidiSignalType (g_value_get_enum (value));
+      self->controls[1] = Bse::MidiSignal (g_value_get_enum (value));
       bse_midi_controller_update_modules (self);
       break;
     case PROP_CONTROL_3:
-      self->controls[2] = Bse::MidiSignalType (g_value_get_enum (value));
+      self->controls[2] = Bse::MidiSignal (g_value_get_enum (value));
       bse_midi_controller_update_modules (self);
       break;
     case PROP_CONTROL_4:
-      self->controls[3] = Bse::MidiSignalType (g_value_get_enum (value));
+      self->controls[3] = Bse::MidiSignal (g_value_get_enum (value));
       bse_midi_controller_update_modules (self);
       break;
     default:
@@ -189,16 +189,16 @@ bse_midi_controller_get_property (GObject    *object,
       sfi_value_set_int (value, self->midi_channel);
       break;
     case PROP_CONTROL_1:
-      g_value_set_enum (value, self->controls[0]);
+      g_value_set_enum (value, int64 (self->controls[0]));
       break;
     case PROP_CONTROL_2:
-      g_value_set_enum (value, self->controls[1]);
+      g_value_set_enum (value, int64 (self->controls[1]));
       break;
     case PROP_CONTROL_3:
-      g_value_set_enum (value, self->controls[2]);
+      g_value_set_enum (value, int64 (self->controls[2]));
       break;
     case PROP_CONTROL_4:
-      g_value_set_enum (value, self->controls[3]);
+      g_value_set_enum (value, int64 (self->controls[3]));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (self, param_id, pspec);
diff --git a/bse/bsemidicontroller.hh b/bse/bsemidicontroller.hh
index fd966c8..7a59929 100644
--- a/bse/bsemidicontroller.hh
+++ b/bse/bsemidicontroller.hh
@@ -18,7 +18,7 @@ G_BEGIN_DECLS
 
 struct BseMidiController : BseSource {
   guint                     midi_channel;
-  Bse::MidiSignalType  controls[4];
+  Bse::MidiSignal  controls[4];
 };
 struct BseMidiControllerClass : BseSourceClass
 {};
diff --git a/bse/bsemidievent.cc b/bse/bsemidievent.cc
index fb4dbc6..21dfcbb 100644
--- a/bse/bsemidievent.cc
+++ b/bse/bsemidievent.cc
@@ -11,13 +11,13 @@
 
 /* --- functions --- */
 /**
- * @param type Bse::MidiSignalType type
+ * @param type Bse::MidiSignal type
  *
  * Get the initial default value for a midi signal.
  * This function is MT-safe and may be called from any thread.
  */
 double
-bse_midi_signal_default (Bse::MidiSignalType type)
+bse_midi_signal_default (Bse::MidiSignal type)
 {
   switch (type)
     {
@@ -48,9 +48,9 @@ bse_midi_signal_default (Bse::MidiSignalType type)
 }
 
 const char*
-bse_midi_signal_name (Bse::MidiSignalType signal)
+bse_midi_signal_name (Bse::MidiSignal signal)
 {
-  const Rapicorn::Aida::EnumValue ev = Rapicorn::Aida::enum_info<Bse::MidiSignalType>().find_value (signal);
+  const Rapicorn::Aida::EnumValue ev = Rapicorn::Aida::enum_info<Bse::MidiSignal>().find_value (signal);
   return ev.blurb;
 }
 
@@ -163,15 +163,14 @@ bse_midi_event_note_off (uint   midi_channel,
 BseMidiEvent*
 bse_midi_event_signal (uint              midi_channel,
                        uint64            delta_time,
-                       Bse::MidiSignalType signal_type,
+                       Bse::MidiSignal signal_type,
                        float             value)
 {
-  BseMidiEvent *event;
-
   assert_return (value >= -1 && value <= +1, NULL);
   assert_return (midi_channel > 0, NULL);
 
-  event = bse_midi_alloc_event ();
+  BseMidiEvent *event = bse_midi_alloc_event ();
+  const int64 signal_int = int64 (signal_type);
   switch (signal_type)
     {
     case Bse::MidiSignal::PROGRAM:
@@ -197,16 +196,16 @@ bse_midi_event_signal (uint              midi_channel,
       sfi_delete_struct (BseMidiEvent, event);
       return NULL;
     default:
-      if (signal_type >= 128)   /* literal controls */
+      if (signal_int >= 128)   /* literal controls */
         {
           event->status = BSE_MIDI_CONTROL_CHANGE;
-          event->data.control.control = signal_type - 128;
+          event->data.control.control = signal_int - 128;
           event->data.control.value = value;
         }
       else /* continuous controls */
         {
           event->status = BSE_MIDI_X_CONTINUOUS_CHANGE;
-          event->data.control.control = signal_type - 64;
+          event->data.control.control = signal_int - 64;
           event->data.control.value = value;
         }
       break;
diff --git a/bse/bsemidievent.hh b/bse/bsemidievent.hh
index 5dc8c3e..1902e1a 100644
--- a/bse/bsemidievent.hh
+++ b/bse/bsemidievent.hh
@@ -134,10 +134,10 @@ BseMidiEvent* bse_midi_event_note_off (uint                midi_channel,
                                        gfloat              frequency);
 BseMidiEvent* bse_midi_event_signal   (uint                midi_channel,
                                        uint64              delta_time,
-                                       Bse::MidiSignalType   signal_type,
+                                       Bse::MidiSignal   signal_type,
                                        float               value);
-double        bse_midi_signal_default (Bse::MidiSignalType signal);
-const char*   bse_midi_signal_name    (Bse::MidiSignalType signal);
+double        bse_midi_signal_default (Bse::MidiSignal signal);
+const char*   bse_midi_signal_name    (Bse::MidiSignal signal);
 
 G_END_DECLS
 
diff --git a/bse/bsemidifile.cc b/bse/bsemidifile.cc
index 196218e..6cb3c59 100644
--- a/bse/bsemidifile.cc
+++ b/bse/bsemidifile.cc
@@ -240,7 +240,7 @@ bse_midi_file_add_part_events (BseMidiFile *smf,
   for (i = 0; i < track->n_events; i++)
     {
       BseMidiEvent *event = track->events[i];
-      Bse::MidiSignalType msignal = Bse::MidiSignalType (0);
+      Bse::MidiSignal msignal = Bse::MidiSignal (0);
       start += event->delta_time;
       switch (event->status)
         {
@@ -261,25 +261,25 @@ bse_midi_file_add_part_events (BseMidiFile *smf,
           part->as<Bse::PartImpl*>()->insert_note_auto (start * smf->tpqn_rate, dur * smf->tpqn_rate, note, 
fine_tune, velocity);
           break;
         case BSE_MIDI_CONTROL_CHANGE:
-          if (!msignal)
+          if (msignal == 0)
             {
-              msignal = Bse::MidiSignalType (Bse::MidiSignal::CONTROL_0 + event->data.control.control);
+              msignal = Bse::MidiSignal (int64 (Bse::MidiSignal::CONTROL_0) + event->data.control.control);
               fvalue = event->data.control.value;
             }
         case BSE_MIDI_PROGRAM_CHANGE:
-          if (!msignal)
+          if (msignal == 0)
             {
               msignal = Bse::MidiSignal::PROGRAM;
               fvalue = event->data.program * (1.0 / (double) 0x7F);
             }
         case BSE_MIDI_CHANNEL_PRESSURE:
-          if (!msignal)
+          if (msignal == 0)
             {
               msignal = Bse::MidiSignal::PRESSURE;
               fvalue = event->data.intensity;
             }
         case BSE_MIDI_PITCH_BEND:
-          if (!msignal)
+          if (msignal == 0)
             {
               msignal = Bse::MidiSignal::PITCH_BEND;
               fvalue = event->data.pitch_bend;
diff --git a/bse/bsemidireceiver.cc b/bse/bsemidireceiver.cc
index 9556e2c..78d78da 100644
--- a/bse/bsemidireceiver.cc
+++ b/bse/bsemidireceiver.cc
@@ -68,10 +68,10 @@ static Bse::Mutex global_midi_mutex;
 /* --- midi controls --- */
 struct ControlKey {
   guint                  midi_channel;
-  Bse::MidiSignalType      type;
+  Bse::MidiSignal      type;
   explicit
   ControlKey (guint             _mc,
-              Bse::MidiSignalType _tp) :
+              Bse::MidiSignal _tp) :
     midi_channel (_mc),
     type (_tp) {}
   bool
@@ -198,7 +198,7 @@ struct ControlValue {
   }
   void
   notify_handlers (guint64           tick_stamp,
-                   Bse::MidiSignalType signal_type,
+                   Bse::MidiSignal signal_type,
                    BseTrans         *trans)
   {
     for (HandlerList::iterator it = handlers.begin(); it != handlers.end(); it++)
@@ -343,7 +343,7 @@ public:
 private:
   ControlValue*
   get_control_value (guint             midi_channel,
-                     Bse::MidiSignalType type)
+                     Bse::MidiSignal type)
   {
     Controls::iterator it = controls.find (ControlKey (midi_channel, type));
     if (it != controls.end())
@@ -355,7 +355,7 @@ private:
 public:
   gfloat
   get_control (guint             midi_channel,
-               Bse::MidiSignalType type)
+               Bse::MidiSignal type)
   {
     Controls::iterator it = controls.find (ControlKey (midi_channel, type));
     return it != controls.end() ? it->second.value : bse_midi_signal_default (type);
@@ -363,7 +363,7 @@ public:
   GSList*
   set_control (guint             midi_channel,
                guint64           tick_stamp,
-               Bse::MidiSignalType signal_type,
+               Bse::MidiSignal signal_type,
                gfloat            value,
                BseTrans         *trans)
   {
@@ -379,7 +379,7 @@ public:
   }
   void
   add_control (guint             midi_channel,
-               Bse::MidiSignalType type,
+               Bse::MidiSignal type,
                BseModule        *module)
   {
     ControlValue *cv = get_control_value (midi_channel, type);
@@ -387,7 +387,7 @@ public:
   }
   void
   remove_control (guint             midi_channel,
-                  Bse::MidiSignalType type,
+                  Bse::MidiSignal type,
                   BseModule        *module)
   {
     ControlValue *cv = get_control_value (midi_channel, type);
@@ -395,7 +395,7 @@ public:
   }
   bool
   add_control_handler (guint                 midi_channel,
-                       Bse::MidiSignalType     signal_type,
+                       Bse::MidiSignal     signal_type,
                        BseMidiControlHandler handler_func,
                        gpointer              handler_data,
                        BseModule            *module)
@@ -405,7 +405,7 @@ public:
   }
   void
   set_control_handler_data (guint                 midi_channel,
-                            Bse::MidiSignalType     signal_type,
+                            Bse::MidiSignal     signal_type,
                             BseMidiControlHandler handler_func,
                             gpointer              handler_data,
                             gpointer              extra_data,
@@ -416,7 +416,7 @@ public:
   }
   void
   remove_control_handler (guint                 midi_channel,
-                          Bse::MidiSignalType     signal_type,
+                          Bse::MidiSignal     signal_type,
                           BseMidiControlHandler handler_func,
                           gpointer              handler_data,
                           BseModule            *module)
@@ -432,7 +432,7 @@ typedef struct
 {
   guint             midi_channel;
   gfloat            values[BSE_MIDI_CONTROL_MODULE_N_CHANNELS];
-  Bse::MidiSignalType signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS];
+  Bse::MidiSignal signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS];
   guint             ref_count;
 } MidiCModuleData;
 
@@ -451,7 +451,7 @@ midi_control_module_process_U (BseModule *module, /* vswitch->smodule */
 static BseModule*
 create_midi_control_module_L (MidiReceiver      *self,
                               guint              midi_channel,
-                              Bse::MidiSignalType  signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS])
+                              Bse::MidiSignal  signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS])
 {
   static const BseModuleClass midi_cmodule_class = {
     0,                                  /* n_istreams */
@@ -483,7 +483,7 @@ create_midi_control_module_L (MidiReceiver      *self,
 }
 
 typedef struct {
-  Bse::MidiSignalType signal;
+  Bse::MidiSignal signal;
   gfloat            value;
 } MidiCModuleAccessData;
 
@@ -503,7 +503,7 @@ midi_control_module_access_U (BseModule *module,
 static void
 change_midi_control_modules_L (GSList           *modules,
                                guint64           tick_stamp,
-                               Bse::MidiSignalType signal,
+                               Bse::MidiSignal signal,
                                gfloat            value,
                                BseTrans         *trans)
 {
@@ -526,7 +526,7 @@ change_midi_control_modules_L (GSList           *modules,
 static gboolean
 match_midi_control_module_L (BseModule         *cmodule,
                              guint              midi_channel,
-                             Bse::MidiSignalType  signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS])
+                             Bse::MidiSignal  signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS])
 {
   MidiCModuleData *cdata = (MidiCModuleData *) cmodule->user_data;
   gboolean match = TRUE;
@@ -1352,7 +1352,7 @@ bse_midi_receiver_fetch_notify_events (BseMidiReceiver *self)
 BseModule*
 bse_midi_receiver_retrieve_control_module (BseMidiReceiver  *self,
                                           guint             midi_channel,
-                                          Bse::MidiSignalType signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS],
+                                          Bse::MidiSignal signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS],
                                           BseTrans         *trans)
 {
   BseModule *cmodule;
@@ -1411,7 +1411,7 @@ bse_midi_receiver_discard_control_module (BseMidiReceiver *self,
           cdata->ref_count--;
           if (!cdata->ref_count)
             {
-             Bse::MidiSignalType *signals = cdata->signals;
+             Bse::MidiSignal *signals = cdata->signals;
              guint midi_channel = cdata->midi_channel;
               self->n_cmodules--;
               self->cmodules[i] = self->cmodules[self->n_cmodules];
@@ -1435,7 +1435,7 @@ bse_midi_receiver_discard_control_module (BseMidiReceiver *self,
 gboolean
 bse_midi_receiver_add_control_handler (BseMidiReceiver      *self,
                                        guint                 midi_channel,
-                                       Bse::MidiSignalType     signal_type,
+                                       Bse::MidiSignal     signal_type,
                                        BseMidiControlHandler handler_func,
                                        gpointer              handler_data,
                                        BseModule            *module)
@@ -1454,7 +1454,7 @@ bse_midi_receiver_add_control_handler (BseMidiReceiver      *self,
 void
 bse_midi_receiver_set_control_handler_data (BseMidiReceiver      *self,
                                             guint                 midi_channel,
-                                            Bse::MidiSignalType     signal_type,
+                                            Bse::MidiSignal     signal_type,
                                             BseMidiControlHandler handler_func,
                                             gpointer              handler_data,
                                             gpointer              extra_data,
@@ -1472,7 +1472,7 @@ bse_midi_receiver_set_control_handler_data (BseMidiReceiver      *self,
 void
 bse_midi_receiver_remove_control_handler (BseMidiReceiver      *self,
                                           guint                 midi_channel,
-                                          Bse::MidiSignalType     signal_type,
+                                          Bse::MidiSignal     signal_type,
                                           BseMidiControlHandler handler_func,
                                           gpointer              handler_data,
                                           BseModule            *module)
@@ -1785,7 +1785,7 @@ static inline void
 update_midi_signal_L (BseMidiReceiver  *self,
                      guint             channel,
                      guint64           tick_stamp,
-                     Bse::MidiSignalType signal,
+                     Bse::MidiSignal signal,
                      gfloat            value,
                      BseTrans         *trans)
 {
@@ -1804,9 +1804,9 @@ static inline void
 update_midi_signal_continuous_msb_L (BseMidiReceiver  *self,
                                     guint             channel,
                                     guint64           tick_stamp,
-                                    Bse::MidiSignalType continuous_signal,
+                                    Bse::MidiSignal continuous_signal,
                                     gfloat            value,
-                                    Bse::MidiSignalType lsb_signal,
+                                    Bse::MidiSignal lsb_signal,
                                     BseTrans         *trans)
 {
   gint ival;
@@ -1823,8 +1823,8 @@ static inline void
 update_midi_signal_continuous_lsb_L (BseMidiReceiver  *self,
                                     guint             channel,
                                     guint64           tick_stamp,
-                                    Bse::MidiSignalType continuous_signal,
-                                    Bse::MidiSignalType msb_signal,
+                                    Bse::MidiSignal continuous_signal,
+                                    Bse::MidiSignal msb_signal,
                                     gfloat            value,
                                     BseTrans         *trans)
 {
@@ -1855,23 +1855,23 @@ process_midi_control_L (BseMidiReceiver *self,
   if (extra_continuous)
     {
       /* internal Bse::MIDI_SIGNAL_CONTINUOUS_* change */
-      update_midi_signal_L (self, channel, tick_stamp, static_cast<Bse::MidiSignalType> (64 + control), 
value, trans);
+      update_midi_signal_L (self, channel, tick_stamp, static_cast<Bse::MidiSignal> (64 + control), value, 
trans);
       return;
     }
 
   /* all MIDI controls are passed literally as Bse::MIDI_SIGNAL_CONTROL_* */
-  update_midi_signal_L (self, channel, tick_stamp, static_cast<Bse::MidiSignalType> (128 + control), value, 
trans);
+  update_midi_signal_L (self, channel, tick_stamp, static_cast<Bse::MidiSignal> (128 + control), value, 
trans);
 
   if (control < 32)            /* MSB part of continuous 14bit signal */
     update_midi_signal_continuous_msb_L (self, channel, tick_stamp,
-                                        static_cast<Bse::MidiSignalType> (control + 64),               /* 
continuous signal */
+                                        static_cast<Bse::MidiSignal> (control + 64),           /* continuous 
signal */
                                         value,                                                 /* MSB value 
*/
-                                        static_cast<Bse::MidiSignalType> (128 + control + 32), /* LSB signal 
*/
+                                        static_cast<Bse::MidiSignal> (128 + control + 32),     /* LSB signal 
*/
                                         trans);
   else if (control < 64)       /* LSB part of continuous 14bit signal */
     update_midi_signal_continuous_lsb_L (self, channel, tick_stamp,
-                                        static_cast<Bse::MidiSignalType> (control + 32),               /* 
continuous signal */
-                                        static_cast<Bse::MidiSignalType> (128 + control - 32), /* MSB signal 
*/
+                                        static_cast<Bse::MidiSignal> (control + 32),           /* continuous 
signal */
+                                        static_cast<Bse::MidiSignal> (128 + control - 32),     /* MSB signal 
*/
                                         value,                                                 /* LSB value 
*/
                                         trans);
   else switch (control)
diff --git a/bse/bsemidireceiver.hh b/bse/bsemidireceiver.hh
index 8cf7bcc..a158aca 100644
--- a/bse/bsemidireceiver.hh
+++ b/bse/bsemidireceiver.hh
@@ -14,7 +14,7 @@ G_BEGIN_DECLS
 #define        BSE_MIDI_VOICE_N_CHANNELS                          (3)
 typedef void   (*BseMidiControlHandler)                    (gpointer           handler_data,
                                                             guint64            tick_stamp,
-                                                            Bse::MidiSignalType  signal_type,
+                                                            Bse::MidiSignal  signal_type,
                                                             gfloat             control_value,
                                                             guint              n_modules,
                                                             BseModule  *const *modules,
@@ -29,27 +29,27 @@ void             bse_midi_receiver_process_events          (BseMidiReceiver   *s
                                                             guint64            max_tick_stamp);
 BseModule*       bse_midi_receiver_retrieve_control_module (BseMidiReceiver   *self,
                                                             guint              midi_channel,
-                                                            Bse::MidiSignalType  
signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS],
+                                                            Bse::MidiSignal  
signals[BSE_MIDI_CONTROL_MODULE_N_CHANNELS],
                                                             BseTrans          *trans);
 void             bse_midi_receiver_discard_control_module  (BseMidiReceiver   *self,
                                                             BseModule         *cmodule,
                                                             BseTrans          *trans);
 gboolean         bse_midi_receiver_add_control_handler     (BseMidiReceiver   *self,
                                                             guint              midi_channel,
-                                                            Bse::MidiSignalType  signal_type,
+                                                            Bse::MidiSignal  signal_type,
                                                             BseMidiControlHandler handler_func,
                                                             gpointer           handler_data,
                                                             BseModule         *module);
 void             bse_midi_receiver_set_control_handler_data(BseMidiReceiver   *self,
                                                             guint              midi_channel,
-                                                            Bse::MidiSignalType  signal_type,
+                                                            Bse::MidiSignal  signal_type,
                                                             BseMidiControlHandler handler_func,
                                                             gpointer           handler_data,
                                                             gpointer           extra_data,
                                                             BseFreeFunc        extra_free); /* UserThread */
 void             bse_midi_receiver_remove_control_handler  (BseMidiReceiver   *self,
                                                             guint              midi_channel,
-                                                            Bse::MidiSignalType  signal_type,
+                                                            Bse::MidiSignal  signal_type,
                                                             BseMidiControlHandler handler_func,
                                                             gpointer           handler_data,
                                                             BseModule         *module);
diff --git a/bse/bsepart.cc b/bse/bsepart.cc
index bc2cd33..3d064f4 100644
--- a/bse/bsepart.cc
+++ b/bse/bsepart.cc
@@ -536,7 +536,7 @@ void
 bse_part_select_controls (BsePart          *self,
                           guint             tick,
                           guint             duration,
-                          Bse::MidiSignalType ctype,
+                          Bse::MidiSignal ctype,
                           gboolean          selected)
 {
   assert_return (BSE_IS_PART (self));
@@ -620,7 +620,7 @@ void
 bse_part_select_controls_exclusive (BsePart           *self,
                                     guint              tick,
                                     guint              duration,
-                                    Bse::MidiSignalType  ctype)
+                                    Bse::MidiSignal  ctype)
 {
   BsePartTickNode *node, *bound;
 
@@ -817,7 +817,7 @@ bse_part_insert_note (BsePart *self,
 }
 
 static gboolean
-check_valid_control_type (Bse::MidiSignalType ctype)
+check_valid_control_type (Bse::MidiSignal ctype)
 {
   if (ctype >= Bse::MidiSignal::PROGRAM && ctype <= Bse::MidiSignal::FINE_TUNE)
     return TRUE;
@@ -833,7 +833,7 @@ check_valid_control_type (Bse::MidiSignalType ctype)
 guint
 bse_part_insert_control (BsePart          *self,
                          guint             tick,
-                         Bse::MidiSignalType ctype,
+                         Bse::MidiSignal ctype,
                          gfloat            value)
 {
   BsePartTickNode *node;
@@ -859,7 +859,7 @@ bse_part_insert_control (BsePart          *self,
       }
   /* insert new event */
   id = bse_part_alloc_id (self, tick);
-  bse_part_controls_insert (&self->controls, node, id, FALSE, ctype, value);
+  bse_part_controls_insert (&self->controls, node, id, FALSE, int64 (ctype), value);
   queue_control_update (self, tick);
   if (tick >= self->last_tick_SL)
     part_update_last_tick (self);
@@ -958,7 +958,7 @@ gboolean
 bse_part_change_control (BsePart           *self,
                          guint              id,
                          guint              tick,
-                         Bse::MidiSignalType  ctype,
+                         Bse::MidiSignal  ctype,
                          gfloat             value)
 {
   guint old_tick;
@@ -1000,13 +1000,13 @@ bse_part_change_control (BsePart           *self,
           bse_part_controls_remove (&self->controls, old_tick, cev);    /* invalidates node */
           bse_part_move_id (self, id, tick);
           node = bse_part_controls_ensure_tick (&self->controls, tick);
-          bse_part_controls_insert (&self->controls, node, id, selected, ctype, value);
+          bse_part_controls_insert (&self->controls, node, id, selected, int64 (ctype), value);
           queue_control_update (self, tick);
           if (MAX (old_tick, tick) >= self->last_tick_SL)
             part_update_last_tick (self);
         }
       else
-        bse_part_controls_change (&self->controls, node, cev, id, selected, ctype, value);
+        bse_part_controls_change (&self->controls, node, cev, id, selected, int64 (ctype), value);
       return TRUE;
     }
   else
@@ -1040,7 +1040,7 @@ bse_part_change_control (BsePart           *self,
 }
 
 static inline gfloat
-note_get_control_value (const BsePartEventNote *note, Bse::MidiSignalType ctype)
+note_get_control_value (const BsePartEventNote *note, Bse::MidiSignal ctype)
 {
   switch (ctype)
     {
@@ -1085,7 +1085,7 @@ bse_part_query_event (BsePart           *self,
           equery->velocity = 0;
           equery->fine_tune_value = 0;
           equery->velocity_value = 0;
-          equery->control_type = Bse::MidiSignalType (cev->ctype);
+          equery->control_type = Bse::MidiSignal (cev->ctype);
           equery->control_value = cev->value;
         }
       return BSE_PART_EVENT_CONTROL;
@@ -1113,7 +1113,7 @@ bse_part_query_event (BsePart           *self,
           equery->velocity = note->velocity;
           equery->fine_tune_value = note_get_control_value (note, Bse::MidiSignal::FINE_TUNE);
           equery->velocity_value = note_get_control_value (note, Bse::MidiSignal::VELOCITY);
-          equery->control_type = Bse::MidiSignalType (0);
+          equery->control_type = Bse::MidiSignal (0);
           equery->control_value = 0;
         }
       return BSE_PART_EVENT_NOTE;
@@ -1131,7 +1131,7 @@ part_note_seq_append (Bse::PartNoteSeq &pseq, uint channel, const BsePartEventNo
 }
 
 static void
-part_control_seq_append_note (Bse::PartControlSeq &cseq, const BsePartEventNote *note, Bse::MidiSignalType 
ctype)
+part_control_seq_append_note (Bse::PartControlSeq &cseq, const BsePartEventNote *note, Bse::MidiSignal ctype)
 {
   Bse::PartControl pctrl = bse_part_control (note->id, note->tick, ctype, note_get_control_value (note, 
ctype), note->selected);
   cseq.push_back (pctrl);
@@ -1201,7 +1201,7 @@ bse_part_list_controls (BsePart          *self,
                         guint             match_channel, /* for note events */
                         guint             tick,
                         guint             duration,
-                        Bse::MidiSignalType ctype)
+                        Bse::MidiSignal ctype)
 {
   Bse::PartControlSeq cseq;
 
@@ -1238,7 +1238,7 @@ bse_part_list_controls (BsePart          *self,
           BsePartEventControl *cev;
           for (cev = node->events; cev; cev = cev->next)
             if (cev->ctype == ctype)
-              cseq.push_back (bse_part_control (cev->id, node->tick, Bse::MidiSignalType (cev->ctype), 
cev->value, cev->selected));
+              cseq.push_back (bse_part_control (cev->id, node->tick, Bse::MidiSignal (cev->ctype), 
cev->value, cev->selected));
           node++;
         }
     }
@@ -1306,7 +1306,7 @@ bse_part_list_selected_notes (BsePart *self)
 }
 
 Bse::PartControlSeq
-bse_part_list_selected_controls (BsePart *self, Bse::MidiSignalType ctype)
+bse_part_list_selected_controls (BsePart *self, Bse::MidiSignal ctype)
 {
   Bse::PartControlSeq cseq;
   assert_return (BSE_IS_PART (self), cseq);
@@ -1335,7 +1335,7 @@ bse_part_list_selected_controls (BsePart *self, Bse::MidiSignalType ctype)
           BsePartEventControl *cev;
           for (cev = node->events; cev; cev = cev->next)
             if (cev->ctype == ctype && cev->selected)
-              cseq.push_back (bse_part_control (cev->id, node->tick, Bse::MidiSignalType (cev->ctype), 
cev->value, cev->selected));
+              cseq.push_back (bse_part_control (cev->id, node->tick, Bse::MidiSignal (cev->ctype), 
cev->value, cev->selected));
           node++;
         }
     }
@@ -1523,7 +1523,7 @@ bse_part_restore_private (BseObject  *object,
           parse_or_return (scanner, ')');
           if (error)
             bse_storage_warn (storage, "unknown control event: %s", error->message);
-          else if (!bse_part_insert_control (self, tick, Bse::MidiSignalType (ctype), CLAMP (value, -1, +1)))
+          else if (!bse_part_insert_control (self, tick, Bse::MidiSignal (ctype), CLAMP (value, -1, +1)))
             bse_storage_warn (storage, "failed to insert control event of type: %d", ctype);
           g_clear_error (&error);
         }
@@ -1593,7 +1593,7 @@ bse_part_restore_private (BseObject  *object,
         return G_TOKEN_FLOAT;
       parse_or_return (scanner, ')');
 
-      if (!bse_part_insert_control (self, tick, Bse::MidiSignalType (ctype), CLAMP (value, -1, +1)))
+      if (!bse_part_insert_control (self, tick, Bse::MidiSignal (ctype), CLAMP (value, -1, +1)))
         bse_storage_warn (storage, "skipping control event of invalid type: %d", ctype);
       return G_TOKEN_NONE;
     }
@@ -2120,28 +2120,28 @@ PartImpl::get_notes (int tick, int note)
 }
 
 PartControlSeq
-PartImpl::list_controls (int tick, int duration, MidiSignalType control_type)
+PartImpl::list_controls (int tick, int duration, MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   return bse_part_list_controls (self, ~uint (0), tick, duration, control_type);
 }
 
 PartControlSeq
-PartImpl::list_selected_controls (MidiSignalType control_type)
+PartImpl::list_selected_controls (MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   return bse_part_list_selected_controls (self, control_type);
 }
 
 PartControlSeq
-PartImpl::get_controls (int tick, MidiSignalType control_type)
+PartImpl::get_controls (int tick, MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   return bse_part_list_controls (self, ~uint (0), tick, 1, control_type);
 }
 
 PartControlSeq
-PartImpl::get_channel_controls (int channel, int tick, int duration, MidiSignalType control_type)
+PartImpl::get_channel_controls (int channel, int tick, int duration, MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   return bse_part_list_controls (self, channel, tick, duration, control_type);
@@ -2180,7 +2180,7 @@ PartImpl::get_min_note ()
 }
 
 Error
-PartImpl::change_control (int id, int tick, MidiSignalType control_type, double value)
+PartImpl::change_control (int id, int tick, MidiSignal control_type, double value)
 {
   BsePart *self = as<BsePart*>();
   const uint utick = tick;
@@ -2269,7 +2269,7 @@ PartImpl::delete_event (int id)
 }
 
 void
-PartImpl::deselect_controls (int tick, int duration, MidiSignalType control_type)
+PartImpl::deselect_controls (int tick, int duration, MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   bse_part_select_controls (self, tick, duration, control_type, false);
@@ -2306,14 +2306,14 @@ PartImpl::is_event_selected (int id)
 }
 
 void
-PartImpl::select_controls (int tick, int duration, MidiSignalType control_type)
+PartImpl::select_controls (int tick, int duration, MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   bse_part_select_controls (self, tick, duration, control_type, true);
 }
 
 void
-PartImpl::select_controls_exclusive (int tick, int duration, MidiSignalType control_type)
+PartImpl::select_controls_exclusive (int tick, int duration, MidiSignal control_type)
 {
   BsePart *self = as<BsePart*>();
   bse_part_select_controls_exclusive (self, tick, duration, control_type);
@@ -2346,7 +2346,7 @@ PartImpl::select_notes_exclusive (int tick, int duration, int min_note, int max_
 }
 
 int
-PartImpl::insert_control (int tick, MidiSignalType control_type, double value)
+PartImpl::insert_control (int tick, MidiSignal control_type, double value)
 {
   BsePart *self = as<BsePart*>();
   uint id = bse_part_insert_control (self, tick, control_type, value);
diff --git a/bse/bsepart.hh b/bse/bsepart.hh
index dac51a3..6150f99 100644
--- a/bse/bsepart.hh
+++ b/bse/bsepart.hh
@@ -77,7 +77,7 @@ guint              bse_part_insert_note               (BsePart           *self,
                                                        gfloat             velocity);
 guint              bse_part_insert_control            (BsePart           *self,
                                                        guint              tick,
-                                                       Bse::MidiSignalType  ctype,
+                                                       Bse::MidiSignal  ctype,
                                                        gfloat             value);
 gboolean           bse_part_change_note               (BsePart           *self,
                                                        guint              id,
@@ -90,7 +90,7 @@ gboolean           bse_part_change_note               (BsePart           *self,
 gboolean           bse_part_change_control            (BsePart           *self,
                                                        guint              id,
                                                        guint              tick,
-                                                       Bse::MidiSignalType  ctype,
+                                                       Bse::MidiSignal  ctype,
                                                        gfloat             value);
 Bse::PartNoteSeq   bse_part_list_notes                (BsePart           *self,
                                                        guint              channel,
@@ -103,7 +103,7 @@ Bse::PartControlSeq bse_part_list_controls           (BsePart           *self,
                                                        guint              channel, /* for note events */
                                                        guint              tick,
                                                        guint              duration,
-                                                       Bse::MidiSignalType  ctype);
+                                                       Bse::MidiSignal  ctype);
 void               bse_part_queue_notes_within        (BsePart           *self,
                                                        guint              tick,
                                                        guint              duration,
@@ -111,7 +111,7 @@ void               bse_part_queue_notes_within        (BsePart           *self,
                                                        gint               max_note);
 #define            bse_part_queue_controls(p,t,d)          bse_part_queue_notes_within (p, t, d, 
BSE_MIN_NOTE, BSE_MAX_NOTE)
 Bse::PartNoteSeq    bse_part_list_selected_notes      (BsePart           *self);
-Bse::PartControlSeq bse_part_list_selected_controls  (BsePart *self, Bse::MidiSignalType ctype);
+Bse::PartControlSeq bse_part_list_selected_controls  (BsePart *self, Bse::MidiSignal ctype);
 void               bse_part_select_notes              (BsePart           *self,
                                                        guint              channel,
                                                        guint              tick,
@@ -122,7 +122,7 @@ void               bse_part_select_notes              (BsePart           *self,
 void               bse_part_select_controls           (BsePart           *self,
                                                        guint              tick,
                                                        guint              duration,
-                                                       Bse::MidiSignalType  ctype,
+                                                       Bse::MidiSignal  ctype,
                                                        gboolean           selected);
 void               bse_part_select_notes_exclusive    (BsePart           *self,
                                                        guint              channel,
@@ -133,7 +133,7 @@ void               bse_part_select_notes_exclusive    (BsePart           *self,
 void               bse_part_select_controls_exclusive (BsePart           *self,
                                                        guint              tick,
                                                        guint              duration,
-                                                       Bse::MidiSignalType  ctype);
+                                                       Bse::MidiSignal  ctype);
 gboolean           bse_part_set_note_selected         (BsePart           *self,
                                                        guint              id,
                                                        guint              channel,
@@ -156,7 +156,7 @@ struct BsePartQueryEvent {
   gfloat            fine_tune_value;
   gfloat            velocity_value;
   /* control */
-  Bse::MidiSignalType control_type;
+  Bse::MidiSignal control_type;
   gfloat            control_value;
 };
 
@@ -182,7 +182,7 @@ struct BsePartEventControl {
   BsePartEventControl   *next;
   guint                  id : 31;
   guint                  selected : 1;
-  guint                  ctype; /* Bse::MidiSignalType */
+  guint                  ctype; /* Bse::MidiSignal */
   gfloat                 value;         /* -1 .. 1 */
 };
 
@@ -278,27 +278,27 @@ public:
   virtual PartNoteSeq    list_selected_notes    () override;
   virtual PartNoteSeq    check_overlap          (int tick, int duration, int note) override;
   virtual PartNoteSeq    get_notes              (int tick, int note) override;
-  virtual PartControlSeq list_selected_controls (MidiSignalType control_type) override;
-  virtual PartControlSeq list_controls          (int tick, int duration, MidiSignalType control_type) 
override;
-  virtual PartControlSeq get_channel_controls   (int channel, int tick, int duration, MidiSignalType 
control_type) override;
-  virtual PartControlSeq get_controls           (int tick, MidiSignalType control_type) override;
+  virtual PartControlSeq list_selected_controls (MidiSignal control_type) override;
+  virtual PartControlSeq list_controls          (int tick, int duration, MidiSignal control_type) override;
+  virtual PartControlSeq get_channel_controls   (int channel, int tick, int duration, MidiSignal 
control_type) override;
+  virtual PartControlSeq get_controls           (int tick, MidiSignal control_type) override;
   virtual PartLinkSeq    list_links             () override;
   virtual SongTiming     get_timing             (int tick) override;
   virtual int            get_max_note           () override;
   virtual int            get_min_note           () override;
-  virtual Error      change_control         (int id, int tick, MidiSignalType control_type, double value) 
override;
+  virtual Error      change_control         (int id, int tick, MidiSignal control_type, double value) 
override;
   virtual Error      change_note            (int id, int tick, int duration, int note, int fine_tune, double 
velocity) override;
   virtual Error      delete_event           (int id) override;
-  virtual void deselect_controls         (int tick, int duration, MidiSignalType control_type) override;
+  virtual void deselect_controls         (int tick, int duration, MidiSignal control_type) override;
   virtual void deselect_event            (int id) override;
   virtual void deselect_notes            (int tick, int duration, int min_note, int max_note) override;
   virtual bool is_event_selected         (int id) override;
-  virtual void select_controls           (int tick, int duration, MidiSignalType control_type) override;
-  virtual void select_controls_exclusive (int tick, int duration, MidiSignalType control_type) override;
+  virtual void select_controls           (int tick, int duration, MidiSignal control_type) override;
+  virtual void select_controls_exclusive (int tick, int duration, MidiSignal control_type) override;
   virtual void select_event              (int id) override;
   virtual void select_notes              (int tick, int duration, int min_note, int max_note) override;
   virtual void select_notes_exclusive    (int tick, int duration, int min_note, int max_note) override;
-  virtual int  insert_control            (int tick, MidiSignalType control_type, double value) override;
+  virtual int  insert_control            (int tick, MidiSignal control_type, double value) override;
   virtual int  insert_note               (int channel, int tick, int duration, int note, int fine_tune, 
double velocity) override;
   virtual int  insert_note_auto          (int tick, int duration, int note, int fine_tune, double velocity) 
override;
   virtual void queue_controls            (int tick, int duration) override;
diff --git a/bse/bsesequencer.cc b/bse/bsesequencer.cc
index fc49156..b1b23e6 100644
--- a/bse/bsesequencer.cc
+++ b/bse/bsesequencer.cc
@@ -521,7 +521,7 @@ Sequencer::process_part_SL (BsePart *part, double start_stamp, uint start_tick,
         {
           BseMidiEvent *event = bse_midi_event_signal (midi_channel,
                                                        bse_dtoull (start_stamp + (node->tick - start_tick) * 
stamps_per_tick),
-                                                       Bse::MidiSignalType (cev->ctype), cev->value);
+                                                       Bse::MidiSignal (cev->ctype), cev->value);
           bse_midi_receiver_push_event (midi_receiver, event);
           SDEBUG ("control:  tick=%llu midisignal=%-3d value=%f now=%llu",
                   uint64 (event->delta_time), cev->ctype, cev->value, Bse::TickStamp::current());
diff --git a/bse/bsesource.cc b/bse/bsesource.cc
index a6dbe69..2e0bf99 100644
--- a/bse/bsesource.cc
+++ b/bse/bsesource.cc
@@ -467,7 +467,7 @@ Bse::Error
 bse_source_set_automation_property (BseSource        *source,
                                     const gchar      *prop_name,
                                     guint             midi_channel,
-                                    Bse::MidiSignalType signal_type)
+                                    Bse::MidiSignal signal_type)
 {
   assert (BSE_MIDI_CONTROL_NONE          == BseMidiControlType (0) &&
             BSE_MIDI_CONTROL_CONTINUOUS_0  == BseMidiControlType (Bse::MidiSignal::CONTINUOUS_0) &&
@@ -495,7 +495,7 @@ bse_source_set_automation_property (BseSource        *source,
   if (!ap)
     {
       key.midi_channel = 0;
-      key.signal_type = Bse::MidiSignalType (0);
+      key.signal_type = Bse::MidiSignal (0);
       aparray = g_bsearch_array_insert (aparray, &aprop_bconfig, &key);
       ap = (BseAutomationProperty*) g_bsearch_array_lookup (aparray, &aprop_bconfig, &key);
     }
@@ -518,7 +518,7 @@ void
 bse_source_get_automation_property (BseSource         *source,
                                     const gchar       *prop_name,
                                     guint             *pmidi_channel,
-                                    Bse::MidiSignalType *psignal_type)
+                                    Bse::MidiSignal *psignal_type)
 {
   assert_return (BSE_IS_SOURCE (source));
   assert_return (prop_name != NULL);
diff --git a/bse/bsesource.hh b/bse/bsesource.hh
index 26139d5..7684d9f 100644
--- a/bse/bsesource.hh
+++ b/bse/bsesource.hh
@@ -221,16 +221,16 @@ Bse::MusicalTuning bse_source_prepared_musical_tuning (BseSource *source);
 typedef struct {
   GParamSpec       *pspec;
   guint             midi_channel;
-  Bse::MidiSignalType signal_type;
+  Bse::MidiSignal signal_type;
 } BseAutomationProperty;
 Bse::Error                 bse_source_set_automation_property   (BseSource         *source,
                                                                    const gchar       *prop_name,
                                                                    guint              midi_channel,
-                                                                   Bse::MidiSignalType  signal_type);
+                                                                   Bse::MidiSignal  signal_type);
 void                         bse_source_get_automation_property   (BseSource         *source,
                                                                    const gchar       *prop_name,
                                                                    guint             *pmidi_channel,
-                                                                   Bse::MidiSignalType *psignal_type);
+                                                                   Bse::MidiSignal *psignal_type);
 BseAutomationProperty*       bse_source_get_automation_properties (BseSource         *source,
                                                                    guint             *n_props);
 
diff --git a/bse/bsesource.proc b/bse/bsesource.proc
index 72ab8f6..3d5bb2c 100644
--- a/bse/bsesource.proc
+++ b/bse/bsesource.proc
@@ -695,7 +695,7 @@ BODY (BseProcedureClass *proc,
   BseSource *source = (BseSource*) bse_value_get_object (in_values++);
   const char *property = sfi_value_get_string (in_values++);
   guint      midi_channel = sfi_value_get_int (in_values++);
-  Bse::MidiSignalType control_type = (Bse::MidiSignalType) g_value_get_enum (in_values++);
+  Bse::MidiSignal control_type = (Bse::MidiSignal) g_value_get_enum (in_values++);
   Bse::Error error = Bse::Error::NONE;
 
   /* check parameters */
@@ -704,7 +704,7 @@ BODY (BseProcedureClass *proc,
 
   /* connect */
   guint old_midi_channel = 0;
-  Bse::MidiSignalType old_control_type = Bse::MidiSignalType (0);
+  Bse::MidiSignal old_control_type = Bse::MidiSignal (0);
   bse_source_get_automation_property (source, property, &old_midi_channel, &old_control_type);
   if (old_midi_channel != midi_channel || old_control_type != control_type)
     {
@@ -769,7 +769,7 @@ BODY (BseProcedureClass *proc,
     return Bse::Error::PROC_PARAM_INVAL;
 
   /* connect */
-  Bse::MidiSignalType control_type = Bse::MidiSignalType (0);
+  Bse::MidiSignal control_type = Bse::MidiSignal (0);
   bse_source_get_automation_property (source, property, NULL, &control_type);
   /* set output parameters */
   g_value_set_enum (out_values++, int (control_type));
diff --git a/bse/bsestorage.cc b/bse/bsestorage.cc
index 7051322..4ff5ed5 100644
--- a/bse/bsestorage.cc
+++ b/bse/bsestorage.cc
@@ -850,7 +850,7 @@ restore_source_automation (BseItem    *item,
   BseMidiControlType control_type = (BseMidiControlType) sfi_choice2enum (scanner->value.v_identifier, 
BSE_TYPE_MIDI_CONTROL_TYPE);
   /* close statement */
   parse_or_return (scanner, ')');
-  Bse::Error error = bse_source_set_automation_property (BSE_SOURCE (item), pspec->name, midi_channel, 
Bse::MidiSignalType (control_type));
+  Bse::Error error = bse_source_set_automation_property (BSE_SOURCE (item), pspec->name, midi_channel, 
Bse::MidiSignal (control_type));
   if (error != 0)
     bse_storage_warn (self, "failed to automate property \"%s\": %s", pspec->name, bse_error_blurb (error));
   return G_TOKEN_NONE;
@@ -1199,7 +1199,7 @@ bse_source_store_automation (BseSource  *source,
                              GParamSpec *pspec)
 {
   guint midi_channel = 0;
-  Bse::MidiSignalType signal_type = Bse::MidiSignalType (0);
+  Bse::MidiSignal signal_type = Bse::MidiSignal (0);
   bse_source_get_automation_property (source, pspec->name, &midi_channel, &signal_type);
   BseMidiControlType control_type = BseMidiControlType (signal_type);
   if (control_type)
diff --git a/bse/bseutils.cc b/bse/bseutils.cc
index f2f13ef..c2a7e9d 100644
--- a/bse/bseutils.cc
+++ b/bse/bseutils.cc
@@ -29,7 +29,7 @@ bse_part_note (uint id, uint channel, uint tick, uint duration, int note, int fi
 }
 
 Bse::PartControl
-bse_part_control (uint id, uint tick, Bse::MidiSignalType control_type, double value, bool selected)
+bse_part_control (uint id, uint tick, Bse::MidiSignal control_type, double value, bool selected)
 {
   Bse::PartControl pctrl;
   pctrl.id = id;
diff --git a/bse/bseutils.hh b/bse/bseutils.hh
index 5292863..d5eaa25 100644
--- a/bse/bseutils.hh
+++ b/bse/bseutils.hh
@@ -14,7 +14,7 @@ G_BEGIN_DECLS
 void    bse_cxx_init      (void);
 /* --- record utils --- */
 Bse::PartNote    bse_part_note    (uint id, uint channel, uint tick, uint duration, int note, int fine_tune, 
double velocity, bool selected);
-Bse::PartControl bse_part_control (uint id, uint tick, Bse::MidiSignalType control_type, double value, bool 
selected);
+Bse::PartControl bse_part_control (uint id, uint tick, Bse::MidiSignal control_type, double value, bool 
selected);
 void                bse_note_sequence_resize         (BseNoteSequence       *rec,
                                                       guint                  length);
 guint               bse_note_sequence_length         (BseNoteSequence       *rec);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]