JP3716701B2 - Sound channel assignment method and apparatus - Google Patents

Sound channel assignment method and apparatus Download PDF

Info

Publication number
JP3716701B2
JP3716701B2 JP2000075691A JP2000075691A JP3716701B2 JP 3716701 B2 JP3716701 B2 JP 3716701B2 JP 2000075691 A JP2000075691 A JP 2000075691A JP 2000075691 A JP2000075691 A JP 2000075691A JP 3716701 B2 JP3716701 B2 JP 3716701B2
Authority
JP
Japan
Prior art keywords
sound
envelope
channel
volume
waveform data
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
JP2000075691A
Other languages
Japanese (ja)
Other versions
JP2001265341A (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 JP2000075691A priority Critical patent/JP3716701B2/en
Publication of JP2001265341A publication Critical patent/JP2001265341A/en
Application granted granted Critical
Publication of JP3716701B2 publication Critical patent/JP3716701B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、押鍵に基づく発音指示に従って生成された音を複数発音チャンネルの中のいずれかの発音チャンネルに割り当てる発音チャンネル割り当て方法及び装置に関し、特に、波形メモリから読み出した複数周期波形自体が音量の時間変化(音量エンベロープ)を有する場合に、最も聴感に与える影響の少ない音を発音中の発音チャンネルを解放して新たな音を割り当てることのできるものに関する。
【0002】
【従来の技術】
発音開始から終了までの1音の全波形の波形データ、あるいはアタック部などの波形の一部において全波形の波形データを波形メモリに記憶し、この波形データを基に楽音を生成し発音する波形メモリ音源が従来から知られている。波形メモリ音源は複数の発音チャンネルを有しており、当該音源では押鍵に基づく発音指示が発生した場合に発音チャンネルの割り当てを行って、該発音指示された楽音を該割り当てた発音チャンネルにて発音するようになっている。該発音割り当ての処理では、複数の発音チャンネルの中から、まず、現在発音に使用されていない空きチャンネルを捜し、それが見つかればその発音チャンネルに新たに発音する楽音の割り当てを行なう。一方、空きチャンネルが見つからない場合には現在発音に使用されている発音チャンネルの中から何れかの発音チャンネルを選択し、選択した発音チャンネルで発音中の楽音の音量を急速に減衰することによって当該発音チャンネルを強制的に解放し、当該発音チャンネルに新たに発音する楽音を割り当てる。
【0003】
一般的に、この「何れかの発音チャンネルを選択して、当該発音チャンネルで発音中の楽音の音量を急速減衰させる」処理を「トランケート処理」と呼び、この「トランケート処理」で急速減衰させられる発音チャンネルを「トランケートチャンネル」と呼んでいる。この「トランケート処理」は既に公知であり、また、様々なタイプの「トランケート処理」が知られている。「トランケートチャンネル」の選択方法として従来から知られている方法としては、
(1)発音中の複数発音チャンネルの中から、最初に(つまり最も古く)ノートオフされた発音チャンネルを選択し、ノートオフされた発音チャンネルが無い場合は最初に(つまり最も古く)ノートオンされた発音チャンネルを選択する方法
(2)発音中の各発音チャンネル毎に音量の時間変化を疑似的に演算して疑似音量エンべロープを生成し、該疑似音量エンベロープの値が最も小さい発音チャンネルを選択する方法
(3)音源の各発音チャンネルから現在の音量エンベロープ値を読み出して、該音量エンベロープ値が最も小さい発音チャンネルを選択する方法
(4)さらに、上述したような各方法に「パート毎の優先度」あるいは「音高に応じた優先度」等を加味して選択する方法
等のいろいろな方法がある。
【0004】
【発明が解決しようとする課題】
ところで、上述した波形メモリ音源においては、波形メモリから「ループ読み出し用ではない複数周期波形」(例えば、アタック部+ループ部構成の波形データにおけるアタック部)が読み出され、その複数周期波形自体が音量の時間変化(音量エンベロープ)を有している場合がある。このような場合に、波形メモリ音源の発音チャンネルにおいて、当該波形メモリ音源のエンベロープ発生器で発生した音量エンベロープあるいは疑似的に生成される疑似音量エンベロープを用いて、該複数周期波形に対して更にエンベロープ制御を行なうと、その発音チャンネルで実際に発音される楽音の音量エンベロープは該エンベロープ発生器の発生する音量エンベロープあるいは疑似的に生成される疑似音量エンベロープとは異なる形状の音量エンベロープとなる。そうすると、上記「トランケート処理すべき発音チャンネルを選択する」場合に、波形メモリ音源の発音チャンネルから読み出した音量エンベロープや疑似的に生成される疑似音量エンベロープに基づいて発音チャンネルの選択を行なうことは適切でない。なぜなら、上記「トランケート処理すべき発音チャンネルを選択する」際に、波形メモリから読み出された波形自体が元々有していた音量エンベロープが考慮されていないからである。しかしながら、従来の波形メモリ音源では、実際に発音される楽音の所定の時間における音量エンベロープ現在値(実施例では、音量レベル現在値と呼んでいる)を求めることが困難であったために、実際に発音される楽音の音量エンベロープ現在値に基づく「トランケートチャンネル」の選択を行うことが困難であった。そのため、発音チャンネルの割り当てが適切に行われずに、消えるべきでない楽音が消音されてしまったり、先に消えても良い楽音が残ったりする、という問題点があった。
【0005】
本発明は上述の点に鑑みてなされたもので、波形メモリから読み出された複数周期波形が音量の時間変化(音量エンベロープ)を有したものである場合であっても、適切にトランケート処理を行い発音チャンネルを割り当てることのできる発音チャンネル割り当て方法及び装置を提供しようとするものである。
【0006】
【課題を解決するための手段】
本発明に係る発音チャンネル割り当て方法は、波形データを記憶した波形メモリから各発音チャンネル毎に波形データを読み出し、読み出した波形データに基づき生成される楽音信号に対して各発音チャンネル毎に更に音量エンベロープ付与制御を行う音源において、新たな楽音の発音が指示されたときに、該新たな楽音を割り当てる発音チャンネルを選定する発音割り当て方法であって、前記波形メモリに記憶された波形データは当該波形データ自体が音量変化するものであり、前記波形メモリに記憶された波形データの音量変化を示すエンベロープ情報を記憶した記憶手段を各発音チャンネル毎の前記波形データの発音開始からの経過時間により参照し、該エンベロープ情報に基づいて各発音チャンネルにおいて前記波形メモリから読み出されている波形データの現在の音量を示す模擬エンベロープ値情報を取得するステップと、各発音チャンネルで生成する楽音信号に対して付与される前記音量エンベロープの現在値を示す音量エンベロープ値情報を取得するステップと、各発音チャンネル毎に前記模擬エンベロープ値情報と前記音量エンベロープ値情報とを合成し、各発音チャンネル毎の音量現在値を算出するステップと、算出した各発音チャンネル毎の音量現在値に基づいて、前記新たな楽音を割り当てるべき発音チャンネルを選定するステップとを具備する。
【0007】
この発明によれば、各発音チャンネルの音量現在値を算出し、この音量現在値に基づいて、新たな楽音を発音割り当てるべき発音チャンネルを選定することができるようになっている。波形データを記憶した波形メモリから各発音チャンネル毎に波形データを読み出し、読み出した波形データに基づき生成される楽音信号に対して各発音チャンネル毎に更に音量エンベロープ付与制御を行う音源において、新たな楽音の発音が指示されたときには該新たな楽音を発音チャンネルに割り当てる。波形メモリに記憶された波形データは当該波形データ自体が音量変化するものであり、いわば、音量変化に応じた振幅エンベロープが付与されているエンベロープ付の波形データを波形メモリに記憶している。発音チャンネル割り当ての際に、前記波形メモリに記憶された波形データの音量変化を示すエンベロープ情報を記憶した記憶手段を各発音チャンネル毎の前記波形データの発音開始からの経過時間により参照し、該エンベロープ情報に基づいて各発音チャンネルにおいて前記波形メモリから読み出されている波形データの現在の音量を示す模擬エンベロープ値情報を取得する。また、各発音チャンネルで生成する楽音信号に対して付与される前記音量エンベロープの現在値を示す音量エンベロープ値情報を取得する。こうして取得された各発音チャンネル毎の模擬エンベロープ値情報と音量エンベロープ値情報とを合成すると、音量現在値が得られる。この音量現在値は、各発音チャンネルから実際に発音される楽音の所定時間における音量値を示すものである。そこで、この各発音チャンネルの音量現在値に基づき、新たな楽音を発音割り当てすべき発音チャンネルを決定する。こうすると、実際に発音される音量で割り当て対象となる発音チャンネルを選定することができるので、不自然な発音がなされるような発音チャンネルの割り当てが行われることがない。
【0008】
本発明は、方法の発明として構成し実施することができるのみならず、装置の発明として構成し実施することができる。また、本発明は、コンピュータまたはDSP等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【0009】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【0010】
図1は、この発明に係る発音チャンネル割り当て方法を適用した電子楽器のハードウエア構成の一実施例を示すブロック図である。ここに示された電子楽器のハードウエア構成例はコンピュータを用いて構成されており、そこにおいて、発音チャンネル割り当て処理は、コンピュータがこの発明に係る発音チャンネル割り当て方法を実現する所定のプログラム(ソフトウエア)を実行することにより実施される。勿論、この発音チャンネル割り当て処理はコンピュータソフトウエアの形態に限らず、DSP(ディジタル・シグナル・プロセッサ)によって処理されるマイクロプログラムの形態でも実施可能であり、また、この種のプログラムの形態に限らず、ディスクリート回路又は集積回路若しくは大規模集積回路等を含んで構成された専用ハードウエア装置の形態で実施してもよい。また、本発明に係る発音チャンネル割り当て方法を適用する装置は電子楽器に限らず、カラオケ装置又は電子ゲーム装置、あるいはその他のマルチメディア機器又はパーソナルコンピュータ等、任意の製品応用形態をとっているものであってよい。
【0011】
図1に示された電子楽器のハードウエア構成例においては、コンピュータのメイン制御部としてのCPU1に対して、バスライン1D(データあるいはアドレスバス等)を介してリードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3、表示器4、表示器スイッチ5、ハードディスク6、波形メモリ音源8、MIDIインタフェース10、演奏操作子11、タイマ12がそれぞれ接続されている。CPU1は、後述する「ノートオンイベント処理」や「トランケートチャンネル決定処理」等の処理を所定のプログラムに基づいて実行する。これらのプログラムは、通信インタフェース(図示せず)を介したネットワーク等から供給されてハードディスク6に記憶される。そして、実行時にハードディスク6からRAM3にロードされる。あるいは、ROM2に予めプログラムが記録されていてもよい。CPU1には、タイマ割込み処理(インタラプト処理)における割込み時間や各種時間を計時するタイマ12が接続されている。すなわち、タイマ12は時間間隔を計数したり、自動伴奏演奏等のテンポを設定したりするためのテンポクロックパルスを発生するものである。このテンポクロックパルスの周波数は、表示器スイッチ5の中のテンポ設定スイッチ等によって調整される。このようなタイマ12からのテンポクロックパルスはCPU1に対して処理タイミング命令として与えられたり、あるいはCPU1に対してインタラプト命令として与えられる。CPU1はこれらの命令に従って、各種処理を実行する。
【0012】
ROM2は、CPU1により実行あるいは参照される各種プログラムや各種データ等を格納するものである。RAM3は、発音される楽音に関する各種情報やCPU1がプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリとして使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。表示器4は、後述の表示器スイッチ5から入力された楽音特性の設定及び制御に関するデータやその他のデータの設定内容等を表示する、例えば液晶表示パネル(LCD)やCRT等のディスプレイである。表示器(パネル)スイッチ5は演奏時の楽音音量の設定指示や、あるいは演奏に関する各種の音楽条件を入力するための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはデータ設定用操作子等である。勿論、この他にも音高、音色、効果等を選択・設定・制御するための各種操作子を含んでいてよい。
【0013】
演奏操作子11は、発生すべき楽音を指定するために用いられる各種操作子、すなわち、演奏する楽音の音高、音色、効果等を選択・設定・制御するための各種操作子(例えば、鍵盤等)である。例えば、鍵盤は楽音の音高を選択するための複数の鍵を備えるもので、各鍵に対応してキースイッチを有しており、この鍵盤は楽音演奏のために使用できるのは勿論のこと、演奏する楽音の音高、音色、効果等を選択・設定・制御するための操作子として使用することもできる。この演奏操作子11は機種に依存するものであり、当該電子楽器の機種がピアノやオルガンといったものであれば当該演奏操作子11は上記鍵盤で構成される。ハードディスク6は、波形メモリ7に記憶される波形データに対応する音量エンベロープデータ(後述する波形のエンベロープテーブル等の各種データ)や、各種音色パラメータ等からなる音色データなどのような演奏に関する複数種類のデータを記憶したり、前記CPU1が実行する各種プログラム等のような制御に関するデータを記憶したりするものである。前記ROM2に制御プログラムが記憶されていない場合、このハードディスク6に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、ハードディスク6(HD)のような外部記憶装置に限られず、フロッピィーディスク(FD)、コンパクトディスク(CD−ROM・CD−RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Diskの略)等の着脱自在な様々な形態の記憶媒体を利用する外部記憶装置であってもよい。
【0014】
CPU1は、MIDIインタフェース10、演奏操作子11等から与えられる、あるいは、CPU1の実行する自動演奏処理等で発生する演奏情報(MIDIイベント等)に従って波形メモリ音源部8に楽音発生の指示を出す。具体的には、CPU1は、楽音発生の開始を指示するノートオンイベントが与えられた、ないし、発生したのに応じて、後述する「ノートオンイベント処理」を行う。すなわち、演奏操作子11等から入力した演奏情報及び設定情報に応じて、発音チャンネル割り当てや楽音制御パラメータ等の作成を行い、割り当てた発音チャンネルに対応して各種の楽音制御パラメータを音源レジスタ8Aに対して設定する。波形メモリ音源8では、楽音データを生成するための楽音生成処理が行われる。すなわち、各発音チャンネルに対応して音源レジスタ8Aに設定された各種楽音制御パラメータに基づいて、波形メモリ7から時分割で複数チャンネル分の波形データを読み出して補間し(読出処理部8B)、補間された波形データに各発音チャンネル別に楽音制御(すなわち、EG処理部8Cで生成された各発音チャンネルのエンベロープに基づく音量制御)を施し(EG処理部8C)、音量制御された複数チャンネル分の波形データ(楽音波形)を累算する(チャンネル累算部8D)。なお、波形メモリ7には複数の波形データが記憶されており、音源レジスタ8Aには各発音チャンネル毎に、前記読出処理部8Bが波形メモリ7からどの波形データを読み出すかを指定するための波形データ指定情報が含まれている。ここで、読出処理部8Bから発生した楽音波形に音量エンベロープが付与されている場合は、EG処理部8Cで生成されるエンベロープによって更に音量エンベロープが制御されることになる。そして、累算結果に対して楽音制御パラメータに従って各種効果を付与して(EF処理部8E)、楽音データを生成する。こうして生成された楽音データは、DAC9に出力される。DAC9はディジタルアナログ変換器であって、DAC9では波形メモリ音源8で生成され出力されたディジタル楽音データをアナログ楽音データに変換する。サウンドシステム9Aでは、該アナログ楽音データに基づいて実際の楽音を放音する。
【0015】
波形メモリ7には1つの音に関して1乃至複数周期の波形データが記憶されており、波形データは複数の音色及び音楽特性(音高又は音域に応じた特性や、ビブラート、スラー等の変調特性)に対応している。すなわち、波形メモリ音源8における楽音信号発生方式は、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した波形データ(楽音波形サンプル値データ)を順次読み出す波形メモリ読み出し方式である。勿論、波形メモリ音源8(読出処理部8B、EG処理部8C、チャンネル累算部8D、EF処理部8E)は専用のハードウェアを用いて音源回路を構成するものに限らず、DSPとマイクロプログラム、あるいはCPUとソフトウェアを用いて音源回路を構成するようにしてもよい。さらに、1つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものであってもよいし、1つの発音チャンネルが1つの回路で形成されるようなものであってもよい。
【0016】
MIDIインタフェース(I/F)10は、他のMIDI機器等からMIDI規格の演奏情報(MIDIデータ)を当該電子楽器へ入力したり、あるいは当該電子楽器からMIDI規格の演奏情報(MIDIデータ)を他のMIDI機器等へ出力するためのインタフェースである。なお、MIDIインタフェース10は専用のMIDIインタフェースを用いるものに限らず、RS232−C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインタフェースを用いてMIDIインタフェースを構成するようにしてもよい。この場合、MIDIメッセージ以外のデータをも同時に送受信するようにしてもよい。
上述のような汎用のインタフェースを用いた場合、当該インタフェースを例えばLANやインターネットあるいは電話回線等の通信ネットワークに接続し、該通信ネットワークを介してサーバコンピュータと接続することによって、当該サーバコンピュータから制御プログラムや各種データを電子楽器側に取り込むようにしてもよい。すなわち、ROM2やハードディスク6に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータから制御プログラムや各種データをダウンロードする。クライアントとなる電子楽器は、通信ネットワークを介してサーバコンピュータへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求された制御プログラムやデータを、通信ネットワークを介して本電子楽器へと配信し、電子楽器がこれらの制御プログラムや各種データを受信してハードディスク6に蓄積することにより、ダウンロードが完了する。
【0017】
上述したように、図1に示した電子楽器において、発音チャンネルの割り当て方法はコンピュータがこの発明に係る発音チャンネル割り当て方法を実現する所定のプログラム(ソフトウエア)を実行することにより実施される。そこで、この発音チャンネルの割り当て方法を実現する所定のプログラム(ソフトウエア)について説明する。図2は、上述した電子楽器において実行される「ノートオンイベント処理」の一実施例を示すフローチャートである。当該処理は、所定の演奏操作子11の操作や、MIDIインタフェース10からのノートオンの入力等に応じてノートオンイベントが発生した場合に実行される処理であり、これにより操作された演奏操作子11に応じた楽音の発音が開始される。
ステップS1では、そのノートオンイベントに係る音(すなわち、発音指示された音)の音高を示す情報(例えば、ノート番号)、そのノートオンイベントに係る音のイニシャルタッチ強度を示す情報(例えば、ベロシティ)、ノートオンを入力したMIDIチャンネルを受信するパートの情報(例えば、パート番号)を各々に対応する所定のレジスタNN(ノート番号を格納するレジスタ)、レジスタVL(ベロシティを格納するレジスタ)、レジスタPT(パート番号を格納するレジスタ)に格納する。そして、楽音を発音するために現在空いている(すなわち、割り当てられていない)発音チャンネル(これを空きチャンネルと呼ぶ)があるかないかを検出する(ステップS2)。この空きチャンネルには、ノートオフされた後に音量が減衰して音量レベルが「0」となって解放された発音チャンネルが含まれる。空きチャンネルがある場合には(ステップS3のYES)、当該空きチャンネルに付されているチャンネル番号をレジスタASに格納する(ステップS4)。
【0018】
一方、全ての発音チャンネルが既に割り当てられており、空きチャンネルが全くない場合には(ステップS3のNO)、後述する「トランケートチャンネル決定処理」(図3参照)を行うことによってトランケートチャンネル(すなわち、後述する急速減衰処理を行って発音中の楽音を強制的に消音して、空きチャンネルとする「トランケート処理」を行う対象の発音チャンネル)を決定し、トランケートチャンネルに選ばれた発音チャンネルに付されているチャンネル番号をレジスタASに格納する(ステップS7)。そして、レジスタASに格納されたチャンネル番号に基づいて、該当する発音チャンネルにおいて発音中の楽音に対して急速減衰処理を行う。この急速減衰処理では、トランケートチャンネルに選ばれた発音チャンネルで発音中の楽音が減衰されて消音される。
ステップS5では、上記レジスタPT、レジスタNN、レジスタVLに応じた楽音制御パラメータをレジスタASに保持されたチャンネル番号に該当する発音チャンネルに設定する。そして、当該発音チャンネル(つまり、レジスタASに保持されたチャンネル番号に該当する発音チャンネル)に対して発音開始を指示する(ステップS6)。
【0019】
図3は、上述した「ノートオンイベント処理」で実行される「トランケートチャンネル決定処理」(図2のステップS7参照)の一実施例を示すフローチャートである。当該処理は、「トランケート処理」を行う発音チャンネル(トランケートチャンネル)を選択し決定する処理である。
ステップS11では、サーチ対象のパートを決定する。すなわち、「トランケート処理」を行う対象となる発音チャンネルを特定の演奏パートの楽音を発音している発音チャンネルのいずれかから選択するために、全演奏パートの中から特定の演奏パートをサーチ対象の演奏パートとして絞り込みする。この演奏パートの絞り込みを行うことによって、「トランケート処理」が高速化されて発音チャンネルの割り当てが素早く実行されることから、当該ノートオンイベントに対して遅延することなく波形メモリ音源8に対して発音制御を行うことができる(すなわち、発音遅れが防止できる)。演奏パートの絞り込みの方法としては、例えば、「1以上の発音チャンネルで発音中の演奏パートであって、かつ、優先度の低い演奏パート」をサーチ対象のパートとする、あるいは「所定のリザーブ数(各パート毎に設定された最低限残しておくべきチャンネル数)以上の発音チャンネルを使用している演奏パート」をサーチ対象の演奏パートとする等の方法がある。演奏パートの絞り込み終了後、全ての発音チャンネルの中から、サーチ対象として絞り込まれた演奏パートに属する楽音が現在割り当てられている(楽音を生成中の)発音チャンネルを検出する(ステップS12)。すなわち、絞り込みした演奏パートに属する楽音が割り当てられている発音チャンネルのリストを作成する。このリストの発音チャンネルの中から、後述の処理によって「トランケート処理」を行う対象となる発音チャンネルが決定される。そこで、まず、作成されたリストの1番目の発音チャンネル(すなわち、1番初めに検出された発音チャンネル)を後述のステップS14〜ステップS17で行う処理対象として指定する(ステップS13)。
【0020】
ステップS14では、上記ステップS13で指定された発音チャンネルにおける楽音の発音開始から現在までの経過時間を検出する。すなわち、各発音チャンネル毎に「ノートオンイベント処理」時に「当該発音チャンネルがノートオンされた時刻」を保持しておき、ここでは、現在時刻と前記「当該発音チャンネルがノートオンされた時刻」との差をとることにより「当該発音チャンネルの発音開始からの時間」(経過時間)を検出する。ステップS15では、当該チャンネルで読出処理部8Bが波形メモリ7から読み出している波形データに対応した「波形のエンベロープテーブル」(詳細は後述する)を上記「経過時間」によって参照することにより、当該波形データの「エンベロープ現在値」を取得する。ステップS16では、波形メモリ音源8の発音チャンネルから、「EG処理部8Cにおける当該チャンネルのエンベロープ生成処理により生成されたエンベロープ現在値」を読み出す。ステップS17では、ステップS15で取得した「波形データのエンベロープ現在値」と、ステップS16で取得した「EG処理部8Cのエンベロープ現在値」とを加算する。上記各「エンベロープ現在値」をそれぞれ対数値(例えば、デシベル値)で表現した場合には、加算がリニア値での乗算に相当する。したがって、上記各「エンベロープ現在値」をそれぞれ対数値で表現した場合には、演算器として加算器を用いればよく、一方、これらをリニア値で表現した場合には、演算器として乗算器を用いればよい。
こうして加算(あるいは乗算)して得られた値が、当該発音チャンネルの「音量レベル現在値」である。この発音チャンネルの「音量レベル現在値」の算出については(ステップS15〜ステップS17参照)、後ほど具体的な例を用いて詳しく説明する。
【0021】
「音量レベル現在値」の算出後、次の発音チャンネルがあるかないかを判定する(ステップS18)。すなわち、ステップS12で検出したサーチ対象として絞り込まれたパートに関して発音指示された楽音を生成中の発音チャンネルが複数あるかないかを判定する。複数ある場合、すなわち、次の発音チャンネルがある場合には(ステップS18のYES)、次の発音チャンネルを指定して(ステップS20)、ステップS14の処理へ戻り上記各処理を繰り返し行って、当該発音チャンネル毎の「音量レベル現在値」を算出する。一方、次の発音チャンネルがない場合には(ステップS18のNO)、音量レベルが最少である発音チャンネルを検出し、当該発音チャンネルに付されているチャンネル番号をレジスタASに格納する。すなわち、「音量レベル現在値」が算出された発音チャンネルの中から、最も該音量レベルが小さい発音チャンネルをサーチし、そのチャンネル番号をレジスタASに格納する。そして、当該「トランケートチャンネル決定処理」を終了して、「ノートオンイベント処理」へ処理を返す。そして、「ノートオンイベント処理」ではレジスタASに格納したチャンネル番号を付された発音チャンネルに対して「トランケート処理」を行う(図2のステップS8参照)。
このようにして、「ノートオンイベント処理」及び「トランケートチャンネル決定処理」を行うことによって、演奏操作子11の操作に応じたノートオンイベントの発生に従い、空きチャンネルをサーチし、サーチされた空きチャンネルにノートオンイベントに係る楽音を割り当てて楽音を発音する。あるいは、サーチした結果として空きチャンネルがなかった場合には、「トランケート処理」を行って急速減衰処理した楽音が割り当てられていた発音チャンネルを空きチャンネルとして、当該発音チャンネルにノートオンイベントに係る新たな楽音を割り当てて楽音を発音することができるようにしている。
【0022】
なお、ステップS11に記載の「トランケート処理」対象とする発音チャンネルを選択する範囲の絞り込み方法は、パート単位で行わなくてもよい。すなわち、パート単位で行う方法以外に、例えば音域単位、音色グループ単位等で絞り込みを行ってもよい。あるいは、全く絞り込みを行わず、全パートをサーチ対象のパートとしてもよい。また、ステップS16において、波形メモリ音源8の各発音チャンネルからエンベロープ現在値を読み出す代わりに、計算で音量の時間変化をシミュレートして「疑似エンベロープ」を生成し、この生成された「疑似エンベロープ」の現在値を使用するようにしてもよい。この「疑似エンベロープ」は、波形メモリ7から各発音チャンネル毎に読み出された波形データに基づいて生成される楽音信号に付与するための、疑似的に生成される音量エンベロープを表わす。
【0023】
ここで、波形メモリ7に記憶する波形データ毎の音量エンベロープについて簡単に説明する。上述したように、この電子楽器では、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリ7に記憶した波形データを順次読み出す波形メモリ読み出し方式を採用している。波形メモリ7には、複数周期波形からなる様々な自然楽器の様々な演奏態様による波形データが記憶されている。この波形データは演奏全体の波形データであってもよいし、あるフレーズ、あるいは1音、あるいはアタック部やリリース部といった特徴のある演奏の一部の波形データだけであってもよい。この波形データの中には、波形データ自体が音量の時間変化(音量エンベロープ)を有しているものがある。この音量エンベロープは、各波形データ毎に波形のエンベロープテーブルとして波形メモリ7に波形データと共に記憶される。図4は、波形のエンベロープテーブルとして記憶する音量エンベロープ値の一例を示した概念図である。この実施例では、アタック部+ループ部構成の波形データにおける波形のエンベロープテーブルを例に示した。なお、この図では縦軸に音量エンベロープ値を、横軸に時間を示している。
波形のエンベロープテーブルには、各波形データ毎に所定の時間分(この実施例では、波形データのスタート位置から約10秒分の長さ)の疑似音量エンベロープ値を記憶する。該疑似音量エンベロープ値は、波形データから抽出された音量エンベロープを所定の時間間隔毎に(例えば、10ミリ秒毎間隔に)サンプリングしたサンプル値である。本実施例に示した疑似音量エンベロープは、波形データのアタック部では該疑似音量エンベロープ値が時間の経過と共に低下するよう変化し、波形データのループ部に入ったところからは時間の経過に関わらず一定値のまま推移する形状である。
【0024】
なお、本実施例では波形データのアタック部の長さに関わりなく所定の時間長さ分(約10秒分の長さ)にわたって疑似音量エンベロープ値を波形のエンベロープテーブルとして記憶するようにしたが、波形メモリ7に記憶した各波形データのアタック部の時間長さに相当するだけの時間長さ分にわたって疑似音量エンベロープ値を波形のエンベロープテーブルとして記憶するようにしてもよい。例えば、波形データのアタック部の時間長さが5秒分(あるいは15秒分)であれば、波形のエンベロープテーブルの時間長さも5秒分(あるいは15秒分)記憶すればよい。ただし、上記したように各波形データのアタック部の長さに関わりなく所定の時間長さ分に波形のエンベロープテーブルを統一して構成すると、波形データがそれ以下の時間長さである場合には波形データのエンド位置を検出する必要がなくなるので、その分プログラム(ソフトウエア)を簡単に構成することができる、という利点がある。例えば、波形データのアタック部が5秒分の時間長さである場合には、波形のエンベロープテーブルは前半の5秒分にアタック部の疑似音量エンベロープ値を記憶し、後半の5秒分はループ部の疑似音量エンベロープ値を記憶する。このループ部の疑似音量エンベロープ値は時間経過に関わらず一定値であることから、特に波形データのエンド位置を検出して当該波形のエンベロープテーブルと整合をとる必要はない。
【0025】
なお、複数の波形データに共通する疑似音量エンベロープ値の時間変化を波形のエンベロープテーブルとして記憶するようにしてもよい。また、波形のエンベロープテーブルは波形データから抽出された音量エンベロープを所定の時間間隔毎にサンプリングしたサンプル値そのものからなる疑似音量エンベロープでなく、一部のサンプル値を加工した疑似音量エンベロープであってもよい。例えば、実際のサンプル値からなる疑似音量エンベロープの先頭部分が下がっている場合に、当該先頭部分が下がらないように前記疑似音量エンベロープを加工した形状の波形のエンベロープテーブルを作成するとよい(点線図参照)。こうすると、先頭部分(すなわち、発音開始直後)に発音割り当てがなされた場合の不都合を回避することができる。すなわち、サンプル値のままである場合には、先頭部分で「トランケート処理」がなされて、当該波形データを基にして発音される楽音が発音開始後すぐに消音されることとなり非常に都合が悪い。そこで、先頭部分のサンプル値を加工してそのようなことが起こらないようにしている。勿論、絶対に加工しなければならないということではなく、加工した方がよい。すなわち、加工しなくてもよい。
なお、この波形のエンベロープテーブルは波形メモリ7に波形データと共に記憶するようにしてもよいし、あるいは波形メモリ7とは別のハードディスク6等の記憶装置やFD等の外部記憶媒体に記憶するようにしてもよい。
また、本実施例では「アタック部+ループ部構成の波形データ」に関する波形のエンベロープテーブルを示したが、波形データは「ループ読み出し用でない複数周期波形」構成であればどのような構成のものであってもよい。
【0026】
次に、発音チャンネルの「音量レベル現在値」の算出(図3のステップS15〜ステップS17参照)について、具体例を参照しながら詳細に説明する。
図5は、発音チャンネルの「音量レベル現在値」の算出について説明するための図である。図5(A)は、時間T0で発生したノートオンに応じて、1つの発音チャンネルでアタック部とループ部から構成される波形データを読み出している様子を示す概念図である。図5(B)は、図5(A)の波形データが予め有している音量エンベロープ(すなわち、波形のエンベロープテーブルを基にして生成される音量エンベロープ)を示す図である。図5(C)は、エンベロープ発生器(EG処理部8C)で当該発音チャンネルの波形データの音量を制御するために生成されているエンベロープを示す図である。図5(D)は、所定の発音チャンネルにおける実際に発音される楽音の音量エンベロープ(これを「音量レベル」と呼んで、図5(C)に示すエンベロープ発生器(EG処理部8C)で生成された当該発音チャンネルの音量エンベロープと区別する)を示す図である。図5(B)から図5(D)までの各図では、縦軸に音量エンベロープ値を、横軸に時間を示している。
【0027】
まず、ノートオンイベントを受信すると、波形メモリ7から該ノートオンイベントに対応した波形データを選択的に読み出す。この実施例では、時間の経過に従い、特徴のある複数周期波形からなるアタック部全体の波形データと、それに続く1周期波形からなるループ波形を複数回繰り返して読み出す。そして、読み出された波形データに対応するエンベロープテーブルを発音開始(ノートオン)からの経過時間で参照することにより、波形メモリ7中の当該波形データが有しているエンベロープに対応する波形の音量エンベロープ現在値を取得する(図3のステップS15参照)。例えば、当該波形データに対応したエンベロープテーブルが図4に示したような形状である場合には、図5(B)に示すような音量エンベロープが生成される。この音量エンベロープのアタック部の形状は、波形のエンベロープテーブルと先頭部分の一部を除いて同様の形状となる。また、当該波形の音量エンベロープのループ部の形状は、波形データのループ部が繰り返し読出しされる限りにおいて、ループ部が読み出された以降(時間T1以降)で一定値を維持した形状となる。こうして生成される音量エンベロープの所定の時間における音量エンベロープ値が波形のエンベロープ現在値として取得される。
次に、図3のステップS16で波形メモリ音源8から読み出される音量エンベロープ現在値、すなわち、EG処理部8Cが当該発音チャンネルの波形データの音量を制御するために生成しているエンベロープについて説明する。なお、EG処理部8Cでは、複数ステートの折れ線近似されたエンベロープを生成する。音源レジスタ8Aには、該エンベロープを制御するための各ステート毎のエンベロープ目標値とエンベロープ変化速度が記憶されている。図5(C)では、アタック部(時間T0〜T1)では音量エンベロープ値は一定値を保ち、ループ部に入ると(時間T1以降)次第に音量エンベロープ値が減少する形状の音量エンベロープを示した。ただし、時間T1〜T2までと時間T2以降(ノートオフイベント受信後)とでは音量エンベロープ値の減衰速度が異なる。こうして生成される音量エンベロープの所定の時間における音量エンベロープ値がエンベロープ発生器(EG処理部8C)で読み出される所定の発音チャンネルのエンベロープ現在値として取得される。
さらに、取得した波形の音量エンベロープ(図5(B)参照)と波形メモリ音源8から読み出される音量エンベロープ(図5(C)参照)とを加算すると、図5(D)に示すような音量エンベロープ(音量レベル)が得られる。この音量レベルの所定の時間における音量エンベロープ値が発音チャンネルの「音量レベル現在値」として取得される(ステップS17参照)。
【0028】
こうして各発音チャンネル毎に「音量レベル現在値」を取得し、各チャンネル毎の「音量レベル」を相互に比較して「トランケートチャンネル」を決定する(図3のステップS19参照)。従来では、この「音量レベル現在値」ではなく、例えばエンベロープ発生器(EG処理部8C)で読み出される発音チャンネルのエンベロープ現在値等を比較して「トランケートチャンネル」を決定していたために、適切に発音チャンネルの割り当てを行うことができなかった。すなわち、図5(C)と図5(D)とを比較すると明らかなように、エンベロープ発生器(EG処理部8C)で読み出される所定の発音チャンネルの音量エンベロープ(図5(C))は実際に発音される楽音の音量エンベロープ(音量レベル)とは大きく異なる形状である。したがって、発音開始から所定の時間経過時の音量エンベロープ現在値を、エンベロープ発生器(EG処理部8C)で読み出される所定の発音チャンネルの音量エンベロープ(図5(C))から求めると、実際に発音される楽音の音量エンベロープ(音量レベル)が充分に反映されず、大きく異なる音量エンベロープ値が取得される。しかし、本発明では実際に発音される楽音の音量エンベロープ(音量レベル)を生成し、これに従う「音量レベル現在値」で「トランケートチャンネル」を選択するようにしたので、適切に発音チャンネルの割り当てを行うことができるようになっている。
【0029】
なお、上述したような発音チャンネル割り当て方法を電子楽器に適用した場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、その場合に、波形メモリ音源8等を1つの電子楽器本体内に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各構成部を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合処理プログラムを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。
【0030】
【発明の効果】
本発明によれば、波形データの有する音量エンベロ−プ値と発音チャンネルから読み出した音量エンベロープ値とを合成して、発音チャンネルの「音量レベル現在値」を算出し、この「音量レベル現在値」に基づいて「トランケートチャンネル」を決定するようにしたので、発音チャンネル割り当ての際に楽音に不自然さを与える「トランケート処理」を行うことがなく、かつ、適切な発音チャンネルの割り当てを行うことができるようになる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】 この発明に係る発音チャンネル割り当て方法を適用した電子楽器のハードウエア構成の一実施例を示すブロック図である。
【図2】 図1に示す電子楽器において実行される「ノートオンイベント処理」の一実施例を示すフローチャートである。
【図3】 図2に示す「ノートオンイベント処理」で実行される「トランケートチャンネル決定処理」の一実施例を示すフローチャートである。
【図4】 波形のエンベロープテーブルで記憶する音量エンベロープの一例を示した概念図である。
【図5】 発音チャンネルの「音量レベル現在値」の算出について説明するための図である。
【符号の説明】
1…CPU、2…リードオンリメモリ(ROM)、3…ランダムアクセスメモリ(RAM)、4…表示器、5…表示器スイッチ、6…ハードディスク、7…波形メモリ、8…波形メモリ音源、9…DAC、9A…サウンドシステム、10…MIDIインタフェース、11…演奏操作子、12…タイマ、1D…バスライン
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a sound generation channel assignment method and apparatus for assigning a sound generated according to a sound generation instruction based on a key depression to any sound generation channel of a plurality of sound generation channels, and in particular, a multi-period waveform itself read from a waveform memory has a volume level. In the case of having a time change (volume envelope), it is possible to release a sound generation channel that is generating a sound having the least influence on hearing and to assign a new sound.
[0002]
[Prior art]
Waveform data of one waveform from the start to the end of sound generation, or waveform data of all waveforms in a part of the waveform of the attack part etc. is stored in the waveform memory, and a tone is generated and generated based on this waveform data Memory sound sources have been known for some time. The waveform memory sound source has a plurality of sound generation channels. When a sound generation instruction based on key depression occurs, the sound source assigns a sound generation channel, and the musical sound instructed for sound generation is assigned to the sound generation channel assigned. It comes to pronounce. In the sound assignment process, first, an empty channel that is not currently used for sound generation is searched from a plurality of sound generation channels, and if it is found, a musical sound to be newly generated is assigned to the sound generation channel. On the other hand, if an empty channel is not found, one of the sound channels currently used for sound generation is selected, and the volume of the sound being sounded in the selected sound channel is rapidly attenuated. The sound channel is forcibly released, and a new sound to be generated is assigned to the sound channel.
[0003]
In general, the process of “selecting one of the sound channels and rapidly attenuating the volume of the musical sound being sounded in the sound channel” is called “truncation processing”, and can be rapidly attenuated by this “truncation process”. The sound channel is called “truncate channel”. This “truncate” is already known, and various types of “truncate” are known. As a conventionally known method for selecting a “truncate channel”,
(1) The first (that is, the oldest) note-off sound channel is selected from the multiple sound channels that are being sounded. If there is no note-off sound channel, the first (that is, the oldest) note-on channel is selected. To select a different pronunciation channel
(2) A method of generating a pseudo sound volume envelope by pseudo-calculating a temporal change in sound volume for each sound channel during sound generation, and selecting a sound channel having the smallest value of the pseudo sound volume envelope
(3) A method of reading the current volume envelope value from each tone generation channel of the sound source and selecting a tone generation channel having the smallest volume envelope value
(4) Further, a method of selecting by adding “priority for each part” or “priority according to pitch” to each method as described above
There are various methods.
[0004]
[Problems to be solved by the invention]
By the way, in the waveform memory sound source described above, “a plurality of periodic waveforms not for loop reading” (for example, an attack portion in the waveform data of the attack portion + loop portion configuration) is read from the waveform memory, and the plurality of periodic waveforms themselves are read. There may be a case where the volume changes with time (volume envelope). In such a case, in the sound generation channel of the waveform memory sound source, a volume envelope generated by the envelope generator of the waveform memory sound source or a pseudo sound volume envelope generated in a pseudo manner is used to further envelope the multi-period waveform. When the control is performed, the volume envelope of the musical sound actually generated in the sound generation channel becomes a volume envelope having a shape different from the volume envelope generated by the envelope generator or the pseudo volume envelope generated in a pseudo manner. Then, in the case of “selecting the sound channel to be truncated”, it is appropriate to select the sound channel based on the sound volume envelope read from the sound source channel of the waveform memory sound source or the pseudo sound volume envelope generated in a pseudo manner. Not. This is because the volume envelope originally included in the waveform itself read from the waveform memory is not taken into account when the above-mentioned “selecting the sound generation channel to be truncated” is selected. However, in the conventional waveform memory sound source, since it is difficult to obtain the current volume envelope current value (referred to as the current volume level current value in the embodiment) at a predetermined time of the tone actually played, It was difficult to select a “truncate channel” based on the current value of the volume envelope of the sound to be generated. For this reason, there is a problem that sound channels that should not be erased are muted because sound channel assignment is not performed properly, or that musical sounds that may be erased first remain.
[0005]
The present invention has been made in view of the above points, and even when a multi-period waveform read from the waveform memory has a temporal change in volume (volume envelope), the truncation process is appropriately performed. It is an object of the present invention to provide a sound channel assigning method and apparatus capable of assigning sound sound channels.
[0006]
[Means for Solving the Problems]
The sound channel assignment method according to the present invention reads waveform data for each sound channel from a waveform memory storing waveform data, and further generates a volume envelope for each sound channel with respect to a tone signal generated based on the read waveform data. A sound generation assignment method for selecting a sound generation channel to which a new musical sound is assigned when a sound generation of a new musical sound is instructed in a sound source to be applied, wherein the waveform data stored in the waveform memory is the waveform data A storage means for storing envelope information indicating a change in volume of waveform data stored in the waveform memory. For each sound channel Of the waveform data Elapsed time from the start of pronunciation To obtain simulated envelope value information indicating the current volume of the waveform data read from the waveform memory in each tone generation channel based on the envelope information, and to the tone signal generated in each tone generation channel Obtaining the volume envelope value information indicating the current value of the volume envelope to be given to the sound volume; and synthesizing the simulated envelope value information and the volume envelope value information for each sound channel; A step of calculating a current value, and a step of selecting a sounding channel to which the new musical sound is to be assigned based on the calculated current sound volume value for each sounding channel.
[0007]
According to the present invention, the current sound volume value of each sound generation channel is calculated, and based on this current sound volume value, it is possible to select a sound generation channel to which a new musical sound is assigned to be sounded. In the sound source that reads out the waveform data for each tone generation channel from the waveform memory storing the waveform data, and further controls the volume envelope for each tone generation channel for the tone signal generated based on the read waveform data, a new tone Is assigned to the sound generation channel. The waveform data stored in the waveform memory is such that the waveform data itself changes in volume. In other words, waveform data with an envelope to which an amplitude envelope corresponding to the change in volume is given is stored in the waveform memory. Storage means for storing envelope information indicating a change in volume of waveform data stored in the waveform memory at the time of sound channel assignment For each sound channel Of the waveform data Elapsed time from the start of pronunciation Based on the envelope information, simulated envelope value information indicating the current volume of the waveform data read from the waveform memory in each tone generation channel is acquired. Also, volume envelope value information indicating the current value of the volume envelope given to the tone signal generated in each tone generation channel is acquired. By synthesizing the simulated envelope value information and the volume envelope value information for each sound generation channel acquired in this way, the current volume value is obtained. The current volume value indicates the volume value of the musical sound actually generated from each sound generation channel at a predetermined time. Therefore, based on the current volume value of each sound generation channel, a sound generation channel to which a new musical sound should be assigned is determined. In this way, since the sound generation channel to be assigned can be selected at the volume at which sound is actually generated, sound channel assignment that causes unnatural sound generation is not performed.
[0008]
The present invention can be constructed and implemented not only as a method invention but also as an apparatus invention. Further, the present invention can be implemented in the form of a program of a processor such as a computer or a DSP, or can be implemented in the form of a storage medium storing such a program.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
[0010]
FIG. 1 is a block diagram showing an embodiment of a hardware configuration of an electronic musical instrument to which a sound channel assigning method according to the present invention is applied. The hardware configuration example of the electronic musical instrument shown here is configured by using a computer, in which the sound channel assignment processing is performed by a predetermined program (software) that realizes the sound channel assignment method according to the present invention. ) Is executed. Of course, this sound channel assignment process is not limited to the form of computer software, but can be implemented in the form of a microprogram processed by a DSP (digital signal processor), and is not limited to this form of program. The present invention may be implemented in the form of a dedicated hardware device configured to include a discrete circuit, an integrated circuit, a large-scale integrated circuit, or the like. Further, the device to which the sound channel assignment method according to the present invention is applied is not limited to an electronic musical instrument, but adopts an arbitrary product application form such as a karaoke device, an electronic game device, other multimedia devices or a personal computer. It may be.
[0011]
In the hardware configuration example of the electronic musical instrument shown in FIG. 1, a read-only memory (ROM) 2 is randomly connected to a CPU 1 as a main control unit of a computer via a bus line 1D (data or address bus). An access memory (RAM) 3, a display 4, a display switch 5, a hard disk 6, a waveform memory sound source 8, a MIDI interface 10, a performance operator 11, and a timer 12 are connected to each other. The CPU 1 executes processing such as “note on event processing” and “truncated channel determination processing” described later based on a predetermined program. These programs are supplied from a network or the like via a communication interface (not shown) and stored in the hard disk 6. Then, it is loaded from the hard disk 6 to the RAM 3 at the time of execution. Alternatively, the program may be recorded in the ROM 2 in advance. The CPU 1 is connected to a timer 12 that measures an interrupt time and various times in a timer interrupt process (interrupt process). That is, the timer 12 generates a tempo clock pulse for counting time intervals and setting a tempo for automatic accompaniment performance. The frequency of the tempo clock pulse is adjusted by a tempo setting switch in the display switch 5 or the like. Such a tempo clock pulse from the timer 12 is given to the CPU 1 as a processing timing command or to the CPU 1 as an interrupt command. The CPU 1 executes various processes according to these instructions.
[0012]
The ROM 2 stores various programs executed by or referred to by the CPU 1, various data, and the like. The RAM 3 is used as a working memory for temporarily storing various kinds of information related to the sound to be generated and various data generated when the CPU 1 executes the program, or as a memory for storing the currently executed program and related data. Is done. A predetermined address area of the RAM 3 is assigned to each function and used as a register, flag, table, memory, or the like. The display 4 is a display such as a liquid crystal display panel (LCD) or a CRT, for example, which displays data related to setting and control of musical tone characteristics input from a display switch 5 described later, and other data settings. The display (panel) switch 5 is configured to include various operation elements for inputting a musical sound volume setting instruction during performance or various music conditions related to performance. For example, a numeric keypad for inputting numeric data, a keyboard for inputting character data, or a data setting operator. Of course, in addition to these, various operators for selecting, setting and controlling the pitch, timbre, effect and the like may be included.
[0013]
The performance operator 11 is used to specify various musical sounds to be generated, that is, various operators (for example, a keyboard) for selecting, setting, and controlling the pitch, tone, and effect of the musical sound to be played. Etc.). For example, a keyboard has a plurality of keys for selecting the pitch of a musical tone, and has a key switch corresponding to each key. Of course, this keyboard can be used for musical performance. It can also be used as an operator for selecting, setting and controlling the pitch, tone color, effect, etc. of the musical tone to be played. The performance operator 11 depends on the model. If the model of the electronic musical instrument is a piano or an organ, the performance operator 11 includes the keyboard. The hard disk 6 has a plurality of performance-related types such as volume envelope data (various data such as a waveform envelope table described later) corresponding to the waveform data stored in the waveform memory 7 and timbre data composed of various timbre parameters. Data is stored, and data related to control such as various programs executed by the CPU 1 is stored. When the control program is not stored in the ROM 2, the control program is stored in the hard disk 6 and read into the RAM 3, so that the CPU 1 performs the same operation as when the control program is stored in the ROM 2. Can be made. In this way, control programs can be easily added and upgraded. It is not limited to an external storage device such as the hard disk 6 (HD), but an abbreviation of a floppy disk (FD), a compact disk (CD-ROM / CD-RAM), a magneto-optical disk (MO), or a DVD (Digital Versatile Disk). It is also possible to use an external storage device that uses various types of removable storage media.
[0014]
The CPU 1 gives an instruction to generate a musical tone to the waveform memory sound source unit 8 in accordance with performance information (such as a MIDI event) given from the MIDI interface 10, the performance operator 11 or the like, or generated by automatic performance processing executed by the CPU 1. Specifically, the CPU 1 performs a “note on event process” to be described later when a note on event instructing the start of musical tone generation is given or occurs. That is, according to performance information and setting information input from the performance operator 11 or the like, tone generation channel assignment and tone control parameters are created, and various tone control parameters corresponding to the assigned tone generation channels are stored in the tone generator register 8A. Set for The waveform memory sound source 8 performs a musical sound generation process for generating musical sound data. That is, on the basis of various musical tone control parameters set in the tone generator register 8A corresponding to each tone generation channel, waveform data for a plurality of channels is read out from the waveform memory 7 in a time-sharing manner (read processing unit 8B), and interpolation is performed. The tone data is subjected to tone control (that is, volume control based on the envelope of each tone generation channel generated by the EG processing unit 8C) for each tone generation channel (EG processing unit 8C), and the waveforms for a plurality of channels whose volume control is performed. Data (musical sound waveform) is accumulated (channel accumulation unit 8D). The waveform memory 7 stores a plurality of waveform data, and the tone generator register 8A has a waveform for designating which waveform data the readout processing unit 8B reads from the waveform memory 7 for each tone generation channel. Contains data specification information. Here, when a sound volume envelope is given to the musical sound waveform generated from the read processing unit 8B, the sound volume envelope is further controlled by the envelope generated by the EG processing unit 8C. Then, various effects are given to the accumulated result according to the musical tone control parameter (EF processing unit 8E), and musical tone data is generated. The musical tone data generated in this way is output to the DAC 9. The DAC 9 is a digital / analog converter, and the DAC 9 converts the digital musical tone data generated and output from the waveform memory sound source 8 into analog musical tone data. The sound system 9A emits an actual musical sound based on the analog musical sound data.
[0015]
The waveform memory 7 stores waveform data of one to a plurality of periods for one sound, and the waveform data includes a plurality of timbres and music characteristics (characteristics according to pitch or range, modulation characteristics such as vibrato and slur). It corresponds to. That is, the tone signal generation method in the waveform memory sound source 8 is a waveform memory that sequentially reads waveform data (musical sound waveform sample value data) stored in the waveform memory in accordance with address data that changes in accordance with the pitch of the tone to be generated. This is a readout method. Of course, the waveform memory sound source 8 (reading processing unit 8B, EG processing unit 8C, channel accumulation unit 8D, EF processing unit 8E) is not limited to the configuration of a sound source circuit using dedicated hardware, but a DSP and a microprogram Alternatively, the tone generator circuit may be configured using a CPU and software. Further, a single circuit may be used in a time-sharing manner to form a plurality of sound generation channels, or one sound generation channel may be formed from a single circuit. .
[0016]
The MIDI interface (I / F) 10 inputs MIDI standard performance information (MIDI data) from another MIDI device to the electronic musical instrument, or receives MIDI standard performance information (MIDI data) from the electronic musical instrument. This is an interface for outputting to other MIDI devices. The MIDI interface 10 is not limited to a dedicated MIDI interface, and a MIDI interface is configured using a general-purpose interface such as RS232-C, USB (Universal Serial Bus), IEEE 1394 (Eye Triple E 1394). You may do it. In this case, data other than MIDI messages may be transmitted and received simultaneously.
When the general-purpose interface as described above is used, the control program is connected from the server computer by connecting the interface to a communication network such as a LAN, the Internet, or a telephone line, and connecting to the server computer via the communication network. Alternatively, various data may be taken into the electronic musical instrument side. That is, when the control program and various data are not stored in the ROM 2 and the hard disk 6, the control program and various data are downloaded from the server computer. An electronic musical instrument serving as a client transmits a command requesting download of a control program and various data to a server computer via a communication network. Upon receiving this command, the server computer distributes the requested control program and data to the electronic musical instrument via the communication network, and the electronic musical instrument receives these control program and various data and stores them in the hard disk 6. This completes the download.
[0017]
As described above, in the electronic musical instrument shown in FIG. 1, the sound channel assignment method is implemented by the computer executing a predetermined program (software) for realizing the sound channel assignment method according to the present invention. Therefore, a predetermined program (software) for realizing this sound channel assignment method will be described. FIG. 2 is a flowchart showing an example of “note-on event processing” executed in the electronic musical instrument described above. This processing is executed when a note-on event occurs in response to an operation of a predetermined performance operator 11 or a note-on input from the MIDI interface 10, and the performance operator operated thereby. The musical sound corresponding to 11 is started.
In step S1, information (for example, note number) indicating the pitch of the sound related to the note-on event (that is, the sound instructed to be generated), information indicating the initial touch intensity of the sound related to the note-on event (for example, Velocity), part information (for example, part number) that receives the MIDI channel to which note-on is input, a predetermined register NN (register for storing note number) corresponding to each, register VL (register for storing velocity), Store in the register PT (register storing the part number). Then, it is detected whether or not there is a sound channel that is currently vacant (that is, not assigned) for generating a musical sound (referred to as an empty channel) (step S2). This empty channel includes a sound generation channel that is released after the volume is attenuated and the volume level is “0” after note-off. If there is an empty channel (YES in step S3), the channel number assigned to the empty channel is stored in the register AS (step S4).
[0018]
On the other hand, if all the sound generation channels have already been allocated and there are no empty channels (NO in step S3), the truncation channel (ie, the truncation channel determination process) (see FIG. 3) described later is performed. Performs a rapid decay process, which will be described later, to forcibly mute the musical sound that is sounding, determines the sound channel that is to be “truncated” as an empty channel, and is attached to the sound channel selected as the truncation channel. The stored channel number is stored in the register AS (step S7). Then, based on the channel number stored in the register AS, a rapid decay process is performed on the musical sound being sounded in the corresponding sounding channel. In this rapid attenuation process, the musical sound that is being sounded in the sound channel selected as the truncated channel is attenuated and muted.
In step S5, the tone control parameters corresponding to the register PT, register NN, and register VL are set to the tone generation channel corresponding to the channel number held in the register AS. The sound generation channel (that is, the sound generation channel corresponding to the channel number held in the register AS) is instructed to start sound generation (step S6).
[0019]
FIG. 3 is a flowchart showing an example of the “truncate channel determination process” (see step S7 in FIG. 2) executed in the “note-on event process” described above. This process is a process of selecting and determining a sound generation channel (truncate channel) for performing the “truncate process”.
In step S11, a search target part is determined. In other words, in order to select a sound generation channel to be subjected to “truncate processing” from any of the sound generation channels that are generating the sound of a specific performance part, a specific performance part is searched from among all performance parts. Narrow down as a performance part. By narrowing down the performance parts, the “truncate process” is speeded up and the sound channel is quickly assigned. Therefore, the sound is generated from the waveform memory sound source 8 without delay with respect to the note-on event. Control can be performed (ie, delay in pronunciation can be prevented). As a method of narrowing down performance parts, for example, “a performance part that is sounding on one or more sound channels and has a low priority” is selected as a search target part, or “a predetermined number of reserves” There is a method in which a performance part that uses more sound channels than (the minimum number of channels set for each part to be left) is set as a performance part to be searched. After the performance parts have been narrowed down, a sound channel to which a musical sound belonging to the performance part narrowed down as a search target is currently allocated (a musical sound is being generated) is detected from all the sound generation channels (step S12). That is, a list of tone generation channels to which musical sounds belonging to the narrowed performance parts are assigned is created. Out of the sound generation channels in this list, the sound generation channel to be subjected to the “truncate process” is determined by the process described later. Therefore, first, the first sounding channel (that is, the sounding channel detected first) in the created list is designated as a processing target to be performed in steps S14 to S17 described later (step S13).
[0020]
In step S14, an elapsed time from the start of tone generation to the present in the tone generation channel designated in step S13 is detected. That is, for each sound channel, the “time when the sound channel is note-on” is stored at the time of “note-on event processing”. Here, the current time and the “time when the sound channel is note-on” are stored. By detecting the difference, the “time from the start of sound generation of the sound generation channel” (elapsed time) is detected. In step S15, by referring to the “waveform envelope table” (details will be described later) corresponding to the waveform data read from the waveform memory 7 by the read processing unit 8B in the channel by the “elapsed time”, the waveform Get the “envelope current value” of the data. In step S16, “the envelope current value generated by the envelope generation processing of the channel in the EG processing unit 8C” is read from the sound generation channel of the waveform memory sound source 8. In step S17, “the envelope current value of the waveform data” acquired in step S15 and “the envelope current value of the EG processing unit 8C” acquired in step S16 are added. When each “envelope current value” is expressed by a logarithmic value (for example, decibel value), the addition corresponds to multiplication by a linear value. Therefore, when each of the above “envelope current values” is expressed as a logarithmic value, an adder may be used as an arithmetic unit. On the other hand, when these are expressed as linear values, a multiplier is used as an arithmetic unit. That's fine.
The value obtained by addition (or multiplication) in this way is the “volume level current value” of the sound generation channel. The calculation of the “volume level current value” of the sound generation channel (see step S15 to step S17) will be described in detail later using a specific example.
[0021]
After calculating the “volume level current value”, it is determined whether there is a next sound channel (step S18). That is, it is determined whether or not there are a plurality of sound generation channels that are generating a musical sound instructed to be generated for the part narrowed down as the search target detected in step S12. If there are a plurality of sound generation channels (YES in step S18), the next sound generation channel is designated (step S20), the process returns to step S14, and the above processes are repeated. Calculate “volume level current value” for each sound channel. On the other hand, if there is no next sounding channel (NO in step S18), the sounding channel with the lowest volume level is detected, and the channel number assigned to the sounding channel is stored in the register AS. That is, the sound channel whose sound volume level is the lowest is searched from the sound channels for which the “volume level current value” is calculated, and the channel number is stored in the register AS. Then, the “truncate channel determination process” is terminated, and the process returns to the “note on event process”. In the “note on event processing”, “truncation processing” is performed on the tone generation channel assigned the channel number stored in the register AS (see step S8 in FIG. 2).
In this way, by performing “note on event processing” and “truncate channel determination processing”, an empty channel is searched according to the occurrence of a note on event according to the operation of the performance operator 11, and the searched empty channel is searched. A musical sound is generated by assigning a musical sound related to the note-on event to Alternatively, if there is no empty channel as a result of the search, the tone generation channel to which the musical sound that has been subjected to the “truncation process” and rapidly attenuated is assigned is set as an empty channel, and a new note-on event related to the note on event is assigned to the tone generation channel. A musical sound is assigned to be able to sound.
[0022]
Note that the method of narrowing down the range for selecting the sound channel to be subjected to the “truncation process” described in step S11 may not be performed in units of parts. That is, in addition to the method performed in units of parts, for example, narrowing down may be performed in units of tone ranges or tone color groups. Alternatively, all parts may be set as search target parts without performing any narrowing down. In step S16, instead of reading out the current envelope value from each sound generation channel of the waveform memory sound source 8, a “pseudo-envelope” is generated by simulating the temporal change in volume by calculation, and this generated “pseudo-envelope” May be used. This “pseudo-envelope” represents a volume envelope generated in a pseudo manner to be added to a musical sound signal generated based on the waveform data read out from the waveform memory 7 for each tone generation channel.
[0023]
Here, the volume envelope for each waveform data stored in the waveform memory 7 will be briefly described. As described above, this electronic musical instrument employs a waveform memory reading system that sequentially reads the waveform data stored in the waveform memory 7 in accordance with the address data that changes according to the pitch of the musical tone to be generated. The waveform memory 7 stores waveform data according to various performance modes of various natural musical instruments composed of a plurality of periodic waveforms. This waveform data may be waveform data of the entire performance, or may be only a certain phrase, one sound, or only part of waveform data of a characteristic performance such as an attack part or a release part. Among the waveform data, there is one in which the waveform data itself has a temporal change in volume (volume envelope). This volume envelope is stored in the waveform memory 7 together with the waveform data as a waveform envelope table for each waveform data. FIG. 4 is a conceptual diagram showing an example of a volume envelope value stored as a waveform envelope table. In this embodiment, the waveform envelope table in the waveform data of the attack portion + loop portion configuration is shown as an example. In this figure, the vertical axis represents the volume envelope value and the horizontal axis represents time.
In the waveform envelope table, a pseudo sound volume envelope value for a predetermined time (in this embodiment, a length of about 10 seconds from the start position of the waveform data) is stored for each waveform data. The pseudo sound volume envelope value is a sample value obtained by sampling the sound volume envelope extracted from the waveform data at predetermined time intervals (for example, every 10 milliseconds). The pseudo-volume envelope shown in the present embodiment changes so that the pseudo-volume envelope value decreases with the passage of time in the attack portion of the waveform data, and from the point where the waveform data enters the loop portion, regardless of the passage of time. It is a shape that remains constant.
[0024]
In this embodiment, the pseudo-volume envelope value is stored as a waveform envelope table for a predetermined time length (length of about 10 seconds) regardless of the length of the attack portion of the waveform data. The pseudo sound volume envelope value may be stored as a waveform envelope table for a time length corresponding to the time length of the attack portion of each waveform data stored in the waveform memory 7. For example, if the time length of the attack portion of the waveform data is 5 seconds (or 15 seconds), the time length of the waveform envelope table may be stored for 5 seconds (or 15 seconds). However, as described above, if the waveform envelope table is unified and configured for a predetermined time length regardless of the length of the attack portion of each waveform data, if the waveform data has a time length shorter than that, Since there is no need to detect the end position of the waveform data, there is an advantage that the program (software) can be configured easily. For example, when the attack portion of the waveform data is 5 seconds long, the waveform envelope table stores the pseudo volume envelope value of the attack portion for the first 5 seconds, and the latter 5 seconds is a loop. The pseudo volume envelope value of the part is stored. Since the pseudo sound volume envelope value of the loop portion is a constant value regardless of the passage of time, it is not particularly necessary to detect the end position of the waveform data and match the waveform envelope table.
[0025]
Note that the temporal change in the pseudo sound volume envelope value common to a plurality of waveform data may be stored as a waveform envelope table. Further, the waveform envelope table is not a pseudo volume envelope composed of sample values themselves obtained by sampling the volume envelope extracted from the waveform data at predetermined time intervals, but a pseudo volume envelope obtained by processing some sample values. Good. For example, when the head part of the pseudo sound volume envelope composed of actual sample values is lowered, it is preferable to create a waveform envelope table in which the pseudo sound volume envelope is processed so that the head part is not lowered (see dotted line diagram). ). In this way, it is possible to avoid inconveniences when the pronunciation assignment is made at the head portion (that is, immediately after the start of the pronunciation). That is, if the sample value remains as it is, the “truncation process” is performed at the beginning, and the musical sound that is sounded based on the waveform data is muted immediately after the start of sounding, which is very inconvenient. . Therefore, the sample value at the beginning is processed to prevent this from happening. Of course, it is not absolutely necessary to process, it is better to process. That is, it is not necessary to process.
The waveform envelope table may be stored together with the waveform data in the waveform memory 7, or may be stored in a storage device such as the hard disk 6 different from the waveform memory 7 or an external storage medium such as an FD. May be.
In addition, in this embodiment, the waveform envelope table related to “waveform data of the attack portion + loop portion configuration” is shown. However, the waveform data may be any configuration as long as it has a “multi-period waveform not for loop readout” configuration. There may be.
[0026]
Next, calculation of the “volume level current value” of the sound generation channel (see step S15 to step S17 in FIG. 3) will be described in detail with reference to a specific example.
FIG. 5 is a diagram for explaining the calculation of the “volume level current value” of the sound generation channel. FIG. 5A is a conceptual diagram showing a state in which waveform data composed of an attack portion and a loop portion is read out by one sound generation channel in response to note-on occurring at time T0. FIG. 5B is a diagram showing a volume envelope (that is, a volume envelope generated based on the waveform envelope table) that the waveform data of FIG. 5A has in advance. FIG. 5C is a diagram showing an envelope generated in order to control the volume of the waveform data of the sound generation channel by the envelope generator (EG processing unit 8C). FIG. 5D shows a volume envelope of a musical sound actually generated in a predetermined sound generation channel (this is called a “volume level” and is generated by an envelope generator (EG processing unit 8C) shown in FIG. 5C. Is distinguished from the volume envelope of the generated sound channel). In each of FIGS. 5B to 5D, the vertical axis represents the volume envelope value and the horizontal axis represents time.
[0027]
First, when a note-on event is received, waveform data corresponding to the note-on event is selectively read from the waveform memory 7. In this embodiment, as time elapses, the waveform data of the entire attack portion consisting of a characteristic multi-period waveform and the subsequent loop waveform consisting of a single-period waveform are repeatedly read out a plurality of times. Then, by referring to the envelope table corresponding to the read waveform data with the elapsed time from the start of sound generation (note-on), the volume of the waveform corresponding to the envelope of the waveform data in the waveform memory 7 The current envelope value is acquired (see step S15 in FIG. 3). For example, when the envelope table corresponding to the waveform data has a shape as shown in FIG. 4, a volume envelope as shown in FIG. 5B is generated. The shape of the attack portion of the volume envelope is the same except for the waveform envelope table and a part of the head portion. The shape of the loop portion of the volume envelope of the waveform is a shape that maintains a constant value after the loop portion is read (after time T1) as long as the loop portion of the waveform data is repeatedly read. The volume envelope value at a predetermined time of the volume envelope generated in this way is acquired as the waveform envelope current value.
Next, the volume envelope current value read from the waveform memory sound source 8 in step S16 in FIG. 3, that is, the envelope generated by the EG processing unit 8C to control the volume of the waveform data of the sound generation channel will be described. Note that the EG processing unit 8C generates an envelope that is approximated by a polyline having a plurality of states. The tone generator register 8A stores an envelope target value and an envelope change speed for each state for controlling the envelope. FIG. 5C shows a volume envelope having a shape in which the volume envelope value remains constant in the attack portion (time T0 to T1) and gradually decreases when the loop portion is entered (after time T1). However, the decay rate of the volume envelope value differs between time T1 and T2 and after time T2 (after receiving the note-off event). A volume envelope value at a predetermined time of the volume envelope generated in this way is acquired as an envelope current value of a predetermined tone generation channel read by the envelope generator (EG processing unit 8C).
Further, when the volume envelope of the acquired waveform (see FIG. 5B) and the volume envelope read from the waveform memory sound source 8 (see FIG. 5C) are added, the volume envelope as shown in FIG. (Volume level) is obtained. The volume envelope value at a predetermined time of the volume level is acquired as the “volume level current value” of the sound generation channel (see step S17).
[0028]
In this way, the “volume level current value” is acquired for each sound generation channel, and the “volume level” for each channel is compared with each other to determine the “truncate channel” (see step S19 in FIG. 3). Conventionally, instead of this “volume level current value”, the “truncated channel” is determined by comparing, for example, the envelope current value of the sound generation channel read by the envelope generator (EG processing unit 8C). The sound channel could not be assigned. That is, as apparent from a comparison between FIG. 5C and FIG. 5D, the volume envelope (FIG. 5C) of the predetermined sounding channel read by the envelope generator (EG processing unit 8C) is actually This is a shape that is very different from the volume envelope (volume level) of the musical sound that is pronounced. Therefore, when the current value of the volume envelope when a predetermined time elapses from the start of sound generation is obtained from the sound volume envelope (FIG. 5C) of the predetermined sound channel read by the envelope generator (EG processing unit 8C), the sound is actually generated. The volume envelope (volume level) of the musical tone to be played is not sufficiently reflected, and a greatly different volume envelope value is acquired. However, in the present invention, a volume envelope (volume level) of a musical sound that is actually sounded is generated, and a “truncated channel” is selected as the “volume level current value” according to the generated sound volume envelope. Can be done.
[0029]
When the sound channel assignment method as described above is applied to an electronic musical instrument, the electronic musical instrument is not limited to a keyboard instrument, and may be any type of instrument such as a stringed instrument, a wind instrument, or a percussion instrument. In this case, the waveform memory sound source 8 and the like are not limited to those built in one electronic musical instrument body, but each is configured separately, and each component is connected using communication means such as a MIDI interface or various networks. Needless to say, the present invention can be similarly applied to the structure configured as described above. In addition, a configuration of a personal computer and application software may be used. In this case, the processing program may be supplied from a storage medium such as a magnetic disk, an optical disk, or a semiconductor memory, or may be supplied via a network.
[0030]
【The invention's effect】
According to the present invention, the volume envelope value of the waveform data and the volume envelope value read from the sound channel are combined to calculate the “volume level current value” of the sound channel, and this “volume level current value”. The “truncate channel” is determined based on the sound, so it is possible to assign an appropriate sound channel without performing “truncate processing” that adds unnaturalness to the sound when assigning sound channels. There is an excellent effect of being able to.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of a hardware configuration of an electronic musical instrument to which a tone generation channel assignment method according to the present invention is applied.
FIG. 2 is a flowchart showing an example of “note-on event processing” executed in the electronic musical instrument shown in FIG. 1;
FIG. 3 is a flowchart showing an example of “truncate channel determination processing” executed in “note-on event processing” shown in FIG. 2;
FIG. 4 is a conceptual diagram showing an example of a volume envelope stored in a waveform envelope table.
FIG. 5 is a diagram for explaining calculation of a “volume level current value” of a sound generation channel.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... CPU, 2 ... Read-only memory (ROM), 3 ... Random access memory (RAM), 4 ... Display, 5 ... Display switch, 6 ... Hard disk, 7 ... Waveform memory, 8 ... Waveform memory sound source, 9 ... DAC, 9A ... sound system, 10 ... MIDI interface, 11 ... performance controller, 12 ... timer, 1D ... bus line

