mapStateToParameter
mapStateToParameter
Opcode - Documentazione
Descrizione
Questo opcode converte gli stati astratti di una composizione (densità, registro, movimento) in valori concreti utilizzabili per generare eventi musicali nel sistema Delta-Engine. Fornisce un range di valori (minimo e massimo) appropriati per ciascun tipo di parametro, basandosi sullo stato corrente.
Sintassi
iMin, iMax mapStateToParameter iStateIndex, SparamType
Input
iStateIndex
(i-rate): Un valore da 0 a 2 che rappresenta l’intensità dello stato. Valori intermedi sono supportati e trattati su una scala continua.SparamType
(String): Il tipo di parametro da mappare, specificato come stringa. Valori validi: “density”, “register”, “movement”.
Output
iMin
(i-rate): Il valore minimo del range per il parametro richiesto.iMax
(i-rate): Il valore massimo del range per il parametro richiesto.
Dettagli di funzionamento
Mapping densità
Converte lo stato di densità in un range di eventi sonori sovrapposti:
- Stato 0 (bassa densità): pochi eventi sovrapposti
- Stato 2 (alta densità): molti eventi sovrapposti (fino a 1/3 di
gi_NUMEVENTI
) - Usa una curva quadratica per enfatizzare gli stati più densi
Mapping registro
Traduce lo stato di registro in un range di ottave da utilizzare:
- Stato 0: ottave basse
- Stato 2: ottave alte
- Utilizza l’intero range di ottave disponibili (definito da
$OTTAVE
)
Mapping movimento
Traduce lo stato di movimento in valori ritmici, con una relazione inversa:
- Stato 0 (statico): valori ritmici alti (circa 18-30) che creano meno movimento
- Stato 2 (dinamico): valori ritmici bassi (circa 1-3) che creano più movimento
- Implementa una distribuzione logaritmica per migliori transizioni musicali
Esempi di utilizzo
; Per ottenere un range di valori ritmici per uno stato di movimento dinamico
iMinRhythm, iMaxRhythm mapStateToParameter 2, "movement"
; Risultato tipico: iMinRhythm = 1, iMaxRhythm = 3
; Per un range di ottave di stato di registro medio
iMinOct, iMaxOct mapStateToParameter 1, "register"
; Usa metà della scala di ottave disponibile
; Per un range di sovrapposizione eventi in stato di bassa densità
iMinEvents, iMaxEvents mapStateToParameter 0, "density"
; Pochi eventi sovrapposti
Note
- I valori restituiti sono sempre arrotondati all’intero più vicino per chiarezza
- L’implementazione supporta stati intermedi (es. 0.5, 1.7) per transizioni graduali
- La relazione tra stato di movimento e valori ritmici è invertita, riflettendo il principio che ritmi più bassi creano più movimento spaziale
Integrazione nel sistema
Questa funzione è parte fondamentale del sistema di transizione di stato, consentendo interpolazioni fluide tra diversi stati musicali, con un controllo preciso su densità, registro e movimento della composizione.