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
}
|