以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。なお、以下では、本発明のデモ演奏装置が電子楽器に組み込まれている場合について説明するが、独立の装置として構成することもできる。
(実施の形態1)
図1は、本発明に係るデモ演奏装置が適用された電子楽器の概略的な構成を示すブロック図である。
この電子楽器は、中央処理装置(以下、「CPU」という)10、プログラムメモリ13、ワークメモリ14、鍵盤スキャン回路15及び音源17が、システムバス20で相互に接続されて構成されている。システムバス20は、例えばアドレスバス、データバス及び制御信号バス等から構成されており、上記各構成要素間でデータを転送するために使用される。
CPU10には操作パネル11及び外部インタフェース(I/F)12が接続されている。また、鍵盤スキャン回路15には鍵盤装置16が接続されている。更に、音源17には増幅器18が接続され、この増幅器18にはスピーカ19が接続されている。
CPU10は、プログラムメモリ13に格納されている制御プログラムに従った処理を行うことによりこの電子楽器の全体を制御する。このCPU10は、図示しないタイムカウンタを含んでいる。このタイムカウンタは、タイマスタート指令に応答して一定周期でカウントアップ動作を開始する。このタイムカウンタは、後述するデモ演奏処理において、処理タイミングを検出するために使用される。このCPU10で行われる処理の詳細は後にフローチャートを参照しながら詳細に説明する。
このCPU10に接続された操作パネル11は、図2に示すように、フル演奏スイッチ31、ダイジェスト演奏スイッチ32、音色スイッチ33、表示装置34を含む。なお、実際の電子楽器では、上記の他に、リズム選択スイッチ、テンポ設定スイッチ、音量制御スイッチ、音響効果スイッチといった各種スイッチ、各スイッチのオン又はオフ状態を示すLED等が含まれている。
フル演奏スイッチ31は本発明の第1指示手段に対応し、デモ曲の全体の演奏(以下、「フル演奏」という)を開始させるために使用される。ダイジェスト演奏スイッチ32は本発明の第2指示手段に対応し、デモ曲の一部の演奏(以下、「ダイジェスト演奏」という)を開始させるために使用される。音色スイッチ33は複数のスイッチから構成されており、この電子楽器が備える複数の音色の中から1つの音色を選択するために使用される。
この音色スイッチ33は、デモ曲を選択するためにも使用される。即ち、フル演奏スイッチ31又はダイジェスト演奏スイッチ32の押下によってデモ演奏が行われている状態で音色スイッチ33の中の何れかのスイッチが押されると、演奏中のデモ曲は中止され、押されたスイッチに割り当てられているデモ曲の演奏が開始される。また、そのスイッチに複数のデモ曲が割り当てられている場合は、そのスイッチが押される毎に演奏されるデモ曲がサイクリックに変更される。
表示装置34は、LCD又はLEDから構成され、電子楽器の状態や各種メッセージを表示するために使用される。この表示装置34の表示はCPU10から送られてくるデータによって制御される。
また、CPU10に接続された外部インタフェース(I/F)12は、例えばMIDIインタフェースから構成され、この電子楽器の内部で発生した楽音データを外部に送信し、また、外部から楽音データを受信するために使用される。
プログラムメモリ13は、リードオンリメモリ(以下、「ROM」という)から構成されており、上述した制御プログラムの他に、音色パラメータ、デモ演奏データ、曲番号テーブル等を格納している。本発明のメモリは、このプログラムメモリ13で構成されている。なお、本発明のメモリは、このプログラムメモリ13に限らず、ワークメモリ14、図示しないフロッピー(登録商標)装置等で構成することもできる。ワークメモリ14が使用される場合は、電源バックアップ機構が付加される。
プログラムメモリ13に格納される音色パラメータは、複数の音色及び音域に対応して各々設けられており、種々の音色の楽音を発生させるために使用される。各音色パラメータは、波形アドレス、周波数データ、エンベロープデータ、フィルタ係数等から構成されている。
また、プログラムメモリ13に格納されるデモ演奏データは、複数のデモ曲の各々に対応して設けられている。各曲のデモ演奏データは、フル演奏データとダイジェスト演奏データとから構成されている。フル演奏データは、デモ曲をフル演奏させるために使用される。ダイジェスト演奏データは、デモ曲をダイジェスト演奏させるために使用される。ダイジェスト演奏データとしては、該デモ曲の特徴的な部分を用いることができる。
各フル演奏データは、図3(A)に示すように、所定の先頭アドレスA、B、C、・・・から所定の領域に格納されている。同様に、ダイジェスト演奏データは、図3(B)に示すように、所定の先頭アドレスa、b、c、・・・から所定の領域に格納されている。
フル演奏データ及びダイジェスト演奏データの各々は、ノートデータ、プログラムチェンジデータ、コントロールデータ、エンドデータといった演奏データが時系列に並べられることにより構成されている。ノートデータは、発音及び消音を制御するために使用される。プログラムチェンジデータは、音色を選択するために使用される。コントロールデータは、音量、テンポ、音響効果、その他の楽音特性を制御するために使用される。エンドデータは、フル演奏データの最後及びダイジェスト演奏データの最後に置かれ、それぞれフル演奏データ及びダイジェスト演奏データの最後であることを判断するために使用される。本発明の「楽音特性を制御するための演奏データ」は、プログラムチェンジデータ及びコントロールデータを含む。
上記ノートデータは、ステップタイム、ノートナンバ、ベロシティ、ゲートタイム等から構成されている。ステップタイムは発音タイミングを、ノートナンバは音の高さを、ベロシティは音の強さを、ゲートタイムは音の長さをそれぞれ規定する。また、プログラムチェンジデータは、ステップタイム、音色ナンバ等から構成されている。音色ナンバは音色の種類を規定する。更に、コントロールデータは、ステップタイム、コントロールナンバ、コントロールデータ等から構成されている。コントロールナンバは、テンポ、音量、音響効果等といった制御の種類を規定する。コントロールデータは、テンポ値、音量値、音響効果の深さ等を規定する。
また、プログラムメモリ13に格納される曲番号テーブルは、図4に示すように、デモ曲の曲番号、フル演奏データの先頭アドレスA、B、C、・・・及びダイジェスト演奏データの先頭アドレスa、b、c、・・・を1組とし、複数のデモ曲の各々に対応させて記憶している。
ワークメモリ14は、ランダムアクセスメモリ(以下、「RAM」という)から構成され、CPU10が各種処理に使用する種々のデータを一時的に記憶する。このワークメモリ14には、この電子楽器を制御するためのレジスタ、カウンタ、フラグ等が定義される。上記レジスタには、デモ曲番号レジスタ、アドレスレジスタARが含まれる。デモ曲番号レジスタは、デモ曲の番号を記憶する。また、アドレスレジスタARは、後述するデモ曲演奏処理で、演奏データのポインタとして使用される。また、上記フラグには、デモフラグ及び全曲フラグが含まれる。デモフラグは、「1」でデモ演奏中であることを表し、「0」でデモ演奏中でないことを表す。また、全曲フラグは、「1」でフル演奏を表し、「0」でダイジェスト演奏を表す。
鍵盤装置16は、発音及び消音を指示するための複数の鍵を有している。この鍵盤装置16は、例えば2接点方式が採用されており、オン/オフされた鍵のキーナンバ及び打鍵の強さ(速さ)を示すイニシャルタッチデータを検出する。即ち、鍵盤装置16の各鍵は、押鍵又は離鍵によってオン/オフする2個のキースイッチを有し、各キースイッチは、それぞれ異なる押圧深さでオン/オフされる。この鍵盤装置16は、鍵盤スキャン回路15に接続されている。
鍵盤スキャン回路15は、鍵盤装置16とCPU10との間のデータの送受を制御する。具体的には、鍵盤スキャン回路15は、鍵盤装置16に対してスキャン信号を送出し、このスキャン信号に応答して鍵盤装置16から返送される2個のキースイッチのオン/オフ状態を示すデータを受け取る。そして、鍵盤装置16から受け取った2個のキースイッチのオン/オフ状態を示すデータから、オン又はオフにされた鍵のキーナンバ及びイニシャルタッチデータを生成する。このキーナンバ及びイニシャルタッチデータは、システムバス20を介してCPU10に送られる。CPU10は、受け取ったキーナンバ及びイニシャルタッチデータに基づき発音/消音処理を行う。
音源17は、複数のオシレータを備えて構成されている。この音源17は、例えばROMで構成される波形メモリ(図示しない)を含む。波形メモリには、複数の音色及び鍵域に対応する複数のパルスコード変調(PCM)された波形データが記憶されている。
音源17は、CPU10から受け取った音色パラメータと発音開始指令に基づき波形メモリに記憶された波形データを読み出し、これにエンベロープを付加して楽音信号を生成する。また、CPU10から受け取った発音終了指令に基づき波形メモリからの波形データの読み出しを停止し、楽音信号の生成を停止する。この音源17で生成された楽音信号は、増幅器18に送られる。
増幅器18は、入力された楽音信号を所定の増幅率で増幅して出力する。この増幅器18で増幅された楽音信号はスピーカ19に送られる。スピーカ19は、電気信号としての楽音信号を音響信号に変換する。このスピーカ19により、鍵盤装置16の鍵の押下又はプログラムメモリ13から読み出されたデモ演奏データに応じた楽音が放音される。
次に、上記の構成において、本発明の実施の形態1に係るデモ演奏装置が適用された電子楽器の動作を、デモ演奏を行う場合の動作を中心に説明する。
オペレータは、電子楽器にデモ曲のフル演奏を行わせる場合は、操作パネル11上のフル演奏スイッチ31を押下し、ダイジェスト演奏を行わせる場合は、オダイジェスト演奏スイッチ32を押下する。これにより、デモ曲のフル演奏又はダイジェスト演奏が開始される。ここで、この実施の形態1では、説明を簡単にするために、フル演奏及びダイジェスト演奏の何れの場合も、複数のデモ曲をシーケンシャルに連続して演奏するものとする。
なお、デモ演奏は、複数のデモ曲をシーケンシャルに連続して演奏するのみならず、ランダムに演奏したり、特定のデモ曲だけを繰り返して演奏するように構成することもできる。
以下、フローチャートを参照しながら、本発明の実施の形態1に係るデモ演奏装置が適用された電子楽器の動作を詳細に説明する。
(1−1)メイン処理
図5は、この電子楽器のメイン処理を示すフローチャートであり、電源が投入されることにより起動される。即ち、電源が投入されると、先ず、初期化処理が行われる(ステップS10)。この初期化処理では、CPU10の内部状態が初期状態に設定される。また、ワークメモリ14に定義されているレジスタ、カウンタ或いはフラグ等に初期値が設定される。この際、デモ曲番号レジスタは「1」に設定される。
この初期化処理が終了すると、パネル処理が行われる(ステップS11)。このパネル処理では、操作パネル11のスイッチの操作に応答して、該操作されたスイッチの機能を実現するための処理が行われる。このパネル処理の詳細は後述する。
次いで、鍵盤処理が行われる(ステップS12)。この鍵盤処理では、先ず、鍵盤イベントの有無が調べられる。これは、次のようにして行われる。即ち、鍵盤スキャン回路15で鍵盤装置16をスキャンすることにより、各鍵の押下状態を示すキーデータ(以下、「新キーデータ」という)が取り込まれる。キーデータは、各鍵に対応したビット列から構成されている。
次いで、前回読み込んで既にワークメモリ14に記憶されているキーデータ(以下、「旧キーデータ」という)と新キーデータとが比較され、相違するビットをオンにした鍵イベントマップが作成される。鍵盤イベントの有無はこの鍵イベントマップを参照することにより判断される。即ち、鍵イベントマップ中にオンになっているビットが1つでも存在すると鍵盤イベントがあった旨が判断される。
この鍵イベントマップを参照することにより鍵盤イベントがあったことが判断されると、該鍵盤イベントに対する処理が行われる。即ち、オンイベントがあった場合は、アサイナにより音源17中の所定のオシレータに発音が割り当てられる。そして、オンイベントのあった鍵のキーナンバ、イニシャルタッチデータ及び音色ナンバ等に応じた音色パラメータがプログラムメモリ13から読み出され、音源17に送られる。これにより、音源17の割り当てられたオシレータで、上記音色パラメータに基づいた楽音信号が生成され、これが増幅器18及びスピーカ19を順次経由することにより発音が行われる。
一方、オフイベントがあった場合は、そのオフイベントがあった鍵に割り当てられている音源17中のオシレータが検索され、検索されたオシレータに所定のデータが送られることにより消音が行われる。
以上の鍵盤処理が終了すると、次いで、デモ演奏処理が行われる(ステップS13)。このデモ演奏処理では、詳細は後述するが、プログラムメモリ13に格納されているデモ演奏データに基づいてデモ演奏音を発生させる処理が行われる。
次いで、その他の処理が行われる(ステップS14)。この「その他の処理」には、MIDIデータの送受信処理等が含まれる。その後、ステップS11に戻り、以下同様の処理を繰り返す。上記ステップS11〜S14の繰り返し実行の過程で、パネル操作、鍵盤操作等に基づくイベントが発生すると、そのイベントに対応する処理が行われることにより電子楽器としての各種機能が発揮される。
(1−2)パネル処理
図6は、パネル処理の詳細を示すフローチャートであり、メイン処理ルーチンのステップS11からコールされる。
このパネル処理では、先ず、フル演奏スイッチ31がオンにされたかどうかが調べられる(ステップS20)。そして、オンにされたことが判断されると、次いで、デモ演奏中であるかどうかが調べられる(ステップS21)。これは、ワークメモリ14に定義されているデモフラグが「1」にセットされているかどうかを調べることにより行われる。
ここで、デモ演奏中である、つまりデモフラグが「1」であることが判断されると、デモフラグが「0」にクリアされる(ステップS22)。これにより、デモ曲の演奏が停止される。その後、シーケンスはステップS25へ分岐する。
一方、上記ステップS21でデモ演奏中でない、つまりデモフラグが「1」でないことが判断されると、デモフラグが「1」にセットされ、且つ全曲フラグが「1」にセットされる(ステップS23)。上記ステップS21〜S23の処理により、フル演奏スイッチ31が押される度にデモ曲のフル演奏の開始と停止とが交互に行われる。
次いで、演奏開始処理ルーチンがコールされる(ステップS24)。この演奏開始処理の詳細は、図7のフローチャートに示されている。この演奏開始処理では、先ず、全曲フラグが「1」であるかどうかが調べられる(ステップS40)。そして、「1」であることが判断されると、その時点でデモ曲番号レジスタに設定されている曲番号に対応するフル演奏データの先頭アドレスがアドレスレジスタARにセットされる(ステップS41)。これは、曲番号テーブルを参照することにより行われる。例えば、図4に示すように、デモ曲番号レジスタに「1」が設定されているとすると、「A」がアドレスレジスタARにセットされる。その後、シーケンスは、ステップS43に分岐する。
一方、上記ステップS40で、全曲フラグが「0」であることが判断されると、その時点でデモ曲番号レジスタに設定されている曲番号に対応するダイジェスト演奏データの先頭アドレスがアドレスレジスタARにセットされる(ステップS42)。これは、曲番号テーブルを参照することにより行われる。例えば、図4に示すように、デモ曲番号レジスタに「1」が設定されているとすると、「a」がアドレスレジスタARにセットされる。
次いで、タイムカウンタのスタート処理が行われる(ステップS43)。即ち、タイマスタート指令がタイマカウンタに送られる。タイムカウンタは、タイマスタート指令に応答して一定周期でカウントアップ動作を開始する。以上により、デモ曲のフル演奏を開始する準備が完了する。その後、シーケンスは、コールされた位置の次のステップ(パネル処理ルーチンのステップS25)にリターンする。
上記ステップS20で、フル演奏スイッチ31がオンにされていないことが判断されると、ステップS21〜S24の処理はスキップされ、シーケンスはステップS25に分岐する。
パネル処理ルーチンのステップS25では、ダイジェスト演奏スイッチ32がオンにされたかどうかが調べられる。そして、オンにされたことが判断されると、次いで、デモ演奏中であるかどうかが調べられる(ステップS26)。これは、ワークメモリ14に定義されているデモフラグが「1」にセットされているかどうかを調べることにより行われる。
ここで、デモ演奏中である、つまりデモフラグが「1」であることが判断されると、デモフラグが「0」にクリアされる(ステップS27)。これにより、デモ曲の演奏が停止される。その後、シーケンスはステップS30へ分岐する。
一方、上記ステップS26でデモ演奏中でない、つまりデモフラグが「1」でないことが判断されると、デモフラグが「1」にセットされ、且つ全曲フラグが「0」にクリアされる(ステップS28)。上記ステップS25〜S27の処理により、ダイジェスト演奏スイッチ32が押される度にデモ曲のダイジェスト演奏の開始と停止とが交互に行われる。
次いで、演奏開始処理ルーチンがコールされる(ステップS29)。この演奏開始処理の内容は、図7のフローチャートを参照して説明した。これにより、デモ曲のダイジェスト演奏を開始する準備が完了する。その後、シーケンスは、コールされた位置の次のステップ(パネル処理ルーチンのステップS30)にリターンする。
上記ステップS25で、ダイジェスト演奏スイッチ32がオンにされていないことが判断されると、ステップS26〜S29の処理はスキップされ、シーケンスはステップS30に分岐する。
ステップS30では、その他のスイッチ処理が行われる。この「その他のスイッチ処理」では、音色スイッチの操作に伴う音色選択処理、リズム選択スイッチの操作に伴うリズム選択処理、テンポ設定スイッチの操作に伴うテンポ設定処理、音量制御スイッチの操作に伴う音量設定処理、音響効果スイッチの操作に伴う音響効果選択処理等が行われる。その後、シーケンスはメイン処理ルーチンにリターンする。
(1−3)デモ演奏処理
図8は、デモ演奏処理の詳細を示すフローチャートであり、メイン処理ルーチンのステップS13からコールされる。
このデモ演奏処理では、先ず、デモ演奏中であるかどうか、つまりデモフラグが「1」であるか否かが調べられる(ステップS50)。そして、デモ演奏中でないことが判断されると、シーケンスはこのデモ演奏処理ルーチンからメイン処理ルーチンにリターンする。これにより、デモフラグが「0」であれば、デモ演奏を停止する機能が実現されている。
一方、デモ演奏中である、つまりデモフラグが「1」であることが判断されると、プログラムメモリ13のアドレスレジスタARの内容で指定される位置から1つの演奏データが取り出される(ステップS51)。そして、処理タイミングであるかどうかが調べられる(ステップS52)。これは、取り出された演奏データに含まれるステップタイムが図示しないタイムカウンタでカウントアップされているタイム値と一致するかどうかを調べることにより行われる。
ここで、処理タイミングでない、即ち上記比較の結果が一致しないことが判断されると、未だ発音又は消音タイミングに至っていない旨が認識され、このデモ演奏処理ルーチンからメイン処理ルーチンにリターンする。
一方、処理タイミングである、即ち上記の比較結果が一致することが判断されると、発音又は消音タイミングが到来した旨が認識され、演奏データ処理が行われる(ステップS53)。この演奏データ処理の詳細は、図9のフローチャートに示される。
演奏データ処理では、先ず、ノートオンデータであるかどうかが調べられる(ステップS60)。そして、ノートオンデータであることが判断されると、そのノートオンデータに基づいて発音処理が行われる(ステップS61)。この発音処理では、上述した鍵盤処理における発音処理と同様に、アサイナにより使用するオシレータが決定され、その決定されたオシレータを指定するデータと、ノートオンデータ等に基づいて得られる音色パラメータとが音源17に送られる。これにより、発音が割り当てられたオシレータは、波形メモリから波形データを読み出し、これにエンベロープを付加して楽音信号を生成する。この音源17で発生された楽音信号は、増幅器18に送られ、この増幅器18で所定の増幅が行われてスピーカ19に送られる。これによりスピーカ19からノートオンデータに対応する楽音が放音される。その後、シーケンスはデモ演奏処理ルーチンにリターンする。
上記ステップS60で、ノートオンデータでないことが判断されると、次いで、ノートオフデータであるかどうかが調べられる(ステップS62)。そして、ノートオフデータであることが判断されると、そのノートオフデータに基づいて消音処理が行われる(ステップS63)。この消音処理は、上述した鍵盤処理におけるキーオフイベントの場合と同様に、ノートオフが指示された楽音に割り当てられているオシレータが検索され、そのオシレータに所定のデータが送られる。これによりデモ演奏音が消音される。その後、シーケンスはデモ演奏処理ルーチンにリターンする。
上記ステップS62で、ノートオフデータでないことが判断されると、次いで、プログラムチェンジデータであるかどうかが調べられる(ステップS64)。そして、プログラムチェンジデータであることが判断されると、そのプログラムチェンジデータで指定された音色に変更する音色変更処理が行われる(ステップS65)。その後、シーケンスはデモ演奏処理ルーチンにリターンする。
上記ステップS64で、プログラムチェンジデータでないことが判断されると、次いで、コントロールチェンジデータであるかどうかが調べられる(ステップS66)。そして、コントロールチェンジデータであることが判断されると、そのコントロールチェンジデータの指定に応じて楽音特性を制御する処理が行われる(ステップS67)。即ち、コントロールチェンジデータに従って、例えばテンポ、音量、音響効果等を変更する処理が行われる。その後、シーケンスはデモ演奏処理ルーチンにリターンする。
上記ステップS66で、プログラムチェンジデータでないことが判断されると、次いで、その他の処理が行われる(ステップS68)。その後、シーケンスはデモ演奏処理ルーチンにリターンする。
デモ演奏処理ルーチンでは、次いで、上記ステップS51で取り出された演奏データがエンドデータであるかどうかが調べられる(ステップS54)。ここで、エンドデータでないことが判断されると、シーケンスはステップS51に戻り、再度同様の処理が繰り返し実行される。この繰り返し実行により、同一のステップタイムを有する全ての演奏データの処理が行われる。これにより、例えば同一のステップタイムを有するノートオンデータが全て発音されるので、和音の発生が可能になっている。
上記ステップS54で、エンドデータであることが判断されると、曲番号の更新が行われる(ステップS56)。即ち、デモ曲番号レジスタに格納されている曲番号が変更される。次いで、演奏開始処理が実行される(ステップS57)。その後、シーケンスはメイン処理ルーチンにリターンする。このステップS56及びS57の処理により、複数のデモ曲の演奏を連続して実行する機能が実現されている。
以上説明したように、この実施の形態1に係るデモ演奏装置によれば、フル演奏データとダイジェスト演奏データとを別個に記憶しておき、フル演奏スイッチ31による指示に応答してデモ曲をフル演奏し、ダイジェスト演奏スイッチ32による指示に応答してデモ曲をダイジェスト演奏するようにしたので、簡単な構成であるにも拘わらず、ユーザの希望に応じたデモ演奏を行うことのできる。
(実施の形態2)
本発明の実施の形態2に係るデモ演奏装置は、フル演奏データの一部をダイジェスト演奏データとして第1トラックに格納し、残りを第2トラックに格納する。そして、デモ曲をダイジェスト演奏する場合は第1トラックの演奏データを読み出し、フル演奏する場合は第1及び第2トラックの双方の演奏データを読み出してそれぞれデモ演奏を行う。
この実施の形態2に係るデモ演奏装置が適用された電子楽器の構成は、実施の形態1で説明した構成(図1参照)と同じである。以下では、実施の形態1と相違する部分を中心に説明する。
プログラムメモリ13に格納されるデモ演奏データは、複数のデモ曲の各々に対応して設けられている。各曲のデモ演奏データは、図11に示すように、第1トラックT1及び第2トラックT2に分けて格納されている。
第1トラックT1には、デモ曲を構成する演奏データの一部が格納される。この演奏データの一部はダイジェスト演奏に使用される。また、第2トラックには、上記デモ曲を構成する演奏データの他の部分が格納される。
第1トラックT1の演奏データ(斜線部)の前及び後ろ(空白部)には、バーデータが格納される。前部のバーデータは、デモ曲をフル演奏する場合に、第2トラックT2に格納された演奏データと発音タイミングを合わせるために挿入されている。後部のバーデータは1小節分の無音時間を形成するために設けられている。この後部のバーデータにより、デモ曲をダイジェスト演奏で連続させる場合に、先のデモ曲が終了してから1小節の余韻を持って次のデモ曲に移らせることができる。この後部のバーデータの後ろにエンドデータが置かれている。
また、第1トラックT1の演奏データの先頭部には、楽音特性制御データが格納されている。この楽音特性制御データには、プログラムチェンジデータ及びコントロールチェンジデータが含まれる。
第2トラックT2の演奏データ(斜線部)の中間には、バーデータが格納される。このバーデータは、デモ曲をフル演奏する場合に、第1トラックT1に格納された演奏データと発音タイミングを合わせるために挿入されている。
また、プログラムメモリ13に格納される曲番号テーブルは、図10に示すように、デモ曲の曲番号、第1トラックT1の先頭アドレスA、B、C、・・・、第2トラックT2の先頭アドレスa、b、c、・・・及びオフセットアドレスを1組とし、複数のデモ曲の各々に対応させて記憶している。オフセットアドレスは、第1トラックT1に格納されている演奏データの先頭アドレスである。
また、ワークメモリ14に設けられるレジスタには、アドレスレジスタARの代わりに、第1アドレスレジスタAR1及び第2アドレスレジスタAR2が設けられる。第1アドレスレジスタAR1は、第1トラックT1の演奏データのポインタとして使用される。また、第2アドレスレジスタAR2は、第2トラックT2の演奏データのポインタとして使用される。
また、ワークメモリ14に設けられるフラグには、更にTR1フラグ及びTR2フラグが追加されている。TR1フラグは、「1」で第1トラックT1の演奏データを用いることを表し、「0」で第1トラックT1の演奏データを用いないことを表す。同様に、TR2フラグは、「1」で第2トラックT2の演奏データを用いることを表し、「0」で第2トラックT2の演奏データを用いないことを表す。
次に、上記の構成において、本発明の実施の形態2に係るデモ演奏装置が適用された電子楽器の動作を、フローチャートを参照しながら、デモ演奏を行う場合の動作を中心に説明する。なお、デモ演奏を開始させるための操作は、実施の形態1の操作と同じである。
(2−1)メイン処理
図5に示した実施の形態1と同じである。
(2−2)パネル処理
この実施の形態2に係るパネル処理ルーチンは、演奏開始処理(図6のステップS24及びS29)の内容を除けば実施の形態1のそれと同じである。
この実施の形態2における演奏開始処理では、図12に示すように、先ず、その時点でデモ曲番号レジスタに設定されている曲番号に対応する第1トラックT1の先頭アドレスが第1アドレスレジスタAR1にセットされる(ステップS70)。これは、曲番号テーブルを参照することにより行われる。例えば、図10に示すように、デモ曲番号レジスタに「1」が設定されているとすると、「A」がアドレスレジスタARにセットされる。
次いで、その時点でデモ曲番号レジスタに設定されている曲番号に対応する第2トラックT2の先頭アドレスが第2アドレスレジスタAR2にセットされる(ステップS71)。これは、曲番号テーブルを参照することにより行われる。例えば、図10に示すように、デモ曲番号レジスタに「1」が設定されているとすると、「a」が第2アドレスレジスタAR2にセットされる。
次いで、全曲フラグが「1」であるかどうかが調べられる(ステップS72)。そして、「1」であることが判断されると、フル演奏を行うべき旨が認識され、TR1フラグ及びTR2フラグは「1」にセットされる(ステップS73)。その後、シーケンスはステップS76に進む。
一方、上記ステップS72で、「1」でないことが判断されると、ダイジェスト演奏を行うべき旨が認識され、TR1フラグは「1」にセットされ、TR2フラグは「0」にクリアされる(ステップS74)。次いで、その時点でデモ曲番号レジスタに設定されている曲番号に対応するオフセットアドレスが第1アドレスレジスタAR1に加算される(ステップS75)。これにより、第1アドレスレジスタAR1には、第1トラックT1に格納されている演奏データの先頭アドレスが格納される。その後、シーケンスはステップS76に分岐する。
ステップS76では、タイムカウンタのスタート処理が行われる。即ち、タイマスタート指令がタイマカウンタに送られる。タイムカウンタは、タイマスタート指令に応答して一定周期でカウントアップ動作を開始する。以上により、デモ曲のフル演奏を開始する準備が完了する。その後、シーケンスは、コールされた位置の次のステップにリターンする。
(2−3)デモ演奏処理
図13は、デモ演奏処理の詳細を示すフローチャートであり、メイン処理ルーチンのステップS13からコールされる。
このデモ演奏処理では、先ず、TR1フラグが「1」であるかどうかが調べられる(ステップS80)。そして、TR1フラグが「1」であることが判断されると、第1トラックデモ演奏処理が行われる(ステップS81)。この第1トラックデモ演奏処理は、アドレスレジスタARの代わりに第1アドレスレジスタAR1が使用される点を除けば、図8を参照して説明した実施の形態1のデモ演奏処理と同じである。上記ステップS80で、TR1フラグが「1」でないことが判断されると、このステップS81の処理はスキップされる。
次いで、TR2フラグが「1」であるかどうかが調べられる(ステップS82)。そして、TR2フラグが「1」であることが判断されると、第2トラックデモ演奏処理が行われる(ステップS83)。この第2トラックデモ演奏処理は、アドレスレジスタARの代わりに第2アドレスレジスタAR2が使用される点を除けば、図8を参照して説明した実施の形態1のデモ演奏処理と同じである。上記ステップS82で、TR2フラグが「1」でないことが判断されると、このステップS83の処理はスキップされる。その後、シーケンスはメイン処理ルーチンにリターンする。
今、デモ曲をフル演奏する場合を考える。この場合、第1アドレスレジスタAR1には第1トラックT1の先頭アドレスが、第2アドレスレジスタAR2には第2トラックT2の先頭アドレスがそれぞれセットされている。また、TR1フラグ及びTR2フラグは何れも「1」にセットされている。
従って、デモ演奏処理では、第1トラックデモ演奏処理及び第2トラックデモ演奏処理が並行して実行され、且つ、第1トラックデモ演奏処理及び第2トラックデモ演奏処理では、それぞれ第1トラックT1及び第2トラックT2の先頭アドレスから演奏データが読み出されて発音に供されるので、デモ曲のフル演奏が行われることになる。
一方、デモ曲をダイジェスト演奏する場合を考えると、第1アドレスレジスタAR1には第1トラックT1の演奏データの先頭アドレスが、第2アドレスレジスタAR2には第2トラックT2の先頭アドレスがそれぞれセットされている。また、TR1フラグは「1」にセットされ、TR2フラグは「0」にクリアされている。
従って、デモ演奏処理では、第1トラックデモ演奏処理だけが実行される。この場合、第1トラックT1の演奏データの先頭アドレスから演奏データが読み出されて発音に供される。従って、デモ曲のダイジェスト演奏が行われることになる。この場合、ダイジェスト演奏が終了すると1小節分の時間が経過した後に次のデモ曲のダイジェスト演奏に移行する。
以上説明したように、この実施の形態2に係るデモ演奏装置によれば、フル演奏データの一部をダイジェスト演奏データとして第1トラックに記憶し、フル演奏データの他部を第2トラックに記憶しておき、フル演奏を行う場合は第1及び第2トラックの双方に格納されている演奏データに基づいてデモ演奏を行い、ダイジェスト演奏を行う場合は、第1トラックに格納されている演奏データに基づいてデモ演奏を行うようにしたので、簡単な構成であるにも拘わらず、ユーザの希望に応じたデモ演奏を行うことができる。
なお、上述した実施の形態1及び2では、フル演奏を開始させるためのフル演奏スイッチ31及びダイジェスト演奏を開始させるためのダイジェスト演奏スイッチ32を設けているが、1個のデモ演奏スイッチだけを設け、このデモ演奏スイッチが単独で押された場合はダイジェスト演奏を開始し、他のスイッチ、例えば音色スイッチ33の中の1つのスイッチと同時に押された場合にフル演奏を開始するように構成できる。
この機能は、図6に示したパネル処理ルーチンを図14に示すように変更することにより実現できる。即ち、先ずデモ演奏スイッチがオンであるかどうかが調べられる(ステップS90)。そして、オンでないことが判断されるとこのパネル処理ルーチンからリターンする。一方、オンであることが判断されると、次いで音色スイッチ33の中の所定のスイッチがオンであるかどうかが調べられる(ステップS91)。そして、オンであることが判断されると、フル演奏が指示されたものと認識し、ステップS21〜24のフル演奏用の処理が実行される。
一方、音色スイッチ33の中の所定のスイッチがオンでないことが判断されると、ダイジェスト演奏が指示されたものと認識し、ステップS26〜29のダイジェスト演奏用の処理を実行するように構成する。この構成によれば、デモ演奏を開始させるためには1個のスイッチを設ければよいので、デモ演奏装置を簡単にできる。
また、デモ演奏を開始させるために1個のデモ演奏スイッチだけを設け、このデモ演奏スイッチが押された時間が所定時間以下であればフル演奏を開始し、所定時間より大きい場合にダイジェスト演奏を開始するように構成できる。
この機能は、図14に示したパネル処理ルーチンのステップS91を図15に示すステップS92に示すように変更することにより実現できる。即ち、先ずデモ演奏スイッチがオンであるかどうかが調べられる(ステップS90)。そして、オンでないことが判断されるとこのパネル処理ルーチンからリターンする。一方、オンであることが判断されると、次いでデモ演奏スイッチが所定時間内にオフされたかどうかが調べられる(ステップS92)。そして、所定時間内にオフされたことが判断されると、フル演奏が指示されたものと認識し、ステップS21〜24のフル演奏用の処理が実行される。
一方、所定時間内にオフされなかったことが判断されると、ダイジェスト演奏が指示されたものと認識し、ステップS26〜29のダイジェスト演奏用の処理を実行するように構成する。この構成によれば、デモ演奏を開始させるために1個のスイッチを設ければよいので、デモ演奏装置を簡単にできる。
以上詳述したように、本発明によれば、簡単な構成であるにも拘わらず、ユーザの希望に応じて曲の特徴部分のみのデモ演奏及び曲全体のデモ演奏の何れかを行うことのできる電子楽器のデモ曲演奏装置及びデモ曲演奏方法を提供できる。