Releases: grame-cncm/faust
Releases · grame-cncm/faust
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
Faust version 2.59.6
Change log
WARNING: to get the source version
- be sure to download the
faust-2.59.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.
New
- Improve
cmajor-faust-tester
tool to display performance ratio. - Optimize
atan2(x,x)
as PI/4. - Remove
sigTable
and usesigWRTbl
to coderdtable
andrwtable
. - Adding submodule for
faust2ck
pointing to Stanford-CCRMA. - Add
classInit
method indsp_factory
class (needed for LLVM backend) - Add -double support in
faust2bench
. - Micro optimisation for logical operators.
- Support for LLVM 17 API.
- Rework
-ftz 0/1/2
mode to directly apply on signals. - Rework same path rule for UI items: two input control cannot have a same path (trigger an ERROR), an input control and a bargraph can have the same path (WARNING), two bargraph can have the same path (WARNING)
- Add fixed-point
-fx
mode [WIP] - Add Trill RING and HEX sensors support in
faust2bela
- Print ASSERT message when faustassert is triggered.
- Add
-fpga-mem
option to replace FAUST_MAX_SIZE environment variable. - Support for LLVM 16 API.
faust2max6
now compiles and keeps a self-contained DSP version in the compiled external- Soundfile support added in Interp/LLVM backend. Cleanup Interp/MIR backend.
- Add experimental
-fui
option, to freeze UI sliders/nentry to a given value. - Interp LLVM backend updated to LLVM 15 API.
- Add a
-cir
option to check float to integer range conversion. - Add tools in impulse-tests to test signal type.
- Use of the new interval library, developed as a separated project
Deprecated
Fixed bugs
- Fixes bug in defines logic which would fail
faust2daisy
with-patch
and-pod
- Remove
gtk_progress_set_percentage
in GTKUI. - Correct
mspUI
handling in Max/MSP architectures. - Use FAUST prefix in lex/yacc parser, to allow Faust parser to cohabit with other generated lex/yacc parsers.
- Correct MIDI items reflectZone method. MIDI output activated again.
- Correct C/C++ backend with soundfile. Make faustbench usable with DSP using soundfiles.
- Fix AndroidManifest.xml and
faust2ios
. - More flexible channel layout in JUCE export.
- Correct VCVRack architecture.
- Correct
-osX
generation and architecture files. - Correct
faust2plot
andfaust2csvplot
.
Libraries
- Add
tabulateNd
. - Fix
tabulate
: use int(id+0.5) in .val - Add
it.remap
. - More general
dryWetMixer/dryWetMixerConstantPower
functions. - Add
sp.constantPowerPan
. - Add dry wet mixers.
- Add
deg2rad
andrad2deg
. - Correct 'os.phasor_imp' to start at 'phase' at first sample.
Precompiled LLVM and libsndfile binaries
Precompiled LLVM and libsndfile binaries to be used by GitHub actions.
Faust version 2.54.9
Change log
WARNING: to get the source version
- be sure to download the
faust-2.54.9.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- Android architecture updated for API 33
- Add
[hidden:xx]
metadata handling in JUCE architecture - Karl Hiner support LLVM 15 by disabling opaque pointers (temporary solution)
- Update dplug architecture file
- Dynamic detection of -double mode in dynamic-jack-gtk tool
- Complete Faust/Cmajor hybrid patches
- Add
-input
option in interp-tracer tool - Add a
-wall
option to print all warnings generated while compiling the code - Rework
-ct
option and activate it by default - Remove
-cat
option and rework -ct one to check the rdtable/rwtable range and generate safe access code - Improve memory trace in Interp backend, correct
SignalTreeChecker::visit
to properly recurse - Add -sts option to force strict compilation of 'selectX' primitives. Default is non-strict for stateless branches
- Add template backend
- Add missing
createSourceFromBoxes
API - Add -universal (arm/intel) option in faust2supercollider
- BELA architecture: add support of checkbox widget for digital in and trill craft sensor, slider mode for trill craft sensor (contributed by Pascal Faivre)
- New Cmajor backend
- New JAX backend contributed by David Braun
Deprecated
Fixed bugs
- Complete
InstComplexityVisitor::visit(LoadVarInst* inst)
- Oleg Nesterov correction on intCast
- Correct
assertStoreXX/assertLoadXX
in Interp backend - Add a thread in
CMDUI
to update GUI - Table generation in
-os0
and-os1
in C++ backend - Oleg Nesterov correction for functions with no input parameters: in this case the compiler generates code to call the function at sample rate
- Interval computation for % operator
Faust::getMetadata
in vst.cpp (faust2vst architecture file)- Use a cast bool binary operations (comparison operations) to int pass in Cmajor backend
- Correct
-inpl
option - Rust: Allocate on the heap with default-boxed
- Rework threaded API calls
- Generation of rwtable related code in C/C++ backends in -os2/os3 mode
Libraries change log
- Improved
os.sawN
andos.sawNp
documentation - Add Oleg Nesterov
ba.tabulate_chebychev
function - Limit
ma.BS
in the [1..16384] range.
Faust version 2.50.6
Change log
WARNING: to get the source version
- be sure to download the
faust-2.50.6.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- In C++ backend and
-nvi
mode, use 'static constexpr' in separated methodsgetStaticNumInputs/getStaticNumOutputs
- Add relative standard deviation computation in benchmark tools
- Add POD support in
faust2daisy
- Rust: Use wrapping add, sub and mul operations
- Allow indentifiers starting with multiple '_'
- Faust identifiers extended to accept c++ namespaces
- Rework
createSourceFromBoxes/createSourceFromSignals
API suggested by David Braun - Add a
-dyn
option (create libfaust + LLVM backend dynamic version) infaust2jack
,faust2cagtk
,faust2plot
andfaust2csvplot
- Latency metadata added in
faust2juce
- Add support for Trill Craft sensors in
faust2bela
- Allows 0 iterations for
par
,seq
,sum
andprod
- New ...%{ijk}... extended syntax for label variables
- Add template-llvm.cpp architecture to allow any
faust2xx
to become 'dynamic'. - Add
registerForeignFunction
for LLVM backend - Support for soundfile in Interp backend
- Extension of letrec with an optional 'where' clause followed by common definitions
- Completed Box/Signal API
Deprecated
Fixed bugs
- Argument evaluation order sensibility and warnings when compiling with GCC 12.
- Ladspa architecture file to set descriptor info from metadata
- Fixing a couple of inconsistencies in the Teensy architectures
- Incorrect use of ScopedNoDenormals
- Correct operator priority and parenthesis generation in textual backends. Add
-fp
option - Correct generation of float/double textual representation
- Rework
-e
option to print ordered ID - Correct
-ub/-universal
option mixup infaust2max6
Libraries change log
- Add the "Standardized Filters" section and the ITU-R BS.1770-4 K-filter
- compressors: leave the GR signal in the dB scale
lag_ud
renamed inonePoleSwitching
and improved
Faust version 2.41.1
Change log
WARNING: to get the source version
- be sure to download the
faust-2.41.1.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- Make
faustgen~
compile on Apple M1. - Add interpreter-dsp C API.
- Optimize 'powprim' when arg is or represents an integer.
- Add
-osc
additional parameters handling indynamic-jack-gtk
andpoly-dynamic-jack-gtk
tools. - Improve documentation coherency in
faust2xx
tools. - New
faust2bench
tool. - Rework public export.
- Update
faust2max6
to produce uiversal arm64/x86_64 code signed binaries. - 'librarypath' with an empty path now clear the librarypath list in
faustgen~
. - Add an
nc
parameter infaustgen~
'compileoptions' message. - Compute and add 'shortname' in JSON generation.
- Add
faust2tidalcycles
tool. - Update
faust2puredata
for Apple M1. - Rework 'read' method in
faustgen~
.
Deprecated
Fixed bugs
- Relax same path rule causing errors for bargraph.
replaceCharList
now creates a copy of the 'str' parameter. CorrectbuildPath
.- JUCE architecture float/double and
prepareToPlay
handling. - Make broken
-ocpp
mode work again. - Some variables were not correctly moved from
compute
tocomputeThread
in-sch
mode.
Libraries change log
- New time-domain pitch-tracking and spectral centroid functions.
- Noise Generator: add
colored_noise
. - Rewrite
slidingReduce
. - Update hoa.lib.
- Add
cent2ratio/ratio2cent
functions. - Add ahdsre (ADSRe with hold time).
- Change use of obsolete
ma.INFINITY
inma.MAX
. - Faster
ba.peakholder
version.