Releases: grame-cncm/faust
Releases · grame-cncm/faust
Faust version 2.81.10
Change log
WARNING: to get the source version
- be sure to download the
faust-2.81.10.tar.gzfile 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 filecommand to remove thecom.apple.quarantineextended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Add dx7.dsp example.
- Cleanup/rework faust2wwise GSoC project.
- Cleanup faust2clap GSoC project.
Deprecated
Fixed bugs
- Added init section for polyphonic MIDI in JSFX backed
Libraries
Faust version 2.81.8
Change log
WARNING: to get the source version
- be sure to download the
faust-2.81.8.tar.gzfile 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 filecommand to remove thecom.apple.quarantineextended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Paschalis Melissas (melissaspaschalis@gmail.com) faust2wwise GSoC project.
- Facundo Franchino faust2clap GSoC project.
- New
SignalFIRCompiler(WIP). - Use
fmin/fmaxfor real numbers and macrosmin_i/max_ifor integer in ocpp and C backends. - Add
generateCAuxFilesFromFile2/generateAuxFilesFromString2functions.
Deprecated
Fixed bugs
- JSFX backend: fixed initialization missing for visible sliders & fixed string matching for polyphonic midi reserved names (exact match)
- Typos in codebox backend.
- Add missing shortname entry for soundfile in JSON.
remNodeshould usefmodif one of the two arguments is a float number, cleanup
Libraries
- Major DX7 update.
- Add
ma.unwrap(). - Correct
aa.Rsinhandaa.Rtan. - New
linsweep/logsweepcontributions by Oleg Nesterov. - Add
an.resonator(). - Add
ba.pick()andba.pickN().
Faust version 2.81.2
Change log
WARNING: to get the source version
- be sure to download the
faust-2.81.2.tar.gzfile 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 filecommand to remove thecom.apple.quarantineextended attribute. See the xattr man page 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" will 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
- JSFX backend: 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.gzfile 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 filecommand to remove thecom.apple.quarantineextended attribute. See the xattr man page 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
mesh2faustAPI 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
-nopostoption tofaust2w32max6andfaust2w64max6. - Install architecture/hothouse folder so that
faust2hothousecan 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.
faust2atomsnippetsnow removes the (pf) prefix.faust2w32max6andfaust2w64max6now export DLL that can be correct loaded.- JUCE: correct
setSelectedItemIndex use inuiMenuwhich should take the value - 1.
Libraries
- Define generic
gen_fb_comband reimplementfb_combandfb_fcombwith it. - Add Keith Barr Allpass Loop Reverb.
- Add WFS algorithm.
- Add
os.dsfenvironment, 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_algodocumentation. - Add svf morph functions.
- David Braun fix on
mixLinearClamp/mixLinearLoop/mixPowerClamp/mixPowerLoopto 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.gzfile 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 filecommand to remove thecom.apple.quarantineextended 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
-miniaudiooption tofaust2api. MiniaudioReaderandminiaudiodevice 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
soundfilehandling 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,-cmand-osoptions in Rust backend. - Rework minimal.c to demonstrate use of
UIGlue. - Updated class
daisy_midito 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.
uiCheckButtoninJuceGUIstate handling.- Correct
-fgpa-memoption 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
oneEurofilter. - Add
ba.mulaw_bitcrusherfunction. - Add Kalman filter.
- Add linear algebra library.
- Topology-preserving transform SVF following Zavalishin's method; Andy Simper's Dynamic Smoothing.
- Add
ba.tAndHandfix ma.zc. - Add second-order anti-aliased softclip.
aa.softclipQuadratic2renamed 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.gzfile 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 filecommand to remove thecom.apple.quarantineextended attribute. See the xattr man page for details on how to use that tool. MacOS Monterey is now the minimal version.
New
- Add
-mcoption infaust2w32max6andfaust2w64max6. - Add
FAUST_DTREE_SIZEenv variable. - Deterministic compilation activated with the
FAUST_DTREEenvironment variable. - Faster hashkey computation taken from boost::hash_combine.
- Update
faust2objectfor 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-newiooption 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
-uimmode. - 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
scatNfunction for general N-port scattering - New
scatprimitive facilitates acyclic tree scattering networks. - Add balanced par, sum, prod to signals.lib.
- Add
selectxbus(selectbuswith crossfade).
Faust version 2.74.6
Change log
WARNING: to get the source version
- be sure to download the
faust-2.74.6.tar.gzfile 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 filecommand to remove thecom.apple.quarantineextended 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
mesh2fausttool by Karl Hiner. - Added
faust2caconsole(Core Audio + Console architecture). - new DirectedGraph based code in progress in -ocpp backend.
- Reworked
-fxmode with new-fx-sizeoption. Merge Agathe Herrou interval and precision branch. - Rework
-os(with new 'frame' method) and-itoptions. New-ecoption to separate 'control' and 'compute'. - Improve Rust backend to have ffi
remainder/rintproperly compile on Windows.
Deprecated
Fixed bugs
- Correct impulse-tests to correctly use
-O3optimisation level. - Add a generic 'one update per single updateAllGuis refresh' model in GUI class. Use it for
-bundlemode in OSCUI. - Correct
faust2max6(OPTIONS was not used everywhere needed).
Libraries
- Add
ba.selectbus(David Braun). - New
spulsefunction added in basics.lib. - Add
reverbTank_demo(David Braun). - Add
ba.downSampleCV(David Braun). - Add
tapeStopeffect 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.gzfile 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 filecommand to remove thecom.apple.quarantineextended 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 createPolyDSPInstancecan use -1 so that the voice number is found in the [nvoices:N] metadata.- In Cmajor backend, processors are generated in 'namespace faust {...}'.
- Add
createDspFromSignalsAPI in faust-dynamic-engine. - Add -double support for
faust2jackrustandfaust2portaudiorust. - 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
createDspFromBoxesAPI.
Deprecated
Fixed bugs
- Correct
-cnoption in LLVM backend. - Handling of
-coption infaust2sndfile. - Bug in -inj option handling. Make
faust2max6properly manage-injoption. - Fix
remainderandrintin Rust backend. - Fix
remainderin 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.gzfile 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 filecommand to remove thecom.apple.quarantineextended 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/CboxFFunandsigFFun/CsigFFunAPIs - Support rtaudio ver > 6.0 in rtaudio-dsp driver
- Add soundfile support in
faust2supercollider - Add
createDspFromBoxesAPI 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
uiVUMeterin JuceGUI text display - Correct Teensy architectures files, especially when several DSP are compiled and used together
- Identifier naming in Cmajor backend
Libraries
- Add
co.ratio2strengthandco.strength2ratiofunctions - Add
ba.kr2arfunction - Add
os.sidebandsfunction
Faust version 2.69.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.69.3.tar.gzfile 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 filecommand to remove thecom.apple.quarantineextended attribute. See the xattr man page for details on how to use that tool.
New
- Improve
faustbench-llvmby checking-ct 0option - Update
faust2max6link 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, boxTGroupand C versions in libfaust API - Rework
-1*explike expressions in FIR by adding MinusInst - Improved simplifications in particular for
-n*expexpressions - Expressions
0-xrewritten in-1*xinaterm::normalizedTree() - Update
faustgen~link step for Max 8.6 - Update
faust2jackconsoleto allow effects option - Add
-Ioption tofaust2caqt
Deprecated
Fixed bugs
- Correct
LLVMInstVisitor::visitIndexedAddress - Minus expression is not correctly handled for now in codebox backend, so use the
-1*expworkaround, improve MinusInst handling in LLVM backend
Libraries
- Add
si.smoothqfunction - Add
ma.notfunction - Add
adsr_biasandahdsr_bias - Add fibonacci functions
- Adding more mixing functions
- Add
si.repeatfunction - Add
wavefoldand `softclipQuadratic saturators