Synthesizer / Mbed 2 deprecated DBSMUSICPROJ4

Dependencies:   mbed

trigger.hpp

Committer:
benparkes
Date:
2019-07-24
Revision:
8:4719a23dad97
Parent:
7:8b1c2d0bee9b
Child:
10:778ad6af7512

File content as of revision 8:4719a23dad97:

#ifndef __trigger__
#define __trigger__
#include "variables.hpp"
#include "math.hpp"
void fire(void){
    clockout = 1;
    wait(0.0001);
    clockout = 0;
    wait(0.0001);  
}

void loopFall(){
    loop = !loop;
    pc.printf("button press");
}

void runonce(void){
    getfaderdata();  
  //tempo calculations
  gettempodata();
  //note calculations
  sumprobabilitynotes(); 
  randomgeneratenotes();
  determinenotes();
  
  //octive calculation 
  sumprobabilityoctives(); 
  randomgenerateoctives();
  determineoctives();
  
  //duration calculation
  sumprobabilityduration(); 
  randomgenerateduration();
  determineduration();
  outputdecision();
  }
  
void firetrig(void){ 
    if(clockcount<32){
    clockcount++;
    clockcountneg = clockcount - 1;
    }
    else
    {
    clockcount = 0;
    clockcount++;
    }
    if(clockcount == 1){
        storedduration = duration;
        }
    pc.printf("%i \n\r",clockcount);
    fire();
  //getfaderdata  
  if(clockcount == 1 && storedduration == 1){
        if (loop == 1){
        ToPlay = (dataTail-PlayPos)% MAX_SAMPLES;      
        note = loopBuffer[ToPlay].note();
        octive = loopBuffer[ToPlay].octave();
        duration = loopBuffer[ToPlay].duration();
        pc.printf("Loop");
        if (PlayPos >= MAX_SAMPLES){
            PlayPos = 0;
            }
        else{
            PlayPos++;
            }
        }
//        else{
  allledoff();
  getfaderdata(); 
  gettempodata();
  pc.printf("TEMPO %f \n\r",tempoval);
  //tempo calculations
  //note calculations
  sumprobabilitynotes(); 
  randomgeneratenotes();
  determinenotes();
  //octive calculation 
  sumprobabilityoctives(); 
  randomgenerateoctives();
  determineoctives();
  //duration calculation
  sumprobabilityduration(); 
  randomgenerateduration();
  determineduration();
  outputdecision();
  }    
  if(clockcount == storedduration-1){
  allledoff();
  getfaderdata(); 
  //tempo calculations
  gettempodata();
  //note calculations
  sumprobabilitynotes(); 
  randomgeneratenotes();
  determinenotes();
  //octive calculation 
  sumprobabilityoctives(); 
  randomgenerateoctives();
  determineoctives();
  //duration calculation
  sumprobabilityduration(); 
  randomgenerateduration();
  determineduration();
  outputdecision();

  }
//  pc.printf("NOTE: %i OCTIVE: %i DURATION: %i \n\r",note,octive,duration);
//  pc.printf("abstemmp %f \n\r",abstempo);
  if(clockcount == storedduration && sumnotes > 1){

    senddacout();
  
  trigout = 1;
  wait(0.0001);
  trigout = 0;
  wait(0.0001);
  clockcount = 0;
    }
    
  if(clockcount == 1 && storedduration == 1){
      updateled();
      }
  if(clockcount == storedduration-1){
  updateled();
  }
  }
#endif