From 2ae5d551c7b67fe5ff413e85d1e68eb1a063993a Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Sat, 30 Jul 2011 20:40:34 +0000 Subject: added template-style README and LICENSE and purged cruft in prep for porting to the library template svn path=/trunk/externals/unauthorized/; revision=15171 --- stkdrone~/drone.cc | 77 ------------------------------------------------------ 1 file changed, 77 deletions(-) delete mode 100644 stkdrone~/drone.cc (limited to 'stkdrone~/drone.cc') 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_; -} - -- cgit v1.2.1