JP2001282243A - 電子楽音発生装置、電子楽音発生方法及び記録媒体 - Google Patents

電子楽音発生装置、電子楽音発生方法及び記録媒体

Info

Publication number
JP2001282243A
JP2001282243A JP2000099795A JP2000099795A JP2001282243A JP 2001282243 A JP2001282243 A JP 2001282243A JP 2000099795 A JP2000099795 A JP 2000099795A JP 2000099795 A JP2000099795 A JP 2000099795A JP 2001282243 A JP2001282243 A JP 2001282243A
Authority
JP
Japan
Prior art keywords
tone
sound
key
musical
generation
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
Application number
JP2000099795A
Other languages
English (en)
Inventor
Tsutomu Saito
勉 齋藤
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 JP2000099795A priority Critical patent/JP2001282243A/ja
Publication of JP2001282243A publication Critical patent/JP2001282243A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 同時に発音すべき複数の楽音を発音させる際
に優先順位を付けて複数の楽音が同時に又は短時間の間
に発音されたかのように聴取者に感じさせることができ
る電子楽音発生装置を提供することを課題とする。 【解決手段】 本発明の電子楽音発生装置は、楽音のキ
ーオン情報を入力する入力手段と、複数の楽音のキーオ
ン情報を入力すると、音色、ベロシティ、音高、音量又
は楽音エンベロープのアタック速度に応じた優先順位で
楽音の発音開始を指示する発音指示手段とを有する。発
音指示手段は、キーオン情報を入力すると発音に必要な
音源パラメータを音源にセットするパラメータセット手
段と、キーオン情報の入力から所定時間経過後に音源パ
ラメータがセットされた音源に上記の優先順位で発音開
始を指示する発音開始指示手段とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子楽音発生技術
に関し、特に、自動演奏(伴奏)ピアノ、パーソナルコ
ンピュータ内蔵の音源ボード、コンピュータプログラム
で波形生成を行うソフト音源等における電子楽音発生技
術に関する。
【0002】
【従来の技術】CPUを利用して電子楽音の発音制御を
行う技術は、昭和49年頃から特許出願され、昭和57
年頃から製品化されている。このCPUを利用するメリ
ットは、コンピュータプログラム次第で、複雑な処理を
高速に実行できることにある。CPUが電子楽器に使用
される前は、簡単な自動伴奏パターンがあるのみで、楽
器パネル上の表示や、複数の出力系列(MIDIチャネ
ル)を同時に発音するときの有限な楽音発生チャネルの
割り当て等も非常にシンプルなものであった。このCP
Uのメリットを生かして、近年の電子楽音発生装置は、
1つの押鍵情報(キーオン情報)を受けると、非常に多
くの処理を行って発音させている。
【0003】昭和年代頃は、CPUの処理というと、パ
ネルレジストレーション、キーアサイナ、自動演奏等が
主要であった。当時、音色に関しては、波形読出しアド
レス、エンベロープパラメータ等を、音色係数メモリか
ら読み出して、そのまま音源LSIの所定の楽音発生チ
ャネルに設定すればよかった。ところが、近年は、それ
らのパラメータを読み出した後にキースケール演算(す
なわち特定キー対応のパラメータのみ記憶してそれ以外
のキーオン情報のパラメータを補間演算等で求める処
理)や、ベロシティ演算(キーオンに付随するキーオン
ベロシティデータにより上記パラメータを更に変更する
処理)が必要になってきた。それだけ、リアルな音又は
演奏に対してレスポンスのある音が要求されている。
【0004】その他にも、デジタルフィルタが必須の時
代となり、音色、音高(キーナンバ)、鍵強度(ベロシ
ティ)によって、デジタルフィルタの係数が時間軸上で
変化する演算をするようになっている。勿論、あまりに
大変な演算は、音源LSIに任せることも可能である
が、音源LSIを極力シンプルな構造にして、音源LS
Iの単価を下げたいので、勢いCPUに負担をかけるこ
とが多くなる。
【0005】ここで、電子楽器に利用されてきたCPU
を顧みると、昭和57年頃の8ビットCISCチップ
(8085、Z80等)から始まり、近年は32ビット
RISCチップを採用するに至り、処理能力は100倍
以上向上している。ところが、昭和57年当時と近年と
では、1キーオンの処理に要する時間はほとんど変わっ
ていない。一昔前には、将来的にはCPUの処理能力が
上がるから、同時押鍵による発音のばらつきを無視でき
ると信じていたが、どうも今後も裏切られそうな雰囲気
である。
【0006】それは、発音処理時間は、1ms/キー程
度ならば、聴感上問題がないという暗黙の了解が技術者
の間にあるためのようである。つまり、CPUの処理能
力がいくら向上しても、1ms/キーの処理能力を設定
することがコストパフォーマンスの点から一番良いとい
う考えに到達しそうである。よって、音源LSIは、近
い将来、複数の乗算器と加算器だけになり、入力される
パラメータは、CPUがほぼリアルタイムで供給するこ
とになるであろう。つまり、モノラルならば、音源LS
Iは不要な時代になりつつある。
【0007】
【発明が解決しようとする課題】ここで、果たして、現
行のCPUの処理時間は本当に問題ないのだろうかとい
う疑問がある。実際、ピアノ音程度(立ち上がりに20
ms程度を要する波形)までなら、一般レベルの人間の
耳には、複数音を1msおきに立ち上げても、同時に聞
こえる。ただし、それよりもアタックの鋭い音(ティビ
ア音やパーカス音等)で8キー程度をほぼ同時に鳴らし
た場合には、それを聞き分ける人が現れると思われる。
【0008】また、前述の1ms/キーという処理内容
は、せいぜい1つのキーオンに対して2つの楽音発生チ
ャネル(L/Rステレオ用)を利用する場合であり、例
えば、1つのキーオンに対して2出力系列(ピアノのL
/RとストリングスのL/R等)を利用するとなると、
単純に1キーに4楽音発生チャネル(2ms)の処理時
間がかかることになる。つまり、現行のCPU処理方式
では、ノーマル演奏をノーマルな人間が聞くときには許
容できるが、そうでないときには、発音遅れが気になる
電子楽音発生装置であることがわかる。
【0009】図21は、従来技術による電子楽音発生装
置の第1の発音処理例を示すタイムチャートである。横
軸はキーオン情報入力からの時間を示し、縦軸は楽音発
生チャネル(以下、DCOという)番号を示す。同時に
3キー(keyA、keyB、keyC)を押鍵し、各
キー毎にピアノ音PNとストリングス音STをステレオ
(L/R)で発音する場合を示す。この場合は、2音色
系列を使用することになる。ここで、1つのDCOにつ
いて1msの処理時間がかかるものとする。
【0010】第1のDCOには、音高がAの左(L)の
ピアノ音PNが割り当てられ、第2のDCOには、音高
がAの右(R)のピアノ音PNが割り当てられ、共にキ
ーオン情報入力から2msで発音される。第3のDCO
には、音高がAの左(L)のストリングス音STが割り
当てられ、第4のDCOには、音高がAの右(R)のス
トリングス音STが割り当てられ、共にキーオン情報入
力から4msで発音される。
【0011】第5のDCOには、音高がBの左(L)の
ピアノ音PNが割り当てられ、第6のDCOには、音高
がBの右(R)のピアノ音PNが割り当てられ、共にキ
ーオン情報入力から6msで発音される。第7のDCO
には、音高がBの左(L)のストリングス音STが割り
当てられ、第8のDCOには、音高がBの右(R)のス
トリングス音STが割り当てられ、共にキーオン情報入
力から8msで発音される。
【0012】第9のDCOには、音高がCの左(L)の
ピアノ音PNが割り当てられ、第10のDCOには、音
高がCの右(R)のピアノ音PNが割り当てられ、共に
キーオン情報入力から10msで発音される。第11の
DCOには、音高がCの左(L)のストリングス音ST
が割り当てられ、第12のDCOには、音高がCの右
(R)のストリングス音STが割り当てられ、共にキー
オン情報入力から12msで発音される。
【0013】この場合、第1のDCOは2msで発音
し、第12のDCOは12msで発音しているので、第
1のDCOの発音から第12のDCOの発音までに10
msの長時間がかかっている。演奏者は、3つのキーを
同時に押鍵しているので、すべての音を同時に発音する
ことが好ましいが、10msの間にぱらぱらと複数の楽
音が発音され、人間の耳には同時に発音されているとは
感じ難い。
【0014】図22は、従来技術による電子楽音発生装
置の第2の発音処理例を示すタイムチャートである。横
軸はキーオン情報入力からの時間を示し、縦軸はDCO
番号を示す。同時に6キー(keyA、keyB、ke
yC、keyD、keyE、keyF)を押鍵し、各キ
ー毎にティビア音TAとストリングス音STをモノラル
で発音する場合を示す。この場合も、2音色系列を使用
することになる。ここでも、1つのDCOについて1m
sの処理時間がかかるものとする。
【0015】第1のDCOには、音高がAのティビア音
TAが割り当てられ、1msで発音される。第2のDC
Oには、音高がAのストリングス音STが割り当てら
れ、2msで発音される。第3のDCOには、音高がB
のティビア音TAが割り当てられ、3msで発音され
る。第4のDCOには、音高がBのストリングス音ST
が割り当てられ、4msで発音される。
【0016】第5のDCOには、音高がCのティビア音
TAが割り当てられ、5msで発音される。第6のDC
Oには、音高がCのストリングス音STが割り当てら
れ、6msで発音される。第7のDCOには、音高がD
のティビア音TAが割り当てられ、7msで発音され
る。第8のDCOには、音高がDのストリングス音ST
が割り当てられ、8msで発音される。
【0017】第9のDCOには、音高がEのティビア音
TAが割り当てられ、9msで発音される。第10のD
COには、音高がEのストリングス音STが割り当てら
れ、10msで発音される。第11のDCOには、音高
がFのティビア音TAが割り当てられ、11msで発音
される。第12のDCOには、音高がFのストリングス
音STが割り当てられ、12msで発音される。
【0018】この場合、第1のDCOは1msで発音
し、第12のDCOは12msで発音しているので、第
1のDCOの発音から第12のDCOの発音までに11
msの長時間がかかっている。演奏者は、6つのキーを
同時に押鍵しているが、11msの間にぱらぱらと複数
の楽音が発音され、同時に発音されているとは感じ難
い。
【0019】本発明の目的は、同時に発音すべき複数の
楽音を発音させる際に優先順位を付けて発音処理を行う
ことができる電子楽音発生装置、電子楽音発生方法及び
記録媒体を提供することである。
【0020】本発明の他の目的は、同時に発音すべき複
数の楽音が同時に又は短時間の間に発音されたかのよう
に聴取者に感じさせることができる電子楽音発生装置、
電子楽音発生方法及び記録媒体を提供することである。
【0021】
【課題を解決するための手段】本発明の一観点によれ
ば、楽音のキーオン情報を入力する入力手段と、複数の
楽音のキーオン情報を入力すると、音色、ベロシティ、
音高、音量又は楽音エンベロープのアタック速度に応じ
た優先順位で楽音の発音開始を指示する発音指示手段と
を有する電子楽音発生装置が提供される。
【0022】本発明の他の観点によると、前記発音指示
手段は、前記キーオン情報を入力すると発音に必要な音
源パラメータを音源にセットするパラメータセット手段
と、前記キーオン情報の入力から所定時間経過後に前記
音源パラメータがセットされた音源に前記優先順位で発
音開始を指示する発音開始指示手段とを含む。
【0023】本発明のさらに他の観点によれば、(a)
複数の楽音のキーオン情報を入力するステップと、
(b)複数の楽音のキーオン情報を入力すると、音色、
ベロシティ、音高、音量又は楽音エンベロープのアタッ
ク速度に応じた優先順位で楽音の発音開始を指示するス
テップとを有する電子楽音発生方法が提供される。
【0024】本発明のさらに他の観点によれば、(a)
複数の楽音のキーオン情報を入力する手順と、(b)複
数の楽音のキーオン情報を入力すると、音色、ベロシテ
ィ、音高、音量又は楽音エンベロープのアタック速度に
応じた優先順位で楽音の発音開始を指示する手順とをコ
ンピュータに実行させるためのプログラムを記録したコ
ンピュータ読み取り可能な記録媒体が提供される。
【0025】本発明によれば、同時に発音すべき複数の
楽音を発音させる際に所定の優先順位を付けて発音処理
を行うことができるので、同時に発音すべき複数の楽音
が同時に又は短時間の間に発音されたかのように聴取者
に感じさせることができる。
【0026】
【発明の実施の形態】以下、本発明の実施形態を、実施
例に沿って図面を参照しながら説明する。本実施例で
は、1キーオンでも8キーオンでも、同時に発音させる
ことが要求されているときは、極力、同時に発音を開始
するため、キーオン情報を受けてから発音を開始するま
でに、所定時間(例えば6ms)遅らせ、その間に必要
なパラメータ演算を済ませておくようにする。こうする
ことで、例えば、電子ピアノを弾く人は、弾き比べれ
ば、「ちょっと鍵の接点位置が深くなったかな」という
コメントを出すかもしれないが、最初から、この電子楽
音発生装置しか聞いていなければ、何の不具合も感じ
ず、本当の意味で和音等を同時発音することができる。
【0027】聞く人が同時に発音していると感じるの
は、発明者の経験から10ms以上の時間内のパラパラ
と複数音の発音が開始されたときである。それよりも短
い4msや6msの間に複数音が発音されれば、同時に
複数音が発音されたように聞こえる。つまり、最初の発
音開始から最後の発音開始までに10ms以上の間隔が
あると同時とは受け取られないようである。
【0028】本実施例では、処理の余裕があっても、キ
ーオンから所定時間(例えば6ms)だけ意識的に遅ら
せ、その間にパラメータ演算から音源の対応楽音発生チ
ャネルへのセットまでを済ませておく。そして、6ms
後に、既に音源にパラメータをセットした複数の楽音発
生チャネルについて、次々と演算停止フラグをクリアす
ることにより発音を開始させる。これにより、本実施例
では、最初の楽音発生チャネルの発音開始から最後の楽
音発生チャネルの発音開始までを、従来よりも数ms短
縮させることができる。
【0029】最初のキーオンによる発音開始を意識的に
遅らせることは、自動演奏再生(カラオケを含む)、自
動伴奏再生、電子鍵盤楽器の押鍵操作に基づく再生、自
動演奏ピアノのアンサンブル再生等に関して評価する
と、電子鍵盤楽器のみがその遅れ時間に気を使うが、そ
の他は例えば自動演奏や自動伴奏は、そのキーオン情報
を読み出すタイミングを制御すれば、何等問題ない。
【0030】また、自動演奏ピアノのアンサンブル音用
に電子楽音を利用する場合も、キーオン情報を受けてか
ら、生ピアノのハンマーが移動する時間の方が桁違いに
長い(遅くなる)ので、意識的に電子楽音の発音開始を
遅くしているのが現状であり、これまた何ら問題ない。
【0031】図1は、本発明の実施例による電子楽音発
生装置の第1の発音処理例を示すタイムチャートであ
る。横軸はキーオン情報入力からの時間を示し、縦軸は
DCO(楽音発生チャネル)番号を示す。同時に3キー
(keyA、keyB、keyC)を押鍵し、各キーに
ついてピアノ音PNをステレオ(L/R)で発音させる
場合を示す。この場合は、1音色系列を使用することに
なる。ここで、1つのDCOについて1msの処理時間
がかかるものとする。
【0032】図21及び図22では、各DCO毎に順に
発音処理を行っていたが、本実施例では、キーオン情報
の入力から所定時間(6ms)経過後に、複数の楽音を
同時に発音させる。具体的には、複数の楽音のキーオン
情報が入力されると、複数の楽音の音源パラメータを生
成して複数のDCO(音源)に順次割り当ててセットす
ると共に、各DCOの演算停止フラグをセットすること
により各DCOの発音開始を待機させる。そして、キー
オン情報の入力から所定時間(6ms)経過後にすべて
のDCOの演算停止フラグをクリアすることにより音源
パラメータがセットされた音源の全DCOに発音開始を
指示する。
【0033】第1のDCOには、音高がAの左(L)の
ピアノ音PNが割り当てられ、第2のDCOには、音高
がAの右(R)のピアノ音PNが割り当てられる。第3
のDCOには、音高がBの左(L)のピアノ音PNが割
り当てられ、第4のDCOには、音高がBの右(R)の
ピアノ音PNが割り当てられる。第5のDCOには、音
高がCの左(L)のピアノ音PNが割り当てられ、第6
のDCOには、音高がCの右(R)のピアノ音PNが割
り当てられる。
【0034】上記の6個のDCOには、キーオン情報が
入力され次第、順に、各キーオン情報の楽音が割り当て
られ、各楽音のパラメータが生成されて音源の各DCO
にセットされると共に、各DCOの演算停止フラグがセ
ットされる。その後、キーオン情報の入力から所定時間
(6ms)が経過した時点で、音源の各DCOの演算停
止フラグをクリアすることにより、6個のDCOの発音
が開始される。1個のDCO当たり1msの処理時間が
かかるとすると、6個のDCOの処理には6msかか
る。上記の6個のDCOの楽音は、6msの時点で同時
に発音させることができる。
【0035】本実施例によれば、発音に必要な音源パラ
メータを音源にセットした後に直ぐに発音を開始させる
のではなく、キーオン情報の入力から所定時間(6m
s)が経過するまで待って、その間に音源パラメータの
演算を済ませ、複数の楽音についての音源パラメータが
音源にセットされたところで音源に発音開始を指示する
ので、複数の楽音を同時に発音させることができる。演
奏者は、3つのキーを同時に押鍵しており、演奏者の意
図通りにすべての音を同時に発音することができる。な
お、3つのキーを同時に押鍵する場合に限らず、3つの
キーオンのMIDIデータや自動演奏データが入力され
た場合も同様である。
【0036】図2は、本実施例による電子楽音発生装置
の第2の発音処理例を示すタイムチャートである。横軸
はキーオン情報入力からの時間を示し、縦軸はDCO番
号を示す。同時に3キー(keyA、keyB、key
C)を押鍵し、各キー毎にピアノ音PN及びストリング
ス音STをステレオ(L/R)で発音させる場合を示
す。この場合、2音色系列を使用することになる。ここ
で、1つのDCOについて1msの処理時間がかかるも
のとする。
【0037】第1のDCOには、音高がAの左(L)の
ピアノ音PNが割り当てられ、第2のDCOには、音高
がAの右(R)のピアノ音PNが割り当てられる。第3
のDCOには、音高がBの左(L)のピアノ音PNが割
り当てられ、第4のDCOには、音高がBの右(R)の
ピアノ音PNが割り当てられる。第5のDCOには、音
高がCの左(L)のピアノ音PNが割り当てられ、第6
のDCOには、音高がCの右(R)のピアノ音PNが割
り当てられる。
【0038】上記の第1〜第6の6個のDCOには、キ
ーオン情報が入力され次第、順に、各キーオン情報の楽
音が割り当てられ、各楽音の音源パラメータが生成され
て音源の各DCOにセットされると共に、各DCOの演
算停止フラグがセットされる。その後、キーオン情報の
入力から所定時間(6ms)が経過した時点で、音源の
各DCOの演算停止フラグをクリアすることにより、6
個のDCOの発音が開始される。6個のDCOの処理に
は6msかかるので、所定時間(6ms)経過時に発音
可能な6個の楽音のみを先ず同時に発音させる。
【0039】次に、第7のDCOには、音高がAの左
(L)のストリングス音STが割り当てられ、第8のD
COには、音高がAの右(R)のストリングス音STが
割り当てられる。その際、各楽音の音源パラメータが生
成されて各DCOにセットされると共に、各DCOの演
算停止フラグがセットされる。その後、キーオン情報の
入力から8ms経過後に、第7及び第8のDCOの演算
停止フラグをクリアすることにより、第7及び第8のD
COの楽音を発音させる。第7及び第8のDCOの楽音
は、1ms毎に順に発音させてもよいが、これらの楽音
はステレオL/Rの組なので、本実施例のように、同時
に発音させることが好ましい。
【0040】次に、第9のDCOには、音高がBの左
(L)のストリングス音STが割り当てられ、第10の
DCOには、音高がBの右(R)のストリングス音ST
が割り当てられる。その際、各楽音の音源パラメータが
生成されて各DCOにセットされると共に、各DCOの
演算停止フラグがセットされる。その後、キーオン情報
の入力から10ms経過後に、第9及び第10のDCO
の演算停止フラグをクリアすることにより、第9及び第
10のDCOの楽音を発音させる。
【0041】次に、第11のDCOには、音高がCの左
(L)のストリングス音STが割り当てられ、第12の
DCOには、音高がCの右(R)のストリングス音ST
が割り当てられる。その際、各楽音の音源パラメータが
生成されて各DCOにセットされると共に、各DCOの
演算停止フラグがセットされる。その後、キーオン情報
の入力から12ms経過後に、第11及び第12のDC
Oの演算停止フラグをクリアすることにより、第11及
び第12のDCOの楽音を発音させる。
【0042】ここで、上記の12個のDCOの楽音を同
時に発音させることも考えられる。すなわち、12個の
DCOの処理には12msかかるので、キーオン情報の
入力から12ms経過後に12個のDCOの楽音を同時
に発音させることができる。ただし、その場合、演奏者
が押鍵操作をしてから、12ms経過後にようやく発音
されるので、押鍵操作のレスポンスの遅さが演奏者の許
容範囲内であるか否かを考える必要がある。この観点か
ら、本実施例のように、キーオン情報の入力から所定時
間(6ms)経過後に、所定楽音数(6音)だけ先に発
音させ、その後に残りの楽音を発音させることが好まし
い。この場合でも、第1のDCOの発音から第12のD
COの発音まで、6msしかかからないので、図21の
場合には10msかかることに比べれば、十分に同時発
音の要求を満たしているといえる。
【0043】押鍵操作のレスポンスを考慮すると、上記
の所定時間は、2ms〜20msが好ましく、3ms〜
10msがより好ましく、6msが特に好ましい。ま
た、上記の所定楽音数は、上記の処理を行うCPUの処
理能力により決められ、本実施例では、CPUが1つの
DCO当たりに1msの処理時間がかかるものとしたた
めに、所定時間が6msのときには所定楽音数が6音に
なる。したがって、上記の所定楽音数は、6音に限定さ
れず、上記の所定時間内に処理可能なDCO数になる。
【0044】また、キーオン情報の入力から6msの時
点で6個のピアノ音PNを発音させ、12msの時点で
残りの6個のストリングス音STを発音させることもで
きる。ただし、その場合、6個のピアノ音PNの発音と
6個のストリングス音STの発音との間隔が6msとい
う比較的長時間になるので、合計12個の楽音が同時に
発音されていないように演奏者に聞こえる可能性があ
る。そのため、本実施例のように、6個のピアノ音PN
を発音させた後は、残りの6個のストリングス音STを
ステレオ音単位で順に発音させることが好ましい。
【0045】本実施例では、まずピアノ音PNのグルー
プを先に発音させ、その後にストリングス音STのグル
ープを発音させている。逆に、先にストリングス音ST
を発音させ、その後にピアノ音PNを発音させることも
できる。ただし、一般的に、ピアノ音PNは、ストリン
グス音STに比べて、楽音エンベロープのアタック速度
(立ち上がり速度)が速いので、アタック速度が速い6
個のピアノ音PNを先に同時に発音させ、アタック速度
が遅いストリングス音STを後に順に発音させることが
好ましい。すなわち、アタック速度が速い楽音は、複数
の楽音が少しでもずれて発音されると聴取者は敏感に楽
音の時間的ずれを感じ易い。一方、アタック速度が遅い
楽音は、複数の楽音が少しずれても、聴取者は楽音のず
れを感じ難い。したがって、アタック速度が速い楽音ほ
ど優先順位を高くして先に発音させることが好ましい。
【0046】また、同様に、音量が大きい楽音ほど、楽
音の時間的ずれに敏感であるので、音量が大きい楽音ほ
ど優先順位を高くして先に発音させることが好ましい。
また、アタック速度や音量を制御するために用いるキー
オンベロシティやラウドネスに応じて、優先順位を付け
ることができる。その場合、ベロシティやラウドネスが
大きい楽音ほど優先順位を高くして先に発音させること
が好ましい。
【0047】また、音高に応じて優先順位を付けてもよ
い。人間の聴感上、1kHz付近の周波数帯の音が最も
感度良く聞こえる。したがって、1kHz付近の音高の
楽音の優先順位を高くして先に発音させることができ
る。例えば、61鍵の鍵盤楽器の場合、1kHzの音高
の鍵は高音の音域に属する。したがって、処理を簡略化
し、音高が高い楽音ほど優先順位を高くして先に発音さ
せることができる。
【0048】なお、上記のアタック速度等のパラメータ
は、音色に応じて標準的な値が決まるので、音色に応じ
て優先順位を付けてもよい。
【0049】図3は、本実施例による電子楽音発生装置
の第3の発音処理例を示すタイムチャートである。横軸
はキーオン情報入力からの時間を示し、縦軸はDCO番
号を示す。同時に4キー(keyA、keyB、key
C、keyD)を押鍵し、各キー毎にピアノ音PNをス
テレオ(L/R)で発音させる場合を示す。この場合、
1音色系列を使用することになる。ここで、1つのDC
Oについて1msの処理時間がかかるものとする。
【0050】第1のDCOには、音高がAの左(L)の
ピアノ音PNが割り当てられ、第2のDCOには、音高
がAの右(R)のピアノ音PNが割り当てられる。第3
のDCOには、音高がBの左(L)のピアノ音PNが割
り当てられ、第4のDCOには、音高がBの右(R)の
ピアノ音PNが割り当てられる。第5のDCOには、音
高がCの左(L)のピアノ音PNが割り当てられ、第6
のDCOには、音高がCの右(R)のピアノ音PNが割
り当てられる。
【0051】上記の第1〜第6の6個のDCOには、キ
ーオン情報が入力され次第、順に、各キーオン情報の楽
音が割り当てられ、各楽音の音源パラメータが生成され
て音源の各DCOにセットされると共に、各DCOの演
算停止フラグがセットされる。その後、キーオン情報の
入力から所定時間(6ms)が経過した時点で、音源の
各DCOの演算停止フラグをクリアすることにより、6
個のDCOの発音が開始される。6個のDCOの処理に
は6msかかるので、所定時間(6ms)経過後に発音
可能な6個の楽音のみを先ず同時に発音させる。
【0052】次に、第7のDCOには、音高がDの左
(L)のピアノ音PNが割り当てられ、第8のDCOに
は、音高がDの右(R)のピアノ音PNが割り当てられ
る。その際、各楽音の音源パラメータが生成されて各D
COにセットされると共に、各DCOの演算停止フラグ
がセットされる。その後、キーオン情報の入力から8m
s経過後に、第7及び第8のDCOの演算停止フラグを
クリアすることにより、第7及び第8のDCOの楽音を
発音させる。第7及び第8のDCOの楽音は、1ms毎
に順に発音させてもよいが、これらの楽音はステレオL
/Rの組なので、本実施例のように、同時に発音させる
ことが好ましい。
【0053】図4は、本実施例による電子楽音発生装置
の第4の発音処理例を示すタイムチャートである。横軸
はキーオン情報入力からの時間を示し、縦軸はDCO番
号を示す。同時に6キー(keyA、keyB、key
C、keyD、keyE、keyF)を押鍵し、各キー
毎にディビア音TA及びストリングス音STをモノラル
で発音させる場合を示す。この場合、2音色系列を使用
することになる。ここで、1つのDCOについて1ms
の処理時間がかかるものとする。
【0054】第1のDCOには、音高がAのティビア音
TAが割り当てられ、第2のDCOには、音高がBのテ
ィビア音TAが割り当てられ、第3のDCOには、音高
がCのティビア音TAが割り当てられ、第4のDCOに
は、音高がDのティビア音TAが割り当てられ、第5の
DCOには、音高がEのティビア音TAが割り当てら
れ、第6のDCOには、音高がFのティビア音TAが割
り当てられる。
【0055】上記の第1〜第6の6個のDCOには、キ
ーオン情報が入力され次第、順に、各キーオン情報の楽
音が割り当てられ、各楽音の音源パラメータが生成され
て音源の各DCOにセットされると共に、各DCOの演
算停止フラグがセットされる。その後、キーオン情報の
入力から所定時間(6ms)が経過した時点で、音源の
各DCOの演算停止フラグをクリアすることにより、6
個のDCOの発音が開始される。6個のDCOの処理に
は6msかかるので、所定時間(6ms)経過後に発音
可能な6個の楽音のみを先ず同時に発音させる。
【0056】次に、上記と同様に、第7のDCOには、
音高がAのストリングス音STが割り当てられ、キーオ
ン情報入力から7ms経過後に、第7のDCOの楽音を
発音させる。同様に、キーオン情報入力から8ms経過
後に第8のDCOの楽音(keyBのストリングス音S
T)を発音させ、キーオン情報入力から9ms経過後に
第9のDCOの楽音(keyCのストリングス音ST)
を発音させ、キーオン情報入力から10ms経過後に第
10のDCOの楽音(keyDのストリングス音ST)
を発音させ、キーオン情報入力から11ms経過後に第
11のDCOの楽音(keyEのストリングス音ST)
を発音させ、キーオン情報入力から12ms経過後に第
12のDCOの楽音(keyFのストリングス音ST)
を発音させる。
【0057】この場合、ティビア音TAは、ストリング
ス音STよりもアタック速度が速いので、ティビア音T
Aの優先順位を高くしている。すなわち、第1〜第6の
DCOにアタック速度の速いティビア音TAを割り当て
て先に発音させ、その後に第7〜第12のDCOにアタ
ック速度の遅いストリング音STを割り当てて発音させ
る。上記のように、アタック速度が速い楽音は、複数の
楽音が少しずれて発音されても聴取者は敏感に楽音の時
間的ずれを感じ取るので、アタック速度が速い楽音ほど
優先順位を高くして先に発音させる。
【0058】図5(A)及び(B)は、本実施例に使用
する自動演奏データのフォーマットを示す図である。
【0059】図5(A)は、系列メッセージ(MIDI
チャネルメッセージ)のフォーマットを示す。水平方向
にビット番号を示し、垂直方向にバイト番号を示す。第
0バイトは、16進数表示で00H〜EFHの値をとる
ステップタイプを示す。ステップタイムは、直前のバー
(小節)メッセージからの時間を示す。第1バイトは、
ステータス及び系列(MIDIチャネル)を示す。上記
のステータスは、MIDIに準拠するものであり、例え
ば、キーオフ、キーオン、コントロールチェンジ、プロ
グラムチェンジ等を示す。第2バイトは、MIDIに準
拠する第1データバイトを示し、例えばキーナンバ等を
示す。第3バイトは、MIDIに準拠する第2データバ
イトであり、例えばベロシティを示す。
【0060】図5(B)は、システムメッセージのフォ
ーマットを示す。システムメッセージは、すべて1バイ
トであり、最上位ビットが1になる点で上記の系列メッ
セージと識別可能である。バー(小節)メッセージSY
1は、例えばF8Hで表現される。自動演奏(SEQ)
スタートメッセージSY2は、例えばFAHで表現され
る。自動演奏(SEQ)ストップメッセージSY3は、
例えばFCHで表現される。
【0061】図6は、図1に示す楽音を発音させる場合
の自動演奏データ(SEQデータ)を示す。垂直方向の
数字の並びはバイト番号を示す。第0バイトは、自動演
奏スタートメッセージSY2(図5(B))であり、第
1バイトは、バーメッセージSY1である。第2〜第5
バイトでは、ピアノ音の音色を設定する。第6〜第9バ
イトでは、ステップタイムが3の時点で音高がAの楽音
のキーオンを指示する。第10〜第13バイトでは、ス
テップタイムが3の時点で音高がBの楽音のキーオンを
指示する。第14〜第17バイトでは、ステップタイム
が3の時点で音高がCの楽音のキーオンを指示する。そ
の後に、各キーオンに対応するキーオフの指示がなさ
れ、最後に自動演奏ストップメッセージSY3(図5
(B))が位置する。この自動演奏データは、同時に3
つの音高のステレオ音のキーオンを指示している。
【0062】図7は、図2に示す楽音を発音させる場合
の自動演奏データを示す。垂直方向の数字の並びはバイ
ト番号を示す。第0バイトは自動演奏スタートメッセー
ジSY2(図5(B))であり、第1バイトはバーメッ
セージSY1である。第2〜第5バイトでは、音色系列
の0番にピアノ音の音色を設定する。第6〜第9バイト
では、音色系列の1番にストリングス音の音色を設定す
る。
【0063】第10〜第13バイトでは、ステップタイ
ムが3の時点で音色系列の0番(ピアノ音)に音高がA
の楽音のキーオンを指示する。第14〜第17バイトで
は、ステップタイムが3の時点で音色系列の1番(スト
リングス音)に音高がAの楽音のキーオンを指示する。
【0064】第18〜第21バイトでは、ステップタイ
ムが3の時点で音色系列の0番(ピアノ音)に音高がB
の楽音のキーオンを指示する。第22〜第25バイトで
は、ステップタイムが3の時点で音色系列の1番(スト
リングス音)に音高がBの楽音のキーオンを指示する。
【0065】第22〜第25バイトでは、ステップタイ
ムが3の時点で音色系列の0番(ピアノ音)に音高がC
の楽音のキーオンを指示する。第26〜第29バイトで
は、ステップタイムが3の時点で音色系列の1番(スト
リングス音)に音高がCの楽音のキーオンを指示する。
その後に、各キーオンに対応するキーオフの指示がなさ
れ、最後に自動演奏ストップメッセージSY3(図5
(B))が位置する。
【0066】図8は、本実施例による電子鍵盤楽器(電
子楽音発生装置)の構成を示すブロック図である。バス
15には、タイマ1、CPU2、フラッシュメモリ3、
RAM4、MIDI入出力インタフェース5、パネル
(操作子/表示器)6、キースキャン回路8、音源LS
I10、DSP12が接続されている。
【0067】タイマ1は、時間情報をカウントし、キー
オン情報の入力から所定時間(6ms)を計測すると第
1の割り込み信号INT1をCPU2に供給し、(4分
音符の時間)/24の時間間隔で第2の割り込み信号I
NT2をCPU2に供給する。CPU2は、図11〜図
20に示すフローチャートに対応するフラッシュメモリ
3内のコンピュータプログラムを実行することにより、
上記の同時発音の処理を実現する。
【0068】フラッシュメモリ3は、CPU2が処理す
るプログラム、DSP12が処理するプログラム、自動
演奏データ(図6、図7)、音色データを記憶する。R
AM4は、パネル6に対応するパネルイベントバッフ
ァ、鍵盤7に対応するキーイベントバッファ、パネル6
内のアナログ操作子に対応するアナログイベントバッフ
ァを有する。
【0069】キースキャン回路8は、鍵盤7に対してキ
ースキャンし、キーオン情報、キーオフ情報、ベロシテ
ィ、音高等を検出する。音源LSI10は、アサイメン
トメモリ10aと共通演算開始フラグ(CDCF:Cl
ear Disable Calculate Fla
g)10bを有する。CPU2は、キーオン情報が入力
されるとDCOの割り当てを行い、そのキーオンに対応
する音源パラメータをアサイメントメモリ10aにセッ
トする。共通演算開始フラグ10bは、キーオン情報入
力から所定時間(6ms)経過後に一斉に発音を開始さ
せるためのフラグである。
【0070】波形メモリ9は、楽音のPCM波形を記憶
する。音源LSI10は、波形メモリ9から波形を読み
出すことにより楽音を生成する。DSP12は、CPU
2からエフェクトパラメータを入力して、音源LSI1
0から出力される楽音にエフェクトを付与し、D/A変
換器13に出力する。その際、DSP12は、遅延メモ
リ11を用いて楽音を遅延させるエフェクトを付与す
る。
【0071】D/A変換器13は、DSP12から入力
する楽音をデジタル形式からアナログ形式に変換し、ア
ンプ及びスピーカ14に出力する。アンプ及びスピーカ
14から楽音が発音される。
【0072】図9は、図8に示す音源LSI10内のア
サイメントメモリ10aの内容を示す図である。垂直方
向に並ぶ数字はアドレスである。000H〜007H番
地には、DCO番号が0のパラメータが記憶され、00
8H〜00FH番地にはDCO番号が1のパラメータが
記憶され、最後に、1F8H〜1FFH番地にはDCO
番号が63のパラメータが記憶される。このように、D
CO番号の順番で、各アドレスに順次記憶されているの
で、単純にアドレスをインクリメントすることにより、
すべてのDCOのパラメータに対してアクセスすること
ができる。
【0073】各CDOのパラメータは、例えば、波形ス
タートアドレス、Fナンバ(周波数ナンバ)、フィルタ
パラメータ、エンベロープパラメータ(アタックレベル
及びアタック速度等)、ラウドネス(音量)、パンニン
グ(左右の定位)、Fナンバアキュムレータ(FAC
C)、エンベロープアキュムレータ(EACC)、DC
Oが使用中か否かを示すフラグUSE、系列、補間フラ
グIPF、演算停止フラグ(DCF:Disable
Calculate Flag)等である。
【0074】図10は、図8の音源LSI10の構成を
示すブロック図である。Fナンバ補間回路21、フィル
タパラメータ補間回路22、ラウドネス補間回路23、
パンニング補間回路24は、補間フラグIPFが1のと
きに、それぞれアサイメントメモリ10a内のFナン
バ、フィルタパラメータ、ラウドネス、パンニングを補
間し、補間フラグが0のときには補間せずにそのまま出
力する。これらの補間は、前回に発音された音からの急
激な変化を緩和させるために行われる。
【0075】Fナンバ累算回路25は、Fナンバ補間回
路21から入力したFナンバを累算し、累算値の整数部
を加算器33に出力すると共に、アサイメントメモリ1
0a内のFナンバアキュムレータFACCに記憶する。
加算器33は、累算されたFナンバの整数部とアサイメ
ントメモリ10a内の波形スタートアドレスとを加算
し、波形メモリ9へ出力する。
【0076】波形メモリ9は、上記の加算値を基に内部
の波形を読出してサンプル補間回路27に出力する。サ
ンプル補間回路27は、Fナンバ累算回路25から入力
された累算値の小数部を基に、波形メモリ9から読み出
された波形を補間してフィルタ28に出力する。フィル
タ28は、フィルタパラメータ補間回路22から入力す
るフィルタパラメータに応じて、サンプル補間回路27
が出力する波形をフィルタリングする。
【0077】エンベロープ発生回路26は、アサイメン
トメモリ10aに記憶されているエンベロープパラメー
タを基に、楽音エンベロープを生成し、乗算器29及び
アサイメントメモリ10aのエンベロープアキュムレー
タEACCに出力する。乗算器29は、フィルタ28が
出力する波形とエンベロープ発生回路26が出力するエ
ンベロープとを乗算して出力する。
【0078】乗算器30は、乗算器29が出力する波形
とラウドネス補間回路23が出力するラウドネス値とを
乗算して出力する。乗算器31は、乗算器30が出力す
る波形とパンニング補間回路24が出力するパンニング
値とを乗算して出力する。
【0079】系列分配及び系列累算回路32は、アサイ
メントメモリ10aに記憶されている系列を基に、乗算
器31が出力する時分割された各楽音発生チャネルの波
形を、各系列に分配して各系列毎に累算し、例えば4つ
の系列の波形をDSP12(図8)へ出力する。例え
ば、楽音発生チャネルは64であり、系列は4である。
【0080】アサイメントメモリ10a内の演算停止フ
ラグ(DCF)は、各楽音発生チャネル毎に設けられて
いる。キーオン情報が入力されると、パラメータを生成
して楽音発生チャネルが割り当てる。そして、生成した
パラメータをアサイメントメモリ10a内の楽音発生チ
ャネルにセットすると共に、演算停止フラグ(DCF)
をセットして、演算を停止して発音開始を待機させる。
キーオン情報の入力から所定時間(6ms)が経過する
と、演算停止フラグ(DCF)がクリアされ、発音が開
始される。
【0081】具体的には、演算停止フラグ(DCF)が
セットされると、演算停止フラグ(DCF)の値がエン
ベロープ発生回路26及びFナンバ累算回路25に供給
される。すると、エンベロープ発生回路26はエンベロ
ープ値を0にして出力し、Fナンバ累算回路25もFナ
ンバを0にして出力する。エンベロープ値を0にするこ
とにより楽音は発生されず、Fナンバを0にすることの
より発音開始が待たされる。次に、演算停止フラグ(D
CF)をクリアすると、エンベロープ発生回路26及び
Fナンバ累算回路25はそれぞれ通常のエンベロープ及
びFナンバの生成及び出力を開始する。つまり、楽音の
発生開始が指示されることになる。
【0082】共通演算開始フラグ(CDCF)10bが
セットされると、アサイメントメモリ10a内の全楽音
発生チャネルの演算停止フラグ(DCF)がクリアさ
れ、すべての楽音の発生が開始される。
【0083】図11は、CPUが行うメインルーチンの
フローチャートである。電源がオンされると、ステップ
SA1にてレジスタへのセットや割り込み許可等の初期
化処理を行う。
【0084】ステップSA2では、パネル6(図8)を
スキャンし、演奏者のパネル操作により発生したイベン
トを検出し、ステータス(操作種類)や系列のデータを
付加してパネルイベントバッファへ記憶する。
【0085】ステップSA3では、上記のパネルスキャ
ンにより発生したイベントのうち、ボリューム等のアナ
ログ的に処理されるアナログ操作子によるイベントは、
ステータスや系列のデータを付加してアナログイベント
バッファへ記憶する。
【0086】ステップSA4では、鍵盤7(図8)をキ
ースキャンして、演奏者のキー操作により発生したイベ
ントを検出し、ステータス(キーオン/キーオフ)やベ
ロシティや系列のデータを付加してキーイベントバッフ
ァへ記憶する。
【0087】ステップSA5では、自動演奏が指示され
ているか否かを判断する。自動演奏が指示されていると
きには、ステップSA6にて自動演奏の再生処理を行っ
て、ステップSA7へ進む。自動演奏が指示されていな
いときには、そのままステップSA7へ進む。なお、ス
テップSA6の詳細は、後に図12及び図13のフロー
チャートを参照しながら説明する。
【0088】ステップSA7では、パネルイベント処理
を行う。この処理の詳細は、後に図14のフローチャー
トを参照しながら説明する。
【0089】ステップSA8では、キーイベント処理を
行う。この処理の詳細は、後に図16、図17及び図1
8のフローチャートを参照しながら説明する。
【0090】ステップSA9では、アナログイベント処
理を行う。この処理の詳細は、後に図15のフローチャ
ートを参照しながら説明する。
【0091】ステップSA10では、キーオフかつフラ
グUSEが1であるDCO(楽音発生チャネル)に関
し、エンベロープアキュムレータ(EACC)の上位1
0ビットが0か否かを調べ、0ならばそのDCOのフラ
グUSEを0にする。すなわち、エンベロープ値が0に
近いものについては、フラグUSEを0にすることによ
りそのDCOに新たなキーオンを割り当ることができる
ようにする。
【0092】ステップSA11では、その他の処理を行
い、ステップSA2へ戻り、上記の処理を繰り返す。
【0093】図12は、図11のステップSA6に示す
自動演奏再生処理の詳細を示すフローチャートである。
【0094】ステップSB1では、フラグwaitBA
Rが0か否かをチェックする。フラグwaitBAR
は、バー(小節)メッセージが読み出されると、現在、
小節の処理中であることを示すために1になり、その後
に図20に示すタイマー割り込みにより0にクリアされ
る。フラグwaitBARが1のときには、何もせずに
処理を終了する。フラグwaitBARが0のときに
は、ステップSB2へ進む。
【0095】ステップSB2では、次に読み出すメッセ
ージが系列メッセージ(図5(A))又はシステムメッ
セージ(図5(B))のいずれであるかをチェックす
る。系列メッセージであるときにはステップSB3へ進
み、システムメッセージであるときには図13のステッ
プSB13へ進む。
【0096】ステップSB3では、自動演奏読み出しポ
インタの示すメッセージ中のステップタイムのみを読み
出す。
【0097】ステップSB4では、レジスタBeatが
上記で読み出したステップタイム以上であるか否かをチ
ェックする。レジスタBeatは、図20のタイマ割り
込みによりカウントされる現在のビート数である。レジ
スタBeatがステップタイム未満であるときには未だ
処理タイミングに到達していないので、処理を終了す
る。レジスタBeatがステップタイム以上であるとき
には処理タイミングに到達したことを意味するので、ス
テップSB5へ進む。
【0098】ステップSB5では、自動演奏読み出しポ
インタの示すメッセージを読み出し、ステップSB6で
は、自動演奏読み出しポインタを次のメッセージの位置
に進める。
【0099】ステップSB7では、読み出したメッセー
ジがプログラムチェンジ又はコントロールチェンジであ
るか否かをチェックする。プログラムチェンジ又はコン
トロールチェンジであるときには、ステップSB8へ進
む。プログラムチェンジ又はコントロールチェンジでな
いときには、ステップSB9へ進む。
【0100】ステップSB8では、読み出したメッセー
ジからステップタイムを削除してパネルイベントバッフ
ァへ記憶し、ステップSB1へ戻る。
【0101】ステップSB9では、読み出したメッセー
ジがキーオン又はキーオフであるか否かをチェックす
る。キーオン又はキーオフであるときには、ステップS
B10へ進む。キーオン又はキーオフでないときには、
図13のステップSB11へ進む。
【0102】ステップSB10では、読み出したメッセ
ージからステップタイムを削除してキーイベントバッフ
ァへ記憶し、ステップSB1へ戻る。
【0103】図13のステップSB11では、読み出し
たメッセージがキープレッシャ、チャネルプレッシャ又
はピッチベンドであるか否かをチェックする。上記のメ
ッセージに該当するときにはステップSB12へ進み、
該当しないときにはステップSB22へ進む。
【0104】ステップSB12では、読み出したメッセ
ージからステップタイムを削除してアナログイベントバ
ッファへ記憶し、図12のステップSB1へ戻る。
【0105】ステップSB22では、その他の系列メッ
セージの処理を行い、図12のステップSB1へ戻る。
【0106】ステップSB13は、システムメッセージ
のときの処理であり、自動演奏読み出しポインタが示す
メッセージがバーメッセージであるか否かをチェックす
る。バーメッセージであるときにはステップSB14へ
進み、バーメッセージでないときにはステップSB16
へ進む。
【0107】ステップSB14では、バーメッセージに
応じてフラグwaitBARを1にし、ステップSB1
5で自動演奏読み出しポインタを次のメッセージ位置に
進め、処理を終了する。
【0108】ステップSB16では、自動演奏読み出し
ポインタが示すメッセージが自動演奏スタートメッセー
ジであるか否かをチェックする。自動演奏スタートメッ
セージであるときにはステップSB17へ進み、自動演
奏スタートメッセージでないときにはステップSB19
へ進む。
【0109】ステップSB17では、フラグSEQ_P
LYを1にし、ステップSB18で自動演奏読み出しポ
インタを次のメッセージ位置に進め、図12のステップ
SB1へ戻る。
【0110】ステップSB19では、自動演奏読み出し
ポインタが示すメッセージが自動演奏ストップメッセー
ジであるか否かをチェックする。自動演奏ストップメッ
セージであるときにはステップSB20へ進み、自動演
奏ストップメッセージでないときにはステップSB23
へ進む。
【0111】ステップSB20では、フラグSEQ_P
LYを0にし、ステップSB21で自動演奏データのキ
ーオンとして発音中のDCOはすべてエンベロープをリ
リースモード(消音処理モード)に置き換える。その
後、処理を終了する。
【0112】ステップSB23では、その他のシステム
メッセージの処理を行い、処理を終了する。
【0113】図14は、図11のステップSA7に示す
パネルイベント処理の詳細を示すフローチャートであ
る。
【0114】ステップSC1では、パネルイベントバッ
ファは空か否かをチェックする。空のときには処理を終
了し、空でないときにはステップSC2へ進む。
【0115】ステップSC2では、パネルイベントバッ
ファから1イベントを読み出し、ステップSC3では、
読み出したイベントがプログラムチェンジか否かをチェ
ックする。プログラムチェンジのときにはステップSC
4へ進み、プログラムチェンジでないときにはステップ
SC5へ進む。
【0116】ステップSC4では、対応する系列の音色
切り換え準備を行う。すなわち、現在、その系列で発音
中のものはそのままの音色で発音を続け、次に新規なキ
ーオンが発生したときから対応する系列の音色を切り換
えて発音する。その後、ステップSC1へ戻る。
【0117】ステップSC5では、読み出したイベント
がコントロールチェンジか否かをチェックする。コント
ロールチェンジのときにはステップSC6へ進み、コン
トロールチェンジでないときにはステップSC7へ進
む。
【0118】ステップSC6では、コントロールチェン
ジ情報に基づき対応する系列の音質、音高、パンニン
グ、リバーブ(リバーブはDSPプログラムと係数に関
するもの)等を制御する。その後、ステップSC1へ戻
る。
【0119】ステップSC7では、その他のイベントの
処理を行い、ステップSC1へ戻る。その後、パネルイ
ベントバッファが空になるまで、上記の処理を繰り返
す。
【0120】図15は、図11のステップSA9に示す
アナログイベント処理の詳細を示すフローチャートであ
る。アナログイベントは、例えば、ボリューム(音量制
御)、アフタータッチ(音量及び/又は音色制御)、ベ
ンダー(音高及び/又は音色制御)である。
【0121】ステップSE1では、アナログイベントバ
ッファが空か否かをチェックする。空のときには処理を
終了し、空でないときにはステップSE2へ進む。
【0122】ステップSE2では、アナログイベントバ
ッファから1イベントを読み出す。ステップSE3で
は、アナログイベント情報を、アサイメントメモリにセ
ットするためのパラメータに変換する。
【0123】ステップSE4では、対応する系列が割り
当てられたアサイメントメモリの各DCOに関し、補間
フラグIPFを1にする。アナログイベントに関して
は、パラメータを補間することにより、パラメータの急
激な変化を緩和させることが好ましい。
【0124】ステップSE5では、対応する系列が割り
当てられたアサイメントメモリの各DCOに関し、上記
の新パラメータをセットする。その後、ステップSE1
に戻り、上記の処理を繰り返し、アナログイベントバッ
ファが空になると処理を終了する。
【0125】図16は、図11のステップSA8に示す
キーイベント処理の詳細を示すフローチャートである。
【0126】ステップSD1では、キーイベントバッフ
ァが空か否かをチェックする。空でないときには、ステ
ップSD2へ進む。
【0127】ステップSD2では、キーイベントバッフ
ァから1イベントを読み出し、ステップSD3では、読
み出したイベントがキーオフイベントか否かをチェック
する。キーオフイベントでないときには、キーオンイベ
ントであり、ステップSD8へ進む。
【0128】ステップSD8では、TIMER1がカウ
ント中か否かをチェックする。TIMER1は、キーオ
ン情報の入力から6ms後に割り込み信号を発生するタ
イマーであり、図19(A)、(B)で処理される。カ
ウント中でないときにはTIMER1に所定時間(6m
s)をセットして、TIMER1にダウンカウントを開
始させ、ステップSD10へ進む。カウント中であると
きには、ステップSD9をバイパスしてステップSD1
0へ進む。すなわち、複数のキーオンイベントが入力さ
れたときには、最初のキーオンイベントの入力時から所
定時間(6ms)の計測を行う。
【0129】ステップSD10では、対応する系列にセ
ットされた音色のアタックスピード(速度)を付加して
割当優先バッファへ格納する。なお、音色が1キーオン
当たり2DCOを使用するときには、DCO単位に分解
して格納する。その後、ステップSD1へ戻る。
【0130】ステップSD3にてキーオフイベントであ
ると判断されると、ステップSD4へ進む。
【0131】ステップSD4では、対応するDCOは既
に発音中であるか否かをチェックする。発音中であると
きには、通常のキーオフの処理を行うため、ステップS
D7へ進む。
【0132】ステップSD7では、対応するDCOのエ
ンベロープパラメータをキーオフ用リリースパラメータ
としてセットし、消音処理を行う。その後、ステップS
D1へ戻る。
【0133】ステップSD4で発音中でないと判断され
たときには、ステップSD5へ進み、割り当てられてい
るが発音開始前であるか否かをチェックする。割り当て
られているときには、ステップSD6で対応するDCO
のフラグUSE及び演算停止フラグDCFを0にクリア
し、ステップSD1へ戻る。割り当てられていないとき
にはステップSD6をバイパスしてステップSD1へ戻
る。
【0134】ステップSD1にてキーイベントバッファ
が空であると判断されたときには、ステップSD11へ
進む。
【0135】ステップSD11では、フラグOVERが
1か否かをチェックする。フラグOVERは、同時発音
処理可能な最大DCO数(6DCO)を超えた数のキー
オンが割当優先バッファに蓄積されたときに1になる。
フラグOVERが0のときには、図17のステップSD
13へ進み、フラグOVERが1のときには図18のス
テップSD17へ進む。
【0136】図17のステップSD13では、割当優先
バッファが空か否かをチェックする。空でないときには
ステップSD14へ進み、空であるときには処理を終了
する。
【0137】ステップSD14では、エンベロープのア
タックスピードが速い音色のキーオン情報から順に優先
して音源LSIのDCO割り当て、及び各種パラメータ
の作成演算を行い、その結果を対応するアサイメントメ
モリにセットする。なお、アサイメントメモリが空いて
いない場合は所定の優先順位に従って、特定DCOをト
ランケート処理(キーオフ及び高速リリース)する。次
に、割り当てているDCO数をレジスタwaitDCO
へ格納する。次に、割り当ての終了したキーオンイベン
トを割当優先バッファから削除する。次に、割り当てた
DCOは、すべて、フラグUSEを1にし、補間フラグ
IPFを0にし、演算停止フラグDCFを1にする。演
算停止フラグDCFを1にすることにより、発音のため
の演算を開始せずに待機状態になる。その後、ステップ
SD15へ進む。
【0138】ステップSD15では、発音待機中のDC
O数を示すレジスタwaitDCOが6以下であるか否
かをチェックする。レジスタwaitDCOが6以下で
あるときにはステップSD13へ戻り、上記の処理を繰
り返す。レジスタwaitDCOが6を超えているとき
には、ステップSD16へ進む。ステップSD16で
は、フラグOVERを1にし、処理を終了する。
【0139】図18のステップSD17は、フラグOV
ERが1になり、同時発音可能なDCO数を越えたキー
オン数が割り当てられたときに、現在割り当てられてい
るDDCOの発音を開始するための処理であり、割当優
先バッファが空か否かをチェックする。割当優先バッフ
ァが空でないときには、ステップSD18へ進む。
【0140】ステップSD18では、割当優先バッファ
から1DCOのイベントを読み出す。ステップSD19
では、エンベロープのアタックスピードが速い音色のキ
ーオン情報から順に優先して音源LSIのDCO割り当
て、及び各種パラメータの作成演算を行い、その結果を
対応するアサイメントメモリにセットする。なお、アサ
イメントメモリが空いていない場合は、所定の優先順位
に従って、特定DCOをトランケート処理(キーオフ及
び高速リリース処理)する。次に、割り当てが終了した
キーオンイベントを割当優先バッファから削除する。次
に、割り当てたDCOは、すべて、フラグUSEを1に
し、補間フラグIPFを0にし、演算停止フラグDCF
を0にする。演算停止フラグDCFを0にすることによ
り、発音演算開始が指示され、即、発音が開始される。
なお、ステレオ音の場合は左音(L音)と右音(R音)
を連続して読み出し、同時に発音開始を指示する。
【0141】ステップSD20では、割当優先バッファ
が空か否かをチェックする。割当優先バッファが空でな
いときにはステップSD18へ戻り、割当優先バッファ
が空であるときには処理を終了する。
【0142】ステップSD17にて割当優先バッファが
空であるときには、ステップSD21へ進む。ステップ
SD21では、フラグOVERを0にして、処理を終了
する。
【0143】図19(A)は、第1のタイマー(TIM
ER1)の第1の割り込み処理例を示すフローチャート
である。第1のタイマーは、図16のステップSD9で
6msがセットされると、ダウンカウントを開始し、6
ms後に割り込み信号をCPUに供給する。CPUは、
その割り込み信号を受けると、以下の処理を行う。
【0144】まず、ステップSF1では、待機中のDC
O数を示すレジスタwaitDCOに0をセットする。
次に、ステップSF2では、音源LSIの共通演算開始
フラグCDCFに1をセットする。共通演算開始フラグ
CDCFに1をセットすると、音源LSIは、全DCO
の演算停止フラグDCFを0にクリアする。すると、全
DCOの演算停止が解除され、割り当てられているDC
Oの発音開始が指示される。すなわち、キーオン情報の
入力から所定時間(6ms)経過後に発音開始が指示さ
れる。複数の楽音のキーオン情報が入力されたときに
は、最初のキーオン情報の入力から所定時間経過後に発
音開始が指示される。そして、最後に、音源LSIは、
共通演算開始フラグCDCFを0にクリアする。
【0145】図19(B)は、第1のタイマー(TIM
ER1)の第2の割り込み処理例を示すフローチャート
である。上記の第1の割り込み処理例では、共通演算開
始フラグCDCFに1がセットされると音源LSIが全
DCOの演算停止フラグDCFを0にクリアする場合を
説明したが、第2の割り込み処理例では、CPUが直接
音源LSIの全DCOの演算停止フラグDCFを0にク
リアする場合を説明する。第1の割り込み処理例と同様
に、CPUは上記の割り込み信号を受けると、以下の処
理を行う。
【0146】まず、ステップSG1では、待機中のDC
O数を示すレジスタwaitDCOに0をセットする。
次に、ステップSG2では、割り込み不可(DI:Di
sable Interrupt)の状態にする。次
に、ステップSG2では、音源LSIの各DCOの演算
停止フラグDCFを順に0にクリアする。次に、ステッ
プSG4では、割り込み可(EI:Enable In
terrupt)の状態にし、処理を終了する。
【0147】第1の割り込み処理例では、音源LSIが
共通演算開始フラグCDCFに応じて全DCOの演算停
止フラグDCFをクリアするための回路が必要になり、
音源LSIのコストが増加してしまう。音源LSIのコ
ストを下げたい場合には、第2の割り込み処理例のよう
に、CPUが直接演算停止フラグDCFをクリアするよ
うにすればよい。
【0148】図20は、第2のタイマー(TIMER
2)の割り込み処理例を示すフローチャートである。第
2のタイマーは、図12のステップSB1で使用するビ
ートレジスタBeatをカウント等するためのテンポタ
イマーであり、例えば4分音符長の1/24の間隔で割
り込み信号をCPUに供給する。CPUは、その割り込
み信号を受けると、以下の処理を行う。
【0149】ステップSH1では、ビートレジスタBe
atの値をインクリメントする。次に、ステップSH2
では、ビートレジスタBeatの値が24×4以上であ
るか否かをチェックする。すなわち、割り込み間隔が4
分音符長の1/24であってかつ4/4拍子の場合は、
ビートレジスタBeatの値が24×4のときに1小節
の長さを意味するので、ビートレジスタBeatの値が
24×4未満のときには処理を終了し、24×4以上の
ときにはステップSH3へ進む。
【0150】ステップSH3では、小節レジスタBAR
をインクリメントする。次に、ステップSH4でレジス
タwaitBARを0にし、ステップSH5でビートレ
ジスタBeatを0にする。その後、処理を終了する。
【0151】本実施例によれば、発音に必要なパラメー
タを音源にセットした後に直ぐに発音を開始させるので
はなく、各DCOの演算停止フラグDCFに1をセット
してキーオン情報の入力から所定時間が経過するまで待
って、複数の楽音についてのパラメータが音源にセット
されたところで、各DCOの演算停止フラグDCFを0
にクリアすることにより音源に発音開始を指示するの
で、複数の楽音を同時に又は短時間で発音させることが
できる。
【0152】また、同時に発音すべき複数の楽音を発音
させる際に、音色、ベロシティ、音高、音量又は楽音エ
ンベロープのアタック速度に応じて所定の優先順位を付
けて発音処理を行うので、同時に発音すべき複数の楽音
が同時に又は短時間の間に発音されたかのように聴取者
に感じさせることができる。
【0153】上記実施例の機能を実現するためのソフト
ウェアのプログラムコードを供給し、電子楽音発生装置
のコンピュータ(CPUあるいはMPU)に格納された
プログラムに従って動作させることによっても実施する
ことができる。
【0154】この場合、上記ソフトウェアのプログラム
コード自体が上述した実施例の機能を実現することにな
り、そのプログラムコード自体、およびそのプログラム
コードをコンピュータに供給するための手段、例えばか
かるプログラムコードを格納した記録媒体は本発明を構
成する。かかるプログラムコードを記憶する記録媒体と
しては、例えばフロッピー(登録商標)ディスク、ハー
ドディスク、光ディスク、光磁気ディスク、CD−RO
M、磁気テープ、不揮発性のメモリカード、ROM等を
用いることができる。
【0155】なお、上記実施例は、何れも本発明を実施
するにあたっての具体化のほんの一例を示したものに過
ぎず、これらによって本発明の技術的範囲が限定的に解
釈されてはならないものである。すなわち、本発明はそ
の精神、またはその主要な特徴から逸脱することなく、
様々な形で実施することができる。例えば、PCM音源
に限定されず、パーソナルコンピュータ内蔵の音源ボー
ド、コンピュータプログラムで波形生成を行うソフト音
源等の他の音源に適用することもできる。
【0156】
【発明の効果】以上説明したように本発明によれば、同
時に発音すべき複数の楽音を発音させる際に所定の優先
順位を付けて発音処理を行うことができるので、同時に
発音すべき複数の楽音が同時に又は短時間の間に発音さ
れたかのように聴取者に感じさせることができる。
【図面の簡単な説明】
【図1】本発明の実施例による電子楽音発生装置の第1
の発音処理例を示すタイムチャートである。
【図2】本実施例による電子楽音発生装置の第2の発音
処理例を示すタイムチャートである。
【図3】本実施例による電子楽音発生装置の第3の発音
処理例を示すタイムチャートである。
【図4】本実施例による電子楽音発生装置の第4の発音
処理例を示すタイムチャートである。
【図5】図5(A)、(B)は自動演奏データのフォー
マット例を示す図である。
【図6】図1に示す発音処理例に対応する自動演奏デー
タを示す図である。
【図7】図2に示す発音処理例に対応する自動演奏デー
タを示す図である。
【図8】本実施例による電子楽音発生装置(電子鍵盤楽
器)の構成を示すブロック図である。
【図9】音源LSIのアサイメントメモリの構成を示す
図である。
【図10】音源LSIの構成を示すブロック図である。
【図11】CPUが行うメインルーチンの処理を示すフ
ローチャートである。
【図12】自動演奏再生処理の詳細を示すフローチャー
トである。
【図13】図12に続く自動演奏再生処理の詳細を示す
フローチャートである。
【図14】パネルイベント処理の詳細を示すフローチャ
ートである。
【図15】アナログイベント処理の詳細を示すフローチ
ャートである。
【図16】キーイベント処理の詳細を示すフローチャー
トである。
【図17】図16に続くキーイベント処理の詳細を示す
フローチャートである。
【図18】図16に続く他のキーイベント処理の詳細を
示すフローチャートである。
【図19】図19(A)、(B)は第1のタイマの割り
込み処理を示すフローチャートである。
【図20】第2のタイマの割り込み処理を示すフローチ
ャートである。
【図21】従来技術による電子楽音発生装置の第1の発
音処理例を示すタイムチャートである。
【図22】従来技術による電子楽音発生装置の第2の発
音処理例を示すタイムチャートである。
【符号の説明】
1 タイマー 2 CPU 3 フラッシュメモリ 4 RAM 5 MIDI入出力インタフェース 6 パネル(操作子/表示器) 7 鍵盤 8 キースキャン回路 9 波形メモリ 10 音源LSI 10a アサイメントメモリ 10b 共通演算開始フラグ 11 遅延メモリ 12 DSP 13 D/A変換器 14 アンプ及びスピーカ 15 バス 21 Fナンバ補間回路 22 フィルタパラメータ補間回路 23 ラウドネス補間回路 24 パンニング補間回路 25 Fナンバ累算回路 26 エンベロープ発生回路 27 サンプル補間回路 28 フィルタ 29,30,31 乗算器 32 系列分配及び系列累算回路 33 加算器

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 楽音のキーオン情報を入力する入力手段
    と、 複数の楽音のキーオン情報を入力すると、音色、ベロシ
    ティ、音高、音量又は楽音エンベロープのアタック速度
    に応じた優先順位で楽音の発音開始を指示する発音指示
    手段とを有する電子楽音発生装置。
  2. 【請求項2】 前記入力手段は、音色、ベロシティ、音
    量又は音高を含む楽音パラメータ及びキーオン情報を入
    力する入力手段と、 前記発音指示手段は、前記複数の楽音のキーオン情報を
    入力すると前記楽音パラメータに含まれる音色、ベロシ
    ティ、音量又は音高に応じた優先順位で楽音の発音開始
    を指示する請求項1記載の電子楽音発生装置。
  3. 【請求項3】 前記発音指示手段は、音色に応じた優先
    順位で楽音の発音開始を指示する請求項1記載の電子楽
    音発生装置。
  4. 【請求項4】 前記発音指示手段は、ベロシティに応じ
    た優先順位で楽音の発音開始を指示する請求項1記載の
    電子楽音発生装置。
  5. 【請求項5】 前記発音指示手段は、ベロシティが大き
    い楽音ほど優先順位を高くして先に発音開始を指示する
    請求項4記載の電子楽音発生装置。
  6. 【請求項6】 前記発音指示手段は、音高に応じた優先
    順位で楽音の発音開始を指示する請求項1記載の電子楽
    音発生装置。
  7. 【請求項7】 前記発音指示手段は、音高が高い楽音ほ
    ど優先順位を高くして先に発音開始を指示する請求項6
    記載の電子楽音発生装置。
  8. 【請求項8】 前記発音指示手段は、音量に応じた優先
    順位で楽音の発音開始を指示する請求項1記載の電子楽
    音発生装置。
  9. 【請求項9】 前記発音指示手段は、音量が大きい楽音
    ほど優先順位を高くして先に発音開始を指示する請求項
    8記載の電子楽音発生装置。
  10. 【請求項10】 前記発音指示手段は、楽音エンベロー
    プのアタック速度に応じた優先順位で楽音の発音開始を
    指示する請求項1記載の電子楽音発生装置。
  11. 【請求項11】 前記発音指示手段は、楽音エンベロー
    プのアタック速度が速い楽音ほど優先順位を高くして先
    に発音開始を指示する請求項10記載の電子楽音発生装
    置。
  12. 【請求項12】 前記発音指示手段は、 前記キーオン情報を入力すると発音に必要な音源パラメ
    ータを音源にセットするパラメータセット手段と、 前記キーオン情報の入力から所定時間経過後に前記音源
    パラメータがセットされた音源に前記優先順位で発音開
    始を指示する発音開始指示手段とを含む請求項1記載の
    電子楽音発生装置。
  13. 【請求項13】 前記パラメータセット手段は、前記音
    源パラメータを前記音源のいずれかの楽音発生チャネル
    に割り当ててセットすると共に、該楽音発生チャネルの
    演算停止フラグをセットすることにより発音開始を待機
    させ、 前記発音開始指示手段は、前記所定時間経過後に前記演
    算停止フラグをクリアすることにより発音開始を指示す
    る請求項12記載の電子楽音発生装置。
  14. 【請求項14】 さらに、所定の複数の楽音発生チャネ
    ルの発音開始を一斉に指示するための共通演算開始フラ
    グを有し、 前記パラメータセット手段は、複数の音の音源パラメー
    タを複数の楽音発生チャネルに割り当てることができ、 前記発音開始指示手段は、前記共通演算開始フラグがセ
    ットされると前記所定の複数の楽音発生チャネルの演算
    停止フラグをすべてクリアし、前記所定の複数の楽音発
    生チャネルの発音開始を指示する請求項13記載の電子
    楽音発生装置。
  15. 【請求項15】 前記発音開始指示手段は、前記入力手
    段に複数の楽音のキーオン情報が入力されると、該入力
    された複数の楽音のうちの所定楽音数の楽音のみの発音
    開始を一括して指示し、残りの楽音についてはその後に
    発音開始を指示する請求項12記載の電子楽音発生装
    置。
  16. 【請求項16】 前記発音開始指示手段は、前記残りの
    楽音についてはその後に順に発音開始を指示する請求項
    15記載の電子楽音発生装置。
  17. 【請求項17】 (a)複数の楽音のキーオン情報を入
    力するステップと、 (b)複数の楽音のキーオン情報を入力すると、音色、
    ベロシティ、音高、音量又は楽音エンベロープのアタッ
    ク速度に応じた優先順位で楽音の発音開始を指示するス
    テップとを有する電子楽音発生方法。
  18. 【請求項18】 (a)複数の楽音のキーオン情報を入
    力する手順と、 (b)複数の楽音のキーオン情報を入力すると、音色、
    ベロシティ、音高、音量又は楽音エンベロープのアタッ
    ク速度に応じた優先順位で楽音の発音開始を指示する手
    順とをコンピュータに実行させるためのプログラムを記
    録したコンピュータ読み取り可能な記録媒体。
JP2000099795A 2000-03-31 2000-03-31 電子楽音発生装置、電子楽音発生方法及び記録媒体 Pending JP2001282243A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000099795A JP2001282243A (ja) 2000-03-31 2000-03-31 電子楽音発生装置、電子楽音発生方法及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000099795A JP2001282243A (ja) 2000-03-31 2000-03-31 電子楽音発生装置、電子楽音発生方法及び記録媒体

Publications (1)

Publication Number Publication Date
JP2001282243A true JP2001282243A (ja) 2001-10-12

Family

ID=18614097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000099795A Pending JP2001282243A (ja) 2000-03-31 2000-03-31 電子楽音発生装置、電子楽音発生方法及び記録媒体

Country Status (1)

Country Link
JP (1) JP2001282243A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006270450A (ja) * 2005-03-23 2006-10-05 Yamaha Corp 送信装置
JP2008233827A (ja) * 2007-03-23 2008-10-02 Yamaha Corp 楽器の制御装置
JP2009244339A (ja) * 2008-03-28 2009-10-22 Kawai Musical Instr Mfg Co Ltd 電子楽音発生装置及びコンピュータプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006270450A (ja) * 2005-03-23 2006-10-05 Yamaha Corp 送信装置
JP2008233827A (ja) * 2007-03-23 2008-10-02 Yamaha Corp 楽器の制御装置
JP2009244339A (ja) * 2008-03-28 2009-10-22 Kawai Musical Instr Mfg Co Ltd 電子楽音発生装置及びコンピュータプログラム

Similar Documents

Publication Publication Date Title
JP2707853B2 (ja) 押鍵指示装置
CN110299128B (zh) 电子乐器、方法、存储介质
JP2705395B2 (ja) 電子楽器
TW571555B (en) Tone generator apparatus sharing parameters among channels
JPH0887270A (ja) 電子楽器
JP2001282243A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JP2001282241A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JP6528752B2 (ja) 楽音再生装置、楽音再生方法、プログラムおよび電子楽器
JP3312939B2 (ja) 電子楽器
JP2531424B2 (ja) 自動伴奏装置
JP3793041B2 (ja) 歌詞データ処理装置及び補助データ処理装置
JP2529227Y2 (ja) 電子楽器
JP2694788B2 (ja) 電子楽器
JP4037551B2 (ja) 楽音発生装置、電子楽器、及び記憶媒体
JPH1031486A (ja) 演奏データ記憶再生方法および装置
JP5246473B2 (ja) 楽音発生装置および楽音発生処理プログラム
JPH11119777A (ja) サンプリング装置
JP3716710B2 (ja) 楽音発生装置
JP3660379B2 (ja) 音源制御情報の記憶方法及び音源制御装置
JP2003099039A (ja) 楽曲データ編集装置及びプログラム
JPH09244654A (ja) 電子楽器
JP2001092450A (ja) オーディオ・ファイルの生成処理方法
JP2004361482A (ja) 波形変調装置および波形変調プログラム
JPH05307389A (ja) 電子楽器
JP2002323892A (ja) 演奏装置