diff options
| author | Chris Kiefer <chrisk13fer@gmail.com> | 2011-08-23 16:59:47 +0100 |
|---|---|---|
| committer | Chris Kiefer <chrisk13fer@gmail.com> | 2011-08-23 16:59:47 +0100 |
| commit | 9b02537e82866bcfdcb22a5e7fd9c7f5217c2c64 (patch) | |
| tree | 193b798778c258d52093f17fd41b2f250a079553 /maximilian_examples/9.Envelopes.cpp | |
| parent | bc4a8dbc0fb0fcafffa1e94edfaedf9c4845cecc (diff) | |
maximillian basic examples
Diffstat (limited to 'maximilian_examples/9.Envelopes.cpp')
| -rwxr-xr-x | maximilian_examples/9.Envelopes.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/maximilian_examples/9.Envelopes.cpp b/maximilian_examples/9.Envelopes.cpp new file mode 100755 index 0000000..806e14f --- /dev/null +++ b/maximilian_examples/9.Envelopes.cpp @@ -0,0 +1,33 @@ +#include "maximilian.h" + +maxiOsc myCounter,mySwitchableOsc;// +int CurrentCount;// +double myOscOutput,myCurrentVolume;// +double myEnvelopeData[4] = {1,0,0,500};//this data will be used to make an envelope. Value and time to value in ms. +maxiEnvelope myEnvelope; + + +void setup() {//some inits + myEnvelope.amplitude=myEnvelopeData[0]; //initialise the envelope +} + +void play(double *output) { + + myCurrentVolume=myEnvelope.line(4,myEnvelopeData); + + CurrentCount=myCounter.phasor(1, 1, 9);//phasor can take three arguments; frequency, start value and end value. + + if (CurrentCount<5)//simple if statement + + myOscOutput=mySwitchableOsc.square(CurrentCount*100); + + else if (CurrentCount>=5)//and the 'else' bit. + + myOscOutput=mySwitchableOsc.sinewave(CurrentCount*50);//one osc object can produce whichever waveform you want. + + if (CurrentCount==1) + + myEnvelope.trigger(0,myEnvelopeData[0]); //trigger the envelope + + *output=myOscOutput*myCurrentVolume;//point me at your speakers and fire. +} |
