Sei sulla pagina 1di 31

HPKComposer

Manuale in italiano
HPKComposer, uno strumento compositivo di arte 3D per Csound................................1
Sguardo d’insieme......................................................................................................1
Alcune schermate di HPKComposer 2.2.........................................................................1
Scaricare HPKComposer.................................................................................................3
HPKComposer versione 2.2 (giugno 2000)..................................................................3
HPKComposer versione 2.1 (aprile 2000)....................................................................3
HPKComposer versione 2.0 (26 settembre 1999).......................................................4
Istruzioni......................................................................................................................4
Alcuni strumenti operativi usati da Hplank.....................................................................4
VRML97 plug in...........................................................................................................5
Come eseguire files mp3.............................................................................................5
HPKComposer, uno strumento di composizione artistica tridimensionale per Csound –
versione 2.1....................................................................................................................5
La partitura..................................................................................................................6
Il sintetizzatore virtuale HPKSynthe............................................................................7
Costruttore di mondi tridimensionali...........................................................................7
Guida all’interfaccia grafica di HPKComposer................................................................ 7
L’editor di partiture di HPKComposer.............................................................................9
L’editor di strumenti di HPKComposer..........................................................................11
L’editor grafico di HPKSynthe....................................................................................11
L’editor grafico della .orc di Csound..........................................................................11
Esempio.................................................................................................................13
Trucchi...................................................................................................................13
Il sintetizzatore modulare virtuale.............................................................................13
Il costruttore di mondi tridimensionali di HPKComposer.............................................. 14
Impostazioni..............................................................................................................15
Sfondo.......................................................................................................................15
Suoni.........................................................................................................................16
MIDI...........................................................................................................................17
Trasformazioni...........................................................................................................17
L’interpolatore che segue la struttura....................................................................18
Trucchi......................................................................................................................18
HPKComposer per Csound versione 2.0, 2.1 – Installazione.........................................19
Procedure di installazione per Windows 95/98NT e JDK1.1.......................................19
Procedure di installazione per altri sistemi operativi............................................. 20
HPKComposer versione 3.0, uno strumento di composizione di arte visuale
tridimensionale che usa Csound e VRML......................................................................20
Cosa potete fare con questo strumento?..................................................................21
Ma…..........................................................................................................................21
Che cosa in futuro?...................................................................................................22
HPKComposer, guida all’interfaccia grafica per l’utente..............................................22
HPKComposer, versione 3.0 – Il modulo di design in Csound.......................................23
Parametri...................................................................................................................23
Regole di generazione del suono..............................................................................24
Esempi...................................................................................................................24
Regole di modifica del suono....................................................................................25
Esempi...................................................................................................................25
Regole relative ai modulatori....................................................................................25
Esempi...................................................................................................................25
Regole relative agli effetti.........................................................................................26
Esempi...................................................................................................................26
Trucchi per l’editor di moduli di Csound....................................................................26
Creare una copia....................................................................................................26
La sincronizzazione tra l’editor di moduli di Csound e la struttura degli strumenti in
HPKComposer.........................................................................................................26
Scambio di files......................................................................................................26
HPKComposer versione 3.01: download.......................................................................27
HPKComposer, uno strumento compositivo di arte 3D per Csound

Sguardo d’insieme

HPKComposer è un’interfaccia per costruire composizioni sonore, e mondi a tre


dimensioni dove l’evoluzione degli oggetti grafici può seguire quella dei suoni.
Un’altra caratteristica è quella di rendere possibile all’utente l’interazione con
dispositivi MIDI, sia per controllare gli oggetti grafici tridimensionali che per
controllare i parametri del suono.

Il cuore di HPKComposer sono uno strumento di composizione di partiture di Csound


che guida un sintetizzatore virtuale, e un costruttore di mondi tridimensionali che
indirizza le evoluzioni definite nella partitura verso i parametri dell’evoluzione degli
oggetti grafici.

HPKComposer è uno strumento di composizione multimediale che genera files che


sono compilati o interpretati da programmi esterni. La generazione di suoni è
effettuata usando Csound, un potente linguaggio di sintesi guidato da partiture, e la
descrizione dei mondi tridimensionali è in VRML97, un linguaggio ISO sviluppato per
diffondere contenuto tridimensionali in Internet. Così l’ambiente esecutivo è un
browser Internet con un plug-in VRML97, o un’applicazione specifica scritta per
manipolare interazioni MIDI con oggetti VRML. È importante notare che questo è un
progetto in evoluzione dipendente dalla tecnologia disponibile e dalle potenzialità
hardware. Sino ad ora è stato possibile raggiungere risultati interessanti e il futuro è
promettente (MPEG-4, evoluzione e supporto hardware), lo scopo finale essendo
l’interazione dinamica con la sintesi sonora in tempo reale.

HPKComposer è scritto in java, in modo da poter girare su sistemi operativi differenti.


Sino ad ora è stato testato in Windows95/98NT e in Linux. In alcuni ambienti operativi
può essere usato solamente come strumento di sintesi sonora a causa della mancanza
di un browser VRML97.

Qui1 trovate la documentazione, completa quanto possibile, nei limiti delle


disponibilità di tempo.

I compilatori di suono sono stati scritti grazie alla disponibilità di molti utenti di
Csound che condividono la loro conoscenza ed esperienza. Scoprite alcuni di essi nella
sezione “strumenti”2.

Alcune schermate di HPKComposer 2.2

1
http://hplank.inetpc.com/hpkcdoc/index.html. Si tratta della documentazione riprodotta in questo
scritto.
2
http://hplank.inetpc.com/tools.html
1
Una visione globale che mostra le relazioni tra le strutture musicali globali, i
sintetizzatori virtuali, gli effetti globali, gli oggetti VRML e l’input MIDI esterno.

La finestra di editing del sintetizzatore virtuale HPKSynthe.

La finestra di editing degli oggetti VRML.

2
Scaricare HPKComposer

HPKComposer versione 2.2 (giugno 2000)

Scaricate il file compresso (.zip) 2.23, e seguite le istruzioni date di seguito. Per come
sono usati di recente gli opcodes di Csound, è altamente raccomandato usare l’ultima
versione di Csound. Non dimenticate di adattare il vostro ambiente di sviluppo a
Csound (in particolare per ciò che riguarda la variabile CSSTRNGS che è di nuova
introduzione nelle versioni recenti). La documentazione per HPKComposer si trova in
http://hplank.inetpc.com/hpkcdoc/index.html e le istruzioni di installazione sono in
rete4. Quali sono le novità?

o il generatore “oscillator” di partitura è stato corretto e potenziato con una curva


definita dall’utente
o in HPKSynthe è stato introdotto il modulo di waveshaping
o nel Modular software synthe è stato introdotta la sintesi “scanned”
o maggiori nuove capacità di generazione in VRML97:
o 8 nodi di trasformazione che controllano sino a 16 oggetti
o il nodo supporto della GridElevation, per cui curve matematiche sono
utilizzate per generare le superfici
o supporto per curve matematiche negli Interpolatori
o supporto per la luce direzionale
o IndexFaceSet generato matematicamente
o IndexLineSet generato matematicamente

HPKComposer versione 2.1 (aprile 2000)

Il file zippato 2.1 è ancora in rete5 poiché HPKComposer non è abilitato a leggere i files
creati con la versione 2.1. Le istruzioni di installazione sono le stesse.

Cosa c’è di nuovo?

o l’interfaccia è progettata per una risoluzione 1024X768


