-
-
Notifications
You must be signed in to change notification settings - Fork 58
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
Crash in Ardour #12
Comments
Could you try with f473539? I did indeed introduce a wrong behavior in this commit... |
Yes this fixed the issue. |
What is the motivation here? The sample-rate is passed to the plugin when the plugin is instantiated and must not change. So you can pick it up directly from The parameter-option is only for the benefit of GUIs (and it is passed as atom_Float). Support for this was only added recently. Ardour 5.x did no support this option. |
I seem to recall that e.g. VST can change sample rates on the fly. At least such an option existed in Juce. I assumed this option was there to handle this possibility. |
Yes, VST has that option (but almost no VSTs implement this properly. Check e.g. frequency grid-lines in VSTs EQs when changing the rate). It is also super rare that anyone would change rate of a project while running. That's not click-free, nor realtime-safe, and one cannot do this live anyway. Also many plugins allocate buffers depending on sample-rate, so LV2 opted to just take down and re-instantiate the plugin. I'm not aware of any LV2 host that allows changing the sample-rate while running. jalv, Ardour, Qtractor don't (maybe Carla does?). |
I agree it seems overly optimistic to change the sample rate live, but as far as I could see there is really nothing preventing it in the way the "Options" extension is set. The API documentation mentions that the methods are in the "instantiation" threading class but that the options are there to enable changing some parameters of the plugin at runtime. I don't remember exactly but the reason why I put this code path to change the sample rate was probably because I had an |
Indeed. it's theoretically possible possible that way.
Yes, it can change at runtime. A plugin must also support run(..,n_samples) for any non-negative number of n_samples. The block-size is only an upper bound. e.g. Ardour splits the cycle when looping or when there's port-automation. So in a single process cycle of 1024 samples, the plugin may be called with |
Ahhh I see that's how this is implemented. It seemed weird to have only a single parameter value per block with automation curves. Thanks :D I aimed at doing it this way though so hopefully I succeeded... My question however was more related to whether the max sample rate may change by calling |
System Info:
OS: Arch Linux x86_64
Host: TM1701
Kernel: 5.4.2-arch1-1
Uptime: 1 day, 2 hours, 29 mins
Packages: 2445 (pacman), 21 (flatpak)
Shell: bash 5.0.11
Resolution: 1920x1080
DE: GNOME 3.34.2
WM: Mutter
WM Theme: Adwaita
Theme: Adwaita [GTK2/3]
Icons: Adwaita [GTK2/3]
Terminal: gnome-terminal
CPU: Intel i7-8550U (8) @ 4.000GHz
GPU: NVIDIA GeForce MX150
GPU: Intel UHD Graphics 620
Memory: 4294MiB / 15899MiB
Ardour crashes when trying to play a loaded SFZ library with Sfizz: introduced in commit: f012d45
Ardour terminal output:
Backtrace (generated via ./ardbg):
The text was updated successfully, but these errors were encountered: