読者です 読者をやめる 読者になる 読者になる

「絶対音感の終焉」

のんびり気ままにゴーイングマイウェイ ~Blog by 川本零~

絶対音感と相対音感のアルゴリズムを考える(其の十八)

 

前回は処理2の前にこんな1文を追加しましたが、

移動ド[i] = 移動ド[i - 1] * 音程[i];
周波数[i] = 調 * 移動ド[i]; //処理2

今回は処理2の後にこんな1文を追加します。

周波数[i] = 調 * 移動ド[i]; //処理2
調 = 周波数[i];

この処理は音を取るのと同時に、

「その音が次の音取りの基準」

となるようにその値を調に一旦退避することで、
次の音を取る(iがカウントアップした)ときに、

「調が直前の音(周波数[i - 1])」

を指すことになります。また、

「移動ドは調(ここでは周波数[i - 1])との音程」

を表しているため結果的に、

周波数[i] = 周波数[i - 1] * 音程[i]; //処理1

と同等の処理になります。

 

調の値が変わると言うことは音楽的に言えば、

「転調する」

つまり、これは音を取る度に今取った音を、

「『ド』に読み替え(ムタツィオ)する」

操作を表しています。

ただし、本来読み替えは実際の転調時に行うもので、
今回の処理は、

「直前の音を基準として音を取るための特殊な用法」

と言えるでしょう。

そもそもこのように音を取る度に調が変わったら、
曲を通しての一貫性が失われ、調性が生じません。

 

ちなみに、

「任意の音を開始音として完全5度上げる(ただし、
 開始音からオクターブ離れたらオクターブ下げる)
 これを12回繰り返してまた開始音に戻ってくる」

と言う音程操作ができる人もいると思いますが、
おそらく内部的には、

「『ソ/ド』と12回繰り返して読み替える」

のと同じ操作が行われているのではないでしょうか?

ただし、このとき完全5度の振動比を3/2として
5度圏を一周すると、

「ピタゴラスコンマ」

が発生し、正確には開始音に戻ってきません。

なお、音程を上げるのではなく下げたい場合は、
例えば短3度下であれば、

「その転回音程の長6度上のオクターブ下の音」

と考えて音を取る人もいるのではないでしょうか?

(次回に続く・・・)

 

関連記事

(其の一) (其の二) (其の三) (其の四) (其の五)

(其の六) (其の七) (其の八) (其の九) (其の十)

(其の十一) (其の十二) (其の十三) (其の十四) (其の十五)

(其の十六) (其の十七) (其の十八) (其の十九) (其の二十)

(其の二一) (其の二二) (其の二三) (其の二四) (其の二五)