sfztools / sfizz-ui

SFZ based sampler, providing AU / LV2 / PD / VST3 plugins using the sfizz library
https://sfz.tools/sfizz/
BSD 2-Clause "Simplified" License
43 stars 9 forks source link

loprog/hiprog support not working as expected in VST3 under Reaper #10

Open jamesd256 opened 2 years ago

jamesd256 commented 2 years ago

The bank used to test this functionality is here:

https://raw.githubusercontent.com/sfzinstruments/Discord-SFZ-GM-Bank/master/Discord%20GM/Discord%20GM%20Bank-test.sfz

Previously I had established that with this bank loaded, in Reaper's midi editor, sending a Bank/Program Select message into Sforzando was able to switch instruments in the above bank as expected when looking at the bank contents.

For instance, here is an extract from the bank:

<master>
loprog=0 hiprog=0 master_volume=0
master_label=1:1(1) - Acoustic Grand Piano - Salamander Grand
#include "Melodic/001-Acoustic Grand Piano.sfz"
<master>
loprog=1 hiprog=1 master_volume=7.5
master_label=1:2(2) - Bright Acoustic Piano - VCSL Yamaha Upright
#include "Melodic/002-Bright Acoustic Piano.sfz"
<master>
loprog=2 hiprog=2 master_volume=4.5
master_label=1:3(3) - Electric Grand Piano - Greg Sullivan Yamaha CP80
#include "Melodic/003-Electric Grand Piano.sfz"

In Reaper, leaving Bank MSB/LSB the same, and changing Program number to 2, and hitting 'Send Now' results in Sforzando switching to the Electric Grand Piano instrument.

Testing this in Sfizz 1.2.0 with its loprog/hiprog support, I would expect the behaviour to be the same as with Sforzando. However instead loading this bank for me seems to do something strange; as far as I can tell, the first instrument plays with a high attack value, creating a piano/violin kind of sound. Sending the program change from Reaper has no effect on the loaded instrument.

I can do more testing; some of the banks in the Discord GM set get both Sforzando and Sfizz to play all patches at once on midi input, and I haven't pinned down the differentiating factor yet. But the linked bank at least allows program change to switch included instruments from Reaper in Sforzando, which is what I'd like to achieve in Sfizz.

If there are any working examples of loprog/hiprog SFZ multi instrument patches working with VST3 sfizz, I can use that to work out what's going on and report back. Thanks!

redtide commented 1 year ago

@kinwie do you have any idea about this? :)