| Home | Contact | Il Suono Virtuale | Virtual Sound |


Indice articolo
DirectCSound
Pagina 2
Pagina 3
Pagina 4
Pagina 5
Pagina 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



 
English Version
Home
- - - - - - - - - - - -
Il Suono Virtuale
- - - - - - - - - - - -
Articoli
- - - - - - - - - - - -
Tutorial
- - - - - - - - - - - -
Corsi Online
- - - - - - - - - - - -
Software
- - - - - - - - - - - -
Forum
- - - - - - - - - - - -
Search
- - - - - - - - - - - -
Contact
- - - - - - - - - - - -