JP3663873B2 - 発音チャンネル制御装置 - Google Patents
発音チャンネル制御装置 Download PDFInfo
- Publication number
- JP3663873B2 JP3663873B2 JP36906797A JP36906797A JP3663873B2 JP 3663873 B2 JP3663873 B2 JP 3663873B2 JP 36906797 A JP36906797 A JP 36906797A JP 36906797 A JP36906797 A JP 36906797A JP 3663873 B2 JP3663873 B2 JP 3663873B2
- Authority
- JP
- Japan
- Prior art keywords
- midi
- channel
- data
- event
- tone
- 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
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、マルチチャンネルで楽音を発音する際に、発音チャンネルを制御する発音チャンネル制御装置に関する。
【0002】
【従来の技術】
マルチチャンネルで楽音を発音するシステムとして、MIDIが知られている。MIDIは、曲データをデジタル信号によって伝達するためのインタフェースであり、ある楽器から他の楽器に演奏情報である曲データを伝達するためのものである。曲データは、標準MIDIファイルの場合16チャンネルで構成され、16個の異なる楽音で演奏させることができる。このため、MIDIに対応した楽器(以下、「MIDI楽器」という)には、他のMIDI楽器からMIDIデータを入力するためのMIDI INの端子、演奏した曲データをMIDIデータとして他のMIDI楽器に出力するためのMIDI OUTの端子が設けられている。また、MIDI楽器の中には、フロッピーディスクドライブを搭載したものがあり、MIDIデータが記録されているフロッピーディスクを挿入すると、その曲データが再生される。このように、フロッピーディスク等の外部記録媒体から入力されたMIDIデータを16個の異なる楽音で再生することもできる。
【0003】
MIDIデータは、1バイトのステータスバイト及び1又は2バイトのデータバイトで構成されている。ステータスバイトは、ノートオン及びノートオフ、音色を変えるプログラムチェンジ、モジュレーションを変えるコントロールチェンジ等の制御データで構成されている。また、データバイトは、音高(ノート)データ、音色データ、ピッチベンドデータ等で構成されている。例えば、ステータスがプログラムチェンジの場合には、入力されたMIDIデータの任意のチャンネルにおいて、現在発音している音色に代えて、ステータスの後に続く音色データの音色に変更することができる。
【0004】
【発明が解決しようとする課題】
一方、MIDI楽器自体にも、発音する楽音の音色やピッチベンド等の制御データを設定するための操作子が設けられており、この操作子によっても各チャンネルごとに制御データを設定することができる。しかしながら、MIDI楽器の操作子によって制御データを設定した場合でも、入力されたMIDIデータのステータスによって設定した制御データが変更されて、元に戻らないという問題があった。さらに、各チャンネルの制御データは、メニュー階層の中の深いレベルに入って設定しなければならず、元に戻すための設定作業が極めて煩雑になってしまう。
本発明の課題は、演奏者によって設定された楽音データの制御データが入力された楽音データの制御データによって変更されないようにすることである。
【0005】
【課題を解決するための手段】
この発明は、装置外部より供給され、複数種のMIDIチャンネルのいずれかを示すチャンネルデータを含むMIDIイベントを入力するMIDIイベント入力手段と、装置内部にてチャンネルデータを含むMIDIイベントを発生するMIDIイベント発生手段と、生成されるべき楽音の発生形態を制御するための制御データを設定する制御データ設定手段と、複数のMIDIチャンネルを有するとともに、各MIDIチャンネル毎に対応するチャンネルデータを含む供給されたMIDIイベント及び制御データに基づいて楽音を生成する楽音生成手段と、異なる演奏モードを有し、これら異なる演奏モードのいずれかひとつを指定する演奏モード指定手段と、この演奏モード指定手段により指定された演奏モードに対応して、MIDIイベント入力手段及びMIDIイベント発生手段のいずれか一方により得られたMIDIイベントのうち生成される楽音の発生形態を制御する制御イベントを除くMIDIイベントと制御データ設定手段によって設定された、楽音の発生形態を制御する制御データとを楽音生成手段の複数のMIDIチャンネルの一部に供給するとともに、他方により得られたMIDIイベント全てを楽音生成手段の残りのMIDIチャンネルに供給する発音制御手段と、を有するものである。
本発明によれば、複数のチャンネルで構成された外部楽音データ及び内部楽音データのいずれか一方の楽音データにおいて各チャンネルごとに設定された制御データは、他方の楽音データに含まれる制御データにかかわらず保持することができる。
【0006】
【発明の実施の形態】
以下、本発明の発音チャンネル制御装置を適用した実施形態について、鍵盤を備えたMIDI楽器を例に採って説明する。
図1は、実施形態におけるMIDI楽器のシステムを示すブロック図である。鍵盤1は、演奏者の操作に応じて、ノートオン又はノートオフの音高データ、ベロシティデータ等のイベントデータを入力する。CPU2は、プログラムROM、ワークRAM、曲データを格納したシーケンサ及びビデオRAM(いずれも図示せず)を具備したワンチップマイコンであり、このMIDI楽器全体を制御する機能とともに、本発明の発音チャンネル制御装置の機能を構成する。
【0007】
CPU2には、システムバスやインタフェース等(図示せず)を介して、鍵盤1、音源3、スイッチ群4、LCD(液晶表示部)5、FDD(フロッピーディスクドライブ)6、及びMIDI入出力端子7すなわちMIDI IN端子及びMIDI OUT端子が接続されている。また、音源3には波形ROM8及びアンプ9が接続され、アンプ9には2つのスピーカ10が接続されている。音源3は、CPU2から与えられる楽音のイベントデータに基づいて、波形ROM8から読み出した波形データによって楽音信号を生成してアンプ9に出力する。アンプ9では、入力された楽音信号をデジタル信号からアナログ信号に変換し、フィルタ処理及び増幅処理を施して、スピーカ10から放音させる。
【0008】
なお、一般的に、MIDI楽器においては、鍵盤1(又はシーケンサ)から入力された内部楽音データであるイベントデータは、図2に示すように、CPU2を介して音源3及びMIDI OUT端子10に出力される。また、MIDI IN端子10又はFDD6から入力された外部楽音データであるMIDIデータは、CPU2を介して音源3に出力される。本実施形態の特徴は、後述するように、MIDI IN端子10から入力される16チャンネルのMIDIデータと、MIDI OUT端子10から出力する16チャンネルのMIDIデータとを、CPU2の別々の発音チャンネルのレジスタに格納して制御することにある。
【0009】
図3は、外部楽音データ及び内部楽音データとしてのMIDIデータの構成を示している。MIDIデータは、図3(1)に示すように、1バイトのステータス、2(又は1)バイトのデータで構成されている。ステータスバイトは、最上位ビットが常に1であり、続く3ビットがチャンネルメッセージ、残りの4ビットがチャンネルを表している。また、データバイトの最上位ビットは常に0であり、残りの7ビットがデータを構成している。例えば、チャンネル1におけるノートオフのMIDIデータは、図3(2)に示すように、ステータスは80(H)であり、続く1バイト目のデータは音高データ、2バイト目のデータはベロシティデータ(ノートオフであるので値は「0」)になっている。また、チャンネル16におけるノートオンのMIDIデータは、図3(3)に示すように、ステータスは9F(H)であり、続く1バイト目のデータは音高データ、2バイト目のデータはベロシティデータになっている。
【0010】
図1におけるスイッチ群4は、演奏者の操作によって、発音する楽音の音色やピッチベンド等の制御データ(パラメータ)を設定する。設定された制御データは、CPU2のワークRAMに記憶される。LCD5は、MIDIデータ及び制御データに関する情報を画面に表示する。図4は、スイッチ群4及びLCD5を含む操作部を示す図である。スイッチ群4は、電源スイッチ41、音色設定用のテンキー42、音量及びチャンネルを設定するカーソルキー43、ミキサ選択スイッチ44、及びチャンネル選択スイッチ45で構成されている。なお、ミキサ選択スイッチ44は、押下に応じて、「INTERNALモード」、「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」というように演奏モードがサイクリックに変化する。
【0011】
また、LCD5は、表示する内容に応じて画面が複数のエリアに分かれている。すなわち、エリア51には音色に関する情報が表示され、エリア52には音量に関する情報が表示され、エリア53にはオン/オフの情報が表示され、エリア54にはミキサ選択スイッチ44によって設定されるモード、及び各チャンネルの状態を示す情報が表示される。各チャンネルの情報としては、演奏時又は音量設定時以外の場合には、図5に示すように、各チャンネル番号及び番号を囲む枠、並びに各チャンネルの上に4つのインジケータが表示される。そして、演奏時には、図6(1)に示すように、各チャンネルごとに音量に応じたインジケータが表示される。また、音量設定時には、図6(2)に示すように、設定値に応じたインジケータが表示される。
【0012】
次に、本実施形態の動作について、図7〜図21に示すCPU2のフローチャート、並びに、図22〜図25に示す各モードにおけるLCD5の表示及びMIDIチャンネルの制御方法及び図26に示す操作部の一例を参照して説明する。なお、図22〜図25は、それぞれ「INTERNALモード」、「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNALPLAYモード」の状態を示している。また、発音チャンネル1〜32のうちチャンネル1〜16は、外部(MIDI IN端子7、FDD6)から入力されるMIDI INデータ(外部楽音データ)用のチャンネルであり、チャンネル17〜32は、内部(鍵盤1、シーケンサ)からのMIDIデータ(内部楽音データ)用のチャンネルである。
【0013】
図7は、メインルーチンのフローである。図4に示した電源スイッチ41がオンされると、所定のイニシャライズを行う(ステップS1)。例えば、発音チャンネル1〜32の中の1つの発音チャンネルを指定するカレントチャンネルのポインタk、訂正するチャンネルを指定するポインタCH、及び、モードセレクトレジスタMSは、このイニシャライズで1にセットされる。イニシャライズの後は、ステップS2〜ステップS6を繰り返すループ処理を実行する。すなわち、スイッチ群4を走査して各スイッチの状態を検出するスイッチ処理(ステップS2)、鍵盤1から入力されたイベントデータを処理する内部イベント処理(ステップS3)、MIDI IN端子10から入力されたMIDIデータを処理するMIDI IN処理(ステップS4)、イベントデータを音源3に送出する発音指示処理(ステップS5)、その他の処理(ステップS6)を行う。
【0014】
図8〜図15は、図7のステップS2におけるスイッチ処理の詳細なフローである。図8において、ミキサ選択スイッチ44がオンされたか否かを判別し(ステップS7)、オンされたときはモードセットレジスタMSをインクリメントする(ステップS8)。上記したように、設定されるモードは、「INTERNALモード」、「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」の4つのモードであり、MSの範囲は1〜4である。したがって、インクリメントされたMSがこの範囲を超えた値である5になったか否かを判別し(ステップS9)、5になった場合にはMSを1にする(ステップS10)。
【0015】
ステップS10の後、ステップS7においてミキサ選択スイッチ44がオンでない場合、又はステップS9においてMSが5でない場合には、MSの値に応じた処理を行う。MSが1であるか否かを判別し(ステップS11)、1である場合には「INTERNALモード」であるので、図22(1)に示すように、「INTERNAL」の文字のみを表示する(ステップS12)。そして、カレントチャンネルを指定するポインタkに、訂正するチャンネルを指定するポインタCHの値に16を加算した値をセットして(ステップS13)、スイッチ処理を終了する。上記したように、図7のメインルーチンのイニシャライズにおいて、k及びCHはともに1にセットされているので、最初は発音チャンネル17がカレントチャンネルになる。
【0016】
ステップS11においてMSが1でない場合には、MSが2であるか否かを判別する(ステップS14)。MSが2である場合は「EXTERNALモード」であるので、図23(1)に示すように、LCD5のエリア54に「EXTERNAL」の文字を表示する(ステップS15)。そして、ポインタkにCHの値をセットして(ステップS16)、このスイッチ処理を終了する。
【0017】
ステップS13又はステップS16において、ポインタkに値をセットした後は、図9のフローにおいてチャンネル選択スイッチ45がオンされたか否かを判別する(ステップS17)。このスイッチがオンされたときは、そのチャンネル番号をポインタmにセットする(ステップS18)。そして、そのチャンネル番号の枠を表示するフラグである枠ONF(m)を反転する(ステップS19)。
【0018】
次に、MSが1又は2であるか否かを判別する(ステップS20A)。MSが1又は2である場合には、枠ONF(m)が1であるか否かを判別し(ステップS20B)、このフラグが1である場合はm番目の枠を表示する(ステップS21)。一方、このフラグが1でない場合はm番目の枠を消灯する(ステップS22)。例えば、図22(1)及び図23(1)に示すように、チャンネル1、3、5……15の枠は表示され、チャンネル2、4、9……16の枠は消灯されている。枠を表示又は消灯した後は、ステップS23においてMSが1であるか否かを判別する。そして、MSが1である場合にはmの値に16を加算する(ステップS24)。加算した後、又はMSが1でない場合には、対応する発音チャンネルを有効(発音可能)にするフラグである発音ONF(m)を反転する(ステップS25)。
【0019】
このフラグを反転した後、又はステップS17においてチャンネル選択スイッチ45がオンされない場合は、図10のフローにおいて、訂正フラグが1であるか否かを判別する(ステップS26)。訂正フラグとは、チャンネルに設定されている音色データすなわち制御データを変更する際に1にセットされるフラグである。このフラグが1でない場合には、カーソルスイッチ43がオンされたか否かを判別し(ステップS27)、オンされたときは訂正フラグを1にセットする(ステップS28)。すなわち、カーソルスイッチ43は、訂正フラグを1にセットして、訂正操作を始めるためのトリガスイッチである。
【0020】
ステップS26において、訂正フラグが1であるときは、カーソルスイッチ43が(再度)オンされたか否かを判別する(ステップS29)。このスイッチがオンされたときは、操作待ち限界の所定時間が設定されているタイマレジスタTの値を0にクリアする(ステップS30)。そして、カーソルスイッチ43の左スイッチ又は右スイッチがオンされたか否かを判別する(ステップS31)。左スイッチ又は右スイッチのいずれかがオンされたときは、まず、左スイッチがオンされたか否かを判別する(ステップS32)。左スイッチがオンされたときは、ポインタCHをデクリメントする(ステップS33)。そして、デクリメントの結果、1〜16の範囲であるCHが0になったか否かを判別し(ステップS34)、0になったときはCHに16をセットする(ステップS35)。
【0021】
ステップS32において、オンされたスイッチが左スイッチでない場合、すなわち右スイッチがオンされた場合には、CHをインクリメントする(ステップS36)。そして、インクリメントの結果、1〜16の範囲であるCHが17になったか否かを判別し(ステップS37)、17になったときはCHに1をセットする(ステップS38)。
【0022】
デクリメント若しくはインクリメントした結果、CHの値が1〜16の範囲にある場合、又は、デクリメント若しくはインクリメントした結果、CHの値が1〜16の範囲を超えて、CHを1若しくは16にセットした場合は、そのCHのチャンネルの番号を点滅させる(ステップS39)。例えば、CHの値が5である場合には、図26に示すように、エリア54のチャンネル5の番号を点滅させる。そして、図11のフローにおいて、テンキー42がオンされたか否かを判別する(ステップS40)。テンキー42がオンされない場合は、このスイッチ処理のフローを終了する。テンキー42がオンされた場合は、タイマレジスタTを0にクリアする(ステップS41)。
【0023】
次に、訂正フラグが1になっているか否かを判別する(ステップS42)。このフラグが1である場合には、MSが1であるか否かを判別する(ステップS43)。MSが1である場合すなわち「INTERNALモード」である場合、又はステップS42において訂正フラグが1でない場合には、チャンネル(CH+16)の音色を示すレジスタTONE(CH+16)にテンキー42のオンされた番号をセットする(ステップS44)。例えば、CH=1である場合には、図22(2)に示すように、チャンネル17に音色データをセットする。
【0024】
一方、MSが1でない場合すなわち「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」のいずれかのモードである場合には、TONE(CH)にテンキー42のオンされた番号をセットする(ステップS45)。例えば、CH=5である場合には、図23(2)〜図25(2)に示すように、チャンネル5に音色データをセットする。
【0025】
テンキーの番号をセットした後は、TONEデータをMIDIデータに変換して、音源3及びMIDI OUTの対応するチャンネルに送出する(ステップS46)。そして、テンキー42のオンされた番号及び音色名を図4に示したLCD5に表示する(ステップS47)。例えば、「INTERNALモード」においてテンキー42の1がオンされた場合には、図26に示すように、その番号「001」及びその番号に対応する音色名であるグランドピアノを表す「GrandPno」をエリア51に表示する。
【0026】
図10のステップS31において、オンされたカーソルキー43が左右キーでない場合、すなわち上下キーである場合には、図12のフローにおいて、ポインタCHの番号を点滅させる(ステップS48)。次に、MSが1であるか否かを判別する(ステップS49)。そして、MSが1すなわち「INTERNALモード」である場合には、CHに16を加算した値をカレントチャンネルのポインタkにセットする(ステップS50)。一方、MSが2〜4すなわち「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」のいずれかのモードである場合には、CHの値をkにセットする(ステップS51)。
【0027】
ステップS50又はステップS51において、ポインタkに値をセットした後は、オンされたカーソルスイッチ43が上スイッチであるか否かを判別する(ステップS52)。上スイッチである場合には、カレントチャンネルの音量レジスタVOL(k)の値を所定値だけインクリメントする(ステップS53)。一方、オンされたカーソルスイッチ43が上スイッチでない場合、すなわち下スイッチがオンされた場合には、VOL(k)の値を所定値だけデクリメントする(ステップS54)。VOL(k)の値をインクリメント又はデクリメントした後は、図6(2)に示したように、その値をインジケータに表示する(ステップS55)。この後は、図11のステップS40に移行して、テンキー42がオンされたか否かを判別する。例えば、VOL(5)の値が100である場合には、図26に示すように、エリア52に「VOLUMU 100」を表示する。そして、設定されたVOL(1)〜(16)の値に応じたインジケータをエリア54に表示する。
【0028】
図10のステップS28において、訂正フラグに1をセットした後は、図13のフローにおいて、図5に示したチャンネルインジケータの表示を消灯する(ステップS56)。次に、MSが1であるか否かを判別する(ステップS57)。MSが1すなわち「INTERNALモード」である場合には、ポインタpに17をセットする(ステップS58)。一方、MSが2〜4すなわち「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNALPLAYモード」のいずれかである場合には、pに1をセットする(ステップS59)。次に、インジケータを示すポインタjを1にセットする(ステップS60A)。この後、jをインクリメントしながら、VOL(k)の値に応じてインジケータ(j)を表示する(ステップS60B)。次に、pをインクリメントし(ステップS61)、jをインクリメントする(ステップS62)。そして、MSが1であるか否かを判別する(ステップS63)。
【0029】
MSが1すなわち「INTERNALモード」である場合には、ポインタpが33になったか否かを判別する(ステップS64)。一方、MSが2〜4すなわち「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」のいずれかのモードである場合には、pが17になったか否かを判別する(ステップS65)。ステップS64又はステップS65において、pがチャンネルの範囲内である場合には、ステップS60Bに移行する。一方、ステップS64又はステップS65において、pが17又は33になった場合、すなわち16チャンネルすべてのインジケータの表示が終了した場合には、タイマレジスタTを0にクリアし(ステップS66)、タイマインタラプト禁止を解除する(ステップS67)。この後は、図11のステップS40に移行して、テンキー42がオンされたか否かを判別する。
【0030】
図8のステップS14において、MSが2すなわち「EXTERNALモード」でない場合には、図14のフローにおいて、MSが3であるか否かを判別する(ステップS68)。MSが3すなわち「EXTERNAL SOLOモード」である場合には、「EXTERNAL SOLO」の文字を表示する(ステップS69)。次に、ポインタnを1にセットして(ステップS70)、nをインクリメントしながら、以下のループ処理を行う。
【0031】
すなわち、nとカレントチャンネルを示すポインタkとが同じであるか否かを判別し(ステップS71)、同じである場合は、発音ONF(n)に1をセットする(ステップS72)。次に、枠ONF(n)に1をセットし(ステップS73)、n番目の枠を表示する(ステップS74)。そして、nをインクリメントする(ステップS75)。ステップS71において、nがkと同じでない場合には、発音ONF(n)に0をセットする(ステップS76)。次に、枠ONF(n)に0をセットし(ステップS77)、n番目の枠を消灯する(ステップS78)。そして、ステップS75においてnをインクリメントする。nをインクリメントした後、nが17になったか否かを判別し(ステップS79)、nが16以下である場合には、ステップS71に移行して上記ループ処理を繰り返す。ステップS79においてnが17になったときは、図9のステップS17に移行して、チャンネル選択スイッチ45がオンされたか否かを判別する。
【0032】
例えば、図24(1)の「EXTERNAL SOLOモード」の場合は、カレントチャンネルのポインタkが5である。したがって、チャンネル5の番号の枠のみが表示され、他のチャンネルの番号の枠は消灯している。すなわち、このモードにおいては、16個の発音チャンネルの中の1つの発音チャンネルのみが有効なチャンネルになる。
【0033】
図14のステップS68においてMSが3でない場合には、MSは4すなわち「EXTERNAL PLAYモード」の場合である。この場合には、図15のフローにおいて、「EXTERNAL PLAY」の文字を表示する(ステップS80)。次に、ポインタnを1にセットして(ステップS81)、nをインクリメントしながら、以下のループ処理を行う。
【0034】
すなわち、nとカレントチャンネルを示すポインタkとが同じであるか否かを判別し(ステップS82)、同じである場合は、発音ONF(n)に0をセットする(ステップS83)。次に、発音チャンネル(17)〜(32)の中の1つの発音チャンネル、本実施形態では発音チャンネル(17)の音色TONE(17)及び音量VOL(17)に、発音チャンネル(1)〜(16)の中のポインタnで指定された1つの発音チャンネル(n)の音色TONE(n)及び音量VOL(n)すなわちプログラムチェンジ等をコピーする(ステップS84)。例えば、カレントチャンネルが発音チャンネル(5)である場合には、図25(2)に示すように、発音チャンネル(5)にセットされた音色及び音量が発音チャンネル(17)にコピーされる。
【0035】
次に、枠ONF(n)に0をセットし(ステップS85)、n番目の枠を消灯する(ステップS86)。そして、nをインクリメントする(ステップS87)。ステップS82において、nがkと同じでない場合には、発音ONF(n)に1をセットする(ステップS88)。次に、枠ONF(n)に1をセットし(ステップS89)、n番目の枠を表示する(ステップS90)。そして、ステップS87においてnをインクリメントする。nをインクリメントした後、nが17になったか否かを判別し(ステップS91)、nが16以下である場合には、ステップS82に移行して上記ループ処理を繰り返す。ステップS91においてnが17になったときは、図9のステップS17に移行して、チャンネル選択スイッチ45がオンされたか否かを判別する。
【0036】
このように、上記スイッチ処理においては、スイッチ群4による音色、音量等のミキサー設定が、MSで指定されるモードに応じて決定される。すなわち、「INTERNALモード」の場合には、図22(2)に示すように、発音チャンネル(1)〜(32)のうち、発音チャンネル(17)〜(32)に対してミキサー設定が可能になり、発音チャンネル(1)〜(16)に対してはミキサー設定は無効となる。一方、「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」の場合には、図23(2)〜図25(2)に示すように、発音チャンネル(1)〜(16)に対してミキサー設定が可能になり、発音チャンネル(17)〜(32)に対してはミキサー設定は無効となる。
【0037】
図16は、図7のメインルーチンのステップS3における内部イベント処理のフローである。この処理では、内部イベントが発生したか否か、すなわち鍵盤1やシーケンサから楽音データが入力されたか否かを判別する(ステップS92)。内部イベントが発生したときは、その内部イベントデータを指定された発音チャンネルにストアする(ステップS93)。内部イベントデータをストアした後、又は、内部イベントの発生がない場合には、図7のメインルーチンに戻る。
【0038】
図17は、メインルーチンのステップS4におけるMIDI IN処理のフローである。この処理では、ポインタnを1にして(ステップS94)、nをインクリメントしながら以下のループ処理を繰り返す。すなわち、MIDI IN(n)にイベントデータ(MIDIデータ)が入力されたか否かを判別し(ステップS95)、入力があった場合には、発音チャンネル(n)にそのイベントデータをストアする(ステップS96)。データをストアした後、又はステップS95においてイベントデータの入力がない場合には、nをインクリメントする(ステップS97)。そして、nが17になったか否かを判別し(ステップS98)、nが16以下である場合には、ステップS95に移行して上記ループ処理を繰り返す。ステップS98において、nが17になった場合は、MIDI IN処理を終了して、図7のメインルーチンに戻る。
【0039】
図18〜図20は、メインルーチンのステップS5における発音指示処理のフローである。この処理では、まず、MSが1であるか否かを判別する(ステップS99)。MSが1すなわち「INTERNALモード」である場合には、ポインタnを1にセットし(ステップS100)、nをインクリメントしながら以下のループ処理を繰り返す。すなわち、発音ONF(n)が1であるか否かを判別し(ステップS101)、このフラグが1(有効)の場合は、発音チャンネル(n)のMIDIデータを音源3に送出する(ステップS102)。音源3に送出した後、又は発音ONF(n)が0(無効)である場合には、nをインクリメントする(ステップS103)。そして、nが17になったか否かを判別し(ステップS104)、nが16以下である場合には、ステップS101に移行して上記ループ処理を繰り返す。
【0040】
すなわち、「INTERNALモード」の場合には、図22(2)に示すように、スイッチ群4によるミキサー設定は、発音チャンネル(17)〜(32)に対して有効であり、発音チャンネル(1)〜(16)に対しては無効となっている。したがって、MIDI INのイベントデータは、そのイベントデータ内の音色及び音量で音源3に送出される。またこの場合、図22(1)に示すように、チャンネル1、3、5……15の枠が表示されているので、これらの10個のチャンネルのみが有効な発音チャンネルになる。
【0041】
図18のステップS104において、nが17になった場合すなわち内部イベント用のチャンネルになった場合には、発音チャンネル(n)のイベントデータの内容を判別する(ステップS105)。イベントデータがノートオンである場合には、インジケータ(n−16)にそのイベントデータのベロシティデータであるVEL(n)のレベルを表示する(ステップS106)。次に、発音ONF(n)が1であるか否かを判別し(ステップS107)、このフラグが1(有効)である場合には、イベントデータ内の音高データ、ベロシティデータを音源3及びMIDI OUTに送出する(ステップS108)。そして、nをインクリメントする(ステップS109)。
【0042】
ステップS105において、イベントデータがノートオフである場合には、インジケータ(n−16)のレベルを消灯する(ステップS110)。次に、発音ONF(n)が1であるか否かを判別し(ステップS111)、このフラグが1(有効)である場合には、イベントデータ内の音高データ、ベロシティデータ(=0)を音源3及びMIDI OUTに送出する(ステップS112)。そして、ステップS109に移行して、nをインクリメントする。
【0043】
ステップS105において、イベントデータがプログラムチェンジやコントロールチェンジ等のミキサー設定の制御データである場合には、これらを無効として音源3及びMIDI OUTには送出せず、ただちにステップS109に移行してnをインクリメントする。「INTERNALモード」における発音チャンネル17〜32のミキサー設定の制御データは、図22(2)に示すように、スイッチ群4によってすでに設定され、音源3及びMIDI OUTに送出されている。ステップS107及びステップS111において、発音ONF(n)が0(無効)である場合には、ただちにステップS109に移行して、nをインクリメントする。
【0044】
nをインクリメントした後、nが33になったか否かを判別する(ステップS113)。nが32以下である場合には、ステップS105に移行して発音チャンネル(32)までの発音指示処理を繰り返す。ステップS113において、nが33にになった場合には、発音指示処理を終了して、図7のメインルーチンに戻る。
【0045】
図18のステップS99において、MSが1でない場合、すなわちMSが2〜4で、「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」のいずれかのモードである場合には、図19のフローにおいて、ポインタnを1にセットして(ステップS114)、nをインクリメントしながら、以下のループ処理を繰り返す。
【0046】
すなわち、発音チャンネル(n)の発音ONF(n)が1であるか否かを判別し(ステップS115)、このフラグが1(有効)である場合には、発音チャンネル(n)のイベントデータの内容を判別する(ステップS116)。イベントデータがノートオンである場合には、イベントデータ内の音高データ、ベロシティデータを音源3及びMIDI OUTに送出する(ステップS117)。そして、nをインクリメントする(ステップS118)。ステップS116において、イベントデータがノートオフである場合には、イベントデータ内の音高データ、ベロシティデータ(=0)を音源3及びMIDI OUTに送出する(ステップS119)。そして、ステップS118に移行して、nをインクリメントする。
【0047】
ステップS116において、イベントデータがプログラムチェンジやコントロールチェンジ等のミキサー設定の制御データである場合には、これらを無効として音源3及びMIDI OUTには送出せず、ただちにステップS118に移行してnをインクリメントする。「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」における発音チャンネル1〜16のミキサー設定の制御データは、図23(2)〜図25(2)に示すように、スイッチ群4によってすでに設定され、音源3及びMIDI OUTに送出されている。ステップS115において、発音ONF(n)が0(無効)である場合には、ただちにステップS118に移行して、nをインクリメントする。nをインクリメントした後、nが17になったか否かを判別する(ステップS120)。nが16以下である場合には、ステップS115に移行してチャンネル16までの発音指示処理を繰り返す。
【0048】
ステップS120において、nが17になった場合には、図20のフローにおいて、MSが4であるか否かを判別する(ステップS121)。MSが4すなわち「EXTERNAL PLAYモード」の場合には、発音チャンネル(17)のイベントデータを判別する(ステップS122)。イベントデータがノートオンである場合には、インジケータ(1)にそのイベントデータのベロシティデータであるVEL(17)のレベルを表示する(ステップS123)。次に、発音ONF(17)が1であるか否かを判別し(ステップS124)、このフラグが1(有効)である場合には、イベントデータ内の音高データ、ベロシティデータを音源3及びMIDI OUTのチャンネル(1)に送出する(ステップS125)。そして、nをインクリメントする(ステップS126)。
【0049】
ステップS122において、イベントデータがノートオフである場合には、インジケータ(1)のレベルを消灯する(ステップS127)。次に、発音ONF(17)が1であるか否かを判別し(ステップS128)、このフラグが1(有効)である場合には、イベントデータ内の音高データ、ベロシティデータ(=0)を音源3及びMIDI OUTのチャンネル(1)に送出する(ステップS129)。そして、ステップS126に移行して、nをインクリメントする。
【0050】
ステップS122において、イベントデータがプログラムチェンジやコントロールチェンジ等のミキサー設定の制御データである場合には、これらを無効として音源3及びMIDI OUTには送出せず、ただちにステップS126に移行してnをインクリメントする。ステップS124及びステップS128において、発音ONF(n)が0(無効)である場合には、ただちにステップS126に移行して、nをインクリメントする。
【0051】
ステップS126においてnをインクリメントした後、すなわち発音チャンネル(18)〜(32)については、インジケータ(n−16)に内部イベントデータのVEL(n)のレベルを表示する(ステップS130)。そして、発音ONF(n)が1であるか否かを判別する(ステップS131)。このフラグが1(有効)である場合には、発音チャンネル(n)のMIDIデータを音源3及びMIDI OUTのチャンネル(n−16)に送出する(ステップS132)。そして、nが33になったか否かを判別する(ステップS133)。nが32以下である場合には、ステップS126に移行してnをインクリメントし、ステップS133までのループを繰り返す。ステップS133において、nが33になった場合には、発音指示処理を終了して、図7のメインルーチンに戻る。
【0052】
すなわち、「EXTERNAL PLAYモード」の場合には、図25(2)に示すように、あらかじめ指定されている発音チャンネル(17)については、スイッチ群4によってセットされた発音チャンネル(5)のミキサー設定の制御データがコピーされるので、内部イベントデータのミキサー設定の制御データは無視される。したがって、内部イベントデータのうち音高データ及びベロシティデータだけが音源3及びMIDI OUTのチャンネル(1)に送出され、スイッチ群4によってセットされた音色データ及び音量データ等のミキサー設定の制御データで発音される。一方、指定されない発音チャンネル(18)〜(19)については、内部イベントデータのすべてが音源3及びMIDI OUTのチャンネル(2)〜(16)に送出され、内部イベントデータ自身による音色データ及び音量データ等のミキサー設定の制御データで発音される。
【0053】
図20のステップS121においてMSが4でない場合、すなわちMSが2又は3で「EXTERNALモード」又は「EXTERNAL SOLOモード」の場合には、ステップS130に移行する。すなわち、発音チャンネル(17)〜(32)について、nをインクリメントしながらステップS130〜ステップS133のループ処理を繰り返し、発音ONF(n)が1の発音チャンネル(n)についてMIDIデータを音源3及びMIDI OUTのチャンネル(n−16)に送出する。そして、ステップS133において、nが33になった場合には、発音指示処理を終了して、図7のメインルーチンに戻る。
【0054】
すなわち、「EXTERNALモード」又は「EXTERNAL SOLOモード」の場合には、内部イベントデータのすべてが音源3及びMIDI OUTのチャンネル(1)〜(16)に送出され、内部イベントデータ自身による音色データ及び音量データ等のミキサー設定の制御データで発音される。
【0055】
図21は、タイマインタラプトのフローである。この処理では、タイマインタラプトが入ると、タイマレジスタTをインクリメントして(ステップS134)、Tが所定時間を超えたか否かを判別する(ステップS135)。所定時間を超えない場合には、このフローを終了する。Tが所定時間を超えたときは、訂正フラグを0にセットして(ステップS136)、チャンネルインジケータの表示を消去する(ステップS137)。そして、タイマインタラプトを禁止する(ステップS138)。
【0056】
すなわち、訂正操作のスイッチ処理において、図10のステップS27若しくはステップS29において、カーソルスイッチ43がオンされたと判別した後、又は、図11のステップS40においてテンキー42がオンされたと判別した後に、操作待ち限界の所定時間が経過しても、次のスイッチ操作がない場合には、訂正操作を無効にする。
【0057】
以上説明したように、本実施形態においては、発音チャンネル制御装置を構成するCPU2は、外部から入力される16チャンネルの外部楽音データであるイベントデータを各チャンネルごとに記憶する第1の記憶手段、及び、内部で発生される16チャンネルの内部楽音データであるイベントデータを記憶する第2の記憶手段を構成するワークRAMを備えている。さらに、CPU2は、「INTERNALモード」、「EXTERNALモード」、「EXTERNAL SOLOモード」、「EXTERNAL PLAYモード」の異なる演奏モードの中の1つの演奏モードを設定するモード設定手段と、このモード設定手段によって設定された演奏モードに応じて、第1及び第2の記憶手段のいずれか一方を指定し、その指定した記憶手段の制御データを設定する記憶指定手段と、この記憶指定手段によって指定された記憶手段の制御データである制御データを設定する制御データ設定手段と、記憶指定手段によって指定されている記憶手段については外部楽音データ及び内部楽音データに含まれた制御データにかかわらず制御データ設定手段によって設定された制御データに基づいて発音を制御し、記憶指定手段によって指定されていない記憶手段については外部楽音データ及び内部楽音データに含まれた制御データに基づいて発音を制御する発音制御手段とを構成している。
【0058】
したがって本実施形態によれば、複数のチャンネルで構成された外部楽音データ及び内部楽音データのいずれか一方の楽音データにおいて各チャンネルごとに設定された制御データは、他方の楽音データに含まれる制御データにかかわらず保持することができるので、演奏者によって設定された楽音データの制御データが入力された楽音データの制御データによって変更されない。
【0059】
なお、上記実施形態においては、制御データである制御データとして、音色及び音量に対する制御データを例に採って説明したが、楽音を決定する他の制御データ、例えば、アフタータッチ、モジュレーション、エンベロープ等の制御データであってもよい。
【0060】
また、上記実施形態においては、「EXTERNAL PLAYモード」の場合に、内部イベント用の16個の発音チャンネルのうち、1つの発音チャンネル、例えば発音チャンネル(17)に対して、外部イベント用の発音チャンネルの制御データをコピーしたが、対応する複数の発音チャンネルに対して制御データをそれぞれコピーする構成にしてもよい。
【0061】
【発明の効果】
本発明によれば、複数のチャンネルで構成された外部楽音データ及び内部楽音データのいずれか一方の楽音データにおいて各チャンネルごとに設定された制御データは、他方の楽音データに含まれる制御データにかかわらず保持することができるので、演奏者によって設定された楽音データの制御データが入力された楽音データの制御データによって変更されない。
【図面の簡単な説明】
【図1】本発明の実施形態におけるMIDI楽器のシステムを示すブロック図。
【図2】MIDIデータの流れを説明する図。
【図3】MIDIデータの構成を示す図。
【図4】図1のスイッチ群及びLCDを含む操作部の平面図。
【図5】図4のエリアに表示されたインジケータの例を示す図。
【図6】図4のエリアに表示されたインジケータの例を示す図。
【図7】CPUのメインルーチンのフローチャート。
【図8】図7のステップS2におけるスイッチ処理のフローチャート。
【図9】図8に続くスイッチ処理のフローチャート。
【図10】図9に続くスイッチ処理のフローチャート。
【図11】図10に続くスイッチ処理のフローチャート。
【図12】図10に続くスイッチ処理のフローチャート。
【図13】図10に続くスイッチ処理のフローチャート。
【図14】図8に続くスイッチ処理のフローチャート。
【図15】図14に続くスイッチ処理のフローチャート。
【図16】図7のステップS3における内部イベント処理のフローチャート。
【図17】図7のステップS4におけるMIDI IN処理のフローチャート。
【図18】図7のステップS5における発音指示処理のフローチャート。
【図19】図18に続く発音指示処理のフローチャート。
【図20】図19に続く発音指示処理のフローチャート。
【図21】CPUのタイマインタラプトのフローチャート。
【図22】INTERNALモードにおけるチャンネルの制御方法を示す図。
【図23】EXTERNALモードにおけるチャンネルの制御方法を示す図。
【図24】EXTERNAL SOLOモードにおけるチャンネルの制御方法を示す図。
【図25】EXTERNAL PLAYモードにおけるチャンネルの制御方法を示す図。
【図26】INTERNALモードにおける操作部の一例を示す図。
【符号の説明】
1 鍵盤
2 CPU
3 音源
4 スイッチ群
5 LCD
6 FDD
7 MIDI端子
8 波形ROM
Claims (3)
- 装置外部より供給され、複数種のMIDIチャンネルのいずれかを示すチャンネルデータを含むMIDIイベントを入力するMIDIイベント入力手段と、
装置内部にて前記チャンネルデータを含むMIDIイベントを発生するMIDIイベント発生手段と、
生成されるべき楽音の発生形態を制御するための制御データを設定する制御データ設定手段と、
複数のMIDIチャンネルを有するとともに、各MIDIチャンネル毎に対応するチャンネルデータを含む供給されたMIDIイベント及び制御データに基づいて楽音を生成する楽音生成手段と、
異なる演奏モードを有し、これら異なる演奏モードのいずれかひとつを指定する演奏モード指定手段と、
この演奏モード指定手段により指定された演奏モードに対応して、前記MIDIイベント入力手段及びMIDIイベント発生手段のいずれか一方により得られたMIDIイベントのうち生成される楽音の発生形態を制御する制御イベントを除くMIDIイベントと前記制御データ設定手段によって設定された、楽音の発生形態を制御する制御データとを前記楽音生成手段の複数のMIDIチャンネルの一部に供給するとともに、他方により得られたMIDIイベント全てを前記楽音生成手段の残りのMIDIチャンネルに供給する発音制御手段と、
を有することを特徴とする発音チャンネル制御装置。 - 前記発音チャンネル制御装置は、更に前記制御データ設定手段によって設定された制御データが供給されている前記一部のMIDIチャンネルのうちいずれかひとつのMIDIチャンネルを指定する指定手段を有し、
前記発音制御手段は、前記指定手段にて指定されたMIDIチャンネルに対して、当該指定されたMIDIチャンネルを示すチャンネルデータを含むMIDIイベントが当該指定されたMIDIチャンネルに供給されるのを禁止するとともに、前記残りのMIDIチャンネル中の特定のMIDIチャンネルに対して前記イベント発生手段から供給されているイベントのうち前記特定のMIDIチャンネルを示すチャンネルデータを含む制御イベントに代えて前記制御データ設定手段によって前記指定されたMIDIチャンネルに設定された制御データを前記指定されたMIDIチャンネルに供給することを特徴とする請求項1記載の発音チャンネル制御装置。 - 前記制御データは、発音の音色を設定する音色データであることを特徴とする請求項1又は2に記載の発音チャンネル制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36906797A JP3663873B2 (ja) | 1997-12-29 | 1997-12-29 | 発音チャンネル制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36906797A JP3663873B2 (ja) | 1997-12-29 | 1997-12-29 | 発音チャンネル制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11194765A JPH11194765A (ja) | 1999-07-21 |
JP3663873B2 true JP3663873B2 (ja) | 2005-06-22 |
Family
ID=18493478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36906797A Expired - Fee Related JP3663873B2 (ja) | 1997-12-29 | 1997-12-29 | 発音チャンネル制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3663873B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3918676B2 (ja) | 2002-08-05 | 2007-05-23 | ヤマハ株式会社 | オーディオミキシング用信号経路設定装置およびオーディオミキシング用信号経路設定プログラム |
JP3870948B2 (ja) * | 2004-02-04 | 2007-01-24 | ヤマハ株式会社 | 表情付け処理装置および表情付け用コンピュータプログラム |
-
1997
- 1997-12-29 JP JP36906797A patent/JP3663873B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11194765A (ja) | 1999-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1302927B1 (en) | Chord presenting apparatus and method | |
US4993307A (en) | Electronic musical instrument with a coupler effect function | |
JP3743298B2 (ja) | 電子楽器 | |
JPH04274498A (ja) | 自動演奏装置 | |
JP3139923B2 (ja) | 自動伴奏装置 | |
US7129406B2 (en) | Automatic performance apparatus | |
US8373055B2 (en) | Apparatus, method and computer program for switching musical tone output | |
JP3663873B2 (ja) | 発音チャンネル制御装置 | |
US6809248B2 (en) | Electronic musical apparatus having musical tone signal generator | |
US5319152A (en) | Chord information output apparatus and automatic accompaniment apparatus | |
JP3844286B2 (ja) | 電子楽器の自動伴奏装置 | |
JPH07104749A (ja) | 鍵盤楽器 | |
JP5643532B2 (ja) | 電子楽音発生器の音域設定装置 | |
US6080926A (en) | Automatic accompanying apparatus and automatic accompanying method capable of simply setting automatic accompaniment parameters | |
JP2958487B2 (ja) | クリツク音による設定状態告知機能を備えた電子楽器 | |
JPH06259064A (ja) | 電子楽器 | |
JP3498621B2 (ja) | ハーモニータイプ表示装置 | |
JP4214845B2 (ja) | 自動アルペジオ装置および同装置に適用されるコンピュータプログラム | |
JP3596024B2 (ja) | 電子楽器 | |
JP3282675B2 (ja) | 電子楽器 | |
JP3414188B2 (ja) | 表示配置変更装置 | |
JP3121196B2 (ja) | 電子楽器 | |
JP3430894B2 (ja) | 和音検出方法、和音検出装置及び和音検出プログラムを記録した記録媒体 | |
JP3087811B2 (ja) | 電子楽器の自動伴奏装置 | |
JP2542316B2 (ja) | 自動伴奏装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050215 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050321 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090408 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100408 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110408 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120408 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120408 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130408 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130408 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |