純正律と平均律
さて、昨日書いたコードはいわゆる平均律によるものでした。
純正律と平均律について、語れるほど詳しくないので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>