You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.5KB

  1. #ifndef STK_MODALBAR_H
  2. #define STK_MODALBAR_H
  3. #include "Modal.h"
  4. namespace stk {
  5. /***************************************************/
  6. /*! \class ModalBar
  7. \brief STK resonant bar instrument class.
  8. This class implements a number of different
  9. struck bar instruments. It inherits from the
  10. Modal class.
  11. Control Change Numbers:
  12. - Stick Hardness = 2
  13. - Stick Position = 4
  14. - Vibrato Gain = 1
  15. - Vibrato Frequency = 11
  16. - Direct Stick Mix = 8
  17. - Volume = 128
  18. - Modal Presets = 16
  19. - Marimba = 0
  20. - Vibraphone = 1
  21. - Agogo = 2
  22. - Wood1 = 3
  23. - Reso = 4
  24. - Wood2 = 5
  25. - Beats = 6
  26. - Two Fixed = 7
  27. - Clump = 8
  28. by Perry R. Cook and Gary P. Scavone, 1995--2017.
  29. */
  30. /***************************************************/
  31. class ModalBar : public Modal
  32. {
  33. public:
  34. //! Class constructor.
  35. ModalBar( void );
  36. //! Class destructor.
  37. ~ModalBar( void );
  38. //! Set stick hardness (0.0 - 1.0).
  39. void setStickHardness( StkFloat hardness );
  40. //! Set stick position (0.0 - 1.0).
  41. void setStrikePosition( StkFloat position );
  42. //! Select a bar preset (currently modulo 9).
  43. void setPreset( int preset );
  44. //! Set the modulation (vibrato) depth.
  45. void setModulationDepth( StkFloat mDepth );
  46. //! Perform the control change specified by \e number and \e value (0.0 - 128.0).
  47. void controlChange( int number, StkFloat value );
  48. };
  49. } // stk namespace
  50. #endif