File: WHATSNEW

package info (click to toggle)
faust 0.9.24-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 13,240 kB
  • ctags: 8,553
  • sloc: cpp: 38,983; ruby: 817; makefile: 688; sh: 598; objc: 476; yacc: 464; ansic: 405; lex: 201; xml: 177
file content (143 lines) | stat: -rw-r--r-- 5,497 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143

							================
							| FAUST 0.9.24 |
							================

GRAME - Centre National de Creation Musicale - is happy to announce
the release of FAUST 0.9.24. This version fixes several bugs,
and introduces some new possibilities in the language.

-------------
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. It targets
high-performance signal processing applications, libraries and
audio plug-ins for a variety of audio platforms and standards. A
same FAUST specification can be used to easily generate native
JACK or ALSA applications, as well as CSOUND, LADSPA, MAX/MSP, PD,
Q, SC and VST plugins.  

The Faust distribution can be downloaded at:
http://sourceforge.net/projects/faudiostream

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 :
------------

- 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


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

I would like to thank them and especially: Fons Adriaensen, Tiziano
Bole, Baktery Chanka, Thomas Charbonnel, Damien Cramet, Etienne
Gaudrin, Albert Graef, Stefan Kersten, Victor Lazzarini, Matthieu
Leberre, Mathieu Leroi, Kjetil Matheussen, Remy Muller, Sampo
Savolainen, Nicolas Scaringella, Stephen Sinclair, Travis Skare,
Julius Smith, as well as my colleagues at GRAME, in particular :
Dominique Fober, Stephane Letz and Karim Barkati, and from the
ASTREE project : Jerome Barthelemy (IRCAM), Alain Bonardi (IRCAM),
Raffaele Ciavarella (IRCAM), Pierre Jouvelot (Ecole des
Mines/ParisTech), Laurent Pottier (U. Saint-Etienne)

Yann Orlarey
GRAME