]> git.sesse.net Git - nageru/blobdiff - midi_mapping.proto
Support audio-only FFmpeg inputs. Somewhat wonky, though.
[nageru] / midi_mapping.proto
index 5809ffe02bfb1cc95f5405931beab4bd961a42dd..4a8b8521985756b9172880707b7f544aa487703d 100644 (file)
@@ -14,12 +14,17 @@ message MIDIButtonProto {
        required int32 note_number = 1;
 }
 
+message MIDILightProto {
+       required int32 note_number = 1;
+}
+
 // All the mappings for a given a bus.
 message MIDIMappingBusProto {
        // TODO: If we need support for lots of buses (i.e., more than the typical eight
        // on a mixer), add a system for bus banks, like we have for controller banks.
        // optional int32 bus_bank = 1;
 
+       optional MIDIControllerProto stereo_width = 37;
        optional MIDIControllerProto treble = 2;
        optional MIDIControllerProto mid = 3;
        optional MIDIControllerProto bass = 4;
@@ -27,35 +32,50 @@ message MIDIMappingBusProto {
        optional MIDIControllerProto compressor_threshold = 6;
        optional MIDIControllerProto fader = 7;
 
-       // TODO: Add mute and cue? (Of course, we should those to the UI before
-       // making them MIDI controllable.)
-       optional MIDIButtonProto toggle_locut = 8;
-       optional MIDIButtonProto toggle_auto_gain_staging = 9;
-       optional MIDIButtonProto toggle_compressor = 10;
-       optional MIDIButtonProto clear_peak = 11;
+       optional MIDIButtonProto toggle_mute = 8;
+       optional MIDIButtonProto toggle_locut = 9;
+       optional MIDIButtonProto toggle_auto_gain_staging = 10;
+       optional MIDIButtonProto toggle_compressor = 11;
+       optional MIDIButtonProto clear_peak = 12;
 
        // These are really global (controller bank change affects all buss),
        // but it's not uncommon that we'd want one button per bus to switch banks.
        // E.g., if the user binds the “mute” button to “next bank”, they'd want every
        // mute button on the mixer to do that, so they need one mapping per bus.
-       optional MIDIButtonProto prev_bank = 12;
-       optional MIDIButtonProto next_bank = 13;
-       optional MIDIButtonProto select_bank_1 = 14;
-       optional MIDIButtonProto select_bank_2 = 15;
-       optional MIDIButtonProto select_bank_3 = 16;
-       optional MIDIButtonProto select_bank_4 = 17;
-       optional MIDIButtonProto select_bank_5 = 18;
-       optional MIDIButtonProto toggle_limiter = 19;
-       optional MIDIButtonProto toggle_auto_makeup_gain = 20;
+       optional MIDIButtonProto prev_bank = 13;
+       optional MIDIButtonProto next_bank = 14;
+       optional MIDIButtonProto select_bank_1 = 15;
+       optional MIDIButtonProto select_bank_2 = 16;
+       optional MIDIButtonProto select_bank_3 = 17;
+       optional MIDIButtonProto select_bank_4 = 18;
+       optional MIDIButtonProto select_bank_5 = 19;
+       optional MIDIButtonProto toggle_limiter = 20;
+       optional MIDIButtonProto toggle_auto_makeup_gain = 21;
 
        // These are also global (they belong to the master bus), and unlike
        // the bank change commands, one would usually have only one of each,
        // but there's no reason to limit them to one each, and the editor UI
        // becomes simpler if they are the treated the same way as the bank
        // commands.
-       optional MIDIControllerProto locut = 21;
-       optional MIDIControllerProto limiter_threshold = 22;
-       optional MIDIControllerProto makeup_gain = 23;
+       optional MIDIControllerProto locut = 22;
+       optional MIDIControllerProto limiter_threshold = 23;
+       optional MIDIControllerProto makeup_gain = 24;
+
+       // Per-bus lights.
+       optional MIDILightProto is_muted = 25;
+       optional MIDILightProto locut_is_on = 26;
+       optional MIDILightProto auto_gain_staging_is_on = 27;
+       optional MIDILightProto compressor_is_on = 28;
+       optional MIDILightProto has_peaked = 29;
+
+       // Global lights. Same logic as above for why they're in this proto.
+       optional MIDILightProto bank_1_is_selected = 30;
+       optional MIDILightProto bank_2_is_selected = 31;
+       optional MIDILightProto bank_3_is_selected = 32;
+       optional MIDILightProto bank_4_is_selected = 33;
+       optional MIDILightProto bank_5_is_selected = 34;
+       optional MIDILightProto limiter_is_on = 35;
+       optional MIDILightProto auto_makeup_gain_is_on = 36;
 }
 
 // The top-level protobuf, containing all the bus mappings, as well as
@@ -71,6 +91,7 @@ message MIDIMappingProto {
        optional int32 num_controller_banks = 1 [default = 0];  // Max 5.
 
        // Bus controller banks.
+       optional int32 stereo_width_bank = 19;
        optional int32 treble_bank = 2;
        optional int32 mid_bank = 3;
        optional int32 bass_bank = 4;
@@ -79,19 +100,20 @@ message MIDIMappingProto {
        optional int32 fader_bank = 7;
 
        // Bus button banks.
-       optional int32 toggle_locut_bank = 8;
-       optional int32 toggle_auto_gain_staging_bank = 9;
-       optional int32 toggle_compressor_bank = 10;
-       optional int32 clear_peak_bank = 11;
+       optional int32 toggle_mute_bank = 8;
+       optional int32 toggle_locut_bank = 9;
+       optional int32 toggle_auto_gain_staging_bank = 10;
+       optional int32 toggle_compressor_bank = 11;
+       optional int32 clear_peak_bank = 12;
 
        // Global controller banks.
-       optional int32 locut_bank = 12;
-       optional int32 limiter_threshold_bank = 13;
-       optional int32 makeup_gain_bank = 14;
+       optional int32 locut_bank = 13;
+       optional int32 limiter_threshold_bank = 14;
+       optional int32 makeup_gain_bank = 15;
 
        // Global buttons.
-       optional int32 toggle_limiter_bank = 15;
-       optional int32 toggle_auto_makeup_gain_bank = 16;
+       optional int32 toggle_limiter_bank = 16;
+       optional int32 toggle_auto_makeup_gain_bank = 17;
 
-       repeated MIDIMappingBusProto bus_mapping = 17;
+       repeated MIDIMappingBusProto bus_mapping = 18;
 }