diff options
Diffstat (limited to 'PolyDrums_v0_2_0_DelayDuty')
| -rw-r--r-- | PolyDrums_v0_2_0_DelayDuty/PolyDrums_v0_2_0_DelayDuty.ino | 480 | ||||
| -rw-r--r-- | PolyDrums_v0_2_0_DelayDuty/hihatc909.h | 57 | ||||
| -rw-r--r-- | PolyDrums_v0_2_0_DelayDuty/hihato909.h | 103 | ||||
| -rw-r--r-- | PolyDrums_v0_2_0_DelayDuty/kick909.h | 119 | ||||
| -rw-r--r-- | PolyDrums_v0_2_0_DelayDuty/snare909.h | 116 |
5 files changed, 875 insertions, 0 deletions
diff --git a/PolyDrums_v0_2_0_DelayDuty/PolyDrums_v0_2_0_DelayDuty.ino b/PolyDrums_v0_2_0_DelayDuty/PolyDrums_v0_2_0_DelayDuty.ino new file mode 100644 index 0000000..7c06b20 --- /dev/null +++ b/PolyDrums_v0_2_0_DelayDuty/PolyDrums_v0_2_0_DelayDuty.ino @@ -0,0 +1,480 @@ + +/* Example of a sound being triggered by MIDI input. + * NOW COMPATIBLE WITH MOZZI v1.0.2, MIDI library 4.2 + * LESS COMPATIBLE WITH ARDUINO IDE 1.0.6 onwards - http://sensorium.github.io/Mozzi/blog/2015/04/08/use-arduino-1-dot-0-5/ + * Demonstrates playing notes with Mozzi in response to MIDI input, + * using the standard Arduino MIDI library: + * http://playground.arduino.cc/Main/MIDILibrary + * + * Mozzi help/discussion/announcements: + * https://groups.google.com/forum/#!forum/mozzi-users + * + * Tim Barrass 2013. + * This example code is in the public domain. + * + * sgreen - modified to use standard Arduino midi library, added saw wave + * Audio output from pin 9 (pwm) + * Midi plug pin 2 (centre) to Arduino gnd, pin 5 to RX (0) + * http://www.philrees.co.uk/midiplug.htm + +D Green July 2015: +Big transparent button cycles through different backing sequences (including an empty one at the end) + +Small button to its left toggles between normal envelope and fake "delay" effect on all sounds + +Small button to its right switches main drums on and off + +Different waveforms selected via the right-hand corner up and down keys between octave up +and octave down - cycles between (I think): sawtooth, squarewave (variable duty cycle controlled by touchstrip), +squarewave with variable duty cycle autolocked to tempo, triangle wave (sounds like electric piano) + + */ +#define MAX_NOTES 3 +//Dave G: now seems to do 2+ note polyphony without clicking (higher notes are a bit grainy) +int threshold=255/(MAX_NOTES); + +#include <MIDI.h> +//#include <SPI.h> +#include <MozziGuts.h> +#include <Oscil.h> // oscillator template +#include <Line.h> // for envelope +#include <Sample.h> +#include <mozzi_utils.h> +#include <mozzi_analog.h> + +//#include <tables/square_analogue512_int8.h> +#include <tables/saw512_int8.h> +#include <tables/cos512_int8.h> + +#include <mozzi_midi.h> +#include <ADSR.h> +//#include <fixedMath.h> +#include <LowPassFilter.h> +//#include "Wave.h" +#include <WaveShaper.h> +#include <tables/waveshape_compress_512_to_488_int16.h> + + +#define DRUM_SAMPLES 1 + +#if DRUM_SAMPLES +#include "kick909.h" +#include "snare909.h" +#include "hihatc909.h" +#include "hihato909.h" +#endif + +// use #define for CONTROL_RATE, not a constant +#define CONTROL_RATE 128 // powers of 2 please + +#define ENABLE_MIDI 1 +#define DEBUG 0 +#define BPM 120 +#define STEPS_PER_BEAT 4 + +unsigned long beatCounter = 0; +unsigned long ticksPerStep = (60*CONTROL_RATE) / (BPM*STEPS_PER_BEAT); + +// audio sinewave oscillator +//Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> oscSin(SIN2048_DATA); +//Oscil <SAW512_NUM_CELLS, AUDIO_RATE> sawwave(SAW512_DATA); +//Oscil <TRIANGLE2048_NUM_CELLS, AUDIO_RATE> oscTri(TRIANGLE2048_DATA); +//Wave myosc; +WaveShaper <int> aCompress(WAVESHAPE_COMPRESS_512_TO_488_DATA); // to compress instead of dividing by 2 after adding signals + +struct Channel { + //Wave osc; + Oscil <COS512_NUM_CELLS, AUDIO_RATE> osc; + ADSR <CONTROL_RATE,CONTROL_RATE> env; +// ADSR <CONTROL_RATE> fxenv; + byte note; + byte gain; +}; +Channel chan[MAX_NOTES]; +byte currentChan = 0; + +// envelope generator +//ADSR <CONTROL_RATE> envelope; +LowPassFilter lpf; +int crushCtrl = 0; +int gain = 32; +float octave = 1.0f; + +boolean enableDrums = true; + +int freeChan=0; +int beat = 0; +int waveType = 3; +int bitmask = 0b0000000010000000; + +byte delayOn=0; +byte snareOn=1; +byte hatsOn=1; +byte bassOn=1; + +int button0_old = 0; +int button1_old = 0; + +#if DRUM_SAMPLES +// drums +Sample <kick909_NUM_CELLS, AUDIO_RATE> kickSamp(kick909_DATA); +Sample <snare909_NUM_CELLS, AUDIO_RATE> snareSamp(snare909_DATA); +Sample <hihatc909_NUM_CELLS, AUDIO_RATE> hihatcSamp(hihatc909_DATA); +Sample <hihato_NUM_CELLS, AUDIO_RATE> hihatoSamp(hihato_DATA); +#endif + +#define BASSPLUS4 7 //basically how many basslines there are plus 4 for drum parts +byte pattern[BASSPLUS4][32] = { + //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0 hhc + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1,0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, // 1 hho + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, // 2 snare + 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, // 3 kick + 12,0,24,0,12,0,24,0, 12, 0,24,0,12,0,24,0, 12,0,24,0,12,0,24,0, 12, 0,24,0,12,0,24,0, // 5 bass + 12,0,12,0,14,0,12,0, 15,16,12,0,17,0,16,0, 12,0,12,0,14,0,12,0, 15,16,12,0,17,0,16,0, // 6 bass + 24,0,12,0,24,0,12,0, 34, 0,22,0,29,0,17,0, 24,0,12,0,24,0,12,0, 34, 0,22,0,29,0,17,0, // 7 bass +}; +//bittersweet 0,12,15,12,13,10,13,0, 18,13,18,0, 17,13,17,0, + +// pin defines +#define LED 13 // to see if MIDI is being recieved +#define BUTTON0_PIN 2 +#define BUTTON1_PIN 3 + +// forward declarations +void HandleNoteOn(byte channel, byte note, byte velocity); +void HandleNoteOff(byte channel, byte note, byte velocity); +void HandleControlChange (byte channel, byte number, byte value); +void HandlePitchBend (byte channel, int bend); + +//yes surely this should go in setup but then not scoped in other functions..?? + MIDI_CREATE_DEFAULT_INSTANCE(); + +void setup() { + // init IO pins + pinMode(LED, OUTPUT); + +#if 0 + pinMode(BUTTON0_PIN, INPUT); + digitalWrite(BUTTON0_PIN, HIGH); // turn on pull-up resistor + + pinMode(BUTTON1_PIN, INPUT); + digitalWrite(BUTTON1_PIN, HIGH); // turn on pull-up resistor +#endif + +#if DEBUG + Serial.begin(57600); // for debugging +#endif + +#if ENABLE_MIDI + // Initiate MIDI communications, listen to all channels + MIDI.begin(MIDI_CHANNEL_OMNI); + + // Connect the HandleNoteOn function to the library, so it is called upon reception of a NoteOn. + MIDI.setHandleNoteOn(HandleNoteOn); // Put only the name of the function + MIDI.setHandleNoteOff(HandleNoteOff); // Put only the name of the function + MIDI.setHandleControlChange(HandleControlChange); + MIDI.setHandlePitchBend(HandlePitchBend); + MIDI.setHandleContinue(HandleContinue); + MIDI.setHandleStop(HandleStop); + MIDI.setHandleStart(HandleStart); + MIDI.setHandleProgramChange(HandleProgramChange); + +#endif + +#if 0 + //osc.setFreq(440u); // default frequency + //myosc.setFreq(440.0f); + myosc.setFreq(440.0f*4.0f); + myosc.setPulseWidth(32); + + envelope.setADLevels(255, 200); + envelope.setTimes(50, 200, 65535, 5000); +#endif + + for(int i=0; i<MAX_NOTES; i++) + { + // chan[i].osc.setType(WAVE_TRI); + chan[i].osc.setTable(SAW512_DATA); + //chan[i].osc.setPulseWidth(16); + chan[i].note=128; + chan[i].env.setADLevels(127,127); + chan[i].env.setTimes(10, 10, 20000, 510); +// chan[i].fxenv.setADLevels(255,255); +// chan[i].fxenv.setTimes(10, 10, 0, 2000); + } + + lpf.setResonance(128); + lpf.setCutoffFreq(190); + +#if DRUM_SAMPLES + kickSamp.setFreq((float) kick909_SAMPLERATE / (float) kick909_NUM_CELLS); + snareSamp.setFreq((float) snare909_SAMPLERATE / (float) snare909_NUM_CELLS); + hihatcSamp.setFreq((float) hihatc909_SAMPLERATE / (float) hihatc909_NUM_CELLS); + hihatoSamp.setFreq((float) hihato_SAMPLERATE / (float) hihato_NUM_CELLS); + //snareSamp.start(); +#endif + + //setupFastAnalogRead(); // optional +// adcEnableInterrupt(); // for analog reads + + startMozzi(CONTROL_RATE); +} + +void HandleProgramChange (byte channel, byte number) +{ + // change wave + waveType = (number) % 4; + + for(int i=0; i<MAX_NOTES; i++) + { +#if 1 + switch(waveType) { +// case 4: +// chan[i].osc.setTable(SQUARE_ANALOGUE512_DATA); +// break; + case 0: + chan[i].osc.setTable(SAW512_DATA); + break; + case 1: + chan[i].osc.setTable(COS512_DATA); + break; + case 2: + chan[i].osc.setTable(SAW512_DATA); + break; + case 3: + chan[i].osc.setTable(SAW512_DATA); + break; + } +#else + for(int i=0; i<MAX_NOTES; i++) + { + chan[i].osc.setType((WaveType) waveType); + } +#endif + } +} + + +void HandleNoteOn(byte channel, byte note, byte velocity) { + //osc.setFreq(mtof(note)); // simple but less accurate frequency + //osc.setFreq_Q16n16(Q16n16_mtof(Q8n0_to_Q16n16(note))); // accurate frequency + //myosc.setFreq(mtof(note)); // accurate frequency + //envelope.noteOn(); + + // start note on next channel - now with v basic "note priority"! +int index; +int empty=99; + +if (0==velocity) {empty=0;} +else { + digitalWrite(LED,HIGH); + for(int i=0; i<MAX_NOTES; i++) + { + index=((currentChan+i)%(MAX_NOTES-hatsOn)+hatsOn); + if (chan[index].gain==0) {empty=index; break;} + } + } + +if (empty==99) // ie all no empty channels found so far? + { + for(int i=0; i<MAX_NOTES; i++) + { + index=((currentChan+i)%(MAX_NOTES-hatsOn)+hatsOn); + if (chan[index].note==128) {empty=index; break;} + } + } + +if (empty<99) {currentChan=empty;} else + { + currentChan = (currentChan + 1) % MAX_NOTES; // add 1, wrap around + } + + chan[currentChan].note = note; + chan[currentChan].osc.setFreq(float(mtof(note))); +// (float(mtof(note))); // accurate frequency? + if (waveType==1) {chan[currentChan].osc.setFreq(float(mtof(note+24)));} //high triangle + chan[currentChan].env.noteOn(); +// chan[currentChan].fxenv.noteOn(); + +} + +void HandleNoteOff(byte channel, byte note, byte velocity) { + //envelope.noteOff(); + + // find which channel was playing this note + for(int i=0; i<MAX_NOTES; i++) { + if (chan[i].note == note) { + // kill it + chan[i].env.noteOff(); + chan[i].note=128; + } + } + + digitalWrite(LED,LOW); +} + +void HandleControlChange (byte channel, byte number, byte value) +{ + // http://www.indiana.edu/~emusic/cntrlnumb.html + switch(number) { + case 1: // modulation wheel + int divided= constrain((value /16)+2,1,7); // values=0-127, map to 0-7 + bitmask=((0b00000000111111111)>>divided)<<divided; + break; + + //gain = value*2; +/* lpf.setCutoffFreq( int(value*1.5f) ); // control messages are in [0, 127] range + lpf.setResonance( int(value*1.4f) ); +// for(int i=0; i<MAX_NOTES; i++) {chan[i].env.setTimes(10, 10, 0, 900+value); } +*/ + + break; + } +} + +// pitchbend = control strip + button on Keytar +void HandlePitchBend (byte channel, int bend) +{ + //bend value from +/-8192 + //lfo.setFreq((unsigned int) (bend+8192)>>7); + for(int i=0; i<MAX_NOTES; i++) { +// chan[i].osc.setPulseWidth((bend+8192) >> 8); + } + +} + +void HandleStop () { //this is the Back button on the Xbox keyboard +// octave *= 2.0f; +// if (octave > 16.0f) octave = 1.0f; +//Dave G: no longer used : ) +delayOn=(! delayOn); + for(int i=0; i<MAX_NOTES; i++) + { +if (delayOn) + { + chan[i].env.setTimes(10, 10, 0, 1020); + } + else + { + chan[i].env.setTimes(10, 10, 20000, 510); + } + } +} + +void HandleStart () { //this is the Back button on the Xbox keyboard +// octave *= 2.0f; +// if (octave > 16.0f) octave = 1.0f; +//Dave G: no longer used : ) +snareOn=(! snareOn); +} + +void HandleContinue () { // the big round button on all keytars +bassOn=(bassOn+1)% ((BASSPLUS4-4)+1) ; +if (0==bassOn) {hatsOn=0;} else {hatsOn=1;} +} + +void updateControl(){ +#if ENABLE_MIDI + MIDI.read(); +#endif + + //envelope.update(); + + // update playing envelopes + for(int i=0; i<MAX_NOTES; i++) { + chan[i].env.update(); +// chan[i].fxenv.update(); + //int tremolo=( chan[i].fxenv.next() & 0b00111111 ); + int tremolo=chan[i].env.next(); +if (delayOn) +{chan[i].gain=(tremolo * (tremolo&0b00011111) )>>5;} +else {chan[i].gain=tremolo;} +//subtler effect: {chan[i].gain=(tremolo + (tremolo&0b00011111) )>>1;} + if (chan[i].gain>threshold) {chan[i].gain=threshold;} + // threshold=255/MAX_NOTES, genuinely not sure if this is best approach but stops crashes :) + } + + +#if DRUM_SAMPLES + if (enableDrums) { + // drums + beatCounter++; + if (beatCounter > ticksPerStep) { + beat = (beat+1) & 0x1f; + beatCounter = 0; + +//if (beat==0 || beat==8) {HandleNoteOn(1, 48, 128); } + + //semi-perceptible BPM-locked phaser + if (3==waveType){int slowbeat=beat>>1; + int divided=(slowbeat+6)>>1; if (slowbeat>7) {divided=(22-slowbeat)>>1;} + bitmask=((0b00000000111111111)>>divided)<<divided; + } +// lpf.setCutoffFreq( (filterlevel+11) <<3 ); //maps to 72-192 +// lpf.setResonance( (filterlevel+10) <<3); + if (pattern[0][beat] && hatsOn) hihatcSamp.start(); + if (pattern[1][beat] && hatsOn) hihatoSamp.start(); + if (pattern[2][beat] && snareOn) snareSamp.start(); + if (pattern[3][beat] && snareOn) kickSamp.start(); + if (pattern[bassOn+3][beat] && bassOn) { HandleNoteOn(0, pattern[bassOn+3][beat]+24, 0) ;} + } + } +#endif + +} + +// strip the low bits off! +int bitCrush(int x, int a) +{ + return (x>>a)<<a; +} + +int updateAudio() +{ + //int x = (int) (envelope.next() * osc.next())>>8; + //int x = (int) (envelope.next() * myosc.next())>>8; + //int x = (int) (envelope.next() * (lfo.next() * myosc.next())>>8)>>8; + //int x = (int) lfo.next(); + //int x = (int) (lfo.next() * myosc.next())>>8; + //int x = (int) (envelope.next() * lpf.next(myosc.next()))>>8; + //int x = (envelope.next() * lpf.next(osc.next()))>>8; + //x = bitCrush(x, crushCtrl>>4); + //x = bitCrush(x, crushCtrl); + //x = (x * crushCtrl)>>4; // simple gain + //x = x>>2; + //x = lpf.next(x); + + // sum up channels + int x = hihatcSamp.next() + hihatoSamp.next(); + for(int i=0; i<MAX_NOTES; i++) { + int raw=chan[i].osc.next(); + if (i==0 && 1<waveType) {int squared=((( (raw+128) & bitmask) && 1)<<8)-128; raw=squared;} + x += (int) (chan[i].gain * raw)>>8; + } + +//Dave G: helps crash less if goes through some sort of waveshaper here? + x = aCompress.next(256u + x); + + //x = (x*gain)>>8; +// x = lpf.next(x); + +#if DRUM_SAMPLES + if (enableDrums) { + // drums please! + int drums = kickSamp.next() + snareSamp.next() ; + //drums = (drums>>4)<<4; + x += drums; + } +#endif + + return x; +} + + +void loop() { + audioHook(); // required here +} + + + diff --git a/PolyDrums_v0_2_0_DelayDuty/hihatc909.h b/PolyDrums_v0_2_0_DelayDuty/hihatc909.h new file mode 100644 index 0000000..d2b9d76 --- /dev/null +++ b/PolyDrums_v0_2_0_DelayDuty/hihatc909.h @@ -0,0 +1,57 @@ +#ifndef hihatc909_H_ +#define hihatc909_H_ + +#include "Arduino.h" +#include <avr/pgmspace.h> + +#define hihatc909_NUM_CELLS 1024 +#define hihatc909_SAMPLERATE 16384 + +const int8_t __attribute__((progmem)) hihatc909_DATA [] = {1, -2, 1, -2, 2, 0, -4, +13, -18, 2, 3, 3, -1, 4, -9, 7, -5, -2, 4, -22, 23, -7, -8, -2, 7, -5, -8, 12, +-4, 7, 7, -21, 12, -3, -18, 8, 1, 4, -20, 4, -5, -4, -2, 0, -2, -7, 3, -3, -3, +-4, 3, -9, 12, -5, 20, 2, -25, 19, 0, 8, -12, -6, 4, 0, 15, -7, 8, 19, -9, -6, +0, -1, 0, -3, 12, -12, 7, 9, -18, 2, 4, 1, -7, -4, 7, 2, -3, 0, -3, 1, -2, -4, +-4, -11, 7, -8, -2, 11, 2, 8, -1, 4, -3, -1, -2, -9, -6, -3, 3, -9, -9, 4, 1, +-5, 1, 5, 0, 2, 2, -3, 9, 6, -7, 3, 5, 0, -2, 0, 7, -3, -2, -2, -3, 4, -2, 2, +-3, 2, 0, -14, 4, 3, -4, 0, -5, 3, -2, -9, 3, 0, -1, -1, -5, -1, 5, -4, -6, 7, +1, -2, 2, 0, 4, -1, -7, 1, 3, 3, -1, -1, 6, 1, -2, 0, 3, -5, -9, 1, -1, -2, 0, +-2, -1, 2, -1, -7, -2, -1, 1, -1, -4, 7, -5, -4, 5, 1, 1, 1, -2, 3, 2, -4, 0, 1, +3, -3, 1, -2, 0, 2, -1, 2, -2, -2, 0, -4, -3, 3, -3, 0, -1, -3, 2, -3, -6, 6, +-2, 0, 1, 2, 0, -2, 2, 1, 1, -5, 1, -3, -2, -4, 3, -2, -2, 0, -2, 2, -4, 1, 4, +-4, -1, 1, -1, -1, -2, 2, 1, 1, -4, 5, -4, 0, 1, -4, 3, -2, -1, 3, 0, -3, 0, -1, +-1, -1, 0, -4, 3, -1, -3, 2, -1, -1, 0, 0, 1, 1, -1, 1, -2, -1, -1, -4, -1, 4, +-1, -2, 1, 0, 1, 0, 0, -1, 1, 0, 0, -1, 1, -3, 0, -1, -3, 2, -2, 1, 0, -2, -3, +1, -1, -3, 1, -1, -2, 1, 1, -2, -1, 0, 0, -2, 0, -1, -2, 2, -1, 0, -2, 1, -2, 0, +0, -4, 1, -1, -2, 1, 0, -2, 0, -2, 3, 0, -2, 1, 0, -1, -1, 1, -1, 0, 0, -1, 0, +0, 0, -2, -1, 0, -1, 0, 0, -2, 0, 0, -2, -2, 0, -1, -1, 1, 0, -2, 0, 1, -1, 1, +-1, 0, -1, 0, -1, -1, -1, -2, 1, 0, 0, 0, 0, 0, 0, -2, 0, 0, -1, -1, -1, 0, -1, +1, -1, -1, -1, -1, 1, -3, 0, -1, -1, 0, -1, -1, -1, 0, -1, -1, 0, -2, 0, 0, 0, +-2, -1, 1, -1, 0, 0, -1, 0, 0, 0, -1, -2, 0, -2, -1, 0, 0, -1, 0, 0, -2, 0, -1, +-1, -1, 0, -1, 0, 0, 0, -1, -1, 0, -1, 0, 0, 0, -2, 0, -1, -1, 0, -1, -1, 0, -1, +-1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, 1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, +0, -1, -1, 0, 0, -1, 0, 0, -1, 0, -1, -1, 0, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, +0, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, +-1, 0, 0, -1, 0, 0, 0, -1, 0, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, +-1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, +-1, 0, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, 0, 0, -1, -1, 0, -1, 0, 0, -1, -1, 0, +-1, 0, 0, -1, 0, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, -1, 0, -1, -1, 0, -1, 0, 0, +-1, 0, -1, 0, 0, -1, -1, 0, 0, -1, -1, -1, 0, 0, 0, -1, -1, -1, -1, 0, -1, 0, 0, +-1, -1, 0, 0, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, +-1, 0, -1, 0, -1, 0, 0, 0, -1, -1, 0, -1, -1, 0, -1, 0, 0, 0, 0, -1, 0, 0, -1, +0, -1, -1, 0, -1, -1, 0, -1, -1, 0, 0, -1, 0, -1, 0, -1, -1, 0, -1, -1, 0, -1, +-1, 0, -1, -1, -1, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, -1, 0, 0, -1, -1, 0, -1, +-1, 0, -1, 0, 0, -1, -1, 0, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, -1, 0, -1, 0, 0, +-1, 0, -1, 0, -1, 0, 0, -1, 0, 0, -1, 0, -1, -1, 0, -1, 0, 0, 0, -1, 0, -1, 0, +0, -1, 0, -1, -1, 0, -1, -1, 0, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, +-1, 0, 0, -1, -1, 0, -1, -1, 0, -1, 0, 0, -1, -1, -1, 0, -1, -1, 0, 0, 0, 0, 0, +-1, 0, 0, 0, -1, 0, -1, 0, 0, -1, 0, -1, -1, 0, 0, -1, -1, 0, -1, 0, -1, -1, 0, +-1, 0, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, -1, -1, 0, 0, -1, -1, 0, -1, -1, +0, -1, 0, -1, 0, -1, -1, -1, 0, 0, -1, -1, -1, 0, -1, 0, -1, -1, -1, 0, 0, -1, +0, 0, 0, -1, -1, 0, -1, 0, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, 0, +0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, +-1, 0, 0, -1, 0, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, -1, 0, -1, +0, 0, -1, 0, -1, 0, -1, 0, 0, 0, -1, -1, -1, 0, 0, -1, 0, -1, 0, -1, 0, -1, -1, +0, -1, 0, -1, 0, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, }; + + #endif /* hihatc909_H_ */ diff --git a/PolyDrums_v0_2_0_DelayDuty/hihato909.h b/PolyDrums_v0_2_0_DelayDuty/hihato909.h new file mode 100644 index 0000000..fd3a74d --- /dev/null +++ b/PolyDrums_v0_2_0_DelayDuty/hihato909.h @@ -0,0 +1,103 @@ +#ifndef hihato_H_ +#define hihato_H_ + +#include "Arduino.h" +#include <avr/pgmspace.h> + +#define hihato_NUM_CELLS 2048 +#define hihato_SAMPLERATE 16384 + +const int8_t __attribute__((progmem)) hihato_DATA [] = {0, -1, 0, -1, 0, -1, 0, +-1, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, -2, 4, -4, -1, 3, 1, -8, 7, -2, -9, 3, -1, +1, -3, 0, -2, 4, -3, -4, -1, -3, 3, -2, -5, -1, 2, -1, -3, -1, 4, -2, 4, -3, -2, +4, -1, 6, 0, 8, -5, -5, 2, -2, 2, -2, -2, 7, -4, 6, -11, -6, 11, -6, 1, 4, 0, +-14, 11, -6, -1, -2, -8, 5, -13, 1, 0, -8, 2, 7, 3, 1, -8, 5, 2, 2, -2, -8, 11, +-1, 0, 2, -1, -3, 2, -3, -9, 2, -4, 6, -3, 1, 9, -7, -3, 2, -2, -2, -13, 2, 9, +-3, 4, -3, 4, -6, 3, -1, -7, 13, -5, 3, 1, 1, -5, -13, 1, -2, 8, 0, 2, -4, 6, +-1, 2, 3, -12, 4, -16, 0, -7, 2, 0, -3, 10, -6, 6, -3, -9, -2, 11, -7, -7, 11, +9, -3, 1, -1, -5, -6, -4, 2, -11, 8, 2, -4, 14, 0, -9, 7, -4, 6, -2, -10, -3, 1, +4, -12, 10, -1, 1, 0, 2, -3, 0, 5, 0, 5, -6, 0, -1, 0, -8, -3, -1, -1, 1, -3, 3, +-3, 4, 8, -12, 0, -2, -7, 9, 2, 3, -6, -1, -4, 2, -7, -5, 12, -4, 7, 0, -2, 3, +-1, -2, -3, 1, -3, -1, 2, -1, 2, -8, 1, 7, -8, -3, 1, 5, 4, -3, -3, 1, -3, -13, +2, 0, 1, 2, -13, 4, 4, 4, 0, 6, 2, -6, -9, -5, 12, -3, 1, -10, 10, -1, -7, 3, +-2, 9, -18, 0, -5, 11, -4, 0, 6, -13, 3, -13, 14, 3, -5, 0, -3, 3, 1, -2, 1, 7, +5, -8, 6, 0, -8, 2, -3, 4, -6, 1, -14, 7, 8, -10, 7, -11, 10, -8, -13, 13, -3, +1, -2, 4, -4, -2, 0, 0, 8, -8, 2, 3, 5, -2, -1, -1, 4, 1, -13, 2, 2, -3, -5, 2, +-1, 2, -2, 0, 0, 4, -6, -5, 6, -1, 2, -5, 1, 10, -8, -7, 8, -6, 6, 3, -15, 2, 0, +-8, 6, 5, -4, 2, 0, -6, 5, -2, -4, 2, -3, -1, 5, -2, -2, 0, 1, 4, -8, 2, 4, 0, +0, -2, -1, -3, -1, -5, -3, 6, -18, 5, 10, -6, 10, -3, -4, 3, 1, -11, 4, -3, 5, +-2, -7, 7, -5, 3, -4, 4, -3, 3, -3, -2, 6, -2, 4, -5, 5, -3, -9, -3, -4, 1, -2, +5, 2, -2, 7, -4, -5, 3, 0, 2, 2, -5, -2, 6, 5, -11, 3, -6, 2, 0, -3, 5, -4, 5, +-6, 7, -11, 4, -3, -5, 1, -8, 4, -11, 17, 1, -3, -6, -2, 7, -2, -1, -5, 13, -5, +-8, 1, 5, 3, -10, 5, -5, -4, 7, -7, 8, 5, 1, -2, -8, 7, -8, -2, 2, 1, 4, -5, -5, +-2, 10, -10, -2, 1, -8, 0, -2, 5, 8, -4, -2, -4, 0, 4, -4, 1, -2, 5, 0, 8, -2, +1, -2, -4, 3, -6, 3, 0, -2, 2, 2, -5, -1, -7, -3, 1, 2, -6, 3, 0, -5, 6, -6, -1, +4, -2, -9, 4, 1, 3, 3, -2, 2, -1, -5, -2, 8, -1, -4, -6, 7, 2, 0, -3, 1, 2, -2, +1, -7, 5, -9, -2, 3, -4, 3, -1, -8, -3, 1, 0, -7, 5, 3, -3, -7, 2, 6, -2, 3, -7, +8, -7, 2, 1, 3, 7, -6, -1, -1, -2, -3, 5, -6, 3, 1, 0, -2, -1, -6, -5, 1, 3, 2, +-4, 2, -2, -1, 0, -1, -3, -2, -5, -3, 3, 4, -1, 8, 0, -2, 0, -5, 1, 2, -3, -2, +8, -4, 0, -5, -2, -1, -3, 0, 5, 3, -8, 0, 0, 7, -7, -2, -1, -3, -3, -1, 1, 7, 5, +-7, 1, 1, 4, -4, -3, 2, 5, -2, -6, 1, 1, -3, -7, -1, 3, -8, 3, -1, 2, 6, -11, 4, +1, -2, 0, -2, -3, 6, 6, -6, -1, 1, 2, 1, -1, -2, -1, -1, -5, 3, 0, -1, -1, -7, +0, -5, -1, 4, 0, 6, 0, -3, 1, 6, -5, 0, -3, -7, 6, -2, -2, 1, 5, -4, 4, -7, -4, +6, -3, 1, 0, -1, -4, -5, 2, -2, -5, 3, 1, 4, -1, 0, 1, 4, -1, -5, -1, -6, 2, -4, +-1, 2, -1, 1, -4, -2, 0, 1, 2, -1, 0, 2, -2, 0, 4, 0, -4, 1, -5, 1, -2, 1, 4, 0, +2, 1, -3, -9, 0, -1, 2, -6, -2, 4, 1, -1, -4, 1, -1, 0, -3, 1, 1, 1, 0, 0, 6, +-1, -8, -2, 1, 0, -2, -2, 5, 1, -3, -2, 5, 0, -3, -5, -8, 2, 1, 1, 0, 2, 2, -4, +-1, -2, 2, -5, 0, 6, -4, 5, 0, -4, 1, -4, -8, 6, -3, -4, 4, -3, 3, 0, -1, -2, 1, +-2, -2, 1, -2, -1, 0, 3, 1, 2, -1, -2, 0, -5, -1, 0, 7, 2, -4, 0, -2, -1, -2, +-1, 0, 1, -4, -3, 5, 2, -2, 2, -4, 2, -6, -6, 6, -1, 4, -2, 0, 1, -1, -1, -1, 2, +-3, 2, -5, -1, 4, -2, -1, -2, 2, -4, -5, 1, 2, 3, -1, 4, 1, -3, -2, -2, -2, 0, +2, -5, -2, 2, -1, 4, -4, -5, 3, -7, 2, 3, -3, 1, 2, 1, 1, -2, -3, 2, -4, 1, 0, +-1, 4, 1, -4, 2, -3, -3, 2, -7, 0, 4, -1, -2, 1, 1, -7, 4, -1, -1, -1, -6, 3, 4, +0, -1, 1, -4, 3, -5, -3, 4, -2, 1, 0, 0, 1, 0, -2, -2, -2, -3, -2, -1, 0, 3, -1, +0, 0, -1, -1, -4, 1, 1, 1, 2, -2, 2, 0, -2, 0, -3, -2, -2, 0, 2, 1, -1, 0, -1, +-2, 0, -3, 1, 1, -2, -3, 1, 0, 0, 1, -1, 1, -4, -1, 1, 3, 0, -1, 0, -1, -1, -4, +1, -1, 1, -1, -1, 3, -3, 0, -1, 2, -3, -2, 1, -3, 2, 2, -2, 0, 1, -6, 1, -1, 0, +3, -2, 0, 2, -2, -4, 1, -2, -2, -2, 2, -2, 2, 0, 0, 3, -2, 1, -2, 0, -3, 0, 1, +-1, 0, -1, 2, -4, -2, 1, -4, 2, 0, -2, 1, 3, -2, 0, -1, -2, -3, -2, 1, -1, 0, 1, +4, -2, 2, -2, -4, 1, -3, -2, 1, 0, -2, 0, 0, -1, 0, -2, -2, 1, 0, 1, 0, 2, 1, +-4, -2, 0, 0, -4, 1, -2, 1, 1, -4, 5, -1, -1, -2, -3, -1, 0, -3, -1, 4, -2, 0, +1, -1, 0, -2, -1, 2, -2, 1, 2, -1, 2, -1, -2, -1, -2, -5, -1, 1, 0, 0, 1, -2, 0, +-1, -2, -1, 1, 0, -4, 1, 0, 1, -1, 2, -2, -4, -1, -1, 4, 0, -2, 0, -1, 0, 0, -5, +1, 1, -3, 0, 0, -2, 3, -1, -2, 3, -5, 0, 2, 0, 0, -2, -2, 1, 2, -6, 0, 1, -1, 1, +-3, -1, 3, -2, -3, 2, 0, -3, 0, -2, 2, 1, -4, 2, 1, -2, -2, 1, -1, 4, -4, -4, 2, +2, -1, -1, -1, -4, 2, -3, 2, 2, -2, 0, -1, 0, 2, -3, -2, 2, 0, -4, -1, 1, -2, 2, +-2, -1, 0, -2, -1, 1, -1, -1, 3, 0, -1, -1, 0, -1, -2, 1, -1, 1, -1, 2, 1, -1, +-2, -1, 0, -5, 1, 0, -1, 2, 0, -2, -3, -1, 1, -2, -1, 1, 0, 1, 1, -2, 2, 0, -3, +-1, 0, -2, -1, 2, -1, -1, 2, -3, -1, 2, -3, -2, -1, -1, -1, 1, -2, 1, 1, -1, 0, +-2, 0, -2, 1, -1, 1, 1, 0, 0, -2, 0, -2, -1, -4, 0, 1, 0, 1, -1, 0, -1, -4, -2, +-1, -1, -1, 0, 1, 2, -1, -3, 1, 0, 0, -1, -1, 0, 1, -3, 0, 2, 0, -2, -4, -1, 1, +-1, -2, 2, 2, -1, -1, 0, -2, 1, -3, -3, 2, 0, -1, -1, 2, 1, -1, -2, -1, 0, -1, +-2, 0, 1, -1, -2, 0, 2, -3, -1, 0, -2, 1, -1, 0, 3, -1, 0, -1, 0, -1, -1, -2, +-1, 1, -1, 1, -3, -1, -1, -1, -1, -1, -1, -3, 2, -2, -1, 1, -1, 1, -2, -2, 1, 1, +0, -1, 1, -1, 0, -2, 1, 2, -3, 0, 0, -1, 0, -1, -2, 1, 0, -4, -1, 1, 0, 2, -3, +-1, 1, -1, -2, 1, -1, 2, -1, -2, 1, -2, 0, -2, 0, 1, -2, -1, 0, 2, 0, -2, -1, 0, +-1, -2, -1, 1, 3, -3, -2, 0, 0, -1, 0, 0, -1, -1, -3, -1, 1, 0, -2, 0, -1, 0, +-2, 0, 0, 1, -1, 0, 1, -1, 3, -2, 0, 0, -3, 0, 2, -2, -1, 2, -1, -1, -1, -2, 0, +-2, -2, 0, -1, -3, 0, 0, 0, 0, -3, 0, -1, 0, 0, 0, 1, 1, -1, -3, 0, 0, 0, -1, +-3, 0, 1, -2, -1, 2, -2, -1, 0, -4, 1, 0, -2, 1, -1, 1, -1, 0, 0, 0, -1, -1, 0, +-1, 1, -1, -1, 1, -1, -1, -2, -1, -1, -2, 0, 1, 0, -1, 1, -1, 0, 1, -1, -2, 1, +0, -2, 3, 0, 0, 0, -2, 0, -1, -1, -1, 0, -1, -1, -2, -1, 0, -2, -1, 0, -1, 0, 0, +0, 1, -1, 0, 0, -3, 0, 0, -1, 0, -1, 1, -1, 0, -1, -1, 0, -2, -1, 0, -1, -2, -1, +2, -1, -1, -1, -1, 1, -2, 1, -1, 0, 1, 0, -2, 0, 0, -3, 2, -2, -1, 0, -1, 0, 1, +1, -3, 1, -1, -2, 1, -3, 0, 1, -1, 0, 0, -2, 1, 0, -2, 0, -1, -1, 0, -2, -1, -1, +-1, 0, -1, -1, 0, 0, -2, 1, -1, -1, 0, -1, 1, -1, 0, -1, 1, -1, -3, 1, -1, 0, +-1, 0, 0, 0, 0, -2, -1, -1, 1, -3, -1, 2, -1, 0, -1, 0, 0, -2, -1, 1, -1, 0, -1, +-2, 1, -1, -2, 0, 0, -1, -2, -2, 1, 1, -1, -2, 1, 0, -2, 0, 0, 0, 0, -2, 0, 1, +-1, 0, -1, 0, -2, -1, -1, 1, 0, -1, 0, -1, 0, -1, -2, 1, -1, -2, 1, 0, 1, 0, -1, +0, 0, -2, -1, 1, -1, 0, -1, 0, 0, -1, -1, -1, 1, -3, -1, 0, 0, 0, -1, 1, 1, 0, +-3, 0, 0, -1, 0, -1, 1, -1, 0, -1, 1, 1, -3, -2, 0, 0, 0, -1, 0, 1, -2, -2, -1, +0, -1, -1, -1, 1, 0, -1, 1, -1, 0, -1, -1, -2, 1, -2, 0, 1, -1, 1, -1, 0, -1, 0, +-1, 0, 0, -1, 1, -1, 1, 0, -1, -2, 0, 0, -3, 0, -1, 1, -1, -2, 0, -1, 0, -1, -1, +0, -1, 0, 0, 1, -1, 1, -1, -2, 1, -2, 0, 0, -1, 0, 0, -1, -1, 1, -2, -2, 0, -1, +0, -1, 0, -1, 0, -1, -1, -1, -1, 0, -1, 1, 0, 0, 0, -1, -1, 0, 1, -1, 0, 0, -1, +0, -1, 0, 0, -1, -2, 0, -1, -1, 0, -1, 1, 0, -1, 0, -1, -2, 0, 0, -1, 0, -1, -1, +0, -1, -1, -2, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, -1, 0, -1, -1, -1, +-1, 0, 1, -1, -2, 1, -1, 0, -1, -1, -1, 0, -1, -1, 0, -1, 1, 0, 0, 0, -1, -1, 0, +-2, 0, -1, 0, 1, -2, -1, -1, 0, 0, -3, 1, 0, -1, 0, 0, 0, -2, 0, -2, 1, -1, -2, +1, 0, 0, -2, 0, 1, -2, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 0, -1, 0, -1, 0, 0, +1, -1, 0, 0, -1, 0, -2, 0, -1, 0, -1, 1, 0, -2, -2, 0, 0, -3, -1, 0, -1, 0, 0, +-1, 0, }; + + #endif /* hihato_H_ */ diff --git a/PolyDrums_v0_2_0_DelayDuty/kick909.h b/PolyDrums_v0_2_0_DelayDuty/kick909.h new file mode 100644 index 0000000..8dc2b21 --- /dev/null +++ b/PolyDrums_v0_2_0_DelayDuty/kick909.h @@ -0,0 +1,119 @@ +#ifndef kick909_H_ +#define kick909_H_ + +#include "Arduino.h" +#include <avr/pgmspace.h> + +#define kick909_NUM_CELLS 2048 +#define kick909_SAMPLERATE 16384 + +const int8_t __attribute__((progmem)) kick909_DATA [] = {-1, 0, -1, 0, -1, 0, 0, +0, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, 0, -1, +0, -1, 0, -1, 0, 0, -1, 0, -1, 0, 0, -1, -1, -2, -2, -3, -3, -2, -2, -2, -1, -1, +-1, -1, 0, 0, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 8, 9, 9, 10, 14, 17, +20, 24, 29, 50, 57, 49, 53, 54, 53, 53, 54, 53, 53, 53, 52, 51, 50, 48, 46, 45, +44, 42, 40, 38, 35, 33, 30, 26, 23, 19, 15, 12, 8, 5, 1, -2, -6, -9, -11, -13, +-16, -17, -18, -20, -22, -23, -24, -24, -25, -26, -27, -27, -27, -27, -28, -28, +-28, -28, -27, -27, -27, -26, -25, -24, -24, -23, -21, -20, -19, -17, -15, -13, +-12, -10, -8, -5, -3, -1, 1, 3, 6, 8, 10, 12, 14, 17, 19, 21, 24, 25, 28, 30, +32, 33, 35, 36, 37, 37, 38, 38, 39, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, +40, 40, 39, 38, 38, 37, 37, 36, 36, 35, 34, 33, 32, 32, 30, 29, 28, 26, 24, 22, +20, 18, 17, 15, 13, 11, 9, 8, 6, 5, 3, 1, -1, -2, -4, -5, -7, -8, -9, -11, -13, +-14, -16, -17, -18, -19, -20, -21, -22, -24, -25, -25, -26, -27, -27, -28, -29, +-29, -30, -30, -30, -30, -31, -31, -31, -31, -31, -32, -31, -32, -32, -32, -32, +-32, -32, -32, -32, -32, -32, -32, -32, -31, -31, -31, -30, -30, -30, -29, -28, +-28, -27, -27, -26, -26, -25, -25, -24, -23, -22, -21, -20, -20, -19, -18, -17, +-16, -15, -14, -13, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, 0, 1, 2, 3, 4, 6, +6, 8, 9, 10, 11, 12, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 27, +28, 29, 30, 30, 31, 32, 33, 33, 34, 34, 34, 34, 35, 35, 35, 36, 36, 36, 36, 36, +36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36, 36, 36, +36, 35, 35, 35, 34, 34, 34, 33, 33, 32, 32, 32, 32, 31, 31, 30, 30, 29, 29, 28, +28, 27, 27, 26, 25, 25, 24, 23, 23, 21, 21, 20, 19, 18, 17, 16, 15, 14, 12, 11, +10, 9, 8, 7, 7, 6, 5, 4, 3, 2, 1, 0, -2, -3, -4, -4, -5, -6, -7, -8, -8, -9, +-10, -11, -12, -12, -13, -14, -15, -16, -16, -17, -18, -19, -20, -20, -21, -22, +-23, -23, -24, -25, -25, -26, -26, -27, -27, -28, -29, -29, -29, -30, -30, -31, +-31, -32, -32, -32, -32, -33, -33, -33, -33, -33, -33, -34, -34, -34, -34, -34, +-34, -34, -34, -34, -34, -34, -34, -34, -35, -35, -35, -35, -35, -35, -35, -35, +-35, -35, -35, -35, -34, -34, -34, -34, -33, -33, -33, -33, -33, -32, -32, -32, +-32, -31, -31, -31, -31, -31, -30, -30, -30, -29, -29, -29, -28, -28, -28, -27, +-27, -26, -26, -25, -25, -24, -24, -23, -23, -22, -21, -21, -20, -19, -19, -18, +-17, -17, -16, -15, -14, -14, -13, -12, -12, -11, -10, -9, -9, -8, -7, -6, -5, +-5, -4, -3, -2, -1, -1, 0, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 12, 13, +14, 15, 16, 16, 17, 18, 19, 20, 20, 21, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, +29, 29, 30, 30, 31, 31, 31, 32, 32, 32, 32, 33, 33, 32, 33, 33, 34, 34, 34, 34, +34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, +35, 35, 35, 35, 35, 35, 35, 35, 35, 34, 34, 34, 34, 33, 33, 32, 33, 33, 32, 32, +32, 31, 31, 31, 31, 30, 30, 30, 29, 29, 29, 28, 28, 28, 27, 27, 26, 26, 26, 25, +25, 24, 24, 23, 22, 22, 21, 20, 20, 19, 18, 17, 17, 16, 15, 14, 13, 12, 11, 11, +10, 9, 8, 7, 6, 5, 4, 4, 3, 2, 1, 0, -1, -1, -2, -3, -4, -5, -5, -6, -7, -8, -9, +-9, -10, -11, -12, -12, -13, -14, -14, -15, -16, -17, -17, -18, -19, -19, -20, +-21, -21, -22, -23, -23, -24, -24, -25, -26, -26, -27, -27, -28, -28, -29, -30, +-30, -30, -31, -31, -32, -32, -32, -33, -33, -33, -34, -34, -34, -34, -34, -35, +-35, -35, -35, -35, -35, -35, -35, -36, -36, -36, -36, -36, -36, -36, -36, -36, +-36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, +-35, -35, -35, -35, -35, -34, -34, -34, -34, -34, -33, -33, -33, -33, -32, -32, +-32, -32, -31, -31, -31, -31, -30, -30, -30, -29, -29, -29, -28, -28, -27, -27, +-26, -26, -26, -25, -24, -24, -23, -23, -22, -21, -21, -20, -19, -19, -18, -17, +-17, -16, -15, -15, -14, -13, -12, -12, -11, -10, -9, -9, -8, -7, -6, -6, -5, +-4, -3, -3, -2, -1, 0, 0, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11, 12, 13, +14, 15, 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23, 24, 25, 25, 26, 26, 27, 28, +28, 29, 29, 29, 30, 30, 30, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 33, 33, 32, +33, 33, 34, 33, 33, 32, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, +34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 32, 33, 33, 32, 32, 32, 32, 31, +31, 31, 31, 30, 30, 30, 29, 29, 29, 29, 28, 28, 28, 27, 27, 26, 26, 26, 25, 25, +24, 24, 23, 23, 22, 22, 21, 20, 20, 19, 18, 18, 17, 16, 15, 14, 13, 12, 12, 11, +10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1, 0, -1, -2, -3, -3, -4, -5, -6, -7, -7, -8, -9, +-10, -10, -11, -12, -12, -13, -14, -14, -15, -15, -16, -17, -17, -18, -18, -19, +-19, -20, -20, -21, -21, -22, -22, -23, -23, -24, -24, -25, -25, -25, -26, -26, +-27, -27, -27, -27, -28, -28, -28, -28, -29, -29, -29, -29, -29, -29, -29, -29, +-29, -29, -29, -30, -30, -30, -30, -30, -29, -29, -29, -29, -29, -29, -29, -29, +-29, -29, -29, -29, -29, -29, -29, -29, -29, -28, -28, -28, -28, -28, -28, -28, +-28, -27, -27, -27, -27, -27, -26, -26, -26, -26, -26, -25, -25, -25, -25, -25, +-24, -24, -24, -24, -23, -23, -23, -23, -23, -22, -22, -22, -21, -21, -21, -21, +-20, -20, -20, -19, -19, -19, -18, -18, -18, -17, -17, -17, -16, -16, -15, -15, +-15, -14, -14, -13, -13, -13, -12, -12, -12, -11, -11, -10, -10, -10, -9, -9, +-8, -8, -8, -7, -7, -7, -6, -6, -5, -5, -5, -4, -4, -4, -3, -3, -3, -2, -2, -1, +-1, -1, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, +7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, +7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, +6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, +2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, -2, -2, -2, -2, -3, -3, -3, -3, +-4, -4, -4, -4, -4, -5, -5, -5, -5, -6, -6, -6, -6, -6, -6, -7, -7, -7, -7, -7, +-8, -8, -8, -8, -8, -8, -8, -9, -9, -9, -9, -9, -9, -9, -9, -10, -10, -10, -10, +-10, -10, -10, -10, -10, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, +-11, -11, -11, -11, -11, -11, -11, -11, -12, -11, -11, -11, -11, -11, -11, -11, +-11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, +-11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -10, -10, +-10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -9, -9, +-9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -8, -8, -8, -8, -8, -8, -8, +-8, -8, -8, -8, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -6, -6, -6, -6, -6, -6, +-6, -6, -6, -6, -6, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, +-3, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, +-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -4, -4, -4, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, +-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, +-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, +-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, +-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, +-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, +-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, +-3, -2, -3, -2, -3, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, }; + + #endif /* kick909_H_ */ diff --git a/PolyDrums_v0_2_0_DelayDuty/snare909.h b/PolyDrums_v0_2_0_DelayDuty/snare909.h new file mode 100644 index 0000000..7ed733c --- /dev/null +++ b/PolyDrums_v0_2_0_DelayDuty/snare909.h @@ -0,0 +1,116 @@ +#ifndef snare909_H_ +#define snare909_H_ + +#include "Arduino.h" +#include <avr/pgmspace.h> + +#define snare909_NUM_CELLS 2048 +#define snare909_SAMPLERATE 16384 + +const int8_t __attribute__((progmem)) snare909_DATA [] = {0, -1, 0, -1, 0, -1, 0, +-1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, +-1, 0, 0, -2, -2, 0, -2, -1, -3, -2, 4, -3, -7, -2, 1, -7, 6, -3, -2, -6, -8, 8, +-6, 0, -3, -1, -7, 0, -4, -11, -2, 3, -7, -9, 19, -1, 33, 43, 22, 60, 57, 49, +58, 55, 68, 65, 62, 60, 60, 69, 64, 61, 57, 58, 43, 50, 39, 37, 27, 17, 21, 15, +11, -2, -6, -12, -6, -23, -7, -22, -30, -22, -25, -27, -26, -31, -31, -21, -18, +-8, -18, -4, 3, 1, 8, 12, 12, 19, 14, 42, 28, 21, 43, 45, 49, 46, 46, 43, 55, +44, 47, 44, 30, 46, 34, 38, 42, 24, 34, 27, 45, 23, 28, 38, 35, 36, 23, 30, 28, +40, 23, 32, 35, 29, 31, 31, 30, 28, 30, 30, 12, 13, 18, 8, 7, -2, 5, 6, -1, -7, +-5, -9, -10, -11, -13, -17, -22, -25, -24, -24, -33, -28, -24, -30, -20, -28, +-41, -28, -29, -26, -27, -37, -26, -29, -32, -20, -31, -26, -15, -20, -9, -14, +-15, -12, -6, -7, -3, 8, 6, 15, 16, 12, 21, 30, 25, 35, 35, 29, 46, 44, 38, 49, +34, 48, 44, 44, 55, 38, 50, 41, 52, 43, 43, 53, 44, 56, 46, 39, 41, 44, 42, 42, +44, 41, 43, 35, 38, 39, 26, 30, 36, 31, 27, 26, 21, 20, 15, 9, 8, -2, 0, 10, +-10, -13, -3, -17, -14, -14, -18, -7, -30, -24, -32, -26, -28, -37, -23, -35, +-25, -40, -31, -34, -46, -30, -42, -38, -26, -37, -33, -32, -27, -32, -23, -23, +-20, -13, -11, -10, -18, 0, -13, -3, -8, 3, -6, 4, 19, -1, 12, 14, 19, 10, 13, +9, 20, 19, 21, 23, 21, 34, 21, 24, 34, 20, 31, 28, 31, 36, 24, 33, 23, 31, 27, +30, 35, 37, 26, 17, 21, 19, 27, 21, 24, 17, 23, 19, 24, 19, 4, 23, 7, 15, 17, +14, 24, 8, 15, 10, 5, 6, 11, 12, -5, 9, 9, 10, 9, 1, 5, 0, -2, -2, 1, 1, -7, 0, +3, -2, -2, -8, -8, -19, -4, -18, -6, -4, -11, -5, -15, -1, -28, -12, -19, -10, +-15, -23, -19, -23, -9, -25, -22, -21, -22, -18, -23, -18, -16, -31, -28, -23, +-20, -27, -15, -26, -23, -22, -23, -16, -22, -29, -20, -11, -29, -12, -17, -14, +-15, -12, -16, -22, -21, -8, -11, -16, -8, -13, -12, -8, -15, -14, -9, -14, -2, +-13, 3, -9, -12, 9, 3, 0, 7, -3, 0, 9, 2, 9, 7, 5, 4, 18, 12, 3, 14, 17, 16, 19, +14, 6, 21, 24, 23, 18, 24, 18, 11, 25, 25, 20, 24, 22, 5, 27, 20, 13, 25, 28, +17, 19, 11, 14, 24, 10, 23, 10, 23, 19, 16, 9, 14, 9, 14, 17, 6, 13, 8, 11, -1, +17, 9, 0, 6, 4, -1, 3, -12, -10, -4, -12, -9, -14, -5, -24, -11, -14, -21, -16, +-13, -18, -30, -17, -29, -25, -21, -21, -29, -30, -15, -34, -30, -21, -29, -25, +-26, -28, -36, -27, -30, -28, -25, -21, -11, -31, -18, -21, -12, -12, -12, -13, +-17, -15, -17, 0, -21, -9, 3, -3, -1, -7, 2, -3, 3, 3, -9, 13, 8, 5, -3, 9, 13, +3, 18, 6, 13, 13, 15, 12, 7, 10, 14, 12, 11, 3, 12, 15, 17, 6, 7, 26, -1, 16, +19, 8, 16, 12, 15, 1, 10, 20, 7, 7, 8, 17, 1, 3, 12, 8, 7, 10, 9, -4, 1, -3, 5, +1, 0, 1, 4, 3, -6, 1, -2, -2, -10, -7, -1, -3, -4, -19, 0, -10, -13, -4, -15, +-8, -4, -13, -24, -10, -8, -13, -10, -11, -24, -14, -18, -6, -9, -24, -20, -10, +-12, -18, -11, -14, -13, -18, -17, -28, -8, -27, -20, -14, -15, -11, -18, -9, +-16, -15, -17, -16, -6, -13, -17, 3, -25, -1, -11, -4, -6, -8, -5, -14, 0, -11, +5, -3, 0, 0, -1, -12, 0, -2, -5, 6, 5, 4, 4, -11, 2, 3, -4, 12, 1, 5, -2, 3, -3, +0, 2, 6, 7, -7, 2, 1, 6, 5, -2, 0, 2, 1, 9, 1, 9, -5, -6, 7, -2, 5, -3, 16, -1, +1, 2, 4, 10, -3, 17, -2, 6, 7, 2, 9, -2, 1, -6, 10, -5, -1, 3, -8, 11, -6, 7, +-1, -7, 2, -3, -6, 1, -3, -11, -3, -3, -7, -12, -4, -7, -10, -9, -18, -6, -11, +-20, -3, -12, -6, -10, -24, -9, -16, -18, -9, -18, -20, -11, -9, -15, -24, -10, +-20, -27, -13, -14, -13, -19, -18, -23, -21, -17, -14, -22, -15, -21, -19, -14, +-19, -11, -15, -15, -17, -17, -18, -12, -12, -12, -8, -10, -17, -9, -14, -3, -5, +-10, -9, -10, -8, -10, 7, -5, -3, 0, -2, 3, -3, 6, -6, -7, -1, 3, 5, 1, 4, -12, +8, 5, -1, 11, 6, -4, 3, 6, -1, 10, 1, 7, 2, 7, 6, -6, 2, 3, 3, 1, 6, 0, -3, 5, +5, 7, 1, -3, -2, -2, 6, 2, -3, 0, 3, 4, -4, 2, -5, -1, -2, -4, 0, -8, -8, -5, 2, +-9, -6, -1, -2, -9, -6, -12, 1, -10, -14, -9, -13, -10, -10, -9, -10, -7, -17, +-3, -13, -7, -12, -15, -16, -10, -9, -16, -7, -11, -11, -13, -14, -9, -11, -16, +-17, -12, -10, -16, -10, -11, -14, -4, -14, -17, -7, -12, -6, -16, -2, -7, -9, +-10, -9, -5, -18, 1, -8, 0, 1, -9, -16, -4, -3, -6, 4, -9, -2, -10, 0, 1, -10, +3, -1, -3, -2, -4, 0, 3, -3, 0, -1, 0, 2, -4, 2, -3, -8, 0, -5, 5, -7, -4, 3, +-9, 6, -10, 5, 1, -4, 2, -8, 2, -6, 2, -1, 2, -2, -6, 1, -6, -5, -3, 7, -8, -5, +2, -7, -1, -8, 3, 0, 0, 1, -6, -3, -5, -3, -3, -9, -6, 1, -7, -5, -3, -3, -6, +-11, -5, -1, -8, -15, -1, -8, -8, 0, -13, -9, 0, -14, -10, -9, -9, -11, -3, -11, +-14, -7, -5, -4, -12, -18, -16, -2, -19, -7, -13, -5, -12, -10, -6, -23, -4, +-10, -11, -8, -10, -14, -12, -5, -14, -13, -3, -8, -16, -10, -8, -15, -6, -13, +-10, -11, -8, -6, -12, -9, -8, -10, -10, -8, -4, -13, -5, -6, -11, 2, -14, -2, +-6, -7, -1, -11, 1, -4, -9, 3, -3, 2, -8, -1, -2, -7, -1, 0, 4, -3, 3, -7, 2, +-3, -1, 1, -3, -2, -1, 7, -4, 1, -2, -2, -4, -3, 8, -9, 1, -1, -3, 4, -6, 3, 3, +0, -1, -5, -7, -2, 1, -4, 3, 0, -9, 0, -4, 4, -5, -4, 1, -3, -4, -5, -3, -7, -8, +-7, 2, -9, -8, -2, -7, -3, -10, -6, -4, -12, -6, -10, -7, -10, -10, -5, -11, -3, +-7, -13, -10, -8, -6, -15, -7, -7, -11, -9, -11, -8, -10, -11, -8, -6, -12, -8, +-10, -8, -6, -10, -7, -8, -7, -8, -11, -3, -4, -5, -6, -12, -8, -6, -6, -3, -6, +-6, -6, -2, 1, -12, -5, -4, -6, -1, -1, -7, -5, -4, -3, 1, -6, 2, -6, 0, -5, -9, +4, -7, -2, 2, -3, 1, -3, -4, -4, -1, -2, -4, 3, -5, -2, -3, -4, -1, -4, 1, -1, +-10, 1, 0, -9, 2, -3, -6, -2, 6, -5, -6, -2, -3, -3, -4, -4, -6, -1, -5, -6, -1, +-2, -9, -1, -2, -5, -3, 0, -5, -7, -5, -8, -1, -7, -6, -4, -2, -6, -7, -7, -8, +-5, 0, -4, -12, -4, -10, -3, -4, -11, -3, -6, -6, -6, -9, -7, -9, -7, -5, -7, +-2, -10, -10, -3, -10, -5, -7, -10, -6, -12, -6, -9, -4, -7, -8, -5, -12, -6, +-5, -4, -9, -4, -7, -5, -5, -8, -7, -7, -9, -7, -5, -11, -3, -6, -3, -5, -8, -4, +-3, -6, -8, -6, -5, -4, -5, -6, -2, -6, -6, -2, -5, -3, -4, -5, -7, -3, -2, -2, +-2, -9, 1, -3, -8, 0, -3, 0, -5, -3, -2, -1, 0, -3, -3, -4, 1, -2, -8, 3, -1, +-5, 1, 0, -3, -4, -4, -1, 0, -3, 2, -6, -1, -3, -6, 2, -4, -3, -3, -1, -1, -5, +-3, 0, 0, -6, -1, -4, -5, -3, 0, -1, -4, -8, -4, 0, -9, 0, -4, -5, -4, -1, -5, +-6, -4, -6, -3, -6, -6, -9, -4, -4, -7, -4, -3, -10, -6, -6, -5, -5, -8, -5, -9, +-5, -6, -5, -6, -9, -8, -4, -5, -10, -3, -7, -6, -6, -4, -6, -9, -4, -6, -2, -7, +-2, -3, -7, -4, -7, -3, -5, -3, -4, -7, -4, -3, -3, -2, -1, -5, -4, -3, -4, -3, +-3, -2, -3, -1, -3, -7, 0, -3, 2, -1, -5, -3, -1, -3, -5, 1, -8, 2, -5, 0, -1, +-6, -1, -2, 2, -5, -1, -1, -2, -2, -1, -6, 0, -5, -2, 0, -5, -2, -4, 1, -5, -4, +-2, 0, -5, -3, 0, -5, -1, -2, -3, -3, -4, -2, -3, -3, -5, -4, -2, -6, -3, -6, +-4, -3, -6, -3, -2, -5, -5, -5, -4, -5, -3, -3, -8, -2, -6, -3, -4, -9, -1, -8, +-4, -4, -7, -2, -6, -3, -5, -4, -3, -5, -3, -8, -4, -8, -5, -3, -8, -1, -7, -2, +-4, -6, -5, -3, -4, -3, -4, -4, -1, -5, -2, -5, -2, -3, -4, -3, -5, -2, -4, -1, +-4, -4, -1, -3, -1, -4, -4, -3, -2, -3, -1, -3, -5, -2, -1, -3, -2, 0, -4, -2, +-3, -4, -2, -3, -2, -2, -1, -3, -4, -2, -3, -2, -3, 0, -5, -2, -1, -3, -1, -2, +-1, -5, -2, -1, -2, -2, -2, -1, -2, -2, -3, -2, -4, -2, -1, -3, -2, -2, -2, -2, +-1, -4, -4, -1, -3, -2, -1, -6, -1, -4, -4, -2, -5, -1, -4, -1, -4, -4, -2, -3, +-4, -2, -4, -4, -3, -4, -1, -5, -5, -3, -3, -4, -4, -5, -3, -3, -6, -4, -4, -3, +-4, -4, -3, -4, -3, -5, -5, -4, -6, -2, -6, -3, -4, -4, -3, -5, -2, -5, -5, -3, +-3, -4, -4, -4, -2, -3, -4, -4, -4, -2, -3, -3, -3, -3, -3, -2, -2, -4, -1, -2, +-3, -1, -3, -1, -2, -3, -3, -1, -4, -3, -1, -2, -2, -1, -2, -2, -2, -3, -1, -2, +-1, -1, -3, -2, -1, -2, -2, -2, -1, -1, -1, -2, -2, -1, -2, -1, -2, -2, -1, -2, +-2, -2, -1, -2, -2, -1, -2, -2, -1, -2, -2, -2, -2, -1, -2, -3, -2, -2, -2, -2, +-2, -2, -2, -2, -3, -3, -2, -2, -3, -2, -3, -3, -3, -3, -2, -3, -2, -3, -3, -3, +-3, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -3, -3, -3, +-3, -3, -3, -3, -3, -3, -2, -3, -3, -2, -3, -2, -2, -2, -2, -2, -3, -2, -2, -3, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-1, -2, -2, -2, -2, -1, -2, -1, -1, -2, -2, -1, -2, -1, -2, -2, -2, -2, -1, -2, +-2, -2, -2, -1, -1, -2, -1, -2, -1, -2, -2, -1, -1, -1, -2, -1, -2, -1, -2, -1, +-1, -2, -1, -1, -1, -1, -1, -1, -2, -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, +-2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -1, -1, -1, }; + + #endif /* snare909_H_ */ |
