(57)【特許請求の範囲】
【請求項１】
エンベロープデータを含む所定の音色を有するメロディ音の音高を順次供給するメロディ音供給手段と、
伴奏音の音高を順次供給する伴奏音供給手段と、
この伴奏音供給手段により供給される音高によりコードが確定しいてるか否かを判定するコード判定手段と、
このコード判定手段によりコードが確定していると判定されている場合に、前記メロディ音供給手段から供給される各メロディ音の音高及び前記確定しているコードを構成する音高と基づいてハーモニー音の音高データを設定する音高設定手段と、
前記メロディ音供給手段から供給されるメロディ音において異なる音高の複数の音にわたって発音期間が重なりを生じたことを検出する検出手段と、
この検出手段にて重なりが検出されない場合及び重なりが検出された複数音高の最初の音高の場合は、前記音高設定手段で設定された音高データと前記音色設定手段で設定された音色データとに基づいてハーモニー音を生成するとともに、前記重なり合う音高のうち残りの音高の場合は、前記音高設定手段で設定された音高データと前記メロディ音の音色データに含まれるエンベロープデータの少なくとも一部を変更した新たな音色データに基づいてハーモニー音を生成し、前記メロディ音の発音に同期して当該ハーモニー音の発音を指示する発音指示手段と、
を備えたことを特徴とする電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オートハーモナイズ機能を具備した電子楽器に関する。
【０００２】
【従来の技術】
従来の電子楽器の中には、演奏に厚みを加えるために、演奏中のコードに合わせたハーモニー音が自動的にメロディ音に重なって発音するオートハーモナイズ機能を具備したものがあった。このオートハーモナイズ機能では、例えば、コード音の中でメロディ音の音高より３度以下でメロディ音に最も近い音高のものをハーモニー音として発音する。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の電子楽器におけるオートハーモナイズ機能においては、メロディ音の音色でハーモニー音を発音するため、豊かな表現のオートハーモナイズ効果が得られないという問題があった。また、メロディ音に異なる音高の複数の音にわたって発音期間の重なりがある場合には、音の重なりに適応したオートハーモナイズ効果が得られないという問題があった。
本発明の第１の課題は、従来よりも豊かな表現のオートハーモナイズ機能をもつ電子楽器を実現することである。また、本発明の第２の課題は、メロディ音に複数の音の発音期間の重なりがある場合に適応したオートハーモナイズ効果が得られるようにすることである。
【０００４】
【課題を解決するための手段】
請求項１における発明は、エンベロープデータを含む所定の音色を有するメロディ音の音高を順次供給するメロディ音供給手段と、伴奏音の音高を順次供給する伴奏音供給手段と、この伴奏音供給手段により供給される音高によりコードが確定しいてるか否かを判定するコード判定手段と、このコード判定手段によりコードが確定していると判定されている場合に、前記メロディ音供給手段から供給される各メロディ音の音高及び前記確定しているコードを構成する音高と基づいてハーモニー音の音高データを設定する音高設定手段と、前記メロディ音供給手段から供給されるメロディ音において異なる音高の複数の音にわたって発音期間が重なりを生じたことを検出する検出手段と、この検出手段にて重なりが検出されない場合及び重なりが検出された複数音高の最初の音高の場合は、前記音高設定手段で設定された音高データと前記音色設定手段で設定された音色データとに基づいてハーモニー音を生成するとともに、前記重なり合う音高のうち残りの音高の場合は、前記音高設定手段で設定された音高データと前記メロディ音の音色データに含まれるエンベロープデータの少なくとも一部を変更した新たな音色データに基づいてハーモニー音を生成し、前記メロディ音の発音に同期して当該ハーモニー音の発音を指示する発音指示手段と、を備えた構成になっている。
【０００９】
請求項１に記載の発明によれば、メロディに発音期間の重なりを検出した場合には、最初の音に同期してハーモニー音の発音を指示し、残りの音については音色データに含まれるアタックデータを変更したハーモニー音の発音を指示する。
【００１０】
【発明の実施の形態】
以下、本発明の電子楽器の第１〜第５実施形態について、図を参照して説明する。図１は、各実施形態における電子楽器のシステム構成を示している。ＣＰＵ１は、システムバス２を介して、プログラムＲＯＭ３、ワークＲＡＭ４、鍵盤５、スイッチ部６、音源７に接続されており、各部との間でコマンド及びデータを授受して、この電子楽器を制御する。
【００１１】
プログラムＲＯＭ３は、ＣＰＵ１が実行する制御プログラム、初期データ、データ処理に必要なテーブルデータ等を記憶している。鍵盤５は、演奏操作に応じて、メロディ音及びコード音等からなる伴奏音の楽音データを入力する。スイッチ部６は、設定に応じて発音するメロディ音や伴奏音の音色、その他演奏の条件を設定する。ワークＲＡＭ４は、鍵盤５及びスイッチ部６から入力されたデータ、ＣＰＵ１で処理したデータ等を一時的に記憶する。音源７は、ＣＰＵ１からの発音指示や消音指示、及び楽音データに基づいて楽音信号を生成し、接続されている発音回路８に出力して発音する。
【００１２】
次に、各実施形態の動作について、ＣＰＵ１が実行する制御プログラムのフローチャートに基づいて説明する。
【００１３】
図２〜図５のフローは、各実施形態に共通したフローである。図２のメインフローにおいては、所定のイニシャライズ処理（ステップＡ１）を行った後、スイッチ処理（ステップＡ２）、鍵盤処理（ステップＡ３）、自動伴奏処理（ステップＡ４）、オートハーモナイズ処理（ステップＡ５）、発音処理（ステップＡ６）を繰り返し実行するループ処理を行う。
【００１４】
図２のメインフローのステップＡ２におけるスイッチ処理は、図３に示すように、オートハーモナイズスイッチ処理（ステップＢ１）、音色スイッチ処理（ステップＢ２）、その他のスイッチ処理（ステップＢ３）を行って、メインフローに戻る。また、メインフローのステップＡ３における鍵盤処理は、図４に示すように、伴奏鍵域処理（ステップＣ１）、メロディ鍵域処理（ステップＣ２）を行って、メインフローに戻る。
【００１５】
図３のスイッチ処理のステップＢ１におけるオートハーモナイズ処理は、オートハーモナイズスイッチがオンされたか否かを判別し（ステップＤ１）、オンされない場合にはメインフローに戻るが、オンされたときはオートハーモナズフラグＡＨＦを反転する（ステップＤ２）。そして、図３のフローに戻る。
【００１６】
次に、第１実施形態の動作について説明する。図６は、図３のスイッチ処理のステップＢ２における音色スイッチ処理のフローである。この処理では、音色スイッチがオンされたか否かを判別し（ステップＥ１）、オンされない場合には図３のフローに戻るが、オンされたときは音色レジスタＴＯＮＥに、その音色スイッチの音色番号をストアする（ステップＥ２）。そして、ＴＯＮＥに対応する音色データ、エンベロープデータを音源に送付する（ステップＥ３）。
【００１７】
次に、ＡＨＦが「１」であるか否かを判別する（ステップＥ４）。このフラグが「０」である場合には図３のフローに戻るが、このフラグが「１」である場合には、音色を少し変更するためのテーブルを参照してＴＯＮＥの音色データに対応する音色データをレジスタＡＴＯＮＥにストアする（ステップＥ５）。そして、ＡＴＯＮＥに対応する音色データ、エンベロープデータを音源に送付する（ステップＥ６）。音源に送付した後は、図３のフローに戻る。すなわち、メロディ音として指定されている音色データ（ＴＯＮＥ）に基づくとともに、その指定音色データとは異なる音色データ（ＡＴＯＮＥ）で発音を指示する。
【００１８】
図７は、図４の鍵盤処理のステップＣ１における第１実施形態の伴奏鍵域処理のフローである。この処理では、伴奏鍵の走査を開始して（ステップＦ１）、伴奏チャンネルの番号を示すポインタｎを「０」にセットする（ステップＦ２）。そして、ｎをインクリメントしながら、鍵変化に応じた伴奏チャンネルｎに対する処理を行う。
【００１９】
すなわち、鍵変化があるか否かを判別し（ステップＦ３）、オフからオンに鍵変化があったときは、伴奏チャンネルｎに対応する音高レジスタＣＮＯＴＥ（ｎ）が空きであるか否かを判別する（ステップＦ４）。空きでない場合には、ｎをインクリメントして次の伴奏チャンネルを指定する（ステップＦ５）。そして、ｎが所定数（８チャンネルの場合には「８」）を超えたか否かを判別し（ステップＦ６）、超えていない場合には、ステップＦ４に移行してＣＮＯＴＥ（ｎ）が空きであるか否かを判別する。空きのレジスタＣＮＯＴＥ（ｎ）があった場合には、そのレジスタに鍵番号をストアする（ステップＦ７）。そして、すべての伴奏鍵の走査が終了したか否かを判別する（ステップＦ８）。走査が終了していない場合には、ステップＦ３に移行してステップＦ８までの処理を繰り返す。
【００２０】
ステップＦ３において、オンからオフに鍵変化があったときは、それまで押鍵されていた鍵番号がストアされているＣＮＯＴＥ（ｎ）をさがす（ステップＦ９）。そして、ＣＮＯＴＥ（ｎ）を空きにする（ステップＦ１０）。そして、ステップＦ８に移行して、すべての伴奏鍵の走査が終了したか否かを判別する。また、ステップＦ３において鍵変化がない場合には、ただちにステップＦ８に移行して、すべての伴奏鍵の走査が終了したか否かを判別する。
【００２１】
すべての伴奏鍵の走査が終了したときは、空きでないＣＮＯＴＥ（  ）よりコードを判定する（ステップＦ１１）。その判定によってコードが確定したか否かを判別し（ステップＦ１２）、コードが確定した場合には、コードフラグＣＦを「１」にセットする（ステップＦ１３）。ＣＦをセットした後、又は、ステップＦ１２においてコードが確定しない場合には、図４の鍵盤処理のフローに戻る。
【００２２】
図８及び図９は、図４の鍵盤処理のステップＣ２における第１実施形態のメロディ鍵域処理のフローである。この処理では、図８において、メロディ鍵の走査を開始して（ステップＧ１）、メロディチャンネルの番号を示すポインタｎを「０」にセットする（ステップＧ２）。そして、ｎをインクリメントしながら、鍵変化に応じたメロディチャンネルｎに対する処理を行う。
【００２３】
すなわち、鍵変化があるか否かを判別し（ステップＧ３）、オフからオンに鍵変化があったときは、メロディチャンネルｎのオントリガフラグＯＮＴＦ（ｎ）が「１（発音開始）」又はオンフラグＯＮＦ（ｎ）が「１（発音中）」であるか否かを判別する（ステップＧ４）。いずれか一方のフラグが「１」である場合には、ｎをインクリメントして次のメロディチャンネルを指定する（ステップＧ５）。そして、ｎが所定数を超えたか否かを判別し（ステップＧ６）、超えていない場合には、ステップＧ４に移行してＯＮＴＦ（ｎ）又はＯＮＦ（ｎ）のいずれか一方が「１」であるか否かを判別する。
【００２４】
ＯＮＴＦ（ｎ）及びＯＮＦ（ｎ）もともに「０」である場合、すなわちメロディチャンネル（ｎ）が空きである場合には、ＯＮＴＦ（ｎ）を「１」にセットして（ステップＧ７）、メロディチャンネルｎに対応する音高レジスタＭＮＯＴＥ（ｎ）に鍵番号をストアする（ステップＧ８）。
【００２５】
ステップＧ６においてｎが所定数を超えた場合、又はステップＧ８において鍵番号をストアした後、又はステップＧ３において鍵変化がない場合には、すべてのメロディ鍵域の走査が終了したか否かを判別する（ステップＧ９）。走査が終了していない場合には、ステップＧ２に移行して、ポインタｎを「０」にセットする。そして、ステップＧ９までの処理を繰り返す。
【００２６】
ステップＧ３において、オンからオフに鍵変化があったときは、図９のフローにおいて、ＯＮＦ（ｎ）が「１」であるか否かを判別する（ステップＧ１０）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）の鍵番号とオフになった鍵番号とが同じであるか否かを判別する（ステップＧ１１）。ステップＧ１０においてＯＮＦ（ｎ）が「０」である場合、又はステップＧ１１においてＭＮＯＴＥ（ｎ）の鍵番号とオフになった鍵番号とが異なる場合には、ｎをインクリメントして次のメロディチャンネルを指定する（ステップＧ１２）。そして、ｎが所定数を超えたか否かを判別する（ステップＧ１３）。
【００２７】
ｎが所定数を超えていない場合には、ステップＧ１０に移行して、ＯＮＦ（ｎ）が「１」であるか否かを判別する。ＯＮＦ（ｎ）が「１」で、かつステップＧ１１においてＭＮＯＴＥ（ｎ）が「１」である場合には、ＯＮＦ（ｎ）を「０」にリセットし（ステップＧ１４）、オフトリガフラグＯＦＦＴＦを「１（消音開始）」にセットする（ステップＧ１５）。ＯＦＦＴＦを「１」にセットした後、又は、ステップＧ１３においてｎが所定数を超えたときは、図８のステップＧ９に移行して、すべてのメロディ鍵域の走査が終了したか否かを判別する。
【００２８】
図１０は、図２のメインフローのステップＡ５における第１実施形態のオートハーモナイズ処理のフローである。この処理では、コードフラグＣＦ及びオートハーモナイズフラグＡＨＦがともに「１」であるか否かを判別する（ステップＨ１）。いずれか一方のフラグが「０」である場合にはメインフローに戻るが、２つのフラグがともに「１」である場合には、メロディチャンネルを指定するポインタｎを「０」にセットして（ステップＨ２）、ｎをインクリメントしながらメロディチャンネルの状態を検索する。
【００２９】
すなわち、ＯＮＴＦ（ｎ）が「１」であるか否かを判別し（ステップＨ３）、このフラグが「０」である場合には、ｎをインクリメントして次のメロディチャンネルを指定する（ステップＨ４）。そして、ｎが所定数を超えたか否かを判別し（ステップＨ５）、超えていない場合には、ステップＨ３に移行してＯＮＴＦ（ｎ）が「１」であるか否かを判別する。このフラグが「１」である場合には、伴奏チャンネルを指定するポインタｍを「０」にセットして（ステップＨ６）、ｍをインクリメントしながら、伴奏チャンネルの状態を検索する。
【００３０】
すなわち、伴奏チャンネルｍの状態を示すレジスタＣＮＯＴＥ（ｍ）は空きでないか否かを判別し（ステップＨ７）、空きでない場合には、ＣＮＯＴＥ（ｍ）の音高はＭＮＯＴＥ（ｎ）の音高の３度以上下位であるか否かを判別する（ステップＨ８）。ステップＨ７においてＣＮＯＴＥ（ｍ）が空きである場合、又は、ステップＨ８においてＣＮＯＴＥ（ｍ）の音高がＭＮＯＴＥ（ｎ）の音高の３度以上下位でない場合には、ｍをインクリメントして次の伴奏チャンネルを指定する（ステップＨ９）。そして、ｍが所定数を超えたか否かを判別し（ステップＨ１０）、超えていない場合にはステップＨ７に移行して、ＣＮＯＴＥ（ｍ）は空きでないか否かを判別する。
【００３１】
ＣＮＯＴＥ（ｍ）が空きでなく、かつステップＨ８においてＣＮＯＴＥ（ｍ）の音高はＭＮＯＴＥ（ｎ）の音高の３度以上下位である場合には、既にハーモナイズ音高レジスタＨＮＯＴＥ（ｎ）に音高データがストアされているか否かを判別する（ステップＨ１１）。音高データがストアされている場合には、ＣＮＯＴＥ（ｍ）の音高がＨＮＯＴＥ（ｎ）の音高よりもＭＮＯＴＥ（ｎ）に近いか否かを判別する（ステップＨ１２）。
【００３２】
ステップ１１においてＨＮＯＴＥ（ｎ）に音高データがストアされていない場合、又は、ステップＨ１２においてＣＮＯＴＥ（ｍ）の音高がＨＮＯＴＥ（ｎ）の音高よりもＭＮＯＴＥ（ｎ）に近い場合には、ＨＮＯＴＥ（ｎ）にＣＮＯＴＥ（ｍ）の音高データをストアする（ステップＨ１３）。そして、ステップＨ９に移行して、ｍをインクリメントして次の伴奏チャンネルを指定し、ステップＨ１０においてｍが所定数を超えたか否かを判別する。ｍが所定数を超えない場合には、ステップＨ７〜ステップＨ１３の処理を繰り返す。ステップＨ１０において、ｍが所定数を超えたときはステップＨ４に移行して、ｎをインクリメントして次のメロディチャンネルを指定し、ステップＨ５においてｎが所定数を超えたか否かを判別する。ｎが所定数を超えたときは、図２のメインフローに戻る。
【００３３】
図１１及び図１２は、メインフローのステップＡ６における第１実施形態の発音処理のフローである。この処理では、図１１において、メロディチャンネルを指定するポインタｎを「０」にセットして（ステップＪ１）、ｎをインクリメントしながら、チャンネルごとの発音処理を行う。
【００３４】
すなわち、メロディチャンネルｎの発音開始フラグＯＮＴＦ（ｎ）が「１」であるか否かを判別し（ステップＪ２）、このフラグが「１」である場合には、ＴＯＮＥの音色データ及びＭＴＯＮＥ（ｎ）の音高データで発音開始を指示する（ステップＪ３）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別する（ステップＪ４）。この２つのフラグがともに「１」である場合、すなわちオートハーモナイズ演奏の場合には、ＴＯＮＥに基づいてテーブルで参照したＡＴＯＮＥの音色データ及びＭＴＯＮＥ（ｎ）の音高データで発音開始を指示する（ステップＪ５）。ステップＪ３又はステップＪ５の発音指示の後は、ＯＮＴＦ（ｎ）を「０」にリセットし（ステップＪ６）、ＯＮＦ（ｎ）を「１」にセットする（ステップＪ７）。
【００３５】
ステップＪ２において、ＯＮＴＦ（ｎ）が「０」である場合には、消音開始フラグＯＦＦＴＦ（ｎ）が「１」であるか否かを判別する（ステップＪ８）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）のリリース指示を行う（ステップＪ９）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別し（ステップＪ１０）、この２つのフラグがともに「１」である場合には、ＨＮＯＴＥ（ｎ）のリリース指示を行う（ステップＪ１１）。
【００３６】
ＨＮＯＴＥ（ｎ）のリリース指示の後、又は、ステップＪ１０においてＡＨＦ及びＣＦの少なくとも一方が「０」である場合、すなわちオートハーモナイズ演奏でない場合には、ＯＦＦＴＦ（ｎ）を「０」にリセットして（ステップＪ１２）、リリースフラグＲＦ（ｎ）を「１」にセットする（ステップＪ１３）。
【００３７】
ステップＪ８においてＯＦＦＴＦ（ｎ）が「０」である場合には、図１２において、ＲＦ（ｎ）が「１」であるか否かを判別する（ステップＪ１４）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）の音量レベルが「０（消音完了）」であるか否かを判別する（ステップＪ１５）。ＭＮＯＴＥ（ｎ）のレベルが「０」である場合には、ＲＦ（ｎ）を「０」にリセットし（ステップＪ１６）、ＯＮＦ（ｎ）を「０」にリセットする（ステップＪ１７）。
【００３８】
ＯＮＦ（ｎ）をリセットした後、ステップＪ１４においてＲＦ（ｎ）が「０」である場合若しくはステップＪ１５においてＭＮＯＴＥ（ｎ）のレベルが「０」でない場合、又は、図１１のステップＪ７においてＯＮＦ（ｎ）をセットした後若しくはステップＪ１３においてＲＦ（ｎ）をセットした後は、図１２のステップＪ１８においてｎをインクリメントして次のメロディチャンネルを指定する。そして、ｎが所定数を超えたか否かを判別する（ステップＪ１９）。所定数を超えていない場合には、図１１のステップＪ２に移行して、ＯＮＴＦ（ｎ）が「１」であるか否かを判別する。一方、ｎが所定数を超えた場合には、メインフローに戻る。
【００３９】
このように、上記第１実施形態においては、メロディ音の音色とは異なる音色のハーモニー音の音色データを設定する際に、テーブルを参照して、メロディ音として指定されている音色データに対応する最適な音色データを設定する構成になっている。
【００４０】
上記構成によれば、メロディ音とは異なる音色でメロディ音の発音に同期したハーモニー音を発音させるので、従来よりも豊かな表現のオートハーモナイズ機能をもつ電子楽器を実現する。
【００４１】
次に、第２実施形態の動作について説明する。第２実施形態において、第１実施形態における処理と同じものについては、図面及び説明は省略し、第１実施形態と異なる部分である、音色スイッチ処理、オートハーモナイズ処理、及び発音処理について説明する。
【００４２】
図１３は、図３のスイッチ処理のステップＢ２における第２実施形態の音色スイッチ処理のフローである。この処理では、音色スイッチがオンされたか否かを判別し（ステップＫ１）、オンされない場合には図３のフローに戻るが、オンされたときは音色レジスタＴＯＮＥに、その音色スイッチの音色番号をストアする（ステップＫ２）。そして、ＴＯＮＥに対応する音色データ、エンベロープデータを音源に送付する（ステップＫ３）。
【００４３】
次に、ＡＨＦが「１」であるか否かを判別する（ステップＫ４）。このフラグが「０」である場合には図３のフローに戻るが、このフラグが「１」である場合には、音色テーブルの音色データを指定するポインタｎを「０」にセットして（ステップＫ５）、ｎをインクリメントしながら、音色を少し変更するためのテーブルを参照する。すなわち、テーブルにおいてＴＯＮＥ及びｎに対応する音色データをレジスタＡＴＯＮＥ（ｎ）にストアする（ステップＫ６）。そして、ＡＴＯＮＥ（ｎ）に対応する音色データ、エンベロープデータを音源に送付する（ステップＫ７）。次に、ｎをインクリメントして次の音色データを指定し（ステップＫ８）、ｎが所定数（発音するハーモナイズのチャンネル数）を超えたか否かを判別する（ステップＫ９）。
【００４４】
ｎが所定数を超えていない場合には、ステップＫ６に移行してテーブルを参照し、ステップＫ９までの処理を繰り返す。ｎが所定数を超えたときは、図３のフローに戻る。すなわち、メロディ音として指定されている音色データ（ＴＯＮＥ）に基づくとともに、その指定音色データとは異なる音色データで複数の音高データの配列｛ＡＴＯＮＥ（ｎ）｝を設定する。
【００４５】
図１４は、図２のメインフローのステップＡ５における第２実施形態のオートハーモナイズ処理のフローである。この処理では、コードフラグＣＦ及びオートハーモナイズフラグＡＨＦがともに「１」であるか否かを判別する（ステップＬ１）。いずれか一方のフラグが「０」である場合にはメインフローに戻るが、２つのフラグがともに「１」である場合には、メロディチャンネルを指定するポインタｎを「０」にセットして（ステップＬ２）、ｎをインクリメントしながらメロディチャンネルの状態を検索する。
【００４６】
すなわち、ＯＮＴＦ（ｎ）が「１」であるか否かを判別し（ステップＬ３）、このフラグが「０」である場合には、ｎをインクリメントして次のメロディチャンネルを指定する（ステップＬ４）。そして、ｎが所定数を超えたか否かを判別し（ステップＬ５）、超えていない場合には、ステップＬ３に移行してＯＮＴＦ（ｎ）が「１」であるか否かを判別する。このフラグが「１」である場合には、伴奏チャンネルを指定するポインタｍ及びオートハーモナイズの音色を指定するポインタｋをともに「０」にセットして（ステップＬ６）、ｍ及びｋをインクリメントしながら、伴奏チャンネルの状態を検索する。
【００４７】
すなわち、伴奏チャンネルｍの状態を示すレジスタＣＮＯＴＥ（ｍ）は空きでないか否かを判別し（ステップＬ７）、空きでない場合には、ＣＮＯＴＥ（ｍ）の音高はＭＮＯＴＥ（ｎ）の音高の３度以上下位であるか否かを判別する（ステップＬ８）。３度以上下位である場合には、ＣＮＯＴＥ（ｍ）の音高データをハーモナイズ音高レジスタの配列であるＨＮＯＴＥ（ｎ、ｋ）にストアする（ステップＬ９）。そして、ｋをインクリメントして次の音色を指定し（ステップＬ１０）、ｍをインクリメントして次の伴奏チャンネルを指定する（ステップＬ１１）。そして、ｍが所定数を超えたか否かを判別し（ステップＬ１２）、超えていない場合にはステップＬ７に移行して、ＣＮＯＴＥ（ｍ）は空きでないか否かを判別する。
【００４８】
ステップＬ７においてＣＮＯＴＥ（ｍ）が空きでない場合、又はステップＬ８においてＣＮＯＴＥ（ｍ）の音高はＭＮＯＴＥ（ｎ）の音高の３度以上下位でない場合には、ステップＬ１１に移行して、ｍをインクリメントして次の伴奏チャンネルを指定する。そして、ｍが所定数を超えたか否かを判別し（ステップＬ１２）、超えていない場合にはステップＬ７に移行して、ＣＮＯＴＥ（ｍ）は空きでないか否かを判別する。
【００４９】
ステップＬ１２において、ｍが所定数を超えたときはステップＬ４に移行して、ｎをインクリメントして次のメロディチャンネルを指定する。そして、ｎが所定数を超えたか否かを判別し（ステップＬ５）、超えていない場合には、ステップＬ３に移行してＯＮＴＦ（ｎ）が「１」であるか否かを判別する。ステップＬ５において、ｎが所定数を超えたときは、図２のメインフローに戻る。
【００５０】
図１５〜図１７は、メインフローのステップＡ６における第２実施形態の発音処理のフローである。この処理では、メロディチャンネルを指定するポインタｎを「０」にセットして（ステップＭ１）、ｎをインクリメントしながら、チャンネルごとの発音処理を行う。
【００５１】
すなわち、メロディチャンネルｎの発音開始フラグＯＮＴＦ（ｎ）が「１」であるか否かを判別し（ステップＭ２）、このフラグが「１」である場合には、ＴＯＮＥの音色データ及びＭＴＯＮＥ（ｎ）の音高データで発音開始を指示する（ステップＭ３）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別する（ステップＭ４）。この２つのフラグがともに「１」である場合、すなわちオートハーモナイズ演奏の場合には、オートハーモナイズの音色を指定するポインタｍを「０」にセットして（ステップＭ５）、ｍをインクリメントしながら、発音指示を行う。すなわち、ＡＴＯＮＥ（ｍ）の音色データ及びＨＮＯＴＥ（ｎ、ｍ）の複数の音高データで発音開始を指示する（ステップＭ６）。
【００５２】
次に、ｍをインクリメントして（ステップＭ７）、ｍがｋを超えたか否かを判別する（ステップＭ８）。ｍがｋ以下である場合には、ステップＭ６に移行して、ステップＭ８までの処理を繰り返し、ＴＯＮＥの音色データ及びＭＴＯＮＥ（ｎ）の音高データで発音開始を指示する。ステップＭ８においてｍがｋを超えたとき、又は、ステップＭ４においてＡＨＦ又はＣＦの少なくとも一方が「０」である場合には、ＯＮＴＦ（ｎ）を「０」にリセットし（ステップＭ９）、ＯＮＦ（ｎ）を「１」にセットする（ステップＭ１０）。
【００５３】
ステップＭ２において、ＯＮＴＦ（ｎ）が「０」である場合には、図１６において、消音開始フラグＯＦＦＴＦ（ｎ）が「１」であるか否かを判別する（ステップＭ１１）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）のリリース指示を行う（ステップＭ１２）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別し（ステップＭ１３）、この２つのフラグがともに「１」である場合には、オートハーモナイズの音色を指定するポインタｍを「０」にセットして（ステップＭ１４）、ｍをインクリメントしながら、リリース指示を行う。すなわち、ＨＮＯＴＥ（ｎ、ｍ）のリリース指示を行う（ステップＭ１５）。
【００５４】
ＨＮＯＴＥ（ｎ、ｍ）のリリース指示の後、ｍをインクリメントして（ステップＭ１６）、ｍがｋを超えたか否かを判別する（ステップＭ１７）。ｍがｋ以下である場合には、ステップＭ１５に移行して、ステップＭ１７までの処理を繰り返し、ＨＮＯＴＥ（ｎ、ｍ）のリリース指示を行う。ステップＭ１７においてｍがｋを超えたときは、ＯＦＦＴＦ（ｎ）を「０」にリセットして（ステップＭ１８）、リリースフラグＲＦ（ｎ）を「１」にセットする（ステップＭ１９）。
【００５５】
ステップＭ１１においてＯＦＦＴＦ（ｎ）が「０」である場合には、図１７において、ＲＦ（ｎ）が「１」であるか否かを判別する（ステップＭ２０）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）の音量レベルが「０（消音完了）」であるか否かを判別する（ステップＭ２１）。ＭＮＯＴＥ（ｎ）のレベルが「０」である場合には、ＲＦ（ｎ）を「０」にリセットし（ステップＭ２２）、ＯＮＦ（ｎ）を「０」にリセットする（ステップＭ２３）。
【００５６】
図１５のステップＭ１０においてＯＮＦ（ｎ）をセットした後、図１６のステップＭ１３においてＡＨＦ又はＣＦの少なくとも一方が「０」である場合、若しくはステップＭ１９においてＲＦ（ｎ）をセットした後、又は、図１７のステップＭ２０においてＲＦ（ｎ）が「０」である場合若しくはステップＭ２１においてＭＮＯＴＥ（ｎ）のレベルが「０」でない場合には、図１７のステップＭ２４においてｎをインクリメントして次のメロディチャンネルを指定する。そして、ｎが所定数を超えたか否かを判別する（ステップＭ２５）。所定数を超えていない場合には、図１５のステップＭ２に移行して、ＯＮＴＦ（ｎ）が「１」であるか否かを判別する。一方、ｎが所定数を超えた場合には、メインフローに戻る。
【００５７】
このように、上記第２実施形態においては、メロディ音の音高に基づいて異なる複数の音高からなるハーモニー音の音高データを設定するとともに、メロディ音の音色とは異なる音色のハーモニー音の音色データを設定する構成になっている。
【００５８】
上記構成によれば、メロディ音の音色とは異なる音色のハーモニー音を複数の音高で発音させるので、音の厚みのある豊かな表現のオートハーモナイズ機能をもつ電子楽器を実現する。
【００５９】
次に、第３実施形態の動作について説明する。第３実施形態において、第１実施形態における処理と同じものについては、図面及び説明は省略し、第１実施形態と異なる部分である、音色スイッチ処理について説明する。
【００６０】
図１８は、図３のスイッチ処理のステップＢ２における音色スイッチ処理のフローである。この処理では、音色スイッチがオンされたか否かを判別し（ステップＮ１）、オンされない場合には図３のフローに戻るが、オンされたときは音色レジスタＴＯＮＥに、その音色スイッチの音色番号をストアする（ステップＮ２）。そして、ＴＯＮＥに対応する音色データ、エンベロープデータを音源に送付する（ステップＮ３）。
【００６１】
次に、オートハーモナイズフラグＡＨＦが「１」であるか否かを判別する（ステップＮ４）。このフラグが「０」である場合には図３のフローに戻るが、このフラグが「１」である場合には、ＴＯＮＥに対応する音色データ、エンベロープデータをワークＲＡＭに展開する（ステップＮ５）。次に、音色データのうちフィルタ係数の一部を変更する（ステップＮ６）。そして、変更された音色データ、エンベロープデータを音源に送付する（ステップＮ７）。また、ＡＴＯＮＥに新たな音色番号をストアする（ステップＮ８）。そして、図３のフローに戻る。すなわち、メロディ音として指定されている音色データのフィルタ係数のデータを変更する。
【００６２】
このように、上記第３実施形態においては、メロディ音の音色とは異なる音色のハーモニー音の音色データを設定する際に、メロディ音の音色データに含まれるフィルタ係数のデータを変更する構成になっている。
【００６３】
上記構成によれば、音色データのフィルタ係数を変更する簡単なデータ処理によって、従来のものよりも豊かな表現のオートハーモナイズ機能をもつ電子楽器を実現する。
【００６４】
次に、第４実施形態の動作について説明する。第４実施形態において、第１実施形態における処理と同じものについては、図面及び説明は省略し、第１実施形態と異なる部分である、音色スイッチ処理、メロディ鍵域処理、及び発音処理について説明する。
【００６５】
図１９は、図３のスイッチ処理のステップＢ２における第４実施形態の音色スイッチ処理のフローである。この処理では、音色スイッチがオンされたか否かを判別し（ステップＰ１）、オンされない場合には図３のフローに戻るが、オンされたときは音色レジスタＴＯＮＥに、その音色スイッチの音色番号をストアする（ステップＰ２）。そして、ＴＯＮＥに対応する音色データ、エンベロープデータを音源に送付する（ステップＰ３）。
【００６６】
次に、オートハーモナイズフラグＡＨＦが「１」であるか否かを判別する（ステップＰ４）。このフラグが「０」である場合には図３のフローに戻るが、このフラグが「１」である場合には、ＴＯＮＥに対応する音色データ、エンベロープデータをワークＲＡＭに展開する（ステップＰ５）。次に、エンベロープデータのアタックデータを変更する（ステップＰ６）。そして、変更された音色データ、エンベロープデータを音源に送付する（ステップＰ７）。また、ＡＴＯＮＥに新たな音色番号をストアする（ステップＰ８）。そして、図３のフローに戻る。すなわち、メロディ音として指定されている音色データのうちエンベロープデータのアタックデータを変更する。
【００６７】
図２０及び図２１は、図４の鍵盤処理のステップＣ２における第４実施形態のメロディ鍵域処理のフローである。この処理では、メロディ鍵の走査を開始して（ステップＱ１）、メロディチャンネルの番号を示すポインタｎを「０」にセットする（ステップＱ２）。そして、ｎをインクリメントしながら、鍵変化に応じたメロディチャンネルｎに対する処理を行う。
【００６８】
すなわち、鍵変化があるか否かを判別し（ステップＱ３）、オフからオンに鍵変化があったときは、メロディチャンネルｎのオントリガフラグＯＮＴＦ（ｎ）及びオンフラグＯＮＦ（ｎ）がともに「０」であるか否かを判別する（ステップＱ４）。すくなとも一方のフラグが「１」である場合には、ｎをインクリメントして次のメロディチャンネルを指定する（ステップＱ５）。そして、ｎが所定数を超えたか否かを判別し（ステップＱ６）、超えていない場合には、ステップＱ４に移行してＯＮＴＦ（ｎ）及びＯＮＦ（ｎ）がともに「０」であるか否かを判別する。
【００６９】
ＯＮＴＦ（ｎ）及びＯＮＦ（ｎ）がともに「０」である場合、すなわちメロディチャンネル（ｎ）が空きである場合には、ＯＮＴＦ（ｎ）を「１（発音開始）」にセットして（ステップＱ７）、メロディチャンネルｎに対応する音高レジスタＭＮＯＴＥ（ｎ）に鍵番号をストアする（ステップＱ８）。
【００７０】
次に、メロディチャンネルの番号を示すポインタｍを「０」にセットする（ステップＱ９）。そして、ｍをインクリメントしながら、既に発音中のメロディチャンネルｎがあるか否かを検索する。
【００７１】
すなわち、ＯＮＦ（ｍ）が「１（発音中）」であるか否かを判別し（ステップＱ１０）、このフラグが「０（消音中）」である場合には、ｍをインクリメントして次のチャンネルを指定する（ステップＱ１１）。そして、ｍが所定数を超えたか否かを判別し（ステップＱ１２）、超えていない場合には、ステップＱ１０に移行して、ＯＮＦ（ｍ）が「１」であるか否かを判別する。ＯＮＦ（ｍ）が「１」である場合には、メロディ音に異なる音高の複数の音にわたって発音期間の重なりがある場合である。この場合には、ステップＱ７においてＯＮＴＦ（ｎ）を「１（発音開始）」にセットしたチャンネルｎに対応するスラーフラグＳＦ（ｎ）を「１」にセットする（ステップＱ１３）。
【００７２】
ステップＱ３において鍵変化がない場合、ステップＱ６においてｎが所定数を超えた場合、ステップＱ１２においてｍが所定数を超えた場合、又は、ステップＱ１３においてＳＦ（ｎ）をセットした後は、すべてのメロディ鍵域の走査が終了したか否かを判別する（ステップＱ１４）。走査が終了していない場合には、ステップＱ２に移行して、ポインタｎを「０」にセットする。そして、ステップＱ１４までの処理を繰り返す。
【００７３】
ステップＱ３において、オンからオフに鍵変化があったときは、図２１のフローにおいて、ＯＮＦ（ｎ）が「１」であるか否かを判別する（ステップＱ１５）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）の鍵番号とオフになった鍵番号とが同じであるか否かを判別する（ステップＱ１６）。ステップＱ１５においてＯＮＦ（ｎ）が「０」である場合、又はステップＱ１６においてＭＮＯＴＥ（ｎ）の鍵番号とオフになった鍵番号とが異なる場合には、ｎをインクリメントして次のメロディチャンネルを指定する（ステップＱ１７）。そして、ｎが所定数を超えたか否かを判別する（ステップＱ１８）。
【００７４】
ｎが所定数を超えていない場合には、ステップＱ１５に移行して、ＯＮＦ（ｎ）が「１」であるか否かを判別する。ＯＮＦ（ｎ）が「１」で、かつステップＱ１６においてＭＮＯＴＥ（ｎ）が「１」である場合には、ＯＮＦ（ｎ）を「０」にリセットし（ステップＱ１９）、オフトリガフラグＯＦＦＴＦを「１（消音開始）」にセットする（ステップＱ２０）。次に、ＳＦ（ｎ）を「０」にリセットする（ステップＱ２１）。ＳＦ（ｎ）を「０」にリセットした後、又は、ステップＱ１８においてｎが所定数を超えたときは、図２０のステップＱ１４に移行して、すべてのメロディ鍵域の走査が終了したか否かを判別する。
【００７５】
図２２及び図２３は、図２のメインフローのステップＡ６における第４実施形態の発音処理のフローである。この処理では、メロディチャンネルを指定するポインタｎを「０」にセットして（ステップＲ１）、ｎをインクリメントしながら、チャンネルごとの発音処理を行う。
【００７６】
すなわち、メロディチャンネルｎの発音開始フラグＯＮＴＦ（ｎ）が「１」であるか否かを判別し（ステップＲ２）、このフラグが「１」である場合には、ＴＯＮＥの音色データ及びＭＴＯＮＥ（ｎ）の音高データで発音開始を指示する（ステップＲ３）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別する（ステップＲ４）。この２つのフラグがともに「１」である場合、すなわちオートハーモナイズ演奏の場合には、スラーフラグＳＦ（ｎ）が「１」であるか否かを判別する（ステップＲ５）。
【００７７】
ＳＦ（ｎ）が「１」である場合には、ＡＮＯＴＥの音色データすなわち図１９の音色スイッチ処理でストアした新たな音色番号の音色データ、及びＨＮＯＴＥ（ｎ）の音高データで、発音開始を指示する（ステップＲ６）。ＳＦ（ｎ）が「０」である場合には、ＮＯＴＥの音色データすなわち図１９の音色スイッチ処理で音色設定スイッチで指定されたメロディの音色データ、及びＨＮＯＴＥ（ｎ）の音高データで、発音開始を指示する（ステップＲ７）。ステップＲ６又はステップＲ７において発音開始を指示した後は、ＯＮＴＦ（ｎ）を「０」にリセットし（ステップＲ８）、ＯＮＦ（ｎ）を「１」にセットする（ステップＲ９）。
【００７８】
ステップＲ２において、ＯＮＴＦ（ｎ）が「０」である場合には、消音開始フラグＯＦＦＴＦ（ｎ）が「１」であるか否かを判別する（ステップＲ１０）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）のリリース指示を行う（ステップＲ１１）。そして、ＯＦＦＴＦ（ｎ）を「０」にリセットして（ステップＲ１２）、リリースフラグＲＦ（ｎ）を「１」にセットする（ステップＲ１３）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別し（ステップＲ１４）、この２つのフラグがともに「１」である場合には、ＨＮＯＴＥ（ｎ）のリリース指示を行う（ステップＲ１５）。
【００７９】
ステップＲ１０においてＯＦＦＴＦ（ｎ）が「０」である場合には、図２３において、ＲＦ（ｎ）が「１」であるか否かを判別する（ステップＲ１６）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）の音量レベルが「０（消音完了）」であるか否かを判別する（ステップＲ１７）。ＭＮＯＴＥ（ｎ）のレベルが「０」である場合には、ＲＦ（ｎ）を「０」にリセットし（ステップＲ１８）、ＯＮＦ（ｎ）を「０」にリセットする（ステップＲ１９）。
【００８０】
図２２のステップＲ１０においてＯＮＦ（ｎ）をセットした後、ステップＲ１５においてＨＮＯＴＥ（ｎ）のリリース指示の後、若しくはステップＲ１４においてＡＨＦ又はＣＦの少なくとも一方が「０」である場合、図２３のステップＲ１９においてＯＮＦ（ｎ）をリセットした後、又は、ステップＲ１６においてＲＦ（ｎ）が「０」である場合、若しくはステップＲ１７においてＭＮＯＴＥ（ｎ）のレベルが「０」でない場合には、図２３のステップＲ２０においてｎをインクリメントして次のメロディチャンネルを指定する。そして、ｎが所定数を超えたか否かを判別する（ステップＲ２１）。所定数を超えていない場合には、図２２のステップＲ２に移行して、ＯＮＴＦ（ｎ）が「１」であるか否かを判別する。一方、ｎが所定数を超えた場合には、メインフローに戻る。
【００８１】
このように、上記第４実施形態においては、通常の場合にはメロディ音の音色と同じ音色でハーモニー音の音色データを設定し、メロディ音に異なる音高の複数の音にわたって発音期間の重なりを検出した場合には、複数の音の最初の音に同期してハーモニー音の発音を指示し、残りの音については音色データに含まれるアタックデータを変更する構成になっている。
【００８２】
第４実施形態の発明によれば、メロディ音に異なる音高の複数の音にわたって発音期間の重なりがある場合において、音の重なりに適応したオートハーモナイズ効果が得られる。
【００８３】
なお、この第４実施形態においては、複数の音の発音期間が重なっていない通常の場合には、スイッチで設定されたメロディ音の音色でハーモニー音の音色データを設定する構成にしたが、この場合にも、テーブルを参照して、設定するハーモニー音の音色データをメロディ音とは異なるハーモニー音の音色データを設定する構成にしてもよい。
【００８４】
次に、第５実施形態の動作について説明する。第５実施形態において、第１実施形態における処理と同じものについては、図面及び説明は省略し、第１実施形態と異なる部分である、発音処理について説明する。また、メロディ鍵域処理については、図２０及び図２１に示した第４実施形態の処理フローと同じであるので、図面及び説明は省略する。
【００８５】
図２４及び図２５は、図２のメインフローのステップＡ６における第５実施形態の発音処理のフローである。この処理では、メロディチャンネルを指定するポインタｎを「０」にセットして（ステップＳ１）、ｎをインクリメントしながら、チャンネルごとの発音処理を行う。
【００８６】
すなわち、メロディチャンネルｎの発音開始フラグＯＮＴＦ（ｎ）が「１」であるか否かを判別し（ステップＳ２）、このフラグが「１」である場合には、ＴＯＮＥの音色データ及びＭＴＯＮＥ（ｎ）の音高データで発音開始を指示する（ステップＳ３）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別する（ステップＳ４）。この２つのフラグがともに「１」である場合、すなわちオートハーモナイズ演奏の場合には、スラーフラグＳＦ（ｎ）が「１」であるか否かを判別する（ステップＳ５）。
【００８７】
ＳＦ（ｎ）が「０」である場合には、ＡＴＯＮＥの音色データ及びＨＴＯＮＥの音高データで発音開始を指示する（ステップＳ６）。第５実施形態における音色スイッチ処理は、図６に示した第１実施形態における音色スイッチ処理と同じである。したがって、ＡＴＯＮＥの音色データは、テーブルを参照して設定した音色データである。したがって、メロディ音とは異なる音色で発音開始を指示する。そして、ＯＮＴＦ（ｎ）を「０」にリセットし（ステップＳ７）、ＯＮＦ（ｎ）を「１」にセットする（ステップＳ８）。
【００８８】
ステップＳ５において、ＳＦ（ｎ）が「１」である場合には、メロディチャンネルを指定するポインタｍを「０」にセットして（ステップＳ９）、ｍをインクリメントしながら、発音中のチャンネルがあるか否かを判別する。すなわち、ＯＮＦ（ｍ）が「１（発音中）」であるか否かを判別し（ステップＳ１０）、このフラグが「１」である場合には、そのチャンネルｍのＨＴＯＮＥ（ｍ）の発音音高をＨＮＯＴＥ（ｎ）の音高に変更する（ステップＳ１１）。すなわち、スラーの場合には、最初の音に同期してハーモニー音の発音を指示し、残りの音については発音指示をせずに、発音中のハーモニー音の音高のみを変更する。
【００８９】
音高を変更した後、又は、ステップＳ１０においてＯＮＦ（ｍ）が「０」である場合には、ｍをインクリメントして次のチャンネルを指定する（ステップＳ１２）。そして、ｍが所定数を超えたか否かを判別し（ステップＳ１３）、所定数を超えない場合には、ステップＳ１０に移行して、ＯＮＦ（ｍ）が「１」であるか否かを判別する。ステップＳ１３においてｍが所定数を超えたときは、ＯＮＴＦ（ｎ）を「０」にリセットし（ステップＳ７）、ＯＮＦ（ｎ）を「１」にセットする（ステップＳ８）。
【００９０】
ステップＳ２において、ＯＮＴＦ（ｎ）が「０」である場合には、消音開始フラグＯＦＦＴＦ（ｎ）が「１」であるか否かを判別する（ステップＳ１４）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）のリリース指示を行う（ステップＳ１５）。そして、ＯＦＦＴＦ（ｎ）を「０」にリセットして（ステップＳ１６）、リリースフラグＲＦ（ｎ）を「１」にセットする（ステップＳ１７）。次に、ＡＨＦ及びＣＦがともに「１」であるか否かを判別し（ステップＳ１８）、この２つのフラグがともに「１」である場合には、ＳＦ（ｎ）が「０」であるか否かを判別する（ステップＳ１９）。このフラグが「０」である場合には、ＨＮＯＴＥ（ｎ）のリリース指示を行う（ステップＳ２０）。
【００９１】
ステップＳ１４においてＯＦＦＴＦ（ｎ）が「０」である場合には、図２５において、ＲＦ（ｎ）が「１」であるか否かを判別する（ステップＳ２１）。このフラグが「１」である場合には、ＭＮＯＴＥ（ｎ）の音量レベルが「０（消音完了）」であるか否かを判別する（ステップＳ２２）。ＭＮＯＴＥ（ｎ）のレベルが「０」である場合には、ＲＦ（ｎ）を「０」にリセットし（ステップＳ２３）、ＯＮＦ（ｎ）を「０」にリセットする（ステップＳ２４）。
【００９２】
図２４のステップＳ８においてＯＮＦ（ｎ）をセットした後、ステップＳ２０においてＨＮＯＴＥ（ｎ）のリリース指示の後、ステップＳ１８においてＡＨＦ又はＣＦの少なくとも一方が「０」である場合、若しくはステップＳ１９においてＳＦ（ｎ）が「１」である場合、又は、図２５のステップＳ２４においてＯＮＦ（ｎ）をリセットした後、若しくはステップＳ２１においてＲＦ（ｎ）が「０」である場合、若しくはステップＳ２２においてＭＮＯＴＥ（ｎ）のレベルが「０」でない場合には、図２５のステップＳ２５においてｎをインクリメントして次のメロディチャンネルを指定する。そして、ｎが所定数を超えたか否かを判別する（ステップＳ２６）。所定数を超えていない場合には、図２４のステップＳ２に移行して、ＯＮＴＦ（ｎ）が「１」であるか否かを判別する。一方、ｎが所定数を超えた場合には、メインフローに戻る。
【００９３】
このように、上記第５実施形態においては、メロディ音とは異なる音色でメロディ音の発音に同期したハーモニー音を発音させるとともに、メロディ音に異なる音高の複数の音にわたって発音期間の重なりを検出した場合には、複数の音の最初のハーモニー音の発音を指示し、残りの音については発音中のハーモニー音の音高のみを変更する構成になっている。
【００９４】
上記構成によれば、従来のものよりも豊かな表現のオートハーモナイズ機能をもつ電子楽器を実現するとともに、複数の音にわたって発音期間の重なりがある場合に適応したオートハーモナイズ効果が得られる。
【００９５】
【発明の効果】
請求項１に記載の発明によれば、メロディ音とは異なる音色でメロディ音の発音に同期したハーモニー音を発音させるとともに、発音期間の重なりを検出した場合には、最初の音に同期してハーモニー音の発音を指示し、残りの音については音色データに含まれるアタックデータを変更してハーモニー音の発音を指示する。したがって、アタックデータを変更する簡単なデータ処理によって、従来のものよりも豊かな表現のオートハーモナイズ機能をもつ電子楽器を実現するとともに、複数の音の発音期間の重なりがある場合に適応したオートハーモナイズ効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１〜第５実施形態における電子楽器のシステムを示すブロック図。
【図２】各実施形態におけるＣＰＵの制御プログラムのメインフローチャート。
【図３】各実施形態におけるスイッチ処理のフローチャート。
【図４】各実施形態における鍵盤処理のフローチャート。
【図５】各実施形態におけるオートハーモナイズスイッチ処理のフローチャート。
【図６】第１及び第５実施形態における音色スイッチ処理のフローチャート。
【図７】各実施形態における伴奏鍵域処理のフローチャート。
【図８】第１〜第３実施形態におけるメロディ鍵域処理のフローチャート。
【図９】図８に続くメロディ鍵域処理のフローチャート。
【図１０】第１及び第３〜第５実施形態におけるオートハーモナイズ処理のフローチャート。
【図１１】第１及び第３実施形態における発音処理のフローチャート。
【図１２】図１１に続く発音処理のフローチャート。
【図１３】第２実施形態における音色スイッチ処理のフローチャート。
【図１４】第２実施形態におけるオートハーモナイズ処理のフローチャート。
【図１５】第２実施形態における発音処理のフローチャート。
【図１６】図１５に続く発音処理のフローチャート。
【図１７】図１６に続く発音処理のフローチャート。
【図１８】第３実施形態における音色スイッチ処理のフローチャート。
【図１９】第４実施形態における音色スイッチ処理のフローチャート。
【図２０】第４及び第５実施形態におけるメロディ鍵域処理のフローチャート。
【図２１】図２０に続くメロディ鍵域処理のフローチャート。
【図２２】第４実施形態における発音処理のフローチャート。
【図２３】図２２に続く発音処理のフローチャート。
【図２４】第５実施形態における発音処理のフローチャート。
【図２５】図２４に続く発音処理のフローチャート。
【符号の説明】
１  ＣＰＵ
３  プログラムＲＯＭ
４  ワークＲＡＭ
５  鍵盤
６  スイッチ
７  音源
【図１】
0003620324.tif 000002
【図２】
0003620324.tif 000003
【図３】
0003620324.tif 000004
【図４】
0003620324.tif 000005
【図５】
0003620324.tif 000006
【図６】
0003620324.tif 000007
【図７】
0003620324.tif 000008
【図８】
0003620324.tif 000009
【図９】
0003620324.tif 000010
【図１０】
0003620324.tif 000011
【図１１】
0003620324.tif 000012
【図１２】
0003620324.tif 000013
【図１３】
0003620324.tif 000014
【図１４】
0003620324.tif 000015
【図１５】
0003620324.tif 000016
【図１６】
0003620324.tif 000017
【図１７】
0003620324.tif 000018
【図１８】
0003620324.tif 000019
【図１９】
0003620324.tif 000020
【図２０】
0003620324.tif 000021
【図２１】
0003620324.tif 000022
【図２２】
0003620324.tif 000023
【図２３】
0003620324.tif 000024
【図２４】
0003620324.tif 000025
【図２５】
0003620324.tif 000026