Skip to content

Releases: grame-cncm/faust

Faust version 2.77.3

26 Dec 17:54
Compare
Choose a tag to compare
Faust version 2.77.3 Pre-release
Pre-release

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 the com.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 to faust2api.
  • MiniaudioReader and miniaudio 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 in JuceGUI state handling.
  • Correct -fgpa-mem option handing combined with fDLThreshold.
  • 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 and fix ma.zc.
  • Add second-order anti-aliased softclip.
  • aa.softclipQuadratic2 renamed in aa.softclipQuadratic1.
  • Add anti-aliased quadratic softclip.
  • Add linear piecewise interpolation function.

Faust version 2.75.7

19 Sep 13:36
Compare
Choose a tag to compare

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 the com.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 in faust2w32max6 and faust2w64max6.
  • 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

20 Jun 13:43
Compare
Choose a tag to compare

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 the com.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 mesh2fausttool 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

02 Apr 06:16
Compare
Choose a tag to compare

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 the com.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 and faust2portaudiorust.
  • 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-cnoption in LLVM backend.
  • Handling of -c option in faust2sndfile.
  • Bug in -inj option handling. Make faust2max6 properly manage -inj option.
  • Fix remainder and rint 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

06 Jan 09:13
Compare
Choose a tag to compare

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 the com.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 of createSRAdapter.
  • 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 and sigFFun/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 and co.strength2ratio functions
  • Add ba.kr2ar function
  • Add os.sidebands function

Faust version 2.69.3

13 Nov 15:32
Compare
Choose a tag to compare

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 the com.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 in aterm::normalizedTree()
  • Update faustgen~ link step for Max 8.6
  • Update faust2jackconsole to allow effects option
  • Add -I option to faust2caqt

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 and ahdsr_bias
  • Add fibonacci functions
  • Adding more mixing functions
  • Add si.repeat function
  • Add wavefold and `softclipQuadratic saturators

Faust version 2.68.1

16 Sep 15:14
Compare
Choose a tag to compare

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 the com.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 faust2vhdlcode.
  • 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 and ba.ifNcNo functions
  • Adding new mathematical oscillators to oscillators.lib

Faust version 2.60.3

19 Jun 07:49
Compare
Choose a tag to compare

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 the com.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

15 May 07:00
Compare
Choose a tag to compare

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 the com.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 use sigWRTbl to code rdtable and rwtable.
  • Adding submodule for faust2ck pointing to Stanford-CCRMA.
  • Add classInit method in dsp_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 -fxmode [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 and faust2csvplot.

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 and rad2deg.
  • Correct 'os.phasor_imp' to start at 'phase' at first sample.

Precompiled LLVM and libsndfile binaries

08 May 15:31
Compare
Choose a tag to compare

Precompiled LLVM and libsndfile binaries to be used by GitHub actions.