diff options
author | Florian Jung <flo@thinkpad.(none)> | 2011-01-15 18:13:48 +0100 |
---|---|---|
committer | Florian Jung <flo@thinkpad.(none)> | 2011-01-15 18:13:48 +0100 |
commit | 67025394dcbc2d0917c89856c40be3b9198eca5e (patch) | |
tree | 48ac8600e1d4141ee587458db1076e967393fe35 /synth/programs.h | |
parent | 9e3998bbaddf4eb6df8544497e42231137824998 (diff) |
Implemented freq-envelopes for non-compiled notes
plus some tiny bugfixes:
- in Envelope (get_sustain now returns orig_sustain)
- parser now uses isnum instead of isfloat where appropriate
Diffstat (limited to 'synth/programs.h')
-rw-r--r-- | synth/programs.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/synth/programs.h b/synth/programs.h index 1ed9d6f..3ca4a65 100644 --- a/synth/programs.h +++ b/synth/programs.h @@ -48,7 +48,12 @@ enum parameter_enum FILTER_TREMOLO, FILTER_TREM_LFO, SYNC_FACTOR, - + FREQ_ATTACK, + FREQ_DECAY, + FREQ_SUSTAIN, + FREQ_RELEASE, + FREQ_HOLD, + FREQ_ENV_AMOUNT, PARAMETER_N_ENTRIES, UNKNOWN=-1 @@ -75,6 +80,7 @@ struct pfactor_formula_t { param_factor_t **fm; param_factor_t *out; + param_factor_t *freq_env_amount; param_factor_t filter_env; param_factor_t filter_res; param_factor_t filter_offset; @@ -84,6 +90,7 @@ struct pfactor_value_t { fixed_t **fm; fixed_t *out; + fixed_t *freq_env_amount; fixed_t filter_env; fixed_t filter_res; fixed_t filter_offset; @@ -113,12 +120,24 @@ struct custom_wave_t }; +struct env_settings_t +{ + jack_nframes_t attack; + jack_nframes_t decay; + fixed_t sustain; + signed int release; + bool hold; +}; + struct oscillator_t { fixed_t *fm_strength; //this osc gets modulated by osc #i by fm_strength[i]. fixed_t output; //NOT: osc #i gets modulated by this osc! int waveform; fixed_t factor; + float freq_env_amount; + env_settings_t freq_env; + fixed_t phase; fixed_t tremolo_depth; @@ -139,15 +158,6 @@ struct oscillator_t oscillator_t& operator=(const oscillator_t &that); }; -struct env_settings_t -{ - jack_nframes_t attack; - jack_nframes_t decay; - fixed_t sustain; - signed int release; - bool hold; -}; - struct filter_params_t { bool enabled; |