Claims (2)

波形データを記憶した波形メモリから各発音チャンネル毎に波形データを読み出し、読み出した波形データに基づき生成される楽音信号に対して各発音チャンネル毎に更に音量エンベロープ付与制御を行う音源において、新たな楽音の発音が指示されたときに、該新たな楽音を割り当てる発音チャンネルを選定する発音割り当て方法であって、前記波形メモリに記憶された波形データは当該波形データ自体が音量変化するものであり、
前記波形メモリに記憶された波形データの音量変化を示すエンベロープ情報を記憶した記憶手段を各発音チャンネル毎の前記波形データの発音開始からの経過時間により参照し、該エンベロープ情報に基づいて各発音チャンネルにおいて前記波形メモリから読み出されている波形データの現在の音量を示す模擬エンベロープ値情報を取得するステップと、
各発音チャンネルで生成する楽音信号に対して付与される前記音量エンベロープの現在値を示す音量エンベロープ値情報を取得するステップと、
各発音チャンネル毎に前記模擬エンベロープ値情報と前記音量エンベロープ値情報とを合成し、各発音チャンネル毎の音量現在値を算出するステップと、
算出した各発音チャンネル毎の音量現在値に基づいて、前記新たな楽音を割り当てるべき発音チャンネルを選定するステップと
を具備する発音チャンネル割り当て方法。
In the sound source that reads the waveform data for each tone generation channel from the waveform memory that stores the waveform data, and further controls the volume envelope for each tone generation channel for the tone signal generated based on the read waveform data, a new tone Is a sound assignment method for selecting a sound generation channel to which the new musical sound is assigned, and the waveform data stored in the waveform memory is such that the waveform data itself changes in volume,
A storage means for storing the envelope information indicating a volume change of the waveform data stored in the waveform memory reference by the elapsed time from the start of sounding of the waveform data of each tone generation channel, each sound channel based on the envelope information Obtaining simulated envelope value information indicating the current volume of the waveform data being read from the waveform memory at
Obtaining volume envelope value information indicating a current value of the volume envelope to be given to a musical sound signal generated in each tone generation channel;
Synthesizing the simulated envelope value information and the volume envelope value information for each tone generation channel, and calculating a current volume value for each tone generation channel;
And a step of selecting a sound generation channel to which the new musical sound is to be allocated based on the calculated current volume value for each sound generation channel.
波形データを記憶する記憶手段であって、該記憶手段に記憶された波形データは当該波形データ自体が音量変化するものであるものと、
前記記憶手段から各発音チャンネル毎に波形データを読み出し、読み出した波形データに基づき生成される楽音信号に対して各発音チャンネル毎に更に音量エンベロープ付与制御を行う音源と、
前記記憶手段に記憶された波形データの音量変化を示すエンベロープ情報を記憶した記憶部を各発音チャンネル毎の前記波形データの発音開始からの経過時間により参照し、該エンベロープ情報に基づいて各発音チャンネルにおいて前記記憶手段から読み出されている波形データの現在の音量を示す模擬エンベロープ値情報を取得する第1のエンベロープ取得手段と、
各発音チャンネルで生成する楽音信号に対して付与される前記音量エンベロープの現在値を示す音量エンベロープ値情報を取得する第2のエンベロープ取得手段と、
各発音チャンネル毎に前記模擬エンベロープ値情報と前記音量エンベロープ値情報とを合成し、各発音チャンネル毎の音量現在値を算出する算出手段と、
算出した各発音チャンネル毎の音量現在値に基づいて、前記新たな楽音を割り当てるべき発音チャンネルを選定する選定手段と
を具備する発音チャンネル割り当て装置。
Storage means for storing waveform data, and the waveform data stored in the storage means is such that the waveform data itself changes in volume;
A sound source that reads waveform data for each tone generation channel from the storage means, and further performs volume envelope addition control for each tone generation channel for a tone signal generated based on the read waveform data
A storage unit that stores the envelope information indicating a volume change of the waveform data stored in the storage means by referring the time elapsed from the start of sounding of the waveform data of each tone generation channel, each sound channel based on said envelope information First envelope acquisition means for acquiring simulated envelope value information indicating the current volume of the waveform data read from the storage means in
Second envelope acquisition means for acquiring volume envelope value information indicating a current value of the volume envelope to be given to a musical sound signal generated in each tone generation channel;
Calculating means for synthesizing the simulated envelope value information and the volume envelope value information for each sound channel, and calculating a current sound value for each sound channel;
A sounding channel assignment device comprising: selection means for selecting a sounding channel to which the new musical sound is to be assigned based on the calculated current volume value for each sounding channel.
JP2000075691A 2000-03-17 2000-03-17 Sound channel assignment method and apparatus Expired - Fee Related JP3716701B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000075691A JP3716701B2 (en) 2000-03-17 2000-03-17 Sound channel assignment method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000075691A JP3716701B2 (en) 2000-03-17 2000-03-17 Sound channel assignment method and apparatus

Publications (2)

Publication Number Publication Date
JP2001265341A JP2001265341A (en) 2001-09-28
JP3716701B2 true JP3716701B2 (en) 2005-11-16

Family

ID=18593547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000075691A Expired - Fee Related JP3716701B2 (en) 2000-03-17 2000-03-17 Sound channel assignment method and apparatus

Country Status (1)

Country Link
JP (1) JP3716701B2 (en)

Also Published As

Publication number Publication date
JP2001265341A (en) 2001-09-28

Similar Documents

Publication Publication Date Title
JP3812328B2 (en) Automatic accompaniment pattern generation apparatus and method
US7470855B2 (en) Tone control apparatus and method
EP3882906A1 (en) Electronic keyboard musical instrument and method of generating musical sound
US6576826B2 (en) Tone generation apparatus and method for simulating tone effect imparted by damper pedal
US8106287B2 (en) Tone control apparatus and method using virtual damper position
US7420113B2 (en) Rendition style determination apparatus and method
JPH11126070A (en) Musical sound generating method
US7271330B2 (en) Rendition style determination apparatus and computer program therefor
US6066793A (en) Device and method for executing control to shift tone-generation start timing at predetermined beat
JP3716701B2 (en) Sound channel assignment method and apparatus
US6169243B1 (en) Automatic performance apparatus with quick start by accelerated loading of setting data
US6040516A (en) Tone generation system using computer software and storage medium storing the computer software
JP3624780B2 (en) Music control device
JP3409642B2 (en) Automatic performance device, automatic performance data processing method, and electronic information storage medium
JP3758159B2 (en) Sound source control program
JP2002297139A (en) Playing data modification processor
JP7332002B2 (en) Electronic musical instrument, method and program
JP7124370B2 (en) Electronic musical instrument, method and program
JP4186855B2 (en) Musical sound control device and program
JP3632744B2 (en) Sound generation method
JP4106798B2 (en) Sound generator
JP2005049497A (en) Control program of sound source circuit and controller for the circuit
JPH0944160A (en) Musical tone generating method
JP4218566B2 (en) Musical sound control device and program
JP3627590B2 (en) Sound generation method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050523

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050822

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3716701

Country of ref document: JP

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130909

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees