GRAME - Centre National de Creation Musicale - is happy to announce the release of FAUST 0.9.65.
This release provides some extensions to the language, two new architectures : Android and Audio Units, enhanced libraries and a new hoa.lib (high order ambisonic) library, enhanced iOS and LV2 architectures, improved HTTP and OSC support, new examples (guitarix amplifiers)... ------------- About FAUST : ------------- FAUST (Functional Audio Stream) is a functional programming language specifically designed for real-time signal processing and synthesis. A distinctive characteristic of FAUST is to be fully compiled. The FAUST compiler translates DSP specifications into very efficient C++ code that works at sample level. The generated code is self contained and doesn't depend on any library or runtime. Moreover a same FAUST specification can be used to generate native implementations for most OS (Linux, OSX, Android, iOS) or platforms (LV2, Ladspa, VST, PD, Csound, SC,..) Faust distribution can be downloaded at: http://sourceforge.net/projects/faudiostream The GIT repository can be cloned with the following command : git clone git://git.code.sf.net/p/faudiostream/code faust To compile faust : make httpd (skip this step if you don't have GNU libmicrohttpd installed) make sudo make install Two mailing lists are available: https://lists.sourceforge.net/lists/listinfo/faudiostream-devel https://lists.sourceforge.net/lists/listinfo/faudiostream-users In order to test FAUST without installing it, please refer to the Online Faust Compiler : http://faust.grame.fr ======================== WHAT'S NEW ============================== ------------ iOS ------------ The iOS architecture has been improved and is now compatible with iOS 7. New metadata allow to map accelerometers to user interface widgets. ------------ Android ------------ A new architecture, contributed by Romain Michon from CCRMA, allows to develop audio applications for Android. It uses the same metadata as iOS to map accelerometers to user interface widgets. ------------ Audio Unit ------------ A new architecture, contributed by Reza Payami from CCRMA, allows to develop Audio Units for OSX. The custom user interface includes: - Normal Faust GUI horizontal and vertical box layout support - Normal Faust GUI widgets including hsliders, vsliders, hbargraphs, vbargraphs, knobs, buttons and checkboxes - Viewer support for hbargraph and vbargraph using Audio Unit Event Listening and automatically moving sliders - Save button for saving plugin state in Faust XML format ------------ OSC ------------ Improved OSC support. Faust applications compiled with the -osc option embed OSC support. With FAUST 0.9.65, applications have now also the possibility to send OSC messages (and therefore to be used as OSC controller). The transmission can be activated either when the application is started using the "-xmit 1" command line option, or later on, by sending to the application the osc message xmit 1. ------------ HTTP ------------ Improved HTTP support. Faust applications compiled with the -httpd option embed a small web server that allows to remotely control the faust application using any HTML5 capable web browser. The web page now reproduces a nice looking graphic user interface very similar to the QT one. The control's fluidity has been improved. The application can also display a QRcode to easily take control of it with a smartphone. ------------ LV2 ------------ A critical bug was fixed in the LV2 implementation which aims at providing LV2 support, both audio (pure signal processing) and instrument (MIDI -> audio) plugins. The full faust-lv2 package by Albert Gräf (U. of Mainz) is available here : http://code.google.com/p/faust-lv2/ --------------- Supercollider --------------- Improved supercollider architecture with modifications for supernova contributed by Fernando Lopez-Lezcano. ------------ Libraries ------------ - Improved filter.lib, oscillator.lib and effect.lib contributed by Julius Smith (CCRMA/Stanford U.). - A new harmonic exciter effect by Priyanka Shekar (CCRMA) has been added to effect.lib - a new library "hoa.lib" has been contributed by the CICM/U. Paris 8. It provides a set of functions for high order Ambisonics sound reproduction (encoder: encodes a signal in the circular harmonics domain; decoder: decodes an Ambisonics sound field for a circular array of loudspeakers; decoderStereo: decodes an ambisonic sound field for stereophonic configuration; optimBasic, optimMaxRe, optimInPhase: apply Ambisonics optimizations; wider: enlarges the diffusion of a localized sound; map : encodes a source with distance compensation; rotate : rotates the sound field). Web site: http://www.mshparisnord.fr/hoalibrary/en ------------ Examples ------------ Guitarix amplifiers. Thanks to code contributed by the Guitarix development team, the examples folder now contains Guitarix tube amp emulations. The faust-tubes folder contains the tube.lib, the tonestack.lib, and the tube tables with valve.h, which contain the foreign function, and an example tube preamp.dsp. --------------------------- Extensions to the language --------------------------- 1) extended syntax for foreign function declarations : The syntax for foreign function declarations has been extended to take into account the floating point precision in use (float, double and quad). It is now possible to give a different function name for each floating point precision using the construction: name1|name2|name3. Here is an example of declaration : asinh = ffunction(float asinhf|asinh|asinhl (float), <math.h>, ""); 2) inputs(exp) and outputs(exp) : These two new constructions give respectively the number of inputs and the number of outputs of a Faust expression. These constructions are useful to define high order functions and to build algorithmically complex block-diagrams. Here is an example to reverse the order of the inputs of an expression automatically. X(expr) = bus(n) <: par(i,n,selector(n-i-1,n)) : expr with { n=inputs(expr); }; 3) waveform : A waveform is a fixed periodic signal defined by a list of samples. A waveform has two outputs. The first output is constant and indicates the size (number of samples) of the period. The second output is the periodic signal itself. This design allows waveform to work nicely with tables. For example waveform {0,1,2,3} produces two outputs, the constant signal 4 and the periodic signal 0,1,2,3,0,1,2,3,0,1... --------------------------- New compiler's options --------------------------- A new compiler option '-I dir' add dir to the list of directory to search for components, library and imports. It is equivalent of gcc -I dir option. ---------------- Acknowledgments ---------------- Many persons have been contributing to the FAUST project by providing code for the compiler, architecture files, libraries, examples, documentation, scripts, bug reports, ideas, etc. We would like to thank them and especially: Fons Adriaensen, Jerome Barthelemy, Tim Blechmann, Tiziano Bole, Alain Bonardi, Baktery Chanka, Thomas Charbonnel, Raffaele Ciavarella, Julien Colafrancesco, Damien Cramet, Etienne Gaudrin, Olivier Guillerminet, Albert Graef, Pierre Guillot, Pierre Jouvelot, Stefan Kersten, Victor Lazzarini, Matthieu Leberre, Mathieu Leroi, Fernando Lopez-Lezcano, Kjetil Matheussen, Hermann Meyer, Romain Michon, Remy Muller, Eliott Paris, Reza Payami, Laurent Pottier, Sampo Savolainen, Nicolas Scaringella, Anne Sedes, Priyanka Shekar, Stephen Sinclair, Travis Skare, Julius Smith, Michael Wilson, as well as our colleagues at GRAME, in particular : Karim Barkati, Sarah Denoux, Olivier Guillerminet, Christophe Lebreton and Mike Solomon. Yann Orlarey, Stephane Letz and Dominique Fober GRAME ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ Faudiostream-devel mailing list Faudiostream-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/faudiostream-devel