Logo Search packages:      
Sourcecode: calf version File versions  Download package

dsp::percussion_voice Class Reference

#include <organ.h>

Inheritance diagram for dsp::percussion_voice:

calf_plugins::organ_enums

List of all members.


Detailed Description

Not a true voice, just something with similar-ish interface.

Definition at line 281 of file organ.h.


Public Types

enum  {
  par_drawbar1, par_drawbar2, par_drawbar3, par_drawbar4,
  par_drawbar5, par_drawbar6, par_drawbar7, par_drawbar8,
  par_drawbar9, par_frequency1, par_frequency2, par_frequency3,
  par_frequency4, par_frequency5, par_frequency6, par_frequency7,
  par_frequency8, par_frequency9, par_waveform1, par_waveform2,
  par_waveform3, par_waveform4, par_waveform5, par_waveform6,
  par_waveform7, par_waveform8, par_waveform9, par_detune1,
  par_detune2, par_detune3, par_detune4, par_detune5,
  par_detune6, par_detune7, par_detune8, par_detune9,
  par_phase1, par_phase2, par_phase3, par_phase4,
  par_phase5, par_phase6, par_phase7, par_phase8,
  par_phase9, par_pan1, par_pan2, par_pan3,
  par_pan4, par_pan5, par_pan6, par_pan7,
  par_pan8, par_pan9, par_routing1, par_routing2,
  par_routing3, par_routing4, par_routing5, par_routing6,
  par_routing7, par_routing8, par_routing9, par_foldover,
  par_percdecay, par_perclevel, par_percwave, par_percharm,
  par_percvel2amp, par_percfmdecay, par_percfmdepth, par_percfmwave,
  par_percfmharm, par_percvel2fm, par_perctrigger, par_percstereo,
  par_filterchain, par_master, par_f1cutoff, par_f1res,
  par_f1env1, par_f1env2, par_f1env3, par_f1keyf,
  par_f2cutoff, par_f2res, par_f2env1, par_f2env2,
  par_f2env3, par_f2keyf, par_eg1attack, par_eg1decay,
  par_eg1sustain, par_eg1release, par_eg1velscl, par_eg1ampctl,
  par_eg2attack, par_eg2decay, par_eg2sustain, par_eg2release,
  par_eg2velscl, par_eg2ampctl, par_eg3attack, par_eg3decay,
  par_eg3sustain, par_eg3release, par_eg3velscl, par_eg3ampctl,
  par_lforate, par_lfoamt, par_lfowet, par_lfophase,
  par_lfomode, par_transpose, par_detune, par_polyphony,
  par_quadenv, par_var_mapcurve, param_count
}
enum  { var_count = 1 }
enum  {
  ampctl_none, ampctl_direct, ampctl_f1, ampctl_f2,
  ampctl_all, ampctl_count
}
enum  {
  lfomode_off = 0, lfomode_direct, lfomode_filter1, lfomode_filter2,
  lfomode_voice, lfomode_global, lfomode_count
}
enum  {
  perctrig_first = 0, perctrig_each, perctrig_eachplus, perctrig_polyphonic,
  perctrig_count
}
typedef waveform_family
< ORGAN_BIG_WAVE_BITS > 
big_wave_family
enum  organ_waveform {
  wave_sine, wave_sinepl1, wave_sinepl2, wave_sinepl3,
  wave_ssaw, wave_ssqr, wave_spls, wave_saw,
  wave_sqr, wave_pulse, wave_sinepl05, wave_sqr05,
  wave_halfsin, wave_clvg, wave_bell, wave_bell2,
  wave_w1, wave_w2, wave_w3, wave_w4,
  wave_w5, wave_w6, wave_w7, wave_w8,
  wave_w9, wave_dsaw, wave_dsqr, wave_dpls,
  wave_count_small, wave_strings = wave_count_small, wave_strings2, wave_sinepad,
  wave_bellpad, wave_space, wave_choir, wave_choir2,
  wave_choir3, wave_count, wave_count_big = wave_count - wave_count_small
}
typedef waveform_family
< ORGAN_WAVE_BITS > 
small_wave_family

Public Member Functions

bool get_active ()
bool get_noticable ()
void perc_note_off (int note, int vel)
void perc_note_on (int note, int vel)
void perc_reset ()
 percussion_voice (organ_parameters *_parameters)
void render_percussion_to (float(*buf)[2], int nsamples)
void setup (int sr)
void update_pitch ()

Static Public Member Functions

static big_wave_familyget_big_wave (int wave)
static small_wave_familyget_wave (int wave)
static void precalculate_waves (calf_plugins::progress_report_iface *reporter)

Public Attributes

organ_parameters * parameters
bool released
int sample_rate

Protected Member Functions

float big_wave (float *data, dsp::fixed_point< int64_t, 20 > &ph)
float wave (float *data, dsp::fixed_point< int, 20 > ph)

Protected Attributes

dsp::decay amp
dsp::fixed_point< int64_t, 20 > dpphase
dsp::decay fm_amp
 percussion FM modulator amplitude envelope
float fm_keytrack
dsp::fixed_point< int64_t, 20 > moddphase
dsp::fixed_point< int64_t, 20 > modphase
int note
dsp::decay pamp
 percussion FM carrier amplitude envelope
dsp::fixed_point< int64_t, 20 > pphase
float rel_age_const
 pamp per-sample (linear) step during release stage (calculated on release so that it will take 30ms for it to go from "current value at release point" to 0)
bool & released_ref
int & sample_rate_ref

Static Protected Attributes

static big_wave_family(* big_waves )[wave_count_big]
static small_wave_family(* waves )[wave_count_small]

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index