JP3931551B2 - 演奏装置および演奏方法 - Google Patents
演奏装置および演奏方法 Download PDFInfo
- Publication number
- JP3931551B2 JP3931551B2 JP2000334285A JP2000334285A JP3931551B2 JP 3931551 B2 JP3931551 B2 JP 3931551B2 JP 2000334285 A JP2000334285 A JP 2000334285A JP 2000334285 A JP2000334285 A JP 2000334285A JP 3931551 B2 JP3931551 B2 JP 3931551B2
- Authority
- JP
- Japan
- Prior art keywords
- timing
- note data
- performance
- tempo
- key
- 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
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、電子楽器等に用いて好適な演奏装置および演奏方法に関する。
【0002】
【従来の技術】
従来より、「ワンキープレイ」あるいは「エニイキープレイ」と呼ばれ、半自動的な演奏を実現する演奏装置が知られている。例えば「ワンキープレイ」とは、「ワンキープレイ」用に設けられた専用の演奏操作子が操作される度に、一音づつ発音させて楽曲を演奏するものである。
このような演奏装置は、楽曲を形成する各音符の音高および符長を表わす音符データをメモリに記憶しておき、演奏操作子が操作される度に、メモリに記憶しておいた音符データを一音づつ読み出して発音するように構成されている。
なお、「エニイキープレイ」とは、鍵盤のいずれかの鍵を演奏操作子と見做して、上記「ワンキープレイ」と同様に鍵盤のいずれかの鍵が押鍵される度に、メモリ記憶された音符データを一音づつ読み出して発音する態様を言う。
【0003】
【発明が解決しようとする課題】
ところで、上述した従来の演奏装置では、どのようなタイミングで演奏操作子を操作しても一意的に発音されてしまう為、例えば幼児向けの音楽教習用などには好適であるが、音楽に慣れ親しもうとする大人の初心者をユーザ対象とするには演奏を練習するという要素に欠け、物足りないものとなっている。
そこで、演奏を練習するという要素を取り入れるべく、楽譜どおりのテンポで演奏操作した時にだけ発音させる形態とすると、今度は逆に初心者にとっては演奏操作するタイミングが難しくなり過ぎ、やはり演奏練習には不向きになってしまうという欠点がある。
つまり、以上の内容を言い換えれば、従来の演奏装置ではユーザ好みのテンポで「ワンキープレイ」や「エニイキープレイ」の演奏を練習することができない、という問題がある。
本発明はこのような事情に鑑みてなされたもので、ユーザ好みのテンポで演奏練習することができる演奏装置および演奏方法を提供することを目的としている。
【0004】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載の発明では、曲を形成する各音毎の音高および発音タイミングを表す音符データを予め記憶手段に記憶しておき、この音符データを演奏操作子のオン操作に応じて記憶手段から読み出して再生する演奏装置において、テンポ値に従ったタイミングで前記記憶手段から次に発音すべき音符データを読み出す読出し手段と、この読出し手段によって読み出された音符データが示す発音タイミングと前記テンポ値とに応じて演奏操作子をオン操作すべき予測タイミングを算出する予測タイミング算出手段と、前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作された場合、そのオン操作されたタイミングと予測タイミングとに応じて前記テンポ値を更新するテンポ更新手段と、前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作され、そのオン操作されたタイミングが当該予測タイミングと同時もしくは早い場合には前記読出し手段が読み出しておいた音符データを再生し、一方、オン操作されたタイミングが当該予測タイミングより遅い場合には前記読出し手段が読み出しておいた音符データを再生せずに、さらに次の音符データを前記記憶手段から読み出して再生する再生手段とを具備することを特徴とする。
【0006】
請求項2に記載の発明では、曲を形成する各音毎の音高および発音タイミングを表す音符データを予め記憶手段に記憶しておき、この音符データを演奏操作子のオン操作に応じて記憶手段から読み出して再生する演奏方法において、テンポ値に従ったタイミングで前記記憶手段から次に発音すべき音符データを読み出す読出し過程と、この読出し過程にて読み出された音符データが示す発音タイミングと前記テンポ値とに応じて演奏操作子をオン操作すべき予測タイミングを算出する予測タイミング算出過程と、前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作された場合、そのオン操作されたタイミングと予測タイミングとに応じて前記テンポ値を更新するテンポ更新過程と、前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作され、そのオン操作されたタイミングが当該予測タイミングと同時もしくは早い場合には前記読出し過程にて読み出しておいた音符データを再生し、一方、オン操作されたタイミングが当該予測タイミングより遅い場合には前記読出し過程にて読み出しておいた音符データを再生せずに、さらに次の音符データを前記記憶手段から読み出して再生する再生過程とを具備することを特徴とする。
【0008】
本発明では、テンポ値に従ったタイミングで記憶手段から次に発音すべき音符データを読み出し、読み出された音符データが示す発音タイミングと前記テンポ値とに応じて演奏操作子をオン操作すべき予測タイミングを算出しておき、この予測タイミングの前後の所定範囲内で演奏操作子がオン操作された場合、そのオン操作されたタイミングと予測タイミングとに応じて前記テンポ値を更新すると共に、そのオン操作されたタイミングが当該予測タイミングと同時もしくは早い時には読み出しておいた音符データを再生し、一方、オン操作されたタイミングが当該予測タイミングより遅い時には読み出しておいた音符データを再生せずに、さらに次の音符データを記憶手段から読み出して再生する。したがって、ユーザが演奏操作子をオン操作する間隔で演奏テンポが決り、なおかつ予測タイミング前後の所定範囲内であって、しかも予測タイミングと同時もしくは早くオン操作した時にだけ正しく音符データが再生されるから、ユーザ好みのテンポで演奏練習することが可能になっている。
【0009】
【発明の実施の形態】
本発明による演奏装置は、周知の電子楽器はもとより、パーソナルコンピュータ等を用いたDTM(デスク・トップ・ミュージック)装置等に適用され得る。以下では、本発明の実施の一形態による演奏装置を搭載した電子楽器を実施例とし、これについて図面を参照して説明する。
【0010】
A.実施例の構成
図1は本発明による一実施例の構成を示すブロック図である。この図において、1はワンキープレイ用の演奏操作子であり、押下操作(以下、これをオン操作と称す)に応じたイベントを発生する。2は押離鍵操作に応じたキーオン/キーオフイベント、ノートナンバおよび押鍵速度(強度)に対応したベロシティ等の演奏情報を発生する鍵盤である。なお、「エニイキープレイ」モード下では鍵盤2のいずれかの鍵が演奏操作子としても用いられる。
【0011】
3は装置パネル面上に配設される各種スイッチから構成されるパネルスイッチである。このパネルスイッチ3の内には、例えば電源をオンオフする電源スイッチの他、押離鍵操作に応じた楽音を発生させる「通常」モード、「ワンキープレイ」モードおよび「エニイキープレイ」モードのいずれかを選択するモードスイッチMSおよびワンキープレイ/エニイキープレイの開始・停止を指示するスタート/ストップスイッチSS等が設けられている。
【0012】
4は主にパネルスイッチ3から供給されるスイッチイベントに応じて楽器各部を制御する一方、「通常」モード下では鍵盤2から供給される演奏情報に応じて生成した楽音パラメータに基づき後述する音源7に楽音発生を指示したり、「ワンキープレイ」モードおよび「エニイキープレイ」モード下では演奏操作子1のオン操作(もしくは鍵盤2のいずれかの鍵の押鍵操作)に応じて音源7に楽音発生を指示するものであり、その特徴的な処理動作については追って詳述する。
【0013】
5はCPU4にロードされる各種制御プログラムの他、ワンキープレイ用の曲データSDを記憶するROMである。ROM5に記憶される曲データSDとは、図2に図示するように、ワンキープレイ(あるいはエニイキープレイ)開始当初のテンポを指定する初期テンポ値ITD、ワンキープレイ開始時点の待ち時間に相当する初期ステップタイムIST、楽曲を形成する各音符データとその終わりを表すENDデータから構成される。なお、各音符データは発音すべき音高を指定する音高データPD、発音タイミングを表すステップタイムSTおよび符長に相当するデータであって、消音タイミングを表すゲートタイムGTからなる。
【0014】
6はCPU4のワークエリアとして用いられるRAMであり、各種レジスタ・フラグデータが一時記憶される。7は周知の波形メモリ読み出し方式により構成される音源である。この音源7は、各種音色の波形データを記憶しており、CPU4の制御の下に、指定された音色の波形データを、当該CPU4から与えられる楽音パラメータに従って楽音形成してなる楽音波形を出力する。8は音源7から出力される楽音波形をアナログ形式の楽音信号にD/A変換した後、それを増幅してスピーカより放音させるサウンドシステムである。
【0015】
B.実施例の動作
次に、図3〜図11を参照して上記構成による実施例の動作について説明する。以下では、まず最初に図3を参照して概略動作を示すメインルーチンの処理について述べた後、続いてメインルーチンからコールされる各処理ルーチンの動作について順次説明し、その後に具体的な全体動作について述べる。
【0016】
(1)メインルーチンの動作(概略動作)
上記構成による実施例に電源が投入されると、CPU4はROM5から所定の制御プログラムを読み出してロードし、図3に示すメインルーチンを実行してステップSA1に処理を進める。ステップSA1では、RAM6に格納される各種レジスタ/フラグをゼロリセットしたり初期値をセットする他、音源7に対して各種レジスタ/フラグ類の初期化指示を与える等のイニシャライズ処理を行う。次いで、ステップSA2では、前述したワンキープレイ用の演奏操作子1のオン操作に応じて音源7に再生指示を与えたり、パネルスイッチ2の各スイッチ操作に応じた処理、例えばモードスイッチMSの操作に応じて動作モードを設定する他、スタート/ストップスイッチSSの操作によりワンキープレイ(あるいはエニイキープレイ)を開始/停止させる等のスイッチ処理を実行する。
【0017】
次に、ステップSA3では、設定された動作モードに従った鍵盤処理を行う。すなわち、通常モード下であれば押離鍵操作に応じた発音/消音指示を発生して音源7に供給し、一方、エニイキープレイモード下であると、鍵盤2のいずれかの鍵の押鍵に応じて曲データSD中の音符データを読み出す処理を実行する。続いて、ステップSA4では、ワンキープレイ(あるいはエニイキープレイ)下の処理タイミングに応じて、曲データSD中から音符データを読み出したり、音源7に消音を指示する等の読出し処理を行う。そして、ステップSA5では、例えば発生した楽音に効果を付与する等の、その他の処理を実行し、以後、電源スイッチがオフされる迄、上述したステップSA2〜SA5を繰り返し実行する。
【0018】
(2)スイッチ処理の動作
次に、図4を参照してスイッチ処理の動作について述べる。上述したステップSA2を介してスイッチ処理ルーチンが実行されると、CPU4は図4に示すステップSB1〜SB4を経てモードスイッチ処理、ワンキー処理、スタートストップスイッチ処理およびその他のスイッチ処理を実行する。以下、本発明の要旨に係わる「モードスイッチ処理」、「ワンキー処理」および「スタートストップスイッチ処理」の各動作について説明する。
【0019】
▲1▼モードスイッチ処理の動作
ステップSB1を介してモードスイッチ処理が実行されると、CPU4は図5に示すステップSC1に処理を進め、モードスイッチMSがオン操作されたかどうかを判断し、オン操作されていない場合には判断結果が「NO」となり、何も処理せずに本ルーチンを完了させる。
一方、モードスイッチMSがオン操作された場合には判断結果が「YES」となり、次のステップSC2に処理を進め、オン操作に応じて選択されるモード値をレジスタMODEにストアする。
なお、モードスイッチMSのオン操作に応じて「通常」モードが選択された場合にはレジスタMODEにモード値「0」が、「ワンキープレイ」モードではモード値「1」が、「エニイキープレイ」モードではモード値「2」がそれぞれストアされるようになっている。
【0020】
▲2▼ワンキー処理の動作
上述したステップSB2を介してワンキー処理が実行されると、CPU4は図6に示すステップSD1に処理を進め、ワンキープレイ用の演奏操作子1がオン操作されたか否かを判断する。演奏操作子1がオン操作されなければ、判断結果は「NO」となり、何も処理せずに本ルーチンを完了させるが、オン操作された場合には判断結果が「YES」となり、次のステップSD2に進み、レジスタMODEに格納されるモード値が「1」、つまり、「ワンキープレイ」モードに設定されているかどうかを判断する。ここで、「ワンキープレイ」モードに設定されていなければ、判断結果は「NO」となり、本ルーチンを完了させて演奏操作子1のオン操作を無効にする。
一方、「ワンキープレイ」モード下にあると、判断結果は「YES」となり、次のステップSD3に処理を進め、フラグSTOPを「0」にセットしてプレイ停止を解除し、続くステップSD4では、演奏操作子1のオン操作に応じて音源7に発音指示を与える再生処理(後述する)を実行してから本ルーチンを完了させる。
【0021】
▲3▼スタート/ストップスイッチ処理の動作
上述したステップSB3を介してスタート/ストップスイッチ処理が実行されると、CPU4は図7に示すステップSE1に処理を進め、スタート/ストップスイッチSSがオン操作されたか否かを判断する。スタート/ストップスイッチSSがオン操作されなければ、判断結果は「NO」となり、何も処理せずに本ルーチンを完了させるが、オン操作されると、判断結果が「YES」となり、ステップSE2に進む。ステップSE2では、レジスタMODEに格納されるモード値が「0」でないか否か、つまり、「ワンキープレイ」モードもしくは「エニイキープレイ」モードのいずれかに設定されているかどうかを判断する。
【0022】
ここで、「通常」モード下にあれば、判断結果は「NO」となり、本ルーチンを完了させてスタート/ストップスイッチSSのオン操作を無効する。これに対し、「ワンキープレイ」モードもしくは「エニイキープレイ」モードのいずれかに設定されていると、判断結果が「YES」となり、次のステップSE3に処理を進め、スタートフラグSTFを反転する。
スタートフラグSTFは「1」の時にプレイ開始を表し、「0」の時にプレイ停止を表す。つまり、スタート/ストップスイッチSSはオン操作される毎に、交互にプレイ開始もしくはプレイ停止を表すように設定される所謂トグルスイッチなので、オン操作される毎にスタートフラグSTFの値を反転する。
【0023】
次いで、ステップSE4では、反転されたスタートフラグSTFの値が「1」、すなわち、プレイ開始を表しているかどうかを判断する。ここで、その値が「0」であれば、プレイ停止を表しているので、判断結果は「NO」となり、ステップSE5に進み、発音中にある全ての楽音について消音するよう音源7に指示した後、本ルーチンを完了させる。
一方、反転されたスタートフラグSTFの値が「1」であると、プレイ開始を表しているので、判断結果は「YES」となり、ステップSE6〜SE10にて「ワンキープレイ」もしくは「エニイキープレイ」の開始に必要な初期設定を行う。
【0024】
すなわち、ステップSE6では、ROM5に記憶される曲データSD中から初期テンポ値ITDを読み出してレジスタTEMPOにストアし、続くステップSE7では、プレイ開始当初の待ち時間に相当する初期ステップタイムデータISTを曲データSD中から読み出してレジスタSTEPTIMEにストアする。
次いで、ステップSE8では、「60」を初期テンポ値ITDで除算してテンポクロック当りの秒数を求め、それをレジスタSTEPTIMEに格納された初期ステップタイムデータISTに乗算することによって時間換算される予測タイミングをレジスタYTIMEにストアする。
この予測タイミングとは、ワンキープレイ用の演奏操作子1をオン操作すべき(もしくはエニイキープレイ時に鍵盤2のいずれかの鍵を押鍵すべき)タイミングであり、以後の説明ではレジスタYTIMEの値を予測タイミングYTIMEと記す。
【0025】
次に、ステップSE9では、レジスタSTIME,TIME,GTIME,MAXTIMEをゼロリセットし、続くステップSE10ではROM5に記憶される曲データSDから先頭の音符データを読み出し、読み出した音符データを形成する音高データPD、ステップタイムSTおよびゲートタイムGTを、それぞれレジスタBUFFER,STEPTIME,GATETIMEにストアする。
なお、上記ステップSE9にてゼロリセットされるレジスタSTIME,GTIME,MAXTIMEは、テンポクロックを累算するカウンタとして用いられるものであり、これらが意図するところについては追って述べる。また、レジスタTIMEは、後述するように、テンポ値から時間換算される現タイミングを格納するものである。
【0026】
(3)鍵盤処理の動作
次に、図8を参照して鍵盤処理の動作について説明する。前述したメインルーチン(図3参照)のステップSA3を介して鍵盤処理が実行されると、CPU4は図8に示すステップSF1に処理を進め、鍵イベントを検出すべく鍵盤2の各鍵を走査し、続くステップSF2では、この鍵走査により鍵変化の有無、つまり鍵イベントを検出したか否かを判断する。
ここで、押離鍵操作がなされず、鍵変化が無い場合には何も処理せずに本ルーチンを完了させるが、押鍵操作に応じたオンイベントを検出した場合には、ステップSF3に進む。ステップSF3では、レジスタMODEに格納されるモード値が「2」ではないか、つまり、「エニイキープレイ」モードに設定されているかどうかを判断する。
【0027】
「エニイキープレイ」モードに設定されている場合には、判断結果が「NO」となり、ステップSF4に進み、フラグSTOPを「0」にセットしてプレイ停止を解除し、続くステップSF5では、押鍵操作に応じて音源7に発音指示を与える再生処理(後述する)を実行してから本ルーチンを完了させる。
これに対し、「エニイキープレイ」モードに設定されていない場合には、上記ステップSF3の判断結果は「YES」となり、ステップSF6に進み、押鍵された鍵のノートナンバを音源7に送出し、続くステップSF7では音源7に対して発音を指示する。これにより、音源7では、押鍵された鍵のノートナンバに対応した音高の楽音を発音する。
さて一方、上記ステップSF2において離鍵操作に応じたオフイベントを検出した場合には、ステップSF8に進み、離鍵された鍵のノートナンバを音源7に送出し、続くステップSF9では音源7に対して消音を指示する。これにより、音源7では、離鍵された鍵のノートナンバに対応した音高の楽音を消音する。
【0028】
(4)読出し処理の動作
次に、図9〜図10を参照して読出し処理の動作について説明する。前述したメインルーチン(図3参照)のステップSA4を介して読出し処理が実行されると、CPU4は図9に示すステップSG1に処理を進め、レジスタMODEに格納されるモード値が「0」でないか、つまり、「ワンキープレイ」モードもしくは「エニイキープレイ」モードのいずれかに設定されているかどうかを判断する。
ここで、「通常」モード下にあれば、判断結果が「NO」となり、何も処理せずに本ルーチンを完了させるが、「ワンキープレイ」モードもしくは「エニイキープレイ」モードのいずれかに設定されていると、判断結果は「YES」となり、ステップSG2に進む。
【0029】
ステップSG2では、スタートフラグSTFの値がプレイ開始を表す「1」にセットされ、しかもフラグSTOPの値がプレイ停止解除を表す「0」にセットされているか否かを判断する。そして、両フラグSTF,STOPが共にその条件に合致していれば、判断結果は「YES」となり、次のステップSG3に処理を進めるが、そうでない場合には判断結果が「NO」となり、何も処理せずに本ルーチンを完了させる。
次いで、ステップSG3では、レジスタTEMPOに格納されるテンポ値に対応した最小単位時間が経過したか否か、つまり、CPU4ではタイマ割込み処理(不図示)によって、レジスタTEMPOに格納されるテンポ値(プレイ開始当初は初期テンポ値ITD)に応じたテンポクロックを発生しており、このテンポクロック1周期分の時間(最小単位時間)が経過したかどうかを判断する。
【0030】
テンポクロック分の時間が経過していなければ、判断結果は「NO」となり、一旦、本ルーチンを完了させるが、テンポクロック分の時間が経過すると、ここでの判断結果が「YES」となり、ステップSG4に処理を進める。ステップSG4では、レジスタSTIME,GTIMEおよびMAXTIMEの値を1インクリメントして歩進させる。
次いで、ステップSG5では、「60」をレジスタTEMPOに格納されるテンポ値(ワンキープレイ/エニイキープレイ開始当初では初期テンポ値ITDになる)で除算して1テンポクロック当りの秒数を求め、これに歩進されたレジスタSTIMEの値を乗算して時間換算される現タイミングをレジスタTIMEにストアする。なお、以後の説明では、レジスタTIMEの値を現タイミングTIMEと記す。
【0031】
そして、ステップSG6以降では、どのような処理タイミングにあるかを判断して対応する処理を実行する。以下では、「発音タイミングの場合」、「消音タイミングの場合」、「現タイミングTIMEが許容範囲を超えた場合」および「所定時間演奏操作されない場合」の各ケースに分けて動作説明する。
【0032】
▲1▼発音タイミングの場合
発音タイミングになると、上記ステップSG4にて歩進されたレジスタSTIMEの値がレジスタSTEPTIMEに格納されるステップタイムST(ワンキープレイ/エニイキープレイ開始当初では初期ステップタイムISTになる)に一致するので、ステップSG6の判断結果が「YES」となり、ステップSG7に処理を進めて、ROM5に記憶される曲データSD中から次に発音すべき音符データを読み出し、続くステップSG8〜SG10では読み出した音符データを形成する音高データPD、ステップタイムSTおよびゲートタイムGTを、レジスタBUFFER、レジスタSTEPTIMEおよびレジスタGATETIMEにそれぞれストアする。そして、ステップSG11では、レジスタSTIME,TIME,GTIMEおよびMAXTIMEをゼロリセットする。
【0033】
▲2▼消音タイミングの場合
消音タイミングになると、上記ステップSG4にて歩進されたレジスタGTIMEの値がレジスタGATETIMEに格納されるゲートタイムGTに一致するので、図10に示すステップSG12の判断結果が「YES」となり、ステップSG13に進む。ステップSG13では、次の発音に備え、既にレジスタBUFFERに格納済みの音高データPDを音源7に送出し、続くステップSG14では現在発音中の楽音を消音するよう音源7に指示する。
【0034】
▲3▼現タイミングTIMEが許容範囲を超えた場合
現タイミングTIMEが許容範囲を超える場合とは、予測タイミングYTIMEをMAX分超えた(YTIME+MAX)時点であっても、未だにワンキープレイ用の演奏操作子1がオン操作されない(あるいはエニイキープレイ下での押鍵操作が行われない)状況を指す。
このような状況にあると、ステップSG15の判断結果が「YES」となり、ステップSG16に進む。ステップSG16では、「60」をレジスタTEMPOに格納されるテンポ値で除算して1テンポクロック当りの秒数を求め、これにレジスタSTEPTIMEに格納される次音符データのステップタイムSTを乗算して時間換算される遅延タイミングを、現在の予測タイミングYTIMEに加算して新たな予測タイミングYTIMEを求める。
つまり、演奏操作子1のオン操作(あるいは押鍵操作)が予測より遅れ、これにより現タイミングTIMEが許容範囲を超えると、次に発音すべき音符データのステップタイムST分だけ、これまでの予測タイミングYTIMEを遅延させて新たな予測タイミングYTIMEに更新するのである。
【0035】
▲4▼所定時間演奏操作されない場合
「ワンキープレイ」モード(もしくは「エニイキープレイ」モード)実行中のままワンキープレイ用の演奏操作子1(あるいはエニイキープレイ下では鍵盤2のいずれかの鍵)が所定時間演奏操作されないと、本ルーチンが繰り返し実行され、これにより繰り返し歩進されるレジスタMAXTIMEの値が所定値を超えてしまうと、ステップSG17の判断結果が「YES」となり、ステップSG18に進み、フラグSTOPを「1」にセットして自動的にプレイ停止させる。
【0036】
(5)再生処理の動作
次に、図11を参照して再生処理の動作について説明する。前述したように、「ワンキープレイ」モード下で演奏操作子1をオン操作した場合もしくは「エニイキープレイ」モード下で鍵盤2のいずれかの鍵を押鍵した場合には、図6に図示したステップSD4もしくは図8に図示したステップSF5を介して再生処理が実行され、これにてCPU4は図11に示すステップSH1に処理を進める。ステップSH1では、スタートフラグSTFが「1」、つまり、プレイ開始状態であるかを判断する。ここで、プレイ停止状態であれば、判断結果は「NO」となり、何も処理せずに本ルーチンを完了させるが、プレイ開始状態であると、判断結果が「YES」となり、次のステップSH2に処理を進める。
【0037】
ステップSH2では、上述の読出し処理(図9参照)にて求めた現タイミングTIMEを、ワンキープレイ用の演奏操作子1がオン操作されたタイミング(あるいはエニイキープレイ下で押鍵操作されたタイミング)としてレジスタONTIMEにセットする。以後、レジスタONTIMEの値をオンタイミングONTIMEと記す。
次いで、ステップSH3では、このオンタイミングONTIMEが予測タイミングYTIMEから所定範囲内(±α)に収まっているか否かを判断する。ここで、オンタイミングONTIMEが予測タイミングYTIMEから所定範囲内(±α)に収まっていない場合には、判断結果が「NO」となり、本ルーチンを完了させる。
つまり、予測タイミングYTIMEから所定範囲内(±α)でワンキープレイ用の演奏操作子1がオン操作されない(あるいはエニイキープレイ下で押鍵操作が行われない)場合、曲データSDの読み出しは行われないようになっている。
【0038】
一方、予測タイミングYTIMEから所定範囲内(±α)でワンキープレイ用の演奏操作子1がオン操作されると(あるいはエニイキープレイ下で押鍵操作が行われると)、上記ステップSH3の判断結果が「YES」となり、ステップSH4に進む。ステップSH4では、予測タイミングYTIMEとオンタイミングONTIMEとの比を、レジスタTEMPOに格納されるテンポ値に乗算し、その結果をレジスタTEMPOにストアしてテンポ値を更新する。
つまり、ユーザがワンキープレイ用の演奏操作子1をオン操作するタイミング(あるいはエニイキープレイ下で押鍵操作するタイミング)が予測タイミングYTIMEより早ければアップテンポ、予測タイミングYTIMEより遅ければテダウンテンポになるようテンポ値が更新される。
【0039】
次いで、ステップSH5では、オンタイミングONTIMEが予測タイミングYTIME以下であるか否かを判断する。ここで、予測タイミングYTIMEとオンタイミングONTIMEとが一致するかあるいは予測タイミングYTIMEよりオンタイミングONTIMEが早いと、判断結果は「YES」となり、次のステップSH6に進み、先読み出しにてレジスタBUFFERに既に格納されている次音符データの音高データPDを音源7に送出し、続くステップSH7では、先に音源7へ送出済みの音高データPDについて発音するよう音源7に指示する。そして、ステップSH8では、「60」をレジスタTEMPOに格納されるテンポ値で除算して1テンポクロック当りの秒数を求め、これをレジスタSTEPTIMEに格納される次音符データのステップタイムSTに乗算して予測タイミングYTIMEを更新した後、本ルーチンを完了させる。
【0040】
一方、予測タイミングYTIMEよりオンタイミングONTIMEが遅いと、上記ステップSH5の判断結果は「NO」となり、ステップSH9に進む。ステップSH9では、ROM5に記憶される曲データSD中から次の音符データを読み出し、続くステップSH10では読み出した音符データが曲の終わりを表すENDデータか否かを判断する。ENDデータであると、判断結果は「YES」となり、次のステップSH11に進み、スタートフラグSTFをゼロリセットしてプレイ停止状態に設定する。そして、ステップSH12に進み、現在発音中の楽音を消音するよう音源7に指示してから本ルーチンを完了させる。
【0041】
これに対し、読み出した音符データが曲の終わりを表すENDデータでなければ、上記ステップSH10の判断結果が「NO」となり、ステップSH13に処理を進め、レジスタSTIME,TIME,GTIMEおよびMAXTIMEをゼロリセットする。
次いで、ステップSH14〜SH16では読み出した音符データを形成する音高データPD、ステップタイムSTおよびゲートタイムGTを、レジスタBUFFER、レジスタSTEPTIMEおよびレジスタGATETIMEにそれぞれストアする。この後、上述したステップSH6〜SH8を経て本ルーチンを完了させる。
【0042】
(6)具体的動作
次に、前述した各処理にて実現される具体的な動作について説明する。ユーザがモードスイッチMSにて「ワンキープレイ」モードに設定した後、スタート/ストップスイッチSSを操作してプレイ開始状態に設定したとする。
そうすると、図7に図示したスタート/ストップスイッチ処理が実行される。スタート/ストップスイッチ処理では、まず曲データSDから初期テンポ値ITDおよび初期ステップタイムISTを読み出す。読み出した初期テンポ値ITDおよび初期ステップタイムISTに基づきプレイ開始当初のテンポ値TEMPOと、このテンポ値TEMPOおよび初期ステップタイムISTから演奏操作子1をオン操作すべきタイミングを表す予測タイミングYTIMEを設定する。次に、曲データSD中の先頭の音符データ(音高データPD、ステップタイムSTおよびゲートタイムGT)を読み出してレジスタセットする。
この後、図9に図示した読出し処理にてテンポクロックを累算してなる現タイミングTIMEを生成する。
【0043】
そして、ユーザが演奏操作子1をオン操作すると、図11に示す再生処理が実行される。再生処理では、そのオン操作された時の現タイミングTIME、つまりオンタイミングONTIMEが予測タイミングYTIME近傍の所定時間以内でなされたものかどうかを判断する。所定時間以内であったならば、オンタイミングONTIMEと予測タイミングYTIMEとの比に応じてテンポ値TEMPOを更新する一方、オンタイミングONTIMEと予測タイミングYTIMEとの前後関係に応じた下記▲1▼項または▲2▼項の処理を行う。
【0044】
▲1▼オンタイミングONTIME≦予測タイミングYTIMEの場合
この場合、既にレジスタセットされている音高データPDを音源7に送出して発音を指示する。これにより、先頭の音符データが即座に再生される。この後、更新されたテンポ値TEMPOとレジスタセットされているステップタイムSTとに基づき次の音符データに対応する予測タイミングYTIMEを更新する。
こうして、最初のオン操作に対応して、曲データSD中の先頭の音符データが発音している時に、この先頭の音符データの発音タイミングになると、図9に図示した読出し処理にて次の音符データが先読み出しされてレジスタセットされる。
さらに、当該先頭の音符データの消音タイミングになると、そのレジスタセットされた音高データPDを音源7に送出した後、現在発音されている先頭の音符データの楽音を消音させる。
【0045】
▲2▼オンタイミングONTIME>予測タイミングYTIMEの場合
一方、オン操作が予測タイミングYTIMEより遅い場合には、既にレジスタセットされている音高データPD、つまり、先頭の音符データの発音を取り止め、次の音符データ(音高データPD、ステップタイムSTおよびゲートタイムGT)をレジスタセットし、このレジスタセットされた音高データPDを音源7に送出して発音を指示する。これにより、先頭の音符データを再生せずに次の音符データが再生される。
この後、上記▲1▼項の場合と同様、更新されたテンポ値TEMPOとレジスタセットされているステップタイムSTとに基づき次の音符データに対応する予測タイミングYTIMEを更新する。
こうして、最初のオン操作に対応して、先頭の次の音符データが発音している時に、その音符データの発音タイミングになると、図9に図示した読出し処理にてさらにその次の音符データが先読み出しされてレジスタセットされる。そして、消音タイミングになると、そのレジスタセットされた音高データPDを音源7に送出した後、現在発音されている先頭の次の音符データを消音させる。
【0046】
以後、ユーザ好みのタイミングで演奏操作子1をオン操作して行くと、オンタイミングONTIMEと予測タイミングYTIMEとの比に応じてテンポ値TEMPOがユーザ好みのテンポに調整され、それに応じて予測タイミングYTIMEも更新されて行く。
そして、こうした過程でオンタイミングONTIMEが予測タイミングYTIMEより早かったり、遅かったりすると、上記▲1▼項あるいは▲2▼項で説明したのと同様な処理に従って音符データの読み出し、発音および消音指示が行われる。
【0047】
このように、上述した実施例によれば、テンポ値に従ったタイミングでROM5に記憶される曲データSD中から次に発音すべき音符データを読み出し、この読み出された音符データが示す発音タイミング(ステップタイム)とテンポ値とに応じて演奏操作子1をオン操作すべきタイミングを表す予測タイミングYTIMEを算出する。
この予測タイミングYTIME近傍の所定時間以内にユーザが演奏操作子1をオン操作すると、そのオン操作がなされたオンタイミングONTIMEと予測タイミングYTIMEとの比に応じてテンポ値を更新すると共に、オンタイミングONTIMEと予測タイミングYTIMEとの前後関係を判断し、予測タイミングYTIMEと同時もしくは早くオン操作された場合には読み出しておいた音符データを再生し、一方、予測タイミングYTIMEより遅れてオン操作された場合には読み出しておいた音符データを再生せずに、さらに次の音符データを読み出して再生する。
【0048】
したがって、ユーザが演奏操作子1をオン操作する間隔で演奏テンポが決り、なおかつ予測タイミングYTIME近傍の所定時間以内であって、しかも予測タイミングYTIMEと同時もしくは早くオン操作した時にだけ正しく音符データが再生されるから、ユーザ好みのテンポで演奏練習することが可能になっている。
【0049】
なお、本実施例では、演奏操作子1を一定期間オン操作しないと、フラグSTOPが「1」にセットされて自動的にプレイ停止状態になり、その状態で演奏操作子1が再びオン操作されると、プレイ停止状態が解除されて演奏再開するようになっているので、演奏練習を途中で止めたり、途中で止めた演奏練習を即座に再開することも可能にしている。
【0050】
【発明の効果】
請求項1,2に記載の発明によれば、テンポ値に従ったタイミングで記憶手段から次に発音すべき音符データを読み出し、読み出された音符データが示す発音タイミングと前記テンポ値とに応じて演奏操作子をオン操作すべき予測タイミングを算出しておき、この予測タイミングの近傍で演奏操作子がオン操作された場合、そのオン操作されたタイミングと予測タイミングとに応じて前記テンポ値を更新すると共に、そのオン操作されたタイミングが当該予測タイミングと同時もしくは早い時には読み出しておいた音符データを再生し、一方、オン操作されたタイミングが当該予測タイミングより遅い時には読み出しておいた音符データを再生せずに、さらに次の音符データを記憶手段から読み出して再生する。したがって、ユーザが演奏操作子をオン操作する間隔で演奏テンポが決り、なおかつ予測タイミング近傍であって、しかも予測タイミングと同時もしくは早くオン操作した時にだけ正しく音符データが再生されるから、ユーザ好みのテンポで演奏練習することができる。
【図面の簡単な説明】
【図1】本発明による一実施例の構成を示すブロック図である。
【図2】曲データSDの構成を示す図である。
【図3】メインルーチンの動作を示すフローチャートである。
【図4】スイッチ処理ルーチンの動作を示すフローチャートである。
【図5】モードスイッチ処理ルーチンの動作を示すフローチャートである。
【図6】ワンキー処理ルーチンの動作を示すフローチャートである。
【図7】スタート/ストップスイッチ処理ルーチンの動作を示すフローチャートである。
【図8】鍵盤処理ルーチンの動作を示すフローチャートである。
【図9】読出し処理ルーチンの動作を示すフローチャートである。
【図10】読出し処理ルーチンの動作を示すフローチャートである。
【図11】再生処理ルーチンの動作を示すフローチャートである。
【符号の説明】
1 演奏操作子
2 鍵盤
3 パネルスイッチ
4 CPU
5 ROM
6 RAM
7 音源
8 サウンドシステム
Claims (2)
- 曲を形成する各音毎の音高および発音タイミングを表す音符データを予め記憶手段に記憶しておき、この音符データを演奏操作子のオン操作に応じて記憶手段から読み出して再生する演奏装置において、
テンポ値に従ったタイミングで前記記憶手段から次に発音すべき音符データを読み出す読出し手段と、
この読出し手段によって読み出された音符データが示す発音タイミングと前記テンポ値とに応じて演奏操作子をオン操作すべき予測タイミングを算出する予測タイミング算出手段と、
前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作された場合、そのオン操作されたタイミングと予測タイミングとに応じて前記テンポ値を更新するテンポ更新手段と、
前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作され、そのオン操作されたタイミングが当該予測タイミングと同時もしくは早い場合には前記読出し手段が読み出しておいた音符データを再生し、一方、オン操作されたタイミングが当該予測タイミングより遅い場合には前記読出し手段が読み出しておいた音符データを再生せずに、さらに次の音符データを前記記憶手段から読み出して再生する再生手段と
を具備することを特徴とする演奏装置。 - 曲を形成する各音毎の音高および発音タイミングを表す音符データを予め記憶手段に記憶しておき、この音符データを演奏操作子のオン操作に応じて記憶手段から読み出して再生する演奏方法において、
テンポ値に従ったタイミングで前記記憶手段から次に発音すべき音符データを読み出す読出し過程と、
この読出し過程にて読み出された音符データが示す発音タイミングと前記テンポ値とに応じて演奏操作子をオン操作すべき予測タイミングを算出する予測タイミング算出過程と、
前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作された場合、そのオン操作されたタイミングと予測タイミングとに応じて前記テンポ値を更新するテンポ更新過程と、
前記予測タイミングの前後の所定範囲内で演奏操作子がオン操作され、そのオン操作されたタイミングが当該予測タイミングと同時もしくは早い場合には前記読出し過程にて読み出しておいた音符データを再生し、一方、オン操作されたタイミングが当該予測タイミングより遅い場合には前記読出し過程にて読み出しておいた音符データを再生せずに、さらに次の音符データを前記記憶手段から読み出して再生する再生過程と
を具備することを特徴とする演奏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000334285A JP3931551B2 (ja) | 2000-11-01 | 2000-11-01 | 演奏装置および演奏方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000334285A JP3931551B2 (ja) | 2000-11-01 | 2000-11-01 | 演奏装置および演奏方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002140069A JP2002140069A (ja) | 2002-05-17 |
JP3931551B2 true JP3931551B2 (ja) | 2007-06-20 |
Family
ID=18810233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000334285A Expired - Fee Related JP3931551B2 (ja) | 2000-11-01 | 2000-11-01 | 演奏装置および演奏方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3931551B2 (ja) |
-
2000
- 2000-11-01 JP JP2000334285A patent/JP3931551B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002140069A (ja) | 2002-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6402878B2 (ja) | 演奏装置、演奏方法およびプログラム | |
JP3018821B2 (ja) | 自動演奏装置 | |
JP2001242859A (ja) | 自動伴奏装置および自動伴奏方法 | |
JP4201679B2 (ja) | 波形発生装置 | |
JP3684774B2 (ja) | 演奏指示装置及びプログラムを記録した媒体 | |
JP3931551B2 (ja) | 演奏装置および演奏方法 | |
JP2500492B2 (ja) | 自動伴奏装置 | |
JP3528230B2 (ja) | 自動演奏装置 | |
JP3632606B2 (ja) | 自動演奏装置 | |
JP4645282B2 (ja) | 電子楽器 | |
JP6528752B2 (ja) | 楽音再生装置、楽音再生方法、プログラムおよび電子楽器 | |
JP3933583B2 (ja) | 電子楽器 | |
JP3812729B2 (ja) | 演奏案内装置および演奏案内方法 | |
JP4345433B2 (ja) | 演奏装置および演奏処理プログラム | |
JP2674452B2 (ja) | 楽曲再生装置 | |
JP3809789B2 (ja) | 演奏案内装置および演奏案内方法 | |
JPH1185153A (ja) | 演奏装置 | |
JP2848092B2 (ja) | 自動伴奏装置 | |
JP2006178268A (ja) | 楽音制御装置および楽音制御プログラム | |
JP2842440B2 (ja) | 自動伴奏装置 | |
JP3862988B2 (ja) | 電子楽器 | |
JP4645285B2 (ja) | 電子楽器 | |
JP2722880B2 (ja) | 電子楽器 | |
JPH10333674A (ja) | 演奏装置 | |
JPH07152372A (ja) | 演奏装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050726 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061023 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061204 |
|
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: 20070220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070305 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120323 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140323 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |