diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e0e4bc3..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ - -siwatlib/__pycache__/ diff --git a/piano.py b/piano.py index 42ed849..3c599cc 100644 --- a/piano.py +++ b/piano.py @@ -1,26 +1,20 @@ from time import sleep from telemetrix_rpi_pico import telemetrix_rpi_pico -from siwatlib.debounce import debounce -from siwatlib.sound import beep - import winsound index_shift = 2 -freqs = [261.6256,293.6648,329.6276,349.2282,391.9954,440.0000,493.8833,523.2511] - -debouncers = [] +sound = [261.6256,293.6648,329.6276,349.2282,391.9954,440.0000,493.8833,523.2511] def handle_button_press(data): - freq = freqs[data[1]-index_shift] + freq = sound[data[1]-index_shift] print(freq) - recieved_state = not data[2] - if debouncers[data[1]-index_shift].set_state(state=recieved_state): - beep(frequency=freq,duration=0.25) + if data[2] == 0: + winsound.Beep(int(freq),500) + + mcu = telemetrix_rpi_pico.TelemetrixRpiPico(com_port='COM10') - for i in range(2,10): - debouncers.append(debounce(state=False,debounce_time=0.15)) mcu.set_pin_mode_digital_input(i,callback=handle_button_press) while True: sleep(100) \ No newline at end of file diff --git a/siwatlib/debounce.py b/siwatlib/debounce.py deleted file mode 100644 index e614803..0000000 --- a/siwatlib/debounce.py +++ /dev/null @@ -1,12 +0,0 @@ -from time import perf_counter as seconds -class debounce: - def __init__(self,state: bool, debounce_time: float) -> None: - self.last_pressed = seconds() - self.debounce_time = debounce_time - self.state = state - def set_state(self, state: bool) -> bool: - if seconds()-self.last_pressed > self.debounce_time: - self.state = state - return self.state - else: - return self.state \ No newline at end of file diff --git a/siwatlib/sound.py b/siwatlib/sound.py deleted file mode 100644 index 71ae48a..0000000 --- a/siwatlib/sound.py +++ /dev/null @@ -1,27 +0,0 @@ -from pysine import pysine -import winsound -import threading - -MODE = 'pysine' - -global __beeper__ - -def __beeper_therad__(frequency: float, duration: float): - if MODE == 'winsound': - winsound.Beep(frequency=int(frequency), duration=int(duration*1000)) - elif MODE == 'pysine': - pysine.sine(frequency=frequency,duration=duration) - -__beeper__ = threading.Thread(target=__beeper_therad__, - kwargs={'frequency': 0, 'duration': 0} - ) - -def beep(frequency: float, duration: float): - global __beeper__ - if not __beeper__.is_alive(): - __beeper__ = threading.Thread(target=__beeper_therad__, - kwargs={'frequency': frequency, 'duration': duration} - ) - __beeper__.start() - -