Skip to content
Pre-release

@sletz sletz released this Jan 14, 2021

Correct: #481
Check: #533 (OK with this commit https://github.com/grame-cncm/faust/commits/master-dev/syntax-highlighting/faust-mode.el)

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~ and faust2msp/faust2max6
  • add new D backend and faust2dplug tool
  • 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 in faust2jack and faust2jaqt
  • add -multifun option in faust2object
  • add -bs <frames> and -control options in faustbench
  • 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
Assets 7

@sletz sletz released this Aug 4, 2020 · 283 commits to master-dev since this release

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 in faust2juce
  • 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 -jucemodulesdiroption to faust2juce
  • improve inter-tracer
  • add -single option in faust2max6
  • add scrolling in GTKUI
  • add MIR support in interp/comp mixed mode
  • new -gramophone option in faust2esp32
  • 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 in faust2jackconsole
  • 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 to faust2max6/faust2msp
  • add a normalisation rule 'abs(abs(x)) = abs(x)'
  • add -control option in faustbench-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 to faustbench
  • add -bs option to soul-faust-tester and faustbench-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 and tablesize 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
Assets 7

@sletz sletz released this Jul 21, 2020 · 289 commits to master-dev since this release

This release is replaced by the 2.27.2 one.

Assets 2

@sletz sletz released this Jan 14, 2020 · 733 commits to master-dev since this release

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 and soul-faust-player tools

Deprecated

Fixed bugs

  • improve LLVM (backend + Interp) and wasm/wasm select implementation
  • correct faust2jackrust and faust2portaudiorust
  • 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 and faust2csvplot. 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 to pospass
  • new mi.lib library
  • name change: conj -> cconj
  • add ssbf and hilbert 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
Assets 7

@sletz sletz released this Apr 5, 2019 · 876 commits to master since this release

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 and faust2api
  • remove old iOS JACK code

Fixed bugs

  • correct CoreAudio architecture and JSON generation
  • correct gyroscope activation in faust2android, fix a bug in FaustPolyEngine::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)
Assets 7
Mar 5, 2019
Version 2.15.10.

@sletz sletz released this Jan 31, 2019 · 1012 commits to master since this release

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 several faust2xx 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.

Assets 6

@sletz sletz released this Mar 6, 2018 · 2143 commits to master-dev since this release

Latest version before official cmake based built system.

Assets 3

@agraef agraef released this Feb 11, 2018 · 2168 commits to master-dev since this release

Bugfix in the pattern matching evaluator, various other bugfixes (please check the git log for details), latest faust-mode (v0.6) from upstream.

Assets 3

@sletz sletz released this Jan 30, 2018 · 2192 commits to master-dev since this release

Latest version before cmake based built system.

Assets 3