niszetの日記

10年目エンジニアが最近勉強したことを忘れないようにメモをする

Csoundで純正律と平均律の違いを聞いてみる

純正律平均律

さて、昨日書いたコードはいわゆる平均律によるものでした。
純正律平均律について、語れるほど詳しくないのでwikipediaの記事をとりあえず貼っておきます。

純正律 - Wikipedia

平均律 - Wikipedia

簡単に言えば、平均律はオクターブ(周波数が倍、半分)の周波数を12等分したもの。純正律は和音を構成する音の比が整数になる、という感じですね。平均律は普段使っている楽器がそうなっているのでなんとなくわかるものの、純正律の半音上げ/下げがどうなるのかは要勉強。A#とBbは違う音だと言っているんですよね。よくわかりませんねぇ。

ということで、聞き比べのためにwikipediaに書いてあった関係式を使ってCsoundのコードを書いてみました。 音の差わかりますか?確かに違う気もするけど…気のせいにも思えるなぁ。

<CsoundSynthesizer>
<CsOptions>
-odac
</CsOptions>
<CsInstruments>
instr 1
aSin      poscil    0dbfs/4, 440*2^(3/12) ;do
          out       aSin
endin

instr 2
aSin      poscil    0dbfs/4, 440*2^(3/12)*5/4 ;mi ;7/12
          out       aSin
endin

instr 3
aSin      poscil    0dbfs/4, 440*2^(3/12)*3/2 ;so ;10/12
          out       aSin
endin


instr 11
aSin      poscil    0dbfs/4, 440*2^(3/12) ;do
          out       aSin
endin

instr 12
aSin      poscil    0dbfs/4, 440*2^(7/12) ;mi ;
          out       aSin
endin

instr 13
aSin      poscil    0dbfs/4, 440*2^(10/12) ;so ;
          out       aSin
endin

</CsInstruments>
<CsScore>
; chord C
i 1 0 2 
i 2 0 2
i 3 0 2

i 11 2.2 2
i 12 2.2 2
i 13 2.2 2

</CsScore>
</CsoundSynthesizer>