|
|
@@ -11,13 +11,14 @@ from midipins import StatePin, PitchWheel
|
|
|
import midipins
|
|
|
|
|
|
DEBUG = 0
|
|
|
+midiout = None
|
|
|
|
|
|
def main():
|
|
|
global DEBUG
|
|
|
+ global midiout
|
|
|
|
|
|
|
|
|
led = machine.Pin(2 , machine.Pin.OUT)
|
|
|
- led.value(1)
|
|
|
adc_pin = 0
|
|
|
adc = ADC(adc_pin)
|
|
|
|
|
|
@@ -52,7 +53,7 @@ def main():
|
|
|
if not DEBUG:
|
|
|
print("\nDetaching Terminal for MIDI....")
|
|
|
uos.dupterm(None, 1)
|
|
|
- uart = UART(DEBUG, baudrate=115200)
|
|
|
+ uart = UART(0, baudrate=115200)
|
|
|
midiout = MidiOut(uart)
|
|
|
midiout.all_notes_off()
|
|
|
midiout.all_sound_off()
|
|
|
@@ -62,13 +63,39 @@ def main():
|
|
|
# midiout.control_change(constants_min.LEGATO_ONOFF, 127)
|
|
|
|
|
|
# # Send all sound off to prevent hanging notes
|
|
|
+ TNULL = time.ticks_ms()
|
|
|
+ TONE = None
|
|
|
while True:
|
|
|
time.sleep_ms(1)
|
|
|
- modeswitch.poll(lambda v:midiout.program_change(v))
|
|
|
+ led.value(0 if DEBUG else 1)
|
|
|
+ modeswitch.poll(set_mode)
|
|
|
volume.poll(lambda v:midiout.volume(v))
|
|
|
+ if DEBUG:
|
|
|
+ TONE = time.ticks_ms()
|
|
|
+ print("Poll done:", TONE - TNULL)
|
|
|
+ TNULL = TONE
|
|
|
# wheel.poll(lambda v:midiout.channel_message(constants_min.PROGRAM_CHANGE,(v+1)))
|
|
|
# wheel.poll(midiout.pitch_bend)
|
|
|
|
|
|
+
|
|
|
+def set_mode(val):
|
|
|
+ global DEBUG
|
|
|
+ global midiout
|
|
|
+ if val == 4:
|
|
|
+ import uos
|
|
|
+ uos.dupterm(None, 1)
|
|
|
+ DEBUG = 0
|
|
|
+ elif val == 5:
|
|
|
+ import machine
|
|
|
+ import uos
|
|
|
+ uart = machine.UART(0, 115200)
|
|
|
+ uos.dupterm(uart, 1)
|
|
|
+ DEBUG = 1
|
|
|
+ if val < 5:
|
|
|
+ midiout.program_change(val)
|
|
|
+ midipins.DEBUG = DEBUG
|
|
|
+
|
|
|
+
|
|
|
def midi_note(midiout, val, note=64, led = None):
|
|
|
if led:
|
|
|
led.value(val)
|