コード表示の順番について
メッセージ
現状の仕様では、ある和音に対して複数のコードが存在する場合、Cに近いコードから順に表示されるようですが、これを以下の優先順位で表示させて頂きたく思います。
1. 判定する音のに対して、構成音の割合が大きい物
(わかりやすくするために、CM7を使ったため、実際にはDominoで問題が起こりません。) たとえば、ドミソシという和音に対して、 CM7は4/4音の100%含まれていますが、 Em は3/4音の75%となるので、 この場合は、CM7 Emと表示されます。
2. 同じ割合になったもののなかで、最低音がルートになっているもの
わかりやすい例でいうと、ディミニッシュセブン・オーギュメントなど、 転回しても形の変わらない物があります。 たとえば、 Bdim7 / B D F Ab / Ddim7 / D F Ab B / Fdim7 / F Ab B D / Abdim7/ Ab B D F / のように、構成音が同じなのに、コード名が違う物に対応するために、 入力されている和音の最低音を、ルートにもつコードを優先表示するようにして頂きたいです。
上の例だと、低い方からシレファラbの時には、Bdim7を、 同様に低い方からレファラbシの時にはDdim7を優先して表示して頂きたいです。
3. それ以外
実際に問題の起こるケースでさらに説明します。
たとえば、GM9(B2 G3 D4 F#4 A4)という和音があったとすると、
現在のdominoでは、ルートがCからBに向けて順番に
D6 D6sus4 GM9 Bm7 のように判別されますが、
より構成音の割合が大きい物の順に並べると、
GM9 / G3 B2 D4 F#4 A4 / 100% (マッチの割合)
D6 / D4 F#4 A4 B2 / 80%
D6 sus4 / D4 G3 A4 B2 / 80%
Bm7 / B2 D4 F#4 A4 / 80%
となり、続いて2の条件を適用すると、
この場合B2が最低音となりますから、
Bをルートとして持つBm7が優先され、
GM9 / G3 B2 D4 F#4 A4 / 100%
Bm7 / B2 D4 F#4 A4 / 80%
D6 / D4 F#4 A4 B2 / 80%
D6 sus4 / D4 G3 A4 B2 / 80%
という順番になるかと思います。
細かいことですが、ご検討お願いします。
- ちょっと説明を補足させていただきました。 -- るふと? 2007-05-03 (木) 10:54:33
- 高速化のために、128音階を1オクターブ(12音階)に合成し、それがどのコードになるかを(あらかじめ)判別していますので、①の割合による順序は大丈夫だと思いますが、②につきましてはどれがルートなのか判別できませんので、今の組み方ではムリかなぁとは思います。1だけでもいいですか? -- たかぼー? 2007-05-03 (木) 16:40:21
- 2はオマケみたいなものなので1だけでもいいです。よろしくお願いします。 -- 48kHz? 2007-05-03 (木) 17:15:34
- やってみました→http://www.tkb-soft.hmcbest.com/Domino115_dev001.ZIP -- たかぼー? 2007-05-03 (木) 18:05:15
- 試用してみましたが今のところ問題ありません。対応ありがとうございました。 -- 48kHz? 2007-05-04 (金) 10:00:50