65
Introdu¸c˜ ao a Faust Gilmar Dias Andr´ e J. Bianchi 22/11/2012

Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Introducao a Faust

Gilmar Dias Andre J. Bianchi

22/11/2012

Page 2: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem

Exemplos

Conclusao

Page 3: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem

Page 4: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

FAUST - Functional AUdio STream

I E uma linguagem de especificacao (de processadores desinais).

I Compilada: FAUST -> C++ -> binarios executaveis.

I Opera no nıvel amostral.

I Semantica simples e bem definida.

I Orientada a diagramas de bloco utilizando programacaofuncional.

I Pode ser utilizado em diversas “arquiteturas”.

I Descreve um processador de sinais.

Page 5: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

IDE Experimental - FaustWorks

Requisitos:

I Faust

I Qt4

Download:

I http://faust.grame.fr/

Instalacao:

$ qmake-qt4

$ make

Page 6: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Estrutura de um programa

Expressoes:

I Bloco primitivo.

I Combinacao de expressoes via operadores de composicao.

I Representa um diagrama de blocos.

Definicoes:

I Identifiacao de expressoes:

nome_do_bloco = express~ao ;

I O nome do bloco deve comecar com letra, pode ter sımbolose ‘ ’.

Page 7: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Estrutura de um programa

Figure: Definicoes em um diagrama de blocos

Page 8: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Estrutura de um programa

Programa em Faust: sequencia desordenada de definicoes.

I Apenas uma definicao e obrigatoria:

process

Comentarios:

I Como em C/C++

//, /* ... */

Page 9: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Estrutura de um programa

Exemplo:

1 declare name "noise";

2 declare copyright "(C)GRAME 2006";

3

4 import("music.lib");

5

6 // noise level controlled by a slider

7 process = noise * vslider("volume", 0, 0, 1, 0.1);

Page 10: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - PrimitivasBlocos de conexao (plug boxes):

I Identidade ( ).

Figure: Bloco identidade

I Corte (!).

Figure: Bloco corte

Page 11: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Primitivas

Operadores matematicos:

I Aritmeticos (+, -, *, / e %).

Figure: Blocos de operadores aritimeticos

I Comparacao (<=, >=, <, >, == e !=).

Page 12: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Primitivas

I Operadores bit a bit (<<, >>, &, | e ^).

I Constantes:

I Literais em C++I int: ‘#’, float: ‘#.#’

Page 13: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Primitivas

I Conversoes de tipo em Faust (casting):

Figure: Conversoes de tipo em Faust

I Funcoes estrangeiras:

ffunction(prototipo, include, biblioteca)

Page 14: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Memorias

Figure: Atraso simples

Page 15: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Memorias

I Tabela somente de leitura

Page 16: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Memorias

Figure: Tabela de leitura e escrita

Page 17: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Primitivas

Figure: Chaves de selecao: select2 e select3

Page 18: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Interface grafica com o usuario

Figure: Botao - button("label")

Page 19: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Interface grafica com o usuario

Figure: Checkbox: checkbox("label")

Page 20: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Interface grafica com o usuario

Figure: Sliders: hslider("label", inicio, fim, max, passo)

Page 21: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Interface grafica com o usuario

Figure: Entrada numerica: nentry("label", inicio, fim, max,

passo)

Page 22: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Primitivas - Interface grafica com o usuario

I Grupos hgroup, vgroup, tgroup

Figure:

tgroup("Sliders", (A,B,C))

Page 23: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicaoI Serial (:)

Figure: Operador serial

Page 24: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Serial (:)

Figure: Operador serial

Page 25: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Serial (:)

Figure: Operador serial

Page 26: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Paralelo (,)

Figure: Operador paralelo

Page 27: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Split (<:)

Figure: Operador split

Page 28: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Split (<:)

Figure: Operador split

Page 29: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Split (<:)

Figure: Operador split

Page 30: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Merge (:>)

Figure: Operador merge

Page 31: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Operadores de composicao

I Recursivo (~)

Figure: Operador recursivo

Page 32: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Operadores de composicao

I Recursivo (~)

Figure: Operador recursivo

Page 33: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Precedencia de operadores

Figure: Precedencia

Page 34: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Precedencia de operadores

Figure: Precedencia

Page 35: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

A linguagem - Abstracoes

Figure: Abstracoes

A(x,y) = (x,y):(y,x)

B = ...

C = ...

D = A(B,C)

Page 36: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Acucar sintatico

Operadores matematicos podem ser usados de forma mais simples:

A/B = (A,B) : /

/(A) = (_,A) : /

Page 37: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Exemplos

Page 38: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Exemplo 1

Onda quadrada

Page 39: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda quadrada: blocos basicos

Figure: Um contador de 0 ate N-1

Page 40: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda quadrada: blocos basicos

Figure: Gerador de onda quadrada.

Page 41: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda quadrada: sliders

Elementos de interface grafica:

vslider(str, cur, min, max, step)

hslider(str, cur, min, max, step)

Page 42: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda quadrada: codigo

1 // A square wave oscillator

2 //---------------------------------

3 T = hslider("Period",1,0.1,100.,0.1); // Period (ms)

