• 検索結果がありません。

第 4 章 Cadential Retention のための TPS 理論の再構成と和声解析理論の再構成と和声解析

4.3 TPS 理論の再構成

4.3.1 和音間距離 ∆

TPSでの和音間距離には以下のような問題点がある.

• 同様の距離を計算しているにも関わらず,状況に応じて二種類の関数(δおよび∆) を使い分けなくてはならない.

• ∆の式については,計算方法が複数あるにも関わらず,その詳細な計算方法の表記 が存在せず,計算時に人が判断を行っている状態である.

これらの問題点を解決するために,自然数の集合をNとして,これまでδおよび∆で 行っていた計算を一つにまとめ,和音間距離を計算する関数∆:C×K×C×K→Nを以 下のように定義した.

(xf,yf,xt,yt)

=







δ(xf,yf,xt,yt) (if FT , ∅and ytF) min(xf,yf,toni(z),z)(toni(z),z,xt,yt)|zFT} (if FT , ∅and yt <F) δ(xf,yf,xt,yt) (if FT = ∅and yf =yt) dic(xf,yf,xt,yt) (if FT = ∅and yf ,yt)

(4.8) ここで,F = (pipo(yf)∪ {para(yf)}),T =(pipo(yt)∪ {para(yt)})である.また,関数min は任意の順序集合から最小元を返す関数であり,関数dicは主調から全調(24種)への距 離を計算しダイクストラ法で最短距離を求める関数である.このdic関数では,現在の調 wpから到達できる調はwpの近親調wrのみであるとし,各調への距離の計算は以下の式 を用いて行う.







(yf,wp,toni(wr),wr) (if wp = xf)

(toni(wp),wp,yt,wr) (if wr= xt)

(toni(wp),wp,toni(wr),wr) (otherwise)

(4.9)

ここで,これらを用いたdic関数について,および∆関数について説明を行う.

関数∆について,その第一式は主調から近親調への計算を表している.また,第三式 は距離の計算を行う二つの調が自分自身である場合の計算方法である.第二式は,一つ の経由調を挟んで目的の調に到達できる場合の計算方法であり,具体的には図4.3の円で 囲った調同士の関係にあるような計算の際に用いられる.第四式については,ダイクスト ラ法を用いるdic関数を用いるが,ダイクストラ法は最短経路を計算するための手法であ り,ここの関数における計算のアルゴリズムは以下のようなものである.

1. yf の調のコストを0,それ以外の調のコストを大きな値(例:100など)に設定する.

2. yf のコストを確定する.

3. yf の調(図のC)から到達可能な世界(近親調:GFaedc)への距離を,式 4.9の第一式を用いて計算し,この値をコストとして各近親調に記録する.

4. コストが確定されていない調の中で最もコストが小さくなるものを選択し,それを 確定する.

5. 4で確定した調のコストが確定されたものを除く近親調に対し,式4.9の第二式を用 いて計算を行う.その際,到達先の調がytと一致する場合には第三式を用いる.

6. 4〜5を繰り返し,すべての調のコストを確定させる.

7. ytに記録されているコストを∆の値として返す.

また,式4.8で用いられているδ:C×K×C×K→Nは以下で定義される.

δ(xf,yf,xt,yt)=















reg(yf,yt)+cho(xf,yf,xt,yt)+bs(xf,yf,xt,yt)

(if xtpipo(xf) or xf = xt) reg(yf,yf)+cho(xf,yf,toni(yf),yf)+bs(xf,yf,toni(yf),yf)

+reg(yf,yt)+cho(toni(yf),yf,toni(yt),yt)+bs(toni(yf),yf,toni(yt),yt) +reg(yt,yt)+cho(xt,yt,toni(yt),yt)+bs(xt,yt,toni(yt),yt)

(if xt = para(xt))

100 (otherwise)

(4.10)

図4.3∆関数の第二式を用いる例

これらの式により,これまで人の判断でどの式を用いるかを選択していたTPSでの計 算式が自動で計算できるようになり,また,∆のみを用いて距離の計算が行えるようにな る.式の三段目は,近親調のみを計算対象にしているため通常到達不可能な選択肢である が,δを関数として成り立たせるために大きな値を戻り値として設けているためこのよう な値になっている.

また,関数reg,cho,bsはTPSのi,j,kにそれぞれ対応しており,以降でその定義を 行う.

関連したドキュメント