Refactoring of Signal class by adding a rate class.
[Faustine.git] / interpretor / preprocessor / faust-0.9.47mr3 / examples / faust-stk / README
1 FAUST SYNTHESIS TOOLKIT: A SET OF LINEAR AND NONLINEAR PHYSICAL MODELS FOR FAUST
2
3 CIEREC, EA 3068 Center for Computer Research in Music and Acoustics
4 Université Jean Monnet and (CCRMA) Stanford University
5 F-42023, Saint-Etienne, France Palo Alto, CA 94305, USA
6
7
8
9 1/ What is it?
10 --------------
11
12 The FAUST Synthesis ToolKit is a set virtual musical instruments written in the FAUST
13 programming language and based on waveguide algorithms and modal synthesis. Most of them
14 were inspired by instruments implemented in the Synthesis ToolKit and the program SynthBuilder.
15
16 The STK is developed since 1996 by P. R. Cook and G. P. Scavone. It is a set of open
17 source audio signal processing and algorithmic synthesis classes written in the C++ programming
18 language that can be used in the development of music synthesis and audio processing
19 software (https://ccrma.stanford.edu/software/stk/).
20
21 On the other hand, SynthBuilder was a program used at Stanford's CCRMA (Center for Computer Research
22 in Music and Acoustics) in the nineties to implement physical models of musical instruments. Most
23 of its algorithms use the waveguide synthesis technique but some of them are also based on modal synthesis.
24
25 Our attention has partly been focused on the pedagogical aspect of the implemented objects. Indeed,
26 we tried to make the FAUST code of each objects as optimized and as expressive as possible.
27
28 Some of the instruments in the (FAUST-STK) use nonlinear allpass filters to create interesting and
29 new behaviors. Also, most of them can be used with gesture following datas (see the /gesture-following folder
30 for some examples).
31
32 2/ Which instruments?
33 ---------------------
34
35 WIND INSTRUMENTS
36
37 - A simple clarinet (clarinet.dsp),
38 - A clarinet with a tone hole model (blowHole.dsp),
39 - A flute (flutestk.dsp),
40 - A pan-flute (flute.dsp),
41 - A brass instrument that can be used as a trumpet, a trombon, a french horn, etc. (brass.dsp),
42 - A simple saxophone (saxophony.dsp),
43 - A bottle where it is possible to blow threw the neck to make sound (blowBotle.dsp).
44
45 STRING INSTRUMENTS
46
47 - An acoustic finger bass (bass.dsp),
48 - A bowed string instrument that can be used as a cello, a violin, etc. (bowed.dsp),
49 - A simple sitar (sitar.dsp),
50 - A nonlinear extended Karplus-Strong (NLFeks.dsp).
51
52 KEYBOARDS INSTRUMENTS
53
54 - A piano that uses commuted waveguide synthesis (piano.dsp),
55 - An harpsichord (harpsi.dsp).
56
57 PERCUSSION INSTRUMENTS
58
59 - A tibetan bowl (tibetanBowl.dsp),
60 - A wooden bare (uniBar.dsp),
61 - An iron bare (tunedBar.dsp),
62 - A glass bare (glassHarmonica.dsp),
63 - A set of percussion instruments that use modal synthesis (modalBar.dsp).
64
65 OTHER
66
67 - A voice synthesizer (voiceForm.dsp),
68 - A FM synthesizer that uses an nonlinear allpass filter (NLFfm.dsp).
69
70 3/ Organisation of the distribution and remarks
71 -----------------------------------------------
72
73 Most of the instruments implemented in the FAUST-STK use functions declared in instrument.lib so
74 this file is required for compilation. Also, a few instruments use datas that are stored in external
75 C++ functions (.h).
76
77 The "pd-patches" folder contains examples of use of the FAUST-STK instruments in PureData (faust2pd
78 needs to be install on your computer to use these examples).
79
80 The FAUST-STK instruments are all monophonic. If you wish to make them polyphonic, we recommend you
81 to compile them for PureData and to use faust2pd ("make pdpoly2" or "make pdpoly4" or "make pdpoly6" or
82 "make pdpoly8" where 2, 4, 6 and 8 are the number of voices). For more informations about that,
83 you can look at the examples in the pd-patches/ folder.
84
85 You can find in the gesture-following/ folder an improved version of bowed.dsp that uses gesture following
86 datas in PureData (first, type "make" in a terminal and then open playMe.pd). This work has been done with
87 the help of E. Maestre (MTG, Barcelona).
88
89 The instruments from the Faust-STK have been tested with the OSC support for FAUST implemented with some
90 of the architecture files (jackqt, jackgtk, etc.).
91
92 3/ How to compile?
93 ------------------
94
95 In order to compile the instruments, the latest FAUST repository must be installed on your computer
96 (03/21/2011) as well as all the required dependencies for the FAUST architecture you wish to use.
97
98 Type "make help" in a terminal to print the list of available architectures and to know how to compile
99 the examples.
100
101 4/ Acknowledgments
102 ------------------
103
104 This work has been carried out in the frame of the ASTREE project (Analyse et Synthèse Temps REEl),
105 supported by the Agence Nationale de Recherche (ANR-08-CORD-003) at Stanford's CCRMA (Center for
106 Computer Research in Music and Acoustics).
107
108 Special thanks to J.O. Smith, Y. Orlarey, E. Maestre, S. Letz and L. Pottier for their support and help.
109
110 Thanks also to my colleagues from the CCRMA team for all their suggestions and good ideas.
111
112 5/ Questions and suggestions
113 ----------------------------
114
115 About FAUST-STK: rmichon@ccrma.stanford.edu or rmnmichon@gmail.com
116
117 About FAUST: https://lists.sourceforge.net/lists/listinfo/faudiostream-users
118
119
120
121
122 Romain Michon