Skip to content

Releases: grame-cncm/faust

Faust version 2.68.1

16 Sep 15:14

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

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

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

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

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

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

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.

Faust version 2.40.0

27 Mar 08:29

Choose a tag to compare

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 replace faust2supercollider 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 in faust2max6
  • 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' in faust2api
  • 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 and faust2msp
  • 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

30 Oct 12:14

Choose a tag to compare

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 and highest 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 in ma.MAX
  • Correct dm.exciter against division by zero
  • Add interval protection in linear2db and pole2tau
  • Add ma.copysig function
  • Fix pulse(p) when p is modulated (bug reported by DS)

Faust version 2.33.1

20 Jul 12:22

Choose a tag to compare

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 and faust2object 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 to faust2sndfile.
  • Add -edit option in dynamic-jack-gtk.
  • Add -ct option in faust2sndfile.
  • Add -double support with soundfile.
  • Make -inj foo.cpp option correctly work in faust2object 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 to faust2juce 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 to faust2object.
  • 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 in faust2sndfile.
  • Complete createSRAdapter.
  • Add -us/-ds/-filter options to faust2object, 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 and faust2csvplot 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 to demos.lib.
  • Add jprev and greyhole 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.