Beat Box: kits.h


//
// Rhythm kits
//

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

// A rhythm kit consists of one to eight rhythm instruments.
// The kit identifies the instrument waveform and associated
// waveform size. A kit also defines symbolic names for the
// bit position (within a pattern element) for each
// instrument.

//
// SH kit
//

#define SH_BD 0b10000000
#define SH_SD 0b01000000
#define SH_CH 0b00100000
#define SH_OH 0b00010000
#define SH_CP 0b00001000
#define SH_CL 0b00000100
#define SH_HT 0b00000010
#define SH_LT 0b00000001

const int8_t* const shWaveforms[8] PROGMEM  = {
  LTSamples, HTSamples, CLSamples, CPSamples, 
  OHSamples, CHSamples, SDSamples, BDSamples
} ;

const int16_t PROGMEM shWaveformSizes[8] = {
  LTSAMPLESSIZE, HTSAMPLESSIZE, CLSAMPLESSIZE, CPSAMPLESSIZE, 
  OHSAMPLESSIZE, CHSAMPLESSIZE, SDSAMPLESSIZE, BDSAMPLESSIZE
} ;

//
// CT kit
//

#define CT_BD 0b10000000
#define CT_SD 0b01000000
#define CT_RS 0b00100000
#define CT_CP 0b00010000
#define CT_CB 0b00001000
#define CT_CY 0b00000100
#define CT_OH 0b00000010
#define CT_CH 0b00000001

const int8_t* const ctWaveforms[8] PROGMEM  = {
  CHSamples, OHSamples, CYSamples, CBSamples, 
  CPSamples, RSSamples, SDSamples, BDSamples
} ;

const int16_t PROGMEM ctWaveformSizes[8] = {
  CHSAMPLESSIZE, OHSAMPLESSIZE, CYSAMPLESSIZE, CBSAMPLESSIZE, 
  CPSAMPLESSIZE, RSSAMPLESSIZE, SDSAMPLESSIZE, BDSAMPLESSIZE
} ;

//
// AD kit
//

#define AD_BD 0b10000000
#define AD_SD 0b01000000
#define AD_LT 0b00100000
#define AD_MT 0b00010000
#define AD_HT 0b00001000
#define AD_RS 0b00000100
#define AD_CP 0b00000010
#define AD_CH 0b00000001

const int8_t* const adWaveforms[8] PROGMEM  = {
  CHSamples, CPSamples, RSSamples, HTSamples, 
  MTSamples, LTSamples, SDSamples, BDSamples
} ;

const int16_t PROGMEM adWaveformSizes[8] = {
  CHSAMPLESSIZE, CPSAMPLESSIZE, RSSAMPLESSIZE, HTSAMPLESSIZE, 
  MTSAMPLESSIZE, LTSAMPLESSIZE, SDSAMPLESSIZE, BDSAMPLESSIZE
} ;

//
// VR kit
//

#define VR_BD 0b10000000
#define VR_SD 0b01000000
#define VR_LC 0b00100000
#define VR_MC 0b00010000
#define VR_HC 0b00001000
#define VR_RS 0b00000100
#define VR_OH 0b00000010
#define VR_CH 0b00000001

const int8_t* const vrWaveforms[8] PROGMEM  = {
  CHSamples, OHSamples, RSSamples, HCSamples, 
  MCSamples, LCSamples, SDSamples, BDSamples
} ;

const int16_t PROGMEM vrWaveformSizes[8] = {
  CHSAMPLESSIZE, OHSAMPLESSIZE, RSSAMPLESSIZE, HCSAMPLESSIZE, 
  MCSAMPLESSIZE, LCSAMPLESSIZE, SDSAMPLESSIZE, BDSAMPLESSIZE
} ;