Skip to content

Commit edb1c21

Browse files
committed
pre-run plugins with 0 samples right after activation
Signed-off-by: falkTX <falktx@falktx.com>
1 parent af11901 commit edb1c21

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/effects.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,7 +1137,10 @@ static int BufferSize(jack_nframes_t nframes, void* data)
11371137
effect->options_interface->set(effect->lilv_instance->lv2_handle, options);
11381138

11391139
if (effect->activated)
1140+
{
11401141
lilv_instance_activate(effect->lilv_instance);
1142+
lilv_instance_run(effect->lilv_instance, 0);
1143+
}
11411144
}
11421145
}
11431146
#ifdef HAVE_HYLIA
@@ -5122,7 +5125,7 @@ int effects_add(const char *uri, int instance, int activate)
51225125
if (lilv_plugin_has_extension_data(effect->lilv_plugin, g_lilv_nodes.worker_interface))
51235126
{
51245127
const LV2_Worker_Interface *worker_interface =
5125-
(const LV2_Worker_Interface*) lilv_instance_get_extension_data(effect->lilv_instance,
5128+
(const LV2_Worker_Interface*) lilv_instance_get_extension_data(lilv_instance,
51265129
LV2_WORKER__interface);
51275130

51285131
worker_init(&effect->worker, lilv_instance, worker_interface, worker_buf_size);
@@ -5131,21 +5134,21 @@ int effects_add(const char *uri, int instance, int activate)
51315134
if (lilv_plugin_has_extension_data(effect->lilv_plugin, g_lilv_nodes.options_interface))
51325135
{
51335136
effect->options_interface =
5134-
(const LV2_Options_Interface*) lilv_instance_get_extension_data(effect->lilv_instance,
5137+
(const LV2_Options_Interface*) lilv_instance_get_extension_data(lilv_instance,
51355138
LV2_OPTIONS__interface);
51365139
}
51375140

51385141
if (lilv_plugin_has_extension_data(effect->lilv_plugin, g_lilv_nodes.license_interface))
51395142
{
51405143
effect->license_iface =
5141-
(const MOD_License_Interface*) lilv_instance_get_extension_data(effect->lilv_instance,
5144+
(const MOD_License_Interface*) lilv_instance_get_extension_data(lilv_instance,
51425145
MOD_LICENSE__interface);
51435146
}
51445147

51455148
if (lilv_plugin_has_extension_data(effect->lilv_plugin, g_lilv_nodes.state_interface))
51465149
{
51475150
effect->state_iface =
5148-
(const LV2_State_Interface*) lilv_instance_get_extension_data(effect->lilv_instance,
5151+
(const LV2_State_Interface*) lilv_instance_get_extension_data(lilv_instance,
51495152
LV2_STATE__interface);
51505153
effect->hints |= HINT_HAS_STATE;
51515154

@@ -5160,7 +5163,7 @@ int effects_add(const char *uri, int instance, int activate)
51605163
LilvState *state = lilv_state_new_from_world(g_lv2_data, &g_urid_map, plugin_uri);
51615164

51625165
if (state != NULL) {
5163-
lilv_state_restore(state, effect->lilv_instance, NULL, NULL,
5166+
lilv_state_restore(state, lilv_instance, NULL, NULL,
51645167
LV2_STATE_IS_POD|LV2_STATE_IS_PORTABLE, effect->features);
51655168
lilv_state_free(state);
51665169
}
@@ -5171,7 +5174,7 @@ int effects_add(const char *uri, int instance, int activate)
51715174
if (lilv_plugin_has_extension_data(effect->lilv_plugin, g_lilv_nodes.hmi_interface))
51725175
{
51735176
effect->hmi_notif =
5174-
(const LV2_HMI_PluginNotification*) lilv_instance_get_extension_data(effect->lilv_instance,
5177+
(const LV2_HMI_PluginNotification*) lilv_instance_get_extension_data(lilv_instance,
51755178
LV2_HMI__PluginNotification);
51765179
}
51775180
#endif
@@ -5890,6 +5893,7 @@ int effects_add(const char *uri, int instance, int activate)
58905893
if (activate)
58915894
{
58925895
lilv_instance_activate(lilv_instance);
5896+
lilv_instance_run(effect->lilv_instance, 0);
58935897

58945898
/* Try activate the Jack client */
58955899
if (jack_activate(jack_client) != 0)
@@ -6586,6 +6590,7 @@ int effects_activate(int effect_id, int value)
65866590
{
65876591
effect->activated = true;
65886592
lilv_instance_activate(effect->lilv_instance);
6593+
lilv_instance_run(effect->lilv_instance, 0);
65896594

65906595
if (jack_activate(effect->jack_client) != 0)
65916596
{
@@ -6665,6 +6670,7 @@ int effects_activate_multi(int value, int num_effects, int *effects)
66656670
{
66666671
effect->activated = true;
66676672
lilv_instance_activate(effect->lilv_instance);
6673+
lilv_instance_run(effect->lilv_instance, 0);
66686674

66696675
if (zix_thread_create(&threads[num_threads], sizeof(void*), effects_activate_thread, effect->jack_client) == 0)
66706676
++num_threads;

0 commit comments

Comments
 (0)