sfizz 1.2.0 release

Big stuff:

  • The sfizz engine now handles multiple stereo outputs, through the output opcode. The VST3 and LV2 plugins both have a 16-out version (as 8 stereo outs) (#1002)
  • The emscripten branch allows to run sfizz through WASM for your web-oriented needs. An example with WebMidi is available at https://sfz.tools/sfizz-webaudio/ (requires a Chromium-based browser), with source code at https://github.com/sfztools/sfizz-webaudio.
  • sfizz can now parse embedded samples in base64 data (#1041)

Smaller things:

  • Added support in the plugin GUI/parameters for the "sustain cancels release" behavior of LinuxSampler.
  • The internal midi state is not reset when loading/reloading. This means in particular that controls changed on an instrument will be kept if you edit the underlying SFZ file (#1002)
  • Updated dependent libraries (#1018)
  • Support extended CCs 140 and 141 for "keydelta" (#1003)
  • Negative values for lokey will not disable the region anymore (#1019)
  • Updated the GUI option panel for the plugins (#1022) and some hints on the tab buttons (#1057)
  • Choke groups now act through CC switches (#1024)
  • Corrected a bug when reloading some files (#1028)
  • Added better support for files that are fully loaded in memory and not simply preloaded (#1031)
  • Corrected mistakes in the shelving filters (#1027)
  • Corrected a crash in some VST3 hosts (#1035)
  • Properly read exponential notation in floats (#1036)
  • sfizz is now clamping flex EG levels (#1037)
  • sw_last is now properly affected by octave_offset and note_offset (#1039)
  • Corrected a bug where long-tailed effects would be cut off (#1050)
  • Corrected a bug in the band rejection filters (#1052). The apf_1p filter still misbehaves and is disabled for now.
  • Numpad input is now properly handled (#1053)
  • In the LV2 plugin, plugin-side automation is now enabled by default (which means all SFZ control changes are naturally bound to incoming MIDI control changes and not controlled by a plugin parameter). You can disable this at build time and show the relevant parameters using SFIZZ_LV2_PSA. Too many hosts expect their plugins to respond to midi messages for things like pedal and volume. (#1054)
  • Added support for loprog/hiprog (#1058)
  • The LV2 plugin now has a string output parameter with the CC used by the instrument (#1060)

API changes: - sfizz_enable_logging and sfizz_disable_logging (and their C++ counterparts) are deprecated, replaced by sfizz_get_callback_breakdown which needs to be called at the end of a callback by the host (#1034). All file writing is handled by the host for logging. - Added sfizz_send_program_change and its C++ counterpart. - Added sfizz_set_sustain_cancels_release and its C++ counterpart.

See: GitHub release page