JP3673388B2 - Musical sound channel assignment apparatus and musical sound channel assignment method - Google Patents
Musical sound channel assignment apparatus and musical sound channel assignment method Download PDFInfo
- Publication number
- JP3673388B2 JP3673388B2 JP01661798A JP1661798A JP3673388B2 JP 3673388 B2 JP3673388 B2 JP 3673388B2 JP 01661798 A JP01661798 A JP 01661798A JP 1661798 A JP1661798 A JP 1661798A JP 3673388 B2 JP3673388 B2 JP 3673388B2
- Authority
- JP
- Japan
- Prior art keywords
- channel
- sound
- component
- musical
- 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
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、楽音のチャンネル割り当て装置または楽音のチャンネル割り当て方法に関し、特に同じ周波数の楽音の合成の制御に関する。
【0002】
【従来技術】
従来、電子楽器のチャンネル割り当て装置では、同時に発音できる楽音数より多くない数の楽音生成チャンネルが時分割処理により構成され、新たな楽音の発生の指示があると、この楽音が上記複数のチャンネルの空きチャンネルに割り当てられ、これにより楽音が発生される。
【0003】
この各チャンネルに割り当てられる楽音は、キーボードの各キーの操作に応じており、音高(周波数)が異なっている。この楽音の波形は同じであったり異なっていたりする。この楽音の波形が異なれば音色も異なる。
【0004】
【発明が解決しようとする課題】
ところが、各チャンネルに割り当てられる複数の楽音の中には場合によって同じ音高(周波数)のものがあり、このような同じ周波数の楽音に別々のチャンネルを割り当てるのは無駄であった。また、それぞれ個別に生成されるエンベロープの楽音の中にも場合によって同じ音高(周波数)のものがあり、このような同じ周波数の楽音に別々のエンベロープを付加するのは無駄であった。
【0005】
【課題を解決するための手段】
上記目的を達成するため、本発明では、同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当て、これらチャンネルに楽音を割り当てるにあたり、各楽音の大きさを判別し、この判別結果に基づいて選び出した楽音にチャンネルを割り当てるようにした。
【0006】
これにより、大きさの小さい楽音には当初からチャンネルを割り当てないようにしたり、大きさの小さい楽音が割り当てられているチャンネルを大きさの大きい楽音に明け渡したりしてチャンネルの有効利用を図ることができ、また大きさの大きい楽音をチャンネルに優先的に割り当て、良い音感を実現することができる。
【0007】
【発明の実施の形態】
1.全体回路
図1は楽音制御装置または電子楽器の全体回路を示す。キーボード11の各キーは、楽音の発音及び消音を指示するもので、キースキャン回路12によってスキャンされ、キーオン、キーオフを示すデータが検出され、コントローラ2によってプログラム/データ記憶部4に書き込まれる。そして、それまでプログラム/データ記憶部4に記憶されていた各キーのオン、オフの状態を示すデータと比較され、各キーのオンイベント、オフイベントの判別が、コントローラ2によって行われる。
【0008】
このキーボード11の各キーには段差タッチスイッチが設けられ、各段差スイッチごとに上記スキャンが行われ、各段差スイッチの先頭のオン/オフごとにオンイベント/オフイベントの検出が行われる。この段差スイッチによってタッチの速さと強さを示す上記タッチ情報つまりイニシャルタッチデータとアフタタッチデータとが発生される。
【0009】
このキーボード11は、ローアキーボード、アッパーキーボード、ペダルキーボード等から成っており、それぞれにつき異なる音色の楽音、つまりエンベロープ波形の異なる楽音が発音される。そして、アッパーキーボードについては、1つのキーオンで2音色の楽音を同時に鳴らすことも可能である。なお、キーボード11は、電子弦楽器、電子吹奏(管)楽器、電子打楽器(パッド等)、コンピュータのキーボード等で代用される。
【0010】
パネルスイッチ群13の各スイッチは、パネルスキャン回路14によって、スキャンされる。このスキャンにより、各スイッチのオン、オフを示すデータが検出され、コントローラ2によってプログラム/データ記憶部4に書き込まれる。そして、それまでプログラム/データ記憶部4に記憶されていた各スイッチのオン、オフの状態を示すデータと比較され、各スイッチのオンイベント、オフイベントの判別が、コントローラ2によって行われる。
【0011】
ミディインターフェース15は、外部接続された電子楽器との間で楽音データの送受を行うためのインタフェースである。この楽音データはMIDI(ミュージカルインスツルメントデジタルインタフェース)規格のもので、この楽音データに基づいた発音も行われる。
【0012】
上記キーボード11またはミディインターフェース15には、自動演奏装置も含まれる。これらキーボード11、パネルスイッチ群13及びミディインターフェース15から発生された演奏情報(楽音発生情報)は、楽音を発生させるための情報である。
【0013】
上記演奏情報(楽音発生情報)は、音楽的ファクタ(因子)情報であり、音高(音域)情報(音高決定因子)、発音時間情報、演奏分野情報、発音数情報、共鳴度情報などである。発音時間情報は楽音の発音開始からの経過時間を示す。演奏分野情報は、演奏パート情報、楽音パート情報、楽器パート情報等を示し、例えばメロディ、伴奏、コード、ベース、リズム、MIDI等に対応したり、または上鍵盤、下鍵盤、足鍵盤、ソロ鍵盤、MIDI等に対応している。
【0014】
上記音高情報はキーナンバデータKNとして取り込まれる。このキーナンバデータKNはオクターブデータ(音域データ)と音名データとからなる。演奏分野情報は、パートナンバデータPNとして取り込まれ、このパートナンバデータPNは各演奏エリアを識別するデータであって、発音操作された楽音がどの演奏エリアからのものかによって設定される。
【0015】
発音時間情報は、トーンタイムデータTMとして取り込まれ、後述のフローチャートによって求められたり、キーオンイベントからのタイムカウントデータに基づいたり、またはエンベロープフェーズで代用される。この発音時間情報は特願平6−219324号明細書及び図面に発音開始からの経過時間情報として詳しく示される。
【0016】
発音数情報は同時に発音している楽音の数を示し、例えばアサインメントメモリ40のオン/オフデータが「1」の楽音の数に基づき、この数は特願平6−242878号の図9及び図15、特願平6−2476855号の図8及び図18、特願平6−276857号の図9及び図20、特願平6−276858号の図9及び図21のフローチャートに基づいて求められる。
【0017】
共鳴度情報は、同時に発音している1つの楽音と他の楽音との共鳴度を示す。この1つの楽音の音高周波数と他の楽音の音高周波数とが1:2、2:3、3:4、4:5、5:6など小さい整数数倍比であれば共鳴度情報の値は大きく、9:8、15:8、15:16、45:32、64:45など大きい整数数倍比であれば共鳴度情報の値は小さくなる。この共鳴度情報は特願平1−314818号の第7図の共鳴相関テーブル53または共鳴比率テーブル54から読み出される。
【0018】
さらに、上記パネルスイッチ群13には各種スイッチが設けられ、この各種スイッチは音色タブレット、エフェクトスイッチ、リズムスイッチ、ペダル、ホイール、レバー、ダイヤル、ハンドル、タッチスイッチ等であって楽器用のものである。このペダルはダンパーペダル、サスティンペダル、ミュートペダル、ソフトペダル等である。
【0019】
この各種スイッチより、楽音制御情報が発生され、この楽音制御情報は発生された楽音を制御する情報であって音楽的ファクタ(因子)情報であり、音色情報(音色決定因子)、タッチ情報(発音指示操作の速さ/強さ)、発音数情報、共鳴度情報、エフェクト情報、リズム情報、音像(ステレオ)情報、クオンタイズ情報、変調情報、テンポ情報、音量情報、エンベロープ情報等である。これら音楽的ファクタ情報も上記演奏情報(楽音情報)に合体され、上記各種スイッチより入力されるほか、上記自動演奏情報に合体されたり、上記インターフェイスで送受される演奏情報に合体される。
【0020】
上記音色情報は、鍵盤楽器(ピアノ等)、管楽器(フルート等)、弦楽器(バイオリン等)、打楽器(ドラム等)の楽器(発音媒体/発音手段)の種類等に対応しており、トーンナンバデータTNとして取り込まれる。上記エンベロープ情報は、エンベロープレベルEL、エンベロープタイムET、エンベロープフェーズEFなどである。
【0021】
このような音楽的ファクタ情報は、コントローラ2へ送られ、後述の各種信号、データ、パラメータの切り換えが行われ、楽音の内容が決定される。上記演奏情報(楽音発生情報)及び楽音制御情報はコントローラ2で処理され、各種データが楽音信号発生部5へ送られ、楽音波形信号MWが発生される。コントローラ2はCPU、ROM及びRAMなどからなっている。
【0022】
プログラム/データ記憶部4(内部記憶媒体/手段)はROMまたは書き込み可能なRAM、フラッシュメモリまたはEEPROM等の記憶装置からなり、光ディスクまたは磁気ディスク等の情報記憶部7(外部記憶媒体/手段)に記憶されるコンピュータのプログラムが書き写され記憶される(インストール/転送される)。またプログラム/データ記憶部4には外部の電子楽器またはコンピュータから上記MIDI装置または送受信装置を介して送信されるプログラムも記憶される(インストール/転送される)。このプログラムの記憶媒体は通信媒体も含む。
【0023】
このインストール(転送/複写)は、情報記憶部7が本楽音生成装置にセットされたとき、または本楽音生成装置の電源が投入されたとき自動的に実行され、または操作者による操作によってインストールされる。上記プログラムは、コントローラ2が各種処理を行うための後述するフローチャートに応じたプログラムである。
【0024】
なお、本装置に予め別のオペレーティングシステム、システムプログラム(OS)、その他のプログラムが記憶され、上記プログラムはこれらのOS、その他のプログラムとともに実行されてもよい。このプログラムは本装置(コンピュータ本体)にインストールされ実行されたときに、別のプログラムとともにまたは単独で請求項(クレーム)に記載された処理・機能を実行させることができればよい。
【0025】
また、このプログラムの一部又は全部が本装置以外の1つ以上の別装置に記憶されて実行され、本装置と別装置との間には通信手段を介して、これから処理するデータ/既に処理されたデータ/プログラムが送受され、本装置及び別装置全体として、本発明が実行されてもよい。
【0026】
このプログラム/データ記憶部4には、上述した音楽的ファクタ情報、上述した各種データ及びその他の各種データも記憶される。この各種データには時分割処理に必要なデータや時分割チャンネルへの割当のためデータ等も含まれる。
【0027】
楽音信号発生部5では、所定長の楽音波形信号MWが繰り返し発生されサウンドシステム6から発音出力される。上記音高情報に応じて、この繰り返し発生される楽音波形信号MWの発生速度は変化される。また上記音高色情報などの音楽的ファクタ情報に応じて、この繰り返し発生される楽音波形信号MWの波形形状は切り換えられる。この楽音信号発生部5は時分割処理によって複数の楽音信号が同時に生成されポリフォニックに発音される。
【0028】
タイミング発生部3からは、楽音生成装置の全回路の同期を取るためのタイミングコントロール信号が各回路に出力される。このタイミングコントロール信号は、各周期のクロック信号のほか、これらのクロック信号を論理積または論理和した信号、時分割処理のチャンネル分割時間の周期を持つ信号、チャンネルナンバデータCHNo、タイムカウントデータTIなどを含む。このタイムカウントデータTIは、絶対時間つまり時間の経過を示し、このタイムカウントデータTIのオーバフローリセットから次のオーバフローリセットまでの周期は、各楽音のうち最も長い発音時間より長く、場合によって数倍に設定される。
【0029】
2.成分音テーブル20
図2はプログラム/データ記憶部4内の成分音テーブル20を示す。この成分音テーブル20には、各音色(トーンナンバデータTN)の楽音を構成する各成分音のデータが記憶され、対応する成分音のデータがトーンナンバデータTNから変換され読み出される。この成分音のデータは、複数の周波数ナンバ比データFNR、複数のエンベロープデータ及びレベルデータLEからなっている。
【0030】
周波数ナンバ比データFNRは、音高に応じた基本周波数に対する各成分音の周波数の比を示す。指定された音高周波数に対して、この周波数ナンバ比データFNRが乗算され、各成分音の周波数が求められる。基本周波数の周波数ナンバ比データFNRは「1」であるから省略されてもよい。
【0031】
エンベロープデータは、上記各成分音ごとのエンベロープを示す。この各エンベロープデータは、各エンベロープフェーズごとのエンベロープスピードデータES及びエンベロープタイムデータETからなっている。エンベロープスピードデータESはエンベロープのデジタル演算1周期当たりの演算のステップ値を示す。エンベロープタイムデータETは各フェーズごとのエンベロープ演算時間(発生時間、発音時間)、つまり上記デジタル演算の各フェーズのごとの演算回数を示す。このエンベロープスピードデータES及びエンベロープタイムデータETによって演算されるエンベロープ波形の振幅は、各成分音(各楽音)の発生量を示す。
【0032】
この成分音の数は1つの音色につき複数であるが、場合によって1つもある。この成分音は1つの楽音につき合成されて出力される。この合成割合は上記エンベロープデータに応じて変化する。もしこのエンベロープデータによるエンベロープ演算レベルが「0」であれば、当該成分音の割合は「0」となる。この各成分音のそれぞれに1つずつチャンネルが割り当てられ、個別にエンベロープ制御され、合成されて出力される。
【0033】
レベルデータLEは、各成分音のエンベロープのサスティーンのレベルを示し、このレベルは上記エンベロープデータのサスティーン状態で達成される。したがって、このレベルデータLEは上記エンベロープスピードデータESとエンベロープタイムデータETとから演算されてもよく、省略されることも可能である。
【0034】
また、このレベルデータLEは、サスティーンレベルのほか、当該成分音の最大レベルまたはアタック到達レベルでもよい。この場合でも、当該レベルデータLEは上記エンベロープスピードデータESとエンベロープタイムデータETとから演算されてもよく、省略されることも可能である。さらに、このレベルデータLEは、当該成分音のエンベロープ波形の積分値に応じた値でもよい。これにより、レベルデータLEは当該成分音の音量エネルギーに応じたものとなる。
【0035】
3.アサインメントメモリ40
図3は、楽音信号発生部5のアサインメントメモリ40を示す。アサインメントメモリ40には、複数(16、32または64等)のチャンネルメモリエリアが形成されており、上記楽音信号発生部5に形成された複数の楽音生成チャンネルに割り当てられた成分音に関するデータが記憶される。
【0036】
これら各チャンネルメモリエリアには、チャンネルが割当られた成分音の周波数ナンバデータFN、キーナンバデータKN及びハイリリースフラグHRF、上記エンベロープスピードデータES並びにエンベロープタイムデータET、エンベロープフェーズデータEFが記憶される。なお、場合によって、トーンナンバデータTN、タッチデータTC、トーンタイムデータTM、パートナンバデータPN、上記共鳴度情報、オン/オフデータ等も記憶される。
【0037】
オン/オフデータは割り当られ発音する楽音(成分音)がキーオン中または発音中(“1”)かキーオフ中または消音中(“0”)かを示す。周波数ナンバデータFNは割り当られ発音する成分音の周波数値を示し、上記キーナンバデータKNから変換され、さらに上記周波数ナンバ比データFNRが乗算される。上記プログラム/データ記憶部4には、この変換のためのテーブル(デコーダ)が設けられている。
【0038】
ハイリリースフラグHRFは、当該チャンネルの楽音が新たな楽音にチャンネルを明け渡すことが決定されており、現在割り当て中の楽音が急速に減衰されていることを示す。このハイリリースフラグHRFはチャンネル明け渡しが決定されてセットされ、当該楽音がレベル「0」または所定未満になるとクリアされる。
【0039】
上記エンベロープスピードデータES及びエンベロープタイムデータETは上述したとおりである。このエンベロープスピードデータES及びエンベロープタイムデータETは、同じ周波数の新たな成分音が当該チャンネルに割り当てられるたびに書き換えられ、この新たな成分音を合成したエンベロープのエンベロープスピードデータES及びエンベロープタイムデータETに置き換えられる。
【0040】
エンベロープフェーズデータEFは図8の(1)(2)(3)の合成前のエンベロープまたは合成後のエンベロープの各部を示す。フェーズカウンタ50からのカウント値が取り込まれ、当該エンベロープフェーズデータEFとしてアサインメントメモリ40に記憶される。
【0041】
キーナンバデータKNは割り当られ発音する楽音の音高(周波数)を示し、上記音高情報に応じて決定される。このキーナンバデータKNは、1つの楽音を構成する各成分音すべてについて記憶され、オンイベントがあって当該成分音がチャンネル割り当てされ合成されるたびに、キーナンバデータKNがアサインメントメモリ40の該当チャンネルメモリエリアに付加記憶され、オフイベントのたびに対応するキーナンバデータKNは消去される。キーナンバデータKNの上位データは音域またはオクターブを示し、下位データは音名を示す。
【0042】
この各キーナンバデータKNに対応して当該成分音のエンベロープのリリースのエンベロープスピードデータES及びエンベロープタイムデータETが記憶される。このリリースのエンベロープスピードデータES及びエンベロープタイムデータETが1つの成分音で複数あれば、この複数全て記憶される。
【0043】
トーンナンバデータTNは、割り当てられ発音する楽音の音色を示し、上記音色情報に応じて決定される。このトーンナンバデータTNが異なれば音色も異なり、この楽音の楽音波形も異なる。タッチデータTCは、発音操作の速さまたは強さを示し、上記段差スイッチの操作に基づいて求められ、または上記タッチ情報に応じて決定される。パートナンバデータPNは、上述したように各演奏エリアを示し、発音操作された楽音がどの演奏エリアからのものかによって設定される。トーンタイムデータTMは、キーオンイベントからの経過時間を示す。
【0044】
これら各チャンネルメモリエリアの各データは、オンタイミング及び/又はオフタイミングに書き込まれ、各チャンネルタイミングごとに書き換えられたり、読み出されたりして、上記楽音信号発生部5で処理される。このアサインメントメモリ40は、楽音信号発生部5の中ではなく、プログラム/データ記憶部4またはコントローラ2の中に設けてもよい。
【0045】
上記時分割処理によって形成されるチャンネル、すなわち複数の楽音(成分音)を並行して発生するための複数の楽音発生システムへの各楽音の割り当て方法またはトランケート方法は、例えば特願平1−42298号、特願平1−305818号、特願平1−312175号、特願平2−208917号、特願平2−409577号、特願平2−409578号に示された方法が使われる。
【0046】
4.楽音信号発生部5
図4は上記楽音信号発生部5を示す。上記アサインメントメモリ40の各チャンネルの周波数ナンバデータFN等は波形読み出し部41へ送られ、楽音波形データMWが周波数ナンバデータFNに応じた速度(音高)で読み出される。読み出された楽音波形データMWは乗算器43でエンベロープデータENが乗算合成され、累算器44で全チャンネルの楽音波形データが累算合成され、上記サウンドシステム6で発音される。
【0047】
この楽音波形データMWはサイン波1種類だけである。したがって、1つの楽音につき周波数の異なる複数のサイン波が高調波合成されて出力される。よって各サイン波の振幅や周波数が変化すれば、合成される楽音の波形も変化し音色も変化する。このサイン波はメモリに記憶されるのではなく、三角関数演算によって上記トーンタイムデータTMまたは上記タイムカウントデータTIから変換されてもよい。
【0048】
なお、この楽音波形データMWはサイン波以外の複雑な波形でもよいし、音色、パート、音高(音域)、タッチ、発音時間ごとに異なる波形が記憶され選択されてもよい。この場合、トーンナンバデータTN、パートナンバデータPN、タッチデータTC等は、波形読み出し部41へ送られ、波形メモリ42からトーンナンバデータTN、パートナンバデータPN、タッチデータTCに応じた楽音波形データMWが選択され、この選択された楽音波形データMWが周波数ナンバデータFNに応じた速度(音高)で読み出される。
【0049】
上記アサインメントメモリ40の各チャンネルのエンベロープスピードデータESは、加算器46、エンベロープ演算メモリ48で時分割に順次累算され、エンベロープ演算データENが演算され、上記乗算器43へ上記エンベロープデータENとして送られる。エンベロープ演算メモリ48は時分割チャンネル数に応じたエリアを有し、各チャンネルのエンベロープ演算データENが記憶され、各チャンネルごとにエンベロープが演算される。
【0050】
このエンベロープ演算メモリ48は、上記チャンネルナンバデータCHNoによってアドレス指定され、この指定されたアドレスのみが書き込み/読み出しされたりリセットされたりする。このエンベロープ演算メモリ48の各チャンネルエリアはオフイベント信号または/及びオンイベント信号によって個別にリセット(クリア)される。
【0051】
上記アサインメントメモリ40の各チャンネルのエンベロープタイムデータETは、セレクタ47、エンベロープタイムメモリ49及び加算器51で順次「−1」され、「0」になるとフェーズ終了信号がナンドゲート群52で検出され出力される。このフェーズ終了信号はエンベロープの各フェーズの終了を示す。
【0052】
このフェーズ終了信号はフェーズカウンタ50へ入力され、インクリメントすなわち+1される。このフェーズカウンタ50では、各チャンネルのエンベロープのフェーズがカウントされる。このフェーズカウンタ50は、上記時分割チャンネル数に応じたカウンタが設けられ、上記チャンネルナンバデータCHNoによって指定されるカウンタのみがイネーブルとされ、この指定されたカウンタのみがインクリメントされたりリセットされたりする。
【0053】
上記フェーズカウンタ50は、オンイベント及びオフイベント時にコントローラ2によって、上記チャンネルナンバデータCHNoによって指定されるカウンタのみがリセット(クリア)される。このとき上述したようにエンベロープスピードデータES及びエンベロープタイムデータETの合成/書き換えが行われる。
【0054】
このフェーズカウンタ50のエンベロープフェーズデータEFは上記アサインメントメモリ40にアドレスデータとして送られ、各チャンネルの中の各フェーズごとのエンベロープスピードデータES及びエンベロープタイムデータETが読み出されたり書き込まれたりする。アサインメントメモリ40は、上記チャンネルナンバデータCHNoによってアドレス指定され、この指定されたアドレスのみが書き込み/読み出しされたクリアされたりする。このアサインメントメモリ40の各チャンネルエリアはオフイベント信号または/及びオンイベント信号によって個別にリセット(クリア)される。
【0055】
上記フェーズ終了信号は上記セレクタ47に送られて、上記エンベロープタイムデータETが次のフェーズのエンベロープタイムデータETに切り換えられる。上記エンベロープタイムメモリ49は、上記チャンネルナンバデータCHNoによってアドレス指定され、この指定されたアドレスのみが書き込み/読み出しされたりリセットされたりする。このエンベロープタイムメモリ49の各チャンネルエリアはオフイベント信号(オンイベント信号)によって個別にリセット(クリア)される。
【0056】
上記エンベロープ演算メモリ48からの各チャンネルのエンベロープ演算データENは乗算器131でチャンネル割り当てのための重み付けが行われ、修正エンベロープメモリ132に書き込まれる。修正エンベロープメモリ132は時分割チャンネル数に応じたエリアを有し、各チャンネルの修正エンベロープデータMENが記憶される。
【0057】
また、この重み付けされ修正された各修正エンベロープデータMENは、第1最小レベル検出回路141、第2最小レベル検出回路142及び第3最小レベル検出回路143で対比され、各チャンネルのうち1番目、2番目及び3番目に楽音のレベルが小さいチャンネルナンバが検出される。検出された第1最小チャンネルナンバ1MCH、第2最小チャンネルナンバ2MCH及び第3最小チャンネルナンバ3MCHは最小チャンネルメモリ134にストアされる。この各最小チャンネルナンバ1MCH、2MCH及び3MCHは、チャンネル明け渡し(トランケート)の優先順位を示す。
【0058】
この第1最小レベル検出回路141、第2最小レベル検出回路142及び第3最小レベル検出回路143では、上記修正エンベロープデータMENが「0」のチャンネルも検出され、この検出データが空きチャンネルフラグECFとして、上記各チャンネルナンバ1MCH、2MCH及び3MCHとともに、上記最小チャンネルメモリ134にストアされる。
【0059】
この第1最小レベル検出回路141、第2最小レベル検出回路142及び第3最小レベル検出回路143では、上記検出された各チャンネルの各修正エンベロープデータMENも検出され、この検出された3つの最小修正エンベロープデータ1MEN、2MEN及び3MENも上記最小チャンネルメモリ134にストアされる。この最小チャンネルメモリ134及び修正エンベロープメモリ132は、1つの時分割チャンネル時間の前半で書き込みされ、後半で読み出しされる。
【0060】
上記アサインメントメモリ40から読み出される各チャンネルの周波数ナンバデータFNは重み付けメモリ133へ送られて、重み付けデータWTが読み出され上記乗算器131へ送られ、チャンネル明け渡し(トランケート)の優先順位が重み付けされる。この重み付けメモリ133は、図12(2)に示すように各周波数ナンバデータFNに対して各重み付けデータWTが記憶されている。
【0061】
この特性(2)は楽音周波数が1000Hzから4000Hz当たりの中音付近の重み付けが大きくなり、低音と高音で重み付けが小さくなっている。この特性(2)は人間の等ラウドネス曲線または最低可聴曲線に沿ったものであり、人間の聴覚(ラウドネス特性、マスキング特性)に合致したチャンネル割り当ての優先特性を実現できる。これは同じ周波数の各成分音を合成してチャンネル割り当てを行っている本実施例でしかできない。
【0062】
上記最低可聴曲線は人間が聴くことのできる最低の音の強さ(デシベル、レベル)(最低可聴値)の周波数(音高)に応じた特性を表し、上記等ラウドネス曲線は人間が同じ強さに聴こえる音の強さ(デシベル、レベル)の周波数(音高)に応じた特性を表す。なお、図12(2)の特性では上記等ラウドネス曲線または最低可聴曲線が逆特性にされたので、中音域の数値が大きく高音域と低音域の数値が小さくなっている。
【0063】
また、この重み付けデータWTは図12(1)に示すように楽音周波数が低いほどこの重み付けデータWTは大きくなっており、低音の方がチャンネル割り当ての優先度が高くなっていてもよい。さらに、この重み付けデータWTは逆に低音の方がチャンネル明け渡し(トランケート)の頻度(可能性)が高くなってもよい。また、この重み付けメモリ133及び乗算器131は省略され、チャンネル割り当ての優先度が音楽的性質によって重み付けされなくてもよい。これにより、各チャンネルの合成成分音のレベルが小さいほどチャンネルトランケートの可能性(頻度)が高くなる。
【0064】
また、この重み付けメモリ133には、他の音楽的ファクタ情報が代わりに入力されてもよい。例えば上述のキーナンバデータKN、トーンナンバデータTN、パートナンバデータPN、タッチデータTC、トーンタイムデータTM、共鳴度情報などである。これにより、音域(音高)、音色、演奏分野、タッチ、発音時間、共鳴度などの音楽的性質にも応じてチャンネル割り当ての優先度が変化修正(決定制御)される。
【0065】
これにより、例えばトーン(音色)ナンバ、タッチデータ、共鳴度が大きいほど、音高(音域)、パートナンバ(MIDIチャンネルナンバ)または発音時間が小さいほど、チャンネル割り当ての優先度が高くなり、トランケートの可能性(頻度)が低くなる。なお、これらの各データが複数加算されて上記重み付けメモリ133へ送られてもよい。
【0066】
この楽音信号発生部5は音像を形成するステレオチャンネル(オーディオチャンネル)数に応じた数だけ設けられる。各ステレオ(オーデイオ)チャンネルの各アサインメントメモリ40の各チャンネルエリアには音像データが記憶され、この音像データが乗算器43で各チャンネルの楽音波形データ又はエンベロープデータENに乗算合成され音像が形成される。このようなステレオ(オーデイオ)チャンネルシステムのチャンネル割り当てシステムは、特願平3−204404号または特願平2−408859号の明細書及び図面に示される。
【0067】
5.各最小レベル検出回路141、142及び143
図13は上記第1最小レベル検出回路141、第2最小レベル検出回路142及び第3最小レベル検出回路143を示す。上記修正エンベロープメモリ132からの修正エンベロープデータMENは、第1最小レベル検出回路141のコンパレータ151に与えられる。このコンパレータ151には、それまでに検出して第1レベルラッチ171に記憶してある最小の修正エンベロープデータMENも与えられる。この最小の修正エンベロープデータMENより上記新たな修正エンベロープデータMENが小さければ、コンパレータ151より検出信号が出力され、この信号がアンドゲート152を介してラッチ信号として、上記第1レベルラッチ171に与えられ、上記新たな修正エンベロープデータMENがストアされる。
【0068】
また、このラッチ信号は、第1チャンネルナンバラッチ181にも与えられ、上記新たな修正エンベロープデータMENに係るチャンネルナンバがストアされる。このチャンネルナンバは、上記タイミング発生部3からの上記チャンネルナンバデータCHNoである。このようにして、全チャンネル分の分割タイムが経過すると、修正エンベロープデータMENが最も小さいチャンネルのナンバが第1チャンネルナンバラッチ181にストアされ、この最も小さい修正エンベロープデータMENの値が第1レベルラッチ171にストアされる。
【0069】
さらに、上記各チャンネルの修正エンベロープデータMENの各ビットはナンドゲート群191に入力されて、全ビットが「0」で修正エンベロープデータMENのレベルが「0」ときこのナンドゲート群191より上記空きチャンネルフラグECFの信号が出力され、第1フラグラッチ192にストアされる。上記ラッチ信号は、この第1フラグラッチ192に与えられ、当該タイミングでこのストアが行われる。
【0070】
上記アンドゲート152には、図14に示すクロック信号CK0が与えられており、1つのチャンネルの分割タイムの前半でコンパレータ151で比較され、後半で上記第1チャンネルナンバラッチ181、第1レベルラッチ171及び第1フラグラッチ192へストアされる。
【0071】
図14に示すように、全チャンネル分の分割タイムが経過すると、次の全チャンネル分の分割タイムの先頭でシェアリング信号SY1がラッチ信号として、第2レベルラッチ172、第2チャンネルナンバラッチ182及び第2フラグラッチ193に与えられ、最も小さい修正エンベロープデータMENが第1レベルラッチ171から第2レベルラッチ172に転送され、第1チャンネルナンバラッチ181のチャンネルナンバが第2チャンネルナンバラッチ82に転送され、第1フラグラッチ192の空きチャンネルフラグECFが第2フラグラッチ193に転送されて、最小チャンネルメモリ134に書き込まれる。
【0072】
このシェアリング信号SY1は、上記第1レベルラッチ171にも与えられて、同ラッチ171のラッチデータが最大値「11…1」にリセットされる。上述のラッチ181、182、171、172、192及び193はR−Sタイプである。
【0073】
上記第1最小レベル検出回路141の第2チャンネルナンバラッチ182からのチャンネルナンバデータは第2最小レベル検出回路142の一致判別回路153に与えられる。この一致判別回路153には、上記第1最小レベル検出回路141の第1チャンネルナンバラッチ181に与えられているものと同じチャンネルナンバも与えられている。両データが一致したとき、一致判別回路153の出力信号はローレベルとなり、アンドゲート156が閉成される。このアンドゲート156を介して、第2最小レベル検出回路142のコンパレータ154からの比較結果信号が第1チャンネルナンバラッチ183及び第1レベルラッチ173に与えられている。
【0074】
従って、第1最小レベル検出回路141で検出された第1最小修正エンベロープデータ1MEN及び第1最小チャンネルナンバデータ1MCHが、第2最小レベル検出回路141に与えられる時には、このデータのストアが禁止される。この結果、第2最小レベル検出回路141では、2番目に小さい修正エンベロープデータMEN及びチャンネルナンバと空きチャンネルフラグECFが検出される。上記一致判別回路153は、イクスクルシブオアゲート群とオアゲートとよりなり、2つのチャンネルナンバデータの各ビットが各イクスクルシブオアゲートに与えられて、各ビットデータの相違が判別され、1つのビットでも一致しないときには、ハイレベル信号がオアゲートを介して出力される。
【0075】
この第2最小レベル検出回路142のコンパレータ154、アンドゲート155、第1チャンネルナンバラッチ183、第2チャンネルナンバラッチ184、第1レベルラッチ173、第2レベルラッチ174、ナンドゲート群194、第1フラグラッチ195及び第2フラグラッチ196の構成及び動作は、上記第1最小レベル検出回路141のコンパレータ151、アンドゲート152、第1チャンネルナンバラッチ181、第2チャンネルナンバラッチ182、第1レベルラッチ171、第2レベルラッチ172、ナンドゲート群191、第1フラグラッチ192及び第2フラグラッチ193と同じである。
【0076】
そして、第3最小レベル検出回路143のコンパレータ159、アンドゲート160、第1チャンネルナンバラッチ185、第2チャンネルナンバラッチ186、第1レベルラッチ175、第2レベルラッチ176、アンドゲート161、一致判別回路157、ナンドゲート群197、第1フラグラッチ198及び第2フラグラッチ199の構成及び動作は、上記第2最小レベル検出回路142のコンパレータ154、アンドゲート155、第1チャンネルナンバラッチ183、第2チャンネルナンバラッチ185、第1レベルラッチ173、第2レベルラッチ175、アンドゲート156、一致判別回路153、ナンドゲート群194、第1フラグラッチ195及び第2フラグラッチ196と同じである。
【0077】
上記第2最小レベル検出回路142の一致判別回路153からの信号と第3最小レベル検出回路143の一致判別回路157からの信号とは、アンドゲート158に与えられ、このアンドゲート158の出力信号が、アンドゲート161に開成信号として与えられる。このアンドゲート161を介して、第3最小レベル検出回路143のコンパレータ159からの比較結果信号が第1チャンネルナンバラッチ185及び第1レベルラッチ175に与えられている。
【0078】
従って、第1最小レベル検出回路141で検出された第1最小修正エンベロープデータ1MEN並びに第1最小チャンネルナンバ1MCH及び第2最小レベル検出回路142で検出された第2最小修正エンベロープデータ2MEN並びに第2最小チャンネルナンバ2MCHが、第3最小レベル検出回路143に与えられる時には、これらデータのセットが禁止される。この結果、第3最小レベル検出回路143では、3番目に小さい第3修正エンベロープデータ3MEN及び第3最小チャンネルナンバ3MCHと空きチャンネルフラグECFが検出されることになる。
【0079】
同様にして、第4最小レベル検出回路、第5最小レベル検出回路……が設けられ、4番目に小さい第4修正エンベロープデータ4MEN及び第4最小チャンネルナンバ4MCHと空きチャンネルフラグECF、5番目に小さい第5最小修正エンベロープデータ5MEN及び第5最小チャンネルナンバ5MCHと空きチャンネルフラグECF、…、…が検出されてもよい。
【0080】
これら空きチャンネルフラグECFは、検出された各チャンネルの楽音の減衰が達成完了されて、レベルが「0」であることを示す。したがって、このチャンネルの楽音の急速減衰(ハイリリース)は不要であり、直ちに新たな楽音が割り当てられる。
【0081】
また、チャンネルに割り当てられている楽音が消音してエンベロープレベルが「0」であれば、当該チャンネルが第1最小チャンネルナンバ1MCHとなる。割り当て楽音のエンベロープレベルが「0」のチャンネルが複数であれば、先に「0」になったチャンネルが第1最小チャンネルナンバ1MCHとなり、次に「0」になったチャンネルが第2最小チャンネルナンバ2MCHとなる。
【0082】
上記各第2レベルラッチ172、174及び176より出力され、検出された各最小修正エンベロープデータ1MEN、2MEN及び3MENも、最小チャンネルメモリ134に記憶される。この検出され最小チャンネルメモリ134に記憶された各最小チャンネルナンバ1MCH、2MCH及び3MCH、各空きチャンネルフラグECF、各最小修正エンベロープデータ1MEN、2MEN及び3MENは、上記コントローラ(CPU)2に送られ、新たなチャンネル割り当てに利用される。
【0083】
なお、空きチャンネルフラグECFは、エンベロープ演算データENに基づいて検出されてもよい。この場合、各最小レベル検出回路141、142及び143のナンドゲート群191、194及び197には、修正エンベロープメモリ132からの修正エンベロープデータMENではなく、エンベロープ演算メモリ48からのエンベロープ演算データENが送り込まれる。
【0084】
また、上記空きチャンネルフラグECFは、修正エンベロープデータMENが「0」ではなく、所定値未満で検出されてもよい。この場合、修正エンベロープデータMENの一部の上位ビット群のみがナンドゲート群191、194及び197に入力される。
【0085】
6.処理全体
図5はコントローラ(CPU)2によって実行される処理全体のフローチャートを示す。この処理全体は本楽音生成装置の電源オンによって開始され、電源オフまで繰り返し実行される。
【0086】
まず、プログラム/データ記憶部4の初期化など種々のイニシャライズ処理が行われ(ステップ01)、上記キーボード11またはミディインターフェース15での手動演奏または自動演奏に基づき、発音処理が行われる(ステップ03)。
【0087】
この発音処理では、空きチャンネルがサーチされ、サーチされた空きチャンネルにオンイベントに係る楽音が割り当てられる。この楽音の内容は、上記キーボード11またはミディインターフェース15からの上記演奏情報(楽音発生情報)、楽音制御情報の音楽的ファクタ情報及びこのときプログラム/データ記憶部4に既に記憶されている音楽的ファクタ情報によって決定される。
【0088】
この場合、サーチされた空きチャンネルのアサインメントメモリ40のエリアに「1」のオン/オフデータ、周波数ナンバデータFN、エンベロープスピードデータES、エンベロープタイムデータEL、「0」のエンベロープフェーズデータEFなどが書き込まれる。場合によって、トーンナンバデータTN、タッチデータTC、パートナンバデータPN、「0」のトーンタイムデータTMも書き込まれる。
【0089】
次いで、上記キーボード11またはミディインターフェース15での手動演奏または自動演奏に基づき、消音(減衰)処理が行われる(ステップ05)。この消音(減衰)処理では、オフイベント(キーオフイベント、消音イベント)に係る楽音が割り当てられているチャンネルがサーチされ当該楽音が減衰され消音される。この場合、キーオフイベントに係る楽音のエンベロープフェーズがリリースとなり、エンベロープレベルが次第に「0」になる。
【0090】
さらに、上記ミディインターフェース15またはパネルスイッチ群13の各種スイッチの操作があれば、このスイッチに対応する音楽的ファクタ情報が取り込まれ、プログラム/データ記憶部4に記憶され、音楽的ファクタ情報が変更される(ステップ06)。この後、その他の処理が実行され(ステップ07)、上記ステップ02からこのステップ07までの処理が繰り返される。
【0091】
7.発音処理(ステップ03)
図6は上記ステップ03の発音処理のフローチャートを示す。まずアサインメントメモリ40の各チャンネルエリアにハイリリースフラグHRFがセットされていれば(ステップ51)、このチャンネルにつき、最小チャンネルメモリ134の中の当該チャンネルナンバに上記空きチャンネルフラグECFが立てられているとき(ステップ52)、プログラム/データ記憶部4(RAM)に一時記憶されていた当該チャンネルのエンベロープスピードデータES、エンベロープタイムデータET、周波数ナンバデータFNなどの楽音データがアサインメントメモリ40の当該チャンネルエリアに書き込まれ(ステップ53)、このチャンネルエリアのハイリリースフラグHRFがクリアされ、上記テップ58と同じように最小チャンネルナンバMCH及び最小修正エンベロープデータMENが消去される(ステップ54)。
【0092】
これにより、急速減衰(ハイリリース)された楽音がレベル「0」になったとき、この楽音のチャンネルが明け渡され、新たな楽音に当該チャンネルが割り当てられる。このステップ53で書き込まれる楽音データは後述するステップ57のハイリリース処理で準備される。
【0093】
そして、オンイベントがあると(ステップ11)、上記成分音テーブル20に基づいてこのオンイベントに係る楽音のトーンナンバデータTNに対応する周波数ナンバ比データFNR及びエンベロープスピードデータES並びにエンベロープタイムデータETが読み出される(ステップ12)。
【0094】
次いで、このオンイベントに係る楽音のキーナンバデータKNに対応した周波数ナンバデータFNに、この読み出された各周波数ナンバ比データFNRが乗算され、各成分音の周波数ナンバデータFNが求められる(ステップ13)。この場合オンイベントが複数あれば、複数の楽音の各成分音について周波数ナンバデータFNが求められる。
【0095】
そして、上記成分音テーブル20から各上記各成分音のレベルデータLEが読み出され(ステップ81)、読み出された各レベルデータLEに重み付けデータWTが乗算修正されプログラム/データ記憶部4(RAM)にストアされる(ステップ82)。この重み付けデータWTは上記プログラム/データ記憶部4(ROM)に記憶されており、図12(2)に示す特性を有している。なおこの図12は重み付けメモリ133に記憶されている重み付けデータWTを示すが、このステップ82における重み付けデータWTも同じものである。この特性(2)は上述の重み付けメモリ133で述べた通りである。
【0096】
ついで、アサインメントメモリ40内の既に割り当てられている各成分音の周波数ナンバデータFNと、上記ステップ13で求められた各周波数ナンバデータFNとが一致していれば(ステップ14)、このチャンネルの各フェーズのエンベロープスピードデータES及びエンベロープタイムデータETが合成エンベロープのものに書き換えられ、キーナンバデータKNが付加記憶される(ステップ15)。この合成エンベロープでは、既にこのチャンネルに割り当てられている単独成分音または合成成分音のエンベロープに、この新たな成分音のエンベロープが加算合成される。このステップ15のエンベロープ合成処理は後述する。
【0097】
このステップ15のエンベロープ合成処理では、これから新たに割り当てようとする複数の楽音の複数の成分音の周波数が同じであれば、これらの成分音についてもエンベロープ合成が行われる。このステップ15のエンベロープ合成では、合成される成分音の上記レベルデータLEも互いに加算(演算)合成される。
【0098】
このようなこれから新たに割り当てようとする楽音が複数の場合は、例えば発音操作が完全に同時になされ、オンイベントが同時に発生されたときや、自動演奏において演奏情報が同時に読み出されたときである。
【0099】
また、既に割り当てられている各成分音の周波数ナンバデータFNと、求められた各周波数ナンバデータFNとが一致していなければ(ステップ14)、空きチャンネルがサーチされる(ステップ16)。この空きチャンネルのナンバは、上記最小チャンネルメモリ134に記憶されている第1最小チャンネルナンバ1MCHである。
【0100】
ついで、上記ステップ82で乗算修正された各修正レベルデータMLEのうちもっとも値の大きいデータMLEまたはもっとも低音のデータMLEと最小チャンネルメモリ134に記憶されている第1最小修正エンベロープデータ1MENとが比較され(ステップ83)、第1最小修正エンベロープデータ1MENの方が小さく(ステップ84)、この第1最小チャンネルナンバ1MCHに空きチャンネルフラグECFが付加されていれば(ステップ56)、この第1最小チャンネルナンバ1MCHのアサインメントメモリ40のエリアに上記成分音の周波数ナンバデータFN、キーナンバデータKN及びエンベロープスピードデータES並びにエンベロープタイムデータETが書き込まれ、フェーズカウンタ50の対応チャンネルのカウンタがクリアされる(ステップ17)。
【0101】
こうして、既に成分音が割り当てられ、この成分音のレベルが小さくなっているチャンネルを、他の最大のレベルの成分音に明け渡すことができる。
【0102】
そして、この割り当てたチャンネルの第1最小チャンネルナンバ1MCH及び第1最小修正エンベロープデータ1MENが上記最小チャンネルメモリ134から消去され(ステップ58)、プログラム/データ記憶部4(RAM)の上記修正レベルデータMLEも消去され(ステップ86)、以上のエンベロープ合成処理またはチャンネル割り当て処理が他の成分音についても繰り返され(ステップ18)、その他の処理が行われる(ステップ19)。
【0103】
こうして、チャンネルに割り当てられているレベルの小さい成分音が順次消去され、レベルの大きい成分音が順次チャンネルに割り当てられ、小さい成分音と大きい成分音とが順次入れ替えられていく。
【0104】
さらに、全チャンネルの成分音が新たな成分音にすべて入れ替わっても、または全チャンネルが空いていて、全チャンネルに新たな成分音が割り当てられても、まだ新たな成分音が残ることがある。この場合、新たな成分音は修正レベルデータMLEが大きい方から割り当てられていくので、この残った成分音は修正レベルデータMLEが小さいものばかりであり、音感上問題はない。
【0105】
また、上記ステップ84で、第1最小修正エンベロープデータ1MENの方が大きければ、上記ステップ56、17、58、57のチャンネル明け渡し処理は行われないまま、上記修正レベルデータMLEが消去される(ステップ86)。こうして、新たな発音指示に基づく新たな成分音であっても、レベルが小さければチャンネルに割り当てられない。
【0106】
このように、チャンネルに成分音を割り当てるにあたり、各成分音の大きさを判別して選び出した成分音にチャンネルを割り当てることができる。しかも各成分音は重み付けされ(ステップ82)、この重み付けは人間の聴覚の特性(ラウドネス特性、マスキング特性)に応じており、この結果人間の聴覚に合致したチャンネル割り当ての優先特性を実現できる。これは同じ周波数の各成分音を合成してチャンネル割り当てを行っている本実施例でしかできない。
【0107】
さらに、この第1最小チャンネルナンバ1MCHに空きチャンネルフラグECFが付加されておらず(ステップ56)、最も減衰している成分音がまだレベル「0」に達していなければ、当該チャンネルの成分音が急速減衰されるハイリリース処理が実行される(ステップ57)。このハイリリース処理の後、当該チャンネルに新たな成分音が割り当てられる(ステップ51〜54)。
【0108】
なお、上記ステップ16の空きチャンネルのサーチ及びステップ83及び84の第1最小修正エンベロープデータ1MENとの対比では、第1最小チャンネルナンバ1MCHが既に消去されていれば(ステップ58)、第2最小修正エンベロープデータ2MENと対比されて(ステップ83、84)、第2最小チャンネルナンバ2MCHに応じたチャンネルに新たな成分音が割り当てられ(ステップ17)、修正エンベロープメモリ132の第2最小チャンネルナンバ2MCHが消去される(ステップ58)。
【0109】
また、第1最小チャンネルナンバ1MCH及び第2最小チャンネルナンバ2MCHが既に消去されていれば(ステップ58)、第3最小修正エンベロープデータ3MENと対比されて(ステップ83、84)、第3最小チャンネルナンバ3MCHに応じたチャンネルに新たな成分音が割り当てられ(ステップ17)、修正エンベロープメモリ132の第3最小チャンネルナンバ3MCHが消去される(ステップ58)。以下同様にして、第4最小チャンネルナンバ4MCH、第5最小チャンネルナンバ5MCH、……についても同様に処理され得る。
【0110】
さらに、上記ステップ56では、当該最小チャンネルナンバMCHに空きチャンネルフラグECFが付加されていても、アサインメント40の対応するチャンネルエリアにハイリリースフラグHRFが記憶されていれば、上記ステップ17のチャンネル割り当て処理は行われない。当該チャンネルの成分音は急速減衰中であり、次に割り当てられる成分音が予約されているからである。この場合処理は改めてステップ16へ戻る。
【0111】
また、上記ステップ58の最小チャンネルナンバMCHの消去は、上記ステップ57のハイリリース処理の後にも実行されてもよい。この場合、その後の再度同じチャンネルナンバが最小レベル検出回路141、142及び143でリストアップされ、ハイリリースの後、上記ステップ51〜54のチャンネル割り当て処理が実行される。
【0112】
8.チャンネルトランケートの例
図15は時分割チャンネルの割り当て及び明け渡し(トランケート)の例を示す。全チャンネル数が「15」で、このうち13個のチャンネルに、図15(1)に示す周波数の成分音が割り当てられており、2つのチャンネルが空いている。各周波数の成分音は図15(1)に示すレベルとなっており刻々と変化する。
【0113】
ここで図15(2)に示す成分音を持つ楽音のキーオンイベントがあると、この楽音の成分音の周波数とレベルは同図(2)のようになり、4つの成分音へのチャンネル割り当てが必要となる。
【0114】
この4つの成分音と同じ周波数の成分音にはチャンネル割り当てがなされていないと(ステップ14、18)、上記空いている2つのチャンネルに成分音が割り当てられ(ステップ16、17、58)、さらにレベルの低い2つの最小チャンネルナンバに残りの2つの成分音が割り当てられる(ステップ18、14、16、17、58)。
【0115】
こうして、図15(3)に示すように、レベルの低い2つの成分音が消去され、新たな成分音にチャンネルが明け渡し(トランケート)される。なお、新たなキーオンに係る楽音の成分音はアタック状態であって、まだレベルが低く、これから大きくなるものであり、図(3)とは異なり、明け渡され消去される成分音のレベルが、割り当てられ発音される成分音のレベルより大きいこともある。
【0116】
9.各成分音の対比の例
図18は上記ステップ83及び84の各成分音の修正レベルを対比して大きいものからチャンネルを割り当てる例を示す。図18(1)(2)(3)に示す3つの楽音がチャンネルに割り当てられる。図18(1)(2)(3)は各成分音のレベルと周波数を示す。
【0117】
なお、この図18(1)(2)(3)のうちの1つは既にチャンネルに割り当てられている1つまたは複数の楽音の各成分音の周波数とレベルを示すものでもよい。また、この図18(1)(2)(3)に示されるこれからチャンネルに割り当てられる楽音は1つだけであって、この1つの成分音の数が「16」を越えていてもよい。
【0118】
図18(1)の成分音の数は12個であり、図18(2)と図18(3)の成分音の数はともに6個である。これらのうち、周波数の同じ成分音は4個であると、これらの成分音は合成され、これら成分音のレベルデータLEもそれぞれ加算(演算)合成される(ステップ15)。
【0119】
これらを合成すると図18(4)に示す周波数スペクトル特性になり、成分音の数は20個となる(ステップ81)。全チャンネル数が16個であると、4つの成分音を消去することになる。この20個の成分音のレベルデータLEに対して図18(5)に示す人間のラウドネス特性に応じた重み付けデータWTが乗算合成され、20個の修正レベルデータMLEが求められる(ステップ82)。この場合、周波数の同じ成分音のレベルデータLEは既に加算(演算)合成されている。
【0120】
このうち大きさ(値)の小さい4つの成分音は残されチャンネルに割り当てられることができず、または消去され(ステップ86)、図18(6)に示す16個の成分音がチャンネルに割り当てられる(ステップ56、17、58、57、86、51〜54)。この図18(6)の成分音を合成すると図18(7)に示す楽音波形となる。この合成は上記累算器44で実行される。
【0121】
こうして、新たなオンイベント(発音指示)に基づく新たな成分音であっても、大きさが小さければ当初からチャンネルには割り当てられない。また、大きさの小さい成分音が割り当てられているチャンネルを大きさの大きい楽音に明け渡してチャンネルの有効利用を図ることができる。こうして総合的に大きさの大きい成分音をチャンネルに優先的に割り当て、良い音感を実現することができる。
【0122】
また、上記各成分音の周波数は指定された音高に応じて変化し、上記重み付けデータWTも成分音の周波数によって変化する。したがって、各成分音のチャンネル割り当ての優先度または明け渡しの可能性も指定音高によって変化する。
【0123】
なお、上記重み付けデータWT、レベルデータLEまたは修正レベルデータMLEは、上記音楽的ファクタ情報で代用されてもよい。例えば上述のキーナンバデータKN、トーンナンバデータTN、パートナンバデータPN、タッチデータTC、トーンタイムデータTM、共鳴度情報などである。これにより、音域(音高)、音色、演奏分野、タッチ、発音時間、共鳴度などの音楽的性質にも応じてチャンネル割り当ての優先度が変化修正(決定制御)される。
【0124】
これにより、例えばトーン(音色)ナンバ、タッチデータ、共鳴度が大きいほど、音高(音域)、パートナンバ(MIDIチャンネルナンバ)または発音時間が小さいほど、チャンネル割り当ての優先度が高くなり、トランケートの可能性(頻度)が低くなる。なお、こられの各データが複数加算されて上記重み付けデータWT、レベルデータLEまたは修正レベルデータMLEが作成されステップ82で乗算合成されてもよい。
【0125】
このようなチャンネル割り当て(トランケート)処理は、音像を形成するステレオ(オーデイオ)チャンネルごとに実行される。各ステレオ(オーデイオ)チャンネルの成分音には音像データが乗算され、これにさらに重み付けデータWTが乗算されて(ステップ82)、上記ステップチャンネル割り当て(明け渡し)が行われる(ステップ56、17、58、57、86、51〜54)。したがって、同じ成分音がすべてのステレオ(オーデイオ)チャンネルを通じて発音されるとは限られず、一部のステレオ(オーデイオ)チャンネルのみに割り当てられ発音されることもある。
【0126】
上記ステップ82で乗算される重み付けデータWTは、上記重み付けメモリ133に記憶された重み付けデータWTと全く同じである。これにより、既にチャンネルに割り当てられている成分音とこれからチャンネルに割り当てる成分音とを同じ優先度でチャンネルに割り当てることができる。むろん両重み付けデータWTの内容は異なっていてもよい。これにより、既にチャンネルに割り当てられている成分音のチャンネル割り当ての優先度を高めたり、これからチャンネルに割り当てる成分音のチャンネル割り当ての優先度を高めたりできる。
【0127】
10.エンベロープ合成処理(ステップ15)
図7は、上記ステップ15のエンベロープ合成処理のフローチャートを示す。まず、上記フェーズカウンタ50の当該チャンネルのフェーズカウント値とエンベロープタイムメモリ49の当該チャンネルの残存エンベロープタイムデータETがコントローラ2によって読み出され(ステップ21)、この残存エンベロープタイムデータETに残りのフェーズのエンベロープタイムデータETが順次累算され、現在時点から成分音aの各フェーズの末尾までの絶対時間が求められる(ステップ22)。
【0128】
図8の例では、成分音aが発音開始し(タイミングTa0)、成分音bが発音開始し(タイミングTb0)、続いて成分音aのアタックフェーズが終了し(タイミングTa1)、この後成分音aのディケイが終了し(タイミングTa2)、成分音bのアタックが終了し(タイミングTb1)、成分音aのサスティーンが終了し(タイミングTa3)、成分音bのディケイが終了し(タイミングTb2)、成分音aのリリースが終了し(タイミングTa4)、成分音bのサスティーンが終了し(タイミングTb3)、成分音bのリリースが終了する(タイミングTb4)。
【0129】
この場合、上記残存エンベロープタイムデータETは(Ta1−Tb0)となり、上記残りのフェーズのエンベロープタイムデータETの累算値は(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)となる。各フェーズの各エンベロープタイムデータETはこれら各タイミングTa0、Ta1、Ta2、Ta3、Ta4の間の時間を示している。したがって、この残りのフェーズのエンベロープタイムデータETが累算されれば、成分音bの発音開始から各タイミングTa1、Ta2、Ta3、Ta4までの時間が求められる。
【0130】
この求められた各絶対時間(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)には、この各タイミング直前のフェーズの成分音aのエンベロープスピードデータESと成分音aを示すフラグa(「1」)も対応づけて記憶される(ステップ23)。
【0131】
次いで、成分音bについても同様にして、残存エンベロープタイムデータETに残りのフェーズのエンベロープタイムデータETが順次累算され、現在時点から成分音bの各フェーズの末尾までの絶対時間が求められる(ステップ24)。この絶対時間は同様に(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)となる。この求められた各絶対時間(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)には、この各タイミング直前のフェーズの成分音bのエンベロープスピードデータESと成分音bを示すフラグb(「0」)も対応づけて記憶される(ステップ25)。
【0132】
なお、上記タイミングTa3、Tb3は、いずれもオフ操作のタイミングであり、上記タイミングTa4、Tb4はいずれもオフ操作のタイミングによってシフトされる。したがって、上記絶対時間(Ta3−Tb0)、(Ta4−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)はここでは求められない。しかし、エンベロープの形状がオフ操作によって変化しない場合には求められる。上記絶対時間(Ta3−Tb0)、(Ta4−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)は、後述するように消音処理のときに求められる。このため、各成分音のサスティーンの末尾については、絶対時間は取り得る最大値とされ、エンベロープスピードデータESは「0」とされる。
【0133】
ただし、上記成分音aがリリースに入っていて、成分音bが発音開始する場合には、上記絶対時間(Ta4−Tb0)は求められる。成分音aはすでにオフ操作され、リリース終了のタイミングがはっきりしているからである。
【0134】
そして、上記ステップ22乃至25で求められた絶対時間(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)、(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)は大きい順に並べられ、対応づけられたエンベロープスピードデータESも同様に並べ変えられる(ステップ26)。これにより、図8(3)に示すような各タイミングが順番にソートされる。
【0135】
図9(1)はこのようにしてソートされた絶対時間とエンベロープスピードデータESと成分音フラグを示す。このデータ内容は、上記図8(3)の合成エンベロープ波形に対応したものとなっている。
【0136】
次いで、各絶対時間(Ta2−Tb0)、(Ta3−Tb0)、(Ta4−Tb0)、(Tb1−Tb0)、(Tb2−Tb0)、(Tb3−Tb0)、(Tb4−Tb0)から、それぞれ1つ前の絶対時間が減算される(ステップ27)。これにより、図8(3)の合成エンベロープ波形の各タイミングの間の新たなフェーズの合成エンベロープタイムデータETsが図9(2)左欄に示すように求められる。なお、先頭の合成エンベロープタイムデータETsは、上記絶対時間の先頭の(Ta2−Tb0)がそのままコピーされる。
【0137】
さらに、各絶対時間に対応したエンベロープスピードデータESには、より先の絶対時間のエンベロープスピードデータESであって、自己の成分音フラグa、bと異なるフラグを有するデータESが加算合成される(ステップ28)。これにより、成分音aのエンベロープスピードESと成分音bのエンベロープスピードESとが図8(3)の各フェーズごとに加算合成され、図8(3)の合成エンベロープ波形の各タイミングの間の新たなフェーズの合成エンベロープスピードデータESsが図9(2)右欄に示すように求められる。
【0138】
このようにして求められた合成エンベロープ波形の各フェーズの合成エンベロープタイムデータETs及び合成エンベロープスピードデータESsは、上記アサインメントメモリ40の対応するチャンネルエリアに書き込まれ、フェーズカウンタ50の対応チャンネルのカウンタがクリアされる(ステップ29)。これにより合成エンベロープの生成が開始される。この場合、合成エンベロープのオンイベント(または後述するオフイベント)の時点以降の部分が、アサインメントメモリ40に記憶され生成される。
【0139】
こうして、成分音aのエンベロープスピードデータES及びエンベロープタイムデータETは、同じ周波数の新たな成分音bが当該チャンネルに割り当てられるたびに書き換えられ、この新たな成分音bを合成したエンベロープの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsに置き換えられる。
【0140】
よって、同じ周波数の各楽音の発生量が合成され、1つのチャンネルにまとめて割り当てられることになる。また、同じ周波数の各楽音のエンベロープ波形が合成され、1つの楽音として出力されることになる。
【0141】
そして、成分音aのリリース以降のエンベロープスピードデータESとエンベロープタイムデータETとが成分音aのキーナンバデータKNに対応してアサインメントメモリ40に記憶され、成分音bのリリース以降のエンベロープスピードデータESとエンベロープタイムデータETも成分音bのキーナンバデータKNに対応してアサインメントメモリ40に記憶される(ステップ30)。このリリース以降のエンベロープスピードデータESとエンベロープタイムデータETは、オフイベント以降にエンベロープ合成処理が行われる。
【0142】
11.消音処理(ステップ05)
図10は上記ステップ05の消音処理のフローチャートを示す。まずオフイベントがあると(ステップ31)、このオフイベントに係るキーナンバデータKNと同じキーナンバデータKNが記憶されているアサインメントメモリ40のチャンネルがサーチされる(ステップ32)。
【0143】
そして、該当するチャンネルが発見されると(ステップ33)、上述したステップ15のエンベロープ合成処理と同様の処理が実行され(ステップ34)、このキーナンバデータKNと対応するエンベロープスピードデータESとエンベロープタイムデータETが当該チャンネルエリアから消去される(ステップ35)。以上のオフイベントによるエンベロープ合成処理が他の成分音についても繰り返され(ステップ36)、その他の処理が行われる(ステップ37)。
【0144】
このステップ34のエンベロープ合成処理では、上記キーナンバデータKNに対応して記憶されたリリース以降のエンベロープスピードデータESとエンベロープタイムデータETとが読み出され、同様のエンベロープ合成処理が実行される。ただし、この場合このリリースのエンベロープスピードデータESはマイナス値であるから実質的に減算される。これはディケイも同様である。なお、このステップ34のエンベロープ合成処理では、上記ステップ30のリリースのエンベロープスピードデータES及びエンベロープタイムデータETのセット処理は行われない。
【0145】
こうして、オフイベントのときにも、合成成分音a+bの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsは書き換えられ、この新たなリリースを考慮したエンベロープの合成エンベロープスピードデータESs及び合成エンベロープタイムデータETsに置き換えられる。
【0146】
よって、オフイベントのときにも、同じ周波数の各楽音の発生量が合成され、1つのチャンネルにまとめて割り当てられることになる。また、同じ周波数の各楽音のエンベロープ波形が合成され、1つの楽音として出力されることになる。
【0147】
12.ハイリリース処理(ステップ57)
図16は上記ステップ57のハイリリース処理のフローチャートを示す。当該チャンネルのエンベロープ演算データENをEN演算メモリ48から取り込み(ステップ61)、このエンベロープが「0」になるまでの最短時間ETrつまりハイリリースのエンベロープタイムETrが以下の演算で求められる(ステップ62)。
【0148】
ETr=(ET/ESmin)
ここでETは上記現在のエンベロープ演算データENであり、ESminは取り得る最小のエンベロープスピードデータであって、最大傾斜の減衰を実現する。
【0149】
次いで、この最小エンベロープスピードデータESminとハイリリースエンベロープタイムETrとが、アサインメントメモリ40の当該チャンネルエリアに書き込まれるとともに(ステップ63)、さらにハイリリースフラグHRFも書き込まれ(ステップ64)、他のエンベロープスピードデータES及びエンベロープタイムデータET、エンベロープフェーズデータEFが消去される(ステップ65)。これにより、図17の「ESmin」に示すように、チャンネルを明け渡す先の楽音(成分音)のエンベロープスピードがESnからESminに切り替えられ、当該楽音(成分音)が急速に減衰される。このとき、後の楽音(成分音)はキーオンがあっても発音開始されない。
【0150】
そして、上記ハイリリースエンベロープタイムETrの遅れを取り戻すため、最大エンベロープスピードデータESmaxとこれによって追いつくハイアタックのエンベロープタイムデータETaが以下の演算で求められる(ステップ71)。
【0151】
ETa=(ES1×ETr)/(ESmax−ES1)
ここでETrは上記ハイリリースのエンベロープタイムであり、ES1はこの新たな楽音(成分音)のアタックのエンベロープスピードであり、ESmaxは取り得る最大のエンベロープスピードデータであって、最大傾斜のアタックを実現する。
【0152】
次いで、この最大エンベロープスピードデータESmaxとハイアタックエンベロープタイムETaとが、プログラム/データ記憶部4(RAM)に一時的に書き込まれる(ステップ72)。これにより、図17の「ESmax」で示すハイアタックのエンベロープ部分のデータが作成される。
【0153】
そして、エンベロープスピードデータES1とエンベロープタイム(ET1−ETr−ETa)とが、プログラム/データ記憶部4(RAM)に一時的に書き込まれる(ステップ73)。これにより、図17の新たな成分音の残りのアタックエンベロープ部分のデータが作成される。
【0154】
次いで、これ以降のエンベロープスピードデータES及びエンベロープタイムデータETが同様に書き込まれ(ステップ74)、上記ステップ13で求められた周波数ナンバデータFNも同様に書き込まれ(ステップ75)、さらに当該チャンネルナンバCHNoも同様に書き込まれる(ステップ76)。このチャンネルナンバCHNoは上記ステップ53の書き込みで、チャンネルの対応のチェックに利用される。
【0155】
こうして新たな成分音の修正されたエンベロープスピードデータ及びエンベロープタイムデータが作成され一時記憶される。この一時記憶されたエンベロープデータは、上記ステップ53でアサインメントメモリ40に書き込まれる。
【0156】
なお、上記ステップ72及び73で求められる2つのエンベロープスピードデータ及び2つのエンベロープタイムデータは、以下の1つのエンベロープスピードデータ及び1つのエンベロープタイムデータで代用できる。
【0157】
ES=ES1×ET1/(ET1−ETr)
ET=ET1−ETr
ここで、ET1はこの新たな楽音(成分音)のアタックのエンベロープタイムであり、ES1はこの新たな楽音(成分音)のアタックのエンベロープスピードであり、ETrは上記ハイリリースのエンベロープタイムである。これにより、新たな成分音のアタックは図17の点線に示す状態となる。
【0158】
13.トーンタイムデータTM及び同時発音数の処理
図11はコントローラ2によって一定周期ごとに実行されるインタラプト処理のフローチャートを示す。この処理で上記トーンタイムデータTMのインクリメント及び同時発音数のカウントが行われる。
【0159】
この処理では、上記アサインメントメモリ40の各チャンネルエリアにつき(ステップ41、46、47)、オン/オフデータが「1」で楽音が発音中のものについて(ステップ43)、そのトーンタイムデータTMが「+1」される(ステップ44)。
【0160】
また、同じくアサインメントメモリ40の各チャンネルエリアにつき(ステップ41、46、47)、いったん同時発音数データがクリアされた後(ステップ42)、オン/オフデータが「1」で楽音が発音中のものがカウント(ステップ43)、同時発音数が順次「+1」される(ステップ45)。このカウントされた同時発音数はプログラム/データ記憶部4に記憶される。
【0161】
そして、その他の周期的な処理が行われる(ステップ48)。こうして、各チャンネルの楽音の発音経過時間がカウントされ記憶され上記発音時間情報として利用され、またそのときどきの全チャンネルの発音中の楽音の数がカウントされ記憶され上記同時発音数情報として利用される。
【0162】
本発明は上記実施例に限定されず、本発明の趣旨を逸脱しない範囲で種々変更可能である。例えば、波形メモリ42に記憶される楽音波形データMWはサイン波以外の複雑な波形でもよいし、音色、音高(音域)、タッチ、パート、発音時間ごとに異なる波形が記憶され切り替え選択されてもよい。このような複雑な形状の波形は上記各成分音の楽音波形として読み出され出力される。
【0163】
また、各チャンネルに割り当てられる楽音は成分音以外の1つの独立した楽音であってもよい。この場合、同じチャンネルに割り当てられる楽音の波形は同じ波形形状であり、同じ音高(周波数)である。このような場合でも同様にエンベロープの合成または発生量の合成を行うことができる。
【0164】
さらに、合成されるのはエンベロープ以外の楽音波形データMWの振幅でもよい。この場合上記ステップ15、34で合成されるのは、振幅決定因子例えばタッチデータTCなどである。そして、アサインメントメモリ40の各チャンネルのタッチデータTCは、上記オンイベント及びオフイベントごとに相加され、この相加されたタッチデータTCはアサインメントメモリ40から上記乗算器43へ送られ、楽音波形データMWに乗算される。なお、この相加されたタッチデータTCは、当該チャンネルの各エンベロープスピードデータESに乗算されてもよい。この乗算されたエンベロープスピードデータESを使って上記ステップ15、34のエンベロープ合成が行われる。
【0165】
また、上記チャンネルは時分割処理によって形成されたが、このチャンネルと同じ数の楽音信号発生部5が設けられ、各楽音信号発生部5〜の楽音波形データMWが加算器で加算合成されてもよい。
【0166】
さらに、上記エンベロープデータは、エンベロープスピードデータESとエンベロープレベルデータEL、またはエンベロープレベルデータELとエンベロープタイムデータETとで代用されてもよい。この場合、隣り合う2つのエンベロープレベルデータELの差がエンベロープスピードデータESで除算されて上記エンベロープタイムデータETが求められる。また、隣り合う2つのエンベロープレベルデータELの差がエンベロープタイムデータETで除算されて上記エンベロープスピードデータESが求められる。
【0167】
また、上記チャンネルトランケートでは、アタック状態またはエンベロープスピードデータがプラスである成分音の重み付けデータWTは格段に大きくされてもよい。この場合、上記アサインメントメモリ40から読み出されたエンベロープフェーズデータEFが重み付けメモリ133で変換され、エンベロープフェーズデータEFが所定値未満ならば、大きい値に変換されて上記乗算器131へ送られ、エンベロープフェーズデータEFが所定値を越えれば、小さい値に変換されて上記乗算器131へ送られる。これにより、エンベロープフェーズの音楽的性質によってチャンネル割り当ての優先度が変化修正(決定制御)される。
【0168】
さらに、上記チャンネルトランケートでは、あるレベル以上の成分音を有するチャンネルは明け渡されなくてもよい。この場合、上記ステップ16で各最小チャンネルナンバMCHに応じたチャンネルの修正エンベロープデータMENが修正エンベロープメモリ132より読み出され、所定レベル未満ならばステップ17及び58のチャンネルトランケートが実行される。これにより、楽音レベルの音楽的性質によってチャンネル割り当ての優先度が変化修正(決定制御)される。
【0169】
また、上記チャンネルトランケートは、1つのチャンネルに合成して割り当てられている成分音の数が多いほど、明け渡し(トランケート)の可能性が低くなってもよい。この場合、上記ステップ13の後またはステップ16などで、アサインメントメモリ40の各チャンネルエリアに記憶されているキーナンバデータKNの数によって決定される重み付けデータWTが各修正エンベロープデータMENに乗算される。
【0170】
この重み付けデータは、例えば1チャンネル当たりの上記キーナンバデータKNの数が「1」ならば「0.7」、「2」ならば「0.8」、「3」ならば「0.9」、「4」以上ならば「1.0」である。この重み付けデータWTによって修正された修正エンベロープデータMENに基づいて上記第1最小レベル検出回路141、第2最小レベル検出回路142、第3最小レベル検出回路143、…、…、でレベルの低い成分音に係るチャンネルナンバがサーチされる。これにより、各時分割チャンネルに割り当てられている成分音の数という音楽的性質によってチャンネル割り当ての優先度が変化修正(決定制御)される。
【0171】
さらに、上記新たに割り当てられる楽音の周波数と上記急速に減衰されチャンネルを明け渡す楽音の周波数とは異なっていたが、同じでもよい。この場合、上記ステップ14及び15の処理は省略される。これにより、同じ周波数の成分音同志はエンベロープ合成されず、先の成分音が急速減衰されたのち、新たな同じ周波数の成分音にチャンネルが明け渡されアタックが開始される。
【0172】
また、本発明は電子楽器またはコンピュータなどにおいて実施され得る。上記各図の回路の機能はソフトウエア(フローチャート)によって実施されても良いし、上記各図のフローチャートの機能はハードウエア(回路)によって実施されてもよい。各請求項記載の発明は、当該発明をコンピュータに実行させるコンピュータプログラムを記憶した媒体、コンピュータプログラムの通信装置(方法)、楽音発生装置(方法)、楽音制御装置(方法)としても実現可能である。
【0173】
本発明の実施態様は以下の通りである。 [1]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てることを特徴とする楽音のチャンネル割り当て装置。
【0174】
[2]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
【0175】
[3]同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、 この判別された同じ周波数の各楽音のエンベロープ波形を合成して1つの楽音として出力することを特徴とする楽音のエンベロープ制御装置。
【0176】
[4]同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、 この判別された同じ周波数の各楽音のエンベロープ波形を合成して1つの楽音として出力させることを特徴とする楽音のエンベロープ制御方法。
【0177】
[5]上記同時に発生される複数の楽音は、1つの楽音を構成する成分音であり、 この同時に発生される複数の楽音は、同じ波形または異なる波形の楽音であり、 新たな楽音が発生されるときまたは発生されている楽音が消滅されるとき、この楽音またはこの楽音の成分音の同じ周波数の各エンベロープ発生量につき、合成したエンベロープ発生量の各エンベロープレベル、エンベロープタイム及びエンベロープスピードのいずれか2つを演算して、この演算したエンベロープレベル、エンベロープタイム及びエンベロープスピードのいずれか2つに基づいて、上記周波数の楽音またはこの楽音の成分音の合成エンベロープを1つのチャンネルで生成することを特徴とする請求項1、2、3または4記載の楽音のチャンネル割り当て装置、楽音のチャンネル割り当て方法、楽音のエンベロープ制御装置または楽音のエンベロープ制御方法。
【0178】
[6]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別する手段と、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てる手段と、 このようにして各チャンネルに割り当てられている各楽音につき、チャンネル明け渡しの優先順位を決定する手段と、この決定された優先順位に基づいてチャンネルを選び出し、このチャンネルに新たな楽音を割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。
【0179】
[7]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てさせ、 このようにして各チャンネルに割り当てられている各楽音につき、チャンネル明け渡しの優先順位を決定させ、 この決定された優先順位に基づいてチャンネルを選び出させ、このチャンネルに新たな楽音を割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
【0180】
[8]上記同時に発生される複数の楽音は、1つの楽音を構成する成分音であり、 複数の楽音のそれぞれの成分音につき同じ周波数の成分音を判別し、各成分音を同じ周波数ごとに合成して各チャンネルに割り当て、 この同時に発生される複数の楽音は、同じ波形または異なる波形の楽音であり、 上記チャンネル明け渡しの優先順位は、各チャンネルに割り当てられている楽音のレベル、当該楽音の音楽的性質、人間の等ラウドネス特性または人間の最低可聴特性に基づいて決定されることを特徴とする請求項6記載の楽音のチャンネル割り当て装置または請求項7記載の楽音のチャンネル割り当て方法。
【0181】
[9]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別する手段と、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てる手段と、 このようにして楽音が割り当てられている上記複数のチャンネルから1つのチャンネルを選び出し、このチャンネルに割り当てられている楽音を急速に減衰する手段と、 この急速な減衰が達成されたとき、当該チャンネルに新たな楽音を割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。
【0182】
[10]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てさせ、 このようにして楽音が割り当てられている上記複数のチャンネルから1つのチャンネルを選び出しさせ、このチャンネルに割り当てられている楽音を急速に減衰させ、 この急速な減衰が達成されたとき、当該チャンネルに新たな楽音を割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
【0183】
[11]上記同時に発生される複数の楽音は、1つの楽音を構成する成分音であり、この成分音の周波数は互いに異なり、これら成分音は1つの発音指示によって同時にチャンネル割り当てされて同時に発生開始され、 複数の楽音のそれぞれの成分音につき同じ周波数の成分音を判別し、各成分音を同じ周波数ごとに合成して各チャンネルに割り当て、 この同時に発生される複数の楽音は、同じ波形または異なる波形の楽音であり、 上記選び出されるチャンネルは、決定されたチャンネル明け渡しの優先順位に基づいて選び出され、 このチャンネル明け渡しの優先順位は、各チャンネルに割り当てられている楽音のレベル、当該楽音の音楽的性質、人間の等ラウドネス特性または人間の最低可聴特性に基づいて決定され、 上記急速な減衰は、当該楽音のエンベロープの変化のスピードを大きくし、 上記急速な減衰が達成されたときは、当該楽音のレベルが「0」または所定値未満になったときであり、 上記新たに割り当てられる楽音の周波数と上記急速に減衰されチャンネルを明け渡す楽音の周波数とは異なるまたは同じであることを特徴とする請求項1記載の楽音のチャンネル割り当て装置または請求項2記載の楽音のチャンネル割り当て方法。
【0184】
[12]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別する手段と、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てる手段と、 これらチャンネルに楽音を割り当てるにあたり、各楽音の大きさを判別し、この判別結果に基づいて選び出した楽音にチャンネルを割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。
[13]同時に発生される複数の楽音がそれぞれ割り当てられる複数のチャンネルにつき、 この同時に発生される複数の楽音のうち、同じ周波数の楽音を判別させ、 この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当てさせ、 これらチャンネルに楽音を割り当てるにあたり、各楽音の大きさを判別させ、この判別結果に基づいて選び出した楽音にチャンネルを割り当てさせることを特徴とする楽音のチャンネル割り当て方法。
[14]上記同時に発生される複数の楽音は、1つの楽音を構成する複数の成分音であり、この成分音の周波数は互いに異なり、これら成分音は1つの発音指示によって同時にチャンネル割り当てされて同時に発生開始され、 複数の楽音のそれぞれの成分音につき同じ周波数の成分音を判別し、各成分音を同じ周波数ごとに合成して各チャンネルに割り当て、 上記大きさの判別される楽音は、これからチャンネルに割り当てられる1つまたは複数の楽音または既にチャンネルに割り当てられている1つまたは複数の楽音とこれからチャンネルに割り当てられる1つまたは複数の楽音とであり、 上記判別される楽音の大きさは、既にチャンネルに割り当てられている楽音については、当該判別のときの楽音の大きさであり、これからチャンネルに割り当てられる楽音については、当該楽音のエンベロープ波形の積分値、最大レベル、アタック到達レベルまたはサスティーンレベルであり、 この判別される各楽音の各大きさは、当該各楽音の周波数によって修正され、この修正は人間の等ラウドネス特性または人間の最低可聴特性に応じており、 上記楽音の大きさの判別結果に基づいて、既に楽音が割り当てられているチャンネルを他の楽音に明け渡し、または新たな発音指示に基づく新たな楽音であってもチャンネルを割り当てず、 上記チャンネル割り当ての制御は音像を形成する複数のオーディオチャンネルまたはステレオチャンネルごとに実行されることを特徴とする請求項1記載の楽音のチャンネル割り当て装置または請求項2記載の楽音のチャンネル割り当て方法。
【発明の効果】
以上詳述したように、本発明では、同時に発生される複数の楽音のうち、同じ周波数の楽音を判別し、この判別された同じ周波数の楽音の発生量を合成して、1つのチャンネルにまとめて割り当て、これらチャンネルに楽音を割り当てるにあたり、各楽音の大きさを判別し、この判別結果に基づいて選び出した楽音にチャンネルを割り当てるようにした。
【0185】
したがって、大きさの小さい楽音には当初からチャンネルを割り当てないようにしたり、大きさの小さい楽音が割り当てられているチャンネルを大きさの大きい楽音に明け渡したりしてチャンネルの有効利用を図ることができ、また大きさの大きい楽音をチャンネルに優先的に割り当て、良い音感を実現することができる等の効果を奏する。
【図面の簡単な説明】
【図1】楽音制御装置の全体回路を示す。
【図2】成分音テーブル20を示す。
【図3】アサインメントメモリ40を示す。
【図4】楽音信号発生部5を示す。
【図5】処理全体のフローチャートを示す。
【図6】発音処理(ステップ03)のフローチャートを示す。
【図7】エンベロープ合成処理(ステップ15)のフローチャートを示す。
【図8】同じ周波数の成分音aと成分音bとのエンベロープ合成の波形の例を示す。
【図9】同じ周波数の成分音aと成分音bとのエンベロープ合成のデータの例を示す。
【図10】消音処理(ステップ05)のフローチャートを示す。
【図11】インタラプト処理のフローチャートを示す。
【図12】重み付けメモリ133に記憶された重み付けデータWTの内容を示す。
【図13】第1最小レベル検出回路141、第2最小レベル検出回路142及び第3最小レベル検出回路143の回路図を示す。
【図14】図13の回路の各部の信号のタイムチャートを示す。
【図15】成分音の割り当てられている各時分割チャンネルのトランケートの例を示す。
【図16】ハイリリース処理(ステップ57)のフローチャートを示す。
【図17】ハイリリースの時のエンベロープの変化を示す。
【図18】各成分音の修正レベルを対比して大きいものからチャンネルを割り当てる例を示す。
【符号の説明】
2…コントローラ(CPU)、3…タイミング発生部、4…プログラム/データ記憶部、5…楽音信号発生部、6…サウンドシステム、7…情報記憶部、11…キーボード、13…パネルスイッチ群、15…ミディインターフェース、20…成分音テーブル、40…アサインメントメモリ、41…波形読み出し部、42…波形メモリ、47…セレクタ、48…エンベロープ演算メモリ、49…エンベロープタイムメモリ、50…フェーズカウンタ、46,51…加算器、52…ナンドゲート群、131…乗算器、132…修正エンベロープメモリ、133…重み付けメモリ、134…最小チャンネルメモリ、141…第1最小レベル検出回路、142…第2最小レベル検出回路、143…第3最小レベル検出回路。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a musical sound channel assignment apparatus or a musical sound channel assignment method, and more particularly to control of synthesis of musical sounds having the same frequency.
[0002]
[Prior art]
Conventionally, in an electronic musical instrument channel assignment device, a number of musical sound generation channels that are not more than the number of musical sounds that can be generated simultaneously are configured by time-sharing processing. Assigned to an empty channel, thereby generating a musical sound.
[0003]
The musical sound assigned to each channel depends on the operation of each key on the keyboard, and the pitch (frequency) is different. The waveform of this tone is the same or different. If the tone waveform is different, the tone will be different.
[0004]
[Problems to be solved by the invention]
However, in some cases, a plurality of musical sounds assigned to each channel have the same pitch (frequency), and it is useless to assign different channels to such a musical tone having the same frequency. In addition, some of the envelope musical sounds generated individually have the same pitch (frequency) in some cases, and it was useless to add separate envelopes to such musical sounds of the same frequency.
[0005]
[Means for Solving the Problems]
In order to achieve the above object, the present invention discriminates musical tones having the same frequency among a plurality of musical tones generated at the same time, synthesizes the generated amounts of musical tones having the same frequency, and combines them into one channel. When assigning musical sounds to these channels, the size of each musical sound is discriminated, and a channel is assigned to the musical sound selected based on the discrimination result.
[0006]
As a result, it is possible not to assign a channel to a small musical sound from the beginning, or to channel a channel to which a small musical sound is assigned to a large musical sound to effectively use the channel. In addition, a large musical sound can be preferentially assigned to a channel to realize a good sound feeling.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
1. Overall circuit
FIG. 1 shows an entire circuit of a musical tone control apparatus or an electronic musical instrument. Each key of the keyboard 11 instructs to generate and mute a musical tone, and is scanned by the
[0008]
Each key of the keyboard 11 is provided with a step touch switch, the above scan is performed for each step switch, and an on event / off event is detected for each on / off of the top of each step switch. The step switch generates the touch information indicating the touch speed and strength, that is, the initial touch data and the after touch data.
[0009]
The keyboard 11 is composed of a lower keyboard, an upper keyboard, a pedal keyboard, and the like, and a tone having a different tone color, that is, a tone having a different envelope waveform is generated for each. With respect to the upper keyboard, it is possible to simultaneously play two tone sounds with one key-on. The keyboard 11 may be replaced with an electronic stringed instrument, an electronic brass (wind) instrument, an electronic percussion instrument (pad, etc.), a computer keyboard, or the like.
[0010]
Each switch of the
[0011]
The
[0012]
The keyboard 11 or the
[0013]
The performance information (musical tone generation information) is musical factor information, such as pitch (frequency range) information (pitch determinant), pronunciation time information, performance field information, pronunciation number information, resonance information, etc. is there. The pronunciation time information indicates the elapsed time from the start of tone generation. The performance field information indicates performance part information, musical sound part information, musical instrument part information, etc., and corresponds to, for example, melody, accompaniment, chord, bass, rhythm, MIDI, etc., or upper keyboard, lower keyboard, foot keyboard, solo keyboard , MIDI, etc.
[0014]
The pitch information is captured as key number data KN. The key number data KN is composed of octave data (sound range data) and pitch name data. The performance field information is taken in as part number data PN, and this part number data PN is data for identifying each performance area, and is set according to which performance area the musical sound subjected to sound generation is from.
[0015]
The pronunciation time information is taken in as tone time data TM and is obtained by a flowchart described later, based on time count data from a key-on event, or substituted in an envelope phase. This sounding time information is shown in detail in Japanese Patent Application No. 6-219324 and drawings as elapsed time information from the start of sounding.
[0016]
The number-of-sounding information indicates the number of musical sounds that are simultaneously generated. For example, this number is based on the number of musical sounds whose on / off data in the
[0017]
The resonance degree information indicates the degree of resonance between one musical sound that is sounded at the same time and another musical sound. If the pitch frequency of one musical tone and the pitch frequency of the other musical tone are small integer ratios such as 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, the resonance information The value is large, and the value of the resonance degree information is small if the integer multiple ratio is large such as 9: 8, 15: 8, 15:16, 45:32, 64:45. This resonance degree information is read from the resonance correlation table 53 or the resonance ratio table 54 in FIG. 7 of Japanese Patent Application No. 1-314818.
[0018]
Further, the
[0019]
Music control information is generated from the various switches, and the music control information is information for controlling the generated music and is musical factor information. Tone information (tone determination factor), touch information (pronunciation) Speed (intensity of instruction operation), sound number information, resonance information, effect information, rhythm information, sound image (stereo) information, quantize information, modulation information, tempo information, volume information, envelope information, and the like. The musical factor information is also merged with the performance information (musical sound information) and input from the various switches, and is merged with the automatic performance information or the performance information transmitted / received through the interface.
[0020]
The tone information corresponds to the type of instrument (sounding medium / sounding means) of a keyboard instrument (piano, etc.), a wind instrument (flute, etc.), a stringed instrument (violin, etc.), and a percussion instrument (drum, etc.). Captured as TN. The envelope information includes an envelope level EL, an envelope time ET, an envelope phase EF, and the like.
[0021]
Such musical factor information is sent to the
[0022]
The program / data storage unit 4 (internal storage medium / means) includes a storage device such as ROM or writable RAM, flash memory, or EEPROM, and is stored in the information storage unit 7 (external storage medium / means) such as an optical disk or magnetic disk. The stored computer program is copied and stored (installed / transferred). The program /
[0023]
This installation (transfer / copy) is automatically executed when the
[0024]
Note that another operating system, a system program (OS), and other programs may be stored in advance in the apparatus, and the program may be executed together with these OS and other programs. When this program is installed in the apparatus (computer main body) and executed, it is only necessary to execute the processing / function described in the claims together with another program or alone.
[0025]
Further, a part or all of this program is stored and executed in one or more other devices other than this device, and data to be processed / already processed through communication means between this device and another device. The present invention may be executed as the entire apparatus and the separate apparatus.
[0026]
The program /
[0027]
In the
[0028]
From the
[0029]
2. Component sound table 20
FIG. 2 shows a component sound table 20 in the program /
[0030]
The frequency number ratio data FNR indicates the ratio of the frequency of each component sound to the fundamental frequency according to the pitch. The specified pitch frequency is multiplied by the frequency number ratio data FNR to obtain the frequency of each component sound. Since the frequency number ratio data FNR of the fundamental frequency is “1”, it may be omitted.
[0031]
The envelope data indicates an envelope for each component sound. Each envelope data is composed of envelope speed data ES and envelope time data ET for each envelope phase. Envelope speed data ES indicates a step value of calculation per cycle of envelope digital calculation. The envelope time data ET indicates the envelope calculation time (generation time, sound generation time) for each phase, that is, the number of calculations for each phase of the digital calculation. The amplitude of the envelope waveform calculated from the envelope speed data ES and the envelope time data ET indicates the amount of each component sound (each musical sound) generated.
[0032]
The number of component sounds is plural for one timbre, but may be one in some cases. This component sound is synthesized and output for each musical tone. This composition ratio changes according to the envelope data. If the envelope calculation level based on the envelope data is “0”, the ratio of the component sound is “0”. One channel is assigned to each of the component sounds, the envelopes are individually controlled, synthesized, and output.
[0033]
The level data LE indicates the sustain level of the envelope of each component sound, and this level is achieved in the sustain state of the envelope data. Therefore, the level data LE may be calculated from the envelope speed data ES and the envelope time data ET, or may be omitted.
[0034]
In addition to the sustain level, the level data LE may be the maximum level of the component sound or the attack arrival level. Even in this case, the level data LE may be calculated from the envelope speed data ES and the envelope time data ET, or may be omitted. Further, the level data LE may be a value corresponding to the integral value of the envelope waveform of the component sound. As a result, the level data LE corresponds to the volume energy of the component sound.
[0035]
3.
FIG. 3 shows the
[0036]
Each channel memory area stores frequency number data FN, key number data KN and high release flag HRF of the component sound to which the channel is assigned, the envelope speed data ES, envelope time data ET, and envelope phase data EF. . In some cases, tone number data TN, touch data TC, tone time data TM, part number data PN, the resonance information, on / off data, and the like are also stored.
[0037]
The on / off data indicates whether a musical sound (component sound) to be assigned and sounded is key-on or sounding (“1”), key-off or sound-deadening (“0”). The frequency number data FN indicates the frequency value of the component sound assigned and sounded, converted from the key number data KN, and further multiplied by the frequency number ratio data FNR. The program /
[0038]
The high release flag HRF indicates that the tone of the channel has been determined to give up the channel to a new tone, and the currently assigned tone is rapidly attenuated. This high release flag HRF is set when channel surrender is determined, and is cleared when the tone becomes level “0” or below a predetermined level.
[0039]
The envelope speed data ES and the envelope time data ET are as described above. The envelope speed data ES and the envelope time data ET are rewritten every time a new component sound having the same frequency is assigned to the channel, and the envelope speed data ES and envelope time data ET of the envelope obtained by synthesizing the new component sound. Replaced.
[0040]
The envelope phase data EF indicates each part of the envelope before or after the synthesis of (1), (2), and (3) in FIG. The count value from the phase counter 50 is taken in and stored in the
[0041]
The key number data KN indicates the pitch (frequency) of the musical sound assigned and pronounced, and is determined according to the pitch information. The key number data KN is stored for all component sounds constituting one musical sound, and each time the component sound is assigned to a channel and synthesized, the key number data KN is stored in the
[0042]
Corresponding to each key number data KN, envelope speed data ES and envelope time data ET for releasing the envelope of the component sound are stored. If there are a plurality of envelope speed data ES and envelope time data ET of this release in one component sound, all of the plurality are stored.
[0043]
The tone number data TN indicates the tone color of the assigned tone to be generated and is determined according to the tone color information. If the tone number data TN is different, the tone color is different, and the tone waveform of the tone is also different. The touch data TC indicates the speed or strength of the sound generation operation, is obtained based on the operation of the step switch, or is determined according to the touch information. The part number data PN indicates each performance area as described above, and is set according to which performance area the musical sound subjected to sound generation is from. The tone time data TM indicates the elapsed time from the key-on event.
[0044]
Each data in each channel memory area is written at an on timing and / or an off timing, and is rewritten or read at each channel timing, and processed by the
[0045]
A method of assigning or truncating each musical sound to a plurality of musical sound generating systems for generating a plurality of musical sounds (component sounds) in parallel, that is, a channel formed by the time division processing, is disclosed in, for example, Japanese Patent Application No. 1-442298. No. 1, Japanese Patent Application No. 1-305818, Japanese Patent Application No. 1-312175, Japanese Patent Application No. 2-208917, Japanese Patent Application No. 2-409777, and Japanese Patent Application No. 2-409578 are used.
[0046]
4).
FIG. 4 shows the
[0047]
This musical sound waveform data MW is only one kind of sine wave. Accordingly, a plurality of sine waves having different frequencies for one musical sound are synthesized with harmonics and output. Therefore, if the amplitude or frequency of each sine wave changes, the waveform of the musical tone to be synthesized also changes and the tone color also changes. The sine wave is not stored in the memory, but may be converted from the tone time data TM or the time count data TI by trigonometric function calculation.
[0048]
The musical sound waveform data MW may be a complex waveform other than a sine wave, or a different waveform may be stored and selected for each tone color, part, pitch (tone range), touch, and sounding time. In this case, tone number data TN, part number data PN, touch data TC, etc. are sent to the
[0049]
The envelope speed data ES of each channel of the
[0050]
The
[0051]
The envelope time data ET of each channel of the
[0052]
This phase end signal is input to the phase counter 50 and incremented, that is, +1. In this phase counter 50, the phase of the envelope of each channel is counted. The phase counter 50 is provided with a counter corresponding to the number of time-division channels, only the counter designated by the channel number data CHNo is enabled, and only the designated counter is incremented or reset.
[0053]
Only the counter designated by the channel number data CHNo is reset (cleared) by the
[0054]
The envelope phase data EF of the phase counter 50 is sent as address data to the
[0055]
The phase end signal is sent to the
[0056]
The envelope calculation data EN of each channel from the
[0057]
The weighted and corrected corrected envelope data MEN are compared by the first minimum level detection circuit 141, the second minimum level detection circuit 142, and the third minimum level detection circuit 143. The channel number with the second lowest music level is detected. The detected first minimum channel number 1MCH, second minimum channel number 2MCH, and third minimum channel number 3MCH are stored in the minimum channel memory 134. The minimum channel numbers 1MCH, 2MCH, and 3MCH indicate the priority of channel surrender (truncation).
[0058]
In the first minimum level detection circuit 141, the second minimum level detection circuit 142, and the third minimum level detection circuit 143, a channel having the modified envelope data MEN of “0” is also detected, and this detection data is used as an empty channel flag ECF. Are stored in the minimum channel memory 134 together with the channel numbers 1MCH, 2MCH and 3MCH.
[0059]
The first minimum level detection circuit 141, the second minimum level detection circuit 142, and the third minimum level detection circuit 143 also detect the corrected envelope data MEN of each detected channel, and the detected three minimum corrections. Envelope data 1MEN, 2MEN and 3MEN are also stored in the minimum channel memory 134. The minimum channel memory 134 and the modified envelope memory 132 are written in the first half of one time division channel time and read in the second half.
[0060]
The frequency number data FN of each channel read out from the
[0061]
In this characteristic (2), the weighting in the vicinity of the middle tone per 1000 to 4000 Hz of the musical tone frequency is increased, and the weighting is reduced between the low tone and the high tone. This characteristic (2) is along the human equal loudness curve or the lowest audible curve, and can realize the priority characteristic of channel assignment that matches the human hearing (loudness characteristic, masking characteristic). This can be done only in the present embodiment in which component sounds having the same frequency are synthesized and channel assignment is performed.
[0062]
The minimum audible curve represents the characteristics of the lowest sound intensity (decibel, level) (minimum audible value) that humans can hear, and the equal loudness curve is the same intensity for humans. Represents the characteristics corresponding to the frequency (pitch) of the sound intensity (decibel, level) heard. In the characteristic shown in FIG. 12 (2), since the equal loudness curve or the lowest audible curve is reversed, the numerical value of the middle range is large and the numerical value of the high range and the low range are small.
[0063]
In addition, as shown in FIG. 12A, the weighting data WT is larger as the musical tone frequency is lower, and the priority of channel assignment may be higher in the low tone. Furthermore, in the weighted data WT, on the contrary, the frequency (possibility) of channel surrender (truncation) may be higher in the low tone. Further, the weighting memory 133 and the
[0064]
In addition, other musical factor information may be input to the weighting memory 133 instead. For example, the above-described key number data KN, tone number data TN, part number data PN, touch data TC, tone time data TM, resonance degree information, and the like. As a result, the channel assignment priority is modified (decision controlled) in accordance with musical properties such as tone range (pitch), tone color, performance field, touch, sound generation time, and resonance.
[0065]
Thus, for example, the higher the tone number (tone color), touch data, and resonance level, the higher the pitch (range), the part number (MIDI channel number), or the shorter the sounding time, the higher the priority of channel assignment and the truncation. The possibility (frequency) becomes low. A plurality of these data may be added and sent to the weighting memory 133.
[0066]
The
[0067]
5. Each minimum level detection circuit 141, 142 and 143
FIG. 13 shows the first minimum level detection circuit 141, the second minimum level detection circuit 142, and the third minimum level detection circuit 143. The modified envelope data MEN from the modified envelope memory 132 is given to the
[0068]
The latch signal is also supplied to the first
[0069]
Further, each bit of the modified envelope data MEN of each channel is input to the
[0070]
The AND
[0071]
As shown in FIG. 14, when the division time for all channels elapses, the sharing signal SY1 is used as a latch signal at the head of the division time for the next all channels, and the second level latch 172, the second
[0072]
The sharing signal SY1 is also supplied to the first level latch 171 and the latch data of the latch 171 is reset to the maximum value “11... 1”. The above-mentioned
[0073]
The channel number data from the second
[0074]
Accordingly, when the first minimum modified envelope data 1MEN and the first minimum channel number data 1MCH detected by the first minimum level detection circuit 141 are given to the second minimum level detection circuit 141, the storage of this data is prohibited. . As a result, the second minimum level detection circuit 141 detects the second smallest modified envelope data MEN, the channel number, and the empty channel flag ECF. The
[0075]
The
[0076]
The
[0077]
The signal from the
[0078]
Accordingly, the first minimum modified envelope data 1MEN detected by the first minimum level detection circuit 141, the second minimum corrected envelope data 2MEN detected by the first minimum channel number 1MCH and the second minimum level detection circuit 142, and the second minimum. When the channel number 2MCH is supplied to the third minimum level detection circuit 143, the setting of these data is prohibited. As a result, the third smallest level detection circuit 143 detects the third smallest third modified envelope data 3MEN, the third smallest channel number 3MCH, and the empty channel flag ECF.
[0079]
Similarly, a fourth minimum level detection circuit, a fifth minimum level detection circuit,... Are provided, and the fourth smallest modified fourth envelope data 4MEN and fourth minimum channel number 4MCH and the empty channel flag ECF are fifth smallest. The fifth minimum modified envelope data 5MEN, the fifth minimum channel number 5MCH, and the empty channel flag ECF,... May be detected.
[0080]
These vacant channel flags ECF indicate that the attenuation of the tone of each detected channel is completed and the level is “0”. Therefore, rapid decay (high release) of the musical sound of this channel is unnecessary, and a new musical sound is immediately assigned.
[0081]
If the musical sound assigned to the channel is muted and the envelope level is “0”, the channel becomes the first minimum channel number 1MCH. If there are a plurality of channels whose envelope level of the assigned musical sound is “0”, the channel that has become “0” first becomes the first minimum channel number 1MCH, and the channel that has subsequently become “0” becomes the second minimum channel number. 2MCH.
[0082]
The minimum corrected envelope data 1MEN, 2MEN, and 3MEN output from the second level latches 172, 174, and 176 are also stored in the minimum channel memory 134. The minimum channel numbers 1MCH, 2MCH, and 3MCH, the empty channel flags ECF, and the minimum corrected envelope data 1MEN, 2MEN, and 3MEN that are detected and stored in the minimum channel memory 134 are sent to the controller (CPU) 2 to be newly added. Used for various channel assignments.
[0083]
The empty channel flag ECF may be detected based on the envelope calculation data EN. In this case, not the corrected envelope data MEN from the corrected envelope memory 132 but the envelope calculation data EN from the
[0084]
The empty channel flag ECF may be detected when the modified envelope data MEN is not “0” but less than a predetermined value. In this case, only some upper bit groups of the modified envelope data MEN are input to the
[0085]
6). Overall processing
FIG. 5 shows a flowchart of the entire processing executed by the controller (CPU) 2. This entire process is started by turning on the power of the musical tone generating apparatus and is repeatedly executed until the power is turned off.
[0086]
First, various initialization processes such as initialization of the program /
[0087]
In this sound generation process, an empty channel is searched, and a musical sound related to an on event is assigned to the searched empty channel. The contents of the musical tone include the performance information (musical tone generation information) from the keyboard 11 or the
[0088]
In this case, “1” on / off data, frequency number data FN, envelope speed data ES, envelope time data EL, “0” envelope phase data EF, etc. are stored in the area of the
[0089]
Next, mute (attenuation) processing is performed based on manual performance or automatic performance on the keyboard 11 or the midi interface 15 (step 05). In this silence (attenuation) process, a channel to which a musical sound related to an off event (key-off event, muted event) is assigned is searched, and the musical sound is attenuated and silenced. In this case, the envelope phase of the musical sound related to the key-off event is released, and the envelope level gradually becomes “0”.
[0090]
Further, if there is an operation of various switches of the
[0091]
7. Pronunciation process (step 03)
FIG. 6 shows a flowchart of the sound generation process in step 03. First, if the high release flag HRF is set in each channel area of the assignment memory 40 (step 51), the empty channel flag ECF is set for the channel number in the minimum channel memory 134 for this channel. (Step 52), the musical tone data such as envelope speed data ES, envelope time data ET, frequency number data FN, etc., of the channel temporarily stored in the program / data storage unit 4 (RAM) are stored in the channel of the
[0092]
As a result, when the rapidly attenuated (high-released) musical sound reaches the level “0”, the channel of the musical sound is surrendered and the channel is assigned to the new musical sound. The musical sound data written in
[0093]
When there is an on event (step 11), frequency number ratio data FNR, envelope speed data ES, and envelope time data ET corresponding to the tone number data TN of the musical tone related to the on event are obtained based on the component sound table 20. Read (step 12).
[0094]
Next, the frequency number data FN corresponding to the key number data KN of the musical sound related to the on event is multiplied by the read frequency number ratio data FNR, and the frequency number data FN of each component sound is obtained (step). 13). In this case, if there are a plurality of ON events, frequency number data FN is obtained for each component sound of the plurality of musical sounds.
[0095]
Then, the level data LE of each component sound is read from the component sound table 20 (step 81), the read level data LE is multiplied and corrected by the weighting data WT, and the program / data storage unit 4 (RAM (Step 82). The weighting data WT is stored in the program / data storage unit 4 (ROM) and has the characteristics shown in FIG. Although FIG. 12 shows the weighting data WT stored in the weighting memory 133, the weighting data WT in
[0096]
Next, if the frequency number data FN of each component sound already assigned in the
[0097]
In the envelope synthesis process of
[0098]
In the case where there are a plurality of musical sounds to be newly assigned in the future, for example, when sound generation operations are performed at the same time and an on event is generated at the same time, or when performance information is simultaneously read out in automatic performance .
[0099]
If the frequency number data FN of each component sound already assigned does not match the obtained frequency number data FN (step 14), an empty channel is searched (step 16). The number of the empty channel is the first minimum channel number 1MCH stored in the minimum channel memory 134.
[0100]
Then, the data MLE having the largest value or the lowest tone data MLE among the respective modification level data MLE subjected to multiplication modification in the
[0101]
In this way, a channel in which a component sound has already been assigned and the level of this component sound has been reduced can be handed over to the component sound having the highest level.
[0102]
Then, the first minimum channel number 1MCH and the first minimum modified envelope data 1MEN of the allocated channel are erased from the minimum channel memory 134 (step 58), and the modified level data MLE in the program / data storage unit 4 (RAM). Is also deleted (step 86), and the above envelope synthesis processing or channel assignment processing is repeated for other component sounds (step 18), and other processing is performed (step 19).
[0103]
In this way, component sounds having a low level assigned to the channel are sequentially deleted, component sounds having a high level are sequentially assigned to the channel, and the small component sound and the large component sound are sequentially switched.
[0104]
Furthermore, even if all the component sounds of all channels are replaced with new component sounds, or if all channels are free and new component sounds are assigned to all channels, new component sounds may still remain. In this case, since the new component sound is assigned from the one having the larger correction level data MLE, the remaining component sound is only the one having the smaller correction level data MLE, and there is no problem in the sound feeling.
[0105]
If the first minimum correction envelope data 1MEN is larger in step 84, the correction level data MLE is erased without performing the channel transfer processing in
[0106]
In this way, when assigning component sounds to channels, channels can be assigned to the selected component sounds by determining the size of each component sound. Moreover, each component sound is weighted (step 82), and this weighting depends on the characteristics of human hearing (loudness characteristics, masking characteristics), and as a result, the priority characteristic of channel assignment that matches human hearing can be realized. This can be done only in the present embodiment in which component sounds having the same frequency are synthesized and channel assignment is performed.
[0107]
Furthermore, if the empty channel flag ECF is not added to the first minimum channel number 1MCH (step 56) and the most attenuated component sound has not yet reached the level “0”, the component sound of the channel is not A high release process that is rapidly attenuated is executed (step 57). After this high release process, a new component sound is assigned to the channel (
[0108]
If the first minimum channel number 1MCH has already been deleted (step 58) in the search for the empty channel in step 16 and the comparison with the first minimum correction envelope data 1MEN in steps 83 and 84, the second minimum correction is performed. Contrast with the envelope data 2MEN (steps 83 and 84), a new component sound is assigned to the channel corresponding to the second minimum channel number 2MCH (step 17), and the second minimum channel number 2MCH in the modified envelope memory 132 is erased. (Step 58).
[0109]
If the first minimum channel number 1MCH and the second minimum channel number 2MCH have already been deleted (step 58), they are compared with the third minimum modified envelope data 3MEN (steps 83, 84), and the third minimum channel number A new component sound is assigned to a channel corresponding to 3MCH (step 17), and the third minimum channel number 3MCH in the modified envelope memory 132 is deleted (step 58). Similarly, the fourth minimum channel number 4MCH, the fifth minimum channel number 5MCH,... Can be similarly processed.
[0110]
Further, in
[0111]
Further, the deletion of the minimum channel number MCH in step 58 may be executed after the high release process in
[0112]
8). Example of channel truncation
FIG. 15 shows an example of assignment and truncation of time division channels. The total number of channels is “15”, and component sounds having the frequencies shown in FIG. 15A are assigned to 13 of these channels, and two channels are vacant. The component sound of each frequency is at the level shown in FIG. 15 (1) and changes every moment.
[0113]
Here, if there is a key-on event of a musical tone having the component sound shown in FIG. 15 (2), the frequency and level of the musical component sound are as shown in FIG. 15 (2), and channel assignment to the four component sounds is performed. Necessary.
[0114]
If no channel assignment is made to the component sounds having the same frequency as the four component sounds (
[0115]
Thus, as shown in FIG. 15 (3), the two low-level component sounds are deleted, and the channel is handed over (truncated) to the new component sound. Note that the component sound of the musical sound related to the new key-on is in an attack state, and the level is still low and will increase from now on. Unlike FIG. It may be greater than the level of the component sound that is pronounced and pronounced.
[0116]
9. Example of contrast of each component sound
FIG. 18 shows an example in which channels are assigned in descending order of the correction levels of the component sounds in steps 83 and 84 described above. Three musical sounds shown in FIGS. 18 (1), (2), and (3) are assigned to channels. 18 (1), (2) and (3) show the level and frequency of each component sound.
[0117]
Note that one of FIGS. 18 (1), 18 (2) and 18 (3) may indicate the frequency and level of each component sound of one or a plurality of musical sounds already assigned to the channel. Further, only one musical tone to be assigned to the channel shown in FIGS. 18 (1), (2), and (3) from now on may be provided, and the number of component sounds may exceed “16”.
[0118]
The number of component sounds in FIG. 18 (1) is twelve, and the number of component sounds in FIGS. 18 (2) and 18 (3) is six. Among these, if there are four component sounds having the same frequency, these component sounds are synthesized, and the level data LE of these component sounds are also added (calculated) and synthesized (step 15).
[0119]
When these are synthesized, the frequency spectrum characteristics shown in FIG. 18 (4) are obtained, and the number of component sounds is 20 (step 81). When the total number of channels is 16, four component sounds are deleted. The 20 component sound level data LE are multiplied and synthesized by weighting data WT corresponding to the human loudness characteristic shown in FIG. 18 (5), and 20 modified level data MLE are obtained (step 82). In this case, the level data LE of component sounds having the same frequency has already been added (calculated) and synthesized.
[0120]
Of these, the four component sounds having smaller magnitudes (values) are left behind and cannot be assigned to the channels, or are deleted (step 86), and the 16 component sounds shown in FIG. 18 (6) are assigned to the channels. (Steps 56, 17, 58, 57, 86, 51-54). When the component sounds shown in FIG. 18 (6) are synthesized, a musical sound waveform shown in FIG. 18 (7) is obtained. This synthesis is performed by the
[0121]
Thus, even a new component sound based on a new on-event (pronunciation instruction) cannot be assigned to a channel from the beginning if the volume is small. In addition, the channel to which the small component sound is assigned can be transferred to the large musical sound for effective use of the channel. In this way, a component sound having a large overall size can be preferentially assigned to a channel, and a good sound feeling can be realized.
[0122]
The frequency of each component sound changes according to the designated pitch, and the weighting data WT also changes depending on the frequency of the component sound. Therefore, the priority of channel assignment of each component sound or the possibility of surrendering also changes depending on the designated pitch.
[0123]
The weighting data WT, the level data LE or the modification level data MLE may be substituted with the musical factor information. For example, the above-described key number data KN, tone number data TN, part number data PN, touch data TC, tone time data TM, resonance degree information, and the like. As a result, the channel assignment priority is modified (decision controlled) in accordance with musical properties such as tone range (pitch), tone color, performance field, touch, sound generation time, and resonance.
[0124]
Thus, for example, the higher the tone number (tone color), touch data, and resonance level, the higher the pitch (range), the part number (MIDI channel number), or the shorter the sounding time, the higher the priority of channel assignment and the truncation. The possibility (frequency) becomes low. A plurality of these data may be added to create the weighted data WT, level data LE or modified level data MLE and may be multiplied and synthesized in
[0125]
Such channel assignment (truncation) processing is executed for each stereo (audio) channel forming a sound image. The component sound of each stereo (audio) channel is multiplied by sound image data, and further multiplied by weighting data WT (step 82), and the above step channel assignment (delivery) is performed (
[0126]
The weighting data WT multiplied in
[0127]
10. Envelope synthesis process (step 15)
FIG. 7 shows a flowchart of the envelope synthesis process of
[0128]
In the example of FIG. 8, the component sound a starts to sound (timing Ta0), the component sound b starts to sound (timing Tb0), and then the attack phase of the component sound a ends (timing Ta1). The decay of component sound b ends (timing Tb1), the sustain of component sound a ends (timing Ta3), and the decay of component sound b ends (timing Tb2). The release of the component sound a ends (timing Ta4), the sustain of the component sound b ends (timing Tb3), and the release of the component sound b ends (timing Tb4).
[0129]
In this case, the remaining envelope time data ET is (Ta1-Tb0), and the accumulated values of the remaining phase envelope time data ET are (Ta2-Tb0), (Ta3-Tb0), and (Ta4-Tb0). . Each envelope time data ET of each phase indicates the time between these timings Ta0, Ta1, Ta2, Ta3, Ta4. Therefore, when the envelope time data ET of the remaining phase is accumulated, the time from the start of the sound generation of the component sound b to each timing Ta1, Ta2, Ta3, Ta4 is obtained.
[0130]
In the obtained absolute times (Ta2-Tb0), (Ta3-Tb0), (Ta4-Tb0), the envelope speed data ES of the component sound a of the phase immediately before each timing and the flag a indicating the component sound a ("1") is also stored in association (step 23).
[0131]
Next, in the same way for the component sound b, the envelope time data ET of the remaining phases are sequentially accumulated in the remaining envelope time data ET, and the absolute time from the current time point to the end of each phase of the component sound b is obtained ( Step 24). This absolute time is similarly (Tb1-Tb0), (Tb2-Tb0), (Tb3-Tb0), (Tb4-Tb0). The obtained absolute times (Tb1-Tb0), (Tb2-Tb0), (Tb3-Tb0), (Tb4-Tb0) include the envelope speed data ES and component of the component sound b of the phase immediately before each timing. A flag b (“0”) indicating the sound b is also stored in association (step 25).
[0132]
The timings Ta3 and Tb3 are both off operation timings, and the timings Ta4 and Tb4 are both shifted by the off operation timing. Therefore, the absolute times (Ta3-Tb0), (Ta4-Tb0), (Tb3-Tb0), and (Tb4-Tb0) are not obtained here. However, it is obtained when the shape of the envelope is not changed by the off operation. The absolute times (Ta3-Tb0), (Ta4-Tb0), (Tb3-Tb0), and (Tb4-Tb0) are obtained during the silencing process as will be described later. Therefore, for the end of the sustain of each component sound, the absolute time is the maximum value that can be taken, and the envelope speed data ES is “0”.
[0133]
However, when the component sound a is in the release and the component sound b starts to sound, the absolute time (Ta4-Tb0) is obtained. This is because the component sound a has already been turned off, and the release end timing is clear.
[0134]
The absolute times (Ta2-Tb0), (Ta3-Tb0), (Ta4-Tb0), (Tb1-Tb0), (Tb2-Tb0), (Tb3-Tb0), (Tb3-Tb0), Tb4−Tb0) are arranged in descending order, and the associated envelope speed data ES is similarly rearranged (step 26). Thereby, each timing as shown in FIG. 8 (3) is sorted in order.
[0135]
FIG. 9 (1) shows the absolute time, envelope speed data ES and component sound flags sorted in this way. This data content corresponds to the composite envelope waveform shown in FIG.
[0136]
Then, from each absolute time (Ta2-Tb0), (Ta3-Tb0), (Ta4-Tb0), (Tb1-Tb0), (Tb2-Tb0), (Tb3-Tb0), (Tb4-Tb0), 1 The previous absolute time is subtracted (step 27). As a result, synthetic envelope time data ETs of a new phase between timings of the synthetic envelope waveform of FIG. 8 (3) is obtained as shown in the left column of FIG. 9 (2). It should be noted that the head (Ta2-Tb0) of the absolute time is copied as it is in the head synthetic envelope time data ETs.
[0137]
Further, the envelope speed data ES corresponding to each absolute time is added and synthesized with the envelope speed data ES of the absolute time earlier and having a flag different from the component sound flags a and b of its own ( Step 28). As a result, the envelope speed ES of the component sound a and the envelope speed ES of the component sound b are added and synthesized for each phase of FIG. 8 (3), and a new value is obtained between the timings of the synthesized envelope waveform of FIG. 8 (3). As shown in the right column of FIG. 9 (2), the composite envelope speed data ESs of the correct phase is obtained.
[0138]
The composite envelope time data ETs and composite envelope speed data ESs of each phase of the composite envelope waveform thus determined are written in the corresponding channel area of the
[0139]
Thus, the envelope speed data ES and the envelope time data ET of the component sound a are rewritten every time a new component sound b having the same frequency is assigned to the channel, and the combined envelope speed of the envelope obtained by synthesizing the new component sound b. It is replaced with data ESs and synthetic envelope time data ETs.
[0140]
Therefore, the generation amounts of the musical sounds having the same frequency are synthesized and assigned to one channel collectively. In addition, the envelope waveform of each musical sound of the same frequency is synthesized and output as one musical sound.
[0141]
The envelope speed data ES and envelope time data ET after the release of the component sound a are stored in the
[0142]
11. Silence processing (step 05)
FIG. 10 shows a flowchart of the silencing process in step 05. First, when there is an off event (step 31), the channel of the
[0143]
When the corresponding channel is found (step 33), the same processing as the envelope synthesis processing of
[0144]
In the envelope synthesizing process of step 34, the envelope speed data ES and the envelope time data ET after the release stored corresponding to the key number data KN are read, and the same envelope synthesizing process is executed. However, in this case, since the envelope speed data ES of this release is a negative value, it is subtracted substantially. The same applies to Decay. In the envelope synthesizing process in step 34, the setting process of the envelope speed data ES and the envelope time data ET released in
[0145]
Thus, even in the event of an off event, the composite envelope speed data ESs and the composite envelope time data ETs of the composite component sound a + b are rewritten, and the envelope envelope synthetic data speed ESs and composite envelope time data ETs considering this new release are rewritten. Replaced.
[0146]
Therefore, even in the case of an off event, the generation amounts of the musical sounds having the same frequency are synthesized and assigned to one channel collectively. In addition, the envelope waveform of each musical sound of the same frequency is synthesized and output as one musical sound.
[0147]
12 High release processing (step 57)
FIG. 16 is a flowchart of the high release process in
[0148]
ETr = (ET / ESmin)
Here, ET is the current envelope calculation data EN, and ESmin is the minimum envelope speed data that can be obtained, and realizes attenuation of the maximum inclination.
[0149]
Next, the minimum envelope speed data ESmin and the high release envelope time ETr are written in the channel area of the assignment memory 40 (step 63), and the high release flag HRF is also written (step 64), and other envelopes are written. The speed data ES, envelope time data ET, and envelope phase data EF are erased (step 65). As a result, as indicated by “ESmin” in FIG. 17, the envelope speed of the musical sound (component sound) to which the channel is transferred is switched from ESn to ESmin, and the musical sound (component sound) is rapidly attenuated. At this time, the subsequent musical sound (component sound) does not start to sound even if there is a key-on.
[0150]
Then, in order to recover the delay of the high release envelope time ETr, the maximum envelope speed data ESmax and the high attack envelope time data ETa catching up by this are obtained by the following calculation (step 71).
[0151]
ETa = (ES1 × ETr) / (ESmax−ES1)
Here, ETr is the envelope time of the above high release, ES1 is the envelope speed of the attack of this new musical sound (component sound), ESmax is the maximum envelope speed data that can be taken, realizing the attack of the maximum slope To do.
[0152]
Next, the maximum envelope speed data ESmax and the high attack envelope time ETa are temporarily written in the program / data storage unit 4 (RAM) (step 72). Thereby, data of the envelope portion of the high attack indicated by “ESmax” in FIG. 17 is created.
[0153]
The envelope speed data ES1 and the envelope time (ET1-ETr-ETa) are temporarily written in the program / data storage unit 4 (RAM) (step 73). Thereby, the data of the remaining attack envelope part of the new component sound of FIG. 17 is created.
[0154]
Subsequently, the subsequent envelope speed data ES and envelope time data ET are similarly written (step 74), the frequency number data FN obtained in
[0155]
In this way, corrected envelope speed data and envelope time data of the new component sound are created and temporarily stored. The temporarily stored envelope data is written into the
[0156]
The two envelope speed data and the two envelope time data obtained in steps 72 and 73 can be substituted by the following one envelope speed data and one envelope time data.
[0157]
ES = ES1 × ET1 / (ET1-ETr)
ET = ET1-ETr
Here, ET1 is the envelope time of the attack of the new musical sound (component sound), ES1 is the envelope speed of the attack of the new musical sound (component sound), and ETr is the envelope time of the high release. Thereby, the attack of a new component sound will be in the state shown by the dotted line in FIG.
[0158]
13. Tone time data TM and simultaneous pronunciation number processing
FIG. 11 shows a flowchart of interrupt processing executed by the
[0159]
In this processing, for each channel area of the assignment memory 40 (
[0160]
Similarly, for each channel area of the assignment memory 40 (
[0161]
Then, other periodic processing is performed (step 48). Thus, the elapsed sound generation time of each channel's tone is counted and stored and used as the tone generation time information, and the number of tone sounds that are currently being generated on all channels is counted and stored and used as the simultaneous tone number information. .
[0162]
The present invention is not limited to the above embodiments, and various modifications can be made without departing from the spirit of the present invention. For example, the musical sound waveform data MW stored in the
[0163]
The musical sound assigned to each channel may be one independent musical sound other than the component sounds. In this case, the waveforms of musical sounds assigned to the same channel have the same waveform shape and the same pitch (frequency). Even in such a case, synthesis of the envelope or generation amount can be performed in the same manner.
[0164]
Furthermore, the amplitude of the musical sound waveform data MW other than the envelope may be synthesized. In this case, what is synthesized in
[0165]
Further, although the above channels are formed by time division processing, the same number of
[0166]
Further, the envelope data may be substituted by envelope speed data ES and envelope level data EL, or envelope level data EL and envelope time data ET. In this case, the difference between the two adjacent envelope level data EL is divided by the envelope speed data ES to obtain the envelope time data ET. Also, the difference between two adjacent envelope level data EL is divided by the envelope time data ET to obtain the envelope speed data ES.
[0167]
In the channel truncation, the weight data WT of the component sound whose attack state or envelope speed data is positive may be significantly increased. In this case, the envelope phase data EF read from the
[0168]
Further, in the above-mentioned channel truncation, a channel having a component sound of a certain level or higher need not be left over. In this case, the modified envelope data MEN of the channel corresponding to each minimum channel number MCH is read from the modified envelope memory 132 in the above step 16, and if it is less than a predetermined level, the channel truncation in
[0169]
The channel truncation may be less likely to be truncated (truncated) as the number of component sounds synthesized and assigned to one channel increases. In this case, after
[0170]
This weighting data is, for example, “0.7” if the number of key number data KN per channel is “1”, “0.8” if “2”, “0.9” if “3”. If it is “4” or more, it is “1.0”. Based on the modified envelope data MEN modified by the weighted data WT, the component sound having a low level in the first minimum level detection circuit 141, the second minimum level detection circuit 142, the third minimum level detection circuit 143,. The channel number related to is searched. As a result, the channel assignment priority is modified (decision controlled) by the musical property of the number of component sounds assigned to each time division channel.
[0171]
Furthermore, although the frequency of the newly assigned musical tone is different from the frequency of the musical tone that is rapidly attenuated and leaves the channel, it may be the same. In this case, the processes of
[0172]
In addition, the present invention can be implemented in an electronic musical instrument or a computer. The functions of the circuits shown in the drawings may be implemented by software (flow chart), and the functions of the flowcharts shown in the drawings may be implemented by hardware (circuit). The invention described in each claim can also be realized as a medium storing a computer program that causes a computer to execute the invention, a communication apparatus (method) of a computer program, a musical sound generation apparatus (method), and a musical sound control apparatus (method). .
[0173]
Embodiments of the present invention are as follows. [1] For a plurality of channels to which a plurality of simultaneously generated musical sounds are assigned, a musical tone having the same frequency is determined from the plurality of musical sounds generated simultaneously, and the generated amount of the musical sound having the same frequency is determined. An apparatus for assigning musical sound channels, which is synthesized and assigned to one channel at a time.
[0174]
[2] For a plurality of channels to which a plurality of simultaneously generated musical sounds are assigned, a musical tone having the same frequency among the plurality of musical sounds generated at the same time is determined, and the generated amount of the musical sound having the determined same frequency is determined. A method for assigning musical sound channels, comprising synthesizing and assigning them to one channel at a time.
[0175]
[3] A musical tone having the same frequency is discriminated from among a plurality of musical tones generated at the same time, and an envelope waveform of each musical tone having the discriminated frequency is synthesized and output as one musical tone. Envelope control device.
[0176]
[4] Of a plurality of musical tones generated simultaneously, a musical tone having the same frequency is discriminated, and an envelope waveform of each musical tone having the discriminated same frequency is synthesized and output as one musical tone. Envelope control method.
[0177]
[5] The plurality of musical sounds generated simultaneously are component sounds constituting one musical sound, and the plurality of musical sounds generated simultaneously are musical sounds of the same waveform or different waveforms, and new musical sounds are generated. When the musical sound being generated or when the generated musical sound is extinguished, for each envelope generation amount of the same frequency of this musical sound or the component sound of this musical tone, one of the envelope levels, envelope time and envelope speed of the combined envelope generation amount The two are calculated, and based on any two of the calculated envelope level, envelope time and envelope speed, a musical sound having the above frequency or a synthetic envelope of component sounds of this musical sound is generated in one channel. The channel assignment apparatus for musical sound according to
[0178]
[6] For a plurality of channels to which a plurality of simultaneously generated musical sounds are respectively assigned, means for determining a musical tone having the same frequency among the plurality of musical sounds generated simultaneously, and generation of the determined musical sound having the same frequency Based on the determined priority, means for determining the priority of channel surrender for each tone assigned to each channel in this way, And a means for assigning a new musical sound to the channel.
[0179]
[7] For a plurality of channels to which a plurality of simultaneously generated musical sounds are assigned, a musical sound having the same frequency is identified from among the plurality of musical sounds generated at the same time. Combining them and assigning them to one channel at a time. For each tone assigned to each channel in this way, the priority for channel surrender is determined, and a channel is selected based on this determined priority. And assigning a new musical sound to this channel.
[0180]
[8] The plurality of musical sounds generated at the same time are component sounds constituting one musical sound. The component sounds of the same frequency are determined for each component sound of the plurality of musical sounds, and each component sound is determined for each same frequency The multiple musical tones that are generated at the same time are the same or different musical tones, and the priority for channel surrender is the level of the musical tone assigned to each channel, 8. The musical sound channel allocating apparatus according to
[0181]
[9] For a plurality of channels to which a plurality of simultaneously generated musical sounds are respectively assigned, means for determining a musical tone having the same frequency among the plurality of musical sounds generated simultaneously, and generation of the determined musical sound having the same frequency A means of combining the amounts and assigning them to one channel at a time, and selecting one channel from the plurality of channels to which the musical sounds are assigned in this way, and rapidly attenuating the musical sounds assigned to the channels And a means for assigning a new musical sound to the channel when this rapid attenuation is achieved.
[0182]
[10] For a plurality of channels to which a plurality of simultaneously generated musical sounds are assigned, a musical tone having the same frequency among the plurality of musical sounds generated at the same time is determined, and the generated amount of the musical sound having the determined same frequency is determined. Synthesizing and assigning to one channel at a time, selecting one channel from the plurality of channels to which the musical sound is assigned in this way, rapidly attenuating the musical sound assigned to this channel, A method for assigning a musical sound channel, characterized by causing a new musical sound to be assigned to the channel when rapid attenuation is achieved.
[0183]
[11] The plurality of musical sounds generated at the same time are component sounds constituting one musical sound, and the frequencies of the component sounds are different from each other. The component sounds of the same frequency are discriminated for each component sound of a plurality of musical sounds, and each component sound is synthesized for each same frequency and assigned to each channel. The channel to be selected is selected based on the determined channel transfer priority, and the channel transfer priority is determined by the level of the tone assigned to each channel and the tone of the corresponding tone. Determined based on musical properties, human iso-loudness characteristics or human minimum audible characteristics, and rapid decay When the speed of the envelope change of the musical sound is increased and the rapid decay is achieved, the musical sound level is “0” or less than a predetermined value. 3. The musical sound channel allocating apparatus according to
[0184]
[12] For a plurality of channels to which a plurality of simultaneously generated musical sounds are respectively assigned, means for determining a musical tone having the same frequency among the plurality of musical sounds generated at the same time, and generation of a musical sound having the determined same frequency A means for synthesizing the amounts and assigning them to one channel at a time, and means for assigning channels to the musical sounds selected based on the results of the judgment by determining the magnitude of each musical sound when assigning musical sounds to these channels. A musical sound channel assignment device characterized by that.
[13] For a plurality of channels to which a plurality of simultaneously generated musical sounds are assigned, a musical tone having the same frequency is determined from among the plurality of musical sounds generated simultaneously, and the generated amount of the musical sound having the same frequency is determined. A musical tone characterized by synthesizing and assigning them to one channel at a time, assigning musical sounds to these channels, determining the size of each musical tone, and assigning the channel to the musical tone selected based on this discrimination result Channel assignment method.
[14] The plurality of musical sounds generated at the same time are a plurality of component sounds constituting one musical sound, and the frequencies of the component sounds are different from each other. The component sound of the same frequency is discriminated for each component sound of the plurality of musical sounds, and each component sound is synthesized for each same frequency and assigned to each channel. One or more musical tones assigned to or one or more musical tones already assigned to the channel and one or more musical tones assigned to the channel from now on. The musical sound assigned to the channel is the magnitude of the musical sound at the time of the discrimination, and from now on the channel The musical sound assigned to is the integral value, maximum level, attack arrival level or sustain level of the envelope waveform of the musical sound, and the size of each musical sound to be determined is corrected by the frequency of the musical sound, This correction depends on the human equal loudness characteristic or human minimum audible characteristic, and based on the result of the above-mentioned musical sound loudness determination, the channel to which the musical sound has already been assigned is handed over to other musical sounds or a new pronunciation. 2. The channel of musical sound according to
【The invention's effect】
As described above in detail, the present invention discriminates musical tones having the same frequency among a plurality of musical tones generated at the same time, synthesizes the generated amounts of musical tones having the same frequency, and combines them into one channel. When assigning musical sounds to these channels, the size of each musical sound is discriminated, and a channel is assigned to the musical sound selected based on the discrimination result.
[0185]
Therefore, it is possible to effectively use channels by not assigning channels to small musical sounds from the beginning, or by passing channels to which small musical sounds are assigned to large musical sounds. In addition, there is an effect that a large musical sound can be preferentially assigned to a channel to realize a good pitch.
[Brief description of the drawings]
FIG. 1 shows an entire circuit of a musical tone control device.
FIG. 2 shows a component sound table 20;
FIG. 3 shows an
FIG. 4 shows a
FIG. 5 shows a flowchart of the entire process.
FIG. 6 shows a flowchart of sound generation processing (step 03).
FIG. 7 shows a flowchart of an envelope synthesis process (step 15).
FIG. 8 shows an example of an envelope synthesis waveform of component sound a and component sound b having the same frequency.
FIG. 9 shows an example of envelope synthesis data of component sound a and component sound b having the same frequency.
FIG. 10 shows a flowchart of a mute process (step 05).
FIG. 11 shows a flowchart of interrupt processing.
12 shows the contents of weighting data WT stored in weighting memory 133. FIG.
13 is a circuit diagram of a first minimum level detection circuit 141, a second minimum level detection circuit 142, and a third minimum level detection circuit 143. FIG.
14 shows a time chart of signals at various parts of the circuit of FIG.
FIG. 15 shows an example of truncation of each time division channel to which component sounds are assigned.
FIG. 16 is a flowchart of high release processing (step 57).
FIG. 17 shows an envelope change at the time of high release.
FIG. 18 shows an example in which channels are assigned in descending order of the correction level of each component sound.
[Explanation of symbols]
2 ... Controller (CPU), 3 ... Timing generation unit, 4 ... Program / data storage unit, 5 ... Music signal generation unit, 6 ... Sound system, 7 ... Information storage unit, 11 ... Keyboard, 13 ... Panel switch group, 15 ... Midi interface, 20 ... Component sound table, 40 ... Assignment memory, 41 ... Waveform readout unit, 42 ... Waveform memory, 47 ... Selector, 48 ... Envelope calculation memory, 49 ... Envelope time memory, 50 ... Phase counter, 46, DESCRIPTION OF
Claims (7)
1つの楽音が複数の周波数成分の成分音を含む楽音であって、同時に発生される複数の楽音にわたって存在する同じ周波数の成分音を判別させ、
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、1つのチャンネルにまとめて割り当てさせることであって、このチャンネルは時分割処理により複数形成される楽音のチャンネル割り当て方法であって、
これらの各チャンネルに各成分音を新たに割り当てるにあたり、この新たな各成分音のレベルを当該成分音の周波数の値によって修正させ、この修正は1000ヘルツから4000ヘルツ付近のレベルが大きくなるものであり、この修正された各成分音のレベルを互いに対比させ、この対比結果に基づいて選び出したレベルの大きい成分音を新たにチャンネルに割り当てさせることを特徴とする楽音のチャンネル割り当て方法。 CPU to music device,
A tone is a tone containing component tones of a plurality of frequency components, to determine the component tones of the same frequency that is present over the plurality of musical tones to be generated at the same time,
The generation amount of each component sound of the same frequency over the plurality of determined musical sounds is synthesized and assigned to one channel collectively, and this channel is assigned to a plurality of musical sound channels formed by time division processing. A method,
In newly assigning each component sound to each of these channels, the level of each new component sound is corrected by the value of the frequency of the component sound, and this correction increases the level from 1000 Hz to around 4000 Hz. A method for assigning musical sound channels, wherein the levels of the component sounds thus corrected are compared with each other , and a component sound having a high level selected based on the comparison result is newly assigned to a channel.
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、1つのチャンネルにまとめて割り当てる手段とを備え、このチャンネルは時分割処理により複数形成される楽音のチャンネル割り当て装置であって、
これらの各チャンネルに各成分音を新たに割り当てるにあたり、この新たな各成分音のレベルを当該成分音の周波数の値によって修正し、この修正は1000ヘルツから4000ヘルツ付近のレベルが大きくなるものであり、この修正された各成分音のレベルを互いに対比し、この対比結果に基づいて選び出したレベルの大きい成分音を新たにチャンネルに割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。 A tone is a tone containing component tones of a plurality of frequency components, means for determining the component tones of the same frequency that is present over the plurality of musical tones to be generated at the same time,
Means for synthesizing the generated amounts of the component sounds of the same frequency over a plurality of discriminated musical sounds and allocating them to a single channel, and a channel assignment device for musical tones formed in plural by time division processing. Because
In newly assigning each component sound to each of these channels, the level of each new component sound is corrected by the value of the frequency of the component sound, and this correction increases the level from 1000 Hz to around 4000 Hz. There, in contrast to the level of the modified components tones each other, channel allocation apparatus of a tone, characterized in that it comprises a means for assigning a new channel a large component sound level picked on the basis of this comparison result .
1つの楽音が複数の周波数成分の成分音を含む楽音であって、同時に発生される複数の楽音にわたって存在する同じ周波数の成分音を判別させ、
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、1つのチャンネルにまとめて割り当てさせることであって、このチャンネルは時分割処理により複数形成される楽音のチャンネル割り当て方法であって、
これらの各チャンネルに各成分音を新たに割り当てるにあたり、この新たな各成分音のレベルを当該成分音の周波数の値によって修正させ、この修正は当該周波数値が低いほどレベルが大きくなるものであり、この修正された各成分音のレベルを互いに対比させ、この対比結果に基づいて選び出したレベルの大きい成分音を新たにチャンネルに割り当てさせることを特徴とする楽音のチャンネル割り当て方法。 CPU to music device,
A tone is a tone containing component tones of a plurality of frequency components, to determine the component tones of the same frequency that is present over the plurality of musical tones to be generated at the same time,
The generation amount of each component sound of the same frequency over the plurality of determined musical sounds is synthesized and assigned to one channel collectively, and this channel is assigned to a plurality of musical sound channels formed by time division processing. A method,
In newly assigning each component sound to each of these channels, the level of each new component sound is corrected by the frequency value of the component sound, and this correction increases the level as the frequency value decreases. A channel assignment method for musical sounds, characterized in that the level of each of the corrected component sounds is compared with each other , and a component sound having a high level selected based on the comparison result is newly assigned to a channel.
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、1つのチャンネルにまとめて割り当てる手段とを備え、このチャンネルは時分割処理により複数形成される楽音のチャンネル割り当て装置であって、
これらの各チャンネルに各成分音を新たに割り当てるにあたり、この新たな各成分音のレベルを当該成分音の周波数の値によって修正し、この修正は当該周波数値が低いほどレベルが大きくなるものであり、この修正された各成分音のレベルを互いに対比し、この対比結果に基づいて選び出したレベルの大きい成分音を新たにチャンネルに割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。 A tone is a tone containing component tones of a plurality of frequency components, means for determining the component tones of the same frequency that is present over the plurality of musical tones to be generated at the same time,
Means for synthesizing the generated amounts of the component sounds of the same frequency over a plurality of discriminated musical sounds and allocating them to a single channel, and a channel assignment device for musical tones formed in plural by time division processing. Because
In newly assigning each component sound to each of these channels, the level of each new component sound is corrected by the value of the frequency of the component sound, and this correction increases the level as the frequency value decreases. A device for assigning musical sound channels, comprising means for comparing the levels of the corrected component sounds with each other and newly assigning a component sound having a high level selected based on the comparison result to a channel.
1つの楽音が複数の周波数成分の成分音を含む楽音であって、同時に発生される複数の楽音にわたって存在する同じ周波数の成分音を判別させ、
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、1つのチャンネルにまとめて割り当てさせることであって、このチャンネルは時分割処理により複数形成される楽音のチャンネル割り当て方法であって、
これらの各チャンネルに各成分音を新たに割り当てるにあたり、この新たな各成分音のレベルを当該成分音の周波数の値によって修正させ、この修正は当該周波数値が高いほどレベルが大きくなるものであり、この修正された各成分音のレベルを互いに対比させ、この対比結果に基づいて選び出したレベルの大きい成分音を新たにチャンネルに割り当てさせることを特徴とする楽音のチャンネル割り当て方法。 CPU to music device,
A tone is a tone containing component tones of a plurality of frequency components, to determine the component tones of the same frequency that is present over the plurality of musical tones to be generated at the same time,
The generation amount of each component sound of the same frequency over the plurality of determined musical sounds is synthesized and assigned to one channel collectively, and this channel is assigned to a plurality of musical sound channels formed by time division processing. A method,
In newly assigning each component sound to each of these channels, the level of each new component sound is corrected by the frequency value of the component sound, and this correction increases the level as the frequency value increases. A channel assignment method for musical sounds, characterized in that the level of each of the corrected component sounds is compared with each other , and a component sound having a high level selected based on the comparison result is newly assigned to a channel.
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、1つのチャンネルにまとめて割り当てる手段とを備え、このチャンネルは時分割処理により複数形成される楽音のチャンネル割り当て装置であって、
これらの各チャンネルに各成分音を新たに割り当てるにあたり、この新たな各成分音のレベルを当該成分音の周波数の値によって修正し、この修正は当該周波数値が高いほどレベルが大きくなるものであり、この修正された各成分音のレベルを互いに対比し、この対比結果に基づいて選び出したレベルの大きい成分音を新たにチャンネルに割り当てる手段とを備えたことを特徴とする楽音のチャンネル割り当て装置。 A tone is a tone containing component tones of a plurality of frequency components, means for determining the component tones of the same frequency that is present over the plurality of musical tones to be generated at the same time,
Means for synthesizing the generated amounts of the component sounds of the same frequency over a plurality of discriminated musical sounds and allocating them to a single channel, and a channel assignment device for musical tones formed in plural by time division processing. Because
In newly assigning each component sound to each of these channels, the level of each new component sound is corrected by the frequency value of the component sound, and this correction increases the level as the frequency value increases. A device for assigning musical sound channels, comprising means for comparing the levels of the corrected component sounds with each other and newly assigning a component sound having a high level selected based on the comparison result to a channel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01661798A JP3673388B2 (en) | 1998-01-29 | 1998-01-29 | Musical sound channel assignment apparatus and musical sound channel assignment method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01661798A JP3673388B2 (en) | 1998-01-29 | 1998-01-29 | Musical sound channel assignment apparatus and musical sound channel assignment method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11212562A JPH11212562A (en) | 1999-08-06 |
JP3673388B2 true JP3673388B2 (en) | 2005-07-20 |
Family
ID=11921303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01661798A Expired - Fee Related JP3673388B2 (en) | 1998-01-29 | 1998-01-29 | Musical sound channel assignment apparatus and musical sound channel assignment method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3673388B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7124370B2 (en) * | 2018-03-22 | 2022-08-24 | カシオ計算機株式会社 | Electronic musical instrument, method and program |
-
1998
- 1998-01-29 JP JP01661798A patent/JP3673388B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11212562A (en) | 1999-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2645181B2 (en) | Electronic musical instrument channel assignment device and channel assignment method | |
JP4335570B2 (en) | Resonance sound generation apparatus, resonance sound generation method, and computer program for resonance sound generation | |
JP5142363B2 (en) | Component sound synthesizer and component sound synthesis method. | |
JP3372124B2 (en) | Electronic musical instrument | |
JP3694172B2 (en) | Reverberation resonance apparatus and reverberation resonance method | |
JP2002311957A (en) | Device and method for resonance and computer program for resonance processing | |
JP3673388B2 (en) | Musical sound channel assignment apparatus and musical sound channel assignment method | |
JP3634130B2 (en) | Musical sound generating apparatus and musical sound generating method | |
JP3673387B2 (en) | Musical sound channel assignment apparatus and musical sound channel assignment method | |
JP3673386B2 (en) | Musical sound channel assignment apparatus and musical sound channel assignment method | |
JP3673384B2 (en) | Musical sound channel assignment apparatus and musical sound channel assignment method | |
JP3419563B2 (en) | Tone signal level control device | |
JP3530600B2 (en) | Frequency characteristic control apparatus and frequency characteristic control method for musical tone signal | |
JP2000194361A (en) | Device and method for adding vibrato of electronic sound device | |
JP3329176B2 (en) | Pronunciation assignment device | |
JP4059581B2 (en) | Fluctuation adding apparatus and fluctuation adding method for electronic acoustic apparatus | |
JP3595676B2 (en) | Music sound generating apparatus and music sound generating method | |
JP3637190B2 (en) | Musical sound generating apparatus and musical sound generating method | |
JP3706371B2 (en) | Musical signal frequency characteristic control device and frequency characteristic control method | |
JP3706232B2 (en) | Musical sound generating apparatus and musical sound generating method | |
JP2000163056A (en) | Device and method for automatic performance | |
JP4124434B2 (en) | Electronic musical instrument with digital sound source | |
JPH04233595A (en) | Channel assignment device for electronic musical instrument | |
JPH11161269A (en) | Musical sound control device and method | |
JP3637191B2 (en) | Musical sound generating apparatus and musical sound generating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040809 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041015 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050114 |
|
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: 20050322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050422 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |