JP3087724B2 - 楽音合成装置 - Google Patents

楽音合成装置

Info

Publication number
JP3087724B2
JP3087724B2 JP10126752A JP12675298A JP3087724B2 JP 3087724 B2 JP3087724 B2 JP 3087724B2 JP 10126752 A JP10126752 A JP 10126752A JP 12675298 A JP12675298 A JP 12675298A JP 3087724 B2 JP3087724 B2 JP 3087724B2
Authority
JP
Japan
Prior art keywords
tone
data
level
effect
register
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 - Lifetime
Application number
JP10126752A
Other languages
English (en)
Other versions
JPH10326096A (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 JP10126752A priority Critical patent/JP3087724B2/ja
Publication of JPH10326096A publication Critical patent/JPH10326096A/ja
Application granted granted Critical
Publication of JP3087724B2 publication Critical patent/JP3087724B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、電子楽器に関
し、特にMIDIにより各種のデータを受信して動作す
る電子楽器などに適用して好適な技術に関する。
【0002】
【従来の技術】特開昭59−197090号公報には、
外部から取り込まれた楽音制御情報を、その楽音発生手
段で発生可能な楽音の特性を制御する楽音制御用データ
に変換する技術が示されている。これは、その電子楽器
で発音できない音色を受け付けたときに、なんらかの音
色で置き換えて発音するものである。
【0003】
【発明が解決しようとする課題】しかしながら、楽器の
音色のなかには置き換えることができる音色と置き換え
ることがふさわしくない音色とがある。上記公報に開示
された技術では、すべての音色をあらかじめ決められた
音色に固定的に置き換えていたので、置き換えた後の音
色が自然なものにならない場合があった。
【0004】この発明は、外部から音色の変更指示を受
け付ける楽音合成装置において、音色置き換え時に過去
の履歴によって置き換え対象を選択することにより、自
然な音色の置き換えを実現するようにすることを目的と
する。
【0005】
【課題を解決するための手段】この目的を達成するた
め、この発明は、複数の楽音指定パラメータの組み合わ
せによって設定される音色データの音色で楽音を合成す
る楽音合成装置において、上記複数の楽音指定パラメー
タの組み合わせに対応した複数の音色データを記憶した
音色テーブルと、外部からの音色の指定を受け付ける手
段と、指定された音色に対応する音色データが前記音色
テーブル中に存在しなかった場合は、上記複数の楽音指
定パラメータのうち特定のものの値に基づいて所定の楽
音指定パラメータを選択し、該選択された楽音指定パラ
メータの値を、当該楽音指定パラメータに対応してそれ
ぞれ記憶されている過去の履歴を参照した値に置き換え
ることによって、現在設定されている音色データを、存
在が確認されている前記音色テーブル中の音色データに
置き換えて発音する手段とを備えたことを特徴とする。
また、それぞれ設定された音色データの音色で楽音を合
成する複数の楽音発生系列を有する楽音合成装置におい
て、複数の音色データを記憶した音色テーブルと、上記
各楽音発生系列に対応して外部からの音色の指定を各々
受け付ける手段と、上記各楽音発生系列について指定さ
れた音色に対応する音色データが前記音色テーブル中に
存在しなかった場合は、現在当該系列に設定されている
音色データを、存在が確認されている前記音色テーブル
中の複数の音色データ中から上記各楽音発生系列毎に記
憶されている過去の履歴に応じて選択した音色データに
置き換えて発音する手段とを備えたことを特徴とする。
【0006】
【実施例】以下、図面を用いて、この発明の実施例を説
明する。
【0007】図1は、この発明の一実施例に係る楽音合
成装置のブロック構成を示す。この楽音合成装置は、M
IDIインターフェース1、CPU(中央処理装置)
2、ROM(リードオンリーメモリ)3、RAM(ラン
ダムアクセスメモリ)4、操作パネル5、楽音合成回路
6、エフェクト回路7、サウンドシステム8、およびバ
スライン9を備えている。
【0008】MIDIインターフェース1は、MIDI
(Musical Instrument Digital Interface)規格にした
がって、外部のMIDI機器との間で演奏情報を送受す
るためのインターフェースである。CPU2は、この楽
音合成装置全体の動作を制御する。ROM3には、CP
U2が実行するプログラムや各種の制御データなどが格
納されている。RAM4には、各種のレジスタやフラグ
などのワーキング領域が設けられている。
【0009】操作パネル5は、ユーザが操作するための
各種の操作子を含む。楽音合成回路6は、CPU2から
の指示に基づいて楽音信号を発生する。エフェクト回路
7は、楽音合成回路6から出力された楽音信号を原音と
して入力し、各種のエフェクトを付与して出力する。サ
ウンドシステム8は、エフェクト回路7から出力される
エフェクト付与済みの楽音信号に応じて楽音を放音す
る。バスライン9は、これら各部を接続する双方向のバ
スラインである。
【0010】図2は、エフェクト回路7のブロック構成
を示す。この実施例のエフェクト回路7は、リバーブ回
路11、トレモロ回路12、コーラス回路13、乗算器
21〜24、および加算器31〜33を備えている。リ
バーブ回路11やトレモロ回路12などの個々のエフェ
クト付与のための回路は、エフェクト付与回路と総称す
るものとする。エフェクト回路7は各MIDIチャンネ
ルに対応して独立に設けられるが、時分割処理で共有し
てもよい。
【0011】楽音合成回路6からの原音の楽音信号は、
4つの乗算器21〜24に入力してそれぞれ所定の乗数
と乗算される。乗算器21は、エフェクトを付与しない
原音(ドライ音)の音量レベルを調整するためのもので
ある。乗算器22は、リバーブ回路11によりリバーブ
を付与するエフェクト音の音量レベルを調整するための
ものである。乗算器23は、トレモロ回路12によりト
レモロを付与するエフェクト音の音量レベルを調整する
ためのものである。乗算器24は、コーラス回路13に
よりコーラスを付与するエフェクト音の音量レベルを調
整するためのものである。
【0012】このように音量レベルが調整されたドライ
音、および各エフェクト音は、加算器31〜33により
加算され、最終的なエフェクト付与済みの楽音信号とし
て、サウンドシステム8に出力される。
【0013】次に、この実施例の楽音合成装置の動作の
概要を説明する。
【0014】この楽音合成装置では、MIDIインター
フェース1を介して、外部から演奏情報を受信する。受
信した演奏情報は、所定のMIDIバッファに格納され
る。CPU2は、このMIDIバッファをスキャンし、
データがあるときは、そのデータに応じた処理を行な
う。
【0015】例えば、ノートデータ(音高データやキー
オン/オフデータなどを含む演奏データ)を受信した場
合、CPU2は、そのノートデータを一旦ノートバッフ
ァに書き込み、後に楽音合成回路6に対し、そのノート
データに応じた楽音信号を発生するように指示を与え
る。楽音合成回路6は、CPU2からの指示に応じて楽
音信号を発生する。
【0016】上述した乗算器21〜24の乗数、すなわ
ちドライ音および各エフェクト音の音量レベルも、外部
から与えられたエフェクトデータに応じて決定される。
すなわち、外部からエフェクトデータを受信すると、C
PU2は、そのエフェクトデータに応じて、エフェクト
回路7におけるドライ音および各エフェクト音の音量レ
ベルを設定する。
【0017】ここで、外部から与えられるエフェクトデ
ータ中には、この楽音合成装置に備えられていないエフ
ェクトに対するものもある。例えば、図2のエフェクト
回路11〜13、乗算器21〜24、および加算器31
〜33に加えて、さらに別のエフェクト回路であるセレ
ステ回路41およびフェーザ回路42、乗算器51,5
2、並びに加算器61〜63を備えた他の楽音合成装置
で、エフェクトデータを作成する場合がある。
【0018】このとき、そのエフェクトデータ中には、
セレステやフェーザのエフェクト音の音量レベルを設定
(調整)するためのエフェクトデータが含まれるととも
に、ドライ音の音量レベルは、セレステやフェーザのエ
フェクト音が出力されることを仮定して設定してある。
【0019】したがって、受信したエフェクトデータ
(セレステやフェーザに対する音量レベルの設定データ
を含むエフェクトデータ)をそのまま用いて、セレステ
回路やフェーザ回路を備えていない本実施例の楽音合成
装置のエフェクト回路7におけるドライ音およびエフェ
クト音の音量レベル設定を行なうと、ドライ音の音量レ
ベルが小さめとなり、全体としてのエフェクトバランス
がくずれることとなる。
【0020】そこで、この実施例の楽音合成装置では、
自機が備えていないセレステやフェーザに対する音量レ
ベルの設定データを含むエフェクトデータが受信された
場合でも、適正なエフェクトバランスを得ることができ
るように、以下のように音量レベルを設定するようにし
ている。
【0021】エフェクトデータとして、「BnH+5
AH+Vd」が受信された場合 「BnH」はコントロールチェンジのコードであり、引
き続く2バイトのデータに応じて楽音合成装置の各部分
をコントロールすることができる。「n」に「0」から
「F」までのMIDIチャンネル番号を指定することが
できる。またHは16進表記であることを示す。このよ
うに、以下のエフェクトは、MIDIチャンネル毎に指
定できる。よって、各レジスタも、特にことわらない
が,MIDIチャンネル毎に用意されているものとす
る。
【0022】「5AH」は、引き続くデータがドライセ
ンドレベルVdであることを示すコードである。ドライ
センドレベルVdのデフォルト値は7FHとする。ただ
し、レベル値の範囲は00H〜7FHである。「5AH
+Vd」が受信された場合、CPU2は、その時点で設
定されている他のエフェクト音のレベルに応じてドライ
センドレベルVdを補正し、補正後の値に応じてドライ
音の音量レベルを設定する。
【0023】具体的には、ドライセンドレベルVdに、
リバーブ、トレモロ、コーラス、セレステ、およびフェ
ーザの内、受信能力のないエフェクト(この実施例では
セレステとフェーザ)のセンドレベルの相当音量を足し
算する。すなわち、受信能力のない任意のエフェクトの
センドレベルをVeとすると、ドライセンドレベルの合
計は次式により算出する。
【0024】 L=20log{(Vd4+ΣVe4/16)1/2/1272}…(1)
【0025】ここで、Lは合計したドライ音量レベル
(dB)、ΣVe4は受信能力のない(すなわち装備さ
れていない)エフェクトのセンドレベルの各々を4乗し
たものの和を取ったものである。このドライレベルL
を、エフェクト回路7に送り、この値に応じて乗算器2
1の乗数を設定する。
【0026】ただし、合計音量が0dBを越える場合
は、すべて0dBとみなす。また、(Vd4+ΣVe4
16)1/2=0のときは、L=−∞(音量ゼロ)とす
る。ドライセンド量のダイナミックレンジの下限値以下
の音量については、下限値で代用するものとする。
【0027】エフェクトデータとして、「BnH+5
BH+V」が受信された場合 「5BH」は、引き続くデータがリバーブのセンドレベ
ルVであることを示すコードである。このエフェクトデ
ータが受信された場合、CPU2は、次式によってリバ
ーブレベルLを算出し、そのリバーブレベルLをエフェ
クト回路7に送り、この値に応じて乗算器22の乗数を
設定する。
【0028】L=20log(V2/1272)…(2)
【0029】リバーブ以外のエフェクト、すなわちト
レモロ、コーラス、セレステ、およびフェーザについて
も、上記と同様に(2)式で算出したレベルで設定す
る。ただし、コード「5BH」は、それぞれ「5C
H」、「5DH」、「5EH」および「5FH」とす
る。
【0030】なお、当然ながら、装備されていないエフ
ェクトについてのエフェクトデータが上記およびの
ように受信されたときには、受信したエフェクトのセン
ドレベルVを記憶する(のVeとして用いるための記
憶)だけで、エフェクト回路への設定は行なわれない。
【0031】また、上記およびにおいて、V=0の
ときは、L=−∞(音量ゼロ)とする。各エフェクトの
リターン音の音量レベルは、センドレベル値が最大のと
きにドライ音に対しておおむね−12dBの音量感にな
るようにセットする。センド量のダイナミックレンジの
下限値以下の音量については、下限値で代用するものと
する。
【0032】各エフェクトのセンドレベルVのデフォル
ト値は、リバーブが40H、他のエフェクトが00Hと
なるようにしている。
【0033】次に、図3〜図13のフローチャートを参
照して、この実施例の楽音合成装置の動作を詳しく説明
する。
【0034】図3は、この楽音合成装置のメインルーチ
ンを示す。この楽音合成装置の電源がオンされると、ま
ず、ステップS1でイニシャライズを行なう。次に、ス
テップS2でMIDIインターフェース処理を行ない、
ステップS3で発音処理を行ない、ステップS4でパネ
ル処理を行ない、ステップS5でその他の処理を行な
う。その後、ステップS2に戻り、以降の処理を繰り返
す。
【0035】図4は、図3のステップS2のMIDIイ
ンターフェース処理ルーチンを示す。まず、ステップS
11でMIDIバッファをスキャンする。受信したデー
タは、MIDIバッファに格納されるようになってい
る。ステップ12でMIDIバッファにイベントデータ
が格納されているか否か判別する。イベントデータが格
納されていない場合は、そのままリターンする。
【0036】ステップS12でMIDIバッファにイベ
ントデータが格納されている場合は、そのイベントに応
じて、ステップS13で図5以下の各イベント対応処理
を実行する。各イベント対応処理を実行した後は、ステ
ップS14にて処理済のイベントデータをMIDIバッ
ファから削除し、ステップS11に戻って、MIDIバ
ッファにイベントデータが残っているかぎり、ステップ
S11からS14までの処理を繰り返す。
【0037】図5は、図4のステップS13から呼び出
されるエフェクト処理ルーチンを示す。以下のルーチン
では、各MIDIチャンネル毎に独立に処理が行われ
る。まず、ステップS21で、MIDIバッファのエフ
ェクトデータがドライレベルの設定を指示するデータ
(上記の場合)か否かを判別する。ドライレベルの設
定を指示するデータであるときは、ステップS22でド
ライレベル設定処理を行ない、リターンする。
【0038】ステップS21でドライレベルの設定を指
示するデータでないときは、ステップS23で、エフェ
クトデータがリバーブレベルの設定を指示するデータ
(上記の場合)か否かを判別する。リバーブレベルの
設定を指示するデータであるときは、ステップS24で
リバーブ設定処理を行ない、リターンする。
【0039】ステップS23でリバーブレベルの設定を
指示するデータでないときは、ステップS25で、トレ
モロレベルの設定を指示するデータか否かを判別する。
トレモロレベルの設定を指示するデータであるときは、
ステップS26でトレモロ設定処理を行ない、リターン
する。
【0040】ステップS25でトレモロレベルの設定を
指示するデータでないときは、ステップS27で、コー
ラスレベルの設定を指示するデータか否かを判別する。
コーラスレベルの設定を指示するデータであるときは、
ステップS28でコーラス設定処理を行ない、リターン
する。
【0041】ステップS27でコーラスレベルの設定を
指示するデータでないときは、ステップS29で、セレ
ステレベルの設定を指示するデータか否かを判別する。
セレステレベルの設定を指示するデータであるときは、
ステップS30でセレステ設定処理を行ない、リターン
する。
【0042】ステップS29でセレステレベルの設定を
指示するデータでないときは、ステップS31で、フェ
ーザレベルの設定を指示するデータか否かを判別する。
フェーザレベルの設定を指示するデータであるときは、
ステップS32でフェーザ設定処理を行ない、リターン
する。ステップ31でフェーザレベルの設定を指示する
データでないときは、ステップS33でその他のエフェ
クト処理を行ない、リターンする。
【0043】図6は、図5のステップS22のドライレ
ベル設定処理ルーチンを示す。まず、ステップS41
で、自機のエフェクト回路7がリバーブ、トレモロ、コ
ーラス、セレステ、およびフェーザを装備しているか否
かを調べる。次に、ステップS42で、受信したドライ
センドレベルのデータをレジスタVdにセットする。
【0044】また、ステップS43で、装備されていな
いエフェクトのレベルをレジスタVeiにセットする。
この実施例では、セレステおよびフェーザが装備されて
いないから、現時点におけるセレステレベルをレジスタ
Ve1に、フェーザレベルをレジスタVe2に、それぞ
れセットすることとなる。
【0045】次に、ステップS44で、 L=20log{(Vd4+ΣVei4/16)1/2/1
272} を計算する。これは上記の(1)式の計算である。こ
の実施例ではΣVei4は、Ve14+Ve24となる。
なお、合計音量が0dBを越える場合は、0dBとす
る。
【0046】次に、ステップS45で、上記のLをドラ
イレベルとして、エフェクト回路7に送出する。これに
より、ドライレベルLに応じて乗算器21の乗数が設定
されることとなる。ステップS45の後、リターンす
る。
【0047】図7は、図5のステップS24のリバーブ
設定処理ルーチンを示す。まず、ステップS51で、受
信したリバーブのセンドレベルのデータをレジスタVに
セットする。次に、ステップS52で、センドレベルV
をリバーブレベルとして、所定のレジスタに記憶保持す
る。ここで、リバーブレベルを記憶しておくのは、もし
自機のエフェクト回路にリバーブが装備されていないと
き、上述した図6のステップS43で装備されていない
エフェクトのレベルとして用いるためである。
【0048】次に、ステップS53で、自機のエフェク
ト回路7にリバーブが装備されているか否かを判別す
る。リバーブが装備されていないときは、そのままリタ
ーンする。リバーブが装備されているときは、ステップ
S54でL=20log(V2/1272)を計算する。
これは、上述のの(2)式の計算である。
【0049】そして、ステップS54で計算結果Lをリ
バーブレベルとしてエフェクト回路7に送出する。これ
により、リバーブレベルLに応じて乗算器22の乗数が
設定されることとなる。ステップS55の後、リターン
する。
【0050】図5のステップS26のトレモロ設定処
理、ステップS28のコーラス設定処理、ステップS3
0のセレステ設定処理、およびステップS32のフェー
ザ設定処理は、上述の図7のリバーブ設定処理と同様で
ある。すなわち、受信した各エフェクトのセンドレベル
をレジスタVにセットするとともに、所定のレジスタに
記憶保持し、さらに自機がトレモロなど各エフェクトを
装備しているか否か判別し、装備している場合は、ステ
ップS54,S55のように(2)式でレベルLを算出
して各エフェクトのレベルとしてエフェクト回路7に送
出する。
【0051】この実施例では、セレステとフェーザが装
備されていないから、ステップS30のセレステ設定処
理とステップS32のフェーザ設定処理においては、ス
テップS54,S55に相当する処理は実行されないこ
とになる。
【0052】次に、図4のステップS13から呼び出さ
れる他の処理ルーチンについて、図8〜図12を参照し
て説明するが、その前にそれらの処理ルーチンで用いて
いるレジスタについて説明する。
【0053】(1)BSL[i]:各MIDIチャンネ
ル毎のバンクセレクトのLSBを記憶するレジスタであ
る。引き数iがMIDIチャンネルを示す。 (2)BSM[i]:各MIDIチャンネル毎のバンク
セレクトのMSBを記憶するレジスタである。引き数i
がMIDIチャンネルを示す。 (3)KC:キーコードを記憶するレジスタである。 (4)KEV:キーイベント(キーオンまたはキーオ
フ)の別を記憶するレジスタである。
【0054】(5)KV:キーベロシティを記憶するレ
ジスタである。 (6)LSD[i]:各MIDIチャンネル毎のバンク
セレクトLSBの一時記憶レジスタである。引き数iが
MIDIチャンネルを示す。 (7)M:マスターチューニングデータを記憶するレジ
スタである。 (8)MCH:MIDIチャンネル番号を記憶するレジ
スタである。 (9)MSD[i]:各MIDIチャンネル毎のバンク
セレクトMSBの一時記憶レジスタである。引き数iが
MIDIチャンネルを示す。
【0055】(10)mtun:マスタチューニングの
最終計算値を記憶するレジスタである。 (11)mvol:マスタボリュームの最終計算値を記
憶するレジスタである。 (12)PC[i]:各MIDIチャンネル毎のプログ
ラムチェンジ番号を記憶するレジスタである。引き数i
がMIDIチャンネルを示す。 (13)PD[i]:各MIDIチャンネル毎のプログ
ラムチェンジ番号の一時記憶レジスタである。引き数i
がMIDIチャンネルを示す。 (14)TCH:空きチャンネル番号を記憶するレジス
タである。
【0056】(15)VD[i]:各MIDIチャンネ
ル毎のビブラートデータの一時記憶レジスタである。引
き数iがMIDIチャンネルを示す。 (16)VDE:各MIDIチャンネル毎のビブラート
データの最終計算値を記憶するレジスタである。 (17)VMin:各音色毎のビブラートの最低変調深
さを記憶するレジスタである。 (18)VSens:各音色毎のビブラートのセンシテ
ィビティーを記憶するレジスタである。
【0057】(19)LBSL[i]:各MIDIチャ
ンネル毎の最後にバンクセレクトMSB=00Hで発音
可能であったバンクセレクトのLSBを記憶するレジス
タである。引き数iがMIDIチャンネルを示す。 (20)LPC[i]:各MIDIチャンネル毎の最後
にバンクセレクトMSB=7FHで発音可能であったプ
ログラムチェンジ番号を記憶するレジスタである。引き
数iがMIDIチャンネルを示す。 (21)USER:メロディ音色としてMSB=00H
以外を選択した際に、その音色がその楽器に用意されて
いるかどうかを示す。
【0058】なお、これらのレジスタは初期化の際にす
べて0に初期設定される。
【0059】図8は、図4のステップS13から呼び出
されるエクスクルーシブ処理ルーチンを示す。エクスク
ルーシブ処理ルーチンは、MIDIインターフェースか
らエクスクルーシブメッセージを受信したとき実行され
る。
【0060】まず、ステップS61で、MIDIバッフ
ァのエクスクルーシブデータがマスタチューニングの設
定を指示するデータであるか否かを判別する。マスタチ
ューニングの設定を指示するデータであるときは、ステ
ップS62で、受信したマスタチューニングのデータを
レジスタMにセットする。ただし、データの範囲は00
H〜FFHである。また、デフォルト値は7FHとす
る。
【0061】次に、ステップS63で、レジスタMの値
を元にマスタチューニングの最終計算値mtunを計算
する。mtunは、レジスタMのデータが00Hのとき
に−100、7FHのときに約100の値をとり、これ
をセント値として解釈することにより、標準ピッチを中
心に前後半音の範囲でマスタチューニングの設定を行う
ことができる。
【0062】さらに、ステップS64では、楽音合成回
路にレジスタmtunの値を出力する。その後、図4の
ステップ14に戻る。楽音合成回路においては、mtu
nの値を受信した時点でマスタチューニングを変更して
もよいし、その後新たに受け付ける発音より、マスタチ
ューニングを変更するようにしてもよい。
【0063】ステップS61でマスタチューニングの設
定を指示するデータでないときは、ステップS65で、
マスタボリュームの設定を指示するデータか否かを判断
する。マスタボリュームの設定を指示するデータである
ときは、ステップS66で、受信したマスタボリューム
のデータをレジスタmvolにセットする。ただし、デ
ータの範囲は00H〜7FHである。
【0064】次に、ステップS67で、楽音合成回路に
レジスタmvolの値を出力する。マスタボリュームは
実時間で処理されるべきデータであるので、楽音合成回
路に送った時点で、各チャンネルのボリュームが変化す
る。その後、図4のステップ14に戻る。
【0065】ステップS65でマスタボリュームの設定
を指示するデータでないときは、ステップS68で、シ
ステムのイニシャライズを指示するデータか否かを判断
する。システムのイニシャライズを指示するデータであ
るときは、ステップS69で、マスタチューニング以外
の各種の設定の初期化を行う。
【0066】ここで、一般の自然楽器やMIDI信号を
受け付ける自然楽器とアンサンブル演奏を行う場合、楽
器間のチューニングは最終的に演奏者が行う必要があ
る。一般にこれらのチューニングは時間がかかるが、一
度合わせれば、ある程度の期間は再調整をする必要がな
い。これに対して、システムのイニシャライズは、曲の
変わり目などで新たなデータを送る前に、不要な設定が
残らないようにするなど、比較的頻繁に使われるもので
ある。よって、ここではマスタチューニングのデータに
限ってイニシャライズを行わないようにする。イニシャ
ライズでは以下の情報の設定を行う。
【0067】・ドライセンドレベル←7FH ・各エフェクトレベル←00H ・マスタチューニング←7FH ・マスタボリューム←7FH ・プログラムチェンジ←00H ・バンクセレクトMSB←00H ・バンクセレクトMSB←7FH(MIDI10chの
み) ・バンクセレクトLSB←00H ・ビブラートデータ←00H
【0068】その後、図4のステップS14に戻る。
【0069】ステップS68でイニシャライズを指示す
るデータでないときは、ステップS70にてその他のエ
クスクルーシブ処理を行った後、図4のステップS14
に戻る。
【0070】図9は、図4のステップS13から呼び出
されるバンクセレクト処理ルーチンを示す。バンクセレ
クト処理ルーチンは、MIDIインターフェースからバ
ンクセレクト信号を受信したとき実行される。バンクセ
レクトは、MSBとLSBとを備えている。バンクセレ
クトMSBは、メロディ音色、リズム音色、およびユー
ザ音色の切り替えに用いる。バンクセレクトLSBは、
メロディ音色およびユーザ領域の拡張部を表す。
【0071】まず、ステップS81で、受信したバンク
セレクトのMIDIチャンネル番号をレジスタMCHに
設定する。ステップS82では、受信したバンクセレク
ト信号がMSB側のデータであるかどうかが判断され
る。MSB側のデータであった場合は、ステップS83
で、MIDIチャンネル毎に設けられているバンクセレ
クトデータのMSBの一時記憶レジスタMSDに、受信
したバンクセレクトデータを記憶する。その後、リター
ンする。
【0072】ステップS82にて、受信したバンクセレ
クト信号がMSB側のデータでない(すなわち、LSB
側のデータ)と判断されたときは、ステップS84に
て、レジスタLSDに、受信したバンクセレクトデータ
を記憶する。その後、リターンする。
【0073】ここで、実際のバンクセレクトは、後述す
るプログラムチェンジ信号を受信した時点で行われるこ
とになる。そのために、各バンクセレクトデータは、一
時記憶レジスタMSD、およびLSDに記憶される。
【0074】図10は、図4のステップS13から呼び
出されるプログラムチェンジ処理ルーチンを示す。プロ
グラムチェンジ処理ルーチンは、MIDIインターフェ
ースからプログラムチェンジデータを受信したとき実行
される。
【0075】まず、ステップS91で、受信したプログ
ラムチェンジのMIDIチャンネル番号をレジスタMC
Hに設定し、プログラムチェンジ番号自体をプログラム
チェンジデータの一時記憶レジスタPD[MCH]に設
定する。ステップS92で、受信したバンクセレクトデ
ータ、およびプログラムチェンジデータを、一時的に音
源送出用の各レジスタBSM[MCH],BSL[MC
H],PC[MCH]に記憶する。
【0076】次に、ステップS93で、そのMIDIチ
ャンネルに割り当てられているバンクセレクトMSBが
7FHであるか否かを判断する。7FHであった場合
は、そのMIDIチャンネルにリズム音色が割り当てら
れていることを示す。以下に説明するとおり、リズム音
色とメロディ音色とによって、プログラムチェンジやバ
ンクセレクトの信号の解釈が異なる。
【0077】MIDIのMCHチャンネルにメロディ音
色が割り当てられている場合は、ステップS94にて、
MCHチャンネルのバンクセレクトMSB、バンクセレ
クトLSB、およびプログラムチェンジPDに応じて、
メロディ音色テーブルを参照する。メロディ音色テーブ
ルには、実際の楽音データの記憶領域のアドレスが書き
込まれており、それらより、音色が存在するか否かも判
断することができる。
【0078】ステップS95では、バンクセレクトMS
Bが00Hであるか否かを判断する。00Hである場合
は、指定された音色が機種間共通の音色セットの内の1
つであることを示すので、ステップS96以下の音色置
き換え処理を行なう。
【0079】機種間共通の音色を採用する楽器において
も、性能の違いにより、すべての音色を用意していると
は限らない。機種間共通の音色セットを用いる場合は、
プログラムチェンジにより音色を選択し、バンクセレク
トのLSBにより音色のバリエーションを選択するよう
になっている。よって、高性能の機種においては、LS
Bの拡張により、多種類のバリエーションを備えている
が、廉価な機種においては、音色セットを1種類しか備
えていないということが考えられる。
【0080】しかし、このような場合においても、同一
のプログラムチェンジ番号にしたがった音色を発音すれ
ば、それほど違和感のない音色で発音される。そこで、
指定された音色が機種間共通の音色セットの内の1つで
ある場合には、以下の通りに、最後に確認されたバンク
セレクトLSBの音色セットが発音されることとなる。
【0081】ステップS96では、ステップS94の判
断に基づいて対応する音色があったかどうかが判断され
る。音色がある場合は、ステップS92にて設定された
各情報に基づいて楽音を発生できるので、何も変更は加
えず、ステップS97にて、最後に確認されたバンクセ
レクトLSBの番号として、BSLをレジスタLBSL
にセットする。その後、リターンする。
【0082】ステップS96で音色がないと判断された
場合は、ステップS98に進み、ステップS92にて設
定された情報のうち、バンクセレクトLSBを、ステッ
プS97で設定される、LBSLで置き換える。その
後、リターンする。このようにして、バンクセレクトM
SBが00Hの場合は、バンクセレクトLSBによる音
色セットの置き換えが行なわれる。
【0083】ステップS95でバンクセレクトMSBが
00Hでなかった場合は、機種間共通の音色セットでは
なく、機種固有の音色セットが選択されたことを示す。
この場合、機種間共通音色のように音色の置き換えを行
なうことはできない。そこで、音色がある場合は、その
音色で発音を行ない、音色がない場合は少なくとも発音
を行なわないようにする。さらに、発音チャンネルの無
駄遣いを防ぐために発音チャンネルのアサイン自体を行
なわないようにしてもよい。
【0084】ステップS99では、ステップS94の判
断結果に応じて、レジスタUSERを設定する。レジス
タUSERは後述する発音処理(図13)にて利用さ
れ、USER=0の場合は、発音チャンネルの割当自体
を行なわないようにする。
【0085】ステップS93に戻り、MSDが7FHで
あると判断された場合は、ステップS100に進み、M
IDIのMCHチャンネルのバンクセレクトLSBを記
憶するレジスタBSM、およびプログラムチェンジ番号
を一時的に記憶するレジスタPDに応じて、リズム音色
テーブル中に対応する楽音が存在するかを調べる。
【0086】リズム音色についても、メロディ音色のバ
ンクセレクトLSBのように、プログラムチェンジによ
り、バリエーションの選択を行なうことができる。
【0087】ステップS101において、音色があると
判断されたときは、ステップS92にて設定されたプロ
グラムチェンジ番号PCに応じて楽音の発生を行なう
が、音色の置き換えのために、ステップS102にて設
定されたPCをLPCに保存しておく。また、音色が無
しと判断されたときは、ステップS103において、ス
テップS92で設定されたプログラムチェンジ番号を、
発音することが確認されているプログラムチェンジ番号
LPCで置き換える。その後、リターンする。
【0088】以上のように、バンクセレクトMSBは、
メロディ音とリズム音との切り替えやモデル毎の特殊な
音色セットの切り替えなどの、もっとも大局的な選択を
行う。特に、バンクセレクトMSB=00Hは、機種間
共通音色を示し、それ以外は機種固有音色であることを
示す。よって、機種間共通音色の場合は、その直前に発
音が確認されているバンクを選択することにより、音色
の置き換えを確実に行ない、機種固有音色の場合は、音
色の置き換えを行わず、無発音とすることにより、不適
切な音色の切り替えを防ぐことができる。バンクセレク
トLSBは、同一系統の音色の中でのバリエーションで
あるので、これが変更されてもそれほど多くの不都合を
招くことがない。
【0089】また、リズム音色(バンクセレクトMSB
=7FH)の場合は、バンクセレクトLSBによる選択
は用いずに、プログラムチェンジおよびキーコードによ
って音色の選択を行う。ここにおいて、リズム音色のプ
ログラムチェンジにおいても、メロディ音色のバンクセ
レクトLSBと同じく、音色の置き換えを行なってい
る。
【0090】図11は、図4のステップS13から呼び
出されるビブラート処理ルーチンを示す。ビブラート処
理ルーチンは、MIDIインターフェースからビブラー
トデータを受信したとき実行される。
【0091】ビブラート処理ルーチンでは、ステップS
111で、受信したプログラムチェンジのMIDIチャ
ンネル番号をレジスタMCHに設定し、ビブラートデー
タをレジスタVD[MCH]に設定し、図4のステップ
S14に戻る。
【0092】この例では、受信されたビブラートデータ
は、受信された時点ではレジスタに記憶されるだけであ
り、実際にビブラートの情報として参照されるのは、対
応するMIDIチャンネルの発音を受け付けたときであ
る。しかし、このビブラート処理内で楽音合成回路に対
してビブラート情報を送り、リアルタイムでビブラート
処理を行えるようにしてもよい。
【0093】図12は、図4のステップS13から呼び
出されるノートイベント処理ルーチンを示す。ノートイ
ベント処理ルーチンは、MIDIインターフェースから
ノートイベントデータを受信したとき実行される。
【0094】まず、ステップS121では、受信したプ
ログラムチェンジのMIDIチャンネル番号をレジスタ
MCHに設定し、キーコード、ベロシティ、およびキー
イベントの各情報をそれぞれレジスタKC、KV、KE
Vにセットする。KEVにはキーオンKONまたはキー
オフKOFFが入る。続いて、ステップS122にて、
セットされた情報がノートバッファに記憶され、図4の
ステップS14に戻る。
【0095】以上、図5から図12で説明されたとお
り、MIDIインタフェースに入力されたデータは、図
4のMIDIインタフェース処理ルーチンにて、その内
容に応じて処理される。MIDIバッファに処理される
べきデータが無くなったときは、図3のステップS3に
戻り、発音の処理を行う。
【0096】図13は、図3のステップS3から呼び出
される発音処理ルーチンである。発音処理ルーチンで
は、まずステップS131で、ノートバッファより、図
12のステップS122にて書き込まれた各データを読
みだす。
【0097】次に、ステップS132で、読みだされた
イベントがKONイベントであるか否かを判断する。K
ONイベントであると判断された場合は、ステップS1
33で、USERが1か否かを判断する。USERが1
でないときは(すなわち、USER=0)、その音色は
その楽器に用意されていないから、そのMIDIチャン
ネルはアサインされないように、ステップS143に進
む。USERが1のときは、ステップS134に進む。
【0098】ステップS134にて、そのキーオンイベ
ントを発音するための発音空きチャンネルの確保を行
う。ここで、確保されたチャンネル番号は、レジスタT
CHにセットされる。ステップS135では、発音のた
めに指定されたMIDIチャンネルにリズム音色が指定
されている(BSM=7FH)か否かが判断される。B
SMが7FH以外の場合は、指定されたMIDIチャン
ネルに、メロディ系音色が割り当てられていることを示
す。この場合は、ステップS136に進む。
【0099】ステップS136では、各バンクセレクト
データ、およびプログラムチェンジデータに応じて、メ
ロディ音色リストより楽音データを読みだす。ここで読
みだされる楽音データは、各音色の波形の記憶アドレ
ス、エンベロープの情報、ビブラートの情報、エフェク
トの情報、および音量バランスの情報などである。
【0100】次に、ステップS137では、読みだされ
たビブラートセンシティビティをレジスタVsensに
セットし、最低変調深さをレジスタVMinにセットす
る。ステップS138では、これらの値を元に実際のビ
ブラートの値としてVDEを計算し、ステップS139
にて、ビブラート情報を楽音合成回路に出力する。ステ
ップS139の後、ステップS141に進む。
【0101】ステップS135においてBSMが7FH
であると判断された場合は、リズム音色が割り当てられ
ていることを示す。この場合は、ステップS140で、
プログラムチェンジデータ、およびキーコードに応じ
て、リズム音色リストより楽音データを読みだし、ステ
ップS141に進む。
【0102】以上のようにして、読みだされた楽音デー
タは、ステップS141にて楽音合成回路に出力され
る。これにより、楽音の発生が開始する。
【0103】ステップS133に戻り、イベントがキー
オンイベントKONでない、すなわちキーオフの場合
は、ステップS142に進み、対応する発音チャンネル
にキーオフ信号を送出する。その後、ステップS143
に進む。
【0104】ステップS143およびS144では、処
理したノートバッファのデータをクリアし、データが依
然ノートバッファに残っていればステップS131に戻
り、処理を継続する。
【0105】
【発明の効果】以上説明したように、この発明によれ
ば、外部からの音色の指定を受け付けたときに、固定的
でない音色の置き換えを行なっているので、従来のよう
に固定的な音色の置き換えにより自然な音色でなくなる
ことが無く、自然な音色の置き換えを実現することがで
きる。すなわち、指示された音色が存在しない場合に、
あらかじめどの音色にするかを決めておくのではなく、
存在することが確認されている音色テーブル中の複数の
音色から、過去の履歴に応じて選択した音色で楽音合成
を行なうので、使用が可能で最適な音色に置き換えるこ
とができ、自然な音色の置き換えを実現することができ
る。また、音色の置き換えに際し、過去の履歴に応じて
音色を置き換えるので、例えば演奏者が過去に指定して
いた好みの音色が優先的に使用されるようにすることな
どができ、演奏者にとって好適な音色の置き換えができ
る。
【図面の簡単な説明】
【図1】この発明の実施例に係る楽音合成装置のブロッ
ク構成図
【図2】エフェクト回路のブロック構成図
【図3】実施例の楽音合成装置のメインルーチンを示す
フローチャート図
【図4】MIDIインターフェース処理ルーチンのフロ
ーチャート図
【図5】エフェクト処理ルーチンのフローチャート図
【図6】ドライレベル設定処理ルーチンのフローチャー
ト図
【図7】リバーブ設定処理ルーチンのフローチャート図
【図8】エクスクルーシブ処理ルーチンを示すフローチ
ャート図
【図9】バンクセレクト処理ルーチンのフローチャート
【図10】プログラムチェンジ処理ルーチンのフローチ
ャート図
【図11】ビブラート処理ルーチンのフローチャート図
【図12】ノートイベント処理ルーチンのフローチャー
ト図
【図13】発音処理ルーチンのフローチャート図
【符号の説明】
1…MIDIインターフェース、2…CPU(中央処理
装置)、3…ROM(リードオンリーメモリ)、4…R
AM(ランダムアクセスメモリ)、5…操作パネル、6
…楽音合成回路、7…エフェクト回路、8…サウンドシ
ステム、9…バスライン、11…リバーブ回路、12…
トレモロ回路、13…コーラス回路、21〜24…乗算
器、31〜33…加算器、41…セレステ回路、42…
フェーザ回路、51,52…乗算器、61〜63…加算
器。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−38497(JP,A) 特開 平6−75564(JP,A) 特許2715677(JP,B2) 特許2604259(JP,B2) 特許2866439(JP,B2) 特許2819999(JP,B2) 特許3055525(JP,B2) 特公 平4−7519(JP,B2) (58)調査した分野(Int.Cl.7,DB名) G10H 1/24 G10H 1/00

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の楽音指定パラメータの組み合わせに
    よって設定される音色データの音色で楽音を合成する楽
    音合成装置において、上記複数の楽音指定パラメータの組み合わせに対応した
    複数の音色データを記憶した音色テーブルと、 外部からの音色の指定を受け付ける手段と、 指定された音色に対応する音色データが前記音色テーブ
    ル中に存在しなかった場合は、上記複数の楽音指定パラ
    メータのうち特定のものの値に基づいて所定の楽音指定
    パラメータを選択し、該選択された楽音指定パラメータ
    の値を、当該楽音指定パラメータに対応してそれぞれ記
    憶されている過去の履歴を参照した値に置き換えること
    によって、現在設定されている音色データを、存在が確
    認されている前記音色テーブル中の音色データに置き換
    えて発音する手段とを備えたことを特徴とする楽音合成
    装置。
  2. 【請求項2】それぞれ設定された音色データの音色で楽
    音を合成する複数の楽音発生系列を有する楽音合成装置
    において、 複数の音色データを記憶した音色テーブルと、 上記各楽音発生系列に対応して外部からの音色の指定を
    各々受け付ける手段と、 上記各楽音発生系列について指定された音色に対応する
    音色データが前記音色テーブル中に存在しなかった場合
    は、現在当該系列に設定されている音色データを、存在
    が確認されている前記音色テーブル中の複数の音色デー
    タ中から上記各楽音発生系列毎に記憶されている過去の
    履歴に応じて選択した音色データに置き換えて発音する
    手段とを備えたことを特徴とする楽音合成装置。
JP10126752A 1998-04-20 1998-04-20 楽音合成装置 Expired - Lifetime JP3087724B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10126752A JP3087724B2 (ja) 1998-04-20 1998-04-20 楽音合成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10126752A JP3087724B2 (ja) 1998-04-20 1998-04-20 楽音合成装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP5186911A Division JP2819999B2 (ja) 1993-06-01 1993-06-30 効果付与装置

Publications (2)

Publication Number Publication Date
JPH10326096A JPH10326096A (ja) 1998-12-08
JP3087724B2 true JP3087724B2 (ja) 2000-09-11

Family

ID=14943047

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10126752A Expired - Lifetime JP3087724B2 (ja) 1998-04-20 1998-04-20 楽音合成装置

Country Status (1)

Country Link
JP (1) JP3087724B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5298734B2 (ja) * 2008-09-29 2013-09-25 カシオ計算機株式会社 音色指定装置、電子楽器及び音色指定処理のプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2604259B2 (ja) 1990-03-19 1997-04-30 株式会社河合楽器製作所 電子楽器のデータ選択装置
JP2715677B2 (ja) 1991-02-26 1998-02-18 ヤマハ株式会社 電子楽器
JP2819999B2 (ja) 1993-06-30 1998-11-05 ヤマハ株式会社 効果付与装置
JP2866439B2 (ja) 1990-04-24 1999-03-08 ローランド株式会社 音色選択装置
JP3055525B2 (ja) 1998-04-20 2000-06-26 ヤマハ株式会社 電子楽器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2604259B2 (ja) 1990-03-19 1997-04-30 株式会社河合楽器製作所 電子楽器のデータ選択装置
JP2866439B2 (ja) 1990-04-24 1999-03-08 ローランド株式会社 音色選択装置
JP2715677B2 (ja) 1991-02-26 1998-02-18 ヤマハ株式会社 電子楽器
JP2819999B2 (ja) 1993-06-30 1998-11-05 ヤマハ株式会社 効果付与装置
JP3055525B2 (ja) 1998-04-20 2000-06-26 ヤマハ株式会社 電子楽器

Also Published As

Publication number Publication date
JPH10326096A (ja) 1998-12-08

Similar Documents

Publication Publication Date Title
JP2746157B2 (ja) 電子楽器
JP2002311957A (ja) 共鳴装置、共鳴方法及び共鳴処理のためのコンピュータプログラム
US6919502B1 (en) Musical tone generation apparatus installing extension board for expansion of tone colors and effects
JP3259846B2 (ja) 楽音信号形成装置
JP3694172B2 (ja) 残響共鳴装置及び残響共鳴方法
US5635658A (en) Sound control system for controlling an effect, tone volume and/or tone color
JP3087724B2 (ja) 楽音合成装置
JP3055525B2 (ja) 電子楽器
JP2819999B2 (ja) 効果付与装置
JP2002297138A (ja) 楽音発生装置及び楽音発生処理のプログラム
JP3204147B2 (ja) 楽音発生装置
JPH09330079A (ja) 楽音信号発生装置及び楽音信号発生方法
JP3530600B2 (ja) 楽音信号の周波数特性制御装置及び周波数特性制御方法
JP3530601B2 (ja) 楽音信号の周波数特性制御装置及び周波数特性制御方法
WO1996004642A1 (en) Timbral apparatus and method for musical sounds
JP3156285B2 (ja) 電子楽器
JP3926445B2 (ja) 楽音合成装置
JP2009186632A (ja) 音律制御方法、音律制御のためのコンピュータプログラム及び音律制御装置。
JP3394626B2 (ja) 電子楽器
JP3595676B2 (ja) 楽音生成装置及び楽音生成方法
JP3455976B2 (ja) 楽音発生装置
JP2513003B2 (ja) 電子楽器
JPH038558B2 (ja)
JPH07104753A (ja) 電子楽器の自動調律装置
US6160214A (en) Non-consonance generating device and non-consonance generating method

Legal Events

Date Code Title Description
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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090714

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090714

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130714

Year of fee payment: 13

EXPY Cancellation because of completion of term