aboutsummaryrefslogtreecommitdiffstats
path: root/maximilian_examples/9.Envelopes.cpp
diff options
context:
space:
mode:
authorChris Kiefer <chrisk13fer@gmail.com>2011-08-23 16:59:47 +0100
committerChris Kiefer <chrisk13fer@gmail.com>2011-08-23 16:59:47 +0100
commit9b02537e82866bcfdcb22a5e7fd9c7f5217c2c64 (patch)
tree193b798778c258d52093f17fd41b2f250a079553 /maximilian_examples/9.Envelopes.cpp
parentbc4a8dbc0fb0fcafffa1e94edfaedf9c4845cecc (diff)
maximillian basic examples
Diffstat (limited to 'maximilian_examples/9.Envelopes.cpp')
-rwxr-xr-xmaximilian_examples/9.Envelopes.cpp33
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.
+}