JP3546801B2 - Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium - Google Patents

Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium Download PDF

Info

Publication number
JP3546801B2
JP3546801B2 JP2000076444A JP2000076444A JP3546801B2 JP 3546801 B2 JP3546801 B2 JP 3546801B2 JP 2000076444 A JP2000076444 A JP 2000076444A JP 2000076444 A JP2000076444 A JP 2000076444A JP 3546801 B2 JP3546801 B2 JP 3546801B2
Authority
JP
Japan
Prior art keywords
waveform data
generation
command
performance information
real
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
Application number
JP2000076444A
Other languages
Japanese (ja)
Other versions
JP2000338979A (en
Inventor
秀生 宮森
裕一 関戸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2000076444A priority Critical patent/JP3546801B2/en
Publication of JP2000338979A publication Critical patent/JP2000338979A/en
Application granted granted Critical
Publication of JP3546801B2 publication Critical patent/JP3546801B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、パーソナルコンピュータ等のソフトウエアによる楽音合成に用いて好適な波形データ生成方法、波形データ記憶方法、波形データ生成装置および記録媒体に関する。
【0002】
【従来の技術】
汎用パーソナルコンピュータを用いて楽音波形を発生させるシステムが本出願人により提案されている(特開平10−124060号公報)。このシステムにおいては、MIDIデータに基づいて1フレーム(例えば10msec)毎の波形データがパーソナルコンピュータのCPUによって逐次生成される。そして、生成されたデータはDMAコントローラによって1フレームづつ読出され、DAコンバータを介してアナログ信号に変換され発音される。
【0003】
【発明が解決しようとする課題】
しかし、波形データを生成するためのアルゴリズムが複雑である場合や、CPUの処理能力が低い場合には、波形データの演算が1フレーム内で完了しないため、楽音波形を生成することが不可能であった。この発明は上述した事情に鑑みてなされたものであり、処理能力に応じて最適な状態で楽音波形を生成できる波形データ生成方法、波形データ記憶方法、波形データ生成装置および記録媒体を提供することを目的としている。
【0004】
【課題を解決するための手段】
上記課題を解決するため請求項1記載の構成にあっては、演奏情報に基づいて波形データを生成する波形データ生成方法において、演奏情報に基づいて一定または可変区間分の波形データを生成する波形データ生成過程と、第1指令または第2指令を受信する過程と、前記第1指令を受信すると、演奏情報をリアルタイムに有効化する過程と、前記第1指令を受信すると、所定のタイミングに達したことを生成開始条件として、前記波形データ生成過程に対し、リアルタイムに有効化された演奏情報に基づく各区間の波形データのリアルタイム生成を指示する過程と、前記第1指令を受信すると、前記指示に応じてリアルタイム生成された各区間の波形データを再生する過程と、前記第2指令を受信すると、前記波形データ生成過程の処理が完了していることを生成開始条件として各区間の波形データのノンリアルタイム生成を指示する過程と、前記第2指令を受信すると、ノンリアルタイム生成の指示された各区間に対応する演奏情報をノンリアルタイムに有効化する過程と、前記第2指令を受信すると、前記波形データ生成過程において、ノンリアルタイムに有効化された演奏情報に基づいてノンリアルタイムに生成された波形データをメモリに記憶する過程とを有することを特徴とする。
また、請求項2記載の構成にあっては、演奏情報に基づいて一定または可変区間毎に波形データを生成する波形データ生成方法において、演奏情報に基づいてそれぞれ異なる複数の生成方式により波形データを生成する複数の波形データ生成過程と、第1指令または第2指令を受信する過程と、受信した指令が前記第1指令であるか前記第2指令であるかに応じて前記複数の波形データ生成過程の一つを選択する過程と、前記第1指令を受信すると、所定のタイミングに達したことを生成開始条件として、選択された過程に対して、前記各区間における波形データの生成を指示する過程と、前記第2指令を受信すると、前の区間における波形データの生成が完了したことを生成開始条件として、前記選択された波形データ生成過程に対して、前記各区間における波形データの生成を指示する過程とを有することを特徴とする。
また、請求項3記載の構成にあっては、演奏情報に基づいて波形データを生成して記憶する波形データ記憶方法において、前記演奏情報に基づいてリアルタイムに波形データを生成しつつ、生成された波形データを再生する過程と、前記再生を途中で停止し、演奏情報における停止位置を指定する過程と、前記停止位置以降の部分の演奏情報に対応する波形データをノンリアルタイムに生成する過程と、ノンリアルタイムに生成された波形データをメモリに記憶する過程とを有することを特徴とする。
また、請求項4記載の構成にあっては、演奏情報に基づいて波形データを生成して記憶する波形データ記憶方法において、前記演奏情報に基づいて波形データをノンリアルタイム生成しつつ、生成された波形データをメモリに記憶する過程と、前記演奏情報に対応した波形データ上における、前記ノンリアルタイム生成が実行されている位置を示す位置情報を表示する過程と、前記ノンリアルタイム生成の途中で停止指示を受信する過程と、前記停止指示を受信すると、前記ノンリアルタイム生成および前記波形データの記憶を中止する過程とを有することを特徴とする。
また、請求項5記載の構成にあっては、請求項1〜4の何れかの方法を実行することを特徴とする。
また、請求項6記載の構成にあっては、請求項1〜4の何れかの方法を実行するプログラムを記録したことを特徴とする。
【0005】
【発明の実施の形態】
1.実施形態のハードウエア構成
本発明の一実施形態の楽音合成システムのハードウエア構成を図1を参照し説明する。図において21はCPUであり、後述する制御プログラムに従って、CPUバス20を介して各部を制御する。22はROMであり、イニシャルプログラムローダ等が格納されている。23はRAMであり、後述する各種のプログラムやデータがロードされ、CPU21によってアクセスされる。24はタイマであり、所定時間毎にCPU21に対する割込みを発生させる。
【0006】
25はMIDIインターフェースであり、外部のMIDI機器(図示せず)との間でMIDI信号のやりとりを行う。26はハードディスクであり、オペレーティングシステム、各種ドライバ、各種アプリケーションプログラム、演奏情報等が記憶されている。27はリムーバブルディスクであり、CD−ROM、MOドライブ等が設けられ、ハードディスク26と同様の情報が記憶される。
【0007】
28は表示器であり、CRTあるいは液晶ディスプレイ等によって構成され、ユーザに対して種々の情報を表示する。29はキーボード&マウスであり、ユーザの操作によってCPU21に対して各種の情報を入力する。30は波形インターフェースであり、アナログ信号波形の入出力を行う。
【0008】
ここで、波形インターフェース30およびRAM23の詳細を図4を参照し説明する。図において31はADコンバータであり、入力されたアナログ信号をデジタル信号に変換する。33はサンプリングクロック発生器であり、所定のサンプリング周波数のクロック信号を発生する。32は第1DMAコントローラであり、このクロック信号に同期してADコンバータ31の出力信号をサンプリングし、RAM23内の指定箇所に該サンプリング結果をダイレクトメモリアクセスにより転送する。
【0009】
34は第2DMAコントローラであり、サンプリングクロック発生器33から出力されるクロック信号に同期して、RAM23に記憶されたデジタル波形データをダイレクトメモリアクセスによって読出す。35はDAコンバータであり、読出されたデジタル波形データをアナログ信号に変換し出力する。
【0010】
また、RAM23において、36は波形テーブル領域であり、各種の波形データの雛形を格納する。37は入力バッファ領域であり、第1DMAコントローラ32によってここに波形データが書き込まれる。また、38は出力バッファ領域であり、第2DMAコントローラ34によって読み出される波形データが格納される。出力バッファ領域38はリングバッファになっており、その読出しアドレスは循環的にインクリメントされる読出しポインタによって決定される。
【0011】
2.実施形態の動作
2.1.メインルーチン
次に、本実施形態の楽音合成システムの動作を説明する。楽音合成システムは、汎用パーソナルコンピュータのアプリケーションプログラムの一種であり、オペレーティングシステムの管理の下、動作する。オペレーティングシステムのシェルプログラムにおいて所定の操作が行われると、図3に示す本システムのメインルーチンが起動される。図において処理がステップSP101に進むと、所定の初期設定が行われる。次に、処理がステップSP102に進むと、図4に示すメインウィンドウ50が表示器28に表示される。
【0012】
図において51はインジケータ部であり、再生する曲名等が表示される。52はテンポインジケータであり、波形データを再生する際のテンポを表示する。53は上記テンポの設定を行うテンポ設定ボタンである。54は波形データを再生する際のキーの高さを示すキーインジケータであり、55はそのキーの設定を行うキー設定ボタンである。56は波形データの再生音量を示す音量インジケータであり、57はその音量の設定を行う音量設定ボタンである。
【0013】
58は選曲ボタンであり、再生すべきMIDIデータ(演奏情報)を格納したファイルまたはディレクトリを指定する。60は再生操作ボタン群であり、波形データの再生の開始、終了、ポーズ、早送り、巻き戻し、オートリバース、スキップ等の動作を指定する。特に、再生の開始および終了は、再生開始ボタン62およびストップボタン61をマウスでクリックすることにより為される。71は波形データ記録ボタンであり、波形ファイルの確定後にマウスでクリックすることにより、波形データの記録を開始させる。次に、72はヘルプボタンであり、マウスでクリックすると所定のヘルプファイルの内容を表示する。73は終了ボタンであり、本実施形態の楽音合成システムの終了を指示する。
【0014】
図3に戻り、処理がステップSP103に進むと、オペレーティングシステムから何等かのメッセージが届いているか否かが判定される。ここで「NO」と判定されると、メッセージが検出されるまで同ステップが繰返される。そして、メッセージが検出されると、処理はステップSP104に進み、そのメッセージの内容に応じた処理が行われる。以後、ステップSP103、104の処理が繰返されることになる。
【0015】
2.2.オペレーティングシステムにおけるタイマ処理
本実施形態の楽音合成システム等のアプリケーションプログラムは、オペレーティングシステムに対してタイマメッセージの設定を行うことができる。タイマメッセージの設定が行われると、所定周期毎にオペレーティングシステムからアプリケーションプログラムにタイマメッセージが送信される。本実施形態にあっては、「テンポクロック周期」および「フレーム周期」の2つの周期毎に、オペレーティングシステムから楽音合成システムにタイマメッセージが送信される。
【0016】
ここで、「テンポクロック」とはMIDIイベントを発生させるタイミングの単位であり、四分音符の「1/16」の周期である。従って、テンポクロックの周期は、テンポ設定ボタン53等によってテンポが設定される毎に変更される。また、本実施形態においては、波形データは短い時間毎に小分けされて合成される。「フレーム」とはこの波形データを合成する時間の単位となる周期であり、例えば「10msec」に設定される。ここで、オペレーティングシステムにおいてはタイマメッセージ処理の優先度は低く設定されているため、タイマメッセージは時々遅れたり抜け落ちることもあり得る。
【0017】
2.3.選曲ボタン58のイベント処理
選曲ボタン58がマウスでクリックされると、オペレーティングシステムから楽音合成システムに対して、その旨のメッセージが送信される。かかるメッセージがステップSP103で検出されると、曲ファイル(MIDIファイル)名の指定を促す子ウィンドウが表示器28に表示される(図示せず)。ここでユーザが曲ファイル名を指定して子ウィンドウを閉じると、この曲ファイル名が記憶され、子ウィンドウが閉じられた後、処理はメインルーチンに戻る。
【0018】
2.4.再生開始ボタン62のイベント処理
曲ファイル名が指定された後、再生開始ボタン62がマウスでクリックされると、その旨がオペレーティングシステムから楽音合成システムに通知され、楽音合成システムにあっては図6に示す再生開始ルーチンが起動される。図において処理がステップSP1に進むと、指定された曲ファイルの現在位置(初期状態においては先頭、一時停止中はその一時停止の操作がなされた位置、あるいは、操作者の位置指定操作により指定された位置)からの再生が準備される。また、オペレーティングシステムに対しては、フレーム周期毎のタイマメッセージの送信が要求される。次に、処理がステップSP2に進むと、後述するソフト音源の動作の開始が指示される。次に、処理がステップSP3に進むと、フラグRUNが“1”に設定され、処理はメインルーチンに戻る。
【0019】
2.5.テンポクロックイベント処理
メインルーチンにおいてオペレーティングシステムからテンポクロックメッセージが供給されると、ステップSP104において図8に示すテンポクロックイベント処理ルーチンが起動される。図において処理がステップSP11に進むと、フラグRUNが“1”であるか否かが判定される。ここで「NO」と判定されると、本ルーチンの処理は直ちに終わる。一方、フラグRUNが“1”である場合、すなわち上述した再生開始ボタン62のイベント処理が行われた場合には「YES」と判定され、処理はステップSP12に進む。
【0020】
ステップSP12においては、所定のテンポカウンタ(変数)が「1」だけインクリメントされる。ここで、テンポカウンタは初期設定時に「0」にイニシャライズされている。従って、テンポカウンタは、フラグRUNが“1”になった後のテンポクロック数をカウントする変数になる。次に処理がステップSP13に進むと、先にステップSP1において準備された曲ファイルが参照され、何れかのイベントを再生する時刻に達したか否かが上記テンポカウンタに基づいて判定される。
【0021】
ここで「YES」と判定されると、処理はステップSP14に進み、該時刻のMIDIイベントが発生される。例えば、なんらかのノートオンイベントを発生させる場合には、該イベント用の発音チャンネルが割り当てられる。すなわち、該ノートオンイベント用の各種発音パラメータ等を格納するエリアがRAM23内に確保され、音源の種類に応じて発音パラメータがセットされる。また、該イベントがノートオフイベントであれば、必要に応じて消音処理が行われた後、対応する発音チャンネルが解放される。
【0022】
2.6.フレーム周期イベント処理
メインルーチンにおいてオペレーティングシステムからフレーム周期メッセージが供給されると、ステップSP104において図10に示すフレーム周期イベント処理ルーチンが起動される。図において処理がステップSP41に進むと、今回生成すべきフレーム数に応じて、生成すべきサンプル数が決定される。なお、生成すべきフレーム数は一般的には「1」であるが、フレーム周期メッセージが抜けた場合には、抜けた数だけフレーム数は加算される。
【0023】
次に処理がステップSP42に進むと、当該フレーム数分の波形データを書き込むべきバッファ領域が準備される。次に処理がステップSP43に進むと、図11に示す音源処理ルーチンが起動される。詳細は後述するが、この音源処理ルーチンによって、先に確保されたバッファ領域に上記フレーム分の波形データが書き込まれる。次に処理がステップSP44に進むと、生成された波形データを波形インターフェース30に渡すために、該波形データが出力バッファ領域38に転送される。以上の処理が終了すると、処理はメインルーチンに戻る。なお、出力バッファ領域38に転送された波形データは、先述した動作により、第2DMAコントローラ34によりサンプリング周期毎に1サンプルづつ読み出され、DAコンバータ35でアナログ信号に変換されて出力される。
【0024】
上述したように、出力バッファ領域38はリングバッファになっており、その読出しアドレスは循環的にインクリメントされる読出しポインタによって決定される。今回新たに生成された波形データを格納するアドレスは、読出しポインタと同様に循環的にインクリメントされる書込みポインタによって決定される。書込みポインタは、読出しポインタに対して数フレーム分だけ先行している。これにより、書込みポインタと読出しポインタとは、その間隔をほぼ一定に保ちつつ出力バッファ領域38内を巡回する2つのアドレスを示すことになる。
【0025】
フレーム周期メッセージが1回または数回連続して抜けると、その回数に相当するだけ書込みポインタと読出しポインタとの距離は一時的に縮まるが、次回にステップSP41が呼び出された際に抜けた回数をリカバーするように生成フレーム数およびサンプル数が決定される。すなわち、読出しポインタと書込みポインタとの間隔は、フレーム周期メッセージの抜けに対応するための時間的なマージンになる。
【0026】
2.7.音源処理
本実施形態においては、波形データの生成はCPU21上で動くソフトウエアモジュールによって行われる。波形データを生成するソフトウエアモジュールは、音源モジュールと効果モジュールとに大別される。音源モジュールはFM音源、PCM音源、物理モデル音源等をソフトウエアで実現し波形データを生成するモジュールであり、効果モジュールは既に得られた波形データに対してリバーブ、コーラス等の効果を施すモジュールである。
【0027】
RAM23においては、各音源モジュールおよび効果モジュール間で波形データを受け渡すためのバッファが設けられる。ここで、各モジュールおよびバッファ間の波形データの流れを図14および図15に示す。図14においてパート1の波形データは、5系統のセンドレベルが乗算され、各乗算結果が各バッファWB1,2,5〜7に書き込まれる。また、パート2の波形データに対しては、インサーションエフェクトIEF1が施された後、4系統のセンドレベルが乗算され、各乗算結果が各バッファWB1〜4に足し込まれる。すなわち、元々のバッファWB1〜4の内容に新たな乗算結果が加算される。このようにしてパート1〜16に対応する波形データは、必要に応じてインサーションエフェクトが施された後、種々のセンドレベルでバッファWB1〜7に書き込まれる。
【0028】
次に、図15において、バッファWB3,4の内容に対して、何れかの効果モジュールによって効果EF1が施され、その結果に4系統のセンドレベルが乗算された後、各乗算結果が各バッファWB1,2,5,6の内容に足し込まれる。次に、バッファWB5,6の内容に対して、効果EF2が施され、その結果に4系統のセンドレベルが乗算された後、各乗算結果が各バッファWB1,2,7の内容に足し込まれる。そして、バッファWB7の内容に対して効果EF3が施され、その結果に2系統のセンドレベルが乗算された後、各乗算結果が各バッファWB1,2の内容に足し込まれる。
【0029】
このバッファWB1,2の内容は、最終的な音源処理結果として呼出元のルーチンに渡される。すなわち、上記フレーム周期イベント処理ルーチン(図10)においては、バッファWB1,2の内容は書込みポインタに従って出力バッファ領域38に転送されることになる。このように、本実施形態においては、複数の音源モジュールおよび効果モジュールの入出力バッファとセンドレベルとを定めておくことにより、様々な態様で楽音波形を生成することができる。
【0030】
入出力バッファとセンドレベルとが予め決定されていれば、音源モジュールおよび効果モジュールを順次実行してゆくことによって所望のミキシング結果が得られる。そのフローチャートを図11に示しておく。図においてステップSP51〜SP69においては音源モジュールおよびインサーションエフェクトモジュールが順次実行され、バッファWB1〜7に波形データが格納される。次に、ステップSP70〜SP79においては、効果モジュールが順次実行され、バッファWB1,2に最終的な波形データが格納されるのである。なお、このように楽音波形を生成する方法に関しては、特開平10−124060号公報および特願平10−133761号に詳述されている。
図11の音源処理においては、n個の音源モジュールとm個の効果モジュールが順次実行されるようになっているが、この音源処理で実行するモジュールの数や内容はユーザの操作子操作や制御コード等に応じて任意に変更することができる。音源モジュールとしては、物理モデル音源、PCM音源、FM音源、音声合成音源等の種類が選択可能であり、さらに、同じ音源種類の中でもアルゴリズムやサンプリング周波数の異なる音源モジュールが選択可能である。一方、効果モジュールとしては、リバーブ、コーラス、ディストーション、コンプレッサ等が選択可能である。
【0031】
2.8.ストップボタン61のイベント処理
ストップボタン61がマウスでクリックされると、その旨がオペレーティングシステムから楽音合成システムに通知され、楽音合成システムにあっては図7に示す再生停止ルーチンが起動される。図において処理がステップSP6に進むと、フラグRUNが“0”に設定される。これにより、以後、テンポクロック処理ルーチンが呼び出された場合においても実質的な処理は行われなくなる。
【0032】
次に、処理がステップSP7に進むと、ソフト音源の動作停止が指示される。すなわち、各発音チャンネルに対してノートオフイベントが発生した場合と同様に、必要に応じて消音処理が行われた後、対応する発音チャンネルが解放される。次に、処理がステップSP8に進むと、曲ファイルの再生停止処理が行われ、処理はメインルーチンに戻る。
【0033】
2.9.波形データ記録ボタン71のイベント処理
波形データ記録ボタン71がマウスでクリックされると、その旨がオペレーティングシステムから楽音合成システムに通知され、楽音合成システムにあっては図9に示す波形データ保存ルーチンが起動される。図において処理がステップSP21に進むと、曲ファイルの現在位置からの再生が準備される。
【0034】
ここで、「現在位置」とは、選択された曲ファイルが未だ再生されていない場合には曲ファイルの先頭であり、曲ファイルが再生中である場合は再生中の位置である。換言すれば、本実施形態においては、曲ファイルが指定された後に直ちに波形データの記録を行うこともでき、リアルタイムに曲ファイルを再生している途中で所望の位置から波形データの記録を開始させることもできる。なお、波形記録中は発音処理は行われないため、オペレーティングシステムに対して、「テンポクロック周期」および「フレーム周期」のタイマメッセージを停止するように要求される。
【0035】
次に、処理がステップSP22に進むと、波形ファイル名の入力を促すウィンドウが表示器28に表示される。ユーザによってこの波形ファイル名が指定されると、当該ファイルがオープンされる。なお、該当するファイル名が存在しない場合には、新規ファイルが作成されオープンされる。
【0036】
また、波形ファイル名を指定する際のオプションとして、波形ファイルを圧縮するか否かを指定するラジオボタンも表示される。このラジオボタンをマウスでクリックすると、波形データは圧縮されつつファイルに記録されることになる。次に処理がステップSP23に進むと、図5に示す波形データ保存ウィンドウ80が表示器28に表示される。図5において81は曲名表示欄であり、先にインジケータ部51に示されていた曲名が表示される。
【0037】
82はファイル名表示欄であり、先に指定された波形ファイル名が表示される。83は進行状況グラフ表示欄であり、曲ファイルの再生開始位置に対応する時刻(0’00.000)と、曲ファイルの最終位置に対応する時刻(2’57.930)と、波形データの生成状況の進行を示す時刻(1’36.600)とが数値表示される。また、前記再生開始位置から前記最終位置までの時間を100%とした前記生成状況の進行具合を、百分率のグラフとして表示している。84は記録状況表示部であり、現在までに波形ファイルに記憶し終えた波形データの時間長と、それに対応する波形ファイルのサイズとが表示される。
【0038】
85はディスク限界表示部であり、波形ファイルが属するドライブ(例えばハードディスク26あるいはリムーバブルディスク27)における空き容量と、この空き容量に対応して記録可能な波形データの時間とが表示される。86はトータルサイズ表示欄であり、曲ファイルの前記再生開始位置から前記最終位置までを全て再生し生成された波形データを記録した場合の波形データのサイズを表示している。87はストップボタンであり、波形データ記録を途中で終了し、その時点までに生成し終えた波形データを記憶する波形ファイルを残すよう指令するために設けられている。88はアボートボタンであり、波形データ記録を中止してその結果を破棄するために設けられている。
【0039】
図9に戻り、処理がステップSP24に進むと、波形データを一時記憶する転送バッファ領域が確保される。次に、処理がステップSP25に進むと、音源処理ルーチン(図11)で生成すべき波形データのサンプル数が決定される。なお、ステップSP41において説明したようにリアルタイムで発音処理を行うモードにおいてはフレーム周期メッセージの抜けに応じてサンプル数が決定されたが、波形データを記録するモードにおいては時間的な制約が無いため、CPUの都合に応じて最も効率の高くなるサンプル数を選択するとよい。
【0040】
次に、処理がステップSP26に進むと、今回生成される波形データの範囲に対応するMIDIイベントが曲ファイルから検索され、イベントが存在する場合は対応するMIDIイベントが発生される。すなわち、上記ステップSP14と同様に、なんらかのノートオンイベントを発生させる場合には、該イベント用の発音チャンネルが割り当てられ、ノートオフイベントを発生させる場合には、必要に応じて消音処理が行われ、対応する発音チャンネルの楽音は減衰を開始する。そして、何回かの音源処理の後、楽音が充分に減衰すると、その発音チャンネルが解放される。
【0041】
次に、処理がステップSP27に進むと、音源処理ルーチン(図11)が呼び出される。これにより、先にステップSP25において決定されたサンプル数の波形データがバッファWB1,2上で得られることになる。次に処理がステップSP28に進むと、曲ファイルの内容が終了したか否か、または、ストップボタン87(ないしアボートボタン88)がマウスでクリックされたか否かが判定される。両者の何れの条件も否定的であった場合には「NO」と判定され、処理はステップSP32に進む。
【0042】
ここでは、RAM23に蓄積されている波形データ量が第1所定量に達したか否かが判定される。ここで「YES」と判定されると、処理はステップSP33に進む。ここでは、図16に示すサブルーチン(詳細は後述する)が呼び出され、該波形データに対して圧縮処理が施され、得られた圧縮データがRAM23に蓄積される。次に処理がステップSP34に進むと、この圧縮処理が施された波形データ量に応じて、進行状況グラフ表示欄83、記録状況表示部84およびディスク限界表示部85の表示内容が更新される。
【0043】
次に、処理がステップSP35に進むと、RAM23に蓄積されている圧縮データ量が第2所定量に達したか否かが判定される。ここで「YES」と判定されると、処理はステップSP36に進み、該圧縮データが波形ファイルに転送される。なお、転送バッファ領域における波形データ量が上記第1所定量に達していない場合はステップSP32〜36はスキップされる。次に、処理はステップSP25に戻り、次に生成すべきサンプル数が決定される。以後、ステップSP25以降の動作が繰返される。
【0044】
同様に、圧縮データ量が第2所定量に達していない場合は、ステップSP35において「NO」と判定され、圧縮データが波形ファイルに転送されていない状態でステップSP25以降の動作が繰返されることになる。そして、曲ファイルの内容が終了した場合、あるいは、ストップボタン87(ないしアボートボタン88)がマウスでクリックされた場合はステップSP28において「YES」と判定され処理はステップSP29に進む。
【0045】
ここでは、転送バッファ領域に残っている波形データに対して圧縮処理が行われ、圧縮データが生成される。次に処理がステップSP30に進むと、未だ波形ファイルに転送されていない圧縮データが波形ファイルに転送される。そして、処理がステップSP31に進むと、この波形ファイルがクローズされ、処理はメインルーチンに戻る。以後、この生成された波形ファイルを解凍し再生することにより、ユーザは生成された楽音波形を聞くことができる。一方、アボートボタン88が操作された場合には、上記ステップSP29で残っている波形データを破棄し、上記ステップSP31で波形ファイルを破棄する。
【0046】
2.10.圧縮処理の詳細
ここで、上記ステップSP33において呼び出される圧縮処理サブルーチンの処理内容を図16を参照し説明する。図において処理がステップSP81に進むと、サブバンドフィルタ処理が実行される。すなわち、波形データに対してサブバンドを分析するフィルタ処理が施され、各サブバンドの周波数サンプルが求められる。
【0047】
次に、処理がステップSP82に進むと、該波形データの高速フーリエ変換処理により、波形データの周波数分析が行われる。次に、処理がステップSP83に進むと、該周波数分析結果に基づいて、マスキング効果の音響心理モデルが計算され、各サブバンドで許容されるノイズレベルが求められる。そして、各サブバンドの出力の信号レベルと、上記許容されるノイズレベルとに基づいて、各サブバンドに割り当てられるビット数が決定される。
【0048】
次に、処理がステップSP84に進むと、割り当てられたビット数に基づいて、各サブバンドの周波数サンプルのビットが削除され、これによって波形データが圧縮される。得られた圧縮データは、RAM23内の所定領域に保存される。なお、過去に得られた圧縮データが存在する場合にはこれに続けて保存される。
【0049】
3.実施形態の効果
(1)本実施形態においては、フレーム周期イベント処理ルーチン(図10)によって波形データを生成する場合、フレーム周期メッセージが発生したことを条件として波形データが合成される。すなわち、フレーム周期メッセージが発生すると、必ずステップSP43が実行され、前回のフレームにおける波形データの生成処理が完了しているか否かについては関知されない。一方、波形データ保存ルーチンによって波形データを生成する場合は、必ず前回の波形データの生成が完了したことが条件になる。換言すれば、音源処理(ステップSP27)が2回目以降に実行される場合は、必ず前回の音源処理が完了した後である。
【0050】
このように、本実施形態においては、波形データの用途(リアルタイムに再生するか、あるいは波形ファイルを作成するか)に応じて、波形データ生成の開始条件を適切に定めることができる。これにより、リアルタイムに再生する場合は正確なタイミングで波形データを生成することができ、波形ファイルを作成する場合には必要なモジュールを全て動作させることができるから、高い精度の楽音波形を得ることができる。
【0051】
リアルタイム再生時の動作をまとめたものを図12(a)に示す。図示のように、曲データの再生および波形データの生成処理は、タイマ24の出力に基づいてオペレーティングシステムが発生する「テンポクロック周期」および「フレーム周期」のタイマメッセージによって決定される。一方、波形データを波形ファイルに保存する際の動作をまとめたものを同図(b)に示す。図示のように、曲データの再生および波形データの生成処理のタイミングは、前のフレームにおける波形データ生成処理に要した長さに応じて任意に設定される。
【0052】
(2)さらに、本実施形態においては、波形データ生成の開始条件を、リアルタイム再生の途中で変更することが可能である。従って、再生開始ボタン62をマウスでクリックして楽曲の最初から再生を開始し、所望の部分に達したところで波形データ記録ボタン71をクリックすることにより、ユーザは楽曲の所望の部分についてのみ波形データを得ることができる。
【0053】
(3)さらに、本実施形態においては、波形データを保存する際に圧縮処理を実行するため、ハードディスク26あるいはリムーバブルディスク27等、記録媒体の所要容量を削減することが可能である。例えば、連続したある時間長を有する波形データを一旦記録した後で当該波形データを圧縮処理する場合、当該記録媒体には少なくともその波形データ全体を記録できるだけの容量が必要になる。これに対し、本実施形態では、生成する波形データを圧縮しながら記憶媒体に記録しているため、波形データを一旦記録した後に当該波形データを圧縮処理する場合と比較して同じ記憶容量でより長時間の波形データを一度に記録できる。
【0054】
4.変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
【0055】
(1)上記実施形態においては、リアルタイム再生を行う場合であっても波形ファイルの作成を行う場合であっても同一の音源モジュールおよび効果モジュールを使用することができる。しかし、リアルタイム再生を行う場合はフレーム周期内に波形データの計算を完了させなければ種々の不具合が生じるため、能力の低いCPUでリアルタイム再生を行おうとする場合には、処理負担の軽い代用モジュールを選択するようにすればよい。
【0056】
この代用モジュールには、予め正規のモジュールと同一のプログラムナンバおよびバンクナンバを割り当てておき、リアルタイム再生を行うか否かに応じて自動的に切り替えるようにしておくとよい。例えば、CPUが自分の演算能力を検出し、各モジュールの負荷と比較して、正規モジュールと代用モジュールの何れをリアルタイム生成用のモジュールとして使用するかを自動決定することができる。または、各々の正規のモジュールに対してリアルタイム生成時に何れの代用モジュールを使用するかをユーザが指定できるようにしても好適である。
ここで、再生する曲ファイルの中で指定されている音源モジュールないし効果モジュールを正規モジュールと呼び、該正規モジュールの代わりに使用可能な音源モジュールないし効果モジュールを代用モジュールと呼ぶことにする。なお、正規モジュールは、ユーザが曲ファイルをエディットすることにより変更可能である。
【0057】
後者の場合、ユーザの所定の操作によって図13に示すようなパート設定ウィンドウ90を表示器28に表示するようにしてもよい。図において91はパート番号表示欄であり、「1」〜「16」のパート番号が上から下に向かって表示される。92は音色名表示欄であり、各パートに割り当てられた音色名が表示される。93は正規モジュール名表示欄であり、該パートに割り当てられた正規の(波形ファイルの生成に使用される)音源モジュール名が表示される。
【0058】
また、94は代用モジュール名表示欄であり、リアルタイム演奏時に正規モジュールに代えて使用される音源モジュール名が表示される。なお、代用モジュール名が「−」になっている欄は、正規モジュールがそのまま使用されることを示す。従って、図示の例にあっては、パート1の「サックス2」の音色に対して、波形ファイルの生成時には「金管モデル2」(物理モデル音源)が使用され、リアルタイム演奏時には「PCM音源1」が使用されることになる。
【0059】
その他、パート設定ウィンドウ90には、各種のレベルを設定する欄が設けられている。これらの欄は各音源モジュールからバッファWB1〜7に対するセンドレベルの設定のために用いられるものであり、詳細については特願平10−133761号に詳述されている。ユーザは所望の欄にカーソルを合わせることによってその内容を変更することが可能であり、これにより、全ての正規モジュールに対して任意の代用モジュールを割り当てることができる。
上記例においては、「金管モデル2」(物理モデル音源)の代用モジュールとして「PCM音源1」を割り当てたが、その他にも種々の割り当てが可能である。例えば、6オペレータのFM音源代用モジュールとして4オペレータあるいは2オペレータのFM音源を割り当ててもよく、サンプリング周波数48kHzで音色フィルタ付きのFM音源の代用モジュールとしてサンプリング周波数24kHzで音色フィルタ無のFM音源を割り当てることもできる。
なお、各音源モジュール毎に、他のどの音源モジュールで代用可能であるかを示す代用情報データを記憶し、該代用情報に基づいて代用モジュールを自動決定ないし手動指定するようにしてもよい。さらに、この代用情報データをユーザがエディットできるようにしてもよい。
【0060】
(2)上記実施形態においては、楽音合成システムのプログラムは全てパーソナルコンピュータにインストールされていることを前提として説明したが、これらのプログラムをCD−ROM、フロッピーディスク等の記録媒体に格納して頒布してもよい。
【0061】
(3)上記実施形態においては、波形データに圧縮処理を施して波形ファイルに転送したが、圧縮処理を施すことなく波形データを転送するようにしてもよい。具体的には、図9のステップSP32〜36とステップSP29〜31を以下のように変更する。
ステップSP32では、RAM23に蓄積されている波形データ量を、圧縮の単位である「第1の所定量」と比較する代りに転送の単位である「第2の所定量」と比較し、第2所定量に達している場合はステップSP33に処理を移行する。
ステップSP33では、何も処理行わずに処理をステップSP34に移行する。
ステップSP34では、圧縮処理の施されていない波形データのデータ量に応じて、進行状況グラフ表示欄83、記録状況表示部84およびディスク限界表示部の表示内容を更新する。
次にステップSP35では、判断処理を行わず、無条件にステップSP36に処理を移行する。
ステップSP36では、RAM23上の圧縮されていない波形データが記憶媒体上の波形ファイルに転送される。
以上のステップSP32〜36の処理により、ステップSP27で生成された波形データのデータ量が所定量に達する毎に、(圧縮されずに)そのまま波形ファイルに転送される。
ステップSP29では、何も処理行わずに処理をステップSP30に移行する。
ステップSP30では、(圧縮されていない)残りの波形データをそのまま波形ファイルに転送する。
ステップSP31では、波形ファイルをクローズする。
以上のステップSP29〜31の処理により、ストップボタン87がマウスでクリックされたのに応じて、そのとき転送バッファに残っている波形データが、(圧縮されずに)そのまま波形ファイルに転送された後、当該波形ファイルがクローズされることとなる。
【0062】
【発明の効果】
以上説明したようにこの発明によれば、各区間の波形データの生成開始条件を該波形データの用途等に応じて変更できるから、処理能力に応じて最適な状態で楽音波形を生成できる。
【図面の簡単な説明】
【図1】本発明の一実施形態の楽音合成システムのブロック図である。
【図2】波形インターフェース30およびRAM23の詳細構成を示すブロック図である。
【図3】上記実施形態のメインルーチンのフローチャートである。
【図4】表示器28におけるメインウィンドウ50の表示例を示す図である。
【図5】表示器28における波形データ保存ウィンドウ80の表示例を示す図である。
【図6】上記実施形態のサブルーチンのフローチャートである。
【図7】上記実施形態のサブルーチンのフローチャートである。
【図8】上記実施形態のサブルーチンのフローチャートである。
【図9】上記実施形態のサブルーチンのフローチャートである。
【図10】上記実施形態のサブルーチンのフローチャートである。
【図11】上記実施形態のサブルーチンのフローチャートである。
【図12】上記実施形態の動作概要を示す図である。
【図13】上記実施形態の変形例におけるパート設定ウィンドウ90の表示例を示す図である。
【図14】音源モジュールの動作説明図である。
【図15】効果モジュールの動作説明図である。
【図16】圧縮処理サブルーチンのフローチャートである。
【符号の説明】
20……CPUバス、21……CPU、22……ROM、23……RAM、24……タイマ、25……MIDIインターフェース、26……ハードディスク、27……リムーバブルディスク、28……表示器、29……キーボード&マウス、30……波形インターフェース、31……ADコンバータ、32……第1DMAコントローラ、33……サンプリングクロック発生器、34……第2DMAコントローラ、35……DAコンバータ、36……波形テーブル領域、37……入力バッファ領域、38……出力バッファ領域、50……メインウィンドウ、51……インジケータ部、52……テンポインジケータ、53……テンポ設定ボタン、54……キーインジケータ、55……キー設定ボタン、56……音量インジケータ、57……音量設定ボタン、58……選曲ボタン、60……再生操作ボタン群、61……ストップボタン、62……再生開始ボタン、71……波形データ記録ボタン、72……ヘルプボタン、73……終了ボタン、80……波形データ保存ウィンドウ、81……曲名表示欄、82……ファイル名表示欄、83……進行状況グラフ表示欄、84……記録状況表示部、85……ディスク限界表示部、87……ストップボタン、88……アボートボタン、90……パート設定ウィンドウ、91……パート番号表示欄、92……音色名表示欄、93……正規モジュール名表示欄、94……代用モジュール名表示欄。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a waveform data generation method, a waveform data storage method, a waveform data generation device, and a recording medium suitable for use in musical tone synthesis by software such as a personal computer.
[0002]
[Prior art]
A system for generating a musical tone waveform using a general-purpose personal computer has been proposed by the present applicant (JP-A-10-124060). In this system, waveform data for each frame (for example, 10 msec) is sequentially generated by a CPU of a personal computer based on MIDI data. The generated data is read out frame by frame by the DMA controller, converted to an analog signal via a DA converter, and sounded.
[0003]
[Problems to be solved by the invention]
However, when the algorithm for generating the waveform data is complicated or when the processing capacity of the CPU is low, the calculation of the waveform data is not completed within one frame, so that it is impossible to generate a musical tone waveform. there were. The present invention has been made in view of the above circumstances, and provides a waveform data generation method, a waveform data storage method, a waveform data generation device, and a recording medium that can generate a musical sound waveform in an optimum state according to processing capacity. It is an object.
[0004]
[Means for Solving the Problems]
According to a first aspect of the present invention, there is provided a waveform data generating method for generating waveform data based on performance information, wherein the waveform data generating a fixed or variable section of waveform data based on the performance information. A data generating step, a step of receiving a first command or a second command, a step of validating performance information in real time when the first command is received, and a predetermined timing when receiving the first command. Performing, as a generation start condition, instructing the waveform data generation process to generate waveform data of each section in real time based on performance information that is enabled in real time; Reproducing the waveform data of each section generated in real time in response to the second command, and receiving the second command, the processing of the waveform data generating step And performing the non-real-time generation of the waveform data of each section as a generation start condition, and receiving the second command, the non-real-time generation of the performance information corresponding to each of the specified sections for the non-real-time generation. And receiving the second command and storing the non-real-time generated waveform data in the memory based on the non-real-time enabled performance information in the waveform data generating step in the waveform data generating step. It is characterized by having.
According to a second aspect of the present invention, in the waveform data generating method for generating waveform data for each fixed or variable section based on performance information, the waveform data is generated by a plurality of different generation methods based on the performance information. Generating a plurality of waveform data to be generated, receiving a first command or a second command, and generating the plurality of waveform data according to whether the received command is the first command or the second command. A step of selecting one of the steps and, upon receiving the first command, instructing the selected step to generate waveform data in each section for the selected step, with a condition that a predetermined timing has been reached as a generation start condition. And receiving the second command, with the completion of the generation of the waveform data in the previous section as a generation start condition, with respect to the selected waveform data generation step, Serial and having a step of instructing generation of waveform data in each section.
According to the third aspect of the present invention, in the waveform data storage method for generating and storing waveform data based on performance information, the waveform data is generated while generating the waveform data in real time based on the performance information. A step of reproducing waveform data, a step of stopping the reproduction halfway, specifying a stop position in the performance information, and a step of generating non-real-time waveform data corresponding to the performance information of the part after the stop position. Storing the non-real-time generated waveform data in a memory.
Further, in the configuration according to claim 4, in the waveform data storage method for generating and storing waveform data based on performance information, the waveform data is generated while generating the non-real-time waveform data based on the performance information. A step of storing waveform data in a memory; a step of displaying position information indicating a position where the non-real-time generation is performed on the waveform data corresponding to the performance information; and a stop instruction during the non-real-time generation. And stopping the non-real-time generation and the storage of the waveform data when the stop instruction is received.
According to a fifth aspect of the present invention, the method according to any one of the first to fourth aspects is performed.
According to a sixth aspect of the present invention, a program for executing any one of the first to fourth methods is recorded.
[0005]
BEST MODE FOR CARRYING OUT THE INVENTION
1. Hardware configuration of the embodiment
A hardware configuration of a tone synthesis system according to an embodiment of the present invention will be described with reference to FIG. In the figure, reference numeral 21 denotes a CPU, which controls each unit via the CPU bus 20 according to a control program described later. A ROM 22 stores an initial program loader and the like. A RAM 23 is loaded with various programs and data described later, and is accessed by the CPU 21. Reference numeral 24 denotes a timer which generates an interrupt to the CPU 21 at predetermined time intervals.
[0006]
A MIDI interface 25 exchanges MIDI signals with an external MIDI device (not shown). A hard disk 26 stores an operating system, various drivers, various application programs, performance information, and the like. Reference numeral 27 denotes a removable disk, which is provided with a CD-ROM, an MO drive, and the like, and stores the same information as the hard disk 26.
[0007]
Reference numeral 28 denotes a display, which is constituted by a CRT or a liquid crystal display or the like, and displays various information to a user. Reference numeral 29 denotes a keyboard and mouse, which inputs various information to the CPU 21 by a user operation. Reference numeral 30 denotes a waveform interface for inputting / outputting an analog signal waveform.
[0008]
Here, details of the waveform interface 30 and the RAM 23 will be described with reference to FIG. In the figure, reference numeral 31 denotes an AD converter, which converts an input analog signal into a digital signal. A sampling clock generator 33 generates a clock signal having a predetermined sampling frequency. Reference numeral 32 denotes a first DMA controller which samples an output signal of the AD converter 31 in synchronization with the clock signal, and transfers the sampling result to a designated location in the RAM 23 by direct memory access.
[0009]
Reference numeral 34 denotes a second DMA controller which reads digital waveform data stored in the RAM 23 by direct memory access in synchronization with a clock signal output from the sampling clock generator 33. A DA converter 35 converts the read digital waveform data into an analog signal and outputs the analog signal.
[0010]
In the RAM 23, reference numeral 36 denotes a waveform table area for storing templates of various waveform data. Reference numeral 37 denotes an input buffer area in which waveform data is written by the first DMA controller 32. An output buffer area 38 stores the waveform data read by the second DMA controller 34. The output buffer area 38 is a ring buffer whose read address is determined by a cyclically incremented read pointer.
[0011]
2. Operation of the embodiment
2.1. Main routine
Next, the operation of the tone synthesis system of this embodiment will be described. The tone synthesis system is a type of application program for a general-purpose personal computer, and operates under the control of an operating system. When a predetermined operation is performed in the shell program of the operating system, a main routine of the present system shown in FIG. 3 is started. In the figure, when the process proceeds to step SP101, predetermined initial settings are performed. Next, when the process proceeds to step SP102, the main window 50 shown in FIG.
[0012]
In the figure, reference numeral 51 denotes an indicator section, on which the name of a music piece to be reproduced is displayed. Reference numeral 52 denotes a tempo indicator, which indicates a tempo when reproducing the waveform data. Reference numeral 53 denotes a tempo setting button for setting the tempo. Reference numeral 54 denotes a key indicator indicating the height of a key when reproducing waveform data, and reference numeral 55 denotes a key setting button for setting the key. Reference numeral 56 denotes a volume indicator indicating the reproduction volume of the waveform data, and reference numeral 57 denotes a volume setting button for setting the volume.
[0013]
Reference numeral 58 denotes a music selection button, which designates a file or a directory in which MIDI data (performance information) to be reproduced is stored. Reference numeral 60 denotes a group of playback operation buttons for specifying operations such as start, end, pause, fast forward, rewind, auto reverse, and skip of waveform data playback. In particular, the start and end of the reproduction are performed by clicking the reproduction start button 62 and the stop button 61 with a mouse. Reference numeral 71 denotes a waveform data recording button, which starts recording of waveform data by clicking with a mouse after a waveform file is determined. Next, a help button 72 displays the contents of a predetermined help file when clicked with a mouse. An end button 73 instructs the end of the tone synthesis system of the present embodiment.
[0014]
Returning to FIG. 3, when the process proceeds to step SP103, it is determined whether any message has been received from the operating system. If "NO" here, the same steps are repeated until the message is detected. Then, when a message is detected, the process proceeds to step SP104, and a process according to the content of the message is performed. Thereafter, the processing of steps SP103 and SP104 is repeated.
[0015]
2.2. Timer processing in operating system
An application program such as the tone synthesis system of the present embodiment can set a timer message for the operating system. When the timer message is set, the timer message is transmitted from the operating system to the application program at predetermined intervals. In the present embodiment, a timer message is transmitted from the operating system to the tone synthesis system every two cycles of the “tempo clock cycle” and the “frame cycle”.
[0016]
Here, the “tempo clock” is a unit of timing at which a MIDI event is generated, and is a period of “1/16” of a quarter note. Therefore, the cycle of the tempo clock is changed each time the tempo is set by the tempo setting button 53 or the like. Further, in the present embodiment, the waveform data is subdivided for each short time and synthesized. The “frame” is a cycle that is a unit of time for synthesizing the waveform data, and is set to, for example, “10 msec”. Here, in the operating system, the priority of the timer message processing is set low, so that the timer message may sometimes be delayed or dropped.
[0017]
2.3. Event processing of music selection button 58
When music selection button 58 is clicked on with a mouse, a message to that effect is transmitted from the operating system to the tone synthesis system. When such a message is detected in step SP103, a child window prompting the user to specify a music file (MIDI file) name is displayed on the display 28 (not shown). Here, when the user specifies the song file name and closes the child window, the song file name is stored, and after the child window is closed, the process returns to the main routine.
[0018]
2.4. Event processing of playback start button 62
When the reproduction start button 62 is clicked on with a mouse after the music file name is specified, the operating system notifies the tone synthesis system of this fact. In the tone synthesis system, the reproduction start routine shown in FIG. Is done. In the figure, when the processing proceeds to step SP1, the current position of the specified music file (the head position in the initial state, the position where the pause operation was performed during the pause, or the position specified by the operator's position specification operation) From that position) is prepared. Further, the transmission of a timer message for each frame period is requested to the operating system. Next, when the process proceeds to step SP2, an instruction to start an operation of a software sound source described later is issued. Next, when the process proceeds to step SP3, the flag RUN is set to "1", and the process returns to the main routine.
[0019]
2.5. Tempo clock event processing
When a tempo clock message is supplied from the operating system in the main routine, a tempo clock event processing routine shown in FIG. 8 is started in step SP104. In the figure, when the process proceeds to step SP11, it is determined whether or not the flag RUN is "1". If "NO" is determined here, the process of this routine ends immediately. On the other hand, if the flag RUN is “1”, that is, if the above-described event processing of the reproduction start button 62 has been performed, “YES” is determined, and the process proceeds to step SP12.
[0020]
In step SP12, a predetermined tempo counter (variable) is incremented by “1”. Here, the tempo counter is initialized to "0" at the time of initial setting. Therefore, the tempo counter becomes a variable for counting the number of tempo clocks after the flag RUN becomes “1”. Next, when the process proceeds to step SP13, the music file prepared in step SP1 is referred to, and it is determined based on the tempo counter whether or not the time to reproduce any event has been reached.
[0021]
If "YES" is determined here, the process proceeds to step SP14, and a MIDI event at the time is generated. For example, when generating any note-on event, a sounding channel for the event is assigned. That is, an area for storing various tone generation parameters and the like for the note-on event is secured in the RAM 23, and tone generation parameters are set according to the type of sound source. If the event is a note-off event, the corresponding tone generation channel is released after silence processing is performed as necessary.
[0022]
2.6. Frame cycle event processing
When a frame cycle message is supplied from the operating system in the main routine, a frame cycle event processing routine shown in FIG. 10 is started in step SP104. In the figure, when the process proceeds to step SP41, the number of samples to be generated is determined according to the number of frames to be generated this time. Although the number of frames to be generated is generally “1”, if a frame period message is missing, the number of frames is added by the number of missing frames.
[0023]
Next, when the process proceeds to step SP42, a buffer area in which waveform data for the number of frames is to be written is prepared. Next, when the process proceeds to step SP43, a sound source processing routine shown in FIG. 11 is started. As will be described later in detail, the sound source processing routine writes the waveform data for the frame into the buffer area previously reserved. Next, when the process proceeds to step SP44, the waveform data is transferred to the output buffer area 38 in order to pass the generated waveform data to the waveform interface 30. When the above processing ends, the processing returns to the main routine. The waveform data transferred to the output buffer area 38 is read by the second DMA controller 34 one sample at a time in each sampling cycle, converted into an analog signal by the DA converter 35, and output by the operation described above.
[0024]
As described above, the output buffer area 38 is a ring buffer, and its read address is determined by a cyclically incremented read pointer. The address at which the newly generated waveform data is stored is determined by the write pointer that is cyclically incremented similarly to the read pointer. The write pointer precedes the read pointer by several frames. As a result, the write pointer and the read pointer indicate two addresses that circulate in the output buffer area 38 while keeping the interval substantially constant.
[0025]
When the frame period message is dropped once or several times consecutively, the distance between the write pointer and the read pointer is temporarily reduced by the number of times. However, the number of times the next time step SP41 is called is reduced. The number of generated frames and the number of samples are determined so as to recover. That is, the interval between the read pointer and the write pointer serves as a time margin for coping with a missing frame period message.
[0026]
2.7. Sound source processing
In the present embodiment, the generation of the waveform data is performed by a software module running on the CPU 21. Software modules that generate waveform data are broadly divided into sound source modules and effect modules. The sound source module is a module that generates waveform data by realizing software such as an FM sound source, a PCM sound source, and a physical model sound source. The effect module is a module that applies effects such as reverb and chorus to already obtained waveform data. is there.
[0027]
The RAM 23 is provided with a buffer for transferring waveform data between each sound source module and the effect module. Here, the flow of waveform data between each module and the buffer is shown in FIG. 14 and FIG. In FIG. 14, the waveform data of part 1 is multiplied by five send levels, and the results of the multiplication are written to the buffers WB1, WB2, WB5, and WB7. After the insertion effect IEF1 is applied to the waveform data of part 2, the send levels of the four systems are multiplied, and the multiplication results are added to the buffers WB1 to WB4. That is, a new multiplication result is added to the contents of the original buffers WB1 to WB4. In this way, the waveform data corresponding to the parts 1 to 16 is written to the buffers WB1 to WB7 at various send levels after performing an insertion effect as necessary.
[0028]
Next, in FIG. 15, an effect EF1 is applied to the contents of the buffers WB3 and WB4 by any of the effect modules, and the result is multiplied by four send levels. , 2, 5, and 6 are added. Next, an effect EF2 is applied to the contents of the buffers WB5, WB6, and the result is multiplied by the send levels of the four systems. . Then, the effect EF3 is applied to the contents of the buffer WB7, and the result is multiplied by the send levels of the two systems, and the result of each multiplication is added to the contents of the buffers WB1, WB2.
[0029]
The contents of the buffers WB1 and WB2 are passed to the calling routine as the final sound source processing result. That is, in the frame cycle event processing routine (FIG. 10), the contents of the buffers WB1 and WB2 are transferred to the output buffer area 38 according to the write pointer. As described above, in the present embodiment, by defining input / output buffers and send levels of a plurality of sound source modules and effect modules, a musical sound waveform can be generated in various modes.
[0030]
If the input / output buffer and the send level are determined in advance, a desired mixing result can be obtained by sequentially executing the sound source module and the effect module. The flowchart is shown in FIG. In the figure, in steps SP51 to SP69, the sound source module and the insertion effect module are sequentially executed, and the waveform data is stored in the buffers WB1 to WB7. Next, in steps SP70 to SP79, the effect modules are sequentially executed, and the final waveform data is stored in the buffers WB1 and WB2. The method of generating a musical tone waveform in this manner is described in detail in Japanese Patent Application Laid-Open No. 10-124060 and Japanese Patent Application No. 10-133761.
In the sound source processing of FIG. 11, n sound source modules and m effect modules are sequentially executed. However, the number and contents of the modules to be executed in the sound source processing are controlled by the user's operation and control. It can be arbitrarily changed according to the code or the like. As the sound source module, types such as a physical model sound source, a PCM sound source, an FM sound source, and a speech synthesis sound source can be selected. Further, even among the same sound source types, sound source modules having different algorithms and sampling frequencies can be selected. On the other hand, as the effect module, reverb, chorus, distortion, compressor, and the like can be selected.
[0031]
2.8. Event processing of stop button 61
When the stop button 61 is clicked on with a mouse, the operating system notifies the tone synthesis system of this fact, and in the tone synthesis system, a reproduction stop routine shown in FIG. 7 is started. In the figure, when the process proceeds to step SP6, the flag RUN is set to "0". As a result, no substantial processing is performed thereafter even when the tempo clock processing routine is called.
[0032]
Next, when the process proceeds to step SP7, an instruction to stop the operation of the software sound source is issued. In other words, similarly to the case where a note-off event has occurred for each sounding channel, the corresponding sounding channel is released after silence processing is performed as necessary. Next, when the processing proceeds to step SP8, the reproduction stop processing of the music file is performed, and the processing returns to the main routine.
[0033]
2.9. Event processing of the waveform data recording button 71
When the waveform data recording button 71 is clicked on with a mouse, the operating system notifies the tone synthesis system of this fact, and the tone data synthesis system starts the waveform data storage routine shown in FIG. In the figure, when the process proceeds to step SP21, reproduction from the current position of the music file is prepared.
[0034]
Here, the "current position" is the head of the music file when the selected music file has not been reproduced yet, and is the position where the music file is being reproduced when the music file is being reproduced. In other words, in the present embodiment, the recording of the waveform data can be performed immediately after the music file is designated, and the recording of the waveform data is started from a desired position during the reproduction of the music file in real time. You can also. Since the sound generation process is not performed during the recording of the waveform, the operating system is requested to stop the timer messages of the “tempo clock cycle” and the “frame cycle”.
[0035]
Next, when the process proceeds to step SP22, a window for prompting input of a waveform file name is displayed on the display unit. When this waveform file name is specified by the user, the file is opened. If the corresponding file name does not exist, a new file is created and opened.
[0036]
A radio button for specifying whether to compress the waveform file is also displayed as an option for specifying the waveform file name. When this radio button is clicked with a mouse, the waveform data is recorded in a file while being compressed. Next, when the process proceeds to step SP23, a waveform data storage window 80 shown in FIG. In FIG. 5, reference numeral 81 denotes a song title display field, on which the song title previously shown on the indicator unit 51 is displayed.
[0037]
Reference numeral 82 denotes a file name display field, on which the previously specified waveform file name is displayed. Reference numeral 83 denotes a progress graph display section, which includes a time (0'00.000) corresponding to the reproduction start position of the music file, a time (2'57.930) corresponding to the last position of the music file, and The time indicating the progress of the generation status (1′36.600) is numerically displayed. In addition, the progress of the generation status with the time from the reproduction start position to the final position as 100% is displayed as a percentage graph. Reference numeral 84 denotes a recording status display unit, which displays the time length of the waveform data stored in the waveform file up to the present and the size of the corresponding waveform file.
[0038]
Reference numeral 85 denotes a disk limit display unit, which displays the free space in the drive (for example, the hard disk 26 or the removable disk 27) to which the waveform file belongs, and the time of recordable waveform data corresponding to the free space. Reference numeral 86 denotes a total size display field, which displays the size of the waveform data when the generated waveform data is recorded by reproducing all of the music file from the reproduction start position to the end position. A stop button 87 is provided for instructing to end the recording of the waveform data halfway and leave a waveform file for storing the waveform data generated up to that point. An abort button 88 is provided to stop recording the waveform data and discard the result.
[0039]
Returning to FIG. 9, when the process proceeds to step SP24, a transfer buffer area for temporarily storing waveform data is secured. Next, when the process proceeds to step SP25, the number of waveform data samples to be generated in the sound source processing routine (FIG. 11) is determined. As described in step SP41, the number of samples is determined in accordance with the omission of the frame period message in the mode in which the sound generation process is performed in real time. However, in the mode of recording waveform data, there is no time limit. It is preferable to select the number of samples with the highest efficiency according to the convenience of the CPU.
[0040]
Next, when the process proceeds to step SP26, a MIDI event corresponding to the range of the waveform data generated this time is searched from the music file, and if an event exists, a corresponding MIDI event is generated. That is, similar to step SP14, when a certain note-on event is generated, a sounding channel for the event is assigned, and when a note-off event is generated, mute processing is performed as necessary. The tone of the corresponding sounding channel starts to decay. Then, after the sound source processing is performed several times, when the musical tone is sufficiently attenuated, the sound channel is released.
[0041]
Next, when the process proceeds to step SP27, a sound source processing routine (FIG. 11) is called. As a result, the waveform data of the number of samples determined in step SP25 is obtained on the buffers WB1 and WB2. Next, when the process proceeds to step SP28, it is determined whether or not the content of the music file has been completed, or whether or not the stop button 87 (or the abort button 88) has been clicked with a mouse. If both conditions are negative, "NO" is determined, and the process proceeds to step SP32.
[0042]
Here, it is determined whether or not the amount of waveform data stored in the RAM 23 has reached a first predetermined amount. If “YES” is determined here, the process proceeds to step SP33. Here, a subroutine (to be described in detail later) shown in FIG. 16 is called, the waveform data is subjected to a compression process, and the obtained compressed data is stored in the RAM 23. Next, when the processing proceeds to step SP34, the display contents of the progress graph display section 83, the recording state display section 84, and the disc limit display section 85 are updated according to the amount of waveform data subjected to the compression processing.
[0043]
Next, when the process proceeds to step SP35, it is determined whether the amount of compressed data stored in the RAM 23 has reached the second predetermined amount. If "YES" is determined here, the process proceeds to step SP36, and the compressed data is transferred to the waveform file. If the amount of waveform data in the transfer buffer area has not reached the first predetermined amount, steps SP32 to SP36 are skipped. Next, the process returns to step SP25, and the number of samples to be generated next is determined. Thereafter, the operation after step SP25 is repeated.
[0044]
Similarly, if the compressed data amount has not reached the second predetermined amount, it is determined "NO" in step SP35, and the operation after step SP25 is repeated with the compressed data not being transferred to the waveform file. Become. If the contents of the music file have been completed, or if the stop button 87 (or the abort button 88) has been clicked on with a mouse, "YES" is determined in the step SP28, and the process proceeds to a step SP29.
[0045]
Here, compression processing is performed on the waveform data remaining in the transfer buffer area to generate compressed data. Next, when the process proceeds to step SP30, the compressed data not yet transferred to the waveform file is transferred to the waveform file. Then, when the process proceeds to step SP31, the waveform file is closed, and the process returns to the main routine. Thereafter, by decompressing and reproducing the generated waveform file, the user can hear the generated tone waveform. On the other hand, when the abort button 88 is operated, the remaining waveform data is discarded in step SP29, and the waveform file is discarded in step SP31.
[0046]
2.10. Details of the compression process
Here, the processing content of the compression processing subroutine called in step SP33 will be described with reference to FIG. In the figure, when the process proceeds to step SP81, a sub-band filter process is executed. That is, a filter process for analyzing the subband is performed on the waveform data, and a frequency sample of each subband is obtained.
[0047]
Next, when the processing proceeds to step SP82, the frequency analysis of the waveform data is performed by the fast Fourier transform processing of the waveform data. Next, when the process proceeds to step SP83, a psychoacoustic model of a masking effect is calculated based on the frequency analysis result, and a noise level allowed in each subband is obtained. Then, the number of bits allocated to each subband is determined based on the signal level of the output of each subband and the allowable noise level.
[0048]
Next, when the process proceeds to step SP84, the bits of the frequency samples of each subband are deleted based on the allocated number of bits, thereby compressing the waveform data. The obtained compressed data is stored in a predetermined area in the RAM 23. Note that if there is compressed data obtained in the past, it is stored subsequently.
[0049]
3. Effects of the embodiment
(1) In the present embodiment, when waveform data is generated by the frame cycle event processing routine (FIG. 10), the waveform data is synthesized on condition that a frame cycle message has occurred. That is, when a frame cycle message occurs, step SP43 is always executed, and it is not determined whether or not the waveform data generation processing in the previous frame has been completed. On the other hand, when generating the waveform data by the waveform data saving routine, the condition is that the previous generation of the waveform data must be completed. In other words, when the sound source processing (step SP27) is performed for the second time or later, it is always after the previous sound source processing is completed.
[0050]
As described above, in the present embodiment, the start condition of waveform data generation can be appropriately determined according to the use of the waveform data (whether to reproduce in real time or create a waveform file). As a result, when reproducing in real time, waveform data can be generated at an accurate timing, and when creating a waveform file, all necessary modules can be operated, so that a highly accurate musical sound waveform can be obtained. Can be.
[0051]
FIG. 12A shows a summary of operations during real-time reproduction. As shown in the figure, the process of reproducing the music data and generating the waveform data is determined by timer messages of a “tempo clock cycle” and a “frame cycle” generated by the operating system based on the output of the timer 24. On the other hand, FIG. 2B summarizes the operation of saving the waveform data in the waveform file. As shown in the figure, the timing of the reproduction of the music data and the generation of the waveform data is arbitrarily set according to the length required for the waveform data generation in the previous frame.
[0052]
(2) Further, in the present embodiment, the start condition of the waveform data generation can be changed during the real-time reproduction. Therefore, by clicking the reproduction start button 62 with the mouse to start reproduction from the beginning of the music and clicking the waveform data recording button 71 when the desired part is reached, the user can obtain the waveform data only for the desired part of the music. Can be obtained.
[0053]
(3) Further, in the present embodiment, since the compression processing is executed when saving the waveform data, the required capacity of the recording medium such as the hard disk 26 or the removable disk 27 can be reduced. For example, in a case where the waveform data having a certain continuous time length is once recorded and then the waveform data is subjected to compression processing, the recording medium needs to have a capacity sufficient to record at least the entire waveform data. On the other hand, in the present embodiment, since the generated waveform data is recorded on the storage medium while compressing it, the waveform data is once recorded and then compressed with the same storage capacity as compared with the case where the waveform data is compressed. Long-time waveform data can be recorded at once.
[0054]
4. Modified example
The present invention is not limited to the embodiments described above, and various modifications are possible, for example, as follows.
[0055]
(1) In the above embodiment, the same sound source module and the same effect module can be used regardless of whether real-time reproduction is performed or a waveform file is created. However, when performing real-time reproduction, various problems occur unless the calculation of the waveform data is completed within the frame period. Therefore, when real-time reproduction is to be performed with a CPU having a low capacity, a substitute module with a light processing load is required. What is necessary is just to make it select.
[0056]
It is preferable to assign the same program number and bank number as the regular module to the substitute module in advance, and to automatically switch the substitute module according to whether or not to perform real-time reproduction. For example, the CPU can detect its own computing ability, compare it with the load of each module, and automatically determine which of the regular module and the substitute module is to be used as the module for real-time generation. Alternatively, it is preferable that the user can specify which substitute module to use for each of the regular modules at the time of real-time generation.
Here, a sound source module or an effect module specified in a music file to be reproduced is called a regular module, and a sound source module or an effect module that can be used in place of the regular module is called a substitute module. The regular module can be changed by the user editing the music file.
[0057]
In the latter case, a part setting window 90 as shown in FIG. 13 may be displayed on the display 28 by a predetermined operation of the user. In the figure, reference numeral 91 denotes a part number display field, in which part numbers "1" to "16" are displayed from top to bottom. Reference numeral 92 denotes a timbre name display field, in which a timbre name assigned to each part is displayed. Reference numeral 93 denotes a regular module name display field, in which a regular (used for generating a waveform file) sound source module name assigned to the part is displayed.
[0058]
Reference numeral 94 denotes a substitute module name display field, in which a sound source module name used in place of a regular module during real-time performance is displayed. The column where the substitute module name is "-" indicates that the regular module is used as it is. Therefore, in the example shown in the figure, the “brass model 2” (physical model sound source) is used for generating the waveform file for the tone color of “sax 2” of part 1, and the “PCM sound source 1” is used for real-time performance. Will be used.
[0059]
In addition, the part setting window 90 has columns for setting various levels. These columns are used for setting the send levels from the sound source modules to the buffers WB1 to WB7, and the details are described in Japanese Patent Application No. 10-133761. The user can change the contents by moving the cursor to a desired column, and thereby, any substitute module can be assigned to all the regular modules.
In the above example, "PCM sound source 1" is assigned as a substitute module for "brass model 2" (physical model sound source), but various other assignments are possible. For example, an FM sound source of 4 operators or 2 operators may be assigned as an FM sound source substitute module of 6 operators, and an FM sound source without a tone filter at a sampling frequency of 24 kHz is assigned as a substitute module of an FM sound source with a sampling frequency of 48 kHz and a tone filter. You can also.
Alternatively, for each sound source module, substitute information data indicating which other sound source module can be substituted may be stored, and the substitute module may be automatically determined or manually designated based on the substitute information. Further, the user may be able to edit the substitute information data.
[0060]
(2) In the above embodiment, the description has been made on the assumption that all the programs of the tone synthesis system are installed in the personal computer. However, these programs are stored in a recording medium such as a CD-ROM or a floppy disk and distributed. May be.
[0061]
(3) In the above embodiment, the waveform data is subjected to the compression processing and transferred to the waveform file. However, the waveform data may be transferred without performing the compression processing. Specifically, steps SP32 to SP36 and steps SP29 to SP31 in FIG. 9 are changed as follows.
In step SP32, instead of comparing the waveform data amount stored in the RAM 23 with the "first predetermined amount" which is a unit of compression, the amount is compared with a "second predetermined amount" which is a unit of transfer. If the predetermined amount has been reached, the process proceeds to step SP33.
In step SP33, the process proceeds to step SP34 without performing any processing.
In step SP34, the display contents of the progress graph display section 83, the recording state display section 84, and the disk limit display section are updated according to the data amount of the waveform data that has not been subjected to the compression processing.
Next, in step SP35, the determination process is not performed, and the process unconditionally proceeds to step SP36.
In step SP36, the uncompressed waveform data on the RAM 23 is transferred to a waveform file on a storage medium.
By the processing in steps SP32 to SP36 described above, every time the data amount of the waveform data generated in step SP27 reaches a predetermined amount, the waveform data is directly transferred (without compression) to the waveform file.
In step SP29, the process proceeds to step SP30 without performing any processing.
In step SP30, the remaining (uncompressed) waveform data is directly transferred to the waveform file.
In step SP31, the waveform file is closed.
According to the processing in steps SP29 to SP31, in response to the stop button 87 being clicked with the mouse, the waveform data remaining in the transfer buffer at that time is directly transferred (without compression) to the waveform file. , The waveform file is closed.
[0062]
【The invention's effect】
As described above, according to the present invention, the generation start condition of the waveform data of each section can be changed according to the use of the waveform data and the like, so that the tone waveform can be generated in an optimum state according to the processing capacity.
[Brief description of the drawings]
FIG. 1 is a block diagram of a musical sound synthesis system according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a detailed configuration of a waveform interface 30 and a RAM 23.
FIG. 3 is a flowchart of a main routine of the embodiment.
FIG. 4 is a diagram showing a display example of a main window 50 on the display device 28.
FIG. 5 is a diagram showing a display example of a waveform data saving window 80 on the display 28.
FIG. 6 is a flowchart of a subroutine of the embodiment.
FIG. 7 is a flowchart of a subroutine of the embodiment.
FIG. 8 is a flowchart of a subroutine of the embodiment.
FIG. 9 is a flowchart of a subroutine of the embodiment.
FIG. 10 is a flowchart of a subroutine of the embodiment.
FIG. 11 is a flowchart of a subroutine of the embodiment.
FIG. 12 is a diagram showing an outline of the operation of the embodiment.
FIG. 13 is a diagram showing a display example of a part setting window 90 in a modification of the embodiment.
FIG. 14 is an explanatory diagram of the operation of the sound source module.
FIG. 15 is an operation explanatory diagram of the effect module.
FIG. 16 is a flowchart of a compression processing subroutine.
[Explanation of symbols]
20 CPU bus, 21 CPU, 22 ROM, 23 RAM, 24 timer, 25 MIDI interface, 26 hard disk, 27 removable disk, 28 display, 29 ... keyboard & mouse, 30 ... waveform interface, 31 ... AD converter, 32 ... first DMA controller, 33 ... sampling clock generator, 34 ... second DMA controller, 35 ... DA converter, 36 ... waveform Table area, 37 Input buffer area, 38 Output buffer area, 50 Main window, 51 Indicator part, 52 Tempo indicator, 53 Tempo setting button, 54 Key indicator, 55 … Key setting button, 56… Volume indicator, 57… Volume setting Button 58, a music selection button, 60, a reproduction operation button group, 61, a stop button, 62, a reproduction start button, 71, a waveform data recording button, 72, a help button, 73, an end button, 80 …… Waveform data save window, 81 …… Song name display field, 82 …… File name display field, 83 …… Progress status graph display field, 84 …… Recording status display area, 85 …… Disc limit display area, 87 …… Stop button, 88: Abort button, 90: Part setting window, 91: Part number display field, 92: Tone name display field, 93: Regular module name display field, 94: Substitute module name display field

Claims (6)

演奏情報に基づいて波形データを生成する波形データ生成方法において、
演奏情報に基づいて一定または可変区間分の波形データを生成する波形データ生成過程と、
第1指令または第2指令を受信する過程と、
前記第1指令を受信すると、演奏情報をリアルタイムに有効化する過程と、
前記第1指令を受信すると、所定のタイミングに達したことを生成開始条件として、前記波形データ生成過程に対し、リアルタイムに有効化された演奏情報に基づく各区間の波形データのリアルタイム生成を指示する過程と、
前記第1指令を受信すると、前記指示に応じてリアルタイム生成された各区間の波形データを再生する過程と、
前記第2指令を受信すると、前記波形データ生成過程の処理が完了していることを生成開始条件として各区間の波形データのノンリアルタイム生成を指示する過程と、
前記第2指令を受信すると、ノンリアルタイム生成の指示された各区間に対応する演奏情報をノンリアルタイムに有効化する過程と、
前記第2指令を受信すると、前記波形データ生成過程において、ノンリアルタイムに有効化された演奏情報に基づいてノンリアルタイムに生成された波形データをメモリに記憶する過程と
を有することを特徴とする波形データ生成方法。
In a waveform data generation method for generating waveform data based on performance information,
A waveform data generation process of generating waveform data for a fixed or variable section based on performance information;
Receiving a first command or a second command;
Activating the performance information in real time upon receipt of the first command;
When the first command is received, the real-time generation of the waveform data of each section based on the performance information validated in real time is instructed to the waveform data generation process on the condition that the predetermined timing has been reached. Process
Receiving the first command, reproducing waveform data of each section generated in real time according to the command;
Receiving the second command, instructing non-real-time generation of waveform data of each section as a generation start condition that the processing of the waveform data generation process is completed;
Receiving the second command, validating the performance information corresponding to each of the designated sections for non-real-time generation in a non-real-time manner;
Receiving the second command, storing the waveform data generated in non-real time based on the performance information activated in non-real time in a memory in the waveform data generating step. Data generation method.
演奏情報に基づいて一定または可変区間毎に波形データを生成する波形データ生成方法において、
演奏情報に基づいてそれぞれ異なる複数の生成方式により波形データを生成する複数の波形データ生成過程と、
第1指令または第2指令を受信する過程と、
受信した指令が前記第1指令であるか前記第2指令であるかに応じて前記複数の波形データ生成過程の一つを選択する過程と、
前記第1指令を受信すると、所定のタイミングに達したことを生成開始条件として、選択された過程に対して、前記各区間における波形データの生成を指示する過程と、
前記第2指令を受信すると、前の区間における波形データの生成が完了したことを生成開始条件として、前記選択された波形データ生成過程に対して、前記各区間における波形データの生成を指示する過程と
を有することを特徴とする波形データ生成方法。
In a waveform data generation method for generating waveform data for each fixed or variable section based on performance information,
A plurality of waveform data generation processes for generating waveform data by a plurality of different generation methods based on performance information,
Receiving a first command or a second command;
A step of selecting one of the plurality of waveform data generation steps according to whether the received command is the first command or the second command;
Receiving the first command, assuming that a predetermined timing has been reached as a generation start condition, and instructing the selected process to generate waveform data in each section,
Receiving the second command and instructing the selected waveform data generation process to generate waveform data in each of the sections with the completion of generation of the waveform data in the previous section as a generation start condition. And a waveform data generation method.
演奏情報に基づいて波形データを生成して記憶する波形データ記憶方法において、
前記演奏情報に基づいてリアルタイムに波形データを生成しつつ、生成された波形データを再生する過程と、
前記再生を途中で停止し、演奏情報における停止位置を指定する過程と、
前記停止位置以降の部分の演奏情報に対応する波形データをノンリアルタイムに生成する過程と、
ノンリアルタイムに生成された波形データをメモリに記憶する過程と
を有することを特徴とする波形データ記憶方法。
In a waveform data storage method for generating and storing waveform data based on performance information,
A step of reproducing the generated waveform data while generating the waveform data in real time based on the performance information;
Stopping the playback in the middle and designating a stop position in the performance information;
A step of generating non-real-time waveform data corresponding to the performance information of the portion after the stop position,
Storing waveform data generated in non-real time in a memory.
演奏情報に基づいて波形データを生成して記憶する波形データ記憶方法において、
前記演奏情報に基づいて波形データをノンリアルタイム生成しつつ、生成された波形データをメモリに記憶する過程と、
前記演奏情報に対応した波形データ上における、前記ノンリアルタイム生成が実行されている位置を示す位置情報を表示する過程と、
前記ノンリアルタイム生成の途中で停止指示を受信する過程と、
前記停止指示を受信すると、前記ノンリアルタイム生成および前記波形データの記憶を中止する過程と
を有することを特徴とする波形データ記憶方法。
In a waveform data storage method for generating and storing waveform data based on performance information,
Storing the generated waveform data in a memory while generating the non-real time waveform data based on the performance information;
A step of displaying position information indicating a position where the non-real-time generation is being performed on waveform data corresponding to the performance information;
Receiving a stop instruction during the non-real-time generation,
Stopping the non-real-time generation and storage of the waveform data upon receiving the stop instruction.
請求項1〜4の何れかの方法を実行することを特徴とする波形データ生成装置。A waveform data generating apparatus that performs the method according to claim 1. 請求項1〜4の何れかの方法を実行するプログラムを記録したことを特徴とする記録媒体。5. A recording medium on which a program for executing the method according to claim 1 is recorded.
JP2000076444A 1999-03-24 2000-03-17 Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium Expired - Fee Related JP3546801B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000076444A JP3546801B2 (en) 1999-03-24 2000-03-17 Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-80486 1999-03-24
JP8048699 1999-03-24
JP2000076444A JP3546801B2 (en) 1999-03-24 2000-03-17 Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium

Publications (2)

Publication Number Publication Date
JP2000338979A JP2000338979A (en) 2000-12-08
JP3546801B2 true JP3546801B2 (en) 2004-07-28

Family

ID=26421487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000076444A Expired - Fee Related JP3546801B2 (en) 1999-03-24 2000-03-17 Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium

Country Status (1)

Country Link
JP (1) JP3546801B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3775241B2 (en) * 2001-05-28 2006-05-17 ヤマハ株式会社 Telephone terminal device
JP6011219B2 (en) 2012-10-03 2016-10-19 ヤマハ株式会社 Audio file generation program and audio file generation apparatus

Also Published As

Publication number Publication date
JP2000338979A (en) 2000-12-08

Similar Documents

Publication Publication Date Title
JP4240575B2 (en) Musical sound synthesis method, recording medium, and musical sound synthesizer
JP4012691B2 (en) Waveform data processing apparatus, waveform data processing method, and recording medium readable by waveform data processing apparatus
JP4122936B2 (en) Mixing recording apparatus and program for realizing the control method
JP3277844B2 (en) Automatic performance device
JP3546801B2 (en) Waveform data generation method, waveform data storage method, waveform data generation device, and recording medium
US6535772B1 (en) Waveform data generation method and apparatus capable of switching between real-time generation and non-real-time generation
JPH04159598A (en) Recorder for playing information
JP3980750B2 (en) Electronic musical instruments
JP3298486B2 (en) Tone generator, address setting method, and recording medium
JP5838563B2 (en) Electronic musical instruments and programs
JP3741063B2 (en) Digital recorder and program thereof
JP6531432B2 (en) Program, sound source device and acoustic signal generation device
JP4037973B2 (en) Waveform playback device
JP2765469B2 (en) Music signal playback device
JP3719211B2 (en) Performance equipment
JP3518357B2 (en) Music generating method, musical sound generating apparatus and computer readable recording medium storing musical sound generating processing program
JP3379414B2 (en) Punch-in device, punch-in method, and medium recording program
JP4645597B2 (en) Musical sound synthesis method, recording medium, and musical sound synthesizer
JP4132717B2 (en) Compressed audio playback device
JP3407625B2 (en) Automatic performance apparatus, automatic performance method, and medium recording program
JP3223757B2 (en) Musical sound wave generation method
JPH0413194A (en) Musical sound reproducing device with abbreviated reproducing function
JP3261982B2 (en) Karaoke equipment
JPH09185379A (en) Sampling sound source device
JP3879684B2 (en) Song data conversion apparatus and song data conversion program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040227

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: 20040323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040405

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: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090423

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100423

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110423

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120423

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees