1 minute read

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.