31#define ORGAN_KEYTRACK_POINTS 4
121#define ORGAN_WAVE_BITS 12
122#define ORGAN_WAVE_SIZE 4096
123#define ORGAN_BIG_WAVE_BITS 17
124#define ORGAN_BIG_WAVE_SIZE 131072
126#define ORGAN_BIG_WAVE_SHIFT 5
247 virtual void steal();
277 return (
note != -1) &&
pamp.get_active();
302 virtual void setup(
int sr);
319 using drawbar_organ::note_on;
320 using drawbar_organ::note_off;
321 using drawbar_organ::control_change;
322 using drawbar_organ::pitch_bend;
345 bool is_cv(
int param_no)
const {
return false; }
350 bool get_layers(
int index,
int generation,
unsigned int &layers)
const;
Controller controller
Definition main.C:5
float * params[organ_metadata::param_count]
Definition giface.h:527
audio_module()
Definition giface.h:533
Definition primitives.h:281
Algorithm for a constant time linear ramp.
Definition inertia.h:67
Definition fixed_point.h:38
U lerp_table_lookup_float_mask(U *data, unsigned int mask) const
Definition fixed_point.h:238
U lerp_table_lookup_float(U *data) const
Definition fixed_point.h:232
Algorithm for a constant time linear ramp.
Definition inertia.h:29
A simple (and bad) simulation of scanner vibrato based on a series of modulated allpass filters.
Definition organ.h:180
float lfo_phase
Definition organ.h:184
dsp::onepole< float > vibrato[2]
Definition organ.h:185
float vibrato_y1[VibratoSize][2]
Definition organ.h:183
void process(organ_parameters *parameters, float(*data)[2], unsigned int len, float sample_rate)
Definition organ.cpp:581
float vibrato_x1[VibratoSize][2]
Definition organ.h:183
@ VibratoSize
Definition organ.h:182
void reset()
Definition organ.cpp:573
dsp::fixed_point< int64_t, 20 > modphase
Definition organ.h:146
float rel_age_const
pamp per-sample (linear) step during release stage (calculated on release so that it will take 30ms f...
Definition organ.h:151
static big_wave_family(* big_waves)[wave_count_big]
Definition organ.h:137
dsp::decay amp
Definition organ.h:140
organ_parameters * parameters
Definition organ.h:134
waveform_family< ORGAN_WAVE_BITS > small_wave_family
Definition organ.h:131
static small_wave_family(* waves)[wave_count_small]
Definition organ.h:136
void render_percussion_to(float(*buf)[2], int nsamples)
Definition organ.cpp:516
dsp::fixed_point< int64_t, 20 > moddphase
Definition organ.h:146
waveform_family< ORGAN_BIG_WAVE_BITS > big_wave_family
Definition organ.h:132
bool & released_ref
Definition organ.h:149
organ_voice_base(organ_parameters *_parameters, int &_sample_rate_ref, bool &_released_ref)
Definition organ.cpp:508
float fm_keytrack
Definition organ.h:147
int & sample_rate_ref
Definition organ.h:148
int note
Definition organ.h:139
void perc_reset()
Definition organ.cpp:562
static small_wave_family & get_wave(int wave)
Definition organ.h:163
dsp::fixed_point< int64_t, 20 > pphase
Definition organ.h:145
float wave(float *data, dsp::fixed_point< int, 20 > ph)
Definition organ.h:155
void perc_note_on(int note, int vel)
Definition organ.cpp:1010
static big_wave_family & get_big_wave(int wave)
Definition organ.h:166
static void precalculate_waves(calf_plugins::progress_report_iface *reporter)
Definition organ.cpp:253
dsp::decay pamp
percussion FM carrier amplitude envelope
Definition organ.h:142
float big_wave(float *data, dsp::fixed_point< int64_t, 20 > &ph)
Definition organ.h:158
dsp::decay fm_amp
percussion FM modulator amplitude envelope
Definition organ.h:144
dsp::fixed_point< int64_t, 20 > dpphase
Definition organ.h:145
void update_pitch()
Definition organ.cpp:246
void perc_note_off(int note, int vel)
float aux_buffers[3][BlockSize][Channels]
Definition organ.h:221
dsp::inertia< dsp::linear_ramp > expression
Definition organ.h:226
dsp::fixed_point< int64_t, 52 > dphase
Definition organ.h:223
void note_off(int)
a note was released
Definition organ.cpp:906
dsp::biquad_d1 filterR[2]
Definition organ.h:224
virtual bool get_active()
check if voice can be removed from active voice list
Definition organ.h:253
virtual float get_priority()
Definition organ.h:246
dsp::inertia< dsp::exponential_ramp > inertia_pitchbend
Definition organ.h:232
virtual void steal()
very fast note off
Definition organ.cpp:919
dsp::biquad_d1 filterL[2]
Definition organ.h:224
float velocity
Definition organ.h:228
bool perc_released
Definition organ.h:229
bool use_percussion()
Definition organ.h:258
void render_block(int current_snapshot)
Definition organ.cpp:707
void reset()
reset voice to default state (used when a voice is to be reused)
Definition organ.cpp:926
dsp::fixed_point< int64_t, 52 > phase
Definition organ.h:223
organ_voice()
Definition organ.h:235
scanner_vibrato vibrato
Definition organ.h:227
float output_buffer[BlockSize][Channels]
Definition organ.h:220
void note_on(int note, int vel)
a note was pressed
Definition organ.cpp:885
virtual int get_current_note()
return the note used by this voice
Definition organ.h:250
adsr envs[EnvCount]
Definition organ.h:225
bool finishing
The envelopes have ended and the voice is in final fadeout stage.
Definition organ.h:231
void update_pitch()
Definition organ.cpp:701
@ EnvCount
Definition organ.h:218
@ BlockSize
Definition organ.h:218
@ MaxSampleRun
Definition organ.h:218
@ Channels
Definition organ.h:218
@ FilterCount
Definition organ.h:218
Not a true voice, just something with similar-ish interface.
Definition organ.h:265
bool get_active()
Definition organ.h:276
bool released
Definition organ.h:268
bool get_noticable()
Definition organ.h:279
int sample_rate
Definition organ.h:267
percussion_voice(organ_parameters *_parameters)
Definition organ.h:270
void setup(int sr)
Definition organ.h:282
dsp::biquad_d2 scanner[ScannerSize]
Definition organ.h:209
@ ScannerSize
Definition organ.h:207
float lfo_phase
Definition organ.h:208
organ_vibrato legacy
Definition organ.h:210
void reset()
Definition organ.cpp:620
void process(organ_parameters *parameters, float(*data)[2], unsigned int len, float sample_rate)
Definition organ.cpp:628
Definition audio_fx.h:485
int sample_rate
Definition synth.h:107
bool stolen
Definition synth.h:108
bool sostenuto
Definition synth.h:108
static PuglViewHint int value
Definition pugl.h:1708
JSAMPIMAGE data
Definition jpeglib.h:945
unsigned int uint32_t
Definition mid.cpp:100
Definition benchmark.cpp:53
@ MAX_SAMPLE_RUN
Definition giface.h:38
T sine_table< T, N, Multiplier >::data[N+1]
Definition primitives.h:442
int fastf2i_drm(float f)
fast float to int conversion using default rounding mode
Definition primitives.h:445
#define false
Definition ordinals.h:83
#define ORGAN_KEYTRACK_POINTS
Definition organ.h:31
#define ORGAN_BIG_WAVE_SIZE
Definition organ.h:124
png_structrp int mode
Definition png.h:1139
'provides live line graph values' interface
Definition giface.h:198
uint32_t message_run(const void *valid_inputs, void *output_ports)
Definition organ.cpp:121
void params_changed()
Called when params are changed (before processing).
Definition organ.cpp:67
bool get_graph(int index, int subindex, int phase, float *data, int points, cairo_iface *context, int *mode) const
Definition organ.cpp:83
dsp::organ_parameters par_values
Definition organ.h:324
uint32_t srate
Definition organ.h:325
virtual void control_change(int channel, int controller, int value)
Handle MIDI Control Change.
Definition organ.h:358
bool panic_flag
Definition organ.h:326
virtual void pitch_bend(int channel, int value)
Definition organ.h:359
char * configure(const char *key, const char *value)
DSSI configure call.
Definition organ.cpp:1034
organ_audio_module()
Definition organ.cpp:36
@ param_count
Definition organ.h:323
void set_sample_rate(uint32_t sr)
Set sample rate for the plugin.
Definition organ.h:336
void activate()
LADSPA-esque activate function, except it is called after ports are connected, not before.
Definition organ.cpp:42
uint32_t process(uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask)
The audio processing loop; assumes numsamples <= MAX_SAMPLE_RUN, for larger buffers,...
Definition organ.cpp:54
std::string var_map_curve
Value for configure variable map_curve.
Definition organ.h:330
void send_configures(send_configure_iface *)
Send all understood configure vars (none by default).
Definition organ.cpp:1070
virtual void note_on(int channel, int note, int velocity)
Handle MIDI Note On.
Definition organ.h:356
bool is_cv(int param_no) const
No CV inputs for now.
Definition organ.h:345
virtual void note_off(int channel, int note, int velocity)
Handle MIDI Note Off.
Definition organ.h:357
void deactivate()
LADSPA-esque deactivate function.
Definition organ.cpp:1075
bool is_noisy(int param_no) const
Practically all the stuff here is noisy.
Definition organ.h:347
void post_instantiate(uint32_t sample_rate)
Called after instantiating (after all the feature pointers are set - including interfaces like progre...
Definition organ.cpp:48
bool redraw
Definition organ.h:327
bool get_layers(int index, int generation, unsigned int &layers) const
Definition organ.cpp:78
void execute(int cmd_no)
Execute menu command with given number.
Definition organ.cpp:1000
Definition metadata.h:856
@ par_midi
Definition metadata.h:886
@ wave_count_big
Definition metadata.h:905
@ wave_count_small
Definition metadata.h:895
@ perctrig_polyphonic
Definition metadata.h:936
int sample_rate
Current sample rate.
Definition synth.h:282
virtual void control_change(int ctl, int val)
Definition synth.cpp:156
virtual void note_off(int note, int vel)
Definition synth.cpp:123
void init_voices(int count)
Definition synth.cpp:26
virtual void note_on(int note, int vel)
Definition synth.cpp:102
organ_parameters * parameters
Definition organ.h:288
percussion_voice percussion
Definition organ.h:289
virtual void percussion_note_on(int note, int vel)
Definition organ.cpp:960
virtual void setup(int sr)
Definition organ.cpp:965
void control_change(int controller, int value)
Definition organ.h:304
two_band_eq eq_l
Definition organ.h:291
void pitch_bend(int amt)
amt = -8192 to 8191
Definition organ.cpp:989
dsp::voice * alloc_voice()
Definition organ.cpp:953
drawbar_organ(organ_parameters *_parameters)
Definition organ.h:293
void render_separate(float *output[], int nsamples)
Definition organ.cpp:1080
two_band_eq eq_r
Definition organ.h:291
virtual bool check_percussion()
Definition organ.cpp:974
scanner_vibrato global_vibrato
Definition organ.h:290
virtual void params_changed()=0
void update_params()
Definition organ.cpp:940
float velscale
Definition organ.h:48
float release
Definition organ.h:48
float attack
Definition organ.h:48
float ampctl
Definition organ.h:48
float sustain
Definition organ.h:48
float decay
Definition organ.h:48
float envmod[organ_parameters::EnvCount]
Definition organ.h:42
float cutoff
Definition organ.h:40
float resonance
Definition organ.h:41
float keyf
Definition organ.h:43
organ_env_parameters envs[organ_parameters::EnvCount]
Definition organ.h:79
float lfo_type
Definition organ.h:85
float pan[9]
Definition organ.h:59
float percussion_trigger
Definition organ.h:72
float bass_freq
Definition organ.h:96
float bass_gain
Definition organ.h:97
float polyphony
Definition organ.h:90
double perc_decay_const
Definition organ.h:106
float global_transpose
Definition organ.h:87
float percussion_keytrack[ORGAN_KEYTRACK_POINTS][2]
Definition organ.h:113
float percussion_vel2amp
Definition organ.h:66
float master
Definition organ.h:76
float treble_freq
Definition organ.h:98
float percussion_vel2fm
Definition organ.h:71
float treble_gain
Definition organ.h:99
unsigned int foldvalue
Definition organ.h:110
float percussion_harmonic
Definition organ.h:65
float phase[9]
Definition organ.h:58
float pitch_bend_range
Definition organ.h:94
float lfo_mode
Definition organ.h:84
float waveforms[9]
Definition organ.h:56
float cutoff
Definition organ.h:109
float percussion_wave
Definition organ.h:64
float harmonics[9]
Definition organ.h:55
float routing[9]
Definition organ.h:60
float percussion_fm_depth
Definition organ.h:68
@ EnvCount
Definition organ.h:37
@ FilterCount
Definition organ.h:37
float global_detune
Definition organ.h:88
float percussion_fm_harmonic
Definition organ.h:70
float percussion_fm_wave
Definition organ.h:69
float multiplier[9]
Definition organ.h:107
float filter1_type
Definition organ.h:75
float detune[9]
Definition organ.h:57
float percussion_stereo
Definition organ.h:73
float foldover
Definition organ.h:61
int phaseshift[9]
Definition organ.h:108
int get_percussion_wave()
Definition organ.h:117
float lfo_amt
Definition organ.h:81
float lfo_phase
Definition organ.h:83
float percussion_time
Definition organ.h:62
float pitch_bend
Definition organ.h:111
float lfo_wet
Definition organ.h:82
float percussion_fm_time
Definition organ.h:67
organ_filter_parameters filters[organ_parameters::FilterCount]
Definition organ.h:78
float drawbars[9]
Definition organ.h:54
double perc_fm_decay_const
Definition organ.h:106
float quad_env
Definition organ.h:92
float lfo_rate
Definition organ.h:80
float filter_chain
Definition organ.h:74
organ_parameters()
Definition organ.h:115
int get_percussion_fm_wave()
Definition organ.h:118
float dummy_mapcurve
Definition organ.h:101
float percussion_level
Definition organ.h:63
ZCONST char * key
Definition crypt.c:587