Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Surge Effects Bank 1.9.0 corrupt audio in FL Studio when not using fixed size full buffers #4518

Closed
akx opened this issue May 7, 2021 · 8 comments · Fixed by #5069
Closed
Labels
Before Beta If these are open we can't really call ourselves beta Bug Report Item submitted using the Bug Report template FX Plugin Issues pertaining to Surge XT Effects plugin
Milestone

Comments

@akx
Copy link

akx commented May 7, 2021

Bug Description:

When using Surge Effects Bank in FL Studio 20.8.3 on Windows, the audio is corrupt unless using the Compatibility > Use Fixed Size Buffers switch and the "Process Maximum Size Buffers" additional option.

Some other effects behave even more badly.

Surge Version
This information is found on the About screen, which you get to from the bottom right menu

  • Version: 1.9.0.91069f8
  • Plugin Type: VST3
  • Bitness: 64-bit

Reproduction Steps:
Steps to reproduce the behavior:

  1. Add Surge Effects Bank to an effect track in FL Studio 20.8.3.
  2. Play a sound.
  3. Be horrified.

Expected Behavior:

  1. No horrifiedness.

Screenshots:

See (rather hear) the blank video below. It has a single kick drum sample run through Surge FX Bank's delay with the compat options, then without.

output.mp4

Computer Information (please complete the following information):

  • OS: Windows 10
  • Host: FL Studio
  • Version: 20.8.3
@akx akx added the Bug Report Item submitted using the Bug Report template label May 7, 2021
@mkruselj
Copy link
Collaborator

mkruselj commented May 7, 2021

Known issue, FX bank requires buffers of 32 samples at all times. For the time being use the fixed buffers option.

@baconpaul
Copy link
Collaborator

Or multiples thereof

@mkruselj mkruselj added the FX Plugin Issues pertaining to Surge XT Effects plugin label May 7, 2021
@akx
Copy link
Author

akx commented May 7, 2021

For the time being, then, it might be a good idea for the plugin to warn if the host is using mal-sized buffers, because I was getting very interesting noise otherwise?

@baconpaul
Copy link
Collaborator

The correct fix i think is to add and andvertise 32 samples of latency then let the daw sort it out.

https://docs.juce.com/master/classAudioProcessor.html#abae54a8c1bcfd88bcba9d42b752e006d

@akx
Copy link
Author

akx commented May 7, 2021

Isn't that just advertising processing latency for e.g. compressors such that need lookahead?

@mkruselj
Copy link
Collaborator

mkruselj commented May 7, 2021

Not necessarily, it is also required for plugins that do their processing in blocks. For example, all u-he plugins do this (except their processing block is 16 samples).

@baconpaul
Copy link
Collaborator

yes so basically advertise the 32 blocks, use that latency to collect enough input to process, and process

the problem is : surge processes in blocks of 32. So the two options are fixed block sizes which are multiples of 32 or latency while we fill the input buffer.

@baconpaul baconpaul added this to the Surge XT 1.0 milestone May 7, 2021
@baconpaul
Copy link
Collaborator

So chatted with a few folks. Here's the state of play

  1. Most DAWs don't send a block < 32
  2. FL will
  3. Logic in 'high resolution' mode will sometimes
  4. DAWs deal poorly with switches in latency at play time

So the way to do this I think is

  1. Have the FX bank have two options: Realtime but blocks gotta be > 32 or latent 32 and send me whatever
  2. Make that a user switch stored in prefs and patches
  3. Default to realtime except in the VST3 for fruity
  4. If you switch it, you need to suspend and reactivate the plug to have the new latency scanned reliably

@baconpaul baconpaul added the Before Beta If these are open we can't really call ourselves beta label Sep 6, 2021
baconpaul added a commit to baconpaul/surge that referenced this issue Sep 13, 2021
In FruityLoops (for now) use a latent block mode.

Closes surge-synthesizer#4518
baconpaul added a commit to baconpaul/surge that referenced this issue Sep 13, 2021
In FruityLoops (for now) use a latent block mode.

Closes surge-synthesizer#4518
baconpaul added a commit that referenced this issue Sep 13, 2021
In FruityLoops (for now) use a latent block mode.

Closes #4518
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Before Beta If these are open we can't really call ourselves beta Bug Report Item submitted using the Bug Report template FX Plugin Issues pertaining to Surge XT Effects plugin
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants