コード例 #1
0
ファイル: svf_1214.c プロジェクト: CallisteHanriat/lmms
static void runAddingSvf(LADSPA_Handle instance, unsigned long sample_count) {
	Svf *plugin_data = (Svf *)instance;
	LADSPA_Data run_adding_gain = plugin_data->run_adding_gain;

	/* Input (array of floats of length sample_count) */
	const LADSPA_Data * const input = plugin_data->input;

	/* Output (array of floats of length sample_count) */
	LADSPA_Data * const output = plugin_data->output;

	/* Filter type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP) (float value) */
	const LADSPA_Data filt_type = *(plugin_data->filt_type);

	/* Filter freq (float value) */
	const LADSPA_Data filt_freq = *(plugin_data->filt_freq);

	/* Filter Q (float value) */
	const LADSPA_Data filt_q = *(plugin_data->filt_q);

	/* Filter resonance (float value) */
	const LADSPA_Data filt_res = *(plugin_data->filt_res);
	int sample_rate = plugin_data->sample_rate;
	sv_filter * svf = plugin_data->svf;

#line 108 "svf_1214.xml"
	long int pos;
	
	setup_svf(svf, sample_rate, filt_freq, filt_q, f_round(filt_type));
	
	for (pos = 0; pos < sample_count; pos++) {
	        buffer_write(output[pos], run_svf(svf, input[pos] + (svf->b * filt_res)));
	}
}
コード例 #2
0
ファイル: plugin.c プロジェクト: moddevices/swh-lv2
static void activateHermesFilter(LV2_Handle instance)
{
  HermesFilter *plugin_data = (HermesFilter *)instance;
  blo_h_tables * tables __attribute__ ((unused)) = plugin_data->tables;
  blo_h_osc * osc1_d __attribute__ ((unused)) = plugin_data->osc1_d;
  blo_h_osc * osc2_d __attribute__ ((unused)) = plugin_data->osc2_d;
  blo_h_osc * lfo1_d __attribute__ ((unused)) = plugin_data->lfo1_d;
  blo_h_osc * lfo2_d __attribute__ ((unused)) = plugin_data->lfo2_d;
  float lfo1 __attribute__ ((unused)) = plugin_data->lfo1;
  float lfo2 __attribute__ ((unused)) = plugin_data->lfo2;
  float lfo1_phase __attribute__ ((unused)) = plugin_data->lfo1_phase;
  float lfo2_phase __attribute__ ((unused)) = plugin_data->lfo2_phase;
  sv_filter ** filt_data __attribute__ ((unused)) = plugin_data->filt_data;
  sv_filter * xover_b1_data __attribute__ ((unused)) = plugin_data->xover_b1_data;
  sv_filter * xover_b2_data __attribute__ ((unused)) = plugin_data->xover_b2_data;
  float ** dela_data __attribute__ ((unused)) = plugin_data->dela_data;
  int * dela_pos __attribute__ ((unused)) = plugin_data->dela_pos;
  long count __attribute__ ((unused)) = plugin_data->count;
  
setup_svf(filt_data[0], 0, 0, 0, 0);
setup_svf(filt_data[1], 0, 0, 0, 0);
setup_svf(filt_data[2], 0, 0, 0, 0);
setup_svf(xover_b1_data, sample_rate, 1000.0, 0.0, F_HP);
setup_svf(xover_b2_data, sample_rate, 100.0, 0.0, F_LP);
memset(dela_data[0], 0, sample_rate * 2 * sizeof(float));
memset(dela_data[1], 0, sample_rate * 2 * sizeof(float));
memset(dela_data[2], 0, sample_rate * 2 * sizeof(float));
dela_pos[0] = 0;
dela_pos[1] = 0;
dela_pos[2] = 0;
/*
osc1_d->ph.all = 0;
osc2_d->ph.all = 0;
lfo1_d->ph.all = 0;
lfo2_d->ph.all = 0;
*/
count = 0;
lfo1 = 0.0f;
lfo2 = 0.0f;
lfo1_phase = 0.0f;
lfo2_phase = 0.0f;
		
}
コード例 #3
0
ファイル: svf_1214.c プロジェクト: CallisteHanriat/lmms
static void activateSvf(LADSPA_Handle instance) {
	Svf *plugin_data = (Svf *)instance;
	int sample_rate = plugin_data->sample_rate;
	sv_filter *svf = plugin_data->svf;
#line 100 "svf_1214.xml"
	setup_svf(svf, 0, 0, 0, 0);
	plugin_data->sample_rate = sample_rate;
	plugin_data->svf = svf;

}
コード例 #4
0
ファイル: svf~.c プロジェクト: myQuil/amPd
static t_int *svf_perform(t_int *w)
{
	t_svf *obj = (t_svf *)(w[1]);
	t_float *in   = (t_float *)(w[2]);
	t_float *freq = (t_float *)(w[3]);
	t_float *q    = (t_float *)(w[4]);
	t_float *res  = (t_float *)(w[5]);
	t_float *out  = (t_float *)(w[6]);
	int n = (int)(w[7]);
	while (n--) {
		float f = *(in++);
		setup_svf(obj, *(freq++), *(q++));
		*(out++) = run_svf(obj, f + ((obj->b) * (*(res++))));
	}
	return (w+8);
}