LMMS
Loading...
Searching...
No Matches
calf_plugins::wavetable_audio_module Class Reference

#include <wavetable.h>

Inheritance diagram for calf_plugins::wavetable_audio_module:
calf_plugins::audio_module< wavetable_metadata > dsp::basic_synth dsp::block_allvoices_base< wavetable_voice > calf_plugins::line_graph_iface calf_plugins::mod_matrix_impl calf_plugins::wavetable_metadata calf_plugins::audio_module_iface calf_plugins::plugin_metadata< wavetable_metadata > calf_plugins::plugin_metadata_iface

Classes

struct  ControlSnapshot

Public Member Functions

 wavetable_audio_module ()
dsp::voicealloc_voice ()
uint32_t get_crate () const
uint32_t process (uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask)
 process function copied from Organ (will probably need some adjustments as well as implementing the panic flag elsewhere
void make_snapshot (int index)
void set_sample_rate (uint32_t sr)
 Set sample rate for the plugin.
virtual void note_on (int channel, int note, int velocity)
 Handle MIDI Note On.
virtual void note_off (int channel, int note, int velocity)
 Handle MIDI Note Off.
virtual void control_change (int channel, int controller, int value)
 Handle MIDI Control Change.
virtual void channel_pressure (int channel, int value)
 Handle MIDI Channel Pressure.
virtual void pitch_bend (int channel, int value)
 Handle pitch bend message.
bool get_graph (int index, int subindex, int phase, float *data, int points, cairo_iface *context, int *mode) const
bool get_layers (int index, int generation, unsigned int &layers) const
virtual void send_configures (send_configure_iface *sci)
 Send all understood configure vars (none by default).
virtual char * configure (const char *key, const char *value)
 DSSI configure call.
virtual const dsp::modulation_entryget_default_mod_matrix_value (int row) const
virtual void note_on (int note, int vel)
virtual void note_off (int note, int vel)
virtual void control_change (int ctl, int val)
virtual void pitch_bend (int amt)
 amt = -8192 to 8191
Public Member Functions inherited from calf_plugins::audio_module< wavetable_metadata >
 audio_module ()
void program_change (int channel, int program)
 Handle MIDI Program Change.
void params_changed ()
 Called when params are changed (before processing).
void activate ()
 LADSPA-esque activate function, except it is called after ports are connected, not before.
void deactivate ()
 LADSPA-esque deactivate function.
void execute (int cmd_no)
 Execute menu command with given number.
int send_status_updates (send_updates_iface *sui, int last_serial)
 Send all supported status vars (none by default).
void params_reset ()
 Reset parameter values for epp:trigger type parameters (ones activated by oneshot push button instead of check box).
void post_instantiate (uint32_t)
 Called after instantiating (after all the feature pointers are set - including interfaces like progress_report_iface).
uint32_t message_run (const void *valid_ports, void *output_ports)
virtual void get_port_arrays (float **&ins_ptrs, float **&outs_ptrs, float **&params_ptrs)
 Return the array of input port pointers.
virtual const plugin_metadata_ifaceget_metadata_iface () const
 Return metadata object.
virtual void set_progress_report_iface (progress_report_iface *iface)
 Set the progress report interface to communicate progress to.
void zero_by_mask (uint32_t mask, uint32_t offset, uint32_t nsamples)
 utility function: zero port values if mask is 0
uint32_t process_slice (uint32_t offset, uint32_t end)
 utility function: call process, and if it returned zeros in output masks, zero out the relevant output port buffers
virtual const line_graph_ifaceget_line_graph_iface () const
virtual const phase_graph_ifaceget_phase_graph_iface () const
Public Member Functions inherited from calf_plugins::audio_module_iface
virtual ~audio_module_iface ()
Public Member Functions inherited from dsp::basic_synth
virtual void setup (int sr)
virtual void trim_voices ()
virtual dsp::voicegive_voice ()
virtual void steal_voice ()
virtual void render_to (float(*output)[2], int nsamples)
virtual void percussion_note_on (int note, int vel)
virtual void on_pedal_release ()
virtual bool check_percussion ()
virtual ~basic_synth ()
Public Member Functions inherited from dsp::block_allvoices_base< wavetable_voice >
void fill_snapshots (int nsamples)
Public Member Functions inherited from calf_plugins::line_graph_iface
virtual bool get_moving (int index, int subindex, int &direction, float *data, int x, int y, int &offset, uint32_t &color) const
virtual bool get_dot (int index, int subindex, int phase, float &x, float &y, int &size, cairo_iface *context) const
virtual bool get_gridline (int index, int subindex, int phase, float &pos, bool &vertical, std::string &legend, cairo_iface *context) const
virtual std::string get_crosshair_label (int x, int y, int sx, int sy, float q, int dB, int name, int note, int cents) const
virtual ~line_graph_iface ()
 Standard destructor to make compiler happy.
Public Member Functions inherited from calf_plugins::mod_matrix_impl
 mod_matrix_impl (dsp::modulation_entry *_matrix, calf_plugins::mod_matrix_metadata *_metadata)
void calculate_modmatrix (float *moddest, int moddest_count, float *modsrc)
 Process modulation matrix, calculate outputs from inputs.
void send_configures (send_configure_iface *)
char * configure (const char *key, const char *value)

Public Attributes

int16_t tables [wt_count][129][256]
dsp::modulation_entry mod_matrix_data [mod_matrix_slots]
 Rows of the modulation matrix.
dsp::inertia< dsp::linear_rampinertia_pitchbend
 Smoothed pitch bend value.
dsp::inertia< dsp::linear_rampinertia_pressure
 Smoothed channel pressure value.
float modwheel_value
 Unsmoothed mod wheel value.
wavetable_voicelast_voice
ControlSnapshot control_snapshots [MaxSnapshots]
Public Attributes inherited from calf_plugins::audio_module< wavetable_metadata >
float * ins [(wavetable_metadata::in_count !=0) ? wavetable_metadata::in_count :1]
float * outs [(wavetable_metadata::out_count !=0) ? wavetable_metadata::out_count :1]
float * params [wavetable_metadata::param_count]
bool questionable_data_reported_in
bool questionable_data_reported_out
progress_report_ifaceprogress_report
Public Attributes inherited from dsp::block_allvoices_base< wavetable_voice >
unsigned int sample_ctr

Protected Attributes

uint32_t crate
bool panic_flag
Protected Attributes inherited from dsp::basic_synth
int sample_rate
 Current sample rate.
bool hold
 Hold pedal state.
bool sostenuto
 Sostenuto pedal state.
voice_array allocated_voices
 All voices available.
voice_array active_voices
 Voices currently playing.
voice_array unused_voices
 Voices allocated, but not used.
std::bitset< 128 > gate
 Gate values for all 128 MIDI notes.
unsigned int polyphony_limit
 Maximum allocated number of channels.
Protected Attributes inherited from calf_plugins::mod_matrix_impl
dsp::modulation_entrymatrix
mod_matrix_metadatametadata
unsigned int matrix_rows

Additional Inherited Members

Public Types inherited from calf_plugins::audio_module< wavetable_metadata >
typedef wavetable_metadata metadata_type
Public Types inherited from dsp::block_allvoices_base< wavetable_voice >
enum  
Protected Types inherited from dsp::basic_synth
typedef basic_pool< dsp::voice * > voice_array
Protected Member Functions inherited from dsp::basic_synth
void init_voices (int count)
void kill_note (int note, int vel, bool just_one)
Static Protected Attributes inherited from calf_plugins::mod_matrix_impl
static const float scaling_coeffs [calf_plugins::mod_matrix_metadata::map_type_count][3]
 Polynomials for different scaling modes (1, x, x^2).

Constructor & Destructor Documentation

◆ wavetable_audio_module()

calf_plugins::wavetable_audio_module::wavetable_audio_module ( )

Member Function Documentation

◆ alloc_voice()

dsp::voice * calf_plugins::wavetable_audio_module::alloc_voice ( )
inlinevirtual

Implements dsp::basic_synth.

◆ channel_pressure()

virtual void calf_plugins::wavetable_audio_module::channel_pressure ( int channel,
int value )
virtual

Handle MIDI Channel Pressure.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ configure()

virtual char * calf_plugins::wavetable_audio_module::configure ( const char * key,
const char * value )
virtual

DSSI configure call.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ control_change() [1/2]

virtual void calf_plugins::wavetable_audio_module::control_change ( int channel,
int controller,
int value )
virtual

Handle MIDI Control Change.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ control_change() [2/2]

void basic_synth::control_change ( int ctl,
int val )
virtual

Reimplemented from dsp::basic_synth.

◆ get_crate()

uint32_t calf_plugins::wavetable_audio_module::get_crate ( ) const
inline

◆ get_default_mod_matrix_value()

virtual const dsp::modulation_entry * calf_plugins::wavetable_audio_module::get_default_mod_matrix_value ( int row) const
virtual

Reimplemented from calf_plugins::mod_matrix_impl.

◆ get_graph()

bool calf_plugins::wavetable_audio_module::get_graph ( int index,
int subindex,
int phase,
float * data,
int points,
cairo_iface * context,
int * mode ) const
virtual

Obtain subindex'th graph of parameter 'index'

Parameters
indexparameter/graph number (usually tied to particular plugin control port)
subindexgraph number (there may be multiple overlaid graphs for one parameter, eg. for monosynth 2x12dB filters)
phase0 if in cache phase or 1 if in realtime phase
databuffer for normalized output values
pointsnumber of points to fill
contextcairo context to adjust (for multicolour graphs etc.)
Return values
truegraph data was returned; subindex+1 graph may or may not be available
falsegraph data was not returned; subindex+1 graph does not exist either

Reimplemented from calf_plugins::line_graph_iface.

◆ get_layers()

bool calf_plugins::wavetable_audio_module::get_layers ( int index,
int generation,
unsigned int & layers ) const
inlinevirtual

Return which layers need to be redrawn in the next GTK drawing cycle

Parameters
indexParameter/graph identifier (usually tied to particular plugin control port)
generationThe overall amount of drawing cycles since the last full refresh of all surfaces
layersBitmask defining the layers to be redrawn (see layers_flags above)
Return values
truethere's at least one layer to be redrawn; false nothing to draw in this cycle

Reimplemented from calf_plugins::line_graph_iface.

◆ make_snapshot()

void calf_plugins::wavetable_audio_module::make_snapshot ( int index)
inlinevirtual

◆ note_off() [1/2]

virtual void calf_plugins::wavetable_audio_module::note_off ( int channel,
int note,
int velocity )
inlinevirtual

Handle MIDI Note Off.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ note_off() [2/2]

void basic_synth::note_off ( int note,
int vel )
virtual

Reimplemented from dsp::basic_synth.

◆ note_on() [1/2]

virtual void calf_plugins::wavetable_audio_module::note_on ( int channel,
int note,
int velocity )
inlinevirtual

Handle MIDI Note On.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ note_on() [2/2]

void basic_synth::note_on ( int note,
int vel )
virtual

Reimplemented from dsp::basic_synth.

◆ pitch_bend() [1/2]

virtual void dsp::basic_synth::pitch_bend ( int amt)
inlinevirtual

amt = -8192 to 8191

Reimplemented from dsp::basic_synth.

◆ pitch_bend() [2/2]

virtual void calf_plugins::wavetable_audio_module::pitch_bend ( int channel,
int value )
inlinevirtual

Handle pitch bend message.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ process()

uint32_t calf_plugins::wavetable_audio_module::process ( uint32_t offset,
uint32_t nsamples,
uint32_t inputs_mask,
uint32_t outputs_mask )
inlinevirtual

process function copied from Organ (will probably need some adjustments as well as implementing the panic flag elsewhere

Implements calf_plugins::audio_module_iface.

◆ send_configures()

virtual void calf_plugins::wavetable_audio_module::send_configures ( send_configure_iface * sci)
inlinevirtual

Send all understood configure vars (none by default).

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

◆ set_sample_rate()

void calf_plugins::wavetable_audio_module::set_sample_rate ( uint32_t sr)
inlinevirtual

Set sample rate for the plugin.

Reimplemented from calf_plugins::audio_module< wavetable_metadata >.

Member Data Documentation

◆ control_snapshots

ControlSnapshot calf_plugins::wavetable_audio_module::control_snapshots[MaxSnapshots]

◆ crate

uint32_t calf_plugins::wavetable_audio_module::crate
protected

◆ inertia_pitchbend

dsp::inertia<dsp::linear_ramp> calf_plugins::wavetable_audio_module::inertia_pitchbend

Smoothed pitch bend value.

◆ inertia_pressure

dsp::inertia<dsp::linear_ramp> calf_plugins::wavetable_audio_module::inertia_pressure

Smoothed channel pressure value.

◆ last_voice

wavetable_voice* calf_plugins::wavetable_audio_module::last_voice

◆ mod_matrix_data

dsp::modulation_entry calf_plugins::wavetable_audio_module::mod_matrix_data[mod_matrix_slots]

Rows of the modulation matrix.

◆ modwheel_value

float calf_plugins::wavetable_audio_module::modwheel_value

Unsmoothed mod wheel value.

◆ panic_flag

bool calf_plugins::wavetable_audio_module::panic_flag
protected

◆ tables

int16_t calf_plugins::wavetable_audio_module::tables[wt_count][129][256]

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