Csound – MaxMSP – Suddivisioni temperate dell’ottava in numero variabile di macro/microtoni.
Nella musica elettronica spesso si utilizzano divisioni dell’ottava diversa d quella tradizionale in 12 toni.
I calcoli non sono così immediati in quanto sappiamo dalla psicoacustica che la successione delle altezze segue una progressione geometrica e non aritmetica.
Ho fatto una patch in MaxMSP e uno strumento in Csound che data la frequenza di partenza e il numero di suddivisioni desiderate dell’ottava consentono di calcolare le frequenze dei “toni” intermedi.
Scrivetemi se vi interessano le due patch e sarò ben felice di mandarvele!
Buona musica.
Stefano.
Alcune suddivisioni sono possibili anche utilizzando i 12 semitoni:
- Do – Fa# – Do
- Do – Mi – Sol# – Do
- Do – Re – Mi – Fa# – Sol# – La# – Do
Per le altre ci viene in aiuto la matematica.
MaxMSP:
Csound:
Preferisco senza dubbio l’approccio di Csound molto più lineare…sarà anche forse perchè con MaxMSP non ho mai avuto grande affinità.
In Csound si inseriscono 4 parametri:
- La frequenza di partenza.
- Il numero di suddivisioni.
- l’ottava.
- La nota.
Di seguito il listato di Csound:
<CsOptions>
</CsOptions>
<CsInstruments>
sr = 44100
kr = 4410
ksmps = 10
nchnls = 2
0dbfs = 1
;; SUDDIVISIONE DELL’OTTAVA IN PIU’ INTERVALLI TEMPERATI
instr 1
inumerodivisioni = p4
; Numero di suddivisioni dell’ottava.
ifrequenzabase = p5
; Frequenza di partenza.
iottava = p6
; 1 = ottava fondamentale, 2 = prima ottava superiore
; 3 = terza ottava superiore, etc…
inota = p7 – 1
; 1 = nota di partenza, 2 prima nota successiva
ifreq = (ifrequenzabase * iottava) * (2 ^ (inota/inumerodivisioni))
print ifreq
endin
</CsInstruments>
<CsScore>
; Suddivisione in 12 semitoni temperati – 1′ ottava
i1 0 1 12 100 1 1
i1 + 1 12 100 1 2
i1 + 1 12 100 1 3
i1 + 1 12 100 1 4
i1 + 1 12 100 1 5
i1 + 1 12 100 1 6
i1 + 1 12 100 1 7
i1 + 1 12 100 1 8
i1 + 1 12 100 1 9
i1 + 1 12 100 1 10
i1 + 1 12 100 1 11
i1 + 1 12 100 1 12
; Suddivisione in dodici semitoni temperati – 2′ ottava
i1 + 1 12 100 2 1
i1 + 1 12 100 2 2
i1 + 1 12 100 2 3
i1 + 1 12 100 2 4
i1 + 1 12 100 2 5
i1 + 1 12 100 2 6
i1 + 1 12 100 2 7
i1 + 1 12 100 2 8
i1 + 1 12 100 2 9
i1 + 1 12 100 2 10
i1 + 1 12 100 2 11
i1 + 1 12 100 2 12
; Suddivisione in 7 note – 1′ ottava
i1 + 1 7 500 1 1
i1 + 1 7 500 1 2
i1 + 1 7 500 1 3
i1 + 1 7 500 1 4
i1 + 1 7 500 1 5
i1 + 1 7 500 1 6
i1 + 1 7 500 1 7
i1 + 1 7 500 2 1
e
</CsScore>
</CsoundSynthesizer>