(57)【要約】【課題】ヘテロフォニー的な音楽の演奏に適した伴奏装置、電子楽器、伴奏生成方法およびプログラムを提供する。【解決手段】各伴奏パートについて、ユーザ演奏メロディに合わせて、通常時はユーザ演奏メロディとユニゾンの旋律を発音しつつ、適宜伴奏フォーマットセット／逸脱方法指定表を参照して、同表で設定された所定の逸脱条件が満たされた場合は、ユーザ演奏メロディに基づき、通常時のユニゾン伴奏からは逸脱した種々の逸脱パターンを発音して、いわゆる西洋音楽とは異なる旋律伴奏によるヘテロフォニー的音楽の伴奏を行う。【選択図】図２
2015125344.tif 000002
【特許請求の範囲】
【請求項１】
入力される演奏情報から、所定の条件に基づいて伴奏情報を生成する伴奏情報生成手段と、
前記入力された演奏情報が所定の状態にあるか否かを判定する判定手段と、
前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように、前記伴奏情報生成手段を制御する制御手段と、
を備える伴奏装置。
【請求項２】
前記伴奏情報生成手段は、夫々異なる所定の条件に基づいて複数のパート夫々に対応する伴奏情報を生成し、
前記判定手段は、前記入力された演奏情報の状態が、前記複数のパート夫々に対応する所定の状態にあるか否かを判定し、
前記制御手段は、前記入力された演奏情報の状態が前記複数のパート夫々に対応する所定の状態のいずれかに対応すると判定された場合に、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、請求項１に記載の伴奏装置。
【請求項３】
前記伴奏装置はさらに、リズムジャンルを指定するリズムジャンル指定手段と、当該リズムジャンル指定手段により指定されるリズムジャンルに基づいたリズム情報を生成するリズム情報生成手段と、を備え、
前記判定手段は、前記入力された演奏情報の状態が、前記指定されたリズムジャンルに対応する所定の状態にあるか否かを判定し、
前記制御手段は、前記リズムジャンルに対応する所定の状態にあると判定された場合に、前記所定の条件から、前記指定されたリズムジャンルに対応して逸脱した条件に基づいて伴奏情報を生成するように制御する、請求項１または２に記載の伴奏装置。
【請求項４】
前記伴奏装置はさらに、入力される演奏情報に基づいてメロディ情報を生成するメロディ情報生成手段をさらに有する、請求項１乃至３のいずれかに記載の伴奏装置。
【請求項５】
前記制御手段は、前記所定の条件から逸脱した条件に基づく伴奏情報として、所定の効果を付与した伴奏情報を生成するように、前記伴奏情報生成手段を制御する、請求項１乃至４のいずれかに記載の伴奏装置。
【請求項６】
前記制御手段は、前記所定の条件から逸脱した条件に基づく伴奏情報として、前記入力された演奏情報と、所定の音情報とを組み合わせて伴奏情報を生成するように、前記伴奏情報生成手段を制御する、請求項１乃至５のいずれかに記載の伴奏装置。
【請求項７】
前記伴奏装置はさらに、音律を指定する音律指定手段を有し、
前記所定の音情報は、前記音律指定手段にて指定された音律に含まれるいずれかの音情報である、請求項６に記載の伴奏装置。
【請求項８】
前記伴奏情報生成手段は、前記生成される伴奏情報として、前記入力される演奏情報のユニゾンの伴奏情報を生成する、請求項１乃至７のいずれかに記載の伴奏装置。
【請求項９】
前記制御手段は、前記入力された演奏情報が所定の状態にあると判定された時点から、当該演奏情報の入力が終了する時点まで、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、請求項１乃至８のいずれかに記載の伴奏装置。
【請求項１０】
前記制御手段は、前記入力された演奏情報が所定の状態にあると判定された時点から、予め定められたタイミングまで、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、請求項１乃至８のいずれかに記載の伴奏装置。
【請求項１１】
前記判定手段は、前記入力される演奏情報の複数の状態夫々を判定可能に構成され、前記所定の状態として、前記複数種の状態を組み合わせた状態にあるか否かを判定する、請求項１乃至１０のいずれかに記載の伴奏装置。
【請求項１２】
前記請求項１から１１のいずれかに記載の伴奏装置と、
前記伴奏装置によって生成された伴奏情報に基づく楽音を発音する音源手段と、
を備える電子楽器。
【請求項１３】
伴奏装置に用いられる伴奏生成方法であって、前記伴奏装置が、
入力される演奏情報から、所定の条件に基づいて伴奏情報を生成し、
前記入力された演奏情報が所定の状態にあるか否かを判定し、
前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、伴奏生成方法。
【請求項１４】
伴奏装置として用いられるコンピュータに、
入力される演奏情報から、所定の条件に基づいて伴奏情報を生成するステップと、
前記入力された演奏情報が所定の状態にあるか否かを判定するステップと、
前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ヘテロフォニー的な音楽の演奏に適した伴奏装置、電子楽器、伴奏生成方法およびプログラムに関する。
【背景技術】
【０００２】
電子楽器は、これまで西洋音楽の演奏をより簡単な操作で実現するために発展してきている。西洋音楽は、一般的には、平均率の音律を基礎として、平均率にしたがったメロディ音の進行にともなって、特定の機能を有するコード音が付加されるとともに、必要に応じて打楽器音等のパターンも付与される。そこで、従来、自動伴奏において、単純な鍵の押鍵で、指定された自動伴奏パターンにて、押鍵数などにしたがった所望のコード名のコードを構成する楽音を発音させて、バンドやオーケストラを従えたような伴奏効果を得ることができる電子楽器が開発されている。上記コード名は、押鍵数や押鍵された鍵の音程などにより決定され、また、コードのルート音は押鍵された鍵の最低音により決定され得る。（例えば、特許文献１参照）
【０００３】
また、微分音を演奏者の意図にしたがって適切に発音でき、非西洋音楽の音律体系にしたがった楽曲の演奏が可能な電子楽器が知られている。（例えば、特許文献２参照）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５７−４６２９６号公報
【特許文献２】特許第５０４１０１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
西欧以外の、たとえば、中近東、インド、アジア、アラブなどの音楽においては、西洋音楽とは異なる独特の態様の音楽が古くから演奏されて現在に至っている。
【０００６】
このような、中近東、インド、アジア、アラブなどの音楽における特徴の一つに「ヘテロフォニー」と呼ばれる音楽の態様がある。この「ヘテロフォニー」とは、一般的に、基本的に同じ旋律を複数の楽器（声部）で演奏しつつ、一時的にある楽器が変形や装飾を施すために原旋律から離れた演奏を行うといった形の音楽形態を指している。
【０００７】
しかしながら、従来の電子楽器は、西洋音楽の演奏を念頭に置いて発展してきたものであり、かかるヘテロフォニーの音楽を演奏することを想定して作られた電子楽器は存在しなかった。さらに、中近東、インド、アジア、アラブなどの西欧以外の音楽で用いられている微分音を発音させられる電子楽器はほとんどなく、その機能も、中近東・インド・アジア・アラブ等の音律に従った演奏を行うには不十分なものであった。そのため、従来の電子楽器を用いて、かかるヘテロフォニーの音楽を演奏しようとした場合には、複数の楽器（声部）をそれぞれ別々に演奏しなければならない等、演奏が困難であるという問題点があった。
【０００８】
本発明は、かかる問題点に鑑みなされたものであり、ヘテロフォニー的な音楽の演奏に適した伴奏装置、電子楽器、伴奏生成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の一態様の伴奏装置は、入力される演奏情報から、所定の条件に基づいて伴奏情報を生成する伴奏情報生成手段と、前記入力された演奏情報が所定の状態にあるか否かを判定する判定手段と、前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように、前記伴奏情報生成手段を制御する制御手段と、を備えたことを特徴とする。
【００１０】
また、本発明の一態様の伴奏装置は、前記伴奏情報生成手段は、夫々異なる所定の条件に基づいて複数のパート夫々に対応する伴奏情報を生成し、前記判定手段は、前記入力された演奏情報の状態が、前記複数のパート夫々に対応する所定の状態にあるか否かを判定し、前記制御手段は、前記入力された演奏情報の状態が前記複数のパート夫々に対応する所定の状態のいずれかに対応すると判定された場合に、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御することを特徴とする。
【００１１】
また、本発明の一態様の伴奏装置はさらに、リズムジャンルを指定するリズムジャンル指定手段と、当該リズムジャンル指定手段により指定されるリズムジャンルに基づいたリズム情報を生成するリズム情報生成手段と、を備え、前記判定手段は、前記入力された演奏情報の状態が、前記指定されたリズムジャンルに対応する所定の状態にあるか否かを判定し、前記制御手段は、前記リズムジャンルに対応する所定の状態にあると判定された場合に、前記所定の条件から、前記指定されたリズムジャンルに対応して逸脱した条件に基づいて伴奏情報を生成するように制御することを特徴とする。
【００１２】
また、本発明の一態様の伴奏装置は、入力される演奏情報に基づいてメロディ情報を生成するメロディ情報生成手段をさらに有することを特徴とする。
【００１３】
また、本発明の一態様の伴奏装置は、前記制御手段は、前記所定の条件から逸脱した条件に基づく伴奏情報として、所定の効果を付与した伴奏情報を生成するように、前記伴奏情報生成手段を制御することを特徴とする。
【００１４】
また、本発明の一態様の伴奏装置は、前記制御手段は、前記所定の条件から逸脱した条件に基づく伴奏情報として、前記入力された演奏情報と、所定の音情報とを組み合わせて伴奏情報を生成するように、前記伴奏情報生成手段を制御することを特徴とする。
【００１５】
また、本発明の一態様の伴奏装置はさらに、音律を指定する音律指定手段を有し、前記所定の音情報は、前記音律指定手段にて指定された音律に含まれるいずれかの音情報であることを特徴とする。
【００１６】
また、本発明の一態様の伴奏装置は、前記伴奏情報生成手段は、前記生成される伴奏情報として、前記入力される演奏情報のユニゾンの伴奏情報を生成することを特徴とする。
【００１７】
また、本発明の一態様の伴奏装置は、前記制御手段は、前記入力された演奏情報が所定の状態にあると判定された時点から、当該演奏情報の入力が終了する時点まで、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御することを特徴とする。
【００１８】
また、本発明の一態様の伴奏装置は、前記制御手段は、前記入力された演奏情報が所定の状態にあると判定された時点から、予め定められたタイミングまで、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御することを特徴とする。
【００１９】
また、本発明の一態様の伴奏装置は、前記判定手段は、前記入力される演奏情報の複数の状態夫々を判定可能に構成され、前記所定の状態として、前記複数種の状態を組み合わせた状態にあるか否かを判定することを特徴とする。
【００２０】
また、本発明の一態様の電子楽器は、上記伴奏装置と、前記伴奏装置によって生成された伴奏情報に基づく楽音を発音する音源手段とを備えることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、ヘテロフォニー的な音楽の演奏に適した電子楽器、電子楽器の制御方法およびプログラムを実現することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明の実施の形態にかかる電子楽器の外観を示す図である。
【図２】図２は、本発明の実施の形態にかかる電子楽器のハードウェア構成を示すブロックダイヤグラムである。
【図３】図３は、アラビア音楽における旋律体系であるマカーム（Ｍａｑｕａｍ）のうち、「マカーム・バヤティ（Ｍａｑｕａｍ Ｂａｙａｔｉ）」にしたがった音律を示す楽譜である。
【図４】図４は、「マカーム・バヤティ」で演奏される曲の例を示す図である。
【図５】図５は、他のマカームにしたがった音律の例を示す図であり、図５（ａ）は、「マカーム・スィカ（Ｍａｑｕａｍ Ｓｉｋａｈ）」、図５（ｂ）は、「マカーム・フザム（Ｍａｑｕａｍ Ｈｕｚａｍ）」の例を示す。
【図６】図６は、西洋音楽における和声伴奏を行っている楽曲の例を示す図である。
【図７】図７は、部分的に旋律伴奏的な部分を伴う楽曲の例を示す図である。
【図８】図８は、本実施の形態にかかる伴奏フォーマットセット／逸脱方法指定表のうち、ノーマルパターンの場合の一例を示す図である。
【図９】図９は、本実施の形態にかかる伴奏フォーマットセット／逸脱方法指定表のうち、ソロパターンの場合の一例を示す図である。
【図１０】図１０は、本実施の形態にかかる伴奏フォーマットセット／逸脱方法指定表のうち、フィルインパターンの場合の一例を示す図である。
【図１１】図１１は、ドラムパターン（リズムパターン）の例を示す楽譜である。
【図１２】図１２は、ドローンパターンの例を示す楽譜である。
【図１３】図１３は、メロディ逸脱パターンの具体例を示す図である。
【図１４】図１４は、逸脱トリガーの条件の具体例を示す図である。
【図１５】図１５は、プラルトリラーの例を示す楽譜である。
【図１６】図１６は、本実施の形態にかかる電子楽器１０において実行されるメインフローの例を示すフローチャートである。
【図１７】図１７は、ヘテロフォニー演奏を行うための自動伴奏処理の例を示すフローチャートである。
【図１８】図１８は、メロディ逸脱トリガー検出処理の例を示すフローチャート（１ページ目）である。
【図１９】図１９は、メロディ逸脱トリガー検出処理の例を示すフローチャート（２ページ目）である。
【図２０】図２０は、メロディ逸脱処理の例を示すフローチャートである。
【図２１】図２１は、図１３の逸脱パターンａ「デチューン５％アップ」、逸脱パターンｂ「１６分音符分ディレイ」、逸脱パターンｃ「ベロシティ１０％アップ」、逸脱パターンｋ「音域指定」の各逸脱パターンの実施例を示すフローチャートである。
【図２２】図２２は、図１３の逸脱パターンｆ「トレモロ／バッテリー奏法」、逸脱パターンｇ「メロディと開始音を交互に発音」、逸脱パターンｈ「持続メロディへのトリル挿入」、逸脱パターンｉ「同音連打」の各逸脱パターンの実施例を示すフローチャートである。
【図２３】図２３は、逸脱パターンｆ「トレモロ／バッテリー奏法」または逸脱パターンｇ「メロディと開始音を交互に発音」の場合の逸脱パターン生成処理の例である。
【図２４】図２４は、逸脱パターンｈ「持続メロディへのトリル挿入」の場合の逸脱パターン生成処理の例である。
【図２５】図２５は、図１３の逸脱パターンｄ「上からのプラルトリラー」、逸脱パターンｅ「メロディ音に到達するアルペジォ」、逸脱パターンｌ「ジンスの倚音追加」の各逸脱パターンの実施例を示すフローチャートである。
【図２６】図２６は、逸脱パターンｌ「ジンスの倚音追加」の場合の逸脱パターン生成処理の例である。
【図２７】図２７は、図１３の逸脱パターンｊ「おかず挿入」の逸脱パターンの実施例を示すフローチャートである。
【図２８】図２８は、種々のフィルインパターンの特徴を説明するテーブルである。
【発明を実施するための形態】
【００２３】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本発明の実施の形態にかかる電子楽器の外観を示す図である。図１に示すように、本実施の形態にかかる電子楽器１０は、演奏操作子としての鍵盤１００を有する。また、鍵盤１００の上部には、音色指定ボタン１１、自動伴奏開始・終了指示ボタン１２、リズムジャンル選択ボタン１３、各リズムジャンルにおけるリズムのパターン（エレメント）の指定などを行なうためのリズムエレメント指定ボタン１４や、演奏される楽曲に関する種々の情報、たとえば、音色、リズムパターン、コード名などを表示する表示部１５を有する。また、本実施の形態にかかる電子楽器１０は、ヘテロフォニー的な自動伴奏を付加する際のテンポを設定するテンポ設定ボタン１６を有する。
【００２４】
また、本実施の形態にかかる電子楽器１０は、たとえば、８８個の鍵（Ａ１〜Ｃ８）を有する。また、電子楽器１０は、自動伴奏をオンする自動伴奏モード、および、自動伴奏をオフにする通常モードの２つの演奏モードのうち、何れかの下での演奏が可能である。この切り替えは、自動伴奏開始・終了指示ボタン１２によって行うことができる。また、本実施の形態にかかるヘテロフォニー演奏を行う際には、鍵盤１００が２つの領域１０１と１０２に分割（スプリット）される。１０１はユーザが主に左手で、現在のジンス（音律）を指定するジンス指定鍵盤、１０２はユーザが主に右手で、ヘテロフォニー音楽の主旋律を演奏するメロディ演奏用鍵盤である。さらに、本実施の形態にかかる電子楽器で、従来の西洋音楽的な自動伴奏等を実現するノーマルモードと、ヘテロフォニー音楽的な自動伴奏等を実現するヘテロフォニーモードとを切り替えるためのモード切替スイッチを備えていても良い。
【００２５】
図２は、本発明の実施の形態にかかる電子楽器のハードウェア構成を示すブロックダイヤグラムである。図２に示すように、本実施の形態にかかる電子楽器１０は、ＣＰＵ２１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３、サウンドシステム２４、スイッチ群２５、鍵盤１００および表示部１５を備える。
【００２６】
ＣＰＵ２１は、電子楽器１０全体の制御、鍵盤１００の鍵の押鍵やスイッチ群２５を構成するスイッチの操作の検出とそれによる設定等のＲＡＭ２３への一時記憶、鍵やスイッチの操作にしたがったサウンドシステム２４の制御、自動伴奏パターンにしたがった自動伴奏の演奏など、種々の処理を実行する。また、ＣＰＵ２１は、本発明の実施の形態にかかる、メロディ逸脱の各条件を判定するメロディ逸脱トリガー検出処理を実行する逸脱条件判定部、それらの逸脱トリガーに基づいて実際のメロディ逸脱処理を行う逸脱処理部、さらにユーザ演奏メロディや逸脱処理された各種の楽器パートを実際に発音させる音源発音処理を行う発音指示部を備えている。
【００２７】
ＲＯＭ２２は、ＣＰＵ２１に実行させる種々の処理、たとえば、スイッチの操作、鍵盤の何れかの鍵の押鍵、押鍵に応じた楽音の発音、さらに上記のメロディ逸脱トリガー検出処理、メロディ逸脱処理、音源発音処理などの各種の処理を実行させるプログラムを記憶する。また、ＲＯＭ２２は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した音色波形データ記憶部、および、本実施の形態にかかる逸脱などの条件を格納した伴奏フォーマットセット／逸脱方法指定表の記憶部、伴奏フォーマットセット／逸脱方法指定表で指定されるドラムパターンの実際のリズムパターンを記憶するドラムパターン記憶部、メロディ逸脱でフィルインを挿入する場合のフィルインパターンを記憶するフィルインパターン記憶部、伴奏用のドローンのパターンを記憶するドローンパターン記憶部、さらにプラルトリラーなどの所定の逸脱パターンを記憶する逸脱パターン記憶部などを備えている。これらのドラムパターンやフィルインパターン、ドローンパターン、逸脱パターンなどの各種パターンは、楽音の音色、音高、発音タイミング（発音時刻）、音長などを含むデータ形式（例えばＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）形式）のデータや、波形データ形式（例えばＷＡＶデータやＭＰ３データ等）のデータとして記憶することが可能である。また、ＲＯＭ２２は、予め定められた所定の音律パターン（トリコルド、テトラコルド、ペンタコルド）のデータと、前記音律パターンを組み合わせた旋律体系（マカーム／ジンス）のデータ（旋律体系データ）が格納されている。
【００２８】
ＲＡＭ２３は、ＲＯＭ２２から読み出されたプログラムや、処理の過程で生じたデータを記憶する。例えば、ＲＡＭ２３には、リズムジャンル選択ボタン１３によって選択されたリズムジャンルを記憶するリズムジャンル記憶部、リズムエレメント指定ボタン１４によって指定されたリズムのパターン（エレメント）を記憶するリズムパターン（エレメント）記憶部、テンポ設定ボタン１６によって設定されたテンポを記憶するテンポ記憶部、メロディ逸脱トリガー検出処理によって判定された各逸脱条件のフラグを記憶する逸脱トリガー記憶部などを有する。
【００２９】
サウンドシステム２４は、音源部２６、オーディオ回路２７およびスピーカ２８を有する。音源部２６は、たとえば、音色情報や、押鍵された鍵についての情報或いはリズムパターン、逸脱パターン等についての情報をＣＰＵ２１から受信すると、ＲＯＭ２２の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部２６は、ＣＰＵ２１から受信した波形データを、そのまま楽音データとして出力することもできる。オーディオ回路２７は、楽音データをＤ／Ａ変換して増幅する。これによりスピーカ２８から音響信号が出力される。
【００３０】
スイッチ群２５は、図１に示した、音色指定ボタン１１、自動伴奏開始・終了指示ボタン１２、リズムジャンル選択ボタン１３、リズムエレメント指定ボタン１４、テンポ設定ボタン１６、などの種々のボタンを有し、これらのボタンのＯＮ／ＯＦＦ操作を検知して、操作されたボタンの種類情報と共にＣＰＵ２１に通知する。
【００３１】
本実施の形態にかかる電子楽器１０は、通常モードの下においては、鍵盤１００の鍵の押鍵に基づいて楽音を発生する。その一方、電子楽器１０は、モード切替スイッチによってヘテロフォニー的な自動伴奏を行うヘテロフォニーモードにセットした上で、自動伴奏開始・終了指示ボタン１２を操作することにより、ヘテロフォニー自動伴奏モードとなる。なお、この場合、例えば、リズムジャンル選択ボタン１３によって選択されたリズムに応じて、自動的にヘテロフォニー自動伴奏モードになることとしてもよい。ヘテロフォニー自動伴奏モードにおいては、メロディ演奏用鍵盤１０２の鍵の押鍵によりユーザ演奏メロディが演奏されると、その鍵に応じた音高の楽音が発音される。その際、ジンス指定鍵盤１０１で指定されたジンスや、あらかじめ設定されているマカームに応じた音高で発音される。また、伴奏フォーマットセット／逸脱方法指定表等を参照して、各伴奏パートについて、通常時は基本的にユーザ演奏メロティとユニゾンで旋律を発音しつつ、逸脱条件が満たされた場合には、通常時の「ユニゾンによる伴奏」という条件からは逸脱して、ユーザ演奏メロディに基づいて以下に説明する各種の逸脱を施した逸脱パターンが発音される。これにより、ユーザがメロディを演奏すると、ヘテロフォニー的な伴奏を付加したヘテロフォニー音楽が簡単に演奏できることとなる。
【００３２】
以下、非西洋音楽の旋律体系、および、本実施の形態においてＲＯＭ２２に格納される伴奏フォーマットセット／逸脱方法指定表等のデータベース、音律パターンのデータおよび旋律体系のデータ、各種逸脱パターン等について説明する。なお、以下で説明しているマカームやジンスの各データについても、本実施の形態のＲＯＭ２２の所定の領域に、マカーム／ジンス用データベースとして記憶されているものとする。
【００３３】
西洋音楽においては、中世まではグレゴリオ聖歌に代表されるようなモノフォニー音楽であったが、その後、多声部から構成されるポリフォニー音楽を経て、現在では和声に裏打ちされた音楽が主流となっている。しかしながら、欧米以外、たとえば、中東、アジア、アフリカなどの地域では、モノフォニー音楽、およびそれが発展したヘテロフォニー音楽が現在でもしばしば演奏される。このモノフォニー音楽やヘテロフォニー音楽では、単旋律を細かい音律にしたがって変化させるスタイルが一般的である。
【００３４】
図３は、アラビア音楽における旋律体系であるマカーム（Ｍａｑｕａｍ）のうち、「マカーム・バヤティ（Ｍａｑｕａｍ Ｂａｙａｔｉ）」にしたがった音律を示す楽譜である。この「マカーム・バヤティ」は、６つの４音音律（テトラコルド）に分解され得る。「マカーム」は、テトラコルド、トリコルドなどの一定の音律パターンである「ジンス（Ｊｉｎｓ）」を組み合わせて構成される。なお、音律パターンは、アラビア音楽においては「ジンス」と称され、他の地域（たとえば、旧ペルシャの地域）では「グーシェ」と称される。
【００３５】
図３に示す「マカーム・バヤティ」の場合は６つのジンスから構成される。図３の第１小節のジンス（第１ジンス）は「バヤティ（Ｂａｙａｔｉ）」、第２小節のジンス（第２ジンス）は「ラスト（Ｒａｓｔ）」、第３小節のジンス（第３ジンス）は「バヤティ」、第４小節のジンス（第４ジンス）は「バヤティ」、第５小節のジンス（第５ジンス）は「ナハワンド（Ｎａｈａｗａｎｄ）」、第６小節のジンス（第６ジンス）は「バヤティ」である。また、第１ジンス〜第３ジンスは上行音型であり、第４ジンス〜第６ジンスは下行音型である。これらジンスは、４音音律であるテトラコルドである。
【００３６】
図３において、「♭（フラット）」に斜線が引かれている部分は（符号３１１〜３１５参照）、その音が単に♭が付されている場合と比較して約１／４音だけ高いことを意味している。たとえば、第１ジンスの第２音は、「Ｅ♭」より約１／４音だけ高い楽音である。したがって、全音の音の幅を「１」とすると、第１ジンスの第１音と第２音との間、第２音と第３音との間は、それぞれ、「３／４」となる。図３において、音符間の下に記載されている数字（たとえば、符号３０１、３０２参照）は、全音の幅を「１」としたときの、当該隣接する音符間の幅を示している。なお、実際の「マカーム・バヤティ」では、厳密には１／４音の変化ではないが、その変化はほぼ１／４音であることから、本明細書では、これを１／４音として表している。
【００３７】
このように、アラビア音楽におけるマカームにしたがって、電子楽器を演奏する場合には、上記ジンスにしたがって、必要に応じて押鍵された鍵より１／４音高い楽音を発音すれば良い。ところが、図３に示すように、「マカーム・バヤティ」では、使用するジンスによって、同一の鍵を押鍵した場合であっても異なる音高の楽音が発音されることがある。図３に示す「マカーム・バヤティ」において、第２ジンスの第３音（符号３２１参照）を演奏したい場合には、演奏者は、「Ｂ♭」の鍵を押鍵して、電子楽器では、「Ｂ♭」より１／４音だけ高い音高の楽音を発音する必要がある。その一方、第５ジンスの第２音（符号３２２参照）を演奏したい場合にも演奏者は「Ｂ♭」の鍵を押鍵し、電子楽器は押鍵されたとおりに「Ｂ♭」の音高の楽音を発音する必要がある。
【００３８】
図４は、「マカーム・バヤティ」で演奏される曲の例を示す図である。この曲では、第２小節は「ラスト」にしたがっており、その一方、第３小節は「ナハワンド」にしたがっている。したがって、第２小節の第３音の音高は、「Ｂ♭」より１／４音だけ高くなり（符号４０１参照）、第２小節の第１音の音高は、「Ｂ♭」となる（符号４０２参照）。
【００３９】
図５は、他のマカームにしたがった音律の例を示す図であり、図５（ａ）は、「マカーム・スィカ（Ｍａｑｕａｍ Ｓｉｋａｈ）」、図５（ｂ）は、「マカーム・フザム（Ｍａｑｕａｍ Ｈｕｚａｍ）」を示す。図５（ａ）に示すように、「マカーム・スィカ」の第１小節のジンス（第１ジンス）は「スィカ（Ｓｉｋａｈ）」、第２小節のジンス（第２ジンス）は「ラスト（Ｒａｓｔ）」、第３小節のジンス（第３ジンス）は「ラスト」、第４小節のジンス（第４ジンス）は「スィカ」、第５小節のジンス（第５ジンス）は「ナハワンド（Ｎａｈａｗａｎｄ）」、第６小節のジンス（第６ジンス）は「スィカ」である。また、第１ジンス〜第３ジンスは上行音型であり、第４ジンス〜第６ジンスは下行音型である。ここでも、第２ジンスの第３音（符号５０１参照）と第５ジンスの第２音（符号５０２参照）との間で、同一の鍵を押鍵した場合の問題が生じ得る。
【００４０】
図５（ｂ）に示すように、「マカーム・フザム」の第１小節のジンス（第１ジンス）は「スィカ（Ｓｉｋａｈ）」、第２小節のジンス（第２ジンス）は「ヒジャーズ（Ｈｉｊａｚ）」、第３小節のジンス（第３ジンス）は「ラスト」、第４小節のジンス（第４ジンス）は「スィカ」、第５小節のジンス（第５ジンス）は「ナハワンド（Ｎａｈａｗａｎｄ）」、第６小節のジンス（第６ジンス）は「スィカ」である。また、第１ジンス〜第３ジンスは上行音型であり、第４ジンス〜第６ジンスは下行音型である。
【００４１】
なお、「マカーム・スィカ」および「マカーム・フザム」にて用いられるジンス「スィカ」は、３音音律であるトリコルドである。また、図５（ａ）、（ｂ）において「スィカ」が適用される小節の末尾の休符（たとえば、符号５１１、５１２参照）は、便宜上記載したもので、「スィカ」にしたがって演奏する際に末尾に休符を入れることを意味しているものではない。
【００４２】
このように、欧米以外の、中東（アラビア）、アジア、アフリカなどの地域でしばしば演奏されるモノフォニー音楽やヘテロフォニー音楽では、いくつかのジンスが組み合わされたマカームに従った音律で、楽曲が演奏される。
【００４３】
そしてさらに、このようなマカームに従って演奏される音楽のうちでも特に広く演奏されるヘテロフォニー音楽では、複数のパートにより基本的に同じ旋律を複数の楽器（声部）で演奏しつつ、一時的にある楽器が変形や装飾を施すために原旋律から離れた演奏を行うことによって、合奏的な演奏が行われるといったことが一般的に行われる。このようなヘテロフォニー音楽における伴奏の形態は、いわゆる西洋音楽における和声伴奏とは異なり、「旋律伴奏」といった形の伴奏が行われることが一般的である。
【００４４】
図６に、西洋音楽における和声伴奏を行っている楽曲の例を、また図７に、部分的に旋律伴奏的な部分を伴う楽曲の例を示す。
【００４５】
図６は、和声伴奏の例として、ドイツ国歌（ハイドン作曲の弦楽四重奏曲の一節）を示している。この楽曲では、最上音がメロディであり、これに対してその下の音によって和音が付加され、いわゆる西洋音楽的な和音伴奏を構成している。
【００４６】
これに対して、図７に示した「君が代」の例では、第１パート（上段の五線譜）の最上音がメロディであるのに対し、第２パートが、第１パートと同型の旋律を奏でつつ、ところどころで逸脱して伴奏を行っていることが見て取れる。なお、図７の「君が代」は、正確には「ヘテロフォニー音楽」とはいえないが、曲の一部において、ユニゾンの部分や旋律伴奏的な部分をもつことから、旋律伴奏的な部分をもつ広く知られた曲の例として、説明の便宜のためここで取り上げたものである。
【００４７】
例えば、図７の第１小節から第２小節では、第１パートと第２パートはそれぞれ同じ旋律をユニゾンで演奏しているのに対し、第３小節、第４小節などでは、第２パートは、第１パートのメロディ旋律からは逸脱して、第１パートとは異なる旋律によって伴奏的な役割を担っている。
【００４８】
そして、図７の場合は、第１０小節の３拍目から第１１小節めの曲の終わりにかけて、再び第１パートと第２パートがユニゾンで同じメロディ旋律を奏でる形に戻っている。
【００４９】
従来の自動伴奏を行う電子楽器では、もっぱら図６に示したような西洋音楽的な和音伴奏を行う電子楽器が主であり、この図７のような楽曲中の旋律伴奏を行っている部分において、ユーザが第１パートの最上音のメロディを演奏した場合に、他のパートを自動的に付加して自動伴奏を行うといった機能を実現することは困難であった。
【００５０】
本実施の形態にかかる電子楽器１０においては、上記のヘテロフォニー音楽における自動伴奏を実現するために、伴奏フォーマットセット／逸脱方法指定表の各データベースをＲＯＭ２２に格納している。
【００５１】
図８から図１０は、本実施の形態にかかる伴奏フォーマットセット／逸脱方法指定表の一例である。図８では、ノーマルパターン時の一例を、図９ではソロパターン時の一例を、図１０ではフィルインパターン時の一例を、それぞれ示している。以下では、特に必要が無い場合は図８の場合を例に説明を行うが、図９や図１０の場合も同様である。
【００５２】
図８から図１０の各図に示すように、伴奏フォーマットセット／逸脱方法指定表のデータベース（符号８００、９００、１０００参照）には、それぞれ、リズムジャンル名８１０およびパート名８２０ごとに、通常時（基本動作指定）の指定としての音色８３０、音域／ドラムパターン８４０、メロディとのｄｅｔｕｎｅ（デチューン）８５０、ドローン８６０などの項目のデータ（各楽器毎の伴奏情報生成の条件）を有しており、さらに、メロディ逸脱方法として、逸脱パターンごとに、その逸脱パターンを実行する場合の条件が定められるメロディ逸脱方法の項目のデータ８７０を有している。また、通常時にユニゾン伴奏を行うパート（楽器）について、オクターブ変更したユニゾン伴奏（ユーザ演奏メロディから所定オクターブ移動した音による伴奏）を行うよう条件設定がされていても良い。
【００５３】
図８の例では、メロディ逸脱方法８７０としてパターンａからパターンｌの１２パターンが例示されている。これらのメロディ逸脱方法の各パターンの具体的な内容については後述する。
【００５４】
また図８の例では、リズムジャンル名８１０として、「アダニ（ａｄａｎｉ）」、「バラディ（Ｂａｒａｄｉ）」、「マルフーフ（Ｍａｌｆｕｆ）」の例を示している。これらは、それぞれ、アラビア音楽におけるリズムパターンのジャンル（リズムの種類）を表すものである。本実施の形態にかかる電子楽器１０は、リズムジャンル選択ボタン１３によって所望のリズムジャンルが選択されると、その選ばれたリズムジャンルにかかる伴奏フォーマットセット／逸脱方法指定表のデータを参照して以下の動作を行う。
【００５５】
なお、このリズムジャンル選択ボタン１３は、例えば、従来の自動伴奏機能の付いた電子楽器において、「ロック」や「バラード」「ポップス」などのリズムジャンルを選択するボタンと共用とすることができる。この場合、例えば、ノーマルモードと、ヘテロフォニーモード（アラブ音楽モード等でもよい）とを切り替えるスイッチを別に設け、このモード切替スイッチの操作状態に応じて、どちらかのリズムジャンルが選択されるように構成することが可能である。すなわち、同じリズムジャンル選択ボタン１３が押下された場合に、モード切替スイッチの状態に応じて、例えば「ロック」と「ａｄａｎｉ」のいずれかのリズムジャンルが選択されるようにすることができる。他方、リズムジャンル選択ボタン１３を共用とはせずに、リズムジャンル選択ボタン１３によって選択されたリズムジャンルに応じて、自動的に、ヘテロフォニーモードになるようにしても良い。例えば、「ロック」ボタンが選択された場合はノーマルモード、「Ｂａｒａｄｉ」ボタンが選択された場合は自動的にヘテロフォニーモードになる等である。
【００５６】
リズムジャンル選択ボタン１３によって、ヘテロフォニーモードにおけるあるリズムジャンルが選択された後、ユーザが自動伴奏開始・終了指示ボタン１２により自動伴奏の開始を指示すると、本実施の形態にかかる電子楽器１０は、図８から図１０のような伴奏フォーマットセット／逸脱方法指定表のデータベースを参照しながら、ユーザの演奏するメロディパートに合わせて他のパートの演奏を自動的に行って、ヘテロフォニー音楽の伴奏を行う。
【００５７】
すなわち、ドラムパートなどの所定のパートで、選択されたリズムジャンルのリズム演奏を行うとともに、他の伴奏パートでは、基本的にユーザの演奏するメロディと同じ旋律を演奏しつつ、ある条件が満たされた場合には、一時的にある楽器が変形や装飾を施すためにメロディ（原旋律）から逸脱した演奏を行って、ヘテロフォニー音楽を実現させる。
【００５８】
この場合において、ユーザが例えば右手でメロディの演奏を行いつつ、左手でリズムエレメント指定ボタン１４を操作することにより、ノーマルパターン、ソロパターン、フィルインパターンなどのリズムのパターン（エレメント）を指定することができる。本実施の形態にかかる電子楽器１０は、指定されたリズムのパターン（エレメント）に応じて、図８から図１０の伴奏フォーマットセット／逸脱方法指定表のうち適切なものを参照して、指定されたリズムのパターン（エレメント）に合った演奏を行う。
【００５９】
また、伴奏を行う各パート名８２０とそれに対応する音色８３０として、図８の例では、各リズムジャンルごとに５つのパート（音色）で伴奏を行う場合の例が示されている。
【００６０】
例えば図８では、各リズムジャンルに共通して、ドラムに相当する打楽器として「ダルブッカ」という打楽器の音色を、また、ベースに相当する楽器として「ウッドベース」の音色を用いることが示されている。
【００６１】
また、伴奏パート１から３について、伴奏パート１は「ウード」という楽器の音色を、伴奏パート２は「ナイ」という楽器の音色を用いることが指定されている。さらに、伴奏パート３としては、リズムジャンルに応じて、「バイオリン」の音色と「ストリングス」の音色とを切り替えて用いることが指定されている。実際には、これらの各楽器音は、ＲＯＭ２２に格納されている音色のうち、いずれの音色であるかを指定する番号等が記憶されている等により音色が指定され、この指定された音色毎の波形を読み出して、メロディに合わせて、あるいは以下で説明する各種逸脱パターンで指定された音に調整されて、サウンドシステム２４を通して発音される。
【００６２】
もちろん、これらの音色の指定は、リズムジャンル毎、またパート毎に、自由に指定することができる。また、伴奏を行うパート数についても、必ず一定のパート数でなければならないというものでもなく、リズムジャンルに応じて任意の数のパートを用いるよう指定しておくことが可能である。
【００６３】
また、図８では、「音域／ドラムパターン８４０」の項目において、各パートごとに音域（オクターブ）の指定や、ドラムパートについては使用するドラムパターンの指定が含まれている。ここで、音域として「０」と指定されているのは、通常通りの音域（ユーザ演奏メロディのオクターブにて登録されている音色のオクターブそのまま）で発音することを表している。
【００６４】
一方図９や図１０では、リズムエレメント指定ボタン１４によってソロパターンが指定された場合（図９）や、フィルインパターンが指定された場合（図１０）などに、それぞれ表９００や表１０００に従って、音域を変化させて演奏することを示している。例えば、これらの表中の音域データが「−１」であった場合は、該当するパートの音を１オクターブ下げた音で発音するようにする。また、「＋１」であった場合は１オクターブ上げて演奏し、「＋２」の場合は２オクターブ上げて演奏し、「−２」の場合は２オクターブ下げて演奏することを表す。
【００６５】
例えば、図９の場合、リズムジャンル「ａｄａｎｉ」において、ソロパターンが指定された場合には、伴奏パート１の「ウード」と、ベースパートの「ウッドベース」が、それぞれ、１オクターブ低い音域で演奏されるということを表している。
【００６６】
また、ドラムパートについてのこの「音域／ドラムパターン８４０」の項目では、「ダルブッカ」の音色で演奏されるドラムパターンの番号が指定されている。ここで、「Ａ０２」、「Ａ０３」「Ａ０７」等で示されているのは、ドラムパターン番号である。このドラムパターンの例を図１１に示す。
【００６７】
なお、図１１において、音程の違いは、例えば一般的なＭＩＤＩ音源におけるドラムセットなどのように、各音程に対応する音色（サンプリング音）が鳴るようになっているものとしてもよい。例えば、Ｃ４（ト音記号下第一線の音）は、ダルブッカをオープンにしたときの音色、Ｆ４（ト音記号第一間の音）は、ダルブッカをクローズにしたときの音色、などのようにしてリズムパターンのバラエティを付けることが可能である。
【００６８】
さらに、図８の「メロディとのｄｅｔｕｎｅ（デチューン）８５０」の項目において、各楽器のデチューン幅をあらかじめ設定しておくことが可能である。
【００６９】
デチューンとは、各楽器の音色の音高のチューニングの幅を指定するものである。従来より、電子楽器においては、半音の１００分の１の音高幅（すなわち、半音の１％の音高幅）を「１セント」と称して、この値を指定することにより各楽器音のチューニングが可能となっている。図８の「メロディとのｄｅｔｕｎｅ８５０」の値は、この「セント」単位でのチューニング幅を表しているものである。
【００７０】
例えば、図８の「ａｄａｎｉ」のリズムパターンの場合、伴奏パート１の「ウード」はメロディより２セント低い音で演奏され、伴奏パート２の「ナイ」は３セント高い音で演奏され、伴奏パート３の「バイオリン」は５セント高い音で演奏されるよう指定されている。
【００７１】
上述のように、ヘテロフォニー音楽では、複数のパートにより基本的に同じ旋律を複数の楽器（声部）で演奏しつつ、一時的にある楽器が逸脱をするといった形式が一般的であるので、複数の楽器が同じ旋律を演奏する場合が多い。このため、図８のように各楽器毎に多少のチューニングの差異をつけて、音に広がりを持たせる等の効果を得るようにすることが望ましい場合があるからである。
【００７２】
また、図８には図示していないが、同様に、各楽器毎にパンの設定をする項目を設けて、各楽器の定位をパートごとに変えるように設定して、さらに音の広がりを得られるように設定することも可能である。この場合、楽器ごとに、例えば、センターを０として、左右に最大−６４〜＋６３までの値によって定位の位置を指定するようにすることが可能である。
【００７３】
さらに図８の「ドローン８６０」の項目においては、民族音楽などによく見られる「ドローン」を演奏する場合のドローンのパターン番号が指定されている。
【００７４】
「ドローン」とは、比較的単調で持続する音を演奏することをいう。低音で演奏される場合が多く、インドの音楽でしばしばみられる主音と５度の音を繰り返し演奏して持続させる音などが該当する。また、バグパイプでは、ファ（Ｆ）の音等、一定の低音の持続音を鳴らし続ける場合があるが、これなどもドローンの一種と考えられる。さらに、オルゲンプンクトなども、ドローンの一種と言える。
【００７５】
このドローンのパターンの例を図１２に示す。本実施の形態においては、図９のソロパターンの場合や、図１０のフィルインパターンの場合にドローンが指定されている例を示している。ここで、「ｐ１０」、「ｐ１５」、「ｐ１２」は、ドローンのパターン番号を表している。実際には、例えば図１２のドローンパターン（例１）がｐ１０として、またドローンパターン（例２）がｐ１５として、ＲＯＭ２２中のドローンパターン記憶エリアにＭＩＤＩ形式で記憶される等して実現される。
【００７６】
また、図８の「メロディ逸脱方法８７０」の項目では、各種のメロディ逸脱パターンａ〜ｌに対して、その逸脱を行う条件を示している。この「メロディ逸脱方法８７０」の、各メロディ逸脱パターンａ〜ｌの具体例を図１３に示す。また、図１４に、各種メロディ逸脱パターンを実行する条件を細分化した、個別の「逸脱トリガー」の例を示す。
【００７７】
本実施の形態にかかる電子楽器１０は、図８の「メロディ逸脱方法８７０」の欄を参照し、各マス目に条件として示されている「逸脱トリガー」の条件が満たされた場合に、該当するマス目の逸脱方法（ａ〜ｌ）を該当するパートによって演奏する。
【００７８】
例えば、リズムジャンル選択ボタン１３によってリズムジャンル「ａｄａｎｉ」が選択されている場合であって、リズムエレメント指定ボタン１４により「ノーマルパターン」が指定されている場合、図８の表８００における「ａｄａｎｉ」の「メロディ逸脱方法８７０」の欄が参照される。
【００７９】
そして、ユーザの演奏するメロディ等の状況が、例えば、図１４に示す「逸脱トリガー」のうち、トリガーナンバー１「メロディVelocityが直前より大きくなった」の条件と、トリガーナンバー８「メロディが半拍以上延びている」の条件がともに満たされた場合に、伴奏パート１「ウード」の音色で、図１３に示した逸脱パターン「ｉ」、すなわち「同音連打」の逸脱を行うことが指定されている。
【００８０】
以下に、図１３のメロディ逸脱パターンの各例ａ〜ｌの具体的な内容を説明する。
【００８１】
逸脱パターン「ａ」は、「ｄｅｔｕｎｅ  ５％ｕｐ」である。これは、当該逸脱パターンａが指定されたパートについて、図８でそのパートについて設定されている「メロディとのｄｅｔｕｎｅ８５０」の値を、５セント大きくするものである。
【００８２】
実際には、ユーザの演奏しているメロディとのｄｅｔｕｎｅを広げる方向に変更して該当パートを演奏する。すなわち、該当パートの元のｄｅｔｕｎｅ値がプラス値の場合、元のｄｅｔｕｎｅ値に＋５したｄｅｔｕｎｅ値で該当パートを演奏する。一方、該当パートの元のｄｅｔｕｎｅ値がマイナス値の場合、元のｄｅｔｕｎｅ値に−５したｄｅｔｕｎｅ値で該当パートを演奏する。
【００８３】
また、この場合、ｄｅｔｕｎｅ値を変化させる幅は、必ず一定値（例えば５セント）でなくても良く、例えば元のｄｅｔｕｎｅ値の半分の値（元のｄｅｔｕｎｅ値が＋４であれば、＋２など）をさらに加えるようなこととしても良い。
【００８４】
逸脱パターン「ｂ」は、「ｄｅｌａｙ  １６分音符分」である。これは、当該逸脱パターンｂが指定されたパートについて、ユーザの演奏しているメロディから、１６分音符分ずつ遅らせて発音させるものである。
【００８５】
この場合、遅らせるタイミングは必ずしも所定の音符長でなくともよい。例えば、自動伴奏について、テンポ設定ボタン１６によりユーザが指定したテンポの設定に応じて、遅らせる音符の長さを変化させても良い。
【００８６】
逸脱パターン「ｃ」は、「Ｖｅｌｏｃｉｔｙ  １０％ｕｐ」である。これは、当該逸脱パターンｃが指定されたパートについて、そのパートの通常時のベロシティ（打鍵強さ・音の強弱）の規定値より１０％上げて演奏することにより、通常時よりも大きめの音で発音させるものである。
【００８７】
この場合、ベロシティを大きくする幅は、元の（通常時の規定値の）ベロシティ値に、ＭＩＤＩ規格におけるベロシティ値で「＋１０」したベロシティ値を用いることとしても良いし、または、ユーザの演奏したメロディのベロシティ値の１０％をさらに加えることとしても良い。
【００８８】
通常時のベロシティ規定値は、例えば、各パターンごとにあらかじめ設定されているベロシティ値を用いても良いし、ユーザの演奏したベロシティ値に基づくベロシティ値を用いても良い。この場合、上記逸脱パターン「ｃ」の「Ｖｅｌｏｃｉｔｙ  １０％ｕｐ」の逸脱は、ユーザの演奏しているメロディのベロシティに基づいて、そこから＋１０％あるいはベロシティ値を＋１０したベロシティで演奏するようにすることができる。
【００８９】
逸脱パターン「ｄ」は、「上からのプラルトリラー」である。これは、当該逸脱パターンｄが指定されたパートについて、ユーザの演奏しているメロディの音に対するプラルトリラーまたはトリルを付加する装飾を行うものである。
【００９０】
図１５にプラルトリラーの例を示す。プラルトリラーは、西洋音楽では一般的には、図１５の上段に示すような記号で表される奏法を指し、原音の上または下の音を演奏してから原音に戻るような装飾を、音符の頭（始め）に付加する装飾を言う。実際には、例えば、図１５の下段に示すように、原音「ド」に対して、上の音「レ」から「レドレド−」というように装飾をして演奏する逸脱パターンである。
【００９１】
他の逸脱パターンでも設定がされている場合があるが、本逸脱パターンｄでは、想定楽器が「ナイ・フルート」と設定されている。この場合、当該想定楽器以外のパートで、かかる逸脱パターンを選択しようとした場合には、無効とするなどの処理を含めることも可能である。
【００９２】
例えば、図８の伴奏パートの楽器について、図８に設定されている楽器ではなく、ユーザが任意の楽器を選択できるようになっている場合等には、図８の「メロディ逸脱方法」のマトリクス部分に記載されている条件が満たされた場合であっても、図１３の想定楽器以外の楽器では、逸脱パターンでの演奏に移行しないようにする、などの処理が可能である。このような「想定楽器」についての制限処理は、他の逸脱パターンの場合も同様である。
【００９３】
逸脱パターン「ｅ」は、「指定パターンに合わせてメロディ音に到達するアルペジォ」である。これは、当該逸脱パターンｅが指定されたパートについて、現在指定されているテトラコルド（ジンス、またはマカーム内の構成ジンス）に含まれている音を用いて、アルペジォでユーザの演奏しているメロディの音に到達するような装飾を行うものである。
【００９４】
逸脱パターン「ｆ」は、「トレモロ／バッテリー奏法」である。これは、当該逸脱パターンｆが指定されたパートについて、ユーザの演奏しているメロディの音と、特定の音とを所定の早さで交互に発音させて、トリルやトレモロ、あるいはバッテリー奏法と呼ばれる効果を付けて演奏するものである。この逸脱パターンｆは、例えば、「サントゥール」と呼ばれる民族楽器の演奏形態によるメロディ装飾（逸脱）を行うものである。
【００９５】
具体的には、例えば、ユーザの演奏している音とその隣接音との間でのトリルを発音することが可能である。また、ユーザの演奏している音と、現在指定されているマカーム（またはジンス）の開始音や終止音との間でのトリルまたはトレモロを発音することが可能である。さらに、ユーザの演奏している音と、オクターブ異なる音との間でのトレモロを発音することとしてもよい。
【００９６】
逸脱パターン「ｇ」は、「メロディの音価により、メロディと開始音を交互に発音」である。これは、当該逸脱パターンｇが指定されたパートについて、ユーザの演奏しているメロディの音が所定以上長く延ばされた場合に、ユーザの演奏している音と、現在指定されているマカーム（またはジンス）の開始音とを、交互に発音させるように装飾するものである。
【００９７】
ここで、本例においては、この逸脱パターンｇでは、比較的ゆっくりのリズムで、ユーザ演奏メロディ音と、マカーム（またはジンス）の開始音とを交互発音するものとし、逸脱パターンｆ、ｈ等の「トリル」「トレモロ」は、比較的早いリズム（短い音）での装飾を行うものとする。
【００９８】
逸脱パターン「ｈ」は、「持続メロディへのトリル挿入」である。これは、当該逸脱パターンｈが指定されたパートについて、ユーザ演奏メロディ音が所定以上延ばされていた（同じ音で持続されている）場合に、トリルを挿入して装飾（逸脱）を行うものである。
【００９９】
逸脱パターン「ｉ」は、「同音連打」である。これは、当該逸脱パターンｉが指定されたパートについて、ユーザ演奏メロディ音を、短い音符に切って、連打する装飾（逸脱）を行うものである。
【０１００】
逸脱パターン「ｊ」は、「メロディがない小節後半でフィルイン（おかず）挿入」である。これは、ユーザ演奏メロディ音が休み（演奏されていない）で、小節の後半に来ていると判断された場合に、当該逸脱パターンｊが指定されたパートについて、所定のパターンでフィルイン（おかず）を挿入することによって装飾（逸脱）を行うものである。
【０１０１】
この場合のフィルイン（おかず）のパターンは、現在指定されているテトラコルド（ジンス、またはマカーム内の構成ジンス）に従って、登録パターンから選択して発音するようにすることができる。
【０１０２】
逸脱パターン「ｋ」は、「音域指定」である。これは、当該逸脱パターンｋが指定されたパートについて、通常と異なるオクターブでユーザの演奏するメロディ音と同じ旋律を演奏するようにするものである。ユーザの演奏するメロディ音と同じ旋律であっても、楽器によって音域を上げたり下げたりすることで、ヘテロフォニー演奏に厚みをもたせることができる。
【０１０３】
例えば、曲が盛り上がったと判定される場合に、ある楽器について、通常より１オクターブ高い音で、ユーザの演奏するメロディ音と同じ旋律を演奏して、より曲調を盛り上げる自動伴奏を施すなどである。
【０１０４】
逸脱パターン「ｌ」は、「ジンスの倚音追加」である。これは、当該逸脱パターンｌが指定されたパートについて、ユーザが演奏しているメロディ音に対して、倚音を付加して装飾（逸脱）するものである。
【０１０５】
倚音とは、非和声音の一種であり、前打音ともいわれるものである。ここでは、ユーザが演奏しているメロディの音に対して、そのメロディ音に隣接する音等を先に発音した後に、ユーザのメロディ音に移行する形の装飾（逸脱）を行う。倚音の長さは、あらかじめ定められた所定の長さだけ倚音を発音した後に、ユーザの演奏するメロディ音に移行する。また、この倚音の長さは、自動伴奏についてテンポ設定ボタン１６によりユーザが指定したテンポの設定に応じて、長さを変えるようにしても良い。
【０１０６】
本実施の形態にかかる電子楽器１０は、以上のような図１３の各種の逸脱について、図８の「メロディ逸脱方法８７０」の欄を参照して、あるパートについてある逸脱を行うべきか否かを判断する。その際に逸脱条件として判断される個々の要素が、個別の「逸脱トリガー」として図１４に示されている。なお、図８〜図１０、図１３、図１４に示す逸脱条件や逸脱パターンは、一例としてのものであり、他の条件や他のトリガーを用いて逸脱条件を判断しても良いし、他の逸脱パターンを定義して、他の逸脱方法を実行することも可能である。
【０１０７】
トリガーナンバー「１」は、「メロディベロシティが直前より大きくなった」か否かを示すフラグであり、例えば、ユーザの押鍵するメロディについて、ＭＩＤＩ形式データの「ベロシティ」の値に基づいて判断する。例えば、ユーザの押鍵メロディについて、現在の音のベロシティと、それより前の所定の期間の音のベロシティ値の大小を比較して、現在の音のベロシティ値の方が大きければ、ＯＮ（１）とする。
【０１０８】
この場合、急激な変化や誤差（ノイズ）的な誤動作を避けるために、例えば、移動平均のように、直近数音のベロシティ値の平均値を比較するようにしてもよい。また、直前音と現在の音のベロシティ値について、単に大小をみるだけでなく、例えば直前値より２０％上がっていたら本トリガーをＯＮ（１）とする等の判定を行ってもよい。
【０１０９】
トリガーナンバー「２」は、「小節の頭」か否かを示すフラグである。これは、例えば、小節の１拍めの拍頭でのみＯＮ（１）とするようにしてもよいし、あるいは、小節の拍頭から所定の期間（例えば８分音符１個分等）だけＯＮ（１）となるようにしてもよいし、拍頭の前後の所定の期間（例えば拍頭の、１６分音符１個分前から、８分音符１個分後まで等）でＯＮ（１）となるようにしてもよい。
【０１１０】
トリガーナンバー「３」は、「前のメロディオフから４拍以上オンなし」か否かを示すフラグである。これは、メロディ音が４拍以上演奏されていない場合にＯＮ（１）となり、次にメロディ音が押鍵されたときにＯＦＦ（０）となるフラグである。この「４拍」との条件も、必要に応じて、他の拍数のフラグを必要な数だけもつようにしても良い。
【０１１１】
トリガーナンバー「４」は、「メロディが２拍以上延びている」か否かを示すフラグであり、文字通り、ユーザの押鍵メロディ音が２拍以上延ばされているときにＯＮ（１）となり、当該メロディ音が離鍵されるとＯＦＦ（０）となる。
【０１１２】
トリガーナンバー「５」は、「小節の後半」か否かを示すフラグである。ここでは、４拍子の演奏を想定しているので、小節の３拍目、４拍目にはＯＮ（１）となり、それ以外（小節の前半）にはＯＦＦ（０）となる。この「小節の後半」フラグは、リズムの拍子などに合わせて、適宜判断基準を変更させることも可能である。
【０１１３】
トリガーナンバー「６」は、「メロディオフ」か否かを示すフラグであり、メロディ押鍵されている間はＯＦＦ（０）となり、メロディ押鍵が無い場合にＯＮ（１）となる。
【０１１４】
トリガーナンバー「７」は、「メロディパターンが３回繰り返し」ているか否かを示すフラグである。実際には、例えば、現在の音を基準に、現在から過去の所定の拍数（半拍、１拍、２拍等）や、所定の音数（例えば、３音〜８音等）で区切ったときに、同じメロディのパターンが３回続けて現れているかどうかを判断して、同じメロディが３回繰り返されている場合にＯＮ（１）となり、この条件に合致しないメロディが押鍵されるとＯＦＦ（０）となる。繰り返し回数については、３回以外の回数としても良い。
【０１１５】
トリガーナンバー「８」は、「メロディが半拍以上延びている」か否かを示すフラグであり、トリガーナンバー「４」と同様、ユーザの押鍵メロディ音が半拍以上延ばされているときにＯＮ（１）となり、当該メロディ音が離鍵されるとＯＦＦ（０）となるフラグである。
【０１１６】
このように、各種のリズムジャンルおよびリズムパターン（エレメント）ごとに、その場合に用いられる各パートの基本の動作設定と、メロディの逸脱方法をＲＯＭ２２に格納しておき、ユーザのメロディ演奏に合わせて、基本的にユーザ演奏メロディと同じ旋律を演奏しつつ、ＲＯＭ２２のメロディ逸脱方法の条件に合致した場合に、適宜、ユーザの演奏するメロディに基づいたメロディの逸脱を行うことにより、本実施の形態にかかる電子楽器１０は、ヘテロフォニー的な自動伴奏を付加した演奏を行うことができる。
【０１１７】
以下、本実施の形態にかかる電子楽器１０において実行される処理についてより詳細に説明する。
【０１１８】
図１６は、本実施の形態にかかる電子楽器１０において実行されるメインフローの例を示すフローチャートである。電子楽器１０のＣＰＵ２１は、電子楽器１０の電源が投入されると、ＲＡＭ２３中のデータの初期化や、表示部１５の表示画面のクリアを含むイニシャル処理（初期化処理）を実行する（ステップＳＡ１）。また、このイニシャル処理において、マカームおよびジンスのデータをＲＯＭ２２から読み出し、ＲＡＭ２３の所定の領域に格納する。
【０１１９】
イニシャル処理（ステップＳＡ１）が終了すると、ＣＰＵ２１は、リズムジャンル選択ボタン１３によって、リズムジャンルの選択が指示されているか否かを調べる（ステップＳＡ２）。リズムジャンル選択ボタン１３によって、例えば図８のリズムジャンル名８１０として示されているような、「アダニ（ａｄａｎｉ）」、「バラディ（Ｂａｒａｄｉ）」、「マルフーフ（Ｍａｌｆｕｆ）」などのリズムジャンルが選択されている場合（ステップＳＡ２：Ｙｅｓ）、ＣＰＵ２１は、その選択されたリズムジャンルを内部的にセットする（ステップＳＡ３）。すなわち、ＲＡＭ２３の所定のリズムジャンル記憶エリアにリズムジャンルに対応する番号等の情報を記憶し、また、例えば、図８を参照して、選択されているリズムで用いられる楽器の音をプリセット音色リストの中から選択してセットし、また、選択されているリズムのリズムパターンをＲＯＭ２２から読み出す。
【０１２０】
なお、本図１６では、リズムジャンルの選択・セットについては、実際のヘテロフォニー演奏が始まる前に行われるものとして、ステップＳＡ２とＳＡ３の処理は、以下のステップＳＡ５からステップＳＡ１２のループに入る前に行われることとなっているが、ループ中に変更可能なように構成することとしても差し支えない。
【０１２１】
続いて、ＣＰＵ２１は、自動伴奏開始・終了指示ボタン１２によって、自動伴奏の開始が指示されたか否かを判断する（ステップＳＡ４）。自動伴奏の開始が指示されていない場合は（ステップＳＡ４：Ｎｏ）、本発明に係るヘテロフォニー演奏モードが始動しないので、何もせずに終了する。
【０１２２】
自動伴奏の開始が指示されると（ステップＳＡ４：Ｙｅｓ）、ＣＰＵ２１は、以下のステップＳＡ５からステップＳＡ１２の処理を繰り返し実行して、本発明に係るヘテロフォニー演奏を実現する。そして、ステップＳＡ１２において、自動伴奏開始・終了指示ボタン１２によって自動伴奏の終了が指示されたと判定されるまで、ステップＳＡ５からステップＳＡ１２のループを繰り返し実行する。
【０１２３】
まず、ＣＰＵ２１は、リズムエレメント指定ボタン１４が操作されて、リズムパターン（エレメント）の選択がされたか否かを判定する（ステップＳＡ５）。ここで、本実施の形態にかかる電子楽器１０では、前述のように、ユーザは、右手でメロディの演奏を行いつつ、左手でリズムエレメント指定ボタン１４を操作することにより、ノーマルパターン、ソロパターン、フィルインパターンなどのリズムのパターン（エレメント）を指定することができる。このリズムパターン（エレメント）の指定が行われた場合（ステップＳＡ５：Ｙｅｓ）、その指定されたリズムパターン（エレメント）のセットを行う（ステップＳＡ６）。具体的には、ＲＡＭ２３の所定のリズムパターン（エレメント）記憶エリアに、リズムパターン（エレメント）に対応する番号等の情報を記憶し、また、これに基づいて、図８から図１０のいずれのテーブルを使用するかを、指定されたリズムパターン（エレメント）に応じて切り替える。
【０１２４】
また、ＣＰＵ２１は、テンポ設定ボタン１６によって、テンポの設定がされたか（変更されたか）を調べ（ステップＳＡ７）、テンポ変更操作がされた場合（ステップＳＡ７：Ｙｅｓ）には、適宜指定されたテンポに変更する設定を行う（ステップＳＡ８）。
【０１２５】
次に、ＣＰＵ２１は、本実施の形態に係る電子楽器１０でヘテロフォニー演奏を行うための、自動伴奏処理を行う（ステップＳＡ９）。この自動伴奏処理については、図１７以下を用いて後述する。
【０１２６】
そして、ＣＰＵ２１は、この自動伴奏処理によってなされた種々の処理に基づいて、音源に発音する音色や音高、音長、あるいは波形ファイルの送受信等を行うことによって、サウンドシステム２４から実際の音を発音させる処理を行う（ステップＳＡ１０）。以下で詳述するが、ここでは、例えば、ジンス指定鍵盤１０１によって指定されたジンスに基づいて、メロディ演奏用鍵盤１０２で演奏された主旋律を発音させる。さらに、例えば、ヘテロフォニー演奏に係るメロディの逸脱が指定された楽器について、指定された逸脱を行う音を発音させる等の処理を行う。
【０１２７】
より詳細には、まず、ユーザの演奏しているメロディを、指定されたメロディ音色によって発音させる。さらに、図８〜図１０を参照し、各パート（８２０等）ごとに、指定されている音色での発音を行う。この際、各パートごとに、ＲＡＭ２３上に記憶されている逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］を参照し、あるパートが逸脱中であることが判明したら（フラグがＯＮ（１）であったら）、そのフラグの立っているＰａｔｔｅｒｎの数で示される逸脱パターンに応じた逸脱を行って発音する。また、そのような逸脱中フラグが立っていなければ（フラグがＯＦＦ（０）であったら）、そのパートについては、ユーザの演奏しているメロディとユニゾンで同じ旋律を発音させる。なお、各逸脱パターンに応じた逸脱を行った発音の具体的な方法については、以下の各逸脱パターンのフローチャートの説明の部分において詳細に説明する。
【０１２８】
音源発音処理（ステップＳＡ１０）が終了すると、ＣＰＵ２１は、その他の処理（たとえば、表示部１５への画像表示、ＬＥＤ（図示せず）の点灯、消灯など：ステップＳＡ１１）を実行する。
【０１２９】
続いて、ＣＰＵ２１は、自動伴奏開始・終了指示ボタン１２によって、自動伴奏の終了すなわちヘテロフォニーモードでの演奏の終了が指示されたか否かを判断する（ステップＳＡ１２）。そして、自動伴奏終了が指示されない間は（ステップＳＡ１２：Ｎｏ）、ステップＳＡ５へ戻り、ループ処理を継続してヘテロフォニー演奏を継続し、自動伴奏の終了が指示されると（ステップＳＡ１２：Ｙｅｓ）、図１６に示される一連の処理を終了する。
【０１３０】
次に、上述したステップＳＡ９で実行される、本実施の形態に係る電子楽器１０でヘテロフォニー演奏を行うための自動伴奏処理について、図１７を用いて詳細に説明する。
【０１３１】
図１６のメインフローから図１７の自動伴奏処理が呼び出されると、ＣＰＵ２１は、伴奏鍵すなわちジンス指定鍵盤１０１の押鍵があるか否かを判定する（ステップＳＢ１）。そして、伴奏鍵（ジンス指定鍵盤１０１）の押鍵があった場合（ステップＳＢ１：Ｙｅｓ）その押鍵に応じて、ジンスの設定を変更する（ステップＳＢ２）。
【０１３２】
これは、前述のように、あるマカームの曲であっても、例えば上行音型時と下降音型時でジンスが変わり、同じ鍵を演奏していても発音すべき音が変化する等の、アラビア音楽の特性に合わせるために、適宜、ジンス指定鍵盤１０１でジンスを指定することができ、これに合わせてジンス設定を変更できるようにしているからである。
【０１３３】
次に、ＣＰＵ２１は、メロディ演奏用鍵盤１０２の押鍵があるか否かを判定する（ステップＳＢ３）。メロディ演奏用鍵盤１０２の押鍵があった場合には（ステップＳＢ３：Ｙｅｓ）、押鍵されている鍵盤と、現在設定されているジンスとに応じた音高の音を、ユーザ演奏主旋律として発音する（ステップＳＢ４）。
【０１３４】
なお、このとき、ジンス指定鍵盤１０１によるジンスの指定と、メロディ演奏用鍵盤１０２によるメロディ演奏音とが矛盾しているような場合、例えば、指定されたジンスでは存在しない（割り当てがなされていない）音がメロディ演奏用鍵盤１０２で指定されたような場合には、元のマカーム通りに発音したり、あるいは、そのような音は無視することとして発音しない等と処理する。なお、マカームについては、例えば、図１６のメインフローにおけるステップＳＡ５からＳＡ１２のループ処理に入る前に、図示しない設定ボタンによって、例えばリズムジャンルの設定と同様に、あらかじめユーザが設定しておくことができる。あるいは、リズムジャンルの設定と同時に、自動的にそのリズムで頻用されるマカームが自動設定されるようにしても良い。
【０１３５】
その後、ＣＰＵ２１は、メロディ逸脱トリガーの検出処理を行う（ステップＳＢ５）。このメロディ逸脱トリガー検出処理については、図１８、図１９を用いて後述するが、ユーザに入力されているメロディの音などに基づいて、図１４に示されている、個別の「逸脱トリガー」の条件が満たされたか否かを判別し、各トリガーのフラグ値をＯＮまたはＯＦＦにセットする。
【０１３６】
個々の逸脱トリガーごとの判定とフラグのセットが行われた後、ＣＰＵ２１は、メロディ逸脱処理を行う（ステップＳＢ６）。このメロディ逸脱処理については、図２０以降の図を用いて後述するが、各逸脱トリガーのフラグ値等に基づいて、図８から図１０のテーブルを適宜参照することにより、各パート毎に、逸脱を行う条件が成立しているか否かを個別に判断し、ある逸脱パターンを行う条件が満たされていた場合は、その条件が成立したパートについて、条件が成立した逸脱を行うように制御する。
【０１３７】
そこで、まず、図１８と図１９を参照して、上記ステップＳＢ５で実行される、メロディ逸脱トリガーの検出処理について説明する。なお、この図において、各トリガーナンバーの逸脱トリガーの判定結果（フラグ）は、ＲＡＭ２３の所定の領域に、Ｔｒｉｇｇｅｒ［］の配列で記憶されるものとする。
【０１３８】
まず、ＣＰＵ２１は、現在の演奏が、小節の頭であるか否かを判定し（ステップＳＣ１）、小節の頭である場合（ステップＳＣ１：Ｙｅｓ）は、トリガーナンバー２（小節の頭）のフラグＴｒｉｇｇｅｒ［２］をＯＮ（１）にセットする（ステップＳＣ２）。一方、小節の頭で無い場合には（ステップＳＣ１：Ｎｏ）、トリガーナンバー２のフラグＴｒｉｇｇｅｒ［２］をＯＦＦ（０）にセットする（ステップＳＣ３）。
【０１３９】
具体的には、自動伴奏がオンとなって自動伴奏モードである場合（ヘテロフォニー演奏モードである場合）には、現在選択されているリズムジャンル・リズムパターンに応じたリズムパターンが、テンポ設定ボタン１６によって設定されたテンポで再生されているので、そのタイミング（テンポ）に応じて、現在の小節内の拍数位置が調べられる。そして、現在の小節内における拍数位置が、例えば１拍目の頭（小節の最初）から、２拍目の頭の前（１拍目の最後）までに存在する場合に、「小節の頭である」と判断されることとなる。
【０１４０】
続いて、ＣＰＵ２１は、現在の演奏が、３拍目以降であるか否かを判定し（ステップＳＣ４）、３拍目以降である場合（ステップＳＣ４：Ｙｅｓ）は、トリガーナンバー５（小節の後半）のフラグＴｒｉｇｇｅｒ［５］をＯＮ（１）にセットする（ステップＳＣ５）。一方、小節の頭で無い場合には（ステップＳＣ４：Ｎｏ）、トリガーナンバー５のフラグＴｒｉｇｇｅｒ［５］をＯＦＦ（０）にセットする（ステップＳＣ６）。
【０１４１】
具体的には、ステップＳＣ１と同様、現在のリズムパターンとテンポ設定に基づいて、現在のタイミングが、小節内のどの拍数位置であるかを判断する。そして、現在の小節内における拍数位置が、３拍目の頭（小節の最初）から、次の小節の直前までに存在する場合に、「３拍目以降である」と判断されることとなる。なお、例えばここで４拍のリズムパターンが演奏されているとすると、演奏位置がその３拍目と４拍目の間に存在する場合に、Ｔｒｉｇｇｅｒ［５］がＯＮ（１）となる。
【０１４２】
次に、ＣＰＵ２１は、現在、ユーザによってメロディ押鍵がある、すなわち、メロディ演奏用鍵盤１０２でメロディ入力がなされているか否かを判断する（ステップＳＣ７）。各メロディ逸脱トリガーの中には、メロディが押鍵されているときにフラグＯＮとなるもの、または逆に、メロディ押鍵が無い場合にフラグＯＮとなるもの、が含まれているので、このステップＳＣ７の判定によって、以下の処理を振り分けているものである。
【０１４３】
すなわち、メロディ入力がされている場合（ステップＳＣ７：Ｙｅｓ）には、まず、メロディ押鍵が無い場合にＯＮとなる、トリガーナンバー３（前のメロディオフから４拍以上オンなし）および６（メロディオフ）のフラグＴｒｉｇｇｅｒ［３］とＴｒｉｇｇｅｒ［６］をＯＦＦ（０）とセットする（ステップＳＣ８）。
【０１４４】
他方、メロディ入力がされていない場合（ステップＳＣ７：Ｎｏ）には、メロディ押鍵がある場合にＯＮとなる、トリガーナンバー１（メロディベロシティが直前より大きくなった）、４（メロディが２拍以上延びている）、７（メロディパターンが３回繰り返し）、８（メロディが半拍以上延びている）の各フラグＴｒｉｇｇｅｒ［１］、Ｔｒｉｇｇｅｒ［４］、Ｔｒｉｇｇｅｒ［７］、Ｔｒｉｇｇｅｒ［８］をＯＦＦ（０）とセットする（ステップＳＣ９）。
【０１４５】
そして、メロディ入力がされていない場合（ステップＳＣ７：Ｎｏ）、ＣＰＵ２１は、上述の各種逸脱トリガーのフラグＯＦＦ処理（ステップＳＣ９）に続いて、メロディ押鍵が無い場合にＯＮとなり得るフラグの判定を行う。まず、メロディ押鍵がないことから、トリガーナンバー６「メロディオフ」については、この時点で成立していると判定できるので、ステップＳＣ１０において、Ｔｒｉｇｇｅｒ［６］がＯＮ（１）される（ステップＳＣ１０）。
【０１４６】
次に、ＣＰＵ２１は、４拍以上休符であるか、すなわち、前回のメロディ離鍵から４拍以上、メロディの押鍵入力がされていないかどうかが調べられる（ステップＳＣ１１）。４拍以上休符であった場合（ステップＳＣ１１：Ｙｅｓ）、トリガーナンバー３「前のメロディオフから４拍以上オンなし」の条件が満たされているので、Ｔｒｉｇｇｅｒ［３］がＯＮ（１）される（ステップＳＣ１２）。他方、前回のメロディ離鍵から４拍以上休符では無い場合には、Ｔｒｉｇｇｅｒ［３］がＯＦＦ（０）とされる（ステップＳＣ１３）。
【０１４７】
そして、これらの、メロディ入力がされていない場合にＯＮとなり得るフラグ（ここでは、トリガーナンバー３及びトリガーナンバー６）についての判定が終了すると、ステップＳＤ１６へ処理を進める。これ以降の処理については後述する。
【０１４８】
一方、メロディ入力がされている場合（ステップＳＣ７：Ｙｅｓ）には、上述のように、ステップＳＣ８における、トリガーナンバー３と６のＯＦＦ処理が行われた後、図１９のステップＳＤ１へ処理を進めて、メロディ押鍵がある場合にＯＮとなり得るフラグの判定を行う。
【０１４９】
まず、ＣＰＵ２１は、現在押鍵されているメロディ押鍵が、前回この判定処理が行われたときから後に、新たに押鍵されたものであるか、あるいは、前回の判定以降も押鍵が継続された音であるかを判定する（ステップＳＤ１）。具体的には、例えば、ＲＡＭ２３上に、図示しないバッファを儲けて、毎回のこのステップＳＤ１の処理ごとに、そのときに押鍵されている鍵盤の情報（音高、押鍵開始時刻等）を記憶しておき、次回のステップＳＤ１の処理の際に、前回バッファに記憶された押鍵情報と、現在の押鍵情報とを比較すること等により判断を行うことが可能である。
【０１５０】
現在押鍵されているメロディ押鍵が新たなメロディ押鍵である場合（ステップＳＤ１：Ｙｅｓ）、トリガーナンバー４（メロディが２拍以上延びている）や、トリガーナンバー８（メロディが半拍以上延びている）の条件は成立しないので、これらのフラグＴｒｉｇｇｅｒ［４］とＴｒｉｇｇｅｒ［８］をＯＦＦ（０）にセットする（ステップＳＤ２）。
【０１５１】
続いて、ＣＰＵ２１は、現在のメロディ押鍵が新たなメロディ押鍵である場合に成立する可能性がある、トリガーナンバー１（メロディベロシティが直前より大きくなった）と、トリガーナンバー７（メロディパターンが３回繰り返し）について判定を行う（ステップＳＤ３からステップＳＤ９）。
【０１５２】
まず、ＣＰＵ２１は、メロディのベロシティが直前の音のベロシティに比較して、２０％以上アップ（強く押鍵された）か否かを判定する（ステップＳＤ３）。また、この条件が成立していなかった場合（ステップＳＤ３：Ｎｏ）には、さらに、メロディのベロシティが、前の小節の平均値より１５％以上アップ（強く押鍵された）か否かを判定する（ステップＳＤ５）。
【０１５３】
ステップＳＤ３の判定、またはステップＳＤ５の判定のいずれかの条件が満たされていた場合（ステップＳＤ３：Ｙｅｓ、ステップＳＤ５：Ｙｅｓ）には、「メロディベロシティが直前より大きくなった」と判断して、トリガーナンバー１のフラグＴｒｉｇｇｅｒ［１］をＯＮ（１）とする（ステップＳＤ４）。一方、ステップＳＤ３の判定条件、およびステップＳＤ５の判定条件のいずれも満たされていなかった場合（ステップＳＤ３：ＮｏからステップＳＤ５：Ｎｏ）には、トリガーナンバー１のフラグＴｒｉｇｇｅｒ［１］をＯＦＦ（０）とする（ステップＳＤ６）。
【０１５４】
また、ＣＰＵ２１は、同じメロディパターンが３回繰り返されたか否かを判断する（ステップＳＤ７）。具体的には、例えば、ユーザによって演奏（押鍵）されたメロディを、ＲＡＭ２３上の図示しないメロディ履歴記憶バッファ等に時系列に記憶しておき、現在押鍵されたメロディを含む数音について、その数音が３回繰り返されているか否かを判断することで判断することが可能である。また、その場合、繰り返しの「数音」の音数については、例えば３音程度から８音程度など、あらかじめ定められた音数でメロディ履歴記憶バッファのメロディ履歴を区切って、メロディ履歴記憶バッファのメロディを、上記の各繰り返し音数で区切った場合に繰り返しの条件が満たされるか否かを逐次調べることによって実現することが可能である。
【０１５５】
このステップＳＤ７での判定の結果に応じて、同じメロディパターンが３回繰り返されていた場合は（ステップＳＤ７：Ｙｅｓ）、トリガーナンバー７のフラグＴｒｉｇｇｅｒ［７］をＯＮ（１）とする（ステップＳＤ８）。他方、同じメロディパターンが３回繰り返されていない場合は（ステップＳＤ７：Ｎｏ）、トリガーナンバー７のフラグＴｒｉｇｇｅｒ［７］をＯＦＦ（０）とする（ステップＳＤ９）。その後、ＣＰＵ２１は、ステップＳＤ１６へ処理を進める。これ以降の処理については後述する。
【０１５６】
一方、ステップＳＤ１へ戻って、現在押鍵されているメロディ押鍵が新たなメロディ押鍵でなかった場合（ステップＳＤ１：Ｎｏ）、ＣＰＵ２１は、トリガーナンバー４（メロディが２拍以上延びている）や、トリガーナンバー８（メロディが半拍以上延びている）について判定を行う（ステップＳＤ１０からステップＳＤ１５）。なお、この場合、新たな押鍵があったわけではないので、トリガーナンバー１（メロディベロシティが直前より大きくなった）と、トリガーナンバー７（メロディパターンが３回繰り返し）については、既になされている判定の結果をそのまま保持することとして、これらのフラグのＯＦＦ（０）クリアは行わない。
【０１５７】
まず、ＣＰＵ２１は、現在押鍵されているメロディ音が、半拍以上延びている（継続して押鍵されている）音であるか否かを判定する（ステップＳＤ１０）。具体的には、前述した、現在押鍵されているメロディ音の押鍵タイミングと、現在のタイミングとを比較することにより、判断することができる。
【０１５８】
現在押鍵されているメロディ音が、半拍以上延びていない場合（ステップＳＤ１０：Ｎｏ）は、トリガーナンバー８のフラグをＴｒｉｇｇｅｒ［８］をＯＦＦ（０）とするとともに、当然、現在押鍵されているメロディ音が２拍以上延びていることもあり得ないので、トリガーナンバー４のフラグＴｒｉｇｇｅｒ［４］もＯＦＦ（０）とする（ステップＳＤ１１）。
【０１５９】
一方、現在押鍵されているメロディ音が、半拍以上延びている場合（ステップＳＤ１０：Ｙｅｓ）は、トリガーナンバー８のフラグをＴｒｉｇｇｅｒ［８］をＯＮ（１）とし（ステップＳＤ１２）、さらに、現在押鍵されているメロディ音が２拍以上延びている（継続して押鍵されている）音であるか否かを判定する（ステップＳＤ１３）。
【０１６０】
現在押鍵されているメロディ音が、２拍以上延びている場合（ステップＳＤ１３：Ｙｅｓ）は、トリガーナンバー４のフラグをＴｒｉｇｇｅｒ［４］をＯＮ（１）とする（ステップＳＤ１４）。一方、現在押鍵されているメロディ音が、２拍以上延びていない場合（ステップＳＤ１３：Ｎｏ）は、トリガーナンバー４のフラグをＴｒｉｇｇｅｒ［４］をＯＦＦ（０）とする（ステップＳＤ１５）。その後、ＣＰＵ２１は、ステップＳＤ１６へ処理を進める。
【０１６１】
上記のようにそれぞれの逸脱トリガーについての判定およびフラグセットの処理が行われた後、ステップＳＣ１２、ＳＣ１３、ステップＳＤ８、ＳＤ９、ＳＤ１４、ＳＤ１５の各処理に続いて、ＣＰＵ２１はステップＳＤ１６に処理を進め、演奏が小節の終わりに到達したか否かを判断する（ステップＳＤ１６）。
【０１６２】
そして、小節の終わりに到達していた場合（ステップＳＤ１６：Ｙｅｓ）には、小節ごとに判定が行われるフラグや、他の小節の位置である場合にＯＮ（１）となるフラグなどがＯＦＦ（０）にクリアされる。具体的には、ここでは、トリガーナンバー１（メロディベロシティが直前より大きくなった）のフラグＴｒｉｇｇｅｒ［１］、トリガーナンバー２（小節の頭）のフラグＴｒｉｇｇｅｒ［２］、および、トリガーナンバー５（小節の後半）のフラグＴｒｉｇｇｅｒ［５］が、それぞれＯＦＦ（０）とされる。また、この際、ステップＳＤ５で用いられる、「前の小節のベロシティ値の平均」を算出して、ＲＡＭ２２の所定のバッファに記録し、次の小節におけるステップＳＤ５の処理で用いることとしても良い。
【０１６３】
このようにして、図１８から図１９のフローにより、図１７のステップＳＢ５のメロディ逸脱トリガー検出処理がおこなわれると、次にＣＰＵ２１は、ステップＳＢ６のメロディ逸脱処理を行う。図２０は、本実施の形態におけるメロディ逸脱処理の例である。
【０１６４】
図２０のフローチャートにおいて、ＣＰＵ２１は、まず、変数Ｐａｔｔｅｒｎに、第１番目の逸脱パターンとしての「逸脱パターンａ」を示すデータを記憶させ（ステップＳＥ１）、さらに変数Ｐａｒｔに、最初のパートとしてのパート番号１を記憶させる（ステップＳＥ２）。
【０１６５】
そして、上述の図１８から図１９のフローにおいて、ユーザの演奏メロディ等の状況に応じて既にセットされた各種の逸脱トリガーに基づいて、変数Ｐａｒｔで示されるパートでの、変数Ｐａｔｔｅｒｎで示される逸脱パターンの実行処理を行う（ステップＳＥ３）。
【０１６６】
実際には、このステップＳＥ３では、変数Ｐａｔｔｅｒｎで表される逸脱パターンに対応した、メロディ逸脱の実行処理サブルーチンをコールする。各メロディ逸脱の実行処理サブルーチンについては後述するが、概略としては、変数Ｐａｒｔで示されるパートにおいて、変数Ｐａｔｔｅｒｎで示される逸脱パターンの逸脱を行うか否かを、図８から図１０の各テーブルに基づいて判断し、逸脱を行うべき場合には、当該Ｐａｒｔで示されるパートが当該Ｐａｔｔｅｒｎの逸脱を行うよう処理を行うものである。
【０１６７】
そして、この逸脱パターンの実行処理（ステップＳＥ３）について、ステップＳＥ４でＰａｒｔ番号を＋１しながら（ステップＳＥ４）、全パートが検査済みとなるまで上記のステップＳＥ３の逸脱パターンの実行処理を繰り返して実行し（ステップＳＥ５：Ｎｏ）、さらに、全パートの検査が終了すると（ステップＳＥ５：Ｙｅｓ）、パターン変数Ｐａｔｔｅｒｎを＋１して（ステップＳＥ６）、再度Ｐａｒｔを１から順に変化させながら逸脱パターンの実行処理（ステップＳＥ３）を実行する。
【０１６８】
そして、全ての逸脱パターンについて検査し終わったら、このメロディ逸脱処理を終了する（ステップＳＥ７：Ｙｅｓ）。
【０１６９】
このように、図２０の処理では、このように、パート変数Ｐａｒｔと逸脱パターン変数Ｐａｔｔｅｒｎを順次変化させながら、すべてのパターンについて全てのパートで逸脱パターンの実行処理（ステップＳＥ３）を行うようになっている。
【０１７０】
このステップＳＥ３で実行される逸脱パターンの実行処理について、図１３に示したそれぞれの逸脱パターン毎に、対応する逸脱パターン実行処理が備えられている。図２１から図２７は、逸脱パターン毎の対応する逸脱パターン実行処理を説明するフローチャートである。また、図２８は、図２７の逸脱パターンｊの場合に選択されるフィルインパターンの特徴を示した図である。以下、これらの図を参照して、各逸脱パターンについての逸脱パターン実行処理を説明する。
【０１７１】
図２１は、図１３の逸脱パターンａ「デチューン５％アップ」、逸脱パターンｂ「１６分音符分ディレイ」、逸脱パターンｃ「ベロシティ１０％アップ」、逸脱パターンｋ「音域指定」の各逸脱パターンの実施例を示すフローチャートである。これらの各逸脱パターンについては、多くのステップで、同様の処理を行うことによって実現できることから、共通の図２１を用いて説明する。
【０１７２】
ＣＰＵ２１は、図２０のステップＳＥ３において、変数Ｐａｔｔｅｒｎが、逸脱パターンａ、逸脱パターンｂ、逸脱パターンｃ、逸脱パターンｋ、のいずれかであった場合、図２１のステップＳＦ１に処理を移し、逸脱条件が成立しているか否かを判定する（ステップＳＦ１）。この場合、図２０のＰａｔｔｅｒｎ変数と、Ｐａｒｔ変数の値については、引数の形で図２１のサブルーチンに引き継がれて参照可能になるものとする。
【０１７３】
具体的には、リズムエレメント指定ボタン１４で指定されているリズムのパターン（エレメント）に対応した伴奏フォーマットセット／逸脱方法指定表のデータベース（図８、図９、図１０のテーブルのいずれか）を参照して、リズムジャンル選択ボタン１３で選択されているリズムジャンル（例えば、ａｄａｎｉ、Ｂａｒａｄｉ、Ｍａｌｆｕｆのいずれか）についてのデータ群のうちで、図２０のフローで設定されているＰａｒｔ変数及びＰａｔｔｅｒｎ変数に対応したパート名８２０の行およびメロディ逸脱方法（パターン）８７０の列に対応する位置の、逸脱条件を参照する。
【０１７４】
例えば、リズムパターン（エレメント）がノーマルであれば、図８の伴奏フォーマットセット／逸脱方法指定表８００を参照し、その中で、リズムジャンル選択ボタン１３で選択されているリズムジャンルがａｄａｎｉである場合、リズムジャンル名８１０にａｄａｎｉと書かれている部分に対応する５行分のデータが対象となる。そして、Ｐａｒｔ変数がパート１で、Ｐａｔｔｅｒｎ変数が逸脱パターンａであれば、テーブルの８０１欄のデータを参照することとなる。
【０１７５】
同様に、Ｐａｒｔ変数が１で、Ｐａｔｔｅｒｎ変数が逸脱パターンｂであれば、８０２欄のデータを参照する。また、Ｐａｒｔ変数が２で、Ｐａｔｔｅｒｎ変数がパターンａであれば、８０３欄のデータを参照する。
【０１７６】
ここで、例えばテーブル中の８０１欄のデータとしては何も記載されていない。このような場合は、当該パートでは、現在調査対象となっている逸脱パターンを行うことは無いということを表しているので、ステップＳＦ１の判定はＮｏとなる。
【０１７７】
仮に今、リズムパターン（エレメント）がノーマル、選択されているリズムジャンルがＢａｒａｄｉであり、Ｐａｒｔ変数が３（伴奏パート３）で、Ｐａｔｔｅｒｎ変数が逸脱パターンａの状態で、図２１のサブルーチンが呼び出されたとすると、ＣＰＵ２１は、図８の８０４欄のデータ（データ８０４という）を参照して、ステップＳＦ１の逸脱条件が成立しているか否かの判定を行う。
【０１７８】
すると、データ８０４は「１＋２」となっているので、図１８と図１９の処理で決定された、メロディ逸脱トリガーのトリガーナンバー１（Ｔｒｉｇｇｅｒ［１］）と、トリガーナンバー２（Ｔｒｉｇｇｅｒ［２］）とが参照される。そして、図８のデータ８０４のように逸脱条件が「１＋２」となっている場合は、Ｔｒｉｇｇｅｒ［１］とＴｒｉｇｇｅｒ［２］とが、ともにＯＮ（１）となっている場合に、逸脱条件成立と判定する。
【０１７９】
従って、この場合には、「メロディベロシティが直前より大きく」なっていて（トリガーナンバー１）、かつ、「小節の頭」である（トリガーナンバー２）場合に、ステップＳＦ１の判定がＹｅｓとなり、伴奏パート３について、逸脱パターンａの逸脱を行うこととなる。
【０１８０】
上記のような判定を行った結果、逸脱条件が成立していた場合（ステップＳＦ１：Ｙｅｓ）、ＣＰＵ２１は、まずＲＡＭ２３上の所定の領域に割り当てられた、逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］の値をＯＮ（１）にセットする（ステップＳＦ２）。その後、ＣＰＵ２１は、Ｐａｔｔｅｒｎ変数で示される逸脱パターンに応じた、具体的な逸脱を設定する（ステップＳＦ４）。
【０１８１】
すなわち、Ｐａｔｔｅｒｎ変数が逸脱パターンａである場合、Ｐａｒｔ変数で示されるパートのデチューンが５％アップされる。また、Ｐａｔｔｅｒｎ変数が逸脱パターンｂである場合は、Ｐａｒｔ変数で示されるパートについて、ユーザ演奏のメロディから１６分音符遅れて発音するようにセットされる。また、Ｐａｔｔｅｒｎ変数が逸脱パターンｃである場合は、Ｐａｒｔ変数で示されるパートについて、ベロシティ値が１０％アップされる。また、Ｐａｔｔｅｒｎ変数が逸脱パターンｋである場合は、Ｐａｒｔ変数で示されるパートについて、音域指定（音域変更）が行われる。
【０１８２】
これらの場合、本発明の実施の形態においては、ヘテロフォニー演奏としての「逸脱」を実現するため、いずれも、ユーザの演奏メロディ押鍵に基づいて上記の逸脱が行われる。
【０１８３】
すなわち、例えば逸脱パターンａの場合、逸脱していないとき（通常時）は、図８の「メロディとのｄｅｔｕｎｅ」で示された、各パートのｄｅｔｕｎｅ（ピッチの差）値だけピッチをずらして、ユーザ演奏メロディとユニゾンに同じ旋律を演奏していたところが、逸脱パターンａの条件が成立すると、そのｄｅｔｕｎｅをさらに５％広げて、ユーザ演奏メロディとユニゾンの演奏を行う。すなわち、Ｐａｒｔ変数で指定されているパートについて、ややピッチの差を大きく広げてユーザ演奏の旋律とユニゾン演奏が行われることとなる。
【０１８４】
また、逸脱パターンｂの場合、ユーザ演奏のメロディから１６分音符遅れて発音するようにセットされる。具体的には、例えば、Ｐａｒｔ変数で指定されているパートについて、１６分音符遅れることを示すフラグをセットし、図１６のＳＡ１０の、実際の発音処理の際に、ユーザの演奏メロディのバッファ（メロディ履歴記憶バッファ）の、１６分音符前に演奏された音符の情報を参照して発音するようにすることができる。あるいは、遅延させるタイミング（ここでは１６分音符）分の遅延用バッファを用意して、ＦＩＦＯ形式でユーザ演奏メロディを順次記憶すると共に１６分音符分遅れた音を読み出して発音するようにしても良い。
【０１８５】
また、逸脱パターンｃの場合、ベロシティ値が１０％アップされる。この場合、Ｐａｒｔ変数で指定されているパートについて、ベロシティ値を規定値より１０％アップして発音する。すなわち、Ｐａｒｔ変数で指定されているパートについて、逸脱が行われていないときに比べて、やや強調して演奏されることとなる。
【０１８６】
また、逸脱パターンｋの場合、Ｐａｒｔ変数で指定されているパートの音域をオクターブ単位で変更する。この場合、音域を上げるか下げるか、また何オクターブ変更するか、については、楽器やパート毎に、当該逸脱パターンｋで音域変更する場合のオクターブ数を、例えば＋１オクターブや−２オクターブといった形のテーブルであらかじめ記憶させておくことができる。あるいは、ユーザ演奏メロディの音高と、あらかじめ設定されている各パートの音域とを比較して、各パートの音域のうち、メロディ音より高音の音数の方が多い場合には１オクターブ上げ、メロディ音より低音の音数の方が多い場合は１オクターブ下げる等のように音域変更することも可能である。
【０１８７】
なお実際には、このステップＳＦ４では、各パート／各逸脱に対応したフラグを立て、必要に応じて、各パートの発音に割り当てられているＭＩＤＩチャンネルごとの発音に関する設定等を変更し（例えばデチューン値を変更する逸脱が指定された場合、該当するチャンネルのデチューン値を変更する、あるいは、オクターブ値を変更する逸脱が指定された場合、オクターブ値を設定する等）、これを受けての実際の発音は、図１６のＳＡ１０における発音処理の際に、これらのフラグ等を参照して，適宜逸脱した音の発音がなされるものとする。具体的には、ＳＡ１０で、あるパートについて、本図にかかる逸脱パターンａ、ｂ、ｃ、ｋのいずれかのフラグがＯＮ（１）だった場合には、本図ステップＳＦ４でセットされたフラグ等を参照して逸脱発音を行うようにして、逸脱していない場合とは異なる発音をするようにすることができる。
【０１８８】
また、ステップＳＦ１に戻って、逸脱条件が成立していないと判断された場合は（ステップＳＦ１：Ｎｏ）、現在のＰａｒｔ変数とＰａｔｔｅｒｎ変数に対応する逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］が、ＯＮ（１）であるか否かを判断する（ステップＳＦ３）。これは、いったん逸脱条件が成立して逸脱パターンで演奏し始めたパートについて、例えば、その小節が終わるまでの間は逸脱を続けて演奏させる、等の処理を実現するために、ステップＳＦ２で逸脱中フラグがセットされている場合、逸脱中の処理フローに処理を移させるためのものである。
【０１８９】
逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＮ（１）だった場合（ステップＳＦ３：Ｙｅｓ）は、ステップＳＦ５へ処理を進める。ここで、本図２１に係る逸脱パターンの場合、逸脱条件が成立した際に、既にステップＳＦ２で逸脱中のフラグを立ててあり、またステップＳＦ４で、例えばデチューン値を設定する等の逸脱処理のための設定を行っているので、ステップＳＦ５以降の処理においては、逸脱を終了する条件の判定と、逸脱を終了させる場合の処理を行っている。
【０１９０】
一方、逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＦＦ（０）だった場合（ステップＳＦ３：Ｎｏ）は、本逸脱処理を終了して、図２０に処理を戻す。
【０１９１】
ステップＳＦ４で逸脱の各種設定を行った後、または、ステップＳＦ３で逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＮ（１）だった場合、ＣＰＵ２１は、現在の再生位置が小節の終わりであるか否かを判断する（ステップＳＦ５）。「小節の終わり」に関しては、前述のように、現在演奏されているリズムパターンとテンポに応じて、例えば、小節の終わり（次の小節との境目）から所定の期間前までの間であるか否かを調べることで判断される。
【０１９２】
現在の再生位置が小節の終わりでなかった場合（ステップＳＦ５：Ｎｏ）は、その小節の間は引き続き逸脱を続けるため、何もせずに図２１の逸脱処理を終了する。
【０１９３】
一方、現在の再生位置が小節の終わりであった場合、現在ユーザによってメロディが押鍵されているかどうかを判定する（ステップＳＦ６）。メロディ押鍵中である場合（ステップＳＦ６：Ｙｅｓ）は、当該メロディの押鍵が終了するまで（離鍵されるまで）は、現在の逸脱を続けるように設定を行う（ステップＳＦ７）。実際には、押鍵終了まで逸脱すべきことを表すフラグ等を用いて、そのフラグをセットし、当該フラグがセットされている間は逸脱を実行し、その音が離鍵されたら当該フラグをクリアすることとして実現できる。
【０１９４】
そして、ＣＰＵ２１は、この押鍵中のメロディ音が離鍵されたか否かを判定し（ステップＳＦ８）、離鍵された場合には（ステップＳＦ８：Ｙｅｓ）、ステップＳＦ９へ処理を移して、逸脱終了のための処理を行う。一方、離鍵されていない場合には、逸脱終了せず、そのまま本図２１の処理を終了して図２０の処理へ戻る（ステップＳＦ８：Ｎｏ）。
【０１９５】
現在の再生位置が小節の終わりで（ステップＳＦ５：Ｙｅｓ）メロディ押鍵がなかった場合（ステップＳＦ６：Ｎｏ）、あるいは、当該メロディの押鍵が終了するまで逸脱を保持することとされた音の離鍵があった場合（ステップＳＦ８：Ｙｅｓ）には、ＣＰＵ２１は、ステップＳＦ９で、Ｐａｔｔｅｒｎ変数で示される逸脱パターンに応じて設定されていた逸脱設定を解除する（ステップＳＦ９）。
【０１９６】
具体的には、ステップＳＦ４で行われた設定を解除すれば良く、例えば、各パートの発音に割り当てられているＭＩＤＩチャンネルごとの発音に関する設定を、元の、逸脱前の状態に戻すようにすれば良い。例えば、逸脱パターンａの場合は、該当チャンネルのデチューンを元に戻し、また、逸脱パターンｃの場合は、ベロシティ値を元の基準値（標準値）に戻す等を行う。
【０１９７】
そしてさらに、ＣＰＵ２１は、ステップＳＦ２でセットしていた、逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］の値をＯＦＦ（０）にクリアする（ステップＳＦ１０）。その後、本図２１の逸脱処理を終了して、図２０のフローに処理を戻す。
【０１９８】
このようにして、逸脱パターンａ、逸脱パターンｂ、逸脱パターンｃ、逸脱パターンｋ、の場合には、図２０のステップＳＥ３から図２１の処理を実行することにより、これら各逸脱パターンを実行する。
【０１９９】
図２２は、図１３の逸脱パターンｆ「トレモロ／バッテリー奏法」、逸脱パターンｇ「メロディと開始音を交互に発音」、逸脱パターンｈ「持続メロディへのトリル挿入」、逸脱パターンｉ「同音連打」の各逸脱パターンの実施例を示すフローチャートである。これらの各逸脱パターンについては、多くのステップで、同様の処理を行うことによって実現できることから、共通の図２２を用いて説明する。また、図２２の中で、図２１の場合と同様の処理を行うステップについては、同一のステップ番号を付してあり、これらのステップでは基本的に図２１で説明したのと同様の処理を行うことから、説明を省略する。
【０２００】
本図２２においては、図２１のステップＳＦ４の代わりに、ステップＳＧ４が実行される。図２１によって実現された逸脱パターンａ、ｂ、ｃ、ｋの場合は、逸脱条件が成立した際に、ステップＳＦ４で、例えばデチューン値を設定したり、オクターブ値を設定したり、メロディからの遅れを設定したり、あるいはこれらに関するフラグをセットすることで逸脱が実現されていた。
【０２０１】
これに対して、本図２２によって処理される逸脱パターンｆ、ｇ、ｈ、ｉの場合は、逸脱条件が成立した場合に、逸脱した演奏を行わせるために、ステップＳＧ４において実際の音型等の逸脱パターンを生成するようにしている。本図２２によって実現される各逸脱パターンｆ、ｇ、ｈ、ｉの場合、トレモロやトリル、同音連打など、逸脱条件が満たされた場合にはその音が離鍵されるまでの間継続して当該逸脱を行うタイプの逸脱パターンであり、またその逸脱パターンも逸脱パターンａ、ｂ、ｃ、ｋの場合のように、単純なパラメータの設定のみでは済まないものである。このため、本図２２のステップＳＧ４では、各逸脱パターンに応じて、その逸脱中に演奏させる実際の音型等の逸脱パターンを生成することとしている。
【０２０２】
実際には、ステップＳＧ４における逸脱パターン生成処理では、各逸脱パターンに応じた逸脱パターン生成処理を行う。この逸脱パターン生成の具体的な処理の例を図２３、２４に示した。
【０２０３】
図２３は、逸脱パターンｆ「トレモロ／バッテリー奏法」または逸脱パターンｇ「メロディと開始音を交互に発音」で図２２が実行されている場合に、ステップＳＧ４から呼び出されて実行される、逸脱パターン生成処理の例である。
【０２０４】
図２３で、ＣＰＵ２１はまず、現在指定されているジンスの開始音を読み出す（ステップＳＨ１）。具体的には、ジンス指定鍵盤１０１で指定されているジンス、または、あらかじめ設定されているマカームの開始音（第１音）を、ＲＯＭ２２のマカーム／ジンス用データベースから読み出す。
【０２０５】
次に、ＣＰＵ２１は、テンポ設定ボタン１６によって設定された、現在の演奏におけるテンポの情報を読み出し、テンポが６０ＢＰＭすなわち１分間に６０拍のテンポ以下であるか否かを判断する（ステップＳＨ２）。現在の演奏のテンポに応じて、スローテンポのときは短めの音符、アップテンポのときは長めの音符といった具合に、トレモロの音符の長さを変えるためである。
【０２０６】
テンポが６０ＢＰＭ以下であった場合（ステップＳＨ２：Ｙｅｓ）、トレモロ音形パターンを作成する音符長を３２分音符にセットする（ステップＳＨ３）。一方、テンポが６０ＢＰＭより大きい場合（ステップＳＨ２：Ｎｏ）、トレモロ音形パターンを作成する音符長を１６分音符にセットする（ステップＳＨ４）。なお、この音符長については、逸脱パターンごとに異なる長さで設定されるようにしても良い。
【０２０７】
次に、ステップＳＨ１で読み出されたジンスの開始音と、現在ユーザによって演奏されているメロディ音とを交互に繰り返すトレモロパターンを生成し、ＲＡＭ２３の所定の逸脱パターン記憶エリアに記憶する（ステップＳＨ５）。この際、ＣＰＵ２１は、上記のステップＳＨ３若しくはステップＳＨ４でセットされた音符長のトレモロパターンを生成する。具体的には、例えばＭＩＤＩデータとして上記のステップで決定された音長・音高によるトレモロパターンが生成される。
【０２０８】
さらにＣＰＵ２１は、ステップＳＨ５で生成されたトレモロパターンについて、ベロシティを設定する（ステップＳＨ６）。図に示した例では、ステップＳＨ５で一定の（例えば、ＭＩＤＩ規格におけるベロシティ値１００）ベロシティ値でトレモロパターンが生成され、さらにステップＳＨ６で、その一定のベロシティ値を変化させて、各音の強弱の変化を付けるようにする例が示されている。すなわち、第１音めと第３音めを、それぞれ、元の音量の２０％、１０％に、やや強調をして発音するように設定される。
【０２０９】
なお、この場合、奇数音目にユーザ演奏メロディ、偶数音目にジンスの開始音という組み合わせの場合、ユーザ演奏メロディ音が若干強調されて、逸脱しながらも安定した印象を与えることができる。一方、奇数音目にジンスの開始音、偶数音目にユーザ演奏メロディという組み合わせの場合、ユーザ演奏メロディとは異なる音がやや強調され、逸脱した印象をより強く与えることができる。
【０２１０】
図２３の逸脱パターン生成（パターンｆ、ｇ）が終了すると、ＣＰＵ２１は処理を図２２へ戻し、ステップＳＦ６へと処理を進める。このようにして図２３で生成された逸脱パターンは、図１６のステップＳＡ１０における音源発音処理の際に、順次読み出されて発音される。すなわち、ステップＳＡ１０で、あるパートについて、本逸脱パターンｆまたはｇの逸脱中フラグがＯＮ（１）だった場合、図２３で生成されたトレモロパターンが発音される。その際の逸脱パターンの読み出し速度は、現在設定されているテンポに合わせて、読み出し位置を示すポインタ変数などを用いて、同期して順次発音される。この場合、当該パートについては、ユーザ演奏メロディと同じ旋律でのユニゾン演奏は行わず、代わりに逸脱パターンが発音される。また、図２２で処理される逸脱パターンの場合、当該押鍵されている音が押鍵継続されている間は継続して逸脱パターンで発音を続けるため、図２３で生成されたトレモロパターンについては、ループして繰り返し発音され、現在のユーザ押鍵メロディ音が離鍵されるまで繰り返してトレモロパターンが再生される。
【０２１１】
また、図２４は、逸脱パターンｈ「持続メロディへのトリル挿入」で図２２が実行されている場合に、ステップＳＧ４から呼び出されて実行される、逸脱パターン生成処理の例である。
【０２１２】
図２４で、ＣＰＵ２１はまず、ユーザ演奏メロディの音が、現在指定されているジンスの両端の音であるか否かを判断する（ステップＳＩ１）。ユーザ演奏メロディがジンス両端の音であった場合（ステップＳＩ１：Ｙｅｓ）、ジンス内の隣の音からメロディ音へと繰り返すトリル音形パターンを生成する（ステップＳＩ２）。具体的には、例えばジンス内の隣の音からメロディ音へと繰り返すＭＩＤＩデータとしてトレモロパターンが生成される。
【０２１３】
一方、ユーザ演奏メロディがジンス両端の音でない場合（ステップＳＩ１：Ｎｏ）、ユーザ演奏メロディがジンス内の偶数番目の音であるか否かを判断する（ステップＳＩ３）。そして、ユーザ演奏メロディがジンス内の偶数番目の音である場合（ステップＳＩ３：Ｙｅｓ）は、ジンスのすぐ上の音からメロディ音へと繰り返すトリル音形パターンを生成する（ステップＳＩ４）。一方、ユーザ演奏メロディがジンス内の偶数番目の音でない場合、すなわちジンス内の奇数番目の音である場合（ステップＳＩ３：Ｎｏ）は、ジンスのすぐ下の音からメロディ音へと繰り返すトリル音形パターンを生成する（ステップＳＩ５）。
【０２１４】
以上のようにして、図２４に示した逸脱パターンｈの逸脱パターン生成処理においては、ユーザの演奏メロディに基づいて、ユーザ演奏メロディがジンスの中のいずれの位置の音であるかによって、トリル音形を構成する音を決定し、その音とメロディ音とからトリル音形パターンを生成するようになっている。
【０２１５】
図２４の逸脱パターン生成（パターンｈ）が終了すると、ＣＰＵ２１は処理を図２２へ戻し、ステップＳＦ６へと処理を進める。このようにして図２４で生成された逸脱パターンは、図１６のステップＳＡ１０における音源発音処理の際に、パターンｆ、ｇについて上述した処理と同様にして、順次読み出されて発音される。
【０２１６】
また、逸脱パターンｉ「同音連打」で図２２が実行されている場合には、ステップＳＧ４から呼び出されて実行される逸脱パターン生成処理において、例えば、所定の音符（音長）で、ユーザ演奏メロディと同じ音を繰り返し発音する、同音連打のパターンが生成される。この場合において、例えば図２３のステップＳＨ２からＳＨ４で説明したのと同様、テンポの値に応じて、同音連打する各音符の音長を変化させることとしても良い。
【０２１７】
以上のように、図２２のステップＳＧ４では、図２３や図２４に例示したような、各逸脱  パターン番号に応じた逸脱パターン（逸脱用の再生パターン）が生成され、図１６のステップＳＡ１０における音源発音処理の際に、これらの逸脱用の再生パターンが参照されて、逸脱が実現される。
【０２１８】
図２２へ戻って、ステップＳＧ４における逸脱パターンの生成処理が終了すると、ステップＳＦ６へ処理を移行し、既に説明した図２１における処理と同様に処理が進められる。
【０２１９】
ここで、本図２２の場合、ステップＳＦ６でＮｏ、若しくはステップＳＦ８でＹｅｓの場合、すなわち、逸脱を終了させる条件が満たされた場合、図２１のステップＳＦ９に替えてステップＳＧ９の処理が実行される。すなわち、ステップＳＧ９では、Ｐａｔｔｅｒｎ変数で示される逸脱パターンに応じて設定されていた逸脱設定を解除するが、その際、ステップＳＧ４で生成された逸脱パターンをクリアし、またステップＳＡ１０においてループ再生に用いられるポインタ変数などがクリアされる。また、前述と同様にステップＳＦ１０で逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］の値をＯＦＦ（０）にクリアする。
【０２２０】
このようにして、逸脱パターンｆ、逸脱パターンｇ、逸脱パターンｈ、逸脱パターンｉ、の場合には、図２０のステップＳＥ３から図２２の処理を実行することにより、これら各逸脱パターンを実行する。
【０２２１】
さらに、図２５は、図１３の逸脱パターンｄ「上からのプラルトリラー」、逸脱パターンｅ「メロディ音に到達するアルペジォ」、逸脱パターンｌ「ジンスの倚音追加」の各逸脱パターンの実施例を示すフローチャートである。これらの各逸脱パターンについては、多くのステップで、同様の処理を行うことによって実現できることから、共通の図２５を用いて説明する。また、図２５の中で、図２１の場合と同様の処理を行うステップについては、同一のステップ番号を付してあり、これらのステップでは基本的に図２１で説明したのと同様の処理を行うことから、説明を省略する。
【０２２２】
本図２５においては、図２１のステップＳＦ４の代わりに、ステップＳＪ４が実行される。図２１によって実現された逸脱パターンａ、ｂ、ｃ、ｋの場合は、逸脱条件が成立した際に、ステップＳＦ４で、例えばデチューン値を設定したり、オクターブ値を設定したり、メロディからの遅れを設定したり、あるいはこれらに関するフラグをセットすることで逸脱が実現されていた。
【０２２３】
これに対して、本図２５によって処理される逸脱パターンｄ、ｅ、ｌの場合は、逸脱条件が成立した場合に、逸脱した演奏を行わせるために、ステップＳＪ４において実際の音型等の逸脱パターンを生成するようにしている。本図２５によって実現される各逸脱パターンｄ、ｅ、ｌの場合、プラルトリラーやアルペジォ、倚音など、逸脱条件が満たされた場合には、まずこのステップＳＪ４で生成された逸脱パターンを発音させた後に、ユーザ演奏メロディ音とユニゾンの演奏に戻るという形の逸脱を行う。このため、本図２５のステップＳＪ４では、各逸脱パターンに応じて、その逸脱の際の最初に付加して演奏させる実際の音型等の逸脱パターンを生成することとしている。
【０２２４】
実際には、ステップＳＪ４における逸脱パターン生成処理では、各逸脱パターンに応じた逸脱パターン生成処理を行う。図２６は、逸脱パターンｌ「ジンスの倚音追加」で図２５が実行されている場合に、ステップＳＪ４から呼び出されて実行される、逸脱パターン生成処理の例である。
【０２２５】
図２６で、ＣＰＵ２１はまず、ユーザ演奏メロディの音が、現在指定されているジンスの両端の音であるか否かを判断する（ステップＳＫ１）。ユーザ演奏メロディがジンス両端の音であった場合（ステップＳＫ１：Ｙｅｓ）、ジンス内の隣の音を８分音符ぶんの長さの倚音として発音した後に、メロディ音に戻り、以降メロディ音を発音する倚音の逸脱パターンを生成する（ステップＳＫ２）。具体的には、例えばジンス内の隣の音を８分音符分発音した後にメロディ音へと移行するＭＩＤＩデータとして倚音パターンが生成される。
【０２２６】
一方、ユーザ演奏メロディがジンス両端の音でない場合（ステップＳＫ１：Ｎｏ）、ユーザ演奏メロディがジンス内の偶数番目の音であるか否かを判断する（ステップＳＫ３）。そして、ユーザ演奏メロディがジンス内の偶数番目の音である場合（ステップＳＫ３：Ｙｅｓ）は、ジンスのすぐ上の音を８分音符ぶんの長さの倚音として発音した後に、メロディ音に戻り、以降メロディ音を発音する倚音の逸脱パターンを生成する（ステップＳＫ４）。一方、ユーザ演奏メロディがジンス内の偶数番目の音でない場合、すなわちジンス内の奇数番目の音である場合（ステップＳＫ３：Ｎｏ）は、ジンスのすぐ下の音を８分音符ぶんの長さの倚音として発音した後に、メロディ音に戻り、以降メロディ音を発音する倚音の逸脱パターンを生成する（ステップＳＫ５）。
【０２２７】
以上のようにして、図２６に示した逸脱パターンｌの逸脱パターン生成処理においては、ユーザの演奏メロディに基づいて、ユーザ演奏メロディがジンスの中のいずれの位置の音であるかによって、倚音とする音を決定し、その音を所定の長さの倚音として発音した後に、メロディ音に戻り、以降メロディ音を発音する倚音の逸脱パターンを生成する。なお、倚音の音符長は任意の長さとして差し支えない。
【０２２８】
図２６の逸脱パターン生成（パターンｌ）が終了すると、ＣＰＵ２１は処理を図２５へ戻し、ステップＳＪ５へと処理を進める。このようにして図２６で生成された逸脱パターンは、図１６のステップＳＡ１０における音源発音処理の際に、順次読み出されて発音される。なお、図２６で生成される逸脱パターンが、倚音とその後に続くユーザ演奏メロディ音（ユニゾン演奏音）との両方を含む場合は、当該パターンを先頭から順次演奏すれば良い。他方、図２６で生成される逸脱パターンが倚音部分のみである場合には、図１６のステップＳＡ１０では、当該倚音部分のみの逸脱パターンを発音した後に、ユーザ演奏メロディ音をユニゾンで演奏する基本動作モードに復帰するように制御しても良い。
【０２２９】
また、逸脱パターンｅ「アルペジォ」で図２５が実行されている場合には、ステップＳＪ４から呼び出されて実行される逸脱パターン生成処理において、以下のようにしてアルペジォの逸脱パターンが生成される。まず、ＣＰＵ２１は、現在設定されているマカームまたはジンスから、ＲＯＭ２２のマカーム／ジンス用データベースを参照して、マカームまたはジンスの開始音と現在のメロディ音とのアルペジォ音数をカウントする。そして、所定のアルペジォ用の音長（例えば８分音符分など）の中に、このカウントされたアルペジォ音数がほぼ等しい長さで入るような連符数で、このアルペジォ用音長を分割し、マカームまたはジンスの音を順に発音させるアルペジォパターンを生成する。この場合、マカームまたはジンス上の開始音から上行音形または下行音形のいずれかで、ユーザ演奏メロディ音に到達するようなアルペジォの逸脱パターンが生成されるものとする。
【０２３０】
また、逸脱パターンｄ「プラルトリラー」で図２５が実行されている場合には、ステップＳＪ４から呼び出されて実行される逸脱パターン生成処理において、以下のようにしてアルペジォの逸脱パターンが生成される。まず、ＣＰＵ２１は、現在設定されているマカームまたはジンスから、ＲＯＭ２２のマカーム／ジンス用データベースを参照して、マカームまたはジンスの音のうち、現在のメロディ音と隣接する、一つ上の音を決定する。そして、所定の音長（例えば、図１５の例では３２分音符）で、上の音→メロディ音の繰り返しを所定回数繰り返すパターンを生成する。繰り返し回数は、例えば図１５の例では、２回であるが、この回数は任意に決定して良い。そして、繰り返しの最後のメロディ音を持続して、ユーザのメロディ押鍵が終了するまで保持する。
【０２３１】
図２５へ戻って、ステップＳＪ４の処理が終了するか、またはステップＳＦ３でＹｅｓすなわち逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＮ（１）であった場合、ＣＰＵ２１は、ステップＳＪ５へ処理を進め、逸脱パターンの再生が終了したか否かを判断する（ステップＳＪ５）。前述のように、図２６の処理で生成された倚音の逸脱パターンや、あるいはプラルトリラー、アルペジォの逸脱パターンについて、先頭から順次演奏した結果、それらの逸脱パターンの最後まで発音（再生）が終了していた場合には（ステップＳＪ５：Ｙｅｓ）、ＣＰＵ２１はステップＳＪ９へ処理を進める。
【０２３２】
一方、逸脱パターンの再生がまだ終了していない場合（ステップＳＪ５：Ｎｏ）、ユーザによるメロディ音の押鍵中であるか否かが判定される（ステップＳＪ６）。ユーザによるメロディ音の押鍵がまだ継続している場合は（ステップＳＪ６：Ｙｅｓ）、本図２５の処理を終了する。一方、逸脱パターンの再生がまだ終了していないがユーザによるメロディ音の押鍵が終了（離鍵）された場合には（ステップＳＪ５：Ｎｏの後にステップＳＪ６：Ｎｏ）、ＣＰＵ２１はステップＳＪ９へ処理を進める。
【０２３３】
ＣＰＵ２１は、ステップＳＪ９で、逸脱パターンに応じた逸脱の解除処理を行う。具体的には、ステップＳＪ４で生成された逸脱パターンをクリアし、またステップＳＡ１０において逸脱パターンの再生に用いられるポインタ変数などがクリアされる。また、前述と同様にステップＳＦ１０で逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］の値をＯＦＦ（０）にクリアする。
【０２３４】
このようにして、逸脱パターンｄ、逸脱パターンｅ、逸脱パターンｌ、の場合には、図２０のステップＳＥ３から図２５の処理を実行することにより、これら各逸脱パターンを実行する。
【０２３５】
さらに、逸脱パターンがｊ（おかず挿入）の場合、図２０のステップＳＥ３から図２７の処理が呼び出され得る。なお、ここでいう「おかず」とは、一般的に音楽において用いられる「おかず」を表し、合いの手に当たる対旋律や、フィルインなどをいう。
【０２３６】
ＣＰＵ２１は、図２０のステップＳＥ３において、変数Ｐａｔｔｅｒｎが、逸脱パターンｊであった場合、図２７のステップＳＬ１に処理を移し、逸脱条件が成立しているか否かを判定する（ステップＳＬ１）。具体的には、前述と同様、図８〜図１０の伴奏フォーマットセット／逸脱方法指定表のデータベースのいずれか、例えば図８を参照して、メロディ逸脱方法８７０のうちｊに対応する列の、リズムジャンルとパートに対応する箇所（例えば、図８の８０５欄）を参照して、逸脱する条件が満たされたか否かを判定する。
【０２３７】
逸脱条件が成立していた場合（ステップＳＬ１：Ｙｅｓ）、ＣＰＵ２１は、逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］をＯＮ（１）にセットして（ステップＳＬ２）、ステップＳＬ４へ進む。一方、逸脱条件が成立していない場合（ステップＳＬ１：Ｎｏ）、既にステップＳＬ２で逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＮ（１）にセットされているか否かを判定し（ステップＳＬ３）、逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＮ（１）の場合（ステップＳＬ３：Ｙｅｓ）は、やはりステップＳＬ４へ進む。逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］がＯＮ（１）でなかった場合には、図２７のメロディ逸脱（パターンｊ）の処理を終了して図２０へ戻る（ステップＳＬ３：Ｎｏ）。
【０２３８】
ステップＳＬ４に処理が進められると、ＣＰＵ２１は、現在設定されているテンポ情報を参照して、現在のテンポが６０以下であるか否かを判断する（ステップＳＬ４）。これは、テンポに応じて、通常テンポ用のフィルインとスローテンポ用のフィルインのパターンを使い分けるためであり、他にも、アップテンポ用のフィルインパターンを備えていたり、より細かく区切ったテンポごとにフィルインパターンを備えるようにしても良い。
【０２３９】
現在のテンポが６０以下であった場合（ステップＳＬ４：Ｙｅｓ）、現在の拍の位置が３拍中であれば（ステップＳＬ５：Ｙｅｓ）、スローテンポ用の３拍用のフィルインパターンを読み出す（ステップＳＬ６）。また、現在の拍の位置が３拍中でない場合（ステップＳＬ５：Ｎｏ）、スローテンポ用の４拍用のフィルインパターンを読み出す（ステップＳＬ７）。
【０２４０】
なお、ここではリズムは４拍子のリズムを想定しており、また、逸脱条件として、図８の伴奏フォーマットセット／逸脱方法指定表の８０５欄のデータからも判るように、メロディ逸脱トリガーのトリガーナンバー５（Ｔｒｉｇｇｅｒ［５］）の「小節の後半」を含める事などにより、現在の拍の位置が３拍中でない場合は、４拍中に該当しているものとする。
【０２４１】
一方、現在のテンポが６０以下ではなかった場合（ステップＳＬ４：Ｎｏ）、現在の拍の位置が３拍中であれば（ステップＳＬ８：Ｙｅｓ）、通常テンポ用の３拍用のフィルインパターンを読み出す（ステップＳＬ９）。また、現在の拍の位置が３拍中でない場合（ステップＳＬ８：Ｎｏ）、通常テンポ用の４拍用のフィルインパターンを読み出す（ステップＳＬ１０）。
【０２４２】
フィルインパターンは、図２８のフィルインテーブル２８００に例示したような特徴を有するＭＩＤＩパターンとして、ＲＯＭ２２の所定の領域（フィルインパターン記憶領域）に記憶されているフィルインパターンを読み出すことで取得される。
【０２４３】
すなわち、ステップＳＬ６では図２８の２８２０の列のいずれかのフィルインパターンが、ステップＳＬ７では図２８の２８３０の列のいずれかのフィルインパターンが、ステップＳＬ９では図２８の２８４０の列のいずれかのフィルインパターンが、ステップＳＬ１０では図２８の２８５０の列のいずれかのフィルインパターンが読み出される。なお、図２８のａ〜ｆまで例示したフィルインパターンのいずれを選択して発音させるかは、例えば逸脱条件が満たされたパートあるいは楽器に応じて、図２８の想定楽器２８１０の欄の情報を照合して決定するほか、他により詳細な条件をあらかじめ設定しておき、諸々の条件に応じていずれかのパターンを選択するように構成しても良い。
【０２４４】
このようにステップＳＬ４からステップＳＬ１０の処理によって、ふさわしいフィルインパターンが選択されて読み出されると、ＣＰＵ２１はステップＳＬ１１へ処理を進め、ユーザによる新たなメロディ押鍵があったか否かを判断する（ステップＳＬ１１）。図８の伴奏フォーマットセット／逸脱方法指定表の８０５欄のデータのように、メロディ逸脱トリガーのトリガーナンバー６（Ｔｒｉｇｇｅｒ［６］）の「メロディオフ」が逸脱の条件となっていることから、ユーザによる新たなメロディ押鍵があった場合は逸脱を終了させるためである。
【０２４５】
ユーザによる新たなメロディ押鍵があった場合（ステップＳＬ１１：Ｙｅｓ）は、逸脱発音中の音の発音を中断して、ジンスの開始音に発音する音を変更し、小節の終わりまで伸ばして発音するようにセットする（ステップＳＬ１２）。具体的には、例えば、ステップＳＬ６、ＳＬ７、ＳＬ９、ＳＬ１０で読み出されたフィルインパターンの、現在再生中の位置より先の部分（未再生の部分）に、ジンスの開始音を発音するようＭＩＤＩデータを上書きすること等により、図１６のＳＡ１０で再生される音として、逸脱パターンを中断してジンスの開始音を発音するようにすることができる。
【０２４６】
さらに、ＣＰＵ２１は、小節の終わりに到達したか否かを判断する（ステップＳＬ１３）。小節の終わりに到達していたら（ステップＳＬ１３：Ｙｅｓ）、ＣＰＵ２１は、逸脱パターンｊに対応した逸脱設定解除の処理を行う（ＳＬ１４）。具体的には、例えば、読み出されてＲＡＭ２３に記憶されていたフィルインパターンをクリアし、またステップＳＡ１０において逸脱パターンの再生に用いられるポインタ変数などがクリアされる。さらに、逸脱中フラグ［Ｐａｒｔ，Ｐａｔｔｅｒｎ］の値をＯＦＦ（０）にクリアする（ステップＳＬ１５）。
【０２４７】
このようにして、逸脱パターンｊ（おかず挿入）の場合には、図２０のステップＳＥ３から図２７の処理を実行することにより、逸脱パターンの実行を行う。
【０２４８】
以上のように、図２０のメロディ逸脱処理のフローチャートにより、パート変数Ｐａｒｔと逸脱パターン変数Ｐａｔｔｅｒｎを順次変化させながら、すべてのパターンについて全てのパートで、逸脱パターンの実行処理（ステップＳＥ３）を、パターンに応じたそれぞれの処理（図２１から図２７等）を呼び出して実行し、ヘテロフォニー音楽における、ユーザ演奏メロディに対しての伴奏パート等の各パートの発音すべき音を決定する。そして、メインフロー図１６のステップＳＡ１０において、ユーザの演奏メロディ音を発音すると共に、他の伴奏楽器について、基本的にユーザ演奏メロディと同じ旋律を演奏しつつ、図２０で逸脱が指定された場合には、ユーザ演奏メロディに基づきつつ逸脱をした音の発音を行う。これにより、ユーザの演奏メロディに応じたヘテロフォニー的な伴奏を行う電子楽器が実現される。
【０２４９】
以上説明したように、本実施形態では、各伴奏パートについて、ユーザ演奏メロディに合わせて、通常時はユーザ演奏メロディとユニゾンをベースとしたオクターブ違い等の旋律を発音しつつ、図８〜図１０の伴奏フォーマットセット／逸脱方法指定表で設定された所定の逸脱条件が満たされた場合は、ユーザ演奏メロディに基づき、通常時のユニゾン伴奏からは逸脱した種々の逸脱パターンを発音する。これにより、ユーザがメロディを演奏すると、ヘテロフォニー的な伴奏を付加したヘテロフォニー音楽が簡単に演奏できることとなる。これにより、いわゆる西洋音楽とは異なる旋律伴奏によるヘテロフォニー的音楽の伴奏を行って、ユーザが簡単にヘテロフォニー音楽の演奏を行うことができるようになる。
【０２５０】
なお、上記実施形態では、電子楽器１０に備えられたＣＰＵ２１によって、逸脱条件判定部、逸脱処理部、発音指示部の機能が実現される例を説明したが、これらの各部については、適宜、外部接続されたパーソナルコンピュータにおけるソフトウェアによって実現されることとしても良い。この場合、必要に応じて、例えば伴奏フォーマットセット／逸脱方法指定表を記憶する部分は、パーソナルコンピュータ内の記憶装置や、ネットワークを介して接続された外部サーバ等であっても良い。また、サウンドシステム２４やＲＯＭ２２内の音色波形データ記憶部は、外部ハードウェア音源あるいはソフトウェア音源モジュールを用いる構成であっても良い。
【０２５１】
要するに、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０２５２】
また、上述した各実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に適用したり、通信媒体により伝送して各種装置に適用することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【０２５３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段などより構成される全体的な装置を意味するものとする。
【０２５４】
以上の実施形態に関して、さらに以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［付記１］
入力される演奏情報から、所定の条件に基づいて伴奏情報を生成する伴奏情報生成手段と、
前記入力された演奏情報が所定の状態にあるか否かを判定する判定手段と、
前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように、前記伴奏情報生成手段を制御する制御手段と、
を備える伴奏装置。
［付記２］
前記伴奏情報生成手段は、夫々異なる所定の条件に基づいて複数のパート夫々に対応する伴奏情報を生成し、
前記判定手段は、前記入力された演奏情報の状態が、前記複数のパート夫々に対応する所定の状態にあるか否かを判定し、
前記制御手段は、前記入力された演奏情報の状態が前記複数のパート夫々に対応する所定の状態のいずれかに対応すると判定された場合に、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、付記１に記載の伴奏装置。
［付記３］
前記伴奏装置はさらに、リズムジャンルを指定するリズムジャンル指定手段と、当該リズムジャンル指定手段により指定されるリズムジャンルに基づいたリズム情報を生成するリズム情報生成手段と、を備え、
前記判定手段は、前記入力された演奏情報の状態が、前記指定されたリズムジャンルに対応する所定の状態にあるか否かを判定し、
前記制御手段は、前記リズムジャンルに対応する所定の状態にあると判定された場合に、前記所定の条件から、前記指定されたリズムジャンルに対応して逸脱した条件に基づいて伴奏情報を生成するように制御する、付記１または２に記載の伴奏装置。
［付記４］
前記伴奏装置はさらに、入力される演奏情報に基づいてメロディ情報を生成するメロディ情報生成手段をさらに有する、付記１乃至３のいずれかに記載の伴奏装置。
［付記５］
前記制御手段は、前記所定の条件から逸脱した条件に基づく伴奏情報として、所定の効果を付与した伴奏情報を生成するように、前記伴奏情報生成手段を制御する、付記１乃至４のいずれかに記載の伴奏装置。
［付記６］
前記制御手段は、前記所定の条件から逸脱した条件に基づく伴奏情報として、前記入力された演奏情報と、所定の音情報とを組み合わせて伴奏情報を生成するように、前記伴奏情報生成手段を制御する、付記１乃至５のいずれかに記載の伴奏装置。
［付記７］
前記伴奏装置はさらに、音律を指定する音律指定手段を有し、
前記所定の音情報は、前記音律指定手段にて指定された音律に含まれるいずれかの音情報である、付記６に記載の伴奏装置。
［付記８］
前記伴奏情報生成手段は、前記生成される伴奏情報として、前記入力される演奏情報のユニゾンの伴奏情報を生成する、付記１乃至７のいずれかに記載の伴奏装置。
［付記９］
前記制御手段は、前記入力された演奏情報が所定の状態にあると判定された時点から、当該演奏情報の入力が終了する時点まで、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、付記１乃至８のいずれかに記載の伴奏装置。
［付記１０］
前記制御手段は、前記入力された演奏情報が所定の状態にあると判定された時点から、予め定められたタイミングまで、前記対応する所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、付記１乃至８のいずれかに記載の伴奏装置。
［付記１１］
前記判定手段は、前記入力される演奏情報の複数の状態夫々を判定可能に構成され、前記所定の状態として、前記複数種の状態を組み合わせた状態にあるか否かを判定する、付記１乃至１０のいずれかに記載の伴奏装置。
［付記１２］
前記付記１から１１のいずれかに記載の伴奏装置と、
前記伴奏装置によって生成された伴奏情報に基づく楽音を発音する音源手段と、
を備える電子楽器。
［付記１３］
伴奏装置に用いられる伴奏生成方法であって、前記伴奏装置が、
入力される演奏情報から、所定の条件に基づいて伴奏情報を生成し、
前記入力された演奏情報が所定の状態にあるか否かを判定し、
前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御する、伴奏生成方法。
［付記１４］
伴奏装置として用いられるコンピュータに、
入力される演奏情報から、所定の条件に基づいて伴奏情報を生成するステップと、
前記入力された演奏情報が所定の状態にあるか否かを判定するステップと、
前記所定の状態にあると判定された場合に、前記所定の条件から逸脱した条件に基づいて伴奏情報を生成するように制御するステップと、
を実行させるプログラム。
【符号の説明】
【０２５５】
１０・・・・電子楽器
１１・・・・音色指定ボタン
１２・・・・自動伴奏開始・終了指示ボタン
１３・・・・リズムジャンル選択ボタン
１４・・・・リズムエレメント指定ボタン
１５・・・・表示部
１６・・・・テンポ設定ボタン
１００・・・鍵盤
１０１・・・ジンス指定鍵盤
１０２・・・メロディ演奏用鍵盤
２１・・・・ＣＰＵ
２２・・・・ＲＯＭ
２３・・・・ＲＡＭ
２４・・・・サウンドシステム
２５・・・・スイッチ群
２６・・・・音源部
２７・・・・オーディオ回路
２８・・・・スピーカ
８００・・・伴奏フォーマットセットとメロディ逸脱方法指定表（１）ノーマルパターン
９００・・・伴奏フォーマットセットとメロディ逸脱方法指定表（２）ソロパターン
１０００・・伴奏フォーマットセットとメロディ逸脱方法指定表（３）フィルインパターン
８１０、９１０、１０１０・・・リズムジャンル名
８２０、９２０、１０２０・・・パート名
８３０、９３０、１０３０・・・音色
８４０、９４０、１０４０・・・音域／ドラムパターン
８５０、９５０、１０５０・・・メロディとのｄｅｔｕｎｅ
８６０、９６０、１０６０・・・ドローン
８７０、９７０、１０７０・・・メロディ逸脱方法
２８００・・フィルインテーブル
２８１０・・想定楽器
２８２０・・フィルインパターン（テンポ６０以下、２拍フィルイン）
２８３０・・フィルインパターン（テンポ６０以下、１拍フィルイン）
２８４０・・フィルインパターン（テンポ６１以上、２拍フィルイン）
２８５０・・フィルインパターン（テンポ６１以上、１拍フィルイン）
【図１】
2015125344.tif 000003
【図３】
2015125344.tif 000004
【図４】
2015125344.tif 000005
【図５】
2015125344.tif 000006
【図２】
2015125344.tif 000007
【図６】
2015125344.tif 000008
【図７】
2015125344.tif 000009
【図８】
2015125344.tif 000010
【図９】
2015125344.tif 000011
【図１０】
2015125344.tif 000012
【図１１】
2015125344.tif 000013
【図１２】
2015125344.tif 000014
【図１３】
2015125344.tif 000015
【図１４】
2015125344.tif 000016
【図１５】
2015125344.tif 000017
【図１６】
2015125344.tif 000018
【図１７】
2015125344.tif 000019
【図１８】
2015125344.tif 000020
【図１９】
2015125344.tif 000021
【図２０】
2015125344.tif 000022
【図２１】
2015125344.tif 000023
【図２２】
2015125344.tif 000024
【図２３】
2015125344.tif 000025
【図２４】
2015125344.tif 000026
【図２５】
2015125344.tif 000027
【図２６】
2015125344.tif 000028
【図２７】
2015125344.tif 000029
【図２８】
2015125344.tif 000030