JP2661599B2 - Music signal processor - Google Patents

Music signal processor

Info

Publication number
JP2661599B2
JP2661599B2 JP7236171A JP23617195A JP2661599B2 JP 2661599 B2 JP2661599 B2 JP 2661599B2 JP 7236171 A JP7236171 A JP 7236171A JP 23617195 A JP23617195 A JP 23617195A JP 2661599 B2 JP2661599 B2 JP 2661599B2
Authority
JP
Japan
Prior art keywords
filter
data
filter coefficient
coefficient
interpolation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP7236171A
Other languages
Japanese (ja)
Other versions
JPH08129380A (en
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 JP7236171A priority Critical patent/JP2661599B2/en
Publication of JPH08129380A publication Critical patent/JPH08129380A/en
Application granted granted Critical
Publication of JP2661599B2 publication Critical patent/JP2661599B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】この発明は、ディジタルフィ
ルタを用いた楽音信号処理装置に関し、特に、補間によ
ってフィルタ係数を作成することにより豊富なフィルタ
特性を実現することができるようにしたことに関する。 【0002】 【従来の技術】楽音信号を制御するためのディジタルフ
ィルタのフィルタ係数を時間的に切換えることにより音
色の時間変化を実現するようにした電子楽器は、特開昭
60−52895号公報に開示されている。そこでは、
所定の時間フレームに対応してフィルタ係数をメモリに
記憶し、各時間フレーム毎に該メモリから対応するフィ
ルタ係数を読み出し、これをディジタルフィルタに入力
し、こうしてフィルタ係数をフレーム単位で切換えるこ
とにより、フレーム単位でフィルタ特性を変化させるよ
うにしている。また、鍵タッチやキースケーリング等に
応じた音色制御のためにフィルタ特性を可変制御しよう
とする場合は、従来は、実現可能な各フィルタ特性毎に
予めフィルタ係数をメモリに記憶しておかねばならなか
った。 【0003】 【発明が解決しようとする課題】しかし、上述の従来技
術では、1つの時間フレームの間はフィルタ係数は変化
しないため、1つの時間フレームの時間長が比較的長い
場合はその間の音色変化が得られず、単調になってしま
うという問題点があった。また、時間フレームの変わり
目でフィルタ係数が急激に変化することにより音色変化
が不自然になるという問題点もあった。1つの時間フレ
ームの時間長をかなり短くすればそのような問題を解決
することも可能であるが、そうすると、フィルタ係数メ
モリの容量が増してしまうという問題が生じる。また、
鍵タッチやキースケーリング等に応じた音色制御を行う
場合も、豊富な音色変化制御を行なおうとすると、その
分だけ多数組のフィルタ係数をメモリに予め記憶してお
かねばならず、フィルタ係数メモリの容量が増してしま
うという問題が生じる。この発明は上述の点に鑑みてな
されたもので、予め準備するフィルタ係数の量を増すこ
となく、豊富なフィルタ特性を実現し、これにより豊富
な音色変化制御を実現し得るようにした楽音信号処理装
置を提供しようとするものである。 【0004】 【課題を解決するための手段】上記課題を解決するため
の第1の観点に従うこの発明に係る楽音信号処理装置
は、楽音信号とフィルタ係数とを入力し、このフィルタ
係数に応じた特性に従って該入力楽音信号を制御するデ
ィジタルフィルタ手段と、所望のフィルタ特性を実現す
る複数組のフィルタ係数を記憶したフィルタ係数記憶手
段と、前記フィルタ係数記憶手段から読み出すべきフィ
ルタ係数を指定するための基準値データを設定する基準
値データ設定手段と、音色を可変制御するための制御デ
ータを発生する制御データ発生手段と、前記基準値デー
タと制御データとを演算し、その演算結果としてフィル
タ係数演算データを得る演算手段と、前記フィルタ係数
演算データに応じて複数のフィルタ係数を前記フィルタ
係数記憶手段から読み出すと共に該読み出した複数のフ
ィルタ係数を該フィルタ係数演算データに応じて補間
し、補間により得られたフィルタ係数を前記ディジタル
フィルタ手段に与えるフィルタ係数補間手段とを具えた
ものである。 【0005】上記構成からなる楽音信号処理装置によれ
ば、所望のフィルタ特性を実現する複数組のフィルタ係
数がフィルタ係数記憶手段に記憶されており、このフィ
ルタ係数記憶手段から読み出すべきフィルタ係数は、基
本的には、基準値データ設定手段により設定された基準
値データにより指定される。この基準値データとは別
に、音色を可変制御するための制御データが、制御デー
タ発生手段により発生される。演算手段では、前記基準
値データと制御データとを演算し、その演算結果とし
て、フィルタ係数演算データを得る。こうして、基準値
データを制御データにより変更したものがフィルタ係数
演算データとして得られる。このフィルタ係数演算デー
タに応じて複数のフィルタ係数がフィルタ係数記憶手段
から読み出され、かつ、該フィルタ係数演算データを補
間パラメータとして、該読み出された複数のフィルタ係
数を補間し、補間により得られたフィルタ係数が前記デ
ィジタルフィルタ手段に与えられる。こうして、基準値
データと制御データとの演算によって、換言すれば両者
の組合せによって、読み出すべき複数のフィルタ係数と
その補間パラメータとを決定するためのフィルタ係数演
算データを得て、補間演算に基づくフィルタ係数を発生
するようにしている。 【0006】従って、この発明によれば、補間演算によ
って、音色制御内容に応じた精密なフィルタ係数を発生
することができるので、フィルタ係数記憶手段に予め記
憶しておくフィルタ係数の量を増すことなく、豊富なフ
ィルタ特性を実現し、これにより豊富な音色変化制御を
実現することができるようになる。また、フィルタ係数
記憶手段から読み出すべきフィルタ係数を、基本的に
は、基準値データにより概ね指定するので、この基準値
データの任意の設定によって多様なバリエーションでフ
ィルタ係数記憶手段の記憶内容を利用することができ、
これによっても豊富な音色変化制御を実現することがで
きるようになる。 【0007】上記課題を解決するための第2の観点に従
うこの発明に係る楽音信号処理装置は、楽音信号とフィ
ルタ係数とを入力し、このフィルタ係数に応じた特性に
従って該入力楽音信号を制御するディジタルフィルタ手
段と、複数組のフィルタ係数を夫々記憶するフィルタ係
数記憶手段と、楽音信号の音色毎であって、かつ楽音信
号の音域およびタッチの少なくとも一方毎に、フィルタ
係数を指定する指定情報を記憶するフィルタ係数指定情
報記憶手段であって、当該指定情報は、異なる音色、音
域あるいはタッチについて共通のフィルタ係数を指定可
能にするものと、発生すべき楽音の音色を示す音色情報
と、発生すべき楽音信号の音域を示す音域情報および発
生すべき楽音のタッチを示すタッチ情報の少なくとも一
方とを、発生する情報発生手段と、前記情報発生手段か
ら発生される情報に従い少なくとも2組のフィルタ係数
を指定するための指定情報を前記フィルタ係数指定情報
記憶手段から読み出し、この指定情報に基づきフィルタ
係数を前記フィルタ係数記憶手段から読み出すフィルタ
係数読出し手段と、音色を制御するための制御信号を発
生する制御信号発生手段と、前記制御信号発生手段から
発生された制御信号を補間パラメータとして、前記フィ
ルタ係数読出し手段で読み出された前記少なくとも2組
のフィルタ係数を補間し、補間により得られたフィルタ
係数を前記ディジタルフィルタ手段に与えるフィルタ係
数補間手段とを具えたものである。 【0008】上記構成からなる楽音信号処理装置によれ
ば、複数組のフィルタ係数を夫々記憶するフィルタ係数
記憶手段のみならず、フィルタ係数を指定する指定情報
を記憶するフィルタ係数指定情報記憶手段をも具備して
いる。このフィルタ係数指定情報記憶手段は、楽音信号
の音色毎であって、かつ楽音信号の音域およびタッチの
少なくとも一方毎に、フィルタ係数を指定する指定情報
を記憶するものであり、ここで、当該指定情報は、異な
る音色、音域あるいはタッチについて共通のフィルタ係
数を指定可能にするものである。情報発生手段からは、
発生すべき楽音の音色を示す音色情報と、発生すべき楽
音信号の音域を示す音域情報および発生すべき楽音のタ
ッチを示すタッチ情報の少なくとも一方とが、発生され
る。この情報発生手段から発生される情報に従い少なく
とも2組のフィルタ係数を指定するための指定情報がフ
ィルタ係数指定情報記憶手段から読み出され、この指定
情報に基づきフィルタ係数がフィルタ係数記憶手段から
読み出される。こうして読み出された少なくとも2組の
フィルタ係数が、音色変化制御のための制御信号を補間
パラメータとして、補間され、補間により得られたフィ
ルタ係数がディジタルフィルタ手段で利用される。 【0009】従って、この場合も、補間演算によって、
音色変化制御内容に応じた精密なフィルタ係数を発生す
ることができるので、フィルタ係数記憶手段に予め記憶
しておくフィルタ係数の量を増すことなく、豊富なフィ
ルタ特性を実現し、これにより豊富な音色変化制御を実
現することができるようになる。また、音色情報によっ
てフィルタ係数記憶手段を直接読み出すのではなく、フ
ィルタ係数を指定するための指定情報を読み出して、こ
の指定情報によりフィルタ係数記憶手段を読み出すよう
にした間接読出し方式からなっている。これにより、フ
ィルタ係数記憶手段に記憶したフィルタ係数を、異なる
音色情報によって、間接的に共通に読出して利用するこ
とができ、相対的にフィルタ係数記憶手段に記憶するフ
ィルタ係数の数を減らすことができるものであり、フィ
ルタ係数記憶容量を相対的に減らすことができる、とい
う優れた効果を奏する。この効果は、フィルタ係数補間
に起因するフィルタ係数記憶容量の相対的縮減と相俟っ
て、より一層のフィルタ係数記憶容量の縮減をもたら
す。 【0010】また、フィルタ係数指定情報記憶手段にお
いて記憶される前記指定情報は、楽音信号の音色毎であ
って、かつ楽音信号の音域およびタッチの少なくとも一
方毎に、夫々記憶されているものであり、かつ、これら
の指定情報の中には、異なる音色、音域あるいはタッチ
について共通のフィルタ係数を指定するものが含まれて
いることも特徴としている。すなわち、1つの音色につ
き、複数の各音域および/又は複数の各タッチの各々に
対応して、複数の指定情報が記憶されており、そのよう
な複数の指定情報が各音色毎に記憶されているのである
が、そのような多数の指定情報はすべて全く別々のフィ
ルタ係数を指定するというわけではなく、共通のフィル
タ係数を指定可能にされているので、異なる複数の指定
情報が共通のフィルタ係数を指定することもある。これ
により、フィルタ係数を読み出すための独立変数の多さ
に比較して、フィルタ係数記憶容量を相対的に減らすこ
とができることになり、楽音信号の音色毎であってかつ
楽音信号の音域およびタッチの少なくとも一方毎に指定
情報を記憶させたことによって音色制御の多様性を高め
ることができる(フィルタ係数を読み出すための独立変
数を多様にする)一方で、フィルタ係数記憶容量はそれ
ほど増すことのないようにすることができる、いう優れ
た効果を奏する。 【0011】なお、制御信号発生手段で発生する制御信
号としては、時間経過、手動操作子出力、エンベロープ
波形データ、低周波変調信号、更には、鍵タッチと音高
または音域のうち上記指定情報の読み出し因子に含めな
かったものなど、何らかの音色制御要素に基づく音色制
御情報であってよい。例えば、フィルタ特性を時間的に
変化させることにより音色の時間変化を実現しようとす
る場合、フィルタ係数供給手段は異なる時間フレームに
対応してフィルタ係数を夫々供給するようにしてもよ
い。その場合、制御信号発生手段からは時間経過に伴い
値が変化する制御信号を発生するようにしてもよく、そ
うすると、フィルタ係数補間手段では、フィルタ係数供
給手段によって供給される異なる時間フレームのフィル
タ係数を、時間的に変化する補間パラメータである制御
信号に応じて補間する。その結果、補間出力としてディ
ジタルフィルタに供給されるフィルタ係数は、或る時間
フレームに対応するフィルタ係数から別の時間フレーム
に対応するフィルタ係数まで、各補間ステップ毎に滑ら
かにその値が変化し、音色の滑らかな時間変化が得られ
る。 【0012】また、フィルタ特性を時間的に変化させる
必要のない場合であっても、フィルタ係数補間方式を使
用することができる。例えば、鍵タッチに応じてフィル
タ特性を可変制御することにより、鍵タッチに応じた音
色変化制御を行おうとする場合、フィルタ係数供給手段
によって予め準備するフィルタ係数は、或る弱い鍵タッ
チに対応するフィルタ係数と或る強い鍵タッチに対応す
るフィルタ係数の少なくとも2組だけであったとして
も、その間の多段階の鍵タッチの程度に応じて制御信号
発生手段から制御信号を発生し、この制御信号を補間パ
ラメータとしてフィルタ係数の補間演算を行うことによ
り、多段階の鍵タッチに応じた精密なフィルタ係数を得
ることができ、鍵タッチに応じた豊かな音色変化制御を
実現することができる。制御信号が、音高または音域、
手動操作子出力、エンベロープ波形データ、低周波変調
信号など、その他の音色制御要素に基づき発生される場
合についても同様である。 【0013】 【発明の実施の形態】以下、添付図面を参照してこの発
明の実施の形態を詳細に説明しよう。図1はこの発明を
適用した電子楽器の一実施例のハード構成を示すもの
で、この実施例は、異なる時間フレームに対応するフィ
ルタ係数を時間経過に伴って補間することによりフィル
タ特性の時間変化を実現するようにしたものである。こ
の実施例の電子楽器においては、CPU(中央処理ユニ
ット)11、プログラムROM(リードオンリーメモ
リ)12及びデータ及びワーキングRAM(ランダムア
クセスメモリ)13を含むマイクロコンピュータ部10
によって、フィルタ係数の補間演算を含む各種の動作や
処理が制御される。また、フィルタ係数補間演算の基本
タイミングを設定するためのタイマカウンタ14がマイ
クロコンピュータ部10内に設けられている。このタイ
マカウンタ14は所定のクロックパルスによって所定時
間毎に(例えば2ms毎に)歩進される。 【0014】鍵盤15は、発生すべき楽音の音高を指定
するための複数の鍵を具えている。タッチ検出回路16
は鍵盤15で押圧された鍵のタッチを検出するためのも
のであり、例えば32段階の分解能で鍵タッチを検出す
る。検出するタッチの種類は、イニシャルタッチあるい
はアフタータッチのどちらでもよい。フィルタモードス
イッチ17は2種類のフィルタ係数補間モードのどちら
かを選択するためのものである。この実施例では、フィ
ルタ係数の補間演算は次の2つのモードのどちらかに従
って選択的に行うことができるようになっており、この
モード選択をフィルタモードスイッチ17によって行
う。 【0015】第1のモード(これをモード“0”とい
う)では、隣接する時間フレームに対応する2つのフィ
ルタ係数の差に基づき補間演算を行う。第2のモード
(これをモード“1”という)では、隣接する時間フレ
ームに対応する2つのフィルタ係数の少なくとも一方と
予め準備された係数差分値とに基づき補間演算を行う。
これらのモードの詳細は追って明らかになる。操作パネ
ル部18には、音色選択スイッチ19やその他種々の楽
音設定・制御用スイッチ及び操作子が設けられている。 【0016】フィルタパラメータメモリ20は、複数の
時間フレームに対応するフィルタ係数の組を予め記憶し
たものであり、そのようなフィルタ係数の組を音色種
類、音高、鍵タッチ等の音色決定因子の組合せに対応し
て多数記憶している。音色選択スイッチ19によって選
択された音色種類、鍵盤15で押圧された鍵の音高、及
びタッチ検出回路16で検出された押圧鍵の鍵タッチに
応じて、複数の時間フレームに対応するフィルタ係数か
らなる1組のフィルタ係数が選択され、楽音発音時の時
間経過に従って各時間フレームに対応するフィルタ係数
が該メモリ20から順次読み出される。読み出された各
フレームのフィルタ係数はマイクロコンピュータ部10
に与えられる。マイクロコンピュータ部10では、隣接
する時間フレームのフィルタ係数を補間する演算を行
い、その結果各補間ステップ毎に得られる補間出力フィ
ルタ係数を、データ及びアドレスバス21を介して楽音
信号発生回路22内のディジタルフィルタ23に供給す
る。このフィルタパラメータメモリ20は、電子楽器に
内蔵された内部ROMからなるものとしてよいが、外部
ROMあるいはその他の外部記憶媒体により着脱可能な
ものとしてもよい。 【0017】楽音信号発生回路22は、データ及びアド
レスバス21を介して与えられる押圧鍵の情報(キーコ
ードとキーオン信号)に基づき押圧鍵に対応する音高を
持つディジタル楽音信号を発生し、このディジタル楽音
信号をディジタルフィルタ23に入力してそのフィルタ
特性に従う音色制御を施すものである。楽音信号発生方
式としては、どのようなタイプの楽音信号発生方式を用
いてもよい。例えば、キーコードによって指定された音
高に対応するレートで変化する位相アドレスデータに応
じて波形メモリに記憶した楽音波形サンプル値データを
順次読み出す方式(メモリ読出し方式)、あるいは該位
相アドレスデータを位相角パラメータデータとして所定
の周波数変調演算を実行して楽音波形サンプル値データ
を求める方式(FM方式)、あるいは該位相アドレスデ
ータを位相角パラメータデータとして所定の振幅変調演
算を実行して楽音波形サンプル値データを求める方式
(AM方式)、など公知のどのような方式を用いてもよ
い。また、メモリ読出し方式を採用する場合、波形メモ
リに記憶する楽音波形は1周期波形のみであってもよい
が、複数周期波形である方が音質の向上が図れるので好
ましい。複数周期波形を波形メモリに記憶しこれを読み
出す方式は、例えば特開昭52−121313号に示さ
れたように発音開始から終了までの全波形を記憶しこれ
を1回読み出す方式、あるいは特開昭58−14239
6号に示されたようにアタック部の複数周期波形と持続
部の1又は複数周期波形を記憶し、アタック部の波形を
1回読み出した後持続部の波形を繰返し読み出す方式、
あるいは特開昭60−147793号に示されたように
離散的にサンプリングした複数の波形を記憶し、読み出
すべき波形を時間的に順次切換えて指定し、指定された
波形を繰返し読み出す方式、など種々の方式が公知であ
り、これらを適宜採用してよい。更に、そのような複数
周期波形を記憶した波形メモリを読み出すことにより高
品質のディジタル楽音信号を発生する方式の一例として
は、特願昭61−86835号に示されたようなものが
あり、そこでは、波形メモリに記憶する波形データをL
PC(線形予測)などの手法でデータ圧縮し、メモリ記
憶容量を節約することが開示されている。 【0018】ディジタルフィルタ23は、上記ディジタ
ル楽音信号と補間によって得たフィルタ係数を入力し、
このフィルタ係数によって設定されるフィルタ特性に従
って該入力楽音信号を制御する。このディジタルフィル
タ23の形式もどのようなものでもよい。ディジタルフ
ィルタの演算形式としては、基本的には有限インパルス
応答(FIR)フィルタと無限インパルス応答(II
R)フィルタとがあるが、FIRフィルタを用いれば、
設計のし易さ、安定性、楽音制御向きである点、などの
理由により好都合である。その場合、フィルタ係数を時
間的に切り換えるタイプのものは特願昭60−2675
42号に示されており、そこに示されたようなものを用
いてもよい。楽音信号発生回路22から出力されたディ
ジタル楽音信号はディジタル/アナログ変換器24でア
ナログ信号に変換され、サウンドシステム25に与えら
れる。 【0019】図2は32次FIRフィルタとして構成し
たディジタルフィルタ23の基本回路構成図であり、x
(n)は入力楽音信号における任意のn番目のサンプル点
のディジタル楽音波形サンプル値データである。 【数1】 は単位時間遅れ要素であり、1サンプリング周期の時間
遅れを設定するものである。従って、x(n−1)はn−1
番目のサンプル点のディジタル楽音波形サンプル値デー
タであり、x(n−31)はn−31番目のサンプル点の
ディジタル楽音波形サンプル値データである。h(0)〜
h(31)は32次のフィルタ係数である。このフィルタ
係数が入力された三角形のブロックは乗算要素であり、
遅延要素で遅延された各サンプル点のデータx(n)〜x
(n−31)に対して夫々に対応するフィルタ係数h(0)
〜h(31)を乗算する。乗算出力が入力された+記号を
付したブロックは加算要素であり、各乗算出力を加算合
計し、出力信号y(n)を得る。 【0020】このようなFIRフィルタの1つの特徴
は、位相特性を直線位相とすることができることであ
る。直線位相とすると、フィルタの入出力波形間におい
てその位相が完全に直線特性で対応し、出力波形に歪み
が生じない。従って、楽音、音声、オーディオ等の信号
のフィルタ処理に好適である。そのような直線位相特性
をもつFIRフィルタの必要十分条件は、そのインパル
ス応答が対称性をもつことであり、インパルス応答が対
称性をもつということは、フィルタ係数h(0)〜h(3
1)が対称性を持つことを意味する。すなわち、フィル
タ係数を対称特性で設定することにより、前述の直線位
相特性を実現することができるのである。この場合、対
称位置にある次数同士はフィルタ係数が同じ値であるた
め、全ての次数N(=32)のフィルタ係数を準備する
必要はなく、その半分でよい。詳しくは、この例のよう
にNが偶数の場合は、0次から15次までの16個のフ
ィルタ係数を準備すればよく、16次から31次までの
フィルタ係数は0次から15次までの対称位置関係にあ
るフィルタ係数を利用すればよい。従って、この実施例
では、実際には0次から15次までの16個のフィルタ
係数を発生し、これをそのまま0次から15次までのフ
ィルタ係数として使用すると共にこれを折り返して対称
位置関係にある16次から31次までのフィルタ係数と
しても使用するようにしている。 【0021】FIRフィルタのその他の特徴としては、
フィードバックループがないため、安定性がよいという
特徴がある。すなわち、IIRフィルタのようにフィー
ドバックループがある場合は発振等の問題が起るが、F
IRフィルタでは発振等の問題が生じず、設計も容易で
ある。また、この発明のようにフィルタ特性を時間的に
変化させる場合においてもFIRフィルタは有利であ
る。この場合、従来は、時間的に異なるフィルタ特性の
各々に対応してフィルタ係数の組を夫々準備しなければ
ならないが、そうするとフィルタ特性の時変動を細かく
するには多数のフィルタ係数の組が必要とされることは
既に述べた。この問題点を解決するために、この発明で
は、時間的にある程度離れた2組の(2フレームの)フ
ィルタ係数を準備し、その2組のフィルタ係数の間で補
間を行うことによりその間の時間経過に伴ってフィルタ
係数の組を密に発生させ、こうして補間によって発生し
たフィルタ係数によって時間的に変動するフィルタ特性
を設定するのである。このようにフィルタ係数の補間を
実時間で行いながら時変動フィルタ特性を実現する場
合、FIRフィルタのように安定性のよいものは、不安
定性を考慮してフィルタ係数を工夫する必要がないの
で、非常に有利である。 【0022】図3はフィルタパラメータメモリ20の記
憶フォーマットの一例を示しており、ボイスディレクト
リ20a,ボイスバンク20b,パラメータバンク20
cからなっている。実際のフィルタ係数はパラメータバ
ンク20cに記憶されており、ボイスバンク20bに
は、音色種類、音高及び鍵タッチからなる音色決定因子
の組合せに対応して定まるフィルタ係数を該パラメータ
バンク20cから読み出すためのアドレスデータとフィ
ルタ係数補間演算用のパラメータデータとが記憶されて
いる。ボイスディレクトリ20aは、複数種類の音色
(これをボイス0〜Nとする)に対応してボイスオフセ
ットアドレスVOAを記憶している。音色選択スイッチ
19で選択された音色を表す音色コードに応じて該選択
音色に対応するボイスオフセットアドレスVOAが該ボ
イスディレクトリ20aから読み出される。ボイスオフ
セットアドレスVOAは、ボイスバンク20bにおける
各ボイス0〜Nに対応する記憶バンクの先頭のアドレス
を示すデータである。ボイスバンク20bは、各ボイス
0〜Nに対応する記憶バンク(ボイスバンク)からな
る。各ボイスに対応するボイスバンクは、例えばボイス
0について図示するように、キーバンクオフセットテー
ブルと複数のキーグループ(これをキーグループ0〜M
とする)に対応するキーバンクとからなる。 【0023】キーバンクオフセットテーブルは、鍵盤1
5の各鍵に対応してキーバンクオフセットアドレスKO
Aを記憶している。押圧鍵のキーコードに応じて該押圧
鍵が所属するキーグループに対応するキーバンクオフセ
ットアドレスKOAが該キーバンクオフセットテーブル
から読み出される。キーバンクオフセットアドレスKO
Aは、キーバンクにおける各キーグループ0〜Mに対応
する記憶バンクの先頭のアドレスを示すデータであり、
当該ボイスバンク内の相対アドレスデータからなる。キ
ーバンクは、各キーグループ0〜Mに対応する記憶バン
ク(キーバンク)からなる。各キーグループに対応する
キーバンクは、例えばキーグループ0について図示する
ように、タッチバンクオフセットテーブルと複数のタッ
チグループ(これをタッチグループ0〜Lとする)に対
応するタッチバンクとからなる。 【0024】タッチバンクオフセットテーブルは、タッ
チ検出回路16によって検出可能な32段階のタッチデ
ータの各段階に対応してタッチバンクオフセットアドレ
スTOAを記憶している。タッチ検出回路16で検出さ
れたタッチデータに応じて該タッチデータが所属するタ
ッチグループに対応するタッチバンクオフセットアドレ
スTOAが該タッチバンクオフセットテーブルから読み
出される。タッチバンクオフセットアドレスTOAは、
タッチバンクにおける各タッチグループ0〜Lに対応す
る記憶バンクの先頭のアドレスを示すデータであり、当
該キーバンク内の相対アドレスデータからなる。タッチ
バンクは、各タッチグループ0〜Lに対応する記憶バン
ク(タッチバンク)からなる。各タッチグループに対応
するタッチバンクは、例えばタッチグループ0について
図示するように、複数の時間フレーム(各フレームを0
〜Kとする)に対応するフレームバンクからなる。 【0025】各フレーム0〜Kに対応するフレームバン
クには、例えばフレーム0について図示するように、当
該フレームに関する補間演算用パラメータデータFT,
IN,IT,IIと係数アドレスデータCADとを記憶
している。また、前述のモード“1”のための係数差分
値データDCF(0)〜DCF(15)が必要に応じて更に
フレームバンクに記憶されている。詳しくは、前述のモ
ード“0”とモード“1”のために夫々異なる記憶内容
からなるフィルタパラメータメモリ20が別々に用いら
れる。そして、モード“0”用のフィルタパラメータメ
モリ20においては、1つのフレームバンクは8アドレ
スからなり、そこに上記補間演算用パラメータデータF
T,IN,IT,IIと係数アドレスデータCADとを
記憶している。また、モード“1”用のフィルタパラメ
ータメモリ20においては、1つのフレームバンクは4
0アドレスからなり、そこに上記補間演算用パラメータ
データFT,IN,IT,IIと係数アドレスデータC
AD及び係数差分値データDCF(0)〜DCF(15)を
記憶している。このようなモード“0”用のフィルタパ
ラメータメモリ20とモード“1”用のフィルタパラメ
ータメモリ20のどちらか一方をファクトリーセットで
電子楽器に装着し、装着したメモリのモードに応じてフ
ィルタモードスイッチ17を切り替えるようにしてもよ
いし、あるいはモード“0”用のフィルタパラメータメ
モリ20とモード“1”用のフィルタパラメータメモリ
20を併設し、フィルタモードスイッチ17によって選
択されたモードに応じてどちらか一方のメモリ20を読
み出すようにしてもよい。 【0026】補間演算用の各パラメータデータについて
次に説明する。フレーム時間データFTは、当該フレー
ムの持続時間を示すものであり、最終フレームでは
“0”、その他のフレームでは“0”以外の適宜の持続
時間を示すデータである。最終フレームは、楽音の発音
が終了するまで当該フレームを持続するので、その持続
時間は不特定であり、そのためFT=“0”としてい
る。補間シフト数データINは、隣接するフレームのフ
ィルタ係数の差をシフトする際のシフト量を示すデータ
である。この補間シフト数データINは次に述べる補間
回数データITの対数である。補間回数データITは、
隣接するフレームのフィルタ係数を補間する際の補間回
数(補間ステップ数)を示すデータである。補間間隔デ
ータIIは、1補間ステップの時間を示すデータであ
る。係数アドレスデータCADは、当該フレームに対応
するフィルタ係数をパラメータバンク20cから読み出
すためのアドレスデータである。パラメータバンク20
cは複数種類のフイルタ係数の組(これをパラメータセ
ット0〜Rとする)を記憶している。1組のフイルタ係
数は、例えばパラメータセット0について図示するよう
に、0次から15次までの16個のフイルタ係数CF(0)
〜CF(15)からなっている。フレームバンクから読み出
された係数アドレスデータCADによってパラメータバ
ンク20cに記憶されているパラメータセット0〜Rの
うち何れか1つのセットが指定され、指定されたパラメ
ータセットに対応する1組のフイルタ係数CF(0)〜C
F(15)が読み出される。 【0027】1つのタッチバンク内の各フレーム0〜K
に対応するフレームバンクの相対アドレスは、フレーム
ナンバFNに従って指定される。各フレーム0〜Kは時
間順序に対応しており、楽音発音開始時はフレーム0で
あり、以後所定の時間経過に応じてフレーム1,2,3
…と順にフレームが切り換わる。フレームナンバFNは
現時点でのフレームを示すデータである。前述のよう
に、1つのフレームバンクのアドレス数は、一例とし
て、モード“0”の場合8であり、モード“1”の場合
40である。従って、詳しくは、各フレーム0〜Kに対
応するフレームバンクの相対アドレスは、モード“0”
の場合、“FN×8”であり、モード“1”の場合、
“FN×40”である。 【0028】フィルタパラメータメモリ20における所
望のフレームバンクの絶対アドレス(これをフレームア
ドレスFADという)は、前述のようにしてボイスディ
レクトリ20a、キーバンクオフセットテーブル及びタ
ッチバンクオフセットテーブルから夫々読み出されたボ
イスオフセットアドレスVOA、キーバンクオフセット
アドレスKOA及びタッチバンクオフセットアドレスT
OAを使用して、次のような演算式により決定される。 モード“0”の場合: FAD=VOA+KOA+TOA+FN×8 モード“1”の場合: FAD=VOA+KOA+TOA+FN×40 【0029】すなわち、読み出すべきボイスバンクの先
頭アドレスを示すボイスオフセットアドレスVOAに対
して、それに対する相対アドレスであるキーバンクオフ
セットアドレスKOAを加算し、更にそれに対する相対
アドレスであるタッチバンクオフセットアドレスTOA
を加算し、更にそれに対する相対アドレスであるフレー
ムバンク相対アドレス“FN×8”又は“FN×40”
を加算するのである。なお、設計上、メモリ容量節約の
ために各オフセットアドレスVOA,KOA,TOAの
データ表現は、実際の値に対して、VOAが1/16,K
OAが1/8,TOAが1/8となっているものとす
る。その場合は、各オフセットアドレスデータの値を下
記のように修正してフレームアドレスFADを決定する
ものとする。 モード“0”の場合: FAD=VOA×16+KOA×8+TOA×8+FN
×8 モード“1”の場合: FAD=VOA×16+KOA×8+TOA×8+FN
×40 【0030】図3に示したような階層化されたフィルタ
パラメータメモリ20の構造は、メモリ容量を節約する
ことができるので有利である。このようにせずに、音色
種類、キーグループ、タッチグループの組合せのすべて
に対応して個別にフィルタ係数を記憶したとすると、か
なりの記憶容量が要求されるが、図3のようにすればそ
れほどの記憶容量は要求されない。つまり、音色種類、
キーグループ及びタッチグループの組合せが異なってい
てもフィルタ係数は共通のものを使用できる場合がある
ので、図3のパラメータバンク20cに記憶するパラメ
ータセット0〜Rの数は、音色種類、キーグループ及び
タッチグループの組合せのすべての数に比べてはるかに
少なく、これによりメモリ容量の節約を図っている。 【0031】次に、2種類のフィルタ係数補間モードの
概要を説明する。 モード“0”:このモードでは、隣接する時間フレーム
に対応する2つのフィルタ係数の差に基づき補間演算を
行う。図4を参照して、隣接する時間フレーム0と1に
ついて考える。フレーム0に対応するフィルタ係数をF
C0とし、フレーム1に対応するフィルタ係数をFC1
とする。両フィルタ係数の差(FC1−FC0)を求
め、これを補間シフト数データINに応じてシフトす
る。つまり、演算式で示すと補間回数データITによっ
て割ることと等価である。これにより次式の通り、係数
差分値DCFを求める。 (FC1−FC0)/IT=DCF 【0032】補間間隔データIIによって設定される1
補間ステップ時間毎に、この係数差分値DCFをフレー
ム0に対応するフィルタ係数FC0に対して累算してい
くことにより補間演算が実行される。こうして、補間演
算により得られるフィルタ係数は、FC0から始まって
補間ステップ毎に係数差分値DCF分だけ徐々に増加
(または減少)していき、最終的に補間回数データIT
と同数の累算を完了したとき次のフレーム1に対応する
フィルタ係数FC1に相当する値に到達する。そして、
フレームが切り換わり、次のフレーム1と2に関して上
述と同様の補間演算が行われる。なお、このような補間
演算は各次数毎に夫々行われる。 【0033】モード“1”:このモードでは、隣接する
時間フレームに対応する2つのフィルタ係数の少なくと
も一方と予め準備された係数差分値とに基づき補間演算
を行う。すなわち、上述のモード“0”では係数差分値
DCFを計算によって求めるが、このモード“1”では
各次数に対応する係数差分値データDCF(0)〜DCF
(15)がフィルタパラメータメモリ20内のフレームバ
ンクに予め記憶されているのでこの係数差分値DCFを
求める計算を行う必要がない。従って、時間フレーム0
と1における補間について考えると、フレームバンクか
ら読み出した係数差分値DCFを、補間間隔データII
によって設定される1補間ステップ時間毎にフレーム0
に対応するフィルタ係数FC0に対して累算していくこ
とにより補間演算が実行される。そして、補間回数デー
タITと同数の累算を完了したとき時間フレーム0と1
における補間を終了する。そして、フレームが切り換わ
り、次のフレーム1と2に関して上述と同様の補間演算
が行われる。 【0034】マイクロコンピュータ部10によって実行
される処理のうち、この発明に関連する処理のフローチ
ャートの一例が図6〜図8に示されている。この処理に
関連して使用されるデータ及びワーキングRAM13内
の記憶内容の一例が図5に示されている。TIMER
は、タイマカウント値であり、所定のタイミングで(例
えば2ms毎に)歩進されるタイマカウンタ14(図1)
のカウント値をストアしたものである。TCODEは、
音色コードであり、音色選択スイッチ19(図1)で選
択された音色を示している。KCODEは、キーコード
であり、鍵盤15(図1)で押圧された鍵を示してい
る。TDATAは、タッチデータであり、タッチ検出回
路16(図1)で検出された鍵タッチを示している。 【0035】MODEは、モードデータであり、フィル
タモードスイッチ17(図1)によって選択されたモー
ドを示している。FT,IN,IT,IIは前述の補間
演算パラメータ、CADは前述の係数アドレスであり、
前述の要領でフィルタパラメータメモリ20から読み出
された現在のフレームに対応するものがこのRAM13
にストアされる。FNは、前述のフレームナンバであ
り、現在のフレームを示している。RTIMEは、スタ
ートタイムであり、1補間ステップの始まりにおけるタ
イマカウント値TIMERをストアするものである。C
ITは、現補間回数であり、現在の補間回数(補間ステ
ップ数)を示している。ACF(0)〜ACF(15)は、0
次〜15次の現在のフィルタ係数データCF(0)〜CF(1
5)であり、補間の進展に従って変化する。前述の通り、
これは16次〜31次のフィルタ係数データとしても使用さ
れる。すなわち、図2における0次〜15次のフィルタ係
数h(0)〜h(15)としてこの現在のフィルタ係数データ
ACF(0)〜ACF(15)が供給され、かつ16次〜31次の
フィルタ係数h(16)〜h(31)としてもこの現在のフィル
タ係数データACF(15)〜ACF(0)が対称に折り返し
て供給される。 【0036】NCF(0)〜NCF(15)は、次のフレーム
に対応する0次〜15次のフィルタ係数データCF(0)〜
CF(15)である。DCF(0)〜DCF(15)は、前述の係
数差分値データであり、0次〜15次の各次に対応するも
のである。前述の通り、モード“0”のときは計算によ
って求めたもの、モード“1”のときはフィルタパラメ
ータメモリ20から現在フレームに対応して読み出され
たもの、である。上述のようなデータあるいは信号を記
憶するための領域が、データ及びワーキングRAM13
内に設けられている。また、データ及びワーキングRA
M13内には、押圧鍵のキーデータ(キーコードやキー
オン信号など)を記憶するための領域や、操作パネル部
18におけるスイッチ等の操作検出データやLED等の
オン・オフデータを記憶するための領域、その他のワー
キング領域が設けられている。 【0037】図6はメインルーチンであり、「キー走査
処理」では鍵盤15の各鍵のオン・オフを検出し、新た
な鍵の押圧を検出したならば図7の「ニューキーオン処
理」を実行する。なお、説明の簡単化のためにこの実施
例では、新たな押圧鍵に対応する楽音を単音優先方式で
発音するものとする。「音色スイッチ走査処理」では音
色選択スイッチ19を走査し、選択された音色の音色コ
ードを上記音色コードTCODEとして記憶すると共に
楽音信号発生回路22に送出する。「モードスイッチ走
査処理」ではフィルタモードスイッチ17を走査し、モ
ード“0”と“1”のどちらが選択されているかを調べ
る。モード“0”が選択されたならば上記モードデータ
MODEを“0”とし、モード“1”が選択されたなら
ば上記モードデータMODEを“1”とする。メインル
ーチンでは更に操作パネル部18における他のスイッチ
や操作子を走査し、必要な処理を行う。 【0038】鍵盤15で新たな鍵が押圧されたことが検
出されたときは図7のニューキーオン処理が実行され
る。ここでは、まず、新たに押圧された鍵のキーコード
を上記キーコードKCODEとして記憶する。次に、こ
の新たな押圧鍵に対応してタッチ検出回路16で検出し
たタッチデータを上記タッチデータTDATAとして記
憶する。次に、各種のレジスタの内容を初期設定する。
例えば、スタートタイムRTIMEとしてタイマカウン
ト値TIMERをセットする(最初の補間ステップの開
始時間をRTIMEにセットする)、フレームナンバF
Nを“0”にリセットする、現在の補間回数CITを
“0”にリセットする、等の処理を行う。次のステップ
30では、音色コードTCODE、キーコードKCOD
E、タッチデータTDATAに応じてフィルタパラメー
タメモリ20から各オフセットアドレスVOA,KO
A,TOAを読み出し、これらのオフセットアドレスV
OA,KOA,TOAとフレームナンバFNに応じて前
述の通りフレームアドレスを計算する。最初はフレーム
ナンバFN=“0”であるので、フレーム0のフレーム
アドレスFAD(0)が求められる。 【0039】次のステップ31では、計算されたフレー
ムアドレスFADに応じてフィルタパラメータメモリ2
0のフレームバンクから前述の各種補間演算パラメータ
FT,IN,IT,IIと係数アドレスCADを読み出
し、これらをRAM13内のレジスタにストアする。次
のステップ32では、上記係数アドレスCADに応じて
フィルタパラメータメモリ20のパラメータバンク20
cから1組のフィルタ係数を読み出し、これらを現在の
フィルタ係数データACF(0)〜ACF(15)としてRA
M13内のレジスタにストアする。次のステップ33で
は、現在のフィルタ係数データACF(0)〜ACF(15)
を楽音信号発生回路22内のディジタルフイルタ23に
送出する。ステップ34では、キーコードKCODE、
タッチデータTDATA及びキーオン信号を楽音信号発
生回路22に送出する。このステップ33,34の処理
を次のステップ35〜38の処理の前に行うのは、ステ
ップ35〜38の処理には計算時間がかかるため、その
前に楽音信号発生回路22へのデータ送出を行うことに
より楽音の発音開始を遅らせないようにするためであ
る。 【0040】次のステップ35では、モードデータMO
DEが“0”であるかを調べる。YESつまりモード
“0”であれば、ステップ36,37,38に進み、補
間用の係数差分値データDCF(0)〜DCF(15)を求め
る演算を行う。ステップ36では、フレーム0の次のフ
レーム1に関するフレームアドレスFAD(1)を計算
し、このフレームアドレスFAD(1)に応じてフィルタ
パラメータメモリ20のフレームバンクからフレーム1
に関する係数アドレスCADを読み出す。ステップ37
では、前ステップで求めたフレーム1に関する係数アド
レスCADに応じてフィルタパラメータメモリ20のパ
ラメータバンク20cから1組のフィルタ係数を読み出
し、これらを次フレームのフィルタ係数データNCF
(0)〜NCF(15)としてRAM13内のレジスタにスト
アする。ステップ38では、各次数毎に、次フレームの
フィルタ係数データNCF(0)〜NCF(15)と現在のフ
ィルタ係数データACF(0)〜ACF(15)の差(例えば
0次の場合は“NCF(0)−ACF(0)”)を求め、こ
れを補間シフト数データINに応じてシフトすることに
より係数差分値データDCF(0)〜DCF(15)を求め、
求めた係数差分値データDCF(0)〜DCF(15)をRA
M13内のレジスタにストアする。 【0041】モード“1”であれば、ステップ35から
ステップ39に進み、前述の通り既にフィルタパラメー
タメモリ20のフレームバンクに記憶してある係数差分
値データDCF(0)〜DCF(15)をフレームアドレスF
AD(0)に対応するフレームバンクから読み出し、読み
出した係数差分値データDCF(0)〜DCF(15)をRA
M13内のレジスタにストアする。上述のニューキーオ
ン処理後は、タイマカウント値TIMERがカウントア
ップされる毎に(2ms毎に)図8のタイマインタラプト
ルーチンが実行され、このルーチンにより補間演算が行
われる。 【0042】図8において、ステップ40では、フレー
ム時間データFTが“0”であるか、つまり現フレーム
が最終フレームであるかを調べる。最終フレームでは補
間を行わないので最終フレームならば直ちにリターンに
行くが、最終フレームでなければステップ41に進む。
ステップ41では、タイマカウント値TIMERとスタ
ートタイムRTIMEとの差が補間間隔データIIによ
って設定された1補間ステップ時間になったかどうかを
調べる。つまり、1補間ステップ時間が経過したかどう
かを調べる。経過していなければリターンに行くが、経
過したならばステップ42に進む。ステップ42では、
スタートタイムRTIMEとしてタイマカウント値TI
MERをセットする。これにより、次の1補間ステップ
の開始時間がRTIMEにセットされる。次のステップ
43では、現在の補間回数CITを1増加する。次のス
テップ44では、1増加された現在の補間回数CITが
補間回数データITに一致したか、つまり補間が終了し
たか、を調べる。補間が終了していなければステップ4
5に進み、各次数毎に、現在のフィルタ係数データAC
F(0)〜ACF(15)に係数差分値データDCF(0)〜D
CF(15)を加算し、加算結果を新たな現在のフィルタ係
数データACF(0)〜ACF(15)とする処理を行う(例
えば0次の場合は“ACF(0)←ACF(0)+DCF
(0)”)。こうして、次の1補間ステップの演算が行わ
れる。ステップ46では、新たな補間出力である現在の
フィルタ係数データACF(0)〜ACF(15)を楽音信号
発生回路22内のディジタルフイルタ23に送出する。 【0043】ステップ41から46のルーチンを所定の
補間回数ITだけ繰り返すと、ステップ44がYESと
なり、ステップ47に進む。ステップ47では、フレー
ムナンバFNを1増加し、現在の補間回数CITを
“0”にリセットする。こうしてフレームが切り換わ
る。次のステップ48では、モードデータMODEが
“0”であるかを調べる。YESつまりモード“0”で
あれば、ステップ49に進み、NOつまりモード“1”
であれば、ステップ50に進む。ステップ49では、前
述のオフセットアドレスVOA,KOA,TOAと新た
なフレームナンバFNに応じて新たなフレームアドレス
FADを計算する。例えばフレームナンバFN=“1”
であれば、フレーム1のフレームアドレスFAD(1)が
求められる。この場合、前述のとおりモード“0”のと
きの1フレームバンクは8アドレスからなるため、前の
フレームのフレームアドレスFADに8加算すれば新た
なフレームアドレスFADを求めることができる。そし
て、計算されたフレームアドレスFADに応じてフィル
タパラメータメモリ20のフレームバンクから前述の各
種補間演算パラメータFT,IN,IT,IIと係数ア
ドレスCADを読み出し、これらをRAM13内のレジ
スタにストアする。 【0044】ステップ50でも、ステップ49のよう
に、前述のオフセットアドレスVOA,KOA,TOA
と新たなフレームナンバFNに応じて新たなフレームア
ドレスFADを計算し、計算されたフレームアドレスF
ADに応じてフィルタパラメータメモリ20のフレーム
バンクから前述の各種補間演算パラメータFT,IN,
IT,IIと係数アドレスCADを読み出し、これらを
RAM13内のレジスタにストアする。但し、前述のと
おりモード“1”のときの1フレームバンクは40アド
レスからなるため、前のフレームのフレームアドレスF
ADに40加算すれば新たなフレームアドレスFADを
求めることができる。モード“0”の場合、ステップ4
9の後ステップ51に進む。ステップ51,52は、図
7のステップ32,33と同様に、係数アドレスCAD
に応じてフィルタパラメータメモリ20のパラメータバ
ンク20cから1組のフィルタ係数を読み出し、これら
を現在のフィルタ係数データACF(0)〜ACF(15)と
してRAM13内のレジスタにストアすると共にこの現
在のフィルタ係数データACF(0)〜ACF(15)を楽音
信号発生回路22内のディジタルフイルタ23に送出す
る。そして、ステップ53でフレーム時間データFTが
“0”であるか、つまり新たなフレームが最終フレーム
であるかを調べる。最終フレームでは補間を行わないの
で最終フレームならばリターンに行くが、最終フレーム
でなければステップ54に進む。 【0045】ステップ54,55,56は、図7のステ
ップ36,37,38とほぼ同様の処理であり、補間用
の係数差分値データDCF(0)〜DCF(15)を求める演
算を行う。ステップ54では、新たなフレームFNの次
のフレームFN+1に関するフレームアドレスFAD
(FN+1)を計算し、このフレームアドレスFAD(F
N+1)に応じてフィルタパラメータメモリ20のフレ
ームバンクからフレームFN+1に関する係数アドレス
CADを読み出す。ステップ55では、前ステップで求
めたフレームFN+1に関する係数アドレスCADに応
じてフィルタパラメータメモリ20のパラメータバンク
20cから1組のフィルタ係数を読み出し、これらを次
フレームのフィルタ係数データNCF(0)〜NCF(15)
としてRAM13内のレジスタにストアする。ステップ
56では、各次数毎に、次フレームのフィルタ係数デー
タNCF(0)〜NCF(15)と現在のフィルタ係数データ
ACF(0)〜ACF(15)の差(例えば0次の場合は“N
CF(0)−ACF(0)”)を求め、これを補間シフト数
データINに応じてシフトすることにより係数差分値デ
ータDCF(0)〜DCF(15)を求め、求めた係数差分値
データDCF(0)〜DCF(15)をRAM13内のレジス
タにストアする。 【0046】モード“1”の場合、ステップ50の後ス
テップ57に進む。ステップ57ではフレーム時間デー
タFTが“0”であるか、つまり新たなフレームが最終
フレームであるかを調べる。最終フレームでなければス
テップ58に行き、図7のステップ39とほぼ同様に、
既にフィルタパラメータメモリ20のフレームバンクに
記憶してある係数差分値データDCF(0)〜DCF(15)
を新たなフレームアドレスFAD(FN)に対応するフレ
ームバンクから読み出し、読み出した係数差分値データ
DCF(0)〜DCF(15)をRAM13内のレジスタにス
トアする。次のステップ59,60では、前出のステッ
プ45,46とほぼ同様に、各次数毎に、現在のフィル
タ係数データACF(0)〜ACF(15)に新たな係数差
分値データDCF(0)〜DCF(15)を加算し、加算結
果を新たな現在のフィルタ係数データACF(0)〜AC
F(15)とする処理を行い、新たな補間出力である現在
のフィルタ係数データACF(0)〜ACF(15)を楽音信
号発生回路22内のディジタルフイルタ23に送出す
る。この場合、フレームが切り換わっても、新たな係数
アドレスCADに対応するフィルタ係数の読出しとそれ
による現在のフィルタ係数データACF(0)〜ACF(1
5)の更新は行わず、古い現在のフィルタ係数データAC
F(0)〜ACF(15)に新たなフレームに対応する係数差
分値データDCF(0)〜DCF(15)を累算するようにし
ている。 【0047】モード“1”の最終フレームの場合、ステ
ップ57のYESからステップ61に行く。ステップ6
1及び62では、ステップ51,52と同様の処理を行
う。この場合、最終フレームに対応する係数アドレスC
ADに応じてフィルタパラメータメモリ20のパラメー
タバンク20cから1組のフィルタ係数を読み出し、こ
れらを現在のフィルタ係数データACF(0)〜ACF(1
5)としてRAM13内のレジスタにストアすると共にこ
の現在のフィルタ係数データACF(0)〜ACF(15)を
楽音信号発生回路22内のディジタルフイルタ23に送
出する。なお、ステップ61及び62の処理に代えてス
テップ59,60と同様の処理を行うようにしてもよ
い。なお、モード“1”は、モード“0”に比べて係数
差分値データDCF(0)〜DCF(15)を求めるための演
算が不要であるのでデータのアクセスが早いという利点
がある。係数差分値データを記憶するためのメモリが余
分に必要であるが、係数差分値データそれ自体は小さな
値であるため、ビット数も少なく、小容量で済む。ま
た、モード“1”のための係数差分値データは上述の実
施例では各フレームバンク毎に夫々記憶されているが、
フィルタ係数と同様に各フレームバンクにはアドレスを
記憶し、係数差分値データそのものはパラメータバンク
20cに記憶しておくようにしてもよい。 【0048】上述の実施例では補間演算はソフトウェア
処理によって実行されるが、専用のハードウェア回路に
よって実行するようにしてもよい。上述の実施例では時
間フレームの切り換えはタイマカウンタの出力に基づき
行われており、楽音の音高とは無関係であるが、処理す
べき楽音の位相アドレス信号に関連づけて時間フレーム
の切り換え(更には補間タイミング)を制御するように
してもよい。上述の実施例では各フレームの切り換え順
序は予め決められているが、ランダムに切り換わるよう
にしてもよい。フィルタ係数の補間演算の方法は実施例
に示したものに限らず、どのようなものでもよい。また
直線補間に限らず、任意の補間特性としてよい。例え
ば、ディジタルローパスフィルタを介しての補間であっ
てもよい。あるいは、例えば、フレーム0に対応してフ
ィルタ係数の初期値を記憶し、フレーム1以降は隣接フ
レームのフィルタ係数との差を記憶しておき、この差デ
ータをシフトして係数差分値を得るようにしてもよい。
この発明は単音楽器のみならず複音楽器にも適用できる
のは勿論である。また、この発明の楽音信号処理装置に
対して鍵盤や音源回路は別ユニットとなっていてもよ
い。 【0049】次に、図9以降を参照してこの発明の別の
実施例につき説明する。図9はこの発明を適用した電子
楽器の一実施例のハード構成を示すもので、この実施例
の電子楽器においては、CPU111、プログラムメモ
リ112及びデータ及びワーキングRAM113を含む
マイクロコンピュータ部によって、フィルタ係数の読出
しやフィルタ係数補間演算を含む各種の動作や処理が制
御される。プログラムメモリ112はRAMからなり、
そこに記憶する制御プログラムの書き換えにより該制御
プログラムの仕様を容易に変更することができるように
なっている。 【0050】フィルタ係数メモリ114は、所望のフィ
ルタ特性を実現するフィルタ係数の組を複数組記憶する
ものであり、各組には少なくとも2軸の座標データがア
ドレスデータとして夫々割当てられている。更に詳しく
一例を説明すると、例えば、フィルタ係数メモリ114
は複数のテーブルを具えており、各テーブルにおいて複
数組のフィルタ係数を夫々記憶しており、各テーブルに
おける各フィルタ係数組に対してX,Yの2軸の座標デ
ータがアドレスデータとして夫々割当てられている。1
つのテーブルにおけるフィルタ係数の記憶フォーマット
の一例を模式的に示すと、図10のようであり、この場
合、X軸の座標位置が0,1,2,…nのn+1点、Y
軸の座標位置が同じく0,1,2,…nのn+1点であ
り、各座標位置の交点によって特定される「(n+1)
の2乗」個のアドレスに「(n+1)の2乗」組のフィ
ルタ係数F00〜Fnnが割当てられている。1組のフ
ィルタ係数は所望の1つのフィルタ特性を実現するもの
であり、複数次のフィルタ係数からなる。 【0051】フィルタ係数メモリ114はRAMからな
っており、そこに記憶するフィルタ係数の内容を書き換
えることが可能となっている。外部磁気ディスクドライ
ブユニット115がこの電子楽器に付設されており、多
数組のフィルタ係数を記憶したフレキシブル磁気ディス
クカートリッジ(フロッピーディスク)FD1を該ディ
スクドライブユニット115にセットしてそこに記憶し
たフィルタ係数組をフィルタ係数メモリ114に転送記
憶することができるようになっている。また、制御プロ
グラムを記憶したフロッピーディスクFD2(つまりシ
ステムディスク)をディスクドライブユニット115に
セットしてそこに記憶した制御プログラムをプログラム
メモリ112に転送記憶することができるようになって
いる。鍵盤116は、発生すべき楽音の音高を指定する
ための複数の鍵を具えている。タッチ検出回路117は
鍵盤116で押圧された鍵のタッチを検出するためのも
のである。検出するタッチの種類は、イニシャルタッチ
あるいはアフタータッチのどちらでもよい。このタッチ
検出回路117で検出された鍵タッチデータは、音色、
音量、音高等の楽音要素を制御するために利用される。
鍵タッチデータを音色制御情報として利用する場合は、
フィルタ係数を制御してディジタルフィルタの特性を変
更するために使用される。 【0052】モジュレーションホイール118は音色制
御情報を発生するための手動操作子であり、この音色制
御情報はフィルタ係数の制御のために使用される。低周
波発振器119は、低周波信号をフィルタ係数の変調信
号として発生するものである。キースケーリングテーブ
ル120は、発生すべき楽音の音高に応じたキースケー
リングデータを発生するものであり、このキースケーリ
ングデータは音色制御情報としてフィルタ係数の制御の
ために使用される。フィルタエンベロープ発生器121
は、アタック、ディケイ、サステイン、レリース等の特
性からなるエンベロープ波形データを押鍵に応じて発生
するものであり、このエンベロープ波形データは音色制
御情報としてフィルタ係数の制御のために使用される。
操作パネル部122には、フィルタ関係の操作パネル1
23とその他種々の楽音設定・制御用スイッチ及び操作
子124が設けられている。フィルタ関係操作パネル1
23の一例を示すと、ディスプレイ230とカーソルス
イッチ231,232、フィルタエディットスイッチ2
33、テンキースイッチ234を含んでおり、フィルタ
係数の選択・設定に関連する操作を行うために使用され
る。 【0053】インタラプトタイマ125は各種設定デー
タの取り込みやフィルタ係数補間演算の基本タイミング
を設定するためのものであり、所定時間毎に(例えば1
0ms毎に)インタラプト信号をマイクロコンピュータ部
に与える。楽音信号発生回路127は、データ及びアド
レスバス126を介して与えられる押圧鍵の情報(キー
コードとキーオン信号)に基づき押圧鍵に対応する音高
を持つディジタル楽音信号を発生し、このディジタル楽
音信号をディジタルフィルタ128に入力してそのフィ
ルタ特性に従う音色制御を施すものである。楽音信号発
生方式としては、前述と同様に、どのようなタイプの楽
音信号発生方式を用いてもよい。なお、楽音信号発生方
式としてメモリ読出し方式を採用する場合、マイクロフ
ォン129を介して外部音を自由にサンプリングして波
形メモリに記憶し、サンプリングした外部音波形データ
を波形メモリから読み出すことによりディジタル楽音信
号を発生するようにするとよい。 【0054】ディジタルフィルタ128は、図1のディ
ジタルフィルタと同様に、上記ディジタル楽音信号とフ
ィルタ係数を入力し、このフィルタ係数によって設定さ
れるフィルタ特性に従って該入力楽音信号を制御する。
このディジタルフィルタ128の形式も前述したように
どのようなものでもよく、図2に示したような32次の
FIRフィルタを用いれば、設計のし易さ、安定性、楽
音制御向きである点、などの理由により好都合であるた
め、以下ではこれを用いているものとして説明する。な
お、前述では、対称位置にある次数同士はフィルタ係数
が同じ値であるため、全ての次数N(=32)のフィル
タ係数を準備することなく、0次から15次までの16
個のフィルタ係数を準備し、16次から31次までのフ
ィルタ係数は0次から15次までの対称位置関係にある
フィルタ係数を利用するものとして説明したが、以下の
実施例では、便宜上、0次から31次までの全てのフィ
ルタ係数を準備するものとして説明する。なお、FIR
フィルタの利点について付け加えると、安定性がよいた
め、補間によってフィルタ係数を密に発生させる場合に
おいても、補間したフィルタ係数に対応するフィルタ特
性がそのまま得られるので、有利である。楽音信号発生
回路127から出力されたディジタル楽音信号はディジ
タル/アナログ変換器130でアナログ信号に変換さ
れ、サウンドシステム131に与えられる。 【0055】次に、フィルタ関係操作パネル123を用
いたフィルタ係数の選択・設定操作の一例につき概略を
説明する。まず、フィルタエディットスイッチ233を
オンすると、ディスプレイ230は図11(a)のよう
な内容のフィルタエディットメニューの表示を行う。使
用者は、1〜4のエディットモードのうち所望の番号を
テンキースイッチ234で選択する。1番のパラメータ
セットモード(Parameter)を選択すると、デ
ィスプレイ230の画面が図11(b)のように変わ
る。このモードではディジタルフィルタの特性を設定す
るためのフィルタ係数をフィルタ係数メモリ114から
読み出すための条件及びそのフィルタ係数を可変制御す
るための各種条件を設定する。ディスプレイ230の上
段の設定項目「tbl」,「Dyn−axis」,「d
yn」,「fix」のうち所望の項目をカーソルスイッ
チ231,232の操作により選択し、選択した項目に
対応する所望の選択・設定データをテンキースイッチ2
34によって選択・設定する。ディスプレイ230にお
ける各設定項目「tbl」,「Dyn−axis」,
「dyn」,「fix」の下段には、該項目に対応して
選択・設定されたデータが表示される。各設定項目につ
いて次に説明する。 【0056】tbl: フィルタ係数メモリ114にお
けるフィルタ係数テーブルを選択する。ここで選択した
データは、フィルタ係数テーブルデータFTABLEと
してデータ及びワーキングRAM113内のレジスタに
登録される(図13参照)。 Dyn−axis: フィルタ係数テーブルにおけるX
−Y座標軸(図10参照)のうちどちらの座標軸の座標
データを音色制御情報に応じて可変制御するのかを選択
する。音色制御情報に応じて可変制御される座標軸をダ
イナミック軸ということにする。例えば、X軸をダイナ
ミック軸として設定する場合は、テンキースイッチ23
4で「0」を入力し、Y軸をダイナミック軸として設定
する場合は、テンキースイッチ234で「1」を入力す
る。ここで設定したデータは、ダイナミック軸データD
YNAXSとしてデータ及びワーキングRAM113内
のレジスタに登録される(図13参照)。 dyn: ダイナミック軸の座標データを指定する。こ
こで指定したデータは、ダイナミック軸基準座標データ
DYNとしてデータ及びワーキングRAM113内のレ
ジスタに登録される(図13参照)。 fix: ダイナミック軸でない方の座標軸(固定軸と
いうことにする)の座標データを指定する。ここで指定
したデータは、固定軸座標データFIXとしてデータ及
びワーキングRAM113内のレジスタに登録される
(図13参照)。 【0057】ダイナミック軸の座標データ及び固定軸の
座標データの指定は、テンキースイッチ234で所望の
座標値を夫々入力することにより行われる。図10を用
いて前述したように、フィルタ係数メモリ114の各テ
ーブル内に記憶した各フィルタ係数組にはX,Y軸の座
標データが夫々割当てられており、dyn及びfixの
項目で指定したダイナミック軸の座標データ及び固定軸
の座標データの組合せにより、1組のフィルタ係数が特
定される。なお、各フィルタ係数組が割当てられている
座標データの値を整数値とすると、ここで指定できるダ
イナミック軸の座標データ及び固定軸の座標データの値
は整数値に限らず、少数値を含んでいてもよい。指定し
た座標データが少数値を含んでいる場合、それに直接対
応するフィルタ係数はフィルタ係数メモリ114に記憶
されていないので、補間によってフィルタ係数を求める
ようにしている。この点につき説明を加えると、例え
ば、指定した座標データが(1,1)のように整数部の
みからなっているとすると、図12に示すように座標
(1,1)に対応する1組のフィルタ係数F11をフィ
ルタ係数メモリ114から読み出すことにより、この場
合は補間を行うことなく指定されたフィルタ係数を得る
ことができる。しかし、指定した座標データが(1,
1.5)のように少数部も含んでいると、図12に示す
ように座標(1,1)に対応する1組のフィルタ係数F
11と座標(1,2)に対応するもう1組のフィルタ係
数F12とをフィルタ係数メモリ114から読み出し、
両フィルタ係数組の間で各座標の少数値(0,0.5)
に応じた比率で補間を行うことにより、実際にはフィル
タ係数メモリ114に記憶されていない1組のフィルタ
係数を作成するのである。 【0058】図11(a)に戻り、2番のエンベロープ
セットモード(Envelope)を選択すると、ディ
スプレイ230の画面が図11(c)のように変わる。
このモードではフィルタ係数可変制御用のエンベロープ
波形を形成するための各種条件を設定する。ディスプレ
イ230の上段の設定項目「R1」,「R2」,「R
3」,「R4」,「L1」,「L2」,「L3」,「L
4」のうち所望の項目をカーソルスイッチ231,23
2の操作により選択し、選択した項目に対応する所望の
設定データをテンキースイッチ234によって設定す
る。ディスプレイ230における各設定項目「R1」,
「R2」,「R3」,「R4」,「L1」,「L2」,
「L3」,「L4」の下段には、該項目に対応して設定
されたデータが表示される。各設定項目について次に説
明する。通常知られたエンベロープ波形の各要素である
アタック、ディケイ、サステイン、レリースに関連し
て、「R1」はアタックレートを設定するもの、「R2」
はディケイレートを設定するもの、「R3」はサステイ
ンレートを設定するもの、「R4」はレリースレートを
設定するもの、「L1」はアタックレベルを設定するも
の、「L2」はディケイレベルを設定するもの、「L
3」はサステインレベルを設定するもの、「L4」はレ
リースレベルを設定するものである。ここで設定した各
項目R1〜L4のデータは、フィルタエンベロープ設定
データFENV(0)〜FENV(7)としてデータ及び
ワーキングRAM113内のレジスタに夫々登録される
(図13参照)。図9のフィルタエンベロープ発生器1
21では、このフィルタエンベロープ設定データFEN
V(0)〜FENV(7)に基づき、押鍵に応じて、エン
ベロープ波形データを発生する。 【0059】図11(a)に戻り、3番の低周波変調信
号セットモード(Lfo)を選択すると、ディスプレイ
230の画面が図11(d)のように変わる。このモー
ドでは低周波発振器119から発生する低周波変調信号
の各種条件を設定する。ディスプレイ230の上段の設
定項目「wave」,「speed」,「dela
y」,「depth」のうち所望の項目をカーソルスイ
ッチ231,232の操作により選択し、選択した項目
に対応する所望の選択・設定データをテンキースイッチ
234によって選択・設定する。ディスプレイ230に
おける各項目「wave」,「speed」,「del
ay」,「depth」の下段には、該項目に対応して
設定されたデータが表示される。各項目について次に説
明する。 wave: 低周波発振器119から発生する低周波変
調信号の波形を選択する。例えば、正弦波、三角波、鋸
歯状波、逆鋸歯状波、方形波の中から所望の波形を選択
する。ここで選択したデータは、低周波波形データWA
VEとしてデータ及びワーキングRAM113内のレジ
スタに登録される(図13参照)。 speed: 低周波発振器119から発生する低周波
変調信号のスピード(周波数)を設定する。ここで設定
したデータは、低周波スピードデータSPEEDとして
データ及びワーキングRAM113内のレジスタに登録
される(図13参照)。 delay: 押鍵開始時から低周波発振器119の発
振が開始する時までの遅れ時間を設定する。ここで設定
したデータは、低周波発振遅れ時間データDELAYと
してデータ及びワーキングRAM113内のレジスタに
登録される(図13参照)。 depth: 低周波発振器119から発生する低周波
変調信号の振幅(すなわち変調度若しくは深さ)を設定
する。ここで設定したデータは、低周波振幅データDE
PTHとしてデータ及びワーキングRAM113内のレ
ジスタに登録される(図13参照)。 【0060】図9の低周波発振器119では、低周波変
調信号用の各設定データWAVE〜DEPTHに基づき
低周波変調信号を発生する。図11(a)に戻り、4番
のキースケーリングセットモード(Scale)を選択
すると、ディスプレイ230の画面が図11(e)のよ
うに変わる。このモードではキースケーリングテーブル
120における複数のキースケーリングカーブのうち所
望の1つを選択する。ここで選択したデータは、キース
ケーリングカーブセレクトデータKYSCVとしてデー
タ及びワーキングRAM113内のレジスタに登録され
る(図13参照)。このキースケーリングカーブセレクト
データKYSCVに対応するキースケーリングカーブが
キースケーリングテーブル120において選択的に読出
し可能となり、このキースケーリングカーブにおける押
圧鍵の音高(または音域)に対応するキースケーリング
データが該テーブル120から読み出される。 【0061】マイクロコンピュータ部によって実行され
る処理のうち、この発明に関連する処理のフローチャー
トの一例が図14〜図17に示されている。この処理に
関連して使用されるデータ及びワーキングRAM113
内の記憶内容の一例が図13に示されている。KCOD
Eは、キーコードであり、鍵盤116(図9)で押圧さ
れた鍵を示すものである。TDATAは、タッチデータ
であり、タッチ検出回路117(図9)で検出された鍵
タッチを示すものである。WHEELDは、モジュレー
ションホイールデータであり、モジュレーションホイー
ル118(図9)における操作量に応じたデータであ
る。各データFTABLE〜KYSCVは前述した通り
のものである。EGDATAは、エンベロープ波形デー
タであり、フィルタエンベロープ発生器121(図9)
から発生したフィルタ係数制御用エンベロープ波形デー
タの現在値を示すものである。 【0062】LFODATは、低周波変調信号データで
あり、低周波発振器119(図9)から発生した低周波
変調信号の現在値を示すものである。KYSDATは、
キースケーリングデータであり、キースケーリングテー
ブル120(図9)から押圧鍵の音高(または音域)に
対応して読み出したキースケーリングデータの現在値を
示すものである。DYNDATは、ダイナミック軸座標
データであり、ダイナミック軸の現在の座標値を示すも
のである。XAXISは、X軸座標データであり、X軸
の現在の座標値を示すものである。YAXISは、Y軸
座標データであり、Y軸の現在の座標値を示すものであ
る。ダイナミック軸に該当するX軸又はY軸の一方の座
標データXAXIS又はYAXISは、ダイナミック軸
座標データDYNDATと同じ内容であり、固定軸に該
当する方の座標データXAXIS又はYAXISが固定
軸座標データFIXと同じ内容である。 【0063】X軸座標データXAXISとY軸座標デー
タYAXISとの組合せにより、フィルタ係数メモリ1
4から読み出すべきフィルタ係数が特定される。その場
合、一方の軸の座標データXAXIS又はYAXISは
前述のように固定軸座標データFIXと同じであり、こ
れは前述のようにフィルタ関係操作パネル123を使用
したパラメータセットモード(図11(b)参照)のと
きの処理によって指定されたものである。一方、ダイナ
ミック軸座標データDYNDATに相当する他方の軸の
座標データXAXIS又はYAXISは、次のように、
各種音色制御情報によって変更制御されたものである。
フィルタ関係操作パネル123の操作によって任意に指
定したダイナミック軸基準座標データDYNを、タッチ
データTDATA、モジュレーションホイールデータW
HEELD、エンベロープ波形データEGDATA、低
周波変調信号データLFODAT及びキースケーリング
データKYSDATによって変調する演算を行い、その
演算結果をダイナミック軸座標データDYNDATとす
る。各データTDATA、WHEELD、EGDAT
A、LFODAT及びKYSDATは、小数部を含んで
いてもよいものであり、変調演算によって得られるダイ
ナミック軸座標データDYNDATも小数部を含むもの
となることがある。前述のように、フィルタ係数メモリ
114においては小数部を含む座標値に直接的に対応す
るフィルタ係数は割当てられていないため、その場合は
補間演算を行うことにより小数部を含む座標値に対応す
るフィルタ係数を求める。なお、ダイナミック軸基準座
標データDYNを、音色制御情報としての各データTD
ATA、WHEELD、EGDATA、LFODAT及
びKYSDATにより変調若しくは変更するための演算
は、加算、減算、乗算、除算等どのような演算であって
もよい。例えば、加算及び減算を用いるものとする。 【0064】COEFA及びCOEFBは補間演算用係
数レジスタであり、補間演算の対象となる2つのフィル
タ係数を各レジスタCOEFA,COEFBに夫々記憶
する。補間演算は、補間の対象となる2組のフィルタ係
数における同じ次数の係数の間で行われる。レジスタC
OEFA,COEFBには、そのとき補間演算を行おう
とする次数のフィルタ係数が記憶される。COEFD
(0)〜COEFD(31)は、フィルタ係数レジスタであ
り、フィルタ係数メモリ114からの読出し及び補間演
算等によって最終的に求められた各次数毎(0次から3
1次)のフィルタ係数データを記憶するものである。こ
のフィルタ係数レジスタCOEFD(0)〜COEFD(3
1)に記憶している各次数毎のフィルタ係数データがディ
ジタルフィルタ128に供給され、該フィルタの特性を
決定する。 【0065】図14はメインルーチンであり、「フィル
タ関係操作パネルスキャン処理」では、フィルタ関係操
作パネル123の各スイッチのオン・オフ検出走査を行
い、更に、この走査結果に応じて図11を参照して既に
説明したようなフィルタ係数の選択・設定操作に関連す
る処理を行い、選択・設定された各種データFTABL
E,DYNAXS,DYS,FIX,FENV(0)〜F
ENV(7),WAVE,SPEED,DELAY,DE
PTH,KYSCVをデータ及びワーキングRAM11
3内のレジスタに登録する。次の処理では、データ及び
ワーキングRAM113内に登録した低周波変調信号設
定用データWAVE,SPEED,DELAY,DEP
THを低周波発振器119(図中LFOと略記する)に
送出し、フィルタエンベロープ設定用データFENV
(0)〜FENV(7)をフィルタエンベロープ発生器12
1(図中フィルタEGと略記する)に送出する。 【0066】次の処理では、鍵盤116及びその他の操
作子124のオン・オフ検出走査処理を行い、その結果
得た楽音形成に必要なデータを楽音信号発生回路127
(図中TGと略記する)に送出する。鍵盤116の各鍵
に関するオン・オフ検出走査処理の過程で新たな押鍵が
検出されたとき、図15に示す「ニューキーオンイベン
トルーチン」が実行される。なお、説明の簡単化のため
に、図15に示す実施例では、新たな押圧鍵に対応する
楽音を単音優先方式で発音する場合を想定してプログラ
ムが組んであるものとする。また、メインルーチンの途
中で、インタラプトタイマ125からインタラプト信号
が与えられるたびに定期的に図17に示す「タイマイン
タラプトルーチン」が実行される。 【0067】図15に示す「ニューキーオンイベントル
ーチン」において、まず、新たな押圧鍵のキーコードを
KCODEとして登録する(ステップ140)。次に、そ
の新たな押鍵に対応してタッチ検出回路117で検出さ
れた鍵タッチデータをTDATAとして登録する(ステ
ップ141)。次のステップ142では、エンベロープ
波形データEGDATAとして初期値「0」をセットす
ると共に、フィルタエンベロープ発生器121にキーオ
ン信号KONとして鍵押圧を示す“1”を送出する。な
お、エンベロープ波形データEGDATAの初期値は
「0」に限らず、ほかの値でもよい。フィルタエンベロ
ープ発生器121では、キーオン信号KONとして
“1”が与えられると、エンベロープ波形データの発生
を開始する。 【0068】次のステップ143では、低周波変調信号
データLFODATとして初期値「0」をセットすると
共に、低周波発振器119にスタート命令を与える。低
周波発振器119はこのスタート命令に応じて発振動作
を開始する。但し、前述のデータDELAYによって設
定された遅れ時間経過後に実際の発振動作が開始する。
次のステップ144では、キースケーリングカーブセレ
クトデータKYSCVに応じたキースケーリングカーブ
をキースケーリングテーブル120で選択し、この選択
されたキースケーリングカーブにおけるキーコードKC
ODEの音高に対応するキースケーリングデータを該キ
ースケーリングテーブル120から読み出す。読み出し
たキースケーリングデータはKYSDATとして登録す
る。 【0069】次のステップ145では、モジュレーショ
ンホイール118の操作出力を取り込み、モジュレーシ
ョンホイールデータWHEELDとして登録する。次の
ステップ146では、ダイナミック軸基準座標データD
YNに対して、タッチデータTDATA、モジュレーシ
ョンホイールデータWHEELD及びキースケーリング
データKYSDATを演算して該座標データDYNを可
変制御し、その演算結果をダイナミック軸座標データD
YNDATとして登録する。なお、このときエンベロー
プ波形データEGDATAと低周波変調信号データLF
ODATを演算に加えない理由は、両データの初期値を
「0」としたからである。「0」以外の初期値の場合
は、このデータを演算に加えてもよい。次に、「フィル
タ係数演算サブルーチン」を実行する。 【0070】「フィルタ係数演算サブルーチン」の一例
は図16に示されている。ここでは、まず、ダイナミッ
ク軸データDYNAXSが“1”であるかどうかを調べ
る(ステップ147)。“1”であれば、ダイナミック
軸はY軸であり、ステップ148に行き、前ステップ1
46で求めたダイナミック軸座標データDYNDATを
Y軸座標データYAXISとして登録すると共に、前述
の「フィルタ関係操作パネルスキャン処理」のときに指
定した固定軸座標データFIXをX軸座標データXAX
ISとして登録する。“1”でなければ、ダイナミック
軸はX軸であり、ステップ149に行き、前ステップ1
46で求めたダイナミック軸座標データDYNDATを
X軸座標データXAXISとして登録すると共に、固定
軸座標データFIXをY軸座標データYAXISとして
登録する。次のステップ150では、次数レジスタCの
内容を「0」にセットする。この次数レジスタCの内容
は、今現在演算によって求めるべきフィルタ係数の次数
を指示する。 【0071】次のステップ151では、フィルタ係数メ
モリ114におけるフィルタ係数テーブルのうち前述の
「フィルタ関係操作パネルスキャン処理」のときに設定
したフィルタ係数テーブルデータFTABLEにより指
示されたフィルタ係数テーブルを選択し、この選択され
たテーブルにおけるX軸座標データXAXISおよびY
軸座標データYAXISの夫々の整数部によって指示さ
れたX,Y座標値に該当する1組のフィルタ係数を特定
し、この1組のフィルタ係数における次数レジスタCに
よって指示された次数のフィルタ係数を読み出す。こう
して読み出される或る次数のフィルタ係数を、図中では
FCOEF{FTABLE,C,(XAXIS)I,(Y
AXIS)I}で示す。こうして読み出した或る次数の
フィルタ係数を、一方の補間演算用係数レジスタCOE
FAに記憶する。 【0072】次のステップ152では、ステップ147
と同様に、ダイナミック軸データDYNAXSが“1”
であるかどうかを調べ、“1”であればステップ153
に行き、“0”であればステップ154に行く。ステッ
プ153では、データFTABLEにより指示されたフ
ィルタ係数テーブルにおいて、X軸座標データXAXI
Sの整数部(XAXIS)IとY軸座標データYAXIS
の整数部(YAXIS)Iより1大きいY軸座標値(YA
XIS)I+1とにより1組のフィルタ係数を特定し、
この1組のフィルタ係数における次数レジスタCによっ
て指示された次数のフィルタ係数を読み出す。こうして
読み出される或る次数のフィルタ係数を、図中ではFC
OEF{FTABLE,C,(XAXIS)I,(YAX
IS)I+1}で示す。こうして読み出した或る次数の
フィルタ係数を、他方の補間演算用係数レジスタCOE
FBに記憶する。この場合、Y軸がダイナミック軸であ
るため、Y軸に沿う補間を行うのである。 【0073】一方、ステップ154では、データFTA
BLEにより指示されたフィルタ係数テーブルにおい
て、X軸座標データXAXISの整数部(XAXIS)I
より1大きいX軸座標値(XAXIS)I+1とY軸座標
データYAXISの整数部(YAXIS)Iとにより1組
のフィルタ係数を特定し、この1組のフィルタ係数にお
ける次数レジスタCによって指示された次数のフィルタ
係数を読み出す。こうして読み出される或る次数のフィ
ルタ係数を、図中ではFCOEF{FTABLE,C,
(XAXIS)I+1,(YAXIS)I}で示す。こうし
て読み出した或る次数のフィルタ係数を、他方の補間演
算用係数レジスタCOEFBに記憶する。この場合、X
軸がダイナミック軸であるため、X軸に沿う補間を行う
のである。次のステップ155では、X軸座標データX
AXISとY軸座標データYAXISのうちダイナミッ
ク軸に該当する方の座標値の小数部をパラメータとし
て、レジスタCOEFA,COEFBに記憶したフィル
タ係数の間を補間する演算を行う。この補間演算により
求めたフィルタ係数を次数レジスタCにより指示された
次数に対応するフィルタ係数レジスタCOEFD(C)
(COEFD(0)〜COEFD(31)のいずれか)に登録
する。なお、この補間演算の関数は、直線補間であって
もよいし、その他の適宜の曲線(例えば、2次曲線ある
いは補間関数メモリに予め記憶した任意の補間曲線)で
あってもよい。 【0074】次に、次数レジスタCの内容を1増加し
(ステップ156)、その値が最大次数31よりも大で
あるかを調べる(ステップ157)。まだ最大次数31
を超えていない場合はステップ151に戻り、前述と同
様の処理を次のフィルタ次数に関して行う。こうしてス
テップ151〜57の処理の繰返しにより、全ての次数
のフィルタ係数を求め終えると、ステップ157はYE
Sとなり、ステップ158に行く。ステップ158で
は、フィルタ係数レジスタCOEFD(0)〜COEFD
(31)に記憶されている全次数のフィルタ係数データをデ
ィジタルフィルタ128に送出する。図15に戻り、フ
ィルタ係数演算サブルーチンを終えると、ステップ15
9に行き、新たな押圧鍵のキーコードKCODEとキー
オン信号KONを楽音信号発生回路127に送出する。 【0075】図17の「タイマインタラプトルーチン」
について説明すると、まず、ステップ160では現在発
音中であるかを調べる。発音中であればステップ161
に行くが、発音中でなければリターンに行く。ステップ
161では、フィルタエンベロープ発生器121で現在発
生しているエンベロープ波形データを取り込み、EGD
ATAとして登録する。次のステップ162では、低周
波発振器119で現在発生している低周波変調信号デー
タを取り込み、LFODATとして登録する。次のステ
ップ163では、前述のステップ145と同様に、モジ
ュレーションホイール118の操作出力を取り込み、モ
ジュレーションホイールデータWHEELDとして登録
する。次のステップ164では、ダイナミック軸基準座
標データDYNに対して、タッチデータTDATA、モ
ジュレーションホイールデータWHEELD,エンベロ
ープ波形データEGDATA,低周波変調信号データL
FODAT及びキースケーリングデータKYSDATを
演算して該座標データDYNを可変制御し、その演算結
果をダイナミック軸座標データDYNDATとして登録
する。 【0076】次に図16の「フィルタ係数演算サブルー
チン」を実行し、これにより、補間演算によりフィルタ
係数データを求め、求めたフィルタ係数データをディジ
タルフィルタ128に送出する。図12のようなフイル
タ係数テーブルが選択されていると仮定して、フィルタ
係数の選択及び補間演算の一例につき説明する。なお、
図12では、理解を容易にするために、各フィルタ係数
組F00〜F22の座標位置に該フィルタ係数組によっ
て実現されるフィルタ特性の図を略図にて配置した。こ
のフィルタ特性略図において横軸fは周波数、縦軸Lは
レベルである。ダイナミック軸データDYNAXSが
“1”であるとし(Y軸をダイナミック軸とする)、ダ
イナミック軸基準座標データDYNが「0」、固定軸座
標データFIXが「2」、に設定されているとする。こ
の場合、X軸座標データとして固定軸座標データFIX
に該当する「2」が指定され、Y軸座標データとしてダ
イナミック軸基準座標データDYNに該当する「0」が
初期指定されていることになる。これにより、X,Y座
標位置(2,0)に割当てられているフィルタ係数組F
20が選択される。 【0077】音色制御情報であるタッチデータTDAT
A、モジュレーションホイールデータWHEELD、エ
ンベロープ波形データEGDATA、低周波変調信号デ
ータLFODAT及びキースケーリングデータKYSD
ATによってダイナミック軸基準座標データDYNを変
調する演算を行い、その演算結果として得られたダイナ
ミック軸座標データDYNDATが例えば「0.3」で
あるとすると、Y軸座標データYAXISが「0.3」
に変更される。しかし、Y軸座標データYAXISの整
数部(YAXIS)Iは「0」と変わらず、フイルタ係
数テーブルから選択されるフィルタ係数組はX,Y座標
位置(2,0)に割当てられているF20であり、初期
設定したものと変わらない。しかし、Y軸座標データY
AXISの少数部「0.3」をパラメータとしてフィル
タ係数組F20とF21との間で補間演算が行われる。 【0078】すなわち、X,Y座標位置(2,0)に割
当てられているフィルタ係数組F20のフィルタ係数を
レジスタCOEFAに記憶し、Y軸座標データYAXI
Sの整数部(YAXIS)Iより1大きいY軸座標値
(YAXIS)I+1=「1」とX軸座標データXAX
ISの「2」によって特定されるX,Y座標位置(2,
1)に割当てられているフィルタ係数組F21をフイル
タ係数テーブルから選択してそのフィルタ係数をレジス
タCOEFBに記憶し、両レジスタCOEFA,COE
FBに記憶しているフィルタ係数の間でY軸座標データ
YAXISの少数部「0.3」をパラメータとして補間
演算を行うのである。こうして補間演算により作成され
たフィルタ係数によって実現されるフィルタ特性は、補
間対象となったフィルタ係数組F20,F21に対応す
る2つのフィルタ特性をY軸座標データYAXISの少
数部「0.3」の値に応じた比率で補間合成した特性で
ある。例えば、フィルタ係数組F20がローパスフィル
タ特性を実現し、F21がハイパスフィルタ特性を実現
するものであるとすると、音色制御情報である各データ
TDATA、WHEELD、EGDATA、LFODA
T、KYSDATの合成値の大きさに応じて、F20の
ローパスフィルタ特性により近い特性からF21のハイ
パスフィルタ特性により近い特性まで、フィルタ特性を
可変制御することができる。 【0079】上述のようにX,Y座標位置(2,0)に
割当てられているフィルタ係数組F20が初期指定され
た場合において、音色制御情報である各データTDAT
A、WHEELD、EGDATA、LFODAT、KY
SDATの合成値によってダイナミック軸基準座標デー
タDYNを変調する演算を行い、その演算結果として得
られたダイナミック軸座標データDYNDATが例えば
「1.2」のように整数部まで変わったとすると、Y軸
座標データYAXISが「1.2」に変更され、これに
伴い、Y軸座標データYAXISの整数部(YAXI
S)Iが「1」に変わり、フイルタ係数テーブルから選
択されるフィルタ係数組はX,Y座標位置(2,1)に
割当てられているF21に変わる。このフィルタ係数組
F21のフィルタ係数がフィルタ係数テーブルから読み
出され、レジスタCOEFAに記憶される。また、これ
に伴い、Y軸座標データYAXISの整数部(YAXI
S)Iより1大きいY軸座標値(YAXIS)I+1=
「2」とX軸座標データXAXISの「2」によって特
定されるX,Y座標位置(2,2)に割当てられている
フィルタ係数組F22がフイルタ係数テーブルから読み
出され、そのフィルタ係数がレジスタCOEFBに記憶
される。こうして、こんどは、フィルタ係数組F21と
F22との間でY軸座標データYAXISの少数部
「0.2」をパラメータとして補間演算が行われる。こ
うして補間演算により作成されたフィルタ係数によって
実現されるフィルタ特性は、補間対象となったフィルタ
係数組F21,F22に対応する2つのフィルタ特性を
Y軸座標データYAXISの少数部「0.2」の値に応
じた比率で補間合成した特性である。例えば、フィルタ
係数組F21がハイパスフィルタ特性を実現し、F22
がカットフ周波数が上記よりも高いハイパスフィルタ特
性を実現するものであるとすると、音色制御情報である
各データTDATA、WHEELD、EGDATA、L
FODAT、KYSDATの合成値の大きさに応じて、
F21に対応する比較的低いカットフ周波数のハイパス
フィルタ特性からF22に対応する比較的高いカットフ
周波数のハイパスフィルタ特性まで、フィルタ特性を可
変制御することができる 【0080】なお、図16のステップ152,153,
154では、ダイナミック軸に相当する軸の座標値を1
増加し、固定軸に該当する軸の座標値は1増加せずに、
対応するX,Y座標位置のフィルタ係数をレジスタCO
EFBに記憶するようにしているが、これに限らず、
X,Y両軸の座標値を夫々1増加して、対応するX,Y
座標位置のフィルタ係数をレジスタCOEFBに記憶す
るようにしてもよい。すなわち、FCOEF{FTAB
LE,C,(XAXIS)I+1,(YAXIS)I+1}
で示される或る次数のフィルタ係数を、補間演算用係数
レジスタCOEFBに記憶するようにしてもよい。その
場合は、「フィルタ関係操作パネルスキャン処理」のと
きに固定軸座標データFIXとして小数部を含むデータ
を設定すると、その小数部に対応して固定軸に沿うフィ
ルタ係数を補間することができる。 【0081】上記実施例では音色制御情報に応じて制御
される座標軸(ダイナミック軸)が1軸だけであるが、
これはX,Yの2軸であってもよい。そうすると、両軸
の座標データを同時に可変制御した場合、フィルタ係数
テーブルの座標上における選択されるべきフィルタ係数
の移動方向は1軸のみに沿う方向ではなく、座標面上斜
めの方向あるいは円を描くような方向など、任意に設定
できる。また、上記実施例ではダイナミック軸は鍵タッ
チ、キースケーリング、エンベロープ波形等のどの音色
制御要素に対しても共通であるが、各音色制御要素の種
類毎に独立にダイナミック軸を選定することができるよ
うにしてもよい。その場合は、各音色制御要素の種類毎
にダイナミック軸として選定したX軸及びY軸毎に別々
に、対応する音色制御情報の合成演算及びそれに応じた
座標データ変更演算を行うものとする。そのようにする
と、更に複雑なフィルタ制御が可能になる。上記実施例
ではフィルタ係数テーブルは演奏者により任意に選択す
るようになっているが、音色選択操作に応じて適切なフ
ィルタ係数テーブルを自動選択するようにしてもよい。
また、ダイナミック軸の選択とダイナミック軸座標デー
タの設定と固定軸座標データの設定とを演奏者により任
意に行うことにより、X,Y座標データの指定が演奏者
により任意に行われるようになっているが、これも音色
選択操作等に応じて適切なデータが自動選択されるよう
にしてもよい。 【0082】また、図9の実施例においても補間演算等
はソフトウェア処理によって実行されているが、これも
専用のハードウェア回路によって実行するようにしても
よい。また、上述の実施例では、低周波発振器119や
フィルタエンベロープ発生器121は専用のハードウェ
ア回路によって構成されているが、これをソフトウェア
処理によって実現するようにしてもよい。上述の実施例
ではキースケーリングデータの発生はキースケーリング
テーブル120から読み出すことにより行うようになっ
ているが、これに限らず、キーコードに応じて所定の演
算を行うことにより押圧鍵に対応するキースケーリング
データを発生するようにしてもよい。 【0083】また、図9の実施例においても、単音楽器
のみならず複音楽器にも適用できるのは勿論である。そ
の場合は、フィルタエンベロープ発生器121は、各楽
音発生チャンネル毎にエンベロープ波形データを発生す
るようにする。また、図9の実施例においても、楽音信
号処理装置を具えたユニットに対して鍵盤116及びタ
ッチ検出回路117は別ユニットとなっていてもよく、
その場合は、MIDI規格によりデータを授受するもの
とする。また、この発明は音階音の楽音信号処理に限ら
ず、リズム音やその他の音の信号処理にも適用すること
ができる。また、上記実施例ではフィルタ係数テーブル
における座標軸は2軸である(2次元座標である)が、
3軸(3次元座標)であってもよいし、また、1軸(1
次元座標)であってもよい 【0084】 【発明の効果】以上の通り、この発明によれば、フィル
タ係数を補間により発生するようにしたので、予め準備
するフィルタ係数の量を増すことなく、音色制御内容に
応じて密にフィルタ係数を発生することができるように
なり、これによりディジタルフィルタを用いた音色制御
において比較的簡単な装置構成により豊富なフィルタ特
性を実現し、豊富な音色変化制御を実現することができ
るようになる、という優れた効果を奏する。また、この
発明によれば、フィルタ係数記憶手段から読み出すべき
フィルタ係数を、基本的には、基準値データにより概ね
指定するので、この基準値データの任意の設定によって
多様なバリエーションでフィルタ係数記憶手段の記憶内
容を利用することができ、これによっても豊富な音色変
化制御を実現することができるようになる、という優れ
た効果を奏する。すなわち、フィルタ係数の選択を変化
に富んだ態様で容易に行うことができるようになり、こ
れにより、より一層複雑なディジタルフィルタ特性制御
を比較的簡単に行うことができるようになる、という優
れた効果を奏する。 【0085】更に、この発明によれば、フィルタ係数を
指定するための指定情報を読み出して、この指定情報に
よりフィルタ係数記憶手段を読み出すようにした間接読
出し方式からなっており、フィルタ係数記憶手段に記憶
したフィルタ係数を、異なる音色情報によって、間接的
に共通に読出して利用することができ、相対的にフィル
タ係数記憶手段に記憶するフィルタ係数の数を減らすこ
とができるものであり、フィルタ係数記憶容量を相対的
に減らすことができる、という優れた効果を奏する。ま
た、フィルタ係数指定情報記憶手段において記憶される
前記指定情報は、楽音信号の音色毎であって、かつ楽音
信号の音域およびタッチの少なくとも一方毎に、夫々記
憶されているものであり、かつ、これらの指定情報の中
には、異なる音色、音域あるいはタッチについて共通の
フィルタ係数を指定するものが含まれているので、これ
により、フィルタ係数を読み出すための独立変数の多さ
に比較して、フィルタ係数記憶容量を相対的に減らすこ
とができることになり、楽音信号の音色毎であってかつ
楽音信号の音域およびタッチの少なくとも一方毎に指定
情報を記憶させたことによって音色制御の多様性を高め
ることができる(フィルタ係数を読み出すための独立変
数を多様にする)一方で、フィルタ係数記憶容量はそれ
ほど増すことのないようにすることができる、いう優れ
た効果を奏する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention
Music signal processing device using
Abundant filters by creating filter coefficients
It relates to the fact that characteristics can be realized. 2. Description of the Related Art A digital audio signal for controlling a tone signal is provided.
By changing the filter coefficient of the filter
An electronic musical instrument that realizes color change over time is disclosed in
No. 60-52895. Where,
Filter coefficients stored in memory for a given time frame
And stores the corresponding file from the memory for each time frame.
Read the filter coefficients and input them to the digital filter
In this way, the filter coefficient can be switched in frame units.
And change the filter characteristics on a frame-by-frame basis.
I'm trying. Also, for key touch, key scaling, etc.
Let's variably control the filter characteristics for appropriate tone control
In the past, for each filter characteristic that can be realized,
Should filter coefficients be stored in memory in advance
Was. [0003] However, the prior art described above
In surgery, the filter coefficients change during one time frame
Not so, the time length of one time frame is relatively long
In that case, the tone change during that time cannot be obtained and it becomes monotonous.
There was a problem that. Also the change of time frame
Tone change due to sudden change of filter coefficient by eyes
There was also a problem that it became unnatural. One time frame
If you shorten the time length of the
Although it is possible to do so,
There is a problem that the capacity of the moly increases. Also,
Perform tone control according to key touch, key scaling, etc.
If you try to perform rich tone change control,
A large number of sets of filter coefficients are stored in memory in advance.
And the capacity of the filter coefficient memory increases.
Problem arises. The present invention has been made in view of the above points.
To increase the amount of filter coefficients prepared in advance.
Abundant filter characteristics are realized.
Tone signal processing device capable of realizing accurate tone change control
To provide a device. [0004] To solve the above problems,
Music signal processing apparatus according to the present invention according to the first aspect of the present invention
Inputs the tone signal and the filter coefficient, and
Data for controlling the input tone signal in accordance with the characteristic corresponding to the coefficient.
Digital filter means and desired filter characteristics
Filter coefficient storage means storing a plurality of sets of filter coefficients
Stage and the filter to be read from the filter coefficient storage means.
Criteria for setting reference value data for specifying the filter coefficient
Value data setting means and control data for variably controlling the tone color.
Control data generating means for generating data;
Data and control data, and as a result of the
Calculating means for obtaining filter coefficient calculation data;
Filtering a plurality of filter coefficients according to operation data
It reads out from the coefficient storage means and the plurality of read out
Filter coefficients are interpolated according to the filter coefficient calculation data
And the filter coefficients obtained by interpolation are
Filter coefficient interpolating means to be applied to the filter means.
Things. According to the tone signal processing apparatus having the above-mentioned structure,
For example, a plurality of sets of filter
The number is stored in the filter coefficient storage means.
The filter coefficients to be read from the filter coefficient storage means are based on
Basically, the reference value set by the reference value data setting means
Specified by value data. Separate from this reference value data
The control data for variably controlling the tone is
Generated by the data generating means. In the calculation means, the reference
Calculates the value data and control data, and calculates
Thus, filter coefficient calculation data is obtained. Thus, the reference value
The filter coefficient is the data changed by the control data.
Obtained as operation data. This filter coefficient calculation data
A plurality of filter coefficients are stored according to the filter coefficient storage means.
From the filter coefficient calculation data.
As the inter-parameter, the plurality of read filter
The filter coefficients obtained by interpolation are
Digital filter means. Thus, the reference value
By calculating the data and control data, in other words, both
, The filter coefficients to be read and
Filter coefficients to determine the interpolation parameters
Calculation data and generate filter coefficients based on interpolation calculation
I am trying to do it. Therefore, according to the present invention, the interpolation calculation
Generates precise filter coefficients according to the tone control content.
Can be stored in the filter coefficient storage means in advance.
Without increasing the amount of filter coefficients to keep in mind,
Filter characteristics, which allows for rich tone change control.
It can be realized. Also, filter coefficients
Basically, filter coefficients to be read from the storage means
Is generally specified by the reference value data.
Various variations are available depending on the data settings.
The storage contents of the filter coefficient storage means can be used,
This also enables rich tone change control.
I will be able to. According to a second aspect for solving the above problems,
The musical sound signal processing device according to the present invention includes a musical sound signal and a filter.
Input the filter coefficient and obtain the characteristic according to the filter coefficient.
Therefore, a digital filter means for controlling the input tone signal is provided.
And a filter section for storing a plurality of sets of filter coefficients, respectively.
Number storage means, and for each tone of the tone signal,
Filter for at least one of range and touch
Filter coefficient specification information that stores specification information for specifying coefficients
Information storage means, wherein the designated information includes different timbres,
Common filter coefficient can be specified for area or touch
Timbre information indicating the tone of the musical tone to be generated
Range information indicating the range of the tone signal to be generated and
At least one of touch information indicating a touch of a musical tone to be generated
The information generating means to generate, and the information generating means
At least two sets of filter coefficients according to the information generated
The designation information for designating the filter coefficient designation information
Read from the storage means and filter based on this specified information
A filter for reading coefficients from the filter coefficient storage means
A coefficient reading means and a control signal for controlling a tone
From the control signal generating means,
Using the generated control signal as an interpolation parameter,
The at least two sets read by the filter coefficient reading means.
Filter coefficients obtained by interpolation
A filter section for providing coefficients to the digital filter means
It is provided with number interpolation means. According to the tone signal processing apparatus having the above-mentioned structure,
For example, a filter coefficient that stores a plurality of sets of filter coefficients
Designation information that specifies not only storage means but also filter coefficients
Also has filter coefficient designation information storage means for storing
I have. This filter coefficient designation information storage means stores the tone signal
Of the tone signal and the range of the touch
Specification information that specifies the filter coefficient for at least one of each
Where the specified information is a different
Common filter for tone, range or touch
A number can be specified. From the information generation means,
Tone information indicating the tone of the musical tone to be generated,
Range information indicating the range of the sound signal and the type of musical tone to be generated.
At least one of the touch information indicating the switch is generated.
You. According to the information generated by this information generating means
In both cases, the specification information for specifying two sets of filter coefficients is not
Read from the filter coefficient specification information storage means, and
Filter coefficients are stored from the filter coefficient storage means based on the information.
Is read. At least two sets of
Filter coefficient interpolates control signal for tone change control
Interpolated parameters obtained as parameters
The filter coefficients are used in the digital filter means. Therefore, also in this case, by the interpolation operation,
Generates precise filter coefficients according to the tone control
Can be stored in the filter coefficient storage means in advance.
Without having to increase the amount of filter coefficients
Filter characteristics, which enables rich tone change control.
Will be able to manifest itself. Also, depending on the timbre information
Instead of reading the filter coefficient storage means directly,
Read the specified information for specifying the filter coefficient, and
Read the filter coefficient storage means according to the specified information
The indirect read method is used. This allows
Filter coefficients stored in the filter coefficient storage means
It can be read and used indirectly in common with tone information.
Can be relatively stored in the filter coefficient storage means.
The number of filter coefficients can be reduced.
It is said that the storage capacity of the Luta coefficient can be relatively reduced.
It has excellent effects. This effect is due to the filter coefficient interpolation
Coupled with the relative reduction of filter coefficient storage capacity due to
To further reduce the filter coefficient storage capacity
You. Further, the filter coefficient designation information storage means stores
The specified information stored for each tone color of the tone signal is stored.
And at least one of the range and touch of the tone signal.
Are stored for each person, and
Some of the specified information includes different tones,
Includes those that specify common filter coefficients for
It is also characterized by. That is, one tone
Each of the plurality of ranges and / or each of the plurality of touches
Correspondingly, a plurality of designated information is stored,
Are stored for each tone.
However, many such designations are all completely separate files.
It is not necessary to specify the filter coefficient.
Data factor can be specified.
The information may specify common filter coefficients. this
The number of independent variables for reading out the filter coefficients
Can reduce the filter coefficient storage capacity relatively
That is, for each tone of the tone signal and
Designated for at least one of musical range and touch
Increased versatility of tone control by storing information
(Independent variable for reading out the filter coefficients)
While the filter coefficient storage capacity is
It can be said that it does not increase so much
It has the effect. The control signal generated by the control signal generating means is
Signals include time elapsed, manual control output, envelope
Waveform data, low frequency modulation signal, and key touch and pitch
Or, do not include it in the readout
Tone control based on some tone control elements
It may be your information. For example, filter characteristics
Try to achieve time-varying timbre by changing
The filter coefficient supply means in different time frames.
It is also possible to supply each filter coefficient correspondingly.
No. In that case, the control signal generation means
A control signal whose value changes may be generated.
As a result, the filter coefficient interpolation means
Filling of different time frames supplied by feeding means
Control, which is a time-varying interpolation parameter
Interpolate according to the signal. As a result, the interpolation output
The filter coefficient supplied to the digital filter is a certain time
Another time frame from the filter coefficients corresponding to the frame
Up to the filter coefficient corresponding to
The value of the crab changes, resulting in a smooth temporal change in tone.
You. Further, the filter characteristic is changed with time.
Use the filter coefficient interpolation method even when it is not necessary.
Can be used. For example, fill
By variably controlling the sound characteristics, the sound
When performing color change control, filter coefficient supply means
Filter coefficients prepared in advance by
Filter coefficient corresponding to a key
That there are only at least two sets of filter coefficients
Even the control signal according to the degree of multi-step key touch during that
A control signal is generated from the generating means, and this control signal is interpolated.
By performing filter coefficient interpolation as a parameter.
To obtain precise filter coefficients according to the multi-step key touch.
Rich tone change control according to key touch
Can be realized. The control signal is pitch or range,
Manual control output, envelope waveform data, low frequency modulation
Signals generated based on other tone control elements such as signals
The same applies to the case. BRIEF DESCRIPTION OF THE DRAWINGS FIG.
The embodiments of the present invention will be described in detail. FIG. 1 illustrates the present invention.
Shows the hardware configuration of one embodiment of an applied electronic musical instrument
In this embodiment, the filter corresponding to different time frames is used.
Fill by interpolating the filter coefficients over time
The time characteristic of the data characteristic is changed. This
In the electronic musical instrument of the embodiment, the CPU (central processing unit) is used.
) 11, program ROM (read only memo)
12) and data and working RAM (random
Microcomputer unit 10 including access memory 13
Various operations including interpolation of filter coefficients
Processing is controlled. The basics of filter coefficient interpolation calculation
Timer counter 14 for setting the timing
It is provided in the microcomputer section 10. This Thailand
The counter 14 is activated at a predetermined time by a predetermined clock pulse.
It is incremented every interval (for example, every 2 ms). The keyboard 15 designates a pitch of a musical tone to be generated.
Have multiple keys to do. Touch detection circuit 16
Is used to detect the touch of a key pressed on the keyboard 15.
For example, a key touch is detected with a 32-step resolution.
You. The type of touch to be detected is the initial touch or
May be either aftertouch. Filter modus
Switch 17 has one of two filter coefficient interpolation modes.
Or to choose. In this example,
The interpolation of the filter coefficient is performed in one of the following two modes.
Can be performed selectively,
Mode selection is performed by the filter mode switch 17.
U. The first mode (this is called mode "0")
), Two files corresponding to adjacent time frames
An interpolation operation is performed based on the difference between the filter coefficients. Second mode
(This is called mode “1”).
At least one of the two filter coefficients corresponding to the
An interpolation operation is performed based on the coefficient difference value prepared in advance.
Details of these modes will become clear later. Operation panel
A tone selection switch 19 and various other music
A switch for sound setting / control and an operator are provided. The filter parameter memory 20 has a plurality of
A set of filter coefficients corresponding to a time frame is stored in advance.
The set of such filter coefficients is
Timbre, pitch, key touch, etc.
I remember a lot. Selected by the tone selection switch 19
The selected tone type, the pitch of the key pressed on the keyboard 15, and
Key touch of the pressed key detected by the touch detection circuit 16
Filter coefficients corresponding to multiple time frames
When a set of filter coefficients consisting of
Filter coefficients corresponding to each time frame as time passes
Are sequentially read from the memory 20. Each read
The filter coefficient of the frame is calculated by the microcomputer unit 10.
Given to. In the microcomputer unit 10, the adjacent
Calculation to interpolate the filter coefficients of the time frame
Therefore, the interpolation output file obtained at each interpolation step
Filter coefficients via the data and address bus 21
The signal is supplied to the digital filter 23 in the signal generation circuit 22.
You. This filter parameter memory 20 is used for an electronic musical instrument.
The internal ROM may be built-in,
Removable by ROM or other external storage media
It may be a thing. The tone signal generating circuit 22 includes data and add
Information on the pressed key given via the
Key and key-on signal) to determine the pitch corresponding to the pressed key.
Generates a digital tone signal having
The signal is input to the digital filter 23 and the filter
It performs tone control according to characteristics. Tone signal generation
What type of tone signal generation method is used
May be. For example, the sound specified by the key code
Responds to phase address data that changes at a rate corresponding to high
The tone waveform sample value data stored in the waveform memory
Sequential reading method (memory reading method)
Predetermined phase address data as phase angle parameter data
Performs the frequency modulation operation of the tone waveform sample value data
(FM method) or the phase address data
Data as phase angle parameter data
Calculation of musical sound waveform sample value data by performing arithmetic
(AM system), or any other known system may be used.
No. When the memory reading method is used,
The tone waveform stored in the memory may be only a one-cycle waveform.
However, a multi-period waveform is preferable because sound quality can be improved.
Good. Store multiple cycle waveforms in waveform memory and read them
For example, Japanese Patent Laid-Open Publication No.
And store the entire waveform from the start to the end
One time reading method or Japanese Patent Application Laid-Open No. 58-14239.
As shown in No. 6, the multi-period waveform of the attack part and its duration
One or more periodic waveforms of the part are stored, and the waveform of the attack part is stored.
A method of repeatedly reading the waveform of the sustained part after reading once,
Alternatively, as disclosed in JP-A-60-147793,
Stores and reads multiple discretely sampled waveforms
The waveform to be switched in time and
Various methods such as a method of repeatedly reading out waveforms are known.
And these may be appropriately adopted. Furthermore, such multiple
By reading the waveform memory that stores the periodic waveform,
As an example of a method for generating a digital sound signal of high quality
Is the one shown in Japanese Patent Application No. 61-86835.
Where the waveform data stored in the waveform memory is L
Data compression using a method such as PC (linear prediction)
It is disclosed to save storage space. The digital filter 23 is provided with the digital
Input the tone signal and the filter coefficient obtained by interpolation,
According to the filter characteristics set by this filter coefficient
Thus, the input tone signal is controlled. This digital fill
The format of the data 23 may be any. Digital
The filter operation format is basically a finite impulse
Response (FIR) filter and infinite impulse response (II
R) filter, but if an FIR filter is used,
Such as ease of design, stability, and tone control.
It is convenient for a reason. In that case, set the filter coefficient to
Japanese Patent Application No. 60-2675 discloses a type that switches between the two.
No. 42, use the one as shown there
May be. The digital signal output from the tone signal generation circuit 22
The digital tone signal is converted by the digital / analog converter 24.
It is converted to a analog signal and given to the sound system 25.
It is. FIG. 2 shows the configuration as a 32nd-order FIR filter.
FIG. 4 is a basic circuit configuration diagram of a digital filter 23, in which x
(n) is an arbitrary n-th sample point in the input tone signal
Is digital tone waveform sample value data. (Equation 1) Is the unit time delay element, the time of one sampling cycle
This is to set a delay. Therefore, x (n-1) becomes n-1
Digital tone waveform sample value data at the th sample point
X (n-31) is the n-31st sample point
This is digital tone waveform sample value data. h (0) ~
h (31) is a 32nd-order filter coefficient. This filter
The triangular block with the input coefficients is a multiplying element,
Data x (n) to x of each sample point delayed by the delay element
Filter coefficients h (0) corresponding to (n-31) respectively
To h (31). The + sign to which the multiplication output is input
The blocks with additions are addition elements, and each multiplication output is added together.
To obtain an output signal y (n). One feature of such an FIR filter
Means that the phase characteristics can be linear.
You. Assuming a linear phase, there is a gap between the input and output waveforms of the filter.
Phase is completely linear, and the output waveform is distorted.
Does not occur. Therefore, signals of musical sounds, voices, audios, etc.
It is suitable for the filter processing of. Such linear phase characteristics
The necessary and sufficient conditions for an FIR filter with
Response is symmetric and impulse response is
Having the nomenclature means that the filter coefficients h (0) to h (3
1) has symmetry. That is, fill
By setting the data coefficient with symmetrical characteristics,
Phase characteristics can be realized. In this case,
The order at the nominal position has the same filter coefficient.
To prepare filter coefficients of all orders N (= 32).
There is no need, half of that is fine. For details, see this example
If N is an even number, 16 flags from the 0th to the 15th order
Filter coefficients need only be prepared.
The filter coefficients have a symmetrical positional relationship from the 0th order to the 15th order.
A filter coefficient may be used. Therefore, this embodiment
Then, actually 16 filters from the 0th to the 15th order
A coefficient is generated, and this is directly used as a 0th to 15th order coefficient.
Used as filter coefficients and folded back to be symmetric
The filter coefficients from the 16th order to the 31st order in the positional relationship
Even try to use. Other features of the FIR filter include:
Stability is good because there is no feedback loop
There are features. That is, like a IIR filter,
If there is a feedback loop, problems such as oscillation will occur.
Problems such as oscillation do not occur in the IR filter, and the design is easy.
is there. Also, as in the present invention, the filter characteristics are temporally changed.
The FIR filter is advantageous even when changing
You. In this case, in the past, it was
You have to prepare a set of filter coefficients for each
However, if you do so, the time variation of the filter characteristics
Requires a large set of filter coefficients to
As already mentioned. To solve this problem, the present invention
Are two sets of (two-frame)
Filter coefficients are prepared and complemented between the two sets of filter coefficients.
By doing so, you can filter over time
Generate a set of coefficients densely and thus generate by interpolation
Filter characteristics that fluctuate over time due to the filtered filter coefficients
Is set. In this way, interpolation of filter coefficients
When realizing time-varying filter characteristics while performing in real time
If the filter is stable like an FIR filter,
There is no need to devise filter coefficients in consideration of qualitative
It is very advantageous. FIG. 3 is a diagram of the filter parameter memory 20.
Shows an example of the format
Re 20a, voice bank 20b, parameter bank 20
c. The actual filter coefficients are
And stored in the voice bank 20b.
Is the timbre determinant consisting of timbre type, pitch and key touch
The filter coefficient determined corresponding to the combination of
Address data and a file to be read from the bank 20c.
Parameter data for the Luther coefficient interpolation calculation
I have. The voice directory 20a has a plurality of types of tones.
(This is called voice 0 to N)
In this case, the packet address VOA is stored. Tone selection switch
19 in accordance with the tone code representing the tone selected in step 19.
The voice offset address VOA corresponding to the tone is
It is read from the chair directory 20a. Voice off
The set address VOA is stored in the voice bank 20b.
Start address of the storage bank corresponding to each voice 0 to N
Is the data indicating The voice bank 20b stores each voice
From the storage banks (voice banks) corresponding to
You. The voice bank corresponding to each voice is, for example, a voice
0 as shown in the figure.
And a plurality of key groups (these are key groups 0 to M
And a key bank corresponding to the same. The key bank offset table corresponds to the keyboard 1
5 corresponds to the key bank offset address KO
A is stored. Pressing according to the key code of the pressing key
Key bank offset corresponding to the key group to which the key belongs
Is set in the key bank offset table.
Is read from. Key bank offset address KO
A corresponds to each key group 0-M in the key bank
Data indicating the start address of the storage bank to be executed.
It consists of relative address data in the voice bank. Ki
-Bank is a storage bank corresponding to each of key groups 0 to M.
(Key bank). Corresponding to each key group
The key bank is shown for key group 0, for example.
The touch bank offset table and multiple touch
Group (hereinafter referred to as touch groups 0 to L).
And a corresponding touch bank. The touch bank offset table has a
Touch detection circuit 16
Touch bank offset address corresponding to each stage of data
Store the TOA. Detected by the touch detection circuit 16
Touch data to which the touch data belongs
Touch bank offset address corresponding to the touch group
The TOA reads from the touch bank offset table.
Will be issued. The touch bank offset address TOA is
Corresponding to each touch group 0 to L in the touch bank
This is the data indicating the start address of the storage bank.
It consists of relative address data in the key bank. touch
The bank is a storage bank corresponding to each of the touch groups 0 to L.
(Touch bank). For each touch group
The touch bank to perform is, for example, for touch group 0.
As shown, as shown in FIG.
To K). Frame vans corresponding to frames 0 to K
As shown for frame 0, for example,
The parameter data FT for interpolation calculation for the frame,
Stores IN, IT, II and coefficient address data CAD
doing. Also, the coefficient difference for the mode “1” described above.
The value data DCF (0) to DCF (15) are further
It is stored in the frame bank. For details,
Different memory contents for mode “0” and mode “1”
Parameter memory 20 consisting of
It is. Then, the filter parameter menu for mode "0"
In the memory 20, one frame bank has eight addresses.
Parameter data for interpolation calculation F
T, IN, IT, II and coefficient address data CAD
I remember. Also, the filter parameter for mode "1"
In the data memory 20, one frame bank is 4
It consists of 0 address, and there is a parameter for the above interpolation calculation
Data FT, IN, IT, II and coefficient address data C
AD and coefficient difference value data DCF (0) to DCF (15)
I remember. Such a filter for mode "0"
Parameter memory 20 and filter parameters for mode "1"
Data memory 20 with factory set
Attached to an electronic musical instrument, and depending on the memory mode
The filter mode switch 17 may be switched.
Or the filter parameter menu for mode "0".
Memory 20 and filter parameter memory for mode "1"
20 is selected and selected by the filter mode switch 17.
Depending on the selected mode, one of the memories 20 is read.
It may be protruded. Each parameter data for interpolation calculation
Next, a description will be given. The frame time data FT is stored in the frame
The duration of the last frame
“0”, appropriate duration other than “0” for other frames
This is data indicating time. The final frame is the pronunciation of the musical tone
Until the end of the frame.
The time is unspecified, so FT = "0"
You. The interpolation shift number data IN is obtained by
Data indicating the shift amount when shifting the filter coefficient difference
It is. This interpolation shift number data IN is calculated by the interpolation
This is the logarithm of the count data IT. Interpolation count data IT is
Interpolation times when interpolating filter coefficients of adjacent frames
This is data indicating the number (the number of interpolation steps). Interpolation interval
Data II is data indicating the time of one interpolation step.
You. The coefficient address data CAD corresponds to the frame
Filter coefficients to be read from the parameter bank 20c
Address data. Parameter bank 20
c is a set of plural types of filter coefficients (this is
(Sets 0 to R). One set of filter staff
The numbers are, for example, as shown for parameter set 0
And 16 filter coefficients CF (0) from the 0th to the 15th order
~ CF (15). Read from frame bank
The parameter address data CAD
Of the parameter sets 0 to R stored in the link 20c
One of the sets is specified and the specified parameter
Set of filter coefficients CF (0) to C corresponding to the data set
F (15) is read. Each frame 0 to K in one touch bank
The relative address of the frame bank corresponding to
It is specified according to the number FN. Each frame 0-K is hour
At the start of musical sound
Yes, frames 1, 2, 3
The frames are switched in this order. The frame number FN is
This is data indicating the current frame. As mentioned above
The number of addresses in one frame bank is an example.
In the case of mode "0", it is 8 and in the case of mode "1"
40. Therefore, in detail, for each frame 0 to K
The relative address of the corresponding frame bank is the mode “0”.
In the case of, it is “FN × 8”, and in the case of mode “1”,
“FN × 40”. A place in the filter parameter memory 20
The absolute address of the desired frame bank (this is the frame address
Dress FAD) is voiced as described above.
Directory 20a, key bank offset table and
Buttons read from the switch bank offset table
Chair offset address VOA, key bank offset
Address KOA and touch bank offset address T
It is determined by the following arithmetic expression using OA. In the case of mode "0": FAD = VOA + KOA + TOA + FN.times.8 In the case of mode "1": FAD = VOA + KOA + TOA + FN.times.40 That is, the end of the voice bank to be read out
For the voice offset address VOA indicating the head address,
Key bank off, which is a relative address to
The set address KOA is added, and the relative
Touch bank offset address TOA
And add a frame that is a relative address to it.
Bank relative address “FN × 8” or “FN × 40”
Is added. Note that by design,
For each offset address VOA, KOA, TOA
The data expression is VOA 1/16, K
Assume that OA is 1/8 and TOA is 1/8.
You. In that case, lower the value of each offset address data.
Determine the frame address FAD by modifying as described above.
Shall be. In the case of mode “0”: FAD = VOA × 16 + KOA × 8 + TOA × 8 + FN
× 8 mode “1”: FAD = VOA × 16 + KOA × 8 + TOA × 8 + FN
× 40 Hierarchical filter as shown in FIG.
The structure of the parameter memory 20 saves memory capacity
This is advantageous because Without doing this, the tone
All combinations of types, key groups, and touch groups
If the filter coefficients are stored separately for
Although a certain amount of storage capacity is required, using FIG.
Not much storage capacity is required. In other words, the tone type,
The combination of key group and touch group is different
Even if the filter coefficients are common,
Therefore, the parameters stored in the parameter bank 20c of FIG.
The number of data sets 0 to R depends on the timbre type, key group and
Much more than all numbers of touch group combinations
This saves memory capacity. Next, there are two types of filter coefficient interpolation modes.
An outline will be described. Mode “0”: In this mode, adjacent time frames
Interpolation operation based on the difference between two filter coefficients corresponding to
Do. Referring to FIG. 4, in adjacent time frames 0 and 1,
Think about it. The filter coefficient corresponding to frame 0 is F
C0 and the filter coefficient corresponding to frame 1 is FC1
And Find the difference (FC1-FC0) between the two filter coefficients
This is shifted according to the interpolation shift number data IN.
You. In other words, in terms of the arithmetic expression, the interpolation count data IT
It is equivalent to dividing. This gives the coefficient
A difference value DCF is obtained. (FC1-FC0) / IT = DCF 1 set by interpolation interval data II
This coefficient difference value DCF is framed for each interpolation step time.
Is accumulated for the filter coefficient FC0 corresponding to
Thus, an interpolation operation is performed. Thus, the interpolation performance
The filter coefficient obtained by the calculation starts from FC0
Gradually increases by the coefficient difference value DCF at each interpolation step
(Or decrease), and finally the interpolation count data IT
When the same number of accumulations are completed, it corresponds to the next frame 1.
The value reaches the value corresponding to the filter coefficient FC1. And
The frame switches and the next frame 1 and 2
The same interpolation operation as described above is performed. Note that such interpolation
The calculation is performed for each order. Mode "1": In this mode, adjacent modes
At least two filter coefficients corresponding to the time frame
Interpolation calculation based on one and the coefficient difference value prepared in advance
I do. That is, in the mode “0”, the coefficient difference value
DCF is obtained by calculation. In this mode “1”,
Coefficient difference value data DCF (0) to DCF corresponding to each order
(15) is the frame bar in the filter parameter memory 20.
This coefficient difference value DCF is stored in advance in the link.
There is no need to perform the required calculations. Therefore, time frame 0
If we consider the interpolation in
The coefficient difference value DCF read from the interpolation interval data II
0 every 1 interpolation step time set by
Of the filter coefficient FC0 corresponding to
Performs the interpolation operation. And the interpolation count data
Time frames 0 and 1 when the same number of accumulations as
Is completed. And the frame switches
And the same interpolation calculation as described above for the next frames 1 and 2.
Is performed. Executed by microcomputer unit 10
Of the processing related to the present invention among the processing performed
One example of a chart is shown in FIGS. In this process
Related data and working RAM 13
5 is shown in FIG. TIMER
Is a timer count value, and at a predetermined timing (example
Timer counter 14 incremented (for example, every 2 ms) (FIG. 1)
Is stored. TCODE is
This is the tone code, which can be selected with the tone selection switch 19 (FIG. 1)
This shows the selected tone. KCODE is the key code
Indicates a key pressed on the keyboard 15 (FIG. 1).
You. TDATA is the touch data, and the touch detection
2 shows a key touch detected on the road 16 (FIG. 1). MODE is mode data.
Mode selected by the mode switch 17 (FIG. 1).
Is shown. FT, IN, IT, II are the above interpolations
The operation parameter and CAD are the above-mentioned coefficient addresses,
Read from the filter parameter memory 20 as described above.
The one corresponding to the current frame is stored in the RAM 13.
Stored in FN is the frame number described above.
Indicates the current frame. RTIME is
Time at the beginning of one interpolation step.
This is to store the ima count value TIMER. C
IT is the current number of interpolations, and the current number of interpolations (interpolation step
Number of taps). ACF (0) to ACF (15) are 0
Next to fifteenth current filter coefficient data CF (0) to CF (1
5) and changes with the progress of interpolation. As mentioned above,
This is also used as the 16th to 31st order filter coefficient data.
It is. That is, the 0th to 15th order filters in FIG.
The current filter coefficient data as numbers h (0) to h (15)
ACF (0) to ACF (15) are supplied, and the 16th to 31st
This current filter is also used as the filter coefficients h (16) to h (31).
Coefficient data ACF (15) to ACF (0) are symmetrically folded
Supplied. NCF (0) to NCF (15) represent the next frame
0th to 15th order filter coefficient data CF (0) to
CF (15). DCF (0) to DCF (15) are the aforementioned
Numerical difference value data corresponding to each of the 0th to 15th orders
It is. As described above, when the mode is “0”, the calculation is performed.
When the mode is “1”, the filter parameter
Data from the data memory 20 corresponding to the current frame.
It is. Record data or signals as described above.
The storage area is the data and working RAM 13
It is provided within. Data and working RA
The key data (key code and key
Area for storing ON signals, etc.) and the operation panel
18 operation detection data such as switches and LED
Area for storing on / off data, other work
A king area is provided. FIG. 6 shows the main routine.
In the “processing”, the on / off of each key of the keyboard 15 is detected,
If a key press is detected, the "New key on process" in FIG.
Execute the "control". Note that for simplicity of explanation,
In the example, the tone corresponding to the new pressed key is
It shall be pronounced. "Tone switch scanning"
Scans the color selection switch 19 and selects the tone color of the selected tone.
While storing the code as the above tone code TCODE.
The signal is sent to the tone signal generation circuit 22. "Mode switch running
In the inspection process, the filter mode switch 17 is scanned and the
Check which mode “0” or “1” is selected
You. If mode "0" is selected, the mode data
When MODE is set to “0” and mode “1” is selected
For example, the mode data MODE is set to "1". Mainle
Other switches on the operation panel 18
And controls are scanned to perform necessary processing. It is detected that a new key is pressed on the keyboard 15.
When it is issued, the new key on process of FIG. 7 is executed.
You. Here, first, the key code of the newly pressed key
Is stored as the key code KCODE. Next,
Detected by the touch detection circuit 16 corresponding to the new pressing key
Touch data is recorded as the above touch data TDATA.
Remember Next, the contents of various registers are initialized.
For example, a timer count is used as the start time RTIME.
Set the default value TIMER (open the first interpolation step)
Start time is set to RTIME), frame number F
N is reset to "0".
Processing such as resetting to “0” is performed. Next steps
In 30, the tone code TCODE and the key code KCODE
E, Filter parameter according to touch data TDATA
Offset addresses VOA, KO from the data memory 20.
A, TOA are read, and these offset addresses V
Previous according to OA, KOA, TOA and frame number FN
The frame address is calculated as described above. Initially a frame
Since the number FN = "0", the frame of frame 0
The address FAD (0) is obtained. In the next step 31, the calculated frame
Filter parameter memory 2 according to the program address FAD
Various interpolation calculation parameters described above from frame bank 0
Read FT, IN, IT, II and coefficient address CAD
Then, these are stored in a register in the RAM 13. Next
In step 32, according to the coefficient address CAD,
Parameter bank 20 of filter parameter memory 20
read a set of filter coefficients from c and replace them with the current
RA is used as filter coefficient data ACF (0) to ACF (15).
Store in the register in M13. In the next step 33
Are the current filter coefficient data ACF (0) to ACF (15)
To the digital filter 23 in the tone signal generation circuit 22.
Send out. In step 34, the key code KCODE,
Generates tone signal for touch data TDATA and key-on signal
It is sent to the raw circuit 22. Processing of steps 33 and 34
Is performed before the processing of the next steps 35 to 38,
Since the processing of steps 35 to 38 takes time for calculation,
Before sending data to the tone signal generation circuit 22,
In order not to delay the onset of musical tone
You. In the next step 35, the mode data MO
Check whether DE is "0". YES, that is, mode
If "0", the process proceeds to steps 36, 37 and 38,
Find the coefficient difference value data DCF (0) to DCF (15) for the interval
Performs an arithmetic operation. In step 36, the next frame of frame 0
Calculate frame address FAD (1) for frame 1
And a filter according to the frame address FAD (1).
Frame 1 from the frame bank of the parameter memory 20
Read the coefficient address CAD related to. Step 37
Now, add the coefficient for frame 1 found in the previous step.
Of the filter parameter memory 20 in accordance with the
Read a set of filter coefficients from parameter bank 20c
These are used as filter coefficient data NCF for the next frame.
(0) to NCF (15) are stored in the registers in the RAM 13.
A. In step 38, for each order, the next frame
The filter coefficient data NCF (0) to NCF (15) and the current filter
The difference between the filter coefficient data ACF (0) to ACF (15) (for example,
In the case of the zero order, “NCF (0) −ACF (0)” is obtained.
Is shifted according to the interpolation shift number data IN.
The coefficient difference value data DCF (0) to DCF (15) are obtained from
The obtained coefficient difference value data DCF (0) to DCF (15) are
Store in the register in M13. If the mode is "1", from step 35
Proceeding to step 39, as described above,
Coefficient difference stored in the frame bank of the data memory 20
Value data DCF (0) to DCF (15) are converted to frame address F
Read from the frame bank corresponding to AD (0) and read
The coefficient difference value data DCF (0) to DCF (15)
Store in the register in M13. New Kio mentioned above
After the timer process, the timer count value TIMER counts
Each time the timer is interrupted (every 2 ms), the timer interrupt of FIG.
A routine is executed, and the interpolation calculation is performed by this routine.
Will be In FIG. 8, in step 40, the frame
Is the frame time data FT equal to "0", that is, the current frame
Is the last frame. In the last frame
No return time, so return immediately if the last frame
Go to step 41 if it is not the last frame.
In step 41, the timer count value TIMER and the
The difference from the auto time RTIME is based on the interpolation interval data II.
Is the set interpolation step time?
Find out. That is, whether one interpolation step time has elapsed
Find out what. If not, go to return, but
If so, proceed to step 42. In step 42,
Timer count value TI as start time RTIME
Set MER. Thus, the next one interpolation step
Is set to RTIME. Next steps
At 43, the current number of times of interpolation CIT is increased by one. Next
At step 44, the current number of interpolations CIT increased by 1
Whether the number of times matches the interpolation count data IT, that is, the interpolation is completed
Investigate. Step 4 if interpolation is not completed
5 and for each order, the current filter coefficient data AC
The coefficient difference value data DCF (0) to D (F) are added to F (0) to ACF (15).
Add CF (15) and add the result to the new current filter
Perform a process to convert the number data ACF (0) to ACF (15) (example
For example, in the case of the 0th order, “ACF (0) ← ACF (0) + DCF
(0) "). Thus, the calculation of the next one interpolation step is performed.
It is. In step 46, the new interpolation output, the current
Filter coefficient data ACF (0) to ACF (15)
The signal is sent to the digital filter 23 in the generation circuit 22. The routine of steps 41 to 46 is performed according to a predetermined
When the number of times of interpolation IT is repeated, step 44 becomes YES.
No, go to step 47. In step 47,
Increment the Mnumber FN by 1 and increase the current number of interpolations CIT
Reset to "0". The frame switches in this way
You. In the next step 48, the mode data MODE is
Check whether it is "0". YES, that is, in mode “0”
If there is, the process proceeds to step 49 and NO, that is, mode “1”
If so, proceed to step 50. In step 49,
Described offset addresses VOA, KOA, TOA and new
New frame address according to the new frame number FN
Calculate FAD. For example, frame number FN = "1"
If the frame address FAD (1) of the frame 1 is
Desired. In this case, as described above,
Since one frame bank consists of eight addresses,
If 8 is added to the frame address FAD of the frame, a new
Frame address FAD can be obtained. Soshi
And fills in accordance with the calculated frame address FAD.
From the frame bank of the parameter memory 20.
Seed interpolation calculation parameters FT, IN, IT, II and coefficient
Reads the dress CAD and stores them in a register in the RAM 13.
Store in the Star. In step 50, as in step 49,
The offset addresses VOA, KOA, TOA
And a new frame number according to the new frame number FN.
The dress FAD is calculated, and the calculated frame address F
Frame of filter parameter memory 20 according to AD
From the bank, the various interpolation calculation parameters FT, IN,
Read IT, II and coefficient address CAD, and read them
The data is stored in a register in the RAM 13. However,
In frame mode "1", one frame bank has 40 addresses
Address, the frame address F of the previous frame
By adding 40 to AD, a new frame address FAD is obtained.
You can ask. If the mode is "0", step 4
After 9 the process proceeds to step 51. Steps 51 and 52
7, steps 32 and 33, the coefficient address CAD
Of the filter parameter memory 20 according to the
Read a set of filter coefficients from the
With current filter coefficient data ACF (0) to ACF (15)
And store it in a register in the RAM 13
Tones of existing filter coefficient data ACF (0) to ACF (15)
Send to digital filter 23 in signal generation circuit 22
You. Then, in step 53, the frame time data FT is
"0", that is, the new frame is the last frame
Find out if No interpolation in the last frame
If it is the last frame, go to the return, but the last frame
If not, proceed to step 54. Steps 54, 55 and 56 correspond to the steps in FIG.
The processing is almost the same as steps 36, 37, and 38.
For obtaining coefficient difference value data DCF (0) to DCF (15)
Perform the calculation. In step 54, the next of the new frame FN
Address FAD for frame FN + 1
(FN + 1) is calculated, and this frame address FAD (F
N + 1) in the filter parameter memory 20.
Address from frame bank to frame FN + 1
Read CAD. In step 55, the value obtained in the previous step
Address CAD for the frame FN + 1
Parameter bank of the filter parameter memory 20
20c, a set of filter coefficients is read out,
Frame filter coefficient data NCF (0) to NCF (15)
Is stored in a register in the RAM 13. Steps
At 56, the filter coefficient data of the next frame is set for each order.
NCF (0) to NCF (15) and current filter coefficient data
The difference between ACF (0) to ACF (15) (for example, “N
CF (0) -ACF (0) "), and calculates the number of interpolation shifts.
By shifting according to the data IN, the coefficient difference value
Data DCF (0) to DCF (15), and the obtained coefficient difference value
The data DCF (0) to DCF (15) are stored in the
Store in In the case of the mode "1", the scan after step 50
Proceed to step 57. In step 57, the frame time data
FT is "0", that is, the new frame is the last
Check if it is a frame. If not the last frame
Go to step 58, and almost as in step 39 of FIG.
Already stored in the frame bank of the filter parameter memory 20
Stored coefficient difference value data DCF (0) to DCF (15)
To the frame corresponding to the new frame address FAD (FN).
From the bank and read out the coefficient difference value data
DCF (0) to DCF (15) are stored in the registers in the RAM 13.
To torre. In the next steps 59 and 60, the aforementioned steps
In almost the same way as steps 45 and 46, the current fill
New coefficient difference between the coefficient data ACF (0) to ACF (15).
Add the value data DCF (0) to DCF (15) and add
To the new current filter coefficient data ACF (0) to AC
F (15) is processed and the new interpolation output
The filter coefficient data ACF (0) to ACF (15)
To the digital filter 23 in the signal generation circuit 22
You. In this case, even if the frame is switched, the new coefficient
Reading of filter coefficient corresponding to address CAD and it
Current filter coefficient data ACF (0) to ACF (1
5) is not updated, and the old current filter coefficient data AC
Coefficient difference corresponding to a new frame from F (0) to ACF (15)
Accumulate the value data DCF (0) to DCF (15).
ing. In the case of the last frame of mode "1",
If YES in step 57, the process goes to step 61. Step 6
In steps 1 and 62, the same processing as steps 51 and 52 is performed.
U. In this case, the coefficient address C corresponding to the last frame
The parameter of the filter parameter memory 20 according to AD
A set of filter coefficients is read out from the bank 20c.
These are converted to the current filter coefficient data ACF (0) to ACF (1
5) Store in the register in RAM 13 as
Of the current filter coefficient data ACF (0) to ACF (15)
Is transmitted to the digital filter 23 in the tone signal generation circuit 22.
Put out. It should be noted that instead of the processing of steps 61 and 62,
The same processing as steps 59 and 60 may be performed.
No. Note that the mode “1” has a larger coefficient than the mode “0”.
An operation for obtaining the difference value data DCF (0) to DCF (15)
Advantages of quick data access because no calculation is required
There is. There is no remaining memory for storing coefficient difference value data.
Minute, but the coefficient difference value data itself is small.
Since the value is a value, the number of bits is small and the capacity is small. Ma
In addition, the coefficient difference value data for mode “1” is
In the embodiment, each is stored for each frame bank.
As with the filter coefficients, each frame bank has an address.
The coefficient difference value data itself is stored in the parameter bank.
20c may be stored. In the above embodiment, the interpolation operation is performed by software.
Performed by processing, but dedicated hardware circuit
Therefore, it may be executed. In the above embodiment,
Switching between frames is based on the output of the timer counter
Is performed and is unrelated to the pitch of the musical tone, but
Time frame in relation to the phase address signal of the power tone
Switching (and interpolation timing)
May be. In the above embodiment, the switching order of each frame is
The order is predetermined, but it switches randomly
It may be. Example of the method of interpolation calculation of filter coefficients
Are not limited to those shown in FIG. Also
Not only linear interpolation but also any interpolation characteristics may be used. example
For example, interpolation through a digital low-pass filter
You may. Alternatively, for example, a file corresponding to frame 0
The initial value of the filter coefficient is stored.
The difference between the frame and the filter coefficient is stored, and the difference
Data may be shifted to obtain a coefficient difference value.
The present invention can be applied not only to single music instruments but also to double music instruments.
Of course. Also, the tone signal processing device of the present invention
On the other hand, the keyboard and sound source circuit may be separate units
No. Next, another embodiment of the present invention will be described with reference to FIGS.
An embodiment will be described. FIG. 9 shows an electronic device to which the present invention is applied.
FIG. 4 shows a hardware configuration of an embodiment of a musical instrument.
Of the electronic musical instrument, the CPU 111 and the program memo
Including the memory 112 and the data and working RAM 113
Readout of filter coefficients by microcomputer
Various operations and processes including filter coefficient interpolation calculation are controlled.
Is controlled. The program memory 112 is composed of RAM,
By rewriting the control program stored there,
Program specifications can be changed easily
Has become. The filter coefficient memory 114 stores a desired filter.
Store multiple sets of filter coefficients to realize filter characteristics
Each set contains at least two axes of coordinate data.
Each is assigned as dress data. Learn more
To explain an example, for example, the filter coefficient memory 114
Has multiple tables, with multiple tables at each table.
Several sets of filter coefficients are stored in each table.
X and Y coordinate data for each filter coefficient set
Are assigned as address data. 1
Format of filter coefficients in two tables
FIG. 10 schematically shows an example of
In this case, the coordinate position on the X axis is n + 1 points of 0, 1, 2,.
The coordinate position of the axis is the n + 1 point of 0, 1, 2,.
"(N + 1) specified by the intersection of each coordinate position
Of (n + 1) squared pairs of addresses
Filter coefficients F00 to Fnn are assigned. One set of
The filter coefficient realizes one desired filter characteristic
And is composed of multiple order filter coefficients. The filter coefficient memory 114 is a RAM.
And rewrite the contents of the filter coefficients stored there.
It is possible to obtain. External magnetic disk drive
Unit 115 is attached to the electronic musical instrument.
Flexible magnetic disk storing several sets of filter coefficients
Disk cartridge (floppy disk) FD1
Set it on the screen drive unit 115 and store it there.
The set of filter coefficients transferred to the filter coefficient memory 114 is recorded.
You can remember. In addition, the control professional
Floppy disk FD2 (that is,
Stem disk) to the disk drive unit 115
Set and memorize the control program stored there
Can be transferred and stored in the memory 112
I have. The keyboard 116 specifies a pitch of a musical tone to be generated.
With multiple keys for The touch detection circuit 117
It is also used to detect a touch of a key pressed on the keyboard 116.
It is. The type of touch to be detected is the initial touch
Alternatively, it may be either aftertouch. This touch
The key touch data detected by the detection circuit 117 includes a tone color,
It is used to control musical tone elements such as volume and pitch.
When using key touch data as tone control information,
Control the filter coefficients to change the characteristics of the digital filter.
Used to modify. The modulation wheel 118 has a timbre control.
This is a manual operator for generating control information.
The control information is used for controlling the filter coefficients. Low circumference
The wave oscillator 119 converts the low-frequency signal into a modulated signal of a filter coefficient.
It occurs as a signal. Key scaling table
Key 120 is a key scale corresponding to the pitch of the musical tone to be generated.
Ring data is generated by this key scale
Data is used as timbre control information to control the filter coefficients.
Used for Filter envelope generator 121
Are special features such as attack, decay, sustain, release, etc.
Generates envelope waveform data consisting of characteristics in response to key presses
This envelope waveform data is
It is used for controlling filter coefficients as control information.
The operation panel unit 122 includes an operation panel 1 related to a filter.
23 and other various tone setting / control switches and operations
A child 124 is provided. Filter-related operation panel 1
23, the display 230 and the cursor
Switches 231 and 232, filter edit switch 2
33, including a numeric key switch 234, a filter
Used to perform operations related to coefficient selection and setting.
You. The interrupt timer 125 stores various setting data.
Basic timing of data acquisition and filter coefficient interpolation calculation
Is set every predetermined time (for example, 1
The microcomputer sends interrupt signals every 0 ms.
Give to. The tone signal generation circuit 127 includes data and add
Information on the pressed key (key
Pitch corresponding to the pressed key based on the chord and key-on signal)
Generates a digital tone signal having
The sound signal is input to the digital filter 128 and
It performs tone control according to the filter characteristics. Sound signal emission
As for the raw method, as described above,
A sound signal generation method may be used. Note that the tone signal generation method
When the memory read method is used as the expression,
External sound can be freely sampled through the
External sound waveform data stored in the shape memory and sampled
Is read from the waveform memory,
Signal. The digital filter 128 is the digital filter of FIG.
Like the digital filter, the digital tone signal
Enter the filter coefficient and set by this filter coefficient.
The input tone signal is controlled according to the filter characteristics.
The format of the digital filter 128 is also as described above.
Anything may be used, such as the 32nd order shown in FIG.
Using an FIR filter makes it easy to design, stable, and easy to use.
It is convenient because it is suitable for sound control.
Therefore, the following description will be made assuming that this is used. What
In the above, the orders at symmetric positions are the filter coefficients
Are the same value, so that the fill of all orders N (= 32)
Without preparing the coefficient, 16
The filter coefficients are prepared and the 16th to 31st
Filter coefficients are symmetrical from 0th order to 15th order
Although the explanation has been made assuming that the filter coefficient is used, the following
In the embodiment, for convenience, all the filters from the 0th order to the 31st order are included.
The description will be made assuming that the filter coefficient is prepared. In addition, FIR
Adding to the benefits of the filter,
When the filter coefficients are generated densely by interpolation,
The filter characteristics corresponding to the interpolated filter coefficients
This is advantageous because the property can be obtained as it is. Tone signal generation
The digital tone signal output from the circuit 127 is digitized.
Analog / digital converter 130
And given to the sound system 131. Next, the filter-related operation panel 123 is used.
An outline of an example of selecting and setting the filter coefficients
explain. First, set the filter edit switch 233
When turned on, the display 230 is turned on as shown in FIG.
Displays the filter edit menu with appropriate contents. Use
The user can select a desired number among the edit modes 1-4.
Select with the numeric key switch 234. 1st parameter
When set mode (Parameter) is selected,
The screen of the display 230 changes as shown in FIG.
You. In this mode, set the digital filter characteristics.
From the filter coefficient memory 114
The conditions for reading and the filter coefficients are variably controlled.
Various conditions for setting. On display 230
Column setting items “tbl”, “Dyn-axis”, “d
yn ”and“ fix ”with the cursor switch.
231 and 232 to select and
The corresponding desired selection / setting data is stored in numeric key switch 2.
Selection and setting are made by 34. Display 230
"Tbl", "Dyn-axis",
Under “dyn” and “fix”, corresponding to the item,
The selected and set data is displayed. For each setting item
And will be described next. Tbl: stored in the filter coefficient memory 114
Select the filter coefficient table to be used. Selected here
The data consists of filter coefficient table data FTABLE and
To register in the data and working RAM 113
It is registered (see FIG. 13). Dyn-axis: X in the filter coefficient table
-Coordinates of any of the Y coordinate axes (see FIG. 10)
Select whether data is variably controlled according to tone control information
I do. The coordinate axes that are variably controlled according to the tone control information
It will be called the dynamic axis. For example, dyna
When setting as a mic axis, use the numeric key switch 23
Enter “0” in 4 and set the Y axis as the dynamic axis
Input "1" using the numeric key switch 234.
You. The data set here is the dynamic axis data D
Data and working RAM 113 as YNXS
(See FIG. 13). dyn: Specifies the coordinate data of the dynamic axis. This
The data specified here is the dynamic axis reference coordinate data.
The data and the data in the working RAM 113 as DYN
Registered in the register (see FIG. 13). fix: coordinate axis that is not a dynamic axis (fixed axis and
) Is specified. Specify here
The data obtained is data and data as fixed axis coordinate data FIX.
Registered in a register in the working RAM 113
(See FIG. 13). The dynamic axis coordinate data and the fixed axis
Specifying the coordinate data is performed using the numeric key switch 234 as desired.
This is performed by inputting coordinate values. Using FIG.
As described above, each text in the filter coefficient memory 114 is
X and Y axis coordinates are stored in each filter coefficient set stored in the table.
The mark data is assigned respectively, and the dyn and fix
Dynamic axis coordinate data and fixed axis specified in the item
One set of filter coefficients is specified by the combination of coordinate data
Is determined. Note that each filter coefficient group is assigned
If the coordinate data value is an integer,
Value of coordinate data of dynamic axis and coordinate data of fixed axis
Is not limited to an integer value and may include a decimal value. Specify
If the coordinate data contains decimal values,
The corresponding filter coefficients are stored in the filter coefficient memory 114.
Since it is not performed, find the filter coefficient by interpolation
Like that. If you add an explanation about this point,
If the specified coordinate data is an integer part like (1,1)
And the coordinates as shown in FIG.
A set of filter coefficients F11 corresponding to (1,1) is filtered.
By reading from the filter coefficient memory 114,
Get the specified filter coefficient without interpolation
be able to. However, if the specified coordinate data is (1,
As shown in FIG. 12, when a minority part is included as in 1.5),
A set of filter coefficients F corresponding to the coordinates (1, 1)
11 and another set of filters corresponding to coordinates (1, 2)
The number F12 is read from the filter coefficient memory 114,
Decimal value of each coordinate between both filter coefficient sets (0, 0.5)
By performing interpolation at a ratio according to the
Set of filters not stored in the coefficient memory 114
Create the coefficients. Returning to FIG. 11A, the second envelope
When the set mode (Envelope) is selected,
The screen of the spray 230 changes as shown in FIG.
In this mode, the envelope for variable filter coefficient control
Various conditions for forming a waveform are set. Display
The setting items “R1”, “R2”, “R
3 "," R4 "," L1 "," L2 "," L3 "," L
4 "is a desired item.
2 is selected and the desired item corresponding to the selected item is selected.
Set the setting data using the numeric key switch 234.
You. Each setting item “R1” on the display 230,
"R2", "R3", "R4", "L1", "L2",
The lower part of “L3” and “L4” are set corresponding to the item.
The displayed data is displayed. The following describes each setting item.
I will tell. Each element of a commonly known envelope waveform
Related to attack, decay, sustain, release
"R1" sets the attack rate, "R2"
Is for setting the decay rate, "R3" is for sustain
"R4" sets the release rate
What to set, "L1" sets the attack level
"L2" sets the decay level, and "L2"
“3” sets the sustain level, “L4” sets the level.
This sets the lease level. Each set here
The data of items R1 to L4 are the filter envelope settings
Data FENV (0) to FENV (7)
Registered in the registers in the working RAM 113
(See FIG. 13). The filter envelope generator 1 of FIG.
21, the filter envelope setting data FEN
Based on V (0) to FENV (7), key
Generates envelope waveform data. Returning to FIG. 11A, the third low frequency modulation signal
When the number set mode (Lfo) is selected, the display
The screen 230 changes as shown in FIG. This mode
The low frequency modulation signal generated from the low frequency oscillator 119
Set various conditions. The upper setting of the display 230
Fixed items "wave", "speed", "dela"
y ”and“ depth ”with the cursor switch.
Items selected by operating the switches 231 and 232
The desired selection / setting data corresponding to
234 is selected and set. On display 230
Items "wave", "speed", "del"
ay ”and“ depth ”are shown below
The set data is displayed. The following describes each item.
I will tell. wave: low frequency change generated from the low frequency oscillator 119
Select the waveform of the tuning signal. For example, sine, triangle, saw
Select desired waveform from tooth, inverted sawtooth or square wave
I do. The data selected here is the low-frequency waveform data WA
Data and register in working RAM 113 as VE
(See FIG. 13). speed: low frequency generated from the low frequency oscillator 119
Set the speed (frequency) of the modulation signal. Set here
The data obtained is used as low-frequency speed data SPEED.
Register in data and register in working RAM 113
(See FIG. 13). delay: The low-frequency oscillator 119 is activated from the start of key press.
Set the delay time before the shake starts. Set here
The obtained data is low-frequency oscillation delay time data DELAY
To register in the data and working RAM 113
It is registered (see FIG. 13). depth: low frequency generated from the low frequency oscillator 119
Set modulation signal amplitude (ie modulation depth or depth)
I do. The data set here is the low-frequency amplitude data DE
The data in the working RAM 113 as the PTH
Registered in the register (see FIG. 13). The low-frequency oscillator 119 shown in FIG.
Based on each setting data WAVE-DEPTH for the tone signal
Generate a low frequency modulation signal. Returning to FIG.
Select key scaling set mode (Scale)
Then, the screen of the display 230 changes as shown in FIG.
It changes. In this mode, the key scaling table
120 among several key scaling curves
Choose the one you want. The data selected here is Keith
Calling curve select data KYSCV
Data and registers in the working RAM 113.
(See FIG. 13). This key scaling curve select
Key scaling curve corresponding to data KYSCV is
Selectively read in key scaling table 120
Pressing in this key scaling curve
Key scaling corresponding to the pitch (or range) of the keypress
Data is read from the table 120. Executed by the microcomputer unit
Of processing related to the present invention,
14 to 17 show an example of this. In this process
Data and working RAM 113 used in connection with
FIG. 13 shows an example of the contents stored in the table. KCOD
E is a key code, which is pressed on the keyboard 116 (FIG. 9).
It shows the key that was lost. TDATA is touch data
And the key detected by the touch detection circuit 117 (FIG. 9).
It shows a touch. WHEELD is a modular
Modulation wheel data
Data corresponding to the operation amount in the file 118 (FIG. 9).
You. Each data FTABLE to KYSCV is as described above.
belongs to. EGDATA is the envelope waveform data
And the filter envelope generator 121 (FIG. 9)
Envelope waveform data for filter coefficient control generated from
It shows the current value of the data. LFODAT is low-frequency modulated signal data.
Yes, low frequency generated from low frequency oscillator 119 (FIG. 9)
This shows the current value of the modulation signal. KYSDAT is
Key scaling data.
From the bull 120 (FIG. 9) to the pitch (or range) of the pressed key
The current value of the corresponding read key scaling data is
It is shown. DYNDAT is the dynamic axis coordinate
Data, indicating the current coordinate value of the dynamic axis
It is. XAXIS is X-axis coordinate data, and X-axis
Indicates the current coordinate value of the. YAXIS is the Y axis
Coordinate data, indicating the current coordinate value of the Y axis
You. One of the X or Y axis corresponding to the dynamic axis
Standard data XAXIS or YAXIS is a dynamic axis
It has the same contents as the coordinate data DYNDAT, and
The corresponding coordinate data XAXIS or YAXIS is fixed
The contents are the same as those of the axis coordinate data FIX. X-axis coordinate data XAXIS and Y-axis coordinate data
In combination with YAXIS, filter coefficient memory 1
The filter coefficient to be read out from 4 is specified. On the spot
In this case, the coordinate data XAXIS or YAXIS of one axis is
As described above, this is the same as the fixed axis coordinate data FIX.
This uses the filter-related operation panel 123 as described above.
Of the parameter set mode (see FIG. 11B)
This is specified by the processing of Meanwhile, Dyna
Of the other axis corresponding to the mic axis coordinate data DYNDAT.
The coordinate data XAXIS or YAXIS is as follows:
It is changed and controlled by various tone color control information.
The finger is arbitrarily operated by operating the filter-related operation panel 123.
Touch the specified dynamic axis reference coordinate data DYN
Data TDATA, modulation wheel data W
HEELD, envelope waveform data EGDATA, low
Frequency modulation signal data LFODAT and key scaling
Performs an operation of modulating with the data KYSDAT.
The calculation result is defined as dynamic axis coordinate data DYNDAT.
You. Each data TDATA, WHEELD, EGDAT
A, LFODAT and KYSDAT include decimal parts
The die obtained by the modulation operation
Numeric axis coordinate data DYNDAT also contains decimal part
It may be. As mentioned earlier, filter coefficient memory
In step 114, the coordinate value directly including the decimal part
Filter coefficients have not been assigned,
By performing interpolation calculation, it is possible to handle coordinate values including decimals.
Calculate the filter coefficient. In addition, dynamic shaft reference seat
The target data DYN is converted to each data TD as tone color control information.
ATA, WHEELD, EGDATA, LFODAT and
For modulating or changing with KYSDAT
Is any operation such as addition, subtraction, multiplication, division, etc.
Is also good. For example, addition and subtraction are used. COEFA and COEFB are interpolation calculation-related components.
Number register, two files to be interpolated
Data coefficients are stored in each register COEFA, COEFB
I do. The interpolation operation consists of two sets of filters to be interpolated.
It is done between coefficients of the same order in the number. Register C
For OEFA and COEFB, perform the interpolation operation at that time.
Is stored. COEFD
(0) to COEFD (31) are filter coefficient registers.
Reading from the filter coefficient memory 114 and interpolation
For each order finally obtained by arithmetic or the like (from 0th order to 3rd
This stores the (primary) filter coefficient data. This
Filter coefficient registers COEFD (0) to COEFD (3)
The filter coefficient data for each order stored in 1) is
Digital filter 128, and adjusts the characteristics of the filter.
decide. FIG. 14 shows the main routine.
Filter-related operation panel scan processing ”
Scans on / off detection of each switch of the operation panel 123
Further, according to this scanning result, referring to FIG.
Related to the filter coefficient selection and setting
Data FTABL selected and set
E, DYNXS, DYS, FIX, FENV (0) to F
ENV (7), WAVE, SPEED, DELAY, DE
PTH, KYSCV data and working RAM 11
3 is registered in the register. In the next process, the data and
The low frequency modulation signal setting registered in the working RAM 113
Fixed data WAVE, SPEED, DELAY, DEP
TH to the low frequency oscillator 119 (abbreviated as LFO in the figure)
Send out and filter envelope setting data FENV
(0) to FENV (7) are converted to the filter envelope generator 12
1 (abbreviated as filter EG in the figure). In the next process, the keyboard 116 and other operations are performed.
Performs on / off detection scan processing of the cropper 124, and the result
The data necessary for forming the obtained tone is converted to a tone signal generating circuit 127.
(Abbreviated as TG in the figure). Each key of the keyboard 116
A new key is pressed during the on / off detection scanning process
When a new key event is detected as shown in FIG.
Is executed. For simplicity of explanation,
In the embodiment shown in FIG.
Assuming that musical tones are to be pronounced in the
It is assumed that the system is assembled. In the main routine
In the interrupt signal from the interrupt timer 125
Each time is given, the "timer in" shown in FIG.
A "rupture routine" is executed. The "New Key On Event" shown in FIG.
First, the key code of the new press key is
Register as KCODE (step 140). Next,
Is detected by the touch detection circuit 117 corresponding to a new key depression of
The registered key touch data is registered as TDATA (step
141). In the next step 142, the envelope
Set initial value "0" as waveform data EGDATA
And the filter envelope generator 121
"1" indicating the key press is transmitted as the control signal KON. What
The initial value of the envelope waveform data EGDATA is
The value is not limited to “0” and may be another value. Filter Envelope
In the loop generator 121, as the key-on signal KON
When “1” is given, generation of envelope waveform data
To start. In the next step 143, the low frequency modulation signal
When the initial value "0" is set as the data LFODAT
In both cases, a start command is given to the low frequency oscillator 119. Low
The frequency oscillator 119 oscillates in response to the start command.
To start. However, it is set by the above-mentioned data DELAY.
The actual oscillation operation starts after the elapse of the set delay time.
In the next step 144, a key scaling curve selection is performed.
Key scaling curve according to the target data KYSCV
Is selected in the key scaling table 120, and this selection
Code KC in the key scaling curve obtained
Key scaling data corresponding to the pitch of the ODE
-Read from the scaling table 120. reading
Key scaling data is registered as KYSDAT.
You. In the next step 145, the modulation
Captures the operation output of the
It is registered as application wheel data WHEELD. next
In step 146, the dynamic axis reference coordinate data D
Touch data TDATA, modulation for YN
Wheel data and key scaling
Calculates the data KYSDAT and obtains the coordinate data DYN.
Control and change the calculation result to dynamic axis coordinate data D
Register as YNDAT. At this time, the envelope
Waveform data EGDATA and low frequency modulation signal data LF
The reason that ODAT is not added to the calculation is that the initial values of both data are
This is because "0" was set. For an initial value other than "0"
May add this data to the operation. Next, "Phil
Data coefficient calculation subroutine ". An example of “filter coefficient calculation subroutine”
Is shown in FIG. Here, first, dynamic
Check whether the axis data DYNAXS is "1"
(Step 147). If “1”, dynamic
The axis is the Y axis, go to step 148,
The dynamic axis coordinate data DYNDAT obtained in step 46 is
Register as Y-axis coordinate data YAXIS
When the “Filter-related operation panel scan process”
The fixed axis coordinate data FIX that has been set is converted to X-axis coordinate data XAX.
Register as IS. Dynamic if not "1"
The axis is the X axis, go to step 149,
The dynamic axis coordinate data DYNDAT obtained in step 46 is
Register as X-axis coordinate data XAXIS and fix
Axis coordinate data FIX as Y axis coordinate data YAXIS
register. In the next step 150, the order register C
Set the content to "0". Contents of this order register C
Is the order of the filter coefficient to be obtained by the current operation
Instruct. In the next step 151, the filter coefficient
Of the filter coefficient table in the memory 114
Set for "Filter-related operation panel scan processing"
The specified filter coefficient table data FTABLE
Select the indicated filter coefficient table and select this selected
-Axis coordinate data XAXIS and Y in the table
Indicated by each integer part of axis coordinate data YAXIS
A set of filter coefficients corresponding to the specified X and Y coordinate values
Then, the order register C in this set of filter coefficients
Therefore, the filter coefficient of the designated order is read. like this
The filter coefficients of a certain order read out as
FCOEF @ FTABLE, C, (XAXIS) I, (Y
AXIS) I}. Thus, a certain degree of
The filter coefficient is stored in one of the interpolation calculation coefficient registers COE.
Store in FA. In the next step 152, step 147
Similarly, the dynamic axis data DYNXS is "1".
Is checked, and if it is “1”, step 153 is executed.
If it is “0”, go to step 154. Step
In step 153, the file specified by the data
In the filter coefficient table, the X-axis coordinate data XAXI
Integer part of X (XAXIS) I and Y-axis coordinate data YAXIS
Of the Y-axis coordinate value (YA
XIS) I + 1 to identify a set of filter coefficients,
The order register C for this set of filter coefficients
The filter coefficient of the specified order is read. In this way
The filter coefficient of a certain order to be read is represented by FC in the figure.
OEF @ FTABLE, C, (XAXIS) I, (YAX
IS) I + 1}. Thus, a certain degree of
The filter coefficient is stored in the other interpolation calculation coefficient register COE.
Store in FB. In this case, the Y axis is the dynamic axis.
Therefore, interpolation along the Y axis is performed. On the other hand, in step 154, data FTA
In the filter coefficient table specified by BLE
The integer part (XAXIS) I of the X-axis coordinate data XAXIS
X-axis coordinate value (XAXIS) I + 1 greater than 1 and Y-axis coordinate
One set with the integer part (YAXIS) I of the data YAXIS
Of the filter coefficients, and the set of filter coefficients
Filter of order indicated by order register C
Read the coefficient. Thus, a certain order
The Ruta coefficient is shown in the figure as FCOEF , FTABLE, C,
(XAXIS) I + 1, (YAXIS) I}. Like this
The filter coefficient of a certain order read out by
It is stored in the arithmetic coefficient register COEFB. In this case, X
Interpolates along the X axis because the axis is a dynamic axis
It is. In the next step 155, the X-axis coordinate data X
AXIS and Y-axis coordinate data YAXIS
The decimal part of the coordinate value corresponding to the axis
And the file stored in the registers COEFA and COEFB.
Performs an operation to interpolate between data coefficients. By this interpolation calculation
The obtained filter coefficient is designated by the order register C.
Filter coefficient register COEFD (C) corresponding to order
(One of COEFD (0) to COEFD (31))
I do. The function of this interpolation calculation is linear interpolation.
Or other appropriate curves (for example, a quadratic curve
Or any interpolation curve previously stored in the interpolation function memory)
There may be. Next, the content of the order register C is incremented by one.
(Step 156) If the value is greater than the maximum degree 31,
It is checked whether there is (step 157). Still maximum order 31
If not, the process returns to step 151, and
Is performed for the next filter order. In this way
By repeating the processing of steps 151 to 57, all orders
Is completed, the step 157 returns to YE
It becomes S, and it goes to step 158. In step 158
Are the filter coefficient registers COEFD (0) to COEFD
The filter coefficient data of all orders stored in (31) is
It is sent to the digital filter 128. Returning to FIG.
After completing the filter coefficient calculation subroutine, step 15 is executed.
Go to 9 and press key code KCODE and key
An ON signal KON is sent to the tone signal generation circuit 127. "Timer Interrupt Routine" in FIG.
First, at step 160, the current
Check if it is sounding. If it is sounding, step 161
Go to the return, if not sounding. Steps
At 161, the current envelope is generated by the filter envelope generator 121.
Imports the generated envelope waveform data and performs EGD
Register as ATA. In the next step 162, the low
Low-frequency modulation signal data currently generated by the wave oscillator 119.
Data and register it as LFODAT. Next step
In step 163, similar to step 145 described above, the module
Operation output of the simulation wheel 118, and
Registered as wheel data WHEELD
I do. In the next step 164, the dynamic axis reference
Touch data TDATA and mode are
DURATION wheel data WHEELD, Envelo
Waveform data EGDATA, low frequency modulation signal data L
FODAT and key scaling data KYSDAT
The coordinate data DYN is variably controlled by calculation, and the calculation result is obtained.
Result is registered as dynamic axis coordinate data DYNDAT
I do. Next, in FIG.
Chin ", which allows filtering by interpolation
Find the coefficient data and digitize the found filter coefficient data.
To the tall filter 128. File as in Fig. 12
Filter table, assuming that
An example of coefficient selection and interpolation calculation will be described. In addition,
In FIG. 12, in order to facilitate understanding, each filter coefficient
The coordinate positions of sets F00 to F22 are set by the filter coefficient set.
The diagram of the filter characteristic realized by the above is arranged in a schematic diagram. This
, The horizontal axis f is frequency, and the vertical axis L is
Level. Dynamic axis data DYNXS
If it is “1” (the Y axis is a dynamic axis),
Dynamic axis reference coordinate data DYN is "0", fixed shaft seat
It is assumed that the target data FIX is set to “2”. This
, The fixed axis coordinate data FIX is used as the X axis coordinate data.
Is specified as “2”, and
"0" corresponding to the dynamic axis reference coordinate data DYN is
Initially specified. By this, X, Y seat
Filter coefficient set F assigned to the target position (2,0)
20 is selected. Touch data TDAT as tone control information
A, modulation wheel data WHEELD, d
Envelope waveform data EGDATA, low frequency modulation signal data
Data LFODAT and key scaling data KYSD
AT changes dynamic axis reference coordinate data DYN.
Adjustments, and the dyna
Mic axis coordinate data DYNDAT is, for example, "0.3"
If there is, the Y-axis coordinate data YAXIS is "0.3"
Is changed to However, the Y-axis coordinate data YAXIS
A few parts (YAXIS) I are not changed to "0",
The filter coefficient set selected from the number table is the X and Y coordinates
F20 assigned to position (2,0), initial
It is not different from what you set. However, the Y-axis coordinate data Y
Fill in the AXIS decimal part "0.3" as a parameter
An interpolation operation is performed between the data coefficient sets F20 and F21. That is, the position is divided into the X and Y coordinate positions (2, 0).
The filter coefficient of the assigned filter coefficient set F20 is
Stored in register COEFA, Y-axis coordinate data YAXI
Y-axis coordinate value that is 1 greater than the integer part (YAXIS) I of S
(YAXIS) I + 1 = “1” and X-axis coordinate data XAX
X, Y coordinate position (2, 2) specified by IS “2”
The filter coefficient set F21 assigned to 1) is filed.
Select from the filter coefficient table and register the filter coefficient
Data in the registers COEFB and COEFA.
Y-axis coordinate data between filter coefficients stored in FB
Interpolation using YAXIS decimal part "0.3" as a parameter
Perform the operation. Is created by interpolation
The filter characteristics realized by the filter coefficients
Corresponding to the filter coefficient sets F20 and F21
The two filter characteristics in the Y-axis coordinate data YAXIS.
It is a characteristic that is interpolated and synthesized at a ratio corresponding to the value of several
is there. For example, if the filter coefficient set F20 is a low-pass filter
F21 realizes high-pass filter characteristics
Each data that is timbre control information.
TDATA, WHEELD, EGDATA, LFODA
Depending on the magnitude of the combined value of T and KYSDAT,
Because of the characteristics closer to the low-pass filter characteristics,
Filter characteristics up to characteristics closer to pass filter characteristics
It can be variably controlled. As described above, the X, Y coordinate position (2, 0)
The assigned filter coefficient set F20 is initially specified.
Data TDAT, which is timbre control information,
A, WHEELD, EGDATA, LFODAT, KY
Dynamic axis reference coordinate data based on SDAT composite value
Performs an operation to modulate the data DYN and obtains the operation result.
The dynamic axis coordinate data DYNDAT obtained is, for example,
If it changes to the integer part like “1.2”, the Y axis
The coordinate data YAXIS has been changed to "1.2"
Accordingly, the integer part of the Y-axis coordinate data YAXIS (YAXI
S) I changes to "1" and the filter is selected from the filter coefficient table.
The selected filter coefficient set is located at the X, Y coordinate position (2, 1).
It changes to the assigned F21. This filter coefficient set
The filter coefficient of F21 is read from the filter coefficient table.
And stored in the register COEFA. Also this
, The integer part of the Y-axis coordinate data YAXIS (YAXI
S) Y-axis coordinate value (YAXIS) I + 1 greater than I by 1 =
Characteristic is "2" and X-axis coordinate data XAXIS "2".
Assigned to the specified X, Y coordinate position (2, 2)
The filter coefficient set F22 is read from the filter coefficient table.
And the filter coefficient is stored in the register COEFB.
Is done. Thus, the filter coefficient set F21 and
Minor part of Y-axis coordinate data YAXIS between F22
An interpolation operation is performed using “0.2” as a parameter. This
Thus, by the filter coefficient created by the interpolation operation,
The realized filter characteristics depend on the filter that was interpolated.
Two filter characteristics corresponding to the coefficient sets F21 and F22
According to the value of the decimal part "0.2" of the Y-axis coordinate data YAXIS.
This is a characteristic obtained by interpolation synthesis at the same ratio. For example, the filter
The coefficient set F21 realizes a high-pass filter characteristic,
Is a high-pass filter whose cutoff frequency is higher than the above.
If the sound quality control information is realized,
Each data TDATA, WHEELD, EGDATA, L
Depending on the magnitude of the combined value of FODAT and KYSDAT,
High-pass with relatively low cutoff frequency corresponding to F21
Relatively high cutoff corresponding to F22 from the filter characteristics
Filter characteristics up to high-pass filter characteristics of frequency
In addition, steps 152, 153 and FIG.
In 154, the coordinate value of the axis corresponding to the dynamic axis is set to 1
Increase, the coordinate value of the axis corresponding to the fixed axis does not increase by 1,
The filter coefficient of the corresponding X, Y coordinate position is stored in the register CO.
It is stored in EFB, but not limited to this.
The coordinate values of both the X and Y axes are each increased by 1, and the corresponding X and Y axes are increased.
Store the filter coefficient of the coordinate position in the register COEFB
You may make it. That is, FCOEF @ FTAB
LE, C, (XAXIS) I + 1, (YAXIS) I + 1}
The filter coefficient of a certain order represented by
You may make it memorize | store in the register COEFB. That
In the case of "Filter related operation panel scan processing"
Data including decimal part as fixed axis coordinate data FIX
Is set, the filter along the fixed axis corresponds to the decimal part.
The filter coefficients can be interpolated. In the above embodiment, control is performed according to the tone color control information.
Coordinate axis (dynamic axis) is only one axis,
This may be two axes of X and Y. Then, both axes
When the coordinate data of the
Filter coefficients to be selected on table coordinates
The direction of movement is not a direction along only one axis.
Arbitrarily, such as the direction of drawing
it can. In the above embodiment, the dynamic axis is a key touch.
Which sound, such as pitch, key scaling, envelope waveform, etc.
Although common to control elements, the type of each tone control element
Dynamic axis can be selected independently for each class
You may do it. In that case, for each type of tone control element
Separately for each of the X and Y axes selected as dynamic axes
The synthesis operation of the corresponding tone color control information and the
It is assumed that a coordinate data change operation is performed. Do so
Thus, more complicated filter control becomes possible. The above embodiment
Now, the filter coefficient table is arbitrarily selected by the performer.
The appropriate file is selected according to the tone selection operation.
The filter coefficient table may be automatically selected.
In addition, dynamic axis selection and dynamic axis coordinate data
Performer settings and fixed axis coordinate data
The X, Y coordinate data is specified by the player
Arbitrarily, but this is also a tone
Appropriate data is automatically selected according to the selection operation etc.
It may be. In the embodiment shown in FIG.
Is executed by software processing, which is also
Even if it is executed by a dedicated hardware circuit,
Good. In the above-described embodiment, the low-frequency oscillator 119 and
The filter envelope generator 121 has dedicated hardware.
It is composed of a
It may be realized by processing. The above embodiment
Then key scaling data generation is key scaling
By reading from the table 120
However, the present invention is not limited to this.
Key scaling corresponding to the pressed key
Data may be generated. Also, in the embodiment of FIG.
It is needless to say that the present invention can be applied not only to compound music instruments. So
, The filter envelope generator 121
Generates envelope waveform data for each sound generation channel
So that Also, in the embodiment of FIG.
Keyboard 116 and touch panel for the unit with
Switch detection circuit 117 may be a separate unit,
In that case, data is exchanged according to the MIDI standard
And In addition, the present invention is limited to musical tone signal processing of scale sounds.
To apply to signal processing of rhythm sounds and other sounds
Can be. In the above embodiment, the filter coefficient table
Are two axes (two-dimensional coordinates),
It may be three axes (three-dimensional coordinates) or one axis (1
As described above, according to the present invention, the filter
Data coefficients are generated by interpolation.
Timbre control content without increasing the amount of filter coefficients
So that filter coefficients can be generated densely
Timbre control using digital filters
Abundant filter characteristics with relatively simple equipment configuration
Performance and rich tone change control.
The effect is excellent. Also this
According to the invention, the data should be read from the filter coefficient storage means.
Basically, the filter coefficient is roughly determined by the reference value data.
Since it is specified, any setting of this reference value data
In the memory of the filter coefficient storage means with various variations
Can be used, which also provides a rich
To be able to realize control
It has the effect. That is, change the selection of filter coefficients
Can be performed easily in a rich manner.
As a result, more complicated digital filter characteristic control
Is relatively easy to do.
The effect is excellent. Further, according to the present invention, the filter coefficient is
Read the specified information for specifying
Indirect reading to read filter coefficient storage means more
And stored in the filter coefficient storage means.
Indirectly by using different timbre information
Can be read and used in common for
Reduce the number of filter coefficients stored in the
And the filter coefficient storage capacity can be
It has an excellent effect that it can be reduced. Ma
Stored in the filter coefficient designation information storage means.
The designation information is for each tone of a tone signal, and
At least one of the range of the signal and the touch
Is remembered, and in these designated information
Have a common timbre, range or touch
Since the one that specifies the filter coefficient is included,
The number of independent variables for reading out the filter coefficients
Can reduce the filter coefficient storage capacity relatively
That is, for each tone of the tone signal and
Designated for at least one of musical range and touch
Increased versatility of tone control by storing information
(Independent variable for reading out the filter coefficients)
While the filter coefficient storage capacity is
It can be said that it does not increase so much
It has the effect.

【図面の簡単な説明】 【図1】 この発明を適用した電子楽器の一実施例を示
すハード構成ブロック図。 【図2】 図1のディジタルフィルタを32次FIRフ
ィルタによって構成する場合の一例を示すブロック図。 【図3】 図1のフィルタパラメータメモリの記憶フォ
ーマットの一例を示す図。 【図4】 フィルタ係数の補間例を説明する図。 【図5】 図1のデータ及びワーキングRAM内の記憶
内容の一例を示す図。 【図6】 図1のマイクロコンピュータ部によって実行
される処理の一例を示すフローチャートであって、メイ
ンルーチンを示す図。 【図7】 ニューキーオン処理ルーチンの一例を示すフ
ローチャート。 【図8】 タイマインタラプトルーチンの一例を示すフ
ローチャート。 【図9】 この発明を適用した電子楽器の別の実施例を
示すハード構成ブロック図。 【図10】 図9のフィルタ係数メモリにおける1つの
フィルタ係数テーブルにおけるフィルタ係数の各組に割
当てられる座標データの一例を示すグラフ。 【図11】 図9のフィルタ関係操作パネルにおけるデ
ィスプレイの表示例を示す図。 【図12】 1つのフィルタ係数テーブルにおける各フ
ィルタ係数組によって実現されるフイルタ特性の一例を
該フィルタ係数組が割当てられた座標配置に対応して夫
々示すグラフ。 【図13】 図9のデータ及びワーキングRAM内の記
憶内容の一例を示す図。 【図14】 図9のマイクロコンピュータ部によって実
行される処理の一例を示すフローチャートであって、メ
インルーチンを示す図。 【図15】 ニューキーオンイベントルーチンの一例を
示すフローチャート。 【図16】 フィルタ係数演算サブルーチンの一例を示
すフローチャート。 【図17】 タイマインタラプトルーチンの一例を示す
フローチャート。 【符号の説明】 10 マイクロコンピュータ部 14 タイマカウンタ 15 鍵盤 16 タッチ検出回路 17 フィルタモードスイッチ 20 フィルタパラメータメモリ 22 楽音信号発生回路 23 ディジタルフィルタ 114 フィルタ係数メモリ 116 鍵盤 117 タッチ検出回路 118 モジュレーションホイール 119 低周波発振器 120 キースケーリングテーブル 121 フィルタエンベロープ発生器 122 操作パネル部 123 フィルタ関係操作パネル 230 ディスプレイ 127 楽音信号発生回路 128 ディジタルフィルタ
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a hardware configuration showing an embodiment of an electronic musical instrument to which the present invention is applied. FIG. 2 is a block diagram showing an example of a case where the digital filter of FIG. 1 is configured by a 32nd-order FIR filter. FIG. 3 is a view showing an example of a storage format of a filter parameter memory of FIG. 1; FIG. 4 is a view for explaining an example of interpolation of filter coefficients. FIG. 5 is a view showing an example of data in FIG. 1 and contents stored in a working RAM; FIG. 6 is a flowchart showing an example of processing executed by the microcomputer unit of FIG. 1, and is a diagram showing a main routine. FIG. 7 is a flowchart illustrating an example of a new key-on processing routine. FIG. 8 is a flowchart illustrating an example of a timer interrupt routine. FIG. 9 is a block diagram of a hardware configuration showing another embodiment of the electronic musical instrument to which the present invention is applied. FIG. 10 is a graph showing an example of coordinate data assigned to each set of filter coefficients in one filter coefficient table in the filter coefficient memory of FIG. 9; FIG. 11 is a view showing a display example of a display on the filter-related operation panel in FIG. 9; FIG. 12 is a graph showing an example of filter characteristics realized by each filter coefficient set in one filter coefficient table, corresponding to a coordinate arrangement to which the filter coefficient set is assigned; FIG. 13 is a view showing an example of the data in FIG. 9 and the contents stored in a working RAM; FIG. 14 is a flowchart showing an example of processing executed by the microcomputer unit of FIG. 9 and showing a main routine. FIG. 15 is a flowchart illustrating an example of a new key-on event routine. FIG. 16 is a flowchart illustrating an example of a filter coefficient calculation subroutine. FIG. 17 is a flowchart illustrating an example of a timer interrupt routine. DESCRIPTION OF SYMBOLS 10 Microcomputer unit 14 Timer counter 15 Keyboard 16 Touch detection circuit 17 Filter mode switch 20 Filter parameter memory 22 Music signal generation circuit 23 Digital filter 114 Filter coefficient memory 116 Keyboard 117 Touch detection circuit 118 Modulation wheel 119 Low frequency Oscillator 120 Key scaling table 121 Filter envelope generator 122 Operation panel unit 123 Filter operation panel 230 Display 127 Musical tone signal generation circuit 128 Digital filter

Claims (1)

(57)【特許請求の範囲】 1.楽音信号とフィルタ係数とを入力し、このフィルタ
係数に応じた特性に従って該入力楽音信号を制御するデ
ィジタルフィルタ手段と、 所望のフィルタ特性を実現する複数組のフィルタ係数を
記憶したフィルタ係数記憶手段と、 前記フィルタ係数記憶手段から読み出すべきフィルタ係
数を指定するための基準値データを設定する基準値デー
タ設定手段と、 音色を可変制御するための制御データを発生する制御デ
ータ発生手段と、 前記基準値データと制御データとを演算し、その演算結
果としてフィルタ係数演算データを得る演算手段と、 前記フィルタ係数演算データに応じて複数のフィルタ係
数を前記フィルタ係数記憶手段から読み出すと共に該読
み出した複数のフィルタ係数を該フィルタ係数演算デー
タに応じて補間し、補間により得られたフィルタ係数を
前記ディジタルフィルタ手段に与えるフィルタ係数補間
手段とを具えた楽音信号処理装置。 2.楽音信号とフィルタ係数とを入力し、このフィルタ
係数に応じた特性に従って該入力楽音信号を制御するデ
ィジタルフィルタ手段と、 複数組のフィルタ係数を夫々記憶するフィルタ係数記憶
手段と、 楽音信号の音色毎であって、かつ楽音信号の音域および
タッチの少なくとも一方毎に、フィルタ係数を指定する
指定情報を記憶するフィルタ係数指定情報記憶手段であ
って、当該指定情報は、異なる音色、音域あるいはタッ
チについて共通のフィルタ係数を指定可能にするもの
と、 発生すべき楽音の音色を示す音色情報と、発生すべき楽
音信号の音域を示す音域情報および発生すべき楽音のタ
ッチを示すタッチ情報の少なくとも一方とを、発生する
情報発生手段と、 前記情報発生手段から発生される情報に従い少なくとも
2組のフィルタ係数を指定するための指定情報を前記フ
ィルタ係数指定情報記憶手段から読み出し、この指定情
報に基づきフィルタ係数を前記フィルタ係数記憶手段か
ら読み出すフィルタ係数読出し手段と、 音色を制御するための制御信号を発生する制御信号発生
手段と、 前記制御信号発生手段から発生された制御信号を補間パ
ラメータとして、前記フィルタ係数読出し手段で読み出
された前記少なくとも2組のフィルタ係数を補間し、補
間により得られたフィルタ係数を前記ディジタルフィル
タ手段に与えるフィルタ係数補間手段とを具えた楽音信
号処理装置。
(57) [Claims] Digital filter means for inputting a tone signal and a filter coefficient and controlling the input tone signal in accordance with characteristics according to the filter coefficient; filter coefficient storage means storing a plurality of sets of filter coefficients for realizing desired filter characteristics; Reference value data setting means for setting reference value data for designating a filter coefficient to be read from the filter coefficient storage means; control data generating means for generating control data for variably controlling a timbre; Calculating means for calculating data and control data to obtain filter coefficient calculation data as a result of the calculation; and a plurality of filters read out from the filter coefficient storage means in accordance with the filter coefficient calculation data and a plurality of the read out filters. The coefficients are interpolated according to the filter coefficient calculation data, and are obtained by interpolation. Tone signal processing device with a filter coefficient interpolation means for providing a filter coefficient to the digital filter means has. 2. Digital filter means for inputting a tone signal and a filter coefficient and controlling the input tone signal in accordance with characteristics according to the filter coefficient; filter coefficient storage means for storing a plurality of sets of filter coefficients; and for each tone color of the tone signal And a filter coefficient designation information storage unit for storing designation information for designating a filter coefficient for at least one of a range and a touch of a musical tone signal, wherein the designation information is common to different timbres, ranges or touches. , And timbre information indicating the timbre of the musical tone to be generated, and at least one of the gamut information indicating the range of the musical tone signal to be generated and the touch information indicating the touch of the musical tone to be generated Generating information generating means, and at least two sets of filter coefficients according to information generated from the information generating means. Reading out the designation information for designating the filter coefficient from the filter coefficient designation information storage means, generating filter coefficient reading means for reading out the filter coefficient from the filter coefficient storage means based on the designation information, and generating a control signal for controlling the timbre. Control signal generating means; and using the control signal generated from the control signal generating means as an interpolation parameter, interpolating the at least two sets of filter coefficients read by the filter coefficient reading means, and obtaining a filter coefficient obtained by interpolation. And a filter coefficient interpolating means for providing the digital sound signal to the digital filter means.
JP7236171A 1986-11-02 1995-08-21 Music signal processor Expired - Fee Related JP2661599B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7236171A JP2661599B2 (en) 1986-11-02 1995-08-21 Music signal processor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP61-261192 1986-11-02
JP26119286 1986-11-02
JP7236171A JP2661599B2 (en) 1986-11-02 1995-08-21 Music signal processor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP62125561A Division JP2526581B2 (en) 1986-11-02 1987-05-22 Music signal processor

Publications (2)

Publication Number Publication Date
JPH08129380A JPH08129380A (en) 1996-05-21
JP2661599B2 true JP2661599B2 (en) 1997-10-08

Family

ID=26532521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7236171A Expired - Fee Related JP2661599B2 (en) 1986-11-02 1995-08-21 Music signal processor

Country Status (1)

Country Link
JP (1) JP2661599B2 (en)

Also Published As

Publication number Publication date
JPH08129380A (en) 1996-05-21

Similar Documents

Publication Publication Date Title
US4907484A (en) Tone signal processing device using a digital filter
JPH079588B2 (en) Musical sound generator
JP2526581B2 (en) Music signal processor
JP2007011217A (en) Musical sound synthesizer and program
JPH0766267B2 (en) Musical sound generator
JP2661599B2 (en) Music signal processor
JP3654117B2 (en) Expansion and contraction method of musical sound waveform signal in time axis direction
JP2017129605A (en) Electronic sound apparatus
JPH0690622B2 (en) Music signal processor
JP3715422B2 (en) Tone generator and electronic musical instrument using the same
JP3644321B2 (en) Data setting device
JP3543384B2 (en) Electronic musical instrument
JP3494313B2 (en) Sound source system
JPH0644191B2 (en) Music signal generator
JPH086563A (en) Musical sound generating device
JP2970438B2 (en) Waveform memory type tone generator
JP2580761B2 (en) Music signal generator
JP2682245B2 (en) Electronic musical instrument
JP2730067B2 (en) Arbitrary waveform generator
JPH06149262A (en) Method and device for musical sound synthesis
JP4158198B2 (en) Waveform generator and waveform generation processing program
JP3007096B2 (en) Musical sound wave generator
JP3651675B2 (en) Electronic musical instruments
JP3674154B2 (en) Music synthesizer
JP3042176B2 (en) Electronic musical instrument

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees