George Cochrane
/
DrumMachine
very preliminary code, pins clearly havent been chosen yet!
trigger.cpp@0:438bb4b2ba51, 2013-07-02 (annotated)
- Committer:
- gcme93
- Date:
- Tue Jul 02 09:16:17 2013 +0000
- Revision:
- 0:438bb4b2ba51
- Child:
- 1:0404e9aa397f
Full Code (threetime, doubletime, enable, screen output); NO fill; NO alternate; NO user input
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gcme93 | 0:438bb4b2ba51 | 1 | #include "mbed.h" |
gcme93 | 0:438bb4b2ba51 | 2 | #include "TextLCD.h" |
gcme93 | 0:438bb4b2ba51 | 3 | #include "trigger.h" |
gcme93 | 0:438bb4b2ba51 | 4 | |
gcme93 | 0:438bb4b2ba51 | 5 | unsigned int period; |
gcme93 | 0:438bb4b2ba51 | 6 | unsigned int periododd; |
gcme93 | 0:438bb4b2ba51 | 7 | unsigned int periodeven; |
gcme93 | 0:438bb4b2ba51 | 8 | |
gcme93 | 0:438bb4b2ba51 | 9 | void process(void) |
gcme93 | 0:438bb4b2ba51 | 10 | { |
gcme93 | 0:438bb4b2ba51 | 11 | Kick = (KICK==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 12 | Snare = (SNARE==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 13 | HHOpen = (HHOPEN==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 14 | HHClosed = (HHCLOSED==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 15 | HiTom = (HITOM==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 16 | LoTom = (LOTOM==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 17 | Clap = (CLAP==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 18 | Block = (BLOCK==1)? 1:0; |
gcme93 | 0:438bb4b2ba51 | 19 | |
gcme93 | 0:438bb4b2ba51 | 20 | wait_ms(pulse); |
gcme93 | 0:438bb4b2ba51 | 21 | |
gcme93 | 0:438bb4b2ba51 | 22 | Kick=0; |
gcme93 | 0:438bb4b2ba51 | 23 | Snare=0; |
gcme93 | 0:438bb4b2ba51 | 24 | HHOpen=0; |
gcme93 | 0:438bb4b2ba51 | 25 | HHClosed=0; |
gcme93 | 0:438bb4b2ba51 | 26 | HiTom=0; |
gcme93 | 0:438bb4b2ba51 | 27 | LoTom=0; |
gcme93 | 0:438bb4b2ba51 | 28 | Clap=0; |
gcme93 | 0:438bb4b2ba51 | 29 | Block=0; |
gcme93 | 0:438bb4b2ba51 | 30 | } |
gcme93 | 0:438bb4b2ba51 | 31 | |
gcme93 | 0:438bb4b2ba51 | 32 | void trigger() |
gcme93 | 0:438bb4b2ba51 | 33 | { |
gcme93 | 0:438bb4b2ba51 | 34 | period = 60000/tempo; |
gcme93 | 0:438bb4b2ba51 | 35 | periododd = (300+swing)*period/300; |
gcme93 | 0:438bb4b2ba51 | 36 | periodeven = (300-swing)*period/300; |
gcme93 | 0:438bb4b2ba51 | 37 | |
gcme93 | 0:438bb4b2ba51 | 38 | switch (beat) |
gcme93 | 0:438bb4b2ba51 | 39 | { |
gcme93 | 0:438bb4b2ba51 | 40 | case 1: Beat1=1; |
gcme93 | 0:438bb4b2ba51 | 41 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 42 | process(); |
gcme93 | 0:438bb4b2ba51 | 43 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 44 | Beat1=0; |
gcme93 | 0:438bb4b2ba51 | 45 | case 2: Beat2=1; |
gcme93 | 0:438bb4b2ba51 | 46 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 47 | process(); |
gcme93 | 0:438bb4b2ba51 | 48 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 49 | Beat2=0; |
gcme93 | 0:438bb4b2ba51 | 50 | case 3: Beat3=1; |
gcme93 | 0:438bb4b2ba51 | 51 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 52 | process(); |
gcme93 | 0:438bb4b2ba51 | 53 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 54 | Beat3=0; |
gcme93 | 0:438bb4b2ba51 | 55 | case 4: Beat4=1; |
gcme93 | 0:438bb4b2ba51 | 56 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 57 | process(); |
gcme93 | 0:438bb4b2ba51 | 58 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 59 | Beat4=0; |
gcme93 | 0:438bb4b2ba51 | 60 | case 5: Beat5=1; |
gcme93 | 0:438bb4b2ba51 | 61 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 62 | process(); |
gcme93 | 0:438bb4b2ba51 | 63 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 64 | Beat5=0; |
gcme93 | 0:438bb4b2ba51 | 65 | case 6: Beat6=1; |
gcme93 | 0:438bb4b2ba51 | 66 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 67 | process(); |
gcme93 | 0:438bb4b2ba51 | 68 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 69 | Beat6=0; |
gcme93 | 0:438bb4b2ba51 | 70 | case 7: if (threetime==0) |
gcme93 | 0:438bb4b2ba51 | 71 | { |
gcme93 | 0:438bb4b2ba51 | 72 | Beat7=1; |
gcme93 | 0:438bb4b2ba51 | 73 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 74 | process(); |
gcme93 | 0:438bb4b2ba51 | 75 | wait_ms(periododd-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 76 | Beat7=0; |
gcme93 | 0:438bb4b2ba51 | 77 | } |
gcme93 | 0:438bb4b2ba51 | 78 | else |
gcme93 | 0:438bb4b2ba51 | 79 | {}; |
gcme93 | 0:438bb4b2ba51 | 80 | case 8: if (threetime==0) |
gcme93 | 0:438bb4b2ba51 | 81 | { |
gcme93 | 0:438bb4b2ba51 | 82 | Beat8=1; |
gcme93 | 0:438bb4b2ba51 | 83 | wait_ms(1); |
gcme93 | 0:438bb4b2ba51 | 84 | process(); |
gcme93 | 0:438bb4b2ba51 | 85 | wait_ms(periodeven-1-pulse); |
gcme93 | 0:438bb4b2ba51 | 86 | Beat8=0; |
gcme93 | 0:438bb4b2ba51 | 87 | } |
gcme93 | 0:438bb4b2ba51 | 88 | else |
gcme93 | 0:438bb4b2ba51 | 89 | {}; |
gcme93 | 0:438bb4b2ba51 | 90 | } |
gcme93 | 0:438bb4b2ba51 | 91 | } |