JP3791784B2 - 演奏装置 - Google Patents
演奏装置 Download PDFInfo
- Publication number
- JP3791784B2 JP3791784B2 JP2002207626A JP2002207626A JP3791784B2 JP 3791784 B2 JP3791784 B2 JP 3791784B2 JP 2002207626 A JP2002207626 A JP 2002207626A JP 2002207626 A JP2002207626 A JP 2002207626A JP 3791784 B2 JP3791784 B2 JP 3791784B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- performance
- sound
- track
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
この発明は、音色や付加音の種類が選択されたとき、選択された音色や付加音の種類がどのようなものであるかをユーザに即座に知らせることができる演奏装置に関する。
【0002】
【従来の技術】
電子楽器においては、鍵盤などの演奏操作子の操作に応じた発音処理に加えて、付加音発音の機能、自動演奏機能、および自動伴奏機能などを備えたものが知られている。付加音発音の機能とは、演奏操作子の操作による発音に対応する付加音を発音する機能である。例えば、1つの演奏音に対して1つの付加音を付けるデュエットや、1つの演奏音に対して2つの付加音を付けるトリオなどがある。また、演奏操作子による1つの発音指示に応じて、所定のパターンで、かつ、演奏操作で指定された音高に応じて該パターンの各音の音高を制御して、複数のキーオンがあったかのように一連の付加音を発音するものもある(例えば、特開平4−303893号)。自動演奏機能は、ユーザにより選択されたソングデータ(1曲分の自動演奏データ)を再生して自動演奏を行なう機能である。自動伴奏機能は、ユーザにより選択された伴奏スタイルデータに基づいて、ベース音やリズム音などの伴奏音(ユーザの演奏操作に応じて伴奏音の音高制御を行なってもよい)を自動的に発生する機能である。
【0003】
従来、このようなユーザの演奏に応じた発音処理、付加音の処理、ソングデータの発音処理、および伴奏スタイルデータの再生処理などは、それぞれ別々の処理プログラムを用いて実現していた。また、各処理で用いるデータのフォーマットも別々のものであり、付加音用、ソング用、および伴奏スタイル用の別々のデータが用意されていた。
【0004】
【発明が解決しようとする課題】
上述の付加音を付ける機能を有する演奏装置では、ユーザは所定の選択操作を行なうことにより付加音の種類を選択することはできるが、付加音の種類を選択した後、鍵盤などの演奏操作子を操作して初めて実際にどのような付加音が発生するのか確認できるのみであった。したがって、付加音を選択しただけでは、見かけ上、何の変化もなく、ユーザが不安を覚える場合があった。特に、子供や初心者では、選択操作を行なっても何の変化もないので、装置が故障したかと感じることもあった。
【0005】
この発明は、ユーザにより音色や付加音の種類が選択されたとき、選択された音色や付加音の種類がどのようなものであるかをユーザに即座に知らせることができるようにすることを目的とする。
【0006】
【課題を解決するための手段】
この目的を達成するため、請求項1に係る発明は、ユーザが演奏操作するための演奏操作子と、発音する音の音色を特定するデータを複数記憶した記憶手段と、前記記憶手段から音色を特定するデータが選択されたとき、該選択された音色の楽音を所定音高かつ所定時間発音する選択手段と、前記演奏操作子が演奏操作されたとき、選択された音色を特定するデータに応じた音色でその演奏操作に応じた演奏音の発音を行なう手段とを備えたことを特徴とする。
【0007】
請求項2に係る発明は、ユーザが演奏操作するための演奏操作子と、前記演奏操作子による1つの発音指示に応じて発音される1つの演奏音に対して所定のパターンで付加的に発音される楽音である付加音のデータを含むボイスシーケンスデータを複数記憶したボイスシーケンスデータ記憶手段と、前記ボイスシーケンスデータ記憶手段からボイスシーケンスデータが選択されたとき、該選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで付加音を発音する選択手段と、前記演奏操作子が演奏操作されたとき、その演奏操作による1つの発音指示に応じた演奏音を発音するとともに、前記選択されたボイスシーケンスデータに基づくパターンで付加音の発音を行なう手段とを備えたことを特徴とする。
【0009】
請求項3に係る発明は、請求項2に記載の演奏装置において、前記演奏操作子が演奏操作されたときに発音される付加音は、前記演奏操作子による1つの発音指示に応じて、前記選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで、かつ、前記演奏操作で指定された音高に応じて該パターンの各音の音高が制御されて、発音される一連の楽音であることを特徴とする。
【0010】
【発明の実施の形態】
以下、図面を用いてこの発明の実施の形態を説明する。
【0011】
図1は、この発明に係る演奏装置のハードウエア構成を示すブロック図である。この演奏装置は、ランダム・アクセス・メモリ(RAM)101、リード・オンリ・メモリ(ROM)102、中央処理装置(CPU)103、タイマ104、外部記憶装置105、インターフェース106、鍵盤107、検出回路108、スイッチ109、検出回路110、表示回路111、音源回路112、効果回路113、サウンドシステム114、およびバスライン115を備えている。
【0012】
RAM101は、各種のワーク領域などに使用するメモリである。ROM102は、CPU103が実行する制御プログラムや各種の定数データなどを格納する。CPU103は、この演奏装置全体の動作を制御するCPUであり、特にROM102上の制御プログラムを実行することによって、音色やバリエーションの選択、ユーザの演奏操作に応じた発音、付加音の発音、ソングデータに基づく発音(自動演奏)、および伴奏スタイルに基づく発音(自動伴奏)などの制御を行なう。その動作については後述する。タイマ104は、ユーザが設定したテンポに応じた周期でCPU103にタイマ割込をかけるためのタイマである。タイマ割込がかかったときにCPU103が実行するタイマ割込処理については、図7〜図10で後述する。また、CPU103は、測りたい時間を示すインターバルデータをタイマ104にセットして、その時間が経過したか否かを判別することができる。
【0013】
外部記憶装置105は、ハードディスク装置(HDD)、フレキシブルディスク装置(FDD)、CD−ROM(コンパクトディスク−リード・オンリ・メモリ)装置、および光磁気(MO)ディスク装置などの不揮発に各種の情報を記憶する記憶装置である。CPU103が実行する制御プログラムをROM102上に持つ代わりに、外部記憶装置105に備えておき、必要に応じて外部記憶装置105からその制御プログラムをRAM101上に呼び出して実行するようにしてもよい。このようにすれば、制御プログラムの追加やバージョンアップなどが容易に行なえる。特に、CD−ROMなどの着脱可能な記録媒体に記憶されている本発明に係る制御プログラムや各種データをHDDなどにストアするようにすれば、制御プログラムの新規インストールやバージョンアップなどが容易に行なえる。外部記憶装置105としては、上記に例示したもののほかにも、様々な形態のメディアを利用する装置が使用できる。
【0014】
インタフェース106は、MIDI(Musical Instrument Digital Interface)あるいは外部コンピュータとの通信インターフェースである。この通信インターフェース106は、LAN(ローカル・エリア・ネットワーク)やインターネット、電話回線などの通信ネットワークに接続されており、該通信ネットワークを介して、サーバコンピュータと接続される。ROM102や外部記憶装置105に本発明に係る制御プログラムや各種データが記憶されていない場合は、サーバコンピュータからそれらをダウンロードして使用するようにしてもよい。この場合、クライアントとなる本装置は、まず通信インターフェース106を介してプログラムやデータのダウンロードを要求するコマンドをサーバコンピュータへ送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやデータを、通信ネットワークを介して本装置へと配信し、本装置が通信ネットワーク106を介して、これらのプログラムやデータを受信してハードディスクなどの外部記憶装置105に蓄積することにより、ダウンロードが完了する。
【0015】
鍵盤107はユーザが演奏操作するための複数の鍵を備えた鍵盤であり、検出回路108は鍵盤107の操作を検出し操作情報をCPU103に送出する回路である。スイッチ109は、各種の情報を入力するためのパネル上に設けられた複数の操作子である。スイッチ109としては、音色を選択するための音色スイッチ、バリエーションを選択するためのバリエーションスイッチ、自動演奏用のソングデータを選択するためのソング選択スイッチ、自動演奏の再生および停止を指示するためのソング再生スイッチおよび停止スイッチ、自動伴奏用の伴奏スタイルデータを選択するための伴奏スタイル選択スイッチ、並びに、自動伴奏の再生および停止を指示するための自動伴奏開始スイッチおよび停止スイッチなどがある。これらのスイッチの構成、および各スイッチを操作したときの動作については、後述する。検出回路110は、ユーザによるスイッチ109の操作を検出し、操作情報をCPU103に向けて送出する回路である。表示回路111は、各種の情報を表示する回路であり、ディスプレイ装置を含むものである。
【0016】
音源回路112は、CPU103の指示に基づいて楽音信号を発生し、効果回路113に送出する。音源回路112は、6つの発音チャンネルを備え、6音同時発音可能なものである。なお、詳しくは後述するが、この演奏装置で自動演奏を行なう際に用いるソングデータは6つのトラックからなり、各トラックはそれぞれ1つの発音チャンネルに対応づけられている。したがって、自動演奏時は6つの発音チャンネル、すなわち6トラックすべてが、ソングデータの再生に使用される。ただし、6トラックのうち2トラックは鍵盤演奏が優先されるので、自動演奏時にユーザが鍵盤演奏を行なうと、2音分はソングデータに代えて鍵盤演奏の演奏音が発音される。また、この演奏装置で自動伴奏を行なう際に用いる伴奏スタイルデータは4つのトラックからなり、各トラックはそれぞれ1つの発音チャンネルに対応づけられている。したがって、自動伴奏時は4つの発音チャンネル、すなわち4トラック分が自動伴奏に用いられ、残る2トラック分がユーザによる鍵盤演奏の演奏音の発音に用いられる。自動演奏も自動伴奏も行なわない場合は、6チャンネル分すべてが、ユーザの鍵盤演奏による発音に用いられる。効果回路113は、音源回路112から送出される楽音信号に残響効果などの各種の効果を付与する。サウンドシステム114は、効果回路113から送出される効果付与済みの楽音信号に基づいて楽音を放音する。バスライン115はこれらの各部を接続するバスラインである。
【0017】
図1の演奏装置は、例えば汎用のパーソナルコンピュータに音源回路などを含むいわゆる音源ボードを装着し、外部の鍵盤などのMIDI機器から演奏情報(MIDI入力)を入力するMIDIインターフェースを装着して、必要なソフトウエアを実行することで実現できる。また、電子楽器に、必要なスイッチ類とソフトウエアを設けて実現することもできる。
【0018】
図2は、パネル上に設けられている音色スイッチとバリエーションスイッチの外観を示す。201〜205は音色を選択するための5個の音色スイッチである。この5個の音色スイッチを操作することにより25個の音色のうちから1つを選択することができる。選択候補である25個の音色を「音色1」〜「音色25」と呼ぶ。
【0019】
音色スイッチ201〜205の上側には、選択できる音色名「音色1」〜「音色25」がマトリックス状に記載(パネル上に印刷)されている。特に、音色スイッチ201を用いて「音色1」〜「音色5」の何れかを選択することができるので、音色スイッチ201の上側には「音色1」〜「音色5」が順に記載されている。同様に、音色スイッチ202を用いて「音色6」〜「音色10」の何れかを選択することができるので音色スイッチ202の上側には「音色6」〜「音色10」が順に記載され、音色スイッチ203を用いて「音色11」〜「音色15」の何れかを選択することができるので音色スイッチ203の上側には「音色11」〜「音色15」が順に記載され、音色スイッチ204を用いて「音色16」〜「音色20」の何れかを選択することができるので音色スイッチ204の上側には「音色16」〜「音色20」が順に記載され、音色スイッチ205を用いて「音色21」〜「音色25」の何れかを選択することができるので音色スイッチ205の上側には「音色21」〜「音色25」が順に記載されている。
【0020】
211〜215と221〜225は、現在選択されている音色が「音色1」〜「音色25」のうちのどの音色であるかを表すためのLEDである。LED211〜215はマトリックス状の「音色1」〜「音色25」の表示中の縦方向の位置を表し、LED221〜225はマトリックス状の「音色1」〜「音色25」の表示中の横方向の位置を表す。例えば、現在選択されている音色が「音色1」であるときはLED211と221が点灯し、現在選択されている音色が「音色9」であるときはLED214と222が点灯することになる。現在選択されている音色を示すために、LED211〜215のうちの何れか1つと、LED221〜225のうちの何れか1つが点灯し、その他のLEDは消灯される。
【0021】
この演奏装置の電源がオンされた初期状態では、「音色1」が選択状態となっており、LED211と221が点灯している。この状態から音色スイッチ201を1回オンするごとに、音色1→音色2→音色3→音色4→音色5→音色1→…と言うように順次音色が切り替わっていく。音色の切り替えに応じてLED211〜215の点灯状態も切り替わる。「音色1」〜「音色5」以外の音色を選択したい場合、ユーザは、マトリックス状の「音色1」〜「音色25」の表示中から選択したい音色が含まれる列を探し、その列の下側の音色スイッチをオンする。例えば、「音色1」〜「音色5」のうちの何れかが選択されている状態から、音色スイッチ202をオンすると、「音色6」が選択状態となり、LED211と222が点灯する。他のLEDは消灯する。この状態から音色スイッチ202を1回オンするごとに、音色6→音色7→音色8→音色9→音色10→音色6→…と言うように順次音色が切り替わっていく。音色の切り替えに応じてLED211〜215の点灯状態も切り替わる。他の音色に切り替えるときも同様である。以上のようにして、音色スイッチ201〜205を用いて、ユーザは「音色1」〜「音色25」のうちから何れかの音色を選択することができる。
【0022】
なお、ある列の音色が選択されている状態から他の列に切り替わったときは、その列の1番下に記載されている音色が初期状態として選択されることとしている。例えば、スイッチ201の列である「音色1」〜「音色5」の何れかが選択されている状態から、スイッチ202がオンされて当該スイッチ202の列中の音色に切り替わったときは「音色6」が選択され、スイッチ203がオンされて当該スイッチ203の列中の音色に切り替わったときは「音色11」が選択され、…という具合である。ただし、前の選択状態を記憶しておき、その状態に戻すようにしてもよい。
【0023】
これらの25個の音色のそれぞれは、1つのノーマル音色(基本音色)と3つのバリエーション音色を有する。ノーマル音色とバリエーション音色は1つの音色ととらえることができるので、結局、ユーザは、25×4=100音色を切り替えて音色を選択することができることになる。バリエーションスイッチ206は、1つのノーマル音色と3つのバリエーション音色から1つを選択するためのスイッチである。音色スイッチ201〜205により25個のうちから1つの音色が選択された直後の初期状態はノーマル音色である。231〜234は1つのノーマル音色と3つのバリエーション音色のうち、現在選択されている音色を表すLEDである。LED231が点灯しているときノーマル音色、LED232が点灯しているときバリエーション1の音色、LED233が点灯しているときバリエーション2の音色、LED234が点灯しているときバリエーション3の音色が、それぞれ選択されていることを示す。ノーマル音色が選択されてLED231が点灯されている状態から、バリエーションスイッチ206をオンするごとに、ノーマル→バリエーション1→バリエーション2→バリエーション3→ノーマル→…というように順次ノーマル音色と3つのバリエーション音色とを切り替えることができる。
【0024】
ユーザは以上のようにして25個の音色から1つを選択し、さらにその音色に含まれる1つのノーマル音色と3つのバリエーション音色から1つを選択し、当該選択した音色で演奏操作を行なうことができる。ノーマル音色は基本的な音色であり、鍵盤の演奏操作により1つの楽音の発音指示がきたときは当該音色でかつ演奏操作により指定された音高で1つの演奏音が発音される。3つのバリエーション音色は、対応する基本音色のバリエーションである。特に、バリエーション音色では、鍵盤の演奏操作により1つの楽音の発音指示がきたときは、所定のパターンで幾つかの付加音を付けて発音するようにしている。この演奏装置では、バリエーション1はリバーブやエコーがかかったような音、バリエーション2はメロディックなフレーズ、バリエーション3は効果音的な音を発音する音色としてある。すなわち、バリエーション音色とは、基本音色(ノーマル音色)と同じ楽音波形(例えば、「ピアノ」、「オルガン」など)を有するが、鳴り方が異なるものである。
【0025】
なお、以下では説明を簡単にするため、単に音色というときには、ノーマルおよびバリエーションの区別も含めた音色を指すものとする。例えば、「選択された音色」というときには、音色スイッチ201〜205により25個のうちから1つを選択し、かつ、バリエーションスイッチ206によりノーマル音色または3つのバリエーション音色から1つを選択して決定した音色を指すものとする。
【0026】
図3は、選択された音色を定義するボイスシーケンスデータの例を示す。図3(a)はノーマル音色を定義するボイスシーケンスデータの例、図3(b)および図3(c)はバリエーション音色を定義するボイスシーケンスデータの例である。これらのボイスシーケンスデータは、先頭2バイトが共通のフォーマットのヘッダ部であり、必要に応じてヘッダ部の後にシーケンス部が付加されて構成される。シーケンス部は、付加音を付ける場合、すなわちバリエーション音色の場合に用いる。図3(a)はヘッダ部301のみ(シーケンス部なし)の構成のボイスシーケンスデータであり、図3(b)および図3(c)はヘッダ部311,321の後にシーケンス部312,322を有する構成のボイスシーケンスデータである。
【0027】
ヘッダ部301,311,321のフォーマットについて説明する。2バイトのヘッダ部のうち、第1バイト目の各ビットはそれぞれ以下の情報を表す。なお、図3では上位ビットを左側(一番左側が最上位ビット、すなわち2の7乗ビット)に、下位ビットを右側(一番右側が最下位ビット、すなわち2の0乗ビット)に、記載している。
【0028】
▲1▼2の7乗ビット:サスティンのオン/オフを示すビットである。0のときサスティンオフ、1のときサスティンオンとする。
【0029】
▲2▼2の6乗ビット〜2の3乗ビット:未使用。
【0030】
▲3▼2の2乗ビット:押鍵音と付加音を含むすべての発音をコード変換の対象とするか、押鍵音を除いたすべての発音をコード変換の対象とするかを決定するビットである。0のとき押鍵音と付加音を含むすべての発音をコード変換の対象とし、1のとき押鍵音を除いたすべての発音をコード変換の対象とする。コード変換の対象とするというのは、別途指定された和音(例えば、鍵盤上の和音鍵域で押鍵により指定された和音)に基づいて音高制御して発音するということである。なお、このビットのデータは、後述する第2バイト目で「コードタイプやコードルートによる音高の変換を行なう」場合にのみ有効なデータであり、「コードタイプやコードルートによる音高の変換を行なわない」場合には意味を持たない。
【0031】
▲4▼2の1乗ビット:絶対値発音か、オフセット加算発音かを示すビットである。0のとき絶対値発音、1のときオフセット加算発音とする。絶対値発音とは、あらかじめ定められた音高のみで発音を行なう方式である。オフセット加算発音とは、押鍵音の音高と音高C3との差分をあらかじめ定められた音高を示す絶対値にオフセット加算して求めた音高で発音する方式である。
【0032】
▲5▼2の0乗ビット:通常の押鍵発音か、押鍵音に加えてシーケンス部の付加音をも発音するかを示すビットである。0のとき通常の押鍵発音、1のときシーケンス部を含む発音とする。したがって、このビットが0ならヘッダ部のみのボイスシーケンスデータ(図3(a))であり、このビットが1ならヘッダ部の後にシーケンス部が付加されているボイスシーケンスデータ(図3(b)(c))であることが分かる。
【0033】
2バイトのヘッダ部のうち、第2バイト目の各ビットはそれぞれ以下の情報を表す。
【0034】
▲1▼2の7乗ビット:コード変換方式のうちコードタイプに基づく変換方式を示すビットである。0のときコードタイプによる音高の変換を行なわないことを示し、1のときコードタイプによる音高の変換を行なうことを示す。コードタイプによる音高の変換とは、別途指定された和音のコードタイプに基づいて該コードタイプに適するように音高制御して発音するということである。
【0035】
▲2▼2の6乗ビット:コード変換方式のうちコードルートに基づく変換方式を示すビットである。0のときコードルートによる音高の変換を行なわないことを示し、1のときコードルートによる音高の変換を行なうことを示す。コードルートによる音高の変換とは、別途指定された和音のコードルートに基づいて該コードルートと所定音名(例えばC)との差に応じて音高制御して発音するということである。
【0036】
▲3▼2の5乗ビット〜2の0乗ビット:音色を具体的に特定する音色番号を示す。10進で0〜63の何れかの値を取る。
【0037】
例えば、図3(a)のヘッダ部301の第1,2バイト目の各ビット情報から、当該ボイスシーケンスデータがヘッダ部のみ(シーケンス部なし)のボイスシーケンスデータであり、このボイスシーケンスデータで定義される音色が、サスティンオンで、押鍵音と付加音を含むすべての発音がコード変換の対象(ただしこのデータは意味を持たない)で、オフセット加算発音で、かつ、コードルートおよびコードタイプによる音高の変換を行なわない音色であることが分かる。また、図3(b)のヘッダ部311の第1,2バイト目の各ビット情報から、当該ボイスシーケンスデータがヘッダ部に加えてシーケンス部を有するボイスシーケンスデータであり、このボイスシーケンスデータで定義される音色が、サスティンオンで、押鍵音と付加音を含むすべての発音がコード変換の対象(ただしこのデータは意味を持たない)で、絶対値発音で、かつ、コードルートおよびコードタイプによる音高の変換を行なわない音色であることが分かる。また、図3(c)のヘッダ部321の第1,2バイト目の各ビット情報から、当該ボイスシーケンスデータがヘッダ部に加えてシーケンス部を有するボイスシーケンスデータであり、このボイスシーケンスデータで定義される音色が、サスティンオンで、押鍵音と付加音を含むすべての発音がコード変換の対象で、オフセット加算発音で、かつ、コードルートおよびコードタイプによる音高の変換を行なう音色であることが分かる。
【0038】
図3(b)および図3(c)のシーケンス部312,322について説明する。シーケンス部312,322は、インターバルデータとイベントデータとの組データである2バイトデータを幾つか並べ、その最後にリピートデータまたはエンドデータを付加したものである。インターバルデータは次のイベントまでの時間間隔を表すデータであり、イベントデータはその時点で発生するイベントのデータである。したがって、インターバルデータとイベントデータとの組データを1組読み出したときには、そのイベントデータに基づいて発音などを行なった後、そのインターバルデータで特定される時間間隔だけ待ち、次の組データ(またはリピートデータかエンドデータ)を読み出すことになる。なお、この例では、1つの押鍵によるシーケンスは1つの発音チャンネルに供給するようにしているため同時に複数イベントを発生させるようになっていないが、1つの押鍵によるシーケンスを複数の発音チャンネルに供給可能とすれば同時複数イベント発生も可能である。シーケンス部312の最後にあるリピートデータは、鍵盤の鍵が押下され続けているときシーケンス部312の先頭に戻って、繰り返しこのシーケンス部にしたがう発音を行なうことを意味する。シーケンス部322の最後にあるエンドデータは、鍵盤の鍵が押下され続けていても、このシーケンス部322の最後のイベントまで発音したら先頭に戻らずに発音を終了することを意味する。
【0039】
ヘッダ部の各ビットの設定状態やシーケンス部のインターバルデータとイベントデータの並び方が異なるデータを用意することで、前述のような様々なバリエーション音色を得ることができる。
【0040】
図2で説明した音色スイッチ201〜205およびバリエーションスイッチ206を用いた音色の選択が行なわれると、選択された音色に対応するボイスシーケンスデータが1つ選ばれる。鍵盤を演奏操作することにより、その選択されたボイスシーケンスデータにしたがって発音が実行される。具体的には、図3(a)のボイスシーケンスデータの音色では、このヘッダ部301の各ビット情報で指定された態様かつ音色番号で、演奏操作により指定された音高の演奏音が発音される。図3(b)または図3(c)のボイスシーケンスデータの音色では、このヘッダ部311または321の各ビット情報で指定された態様かつ音色番号で、シーケンス部312または322にしたがって付加音が付加されて発音される。
【0041】
次に、この演奏装置における自動演奏機能と自動伴奏機能について説明する。この演奏装置では、ユーザは、ソング選択スイッチを操作することにより自動演奏用の1曲分の演奏データを選択することができる。また、ユーザは、ソング再生スイッチおよびソング停止スイッチを操作することにより、選択した自動演奏用データを再生(自動演奏)し、その再生を停止することができる。図4(a)は、自動演奏用の1曲分の演奏データであるソングシーケンスデータの例を示す。
【0042】
また、この演奏装置では、ユーザは、伴奏スタイル選択スイッチを操作することにより自動伴奏用の伴奏スタイルデータを選択することができる。また、ユーザは、自動伴奏開始スイッチおよび自動伴奏停止スイッチを操作することにより、選択した伴奏スタイルデータに基づく自動伴奏を開始し、その自動伴奏を停止することができる。図4(b)は、自動伴奏用の伴奏スタイルデータであるソングシーケンスデータの例を示す。
【0043】
ソング選択スイッチおよび伴奏スタイル選択スイッチの構成は、図2に示した音色選択スイッチ201〜205と同様のものである。自動演奏を行なうときは自動伴奏は行なえず、逆に自動伴奏を行なうときは自動演奏は行なえない。すなわち、自動演奏用の演奏データの選択と自動伴奏用の伴奏スタイルデータの選択は択一的である。したがって、自動演奏用の演奏データが選択されている状態で自動伴奏用の伴奏スタイルデータの選択操作が行なわれると、自動演奏用の演奏データの選択が解除されて選択操作が行なわれた伴奏スタイルデータが選択される。また、自動伴奏用の伴奏スタイルデータが選択されている状態で自動演奏用の演奏データの選択操作が行なわれると、伴奏スタイルデータの選択が解除されて選択操作が行なわれた自動演奏用の演奏データが選択される。図4で後述するように、自動演奏用の演奏データと自動伴奏用の伴奏スタイルデータはソングシーケンスデータという共通のフォーマットで記憶されており、これを再生する処理プログラムも共通である。
【0044】
図4(a)の自動演奏用のソングシーケンスデータはヘッダ部401とシーケンス部411〜416からなる。図4(b)の自動伴奏用のソングシーケンスデータはヘッダ部421とシーケンス部431〜434からなる。これらのソングシーケンスデータは共通のフォーマットである。ヘッダ部401,421の第1バイト目の上位5ビット(2の7乗ビット〜3乗ビット)は、これらのソングシーケンスデータを用いて自動演奏または自動伴奏を行なう際のテンポを指定するデータである。ヘッダ部401,421の第1バイト目の2の2乗ビットは、当該ソングシーケンスデータで使用するトラック数を示す。0のとき6トラックすべてを使用することを示し、1のとき4トラック分を使用することを示す。この例では、6トラックすべてを使用するのは自動演奏を行なうとき、4トラックを使用するのは自動伴奏を行なうときである。したがって、2の2乗ビットが0のシーケンスデータは自動演奏用のソングシーケンスデータ、2の2乗ビットが1のシーケンスデータは自動伴奏用のソングシーケンスデータである。ヘッダ部401,421の第1バイト目の下位2ビット(2の1乗ビットと0乗ビット)は、拍子データ(4分の4拍子、4分の3拍子など)を示す。
【0045】
ヘッダ部401,421の第2バイト目から、各トラックに関する情報がトラック数分並べられる。1トラックに関する情報は1バイトである。図4(a)の自動演奏用のソングシーケンスデータでは6トラックを使用するので、ヘッダ部401の第2バイト目からの6バイト分が6つの各トラックに関する情報である。図4(b)の自動伴奏用のソングシーケンスデータでは4トラックを使用するので、ヘッダ部421の第2バイト目からの4バイト分が4つの各トラックに関する情報である。1つのトラックに関する1バイトの情報のフォーマットは、図3で説明したボイスシーケンスデータのヘッダ部の第2バイト目と同じである。すなわち、2の7乗ビットはそのトラックに適用するコードタイプに基づく変換方式を示し、2の6乗ビットはそのトラックに適用するコードルートに基づく変換方式を示し、その下の下位6ビットはそのトラックで用いる音色番号を示す。
【0046】
ヘッダ部401,421の後には各トラックのシーケンス部が付加されている。図4(a)は自動演奏用のソングシーケンスデータであるので、6トラック分のシーケンス部411〜416が付加されている。411はフレーズトラック1、412はフレーズトラック2、413はベーストラック、414はリズムトラック、415はキーボードトラック1、416はキーボードトラック2のシーケンス部を示す。なお、ヘッダ部401の後に付加される各トラックのシーケンス部の順序は図示した411から416の順序とし、ヘッダ部401の第1バイト目の後に付加される各トラックに関する情報の順序もこの順とする。これらの6つのトラックは、音源回路112の6つの発音チャンネルにそれぞれ割り当てられている。キーボードトラック1とキーボードトラック2の2つのトラックに対しては鍵盤演奏が優先されるので、ソングシーケンスデータによる自動演奏時にユーザが鍵盤演奏を行なうと、これらの2つのトラックのシーケンス部415,416のデータによる発音の代わりに、これらの2つのトラックの発音で用いられていた発音チャンネルを用いて鍵盤演奏の演奏音が発音される。
【0047】
図4(b)は自動伴奏用のソングシーケンスデータであるので、4トラック分のシーケンス部431〜434が付加されている。431はフレーズトラック1、432はフレーズトラック2、433はベーストラック、434はリズムトラックのシーケンス部を示す。残りの2つのトラック、すなわちキーボードトラック1とキーボードトラック2はユーザによる鍵盤演奏の演奏音の発音用に用いられる。なお、ヘッダ部421の後に付加される各トラックのシーケンス部の順序は図示した431から434の順序とし、ヘッダ部421の第1バイト目の後に付加される各トラックに関する情報の順序もこの順とする。
【0048】
各トラックのシーケンス部411〜416,431〜434のフォーマットは、図3で説明したボイスシーケンスデータのシーケンス部312,322と同じである。図4(a)のシーケンス部411の最後のデータはエンドデータとし、図4(b)のシーケンス部431の最後のデータはリピートデータとしているが、各シーケンス部のデータは任意に設定できる。
【0049】
一般的に、自動演奏の場合は、指定された和音に基づいて演奏データの音高を変換することはせず、かつ演奏も最後まで一通り進んだらそこで停止することが多い。このため、図4(a)に示すように、自動演奏用のソングシーケンスデータの場合は、ヘッダ部における各トラックの音高変換に関するビットはすべて「0」であり、シーケンス部における最後のデータは「エンドデータ」とすることが多い。逆に、自動伴奏の場合は、指定された和音に基づいて演奏データの音高を変換し、かつ1ないし数小節分の短い演奏パターンの繰り返し演奏であることが多い。このため、図4(b)に示すように、伴奏スタイルシーケンスデータの場合は、ヘッダ部における各トラックの音高変換に関するビットは、リズムトラックである434に対応するバイトを除いて「1」に設定されており、シーケンス部における最後のデータは「リピートデータ」とすることが多い。このように自動演奏と自動伴奏の場合のそれぞれの特徴をヘッダ部の各ビットやシーケンス部のデータに反映させることによって、共通フォーマットを採りつつ、両者の使い分けが可能になっている。なお、自動演奏であっても和音に基づいて演奏データの音高を変換するように設定したり、自動伴奏であっても和音に基づいて演奏データの音高を変換しないように設定したりすることも、必要に応じて可能である。
【0050】
なお、図3および図4で説明したボイスシーケンスデータおよびソングシーケンスデータは、ROM102に格納されているものとし、必要なときにROM102から読み出して使用するものとする。ROM102から読み出して使用する代わりに、ROM102に格納されているデータをRAM101上に読み出して使用するようにしてもよい。また、これらのデータを外部記憶装置105に格納しておき、必要に応じてRAM101上に読み出して使用するようにしてもよい。
【0051】
図5は、図2で説明した音色スイッチ201〜205およびバリエーションスイッチ206を用いて音色選択操作を行なったときにCPU103が実行する音色選択処理のフローチャートである。
【0052】
まずステップ501で、選択された音色に対応するボイスシーケンスデータを読み出し、そのヘッダ部の各ビット情報(図3)に応じた各種の設定情報を音源回路112に送って各種の設定を行なう。次にステップ502で、シーケンス部にしたがう発音(シーケンス発音)を行なうか否かを判別する。これは読み出したボイスシーケンスデータのヘッダ部の第1バイト目の2の0乗ビットを参照することにより判別する。シーケンス発音でないときは、ステップ503で、音源回路112へ所定の音高のノートデータを出力して発音した後、所定時間後に消音して、リターンする。
【0053】
ステップ502でシーケンス発音であるときは、ステップ504で、当該シーケンス部の最初の2バイトデータ(インターバルデータとイベントデータ)を読み出す。次にステップ505で1バイト目のインターバルデータをタイマ104にセットし、ステップ506で2バイト目のイベントデータを音源回路112へ出力する。これにより1番始めのイベントデータに応じた発音などが実行される。次にステップ507で、ステップ505でタイマ104にセットしたインターバルデータにしたがう時間だけ経過したかどうかを判別し、経過していないときは再びステップ507に戻ってこれを繰り返す。
【0054】
ステップ507でインターバルデータで指定された時間だけ経過したときは、ステップ508で当該シーケンス部から次の2バイトデータを読み出す処理を行ない、ステップ509でその2バイトデータが読み出せたか否かを判別する。読み出すべき2バイトデータが無かったときは、リピートまたはエンドデータであるということであるから、リターンする。2バイトデータが読み出せた場合は、ステップ510で1バイト目のインターバルデータをタイマ104にセットし、ステップ511で2バイト目のイベントデータを音源回路112に出力して発音などを実行し、再びステップ507に戻る。
【0055】
以上の処理により、ユーザが音色スイッチ201〜205とバリエーションスイッチ206を操作して所望の音色を選択したときには、その選択した音色での発音が確認のために実行される(詳しくは、ユーザが音色スイッチ201〜205の何れかを操作するごとに図5の処理が呼び出され、またユーザがバリエーションスイッチ206を操作するごとに図5の処理が呼び出される)。この場合、選択した音色に対応するボイスシーケンスデータが図3(a)のタイプ(押鍵音のみ発音)のものであったときは所定の音高の楽音が1回発音され、図3(b)または図3(c)のタイプ(シーケンス部あり)のものであったときはそのシーケンス部にしたがう発音が一通り(リピートデータまたはエンドデータまで)実行される。これにより、ユーザは、自分が選択した音色がどのようなものであるか(特にシーケンス部があるときにそのシーケンス部にしたがってどのような付加音が発音されるのか)容易に把握でき、初心者などにとっても使い勝手がよい。
【0056】
図6は、ユーザによる鍵盤107の演奏操作が行なわれたときにCPU103が実行する鍵盤処理(特にソングシーケンスデータが選択されており自動演奏または自動伴奏を行ないつつ鍵盤演奏を行なう場合)のフローチャートを示す。
【0057】
まずステップ601で、鍵盤107の何れかの鍵のキーオンがあったか否かを判別する。キーオンがなかったときは、ステップ606へ進む。キーオンがあったときは、ステップ602で、第1キーオンフラグKON1が0であるか否かを判別する。第1キーオンフラグKON1は、現在キーボードトラック1で押鍵に基づく発音が行なわれているか否かを示すフラグであり、発音が行なわれているとき1、いないとき0とする(電源オン直後の初期値は0)。フラグKON1が0であるときは、キーボードトラック1で現在押鍵に基づく発音が行なわれていないということであるから、ステップ603で、フラグKON1に1をセットし、レジスタKC1にキーオンを検出したキーコードをセットして、ステップ606に進む。
【0058】
ステップ602でフラグKON1が0でなかったときは、キーボードトラック1で現在押鍵に基づいて発音中であるということだから、ステップ604で、第2キーオンフラグKON2が0であるか否かを判別する。第2キーオンフラグKON2は、現在キーボードトラック2で押鍵に基づく発音が行なわれているか否かを示すフラグであり、発音が行なわれているとき1、いないとき0とする(電源オン直後の初期値は0)。フラグKON2が0であるときは、キーボードトラック2で現在押鍵に基づく発音が行なわれていないということであるから、ステップ605で、フラグKON2に1をセットし、レジスタKC2にキーオンを検出したキーコードをセットして、ステップ606に進む。ステップ604でフラグKON2が0でないときは、キーボードトラック2でも現在押鍵に基づいて発音中であるから、検出したキーオンは無視してステップ606に進む。
【0059】
ステップ606では、鍵盤107の何れかの鍵のキーオフがあったか否かを判別する。キーオフでないときはそのままリターンする。キーオフであるときは、ステップ607で、いまキーオフされた鍵のキーコードがレジスタKC1の値と等しいか否かを判別する。等しいときは、キーボードトラック1で発音されていた鍵がキーオフされたということであるから、ステップ608でフラグKON1を0にリセットし、ステップ611に進む。ステップ607でキーオフされたキーコードがレジスタKC1の値と等しくないときは、ステップ609で、キーオフされたキーコードがレジスタKC2の値と等しいか否かを判別する。等しいときは、キーボードトラック2で発音されていた鍵がキーオフされたということであるから、ステップ610でフラグKON2を0にリセットし、ステップ611に進む。ステップ609でキーオフされたキーコードがレジスタKC2と等しくないときは、そのままリターンする。
【0060】
ステップ611では、フラグKON1およびKON2の値が共に0であるか否かを判別する。共に0であるときは、ステップ612で1小節カウンタBARCNTに48をセットして、リターンする。1小節カウンタBARCNTは、キーボードトラック1および2が共にキーオフされたときから1小節分の時間長さをカウントするためのカウンタである。48は4/4拍子のときの1小節分の長さを示す値である。ステップ611でフラグKON1および2のどちらかが0でないときはそのままリターンする。
【0061】
図7は、テンポに応じた周期で繰り返し実行されるシーケンサ処理(特にソングシーケンスデータが選択されており自動演奏または自動伴奏を行なう場合)のフローチャートを示す。この演奏装置では、タイマ104からCPU103に48分音符の時間間隔ごとに1回タイマ割り込みがかかり、タイマ割り込みがかかるごとにCPU103は図7のシーケンサ処理を実行する。なお、再生のスタート(ソングシーケンスデータのヘッダ部の読み出しなどを含む)およびストップの処理は、図示しないスイッチ処理にて行なう。
【0062】
まず、ステップ701で和音トラック処理を行なう。和音トラック処理は、ユーザの演奏操作による和音の指定を検出し、それに応じた処理を行なうものである。なお、和音トラック処理として、あらかじめ楽曲の進行に対応させて和音進行データを記憶し、これを再生する処理を適用してもよい。次にステップ702以降で6つの各トラックの処理を行なう。すなわち、ステップ702でフレーズトラック1の処理を行ない、ステップ703でフレーズトラック2の処理を行ない、ステップ704でベーストラックの処理を行ない、ステップ705でリズムトラックの処理を行ない、ステップ706でキーボードトラック1の処理を行ない、ステップ707でキーボードトラック2の処理を行なった後、リターンする。
【0063】
次に、ステップ702以降の各トラックの処理について説明するが、これらの処理では共通に使用するルーチンもあるので、始めに図8〜図10を参照してステップ706のキーボードトラック1の処理を一通り説明し、次に他のトラックの処理についてキーボードトラック1の処理と異なる部分を中心に説明する。
【0064】
図8は、図7のステップ706のキーボードトラック1の処理のフローチャートを示す。図8は、ステップ707のキーボードトラック2の処理にも適用する共通ルーチンであり、ステップ706または707から呼び出すときは処理対象がキーボードトラック1かキーボードトラック2かをパラメータで特定して呼び出すものとする。図8中、(2)と記載してある部分はキーボードトラック2の処理に関する部分であり、これについては後述する。
【0065】
まずステップ801で、フラグKON1が1であるか否か判別する。フラグKON1が1であるときは、鍵盤107の鍵が押鍵されておりキーボードトラック1でその操作に応じた発音を行なうということだから、ステップ802で、その押鍵が新規押鍵であるか否かを判別する。新規押鍵であるときは、ステップ803で、発音中のソングシーケンスデータのキーボードトラック1および2のノートがあればこれを消音する。これは、ソングシーケンスデータを用いた自動演奏の途中で鍵盤107が操作されたときに、ソングシーケンスのうちキーボードトラック1および2の音を消音し、該2つのトラックを利用してユーザの押鍵操作に応じた音を発音させるためである。なお、鍵盤107の操作があったときは、ソングシーケンスのキーボードトラック1および2の両方の音を消音するものとする。
【0066】
次にステップ804で、キーボードトラック1に関して現在の設定(ソングシーケンスデータのヘッダ部で定義されたキーボードトラック1に関する設定)を退避し、選択されている音色に対応するボイスシーケンスデータのヘッダ部を読み出し、その各ビット情報に応じて音源回路102のキーボードトラック1に対応する発音チャンネルに対して各種の設定を行なう。これは、図4(a)のようなソングシーケンスデータにしたがって自動演奏を行なっているときには、キーボードトラック1についてはそのヘッダ部401で指定された設定で発音されているので、この設定を所定領域にセーブした後、キーボードトラック1については現在選択されているボイスシーケンスデータ(図3)のヘッダ部の設定に変更して、該設定でユーザの演奏音を発音できるようにするための処理である。なお、キーボードトラック1,2以外の他のトラックについては、そのままソングシーケンスデータに基づく自動演奏を継続する。また、自動演奏でなく自動伴奏が指定されている場合(選択されているソングシーケンスデータが図4(b)のフォーマットの場合)は、キーボードトラック1はあらかじめ鍵盤演奏用に確保されているので、ステップ803,804の処理は行なわないようにプログラムが組んである。
【0067】
次にステップ805で、当該ボイスシーケンスデータでシーケンス発音が指示されているか否か(すなわちボイスシーケンスデータがシーケンス部を有するか否か)を判別する。シーケンス発音を行なう場合は、ステップ807で、当該シーケンス部の最初の2バイトデータを読み出す。そして、ステップ808で1バイト目のインターバルデータをタイマ104にセットし、ステップ809で2バイト目のイベントデータを音源回路112のキーボードトラック1の発音チャンネルに出力する。なおノートイベントについては、当該ボイスシーケンスデータのヘッダ部のビット情報に応じて必要であればノートナンバを修正して出力する。ステップ809の後、ステップ810に進む。
【0068】
ステップ805でシーケンス発音を行なわない場合(すなわち図3(a)のタイプのボイスシーケンスデータでユーザによる演奏音のみ発音の場合)は、ステップ806で、演奏操作に応じたノートデータを(当該ボイスシーケンスデータのヘッダ部のビット情報に応じて必要であれば該ノートナンバを修正して)音源回路112のキーボードトラック1の発音チャンネルへ出力し、ステップ810に進む。ステップ802で新規押鍵でないときは、その押鍵に対しては既にステップ803〜809の処理で発音が開始されているから、そのままステップ810に進む。
【0069】
ステップ810ではシーケンス発音であるか否かを判別し、シーケンス発音であるときはステップ811でトラック処理(図10で後述)を行なった後、シーケンス発音でないときはそのまま、ステップ814に進む。
【0070】
ステップ801でフラグKON1が1でないときは、ステップ812で新規離鍵があったか否かを判別する。新規離鍵があったときは、ステップ813でその離鍵に応じてボイスシーケンスデータの再生終了処理(発音中のノートがあれば消音する)を行ない、ステップ814に進む。ステップ812で新規離鍵がないときは、そのままステップ814に進む。ステップ814では、ソングシーケンスのキーボードトラック1の処理(図9で詳述)を行ない、リターンする。
【0071】
図9は、図8のステップ814で実行するソングシーケンスのキーボードトラック1の処理を示すフローチャートである。図9はソングシーケンスのキーボードトラック2の処理にも適用する共通ルーチンであり、呼び出すときは処理対象がキーボードトラック1かキーボードトラック2かをパラメータで特定して呼び出すものとする。図9では「ソングシーケンスのキーボードトラック1,2処理」と記載しているが、キーボードトラック2の処理については後述する。
【0072】
まずステップ901で、ソングシーケンスデータによるキーボードトラックでの発音があるか否か、言い替えると自動演奏が指定されているか自動伴奏が指定されているかを判別する。自動伴奏が指定されている場合は、キーボードトラック1は鍵盤演奏用に割り当ててありソング再生に用いられないから、そのままリターンする。自動演奏が指定されている場合は、ステップ902で、選択されているソングが現在再生状態であるか否か(すなわち、再生スイッチにより再生が指示されているか、停止スイッチにより停止が指示されているか)を判別する。再生状態でないときはそのままリターンし、再生状態であるときは、ソングシーケンスのキーボードトラック1のシーケンス部に基づく発音を実行するため、ステップ903に進む。
【0073】
ステップ903では、タイマ104にセットされたインターバルデータに応じた時間が経過したか否かを判別し、経過していたときはステップ904で次の2バイトデータを読み出す。なお、ソングシーケンスデータが選択されて再生スイッチがオンされたとき、そのソングシーケンスデータの各トラックに関して、シーケンス部の最初の2バイトデータが読み出されて処理(イベントデータに基づいて発音などが行なわれるとともに、インターバルデータがタイマ104にセットされる)されているものとする。
【0074】
次にステップ905で、その2バイトデータが読み出されたか否かを判別する。2バイトデータが読み出されたときは、ステップ906で1バイト目のインターバルデータをタイマ104にセットし、ステップ907で2バイト目のイベントデータをイベントバッファに書き込む。ノートイベントについては、当該ソングシーケンスデータのヘッダ部の各ビット情報に応じてノートナンバを修正してイベントバッファに書き込む。ステップ907の後、ステップ911に進む。
【0075】
ステップ905で2バイトデータがなかったときは、ステップ908で、エンドデータが読み出されたか否かを判別する。エンドデータが読み出されたときは、当該キーボードトラック1の再生をステップ909で終了させ、ステップ911に進む。ステップ908でエンドデータでないときは、リピートデータが読み出されたということであるから、ステップ910で当該キーボードトラック1のシーケンス部の先頭に戻って、ステップ904に戻る。ステップ903でキーボードトラック1に関して設定されたインターバルが経過していなかったときは、ステップ911に進む。
【0076】
ステップ911では、レジスタKON1および2がともに0であるか否かを判別する。ともに0であるときは、鍵盤演奏が行なわれていないということであるから、ステップ912で小節カウンタBARCNTが0であるか否かを判別する。BARCNTが0であるときは、ステップ913でイベントバッファのデータを音源回路112のキーボードトラック1の発音チャンネルに出力して発音などを行ない、リターンする。ステップ912で小節カウンタBARCNTが0でないときは、ステップ914で小節カウンタBARCNTをデクリメントし、ステップ915で小節カウンタBARCNTが0になったか否かを判別する。BARCNTが0になったときは、図8のステップ804で退避していた当該ソングシーケンスデータのヘッダ部で定義されたキーボードトラック1および2に関する設定を、ステップ916で復活(キーボードトラック1および2を一緒に復活するものとする)し、リターンする。ステップ915で小節カウンタBARCNTが0でないときは、そのままリターンする。
【0077】
ステップ911でフラグKON1または2の何れかが0でないときは、鍵盤演奏が行なわれたため図8のステップ803でソングのキーボードトラックの再生音が消音されているということであり、この場合はソングシーケンスデータに基づくキーボードトラック1の再生を行なう必要はないから、そのままリターンする。
【0078】
なお、ステップ911〜916の処理は、ソング再生中に鍵盤演奏が行なわれてソングのキーボードトラック1および2の再生が中止(ステップ803)された場合に、その鍵盤演奏でキーボードトラック1および2の両方が離鍵された時点から1小節分の時間経過後にソングのキーボードトラック1および2の再生を復活するための処理である。すなわち、図6のステップ611,612でキーボードトラック1および2の両方が離鍵された時点で小節カウンタBARCNTに48をセットし、一方、48分音符の時間間隔ごとに実行される図9のソングシーケンスのキーボードトラック1の処理では、ステップ911〜916でキーボードトラック1および2の両方が離鍵されていてBARCNTが0でないときはBARCNTをデクリメントするようにしている。そして、BARCNTが0になったら、退避していたソングのキーボードトラック1,2の設定を復活する。次に、図9の処理に入ったときには、ステップ911→912→913と進み、ソングシーケンスデータに基づく設定で、ソングシーケンスデータのキーボードトラック1の再生を行なう。
【0079】
図10は、図8のキーボードトラック1の処理のステップ811で実行されるボイスシーケンスのキーボードトラック1についてのトラック処理のフローチャートを示す。図10のトラック処理は、ボイスシーケンスのキーボードトラック1以外の他のトラック(具体的には、ボイスシーケンスのキーボードトラック2、並びに、ソングシーケンスのフレーズトラック1、フレーズトラック2、ベーストラック、およびリズムトラックの処理)にも適用する共通ルーチンであり、このトラック処理を呼び出すときには、処理対象であるトラックを特定する情報をパラメータとして与える。ここでは、図8のステップ811で呼び出すトラック処理について説明するので、処理対象のトラックはボイスシーケンスのキーボードトラック1である。他のトラックに対するトラック処理については後述する。
【0080】
まずステップ1001で、処理対象のトラック(ここではボイスシーケンスのキーボードトラック1)が再生状態であるか否かを判別する。再生状態とは、自動演奏または自動伴奏の再生状態(自動演奏や自動伴奏の再生スイッチまたは停止スイッチによる指定状態)であり、処理対象のトラックが自動演奏および自動伴奏のトラックでない場合、すなわち処理対象のトラックが鍵盤演奏の演奏音を発音するボイスシーケンスのキーボードトラックである場合は、必ず発音するので無条件に再生状態と見なすものとする。ここでは、処理対象が鍵盤演奏の演奏音を発音すべきボイスシーケンスのキーボードトラック1であるので、再生状態であるものと見なし、ステップ1002に進む。
【0081】
ステップ1002では、処理対象のトラックに対して設定されているインターバルが経過したか否かを判別する。なお、インターバルの経過は各シーケンスデータのトラックごとに独立に管理されている。すなわち、各トラックのシーケンス発音においてはインターバルデータをタイマ104にセットして経過時間を待つ処理が行なわれるが、これは各シーケンスのトラックごとに独立にインターバルデータをセットし独立に経過時間を計っているものである。また、キーボードトラックについては、ソング再生の場合にソングシーケンスデータのキーボードトラックのシーケンス部に基づいて発音するときと、鍵盤演奏に基づくシーケンス発音をボイスシーケンスのキーボードトラックを用いて行なうときとの両方の場合で、インターバルデータのタイマ104へのセットおよび経過時間の判別が行なわれるが(ステップ903と1002)、これらについても独立に経過時間が管理されているものとする。ここではボイスシーケンスデータに基づいてキーボードトラック1で発音する場合のインターバル(ボイスシーケンスデータのシーケンス部から読み出されたインターバルデータ)の経過の判別である。
【0082】
ステップ1002でインターバルが経過していないときは、そのままリターンする。インターバルが経過していたときは、ステップ1003で、処理対象のシーケンス部(ここではボイスシーケンスデータのシーケンス部)から次の2バイトデータを読み出す。なお、このトラック処理では、処理対象のトラックがパラメータで与えられれば、処理すべきシーケンス部が分かる。処理対象がボイスシーケンスのキーボードトラック1のときは現在選択されているボイスシーケンスデータのシーケンス部、処理対象がボイスシーケンスのキーボードトラック2のときは現在選択されているボイスシーケンスデータのシーケンス部、処理対象がフレーズトラック1のときは現在選択されているソングシーケンスデータのフレーズトラック1のシーケンス部、処理対象がフレーズトラック2のときは現在選択されているソングシーケンスデータのフレーズトラック2のシーケンス部、処理対象がベーストラックのときは現在選択されているソングシーケンスデータのベーストラックのシーケンス部、処理対象がリズムトラックのときは現在選択されているソングシーケンスデータのリズムトラックのシーケンス部を、それぞれ読み出すことになる。現在選択されているソングシーケンスデータは、自動演奏用のデータである場合もあるし自動伴奏用のデータである場合もある。
【0083】
次にステップ1004では、その2バイトデータがあったか否かを判別する。あったときは、ステップ1005で1バイト目のインターバルデータをタイマ104にセットし、ステップ1006で2バイト目のイベントデータを音源回路112の処理対象のトラックに対応する発音チャンネル(ここではキーボードトラック1に対応する発音チャンネル)に出力する。ノートイベントについては、処理対象のシーケンス部が属するシーケンスデータのヘッダ部の各ビット情報に応じてノートナンバを修正して出力する。ステップ1006の後、リターンする。
【0084】
ステップ1004で2バイトデータがなかったときは、ステップ1007で、エンドデータが読み出されたか否か判別する。エンドデータが読み出されたときは、ステップ1008で当該トラックの再生を終了し、リターンする。ステップ1007でエンドデータでないときは、リピートデータであるということであるから、ステップ1009で当該トラックの先頭に戻り、ステップ1003に戻る。なお、処理対象がキーボードトラック1または2のときは、ステップ1008でそれぞれフラグKON1または2を0にリセットするものとする。これは、鍵盤107の鍵を押し続けても、ボイスシーケンスデータのシーケンス部をエンドデータまで読み出して再生したときには、フラグKONをリセットして次の押鍵に備えるためである。
【0085】
次に、図7のステップ707のキーボードトラック2の処理を説明する。ステップ707では、上述の図8の共通ルーチンを呼び出す。このとき、処理対象がキーボードトラック2であることをパラメータで特定して呼び出すものとする。処理対象がキーボードトラック2であるので、キーボードトラック1の代わりにキーボードトラック2に対して図8の処理を行なうことになる。また、ステップ801で参照するフラグはKON2となり、ステップ814で実行する処理は「ソングシーケンスのキーボードトラック2」の処理となる。なお、ステップ803のソングシーケンスデータのキーボードトラック1および2のノートを消音する処理は、キーボードトラック1の処理で両トラックについての消音が既に実行されているので、キーボードトラック2の処理時には消音を実行する必要がない。
【0086】
キーボードトラック2の処理中、ステップ814にあたる位置で実行される「ソングシーケンスのキーボードトラック2の処理」では、上述の図9の共通ルーチンを呼び出す。このとき、処理対象がキーボードトラック2であることをパラメータで特定して呼び出すものとする。処理対象がキーボードトラック2であるので、キーボードトラック1の代わりにキーボードトラック2に対して図9の処理を行なうことになる。なお、ソングシーケンスのキーボードトラック1の処理のステップ916では、キーボードトラック1および2の設定を一緒に復活してしまうので、ソングシーケンスのキーボードトラック2の処理では、ステップ914〜916はスキップし、ステップ912でBARCNTが0でなかったときはそのままリターンするようにプログラムが組まれている。
【0087】
次に、図7のステップ702〜705のフレーズトラック1処理、フレーズトラック2処理、ベーストラック処理、およびリズムトラック処理について説明する。これらの処理では、それぞれ図10の共通ルーチンを呼び出す。このとき、フレーズトラック1処理では処理対象がフレーズトラック1であることをパラメータで特定し、フレーズトラック2処理では処理対象がフレーズトラック2であることをパラメータで特定し、ベーストラック処理では処理対象がベーストラックであることをパラメータで特定し、リズムトラック処理では処理対象がリズムトラックであることをパラメータで特定して、それぞれ呼び出すものとする。当然に、各処理では処理対象のトラック(自動演奏が指定されている場合は自動演奏用のソングシーケンスデータの当該トラックが対象となるし、自動伴奏が指定されている場合は自動伴奏用のソングシーケンスデータの当該トラックが対象となる)に対して図10の処理が実行される。
【0088】
上述の発明の実施の形態によれば、共通ルーチンを用いて、ユーザの演奏に応じた演奏音(付加音も含む)の発音処理、自動演奏処理、および自動伴奏処理を実現できるので、処理プログラムの簡略化と容量の縮小を実現でき、少ないメモリで多機能を実現できる。また、データのフォーマットも共通化しているので、例えば自動演奏用のソングシーケンスデータを元にして自動伴奏用のソングシーケンスデータを作成するというようなデータの流用が容易に行なえる。さらに、音色を選択したときに、その音色のシーケンスが再生されるので、ユーザは自分が選択した音色がどのようなものであるかを即時に知ることができる。
【0089】
なお、シーケンスデータ内の各ビット情報の種類や配置などは上記実施の形態に限定されない。例えば、リピートするか否かの情報をヘッダ部の中に含ませるようにしてもよい。シーケンスデータ自体のフォーマットを変形してもよい。また、音源回路の発音チャンネル数やシーケンスのトラック数は上記実施の形態に限定されない。鍵盤操作による発音は先着2音優先発音で、3音以上押鍵されている状態で、発音中の何れかのキーを離しても、新たなキーに発音が割り当てられないような例を示したが、新たなキーに発音が割り当てられるようにしてもよいし、後着優先などの他の割り当て方式を採用してもよい。また、自動演奏、自動伴奏ともにオフの場合は、音源の全チャンネルを鍵盤操作による発音に使用できるようにしてもよい。音色やバリエーションの数や種類、選択のためのスイッチの構成や数、音色の選択の方式などは上記実施の形態に限定されない。
【0090】
また、この発明は、電子楽器の形態に限らず、パーソナルコンピュータ+アプリケーションソフトウエアの形態にも適用できる。アプリケーションソフトウエアは、磁気ディスク、光ディスク、半導体メモリなどの記憶媒体に記憶させてパーソナルコンピュータに供給するようにしてもよいし、ネットワークを介して供給するようにしてもよい。上記実施の形態ではユーザが演奏操作する操作子として鍵盤を例示したが、鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、あるいは打楽器タイプなどの形態の電子楽器に本発明を適用することもできる。さらに、音源装置や自動演奏装置などを内蔵した電子楽器に限らず、それぞれが別体の装置をMIDIや各種ネットワークなどの通信手段を用いて接続したような構成を採ってもよい。
【0091】
上述の実施の形態で用いたシーケンス部は、「次のイベントまでの相対時間であるインターバルデータ+イベントデータ」のフォーマットとしたが、イベントの発生時刻を曲や小節内における絶対時間で表した「イベントデータ+絶対時間」の形式、音符の音高と符長あるいは休符と休符長で演奏データを表した「音高(休符)+符長」の形式、演奏の最小分解能ごとにメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域に演奏イベントを記憶する「ベタ方式」など、どのような形式でもよい。要するに、イベントデータとそのイベントの発生時間が特定できるデータであればよい。
【0092】
自動演奏や自動伴奏のテンポを変更する方法は、テンポクロックの周期を変更する方法や、テンポクロックの周期はそのままでタイミングデータの値を修正する方法、1回の処理においてタイミングデータをカウントする値を変更する方法など、どのような方法でもよい。自動演奏用のデータは、1つのトラックが1つのチャンネルに対応するものとしたが、複数のチャンネルのデータが混在した形式でもよいし、各チャンネルのデータがトラックごとに分かれているような形式であってもよい。
【0093】
音源回路の方式は、波形メモリ方式、FM(周波数変調)方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式など、どのような方式であってもよい。また、専用のハードウェアを用いて音源回路を構成するようにしてもよいし、DSP+マイクロプログラムを用いて音源回路を構成してもよいし、CPU+ソフトウェアのプログラムで音源回路を構成するようにしてもよい。1つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものでもよいし、1つの発音チャンネルが1つの回路で構成されるような形式のものであってもよい。
【0094】
【発明の効果】
以上説明したように、この発明によれば、ユーザにより音色の選択が行なわれたときには、その音色の音を確認のために発音し、さらにその音色に付加音が設定されているときには、その付加音も含めて確認のために発音するようにしているので、選択された音色(特に付加音)がどのようなものであるか即時に知ることができ、初心者や子供であっても選択した音色を認識でき、安心できる。
【図面の簡単な説明】
【図1】この発明に係る演奏装置のハードウエア構成を示すブロック図
【図2】パネル上に設けられている音色スイッチとバリエーションスイッチの外観図
【図3】ボイスシーケンスデータの例を示す図
【図4】ソングシーケンスデータの例を示す図
【図5】音色選択処理のフローチャート図
【図6】鍵盤処理のフローチャート図
【図7】シーケンサ処理のフローチャート図
【図8】キーボードトラック1(2)処理のフローチャート図
【図9】ソングシーケンスのキーボードトラック1(2)処理のフローチャート図
【図10】トラック処理のフローチャート図
【符号の説明】
101…ランダム・アクセス・メモリ(RAM)、102…リード・オンリ・メモリ(ROM)、103…中央処理装置(CPU)、104…タイマ、105…外部記憶装置、106…インターフェース、107…鍵盤、108…検出回路、109…スイッチ、110…検出回路、111…表示回路、112…音源回路、113…効果回路、114…サウンドシステム、115…バスライン、201〜205…音色スイッチ、206…バリエーションスイッチ。
Claims (3)
- ユーザが演奏操作するための演奏操作子と、
発音する音の音色を特定するデータを複数記憶した記憶手段と、
前記記憶手段から音色を特定するデータが選択されたとき、該選択された音色の楽音を所定音高かつ所定時間発音する選択手段と、
前記演奏操作子が演奏操作されたとき、選択された音色を特定するデータに応じた音色でその演奏操作に応じた演奏音の発音を行なう手段と
を備えたことを特徴とする演奏装置。 - ユーザが演奏操作するための演奏操作子と、
前記演奏操作子による1つの発音指示に応じて発音される1つの演奏音に対して所定のパターンで付加的に発音される楽音である付加音のデータを含むボイスシーケンスデータを複数記憶したボイスシーケンスデータ記憶手段と、
前記ボイスシーケンスデータ記憶手段からボイスシーケンスデータが選択されたとき、該選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで付加音を発音する選択手段と、
前記演奏操作子が演奏操作されたとき、その演奏操作による1つの発音指示に応じた演奏音を発音するとともに、前記選択されたボイスシーケンスデータに基づくパターンで付加音の発音を行なう手段と
を備えたことを特徴とする演奏装置。 - 請求項2に記載の演奏装置において、
前記演奏操作子が演奏操作されたときに発音される付加音は、前記演奏操作子による1つの発音指示に応じて、前記選択されたボイスシーケンスデータに含まれる付加音のデータに基づくパターンで、かつ、前記演奏操作で指定された音高に応じて該パターンの各音の音高が制御されて、発音される一連の楽音であることを特徴とする演奏装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002207626A JP3791784B2 (ja) | 1997-01-09 | 2002-07-16 | 演奏装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-13390 | 1997-01-09 | ||
JP1339097 | 1997-01-09 | ||
JP2002207626A JP3791784B2 (ja) | 1997-01-09 | 2002-07-16 | 演奏装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01327798A Division JP3379098B2 (ja) | 1997-01-09 | 1998-01-08 | 演奏装置、および該装置に係るプログラムまたはデータを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003036080A JP2003036080A (ja) | 2003-02-07 |
JP3791784B2 true JP3791784B2 (ja) | 2006-06-28 |
Family
ID=26349175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002207626A Expired - Fee Related JP3791784B2 (ja) | 1997-01-09 | 2002-07-16 | 演奏装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3791784B2 (ja) |
-
2002
- 2002-07-16 JP JP2002207626A patent/JP3791784B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003036080A (ja) | 2003-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11126074A (ja) | アルペジオ発音装置およびアルペジオ発音を制御するためのプログラムを記録した媒体 | |
JP2000056769A (ja) | 演奏情報変換装置および演奏情報変換制御プログラムを記録した媒体 | |
JP3533972B2 (ja) | 電子楽器の設定制御装置 | |
JP3707300B2 (ja) | 楽音発生装置用拡張ボード | |
JPH11224086A (ja) | 演奏装置およびレジストレーションデータを記録した記録媒体 | |
JP3671788B2 (ja) | 音色設定装置および音色設定方法並びに音色設定プログラムを記録したコンピュータで読み取り可能な記録媒体 | |
JP3632536B2 (ja) | パート選択装置 | |
JP3379098B2 (ja) | 演奏装置、および該装置に係るプログラムまたはデータを記録した記録媒体 | |
JP3791784B2 (ja) | 演奏装置 | |
JP3649014B2 (ja) | 演奏データファイルの再生設定制御装置 | |
JP4802947B2 (ja) | 奏法決定装置及びプログラム | |
JPH10268866A (ja) | 自動演奏制御装置 | |
JP3620396B2 (ja) | 情報修正装置及び情報修正プログラムを記録した媒体 | |
JP3397071B2 (ja) | 自動演奏装置 | |
JP3632487B2 (ja) | 電子楽器等における和音検出装置 | |
JP4244504B2 (ja) | 演奏制御装置 | |
JP4835434B2 (ja) | 演奏パターン再生装置及びそのコンピュータプログラム | |
JP3873880B2 (ja) | 演奏補助装置および演奏補助用プログラム | |
JP3680732B2 (ja) | 演奏装置および記憶媒体 | |
JP3296182B2 (ja) | 自動伴奏装置 | |
JP4172335B2 (ja) | 自動伴奏生成装置及びプログラム | |
JP4835433B2 (ja) | 演奏パターン再生装置及びそのコンピュータプログラム | |
JP2904020B2 (ja) | 自動伴奏装置 | |
JPH10222167A (ja) | 電子楽器のピッチ制御装置 | |
JP2972364B2 (ja) | 音楽的情報処理装置及び音楽的情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060124 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060330 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090414 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |