Releases: grame-cncm/faust
Releases · grame-cncm/faust
Faust version 2.81.2
Change log
WARNING: to get the source version
- be sure to download the
faust-2.81.2.tar.gz
file to get a complete source folder (in particular, with all the libraries). - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr [man page].(https://developer.apple.com/documentation/os/reading_unix_manual_pages) for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Add all MCP related code in McpUI.h, put in the faust/gui.
- Improve Rust backend for static tables handling.
- Add recursion, tables, waveform, select2 and prefix handlling in SignalRenderer.
- Add wasmtime architecture.
- Rework MidiHandler and audio driver memory handling.
- Allow widget modulation targets to be defined by path. For example "chan 3/gain" wiil target any widget "gain" inside a group "chan 3".
- WebAssembly mixCheckVoice now use RMS for level computation.
- faustgen~: reworked polyphonic handling.
- Rework polyphonic handling: VOICE_STOP_LEVEL set to -90 dB, RMS used for level computation, correct legato.
- Add pipewire support with console, qt and gtk GUI.
- Add kb_rom_rev1.dsp example.
- Add RNBO/codebox export in faustgen~ and generateAuxFilesFromFile2/generateAuxFilesFromString2 in libfaust.
Deprecated
Fixed bugs
- Fixed sliders that were not being created in MIDI context (skipped), so they now behave as normal sliders controlled manually OR by midi messages, the exception being MIDI controls targetting a specific voice in polyphonic context (not created as sliders). Added program change MIDI support. Added pitchweel MIDI support. Fixed an issue (typo) in ysfx-dsp.h).
- JSFXInstVisitor::_midi_poly_assign should only generate polyphonic (freq/gate/gain) parameters.
- Incorrect use of integer abs function instead of floating-point std::abs.
- Widget Modulation Bug. Labels in format 'v:group1/h:group2/name' were not handled correctly
Libraries
- Deterministic noise function.
- Add multiTapSincDelay.
- Add Vicanek's matched (decramped) second-order Butterworth low and high shelving filters.
- Add Vicanek's decramped second-order resonant filters.
Faust version 2.79.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.79.3.tar.gz
file to get a complete source folder (in particular, with all the libraries). - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr [man page].(https://developer.apple.com/documentation/os/reading_unix_manual_pages) for details on how to use that tool. MacOS Monterey is now the minimal version.
New
faustgen~
: more robust code in multichannels mode.- Add reverbTank.dsp example.
- Add wfs.dsp example.
- Add new
mesh2faust
API method to generate modal model and Faust DSP code independently. - Add parameter tracking and FFun/FVar in SDF3 backend.
- SignalPromotion now checks and possibly casts values in the waveform, allowing for simplification in FIR generation.
- Option
-rnlm (--rust-no-libm)
added in Rust backend. - Add sflooper.dsp and inlooper.dsp examples.
- Defining
sdt::less<CTree*>
operator to provide an unique and stable ordering is enough to garanty determinism. - Add
-nopost
option tofaust2w32max6
andfaust2w64max6
. - Install architecture/hothouse folder so that
faust2hothouse
can use it.
Deprecated
Fixed bugs
- Correct rnbo.py for
faust2rnbo
. - Add missing parameters in Unity FaustUtilities_template.cs/FaustPolyUtilities_template.cs so JSON parse does not fail.
faust2atomsnippets
now removes the (pf) prefix.faust2w32max6
andfaust2w64max6
now export DLL that can be correct loaded.- JUCE: correct
setSelectedItemInde
x use inuiMenu
which should take the value - 1.
Libraries
- Define generic
gen_fb_comb
and reimplementfb_comb
andfb_fcomb
with it. - Add Keith Barr Allpass Loop Reverb.
- Add WFS algorithm.
- Add
os.dsf
environment, oscsillators with exponentially decaying harmonics. - Add
pm.rk_solve()
function, Runge-Kutta solver. - Revert to the old CF mapping for the
moogLadder filter
, add the same filter as a new function that takes parameters in Hz and feedback gain raw values. - Correct
dx.dx7_algo
documentation. - Add svf morph functions.
- David Braun fix on
mixLinearClamp/mixLinearLoop/mixPowerClamp/mixPowerLoop
to properly accept the N buses as inputs.
Faust version 2.77.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.77.3.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Remove undeeded SVG generation in
faustgen
. - Add
-miniaudio
option tofaust2api
. MiniaudioReader
andminiaudio
device using miniaudio library.- Compilation is now deterministic.
- Add lint test for nondeterministic pointer comparison
- Add signal interpreter (WIP).
- Rust: provide a inplace interface for rust
- Implement
soundfile
handling at init stage in C, C++, LLVM and Interp backends. - Add the 'varname' field to the JSON format.
- Update MIR backend for 1.0.0 API.
- Implement
-ec
,-cm
and-os
options in Rust backend. - Rework minimal.c to demonstrate use of
UIGlue
. - Updated class
daisy_midi
to be compatible with libDaisy v7.1.0 - Implement SDF3 generation backend.
- Rework Rust code generation.
- Use shortnames instead of labels in Cmajor backend.
- Add Faust DSP Testbench in JUCE architecture.
Deprecated
Fixed bugs
- Remove empty groups when merging UI subcontainers.
- Fix duplicated bar graphs bug caused by double simplification.
- Fix missing type annotation step. This step is needed to draw the retimed sig graph.
- Reserved keyword used in labels do not trigger impossible simplications anymore.
uiCheckButton
inJuceGUI
state handling.- Correct
-fgpa-mem
option handing combined withfDLThreshold
. - Add -universal option in
faust2unity
, formatting. - Update fastmath.cpp to be used with a C compiler.
- Update fastmath.cpp for GCC >= 14.2.x.
- Add a cmake LINK_LLVM_STATIC option.
- Add
::
prefix to dsp class to help with integration in JUCE.
Libraries
- Add
oneEuro
filter. - Add
ba.mulaw_bitcrusher
function. - Add Kalman filter.
- Add linear algebra library.
- Topology-preserving transform SVF following Zavalishin's method; Andy Simper's Dynamic Smoothing.
- Add
ba.tAndH
andfix ma.zc
. - Add second-order anti-aliased softclip.
aa.softclipQuadratic2
renamed inaa.softclipQuadratic1
.- Add anti-aliased quadratic softclip.
- Add linear piecewise interpolation function.
Faust version 2.75.7
Change log
WARNING: to get the source version
- be sure to download the
faust-2.75.7.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Add
-mc
option infaust2w32max6
andfaust2w64max6
. - Add
FAUST_DTREE_SIZE
env variable. - Deterministic compilation activated with the
FAUST_DTREE
environment variable. - Faster hashkey computation taken from boost::hash_combine.
- Update
faust2object
for Apple ARM targets. - Add llvm-test-poly test.
- Introduction of sigRegister and retiming algorithm.
- Another gameaudio - complex rain sounds.
- Another gameaudio - modal synthesis of wind chimes.
- Another gameaudio example - thunder.
- Christof Ressi multichannel implementation in
faust2puredata
. New-newio
option to activate the new model. - Document ratio related methods in APIUI.
Deprecated
Fixed bugs
- Man page generation now uses '--' for long options.
- Use 'struct' instead of 'class' for C++ code generation in
-uim
mode. - Steven Kraninger fix for JUCE architecture bus channel changes for VST3 compatibility up to 8 channels. The original code would create errors in debug and only provide 2 channels even when more channels were selected.
Libraries
- New
scatN
function for general N-port scattering - New
scat
primitive facilitates acyclic tree scattering networks. - Add balanced par, sum, prod to signals.lib.
- Add
selectxbus
(selectbus
with crossfade).
Faust version 2.74.6
Change log
WARNING: to get the source version
- be sure to download the
faust-2.74.6.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Improve JuceOSCUI to use OSC alias when they are used instead of the path.
- Create architecture file and faust2stratus script for Chaos Audio Stratus pedal (Martin Bartlett).
- Add multichannels support in faustgen~.
- Add
-mc
(multi-channels model) option in faust2max6. - Reworked
mesh2faust
tool by Karl Hiner. - Added
faust2caconsole
(Core Audio + Console architecture). - new DirectedGraph based code in progress in -ocpp backend.
- Reworked
-fx
mode with new-fx-size
option. Merge Agathe Herrou interval and precision branch. - Rework
-os
(with new 'frame' method) and-it
options. New-ec
option to separate 'control' and 'compute'. - Improve Rust backend to have ffi
remainder/rint
properly compile on Windows.
Deprecated
Fixed bugs
- Correct impulse-tests to correctly use
-O3
optimisation level. - Add a generic 'one update per single updateAllGuis refresh' model in GUI class. Use it for
-bundle
mode in OSCUI. - Correct
faust2max6
(OPTIONS was not used everywhere needed).
Libraries
- Add
ba.selectbus
(David Braun). - New
spulse
function added in basics.lib. - Add
reverbTank_demo
(David Braun). - Add
ba.downSampleCV
(David Braun). - Add
tapeStop
effect and demo (David Braun). - Add Vital reverb (David Braun).
Faust version 2.72.14
Change log
WARNING: to get the source version
- be sure to download the
faust-2.72.14.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Deactivate 'Const' optimization in
InstructionsCompiler::generateVariableStore
. - Rework
interp-tracer
(-trace 7 not needed). - Adding a new architecture file (
faust2paconsole
) and front-end script for PortAudio console application building createPolyDSPInstance
can use -1 so that the voice number is found in the [nvoices:N] metadata.- In Cmajor backend, processors are generated in 'namespace faust {...}'.
- Add
createDspFromSignals
API in faust-dynamic-engine. - Add -double support for
faust2jackrust
andfaust2portaudiorust
. - Add output control handling in
faust2supercollider
. - New TypeScript based model for Web glue, linked to the separated faustwasm project.
- Complete faust-dynamic-engine-test with test of
createDspFromBoxes
API.
Deprecated
Fixed bugs
- Correct
-cn
option in LLVM backend. - Handling of
-c
option infaust2sndfile
. - Bug in -inj option handling. Make
faust2max6
properly manage-inj
option. - Fix
remainder
andrint
in Rust backend. - Fix
remainder
in JAX backend (using a PR from David Braun). - Correct simplification function for 'lowest/highest' primitives.
- Type information was not correctly returned in
LLVMInstVisitor::visitIndexedAddress
.
Libraries
Faust version 2.70.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.70.3.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool.
WebAssembly
This is the latest release which contains the JavaScript written Faust/WebAssembly glue code using the compiled libfaust-wasm.js
, libfaust-wasm.wasm
and libfaust-wasm.data
files, also used in the faust2webaudio separated project. See documentation.
A new TypeScript/JavaScript based model will be used in the next versions.
New
- Support of LLVM 18
- Add tests in
faustbench
, correct use ofcreateSRAdapter
. - Add initial implementation of a Control UI for the daisy patch init device
- Change BinOp("|") to have fLeftAbsorbing/fRightAbsorbing predicates
- Teach kAND/kOR to optimize &(1) and |(1)
- Add
boxFFun/CboxFFun
andsigFFun/CsigFFun
APIs - Support rtaudio ver > 6.0 in rtaudio-dsp driver
- Add soundfile support in
faust2supercollider
- Add
createDspFromBoxes
API in faust-dynamic-engine.h
Deprecated
Fixed bugs
mesh2faust
: Fix out-of-order arg in main. Fix eigen dirs not being included in executable target (was only included with library).- Correct
uiVUMeter
in JuceGUI text display - Correct Teensy architectures files, especially when several DSP are compiled and used together
- Identifier naming in Cmajor backend
Libraries
- Add
co.ratio2strength
andco.strength2ratio
functions - Add
ba.kr2ar
function - Add
os.sidebands
function
Faust version 2.69.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.69.3.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool.
New
- Improve
faustbench-llvm
by checking-ct 0
option - Update
faust2max6
link step for Max 8.6 - Remove identifiers generation workaround in codebox backend
- JAX: improve soundfile path searching
- Introduction of widget modulation expressions
- Add
boxHGroup, boxVGroup, boxTGroup
and C versions in libfaust API - Rework
-1*exp
like expressions in FIR by adding MinusInst - Improved simplifications in particular for
-n*exp
expressions - Expressions
0-x
rewritten in-1*x
inaterm::normalizedTree()
- Update
faustgen~
link step for Max 8.6 - Update
faust2jackconsole
to allow effects option - Add
-I
option tofaust2caqt
Deprecated
Fixed bugs
- Correct
LLVMInstVisitor::visitIndexedAddress
- Minus expression is not correctly handled for now in codebox backend, so use the
-1*exp
workaround, improve MinusInst handling in LLVM backend
Libraries
- Add
si.smoothq
function - Add
ma.not
function - Add
adsr_bias
andahdsr_bias
- Add fibonacci functions
- Adding more mixing functions
- Add
si.repeat
function - Add
wavefold
and `softclipQuadratic saturators
Faust version 2.68.1
Change log
WARNING: to get the source version
- be sure to download the
faust-2.68.1.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool.
New
- Reworked
mesh2faust
tool. - Rework faust-dynamic-engine.
- Experimental
-diff
option for 'Automatic Differentiation in the Faust Compiler' - Add
sigDelay1
in signal API. - Add
printCBox/printCSignal
API in box and signal API. - Add
getSigInterval/setSigInterval
in signal API. - New
faust2rnbo
tool (see https://faustdoc.grame.fr/tutorials/rnbo/) - Reworked
faust2vhdl
code. - Add
-it
option to inline rdtable/rwtable code in the main class. - Add missing
round
primitive in the language. - Add
-vec
mode in Rust backend. - Codebox backend (for RNBO support).
- MIDI and polyphonic support in JSFX backend.
Deprecated
Fixed bugs
- Revert incorrect
route
primitive incorrect fix. - Add
checkNullBargraphLabel
to better handle null labels in bargraph. - Complete
-quad
support in C++ backend. - Rework broken
-inj
option.
Libraries
- Add
ba.ifNc
andba.ifNcNo
functions - Adding new mathematical oscillators to oscillators.lib
Faust version 2.60.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.60.3.tar.gz
file to get a complete source folder (in particular, with all the libraries) - on macOS, binary files are still to notarise, you may have to use the
xattr -rd com.apple.quarantine file
command to remove thecom.apple.quarantine
extended attribute. See the xattr man page for details on how to use that tool.
New
- Rework
-dlt
threshold handling. - JSFX backend contributed by Johann Philippe.
- Properly test
-mcd
values in best found vector option. - Improve
dsp_optimizer
to properly test -mcd values in scalar mode. - Add size (in bytes) item in JSON.
Deprecated
Fixed bugs
- More robust FaustPlugin_template.cs, correct
faust2unity
. - Using boxpp to display real values in SVG diagrams.
- Make preset management thread safe.
Libraries
- New version of reducemaps.lib with
parReduce
. - Fix
RMS_FBcompressor_peak_limiter_N_chan
. - Add
tabulateNd
. - tabulate: use int(id+0.5) in .val