JP2853588B2 - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JP2853588B2
JP2853588B2 JP6324456A JP32445694A JP2853588B2 JP 2853588 B2 JP2853588 B2 JP 2853588B2 JP 6324456 A JP6324456 A JP 6324456A JP 32445694 A JP32445694 A JP 32445694A JP 2853588 B2 JP2853588 B2 JP 2853588B2
Authority
JP
Japan
Prior art keywords
note
sounding
key
sound
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
JP6324456A
Other languages
English (en)
Other versions
JPH08179767A (ja
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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP6324456A priority Critical patent/JP2853588B2/ja
Publication of JPH08179767A publication Critical patent/JPH08179767A/ja
Application granted granted Critical
Publication of JP2853588B2 publication Critical patent/JP2853588B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子楽器に関し、特に
時間経過に従い音量が変化する楽音を発生する複数の発
音チャンネルを有し、発生すべき楽音に対して発音チャ
ンネルを割り当てる割当て処理を良好に行える電子楽器
に関する。
【0002】
【従来の技術】電子楽器の発音チャンネルは、メモリに
記憶された波形データを演奏者の鍵盤操作等に応じて読
み出す波形合成回路と、波形合成回路が形成した波形の
振幅を制御して楽音の音量を制御するためのエンベロー
プ信号を発生するエンベロープ形成回路等により構成さ
れている。
【0003】この種の電子楽器では、発音すべき楽音毎
に動的に発音チャンネルを割り当てる。演奏者の鍵盤操
作等により発音要求があると、1つの発音チャンネルが
割り当てられる。空きチャンネルがない場合は、以前に
発音要求のあった楽音に割り当てられている発音チャン
ネルを強制的に解放し、新たに要求があった楽音に対し
てこの発音チャンネルを割り当てる。この割り当て処理
をトランケート処理という。
【0004】楽音の中には、異なった早さのリリースを
持つもの、あるいは、ストリングやパイプオルガン等の
スローアタックの音色のものや、キーオンディレイとい
ってアタックを意識的に遅らせたものがある。従来の電
子楽器では、エンベロープ信号のレベルだけに基づいて
トランケート処理を行っていたため、例えば以下のよう
な不都合が生じていた。
【0005】図10に示すように、スローアタックの音
色が割り当てられている発音チャンネルCの時刻t1
おけるエンベロープ信号のレベルLc は、楽音の立ち上
がり部分であるにもかかららず、発音チャンネルA及び
Bの時刻t1 におけるエンベロープ信号のレベルLa
よびLb よりも小さい。時刻t1 に発音チャンネル割当
て要求があった場合、エンベロープ信号のレベルだけに
基づいてトランケート処理を行うと発音チャンネルCが
トランケート処理されてしまう。これでは、発音チャン
ネルCを割り当てられた楽音が発音されないまま消音さ
れてしまうため不自然である。
【0006】そこで、最も古く押鍵された発音チャンネ
ルを検出してトランケート処理する方法が提案されてい
る。時刻t1 に発音チャンネルの割り当て要求がある
と、時刻t1 におけるエンベロープ信号のレベルは発音
チャンネルBよりも発音チャンネルAの方が小さいにも
かかわらず、最も古く押鍵された発音チャンネルBがト
ランケートされてしまう。これでは、実際に減衰が進ん
でいる音よりも、まだ聞こえている音の方が先に消音さ
れてしまうことになり不自然である。
【0007】このような不自然さを解消するためのトラ
ンケート処理方法が、特開平5−265458号に開示
されている。この方法は、既に離鍵された鍵に割り当て
られている発音チャンネルの中で最もエンベロープ信号
のレベルが小さい発音チャンネルをトランケートするも
のである。このトランケート処理によると、離鍵はされ
ているが、未だエンベロープ信号レベルの比較的大きな
発音チャンネルをトランケートしてしまうことを防止で
きる。
【0008】
【発明が解決しようとする課題】既に離鍵された鍵に割
り当てられている発音チャンネルの中で最もエンベロー
プ信号のレベルが小さい発音チャンネルをトランケート
することにより、最適の発音チャンネルをトランケート
することができる。しかし、離鍵されている発音チャン
ネル数が多くなってくると、エンベロープ信号レベルが
最小の発音チャンネルを検索する時間が長くなる。検索
時間が長くなると、押鍵されてから実際に発音するまで
の時間遅れが生じ、不自然に聞こえる。
【0009】本発明の目的は、音楽的に自然で、かつ効
率的にトランケートすべき発音チャンネルを決定するこ
とができる電子楽器を提供することである。
【0010】
【課題を解決するための手段】本発明の電子楽器は、発
音されるべき楽音の音高を示し、オン状態とオフ状態の
いずれかの状態をとり得るノートコード、及び該ノート
コードに対して発音開始が指示されたとき「ノートオ
ン」となり、発音終了が指示されたとき「ノートオフ」
となるオンオフ種別を含む発音処理要求を発生する演奏
入力手段と、前記ノートコードが動的に割り当てられ、
割り当てられたノートコード及びオンオフ種別に応じ
て、時間的にエンベロープレベルが変化する楽音波形を
生成する複数の発音チャンネルを有する楽音合成手段
と、前記複数の発音チャンネルと、各発音チャンネルに
割り当てられているノートコードとを対応付けて、ノー
トコードがオン状態になった順番及びオフ状態になった
順番が分かるように記憶する発音割当情報記憶手段と、
前記演奏入力手段から発音処理要求があったことを検出
する発音処理要求検出手段と、前記発音処理要求検出手
段が発音処理要求を検出したとき、前記オンオフ種別が
「ノートオン」であり、前記発音チャンネルに空きチャ
ンネルがない場合には、その時点で予め決められている
レベルよりも小さいエンベロープレベルを有する発音チ
ャンネルが検出されるまで、前記発音割当情報記憶手段
を所定の順番で検索し、検出された発音チャンネルの楽
音波形の生成を停止させると共に、発音処理要求のあっ
たノートコードのオンオフ種別が「ノートオン」に対応
する楽音波形を新たに生成させ、前記発音割当情報記憶
手段に、発音処理要求のあったノートコードがオン状態
になった順番が分かるように、検出された発音チャンネ
ルと発音処理要求のあったノートコードとを新たに対応
付けて記憶させ、かつ、前記オンオフ種別が「ノートオ
フ」である場合には、発音処理要求のあったノートコー
ドに割り当てられている発音チャンネルに対してオンオ
フ種別が「ノートオフ」に対応する楽音波形を生成さ
せ、前記発音割当情報記憶手段に、発音処理要求のあっ
たノートコードがオフ状態になったことをオフ状態にな
った順番が分かるように記憶させる制御手段であって、
前記所定の順番は、その時点でオフ状態のノートコー
ド、次にオン状態のノートコードの順番であり、オフ状
態のノートコードの中ではオフ状態になった順番、オン
状態のノートコードの中ではオン状態になった順番であ
る前記制御手段とを有する。
【0011】
【作用】新たな発音処理要求があったときに、その時点
でのエンベロープレベルが所定のレベル以下である発音
チャンネルをトランケートする。この所定のレベルを適
当に決めておくことにより、トランケートされた発音チ
ャンネルが発生していた楽音を消音することによる不自
然さを防止することができる。
【0012】各発音チャンネルのエンベロープレベルを
順番に読み出してエンベロープレベルと所定レベルとを
比較する。エンベロープレベルが所定レベル以下の発音
チャンネルを検出したら、それ以降の発音チャンネルの
エンベロープレベル読み出しを行う必要がない。全ての
発音チャンネルのエンベロープレベルを読み出す必要が
ないため、比較的短時間にトランケートすべき発音チャ
ンネルを検出することができる。
【0013】オフ状態になった順番が古いノートコード
に割り当てられている発音チャンネルほどエンベロープ
レベルが低いと期待される。また、オン状態のノートコ
ードでは、オン状態になった順番が古いキーに割り当て
られている発音チャンネルほどエンベロープレベルが低
いと期待される。発音チャンネルのエンベロープレベル
を読み出す順番を、まずオフ状態になった順番が古い
順、次にオン状態になった順番が古い順とすることによ
り、所定レベル以下のエンベロープレベルを有する発音
チャンネルを検出するまでの時間が短縮されると期待で
きる。
【0014】
【実施例】以下、本発明の一実施例について説明する。
図1は、本発明の一実施例による電子楽器の全体構成を
示すブロック図である。データバス18に複数のモジュ
ールが接続され、データバス18を介してモジュール間
でデータをやりとりすることにより、演奏が行われる。
演奏入力部11は複数の鍵盤を有し、鍵盤の押鍵、離鍵
を検出し、音高情報、押鍵離鍵の速さ情報等をデータバ
ス18に供給する。MIDIインタフェース14には、
MIDI端子が設けられており、MIDI端子から入力
されるMIDIメッセージを受信してデータバス18に
供給する。
【0015】表示盤12は、選択されている音色情報等
を表示する。パネルスイッチ13は、音色等の選択を行
うためのものであり、音色情報等をデータバス18に供
給する。CPU15は、ROM16に記憶されたプログ
ラムに従って処理を実行する。RAM17は、処理に必
要な一時データを記憶するためのメモリである。
【0016】音声合成回路19は、CPU15からの発
音指示に基づいて楽音合成を行う複数の発音チャンネル
を有し、複数の発音チャンネルで合成された楽音信号を
サウンドシステム20に出力する。サウンドシステム2
0は、楽音信号合成回路19から出力された楽音信号を
D/A変換し増幅して楽音として発音させる。
【0017】次に、図1に示す構成の電子楽器のCPU
15の動作について、図2〜図6を参照して説明する。
図2は、CPU15のメインルーチンのフローチャート
を示す。電子楽器の電源が投入されると、CPU15
は、ステップSA1を実行する。ステップSA1では、
装置各部の初期設定を行う。例えば、各モジュール内の
レジスタのリセット、各種変数の初期設定等を行う。初
期設定が終了すると、CPU15はステップSA2のM
IDI処理、ステップSA3の鍵処理、及びステップS
A4のパネル処理を行う。ステップSA4の処理が終了
すると、ステップSA2に戻り、電源が切断されるまで
ステップSA2〜ステップSA4を繰り返し実行する。
【0018】以下、ステップSA3の鍵処理を説明し、
次にステップSA4のパネル処理、最後にステップSA
2のMIDI処理を説明する。図3は、鍵処理のフロー
チャートを示す。CPU15の処理が図2のステップS
A3に進むと、図3に示す鍵処理ルーチンが起動され
る。鍵処理ルーチンが起動されるとCPU15は、ステ
ップSB1の処理を実行する。ステップSB1では、演
奏入力部11の鍵盤をスキャンして鍵盤の押離鍵状態を
検出する。全ての鍵盤のスキャンが終了するとステップ
SB2へ進む。
【0019】ステップSB2では、ステップSB1で検
出した押離鍵状態から鍵イベントの有無を判断する。例
えば、前周期のスキャン結果が離鍵状態で今周期のスキ
ャン結果が押鍵状態であれば、今周期に押鍵があったこ
とになり、鍵イベントは押鍵があったことを示す「キー
オン」になる。逆に前周期のスキャン結果が押鍵状態で
今周期のスキャン結果が離鍵状態であれば、鍵イベント
は離鍵があったことを示す「キーオフ」になる。また、
全ての鍵について前周期と今周期の状態が同じであれ
ば、鍵イベントは検出されない。
【0020】鍵イベントが検出されない場合には、なに
もせず図2に示すメインルーチンに戻る。鍵イベントを
検出した場合には、ステップSB3の処理に進む。ステ
ップSB3では、全ての鍵イベントに関する発音情報を
RAM17のMIDIバッファに格納する。発音情報
は、例えば押鍵離鍵の別、音高を表すキーコード(K
C)、押離鍵の速さを表すキーベロシティ(KV)等か
らなる。全ての鍵イベント情報をMIDIバッファに格
納すると、図2に示すメインルーチンに戻る。
【0021】上記鍵処理ルーチンの説明では、鍵盤の押
離鍵を検出する場合について説明したが、MIDIイン
タフェース14から演奏入力が行われる場合にも同様の
処理を行う。すなわち、MIDIメッセージの受信が有
った場合には、MIDIメッセージで指定されている発
音情報をMIDIバッファに格納する。
【0022】以下、演奏入力部11及びMIDIインタ
フェース14からの入力を総称してMIDIイベントと
呼ぶ。通常のMIDI規格のチャンネル数は0チャンネ
ルから15チャンネルまでの16チャンネルであり、M
IDI入力端子から入力されるMIDIメッセージにこ
のMIDIチャンネル情報が含まれている。本実施例で
は、内部処理においてこのMIDIチャンネルを拡張
し、16チャンネル以上のチャンネル数を確保してい
る。以下、MIDI入力端子から入力されるメッセージ
中のMIDIチャンネルを外部MIDIチャンネルと呼
び、内部で使用される拡張されたMIDIチャンネルを
単にMIDIチャンネルと呼ぶ。
【0023】鍵盤からの入力とMIDI入力端子からの
入力とを区別するために、それぞれに異なるMIDIチ
ャンネルが割りつけられている。例えば、鍵盤からの入
力情報にMIDIチャンネル0を割りつけ、MIDI入
力端子からの情報には外部MIDIチャンネルに一定値
を加算したMIDIチャンネルを割りつけている。RA
M17のMIDIバッファに格納される発音情報には、
このMIDIチャンネルも含まれている。
【0024】次に、図2に示すステップSA4のパネル
処理について説明する。演奏者が図1のパネルスイッチ
13を操作すると、その操作に応じて曲風やテンポの設
定、あるいはMIDIチャンネルごとの音色の設定等を
行う。曲風、テンポ、音色等はRAM17に記憶され
る。以下に説明するMIDI処理において、これらの音
色情報等が使用される。
【0025】次に、図4〜図6を参照して図2に示すス
テップSA2のMIDI処理について説明する。図4
は、MIDI処理のフローチャートを示す。CPU15
の処理が図2のステップSA2に進むと、図4に示すM
IDI処理が起動される。CPU15は、ステップSC
1でRAM17のMIDIバッファを走査した後、ステ
ップSC2へ進む。
【0026】ステップSC2では、MIDIイベントの
有無を判断する。MIDIイベントが検出されない場合
は、何もせず図2のメインルーチンへ戻る。MIDIイ
ベントが検出された場合は、ステップSC3へ進む。
【0027】ステップSC3では、MIDIイベントが
ノートイベントか否かを判定する。ここで、ノートイベ
ントとは、押離鍵を表すイベントをいう。MIDIイベ
ントがノートイベントのときはステップSC4のノート
イベント処理を実行し、ノートイベント以外のときは、
ステップSC5の各イベントに対応した処理を実行す
る。ステップSC4あるいはSC5の処理が終了する
と、図2のメインルーチンへ戻る。
【0028】次に、図5及び図6を参照してノートイベ
ント処理について説明する。以下の説明では、演奏入力
部11から押離鍵があった場合を説明するが、MIDI
入力端子から押離鍵に対応するMIDIメッセージが入
力された場合も同様の処理である。
【0029】図5は、ノートイベント処理のフローチャ
ートを示す。CPU15の処理が図4のステップSC4
に進むと、図5のノートイベント処理が起動される。ス
テップSD1では、CPU15はRAM17のMIDI
バッファに格納されている発音情報を取り出す。発音情
報には、上述のように「キーオン」、「キーオフ」の区
別を示す鍵イベント、キーコード、キーベロシティ及び
MIDIチャンネル等が含まれている。
【0030】ステップSD2では、鍵イベントが「キー
オン」か否かを判定する。鍵イベントが「キーオン」で
ある場合には、押鍵された鍵に対応する楽音を発音する
ためのステップSD3〜SD12の一連の処理を実行す
る。鍵イベントが「キーオフ」である場合には、ステッ
プSD13〜SD15の一連のキーオフ処理を実行す
る。
【0031】まず、図6(A)を参照しつつ、ステップ
SD13〜SD15の離鍵時の処理を説明する。図6
(A)は、離鍵時のキーアサインテーブルの動きを示
す。ここで、キーアサインテーブルとは、キーコードと
発音チャンネルとの対応関係を示す情報要素を所定の順
番に配列したテーブルをいい、RAM17内に記憶され
ている。図6(A)は、発音チャンネルが0〜7の8個
準備されている場合を示す。図6(A)左側に示すテー
ブルは、離鍵処理前の状態を、右側に示すテーブルは離
鍵処理後の状態を表している。
【0032】離鍵処理前のテーブルの上から5行分は既
に離鍵されている鍵を表す離鍵情報領域であり、下から
3行分は押鍵中の鍵を表す押鍵情報領域である。例え
ば、キーコード36は既に離鍵されており、発音チャン
ネル7に割り当てられている。キーコード42は現在押
鍵中であり、発音チャンネル0に割り当てられている。
なお、離鍵情報領域及び押鍵情報領域に格納されている
情報要素の数は、そのときの押離鍵状態によって変動す
る。
【0033】ステップSD13では、キーアサインテー
ブルを走査してMIDIバッファから取り出したキーコ
ードすなわち今周期に離鍵されたキーコードを検索し、
割り当てられている発音チャンネル番号を得る。例え
ば、離鍵されたキーコードが61であるとすると、図6
(A)の離鍵処理前テーブルから、キーコード61に割
り当てられている発音チャンネル番号5を得る。
【0034】ステップSD14では、離鍵されたキーコ
ードに割り当てられている発音チャンネルに対して「キ
ーオフ」信号を送出する。楽音合成回路19は、「キー
オフ」信号を受信すると該当の発音チャンネルから離鍵
後の楽音信号を発生する。離鍵後の楽音信号の制御情報
は、パネルスイッチ13により指定される音色ごとに予
めROM16に記憶されてる。楽音合成回路19は、こ
の制御情報に基づいて楽音信号を発生する。これによ
り、エンベロープ波形が徐々に減衰するリリース状態に
なる。なお、ROM16に記憶されている制御情報は、
CPU15が読み出して音声合成回路19に転送する。
【0035】ステップSD15では、離鍵された鍵に関
する情報要素をキーアサインテーブルの離鍵情報領域の
最後尾に移動する。離鍵された鍵がキーコード61であ
る場合、図6(A)に示すように、キーコード61に関
する情報要素を離鍵情報領域の最後尾に移動する。この
ようにして、離鍵情報領域にはキーコードに関する情報
要素が上から離鍵の古い順番に並ぶ。
【0036】次に、図6(B)を参照しつつ、ステップ
SD3〜SD12の押鍵処理を説明する。図6(B)左
側に示すテーブルは、押鍵処理前の状態を、右側に示す
テーブルは押鍵処理後の状態を示す。
【0037】ステップSD3で変数iに0を代入し、ス
テップSD4〜SD6の一連の処理を実行する。ステッ
プSD7で変数iに1を加えてステップSD8で変数i
と発音チャンネル数とを比較し、等しくない場合にはス
テップSD4に戻る。すなわち、ステップSD4〜SD
6の一連の処理を発音チャンネル数分繰り返し実行す
る。
【0038】ステップSD4では、キーアサインテーブ
ルのi番目(先頭を0番目とする)の情報要素に対応す
る発音チャンネル番号を得る。例えば、iが2であれば
図6(B)の上から2番目の情報要素に対応し、発音チ
ャンネル番号1が得られる。
【0039】ステップSD5では、ステップSD4で得
た発音チャンネルのエンベロープレベルを得る。エンベ
ロープレベルは、楽音合成回路19内の発音チャンネル
ごとに設けられたテンポラリメモリに格納されており、
CPU15はデータバス18を介して楽音合成回路19
からエンベロープレベルを読み込む。
【0040】ステップSD6では、ステップSD5で得
たエンベロープレベルと所定のトランケートレベルとを
比較する。エンベロープレベルがトランケートレベル以
下の場合、ステップSD4〜SD8のループ処理を抜け
てステップSD9に進む。エンベロープレベルがトラン
ケートレベルよりも大きい場合、ステップSD7に進
み、上述のように発音チャンネル数分ステップSD4〜
SD8のループ処理を繰り返す。
【0041】ステップSD9では、ステップSD6でエ
ンベロープレベルがトランケートレベルよりも小さいと
判断された発音チャンネルの発音終了処理を行う。これ
により、楽音信号合成回路19は、該当の発音チャンネ
ルからの楽音信号の発生を停止する。
【0042】ステップSD10では、ステップSD9で
楽音信号の発生を停止した発音チャンネルに新規の発音
情報を送出する。楽音信号合成回路19の該当の発音チ
ャンネルは、CPU15から送出された発音情報に基づ
いて楽音信号を発生する。
【0043】ステップSD11では、キーアサインテー
ブルのi番目の情報要素を削除し、i+1番目以降の情
報要素を1つずつ上に詰める。ステップSD12では、
押鍵された鍵のキーコードにi番目の情報要素に格納さ
れていた発音チャンネルを割当て、キーアサインテーブ
ルの押鍵情報領域の最後尾に登録する。
【0044】図6(B)は、押鍵されたキーコードが4
3、発音チャンネル7のエンベロープレベルがトランケ
ートレベル以下である場合のステップSD11とSD1
2の処理におけるキーアサインテーブルの変化を示す。
まず、押鍵処理前のキーアサインテーブルの離鍵情報領
域の上から順番に、発音チャンネルのエンベロープレベ
ルを得る。発音チャンネル7のエンベロープレベルがト
ランケートレベル以下と仮定したため、キーコード3
6、発音チャンネル7を対応付けている0番目の情報要
素を削除する。
【0045】次に、図6(B)の押鍵処理後のキーアサ
インテーブルに示すように、押鍵されたキーコード43
に発音チャンネル7を割当て、キーアサインテーブルの
押鍵情報領域の最後尾に登録する。これにより、キーア
サインテーブルの押鍵情報領域には、現在押鍵中のキー
コードが押鍵の古い順番に並ぶことになる。
【0046】上記実施例では、キーアサインテーブルを
上から順番に検索して、発音チャンネルのエンベロープ
レベルがトランケートレベル以下のものを検出した時点
で検索が終了する。全ての発音チャンネルについてエン
ベロープレベルを読みだす必要がないため、処理の高速
化が可能になる。また、キーアサインテーブルには最も
古く離鍵された順番、次に最も古く押鍵された順番に情
報要素が配列されているため、エンベロープレベルが低
いと思われる発音チャンネルから優先的に検索される。
これにより、トランケートレベル以下の発音チャンネル
をより早く見つけ出すことができる。
【0047】また、上記実施例では、キーアサインテー
ブルを離鍵情報領域と押鍵情報領域の2領域に分けて、
それぞれ古く押離鍵されたものから順番に配列する場合
を説明したが、さらに、空き発音チャンネル領域を設け
てもよい。空き発音チャンネル領域には、キーコードに
割り当てられていない発音チャンネル番号を記憶してお
く。例えば、自然な減衰によってエンベロープレベルが
0になった発音チャンネルを検出し、この発音チャンネ
ルを空き発音チャンネル領域に登録しておけばよい。新
たな押鍵があったときは、押鍵のあったキーコードに空
き発音チャンネル領域中のいずれかの発音チャンネルを
割り当てればよい。
【0048】トランケートレベルは、音色及び音高によ
らず一定レベルにしてもよいし、音色もしくは音高ごと
に重み付けをしてもよい。トランケートレベルを一定レ
ベルにする場合は、例えば、エンベロープレベルの最大
値を0dBとしたとき、−70dB程度とすればよいで
あろう。また、トランケートレベルに重み付けをするの
は、音量が同じでも音高等によって人間の聴覚に与える
影響が異なることに対応している。例えば、音量が同じ
でも高音は低音よりも目立ったり、あるいは最低音は音
楽的に重要であったりする。トランケートレベルに重み
付けをすることにより、人間の耳に、より自然に聞こえ
るように消音することができる。
【0049】上記実施例では、ノートイベント処理にお
いて現在のエンベロープレベルとトランケートレベルと
を比較する場合を説明したが、この比較処理をリアルタ
イム制御に適用してもよい。ここで、リアルタイム制御
とは、押離鍵のイベント以外のアフタタッチ、ピッチベ
ンドホイル等により楽音にリアルタイムに変化を与える
制御をいう。
【0050】次に、エンベロープレベルとトランケート
レベルとの比較処理をリアルタイム制御に適用した実施
例について説明する。まず、図7を参照して楽音合成回
路19の構成について説明する。
【0051】図7(A)は、楽音合成回路19のブロッ
ク図を示す。発音情報供給回路31、エンベロープデー
タRAM35及びフィルタエンベロープデータRAM3
8がインタフェース回路30に接続されている。インタ
フェース回路30は図1に示すデータバス18に接続さ
れ、CPU15とのデータの送受信を行う。
【0052】発音情報供給回路31にインタフェース回
路30を介してCPU15から発音情報が入力される。
発音情報供給回路31は、楽音合成回路19内の各ブロ
ックに発音情報を供給する。
【0053】波形合成回路32は、発音情報供給回路3
1から供給された発音情報に基づいて該当の音高、音色
の波形を合成する。合成された波形はエンベロープ回路
33に入力される。
【0054】エンベロープ回路33は波形合成回路32
から入力された波形に振幅エンベロープを付与する。付
与すべき振幅エンベロープは、押鍵時にエンベロープデ
ータRAM35に格納される。具体的には、振幅エンベ
ロープの初期値、目標値及び補間レートが格納される。
【0055】振幅エンベロープ形成回路34は、押鍵時
に初期値を現在値とし、現在値から目標値に向かって指
定された補間レートで補間処理を行い、エンベロープの
現在値を一定周期で更新する。この補間処理により、楽
音のアタック、ディケイ、サステイン、リリース等のエ
ンベロープ波形が生成される。振幅エンベロープの現在
値はエンベロープ回路33に供給され、エンベロープ回
路33はこの現在値に基づいて波形合成回路32から入
力された波形に振幅エンベロープを付与する。振幅エン
ベロープが付与された波形はフィルタ回路36に供給さ
れる。
【0056】フィルタ回路36は、フィルタエンベロー
プ形成回路37から与えられるカットオフ周波数に基づ
いて、エンベロープ回路33から入力された波形をフィ
ルタリングする。フィルタ回路32は例えばディジタル
ローパスフィルタである。
【0057】フィルタエンベロープデータRAM38に
は、押鍵時にカットオフ中心周波数、及びカットオフ周
波数乗算係数の初期値、目標値及び補間レートが格納さ
れる。フィルタエンベロープ形成回路37は、押鍵時に
初期値を現在値とし、現在値から目標値に向かって指定
された補間レートで補間処理を行い、乗算係数の現在値
を一定周期で更新する。さらに、カットオフ中心周波数
に乗算係数の現在値を乗じて現時点のカットオフ周波数
を求め、フィルタ回路36に供給する。
【0058】フィルタ回路36は、フィルタエンベロー
プ形成回路37により指定されたカットオフ周波数に基
づいて、エンベロープ回路33から入力された波形をフ
ィルタリングする。フィルタリングされた波形は図1の
サウンドシステム20に供給される。
【0059】例えば、ピアノの打鍵当初の音はノイズ成
分を多く含んでいるが、時間とともに高周波成分が速く
減衰し最終的には基本周波数成分及び低次の高周波成分
のみが残る。この音を電子的に合成するには、時間とと
もにローパスフィルタのカットオフ周波数を低くすれば
よい。
【0060】図7(B)は、フィルタエンベロープの一
例を示す。横軸は時間を表し、縦軸はカットオフ周波数
の標準値からの差分を表す。図7(B)に折れ線で示す
フィルタエンベロープ波形に対応する目標値と補間レー
トに相当する傾きをグラフ中の表に示している。乗算係
数の初期値は1であり、カットオフ周波数はカットオフ
中心周波数と等しい。当初の目標値は1であり現在値と
等しいため、乗算係数は1を保持する。現在値と目標値
が等しいとき、「傾き」で指定された数値は現在値を保
持する時間と解釈する。
【0061】現在値を保持する時間が経過すると、乗算
係数は目標値2に向かって傾き1で増加する。目標値2
に到達すると、目標値0.5に向かって傾き−1.5で
減少する。以降、この動作を繰り返し、フィルタエンベ
ロープ波形を生成する。「傾き」に「ホールド」が指定
されている場合は、発音終了まで現在値を保持する。こ
のフィルタエンベロープ波形は、音色ごとに設定されて
いる。
【0062】電子楽器の場合には、鍵のアフタタッチ、
ピッチベンドホイール等の制御によってローパスフィル
タのカットオフ周波数を変動させる手法も採られる。従
って、発音後にフィルタエンベロープの波形を変更する
リアルタイム制御を行う必要が生ずる。リアルタイム制
御では、予め設定されているフィルタエンベロープ波形
をリアルタイムに変化させる。
【0063】次に、図8、図9を参照してリアルタイム
制御について説明する。リアルタイム制御パラメータ
は、例えばCPU15に設けられたA/D入力端子に入
力される。例えば、演奏入力部11の全鍵共通のアフタ
タッチセンサが備えられており、アフタタッチセンサの
出力信号がCPU15のA/D入力端子に入力される。
またCPU15に複数のA/D入力端子を準備し、ピッ
チベントホイール等の出力信号を入力してもよい。
【0064】図8は、リアルタイム制御のフローチャー
トを示す。リアルタイム制御は、10ms周期の割り込
みにより起動される。リアルタイム制御が起動される
と、CPU15はステップSE1に進み、A/D入力端
子に入力されている信号を読み出し、リアルタイム制御
パラメータを得る。
【0065】ステップSE2では、変数iに0を代入
し、ステップSE3〜SE7までの一連の処理を実行す
る。ステップSE8で変数iに1を加え、ステップSE
9で変数iと発音チャンネル数とを比較する。変数iが
発音チャンネル数と等しくない場合は、ステップSE3
に戻る。変数iが発音チャンネル数と等しい場合は、リ
アルタイム制御を終了し割り込み前の処理を再開する。
すなわち発音チャンネル数分ステップSE3〜SE7の
処理を繰り返し実行する。
【0066】ステップSE3では、図6に示すキーアサ
インテーブルのi番目の情報要素に対応する発音チャン
ネル番号を得る。ステップSE4では、ステップSE3
で得られた発音チャンネルのエンベロープレベルを得
る。ステップSE5では、ステップSE4で得られたエ
ンベロープレベルと所定のリアルタイム制御対象レベル
とを比較する。ステップSE3〜SE5の処理は、図5
に示すノートイベント処理のステップSD4〜SD6と
同様の処理である。
【0067】エンベロープレベルがリアルタイム制御対
象レベルよりも大きい場合は、ステップSE6に進みフ
ィルタ制御を実行する。エンベロープレベルがリアルタ
イム制御対象レベル以下の場合は、フィルタ制御を行わ
ずステップSE8に進む。すなわち、エンベロープレベ
ルがリアルタイム制御対象レベルよりも大きい楽音信号
を発生している発音チャンネルについてのみフィルタ制
御を行い、その他の発音チャンネルに対してはフィルタ
制御を行わない。フィルタ制御については、後に図9を
参照して詳述する。
【0068】これは、既に音量が減衰し人間の耳に聞こ
えなくなっている楽音に対しては、フィルタ制御しても
その効果が少ないという考えに基づいている。このよう
に、実質的にフィルタ制御する必要のない発音チャンネ
ルに対してフィルタ制御を行わなくすることにより、楽
音の不自然さを失うことなくリアルタイム制御のステッ
プ数を削減することができる。
【0069】ノートイベント処理では、図5のステップ
SD6に示すように、トランケートレベル以下のエンベ
ロープレベルを有する発音チャンネルを見つけた時点で
キーアサインテーブルの検索を終了する。これに対し、
リアルタイム制御では、毎周期ごとにキーアサインテー
ブルを全て検索する。このように、リアルタイム制御で
はキーアサインテーブル検索のステップ数が多くなる
が、以下の理由により許容される範囲である。
【0070】すなわち、押鍵を検出するとその鍵に対応
する楽音を直ちに発音する必要がある。発音が遅れると
不自然さが目立つ。リアルタイム処理の場合は、アフタ
タッチあるいはピッチベンド等に対応する処理であるた
め、応答が少し遅れても不自然さは目立たない。このよ
うに、リアルタイム処理はノートイベント処理ほど実時
間性が厳しくない。このため、リアルタイム制御のステ
ップ数がすこし多くなっても許容される。なお、上記理
由からノートイベント処理実行中は、割り込み禁止にし
ておき、リアルタイム制御よりもノートイベント処理を
優先して実行することが好ましい。
【0071】次に、図9を参照してフィルタ制御につい
て説明する。図9は、図7(A)の楽音合成回路のフィ
ルタ制御フローを示す。CPU15の処理が図8のステ
ップSE6に進むと、図9のフィルタ制御が起動され
る。
【0072】ステップSF1では、処理対象の発音チャ
ンネルのフィルタエンベロープの現在値と目標値を図7
(A)に示すエンベロープデータRAM34から読みだ
す。ステップSF2では、図8のステップSE1でリア
ルタイム制御バッファから読みだした制御パラメータに
基づいて、フィルタエンベロープの現在値と目標値を増
減する。
【0073】ステップSF3では、増減したフィルタエ
ンベロープの現在値と目標値を、エンベロープデータR
AM34に書き込む。エンベロープデータRAM34の
現在値と目標値が書き換えられると、フィルタエンベロ
ープ形成回路33は、新たな現在値から新たな目標値に
向かって所定の補間レートで補間処理を行う。これによ
り、予め設定されているフィルタエンベロープ波形と異
なる波形を生成することができる。フィルタ回路32の
カットオフ周波数が変動する。
【0074】なお、図8、図9では、フィルタエンベロ
ープ波形についてリアルタイム制御する場合を説明した
が、振幅エンベロープ波形をリアルタイム制御してもよ
い。以上実施例に沿って本発明を説明したが、本発明は
これらに制限されるものではない。例えば、種々の変
更、改良、組み合わせ等が可能なことは当業者に自明で
あろう。
【0075】
【発明の効果】以上説明したように、本発明によれば、
比較的少ない処理ステップ数でトランケートすべき発音
チャンネルを決定することができる。人間の耳に聞こえ
ない程度にエンベロープレベルが低くなっている発音チ
ャンネルをトランケートすることができるため、不自然
さを与えることなく消音することが可能になる。
【図面の簡単な説明】
【図1】 本発明の実施例による電子楽器のブロック図
である。
【図2】 本発明の実施例による電子楽器のCPUのメ
インルーチンを示すフローチャートである。
【図3】 鍵処理のフローチャートである。
【図4】 MIDI処理のフローチャートである。
【図5】 ノートイベント処理のフローチャートであ
る。
【図6】 押鍵時及び離鍵時のノートイベント処理にお
けるキーアサインテーブルの変化を示す図である。
【図7】 図1の楽音合成回路のブロック図、及びフィ
ルタエンベロープの乗算係数の変化の一例を示すグラフ
である。
【図8】 リアルタイム制御のフローチャートである。
【図9】 フィルタ制御のフローチャートである。
【図10】 従来例によるトランケート処理を説明する
ための、発音チャンネルごとのエンベロープレベルを示
すグラフである。
【符号の説明】
11 演奏入力部、 12 表示盤、 13 パネルス
イッチ、 14 MIDIインタフェース、 15 C
PU、 16 ROM、 17 RAM、 18バス、
19 楽音合成回路、 20 サウンドシステム、
21 スピーカ、 30 インタフェース回路、 31
発音情報供給回路、 32 波形合成回路、 33
エンベロープ回路、 34 振幅エンベロープ形成回
路、 35振幅エンベロープデータRAM、 36 フ
ィルタ回路、 37 フィルタエンベロープ形成回路、
38 フィルタエンベロープデータRAM

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 発音されるべき楽音の音高を示し、オン
    状態とオフ状態のいずれかの状態をとり得るノートコー
    ド、及び該ノートコードに対して発音開始が指示された
    とき「ノートオン」となり、発音終了が指示されたとき
    「ノートオフ」となるオンオフ種別を含む発音処理要求
    を発生する演奏入力手段と、 前記ノートコードが動的に割り当てられ、割り当てられ
    たノートコード及びオンオフ種別に応じて、時間的にエ
    ンベロープレベルが変化する楽音波形を生成する複数の
    発音チャンネルを有する楽音合成手段と、 前記複数の発音チャンネルと、各発音チャンネルに割り
    当てられているノートコードとを対応付けて、ノートコ
    ードがオン状態になった順番及びオフ状態になった順番
    が分かるように記憶する発音割当情報記憶手段と、 前記演奏入力手段から発音処理要求があったことを検出
    する発音処理要求検出手段と、 前記発音処理要求検出手段が発音処理要求を検出したと
    き、前記オンオフ種別が「ノートオン」であり、前記発
    音チャンネルに空きチャンネルがない場合には、その時
    点で予め決められているレベルよりも小さいエンベロー
    プレベルを有する発音チャンネルが検出されるまで、前
    記発音割当情報記憶手段を所定の順番で検索し、検出さ
    れた発音チャンネルの楽音波形の生成を停止させると共
    に、発音処理要求のあったノートコードのオンオフ種別
    が「ノートオン」に対応する楽音波形を新たに生成さ
    せ、前記発音割当情報記憶手段に、発音処理要求のあっ
    たノートコードがオン状態になった順番が分かるよう
    に、検出された発音チャンネルと発音処理要求のあった
    ノートコードとを新たに対応付けて記憶させ、かつ、前
    記オンオフ種別が「ノートオフ」である場合には、発音
    処理要求のあったノートコードに割り当てられている発
    音チャンネルに対してオンオフ種別が「ノートオフ」に
    対応する楽音波形を生成させ、前記発音割当情報記憶手
    段に、発音処理要求のあったノートコードがオフ状態に
    なったことをオフ状態になった順番が分かるように記憶
    させる制御手段であって、前記所定の順番は、その時点
    でオフ状態のノートコード、次にオン状態のノートコー
    ドの順番であり、オフ状態のノートコードの中ではオフ
    状態になった順番、オン状態のノートコードの中ではオ
    ン状態になった順番である前記制御手段とを有する電子
    楽器。
JP6324456A 1994-12-27 1994-12-27 電子楽器 Expired - Fee Related JP2853588B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6324456A JP2853588B2 (ja) 1994-12-27 1994-12-27 電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6324456A JP2853588B2 (ja) 1994-12-27 1994-12-27 電子楽器

Publications (2)

Publication Number Publication Date
JPH08179767A JPH08179767A (ja) 1996-07-12
JP2853588B2 true JP2853588B2 (ja) 1999-02-03

Family

ID=18166018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6324456A Expired - Fee Related JP2853588B2 (ja) 1994-12-27 1994-12-27 電子楽器

Country Status (1)

Country Link
JP (1) JP2853588B2 (ja)

Also Published As

Publication number Publication date
JPH08179767A (ja) 1996-07-12

Similar Documents

Publication Publication Date Title
JP7331746B2 (ja) 電子鍵盤楽器、楽音発生方法及びプログラム
JP3671545B2 (ja) 電子楽器
JPH09127941A (ja) 電子楽器
JP3214013B2 (ja) 電子楽器
JP3296518B2 (ja) 電子楽器
JP2853588B2 (ja) 電子楽器
JPH05323967A (ja) 楽音発生装置
JP2692672B2 (ja) 楽音信号発生装置
JPH09330079A (ja) 楽音信号発生装置及び楽音信号発生方法
JPH07271372A (ja) 電子楽器
US5403969A (en) Electronic musical instrument of delayed feedback type
JP3530600B2 (ja) 楽音信号の周波数特性制御装置及び周波数特性制御方法
JP2001209382A (ja) 電子楽器の連打処理装置
JP2961867B2 (ja) 楽音信号発生装置
JPH08137470A (ja) 楽音信号の周波数特性制御装置
JP2834347B2 (ja) ステレオ装置及びステレオ方法
JP2570945B2 (ja) 楽音発生装置
JP3090383B2 (ja) 楽音割当装置及び楽音発生装置
JP2953217B2 (ja) 電子楽器
JP3706371B2 (ja) 楽音信号の周波数特性制御装置及び周波数特性制御方法
JPH05108068A (ja) フレーズ情報入出力装置
JP3182098B2 (ja) 電子楽器
JPH056179A (ja) 楽音チヤンネル割当て装置
JP4306138B2 (ja) 楽音発生装置及び楽音発生処理のプログラム
JP3231896B2 (ja) 電子楽器

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981020

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20071120

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20081120

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20081120

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091120

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees