(57)【特許請求の範囲】
【請求項１】
楽曲データを記憶する楽曲データ記憶手段と、
前記楽曲データ記憶手段から読み出された前記楽曲データの音符群の、所定の判定対象区間に対し、所定の複数の調の各音階固有音の音符数を計数することにより最適な調を判別するか、前記最適な調を判別できないときには複数の候補調を出力して第２の選択手段を動作させる第１の選択手段と、
前記楽曲データの音符群の冒頭の判定対象区間に対し和音構成音を抽出し、抽出された前記和音構成音が全て、前記候補調のトライアドのトニック和音構成音に含まれるという条件を満たす前記候補調が１つに定まるとき、当該候補調を最適な調として判別するか、前記最適な調を判別できないときには第３の選択手段を動作させる第２の選択手段と、
前記候補調の中で調号に使用する変化記号の少ない調を最適な調として判別する第３の選択手段と、
前記第１，第２，第３の選択手段のいずれかにより判別された前記最適な調に応じて調号を決定し、決定された前記調号を前記楽曲データ記憶手段に書き込む調号決定手段、
を有することを特徴とする楽曲データに基づく音楽記号自動決定装置。
【請求項２】
操作子の操作により調号を指定する調号指定入力手段と、
前記楽曲データ記憶手段に記憶された前記調号を、指定された前記調号に変更する調号設定手段を有する、
ことを特徴とする請求項１に記載の楽曲データに基づく音楽記号自動決定装置。
【請求項３】
異名同音を区別して表記されるコード・ネーム群と調号とを有する楽曲データを記憶する楽曲データ記憶手段と、
半音単位の移調を指定する移調指定入力手段と、
前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に派生音になるときには、移調後の該幹音を前記変化記号の変位方向の幹音に変更し、かつ、元の音高を変えないように前記変化記号を調整することにより、移調後のコード・ルートに変換する第１の変換手段と、
前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に、前記変化記号の変位方向に派生音を挟まずに隣接する幹音になるときには、移調後の該幹音を前記隣接する幹音に変更し、かつ、元の音高を変えないように前記変化記号を調整することにより、移調後のコード・ルートに変換する第２の変換手段と、
前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが変化記号を有しないときには、移調前のコード・ルートと移調後の調に基づいて、移調後のコード・ルートに変換する第３の変換手段と、
前記第１，第２，第３の変換手段により得られた、前記移調後のコード・ルートを少なくとも用いて、前記楽曲データ記憶手段に記憶された前記楽曲データの前記コード・ネーム群を更新するコード・ネーム更新手段、
を有することを特徴とする楽曲データに基づく音楽記号自動決定装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の楽曲データに基づく音楽記号自動決定装置と、
表示制御手段と、
コード・ネーム表示・非表示を指定する表示切り替え指定入力手段を有し、
前記表示制御手段は、前記楽曲データ記憶手段から読み出された前記楽曲データがコード・ネーム群を有するものであり、かつ、前記表示切り替え指定入力手段によりコード・ネーム表示が指定されているときには、前記コード・ネーム群を有する音符群を表示装置に表示させ、前記表示切り替え指定入力手段によりコード・ネーム非表示が指定されているときには、前記コード・ネーム群を有しない音符群を前記表示装置に表示させるものである、
ことを特徴とする楽曲データに基づく楽譜表示制御装置。
【請求項５】
楽曲データを記憶する楽曲データ記憶手段から前記楽曲データを読み出させるステップと、
読み出された前記楽曲データの音符群の、所定の判定対象区間に対し、所定の複数の調の各音階固有音の音符数を計数することにより最適な調を判別させるか、前記最適な調を判別できないときには複数の候補調を出力して第２の選択ステップを動作させる第１の選択ステップと、
前記楽曲データの音符群の冒頭の判定対象区間に対し和音構成音を抽出させ、抽出された前記和音構成音が全て、前記候補調のトライアドのトニック和音構成音に含まれるという条件を満たす前記候補調が１つに定まるとき、当該候補調を最適な調として判別させるか、前記最適な調を判別できないときには第３の選択ステップを動作させる第２の選択ステップと、
前記候補調の中で調号に使用する変化記号の少ない調を最適な調として判別させる第３の選択ステップと、
前記第１，第２，第３の選択ステップのいずれかにより判別された前記最適な調に応じて調号を決定させ、決定された前記調号を前記楽曲データ記憶手段に書き込ませる調号決定ステップ、
をコンピュータに実行させる楽曲データに基づく音楽記号自動決定プログラム。
【請求項６】
異名同音を区別して表記されるコード・ネーム群と調号とを有する楽曲データを記憶する楽曲データ記憶手段から前記コード・ネーム群と前記調号を有する前記楽曲データを読み出させるステップと、
半音単位の移調を指定させる移調指定入力ステップと、
前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に派生音になるときには、移調後の該幹音を前記変化記号の変位方向の幹音に変更させ、かつ、元の音高を変えないように前記変化記号を調整させることにより、移調後のコード・ルートに変換させる第１の変換ステップと、
前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に、前記変化記号の変位方向に派生音を挟まずに隣接する幹音になるときには、移調後の該幹音を前記隣接する幹音に変更させ、かつ、元の音高を変えないように前記変化記号を調整させることにより、移調後のコード・ルートに変換させる第２の変換ステップと、
前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが変化記号を有しないときには、移調前のコード・ルートと移調後の調に基づいて、移調後のコード・ルートに変換させる第３の変換ステップと、
前記第１，第２，第３の変換ステップにより得られた、前記移調後のコード・ルートを少なくとも用いて、前記楽曲データ記憶手段に記憶された前記楽曲データの前記コード・ネーム群を更新させるコード・ネーム更新ステップ、
をコンピュータに実行させる楽曲データに基づく音楽記号自動決定プログラム。
【請求項７】
楽曲データに基づく楽譜を表示する楽譜表示装置であって、
楽譜を表示する表示手段と、
楽曲データを記憶する楽曲データ記憶手段と、
前記楽曲データ記憶手段から読み出された前記楽曲データの音符群の、所定の判定対象区間に対し、所定の複数の調の各音階固有音の音符数を計数することにより最適な調を判別するか、前記最適な調を判別できないときには複数の候補調を出力して第２の選択手段を動作させる第１の選択手段と、
前記楽曲データの音符群の冒頭の判定対象区間に対し和音構成音を抽出し、抽出された前記和音構成音が全て、前記候補調のトライアドのトニック和音構成音に含まれるという条件を満たす前記候補調が１つに定まるとき、当該候補調を最適な調として判別するか、前記最適な調を判別できないときには第３の選択手段を動作させる第２の選択手段と、
前記候補調の中で調号に使用する変化記号の少ない調を最適な調として判別する第３の選択手段と、
前記第１，第２，第３の選択手段のいずれかにより判別された前記最適な調に応じて調号を決定し、決定された前記調号を前記楽曲データ記憶手段に書き込む調号決定手段と、
該調号決定手段により決定された前記調号を含んだ前記楽曲データに基づいて、前記決定された調号を有した前記楽譜を前記表示手段に表示させる表示制御手段、
を有することを特徴とする楽譜表示装置。
【請求項８】
コード・ネーム表示・非表示を指定する表示切り替え指定入力手段を有し、
前記表示制御手段は、前記楽曲データがコード・ネーム群を有するものであり、かつ、前記表示切り替え指定入力手段によりコード・ネーム表示が指定されているときには、前記コード・ネーム群を有する音符群を前記表示手段に表示させ、コード・ネーム非表示が指定されているときには、前記コード・ネーム群を有しない音符群を前記表示手段に表示させる、
ことを特徴とする請求項７に記載の楽譜表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽譜上に調号、コード・ルート、あるいは臨時記号など、変化記号を用いて表示される音楽記号を決定する楽曲データに基づく音楽記号自動決定装置、楽曲データに基づく楽譜表示制御装置、および、楽曲データに基づく音楽記号自動決定プログラムに関するものである。
【０００２】
【従来の技術】
楽曲（ソング）データは、楽器鍵盤で入力された演奏データ、あるいは、シーケンサからデータ打ち込みにより作成された演奏データを記録して得られる。しかし、調号は、作成者が手動入力しない限り、楽曲データ中に記録されない。
そのため、電子楽器あるいはシーケンサープログラムがインストールされたコンピュータにおいて、この楽曲データに基づく楽譜を画面上に表示させようとしても、音符は表示できるものの、調号については、手動入力がなければ表示できなかった。
【０００３】
また、調号は、音楽的知識に基づいて決定されるものであるので、仮に調号が入力されていても、作成者の手動入力では、必ずしも音楽的に正しい調号であるという保証がないものであった。
調号は、変化記号（変位記号、変記号ともいう）である、#（シャープ），b（フラット：小文字のbで表現する）を用いて表される。変化記号は、幹音を変えずに、音の高さを変化させる記号であり、このほかに、##（ダブル・シャープ）、bb（ダブル・フラット）、ナチュラル（本位記号）がある。
【０００４】
楽曲データのフォーマットによっては、音符とともに、コード・ネームを記録する場合がある。このコード・ネーム中の、コード・ルートあるいはオンベースノートを、１２音系で表記する場合と、３１音系の表記を行う場合がある。１２音系コード・ネームの書式は、１オクターブを１２音に区別し、異名同音（エンハーモニック）を区別しない１２等分平均率によるものであり、MIDI（Musical Instrument Digital Interface）で使われている。簡易であるが若干不正確な音楽表現である。
一方、１オクターブを３１音に区別する伝統的な方式による３１音系コード・ネーム書式も存在し、ヤマハ株式会社提唱の「ＸＦフォーマット仕様書」で規定されている。１２音系と３１音系のコード・ネームの書式は各系内では閉じていて首尾一貫している。
【０００５】
ところが、２つの系を併用した場合には、一対一に対応しないので、移調（トランスポーズ）した場合にどの音に移調していいのか確定した結果が得られないという不都合があった。
例えば、３１音系コード・ネーム書式を用いているときに、移調量の指示を１２音系で行う（移調量を単に半音を単位として指示する）場合には、１２音系と３１音系を併用することになり、移調後の３１音系コード・ネーム書式を簡単には決定できないという問題がある。
この場合の問題も、コード・ルートあるいはオンベースノート（オンベースノートは、分数表記の時に使用する）を表記するときの、変化記号の選択問題である。
変化記号は、また、臨時記号としても用いられる。臨時記号は、調との関係で、特定のノートに対して付加されるが、このとき、１２音系で記述された楽曲データが入力されたときに、伝統的な３１音系で音高を表記するには、異名同音（エンハーモニック）のどちらの臨時記号を付ければよいかが問題になる。
【０００６】
【発明が解決しようとする課題】
本発明は、上述した問題点を解決するためになされたもので、楽譜の表示あるいは楽譜の印刷に必要とされる適切な変化記号を自動的に決定することができる楽曲データに基づく音楽記号自動決定装置、楽曲データに基づく楽譜表示制御装置、および楽曲データに基づく音楽記号自動決定プログラムを提供することを目的とするものである。
【０００７】
【課題を解決するための手段】
本発明は、請求項１に記載の発明においては、楽曲データを記憶する楽曲データ記憶手段と、前記楽曲データ記憶手段から読み出された前記楽曲データの音符群の、所定の判定対象区間に対し、所定の複数の調の各音階固有音の音符数を計数することにより最適な調を判別するか、前記最適な調を判別できないときには複数の候補調を出力して第２の選択手段を動作させる第１の選択手段と、前記楽曲データの音符群の冒頭の判定対象区間に対し和音構成音を抽出し、抽出された前記和音構成音が全て、前記候補調のトライアドのトニック和音構成音に含まれるという条件を満たす前記候補調が１つに定まるとき、当該候補調を最適な調として判別するか、前記最適な調を判別できないときには第３の選択手段を動作させる第２の選択手段と、前記候補調の中で調号に使用する変化記号の少ない調を最適な調として判別する第３の選択手段と、前記第１，第２，第３の選択手段のいずれかにより判別された前記最適な調に応じて調号を決定し、決定された前記調号を前記楽曲データ記憶手段に書き込む調号決定手段を有するものである。
したがって、音楽理論的に適切な調号を自動的に決定することができる。また、調号が入っていない楽曲データでも、音楽的に適切な調号が判別されて、楽譜表示あるいは印刷の際に調号が表示印刷される。その結果、適切な調号を有する楽譜表示あるいは楽譜印刷を可能とする。
【０００８】
請求項２に記載の発明においては、請求項１に記載の楽曲データに基づく音楽記号自動決定装置において、操作子の操作により調号を指定する調号指定入力手段と、前記楽曲データ記憶手段に記憶された前記調号を、指定された前記調号に変更する調号設定手段を有するものである。
したがって、調号を自動決定しないとき、あるいは、自動決定された調号が気に入らないときなどに、ユーザが調号を指定して楽曲データに書き込むことができる。
【０００９】
請求項３に記載の発明においては、楽曲データに基づく音楽記号自動決定装置において、異名同音を区別して表記されるコード・ネーム群と調号とを有する楽曲データを記憶する楽曲データ記憶手段と、半音単位の移調を指定する移調指定入力手段と、前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に派生音になるときには、移調後の該幹音を前記変化記号の変位方向の幹音に変更し、かつ、元の音高を変えないように前記変化記号を調整することにより、移調後のコード・ルートに変換する第１の変換手段と、前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に、前記変化記号の変位方向に派生音を挟まずに隣接する幹音になるときには、移調後の該幹音を前記隣接する幹音に変更し、かつ、元の音高を変えないように前記変化記号を調整することにより、移調後のコード・ルートに変換する第２の変換手段と、前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが変化記号を有しないときには、移調前のコード・ルートと移調後の調に基づいて、移調後のコード・ルートに変換する第３の変換手段と、前記第１，第２，第３の変換手段により得られた、前記移調後のコード・ルートを少なくとも用いて、前記楽曲データ記憶手段に記憶された前記楽曲データの前記コード・ネーム群を更新するコード・ネーム更新手段を有するものである。
したがって、移調後も音楽的な正確さと見やすさとを合わせ持った、コード・ネームに自動的に変更することができる。その結果、適切なコード・ネームを有する楽譜表示あるいは楽譜印刷を可能とする。
【００１０】
請求項４に記載の発明においては、楽曲データに基づく楽譜表示制御装置において、請求項１ないし３のいずれか１項に記載の楽曲データに基づく音楽記号自動決定装置と、表示制御手段と、コード・ネーム表示・非表示を指定する表示切り替え指定入力手段を有し、前記表示制御手段は、前記楽曲データ記憶手段から読み出された前記楽曲データがコード・ネーム群を有するものであり、かつ、前記表示切り替え指定入力手段によりコード・ネーム表示が指定されているときには、前記コード・ネーム群を有する音符群を表示装置に表示させ、前記表示切り替え指定入力手段によりコード・ネーム非表示が指定されているときには、前記コード・ネーム群を有しない音符群を前記表示装置に表示させるものである。
したがって、コード・ネームの表示が不必要なとき、あるいは、音楽的に不正確なコード・ネームを表示させたくないときに、楽譜にコードネームを表示させないようにすることができる。
【００１２】
請求項５に記載の発明においては、楽曲データに基づく音楽記号自動決定プログラムにおいて、楽曲データを記憶する楽曲データ記憶手段から前記楽曲データを読み出させるステップと、読み出された前記楽曲データの音符群の、所定の判定対象区間に対し、所定の複数の調の各音階固有音の音符数を計数することにより最適な調を判別させるか、前記最適な調を判別できないときには複数の候補調を出力して第２の選択ステップを動作させる第１の選択ステップと、前記楽曲データの音符群の冒頭の判定対象区間に対し和音構成音を抽出させ、抽出された前記和音構成音が全て、前記候補調のトライアドのトニック和音構成音に含まれるという条件を満たす前記候補調が１つに定まるとき、当該候補調を最適な調として判別させるか、前記最適な調を判別できないときには第３の選択ステップを動作させる第２の選択ステップと、前記候補調の中で調号に使用する変化記号の少ない調を最適な調として判別させる第３の選択ステップと、前記第１，第２，第３の選択ステップのいずれかにより判別された前記最適な調に応じて調号を決定させ、決定された前記調号を前記楽曲データ記憶手段に書き込ませる調号決定ステップをコンピュータに実行させるものである。
したがって、請求項１に記載の楽曲データに基づく音楽記号自動決定装置をコンピュータを用いて実行させることができる。
【００１３】
請求項６に記載の発明においては、楽曲データに基づく音楽記号自動決定プログラムにおいて、異名同音を区別して表記されるコード・ネーム群と調号とを有する楽曲データを記憶する楽曲データ記憶手段から前記調号と前記コード・ネーム群を有する前記楽曲データを読み出させるステップと、半音単位の移調を指定させる移調指定入力ステップと、前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に派生音になるときには、移調後の該幹音を前記変位記号の変位方向の幹音に変更させ、かつ、元の音高を変えないように前記変化記号を調整させることにより、移調後のコード・ルートに変換させる第１の変換ステップと、前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが、変化記号を有し、かつ、前記コード・ルートの幹音が移調後に、前記変化記号の変位方向に派生音を挟まずに隣接する幹音になるときには、移調後の該幹音を前記隣接する幹音に変更させ、かつ、元の音高を変えないように前記変化記号を調整させることにより、移調後のコード・ルートに変換させる第２の変換ステップと、前記楽曲データ記憶手段から読み出された前記コード・ネーム中の少なくともコード・ルートが変化記号を有しないときには、移調前のコード・ルートと移調後の調に基づいて、移調後のコード・ルートに変換させる第３の変換ステップと、前記第１，第２，第３の変換ステップにより得られた、前記移調後のコード・ルートを少なくとも用いて、前記楽曲データ記憶手段に記憶された前記楽曲データの前記コード・ネーム群を更新させるコード・ネーム更新ステップをコンピュータに実行させるものである。
したがって、請求項３に記載の楽曲データに基づく音楽記号自動決定装置をコンピュータを用いて実行させることができる。
【００１４】
請求項７に記載の発明においては、楽曲データに基づく楽譜を表示する楽譜表示装置であって、楽譜を表示する表示手段と、楽曲データを記憶する楽曲データ記憶手段と、前記楽曲データ記憶手段から読み出された前記楽曲データの音符群の、所定の判定対象区間に対し、所定の複数の調の各音階固有音の音符数を計数することにより最適な調を判別するか、前記最適な調を判別できないときには複数の候補調を出力して第２の選択手段を動作させる第１の選択手段と、前記楽曲データの音符群の冒頭の判定対象区間に対し和音構成音を抽出し、抽出された前記和音構成音が全て、前記候補調のトライアドのトニック和音構成音に含まれるという条件を満たす前記候補調が１つに定まるとき、当該候補調を最適な調として判別するか、前記最適な調を判別できないときには第３の選択手段を動作させる第２の選択手段と、前記候補調の中で調号に使用する変化記号の少ない調を最適な調として判別する第３の選択手段と、前記第１，第２，第３の選択手段のいずれかにより判別された前記最適な調に応じて調号を決定し、決定された前記調号を前記楽曲データ記憶手段に書き込む調号決定手段と、該調号決定手段により決定された前記調号を含んだ前記楽曲データに基づいて、前記決定された調号を有した前記楽譜を前記表示手段に表示させる表示制御手段を有するものである。
請求項８に記載の発明においては、請求項７に記載の楽譜表示装置において、コード・ネーム表示・非表示を指定する表示切り替え指定入力手段を有し、前記表示制御手段は、前記楽曲データがコード・ネーム群を有するものであり、かつ、前記表示切り替え指定入力手段によりコード・ネーム表示が指定されているときには、前記コード・ネーム群を有する音符群を前記表示手段に表示させ、コード・ネーム非表示が指定されているときには、前記コード・ネーム群を有しない音符群を前記表示手段に表示させるものである。
【００１５】
【発明の実施の形態】
図１は、本発明の楽曲データに基づく音楽記号自動決定装置、楽曲データに基づく楽譜表示制御装置の実施の一形態を説明するブロック構成図である。
図中、１は音楽記号自動決定部、２は楽曲データ記憶部、３は楽譜表示制御部、４は楽譜印刷制御部である。
音楽記号自動決定部１は、楽曲データ記憶部２に記憶されている楽曲データの少なくとも一部を入力し、変化記号による調号の自動決定および手動設定、移調後のコード・ネームの自動決定、臨時記号の自動決定を実行し、楽曲データ記憶部２に出力する。その際、元の楽曲データは、残されていても書き換えられてもよい。
この音楽記号自動決定部１は、これらの処理の任意のものを個別に実行したり、１つの処理を実行した後に、処理された楽曲データに対し、さらに別の処理を実行してもよい。
【００１６】
楽譜表示制御部３は、楽曲データ記憶部２から楽曲データを読み出し、表示器等に楽譜を表示させる。音符群とともに、調号、コード・ネーム、臨時記号等の任意のものが含まれて表示される。
同様に、楽譜印刷制御部４は、楽曲データ記憶部２から楽曲データを読み出し、プリンタに楽譜を印刷させる。音符群とともに、調号、コード・ネーム、臨時記号等の任意のものが含まれて印刷される。
楽譜表示制御部３および楽譜印刷制御部４は、操作子によるユーザの指定入力によって、コード・ネームを楽譜上に表示させるか否かを指定できる。
【００１７】
図２は、本発明において採用している音階および音階構成音を示す図表である。第１行は見出しである。調は３０調あるが、その内の２４調を採用し、２４調を複数の行として表示している。
第１列は、調号であり、調号を表記するための変化記号の種類（#，b）とその個数が示されている。第２列は独語表記の調名、第３列は英米語表記の調名、第４列〜第１５列は、１オクターブ分の音名を独語表記で示している。
【００１８】
調号は次の１２種類（２４調性）とする。
#bなし（Ｃ，ａ）
b１個〜６個（Ｆ，ｄ〜Ｇes，ｅs）
#１個〜５個（Ｇ，ｅ〜Ｈ，ｇis）
異名同調（エンハーモニック・キー，ＧesとＦis、ＤesとＣis、Ｃesとａｓ等）は区別できない。したがって、Ｆis，ｄis，Ｃis，ａis、は判断範疇から除いた。
１つの調号に、それぞれ長調と短調の平行調が一対含まれるから、調性は２４調性となる。しかし、楽譜表記を問題としているので、求めるのは、基本的に「調号すなわち、#，bの数」である。同じ調号で示される長調と短調の判断は副次的である。
【００１９】
この図表の例では、楽曲データがSMF（Standard MIDI File）のように、１２音系を想定して作成している。したがって、異名同音（エンハーモニック）の区別をしていない。したがって、表記は、MIDIノートナンバ（１オクターヴ間に１２種類）と一対一対応する。したがって、例えば、「Ｅis」音は「Ｆ」に同じと見なすので、Ｃ調の音階固有音と見なされる。
図３ないし図７を参照して、調号を決定する処理について説明する。
【００２０】
図３は、調号を決定する処理動作を説明するフローチャートである。
図４は、調号決定の第１の具体例である楽譜の説明図である。
図５は、図４に示した第１の具体例における第１手順の計算結果の説明図である。
図６は、調号決定の第２の具体例である楽譜の説明図である。
図７は、図６に示した第２の具体例における第１手順の計算結果の説明図である。
【００２１】
まず、楽曲データとして与えられるSMFの条件を検討する。調性決定する前に必要な楽曲データの条件は次の通りである。
(1)調性メタイヴェントについて
SMFには「調性メタイヴェント（Key  Signature）」が定義されているが、この調性メタイヴェント自体がない、あるいは、調性メタイヴェントがあるけれども必ずしも信頼できないケースについて、調性の自動決定を行う。
(2)クォンタイズについて
調号決定手順の中で、和音であるか否かを判断する必要がある。一般のSMFデータでは、和音であっても微妙なクロックずれがある。極端な例としては、ギターのストローク演奏がある。このような場合には、調性記号を決定する時に、一時的に適切なクォンタイズ処理（時間を所定の音符長さを単位として丸め込みを行う）が行われていて、和音判別がし易いように前処理する。
(3)右手・左手の分離について
SMFデータが右手、左手の別MIDIチャンネルとして記録されているか、別トラックとして記録されており、その結果、両データが分離されていることが好ましい。しかし、分離されていない場合でも、右手演奏と左手演奏とのスプリットポイントをユーザが推定し、スプリットポイントを音楽記号決定部に手動入力する構成にすればよい。
【００２２】
次に、図３を参照して調号を決定する手順を説明する。
３段階の手順があり、第１手順で調号が一義的に定まれば、これで処理を終了する。決定できない場合には、第２手順に進み、これでも決定できない場合は、第３手順で決定する。
Ｓ１１において、SMF形式の楽曲データを記憶部から読み出す。Ｓ１２において、MIDIノートオンイベントの発生タイミングのばらつきを修正する。既に説明したように、このクォンタイズ処理は、入力されるMIDIノートオンイベントの特性によっては必要となるものであり、必須のステップではない。また、クォンタイズ処理された楽曲データを元の記憶部に戻す必要はない。
【００２３】
第１手順として、Ｓ１３において、判定対象区間の音符群中、２４調の音階固有音の数を計数する。
ここで、音階固有音とは、図２に示した図表に示されている。原則として、臨時記号なして表示できる音高を音階固有音という。短音階の中には、例外的に、臨時記号は必要であるが固有音に含めるものもある。
判定対象となる区間は、例えば、単純拍子（２拍子、３拍子）の場合８小節、複合拍子（４拍子、６拍子など）の場合は４小節とする。ただし、弱起の場合は不完全小節を後ろへ繰り込むことにする。例えば、第１小節が４拍目から開始された場合は、５小節目の３拍目までが対象区間とする。
判断対象音符は、右手・左手の区別なしに、判定対象区間に含まれる全ての音符である。
【００２４】
Ｓ１４において、音階固有音数が最大となる調を検出する。最大となる調があれば、Ｓ１５に処理を進め、この調を最適な調であると判別し、Ｓ２２に処理を進める。最大となる調がなければ、Ｓ１６に処理を進め、２，３の複数の候補調を選択し、Ｓ１７の第２手順に進める。
図４，図５には、計数の第１の具体例が示されている。
具体例として、図４に示す「バイエル８０番」を用い、図５にその計算結果が示されている。計算は２４調について実行するが、そのうち、１０調のみを示している。この場合は、Ｄ調（#２個）が固有音数が最も多いので、最適調としてＤ調が決定され、調号として#２個が一義的に決定できる。
図６，図７には、計数の第２の具体例が示されている。具体例として、図６に示す「バイエル１０２番」を用い、図７にその計算結果が示されている。計算結果は、６調についてのみ示している。この場合は、Ｂ調とＦ調とが同数となるので確定できない。
【００２５】
なお、これを解決する方法として、判定する小節数を伸ばすか、または、可変にする方法もある。この例では、もう１小節伸ばせば、Ｆ調に確定できる。
しかし、この実施の形態では、第２手順に進み、異なった手順でＢ調とＦ調のどちらかを確定させる方法を採用した。
なお、バイエル（調号が導入される６４番以降）４４曲では、３１曲が手順１によって一義的に調号を正しく確定できた。１２曲は２つの調号のどちらか、と類推でき、１曲は３つの調号にまたがる。これに対し、バッハ：平均率曲集（２４の調全てを含む）では、２４曲中２３曲が一義的に正しく確定できた。２４番ｈは誤った判断を行った。
【００２６】
Ｓ１７において、判定対象区間を冒頭１小節とする。判定対象音符は、まず、左手演奏データと右手演奏データとを分離して判定できる場合、左右別々に行う。左右演奏が分離していない場合は、合わせた演奏データについて判定を行う。
Ｓ１８において、判定対象期間に対し和音構成音を抽出する。
Ｓ１９において、抽出された前記和音構成音が全て、上述した候補調のトライアドのトニック和音構成音に含まれるか否かを判定し、条件を満たす候補調が１つに定まるとき、このトライアドのトニック和音の候補調を最適な調と判別し、Ｓ２０に処理を進める。適合する候補調が１つに定まらなければＳ２１に処理を進める。
【００２７】
ここで、Ｓ１７，Ｓ１８の具体的な判定方法を説明する。
(1-1)「自分自身」が「単音」である
(1-2)「直後ステップにある音」が「単音」である
(1-3)前記「直後ステップにある音」が「自分自身」に対し、短３度以上の幅で進行している
または、
(2)「自分自身」が和音である
判定対象区間の音符を順次上述した「自分自身」として、(1-1)〜(1-3)の３条件を同時に満たすか、(2)の条件を満たすかを判定する。
上述した条件を満たす「自分自身」の音符を全て取り出す。これが第２手順での判定対象音符群である。
【００２８】
判断内容は、手順１によって得られた２〜３の候補調に対する、トライアドのトニック和音の構成音集合（Ａ）と、判定対象音符群（Ｂ）とを比較する。
（Ｂ）が（Ａ）の集合のどれかに「全て」含まれる、言い換えれば、（Ｂ）の中に、（Ａ）に含まれない音符がないならば、そのトニックに対応した候補調が求める最適な調である。
図６に示した、バイエル１０２番の場合、手順１によって選択された候補調は、Ｆ調とＢ調であり、トライアドのトニック和音は、Ｆ調（Ｆ，Ａ，Ｃ）、Ｂ調（Ｂ，Ｄ，Ｆ）である。
【００２９】
手順２によれば、右手冒頭１小節からは判定対象音は何も得られない。一方、左手冒頭１小節からは、Ｆ，Ａ，Ｃが得られる。これらを比較して、求める調はＦ調と決まる。
上述した手順２は、メロディの動きから、音楽的な根拠で和声内音、和声外音を認識しようとしている。
このためにはメロディ部分が特定できなければならないが、右手・左手が一つにまとまった状態では、完全に分離することが難しいので、精度が落ちる。なお、「バイエル１０２番」では、判定対象音符群として（Ｆ，Ａ，Ｃ，Ｇ，Ｂ）が得られる事になり、これら全ての音を含む該当トライアドのトニック和音はないから、結局、第２手順では、最適な調は特定できないことになる。
【００３０】
Ｓ２１においては、第３手順として、複数の候補調の中で、b，#の数が最小の調を最適な調と判別する。
第３手順は、対象楽曲データを、初心者向けに限ると的中する。その他、音楽的に調を特定できない類のもの、例えば半音階の曲では、Ｃ調が選択されることになる。
Ｓ２２においては、最適な調の調号を記憶部に保存する。保存形式としては、SMFフォーマットの「調性メタイヴェント」として保存することができる。
【００３１】
なお、必ずしも、第３手順までを実行する必要はなく、簡略化した手順として、第１手順までとしてもよいし、あるいは、第２手順までとしてもよい。前者の場合、第１手順の終了時に複数の候補調が残ったとき、後者の場合、第２手順の終了時に複数の候補調が残ったときには、残った候補調の中から１つを、任意にまたは所定の優先順序（調の優先順序）に従って選択しても、ある程度までの適切な調を判別することができる。
【００３２】
次に、図８ないし図１０を参照して、移調後のコード・ネームを決定する処理について説明する。移調後のコード・ネームは調性の概念を考慮して決定しなければ不自然なものとなるので、移調後のコード・ネームを適切なものに自動変換する。
図８は、移調前のコード・ネームと移調後のコード・ネームを示す譜例図である。
図８（ａ）は移調前の譜例図、図８（ｂ）は移調後の適切なコード・ネームを示す譜例図、図８（ｃ）は移調後の不適切なコード・ネームを示す譜例図である。
図９は、移調後のコード・ネームを自動決定する処理動作を説明するフローチャートである。
【００３３】
図１０は、図９のフローチャートで使用されるコード・ネーム移調テーブルを示す図表である。
図１０においては、３０調を複数の行として表示している。第１列は、調名であり独語表記されている。並行調の長調と短調は区別せずに取り扱っている。第２列〜第１３列は、１オクターブ分の音名であり、中央１オクターブのMIDI番号（ノートナンバ）を併記している。
従来技術の項においても触れたように、ＸＦフォーマットでは、コード・ネームを楽曲データに記録することができ、表示も可能である。
このコード・ネーム書式は、ルート音名表記とベース音名表記（分数コードの場合に使用される）に際し、３１音方式を採用している。すなわち、幹音（白鍵、例えば、Ｅ，Ａ）と変化記号（例えば、#，##）の抱き合わせで表現し、異名同音（例えばＣ#とＤb）を識別できる仕組みになっている。
【００３４】
一方、MIDI規格では、１２等分平均律を前提とし、異名同音（例えば、Ｃ#とＤb）を区別しない方式を使用している。
さて、前者（３１音系）と後者（１２音系）は、各系内では閉じていて首尾一貫しているが、当然ながら一対一に対応しないので、２系が併用された場合に問題が生じる。この典型的な場合は、「移調」である。
例えば、３１音系内で閉じている場合、
Ｃ#音を長３度上に移調すれば、新しい音はＥ#音である。
Ｃ#音を減４度上に移調すれば、新しい音はＦ音である。
Ｄb音を長３度上に移調すれば、新しい音はＦ音である。
Ｄb音を減４度上に移調すれば、新しい音はＧbb音である。
例えば、１２音系内で閉じている場合、
キーナンバ６１（Ｃ#３）を半音４個分上に移調すれば、新しいキーナンバは６５（Ｆ３）である。
【００３５】
ところが、移調の元音に３１音系を用い、移調のコマンドに１２音系を用いても、確定した結果を得られない。移調の元音に１２音系を用い、移調のコマンドに３１音系を用いても同様である。
例えば、両系が併用された場合、Ｃ#を半音４個分上に移調すればどう表記するのが適切か、キーナンバ６１を長３度上に移調すれば、どう表記するのが適切か、いずれもわからない。
このような事態を避けるためには、次の２対応が考えられる。
(1)移調コマンドを３１音系内で実行させる（例えば、度数で指示させる）。
(2)３１音系と１２音系相互に変換可能な手順を決める。
以下、(2)の手順を検討する。
【００３６】
上述した問題は、楽譜に表示される「臨時記号」にもあてはまる同種の問題である。したがって、以下に示す手法は、原則的に「臨時記号」表記にも使用できる。
ただし、「臨時記号」と「コード・ネーム」とは若干様相を異にする部分がある。先ず、これを確認しておく。
【００３７】
(1)音符の「臨時記号」は、後述するように、固定式テーブルを参照し、１２音系から３１音系への変換を行うことにしている。
一方、コード・ネームは、３１音系で自由に入力されるために、１２音系／３１音系変換テーブル自身が使えない場合がある。例えば、ハ長調で「Ｄb7」と入力されても、そもそも、１２音系入力に、「Ｄb」が存在しない。
(2)コード・ネームにダブル・フラット（bb）、ダブル・シャープ（##）が使用されることはまずない。しかし、間違いであるとはいえない。
そこで、入力される「コード・ネーム」には、「bb」，「##」を許容し、移調されて生成されたコードには、「新たに」「bb」や「##」が付くことのないように配慮する。
(3)音楽的な正確さよりも、見やすさが優先され、首尾一貫性を犠牲にする場合もある。
【００３８】
図８（ａ）の譜例を半音３個（短３度）上に移調すると、最後のコードは、音楽的な意味で厳格に（臨時記号のように）扱えば、図８（ｃ）の譜例のように、「Ｆb7」になる。
ところが、コード・ネームの場合は、一般的に図８（ｂ）のように表記して、Ｆの半音下すなわち、「Ｅ」とした方がわかりやすい。すなわち、「Ｅ」と「Ｆ」は、白鍵同士で隣り合っている。したがって、「Ｅ」を「Ｆ」の１つ下というよりも「Ｅ」といった方がわかりやすい。同様に、「Ｂ#」と「Ｃ」についても同様のことが言える。要するに「見やすさ」を優先させて表記される。
これに対し、２つ目のコード（Ｇb7）がＦ#7と表記されることはまずない。見やすさを優先してはいるが、原則としては３１音系内の首尾一貫性を守ろうとしている。
【００３９】
次に、図９のフローチャートにしたがって、移調後の最適なコード・ネームの自動決定手順を説明する。なお、移調に伴って音符も移調されることになるが、音符の移調手順については、説明を省略する。
Ｓ３１において、SMFフォーマットを拡張したＸＦフォーマット形式の楽曲データを記憶部から読み出す。音符およびコード・ネームは、イベント発生タイミングの順番で、１つずつ読み出して処理してもよいが、一旦バッファメモリに読み込んでから処理することもできる。
【００４０】
ＸＦフォーマット形式において、コード・ネームは、スタイルメッセージの１つとして、次のように定義されている（ＸＦフォーマット仕様書  V2.03）。
FF 7F 07 43 7B 01 cr ct bn bt
ここで、crはコード・ルートである。
その詳細は、0fffnnnnである。
fffは変化記号である。その0000〜0110でbbbから###を表現する。一方、nnnnはノートである。その0001〜0111で、それぞれ、「Ｃ」〜「Ｂ」を表現する。
ctはコードタイプである。bnはオンベースノートであり、分数コードの場合に使用される。これは、コード・ルートと同じ表記をする。ベースコードのないときは127とする。
btは、ベースコードであり、コードタイプと同じ表記をする。ベースコードのないときは、１２７とする。
【００４１】
Ｓ３２において、移調前のコード・ネームの内、コード・ルートおよびオンベースノートの記述形式を、Ｎ＝Ｘ＋Ｙに変換する。
(1)変位量Ｙについて、
0003744366.tif 000002
このうち、###やbbbは音楽的に意味がないのでほぼ無視して差し支えない。また、##やbbもコード・ネーム上では通常使用されていない。
【００４２】
(2)被変位音（Ｘ）について、
被変位音は、幹音（白鍵の音）であるが、移調計算を簡単にするために、中央１オクターヴ分のMIDIノートナンバに置き換える。なお、ノートナンバ全ての０〜１２７を用いてもよい。
0003744366.tif 000003
ここで、（Ｘ，Ｙ）の意味について説明を補足する。
（Ｘ，Ｙ）表記は、１２音系のMIDIのキーナンバ、３１音系の音名のいずれについても表現できる３１音系の変換表記形式である。すなわち、
Ｎ＝（Ｘ，Ｙ）
Ｘは変化記号によって、変位を被る前のノートナンバ
Ｙは変位量
Ｎ＝Ｘ＋ＹのＮが１２音系のＭＩＤＩノートナンバに一致する。
例えば、Ｃ3（１２音系では、ノートナンバ６０）は次のようになる。
Ｃ3＝（６０，０）、ここで、Ｘ＝６０はＣ3を表し、Ｙ＝０は、変位量なしを表す。このとき、ノートナンバＮ＝６０である。
また、例えば、Ｅb3（１２音系では、ノートナンバ６３）は、次のようになる。Ｅb3＝（６４，−１）、Ｘ＝６４（Ｅ3）、Ｙ＝−１（b１個分の変位）、このとき、ノートナンバＮ＝６４−１＝６３である。
【００４３】
Ｓ３３において、移調量には、１２音系を採用し、半音個数（Ｓ）で指定されるとする。以下のＳ３４〜Ｓ３９では、次の規則にしたがって決められている。
(1)移調量ＳはＸに加えられる
(2)Ｙ（#やb）は移調量による直接の変化はない
(3)Ｙ＝０とＹ≠０の場合とで処理方法を変える。Ｙ＝０の場合は調性概念と抱き合わせる。Ｘ＋Ｓの結果によって、若干の処理手順を追加する。
Ｓ３５において、変位量が存在する（Ｙ≠０）場合、Ｓ３６に処理を進め、存在しない（Ｙ＝０）場合、Ｓ３７に処理を進める。
Ｓ３６において、移調した結果をＮｓ＝（Ｘ＋Ｓ，Ｙ）とする。Ｘ＋Ｓが黒鍵（派生音、ノートナンバ＝６１，６３，６６，６８，７０）に該当するか否かを判定する。該当するときには、Ｓ３８に処理を進め、該当しないときにはＳ３９に処理を進める。
Ｓ３８において、「変位を被るノートナンバ」が白鍵（幹音、ノートナンバ＝６０，６２，６４，６５，６７，６９，７１）に該当するようにする。すなわち、Ｙの符号が正ならば（Ｘ＋Ｓ）に１を加え、Ｙの符号が負ならば（Ｘ＋Ｓ）から１を減じる。この時Ｎｓが変化しないようにＹ自身の値も調整する。
例えば、コードＥbを半音３個分上（Ｓ＝３）に移調する。移調前は、Ｎ＝（６４，−１）、移調中はＮｓ＝（６７，−１）。Ｘ＝６７（白鍵）であるからＳ３９に処理を進める。
【００４４】
また、例えば、コード・ネーム「Ｅb」を半音１個下（Ｓ＝−１）に移調する。移調前は、Ｎ＝（６４，−１）、移調中は、Ｎｓ＝（６３，−１）。Ｘ＝６３であるから、Ｓ３８に処理を進め、「変位を被るノートナンバ」は（６４−１−１）となり、変位量は、Ｙの符号（−１）にしたがって調整されて（−１＋１）＝０となる。したがって、移調後のＮｓ＝（６２，０）となる。
Ｓ３９においては、（Ｘ＋Ｓ）が白鍵であるから本来は何もしない。しかし、図８を参照して説明したように、コード・ネームは臨時記号と比べて、首尾一貫を犠牲にして「見やすさ」を優先させる特徴がある。ＦbやＢ#等はそれぞれＥ，Ｃで代用してしまうことが多い。Ｓ３９では、この「見やすさ」（コード・ネームの表記特性）を取り入れて次のような調整を行う。
（Ｘ＋Ｓ）＝６５＆Ｙ＜０ならば、（Ｘ＋Ｓ）＝６４，Ｙ＝Ｙ＋１
（Ｘ＋Ｓ）＝７１＆Ｙ＞０ならば、（Ｘ＋Ｓ）＝６０，Ｙ＝Ｙ−１
なお、首尾一貫性からいえば、Ｅ＃やＣｂもこれに含めるべきかもしれないが、慣用的にこれはこのまま使用する。
【００４５】
一方、Ｓ３５において、変位量がない（Ｙ＝０）場合、Ｓ３７に処理が進められる。
この場合、原理的には後述する「臨時記号用テーブル」が使える。しかし、「見やすさ」（コード・ネームの表記特性）によって、##やbbを避けたい。そのために、後述する「臨時記号テーブル」を一部変更し、新たに、図１０に示す、「コード・ネーム移調テーブル」を用意した。（Ｘ＋Ｓ）の結果は、移調後の新しい調の決定後、この「コード・ネーム移調テーブル」にしたがう。なお、このコード・ネームは、長調、短調兼用である。
【００４６】
図１０の「コード・ネーム移調表」の参照方法を、具体例を用いて説明する。（例１）Ｃ調におけるコード・ネームＣ7が半音３個上に移調された場合：
移調前のコード・ルート「Ｃ」は、Ｎ＝（６０，０）
移調処理途中：Ｎｓ＝（６３，０）
移調後の新しい調は、図２の２４調において、Ｃ調の半音３個上のＥb調（独語Ｅs調）と決定される。
図１０の「コード・ネーム移調テーブル」にしたがって、移調後のＥb調の行とMIDI番号６３の列との交叉するセルを参照すると、Ｅbである。Ｅbは（６４，−１）であるから、Ｎｓで表現すると、Ｎｓ＝（６４，−１）と決定される。
【００４７】
（例２）Ａb調（独語Ａs調）におけるコード・ネームＣ7が半音１個上に移調された場合：
移調前のコード・ルート「Ｃ」は、Ｎ＝（６０，０）
移調処理途中：Ｎｓ＝（６１，０）
移調後の新しい調は、図２の２４調において、Ａb調（独語Ａs調）の半音１個上のＡ調と決定される。
図１０の「コード・ネーム移調テーブル」にしたがって、移調後のＡ調の行とMIDI番号６１の列との交叉するセルを参照すると、Ｃ#である。
Ｃ#は（６０，１）であるから、Ｎｓで表現すると、Ｎｓ＝（６０，＋１）と決定される。
【００４８】
オンベースノートも、コード・ルートと全く同様に処理する。
（例３）Ｇ調におけるコード・ネームＣm onＥbが半音１個上に移調される場合：
コード・ルート「Ｃ」は、Ｎ＝（６０，０）
移調処理途中：Ｎｓ＝（６１，０）
移調後の新しい調は、図２の２４調において、Ａb調（独語Ａs調）と決定される。
図１０の「コード・ネーム移調テーブル」にしたがって、移調後のＡb調（独語Ａs調）の行とＭＩＤＩ番号６１の列との交叉するセルを参照すると、Ｄbであるから、Ｎｓで表現するとＮｓ＝（６２，−１）と決定される。
【００４９】
一方、オンベースノート「Ｅb」は、Ｎ＝（６４，−１）
移調処理途中：Ｙ≠０，Ｘ＋Ｓ＝６５であるから、Ｓ３５からＳ３６，Ｓ３９に処理が進む。その結果、Ｎｓ＝（６４，０）の「Ｅ」となる。
結局、移調後の新しいコード・ネームとしては、Ｄbm onＥを得る。
移調後のＮｓを、逆にたどれば、移調結果は、簡単に元のＸＦ定義のコード表現に復元できる。
例えば、Ｄbm onＥを例にとれば、次のようになる。
0003744366.tif 000004
図９のＳ４０においては、元のコード・ネームが、決定されたコード・ネームに変換された楽曲データを記憶部に保存する。
【００５０】
上述した移調後のコード・ルート決定の処理手順をまとめると、移調量は半音個数で与えられるものとする。移調後の調性は、図２に示した２４調の中で移調するといった、別途のルール（調号の少ない調など）で決められるとする。ＸＦフォーマットでのコード・ネーム入力では、コード・ルート，オンベース・コードを計算しやすいＹｓ形式に書き換えてから、移調計算を実行する。「見やすさ」という「コード・ネーム表記の特性」にしたがって適宜調整する。移調後のＹｓ形式を、再び、ＸＦフォーマットでのコード・ネーム表記に戻す。
上述した手順は、理論的には首尾一貫しているが、#，bの非常に多い調性で使われるときに若干違和感のある表記が現れる可能性がある。これは通常「見やすさ」を優先している事に因っている。「見慣れない」コード表記が出現したときには補正すればよい。
【００５１】
なお上述した説明では、図９のＳ３６，Ｓ３８，Ｓ３９においては数式によって、Ｓ３７においてはテーブルを参照して、コードルート，オンベースノートを決定する処理を行った。
しかし、全ての場合において、テーブルによってコードルート，オンベースノートを決定するようにしてもよい。あるいは、図１０に示した「コード・ネーム移調テーブル」にも変換の規則性があるので、テーブルの代わりに数式を用いて同じ結果を出力させることも可能である。
【００５２】
次に、図１１ないし図１３を参照して、臨時記号の自動決定処理について説明する。
１２音系のMIDIを使用するSMFファイルでは、ノートナンバを用いるので、臨時記号が付かない。このSMF形式の楽曲データを、３１音系で楽譜表示させるときには、臨時記号が必要となる。
【００５３】
図１１は、原案の「臨時記号用テーブル」、譜例、および、改良後の「臨時記号用テーブル」の説明図である。改良後の「臨時記号用テーブル」では、長調と短調とで異なった参照をする。
図１２は、臨時記号の自動決定処理を説明するフローチャートである。
図１３は、図１１（ｄ）に示した「臨時記号用テーブル」によって臨時記号が付加された後、臨時記号の「変化記号」と調号による「変化記号」とを合わせた結果を示す具体例である。
【００５４】
図１１（ａ），（ｄ）のテーブルは、調の音階構成音毎に、「変形方法」を示している。図１１（ｄ）については、長調と短調とでテーブルを異ならせている。０は臨時記号による変形を受けない。＋は嬰方向への変形で表し、−は変方向への変形で表す。嬰方向、変方向は必ずしも直接に#，bを意味しない。本位記号（ナチュラル）の場合もあるし、重嬰、重変、もある。
【００５５】
より具体的に説明する。＋のところの音は、１つ左の音を表す音符に#を付ける。−のところの音は、１つ右の音にbを付ける。例えば、主音と上主音との間の音を主音の音符に#を付けた表記にする。上主音と中音の間の音を中音のアルファベットにbを付けた表記にする。
ただし、その結果、元々、調号によって#やbが付いていた音符に#やbが付く場合がある。そのため、##，bb，ナチュラルの記号（調号によって#が付いていた音符にbを付ける場合、調号によってbが付いていた音符に#を付ける場合）を付ける場合がある。
【００５６】
応用として、Ｇメジャースケールでは、
Ｇ，Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ#となるが、それぞれの役割は、
Ｇ（主音），Ａ（上主音），Ｂ（中音），Ｃ（下属音），Ｄ（属音），Ｅ（下中音），Ｆ#（導音）となる。
従って、その間にある音に「下の音の音符に#を付けるか、上の音にbを付けるか」というルールで原案テーブルに従うと、次の通りである。
Ｇ（主音），Ｇ#，Ａ（上主音），Ｂb，Ｂ（中音），Ｃ（下属音），Ｃ#，Ｄ（属音），Ｄ#，Ｅ（下中音），Ｆ（ナチュラル記号付）（導音）となる。
Ｆ（ナチュラル記号付）となるのは、#とbとが打ち消しあって、ただのＦになることを意味する。
図１１（ｂ）のテーブルについても同様である。
【００５７】
図１１（ａ）の「原案臨時記号用テーブル」では、主音、上主音、中音、下属音、属音、下中音、導音については、臨時記号による変形を受けない。
主音の半音上の音は、＋方向への変形で表す。上主音の半音上の音は、−方向への変形で表す。下属音の半音上の音は＋方向への変形、属音の半音上の音は＋方向への変形で表す。下中音の半音上の音は、−方向への変形で表す。
図１１（ｂ）は、この「臨時記号用テーブル」を用いて「エリーゼのために：ａ調（Ａm）」を記譜したものである。しかし、この記譜は、原譜と異なっていて違和感がある。これを是正するために図１１（ａ）の原案の「臨時記号用テーブル」を変更し、図１１（ｄ）の「短調」の行に示すように、上主音の半音上を嬰方向（＋）にして、同じく「エリーゼのために」を記譜すれば、図１１（ｄ）に示すように、この記譜に違和感はない。
【００５８】
ところが、変更された短調の行で、例えば、「子象の行進：Ｃ調」（譜例省略）の頭の４小節を記譜すれば違和感がある。
そこで、図１１（ｄ）の「長調」の行を、図１１（ａ）の原案から次のように変更して記譜されるべきである。
すなわち、属音の半音上を変方向（−）にして、「子象の行進：Ｃ調」を記譜すれば、この記譜に違和感はない。
【００５９】
図１２は、最適な臨時記号の自動決定をする処理を説明するフローチャートである。
Ｓ５１において、調号、長調／短調指定情報を有する楽曲データを読み出す。SMFの「調性メタイヴェント」は、「FF  59  02  sf  mi」である。
sfは調記号に対応し、#，bの数（bの場合は負数）を表す。したがって、調がわかる。さらに、mi＝０のときは長調、mi＝１のときは短調を意味するので、長調と短調とを区別することができる。
Ｓ５２において、調を長調か短調かの区別を含めて識別する。
Ｓ５３において、図１１（ｄ）に示した「臨時記号用テーブル」を調（長調か短調かの区別をする）に応じて参照し、最適な臨時記号を判別する。
Ｓ５４において、臨時記号を付けるべき音符に、臨時記号が付加された楽曲データを記憶部に記憶する。
正しい臨時記号を、調号との関係だけで一義的に決定することは本質的に無理があるが、長調と短調とを区別してテーブルを参照するだけでも改良される。
【００６０】
上述した説明では、図１１（ｄ）に示した「臨時記号用テーブル」を用いて最適な臨時記号を決定した。しかし、この「臨時記号用テーブル」を用いることなく、他の具体手段として、調号、長調と短調とを指定する情報、および、MIDI番号に応じて、演算により臨時記号を決定したり、調号、長調と短調を指定する情報、および、MIDI番号に応じて、直接的に臨時記号が得られるテーブルを用いて、同じ結果を得るようにしてもよい。
なお、臨時記号には効力範囲がある。一般的な規則では、臨時記号が用いられた音符以後、同じ小節内に限り有効であり、小節線を越えると無効となる。ただし、同じ高さの音符が小節線を越えてタイ記号で結ばれたときには、引き継がれる。
【００６１】
したがって、臨時記号の効力範囲に応じて臨時記号を付すべき音符が決定される。その結果、上述した臨時記号テーブル等によって、各音符に付すべき臨時記号が決定されても、それ以前の音符に付された臨時記号の効力範囲内の音符に該当するために、「臨時記号を付すべき音符」であるとされないときもある。また、逆に、それ以前の音符に付された臨時記号の効力範囲内の音符に該当するために、「臨時記号を付すべき音符」であるとされるときもある。
なお、上述した臨時記号の効力範囲は、必ずしも統一した規則とはなっておらず、見やすさを考慮した特別な付け方もなされる。図１１（ｂ）の第２小節の第１番目の音符に「ナチュラル記号」が付されているのは、見やすさのためである。
また、小節線で区分する場合、SMF中の、「拍子（Time Signature）メタイベントと、各音符のデュレーション情報から小節の区切りが得られる。
【００６２】
図１４は、本発明の実施の一形態のハードウエア構成を示すブロック図である。
図中、６１はバスであって、これに接続された各ブロックはバス６１を介してアドレスおよびデータの転送を行う。６２はＲＡＭ（Random Access Memory）、６３はＲＯＭ（Read Only Memory）、６４はＣＰＵ（Central Processing Unit）である。
ＣＰＵ６４は、電子楽器全体の一般的な入出力制御、メモリ管理を行うとともに、演奏操作子により作成された演奏データ、外部装置入力あるいは記憶部から読み出された自動演奏データを、音源７５に出力して楽音信号を生成させ、サウンドシステム７６のスピーカから楽音信号を出力させる。
自動演奏データの処理方法は、設定されたテンポに応じて処理周期を変更する方法、処理周期は一定で、自動演奏データ中のタイミングデータの値を設定されたテンポに応じて変更する方法、処理周期は一定で、１回の処理において自動演奏データ中のタイミングデータの計数の仕方をテンポに応じて変更する方法等、どのようなものであってもよい。
【００６３】
ＲＯＭ６３は、ＣＰＵ６４を動作させるプログラム（楽曲データに基づく音楽記号自動決定を実行するステップを含む）の他、プリセットされた音色データや、楽曲データが記憶されている。ＲＡＭ６２は、ＣＰＵ６４がプログラムに基づいて動作するときに必要なワークエリアの領域を有するとともに、入力されたデータのバッファ領域を有している。
６５はタイマであって、ＣＰＵ６４にクロック信号を供給したり、割込タイミング等を制御する。
【００６４】
６６は外部記憶装置、例えば、ハード磁気ディスク駆動装置（HDD），フレキシブル磁気ディスク装置（FDD），ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）駆動装置，ＭＯ（Magneto Optical Disk）駆動装置，ＤＶＤ（Digital Versatile Disk）駆動装置，フラッシュメモリ等の半導体メモリである。外部記憶装置６６にも、プリセットされた音色データや、楽曲データが記憶される。さらに、ＣＰＵ６４を動作させるプログラムがインストールされていてもよい。半導体メモリは、電子楽器から取り外し可能なものとしてもよい。
【００６５】
６７はパネル操作子，演奏操作子、６８は検出回路であって、パネル操作子，演奏操作子６７の操作を検出する。
パネル操作子，演奏操作子６７のうち、パネル操作子は、電子楽器のパネル上に設けられた各種の設定操作子である。演奏操作子は、楽器鍵盤やフットペダル、ドラムパッドなどである。電子楽器のタイプによっては、演奏操作子を備えない場合もある。
【００６６】
６９は表示回路、７０は液晶表示器（ＬＣＤ）であって、電子楽器のパネル面に設けられ、表示回路６９で生成された画像信号を表示する。
７１は動画処理回路（専用ＲＡＭを含む）、７２はテレビジョン（ＴＶ）であって、電子楽器の外部に接続された家庭用のテレビジョン受像器あるいはモニターテレビジョン、あるいは、ビデオプロジェクタである。動画処理回路７１で生成された映像信号を入力する。
液晶表示器７０およびテレビジョン７２は、電子楽器の設定を行うときやリアルタイム演奏時の各種表示のほか、自動演奏時に楽譜を表示させることができる。このとき、自動演奏による楽音信号を生成してサウンドシステム７６から出力させるモードの他、楽音信号の少なくとも一部の演奏パート（典型的には、メロディパート）を出力させないで、少なくともこの演奏パートの楽譜を、液晶表示器７０，ＴＶ７２に表示させる楽譜演奏モードを設けてもよい。
このモードにおいて、ユーザは、楽譜を見ながら演奏操作子を操作することができる。
【００６７】
図１を参照して説明したように、編集モードにおいて、ユーザが調号を手動設定するための設定操作子を設ける。
調号を手動設定すると、調号が本体内蔵のＲＡＭ６２上の楽曲データに即座に書き込まれるだけでなく、シーケンサソフトウエアで既に実現されているように、楽曲データ中の臨時記号情報の書き換えを行う。
その結果、調号および臨時記号が直ちに、液晶表示器７０，ＴＶ７２の楽譜表示画面に反映されて、正しい楽譜表示がされる。なお、調号は、曲の途中に入れることも可能である。長調、短調を区別する設定も手動入力できるようにすればさらによい。
【００６８】
また、コード・ネームの表示／非表示を切り替える設定操作子を設け、コード・ネームの表示が不要なとき、あるいは、楽曲データに含まれたコード・ネームの音楽的正確さに疑問があるときに、コード・ネームを表示させないようにしてもよい。
あるいは、コード・ネームの楽譜表示を液晶表示器７０だけに選択表示させて、ＴＶ７２には表示させないようにする設定操作子を設けてもよい。
電子楽器の教習指導者が液晶表示器７０を見て、生徒はＴＶ７２を見るようにする。ＴＶ７２に表示されている楽譜を見て、正しいコード・ネーム（移調の前後を問わない）を生徒に考えさせるといった用途で使用することができる。
調号、臨時記号についても、設定操作子で同様な表示／非表示および選択表示を可能として、正しい調号、臨時記号を生徒に考えさせるといった用途で使用することができる。
【００６９】
７３はMIDIインターフェース、７４はMIDI機器（パーソナルコンピュータＰＣ），シーケンサ等である。
専用のMIDIインターフェースに限らず、RS-232C、USB（ユニバーサル・シリアル・バス）、IEEE1394等の汎用のインターフェースを用いてMIDIインターフェースを構成してもよい。この場合、MIDIメッセージ以外のデータをも同時に送受信するようにしてもよい。
７５は音源、７６はサウンドシステムである。
音源７５は、演奏操作子によって入力された演奏データ、外部のMIDI機器７４から送信された演奏データ、あるいは、ＲＯＭ６３に記憶された自動演奏データあるいは自動伴奏データを入力し、ＲＯＭ６３に記憶された音色データを用いて楽音信号を生成する。
音源７５は、専用のハードウェアを用いて音源回路を構成してもよいし、ＤＳＰ（Digital Signal Processor）およびマイクロプログラムを用いて音源回路を構成してもよいし、ＣＰＵ６４およびソフトウェア音源のプログラムで音源を構成してもよい。
【００７０】
７７は通信インターフェース、７８はＬＡＮ（ Local Area Network）、加入電話回線、携帯電話回線、インターネットを含む通信ネットワークである。有線に限らず無線でもよい。また双方を備えていてもよい。
７９はサーバコンピュータであり、多くの場合、楽曲データベースに接続されている。サーバコンピュータ７９から楽曲データを外部記憶装置６６にダウンロードさせたり、ストリーミング再生させたりすることが可能である。
ダウンロードされた楽曲データに基づく楽譜をＬＣＤ７０あるいはＴＶ７２に表示させることが可能である。
電子楽器で演奏された演奏データ、あるいは、電子楽器で作成された楽譜作成可能な楽曲データを通信ネットワーク７８上の図示しないパーソナルコンピュータあるいは携帯電話端末に送信し、これらの宛先の記憶装置にダウンロードさせたり、スピーカから出力させたりすることが可能である。また、これらのパーソナルコンピュータあるいは携帯電話端末の表示器に楽譜を表示させたり、プリンタで楽譜を印刷させたりすることが可能である。
【００７１】
上述した説明では、楽曲データのファイル形式として、SMFフォーマットについて説明した。このほか、コード・ネームを含む楽曲データファイル形式として、SMF形式を拡張したＸＦフォーマットについて説明した。
しかし、楽曲データの形式はこれらに限られない。シーケンサの独自形式、例えば、DOC形式、XWS形式など、必要なデータが含まれていれば、その他の形式であってもよい。
音符等の演奏データのフォーマットは、演奏イベントの発生時刻を１つ前のイベントからの時間で表した「イベント＋相対時間」、演奏イベントの発生時刻を曲や小節内における絶対時間で表した「イベント＋絶対時間」、音符の音高と符長あるいは休符と休符長で演奏データを表した「音高（休符）＋符長」、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域に演奏イベントを記憶した「ベタ方式」等、どのような形式でもよい。
複数チャンネル分の自動演奏データの記憶方法としては、複数のチャンネルのデータが混在記憶された形式でもよいし、各チャンネルのデータがトラック毎に分かれて記憶された形式でもよい。
【００７２】
「臨時記号」を単に自装置内で使用するだけではなく、配布可能な楽曲データファイルに入れるには、「臨時記号」を、独立したMIDIイベントとして規定すればよい。
あるいは、ＸＦフォーマットの「コード・ネーム」がＸＦインフォメーションのトラックチャンクに、スタイルメッセージの１つのメタイヴェントとして記録されているように、「臨時記号」をＸＦインフォメーションのトラックチャンクあるいは新たに設けたトラックチャンクに記録するようにしてもよい。
【００７３】
上述した説明では、ピアノ曲を譜例にして、電子ピアノを想定して説明したが、対象楽器はこれに限らない。
電子楽器の形態を取った場合に、その形態は鍵盤楽器に限らず、弦楽器タイプ（ギター、ベース）、管楽器タイプ、音階のある打楽器タイプ等、その他の対象楽器であってもよい。各楽器に応じた楽譜表示において、変化記号を用いた調記号、臨時記号、コード・ネーム等の音楽記号の楽譜表示において適用することができる。
また、音源部、自動演奏部等を１つの電子楽器本体に内蔵したものに限らず、それぞれが別体の装置であり、MIDIや各種ネットワーク等の通信手段を用いて各装置を接続するシステムであってもよい。
したがって、演奏のみ可能な電子楽器、楽音信号の出力のみ可能な電子楽器、シーケンサソフトウエアがインストールされたパーソナルコンピュータでもよい。アコースティック自動演奏ピアノに、自動演奏データに基づく楽譜表示機能を付けることもできる。
【００７４】
楽譜表示するための表示画面を有するものであれば、例えば、パーソナルコンピュータ、コンピュータ内蔵の、ＰＤＡ（Personal Digital Assistant），ゲーム機器（家庭用あるいはゲームセンター用），カラオケ装置，携帯電話端末，固定電話端末，情報家電装置（テレビジョン受像器等）でもよい。
また、楽譜印刷専用のワークステーションタイプのコンピュータでもよい。
電子楽器や機器単体で機能が完結している場合に限らず、電子楽器や機器単体を通信端末とし、楽曲データに基づいて変化記号を自動判別する機能の一部をサーバ側に持たせ、端末とサーバとからなるクライアントサーバシステム全体として、楽曲データに基づいて変化記号を自動判別する機能を実現するようにしてもよい。
また、楽曲データに基づいて音楽記号自動決定プログラムや音楽記号自動決定処理に利用する各種データを、ＲＯＭに書き込んでおく他に、外部記憶媒体から、あるいは通信インターフェースを介してサーバコンピュータ等の外部装置から電子楽器やパーソナルコンピュータに供給してもよい。
【００７５】
【発明の効果】
本発明は、上述した説明から明らかなように、調号が入力されていない楽曲データでも、音楽的に適切な調号が判別されて、楽譜表示の際に適切な調号にしたがった楽譜表示がされるという効果がある。
ピアノ教則集などの初心者向けのデータでは、的中率が高いため児童教育用の既成曲、指導者や生徒のオリジナル曲に適切な調号をつけることができる。そのため指導者は、適切な調号によって正しい楽譜の書き方、読み方、そして弾き方を教えることができ、生徒はそれを学ぶことができるという効果がある。
また、コード・ネームを、移調後も適切に表記できるという効果がある。
臨時記号についても、長調と単調のそれぞれに適した臨時記号を音符に付すことができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の楽曲データに基づく音楽記号自動決定装置、楽曲データに基づく楽譜表示制御装置の実施の一形態を説明するブロック構成図である。
【図２】  本発明において採用している音階および音階構成音を示す図表である。
【図３】  調号決定の処理動作を説明するフローチャートである。
【図４】  調号決定の第１の具体例である楽譜の説明図である。
【図５】  図４に示した第１の具体例における第１手順の計算結果の説明図である。
【図６】  調号決定の第２の具体例である楽譜の説明図である。
【図７】  図６に示した第２の具体例における第１手順の計算結果の説明図である。
【図８】  移調前のコード・ネームと移調後のコード・ネームを示す譜例図である。
【図９】  移調後のコード・ネームを決定する処理動作を説明するフローチャートである。
【図１０】  図９のフローチャートで使用されるコード・ネーム移調テーブルを示す図表である。
【図１１】  原案の「臨時記号用テーブル」、譜例、および、改良後の「臨時記号用テーブル」の説明図である。
【図１２】  臨時記号の自動決定処理を説明するフローチャートである。
【図１３】  図１１（ｄ）に示した「臨時記号用テーブル」によって臨時記号が付加された後、臨時記号の「変化記号」と調号による「変化記号」とを合わせた結果を示す具体例である。
【図１４】  発明の実施の一形態のハードウエア構成を示すブロック図である。
【符号の説明】
１  音楽記号自動決定部、２  楽曲データ記憶部、３  楽譜表示制御部、４  楽譜印刷制御部
【図１】
0003744366.tif 000005
【図２】
0003744366.tif 000006
【図３】
0003744366.tif 000007
【図４】
0003744366.tif 000008
【図５】
0003744366.tif 000009
【図６】
0003744366.tif 000010
【図７】
0003744366.tif 000011
【図８】
0003744366.tif 000012
【図９】
0003744366.tif 000013
【図１０】
0003744366.tif 000014
【図１１】
0003744366.tif 000015
【図１２】
0003744366.tif 000016
【図１３】
0003744366.tif 000017
【図１４】
0003744366.tif 000018