LMMS
Loading...
Searching...
No Matches
dsp::organ_voice_base Class Reference

#include <organ.h>

Inheritance diagram for dsp::organ_voice_base:
calf_plugins::organ_enums dsp::organ_voice dsp::percussion_voice

Public Types

typedef waveform_family< ORGAN_WAVE_BITSsmall_wave_family
typedef waveform_family< ORGAN_BIG_WAVE_BITSbig_wave_family
Public Types inherited from calf_plugins::organ_enums
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_filter1type , 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_lfotype , par_transpose ,
  par_detune , par_polyphony , par_quadenv , par_pwhlrange ,
  par_bassfreq , par_bassgain , par_treblefreq , par_treblegain ,
  par_midi , param_count
}
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
}
enum  {
  ampctl_none , ampctl_direct , ampctl_f1 , ampctl_f2 ,
  ampctl_all , ampctl_count
}
enum  {
  lfotype_allpass = 0 , lfotype_cv1 , lfotype_cv2 , lfotype_cv3 ,
  lfotype_cvfull , lfotype_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
}

Public Member Functions

void update_pitch ()
void render_percussion_to (float(*buf)[2], int nsamples)
void perc_note_on (int note, int vel)
void perc_note_off (int note, int vel)
void perc_reset ()

Static Public Member Functions

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

Public Attributes

organ_parametersparameters

Protected Member Functions

 organ_voice_base (organ_parameters *_parameters, int &_sample_rate_ref, bool &_released_ref)
float wave (float *data, dsp::fixed_point< int, 20 > ph)
float big_wave (float *data, dsp::fixed_point< int64_t, 20 > &ph)

Protected Attributes

int note
dsp::decay amp
dsp::decay pamp
 percussion FM carrier amplitude envelope
dsp::decay fm_amp
 percussion FM modulator amplitude envelope
dsp::fixed_point< int64_t, 20 > pphase
dsp::fixed_point< int64_t, 20 > dpphase
dsp::fixed_point< int64_t, 20 > modphase
dsp::fixed_point< int64_t, 20 > moddphase
float fm_keytrack
intsample_rate_ref
bool & released_ref
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)

Static Protected Attributes

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

Member Typedef Documentation

◆ big_wave_family

◆ small_wave_family

Constructor & Destructor Documentation

◆ organ_voice_base()

organ_voice_base::organ_voice_base ( organ_parameters * _parameters,
int & _sample_rate_ref,
bool & _released_ref )
protected

Member Function Documentation

◆ big_wave()

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

◆ get_big_wave()

big_wave_family & dsp::organ_voice_base::get_big_wave ( int wave)
inlinestatic

◆ get_wave()

small_wave_family & dsp::organ_voice_base::get_wave ( int wave)
inlinestatic

◆ perc_note_off()

void dsp::organ_voice_base::perc_note_off ( int note,
int vel )

◆ perc_note_on()

void organ_voice_base::perc_note_on ( int note,
int vel )

◆ perc_reset()

void organ_voice_base::perc_reset ( )

◆ precalculate_waves()

void organ_voice_base::precalculate_waves ( calf_plugins::progress_report_iface * reporter)
static

◆ render_percussion_to()

void organ_voice_base::render_percussion_to ( float(*) buf[2],
int nsamples )

◆ update_pitch()

void organ_voice_base::update_pitch ( )

◆ wave()

float dsp::organ_voice_base::wave ( float * data,
dsp::fixed_point< int, 20 > ph )
inlineprotected

Member Data Documentation

◆ amp

dsp::decay dsp::organ_voice_base::amp
protected

◆ big_waves

organ_voice_base::big_wave_family(* organ_voice_base::big_waves
staticprotected

◆ dpphase

dsp::fixed_point<int64_t, 20> dsp::organ_voice_base::dpphase
protected

◆ fm_amp

dsp::decay dsp::organ_voice_base::fm_amp
protected

percussion FM modulator amplitude envelope

◆ fm_keytrack

float dsp::organ_voice_base::fm_keytrack
protected

◆ moddphase

dsp::fixed_point<int64_t, 20> dsp::organ_voice_base::moddphase
protected

◆ modphase

dsp::fixed_point<int64_t, 20> dsp::organ_voice_base::modphase
protected

◆ note

int dsp::organ_voice_base::note
protected

◆ pamp

dsp::decay dsp::organ_voice_base::pamp
protected

percussion FM carrier amplitude envelope

◆ parameters

organ_parameters* dsp::organ_voice_base::parameters

◆ pphase

dsp::fixed_point<int64_t, 20> dsp::organ_voice_base::pphase
protected

◆ rel_age_const

float dsp::organ_voice_base::rel_age_const
protected

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)

◆ released_ref

bool& dsp::organ_voice_base::released_ref
protected

◆ sample_rate_ref

int& dsp::organ_voice_base::sample_rate_ref
protected

◆ waves

organ_voice_base::small_wave_family(* organ_voice_base::waves
staticprotected

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