|
Pagina 2 di 6
2.2 OPCODES DELL’ORCHESTRA
DirectCsound ha diversi nuovi opcode rispetto alla versione standard (al momento
attuale molti di essi sono stati già portati alla versione canonica di Csound, ed altri lo
saranno in futuro). Segue una lista degli opcode da me sinora implementati. Per maggiori
informazioni, consultare il manuale aggiuntivo dedicato ai miei opcode (è disponibile in
formato HTML ed è scaricabile dal mio sito web).
Controller MIDI
midic7, midic14, midic21, ctrl7, ctrl14, ctrl21
initc7, initc14, initc21
slider8, slider16, slider32, slider64, slider8f, slider16f, slider32f, slider64f, s16b14, s32b14
restituiscono un segnale o un banco di segnali in risposta dei messaggi MIDI di controlchange
Micro-intervalli
cpstmid - permette di definire scale micro-tonali. Questo opcode è stato progettato per essere
usato unitamente ai messaggi MIDI di note-on/off
cpstun, cpstuni - permettono di definire scale micro-tonali. Simili a cpstmid, non necessitano del
MIDI per essere usati.
Generatori MIDI generators
noteon, noteoff, ondur, ondur2 - inviano messaggi MIDI di note-on seguiti dai relativi
note-off all’uscita MIDI
moscil, midion - inviano flussi di messaggi MIDI di note-on seguiti dai relativi note-off
all’uscita MIDI. Il processo di generazione è controllabile mediante gli argomenti di ingresso.
outic, outkc, outic14, outkc14, outipb, outkpb, outiat, outkat, outipc, outkpc, outpiat,
outkpat - inviano all’uscita MIDI i corrispondenti messaggi MIDI di canale.
mclock, mrtmsg - inviano all’uscita MIDI i corrispondenti messaggi MIDI di SYSTEM
REALTIME.
Gestione generica dei messaggi MIDI
midiin, midiout, midion2, nrpn - gestiscono i messaggi MIDI a livello di byte.
mdelay - un delay MIDI
Estensione della durata delle note MIDI
xtratim, release - permettono di estendere la durata delle note attivate dal MIDI oltre il
messaggio di note-off.
Chiamata a subroutine
call, calld, callm, callmd - permettono di attivare uno strumento da un altro strumento.
Equivalenti alle subroutine disponibili in altri linguaggi di programmazione, come il
Basic o il C.
parmck, parmtk, parmca, parmta, rtrnck, rtrntk, rtrnca, rtrnta - permettono di passare
argomenti alle subroutine chiamate e di ricevere argomenti di ritorno, come possono fare
i linguaggi di programmazione strutturata.
Wrapping dei segnali
wrap, mirror - effettuano il wrapping di segnali in ingresso in due modi differenti (vedi
manuale).
Interpolatori
ntrpol - interpola linearmente e in modo pesato due segnali.
Algoritmi WaveGuide
wguide1, wguide2 - modelli fisici di corda pizzicata e di piastra percossa.
flanger - un flanger completamente configurabile dall’utente.
Generatori di inviluppo
expsega - simile ad expseg, ma più preciso con i segnali audio.
loopseg, lpshold - generano un segnale consistente in segmenti delimitati da uno o più
punti specificati. L’intero inviluppo viene reiterato in un loop. I parametri relativi a
ciascun segmento possono essere variati a k-rate.
lineto, tlineto - generano un glissando lineare (differente dall’opcode port) a partire da
un segnale discreto (a scalini).
Opcode relativi a tabelle a 16-bit (per salvare metà dello spazio in RAM)
loscil2 - simile ad loscil, ma supporta tabelle con campioni a 16-bit (generate dalla
GEN22), dimezzando la quantità di memoria RAM necessaria.
fof3 - simile a fof2, ma supporta tabelle a 16-bit e fornisce una migliore qualità audio
perché usa l’interpolazione lineare
lposcint - oscillatore che permette di variare i punti di inizio e fine della tabella a k-rate
durante le operazioni di lettura. Ottimizzato per tabelle a 16-bit.
Monitoraggio dei segnali
printk2 - visualizza i valori di un segnale di controllo, solo quando variano (utile per
monitorare i valori di slider ecc.)
Oscillatori ad alta precisione frequenziale
poscil - simile ad oscili, ma permette una risoluzione frequenziale molto maggiore.
lposcil - oscillatore che permette di variare i punti di inizio e fine della tabella a k-rate
durante le operazioni di lettura (vedi anche lposcint).
Oscillatore FM
foscili2 - simile ad foscili, ma permette tabelle differenti per la portante e la modulante.
Filtri
lowres - filtro passa-basso risonante.
lowresx, tonex, atonex, resonx - banchi di filtri connessi serialmente per ottenere una
curva di risposta più ripida.
vlowres - banco di filtri passa-basso risonanti, connessi in serie.
resony - banco di filtri passa-banda variabili del secondo ordine, connessi in
parallelo.
Potenze di due veloci e convertitori di unità di misura impiegate in musica
powoftwo, logbtwo - potenza di due o logaritmo base due (più veloci dell’opcode pow).
octave( ), semitone( ), cent( ), db( ) - convertono unità musicali logaritmiche in
moltiplicatori. Utili per gestire le unità di misura musicali relative.
Informazioni sulle tabelle contenenti campionamenti
ftlen2 - restituisce la lunghezza della tabella generata dalle GEN01 e GEN22, usando
l’allocazione differita.
nsamp - restituisce il numero di campioni effettivamente letti di una tabella da un file
audio.
ftsr - restituisce la frequenza di campionamento di un file caricato in una tabella.
Nuove routine GEN
GEN22 - carica un file di campioni in una tabella, simile a GEN01, ma usa il
formato a 16-bit per la memorizzazione, dimezzando la richiesta di RAM.
GEN23 - legge valori numerici da file di testo e li deposita in una tabella.
GEN24 - legge i valori da un’altra tabella e li riscala in accordo a un minimo/massimo
definiti dall’utente.
GEN 40 - genera una funzione contenente una distribuzione random continua,
partendo dalla forma di un istogramma della distribuzione random definito
dall’utente.
GEN 41 - genera una distribuzione random discreta partendo da una lista di coppie
numeriche fornite dall’utente
GEN 42 - genera una distribuzione random di intervalli di valori discreti partendo da una
lista di gruppi di tre valori forniti dall’utente
Trigger
trigger - genera un valore booleano, vero (1 = vero), quando un segnale incontra una
soglia definita dall’utente. Negli altri casi genera falso (0 = falso). Il valore 1 (vero) può
essere usato da altri opcode per far partire eventi di qualunque tipo.
Scrittura di file multi-traccia
f fout - scrive un numero arbitrario di segnali audio su di un file multi-traccia.
foutk - come sopra, ma a k-rate.
fouti - come sopra, ma a i-rate.
foutir - come sopra, ma prende in considerazione la durata della nota corrispondente.
fiopen - crea un file e lo abilita per le operazioni di lettura e scrittura.
vincr - accumulatore, incrementa una variabile audio di un valore arbitrario.
clear - azzera una o più variabili audio.
Lettura di file multi-traccia
fin - legge segnali ad a-rate da un file audio multi-traccia.
fink - come sopra, ma a k-rate
fini - come sopra, ma a i-rate
Foldover artificiale
fold - genera foldover artificiale a partire da un segnale in ingresso.
Supporto delle API DirectSound3D per il suono in 3 dimensioni su quattro diffusori
Init3dAudio, Out3d, DsListenerPosition, DsListenerOrientation, DsListenerRolloffFactor,
DsListenerDistanceFactor, DsListenerSetAll, DsMode, DsPosition, DsMinDistance,
DsMaxDistance, DsConeAngles, DsConeOrientation, DsConeOutsideVolume, DsSetAll,
DsEaxSetDeferredFlag, DsCommitDeferredSettings - vedi manuale
Supporto delle estensioni Creative EAX per il suono ambientale in 3 dimensioni su
quattro diffusori
EaxListenerEnvironment, EaxListenerEnvSize, EaxListenerRoomHF, EaxListenerDecayTime,
EaxListenerDecayTimeHfRatio, EaxListenerReflections, EaxListenerReflectionsDelay,
EaxListenerReverb, EaxListenerReverbDelay, EaxListenerRoomRolloff, EaxListenerAir
Absorption, EaxListenerFlags, EaxListenerAll, EaxSourceDirect, EaxSourceDirectHF,
EaxSourceRoom, EaxSourceRoomHF, EaxSourceObstruction, EaxSourceObstruction
Ratio, EaxSourceOcclusion, EaxSourceOcclusionRatio, EaxSourceOcclusionRoom
Ratio, EaxSourceRoomRolloff, EaxSourceAirAbsorption, EaxSourceOutsideVolumeHF,
EaxSourceFlags, EaxsourceAll- vedi manuale
Supporto dello standard SoundFont 2.0 per i file contenenti campionamenti
sfload, sfplist, sfilist, sfpassign, sfpreset, sfplay, sfplaym, sfinstr e sfinstrm - vedi manuale
Generatori random
random, randomi, randomh - vedi manuale
Distribuzioni random definite dall’utente
Dusrnd, urd, Cusrnd - vedi manuale
Curve random
jspline, rspline - vedi manuale
Generatori di vibrato “naturale” e “analogico”
vibrato, vibr - vedi manuale
Accesso in lettura e scrittura a tabelle di vettori
vtable, vtab, vtablew, vtabw - vedi manuale
Convertitori di unità di misura musicali di uso comune
octave( ), semitone( ), cent( ), db( ) - vedi manuale
Sequencer
seqtime, trigseq - vedi manuale
Supporto di immagini bitmap per generare segnali di controllo
bmopen, bmtable, bmtablei, bmoscil, bmoscili, rgb2hsvl, rgb2hsvl_i, bmscan, bmscani -
vedi manuale
Frattali
mandel - vedi manuale
Operatori vettoriali
vadd, vmult, vpow, vexp, vaddv, vsubv, vmultv, vdivv, vpowv, vexpv, vcopy, vmap, vlimit,
vwrap, vmirror - vedi manuale
Modificatori di segnali vettoriali
vport, vecdelay - vedi manuale
Delay variabile a k-rate
vdelayk - vedi manuale
Automi cellulari
vcella - vedi manuale
Banco di oscillatori per la sintesi additiva
adsynt2 - vedi manuale
Generatori di glissando
lineto, tlineto - vedi manuale
Metronomo per il “trigger” di eventi
metro - vedi manuale
Costruzione di GUI (interfacce grafiche per il controllo dei parametri)
FLpanel, FLscroll, FLtabs, FLgroup, FLslider, FLroller, FLvalue, Flcolor, Flbutton,
FLbutBank, FLsetFont, FLsetTextSize, Flknob, Flkeyb - vedi manuale
|
|
|