sfizz 0.4.0 release
Published by paulfd at 2020-07-23 22:04:34
Big stuff:
- Added support for polynomial resamples and
sample_qualityopcodes (#238 #267). The engine now defaults to a value of2for this opcode, which is more intensive than the original linear interpolation resampler but provides a better quality. Added support for better resampling algorithms also in the wavetables viaoscillator_quality(#287). - Support
_curveccand_stepccopcodes (#166 #155 #77) as well as_smoothccopcodes (#181 #48 #22 #153 #297 #285) - Added support and API for Scala tuning files in the engine and the plugins (#253 #268 #282)
Other new features:
- Added support for unison oscillators (#161)
- Support for the
polyphonyopcode at all levels (#171 #275), as well asnote_polyphony. Thegroup=polyphony is also more flexible and can be defined anywhere. - Added support for
offset_cc(#170 #159) - Added support for
direction=reverse(#185 #179) - Added support to label the keys using a
label_keyopcode. This is not really standard yet, but it is now integrated in the LV2 plugin to advertise the names in the MIDNAM file and possibly change their labels in hosts that support it. (#174 #154) - Added support for block comments
/* */in the parser (#196 #195) - Added a
sfizz_renderclient in tree; you can build it with the make targetsfizz_renderif theSFIZZ_RENDERCMake variable is set toON. (#200 #201 #206) - Add support to integrate sfizz in DPF plugins (#216)
- Added an AudioUnit target (#224)
- Added support for the
set_hdccopcodes and overall added the ability to support floating-point CCs from the API (#233 #232 #244) - Added support for FLAC loops (#242 #229)
- Support the
mapPathfeature of the LV2 specifications, for tentatively better portability in plugin states (#303) - New instances of the sfizz LV2 plugin will now load a default
*sineinstrument (#283)
Issues:
- Solved some issues with DSmolken's drumkits related to the ampeg envelope (#172)
- An exception problem was thrown if an sfz file was deleted (#182 #184)
- Properly bundle the
dylibfor macOS (#188) - Improved the filter stability (#198 #199 #210)
- Handle
USE_LIBCPPproperly on configure (#203) - Fix the handling of loop markers if sample
end=is present (#202 #204) - Handle note on with 0 velocity as note offs in the jack client (#208 #211)
- Solved an issue with super short files (#215)
- Corrected a stack smashing bug in the LV2 plugin (#226)
- Fixed some parsing issues with
$variables(#230) - Properly advertise the VST plugin parameters (#241)
- Process
$expansions in#include(#247) - Change the default build type to
RelWithDebInfo(#249) - Improve the note stealing algorithm (#214); note that this is still very much a work in progress since many heuristics are in play here. Feel free to report misbehavior regarding note stealing as we improve this regularly.
- Corrected a bug with SFZ v1
velcurve(#263) - Properly support the
off_by=-1opcode to correctly reset the value. (#235) - Corrected some errors with null-terminated atoms in the LV2 plugin (#269)
- Ignore garbage values following e.g. a key number in opcode values (as in
key=64Garbage->key=64) (#263) ampeg_****_onccXXmodifiers now properly consider multiple CC modifiers (#300 #167)- Add headers and group sources in the CMake project for integration with e.g. Qt (#312)
- Trigger on CC does not require disabling the key triggering through e.g.
key=-1(#315) - Support flat notes parsed as string values (#291 #289)
- Improved handling of
release_key(#298); still not perfect, if the region spans multiple key and multiple notes happened with the pedal down, only a single voice will start. - Properly read the LV2 option list until the end (#323, by @atsushieno)
- Corrected a parsing issue when
$variableswere part of an opcode name (#328) - Various other plumbing changes
API additions:
- Added API calls to set
$variabledefine values prior to loading an SFZ file (#168 #119 #130) - Added API calls to get key labels and cc labels defined by
label_keyandlabel_cc(#174) - Added an API call to load an sfz file as an
std::stringorconst char*(#217) - Added API calls for Scala files and tunings (#253)
- Added high-definition floating point CC API calls (#244)
- Added API calls to change the default resampling quality (#267 #238)
See: GitHub release page
Download links:
- sfizz-0.4.0-linux-amd64.tar.gz
- sfizz-0.4.0-linux-arm64.tar.gz
- sfizz-0.4.0-mingw32.tar.gz
- sfizz-0.4.0-mingw64.tar.gz
- sfizz-0.4.0-moddevices.tar.gz
- sfizz-0.4.0-osx-amd64.tar.gz
- sfizz-0.4.0-src.tar.gz
- sfizz-0.4.0-x64-msvc-setup.exe
- sfizz-0.4.0-x86-msvc-setup.exe
- sfizz-lib-0.4.0-x64-msvc.zip
- sfizz-lib-0.4.0-x86-msvc.zip
- sfizz-lv2-0.4.0-x64-msvc.zip
- sfizz-lv2-0.4.0-x86-msvc.zip
- sfizz-plugins-0.4.0-linux-amd64.tar.gz
- sfizz-plugins-0.4.0-linux-arm64.tar.gz
- sfizz-vst3-0.4.0-x64-msvc.zip
- sfizz-vst3-0.4.0-x86-msvc.zip