aboutsummaryrefslogtreecommitdiffstats
path: root/main.cpp
blob: cf7b730b8f80098c353260bd8267dc10603e3ee9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "maximilian.h"

//Look mum no aliasing

//synthesiser bits
maxiOsc VCO1,VCO2;
maxiOsc ramp,ramp2,ramp3;
double out;


void setup() {//some inits
    
    //we need this to set the duty cycle for the sqaure wave otherwise it don't work
	VCO2.phaseReset(0.5);
    
}

void play(double *output) {

//      no noise here
      out=VCO1.sawn(ramp.phasor(0.1,50,8000));

    
//      Band limited square using two band limited saws. Comment the above and uncomment the below.
//      you can hear a tiny bit of aliasing approaching 8000 hz but it should do.
//      It's actually a bit of a weird hack but has nice response all the same.
//      out=VCO1.sawn(ramp.phasor(0.1,50,8000))-VCO2.sawn(ramp2.phasor(0.1,50,8000));
    
    
	output[0]=out*0.5;//left channel
	output[1]=out*0.5;//right channel
    
}