X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=futatabi%2Fmidi_mapper.cpp;fp=futatabi%2Fmidi_mapper.cpp;h=1e26985a01537e226f21cedb7f9e789698648be6;hb=2c9a83aeae44dae6a0bbfbae33719976e6d527af;hp=a76e36cb04f83c96ed5c49149078115c23a2cd13;hpb=8e88294902b4b6f43c8db83dbf04830b5b9d2bfd;p=nageru diff --git a/futatabi/midi_mapper.cpp b/futatabi/midi_mapper.cpp index a76e36c..1e26985 100644 --- a/futatabi/midi_mapper.cpp +++ b/futatabi/midi_mapper.cpp @@ -78,11 +78,16 @@ ControllerReceiver *MIDIMapper::set_receiver(ControllerReceiver *new_receiver) void MIDIMapper::controller_received(int controller, int value_int) { int delta_value = value_int - 64; // For infinite controllers such as jog. + float value = map_controller_to_float(controller, value_int); receiver->controller_changed(controller); match_controller(controller, MIDIMappingProto::kJogFieldNumber, MIDIMappingProto::kJogBankFieldNumber, delta_value, bind(&ControllerReceiver::jog, receiver, _1)); + + // Speed goes from 0.0 to 2.0 (the receiver will clamp). + match_controller(controller, MIDIMappingProto::kMasterSpeedFieldNumber, MIDIMappingProto::kMasterSpeedBankFieldNumber, + value * 2.0, bind(&ControllerReceiver::set_master_speed, receiver, _1)); } void MIDIMapper::note_on_received(int note)