o un nuovo sintetizzatore virtuale modulare. Usatelo per costruire i vostri moduli
che potete connettere insieme. Questi moduli sono un ampio sottoinsieme degli
opcodes di Csound di massimo livello
o il Multi serial segments, un nuovo strumento di composizione
o il randomizer, aggiunge variazioni casuali nello stadio finale
o nuove capacità per le generazione VRML97:
o nodi di testo
o geometria multipla. Genera collezioni di elementi che possono essere
individualmente modificati
o nodi di animazione delle textures. Geometria di nodi in cui le textures
possono essere modificate in tempo reale
o evoluzione di trasformazione delle textures
3
http://hplank.inetpc.com/hpkc/hpkc22.zip
4
http://hplank.inetpc.com/hpkcdoc/installation.html
5
http://hplank.inetpc.com/hpkc/hpkc21.zip
3
HPKComposer versione 2.0 (26 settembre 1999)

Sebbene i files prodotti con la versione 2.0 non posano essere letti dalla versione 2.1,
il file zippato della versione 2.0 lo trovate in rete all’indirizzo
http://hplank.inetpc.com/hpkc/hpkc20.zip.

Istruzioni

Prima di scaricare il file, controllate di avere il seguente software:

o Java Development Kit versione 1.1.6 o successiva, o Java Runtime Environment


versione 1.1.6 o successiva, e le Java Foundation Classes, componenti Swing
versione 1.1 beta 3. Questi sono i minimi requisiti richiesti.
o o the Java Development Kit versione 1.2, che include i componenti Swing e
permette un’installazione più facile di HPKComposer. Raccomando questa
soluzione se disponibile sulla vostra piattaforma.
o compilatore Csound, versione minima 3.50 (vedi la sezione “Strumenti”6)

Tutto il software Java può essere trovato nel sito Javasoft7.

Avrete anche bisogno di un lettore di files audio, il vostro preferito! Se volete costruire
mondi tridimensionali necessitate anche di un browser con un plug-in VRML97 (vedi la
sezione “Strumenti”8).

Dopo aver scaricato il file di distribuzione scompattatelo in una cartella a scelta, e


seguite le istruzioni di installazione navigando all’interno del file “installation.html”.

Alcuni strumenti operativi usati da Hplank


Csound è un potente sintetizzatore software sviluppato da Barry L. Vercoe allo Studio
di Musica Sperimentale, Laboratorio di Meida, M.I.T. Viene continuamente potenziato
dalla comunità di utilizzatori ed è ora disponibile su numerose piattaforme. Una
performance di Csound consiste di due files: uno di orchestra dove descrivete gli
strumenti usando un particolare linguaggio e uno di partitura dove descrivete gli
eventi temporali che avviano gli strumenti e controllano i parametri per essi definiti.

Potete trovare informazioni su Csound seguendo questi collegamenti:

o The Csound front page: http://mitpress.mit.edu/e-books/csound/frontpage.html:


presenta ulteriori collegamenti e permette di scaricare l’eseguibile di Csound
o Csounds.com: http://www.csounds.com/: contiene il libro su Csound, la rivista di
Csound
6
http://hplank.inetpc.com/tools.html
7
http://www.javasoft.com/
8
http://hplank.inetpc.com/tools.html
4
o The Gabriel Maldonado Csound version:
http://www.agora.stm.it/g.maldonado/home2.htm: trovate un’implementazione
veloce con supporto per il tempo reale
o Hans Mikelson great contribution:
http://www.werewolf.net/~hljmm/csound/articles/intro.html: contiene
un’introduzione a Csound, con una ricca collezione di strumenti
o Andre Bartetzki: http://www.kgw.tu-berlin.de/~abart: il sito del creatore di
Cmask
o Michael Gogins: http://www.pipeline.com/~gogins: il sito del creatore di
AXCsound e Silence
o Josep M Comajuncosas: http://members.tripod.com/csound/: il sito della mailing
list di un altro collaboratore, dal quale abbiamo preso alcuni strumenti
o la pagina Linux Csound da parte di Dave Philips:
http://www.bright.net/~dlphilp/linux_soundapps.html
o Csound Orchestras and Scores da parte di Steven Cook: http://www.babcom.u-
net.com/csound.html

VRML97 plug in

Se il vostro browser non supporta nativamente VRML 2.0 (VRML97), potete scaricare
da uno dei siti seguenti:

o Cosmo Player, versione 2.1: http://www.karmanaut.com/cosmo/player/: un


vecchio lettore, ma con una grande qualità di visualizzazione
o Blaxxun Contact: http://www.blacksun.com/: l’ultima versione (la numero 5) è
veramente buona
o Cortona VRML Client: http://www.parallelgraphics.com/

potete trovare il consorzio Web3D all’indirizzo http://www.vrml.org/.

Le risorse VRML? About.com Focus on Web3D: http://web3d.about.com/: centinaia di


collegamenti a siti VRML e homepages, e inoltre chats e bollettini di notizie.

Come eseguire files mp3

O il vostro plug-in VRML supporta nativamente l’esecuzione di files mp3 oppure potete
usare con efficacia Cosmo Player in Windows 98, a condizione che Windows Media
Player sia installato completamente e che sia impostato come lettore predefinito per i
files mp3.

HPKComposer, uno strumento di composizione artistica


tridimensionale per Csound – versione 2.1
Ecco di seguito una breve descrizione delle principali caratteristiche.

5
L’obiettivo principale di HPKComposer è quello di essere un programma di
composizione multimediale che vi permetta di:

o Semplificare l’uso di Csound attraverso un’interfaccia grafica, di generatori


algoritmici di eventi di partitura, permettendo design sonoro con l’aiuto di
sintetizzatori virtuali. La struttura di sintetizzatori virtuali collegabili permette
l’uso di differenti sintetizzatori virtuali, tutti utilizzanti Csound. Ne sono forniti
tre:
o HPKSynthe: ha una classica struttura fatta di generatori di suoni, filtri e
modulatori, senza mostrare minimamente il linguaggio di
programmazione di Csound per la sintesi sonora
o Csound Orc permette l’uso diretto di opcodes di Csound attraverso un
editor di testo
o Modular permette la costruzione di sintetizzatori modulari con moduli
composti di opcodes di alto livello di Csound
o Gli algoritmi di generazione di eventi in partitura sono basati su Cmask, e sono
stati estesi (frattali, liste di modelli casuali, generatore di segmenti spezzati,
supporto polifonico, quantizzazione in scale musicali, randomizzazione). Una
partitura è composta di strutture sino ad un numero di 8, ognuna col proprio
algoritmo di genesi, in cui possiamo utilizzare uno degli 8 strumenti disponibili.
Sono disponibili strumenti di alto profilo, come trasformazioni di accordi,
generatori di nuvole di suoni e sequencer a passi discreti
o La definizione dei parametri dello strumento è dinamica, essi sono definiti
nell’editor del sintetizzatore virtuale e poi controllati nell’editor di Structure,
usando uno degli algoritmi di generazione
o È possibile generare mondi VRML97 in cui le trasformazioni grafiche degli
oggetti siano collegate ai valori dei parametri degli strumenti, o modificate da
dispositivi MIDI esterni
o La compilazione in Csound viene lanciata all’interno di HPKComposer.
o È possibile generare un file MIDI all’interno della finestra relativa alle strutture
degli eventi di note
o Il file audio finale può essere eseguito da HPKComposer utilizzando un lettore
esterno definito in precedenza

La partitura

La partitura è composta di 8 strutture che possono essere attivate individualmente.


Ogni struttura viene assegnata ad uno degli 8 strumenti disponibili. Una struttura
rappresenta le modalità secondo le quali gli eventi di partitura saranno generati e
quando. Ogni evento di nota viene definito da differenti parametri: tempo di inizio,
durata, altezza (altezza principale e tre valori secondari per i tessuti polifonici), e 16
valori di controllo che sono assegnati ai parametri di strumento nella finestra relativa
all’editing degli strumenti. Per ogni parametro di evento potete specificare
l’evoluzione usando un generatore, un modificatore secondo una maschera di
tendenza, e una quantizzazione. Il campo di escursione di ogni valore di parametro,
eccetto quelli relativi al fattore tempo, normalizzati a 127. Ciò semplifica l’editing, le
operazioni di copia e permette facile integrazione con i dispositivi di controllo MIDI.

6
Il sintetizzatore virtuale HPKSynthe

La sua struttura è comune nel mondo dei sintetizzatori: 4 generatori di forme di onda
possono essere indirizzati o meno verso un modulo di trasformazione (modulazione ad
anello e filtri), e verso un numero di effetti globali sino ad 8 (ritardi e riverberi). Alcuni
parametri di generazione e filtraggio del suono possono essere modulati attraverso un
LFO, inviluppi o generatori di valori casuali.

I generatori di forme d’onda possono essere estesi scrivendo apposite classi java, ma
come impostazione predefinita viene fornito un insieme di generatori di suono quasi
completo:

o Pluck: l’opcode pluck


o Granular sampler: realizzazione del suono attraverso grani sonori, come in
Cmask
o Granular: l’opcode grain
o FM con waveshaping
o un semplice oscillatore
o lo pseudo-flanger di Risset
o oscillatore con onda a dente di sega (treno di impulsi a banda limitata), derivato
da Hans Mikelson
o oscillatore ad impulsi, da Hans Mikelson
o VCO analogico
o rumore doppiamente in risonanza dedotto da Lyon
o rumore intonato per randomizzazione
o rumore rosa
o Prete Elettrico
o Prete Elettrico con intonazione della vocale “a” (Tobias Enhus)
o oscillatore a spettro variabile: opcode gbuzz

Costruttore di mondi tridimensionali

L’editor di mondi tridimensionali vi permette di descrivere un tema di sottofondo per


la scena, le modalità di posizionamento in essa dei suoni prodotti, e vi permette di
aggiungere oggetti grafici predefiniti, che possono seguire o meno l’evoluzione
sonora. Potete anche descrivere come dispositivi MIDI esterni possono cooperare
all’interno di questo mondo tridimensionale. Infatti come un oggetto grafico può
anche essere un file di suono, così è possibile aggiungere nella scena files audio
esterni e miscelarli usando un dispositivo MIDI esterno. Le interazioni MIDI supportate
consistono nelle note, nella velocità e nei messaggi di controllo.

Guida all’interfaccia grafica di HPKComposer

7
Quando lanciate HPKComposer, esso dispiega uno spazio vuoto dove solamente due
pulsanti sono visibili e attivi:

Fate click su questo pulsante se volete caricare una composizione esistente.


Appare una finestra di dialogo che vi permette di selezionare il file.
Fate click su questo pulsante se volete creare una nuova composizione.
Compare una finestra di dialogo che vi permette di introdurre il nome della
composizione. Potete scegliere un nome esistente, nel qual caso il file originario
verrà sostituito.

Subito dopo appaiono i seguenti pulsanti:

Salva il file della composizione. Un file della composizione ha un’estensione


.hpk. Potete rinominare la vostra composizione prima di salvare.
Carica una composizione esistente. Viene visualizzata una finestra di dialogo per
selezionare un file esistente.
Crea una nuova composizione. Compare una finestra di dialogo che vi permette
di introdurre il nome della composizione. Potete scegliere un nome esistente,
nel qual caso il file originario verrà sostituito.
Genera i files .sco e .orc per Csound, .wrl per la generazione VRLM, e .mid per il
file midi. Il nome dei files è lo stesso della composizione.
Genera i files come sopra, ma lancia Csound per la generazione del file audio.
Suona il file audio generato attraverso il lettore esterno predefinito.
Ferma la generazione del file audio, o la compilazione di Csound in tempo reale.
Apre la finestra per definire differenti impostazioni:
o la generazione di Csound
o il percorso del lettore audio esterno
o il percorso del compilatore Csound
o l’aspetto dell’interfaccia utente
o la definizione delle impostazioni di generazione dei files midi
Apre la finestra di modifica dell’archivio dei moduli.In questa finestra potete
estendere HKComposer registrando nuove classi java da voi sviluppate. Ciò
copre i seguenti moduli: la fonte di generazione di suono, il modulatore, il filtro,
gli effetti, gli strumenti compositivi, il modello di sfondo e gli oggetti grafici
VRML97. Potete anche rimuovere moduli che non facciano parte del pacchetto
standard.

Proprio sotto questi pulsanti trovate la barra di navigazione che vi permette di


visualizzare le finestre relative alle modalità di differente editing:

Indirizza all’editor (1-8) di strutture. Le strutture attive sono


in verde.
Indirizza all’editor (1-8) di strumenti.
Indirizza alla visualizzazione sinottica.
Indirizza alla visualizzazione principale del costruttore di
mondi tridimensionali.

8
L’editor di partiture di HPKComposer
HPKComposer possiede un editor grafico per la generazione di partiture Csound. È
basato su Cmask, con alcune estensioni o modifiche, per cui prima di continuare
dovreste dare un’occhiata alla documentazione originale di Cmask.

Una partitura è composta da 8 strutture, le cui impostazioni individuali possono essere


modificate facendo click su uno de seguenti pulsanti:

La pagina di modifica delle partiture mostra in cima i seguenti controlli di modifica:

Innanzitutto trovate un pulsante a sinistra. Quando questo è illuminato di verde la


struttura sarà generata. Questo è un modo conveniente per ascoltare selettivamente
una o più strutture contemporaneamente senza perdere le altre informazioni. Poi
trovate la lista nel menu a tendina che vi permette di scegliere lo strumento
assegnato alla struttura e i pulsanti di attivazione per tessuti polifonici (ciò permette
la creazione di altezze supplementari, ognuna con la propria evoluzione melodica, ma
con la condivisione di tutti gli altri parametri). Sotto questi controlli trovate il tempo
iniziale e finale relativo al primo e all’ultimo evento della struttura. Infatti l’ultimo
evento rappresenterà il tempo massimo tra il tempo iniziale e quello finale, più la
durata dell’evento stesso. Abbiamo anche un pulsante “move all to time” che
permette di spostare tutta la struttura al tempo iniziale definito dall’utente nel campo
successivo.

Oltre a queste informazioni, troverete un insieme di pulsanti e una lista con menu a
tendina:

o facendo click su “t” visualizzerete le impostazioni algoritmiche che saranno


usate per la generazione dei tempi iniziali degli eventi di partitura
o facendo click su “d” si mostrano le impostazioni relative agli algoritmi di
generazione delle durate
o con un click su “p” mostrate gli algoritmi generatori delle altezze
o i clicks su “1”, “2”, “3”, mostrano gli algoritmi di generazione degli eventi
relativi alle altezze addizionali (in modalità polifonica)
o facendo click su “a” visualizzerete le impostazioni algoritmiche che saranno
usate per la generazione delle ampiezze
o facendo click su “c” si mostrano le impostazioni relative agli algoritmi di
generazione della evoluzione dei parametri di controllo degli strumenti

