FAUST Changelog

What's new in FAUST 0.9.67

May 20, 2014
  • 7cce0e5 Correct netjackaudio::process.
  • 6be9d61 Allow vsti-poly.cpp to be monophonic
  • 24090ee New netjackaudio_midicontrol in netjack-dsp.h.
  • e1a634a Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • ab13477 Restore working version of boxpp, since last commit was a bit early...
  • 68657e8 Hiddable sliders in faust2android
  • 21a2b65 Use net_format in net-jack.h
  • 83ee843 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • d61a2ab Switch to OPUS compression.
  • 3b65c2b Add export-dsp option.
  • fdcb183 Completely expand waveform.
  • a25b665 New -O option to specify output directory for C++ file and additional ressources.
  • 0175ba1 Added new faust2w32msp script allowing to cross compile maxmsp external for windows
  • 9a0ff65 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 88339a1 Added missing std lib.h include
  • d1095f3 Dependencies updated
  • 060314f Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 4aa41ca Missing include of stdio.h added to files.cpp
  • 443bc15 Back to CELT encoder.
  • 86799f6 removed useless dependency
  • a7a7d68 Force portrait orientation for Android apps
  • 09bbbe5 Force portrait orientation for Android apps
  • 665e52d OPUS encoder again.
  • d1de9ac Remove unused global.
  • 47dda00 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 8f849d2 Correct 'declare' method in jsonui.
  • dc926cf Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • d35c729 More generic jack-dsp.h and netjack-dsp.h files.
  • 4b0f9fe Rework start/stop logic in audio architectures.
  • 8f96441 Correct netjack-dsp.h.
  • 37074f1 Correct memory management in GUI.h and several architecture files.
  • 64a5d74 Add GUI_MEMORY_MANAGER flag.
  • 9d514cc Correct OSCUI.h.
  • 57c2279 Remove GUI_MEMORY_MANAGER for now.
  • 0c960cf Correct memory management in GUI.h
  • f6a9c40 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 8733d0f Update LV2 architectures to new atom extension.
  • 2301c54 Correct GUI.h
  • b7da6a6 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 5707bf3 new '--in-place' generates code working when input and output buffers are the same. This option works only with the scalar mode. It is incompatible with vector and parallel modes.
  • 7009486 merged new in-place option
  • 3f93af8 Add 'in-place' documentation.
  • 2e0a18f Rework sound2faust converter.
  • 74b00f2 Correct sound2faust Makefile.
  • 930db66 Correct sound2faust.
  • 1c74634 Correct parser to handle float with the 'f', correct sound2faust.
  • 1f65ffd Revert last commit on sound2faust : 'f' for float is not needed.
  • 4697950 Correct ScalarCompiler::generateWaveform, generateCacheCode was missing.
  • ebf5e7f waveform sag representation added
  • a4d0640 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 1183bdc Correct VectorCompiler::generateWaveform.
  • 8415412 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • d7fa1d5 Improve sound2faust.
  • 27de7b8 Simplify sound2faust: now generated all possible ouputs in a same DSP.
  • 66761ae Accelerate waveform parsing.
  • 2dd796e New dsp_adapter class.
  • 4919889 Android architecture modified to start and stop audio task on onStart() and onStop(). OSC reception (temporary) removed to avoid blocking other Faust applications.
  • 1eb7393 Correct coreaudio-ios-dsp.h to allow any number of input/output.
  • 1b94c23 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 503fe5f Android: register sensor listener only in onResume()
  • 52df169 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 2bd2ec4 Add missing include.
  • 546e34d Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 95f7313 Correct Max/MSP architecture files.
  • 0cff9b9 Simplify CreateLabel in Max/MSP architecture files.
  • a43748f Separate dsp_adapter in another file.
  • 53e636c Add missing file.
  • 14f88c3 Correct dsp_adapter.h
  • 03ebd32 Preliminary support for OWL pedal (hoxtonowl.com). It contains the file architecture owl.cpp and the script faust2owl. The command 'faust2owl foo.dsp' will create a file fooPatch.hpp ready to insert into owl's firmware source.
  • a1b897b Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • adaaa3a silence compiler warning for supercollider.cpp
  • 37e8177 Static version for sound2faust.
  • e9a326a Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 6aebd19 Portaudio adaptated
  • ccfdde5 Portaudio adaptated
  • 323f120 vstUI extends UI class instead of redefining
  • f22349d Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 21ffada QrCode in faustqt changed
  • 695a099 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 7e21e9d Use underscore to generate expanded filename.
  • 2ea3027 Fix problem in pow code generation. Version set to 0.9.66
  • bcb0999 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 47cd2ab fix pretty-printing of floats
  • 5349ce4 Small modification to void faust2android to stop when running on faust server
  • 68fe7ad Print improved instructions for OWL
  • bba6cfb Osc changes - error callback
  • ebbabe2 sound2faust now read sample as double by default.
  • a09c47b Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • d6df461 Osc merge
  • 4ff1e19 Fix OSCUI.
  • 66d5bb2 display QRCode modified
  • dc7ccc1 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 9fa67e6 Fix qt compilation on OSX
  • aa95f9e Correct faustqt.h.
  • 1ae6c96 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • fd5e80f Correct faustqt.h.
  • e74b73b revise triangle-wave scaling in oscillator.lib to give approximately unit peak amplitude
  • 091ee07 Correct netjack-dsp.h.
  • 0992d4a Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 189acbc Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • f329bd6 Correct TCoreAudioSharedRenderer : now use current buffer_size if the value cannot be changed.
  • 89aee7b CoreAudio code now correctly switch to new default device if dynamically changed.
  • 0d24812 Remove unused header.
  • 9794205 Cleanup.
  • 311d013 Synch with faust2 branch.
  • 53f78c7 Init variables in OpenDefault.
  • 55f709b Correct CreateAggregateDevices.
  • baf0ea4 Cleanup.
  • 9062493 Fix bug in -inpl (in place) option by adding a new forceCacheCode method in scalar compiler
  • 54a54f3 version number set to 0.9.67
  • 58f4b14 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • e22ea24 added all four direct-form biquad structures to filter.lib; new phase-controllable quadrature oscillator in oscillator.lib
  • 642e6c8 Fix qrcode URL
  • e34297e Correct TCoreAudioRenderer.
  • 21e3d49 (Brendan Adamson) fix hz2pianokey typo
  • f1d2d17 Special case for JackRouter in TCoreAudioRenderer.
  • 19095f1 Fix VST on OSX by adding arch i386
  • 2df3923 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 825c607 Undefine #DEBUG to not trace by default from vsti-poly.cpp
  • d341248 Removed DEBUG from vstui.h to prevent traces by default
  • 5975f62 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 3eb8774 New JSONUI class.
  • 6c23a3e VSTi: avoid dynamic allocation of output buffer pointers
  • 5d59410 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 0e3cb47 Typos in documentation.
  • 4762544 Correct JSONUI.
  • 6e5d0ed Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • c15fba2 New faust2webaudioasm.
  • 320965a Add missing header in webaudio-asm.cpp.
  • efe61fd Correct JSONUI.
  • 6e0f5f0 Correct jsoncontrol.h.
  • 8094eef Fix faust2webaudioasm.
  • 4cfbffe faust2webaudioasm : more WEB audio API oriented.
  • dd31e13 Make JSONUI generate name tag.
  • 644a738 faust2webaudioasm : now inline all JS ressources to have Firefox working.
  • 6ca7aae faust2webaudioasm : now inline all JS ressources to have Firefox working(2).
  • eb2738e Use --pre-js option in emcc.
  • d65a3de Raise TOTAL_STACK in emcc compilation for asm.js.
  • f1fa55d faust2webaudioasm: audio input now activated.
  • da220d5 New MapUI class with setValue/getValue to access parameters.
  • 869c5f7 faust2webaudioasm : simplify compute.
  • 05fbe57 Add meta management in JSONUI.
  • 989a82c faust2webaudioasm : bargraph handling in progress.
  • 8924619 faust2webaudioasm : bargraph now working.
  • 37007c0 Correct JSONUI.
  • cd1db5b Check nouts doesn't exceed preallocated limit
  • 1d6d978 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 6c4144b Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • a3b39fe faust2webaudioasm : correct issue with audio input.
  • 36bb32e Add faust2asm script.
  • 527489d faust2webaudioasm : correct 'equal' operator.
  • cd0b21e faust2webaudioasm : add Web MIDI API code.
  • ea9e271 faust2webaudioasm : connect all possible MIDI inputs.
  • b304cc4 faust2webaudioasm : add polyphonic instrument.
  • 9f7b5df add cherset utf8 in html page
  • e8d2410 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 64aa578 faust2webaudioasm : dynamic polyphony.
  • 8c11fb6 Use std namespace for iostream functions in plot.cpp.
  • 18688fe faust2webaudioasm : check MIDI input activation.
  • 342161e added faust2webaudiopkg tool
  • bde8a1b Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 99d4312 faust2webaudioasm : better separate polyphonic case.
  • 606829e Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 8e0bf88 faust2webaudioasm : dynamic output audio buffers.
  • 19286e7 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • 04c96f8 Add -poly option in faust2asm.
  • b01bacc added missing faust2webaudiopkg tool
  • c6e8666 Merge branch 'master' of ssh://git.code.sf.net/p/faudiostream/code
  • a9209f7 added webaudio-asm-footer with code and diagram links
  • b884639 Remove faust2webaudiopkg, add '-links' in faust2webaudioasm.
  • a61931c Correct 'tools' Makefile.
  • ac1eb60 faust2webaudioasm : add buffer_size menu.
  • 80f0ae1 faust2audioasm : improve activateAudioInput.
  • 26834db Correct sound2faust.
  • abf5829 Handle file:// urls as local files. Fix scanning problem with Flex.
  • caba824 Fix ‘http://' prefix
  • 419ce04 handle http:// and file:// in a more centralized way
  • 43b200b fix strstr
  • 484664e OSC exceptions catch modified
  • 11736da runtime_error in osc corrected
  • 354f3e5 vstui: fix include for case-sensitive filesystems
  • d03722d linux-VST: add missing include for standard C string functions
  • c5ed59a VSTi: set label in call to effGetParameterProperties
  • 8797fd6 faust2asm and faust2webaudioasm modified to follow faustworks convention of listing produced files at the end of the execution
  • 459c866 Old -verbose option removed

New in FAUST 0.9.46 (Jan 9, 2012)

  • Provides several fixes, additions and improvements in particular in the examples, libraries and architecture files.

New in FAUST 0.9.30 (Nov 20, 2010)

  • improved error messages for non constant-integer table sizes
  • getBoxType now only always called on fully evaluated expressions
  • in propagation normal form.
  • missing boxtype for pattern matching variables added
  • Bitmask : new implementation correcting bug for large values
  • some recursive call to simplify have been removed to avoid
  • potential infinite loops during the simplification of some
  • expressions

New in FAUST 0.9.24 (May 17, 2010)

  • Explicit substitutions. The language has been extended with new expressions type : exp[x1=def1; x2=def2; ...] allowing explicit substitutions in the lexical environment of an expression. This extension allows for instance, to customize an existing component by replacing some of its internal definitions without having to modify its source code. This extension is particularly useful to promote better code reuse.
  • Improved mathematical description (--mathdoc option) and support for two new languages : German (-mdlang de) and Italian (-mdlang it)
  • Support for floating point numbers in scientific notation and better precision for floating point constants. The precision used to print a floating point constant in the generated C++ code is no more limited to 6 digits. It is now dynamically adjusted to find the minimal number of digits that will produce the same internal representation when read back. This approach guarantees accuracy without sacrificing for readability.
  • All expressions are now systematically represented in polynomial forms. For example x*x will be replaced by x^2. If x is a complex expression the later form has several advantages, in particular to limit CSE.
  • Lazy semantics to select2 and select3 : the code generated for select2 and select3 is now based on conditional expressions ((cond)?exp1:exp0 ) instead of tables. The resulting code is more efficient as the stateless parts of the branches are not computed every time but only when really needed.
  • new --task-graph option. It produces a graphical representation of the internal DAG of task in dot format (Graphviz http://www.graphviz.org/). This DAG is useful for example to understand the potential parallelism of a program as analyzed by the Faust compiler
  • Two new tools : faust2graph and faust2graphviewer. These tools make use of the --task-graph option in order to produce the graphical representation, as a PDF file, of the internal DAG of tasks of a Faust program (require Graphviz).
  • new reduce.lib library. It provides various operations on block of samples based on a high order 'reduce(op, n)' fold-like function. Moreover the music.lib library has been extended with break-point functions and multiple decorrelated random and noise generators. New flanger and stereowidth control have been added to the effect.lib library.
  • new iPhone architecture. It consists in a iphone-cocoa.cpp architecture file and an Xcode template project to be used to produce the applications. Use "make iphone" in the example folder to build the examples for the iPhone.
  • improved cross plateform compatibility and brand new visual studio 2008 project to build Faust on windows machines.
  • Bug Fixes:
  • Report error when non-integer table size is detected during compilation
  • Corrected partial application of power operator. Now ^(n) is equivalent to \(x).(x^n) and not anymore to \(x).(n^x)
  • Added missing faustpower definition when power function is used only in table content.
  • Fixed lock-free implementations of PopHead and PopTail functions on work stealing queues in --scheduler mode
  • Corrected missing dependencies in the internal DAG of tasks
  • Added missing cache code to slow shared expressions used delayed
  • Added missing cache code to foreign functions

New in FAUST 0.9.22 (Apr 29, 2010)

  • C++ Code Generation
  • Mathematical Documentation
  • Language Extensions

New in FAUST 0.9.9.10 (Jan 25, 2010)

  • C++ Code Generation:
  • The Faust compiler translates Faust programs in C++. Several new options have been added to control how the C++ code is generated, in particular : control of the floating point precision : single (default), double, quad code re-organization in simple loops to facilitate automatic vectorization automatic parallelization based on OpenMP automatic parallelization based on a specific "Work-Stealing" algorithm
  • Mathematical Documentation:
  • Using formal methods the Faust compiler can produce automatically a complete mathematical documentation of a Faust program. This mathematical documentation is generated in Latex. It includes equations, block-diagrams and listings. The documentation can be customized by the user via ... tags inserted in Faust programs. This documentation can be used to : preserve on the long term a Faust program in a purely mathematical form, independently from Faust or any other programming language bring some help to understand and debug a FAUST program by giving the equations of each output signals according to the input signals and the user interface parameters.
  • Language Extensions:
  • Sequential composition operator (A:B) has been restricted to expressions so that outputs(A) = inputs(B). This restriction has several advantages. It improves error detection, makes the code easier to understand and provides nicer and simpler formal semantic ( A:B is B o A) User interface labels can now contain metadata. For example the label "volume[unit:dB][tooltip:control the output volume of the reverb]" contains two metadata, a unit definition and a tooltip message than can be exploited by an architecture file to fine tune the user interface. User interface labels can contain absolute and relative pathnames to better control the hierarchical structure of the user interface. For example the label "../volume" points to place the widget one group higher in the hierarchy.
  • New Audio Architectures:
  • Several new audio architectures have been included, in particular Action Script, CoreAudio, CSOUND, Chuck, Pure, SND-RT, for a total of about 20 different plateforms now supported.

New in FAUST 0.9.9.4 (Apr 2, 2008)

  • Syntax modification allowing unary operator - with identifiers (-x is now
  • allowed)
  • Parametric string can now contain the number of digits to use. In the string
  • "line %2i" %2i will be replaced by the value of i using at least 2 digits.
  • New fvariable declaration : possibility to declare an external C variable of
  • block variability.
  • Redefinition of symbols is now considered an error instead of a simple warning
  • New syntax highlighting for TextWrangler (Macintosh)
  • snd-rt-gtk.cpp: a new architecture file to use Faust with snd-rt. (Contributed
  • by Kjetil Matheussen)
  • synthfile.cpp: a new architecture file to generate audio files (contributed by
  • Dominique Fober)
  • osc.lib: a new oscillator library containing fast filter-based oscillators
  • (contributed by Julius Smith)
  • new additions to filter.lib and effect.lib : Piano dispersion filter,
  • fifth-order fdelay5, notch filter, Second order transformer-normalized digital
  • waveguide resonator... (contributed by Julius Smith)
  • Improved jack-gtk.cpp architecture file allowing to control the default
  • connexions and to run several instances of the same program (contributed by Fons
  • Adriaensen)
  • Huge speedup of type inference system for complexe expressions by using
  • memoization and recursivness information
  • Bug correction in the type inference system of recursive expressions
  • Better sharing of slow expressions apprearing delayed
  • Avoid division by zero and report error when block-diagrams with no inputs or
  • outputs are used in merge and split compositions
  • The Faust compiler and some of the architecture files have been updated to
  • replace char* parameters by const char* when appropriate