00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MARSYAS_PLUCKED_H
00020 #define MARSYAS_PLUCKED_H
00021
00022
00023 #include "MarSystem.h"
00024 #include "Gain.h"
00025
00026 #include <cstdlib>
00027
00028 namespace Marsyas
00029 {
00041 class Plucked: public MarSystem
00042 {
00043 private:
00044 void addControls();
00045 void myUpdate(MarControlPtr sender);
00046
00047 realvec delayline1_;
00048 realvec pickDelayLine_;
00049 realvec noise_;
00050
00051 mrs_real delaylineSize_;
00052 mrs_real a_;
00053 mrs_real b_;
00054 mrs_real blend_;
00055 mrs_real loss_;
00056 mrs_real s_;
00057 mrs_real d_;
00058 mrs_real g_;
00059 mrs_real c;
00060
00061 mrs_real noteon_;
00062
00063 mrs_natural wp_;
00064 mrs_natural wpp_;
00065
00066 mrs_natural rp_;
00067
00068 mrs_natural pointer1_;
00069 mrs_natural pointer2_;
00070 mrs_natural pointer3_;
00071 mrs_natural picklength_;
00072 mrs_natural N_;
00073 mrs_natural p;
00074 MarSystem* gain_;
00075 realvec gout_;
00076
00077 public:
00078 Plucked(std::string name);
00079 ~Plucked();
00080 MarSystem* clone() const;
00081
00082 void myProcess(realvec& in, realvec& out);
00083 };
00084
00085 }
00086
00087 #endif