4 N = 44100./1000.*T:int; // The period in samples

5 a = hslider("Cyclic ratio",0.5,0,1,0.1); // Cyclic ratio

6 i = +(1)~%(N):-(1); // 0,1,2...,n

7 process = i,N*a : < : *(2) : -(1) ;

Page 43: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda quadrada: demo

Demonstracao:

./square -cyclicratio 0.5 -n 44100 -period 100

Page 44: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Exemplo 2: Onda senoidal

Page 45: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: blocos basicos

Figure: Tempo discreto: 0, 1, 2, 3, . . .

Page 46: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: blocos basicos

Figure: Forma de onda senoidal

Page 47: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: blocos basicos

Figure: Calculo da fase

Page 48: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: leitura de tabela

Figure: Forma de onda senoidal

Page 49: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: codigo

1 //-----------------------------------------------

2 // Sinusoidal Oscillator

3 //-----------------------------------------------

4 // Mathematical functions & constants

5 //------------------------------------

6 sin = ffunction(float sin (float), <math.h>, "");

7 floor = ffunction(float floor (float), <math.h>, "");

8 PI = 3.1415926535897932385;

Page 50: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: codigo

1 // Oscillator definition

2 //--------------------------

3 tablesize = 40000 ;

4 samplingfreq = 44100. ;

5 time = (+(1)~_) - 1; // O,1,2,3,...

6 sinwaveform = time*(2*PI)/tablesize : sin;

7 decimal = _ <: -(floor);

8 phase(freq) = freq/samplingfreq :

9 (+ : decimal) ~ _ : *(tablesize) : int ;

10 osc(freq) = phase(freq) : rdtable(tablesize,sinwaveform);

Page 51: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: codigo

1 // User interface

2 //----------------

3 vol = hslider("volume", 0, 0, 1, 0.001);

4 freq = hslider("freq", 400, 0, 15000, 0.1);

5 //----------------

6 process = osc(freq) * vol;

Page 52: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Onda senoidal: demo

Demonstracao:

./sineosc -freq 440 -n 44100 -volume 1

Page 53: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Exemplo 3: Gerador de ruıdo aleatorio

Page 54: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Gerador de ruıdo aleatorio: codigo

1 //-----------------------------------------------

2 // Two noises compared

3 //-----------------------------------------------

4

5 RANDMAX = 2147483647;

6

7 random1 = ffunction(int random (), <stdlib.h>, "");

8 noise1 = (random1 << 1) * (1.0/RANDMAX);

9

10 random2 = (*(1103515245)+12345) ~ _ ;

11 noise2 = random2 * (1.0/RANDMAX);

12

13 compare(a,b) = (a*(1-button("Switch")) +

14 b*button("Switch"));

15

16 process = compare(noise1, noise2) *

17 hslider("volume", 0, 0, 1, 0.01) <: _,_ ;

Page 55: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Gerador de ruıdo aleatorio: demo

Demonstracao: comparacao de graficos e som.

Page 56: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Exemplo 4: Karplus Strong

Page 57: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Karplus Strong: demo

Demonstracao: tosco e bem feito.

Page 58: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Exemplo 5: Freeverb

Page 59: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Freeverb: codigo

1 monoReverb(fb1, fb2, damp, spread)

2 = _ <: comb(combtuningL1+spread, fb1, damp),

3 comb(combtuningL2+spread, fb1, damp),

4 comb(combtuningL3+spread, fb1, damp),

5 comb(combtuningL4+spread, fb1, damp),

6 comb(combtuningL5+spread, fb1, damp),

7 comb(combtuningL6+spread, fb1, damp),

8 comb(combtuningL7+spread, fb1, damp),

9 comb(combtuningL8+spread, fb1, damp)

10 +>

11 allpass (allpasstuningL1+spread, fb2)

12 : allpass (allpasstuningL2+spread, fb2)

13 : allpass (allpasstuningL3+spread, fb2)

14 : allpass (allpasstuningL4+spread, fb2)

15 ;

Page 60: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Freeverb: codigo

1 stereoReverb(fb1, fb2, damp, spread)

2 = + <: monoReverb(fb1, fb2, damp, 0), monoReverb(fb1, fb2, damp, spread);

Page 61: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Freeverb: demo

Demonstracao: FaustWorks e LADSPA.

Page 62: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Conclusao

Page 63: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Outros exemplos

I capture.

I dbmeter.

I echo.

I noise.

I multiband-filter.

Page 64: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Outras arquiteturas

I Alsa + {GTK,QT}I Csound

I iPhone

I jack {GTK,QT}I Ladspa

I lv2

I Max MSP

I Octave

I OSS

I Pure Data

I VST

I . . . e muitas outras.

Page 65: Introdução a Faust - compmus.ime.usp.brcompmus.ime.usp.br/sites/ime.usp.br.compmus/files/faust-intro_0.pdf · FAUST - Functional AUdio STream I E uma linguagem de especi ca˘c~ao

Fim!

Obrigado pela atencao!

I Faust: http://faust.grame.fr/

I Contato: {grodias,ajb}@ime.usp.br

I Grupo de Computacao Musical do IME/USP:http://compmus.ime.usp.br/