diff --git a/code.py b/code.py index 97644ef..9b60e45 100755 --- a/code.py +++ b/code.py @@ -29,9 +29,6 @@ from adafruit_midi.note_off import NoteOff from adafruit_midi.pitch_bend import PitchBend from adafruit_midi.control_change import ControlChange -# Midi output settings -midi_channel = 1 # Target midi channel - # Expression pedal settings logarithmic = True # Expression pedal logarithmic or linear. Set to False for linear log_base = 100 # This value changes the feel of the log curve @@ -42,19 +39,17 @@ exp_pedal_calibration_percent = 80 # 0 - 100 # Define expression pedals expression_pedals = [ # Set expression pedal midi control change number, and min/max values - {"pin": board.GP26, "cc": 1, "cc_min": 0, "cc_max": 127}, # Pedal 1. Pin 31 - {"pin": board.GP27, "cc": 2, "cc_min": 0, "cc_max": 127}, # Pedal 2. Pin 32 - {"pin": board.GP28, "cc": 3, "cc_min": 0, "cc_max": 127} # Peadl 3. Pin 34 + {"pin": board.GP26, "midi_channel": 1, "cc": 1, "cc_min": 0, "cc_max": 127}, # Pedal 1. Pin 31 + {"pin": board.GP27, "midi_channel": 1, "cc": 2, "cc_min": 0, "cc_max": 127}, # Pedal 2. Pin 32 + {"pin": board.GP28, "midi_channel": 1, "cc": 3, "cc_min": 0, "cc_max": 127} # Peadl 3. Pin 34 ] # Devices led = digitalio.DigitalInOut(board.LED) led.direction = digitalio.Direction.OUTPUT uart = busio.UART(tx=board.GP4, rx=board.GP5, baudrate=31250, timeout=0.001) # UART Midi device on pin 6 -uart_midi = adafruit_midi.MIDI(midi_out=uart, out_channel=midi_channel - 1) -usb_midi = adafruit_midi.MIDI( - midi_out=usb_midi.ports[1], out_channel=midi_channel - 1) - +uart_midi = [adafruit_midi.MIDI(midi_out=uart, out_channel=pedal["midi_channel"] - 1) for pedal in expression_pedals] +usb_midi = [adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=pedal["midi_channel"] - 1) for pedal in expression_pedals] # Initialize expression pedals exp_values = [analogio.AnalogIn(pedal["pin"]) for pedal in expression_pedals] exp_previous = [exp.value for exp in exp_values] @@ -89,8 +84,8 @@ while True: if exp_max[i] - exp_min[i] > exp_calibration_threshold[i]: led.value = True # Turn led on cc_val = translate(exp_current, exp_min[i], exp_max[i], expression_pedals[i]["cc_min"], expression_pedals[i]["cc_max"]) - uart_midi.send(ControlChange(expression_pedals[i]["cc"], cc_val)) - usb_midi.send(ControlChange(expression_pedals[i]["cc"], cc_val)) + uart_midi[i].send(ControlChange(expression_pedals[i]["cc"], cc_val)) + usb_midi[i].send(ControlChange(expression_pedals[i]["cc"], cc_val)) led.value = False # Turn led off print("Pedal {}: Writing Midi Channel: {}, ControlChange: {}, Value {}. Exp Pedal: cur: {}, min: {}, max: {}".format( - i + 1, midi_channel, expression_pedals[i]["cc"], cc_val, exp_current, exp_min[i], exp_max[i])) + i + 1, expression.pedals[i]["midi_channel"], expression_pedals[i]["cc"], cc_val, exp_current, exp_min[i], exp_max[i]))