Releases: grame-cncm/faust
Faust version 2.40.0
Change log
WARNING: to get the source version
- be sure to download the
faust-2.40.0.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- Add
-nvi
option to be used with the C++ backend - Rework memory-manager (
-mem
) option - Add
-single
option handling in faustgen~ - New
setReleaseLength
API for polyphonic DSPs contributed by David Braun - Add an access ratio in DSP struct field R/W access statistic
- Add 'fParts' field in Soundfile to keep the total number of loaded parts
- Add
-os3
option in C and C++ backends - Avoid systematic parenthesis in
generateBinOp
- Restart oboe when audio stream is disconnected
- Add
faust2sc.py
to replacefaust2supercollider
in the future - Rework DSP expansion by creating a
map of <ID, expression>
and sharing the IDs - Sublime Text 4 completions and snippets initial commit with new export script
- Add Apple M1 support for
-soundfile
option infaust2max6
- Add 'RESTRICT' in C/C++ backends and 'noalias' in LLVM backend in
-fun
mode - Add
-os2
mode in C and C++ backends - Add
-double
support with 'soundfile' infaust2api
- Make 'standard' foreign linked functions usable in LLVM
Deprecated
Fixed bugs
- Correct
dsp_optimizer_real::findOptimizedParameters
- Reworked integer parsing to correctly work on Windows with MSVC compiler
- Fix codeTableType (bug rwtable type inference)
- Correct several
faust2xx
tools to compile on Apple M1 DspFaust::deleteVoice
now reset the voice- Binop Priorities changed to reflect C order
- Correct JuceGUI to display the current state of all controllers
- Controls state was not properly managed in
faust2ios -osc
mode - Soundfile support in
faust2max6
andfaust2msp
- Correct
faust2faustvst
'nvoices' metadata parsing - Unity monophonic and polyphonic C# architectures
Libraries change log
- Add 2-way, 3-way, 4-way 8-way Linkwitz-Riley fourth-order crossovers
- Add
ba.counter
- Added Bubble Sort implementation for on-the-fly automatic sorting of parallel signals
- Fix phasor in oscillators.lib to correctly reset and phase, based on a generic
phasor_imp
function - Extend Lagrange interpolation algorithms to support arbitrary spacing of the interpolation points
- Add Drum Synthesis ported from Nick Thompson Elementary version
Faust version 2.37.3
Change log
WARNING: to get the source version
- be sure to download the
faust-2.37.3.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- Improve compilation of 'select2' to be really strict.
- Add Box API
- Add Signal API
- Add experimental
assertbounds
,lowest
andhighest
primitives. Add-wi
and-ni
options - Add experimental VHDL generation
- Add ESP32 support in
faust2api
- Improve
interp-tracer
- In
faust2object
,'-A path'
also added as'-I path'
in the C++ command - Add 'copysign' math function
- In
faust2max6
,'-A path'
also added as'-I path'
in the C++ command - Add
-os1
option in C++ backend - Add Julia backend and architectures
Deprecated
Fixed bugs
- getLibraryList working with expanded files
- CoreAudio: skip an input device's output channels
- Correct implementation of
isnan/isinf/copysign
in Interp backend - Add missing
isnan/isinf/copysign
primitives in WASM architectures - JUCE plugin architecture in -double mode, single call to prepareToPlay enforced
Libraries change log
- Fixed
moogLadder
by Dario Sanfilippo. - Fixed compressors in compressors.lib
- Rename
ma.INFINITY
inma.MAX
- Correct
dm.exciter
against division by zero - Add interval protection in
linear2db
andpole2tau
- Add
ma.copysig
function - Fix
pulse(p)
when p is modulated (bug reported by DS)
Faust version 2.33.1
Change log
WARNING: to get the source version
- be sure to download the
faust-2.33.1.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- Tools
dynamic-faust
,faustbench
,faustbench-llvm
andfaust2object
are now part of the macOS binary distribution. - New
-os0
and-os1
options (variants of -os) in C backend. - Add
dynamic-coreaudio-gtk
tool. - New
faustremote [<servurl>] <platform> <arch> <srcfile> ==> <binary.zip>
script. - Add
faust2w64puredata
script. - Add
-bs
option tofaust2sndfile
. - Add
-edit
option indynamic-jack-gtk
. - Add
-ct
option infaust2sndfile
. - Add
-double
support withsoundfile
. - Make
-inj foo.cpp
option correctly work infaust2object
tool. - Add switch/case based Interpreter loop for Windows32 compilation in Interp backend.
- Update
faust2juce
to Projucer 6.0.8 (build date 22 Mar 2021). Add Visual Studio 2019 builds to the plugin and standalone Jucer files. Add new arg tofaust2juce
for VST 2 SDK folder. Add new arg for disabling juce splash screen. - Add
-a arch_file
in compile options generation. - Add
dsp_crossfader
class. - New experimental
faust2audiokit
tool. - Csharp backend contributed by Mike Oliphant.
- Add
-fx (fixed-point)
option. - Add
-soundfile
option tofaust2object
. - Add
faust2cagtk
tool. - New
soul-faust-editor
tool. - Add architecture files for Daisy and
faust2daisy
. - Add
-rc
option to possibly use the foo.rc file infaust2sndfile.
- Complete
createSRAdapter
. - Add
-us/-ds/-filter
options tofaust2object
,faustbench
,faustbench-llvm
. - Add support for 'logical right-shift' and correct support for int64 in most backends. Correct
-ftz 2
and-double
support in wast/wasm backends.
Deprecated
Fixed bugs
- Correct
-double
mode in Interp backend. - Correct polyphonic handling in
-double
mode. - Improve voice stealing in
mydsp_poly
. - Fix 'pow' function to compute with integers when both arguments are integers.
- Correct
faust2plot
andfaust2csvplot
SR parameter handling. - Correct
faust2max6
assist messages. Fix CPU measure display in several tools. - For
faust2max6
, correct ui.js to create appropriate 'int' or 'float' type slider depending of the step value.
Libraries change log
- Add
pink_noise_demo
todemos.lib
. - Add
jprev
andgreyhole
reverbs: developed by Julian Parker and Till Bovermann. - ADSR modification: favors a constant release time rather than a constant release slope for very short gates.
- New
fds.lib
by Riccardo Russo. - New
aanl.lib
library for antialiased nonlinearities by Dario Sanfilippo. - New
wdmodels.lib
library by Dirk Rosenburg. - Making the behaviour of
si.smoo
SR-independent. - Add
tabulate
in basics.lib.
Faust version 2.30.5
Change log
WARNING: to get the source version
- be sure to download the
faust-2.30.5.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- add layout and label parameters in DSP algrebra API.
- add MIDI output handling in
faustgen~
andfaust2msp/faust2max6
- add new D backend and
faust2dplug
tool (contributed by Ethan Reker) - Rust backend generate more efficient code
- add all supported CPUs in
faust2object
- add
-cm (--compute-mix)
option - new
faust2vcvrack
tool - add
setParamValue/getParamValue
methods using path in APIUI - adding bluetooth MIDI support to the Gramophone
- improve
sound2file
tool to generate interleaved or non-interleaved files - add
-preset
option infaust2jack
andfaust2jaqt
- add
-multifun
option infaust2object
- add
-bs <frames>
and-control
options infaustbench
- add
-rui
option
Deprecated
Fixed bugs
- rework MIDI channel handling in MidiUI: channels go from 1 to 16 and channel 0 is used for "all channels" at receive and send time
- type2Binary and type2String in wast/wasm backends
- mode
-double
in faust2juce faust2android
incorrect monophonic handling- avoid multiple registration of AudioWorkletProcessor code
- rework MIDI chanpress implementation
Libraries change log
- various bugs fix and documentation improvements
- fixed encoder3D and optimMaxRe3D in hoa.lib
- added quantizer library
- Oleg Nesterov SVF filters
Faust version 2.27.2
Change log
WARNING: to get the source version
- be sure to download the
faust-2.27.2.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- add
-ct
and-cat
options - add
-llvm
option infaust2juce
- new
faust2object
tool to compile several CPU specific versions of the code (using C++ or LLVM backends) - add OBOE audio driver for Android
- experimental up/down sampling C++ DSP wrappers
- possibility to have specific definitions according to the floating point precision option
- add
-jucemodulesdir
option tofaust2juce
- improve
inter-tracer
- add
-single
option infaust2max6
- add scrolling in GTKUI
- add MIR support in interp/comp mixed mode
- new
-gramophone
option infaust2esp32
- new
faust2w64vst
tool - implement isnan/isinf in non C/C++ backends
- improve SOUL backend (now passing almost all impulse-tests) and tools
- make
-uim
option generate a FAUST_CLASS_NAME string - add attribute handling in
faust2max6
- added mi.lib examples
- FAUST_LIST_ACTIVES/FAUST_LIST_PASSIVES macros generated in
-uim
mode - reworked Rust backend, now passing all impulse-tests
- add buildUserInterface method in DspFaust class (
faust2api
) - add
-soundfile
option infaust2jackconsole
- add log/exp scale handling in MidiUI
- special BS variable handling in FIR
- add
-dlt size
option in scalar mode, remove obsolete-lt
option - add
-us/-ds/-filter
parameters tofaust2max6/faust2msp
- add a normalisation rule 'abs(abs(x)) = abs(x)'
- add
-control
option infaustbench-llvm
- primitive 'enable/control' working with
-occp
backend and scalar mode - add 'float -> int' cast out-of-range detection in Interp backend.
- add 'enable/control' in FIR scalar mode
- add
-source
option tofaustbench
- add
-bs
option tosoul-faust-tester
andfaustbench-llvm
- add MIDI architecture file for iPlug project
- new
-mapp
option - support for LLVM 10 (with compiled version in the OSX and Windows binaries)
Deprecated
Fixed bugs
- fixes in C libfaust API
- fixes in
faust2esp32
- fixes in
faust2webaudiowast/faust2webaudiowasm/faust2wasm
scripts the compiler now refuses to compile DSP code that cause several identical UI paths (like/foo/bar/ui_item
) to be produced, since identical paths cannot be distinguished when controlled with OSC for instance - correct MIDI synch messages handling
- correct controllers save/restore in JUCE architecture
- missing loop dependencies fixed in -vec mode
- fixes in
faust2unity
- improved JuceReader class
- correct code generation for
<<
and>>
operators - fixes in rdtable/rwtable code generation
- correct Csound architecture
- fix openFrameworks audio driver
- fixes in
faust2lv2
- correct 'dump' behaviour in Max/MSP and
faustgen~
architectures to output [path cur min max] - fix select/if cond generation in LLVM and wast/wasm backends
- enable AudioUnit's input only when inputs > 0 in coreaudio-ios-dsp.h
- fixes in
faust2png
Libraries change log
- new platform.lib that contains platform specific value of
SR
andtablesize
values (to be possibly changed on embedded platforms) - runtime.lin file removed and code moved to interpolators.lib
- new version.lib
- correct
os.lf_sawpos
- correct
ma.isnan/isinf
definitions - rework crosses in route.lib
- fixes in hoa.lib
- new
os.hsp_phasor
- new
ma.zc
,an.abs_envelope
,an.abs_envelope_rect
,an.ms_envelope
,an.ms_envelope_rect
,an.rms_envelope
,an.rms_envelope_rect
- correct
os.quadosc
- updated mi.lib
- added averaging functions in maths.lib
- added amp envelope functions in analyzers.lib
- rework lookahead limiters
- added zero-crossing rate function
- CZ oscillators: refactor and add phase aligned versions
Faust version 2.20.2
Change log
WARNING: to get the source version
- be sure to download the
faust-2.20.2.tar.gz
file to get a complete source folder (in particular, with all the libraries)
New
- detect slider and numentry parameters coherency ('init' must be in [min, max] range)
- new -ct (--check-table) option
- add MIDI channel support in MidiUI class
- correct pitchbench handling (adding NRPN support for pitchbench range) in midi class
- add 'rint' math primitive in wasm/wast and interp backends
- new -os (--one-sample) experimental code generation model in C and C++ backends
- add support for the ESP32 cards with
faust2esp32
script - add math exception handling in impulse-tests
- updated Rust backend
- better messages for block-diagram composition errors
- new --fold-complexity or -fc option
- add resampling support when using 'soundfile' primitive in various
faust2xx
scripts - add support for 'soundfile' primitive in wasm/wast backends
- add support for the teensy card with
faust2teensy
script - add -osc support in
faust2android
- new
route
primitive in the language - new
faust-osc-controller
tool (in tools/benchmark) - new experimental SOUL backend with
faust2soul
andsoul-faust-player
tools
Deprecated
Fixed bugs
- improve LLVM (backend + Interp) and wasm/wasm select implementation
- correct
faust2jackrust
andfaust2portaudiorust
- correct wasm/wast backends
- correct ‘double’ type management in OSC library.
- check slider and numentry parameters coherency at compile time
- fix potential memory leak when creating OpenSL ES engine
- correct messages handling in
faustgen~
-I dir
is now properly used before standard folders- improved WebAudio tools
- fix for multiple registerProcessor call in webaudio-workletnode-standalone-wrapper.js wrapper
- improved
faust2sndfile
tool - more robust
interp-tracer
tool - vector code generation bug
- correct -double handling in
faust2plot
andfaust2csvplot
. Correct MidiUI constructor - evaluation bug: in some specific case we can have an unevaluated identifier inside a closure
Libraries change log
- correct table use in tubes.lib
- add
semi2ratio/ratio2semi
functions in basics.lib. Rework pitchwheel handling - add
isinf
function in maths.lib - add Eric Tarr's various filters in vaeffects.lib
- new
selectmulti
in basics.lib - new interpolators.lib, float.lib, double.lib and runtime.lib
- reworked soundfiles.lib
- add mic input case to
pospass_demo
- revise
pospass
filter to have an explicit cutoff frequency argument - new bypass_fade function in basics.lib
- install
quadosc
improvements by Oleg - hilbert needs explicit order argument:
hilbert(N) = pospass(N)
... - change
ssbf
topospass
- new mi.lib library
- name change:
conj
->cconj
- add
ssbf
andhilbert
to filters.lib - add
ssbf
demo to demos.lib - add
cconj
to signals.lib - new faster AR, ASR, ADSR envelop generators
- new
nextpow2
in maths.lib
Faust version 2.15.11
Change log
WARNING: to get the source version
- be sure to download the
faust-2.15.11.tar.gz
file to get a complete source folder (in particular, with the full libraries)
New
- add a
-soundfile-static
option in faust2max6 - add a
-native
option to faust2msp and faust2max6 - adding basic Teensy support to
faust2api
- new DSP algebra API
- add an 'auto_connect' parameter in DspFaust constructor
- add dynamic-faust tool.
- add writeDSPFactoryToObjectcodeFile API in libfaust.
faust2xx
scripts can now work with a local Faust installation- make C++ backend work in quad mode
Deprecated
- remove asmjs and JS backends
- unstable OSC bundle deactivated for now in
faust2ios
andfaust2api
- remove old iOS JACK code
Fixed bugs
- correct CoreAudio architecture and JSON generation
- correct gyroscope activation in
faust2android
, fix a bug inFaustPolyEngine::init
- correct
readDSPFactoryFromMachine
(LLVM JIT was not properly linked) - update with latest version of RtMidi, more robust MIDI timestamp handling
- correct polyphonic DSP detection in FaustPolyEngine
faust2ios
now creates a self-contained project- correct
-omp
and-sch
code generation with 'soundfile' primitive - correct wast and Interp/LLVM backends
- avoid caching simple delay expressions. Can potentially create use-before-being-defined bugs in vector mode (BUG reported by JS in March 2019)
- allow some foreign math functions in the Interp backend
- A.Graef fix for compilation problems with gcc 8.1+ and Qt 5.10+
- CoreAudio targets working on OS X 10.14 (correct ask the user for audio input access)
Faust version 2.14.4
Change log
-
new cmake based build system.
-
new ‘soundfile’ primitive with support in several
faust2xx
scripts. -
better error checking with delay parameter.
-
add
-effect auto/effect.dsp
parameter in severalfaust2xx
scripts. -
introduction of a new statement allowing to declare definition-related metadata: declare foo author "me";
-
rework libfaust API.
-
adds support for function level metadata. In order to facilitate cooperation between authors of Faust libraries, in particular the fact that multiple authors can contribute to the same library, a new declare statement is introduced:
declare <function> <key> "<value>";
. It allows to declare for each function of a library its own metadata, for example its author, its copyrights, its license, etc. Metadata for a function can be anywhere in the file, but we recommend placing it just before the function definition. -
integration of SAM (SHARC Audio Module) Architecture contributed by Analog Device and Moforte.
-
adds a new option:
-scn <name> or --super-class-name <name>
, to change the name 'dsp' of the super class. -
simplification of some degenerated recursive expressions. Degenerated recursions like: (!:2)~_ are simplified (in this case replace by 2).
-
simplify signals during propagations.
-
add multicast address and bundle handing in OSC architecture.
-
add AudioWorklet handling in WebAudio architectures.
-
rework Bela architecture.
-
new semantic for remainder (%) operator. The % operator is now automatically promoted to fmod when one of the two arguments is a float expression.
TypeExtended annotation extended with a second parameter to control causality check. When this parameter is true, TypeAnnotation rejects non-causal delays. When this parameter is false, TypeAnnotation accepts non-causal delays. TypeAnnotation is called twice: before and after normalization/optimization. During the first call, the parameter is usually set to false (unless the -lcc/--local-causality-check option is passed to the compiler) in order to accept local non-causal delays that can disappear after optimization. On the second call, this parameter is always set to true in order to reject remaining non-causal delays. -
adds new simplification rule:
0-x ==> -1*x
. -
fix concatenation of delay lines. The expressions
(s@n)@m and s@(n+m)
are equivalent only when n is constant. -
add a new libfaustmachine library containing a separated interpreter.
-
new
-os
option (one sample code generation). -
improvement of automatic tests (compiler and architectures).
-
numerous bug fixes in the compiler and architectures.
Known issues
We found out several issues with this release. We plan to make a new one soon.
Faust version 2.5.23
Latest version before official cmake based built system.
Faust version 2.5.21
Bugfix in the pattern matching evaluator, various other bugfixes (please check the git log for details), latest faust-mode (v0.6) from upstream.