Beat Box: patterns.h


//
// Simple rhythm patterns
//

// Author:  P.J. Drongowski
// Version: 1.1
// Date:    15 July 2016
//
// Copyright (c) 2016 Paul J. Drongowski
//               Permission granted to distribute and modify

// Each pattern controls up to 8 rhythm instruments. Each
// array element is a step in a sequence (e.g., a sixteenth
// note). An element is a bit pattern where each bit
// corresponds to a rhythm instrument. Set a bit to one
// in order to sound the instrument.
//
// The maximum pattern array size is 64.

// Patterns healingA and healingB use the SH kit.

#define HEALINGASIZE 16
const uint8_t PROGMEM healingA[HEALINGASIZE] = {
  0b10100100,
  0b00000000,
  0b00100010,
  0b00100100,
  0b00101000,
  0b00000000,
  0b00110100,
  0b10000000,
  0b10100000,
  0b00000000,
  0b11100000,
  0b01000000,
  0b10100000,
  0b00000000,
  0b00100000,
  0b10100000
} ;


#define HEALINGBSIZE 16
const uint8_t PROGMEM healingB[HEALINGBSIZE] = {
  0b10100100,
  0b00000000,
  0b00110010,
  0b00000100,
  0b00101000,
  0b00000000,
  0b01110100,
  0b01000000,
  0b10100000,
  0b01100000,
  0b00110100,
  0b01000000,
  0b00100001,
  0b01010100,
  0b00100001,
  0b10100000
} ;


// Patterns cybotronA and cybotronB use the CT kit.
#define CYBOTRONASIZE 16
const uint8_t PROGMEM cybotronA[CYBOTRONASIZE] = {
  0b10000001,
  0b00000001,
  0b00000001,
  0b10000001,
  0b01010010,
  0b00000000,
  0b10000000,
  0b00000000,
  0b00000001,
  0b00000001,
  0b10000001,
  0b00000001,
  0b01010010,
  0b00000000,
  0b00000000,
  0b00000000
} ;


#define CYBOTRONBSIZE 16
const uint8_t PROGMEM cybotronB[CYBOTRONBSIZE] = {
  0b10000001,
  0b00000001,
  0b00000001,
  0b00000001,
  0b01010010,
  0b00000000,
  0b10000000,
  0b00000000,
  0b00000001,
  0b00000001,
  0b10000001,
  0b00000001,
  0b01010010,
  0b00000000,
  0b00000000,
  0b00000000
} ;


//
// The planet pattern uses the CT kit.
//

#define PLANETASIZE 16
const uint8_t PROGMEM planetA[PLANETASIZE] = {
  0b10001001,
  0b00000000,
  0b00001001,
  0b00000001,
  0b01011001,
  0b00000000,
  0b10001001,
  0b00001001,
  0b00000001,
  0b00001000,
  0b00000001,
  0b00001001,
  0b01011001,
  0b00000001,
  0b00001001,
  0b00000001
} ;


#define PLANETBSIZE 16
const uint8_t PROGMEM planetB[PLANETBSIZE] = {
  0b10001001,
  0b00000000,
  0b00001001,
  0b00000001,
  0b01011001,
  0b00000000,
  0b10001001,
  0b00001001,
  0b00000001,
  0b00001000,
  0b10000001,
  0b00001001,
  0b01010001,
  0b10000001,
  0b00000001,
  0b00000001
} ;


//
// The adonis patterns use the AD kit.
//

#define ADONISASIZE 16
const uint8_t PROGMEM adonisA[ADONISASIZE] = {
  0b10000001,
  0b00000101,
  0b00000001,
  0b00000101,
  0b11000001,
  0b00000101,
  0b00010001,
  0b00000001,
  0b10000101,
  0b00001101,
  0b00000001,
  0b00001101,
  0b11000001,
  0b00000101,
  0b00001011,
  0b00000001
} ;


#define ADONISBSIZE 16
const uint8_t PROGMEM adonisB[ADONISBSIZE] = {
  0b10000001,
  0b00000101,
  0b00010001,
  0b00000101,
  0b11000001,
  0b00001001,
  0b00000101,
  0b00000001,
  0b10000101,
  0b00000101,
  0b01000011,
  0b00000001,
  0b11000011,
  0b00000101,
  0b01010011,
  0b00000101
} ;


//
// The voodoo patterns use the VR kit.
//

#define VOODOOSIZE 16
const uint8_t PROGMEM voodoo[VOODOOSIZE] = {
  0b10000001,
  0b00010001,
  0b00000001,
  0b00000100,
  0b11010001,
  0b00000001,
  0b00000010,
  0b00001101,
  0b10001001,
  0b00100001,
  0b00000001,
  0b00001010,
  0b11100001,
  0b00000001,
  0b00101101,
  0b00000001
} ;