sfizz 1.2.0 release

Published by redtide at 2022-01-15 22:59:19


The 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