sfizz 0.5.0 release

Big stuff:

  • Added basic support for Flex EGs (#388) as modulation sources (targets to come)
  • Added basic support for LFOs (#338) as modulation sources (targets to come)
  • EGs and LFOs can now target EQs and filters (#424)
  • A new GUI has been added and is common to the LV2 and VST plugin (#397 #404 #419 #489 #492 #495 #496 #497); still mostly work in progress, more to come!
  • Provided build systems to use sfizz with the VCV-Rack SDK and the DISTRHO Plugin Framework

New features:

  • Added support for sustain_lo (#327)
  • Audio files are now read incrementally, improving the availability under load (#294)
  • A new output port for active voices has been added in the LV2 plugin (#321)
  • Added support for effect types reverb, disto, gate and comp
  • The voice stealing is now configurable using hint_stealing, with possible values as first, oldest (default), and envelope_and_age. The latter is the more CPU-consuming version which requires to follow the envelope of each voice to kill low-volume ones preferably. Note that the voice stealing continue to kill all voices started on the same event by default (i.e. all layers of the same note). (#344 #384 #353)
  • sfizz now internally uses a modulation matrix to link all modulation sources (CC, LFOs, and EGs) and targets (#335 #351 #386)
  • Added support for off_time and complete support for off_mode. The voice stealing logic was improved to take into account polyphony, note_polyphony and group_polyphony properly (#349 #352 #393 #413 #414 #467). Note that this support is also available for the engine polyphony. In this case, some additional voice will take over for the release duration (#477).
  • The wavetable quality has been improved (#347)
  • Support for offset_cc (#385)
  • sfizz_render now supports a --quality switch, which acts like the sample_quality= opcode (#408)
  • pitch_keycenter=sample is now taken into account (#362)
  • Support oscillator_detunecc (#434)
  • Support basic FM synthesis for oscillator regions (#436)
  • CC 7, 10 and 11 are now linked by default to pan, volume and expression (#475)
  • Support hint_ram_based for loading the whole samples in RAM (#353)
  • Support for loop_crossfade (#464)
  • All phase-related opcodes in sfizz now use the 0->1 convention, as does ARIA/Sforzando, instead of the 0->360 convention (#499)

Issues:

  • Loading probable wavetable files, or wav files containing wavetable metadata now sets oscillator=on on the region (#431)
  • The default sample_quality was put back to 1 for live playing and 2 for freewheeling (#405)
  • Fix an unwanted copy in the realtime thread (#334)
  • Improve the filter shortcut path (#336)
  • Fix the default ampeg_attack and ampeg_release to avoid clicks (#437)
  • Corrected a race condition in freewheeling mode (#500)
  • Fixed a potential non-realtime operation in the realtime thread (#498)
  • Fix a bug when using a larger internal oversampling for regions with an offset value (#469)
  • Fix an issue when loops occured more than once in a block (#462)
  • Increase the range of the clamping on amplitude (#468) and pitch (#474)
  • Fix CC modulations with their source depth set to 0 (#475)
  • Fix an overshoot for crazily large cutoff values (#478); cutoffs are now clamped
  • Improve the file loading logic to keep files in memory for a short while in case they get reused (#425)
  • Fix the MIDNAM output for the case where extended CCs are used (#420)
  • Fixed a bug where release voices where not ignored on self-mask search (#348)
  • Improved the release logic in many cases (#324 #414 #413)
  • Set the level of the *noise generator to match ARIA's (#429)
  • Support for atom:Blank atoms in the LV2 plugin (#363)
  • Fixed amp_veltrack behavior (#371)
  • Fix the ADSRH envelope release rate (#376)
  • Fixed an error for files where the loop spans the entire file (#378)
  • Fixed sustain_cc behavior (#377)
  • Match the default volumes with ARIA (#381)
  • Properly set the loop_mode for release regions (#379)
  • Regions with end=0 are now properly disabled (#380)
  • Fix fil_random to be bipolar (#452)
  • The sequence order now properly starts at 1 (#451)
  • Fix an issue on Flush to Zero on some ARM platforms (#455)
  • Fix pitch_veltrack (#461)
  • Opcode values now properly stop at the < character (#439)
  • Fix various build errors and issues on all platforms (#345 #401 #400 #399 #417 #447 #449 #443 #453 #456 #459 #471 #484 #487 #488 #491)
  • The file dialog initial directory is now the root of the current loaded file (#428)
  • Existing and known CC values are now correctly taken into account for modulations (#421)
  • Fix various performance regressions and improved performance especially on ARM builds (#410 #412 #415 #426)

API changes:

  • Added API support for setting the playback state, time position and signature (#354)
  • The API documentation on the sfizz's website has been streamlined alot !

See: GitHub release page