Servus Leute,
hab mit hilfe ein paar Freunde endlich geschaft, hier für Intressierte Leute das Skript.
Damit werden 25 Sounds abgespielt und an mit der Taste 26 wird die Sounds gestoppt.
(Achtung: GPIO 2 ist gleich Taste 1 am Board aber im Code Taset 0)
Python
import pygame.mixer
from time import sleep
import RPi.GPIO as GPIO
from sys import exit
# GPIO an dem der erste Taster haengt.
# Dem wird das erste File zugeordnet, dem naechsten GPIO das zweite File usw. usf.
firstGPIO = 2
# soundGPIOs enthaelt GPIO-Nummern zur Auswahl einer Soundatei
# 25 Taster sind fuer Sounds belegt
numberOfSoundGPIOs = 25
soundGPIOs = range(firstGPIO, firstGPIO + numberOfSoundGPIOs)
# Next gpio is for stopping control
stopGPIO = soundGPIOs[-1] + 1
fullGPIOInputlist = list(soundGPIOs)
fullGPIOInputlist.append(stopGPIO)
# Fuer jedes Soundfile eine Zeile anlegen!
# Wird dann automatisch unten angelegt.
pygame.mixer.init(48000, -16, 54, 1024)
sounds = list()
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A01.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A02.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A03.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A04.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A05.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A06.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A07.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A08.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A09.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A10.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A11.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A12.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B01.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B02.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B03.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B04.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B05.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B06.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B07.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B08.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B09.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B10.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B11.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/B12.wav"))
sounds.append(pygame.mixer.Sound("/home/pi/Desktop/Soundboard/Sounds/Radio Button/A01.wav"))
numChannels = len(sounds)
pygame.mixer.set_num_channels(numChannels)
# Mapping a gpio port number to a sound object
gpioSoundMap = {gpio: sounds[gpio_id] for gpio, gpio_id in zip(soundGPIOs, range(min(len(sounds), len(soundGPIOs)))) }
# Init GPIOs
GPIO.setmode(GPIO.BCM)
for gpio_num in fullGPIOInputlist:
GPIO.setup(gpio_num, GPIO.IN)
soundChannels = [pygame.mixer.Channel(x) for x in range(numChannels)]
print 'Sampler ready!'
while True:
try:
for x in range(numChannels):
if (GPIO.input(x + firstGPIO) == False):
print 'Taster %s start' %x
soundChannels[x].play(sounds[x])
while (GPIO.input(x + firstGPIO) == False):
sleep(.005)
print 'Taster %s ende' %x
#soundChannels[x].stop()
if (GPIO.input(stopGPIO) == False):
print 'Beende alle Soundkanaele'
pygame.mixer.stop()
sleep(.01)
except KeyboardInterrupt:
exit()
Alles anzeigen
viel spass damit wenns wer gebrauchen kann.
gruß Viking