00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MARSYAS_PESYNOSC_H
00020 #define MARSYAS_PESYNOSC_H
00021
00022 #include "MarSystem.h"
00023
00024 namespace Marsyas
00025 {
00037 class PeakSynthOsc: public MarSystem
00038 {
00039 private:
00040 mrs_real factor_;
00041 mrs_natural delay_;
00042 mrs_real mulF_;
00043 mrs_real mulA_;
00044 mrs_natural pkGrp2Synth_;
00045 mrs_natural Nb_;
00046 mrs_natural nbH_;
00047 mrs_bool silence_;
00048
00049 MarControlPtr ctrl_samplingFreq_;
00050 MarControlPtr ctrl_peakGroup2Synth_;
00051 MarControlPtr ctrl_isSilence_;
00052 MarControlPtr ctrl_synSize_;
00053 MarControlPtr ctrl_delay_;
00054 MarControlPtr ctrl_harmonize_;
00055
00056 void addControls();
00057 void myUpdate(MarControlPtr sender);
00058
00059 void sine(realvec& out, mrs_real f, mrs_real a, mrs_real p);
00060
00061 public:
00062 PeakSynthOsc(std::string name);
00063 PeakSynthOsc(const PeakSynthOsc&);
00064 ~PeakSynthOsc();
00065 MarSystem* clone() const;
00066
00067 void myProcess(realvec& in, realvec& out);
00068
00069 };
00070
00071 }
00072
00073 #endif
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083