George Cochrane
/
DrumMachine
very preliminary code, pins clearly havent been chosen yet!
main.cpp
- Committer:
- gcme93
- Date:
- 2013-07-02
- Revision:
- 1:0404e9aa397f
- Parent:
- 0:438bb4b2ba51
File content as of revision 1:0404e9aa397f:
#include "mbed.h" #include "readknobs.h" #include "trigger.h" #include "TextLCD.h" TextLCD lcd(PTA1, PTA2, PTA4, PTA5, PTC8, PTC9, TextLCD::LCD20x4); // rs, e, d4-d7 //Analog Ins AnalogIn tmp(PTC2); //Tempo Potentiometer AnalogIn sw(PTC2); //Swing Potentiometer AnalogIn fill(PTC2); //Fill Potentiometer //Outputs to Drum Noises DigitalOut Kick(PTC6); DigitalOut Snare(PTC10); DigitalOut HHOpen(PTC11); DigitalOut HHClosed(PTC6); DigitalOut HiTom(PTC10); DigitalOut LoTom(PTC11); DigitalOut Clap(PTC10); DigitalOut Block(PTC11); //Detectors DigitalIn doubletime(PTC2); //Doubles the tempo DigitalIn enable(PTC2); //The GO switch DigitalIn threetime(PTC2); //Causes only first 6 beats to play DigitalIn KICK(PTC6); DigitalIn SNARE(PTC10); DigitalIn HHOPEN(PTC11); DigitalIn HHCLOSED(PTC6); DigitalIn HITOM(PTC10); DigitalIn LOTOM(PTC11); DigitalIn CLAP(PTC10); DigitalIn BLOCK(PTC23); //Beats DigitalOut Beat1(PTC2); DigitalOut Beat2(PTC2); DigitalOut Beat3(PTC2); DigitalOut Beat4(PTC2); DigitalOut Beat5(PTC2); DigitalOut Beat6(PTC2); DigitalOut Beat7(PTC2); DigitalOut Beat8(PTC2); //GLOBAL Variables int pulse = 4; //Pulse length in ms int mintempo = 60; //Minimum (normal time) tempo int maxtempo = 130; //Maximum (non doubletime) tempo int tempo; int swing; int beat; int main() { while (1) { readknobs(); wait_ms(10); while (enable==1) { beat=0; while (beat++ < 8) { readknobs(); trigger(); } } } }