JPH05100671A - 電子楽器 - Google Patents

電子楽器

Info

Publication number
JPH05100671A
JPH05100671A JP3220559A JP22055991A JPH05100671A JP H05100671 A JPH05100671 A JP H05100671A JP 3220559 A JP3220559 A JP 3220559A JP 22055991 A JP22055991 A JP 22055991A JP H05100671 A JPH05100671 A JP H05100671A
Authority
JP
Japan
Prior art keywords
sound
sounding
register
channel
key
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.)
Granted
Application number
JP3220559A
Other languages
English (en)
Other versions
JP2500489B2 (ja
Inventor
Masahiko Hasebe
長谷部  雅彦
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 JP3220559A priority Critical patent/JP2500489B2/ja
Priority to US07/937,350 priority patent/US5286910A/en
Priority to CN92110196A priority patent/CN1028683C/zh
Publication of JPH05100671A publication Critical patent/JPH05100671A/ja
Application granted granted Critical
Publication of JP2500489B2 publication Critical patent/JP2500489B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • G10H1/185Channel-assigning means for polyphonic instruments associated with key multiplexing
    • G10H1/186Microprocessor-controlled keyboard and assigning means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S84/00Music
    • Y10S84/02Preference networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】 音楽的な不自然さを生じさせずに、手動演奏
音と自動伴奏音とを各発音チャンネルに割り当てる。 【構成】 楽音合成回路10内の各発音チャンネルが全
て発音中であるときに手動演奏によって新たな楽音が入
力された場合は、前記各発音チャンネルのうち発生音の
エンベロープが最小のもの検出し、検出された発音チャ
ンネルに演奏によって入力された楽音を割り当て、自動
伴奏による新たな発音要求があった場合は、例えば、自
動伴奏の発音を行っている発音チャンネルのうちキーオ
フが指示されているとともに発生音のエンベロープが最
小のものを検出し、検出された発音チャンネルに自動伴
奏による新たな発音要求にかかる楽音を割り当てる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数の発音チャンネ
ルを有するとともに、自動伴奏機能を有する電子楽器に
関する。
【0002】
【従来の技術】自動伴奏機能を有する電子楽器が種々開
発されている。この種の電子楽器は、複数音を同時発音
するために、複数の発音チャンネルを有しており、自動
伴奏音と手動の演奏音とを種々の方法によって各発音チ
ャンネルに割り当てるようにしている。ところで、従来
の電子楽器の中には、手動演奏用と自動伴奏用とで各々
専用の発音チャンネルを予め設定し、その中で別々に発
音チャンネルを割り当てるものがあった。この場合、自
動伴奏機能を全く使わないときでも、それらの発音チャ
ンネルを手動演奏に割り当てることができず、発音チャ
ンネルの使用効率が悪いという問題があった。
【0003】そこで、発音チャンネルを有効に利用する
ために、自動伴奏用と手動演奏用の発音チャンネルを、
共通の発音チャンネル群より任意に動的に割り当てるも
のが開発されている。ただし、手動演奏と自動演奏の発
音チャンネル数のバランスを保つために、どちらかの最
大占有数を制限したり、それぞれの系列に優先順位を設
けたりしていた。
【0004】
【発明が解決しようとする課題】ところで、後者の電子
楽器においては、どちらかの発音数が瞬間的に極端に多
くなった場合などは、発音チャンネルへの割当が対応し
切れなくなったり、音楽的に不自然な割当を行ってしま
うという問題が生じた。この発明は、上述した事情に鑑
みてなされたもので、発音チャンネルを有効に使用する
ことができるとともに、手動演奏音と自動伴奏音の各音
数の変更に対して柔軟に対処することができ、しかも、
発音チャンネルの割当が音楽的に不自然になることがな
い電子楽器を提供することを目的としている。
【0005】
【課題を解決するための手段】請求項1に記載の発明
は、上記課題を解決するために、自動伴奏手段の発音要
求による楽音および演奏者の手動演奏によって入力され
る楽音を複数の発音チャンネルのうちの空いているもの
に順次割り当てて発音を行う電子楽器において、前記各
発音チャンネルが全て発音中であるときに前記手動演奏
によって新たな楽音が入力された場合は、前記各発音チ
ャンネルのうち発生音のエンベロープが最小のものを検
出し、検出された発音チャンネルに演奏によって入力さ
れた楽音を割り当てる第1の割当手段と、前記各発音チ
ャンネルが全て発音中であるときに前記自動伴奏手段に
よって新たな発音要求があった場合は、自動伴奏の発音
を行っている発音チャンネルのうちキーオフが指示され
ているとともに発生音のエンベロープが最小のものを検
出し、検出された発音チャンネルに前記自動伴奏手段の
新たな発音要求にかかる楽音を割り当てる第2の割当手
段とを具備することを特徴とする。
【0006】また、請求項2に記載の発明にあっては、
前記各発音チャンネルが全て発音中であるときに前記自
動伴奏手段によって新たな発音要求があった場合は、手
動演奏の発音を行っている発音チャンネルのうち、キー
オフが指示されていてるとともにサステイン状態の発音
を行っているものを検出し、検出された発音チャンネル
に前記自動伴奏手段の新たな発音要求にかかる楽音を割
り当てる第3の割当手段を前記第2の割当手段に代えて
具備することを特徴とする。
【0007】請求項3に記載の発明にあっては、自動伴
奏手段の発音要求による楽音および演奏者の手動演奏に
よって入力される楽音を複数の発音チャンネルのうちの
空いているものに順次割り当てて発音を行う電子楽器に
おいて、前記各発音チャンネルが全て発音中であるとき
に前記手動演奏によって新たな楽音が入力された場合
は、前記各発音チャンネルのうち発生音のエンベロープ
が最小のもの検出し、検出された発音チャンネルに演奏
によって入力された楽音を割り当てる第1の割当手段
と、前記各発音チャンネルが全て発音中であるときに前
記自動伴奏手段によって新たな発音要求があった場合
は、自動伴奏の発音を行っている発音チャンネルのうち
キーオフが指示されているとともに発生音のエンベロー
プが最小のものを検出し、検出された発音チャンネルに
前記自動伴奏手段の新たな発音要求にかかる楽音を割り
当てる第2の割当手段と、前記第2の割当手段が割り当
てるべき発音チャンネルを検出し得ない場合は、手動演
奏の発音を行っている発音チャンネルのうちキーオフが
指示されているとともにサステイン状態の発音を行って
いるものを検出し、検出された発音チャンネルに前記自
動伴奏手段の新たな発音要求にかかる楽音を割り当てる
第3の割当手段とを有し、前記第3の割当手段が割り当
てるべき発音チャンネルを検出し得ない場合は前記自動
伴奏手段の新たな発音要求にかかる楽音の発音を無視す
ることを特徴とする。
【0008】
【作用】手動演奏音は、最小エンベロープで発音中の発
音チャンネルに第1の割当手段によって割り当てられ
る。また、自動演奏音は、キーオフ指示された自動演奏
音を最小エンベロープで発音している発音チャンネルに
第2の割当手段によって割り当てられる。さらに、自動
演奏音は、キーオフ指示された手動演奏音をサステイン
によって持続発音している発音チャンネルに第3の割当
手段によって割り当てられる。
【0009】
【実施例】以下、図面を参照してこの発明の実施例につ
いて説明する。
【0010】A:実施例の構成 図1は、この発明の一実施例の全体構成を示すブロック
図である。図において、1は装置各部を制御するCPU
であり、ROM2に記憶されたプログラムに基づいて動
作する。ROM2には、自動伴奏において用いられる自
動伴奏パターンが記憶されている。この自動伴奏パター
ンは、選択されたリズムなどの種類に応じて種々用意さ
れており、各伴奏パターンは複数のトラックにより構成
されている。これら各トラックは、伴奏を行う種々の楽
器音の演奏パターンによって構成されている。3はRA
Mであり、各種データが一時記憶されるようになってい
る。
【0011】次に、4は鍵盤であり、鍵盤インターフェ
イス5によってその状態が検出される。すなわち、キー
の音高を示すキーコード、キーが押される強さ(速さ)
を示すキーベロシティなどが検出される。これらの状態
を示す信号は、CPU1に供給されて処理される。6は
操作パネルであり、音色設定、テンポ設定、モード設定
等の種々の操作を行うためのスイッチが設けられてお
り、この操作パネル内の各スイッチの出力信号はパネル
インターフェイス7を介してCPU1に供給される。
【0012】8は、サステインペダルやボリュームペダ
ル等の操作子を有している操作子部であり、各操作子の
出力信号は操作子インターフェイス9を介してCPU1
に供給される。10はCPU1の制御の下に楽音信号を
合成する楽音合成回路であり、30個の発音チャンネル
を有している。したがって、この実施例においては、3
0音の同時発音が可能である。この楽音合成回路10で
作成された楽音信号は、サウンドシステム11で増幅さ
れた後にスピーカ12から発音される。
【0013】B:実施例の動作 次に、上述した構成によるこの実施例の動作について説
明する。 (1)全体動作 始めに、全体的な動作について説明する。まず、図2に
示すステップSP1においては、各種レジスタについて
初期値設定もしくはリセットを行う。次に、ステップS
P2に移り、鍵処理を行う。この処理は鍵が押された
か、もしくは離された場合になされる処理である。鍵処
理が終了すると、図2に示すステップSP3に進み、自
動伴奏処理(ABC処理)を行う。自動伴奏処理とは、
演奏者による手動演奏に加えて自動的にコード(和音)
およびベース音を付加する処理である。この処理の後
は、ステップSP4に進みパネル処理を行う。パネル処
理は、パネル操作子6(図1参照)が操作された場合
に、これに対応する各種動作を行う処理であり、例え
ば、自動伴奏の開始や終了を指示するスイッチが押され
た場合には、自動伴奏モードのオンまたはオフを指示す
る処理を行う。パネル処理の後には、図2に示すステッ
プSP5に進み、操作子処理を行う。操作子処理は、操
作ペダル(サステインペダル)が操作された場合に、こ
れに対応して所定のレジスタの内容などを書き換える処
理である。この操作子処理の後には、ステップSP6に
進み、終了チャンネル検出処理を行う。この処理は、3
0個の発音チャンネルのうち発音が終了したチャンネル
を検出する処理である。
【0014】以上のステップSP2〜ステップSP6を
図2に示すように循環して行うようになっている。次
に、各ステップの内容について説明する。
【0015】鍵処理動作 鍵処理動作は、図3に示す各ステップから構成されてい
る。始めに、鍵盤インターフェイス5によって鍵盤4の
各鍵をスキャンし(ステップSPa1)、鍵イベントが
あったか否かを判定する(ステップSPa2)。鍵イベ
ントとは、鍵の状態に変化があったことをいい、オフか
らオン、およびオンからオフの2種類がある。ステップ
SPa2の判定が「NO」のときは、何も処理せずメイ
ンルーチン(図2参照)へ戻る。一方、ステップSPa
2の判定が「YES」のときは、ステップSPa3に進
み、キーイベントレジスタKEVにキーオンもしくはキ
ーオフを示すデータが書き込まれる。また、キーコード
レジスタKCにキーコードが書き込まれ、キーベロシテ
ィレジスタKVに押鍵速度が書き込まれる。そして、キ
ーイベントレジスタKEVの内容が、キーオンか否かが
判定され、「YES」であれば、キーオン処理(ステッ
プSPa5)を行い、「NO」であればキーオフ処理
(ステップSPa6)を行ってメインルーチンへ戻る。
なお、キーオン処理およびキーオフ処理については、後
に詳述する。
【0016】パネル処理 この処理は、図4に示すステップによって構成され、ま
ず、ステップSPb1においてパネルスキャンが行われ
る。これにより、各操作パネル6内の各スイッチの状態
が検出される。そして、パネルイベントの有無、すなわ
ち、各スイッチについての状態の変化の有無が判定され
(ステップSPb2)、この判定が「NO」の場合は、
何もせずにメインルーチンへリターンする。ステップS
Pb2の判定が「YES」の場合は、押されたスイッチ
の番号がレジスタSWに書き込まれるとともに、レジス
タSWEVにイベントの種類、すなわち、オンかオフか
を示すデータが書き込まれる(ステップSPb3)。次
に、ステップSPb4に進み、レジスタSW,SWEV
の内容に応じたサブルーチンはどれかを所定のテーブル
を参照して探す(ステップSPb4)。そして、対応サ
ブルーチンが有ったか否かが判定され(ステップSPb
5)、無ければメインルーチンへリターンする。これ
は、スイッチイベントによってはサブルーチンが不要な
ものもあるためである。
【0017】一方、対応サブルーチンがある場合は、ス
テップSPb6に進んでそのルーチンを実行する。ここ
で、対応サブルーチンの一例として、自動伴奏のスター
トスイッチおよびストップスイッチが押された場合のサ
ブルーチンを図5および図6に各々示す。
【0018】図5においては、ステップSPc1におい
て、フラグABC・RUNが”0”か否かが判断され
る。フラグABC・RUNは、自動伴奏モードであるか
否かを識別するためのフラグであり、自動伴奏モードで
ある場合に”1”が立てられる。ステップSPc1の判
定が「NO」の場合は、すでに自動伴奏モードが設定さ
れている場合なので、新たな処理を行わず直ちにメイン
ルーチン(図2参照)にリターンする。一方、ステップ
SPc1の判定が「YES」の場合は、フラグABC・
RUNをセットし(ステップSPc2)、自動伴奏パタ
ーンの読出ポインタを自動伴奏のスタイル(これは操作
パネルのスイッチによって選択される)に応じてセット
する(ステップSPc3)。すなわち、自動伴奏のパタ
ーンは、前述したようにROM2内に記憶されているの
で、このステップSPc3においては、各パターンが記
憶されている先頭アドレスを読出ポインタにセットす
る。次に、ステップSPc4に進み、自動伴奏パターン
の各トラックの音色を、スタイルに応じて設定する。こ
の場合、レジスタABCTC[0]〜[4]が各トラッ
クの音色を記憶するようになっており、このため、これ
らのレジスタに音色を指示するコードを書き込む。ステ
ップSPc4の処理の後はメインルーチンにリターンす
る。
【0019】一方、自動伴奏ストップスイッチが押され
ると、図6に示すフローチャートが起動され、ステップ
SPd1でフラグABC・RUNが1か否か判断され
る。この判定が「NO」の場合は、すでに自動伴奏モー
ドが解除されている場合なので、何も処理せずメインル
ーチンへリターンする。ステップSPd1の判定が「Y
ES」の場合は、フラグABC・RUNをクリアし、レ
ジスタiをリセットする(ステップSPd2,SPd
3)。そして、ステップSPd4に進んで、レジスタC
TYPE[i]の内容が”1”か否かが判定される。レ
ジスタCTYPE[i]は、発音チャンネルに対応して
i=0からi=29まで設けられており、内容が”0”
のときマニュアル(手動演奏)を示し、”1”のとき自
動伴奏を示すようになっている。ステップSPd4の判
定が「NO」の場合は、ステップSPd7に進んでレジ
スタiの値をインクリメントし、ステップSPd8を経
て再びステップSPd4に戻る。一方、ステップSPd
4の判定が「YES」の場合は、レジスタCST[i]
に値3を書き込む。レジスタCSTは、アサインチェン
ネル毎のチャンネルの状態を指示すもので、値3はキー
オフを意味する。すなわち、あるチャンネルが自動伴奏
音の発音に割り当てられている場合には、そのチャンネ
ルに対しキーオフを指示する。そして、ステップSPd
6に進み、楽音合成回路10内の対応する発音チャンネ
ルに対し、キーオフ信号KOFPを出力する。
【0020】この処理の後は、ステップSPd8を経て
ステップSPd4に戻る。以上の処理をステップSPd
8の判定が「YES」となるまで、すなわち、レジスタ
iの値が「30」になるまで繰り返す。これにより、発
音チャンネル番号0〜29の全てについて処理がなさ
れ、自動伴奏音の発音に割り当てられいた発音チャンネ
ルに対してキーオフ信号KOFPが出力される。これに
より、これらの発音チャンネルの発音が停止され、自動
伴奏が終了する。
【0021】自動伴奏処理 自動伴奏処理は、図7に示すステップから構成されてお
り、まず、ステップSPe1において、フラグABC・
RUNが”1”か否かが判断され、「NO」であれば自
動伴奏モードが指定されていない場合であるので、直ち
にメインルーチンにリターンする。一方、「YES」で
あれば、キーオンバッファKONBから和音のルートR
TとタイプTPを得る。キーオンバッファKONBは、
演奏者によってキーオンされた鍵のキーコードが格納さ
れているレジスタであり、このレジスタ内のキーコード
から和音タイプTPと根音RT(ルート)とが検出され
る。次に、自動伴奏のトラック番号を指示するためのレ
ジスタTRを「0」にし(ステップSPe3)、カウン
タABCC[TR]の内容が0か否かを判定する(ステ
ップSPe4)。カウンタABCC[TR]は、自動伴
奏の各トラックに対して次のイベントまでのカウントダ
ウンを行うカウンタである。この判定が「NO」の場合
は、ステップSPe5においてカウンタABCC[T
R]の値を1デクリメントし、さらに、ステップSPe
6においてレジスタTRの値を1インクリメントする。
そして、ステップSPe7を介してステップSPe4の
処理に戻る。
【0022】一方、ステップSPe4の判定が「YE
S」の場合は、ステップSPe8に進み、自動伴奏パタ
ーンのTR番目のトラックからイベントを読み出す。す
なわち、カウンタABCC[TR]の値が0になったと
きにROM2からデータの読み出しを行い、0以外のと
きはカウンタABCC[TR]の内容を1デクリメント
する。このような処理を行うのは以下の理由による。す
なわち、自動伴奏パターンの各音は、ノートオンイベン
ト(発音の開始を指示するイベント)とノートオフイベ
ント(発音の停止を指示するイベント)の対によって記
憶され、また、あるイベントから次のイベントまでの時
間を示すデータが各イベントの間に記憶されている。こ
の時間を示すデータがカウンタABCC[TR]に取り
込まれるようになっており(後述するステップSPe1
6)、カウンタ値が0になった時点で次のイベントを読
み出すようにしている。
【0023】さて、ステップSPe8で読み出されたイ
ベントがノートオンイベントであった場合は、ステップ
SPe9を介してSPe10に進み、レジスタNCにノ
ートコード(音高を指示するコード)を書き込み、レジ
スタNVにノートベロシティ(音の強さを示すデータ)
を書き込む。そして、和音のタイプTPとルートRTと
に応じてレジスタNC内のノートコードを変換する。こ
れはROM2に記憶されている自動伴奏パターンは、予
め決められた基準となる根音よび基準となるコードタイ
プに基づいて作成されているため、これを実際の演奏の
根音とコードタイプに合わせるための処理である。この
処理の後は、ステップSPe12においてノートオン処
理を行い、ステップSPe6、SPe7を介してステッ
プSPe4に戻る。
【0024】また、ステップSPe8でノートオフイベ
ントが読み出された場合は、ステップSPe9、SPe
13を介してステップSPe14に進み、レジスタNC
にそのノートコードを書き込んで、ノートオフ処理(ス
テップSPe15)を行う。ノートオフ処理が終了する
と、ステップSPe6、SPe7を介してステップSP
e4に戻る。ステップSPe8において読み出したデー
タがノートオンイベントでもノートオフイベントでもな
い場合は、これはイベントの間隔を示すデータであるの
で、ステップSPe9、SPe13を介してステップS
Pe16に進み、読み出したデータをカウンタABCC
[TR]に書き込む。その後は、ステップSPe6,S
Pe7を介してステップSPe4に進む。
【0025】以上の処理をTR=0〜4について、すな
わち、伴奏パターンのトラック番号0〜4について行
い、全てのトラックについて処理が終了するとステップ
SPe7の判定が「YES」となってメインルーチンに
リターンする。
【0026】操作子処理 操作子処理は、図8に示すステップより構成されてお
り、まず、ステップSPf1において操作子の状況がス
キャンされる。なお、以下の説明においては、簡単のた
めに、操作子はサステインを指示するサステインペダル
だけであるとする。次に、ステップSPf2において、
操作子イベントがあったか否かが判定され、「NO」で
あれば処理の必要がないためメインルーチンにリターン
する。ステップSPf2の判定が「YES」の場合は、
レジスタPEVにサステインペダルのオンまたはオフを
示すデータPONまたはPOFFを書き込む(ステップ
SPf3)。そして、ステップSPf4においては、レ
ジスタPEVに書き込まれているデータがPONか否か
が判定され、「YES」であれば、ペダルオンフラグP
ONFに1を立ててリターンする(ステップSPf
5)。一方、ステップSPf4の判定が「NO」の場合
は、ステップSPf6に進み、ペダルオフ処理を行う。
【0027】ペダルオフ処理は、図9に示すステップか
ら構成されており、まず、ステップSPg1においてペ
ダルオンフラグPONFをクリアし、次いで、レジスタ
iを0にする(ステップSPg2)。そして、レジスタ
CTYPE[i]の値が0か否かを判定し、1(自動伴
演奏)であればステップSPg7に進んでレジスタiの
値を1インクリメントし、ステップSPg8を介して再
びステップSPg3に戻る。ステップSPg3の判定が
「YES」の場合は、レジスタCST[i]の値が2で
あるか否かが判定される。レジスタCST[i]の値が
2の場合には、発音チャンネルのi番目のチャンネルの
音が、キーオフが指示されているがサステイン期間中で
あるため音が持続していることを示している。この判定
が「NO」の場合にはステップSPg7、SPg8を介
してステップSPg3に戻る。一方、ステップSPg4
の判定が「YES」の場合は、ステップSPg5に移
り、レジスタCST[i]の内容を「3」にする。次
に、楽音合成回路10のi番目の発音チャンネルに対し
てキーオフ信号KOFPを出力し、当該楽音を停止させ
る。この処理の後はステップSPg7,SPg8を介し
てステップSPg3に戻る。以上の処理を全ての発音チ
ャンネル、すなわち、i=0〜29について行い、i=
30になった時点でステップSPg8の判定が「YE
S」となってリターンする。以上の処理により、サステ
インペダルがオフされた場合は、サステイン期間にあっ
て継続していた音の発音が停止される。
【0028】終了チャンネル検出処理 図10にこの処理を示す。ステップSPh1ではレジス
タiの値を0にし、レジスタMINにデータIFFFH
を書き込む(ステップSPh2)。レジスタMINは、
発音中の音でエンベロープ値の最も小さいものを探すた
めの比較値を記憶するレジスタである。次に、ステップ
SPh3に進み、レジスタENV[i]に楽音合成回路
10のi番目の発音チャンネルのエンベロープ値を書き
込む。エンベロープ値は、アタック部が過ぎると一般に
徐々に小さくなっていくものであり、ステップSPh3
においては、現時点のエンベロープ値が書き込まれる。
【0029】次に、ステップSPh4に進み、レジスタ
ENV[i]内のエンベロープ値が所定の小さな値TH
より小さいか否かが判定される。値THは、消音とみな
せる程度の小さなエンベロープ値に対応して設定されて
おり、このステップSPh4の判定が「YES」となる
と、消音とみなしてステップSPh5〜SPh8の処理
を行う。
【0030】ステップSPh5においては、レジスタC
ST[i]の内容を0にして空きチャンネルであること
を示し、チャンネル番号を一時記憶するレジスタACH
に現時点のiの値を書き込む(ステップSPh6)。次
に、アサインチャンネルバッファ開放処理を行う。この
処理は図11に示すようになっており、ステップSPi
1においてアサインバッファASNB[ASN・WP]
にレジスタACHの内容を書き込む。ここで、ASN・
WPはアサインバッファ書き込みポインタであり、アサ
インバッファの書き込むべき位置を指示する。アサイン
バッファASNB[ASN・WP]は、アサインバッフ
ァASNB内のポインタで指示された記憶エリアを意味
する。また、アサインバッファASNBは、発音要求が
生じたときに、直ちに空きチャンネルを割り当てられる
ように、リングバッファとなっている。次に、ステップ
SPi2に進むと、ポインタASN・WPの値に1を加
え、その加算結果を30で除した場合の余りをポインタ
ASN・WPに書き込む。この演算によって、ポインタ
ASN・WPの値がアサイン・バッファASNBの次の
書き込み位置を示す。
【0031】この処理の後は、図10に示すステップS
Ph8に進み、レジスタASCNの値を1デクリメント
する。レジスタASCNは、現時点において割り当てら
れているチャンネルの数が記憶されるレジスタであり、
上述の処理によって1つのチャンネルが空きチャンネル
として扱われるため、その値を減じるようにしている。
【0032】一方、ステップSPh4において、「N
O」と判定された場合は、ステップSPh9に移り、レ
ジスタENV[i]の値がレジスタMINの値より小さ
いか否が判定される。この判定が「NO」の場合は、ス
テップSPh12においてレジスタiの値を1インクリ
メントし、ステップSPh13を介して再びステップS
Ph3に進む。一方、ステップSPh8の判定が「YE
S」の場合は、レジスタMINにレジスタENV[i]
の内容を書き込む(ステップSPh10)。これによ
り、レジスタMINの値がより小さな値に書き換えられ
る。そして、ステップSPh11に進んで、レジスタE
MCにレジスタiの値を記憶させる。ステップSPh1
1の処理の後は、ステップSPh12、SPh13を介
してステップSPh3に戻る。
【0033】以上の処理をi=0〜29まで行い、iの
値が30になるとステップSPh13の判定が「YE
S」となってメインルーチンへリターンする。上述のサ
ブルーチンにおいては、消音とみなせるチャンネルがあ
る場合には、ステップSPh5〜SPh8の処理によ
り、そのチャンネルの発音が停止されるとともに、空き
チャンネルとして記憶される。この場合には、エンベロ
ープの最小値を記憶するレジスタMINの値は0にな
る。一方、全てのチャンネルが発音中の場合には、レジ
スタMINには最も小さいエンベロープの値が記憶さ
れ、また、レジスタEMCには、エンベロープが最も小
さい発音チャンネルの番号が記憶される。
【0034】(2)鍵処理の詳細 次に、件処理の詳細な動作について説明する。
【0035】キーオン処理 キーオン処理は、図12に示すステップから構成されて
おり、まず、ステップSPj1において、レジスタKO
NCの値が16か否かが判定される。レジスタKONC
は、現在キーオンされているチャンネルの数を示すレジ
スタである。この実施例においては、マニュアル演奏に
おける同時発音の最大数を16に設定している。ところ
で、演奏者の10本指では最大10音までしか押さえる
ことができないが、サステインペダルをオンさせた場合
は、サステイン効果によって音が持続するので、同時発
音数は10以上となる場合がある。ただし、多くの発音
チャンネルを手動演奏が占めてしまうと自動伴奏に支障
が生じるので、手動演奏の最大発音数を16に設定して
いる。したがって、ステップSPj1の判定が「YE
S」の場合は、そのキーオンを受け付けることなくリタ
ーンする。
【0036】一方、ステップSPj1で「NO」と判定
された場合は、ステップSPj2に移り、キーオンバッ
ファ割当処理を行う。この処理は、図13に示すステッ
プから構成されている。図13のステップSPk1にお
いては、レジスタiがクリアされ、ステップSPk2に
おいてキーオンバッファKOKC[i]の値が0か否か
が判定される。キーオンバッファKOKC[i](i=
0〜15)の各々には、キーオンに対応するものにはそ
のキーコードが書き込まれ、それ以外のものには0が書
き込まれるようになっている。そして、ステップSPk
2の判定が「NO」の場合は、ステップSPk3に進ん
でレジスタiの値を1インクリメントし、ステップSP
k4を介して再びステップSPk2の判定を行う。以
後、ステップSPk2において「YES」と判定される
まで、上記ループを繰り返し、i=15に至っても「N
O」と判定された場合は、ステップSPk3でiの値が
16になり、これにより、ステップSPk4の判定が
「YES」となってステップSPk5に進む。ステップ
SPk5においては、フラグFINDを0にしてリター
ンする。
【0037】一方、i=15に至るまでにステップSP
k2の判定が「YES」になると、ステップSPk6に
進んで、キーオンバッファKOKC[i]に押鍵された
鍵のキーコードKCを格納する。そして、レジスタSC
Hにレジスタiの値を代入し、フラグFINDを1にし
てリターンする(ステップSPk7、SPk8)。
【0038】以上のキーオンバッファ割当処理が終了す
ると、図12に示すステップSPj3に進み、レジスタ
KONCの値を1インクリメントする。そして、レジス
タASCNの値が30か否かが判断され、「NO」であ
ればステップSPj8のアサインチャンネルバッファ割
当処理を行い、発音チャンネルを割り当てる。これは、
レジスタASCNは音源に割り当てられている発音数を
示すレジスタであり、その内容が30未満である場合に
は、いずれかのチャンネルに割当が可能だからである。
【0039】一方、ステップSPj4の判定が「YE
S」の場合には、まず、ステップSPj5に進んで、レ
ジスタTYPEの値を0にした後、ステップSPj6の
トランケート処理を行う。レジスタTYPEは、前述し
たレジスタCTYPEと同様に、値0のときにマニュア
ル演奏を示し、値1のときに自動伴奏を示す。
【0040】トランケート処理は、図14に示すステッ
プによって構成されている。まず、ステップSPm1に
おいて、レジスタTYPEの値が0であるか否か、すな
わち、マニュアル演奏であるか否かが判定される。図1
2に示すステップSPj5を介して図15に示すトラン
ケート処理に達した場合は、レジスタTYPEが0に設
定されるから、ステップSPm1の判定は「YES」と
なる。したがって、ステップSPm2に進み、楽音合成
回路10内の発音チャンネルのうちレジスタEMCで示
される番号の発音チャンネル(エンベロープが最も小さ
い発音チャンネル)にDAMP信号を出力し、この発音
チャンネルの発音を急速に減衰させる。次に、ステップ
SPm3に進み、レジスタACHにレジスタEMC内の
値を転送し、続いて、ステップSPm4のアサインチャ
ンネルバッファ解放処理を行う。この処理は前述した図
11に示す処理であり、ステップSPm2において減衰
させたチャンネルが空きチャンネルとしてアサインバッ
ファASNB[ASN・WP]に書き込まれる。
【0041】この処理の後は図12に示すステップSP
j7にリターンし、レジスタASCNの値を1デクリメ
ントする。次に、ステップSPj8に進み、アサインチ
ャンネルバッファ割当処理を行う。この処理は、図15
に示すステップから構成されている。まず、ステップS
P1においては、アサインバッファASNB[ASN・
RP]に記憶されているチャンネル番号をレジスタAC
Hに書き込む。ASN・RPはアサインバッファ読み出
しポインタであり、アサインバッファの読み出し位置を
指示する。上記のASNB[ASN・RP]は、アサイ
ンバッファASNB内のポインタで指示された記憶エリ
アを意味する。次に、ステップSPn2に進むと、ポイ
ンタASN・RPの値に1を加え、その加算結果を30
で除した場合の余りをポインタASN・RPに書き込
む。この演算によって、ポインタASN・RPの値がア
サイン・バッファASNBの次の読み出し位置を示す。
なお、ポインタの値をインクリメントするのは、アサイ
ンバッファASNBがリングバッファとなっているため
である。
【0042】次に、図12に示すステップSPj9にお
いては、レジスタCHにレジスタACHの値を書き込
む。すなわち、レジスタCHはチャンネル番号を一時記
憶するレジスタであるから、ここでアサインすべきチャ
ンネルの番号が書き込まれる。次に、発音に割り当てら
れたチャンネル数が1増えたため、ステップSPj10
においてレジスタASCNの内容を1インクリメントす
る。そして、ステップSPj11に進み、レジスタCT
YPE[CH](なお、CHの値はステップSPj9にお
いて書き込まれた値である)にマニュアル演奏を示す0
を書き込む。また、レジスタCTR[CH]にダミーデー
タとして0を書き込む。これは、レジスタCTR[CH]
は自動伴奏の際のトラック番号が書き込まれるレジスタ
であるが、マニュアル演奏の場合にはダミーデータを書
き込む必要があるためである。また、ステップSPj1
1においては、レジスタCST[CH]にキーオン中であ
ることを示す1を書き込み、さらに、レジスタCKC
[CH]にキーコードレジスタKCの値(キーオンされた
鍵のキーコード)が書き込まれる。そして、ステップS
Pj12に進み、図1に示す楽音合成回路10のCH番
の発音チャンネルに、キーコードレジスタKC内のキー
コード、レジスタKV内の押鍵速度データ、レジスタT
C内の音色番号データおよびキーオン信号KONPを出
力する。これにより、押鍵された鍵についての発音が開
始される。
【0043】以上のようにして、押鍵された鍵の発音が
なされるが、発音チャンネルがすでに満杯の状態であっ
ても、マニュアル演奏によって新たに押鍵された鍵につ
いては、最もエンベロープの小さな発音チャンネルに割
り当てられて発音がなされる。
【0044】KOFF処理 キーオフ処理は、図16に示すステップによって構成さ
れており、まず、ステップSPq1のキーオンバッファ
解放処理が行われる。この処理は、図17に示すよう
に、まず、ステップSPr1において、レジスタiがク
リアされる。次に、ステップSPr2においてキーオン
バッファKOKC[i]にキーコードレジスタKCの値
(離鍵された鍵のキーコード)が書き込まれているか否
かが判定される。ステップSPr2の判定が「NO」の
場合は、ステップSPr3に進んでレジスタiの値を1
インクリメントし、ステップSPr4を介して再びステ
ップSPr2の判定を行う。以後、ステップSPr2に
おいて「YES」と判定されるまで、上記ループを繰り
返し、i=15に至っても「NO」と判定された場合
は、ステップSPr3でiの値が16になり、これによ
り、ステップSPr4の判定が「YES」となってステ
ップSPr5に進む。ステップSPr5においては、フ
ラグFINDを0にしてリターンする。これは、キーオ
フされたキーコードがキーオンバッファに存在していな
い場合である。このような状態は、キーオンがあっても
受け付けられない場合には、その音のキーコードはキー
オンバッファに割り当てられないために生じる(ステッ
プSPj1、SPj2参照)。
【0045】一方、i=15に至るまでにステップSP
r2の判定が「YES」になると、ステップSPr6に
進んで、キーオンバッファKOKC[i]の値を0に
し、フラグFINDを1にしてリターンする(ステップ
SPr7)。
【0046】以上のキーオンバッファ解放処理が終了す
ると、図16に示すステップSPq2に進み、フラグF
INDの値が1か否かを判定する。この判定が「NO」
の場合は、何も処理せずリターンする。これは、フラグ
FINDが0である場合は、キーオフされたキーコード
がキーオンバッファに存在せず、その鍵についての発音
はもともと行われていないためである。
【0047】ステップSPq2において、「YES」と
判定された場合には、現時点のキーオンチャンネル数を
示すレジスタKONCの値を1デクリメントし(ステッ
プSPq3)、さらに、レジスタTYPEにマニュアル
演奏を示す値0を書き込むとともに、自動伴奏のトラッ
クを示すレジスタTRにダミーデータである0を書き込
む(ステップSPq4)。そして、ステップSPq5の
キーオフチャンネルサーチ処理を行う。
【0048】この処理は、図18に示すステップSPs
1において、レジスタiをクリアし、次いで、ステップ
SPs2において、レジスタCST[i]が0か否か、す
なわち、i番目の発音チャンネルが空きチャンネルか否
かを判定する。この判定が「NO」であれば、ステップ
SPs3に進み、レジスタCKC[i]内のキーコードが
キーコードレジスタKCの内容(キーオフされた鍵のキ
ーコード)に一致しているか否かを判定し、「YES」
であればステップSPs4に進んでレジスタCTR[i]
の内容がレジスタTRに一致しているか否かが判定され
る。レジスタTRの内容は、ステップSPq4において
マニュアル演奏を示すダミーデータ0が書き込まれてい
るから、ステップSPs4の判定はマニュアル演奏であ
るか否かを判定する処理となる。この判定が「YES」
であれば、ステップSPs5に進み、レジスタCTYP
E[i]の値がレジスタTYPEの値に一致するか否かが
判定される。このレジスタTYPEは、ステップSPq
4において0が書き込まれているから、ステップSPs
5の判定は上記と同様にマニュアル演奏であるか否かを
判定する処理となる。この判定が「YES」の場合は、
ステップSPs6に進んでレジスタSCHにレジスタi
の値を入れ、さらに、フラグFINDに1を立てて図1
6に示すステップSPq6へリターンする。
【0049】ここで、ステップSPs6に至る条件を整
理すると、ステップSPs2で「NO」となり、ステッ
プSPs3、SPs4、およびステップSPs6で「Y
ES」となることである。すなわち、空きチャンネルで
はないチャンネルであって、マニュアル演奏モードにあ
り、なおかつ、キーオフされたキーコードと同じキーコ
ードを有することが必要である。
【0050】一方、ステップSPs2で「YES」と判
定された場合、または、ステップSPs3〜SPs5の
いずれかで「NO」と判定された場合は、ステップSP
s8に至り、レジスタiを1インクリメントする。そし
て、ステップSPs30を介してステップSPs2の処
理に戻り、以後は、上記処理を循環する。そして、レジ
スタiの値が30に至るまでの間にステップSPs6の
処理に進めなかった場合は、ステップSPs9における
判定が「YES」となり、ステップSPs10に進んで
フラグFINDを0にして図16に示すステップSPq
6にリターンする。
【0051】ステップSPq6ではフラグFINDの値
が1であるか否かが判定され、「YES」であれば、何
の処理もせずリターンする。これは、図17に示すサブ
ルーチンにおいて該当する発音チャンネルが見つからな
かった場合には、発音が行われなかった場合であるか
ら、改めてキーオフ処理(ステップSPq11)をする
必要がないためである。
【0052】ステップSPq6の判定が「YES」の場
合には、レジスタCHにレジスタSCHの内容(図18
に示すステップSPs6で書き込んだ値)を書き込み、
次いで、フラグPONFの値が0か否かを判定する(ス
テップSPq7、SPq8)。フラグPONFは、サス
テインペダルがオンのとき1になるフラグである。この
判定が「NO」の場合は、ステップSPq9に至りレジ
スタCST[CH]にサステインによる音の持続を示す値
2を書き込んでリターンする。この場合のCHの値は、
キーオフされたキーにかかわる発音チャンネル番号であ
る(ステップSPs6およびステップSPq7参照)。
一方、ステップSPq8の判定が「YES」の場合は、
ステップSPq3に進んで、レジスタCST[CH]にキ
ーオフを示す値3を書き込み、次いで、CH番の発音チ
ャンネルに対して、キーオフ信号KOFPを送出し、発
音を終了させる。
【0053】(3)自動伴奏処理理の詳細 次に、自動伴奏処理の詳細について、ノートオン処理と
ノートオフ処理に分けて説明する。
【0054】ノートオン処理 ノートオン処理は、図19に示す各ステップによって構
成されており、まず、ステップSPt1においてレジス
タASCNの値が30か否か、すなわち、発音チャンネ
ルが満杯であるか否かが判定される。この判定が「YE
S」の場合は、アサインチャンネルバッファ割当処理
(ステップSPt6:前述の図15参照)を行い、図1
9に示すステップSPt7においてレジスタCHにレジ
スタACHの値を書き込む。すなわち、レジスタCHに
アサインすべきチャンネルの番号が書き込まれる。次
に、発音に割り当てられたチャンネル数が1増えたた
め、ステップSPt8においてレジスタASCNの内容
を1インクリメントする。そして、ステップSPt9に
進み、レジスタCTYPE[CH]に自動伴奏を示す1を
書き込む(なお、CHの値はステップSPt7において
書き込まれた値である)。また、レジスタCTR[CH]
に自動伴奏のトラック番号TRを書き込み、レジスタC
ST[CH]にキーオン中であることを示す1を書き込
み、さらに、レジスタCKC[CH]にノートコードレジ
スタNCの値が書き込まれる。そして、ステップSPt
11に進み、図1に示す楽音合成回路10のCH番チャ
ンネルに、指示されたノートコードNC内のノートコー
ド、レジスタKV内の押鍵速度データ、レジスタATC
内の音色番号データおよびキーオン信号KONPを出力
する。これにより、自動伴奏によって指示された音につ
いての発音が開始される。
【0055】一方、ステップSPt1の判定が「YE
S」の場合は、レジスタTYPEの値を自動伴奏を示す
1にしてトランケート処理を行う(ステップSPt2、
SPt3)。トランケート処理は、前述した図14に示
す処理である。ステップSPt2の処理の後にトランケ
ート処理に入った場合は、図14に示すステップSPm
1からステップSPm5の自動伴奏キーオフサーチ処理
に進む。
【0056】自動伴奏キーオフサーチ処理は、図20に
示す各ステップにより構成されてており、まず、ステッ
プSPu1においてレジスタiをクリアする。次に、最
小エンベロープ値を探すための比較値を記憶するレジス
タMINにデータ1FFFHを書き込む。この値は、ダ
ミーの値であり、この実施例のデータがとり得る値の最
大値である(ステップSPu2)。そして、ステップS
Pu3に進みフラグFINDをリセットし、ステップS
Pu4〜SPu6の判定処理に移る。ステップSPu4
はレジスタCTYPE[i]の値が1か否か、すなわち、
自動伴奏による発音か否かを判定する処理であり、ステ
ップSPu5はレジスタCST[i]の値が3か否か、す
なわち、キーオフが指示されているか否かを判定する処
理である。また、ステップSPu6は、レジスタENV
[i]がレジスタMINの値より小さい否か、すなわち、
i番目の発音チャンネルのエンベロープ値がレジスタM
INの値より小さいか否かを判定する処理である。上記
各判定が全て「YES」の場合は、自動伴奏中でキーオ
フが指示された発音チャンネルであって、エンベロープ
がレジスタMINの値より小さいものが選択され、その
エンベロープがレジスタMINの値として新たに書き込
まれるとともに、ステップSPu8においてフラブFI
NDに1が立てられる。
【0057】ステップSPu8の処理が終了した場合、
および、ステップSPu4〜SPu6のいずれかにおい
て「NO」と判定された場合は、ステップSPu8に進
む。ここにおいて、レジスタiの値を1インクリメント
し、ステップSPu10を介してステップSPu4に進
む。以後は、レジスタiの値が30になるまで、上記各
処理を繰り返す。このループ処理により、自動伴奏中の
キーオフ指示された発音チャンネルが見つかる毎に、そ
のエンベロープ値がレジスタMINの値と比較され、小
さければレジスタMINの値として更新される。したが
って、リターンする際のレジスタMINにはキーオフ指
示後に係属発音している自動演奏音の各エンベロープ値
のうち最も小さい値が書き込まれる。また、i=1〜2
9の全ての発音チャンネルがステップSPu4、SPu
5のいずれかにおいて「NO」と判定された場合は、フ
ラグFINDは0のままリターンされる。
【0058】上述の処理が終了して図14に示すステッ
プSPm6にリターンすると、フラグFINDが1か否
かが判定され、「NO」の場合にはステップSPm7の
サステインキーオフサーチが行われる。
【0059】サステインキーオフサーチ処理は、図21
に示す各ステップから構成されている。この処理は、前
述した自動伴奏キーオフ処理(図20参照)と同様の処
理であり、対応するステップには同一のステップ番号が
付けてある。ただし、図21に示すステップSPv4は
発音タイプがマニュアルであるか否かを判定し、ステッ
プSPv5は発音チャンネルの状態がサステインによる
持続期間にあるか否かを判定している。したがって、手
動演奏であってサステイン持続期間中の発音チャンネル
が見つかる毎に、そのエンベロープ値がレジスタMIN
の値と比較され(ステップSPv6)、小さければレジ
スタMINの値として更新される(ステップSPv
7)。そして、そのチャンネル番号iがレジスタSCH
に記憶される。また、i=1〜29の全ての発音チャン
ネルがステップSPv4、SPv5のいずれかにおいて
「NO」と判定された場合は、フラグFINDは0のま
まリターンされる。
【0060】サステインキーオフサーチ処理が終了する
と、図14に示すステップSPm8にリターンし、フラ
グFINDが1か否かが判定される。この判定が「YE
S」の場合、または前述したステップSPm6の判定が
「YES」の場合は、ステップSPm9に進み、レジス
タCHにレジスタSCH内のチャンネル番号を書き込
み、次いで、ステップSPm10に移り、楽音合成回路
10内のチャンネル番号SCHの発音チャンネルにDA
MP信号を送出する。この結果、当該発音チャンネルの
発音が急激に減衰する。次に、レジスタACHにレジス
タSCH内のチャンネル番号を格納し、アサインチャン
ネルバッファ開放処理を行う(ステップSPm11、S
Pm12)。アサインチャンネルバッファ開放処理につ
いては、図11において説明した通りであり、この処理
が終わると、図19に示すステップSPt4、SPt5
を介してステップSPt6〜SPt11の処理が行わ
れ、消音した発音チャンネルにおいてノートオンコード
の発音が行われる。
【0061】一方、図14に示すステップSPm8の判
定が「NO」の場合は、図19に示すステップSPt4
にリターンし、ここでの判定も「NO」となって何の処
理もせずメインルーチンにリターンする。
【0062】以上の処理を要約すると、発音チャンネル
が満杯のときに、自動伴奏のノートオンがあった場合に
は、自動伴奏の発音中でエンベロープ最小の発音チャン
ネルを消音させ、または、このような音がなかった場合
にはマニュアル演奏であってキーオフされた後にサステ
インによって音が継続している発音チャンネルを消音さ
せるようにしている。そして、消音させた発音チャンネ
ルにノートオン指示があった自動伴奏の音(ノートオン
コード)を発音させるようにしている。一方、上記いず
れの音も見つからなかった場合は、自動伴奏のパターン
に従って発生されたノートオンコードを無視し、何の発
音処理も行わない。
【0063】NOTE OFF処理 次に、自動演奏のキーオフ処理に付いて説明する。この
処理は、図22に示すステップによって構成されてい
る。まず、ステップSPw1において、レジスタKCに
ノートコードレジスタNCの値を入れるとともに、レジ
スタTYPEに自動演奏を示す1を書き込む。この処理
の後は、ステップSPw2のキーオフサーチ処理を行い
(図18参照)、真のキーオフか否かを調べる。前述の
ように、真の場合はフラグFINDに1が書き込まれ、
偽の場合は同レジスタに0が書き込まれる。
【0064】そして、図22のステップSPw3に進
み、フラグFINDが1か否かが判定される。この判定
が「NO」であれば、ノートオフ処理の必要がないの
で、なにもせずにリターンする。一方、ステップSPw
3の判定が「YES」であれば、ステップSPw4に進
んでレジスタSCH内のチャンネル番号をレジスタCH
に入れ、次いで、ステップSPw5においてレジスタC
ST[CH]にキーオフの指示を意味する3を書き込む。
そして、ステップSPw6に進み、楽音合成回路10の
番号CH(CHはレジスタCHの値)のチャンネルにキ
ーオフ信号KOFPを出力し、発音を停止させる。 C:実施効果および変形例 上述した実施例においては、各発音チャンネルが全て
発音中であるときに手動演奏によって新たな楽音が入力
された場合は、前記各発音チャンネルのうち発生音のエ
ンベロープが最小のもの検出し、検出された発音チャン
ネルに演奏によって入力された楽音を割り当て、各発
音チャンネルが全て発音中であるときに自動伴奏による
新たな発音要求があった場合は、自動伴奏の発音を行っ
ている発音チャンネルのうちキーオフが指示されている
とともに発生音のエンベロープが最小のものを検出し、
検出された発音チャンネルに自動伴奏による新たな発音
要求にかかる楽音を割り当て、上記の処理において
割り当てるべき発音チャンネルを検出し得ない場合は、
手動演奏の発音を行っている発音チャンネルのうちキー
オフが指示されているとともにサステイン状態の発音を
行っているものを検出し、検出された発音チャンネルに
自動伴奏による発音要求にかかる楽音を割り当てるよう
にし、さらに、上記の処理によっても割り当てるべ
き発音チャンネルを検出し得ない場合は自動伴奏による
新たな発音要求にかかる楽音の発音を無視するようにし
ている。以上のような処理を行っているため、発音チャ
ンネルが満杯であっても、手動演奏による楽音は16音
を超えない範囲で優先して発音される。したがって、演
奏した音は必ず発音されるため、演奏者が違和感を感じ
ることがない。また、発音チャンネルが満杯のときの自
動伴奏音については、自動伴奏音発音中でキーオフ指示
されてエンベロープ最小の発音チャンネルに割り当てら
れるので、不自然さが生じない。この割当ができない場
合には、手動演奏発音中でキーオフ後にサステイン期間
に入っている発音チャンネルに割り当てられるので、や
はり不自然さを感じさせない演奏にすることができる。
また、上述したの処理あるいはの処理によ
って発音割当を行っても良い。発音チャンネル満杯時の
自動伴奏音の割当確率はやや減少するが、演奏上特に支
障がなければ、あるいはの処理を省略してもよい。
さらに、〜の全ての処理を行う場合に、との優
先順位を入れ換えてもよい。
【0065】
【発明の効果】以上説明したように、この発明によれ
ば、発音チャンネルを有効に使用することができるとと
もに、手動演奏音と自動伴奏音の各音数の変更に対して
柔軟に対処することができ、しかも、発音チャンネルの
割当が音楽的に不自然になることがない。
【図面の簡単な説明】
【図1】 この発明の一実施例の構成を示すブロック図
である。
【図2】 同実施例の全体動作の概略を示すメインルー
チンのフローチャートである。
【図3】 同実施例の鍵処理サブルーチンを示すフロー
チャートである。
【図4】 同実施例におけるパネル処理ルーチンのフロ
ーチャートである。
【図5】 同実施例における自動演奏開始処理ルーチン
のフローチャートである。
【図6】 同実施例における自動演奏終了処理ルーチン
のフローチャートである。
【図7】 同実施例における自動演奏処理ルーチンのフ
ローチャートである。
【図8】 同実施例における操作子処理ルーチンのフロ
ーチャートである。
【図9】 同実施例における操作子(ペダル)オフ処理
ルーチンのフローチャートである。
【図10】 同実施例における終了チャンネル検出処理
ルーチンのフローチャートである。
【図11】 同実施例におけるアサインチャンネルバッ
ファ割当処理ルーチンのフローチャートである。
【図12】 同実施例におけるキーオン処理ルーチンの
フローチャートである。
【図13】 同実施例におけるキーオンバッファ割当処
理ルーチンのフローチャートである。
【図14】 同実施例におけるトランケート処理ルーチ
ンのフローチャートである。
【図15】 同実施例におけるキーオンバッファ割当処
理ルーチンのフローチャートである。
【図16】 同実施例におけるキーオフ処理ルーチンの
フローチャートである。
【図17】 同実施例におけるキーオンバッファ開放処
理ルーチンのフローチャートである。
【図18】 同実施例におけるキーオフチャンネルサー
チ処理ルーチンのフローチャートである。
【図19】 同実施例におけるノートオン処理ルーチン
のフローチャートである。
【図20】 同実施例における自動演奏キーオフサーチ
処理ルーチンのフローチャートである。
【図21】 同実施例におけるサステイン・キーオフ処
理ルーチンのフローチャートである。
【図22】 同実施例におけるノートオフ処理ルーチン
のフローチャートである。
【符号の説明】
1……CPU(第1の割当手段、第2の割当手段、第3
の割当手段)、2……ROM(第1の割当手段、第2の
割当手段、第3の割当手段)、4……鍵盤、10……楽
音合成回路。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 自動伴奏手段の発音要求による楽音およ
    び演奏者の手動演奏によって入力される楽音を複数の発
    音チャンネルのうちの空いているものに順次割り当てて
    発音を行う電子楽器において、 前記各発音チャンネルが全て発音中であるときに前記手
    動演奏によって新たな楽音が入力された場合は、前記各
    発音チャンネルのうち発生音のエンベロープが最小のも
    のを検出し、検出された発音チャンネルに演奏によって
    入力された楽音を割り当てる第1の割当手段と、 前記各発音チャンネルが全て発音中であるときに前記自
    動伴奏手段によって新たな発音要求があった場合は、自
    動伴奏の発音を行っている発音チャンネルのうちキーオ
    フが指示されているとともに発生音のエンベロープが最
    小のものを検出し、検出された発音チャンネルに前記自
    動伴奏手段の新たな発音要求にかかる楽音を割り当てる
    第2の割当手段とを具備することを特徴とする電子楽
    器。
  2. 【請求項2】 前記各発音チャンネルが全て発音中であ
    るときに前記自動伴奏手段によって新たな発音要求があ
    った場合は、手動演奏の発音を行っている発音チャンネ
    ルのうち、キーオフが指示されていてるとともにサステ
    イン状態の発音を行っているものを検出し、検出された
    発音チャンネルに前記自動伴奏手段の新たな発音要求に
    かかる楽音を割り当てる第3の割当手段を前記第2の割
    当手段に代えて具備することを特徴とする請求項1記載
    の電子楽器。
  3. 【請求項3】 自動伴奏手段の発音要求による楽音およ
    び演奏者の手動演奏によって入力される楽音を複数の発
    音チャンネルのうちの空いているものに順次割り当てて
    発音を行う電子楽器において、 前記各発音チャンネルが全て発音中であるときに前記手
    動演奏によって新たな楽音が入力された場合は、前記各
    発音チャンネルのうち発生音のエンベロープが最小のも
    の検出し、検出された発音チャンネルに演奏によって入
    力された楽音を割り当てる第1の割当手段と、 前記各発音チャンネルが全て発音中であるときに前記自
    動伴奏手段によって新たな発音要求があった場合は、自
    動伴奏の発音を行っている発音チャンネルのうちキーオ
    フが指示されているとともに発生音のエンベロープが最
    小のものを検出し、検出された発音チャンネルに前記自
    動伴奏手段の新たな発音要求にかかる楽音を割り当てる
    第2の割当手段と、 前記第2の割当手段が割り当てるべき発音チャンネルを
    検出し得ない場合は、手動演奏の発音を行っている発音
    チャンネルのうちキーオフが指示されているとともにサ
    ステイン状態の発音を行っているものを検出し、検出さ
    れた発音チャンネルに前記自動伴奏手段の新たな発音要
    求にかかる楽音を割り当てる第3の割当手段とを有し、 前記第3の割当手段が割り当てるべき発音チャンネルを
    検出し得ない場合は前記自動伴奏手段の新たな発音要求
    にかかる楽音の発音を無視することを特徴とする電子楽
    器。
JP3220559A 1991-08-30 1991-08-30 電子楽器 Expired - Fee Related JP2500489B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP3220559A JP2500489B2 (ja) 1991-08-30 1991-08-30 電子楽器
US07/937,350 US5286910A (en) 1991-08-30 1992-08-27 Electronic musical instrument having automatic channel-assigning function
CN92110196A CN1028683C (zh) 1991-08-30 1992-08-28 电子乐器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3220559A JP2500489B2 (ja) 1991-08-30 1991-08-30 電子楽器

Publications (2)

Publication Number Publication Date
JPH05100671A true JPH05100671A (ja) 1993-04-23
JP2500489B2 JP2500489B2 (ja) 1996-05-29

Family

ID=16752893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3220559A Expired - Fee Related JP2500489B2 (ja) 1991-08-30 1991-08-30 電子楽器

Country Status (3)

Country Link
US (1) US5286910A (ja)
JP (1) JP2500489B2 (ja)
CN (1) CN1028683C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728464A (ja) * 1993-07-13 1995-01-31 Yamaha Corp 電子楽器

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446237A (en) * 1992-01-08 1995-08-29 Yamaha Corporation Electronic musical instrument having a control section memory for generating musical tone parameters
JP2968387B2 (ja) * 1992-03-31 1999-10-25 株式会社河合楽器製作所 電子楽器のキーアサイナ
US5866833A (en) * 1995-05-31 1999-02-02 Kawai Musical Inst. Mfg. Co., Ltd. Automatic performance system
JP2924745B2 (ja) * 1995-10-20 1999-07-26 ヤマハ株式会社 楽音発生装置及び方法
JP2000322063A (ja) * 1999-05-11 2000-11-24 Mitsubishi Electric Corp 音声信号加算装置および音源再生方法
US6369311B1 (en) 1999-06-25 2002-04-09 Yamaha Corporation Apparatus and method for generating harmony tones based on given voice signal and performance data
ITBO20120173A1 (it) * 2012-03-30 2013-10-01 Roland Europ Spa Metodo di controllo di un accompagnamento automatico in uno strumento musicale elettronico a tastiera
WO2018016636A1 (ja) * 2016-07-22 2018-01-25 ヤマハ株式会社 タイミング予想方法、及び、タイミング予想装置
JP7279700B2 (ja) * 2020-12-08 2023-05-23 カシオ計算機株式会社 演奏装置、方法、及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0634169B2 (ja) * 1985-12-10 1994-05-02 ヤマハ株式会社 発音割当て機能付電子楽器
JP2536596B2 (ja) * 1988-06-23 1996-09-18 ヤマハ株式会社 電子楽器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728464A (ja) * 1993-07-13 1995-01-31 Yamaha Corp 電子楽器

Also Published As

Publication number Publication date
JP2500489B2 (ja) 1996-05-29
US5286910A (en) 1994-02-15
CN1070502A (zh) 1993-03-31
CN1028683C (zh) 1995-05-31

Similar Documents

Publication Publication Date Title
JP2500489B2 (ja) 電子楽器
JP3177374B2 (ja) 自動伴奏情報発生装置
JP2641605B2 (ja) 電子楽器のチャンネル割り当て装置及びチャンネル割り当て方法
JP4258991B2 (ja) 楽音発生装置及び楽音発生処理のプログラム
JP2565069B2 (ja) 電子楽器
JP2583809B2 (ja) 電子楽器
JP3567293B2 (ja) 発音チャンネル割当装置
JPH0638192B2 (ja) 楽音発生装置
JP2814479B2 (ja) 電子楽器
JP2715795B2 (ja) 発音割当手段を有する楽音合成装置
JP3194850B2 (ja) 自動演奏機能を有する電子楽器
JP3521871B2 (ja) 楽音発生装置および記憶媒体
JP3646611B2 (ja) 楽音発生装置
JP3235160B2 (ja) 楽音制御装置
JP2578327B2 (ja) 自動演奏装置
JPH07104672B2 (ja) 電子楽器の効果付与制御装置
JPH0627943A (ja) 自動演奏装置
JP2755051B2 (ja) 楽音発生装置
JP2995771B2 (ja) 楽曲パート生成装置
JP3091110B2 (ja) パラメータ設定装置
JP2787723B2 (ja) 楽曲パート生成装置
JP4306138B2 (ja) 楽音発生装置及び楽音発生処理のプログラム
JPH0736459A (ja) 電子楽器のアサイン装置
JPH0844356A (ja) 電子楽器
JPH0642146B2 (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: 19960116

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

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees