HMSL


HMSL è un linguaggio di programmazione object-oriented sviluppato nel corso di quasi un decennio da Larry Polansky, David Rosenboom e Phil Burk. È stato pensato per aiutare il compositore nella composizione ed esecuzione in tempo reale di computer music.

Cenni storici – Nel 1980 Polansky e Rosenboom iniziarono a lavorare su HMSL, acronimo di Hierarchical Music Specification Language. La prima versione, la 1.1 per computer Amiga Commodore, fu rilasciata nel 1983 presso il Center for Contemporary Music del Mills College di Oakland. Nel 1984 Phil Burk si inserisce nel gruppo di lavoro; l’anno successivo viene rilasciata la versione 3.0 estesa anche ai computer Macintosh. In particolare, con questa versione, Burk definisce una programmazione object-oriented.[1] HMSL è stato distribuito insieme al codice sorgente, per consentire a tutti gli utenti un lavoro di personalizzazione e miglioramento. Sebbene nel corso degli anni si siano succedute differenti versioni, la struttura di HMSL, nel complesso, è rimasta coerente a quella ideata fin dal 1980.

Il tempo reale – I ricercatori di HMSL impostarono il lavoro iniziale con l’obbiettivo di realizzare uno strumento informatico che fosse flessibile, portabile e, cosa più importante, adatto ad un utilizzo in tempo reale, sia nella fase compositiva che performativa. Quest’ultimo aspetto ha indirizzato lo sviluppo del linguaggio verso precise direzioni. Dal punto di vista dell’hardware, ad esempio, HMSL fu pensato innanzitutto per funzionare con i processori a 16 bit introdotti proprio negli anni Ottanta. Si utilizzarono processori Motorola 68000, utilizzati come processori host, e Forth, dedicati al sistema operativo e al linguaggio ODE, con cui HMSL è stato sviluppato. In particolare i processori Forth si dimostravano particolarmente adatti al tempo reale per via della loro flessibilità nel controllo dell’hardware e per la estensibilità. Per diversi anni sono stati adottati nell’ambito della computer music, tanto che li ritroviamo anche alla base di programmi quali FORMULA e MASC.[2]

ODE – Oltre a Forth, vi è un altro ambiente di programmazione fondamentale in HMSL: ODE (Object Development Environment) che è stato introdotto da Phil Burk nel 1986 al fine di creare strutture di dati per HMSL. Negli anni successivi ODE è stato utilizzato in ogni aspetto della programmazione. Questo linguaggio si presenta come molto solido, completo di numerose utilità, facilmente accessibile e particolarmente adatto al tempo reale. Seppur in minima parte, ODE si basa su Smalltalk-80 per via dell’utilizzo di concetti quali Class, Object, Message Passing, Inheritance, etc. La sintassi, invece, si ispira al linguaggio NEON, per computer Macintosh, e su una prima versione di Forth. Proprio quest’ultimo aspetto determina la principale differenza rispetto a Smalltalk dove certe strutture di basso livello, come le costanti, variabili o funzioni semplici, sono considerate comunque degli oggetti, differentemente che in ODE, che risulta utilizzato solo per implementare strutture dati di alto livello. L’aspetto più significativo di questo linguaggio, invece, è il fatto di essere stato ottimizzato per le esecuzioni musicali in tempo reale.[2]

Score Entry System – Si tratta di una delle funzionalità più interessanti tra quelle presenti in HMSL. Il sistema SES consente l’inserimento dei dati attraverso un metodo simile a quello della tradizione musicale. Per questo motivo si adottano i nomi delle note, gli stessi valori ritmici e così via. L’inserimento, va precisato, avviene comunque attraverso una normalissima tastiera da computer.[2]

L’approccio grafico – Nel loro articolo, gli sviluppatori di HMSL, hanno definito questo linguaggio come un ambiente WYSWYH (What You See, What You Hear): quello che vedi, quello che ascolti, questo per sottolineare l’utilizzo, all’interno di HMSL, di un ambiente grafico attraverso interfacce che facilitano l’accesso da parte degli utenti. Questi ultimi hanno così la possibilità di gestire e manipolare i dati, in tempo reale, agendo su delle schermate grafiche dedicate a diverse funzioni. Per rendere ancora più agevole l’utilizzo, quindi, HMSL è stato dotato di librerie grafiche, anch’esse object-oriented, a cui gli utenti hanno accesso sia ad un livello macro sia micro, per eventuali personalizzazioni.[2] Tra le schermate grafiche, ad esempio, vi è quella dedicata al sequencer, dotato di 16 tracce, che ricalca in tutto il tipico sequencer MIDI, con la differenza di poter personalizzare la struttura grafica dell’interfaccia.

Le librerie – Per un utilizzo immediato da parte dell’utente, HMSL è stato equipaggiato con una libreria di strumenti predefiniti. Si tratta di strutture adatte anche a successive modifiche e personalizzazioni da parte degli utenti stessi. All’interno di questo insieme troviamo anche strumenti che consentono di utilizzare il sistema audio dell’Amiga, almeno per quanto riguarda le prime versioni, e strumenti MIDI. Questo ultimi, oltre a prevedere tutti gli aspetti caratteristici dello standard MIDI, si prestano anche a successive modifiche utili alla gestione, personalizzata, di controller MIDI esterni.

Le Units – All’interno di HMSL, Robert Marsanyi ha sviluppato il concetto di Units, equivalente a quello delle Units Generator dei Music N. Le Units di Marsanyi sono degli oggetti informatici (più o meno complessi a seconda delle funzioni svolte), dotati di interfaccia grafica, che possono essere collegati tra di loro come fossero dei moduli di un sintetizzatore analogico, al fine di creare strumenti più complessi, esattamente come avviene con le UG dei Music N. Esiste, inoltre, un altro punto d’incontro tra HMSL e i Music N. Phil Burk, insieme al compositore Nick Didkovsky, ha utilizzato HMSL anche per generare partiture di Csound su computer Macintosh II.[2]

Ulteriori sviluppi: JMSL – Come accennato in precedenza, HMSL è stato soggetto ad uno sviluppo continuo nel corso degli anni. Tra le altre ricerche di interesse va menzionata quella svolta da David Rosenboom, finalizzata a creare un ambiente di lavoro in cui HMSL potesse interagire con un Elettro Encefalo Gramma (EEG). Rosenboom, così, ha portato avanti, aggiornandole all’informatica, delle ricerche già avviate negli Sessanta e Settanta. Altrettanto importante, invece, è il lavoro svolto da Didkovsky, in collaborazione con Phil Burk (a sua volta autore di JSYN), che ha portato alla nascita di JMSL, considerato il successore di HMSL.

 

Per scrivere questa voce ho letto:

[1] Larry Polansky, Live Interactive Computer Music in HMSL, 1984-1992, Computer Music Journal, Vol. 18[2], 1994.
[2] Larry Polansky, Phil Burk, David Rosenboom, HMSL (Hierarchical Music Specification Language): A Theoretical Overview, Perspectives of New Music, Vol. 28 [2], 1990.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *