Synthesizer / Mbed 2 deprecated DBSMUSICPROJ4

Dependencies:   mbed

Committer:
benparkes
Date:
Wed Jul 24 15:52:07 2019 +0000
Revision:
7:8b1c2d0bee9b
Parent:
4:e56a755aeaf1
Child:
8:4719a23dad97
stopped normal play blocking, added loop serial indicator

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 4:e56a755aeaf1 13 loop = !loop;
benparkes 4:e56a755aeaf1 14
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 4:e56a755aeaf1 55 if (loop == 1){
benparkes 4:e56a755aeaf1 56 ToPlay = (dataTail-PlayPos)% MAX_SAMPLES;
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 7:8b1c2d0bee9b 60 pc.printf("Loop");
benparkes 4:e56a755aeaf1 61 if (PlayPos >= MAX_SAMPLES){
benparkes 4:e56a755aeaf1 62 PlayPos = 0;
benparkes 4:e56a755aeaf1 63 }
benparkes 4:e56a755aeaf1 64 else{
benparkes 4:e56a755aeaf1 65 PlayPos++;
benparkes 4:e56a755aeaf1 66 }
benparkes 4:e56a755aeaf1 67 }
benparkes 7:8b1c2d0bee9b 68 // else{
liam_grazier 3:086e556b57f9 69 allledoff();
liam_grazier 3:086e556b57f9 70 getfaderdata();
liam_grazier 3:086e556b57f9 71 gettempodata();
liam_grazier 3:086e556b57f9 72 pc.printf("TEMPO %f \n\r",tempoval);
liam_grazier 3:086e556b57f9 73 //tempo calculations
liam_grazier 3:086e556b57f9 74 //note calculations
liam_grazier 3:086e556b57f9 75 sumprobabilitynotes();
liam_grazier 3:086e556b57f9 76 randomgeneratenotes();
liam_grazier 3:086e556b57f9 77 determinenotes();
liam_grazier 3:086e556b57f9 78 //octive calculation
liam_grazier 3:086e556b57f9 79 sumprobabilityoctives();
liam_grazier 3:086e556b57f9 80 randomgenerateoctives();
liam_grazier 3:086e556b57f9 81 determineoctives();
liam_grazier 3:086e556b57f9 82 //duration calculation
liam_grazier 3:086e556b57f9 83 sumprobabilityduration();
liam_grazier 3:086e556b57f9 84 randomgenerateduration();
liam_grazier 3:086e556b57f9 85 determineduration();
liam_grazier 3:086e556b57f9 86 outputdecision();
liam_grazier 3:086e556b57f9 87 }
liam_grazier 3:086e556b57f9 88 if(clockcount == storedduration-1){
liam_grazier 3:086e556b57f9 89 allledoff();
liam_grazier 3:086e556b57f9 90 getfaderdata();
liam_grazier 3:086e556b57f9 91 //tempo calculations
liam_grazier 3:086e556b57f9 92 gettempodata();
liam_grazier 3:086e556b57f9 93 //note calculations
liam_grazier 3:086e556b57f9 94 sumprobabilitynotes();
liam_grazier 3:086e556b57f9 95 randomgeneratenotes();
liam_grazier 3:086e556b57f9 96 determinenotes();
liam_grazier 3:086e556b57f9 97 //octive calculation
liam_grazier 3:086e556b57f9 98 sumprobabilityoctives();
liam_grazier 3:086e556b57f9 99 randomgenerateoctives();
liam_grazier 3:086e556b57f9 100 determineoctives();
liam_grazier 3:086e556b57f9 101 //duration calculation
liam_grazier 3:086e556b57f9 102 sumprobabilityduration();
liam_grazier 3:086e556b57f9 103 randomgenerateduration();
liam_grazier 3:086e556b57f9 104 determineduration();
liam_grazier 3:086e556b57f9 105 outputdecision();
liam_grazier 3:086e556b57f9 106
liam_grazier 3:086e556b57f9 107 }
liam_grazier 3:086e556b57f9 108 // pc.printf("NOTE: %i OCTIVE: %i DURATION: %i \n\r",note,octive,duration);
liam_grazier 3:086e556b57f9 109 // pc.printf("abstemmp %f \n\r",abstempo);
liam_grazier 3:086e556b57f9 110 if(clockcount == storedduration && sumnotes > 1){
benparkes 4:e56a755aeaf1 111
benparkes 4:e56a755aeaf1 112 senddacout();
benparkes 4:e56a755aeaf1 113
liam_grazier 3:086e556b57f9 114 trigout = 1;
liam_grazier 3:086e556b57f9 115 wait(0.0001);
liam_grazier 3:086e556b57f9 116 trigout = 0;
liam_grazier 3:086e556b57f9 117 wait(0.0001);
liam_grazier 3:086e556b57f9 118 clockcount = 0;
liam_grazier 3:086e556b57f9 119 }
benparkes 7:8b1c2d0bee9b 120
liam_grazier 3:086e556b57f9 121 if(clockcount == 1 && storedduration == 1){
liam_grazier 3:086e556b57f9 122 updateled();
liam_grazier 3:086e556b57f9 123 }
liam_grazier 3:086e556b57f9 124 if(clockcount == storedduration-1){
liam_grazier 3:086e556b57f9 125 updateled();
liam_grazier 3:086e556b57f9 126 }
liam_grazier 3:086e556b57f9 127 }
liam_grazier 3:086e556b57f9 128 #endif