Skip to content

Conversation

zonkmachine
Copy link
Contributor

In response to #4284
Increase the 1 minimum frame to Engine::mixer()->framesPerPeriod();

@DomClark
Copy link
Member

The time returned by timeout() is in units of buffers, so framesPerPeriod() probably isn't the thing to go for here. It seems there is already a one-buffer minimum, although with a buffer size of 256 at 44100Hz this is a mere 6ms, so a longer timeout would still be good. Rather than adding a constant to the value of the "Delay" knob, would it instead be worth increasing the minimum and/or default value of the knob instead?

@PhysSong
Copy link
Member

PhysSong commented Apr 11, 2018

The time returned by timeout() is in units of buffers, so framesPerPeriod() probably isn't the thing to go for here.

Correct. Simple calculation gives 1.486s for the buffer size of 256. I guess it's too long for minimum value.

although with a buffer size of 256 at 44100Hz this is a mere 6ms, so a longer timeout would still be good.

Agreed.

would it instead be worth increasing the minimum and/or default value of the knob instead?

That's more straightforward. I think it should be at least 50ms ~ 100ms(delay and/or dynamic processors may need longer time though).
Maybe it would be better to allow users to disable the automatic stop feature for effects. That will give a simple and straightforward solution for side effects like #4284.

@zonkmachine
Copy link
Contributor Author

Maybe it would be better to allow users to disable the automatic stop feature for effects.

Already implemented. That's the setting named Keep effects running even without input.

@PhysSong
Copy link
Member

Already implemented. That's the setting named Keep effects running even without input.

Thanks! I forgot about that. I don't know if it'd be better to allow changing that per effect.

@zonkmachine
Copy link
Contributor Author

would it instead be worth increasing the minimum and/or default value of the knob instead?

That's more straightforward. I think it should be at least 50ms ~ 100ms(delay and/or dynamic processors may need longer time though).

I tried a minimum of 100ms but could still replicate the issue with some bpm settings. Maybe make 'Keep effects running even without input' default on?

@PhysSong
Copy link
Member

Maybe make 'Keep effects running even without input' default on?

👍

@zonkmachine
Copy link
Contributor Author

So, something like:

  1. Close this PR
  2. Disable the fx auto quit function for lmms-1.2 (as below)
    https://github.com/LMMS/lmms/blob/daa3f535158f321e7a01ea531fc3085f2d26ab37/src/gui/SetupDialog.cpp#L137:L138
	m_disableAutoQuit(ConfigManager::inst()->value( "ui",
						   "disableautoquit").toInt() ),

to

	m_disableAutoQuit(ConfigManager::inst()->value( "ui",
						   "disableautoquit", "1" ).toInt() ),
  1. Keep Weird Behaviour of Delay Effects when Input is shorter than Delay Time #4284 open and add a better framesPerPeriod() fix at a later time?

@zonkmachine
Copy link
Contributor Author

  1. Disable the fx auto quit function for lmms-1.2

#4378

@zonkmachine zonkmachine deleted the effectdecaymin branch May 29, 2018 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants