JPH0451197A - 電子楽器の発音チヤンネル割当装置 - Google Patents
電子楽器の発音チヤンネル割当装置Info
- Publication number
- JPH0451197A JPH0451197A JP2160766A JP16076690A JPH0451197A JP H0451197 A JPH0451197 A JP H0451197A JP 2160766 A JP2160766 A JP 2160766A JP 16076690 A JP16076690 A JP 16076690A JP H0451197 A JPH0451197 A JP H0451197A
- Authority
- JP
- Japan
- Prior art keywords
- key
- channel
- time
- variable
- sounding
- 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.)
- Pending
Links
- 239000011295 pitch Substances 0.000 claims description 28
- 230000000694 effects Effects 0.000 abstract description 11
- 238000000034 method Methods 0.000 description 16
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000002411 adverse Effects 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 241000862969 Stella Species 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
本発明は、電子楽器において複数の演奏操作情報を入力
して複数の発音チャンネルに割り当てる割当装置に関す
る。
して複数の発音チャンネルに割り当てる割当装置に関す
る。
発音チャンネルの限られた電子楽器によって複旋律の演
奏を行なうときに、各発音チャンネルに割り当てられる
各演奏鍵間での音高の高低が第9図に示すように変化す
ると音のつながりが悪く、第10図に示すように各発音
チャンネルに割り当てられる各演奏鍵間での音高の高低
を変化しないようにするのが好ましい。これは、特にチ
ャンネル毎に別の音色を割り当てた場合にも重要である
。 このため、従来は発音チャンネルを割り当てる前に猶予
期間を設け、発音チャンネルを割す当テるときに複数の
押鍵があった場合は、各軸の音高を調べて割り当てる発
音チャンネル間で音高の高低に変化が生じないようにし
ていた。
奏を行なうときに、各発音チャンネルに割り当てられる
各演奏鍵間での音高の高低が第9図に示すように変化す
ると音のつながりが悪く、第10図に示すように各発音
チャンネルに割り当てられる各演奏鍵間での音高の高低
を変化しないようにするのが好ましい。これは、特にチ
ャンネル毎に別の音色を割り当てた場合にも重要である
。 このため、従来は発音チャンネルを割り当てる前に猶予
期間を設け、発音チャンネルを割す当テるときに複数の
押鍵があった場合は、各軸の音高を調べて割り当てる発
音チャンネル間で音高の高低に変化が生じないようにし
ていた。
ところで、猶予期間が長すぎると発音遅れが目立って演
奏に悪影響が生じるし、短すぎると猶予期間を設ける効
果が十分に発揮できなくなる。 しかるに、上記従来の装置ではかかる猶予期間が一律で
あったので、発音遅れか猶予期間の効果の低下かのいず
れかを甘んじなければならないことがあった。 本発明は、上記問題に対処するため、演奏状態に応じて
猶予期間を適宜変化させ、発音遅れが生じるごとなく常
に猶予期間を設けた効果を維持せしめることが可能な電
子楽器の発音チャンネル割当装置を提供することを目的
とする。
奏に悪影響が生じるし、短すぎると猶予期間を設ける効
果が十分に発揮できなくなる。 しかるに、上記従来の装置ではかかる猶予期間が一律で
あったので、発音遅れか猶予期間の効果の低下かのいず
れかを甘んじなければならないことがあった。 本発明は、上記問題に対処するため、演奏状態に応じて
猶予期間を適宜変化させ、発音遅れが生じるごとなく常
に猶予期間を設けた効果を維持せしめることが可能な電
子楽器の発音チャンネル割当装置を提供することを目的
とする。
上記目的を達成するために、本発明の構成上の特徴は、
少なくとも楽音の発音の開始を指示する発音情報と発音
する楽音の音高を指示する音高情報とからなる一組の演
奏操作情報を入力して複数の発音チャンネルのいずれか
に割り当てる電子楽器の発音チャンネル割当装置におい
て、各発音チャンネルに割り当てられた楽音が当該発音
チャンネルにおいて発音されている時間に対応する発音
時間を計測する計時手段と、この計時手段によって計時
された上記発音時間に応じて変化する所定時間の間は上
記演奏操作情報の各発音チャンネルへの割り当てを禁止
する禁止手段と、この禁止手段による割り当ての禁止が
解除されているときに上記演奏操作情報を上記発音チャ
ンネルに割り当てるにあたり複数の演奏操作情報を複数
の割り当て可能な発音チャンネルに割り当てる場合には
当該複数の演奏操作情報に含まれる音高情報の高低と当
該複数の割り当て可能な発音チャンネルにて発音されて
いた音高の高低とが一致するように割り当てる割り当て
手段とを備えた構成としたことにある。
少なくとも楽音の発音の開始を指示する発音情報と発音
する楽音の音高を指示する音高情報とからなる一組の演
奏操作情報を入力して複数の発音チャンネルのいずれか
に割り当てる電子楽器の発音チャンネル割当装置におい
て、各発音チャンネルに割り当てられた楽音が当該発音
チャンネルにおいて発音されている時間に対応する発音
時間を計測する計時手段と、この計時手段によって計時
された上記発音時間に応じて変化する所定時間の間は上
記演奏操作情報の各発音チャンネルへの割り当てを禁止
する禁止手段と、この禁止手段による割り当ての禁止が
解除されているときに上記演奏操作情報を上記発音チャ
ンネルに割り当てるにあたり複数の演奏操作情報を複数
の割り当て可能な発音チャンネルに割り当てる場合には
当該複数の演奏操作情報に含まれる音高情報の高低と当
該複数の割り当て可能な発音チャンネルにて発音されて
いた音高の高低とが一致するように割り当てる割り当て
手段とを備えた構成としたことにある。
上記のように構成した本発明においては、計時手段は各
発音チャンネルに割り当てられた楽音が当該発音チャン
ネルにおいて発音されている時間に対応する発音時間を
計測し、禁止手段がこの計時手段によって計時された上
記発音時間に応じて変化する所定時間の間は上記演奏操
作情報の各発音チャンネルへの割り当てを禁止しており
、割り当て手段はこの禁止手段による割り当ての禁止が
解除されているときに上記演奏操作情報を上記発音チャ
ンネルに割り当てるにあたり複数の演奏操作情報を複数
の割り当て可能な発音チャンネルに割り当てる場合には
当該複数の演奏操作情報に含まれる音高情報の高低と当
該複数の割り当て可能な発音チャンネルにて発音されて
いた音高の高低とが一致するように割り当てる。 ところで、速いフレーズを演奏する場合には、上述した
ような発音チャンネル間での音高の高低が逆転したとし
ても、各音の持続部や減衰部が短いためにさほど悪影響
が生じない。それよりも猶予期間を長くした場合の発音
遅れが目立ってしまつO これに対し、遅いフレーズを演奏する場合には、フレー
ズがゆっくりしているので猶予期間が長くなってもさほ
ど発音遅れを感じないし、また、各音の持続部や減衰部
が長いので発音チャンネル間での音高の高低が逆転する
と演奏に悪影響が生じる。 本発明では、速いフレーズの演奏ではそれぞれの押鍵時
間が短くなるので、これに応じて猶予期間を短くし、遅
いフレーズの演奏ではそれぞれの押鍵時間が長くなるの
で、これに応じて猶予期間を長くする。 すなわち、それまでの演奏状況に応じて発音遅れが目立
たない範囲で猶予期間を長くするため、発音遅れが生じ
ることなく常に猶予期間を設けた効果を維持せしめるこ
とができる。 なお、上記発音時間は現実に発音されている時間の他に
も、発音開始の指示から発音終了の指示までの時間など
、広くそれまでの演奏状況を知りうるにたる発音の長さ
を表す時間をさす。
発音チャンネルに割り当てられた楽音が当該発音チャン
ネルにおいて発音されている時間に対応する発音時間を
計測し、禁止手段がこの計時手段によって計時された上
記発音時間に応じて変化する所定時間の間は上記演奏操
作情報の各発音チャンネルへの割り当てを禁止しており
、割り当て手段はこの禁止手段による割り当ての禁止が
解除されているときに上記演奏操作情報を上記発音チャ
ンネルに割り当てるにあたり複数の演奏操作情報を複数
の割り当て可能な発音チャンネルに割り当てる場合には
当該複数の演奏操作情報に含まれる音高情報の高低と当
該複数の割り当て可能な発音チャンネルにて発音されて
いた音高の高低とが一致するように割り当てる。 ところで、速いフレーズを演奏する場合には、上述した
ような発音チャンネル間での音高の高低が逆転したとし
ても、各音の持続部や減衰部が短いためにさほど悪影響
が生じない。それよりも猶予期間を長くした場合の発音
遅れが目立ってしまつO これに対し、遅いフレーズを演奏する場合には、フレー
ズがゆっくりしているので猶予期間が長くなってもさほ
ど発音遅れを感じないし、また、各音の持続部や減衰部
が長いので発音チャンネル間での音高の高低が逆転する
と演奏に悪影響が生じる。 本発明では、速いフレーズの演奏ではそれぞれの押鍵時
間が短くなるので、これに応じて猶予期間を短くし、遅
いフレーズの演奏ではそれぞれの押鍵時間が長くなるの
で、これに応じて猶予期間を長くする。 すなわち、それまでの演奏状況に応じて発音遅れが目立
たない範囲で猶予期間を長くするため、発音遅れが生じ
ることなく常に猶予期間を設けた効果を維持せしめるこ
とができる。 なお、上記発音時間は現実に発音されている時間の他に
も、発音開始の指示から発音終了の指示までの時間など
、広くそれまでの演奏状況を知りうるにたる発音の長さ
を表す時間をさす。
以下、本発明の実施例を図面を用いて説明する。
第1図に本発明に係る発音チャンネル割当装置を備えた
電子楽器の全体概略構成を示している。 この電子楽器はバス10に接続されたCPU20の制御
のもとで楽音の発生が制御されている。 CPU20はROM30に記憶されたプログラムを実行
し、その際に必要な各種変数の記憶及び読み込みにRA
M40を利用している。 また、バス10には鍵盤50が接続されており、CPU
20はバス10を介して同鍵盤50の操作状況を検出し
、演奏者による鍵盤操作に応じて押鍵状態を表すキーオ
ン信号KONと押鍵された鍵を表す牛−コード信号KC
と押鍵の速さを表すキーオンベロシティ信号KVとを音
源回路60における所定の発音チャンネルに出力する。 音源回路60は各信号に対応して同操作状況に応じた楽
音信号を発生し、同楽音信号はアンプなどからなるサウ
ンドシステム70に入力されて、同サウンドシステム7
0に接続されたスピーカ80より楽音として発音される
。なお、キーコードKCは高音の鍵はど大きな値であり
、キーオンイベントィに■はキータッチが速いほど大き
な値となる。 さらに、バス10にはタイマ90が接続され、同タイマ
90は所定時間毎にCPU20に対して割り込み信号を
発生し、同CPU20に割り込みプログラムを実行せし
める。 次に、上記のように構成した本実施例の動作を説明する
。 理解の容易のために、本実施例における音源回路60は
2つの発音チャンネルを有するものとし、第2図に示す
演奏を行なうものとする。 演奏者が図示しない電源スィッチをオンにすると、CP
U20はROM30に記憶されたプログラムに基づいて
鍵盤50における演奏操作状況に応じた楽音発生の制御
を開始する。 CPU20は、上記電源スィッチがオンにされると第3
図に示すメインルーチンの実行を開始し、ステップ10
0にて各変数値をクリアするなどの初期設定を行なう。 初期設定は最初に一度だけ実行すれば良く、以後、CP
U20はステップ2゜Oにて鍵盤50における操作に対
応したキーイベント処理を行ない、鍵盤5oにおいてい
ずれがの鍵が押鍵されたときにはステップ300で所定
の処理を実施し、ステップ400にてその他の必要な処
理を実施するという処理を繰り返す。 また、この処理と並行してcPυ2oには1mSごとに
タイマ90から割り込み信号が入力され、同CPU20
は当該割り込み信号が入力されたときに第4図に示す割
り込みプログラムのステップ500にて計時処理を実行
する。 いま、演奏者が比較的ゆっ(すしたフレーズで第2図に
示す複旋律を演奏するために鍵盤5oにおける第2図の
Aに対応する鍵を押鍵したとする。 二つの鍵AI、A2を同時に押鍵したとしても、微少時
間ずれた二つの押鍵が生じたものとして処理が行なわれ
る。ここでは、まず高音側の鍵A、が先に押鍵されたと
する。 すると、CPU20はステップ200におけるキーイベ
ント処理の中で、第5図に示すステップ202にてキー
イベントが生じたことを検知するとともにステップ20
4にて当該押鍵のキーオンイベントを検知する。キーオ
ンイベントがあった場合は、ステップ206にてその時
点にける未処理のキーオンイベント数を表す変数!の値
を参照して当該未処理のキーオンイベントが2つく発音
チャンネルの最大数を意味する。)未満であるか判断す
る。 演奏開始直後であるので未処理のキーオンイベント数を
表す変数!の値はrOJであり、ステップ206では”
YES″と判断される。 押鍵によって未処理のキーオンイベントが一つ生じたの
で、ステップ208にて未処理のキーオンイベント数を
表す変数1の値を「1」だけ増加させ、ステップ210
にて未処理のキーオンイベントの十−コードを記憶する
配列変数KC[f、1に演奏者が押鍵した鍵のキーコー
ドを記憶するとともに当該キーオンイベントが生じてか
らの時間を表す配列変数tch [1]をrOJにクリ
アする。時間経過を表す変数には、この他にも各発音チ
ャンネルごとに牛−オンされている時間を表す配列変数
TCH[nlが用意されており、割り込みプログラムと
して1msごとに実行されるステップ500の計時処理
において、第6図に示すようにステップ502にて配列
変数tch [j] (j=1.2)がrlJづつ増
加され、ステップ504にて配列変数TCH[jコ (
J=1.2)が「1」づつ増加される。 また、ステップ212では未処理のキーオンイベントの
キーベロシティを記憶する配列変数KV[1コに当該押
鍵の速さを表すキーベロシティを記憶する。これにより
キーイベント処理は終了し、CPU20はメインルーチ
ンにおけるステップ300にてチャンネル割当処理を実
行する。 当該チャンネル割当処理では、未処理の牛−オンイベン
トが一つもなければチャンネル割当を行なう必要がない
ので、第8図に示すようにステップ302にて変数1の
値が「0」であるか判断する。” YES”と判断され
れば何もせずに修了するが、いまは変数1の値がrlJ
となっているのでステップ302ではNo″と判断され
、ステップ304にて同変数iの値が「1」であるか判
断して”YES”と判断される。 ここで未処理のキーオンイベントについて発音チャンネ
ルを割り当てる前に所定の猶予期間を経過しているか判
断する。当該未処理のキーオンイベントが発生してから
の経過時間は配列変数tch [i]で表され、所定の
猶予期間は変数Δtwで表されるのでステップ306に
て変数tch[1コがΔtwを越えているか否か判断す
る。 猶予期間を表す変数Δtwは、第7図に示すように各発
音チャンネルごとにキーオンされている時間を表す配列
変数TCH[nlに応じてステップ220〜232にて
設定される。猶予期間は発音される時間の短くなる速い
フレーズの演奏状態においては短くなり、発音される時
間の長くなるゆっくりしたフレーズの演奏状態において
は長くする。すなわち、キーオフイベントがあったとき
にステップ202,204にて当該キーオフイベントを
検知するとともに、ステップ214にてキーオフされた
鍵のキーコードを変数0FKCに記憶するとともに、割
り当てられていたチャンネルナンバを変数CHに記憶す
る。割り当てられていなければ変数CHに「0」を入れ
ることにし、ステップ216にて同変数CHが「0」で
ないと判断されればステップ218にてキーオフ処理を
行な う。 具体的には、CPU20がバス10を介して音源回路6
0における当該キーオフされた鍵が割り当てられている
チャンネルに牛−オフ信号を出力する。これにより音源
回路60は当該チャンネルの発音をあらかじめ定められ
て時定数に従って減衰せしめる。 猶予期間は直前にキーオフされた鍵の発音時間に応じて
変化させるため、ステップ220〜232にて同発音時
間を表す配列変数TCH[CH3の値に応じて猶予期間
を定める算術式を決定するとともに、猶予期間を算出す
る。 同発音時間がZooms未満であれば(ステップ220
)、 としくステップ222)、同発音時間が100m5以上
、200m5未満であれば(ステップ22Q、224)
、 ・・・ (2) としくステップ226)、同発音時間が200m5以上
、300m5未満であれば(ステップ220、 224
. 228 )、 ・・・ (3) としくステップ230、同発音時間が300 m s以
上であれば(ステップ220. 224. 228)Δ
tw=60 ・・・ (4) とする(ステップ232)。 ただし、この猶予期間を定めるルーチンはキーオフされ
た場合に初めて実施されるので、演奏開始時は変数Δt
wの値がメインルーチンのステップ100にて初期設定
された「0」となっている。 このため、最初の押鍵についてステップ306にて変数
tch[1]が変数Δtw以上であるか判断したときに
はYES”と判断される。 これにより割り当てが許可されたことになるので、空い
ている発音チャンネルの数に応じて割り当てるチャンネ
ルを決定する。すなわち、CPU20はバス10を介し
て音源回路60から空いているチャンネル数を入力し、
ステップ308,310にて発音チャンネルが2つとも
空いていると判断されればればチャンネル1を割り当て
、ステップ308,310にて1つだけ空いていると判
断されれば空いている側のチャンネルを割り当て、ステ
ップ308にていずれも空いていないと判断されれば減
衰の進んでいる側のチャンネルを割り当てる。 演奏開始時は両方の発音チャンネルが空いているはずな
ので、CPU20はステップ312の処理にてキーオン
信号と未処理のキーオンイベントにかかるキーコード信
号KC[1] とキーオンイベンテイ信号KV[1]
とを音源回路60のチャンネル1に送出し、さらにステ
ップ314にて変数tch [11の値を変数TCH[
1]に代入して当該キーオンイベントが生じてからの経
過時間をチャンネル1の発音時間としておくとともに、
チャンネル1にて発音中のキーフードを表す変数CHK
C[1]に上記割り当てたキーコードKC[1]を記憶
する。 音源回路60はこれらの信号に基づいて楽音信号の形成
を開始し、CPU20は未処理のキーオンイベントを処
理したものとしてステップ316にて変数1を「0」に
クリアして当該チャンネル割り当て処理を修了する。チ
ャンネル割り当て処理が修了するとメインルーチンのス
テップ400にてその他の処理、例えば鍵盤50に設け
られた他の操作スイッチの操作状況を検出して所定の処
理を実行し、以後、上述した処理を繰り返す。 複旋律の演奏を開始したのであるから、微少時間経過後
、低音側のA2に対応する新たな鍵が押鍵され、キーオ
ンイベントが生じてメインルーチンのステップ200に
てキーイベント処理が実施される。この場合も上述した
キーオンイベント処理とほぼ同様であり、ステップ20
2,204゜206を経て変数1に「1」をセットし、
ステ。 ブ210,212にてキーコードとキーオンベロシティ
を変数KC[1]、KV [1]にセットするとともに
ステップ210にてキーオンからの経過時間を表す変数
tch[i]を10」にクリアする。 キーイベント処理が修了すると、メインルーチンに戻っ
てステップ300にてチャンネル割り当て処理を実行す
るが、最初の押鍵によって発音チャンネルのチャンネル
1が使用されたため、ステラ7’308,310の判断
では空いているチャンネル数が1つとなり、ステップ3
18にて変数ASCHに空いているチャンネルナンバ(
この場合は「2」)を代入する。変数ASCHによって
割り当てチャンネルが指定されるので、ステップ320
にてCPU20はキーオン信号と当該未処理のキーオン
イベントにかかるキーコード信号KC[1コとキーオン
イベンテイ信号KV [1]とを音源回路60において
変数AS CHで指定されるチャンネルに送出し、さら
にステップ322にて変数tch[1コの値を変数TC
H[ASCH]に代入しておくとともに、当該チャンネ
ルに割り当てたキーコードを表す変数CHKC[ASC
H]に当該キーコードKC[11を記憶する。 これで2つのチャンネルが使用されたことになるので、
両発音チャンネルにおけるキーフードの高低の関係を表
すべくステップ324にて次式に基づいて変数りの値を
計算する。 D=CHKC[1] −CHKC[2] ・・・(5
)すなわち、変数りが正であれば発音チャンネル1の方
が高音を発音しており、同変数りが負であれば発音チャ
ンネル2の方が高音を発音していることになる。 この場合、先に高音側が押鍵され、その後で低音側が押
鍵されたものとしているので、CHKC[1] >C
HKC[2コ なる関係が成り立ぢ、 (5)式では変数りに正の値が
代入される。この後、ステップ316にて未処理のキー
オンイベントを表す変数1を「0」にクリアして当該チ
ャンネル割り当て処理が修了し、演奏状況に応じた所定
時間の間、押鍵状態が続く。 所定時間の間、発音されると、演奏者は鍵を離鍵して第
2図に示すBに対応する鍵盤を押鍵しようとする。 演奏者がそれまで押鍵していた鍵を離鍵すると、キーオ
フイベントが生じ、メインルーチンからキーイベント処
理が実施され、ステップ203,204にて当該キーオ
フイベントを検知して、ステップ214にてキーオフさ
れた鍵のキーコードを変数0FKCに記憶するとともに
、割り当てられていたチャンネルナンバを変数CHに記
憶し、さらに猶予期間Δtwを算出する。当該演奏はゆ
っくりしたフレーズであるので、当該猶予期間ΔtWは
大きな値となる。 演奏者は両方の鍵を離鍵して次なる複数の鍵を押鍵する
が、この場合も先はどと同様に微少時間ずれた二度のキ
ーオンイベントとして処理される。 最初のキーオンイベントは低音側のB2に対応する鍵で
生じたとすると、キーイベント処理では未処理のキーオ
ンイベントが1つ生じたものとして処理され、チャンネ
ル割り当て処理では変数1の値に応じてこのキーオンイ
ベントにかかる押鍵を発音チャンネルに割り当てようと
する。しかし、猶予期間Δtwの方が当該キーオン後の
経過時間を表す変数tch [ilより大きいのでステ
、ブ306にてNo”と判断され、割り当てを行なうこ
となくチャンネル割り当て処理を修了してしま う。 割り込みプログラムとして実行される計時処理にて変数
tCh[]]の値が徐々に増加するものの、猶予期間が
経過するまでは発音チャンネルの割り当ては行なわれず
、この猶予期間中に演奏者による高音側の81に対応す
る押鍵が生じたとする。 高音側の押鍵にかかるキーオンイベントによってステッ
プ208では未処理のキーオンイベントを表す変数1が
「2」となり、キーコードとキーオンベロシティを記憶
する配列変数KC[I]。 KV[j]における2つめの領域に当該キーオンイベン
トにかかるキーフードとキーオンベロシティとが記憶さ
れる。 チャンネル割り当て処理では、変数1の値が「2」であ
るのでステップ302,304の判断を経てステップ3
26にて両発音チャンネルにおけるキーコードの高低の
関係を表す変数りの値が正であるか判断する。すなわち
、発音チャンネルlの方が高音の楽音を発音しており、
発音チャンネル2の方が低音の楽音を発音しているか判
断する。 この判断の後、ステップ328,330にて変数KC[
1]、KC[2]の値の大小関係に基づいてこれから割
り当てようとする未処理のキーオンイベントにかかる牛
−コードの高低の関係を調べ、それぞれの割り当て先を
決定する。すなわち、発音チャンネル1の方が高音であ
れば未処理のキーオンイベントのうち高音側を発音チャ
ンネル1に割り当てるとともに未処理の牛−オンイベン
トのうち低音側を発音チャンネル2に割り当てる。また
、発音チャンネル2の方が高音であれば未処理のキーオ
ンイベントのうち高音側を発音チャンネル2に割り当て
るとともに未処理のキーオンイベントのうち低音側を発
音チャンネル1に割り当てる。 上述したように、最初のAの演奏ではチャンネルl側が
高音であり、次のBの演奏では低音側の押鍵が先にキー
オンイベントを生じた。従って、ステップ324で求め
られた変数りは正であり、ステップ328,330で算
出される次式の値は負となっている。 KC[1コ − KC[2コ
・・・ (6)この結果、ステップ
326,328を経て、ステップ332にて、Bの演奏
における後のキーオンイベントにかかる情報を表す変数
KC[2]。 KV [2]の値を発音チャンネル1に割り当て、ステ
ップ334にて、Bの演奏における先の十−オンイベン
トにかかる情報を表す変数KC[1]。 KV[+、]の値を発音チャンネル2に割り当てる。 また、これと対応するように、ステップ336にて各チ
ャンネルにおける発音時間を表す変数TCH[1]、T
CH[2]と各チャンネルにおける発音中のキーコード
を表す変数CHKC[1]。 CHKC[2]に未処理のキーオンイベントにかかる情
報を表す所定の変数値をセットする。 もし、Aの演奏でチャンネル1の方が低音であれば、ス
テップ338,340. 342を実施して上記とは逆
の発音チャンネルを割り当てることになり、Bの演奏に
おいて先に高音側のキーオンイベントが生じていた場合
もステップ338,340.342が実施される。 このようにして割り当てを行なうことにより、複旋律の
演奏において各発音チャンネルにて発音されていた音高
の高低が保持される。 上述した例では、ゆっ(すしたフレーズを演奏していた
ので猶予期間を表す変数Δtwに大きな値がセットされ
、猶予期間が長くなって発音チャンネル間での音高の高
低が逆転することが少ない反面、発音遅れも少なからず
ある。しかしながら、演奏自体がゆっくりしたフレーズ
であるため、この発音遅れは目立たない範囲である。 これに対し、速いフレーズを演奏すると各軸の押鍵時間
が短くなるので各チャンネルでの発音時間も短くなる。 すると、キーオフされたときにステ、ブ220〜232
における処理で、当該キーオフされた発音チャンネルに
おける上記発音時間を表す変数TCH[CH]の値に応
じて猶予期間を表す変数Δtwの算出式が変化し、第7
図に示すように徐々に同変数Δtwは小さめの値となる
。 より具体的に説明すれば、計時処理を行なう割り込みプ
ログラムは1msごとに実施され、発音時間が300m
5以上であれば一律に猶予期間が60m5に設定されて
いるが、発音時間が300m5以下であれば、同発音時
間が短くなればなるほど猶予期間も短く設定される。 すると、先の例に当てはめた場合、Bの演奏におけるB
2にかかる先のキーオンイベントの処理中に当該キーオ
ンイベント後の経過時間を表す変数tch[llの値が
猶予期間を表す変数ムtwの値を越えてしまい、ステ・
ンプ306の判断で”YES”となる。 空きチャンネルの数は2つであるからステップ308.
310を経てステップ312にて当該Bの演奏における
先のキーオンイベントについて発音チャンネル1を割当
てることになる。 そして、微少時間後にこのBの演奏におけるB1にかか
る後のキーオンイベントが生じ、ステップ308,31
0を経て空いているチャンネルである発音チャンネル2
に割り当てられる。 従って、Aの演奏では発音チャンネル1が高音側の楽音
を発音していたが、Bの演奏では発音チャンネル1に低
音側が割り当てられてしまい、両発音チャンネルにて発
音されていた音高の高低が逆転してしまったことになる
。 しかるに、A、 Bの各演奏における発音時間は短い
ので、かかる逆転はさほど悪影響を生じず、むしろ猶予
期間が短くなったことによる発音遅れが少なくなって演
奏上好ましい結果が得られる。 すなわち、演奏状況に応じて猶予期間を適宜増減せしめ
、猶予期間を設けて得られる効果と発音遅れによって生
じる不利益との調和を図ることができた。 ところで、本実施例ではキーオンイベント後に猶予期間
を経過したものが1つあって、かつ空きチャンネルがな
かった場合は、ステップ304゜306.308を経て
ステップ344にて各発音チャンネルにおいて発音され
ている楽音のエンベロープを比較し、減衰が進んでエン
ベロープの小さくなっている発音チャンネルに割り当て
るべく当該発音チャンネルのチャンネルナンバを変数A
SCHに記憶する。そして、空きチャンネルが1つあっ
た場合と同様にしてステップ320,322にて同変数
ASCHで指定される発音チャンネルに当該キーオンイ
ベントを割り当てる。 また、未処理のキーオンイベントが2つあるにもかかわ
らず、さらに押鍵された場合は、後着優先に基づいて最
新の2つの押鍵にかかる演奏情報を記憶する。具体的に
は、メインルーチンのステ、ブ200におけるキーイベ
ント処理の中で、ステップ20.i、206にて未処理
のキーオンイベントが2つ以上あると判断され、ステッ
プ207にて現在ある2つ目の未処理のキーオンイベン
トにかかる情報を1つ目の未処理のキーオンイベントに
かかる情報を記憶する佃域へ移転せしめる。 このとき、未処理のキーオンイベンi・数を表す変数1
をそのままにしておくため、ステップ210゜212に
て3つ目のキーオンイベントにかかる情報が2つ目の未
処理のキーオンイベントを記憶スる領域に記憶される。 このようにして最新の2つの押鍵にかかる演奏情報だけ
が記憶される。 さらに、キーオンされたものの猶予期間が経過するまで
にキーオフされてしまうこともある。この場合は、当該
キーオフイベントについてキーイベント処理が実行され
てステップ214でキーオフされた発音チャンネルを変
数CHにセットするときに、同変数CHにはrOJがセ
ットされる。 すると、ステップ216にて当該キーオフされた鍵につ
いては割り当てがされていなかったものと判断され、ス
テップ234〜238にて未処理のキーオンイベントに
かかる情報を調整する。 状況は次の4つに分類される。 ■未処理のキーオンイベントが2つあり、後のキーオン
イベントにかかる鍵が離鍵されたなら、未処理のキーオ
ンイベントの数を表す変数1の値を11」減らせば良い
。 ■未処理のキーオンイベントが2つあり、先のキーオン
イベントにかかる鍵が離鍵されたなら、後のキーオンイ
ベントにかかる情報を先のキーオンイベントにかかる情
報の記憶領域に移し、かつ、未処理のキーオンイベント
の数を表す変数1の値を「1」減らせば良い。 ■未処理のキーオンイベントが1つだけなら、未処理の
キーオンイベントの数を表す変数1の値をrlJ減らせ
ば良い。 ■離鍵されたキーが、後着優先アサインによってトラン
ケートされたものであるならば何もしない。 ■と■の場合は変数1から「1」を減算すれば良く、■
の場合は変数iから「1」を減算するとともに、後の牛
−オンイベントにかかる情報を先のキーオンイベントに
かかる情報の記憶領域に移せば良く、■の場合は何もし
ないで良い。 具体的には、ステップ234にて■の状況であるか否か
を判断し、” YES”であれば、ステップ236にて
後のキーオンイベントにかかるキーコードKC[2]
とキーオンベロシティKV[2]を先のキーオンイベン
トにかかるキーコードKC[1コとキーオンベロシティ
KV [1]の記憶領域に移すとともに変数iから「1
」を減算する。 一方、ステップ234の判断にてNO”色判断され、か
つ、ステップ238にてキーオフイベントにかかる牛−
コードOF K、 Cがいずれかのチャンネルに記憶さ
れていれば■か■の状況であると判断し、ステップ24
0にて変数1から「1」を減算する。ステップ238に
てNO″と判断されれば■の状況であると判断して何も
しない。 以上によって本実施例による発音チャンネル割当てが実
行される。 なお、上記実施例における猶予期間の算出は一例に過ぎ
ず、他の算出方法、例えば、発音時間の平方根をとる構
成としても良い。また、直前の発音時間だけを基準とす
るのではなく、数回分の発音時間を記憶しておいて平均
値を算出し、当該平均値に従って猶予期間を定めても良
い。 上記実施例では、ソフトウェア的に本発明を実施するよ
うにしたが、ハードウェア的に構成してもよい。また、
発音チャンネルが2つある場合について説明したが、3
つ以上の場合であっても同様に実施できる。この場合は
、各発音チャンネル間における音高の高低を表すために
さらなる変数を使用し、割り当て時に未処理のキーオン
イベントにかかるキーコードを比較して発音チャンネル
間における音高の高低を保持するようにする。 その他、演奏操作情報を入力する手段として上記実施例
では鍵盤を使用しているが、音高に対応する複数の押し
ボタン型スイッチを有する管楽器型等の演奏手段であっ
ても良い。さらに、空きチャンネルの数を求めるについ
ては所定の変数を用意しておき、チャンネルの割り当て
時とキーオフ時に同変数を増加または減少させて求める
ことも可能である。 また、猶予期間を変化させるにあたり、本発明では発音
時間に対応させて変化するようにしているが、他の演奏
操作状況に応じて変化させる構成も考えられる。例えば
、アフタタッチ(押鍵圧)に対応して、同圧が高ければ
猶予期間を長くするようにしてもよい。
電子楽器の全体概略構成を示している。 この電子楽器はバス10に接続されたCPU20の制御
のもとで楽音の発生が制御されている。 CPU20はROM30に記憶されたプログラムを実行
し、その際に必要な各種変数の記憶及び読み込みにRA
M40を利用している。 また、バス10には鍵盤50が接続されており、CPU
20はバス10を介して同鍵盤50の操作状況を検出し
、演奏者による鍵盤操作に応じて押鍵状態を表すキーオ
ン信号KONと押鍵された鍵を表す牛−コード信号KC
と押鍵の速さを表すキーオンベロシティ信号KVとを音
源回路60における所定の発音チャンネルに出力する。 音源回路60は各信号に対応して同操作状況に応じた楽
音信号を発生し、同楽音信号はアンプなどからなるサウ
ンドシステム70に入力されて、同サウンドシステム7
0に接続されたスピーカ80より楽音として発音される
。なお、キーコードKCは高音の鍵はど大きな値であり
、キーオンイベントィに■はキータッチが速いほど大き
な値となる。 さらに、バス10にはタイマ90が接続され、同タイマ
90は所定時間毎にCPU20に対して割り込み信号を
発生し、同CPU20に割り込みプログラムを実行せし
める。 次に、上記のように構成した本実施例の動作を説明する
。 理解の容易のために、本実施例における音源回路60は
2つの発音チャンネルを有するものとし、第2図に示す
演奏を行なうものとする。 演奏者が図示しない電源スィッチをオンにすると、CP
U20はROM30に記憶されたプログラムに基づいて
鍵盤50における演奏操作状況に応じた楽音発生の制御
を開始する。 CPU20は、上記電源スィッチがオンにされると第3
図に示すメインルーチンの実行を開始し、ステップ10
0にて各変数値をクリアするなどの初期設定を行なう。 初期設定は最初に一度だけ実行すれば良く、以後、CP
U20はステップ2゜Oにて鍵盤50における操作に対
応したキーイベント処理を行ない、鍵盤5oにおいてい
ずれがの鍵が押鍵されたときにはステップ300で所定
の処理を実施し、ステップ400にてその他の必要な処
理を実施するという処理を繰り返す。 また、この処理と並行してcPυ2oには1mSごとに
タイマ90から割り込み信号が入力され、同CPU20
は当該割り込み信号が入力されたときに第4図に示す割
り込みプログラムのステップ500にて計時処理を実行
する。 いま、演奏者が比較的ゆっ(すしたフレーズで第2図に
示す複旋律を演奏するために鍵盤5oにおける第2図の
Aに対応する鍵を押鍵したとする。 二つの鍵AI、A2を同時に押鍵したとしても、微少時
間ずれた二つの押鍵が生じたものとして処理が行なわれ
る。ここでは、まず高音側の鍵A、が先に押鍵されたと
する。 すると、CPU20はステップ200におけるキーイベ
ント処理の中で、第5図に示すステップ202にてキー
イベントが生じたことを検知するとともにステップ20
4にて当該押鍵のキーオンイベントを検知する。キーオ
ンイベントがあった場合は、ステップ206にてその時
点にける未処理のキーオンイベント数を表す変数!の値
を参照して当該未処理のキーオンイベントが2つく発音
チャンネルの最大数を意味する。)未満であるか判断す
る。 演奏開始直後であるので未処理のキーオンイベント数を
表す変数!の値はrOJであり、ステップ206では”
YES″と判断される。 押鍵によって未処理のキーオンイベントが一つ生じたの
で、ステップ208にて未処理のキーオンイベント数を
表す変数1の値を「1」だけ増加させ、ステップ210
にて未処理のキーオンイベントの十−コードを記憶する
配列変数KC[f、1に演奏者が押鍵した鍵のキーコー
ドを記憶するとともに当該キーオンイベントが生じてか
らの時間を表す配列変数tch [1]をrOJにクリ
アする。時間経過を表す変数には、この他にも各発音チ
ャンネルごとに牛−オンされている時間を表す配列変数
TCH[nlが用意されており、割り込みプログラムと
して1msごとに実行されるステップ500の計時処理
において、第6図に示すようにステップ502にて配列
変数tch [j] (j=1.2)がrlJづつ増
加され、ステップ504にて配列変数TCH[jコ (
J=1.2)が「1」づつ増加される。 また、ステップ212では未処理のキーオンイベントの
キーベロシティを記憶する配列変数KV[1コに当該押
鍵の速さを表すキーベロシティを記憶する。これにより
キーイベント処理は終了し、CPU20はメインルーチ
ンにおけるステップ300にてチャンネル割当処理を実
行する。 当該チャンネル割当処理では、未処理の牛−オンイベン
トが一つもなければチャンネル割当を行なう必要がない
ので、第8図に示すようにステップ302にて変数1の
値が「0」であるか判断する。” YES”と判断され
れば何もせずに修了するが、いまは変数1の値がrlJ
となっているのでステップ302ではNo″と判断され
、ステップ304にて同変数iの値が「1」であるか判
断して”YES”と判断される。 ここで未処理のキーオンイベントについて発音チャンネ
ルを割り当てる前に所定の猶予期間を経過しているか判
断する。当該未処理のキーオンイベントが発生してから
の経過時間は配列変数tch [i]で表され、所定の
猶予期間は変数Δtwで表されるのでステップ306に
て変数tch[1コがΔtwを越えているか否か判断す
る。 猶予期間を表す変数Δtwは、第7図に示すように各発
音チャンネルごとにキーオンされている時間を表す配列
変数TCH[nlに応じてステップ220〜232にて
設定される。猶予期間は発音される時間の短くなる速い
フレーズの演奏状態においては短くなり、発音される時
間の長くなるゆっくりしたフレーズの演奏状態において
は長くする。すなわち、キーオフイベントがあったとき
にステップ202,204にて当該キーオフイベントを
検知するとともに、ステップ214にてキーオフされた
鍵のキーコードを変数0FKCに記憶するとともに、割
り当てられていたチャンネルナンバを変数CHに記憶す
る。割り当てられていなければ変数CHに「0」を入れ
ることにし、ステップ216にて同変数CHが「0」で
ないと判断されればステップ218にてキーオフ処理を
行な う。 具体的には、CPU20がバス10を介して音源回路6
0における当該キーオフされた鍵が割り当てられている
チャンネルに牛−オフ信号を出力する。これにより音源
回路60は当該チャンネルの発音をあらかじめ定められ
て時定数に従って減衰せしめる。 猶予期間は直前にキーオフされた鍵の発音時間に応じて
変化させるため、ステップ220〜232にて同発音時
間を表す配列変数TCH[CH3の値に応じて猶予期間
を定める算術式を決定するとともに、猶予期間を算出す
る。 同発音時間がZooms未満であれば(ステップ220
)、 としくステップ222)、同発音時間が100m5以上
、200m5未満であれば(ステップ22Q、224)
、 ・・・ (2) としくステップ226)、同発音時間が200m5以上
、300m5未満であれば(ステップ220、 224
. 228 )、 ・・・ (3) としくステップ230、同発音時間が300 m s以
上であれば(ステップ220. 224. 228)Δ
tw=60 ・・・ (4) とする(ステップ232)。 ただし、この猶予期間を定めるルーチンはキーオフされ
た場合に初めて実施されるので、演奏開始時は変数Δt
wの値がメインルーチンのステップ100にて初期設定
された「0」となっている。 このため、最初の押鍵についてステップ306にて変数
tch[1]が変数Δtw以上であるか判断したときに
はYES”と判断される。 これにより割り当てが許可されたことになるので、空い
ている発音チャンネルの数に応じて割り当てるチャンネ
ルを決定する。すなわち、CPU20はバス10を介し
て音源回路60から空いているチャンネル数を入力し、
ステップ308,310にて発音チャンネルが2つとも
空いていると判断されればればチャンネル1を割り当て
、ステップ308,310にて1つだけ空いていると判
断されれば空いている側のチャンネルを割り当て、ステ
ップ308にていずれも空いていないと判断されれば減
衰の進んでいる側のチャンネルを割り当てる。 演奏開始時は両方の発音チャンネルが空いているはずな
ので、CPU20はステップ312の処理にてキーオン
信号と未処理のキーオンイベントにかかるキーコード信
号KC[1] とキーオンイベンテイ信号KV[1]
とを音源回路60のチャンネル1に送出し、さらにステ
ップ314にて変数tch [11の値を変数TCH[
1]に代入して当該キーオンイベントが生じてからの経
過時間をチャンネル1の発音時間としておくとともに、
チャンネル1にて発音中のキーフードを表す変数CHK
C[1]に上記割り当てたキーコードKC[1]を記憶
する。 音源回路60はこれらの信号に基づいて楽音信号の形成
を開始し、CPU20は未処理のキーオンイベントを処
理したものとしてステップ316にて変数1を「0」に
クリアして当該チャンネル割り当て処理を修了する。チ
ャンネル割り当て処理が修了するとメインルーチンのス
テップ400にてその他の処理、例えば鍵盤50に設け
られた他の操作スイッチの操作状況を検出して所定の処
理を実行し、以後、上述した処理を繰り返す。 複旋律の演奏を開始したのであるから、微少時間経過後
、低音側のA2に対応する新たな鍵が押鍵され、キーオ
ンイベントが生じてメインルーチンのステップ200に
てキーイベント処理が実施される。この場合も上述した
キーオンイベント処理とほぼ同様であり、ステップ20
2,204゜206を経て変数1に「1」をセットし、
ステ。 ブ210,212にてキーコードとキーオンベロシティ
を変数KC[1]、KV [1]にセットするとともに
ステップ210にてキーオンからの経過時間を表す変数
tch[i]を10」にクリアする。 キーイベント処理が修了すると、メインルーチンに戻っ
てステップ300にてチャンネル割り当て処理を実行す
るが、最初の押鍵によって発音チャンネルのチャンネル
1が使用されたため、ステラ7’308,310の判断
では空いているチャンネル数が1つとなり、ステップ3
18にて変数ASCHに空いているチャンネルナンバ(
この場合は「2」)を代入する。変数ASCHによって
割り当てチャンネルが指定されるので、ステップ320
にてCPU20はキーオン信号と当該未処理のキーオン
イベントにかかるキーコード信号KC[1コとキーオン
イベンテイ信号KV [1]とを音源回路60において
変数AS CHで指定されるチャンネルに送出し、さら
にステップ322にて変数tch[1コの値を変数TC
H[ASCH]に代入しておくとともに、当該チャンネ
ルに割り当てたキーコードを表す変数CHKC[ASC
H]に当該キーコードKC[11を記憶する。 これで2つのチャンネルが使用されたことになるので、
両発音チャンネルにおけるキーフードの高低の関係を表
すべくステップ324にて次式に基づいて変数りの値を
計算する。 D=CHKC[1] −CHKC[2] ・・・(5
)すなわち、変数りが正であれば発音チャンネル1の方
が高音を発音しており、同変数りが負であれば発音チャ
ンネル2の方が高音を発音していることになる。 この場合、先に高音側が押鍵され、その後で低音側が押
鍵されたものとしているので、CHKC[1] >C
HKC[2コ なる関係が成り立ぢ、 (5)式では変数りに正の値が
代入される。この後、ステップ316にて未処理のキー
オンイベントを表す変数1を「0」にクリアして当該チ
ャンネル割り当て処理が修了し、演奏状況に応じた所定
時間の間、押鍵状態が続く。 所定時間の間、発音されると、演奏者は鍵を離鍵して第
2図に示すBに対応する鍵盤を押鍵しようとする。 演奏者がそれまで押鍵していた鍵を離鍵すると、キーオ
フイベントが生じ、メインルーチンからキーイベント処
理が実施され、ステップ203,204にて当該キーオ
フイベントを検知して、ステップ214にてキーオフさ
れた鍵のキーコードを変数0FKCに記憶するとともに
、割り当てられていたチャンネルナンバを変数CHに記
憶し、さらに猶予期間Δtwを算出する。当該演奏はゆ
っくりしたフレーズであるので、当該猶予期間ΔtWは
大きな値となる。 演奏者は両方の鍵を離鍵して次なる複数の鍵を押鍵する
が、この場合も先はどと同様に微少時間ずれた二度のキ
ーオンイベントとして処理される。 最初のキーオンイベントは低音側のB2に対応する鍵で
生じたとすると、キーイベント処理では未処理のキーオ
ンイベントが1つ生じたものとして処理され、チャンネ
ル割り当て処理では変数1の値に応じてこのキーオンイ
ベントにかかる押鍵を発音チャンネルに割り当てようと
する。しかし、猶予期間Δtwの方が当該キーオン後の
経過時間を表す変数tch [ilより大きいのでステ
、ブ306にてNo”と判断され、割り当てを行なうこ
となくチャンネル割り当て処理を修了してしま う。 割り込みプログラムとして実行される計時処理にて変数
tCh[]]の値が徐々に増加するものの、猶予期間が
経過するまでは発音チャンネルの割り当ては行なわれず
、この猶予期間中に演奏者による高音側の81に対応す
る押鍵が生じたとする。 高音側の押鍵にかかるキーオンイベントによってステッ
プ208では未処理のキーオンイベントを表す変数1が
「2」となり、キーコードとキーオンベロシティを記憶
する配列変数KC[I]。 KV[j]における2つめの領域に当該キーオンイベン
トにかかるキーフードとキーオンベロシティとが記憶さ
れる。 チャンネル割り当て処理では、変数1の値が「2」であ
るのでステップ302,304の判断を経てステップ3
26にて両発音チャンネルにおけるキーコードの高低の
関係を表す変数りの値が正であるか判断する。すなわち
、発音チャンネルlの方が高音の楽音を発音しており、
発音チャンネル2の方が低音の楽音を発音しているか判
断する。 この判断の後、ステップ328,330にて変数KC[
1]、KC[2]の値の大小関係に基づいてこれから割
り当てようとする未処理のキーオンイベントにかかる牛
−コードの高低の関係を調べ、それぞれの割り当て先を
決定する。すなわち、発音チャンネル1の方が高音であ
れば未処理のキーオンイベントのうち高音側を発音チャ
ンネル1に割り当てるとともに未処理の牛−オンイベン
トのうち低音側を発音チャンネル2に割り当てる。また
、発音チャンネル2の方が高音であれば未処理のキーオ
ンイベントのうち高音側を発音チャンネル2に割り当て
るとともに未処理のキーオンイベントのうち低音側を発
音チャンネル1に割り当てる。 上述したように、最初のAの演奏ではチャンネルl側が
高音であり、次のBの演奏では低音側の押鍵が先にキー
オンイベントを生じた。従って、ステップ324で求め
られた変数りは正であり、ステップ328,330で算
出される次式の値は負となっている。 KC[1コ − KC[2コ
・・・ (6)この結果、ステップ
326,328を経て、ステップ332にて、Bの演奏
における後のキーオンイベントにかかる情報を表す変数
KC[2]。 KV [2]の値を発音チャンネル1に割り当て、ステ
ップ334にて、Bの演奏における先の十−オンイベン
トにかかる情報を表す変数KC[1]。 KV[+、]の値を発音チャンネル2に割り当てる。 また、これと対応するように、ステップ336にて各チ
ャンネルにおける発音時間を表す変数TCH[1]、T
CH[2]と各チャンネルにおける発音中のキーコード
を表す変数CHKC[1]。 CHKC[2]に未処理のキーオンイベントにかかる情
報を表す所定の変数値をセットする。 もし、Aの演奏でチャンネル1の方が低音であれば、ス
テップ338,340. 342を実施して上記とは逆
の発音チャンネルを割り当てることになり、Bの演奏に
おいて先に高音側のキーオンイベントが生じていた場合
もステップ338,340.342が実施される。 このようにして割り当てを行なうことにより、複旋律の
演奏において各発音チャンネルにて発音されていた音高
の高低が保持される。 上述した例では、ゆっ(すしたフレーズを演奏していた
ので猶予期間を表す変数Δtwに大きな値がセットされ
、猶予期間が長くなって発音チャンネル間での音高の高
低が逆転することが少ない反面、発音遅れも少なからず
ある。しかしながら、演奏自体がゆっくりしたフレーズ
であるため、この発音遅れは目立たない範囲である。 これに対し、速いフレーズを演奏すると各軸の押鍵時間
が短くなるので各チャンネルでの発音時間も短くなる。 すると、キーオフされたときにステ、ブ220〜232
における処理で、当該キーオフされた発音チャンネルに
おける上記発音時間を表す変数TCH[CH]の値に応
じて猶予期間を表す変数Δtwの算出式が変化し、第7
図に示すように徐々に同変数Δtwは小さめの値となる
。 より具体的に説明すれば、計時処理を行なう割り込みプ
ログラムは1msごとに実施され、発音時間が300m
5以上であれば一律に猶予期間が60m5に設定されて
いるが、発音時間が300m5以下であれば、同発音時
間が短くなればなるほど猶予期間も短く設定される。 すると、先の例に当てはめた場合、Bの演奏におけるB
2にかかる先のキーオンイベントの処理中に当該キーオ
ンイベント後の経過時間を表す変数tch[llの値が
猶予期間を表す変数ムtwの値を越えてしまい、ステ・
ンプ306の判断で”YES”となる。 空きチャンネルの数は2つであるからステップ308.
310を経てステップ312にて当該Bの演奏における
先のキーオンイベントについて発音チャンネル1を割当
てることになる。 そして、微少時間後にこのBの演奏におけるB1にかか
る後のキーオンイベントが生じ、ステップ308,31
0を経て空いているチャンネルである発音チャンネル2
に割り当てられる。 従って、Aの演奏では発音チャンネル1が高音側の楽音
を発音していたが、Bの演奏では発音チャンネル1に低
音側が割り当てられてしまい、両発音チャンネルにて発
音されていた音高の高低が逆転してしまったことになる
。 しかるに、A、 Bの各演奏における発音時間は短い
ので、かかる逆転はさほど悪影響を生じず、むしろ猶予
期間が短くなったことによる発音遅れが少なくなって演
奏上好ましい結果が得られる。 すなわち、演奏状況に応じて猶予期間を適宜増減せしめ
、猶予期間を設けて得られる効果と発音遅れによって生
じる不利益との調和を図ることができた。 ところで、本実施例ではキーオンイベント後に猶予期間
を経過したものが1つあって、かつ空きチャンネルがな
かった場合は、ステップ304゜306.308を経て
ステップ344にて各発音チャンネルにおいて発音され
ている楽音のエンベロープを比較し、減衰が進んでエン
ベロープの小さくなっている発音チャンネルに割り当て
るべく当該発音チャンネルのチャンネルナンバを変数A
SCHに記憶する。そして、空きチャンネルが1つあっ
た場合と同様にしてステップ320,322にて同変数
ASCHで指定される発音チャンネルに当該キーオンイ
ベントを割り当てる。 また、未処理のキーオンイベントが2つあるにもかかわ
らず、さらに押鍵された場合は、後着優先に基づいて最
新の2つの押鍵にかかる演奏情報を記憶する。具体的に
は、メインルーチンのステ、ブ200におけるキーイベ
ント処理の中で、ステップ20.i、206にて未処理
のキーオンイベントが2つ以上あると判断され、ステッ
プ207にて現在ある2つ目の未処理のキーオンイベン
トにかかる情報を1つ目の未処理のキーオンイベントに
かかる情報を記憶する佃域へ移転せしめる。 このとき、未処理のキーオンイベンi・数を表す変数1
をそのままにしておくため、ステップ210゜212に
て3つ目のキーオンイベントにかかる情報が2つ目の未
処理のキーオンイベントを記憶スる領域に記憶される。 このようにして最新の2つの押鍵にかかる演奏情報だけ
が記憶される。 さらに、キーオンされたものの猶予期間が経過するまで
にキーオフされてしまうこともある。この場合は、当該
キーオフイベントについてキーイベント処理が実行され
てステップ214でキーオフされた発音チャンネルを変
数CHにセットするときに、同変数CHにはrOJがセ
ットされる。 すると、ステップ216にて当該キーオフされた鍵につ
いては割り当てがされていなかったものと判断され、ス
テップ234〜238にて未処理のキーオンイベントに
かかる情報を調整する。 状況は次の4つに分類される。 ■未処理のキーオンイベントが2つあり、後のキーオン
イベントにかかる鍵が離鍵されたなら、未処理のキーオ
ンイベントの数を表す変数1の値を11」減らせば良い
。 ■未処理のキーオンイベントが2つあり、先のキーオン
イベントにかかる鍵が離鍵されたなら、後のキーオンイ
ベントにかかる情報を先のキーオンイベントにかかる情
報の記憶領域に移し、かつ、未処理のキーオンイベント
の数を表す変数1の値を「1」減らせば良い。 ■未処理のキーオンイベントが1つだけなら、未処理の
キーオンイベントの数を表す変数1の値をrlJ減らせ
ば良い。 ■離鍵されたキーが、後着優先アサインによってトラン
ケートされたものであるならば何もしない。 ■と■の場合は変数1から「1」を減算すれば良く、■
の場合は変数iから「1」を減算するとともに、後の牛
−オンイベントにかかる情報を先のキーオンイベントに
かかる情報の記憶領域に移せば良く、■の場合は何もし
ないで良い。 具体的には、ステップ234にて■の状況であるか否か
を判断し、” YES”であれば、ステップ236にて
後のキーオンイベントにかかるキーコードKC[2]
とキーオンベロシティKV[2]を先のキーオンイベン
トにかかるキーコードKC[1コとキーオンベロシティ
KV [1]の記憶領域に移すとともに変数iから「1
」を減算する。 一方、ステップ234の判断にてNO”色判断され、か
つ、ステップ238にてキーオフイベントにかかる牛−
コードOF K、 Cがいずれかのチャンネルに記憶さ
れていれば■か■の状況であると判断し、ステップ24
0にて変数1から「1」を減算する。ステップ238に
てNO″と判断されれば■の状況であると判断して何も
しない。 以上によって本実施例による発音チャンネル割当てが実
行される。 なお、上記実施例における猶予期間の算出は一例に過ぎ
ず、他の算出方法、例えば、発音時間の平方根をとる構
成としても良い。また、直前の発音時間だけを基準とす
るのではなく、数回分の発音時間を記憶しておいて平均
値を算出し、当該平均値に従って猶予期間を定めても良
い。 上記実施例では、ソフトウェア的に本発明を実施するよ
うにしたが、ハードウェア的に構成してもよい。また、
発音チャンネルが2つある場合について説明したが、3
つ以上の場合であっても同様に実施できる。この場合は
、各発音チャンネル間における音高の高低を表すために
さらなる変数を使用し、割り当て時に未処理のキーオン
イベントにかかるキーコードを比較して発音チャンネル
間における音高の高低を保持するようにする。 その他、演奏操作情報を入力する手段として上記実施例
では鍵盤を使用しているが、音高に対応する複数の押し
ボタン型スイッチを有する管楽器型等の演奏手段であっ
ても良い。さらに、空きチャンネルの数を求めるについ
ては所定の変数を用意しておき、チャンネルの割り当て
時とキーオフ時に同変数を増加または減少させて求める
ことも可能である。 また、猶予期間を変化させるにあたり、本発明では発音
時間に対応させて変化するようにしているが、他の演奏
操作状況に応じて変化させる構成も考えられる。例えば
、アフタタッチ(押鍵圧)に対応して、同圧が高ければ
猶予期間を長くするようにしてもよい。
第1図は本発明の一実施例にかかる電子楽器の概略構成
図、第2図は演奏例を示す楽譜、第3図は第1図に示す
電子楽器で実施される制御に対応するメインプログラム
のフローチャート、第4図は第1図に示す電子楽器で実
施される制御に対応する割り込みプログラムのフローチ
ャート、第5図は第3図に示すフローチャートにおける
キーイベント処理のプログラムに対応するフローチャー
ト、第6図は第4図に示す割り込みプログラムのさらに
詳細なフローチャート、第7図は猶予期間を表すグラフ
、第8図は第3図に示すフローチャートにおけるチャン
ネル割り当て処理Xp1のプログラムに対応するフロー
チャート、第9図は発音チャンネルにて発音されていた
音高の高低が逆転してしまった状態を表す図、第10図
は発音チャンネルにて発音されていた音高の高低が逆転
して符 号 の 説 明 1 0 ・” 7.、20 ・ CPU、 30−R
OM、 40・・・RAM、50・・・鍵盤、6o・
・・音源回路、7o・・・サウンドシステム、8o・・
・スピーカ。
図、第2図は演奏例を示す楽譜、第3図は第1図に示す
電子楽器で実施される制御に対応するメインプログラム
のフローチャート、第4図は第1図に示す電子楽器で実
施される制御に対応する割り込みプログラムのフローチ
ャート、第5図は第3図に示すフローチャートにおける
キーイベント処理のプログラムに対応するフローチャー
ト、第6図は第4図に示す割り込みプログラムのさらに
詳細なフローチャート、第7図は猶予期間を表すグラフ
、第8図は第3図に示すフローチャートにおけるチャン
ネル割り当て処理Xp1のプログラムに対応するフロー
チャート、第9図は発音チャンネルにて発音されていた
音高の高低が逆転してしまった状態を表す図、第10図
は発音チャンネルにて発音されていた音高の高低が逆転
して符 号 の 説 明 1 0 ・” 7.、20 ・ CPU、 30−R
OM、 40・・・RAM、50・・・鍵盤、6o・
・・音源回路、7o・・・サウンドシステム、8o・・
・スピーカ。
Claims (1)
- 【特許請求の範囲】 少なくとも楽音の発音の開始を指示する発音情報と発音
する楽音の音高を指示する音高情報とからなる一組の演
奏操作情報を入力して複数の発音チャンネルのいずれか
に割り当てる電子楽器の発音チャンネル割当装置におい
て、 各発音チャンネルに割り当てられた楽音が当該発音チャ
ンネルにおいて発音されている時間に対応する発音時間
を計測する計時手段と、 この計時手段によって計時された上記発音時間に応じて
変化する所定時間の間は上記演奏操作情報の各発音チャ
ンネルへの割り当てを禁止する禁止手段と、 この禁止手段による割り当ての禁止が解除されていると
きに上記演奏操作情報を上記発音チャンネルに割り当て
るにあたり複数の演奏操作情報を複数の割り当て可能な
発音チャンネルに割り当てる場合には当該複数の演奏操
作情報に含まれる音高情報の高低と当該複数の割り当て
可能な発音チャンネルにて発音されていた音高の高低と
が一致するように割り当てる割り当て手段と を具備することを特徴とする電子楽器の発音チャンネル
割当装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2160766A JPH0451197A (ja) | 1990-06-19 | 1990-06-19 | 電子楽器の発音チヤンネル割当装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2160766A JPH0451197A (ja) | 1990-06-19 | 1990-06-19 | 電子楽器の発音チヤンネル割当装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0451197A true JPH0451197A (ja) | 1992-02-19 |
Family
ID=15721997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2160766A Pending JPH0451197A (ja) | 1990-06-19 | 1990-06-19 | 電子楽器の発音チヤンネル割当装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0451197A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010079179A (ja) * | 2008-09-29 | 2010-04-08 | Roland Corp | 電子楽器 |
JP2015099328A (ja) * | 2013-11-20 | 2015-05-28 | ヤマハ株式会社 | 電子楽器、プログラム及び発音音高選択方法 |
-
1990
- 1990-06-19 JP JP2160766A patent/JPH0451197A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010079179A (ja) * | 2008-09-29 | 2010-04-08 | Roland Corp | 電子楽器 |
JP2015099328A (ja) * | 2013-11-20 | 2015-05-28 | ヤマハ株式会社 | 電子楽器、プログラム及び発音音高選択方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02187794A (ja) | 楽音発生装置 | |
JP2022006732A (ja) | 電子楽器、電子楽器の発音方法、及びプログラム | |
JPS61132998A (ja) | 電子楽器 | |
US4969385A (en) | Reassignment of digital oscillators according to amplitude | |
JPS63291095A (ja) | 自動楽音発生装置 | |
JP3694172B2 (ja) | 残響共鳴装置及び残響共鳴方法 | |
JPH0451197A (ja) | 電子楽器の発音チヤンネル割当装置 | |
JP3530600B2 (ja) | 楽音信号の周波数特性制御装置及び周波数特性制御方法 | |
JPH0572596B2 (ja) | ||
JPH08137470A (ja) | 楽音信号の周波数特性制御装置 | |
JPH0731277Y2 (ja) | 電子楽器 | |
JP2513003B2 (ja) | 電子楽器 | |
JP2504260B2 (ja) | 楽音周波数情報発生装置 | |
JP3706371B2 (ja) | 楽音信号の周波数特性制御装置及び周波数特性制御方法 | |
JP2601039B2 (ja) | 電子楽器 | |
JPH0580754A (ja) | 電子楽器 | |
JPS63293595A (ja) | 楽音信号発生装置 | |
JP3706372B2 (ja) | 楽音信号の周波数特性制御装置及び周波数特性制御方法 | |
JPH0822282A (ja) | ギター自動伴奏装置 | |
JP2998036B2 (ja) | 電子楽器の音高制御装置 | |
JP2578327B2 (ja) | 自動演奏装置 | |
JP2636479B2 (ja) | 電子楽器 | |
JP3508139B2 (ja) | デジタル信号処理プロセッサ | |
JP2814479B2 (ja) | 電子楽器 | |
JP3602365B2 (ja) | 電子楽器 |