diff options
Diffstat (limited to 'stkdrone~')
-rw-r--r-- | stkdrone~/INSTALL | 13 | ||||
-rw-r--r-- | stkdrone~/Makefile | 33 | ||||
-rw-r--r-- | stkdrone~/README | 20 | ||||
-rw-r--r-- | stkdrone~/drone-freqs | 46 | ||||
-rw-r--r-- | stkdrone~/drone.cc | 77 | ||||
-rw-r--r-- | stkdrone~/drone.h | 40 | ||||
-rw-r--r-- | stkdrone~/stkdrone~-help.pd | 75 | ||||
-rw-r--r-- | stkdrone~/stkdrone~.cc | 119 |
8 files changed, 0 insertions, 423 deletions
diff --git a/stkdrone~/INSTALL b/stkdrone~/INSTALL deleted file mode 100644 index 6eaaff0..0000000 --- a/stkdrone~/INSTALL +++ /dev/null @@ -1,13 +0,0 @@ -install STK in /usr/local/stk
-or change STK paths in the makefile
-to your STK's location.
-
-untar in /my/pd/dir/externs
-
-cd /my/pd/dir/externs/stkdrone~
-
-make
-
-make install
-
-open help-stkdrone~.pd
diff --git a/stkdrone~/Makefile b/stkdrone~/Makefile deleted file mode 100644 index e752f01..0000000 --- a/stkdrone~/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -NAME=stkdrone~ -CSYM=stkdrone_tilde -STK_HOME=/usr/local/stk - -current: pd_linux - -pd_linux: $(NAME).pd_linux - -.SUFFIXES: .pd_linux - -LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \ - -Wall -W -Wshadow -Wstrict-prototypes -Werror \ - -Wno-unused -Wno-parentheses -Wno-switch - -LINUXCCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \ - -Wall -W -Wshadow -Werror \ - -Wno-unused -Wno-parentheses -Wno-switch -g - -LINUXINCLUDE = -I../../src -I/usr/local/include - -.cc.pd_linux: drone.o - g++ -O3 -Wall -D__OS_Linux_ -g -I$(STK_HOME)/include -c drone.cc - g++ $(LINUXCCFLAGS) $(LINUXINCLUDE) -I$(STK_HOME)/include -o $*.o -c $*.cc - g++ --export-dynamic -shared -o $*.pd_linux *.o $(STK_HOME)/src/libstk.a -lc -lm -lpthread - strip --strip-unneeded $*.pd_linux - rm -f *.o ../$*.pd_linux - ln -s $*/$*.pd_linux .. - -clean: - rm -f *.o *.pd_* so_locations - -install: - cp help-*.pd *-freqs ../../doc/5.reference diff --git a/stkdrone~/README b/stkdrone~/README deleted file mode 100644 index 493d12f..0000000 --- a/stkdrone~/README +++ /dev/null @@ -1,20 +0,0 @@ -***************************************************************************** -Version 0.2 -embedding Perry Cook's ragamatic in Pure Data -copyright 2001 by Perry Cook -copyleft 2001 by Yves Degoyon -tarballs and updates available @ http://ydegoyon.free.fr - -stkdrone~ : embeds STK drone simulation in Pure Data. - -To install stkdrone~, follow the steps from INSTALL - -This software is published under GPL terms. - -This is software with ABSOLUTELY NO WARRANTY. -Use it at your OWN RISK. It's possible to damage e.g. hardware or your hearing -due to a bug or for other reasons. -We do not warrant that the program is free of infringement of any third-party -patents. - -***************************************************************************** diff --git a/stkdrone~/drone-freqs b/stkdrone~/drone-freqs deleted file mode 100644 index 12f1a85..0000000 --- a/stkdrone~/drone-freqs +++ /dev/null @@ -1,46 +0,0 @@ -55.0; -82.5; -55.0; -220.0; -82.5; -82.5; -82.5; -220.0; -220.0; -82.5; -220.0; -220.0; -55.0; -82.5; -55.0; -55.0; -220.0; -220.0; -220.0; -55.0; -82.5; -82.5; -220.0; -55.0; -55.0; -220.0; -82.5; -82.5; -55.0; -82.5; -82.5; -220.0; -220.0; -82.5; -55.0; -55.0; -55.0; -220.0; -220.0; -82.5; -220.0; -82.5; -82.5; -82.5; -82.5; -82.5; 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_; -} - diff --git a/stkdrone~/drone.h b/stkdrone~/drone.h deleted file mode 100644 index 9cfe448..0000000 --- a/stkdrone~/drone.h +++ /dev/null @@ -1,40 +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. */ -/******************************************/ - -#if !defined(__drone_h) -#define __drone_h - -#include "Instrmnt.h" -#include "DelayA.h" -#include "OneZero.h" -#include "ADSR.h" -#include "Noise.h" - -class drone : public Instrmnt -{ -protected: - DelayA *delayLine; - ADSR *envelope; - Noise *noise; - OneZero *loopFilt; - long length; - MY_FLOAT loopGain; -public: - drone(MY_FLOAT lowestFreq); - ~drone(); - void clear(); - virtual void setFreq(MY_FLOAT frequency); - void pluck(MY_FLOAT amplitude); - virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp); - virtual void noteOff(MY_FLOAT amp); - virtual MY_FLOAT tick(); -}; - -#endif - diff --git a/stkdrone~/stkdrone~-help.pd b/stkdrone~/stkdrone~-help.pd deleted file mode 100644 index a65624b..0000000 --- a/stkdrone~/stkdrone~-help.pd +++ /dev/null @@ -1,75 +0,0 @@ -#N canvas 168 23 784 529 10; -#X obj 112 311 dac~; -#X obj 115 248 stkdrone~; -#X obj 114 278 *~; -#X floatatom 147 278 5 0 0; -#X msg 162 172 stop; -#X floatatom 197 201 5 0 0; -#X floatatom 238 248 5 5 35; -#X text 247 335 stkdrone~ : Object to embed stk-based drone synthesis -; -#X text 247 360 Comments and bugs @ ydegoyon@free.fr; -#X msg 113 346 \; pd dsp 1; -#X msg 179 346 \; pd dsp 0; -#X msg 24 34 bang; -#X msg 93 99 play; -#X msg 113 173 play; -#X obj 195 248 / 100; -#X text 276 279 Master level; -#X obj 23 99 metro 2000; -#X floatatom 52 75 5 0 0; -#X obj 134 78 / 1000; -#X obj 134 98 + 0.05; -#X floatatom 182 98 5 0 0; -#X obj 217 278 loadbang; -#X text 301 258 ( min=0.05 \, max=0.35 \, default = 0.25 ); -#X text 303 248 Strength of plucking; -#X text 241 195 Frequency; -#X obj 231 77 qlist; -#X msg 274 76 read drone-freqs; -#X msg 231 55 next; -#X msg 274 55 rewind; -#X text 247 348 Originally written by Perry Cook for STK/ragamatic -; -#X obj 386 76 loadbang; -#X msg 189 278 40; -#X obj 24 75 + 0; -#X text 21 12 Ready for meditation ??; -#X text 240 398 And now another message from Nancy Reagan : "Drugs -destroy your brain"; -#X text 239 205 ( min=50Hz \, default=250 Hz ); -#X obj 134 59 random 100; -#X obj 24 56 random 1000; -#X floatatom 98 27 5 0 0; -#X connect 1 0 2 0; -#X connect 2 0 0 0; -#X connect 2 0 0 1; -#X connect 3 0 2 1; -#X connect 4 0 1 0; -#X connect 5 0 1 1; -#X connect 6 0 14 0; -#X connect 11 0 16 0; -#X connect 11 0 37 0; -#X connect 12 0 1 0; -#X connect 13 0 1 0; -#X connect 14 0 1 2; -#X connect 16 0 12 0; -#X connect 16 0 27 0; -#X connect 16 0 36 0; -#X connect 16 0 37 0; -#X connect 17 0 16 1; -#X connect 18 0 19 0; -#X connect 19 0 20 0; -#X connect 19 0 1 2; -#X connect 21 0 31 0; -#X connect 25 0 5 0; -#X connect 25 1 28 0; -#X connect 26 0 25 0; -#X connect 27 0 25 0; -#X connect 28 0 25 0; -#X connect 30 0 26 0; -#X connect 31 0 3 0; -#X connect 32 0 17 0; -#X connect 36 0 18 0; -#X connect 37 0 32 0; -#X connect 38 0 37 1; diff --git a/stkdrone~/stkdrone~.cc b/stkdrone~/stkdrone~.cc deleted file mode 100644 index 75ddafc..0000000 --- a/stkdrone~/stkdrone~.cc +++ /dev/null @@ -1,119 +0,0 @@ -/* stkdrone~ -- STK-based drone synthesis - * requires STK library - * Copyleft 2001 Yves Degoyon. - * Permission is granted to use this software for any purpose provided you - * keep this copyright notice intact. - * - * THE AUTHOR AND HIS EXPLOITERS MAKE NO WARRANTY, EXPRESS OR IMPLIED, - * IN CONNECTION WITH THIS SOFTWARE. - * -*/ - -#include "m_pd.h" -#include "drone.h" - -#define DEFAULT_FREQ 250.0 -#define DEFAULT_PLUCK 0.25 - -typedef struct _stkdrone -{ - t_object x_obj; - drone *x_stkdrone; - t_int x_on; - t_float x_freq; - t_float x_pluck; -} t_stkdrone; - -static t_class *stkdrone_class; - -static void *stkdrone_new(void) -{ - t_stkdrone *x = (t_stkdrone *)pd_new(stkdrone_class); - x->x_freq = DEFAULT_FREQ; - x->x_pluck = DEFAULT_PLUCK; - outlet_new(&x->x_obj, &s_signal); - inlet_new( &x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("freq") ); - inlet_new( &x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("pluck") ); - if( (x->x_stkdrone = new drone( 50.0 )) == NULL ) { - post( "stkdrone~: cannot build drone instrument from STK" ); - return NULL; - } else { - return (x); - } -} - -static void stkdrone_freq(t_stkdrone* x, t_float ffreq) -{ - if ( ffreq < 50.0 ) - { - post("stkdrone~ : wrong frequency" ); - return; - } - x->x_stkdrone->setFreq( (MY_FLOAT) ffreq ); - x->x_freq = ffreq; -} - -static void stkdrone_pluck(t_stkdrone* x, t_float fpluck) -{ - if ( fpluck < 0.05 || fpluck > 0.35 ) - { - post("stkdrone~ : wrong pluck argument" ); - return; - } - x->x_stkdrone->pluck( (MY_FLOAT) fpluck ); - x->x_pluck = fpluck; -} - -static void stkdrone_play(t_stkdrone* x) -{ - x->x_on = 1; // activate sound - x->x_stkdrone->noteOn( x->x_freq, x->x_pluck ); // start sound -} - -static void stkdrone_stop(t_stkdrone* x) -{ - x->x_on = 0; // deactivate sound -} - -static t_int *stkdrone_perform(t_int *w) -{ - t_float *out = (t_float *)(w[1]); - int n = (int)(w[2]); - t_stkdrone* x = (t_stkdrone*)(w[3]); - - while ( n-- ) - { - if ( x->x_on ) - { - double dare; - - dare = (float)x->x_stkdrone->tick(); - // post( "synthesis : %f", dare ); - *out=dare; - } - else - { - *(out) = 0.0; - } - out++; - } - - return (w+4); -} - -static void stkdrone_dsp(t_stkdrone *x, t_signal **sp) -{ - dsp_add(stkdrone_perform, 3, sp[0]->s_vec, sp[0]->s_n, x); -} - -extern "C" void stkdrone_tilde_setup(void) -{ - stkdrone_class = class_new(gensym("stkdrone~"), (t_newmethod)stkdrone_new, 0, - sizeof(t_stkdrone), 0, A_NULL); - class_sethelpsymbol(stkdrone_class, gensym("help-stkdrone~.pd") ); - class_addmethod(stkdrone_class, (t_method)stkdrone_dsp, gensym("dsp"), A_NULL); - class_addmethod(stkdrone_class, (t_method)stkdrone_play, gensym("play") , A_NULL); - class_addmethod(stkdrone_class, (t_method)stkdrone_stop, gensym("stop") , A_NULL); - class_addmethod(stkdrone_class, (t_method)stkdrone_freq, gensym("freq") , A_DEFFLOAT, A_NULL); - class_addmethod(stkdrone_class, (t_method)stkdrone_pluck, gensym("pluck") , A_DEFFLOAT, A_NULL); -} |