⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bandedwg.h

📁 Mobile STK for Symbian OS V0.1
💻 H
字号:
/***************************************************//*! \class BandedWG    \brief Banded waveguide modeling class.    This class uses banded waveguide techniques to    model a variety of sounds, including bowed    bars, glasses, and bowls.  For more    information, see Essl, G. and Cook, P. "Banded    Waveguides: Towards Physical Modelling of Bar    Percussion Instruments", Proceedings of the    1999 International Computer Music Conference.    Control Change Numbers:        - Bow Pressure = 2       - Bow Motion = 4       - Strike Position = 8 (not implemented)       - Vibrato Frequency = 11       - Gain = 1       - Bow Velocity = 128       - Set Striking = 64       - Instrument Presets = 16         - Uniform Bar = 0         - Tuned Bar = 1         - Glass Harmonica = 2         - Tibetan Bowl = 3    by Georg Essl, 1999 - 2004.    Modified for Stk 4.0 by Gary Scavone.*//***************************************************/#ifndef STK_BANDEDWG_H#define STK_BANDEDWG_Hconst int MAX_BANDED_MODES = 20;#include "Instrmnt.h"#include "DelayL.h"#include "BowTable.h"#include "ADSR.h"#include "BiQuad.h"class BandedWG : public Instrmnt{ public:  //! Class constructor.  BandedWG();  //! Class destructor.  ~BandedWG();  //! Reset and clear all internal state.  void clear();  //! Set strike position (0.0 - 1.0).  void setStrikePosition(StkFloat position);  //! Select a preset.  void setPreset(int preset);  //! Set instrument parameters for a particular frequency.  void setFrequency(StkFloat frequency);  //! Apply bow velocity/pressure to instrument with given amplitude and rate of increase.  void startBowing(StkFloat amplitude, StkFloat rate);  //! Decrease bow velocity/breath pressure with given rate of decrease.  void stopBowing(StkFloat rate);  //! Pluck the instrument with given amplitude.  void pluck(StkFloat amp);  //! Start a note with the given frequency and amplitude.  void noteOn(StkFloat frequency, StkFloat amplitude);  //! Stop a note with the given amplitude (speed of decay).  void noteOff(StkFloat amplitude);  //! Perform the control change specified by \e number and \e value (0.0 - 128.0).  void controlChange(int number, StkFloat value); protected:  StkFloat computeSample( void );  bool doPluck_;  bool trackVelocity_;  int nModes_;  int presetModes_;  BowTable bowTable_;  ADSR     adsr_;  BiQuad   bandpass_[MAX_BANDED_MODES];  DelayL   delay_[MAX_BANDED_MODES];  StkFloat maxVelocity_;  StkFloat modes_[MAX_BANDED_MODES];  StkFloat frequency_;  StkFloat baseGain_;  StkFloat gains_[MAX_BANDED_MODES];  StkFloat basegains_[MAX_BANDED_MODES];  StkFloat excitation_[MAX_BANDED_MODES];  StkFloat integrationConstant_;  StkFloat velocityInput_;  StkFloat bowVelocity_;  StkFloat bowTarget_;  StkFloat bowPosition_;  StkFloat strikeAmp_;  int strikePosition_;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -