aboutsummaryrefslogtreecommitdiff
path: root/stkdrone~/drone.cc
diff options
context:
space:
mode:
Diffstat (limited to 'stkdrone~/drone.cc')
-rw-r--r--stkdrone~/drone.cc77
1 files changed, 0 insertions, 77 deletions
diff --git a/stkdrone~/drone.cc b/stkdrone~/drone.cc
deleted file mode 100644
index dcc3137..0000000
--- a/stkdrone~/drone.cc
+++ /dev/null
@@ -1,77 +0,0 @@
- /******************************************/
-/* Karplus-Strong drone string model */
-/* by Perry Cook, 1995-96 */
-/* */
-/* There exist at least two patents, */
-/* assigned to Stanford, bearing the */
-/* names of Karplus and/or Strong. */
-/******************************************/
-
-#include "drone.h"
-
-drone :: drone(StkFloat lowestFreq)
-{
- length = (long) (SRATE / lowestFreq + 1);
- loopGain = (StkFloat) 0.999;
- loopFilt = new OneZero();
- delayLine = new DelayA(0.5*length, length);
- envelope = new ADSR();
- noise = new Noise;
- envelope->setAllTimes(2.0,0.5,0.0,0.5);
- this->clear();
-}
-
-drone :: ~drone()
-{
- delete loopFilt;
- delete delayLine;
- delete envelope;
- delete noise;
-}
-
-void drone :: clear()
-{
- loopFilt->clear();
- delayLine->clear();
-}
-
-void drone :: setFreq(StkFloat frequency)
-{
- StkFloat delay;
- delay = (SRATE / frequency);
- delayLine->setDelay(delay - 0.5);
- loopGain = (StkFloat) 0.997 + (frequency * (StkFloat) 0.000002);
- if (loopGain>1.0) loopGain = (StkFloat) 0.99999;
-}
-
-void drone :: pluck(StkFloat amplitude)
-{
- envelope->keyOn();
-}
-
-void drone :: noteOn(StkFloat freq, StkFloat amp)
-{
- this->setFreq(freq);
- this->pluck(amp);
-#if defined(_debug_)
- printf("drone : NoteOn: Freq=%lf Amp=%lf\n",freq,amp);
-#endif
-}
-
-void drone :: noteOff(StkFloat amp)
-{
- loopGain = (StkFloat) 1.0 - amp;
-#if defined(_debug_)
- printf("drone : NoteOff: Amp=%lf\n",amp);
-#endif
-}
-
-StkFloat drone :: tick()
-{
- /* check this out */
- /* here's the whole inner loop of the instrument!! */
- lastOutput_ = delayLine->tick(loopFilt->tick((delayLine->lastOut() * loopGain))
- + (0.005 * envelope->tick() * noise->tick()));
- return lastOutput_;
-}
-