Académique Documents
Professionnel Documents
Culture Documents
http://www.kgw.tu-berlin.de/~abart/CMaskMan/CMask_Download.html
ftp://ftp.kgw.tu-berlin.de/pub/cmask/
Cmask è freeware.
1
2
Concetti basilari
Parametrizzazione e processi
Un campo ha una durata determinata dal tempo iniziale e finale. I valori di ogni
parametro p1, p2, p3, … pn all’interno di questo intervallo di tempo possono
essere generati e processati in differenti maniere. Innanzitutto uno dei
generatori (vedi sotto) produce un valore. Questo può essere un valore
casuale, periodico, o da una lista di numeri stabiliti. Il valore può essere
processato o modificato attraverso un numero di moduli sino a tre (maschera di
tendenza, quantizzazione, accumulazione).
Con il modulo di maschera di tendenza i valori saranno rimappati all’interno di
un dominio variabile nel tempo – la maschera di tendenza.
La quantizzazione aggiusta i suoi valori in ingresso (da una maschera di
tendenza o da un generatore) all’interno di una griglia variabile nel tempo.
L’ultimo modulo, l’accumulatore, somma tutti i valori insieme. Questi tre
moduli modificatori sono opzionali.
3
La maggior parte dei moduli possono essere controllati da parametri speciali.
Questi parametri di controllo possono essere costanti o variabili nel tempo. I
parametri variabili saranno descritti come segmenti di funzioni.
Segmenti di funzioni
4
interpolazione con un esponente negativo (= concavo):
interpolazione lineare:
interpolazione half-cosine:
nessuna interpolazione:
5
Generatori casuali e distribuzioni di probabilità
distribuzione uniforme:
distribuzione lineare:
6
distribuzione triangolare:
distribuzione esponenziale:
7
distribuzione gaussiana:
distribuzione cauchy:
distribuzione beta:
distribuzione weibull:
8
Oscillatori
funzione seno:
funzione coseno:
9
funzione a dente di sega discendente:
10
Liste
Maschere di tendenza
Una maschera è un’area delimitata da due bordi (variabili nel tempo). I numeri
prodotti da un precedente generatore casuale (rnd) o oscillatore (osc) sono
rimappati all’interno di questo campo.
I limiti superiori e inferiori della maschera possono essere costanti o riportabili
ad un segmento di funzione.
11
Questo esempio descrive una generazione casuale uniforme per p4
(frequenze?) e una maschera di tendenza. Il campo di valori della maschera al
tempo corrispondente a 2 secondi è {100...240}, per cui i numeri casuali sono
distribuiti tra 100 e 240. Il campo di valori si espande a {70...310} a 6 secondi,
e si restringe al singolo valore 240 a 11 secondi.
p4 rnd uni
mask 10 20
p4 range 10 20
p4 rnd uni
12
mask 10 10
p4 const 10
p4 rnd uni
mask (3 10 5 20 7 10) (3 10 5 20 7 10)
p4 seg (3 10 5 20 7 10)
Trasformazione matematica
13
originarie. Una funzione quadratica trasforma i valori 0.0, 0.1, 0.5 e 0.8 a 0.0,
0.01, 0.25 e 0.64.
Una funzione radicale quadrata, per esempio, trasforma i valori a 0.0, 0.316 … ,
0.707 … e 0.894 …
Nel campo [2, 6] questo diviene 2.0, 3.264 … , 4.828 … e 5.577 …
La funzione di trasformazione matematica in Cmask è
Per molti parametri di sintesi la funzione lineare sarà la scelta più adeguata.
Ma se vogliamo generare frequenze distribuite uniformemente da usarsi in
oscillatori audio, tra 100 e 800 Hz per esempio, esse si distribuiranno
equamente in quel campo di valori, ma ascolteremo mediamente frequenze più
acute. In questo esempio la metà di tutte le frequenze casca nel campo di
valori 450 … 800 Hz, cioè circa un’ottava. L’altra metà (100 … 450) comprende
più di due ottave. Quindi le altezze dell’ottava più grave saranno più rare
rispetto alle altezze dell’ottava più acuta. Per risolvere il problema della
relazione logaritmica tra frequenza e altezza possiamo usare valori espressi in
oct o in cent invece dei valori delle frequenze, oppure usare come
approssimazione una distribuzione esponenziale invece che uniforme. La terza
via è quella di usare una funzione radicale come funzione di trasformazione
matematica.
Abbiamo un caso simile con le differenze temporali e le durate. Intervalli di
tempo o durate distribuite uniformemente saranno percepiti preferenzialmente
come intervalli temporali e durate più estese.
Quantizzazione
La quantizzazione è la distanza tra due punti vicini nel campo di valori. Tutti
questi punti formano una griglia equidistante. Questi punti attraggono i valori
casuali circostanti come magneti (si confronti la quantizzazione metrica in un
sequencer MIDI).
14
L’intervallo può essere anche variante nel tempo. Il segmento di funzione (0 30
5 30 10 45), per esempio, descrive una griglia costante per i primi 30 secondi,
per crescere dopo quell’istante:
quant 40 (0 0 10 1) 0
15
La quantizzazione è utile per la costruzione di metri regolari nel ritmo o griglie
di frequenze armoniche.
Accumulazione
16
Un esempio
{
f1 0 8193 10 1 ;il testo tra le parentesi
;graffe
;rimane invariato nel file .sco
i3 0 20
}
f 0 10 ;un campo da 0 a 10 secondi
p1 const 1 ;strumento 1
p2 range .01 .2 prec 3 ;tempi iniziali tra 0.01 e 0.2
;secondi
;precisione: 3 cifre dopo
;il punto decimale
p3 rnd exp 1 ;durate tra 0.5
;e 1 secondo
mask .5 1 ;e distribuzione esponenziale
prec 2
p4 item heap (120 125 400 355) ;permutazioni di 4 valori
p5 rnd uni ;numeri distribuiti
;uniformemente
mask (3 100 8 50) 200 map 1 ;tra 100 e 200 all’inizio
;tra 50 e 200 alla fine
p6 osc cos (0 .5 10 5) ;oscillazione sempre più veloce
;valori nel campo {0...1}
17
parametri. Per una migliore leggibilità è consigliabile mettere dei commenti
seguiti da un punto e virgola.
Il formato del file di parametri deve essere quello di un semplice file ASCII di
testo, come per i files .orc e .sco.
Programmi per la scrittura di files di testo per Csound e Cmask nel Mac sono
BBedit o Alpha.
Dopo aver lanciato Cmask appare una finestra di dialogo per selezionare il file
di parametri. Quindi occorre stabilire la directory e il nome del nuovo file score.
Il nome predefinito per il file score è quello del file di parametri seguito
dall’estensione .sco.
Se interviene un errore Cmask interrompe il processamento e stampa un
messaggio a terminale. Occorre allora chiudere il programma (command-Q).
Dopo il debugging possiamo riaprire Cmask. Se il file di parametri risulta
corretto Cmask scrive il nuovo file score sul disco.
Cmask su SGI:
Non c’è interfaccia grafica per Cmask, per cui esso va fatto girare da terminale
DOS.
Cmask richiede almeno un argomento: il nome del file di parametri. Non è
richiesta un’estensione particolare per questo file. Il secondo argomento
opzionale può essere il nome del nuovo file score. Se non si fornisce alcuna
indicazione Cmask appende il suffisso .sco al nome del file di parametri, come
nome del nuovo file di score. Se occorre un errore Cmask stampa un
messaggio a terminale e si ferma. Dopo il debugging possiamo riaprire Cmask.
Se il file di parametri risulta corretto Cmask scrive il nuovo file score sul disco.
18
Riferimento
Testo prescritto
{ <text> }
Esempio:
{
f1 0 8193 10 1
f2 0 1024 8 0 512 1 512 0
; tabelle con onda sinusoidale e inviluppo
}
Commenti
; <testo>
( <t1 v1> <t2 v2> <t3 v3> <..> [ipl <<valore> | cos | off>] )
[ <valore iniziale> <valore finale> [ipl <<valore> | cos | off>] ]
Quasi ogni modulo in Cmask può essere controllato da valori costanti o variabili
nel tempo. La descrizione di valori variabili viene effettuata attraverso
segmenti di funzione (anche noti come funzioni spezzate o poligonali). Tale
funzione deve essere scritta tra parentesi come serie di coppie o punti di valori
tempo-valore (<tn vn>). Il valore del primo punto della funzione sarà valido
anche per gli istanti precedenti. Lo stesso principio si applica all’ultimo punto.
I valori tra punti contigui saranno calcolati per interpolazione lineare o
esponenziale. L’interpolazione esponenziale opzionale segue la parola chiave
ipl. Il valore predefinito per l’interpolazione è 0, cioè lineare. Se ipl è seguito da
19
off allora abbiamo una funzione a scalini, discontinua, invece di avere
interpolazione.
Esempi:
Campi
Un file di parametri consiste di uno o più campi. I campi sono paragonabili alle
nuvole o ai flussi dei sistemi di sintesi granulare.
Un campo deve descrivere almeno i primi tre parametri di ogni strumento di
Csound: il numero di strumento, l’istante di attivazione (o battito) e la durata. A
seconda della struttura dello strumento possono esserci altri parametri.
Ogni campo deve avere un’intestazione rappresentata dalla lettera F. Seguono
poi il tempo di inizio e di fine del campo in secondi. Dopo l’intestazione inizia il
blocco con la descrizione dei parametri per p1, p2, p3 etc. La descrizione del
campo termina dopo l’ultimo parametro px oppure con la dichiarazione del
prossimo campo.
I campi non necessitano la dichiarazione in ordine cronologico.
20
Parametri
pn <generator>
[<mask>]
[<quantizer>]
[<accumulator>]
[prec <val>]
Precisione
prec <valore>
Generatori
Costante
const <valore>
Esempio:
21
Lista
list legge un numero per volta da una lista secondo il modo specificato in
mode.
Esempio:
Segmento di funzione
seg <bpf>
Esempio:
p3 seg (0 1 4 .3 6 1)
Esempio:
22
Generatore di distribuzioni probabilistiche
Distribuzioni probabilistiche:
Esempio:
Oscillatori
23
osc genera numeri secondo una funzione periodica func in dipendenza di una
frequenza variabile o costante e una fase opzionale.
Funzioni periodiche:
Esempio:
Modificatori
Maschere di tendenza
24
Il processo stesso di trasformazione matematica dipende dal parametro (map-
exponent) opzionale: valori prodotti da rnd o osc sono sempre nel campo di
valori {0 … 1}. All’interno di una maschera di tendenza saranno trasformati
attraverso una funzione (non lineare):
y = x^(2^exponent)
Esempio:
p4 rnd uni
mask 50 (2 100 10 200) ;limite inferiore 50, limite
superiore da 100 a 200
Quantizzazione
Esempio:
Accumulazione
25
metodo modo parametro
senza limiti on
con limiti limit <low | bpf> <high | bpf>
con limiti e riflessione mirror <low | bpf> <high | bpf>
con limiti ciclici e chiusi wrap <low | bpf> <high | bpf>
Esempio:
p4 range -10 10
accum mirror 100 300 init 200
Bibliografia
[1] Ames, Ch. 1991. "A Catalog of Statistical Distributions..." Leonardo Music Journal 1(1)
[2] Dodge, Ch. / Jerse, Th. A. 1985. Computer Music Collier Macmillan, London
[3] Lorrain, D. 1980. "A Panoply of Stochastic 'Cannons'." Computer Music Journal 4(1)
[4] Roads, C. 1991. "Asynchronous Granular Synthesis." in Representations of Musical Signals,
MIT Press
[5] Roads, C. 1985. "Granular Synthesis of Sounds." in Foundations of Computer Music, MIT
Press
[6] Truax, B. 1988. "Real-time Granular Synthesis with a Digital Sound Processor." Computer
Music Journal 12(2)
[7] Wishart, T. 1994. Audible Design Orpheus the Pantomime
[8] Xenakis, I. 1992. Formalized Music Pendragon Press
Software
[a] Castine, P. Litter Package (Externals for MAX)
[b] Koenig, G.M. Project I, Project II
[c] Truax, B. POD programs
[d] Xenakis, I. Stochastic Music Program
Esempi
;; bells.orc
sr = 44100
kr = 4410
nchnls = 2
instr 1
;p2 istante di attivazione
;p3 durata
;p4 frequenza base
;p5 indice di fm
;p6 panorama stereo (L=0, R=1)
kenv expon 1,p3,0.01
kindx expon p5,p3,.4
a1 foscil kenv*10000,p4,1,1.143,kindx,1
outs a1*(1-p6),a1*p6
26
endin
;; --------------------
27
p2 seg (2 .01 5 .5 8 .01 ipl 1) prec 3 ;un’altra struttura di
densità
p3 const .2
p4 item random (2000 2020 2400 2450 5300 2310 2350)
p5 seg (2 3 5 7 8 3 ipl 1) prec 1 ;indice FM sincrono
;alla densità p2
p6 range 0 .5 prec 2 ;panorama stereo solo nella
;metà sinistra
f 5 15 ;field 3
p1 const 1
p2 item swing (.3 .05 .2 .1 1) ;un ritmo
p3 item swing (.3 .05 .2 .1 1) ;nessuna pausa, nessuna
;sovrapposizione
p4 range 100 200 prec 1
p5 seg [1 5] ;indice FM crescente
p6 range .3 .7 prec 2 ;solo al centro
;; --------------------
28