George Cochrane
/
DrumMachine
very preliminary code, pins clearly havent been chosen yet!
Embed:
(wiki syntax)
Show/hide line numbers
trigger.cpp
00001 #include "mbed.h" 00002 #include "TextLCD.h" 00003 #include "trigger.h" 00004 00005 unsigned int period; 00006 unsigned int periododd; 00007 unsigned int periodeven; 00008 00009 00010 void process(void) 00011 { 00012 Kick = (KICK==1)? 1:0; 00013 Snare = (SNARE==1)? 1:0; 00014 HHOpen = (HHOPEN==1)? 1:0; 00015 HHClosed = (HHCLOSED==1)? 1:0; 00016 HiTom = (HITOM==1)? 1:0; 00017 LoTom = (LOTOM==1)? 1:0; 00018 Clap = (CLAP==1)? 1:0; 00019 Block = (BLOCK==1)? 1:0; 00020 00021 wait_ms(pulse); 00022 00023 Kick=0; 00024 Snare=0; 00025 HHOpen=0; 00026 HHClosed=0; 00027 HiTom=0; 00028 LoTom=0; 00029 Clap=0; 00030 Block=0; 00031 } 00032 00033 void trigger() 00034 { 00035 period = 60000/tempo; 00036 periododd = (300+swing)*period/300; 00037 periodeven = (300-swing)*period/300; 00038 00039 switch (beat) 00040 { 00041 case 1: Beat1=1; 00042 wait_ms(1); 00043 process(); 00044 wait_ms(periododd-1-pulse); 00045 Beat1=0; 00046 case 2: Beat2=1; 00047 wait_ms(1); 00048 process(); 00049 wait_ms(periodeven-1-pulse); 00050 Beat2=0; 00051 case 3: Beat3=1; 00052 wait_ms(1); 00053 process(); 00054 wait_ms(periododd-1-pulse); 00055 Beat3=0; 00056 case 4: Beat4=1; 00057 wait_ms(1); 00058 process(); 00059 wait_ms(periodeven-1-pulse); 00060 Beat4=0; 00061 case 5: Beat5=1; 00062 wait_ms(1); 00063 process(); 00064 wait_ms(periododd-1-pulse); 00065 Beat5=0; 00066 case 6: Beat6=1; 00067 wait_ms(1); 00068 process(); 00069 wait_ms(periodeven-1-pulse); 00070 Beat6=0; 00071 case 7: if (threetime==0) 00072 { 00073 Beat7=1; 00074 wait_ms(1); 00075 process(); 00076 wait_ms(periododd-1-pulse); 00077 Beat7=0; 00078 } 00079 else 00080 {}; 00081 case 8: if (threetime==0) 00082 { 00083 Beat8=1; 00084 wait_ms(1); 00085 process(); 00086 wait_ms(periodeven-1-pulse); 00087 Beat8=0; 00088 } 00089 else 00090 {}; 00091 } 00092 }
Generated on Fri Jul 22 2022 08:54:45 by 1.7.2