以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る演奏記録装置を適用した電子楽器の全体構成を示したハード構成ブロック図である。本実施例に示す電子楽器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御される。CPU1は、この電子楽器全体の動作を制御するものである。このCPU1に対して、データ及びアドレスバス1Dを介してROM2、RAM3、検出回路4,5、表示回路6、音源回路7、効果回路8、外部記憶装置10、MIDIインタフェース(I/F)11および通信インタフェース(I/F)12がそれぞれ接続されている。更に、CPU1には、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ1Aが接続されている。例えば、タイマ1Aはクロックパルスを発生し、発生したクロックパルスをCPU1に対して処理タイミング命令として与えたり、あるいはCPU1に対してインタラプト命令として与える。CPU1は、これらの命令に従って各種処理を実行する。
ROM2は、CPU1により実行される各種プログラムや各種データを格納するものである。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、例えばユーザによるリアルタイム演奏に応じて音源回路7から発生される楽音データ(オーディオデータ)をデータ発生順に記録するリングバッファ、外部記憶装置10から読み出したマーカーテーブル(後述する図8参照)を一時的に記憶するメモリ、あるいはレジスタやフラグなどとして利用される。
演奏操作子4Aは楽音の音高を選択するための複数の鍵を備えた例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子4A(鍵盤等)はユーザ自身の手弾きによるマニュアル演奏のために使用できるのは勿論のこと、演奏を記録したい曲を選択するための入力手段などとして使用することもできる。検出回路4は、演奏操作子4Aの各鍵の押圧及び離鍵を検出することによって検出出力を生じる。この実施例では、ユーザによる当該演奏操作子4Aの操作に応じて音源回路7から発生される楽音信号(オーディオデータ)が、RAM3のリングバッファにリアルタイムに発生順(時間順)に随時に記録されていく。
パネル操作子(スイッチ等)5Aは、後述する図2に示すような、例えばリアルタイム演奏のリングバッファへの記録の開始及び記録の終了を指示する「レッスン開始/終了スイッチ」B1、リアルタイム演奏の記録終了後に再生したい任意の再生位置(再生範囲)の目安とするチェックポイント(これをマーカー位置と呼ぶ)を、リアルタイム演奏時に操作されることに応じて記録するよう指示する「記録スイッチ」B2、リアルタイム演奏の記録終了後に該記録された演奏を、前記「記録スイッチ」B2の操作に応じて記録されたマーカー位置に基く所定の範囲で再生するよう指示する「再生スイッチ」B3、リアルタイム演奏の記録時に操作された場合には、該記録中の演奏に対して任意の再生位置を割り当てる指示を行う一方で、リアルタイム演奏の記録終了後に操作された場合には、前記割り当てられた再生位置での楽音再生を指定する「マーカー設定ボタン」M1〜M4などがある(図2参照)。勿論、これら以外にも、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ6Aに表示される所定のポインティングデバイスを操作するために用いるマウスなどの各種操作子を含んでいてよい。検出回路5は、上記各スイッチの操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス1Dを介してCPU1に出力する。
表示回路6は例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイ6Aに、ユーザが演奏記録時に適宜に設定したマーカー位置に関する各種情報を表示する「再生位置表示画面」(後述する図2参照)、予め用意されている演奏の見本となるお手本演奏あるいはユーザによる演奏時に演奏補助となる伴奏などを再生することが可能な曲データの一覧、ユーザが演奏時に参照する演奏対象曲の楽譜や演奏再生時に参照する再生範囲の楽譜、あるいはCPU1の制御状態などを表示する。ユーザは該ディスプレイ6Aに表示されるこれらの各種情報を参照することで、例えば演奏記録対象としたい曲の選択、記録した演奏における再生位置の指定などの操作を容易に行うことができる。
ここで、ディスプレイ6Aに表示される「再生位置表示画面」について、図2を用いて説明する。図2は、「再生位置表示画面」の一実施例を示す概念図である。ただし、この図2では、3つのボタンM1〜M3に対してマーカー位置が割り当て済みである場合の画面を例示している。
図2に示す「再生位置表示画面」は、「マーカー設定ボタン」M1〜M4それぞれに対応するようにして配置された所定の表示エリアH1〜H4に、前記各ボタンM1〜M4毎に割り当てられている「マーカー位置」に関する情報を表示する。この画面に表示される「マーカー位置」に関する情報としては、図示のように経過時間、タイトル、回数、位置などがある。「経過時間」は、「レッスン開始/終了スイッチ」B1が操作されたことに応じて開始される演奏記録の開始時刻から、当該ボタン(M1〜M4)が操作されるまでの経過時間を表す。「タイトル」は、演奏記録時に再生中の曲データに含まれる曲名情報に従う該曲に付与されている題名である。「回数」は、曲の全体あるいは一部が繰り返し演奏された場合に、何回目の繰り返し演奏時にマーカー位置が割り当てられたかを表す。「位置」は、マーカー位置の割り当て操作時に演奏記録されたオーディオデータ及び再生中の曲データにおける音楽的な楽曲位置(例えば、小節数や拍数など)を表す。また、この実施例では、「マーカー設定ボタン」M4のみがマーカー位置が未割当のボタンであって、このようなマーカー位置が未割当のボタンM4に対応する表示エリアH4には「割り当てられていません。」といったようなマーカー位置が未割当である旨を表示する。このような「再生位置表示画面」に表示される各「マーカー設定ボタン」M1〜M4へのマーカー位置の割り当て状態は、後述するマーカーテーブル(図8参照)などに記憶された記憶内容に従って表示される。このようなマーカー位置が割り当てられた時点に記録された演奏に関する各種情報を表示すると、ユーザは演奏終了後に聞きなおしたい演奏を容易に検索することができるようになる。
なお、この実施例では図示を省略したが、上記「再生位置表示画面」は、ユーザによる鍵盤操作に応じた演奏記録時における演奏対象曲に関する楽譜、あるいはユーザによる鍵盤操作に応じて記録されたオーディオデータ再生時における該当範囲の楽譜などとともに、ディスプレイ6Aに同時に表示できることは言うまでもない。そうした場合には、ユーザが同時に表示する画面を選択することのできるようにしてよい。
図1の説明に戻って、音源回路7は複数のチャンネルで楽音信号(例えばオーディオデータ)の同時発生が可能であり、データ及びアドレスバス1Dを経由して与えられた、ユーザによる演奏操作子4Aの操作に応じて発生されるあるいは曲データに基づき発生される各種演奏情報を入力し、これらの演奏情報に基づいて楽音信号を発生する。音源回路7から発生された楽音信号は、効果回路8を介して効果付与されてアンプやスピーカなどを含むサウンドシステム9から発音される。この音源回路7と効果回路8とサウンドシステム9の構成には、従来のいかなる構成を用いてもよい。例えば、音源回路7はFM、PCM、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、CPU1によるソフトウェア処理で構成してもよい。
外部記憶装置10は、マーカーテーブル(図8参照)、お手本演奏や伴奏等を自動演奏するための曲データ(例えばMIDI形式の自動演奏データ)などの各種データ、CPU1が実行する各種制御プログラム等の制御に関するデータなどを記憶する。なお、上述したROM2に制御プログラムが記憶されていない場合、この外部記憶装置10(例えばハードディスク)に制御プログラムを記憶させておき、それをRAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置10はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD‐ROM・CD‐RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
MIDIインタフェース(I/F)11は、外部接続された他のMIDI機器11A等からMIDI形式の自動演奏データを当該電子楽器へ入力したり、あるいは当該電子楽器からMIDI形式の自動演奏データを他のMIDI機器11A等へ出力するためのインタフェースである。通信インタフェース(I/F)12は、例えばLANやインターネット、電話回線等の有線あるいは無線の通信ネットワークXに接続されており、該通信ネットワークXを介してサーバコンピュータ12Aと接続され、当該サーバコンピュータ12Aから制御プログラムあるいは各種データなどを電子楽器側に取り込むためのインタフェースである。すなわち、ROM2や外部記憶装置10(例えば、ハードディスク)等に制御プログラムや各種データが記憶されていない場合には、サーバコンピュータ12Aから制御プログラムや各種データをダウンロードするために用いられる。こうした通信インタフェース12は、有線あるいは無線のものいずれかでなく双方を具えていてよい。
なお、演奏操作子4Aは鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。楽器の形態に限らず、単なるボタンやスイッチ形状のものであってもよい。また、電子楽器は演奏操作子4Aやディスプレイ6Aあるいは音源回路7などを1つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。さらに、本発明に係る演奏記録装置は上記したような電子楽器の形態に限らず、シーケンサやパーソナルコンピュータやカラオケ装置やゲーム装置など、どのような形態の装置・機器に適用してもよい。
図1に示した本発明に係る演奏記録装置を適用した電子楽器は、ユーザによる鍵盤操作(演奏操作)に応じて発生されるオーディオデータを記録するとともに、前記オーディオデータの記録を行いながら、ユーザ指示に応じて随時に任意のチェックポイント(演奏記録されたオーディオデータを読み出す任意の再生位置を表す情報であって、これをマーカー位置と呼ぶ)をマーカー設定ボタンM1〜M4に割り当てることができるようにしている。そこで、演奏操作に伴って発生されるオーディオデータの記録(すなわち演奏記録)及びマーカー位置の割り当てに関する処理について、図2に示した各スイッチB1〜B3及びマーカー設定ボタンM1〜M4の操作順に従って以下に説明する。
まず、「レッスン開始/終了ボタン」B1が押下されることに応じて開始される処理について、図3〜図5を用いて説明する。図3は、「記録開始処理」の一実施例を示すフローチャートである。図3に示すように、ステップS1は、ユーザによる演奏操作に応じて音源回路7から発生されるオーディオデータを一時的に記録するデータ記憶領域として、RAM3内に所定範囲の空き領域を確保する。ステップS2は、所定の時間間隔分のオーディオデータを記録することが可能な分の記録セグメントとして、前記確保した空き領域の先頭から所定サイズ分の記録セグメントを、「演奏記録処理(記録ドライバ)」に通知する。ステップS3は、前記「演奏記録処理(記録ドライバ)」を起動させる。この処理以降、「演奏記録処理(記録ドライバ)」は処理の実行を開始して、前記記録セグメント毎にユーザによる演奏操作に応じて音源回路7から発生されるオーディオデータを発生順に記録していく。該「演奏記録処理(記録ドライバ)」の詳細な説明については後述する(後述する図5参照)。ステップS4は、レッスン経過時間つまり演奏記録の開始時刻からマーカー設定ボタンM1〜M4が操作されるまでの経過時間をリセットしてから、該レッスン経過時間の計測を開始する。なお、ここでは「レッスン開始/終了ボタン」B1の押下で記録を開始するようにしたが、電子楽器本体の電源投入後すぐに記録を開始するようにしてもよい。
図4は、「曲データ再生処理」の一実施例を示すフローチャートである。この「曲データ再生処理」は、演奏記録が開始されてから演奏記録が終了されるまでの間に何回も繰り返し実行されるものであって、ユーザによる演奏操作を補助するために、例えばお手本演奏や伴奏などの楽音を発生させたり、演奏記録対象とした曲や伴奏などの楽譜を表示したりする。当該処理は、電子楽器などで行われる曲データの再生を開始させる一般的な操作によって開始される。すなわち、図示しない設定操作子で外部記憶装置に記憶してある曲データのうちの1つを選択し、図示しない操作子の操作によって開始される。また、この処理は、曲データの再生が進み曲データが終端に達したり、あるいは図示しない操作子で曲データ再生が中断されたりしたときに、その動作を終える。
図4に示すように、ステップS11は、演奏記録の開始から初めて(すなわち、レッスン開始後1回目)の曲データの再生であるか否かを判定する。レッスン開始から曲データの再生が初めてであると判定した場合には(ステップS11のyes)、「曲の繰り返し回数」をリセットする(ステップS12)。ステップS13は、「曲の繰り返し回数」を1つ増やす。ステップS14は、曲データ再生の処理を行う。ステップS15は、演奏対象曲の選択に応じてディスプレイ6Aに表示される、該演奏対象曲に対応するお手本や伴奏に関する楽譜を、演奏進行にあわせて更新する。なお、当該電子楽器が曲データの再生機能として、現在再生中の曲データの再生箇所から時間を遡った曲データの所定位置へと再生箇所を変更する機能(つまり巻き戻し機能)を有しているような場合には、該巻き戻し動作が行われる度に前記「曲の繰り返し回数」に1を加算する。また、巻き戻し機能を有している場合、ユーザは繰り返し巻き戻し操作を行う度に同じ曲位置からの演奏を何回も記録することができる。また、レッスン開始されたあとは、再生させる曲データを変更することができ、曲データごとに繰り返し回数がカウントされる。
図5は、「演奏記録処理」の一実施例を示すフローチャートである。当該処理は上記「記録開始処理」からの起動指示(図3のステップS3)に応じて処理が開始され、後述する「記録終了処理」からの停止指示(図9のステップS41)に応じて処理が停止されるまで、タイマ割り込みによって所定の時間間隔毎に繰り返し実行される。当該処理はユーザによる演奏を記録する記憶領域の準備を行うための処理であって、所定の時間間隔分のオーディオデータを記録することが可能な分の記録セグメント毎に使用する記憶領域の更新を行うものである。
図5に示すように、ステップS21は、予め確保しておいたRAM3上のデータ記憶領域の終端まで、記録セグメントが達したか否かを判定する。記録セグメントが予め確保しておいたRAM3上のデータ記憶領域の終端まで達したと判定した場合には(ステップS21のyes)、次の記録セグメントとしてデータ記憶領域の先頭から所定サイズ分の領域を記録セグメントに指定する(ステップS22)。一方、記録セグメントが予め確保しておいたRAM3上のデータ記憶領域の終端まで達していないと判定した場合には(ステップS21のno)、次の記録セグメントをデータ記憶領域において現在の記録セグメントに後続する所定サイズの領域に指定する(ステップS23)。ステップS24は、マーカーテーブル(後述する図8参照)を参照して、前記指定された次の記録セグメントはマーカー位置で指定される再生位置(後述のマーカーテーブルに記憶された、「記録先頭のアドレス」から「記録終端のアドレス」までに対応するデータ記憶領域の範囲)にかかるか否かを判定する。前記指定された次の記録セグメントがマーカー位置で指定される再生位置にかかると判定した場合には(ステップS24のyes)、次の記録セグメントとして、マーカー位置で指定される前記再生位置を除いた後続するデータ記憶領域の先頭から所定サイズの記録セグメントに再指定する(ステップS25)。ステップS26は、前記指定された記録セグメントに対して、ユーザによる演奏操作に応じて発生されたオーディオデータを記録する。こうすることにより、オーディオデータがデータ記憶領域に発信順に記録されていく。
次に、「レッスン開始/終了スイッチ」B1が押下されることに応じて演奏の記録が開始された後、「記録スイッチ」B2と「マーカー設定ボタン」M1〜M4のいずれか1つが同時に押下されることに応じて開始される処理について、図6を用いて説明する。図6は、「マーカー記録・削除処理」の一実施例を示すフローチャートである。当該処理は、「マーカー設定ボタン」M1〜M4に演奏記録終了後に再生したい任意の再生位置(再生範囲)を割り当てる処理である。
ステップS31は、マーカーテーブル(図8参照)を参照して、押下された「マーカー設定ボタン」M1〜M4が既に再生位置の割り当て済みのボタンであるか否かを判定する。押下されたボタンが既に再生位置の割り当て済みであるボタンであると判定した場合には(ステップS31のyes)、マーカーテーブルから当該マーカーボタンに対応するデータを削除する(ステップS32)。マーカーテーブルから該当のデータを削除した後、又は押下されたボタンが未だ再生位置の割り当てがなされていないボタンであると判定した場合には(ステップS31のno)、マーカーテーブルにおける当該マーカーボタンに対応するデータとして、マーカー位置のアドレス(すなわち、マーカーボタン操作時に書き込まれたオーディオデータの記録セグメント位置)、曲の繰り返し回数、レッスン経過時間、曲データへの参照データのそれぞれを記憶するとともに、マーカー位置のアドレスに記録されたオーディオデータに対応する音楽的な曲位置を再生中の曲データに基づき特定し、該特定した音楽的な曲位置をマーカー位置の曲位置に記憶する(ステップS33)。また、データ記憶領域においてマーカー位置のアドレスから所定範囲の前/後のアドレスをそれぞれ先頭アドレス/終端アドレスとして記憶するとともに、該先頭アドレス/終端アドレスに記録されたオーディオデータに対応する音楽的な曲位置を再生中の曲データに基づき特定し、該特定した音楽的な曲位置を、マーカーテーブルの記録先頭の曲位置、記録終端の曲位置にそれぞれ記憶する(ステップS34)。ステップS35は、該更新されたマーカーテーブルに基き「再生位置表示画面」(図2参照)の表示を更新する。
次に、上記した「演奏記録処理」及び「再生位置記録処理」について、具体例を用いて説明する。図7は、演奏記録及び再生位置記録に関する動作を説明するための概要図である。なお、ここでは、説明を理解し易くするために、予めデータ記憶領域(リングバッファである)としてアドレス「0x0000」からアドレス「0XFFFF」までの空き領域を確保し、該確保したデータ記憶領域に、繰り返し記録する場合を例に説明する。
演奏記録の開始にあわせて、レッスン経過時間の計測が開始されるとともに(00:00:00)、データ記憶領域の先頭アドレス「0x0000」から、演奏操作に応じて発生されたオーディオデータが記録セグメント毎に順次に記憶されていく。レッスン経過時間「00:03:00」に、記録スイッチB2とともにマーカー設定ボタンM1が操作されると、該マーカー設定ボタンM1操作時に記録されたオーディオデータの記録セグメント位置(マーカー位置のアドレス)「0x3000」、該マーカー設定ボタンM1操作時における曲の繰り返し回数「一回目」、該マーカー設定ボタンM1操作時に再生された曲データの曲位置「4小節1拍目」、該マーカー設定ボタンM1操作時におけるレッスン経過時間「00:03:00」、該マーカー設定ボタンM1操作時に再生中であった曲データを指し示すポインタ(曲データへの参照データ:ただし、ここでは図示を省略)のそれぞれを、マーカーテーブルに記録する。そして、マーカー位置のアドレス「0x3000」から、所定範囲前の先頭アドレス「0x1000」、所定範囲後の終端アドレス「0x4FFFF」を求め、これをマーカーテーブルに記録する。このようにして、マーカー設定ボタンM1には、アドレス「0x1000」からアドレス「0x4FFFF」までの範囲に記憶されたオーディオデータを再生する再生位置が割り当てられる。
ここで、マーカーテーブルのデータ構成について、図8を用いて説明する。図8は、マーカーテーブルのデータ構成の一実施例を示す概略図である。図8に示すように、マーカーテーブルは、予めパネル上に用意されている「マーカー設定ボタン」M1〜M4に付与された固有の番号(マーカー番号)毎に、オーディオデータを記憶するデータ記憶領域に関する情報、曲位置に関する情報、その他の情報に大きく分けることができる。データ記憶領域に関する情報としては、記録先頭のアドレス、マーカー位置のアドレス、記録終端のアドレスがある。マーカー位置のアドレスは、演奏記録時に該当する「マーカー設定ボタン」が操作された時点において演奏(オーディオデータ)を記録したデータ記憶領域のアドレスを指し示すデータである。記録先頭のアドレスは、前記マーカー位置のアドレスから所定範囲だけ前のアドレスを指し示すデータである。すなわち、該記録先頭のアドレスが指し示す記憶領域には、前記「マーカー設定ボタン」操作時点よりも時間的に遡った時点の演奏が記録されている。記録終端のアドレスは、前記マーカー位置のアドレスから所定範囲だけ後のアドレスを指し示すデータである。すなわち、該記録終端のアドレスが指し示すデータ記憶領域には、前記「マーカー設定ボタン」操作時点よりも時間的に後の時点の演奏が記録されている。
曲位置に関する情報としては、記録先頭の曲位置、マーカーの曲位置、記録終端の曲位置がある。マーカーの曲位置は、演奏記録時に該当する「マーカー設定ボタン」が操作された時点において再生中の曲データに基づく該当曲の音楽的な曲位置(例えば小節数、拍数など)を指し示すデータである。当該情報に従い、画面上の「位置」表示がなされる。これらの曲位置は、曲データに基づき求められる。例えば、曲データ内のタイミングデータを曲データの該当箇所までカウントする、又は曲データ中に小節線データが含まれていればその数を曲データの該当箇所まで数えるなどの方法があるが、こうした方法は公知であることから説明を省略する。記録先頭のアドレスは、前記マーカー位置のアドレスから所定範囲だけ前のアドレスを指し示すデータである。記録終端のアドレスは、前記マーカー位置のアドレスから所定範囲だけ後のアドレスを指し示すデータである。これら各時点における曲位置は、前記各時点におけるアドレスとそれぞれが対応する。すなわち、記録先頭のアドレスと記録先頭の曲位置、マーカー位置のアドレスとマーカーの曲位置、記録終端のアドレスと記録終端の曲位置とがそれぞれ対応付けされている。
その他の情報としては、曲の繰り返し回数、レッスン経過時間、曲データへの参照データがある。曲の繰り返し回数は、何回目の繰り返し演奏時にマーカー位置を記録したものかを示すマーカー位置の記録時における演奏繰り返し回数である。当該情報に従い、再生位置表示画面の「回数」表示がなされる。レッスン経過時間は、マーカー位置を記録した演奏記録開始(又は曲データ再生開始)からの経過時間を表す。当該情報に従い、再生位置表示画面の「経過時間」表示がなされる。曲データへの参照データは、演奏記録時に再生された曲データについて、外部記憶装置上の記憶位置(または記憶範囲)を示すポインタを表す。当該情報とマーカーの曲位置の情報に従い、マーカー位置からの演奏記録の再生時において、演奏記録の再生にあわせて対応する位置から曲データの再生も行われる。すなわち、マーカーテーブルに曲データへの参照データとマーカーの曲位置とを記憶することは、演奏記録時に演奏にあわせて再生されていた曲データの外部記憶装置上の記憶位置のうち、マーカー設定ボタンの操作に応じた範囲に対応する箇所の記憶位置を記憶していることに相当する。勿論、曲データへの参照データとして、演奏記録時に再生された曲データについて、前記記録先頭の曲位置に対応する外部記憶装置の記憶位置と、前記記録終端の曲位置に対応する外部記憶装置の記憶位置をそれぞれ示すポインタであってもよい。また、曲データの再生だけでなく、当該情報により参照される曲データに記録されている曲名情報などに従い、再生位置表示画面の「タイトル」表示などもなされる。
図7の説明に戻って、レッスン経過時間「00:06:00」に、記録スイッチB2とともにマーカー設定ボタンM2が操作されると、上記マーカー設定ボタンM1の操作時と同様にして、マーカー位置のアドレス「0x6000」、曲の繰り返し回数「一回目」、曲データの曲位置「7小節1拍目」、レッスン経過時間「00:06:00」、曲データへの参照データ(図示せず)、先頭アドレス「0x4000」、終端アドレス「0x7FFFF」をマーカーテーブルに記憶する。すなわち、マーカー設定ボタンM2には、アドレス「0x4000」からアドレス「0x7FFFF」までの範囲に記録されたオーディオデータを再生する再生位置が割り当てられる。
リングバッファになっているデータ記憶領域への1周目の書き込みが終了して、2周目の書き込みが行われると、データ記憶領域に確保した範囲の終端「0xFFFF」に達すると、データ記憶領域に確保した範囲の先頭「0x0000」に戻るようにして記録セグメントが指定される。図7に示す例において、「0x0000」から「0x0FFF」の範囲までは2周目の記録(オーディオデータ)が1周目に記録されたオーディオデータに上書きされて記憶される(図中において2周目の記録を黒く塗りつぶして示す)。さらに記録が進むと、「0x1000」〜「0x7FFF」の範囲を飛ばして「0x8000」から1周目の記録に上書きされるようにして2周目の演奏が記録される。これは、「0x1000」〜「0x7FFF」の範囲は既にマーカー設定ボタンM1及びM2に割り当て済みの再生位置に該当するため、当該範囲については2周目の記録を上書き記録することなく1周目に記録された演奏が残されるようにしている。そして、レッスン経過時間「00:21:00」に、記録スイッチB2とともにマーカー設定ボタンM3が操作されると、マーカー位置のアドレス「0xB000」、曲の繰り返し回数「1」回目、曲データの曲位置「5小節1拍目」、レッスン経過時間「00:21:00」、曲データへの参照データ(図示せず)、先頭アドレス「0x9000」、終端アドレス「0xCFFFF」をマーカーテーブルに記憶する。すなわち、マーカー設定ボタンM3には、再生位置としてアドレス「0x9000」からアドレス「0xCFFF」までの範囲に記録されたオーディオデータを再生するための再生位置が割り当てられる。
次に、演奏記録開始後に(つまり、図3に示した「記録開始処理」が開始された後)に、「レッスン開始/終了ボタン」B1が再度押下されることに応じて開始される処理について、図9を用いて説明する。図9は、「記録終了処理」の一実施例を示すフローチャートである。ステップS41は、「演奏記録処理(記録ドライバ)」(図5参照)及び「曲データ再生処理」(図4参照)をそれぞれ停止させる。これにより、演奏の記録及び曲データの再生あるいは楽譜表示の更新などが停止する。ステップS42は、RAM3上に確保されたデータ記憶領域のうち、マーカーテーブルで指定される範囲の領域に記録されているオーディオデータのみを残して、その他の領域に記録されているオーディオデータを破棄する。
次に、上記各処理に伴う演奏記録の終了後に、図2に示した「再生スイッチ」B3とともに「マーカー設定ボタン」M1〜M4のいずれかが押下されることに応じて開始される処理について、図10を用いて説明する。図10は、「再生処理」の一実施例を示すフローチャートである。ステップS51は、マーカーテーブルを参照して、操作されたマーカー設定ボタンに対応する記録先頭のアドレス及び記録終端のアドレスに基き、該当する範囲のオーディオデータを読み出して繰り返し再生するとともに、曲データへの参照データに基づき該当する範囲の曲データを読み出して繰り返し再生する。ステップS52は、前記再生にあわせて曲データに基づきディスプレイ上に表示される楽譜の更新を行う。
なお、上述した実施例では演奏の記録をオーディオデータによるものとしたがこれに限らず、例えばMIDI形式の自動演奏データなど、時間経過に応じて記録/再生されるものであればどのようなものであってもよい。
なお、音楽的な曲位置を特定するデータとして、上述した実施例ではお手本演奏や伴奏を再生する曲データ(自動演奏データ)を例に示したがこれに限らない。例えば、所定のテンポで表示が更新される楽譜表示データ、あるいはテンポと小節や拍で管理されるカラオケ歌詞を表示する歌詞データなどの、曲データとは別に用意されたデータであってもよい。ただし、「再生位置表示画面」に表示する音楽的な曲位置を時間の経過に応じて特定することができるもの、上記例ではテンポと小節や拍をもったデータである必要がある。
なお、マーカー位置の指示を、パソコン端末、あるいは携帯電話やPDA等の携帯型通信端末などの外部機器からネットワーク経由で遠隔設定できるようにしてあってもよい。
なお、割当済みのマーカー位置を削除する「削除ボタン」を具えていてもよく、該削除ボタンとマーカー設定ボタンM1〜M4のいずれかとを同時に操作することで、操作されたマーカー設定ボタンM1〜M4に割り当て済みの再生位置を削除するようにしてもよい。
なお、記録先頭及び記録終端の各アドレスはマーカー位置のアドレスに基き自動的に設定されるが、この際に参照される前記マーカー位置からの前後の所定範囲を、ユーザが任意に設定できるようにしてあってもよいし、予め決められた範囲であってもよい。また、範囲の指定態様としては、データサイズであってもよいし(例えば前後1kbyteなど)、時間であってもよいし(例えば前後1秒など)、曲位置(例えば前後3小節分など)であってもよい。さらに、前後で所定範囲の幅を異ならせてもよい(例えば前1秒、後2秒など)。
なお、各マーカー設定ボタンM1〜M4に割り当てられた再生位置に該当する範囲の領域に記録されているオーディオデータのみを、外部記憶装置10や外部機器などに記憶させるようにし、それ以外の領域は記憶させないようにしてよい。ただし、その場合には、マーカーテーブルにおける各アドレスを、記憶する側の外部記憶装置10や外部機器のアドレスに書きかえる必要があることは言うまでもない。
なお、オーディオデータとマーカーテーブルを組にして、曲毎に記憶できるようにしてあってもよい。
1…CPU、2…ROM、3…RAM、4,5…検出回路、4A…演奏操作子、5A…パネル操作子、6…表示回路、6A…ディスプレイ、7…音源回路、8…効果回路、9…サウンドシステム、10…外部記憶装置、11…MIDIインタフェース、11A…MIDI機器、12…通信インタフェース、12A…サーバコンピュータ、1D…通信バス、X…通信ネットワーク、B1…レッスン開始/終了スイッチ、B2…記録スイッチ、B3…再生スイッチ、M1〜M4…マーカー設定ボタン