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

Build preset list for VST3 from User SFZ Folder #9

Open
jamesd256 opened this issue Aug 18, 2022 · 0 comments
Open

Build preset list for VST3 from User SFZ Folder #9

jamesd256 opened this issue Aug 18, 2022 · 0 comments

Comments

@jamesd256
Copy link

jamesd256 commented Aug 18, 2022

The background use case here probably informs about the motivation for raising this, so I will explain a bit first.

I have assembled a really big library of SFV instruments. I want to build a workflow (in Reaper fwiw) where I can drill down and access instruments quickly from an interface I'm developing. This fits into a wider solution which will attempt to provide a looper style, real time composition environment. Less relevant to this conversation, my solution will also attempt to provide rapid arrangement capability by supporting some 64 pad devices from Novation and Akai. Yes there are various initiatives that cover some of this, but none cover all, happy to discuss to receive suggestions or ideas.

Onto the feature request. The outcome I'm looking for here would be that Sfizz scans the folder specified in the User SFZ Folder setting, and creates a list of presets from what it finds. In Reaper, and I presume other DAWs, the presets bundled with a VST plugin are pulled into Reaper's FX presets dropdown. In Reaper's case, there is a 'Link to MIDI program change' setting which allows program change to select from this preset list, rather than being passed through as MIDI to the plugin.

Therefore, if Sfizz was able to create a preset list from the instruments found on the file system, I believe this would uniquely provide fingertip access to large libraries of instruments, without requiring painstaking creation and maintenance of a set of presets where there are hundreds in the library.

Another approach which would be a halfway house to this would be to create multiple instrument SFZ banks which would then rely on loprog/hiprog midi program switching to change instruments from the DAW/Reaper. At least I could then have instruments loaded into up to 128 instrument banks.

I have raised an issue on my results trying out loprog/hiprog in Sfizz here:

#10

Many thanks

Edit: as usual raising this has made me think a bit more about an easier way.

I noticed that Sfizz reports to Reaper as program and bank names (visible in the Reaper midi editor bank/program select dialog in the drop downs) the following:

Bank: VST3i sfizz (Paul Ferrand)
Program: [name of the current SFZ instrument]

I also note that the previous and next SFZ buttons seem to differ from the Sforzando ones, in that they will only navigate between instruments in the same folder as the one currently loaded. Sforzando traverses the full set of folders found in the user preset folder root, so you can navigate the full library of instruments.

If sfizz was able to implement this full traversal, and also (perhaps already possible) expose control to the host of when the previous / next SFZ file buttons were pressed, we could have a solution as follows:

  • The user loads the first instrument in the library
  • A reaper script is created to:
    • Trigger the next SFZ file button
    • Read the program name from sfizz
    • Create a preset with this name with the current state of sfizz (SFZ with this name loaded)
    • Repeat

This would result in a preset list being present in Reaper which maps onto the users' SFZ instrument library, with much less bloat inside sfizz to achieve this result

@redtide redtide transferred this issue from sfztools/sfizz May 8, 2023
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

No branches or pull requests

1 participant