音程
2個音間音高的距離
1から始まる自然数と quality の組み合わせ
0 始まり音程
通常の音程が、同一の音を 1 度として 1 ずつ大きくなっていくのが数学的・計算機的に良くないので新たに 0 始まりの音程を考える
通常の音程 - 1 とする
$ d(\mathrm{C},\mathrm{C})=0
$ d(\mathrm{C},\mathrm{E})=2
$ d(\mathrm{C},\mathrm{F})=3
$ d(\mathrm{C},\mathrm{G})=4
$ d(\mathrm{C3},\mathrm{C4})=7
0 始まり音程は距離である
非退化性
$ ^{\forall x,y}\lbrack d(x,y) = 0 \iff x=y\rbrack
対称性
$ ^{\forall x,y}\lbrack d(x,y)=d(y,x)\rbrack
三角不等式
$ ^{\forall x,y,z}\lbrack d(x,y)+d(y,z)\ge d(x,z)\rbrack
音度の差の絶対値として求められるので、これは $ L_1 距離
$ |x-y|
五度圏距離
五度圏上で扱うことで chroma 的な計算をしつつも major/minor 判定等も簡単に行える
$ \mathrm{dist5}(x,y)=(7*\mathrm{chroma}(x,y))\ \mathrm{signedMod}\ 12\in\lbrack-6,6\rbrack
Triad は基本的に -6 (d4)
chroma like な計算ができる
可以像chroma计算
table:五度圏距離とchroma, interval の相互変換
dist5 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
chroma 6 1 8 3 10 5 0 7 2 9 4 11 6
interval d4 m1 m5 m2 m6 P3 P0 P4 M1 M5 M2 M6 A3
$ \mathrm{interval}=\begin{cases}\mathrm{quality}:\mathrm{sign}(\mathrm{dict5}(x,y))\\\mathrm{abs}:4*(\mathrm{dict5}(x,y))\ \mathrm{mod}\ 7\end{cases}
1始まり音程にしたい場合は $ \mathrm{interval.abs}に 1 足す
$ \mathrm{dict5}=(2*\mathrm{interval.abs}\ \mathrm{mod}\ 7)-(\mathrm{interval.sign<0})?7:0
音高が大きくなる変化を$ +で、小さくなる変化を$ -で表したい
quality と正負符号が混在して途中の計算が分かりづらい問題
過去ログ
符号付き 0 始まり音程
前の音よりも後の音の方が高ければ正、低ければ負の符号を付けた 0 始まり音程
$ \mathrm{interval}(\mathrm{C}3,\mathrm{E}3)=2
$ \mathrm{interval}(\mathrm{E}3,\mathrm{C}3)=-2
符号付き 0 始まり音程は音度の差分である
$ \mathrm{interval}(x,y) = y-x
だから、足すと元の音を求められる
$ y = x + \mathrm{interval}(x,y)
長短記号付き符号付き 0 始まり音程
符号付き 0 始まり音程に $ \mathrm{d},\mathrm{m}, \mathrm{P},\mathrm{M},\mathrm{A} といった、長短記号を付加する
$ \mathrm{interval}(\mathrm{C}3,\mathrm{E}3)=\mathrm{M2}
$ \mathrm{interval}(\mathrm{E}3,\mathrm{C}3)=-\mathrm{M2}
table:chroma to quality_interval_from_0
chroma 0 1 2 3 4 5 6 7 8 9 10 11 12
interval P0 m1 M1 m2 M2 P3 A3/T/d4 P4 m5 M5 m6 M6 P7
chroma*7 mod 12 0 7 2 9 4 11 6 1 8 3 10 5 12
並び替える
chroma*7 mod 12 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
interval d4 m1 m5 m2 m6 P3 P0 P4 M1 M5 M2 M6 A3
chroma to interval
$ \mathrm{qualty}\circ\mathrm{interval}(x,y)=\mathrm{sign}(7*\mathrm{chroma}(x,y)\mod{12})
ここでの mod は$ -\frac{M}{2}\le{x}\ \mathrm{mod}\ {M}\lt\frac{M}{2} のイメージ
符号で d, m と M, A に分ける
$ \mathrm{abs}\circ\mathrm{interval}(x,y)=4*(7*\mathrm{chroma}(x,y)\ \mathrm{mod}\ {12})\mod{7}
$ \because4\equiv2^{-1}\mod{7}
mod12 すると、更に 7 つ周期で度数が変わっているので、mod 7 上で並べる
interval to chroma
$ 7*\mathrm{chroma}(x,y)\ \mathrm{mod}\ 12=\begin{cases}(2*\mathrm{abs}\circ\mathrm{interval}(x,y)\ \mathrm{mod}\ 7)&(\mathrm{case: major\ quality})\\(2*\mathrm{abs}\circ\mathrm{interval}(x,y)\ \mathrm{mod}\ 7)-7&(\mathrm{case: minor\ quality})&\end{cases}
chroma*7 mod 12 空間 (五度圏) 上では計算ができる
例: m2 + M2 = P4 が成立する (m2(-3)+M2(4)=P4(1))
chroma 上で計算ができる & chroma は環なので、定数倍しても計算が保存されるため
分かりやすい計算かどうかは微妙