Strumenti di lavoro
Il "linguaggio" Csound (1)
- Concetto di Orchestra e strumento
Orchestra: insieme di strumenti
Strumento: applicazione di diversi operatori relativi a metodi di sintesi e funzioni speciali (e altro ancora...)
Struttura dell'orchestra:
Header
Definizione degli strumenti (instrument blocks)
- Concetto di Partitura (Score)
Partitura: insieme di istruzioni e parametri relativi all'esecuzione di pattern sonori relativi a un insieme di strumenti definiti in un'orchestra
Struttura di una partitura:
una o più linee di comandi
Struttura di un comando di partitura:
<codice istruzione> <#instr> <action time> <durata> <lista di parametri>
Nel file di testo che costituisce l'orchestra vanno inizializzati alcuni parametri:
| sr =
44100 kr = 2205 ksmps = 20 nchnls = 2 |
Quest'intestazione effettua le
seguenti inizializzazioni:
|
Caratterizzazioni in relazione alle frequenze e alla visibilità
| inome | Valida quando viene attivato lo strumento dalla partitura (init time) | Visibile solo nello strumento |
| anome | Valida per segnali audio (massima frequenza di campionamento) | Visibile solo nello strumento |
| knome | Valida per segnali di controllo (ad es., inviluppi) alla freq. di controllo | Visibile solo nello strumento |
| gnome | Variabile globale | Visibile in tutta l'orchestra |
Alcune utili funzioni di conversione
| dbamp(x) | Converte un valore di ampiezza in un valore in deciBel |
| ampdb(x) | Converte un valore espresso in deciBel in uno valore di ampiezza |
| oscil xamp, xcps, ifn[, iphs] | Oscillazione periodica di ampiezza xamp e frequenza xcps della tabella ifn |
| foscil xamp, kcps, kcar, kmod, kndx, ifn[, iphs] | Oscillazione FM: kcar freq. portante, kmod req. modulante, kndx indice di modulazione |
| linseg ia, idur1, ib[, idur2, icI...]] | Funzione a segmenti lineari; ia e ib punti estremi, idur durata di ogni singolo segmento |
| tone asig, khp[, istor] | Filtro passa-basso; khp frequenza di taglio, asig label del segnale da filtrare |
| reson asig, kcf, kbw[, iscl, istor] | Filtro passa-basso; kcf frequenza di centro banda, kbw larghezza di banda, asig label del segnale da filtrare |
| table ndx, ifn[, ixmode][, ixoff][, iwrap] | Indirizzamento di una tabella (numero ifn) tramite in segnale (ndx) |
Uscita su file
out asig
- Definizione di uno strumento (Instrument Block)
instr <numero> <Punti di connessione> <Operatori che compongono lo strumento> endinEsempio
instr 1 asig oscil 10000,440,1 out asig endin
Oscillazione della tabella 1 a 440 Hz e ampiezza 10000 nel segnale asig
- Costruzione di Look-up Table
Per produrre segnali audio occorrono delle tabelle con i campioni della funzione che si intende far oscillare
Vediamo alcuni tipi di generatori di tabelle; i parametri sono gli argomenti dell'istruzione f del prossimo paragrafo
| Numero | Parametri | Significato |
| GEN02 | # time size 2 v1 v2 v3 ... | Caricamento diretto dei valori v1,v2,... nella tabella # grande size |
| GEN07 | # time size 7 a n1 b n2 c | Funzione a tratti di rette |
| GEN10 | # time size 10 str1 str2 ... | Somma di sinusoidi di size campioni e di ampiezze str1, str2, ... |
- Istruzioni i ed f per le partiture
| i p1 p2 p3 p4 ... | Attiva uno strumento (numero p1) al tempo p2 con durata p3; lo strumento userà i parametri che seguono (p4 ...) |
| f p1 p2 p3 p4 ... | Definisce la tabella p1 creata col generatore p4; lo strumento farà riferimento a questa tabella usando il numero p1; gli altri parametri sono quelli descritti nel punto precedente |
I valori dei parametri che compaiono come argomenti delle istruzioni i della partitura sono accessibili dallo strumento tramite le variabili pk (k = 1,2, ....)
Ogni parametro è numerato secondo l'ordine in cui si trova in partitura
Convenzionalmente
| p1 | Numero dello strumento |
| p2 | Tempo di inizio dell'evento (in secondi) |
| p3 | Durata (in secondi) |
| p4 | Ampiezza |
| p5 | Frequenza (o nota) |
| Home | Precedente |