Synthesizer / Mbed 2 deprecated DBSMUSICPROJ4

Dependencies:   mbed

Committer:
benparkes
Date:
Thu Jul 25 11:09:37 2019 +0000
Revision:
15:89ff99d55466
Parent:
14:a352cc410078
Child:
16:f2d46570f0e6
LED & de-loop fix?

Who changed what in which revision?

UserRevisionLine numberNew contents of line
liam_grazier 3:086e556b57f9 1 #ifndef __trigger__
liam_grazier 3:086e556b57f9 2 #define __trigger__
liam_grazier 3:086e556b57f9 3 #include "variables.hpp"
liam_grazier 3:086e556b57f9 4 #include "math.hpp"
liam_grazier 3:086e556b57f9 5 void fire(void){
liam_grazier 3:086e556b57f9 6 clockout = 1;
liam_grazier 3:086e556b57f9 7 wait(0.0001);
liam_grazier 3:086e556b57f9 8 clockout = 0;
liam_grazier 3:086e556b57f9 9 wait(0.0001);
liam_grazier 3:086e556b57f9 10 }
liam_grazier 3:086e556b57f9 11
benparkes 4:e56a755aeaf1 12 void loopFall(){
benparkes 15:89ff99d55466 13 loop = (~loop);
benparkes 10:778ad6af7512 14 pc.printf("button press \n\r");
benparkes 4:e56a755aeaf1 15 }
benparkes 4:e56a755aeaf1 16
liam_grazier 3:086e556b57f9 17 void runonce(void){
liam_grazier 3:086e556b57f9 18 getfaderdata();
liam_grazier 3:086e556b57f9 19 //tempo calculations
liam_grazier 3:086e556b57f9 20 gettempodata();
liam_grazier 3:086e556b57f9 21 //note calculations
liam_grazier 3:086e556b57f9 22 sumprobabilitynotes();
liam_grazier 3:086e556b57f9 23 randomgeneratenotes();
liam_grazier 3:086e556b57f9 24 determinenotes();
liam_grazier 3:086e556b57f9 25
liam_grazier 3:086e556b57f9 26 //octive calculation
liam_grazier 3:086e556b57f9 27 sumprobabilityoctives();
liam_grazier 3:086e556b57f9 28 randomgenerateoctives();
liam_grazier 3:086e556b57f9 29 determineoctives();
liam_grazier 3:086e556b57f9 30
liam_grazier 3:086e556b57f9 31 //duration calculation
liam_grazier 3:086e556b57f9 32 sumprobabilityduration();
liam_grazier 3:086e556b57f9 33 randomgenerateduration();
liam_grazier 3:086e556b57f9 34 determineduration();
liam_grazier 3:086e556b57f9 35 outputdecision();
liam_grazier 3:086e556b57f9 36 }
benparkes 4:e56a755aeaf1 37
liam_grazier 3:086e556b57f9 38 void firetrig(void){
liam_grazier 3:086e556b57f9 39 if(clockcount<32){
liam_grazier 3:086e556b57f9 40 clockcount++;
liam_grazier 3:086e556b57f9 41 clockcountneg = clockcount - 1;
liam_grazier 3:086e556b57f9 42 }
liam_grazier 3:086e556b57f9 43 else
liam_grazier 3:086e556b57f9 44 {
liam_grazier 3:086e556b57f9 45 clockcount = 0;
liam_grazier 3:086e556b57f9 46 clockcount++;
liam_grazier 3:086e556b57f9 47 }
liam_grazier 3:086e556b57f9 48 if(clockcount == 1){
liam_grazier 3:086e556b57f9 49 storedduration = duration;
liam_grazier 3:086e556b57f9 50 }
liam_grazier 3:086e556b57f9 51 pc.printf("%i \n\r",clockcount);
liam_grazier 3:086e556b57f9 52 fire();
liam_grazier 3:086e556b57f9 53 //getfaderdata
liam_grazier 3:086e556b57f9 54 if(clockcount == 1 && storedduration == 1){
benparkes 14:a352cc410078 55 if (loop == 1){
benparkes 13:bc16eec2256f 56 ToPlay = (dataTail + PlayPos)% (MAX_SAMPLES-1);
benparkes 4:e56a755aeaf1 57 note = loopBuffer[ToPlay].note();
benparkes 4:e56a755aeaf1 58 octive = loopBuffer[ToPlay].octave();
benparkes 4:e56a755aeaf1 59 duration = loopBuffer[ToPlay].duration();
benparkes 10:778ad6af7512 60 senddacout();
benparkes 11:d2a8b3132be9 61 pc.printf("Looping, PlayPos: %i, pos: %i, note: %i, octave: %i, duration: %i \n\r", PlayPos, ToPlay, note, octive, duration);
benparkes 4:e56a755aeaf1 62 if (PlayPos >= MAX_SAMPLES){
benparkes 4:e56a755aeaf1 63 PlayPos = 0;
benparkes 4:e56a755aeaf1 64 }
benparkes 4:e56a755aeaf1 65 else{
benparkes 4:e56a755aeaf1 66 PlayPos++;
benparkes 4:e56a755aeaf1 67 }
benparkes 4:e56a755aeaf1 68 }
benparkes 14:a352cc410078 69 else{
benparkes 15:89ff99d55466 70 //allledoff();
liam_grazier 3:086e556b57f9 71 getfaderdata();
liam_grazier 3:086e556b57f9 72 gettempodata();
benparkes 14:a352cc410078 73 //pc.printf("TEMPO %f \n\r",tempoval);
liam_grazier 3:086e556b57f9 74 //tempo calculations
liam_grazier 3:086e556b57f9 75 //note calculations
liam_grazier 3:086e556b57f9 76 sumprobabilitynotes();
liam_grazier 3:086e556b57f9 77 randomgeneratenotes();
liam_grazier 3:086e556b57f9 78 determinenotes();
liam_grazier 3:086e556b57f9 79 //octive calculation
liam_grazier 3:086e556b57f9 80 sumprobabilityoctives();
liam_grazier 3:086e556b57f9 81 randomgenerateoctives();
liam_grazier 3:086e556b57f9 82 determineoctives();
liam_grazier 3:086e556b57f9 83 //duration calculation
liam_grazier 3:086e556b57f9 84 sumprobabilityduration();
liam_grazier 3:086e556b57f9 85 randomgenerateduration();
liam_grazier 3:086e556b57f9 86 determineduration();
benparkes 15:89ff99d55466 87 //outputdecision();
liam_grazier 3:086e556b57f9 88 }
liam_grazier 3:086e556b57f9 89 if(clockcount == storedduration-1){
benparkes 15:89ff99d55466 90 //allledoff();
liam_grazier 3:086e556b57f9 91 getfaderdata();
liam_grazier 3:086e556b57f9 92 //tempo calculations
liam_grazier 3:086e556b57f9 93 gettempodata();
liam_grazier 3:086e556b57f9 94 //note calculations
liam_grazier 3:086e556b57f9 95 sumprobabilitynotes();
liam_grazier 3:086e556b57f9 96 randomgeneratenotes();
liam_grazier 3:086e556b57f9 97 determinenotes();
liam_grazier 3:086e556b57f9 98 //octive calculation
liam_grazier 3:086e556b57f9 99 sumprobabilityoctives();
liam_grazier 3:086e556b57f9 100 randomgenerateoctives();
liam_grazier 3:086e556b57f9 101 determineoctives();
liam_grazier 3:086e556b57f9 102 //duration calculation
liam_grazier 3:086e556b57f9 103 sumprobabilityduration();
liam_grazier 3:086e556b57f9 104 randomgenerateduration();
liam_grazier 3:086e556b57f9 105 determineduration();
benparkes 15:89ff99d55466 106 //outputdecision();
liam_grazier 3:086e556b57f9 107
liam_grazier 3:086e556b57f9 108 }
liam_grazier 3:086e556b57f9 109 // pc.printf("NOTE: %i OCTIVE: %i DURATION: %i \n\r",note,octive,duration);
liam_grazier 3:086e556b57f9 110 // pc.printf("abstemmp %f \n\r",abstempo);
benparkes 14:a352cc410078 111 if(clockcount == storedduration && sumnotes > 1){
benparkes 14:a352cc410078 112 senddacout();
benparkes 14:a352cc410078 113 trigout = 1;
benparkes 14:a352cc410078 114 wait(0.0001);
benparkes 14:a352cc410078 115 trigout = 0;
benparkes 14:a352cc410078 116 wait(0.0001);
benparkes 14:a352cc410078 117 clockcount = 0;
liam_grazier 3:086e556b57f9 118 }
benparkes 14:a352cc410078 119 }
liam_grazier 3:086e556b57f9 120 if(clockcount == 1 && storedduration == 1){
benparkes 15:89ff99d55466 121 allledoff();
benparkes 15:89ff99d55466 122 outputdecision();
liam_grazier 3:086e556b57f9 123 updateled();
liam_grazier 3:086e556b57f9 124 }
liam_grazier 3:086e556b57f9 125 if(clockcount == storedduration-1){
benparkes 15:89ff99d55466 126 allledoff();
benparkes 15:89ff99d55466 127 outputdecision();
benparkes 15:89ff99d55466 128 updateled();
liam_grazier 3:086e556b57f9 129 }
liam_grazier 3:086e556b57f9 130 }
liam_grazier 3:086e556b57f9 131 #endif