X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=midi_mapping.proto;fp=midi_mapping.proto;h=0000000000000000000000000000000000000000;hb=392f9d1ccb835c05a3874c4bea163788b2c37024;hp=4a8b8521985756b9172880707b7f544aa487703d;hpb=330ca2f0052b06d91004c6ceb73cd57ab95e7fe1;p=nageru diff --git a/midi_mapping.proto b/midi_mapping.proto deleted file mode 100644 index 4a8b852..0000000 --- a/midi_mapping.proto +++ /dev/null @@ -1,119 +0,0 @@ -// Mappings from MIDI controllers to the UI. (We don't really build -// a more complicated data structure than this in Nageru itself either; -// we just edit and match directly against the protobuf.) - -syntax = "proto2"; - -// A single, given controller mapping. -message MIDIControllerProto { - required int32 controller_number = 1; - // TODO: Add flags like invert here if/when we need them. -} - -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; - optional MIDIControllerProto gain = 5; - optional MIDIControllerProto compressor_threshold = 6; - optional MIDIControllerProto fader = 7; - - 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 = 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 = 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 -// more global settings. -// -// Since a typical mixer will have fewer physical controls than what Nageru -// could use, Nageru supports so-called controller banks. A mapping can -// optionally belong to a bank, and if so, that mapping is only active when -// that bank is selected. The user can then select the current bank using -// other mappings, typically by having some mixer button assigned to -// “next bank”. This yields effective multiplexing of lesser-used controls. -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; - optional int32 gain_bank = 5; - optional int32 compressor_threshold_bank = 6; - optional int32 fader_bank = 7; - - // Bus button banks. - 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 = 13; - optional int32 limiter_threshold_bank = 14; - optional int32 makeup_gain_bank = 15; - - // Global buttons. - optional int32 toggle_limiter_bank = 16; - optional int32 toggle_auto_makeup_gain_bank = 17; - - repeated MIDIMappingBusProto bus_mapping = 18; -}