(57)【特許請求の範囲】
【請求項１】
コード情報を受け付ける第１の受付手段と、
入力音情報を受け付ける第２の受付手段と、
前記第２の受付手段によって受け付けられた入力音情報から音高情報を抽出する抽出手段と、
前記抽出手段によって入力音情報の音高情報が抽出される度に、前回抽出された入力音情報の音高情報を保存する第１の保存手段と、
前記第１の受付手段によって受け付けられたコード情報および前記抽出手段によって抽出された入力音情報の音高情報に基づいてハーモニー音の音高を決定する第１の決定手段と、
ハーモニー音の音高が決定される度に、前回決定されたハーモニー音の音高を保存する第２の保存手段と、
前記第１の保存手段によって保存された前回抽出された入力音情報の音高情報から前記抽出手段によって今回抽出された入力音情報の音高情報への音高の変化量を算出する算出手段と、
前記第２の保存手段によって保存された前回決定されたハーモニー音の音高からの移動量が前記算出手段によって算出された音高の変化量になるようなハーモニー音の音高を決定する第２の決定手段と、
前記前回抽出された入力音情報の音高情報および前記今回抽出された入力音情報の音高情報に基づいて、前記第１の決定手段または前記第２の決定手段のいずれを用いてハーモニー音の音高を決定するかを判定する判定手段であって、前記算出された音高の変化量が±半音であるときに、前記第２の決定手段を用いてハーモニー音の音高を決定すると判定する判定手段と、
前記判定手段によって判定された方の決定手段を用いて決定されたハーモニー音の音高に基づいてハーモニー音を生成する生成手段と
を有することを特徴とする電子音楽装置。
【請求項２】
コード情報を受け付ける第１の受付手段と、
入力音情報を受け付ける第２の受付手段と、
前記第２の受付手段によって受け付けられた入力音情報から音高情報を抽出する抽出手段と、
前記抽出手段によって入力音情報の音高情報が抽出される度に、前回抽出された入力音情報の音高情報を保存する第１の保存手段と、
前記第１の受付手段によって受け付けられたコード情報および前記抽出手段によって抽出された入力音情報の音高情報に基づいてハーモニー音の音高を決定する第１の決定手段と、
ハーモニー音の音高が決定される度に、前回決定されたハーモニー音の音高を保存する第２の保存手段と、
前記第１の保存手段によって保存された前回抽出された入力音情報の音高情報から前記抽出手段によって今回抽出された入力音情報の音高情報への音高の変化量を算出する算出手段と、
前記第２の保存手段によって保存された前回決定されたハーモニー音の音高からの移動量が前記算出手段によって算出された音高の変化量になるようなハーモニー音の音高を決定する第２の決定手段と、
前記前回抽出された入力音情報の音高情報および前記今回抽出された入力音情報の音高情報に基づいて、前記第１の決定手段または前記第２の決定手段のいずれを用いてハーモニー音の音高を決定するかを判定する判定手段であって、前記算出された音高の変化量が±半音であり、かつ前記今回抽出された入力音情報の音高情報が特定の音高情報であるときに、前記第２の決定手段を用いてハーモニー音の音高を決定すると判定する判定手段と、
前記判定手段によって判定された方の決定手段を用いて決定されたハーモニー音の音高に基づいてハーモニー音を生成する生成手段と
を有することを特徴とする電子音楽装置。
【請求項３】
コード情報を受け付ける第１の受付手順と、
入力音情報を受け付ける第２の受付手順と、
前記第２の受付手順によって受け付けられた入力音情報から音高情報を抽出する抽出手順と、
前記抽出手順によって入力音情報の音高情報が抽出される度に、前回抽出された入力音情報の音高情報を保存する第１の保存手順と、
前記第１の受付手順によって受け付けられたコード情報および前記抽出手順によって抽出された入力音情報の音高情報に基づいてハーモニー音の音高を決定する第１の決定手順と、
ハーモニー音の音高が決定される度に、前回決定されたハーモニー音の音高を保存する第２の保存手順と、
前記第１の保存手順によって保存された前回抽出された入力音情報の音高情報から前記抽出手順によって今回抽出された入力音情報の音高情報への音高の変化量を算出する算出手順と、
前記第２の保存手順によって保存された前回決定されたハーモニー音の音高からの移動量が前記算出手順によって算出された音高の変化量になるようなハーモニー音の音高を決定する第２の決定手順と、
前記前回抽出された入力音情報の音高情報および前記今回抽出された入力音情報の音高情報に基づいて、前記第１の決定手順または前記第２の決定手順のいずれを用いてハーモニー音の音高を決定するかを判定する判定手順であって、前記算出された音高の変化量が±半音であるときに、前記第２の決定手順を用いてハーモニー音の音高を決定すると判定する判定手順と、
前記判定手順によって判定された方の決定手順を用いて決定されたハーモニー音の音高に基づいてハーモニー音を生成する生成手順と
をコンピュータに実行させるためのプログラム。
【請求項４】
コード情報を受け付ける第１の受付手順と、
入力音情報を受け付ける第２の受付手順と、
前記第２の受付手順によって受け付けられた入力音情報から音高情報を抽出する抽出手順と、
前記抽出手順によって入力音情報の音高情報が抽出される度に、前回抽出された入力音情報の音高情報を保存する第１の保存手順と、
前記第１の受付手順によって受け付けられたコード情報および前記抽出手順によって抽出された入力音情報の音高情報に基づいてハーモニー音の音高を決定する第１の決定手順と、
ハーモニー音の音高が決定される度に、前回決定されたハーモニー音の音高を保存する第２の保存手順と、
前記第１の保存手順によって保存された前回抽出された入力音情報の音高情報から前記抽出手順によって今回抽出された入力音情報の音高情報への音高の変化量を算出する算出手順と、
前記第２の保存手順によって保存された前回決定されたハーモニー音の音高からの移動量が前記算出手順によって算出された音高の変化量になるようなハーモニー音の音高を決定する第２の決定手順と、
前記前回抽出された入力音情報の音高情報および前記今回抽出された入力音情報の音高情報に基づいて、前記第１の決定手順または前記第２の決定手順のいずれを用いてハーモニー音の音高を決定するかを判定する判定手順であって、前記算出された音高の変化量が±半音であり、かつ前記今回抽出された入力音情報の音高情報が特定の音高情報であるときに、前記第２の決定手順を用いてハーモニー音の音高を決定すると判定する判定手順と、
前記判定手順によって判定された方の決定手順を用いて決定されたハーモニー音の音高に基づいてハーモニー音を生成する生成手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたコード（和音）情報に基づいてハーモニー音を生成する電子音楽装置およびハーモニー音生成方法を実現するためのプログラムに関する。
【背景技術】
【０００２】
入力されたコード情報に基づいてハーモニー音を生成する電子音楽装置は、従来から知られている。
【０００３】
このような装置として、入力された音声を入力されたコード情報に協和する音高のハーモニー音声に変換するようにした音声処理装置がある（たとえば、特許文献１参照）。この音声処理装置では、ハーモニー音声への音高の変換は、旋律音域（伴奏音域よりも高い音域）の和音の構成音名の音高のうち直接音声に最も近い音高（ただし、同一音高でない）に変換するようにしている。
【０００４】
また、演奏によって入力されたメロディ音に付加音を作成して付加するようにしたメロディ付加音制御装置もある（たとえば、特許文献２参照）。このメロディ付加音制御装置では、リズムパターンとしてロックあるいは１６ビートが選択されているときに、デュエット音が設定された場合には、メロディ音に対して３度下の音が付加音として決定され、トリオ音が設定された場合には、メロディ音に対して３度下の音と６度下の音が付加音として決定される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２８７９９４８号公報
【特許文献２】特開平５−２２４６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記従来の音声処理装置が入力音声をハーモニー音声へ変換するに際して、たとえば図２のようなハーモニー音生成用テーブルを予め定義しておき、このハーモニー音生成用テーブルを参照して行うことが考えられる。ただし、図２に示すハーモニー音生成用テーブルには、本願発明に特有な情報、つまり「コードスケール音」の項目に記載の情報が含まれているので、上記従来の音声処理装置が使用するハーモニー音生成用テーブルは、この情報を除いたもの、つまり「入力音」と「ハーモニー音」を対応付けたものである（以下、このハーモニー音生成用テーブルを「従来のハーモニー音生成用テーブル」と言う）。図示例の従来のハーモニー音生成用テーブルでは、入力される（音声の）音高（音名）に対して生成すべきハーモニー音の音高（音名）がコード情報毎に定義されているので、コード情報が入力されると、そのコード情報に対応するハーモニー音生成用テーブルが参照対象として選択される。
【０００７】
このように構成された従来の音声処理装置は、コード情報が入力されるとともに音声が入力されると、入力されたコード情報に対応するハーモニー音生成用テーブルを参照対象として選択し、このハーモニー音生成用テーブルを参照して、入力された音声の音高に対応するハーモニー音の音高を決定し、決定した音高のハーモニー音を生成する。たとえば、コード情報として“Ｃｍａｊ”（Ｃメジャ）が入力され、参照対象の従来のハーモニー音生成用テーブルとして、図２（ａ）に記載のものに相当するものが選択されたとする（ただし、図２に記載のテーブルの「ハーモニー音」の項目中、“＋１”は１オクターブ上を意味している）。このとき、ユーザが“Ｆ３”の音高で歌うと、“Ｃ４”の音高のハーモニー音が生成される。したがって、この従来の音声処理装置によれば、入力された音声に対して、入力されたコード情報のコード感に合ったハーモニー音を生成することができる。
【０００８】
一方、上記従来の音声処理装置に上記従来のメロディ付加音制御装置を組み合わせると、入力された音声の音高に対して所定の半音数だけ離れたハーモニー音を生成する構成を得ることができる。この組み合わせ発明の構成では、ユーザが、たとえば、入力音声の音高に対して生成すべきハーモニー音の音高として「４半音上（３度上）」を指定した後、“Ｃ３”の音高で歌うと、“Ｅ３”の音高のハーモニー音が生成される。同様に、ユーザが“Ｃ＃３”，“Ｄ３”，“Ｄ＃３”，“Ｅ３”，…の各音高で歌うと、“Ｆ３”，“Ｆ＃３”，“Ｇ３”，“Ｇ＃３”，…の各音高のハーモニー音が生成される。したがって、この組み合わせ発明によれば、入力音声の音高に対して所定の半音数離れた音高のハーモニー音が生成されるので、入力音声の音高が平行移動されてハーモニー音が生成されたことによる独特な遷移感を得ることができる。
【０００９】
しかし、上記従来の音声処理装置では、生成されるハーモニー音について、コード感は得られるものの、音高の平行移動による独特な遷移感が得られない反面、上記組み合わせ発明の構成では、その逆となり、両者には、さらなる改良の余地が残されていた。
【００１０】
本発明は、この点に着目してなされたものであり、容易に、さらなる音楽的な変化に富んだハーモニー音を生成することが可能となる電子音楽装置およびハーモニー音生成方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、請求項１に記載の電子音楽装置は、コード情報を受け付ける第１の受付手段と、入力音情報を受け付ける第２の受付手段と、前記第２の受付手段によって受け付けられた入力音情報から音高情報を抽出する抽出手段と、前記抽出手段によって入力音情報の音高情報が抽出される度に、前回抽出された入力音情報の音高情報を保存する第１の保存手段と、前記第１の受付手段によって受け付けられたコード情報および前記抽出手段によって抽出された入力音情報の音高情報に基づいてハーモニー音の音高を決定する第１の決定手段と、ハーモニー音の音高が決定される度に、前回決定されたハーモニー音の音高を保存する第２の保存手段と、前記第１の保存手段によって保存された前回抽出された入力音情報の音高情報から前記抽出手段によって今回抽出された入力音情報の音高情報への音高の変化量を算出する算出手段と、前記第２の保存手段によって保存された前回決定されたハーモニー音の音高からの移動量が前記算出手段によって算出された音高の変化量になるようなハーモニー音の音高を決定する第２の決定手段と、前記前回抽出された入力音情報の音高情報および前記今回抽出された入力音情報の音高情報に基づいて、前記第１の決定手段または前記第２の決定手段のいずれを用いてハーモニー音の音高を決定するかを判定する判定手段であって、前記算出された音高の変化量が±半音であるときに、前記第２の決定手段を用いてハーモニー音の音高を決定すると判定する判定手段と、前記判定手段によって判定された方の決定手段を用いて決定されたハーモニー音の音高に基づいてハーモニー音を生成する生成手段とを有することを特徴とする。
【００１３】
上記目的を達成するため、請求項２に記載の電子音楽装置は、コード情報を受け付ける第１の受付手段と、入力音情報を受け付ける第２の受付手段と、前記第２の受付手段によって受け付けられた入力音情報から音高情報を抽出する抽出手段と、前記抽出手段によって入力音情報の音高情報が抽出される度に、前回抽出された入力音情報の音高情報を保存する第１の保存手段と、前記第１の受付手段によって受け付けられたコード情報および前記抽出手段によって抽出された入力音情報の音高情報に基づいてハーモニー音の音高を決定する第１の決定手段と、ハーモニー音の音高が決定される度に、前回決定されたハーモニー音の音高を保存する第２の保存手段と、前記第１の保存手段によって保存された前回抽出された入力音情報の音高情報から前記抽出手段によって今回抽出された入力音情報の音高情報への音高の変化量を算出する算出手段と、前記第２の保存手段によって保存された前回決定されたハーモニー音の音高からの移動量が前記算出手段によって算出された音高の変化量になるようなハーモニー音の音高を決定する第２の決定手段と、前記前回抽出された入力音情報の音高情報および前記今回抽出された入力音情報の音高情報に基づいて、前記第１の決定手段または前記第２の決定手段のいずれを用いてハーモニー音の音高を決定するかを判定する判定手段であって、前記算出された音高の変化量が±半音であり、かつ前記今回抽出された入力音情報の音高情報が特定の音高情報であるときに、前記第２の決定手段を用いてハーモニー音の音高を決定すると判定する判定手段と、前記判定手段によって判定された方の決定手段を用いて決定されたハーモニー音の音高に基づいてハーモニー音を生成する生成手段とを有することを特徴とする。
【００１４】
上記目的を達成するため、請求項３および４に記載のプログラムはそれぞれ、請求項１および２と同様の技術的思想によって実現できる。
【発明の効果】
【００１５】
請求項１〜４に記載の各発明によれば、入力音の音高の変化状況に基づいて、コード感のあるハーモニー音を得るべきか、平行移動の独特な遷移感のあるハーモニー音（平行移動ハーモニー音）を得るべきかを自動的に判定し、判定された方のハーモニー音を生成するようにしたので、容易に、さらなる音楽的な変化に富んだハーモニー音を得ることができる。そして、得るべきハーモニー音と平行移動ハーモニー音の判定および生成は自動的に行われるので、ユーザはコードやスケール音などの音楽的知識を特に持たなくてもよい。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施の形態に係る電子音楽装置の概略構成を示すブロック図である。
【図２】ハーモニー音生成用テーブルの構成例を示す図である。
【図３】図１の電子音楽装置、特にＣＰＵが実行する演奏補助処理の手順を示すフローチャートである。
【図４】図３中のハーモニー音生成処理の詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１８】
図１は、本発明の一実施の形態に係る電子音楽装置の概略構成を示すブロック図である。
【００１９】
同図に示すように、本実施の形態の電子音楽装置は、音声を入力するためのマイクロフォン、鍵盤等の演奏操作子および各種スイッチ等の設定操作子からなる入力操作部１と、装置全体の制御を司るＣＰＵ２と、該ＣＰＵ２が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ３と、前記演奏操作子から入力された、コード情報を含む演奏情報、各種入力情報および演算結果等を一時的に記憶するＲＡＭ４と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する記憶装置５と、各種情報等を表示する、たとえばＬＣＤ（liquid crystal display）およびＬＥＤ（light emitting diode）等を備えた表示装置６と、外部ＭＩＤＩ（musical instrument digital interface）機器等の外部機器１００を接続し、この外部機器１００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）７と、前記演奏操作子から入力された演奏情報や、前記記憶装置５に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換する音源回路８と、該音源回路８からの楽音信号に各種効果を付与するための効果回路９と、該効果回路９からの楽音信号を音響に変換する、たとえば、ＤＡＣ（digital-to-analog converter）やアンプ、スピーカ等のサウンドシステム１０とにより構成されている。
【００２０】
上記構成要素１〜９は、バス１１を介して相互に接続され、通信Ｉ／Ｆ７には外部機器１００が接続され、音源回路８には効果回路９が接続され、効果回路９にはサウンドシステム１０が接続されている。
【００２１】
記憶装置５は、たとえば、フレキシブルディスク（ＦＤ）、ハードディスク（ＨＤ）、ＣＤ−ＲＯＭ、ＤＶＤ（digital versatile disc）、光磁気ディスク（ＭＯ）および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は駆動装置から着脱可能であってもよいし、記憶装置５自体が本実施の形態の電子音楽装置から着脱可能であってもよい。あるいは、記憶媒体も記憶装置５も着脱不可能であってもよい。なお記憶装置５（の記憶媒体）には、前述のように、ＣＰＵ２が実行する制御プログラムも記憶でき、ＲＯＭ３に制御プログラムが記憶されていない場合には、この記憶装置５に制御プログラムを記憶させておき、それをＲＡＭ４に読み込むことにより、ＲＯＭ３に制御プログラムを記憶している場合と同様の動作をＣＰＵ２にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２２】
通信Ｉ／Ｆ７には、図示例では外部機器１００が接続されているが、これに限られず、たとえばＬＡＮ（local area network）やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、記憶装置５に上記各プログラムや各種パラメータが記憶されていなければ、通信Ｉ／Ｆ７はサーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子音楽装置は、通信Ｉ／Ｆ７および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介して電子音楽装置へと配信し、電子音楽装置が通信Ｉ／Ｆ７を介して、これらプログラムやパラメータを受信して記憶装置５に蓄積することにより、ダウンロードが完了する。
【００２３】
音源回路８は、前述のように演奏情報を楽音信号に変換する処理に加え、後述のように、入力されたリード音データ（ユーザの歌声によるリード音をデジタル化したもの）に対応するリード音の楽音信号を生成するとともに、当該リード音データのピッチ（音高）をハーモニー音の音高に変換し、変換後の音高のリード音、つまりハーモニー音の楽音信号を生成する処理を行う。
【００２４】
なお本実施の形態の電子音楽装置は、上述の構成から分かるように電子鍵盤楽器上に構築されたものであるが、これに限らず、鍵盤を外部接続した汎用的なパーソナルコンピュータ上に構築してもよい。
【００２５】
図２は、ハーモニー音生成用テーブルの構成例を示す図であり、同図（ａ）は、Ｃｍａｊ（Ｃメジャ）についてのハーモニー音生成用テーブルの一例を示し、同図（ｂ）は、Ｃｍｉｎ（Ｃマイナ）についてのハーモニー音生成用テーブルの一例を示している。ハーモニー音生成用テーブルとは、入力音の各音高（音名）と、それに対して生成すべきハーモニー音の音高（音名）とを対応付けたものである。「発明が解決しようとする課題」の欄で前述したように、図２のハーモニー音生成用テーブルは、従来のハーモニー音生成用テーブルに「コードスケール音」の項目を追加したものである。
【００２６】
「コードスケール音」の項目には、“Ｃ”，“Ｓ”，“０”および“１”が記載されている。“Ｃ”と“Ｓ”は、その入力音が当該コード情報のコードスケール音であることを示し、特に“Ｃ”は、その入力音がコードスケール音の中のコード構成音であることを示している。“０”と“１”は、その入力音が当該コード情報の非コードスケール音であることを示し、特に“１”は、その入力音が平行移動ハーモニー音を生成するための候補であることを示している。なお、「コードスケール音」の項目のさらに具体的な利用の仕方については、後述する。
【００２７】
なお図示例では、２種類のコード情報についてのハーモニー音生成用テーブルを示したが、これは便宜上そのようにしたに過ぎず、Ｃｍｉｎ７（Ｃマイナセブンス）、Ｃｍｉｎ７（♭５）（Ｃマイナセブンスフラットファイブ）、Ｃ７（Ｃドミナントセブンス）などについてのハーモニー音生成用テーブルを加えるようにしてもよい。このようなコード情報毎のハーモニー音生成用テーブルが予め作成され、たとえば前記ＲＯＭ３内に記憶されている。また、各ハーモニー音生成用テーブルの「コードスケール音」の項目中、非コードスケール音のそれぞれに対する“０”あるいは“１”の割り当ては、本実施の形態では、工場設定などで予めなされ、ユーザが後から変更できないものとしているが、これに限らず、ユーザが後から変更できるようにしてもよい。
【００２８】
以上のように構成された電子音楽装置が実行する制御処理を、まずその概要を説明し、次に図３および図４を参照して詳細に説明する。
【００２９】
ユーザが、たとえば前記入力操作部１に含まれるマイクロフォンから自身の歌声を入力すると、ＣＰＵ２は、入力された歌声（アナログ音声信号）をデジタル化して、リード音情報（データ）として、ＲＡＭ４に確保したリード音データ格納領域（図示せず）に格納する。ＣＰＵ２は、リード音データ格納領域に格納されたリード音データから公知の方法によりピッチ（音高）を検出してハーモニー音の生成に用いるとともに、当該リード音データを所定のタイミングで読み出して音源回路８に送信する。これにより、音源回路８は、当該リード音データに対応するリード音（の楽音信号）を生成して効果回路９に出力する。効果回路９は、入力された楽音信号に適宜効果を付与して、内蔵の信号出力制御回路（図示せず）に出力する。
【００３０】
またユーザが、たとえば入力操作部１に含まれる鍵盤を押鍵してコードを入力すると、ＣＰＵ２は、入力されたコードからコード情報を抽出し、前記ＲＯＭ３にコード情報毎に記憶されているハーモニー音生成用テーブルから、抽出したコード情報に対応するハーモニー音生成用テーブルを参照対象として選択する。そしてＣＰＵ２は、選択したハーモニー音生成用テーブルから、前記検出したリード音データ（入力音）の音高に対応付けられたハーモニー音の音高を読み出し、この音高のハーモニー音（の楽音信号）を生成するように音源回路８に依頼する。これにより音源回路８は、ハーモニー音（の楽音信号）を生成して効果回路９に出力する。効果回路９は、入力された楽音信号に適宜効果を付与して、信号出力制御回路に出力する。
【００３１】
信号出力制御回路は、入力された２種類の楽音信号をミキシングした後、所定の出力タイミングに従って後段の前記サウンドシステム１０に出力する。
【００３２】
ここまでのハーモニー音生成処理は、「発明が解決しようとする課題」の欄で説明した従来の音声処理装置でなされるハーモニー音生成処理と異ならない。
【００３３】
次に、ユーザが歌声の音高を変化させると、ＣＰＵ２は、その音高の変化量を算出し、算出した変化量と新たに入力されたリード音データ（音高の変化後の歌声）の音高が現在設定されている平行移動ハーモニー音生成ルールに適合するかどうかを判定する（ただし、平行移動ハーモニー音生成ルールによっては、その適合判定に「音高の変化量」のみ使用する場合がある）。この判定の結果、適合したときには、ＣＰＵ２は、直前に生成されたハーモニー音の音高を上記変化量だけ平行移動させて、新たなハーモニー音の音高を決定し、この音高のハーモニー音、つまり平行移動ハーモニー音（の楽音信号）を生成するように音源回路８に依頼する。これに応じて、現在のハーモニー音が新たに生成された平行移動ハーモニー音に変更される。一方、適合しないときには、ＣＰＵ２は、前記従来の音声処理装置でなされるハーモニー音生成処理と同様にして、現在選択されているハーモニー音生成用テーブルから、新たに入力されたリード音データの音高に対応付けられたハーモニー音の音高を読み出し、この音高のハーモニー音（の楽音信号）を生成するように音源回路８に依頼する。
【００３４】
なお本実施の形態では、平行移動ハーモニー音生成ルールとして３種類のルール（各ルールの内容については、後述する）を設け、そのうちの１つをユーザが選択可能に構成されている。ただし、ユーザはいずれの平行移動ハーモニー音生成ルールも選択しないこともでき、この場合には、ユーザがどのような音高の歌声を入力したとしても、平行移動ハーモニー音は生成されず、入力されたコードのコード感に合ったハーモニー音のみが生成される。
【００３５】
このように本実施の形態では、入力音の音高の変化状況に基づいて、コード感のあるハーモニー音を得るべきか、平行移動の独特な遷移感のあるハーモニー音（平行移動ハーモニー音）を得るべきかを自動的に判定し、判定された方のハーモニー音を生成するようにしたので、容易に、さらなる音楽的な変化に富んだハーモニー音を得ることができる。そして、得るべきハーモニー音と平行移動ハーモニー音の判定および生成は自動的に行われるので、ユーザはコードやスケール音などの音楽的知識を特に持たなくてもよい。
【００３６】
次に、この制御処理を詳細に説明する。
【００３７】
図３は、本実施の形態の電子音楽装置、特にＣＰＵ２が実行する演奏補助処理の手順を示すフローチャートである。
【００３８】
本演奏補助処理は、主として、
（１）初期設定処理（ステップＳ１）
（２）入力音オフ検出時処理（ステップＳ４〜Ｓ６）
（３）入力音オン検出時処理（ステップＳ８〜Ｓ１１）
（４）入力コード検出時処理（ステップＳ１３〜Ｓ１６）
（５）演奏補助処理の終了処理（ステップＳ１７）
によって構成されている。
【００３９】
本演奏補助処理は、たとえば前記入力操作部１に含まれる電源スイッチ（図示せず）によって電源がオンされたときに起動される。起動後、前記（１）の初期設定処理が１回実行され、これに続いて、前記（２）〜（４）の各処理が適宜実行される。そして（２）〜（４）の各処理は、演奏補助処理の終了が指示されるまで、あるいは電源ボタンによって電源がオフされるまで、適宜繰り返し実行される。なお、演奏補助処理の終了が指示されると、前記（５）の演奏補助処理の終了処理が実行された後、本演奏補助処理は終了する。
【００４０】
本演奏補助処理が起動すると、ＣＰＵ２は、処理を前記（１）の初期設定処理に進める。この（１）初期設定処理では、ＣＰＵ２は、前記ＲＡＭ４のクリアや平行移動ハーモニー音生成ルールの設定などを行う（ステップＳ１）。ＲＡＭ４には、入力音から検出した音高を記憶するための領域Ｌｅａｄと、その入力音の１つ前の入力音から検出した音高を記憶するための領域ＬｅａｄＯと、入力コードから抽出したコード情報を記憶するための領域Ｃｈｏｒｄと、入力音から検出した音高および参照対象として選択されたハーモニー音生成用テーブル等に基づいて決定したハーモニー音の音高を記憶するための領域Ｈａｒｍｏｎｙと、その１つ前に決定したハーモニー音の音高を記憶するための領域ＨａｒｍｏｎｙＯが設けられるが、上記ＲＡＭ４のクリアでは、これら領域Ｌｅａｄ，ＬｅａｄＯ，Ｃｈｏｒｄ，ＨａｒｍｏｎｙおよびＨａｒｍｏｎｙＯもクリアされる。また本実施の形態では、平行移動ハーモニー音生成ルールとして、
（Ｒ１）第１の生成ルール：入力音が半音上／下に進行したときに、平行移動ハーモニー音を生成；
（Ｒ２）第２の生成ルール：入力音が半音上／下に進行し、かつその入力音が非コードスケール音であるときに、平行移動ハーモニー音を生成；
（Ｒ３）第３の生成ルール：入力音が半音下に進行し、かつその入力音が非コードスケール音であるときに、平行移動ハーモニー音を生成；
の３種類が設けられている。そしてユーザは、前述のように、この３種類の生成ルールの中からいずれかを任意に選択して設定できるようになっている。したがって、初期設定処理における「平行移動ハーモニー音生成ルールの設定」とは、ユーザの選択操作に応じて選択された生成ルールを設定することであるが、これに限らず、デフォルトの生成ルールが設定されるようにしてもよいし、前回の演奏補助処理で設定された生成ルールが設定されるようにしてもよい。また本実施の形態では、「平行移動ハーモニー音生成ルールの設定」は、初期設定処理内でのみ行うようにしているが、これに加えて、本演奏補助処理中のそれ以降の任意の場所で「設定」できるようにしてもよい。なお、本実施の形態では前述のように、いずれの平行移動ハーモニー音生成ルールも選択しないこともできるので、上記「平行移動ハーモニー音生成ルールの設定」には、「いずれの平行移動ハーモニー音生成ルールも選択しない」という設定も含まれる。
【００４１】
次にＣＰＵ２は、ユーザが本演奏補助処理の終了を指示したかどうかをチェックする（ステップＳ２）。このチェックの結果、本演奏補助処理の終了が指示されたときには、ＣＰＵ２は処理を前記（５）の演奏補助処理の終了処理に進める一方、本演奏補助処理の終了が指示されなかったときには、ＣＰＵ２は処理をステップＳ３に進める。なお、この（５）演奏補助処理の終了処理の詳細については、後述する。
【００４２】
ステップＳ３では、ＣＰＵ２は、入力音のオフを検出したかどうかをチェックする。このチェックの結果、入力音のオフを検出すると、ＣＰＵ２は処理を前記（２）の入力音オフ検出時処理に進める一方、入力音のオフを検出しなければ、ＣＰＵ２は処理をステップＳ７に進める。ここで入力音は、前記リード音データ格納領域に格納されたリード音データ、つまりユーザの歌声（のデジタルデータ）である。そして、「リード音のオフ」は、たとえばリード音データ格納領域内のリード音データのレベルが所定の閾値（歌声が入力されていないと見なされる値）以下のときに、検出したと判定し、それ以外のときに、検出しなかった（歌声が依然として入力されている）と判定すればよい。
【００４３】
（２）入力音オフ検出時処理では、ＣＰＵ２は、リード音を消音する（ステップＳ４）とともにハーモニー音を消音し（ステップＳ５）、さらに領域Ｌｅａｄおよび領域Ｈａｒｍｏｎｙをクリアする（ステップＳ６）。このリード音およびハーモニー音の消音は、本実施の形態では、音源回路８にその消音を依頼することでなされている。なお、入力音のオフが検出されたときには、リード音データのレベルは非常に低いので、そのリード音をさらに消音する必要があるかの問題はあるが、それでも敢えて消音してもよい。もちろん、何もせずにそのまま放置することも考えられる。またステップＳ６では、領域ＬｅａｄＯおよび領域ＨａｒｍｏｎｙＯも一緒にクリアするようにしてもよい。
【００４４】
前記ステップＳ７では、ＣＰＵ２は、入力音のオンを検出したかどうかをチェックし、入力音のオンを検出すると、処理を前記（３）の入力音オン検出時処理に進める一方、入力音のオンを検出しなければ、処理をステップＳ１２に進める。ここで、「入力音のオン」は、リード音データ格納領域内のリード音データのうち、音源回路８が出力しようとしているデータから所定範囲のデータの、たとえば平均レベルが所定の閾値より大きいときに、オンと判定し、それ以外のときに、オンでないと判定すればよい。
【００４５】
（３）入力音オン検出時処理では、まずＣＰＵ２は、入力音の音高（ピッチ）を検出する（ステップＳ８）。本実施の形態では前述のように、入力音はユーザの歌声であるので、歌声からそのピッチを検出しなければならないが、この種のピッチの検出は、公知の方法を用いてよく行われている。そして本発明の特徴は、歌声からそのピッチを検出する方法にある訳ではないので、ステップＳ８でのピッチの検出は、公知の方法によって行うようにすればよい。
【００４６】
次にＣＰＵ２は、領域Ｌｅａｄに記憶されている入力音（現時点では、１つ前の入力音となっている）の音高を領域ＬｅａｄＯに保存するとともに、領域Ｌｅａｄを上記ステップＳ８で検出した現在の入力音の音高で更新する（ステップＳ９）。なお、初期設定処理後初めて処理がステップＳ９に進んだ場合には、領域Ｌｅａｄはクリアされた状態であって、有効な音高が記憶されていないので、この場合には、ステップＳ９の処理のうちの前者の処理、つまり「領域Ｌｅａｄに記憶されている１つ前の入力音の音高を領域ＬｅａｄＯに保存する」処理を行わないようにしてもよい。もちろん、この場合に前者の処理を行っても、領域ＬｅａｄＯはクリアの状態が継続されるだけであるので、この場合も前者の処理を行うようにしてもよい。以下、領域Ｌｅａｄに記憶されている入力音の音高を「リード音Ｌｅａｄ」と言う。
【００４７】
次にＣＰＵ２は、制御処理の概要で前述したように、入力されたアナログ音声信号をデジタル化して、リード音データとしてＲＡＭ４上のリード音データ格納領域に格納した後、当該リード音データを所定のタイミングで読み出して音源回路８に送信する（ステップＳ１０）。
【００４８】
さらにＣＰＵ２は、ハーモニー音生成処理を実行する（ステップＳ１１）。ハーモニー音生成処理は、リード音Ｌｅａｄおよび１つ前のリード音ＬｅａｄＯなどが所定の条件を満たす場合に、リード音Ｌｅａｄに対するハーモニー音の音高を決定し、この音高のハーモニー音を生成して出力する処理であるが、その詳細な手順については、図４を用いて後述する。
【００４９】
前記ステップＳ１２では、ＣＰＵ２は、入力コードを検出したかどうかをチェックし、入力コードを検出すると、処理を前記（４）の入力コード検出時処理に進める一方、入力コードを検出しなければ、処理を前記ステップＳ２に戻す。
【００５０】
（４）入力コード検出時処理では、まずＣＰＵ２は、入力コードからコード情報を抽出する（ステップＳ１３）。ここで「コード情報」とは、コード名やコード名を特定可能な情報、たとえばルートとタイプの組などである。「入力コード」は、本実施の形態では、音高情報を含む押鍵イベント複数として検出される。この「入力コード」から「コード情報」を抽出する具体的な方法としては、たとえば、各コード情報と当該コード情報を構成する複数の音高情報の組とを対応付けたコード情報抽出用テーブルを予め作成しておき、このコード情報抽出用テーブルを検索することで、「入力コード」を構成する複数の押鍵イベント（の各音高情報）に対応する「コード情報」を抽出する方法が考えられる。この他にも、コード情報抽出用テーブルを利用せずに、「入力コード」に演算処理を施して、「入力コード」から直接「コード情報」を抽出するようにしてもよい。なお、「入力コード」に対応する「コード情報」が存在しないなどの理由により、コード情報を抽出できない場合があるが、この場合には、それ以降の処理をせずに、前記ステップＳ１２で入力コードを検出しなかったときと同様に、処理を前記ステップＳ２に戻すようにしてもよいが、何か代わりのコード情報に置き換えて、それ以降の処理を続けるようにしてもよい。
【００５１】
次にＣＰＵ２は、領域Ｃｈｏｒｄを上記ステップＳ１３で抽出したコード情報で更新する（ステップＳ１４）。以下、領域Ｃｈｏｒｄに記憶されているコード情報を「コード情報Ｃｈｏｒｄ」と言う。
【００５２】
そしてＣＰＵ２は、コード情報Ｃｈｏｒｄに対応付けられたハーモニー音生成用テーブルを参照対象として選択し、このハーモニー音生成用テーブルに基づいて、リード音Ｌｅａｄに対応するハーモニー音の音高を検出し、その音高情報を音源回路８に出力する（ステップＳ１５）。これにより音源回路８は、リード音データのピッチを入力された音高情報の音高に変換し、変換後の音高のリード音データ、つまりハーモニー音データを前記効果回路９に出力する。なお、ステップＳ１５における「ハーモニー音の音高の検出」は、リード音Ｌｅａｄが有効である場合、つまりリード音Ｌｅａｄとして何らかの意味のある音高が検出されている場合に行うようにする。
【００５３】
さらにＣＰＵ２は、上記ステップＳ１５で検出したハーモニー音の音高を領域ＨａｒｍｏｎｙＯに保存する（ステップＳ１６）。以下、領域ＨａｒｍｏｎｙＯに保存されているハーモニー音の音高を「１つ前のハーモニー音ＨａｒｍｏｎｙＯ」と言う。
【００５４】
前記（５）の演奏補助処理の終了処理では、ＣＰＵ２は、現在選択中の平行移動ハーモニー音生成ルールの種類などを記憶装置５に記憶させる。これにより、本演奏補助処理が次回起動されたときに、直前の選択状態および設定状態を再現することができる。
【００５５】
図４は、前記ステップＳ１１のハーモニー音生成処理の詳細な手順を示すフローチャートである。本ハーモニー音生成処理は、主として、
（１１）第１の生成ルールに対する適合判定処理（ステップＳ２６，Ｓ２８）
（１２）第２の生成ルールに対する適合判定処理（ステップＳ３３，Ｓ２６，Ｓ２８）
（１３）第３の生成ルールに対する適合判定処理（ステップＳ３５，Ｓ３６）
（１４）第１の平行移動ハーモニー音決定処理（ステップＳ２７）
（１５）第２の平行移動ハーモニー音決定処理（ステップＳ２９）
（１６）第３の平行移動ハーモニー音決定処理（ステップＳ３７）
（１７）ハーモニー音生成用テーブルに基づいたハーモニー音検出処理（ステップＳ３０，Ｓ３１）
（１８）ハーモニー音生成・出力処理（ステップＳ３８，Ｓ３９）
によって構成されている。
【００５６】
本ハーモニー音生成処理が起動されると、まずＣＰＵ２は、リード音Ｌｅａｄおよびコード情報Ｃｈｏｒｄのいずれも有効であるかどうか、つまり何らかの意味のあるリード音の音高およびコード情報が検出されているかどうかチェックする（ステップＳ２１，Ｓ２２）。このチェックの結果、少なくとも一方が有効でない場合には、ＣＰＵ２は本ハーモニー音生成処理を終了する一方、両方とも有効であれば、ＣＰＵ２は処理を次のステップＳ２３に進める。
【００５７】
ステップＳ２３では、ＣＰＵ２は、１つ前のハーモニー音ＨａｒｍｏｎｙＯが有効かどうか、つまり何らかの意味のあるハーモニー音が保存されているかどうかをチェックする。このチェックの結果、１つ前のハーモニー音ＨａｒｍｏｎｙＯが有効であれば、ＣＰＵ２は処理をステップＳ２４に進める一方、１つ前のハーモニー音ＨａｒｍｏｎｙＯが有効でなければ、平行移動ハーモニー音は生成不可能として、ＣＰＵ２は処理を前記（１７）のハーモニー音生成用テーブルに基づいたハーモニー音検出処理に進める。
【００５８】
（１７）ハーモニー音生成用テーブルに基づいたハーモニー音検出処理では、ＣＰＵ２は、前記図３のステップＳ１５の処理の前段と同様にして、コード情報Ｃｈｏｒｄに対応付けられたハーモニー音生成用テーブルに基づいて、新たなハーモニー音の音高を検出する（ステップＳ３０）。そしてＣＰＵ２は、この検出したハーモニー音の音高を前記領域Ｈａｒｍｏｎｙに格納する（ステップＳ３１）。以下、領域Ｈａｒｍｏｎｙに記憶されているハーモニー音の音高を「ハーモニー音Ｈａｒｍｏｎｙ」と言う。
【００５９】
次にＣＰＵ２は、処理を前記（１８）のハーモニー音生成・出力処理に進める。この（１８）ハーモニー音生成・出力処理では、ＣＰＵ２は、前記図３のステップＳ１５の処理の後段と同様にして、ハーモニー音Ｈａｒｍｏｎｙ（の音高情報）を音源回路８に出力する（ステップＳ３８）。そしてＣＰＵ２は、ハーモニー音Ｈａｒｍｏｎｙを１つ前のハーモニー音の音高として領域ＨａｒｍｏｎｙＯに保存する（ステップＳ３９）。
【００６０】
前記ステップＳ２４では、ＣＰＵ２は、１つ前のリード音ＬｅａｄＯからのリード音Ｌｅａｄの変化量Ｄｆ（＝Ｌｅａｄ−ＬｅａｄＯ）を算出する。
【００６１】
続くステップＳ２５以降の処理では、ＣＰＵ２は、現在設定中の平行移動ハーモニー音生成ルールに現在のリード音Ｌｅａｄなどが適合しているかどうかを判定し、その判定結果に応じた処理を実行する。
【００６２】
まず、第１の生成ルールが設定されている場合には、ＣＰＵ２は、処理を前記（１１）の第１の生成ルールに対する適合判定処理に進める（ステップＳ２５→Ｓ２６）。この（１１）第１の生成ルールに対する適合判定処理では、ＣＰＵ２は、変化量Ｄｆが“＋１”であるか“−１”であるか、つまり入力音が半音上／下に進行しているかどうかを判定する（ステップＳ２６，Ｓ２８）。この判定の結果、変化量Ｄｆ＝＋１のとき、つまり入力音が半音上に進行しているときには、ＣＰＵ２は処理を前記（１４）の第１の平行移動ハーモニー音決定処理に進める（ステップＳ２６→Ｓ２７）。この（１４）第１の平行移動ハーモニー音決定処理では、ＣＰＵ２は、１つ前のハーモニー音ＨａｒｍｏｎｙＯも半音上に平行移動させ、平行移動後のハーモニー音の音高をハーモニー音Ｈａｒｍｏｎｙに設定する。その後、ＣＰＵ２は処理を前記（１８）のハーモニー音生成・出力処理に進めて、平行移動ハーモニー音を生成して出力する。一方、この判定の結果、変化量Ｄｆ＝−１のとき、つまり入力音が半音下に進行しているときには、ＣＰＵ２は処理を前記（１５）の第２の平行移動ハーモニー音決定処理に進める（ステップＳ２８→Ｓ２９）。この（１５）第２の平行移動ハーモニー音決定処理では、ＣＰＵ２は、１つ前のハーモニー音ＨａｒｍｏｎｙＯも半音下に平行移動させ、平行移動後のハーモニー音の音高をハーモニー音Ｈａｒｍｏｎｙに設定する。その後、ＣＰＵ２は処理を前記（１８）のハーモニー音生成・出力処理に進めて、平行移動ハーモニー音を生成して出力する。なお、変化量Ｄｆが第１の生成ルールに適合していなければ、ＣＰＵ２は処理を前記（１７）のハーモニー音生成用テーブルに基づいたハーモニー音検出処理に進める（ステップＳ２６→Ｓ２８→Ｓ３０）。この（１７）ハーモニー音生成用テーブルに基づいたハーモニー音検出処理の詳細については既に説明したので、ここでは繰り返さない。
【００６３】
次に、第２の生成ルールが設定されている場合には、ＣＰＵ２は、処理を前記（１２）の第２の生成ルールに対する適合判定処理に進める（ステップＳ３２→Ｓ３３）。第２の生成ルールは、第１の生成ルール、つまり「入力音が半音上／下に進行すること」に「その入力音が非コードスケール音であること」を加重して構成されているので、この（１２）第２の生成ルールに対する適合判定処理では、まず後者のルール、つまり「その入力音が非コードスケール音であること」に対する適合判定処理、次に前者のルール、つまり「入力音が半音上／下に進行すること」に対する適合判定処理の順序で判定処理を実行し、前者のルールに対する適合判定処理は、前記（１１）の第１の生成ルールに対する適合判定処理をそのまま用いるようにしている。したがって、まずＣＰＵ２は、コード情報Ｃｈｏｒｄに対応付けられたハーモニー音生成用テーブルにおいて、リード音Ｌｅａｄは非コードスケール音に相当する（当該テーブルの「コードスケール音」の項目中、リード音Ｌｅａｄに対応する位置に“Ｃ”，“Ｓ”，“０”のいずれも記載されていない、つまり“１”が記載されている）かどうかを判定する（ステップＳ３３）。前述のように、ハーモニー音生成用テーブルの「コードスケール音」の項目中、“Ｃ”および“Ｓ”以外、つまり“０”および“１”が記載されている音名の音は非コードスケール音であるので、入力音、つまりリード音Ｌｅａｄが“０”および“１”の記載されている音名の音に相当する場合は、第２の生成ルールのうちの後者のルールに適合しているが、本実施の形態では、入力音がさらに非コードスケール音のうちでも“１”が記載されたもの、つまり平行移動ハーモニー音を生成すべきものに相当する場合にのみ、第２の生成ルールの後者のルールに適合するとして、次の判定処理、つまり第２の生成ルールのうちの前者のルールに移行させるようにしている。もちろんこれに限らず、入力音が“０”の記載されたものを含む非コードスケール音に相当する場合に、第２の生成ルールの後者のルールに適合するとしてもよい。この事情は、後述するステップＳ３５の判定処理についても同様である。
【００６４】
前記ステップＳ３３の判定の結果、リード音Ｌｅａｄがコード情報Ｃｈｏｒｄの非コードスケール音であれば、ＣＰＵ２は処理を前記（１１）第１の生成ルールに対する適合判定処理に進める（ステップＳ３３→Ｓ２６）。この（１１）第１の生成ルールに対する適合判定処理以降の処理の詳細については既に説明したので、ここでは繰り返さない。一方、ステップＳ３３の判定の結果、リード音Ｌｅａｄがコード情報Ｃｈｏｒｄの非コードスケール音でなければ、ＣＰＵ２は処理をステップＳ３４に進める。
【００６５】
次に、第３の生成ルールが設定されている場合には、ＣＰＵ２は、処理を前記（１３）の第３の生成ルールに対する適合判定処理に進める（ステップＳ３４→Ｓ３５）。この（１３）第３の生成ルールに対する適合判定処理も、前記（１２）第２の生成ルールに対する適合判定処理と同様に、後者のルール、つまり「その入力音が非コードスケール音であること」に対する適合判定処理、次に前者のルール、つまり「入力音が半音下に進行すること」に対する適合判定処理の順序で判定処理を実行する。したがって、まずＣＰＵ２は、前記ステップＳ３３の判定処理と同様の判定処理を実行する（ステップＳ３５）。この判定の結果、リード音Ｌｅａｄがコード情報Ｃｈｏｒｄの非コードスケール音であれば、次にＣＰＵ２は、変化量Ｄｆが“−１”であるか、つまり入力音が半音下に進行しているかどうかを判定する（ステップＳ３６）。この判定の結果、変化量Ｄｆ＝−１のときには、ＣＰＵ２は処理を前記（１６）の第３の平行移動ハーモニー音決定処理に進める（ステップＳ３６→Ｓ３７）。この（１６）第３の平行移動ハーモニー音決定処理以降の処理はは、前記（１５）第２の平行移動ハーモニー音決定処理以降の処理と同様であるので、その処理の詳細についての説明は省略する。一方、ステップＳ３５の判定の結果、リード音Ｌｅａｄがコード情報Ｃｈｏｒｄの非コードスケール音でなければ、あるいは、リード音Ｌｅａｄがコード情報Ｃｈｏｒｄの非コードスケール音であったとしても、ステップＳ３６の判定の結果、変化量Ｄｆ≠−１であれば、ＣＰＵ２は、第３の生成ルールに適合していないとして、（１６）第３の平行移動ハーモニー音決定処理を実行せずに、処理を前記（１７）のハーモニー音生成用テーブルに基づいたハーモニー音検出処理に進める。
【００６６】
さらに、第１〜第３の生成ルールのいずれも設定されていない場合には、ＣＰＵ２は、処理をステップＳ２４の処理から直ちに前記（１７）のハーモニー音生成用テーブルに基づいたハーモニー音検出処理に進める（ステップＳ２５→Ｓ３２→Ｓ３４→Ｓ３０）。
【００６７】
なお本実施の形態では、コード入力は、鍵盤から行うようにしたが、これに限らず、予め記憶されたコード進行パターンを順次自動的に読み出して行うようにしてもよい。
【００６８】
コード入力が、本実施の形態のように（鍵盤を用いた）演奏入力によって行われる場合には、押鍵状態からコード情報の検出を行うようにすればよい。コード情報の検出方法については、特に指定はなく、実際のコード構成音の鍵を押鍵することによりコードを指定するフィンガード方式や、１つから３つ程度の鍵を所定の規則に基づいて押鍵することによりコードを指定するシングルフィンガー方式などが考えられる。または、操作パネル上に配置されたスイッチ操作により、各コードのルートとタイプを順次指定して行ってもよい。
【００６９】
また本実施の形態では、ハーモニー音およびリード音を同時に発生させる例を挙げて説明したが、これに限らず、伴奏音を自動生成するようにし、この伴奏音と、ハーモニー音およびリード音とを同時に発生させるようにしてもよいし、リード音を発生させずに、伴奏音とハーモニー音を同時に発生させるようにしてもよい。
【００７０】
リード音は、本実施の形態では、ユーザの音声に基づいて生成したが、これに限らず、演奏操作子から入力された演奏情報に基づいて生成するようにしてもよい。ユーザの音声は、本実施の形態では、マイクロフォンによって入力したものを用いたが、これに限らず、事前に記録しておいたものを再生して用いてもよい。演奏情報についても、これと同様に、事前に記録しておいたものを再生して用いてもよい。音声や演奏情報が事前に記録されたものである場合、再生する前に、当該音声や演奏情報を構成する音の音高の並びを検出できるので、平行移動ハーモニー音生成ルールとして、（Ｒ４）入力音が半音下降して非スケール音に変化し、さらに半音上昇してスケール音に戻ったときに、平行移動ハーモニー音を生成；というルールを採用することができる。たとえば、平行移動ハーモニー音生成ルールとして、本実施の形態のように「入力音が半音下降して非スケール音に変化したときに、平行移動ハーモニー音を生成」が選択され、このとき、前記図２の“Ｃｍａｊ”のハーモニー音生成用テーブルが選択されていれば、入力音の音高がＧ３→Ｆ＃３→Ｆ３と変化した場合、ハーモニー音の音高としては、まず“Ｃ４”が検出され、次に入力音が非スケール音へ半音下降しているので、“Ｃ４”ではなく“Ｂ３”が検出される。ところが、次に入力音はスケール音へ半音下降しているので、“Ｃ４”の音高のハーモニー音が検出されることになり、入力音の３音が下降するのに対して、ハーモニー音は３音目が上昇することになる。この入力音の例で、上記（Ｒ４）のルールを採用すると、ハーモニー音は“Ｃ４”から変化せず、入力音の音高の変化傾向に合ったものになる。
【００７１】
本実施の形態では、平行移動ハーモニー音生成ルールとして、前記（Ｒ１）〜（Ｒ３）のルールを採用したが、これに代えて、次の（Ｒ１′）〜（Ｒ３′）のルールを採用してもよい（さらに、入力音の先読みができる場合には、これに上記（Ｒ４）のルールを加えるようにしてもよい）。
（Ｒ１′）入力音が半音進行したときに、平行移動ハーモニー音を生成；
（Ｒ２′）入力音が半音進行し、かつその入力音が非スケール音のうちの所定の音であるときに、平行移動ハーモニー音を生成；
（Ｒ３′）入力音が半音下降し、かつその入力音が非スケール音の所定の音であるときに、平行移動ハーモニー音を生成；
ここで「所定の音」が、図２のハーモニー音生成用テーブルの「コードスケール音」の項目に“１”が記載されている入力音に相当する。“１”を割り当てる入力音としては、たとえば、半音下降した結果、非スケール音になり、次にスケール音に上昇する可能性が高い音を挙げることができる。このように入力音を割り当てると、平行移動によるハーモニー音生成の効果がより大きくなる。
【００７２】
また、前記（Ｒ１）〜（Ｒ３）のルールに上記（Ｒ１′）〜（Ｒ３′）および（Ｒ４）のルールを加えたものの中から、本実施の形態の電子音楽装置上で設定可能なものをユーザが任意に選択可能に構成してもよいし、デフォルトで決まっていてもよい。あるいは、曲のジャンルやコード情報に応じて、いくつかのルールが自動的に選択されるようにしてもよい。
【００７３】
ハーモニー音（平行移動ではないもの）の生成方法は、公知の方法のいずれを採用しても構わないが、コードを元にして生成するものとする。
【００７４】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７５】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７６】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００７７】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００７９】
１…入力操作部（第１の受付手段、第２の受付手段），２…ＣＰＵ（第１の受付手段、第２の受付手段、抽出手段、第１の保存手段、第２の保存手段、第１の決定手段、第２の決定手段、算出手段、判定手段、生成手段），４…ＲＡＭ（第１の受付手段、第２の受付手段、第１の保存手段、第２の保存手段）
【図１】
0005560759.tif 000002
【図２】
0005560759.tif 000003
【図３】
0005560759.tif 000004
【図４】
0005560759.tif 000005