// // 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 } ;