Un algoritmo è composto di un generatore, una maschera di tendenza e una


quantizzazione. I due ultimi elementi sono opzionali e dipendono dal tipo di
generatore scelto.

La visualizzazione di un’impostazione di un algoritmo compare come segue:

9
L’interfaccia è molto chiara, eccetto per alcuni punti:

o la visualizzazione grafica non viene aggiornata automaticamente quando


cambiate un parametro, ma dovete fare click sul pulsante “refresh”. Il menu a
tendina con la possibilità di scegliere tra punti e linee, posto sopra la finestra di
visualizzazione grafica, è solo uno strumento di visualizzazione
o il tipo seguente di controllo, , ha i seguenti
comportamenti:
o questo controllo viene usato per
introdurre un valore numerico; se introducete un valore sbagliato il testo
si colora in rosso
o se fate click sul pulsante “v”
il controllo vi permette di introdurre una coppia di valori se il secondo
pulsante è nello stato “p”. Essi rappresentano i valori ai tempi iniziali e
finali. I valori intermedi saranno interpolati tra questi due punti. Il pulsante
“e” vi permette di entrare in un editor grafico. Questo non interessa la
modalità attuale ma la seguente
o se il secondo pulsante è in
stato “t” potete introdurre un insieme di valori temporali. Il pulsante “e” vi
permette di entrare in un editor grafico. Potete aggiungere o cancellare
punti usando il mouse.

L’ultimo menu a tendina vi permette di scegliere la curva usata per l’interpolazione


dei valori (si veda la documentazione di Cmask).

Questi pulsanti hanno funzione di clipboard per le impostazioni


algoritmiche attualmente selezionate.

Questi pulsanti selezionano il tipo di visualizzazione grafica: o una vista globale


relativa a tutti i valori dei parametri degli eventi, o un editor a segmento spezzato,
che permette la modifica della funzione “segment” usata nella maschera di tendenza,
o nel generatore di linee spezzate. Solo i segmenti con parametri normalizzati a 127
possono essere modificati. Tempi iniziali e durate sono escluse.

10
L’editor di strumenti di HPKComposer
Ogni strumento può essere modificato in un editor grafico dipendente dalla scelta
attuata sul tipo di sintetizzatore virtuale. Potete entrare nella finestra dell’editor di
strumenti facendo click su uno dei seguenti pulsanti:

che vi portano nella pagina di modifica degli strumenti.

Come impostazione predefinita abbiamo l’uso del sintetizzatore virtuale HPKSynthe,


come indicato nella combo box superiore destra. Da questa potete scegliere un altro
tipo di sintetizzatore virtuale. I due pulsanti alla sinistra della combo box sono relativi
alle operazioni di caricamento e salvataggio del presente strumento.

L’editor grafico di HPKSynthe

Un’unica finestra permette la modifica di tutti i parametri di HPKSynthe:

c’ della combo box è un parametro che può essere assegnato ad un controller


selezionando il suo numero nella lista del relativo menu a tendina.

L’editor grafico della .orc di Csound

Questa finestra di modifica vi permette di definire gli strumenti di Csound usando gli
opcodes standard di Csound. L’interfaccia fornisce quattro tipi di editors:
11
o l’editor di strumenti, per la codifica delle istruzioni di Csound usando il suo
linguaggio di programmazione
o l’editor di funzioni, per definire le funzioni utilizzate dallo strumento
o l’editor di parametri, per definire il nome del parametro e il suo campo di valori,
nonché il valore predefinito da utilizzare quando il file .sco non definisce alcun
valore per quel parametro
o l’editor delle variabili globali, per descrivere le variabili globali richieste dallo
strumento
o l’editor dell’output, che descrive il tipo di output di questo strumento, l’output
diretto usando un modulo di panorama stereo e gli effetti globali

Come per ogni tipo di sintetizzatore virtuale utilizzabile all’interno di HPKComposer, è


possibile salvare e/o caricare le definizioni dello strumento.

In questa finestra di modifica potete definire lo strumento usando le istruzioni di


Csound. Ciò equivale alla definizione di un file di testo del tipo .orc, tranne per alcune
convenzioni da usare per integrare lo strumento che state costruendo all’interno di
HPKComposer e della sua struttura di generazione di partiture.

La prima differenza importante consiste nel modo di dichiarare le funzioni. In Csound


basta scrivere il numero della funzione descritta nel file .sco (esiste un’altra opzione,
ma questa è la procedura più utilizzata). Poiché HPKComposer genera
automaticamente le funzioni e le numera, questo approccio non può essere
mantenuto. Per risolvere il problema avete uno speciale editor di funzioni dove
dichiarare le funzioni richieste dallo strumento. Dovete dare ad ogni funzione un
numero come si fa comunemente nella programmazione in Csound, poi dichiarare
l’uso di questa funzione nell’editor di strumento, usando un tag speciale, <fx> , dove
“x” è il numero della funzione da voi definito. Nella generazione di partiture verrà
effettuata automaticamente la corretta sostituzione.

Un’altra differenza la troviamo nella dichiarazione dei parametri dello strumento. In


Csound p1, p2 e p3 sono riservati, l’uso di ogni altro parametro è libero. In
HPKComposer anche i parametri p4 e p5 sono riservati: p4 rappresenta l’altezza e
deve essere decodificato usando cpspch(), mentre p5 viene ad essere l’ampiezza, da
0 a 32000. Poiché HPKComposer controlla la generazione del file .sco, e i valori dei
parametri, solo 16 parametri sono disponibili per un uso specifico. Essi devono essere
codificati come icx e non come px, come ci aspetteremmo, con x nel campo di valori
da 1 a 16. Anche il campo di valori dei parametri deve essere specificato per
permettere a HPKComposer di convertirli dalla partitura generata, con i valori dei
parametri da 0 a 127, nel valore effettivamente necessario. Questa operazione viene
effettuata nella finestra di editing dei parametri.

Le variabili globali devono essere fornite da voi, avendo cura del fatto che ogni istanza
di uno strumento Csound genererà variabili globali. Questa duplicazione potrebbe
essere fonte di errori.

Occorre seguire anche alcune convenzioni per i nomi di suoni in output. In primo luogo
il numero di canali viene definito dalle impostazioni: uno per il mono e due per lo
stereo (ci dispiace, ma niente di più!). HPKComposer è capace di cambiare da mono a
stereo in modo trasparente quando usate uno dei sintetizzatori virtuali disponibili,

12
eccetto che nel caso in cui voi decidiate di manipolare l’output del vostro strumento
Csound nell’editor delle orchestre Csound. Dovete rispettare le seguenti convenzioni:

o usate “out” per l’output del suono quando lo desiderate mono, e l’output è
diretto
o usate “outs” per l’output del suono quando lo desiderate stereo, e l’output è
diretto
o usate “aoutmix” se volete processare il suono nei moduli di effetti globali. in
questo caso l’output deve essere monofonico poiché gli effetti globali accettano
solamente input monofonico

Esempio

Supponete di usare l’opcode oscil con una forma di onda descritta dalla funzione
numero 14. Dovete codificare quanto segue nella pagina dedicata allo strumento:
kclk oscil 100,440,<f14>, e dovete introdurre la funzione numero 14 nella pagina
dedicata alle funzioni.

Trucchi

o l’impostazione relativa all’output di testo è utile per monitorare la compilazione


di Csound
o un errore nelle convenzioni relative alle funzioni porterà ad una finestra durante
la generazione del file audio, con riportata normalmente la stringa sbagliata. Per
esempio, se codificate la funzione come <fx>, nella finestra avrete x. In ogni
caso fate molta attenzione alla sintassi
o se uno strumento viene costruito per utilizzare gli effetti globali, salvatelo come
strumento individuale prima di effettuare i collegamenti e gli smistamenti

Il sintetizzatore modulare virtuale

Questo è un concetto molto familiare: selezionate dei moduli da porre su una


superficie e li collegate tra loro. In generale ogni modulo è equivalente ad un opcode
di Csound. Non sono ancora disponibili tutti gli opcodes:

13
o per muovere un modulo, selezionate lo strumento “move”, fate click sul modulo
che volete muovere e poi fate click in uno spazio vuoto
o per cancellare un modulo, selezionate lo strumento “delete”, fate click sul
modulo da cancellare (non è disponibile la funzione undo)
o per aggiungere un modulo, fate click sullo strumento “add”, o selezionate un
elemento diverso dal corrente nella lista di scelte, e fate click in uno spazio
libero
o per aggiungere una connessione, fate click sullo strumento “add a connection”
e fate click su un “jack output”, poi su un “jack input”. Dovete sempre stabilire
le connessioni da output a input. Un riscontro visuale viene fornito per mostrare
se la connessione sia o meno possibile (connessioni a livello audio o di controllo)
o per distruggere una connessione, fate click sullo strumento “delete connection”,
e poi su un qualsiasi “jack input” o “jack output”
o le connessioni audio sono in blu
o i parametri che non possono essere modificati alla frequenza di controllo sono in
arancione
o dovete usare un modulo di parametro di partitura per legare ogni parametro alla
partitura
o in caso di problemi con le connessioni fate click in un qualsiasi posto libero, e
ristabilirete lo stato dello strumento di “add connection”

Il costruttore di mondi tridimensionali di HPKComposer


Il costruttore tridimensionale è il luogo deputato alla costruzione di mondi
tridimensionali, strutturando le relazioni tra eventi di partitura ed evoluzione grafica
degli oggetti. Per esempio, se un dispositivo di controllo viene assegnato all’altezza
del suono numero 1, potete rendere le variazioni della trasparenza di una sfera
variabili in concomitanza col variare del valore del dispositivo di controllo, ovvero
l’altezza dello strumento.

Facendo click sul pulsante di navigazione , viene mostrato il costruttore la scena


tridimensionale in formato VRML97:

14
La visualizzazione vi permette di navigare attraverso i pannelli, e lanciare il browser
VRML, o il programma che rende possibile l’interazione MIDI con gli oggetti VRML.

Impostazioni

Qui potete:

o selezionare o deselezionare la funzione di generazione del file VRML


o avere la possibilità di includere un file VRML esterno (si veda oltre per le
limitazioni)
o scegliere le dimensioni dello schermo e il rapporto della scena tridimensionale
o dare un titolo alla pagina html
o specificare la locazione del browser che volete usare

Sfondo

La combo box in cima a sinistra della finestra vi permette di scegliere il modello di


sfondo per il mondo VRML97. Un modello di sfondo definisce gli elementi grafici che
non saranno modificati dalle evoluzioni degli eventi di nota, o dalle interazioni MIDI,
ma che possono animarsi di volontà propria. Tipicamente, un modello definirà dei
colori di sfondo per la scena, la nebbia, l’evoluzione della camera da presa, la luce
ambientale e altri attributi. Vengono forniti tre modelli:

o Moving texture, un poligono a 4 punti, con una texture in movimento poiché la


camera da presa che si muove è disposta al centro della scena
o Animated textures, 4 poligoni (4 punti) disposti al centro della scena. Ogni
poligono ha una texture cangiante nel tempo
o Landscape, attributi basilari di sfondo

Lo sfondo può essere cambiato indipendentemente dalle altre impostazioni.

15
Suoni

Questo pannello permette il controllo sulle modalità attraverso le quali i suoni


generati da Csound interagiranno con il mondo VRML. Ci sono due modalità:

o Unique ambient sound, viene generato un unico suono attraverso le strutture


attive, e viene posizionato all’interno della scena
o Multiple sounds, un file sonoro viene generato per ogni struttura attiva, e viene
disposto all’interno della scena tridimensionale in punti differenti (o identici). In
questo caso il suono si muoverà insieme agli oggetti grafici. È anche possibile
controllare il volume del suono attraverso dispositivi MIDI esterni (usando uno
specifico programma HPKMidiVrml)

I suoni sono spazializzati, se la camera da presa si muove o se l’utente naviga


all’interno del mondo il suono si muoverà nel panorama stereo seguendo la propria
posizione e quella dell’utente. minBack, maxBack, minFront e maxFront definiscono
l’ellisse interna del suono. Ecco una figura dalle specifiche VRML97:

Il nodo del suono possiede un’ellisse interna che definisce un volume di spazio nel
quale il massimo livello di suono sia udibile. All’interno di questa ellisse, il campione
sonoro normalizzato viene riscalato dal campo di intensità e non c’è attenuazione.
L’ellisse interna viene definita estendendo il vettore di direzione attraverso la
locazione. I campi minBack e minFront specificano le distanze rispettivamente dietro e
davanti alla locazione lungo il vettore direzione. L’ellisse interna ha uno dei suoi fuochi
alla locazione (il secondo fuoco è implicito) e interseca il vettore direzione a minBack
e minFront.

Il nodo di suono ha un’ellisse esterna che definisce un volume di spazio che avvolge il
campo di udibilità del suono. Non può essere udito alcun suono al di fuori di questa
ellisse esterna. L’ellisse esterna viene definita estendendo il vettore di direzione
attraverso la locazione. I campi maxBack e maxFront specificano le distanze
rispettivamente dietro e davanti alla locazione lungo il vettore direzione. L’ellisse
esterna ha uno dei suoi fuochi alla locazione (il secondo fuoco è implicito) e interseca
il vettore direzione a maxBack e maxFront.

I campi minBack, maxBack, minFront e maxFront sono definiti in coordinate locali, e


dovrebbero essere >=0.0. Il campo minBack sarà <= maxBack, e minFront sarà <=
maxFront. I parametri dell’ellisse sono specificati in un sistema di coordinate locali,
ma la geometria dell’ellisse è influenzata dalle trasformazioni precedenti.
16
MIDI

Le interazioni MIDI sono disponibili attraverso l’uso di un programma indipendente


esterno HPKMidiVrml, disponibile solamente per la piattaforma Windows, poiché
utilizza l’interfaccia Cosmo Player COM. Questo programma intercetta le informazioni
MIDI dal dispositivo allacciato al MIDI in, le manda all’esecuzione VRML, attraverso
l’interfaccia COM, e manda anche informazioni MIDI al dispositivo in MIDI out. La
finestra con le impostazioni di interazione MIDI permette di personalizzare la rotazione
di messaggi MIDI al MIDI out. Ci sono 4 programmi disponibili per l’interazione dal
vivo. Ogni programma viene attivato da uno specifico messaggio MIDI di program
change, e definisce 4 layers per il MIDI output verso il controllo dei parametri degli
oggetti VRML. I messaggi di nota MIDI saranno indirizzati nuovamente al MIDI out
secondo quanto definito in questi 4 layers, e anche il mondo VRML riceverà queste
informazioni (valore di nota, velocità e layer) per la trasformazione grafica degli
oggetti.

Trasformazioni

Un nodo di trasformazione è un gruppo di oggetti grafici sino ad un massimo di 16. Gli


oggetti grafici sono rappresentati dalla visualizzazione seguente nella pagina di
trasformazione:

Potete attivare o meno una trasformazione o un oggetto grafico. La disattivazione


significa che l’oggetto non sarà visualizzato nel file VRML97, pur mantenendo ogni
proprietà. La combo box vi permette di scegliere il tipo di oggetto grafico, e il pulsante
dei parametri vi porta alla finestra di modifica degli attributi dell’oggetto e delle sue
relazioni con le definizioni date nella Struttura.

L’interfaccia utente tipica di un attributo di un oggetto grafico somiglia a questo:

Sulla sinistra trovate il valore predefinito per l’attributo, poi un interruttore che
permette di assegnare un interpolatore a questo attributo: questo può adesso
evolvere nel tempo. La combo box precisa come questa evoluzione viene controllata:
o attraverso un interpolatore dell’utente oppure attraverso un interpolatore che segue
l’evoluzione di un parametro di nota, o attraverso messaggi MIDI in ingresso. Facendo
click sul bottone sulla destra si apre una finestra per definire i parametri
dell’interpolatore.

17
L’interpolatore che segue la struttura

La combo box sulla sinistra assegna un interpolatore a questa struttura. Per ogni
evento di nota generato dalla struttura, sarà calcolato un valore discreto per i
parametri dell’oggetto grafico. Il parametro tick delay è utile quando il suono ha un
inviluppo lento: aiuta a sincronizzare il parametro dell’oggetto grafico al suono
ritardandolo di poco; l’interruttore trigger forza il valore discreto del parametro
dell’oggetto grafico al valore predefinito tra due eventi di nota. Le transizioni sono
sfumate senza il trigger, percussive con esso.

Poi trovate i differenti campi degli attributi dell’oggetto grafico. Potete decidere se un
campo segua una struttura o no, quali parametri di eventi di nota saranno usati come
riferimento, quali saranno i valori massimi e minimi per i valori dei parametri di eventi
di nota, come la loro conversione nel mondo VRML. Facendo click sul pulsante “r” i
valori minimi e massimi saranno impostati secondo i valori minimi e massimi presenti
nella struttura (questa è una stima rozza, non esattamente accurata, dovrete
osservare i valori esatti nella finestra grafica della struttura).
Potete scegliere di non usare l’impostazione precedente. Questo appare interessante
quando la densità di eventi è alta, dando luogo così ad un’evoluzione grafica troppo
rapida. In questo caso è possibile impostare i valori minimo e massimo in modo da
prelevare i valori dei parametri di eventi di nota che risiedano solamente all’interno di
una certa soglia. Questo limiterà cambiamenti visuali troppo rapidi.

Trucchi

L’attributo di trasparenza va dal valore 0 (visibile) a 1 (trasparente).

Il file VRML che viene generato non è adatto per la navigazione web. Textures e suoni
devono essere modificati prima di essere inviati al vostro web server.

Una composizione fatta con HPKComposer ricevuta da qualcun altro al di fuori della
distribuzione principale deve essere modificata per cambiare le locazioni delle
textures e gli oggetti sonori.

Il file VRML che potete includere in quello generato deve seguire alcune convenzioni:
deve essere un file con un nodo principale che deve essere un Transform. Se state
usando un editor VRML dovete esaminare il contenuto del file e ripulirlo. Ad esempio:

#VRML V2.0 utf8

Transform {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 0 1

18
}
}
geometry Extrusion {
solid FALSE
creaseAngle 3
crossSection [ 0 150, 59 140, 108 108, 140 59, 150 0, 140 -59, 108 -108, 59
-140, 0 -150, -59 -140, -108 -108,
-140 -59, -150 0, -140 59, -108 108, -59 140, 0 150 ]
beginCap FALSE
endCap TRUE
orientation [ 0 0 1 0 ]
scale [ 1.0 0.1, 0.01 0.01 ]
spine [ 0 0 0, 0 0 -300 ]
}
}
]
}

HPKComposer per Csound versione 2.0, 2.1 – Installazione


HPKComposer gira con il JavaDevelopmentKit 1.1 o 1.2. Due files di comando sono
nella cartella dove avete scompattato il file compresso: HPKComposerJDK1.1.bat per
lanciare il programma sotto il JDK 1.1 e HPKCOmposerJDK1.2 per lanciarlo sotto JDK
1.2.

Se state usando JDK 1.2 dovete solamente verificare che la variabile di ambiente
PATH nel file autoexec.bat (Windows), e contenga la locazione dei files binari del
pacchetto java, ad esempio d:/JDK1.2/BIN. Potete allora lanciare HPKComposer usando
HPKComposer.bat. Fate click sul pulsante load e navigate all’interno della cartella con
le composizioni per caricare un esempio. Poi fate click sul pulsante Settings per
terminare le impostazioni. Potete selezionare il lettore esterno di files audio e il
compilatore Csound che volete utilizzare nel pannello output. Usate la finestra di
navigazione per navigare attraverso le cartelle del vostro disco e selezionate gli
eseguibili che vi servono con il pulsante open.

Se state usando JDK1.1 dovete modificare il file HPKComposerJDK1.1.bat come


indicato di seguito.

Procedure di installazione per Windows 95/98NT e JDK1.1

o verificate che la variabile di ambiente PATH sia definita in autoexec.bat, e


contenga la locazione dei files binari di java; ad esempio: d:/JDK1.2/BIN
o scompattate il file compresso hpkc.zip in una cartella di vostra scelta, ad
esempio c:/csound
o avrete il seguente albero di directories: c:\csound\HPKComposer20 oppure
c:\csound\HPKComposer21
o la cartella compositions contiene files di esempio
o images contiene le immagini necessarie al programma
o imagesvrml contiene le immagini necessarie al costruttore di mondi
tridimensionali

19
o instruments contiene esempi di strumenti
o adesso dovete modificare il file HPKComposerJDK1.1.bat per specificare il tipo di
CLASSPATH dei differenti componenti di java

Come impostazione predefinita HPKComposerJDK1.1.bat ha la seguente struttura:

jre -cp .;d:\Java\swing-1.1beta3\swingall.jar;hpkc.jar


hpkc.commonview.CsoundApplication

Dovete apportare modifiche per specificare dove sia esattamente il file singall.jar sul
vostro disco rigido. Non toccate nient’altro e rispettate le maiuscole e le minuscole.

o potete adesso lanciare HPKComposer usando HPKComposer.bat. Fate click sul


pulsante load e navigate all’interno della cartella delle composizioni per caricarne
una. Poi fate click su Settings per perfezionare le impostazioni. Potete selezionare il
lettore audio esterno e il compilatore csound che volete utilizzare, nel pannello
output. Usate la finestra di navigazione per selezionare sul vostro disco rigido i
programmi da utilizzare.

Procedure di installazione per altri sistemi operativi

Eccetto che per la notazione del path, le impostazioni di installazione sono


esattamente le stesse. Seguite gli stessi argomenti adattandoli al vostro sistema
operativo.

Dave Phillips ha scritto le procedure per Linux in un articolo del “Linux Journal”9.

HPKComposer versione 3.0, uno strumento di composizione di arte


visuale tridimensionale che usa Csound e VRML
HPKComposer è uno strumento di authoring per costruire composizioni sonore, e
mondi a tre dimensioni dove l’evoluzione degli oggetti grafici può seguire quella dei
suoni.

Si compone di tre strumenti principali integrati: un compositore di partiture, un sound


designer e un costruttore di mondi tridimensionali (non un modellatore).
HPKComposer genera files che vengono poi processati da strumenti specifici per
renderizzare i differenti media. Genera files .sco e .orc di Csound per la parte dedicata
alla sintesi sonora, e files .html e VRML per i mondi tridimensionali. Csound è un
potente sintetizzatore virtuale che legge i files .orc e .sco per generare files audio o
per la generazione audio in tempo reale. Attraverso HPKComposer questi files sonori
sono inclusi nel mondo VRML e possono essere sincronizzati con l’evoluzione degli
oggetti grafici. I files VRML possono poi essere pubblicati in Internet, se la banda larga
non rappresenta un problema, naturalmente!

9
http://www.ssc.com/lj/issue58/3187.html
20
Questa nuova versione è stata completamente riscritta, ed ha le seguenti
caratteristiche:

o la sintesi del suono viene effettuata con strumenti semi-modulari, in cui ogni
modulo viene scritto secondo il linguaggio di Csound. In HPKComposer è integrato
un editor per estendere l’insieme di moduli disponibili. Per farlo, dovete conoscere
Csound e poche regole. Il vantaggio maggiore è quello di poter usare quasi ogni
nuovo opcode di Csound senza aspettare una versione successiva di
HPKComposer. L’unità di lavoro viene chiamata Instrument, e il loro numero è
illimitato. Attualmente sono forniti due strumenti semi-modulari: Standard
Instrument e Stereo Player Instrument
o ogni strumento ha i propri effetti e può essere indirizzato verso due effetti globali
o la composizione di partiture è basata su Cmask, esteso con il nuovo algoritmo “s” e
la possibilità dei modulatori. Ad esempio, è possibile modulare la frequenza del
generatore di sinusoidi. L’unità di lavoro viene chiamata Score, e il numero
possibile è illimitato. Una Score è legata ad uno strumento. 16 parametri di uno
strumento possono essere controllati dalla partitura, usando lo stesso insieme di
algoritmi utilizzati per il tempo di attivazione, l’altezza, la durata e l’ampiezza degli
eventi di nota
o ogni partitura può essere renderizzata in modo indipendente da Csound
o il mondo VRML è strutturato in gruppi di oggetti grafici. Un insieme di
trasformazioni applicate al gruppo viene applicato a tutti gli oggetti grafici del
gruppo. Ogni oggetto grafico ha un insieme di attributi che possono essere
modificati: il file sonoro, la luce, le trasformazioni, la geometria, il materiale, la
texture 1 e 2. Ci sono 16 interpolatori per ogni oggetto grafico. Questi interpolatori
vengono usati per manipolare l’evoluzione dei parametri degli attributi
o le possibilità di costruzione del mondo VRML sono state potenziate accettando
poche estensioni Blaxxun interessanti. La generazione di texturing multiplo e di
coordinate di texture sono strumenti veramente potenti, e sono supportati
piuttosto bene da Blaxxun. Se volete rimanere all’interno dello standard corrente, o
usare un differente plug-in, basterà non usare queste caratteristiche all’interno di
HPKComposer.

Cosa potete fare con questo strumento?

o creare suoni col vostro strumento favorito


o costruire composizioni Csound complete
o creare nuovi moduli sonori scrivendoli con gli opcodes di Csound, e condividerli
con altri utenti
o costruire mondi tridimensionali usando suoni generati dallo strumento o files
esterni, posizionarli e miscelarli in tempo reale usando la potenzialità Touch
Sensor

Ma…

Non dimenticate che questo strumento è pensato per semplificare l’uso sia di Csound
che del formato VRML, per potersi focalizzare sul processo creativo. Così

21
HPKComposer nasconde la sua sintassi, ma impone anche una struttura al processo
creativo. Se non condividete questa strutturazione non la usate! Abbiamo scritto
questo strumento perché non ne abbiamo trovato uno col quale ci trovavamo bene, o
che avesse le funzionalità che richiedevamo.

Che cosa in futuro?

Poiché abbiamo fatto il primo passo nel collegarci ad una particolare piattaforma
(Blaxxun), ci orienteremo verso OpenGL e le estensioni video che si avviano ad essere
incluse in DirectCsound.
Stiamo per specificare un modo di descrivere lo strumento e la sua interfaccia utente
attraverso il formato .xml, e stiamo cercando altri modi di generazione di partiture
Csound.
E naturalmente più elementi VRML…

HPKComposer, guida all’interfaccia grafica per l’utente


Quando HPKComposer viene lanciato mostra uno spazio di lavoro vuoto con
solamente due pulsanti visibili e attivi:

Fate click su questo pulsante per caricare una composizione esistente. Compare
una finestra di dialogo che vi permette di selezionare un file da caricare.
Fate click su questo pulsante per creare una nuova composizione. Viene
visualizzata una finestra di dialogo che vi permette di dare il nome alla
composizione. Potete anche scegliere una composizione esistente, che verrà
sostituita. Potete specificare il numero di partiture, strumenti, gruppi di oggetti
VRML e gli oggetti per gruppo. La nuova composizione sarà creata con questi
elementi, più tardi potrete aggiungerne altri.

Dopo vengono visualizzati i seguenti pulsanti in cima allo spazio di lavoro, da sinistra
a destra:

Apre un menu a discesa che mostra le azioni possibili.


Mostra la scena VRML all’interno del browser VRML predefinito nelle impostazioni
di visualizzazione
Interrompe la generazione del file audio o del suono se il compilatore Csound
viene utilizzato in tempo reale.
Suona il file audio renderizzato da Csound usando il lettore esterno impostato
nella finestra di impostazioni relativa a Csound. La piccola icona a destra del
pulsante mostrerà un menu a discesa. Se vi fate click sopra. Questo menu
mostra la lista delle partiture; selezionatene una per lanciare il lettore esterno
per ascoltare il suono generato dalla partitura.
Genera i files (.orc, .sco e VRLM) per le partiture e gli oggetti VRML che sono
abilitati (“Generate It”), e lancia Csound per produrre il file audio. Le partiture
vengono concatenate in un unico file. Il nome del file audio è quello della
composizione, seguito dall’estensione .wav o .aiff a seconda delle impostazioni
iniziali. La piccola icona a destra del pulsante mostrerà un menu a discesa.

22
Questo menu mostra la lista delle partiture; selezionatene una per creare i files
corrispondenti e lanciare Csound per la renderizzazione del suono relativo alla
partitura selezionata. Il nome del file audio sarà quello della composizione
seguito da “_”, l’indice della partitura e l’estensione .wav o .aiff a seconda delle
impostazioni iniziali.
Genera i files (.orc, .sco e VRLM) per le partiture e gli oggetti VRML che sono
abilitati (“Generate It”).
Salva il file relativo alla composizione. Questo ha un’estensione .hpk.
Carica una composizione esistente. Si apre una finestra di dialogo per scegliere il
file.
Crea una nuova composizione. Si apre una finestra di dialogo per dare il nome al
file. Potete anche scegliere il nome di un file esistente, che verrà sostituito dal
nuovo file.
Apre una finestra di dialogo per salvare la composizione con un altro nome.

HPKComposer, versione 3.0 – Il modulo di design in Csound


Esistono quattro tipi di moduli Csound:

o sound generator: genera segnali audio


o sound modifier: accetta in ingresso un segnale audio e lo restituisce in uscita
modificato
o modulator: genera un segnale di controllo per modulare altri parametri del
modulo Csound
o effect: rappresenta una particolare categoria di modificatori di suono. I segnali
in ingresso e in uscita devono essere solamente mono o stereo

È possibile usare l’intera sintassi di orchestra di Csound. Tags specifici sono richiesti
per integrarsi col modulo nell’ambiente di sviluppo di HPKComposer: controllo dello
strumento attraverso la partitura, supporto per la modulazione. La scrittura di questi
moduli deve seguire determinate regole:

o il tag <n> deve essere utilizzato per evitare conflitto di nomi nel caso di utilizzo
multiplo dello stesso modulo all’interno del medesimo strumento. Ciò deve
essere effettuato usando variabili di tipo i-rate
o il tag <gx> deve essere utilizzato per accedere alle variabili globali di Csound
definite nell’editor di moduli Csound
o il tag <fx> deve essere utilizzato per accedere alle funzioni definite all’interno
dell’editor di moduli Csound. Queste variabili di funzione sono definizioni
statiche che non vanno cambiate dall’utente all’interno della GUI

Parametri

L’editor di moduli Csound vi permette di definire parametri. A seconda del tipo, questi
parametri saranno modificabili in HPKComposer, e saranno sostituiti dalla loro corretta

23
rappresentazione durante i processi di generazione. Per ogni parametro dovete
definire la descrizione, il suo numero, e poi dati specifici conseguentemente al tipo:

o valore: questo parametro è un valore numerico che può essere stabilito


dall’utente nella GUI e che può essere modulato a piacere
o scelta di funzione: questo parametro rappresenta una lista di funzioni dalla
quale l’utente può selezionarne una all’interno della GUI
o scelta di valore: questo parametro è una lista di valori numerici che l’utente può
selezionare attraverso la GUI
o boolean
o filename
o valore costante
o string
o sound font

Regole di generazione del suono

Il numero di canali di output deve essere specificato nell’editor.

module o pitch: la variabile ipitch può essere usata dall’utente per legare
source l’altezza di questo modulo a quella della partitura. È responsabilità
di chi compone il modulo scrivere ipitch nel punto corretto
o amplitude: il tag <amp> deve essere utilizzato per legare
l’ampiezza di questo modulo a quella della partitura. È
responsabilità di chi compone il modulo scrivere il tag nel punto
corretto
o parameter: i parametri sono specificati come <px> dove x è il
numero del parametro come da sua definizione
Parameters o pitch: è il compositore del modulo a dover creare parametri per la
modulazione dell’altezza

Esempi

<out1> pluck <amp>, ipitch + <p1>, ipitch, 0, 1  il segnale audio generato dall’opcode
pluck viene mandato al canale di uscita
numero 1. L’ampiezza di questo modulo
può essere modulata (<amp>), l’altezza
dell’opcode pluck sarà controllata dalla
partitura (ipitch) ed è modulata dal
parametro numero 1
<out1> oscili <amp>, ipitch + <p2>, <p1>  il segnale audio generato dall’opcode
oscili viene inviato al canale di uscita
numero 1. L’ampiezza di questo modulo
può essere modulata (<amp>), l’altezza
dell’opcode oscili sarà controllata dalla
partitura (ipitch) ed è modulata dal
parametro numero 2. Il parametro 1 è un
24
valore relativo alla scelta della funzione

Regole di modifica del suono

Il numero di ingressi e uscite deve essere specificato nell’editor.

module o input: l’ingresso audio del modulo viene codificato col tag <in1> se
source abbiamo un solo ingresso, o <inx> dove x rappresenta il numero di
canali in ingresso, da 1 a n
o output: l’uscita audio del modulo viene codificata col tag <out1> se
abbiamo un solo ingresso, o <outx> dove x rappresenta il numero di
canali in uscita, da 1 a n

Esempi

asigmf moogvcf <in1>, <p1>, <p2>  l’opcode moogvcf riceve il segnale audio (<in1>).
<out1> balance asigmf, <in1>
L’uscita audio è moogvcf ed è bilanciata col segnale
originario (<in1>) e inviato all’uscita output 1 di
questo modulo. La frequenza di taglio e la risonanza
vengono controllate da due parametri.
alo tone <in1>, <p1>  DUY waveshaping. Questo modulo ha tre uscite e
atm tone <in1>, <p2>
un ingresso.
amd atone atm, <p1>
ahi atone <in1>, <p2>
alo tablei alo, <p3>, 1, .5
amd tablei amd, <p4>, 1, .5
ahi tablei ahi, <p5>, 1, .5
ksigw = <p6>
<out1> = ksigw * alo
<out2> = ksigw * amd
<out3> = ksigw * ahi

Regole relative ai modulatori

Il numero di uscite deve essere specificato nell’editor. Il segnale in uscita deve essere
normalizzato ad 1.

module o output: l’uscita audio del modulo viene codificata col tag <out1> se
source abbiamo un solo ingresso, o <outx> dove x rappresenta il numero di
canali in uscita, da 1 a n

Esempi

25
<out1> lfo 1, <p1>, <p2>  l’uscita dell’opcode lfo viene posta nell’uscita audio del
modulo. La frequenza è controllata dal parametro 1, la forma
d’onda dal parametro 2.

Regole relative agli effetti

L’ingresso audio può essere sia mono che stereo. Stessa cosa per l’uscita audio.

module o input: l’input audio è disponibile come “asig” se l’ingresso è mono,


source come “asigl” per il canale sinistro e come “asigr” per il canale destro,
nel caso di ingressi stereofonici
o output: usate “asig” per l’uscita mono; “asigl” e “asigr” per le uscite
stereo

Esempi

asigr reverb2 asig, <p1>, <p2>  l’ingresso del modulo è monofonico, come pure
asig = asigr
l’uscita

Trucchi per l’editor di moduli di Csound

Creare una copia

Effettuare una copia di un modulo di Csound è semplice e diretto: cambiate il nome


del modulo, il nome del suo gruppo, o entrambi, e selezionate “save” dal menu
“Tool”.

La sincronizzazione tra l’editor di moduli di Csound e la struttura degli strumenti in


HPKComposer

Il controllo sul fatto che ogni cambio nei moduli di Csound non entri in conflitto con la
struttura di strumenti in HPKComposer non è ancora completo. Quindi è preferibile
fare una copia di un modulo e modificare il modulo copiato in caso di cambi strutturali.

Scambio di files

26
Le definizioni dei moduli di Csound vengono archiviate nel file cm.db. Questo è un file
binario non modificabile, ma può esportare ogni modulo in un formato di testo
comprensibile (simile al formato XML). Potete esportare un file alla volta o tutti
insieme in una sola operazione. Potete importare il file esortato all’interno di
HPKComposer per aggiornare il file cm.db. Il nome del file non ha importanza: il
gruppo e il nome del modulo sono archiviati in questo file. Se un modulo risulta già
esistente al momento dell’importazione del nuovo file, tale modulo verrà sostituito
con quello nuovo.

HPKComposer versione 3.01: download


HPKComposer è un ‘applicazione java, il livello richiesto è almeno il java 1.3. Sulla
vostra macchina devono essere installati o il java JRE o il java SDK, propriamente
configurati.

Scaricate questo file compresso e scompattatelo in una cartella a vostra scelta. Potete
poi modificare il file HPKComposer.bat per impostare le variabili di ambiente di
Csound di vostra scelta.

Lanciate HPKComposer lanciando HPKComposer.bat. Caricate una composizione e


aprite la finestra delle impostazioni di Csound e del VRML per definire le locazioni dei
differenti programmi (Csound, il lettore audio e il browser internet).

Se volete renderizzare un esempio VRML vi preghiamo di impostare il file resource


path (suoni e textures) al vostro path. Le risorse sono localizzate nella stessa directory
della composizione.

27