JP4258991B2 - Musical sound generator and musical sound generation processing program - Google Patents

Musical sound generator and musical sound generation processing program Download PDF

Info

Publication number
JP4258991B2
JP4258991B2 JP2001103011A JP2001103011A JP4258991B2 JP 4258991 B2 JP4258991 B2 JP 4258991B2 JP 2001103011 A JP2001103011 A JP 2001103011A JP 2001103011 A JP2001103011 A JP 2001103011A JP 4258991 B2 JP4258991 B2 JP 4258991B2
Authority
JP
Japan
Prior art keywords
sounding
priority
sound
event
channel
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
JP2001103011A
Other languages
Japanese (ja)
Other versions
JP2002297138A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2001103011A priority Critical patent/JP4258991B2/en
Publication of JP2002297138A publication Critical patent/JP2002297138A/en
Application granted granted Critical
Publication of JP4258991B2 publication Critical patent/JP4258991B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、楽音発生装置及び楽音発生処理のプログラムに関する。
【0002】
【従来の技術】
近年の電子楽器等の楽音発生装置においては、複数の発音イベントを同時に発音して豊かな楽音を提供できる構成になっている。そのために、音源等の発音手段は所定数の発音チャンネル(「ボイス」ともいう)を備え、アサイナ等によって、各発音チャンネルに発音イベントを割り当てる処理を行っている。MIDIデータの入力や演奏等により発音イベントが発生したときに、所定数の発音チャンネルがすべて発音中である場合には、その中の1つの発音イベントをファーストダンプして強制的に消音させて発音チャンネルを確保するアサイン処理(「トランケート処理」ともいう)、すなわち後着優先のアサイン処理を行うのが一般的である。
このアサイン処理では、何らかの条件で消音する発音チャンネルを選択する必要がある。従来においては、次の3つの選択方法が採られていた。第1の方法は、発音している楽音信号のエンベロープの段階が最も進んでいるものを選択する。第2の方法は、楽音信号のエンベロープのレベルが最も低いものを選択する。第3の方法は、受信したMIDIデータ又は演奏例えば押鍵が最も古いものを選択する。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来の技術においては、消音する発音チャンネルの選択方法が音楽的な要素を考慮していないために、強制的な消音の結果によっては発生する音に不自然な影響を与えるという課題があった。
例えば、同じ音源手段でメロディパートのような主旋律の発音パート及びリズムパートやコードパート等の伴奏の発音パートが同時に発音している場合に、従来の選択方法で主旋律の発音パートを消音することは音楽的に好ましくない。
あるいは、例えば、鍵盤のアフタータッチを付加することによって、演奏者が意図的に音色を変化させる演奏を行った場合に、その発音イベントを消音することは演奏者の意図を無視することになり音楽的に好ましくない。
本発明の課題は、発音中の発音イベントを強制的に消音させて発音チャンネルを確保するアサイン処理を行っても、音楽的に不自然な影響を与えないようにすることである。
【0004】
【課題を解決するための手段】
請求項1に記載の楽音発生装置は、所定数の発音チャンネルによって複数の発音パートを分担する発音手段(実施形態においては、図1の音源LSI8に対応する)の各発音チャンネルに割り当てられる発音イベントに対してタッチセンスデータ及び各発音パートに応じて優先度係数を設定する設定手段(実施形態においては、図1のCPU1に対応する)と、所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは各発音チャンネルにおいて発音中の発音イベント及び新たな発音イベントに対する優先度を優先度係数に基づいて算出する演算手段(実施形態においては、図1のCPU1に対応する)と、この演算手段によって算出された各発音チャンネルの優先度のうち最も低い優先度が前記新たな発音イベントの優先度より低いか否かを判定する判定手段(実施形態においては、図1のCPU1に対応する)と、この判定手段によって最も低い優先度が新たな発音イベントの優先度より低いと判定された場合に最も低い優先度の発音イベントを強制的に消音させてその発音チャンネルに新たな発音イベントを割り当てる割当手段(実施形態においては、図1のCPU1に対応する)とを備えた構成になっている。
【0005】
請求項に記載の楽音発生処理のプログラムは、楽音発生装置のコンピュータ(実施形態においては、図1のCPU1に対応する)によって実行される楽音発生処理のプログラムであって、所定数の発音チャンネルによって複数の発音パートを分担する発音手段の各発音チャンネルに割り当てられる発音イベントに対してタッチセンスデータ及び各発音パートに応じて優先度係数を設定するステップと、所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは各発音チャンネルにおいて発音中の発音イベントに対する優先度を優先度係数に基づいて算出するステップと、この算出するステップによって算出された各発音チャンネルの優先度のうち最も低い優先度が新たな発音イベントの優先度より低いか否かを判定するステップと、この判定するステップによって最も低い優先度が新たな発音イベントの優先度より低いと判定された場合に最も低い優先度の発音イベントを強制的に消音させてその発音チャンネルに前記新たな発音イベントを割り当てるステップとを有する構成になっている。
【0006】
請求項1又は請求項2に記載の発明によれば、所定数の発音チャンネルによって複数の発音パートを分担する場合に、各発音チャンネルに割り当てられる発音イベントに対してタッチセンスデータ及び各発音パートに応じて優先度を算出し、発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは、その新たな発音イベントの優先度が発音中の発音イベントのうち最も低い優先度より高い場合に、その発音チャンネルの発音イベントを強制的に消音して新たな発音イベントを割り当てる。
【0010】
【発明の実施の形態】
以下、本発明による実施形態について、図を参照して説明する。
図1は、本発明による楽音発生装置の実施形態の構成を示すブロック図である。図において、CPU1はシステムバス2を介してROM3、RAM4、鍵盤5、スイッチ部6、MIDI I/F(インターフェース)7に接続されている。CPU1はワークエリアとしてのRAM4上でROM3に格納された楽音発生処理のプログラムを実行するコンピュータを構成している。
【0011】
鍵盤5は、演奏によって発音イベントである楽音データを入力する。スイッチ部6は、音色を設定するスイッチ、鍵盤演奏や自動演奏等の演奏モードを設定するスイッチ、ピッチベンドやビブラート等の音楽的な効果を付加するスイッチ等で構成される。MIDI I/F7は、外部のMIDI機器とこの電子楽器との間で発音イベント等からなるMIDIデータの授受を行う。CPU1はまた音源LSI8に接続され、鍵盤5及びMIDI I/F7からの発音イベントの音高データや制御データを音源LSI8に出力する。
【0012】
音源LSI8は、CH0〜CH7からなる8個の発音チャンネル(以下、単にチャンネルという)を備え、8個の発音イベントに対応する楽音を同時に発生することができる。また、音源LSI8には、8個のチャンネルからの楽音信号を例えば2チャンネルのステレオ楽音信号に合成する合成器を備えている。そして、音源LSI8から出力された合成楽音信号はA/D9によってアナログ信号に変換され、出力回路10においてフィルタ処理や増幅処理がなされて、外部のスピーカから発音される。
【0013】
図2はRAM4のエリアの一部を示し、音色パラメータ、機器トータルパラメータ、発音パートパラメータ、チャンネル優先度のエリアがある。また、図には示さないが、RAM4には各種のレジスタが設けられており、CPU1によって実行される楽音発生処理における各種のデータを一時的に記憶する。
音色パラメータのエリアには、図3に示すように、各音色ごとにファクタ(効果音付加要素)の種別に応じた変数名に対応して優先度の重み、すなわち優先度係数のデータが記憶される。同じファクタであっても音色ごとに優先度の重みは異なっている。
【0014】
ファクタの種別には、音高を連続的に上下させるピッチベンド、音を震わせるビブラート、現在の音高から次の音高になめらかに移行させるポルタメント、鍵盤のアフタータッチの操作によりMIDIチャンネルごとの音色及び音量を変化するモノプレッシャ並びに発音チャンネル(ボイス)ごとの音色及び音量を変化するポリプレッシャ、音の強さであるベロシティ、ベロシティの感度を表すタッチセンスがある。
【0015】
機器トータルパラメータのエリアには、図4に示すように、機器すなわち図1の楽音発生装置の機能におけるファクタの種別に応じた変数名に対応して優先度の重みのデータが記憶される。
発音パートパラメータのエリアには、図5に示すように、MIDIチャンネルごとに指定された各発音パートに対してファクタの種別に応じた変数名に対応して優先度の重みのデータが記憶される。なお、各パートごとに音色が指定される。
【0016】
チャンネル優先度のエリアには、図6に示すように、チャンネル番号にアサインされている音色番号に対応して優先度のデータが記憶される。図に示すように、この場合はパート0及びパート1の2つのパートが8チャンネルに各4チャンネルずつアサインされている。優先度は後述する演算処理によって算出される。
【0017】
次に図1の楽音発生装置における楽音発生処理について説明する。
図1は、CPU1の楽音発生処理の動作を示すメインフローチャートである。まず、所定のイニシャライズ(ステップA1)の後、スイッチ処理(ステップA2)、鍵盤処理(ステップA3)、MIDI処理(ステップA4)、アサイン処理(ステップA5)、発音処理(ステップA6)、その他の処理(ステップA7)を繰り返し実行する。
なお、ステップA5のアサイン処理とステップA6の発音処理は、CPU1及び音源LSI8による連続した協働作用であるが、説明の便宜上、2つの処理として区別している。
【0018】
図8は、図7におけるステップA2のスイッチ処理のフローである。スイッチ部のモードスイッチを検索して(ステップB1)、現在のモードが自動演奏モードであるか否かを判別する(ステップB2)。自動演奏モードである場合には、MIDI I/F7を介して入力されるMIDIデータの入力設定を行う(ステップB3)。自動演奏モードでなく、マニュアル演奏モードである場合には、鍵盤5の操作によって入力される演奏データの入力設定を行う(ステップB4)。ステップB3又はB4の設定の後は、他のスイッチ検索処理を行い(ステップB5)、図7のメインフローに戻る。
【0019】
図9は、メインフローにおけるステップA4のMIDI処理のフローである。MIDIイベントを受信したか否かを判別し(ステップC1)、受信しない場合にはこのフローを終了するが、受信したときはパート番号にMIDIチャンネルが合致するか否かを判別する(ステップC2)。合致しない場合にはこのフローを終了するが、合致したときはMIDIデータの合致したパート番号をレジスタpにセットする(ステップC3)。
【0020】
次に、受信したMIDIイベント(発音イベント)に効果音を付加する制御データが含まれているか否かを判別して、含まれている場合には、受信した制御データをパート番号[p]に対応するRAMのエリアに格納する。
すなわち、ピッチベンドを受信したか否かを判別し(ステップC4)、受信したときはP PB[p]に受信値を格納する(ステップC5)。ビブラートを受信したか否かを判別し(ステップC6)、受信したときはP VB[p]に受信値を格納する(ステップC7)。
モノプレッシャを受信したか否かを判別し(ステップC8)、受信したときはP MP[p]に受信値を格納する(ステップC9)。ポルタメントを受信したか否かを判別し(ステップC10)、受信したときはP PM[p]に受信値を格納する(ステップC11)。タッチセンスの変更を受信したか否かを判別し(ステップC12)、受信したときはP TS[p]に受信値を格納する(ステップC13)。そして、格納した制御データの値に基づいて優先度の再計算を実行する(ステップC14)。
【0021】
図10は、この優先度再計算のフローである。ピッチベンドの優先度の値を下記の数式1により計算し、レジスタPBに格納する(ステップD1)。ビブラートの優先度の値を数式2により計算し、レジスタVBに格納する(ステップD2)。ポルタメントの優先度の値を数式3により計算し、レジスタPMに格納する(ステップD3)。モノプレッシャの優先度の値を数式4により計算し、レジスタMPに格納する(ステップD4)。受信したモノプレッシャの値に基づいて、ポリプレッシャの優先度の値を数式5により計算し、レジスタPPに格納する(ステップD5)。ベロシティの優先度の値を数式6により計算し、レジスタVLに格納する(ステップD6)。タッチセンスの優先度の値を数式7により計算し、レジスタTSに格納する(ステップD7)。
【0022】
【数1】

Figure 0004258991
【数2】
Figure 0004258991
【数3】
Figure 0004258991
【数4】
Figure 0004258991
【数5】
Figure 0004258991
【数6】
Figure 0004258991
【数7】
Figure 0004258991
【数8】
Figure 0004258991
【0023】
そして、各レジスタの優先度の値に基づいて、下記の数式8により総合的なチャンネル優先度の平均値を計算し、レジスタSSに格納する(ステップD8)。SSに格納した優先度の値は、図6に示したRAMのエリアにおいて、各チャンネル番号(ボイス番号)に対応する音色番号に対して、ベロシティ及びポリプレッシャの値とともに、優先度の値が記憶される。この場合は、音色数は音色0及び音色1の2種類である。
【数8】
Figure 0004258991
【0024】
図11はメインフローにおけるステップA5のアサイン処理のフローである。まず、アサイン処理変数の初期化を行う。すなわち、現在見つかっている最も低い優先度をセットするレジスタPLに255(最大値)をセットし、現在調査中のチャンネル番号をセットするレジスタCCに0(チャンネル番号0)をセットし、現在までに見つかっている最も低い優先度のチャンネル番号をセットするレジスタCLに0をセットする(ステップE1)。
【0025】
次に、現在調査中のチャンネルの優先度をセットするレジスタPに現在のチャンネルの優先度をセットする(ステップE2)。最初は、現在調査中のチャンネル番号CCの値は0である。次に、Pの値が0であるか否かを判別する(ステップE3)。すなわち、現在調査中のチャンネルの優先度が0で、そのチャンネルが消音状態であるか否かを判別する。この場合には、PLにPの値すなわち0をセットし、CLにCCの値すなわち現在調査中のチャンネル番号をセットする(ステップE4)。
【0026】
ステップE3においてPの値が0でない場合には、Pの値がPLの値より小さいか否かを判別する(ステップE5)。すなわち、現在調査中のチャンネルの優先度が現在見つかっている最も低い優先度よりも低いか否かを判別する。Pの値がPLの値より小さい場合には、PLにPの値をセットし、CLにCCのチャンネル番号をセットする(ステップE6)。すなわち、現在調査中のチャンネルを現在見つかっている最も低い優先度のチャンネル番号として入れ替える。
【0027】
この入れ替えの後、又はステップE5においてPの値がPLの値以上である場合には、CCの値をインクリメントして(ステップE7)、次のチャンネル番号を指定する。そして、インクリメントしたCCの値が8より小さいか否か、すなわち最大チャンネル番号7以下か否かを判別する(ステップE8)。CCの値が8より小さい場合には、次のチャンネル番号が存在するので、ステップE2に移行して上記処理を繰り返す。
【0028】
例えば、図6の例では、ステップE2においてPにチャンネル番号0の音色0、優先度である50をPにセットした後、ステップE3ではPの値が0でないのでステップE5に進む。ステップE5において、Pの値50はPLの値255よりも小さいのでステップE6に進んで、PLに優先度50をセットし、CLにチャンネル番号0をセットする。次に、ステップE7において次のチャンネル番号1がセットされ、ステップE2に移行する。
【0029】
次に、ステップE2において、Pにチャンネル番号1の音色1、優先度42がセットされる。そして、ステップE3、ステップE5に進む。ステップE5において、Pの値42はPLの値50より小さいので、見つかっている最も低い優先度のチャンネル番号が入れ替わり、ステップE6に進んでPLに優先度42をセットし、CLにチャンネル番号1をセットする。
【0030】
このように、ステップE3においてPの値が0でない場合には、ステップE8においてCCの値が8になるまで、すなわちすべてのチャンネルの優先度を検索するまで、ステップE2からステップE8までのループを繰り返し実行して、すべてのチャンネルの中で最も低い優先度(図6の例では8)のチャンネル(CLのチャンネル番号)を捜す。そして、CLの値を割り当てチャンネル番号として保持する(ステップE9)。図6の例ではチャンネル番号5を保持する。ステップE3においてPの値が0で現在調査中のチャンネルが消音状態である場合には、発音イベントを無条件にそのチャンネルに割り当てられるので、ステップE4においてそのチャンネル番号をCLにセットした後は、ステップE9に進んでCLの値を割り当てチャンネル番号として保持する。
【0031】
ステップE9において、最も低い優先度の発音イベントのチャンネル番号を保持した後はステップE10に進み、今回発生した発音イベントの優先度を計算してレジスタSCに格納する。次に、PLの優先度の値がSCの優先度の値よりも小さいか否かを判別する(ステップE11)。PLの優先度がSCの優先度よりも小さい場合には、現在指定しているチャンネルに今回発音する発音イベントを割り当てることができる。この場合において、PLが0であるか否か、すなわち優先度が0で消音状態であるか否かを判別する(ステップE12)。
【0032】
PLが0でない場合には、割り当てチャンネル番号における発音イベントのレベルが0(消音)になっていないので、強制ファーストダンプ処理を行ってその発音イベントを強制的に消音する(ステップE13)。一方、PLが0である場合には、すでにそのチャンネルは消音状態になっているので、強制ファースト処理を行う必要はない。ステップE13の強制ファーストダンプ処理の後、又はステップE12においてPLが0(消音状態)である場合には、発音フラグHFに1をセットする(ステップE14)。ステップE11において、PLの優先度がSCの優先度以上である場合には、今回の発音イベントは発音されない。この場合には、HFに0をセットする(ステップE15)。HFに1又は0をセットした後は、図7のメインフローに戻る。
【0033】
メインフローにおけるステップA6の発音処理においては、入力されたMIDIデータの発音イベントに対して、HFの値が1である場合にはその発音イベントに対する発音処理を実行し、HFの値が0である場合にはその発音イベントは発音されず無視される。
【0034】
なお、この実施形態において、チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは、その新たな発音イベントの優先度が発音中の発音イベントのうち最も低い優先度より高い場合に、その発音チャンネルの発音イベントを強制的に消音して新たな発音イベントを割り当てるが、その優先度の演算は数式8に示すように、ピッチベンド、ビブラート、ポルタメント、モノプレッシャ、ポリプレッシャ、ベロシティ、及びタッチセンスの7個のファクタをすべて加味して優先度を算出している。
【0035】
しかしながら、優先度の算出のためには、主にソロ演奏等に使用している発音パートに対するファクタであるピッチベンド、ビブラート、ポルタメントに基づいて優先度を算出し、ソロ演奏等の発音パートの優先度が高くなるような構成にしてもよい。
また、音色に変化に影響を与えるモノプレッシャ、ポリプレッシャ、ベロシティ、及びタッチセンスのファクタに基づいて優先度を算出し、演奏者が意識的に音楽的効果を付加した発音チャンネル(ボイス)の優先度が高くなるような構成でにしてもよい。
すなわち、上記実施形態の構成は、発音パートに重点をおいて優先度を決定する第1の発明と、音色変化に重点をおいて優先度を決定する第2の発明とを含んでいる。
【0036】
以上のように、上記実施形態の楽音発生装置は、所定数の発音チャンネルによって複数の発音パートを分担する場合に、各発音チャンネルに割り当てられる発音イベントに対して音楽的効果を付加する制御データの種別及び各発音パートに応じて優先度を算出し、発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは、その新たな発音イベントの優先度が発音中の発音イベントのうち最も低い優先度より高い場合に、その発音チャンネルの発音イベントを強制的に消音して新たな発音イベントを割り当てる。
【0037】
また、上記実施形態のプログラムは、楽音発生装置のコンピュータによって実行させる楽音発生処理のプログラムであって、
所定数の発音チャンネルによって複数の発音パートを分担する発音手段の各発音チャンネルに割り当てられる発音イベントに対して音楽的効果を付加する制御データの種別及び各発音パートに応じて優先度係数を設定するステップと、所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは各発音チャンネルにおいて発音中の発音イベントに対する優先度を優先度係数に基づいて算出するステップと、この算出するステップによって算出された各発音チャンネルの優先度のうち最も低い優先度が新たな発音イベントの優先度より低いか否かを判定するステップと、この判定するステップによって最も低い優先度が新たな発音イベントの優先度より低いと判定された場合に最も低い優先度の発音イベントを強制的に消音させてその発音チャンネルに前記新たな発音イベントを割り当てるステップとを有する構成になっている。
すなわち、このプログラムは、楽音発生装置のコンピュータを楽音発生処理における各処理を実行する複数の手段として機能させる。
【0038】
したがって、このような構成の楽音発生装置又は楽音発生処理のプログラムによれば、所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときに、発音中の発音イベントを強制的に消音させて発音チャンネルを確保するアサイン処理を行っても音楽的に不自然な影響を与えることがない。
【0039】
なお、上記実施形態においては、各発音パートに応じて優先度係数を設定するが、その場合において、メロディパート等のように主旋律の発音パートに対して高い優先度を設定する。
また、上記実施形態においては、音楽的効果を付加する制御データの種別、すなわち、ピッチベンド、ビブラート、ポルタメントに応じて優先度係数を設定するが、その場合において、音楽的効果の付加量が大きいほど高い優先度を設定する。
【0040】
また、上記実施形態の楽音発生装置は、所定数の発音チャンネルを有する発音手段の各発音チャンネルに発音イベントを割り当てる場合に、各発音チャンネルに割り当てられる発音イベントに対して音色変化を与える制御データの種別に応じて優先度を算出し、発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは、その新たな発音イベントの優先度が発音中の発音イベントのうち最も低い優先度より高い場合に、その発音チャンネルの発音イベントを強制的に消音して新たな発音イベントを割り当てる。
【0041】
また、上記実施形態のプログラムは、楽音発生装置のコンピュータによって実行させる楽音発生処理のプログラムであって、
所定数の発音チャンネルを有する発音手段の各発音チャンネルに割り当てられる発音イベントに対して音色変化を与える制御データの種別に応じて優先度係数を設定するステップと、所定数の発音チャンネルのすべてが発音状態である場合に新たに発音すべき発音イベントが発生したときは各発音チャンネルにおいて発音中の発音イベントに対する優先度を優先度係数に基づいて算出するステップと、この算出するステップによって算出された各発音チャンネルの優先度のうち最も低い優先度が新たな発音イベントの優先度より低いか否かを判定するステップと、この判定するステップによって最も低い優先度が新たな発音イベントの優先度より低いと判定された場合に最も低い優先度の発音イベントを強制的に消音させてその発音チャンネルに新たな発音イベントを割り当てるステップとを有する構成になっている。
すなわち、このプログラムも、楽音発生装置のコンピュータを楽音発生処理における各処理を実行する複数の手段として機能させる。
【0042】
したがって、このような構成の楽音発生装置又は楽音発生処理のプログラムによれば、所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときに、発音中の発音イベントを強制的に消音させて発音チャンネルを確保するアサイン処理を行っても音楽的に不自然な影響を与えることがない。
【0043】
なお、上記実施形態においては、音色変化を与える制御データの種別に応じて優先度係数を設定するが、この場合において、制御データによって与えられる音色変化量が大きいほど高い優先度を設定する。
【0044】
さらに、上記実施形態によれば、発音パートに重点をおいて優先度を決定する第1の発明と音色変化に重点をおいて優先度を決定する第2の発明とを合成して、すなわち、数式8に示す演算のように、発音パート及び音色変化に重点をおいて優先度を決定する第3の発明を構成することも明らかである。
この場合には、所定数の発音チャンネルによって複数の発音パートを分担する発音手段の各発音チャンネルに割り当てられる発音イベントに対して音色変化及び各発音パートに応じて優先度係数を設定する。
【0045】
なお、上記実施形態においては、MIDIデータの入力に対して優先度に基づくアサイン処理を行う場合について説明したが、図8のフローにおいて鍵盤入力が設定された場合にも、鍵盤から入力される演奏データに含まれる制御データ、各発音チャンネルに対して指定された発音パートに応じて、鍵盤入力に対して優先度に基づくアサイン処理を行う構成にしてもよい。
【0046】
【発明の効果】
本発明によれば、所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときに、発音中の発音イベントを強制的に消音させて発音チャンネルを確保するアサイン処理を行っても音楽的に不自然な影響を与えることがない。
【図面の簡単な説明】
【図1】本発明による楽音発生装置の実施形態の構成を示すブロック図。
【図2】図1におけるRAMのエリアのデータ構成を示す図。
【図3】図2における音色パラメータのデータ構成例を示す図。
【図4】図2における機器トータルパラメータのデータ構成例を示す図。
【図5】図2における発音パートパラメータのデータ構成例を示す図。
【図6】図2におけるチャンネル優先度のデータ構成例を示す図。
【図7】図1のCPUの動作を示すメインフローチャート。
【図8】図4におけるスイッチ処理のフローチャート。
【図9】図4におけるMIDI処理のフローチャート。
【図10】図9における優先度再計算のフローチャート。
【図11】図4におけるアサイン処理のフローチャート。
【符号の説明】
1 CPU
3 ROM
4 RAM
5 鍵盤
6 スイッチ部
7 MIDIインターフェース
8 音源LSI[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a musical sound generating apparatus and a musical sound generating process program.
[0002]
[Prior art]
2. Description of the Related Art Musical sound generators such as electronic musical instruments in recent years are configured to provide rich musical sounds by simultaneously generating a plurality of sounding events. For this purpose, the sound generation means such as a sound source has a predetermined number of sound generation channels (also referred to as “voices”), and performs processing for assigning sound generation events to each sound generation channel by an assigner or the like. When a sounding event occurs due to MIDI data input, performance, etc., if all of the specified number of sounding channels are sounding, one sounding event is dumped first, and the sound is forcibly muted. In general, assignment processing for securing a channel (also referred to as “truncation processing”), that is, assignment processing giving priority to later arrival is performed.
In this assignment process, it is necessary to select a sound generation channel to be muted under some condition. Conventionally, the following three selection methods have been adopted. The first method is to select the most advanced tone signal envelope stage. The second method selects the musical sound signal having the lowest envelope level. The third method selects the received MIDI data or performance, for example, the oldest key pressed.
[0003]
[Problems to be solved by the invention]
However, in the above conventional technique, since the method of selecting the sound channel to be muted does not consider musical elements, there is a problem that the generated sound may be unnaturally affected depending on the result of forced muting. there were.
For example, if the main melody part, such as the melody part, and the accompaniment part, such as the rhythm part and chord part, are simultaneously sounding with the same sound source means, it is not possible to mute the main melody part by the conventional selection method. Musically unfavorable.
Or, for example, if the performer intentionally changes the timbre by adding aftertouch on the keyboard, muting the pronunciation event ignores the intention of the performer. Is not preferable.
An object of the present invention is to prevent an unnatural influence on music even if an assigning process for forcibly muting a sounding event during sounding to secure a sounding channel is performed.
[0004]
[Means for Solving the Problems]
  The musical sound generating apparatus according to claim 1 is a sounding event assigned to each sounding channel of sounding means (corresponding to the sound source LSI 8 of FIG. 1 in the embodiment) that shares a plurality of sounding parts by a predetermined number of sounding channels. AgainstTouch sense dataAnd a setting means (in the embodiment, corresponding to the CPU 1 in FIG. 1) for setting a priority coefficient according to each sounding part, and when a predetermined number of sounding channels are in a sounding state, a new sounding event is generated. Calculation means (corresponding to the CPU 1 in FIG. 1 in the embodiment) for calculating the priority for the sounding event being sounded and the new sounding event in each sounding channel when they occur, based on the priority coefficient, Determination means for determining whether or not the lowest priority among the sound channel priorities calculated by the means is lower than the priority of the new sound event (corresponding to the CPU 1 in FIG. 1 in the embodiment). If the determination means determines that the lowest priority is lower than the priority of the new pronunciation event, the lowest priority pronunciation event Assigning means for forcibly silenced by assigning a new sound event to its sound channel (in embodiments corresponds to the CPU1 in Figure 1) has a configuration in which a.
[0005]
  Claim2The musical tone generation processing program described in the above is a musical tone generation processing program executed by a computer of the musical tone generation apparatus (corresponding to the CPU 1 in FIG. 1 in the embodiment). For sound events that are assigned to each sound channel of sound means that share sound partsTouch sense dataAnd a step of setting a priority coefficient according to each sound part, and when a new sound event occurs when all of the predetermined number of sound channels are in sound, priority is given to the sound event that is sounding in each sound channel. Calculating a degree based on a priority coefficient, and determining whether or not the lowest priority among the priority of each sound channel calculated by the step of calculating is lower than the priority of a new sound event If the lowest priority is determined to be lower than the priority of the new sounding event by this determination step, the sounding event having the lowest priority is forcibly silenced and the new sounding event is assigned to the sounding channel. And a step of assigning.
[0006]
  According to the first or second aspect of the present invention, when a plurality of sound parts are shared by a predetermined number of sound channels, the sound events assigned to the sound channels are assigned.Touch sense dataThe priority is calculated according to each sound part, and when a new sounding event occurs when all sounding channels are in sounding status, the priority of the new sounding event is When the priority is higher than the lowest priority, the sounding event of the sounding channel is forcibly muted and a new sounding event is assigned.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments according to the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of an embodiment of a musical sound generator according to the present invention. In the figure, a CPU 1 is connected to a ROM 3, a RAM 4, a keyboard 5, a switch unit 6, and a MIDI I / F (interface) 7 via a system bus 2. The CPU 1 constitutes a computer that executes a musical sound generation processing program stored in the ROM 3 on the RAM 4 as a work area.
[0011]
The keyboard 5 inputs musical sound data, which is a sounding event, according to the performance. The switch unit 6 includes a switch for setting a tone color, a switch for setting a performance mode such as keyboard performance and automatic performance, a switch for adding musical effects such as pitch bend and vibrato, and the like. The MIDI I / F 7 exchanges MIDI data including sound generation events and the like between an external MIDI device and the electronic musical instrument. The CPU 1 is also connected to the tone generator LSI 8 and outputs the pitch data and control data of the sound generation event from the keyboard 5 and the MIDI I / F 7 to the tone generator LSI 8.
[0012]
The tone generator LSI 8 includes eight tone generation channels (hereinafter simply referred to as channels) including CH0 to CH7, and can simultaneously generate musical sounds corresponding to eight tone generation events. In addition, the tone generator LSI 8 includes a synthesizer that synthesizes tone signals from eight channels into, for example, a two-channel stereo tone signal. The synthesized musical tone signal output from the tone generator LSI 8 is converted into an analog signal by the A / D 9 and subjected to filter processing and amplification processing in the output circuit 10 to be generated from an external speaker.
[0013]
FIG. 2 shows a part of the RAM 4 area, which includes areas for timbre parameters, device total parameters, sound production part parameters, and channel priority. Although not shown in the figure, the RAM 4 is provided with various registers, and temporarily stores various data in the musical tone generation process executed by the CPU 1.
In the timbre parameter area, as shown in FIG. 3, priority weights, that is, priority coefficient data are stored for each timbre corresponding to variable names corresponding to the types of factors (sound effect addition elements). The Even with the same factor, the priority weight differs for each timbre.
[0014]
The types of factors include pitch bend that continuously raises and lowers the pitch, vibrato that shakes the sound, portamento that smoothly shifts from the current pitch to the next pitch, the tone of each MIDI channel by the keyboard aftertouch operation, There are a mono pressure that changes volume, a poly pressure that changes tone color and volume for each sound generation channel (voice), a velocity that is sound intensity, and a touch sense that represents velocity sensitivity.
[0015]
In the device total parameter area, as shown in FIG. 4, priority weight data corresponding to variable names corresponding to the types of factors in the function of the device, that is, the musical tone generating device of FIG. 1, is stored.
In the sound part parameter area, as shown in FIG. 5, priority weight data corresponding to the variable name corresponding to the type of factor is stored for each sound part designated for each MIDI channel. . A tone color is specified for each part.
[0016]
In the channel priority area, as shown in FIG. 6, priority data is stored corresponding to the timbre number assigned to the channel number. As shown in the figure, in this case, two parts, part 0 and part 1, are assigned to 8 channels, 4 channels each. The priority is calculated by an arithmetic process described later.
[0017]
Next, a tone generation process in the tone generator of FIG. 1 will be described.
FIG. 1 is a main flowchart showing the operation of the musical tone generation process of the CPU 1. First, after predetermined initialization (step A1), switch processing (step A2), keyboard processing (step A3), MIDI processing (step A4), assignment processing (step A5), sound generation processing (step A6), and other processing (Step A7) is repeatedly executed.
Note that the assignment process in step A5 and the sound generation process in step A6 are continuous cooperative actions by the CPU 1 and the tone generator LSI 8, but are distinguished as two processes for convenience of explanation.
[0018]
FIG. 8 is a flow of the switch process in step A2 in FIG. The mode switch in the switch section is searched (step B1), and it is determined whether or not the current mode is the automatic performance mode (step B2). In the case of the automatic performance mode, input setting of MIDI data input via the MIDI I / F 7 is performed (step B3). If it is not the automatic performance mode but the manual performance mode, the performance data input by operating the keyboard 5 is set (step B4). After the setting of step B3 or B4, another switch search process is performed (step B5), and the process returns to the main flow of FIG.
[0019]
FIG. 9 is a flow of the MIDI processing in step A4 in the main flow. It is determined whether or not a MIDI event has been received (step C1). If it is not received, this flow is terminated. If it has been received, it is determined whether or not the MIDI channel matches the part number (step C2). . If they do not match, this flow ends. If they match, the matched part number of the MIDI data is set in the register p (step C3).
[0020]
Next, it is determined whether or not control data for adding sound effects is included in the received MIDI event (sound generation event). If included, the received control data is assigned to the part number [p]. Store in the corresponding RAM area.
That is, it is determined whether or not pitch bend has been received (step C4). The received value is stored in PB [p] (step C5). It is determined whether or not vibrato has been received (step C6). The received value is stored in VB [p] (step C7).
It is determined whether or not a mono pressure has been received (step C8). The received value is stored in MP [p] (step C9). It is determined whether or not portamento has been received (step C10). The received value is stored in PM [p] (step C11). It is determined whether or not a touch sense change has been received (step C12). The received value is stored in TS [p] (step C13). Then, priority recalculation is executed based on the value of the stored control data (step C14).
[0021]
FIG. 10 is a flowchart of this priority recalculation. The pitch bend priority value is calculated by the following formula 1 and stored in the register PB (step D1). The vibrato priority value is calculated by Equation 2 and stored in the register VB (step D2). The portamento priority value is calculated by Equation 3 and stored in the register PM (step D3). The priority value of the mono pressure is calculated by Equation 4 and stored in the register MP (step D4). Based on the received mono pressure value, the priority value of the poly pressure is calculated by Equation 5 and stored in the register PP (step D5). The velocity priority value is calculated by Equation 6 and stored in the register VL (step D6). The touch sense priority value is calculated by Equation 7 and stored in the register TS (step D7).
[0022]
[Expression 1]
Figure 0004258991
[Expression 2]
Figure 0004258991
[Equation 3]
Figure 0004258991
[Expression 4]
Figure 0004258991
[Equation 5]
Figure 0004258991
[Formula 6]
Figure 0004258991
[Expression 7]
Figure 0004258991
[Equation 8]
Figure 0004258991
[0023]
Based on the priority value of each register, the average value of the overall channel priority is calculated by the following formula 8 and stored in the register SS (step D8). The priority value stored in the SS is stored in the RAM area shown in FIG. 6 together with the velocity and the pressure value for the tone number corresponding to each channel number (voice number). Is done. In this case, there are two types of timbres: timbre 0 and timbre 1.
[Equation 8]
Figure 0004258991
[0024]
FIG. 11 is a flowchart of the assignment process in step A5 in the main flow. First, the assignment process variable is initialized. That is, 255 (maximum value) is set in the register PL that sets the lowest priority currently found, and 0 (channel number 0) is set in the register CC that sets the channel number currently being investigated. 0 is set in the register CL for setting the lowest priority channel number found (step E1).
[0025]
Next, the priority of the current channel is set in the register P for setting the priority of the channel currently being investigated (step E2). Initially, the value of the channel number CC currently being investigated is zero. Next, it is determined whether or not the value of P is 0 (step E3). That is, it is determined whether or not the priority of the channel currently being investigated is 0 and the channel is muted. In this case, the value of P, that is, 0 is set in PL, and the value of CC, that is, the channel number currently being investigated is set in CL (step E4).
[0026]
If the value of P is not 0 in step E3, it is determined whether or not the value of P is smaller than the value of PL (step E5). That is, it is determined whether or not the priority of the channel currently being investigated is lower than the lowest priority currently found. If the value of P is smaller than the value of PL, the value of P is set in PL, and the channel number of CC is set in CL (step E6). That is, the channel under investigation is replaced with the lowest priority channel number currently found.
[0027]
After this replacement, or when the value of P is greater than or equal to the value of PL in step E5, the value of CC is incremented (step E7) and the next channel number is designated. Then, it is determined whether or not the incremented CC value is smaller than 8, that is, whether or not the maximum channel number is 7 or less (step E8). If the value of CC is smaller than 8, the next channel number exists, so the process moves to step E2 and the above process is repeated.
[0028]
For example, in the example of FIG. 6, after setting the timbre 0 of channel number 0 and the priority 50 to P in P in Step E2, the value of P is not 0 in Step E3, so the process proceeds to Step E5. In step E5, since the value 50 of P is smaller than the value 255 of PL, the process proceeds to step E6, where priority 50 is set in PL and channel number 0 is set in CL. Next, in step E7, the next channel number 1 is set, and the process proceeds to step E2.
[0029]
Next, in step E2, tone 1 of channel number 1 and priority 42 are set in P. Then, the process proceeds to Step E3 and Step E5. In step E5, since the value 42 of P is smaller than the value 50 of PL, the channel number of the lowest priority that has been found is switched, and the process proceeds to step E6 where priority 42 is set in PL and channel number 1 is set in CL. set.
[0030]
Thus, if the value of P is not 0 in step E3, the loop from step E2 to step E8 is repeated until the value of CC becomes 8 in step E8, that is, until the priority of all channels is searched. Repeatedly, the channel (CL channel number) having the lowest priority (8 in the example of FIG. 6) among all channels is searched. Then, the value of CL is held as an assigned channel number (step E9). In the example of FIG. 6, channel number 5 is held. In step E3, if the value of P is 0 and the currently investigated channel is muted, a sounding event can be unconditionally assigned to that channel. Therefore, after setting the channel number to CL in step E4, Proceeding to step E9, the value of CL is held as the assigned channel number.
[0031]
In step E9, after holding the channel number of the sound event with the lowest priority, the process proceeds to step E10, where the priority of the sound event that has occurred this time is calculated and stored in the register SC. Next, it is determined whether or not the PL priority value is smaller than the SC priority value (step E11). If the PL priority is lower than the SC priority, a sounding event to be sounded this time can be assigned to the currently designated channel. In this case, it is determined whether or not PL is 0, that is, whether or not the priority is 0 and the sound is muted (step E12).
[0032]
If PL is not 0, the sounding event level in the assigned channel number is not 0 (silence), so the forced fast dump process is performed to forcibly silence the sounding event (step E13). On the other hand, when PL is 0, the channel has already been muted, and there is no need to perform forced first processing. After the forced fast dump process at step E13 or when PL is 0 (silenced state) at step E12, 1 is set to the sound generation flag HF (step E14). In step E11, if the PL priority is higher than the SC priority, the current sounding event is not sounded. In this case, 0 is set in HF (step E15). After setting HF to 1 or 0, the process returns to the main flow of FIG.
[0033]
In the sound generation process of step A6 in the main flow, if the HF value is 1 for the sound generation event of the input MIDI data, the sound generation process is executed for the sound generation event, and the value of HF is 0. In some cases, the pronunciation event is not pronounced and ignored.
[0034]
In this embodiment, when a new sounding event occurs when all channels are in a sounding state, the priority of the new sounding event is higher than the lowest priority among sounding sounding events. In addition, the sound event of the sound channel is forcibly muted and a new sound event is assigned, and the priority calculation is performed as shown in Equation 8: pitch bend, vibrato, portamento, mono pressure, poly pressure, velocity, In addition, the priority is calculated in consideration of all seven factors of touch sense.
[0035]
However, in order to calculate the priority, the priority is calculated based on the pitch bend, vibrato, and portamento, which are factors for the sound part used mainly for solo performances, and the priority of the sound part for solo performances, etc. It may be configured such that the height becomes high.
Also, priority is calculated based on the factors of mono pressure, poly pressure, velocity, and touch sense that affect the timbre, and the priority of the sound channel (voice) to which the player has added a musical effect consciously. You may make it the structure which becomes high.
That is, the configuration of the above embodiment includes the first invention that determines priority with emphasis on the sound production part and the second invention that determines priority with emphasis on timbre change.
[0036]
As described above, the musical sound generating apparatus according to the above embodiment has control data for adding a musical effect to a sounding event assigned to each sounding channel when a plurality of sounding parts are shared by a predetermined number of sounding channels. Priority is calculated according to the type and each sound part, and when a new sound event occurs when all sound channels are in sound, the priority of the new sound event If the priority is higher than the lowest priority, the sounding event of the sounding channel is forcibly muted and a new sounding event is assigned.
[0037]
Further, the program of the above embodiment is a program for generating a musical sound to be executed by a computer of the musical sound generating device,
A priority coefficient is set in accordance with the type of control data that adds a musical effect to the sound event assigned to each sound channel of the sound generating means that shares a plurality of sound parts by a predetermined number of sound channels and each sound part Calculating a priority for a sounding event that is sounding in each sounding channel based on a priority coefficient when a new sounding event occurs when all of the predetermined number of sounding channels are in a sounding state; A step of determining whether or not the lowest priority among the sound channel priorities calculated in the calculating step is lower than the priority of the new sound generation event, and the lowest priority is newly determined by the determination step. The lowest priority pronunciation event when it is determined that the priority is lower than the priority Forcibly Mute has a structure and a step of assigning the new sound event to its sound channel.
That is, this program causes the computer of the musical tone generator to function as a plurality of means for executing each process in the musical tone generation process.
[0038]
Therefore, according to the musical sound generating device or musical sound generating process program having such a configuration, when a new sounding event occurs when all of the predetermined number of sounding channels are in a sounding state, the sounding event being sounded is detected. Even if the assignment process is performed to forcibly mute the sound and secure the sound channel, there is no unnatural influence on the music.
[0039]
In the above embodiment, the priority coefficient is set according to each sound part. In this case, a high priority is set for the main melody sound part such as a melody part.
In the above embodiment, the priority coefficient is set according to the type of control data to which a musical effect is added, that is, pitch bend, vibrato, and portamento. In this case, the larger the added amount of the musical effect is, Set a high priority.
[0040]
In addition, the musical sound generating apparatus of the above embodiment has control data that gives a timbre change to a sounding event assigned to each sounding channel when a sounding event is assigned to each sounding channel of a sounding means having a predetermined number of sounding channels. Priority is calculated according to the type, and when a new pronunciation event occurs when all of the pronunciation channels are in a sounding state, the new sounding event has the lowest priority among the sounding events that are currently sounding If it is higher, the sounding event of the sounding channel is forcibly muted and a new sounding event is assigned.
[0041]
Further, the program of the above embodiment is a program for generating a musical sound to be executed by a computer of the musical sound generating device,
A step of setting a priority coefficient according to the type of control data that gives a timbre change to a sounding event assigned to each sounding channel of a sounding means having a predetermined number of sounding channels, and all of the predetermined number of sounding channels are sounded When a new sounding event to be sounded occurs in the state, a step of calculating the priority for the sounding event being sounded in each sounding channel based on the priority coefficient, and each step calculated by this calculating step A step of determining whether the lowest priority among the sound channel priorities is lower than the priority of the new sounding event, and if the lowest priority is lower than the priority of the new sounding event by this determining step If judged, the lowest priority pronunciation event is forcibly muted and its pronunciation channel And the operating portions and assigning a new sound event.
That is, this program also causes the computer of the musical tone generator to function as a plurality of means for executing each process in the musical tone generation process.
[0042]
Therefore, according to the musical sound generating device or musical sound generating process program having such a configuration, when a new sounding event occurs when all of the predetermined number of sounding channels are in a sounding state, the sounding event being sounded is detected. Even if the assignment process is performed to forcibly mute the sound and secure the sound channel, there is no unnatural influence on the music.
[0043]
In the above embodiment, the priority coefficient is set in accordance with the type of control data that gives the timbre change. In this case, the higher the timbre change amount given by the control data, the higher the priority is set.
[0044]
Further, according to the above embodiment, the first invention for determining priority with emphasis on the pronunciation part and the second invention for determining priority with emphasis on timbre change are combined, that is, It is also obvious that the third invention for determining the priority with emphasis on the sound generation part and the timbre change as in the calculation shown in Expression 8 is also provided.
In this case, a priority coefficient is set in accordance with the timbre change and each sounding part for the sounding event assigned to each sounding channel of the sounding means sharing a plurality of sounding parts by a predetermined number of sounding channels.
[0045]
In the above embodiment, the case where assignment processing based on priority is performed on the input of MIDI data has been described. However, even when keyboard input is set in the flow of FIG. 8, performance input from the keyboard is performed. Depending on the control data included in the data and the sounding part designated for each sounding channel, assignment processing based on priority may be performed for keyboard input.
[0046]
【The invention's effect】
According to the present invention, when a new sounding event occurs when all of the predetermined number of sounding channels are in a sounding state, the assigning process for forcibly muting the sounding event being sounded and securing the sounding channel is performed. There is no musically unnatural influence even if it goes.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an embodiment of a musical sound generator according to the present invention.
2 is a diagram showing a data configuration of an area of a RAM in FIG.
3 is a diagram showing a data configuration example of timbre parameters in FIG. 2; FIG.
4 is a diagram showing a data configuration example of device total parameters in FIG. 2. FIG.
5 is a diagram showing a data configuration example of a sound part parameter in FIG. 2. FIG.
6 is a diagram showing a data configuration example of channel priority in FIG. 2. FIG.
FIG. 7 is a main flowchart showing the operation of the CPU in FIG. 1;
FIG. 8 is a flowchart of switch processing in FIG. 4;
FIG. 9 is a flowchart of the MIDI process in FIG. 4;
10 is a flowchart of priority recalculation in FIG. 9;
FIG. 11 is a flowchart of assignment processing in FIG. 4;
[Explanation of symbols]
1 CPU
3 ROM
4 RAM
5 keyboard
6 Switch part
7 MIDI interface
8 Sound source LSI

Claims (2)

所定数の発音チャンネルによって複数の発音パートを分担する発音手段の各発音チャンネルに割り当てられる発音イベントに対してタッチセンスデータ及び各発音パートに応じて優先度係数を設定する設定手段と、
前記所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは各発音チャンネルにおいて発音中の発音イベント及び前記新たな発音イベントに対する優先度を前記優先度係数に基づいて算出する演算手段と、
この演算手段によって算出された各発音チャンネルの優先度のうち最も低い優先度が前記新たな発音イベントの優先度より低いか否かを判定する判定手段と、
この判定手段によって前記最も低い優先度が前記新たな発音イベントの優先度より低いと判定された場合に前記最も低い優先度の発音イベントを強制的に消音させてその発音チャンネルに前記新たな発音イベントを割り当てる割当手段と、
を備えた楽音発生装置。
A setting means for setting a touch coefficient and a priority coefficient according to each sounding part for sounding events assigned to each sounding channel of the sounding means sharing a plurality of sounding parts by a predetermined number of sounding channels;
When a new sounding event occurs when all of the predetermined number of sounding channels are in a sounding state, the sounding event being sounded in each sounding channel and the priority for the new sounding event are based on the priority coefficient. Computing means for calculating;
Determination means for determining whether or not the lowest priority among the priorities of the sound generation channels calculated by the calculation means is lower than the priority of the new sound generation event;
When the determination means determines that the lowest priority is lower than the priority of the new sounding event, the sounding event having the lowest priority is forcibly silenced and the new sounding event is assigned to the sounding channel. Assigning means for assigning
Musical sound generator with
楽音発生装置のコンピュータによって実行される楽音発生処理のプログラムであって、
所定数の発音チャンネルによって複数の発音パートを分担する発音手段の各発音チャンネルに割り当てられる発音イベントに対してタッチセンスデータ及び各発音パートに応じて優先度係数を設定するステップと、
前記所定数の発音チャンネルのすべてが発音状態である場合に新たな発音イベントが発生したときは各発音チャンネルにおいて発音中の発音イベントに対する優先度を前記優先度係数に基づいて算出するステップと、
この算出するステップによって算出された各発音チャンネルの優先度のうち最も低い優先度が前記新たな発音イベントの優先度より低いか否かを判定するステップと、
この判定するステップによって前記最も低い優先度が前記新たな発音イベントの優先度より低いと判定された場合に前記最も低い優先度の発音イベントを強制的に消音させてその発音チャンネルに前記新たな発音イベントを割り当てるステップと、
を有することを特徴とする楽音発生処理のプログラム。
A musical sound generation processing program executed by a computer of the musical sound generator,
A step of setting a priority coefficient according to touch sense data and each sound part for a sound event assigned to each sound channel of sound means that shares a plurality of sound parts by a predetermined number of sound channels;
When a new sounding event occurs when all of the predetermined number of sounding channels are in a sounding state, calculating a priority for a sounding event that is sounding in each sounding channel based on the priority coefficient;
Determining whether the lowest priority among the priorities of each sound channel calculated by the calculating step is lower than the priority of the new sound event;
If it is determined in the determining step that the lowest priority is lower than the priority of the new sounding event, the sounding event having the lowest priority is forcibly silenced and the new sounding channel is transmitted to the sounding channel. Assigning an event,
A program for generating musical sounds, comprising:
JP2001103011A 2001-04-02 2001-04-02 Musical sound generator and musical sound generation processing program Expired - Fee Related JP4258991B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001103011A JP4258991B2 (en) 2001-04-02 2001-04-02 Musical sound generator and musical sound generation processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001103011A JP4258991B2 (en) 2001-04-02 2001-04-02 Musical sound generator and musical sound generation processing program

Publications (2)

Publication Number Publication Date
JP2002297138A JP2002297138A (en) 2002-10-11
JP4258991B2 true JP4258991B2 (en) 2009-04-30

Family

ID=18956133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001103011A Expired - Fee Related JP4258991B2 (en) 2001-04-02 2001-04-02 Musical sound generator and musical sound generation processing program

Country Status (1)

Country Link
JP (1) JP4258991B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006134524A1 (en) * 2005-06-17 2006-12-21 Koninklijke Philips Electronics N.V. Multiple-source signal rendering device
US7979146B2 (en) * 2006-04-13 2011-07-12 Immersion Corporation System and method for automatically producing haptic events from a digital audio signal
JP6254134B2 (en) * 2015-10-30 2017-12-27 株式会社藤商事 Game machine
JP2017080352A (en) * 2015-10-30 2017-05-18 株式会社大一商会 Game machine
JP6257659B2 (en) * 2016-01-25 2018-01-10 株式会社大一商会 Game machine
JP6235627B2 (en) * 2016-01-25 2017-11-22 株式会社大一商会 Game machine
JP6235626B2 (en) * 2016-01-25 2017-11-22 株式会社大一商会 Game machine
JP6246842B2 (en) * 2016-01-25 2017-12-13 株式会社大一商会 Game machine

Also Published As

Publication number Publication date
JP2002297138A (en) 2002-10-11

Similar Documents

Publication Publication Date Title
US8735709B2 (en) Generation of harmony tone
JP7331746B2 (en) Electronic keyboard instrument, musical tone generating method and program
JP4258991B2 (en) Musical sound generator and musical sound generation processing program
JPH06295179A (en) Musical performance information analyzing device and chord detecting device
JP2002311957A (en) Device and method for resonance and computer program for resonance processing
JP2021148865A (en) Electronic musical instrument, electronic keyboard musical instrument, musical tone generation method and program
US6180866B1 (en) Reverberating/resonating apparatus and method
JP4329276B2 (en) Musical sound generator and musical sound generation processing program
JP3530601B2 (en) Frequency characteristic control apparatus and frequency characteristic control method for musical tone signal
JPH0968980A (en) Timbre controller for electronic keyboard musical instrument
JPH09330079A (en) Music sound signal generation device and music sound signal generation method
JP5088179B2 (en) Sound processing apparatus and program
JP5470728B2 (en) Performance control apparatus and performance control processing program
WO2022054517A1 (en) Electronic musical instrument, method, and program
JP4306138B2 (en) Musical sound generator and musical sound generation processing program
JP3933070B2 (en) Arpeggio generator and program
JPH08137469A (en) Frequency characteristic controller for musical tone signal
JP4197489B2 (en) Electronic musical instruments
JP3437243B2 (en) Electronic musical instrument characteristic change processing device
JP3296248B2 (en) Musical performance equipment
JP5659501B2 (en) Electronic music apparatus and program
JP2003044050A (en) Musical sound generator and program for musical sound generation processing
JPH08137471A (en) Envelope control device of musical sound signal
JP5776205B2 (en) Sound signal generating apparatus and program
JP2019168515A (en) Electronic musical instrument, method, and program

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070314

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081205

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090202

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4258991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees