(57)【特許請求の範囲】
【請求項１】
ユーザが演奏操作するための演奏操作子と、
発音する音の音色を特定するデータを複数記憶した記憶手段と、
前記記憶手段から音色を特定するデータが選択されたとき、該選択された音色の楽音を所定音高かつ所定時間発音する選択手段と、
前記演奏操作子が演奏操作されたとき、選択された音色を特定するデータに応じた音色でその演奏操作に応じた演奏音の発音を行なう手段と
を備えたことを特徴とする演奏装置。
【請求項２】
ユーザが演奏操作するための演奏操作子と、
前記演奏操作子による１つの発音指示に応じて発音される１つの演奏音に対して所定のパターンで付加的に発音される楽音である付加音のデータを含むボイスシーケンスデータを複数記憶したボイスシーケンスデータ記憶手段と、
前記ボイスシーケンスデータ記憶手段からボイスシーケンスデータが選択されたとき、該選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで付加音を発音する選択手段と、
前記演奏操作子が演奏操作されたとき、その演奏操作による１つの発音指示に応じた演奏音を発音するとともに、前記選択されたボイスシーケンスデータに基づくパターンで付加音の発音を行なう手段と
を備えたことを特徴とする演奏装置。
【請求項３】
請求項２に記載の演奏装置において、
前記演奏操作子が演奏操作されたときに発音される付加音は、前記演奏操作子による１つの発音指示に応じて、前記選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで、かつ、前記演奏操作で指定された音高に応じて該パターンの各音の音高が制御されて、発音される一連の楽音であることを特徴とする演奏装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、音色や付加音の種類が選択されたとき、選択された音色や付加音の種類がどのようなものであるかをユーザに即座に知らせることができる演奏装置に関する。
【０００２】
【従来の技術】
電子楽器においては、鍵盤などの演奏操作子の操作に応じた発音処理に加えて、付加音発音の機能、自動演奏機能、および自動伴奏機能などを備えたものが知られている。付加音発音の機能とは、演奏操作子の操作による発音に対応する付加音を発音する機能である。例えば、１つの演奏音に対して１つの付加音を付けるデュエットや、１つの演奏音に対して２つの付加音を付けるトリオなどがある。また、演奏操作子による１つの発音指示に応じて、所定のパターンで、かつ、演奏操作で指定された音高に応じて該パターンの各音の音高を制御して、複数のキーオンがあったかのように一連の付加音を発音するものもある（例えば、特開平４−３０３８９３号）。自動演奏機能は、ユーザにより選択されたソングデータ（１曲分の自動演奏データ）を再生して自動演奏を行なう機能である。自動伴奏機能は、ユーザにより選択された伴奏スタイルデータに基づいて、ベース音やリズム音などの伴奏音（ユーザの演奏操作に応じて伴奏音の音高制御を行なってもよい）を自動的に発生する機能である。
【０００３】
従来、このようなユーザの演奏に応じた発音処理、付加音の処理、ソングデータの発音処理、および伴奏スタイルデータの再生処理などは、それぞれ別々の処理プログラムを用いて実現していた。また、各処理で用いるデータのフォーマットも別々のものであり、付加音用、ソング用、および伴奏スタイル用の別々のデータが用意されていた。
【０００４】
【発明が解決しようとする課題】
上述の付加音を付ける機能を有する演奏装置では、ユーザは所定の選択操作を行なうことにより付加音の種類を選択することはできるが、付加音の種類を選択した後、鍵盤などの演奏操作子を操作して初めて実際にどのような付加音が発生するのか確認できるのみであった。したがって、付加音を選択しただけでは、見かけ上、何の変化もなく、ユーザが不安を覚える場合があった。特に、子供や初心者では、選択操作を行なっても何の変化もないので、装置が故障したかと感じることもあった。
【０００５】
この発明は、ユーザにより音色や付加音の種類が選択されたとき、選択された音色や付加音の種類がどのようなものであるかをユーザに即座に知らせることができるようにすることを目的とする。
【０００６】
【課題を解決するための手段】
この目的を達成するため、請求項１に係る発明は、ユーザが演奏操作するための演奏操作子と、発音する音の音色を特定するデータを複数記憶した記憶手段と、前記記憶手段から音色を特定するデータが選択されたとき、該選択された音色の楽音を所定音高かつ所定時間発音する選択手段と、前記演奏操作子が演奏操作されたとき、選択された音色を特定するデータに応じた音色でその演奏操作に応じた演奏音の発音を行なう手段とを備えたことを特徴とする。
【０００７】
請求項２に係る発明は、ユーザが演奏操作するための演奏操作子と、前記演奏操作子による１つの発音指示に応じて発音される１つの演奏音に対して所定のパターンで付加的に発音される楽音である付加音のデータを含むボイスシーケンスデータを複数記憶したボイスシーケンスデータ記憶手段と、前記ボイスシーケンスデータ記憶手段からボイスシーケンスデータが選択されたとき、該選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで付加音を発音する選択手段と、前記演奏操作子が演奏操作されたとき、その演奏操作による１つの発音指示に応じた演奏音を発音するとともに、前記選択されたボイスシーケンスデータに基づくパターンで付加音の発音を行なう手段とを備えたことを特徴とする。
【０００９】
請求項３に係る発明は、請求項２に記載の演奏装置において、前記演奏操作子が演奏操作されたときに発音される付加音は、前記演奏操作子による１つの発音指示に応じて、前記選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで、かつ、前記演奏操作で指定された音高に応じて該パターンの各音の音高が制御されて、発音される一連の楽音であることを特徴とする。
【００１０】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【００１１】
図１は、この発明に係る演奏装置のハードウエア構成を示すブロック図である。この演奏装置は、ランダム・アクセス・メモリ（ＲＡＭ）１０１、リード・オンリ・メモリ（ＲＯＭ）１０２、中央処理装置（ＣＰＵ）１０３、タイマ１０４、外部記憶装置１０５、インターフェース１０６、鍵盤１０７、検出回路１０８、スイッチ１０９、検出回路１１０、表示回路１１１、音源回路１１２、効果回路１１３、サウンドシステム１１４、およびバスライン１１５を備えている。
【００１２】
ＲＡＭ１０１は、各種のワーク領域などに使用するメモリである。ＲＯＭ１０２は、ＣＰＵ１０３が実行する制御プログラムや各種の定数データなどを格納する。ＣＰＵ１０３は、この演奏装置全体の動作を制御するＣＰＵであり、特にＲＯＭ１０２上の制御プログラムを実行することによって、音色やバリエーションの選択、ユーザの演奏操作に応じた発音、付加音の発音、ソングデータに基づく発音（自動演奏）、および伴奏スタイルに基づく発音（自動伴奏）などの制御を行なう。その動作については後述する。タイマ１０４は、ユーザが設定したテンポに応じた周期でＣＰＵ１０３にタイマ割込をかけるためのタイマである。タイマ割込がかかったときにＣＰＵ１０３が実行するタイマ割込処理については、図７〜図１０で後述する。また、ＣＰＵ１０３は、測りたい時間を示すインターバルデータをタイマ１０４にセットして、その時間が経過したか否かを判別することができる。
【００１３】
外部記憶装置１０５は、ハードディスク装置（ＨＤＤ）、フレキシブルディスク装置（ＦＤＤ）、ＣＤ−ＲＯＭ（コンパクトディスク−リード・オンリ・メモリ）装置、および光磁気（ＭＯ）ディスク装置などの不揮発に各種の情報を記憶する記憶装置である。ＣＰＵ１０３が実行する制御プログラムをＲＯＭ１０２上に持つ代わりに、外部記憶装置１０５に備えておき、必要に応じて外部記憶装置１０５からその制御プログラムをＲＡＭ１０１上に呼び出して実行するようにしてもよい。このようにすれば、制御プログラムの追加やバージョンアップなどが容易に行なえる。特に、ＣＤ−ＲＯＭなどの着脱可能な記録媒体に記憶されている本発明に係る制御プログラムや各種データをＨＤＤなどにストアするようにすれば、制御プログラムの新規インストールやバージョンアップなどが容易に行なえる。外部記憶装置１０５としては、上記に例示したもののほかにも、様々な形態のメディアを利用する装置が使用できる。
【００１４】
インタフェース１０６は、ＭＩＤＩ（Musical Instrument Digital Interface）あるいは外部コンピュータとの通信インターフェースである。この通信インターフェース１０６は、ＬＡＮ（ローカル・エリア・ネットワーク）やインターネット、電話回線などの通信ネットワークに接続されており、該通信ネットワークを介して、サーバコンピュータと接続される。ＲＯＭ１０２や外部記憶装置１０５に本発明に係る制御プログラムや各種データが記憶されていない場合は、サーバコンピュータからそれらをダウンロードして使用するようにしてもよい。この場合、クライアントとなる本装置は、まず通信インターフェース１０６を介してプログラムやデータのダウンロードを要求するコマンドをサーバコンピュータへ送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやデータを、通信ネットワークを介して本装置へと配信し、本装置が通信ネットワーク１０６を介して、これらのプログラムやデータを受信してハードディスクなどの外部記憶装置１０５に蓄積することにより、ダウンロードが完了する。
【００１５】
鍵盤１０７はユーザが演奏操作するための複数の鍵を備えた鍵盤であり、検出回路１０８は鍵盤１０７の操作を検出し操作情報をＣＰＵ１０３に送出する回路である。スイッチ１０９は、各種の情報を入力するためのパネル上に設けられた複数の操作子である。スイッチ１０９としては、音色を選択するための音色スイッチ、バリエーションを選択するためのバリエーションスイッチ、自動演奏用のソングデータを選択するためのソング選択スイッチ、自動演奏の再生および停止を指示するためのソング再生スイッチおよび停止スイッチ、自動伴奏用の伴奏スタイルデータを選択するための伴奏スタイル選択スイッチ、並びに、自動伴奏の再生および停止を指示するための自動伴奏開始スイッチおよび停止スイッチなどがある。これらのスイッチの構成、および各スイッチを操作したときの動作については、後述する。検出回路１１０は、ユーザによるスイッチ１０９の操作を検出し、操作情報をＣＰＵ１０３に向けて送出する回路である。表示回路１１１は、各種の情報を表示する回路であり、ディスプレイ装置を含むものである。
【００１６】
音源回路１１２は、ＣＰＵ１０３の指示に基づいて楽音信号を発生し、効果回路１１３に送出する。音源回路１１２は、６つの発音チャンネルを備え、６音同時発音可能なものである。なお、詳しくは後述するが、この演奏装置で自動演奏を行なう際に用いるソングデータは６つのトラックからなり、各トラックはそれぞれ１つの発音チャンネルに対応づけられている。したがって、自動演奏時は６つの発音チャンネル、すなわち６トラックすべてが、ソングデータの再生に使用される。ただし、６トラックのうち２トラックは鍵盤演奏が優先されるので、自動演奏時にユーザが鍵盤演奏を行なうと、２音分はソングデータに代えて鍵盤演奏の演奏音が発音される。また、この演奏装置で自動伴奏を行なう際に用いる伴奏スタイルデータは４つのトラックからなり、各トラックはそれぞれ１つの発音チャンネルに対応づけられている。したがって、自動伴奏時は４つの発音チャンネル、すなわち４トラック分が自動伴奏に用いられ、残る２トラック分がユーザによる鍵盤演奏の演奏音の発音に用いられる。自動演奏も自動伴奏も行なわない場合は、６チャンネル分すべてが、ユーザの鍵盤演奏による発音に用いられる。効果回路１１３は、音源回路１１２から送出される楽音信号に残響効果などの各種の効果を付与する。サウンドシステム１１４は、効果回路１１３から送出される効果付与済みの楽音信号に基づいて楽音を放音する。バスライン１１５はこれらの各部を接続するバスラインである。
【００１７】
図１の演奏装置は、例えば汎用のパーソナルコンピュータに音源回路などを含むいわゆる音源ボードを装着し、外部の鍵盤などのＭＩＤＩ機器から演奏情報（ＭＩＤＩ入力）を入力するＭＩＤＩインターフェースを装着して、必要なソフトウエアを実行することで実現できる。また、電子楽器に、必要なスイッチ類とソフトウエアを設けて実現することもできる。
【００１８】
図２は、パネル上に設けられている音色スイッチとバリエーションスイッチの外観を示す。２０１〜２０５は音色を選択するための５個の音色スイッチである。この５個の音色スイッチを操作することにより２５個の音色のうちから１つを選択することができる。選択候補である２５個の音色を「音色１」〜「音色２５」と呼ぶ。
【００１９】
音色スイッチ２０１〜２０５の上側には、選択できる音色名「音色１」〜「音色２５」がマトリックス状に記載（パネル上に印刷）されている。特に、音色スイッチ２０１を用いて「音色１」〜「音色５」の何れかを選択することができるので、音色スイッチ２０１の上側には「音色１」〜「音色５」が順に記載されている。同様に、音色スイッチ２０２を用いて「音色６」〜「音色１０」の何れかを選択することができるので音色スイッチ２０２の上側には「音色６」〜「音色１０」が順に記載され、音色スイッチ２０３を用いて「音色１１」〜「音色１５」の何れかを選択することができるので音色スイッチ２０３の上側には「音色１１」〜「音色１５」が順に記載され、音色スイッチ２０４を用いて「音色１６」〜「音色２０」の何れかを選択することができるので音色スイッチ２０４の上側には「音色１６」〜「音色２０」が順に記載され、音色スイッチ２０５を用いて「音色２１」〜「音色２５」の何れかを選択することができるので音色スイッチ２０５の上側には「音色２１」〜「音色２５」が順に記載されている。
【００２０】
２１１〜２１５と２２１〜２２５は、現在選択されている音色が「音色１」〜「音色２５」のうちのどの音色であるかを表すためのＬＥＤである。ＬＥＤ２１１〜２１５はマトリックス状の「音色１」〜「音色２５」の表示中の縦方向の位置を表し、ＬＥＤ２２１〜２２５はマトリックス状の「音色１」〜「音色２５」の表示中の横方向の位置を表す。例えば、現在選択されている音色が「音色１」であるときはＬＥＤ２１１と２２１が点灯し、現在選択されている音色が「音色９」であるときはＬＥＤ２１４と２２２が点灯することになる。現在選択されている音色を示すために、ＬＥＤ２１１〜２１５のうちの何れか１つと、ＬＥＤ２２１〜２２５のうちの何れか１つが点灯し、その他のＬＥＤは消灯される。
【００２１】
この演奏装置の電源がオンされた初期状態では、「音色１」が選択状態となっており、ＬＥＤ２１１と２２１が点灯している。この状態から音色スイッチ２０１を１回オンするごとに、音色１→音色２→音色３→音色４→音色５→音色１→…と言うように順次音色が切り替わっていく。音色の切り替えに応じてＬＥＤ２１１〜２１５の点灯状態も切り替わる。「音色１」〜「音色５」以外の音色を選択したい場合、ユーザは、マトリックス状の「音色１」〜「音色２５」の表示中から選択したい音色が含まれる列を探し、その列の下側の音色スイッチをオンする。例えば、「音色１」〜「音色５」のうちの何れかが選択されている状態から、音色スイッチ２０２をオンすると、「音色６」が選択状態となり、ＬＥＤ２１１と２２２が点灯する。他のＬＥＤは消灯する。この状態から音色スイッチ２０２を１回オンするごとに、音色６→音色７→音色８→音色９→音色１０→音色６→…と言うように順次音色が切り替わっていく。音色の切り替えに応じてＬＥＤ２１１〜２１５の点灯状態も切り替わる。他の音色に切り替えるときも同様である。以上のようにして、音色スイッチ２０１〜２０５を用いて、ユーザは「音色１」〜「音色２５」のうちから何れかの音色を選択することができる。
【００２２】
なお、ある列の音色が選択されている状態から他の列に切り替わったときは、その列の１番下に記載されている音色が初期状態として選択されることとしている。例えば、スイッチ２０１の列である「音色１」〜「音色５」の何れかが選択されている状態から、スイッチ２０２がオンされて当該スイッチ２０２の列中の音色に切り替わったときは「音色６」が選択され、スイッチ２０３がオンされて当該スイッチ２０３の列中の音色に切り替わったときは「音色１１」が選択され、…という具合である。ただし、前の選択状態を記憶しておき、その状態に戻すようにしてもよい。
【００２３】
これらの２５個の音色のそれぞれは、１つのノーマル音色（基本音色）と３つのバリエーション音色を有する。ノーマル音色とバリエーション音色は１つの音色ととらえることができるので、結局、ユーザは、２５×４＝１００音色を切り替えて音色を選択することができることになる。バリエーションスイッチ２０６は、１つのノーマル音色と３つのバリエーション音色から１つを選択するためのスイッチである。音色スイッチ２０１〜２０５により２５個のうちから１つの音色が選択された直後の初期状態はノーマル音色である。２３１〜２３４は１つのノーマル音色と３つのバリエーション音色のうち、現在選択されている音色を表すＬＥＤである。ＬＥＤ２３１が点灯しているときノーマル音色、ＬＥＤ２３２が点灯しているときバリエーション１の音色、ＬＥＤ２３３が点灯しているときバリエーション２の音色、ＬＥＤ２３４が点灯しているときバリエーション３の音色が、それぞれ選択されていることを示す。ノーマル音色が選択されてＬＥＤ２３１が点灯されている状態から、バリエーションスイッチ２０６をオンするごとに、ノーマル→バリエーション１→バリエーション２→バリエーション３→ノーマル→…というように順次ノーマル音色と３つのバリエーション音色とを切り替えることができる。
【００２４】
ユーザは以上のようにして２５個の音色から１つを選択し、さらにその音色に含まれる１つのノーマル音色と３つのバリエーション音色から１つを選択し、当該選択した音色で演奏操作を行なうことができる。ノーマル音色は基本的な音色であり、鍵盤の演奏操作により１つの楽音の発音指示がきたときは当該音色でかつ演奏操作により指定された音高で１つの演奏音が発音される。３つのバリエーション音色は、対応する基本音色のバリエーションである。特に、バリエーション音色では、鍵盤の演奏操作により１つの楽音の発音指示がきたときは、所定のパターンで幾つかの付加音を付けて発音するようにしている。この演奏装置では、バリエーション１はリバーブやエコーがかかったような音、バリエーション２はメロディックなフレーズ、バリエーション３は効果音的な音を発音する音色としてある。すなわち、バリエーション音色とは、基本音色（ノーマル音色）と同じ楽音波形（例えば、「ピアノ」、「オルガン」など）を有するが、鳴り方が異なるものである。
【００２５】
なお、以下では説明を簡単にするため、単に音色というときには、ノーマルおよびバリエーションの区別も含めた音色を指すものとする。例えば、「選択された音色」というときには、音色スイッチ２０１〜２０５により２５個のうちから１つを選択し、かつ、バリエーションスイッチ２０６によりノーマル音色または３つのバリエーション音色から１つを選択して決定した音色を指すものとする。
【００２６】
図３は、選択された音色を定義するボイスシーケンスデータの例を示す。図３（ａ）はノーマル音色を定義するボイスシーケンスデータの例、図３（ｂ）および図３（ｃ）はバリエーション音色を定義するボイスシーケンスデータの例である。これらのボイスシーケンスデータは、先頭２バイトが共通のフォーマットのヘッダ部であり、必要に応じてヘッダ部の後にシーケンス部が付加されて構成される。シーケンス部は、付加音を付ける場合、すなわちバリエーション音色の場合に用いる。図３（ａ）はヘッダ部３０１のみ（シーケンス部なし）の構成のボイスシーケンスデータであり、図３（ｂ）および図３（ｃ）はヘッダ部３１１，３２１の後にシーケンス部３１２，３２２を有する構成のボイスシーケンスデータである。
【００２７】
ヘッダ部３０１，３１１，３２１のフォーマットについて説明する。２バイトのヘッダ部のうち、第１バイト目の各ビットはそれぞれ以下の情報を表す。なお、図３では上位ビットを左側（一番左側が最上位ビット、すなわち２の７乗ビット）に、下位ビットを右側（一番右側が最下位ビット、すなわち２の０乗ビット）に、記載している。
【００２８】
▲１▼２の７乗ビット：サスティンのオン／オフを示すビットである。０のときサスティンオフ、１のときサスティンオンとする。
【００２９】
▲２▼２の６乗ビット〜２の３乗ビット：未使用。
【００３０】
▲３▼２の２乗ビット：押鍵音と付加音を含むすべての発音をコード変換の対象とするか、押鍵音を除いたすべての発音をコード変換の対象とするかを決定するビットである。０のとき押鍵音と付加音を含むすべての発音をコード変換の対象とし、１のとき押鍵音を除いたすべての発音をコード変換の対象とする。コード変換の対象とするというのは、別途指定された和音（例えば、鍵盤上の和音鍵域で押鍵により指定された和音）に基づいて音高制御して発音するということである。なお、このビットのデータは、後述する第２バイト目で「コードタイプやコードルートによる音高の変換を行なう」場合にのみ有効なデータであり、「コードタイプやコードルートによる音高の変換を行なわない」場合には意味を持たない。
【００３１】
▲４▼２の１乗ビット：絶対値発音か、オフセット加算発音かを示すビットである。０のとき絶対値発音、１のときオフセット加算発音とする。絶対値発音とは、あらかじめ定められた音高のみで発音を行なう方式である。オフセット加算発音とは、押鍵音の音高と音高Ｃ３との差分をあらかじめ定められた音高を示す絶対値にオフセット加算して求めた音高で発音する方式である。
【００３２】
▲５▼２の０乗ビット：通常の押鍵発音か、押鍵音に加えてシーケンス部の付加音をも発音するかを示すビットである。０のとき通常の押鍵発音、１のときシーケンス部を含む発音とする。したがって、このビットが０ならヘッダ部のみのボイスシーケンスデータ（図３（ａ））であり、このビットが１ならヘッダ部の後にシーケンス部が付加されているボイスシーケンスデータ（図３（ｂ）（ｃ））であることが分かる。
【００３３】
２バイトのヘッダ部のうち、第２バイト目の各ビットはそれぞれ以下の情報を表す。
【００３４】
▲１▼２の７乗ビット：コード変換方式のうちコードタイプに基づく変換方式を示すビットである。０のときコードタイプによる音高の変換を行なわないことを示し、１のときコードタイプによる音高の変換を行なうことを示す。コードタイプによる音高の変換とは、別途指定された和音のコードタイプに基づいて該コードタイプに適するように音高制御して発音するということである。
【００３５】
▲２▼２の６乗ビット：コード変換方式のうちコードルートに基づく変換方式を示すビットである。０のときコードルートによる音高の変換を行なわないことを示し、１のときコードルートによる音高の変換を行なうことを示す。コードルートによる音高の変換とは、別途指定された和音のコードルートに基づいて該コードルートと所定音名（例えばＣ）との差に応じて音高制御して発音するということである。
【００３６】
▲３▼２の５乗ビット〜２の０乗ビット：音色を具体的に特定する音色番号を示す。１０進で０〜６３の何れかの値を取る。
【００３７】
例えば、図３（ａ）のヘッダ部３０１の第１，２バイト目の各ビット情報から、当該ボイスシーケンスデータがヘッダ部のみ（シーケンス部なし）のボイスシーケンスデータであり、このボイスシーケンスデータで定義される音色が、サスティンオンで、押鍵音と付加音を含むすべての発音がコード変換の対象（ただしこのデータは意味を持たない）で、オフセット加算発音で、かつ、コードルートおよびコードタイプによる音高の変換を行なわない音色であることが分かる。また、図３（ｂ）のヘッダ部３１１の第１，２バイト目の各ビット情報から、当該ボイスシーケンスデータがヘッダ部に加えてシーケンス部を有するボイスシーケンスデータであり、このボイスシーケンスデータで定義される音色が、サスティンオンで、押鍵音と付加音を含むすべての発音がコード変換の対象（ただしこのデータは意味を持たない）で、絶対値発音で、かつ、コードルートおよびコードタイプによる音高の変換を行なわない音色であることが分かる。また、図３（ｃ）のヘッダ部３２１の第１，２バイト目の各ビット情報から、当該ボイスシーケンスデータがヘッダ部に加えてシーケンス部を有するボイスシーケンスデータであり、このボイスシーケンスデータで定義される音色が、サスティンオンで、押鍵音と付加音を含むすべての発音がコード変換の対象で、オフセット加算発音で、かつ、コードルートおよびコードタイプによる音高の変換を行なう音色であることが分かる。
【００３８】
図３（ｂ）および図３（ｃ）のシーケンス部３１２，３２２について説明する。シーケンス部３１２，３２２は、インターバルデータとイベントデータとの組データである２バイトデータを幾つか並べ、その最後にリピートデータまたはエンドデータを付加したものである。インターバルデータは次のイベントまでの時間間隔を表すデータであり、イベントデータはその時点で発生するイベントのデータである。したがって、インターバルデータとイベントデータとの組データを１組読み出したときには、そのイベントデータに基づいて発音などを行なった後、そのインターバルデータで特定される時間間隔だけ待ち、次の組データ（またはリピートデータかエンドデータ）を読み出すことになる。なお、この例では、１つの押鍵によるシーケンスは１つの発音チャンネルに供給するようにしているため同時に複数イベントを発生させるようになっていないが、１つの押鍵によるシーケンスを複数の発音チャンネルに供給可能とすれば同時複数イベント発生も可能である。シーケンス部３１２の最後にあるリピートデータは、鍵盤の鍵が押下され続けているときシーケンス部３１２の先頭に戻って、繰り返しこのシーケンス部にしたがう発音を行なうことを意味する。シーケンス部３２２の最後にあるエンドデータは、鍵盤の鍵が押下され続けていても、このシーケンス部３２２の最後のイベントまで発音したら先頭に戻らずに発音を終了することを意味する。
【００３９】
ヘッダ部の各ビットの設定状態やシーケンス部のインターバルデータとイベントデータの並び方が異なるデータを用意することで、前述のような様々なバリエーション音色を得ることができる。
【００４０】
図２で説明した音色スイッチ２０１〜２０５およびバリエーションスイッチ２０６を用いた音色の選択が行なわれると、選択された音色に対応するボイスシーケンスデータが１つ選ばれる。鍵盤を演奏操作することにより、その選択されたボイスシーケンスデータにしたがって発音が実行される。具体的には、図３（ａ）のボイスシーケンスデータの音色では、このヘッダ部３０１の各ビット情報で指定された態様かつ音色番号で、演奏操作により指定された音高の演奏音が発音される。図３（ｂ）または図３（ｃ）のボイスシーケンスデータの音色では、このヘッダ部３１１または３２１の各ビット情報で指定された態様かつ音色番号で、シーケンス部３１２または３２２にしたがって付加音が付加されて発音される。
【００４１】
次に、この演奏装置における自動演奏機能と自動伴奏機能について説明する。この演奏装置では、ユーザは、ソング選択スイッチを操作することにより自動演奏用の１曲分の演奏データを選択することができる。また、ユーザは、ソング再生スイッチおよびソング停止スイッチを操作することにより、選択した自動演奏用データを再生（自動演奏）し、その再生を停止することができる。図４（ａ）は、自動演奏用の１曲分の演奏データであるソングシーケンスデータの例を示す。
【００４２】
また、この演奏装置では、ユーザは、伴奏スタイル選択スイッチを操作することにより自動伴奏用の伴奏スタイルデータを選択することができる。また、ユーザは、自動伴奏開始スイッチおよび自動伴奏停止スイッチを操作することにより、選択した伴奏スタイルデータに基づく自動伴奏を開始し、その自動伴奏を停止することができる。図４（ｂ）は、自動伴奏用の伴奏スタイルデータであるソングシーケンスデータの例を示す。
【００４３】
ソング選択スイッチおよび伴奏スタイル選択スイッチの構成は、図２に示した音色選択スイッチ２０１〜２０５と同様のものである。自動演奏を行なうときは自動伴奏は行なえず、逆に自動伴奏を行なうときは自動演奏は行なえない。すなわち、自動演奏用の演奏データの選択と自動伴奏用の伴奏スタイルデータの選択は択一的である。したがって、自動演奏用の演奏データが選択されている状態で自動伴奏用の伴奏スタイルデータの選択操作が行なわれると、自動演奏用の演奏データの選択が解除されて選択操作が行なわれた伴奏スタイルデータが選択される。また、自動伴奏用の伴奏スタイルデータが選択されている状態で自動演奏用の演奏データの選択操作が行なわれると、伴奏スタイルデータの選択が解除されて選択操作が行なわれた自動演奏用の演奏データが選択される。図４で後述するように、自動演奏用の演奏データと自動伴奏用の伴奏スタイルデータはソングシーケンスデータという共通のフォーマットで記憶されており、これを再生する処理プログラムも共通である。
【００４４】
図４（ａ）の自動演奏用のソングシーケンスデータはヘッダ部４０１とシーケンス部４１１〜４１６からなる。図４（ｂ）の自動伴奏用のソングシーケンスデータはヘッダ部４２１とシーケンス部４３１〜４３４からなる。これらのソングシーケンスデータは共通のフォーマットである。ヘッダ部４０１，４２１の第１バイト目の上位５ビット（２の７乗ビット〜３乗ビット）は、これらのソングシーケンスデータを用いて自動演奏または自動伴奏を行なう際のテンポを指定するデータである。ヘッダ部４０１，４２１の第１バイト目の２の２乗ビットは、当該ソングシーケンスデータで使用するトラック数を示す。０のとき６トラックすべてを使用することを示し、１のとき４トラック分を使用することを示す。この例では、６トラックすべてを使用するのは自動演奏を行なうとき、４トラックを使用するのは自動伴奏を行なうときである。したがって、２の２乗ビットが０のシーケンスデータは自動演奏用のソングシーケンスデータ、２の２乗ビットが１のシーケンスデータは自動伴奏用のソングシーケンスデータである。ヘッダ部４０１，４２１の第１バイト目の下位２ビット（２の１乗ビットと０乗ビット）は、拍子データ（４分の４拍子、４分の３拍子など）を示す。
【００４５】
ヘッダ部４０１，４２１の第２バイト目から、各トラックに関する情報がトラック数分並べられる。１トラックに関する情報は１バイトである。図４（ａ）の自動演奏用のソングシーケンスデータでは６トラックを使用するので、ヘッダ部４０１の第２バイト目からの６バイト分が６つの各トラックに関する情報である。図４（ｂ）の自動伴奏用のソングシーケンスデータでは４トラックを使用するので、ヘッダ部４２１の第２バイト目からの４バイト分が４つの各トラックに関する情報である。１つのトラックに関する１バイトの情報のフォーマットは、図３で説明したボイスシーケンスデータのヘッダ部の第２バイト目と同じである。すなわち、２の７乗ビットはそのトラックに適用するコードタイプに基づく変換方式を示し、２の６乗ビットはそのトラックに適用するコードルートに基づく変換方式を示し、その下の下位６ビットはそのトラックで用いる音色番号を示す。
【００４６】
ヘッダ部４０１，４２１の後には各トラックのシーケンス部が付加されている。図４（ａ）は自動演奏用のソングシーケンスデータであるので、６トラック分のシーケンス部４１１〜４１６が付加されている。４１１はフレーズトラック１、４１２はフレーズトラック２、４１３はベーストラック、４１４はリズムトラック、４１５はキーボードトラック１、４１６はキーボードトラック２のシーケンス部を示す。なお、ヘッダ部４０１の後に付加される各トラックのシーケンス部の順序は図示した４１１から４１６の順序とし、ヘッダ部４０１の第１バイト目の後に付加される各トラックに関する情報の順序もこの順とする。これらの６つのトラックは、音源回路１１２の６つの発音チャンネルにそれぞれ割り当てられている。キーボードトラック１とキーボードトラック２の２つのトラックに対しては鍵盤演奏が優先されるので、ソングシーケンスデータによる自動演奏時にユーザが鍵盤演奏を行なうと、これらの２つのトラックのシーケンス部４１５，４１６のデータによる発音の代わりに、これらの２つのトラックの発音で用いられていた発音チャンネルを用いて鍵盤演奏の演奏音が発音される。
【００４７】
図４（ｂ）は自動伴奏用のソングシーケンスデータであるので、４トラック分のシーケンス部４３１〜４３４が付加されている。４３１はフレーズトラック１、４３２はフレーズトラック２、４３３はベーストラック、４３４はリズムトラックのシーケンス部を示す。残りの２つのトラック、すなわちキーボードトラック１とキーボードトラック２はユーザによる鍵盤演奏の演奏音の発音用に用いられる。なお、ヘッダ部４２１の後に付加される各トラックのシーケンス部の順序は図示した４３１から４３４の順序とし、ヘッダ部４２１の第１バイト目の後に付加される各トラックに関する情報の順序もこの順とする。
【００４８】
各トラックのシーケンス部４１１〜４１６，４３１〜４３４のフォーマットは、図３で説明したボイスシーケンスデータのシーケンス部３１２，３２２と同じである。図４（ａ）のシーケンス部４１１の最後のデータはエンドデータとし、図４（ｂ）のシーケンス部４３１の最後のデータはリピートデータとしているが、各シーケンス部のデータは任意に設定できる。
【００４９】
一般的に、自動演奏の場合は、指定された和音に基づいて演奏データの音高を変換することはせず、かつ演奏も最後まで一通り進んだらそこで停止することが多い。このため、図４（ａ）に示すように、自動演奏用のソングシーケンスデータの場合は、ヘッダ部における各トラックの音高変換に関するビットはすべて「０」であり、シーケンス部における最後のデータは「エンドデータ」とすることが多い。逆に、自動伴奏の場合は、指定された和音に基づいて演奏データの音高を変換し、かつ１ないし数小節分の短い演奏パターンの繰り返し演奏であることが多い。このため、図４（ｂ）に示すように、伴奏スタイルシーケンスデータの場合は、ヘッダ部における各トラックの音高変換に関するビットは、リズムトラックである４３４に対応するバイトを除いて「１」に設定されており、シーケンス部における最後のデータは「リピートデータ」とすることが多い。このように自動演奏と自動伴奏の場合のそれぞれの特徴をヘッダ部の各ビットやシーケンス部のデータに反映させることによって、共通フォーマットを採りつつ、両者の使い分けが可能になっている。なお、自動演奏であっても和音に基づいて演奏データの音高を変換するように設定したり、自動伴奏であっても和音に基づいて演奏データの音高を変換しないように設定したりすることも、必要に応じて可能である。
【００５０】
なお、図３および図４で説明したボイスシーケンスデータおよびソングシーケンスデータは、ＲＯＭ１０２に格納されているものとし、必要なときにＲＯＭ１０２から読み出して使用するものとする。ＲＯＭ１０２から読み出して使用する代わりに、ＲＯＭ１０２に格納されているデータをＲＡＭ１０１上に読み出して使用するようにしてもよい。また、これらのデータを外部記憶装置１０５に格納しておき、必要に応じてＲＡＭ１０１上に読み出して使用するようにしてもよい。
【００５１】
図５は、図２で説明した音色スイッチ２０１〜２０５およびバリエーションスイッチ２０６を用いて音色選択操作を行なったときにＣＰＵ１０３が実行する音色選択処理のフローチャートである。
【００５２】
まずステップ５０１で、選択された音色に対応するボイスシーケンスデータを読み出し、そのヘッダ部の各ビット情報（図３）に応じた各種の設定情報を音源回路１１２に送って各種の設定を行なう。次にステップ５０２で、シーケンス部にしたがう発音（シーケンス発音）を行なうか否かを判別する。これは読み出したボイスシーケンスデータのヘッダ部の第１バイト目の２の０乗ビットを参照することにより判別する。シーケンス発音でないときは、ステップ５０３で、音源回路１１２へ所定の音高のノートデータを出力して発音した後、所定時間後に消音して、リターンする。
【００５３】
ステップ５０２でシーケンス発音であるときは、ステップ５０４で、当該シーケンス部の最初の２バイトデータ（インターバルデータとイベントデータ）を読み出す。次にステップ５０５で１バイト目のインターバルデータをタイマ１０４にセットし、ステップ５０６で２バイト目のイベントデータを音源回路１１２へ出力する。これにより１番始めのイベントデータに応じた発音などが実行される。次にステップ５０７で、ステップ５０５でタイマ１０４にセットしたインターバルデータにしたがう時間だけ経過したかどうかを判別し、経過していないときは再びステップ５０７に戻ってこれを繰り返す。
【００５４】
ステップ５０７でインターバルデータで指定された時間だけ経過したときは、ステップ５０８で当該シーケンス部から次の２バイトデータを読み出す処理を行ない、ステップ５０９でその２バイトデータが読み出せたか否かを判別する。読み出すべき２バイトデータが無かったときは、リピートまたはエンドデータであるということであるから、リターンする。２バイトデータが読み出せた場合は、ステップ５１０で１バイト目のインターバルデータをタイマ１０４にセットし、ステップ５１１で２バイト目のイベントデータを音源回路１１２に出力して発音などを実行し、再びステップ５０７に戻る。
【００５５】
以上の処理により、ユーザが音色スイッチ２０１〜２０５とバリエーションスイッチ２０６を操作して所望の音色を選択したときには、その選択した音色での発音が確認のために実行される（詳しくは、ユーザが音色スイッチ２０１〜２０５の何れかを操作するごとに図５の処理が呼び出され、またユーザがバリエーションスイッチ２０６を操作するごとに図５の処理が呼び出される）。この場合、選択した音色に対応するボイスシーケンスデータが図３（ａ）のタイプ（押鍵音のみ発音）のものであったときは所定の音高の楽音が１回発音され、図３（ｂ）または図３（ｃ）のタイプ（シーケンス部あり）のものであったときはそのシーケンス部にしたがう発音が一通り（リピートデータまたはエンドデータまで）実行される。これにより、ユーザは、自分が選択した音色がどのようなものであるか（特にシーケンス部があるときにそのシーケンス部にしたがってどのような付加音が発音されるのか）容易に把握でき、初心者などにとっても使い勝手がよい。
【００５６】
図６は、ユーザによる鍵盤１０７の演奏操作が行なわれたときにＣＰＵ１０３が実行する鍵盤処理（特にソングシーケンスデータが選択されており自動演奏または自動伴奏を行ないつつ鍵盤演奏を行なう場合）のフローチャートを示す。
【００５７】
まずステップ６０１で、鍵盤１０７の何れかの鍵のキーオンがあったか否かを判別する。キーオンがなかったときは、ステップ６０６へ進む。キーオンがあったときは、ステップ６０２で、第１キーオンフラグＫＯＮ１が０であるか否かを判別する。第１キーオンフラグＫＯＮ１は、現在キーボードトラック１で押鍵に基づく発音が行なわれているか否かを示すフラグであり、発音が行なわれているとき１、いないとき０とする（電源オン直後の初期値は０）。フラグＫＯＮ１が０であるときは、キーボードトラック１で現在押鍵に基づく発音が行なわれていないということであるから、ステップ６０３で、フラグＫＯＮ１に１をセットし、レジスタＫＣ１にキーオンを検出したキーコードをセットして、ステップ６０６に進む。
【００５８】
ステップ６０２でフラグＫＯＮ１が０でなかったときは、キーボードトラック１で現在押鍵に基づいて発音中であるということだから、ステップ６０４で、第２キーオンフラグＫＯＮ２が０であるか否かを判別する。第２キーオンフラグＫＯＮ２は、現在キーボードトラック２で押鍵に基づく発音が行なわれているか否かを示すフラグであり、発音が行なわれているとき１、いないとき０とする（電源オン直後の初期値は０）。フラグＫＯＮ２が０であるときは、キーボードトラック２で現在押鍵に基づく発音が行なわれていないということであるから、ステップ６０５で、フラグＫＯＮ２に１をセットし、レジスタＫＣ２にキーオンを検出したキーコードをセットして、ステップ６０６に進む。ステップ６０４でフラグＫＯＮ２が０でないときは、キーボードトラック２でも現在押鍵に基づいて発音中であるから、検出したキーオンは無視してステップ６０６に進む。
【００５９】
ステップ６０６では、鍵盤１０７の何れかの鍵のキーオフがあったか否かを判別する。キーオフでないときはそのままリターンする。キーオフであるときは、ステップ６０７で、いまキーオフされた鍵のキーコードがレジスタＫＣ１の値と等しいか否かを判別する。等しいときは、キーボードトラック１で発音されていた鍵がキーオフされたということであるから、ステップ６０８でフラグＫＯＮ１を０にリセットし、ステップ６１１に進む。ステップ６０７でキーオフされたキーコードがレジスタＫＣ１の値と等しくないときは、ステップ６０９で、キーオフされたキーコードがレジスタＫＣ２の値と等しいか否かを判別する。等しいときは、キーボードトラック２で発音されていた鍵がキーオフされたということであるから、ステップ６１０でフラグＫＯＮ２を０にリセットし、ステップ６１１に進む。ステップ６０９でキーオフされたキーコードがレジスタＫＣ２と等しくないときは、そのままリターンする。
【００６０】
ステップ６１１では、フラグＫＯＮ１およびＫＯＮ２の値が共に０であるか否かを判別する。共に０であるときは、ステップ６１２で１小節カウンタＢＡＲＣＮＴに４８をセットして、リターンする。１小節カウンタＢＡＲＣＮＴは、キーボードトラック１および２が共にキーオフされたときから１小節分の時間長さをカウントするためのカウンタである。４８は４／４拍子のときの１小節分の長さを示す値である。ステップ６１１でフラグＫＯＮ１および２のどちらかが０でないときはそのままリターンする。
【００６１】
図７は、テンポに応じた周期で繰り返し実行されるシーケンサ処理（特にソングシーケンスデータが選択されており自動演奏または自動伴奏を行なう場合）のフローチャートを示す。この演奏装置では、タイマ１０４からＣＰＵ１０３に４８分音符の時間間隔ごとに１回タイマ割り込みがかかり、タイマ割り込みがかかるごとにＣＰＵ１０３は図７のシーケンサ処理を実行する。なお、再生のスタート（ソングシーケンスデータのヘッダ部の読み出しなどを含む）およびストップの処理は、図示しないスイッチ処理にて行なう。
【００６２】
まず、ステップ７０１で和音トラック処理を行なう。和音トラック処理は、ユーザの演奏操作による和音の指定を検出し、それに応じた処理を行なうものである。なお、和音トラック処理として、あらかじめ楽曲の進行に対応させて和音進行データを記憶し、これを再生する処理を適用してもよい。次にステップ７０２以降で６つの各トラックの処理を行なう。すなわち、ステップ７０２でフレーズトラック１の処理を行ない、ステップ７０３でフレーズトラック２の処理を行ない、ステップ７０４でベーストラックの処理を行ない、ステップ７０５でリズムトラックの処理を行ない、ステップ７０６でキーボードトラック１の処理を行ない、ステップ７０７でキーボードトラック２の処理を行なった後、リターンする。
【００６３】
次に、ステップ７０２以降の各トラックの処理について説明するが、これらの処理では共通に使用するルーチンもあるので、始めに図８〜図１０を参照してステップ７０６のキーボードトラック１の処理を一通り説明し、次に他のトラックの処理についてキーボードトラック１の処理と異なる部分を中心に説明する。
【００６４】
図８は、図７のステップ７０６のキーボードトラック１の処理のフローチャートを示す。図８は、ステップ７０７のキーボードトラック２の処理にも適用する共通ルーチンであり、ステップ７０６または７０７から呼び出すときは処理対象がキーボードトラック１かキーボードトラック２かをパラメータで特定して呼び出すものとする。図８中、（２）と記載してある部分はキーボードトラック２の処理に関する部分であり、これについては後述する。
【００６５】
まずステップ８０１で、フラグＫＯＮ１が１であるか否か判別する。フラグＫＯＮ１が１であるときは、鍵盤１０７の鍵が押鍵されておりキーボードトラック１でその操作に応じた発音を行なうということだから、ステップ８０２で、その押鍵が新規押鍵であるか否かを判別する。新規押鍵であるときは、ステップ８０３で、発音中のソングシーケンスデータのキーボードトラック１および２のノートがあればこれを消音する。これは、ソングシーケンスデータを用いた自動演奏の途中で鍵盤１０７が操作されたときに、ソングシーケンスのうちキーボードトラック１および２の音を消音し、該２つのトラックを利用してユーザの押鍵操作に応じた音を発音させるためである。なお、鍵盤１０７の操作があったときは、ソングシーケンスのキーボードトラック１および２の両方の音を消音するものとする。
【００６６】
次にステップ８０４で、キーボードトラック１に関して現在の設定（ソングシーケンスデータのヘッダ部で定義されたキーボードトラック１に関する設定）を退避し、選択されている音色に対応するボイスシーケンスデータのヘッダ部を読み出し、その各ビット情報に応じて音源回路１０２のキーボードトラック１に対応する発音チャンネルに対して各種の設定を行なう。これは、図４（ａ）のようなソングシーケンスデータにしたがって自動演奏を行なっているときには、キーボードトラック１についてはそのヘッダ部４０１で指定された設定で発音されているので、この設定を所定領域にセーブした後、キーボードトラック１については現在選択されているボイスシーケンスデータ（図３）のヘッダ部の設定に変更して、該設定でユーザの演奏音を発音できるようにするための処理である。なお、キーボードトラック１，２以外の他のトラックについては、そのままソングシーケンスデータに基づく自動演奏を継続する。また、自動演奏でなく自動伴奏が指定されている場合（選択されているソングシーケンスデータが図４（ｂ）のフォーマットの場合）は、キーボードトラック１はあらかじめ鍵盤演奏用に確保されているので、ステップ８０３，８０４の処理は行なわないようにプログラムが組んである。
【００６７】
次にステップ８０５で、当該ボイスシーケンスデータでシーケンス発音が指示されているか否か（すなわちボイスシーケンスデータがシーケンス部を有するか否か）を判別する。シーケンス発音を行なう場合は、ステップ８０７で、当該シーケンス部の最初の２バイトデータを読み出す。そして、ステップ８０８で１バイト目のインターバルデータをタイマ１０４にセットし、ステップ８０９で２バイト目のイベントデータを音源回路１１２のキーボードトラック１の発音チャンネルに出力する。なおノートイベントについては、当該ボイスシーケンスデータのヘッダ部のビット情報に応じて必要であればノートナンバを修正して出力する。ステップ８０９の後、ステップ８１０に進む。
【００６８】
ステップ８０５でシーケンス発音を行なわない場合（すなわち図３（ａ）のタイプのボイスシーケンスデータでユーザによる演奏音のみ発音の場合）は、ステップ８０６で、演奏操作に応じたノートデータを（当該ボイスシーケンスデータのヘッダ部のビット情報に応じて必要であれば該ノートナンバを修正して）音源回路１１２のキーボードトラック１の発音チャンネルへ出力し、ステップ８１０に進む。ステップ８０２で新規押鍵でないときは、その押鍵に対しては既にステップ８０３〜８０９の処理で発音が開始されているから、そのままステップ８１０に進む。
【００６９】
ステップ８１０ではシーケンス発音であるか否かを判別し、シーケンス発音であるときはステップ８１１でトラック処理（図１０で後述）を行なった後、シーケンス発音でないときはそのまま、ステップ８１４に進む。
【００７０】
ステップ８０１でフラグＫＯＮ１が１でないときは、ステップ８１２で新規離鍵があったか否かを判別する。新規離鍵があったときは、ステップ８１３でその離鍵に応じてボイスシーケンスデータの再生終了処理（発音中のノートがあれば消音する）を行ない、ステップ８１４に進む。ステップ８１２で新規離鍵がないときは、そのままステップ８１４に進む。ステップ８１４では、ソングシーケンスのキーボードトラック１の処理（図９で詳述）を行ない、リターンする。
【００７１】
図９は、図８のステップ８１４で実行するソングシーケンスのキーボードトラック１の処理を示すフローチャートである。図９はソングシーケンスのキーボードトラック２の処理にも適用する共通ルーチンであり、呼び出すときは処理対象がキーボードトラック１かキーボードトラック２かをパラメータで特定して呼び出すものとする。図９では「ソングシーケンスのキーボードトラック１，２処理」と記載しているが、キーボードトラック２の処理については後述する。
【００７２】
まずステップ９０１で、ソングシーケンスデータによるキーボードトラックでの発音があるか否か、言い替えると自動演奏が指定されているか自動伴奏が指定されているかを判別する。自動伴奏が指定されている場合は、キーボードトラック１は鍵盤演奏用に割り当ててありソング再生に用いられないから、そのままリターンする。自動演奏が指定されている場合は、ステップ９０２で、選択されているソングが現在再生状態であるか否か（すなわち、再生スイッチにより再生が指示されているか、停止スイッチにより停止が指示されているか）を判別する。再生状態でないときはそのままリターンし、再生状態であるときは、ソングシーケンスのキーボードトラック１のシーケンス部に基づく発音を実行するため、ステップ９０３に進む。
【００７３】
ステップ９０３では、タイマ１０４にセットされたインターバルデータに応じた時間が経過したか否かを判別し、経過していたときはステップ９０４で次の２バイトデータを読み出す。なお、ソングシーケンスデータが選択されて再生スイッチがオンされたとき、そのソングシーケンスデータの各トラックに関して、シーケンス部の最初の２バイトデータが読み出されて処理（イベントデータに基づいて発音などが行なわれるとともに、インターバルデータがタイマ１０４にセットされる）されているものとする。
【００７４】
次にステップ９０５で、その２バイトデータが読み出されたか否かを判別する。２バイトデータが読み出されたときは、ステップ９０６で１バイト目のインターバルデータをタイマ１０４にセットし、ステップ９０７で２バイト目のイベントデータをイベントバッファに書き込む。ノートイベントについては、当該ソングシーケンスデータのヘッダ部の各ビット情報に応じてノートナンバを修正してイベントバッファに書き込む。ステップ９０７の後、ステップ９１１に進む。
【００７５】
ステップ９０５で２バイトデータがなかったときは、ステップ９０８で、エンドデータが読み出されたか否かを判別する。エンドデータが読み出されたときは、当該キーボードトラック１の再生をステップ９０９で終了させ、ステップ９１１に進む。ステップ９０８でエンドデータでないときは、リピートデータが読み出されたということであるから、ステップ９１０で当該キーボードトラック１のシーケンス部の先頭に戻って、ステップ９０４に戻る。ステップ９０３でキーボードトラック１に関して設定されたインターバルが経過していなかったときは、ステップ９１１に進む。
【００７６】
ステップ９１１では、レジスタＫＯＮ１および２がともに０であるか否かを判別する。ともに０であるときは、鍵盤演奏が行なわれていないということであるから、ステップ９１２で小節カウンタＢＡＲＣＮＴが０であるか否かを判別する。ＢＡＲＣＮＴが０であるときは、ステップ９１３でイベントバッファのデータを音源回路１１２のキーボードトラック１の発音チャンネルに出力して発音などを行ない、リターンする。ステップ９１２で小節カウンタＢＡＲＣＮＴが０でないときは、ステップ９１４で小節カウンタＢＡＲＣＮＴをデクリメントし、ステップ９１５で小節カウンタＢＡＲＣＮＴが０になったか否かを判別する。ＢＡＲＣＮＴが０になったときは、図８のステップ８０４で退避していた当該ソングシーケンスデータのヘッダ部で定義されたキーボードトラック１および２に関する設定を、ステップ９１６で復活（キーボードトラック１および２を一緒に復活するものとする）し、リターンする。ステップ９１５で小節カウンタＢＡＲＣＮＴが０でないときは、そのままリターンする。
【００７７】
ステップ９１１でフラグＫＯＮ１または２の何れかが０でないときは、鍵盤演奏が行なわれたため図８のステップ８０３でソングのキーボードトラックの再生音が消音されているということであり、この場合はソングシーケンスデータに基づくキーボードトラック１の再生を行なう必要はないから、そのままリターンする。
【００７８】
なお、ステップ９１１〜９１６の処理は、ソング再生中に鍵盤演奏が行なわれてソングのキーボードトラック１および２の再生が中止（ステップ８０３）された場合に、その鍵盤演奏でキーボードトラック１および２の両方が離鍵された時点から１小節分の時間経過後にソングのキーボードトラック１および２の再生を復活するための処理である。すなわち、図６のステップ６１１，６１２でキーボードトラック１および２の両方が離鍵された時点で小節カウンタＢＡＲＣＮＴに４８をセットし、一方、４８分音符の時間間隔ごとに実行される図９のソングシーケンスのキーボードトラック１の処理では、ステップ９１１〜９１６でキーボードトラック１および２の両方が離鍵されていてＢＡＲＣＮＴが０でないときはＢＡＲＣＮＴをデクリメントするようにしている。そして、ＢＡＲＣＮＴが０になったら、退避していたソングのキーボードトラック１，２の設定を復活する。次に、図９の処理に入ったときには、ステップ９１１→９１２→９１３と進み、ソングシーケンスデータに基づく設定で、ソングシーケンスデータのキーボードトラック１の再生を行なう。
【００７９】
図１０は、図８のキーボードトラック１の処理のステップ８１１で実行されるボイスシーケンスのキーボードトラック１についてのトラック処理のフローチャートを示す。図１０のトラック処理は、ボイスシーケンスのキーボードトラック１以外の他のトラック（具体的には、ボイスシーケンスのキーボードトラック２、並びに、ソングシーケンスのフレーズトラック１、フレーズトラック２、ベーストラック、およびリズムトラックの処理）にも適用する共通ルーチンであり、このトラック処理を呼び出すときには、処理対象であるトラックを特定する情報をパラメータとして与える。ここでは、図８のステップ８１１で呼び出すトラック処理について説明するので、処理対象のトラックはボイスシーケンスのキーボードトラック１である。他のトラックに対するトラック処理については後述する。
【００８０】
まずステップ１００１で、処理対象のトラック（ここではボイスシーケンスのキーボードトラック１）が再生状態であるか否かを判別する。再生状態とは、自動演奏または自動伴奏の再生状態（自動演奏や自動伴奏の再生スイッチまたは停止スイッチによる指定状態）であり、処理対象のトラックが自動演奏および自動伴奏のトラックでない場合、すなわち処理対象のトラックが鍵盤演奏の演奏音を発音するボイスシーケンスのキーボードトラックである場合は、必ず発音するので無条件に再生状態と見なすものとする。ここでは、処理対象が鍵盤演奏の演奏音を発音すべきボイスシーケンスのキーボードトラック１であるので、再生状態であるものと見なし、ステップ１００２に進む。
【００８１】
ステップ１００２では、処理対象のトラックに対して設定されているインターバルが経過したか否かを判別する。なお、インターバルの経過は各シーケンスデータのトラックごとに独立に管理されている。すなわち、各トラックのシーケンス発音においてはインターバルデータをタイマ１０４にセットして経過時間を待つ処理が行なわれるが、これは各シーケンスのトラックごとに独立にインターバルデータをセットし独立に経過時間を計っているものである。また、キーボードトラックについては、ソング再生の場合にソングシーケンスデータのキーボードトラックのシーケンス部に基づいて発音するときと、鍵盤演奏に基づくシーケンス発音をボイスシーケンスのキーボードトラックを用いて行なうときとの両方の場合で、インターバルデータのタイマ１０４へのセットおよび経過時間の判別が行なわれるが（ステップ９０３と１００２）、これらについても独立に経過時間が管理されているものとする。ここではボイスシーケンスデータに基づいてキーボードトラック１で発音する場合のインターバル（ボイスシーケンスデータのシーケンス部から読み出されたインターバルデータ）の経過の判別である。
【００８２】
ステップ１００２でインターバルが経過していないときは、そのままリターンする。インターバルが経過していたときは、ステップ１００３で、処理対象のシーケンス部（ここではボイスシーケンスデータのシーケンス部）から次の２バイトデータを読み出す。なお、このトラック処理では、処理対象のトラックがパラメータで与えられれば、処理すべきシーケンス部が分かる。処理対象がボイスシーケンスのキーボードトラック１のときは現在選択されているボイスシーケンスデータのシーケンス部、処理対象がボイスシーケンスのキーボードトラック２のときは現在選択されているボイスシーケンスデータのシーケンス部、処理対象がフレーズトラック１のときは現在選択されているソングシーケンスデータのフレーズトラック１のシーケンス部、処理対象がフレーズトラック２のときは現在選択されているソングシーケンスデータのフレーズトラック２のシーケンス部、処理対象がベーストラックのときは現在選択されているソングシーケンスデータのベーストラックのシーケンス部、処理対象がリズムトラックのときは現在選択されているソングシーケンスデータのリズムトラックのシーケンス部を、それぞれ読み出すことになる。現在選択されているソングシーケンスデータは、自動演奏用のデータである場合もあるし自動伴奏用のデータである場合もある。
【００８３】
次にステップ１００４では、その２バイトデータがあったか否かを判別する。あったときは、ステップ１００５で１バイト目のインターバルデータをタイマ１０４にセットし、ステップ１００６で２バイト目のイベントデータを音源回路１１２の処理対象のトラックに対応する発音チャンネル（ここではキーボードトラック１に対応する発音チャンネル）に出力する。ノートイベントについては、処理対象のシーケンス部が属するシーケンスデータのヘッダ部の各ビット情報に応じてノートナンバを修正して出力する。ステップ１００６の後、リターンする。
【００８４】
ステップ１００４で２バイトデータがなかったときは、ステップ１００７で、エンドデータが読み出されたか否か判別する。エンドデータが読み出されたときは、ステップ１００８で当該トラックの再生を終了し、リターンする。ステップ１００７でエンドデータでないときは、リピートデータであるということであるから、ステップ１００９で当該トラックの先頭に戻り、ステップ１００３に戻る。なお、処理対象がキーボードトラック１または２のときは、ステップ１００８でそれぞれフラグＫＯＮ１または２を０にリセットするものとする。これは、鍵盤１０７の鍵を押し続けても、ボイスシーケンスデータのシーケンス部をエンドデータまで読み出して再生したときには、フラグＫＯＮをリセットして次の押鍵に備えるためである。
【００８５】
次に、図７のステップ７０７のキーボードトラック２の処理を説明する。ステップ７０７では、上述の図８の共通ルーチンを呼び出す。このとき、処理対象がキーボードトラック２であることをパラメータで特定して呼び出すものとする。処理対象がキーボードトラック２であるので、キーボードトラック１の代わりにキーボードトラック２に対して図８の処理を行なうことになる。また、ステップ８０１で参照するフラグはＫＯＮ２となり、ステップ８１４で実行する処理は「ソングシーケンスのキーボードトラック２」の処理となる。なお、ステップ８０３のソングシーケンスデータのキーボードトラック１および２のノートを消音する処理は、キーボードトラック１の処理で両トラックについての消音が既に実行されているので、キーボードトラック２の処理時には消音を実行する必要がない。
【００８６】
キーボードトラック２の処理中、ステップ８１４にあたる位置で実行される「ソングシーケンスのキーボードトラック２の処理」では、上述の図９の共通ルーチンを呼び出す。このとき、処理対象がキーボードトラック２であることをパラメータで特定して呼び出すものとする。処理対象がキーボードトラック２であるので、キーボードトラック１の代わりにキーボードトラック２に対して図９の処理を行なうことになる。なお、ソングシーケンスのキーボードトラック１の処理のステップ９１６では、キーボードトラック１および２の設定を一緒に復活してしまうので、ソングシーケンスのキーボードトラック２の処理では、ステップ９１４〜９１６はスキップし、ステップ９１２でＢＡＲＣＮＴが０でなかったときはそのままリターンするようにプログラムが組まれている。
【００８７】
次に、図７のステップ７０２〜７０５のフレーズトラック１処理、フレーズトラック２処理、ベーストラック処理、およびリズムトラック処理について説明する。これらの処理では、それぞれ図１０の共通ルーチンを呼び出す。このとき、フレーズトラック１処理では処理対象がフレーズトラック１であることをパラメータで特定し、フレーズトラック２処理では処理対象がフレーズトラック２であることをパラメータで特定し、ベーストラック処理では処理対象がベーストラックであることをパラメータで特定し、リズムトラック処理では処理対象がリズムトラックであることをパラメータで特定して、それぞれ呼び出すものとする。当然に、各処理では処理対象のトラック（自動演奏が指定されている場合は自動演奏用のソングシーケンスデータの当該トラックが対象となるし、自動伴奏が指定されている場合は自動伴奏用のソングシーケンスデータの当該トラックが対象となる）に対して図１０の処理が実行される。
【００８８】
上述の発明の実施の形態によれば、共通ルーチンを用いて、ユーザの演奏に応じた演奏音（付加音も含む）の発音処理、自動演奏処理、および自動伴奏処理を実現できるので、処理プログラムの簡略化と容量の縮小を実現でき、少ないメモリで多機能を実現できる。また、データのフォーマットも共通化しているので、例えば自動演奏用のソングシーケンスデータを元にして自動伴奏用のソングシーケンスデータを作成するというようなデータの流用が容易に行なえる。さらに、音色を選択したときに、その音色のシーケンスが再生されるので、ユーザは自分が選択した音色がどのようなものであるかを即時に知ることができる。
【００８９】
なお、シーケンスデータ内の各ビット情報の種類や配置などは上記実施の形態に限定されない。例えば、リピートするか否かの情報をヘッダ部の中に含ませるようにしてもよい。シーケンスデータ自体のフォーマットを変形してもよい。また、音源回路の発音チャンネル数やシーケンスのトラック数は上記実施の形態に限定されない。鍵盤操作による発音は先着２音優先発音で、３音以上押鍵されている状態で、発音中の何れかのキーを離しても、新たなキーに発音が割り当てられないような例を示したが、新たなキーに発音が割り当てられるようにしてもよいし、後着優先などの他の割り当て方式を採用してもよい。また、自動演奏、自動伴奏ともにオフの場合は、音源の全チャンネルを鍵盤操作による発音に使用できるようにしてもよい。音色やバリエーションの数や種類、選択のためのスイッチの構成や数、音色の選択の方式などは上記実施の形態に限定されない。
【００９０】
また、この発明は、電子楽器の形態に限らず、パーソナルコンピュータ＋アプリケーションソフトウエアの形態にも適用できる。アプリケーションソフトウエアは、磁気ディスク、光ディスク、半導体メモリなどの記憶媒体に記憶させてパーソナルコンピュータに供給するようにしてもよいし、ネットワークを介して供給するようにしてもよい。上記実施の形態ではユーザが演奏操作する操作子として鍵盤を例示したが、鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、あるいは打楽器タイプなどの形態の電子楽器に本発明を適用することもできる。さらに、音源装置や自動演奏装置などを内蔵した電子楽器に限らず、それぞれが別体の装置をＭＩＤＩや各種ネットワークなどの通信手段を用いて接続したような構成を採ってもよい。
【００９１】
上述の実施の形態で用いたシーケンス部は、「次のイベントまでの相対時間であるインターバルデータ＋イベントデータ」のフォーマットとしたが、イベントの発生時刻を曲や小節内における絶対時間で表した「イベントデータ＋絶対時間」の形式、音符の音高と符長あるいは休符と休符長で演奏データを表した「音高（休符）＋符長」の形式、演奏の最小分解能ごとにメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域に演奏イベントを記憶する「ベタ方式」など、どのような形式でもよい。要するに、イベントデータとそのイベントの発生時間が特定できるデータであればよい。
【００９２】
自動演奏や自動伴奏のテンポを変更する方法は、テンポクロックの周期を変更する方法や、テンポクロックの周期はそのままでタイミングデータの値を修正する方法、１回の処理においてタイミングデータをカウントする値を変更する方法など、どのような方法でもよい。自動演奏用のデータは、１つのトラックが１つのチャンネルに対応するものとしたが、複数のチャンネルのデータが混在した形式でもよいし、各チャンネルのデータがトラックごとに分かれているような形式であってもよい。
【００９３】
音源回路の方式は、波形メモリ方式、ＦＭ（周波数変調）方式、物理モデル方式、高調波合成方式、フォルマント合成方式、ＶＣＯ＋ＶＣＦ＋ＶＣＡのアナログシンセサイザ方式など、どのような方式であってもよい。また、専用のハードウェアを用いて音源回路を構成するようにしてもよいし、ＤＳＰ＋マイクロプログラムを用いて音源回路を構成してもよいし、ＣＰＵ＋ソフトウェアのプログラムで音源回路を構成するようにしてもよい。１つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、１つの発音チャンネルが１つの回路で構成されるような形式のものであってもよい。
【００９４】
【発明の効果】
以上説明したように、この発明によれば、ユーザにより音色の選択が行なわれたときには、その音色の音を確認のために発音し、さらにその音色に付加音が設定されているときには、その付加音も含めて確認のために発音するようにしているので、選択された音色（特に付加音）がどのようなものであるか即時に知ることができ、初心者や子供であっても選択した音色を認識でき、安心できる。
【図面の簡単な説明】
【図１】この発明に係る演奏装置のハードウエア構成を示すブロック図
【図２】パネル上に設けられている音色スイッチとバリエーションスイッチの外観図
【図３】ボイスシーケンスデータの例を示す図
【図４】ソングシーケンスデータの例を示す図
【図５】音色選択処理のフローチャート図
【図６】鍵盤処理のフローチャート図
【図７】シーケンサ処理のフローチャート図
【図８】キーボードトラック１（２）処理のフローチャート図
【図９】ソングシーケンスのキーボードトラック１（２）処理のフローチャート図
【図１０】トラック処理のフローチャート図
【符号の説明】
１０１…ランダム・アクセス・メモリ（ＲＡＭ）、１０２…リード・オンリ・メモリ（ＲＯＭ）、１０３…中央処理装置（ＣＰＵ）、１０４…タイマ、１０５…外部記憶装置、１０６…インターフェース、１０７…鍵盤、１０８…検出回路、１０９…スイッチ、１１０…検出回路、１１１…表示回路、１１２…音源回路、１１３…効果回路、１１４…サウンドシステム、１１５…バスライン、２０１〜２０５…音色スイッチ、２０６…バリエーションスイッチ。
【図１】
0003791784.tif 000002
【図２】
0003791784.tif 000003
【図３】
0003791784.tif 000004
【図４】
0003791784.tif 000005
【図５】
0003791784.tif 000006
【図６】
0003791784.tif 000007
【図７】
0003791784.tif 000008
【図８】
0003791784.tif 000009
【図９】
0003791784.tif 000010
【図１０】
0003791784.tif 000011