Added worksheets
[pi-music.git] / drums.py
1 import pygame
2 import RPi.GPIO as gpio
3 import logging
4
5 logger = logging.getLogger(__name__)
6 loggerFileHandler = logging.FileHandler('drums.log')
7 loggerFileHandlerFormatter = logging.Formatter('%(asctime)s %(levelname)-8s %(message)s')
8 loggerFileHandler.setFormatter(loggerFileHandlerFormatter)
9 logger.addHandler(loggerFileHandler)
10 logger.setLevel(logging.WARNING)
11 logger.setLevel(logging.INFO)
12
13 gpio.setmode(gpio.BCM)
14 pins = [25, 24, 23, 18]
15 # pins = [18]
16
17 drums = ['sounds/hihat.wav',
18 'sounds/maracas.wav',
19 'sounds/slowdrum.wav',
20 'sounds/snare.wav']
21
22 pygame.mixer.init()
23
24 sounds = {}
25 for pin, wav in zip(pins, drums):
26 sounds[pin] = pygame.mixer.Sound(wav)
27
28 def handle_sound(pin):
29 sounds[pin].play()
30 logger.info("Played {0}".format(pin))
31
32 for pin in pins:
33 gpio.setup(pin, gpio.IN)
34 gpio.add_event_detect(pin, gpio.RISING, callback=handle_sound, bouncetime=100)
35
36 while True:
37 pass