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 PDF

Info

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
Application number
JP01661798A
Other languages
Japanese (ja)
Other versions
JPH11212562A (en
Inventor
克氏 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawai Musical Instrument Manufacturing Co Ltd
Original Assignee
Kawai Musical Instrument Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawai Musical Instrument Manufacturing Co Ltd filed Critical Kawai Musical Instrument Manufacturing Co Ltd
Priority to JP01661798A priority Critical patent/JP3673388B2/en
Publication of JPH11212562A publication Critical patent/JPH11212562A/en
Application granted granted Critical
Publication of JP3673388B2 publication Critical patent/JP3673388B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 key scan circuit 12 to detect data indicating key-on and key-off, and is written in the program / data storage unit 4 by the controller 2. Then, it is compared with the data indicating the on / off state of each key stored in the program / data storage unit 4 so far, and the on / off event of each key is discriminated by the controller 2.
[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 panel switch group 13 is scanned by the panel scan circuit 14. By this scanning, data indicating ON / OFF of each switch is detected and written to the program / data storage unit 4 by the controller 2. Then, the controller 2 compares the data indicating the on / off state of each switch that has been stored in the program / data storage unit 4 so far, and the controller 2 determines whether each switch is on or off.
[0011]
The MIDI interface 15 is an interface for transmitting / receiving musical sound data to / from an externally connected electronic musical instrument. The musical tone data is based on the MIDI (Musical Instrument Digital Interface) standard, and sound generation based on the musical tone data is also performed.
[0012]
The keyboard 11 or the midi interface 15 includes an automatic performance device. The performance information (musical sound generation information) generated from the keyboard 11, the panel switch group 13, and the midi interface 15 is information for generating musical sounds.
[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 assignment memory 40 is “1”. 15 and FIG. 8 and FIG. 18 of Japanese Patent Application No. 6-2476855, FIG. 9 and FIG. 20 of Japanese Patent Application No. 6-276857, and FIG. 9 and FIG. 21 of Japanese Patent Application No. 6-276858. It is done.
[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 panel switch group 13 is provided with various switches, and these various switches are timbre tablets, effect switches, rhythm switches, pedals, wheels, levers, dials, handles, touch switches, etc., which are for musical instruments. . This pedal is a damper pedal, a sustain pedal, a mute pedal, a soft pedal, or the like.
[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 controller 2, and various signals, data, and parameters to be described later are switched to determine the contents of the musical sound. The performance information (musical tone generation information) and the musical tone control information are processed by the controller 2 and various data are sent to the musical tone signal generator 5 to generate a musical sound waveform signal MW. The controller 2 includes a CPU, a ROM, a RAM, and the like.
[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 / data storage unit 4 also stores (installs / transfers) a program transmitted from an external electronic musical instrument or computer via the MIDI device or the transmission / reception device. The storage medium for this program includes a communication medium.
[0023]
This installation (transfer / copy) is automatically executed when the information storage unit 7 is set in the musical tone generating apparatus or when the musical tone generating apparatus is turned on, or is installed by an operation by the operator. The The program is a program according to a flowchart to be described later for the controller 2 to perform various processes.
[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 / data storage unit 4 also stores the musical factor information described above, the various data described above, and other various data. These various data include data necessary for time division processing, data for allocation to time division channels, and the like.
[0027]
In the tone signal generator 5, a tone waveform signal MW having a predetermined length is repeatedly generated and outputted from the sound system 6. In accordance with the pitch information, the generation speed of the repetitively generated musical sound waveform signal MW is changed. The waveform shape of the musical tone waveform signal MW that is repeatedly generated is switched according to musical factor information such as the pitch color information. The musical tone signal generator 5 simultaneously generates a plurality of musical tone signals by time division processing and generates polyphonic sounds.
[0028]
From the timing generator 3, a timing control signal for synchronizing all the circuits of the tone generator is output to each circuit. This timing control signal includes a clock signal of each period, a signal obtained by logical product or logical sum of these clock signals, a signal having a period of channel division time of time division processing, channel number data CHNo, time count data TI, etc. including. The time count data TI indicates the absolute time, that is, the passage of time, and the period from the overflow reset of the time count data TI to the next overflow reset is longer than the longest sounding time of each musical tone, and in some cases is several times longer. Is set.
[0029]
2. Component sound table 20
FIG. 2 shows a component sound table 20 in the program / data storage unit 4. The component sound table 20 stores the data of each component sound constituting the tone of each tone color (tone number data TN), and the corresponding component sound data is converted from the tone number data TN and read out. The component sound data includes a plurality of frequency number ratio data FNR, a plurality of envelope data, and level data LE.
[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. Assignment memory 40
FIG. 3 shows the assignment memory 40 of the tone signal generator 5. In the assignment memory 40, a plurality of channel memory areas (16, 32, 64, etc.) are formed, and data relating to component sounds assigned to the plurality of tone generation channels formed in the tone signal generator 5 is stored. Remembered.
[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 / data storage unit 4 is provided with a table (decoder) for this conversion.
[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 assignment memory 40 as the envelope phase data EF.
[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 assignment memory 40. The key number data KN that is additionally stored in the channel memory area and corresponding to each off event is deleted. The upper data of the key number data KN indicates a tone range or octave, and the lower data indicates a pitch name.
[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 tone signal generator 5. The assignment memory 40 may be provided in the program / data storage unit 4 or the controller 2 instead of in the musical tone signal generation unit 5.
[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). Music signal generator 5
FIG. 4 shows the tone signal generator 5. The frequency number data FN and the like of each channel of the assignment memory 40 are sent to the waveform reading unit 41, and the musical sound waveform data MW is read at a speed (pitch) corresponding to the frequency number data FN. The read musical tone waveform data MW is multiplied and synthesized by the envelope data EN by the multiplier 43, and the musical tone waveform data of all the channels is accumulated and synthesized by the accumulator 44 and generated by the sound system 6.
[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 waveform reading unit 41, and tone waveform data corresponding to the tone number data TN, part number data PN, touch data TC from the waveform memory 42. MW is selected, and the selected musical sound waveform data MW is read at a speed (pitch) corresponding to the frequency number data FN.
[0049]
The envelope speed data ES of each channel of the assignment memory 40 is sequentially accumulated in a time-division manner by the adder 46 and the envelope calculation memory 48, and the envelope calculation data EN is calculated, and is sent to the multiplier 43 as the envelope data EN. Sent. The envelope calculation memory 48 has an area corresponding to the number of time-division channels, stores envelope calculation data EN for each channel, and calculates an envelope for each channel.
[0050]
The envelope calculation memory 48 is addressed by the channel number data CHNo, and only the designated address is written / read or reset. Each channel area of the envelope calculation memory 48 is individually reset (cleared) by an off event signal and / or an on event signal.
[0051]
The envelope time data ET of each channel of the assignment memory 40 is sequentially “−1” by the selector 47, the envelope time memory 49 and the adder 51, and when it becomes “0”, the phase end signal is detected and output by the NAND gate group 52. Is done. This phase end signal indicates the end of each phase of the envelope.
[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 controller 2 at the time of an on event and an off event. At this time, as described above, the envelope speed data ES and the envelope time data ET are synthesized / rewritten.
[0054]
The envelope phase data EF of the phase counter 50 is sent as address data to the assignment memory 40, and the envelope speed data ES and the envelope time data ET for each phase in each channel are read or written. The assignment memory 40 is addressed by the channel number data CHNo, and only the designated address is written / read and cleared. Each channel area of the assignment memory 40 is individually reset (cleared) by an off event signal and / or an on event signal.
[0055]
The phase end signal is sent to the selector 47, and the envelope time data ET is switched to the envelope time data ET of the next phase. The envelope time memory 49 is addressed by the channel number data CHNo, and only the designated address is written / read or reset. Each channel area of the envelope time memory 49 is individually reset (cleared) by an off event signal (on event signal).
[0056]
The envelope calculation data EN of each channel from the envelope calculation memory 48 is weighted for channel assignment by the multiplier 131 and written to the modified envelope memory 132. The modified envelope memory 132 has an area corresponding to the number of time division channels, and stores modified envelope data MEN for each channel.
[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 assignment memory 40 is sent to the weighting memory 133, the weighting data WT is read out and sent to the multiplier 131, and the priority of channel transfer (truncation) is weighted. The In this weighting memory 133, as shown in FIG. 12 (2), each weighting data WT is stored for each frequency number data FN.
[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 multiplier 131 are omitted, and the priority of channel assignment may not be weighted according to musical properties. Thereby, the possibility (frequency) of channel truncation increases as the level of the synthesized component sound of each channel decreases.
[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 music signal generators 5 are provided in a number corresponding to the number of stereo channels (audio channels) forming a sound image. Sound image data is stored in each channel area of each assignment memory 40 of each stereo (audio) channel, and this sound image data is multiplied and synthesized by the tone waveform data or envelope data EN of each channel by a multiplier 43 to form a sound image. The Such a stereo (audio) channel system channel assignment system is shown in the specification and drawings of Japanese Patent Application No. 3-204404 or Japanese Patent Application No. 2-408859.
[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 comparator 151 of the first minimum level detection circuit 141. The comparator 151 is also supplied with the minimum corrected envelope data MEN that has been detected and stored in the first level latch 171. If the new corrected envelope data MEN is smaller than the minimum corrected envelope data MEN, a detection signal is output from the comparator 151, and this signal is given to the first level latch 171 through the AND gate 152 as a latch signal. The new modified envelope data MEN is stored.
[0068]
The latch signal is also supplied to the first channel number latch 181 to store the channel number related to the new modified envelope data MEN. This channel number is the channel number data CHNo from the timing generator 3. In this way, when the division time for all channels elapses, the number of the channel with the smallest corrected envelope data MEN is stored in the first channel number latch 181 and the value of the smallest corrected envelope data MEN is stored in the first level latch. 171 is stored.
[0069]
Further, each bit of the modified envelope data MEN of each channel is input to the NAND gate group 191. When all bits are "0" and the level of the modified envelope data MEN is "0", the empty channel flag ECF is sent from the NAND gate group 191. Is output and stored in the first flag latch 192. The latch signal is supplied to the first flag latch 192, and the store is performed at the timing.
[0070]
The AND gate 152 is supplied with the clock signal CK0 shown in FIG. 14, and is compared by the comparator 151 in the first half of the division time of one channel, and the first channel number latch 181 and the first level latch 171 in the second half. And stored in the first flag latch 192.
[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 channel number latch 182 and Given to the second flag latch 193, the smallest corrected envelope data MEN is transferred from the first level latch 171 to the second level latch 172, the channel number of the first channel number latch 181 is transferred to the second channel number latch 82, The empty channel flag ECF of the first flag latch 192 is transferred to the second flag latch 193 and written to the minimum channel memory 134.
[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 latches 181, 182, 171, 172, 192 and 193 are R-S type.
[0073]
The channel number data from the second channel number latch 182 of the first minimum level detection circuit 141 is supplied to the coincidence determination circuit 153 of the second minimum level detection circuit 142. The coincidence determination circuit 153 is also given the same channel number as that given to the first channel number latch 181 of the first minimum level detection circuit 141. When the two data coincide with each other, the output signal of the coincidence determination circuit 153 becomes low level, and the AND gate 156 is closed. A comparison result signal from the comparator 154 of the second minimum level detection circuit 142 is supplied to the first channel number latch 183 and the first level latch 173 via the AND gate 156.
[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 coincidence determination circuit 153 includes an exclusive OR gate group and an OR gate, and each bit of the two channel number data is given to each exclusive OR gate to determine the difference between the bit data. When they do not match, a high level signal is output via the OR gate.
[0075]
The comparator 154, AND gate 155, first channel number latch 183, second channel number latch 184, first level latch 173, second level latch 174, NAND gate group 194, first flag latch 195 of the second minimum level detection circuit 142. The configuration and operation of the second flag latch 196 include the comparator 151, the AND gate 152, the first channel number latch 181, the second channel number latch 182, the first level latch 171 and the second level of the first minimum level detection circuit 141. This is the same as the latch 172, the NAND gate group 191, the first flag latch 192, and the second flag latch 193.
[0076]
The comparator 159, the AND gate 160, the first channel number latch 185, the second channel number latch 186, the first level latch 175, the second level latch 176, the AND gate 161, and the coincidence determination circuit of the third minimum level detection circuit 143. 157, the NAND gate group 197, the first flag latch 198 and the second flag latch 199 are configured and operated in accordance with the comparator 154, the AND gate 155, the first channel number latch 183, the second channel number latch 185 of the second minimum level detection circuit 142. The first level latch 173, the second level latch 175, the AND gate 156, the coincidence determination circuit 153, the NAND gate group 194, the first flag latch 195, and the second flag latch 196 are the same.
[0077]
The signal from the coincidence determination circuit 153 of the second minimum level detection circuit 142 and the signal from the coincidence determination circuit 157 of the third minimum level detection circuit 143 are supplied to an AND gate 158, and an output signal of the AND gate 158 is obtained. , And provided as an opening signal to the AND gate 161. A comparison result signal from the comparator 159 of the third minimum level detection circuit 143 is supplied to the first channel number latch 185 and the first level latch 175 via the AND gate 161.
[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 envelope calculation memory 48 is sent to the NAND gate groups 191, 194 and 197 of the minimum level detection circuits 141, 142 and 143. .
[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 NAND gate groups 191, 194 and 197.
[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 / data storage unit 4 are performed (step 01), and a sound generation process is performed based on manual performance or automatic performance on the keyboard 11 or the midi interface 15 (step 03). .
[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 midi interface 15, musical factor information of the musical tone control information, and musical factors already stored in the program / data storage unit 4 at this time. Determined by information.
[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 assignment memory 40 of the searched empty channel. Written. In some cases, tone number data TN, touch data TC, part number data PN, and tone time data TM of “0” are also written.
[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 midi interface 15 or the panel switch group 13, musical factor information corresponding to this switch is taken in and stored in the program / data storage unit 4, and the musical factor information is changed. (Step 06). Thereafter, other processing is executed (step 07), and the processing from step 02 to step 07 is repeated.
[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 assignment memory 40. The area is written (step 53), the high release flag HRF of this channel area is cleared, and the minimum channel number MCH and the minimum corrected envelope data MEN are erased in the same manner as the step 58. Step 54).
[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 step 53 is prepared by a high release process in step 57 described later.
[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 step 82 is the same. The characteristic (2) is as described in the weighting memory 133 described above.
[0096]
Next, if the frequency number data FN of each component sound already assigned in the assignment memory 40 and the frequency number data FN obtained in the above step 13 match (step 14), this channel The envelope speed data ES and envelope time data ET of each phase are rewritten to those of the synthetic envelope, and key number data KN is additionally stored (step 15). In this synthesis envelope, the envelope of this new component sound is added and synthesized to the envelope of the single component sound or the synthesized component sound that has already been assigned to this channel. The envelope synthesis process in step 15 will be described later.
[0097]
In the envelope synthesis process of step 15, if the frequencies of the plurality of component sounds of a plurality of musical sounds to be newly assigned are the same, envelope synthesis is also performed for these component sounds. In step 15 envelope synthesis, the level data LE of the component sounds to be synthesized are also added (calculated) to each other.
[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 above step 82 is compared with the first minimum modified envelope data 1MEN stored in the minimum channel memory 134. (Step 83) If the first minimum modified envelope data 1MEN is smaller (Step 84) and an empty channel flag ECF is added to the first minimum channel number 1MCH (Step 56), the first minimum channel number The frequency number data FN, key number data KN, envelope speed data ES, and envelope time data ET of the component sound are written in the area of the 1MCH assignment memory 40, and the corresponding channel count of the phase counter 50 is counted. There is cleared (step 17).
[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 steps 56, 17, 58, 57 (step 84). 86). Thus, even a new component sound based on a new pronunciation instruction cannot be assigned to a channel if the level is low.
[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 (steps 51 to 54).
[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 step 56, even if the empty channel flag ECF is added to the minimum channel number MCH, if the high release flag HRF is stored in the corresponding channel area of the assignment 40, the channel assignment in step 17 is performed. No processing is performed. This is because the component sound of the channel is being rapidly attenuated and the component sound to be assigned next is reserved. In this case, the process returns to step 16 again.
[0111]
Further, the deletion of the minimum channel number MCH in step 58 may be executed after the high release process in step 57. In this case, the same channel number is listed again in the minimum level detection circuits 141, 142, and 143, and after the high release, the channel assignment process in steps 51 to 54 is executed.
[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 (steps 14 and 18), the component sounds are assigned to the two vacant channels (steps 16, 17, and 58). The remaining two component sounds are assigned to the two lowest channel numbers having low levels (steps 18, 14, 16, 17, 58).
[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 accumulator 44.
[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 step 82.
[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 (steps 56, 17, 58, 57, 86, 51-54). Therefore, the same component sound is not necessarily produced through all stereo (audio) channels, and may be assigned to some stereo (audio) channels and produced.
[0126]
The weighting data WT multiplied in step 82 is exactly the same as the weighting data WT stored in the weighting memory 133. Thereby, the component sound that has already been assigned to the channel and the component sound to be assigned to the channel in the future can be assigned to the channel with the same priority. Of course, the contents of the weighting data WT may be different. Thereby, the priority of the channel assignment of the component sound already assigned to the channel can be increased, or the priority of the channel assignment of the component sound assigned to the channel can be increased.
[0127]
10. Envelope synthesis process (step 15)
FIG. 7 shows a flowchart of the envelope synthesis process of step 15 above. First, the phase count value of the channel of the phase counter 50 and the remaining envelope time data ET of the channel of the envelope time memory 49 are read by the controller 2 (step 21). The envelope time data ET is sequentially accumulated, and the absolute time from the current time point to the end of each phase of the component sound a is obtained (step 22).
[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 assignment memory 40, and the counter of the corresponding channel of the phase counter 50 Cleared (step 29). As a result, generation of a synthetic envelope is started. In this case, the portion after the time of the synthetic envelope on event (or off event described later) is stored in the assignment memory 40 and generated.
[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 assignment memory 40 corresponding to the key number data KN of the component sound a, and the envelope speed data after the release of the component sound b. ES and envelope time data ET are also stored in the assignment memory 40 corresponding to the key number data KN of the component sound b (step 30). The envelope speed data ES and envelope time data ET after this release are subjected to envelope synthesis processing after the off event.
[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 assignment memory 40 in which the same key number data KN as the key number data KN related to the off event is stored is searched (step 32).
[0143]
When the corresponding channel is found (step 33), the same processing as the envelope synthesis processing of step 15 described above is executed (step 34), and the envelope speed data ES and envelope time corresponding to this key number data KN are executed. Data ET is erased from the channel area (step 35). The envelope synthesis process by the above off event is repeated for other component sounds (step 36), and other processes are performed (step 37).
[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 step 30 is not performed.
[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 step 57 described above. The envelope calculation data EN of the channel is fetched from the EN calculation memory 48 (step 61), and the shortest time ETr until the envelope becomes “0”, that is, the high release envelope time ETr is obtained by the following calculation (step 62). .
[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 step 13 is also written (step 75), and the channel number CHNo. Are also written in the same manner (step 76). This channel number CHNo is used for checking the correspondence of the channel in the writing in step 53 above.
[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 assignment memory 40 in step 53 described above.
[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 controller 2 at regular intervals. In this process, the tone time data TM is incremented and the number of simultaneous sounds is counted.
[0159]
In this processing, for each channel area of the assignment memory 40 (steps 41, 46, 47), the tone time data TM of the on / off data “1” and the tone being generated (step 43) is displayed. "+1" is set (step 44).
[0160]
Similarly, for each channel area of the assignment memory 40 (steps 41, 46, 47), after the simultaneous sound number data is once cleared (step 42), the on / off data is “1” and the tone is being generated. Things are counted (step 43), and the number of simultaneous sounds is sequentially incremented by "+1" (step 45). The counted number of simultaneous pronunciations is stored in the program / data storage unit 4.
[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 waveform memory 42 may be a complex waveform other than a sine wave, or different waveforms are stored and selected for each tone color, pitch (tone range), touch, part, and sound generation time. Also good. Such a complex waveform is read out and output as a musical sound waveform of each component sound.
[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 steps 15 and 34 is an amplitude determining factor such as touch data TC. Then, the touch data TC of each channel in the assignment memory 40 is added for each of the on event and the off event, and the added touch data TC is sent from the assignment memory 40 to the multiplier 43 to generate a musical sound. The waveform data MW is multiplied. The added touch data TC may be multiplied by each envelope speed data ES of the channel. Using the multiplied envelope speed data ES, the envelope synthesis in steps 15 and 34 is performed.
[0165]
Further, although the above channels are formed by time division processing, the same number of tone signal generators 5 as that of the channels are provided, and tone waveform data MW of each tone signal generators 5 to 5 is added and synthesized by an adder. Good.
[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 assignment memory 40 is converted by the weighting memory 133. If the envelope phase data EF is less than a predetermined value, the envelope phase data EF is converted to a larger value and sent to the multiplier 131. If the envelope phase data EF exceeds a predetermined value, it is converted to a small value and sent to the multiplier 131. As a result, the channel assignment priority is changed and corrected (decision controlled) according to the musical nature of the envelope phase.
[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 steps 17 and 58 is executed. As a result, the channel assignment priority is changed and corrected (decision controlled) according to the musical properties of the musical sound level.
[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 step 13 or after step 16, the weight data WT determined by the number of key number data KN stored in each channel area of the assignment memory 40 is multiplied by each modified envelope data MEN. .
[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 steps 14 and 15 are omitted. Thereby, the component sounds of the same frequency are not envelope-synthesized, and after the previous component sound is rapidly attenuated, the channel is passed to the new component sound of the same frequency, and the attack is started.
[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 claim 1, 2, 3, or 4, Channel allocation method of the sound, envelope controller or envelope control method of a musical tone of a tone.
[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 claim 6 or the musical sound channel allocating method according to claim 7, wherein the musical sound channel allocating apparatus is determined based on musical characteristics, human equal loudness characteristics, or human minimum audible characteristics.
[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 claim 1 or the musical sound channel allocating method according to claim 2, wherein the frequency and the frequency of the musical sound that is attenuated rapidly and that passes through the channel are different or the same.
[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 claim 1, wherein a channel is not allocated even for a new musical sound based on an instruction, and the channel allocation control is executed for each of a plurality of audio channels or stereo channels forming a sound image. 3. A sound channel allocating method according to claim 2 or an allocating device.
【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 assignment memory 40;
FIG. 4 shows a tone signal generator 5;
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 SYMBOLS 51 ... Adder, 52 ... NAND gate group, 131 ... Multiplier, 132 ... Modified envelope memory, 133 ... Weighting memory, 134 ... Minimum channel memory, 141 ... First minimum level detection circuit, 142 ... Second minimum level detection circuit, 143: Third minimum level detection circuit.

Claims (7)

CPUが楽音装置に対して、
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つの楽音が複数の周波数成分の成分音を含む楽音であって、同時に発生される複数の楽音にわたって存在する同じ周波数の成分音を判別する手段と、
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、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 .
CPUが楽音装置に対して、
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つの楽音が複数の周波数成分の成分音を含む楽音であって、同時に発生される複数の楽音にわたって存在する同じ周波数の成分音を判別する手段と、
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、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.
CPUが楽音装置に対して、
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つの楽音が複数の周波数成分の成分音を含む楽音であって、同時に発生される複数の楽音にわたって存在する同じ周波数の成分音を判別する手段と、
この判別された複数の楽音にわたる同じ周波数の各成分音の発生量を合成して、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.
上記チャンネル割り当ての制御は音像を形成する複数のオーディオチャンネルまたはステレオチャンネルごとに実行されることを特徴とする請求項2、4または6記載の楽音のチャンネル割り当て装置。  7. The musical sound channel assignment apparatus according to claim 2, wherein the channel assignment control is executed for each of a plurality of audio channels or stereo channels forming a sound image.
JP01661798A 1998-01-29 1998-01-29 Musical sound channel assignment apparatus and musical sound channel assignment method Expired - Fee Related JP3673388B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7124370B2 (en) * 2018-03-22 2022-08-24 カシオ計算機株式会社 Electronic musical instrument, method and program

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