static void v_xfade_process_midi( PYFX_Handle instance, t_pydaw_seq_event **events, int event_count, t_pydaw_seq_event *atm_events, int atm_event_count) { t_xfade *plugin_data = (t_xfade*)instance; register int f_i = 0; plugin_data->midi_event_count = 0; for(f_i = 0; f_i < event_count; ++f_i) { v_xfade_process_midi_event(plugin_data, events[f_i]); } v_plugin_event_queue_reset(&plugin_data->atm_queue); for(f_i = 0; f_i < atm_event_count; ++f_i) { v_plugin_event_queue_add( &plugin_data->atm_queue, atm_events[f_i].type, atm_events[f_i].tick, atm_events[f_i].value, atm_events[f_i].port); } }
static void v_scc_run( PYFX_Handle instance, int sample_count, struct ShdsList * midi_events, struct ShdsList * atm_events) { t_scc *plugin_data = (t_scc*)instance; t_pydaw_seq_event **events = (t_pydaw_seq_event**)midi_events->data; int event_count = midi_events->len; t_scc_sidechain_comp * f_cmp = &plugin_data->mono_modules->sidechain_comp; int f_i = 0; int midi_event_pos = 0; plugin_data->midi_event_count = 0; for(f_i = 0; f_i < event_count; ++f_i) { v_scc_process_midi_event(plugin_data, events[f_i]); } v_plugin_event_queue_reset(&plugin_data->atm_queue); t_pydaw_seq_event * ev_tmp; for(f_i = 0; f_i < atm_events->len; ++f_i) { ev_tmp = (t_pydaw_seq_event*)atm_events->data[f_i]; v_plugin_event_queue_add( &plugin_data->atm_queue, ev_tmp->type, ev_tmp->tick, ev_tmp->value, ev_tmp->port); } f_i = 0; while(f_i < sample_count) { while(midi_event_pos < plugin_data->midi_event_count && plugin_data->midi_event_ticks[midi_event_pos] == f_i) { if(plugin_data->midi_event_types[midi_event_pos] == PYDAW_EVENT_CONTROLLER) { v_cc_map_translate( &plugin_data->cc_map, plugin_data->descriptor, plugin_data->port_table, plugin_data->midi_event_ports[midi_event_pos], plugin_data->midi_event_values[midi_event_pos]); } ++midi_event_pos; } v_plugin_event_queue_atm_set( &plugin_data->atm_queue, f_i, plugin_data->port_table); v_scc_set(f_cmp, *plugin_data->threshold, (*plugin_data->ratio) * 0.1f, *plugin_data->attack * 0.001f, *plugin_data->release * 0.001f, *plugin_data->wet * 0.01f); v_scc_run_comp(f_cmp, plugin_data->sc_input0[f_i], plugin_data->sc_input1[f_i], plugin_data->output0[f_i], plugin_data->output1[f_i]); plugin_data->output0[f_i] = f_cmp->output0; plugin_data->output1[f_i] = f_cmp->output1; ++f_i; } if((int)(*plugin_data->peak_meter)) { if(f_cmp->peak_tracker.dirty) { sprintf(plugin_data->ui_msg_buff, "%i|gain|%f", plugin_data->plugin_uid, f_cmp->peak_tracker.gain_redux); plugin_data->queue_func("ui", plugin_data->ui_msg_buff); v_pkm_redux_lin_reset(&f_cmp->peak_tracker); } } }
static void v_mk_lim_run( PYFX_Handle instance, int sample_count, struct ShdsList * midi_events, t_pydaw_seq_event *atm_events, int atm_event_count) { t_mk_lim *plugin_data = (t_mk_lim*)instance; t_pydaw_seq_event **events = (t_pydaw_seq_event**)midi_events->data; int event_count = midi_events->len; int f_i = 0; int midi_event_pos = 0; t_lim_limiter * f_lim = &plugin_data->mono_modules->limiter; plugin_data->midi_event_count = 0; for(f_i = 0; f_i < event_count; ++f_i) { v_mk_lim_process_midi_event(plugin_data, events[f_i]); } v_plugin_event_queue_reset(&plugin_data->atm_queue); for(f_i = 0; f_i < atm_event_count; ++f_i) { v_plugin_event_queue_add( &plugin_data->atm_queue, atm_events[f_i].type, atm_events[f_i].tick, atm_events[f_i].value, atm_events[f_i].port); } f_i = 0; while(f_i < sample_count) { while(midi_event_pos < plugin_data->midi_event_count && plugin_data->midi_event_ticks[midi_event_pos] == f_i) { if(plugin_data->midi_event_types[midi_event_pos] == PYDAW_EVENT_CONTROLLER) { v_cc_map_translate( &plugin_data->cc_map, plugin_data->descriptor, plugin_data->port_table, plugin_data->midi_event_ports[midi_event_pos], plugin_data->midi_event_values[midi_event_pos]); } ++midi_event_pos; } v_plugin_event_queue_atm_set( &plugin_data->atm_queue, f_i, plugin_data->port_table); v_lim_set(f_lim, *plugin_data->threshold * 0.1f, *plugin_data->ceiling * 0.1f, *plugin_data->release); v_lim_run(f_lim, plugin_data->output0[f_i], plugin_data->output1[f_i]); plugin_data->output0[f_i] = f_lim->output0; plugin_data->output1[f_i] = f_lim->output1; ++f_i; } if((int)(*plugin_data->peak_meter)) { if(f_lim->peak_tracker.dirty) { sprintf(plugin_data->ui_msg_buff, "%i|gain|%f", plugin_data->plugin_uid, f_lim->peak_tracker.gain_redux); plugin_data->queue_func("ui", plugin_data->ui_msg_buff); v_pkm_redux_lin_reset(&f_lim->peak_tracker); } } }
static void v_mkeq_run( PYFX_Handle instance, int sample_count, struct ShdsList * midi_events, t_pydaw_seq_event *atm_events, int atm_event_count) { t_mkeq *plugin_data = (t_mkeq*)instance; t_pydaw_seq_event **events = (t_pydaw_seq_event**)midi_events->data; int event_count = midi_events->len; register int f_i = 0; int midi_event_pos = 0; plugin_data->midi_event_count = 0; for(f_i = 0; f_i < event_count; ++f_i) { v_mkeq_process_midi_event(plugin_data, events[f_i]); } v_plugin_event_queue_reset(&plugin_data->atm_queue); for(f_i = 0; f_i < atm_event_count; ++f_i) { v_plugin_event_queue_add( &plugin_data->atm_queue, atm_events[f_i].type, atm_events[f_i].tick, atm_events[f_i].value, atm_events[f_i].port); } f_i = 0; while(f_i < sample_count) { while(midi_event_pos < plugin_data->midi_event_count && plugin_data->midi_event_ticks[midi_event_pos] == f_i) { if(plugin_data->midi_event_types[midi_event_pos] == PYDAW_EVENT_CONTROLLER) { v_cc_map_translate( &plugin_data->cc_map, plugin_data->descriptor, plugin_data->port_table, plugin_data->midi_event_ports[midi_event_pos], plugin_data->midi_event_values[midi_event_pos]); } ++midi_event_pos; } v_plugin_event_queue_atm_set( &plugin_data->atm_queue, f_i, plugin_data->port_table); int f_i2 = 0; while(f_i2 < MKEQ_EQ_COUNT) { if(*plugin_data->eq_gain[f_i2] != 0.0f) { v_pkq_calc_coeffs(&plugin_data->mono_modules->eqs[f_i2], *plugin_data->eq_freq[f_i2], *plugin_data->eq_res[f_i2] * 0.01f, *plugin_data->eq_gain[f_i2] * 0.1f); v_pkq_run(&plugin_data->mono_modules->eqs[f_i2], plugin_data->output0[f_i], plugin_data->output1[f_i]); plugin_data->output0[f_i] = plugin_data->mono_modules->eqs[f_i2].output0; plugin_data->output1[f_i] = plugin_data->mono_modules->eqs[f_i2].output1; } ++f_i2; } ++f_i; } if((int)(*plugin_data->spectrum_analyzer_on)) { v_spa_run(plugin_data->mono_modules->spectrum_analyzer, plugin_data->output0, plugin_data->output1, sample_count); if(plugin_data->mono_modules->spectrum_analyzer->str_buf[0] != '\0') { plugin_data->queue_func("ui", plugin_data->mono_modules->spectrum_analyzer->str_buf); plugin_data->mono_modules->spectrum_analyzer->str_buf[0] = '\0'; } } }