Last active
October 10, 2020 08:41
-
-
Save mnkii/917205e9925a661548759a326e7a776d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# The drum sequence from this video: https://www.youtube.com/watch?v=oNB-VddAX4o | |
# Instructable: https://www.instructables.com/id/A-Raspberry-Pi-Powered-Junk-Drum-Machine/ | |
# @see: http://www.banjowise.com/post/automabeat/ | |
import RPi.GPIO as GPIO | |
import time | |
import numpy as np | |
bpm = 380 | |
bpm_fast = 550 | |
sequence = [ | |
# Simple intro | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# cup starts | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# Can and bottle alternate | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# can and bottle triplets | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 0, 0, 1, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[0, 0, 0, 1, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# no more bottle or cans, simple spoon | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# basic beat | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# croc and bottle | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# bell starts | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 0, 0, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 1, 0, 0, 0, 1, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 0, 0, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 1, 0, 0, 0, 1, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 1, 0], | |
# final beat | |
[1, 1, 1, 1, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# [big spoon, side spoon, bottle tops, can, shaker, bell, bottle, crocodile] | |
] | |
fast_sequence = [ | |
# | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# Bell starts | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 1, 1], | |
[1, 0, 1, 1, 0, 0, 1, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0], | |
# | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0, 1, 0, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 0, 0, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
# | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 0, 0, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 1, 0, 0, 0, 1, 0, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 0, 0, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 1, 0, 0, 0, 1, 0, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[1, 0, 0, 0, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[0, 0, 0, 0, 0, 1, 0, 1], | |
[1, 0, 1, 1, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0], | |
# end | |
[1, 1, 1, 1, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1, 0, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# | |
[1, 1, 1, 1, 1, 1, 1, 1], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0], | |
# [big spoon, side spoon, bottle tops, can, shaker, bell, bottle, crocodile] | |
] | |
gpio_map = [2, 3, 4, 17, 27, 22, 10, 9] | |
active_duration = 0.04 | |
############################################# The main script starts here ############################################# | |
# Sets pin number to BCM mode | |
GPIO.setmode(GPIO.BCM) | |
# Calculate the time period between the solenoid being deactivated and the next beat starting | |
beat_gap = (float(60) / float(bpm)) - float(active_duration) | |
beat_gap_fast = (float(60) / float(bpm_fast)) - float(active_duration) | |
# Generator to infinitely loop around the sequence | |
def infinite_generator(n): | |
i = 0 | |
while True: | |
if i >= len(n): | |
i = 0 | |
yield n[i] | |
i = i + 1 | |
# Loop through each pin and set the mode and state to 'low' | |
for i in gpio_map: | |
GPIO.setup(i, GPIO.OUT) | |
GPIO.output(i, GPIO.HIGH) | |
# Run the infinite loop | |
try: | |
for beat in sequence: | |
# Get active drum numbers | |
active = np.where(beat)[0] | |
# Get pin numbers for active drums | |
pins = [gpio_map[i] for i in active] | |
print('Activating Pins ', pins) | |
GPIO.output(pins, GPIO.LOW) | |
time.sleep(active_duration) | |
GPIO.output(pins, GPIO.HIGH) | |
print('Sleep ', beat_gap) | |
time.sleep(beat_gap) | |
for beat in fast_sequence: | |
# Get active drum numbers | |
active = np.where(beat)[0] | |
# Get pin numbers for active drums | |
pins = [gpio_map[i] for i in active] | |
print('Activating Pins ', pins) | |
GPIO.output(pins, GPIO.LOW) | |
time.sleep(active_duration) | |
GPIO.output(pins, GPIO.HIGH) | |
print('Sleep ', beat_gap_fast) | |
time.sleep(beat_gap_fast) | |
# End program cleanly | |
except KeyboardInterrupt: | |
print ('Quit') | |
# Reset GPIO settings | |
GPIO.cleanup() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment