Skip to content

Releases: grame-cncm/faust

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.

Faust version 2.54.9

18 Dec 10:03
Compare
Choose a tag to compare

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 and os.sawNp documentation
  • Add Oleg Nesterov ba.tabulate_chebychev function
  • Limit ma.BS in the [1..16384] range.

Faust version 2.50.6

03 Oct 07:37
Compare
Choose a tag to compare

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 methods getStaticNumInputs/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) in faust2jack, faust2cagtk, faust2plot and faust2csvplot
  • Latency metadata added in faust2juce
  • Add support for Trill Craft sensors in faust2bela
  • Allows 0 iterations for par, seq, sum and prod
  • 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 in faust2max6

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 in onePoleSwitching and improved

Faust version 2.41.1

29 Jun 14:54
Compare
Choose a tag to compare

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 in dynamic-jack-gtk and poly-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 in faustgen~ '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. Correct buildPath.
  • JUCE architecture float/double and prepareToPlay handling.
  • Make broken -ocpp mode work again.
  • Some variables were not correctly moved from compute to computeThread 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 in ma.MAX.
  • Faster ba.peakholder version.