0.5.0
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
andcomp
- The voice stealing is now configurable using
hint_stealing
, with possible values asfirst
,oldest
(default), andenvelope_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 foroff_mode
. The voice stealing logic was improved to take into accountpolyphony
,note_polyphony
andgroup_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 thesample_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_loading
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
andampeg_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 !