(57)【要約】【課題】指のポジションの分散をできるだけ小さくすると同時に、実際の運指を想定することで演奏可能なタブ譜を自動作成する。【解決手段】処理部１は、楽曲データを記憶部５の楽曲データファイル５１から読み出し（Ｓ１）、演奏可能なポジションと指の組み合わせを候補として抽出するフィルタ処理を実行する（Ｓ２）。さらに、処理部１は、演奏時におけるコストを最小化する候補を選択する最適化処理を実行し（Ｓ３）、得られたタブ譜の最適解を記憶部５の最適解ファイル５５に出力する（Ｓ４）。ここで、最適化処理の手法として、多目的最適化遺伝的アルゴリズム等が適用される。【選択図】        図５
2004163446.tif 000002
【特許請求の範囲】
【請求項１】
処理部は、楽曲の各フェイズ毎に音を表すピッチを記憶した楽曲データを記憶部から読み取るステップと、
処理部は、楽曲データに基づき、各フェイズにおける演奏可能なフレットと弦を示すポジションとそのポジションを押さえる指との組み合わせを表す候補データを抽出し、記憶部に記憶するステップと、
処理部は、記憶部から候補データを読み取り、ポジションと指の組み合わせを手指の物理構造上の制約及び可動範囲を考慮した、フレットに関する条件及び弦に関する条件を満足するように、各フェイズの演奏可能な指の組み合わせを判定し、該当する組み合わせを選択するステップと、
処理部は、選択された各フェイズにおける演奏可能なポジションと指の組み合わせを、候補選択データとして記憶部に記憶するステップと、
処理部は、候補選択データを参照し、各フェイズから一つずつ候補を選択して、フェイズ順に数珠繋ぎにして個体を形成し、該個体を複数作成して集団データを形成するステップと、
処理部は、集団データに基づき、交叉及び突然変異を含む操作によって次世代の集団における個体を形成し、次世代の集団データとして記憶するステップと、
処理部は、次世代の集団データを読み取り、該集団データ中の各個体に従い演奏したときの、手指の移動量を表す第1のコストと、手指の負担を表す第２のコストとを求め、第1及び第２コストに重みをつけた総和コスト、第1コスト、第２コストに関して各コストが最小又は所定値より小さくなる個体を選択するように並列に最適化処理を行い、選択された解データを記憶部に記憶するステップと、
処理部は、解データに基づき前記最適化処理を所定世代まで繰り返し実行し、パレート解の集合である所定世代の解データを求めるステップと、
処理部は、記憶部に記憶された所定世代の解データから、予め定められた基準により最適解の集合であるダブ譜データを選択し、それを記憶部に記憶、表示部へ表示及び／又は出力部に出力するステップと、
を含むタブ譜自動作成方法。
【請求項２】
処理部は、候補データを求める際、押弦に使われていない指も含めてすべての指のとり得るポジションを候補として抽出することを特徴とする請求項１に記載のタブ譜自動作成方法。
【請求項３】
前記該当する組み合わせを選択するステップにおいて、フレットに関する条件により候補を選択する処理は、人差指、中指、薬指、小指の順に大きい番号を付与したとき、番号の大きい指が番号の小さい指よりもフレット番号の小さいポジションを押さえる可能性はないことを考慮し、一つのフレットにつき１本の指を割り当てることで連続する４フレット分の範囲をカバーするのが運指の基本とし、人差指とその他の指の間および薬指と小指の間ではストレッチによりそれぞれ１フレット分ずつ可動範囲が大きくなることを考慮することを特徴とする請求項１又は２に記載のタブ譜自動作成方法。
【請求項４】
前記該当する組み合わせを選択するステップにおいて、弦に関する条件により候補を選択する処理は、
人差指、中指、薬指、小指の順に大きい番号を付与したとき、番号の大きい指が番号の小さい指よりも弦番号の大きいポジションを押さえる可能性はないことを考慮し、弦に関する各指の可動範囲を定義すること、
人差指については一本の指で一つのフレットにおける複数のポジションを同時に押弦するセーハと呼ばれる演奏法を考慮していること、
複数のポジションが同じ弦番号にならないこと、
のいずれか又は複数であることを特徴とする請求項１乃至３のいずれかに記載のタブ譜自動作成方法。
【請求項５】
処理部は、前記第1のコストをフェイズｎ−１からフェイズｎに遷移する際のｉ番の指のフレットに関する変位の楽曲における総和により計算することを特徴とする請求項１乃至４のいずれかに記載のタブ譜自動作成方法。
【請求項６】
処理部は、前記第２のコストを、
ロー・ポジションを優先することを考慮し、フレット番号の総和により計算すること、
及び／又は、
指間のストレッチを考慮して定義した関数である移動可能データを参照して、ｉ番の指のポジションｐｉとｊ番の指の相対的な可動範囲により押弦にかかる負担を計算すること
を特徴とする請求項１乃至５のいずれかに記載のタブ譜自動作成方法。
【請求項７】
タブ譜データは、フェイズ毎の、ピッチ、フレット番号、指番号、サステイン、各指のフレットを示すポジションを含むことを特徴とする請求項１乃至６のいずれかに記載のタブ譜自動作成方法。
【請求項８】
処理部は、最適化処理の手法として多目的最適化遺伝的アルゴリズム（Multi-Objective Genetic Algorithm：ＭＯＧＡ）を適用することを特徴とする請求項１乃至７のいずれかに記載のタブ譜自動作成方法。
【請求項９】
処理部は、複数のパレート解を表示部に表示し、ユーザーが入力部により適宜選択することでその中のひとつ又は複数をタブ譜データの最適解として採用し、記憶部への記憶、及び／又は、出力部による印刷の処理を実行するステップを含む請求項１乃至８のいずれかに記載のタブ譜自動作成方法。
【請求項１０】
さらに、処理部は、記憶部のタブ譜データにおける各指のポジション情報から各フェイズでの運指情報を求め、それを楽曲データによる譜面の表示に合成して表示部に表示するステップを含む請求項１乃至９のいずれかに記載のタブ譜自動作成方法。
【請求項１１】
処理部は、楽曲の各フェイズ毎に音を表すピッチを記憶した楽曲データを記憶部から読み取るステップと、
処理部は、楽曲データに基づき、各フェイズにおける演奏可能なフレットと弦を示すポジションとそのポジションを押さえる指との組み合わせを表す候補データを抽出し、記憶部に記憶するステップと、
処理部は、記憶部から候補データを読み取り、ポジションと指の組み合わせを手指の物理構造上の制約及び可動範囲を考慮した、フレットに関する条件及び弦に関する条件を満足するように、各フェイズの演奏可能な指の組み合わせを判定し、該当する組み合わせを選択するステップと、
処理部は、選択された各フェイズにおける演奏可能なポジションと指の組み合わせを、候補選択データとして記憶部に記憶するステップと、
処理部は、候補選択データを参照し、各フェイズから一つずつ候補を選択して、フェイズ順に数珠繋ぎにして個体を形成し、該個体を複数作成して集団データを形成するステップと、
処理部は、集団データに基づき、交叉及び突然変異を含む操作によって次世代の集団における個体を形成し、次世代の集団データとして記憶するステップと、
処理部は、次世代の集団データを読み取り、弦集団データ中の各個体に従い演奏したときの、手指の移動量を表す第1のコストと、手指の負担を表す第２のコストとを求め、第1及び第２コストに重みをつけた総和コスト、第1コスト、第２コストに関して各コストが最小又は所定値より小さくなる個体を選択するように並列に最適化処理を行い、選択された解データを記憶部に記憶するステップと、
処理部は、解データに基づき前記最適化処理を所定世代まで繰り返し実行し、パレート解の集合である所定世代の解データを求めるステップと、
処理部は、記憶部に記憶された所定世代の解データから、予め定められた基準により最適解の集合であるダブ譜データを選択し、それを記憶部に記憶、表示部へ表示及び／又は出力部に出力するステップと、
をコンピュータに実行させるためのタブ譜自動作成プログラム。
【請求項１２】
処理部は、楽曲の各フェイズ毎に音を表すピッチを記憶した楽曲データを記憶部から読み取るステップと、
処理部は、楽曲データに基づき、各フェイズにおける演奏可能なフレットと弦を示すポジションとそのポジションを押さえる指との組み合わせを表す候補データを抽出し、記憶部に記憶するステップと、
処理部は、記憶部から候補データを読み取り、ポジションと指の組み合わせを手指の物理構造上の制約及び可動範囲を考慮した、フレットに関する条件及び弦に関する条件を満足するように、各フェイズの演奏可能な指の組み合わせを判定し、該当する組み合わせを選択するステップと、
処理部は、選択された各フェイズにおける演奏可能なポジションと指の組み合わせを、候補選択データとして記憶部に記憶するステップと、
処理部は、候補選択データを参照し、各フェイズから一つずつ候補を選択して、フェイズ順に数珠繋ぎにして個体を形成し、該個体を複数作成して集団データを形成するステップと、
処理部は、集団データに基づき、交叉及び突然変異を含む操作によって次世代の集団における個体を形成し、次世代の集団データとして記憶するステップと、
処理部は、次世代の集団データを読み取り、弦集団データ中の各個体に従い演奏したときの、手指の移動量を表す第1のコストと、手指の負担を表す第２のコストとを求め、第1及び第２コストに重みをつけた総和コスト、第1コスト、第２コストに関して各コストが最小又は所定値より小さくなる個体を選択するように並列に最適化処理を行い、選択された解データを記憶部に記憶するステップと、
処理部は、解データに基づき前記最適化処理を所定世代まで繰り返し実行し、パレート解の集合である所定世代の解データを求めるステップと、
処理部は、記憶部に記憶された所定世代の解データから、予め定められた基準により最適解の集合であるダブ譜データを選択し、それを記憶部に記憶、表示部へ表示及び／又は出力部に出力するステップと、
をコンピュータに実行させるためのタブ譜自動作成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、タブ譜自動作成方法、タブ譜自動作成プログラム及びそのプログラムを記録した記録媒体に係り、特に、遺伝的アルゴリズムを適用することで計算機により五線譜からギター等に用いられるタブ譜を自動作成する技術に関する。
【０００２】
【従来の技術】
ギターは隣り合う弦の音域が互いに重なり合うように調律されるため、同一のピッチを複数のポジションで発音させることができる。そのため、ピッチを記述した五線譜だけでなく、ポジションを記述したタブ譜（タブラチュア譜）も併用するほうが、ポジションの選択に不慣れな初心者の演奏支援に有効であると考えられる（非特許文献１参照）。しかしながら、他の楽器と同様、ギターの楽曲は通常五線譜で記述され、タブ譜をいつも利用できるとは限らないのが実状である。
【０００３】
本来ピッチとポジションは１対１に対応しないため複数のタブ譜が作成可能であり、唯一正解のタブ譜というものは存在しないが、演奏ミスを招きやすい無理のある手指の移動をできる限り排除したタブ譜がより実用的であると考えられる。そのため、これまでの開発事例ではフレットに関するポジションの分散が小さくなるようにタブ譜を作成する方法が検討されている。例えば、ギターの指板をフレットに関して複数の領域に分割し、対話的に演奏者の選択した領域でポジションを決定する方法（非特許文献２参照）、楽曲をポジションの分散に基い複数のフレーズに分割し、フレーズごとに全てのピッチを内包する領域を選択した後、ポジションを決定する方法（特許文献１参照）が提案されている。
【０００４】
【非特許文献１】
青木  直史、  「ギター演奏の学習支援を目的としたタブ譜作成自動化に関する検討」、信学技報、Ｖｏｌ.ＥＴ２０００−４３、  ２０００。
【非特許文献２】
（株）ローランド、  Ｃａｋｅｗａｌｋ  Ｐｒｏ  Ａｕｄｉｏ  ９、  ２０００。
【特許文献１】
特開平１０−９７２４９号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、これら従来の方法は、選択した領域内に所望のポジションが存在するか否かという判定にのみ基づいてタブ譜を作成しており、演奏する際の運指については十分に考慮していないため、実際には演奏不可能なタブ譜を作成してしまう場合がある。
また、無理のある手指の移動により生じやすい演奏ミスを避けるため、ポジションの分散ができるだけ小さくなるようにタブ譜を作成することが望ましい。特に、クラッシクギターの場合、できるだけ開放弦およびフレット番号の小さいロー・ポジションを優先することが望ましい。
本発明では、以上の点に鑑み、指のポジションの分散をできるだけ小さくすると同時に、実際の運指を想定することで演奏可能なタブ譜を自動作成することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の解決手段によると、
処理部は、楽曲の各フェイズ毎に音を表すピッチを記憶した楽曲データを記憶部から読み取るステップと、
処理部は、楽曲データに基づき、各フェイズにおける演奏可能なフレットと弦を示すポジションとそのポジションを押さえる指との組み合わせを表す候補データを抽出し、記憶部に記憶するステップと、
処理部は、記憶部から候補データを読み取り、ポジションと指の組み合わせを手指の物理構造上の制約及び可動範囲を考慮した、フレットに関する条件及び弦に関する条件を満足するように、各フェイズの演奏可能な指の組み合わせを判定し、該当する組み合わせを選択するステップと、
処理部は、選択された各フェイズにおける演奏可能なポジションと指の組み合わせを、候補選択データとして記憶部に記憶するステップと、
処理部は、候補選択データを参照し、各フェイズから一つずつ候補を選択して、フェイズ順に数珠繋ぎにして個体を形成し、該個体を複数作成して集団データを形成するステップと、
処理部は、集団データに基づき、交叉及び突然変異を含む操作によって次世代の集団における個体を形成し、次世代の集団データとして記憶するステップと、
処理部は、次世代の集団データを読み取り、弦集団データ中の各個体に従い演奏したときの、手指の移動量を表す第1のコストと、手指の負担を表す第２のコストとを求め、第1及び第２コストに重みをつけた総和コスト、第1コスト、第２コストに関して各コストが最小又は所定値より小さくなる個体を選択するように並列に最適化処理を行い、選択された解データを記憶部に記憶するステップと、
処理部は、解データに基づき前記最適化処理を所定世代まで繰り返し実行し、パレート解の集合である所定世代の解データを求めるステップと、
処理部は、記憶部に記憶された所定世代の解データから、予め定められた基準により最適解の集合であるダブ譜データを選択し、それを記憶部に記憶、表示部へ表示及び／又は出力部に出力するステップと、
を含むタブ譜自動作成方法、これら各ステップをコンピュータに実行させるためのタブ譜自動作成プログラム及びタブ譜自動作成プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【０００７】
【発明の実施の形態】
１．タブ譜自動作成に対する要件
図１に、ギターの指板におけるピッチとポジションの関係図を示す。
ギターのネックには６本の弦が張られており、図に示すように、１弦から６弦までの開放弦は順にＥ４、Ｂ３、Ｇ３、Ｄ３、Ａ２、Ｅ２のピッチに調律されている。指板には６本の弦と直交してフレットと呼ばれる仕切りが半音間隔で打ち込まれており、フレットにより分割された任意のポジションを押さえることで、当該ポジションに対応するピッチを発音させることができる。クラシックギターの場合、フレットの総数は１９となっており、開放弦のピッチを０フレットのポジションに対応させるとポジションの総数は図に示すように１２０となる。ただし、ピッチとポジションは1対1に対応しているとは限らない。
【０００８】
図２に、ピッチに関するポジションのヒストグラムを示す。
図に示すように、最低ピッチＥ２から最高ピッチＢ５までの間に、最大で５ヶ所のポジションで発音させることができるピッチが存在する。ギターは、６本の弦が張られているため、ギターは最大で６音を同時に発音させることができる。ただし、同時に押さえることができるポジションの組み合わせは手指の物理構造上の制約を受ける。タブ譜の作成にはこうした制約を考慮し、選択したポジションで実際に演奏が可能か否か判定する必要がある。
また、無理のある手指の移動により生じやすい演奏ミスを避けるため、ポジションの分散ができるだけ小さくなるようにタブ譜を作成することが望ましいと考えられる。
【０００９】
図３は、五線譜とタブ譜によるＣメジャー（Ｃmajor）スケールの記述例を示す図である。図中、（ａ）は、ロー・ポジション、（ｂ）は、ハイ・ポジションをそれぞれ示す。
タブ譜の最上線は１弦、最下線は６弦に対応しており、各線上の数字は対応する弦上で押さえるべきフレット番号を示している。また、この図は同一のピッチの楽曲に対して複数のタブ譜が作成可能であることを示している。（ａ）は（ｂ）と比べてポジションの分散が小さく手指の移動が少なくなるため、より実用的なタブ譜であると考えられる。
その他の要件として、特にクラシックギターの場合、できるだけ開放弦およびフレット番号の小さいロー・ポジションを優先することに留意する必要がある。ロー・ポジションは押弦が容易であること、また、統一的な音色が得られるといった理由から、同時に複数のポジションを押さえる必要があり、ロー・ポジションでは手指の物理構造上の制約を受けるような場合に限り、ハイ・ポジションを使用することが望ましいとされている。なお、楽曲の種類に応じて様々なギターの演奏形式が存在するが、本実施の形態では説明を簡単にするため、クラシックギターを例に挙げているが、これに限らず多種にギターの楽曲に適用可能である。さらに、ギター以外のバイオリン、チェロ等のように、フレットを想定することのできる弦楽器にも適用することも可能である。
【００１０】
２．タブ譜自動作成装置
図４は、タブ譜自動作成装置の構成図である。
この装置は、中央処理装置（ＣＰＵ）である処理部１、入力部２、出力部３、表示部４及び記憶部５を有する。また、処理部１、入力部２、出力部３、表示部４及び記憶部５は、スター又はバス等の適宜の接続手段で接続されている。
記憶部５は、楽曲ファイル５１、候補ファイル５２、候補選択ファイル５３、可動範囲ファイル５４、集団ファイル５５、解ファイル５６、タブ譜ファイル５７を含む。
【００１１】
３．遺伝的アルゴリズム（Genetic Algorithm）によるタブ譜自動作成方法
本実施の形態では以上を考慮して、演奏可能であり、手指の移動ができるだけ少なく、できるだけロー・ポジションとなるタブ譜を自動作成する手法を提案する。
図５にタブ譜自動作成方法のフローチャートを示す。
まず、処理部１は、楽曲データを記憶部５の楽曲データファイル５１から読み出し（Ｓ１）、演奏可能なポジションと指の組み合わせを候補として抽出するフィルタ処理を実行する（Ｓ２）。さらに、処理部１は、演奏時におけるコストを最小化する候補を選択する最適化処理を実行し（Ｓ３）、得られたタブ譜の最適解を記憶部５の最適解ファイル５５に出力する（Ｓ４）。ここで、組み合わせの数が膨大で全数探索では実用的な時間内に最適解を求めることが困難であること、また、互いに競合する可能性のあるコストを同時に最小化するため、本実施の形態では最適化処理の手法として多目的最適化遺伝的アルゴリズム（Multi-Objective Genetic Algorithm：ＭＯＧＡ）を適用している。ＭＯＧＡについては、以下の文献参照。
・伊庭  斉志、  遺伝的アルゴリズムの基礎、  オーム社、  １９９４。
・川面  恵司、  横山  正明、  長谷川  浩志、  最適化理論の基礎と応用、  コロナ社、  ２０００。
・玉置  久、「遺伝的アルゴリズムと多目的最適化」、遺伝的アルゴリズム２（北野宏明編著）、  産業図書、  ｐｐ.７１−９７、  １９９５。
以下に各ステップについて詳細に記載する。
【００１２】
３．１  楽曲データの入力
図６は、テキストによる楽曲データの表現例を示す図である。（ａ）は、五線譜、（ｂ）は、テキスト表現をそれぞれ示す。楽曲データは、楽曲データファイル５１に記憶される。処理部１は、テキストにより表現された楽曲データを記憶部５の楽曲データファイル５１から読み取る（Ｓ１）。楽曲のデータ、つまりはフィルタ処理の入力データは、図５に記載したものと同様である。
五線譜で記述された楽曲を計算機で扱えるようにするため、本実施の形態では図に示すようにフェイズを単位として楽曲情報をテキストにより楽曲データとして表現する。この記述法ではピッチに変化が生じるまでの時間・区間をフェイズと定義し、それぞれのフェイズで発音される最大で６音のピッチをテキストで表現している。ただし、該当するピッチが存在しないときはＮＩＬとなる。さらに、ピッチに関する情報だけでなく、当該フェイズで初めて発音が開始されたピッチの場合は０、以前のフェイズから継続して発音されているピッチの場合は１定義するサステインに関する情報も併せて記述している。
なお、本実施の形態では独自のテキスト表現を用いているが、ＭＩＤＩ（Musical Instruments Digital Interface）データや、ＭＭＬ（Music Macro Language）データといった音楽情報を記述したその他の形態のデータについてもインターフェースを別途用意することで原理的に受け付けることが可能である。
【００１３】
３．２  フィルタ処理（Ｓ２）
図７に、フィルタ処理のフローチャートを示す。処理部１は、フィルタ処理によりそれぞれのフェイズにおける全ての演奏可能なポジションと指の組み合わせを抽出する。
つぎに、処理部１は、読み込んだ楽曲データに基づき、演奏が不可能な場合も含めて、全てのポジションとそのポジションを押さえる指との組み合わせを候補データとして抽出し、記憶部５の候補ファイル５２に記憶する（Ｓ２０３）。図５の例だと、１行目のデータはＧ２、Ｄ４の二つの音が同時に発音されることを意味するので、まずはフレットボードからＧ２とＤ４のポジションをすべて抜き出す。
【００１４】
図８は、フレットボード上でＧ２、Ｄ４のポジションを表す説明図である。
このポジションに対して、人差指、中指、薬指、小指のすべての組み合わせを当てはめておく。もちろん、例えば、３フレットのＧ２に小指、３フレットのＤ４に人差指を割り当てるなど、実際には演奏不可能な指の組み合わせもあるが、それはフィルタ処理によって排除することができるのでこの段階では演奏が可能かどうかについては考慮しない。このようにして、演奏が不可能な場合も含めてすべての指とポジションの組み合わせを候補データとして抽出することができる。
つづいて、処理部１は、記憶部から候補データをひとつずつ読み取り、以下のようなフィルタリングを行う。すなわち、処理部１は、押さえるポジションと指の組み合わせを手指の物理構造上の制約を考慮して演奏可能な指の組み合わせを判定し、論理積処理により決定する（非特許文献１参照）。
【００１５】
上述の例だと、３フレットのＧ２と３フレットのＤ４をセーハで押さえる、あるいは３フレットのＧ２を人差指、３フレットのＤ４を中指で押さえるなどのいくつかの押さえ方が想定できる。ただし、３フレットのＧ２を小指、３フレットのＤ４を人差指で押さえるとか、３フレットのＧ２を人差指、１７フレットのＤ４を小指で押さえるなどの不可能な押弦はできないで、こうした演奏の不可能な指の組み合わせをフィルタ処理で排除していく。最終的に、フレットボード上のポジションと、どの指でそのポジションを押さえるかについての情報がフィルタ処理の出力データとなる。
【００１６】
ただし、フィルタ処理の後で行う最適化処理ではフェイズが変わるごとに指の移動量を計算するので、例えばフェイズ１で人差指を使っていないが、続くフェイズ２では人差指を使うような場合、人差指の移動量を計算するためにフェイズ１における人差指の位置（フェイズ２のために待機しているポジション）を推測しておく必要がある。この場合も、さきほど説明したフィルタ処理を行って、押弦に使われていない指も含めてすべての指のとり得るポジションを候補として抽出することができる。
【００１７】
まず、処理部１は、候補ファイル５２を参照して、フレットに関する条件を満足するものをステップＳ２０３で抽出された候補データから選択する（Ｓ２０５）。処理部１は、選択した候補データを、候補ファイル５２又は適宜記憶部５に記憶してもよい。押弦に使用される可能性のある指は人差指、中指、薬指、小指の４本であり、それぞれ１、２、３、４の番号で表す。ここで、これらの指の集合をＦ、実際に押弦に使用される指の集合をＥとする。すなわち、Ｅ⊆Ｆとなる。ｉ∈Ｅ、ｉ∈Ｆであり、ｉ番の指のポジションｐｉがｓｉ弦ｆｉフレットに割り当てられたときのｊ番の指のフレットに関する可動範囲を[Ｌｉｊ、Ｈｉｊ]と表すと、ｊ番の指のポジションに関して以下の条件が必要となる。
【数１】
2004163446.tif 000003
【００１８】
処理部１は、こうした論理積処理により押弦に使用しない指も含めた全ての指のフレットに関するポジションをそれぞれのフェイズにおける候補として推定することができる。フレットに関する各指の可動範囲については個人差がありさらなる検討の余地があるが、本実施の形態では経験的に以下のように定義している。
【数２】
2004163446.tif 000004
【００１９】
ここでは、番号の大きい指が番号の小さい指よりもフレット番号の小さいポジションを押さえる可能性はないことを考慮している。なお、一つのフレットにつき１本の指を割り当てることで連続する４フレット分の範囲をカバーするのが運指の基本であるが、人差指とその他の指の間および薬指と小指の間ではストレッチによりそれぞれ１フレット分ずつ可動範囲が大きくなることを考慮している。なお、実際はハイ・ポジションにおけるフレット間隔はロー・ポジションよりも狭くなるため、可動範囲はフレットに関する関数として定義されるべきであるが、本実施の形態では問題を簡単にするためロー・ポジションにおける可動範囲をハイ・ポジションにも適用している。
【００２０】
つぎに、処理部１は、弦に関する条件を満足するものを、ステップＳ２０５で選択した候補から、さらに候補データを選択する（Ｓ２０７）。処理部１は、選択した候補データを候補ファイル５２又は適宜記憶部５に記憶する。ｉ∈Ｅ、ｊ∈Ｅ、ｆi＝ｆj、すなわち押弦に使用される複数の指が同時に同じフレット番号のポジションに割り当てられる場合、ｉ番の指のポジションｐｉがｓｉ弦ｆｉフレットに割り当てられたときのｊ番の指の弦に関する可動範囲を[Ｄｉｊ、Ｕｉｊ]と表すと、ｊ番の指に関して以下の条件が必要となる。
【数３】
2004163446.tif 000005
【００２１】
ここで、番号の大きい指が番号の小さい指よりも弦番号の大きいポジションを押さえる可能性はないことを考慮すると、弦に関する各指の可動範囲を以下のように定義できる。ただし、人差指については一本の指で一つのフレットにおける複数のポジションを同時に押弦するセーハと呼ばれる演奏法を考慮している。
【数４】
2004163446.tif 000006
【００２２】
つぎに、処理部１は、複数のポジションが同じ弦番号にならないように、さらに、候補データを選択する（Ｓ２０９）。この場合の条件として、ｉ∈Ｅ、ｊ∈Ｅ、ｉ≠ｊの場合、同一の弦上で2個所以上のポジションが選択されないように以下の条件が必要となる。
ｓｉ≠ｓｊ          （７）
処理部１は、以上のようなフィルタリングによりそれぞれのフェイズにおける演奏可能なポジションと指の組み合わせを抽出し、最終的に演奏可能である候補のリストを得て、候補選択データとして記憶部５の候補選択ファイル５３に記憶する（Ｓ２１１）。
【００２３】
図９は、上述の楽曲の例に対するフィルタ処理により得られた候補選択データの例を示す図である。候補には通し番号が付けられ、それぞれ、「出力データ番号（no）」、「フェイズ（phase)」、「ピッチ、弦番号、フレット番号、指番号、サステイン(pitch, string, fret, finger, sustain)」さらに、「人差指、中指、薬指、小指の各フレットを示すポジション(position)」が記述される。
positionには（人差指、中指、薬指、小指）のフレット番号が記されている。例えば、(３, ５, ６, ７)は３フレットに人差し指、５フレットに中指、６フレットに薬指、７フレットに小指が置かれることを意味する。ただし、これらの指がすべて演奏に利用されるのではなく、次のフェイズにおけるポジションとの移動量を計算するために、現在のフェイズでは使われていない指についてもポジションを定義する。no．１からno.３まではpitch、string、fret、finger、sustainなどはまったく同じであるが、ただし、待機している指のポジションが微妙に異なることを示す。この例では、１行目を見てみると、Ｇ２を発音させるのに、６弦３フレットのポジションで人差指、Ｄ４を発音させるのに２弦３フレットのポジションで人差指を使っている。また、そのときの人差指、中指、薬指、小指のポジションはそれぞれ、３、５、６、７フレットとなっている。
【００２４】
３．３  最適化処理におけるコストの定義
最適化処理では、処理部１は、フェイズｎ−１の候補からフェイズｎの候補に遷移する際のコストを計算し、全てのフェイズから得られた合計のコストが最小となるようにそれぞれのフェイズにおける最適な候補を決定する。ここでコストとは、例えば、演奏時における手指の移動のしやすさや押指の負担を示すもので、コストが大きいと演奏しにくく反対にコストが小さいと演奏しやすいことを示す指標である。
【００２５】
最適化処理におけるコストの定義を以下に述べる。フェイズｎ−１で使用される指および弦がフェイズｎでも継続して使用される場合、この条件を満たさないフェイズｎの候補への遷移は不可能であり、コストは無限大になる。それ以外の遷移が可能な場合については、特に、クラシックギターではフレットに関する変位ができるだけ少ない運指が推奨されることを考慮して、各指のフレットに関する変位に基いて演奏時における手指の移動に伴うコストを定義する。（津田  昭治、ギターを弾こう、ヤマハミュージックメディア、１９９８参照）
ここで、フェイズｎにおいて押弦に使用される指の集合をＥ（ｎ）とする。ｉ∈Ｅ（ｎ）のとき、ｉ番の指のフレット番号をｆｉ（ｎ）とすると、フェイズｎ−１からフェイズｎに遷移する際のｉ番の指のフレットに関する変位は以下のように定義できる。
【数５】
2004163446.tif 000007
【００２６】
したがって、フェイズ数Ｎの楽曲では手指の移動に伴うコストｃ１を以下のように定義できる。
【数６】
2004163446.tif 000008
【００２７】
次に、クラシックギターではできるだけロー・ポジションを優先することを考慮して、フレット番号の総和をポジションのコストｃ２として定義する。
【数７】
2004163446.tif 000009
【００２８】
図１０に、ｉ∈Ｅ、ｊ∈Ｅ、ｉ≠ｊの場合について、各指の可動範囲の説明図を示す。この図は、式（１）と式（４）の論理積(ＡＮＤ)処理を行った結果である。この図ではｉ番の指のポジションｐｉが黒丸であるときのｊ番の指の相対的な可動範囲を白丸と灰丸で表している。図中、「黒丸−白丸（又は灰丸）」がそれぞれ次の各指に対応する。すなわち、図中（ａ）は「人差指―中指」、（ｂ）は「人差指―薬指」、（ｃ）は「人差指―小指」、（ｄ）は「中指―薬指」、（ｅ）は「中指―小指」、（ｆ）は「薬指―小指」、である。
【００２９】
灰丸は白丸よりも押弦に負担がかかるポジションであり、指間のストレッチを考慮して経験的に定義している。すなわち、白色と灰色の稼動範囲の違いは、白色はストレッチを必要としない領域で、灰色はストレッチを必要とする領域である。ここで、後述するコストの定義のため、ｉ番の指のポジションｐｉによって定義されるｊ番の指の灰丸のポジションの集合をＧｉｊとし、以下の関数を予め定義した可動範囲データを記憶部５の可動範囲ファイル５４に記憶しておき、処理部１は、その可動範囲ファイル５４から可動範囲データを参照して各指の相対的な可動範囲内の候補を選択する。
【数８】
2004163446.tif 000010
【００３０】
そして、図に示した灰丸のポジションをできるだけ選択しないように、ストレッチのコストｃ３を定義する。
【数９】
2004163446.tif 000011
ここで、ｑｉｊ（ｎ）はフェイズｎにおける式（８）によって定義される関数である。
【００３１】
なお、上述のフィルタ処理の例では、処理部１は、特に両者を区別せずに、白色であっても灰色であっても差をつけずに、どちらとも演奏可能であるとして抽出処理を行うことができる。そのかわり、処理部１は、フィルタ処理が終わった後で最適化処理を行う段階では、灰色のポジションを含んだ運指についてはコストを大きくすることができる。最適化処理はコストの一番小さいものを探索する作業になるので、このため、結局最終的にはストレッチがほとんど含まれない運指パターンを得ることができる。ストレッチを必要としない楽曲だけであればフィルタ処理で白色の領域だけを考慮すればよいが、例外がたくさんあるため、可能性のある運指をとりこぼさないため、こうした二段階の方法を考えている。
【００３２】
本実施の形態では、処理部１は、以上のコストの総和を最適化処理における目的関数として計算している。コストの優先度を考慮すると目的関数である総コストｃは次のように定義することができる。
【数１０】
2004163446.tif 000012
【００３３】
ここで、ｗｋはそれぞれのコストの重み係数である。ロー・ポジションのみで演奏できない楽曲については手指の移動に伴うコストとポジションのコストが競合する場合がある。このような場合、重み係数を調節することで最適化処理におけるコストの優先度を定義できる。ただし、本実施の形態ではアプリオリな知識が存在しない場合を想定して、一例として、重み係数をすべて１とすることができる。
【００３４】
３.４  最適化処理（ＧＡ処理）
一般に、それぞれのフェイズにおける全ての候補の組み合わせを調べて最適解を求める全数探索では、フェイズ数が多いと組み合わせの数が膨大になり、実用的な時間内に解を得にくい場合がある。また、式（１３）は、式（１０）、式（１１）、式（１２）の線形結合によって定義された目的関数であり、この目的関数を構成する三つのコストが互いに競合する場合、すべてのコストを同時に最小化することは不可能である場合がある。それぞれのコストに関してある程度満足できる妥協解を求めること、すなわち、それぞれのコストに関して少しずつ犠牲を払い、全体に求められる最小化の条件を満足する解を求めることが必要となる。
【００３５】
このような事情を考慮して、本実施の形態では多目的最適化遺伝的アルゴリズム（Multi-Objective Genetic Algorithm：ＭＯＧＡ）の適用について検討した。ＭＯＧＡを適用することで、実用的な時間内に、互いに競合する可能性のあるコストを同時に最小化することで準最適解（妥協解）の集合を得ることができる。なお、準最適解又は最適解を求める方法は、これに限らず適宜のＧＡ又は他の計算法を用いることができる。
【００３６】
本発明におけるＧＡは、それぞれのフェイズにおいてランダムに一つの候補を選択することで染色体を定義している。したがって、染色体は整数値により表現され、染色体の長さはフェイズ数と同一になる。ただし、完全にランダムに候補を選択すると、フェイズｎ−１からフェイズｎへの遷移が不可能な場合も組み合わせとして選択してしまい、解の存在しない空間に対しても探索を行わなくてはならないことになる。そこで、本実施の形態では初期集団の生成、交叉、突然変異において遷移が不可能な組み合わせとなる個体を排除することで探索空間の縮小を行っている。
【００３７】
図１１に、ＧＡオペレータの説明図を示す。
この例では、各フェイズ１〜５に、「pitch, string, fret, finger, sustain」及び「position」に関するデータを表す染色体ａからｅが対応している。図中、（ａ）は、ｍ世代からｍ＋１世代への交叉を示し、図（ｂ）は、ｍ世代からｍ＋１世代への突然変異を示す。
【００３８】
図１２に、最適化処理（ＧＡ処理）のフローチャートを示す。この処理では、それぞれのコストに関して並列に、集団の形成と最適化処理を行う。
また、図１３に、ＧＡ処理の説明図を示す。この図は第ｎ世代から第ｎ＋１世代に遷移するときの、集団に対するＧＡ処理の手順を表したものである。
まず、処理部１は、世代ｍの初期値（例えば、０）に１を加算する（Ｓ３０１）。つぎに、処理部１は、記憶部５の候補選択ファイル５３に記憶されている楽曲の候補選択データを参照し、各フェイズから一つずつ候補選択データを選択して、フェイズ順に数珠繋ぎにしてＧＡ処理における個体を形成し、さらに、こうした個体を多数作成して集団データを形成する（Ｓ３０３、図１３▲１▼）。処理部は形成された集団データを集団ファイル５５に記憶する。すなわち、個体は一つのタブ譜を表し、集団は複数のタブ譜に相当する。各フェイズから一つずつ候補を選択するときの基準は、初期集団、すなわち第1世代ではまったくランダムである。よって、第１世代のタブ譜は必ずしも、あまり実用性のあるものとは限らない。ＧＡの最適化処理のより、世代を重ねるにつれてより実用的なタブ譜が推定されていく、という仕組みになっている。処理部１は、こうした処理を、例えば２００個体からなる集団では、２００回繰り返すことで、集団を形成する。
【００３９】
もちろん集団の規模、すなわち個体数が大きいほど、個体の多様性が広がるため、良い結果を出しやすくなるが、そのかわり、この場合は探索空間がとても広くなってしまい、すべての個体の評価にかかる時間が長くなってしまう。一般にＧＡでは、数百程度の個体でも十分良い結果を出すことが経験的に知られているので、ここでは一例として２００個体にしている。１０００世代もここでは実験結果の都合上シミュレーションの終了世代としてあらかじめ設定しただけであり、適宜設定することができる。また、その他のＧＡのパラメータも同様に適宜設定することができる。なお、一般的にＧＡのパラメータは経験的に決めることができる。ＧＡのようなランダムサーチの手法は全数探索よりも高速で、ある程度最適解に近い準最適解を求めてくれるため、厳密に最適でなくてもよい問題に対してよく使われている。
【００４０】
つぎに、処理部１は、交叉と突然変異により集団における個体数を増加させる（Ｓ３０５）。交叉によって増加する個体数は交叉率によって指定できる。次に、個体数を二倍にした後、集団の半分に対して突然変異を起こさせる（図１３▲２▼、▲３▼）。
続いて処理部１は、パレート解、コスト１、コスト２、コスト３に対する選択をそれぞれ並列に行う。処理部１は、パレート解としては式（１３）に従い、総コストが最小のものを選択する（Ｓ３０７、図１３▲４▼）。パレート解は多目的最適化問題の場合、一つとは限らない。また、ステップＳ３０９では、処理部１は式（１０）によるコストＣ１に関して最適に処理、例えば、最小値から所定数又は所定値より小さくするような楽曲データ候補を選択する処理を実行する（図１３、▲５▼）。処理部１は、ステップＳ３１１も同様に式（１１）によるコストＣ２に関して最適化処理を実行し（図１３、▲６▼）、ステップＳ３１３も同様に式（１２）によるコストＣ３に関して最適化処理を実行する（図１３、▲７▼）。
【００４１】
コスト１、コスト２、コスト３に対する解の選択については、様々な戦略が適用可能であるが、一例として、ランキング選択を用いることができる。このとき、処理部１は、一例として、対象とする各コストについて昇順となるように個体を選択する。
パレート解とは他の解よりも優れている解ということで、通常のＧＡにおけるエリート解と同じものである。パレート解とは同じ目的関数の値となる個体の集合ということができるので、たった一つかもしれないし、もしかすると複数あるかもしれない。
多目的最適化問題では解は唯一ではなく、パレート解の集合が最終的に得られる。例えば、運指に関して移動量の少ないタブ譜であっても、あまりロー・ポジションとなっていない場合と、運指に関して移動量が多いタブ譜であっても、あまりハイ・ポジションとなっていない場合を比べると、コストの点からはどちらも同じになっている場合がある。こうしたパレート解の集合を手際よく求めるのがＭＯＧＡ(Multi−Objective Genetic Algorithm)である。
以上のようなパレート保存戦略と並列選択を経て、最終的に第ｎ＋１世代の集団が形成される。処理部１は、ステップＳ３０７、Ｓ３０９、Ｓ３１１、Ｓ３１３で求めたパレートを含む解の集合である解データを記憶部５の解ファイル５６に記憶する（Ｓ３１５、図１３▲８▼）。処理部１は、Ｍ世代まで処理を実行してないと（Ｓ３１７）、ステップＳ３０５に戻り繰り返し最適化処理を実行する。
【００４２】
なお、上述のように、本実施の形態では、パレート解は単純に無条件で次世代に残される。これは通常のＧＡでいうところのエリート保存戦略で、現時点までに得られた最適解については無条件に次世代に残すことになる。これらのパレート解は単純に次世代でも他の個体と同様に評価を受けることになる。もし他の個体が現時点でのパレート解よりも優れたものになれば、現時点のパレート解に取って代わることになる。一方、処理部１は、ステップＳ３０５で、先に形成した個体の集団のうち、パレート解以外の次世代の集団における個体を、交叉，突然変異等のＧＡ操作によって繰返し作成する。処理部１は、以上の処理をあらかじめ設定した第Ｍ世代まで実行することで最適解（妥協解）の集合を得ることができる。
【００４３】
こうして、処理部１は、求められたパレート解の集合が解データとして求まり、記憶部５の解ファイル５６に記憶される（Ｓ３１９）。多目的最適化では唯一の解を求めるのではなく、パレート解の集合を求めることにある。理想的にはパレート解と同じコストとなる個体だけが生き残ることになり、最終的にはすべての個体はパレート解に収束していくと考えるのが、ＧＡを使った多目的最適化問題のプロットになる。また、出力される解データも入力された候補選択データと同じフォーマットのデータとなる。ただし、最適化処理が施された後なので、通常、例えば、押弦に使われる指が候補選択データとは異なり、また、人差指、中指、薬指、小指のポジションが変化している。
【００４４】
パレート解はコストの点では同一であるので、すべて最適解と考えることができる。しかし、処理部１は、そのなかの一つだけをとりだしてきて、最終的なタブ譜データ（推定タブ譜データ）として、記憶部５のタブ譜ファイル５７への記憶、表示部４への表示、出力部３による印刷等を適宜実行する（Ｓ３２１）。なお、パレート解が複数得られた場合は、処理部１は、予め定められた優先順位又はランダム又は任意にどの解を採用するか判断することができる。または、処理部１は、複数のパレート解を表示部４に表示し、ユーザーが入力部により適宜選択することでその中のひとつ又は複数を最適解として採用し、記憶部５への記憶、出力部３による印刷等の処理を実行するようにしてもよい。さらに、処理部１は、運指に関する情報を想定することでタブ譜を作成しているため、記憶部５の楽曲データのポジション情報から運指情報を求め、それを表示部４に表示することもできる。
【００４５】
図１４に、タブ譜データの出力側の図を示す。この図は、第１世代および第１０００世代における推定タブ譜の一部を示す。なお、五線譜におけるピッチに付記された数字は押弦に使用される指番号である。第１世代の推定タブ譜では楽曲の開始部分でハイ・ポジションとなっており途中からロー・ポジションへ移動している。こうしたポジションの大幅な移動は第１０００世代の推定タブ譜では見られず、最適化処理を行うことでタブ譜自動作成における要請を満足する結果が得られることがわかった。
【００４６】
４．  評価
評価実験に用いる楽曲は本発明におけるタブ譜自動作成に対する要請を満足する８曲とした。これら８曲はロー・ポジションのみで演奏できるものだけに限定していない。なお、これら８曲には五線譜の他にタブ譜が付属しており、これを模範タブ譜と定義する。また五線譜にはピッチごとに指番号の指示があり、これを模範タブ譜の運指とした。
これら８曲について実際にタブ譜の自動作成を行うことで本実施の形態の有効性について評価を試みた。ＧＡのパラメータは、個体数を２００、交叉率を８０％、突然変異率を１％として、２点交叉、パレート保存戦略と並列選択を組み合わせたＭＯＧＡにより第１０００世代まで処理を行った（玉置  久、「遺伝的アルゴリズムと多目的最適化」、「遺伝的アルゴリズム２」（北野宏明編著）、産業図書、ｐｐ.７１−９７、１９９５）評価実験に使用した計算機のＣＰＵはＡＭＤ社のＡｔｈｌｏｎ５５０ＭＨｚであった。
【００４７】
図１５に楽曲のフェイズ数と第１０００世代までのＧＡ処理に要した時間の関係図を示す。楽曲により探索空間の縮小にかかる時間が異なるため必ずしも線形ではないがフェイズ数が大きくなるに伴い処理時間が増えていく傾向にあることがわかった。ただし、どの楽曲についても実用的な時間内に処理を終了していることがわかった。
図１６は、第１０００世代までの各世代における推定タブ譜のコストの変化を示す図である。ここで、推定タブ譜とは各世代における最優秀個体を意味する。ここでは２例の結果のみ示しているが、全ての楽曲についておおよそ第２００世代程度で処理が収束していることを確認している。
【００４８】
図１７は、コストと距離の結果を示す図である。図中、それぞれ（ａ）曲名、（ｂ）模範タブ譜のコスト、（ｃ）推定タブ譜のコスト、（ｄ）模範タブ譜と推定タブ譜の距離（ポジション）、（ｅ）模範タブ譜と推定タブ譜の距離（運指）が示される。
ここで、同一の楽曲に対する二つのタブ譜について、タブ譜の全ポジション数をＮａ、異なるポジションの数をＮｐ、異なる運指の数をＮｆとすると、ポジションおよび運指に関する距離を以下のように定義できる。
Ｄｐ＝１００Ｎｐ／Ｎａ          （１４）
Ｄｐ＝１００Ｎｐ／Ｎａ          （１５）
【００４９】
結果として、推定タブ譜は模範タブ譜との距離が小さく類似度が高くなっていることがわかった。このことから、必ずしも、まったく同一のものが得られるわけではないが、本実施の形態を適用することで実用的な時間内に模範タブ譜に類似したタブ譜を作成できる可能性があることが推察される。なお、ポジションに関する距離に比べて運指に関する距離が大きくなっているが、これはポジションが同一であっても運指は同一とはならない場合があることを意味している。
タブ譜の作成には、手指の物理構造上の制約に由来する、職人的ともいえるギターの演奏動作に対する理解が必要である。人手を介した本来のタブ譜作成では、作成者の経験的な知識に基いた意識的あるいは無意識的なポジションおよび運指の選択がなされていると考えられる。
本実施形態では、上述のように、タブ譜の自動作成に対する基本的な要請のみを考慮した最適化処理によりタブ譜を自動作成する手法について検討した。本実施の形態を適用することで、こうしたギター演奏における経験的な知識により、人手によって作成された模範タブ譜に同一又は類似したタブ譜を実用的な時間内に作成できる可能性があることがわかった。
【００５０】
５．付記
本発明のタブ譜自動作成方法又はタブ譜自動作成装置・システムは、その各手順をコンピュータに実行させるためのタブ譜の自動作成プログラム、タブ譜の自動作成プログラムを記録したコンピュータ読み取り可能な記録媒体、タブ譜の自動作成プログラムを含みコンピュータの内部メモリにロード可能なプログラム製品、そのプログラムを含むサーバ等のコンピュータ、等により提供されることができる。
ところで、演奏支援という観点からタブ譜の有効性について今一度考えてみると、通常のタブ譜はポジションのみを記述しているに過ぎず、運指に関する情報が欠落してしまっているため、演奏者が自ら運指を決定しなくてはならないことに留意する必要がある。本実施の形態は実際の運指を想定することでタブ譜の作成を行っているため、副産物として得られた具体的な運指を図１４のように演奏者に呈示することが可能であり、より付加価値の高いタブ譜として利用できると考えられる。
【００５１】
【発明の効果】
本発明によると、以上のように、指のポジションの分散をできるだけ小さくすると同時に、実際の運指を想定することで演奏可能なタブ譜を自動作成することができる。
【図面の簡単な説明】
【図１】ギターの指板におけるピッチとポジションの関係図。
【図２】ピッチに関するポジションのヒストグラム図。
【図３】５線譜とタブ譜によるＣメジャー（Ｃmajor）スケールの記述例を示す図。
【図４】タブ譜自動作成装置の構成図。
【図５】タブ譜自動作成方法のフローチャート図。
【図６】テキストによる楽曲データの表現を示す図。
【図７】フィルタ処理のフローチャート図。
【図８】フレットボード上でＧ２、Ｄ４のポジションを表す説明図。
【図９】上述の楽曲の例に対するフィルタ処理により得られた候補選択データの例を示す図。
【図１０】ｉ∈Ｅ、ｊ∈Ｅ、ｉ≠ｊの場合について、各指の可動範囲の説明図。
【図１１】ＧＡオペレータの説明図。
【図１２】最適化処理（ＧＡ処理）のフローチャート図。
【図１３】ＧＡ処理の説明図。
【図１４】タブ譜データの出力側の図。
【図１５】楽曲のフェイズ数と第１０００世代までのＧＡ処理に要した時間の関係図。
【図１６】第１０００世代までの各世代における推定タブ譜のコストの変化を示す図。
【図１７】コストと距離の結果を示す図。
【符号の説明】
１  処理部
２  入力部
３  出力部
４  表示部
５  記憶部
５１  楽曲ファイル
５２  候補ファイル
５３  候補選択ファイル
５４  可動範囲ファイル
５５  集団ファイル
５６  解ファイル
５７  タブ譜ファイル
【図１】
2004163446.tif 000013
【図２】
2004163446.tif 000014
【図３】
2004163446.tif 000015
【図４】
2004163446.tif 000016
【図５】
2004163446.tif 000017
【図６】
2004163446.tif 000018
【図７】
2004163446.tif 000019
【図８】
2004163446.tif 000020
【図９】
2004163446.tif 000021
【図１０】
2004163446.tif 000022
【図１１】
2004163446.tif 000023
【図１２】
2004163446.tif 000024
【図１３】
2004163446.tif 000025
【図１４】
2004163446.tif 000026
【図１５】
2004163446.tif 000027
【図１６】
2004163446.tif 000028
【図１７】
2004163446.tif 000029