JP2876986B2 - 楽音信号合成装置 - Google Patents
楽音信号合成装置Info
- Publication number
- JP2876986B2 JP2876986B2 JP6074237A JP7423794A JP2876986B2 JP 2876986 B2 JP2876986 B2 JP 2876986B2 JP 6074237 A JP6074237 A JP 6074237A JP 7423794 A JP7423794 A JP 7423794A JP 2876986 B2 JP2876986 B2 JP 2876986B2
- Authority
- JP
- Japan
- Prior art keywords
- delay
- signal
- filter
- tone
- loop
- 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
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】この発明は、閉鎖ウェーブガイド
ネットワークを利用して振動信号を発振することによっ
て楽音信号を合成する楽音信号合成装置に関し、詳しく
は、ウェーブガイドネットワークの閉ループ内に設けた
フィルタによる信号遅延時間を考慮して、合成される楽
音信号のピッチ補償を行なうようにしたことに関する。
ネットワークを利用して振動信号を発振することによっ
て楽音信号を合成する楽音信号合成装置に関し、詳しく
は、ウェーブガイドネットワークの閉ループ内に設けた
フィルタによる信号遅延時間を考慮して、合成される楽
音信号のピッチ補償を行なうようにしたことに関する。
【0002】
【従来の技術】特開昭63−40199号公報において
は、閉鎖ディジタルウェーブガイドネットワークを利用
して楽音波形信号を発振し合成する技術の基本的構成が
示されている。これは、遅延回路やフィルタなどを閉ル
ープ状に接続してディジタル波形信号を循環させる信号
循環路(閉鎖ディジタルウェーブガイドネットワーク)
を構成し、ディジタルの励起信号をこの循環路に導入し
て該循環路を循環させることにより波形信号を発振さ
せ、ループ内の適当な個所から出力楽音波形信号を取り
出すようにしたものである。この技術は、管楽器や弦楽
器などの所望の自然楽器の物理的特性を閉鎖ディジタル
ウェーブガイドネットワークによってモデル化し、もっ
て該自然楽器の音をシミュレートすることを基本的コン
セプトとしている。すなわち、信号循環路(閉鎖ディジ
タルウェーブガイドネットワーク)は、管や弦などの媒
体内において進行したり反射したりする振動信号の物理
的伝播をモデルするものである。管楽器をシミュレート
する場合について言えば、上記信号循環路は、管楽器の
管部分に対応しており、そこにおける信号遅延時間は管
の長さをシミュレートするものであり、それによって管
部の共振特性を設定する。また、信号循環路に設けられ
たフィルタは、管の端部や開口部や孔等での音波の減衰
やその他の周波数特性をシミュレートするものであり、
それによって音色を制御することができる。また、弦楽
器をシミュレートする場合は、上記信号循環路は、弦部
分に対応している。このように、信号循環路は、物理的
音源の振動発生部分に対応するものである。
は、閉鎖ディジタルウェーブガイドネットワークを利用
して楽音波形信号を発振し合成する技術の基本的構成が
示されている。これは、遅延回路やフィルタなどを閉ル
ープ状に接続してディジタル波形信号を循環させる信号
循環路(閉鎖ディジタルウェーブガイドネットワーク)
を構成し、ディジタルの励起信号をこの循環路に導入し
て該循環路を循環させることにより波形信号を発振さ
せ、ループ内の適当な個所から出力楽音波形信号を取り
出すようにしたものである。この技術は、管楽器や弦楽
器などの所望の自然楽器の物理的特性を閉鎖ディジタル
ウェーブガイドネットワークによってモデル化し、もっ
て該自然楽器の音をシミュレートすることを基本的コン
セプトとしている。すなわち、信号循環路(閉鎖ディジ
タルウェーブガイドネットワーク)は、管や弦などの媒
体内において進行したり反射したりする振動信号の物理
的伝播をモデルするものである。管楽器をシミュレート
する場合について言えば、上記信号循環路は、管楽器の
管部分に対応しており、そこにおける信号遅延時間は管
の長さをシミュレートするものであり、それによって管
部の共振特性を設定する。また、信号循環路に設けられ
たフィルタは、管の端部や開口部や孔等での音波の減衰
やその他の周波数特性をシミュレートするものであり、
それによって音色を制御することができる。また、弦楽
器をシミュレートする場合は、上記信号循環路は、弦部
分に対応している。このように、信号循環路は、物理的
音源の振動発生部分に対応するものである。
【0003】信号循環路においては、振動信号の伝播経
路における物理的境界部(例えば、リード等の振動励起
部や、管の開口孔や、弦の取付け端部など)における信
号の進行及び反射をモデルするための信号ジャンクショ
ン部を適宜具備している。例えば、振動励起部をモデル
するための信号ジャンクション部は、非線形変換部を含
む。また、その他の物理的境界部をモデルするための信
号ジャンクション部は、進行波信号と反射波信号の振り
分けと合成等を行なう演算回路を含む。振動信号を励起
するための上記非線形変換部では例えば非線形テーブル
を具備する。信号循環路のループに、ブレス圧力あるい
は擦弦操作等に対応する適宜の電気的圧力信号を導入す
ることにより、該圧力信号を該非線形テーブルで非線形
変換した信号が信号循環路を循環し、振動波形信号が励
起される。別の場合では、振動波形信号を励起するため
に信号循環路に導入する信号として、ノイズ信号あるい
は適宜の初期波形信号が使用される。
路における物理的境界部(例えば、リード等の振動励起
部や、管の開口孔や、弦の取付け端部など)における信
号の進行及び反射をモデルするための信号ジャンクショ
ン部を適宜具備している。例えば、振動励起部をモデル
するための信号ジャンクション部は、非線形変換部を含
む。また、その他の物理的境界部をモデルするための信
号ジャンクション部は、進行波信号と反射波信号の振り
分けと合成等を行なう演算回路を含む。振動信号を励起
するための上記非線形変換部では例えば非線形テーブル
を具備する。信号循環路のループに、ブレス圧力あるい
は擦弦操作等に対応する適宜の電気的圧力信号を導入す
ることにより、該圧力信号を該非線形テーブルで非線形
変換した信号が信号循環路を循環し、振動波形信号が励
起される。別の場合では、振動波形信号を励起するため
に信号循環路に導入する信号として、ノイズ信号あるい
は適宜の初期波形信号が使用される。
【0004】信号循環路における信号遅延時間は、該信
号循環路内に設けた遅延回路の遅延段数を変化すること
により、可変制御することができ、これによって該信号
循環路における共振特性を制御し、該信号循環路で合成
される楽音波形信号のピッチを設定/制御することがで
きるようになっている。この場合、遅延回路における遅
延単位時間(最小単位つまり1段分の遅延時間、すなわ
ち1ディレイクロック時間又は1サンプリングクロック
時間)は一定である。
号循環路内に設けた遅延回路の遅延段数を変化すること
により、可変制御することができ、これによって該信号
循環路における共振特性を制御し、該信号循環路で合成
される楽音波形信号のピッチを設定/制御することがで
きるようになっている。この場合、遅延回路における遅
延単位時間(最小単位つまり1段分の遅延時間、すなわ
ち1ディレイクロック時間又は1サンプリングクロック
時間)は一定である。
【0005】
【発明が解決しようとする課題】ところで、信号循環路
内に設けたフィルタは、本来の振幅−周波数特性のみな
らず、位相遅延特性をも示すので、それに応じた微小な
信号遅延が信号循環路において発生する。フィルタによ
るそのような信号遅延時間は、特にフィルタ係数(すな
わちカットオフ周波数)に依存して変化し、また、信号
の周波数にも依存する。特に、フィルタ回路内にフィー
ドバックループを持つIIR(無限応答フィルタ)にお
いてはそのような位相遅延特性が顕著である。従って、
信号循環路の総遅延時間は、遅延回路で設定された遅延
時間とフィルタによる信号遅延時間の合計となり(ただ
し、その他の遅延要素が閉ループに存在する場合はその
分も考慮するのは勿論である)、所望のピッチ(音高)
を持つ楽音信号を合成するには、遅延回路の遅延時間を
所望ピッチに応じて設定するだけでは不十分であり、フ
ィルタによる信号遅延時間を補償する必要がある。
内に設けたフィルタは、本来の振幅−周波数特性のみな
らず、位相遅延特性をも示すので、それに応じた微小な
信号遅延が信号循環路において発生する。フィルタによ
るそのような信号遅延時間は、特にフィルタ係数(すな
わちカットオフ周波数)に依存して変化し、また、信号
の周波数にも依存する。特に、フィルタ回路内にフィー
ドバックループを持つIIR(無限応答フィルタ)にお
いてはそのような位相遅延特性が顕著である。従って、
信号循環路の総遅延時間は、遅延回路で設定された遅延
時間とフィルタによる信号遅延時間の合計となり(ただ
し、その他の遅延要素が閉ループに存在する場合はその
分も考慮するのは勿論である)、所望のピッチ(音高)
を持つ楽音信号を合成するには、遅延回路の遅延時間を
所望ピッチに応じて設定するだけでは不十分であり、フ
ィルタによる信号遅延時間を補償する必要がある。
【0006】そのための補償法としては、遅延回路の遅
延段数を切り換えることが考えられるが、楽音発生中に
リアルタイムでフィルタ係数が変更された場合、遅延回
路の遅延段数を楽音発生中に切り換えねばならず、その
ため、不連続的なピッチ変化を招いてしまうという問題
がある。また、フィルタによる信号遅延時間を補償する
ためには、遅延回路における単位遅延時間未満の遅延調
整を行なう必要があるので、その補償には工夫を要す
る。従来考えられていたことは、遅延回路の複数遅延段
の出力を補間することであった。しかし、そのために信
号循環路の閉ループ内に補間回路が挿入されることにな
り、この補間回路がローパスフィルタとして機能してし
まい、楽音信号の高域を不必要に減衰させてしまうとい
う悪影響を及ぼす。
延段数を切り換えることが考えられるが、楽音発生中に
リアルタイムでフィルタ係数が変更された場合、遅延回
路の遅延段数を楽音発生中に切り換えねばならず、その
ため、不連続的なピッチ変化を招いてしまうという問題
がある。また、フィルタによる信号遅延時間を補償する
ためには、遅延回路における単位遅延時間未満の遅延調
整を行なう必要があるので、その補償には工夫を要す
る。従来考えられていたことは、遅延回路の複数遅延段
の出力を補間することであった。しかし、そのために信
号循環路の閉ループ内に補間回路が挿入されることにな
り、この補間回路がローパスフィルタとして機能してし
まい、楽音信号の高域を不必要に減衰させてしまうとい
う悪影響を及ぼす。
【0007】この発明は上述の点に鑑みてなされたもの
で、遅延要素とフィルタ要素を含む閉ループにおいて振
動信号を励起することにより楽音信号を合成する楽音信
号合成装置において、フィルタ係数の変化に応じてフィ
ルタによる信号遅延時間を適切に補償し、所望のピッチ
の楽音を合成することができるようにした楽音信号合成
装置を提供しようとするものである。
で、遅延要素とフィルタ要素を含む閉ループにおいて振
動信号を励起することにより楽音信号を合成する楽音信
号合成装置において、フィルタ係数の変化に応じてフィ
ルタによる信号遅延時間を適切に補償し、所望のピッチ
の楽音を合成することができるようにした楽音信号合成
装置を提供しようとするものである。
【0008】
【課題を解決するための手段】第1の観点に従えば、こ
の発明に係る楽音信号合成装置は、信号を循環する閉ル
ープを形成し、かつ、遅延手段とフィルタ手段とを該ル
ープ内に具備する信号循環手段と、前記信号循環手段の
ループ内に信号を導入して振動を励起する励起手段と、
前記遅延手段及びフィルタ手段における遅延及び演算単
位時間をタイミング信号によって指示するタイミング手
段と、前記フィルタ手段の係数を変更するフィルタ係数
変更手段と、前記係数の変化に応じて生ずる前記フィル
タ手段による信号遅延時間の変動を補償するように、前
記タイミング信号の発生を制御する制御手段とを具えた
ことを特徴とするものである。
の発明に係る楽音信号合成装置は、信号を循環する閉ル
ープを形成し、かつ、遅延手段とフィルタ手段とを該ル
ープ内に具備する信号循環手段と、前記信号循環手段の
ループ内に信号を導入して振動を励起する励起手段と、
前記遅延手段及びフィルタ手段における遅延及び演算単
位時間をタイミング信号によって指示するタイミング手
段と、前記フィルタ手段の係数を変更するフィルタ係数
変更手段と、前記係数の変化に応じて生ずる前記フィル
タ手段による信号遅延時間の変動を補償するように、前
記タイミング信号の発生を制御する制御手段とを具えた
ことを特徴とするものである。
【0009】第2の観点に従えば、この発明に係る楽音
信号合成装置は、信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、前記信号循環手段のループ内に信号を
導入して振動を励起する励起手段と、前記遅延手段及び
フィルタ手段における遅延及び演算単位時間をタイミン
グ信号によって指示するタイミング手段と、所望の楽音
音高に対応して整数部と小数部とからなる遅延長データ
を発生し、この遅延長データの整数部に対応して前記遅
延手段における遅延段数を設定する遅延長設定手段と、
前記ループ全体として所望の楽音音高に対応する振動を
励起し得る総遅延時間が設定されるように、前記遅延段
数と前記フィルタ手段による信号遅延量に応じて前記タ
イミング信号の発生を制御する制御手段とを具えたこと
を特徴とするものである。
信号合成装置は、信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、前記信号循環手段のループ内に信号を
導入して振動を励起する励起手段と、前記遅延手段及び
フィルタ手段における遅延及び演算単位時間をタイミン
グ信号によって指示するタイミング手段と、所望の楽音
音高に対応して整数部と小数部とからなる遅延長データ
を発生し、この遅延長データの整数部に対応して前記遅
延手段における遅延段数を設定する遅延長設定手段と、
前記ループ全体として所望の楽音音高に対応する振動を
励起し得る総遅延時間が設定されるように、前記遅延段
数と前記フィルタ手段による信号遅延量に応じて前記タ
イミング信号の発生を制御する制御手段とを具えたこと
を特徴とするものである。
【0010】第3の観点に従えば、この発明に係る楽音
信号合成装置は、信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、前記信号循環手段のループ内に信号を
導入して振動を励起する励起手段と、前記遅延手段及び
フィルタ手段における遅延及び演算単位時間をタイミン
グ信号によって指示するタイミング手段と、前記フィル
タ手段の係数を変更するフィルタ係数変更手段と、所望
の楽音音高に対応して定まる前記ループの総遅延時間と
前記係数に応じた前記フィルタ手段による信号遅延量と
に基づき、整数部と小数部とからなる遅延長データを発
生し、この遅延長データの整数部に対応して前記遅延手
段における遅延段数を設定する遅延長設定手段と、前記
ループ全体として所望の楽音音高に対応する振動を励起
し得る総遅延時間が設定されるように、前記遅延段数と
前記フィルタ手段による信号遅延量に応じて前記タイミ
ング信号の発生を制御する制御手段とを具えたことを特
徴とするものである。
信号合成装置は、信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、前記信号循環手段のループ内に信号を
導入して振動を励起する励起手段と、前記遅延手段及び
フィルタ手段における遅延及び演算単位時間をタイミン
グ信号によって指示するタイミング手段と、前記フィル
タ手段の係数を変更するフィルタ係数変更手段と、所望
の楽音音高に対応して定まる前記ループの総遅延時間と
前記係数に応じた前記フィルタ手段による信号遅延量と
に基づき、整数部と小数部とからなる遅延長データを発
生し、この遅延長データの整数部に対応して前記遅延手
段における遅延段数を設定する遅延長設定手段と、前記
ループ全体として所望の楽音音高に対応する振動を励起
し得る総遅延時間が設定されるように、前記遅延段数と
前記フィルタ手段による信号遅延量に応じて前記タイミ
ング信号の発生を制御する制御手段とを具えたことを特
徴とするものである。
【0011】
【作用】信号循環手段と励起手段により、前述の閉鎖型
ウェーブガイドネットワークを使用した物理モデルタイ
プの音源と同様な又は類似の電子的閉ループ音源が構成
され、該信号循環手段における総遅延時間に対応するピ
ッチを持つ楽音信号が合成される。楽音信号の音色を制
御するために、フィルタ係数変更手段によってフィルタ
の係数が変更されると、フィルタ手段の部分での信号遅
延時間が変化する。そのままでは、信号循環手段におけ
る総遅延時間が変動してしまうところであるが、この発
明では、制御手段を設けたことにより、適切に対処する
ようにしている。
ウェーブガイドネットワークを使用した物理モデルタイ
プの音源と同様な又は類似の電子的閉ループ音源が構成
され、該信号循環手段における総遅延時間に対応するピ
ッチを持つ楽音信号が合成される。楽音信号の音色を制
御するために、フィルタ係数変更手段によってフィルタ
の係数が変更されると、フィルタ手段の部分での信号遅
延時間が変化する。そのままでは、信号循環手段におけ
る総遅延時間が変動してしまうところであるが、この発
明では、制御手段を設けたことにより、適切に対処する
ようにしている。
【0012】すなわち、上記第1の観点に従う楽音信号
合成装置においては、制御手段によって、フィルタ係数
の変化に応じて生ずるフィルタ手段による信号遅延時間
の変動を補償するように、タイミング信号の発生を制御
するようにしたことが特徴である。このタイミング信号
の制御によって、遅延手段及びフィルタ手段における遅
延及び演算単位時間が変更制御される。従って、遅延手
段における信号遅延段数を変えることなく、その遅延単
位時間が可変制御されることにより、該遅延手段におけ
る遅延時間が可変制御されることになる。これにより、
閉ループ全体として所望の楽音ピッチに対応する振動を
励起し得る遅延時間が設定されるように補償を行なうこ
とができる。従って、遅延手段において遅延段数の補間
を行なう必要がなく、遅延段補間回路による悪影響を排
除できる。また、遅延単位時間の変更は滑らかに行なう
ことができるため、フィルタ係数の変化に伴ってピッチ
が不連続的に変化することも起らず、滑らかな補償が行
なえる。従って、特に、楽音発音中にリアルタイムにフ
ィルタ係数が変化するような場合に、この発明は有利で
ある。しかし、事前の音色選択操作等によってフィルタ
係数が変更されるような場合であっても、この発明は有
利に適用できるのは勿論である。
合成装置においては、制御手段によって、フィルタ係数
の変化に応じて生ずるフィルタ手段による信号遅延時間
の変動を補償するように、タイミング信号の発生を制御
するようにしたことが特徴である。このタイミング信号
の制御によって、遅延手段及びフィルタ手段における遅
延及び演算単位時間が変更制御される。従って、遅延手
段における信号遅延段数を変えることなく、その遅延単
位時間が可変制御されることにより、該遅延手段におけ
る遅延時間が可変制御されることになる。これにより、
閉ループ全体として所望の楽音ピッチに対応する振動を
励起し得る遅延時間が設定されるように補償を行なうこ
とができる。従って、遅延手段において遅延段数の補間
を行なう必要がなく、遅延段補間回路による悪影響を排
除できる。また、遅延単位時間の変更は滑らかに行なう
ことができるため、フィルタ係数の変化に伴ってピッチ
が不連続的に変化することも起らず、滑らかな補償が行
なえる。従って、特に、楽音発音中にリアルタイムにフ
ィルタ係数が変化するような場合に、この発明は有利で
ある。しかし、事前の音色選択操作等によってフィルタ
係数が変更されるような場合であっても、この発明は有
利に適用できるのは勿論である。
【0013】一例として、制御手段では、前記ループ全
体として所望の楽音音高に対応する振動を励起し得る総
遅延時間が設定されるように、前記遅延手段における遅
延段数と前記フィルタ手段による信号遅延量に応じて前
記タイミング信号の発生を制御してよい。例えば、これ
は、遅延段数とタイミング信号によって可変設定される
遅延単位時間とによって定まる遅延手段が分担する遅延
量と、フィルタ手段による信号遅延量とを演算して、ル
ープの総遅延時間を求め、これが所望のピッチに対応す
る総遅延時間に収束するような遅延単位時間をみつけ出
すことによって行なうことができる。
体として所望の楽音音高に対応する振動を励起し得る総
遅延時間が設定されるように、前記遅延手段における遅
延段数と前記フィルタ手段による信号遅延量に応じて前
記タイミング信号の発生を制御してよい。例えば、これ
は、遅延段数とタイミング信号によって可変設定される
遅延単位時間とによって定まる遅延手段が分担する遅延
量と、フィルタ手段による信号遅延量とを演算して、ル
ープの総遅延時間を求め、これが所望のピッチに対応す
る総遅延時間に収束するような遅延単位時間をみつけ出
すことによって行なうことができる。
【0014】上記第2の観点に従う楽音信号合成装置
は、所望の楽音音高(ピッチ)を設定する場合の、この
発明の1つの実施の態様を示しているものである。遅延
長設定手段では、所望の楽音音高に対応して整数部と小
数部とからなる遅延長データを発生し、この遅延長デー
タの整数部に対応して前記遅延手段における遅延段数を
設定する。つまり、遅延長データの整数部は遅延単位時
間以上の遅延時間に対応しており、遅延長データの小数
部は遅延単位時間未満の遅延時間に対応している。シス
テムクロック周波数と所望の楽音音高の周波数との兼ね
合いで、どうしても所望の楽音音高を実現するために
は、遅延単位時間未満の遅延時間が出てくることは避け
がたいことである。遅延長データの小数部に対応する遅
延単位時間未満の微小時間は、所望の楽音音高を実現す
るためには、不足している遅延時間に相当し、何らかの
補償が必要である。一方、前記フィルタ手段による信号
遅延時間は、所望の楽音音高を実現するためには、過剰
の遅延時間に相当しており、これも前述の通り、補償す
る必要がある。
は、所望の楽音音高(ピッチ)を設定する場合の、この
発明の1つの実施の態様を示しているものである。遅延
長設定手段では、所望の楽音音高に対応して整数部と小
数部とからなる遅延長データを発生し、この遅延長デー
タの整数部に対応して前記遅延手段における遅延段数を
設定する。つまり、遅延長データの整数部は遅延単位時
間以上の遅延時間に対応しており、遅延長データの小数
部は遅延単位時間未満の遅延時間に対応している。シス
テムクロック周波数と所望の楽音音高の周波数との兼ね
合いで、どうしても所望の楽音音高を実現するために
は、遅延単位時間未満の遅延時間が出てくることは避け
がたいことである。遅延長データの小数部に対応する遅
延単位時間未満の微小時間は、所望の楽音音高を実現す
るためには、不足している遅延時間に相当し、何らかの
補償が必要である。一方、前記フィルタ手段による信号
遅延時間は、所望の楽音音高を実現するためには、過剰
の遅延時間に相当しており、これも前述の通り、補償す
る必要がある。
【0015】そこで、制御手段では、前記ループ全体と
して所望の楽音音高に対応する振動を励起し得る総遅延
時間が設定されるように、前記設定された遅延段数と前
記フィルタ手段による信号遅延量に応じて前記タイミン
グ信号の発生を制御する。例えば、これは、設定された
遅延段数とタイミング信号によって可変設定される遅延
単位時間とによって定まる遅延手段が分担する遅延時間
と、フィルタ手段による遅延時間とを演算して、ループ
の総遅延時間を求め、これが所望の総遅延時間に収束す
るような遅延及び演算単位時間をみつけ出すことによっ
て行なうことができる。これによって、所望の総遅延時
間が設定されるようになるので、フィルタによる過剰の
信号遅延時間と、遅延長データの小数部に対応する遅延
単位時間未満の不足していた微小遅延時間とを、一挙に
補償することができる。更に、この実施態様による利点
は、楽音発音中にリアルタイムにフィルタ係数が変化し
たとしても、遅延段数が変更されないので、ノイズがの
ることがない点である。
して所望の楽音音高に対応する振動を励起し得る総遅延
時間が設定されるように、前記設定された遅延段数と前
記フィルタ手段による信号遅延量に応じて前記タイミン
グ信号の発生を制御する。例えば、これは、設定された
遅延段数とタイミング信号によって可変設定される遅延
単位時間とによって定まる遅延手段が分担する遅延時間
と、フィルタ手段による遅延時間とを演算して、ループ
の総遅延時間を求め、これが所望の総遅延時間に収束す
るような遅延及び演算単位時間をみつけ出すことによっ
て行なうことができる。これによって、所望の総遅延時
間が設定されるようになるので、フィルタによる過剰の
信号遅延時間と、遅延長データの小数部に対応する遅延
単位時間未満の不足していた微小遅延時間とを、一挙に
補償することができる。更に、この実施態様による利点
は、楽音発音中にリアルタイムにフィルタ係数が変化し
たとしても、遅延段数が変更されないので、ノイズがの
ることがない点である。
【0016】上記第3の観点に従う楽音信号合成装置
は、所望の楽音音高(ピッチ)を設定する場合の、この
発明の別の実施の態様を示しているものである。遅延長
設定手段では、所望の楽音音高に対応して定まる前記ル
ープの総遅延時間と前記係数に応じた前記フィルタ手段
による信号遅延量とに基づき、整数部と小数部とからな
る遅延長データを発生し、この遅延長データの整数部に
対応して前記遅延手段における遅延段数を設定する。す
なわち、予め、フィルタ係数に応じた過剰の信号遅延時
間を予め考慮して、遅延手段が分担すべき遅延時間を求
め、その遅延段数を設定する。制御手段では、第2の観
点に従う実施態様と同様に、前記ループ全体として所望
の楽音音高に対応する振動を励起し得る総遅延時間が設
定されるように、前記設定された遅延段数と前記フィル
タ手段による信号遅延量に応じて前記タイミング信号の
発生を制御する。この場合、遅延段数の設定にあたって
は、予めフィルタ遅延時間を考慮してあるので、目標の
総遅延時間に収束する遅延単位時間を見つけ出すまでの
演算時間(収束時間)が速い、という利点を持つ。この
場合も、所望の総遅延時間が設定されるようになるの
で、フィルタによる過剰の信号遅延時間と、遅延長デー
タの小数部に対応する遅延単位時間未満の不足していた
微小遅延時間とを、一挙に補償することができる。
は、所望の楽音音高(ピッチ)を設定する場合の、この
発明の別の実施の態様を示しているものである。遅延長
設定手段では、所望の楽音音高に対応して定まる前記ル
ープの総遅延時間と前記係数に応じた前記フィルタ手段
による信号遅延量とに基づき、整数部と小数部とからな
る遅延長データを発生し、この遅延長データの整数部に
対応して前記遅延手段における遅延段数を設定する。す
なわち、予め、フィルタ係数に応じた過剰の信号遅延時
間を予め考慮して、遅延手段が分担すべき遅延時間を求
め、その遅延段数を設定する。制御手段では、第2の観
点に従う実施態様と同様に、前記ループ全体として所望
の楽音音高に対応する振動を励起し得る総遅延時間が設
定されるように、前記設定された遅延段数と前記フィル
タ手段による信号遅延量に応じて前記タイミング信号の
発生を制御する。この場合、遅延段数の設定にあたって
は、予めフィルタ遅延時間を考慮してあるので、目標の
総遅延時間に収束する遅延単位時間を見つけ出すまでの
演算時間(収束時間)が速い、という利点を持つ。この
場合も、所望の総遅延時間が設定されるようになるの
で、フィルタによる過剰の信号遅延時間と、遅延長デー
タの小数部に対応する遅延単位時間未満の不足していた
微小遅延時間とを、一挙に補償することができる。
【0017】なお、第3の観点に従う実施態様の場合、
フィルタ係数が変化したとき、遅延段数が変動すること
が起りうる。そこで、この実施態様に従う遅延長設定手
段による処理は発音開始時に行なうものとし、発音中に
おける楽音ピッチ変化やフイルタ係数の変化に対して
は、制御手段における前記タイミング信号の発生制御処
理(つまり遅延及び演算単位時間の可変制御)のみによ
って対処するようにすると、ノイズ防止の観点からは都
合がよい。しかし、それに限定されるものではなく、上
述の収束演算が速いという利点を生かして、発音中の楽
音ピッチ変化やフイルタ係数の変化に対しても遅延長設
定手段による処理を行なうようにしてもよい。
フィルタ係数が変化したとき、遅延段数が変動すること
が起りうる。そこで、この実施態様に従う遅延長設定手
段による処理は発音開始時に行なうものとし、発音中に
おける楽音ピッチ変化やフイルタ係数の変化に対して
は、制御手段における前記タイミング信号の発生制御処
理(つまり遅延及び演算単位時間の可変制御)のみによ
って対処するようにすると、ノイズ防止の観点からは都
合がよい。しかし、それに限定されるものではなく、上
述の収束演算が速いという利点を生かして、発音中の楽
音ピッチ変化やフイルタ係数の変化に対しても遅延長設
定手段による処理を行なうようにしてもよい。
【0018】
【実施例】以下、添付図面を参照してこの発明の実施例
を詳細に説明しよう。 〔ハードウェア構成例〕図1は、この発明に係る楽音信
号合成装置の一実施例に係る電子楽器のハードウェア構
成例を示す。この電子楽器は、CPU(中央処理ユニッ
ト)10、ROM(リードオンリーメモリ)11,RA
M(ランダムアクセスメモリ)12などからなるマイク
ロコンピュータ部を、主制御装置として具備する。演奏
操作子ブロック13は、楽音音高を選択/指定するため
の鍵盤や、楽音の音色や音量制御用のペダル操作子、ピ
ッチ変調用操作子、ブレスコントローラ、ジェスチャや
ボディアクションによるコントローラなど、演奏者によ
って演奏中に実時間的に操作される操作子群を、一まと
めにして示すものであり、それらの操作子群のいずれか
1又は複数を適宜具備していてよい。パネルブロック1
4は、電子楽器のパネル面に配置された各種スイッチ
(音色選択スイッチ類、音量調整スイッチ類、効果選択
スイッチ類、その他)及びそれに関連する表示器など
を、一まとめにして示すものである。
を詳細に説明しよう。 〔ハードウェア構成例〕図1は、この発明に係る楽音信
号合成装置の一実施例に係る電子楽器のハードウェア構
成例を示す。この電子楽器は、CPU(中央処理ユニッ
ト)10、ROM(リードオンリーメモリ)11,RA
M(ランダムアクセスメモリ)12などからなるマイク
ロコンピュータ部を、主制御装置として具備する。演奏
操作子ブロック13は、楽音音高を選択/指定するため
の鍵盤や、楽音の音色や音量制御用のペダル操作子、ピ
ッチ変調用操作子、ブレスコントローラ、ジェスチャや
ボディアクションによるコントローラなど、演奏者によ
って演奏中に実時間的に操作される操作子群を、一まと
めにして示すものであり、それらの操作子群のいずれか
1又は複数を適宜具備していてよい。パネルブロック1
4は、電子楽器のパネル面に配置された各種スイッチ
(音色選択スイッチ類、音量調整スイッチ類、効果選択
スイッチ類、その他)及びそれに関連する表示器など
を、一まとめにして示すものである。
【0019】楽音合成部15のハードウェアは、DSP
(デジタル・シグナル・プロセッサ)を用いて構成され
ており、DSPの多機能的な信号処理機能を利用して、
前述した閉鎖ウェーブガイドネットワークと同様の原理
に従って楽音信号を合成する処理を行なう。図1におけ
る楽音合成部15のブロック内には、DSP内の構成を
略示してある。DSPは、演算処理部20における演算
手順を指示するマイクロプログラムを格納したマイクロ
プログラムRAM16と、楽音合成用の各種パラメータ
を格納した複数のパラメータRAM17a,17bと、
所定の楽音合成用パラメータを補間するためのデータ補
間部18と、演算結果やその他のデータを一時保存する
ためのデータレジスタ群19と、マイクロプログラムの
指示に従って楽音合成用パラメータを用いて演算を行な
い、楽音信号を合成する演算処理部20とを備えてい
る。
(デジタル・シグナル・プロセッサ)を用いて構成され
ており、DSPの多機能的な信号処理機能を利用して、
前述した閉鎖ウェーブガイドネットワークと同様の原理
に従って楽音信号を合成する処理を行なう。図1におけ
る楽音合成部15のブロック内には、DSP内の構成を
略示してある。DSPは、演算処理部20における演算
手順を指示するマイクロプログラムを格納したマイクロ
プログラムRAM16と、楽音合成用の各種パラメータ
を格納した複数のパラメータRAM17a,17bと、
所定の楽音合成用パラメータを補間するためのデータ補
間部18と、演算結果やその他のデータを一時保存する
ためのデータレジスタ群19と、マイクロプログラムの
指示に従って楽音合成用パラメータを用いて演算を行な
い、楽音信号を合成する演算処理部20とを備えてい
る。
【0020】複数のパラメータRAM17a,17b
は、演算処理部20で使用する楽音合成用のパラメータ
を記憶しておき、これを演算処理部20に供給するため
のものであり、これによって例えばパラメータを時間的
に変化させて供給することができるものである。例え
ば、1つのパラメータRAM17aにおいて、1つの楽
音合成に必要な1セットの楽音合成用のパラメータ群が
格納されており、演算処理部20にパラメータを供給す
るパラメータRAMを時間的に切り換えることにより、
時変動するパラメータ群が供給され、合成する楽音の音
色や音高などを時変動させることができる。データ補間
部18は、パラメータRAM17a,17bから読み出
したパラメータを適宜補間演算するためのものであり、
これにより滑らかに時間変化する楽音合成用パラメータ
の供給又は記憶したデータよりも精密な分解能のパラメ
ータの供給を行なうことができる。このような滑らかに
時間変化する楽音合成用パラメータの供給は、合成され
る楽音の音色や音高などを滑らかに時変動させることが
できる。
は、演算処理部20で使用する楽音合成用のパラメータ
を記憶しておき、これを演算処理部20に供給するため
のものであり、これによって例えばパラメータを時間的
に変化させて供給することができるものである。例え
ば、1つのパラメータRAM17aにおいて、1つの楽
音合成に必要な1セットの楽音合成用のパラメータ群が
格納されており、演算処理部20にパラメータを供給す
るパラメータRAMを時間的に切り換えることにより、
時変動するパラメータ群が供給され、合成する楽音の音
色や音高などを時変動させることができる。データ補間
部18は、パラメータRAM17a,17bから読み出
したパラメータを適宜補間演算するためのものであり、
これにより滑らかに時間変化する楽音合成用パラメータ
の供給又は記憶したデータよりも精密な分解能のパラメ
ータの供給を行なうことができる。このような滑らかに
時間変化する楽音合成用パラメータの供給は、合成され
る楽音の音色や音高などを滑らかに時変動させることが
できる。
【0021】DSPに付随して、信号遅延用のRAM2
1が設けられている。このRAM21は、演算処理部2
0で処理された信号を一時記憶し、マイクロプログラム
に従って所定時間後に演算処理部20に戻す働き、ある
いは遅延シフトレジスタを構成する働きをする。これに
より、楽音合成部15における各種の信号遅延(例え
ば、閉ループにおける信号遅延回路の機能や、フィルタ
における単位遅延回路の機能など)が実現される。
1が設けられている。このRAM21は、演算処理部2
0で処理された信号を一時記憶し、マイクロプログラム
に従って所定時間後に演算処理部20に戻す働き、ある
いは遅延シフトレジスタを構成する働きをする。これに
より、楽音合成部15における各種の信号遅延(例え
ば、閉ループにおける信号遅延回路の機能や、フィルタ
における単位遅延回路の機能など)が実現される。
【0022】ROM11には、CPU10の動作プログ
ラムを記憶しているプログラム記憶部と、DSPのマイ
クロプログラムを多種類記憶しているマイクロプログラ
ム記憶部と、各種のプリセットされた音色に対応するパ
ラメータセットなどを記憶したパラメータデータ記憶部
などがある。これらの記憶部は夫々別体のROM回路か
らなっていてもよい。RAM12は、ワーキングRAM
部と、ブロック13,14の演奏操作子又はパネル操作
子等を使用してユーザによって任意に設定された各種パ
ラメータや演算処理によって自動的に作成又は書き換え
られた各種パラメータなどを記憶するパラメータデータ
RAM部などを含む。
ラムを記憶しているプログラム記憶部と、DSPのマイ
クロプログラムを多種類記憶しているマイクロプログラ
ム記憶部と、各種のプリセットされた音色に対応するパ
ラメータセットなどを記憶したパラメータデータ記憶部
などがある。これらの記憶部は夫々別体のROM回路か
らなっていてもよい。RAM12は、ワーキングRAM
部と、ブロック13,14の演奏操作子又はパネル操作
子等を使用してユーザによって任意に設定された各種パ
ラメータや演算処理によって自動的に作成又は書き換え
られた各種パラメータなどを記憶するパラメータデータ
RAM部などを含む。
【0023】CPU10による制御に従って、演奏操作
子ブロック13及びパネルブロック14の走査処理や、
その走査結果に基づく各種処理(例えば、押圧鍵の発音
割当て処理、選択された音色などのファクターに応じて
必要なマイクロプログラムをROM11から読み出して
RAM16に転送する処理、あるいは、選択された音色
や各種操作子操作若しくは演算処理結果などのファクタ
ーに応じて選択又は作成された各種の楽音合成用パラメ
ータをROM11又はRAM12からRAM17a,1
7bに転送する処理など)が実行される。
子ブロック13及びパネルブロック14の走査処理や、
その走査結果に基づく各種処理(例えば、押圧鍵の発音
割当て処理、選択された音色などのファクターに応じて
必要なマイクロプログラムをROM11から読み出して
RAM16に転送する処理、あるいは、選択された音色
や各種操作子操作若しくは演算処理結果などのファクタ
ーに応じて選択又は作成された各種の楽音合成用パラメ
ータをROM11又はRAM12からRAM17a,1
7bに転送する処理など)が実行される。
【0024】複数の楽音発生チャンネルで夫々楽音を発
生できるようにする場合、楽音合成部15のDSP装置
を複数チャンネル分並列的に設けるか、1つのDSP装
置を複数チャンネルで時分割使用するようにすればよ
い。楽音合成部15で合成されたデジタルの楽音信号
は、デジタル−アナログ変換器22でアナログ変換さ
れ、サウンドシステム23に与えられて、音響的に発音
される。
生できるようにする場合、楽音合成部15のDSP装置
を複数チャンネル分並列的に設けるか、1つのDSP装
置を複数チャンネルで時分割使用するようにすればよ
い。楽音合成部15で合成されたデジタルの楽音信号
は、デジタル−アナログ変換器22でアナログ変換さ
れ、サウンドシステム23に与えられて、音響的に発音
される。
【0025】〔楽音合成部15の説明〕楽音合成部15
のDSPによって実現される楽音合成演算処理アルゴリ
ズムの一例を、機能的ブロック図によって、図2に示
す。図2において、信号循環部30は、デジタル波形信
号を遅延しかつ循環する閉ループを形成してなるもの
で、波形信号を遅延するための可変の遅延回路31とフ
ィルタ32を該ループ内に含み、このループにおける遅
延時間を制御することによって該ループにおける共振特
性を制御し、合成される楽音のピッチを設定することが
できるものである。また、信号循環部30は、循環する
信号のゲインを可変制御するための乗算器33と、励起
用の信号をループ内に導入するための加算器34を含ん
でいる。
のDSPによって実現される楽音合成演算処理アルゴリ
ズムの一例を、機能的ブロック図によって、図2に示
す。図2において、信号循環部30は、デジタル波形信
号を遅延しかつ循環する閉ループを形成してなるもの
で、波形信号を遅延するための可変の遅延回路31とフ
ィルタ32を該ループ内に含み、このループにおける遅
延時間を制御することによって該ループにおける共振特
性を制御し、合成される楽音のピッチを設定することが
できるものである。また、信号循環部30は、循環する
信号のゲインを可変制御するための乗算器33と、励起
用の信号をループ内に導入するための加算器34を含ん
でいる。
【0026】励振波形発生部35は、信号循環部30の
ループ内に振動を励起するための励起手段に相当するも
ので、例えば、適宜の初期波形信号を発生する。この初
期波形信号が乗算器36で適宜のエンベロープ波形デー
タEG1によって発音時間中に振幅制御され、それか
ら、加算器34に入力されることにより信号循環部30
の閉ループに導入される。この適宜に振幅制御された初
期波形信号が信号循環部30に導入され、遅延回路31
で遅延され、かつフィルタ32で周波数特性が制御さ
れ、かつ乗算器33でゲイン制御パラメータGに応じて
適宜ゲイン制御されて、加算器34にフィードバックさ
れることにより、信号循環部30において振動信号が発
振される。この振動信号発生原理は、従来技術として述
べた閉鎖ウェーブガイドネットワークによる楽音合成原
理に従うものである。なお、フィルタ32は、このルー
プで合成する楽音の倍音の量やその減衰の速さなどを制
御するもので、楽音合成用パラメータの1つとして前述
のように供給されるフィルタ係数Cによってその特性
(例えばカットオフ周波数やその他のフィルタ特性)が
設定/制御され、結局、合成される楽音の音色が制御さ
れる。
ループ内に振動を励起するための励起手段に相当するも
ので、例えば、適宜の初期波形信号を発生する。この初
期波形信号が乗算器36で適宜のエンベロープ波形デー
タEG1によって発音時間中に振幅制御され、それか
ら、加算器34に入力されることにより信号循環部30
の閉ループに導入される。この適宜に振幅制御された初
期波形信号が信号循環部30に導入され、遅延回路31
で遅延され、かつフィルタ32で周波数特性が制御さ
れ、かつ乗算器33でゲイン制御パラメータGに応じて
適宜ゲイン制御されて、加算器34にフィードバックさ
れることにより、信号循環部30において振動信号が発
振される。この振動信号発生原理は、従来技術として述
べた閉鎖ウェーブガイドネットワークによる楽音合成原
理に従うものである。なお、フィルタ32は、このルー
プで合成する楽音の倍音の量やその減衰の速さなどを制
御するもので、楽音合成用パラメータの1つとして前述
のように供給されるフィルタ係数Cによってその特性
(例えばカットオフ周波数やその他のフィルタ特性)が
設定/制御され、結局、合成される楽音の音色が制御さ
れる。
【0027】図2に示した信号循環部30と励振波形発
生部35を含む振動信号発振部分の演算アルゴリズム
は、あくまでも一例にすぎないものであり(しかも、説
明の単純化のためにかなりシンプルにした一例にすぎな
い)、これに限らず、閉鎖ウェーブガイドネットワーク
による楽音合成原理に従う演算アルゴリズムであれば、
簡単なものから複雑なものまで、また、公知のものから
未公知のものまで、すべて本発明に応用可能であるのは
勿論である。例えば、信号循環手段の閉ループ内に振動
を励起するための励起手段としては、ノイズ信号を閉ル
ープに導入する構成や、ブレス圧を模倣するプレッシャ
信号を閉ループに導入してこれを閉ループ内に設けた非
線形変換テーブルに通して非線形変換する構成などが公
知であり、これらの構成を励振波形発生部35に置き換
えてもよいものである。また、信号循環部30の構成
も、図2に示したような単純なループに限らず、進行波
の遅延路と反射波の遅延路とを信号ジャンクションによ
って接続した複雑な構成などを適宜用いてもよいもので
ある。
生部35を含む振動信号発振部分の演算アルゴリズム
は、あくまでも一例にすぎないものであり(しかも、説
明の単純化のためにかなりシンプルにした一例にすぎな
い)、これに限らず、閉鎖ウェーブガイドネットワーク
による楽音合成原理に従う演算アルゴリズムであれば、
簡単なものから複雑なものまで、また、公知のものから
未公知のものまで、すべて本発明に応用可能であるのは
勿論である。例えば、信号循環手段の閉ループ内に振動
を励起するための励起手段としては、ノイズ信号を閉ル
ープに導入する構成や、ブレス圧を模倣するプレッシャ
信号を閉ループに導入してこれを閉ループ内に設けた非
線形変換テーブルに通して非線形変換する構成などが公
知であり、これらの構成を励振波形発生部35に置き換
えてもよいものである。また、信号循環部30の構成
も、図2に示したような単純なループに限らず、進行波
の遅延路と反射波の遅延路とを信号ジャンクションによ
って接続した複雑な構成などを適宜用いてもよいもので
ある。
【0028】このような閉鎖ウェーブガイドネットワー
クによる楽音合成原理においては、信号循環部30にお
いて信号が閉ループを1巡するに要する総遅延時間と、
該ループで発振される振動信号の周波数つまり該ループ
で合成される楽音のピッチとの間に明確な相関関係があ
り、該遅延時間を適宜に可変設定することにより、所望
の振動周波数つまり楽音ピッチを実現することができ
る。この相関関係は、信号循環部と励起部として採用す
るモデル若しくは演算アルゴリズムによって決定され
る。例えば、振動周波数がループの総遅延時間の逆数に
対応する場合があり、また、振動周波数がループの総遅
延時間の2倍の逆数に対応する場合もある。図2の例の
場合、信号循環部30で発振される振動信号の周波数
(合成される楽音信号のピッチ)は、信号循環部30に
おける総遅延時間の逆数に対応する。
クによる楽音合成原理においては、信号循環部30にお
いて信号が閉ループを1巡するに要する総遅延時間と、
該ループで発振される振動信号の周波数つまり該ループ
で合成される楽音のピッチとの間に明確な相関関係があ
り、該遅延時間を適宜に可変設定することにより、所望
の振動周波数つまり楽音ピッチを実現することができ
る。この相関関係は、信号循環部と励起部として採用す
るモデル若しくは演算アルゴリズムによって決定され
る。例えば、振動周波数がループの総遅延時間の逆数に
対応する場合があり、また、振動周波数がループの総遅
延時間の2倍の逆数に対応する場合もある。図2の例の
場合、信号循環部30で発振される振動信号の周波数
(合成される楽音信号のピッチ)は、信号循環部30に
おける総遅延時間の逆数に対応する。
【0029】図2において、信号循環部30における総
遅延時間は、他に特筆すべき遅延要素が無い場合は、遅
延回路31で設定された遅延時間と、フィルタ32にお
ける信号遅延時間との合計からなる。勿論、他に特筆す
べき遅延要素がある場合はその分の遅延時間も付加され
る。遅延回路31は、遅延段数を可変することができる
ものであり、制御パラメータDxによってその遅延段数
が可変設定される。基本的には、所望の楽音ピッチに応
じて制御パラメータDxを可変設定し、これにより遅延
回路31の遅延段数を可変設定することにより、閉ルー
プにおける遅延時間の可変制御がなされる。しかし、そ
れだけでは不十分であり、フィルタ32による信号遅延
時間を考慮して遅延量の補償を行なう必要がある。その
ために、追って詳しく説明するように、本発明では、楽
音合成部15における楽音信号1サンプル当たりの演算
(遅延及びフィルタ等の演算)の単位時間を指示するタ
イミング信号(サンプリングクロックCK)の発生周期
を可変制御するようにしている。
遅延時間は、他に特筆すべき遅延要素が無い場合は、遅
延回路31で設定された遅延時間と、フィルタ32にお
ける信号遅延時間との合計からなる。勿論、他に特筆す
べき遅延要素がある場合はその分の遅延時間も付加され
る。遅延回路31は、遅延段数を可変することができる
ものであり、制御パラメータDxによってその遅延段数
が可変設定される。基本的には、所望の楽音ピッチに応
じて制御パラメータDxを可変設定し、これにより遅延
回路31の遅延段数を可変設定することにより、閉ルー
プにおける遅延時間の可変制御がなされる。しかし、そ
れだけでは不十分であり、フィルタ32による信号遅延
時間を考慮して遅延量の補償を行なう必要がある。その
ために、追って詳しく説明するように、本発明では、楽
音合成部15における楽音信号1サンプル当たりの演算
(遅延及びフィルタ等の演算)の単位時間を指示するタ
イミング信号(サンプリングクロックCK)の発生周期
を可変制御するようにしている。
【0030】遅延回路31における1段毎の遅延処理が
サンプリングクロックCKによって制御される。従っ
て、サンプリングクロックCKの周波数をfs(Hz)
とし、制御パラメータDxによって設定された遅延段数
をDxとすると、遅延回路31が受け持つ信号遅延時間
は、下記式のようになる。
サンプリングクロックCKによって制御される。従っ
て、サンプリングクロックCKの周波数をfs(Hz)
とし、制御パラメータDxによって設定された遅延段数
をDxとすると、遅延回路31が受け持つ信号遅延時間
は、下記式のようになる。
【数1】Dx/fs (秒)
【0031】サンプリングクロックCKはフィルタ32
にも与えられ、該フィルタ32における演算単位時間を
設定する。フィルタ32による信号遅延時間は、そのフ
ィルタの具体的構成によって決まる。フィルタ32の一
例を図3に示す。これは、無限応答フィルタ(IIR)
によってローパスフィルタ(LPF)を構成した例であ
る。サンプリングクロックCKに従って1段の信号遅延
を行なう単位遅延回路25と、この単位遅延回路25か
らフィードバックされる信号をフィルタ入力信号から引
算する加算器26と、加算器26の出力にフィルタ係数
Cを掛ける乗算器27と、乗算器27の出力に単位遅延
回路25からフィードバックされる信号を加算する加算
器28とを具えており、加算器28の出力が単位遅延回
路25に入力されると共に、フィルタ出力として取り出
される構成である。
にも与えられ、該フィルタ32における演算単位時間を
設定する。フィルタ32による信号遅延時間は、そのフ
ィルタの具体的構成によって決まる。フィルタ32の一
例を図3に示す。これは、無限応答フィルタ(IIR)
によってローパスフィルタ(LPF)を構成した例であ
る。サンプリングクロックCKに従って1段の信号遅延
を行なう単位遅延回路25と、この単位遅延回路25か
らフィードバックされる信号をフィルタ入力信号から引
算する加算器26と、加算器26の出力にフィルタ係数
Cを掛ける乗算器27と、乗算器27の出力に単位遅延
回路25からフィードバックされる信号を加算する加算
器28とを具えており、加算器28の出力が単位遅延回
路25に入力されると共に、フィルタ出力として取り出
される構成である。
【0032】図3の例のフィルタの場合、その信号遅延
量Dlpfは、下記式のようである。なお、遅延量Dlpfの
単位は、演算単位時間を1クロックとするクロック数つ
まり遅延段数(遅延回路31の遅延段数と等価)であ
る。
量Dlpfは、下記式のようである。なお、遅延量Dlpfの
単位は、演算単位時間を1クロックとするクロック数つ
まり遅延段数(遅延回路31の遅延段数と等価)であ
る。
【数2】 Dlpf =C sinθ/{θ*(1−C cosθ)} ここで、θは、 θ=2π*fp/fs である。fp(Hz)は該フィルタに入力される信号の
音高周波数(ピッチ)であり、fs(Hz)は前述のよ
うにサンプリングクロックCKの周波数である。勿論、
*は掛算記号である。
音高周波数(ピッチ)であり、fs(Hz)は前述のよ
うにサンプリングクロックCKの周波数である。勿論、
*は掛算記号である。
【0033】上記数式2のように、フィルタ32による
信号遅延時間はフィルタ係数Cによって変化する。従っ
て、例えば、図1のブロック13,14の演奏操作子又
はパネル操作子等を使用してユーザによって、楽音発音
中にリアルタイムで、フィルタ係数Cを可変制御するよ
うな場合は、フィルタ32による信号遅延時間が楽音発
音中に変動し、そのままではループの総遅延時間の変動
に対応して合成される楽音のピッチが変動してしまうの
で、この変動を適切に補償することは極めて重要であ
る。勿論、フィルタ32の構成は図3に示すものに限ら
ず、他のどのような構成を用いてもよいものであり、そ
の構成に応じて該フィルタにおける係数と信号遅延時間
の相関関係が定まる。
信号遅延時間はフィルタ係数Cによって変化する。従っ
て、例えば、図1のブロック13,14の演奏操作子又
はパネル操作子等を使用してユーザによって、楽音発音
中にリアルタイムで、フィルタ係数Cを可変制御するよ
うな場合は、フィルタ32による信号遅延時間が楽音発
音中に変動し、そのままではループの総遅延時間の変動
に対応して合成される楽音のピッチが変動してしまうの
で、この変動を適切に補償することは極めて重要であ
る。勿論、フィルタ32の構成は図3に示すものに限ら
ず、他のどのような構成を用いてもよいものであり、そ
の構成に応じて該フィルタにおける係数と信号遅延時間
の相関関係が定まる。
【0034】上記の補償のために、この実施例では、楽
音合成部15における楽音信号1サンプル当たりの演算
(遅延及びフィルタ等の演算)の単位時間を指示するタ
イミング信号であるサンプリングクロックCKの周波数
を、フィルタによる信号遅延時間の変化に応じて、可変
制御するようにしている。サンプリングクロックCKは
図2に一例を示したサンプリングタイム設定部41から
発生される。
音合成部15における楽音信号1サンプル当たりの演算
(遅延及びフィルタ等の演算)の単位時間を指示するタ
イミング信号であるサンプリングクロックCKの周波数
を、フィルタによる信号遅延時間の変化に応じて、可変
制御するようにしている。サンプリングクロックCKは
図2に一例を示したサンプリングタイム設定部41から
発生される。
【0035】図2において、サンプリングタイム設定部
41は、10進数の0から1の範囲の或る小数値からな
る周波数ナンバFを、システムクロックφに従う規則的
時間間隔で繰返し加算(又は減算でもよい)することに
基づきサンプリングクロックCKを発生する。周波数ナ
ンバFの小数部は小数部加算器42に入力され、整数部
は整数部加算器43に入力される。小数部加算器42の
桁上げ信号が整数部加算器43に桁上げ入力されるよう
になっている。両加算器42,43の出力がレジスタ4
4に入力され、システムクロックφによって1クロック
周期遅延されて夫々の加算器42,43の加算入力に加
わる。これにより、周波数ナンバFがシステムクロック
φに従う規則的時間間隔で繰返し加算される。小数部加
算器42の桁上げ信号がサンプリングクロックCKとし
て使用され、楽音合成部15内の各回路に供給される。
得られるサンプリングクロックCKの周波数fs(kH
z)は、周波数ナンバFとシステムクロックφの周波数
の積に相当する。システムクロックφの周波数を例えば
50kHzとすると、下記式のようにである。
41は、10進数の0から1の範囲の或る小数値からな
る周波数ナンバFを、システムクロックφに従う規則的
時間間隔で繰返し加算(又は減算でもよい)することに
基づきサンプリングクロックCKを発生する。周波数ナ
ンバFの小数部は小数部加算器42に入力され、整数部
は整数部加算器43に入力される。小数部加算器42の
桁上げ信号が整数部加算器43に桁上げ入力されるよう
になっている。両加算器42,43の出力がレジスタ4
4に入力され、システムクロックφによって1クロック
周期遅延されて夫々の加算器42,43の加算入力に加
わる。これにより、周波数ナンバFがシステムクロック
φに従う規則的時間間隔で繰返し加算される。小数部加
算器42の桁上げ信号がサンプリングクロックCKとし
て使用され、楽音合成部15内の各回路に供給される。
得られるサンプリングクロックCKの周波数fs(kH
z)は、周波数ナンバFとシステムクロックφの周波数
の積に相当する。システムクロックφの周波数を例えば
50kHzとすると、下記式のようにである。
【0036】
【数3】fs=F*50000
【0037】サンプリングタイム設定部41において、
周波数ナンバFは、初期値として所定の或る基準値を設
定しておき、信号循環部30のループの遅延時間を制御
若しくは調整すべきとき、この周波数ナンバFを適宜変
更してサンプリングクロックCKの周波数fsを可変調
整することにより対処するようになっている。そのため
の周波数ナンバFの可変制御処理、つまり遅延/演算タ
イミング信号(サンプリングクロックCK)の発生制御
処理は、この実施例では、追って詳しく説明するよう
に、CPU10の処理によって行なわれる。なお、サン
プリングタイム設定部41の構成は図示したものに限ら
ず、その他の適宜の可変分周回路や可変発振回路などを
適宜使用して構成するようにしてよい。
周波数ナンバFは、初期値として所定の或る基準値を設
定しておき、信号循環部30のループの遅延時間を制御
若しくは調整すべきとき、この周波数ナンバFを適宜変
更してサンプリングクロックCKの周波数fsを可変調
整することにより対処するようになっている。そのため
の周波数ナンバFの可変制御処理、つまり遅延/演算タ
イミング信号(サンプリングクロックCK)の発生制御
処理は、この実施例では、追って詳しく説明するよう
に、CPU10の処理によって行なわれる。なお、サン
プリングタイム設定部41の構成は図示したものに限ら
ず、その他の適宜の可変分周回路や可変発振回路などを
適宜使用して構成するようにしてよい。
【0038】以上のように、楽音合成部15における遅
延/演算タイミング信号であるサンプリングクロックC
Kの周波数fsを可変制御することによって、遅延回路
31及びフィルタ32における遅延及び演算単位時間
(つまり楽音合成部15における楽音波形信号のサンプ
リング時間)を変更制御するようになっている。すなわ
ち、遅延回路31における遅延単位時間(1/fs)が
可変制御されることにより、その遅延段数(Dx)を補
間演算によって可変調整することなく、該遅延回路31
が分担する遅延時間が可変制御されることになる(前記
数式1参照)。
延/演算タイミング信号であるサンプリングクロックC
Kの周波数fsを可変制御することによって、遅延回路
31及びフィルタ32における遅延及び演算単位時間
(つまり楽音合成部15における楽音波形信号のサンプ
リング時間)を変更制御するようになっている。すなわ
ち、遅延回路31における遅延単位時間(1/fs)が
可変制御されることにより、その遅延段数(Dx)を補
間演算によって可変調整することなく、該遅延回路31
が分担する遅延時間が可変制御されることになる(前記
数式1参照)。
【0039】図2の楽音合成部15において、信号循環
部30で発振された振動信号は、閉ループ内の適宜のポ
イントから取り出されて振幅調整用の乗算器37に入力
され、適宜のエンベロープ波形データEG2によって適
宜に振幅制御される。また、乗算器36から出力された
励振波形信号が乗算器38に入力され、適宜のエンベロ
ープ波形データEG3によって適宜に振幅制御される。
そして、乗算器37と38の出力が加算器39で加算合
成され、楽音信号として出力される。これは、信号循環
部30で発振された振動信号(すなわち所望の楽音ピッ
チを持つ楽音波形信号)に対して、適当な振幅で励振波
形信号を加算することにより、合成楽音波形を多様に制
御できるようにするためである。勿論、これに限らず、
乗算器38と加算器39を省略して、信号循環部30で
発振された振動信号を適宜振幅制御した上でそのまま楽
音信号として出力するようにしてもよい。
部30で発振された振動信号は、閉ループ内の適宜のポ
イントから取り出されて振幅調整用の乗算器37に入力
され、適宜のエンベロープ波形データEG2によって適
宜に振幅制御される。また、乗算器36から出力された
励振波形信号が乗算器38に入力され、適宜のエンベロ
ープ波形データEG3によって適宜に振幅制御される。
そして、乗算器37と38の出力が加算器39で加算合
成され、楽音信号として出力される。これは、信号循環
部30で発振された振動信号(すなわち所望の楽音ピッ
チを持つ楽音波形信号)に対して、適当な振幅で励振波
形信号を加算することにより、合成楽音波形を多様に制
御できるようにするためである。勿論、これに限らず、
乗算器38と加算器39を省略して、信号循環部30で
発振された振動信号を適宜振幅制御した上でそのまま楽
音信号として出力するようにしてもよい。
【0040】加算器39から出力される合成楽音信号
は、補間演算部40に入力される。この合成楽音信号
は、サンプリングクロックCKに従うサンプリング周期
で合成されているものであるが、補間演算部40はこの
合成楽音信号のサンプル間の波形振幅が更に密になるよ
うに補間するためのものである。そのための補間パラメ
ータとして、サンプリングタイム設定部41の小数部加
算器42から出力される周波数ナンバFの累算値の小数
部データαが使用される。図4は、補間演算部40の一
例を示すもので、最もシンプルな例として1次補間回路
を示している。すなわち、サンプリングクロックCKに
従ってデータ取り込みとシフトが制御される2段のシフ
トレジスタ45に上記合成楽音信号の連続する2サンプ
ル値を順送りに取り込み、シフトレジスタ45の各段出
力を夫々乗算器46,47に入力し、上記小数部データ
αとその補数1−αとを夫々重み付け係数として乗算器
46,47に夫々入力し、各乗算器46,47の積を加
算器48で加算するようにした構成からなっている。
は、補間演算部40に入力される。この合成楽音信号
は、サンプリングクロックCKに従うサンプリング周期
で合成されているものであるが、補間演算部40はこの
合成楽音信号のサンプル間の波形振幅が更に密になるよ
うに補間するためのものである。そのための補間パラメ
ータとして、サンプリングタイム設定部41の小数部加
算器42から出力される周波数ナンバFの累算値の小数
部データαが使用される。図4は、補間演算部40の一
例を示すもので、最もシンプルな例として1次補間回路
を示している。すなわち、サンプリングクロックCKに
従ってデータ取り込みとシフトが制御される2段のシフ
トレジスタ45に上記合成楽音信号の連続する2サンプ
ル値を順送りに取り込み、シフトレジスタ45の各段出
力を夫々乗算器46,47に入力し、上記小数部データ
αとその補数1−αとを夫々重み付け係数として乗算器
46,47に夫々入力し、各乗算器46,47の積を加
算器48で加算するようにした構成からなっている。
【0041】なお、重み付け係数として使用される小数
部データαは、システムクロックφのタイミングに同期
してその値が変化するので、補間演算部40は、実質的
に、合成楽音信号のサンプリング周期をサンプリングク
ロックCKの周期からシステムクロックφの周期に変換
していることになる。これは、複数チャンネルの楽音合
成部15を設ける場合に、各チャンネル毎に異なるサン
プリングクロックCKに従うサンプリング周期から、共
通のサンプリング周期(つまりシステムクロックφの周
期)に変換することを意味しているので、好都合であ
る。つまり、共通のサンプリング周期(システムクロッ
クφの周期)に変換された各チャンネルの楽音信号を同
期して処理(例えば、加算合計して効果付与やD/A変
換などの処理を共通に行なう)することが容易にでき
る。
部データαは、システムクロックφのタイミングに同期
してその値が変化するので、補間演算部40は、実質的
に、合成楽音信号のサンプリング周期をサンプリングク
ロックCKの周期からシステムクロックφの周期に変換
していることになる。これは、複数チャンネルの楽音合
成部15を設ける場合に、各チャンネル毎に異なるサン
プリングクロックCKに従うサンプリング周期から、共
通のサンプリング周期(つまりシステムクロックφの周
期)に変換することを意味しているので、好都合であ
る。つまり、共通のサンプリング周期(システムクロッ
クφの周期)に変換された各チャンネルの楽音信号を同
期して処理(例えば、加算合計して効果付与やD/A変
換などの処理を共通に行なう)することが容易にでき
る。
【0042】補間演算部40は、図示のような1次補間
回路に限らず、その他の多次補間回路を用いてもよい。
また、補間演算部40を省略してもよい。補間演算部4
0を省略した場合は、複数チャンネルの楽音合成部15
の合成楽音信号を共通のサンプリング周期(つまりシス
テムクロックφの周期)に変換するために、レジスタ又
はラッチ等を含む適宜の同期化回路を設けてもよい。
回路に限らず、その他の多次補間回路を用いてもよい。
また、補間演算部40を省略してもよい。補間演算部4
0を省略した場合は、複数チャンネルの楽音合成部15
の合成楽音信号を共通のサンプリング周期(つまりシス
テムクロックφの周期)に変換するために、レジスタ又
はラッチ等を含む適宜の同期化回路を設けてもよい。
【0043】図5は、楽音合成部15として使用される
DSPの1チャンネル分の基本的処理プログラムの一例
を略示するものである。このDSPの処理ステップはシ
ステムクロックφに従って行なわれる。ステップ50で
は、そのチャンネルに関してキーオンイベントが生じた
か(つまりそのチャンネルに発音割当てされた音の発音
開始が指示されたか)をチェックする。YESであれ
ば、ステップ51に行き、楽音合成及び発音開始に必要
な各種の処理(発音開始設定処理)を行なう。NOであ
れば、ステップ52に行き、そのチャンネルに関してキ
ーオフイベントが生じたか(つまりそのチャンネルに発
音割当てされた音の発音終了が指示されたか)をチェッ
クする。YESであれば、ステップ53に行き、発音終
了に必要な各種の処理(発音終了設定処理)を行なう。
この発音開始設定処理又は発音終了設定処理の具体例と
しては、公知のキーオンイベント時又はキーオフイベン
ト時の処理を適宜行なえばよいので、特に詳しく説明し
ない。
DSPの1チャンネル分の基本的処理プログラムの一例
を略示するものである。このDSPの処理ステップはシ
ステムクロックφに従って行なわれる。ステップ50で
は、そのチャンネルに関してキーオンイベントが生じた
か(つまりそのチャンネルに発音割当てされた音の発音
開始が指示されたか)をチェックする。YESであれ
ば、ステップ51に行き、楽音合成及び発音開始に必要
な各種の処理(発音開始設定処理)を行なう。NOであ
れば、ステップ52に行き、そのチャンネルに関してキ
ーオフイベントが生じたか(つまりそのチャンネルに発
音割当てされた音の発音終了が指示されたか)をチェッ
クする。YESであれば、ステップ53に行き、発音終
了に必要な各種の処理(発音終了設定処理)を行なう。
この発音開始設定処理又は発音終了設定処理の具体例と
しては、公知のキーオンイベント時又はキーオフイベン
ト時の処理を適宜行なえばよいので、特に詳しく説明し
ない。
【0044】ステップ54では、図2のサンプリングタ
イム設定部41の機能に対応する処理(周波数ナンバF
を累算する処理)を行なう。このステップ54は、シス
テムクロックφに従って毎回行なわれる。次のステップ
55では、上記ステップ54での演算の結果、小数部加
算器42から桁上げ信号が生じたか(つまりサンプリン
グクロックCKのクロックパルス発生タイミングか)を
調べる。YESであれば、ステップ56に行き、楽音波
形合成演算処理を行なう。この楽音波形合成演算処理
は、主に、図2の信号循環部30と励振波形発生部35
の機能に関連する処理であり、楽音合成用マイクロプロ
グラムに従う処理を行なう。ステップ55がNOであれ
ば、ステップ56を行なわずに、ステップ57に行き、
波形補間演算処理を行ない、合成楽音信号を出力する。
この処理は図2の補間演算部40の機能に対応する。ま
た、ステップ56の後もステップ57を行なう。従っ
て、ステップ56の楽音波形合成演算処理はサンプリン
グクロックCKの発生タイミングに同期して実行される
ことになり、一方、ステップ54の周波数ナンバ累算処
理とステップ57の波形補間演算処理はシステムクロッ
クφに同期して毎回実行されることになる。
イム設定部41の機能に対応する処理(周波数ナンバF
を累算する処理)を行なう。このステップ54は、シス
テムクロックφに従って毎回行なわれる。次のステップ
55では、上記ステップ54での演算の結果、小数部加
算器42から桁上げ信号が生じたか(つまりサンプリン
グクロックCKのクロックパルス発生タイミングか)を
調べる。YESであれば、ステップ56に行き、楽音波
形合成演算処理を行なう。この楽音波形合成演算処理
は、主に、図2の信号循環部30と励振波形発生部35
の機能に関連する処理であり、楽音合成用マイクロプロ
グラムに従う処理を行なう。ステップ55がNOであれ
ば、ステップ56を行なわずに、ステップ57に行き、
波形補間演算処理を行ない、合成楽音信号を出力する。
この処理は図2の補間演算部40の機能に対応する。ま
た、ステップ56の後もステップ57を行なう。従っ
て、ステップ56の楽音波形合成演算処理はサンプリン
グクロックCKの発生タイミングに同期して実行される
ことになり、一方、ステップ54の周波数ナンバ累算処
理とステップ57の波形補間演算処理はシステムクロッ
クφに同期して毎回実行されることになる。
【0045】〔CPUの処理の具体例〕この実施例で
は、サンプリングクロックCKの発生タイミングを制御
するための処理、つまり周波数ナンバFの値を可変設定
する処理は、CPU10によって実行されるようになっ
ている。そこで、以下では、CPU10による処理の具
体例について説明する。
は、サンプリングクロックCKの発生タイミングを制御
するための処理、つまり周波数ナンバFの値を可変設定
する処理は、CPU10によって実行されるようになっ
ている。そこで、以下では、CPU10による処理の具
体例について説明する。
【0046】−メインルーチンの説明− CPU10のメインルーチンの概略例を図6によって説
明すると、まず、電源スイッチがオンされると所定のイ
ニシャライズ処理を行なった後、ステップ60で操作子
イベント検出処理を行なう。ここでは、演奏操作子ブロ
ック13やパネルブロック14におけるキースイッチや
その他のスイッチ類及び操作子類の操作状態を検出し、
操作状態に変化があったかどうか(イベントがあったか
どうか)を調べる。例えば、スイッチのオンイベント又
はオフイベントがあった場合はそのスイッチに対応する
オンイベントフラグ又はオフイベントフラグを立てる。
また、ジョイスティックやホイールあるいはボリューム
などの多段階操作位置を持つ操作子の操作量が変化した
場合は、その操作量や移動量を夫々の操作子に対応して
レジスタに記憶する。
明すると、まず、電源スイッチがオンされると所定のイ
ニシャライズ処理を行なった後、ステップ60で操作子
イベント検出処理を行なう。ここでは、演奏操作子ブロ
ック13やパネルブロック14におけるキースイッチや
その他のスイッチ類及び操作子類の操作状態を検出し、
操作状態に変化があったかどうか(イベントがあったか
どうか)を調べる。例えば、スイッチのオンイベント又
はオフイベントがあった場合はそのスイッチに対応する
オンイベントフラグ又はオフイベントフラグを立てる。
また、ジョイスティックやホイールあるいはボリューム
などの多段階操作位置を持つ操作子の操作量が変化した
場合は、その操作量や移動量を夫々の操作子に対応して
レジスタに記憶する。
【0047】次に、ステップ61の音色選択処理では、
演奏操作子ブロック13やパネルブロック14における
操作子操作によって選択された音色(若しくはイニシャ
ライズ処理で指定された音色)の楽音を合成するために
必要なデータをROM11又はRAM12から読み出
し、楽音合成部15(DSP)に適宜転送してRAM1
6,17a,17b等に適宜セットする。
演奏操作子ブロック13やパネルブロック14における
操作子操作によって選択された音色(若しくはイニシャ
ライズ処理で指定された音色)の楽音を合成するために
必要なデータをROM11又はRAM12から読み出
し、楽音合成部15(DSP)に適宜転送してRAM1
6,17a,17b等に適宜セットする。
【0048】次に、ステップ62の発音割当て処理で
は、キーオンイベントがあった場合に当該新たな押圧鍵
の楽音を合成するためにDSPチャンネルの1つに該押
圧鍵の発音を割り当てる処理を行ない、また、キーオフ
イベントがあった場合に当該新たな離鍵に係る楽音を割
り当てているDSPチャンネルにおいて離鍵後の減衰発
音又は発音消去を行なうための処理を行なう。ここで
は、公知の発音割当て処理(キーアサイナ処理)を適宜
使用してよい。
は、キーオンイベントがあった場合に当該新たな押圧鍵
の楽音を合成するためにDSPチャンネルの1つに該押
圧鍵の発音を割り当てる処理を行ない、また、キーオフ
イベントがあった場合に当該新たな離鍵に係る楽音を割
り当てているDSPチャンネルにおいて離鍵後の減衰発
音又は発音消去を行なうための処理を行なう。ここで
は、公知の発音割当て処理(キーアサイナ処理)を適宜
使用してよい。
【0049】次に、ステップ63では、発音割当てされ
ている(実際に楽音発生中の)チャンネルが存在してい
るかを調べ、あればステップ64,65,66の処理を
行なうが、なければステップ64〜66をジャンプす
る。ステップ64では、周波数ナンバ決定処理を行な
う。この処理は、前述のように、楽音合成部15(DS
P)におけるサンプリングクロックCKの周波数を可変
調整するために、周波数ナンバFを前記閉ループ内のフ
ィルタによる信号遅延時間を考慮した適切な値に可変決
定するための処理である。この詳細については図7によ
って後述する。次のステップ65では、前記ステップ6
0で検出したイベントに対応する必要な処理を行なう。
ている(実際に楽音発生中の)チャンネルが存在してい
るかを調べ、あればステップ64,65,66の処理を
行なうが、なければステップ64〜66をジャンプす
る。ステップ64では、周波数ナンバ決定処理を行な
う。この処理は、前述のように、楽音合成部15(DS
P)におけるサンプリングクロックCKの周波数を可変
調整するために、周波数ナンバFを前記閉ループ内のフ
ィルタによる信号遅延時間を考慮した適切な値に可変決
定するための処理である。この詳細については図7によ
って後述する。次のステップ65では、前記ステップ6
0で検出したイベントに対応する必要な処理を行なう。
【0050】ステップ64,65の処理は発音割当て中
の1チャンネルに関して行われる。次のステップ66で
は、楽音を発生すべきことが割当てられている全てのチ
ャンネルに関してステップ64,65の処理を行なった
かを調べ、NOであれば、ステップ64に戻り、発音割
当て中の別のチャンネルについてステップ64と65の
処理を行なう。楽音を発生すべきことが割当てられてい
る全てのチャンネルに関してステップ64,65の処理
を終えると、ステップ67に行き、その他の必要な処理
を行なう。それから、ステップ60に戻る。こうして、
ステップ60から67に至るメインルーチンを繰返す。
の1チャンネルに関して行われる。次のステップ66で
は、楽音を発生すべきことが割当てられている全てのチ
ャンネルに関してステップ64,65の処理を行なった
かを調べ、NOであれば、ステップ64に戻り、発音割
当て中の別のチャンネルについてステップ64と65の
処理を行なう。楽音を発生すべきことが割当てられてい
る全てのチャンネルに関してステップ64,65の処理
を終えると、ステップ67に行き、その他の必要な処理
を行なう。それから、ステップ60に戻る。こうして、
ステップ60から67に至るメインルーチンを繰返す。
【0051】−周波数ナンバ決定処理の説明− 図7は、メインルーチンの前記ステップ64で行われる
周波数ナンバ決定処理の一例を示すものである。なお、
図7の処理は、メインルーチンの前記ステップ64にお
いて処理の対象となっている1つのチャンネルに関して
実行されるものである。図7において、まず、ステップ
70では、ピッチ決定サブルーチンを行なう。このサブ
ルーチンは、発生すべき楽音の本来の音高を指定する情
報(例えばキーコードKC)と各種のピッチ変更若しく
は変調情報とに基づき、発生すべき楽音の実際のピッチ
(音高)周波数を決定する処理を行なうものである。こ
のピッチ決定サブルーチンの具体例は図8に示されてい
る。
周波数ナンバ決定処理の一例を示すものである。なお、
図7の処理は、メインルーチンの前記ステップ64にお
いて処理の対象となっている1つのチャンネルに関して
実行されるものである。図7において、まず、ステップ
70では、ピッチ決定サブルーチンを行なう。このサブ
ルーチンは、発生すべき楽音の本来の音高を指定する情
報(例えばキーコードKC)と各種のピッチ変更若しく
は変調情報とに基づき、発生すべき楽音の実際のピッチ
(音高)周波数を決定する処理を行なうものである。こ
のピッチ決定サブルーチンの具体例は図8に示されてい
る。
【0052】図8において、ステップ81では、現在処
理中のチャンネルに関してキーオンイベントがあるかを
調べ、YESであればステップ82に行く。ステップ8
2では、そのチャンネルに割り当てられた押圧鍵のキー
コードKCに基づき基本のピッチ周波数Pkcを周波数
テーブル等を用いて求め、これを当該チャンネルのピッ
チ周波数Pnとして記憶する。基本のピッチ周波数Pk
cは、ピッチ変更若しくは変調を行なわないときの所望
の楽音ピッチに対応している。
理中のチャンネルに関してキーオンイベントがあるかを
調べ、YESであればステップ82に行く。ステップ8
2では、そのチャンネルに割り当てられた押圧鍵のキー
コードKCに基づき基本のピッチ周波数Pkcを周波数
テーブル等を用いて求め、これを当該チャンネルのピッ
チ周波数Pnとして記憶する。基本のピッチ周波数Pk
cは、ピッチ変更若しくは変調を行なわないときの所望
の楽音ピッチに対応している。
【0053】次のステップ83,84,85の処理は、
各種のピッチ変更若しくは変調情報に応じてピッチ周波
数Pnを適宜変更する処理を行なう。ステップ83で
は、演奏者によってマニュアル操作されるピッチベンド
操作子の操作量Mに適宜の感度パラメータSpを演算
(例えば掛け算)し、その演算結果をピッチベンドデー
タPBとしてストアする。感度パラメータSpは、選択
された音色の種類などに応じて適宜に決定されるもので
ある。ステップ84では、上記ピッチ周波数Pnに対し
てピッチベンドデータPBを指数変換した値exp(P
B)を演算(例えば掛け算)し、その演算結果を新たな
ピッチ周波数Pnとして更新して記憶する。ピッチベン
ドデータPBを指数変換する理由は、操作子の操作量と
楽音ピッチの聴感覚とに合わせるためである。ステップ
85では、上記更新されたピッチ周波数Pnに対して当
該チャンネルに関するピッチ変調データSnを演算(例
えば加算)し、その演算結果を新たなピッチ周波数Pn
として更新して記憶する。ピッチ変調データSnは、ビ
ブラートやグライドなどピッチ変調効果を付与するため
に適宜の回路から与えられる時変動するデータである。
各種のピッチ変更若しくは変調情報に応じてピッチ周波
数Pnを適宜変更する処理を行なう。ステップ83で
は、演奏者によってマニュアル操作されるピッチベンド
操作子の操作量Mに適宜の感度パラメータSpを演算
(例えば掛け算)し、その演算結果をピッチベンドデー
タPBとしてストアする。感度パラメータSpは、選択
された音色の種類などに応じて適宜に決定されるもので
ある。ステップ84では、上記ピッチ周波数Pnに対し
てピッチベンドデータPBを指数変換した値exp(P
B)を演算(例えば掛け算)し、その演算結果を新たな
ピッチ周波数Pnとして更新して記憶する。ピッチベン
ドデータPBを指数変換する理由は、操作子の操作量と
楽音ピッチの聴感覚とに合わせるためである。ステップ
85では、上記更新されたピッチ周波数Pnに対して当
該チャンネルに関するピッチ変調データSnを演算(例
えば加算)し、その演算結果を新たなピッチ周波数Pn
として更新して記憶する。ピッチ変調データSnは、ビ
ブラートやグライドなどピッチ変調効果を付与するため
に適宜の回路から与えられる時変動するデータである。
【0054】キーオンイベントがない場合は上記ステッ
プ82〜85の処理はジャンプし、ステップ86に行
く。ステップ86では、ピッチベンド操作子の操作量M
に変化イベントがあったかを調べる。変化したならば、
新たなピッチ周波数Pnを演算するために、ステップ8
7及び88の処理を行なう。ステップ87及び88の処
理は上記ステップ83及び84の処理と同じ処理であ
る。ステップ89では、ピッチ変調データSnに変化イ
ベントがあったかを調べる。変化したならば、新たなピ
ッチ周波数Pnを演算するために、ステップ90の処理
を行なう。ステップ90の処理は上記ステップ85の処
理と同じ処理である。
プ82〜85の処理はジャンプし、ステップ86に行
く。ステップ86では、ピッチベンド操作子の操作量M
に変化イベントがあったかを調べる。変化したならば、
新たなピッチ周波数Pnを演算するために、ステップ8
7及び88の処理を行なう。ステップ87及び88の処
理は上記ステップ83及び84の処理と同じ処理であ
る。ステップ89では、ピッチ変調データSnに変化イ
ベントがあったかを調べる。変化したならば、新たなピ
ッチ周波数Pnを演算するために、ステップ90の処理
を行なう。ステップ90の処理は上記ステップ85の処
理と同じ処理である。
【0055】図7に戻ると、ステップ70のピッチ決定
サブルーチンの後、ステップ71のフィルタ係数決定サ
ブルーチンを行なう。このサブルーチンでは、楽音合成
部15内の音色形成/制御のフィルタ32の係数Cを決
定する処理を行なう。このフィルタ係数決定サブルーチ
ンの具体例は図9に示されている。図9において、ステ
ップ91では、音色変化イベントがあるかを調べ、YE
Sであればステップ92に行く。音色変化イベントは、
例えば、ペダル操作子やトーンホイールなどの各種の音
色制御用操作子の操作状態が、楽音発生中にリアルタイ
ムで変更されたとき、生じる。あるいは、適宜の音色制
御回路から時変動する音色制御データが発生されるよう
になっている場合、この音色制御データの値が変化した
とき、音色変化イベントが生じる。この音色変化イベン
トは、フィルタ係数Cを変化させるべきことを指示して
いる。
サブルーチンの後、ステップ71のフィルタ係数決定サ
ブルーチンを行なう。このサブルーチンでは、楽音合成
部15内の音色形成/制御のフィルタ32の係数Cを決
定する処理を行なう。このフィルタ係数決定サブルーチ
ンの具体例は図9に示されている。図9において、ステ
ップ91では、音色変化イベントがあるかを調べ、YE
Sであればステップ92に行く。音色変化イベントは、
例えば、ペダル操作子やトーンホイールなどの各種の音
色制御用操作子の操作状態が、楽音発生中にリアルタイ
ムで変更されたとき、生じる。あるいは、適宜の音色制
御回路から時変動する音色制御データが発生されるよう
になっている場合、この音色制御データの値が変化した
とき、音色変化イベントが生じる。この音色変化イベン
トは、フィルタ係数Cを変化させるべきことを指示して
いる。
【0056】ステップ92では、選択された音色に対応
する基準のフィルタ係数Coを、上記音色変化イベント
に係る音色変更データTmと適宜の音色用感度パラメー
タSfとによって変更する演算を行なう。例えば、感度
パラメータSfを音色変更データTmに乗算し、その積
を基準のフィルタ係数Coに加算して、当該チャンネル
に関する変更されたフィルタ係数Cnを求め、これをス
トアしておく。勿論、楽音発音中に選択音色が変更され
た場合も、ステップ91で音色変化イベントとして検出
し、変更された基準のフィルタ係数Coを基にしてステ
ップ92の演算を行なうようにしてもよい。なお、フィ
ルタ係数Cnの添字nはチャンネルを示しており、この
Cnは図2に示したフィルタ係数Cに相当するものであ
る。
する基準のフィルタ係数Coを、上記音色変化イベント
に係る音色変更データTmと適宜の音色用感度パラメー
タSfとによって変更する演算を行なう。例えば、感度
パラメータSfを音色変更データTmに乗算し、その積
を基準のフィルタ係数Coに加算して、当該チャンネル
に関する変更されたフィルタ係数Cnを求め、これをス
トアしておく。勿論、楽音発音中に選択音色が変更され
た場合も、ステップ91で音色変化イベントとして検出
し、変更された基準のフィルタ係数Coを基にしてステ
ップ92の演算を行なうようにしてもよい。なお、フィ
ルタ係数Cnの添字nはチャンネルを示しており、この
Cnは図2に示したフィルタ係数Cに相当するものであ
る。
【0057】次のステップ93では、変更されたフィル
タ係数Cnが所定の最小値Cminよりも小かを調べ、Y
ESであればステップ94で所定最小値Cminをフィル
タ係数Cnとしてセットする。一方、ステップ95で
は、変更されたフィルタ係数Cnが所定の最大値Cmax
よりも大かを調べ、YESであればステップ96で所定
最大値Cmaxをフィルタ係数Cnとしてセットする。こ
れは、フィルタ係数Cの変化範囲を所定の範囲に限定す
るためである。この範囲は、フィルタ32におけるフィ
ルタのタイプに応じて適宜異なるものであるが、例え
ば、Cmin=0.01,Cmax=1.00である。最小値
Cminは0とせずに、上記0.01のようにある程度の
微小値を持たせた方がよい。
タ係数Cnが所定の最小値Cminよりも小かを調べ、Y
ESであればステップ94で所定最小値Cminをフィル
タ係数Cnとしてセットする。一方、ステップ95で
は、変更されたフィルタ係数Cnが所定の最大値Cmax
よりも大かを調べ、YESであればステップ96で所定
最大値Cmaxをフィルタ係数Cnとしてセットする。こ
れは、フィルタ係数Cの変化範囲を所定の範囲に限定す
るためである。この範囲は、フィルタ32におけるフィ
ルタのタイプに応じて適宜異なるものであるが、例え
ば、Cmin=0.01,Cmax=1.00である。最小値
Cminは0とせずに、上記0.01のようにある程度の
微小値を持たせた方がよい。
【0058】図7に戻ると、ステップ71のフィルタ係
数決定サブルーチンの後、ステップ72の処理を行な
う。ステップ72では、上記のように演算された発生す
べき楽音の所望のピッチ周波数Pn(Hz)を得るため
に必要とされる信号循環部30における総遅延量Dsを
下記式により求める。
数決定サブルーチンの後、ステップ72の処理を行な
う。ステップ72では、上記のように演算された発生す
べき楽音の所望のピッチ周波数Pn(Hz)を得るため
に必要とされる信号循環部30における総遅延量Dsを
下記式により求める。
【0059】
【数4】Ds=Fr*fc/Pn ここで、Frは周波数ナンバFの所定の基準値であり、
例えばFr=0.7程度としてよいが、これに限らな
い。fcはシステムクロックφの周波数であり、例えば
前記のように50000(Hz)であるが、これに限ら
ない。上記式において、分子(Fr*fc)は、前記数3
の式から理解できるように、周波数ナンバFを基準値F
rとしたときに得られるサンプリングクロックCKの周
波数fs(Hz)に対応している。従って、上記遅延量
Dsは、サンプリングクロックCKの周波数fsをfs
=Fr*fcとしたときに、所望の楽音ピッチ周波数Pn
(Hz)を得るために必要とされる信号循環部30にお
ける単位遅延の合計段数である。上記数4の式は割り切
れない場合があるので、上記遅延量Dsは下記式のよう
に整数部Diと小数部Dfとからなる。
例えばFr=0.7程度としてよいが、これに限らな
い。fcはシステムクロックφの周波数であり、例えば
前記のように50000(Hz)であるが、これに限ら
ない。上記式において、分子(Fr*fc)は、前記数3
の式から理解できるように、周波数ナンバFを基準値F
rとしたときに得られるサンプリングクロックCKの周
波数fs(Hz)に対応している。従って、上記遅延量
Dsは、サンプリングクロックCKの周波数fsをfs
=Fr*fcとしたときに、所望の楽音ピッチ周波数Pn
(Hz)を得るために必要とされる信号循環部30にお
ける単位遅延の合計段数である。上記数4の式は割り切
れない場合があるので、上記遅延量Dsは下記式のよう
に整数部Diと小数部Dfとからなる。
【数5】Ds=Di+Df
【0060】上記目的の総遅延量Dsの整数部Diに相
当する信号遅延は、信号循環部30内の遅延回路31に
よって設定可能である。そこで、この図7の実施例で
は、ステップ72で求めた総遅延量Dsの整数部Diを
遅延回路31の遅延段数設定パラメータDxとして出力
する。このパラメータDxが図2に示すように楽音合成
部15に与えられ、遅延回路31の遅延段数を設定す
る。しかし、まだ、上記総遅延量Dsの小数部Dfに相
当する信号が不足していることが明らかである。そこ
で、次のステップ73において、この不足する微小遅延
量Dfを補償するために、その分だけサンプリングクロ
ックCKの周波数を少し遅くする(遅延単位時間を少し
延ばす)ための周波数ナンバFの変更処理を行なう。す
なわち、下記式を演算する。これは、DiとDsの比で
基準値Frを修正することにより、修正された周波数ナ
ンバの値F(0)を求めるものである。
当する信号遅延は、信号循環部30内の遅延回路31に
よって設定可能である。そこで、この図7の実施例で
は、ステップ72で求めた総遅延量Dsの整数部Diを
遅延回路31の遅延段数設定パラメータDxとして出力
する。このパラメータDxが図2に示すように楽音合成
部15に与えられ、遅延回路31の遅延段数を設定す
る。しかし、まだ、上記総遅延量Dsの小数部Dfに相
当する信号が不足していることが明らかである。そこ
で、次のステップ73において、この不足する微小遅延
量Dfを補償するために、その分だけサンプリングクロ
ックCKの周波数を少し遅くする(遅延単位時間を少し
延ばす)ための周波数ナンバFの変更処理を行なう。す
なわち、下記式を演算する。これは、DiとDsの比で
基準値Frを修正することにより、修正された周波数ナ
ンバの値F(0)を求めるものである。
【0061】
【数6】F(0)=Fr*Di/Ds
【0062】しかし、上記数6の式で求められた周波数
ナンバF(0)は、フィルタ32による信号遅延時間(例
えば前記数2の式に従う遅延量Dlpfに相当)がループ
内で追加されていることを補償していないものである。
そこで、以下のステップでこの分を補償するための処理
を行なう。これは、各次数i(i=0,1,2,3,
…)毎に遅延量と周波数ナンバの試算値を求め、i番目
とi+1番目の試算値が誤差0(又は所定誤差範囲内)
に収束するまで最適値をサーチする処理からなる。
ナンバF(0)は、フィルタ32による信号遅延時間(例
えば前記数2の式に従う遅延量Dlpfに相当)がループ
内で追加されていることを補償していないものである。
そこで、以下のステップでこの分を補償するための処理
を行なう。これは、各次数i(i=0,1,2,3,
…)毎に遅延量と周波数ナンバの試算値を求め、i番目
とi+1番目の試算値が誤差0(又は所定誤差範囲内)
に収束するまで最適値をサーチする処理からなる。
【0063】まず、ステップ74では、収束演算のため
の次数iを0に設定する。なお、次数i=0に対応する
周波数ナンバF(i)として、上記ステップ73で求めた
周波数ナンバF(0)を使用するものとする。それ以後の
ステップ75〜79では、上記ステップ73で求めたフ
ィルタ遅延時間未補償の周波数ナンバF(i)を初期値
(次数i=0)として、余剰のフィルタ遅延時間を補償
するよう該周波数ナンバF(i)を徐々に変更して、最終
的に最適値に収束させる演算処理を行なう。
の次数iを0に設定する。なお、次数i=0に対応する
周波数ナンバF(i)として、上記ステップ73で求めた
周波数ナンバF(0)を使用するものとする。それ以後の
ステップ75〜79では、上記ステップ73で求めたフ
ィルタ遅延時間未補償の周波数ナンバF(i)を初期値
(次数i=0)として、余剰のフィルタ遅延時間を補償
するよう該周波数ナンバF(i)を徐々に変更して、最終
的に最適値に収束させる演算処理を行なう。
【0064】ステップ75では、前記のように決定され
たフィルタ係数Cnと、次数i(最初はi=0)に対応
する周波数ナンバF(i)に応じて定まるサンプリングク
ロックCKの周波数fs=F(i)*fc(前記数3参
照)とによって、例えば前記数2のようなフィルタに応
じた所定関数に従って定まるフィルタ遅延量Dlpfを、
下記式のように試算する。ここでDlpf(i)は、次数i
(最初はi=0)の周波数ナンバF(i)に対応して試算
したi番目のフィルタ遅延量試算値であることを示す。
下記数7は数2と同様に1次のローパスフィルタにおけ
る信号遅延量を示すものであるが、これはあくまでも一
例にすぎず、この関数はフィルタ32として使用するフ
ィルタの具体的構成に応じて適宜変わることは数2に関
連して述べたとおりである。
たフィルタ係数Cnと、次数i(最初はi=0)に対応
する周波数ナンバF(i)に応じて定まるサンプリングク
ロックCKの周波数fs=F(i)*fc(前記数3参
照)とによって、例えば前記数2のようなフィルタに応
じた所定関数に従って定まるフィルタ遅延量Dlpfを、
下記式のように試算する。ここでDlpf(i)は、次数i
(最初はi=0)の周波数ナンバF(i)に対応して試算
したi番目のフィルタ遅延量試算値であることを示す。
下記数7は数2と同様に1次のローパスフィルタにおけ
る信号遅延量を示すものであるが、これはあくまでも一
例にすぎず、この関数はフィルタ32として使用するフ
ィルタの具体的構成に応じて適宜変わることは数2に関
連して述べたとおりである。
【0065】
【数7】 Dlpf(i) =Cn sinθi/{θi*(1−Cn cosθi)} ここで、θiは、 θi=2π*Pn/{F(i)*fc} である。
【0066】次のステップ76では、下記式のように、
遅延回路31による遅延段数Dxを前記ステップ72で
求めた値に固定したまま、上記ステップ75(数式7)
で試算したフィルタ遅延量Dlpf(i)と加算し、ループ全
体の総遅延量Dsのi+1番目の試算値Ds(i+1)を求
める。
遅延回路31による遅延段数Dxを前記ステップ72で
求めた値に固定したまま、上記ステップ75(数式7)
で試算したフィルタ遅延量Dlpf(i)と加算し、ループ全
体の総遅延量Dsのi+1番目の試算値Ds(i+1)を求
める。
【0067】
【数8】Ds(i+1)=Dx+Dlpf(i)
【0068】次にステップ77では、上記ループ全体の
総遅延量Dsのi+1番目の試算値Ds(i+1)を考慮し
た新しい周波数ナンバF、つまりi+1番目の試算周波
数ナンバF(i+1)を次式により求める。
総遅延量Dsのi+1番目の試算値Ds(i+1)を考慮し
た新しい周波数ナンバF、つまりi+1番目の試算周波
数ナンバF(i+1)を次式により求める。
【0069】
【数9】F(i+1)=Ds(i+1)*Pn/fc 上記式の意味は前記数4の式と同様である。つまり、シ
ステムクロックφの周波数fcと周波数ナンバF(i+1)
の積がサンプリングクロックCKの周波数fsに相当
し、これは総遅延段数Ds(i+1)と得られる楽音ピッチ
周波数Pn(Hz)の積に等しいので、上記関係が成り
立つ。
ステムクロックφの周波数fcと周波数ナンバF(i+1)
の積がサンプリングクロックCKの周波数fsに相当
し、これは総遅延段数Ds(i+1)と得られる楽音ピッチ
周波数Pn(Hz)の積に等しいので、上記関係が成り
立つ。
【0070】こうして、既に判っているi番目の試算周
波数ナンバF(i)(最初はi=0)に対して、次のi+
1番目の試算周波数ナンバF(i+1)が試算されたことに
なる。次のステップ78では、i番目とi+1番目の試
算周波数ナンバの差「F(i+1)−F(i)」を求め、この差
が所定の収束誤差ε以下であるかを調べる。NOであれ
ば、ステップ79に行き、次数iを1増加してから、ス
テップ75に戻り、ステップ75〜78の処理を繰返
す。すなわち、ステップ77で求めた試算周波数ナンバ
F(i+1)を、次のサイクルのステップ75ではF(i)とし
て使用し、前述の試算演算を行なう。
波数ナンバF(i)(最初はi=0)に対して、次のi+
1番目の試算周波数ナンバF(i+1)が試算されたことに
なる。次のステップ78では、i番目とi+1番目の試
算周波数ナンバの差「F(i+1)−F(i)」を求め、この差
が所定の収束誤差ε以下であるかを調べる。NOであれ
ば、ステップ79に行き、次数iを1増加してから、ス
テップ75に戻り、ステップ75〜78の処理を繰返
す。すなわち、ステップ77で求めた試算周波数ナンバ
F(i+1)を、次のサイクルのステップ75ではF(i)とし
て使用し、前述の試算演算を行なう。
【0071】ステップ75〜79の処理サイクルを何回
か繰返すと、i番目とi+1番目の試算周波数ナンバの
差「F(i+1)−F(i)」が所定の収束誤差ε内に収まり、
ステップ78がYESとなる。これに応じてステップ8
0では、そのときの周波数ナンバF(i+1)を適正な周波
数ナンバFとして決定し、出力する。こうして決定さ
れ、出力された適正な周波数ナンバFが図2に示すよう
に楽音合成部15のサンプリングタイム設定部41に与
えられ、サンプリングクロックCKの発生周期を設定す
る。
か繰返すと、i番目とi+1番目の試算周波数ナンバの
差「F(i+1)−F(i)」が所定の収束誤差ε内に収まり、
ステップ78がYESとなる。これに応じてステップ8
0では、そのときの周波数ナンバF(i+1)を適正な周波
数ナンバFとして決定し、出力する。こうして決定さ
れ、出力された適正な周波数ナンバFが図2に示すよう
に楽音合成部15のサンプリングタイム設定部41に与
えられ、サンプリングクロックCKの発生周期を設定す
る。
【0072】−周波数ナンバ決定処理の別の実施例− 図10は、メインルーチンの前記ステップ64で行われ
る周波数ナンバ決定処理の別の実施例を示すものであ
る。図7の例では、遅延回路31の遅延段数Dxを決定
する処理はステップ72でだけ行ない、フィルタ係数C
nを考慮するようにはなっていない。これに対して、図
10の例では、遅延回路31の遅延段数Dxを決定する
場合、ステップ104および105の処理により、その
ときのフィルタ係数Cnをも考慮するようにしている。
つまり、予めフィルタ遅延量を考慮して遅延回路31の
遅延段数Dxを決定し、その後、サンプリング周期(遅
延単位時間)を決定するための収束演算を行なうように
した例である。
る周波数ナンバ決定処理の別の実施例を示すものであ
る。図7の例では、遅延回路31の遅延段数Dxを決定
する処理はステップ72でだけ行ない、フィルタ係数C
nを考慮するようにはなっていない。これに対して、図
10の例では、遅延回路31の遅延段数Dxを決定する
場合、ステップ104および105の処理により、その
ときのフィルタ係数Cnをも考慮するようにしている。
つまり、予めフィルタ遅延量を考慮して遅延回路31の
遅延段数Dxを決定し、その後、サンプリング周期(遅
延単位時間)を決定するための収束演算を行なうように
した例である。
【0073】図10において、ステップ100,101
のピッチ決定サブルーチンとフィルタ係数決定サブルー
チンは、図7のステップ70,71と同様の処理であ
る。またステップ102及び103も図7のステップ7
2及び73と同様の処理である。ただし、ステップ10
2では、所望の楽音ピッチ周波数Pnを得るために必要
とされる信号循環部30における遅延量Dsを求めるだ
けでよく、遅延回路31の遅延段数Dxはまだ確定しな
い。すなわち、Dsの整数部Diを、遅延回路31の遅
延段数Dxとして決定しない。ステップ104では、ス
テップ103で上記数6の式に従って求められたフィル
タ信号遅延時間を補償していない周波数ナンバF(0)
と、前記のように決定されたフィルタ係数Cnとを用い
て、前記数2又は数7の式と同様に、下記式に従って、
フィルタ32による信号遅延量Dlpf(0)を演算する。
のピッチ決定サブルーチンとフィルタ係数決定サブルー
チンは、図7のステップ70,71と同様の処理であ
る。またステップ102及び103も図7のステップ7
2及び73と同様の処理である。ただし、ステップ10
2では、所望の楽音ピッチ周波数Pnを得るために必要
とされる信号循環部30における遅延量Dsを求めるだ
けでよく、遅延回路31の遅延段数Dxはまだ確定しな
い。すなわち、Dsの整数部Diを、遅延回路31の遅
延段数Dxとして決定しない。ステップ104では、ス
テップ103で上記数6の式に従って求められたフィル
タ信号遅延時間を補償していない周波数ナンバF(0)
と、前記のように決定されたフィルタ係数Cnとを用い
て、前記数2又は数7の式と同様に、下記式に従って、
フィルタ32による信号遅延量Dlpf(0)を演算する。
【0074】
【数10】 Dlpf(0) =Cn sinθ0/{θ0*(1−Cn cosθ0)} ここで、θ0は、 θ0=2π*Pn/{F(0)*fc} である。
【0075】次のステップ105では、下記式のよう
に、前記ステップ102で求めた目的の総遅延量Dsか
ら、上記ステップ104(数式10)で計算したフィル
タ遅延量Dlpf(0)を引き算し、差の遅延量Ddを求め
る。この遅延量Ddは、整数部Ddiと小数部Ddfとから
なり、この整数部Ddiを遅延回路31の遅延段数Dxと
して決定する。
に、前記ステップ102で求めた目的の総遅延量Dsか
ら、上記ステップ104(数式10)で計算したフィル
タ遅延量Dlpf(0)を引き算し、差の遅延量Ddを求め
る。この遅延量Ddは、整数部Ddiと小数部Ddfとから
なり、この整数部Ddiを遅延回路31の遅延段数Dxと
して決定する。
【数11】Dd=Ds−Dlpf(0)=Ddi+Ddf
【0076】ステップ106では、上記の小数部Ddfの
値が0であるかを調べる。YESならば、周波数ナンバ
F(0)に基づくサンプリング周波数によって、目的の総
遅延量Dsを実現することができるので、ステップ10
7で、周波数ナンバF(0)をそのまま周波数ナンバFと
して出力し、処理をリターンする。ステップ106がN
Oの場合は、ステップ108〜114の処理を行ない、
目的の総遅延量Dsを実現するために最適のサンプリン
グ周波数に対応する周波数ナンバF(i+1)を見つけ出す
ための、収束演算を行なう。ステップ108〜114の
処理は、図7のステップ74〜80の処理と同様であ
る。ただし、遅延回路31の遅延段数Dxが、図7の例
ではDiであったが、図10の例ではDdiである。
値が0であるかを調べる。YESならば、周波数ナンバ
F(0)に基づくサンプリング周波数によって、目的の総
遅延量Dsを実現することができるので、ステップ10
7で、周波数ナンバF(0)をそのまま周波数ナンバFと
して出力し、処理をリターンする。ステップ106がN
Oの場合は、ステップ108〜114の処理を行ない、
目的の総遅延量Dsを実現するために最適のサンプリン
グ周波数に対応する周波数ナンバF(i+1)を見つけ出す
ための、収束演算を行なう。ステップ108〜114の
処理は、図7のステップ74〜80の処理と同様であ
る。ただし、遅延回路31の遅延段数Dxが、図7の例
ではDiであったが、図10の例ではDdiである。
【0077】図10の例によれば、ステップ108〜1
14における演算の収束が図7の例に比べて速いという
利点がある。その反面、楽音発音中にフィルタ係数Cn
が変化したとき、ステップ105で決定される遅延回路
31の遅延段数Dxがそれに対応して変動することがあ
るので、ノイズが出ることがあるという不利もある。こ
れに対して、図7の例はフィルタ係数Cnが変化しても
遅延回路31の遅延段数Dxは変動しないので、そのよ
うなノイズは出ない。
14における演算の収束が図7の例に比べて速いという
利点がある。その反面、楽音発音中にフィルタ係数Cn
が変化したとき、ステップ105で決定される遅延回路
31の遅延段数Dxがそれに対応して変動することがあ
るので、ノイズが出ることがあるという不利もある。こ
れに対して、図7の例はフィルタ係数Cnが変化しても
遅延回路31の遅延段数Dxは変動しないので、そのよ
うなノイズは出ない。
【0078】〔その他の実施例又は変更例の説明〕図1
1に示すように、楽音合成部15内の信号循環部30に
おいて、音色制御用のフィルタ32とは別に、信号遅延
用のオールパスフィルタ120を設け、このオールパス
フィルタ120によって、遅延回路31における遅延単
位時間未満の細かな遅延量(小数部の遅延量)を制御す
るようにしてもよい。オールパスフィルタ120は、そ
のフィルタ係数βを0乃至1の範囲の小数値で可変する
ことにより、入力信号の帯域に依存しないリニアな遅延
制御が行なえるものである。オールパスフィルタにおけ
る信号遅延時間Dapfは、例えば下記式に示すような関
係でフィルタ係数βに応じて決定される。
1に示すように、楽音合成部15内の信号循環部30に
おいて、音色制御用のフィルタ32とは別に、信号遅延
用のオールパスフィルタ120を設け、このオールパス
フィルタ120によって、遅延回路31における遅延単
位時間未満の細かな遅延量(小数部の遅延量)を制御す
るようにしてもよい。オールパスフィルタ120は、そ
のフィルタ係数βを0乃至1の範囲の小数値で可変する
ことにより、入力信号の帯域に依存しないリニアな遅延
制御が行なえるものである。オールパスフィルタにおけ
る信号遅延時間Dapfは、例えば下記式に示すような関
係でフィルタ係数βに応じて決定される。
【数12】Dapf=(1−β)/(1+β)
【0079】図11のようにオールパスフィルタ120
を設けた場合は、図6のメインルーチンのステップ64
の「周波数ナンバ決定処理」は、例えば、次のように簡
略化することができる。すなわち、そのための「周波数
ナンバ決定処理」は、図10のステップ100〜107
と同様な手順に加えて上記フィルタ係数βを決定するた
めのステップとを具備すればよく、ステップ108〜1
14の収束演算ルーチンを省略してよい。そうすると、
前記数6で求まるフィルタ信号遅延時間を補償していな
い周波数ナンバF(0)が周波数ナンバFとして決定さ
れ、フィルタ遅延量Dlpf(0)を考慮した前記数11の整
数部Ddiが遅延回路31の遅延段数Dxとして決定され
る。そして、上記フィルタ係数βを決定するためのステ
ップにおいては、前記数11の式で求まる小数部Ddfに
相当する遅延量をオールパスフィルタ120が分担する
ように、フィルタ係数βを決定すればよい。すなわち、
前記数11において、Ddf=Dapfとすると、下記数1
3が成立ち、このようして決定される遅延量Dapfに応
じて上記数12によりフィルタ係数βを決定することが
できる。
を設けた場合は、図6のメインルーチンのステップ64
の「周波数ナンバ決定処理」は、例えば、次のように簡
略化することができる。すなわち、そのための「周波数
ナンバ決定処理」は、図10のステップ100〜107
と同様な手順に加えて上記フィルタ係数βを決定するた
めのステップとを具備すればよく、ステップ108〜1
14の収束演算ルーチンを省略してよい。そうすると、
前記数6で求まるフィルタ信号遅延時間を補償していな
い周波数ナンバF(0)が周波数ナンバFとして決定さ
れ、フィルタ遅延量Dlpf(0)を考慮した前記数11の整
数部Ddiが遅延回路31の遅延段数Dxとして決定され
る。そして、上記フィルタ係数βを決定するためのステ
ップにおいては、前記数11の式で求まる小数部Ddfに
相当する遅延量をオールパスフィルタ120が分担する
ように、フィルタ係数βを決定すればよい。すなわち、
前記数11において、Ddf=Dapfとすると、下記数1
3が成立ち、このようして決定される遅延量Dapfに応
じて上記数12によりフィルタ係数βを決定することが
できる。
【数13】Dapf=Ds−Ddi−Dlpf(0) なお、図12はオールパスフィルタ120の一例を示
し、単位遅延回路121、乗算器122,123、加算
器124,125を含む。
し、単位遅延回路121、乗算器122,123、加算
器124,125を含む。
【0080】上記実施例において、各種の計算ステップ
の処理は、実際に計算を行なうことに代えて、予め用意
したテーブルに変数データをアドレス入力し、その解を
即座に読み出すようにする構成に変更することができる
のは勿論である。これに関連して、図7のステップ74
〜80又は図10のステップ108〜114における周
波数ナンバFを決定するための収束演算ルーチンの部分
も適宜のテーブルに置き換えることができる。また、テ
ーブルに記憶されていない値に関しては、テーブルから
の読み出し出力を補間することにより近似解を求めるよ
うにすることができ、これによって該テーブルの記憶容
量を節約することができる。
の処理は、実際に計算を行なうことに代えて、予め用意
したテーブルに変数データをアドレス入力し、その解を
即座に読み出すようにする構成に変更することができる
のは勿論である。これに関連して、図7のステップ74
〜80又は図10のステップ108〜114における周
波数ナンバFを決定するための収束演算ルーチンの部分
も適宜のテーブルに置き換えることができる。また、テ
ーブルに記憶されていない値に関しては、テーブルから
の読み出し出力を補間することにより近似解を求めるよ
うにすることができ、これによって該テーブルの記憶容
量を節約することができる。
【0081】上記実施例において、音色制御用のフィル
タ32はローパスフィルタに限らず、どのようなタイプ
のフィルタを用いてもよい。その場合、該フィルタにお
ける信号遅延特性が計算式で求めることができないよう
な複雑なフィルタを使用する場合は、事前にその遅延特
性を実測してその実測値に基づき係数対遅延量データを
記憶したテーブルを作成し、該テーブルを読み出すこと
によりフィルタ遅延量データを求めるようにしてよい。
また、計算式によってフィルタ遅延量を求めることがで
きる場合も、テーブルを使用すれば計算速度を速くする
ことができる。その場合、上記と同様に、テーブルに記
憶されていない値に関しては、テーブルからの読み出し
出力を補間することにより近似解を求めるようにするこ
とができ、これによって該テーブルの記憶容量を節約す
ることができる。
タ32はローパスフィルタに限らず、どのようなタイプ
のフィルタを用いてもよい。その場合、該フィルタにお
ける信号遅延特性が計算式で求めることができないよう
な複雑なフィルタを使用する場合は、事前にその遅延特
性を実測してその実測値に基づき係数対遅延量データを
記憶したテーブルを作成し、該テーブルを読み出すこと
によりフィルタ遅延量データを求めるようにしてよい。
また、計算式によってフィルタ遅延量を求めることがで
きる場合も、テーブルを使用すれば計算速度を速くする
ことができる。その場合、上記と同様に、テーブルに記
憶されていない値に関しては、テーブルからの読み出し
出力を補間することにより近似解を求めるようにするこ
とができ、これによって該テーブルの記憶容量を節約す
ることができる。
【0082】図10の実施例において、フィルタ係数制
御用の操作子等の操作に応じて発音中にフィルタ係数C
nが変化されることにより、遅延回路31の遅延段数D
x=Ddiが変化し、ノイズを起こすおそれがあることは
前述した。これを防ぐための一手段としては、ステップ
102〜105の処理によってフィルタ係数Cnを考慮
した整数部Ddiを遅延回路31の遅延段数Dxとして設
定するのは、キーオンイベント時(発音開始時)にのみ
行なうものとし、発音中は該遅延段数Dxを変更しない
ようにすればよい。その場合、キーオンイベント時以外
はステップ101からステップ108にジャンプして、
ステップ108〜114の収束演算ルーチンを直ちに行
なうようにするものとし、発音中におけるフィルタ係数
制御用の操作子等の操作に応じたフィルタ係数Cnの変
化に対応して、遅延又は演算単位時間を設定するサンプ
リング周波数を可変制御するようにするとよい。
御用の操作子等の操作に応じて発音中にフィルタ係数C
nが変化されることにより、遅延回路31の遅延段数D
x=Ddiが変化し、ノイズを起こすおそれがあることは
前述した。これを防ぐための一手段としては、ステップ
102〜105の処理によってフィルタ係数Cnを考慮
した整数部Ddiを遅延回路31の遅延段数Dxとして設
定するのは、キーオンイベント時(発音開始時)にのみ
行なうものとし、発音中は該遅延段数Dxを変更しない
ようにすればよい。その場合、キーオンイベント時以外
はステップ101からステップ108にジャンプして、
ステップ108〜114の収束演算ルーチンを直ちに行
なうようにするものとし、発音中におけるフィルタ係数
制御用の操作子等の操作に応じたフィルタ係数Cnの変
化に対応して、遅延又は演算単位時間を設定するサンプ
リング周波数を可変制御するようにするとよい。
【0083】発音中における遅延回路31の遅延段数D
xの変化は、別の場合にも起こりうる。例えばピッチベ
ンド操作子を発音中に操作することによりピッチ周波数
Pnを変化させると、図7又は図12のステップ72又
は102で求める遅延段数Diが変化することがあり
得、これによってノイズをもたらすことがあり得る。こ
れに対処する一手段としては、上述と同様に、ステップ
72,73又は102,103の処理をキーオンイベン
ト時(発音開始時)にのみ行なうものとし、発音中は該
遅延段数Diを変更しないようにすればよい。その場
合、キーオンイベント時以外はステップ71又は101
からステップ74又は104にジャンプして、発音中に
おけるフィルタ係数制御用の操作子等の操作に応じたフ
ィルタ係数Cnの変化に対応して、遅延又は演算単位時
間を設定するサンプリング周波数を可変制御するように
するとよい。
xの変化は、別の場合にも起こりうる。例えばピッチベ
ンド操作子を発音中に操作することによりピッチ周波数
Pnを変化させると、図7又は図12のステップ72又
は102で求める遅延段数Diが変化することがあり
得、これによってノイズをもたらすことがあり得る。こ
れに対処する一手段としては、上述と同様に、ステップ
72,73又は102,103の処理をキーオンイベン
ト時(発音開始時)にのみ行なうものとし、発音中は該
遅延段数Diを変更しないようにすればよい。その場
合、キーオンイベント時以外はステップ71又は101
からステップ74又は104にジャンプして、発音中に
おけるフィルタ係数制御用の操作子等の操作に応じたフ
ィルタ係数Cnの変化に対応して、遅延又は演算単位時
間を設定するサンプリング周波数を可変制御するように
するとよい。
【0084】上記と同様の課題に対する別の解決策とし
ては、図7又は図10のステップ70又は100で行な
うピッチ決定サブルーチンにおいて、ステップ86〜9
0の処理(つまり、より一般的には、発音中にリアルタ
イムでピッチ周波数Pnを変更する処理)を、削除する
ことによってもよい。その場合、図7又は図10の処理
で使用されるピッチ周波数Pnは、発音中にリアルタイ
ムで変化しないので、上記の問題を解決できる。その代
わりに、図7又は図10の最後のステップ80又は11
4において、上記ステップ86〜90と同等の処理(つ
まり、より一般的には、発音中にリアルタイムで楽音ピ
ッチを変更する処理)を挿入し、F(i+1)に基づき決定
した周波数ナンバFの値を、ピッチベンドデータPBや
ピッチ変調データSnなどによって変調するようにすれ
ばよい。その場合、例えば、ステップ88又は90にお
ける変調対象のPnをFに読み替える。上記実施例に示
したようなソフトウェア処理に限らず、専用のハードウ
ェア回路によって本発明装置を実施することができるの
は勿論である。また、楽音合成部はDSP回路に限ら
ず、その他どのような回路を用いてもよいのは勿論であ
る。
ては、図7又は図10のステップ70又は100で行な
うピッチ決定サブルーチンにおいて、ステップ86〜9
0の処理(つまり、より一般的には、発音中にリアルタ
イムでピッチ周波数Pnを変更する処理)を、削除する
ことによってもよい。その場合、図7又は図10の処理
で使用されるピッチ周波数Pnは、発音中にリアルタイ
ムで変化しないので、上記の問題を解決できる。その代
わりに、図7又は図10の最後のステップ80又は11
4において、上記ステップ86〜90と同等の処理(つ
まり、より一般的には、発音中にリアルタイムで楽音ピ
ッチを変更する処理)を挿入し、F(i+1)に基づき決定
した周波数ナンバFの値を、ピッチベンドデータPBや
ピッチ変調データSnなどによって変調するようにすれ
ばよい。その場合、例えば、ステップ88又は90にお
ける変調対象のPnをFに読み替える。上記実施例に示
したようなソフトウェア処理に限らず、専用のハードウ
ェア回路によって本発明装置を実施することができるの
は勿論である。また、楽音合成部はDSP回路に限ら
ず、その他どのような回路を用いてもよいのは勿論であ
る。
【0085】以上の実施例から抽出される発明及び実施
の態様のいくつかを要約して列挙すると次のようであ
る。 1.信号を循環する閉ループを形成し、かつ、遅延手段
とフィルタ手段とを該ループ内に具備する信号循環手段
と、前記信号循環手段のループ内に信号を導入して振動
を励起する励起手段と、前記遅延手段及びフィルタ手段
における遅延及び演算単位時間をタイミング信号によっ
て指示するタイミング手段と、前記フィルタ手段の係数
を変更するフィルタ係数変更手段と、前記係数の変化に
応じて生ずる前記フィルタ手段による信号遅延時間の変
動を補償するように、前記タイミング信号の発生を制御
する制御手段とを具えた楽音信号合成装置。 2.信号を循環する閉ループを形成し、かつ、遅延手段
とフィルタ手段とを該ループ内に具備する信号循環手段
と、前記信号循環手段のループ内に信号を導入して振動
を励起する励起手段と、前記遅延手段及びフィルタ手段
における遅延及び演算単位時間をタイミング信号によっ
て指示するタイミング手段と、所望の楽音音高に対応し
て整数部と小数部とからなる遅延長データを発生し、こ
の遅延長データの整数部に対応して前記遅延手段におけ
る遅延段数を設定する遅延長設定手段と、前記ループ全
体として所望の楽音音高に対応する振動を励起し得る総
遅延時間が設定されるように、前記遅延段数と前記フィ
ルタ手段による信号遅延量に応じて前記タイミング信号
の発生を制御する制御手段とを具えた楽音信号合成装
置。 3.信号を循環する閉ループを形成し、かつ、遅延手段
とフィルタ手段とを該ループ内に具備する信号循環手段
と、前記信号循環手段のループ内に信号を導入して振動
を励起する励起手段と、前記遅延手段及びフィルタ手段
における遅延及び演算単位時間をタイミング信号によっ
て指示するタイミング手段と、前記フィルタ手段の係数
を変更するフィルタ係数変更手段と、所望の楽音音高に
対応して定まる前記ループの総遅延時間と前記係数に応
じた前記フィルタ手段による信号遅延量とに基づき、整
数部と小数部とからなる遅延長データを発生し、この遅
延長データの整数部に対応して前記遅延手段における遅
延段数を設定する遅延長設定手段と、前記ループ全体と
して所望の楽音音高に対応する振動を励起し得る総遅延
時間が設定されるように、前記遅延段数と前記フィルタ
手段による信号遅延量に応じて前記タイミング信号の発
生を制御する制御手段とを具えた楽音信号合成装置。
の態様のいくつかを要約して列挙すると次のようであ
る。 1.信号を循環する閉ループを形成し、かつ、遅延手段
とフィルタ手段とを該ループ内に具備する信号循環手段
と、前記信号循環手段のループ内に信号を導入して振動
を励起する励起手段と、前記遅延手段及びフィルタ手段
における遅延及び演算単位時間をタイミング信号によっ
て指示するタイミング手段と、前記フィルタ手段の係数
を変更するフィルタ係数変更手段と、前記係数の変化に
応じて生ずる前記フィルタ手段による信号遅延時間の変
動を補償するように、前記タイミング信号の発生を制御
する制御手段とを具えた楽音信号合成装置。 2.信号を循環する閉ループを形成し、かつ、遅延手段
とフィルタ手段とを該ループ内に具備する信号循環手段
と、前記信号循環手段のループ内に信号を導入して振動
を励起する励起手段と、前記遅延手段及びフィルタ手段
における遅延及び演算単位時間をタイミング信号によっ
て指示するタイミング手段と、所望の楽音音高に対応し
て整数部と小数部とからなる遅延長データを発生し、こ
の遅延長データの整数部に対応して前記遅延手段におけ
る遅延段数を設定する遅延長設定手段と、前記ループ全
体として所望の楽音音高に対応する振動を励起し得る総
遅延時間が設定されるように、前記遅延段数と前記フィ
ルタ手段による信号遅延量に応じて前記タイミング信号
の発生を制御する制御手段とを具えた楽音信号合成装
置。 3.信号を循環する閉ループを形成し、かつ、遅延手段
とフィルタ手段とを該ループ内に具備する信号循環手段
と、前記信号循環手段のループ内に信号を導入して振動
を励起する励起手段と、前記遅延手段及びフィルタ手段
における遅延及び演算単位時間をタイミング信号によっ
て指示するタイミング手段と、前記フィルタ手段の係数
を変更するフィルタ係数変更手段と、所望の楽音音高に
対応して定まる前記ループの総遅延時間と前記係数に応
じた前記フィルタ手段による信号遅延量とに基づき、整
数部と小数部とからなる遅延長データを発生し、この遅
延長データの整数部に対応して前記遅延手段における遅
延段数を設定する遅延長設定手段と、前記ループ全体と
して所望の楽音音高に対応する振動を励起し得る総遅延
時間が設定されるように、前記遅延段数と前記フィルタ
手段による信号遅延量に応じて前記タイミング信号の発
生を制御する制御手段とを具えた楽音信号合成装置。
【0086】4.前記フィルタ手段の係数を変更するフ
ィルタ係数変更手段を更に備えた前記2項の楽音信号合
成装置。 5.前記フィルタ係数変更手段は、前記係数を時間的に
変化させるものである前記1項、3項又は4項の楽音信
号合成装置。 6.前記フィルタ係数変更手段は、前記係数を音色設定
情報に応じて変更するものである前記1項、3項又は4
項の楽音信号合成装置。 7.前記フィルタ係数変更手段は、操作子の操作に応じ
て前記係数を実時間的に変化させるものである前記1
項、3項又は4項の楽音信号合成装置。 8.前記制御手段は、前記遅延手段における遅延時間と
前記フィルタ手段による信号遅延時間とを合計した前記
ループの総遅延時間が、所望の楽音音高に対応する遅延
時間となるように補償を行なうようにした前記1項の楽
音信号合成装置。 9.前記制御手段は、前記遅延手段における遅延段数と
前記タイミング信号によって可変設定される遅延単位時
間とによって定まる該遅延手段が分担する遅延時間と、
前記フィルタ手段による信号遅延時間とを演算して、前
記ループの総遅延時間を求め、これが所望の総遅延時間
に収束するような遅延単位時間を見つけ出し、該見つけ
出した遅延単位時間を実現するよう前記タイミング信号
の発生を制御するものである前記1項乃至8項のいずれ
かの楽音信号合成装置。 10.楽音の発音を開始するときに前記遅延長設定手段
によって設定された前記遅延段数を該楽音の発音中は固
定しておき、該楽音の発音中における前記係数又は音高
の変動に対しては、前記制御手段によって前記タイミン
グ信号の発生を制御することにより該変動に対応するル
ープ総遅延時間の補償を行なうようにした前記2項又は
3項の楽音信号合成装置。 11.前記信号循環手段のループ内に更に遅延制御用の
オールパスフィルタを挿入し、前記遅延手段の単位遅延
時間未満の信号遅延を該オールパスフィルタで分担して
行なうようにした前記1項乃至10項のいずれかの楽音
信号合成装置。 12.前記タイミング手段は、所定のクロックを分周す
る演算を行ない、その演算結果の整数部に対応して前記
タイミング信号を発生するものであり、前記制御手段は
前記分周演算を制御することにより前記タイミング信号
の発生を制御するものである前記1項乃至11項のいず
れかの楽音信号合成装置。 13.前記タイミング手段における分周演算結果の小数
部を補間演算の変数として、前記信号循環手段から取り
出された楽音信号のサンプル値を補間する補間手段を更
に具えた前記12項の楽音信号合成装置。
ィルタ係数変更手段を更に備えた前記2項の楽音信号合
成装置。 5.前記フィルタ係数変更手段は、前記係数を時間的に
変化させるものである前記1項、3項又は4項の楽音信
号合成装置。 6.前記フィルタ係数変更手段は、前記係数を音色設定
情報に応じて変更するものである前記1項、3項又は4
項の楽音信号合成装置。 7.前記フィルタ係数変更手段は、操作子の操作に応じ
て前記係数を実時間的に変化させるものである前記1
項、3項又は4項の楽音信号合成装置。 8.前記制御手段は、前記遅延手段における遅延時間と
前記フィルタ手段による信号遅延時間とを合計した前記
ループの総遅延時間が、所望の楽音音高に対応する遅延
時間となるように補償を行なうようにした前記1項の楽
音信号合成装置。 9.前記制御手段は、前記遅延手段における遅延段数と
前記タイミング信号によって可変設定される遅延単位時
間とによって定まる該遅延手段が分担する遅延時間と、
前記フィルタ手段による信号遅延時間とを演算して、前
記ループの総遅延時間を求め、これが所望の総遅延時間
に収束するような遅延単位時間を見つけ出し、該見つけ
出した遅延単位時間を実現するよう前記タイミング信号
の発生を制御するものである前記1項乃至8項のいずれ
かの楽音信号合成装置。 10.楽音の発音を開始するときに前記遅延長設定手段
によって設定された前記遅延段数を該楽音の発音中は固
定しておき、該楽音の発音中における前記係数又は音高
の変動に対しては、前記制御手段によって前記タイミン
グ信号の発生を制御することにより該変動に対応するル
ープ総遅延時間の補償を行なうようにした前記2項又は
3項の楽音信号合成装置。 11.前記信号循環手段のループ内に更に遅延制御用の
オールパスフィルタを挿入し、前記遅延手段の単位遅延
時間未満の信号遅延を該オールパスフィルタで分担して
行なうようにした前記1項乃至10項のいずれかの楽音
信号合成装置。 12.前記タイミング手段は、所定のクロックを分周す
る演算を行ない、その演算結果の整数部に対応して前記
タイミング信号を発生するものであり、前記制御手段は
前記分周演算を制御することにより前記タイミング信号
の発生を制御するものである前記1項乃至11項のいず
れかの楽音信号合成装置。 13.前記タイミング手段における分周演算結果の小数
部を補間演算の変数として、前記信号循環手段から取り
出された楽音信号のサンプル値を補間する補間手段を更
に具えた前記12項の楽音信号合成装置。
【0087】
【発明の効果】以上の通り、この発明によれば、信号循
環手段と励起手段により該信号循環手段における総遅延
時間に対応して定まるピッチを持つ楽音信号が合成する
場合において、フィルタによる信号遅延時間の変動を補
償するように、遅延単位時間を可変制御するようにした
ので、遅延手段における遅延段数の変更又は補間を行な
うことなく、所望ピッチの楽音を合成することができる
ように補償を行なうことができる。従って、遅延段補間
回路による悪影響を排除できると共に、発音中のフィル
タ係数の変化に伴ってピッチが不連続的に変化してノイ
ズを起こすことも起らず、滑らかな補償が行なえる。
環手段と励起手段により該信号循環手段における総遅延
時間に対応して定まるピッチを持つ楽音信号が合成する
場合において、フィルタによる信号遅延時間の変動を補
償するように、遅延単位時間を可変制御するようにした
ので、遅延手段における遅延段数の変更又は補間を行な
うことなく、所望ピッチの楽音を合成することができる
ように補償を行なうことができる。従って、遅延段補間
回路による悪影響を排除できると共に、発音中のフィル
タ係数の変化に伴ってピッチが不連続的に変化してノイ
ズを起こすことも起らず、滑らかな補償が行なえる。
【図1】 この発明に係る楽音信号合成装置の一実施例
に係る電子楽器のハードウェア構成例を示すブロック
図。
に係る電子楽器のハードウェア構成例を示すブロック
図。
【図2】 図1における楽音合成部によって実現される
楽音合成演算処理アルゴリズムの一例を示す機能的ブロ
ック図。
楽音合成演算処理アルゴリズムの一例を示す機能的ブロ
ック図。
【図3】 図2における信号循環部内に設けられた音色
制御用フィルタの一構成例を示す機能的ブロック図。
制御用フィルタの一構成例を示す機能的ブロック図。
【図4】 図2における補間演算部の一例を示すブロッ
ク図。
ク図。
【図5】 楽音合成部として使用されるDSP(ディジ
タルシグナルプロセッサ)の基本的処理プログラムの一
例を示すフロー図。
タルシグナルプロセッサ)の基本的処理プログラムの一
例を示すフロー図。
【図6】 図1におけるCPU(中央処理ユニット)に
よって実行されるメインルーチンの一例を略示するフロ
ー図。
よって実行されるメインルーチンの一例を略示するフロ
ー図。
【図7】 図6のメインルーチン中で実行される周波数
ナンバ決定処理の一実施例を示すフロー図。
ナンバ決定処理の一実施例を示すフロー図。
【図8】 図7のルーチン中で実行されるピッチ決定サ
ブルーチンの一例を示すフロー図。
ブルーチンの一例を示すフロー図。
【図9】 図7のルーチン中で実行されるフイルタ係数
決定サブルーチンの一例を示すフロー図。
決定サブルーチンの一例を示すフロー図。
【図10】 図6のメインルーチン中で実行される周波
数ナンバ決定処理の別の実施例を示すフロー図。
数ナンバ決定処理の別の実施例を示すフロー図。
【図11】 図2における信号循環部の部分の変更例を
示す機能的ブロック図。
示す機能的ブロック図。
【図12】 図11の信号循環部内に設けられたオール
パスフィルタの一構成例を示す機能的ブロック図。
パスフィルタの一構成例を示す機能的ブロック図。
10 CPU(中央処理ユニット) 11 ROM(リードオンリーメモリ) 12 RAM(ランダムアクセスメモリ) 13 演奏操作子 14 パネル 15 楽音合成部 30 信号循環部 31 遅延回路 32 音色制御用のフィルタ 33,36,37,38 乗算器 34,42,43 加算器 35 励振波形発生部 41 サンプリングタイム設定部
Claims (3)
- 【請求項1】 信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、 前記信号循環手段のループ内に信号を導入して振動を励
起する励起手段と、 前記遅延手段及びフィルタ手段における遅延及び演算単
位時間をタイミング信号によって指示するタイミング手
段と、 前記フィルタ手段の係数を変更するフィルタ係数変更手
段と、 前記係数の変化に応じて生ずる前記フィルタ手段による
信号遅延時間の変動を補償するように、前記タイミング
信号の発生を制御する制御手段とを具えた楽音信号合成
装置。 - 【請求項2】 信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、 前記信号循環手段のループ内に信号を導入して振動を励
起する励起手段と、前記遅延手段及びフィルタ手段にお
ける遅延及び演算単位時間をタイミング信号によって指
示するタイミング手段と、 所望の楽音音高に対応して整数部と小数部とからなる遅
延長データを発生し、この遅延長データの整数部に対応
して前記遅延手段における遅延段数を設定する遅延長設
定手段と、 前記ループ全体として所望の楽音音高に対応する振動を
励起し得る総遅延時間が設定されるように、前記遅延段
数と前記フィルタ手段による信号遅延量に応じて前記タ
イミング信号の発生を制御する制御手段とを具えた楽音
信号合成装置。 - 【請求項3】 信号を循環する閉ループを形成し、か
つ、遅延手段とフィルタ手段とを該ループ内に具備する
信号循環手段と、 前記信号循環手段のループ内に信号を導入して振動を励
起する励起手段と、 前記遅延手段及びフィルタ手段における遅延及び演算単
位時間をタイミング信号によって指示するタイミング手
段と、 前記フィルタ手段の係数を変更するフィルタ係数変更手
段と、 所望の楽音音高に対応して定まる前記ループの総遅延時
間と前記係数に応じた前記フィルタ手段による信号遅延
量とに基づき、整数部と小数部とからなる遅延長データ
を発生し、この遅延長データの整数部に対応して前記遅
延手段における遅延段数を設定する遅延長設定手段と、 前記ループ全体として所望の楽音音高に対応する振動を
励起し得る総遅延時間が設定されるように、前記遅延段
数と前記フィルタ手段による信号遅延量に応じて前記タ
イミング信号の発生を制御する制御手段とを具えた楽音
信号合成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6074237A JP2876986B2 (ja) | 1994-03-18 | 1994-03-18 | 楽音信号合成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6074237A JP2876986B2 (ja) | 1994-03-18 | 1994-03-18 | 楽音信号合成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07261764A JPH07261764A (ja) | 1995-10-13 |
JP2876986B2 true JP2876986B2 (ja) | 1999-03-31 |
Family
ID=13541361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6074237A Expired - Fee Related JP2876986B2 (ja) | 1994-03-18 | 1994-03-18 | 楽音信号合成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2876986B2 (ja) |
-
1994
- 1994-03-18 JP JP6074237A patent/JP2876986B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07261764A (ja) | 1995-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5641931A (en) | Digital sound synthesizing device using a closed wave guide network with interpolation | |
JPH0496000A (ja) | 楽音合成装置 | |
JP2833403B2 (ja) | 電子楽器の音源装置 | |
JP3404775B2 (ja) | 楽音合成装置と方法 | |
US5241129A (en) | Electronic musical instrument having physical model tone generator | |
JP2876986B2 (ja) | 楽音信号合成装置 | |
JP2689646B2 (ja) | 電子楽器 | |
US5559298A (en) | Waveform read-out system for an electronic musical instrument | |
JP3282438B2 (ja) | 楽音信号合成装置 | |
JP3727110B2 (ja) | 楽音合成装置 | |
JP3430719B2 (ja) | 楽音合成装置のパラメータ設定装置及び方法 | |
JP3371469B2 (ja) | 楽音信号合成装置 | |
JP4432951B2 (ja) | 楽音発生装置および電子楽器 | |
JP3353516B2 (ja) | 楽音合成装置 | |
JP2571918B2 (ja) | 電子楽器 | |
JP2580795B2 (ja) | 電子楽器 | |
JP3687095B2 (ja) | 係数補間方法および装置 | |
JP3599978B2 (ja) | 楽音信号形成装置 | |
JP3489713B2 (ja) | 楽音合成装置および方法 | |
JPH10133659A (ja) | ディジタル信号処理プロセッサ | |
JP3617330B2 (ja) | 楽音合成装置、楽音合成方法および記録媒体 | |
JP3711983B2 (ja) | 楽音合成装置 | |
JP3339082B2 (ja) | 音源装置 | |
JPH07121183A (ja) | 電子楽器の音源装置 | |
JPH04120596A (ja) | 楽音信号発生装置 |
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 (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090122 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |