Come già visto nell’articolo introduttivo al progetto di ricerca, la Wave Terrain Synthesis (WTS) è una tecnica di sintesi basata sull’esplorazione bidimensionale di uno spazio geometrico. Un puntatore, seguendo una traiettoria, scansiona una superficie definita da una funzione a due variabili z=f(x,y)z=f(x,y), dove i valori di ampiezza estratti lungo l’asse zz determinano l’andamento del segnale.

Nella sua implementazione classica, tuttavia, la corrispondenza diretta tra la conformazione del terreno e l’ampiezza dell’onda acustica limita la flessibilità timbrica del sistema, vincolando strettamente lo spettro risultante alla morfologia della superficie e alla frequenza di scansione.

L’obbiettivo di questo progetto di ricerca è estendere le potenzialità timbriche di questa architettura, esplorando le possibilità offerte dalla WTS come dominio di controllo dinamico e non lineare ad audio rate. All’interno del modello proposto, i dati estratti dall’esplorazione della superficie non generano direttamente il segnale audio; essi vengono invece interpretati e mappati per modulare in tempo reale i parametri e le funzioni di trasferimento di un motore a distorsione di fase.

TERRENO PROCEDURALE

Nelle prime fasi di sviluppo del prototipo, la necessità primaria è stata quella di testare le potenzialità espressive del sistema su superfici complesse e non lineari. Invece di ricorrere a funzioni periodiche o a file pre-renderizzati, l’architettura della patch sfrutta l’oggetto nativo jit.bfg (Basis Function Generator) per calcolare frattali, rumori procedurali e funzioni ad alta variabilità, garantendo ambienti morfologici articolati e asimmetrici.

Per consentire all’esecutore di visualizzare in maniera più chiara la complessità dello spazio di controllo, il prototipo implementa un sistema di rendering tridimensionale in tempo reale. L’oggetto jit.bfg è configurato per generare una matrice bidimensionale a singolo piano, dove il valore di ogni cella rappresenta l’altezza (l’asse zz) di quel punto nello spazio. Questa matrice viene elaborata come una vertex map e inviata all’oggetto jit.gl.mesh. All’interno del contesto OpenGL di Max, i dati bidimensionali della matrice vengono modellati nello spazio tridimensionale.

L’utente si trova così davanti a un panorama geometrico 3D che si deforma in sincrono con le modifiche ai parametri della funzione, rendendo immediatamente percettibile la relazione tra la topografia visiva e la risposta acustica del sistema.

Sebbene le prime versioni del prototipo includessero un modulo statistico basato su catene di Markov per automatizzare le transizioni tra le diverse funzioni morfologiche del terreno, questa architettura non è stata implementata nella release qui documentata. La decisione è derivata dalle repentine mutazioni del modello stocastico, le quali generavano un’eccessiva instabilità spettrale ad audio rate, evidenziando la necessità di un controllo più circoscritto e prevedibile sulla topografia della superficie.

ORBITE TRADIZIONALI E VETTORIALI

Un aspetto centrale della Wave Terrain Synthesis è la traiettoria seguita dal puntatore. Tradizionalmente, la scansione del terreno avviene tramite orbite geometriche regolari e periodiche: cerchi, ellissi o curve di Lissajous.

Per espandere le possibilità espressive del sistema, il prototipo introduce un’ulteriore modalità di interazione: la generazione di orbite vettoriali disegnate manualmente. Non si tratta della sostituzione dei modelli standard, i quali restano implementati nel sistema, ma di un’estensione gestuale che permette di confrontare il rigore e la precisione delle curve tradizionali con la fluidità e l’organicità del disegno umano.

L’interfaccia di cattura è implementata tramite una subpatch, all’interno della quale l’utente disegna una traiettoria a mano libera all’interno dello spazio bidimensionale di un oggetto jit.lcd. Un algoritmo di parsing intercetta i movimenti del mouse, registrando le traiettorie, le accelerazioni e le decelerazioni del gesto. Il flusso di dati viene quindi scritto all’interno di una coppia di buffer audio, contenenti le coordinate spaziali (x)(x) e (y)(y). Una volta memorizzata l’orbita bidimensionale, la lettura viene eseguita da una coppia di oscillatori audio rate. Questo garantisce una eccellente stabilità e permette di scansionare e modulare la velocità dell’orbita con la massima precisione.

Poiché il tracciato viene eseguito manualmente, il primo e l’ultimo punto definiti dall’utente non coincideranno quasi mai nello spazio bidimensionale. Dal momento che questi dati verranno letti in ciclo continuo dagli oscillatori, questa discontinuità geometrica creerebbe un salto repentino di coordinate a ogni fine ciclo, provocando click indesiderati. Per ovviare a questo problema, i dati passano attraverso una logica di interpolazione che collega linearmente le coordinate finali con quelle iniziali. Questo processo “chiude” l’orbita, garantendo una perfetta periodicità del ciclo di scansione e una riproduzione audio fluida e priva di artefatti transitori.

CAMPIONAMENTO DEL TERRENO E POLIFONIA

Il campionamento dei dati del terreno avviene all’interno di un ambiente polifonico gestito attraverso una subpatch poly~.
La matrice bidimensionale generata dall’oggetto jit.bfg nella patch principale viene passata come riferimento condiviso a ciascuna istanza di poly~, dove l’oggetto jit.peek~ estrae il valore dell’altezza del terreno (z)(z) alle coordinate ricevute dagli oscillatori x,yx, y dell’orbita.

L’implementazione del campionamento all’interno dell’ambiente polifonico consente a ciascuna voce di generare traiettorie a frequenze indipendenti. L’utente può infatti vincolare la frequenza degli oscillatori di scansione a un rapporto di proporzionalità diretta con la frequenza fondamentale della nota MIDI in ingresso, oppure svincolarla per operare a bassa frequenza (LFO), estendendo le possibilità di modulazione.

Il segnale audio risultante dall’estrazione effettuata da jit.peek~ costituisce il modulo di controllo per il motore di distorsione di fase, il quale è in grado di operare con diverse curve di trasferimento (esponenziale, logaritmica, iperbolica), permettendo una modulazione non lineare dell’indice di distorsione guidata direttamente dalla topografia del terreno.

–parte 2–