Initial code for the Grand Central Soundboard
Initial code for the Grand Central Soundboard
This commit is contained in:
parent
b9d1f6348e
commit
9451a1d5e2
1 changed files with 46 additions and 0 deletions
46
Grand_Central_Soundboard/code.py
Normal file
46
Grand_Central_Soundboard/code.py
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
import digitalio
|
||||||
|
import audioio
|
||||||
|
import board
|
||||||
|
import adafruit_matrixkeypad
|
||||||
|
|
||||||
|
# Membrane 3x4 matrix keypad - https://www.adafruit.com/product/419
|
||||||
|
cols = [digitalio.DigitalInOut(x) for x in (board.D3, board.D2, board.D1)]
|
||||||
|
rows = [digitalio.DigitalInOut(x) for x in (board.D7, board.D6, board.D5, board.D4)]
|
||||||
|
|
||||||
|
keys = ((1, 2, 3),
|
||||||
|
(4, 5, 6),
|
||||||
|
(7, 8, 9),
|
||||||
|
('*', 0, '#'))
|
||||||
|
|
||||||
|
keypad = adafruit_matrixkeypad.Matrix_Keypad(rows, cols, keys)
|
||||||
|
|
||||||
|
wavefiles = [file for file in os.listdir("/sounds/")
|
||||||
|
if (file.endswith(".wav") and not file.startswith("._"))]
|
||||||
|
if len(wavefiles) < 1:
|
||||||
|
print("No wav files found in root directory")
|
||||||
|
else:
|
||||||
|
print("Audio files found: ", wavefiles)
|
||||||
|
|
||||||
|
# audio output
|
||||||
|
gc_audio = audioio.AudioOut(board.A0)
|
||||||
|
|
||||||
|
def play_file(filename):
|
||||||
|
if gc_audio.playing:
|
||||||
|
gc_audio.stop()
|
||||||
|
f = open(filename, "rb")
|
||||||
|
wav = audioio.WaveFile(f)
|
||||||
|
gc_audio.play(wav)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
keys = keypad.pressed_keys
|
||||||
|
if keys:
|
||||||
|
print("Pressed: ", keys)
|
||||||
|
button = keys[0]
|
||||||
|
if button > 0 and button < 9:
|
||||||
|
soundfile = "/sounds/0"+str(keys[0])+".wav"
|
||||||
|
play_file(soundfile)
|
||||||
|
if button == 0:
|
||||||
|
gc_audio.stop()
|
||||||
|
time.sleep(0.1)
|
||||||
Loading…
Reference in a new issue