Преглед на файлове

start using multiplexer

Tobias Simetsreiter преди 4 години
родител
ревизия
0b0fe49919
променени са 2 файла, в които са добавени 18 реда и са изтрити 21 реда
  1. 17 21
      main.py
  2. 1 0
      midipins/__init__.py

+ 17 - 21
main.py

@@ -21,22 +21,28 @@ def main():
     adc_pin = 0
     adc = ADC(adc_pin)
 
+    but = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)
     # wheel = PitchWheel(adc, size=128)
-    wheel = PitchWheel(adc.read, size=6)
-    but = StatePin(machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP).value)
-    buts = [
-        StatePin(machine.Pin(12, machine.Pin.IN, machine.Pin.PULL_UP).value),
-        StatePin(machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP).value),
-        StatePin(machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP).value),
-        but,
+    pins = [
+        machine.Pin(12, machine.Pin.OUT),
+        machine.Pin(14, machine.Pin.OUT),
+        machine.Pin(4 , machine.Pin.OUT),
+        machine.Pin(5 , machine.Pin.OUT),
     ]
+    volume = PitchWheel(adc.read, size=128)
+    volume.pins = pins
+    volume.values = [1,0,0,0]
+
+    modeswitch = PitchWheel(adc.read, size=6)
+    modeswitch.pins = pins
+    modeswitch.values = [0,0,0,0]
 
     reset_midi()
     print("\nWaiting for Interrupt....")
     time.sleep(3)
 
 
-    if but.pin() == 1:
+    if but.value() == 1:
         DEBUG = 0
     else:
         DEBUG = 1
@@ -55,21 +61,11 @@ def main():
         # midiout.control_change(constants_min.LEGATO_ONOFF,   0)
         # midiout.control_change(constants_min.LEGATO_ONOFF, 127)
 
-
-    buts_cb = [
-        lambda v: midi_note(midiout, v, note=48),
-        lambda v: midi_note(midiout, v, note=50),
-        lambda v: midi_note(midiout, v, note=52),
-        lambda v: midi_note(midiout, v, note=53, led = led),
-    ]
-
     # # Send all sound off to prevent hanging notes
     while True:
-        time.sleep_ms(5)
-        for but,cb in zip(buts, buts_cb):
-            but.poll(cb)
-        # wheel.poll(lambda v:midiout.volume(v))
-        wheel.poll(lambda v:midiout.program_change(v))
+        time.sleep_ms(1)
+        modeswitch.poll(lambda v:midiout.program_change(v))
+        volume.poll(lambda v:midiout.volume(v))
         # wheel.poll(lambda v:midiout.channel_message(constants_min.PROGRAM_CHANGE,(v+1)))
         # wheel.poll(midiout.pitch_bend)
 

+ 1 - 0
midipins/__init__.py

@@ -17,6 +17,7 @@ class PitchWheel():
         self.adc = adc
 
     def value(self):
+        import time
         for pin,value in zip(self.pins, self.values):
             pin.value(value)
         if len(self.pins) != 0: