JP4066554B2 - Sound effect device, sound effect adding method, and storage medium storing sound effect adding program - Google Patents

Sound effect device, sound effect adding method, and storage medium storing sound effect adding program Download PDF

Info

Publication number
JP4066554B2
JP4066554B2 JP08268299A JP8268299A JP4066554B2 JP 4066554 B2 JP4066554 B2 JP 4066554B2 JP 08268299 A JP08268299 A JP 08268299A JP 8268299 A JP8268299 A JP 8268299A JP 4066554 B2 JP4066554 B2 JP 4066554B2
Authority
JP
Japan
Prior art keywords
envelope
variable
value
decay
attack
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
JP08268299A
Other languages
Japanese (ja)
Other versions
JP2000276155A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP08268299A priority Critical patent/JP4066554B2/en
Publication of JP2000276155A publication Critical patent/JP2000276155A/en
Application granted granted Critical
Publication of JP4066554B2 publication Critical patent/JP4066554B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【0001】
【発明の属する技術分野】
本発明は、電気信号化した楽音信号を加工することにより該楽音信号に音響的な効果を与える技術に関し、特に、楽音信号を通過させるフィルタの周波数特性を該楽音信号に応じて変化させることにより該楽音信号に音響的な効果を与える技術に関する。
【0002】
【従来の技術】
弦楽器、特にギター等の撥弦楽器の演奏で用いられるエフェクタ(音響効果装置)にオートワウというものがある。オートワウは、入力された楽音信号の大きさに応じ、その楽音信号を通過させるフィルタ(主にバンドパスフィルタ)の通過域を変化させることにより、ダイナミックな音色変化が得られるというものである。オートワウを撥弦楽器で使用すると、撥弦の強さによってその音色を制御できるという特殊な効果を得ることができる。
【0003】
バンドパスフィルタを用いて構成されている一般的なオートワウでは、制御パラメータとして、無入力時のバンドパスフィルタの通過域の中央の周波数である中心周波数、入力される楽音信号の大きさに対する通過域の変化の大きさを示す入力感度、通過域に対して行う変化の方向(通過域の周波数を上げる方向に変化させるか、下げる方向に変化させるか)を示すポラリティ、などが設定可能である。また、中には、LFO(低周波発振器:Low Frequency Oscillator)を装備し、その出力信号で常に通過域の周波数を振動(変調、モジュレーションなどともいう)させておくことで、更なる音響効果を付加することのできる製品もある。
【0004】
【発明が解決しようとする課題】
弦楽器に張られている複数の弦はそれぞれ異なる音高にチューニングがなされており、撥弦の強さに対する発生音の大きさやその発生音の減衰の速度が弦により異なっている。そのため、入力信号の大きさに応じてフィルタの周波数特性を変化させるオートワウ(これを特にレベル追従型のオートワウと称する)では、得られる音色変化が発音させる弦により著しく異なってしまっていた。また、弦にうなりが発生した場合には、発生音の大きさが不安定となるため、予期しない音色変化をオートワウが楽音に与えてしまうことがあった。
【0005】
ところで、オートワウにはQの高いバンドパスフィルタが用いられることが多い。そのため、音域の広い楽曲を演奏する場合などにフィルタを低い音高でセッティングすると、そのセッティングから大きく外れた高い音高の楽音信号の出力レベルが無視できないほどに低下してしまい、オートワウにより得られる音響的効果がその音高により予期しない変化を起こすことがあった。このように、入力信号の大きさのみに応じてフィルタの周波数特性を変化させるレベル追従型のオートワウでは所望の効果の期待できる範囲がある程度限定されてしまっていた。
【0006】
また、前述したLFOを備えているオートワウでは、フィルタの通過域の周波数に対して演奏とは無関係に常に変調が行なわれているため、無機的で単調な印象を演奏に与えてしまうことがあった。
【0007】
これらはいずれも演奏者の意図していない音色変化を起こしたものであり、結果として演奏表現の幅を狭めるものとなっていた。
以上の問題を鑑み、楽器演奏に幅広い演奏表現を与えることのできる音響効果を提供することが、本発明が解決しようとする課題である。
【0008】
【課題を解決するための手段】
前述の課題を解決するため、本発明では、楽音信号を通過させるフィルタの周波数特性を該楽音信号に応じて変化させることで音響的効果を得る音響効果装置において、前記楽音信号のエンベロープを抽出するエンベロープ抽出手段と、このエンベロープ抽出手段により抽出されたエンベロープを解析してアタック区間及びディケイ区間を検出するエンベロープ解析手段と、このエンベロープ解析手段により検出されたディケイ区間内において、予め設定されたディケイレート値に基づいてエンベロープのディケイ部分を生成するディケイエンベロープ生成手段と、前記エンベロープ解析手段により検出されたアタック区間においては、前記エンベロープ抽出手段にて抽出されたエンベロープのアタック部分の変化に応答して前記フィルタの周波数特性を変化させるとともに、前記検出されたディケイ区間においては、前記ディケイエンベロープ生成手段にて生成されたエンベロープのディケイ部分の変化に応答して前記フィルタの周波数特性を変化させる周波数特性変化手段と、を有するように構成する。
【0009】
図1は、本発明の原理構成を示す図である。同図において、音響効果装置1が本発明を実施するものであり、入力された楽音信号に音響的効果を与えて出力するものである。
【0010】
音響効果装置1はフィルタ2を有している。フィルタ2は、その周波数特性を音響効果装置1に入力される楽音信号に応じて変化させることで音響的効果をその楽音信号に与えるものであり、音響効果装置1をオートワウとする場合にはバンドパスフィルタを用いることが一般的ではあるが、他の例えばローパスフィルタ、ハイパスフィルタ、バンドエリミネーションフィルタなどを用いるものであってもよい。
【0011】
本発明の第一の態様においては、ディケイ特性制御手段3aが音響効果装置1に備えられる。ディケイ特性制御手段3aは音響効果装置1に入力された楽音信号の有する楽器音の楽音信号のエンベロープのディケイ部分の減衰特性を制御するものである。
【0012】
そして、本発明の第一の態様においては、周波数特性変化手段4はディケイ特性制御手段3aによりエンベロープのディケイ部分の制御された楽音信号に応じてフィルタ2の周波数特性を変化させる。
【0013】
この構成では、例えば楽器音の楽音信号が元々有していた特性に関わらずに一律な減衰特性となるようにディケイ部分を制御した楽音信号に応じてフィルタ2の周波数特性を変化させる。その結果、楽器音の楽音信号のアタック部分には従来の音響効果装置と同様の音響的効果が付加されることに加え、ディケイ部分では減衰特性が音高により異なっている楽器の楽器音に付加される音響的効果の音高の違いによるばらつきを少なくすることができる。
【0014】
また、この発明において、前記音響効果装置はさらに、周期的な振動信号を生成するLFO手段を有し、前記周波数特性変化手段は、前記検出されたディケイ区間において、このLFO手段にて生成された振動信号の変化に応答して前記フィルタの周波数特性を変化させるように構成すると、楽器への演奏操作に応じて発生する楽器音のディケイ部分でフィルタの周波数特性を振動させることができるようになるので、変化に富んだ暖かみのある効果を演奏音に与えることが期待できる。
【0018】
また、この発明において、前記音響効果装置はさらに、前記楽音信号のピッチを検出するピッチ検出手段を有し、前記周波数特性変化手段は、前記検出されたディケイ区間において、このピッチ検出手段にて検出されたピッチの変化に応答して前記フィルタの周波数特性を変化させるように構成する。
【0019】
本発明では、図1において、ディケイ特性制御手段3aに代えて、ピッチ検出手段3bが音響効果装置1に備えられるように構成する。ピッチ検出手段3bは、音響効果装置1に入力された楽音信号のピッチを検出するものである。
【0020】
そして、本発明においては、周波数特性変化手段4は、ピッチ検出手段3bにより検出された楽音信号のピッチに応じてフィルタ2の周波数特性を変化させる。
【0021】
この構成では、たとえフィルタ2としてQの高いバンドパスフィルタを用いたオートワウを構成する場合であっても、楽音の音高により異なる音響的効果を所望のものとして与えることができるようになるので、効果の期待できる範囲が広がる。
【0022】
また、本発明においては、前記楽音信号は、弦楽器の撥弦操作により生成されるものであり、前記音響効果装置はさらに、該弦楽器の撥弦の方向を検出する撥弦方向検出手段を有し、前記周波数特性変化手段は、前記検出されたディケイ区間において、この撥弦方向検出手段にて検出された撥弦方向の変化に応じて予め設定されている前記フィルタの周波数特性を選択することにより、前記フィルタの周波数特性を変化させるように構成する。
【0023】
本発明においては、図1において、ディケイ特性制御手段3aに代えて、撥弦方向検出手段3cが音響効果装置1に備えられる。撥弦方向検出手段3cは、音響効果装置1に入力された楽音信号の有する弦楽器の楽音信号から該弦楽器の撥弦の方向を検出するものである。
【0024】
そして、本発明においては、周波数特性変化手段4は、撥弦方向検出手段3cにより検出された撥弦の方向に応じてフィルタ2の周波数特性を変化させる。
【0025】
この構成では、弦楽器の撥弦の方向に応じて異なる音響的効果を演奏音に与えることができるので、演奏者は撥弦の方向を変化させるだけで異なる演奏表現を行なうことができるようになる。
【0026】
また、前述の本発明において、前記周波数特性変化手段は、前記撥弦の方向に応じて前記フィルタの通過域を示す周波数の値を増減させるように構成すれば、制御パラメータのひとつであるポラリティを撥弦の方向の変化のみで切り替えることとなり、便利である。
【0027】
以上のように、本発明のいずれの態様の実施によっても、楽器演奏に幅広い演奏表現を与えることのできる音響効果を提供することが可能となる。
なお、本発明に係る音響的効果を得る音響効果付加方法、及びコンピュータに実行させることにより本発明をコンピュータに実施させる音響効果付加プログラムを記憶した記憶媒体も本発明の技術的範囲に含まれるものである。
【0028】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。なお、ここでは、主にギター演奏に用いられるオートワウにおいて本発明を実施する例について説明する。
【0029】
図2は、本発明を実施するオートワウの内部構成を示す図である。同図に示すオートワウ(以下、本装置ともいう)は、ギターの弦の振動をピックアップ等で変換して得られる電気信号である楽音信号がプリアンプを介して入力され、その楽音信号に音響的効果を付加してギターアンプ等に出力するものである。
【0030】
以下、図2に示す本装置を構成する各要素について説明する。
VCF(Voltage Controlled Filter )11は、本実施の形態においてはバンドパスフィルタを構成し、後述するDAコンバータ54の出力するアナログ電圧値に応じてフィルタの中心周波数やQが設定されるものである。
【0031】
出力バッファ12は、本装置の出力に接続されるギターアンプ等の機器の入力特性がVCF11の構成するフィルタの特性に影響を及ぼすことを防止するために設けられている、いわゆるバッファアンプである。
【0032】
エンベロープ検出部20は入力された楽音信号のエンベロープを取得するものである。
図3はエンベロープ検出部20の構成を示す図である。同図に示すように、エンベロープ検出部20は、第1LPF21、全波整流器22、第2LPF23より構成される。
【0033】
まず、第1LPF21において、入力された楽音信号からギターの演奏音のエンベロープの検出には不必要な高域の周波数成分、例えば可聴周波数以上の成分を除去し、除去した結果の楽音信号(波形(1))を全波整流器22に送る。
【0034】
全波整流器22では送られてきた楽音信号を全波整流し、その楽音信号の波高の絶対値(波形(2))を第2LPF23に渡す。
第2LPF23は第1LPF21よりもかなり低い遮断周波数に設定されており、全波整流器22から渡される波高の絶対値を平均化して出力する。この出力の電圧値を時間の経過に応じて繰り返し測定することによってエンベロープ波形(波形(3))が得られる。
【0035】
後述するCPU51は、エンベロープ検出部20の作用により得られた入力された楽音信号のエンベロープ波形を無音区間、アタック区間、ディケイ区間の3種類の区間に分割する。ここで、この分割の手法について予め説明しておく。
【0036】
図4は、エンベロープ波形を分割する手法を説明する図である。同図に示すエンベロープ波形は(A)〜(F)までの6つの区間に分割される。
無音区間とはエンベロープ値が所定のレベルを下回っている区間である。同図に示す区間(A)は、エンベロープ波形がゼロレベルを示しており、無音区間である。
【0037】
アタック区間とはエンベロープ波形が上昇傾向を示している区間であり、同図に示す区間(B)はアタック区間である。無音区間からアタック区間への遷移の判定は、エンベロープ波形が所定の変化基準レベル▲1▼を上回ったことを以って行なう。
【0038】
ディケイ区間とはエンベロープ波形が下降傾向を示している区間であり、同図に示す区間(C)はディケイ区間である。ディケイ区間は必ずアタック区間の次に出現し、エンベロープ波形が変化基準レベル▲2▼を下回り、且つエンベロープにおけるアタックのピークから所定時間(図4には判断区間(a)として図示)以上継続してエンベロープが減少し続けたことを以って判定する。
【0039】
なお、同図に示す区間(D)のように、アタック区間がディケイ区間の次に出現する場合もある。ディケイ区間からアタック区間への遷移の判定は、エンベロープ波形が変化基準レベル▲3▼を上回り、且つそのディケイ区間内におけるエンベロープ波形の最小値から所定時間(図4には判断区間(b)として図示)以上継続してエンベロープが上昇し続けたことを以って判定する。
【0040】
以上の判定基準に従えば、区間(E)は、アタック区間(D)において、エンベロープ波形が変化基準レベル▲4▼(この値は変化基準レベル▲2▼に等しい)を下回り、且つエンベロープにおけるアタックのピークから所定時間(図4には判断区間(c)として図示)以上継続してエンベロープが減少し続けたことにより、ディケイ区間と判定されることは明らかである。
【0041】
また、区間(F)は、ディケイ区間(E)におけるエンベロープ波形が変化基準レベル▲5▼を下回ったので、無音区間に遷移したと判定される。なお、この変化基準レベル▲5▼(ディケイ区間から無音区間への遷移の判断基準となるレベル)と前述した変化基準レベル▲1▼(無音区間からアタック区間への遷移の判断基準となるレベル)とは異なる値を設定できるようにしてもよいが、本実施の形態では同じ値を設定することとする。
【0042】
以上のようにして、後述するCPU51は、得られたエンベロープ波形を3種類の区間に分割する。
図2の説明に戻る。ピッチ−電圧変換部30は入力された楽音信号のピッチを検出し、そのピッチに応じた電圧値を出力するものである。
【0043】
ピッチ−電圧変換部30の構成を図5に示す。同図に示すように、ピッチ−電圧変換部30は、第1LPF31、コンパレータ32、単安定マルチバイブレータ33、第2LPF34より構成される。
【0044】
まず、第1LPF31において、入力された楽音信号からギターの演奏音のエンベロープの検出には不必要な高域の周波数成分、例えば可聴周波数以上の成分を除去し、除去した結果の楽音信号(波形(1))をコンパレータ32に送る。
【0045】
コンパレータ32では、送られてきた楽音信号を、例えば交流成分の正負に応じて2値化し、得られた2値化波形 (波形(2))を単安定マルチバイブレータ33に渡す。
【0046】
単安定マルチバイブレータ33では、渡された2値化波形の例えば立ち上がりエッジのみにおいて一定幅のパルス(波形(3))を出力する。このパルスの単位時間当たりの数は元の楽音信号のピッチに比例した値となる。
【0047】
第2LPF34は、単安定マルチバイブレータ33から出力されるパルス波を積分する。第2LPF34より出力されるアナログ電圧値(波形(4))はパルスの単位時間当たりの数に応じた値となるので、この電圧値を測定すれば元の楽音信号のピッチを求めることができる。
【0048】
図2の説明を続ける。+ピークホールド検出部40a及び−ピークホールド検出部40bは、CPU51により指示されたサンプル期間内において入力された楽音信号の信号レベルの正あるいは負のピークの電圧値を保持するものであり、楽音信号の元であるギター演奏における弦のピッキング(撥弦)の方向を検出するために用いられるものである。
【0049】
本装置において採用するピッキングの方向の検出手法について説明する。
図6は、ピッキングの方向とピックアップの出力波形との関係を示す図であり、ブリッジ61でギターのボディに固定されている弦をピック62を用いてピッキングを行なっている状態を示したものである。同図(i)はギター正面から見た図を示しており、また同図(ii)はピッキング操作を行なっている様子を弦に対して垂直な方向から見た断面図として描いたものである。また、同図(iii )は、ギターに備えられているピックアップがピッキングの結果として出力する出力波形を示すものである。
【0050】
ギターの演奏技法では、実線矢印に示すピッキングの方向により、弦を上方(図6においては右方向)にピッキングするピッキングアップ(同図(A))と、弦を下方(図6においては左方向)にピッキングするピッキングダウン(同図(B))とがある。そして、同図(iii )に示すように、ピックアップからの出力波形は、ピッキングアップとピッキングダウンとで初期の波形の符号が正負反対になる。ギターのピックアップは弦の振動によって起こる磁界の変化をとらえて電気信号として出力するものが一般的であり、ピッキング直後の磁界中における弦の移動方向の違いがこの出力波形の違いとして現れるのである。
【0051】
ピックアップからの出力波形の振幅はピッキング直後の最初の半波が最大となる。従って、この出力波形の波高値の最大値をその出力波形の正側と負側で別々に測定し、その波高値の最大値が出力波形の正側と負側とでどちらが大きいかを判定することにより、ピッキング方向の違いを検出することができる。本装置ではこの手法を用いてピッキングの方向を検出する。
【0052】
図7はピークホールド部の詳細構成を示す図である。同図と図2との関係を説明すると、図2における+ピークホールド部40aが図7における半波整流器42a及びピークホールド回路43aに相当し、図2における−ピークホールド部40bが図7におけるインバータ41、半波整流器42b、及びピークホールド回路43bに相当する。以下、図7について説明する。
【0053】
インバータ41は、入力された楽音信号(1)の符号を反転し、逆相の楽音信号(2)として出力する反転増幅器である。
半波整流器42a及び42bは、入力された信号を半波整流し、その入力信号の負側がカットされた信号(3a、3b)として出力する。
【0054】
ピークホールド回路43a及び43bは、後述するCPU51の制御に従い、入力された信号の指示期間中の最大値をホールドして出力するものである。ここで、後述するCPU51によるピークホールド回路43a及び43bの制御について図8を用いて説明する。
【0055】
図8に(a)として示すように、CPU51は前述したエンベロープ波形におけるアタック区間でピークホールド回路43a及び43bに対し非ホールド(サンプル)指示、すなわちこの区間内における入力信号の最大値に相当する電圧値を出力するように指示する。そして、図8に(b)として示すように、前述したエンベロープ波形におけるディケイ区間でCPU51はピークホールド回路43a及び43bに対してホールド、すなわち直前の非ホールド区間における入力信号の最大値に相当する電圧値の出力を維持するように指示する。CPU51は、このホールド区間においてピークホールド回路43a及び43bの両者から後述するADコンバータ56を介して電圧値を取得し、両者の電圧値、すなわちの直前の非ホールド区間における楽音信号の正側と負側とのレベルの最大値の大小を比較することによりピッキング方向の違いを検出する。
【0056】
図2の説明に戻る。これより説明するCPU51、ROM52、RAM53、DAコンバータ54、ADコンバータ55、インタフェース部57はいずれもバス59を介して相互に接続されている。
【0057】
CPU51は、ROM52に記憶された制御プログラムに従って、RAM53をワークエリアとして使用しながら、本装置全体の動作を制御する中央演算処理装置である。
【0058】
ROM52は、CPU51で実行される本装置全体の制御のための制御プログラムや、後述する各種の信号波形データ等の各種テーブルが予め格納されているリードオンリメモリである。
【0059】
RAM53は、CPU11による処理のためのワークエリアとして、また各種の設定パラメータの記憶用として用いられるランダムアクセスメモリである。
DAコンバータ54は、CPU51から送られてくるデジタルデータに対応するアナログ電圧を出力してVCF11のフィルタ特性を設定するものである。
【0060】
ADコンバータ55は、入力されたアナログ電圧値をサンプリングし、CPU51で処理可能なデジタルデータに変換するものである。
アナログマルチプレクサ56は、CPU51からの指示に従い、エンベロープ検出部20、ピッチ−電圧変換部30、ピークホールド部(40a、40b)のそれぞれの出力から1つを選択し、選択された出力であるアナログ電圧をADコンバータ55に渡すものである。
【0061】
インタフェース部57は、CPU51による制御指示をピークホールド部(40a、40b)もしくはアナログマルチプレクサ56に伝えるものであり、また、CPU51と表示・操作部58とのデータのやり取りの橋渡しを行なうものである。
【0062】
表示・操作部58は、本装置の動作状態を使用者に伝えるための表示を行なったり、操作によって入力される使用者の本装置に対する指示を取得するものである。表示・操作部58に相当する本装置表面のパネル70の概要を図9に示す。本装置はギター演奏を行なう場所のフロアに置かれ、演奏者がパネル70に設けられている各種のペダルスイッチを足で踏む(あるいは手で押す)ことにより本装置への指示が行なわれる。
【0063】
パネル70に備えられている各スイッチ・表示器について説明する。
メモリ切り替えスイッチ71は、パラメータの値の組を選択するためのスイッチであり、各組に対してメモリ番号(メモリ切替えスイッチ71に付されている番号)が対応づけられている。
【0064】
図10は、使用者によって設定される本装置の動作制御パラメータの一覧を示す図である。本装置では使用者により設定されるこれらの各パラメータの値を4組記憶させることができる。これらの各パラメータ値の組の記憶は、RAM53の所定領域への各パラメータ値の格納処理をCPU51が実行することにより行なわれる。図9に示すメモリ切り替えスイッチ71は、これらのパラメータの値の組を選択するためのスイッチである。
【0065】
図10に示した各パラメータについては後に説明することとして、図9の説明に戻る。
液晶表示部72は、本装置の動作モードのひとつである、前述した各パラメータに値を設定してメモリ番号毎に記憶させるエディットモードにおいて、各パラメータの設定内容を表示するものである。
【0066】
メモリ番号表示73は7セグメントのLEDであり、選択されているメモリ番号を数字で表示するものである。
パラメータ選択スイッチ74は、前述したエディットモードにおいて、設定を行なうパラメータを選択するためのスイッチである。
【0067】
バリューエントリスイッチ75は、前述したエディットモードにおいて、各パラメータに具体的な値を設定するために用いられるスイッチである。
書き込みスイッチ76は、前述したエディットモードにおいて、各パラメータに対して設定した値を実際にRAM53の所定領域に格納することを指示するためのスイッチである。
【0068】
エディットモード切替えスイッチ77は、前述したエディットモードと、音響的効果を楽音信号に付加して出力するプレイモードとを切替えるためのスイッチである。
【0069】
次に、図10に示した各種パラメータについて説明する。
図10では、各パラメータをその用途に応じてブロック分けして示している。ブロックFILTERには、VCF11が構成するバンドパスフィルタ(以下、「BPF」と略す)の基本的な特性に関するパラメータがまとめられている。図11を参照しながらブロックFILTERの各パラメータを説明する。
【0070】
Freqは、BPFの通過帯域の中央の周波数、すなわち中心周波数に関するパラメータであり、0から100までの整数の範囲で値が設定される。
Peakは、BPFのQの大きさに関するパラメータであり、0から100までの整数の範囲で値が設定され、大きな値ほど急峻な特性となる。
【0071】
Senseは、本装置のLFO機能及びEG機能によるBPFの中心周波数の変化の程度を設定するパラメータであり、−100から+100までの整数の範囲で値が設定される。この値が正の場合にはBPFの中心周波数を高める方向に変化させ、負の場合には中心周波数を低める方向に変化させる。また、この値の絶対値が大きいほど変化の程度が大きくなる。
【0072】
図10の説明に戻る。ブロックLFOは、VCF11が構成するBPFの中心周波数を振動させるLFO機能に関する設定パラメータがまとめられている。図12を用いてブロックLFOの各パラメータを説明する。
【0073】
Trig Modeは、LFOの動作形態を設定するパラメータである。このパラメータは0、1、2のいずれかの値が設定され、0の場合はLFOの動作停止(OFFモード)を、1の場合は常時動作(ALWAYSモード)を、また、2の場合は入力された楽音信号のエンベロープのディケイ区間のみでの動作(DECAYモード)をそれぞれ示している。なお、図12に示しているLFOの出力波形はDECAYモード時におけるものを示している。
【0074】
Rise Time及びDelay Timeの2つのパラメータは、DECAYモード時での動作にのみ用いられるものである。
Rise Timeは、図12に示すように、LFO機能により振動波の発生を開始させてから定常のレベルまで振動波の振動幅(振幅)が増大するまでに要する時間を設定するものである。この時間設定を用いて、発生開始から所定の振動幅までの振動波のレベルの増加を滑らかに増加させるようにすることにより、オートワウの効果を楽音信号のディケイ区間のみに与えたことによる違和感を軽減させることができる。
【0075】
Delay Timeは、図12に示すように、入力された楽音信号の波形のエンベロープがディケイ区間となってからLFOが発振を開始するまでの遅延時間を設定するものである。この遅延時間の設定により、楽音本来の印象が薄らぎつつあるディケイ部分の後半部のみを強調することができるようになる。
【0076】
このRise Time及びDelay Timeの両者は、0から100までの整数の範囲で値が設定される。
Wave Formは、LFOにより発生させる信号の波形を設定するパラメータである。このパラメータは0、1、2のいずれかの値が設定され、0の場合は正弦波(Sine)を、1の場合は鋸歯状波(Saw)を、また、2の場合はパルス波(Pulse)をそれぞれ示している。なお、図12に示しているLFOの出力波形はこのパラメータに正弦波の出力設定がなされた場合のものを示している。
【0077】
なお、本実施の形態においては、LFOにより発振させる信号の発振周期及び定常の発振振幅レベルは予め設定されており、変更できないものとしている。もちろん、これらの変更ができるような構成としてもよい。
【0078】
図10の説明に戻る。ブロックEGは、VCF11が構成するBPFの中心周波数を変化させる基とするエンベロープカーブを生成するエンベロープジェネレータ機能に関する設定パラメータがまとめられている。図13を用いてブロックEGの各パラメータを説明する。
【0079】
Trig Modeは、エンベロープジェネレータ(以下、「EG」と略す)機能の動作形態を設定するパラメータである。このパラメータは0、1、2のいずれかの値が設定され、0の場合はEG機能の動作停止(OFFモード)を、1の場合は入力の楽音信号のエンベロープ波形におけるいずれの区間でも動作させる常時動作(ALWAYSモード)を、また、2の場合はそのエンベロープ波形のディケイ区間のみでの動作(DECAYモード)をそれぞれ示している。なお、図13において、同図(a)には入力された楽音信号のエンベロープ波形が、同図(b)にはDECAYモードにおけるEG機能によるBPFの周波数の変化幅を示す波形が、また、同図(c)にはALWAYSモードにおけるEG機能によるBPFの周波数の変化幅を示す波形が、それぞれ示されている。
【0080】
Attack Level及びAttack Rateの2つのパラメータは、前述のALWAYSモード時での動作にのみ用いられるものである。
Attack Levelは、図13(c)に示すように、EG機能によって生成されるエンベロープカーブの最大の値を設定するパラメータである。
【0081】
Attack Rateは、図13(c)に示すように、EG機能によって生成されるエンベロープカーブのアタック部分の増加の割合を設定するパラメータである。
【0082】
このAttack Level及びAttack Rateの両者は、0から100までの整数の範囲で値が設定される。
なお、図13(b)に示すように、DECAYモードにおいては、アタック部のエンベロープカーブは入力された楽音信号のエンベロープ波形(同図(a))のアタック部分をそのままBPFの特性変化に使用し、楽音信号のエンベロープがディケイ区間となった以降については、楽音信号のエンベロープ波形のピークから始まるエンベロープカーブをEG機能が生成してBPFの特性変化に使用する。
【0083】
Decay Rateは、図13(b)及び(c)に示すように、EGによって生成されるエンベロープカーブのディケイ部分の減少の割合を設定するパラメータであり、0から100までの整数の範囲で値が設定される。
【0084】
なお、図13に示すように、入力された楽音信号のエンベロープ波形が無音区間に移行した後には、EG機能により生成されるエンベロープは所定の減衰特性で減少してゼロに落ち着く。
【0085】
図10の説明に戻る。ブロックPITCH CTRLには、VCF11が構成するBPFの中心周波数を、入力された楽音信号のピッチに応じて変化させるピッチ制御機能に関するパラメータが示されている。
【0086】
Freq Scalingは、BPFの中心周波数を、入力された楽音信号のピッチに応じて変化させる変化の割合を設定するパラメータである。このパラメータには−100から+100までの整数の範囲で値が設定される。図14に示すように、この値が正の場合には入力された楽音信号のピッチが高いほどBPFの中心周波数を高める方向に変化させ、負の場合には入力された楽音信号のピッチが高いほど中心周波数を低める方向に変化させる制御がなされる。また、この値の絶対値が大きいほど変化の程度が大きくなる。
【0087】
ブロックPICK DIRECTION CTRLは、VCF11が構成するBPFの特性をギター演奏のピッキング方向の違いによって変化させるピッキング制御機能に関するパラメータがまとめられている。
【0088】
Modeは、ピッキング検出により行なわせるBPFの特性変化の内容を設定するパラメータである。このパラメータには0から4のいずれかの整数値が設定される。この値が0の場合は何も変化を発生させない(OFFモード)。1の場合にはピッキングアップの検出時に前述したパラメータSensの正負を示す符号を反転して扱い(Pol+モード)、2の場合にはピッキングダウンの検出時に前述したパラメータSensの正負を示す符号を反転して扱う(Pol−モード)。また、3の場合にはピッキングダウンの検出時に前述したパラメータFreqに後述するOffset Valueの値を加算し(Freq Offsetモード)、4の場合にはピッキングダウンの検出時に前述したパラメータPeakに後述するOffset Valueの値を加算する(Peak Offsetモード)。
【0089】
Offset Valueは、前述したFreq OffsetモードあるいはPeak Offsetモードでのみに用いられる、加算値を設定するパラメータであり、−100から+100までの整数の範囲で値が設定される。
【0090】
以上の各種パラメータが使用者により設定される。
なお、図10の右端の欄に示されているPARAM_SEL値については、後に説明する。
【0091】
次に、図2に示すCPU51が行なう制御について説明する。
図15は、CPU51が、電源投入直後よりROM52に記憶されている制御プログラムを読み出して実行することにより行われる、CPU51による本装置全体の制御処理を示すフローチャートである。CPU51による制御動作を同図に従って説明する。
【0092】
まず、S101において、電源投入直後に初期化処理が実行され、CPU51の有する内部レジスタやRAM53のイニシャライズ、及び後述する各種処理において用いられる各種の変数への初期値の代入などといった処理が行なわれる。
【0093】
S102では、図10に示した各パラメータに使用者の所望するパラメータ値を設定し、その設定内容をパラメータの組毎にRAM53に格納する処理である、エディットモード処理が行なわれる。
【0094】
S103では、音響的効果を楽音信号に付加して出力する機能を本装置に行なわせる処理である、プレイモード処理が行なわれる。以降、エディットモード処理とプレイモード処理とが交互に行なわれる。
【0095】
次に、図15のS102において行われるエディットモード処理の詳細について説明する。図16はエディットモード処理の処理内容を示すフローチャートである。
【0096】
まず、 S111において、前回のメモリ切替えスイッチ71に対する操作によって現在選択されているメモリ番号(この値は変数MEM_SELに格納されているものとする)に対応させてRAM53に格納されているパラメータ値の組におけるパラメータFreqの現在の設定値を取得し、図9の液晶表示部72に、“Freq=XXX ”などというように、パラメータとその設定値との関係が把握できるように表示させる。なお、図15にS101で示した初期化処理には、上述した変数MEM_SELに1を代入し、メモリ番号表示73に“1”を表示させる処理がある。
【0097】
S112では、パネル70に設けられている各種のスイッチが操作されたか否かを調べる。S113において、スイッチ操作が検出されればS114に進む。一方、スイッチ操作が検出されなかったのであればS112へ戻り、スイッチ操作の検出処理を繰り返す。
【0098】
S114では、S113で検出されたスイッチ操作がメモリ切替えスイッチ71に対してのものであったか否かを判定する。メモリ切替えスイッチ71が操作されていたのであればS115に進み、操作されていなかったのであればS116に進む。
【0099】
S115では、操作されたメモリ切替えスイッチ71の各々に付されているメモリ番号に相当する整数を変数MEM_SELに代入し、そのメモリ番号をメモリ番号表示73である7セグメントLEDに表示させる。この処理を終えた後には、S111へ戻って前述した処理を繰り返す。
【0100】
S116では、S113で検出されたスイッチ操作がパラメータ選択スイッチ74に対してのものであったか否かを判定する。パラメータ選択スイッチ74が操作されていたのであればS117に進み、パラメータ選択処理を行なう。その後はS112へ戻って上述した処理を繰り返す。一方、パラメータ選択スイッチ74が操作されていなかったのであればS118に進む。パラメータ選択処理の詳細については後述する。
【0101】
S118では、S113で検出されたスイッチ操作がバリューエントリスイッチ75に対してのものであったか否かを判定する。バリューエントリスイッチ75が操作されていたのであればS119に進み、パラメータ値変更処理を行なう。その後はS112へ戻って上述した処理を繰り返す。一方、バリューエントリスイッチ75が操作されていなかったのであればS120に進む。パラメータ値変更処理の詳細についても後述する。
【0102】
S120では、S113で検出されたスイッチ操作が書き込みスイッチ76に対してのものであったか否かを判定する。書き込みスイッチ76が操作されていたのであればS121に進み、操作されていなかったのであればS122に進む。
【0103】
S121では、パラメータ値変更処理(S119)によって設定された各パラメータ値の変更内容(後述する変数TEMPの内容)を、変数MEM_SELの現在の値で示されるメモリ番号であって現在選択中のパラメータに対応するRAM53上の所定領域に格納し、その後S112へ戻って上述した処理を繰り返す。
【0104】
S122では、S113で検出されたスイッチ操作がエディットモード切替えスイッチ77に対してのものであったか否かを判定する。エディットモード切替えスイッチ77が操作されていたのであれば、S123で液晶表示器72への現在の表示を中止し、そして、今回のエディットモード処理を終了してプレイモード処理(図15のS103)に移行する。一方、エディットモード切替えスイッチ77が操作されていなかったのであれば、S113の判定処理は誤判定であったとみなし、S112へ戻って上述した処理を繰り返す。
【0105】
以上の処理がエディットモード処理である。
次に、前述したエディットモード処理でのS117におけるパラメータ選択処理について説明する。パラメータ選択処理は、本装置がエディットモード動作を行なっているときにパラメータ選択スイッチ74が操作されると実行される処理であり、液晶表示部72に表示されている、設定対象のパラメータ名とその現在設定値の表示を切り替える処理である。
【0106】
図17はパラメータ選択処理の処理内容を示すフローチャートである。
同図において、まずS131で、直前のステップ(図16のS116)で操作有りと検出されたパラメータ選択スイッチ74が、“+”(プラス)表示のあるものであったか否かを判別し、+表示のあるものが操作されていたのであればS132に進み、そうでない場合、すなわち“−”(マイナス)表示のあるものが操作されていたのであればS135に進む。
【0107】
S132では、変数PARAM_SELを1だけ増加させる。ここで、変数PARAM_SELとは、図10に示すように、本装置の使用者により設定可能な各種パラメータに0から13までの番号を対応付け、数字により各種パラメータを参照できるようにするための変数であり、値の範囲は図10より0以上13以下の整数である。この各種パラメータと変数PARAM_SELとの対応関係はROM52の所定領域に予め格納されて示されている。なお、変数PARAM_SELは、初期化処理(図15のS101)では0に設定されている。
【0108】
S133では、変数PARAM_SELと13との数の大小を判別する。変数PARAM_SELが13を超えてしまった場合にのみ、S134で、変数PARAM_SEKLに0を代入する。この処理により、パラメータ選択スイッチ74による順方向のサイクリックなパラメータ選択が行なえる。この処理の後はS138に進む。
【0109】
ところで、S131において、−表示のあるパラメータ選択スイッチ74が操作されていたと判定された場合には、S135で、変数PARAM_SELを1だけ減少させる。
【0110】
S136では、変数PARAM_SELと0との数の大小を判別する。変数PARAM_SELが0を下回ってしまった場合にのみ、S137で、変数PARAM_SEKLに13を代入する。この処理では、パラメータ選択スイッチ74による逆方向のサイクリックなパラメータ選択が実現される。
【0111】
S138では、ROM52及びRAM53を参照して変数PARAM_SELの現在の値に対応するパラメータ名とそのパラメータの現在の設定値を取得し、取得結果を液晶表示器72に表示させ、今回のパラメータ選択処理を終了してエディットモード処理へ戻る。
【0112】
以上までの処理がパラメータ選択処理である。
次に、前述したエディットモード処理でのS119(図16)におけるパラメータ値変更処理について説明する。パラメータ値変更処理は、本装置がエディットモード動作を行なっているときにバリューエントリスイッチ75が操作されると実行される処理であり、液晶表示部72で示されている、前述したパラメータ選択処理で選択された設定対象のパラメータの値の変更についての使用者からの指示を受け取る処理である。
【0113】
図18はパラメータ値変更処理の処理内容を示すフローチャートである。
同図において、まずS141で、変数PARAM_SELの値で示されている、現在選択中であって液晶表示器72にも現在表示中であるパラメータの現在の値を変数TEMPに代入する。
【0114】
S142では、直前のステップ(図16のS118)で操作が検出されたバリューエントリスイッチ75は、“+”(プラス)表示のあるものであったか否かを判別し、+表示のあるものが操作されていたのであればS143に進み、そうでない場合、すなわち“−”(マイナス)表示のあるものが操作されていたのであればS144に進む。
【0115】
S143では、変数TEMPを1だけ増加させ、S145に進む。
S144では、変数TEMPを1だけ減少させる。
S145では、現在の変数TEMPの値が現在選択中のパラメータの変域を外れてしまっているか否かを調べる。外れてしまっているのであればS146に進み、外れていないのであればS147に進む。
【0116】
S146では、現在選択中のパラメータの現在の値を変数TEMPに改めて代入し直す。このステップの処理により、設定パラメータの設定内容がそのパラメータの許容する変域外の値となってしまうことを防止している。
【0117】
S147では、ROM52及びRAM53を参照して変数PARAM_SELの現在の値に対応するパラメータ名を取得し、そのパラメータ名と変数TEMPの現在の値とを液晶表示器72に表示させ、今回のパラメータ値変更処理を終了してエディットモード処理へ戻る。
【0118】
以上までの処理がパラメータ値変更処理である。
次に、図15のS103において行われるプレイモード処理の詳細について説明する。図19はプレイモード処理の処理内容を示すフローチャートである。
【0119】
まず、S201で、エディットモード処理の説明の際に述べた変数MEM_SELで示される現在選択中のメモリ内容を、プレイモード処理のためにRAM53の所定領域に設定される一時記憶領域(これをテンポラリメモリと呼ぶ)に複写し格納する。
【0120】
S202では、パネル70に設けられている各種のスイッチが操作されたか否かを調べる。S203において、スイッチ操作が検出されればS204に進み、スイッチ操作が検出されなかったのであればS208に進む。
【0121】
S204では、前ステップで検出されたスイッチ操作がエディットモード切替えスイッチ77に対してのものであったか否かを判定する。エディットモード切替えスイッチ77が操作されていたのであれば今回のエディットモード処理を終了し、エディットモード処理(図15のS102)に移行する。一方、エディットモード切替えスイッチ77が操作されていなかったのであれば、S205に進む。
【0122】
S205では、S203で検出されたスイッチ操作がメモリ切替えスイッチ71に対してのものであったか否かを判定する。メモリ切替えスイッチ71が操作されていたのであればS206に進み、操作されていなかったのであればS208に進む。
【0123】
S206では、操作されたメモリ切替えスイッチ71の各々に付されているメモリ番号を変数MEM_SELに代入し、そのメモリ番号をメモリ番号表示73である7セグメントLEDに表示させる。
【0124】
S207では、前ステップで変更された変数MEM_SELで示される現在選択中のメモリ内容を、テンポラリメモリに複写し格納する。
S208では、本装置に入力された楽音信号の解析を行なう処理である入力信号解析処理を行なう。入力信号解析処理の詳細は後述する。
【0125】
S209では、エディットモード処理により使用者に設定された各種パラメータであって現在テンポラリメモリに格納されているその各種パラメータと、前ステップの入力信号解析処理により得られた解析結果と、に基づいてVCF11を制御する処理であるVCF制御処理を行なう。VCF制御処理の詳細も後述する。
【0126】
S209の処理を終えた後には、S202へ戻り、前述した処理を繰り返す。
以上の処理がプレイモード処理である。
次に、前述したプレイモード処理でのS208における入力信号解析処理について説明する。この入力信号解析処理と後述するVCF制御処理とが本発明に直接関係する処理である。
【0127】
図20は入力信号解析処理の処理内容を示すフローチャートである。
まず、S211では、図2に示したエンベロープ検出部20、ピッチ−電圧変換部30、ピークホールド部(40a、40b)の各部の出力するアナログ電圧の電圧値をデジタルデータとしてCPU51に取得させる処理である入力信号データ取得処理が行なわれる。
【0128】
S212では、現在入力されている楽音信号が前述の楽音信号のエンベロープを分割する3つの区間(無音区間、アタック区間、ディケイ区間)のいずれに含まれるかを、エンベロープ検出部20より取得したデータに基づいて判別する処理であるエンベロープ解析処理が行なわれる。
【0129】
S213では、現在入力されている楽音信号のピッチを、ピッチ−電圧変換部30より取得したデータより検出する処理であるピッチ検出処理が行なわれる。
S214では、入力された楽音信号の元であるギター演奏における弦のピッキングの方向を、ピークホールド部(40a、40b)より取得したデータより検出する処理である、ピッキング方向検出処理が行なわれる。
【0130】
以上のS212からS214にかけての各処理の詳細は後で述べる。
S214の処理を終えた後には、今回の入力信号解析処理を終了し、プレイモード処理へ戻る。
【0131】
以上の処理が入力信号解析処理である。
次に、前述した入力信号解析処理でのS211における入力信号データ取得処理について説明する。図21は入力信号データ取得処理の処理内容を示すフローチャートである。
【0132】
まず、S221では、変数ANA_MPXに1を代入する。ここで、変数ANA_MPXとは、アナログマルチプレクサによる信号の切替の選択のために用いられる変数であり、1から4までのいずれかの整数を値とする。そして、この値が1の場合にはエンベロープ検出部20の出力、2の場合にはピッチ−電圧変換部30の出力、3の場合には+ピークホールド部40aの出力、4の場合には−ピークホールド部40bの出力、を選択することをそれぞれ示す。
【0133】
S222では、アナログマルチプレクサ56の4系統の入力をI/F部57を介して切替制御し、変数ANA_MPXの現在の値により示される出力信号がADコンバータ55の変換アナログ電圧入力に与えられるようにする。
【0134】
S223では、ADコンバータ55の現在の変換デジタルデータ出力を取得し、取得したデータを変数AD_VALUE(ANA_MPX)に代入する。後述する各処理においては、この変数AD_VALUE (ANA_MPX)を参照することで各部の現在の出力アナログ電圧値のAD変換データの参照が可能になる。
【0135】
S224では、変数ANA_MPXを1だけ増加させる。
S225では、変数ANA_MPXと4との数の大小を判別する。変数ANA_MPXが4を超えてしまったならば、今回の入力信号データ取得処理を終了し、入力信号解析処理へ戻る。一方、変数ANA_MPXが4を超えていないのであればS222へ戻り、上述した処理を繰り返してデータの取得を続ける。
【0136】
以上の処理が入力信号データ取得処理である。
次に、前述した入力信号解析処理でのS212(図20)におけるエンベロープ解析処理について説明する。図22はエンベロープ解析処理の処理内容を示すフローチャートである。
まず、S231では、変数AD_VALUE(1)の値、すなわちデジタルデータであるエンベロープ検出部20の出力電圧値と、エンベロープ波形における無音区間の判定基準レベル(図4における変化基準レベル▲1▼あるいは▲5▼)との大小を比較する。変数AD_VALUE(1)の値が無音区間の判定基準レベルを下回っているのであればS232に進み、変数AD_VALUE(1)の値が無音区間の判定基準レベルを下回っていないのであればS239に進む。
【0137】
S232では変数ENV_PERIODに0を代入する。ここで、変数ENV_PERIODとは、現在入力されている楽音信号が前述の楽音信号のエンベロープを分割する3つの区間のいずれに含まれているかを示す変数であり、0、1、2のいずれかの値をとる。そして、この値が0である場合には現在の楽音信号のエンベロープが無音区間に含まれていることを示し、この値が1である場合にはアタック区間に含まれていることを、また、2である場合にはディケイ区間に含まれていることを、それぞれ示している。
【0138】
S233では、変数ENV_MAXの初期化、すなわち0の代入を行なう。
S234では、変数ENV_MINの初期化、すなわちADコンバータ55の出力する最大値のデータを代入する。
【0139】
S235及びS236では、変数ATTACK_TIMER_F及び変数ATTACK_TIMERの初期化、すなわち両者への0の代入を行なう。
S237及びS238では、変数DECAY_TIMER_F及び変数DECAY_TIMERの初期化、すなわち両者への0の代入を行ない、S244に進む。
【0140】
以上のS233からS238にかけての処理で用いられている各変数については、後述するアタック区間内解析処理もしくはディケイ区間内解析処理で説明する。
【0141】
ところで、S231における判断処理で変数AD_VALUE(1)の値が無音区間の判定基準レベルを下回っていないと判定された場合には、S239では、変数ENV_PERIODの値が0であるか否かを調べる。つまり、エンベロープ解析処理の前回の解析結果として、前回処理時における楽音信号のエンベロープが無音区間に含まれていると判定されていたか否かを調べる。その結果、変数ENV_PERIODの値が0、すなわち、前回処理時における楽音信号のエンベロープは無音区間に含まれていると判定されていたのであればS240に進む。一方、変数ENV_PERIODの値が0でない、すなわち、前回処理時には無音区間に含まれていると判定されていなかったのであればS241に進む。
【0142】
S240では、前回処理時には無音区間に含まれていた楽音信号のエンベロープが今回は無音区間の判定基準レベル以上となり、アタック区間に含まれるようになったと判定し、変数ENV_PERIODの値を1に設定する。その後、S244に進む。
【0143】
S241では、変数ENV_PERIODの値が1であるか否かを調べ、エンベロープ解析処理の前回実行時の解析結果として、前回実行時における楽音信号のエンベロープはアタック区間に含まれていると判定されていたか否かを調べる。その結果、変数ENV_PERIODの値が1、すなわち、前回処理時にはアタック区間に含まれていると判定されていたのであればS242に進み、アタック区間内においてのエンベロープの解析を行なう処理であるアタック区間内解析処理を行なった後、S244に進む。一方、S241における判断処理の結果、変数ENV_PERIODの値が1ではなく、また、S239における判断処理によってその値が0でもない、すなわち、前回処理時における楽音信号はディケイ区間に含まれていると判定されていたのであればS243に進み、ディケイ区間内においてのエンベロープの解析を行なう処理であるディケイ区間内解析処理を行なう。
【0144】
S244では、変数ENV_LASTVALUEに変数AD_VALUE(1)の値を代入する。変数ENV_LASTVALUEは、変数AD_VALUE(1)の今回の値、すなわち、デジタルデータであるエンベロープ検出部20の現在の出力電圧値が代入される。この変数は次回にエンベロープ解析処理が実行される際に後述するアタック区間内解析処理もしくはディケイ区間内解析処理で用いられる変数である。なお、図15にS101で示した初期化処理ではこの変数ENV_LASTVALUEに0を代入して初期化する処理が含まれている。
【0145】
S244の処理の後には、今回のエンベロープ解析処理を終了して入力信号解析処理へ戻る。
以上までの処理がエンベロープ解析処理である。
【0146】
次に、エンベロープ解析処理でのS242におけるアタック区間内解析処理について説明する。図23はアタック区間内解析処理の処理内容を示すフローチャートである。
【0147】
まず、S251において、変数AD_VALUE(1)と変数ENV_LASTVALUEとの値の大小を比較する。その結果、変数AD_VALUE(1)の値が変数ENV_LASTVALUEの値よりも小さい、すなわちエンベロープ検出部20の現在の出力電圧値が前回の値よりも減少しているのであればS252に進み、減少しなかったのであればS259に進む。
【0148】
S252では、変数DECAY_TIMER_Fに1を代入する。
ここで、変数DECAY_TIMER及び変数DECAY_TIMER_Fについて説明する。変数DECAY_TIMERは、アタック区間において、エンベロープが継続して減少し続けたときの継続時間を測定するためのカウンタであり、アタック区間からディケイ区間への遷移の判定のために用いられる変数である。変数DECAY_TIMERは、後述するタイマ割り込み処理により、変数DECAY_TIMER_Fが1のときにのみ一定時間毎に値を1ずつ増加させる処理が施される。従って、変数DECAY_TIMER_Fに1以外の値、本実施の形態においては0が代入された場合には、変数DECAY_TIMERの値の増加を停止させることができる。なお、図15にS101で示した初期化処理では、この変数DECAY_TIMER_F及び変数DECAY_TIMERに0を代入して初期化する処理が含まれている。
【0149】
S253では、変数DECAY_TIMERの値と、エンベロープ波形におけるアタック区間からディケイ区間へ遷移したことを判定する基準となるディケイ区間判定基準時間(図4における判断区間(a)もしくは(c)の時間)との値の大小を判定する。変数DECAY_TIMERの値がディケイ区間判定基準時間を超えたのであればS255に進む。一方、変数DECAY_TIMERの値がディケイ区間判定基準時間を未だ超えていないのであれば今回のアタック区間内解析処理を終了し、エンベロープ解析処理へ戻る。
【0150】
S254では、変数ENV_MAXの値から変数AD_VALUE(1)の値を減じた結果の値と、エンベロープ波形におけるアタック区間からディケイ区間へ遷移したことを判定する基準となるディケイ区間判定基準レベル(図4における変化基準レベル▲2▼もしくは▲4▼)との値の大小を判定する。ここで、変数ENV_MAXとは、現在入力されている楽音信号が含まれている今回のアタック区間内において、今まで観測した変数AD_VALUE(1)の値の最大値が代入される変数である。従って、変数ENV_MAXの値から変数AD_VALUE(1)の値を減じた結果の値とは今回のアタック区間内において今までに観測されたエンベロープの最大レベルからの減少分を示しており、また、この結果の値が負となる場合には現在の楽音信号のエンベロープが増加中であることを示している。
【0151】
なお、図15にS101で示した初期化処理では、この変数ENV_MAXに0を代入して初期化する処理が含まれている。
このS254の判断処理の結果、変数ENV_MAXの値から変数AD_VALUE(1)の値を減じた結果の値がディケイ区間判定基準レベルよりも大きいと判断したならばS255に進む。一方、その結果の値がディケイ区間判定基準レベルよりも大きくはないと判断したならば今回のアタック区間内解析処理を終了し、エンベロープ解析処理へ戻る。
【0152】
S255では、エンベロープ検出部20の現在の出力電圧値がアタック区間からディケイ区間への区間遷移の判定基準を満たしていると判定し、変数ENV_PERIODの値を2に設定する。
【0153】
S256、S257、258では、変数DECAY_TIMER_F、変数DECAY_TIMER、変数ENV_MAXの各々に順に0を代入して各変数の初期化を行ない、その後、今回のアタック区間内解析処理を終了してエンベロープ解析処理へ戻る。
【0154】
ところで、S251の判断処理において、変数AD_VALUE(1)の値が変数ENV_LASTVALUEの値よりも小さくない、すなわちエンベロープ検出部20の現在の出力電圧値が前回の値よりも減少しなくなったと判定された場合には、S259及びS260で変数DECAY_TIMER_F及び変数DECAY_TIMERに順に0を代入して各変数の初期化を行なう。
【0155】
S261では、変数AD_VALUE(1)と変数ENV_MAXとの値の大小を判定する。その結果、変数AD_VALUE(1)が変数ENV_MAXよりも大きな値となった場合にのみ、S262において変数ENV_MAXに変数AD_VALUE(1)の値を代入し、今回のアタック区間におけるエンベロープの観測最大値の更新を行なう。
【0156】
以上の処理の終了後には今回のアタック区間内解析処理を終了してエンベロープ解析処理へ戻る。
以上までの処理がアタック区間内解析処理である。
【0157】
次に、エンベロープ解析処理でのS243(図22)におけるディケイ区間内解析処理について説明する。図24はディケイ区間内解析処理の処理内容を示すフローチャートである。
【0158】
まず、S271において、変数AD_VALUE(1)と変数ENV_LASTVALUEとの値の大小を比較し、変数AD_VALUE(1)の値が変数ENV_LASTVALUEの値よりも大きい、すなわちエンベロープ検出部20の現在の出力電圧値が前回の値よりも増加しているのであればS272に進み、増加しなかったのであればS279に進む。
【0159】
S272では、変数ATTACK_TIMER_Fに1を代入する。
変数ATTACK_TIMER及び変数ATTACK_TIMER_Fについて説明すると、変数ATTACK_TIMERは、ディケイ区間において、エンベロープが継続して増加し続けたときの継続時間を測定するためのカウンタであり、ディケイ区間からアタック区間への遷移の判定のために用いられる変数である。変数ATTCK_TIMERは、後述するタイマ割り込み処理により、変数ATTACK_TIMER_Fが1のときにのみ一定時間毎に値を1ずつ増加させる処理が施され、変数ATTACK_TIMER_Fに1以外の値、例えば0が代入された場合には変数ATTACK_TIMERの値の増加を停止させることができる。なお、図15にS101で示した初期化処理では、この変数ATTACK_TIMER_F及び変数ATTACK_TIMERに0を代入して初期化する処理が含まれている。
【0160】
S273では、変数ATTACK_TIMERの値と、エンベロープ波形におけるディケイ区間からアタック区間へ遷移したことを判定する基準となるアタック区間判定基準時間(図4における判断区間(b)の時間)との値の大小を判定する。変数ATTACK_TIMERの値がアタック区間判定基準時間を超えたのであればS274に進む。一方、変数ATTACK_TIMERの値がアタック区間判定基準時間を未だ超えていないのであれば今回のディケイ区間内解析処理を終了し、エンベロープ解析処理へ戻る。
【0161】
S274では、変数AD_VALUE(1)の値から変数ENV_MAXの値を減じた結果の値と、エンベロープ波形におけるディケイ区間からアタック区間へ遷移したことを判定する基準となるアタック区間判定基準レベル(図4における変化基準レベル▲3▼)との値の大小を判定する。ここで、変数ENV_MINとは、現在入力されている楽音信号が含まれている今回のディケイ区間内において、今まで観測した変数AD_VALUE(1)の値の最小値が代入される変数である。従って、変数AD_VALUE(1)の値から変数ENV_MINの値を減じた結果の値とは今回のディケイ区間内において観測されたエンベロープの最小レベルからの増加分を示しており、また、この結果の値が負となる場合には現在の楽音信号のエンベロープが減少中であることを示している。
【0162】
なお、図15にS101で示した初期化処理では、この変数ENV_MINにADコンバータ55の出力する最大値のデータを代入して初期化する処理が含まれている。
【0163】
このS274の判断処理の結果、変数AD_VALUE(1)の値から変数ENV_MAXの値を減じた結果の値がアタック区間判定基準レベルよりも大きいと判断したならばS275に進み、その結果の値がアタック区間判定基準レベルよりも大きくはないと判断したならば今回のディケイ区間内解析処理を終了し、エンベロープ解析処理へ戻る。
【0164】
S275では、エンベロープ検出部20の現在の出力電圧値がディケイ区間からアタック区間への区間遷移の判定基準を満たしていると判定し、変数ENV_PERIODの値を1に設定する。
【0165】
S276、S277、S278では、変数ATTACK_TIMER_F、変数ATTACK_TIMER、変数ENV_MINの各々を初期化する。ここで、変数DECAY_TIMER_F及び変数DECAY_TIMERには順に0を代入するが、変数ENV_MINにはADコンバータ55の出力可能な最大値のデータを代入する。
【0166】
その後、今回のアタック区間内解析処理を終了してエンベロープ解析処理へ戻る。
ところで、S271の判断処理において、変数AD_VALUE(1)の値が変数ENV_LASTVALUEの値よりも大きくない、すなわちエンベロープ検出部20の現在の出力電圧値が前回の値よりも増加しなくなったと判定された場合には、S279及びS280で変数ATTACK_TIMER_F及び変数ATTACK_TIMERに順に0を代入して各変数の初期化を行なう。
【0167】
S281では、変数AD_VALUE(1)と変数ENV_MINとの値の大小を判定する。その結果、変数AD_VALUE(1)が変数ENV_MINよりも小さな値となった場合にのみ、S282において変数ENV_MINに変数AD_VALUE(1)の値を代入し、今回のディケイ区間におけるエンベロープの最小値の更新を行なう。
【0168】
以上の処理の終了後には今回のディケイ区間内解析処理を終了してエンベロープ解析処理へ戻る。
以上までの処理がディケイ区間内解析処理である。
【0169】
次に、入力信号解析処理でのS213(図20)におけるピッチ検出処理について説明する。図25はピッチ検出処理の処理内容を示すフローチャートである。
【0170】
まず、S291では、ROM52の所定の領域に予め格納されているAD値−ピッチ変換テーブルを参照する。このAD値−ピッチ変換テーブルは、既知のピッチである試験信号を入力した場合にピッチ−電圧変換部30から出力されるアナログ電圧をADコンバータ55がAD変換したときに出力されるデジタルデータを観測し、入力の試験信号のピッチと出力データとの関係をテーブルとしてROM52に格納したものである。
【0171】
S292では、このAD値−ピッチ変換テーブルから変数AD_VALUE(2)の値、すなわちピッチ−電圧変換部30の現在の出力電圧値に対応するピッチの値を取得し、変数PITCHに代入する。この後に行われる処理においては、この変数PITCHの値を参照することによって現在の楽音信号のピッチの値を取得することができる。
【0172】
以上の処理の終了後には今回のピッチ検出処理を終了して入力信号解析処理へ戻る。
以上までの処理がピッチ検出処理である。
【0173】
次に、入力信号解析処理でのS214(図20)におけるピッキング方向検出処理について説明する。図26はピッキング方向検出処理の処理内容を示すフローチャートである。
【0174】
まず、S301では、変数ENV_PERIODが2であるか否か、すなわちエンベロープ解析処理の結果、現在の楽音信号がディケイ区間に含まれているか否かを判定する。変数ENV_PERIODが2であればS302に進み、2ではないのであればS306に進む。
【0175】
S302では、変数HOLD_CTRLに1を代入する。変数HOLD_CTRLは、ピークホールド部(40a、40b)でのアナログ電圧のホールド・非ホールド(サンプル)を制御する変数であり、この変数に1を代入すると、ピークホールド回路(43a、43b)に対してそれまでに与えられたアナログ電圧の最大値の出力を保持させるホールド制御がなされる。また、この変数に0を代入すると、ピークホールド回路(43a、43b)に対してそれまでに与えられたアナログ電圧の最大値を出力させる非ホールド(サンプル)制御がなされる。なお、図15にS101で示した初期化処理では、この変数HOLD_CTRLに0を代入して初期化する処理が含まれている。
【0176】
S303では、変数AD_VALUE(3)と変数AD_VALUE(4)との値の大小を判定する。変数AD_VALUE(3)の値が変数AD_VALUE(4)の値以上である、すなわち+ピークホールド部40aの現在の出力電圧値が−ピークホールド部40bの現在の出力電圧値以上である場合には、S304において、変数PICKINGに0を代入する。一方、変数AD_VALUE(3)の値が変数AD_VALUE(4)の値よりも小さい、すなわち+ピークホールド部40aの現在の出力電圧が−ピークホールド部40bの現在の出力電圧よりも小さい場合には、S305において、変数PICKINGに1を代入する。この後に行われる処理においては、この変数PICKINGの値を参照することにより、値が0の場合にはピッキングアップの奏法で現在演奏がなされていることを認識し、また、値が1の場合にはピッキングダウンの奏法で現在演奏がなされていることを認識することができる。
【0177】
この処理の後は、今回のピッキング方向検出処理を終了して入力信号解析処理へ戻る。
ところで、S301の判断処理において、変数ENV_PERIODが2ではない、すなわちエンベロープ解析処理の結果、現在の楽音信号がディケイ区間に含まれていないと判定されると、S306で、変数HOLD_CTRLが1であるか否かを判定する。この結果、変数HOLD_CTRLが1である、すなわちこの時点まではピークホールド部(40a、40b)に対してホールド制御が行われていた、つまり、この時点までは楽音信号がディケイ区間に含まれていたと判定された場合にのみ、S307において、ピークホールド部(40a、40b)をリセットし、更にS308において、変数HOLD_CTRLに0を代入して非ホールド制御を行なう。なお、ピークホールド部(40a、40b)は、リセットされることにより今まで出力していたアナログ電圧の最大値の出力の保持が解放され、出力のアナログ電圧値が一旦ゼロとなる。
【0178】
この処理の後は、今回のピッキング方向検出処理を終了して入力信号解析処理へ戻る。
以上までの処理がピッキング方向検出処理である。
【0179】
次に、プレイモード処理でのS209(図19)におけるVCF制御処理について説明する。このVCF制御処理も、前述した入力信号解析処理と共に、本発明に直接関係している処理である。
【0180】
図27はVCF制御処理の処理内容を示すフローチャートである。
まず、S311において、VCF11が構成するBPFの中心周波数を振動させるLFO機能を本装置で実現するための処理であるLFO処理が行なわれる。
【0181】
S312では、VCF11が構成するBPFの中心周波数の変化の基とするエンベロープカーブを生成するEG(エンベロープジェネレータ)機能を本装置で実現するための処理であるEG処理が行なわれる。
【0182】
S313では、VCF11が構成するBPFの中心周波数を入力された楽音信号のピッチに応じて変化させる機能であるピッチ制御機能を本装置で実現するための処理であるピッチ制御処理が行なわれる。
【0183】
S314では、VCF11が構成するBPFの特性をギター演奏のピッキング方向の違いによって変化させるピッキング制御機能を本装置で実現するための処理であるピッキング制御処理が行なわれる。
【0184】
以上のS311からS314にかけての各処理の詳細は後述する。
S315では、Fpitch×{1+S×(LFO+EG)×1/2}+Foffsetで求まる値を変数Fに代入する。変数FはVCF11への制御アナログ電圧を設定するための変数であり、VCF11が構成するBPFの中心周波数の設定値である。このステップにおいて用いられる各変数については、後述するS311からS314にかけての各処理の詳細説明において説明する。
【0185】
S316では、ROM52に予め格納されている、VCF11へ印加する制御電圧とVCF11で構成するBPFの中心周波数若しくはQの高さの設定値との対応関係が示されているVCF制御データテーブルを参照する。そして、S317で、変数F及び変数Pに対応する制御値をこのテーブルから求め、得られた制御データををDAコンバータ54に与え、DA変換させる。変換されたアナログ電圧はVCF11に与えられ、VCF11で構成されるBPFの特性が設定される。なお、DAコンバータ54は、新たなデジタルデータが与えられるまでの期間には前回に与えられたデジタルデータに対応するアナログ電圧値の出力が継続し、そのためVCF11が構成するBPFの特性はその期間には変化しないものとする。
【0186】
変数Pについては後述するS311からS314にかけての各処理の詳細説明において併せて説明する。
この処理の終了後は、今回のVCF制御処理を終了してプレイモード処理へ戻る。
【0187】
以上までの処理がVCF制御処理である。
次に、VCF制御処理でのS311におけるLFO処理について説明する。図28はLFO処理の処理内容を示すフローチャートである。
【0188】
まず、S321において、図10に示した使用者によって設定される本装置の動作制御パラメータのひとつであって、前述したプレイモード処理のS201もしくはS207(図19)の処理によりテンポラリメモリに格納されているブロックLFOのTrig Modeの設定内容を参照する。その結果、Trig Modeの値が0、すなわちLFO機能が動作停止(OFF)モードに設定されているのであればS322に進み、値が1、すなわちALWAYSモードに設定されているのであればS323に進み、値が2、すなわちDECAYモードに設定されているのであればS330に進む。
【0189】
Trig Modeの値が0、すなわちLFO機能が動作停止モードに設定されている場合、S322において変数LFOに0.0を代入する。ここで、変数LFOとは、VCF11が構成するBPFの中心周波数に対してのLFO機能による制御量を設定するパラメータであり、0.0以上1.0以下の値が設定され、値が大きいほど大きく中心周波数を変化させる制御が行われる。また、この値を0.0に設定した場合にはLFO機能による前述のBPFの中心周波数の変化が起きないようになる。
【0190】
S322の処理の後には今回のLFO処理を終了してVCF制御処理へ戻る。
ところで、S321において、Trig Modeの値が1、すなわちLFO機能がALWAYSモードに設定されていると判断された場合、S323において変数RISE_COEFに1.0を代入する。ここで、変数RISE_COEFとは、LFO機能により発生させる振動波の振動幅を設定する変数であり、0.0以上1.0以下の値が設定され、値が大きいほど大きな振動幅の振動波を発生させることを示す。
【0191】
S324では、変数ADDR_COUNT_Fに1を代入する。
ここで、変数ADDR_COUNT_F及び変数ADDR_COUNTについて説明する。変数ADDR_COUNTとは、後述するOSCテーブルに格納されている1周期分の振動波形データを繰り返し読み出すためのリングカウンタとして用いられる変数であり、後述するタイマ割り込み処理により変数ADDR_COUNT_Fが1のときにのみ一定時間毎に値を1ずつ増加させる処理が施される。従って、変数ADDR_COUNT_Fに1以外の値、例えば0が代入された場合には、変数ADDR_COUNTの値の増加を停止させることができる。なお、図15にS101で示した初期化処理ではこの変数ADDR_COUNT_F及び変数ADDR_COUNTに0を代入して初期化する処理が含まれている。
【0192】
S325では、変数ADDR_COUNTの値と後述するOSCテーブルに格納されている振動波形データの1周期分のデータ数とを比較し、変数ADDR_COUNTの値が波形データのデータ数を超えてしまった場合のみ、S326においてその値から前述の波形データのデータ数を減じた値を改めて変数ADDR_COUNTに代入する。この処理により、変数ADDR_COUNTがリングカウンタとして機能する。
【0193】
S327では、変数ADDR_COUNTとADDR_OFFSET(Wave Form)との和を変数ADDRに代入する。ここで、変数ADDRとは、ROM52上に格納されている振動波形データを読み出すための参照アドレスが設定される変数であり、リングカウンタである変数ADDR_COUNTの作用により1周期分の波形データを繰り返し読み出すことができる。また、ADDR_OFFSET(Wave Form)は、前述したテンポラリメモリに格納されているブロックLFOのパラメータWave Formで示される信号波形の波形データが格納されている、ROM52上の格納領域の位置を示すものであり、Wave Formの値毎に対応した適切な値が予め設定されている。
【0194】
S328では、ROM52に予め格納されている振動波形データのテーブルであるOSCテーブルを参照する。
ここで、振動波形データについて説明する。振動波形データは各波形とも同一のデータ数が格納されており、各データは0.0から1.0までのいずれかの値をとる。また、各データの先頭は0.0のデータ値から始まるようにしておく。こうしておくことで、後に説明するDECAYモードによる動作であっても、振動波の発生開始時に滑らかなBPFの中心周波数の制御が行なえる。
【0195】
S329では、変数ADDRのアドレスに格納されている振動波形データの内容であるOSC(ADDR)と変数RISE_COEFとの積を算出して変数LFOの値とし、今回のLFO処理を終了してVCF制御処理へ戻る。
【0196】
ところで、S321において、Trig Modeの値が2、すなわちLFO機能がDECAYモードに設定されていると判断された場合、S330において前述した変数ENV_PERIODの値が2であるか否か、すなわち現在入力されている楽音信号のエンベロープがディケイ区間に含まれているか否かを判断する。その結果、変数ENV_PERIOD値が2であればS335に進み、2でなければS331に進む。
【0197】
前ステップの判断処理により、現在入力されている楽音信号のエンベロープがディケイ区間でないと判定された場合には、S331からS334にかけて変数ADDR_COUNT_F及び変数ADDR_COUNT、そして後述する変数LFO_TIMER_F及び変数LFO_TIMERの各々に0を順に代入し、初期化する。そして、その後はS322に進み、前述の動作停止モードと同様の処理を行ない、その結果、変数LFOには0.0が代入される。
【0198】
一方、S330の判断処理により現在入力されている楽音信号のエンベロープがディケイ区間であると判定された場合には、S335において変数LFO_TIMER_Fに1を代入する。
【0199】
変数LFO_TIMER_F及び変数LFO_TIMERについて説明すると、変数LFO_TIMERとは、DECAYモードにおいて、入力されている楽音信号が今回のディケイ区間に含まれるようになってからの経過時間を測定するためのカウンタであり、後述するタイマ割り込み処理により、変数LFO_TIMER_Fが1のときにのみ一定時間毎に値を1ずつ増加させる処理が施される。また、変数LFO_TIMER_Fに1以外の値、例えば0が代入された場合には、変数LFO_TIMERの値の増加を停止させることができる。なお、図15にS101で示した初期化処理では、この変数LFO_TIMER_F及び変数LFO_TIMERに0を代入して初期化する処理が含まれている。
【0200】
S336では、変数LFO_TIMERの値が、前述したテンポラリメモリに格納されているブロックLFOのパラメータDelay Timeを過ぎたか否かを調べ、変数LFO_TIMERの値が設定されたLFO機能による振動波の発生開始までの遅延時間を過ぎているのであればS337に進む。一方、LFO_TIMERの値がその遅延時間を過ぎていないのであれば、S322に進み、前述の動作停止モードと同様の処理を行ない、その結果、変数LFOには0.0が代入される。
【0201】
S337では、変数LFO_TIMERの値が、前述のパラメータDelayTimeと、前述したテンポラリメモリに格納されているブロックLFOのパラメータRise Timeとの合計時間を経過したか否かを調べ、経過前であるならば、S338において、前述した振動波の振幅を設定する変数RISE_COEFに(LFO_TIMER−Delay_Time)/(Rise Time)なる式の結果の値を代入する。この処理により、振動波の発生開始から定常の振動幅となるまでの振動幅の変化を滑らかにすることができるようになる。この処理の後には、S324に進み、S338の処理により設定された変数RISE_COEFに基づいたLFOの値が以降の処理により設定される。
【0202】
一方、S337の判断処理において、LFO_TIMERの値が、パラメータDelay TimeとパラメータRise Timeとの合計時間を経過していたと判定された場合にはS323に進み、前述のDECAYモードと同様の処理を行ない、その結果、変数LFOにはDECAYモードと同様の値が代入される。
【0203】
以上までの処理がLFO処理である。
次に、VCF制御処理でのS312(図27)におけるEG処理について説明する。図29及び図30はEG処理の処理内容を示すフローチャートである。
【0204】
まず、図29のS341において、図10に示した使用者によって設定される本装置の動作制御パラメータのひとつであって、前述したプレイモード処理でテンポラリメモリに格納されているブロックEGのTrig Modeの設定内容を参照する。その結果、Trig Modeの値が0、すなわちEG機能が動作停止(OFF)モードに設定されているのであればS342に進み、値が1、すなわちALWAYSモードに設定されているのであればS360(図30)に進み、値が2、すなわちDECAYモードに設定されているのであればS343に進む。
【0205】
Trig Modeの値が0、すなわちEG機能が動作停止モードに設定されている場合、S342において変数EGに0.0を代入する。ここで、変数EGとは、VCF11が構成するBPFの中心周波数に対してのEG機能による制御量を設定するパラメータであり、0.0以上1.0以下の値が設定される。そして、この値が大きいほど大きく中心周波数を変化させる制御が行われ、その一方でこの値を0.0に設定した場合にはEG機能による前述のBPFの中心周波数の変化が起きないようになる。
【0206】
S342の処理の後には、今回のEG処理を終了してVCF制御処理へ戻る。ところで、S341において、Trig Modeの値が2、すなわちEG機能がDECAYモードに設定されていると判断された場合、S343において前述した変数ENV_PERIODの値を調べる。その結果、その値が1、すなわち現在入力されている楽音信号のエンベロープがアタック区間に含まれているのであればS344に進み、値が2、すなわちディケイ区間に含まれているのであればS349に進み、値が0、すなわち無音区間に含まれているのであればS356に進む。
【0207】
前ステップの判断処理によって現在入力されている楽音信号のエンベロープがアタック区間に含まれていると判定された場合には、S344で、エンベロープ検出部20の出力電圧値が代入されている変数AD_VALUE(1)をADコンバータ55の出力可能な最大値のデータで割った値を前述した変数EGに代入する。この処理により、変数EGは、アタック区間においては楽音信号のエンベロープに従って変化するようになる。
【0208】
S345では、変数LASTATTACK_EGに変数EGの現在の値を代入する。変数LASTATTACK_EGは、後述するディケイ区間内における処理で必要となる、アタック区間におけるエンベロープの最大値を保存するための変数である。
その後、S346からS348にかけて、後に説明する数EGDECAY_TIMER_F、変数EGDECAY_TIMER、変数LAST_TIMEの各々に0を順に代入して初期化し、その後は今回のEG処理を終了してVCF制御処理へ戻る。
【0209】
ところで、S343の判断処理により現在入力されている楽音信号のエンベロープがディケイ区間であると判定された場合には、S349において変数EGDECAY_TIMER_Fに1を代入する。
【0210】
ここで、変数EGDECAY_TIMER_F及び変数EGDECAY_TIMERについて説明すると、変数EGDECAY_TIMERとは、入力されている楽音信号が今回のディケイ区間に含まれるようになってからの経過時間を測定するためのカウンタであり、後述するタイマ割り込み処理により、変数EGDECAY_TIMER_Fが1のときにのみ一定時間毎に値を1ずつ増加させる処理が施され、変数EGDECAY_TIMER_Fに1以外の値が代入された場合には、変数EGDECAY_TIMERの値の増加を停止させることができる。なお、図15にS101で示した初期化処理では、この変数EGDECAY_TIMER_F及び変数EGDECAY_TIMERに0を代入して初期化する処理が含まれている。
【0211】
S350では、変数EGDECAY_TIMERの現在の値を変数LAST_TIMEに代入する。変数LAST_TIMEについては後述する。
S351では、変数LAST_TIMEとINT(100/Delay Rate)との積を変数EGADDRに代入する。ここで、変数EGADDRとは、ROM52上に格納されているディケイ部分のみのエンベロープの波形データを読み出すための参照アドレスが設定される変数である。また、Delay Rateは、前述したテンポラリメモリに格納されているブロックEGのパラメータDelay Rateの設定値である。なお、関数INT()は、括弧内の計算結果の整数部分のみを取り出す関数である。このステップの処理により、毎回のEG処理の度に次々に変更される変数EGADDRの値の数値間隔をパラメータDelay Rateの値で変化させることができるようになり、その結果、ディケイ部分のエンベロープの波形データが変数EGADDRによる飛び飛びの読み出しアドレスの設定で読み出されるので、エンベロープの減衰特性が変更されることになるのである。
【0212】
S352では、前述の変数EGADDRの値と、ROM52上のディケイ部分のみのエンベロープの波形データのデータ数との大小を調べる。その結果、変数EGADDRの値が波形データ数を超えてしまったのであれば、生成中のディケイ部分のエンベロープ波形は充分に減衰したものとみなし、S353において変数EGに0.0を代入し、そして今回のEG処理を終了してVCF制御処理へ戻る。一方、変数EGADDRの値が波形データ数を超えていないのであればS354に進む。
【0213】
S354では、ROM52に予め格納されている、ディケイ部分のみのエンベロープの波形データ群であるディケイカーブテーブルを参照する。このディケイカーブテーブルの内容を説明すると、各データは0.0以上1.0以下の値であり、ディケイ曲線の先頭データが1.0であるようにしておく。
【0214】
S355では、S345で前述した変数LASTATTACK_EGとD_CURVE(EGADDR)との積を変数EGに代入し、今回のEG処理を終了してVCF制御処理へ戻る。ここで、D_CURVE(EGADDR)とは、前述したディケイカーブテーブルにおいて変数EGADDRを読み出しアドレスとして読み出した時のデータ値である。この処理により、生成するエンベロープのアタック部分とディケイ部分とが違和感なく連続させることができるようになる。
【0215】
ところで、S343の判断処理により現在入力されている楽音信号のエンベロープが無音区間であると判定された場合には、S356において変数EGDECAY_TIMER_Fに1を代入する。この処理は、楽音信号のエンベロープがアタック区間からディケイ区間に遷移せずに無音区間に遷移してしまった場合 (アタック区間からディケイ区間への遷移の判定条件を満たさないまま、無音区間に移行してしまう場合があり得る)を考慮したものである。
【0216】
S357では、定数DECAY_COEFと(EGDAECAY_TIMER−LAST_TIME)との積を変数EGの現在の値から引き算し、その結果を改めて変数EGに代入する。定数DECAY_COEFは、無音区間におけるエンベロープの生成波形の減衰の程度を示す、予め設定されている定数である。ここで、変数LAST_TIMEは前回のEG処理の実行時におけるEGDECAY_TIMERの値を保存しておく変数であり、従って、変数EGDAECAY_TIMERから変数LAST_TIMEを引いた結果の値は、EG処理の前回の処理時刻から今回の処理時刻までの経過時間を示すものである。このステップの処理により、変数EGの値は無音区間においては時間の経過に応じて一定の割合で小さくなるように設定される。
【0217】
S358では、変数EGDECAY_TIMERの値を変数LAST_TIMEに代入する。
S359では、S357で設定された変数EGの値が0.0を下回ってしまったか否かを調べる。その結果、変数EGの値が0.0を下回ってしまった場合のみ、S353において変数EGを0.0に設定する。この処理の後には、今回のEG処理を終了してVCF制御処理へ戻る。
【0218】
ところで、前述したS341の判断処理において、Trig Modeの値が2、すなわちEG機能がALWAYSモードに設定されていると判断された場合には、図30のS360において前述した変数ENV_PERIODの値を調べ、その値が0、すなわち現在入力されている楽音信号のエンベロープが無音区間に含まれているのであればS369に進み、それ以外の場合にはS361に進む。
【0219】
S361では、変数EG_Fが0であるか否かを調べる。変数EG_Fは、EG機能がALWAYSモードに設定されている場合にのみ使用される変数であり、0あるいは1の値をとる。変数EG_Fが0に設定されている場合にはEG機能はエンベロープ波形のアタック部分を生成している(あるいは未生成)ことを示しており、変数EG_Fが1に設定されている場合にはディケイ部分を生成していることを示している。なお、図15にS101で示した初期化処理では、この変数EG_Fに0を代入して初期化する処理が含まれている。
【0220】
EG機能がエンベロープ波形のアタック部分を生成していると判定されると、S362において変数EGATTACK_TIMER_Fに1を代入する。
ここで、変数EGATTACK_TIMER_F及び変数EGATTACK_TIMERについて説明すると、変数EGATTACK_TIMERとは、入力されている楽音信号が無音区間から今回のアタック区間に含まれるようになってからの経過時間を測定するためのカウンタであり、後述するタイマ割り込み処理により、変数EGATTACK_TIMER_Fが1のときにのみ一定時間毎に値を1ずつ増加させる処理が施され、変数EGATTACK_TIMER_Fに1以外の値が代入された場合には、変数EGATTACK_TIMERの値の増加を停止させることができる。なお、図15にS101で示した初期化処理では、この両変数に0を代入して初期化する処理が含まれている。
【0221】
S363では、変数EGATTACK_TIMERを定数ATTACK_COEFとAttack Rateとの積で割った値と、変数EGの現在の値との和を改めて変数EGに代入する。定数DECAY_COEFは、EG機能がALWAYSモードに設定されている場合におけるエンベロープのアタック部分の生成波形の上昇の程度の基準を示す、予め設定されている定数である。また、Attack Rateは、前述したテンポラリメモリに格納されているブロックEGのパラメータAttack Rateの設定値である。このステップの処理により、変数EGの値が入力の楽音信号のエンベロープの立ち上がりとはに無関係な独自のエンベロープに基づいて設定される。
【0222】
S364では、変数EGが、前述したテンポラリメモリに格納されているブロックEGのパラメータAttack Levelを100で割った値を超えてしまったか否かを調べ、超えてしまった場合のみ、S365からS368にかけての処理を行なう。
【0223】
S365では、前述のパラメータAttack Levelを100で割った値を変数EGに改めて代入する。
S366では、生成中のエンベロープがアタックの最大値に達したので、変数EG_Fの値を1に設定し、次回以降のEG処理ではディケイ部分を生成させるようにする。
【0224】
S367及びS368では、変数EGATTACK_TIMER_F及び変数EGATTACK_TIMERにに0を順に代入して初期化する。
以上の処理の後には、S345(図29)に進み、DECAYモードにおけるアタック区間の処理と同様の処理を行なう。
【0225】
ところで、S361の判断処理において、変数EG_Fの値が0でないと判定された場合には、エンベロープ波形のディケイ部分を生成させる処理を行なうために、S349(図29)に進み、DECAYモードにおけるディケイ区間の処理と同様の処理を行なう。
【0226】
また、S360の判断処理において、変数ENV_PERIODの値が0、すなわち現在入力されている楽音信号のエンベロープが無音区間に含まれていると判定された場合には、S369において、変数EG_Fを0に設定した後に、エンベロープ波形の無音区間における生成処理を行なうために、S356(図29)に進み、DECAYモードにおける無音区間の処理と同様の処理を行なう。
【0227】
以上までの処理がEG処理である。
次に、VCF制御処理でのS313(図27)におけるピッチ制御処理について説明する。図31はピッチ制御処理の処理内容を示すフローチャートである。
【0228】
まず、S371において、ROM52に予め格納されているピッチ制御テーブルを参照する。ピッチ制御テーブルの内容を図14を用いて説明すると,ピッチ制御テーブルは、前述したテンポラリメモリに格納されているブロックPITCH CTRLのパラメータFreq Scalingと、ピッチ検出処理(図25)で設定されている入力中の楽音信号の現在のピッチを示す変数PITCHの値(図14の横軸)とから、ピッチ制御処理による制御量であるVCF11で構成されるBPFの中心周波数の本装置の使用者による設定値からの加算値が示されるテーブルである。
【0229】
S372では、この加算値をテーブル参照により求め(図31ではこの値をFtable(Freq Scaling,PITCH)と示している)、この値を前述したテンポラリメモリに格納されているブロックFILTERのパラメータFreqと加算し、結果を変数Fpitchに代入する。この値が、本装置のピッチ制御機能による制御を伴ったVCF11によるBPFの中心周波数に関する値となる。
【0230】
この処理の後には、今回のピッチ制御処理を終了してVCF制御処理へ戻る。
以上までの処理がピッチ制御処理である。
次に、VCF制御処理でのS314(図27)におけるピッキング制御処理について説明する。図32はピッキング制御処理の処理内容を示すフローチャートである。
【0231】
まず、S381において、前述したテンポラリメモリに格納されているブロックFILTERのパラメータであって、本装置のLFO機能及びEG機能によるBPFの中心周波数の変化の程度を設定するパラメータであるSensを100で割った値を変数Sに代入する。
【0232】
S382では、前述したテンポラリメモリに格納されているブロックFILTERのパラメータであって、VCF11の構成するBPFのQの高さを設定するパラメータであるPeakを変数Pに代入する。
【0233】
S383では、変数Foffsetに0.0を代入する。変数FoffsetはVCF11の構成するBPFの中心周波数の設定を変化させるために使用される変数であり、この変数の値が前述したVCF制御処理のS315(図27)において本装置の他の機能により制御されている中心周波数に加算される。
【0234】
S384では、前述したテンポラリメモリに格納されているブロックPICKDIRECTION CTRLのパラメータModeの設定値が0、すなわちOFFモードに設定されているか否かを判別する。その結果、パラメータModeの設定値が0であるならば今回のピッチ制御処理を終了してVCF制御処理へ戻る。
【0235】
S385では、パラメータModeの設定値が1、すなわちPol+モードに設定されているか否かを判別する。Pol+モードに設定されているのであればS386に進み、そうでなければS388に進む。
【0236】
S386では、ピッキング方向検出処理(図26)において元のギター演奏におけるピッキングの方向に応じて設定されている変数PICKINGの値を調べ、その値が0、すなわち、元の演奏がピッキングアップにより行なわれている場合にのみS387において変数Sの符号を反転する。その後、今回のピッチ制御処理を終了してVCF制御処理へ戻る。
【0237】
S388では、前述の変数PICKINGの値を調べ、その値が1、すなわち、元の演奏がピッキングダウンにより行なわれている場合にはS389に進み、そうでない場合には今回のピッチ制御処理を終了してVCF制御処理へ戻る。
【0238】
S389では、パラメータModeの設定値が2、すなわちPol−モードに設定されているか否かを判別し、Pol−モードに設定されている場合にのみS387において変数Sの符号を反転し、今回のピッチ制御処理を終了してVCF制御処理へ戻る。
【0239】
S390では、パラメータModeの設定値が3、すなわちFreq Offsetモードに設定されているか否かを判別し、Freq Offsetモードに設定されている場合には前述したテンポラリメモリに格納されているブロックPICK DIRECTION CTRLのパラメータOffset Valueの設定値を前述した変数Foffsetに代入し、今回のピッチ制御処理を終了してVCF制御処理へ戻る。一方、パラメータModeの設定値が3でない場合(この場合は設定値が4、すなわちPeak Offsetモードに設定されている場合のみである)には、前述したテンポラリメモリに格納されているブロックPICK DIRECTION CTRLのパラメータOffset Valueの設定値と前述した変数Pとを加算して変数Pに改めて代入し、今回のピッチ制御処理を終了してVCF制御処理へ戻る。
【0240】
以上までの処理がピッキング制御処理である。
次にCPU51で実行するタイマ割り込み処理について説明する。本実施の形態では、今までに説明した各処理で経過時間の計測のために用いているいくつかの変数をタイマ割り込みによって一定時間毎に値を増加させるようにしている。
【0241】
一定時間を計時するタイマはCPU51の外部にタイマ装置を備える構成とするか、あるいはCPU51の動作クロックの一定数回のカウント毎にタイマ割り込みを発生させるなどの方法で実現する。この時間間隔の値の設定は任意であり、間隔の時間が短いほど細かい時間の計測が可能ではあるが、タイマ割り込み処理の実行時には他の処理の実行が停止してしまうので、両者のバランスを考えて時間間隔の値を設定する。
【0242】
図33はタイマ割り込み処理の処理内容を示すフローチャートである。
まず、S401では、変数ATTACK_TIMER_Fが1に設定されているか否かを調べ、1に設定されている場合にのみ、S402において変数ATTACK_TIMERの値を1だけ増加させる。
【0243】
以降、S403からS412にかけての処理により、変数DECAY_TIMER_Fと変数DECAY_TIMERとの組、変数ADDR_COUNT_Fと変数ADDR_COUNTとの組、変数LFO_TIMER_Fと変数LFO_TIMERとの組、変数EGDECAY_TIMER_Fと変数EGDECAY_TIMERとの組、変数EGATTACK_TIMER_Fと変数EGATTACK_TIMERとの組、のそれぞれについて上述した変数ATTACK_TIMER_Fと変数ATTACK_TIMERとの組に対して行われたものと同様の処理が施され、タイマ割り込み処理が終了する。
【0244】
以上までに説明した各処理をCPU51が実行することにより、本装置が本発明に係る各種機能を実現する。
なお、本実施の形態においては、図2に示したエンベロープ検出部20、ピッチ−電圧変換部30、ピークホールド部(40a、40b)をアナログ回路の構成により実現し、各部の出力するアナログ電圧をADコンバータ55でAD変換したデータをCPU51が各種制御に用いるように構成したが、入力された楽音信号をまずAD変換してデジタル信号データとしてCPU51が取り込むようにし、前述した各部が行なっている処理を全てCPU51によりデジタル処理するように構成することも可能である。
【0245】
また、CPU51が行なうこれらの処理をコンピュータに実行させる音響効果付加プログラムを作成してコンピュータ読み取り可能な記憶媒体に記憶させ、そのプログラムを記憶媒体からコンピュータに読み出させて実行させることにより、コンピュータに本装置の有する機能を行なわせることも可能である。図34に音響効果付加プログラムを記憶するコンピュータ読み取り可能な記憶媒体の例を示す。同図に示すように、記憶媒体としては、例えば、コンピュータ81に内蔵若しくは外付けの付属装置として備えられるROMやハードディスク装置などの記憶装置82、フロッピーディスク、MO(光磁気ディスク)、CD−ROM、DVD−ROMなどといった携帯可能な記憶媒体83、あるいは、コンピュータ81とネットワーク84を介して接続されるコンピュータであるプログラムサーバ85に付属する記憶装置86、等が利用できる。
【0246】
【発明の効果】
以上詳細に説明したように、本発明では、入力された楽音信号のエンベロープを解析してアタック区間及びディケイ区間を検出し、検出されたディケイ区間内において予め設定されたディケイレート値に基づいてエンベロープのディケイ部分を生成し、検出されたアタック区間では抽出されたエンベロープのアタック部分の変化に応答して前記フィルタの周波数特性を変化させるとともに、ディケイ区間においては、生成されたエンベロープのディケイ部分の変化に応答して前記フィルタの周波数特性を変化させるので、楽器音の楽音信号のアタック部分には従来の音響効果装置と同様の音響的効果が付加されることに加え、ディケイ部分では減衰特性が音高により異なっている楽器の楽器音に付加される音響的効果の音高の違いによるばらつきを少なくすることができる。
【図面の簡単な説明】
【図1】本発明の原理構成を示す図である。
【図2】本発明を実施するオートワウの内部構成を示す図である。
【図3】エンベロープ検出部の構成を示す図である。
【図4】エンベロープ波形を分割する手法を説明する図である。
【図5】ピッチ−電圧変換部の構成を示す図である。
【図6】ピッキングの方向とピックアップの出力波形との関係を示す図である。
【図7】ピークホールド部の詳細構成を示す図である。
【図8】CPUによるピークホールド回路の制御を説明する図である。
【図9】オートワウの表面パネルの概要を示す図である。
【図10】使用者によって設定される本装置の動作制御パラメータの一覧を示す図である。
【図11】FILTERのパラメータを説明する図である。
【図12】LFOのパラメータを説明する図である。
【図13】EGのパラメータを説明する図である。
【図14】パラメータFreq Scalingを説明する図である。
【図15】本実施の形態のオートワウの制御プログラムの実行によりCPUが行なう処理の処理内容を示すフローチャートである。
【図16】エディットモード処理の処理内容を示すフローチャートである。
【図17】パラメータ選択処理の処理内容を示すフローチャートである。
【図18】パラメータ値変更処理の処理内容を示すフローチャートである。
【図19】プレイモード処理の処理内容を示すフローチャートである。
【図20】入力信号解析処理の処理内容を示すフローチャートである。
【図21】入力信号データ取得処理の処理内容を示すフローチャートである。
【図22】エンベロープ解析処理の処理内容を示すフローチャートである。
【図23】アタック区間内解析処理の処理内容を示すフローチャートである。
【図24】ディケイ区間内解析処理の処理内容を示すフローチャートである。
【図25】ピッチ検出処理の処理内容を示すフローチャートである。
【図26】ピッキング方向検出処理の処理内容を示すフローチャートである。
【図27】VCF制御処理の処理内容を示すフローチャートである。
【図28】LFO処理の処理内容を示すフローチャートである。
【図29】EG処理の処理内容を示すフローチャート(その1)である。
【図30】EG処理の処理内容を示すフローチャート(その2)である。
【図31】ピッチ制御処理の処理内容を示すフローチャートである。
【図32】ピッキング制御処理の処理内容を示すフローチャートである。
【図33】タイマ割り込み処理の処理内容を示すフローチャートである。
【図34】音響効果付加プログラムを記憶する記憶媒体の例を示す図である。
【符号の説明】
1 音響効果装置
2 フィルタ
3a ディケイ特性制御手段
3b ピッチ検出手段
3c 撥弦方向検出手段
4 周波数特性変化手段
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technology for giving an acoustic effect to a musical tone signal by processing the musical tone signal converted into an electric signal, and in particular, by changing a frequency characteristic of a filter that passes the musical tone signal in accordance with the musical tone signal. The present invention relates to a technique for giving an acoustic effect to the musical sound signal.
[0002]
[Prior art]
Auto wah is an effector (acoustic effect device) used in the performance of stringed instruments, particularly plucked stringed instruments such as guitars. Auto-wah is a technique in which a dynamic timbre change can be obtained by changing the pass band of a filter (mainly a bandpass filter) that passes the musical tone signal according to the magnitude of the inputted musical tone signal. When auto wah is used in a plucked string instrument, it is possible to obtain a special effect that the tone can be controlled by the strength of the plucked string.
[0003]
In a typical auto wah configured using a bandpass filter, the control parameters are the center frequency, which is the center frequency of the bandpass filter's passband when there is no input, and the passband for the magnitude of the input tone signal. It is possible to set input sensitivity indicating the magnitude of the change, polarity indicating the direction of change with respect to the passband (change in the passband frequency to increase or decrease). Also, some of them are equipped with an LFO (Low Frequency Oscillator), and the output signal always vibrates (also called modulation, modulation, etc.) in the passband, thereby providing further acoustic effects. Some products can be added.
[0004]
[Problems to be solved by the invention]
A plurality of strings stretched on a stringed instrument are tuned to different pitches, and the magnitude of the generated sound with respect to the strength of the plucked string and the rate of attenuation of the generated sound differ depending on the string. For this reason, in an auto wah that changes the frequency characteristics of the filter according to the magnitude of the input signal (this is particularly referred to as a level-following type auto wah), the timbre change that is obtained differs significantly depending on the string that is produced. In addition, when a beat occurs in a string, the generated sound becomes unstable, and thus an auto wah sometimes gives an unexpected timbre change to a musical tone.
[0005]
By the way, a bandpass filter having a high Q is often used for auto-wah. Therefore, if you set the filter at a low pitch, such as when playing a song with a wide range, the output level of the high tone music signal that is far from the setting will be reduced to a level that cannot be ignored, and can be obtained by auto-wah. The acoustic effect may change unexpectedly depending on its pitch. As described above, in the level-following auto wah that changes the frequency characteristics of the filter only in accordance with the magnitude of the input signal, the range in which the desired effect can be expected has been limited to some extent.
[0006]
In addition, in the auto wah equipped with the LFO described above, the frequency in the pass band of the filter is always modulated regardless of the performance, and thus an inorganic and monotonous impression may be given to the performance. It was.
[0007]
All of these caused timbre changes unintended by the performer, and as a result, the range of performance expression was narrowed.
In view of the above problems, it is an object of the present invention to provide an acoustic effect capable of giving a wide range of performance expressions to musical instrument performance.
[0008]
[Means for Solving the Problems]
  In order to solve the aforementioned problems, the present inventionThen, in an acoustic effect device that obtains an acoustic effect by changing the frequency characteristics of a filter that passes a musical sound signal in accordance with the musical sound signal, an envelope extracting means for extracting an envelope of the musical sound signal, and the envelope extracting means Envelope analysis means that analyzes the extracted envelope to detect attack and decay intervals, and generates a decay portion of the envelope based on a preset decay rate value in the decay interval detected by the envelope analysis means In the attack interval detected by the decay envelope generating means and the envelope analyzing means, the frequency characteristic of the filter is changed in response to a change in the attack portion of the envelope extracted by the envelope extracting means, In serial detected decay interval, and the frequency characteristic changing means for changing the frequency characteristic of the filter in response to changes in the decay portion of the envelope generated by the decay envelope generator,It is comprised so that it may have.
[0009]
FIG. 1 is a diagram showing a principle configuration of the present invention. In the figure, a sound effect device 1 implements the present invention, and gives an acoustic effect to an input musical sound signal and outputs it.
[0010]
The sound effect device 1 has a filter 2. The filter 2 gives an acoustic effect to the musical sound signal by changing its frequency characteristic according to the musical sound signal input to the acoustic effect device 1, and in the case where the acoustic effect device 1 is an auto wah, a band is provided. Although a pass filter is generally used, other low-pass filters, high-pass filters, band elimination filters, and the like may be used.
[0011]
In the first aspect of the present invention, the acoustic effect device 1 is provided with a decay characteristic control means 3a. The decay characteristic control means 3a controls the attenuation characteristic of the decay portion of the envelope signal of the musical instrument sound included in the musical sound signal input to the sound effect device 1.
[0012]
In the first aspect of the present invention, the frequency characteristic changing means 4 changes the frequency characteristic of the filter 2 in accordance with the tone signal controlled by the decay characteristic control means 3a in the decay portion of the envelope.
[0013]
In this configuration, for example, the frequency characteristic of the filter 2 is changed according to the musical sound signal whose decay portion is controlled so as to have a uniform attenuation characteristic regardless of the characteristic originally possessed by the musical sound signal of the musical instrument sound. As a result, in addition to adding the same acoustic effect as the conventional sound effect device to the attack part of the musical tone signal of the instrument sound, the decay part adds it to the instrument sound of the instrument whose attenuation characteristics differ depending on the pitch. The variation due to the difference in pitch of the acoustic effect to be performed can be reduced.
[0014]
  Also, this inventionThe sound effect device further includes LFO means for generating a periodic vibration signal, and the frequency characteristic changing means is configured to change the vibration signal generated by the LFO means in the detected decay period. If the frequency characteristic of the filter is changed in response to the frequency response, the frequency characteristic of the filter can be vibrated at the decay portion of the instrument sound generated in response to a performance operation on the instrument. It can be expected to give the performance sound rich and warm.
[0018]
  In the present invention, the sound effect device further includes pitch detection means for detecting a pitch of the musical tone signal, and the frequency characteristic changing means is detected by the pitch detection means in the detected decay interval. The filter is configured to change the frequency characteristics of the filter in response to the change in pitch.
[0019]
  In the present invention,In FIG. 1, instead of the decay characteristic control means 3a, a pitch detection means 3b is configured to be provided in the acoustic effect device 1. The pitch detector 3b detects the pitch of the musical sound signal input to the sound effect device 1.
[0020]
  AndIn the present invention,The frequency characteristic changing unit 4 changes the frequency characteristic of the filter 2 in accordance with the pitch of the musical sound signal detected by the pitch detecting unit 3b.
[0021]
In this configuration, even if an auto wah using a bandpass filter having a high Q as the filter 2 is configured, different acoustic effects can be given as desired depending on the pitch of the musical sound. The range where the effect can be expected is expanded.
[0022]
  Also,In the present invention, the musical tone signal is generated by a plucking operation of a stringed instrument, and the acoustic effect device further includes a plucked direction detecting means for detecting a plucked direction of the stringed instrument, The frequency characteristic changing means selects the frequency characteristic of the filter set in advance according to the change in the plucked direction detected by the plucked direction detecting means in the detected decay interval, The frequency characteristic of the filter is changed.
[0023]
  In the present invention,In FIG. 1, the acoustic effect device 1 is provided with a plucking direction detection means 3c instead of the decay characteristic control means 3a. The plucked string direction detecting means 3c detects the plucked direction of the stringed instrument from the musical tone signal of the stringed instrument that the musical tone signal input to the sound effect device 1 has.
[0024]
  AndIn the present invention,The frequency characteristic changing means 4 changes the frequency characteristic of the filter 2 in accordance with the direction of the plucked string detected by the plucked string direction detecting means 3c.
[0025]
In this configuration, different acoustic effects can be given to the performance sound depending on the direction of the plucked string of the stringed instrument, so that the player can perform different performance expressions simply by changing the direction of the plucked string. .
[0026]
In the above-described present invention, the frequency characteristic changing means is a frequency indicating a pass band of the filter according to the direction of the plucked string.Increase or decrease the value ofThis configuration is convenient because polarity, which is one of the control parameters, is switched only by changing the direction of the plucked string.
[0027]
As described above, by implementing any aspect of the present invention, it is possible to provide an acoustic effect capable of giving a wide range of performance expressions to musical instrument performance.
The acoustic effect adding method for obtaining the acoustic effect according to the present invention and the storage medium storing the sound effect adding program for causing the computer to execute the present invention by causing the computer to execute the method are also included in the technical scope of the present invention. It is.
[0028]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. Here, an example in which the present invention is implemented in an auto wah used mainly for guitar performance will be described.
[0029]
FIG. 2 is a diagram showing an internal configuration of an auto wah embodying the present invention. The auto wah shown in the figure (hereinafter also referred to as this device) receives a musical sound signal, which is an electrical signal obtained by converting the vibration of a guitar string with a pickup or the like, via a preamplifier, and produces an acoustic effect on the musical sound signal. Is output to a guitar amplifier or the like.
[0030]
Hereafter, each element which comprises this apparatus shown in FIG. 2 is demonstrated.
A VCF (Voltage Controlled Filter) 11 constitutes a band-pass filter in this embodiment, and the center frequency and Q of the filter are set according to an analog voltage value output from a DA converter 54 described later.
[0031]
The output buffer 12 is a so-called buffer amplifier provided to prevent the input characteristics of a device such as a guitar amplifier connected to the output of this apparatus from affecting the characteristics of the filter that the VCF 11 constitutes.
[0032]
The envelope detector 20 acquires the envelope of the input musical sound signal.
FIG. 3 is a diagram showing the configuration of the envelope detector 20. As shown in the figure, the envelope detector 20 includes a first LPF 21, a full-wave rectifier 22, and a second LPF 23.
[0033]
First, the first LPF 21 removes high frequency components unnecessary for detection of the envelope of the guitar performance sound, for example, components higher than the audible frequency, from the input musical sound signal, and the musical sound signal (waveform ( 1)) is sent to the full-wave rectifier 22.
[0034]
The full-wave rectifier 22 performs full-wave rectification on the received tone signal, and passes the absolute value (waveform (2)) of the tone signal to the second LPF 23.
The second LPF 23 is set to a cut-off frequency considerably lower than that of the first LPF 21, and averages and outputs the absolute value of the wave height passed from the full-wave rectifier 22. An envelope waveform (waveform (3)) is obtained by repeatedly measuring the voltage value of this output as time elapses.
[0035]
The CPU 51, which will be described later, divides the envelope waveform of the input musical sound signal obtained by the operation of the envelope detector 20 into three types of sections, a silent section, an attack section, and a decay section. Here, this division method will be described in advance.
[0036]
FIG. 4 is a diagram for explaining a method of dividing the envelope waveform. The envelope waveform shown in the figure is divided into six sections (A) to (F).
The silent section is a section where the envelope value is below a predetermined level. In the section (A) shown in the figure, the envelope waveform shows a zero level and is a silent section.
[0037]
An attack section is a section in which the envelope waveform shows an upward trend, and a section (B) shown in the figure is an attack section. The determination of the transition from the silent section to the attack section is performed because the envelope waveform has exceeded a predetermined change reference level (1).
[0038]
The decay interval is an interval in which the envelope waveform shows a downward trend, and the interval (C) shown in the figure is a decay interval. The decay section always appears next to the attack section, the envelope waveform is below the change reference level (2), and continues from the attack peak in the envelope for a predetermined time (shown as the judgment section (a) in FIG. 4). Judgment is based on the fact that the envelope continues to decrease.
[0039]
In addition, as in the section (D) shown in the figure, the attack section may appear next to the decay section. The transition from the decay interval to the attack interval is determined by determining whether the envelope waveform exceeds the change reference level (3) and the minimum value of the envelope waveform within the decay interval for a predetermined time (determined interval (b) in FIG. 4). ) Judgment is based on the fact that the envelope has continued to rise.
[0040]
According to the above determination criteria, in the section (E), in the attack section (D), the envelope waveform is below the change reference level (4) (this value is equal to the change reference level (2)), and the attack in the envelope It is clear that the decay period is determined by continuing to decrease the envelope for a predetermined time (shown as the determination period (c) in FIG. 4) from the peak of the peak.
[0041]
In the section (F), the envelope waveform in the decay section (E) falls below the change reference level (5), so it is determined that the section has transitioned to the silent section. It should be noted that this change reference level (5) (the level used as a judgment criterion for the transition from the decay section to the silent section) and the above-mentioned change reference level (1) (the level used as the judgment standard for the transition from the silence section to the attack section) Different values may be set, but in this embodiment, the same value is set.
[0042]
As described above, the CPU 51 described later divides the obtained envelope waveform into three types of sections.
Returning to the description of FIG. The pitch-voltage converter 30 detects the pitch of the input musical tone signal and outputs a voltage value corresponding to the pitch.
[0043]
The configuration of the pitch-voltage converter 30 is shown in FIG. As shown in the figure, the pitch-voltage converter 30 includes a first LPF 31, a comparator 32, a monostable multivibrator 33, and a second LPF 34.
[0044]
First, in the first LPF 31, a high frequency component unnecessary for detection of the envelope of the guitar performance sound, for example, a component higher than the audible frequency is removed from the input musical sound signal, and the musical sound signal (waveform ( 1)) is sent to the comparator 32.
[0045]
The comparator 32 binarizes the received musical sound signal according to, for example, whether the AC component is positive or negative, and passes the obtained binarized waveform (waveform (2)) to the monostable multivibrator 33.
[0046]
The monostable multivibrator 33 outputs a pulse having a constant width (waveform (3)) only at the rising edge of the passed binary waveform, for example. The number of pulses per unit time is a value proportional to the pitch of the original musical sound signal.
[0047]
The second LPF 34 integrates the pulse wave output from the monostable multivibrator 33. Since the analog voltage value (waveform (4)) output from the second LPF 34 is a value corresponding to the number of pulses per unit time, the pitch of the original musical tone signal can be obtained by measuring this voltage value.
[0048]
The description of FIG. 2 is continued. The + peak hold detection unit 40a and the −peak hold detection unit 40b hold the voltage value of the positive or negative peak of the signal level of the musical tone signal input within the sample period instructed by the CPU 51. It is used to detect the direction of string picking (plucked string) in the guitar performance that is the source of the.
[0049]
A picking direction detection method employed in this apparatus will be described.
FIG. 6 is a diagram showing the relationship between the picking direction and the output waveform of the pickup, and shows a state in which a string fixed to the body of the guitar by the bridge 61 is picked using the pick 62. is there. The figure (i) shows the figure seen from the front of the guitar, and the figure (ii) shows the picking operation as a sectional view seen from the direction perpendicular to the string. . FIG. 3 (iii) shows an output waveform output as a result of picking by a pickup provided in the guitar.
[0050]
In the guitar playing technique, the picking up (picking (A) in the figure) picks the string upward (rightward in FIG. 6) and the string downward (leftward in FIG. 6) according to the picking direction indicated by the solid line arrow. ) And picking down ((B) in the figure). As shown in (iii) of the figure, the output waveform from the pickup has the opposite sign of the initial waveform between picking up and picking down. A guitar pickup generally captures a change in a magnetic field caused by vibration of a string and outputs it as an electric signal, and a difference in a moving direction of a string in a magnetic field immediately after picking appears as a difference in the output waveform.
[0051]
The amplitude of the output waveform from the pickup is maximized in the first half wave immediately after picking. Therefore, the maximum value of the peak value of the output waveform is measured separately on the positive side and the negative side of the output waveform, and it is determined which of the maximum value of the peak value is greater on the positive side and the negative side of the output waveform. Thus, the difference in the picking direction can be detected. This apparatus uses this method to detect the picking direction.
[0052]
FIG. 7 is a diagram showing a detailed configuration of the peak hold unit. The relationship between FIG. 2 and FIG. 2 will be described. The + peak hold unit 40a in FIG. 2 corresponds to the half-wave rectifier 42a and the peak hold circuit 43a in FIG. 7, and the −peak hold unit 40b in FIG. 41, a half-wave rectifier 42b, and a peak hold circuit 43b. Hereinafter, FIG. 7 will be described.
[0053]
The inverter 41 is an inverting amplifier that inverts the sign of the input musical tone signal (1) and outputs the inverted musical tone signal (2).
Half-wave rectifiers 42a and 42b perform half-wave rectification on the input signals and output the signals (3a, 3b) with the negative side of the input signals cut.
[0054]
The peak hold circuits 43a and 43b hold and output the maximum value during the instruction period of the input signal in accordance with the control of the CPU 51 described later. Here, control of the peak hold circuits 43a and 43b by the CPU 51 described later will be described with reference to FIG.
[0055]
As shown in FIG. 8A, the CPU 51 instructs the peak hold circuits 43a and 43b to not hold (sample) during the attack period in the envelope waveform described above, that is, a voltage corresponding to the maximum value of the input signal in this period. Instructs the value to be output. As shown in FIG. 8B, the CPU 51 holds the peak hold circuits 43a and 43b in the decay period in the envelope waveform described above, that is, a voltage corresponding to the maximum value of the input signal in the immediately preceding non-hold period. Instructs the output of the value to be maintained. The CPU 51 obtains voltage values from both of the peak hold circuits 43a and 43b via an AD converter 56 described later in this hold section, and both voltage values, that is, the positive side and the negative side of the musical sound signal in the non-hold section immediately before. The difference in picking direction is detected by comparing the maximum value of the level with the side.
[0056]
Returning to the description of FIG. The CPU 51, ROM 52, RAM 53, DA converter 54, AD converter 55, and interface unit 57 described below are all connected to each other via a bus 59.
[0057]
The CPU 51 is a central processing unit that controls the operation of the entire apparatus while using the RAM 53 as a work area in accordance with a control program stored in the ROM 52.
[0058]
The ROM 52 is a read-only memory in which various programs such as a control program for controlling the entire apparatus executed by the CPU 51 and various signal waveform data described later are stored in advance.
[0059]
The RAM 53 is a random access memory used as a work area for processing by the CPU 11 and for storing various setting parameters.
The DA converter 54 outputs an analog voltage corresponding to the digital data sent from the CPU 51, and sets the filter characteristics of the VCF 11.
[0060]
The AD converter 55 samples the input analog voltage value and converts it into digital data that can be processed by the CPU 51.
The analog multiplexer 56 selects one of the outputs from the envelope detection unit 20, the pitch-voltage conversion unit 30, and the peak hold units (40a, 40b) in accordance with an instruction from the CPU 51, and an analog voltage that is the selected output. Is passed to the AD converter 55.
[0061]
The interface unit 57 transmits a control instruction from the CPU 51 to the peak hold unit (40a, 40b) or the analog multiplexer 56, and also bridges data exchange between the CPU 51 and the display / operation unit 58.
[0062]
The display / operation unit 58 performs display for informing the user of the operation state of the apparatus, and acquires an instruction for the apparatus input by the user. An outline of the panel 70 on the surface of the apparatus corresponding to the display / operation unit 58 is shown in FIG. This apparatus is placed on the floor where the guitar performance is performed, and instructions are given to the apparatus when the performer steps on (or presses) various pedal switches provided on the panel 70 with his / her foot.
[0063]
Each switch / display provided in the panel 70 will be described.
The memory changeover switch 71 is a switch for selecting a set of parameter values, and a memory number (number assigned to the memory changeover switch 71) is associated with each set.
[0064]
FIG. 10 is a diagram showing a list of operation control parameters of the apparatus set by the user. In this apparatus, four sets of values of these parameters set by the user can be stored. The storage of each set of parameter values is performed by the CPU 51 executing a process for storing each parameter value in a predetermined area of the RAM 53. The memory changeover switch 71 shown in FIG. 9 is a switch for selecting a set of these parameter values.
[0065]
Each parameter shown in FIG. 10 will be described later, and the description returns to FIG. 9.
The liquid crystal display unit 72 displays the setting contents of each parameter in an edit mode in which a value is set for each parameter described above and stored for each memory number, which is one of the operation modes of the present apparatus.
[0066]
The memory number display 73 is a 7-segment LED, and displays the selected memory number as a number.
The parameter selection switch 74 is a switch for selecting a parameter to be set in the edit mode described above.
[0067]
The value entry switch 75 is a switch used to set a specific value for each parameter in the edit mode described above.
The write switch 76 is a switch for instructing to actually store the values set for each parameter in a predetermined area of the RAM 53 in the edit mode described above.
[0068]
The edit mode changeover switch 77 is a switch for switching between the above-described edit mode and a play mode in which an acoustic effect is added to the musical sound signal and output.
[0069]
Next, various parameters shown in FIG. 10 will be described.
In FIG. 10, each parameter is shown in blocks according to its application. In the block FILTER, parameters related to basic characteristics of a bandpass filter (hereinafter, abbreviated as “BPF”) formed by the VCF 11 are collected. Each parameter of the block FILTER will be described with reference to FIG.
[0070]
Freq is a parameter relating to the center frequency of the BPF passband, that is, the center frequency, and a value is set in an integer range from 0 to 100.
Peak is a parameter related to the magnitude of Q of the BPF, and a value is set in an integer range from 0 to 100, and a larger value becomes steeper.
[0071]
Sense is a parameter for setting the degree of change in the center frequency of the BPF due to the LFO function and the EG function of this apparatus, and is set in the range of an integer from −100 to +100. When this value is positive, the center frequency of the BPF is changed to increase, and when it is negative, the center frequency is changed to decrease. Moreover, the greater the absolute value of this value, the greater the degree of change.
[0072]
Returning to the description of FIG. In the block LFO, setting parameters relating to the LFO function for vibrating the center frequency of the BPF formed by the VCF 11 are collected. Each parameter of the block LFO will be described with reference to FIG.
[0073]
Trig Mode is a parameter that sets the operation mode of the LFO. This parameter is set to either 0, 1, or 2. If 0, LFO is stopped (OFF mode), 1 is always active (ALWAYS mode), and 2 is input. The operation (DECAY mode) is shown only in the decay period of the envelope of the musical sound signal. The output waveform of the LFO shown in FIG. 12 shows that in the DECay mode.
[0074]
The two parameters, Rise Time and Delay Time, are used only for the operation in the DECAY mode.
As shown in FIG. 12, Rise Time sets the time required from the start of generation of a vibration wave by the LFO function until the vibration width (amplitude) of the vibration wave increases to a steady level. By using this time setting, the increase in the level of vibration waves from the start of occurrence to the predetermined vibration width is smoothly increased, so that the sense of incongruity caused by applying the auto-wah effect only to the decay interval of the musical sound signal is felt. It can be reduced.
[0075]
As shown in FIG. 12, Delay Time sets a delay time until the LFO starts oscillating after the envelope of the waveform of the input tone signal enters the decay period. By setting the delay time, only the latter half of the decay portion where the original impression of the musical sound is fading can be emphasized.
[0076]
Both Rise Time and Delay Time are set in the range of integers from 0 to 100.
The Wave Form is a parameter for setting a waveform of a signal generated by the LFO. This parameter is set to a value of 0, 1 or 2; if it is 0, it is a sine wave (Sine); if it is 1, it is a sawtooth wave (Saw); if it is 2, it is a pulse wave (Pulse) ) Respectively. Note that the output waveform of the LFO shown in FIG. 12 shows the case where the output of the sine wave is set to this parameter.
[0077]
In the present embodiment, the oscillation period and the steady oscillation amplitude level of the signal oscillated by the LFO are set in advance and cannot be changed. Of course, it is good also as a structure which can perform these changes.
[0078]
Returning to the description of FIG. In the block EG, setting parameters relating to an envelope generator function for generating an envelope curve based on which the center frequency of the BPF formed by the VCF 11 is changed are collected. Each parameter of the block EG will be described with reference to FIG.
[0079]
The Trig Mode is a parameter for setting the operation mode of the envelope generator (hereinafter abbreviated as “EG”) function. This parameter is set to a value of 0, 1, or 2. When 0, the EG function is stopped (OFF mode). When it is 1, it operates in any section of the envelope waveform of the input tone signal. The normal operation (ALWAYS mode) is shown, and in the case of 2, the operation only in the decay period of the envelope waveform (DECAY mode) is shown. In FIG. 13, (a) shows the envelope waveform of the input musical tone signal, (b) shows the waveform showing the BPF frequency change width due to the EG function in the DECay mode, and FIG. FIG. 2C shows waveforms each showing the change width of the BPF frequency by the EG function in the ALWAYS mode.
[0080]
The two parameters of Attack Level and Attack Rate are used only for the operation in the above-described ALWAYS mode.
The Attack Level is a parameter for setting the maximum value of the envelope curve generated by the EG function, as shown in FIG.
[0081]
As shown in FIG. 13C, the Attack Rate is a parameter for setting a rate of increase of the attack portion of the envelope curve generated by the EG function.
[0082]
Values of both Attack Level and Attack Rate are set in the range of integers from 0 to 100.
As shown in FIG. 13 (b), in the DECAY mode, the envelope curve of the attack part uses the attack part of the envelope waveform of the input musical sound signal (FIG. 13 (a)) as it is for the BPF characteristic change. After the musical sound signal envelope has become a decay interval, the EG function generates an envelope curve starting from the peak of the envelope waveform of the musical sound signal and uses it to change the BPF characteristics.
[0083]
The Decay Rate is a parameter for setting the rate of decrease of the decay portion of the envelope curve generated by the EG, as shown in FIGS. 13B and 13C. The Decay Rate has a value in the integer range from 0 to 100. Is set.
[0084]
As shown in FIG. 13, after the envelope waveform of the input musical sound signal shifts to the silent section, the envelope generated by the EG function decreases with a predetermined attenuation characteristic and settles to zero.
[0085]
Returning to the description of FIG. In the block PITCH CTRL, parameters related to the pitch control function for changing the center frequency of the BPF formed by the VCF 11 in accordance with the pitch of the input musical sound signal are shown.
[0086]
Freq Scaling is a parameter that sets the rate of change that changes the center frequency of the BPF in accordance with the pitch of the input musical sound signal. This parameter is set to a value in the range of an integer from −100 to +100. As shown in FIG. 14, when this value is positive, the pitch of the input musical sound signal is changed so as to increase the center frequency of the BPF as the pitch of the input musical sound signal is higher. The control is performed so that the center frequency is changed in the direction of lowering. Moreover, the greater the absolute value of this value, the greater the degree of change.
[0087]
In the block PICK DIRECTION CTRL, parameters related to the picking control function for changing the characteristics of the BPF formed by the VCF 11 according to the difference in the picking direction of the guitar performance are collected.
[0088]
Mode is a parameter for setting the content of the BPF characteristic change to be performed by picking detection. An integer value from 0 to 4 is set in this parameter. When this value is 0, no change is generated (OFF mode). When 1 is detected, the sign indicating the sign of the parameter Sens is inverted when picking up is detected (Pol + mode). When the picking down is detected, the sign indicating the sign of the parameter Sens is inverted. (Pol-mode). In the case of 3, the value of Offset Value described later is added to the above-described parameter Freq when picking down is detected (Freq Offset mode). In the case of 4, the offset described below is described in the above-described parameter Peak when picking down is detected. The value of Value is added (Peak Offset mode).
[0089]
The Offset Value is a parameter for setting an addition value that is used only in the above-described Freq Offset mode or Peak Offset mode, and the value is set in an integer range from −100 to +100.
[0090]
The above various parameters are set by the user.
The PARAM_SEL value shown in the rightmost column of FIG. 10 will be described later.
[0091]
Next, the control performed by the CPU 51 shown in FIG. 2 will be described.
FIG. 15 is a flowchart showing the control processing of the entire apparatus by the CPU 51, which is performed by the CPU 51 reading and executing the control program stored in the ROM 52 immediately after the power is turned on. The control operation by the CPU 51 will be described with reference to FIG.
[0092]
First, in S101, initialization processing is executed immediately after the power is turned on, and processing such as initialization of internal registers of the CPU 51 and RAM 53, and substitution of initial values into various variables used in various processing described later, etc. is performed.
[0093]
In S102, an edit mode process, which is a process of setting a parameter value desired by the user for each parameter shown in FIG. 10 and storing the setting contents in the RAM 53 for each set of parameters, is performed.
[0094]
In S103, play mode processing, which is processing for causing the apparatus to perform a function of adding an acoustic effect to a musical sound signal and outputting the same, is performed. Thereafter, the edit mode process and the play mode process are alternately performed.
[0095]
Next, the details of the edit mode process performed in S102 of FIG. 15 will be described. FIG. 16 is a flowchart showing the contents of the edit mode process.
[0096]
First, in S111, a set of parameter values stored in the RAM 53 in association with the memory number currently selected by the previous operation on the memory selector switch 71 (this value is stored in the variable MEM_SEL). The current setting value of the parameter Freq is acquired and displayed on the liquid crystal display unit 72 of FIG. 9 so that the relationship between the parameter and the setting value can be grasped, such as “Freq = XXX”. 15 includes a process of substituting 1 into the above-described variable MEM_SEL and displaying “1” on the memory number display 73.
[0097]
In S112, it is checked whether various switches provided on the panel 70 have been operated. If a switch operation is detected in S113, the process proceeds to S114. On the other hand, if the switch operation is not detected, the process returns to S112 to repeat the switch operation detection process.
[0098]
In S114, it is determined whether or not the switch operation detected in S113 is for the memory changeover switch 71. If the memory changeover switch 71 has been operated, the process proceeds to S115, and if it has not been operated, the process proceeds to S116.
[0099]
In S115, an integer corresponding to the memory number assigned to each of the operated memory changeover switches 71 is substituted into the variable MEM_SEL, and the memory number is displayed on the 7-segment LED which is the memory number display 73. After this process is completed, the process returns to S111 and the above-described process is repeated.
[0100]
In S116, it is determined whether or not the switch operation detected in S113 is for the parameter selection switch 74. If the parameter selection switch 74 has been operated, the process proceeds to S117 and parameter selection processing is performed. Thereafter, the process returns to S112 and the above-described processing is repeated. On the other hand, if the parameter selection switch 74 has not been operated, the process proceeds to S118. Details of the parameter selection processing will be described later.
[0101]
In S118, it is determined whether or not the switch operation detected in S113 is for the value entry switch 75. If the value entry switch 75 has been operated, the process proceeds to S119, and parameter value change processing is performed. Thereafter, the process returns to S112 and the above-described processing is repeated. On the other hand, if the value entry switch 75 has not been operated, the process proceeds to S120. Details of the parameter value changing process will also be described later.
[0102]
In S120, it is determined whether or not the switch operation detected in S113 is for the write switch 76. If the write switch 76 has been operated, the process proceeds to S121, and if it has not been operated, the process proceeds to S122.
[0103]
In S121, the change contents of each parameter value set by the parameter value change process (S119) (contents of a variable TEMP described later) are changed to the memory number indicated by the current value of the variable MEM_SEL and the currently selected parameter. The data is stored in a predetermined area on the corresponding RAM 53, and then the process returns to S112 to repeat the above processing.
[0104]
In S122, it is determined whether or not the switch operation detected in S113 is for the edit mode changeover switch 77. If the edit mode changeover switch 77 has been operated, the current display on the liquid crystal display 72 is stopped in S123, and the current edit mode process is terminated and the play mode process (S103 in FIG. 15) is entered. Transition. On the other hand, if the edit mode changeover switch 77 has not been operated, the determination process in S113 is regarded as an erroneous determination, and the process returns to S112 to repeat the above-described process.
[0105]
The above process is the edit mode process.
Next, the parameter selection process in S117 in the above-described edit mode process will be described. The parameter selection process is a process executed when the parameter selection switch 74 is operated while the apparatus is performing an edit mode operation. The parameter name to be set displayed on the liquid crystal display unit 72 and its parameter name are displayed. This is a process for switching the display of the current set value.
[0106]
FIG. 17 is a flowchart showing the contents of parameter selection processing.
In the figure, first, in S131, it is determined whether or not the parameter selection switch 74 that has been detected as being operated in the immediately preceding step (S116 in FIG. 16) has “+” (plus) display. If there is an item that has been operated, the process proceeds to S132; otherwise, that is, if an item having a “−” (minus) display has been operated, the process proceeds to S135.
[0107]
In S132, the variable PARAM_SEL is increased by 1. Here, as shown in FIG. 10, the variable PARAM_SEL is a variable for associating numbers 0 to 13 with various parameters that can be set by the user of the apparatus, and referring to the various parameters by numbers. The range of values is an integer from 0 to 13 from FIG. The correspondence between these various parameters and the variable PARAM_SEL is shown stored in advance in a predetermined area of the ROM 52. Note that the variable PARAM_SEL is set to 0 in the initialization process (S101 in FIG. 15).
[0108]
In S133, the number of the variables PARAM_SEL and 13 is determined. Only when the variable PARAM_SEL exceeds 13, 0 is substituted into the variable PARAM_SEKL in S134. By this process, the parameter selection switch 74 can perform cyclic parameter selection in the forward direction. After this process, the process proceeds to S138.
[0109]
By the way, if it is determined in S131 that the parameter selection switch 74 with “−” is operated, the variable PARAM_SEL is decreased by 1 in S135.
[0110]
In S136, the size of the variable PARAM_SEL and 0 is determined. Only when the variable PARAM_SEL has fallen below 0, 13 is substituted for the variable PARAM_SEKL in S137. In this process, the cyclic parameter selection in the reverse direction by the parameter selection switch 74 is realized.
[0111]
In S138, the parameter name corresponding to the current value of the variable PARAM_SEL and the current set value of the parameter are acquired by referring to the ROM 52 and the RAM 53, the acquisition result is displayed on the liquid crystal display 72, and the current parameter selection process is performed. End and return to edit mode processing.
[0112]
The process so far is the parameter selection process.
Next, the parameter value changing process in S119 (FIG. 16) in the edit mode process described above will be described. The parameter value changing process is a process executed when the value entry switch 75 is operated while the present apparatus is performing an edit mode operation. The parameter value changing process is the above-described parameter selection process indicated by the liquid crystal display unit 72. This is a process of receiving an instruction from the user about changing the value of the selected parameter to be set.
[0113]
FIG. 18 is a flowchart showing the contents of the parameter value changing process.
In this figure, first, in S141, the current value of the parameter currently selected and currently displayed on the liquid crystal display 72, which is indicated by the value of the variable PARAM_SEL, is substituted into the variable TEMP.
[0114]
In S142, the value entry switch 75 whose operation is detected in the immediately preceding step (S118 in FIG. 16) determines whether or not “+” (plus) display is present, and the one with + display is operated. If yes, the process proceeds to S143, and if not, that is, if a "-" (minus) display has been operated, the process proceeds to S144.
[0115]
In S143, the variable TEMP is increased by 1, and the process proceeds to S145.
In S144, the variable TEMP is decreased by 1.
In S145, it is checked whether or not the value of the current variable TEMP is out of the range of the currently selected parameter. If so, the process proceeds to S146, and if not, the process proceeds to S147.
[0116]
In S146, the current value of the currently selected parameter is again substituted into the variable TEMP. By the processing of this step, the setting content of the setting parameter is prevented from becoming a value outside the range allowed by the parameter.
[0117]
In S147, the parameter name corresponding to the current value of the variable PARAM_SEL is obtained by referring to the ROM 52 and the RAM 53, the parameter name and the current value of the variable TEMP are displayed on the liquid crystal display 72, and the current parameter value change is performed. The process ends and the process returns to the edit mode process.
[0118]
The process so far is the parameter value change process.
Next, the details of the play mode process performed in S103 of FIG. 15 will be described. FIG. 19 is a flowchart showing the contents of the play mode process.
[0119]
First, in S201, the contents of the currently selected memory indicated by the variable MEM_SEL described in the description of the edit mode process are stored in a temporary storage area (this is set as a temporary memory area for the play mode process). Copy and store.
[0120]
In S202, it is checked whether or not various switches provided on the panel 70 are operated. If a switch operation is detected in S203, the process proceeds to S204, and if a switch operation is not detected, the process proceeds to S208.
[0121]
In S204, it is determined whether or not the switch operation detected in the previous step is for the edit mode changeover switch 77. If the edit mode changeover switch 77 has been operated, the current edit mode process is terminated, and the process proceeds to the edit mode process (S102 in FIG. 15). On the other hand, if the edit mode switch 77 has not been operated, the process proceeds to S205.
[0122]
In S205, it is determined whether or not the switch operation detected in S203 is for the memory changeover switch 71. If the memory changeover switch 71 has been operated, the process proceeds to S206, and if it has not been operated, the process proceeds to S208.
[0123]
In S206, the memory number assigned to each of the operated memory changeover switches 71 is substituted into the variable MEM_SEL, and the memory number is displayed on the 7-segment LED which is the memory number display 73.
[0124]
In S207, the contents of the currently selected memory indicated by the variable MEM_SEL changed in the previous step are copied and stored in the temporary memory.
In S208, an input signal analysis process, which is a process for analyzing a musical tone signal input to the apparatus, is performed. Details of the input signal analysis processing will be described later.
[0125]
In step S209, the VCF 11 is set based on the various parameters set by the user in the edit mode process and currently stored in the temporary memory, and the analysis result obtained by the input signal analysis process in the previous step. VCF control processing, which is processing for controlling the. Details of the VCF control processing will also be described later.
[0126]
After finishing the process of S209, it returns to S202 and repeats the process mentioned above.
The above process is the play mode process.
Next, the input signal analysis process in S208 in the above-described play mode process will be described. This input signal analysis processing and VCF control processing described later are processing directly related to the present invention.
[0127]
FIG. 20 is a flowchart showing the processing contents of the input signal analysis processing.
First, in S211, the CPU 51 acquires the voltage value of the analog voltage output from each part of the envelope detection unit 20, the pitch-voltage conversion unit 30, and the peak hold unit (40a, 40b) shown in FIG. 2 as digital data. A certain input signal data acquisition process is performed.
[0128]
In S212, the data acquired from the envelope detection unit 20 indicates which of the three intervals (silence interval, attack interval, decay interval) that divides the envelope of the above-described musical sound signal into the currently input musical sound signal. Envelope analysis processing, which is processing based on the determination, is performed.
[0129]
In S213, a pitch detection process is performed, which is a process for detecting the pitch of the currently input musical sound signal from the data acquired from the pitch-voltage converter 30.
In S214, picking direction detection processing, which is processing for detecting the picking direction of the string in the guitar performance that is the source of the input musical sound signal from the data acquired from the peak hold units (40a, 40b), is performed.
[0130]
Details of each process from S212 to S214 will be described later.
After finishing the process of S214, this input signal analysis process is complete | finished and it returns to a play mode process.
[0131]
The above processing is the input signal analysis processing.
Next, the input signal data acquisition process in S211 in the input signal analysis process described above will be described. FIG. 21 is a flowchart showing the contents of the input signal data acquisition process.
[0132]
First, in S221, 1 is substituted into the variable ANA_MPX. Here, the variable ANA_MPX is a variable used for selection of signal switching by the analog multiplexer, and takes any integer from 1 to 4 as a value. When this value is 1, the output of the envelope detection unit 20 is output. When the value is 2, the output of the pitch-voltage conversion unit 30 is output. When the value is 3, the output of the + peak hold unit 40a is −. The selection of the output of the peak hold unit 40b is shown.
[0133]
In S222, the four systems of the analog multiplexer 56 are switched and controlled via the I / F unit 57 so that the output signal indicated by the current value of the variable ANA_MPX is given to the converted analog voltage input of the AD converter 55. .
[0134]
In S223, the current converted digital data output of the AD converter 55 is acquired, and the acquired data is substituted into a variable AD_VALUE (ANA_MPX). In each process to be described later, it is possible to refer to AD conversion data of the current output analog voltage value of each unit by referring to this variable AD_VALUE (ANA_MPX).
[0135]
In S224, the variable ANA_MPX is increased by 1.
In S225, the size of the number of the variables ANA_MPX and 4 is determined. If the variable ANA_MPX exceeds 4, the current input signal data acquisition process is terminated, and the process returns to the input signal analysis process. On the other hand, if the variable ANA_MPX does not exceed 4, the process returns to S222, and the above process is repeated to continue acquiring data.
[0136]
The above process is the input signal data acquisition process.
Next, the envelope analysis process in S212 (FIG. 20) in the input signal analysis process described above will be described. FIG. 22 is a flowchart showing the contents of the envelope analysis process.
First, in S231, the value of the variable AD_VALUE (1), that is, the output voltage value of the envelope detector 20 which is digital data, and the judgment reference level of the silent section in the envelope waveform (change reference level (1) or (5) in FIG. Compare the size with ▼). If the value of the variable AD_VALUE (1) is below the determination reference level of the silent section, the process proceeds to S232, and if the value of the variable AD_VALUE (1) is not below the determination reference level of the silent section, the process proceeds to S239.
[0137]
In S232, 0 is substituted into the variable ENV_PERIOD. Here, the variable ENV_PERIOD is a variable that indicates which of the three sections that divide the envelope of the above-described musical sound signal into which the musical sound signal that is currently input is included. Takes a value. When this value is 0, it indicates that the envelope of the current musical sound signal is included in the silent section, and when this value is 1, it is included in the attack section. 2 indicates that it is included in the decay interval.
[0138]
In S233, the variable ENV_MAX is initialized, that is, 0 is substituted.
In S234, the variable ENV_MIN is initialized, that is, the maximum value data output from the AD converter 55 is substituted.
[0139]
In S235 and S236, the variable ATTACK_TIMER_F and the variable ATTACK_TIMER are initialized, that is, 0 is substituted for both.
In S237 and S238, the variables DECAY_TIMER_F and DECAY_TIMER are initialized, that is, 0 is substituted for both, and the process proceeds to S244.
[0140]
Each variable used in the processes from S233 to S238 will be described in the analysis process in the attack section or the analysis process in the decay section described later.
[0141]
By the way, when it is determined in the determination process in S231 that the value of the variable AD_VALUE (1) is not lower than the determination reference level of the silent section, it is checked in S239 whether the value of the variable ENV_PERIOD is 0 or not. That is, as the previous analysis result of the envelope analysis processing, it is checked whether or not it has been determined that the envelope of the musical sound signal at the previous processing is included in the silent section. As a result, if the value of the variable ENV_PERIOD is 0, that is, if it has been determined that the envelope of the musical sound signal at the time of the previous processing is included in the silent section, the process proceeds to S240. On the other hand, if the value of the variable ENV_PERIOD is not 0, that is, if it is not determined that the variable ENV_PERIOD is included in the silent section at the time of the previous process, the process proceeds to S241.
[0142]
In S240, it is determined that the envelope of the musical sound signal included in the silent section at the previous processing is equal to or higher than the determination reference level of the silent section this time and is included in the attack section, and the value of the variable ENV_PERIOD is set to 1. . Thereafter, the process proceeds to S244.
[0143]
In S241, it is checked whether or not the value of the variable ENV_PERIOD is 1, and it has been determined that the envelope of the musical sound signal at the previous execution is included in the attack section as the analysis result at the previous execution of the envelope analysis processing. Check for no. As a result, if the value of the variable ENV_PERIOD is 1, that is, if it is determined that it is included in the attack section at the time of the previous processing, the process proceeds to S242, and within the attack section, which is a process of analyzing the envelope in the attack section After performing the analysis processing, the process proceeds to S244. On the other hand, as a result of the determination process in S241, it is determined that the value of the variable ENV_PERIOD is not 1 and that the value is not 0 by the determination process in S239, that is, it is determined that the musical tone signal in the previous process is included in the decay interval. If YES in step S243, the flow advances to step S243 to perform an in-decay interval analysis process, which is a process for analyzing the envelope in the decay interval.
[0144]
In S244, the value of the variable AD_VALUE (1) is substituted into the variable ENV_LASTVALUE. The variable ENV_LASTVALUE is substituted with the current value of the variable AD_VALUE (1), that is, the current output voltage value of the envelope detector 20 which is digital data. This variable is used in an attack interval analysis process or a decay interval analysis process, which will be described later, when the envelope analysis process is executed next time. Note that the initialization process shown in S101 in FIG. 15 includes a process of initializing by assigning 0 to this variable ENV_LASTVALUE.
[0145]
After the process of S244, the current envelope analysis process is terminated and the process returns to the input signal analysis process.
The above processing is the envelope analysis processing.
[0146]
Next, the analysis process within the attack section in S242 in the envelope analysis process will be described. FIG. 23 is a flowchart showing the processing contents of the analysis processing within the attack section.
[0147]
First, in S251, the values of the variable AD_VALUE (1) and the variable ENV_LASTVALUE are compared. As a result, if the value of the variable AD_VALUE (1) is smaller than the value of the variable ENV_LASTVALUE, that is, if the current output voltage value of the envelope detector 20 is smaller than the previous value, the process proceeds to S252 and does not decrease. If so, the process proceeds to S259.
[0148]
In S252, 1 is substituted into the variable DECay_TIMER_F.
Here, the variable DECAY_TIMER and the variable DECAY_TIMER_F will be described. The variable DECEY_TIMER is a counter for measuring the duration when the envelope continues to decrease in the attack period, and is a variable used for determining the transition from the attack period to the decay period. The variable DECAY_TIMER is subjected to a process of incrementing the value by 1 every predetermined time only when the variable DECAY_TIMER_F is 1 by a timer interrupt process described later. Therefore, when a value other than 1 is substituted for the variable DECay_TIMER_F, and 0 in the present embodiment, the increase in the value of the variable DECay_TIMER can be stopped. In addition, the initialization process shown by S101 in FIG. 15 includes a process of initializing by substituting 0 into the variable DECay_TIMER_F and the variable DECay_TIMER.
[0149]
In S253, the value of the variable DECAY_TIMER and the decay interval determination reference time (the time of the determination interval (a) or (c) in FIG. 4) serving as a reference for determining the transition from the attack interval to the decay interval in the envelope waveform Determine the magnitude of the value. If the value of the variable DECAY_TIMER exceeds the decay interval determination reference time, the process proceeds to S255. On the other hand, if the value of the variable DECAY_TIMER has not yet exceeded the decay interval determination reference time, the analysis processing within the current attack interval is terminated and the processing returns to the envelope analysis processing.
[0150]
In S254, a value obtained by subtracting the value of the variable AD_VALUE (1) from the value of the variable ENV_MAX, and a decay interval determination reference level (in FIG. 4) serving as a reference for determining the transition from the attack interval to the decay interval in the envelope waveform. The value of the change reference level (2) or (4)) is determined. Here, the variable ENV_MAX is a variable to which the maximum value of the variable AD_VALUE (1) observed so far is substituted in the current attack section including the currently input musical sound signal. Therefore, the value obtained by subtracting the value of the variable AD_VALUE (1) from the value of the variable ENV_MAX indicates a decrease from the maximum level of the envelope observed so far in the current attack interval. When the result value is negative, it indicates that the envelope of the current musical sound signal is increasing.
[0151]
Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing by assigning 0 to this variable ENV_MAX.
As a result of the determination process in S254, if it is determined that the value obtained by subtracting the value of the variable AD_VALUE (1) from the value of the variable ENV_MAX is greater than the decay interval determination reference level, the process proceeds to S255. On the other hand, if it is determined that the resulting value is not greater than the decay interval determination reference level, the current attack interval analysis process is terminated, and the process returns to the envelope analysis process.
[0152]
In S255, it is determined that the current output voltage value of the envelope detection unit 20 satisfies the determination criterion for the transition from the attack interval to the decay interval, and the value of the variable ENV_PERIOD is set to 2.
[0153]
In S256, S257, and 258, each variable is initialized by sequentially substituting 0 for each of the variable DECAY_TIMER_F, the variable DECAY_TIMER, and the variable ENV_MAX, and then the analysis process in the current attack section is terminated and the process returns to the envelope analysis process. .
[0154]
By the way, in the determination process of S251, when it is determined that the value of the variable AD_VALUE (1) is not smaller than the value of the variable ENV_LASTVALUE, that is, the current output voltage value of the envelope detection unit 20 is not decreased from the previous value. In S259 and S260, each variable is initialized by sequentially substituting 0 into the variable DECay_TIMER_F and the variable DECEY_TIMER.
[0155]
In S261, the magnitudes of the values of the variable AD_VALUE (1) and the variable ENV_MAX are determined. As a result, only when the variable AD_VALUE (1) becomes larger than the variable ENV_MAX, the value of the variable AD_VALUE (1) is substituted into the variable ENV_MAX in S262, and the observed maximum value of the envelope in the current attack section is updated. To do.
[0156]
After the above process is completed, the analysis process within the current attack section is terminated and the process returns to the envelope analysis process.
The processing up to this point is the analysis process within the attack section.
[0157]
Next, the analysis process within the decay section in S243 (FIG. 22) in the envelope analysis process will be described. FIG. 24 is a flowchart showing the processing contents of the analysis process within the decay interval.
[0158]
First, in S271, the values of the variable AD_VALUE (1) and the variable ENV_LASTVALUE are compared, and the value of the variable AD_VALUE (1) is larger than the value of the variable ENV_LASTVALUE, that is, the current output voltage value of the envelope detection unit 20 is If it has increased from the previous value, the process proceeds to S272, and if it has not increased, the process proceeds to S279.
[0159]
In S272, 1 is substituted into the variable ATTACK_TIMER_F.
The variable ATTACK_TIMER and the variable ATTACK_TIMER_F will be described. The variable ATTACK_TIMER is a counter for measuring the duration when the envelope continues to increase in the decay interval, and is used to determine the transition from the decay interval to the attack interval. Is a variable used for The variable ATTCK_TIMER is incremented by 1 every fixed time only when the variable ATTACK_TIMER_F is 1 by the timer interrupt process described later, and when a value other than 1, for example, 0 is substituted for the variable ATTACK_TIMER_F Can stop increasing the value of the variable ATTACK_TIMER. Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing by assigning 0 to the variable ATTACK_TIMER_F and the variable ATTACK_TIMER.
[0160]
In S273, the value of the variable ATTACK_TIMER and the value of the attack section determination reference time (the time of the determination section (b) in FIG. 4) serving as a reference for determining the transition from the decay section to the attack section in the envelope waveform are changed. judge. If the value of the variable ATTACK_TIMER exceeds the attack section determination reference time, the process proceeds to S274. On the other hand, if the value of the variable ATTACK_TIMER has not yet exceeded the attack section determination reference time, the current analysis process within the decay section is terminated, and the process returns to the envelope analysis process.
[0161]
In S274, the value obtained by subtracting the value of the variable ENV_MAX from the value of the variable AD_VALUE (1), and the attack interval determination reference level (in FIG. 4) as a reference for determining that the envelope waveform has transitioned from the decay interval to the attack interval. The value of the change reference level (3) is determined. Here, the variable ENV_MIN is a variable to which the minimum value of the variable AD_VALUE (1) observed so far is substituted in the current decay interval including the currently input musical sound signal. Therefore, the value obtained by subtracting the value of the variable ENV_MIN from the value of the variable AD_VALUE (1) indicates an increase from the minimum level of the envelope observed in the current decay interval. When is negative, it indicates that the envelope of the current musical sound signal is decreasing.
[0162]
Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing the variable ENV_MIN by substituting the maximum value data output from the AD converter 55 into the variable ENV_MIN.
[0163]
As a result of the determination processing in S274, if it is determined that the value obtained by subtracting the value of the variable ENV_MAX from the value of the variable AD_VALUE (1) is greater than the attack section determination reference level, the process proceeds to S275, and the value of the result is determined to be the attack. If it is determined that the level is not greater than the section determination reference level, the analysis process within the decay period is terminated and the process returns to the envelope analysis process.
[0164]
In S275, it is determined that the current output voltage value of the envelope detection unit 20 satisfies the determination criterion for the transition from the decay interval to the attack interval, and the value of the variable ENV_PERIOD is set to 1.
[0165]
In S276, S277, and S278, each of variable ATTACK_TIMER_F, variable ATTACK_TIMER, and variable ENV_MIN is initialized. Here, 0 is substituted for the variable DECAY_TIMER_F and the variable DECAY_TIMER in sequence, but the maximum value data that can be output from the AD converter 55 is substituted for the variable ENV_MIN.
[0166]
Thereafter, the analysis process within the current attack section is terminated and the process returns to the envelope analysis process.
By the way, when it is determined in the determination processing of S271 that the value of the variable AD_VALUE (1) is not larger than the value of the variable ENV_LASTVALUE, that is, the current output voltage value of the envelope detection unit 20 does not increase from the previous value. In S279 and S280, each variable is initialized by sequentially substituting 0 into the variable ATTACK_TIMER_F and the variable ATTACK_TIMER.
[0167]
In S281, the magnitudes of the values of the variable AD_VALUE (1) and the variable ENV_MIN are determined. As a result, only when the variable AD_VALUE (1) becomes smaller than the variable ENV_MIN, the value of the variable AD_VALUE (1) is substituted into the variable ENV_MIN in S282, and the minimum value of the envelope in the current decay interval is updated. Do.
[0168]
After the above process is completed, the current analysis process within the decay interval is terminated and the process returns to the envelope analysis process.
The above processing is the decay interval analysis processing.
[0169]
Next, the pitch detection process in S213 (FIG. 20) in the input signal analysis process will be described. FIG. 25 is a flowchart showing the contents of the pitch detection process.
[0170]
First, in S291, an AD value-pitch conversion table stored in advance in a predetermined area of the ROM 52 is referred to. This AD value-pitch conversion table observes digital data output when the AD converter 55 performs AD conversion on the analog voltage output from the pitch-voltage conversion unit 30 when a test signal having a known pitch is input. The relationship between the pitch of the input test signal and the output data is stored in the ROM 52 as a table.
[0171]
In S292, the value of the variable AD_VALUE (2) from the AD value-pitch conversion table, that is, the pitch value corresponding to the current output voltage value of the pitch-voltage converter 30 is acquired and substituted into the variable PITCH. In the processing performed thereafter, the pitch value of the current musical sound signal can be acquired by referring to the value of this variable PITCH.
[0172]
After the above process is completed, the current pitch detection process is terminated and the process returns to the input signal analysis process.
The above processing is the pitch detection processing.
[0173]
Next, the picking direction detection process in S214 (FIG. 20) in the input signal analysis process will be described. FIG. 26 is a flowchart showing the contents of the picking direction detection process.
[0174]
First, in S301, it is determined whether or not the variable ENV_PERIOD is 2, that is, whether or not the current musical sound signal is included in the decay interval as a result of the envelope analysis process. If the variable ENV_PERIOD is 2, the process proceeds to S302. If it is not 2, the process proceeds to S306.
[0175]
In S302, 1 is substituted into the variable HOLD_CTRL. The variable HOLD_CTRL is a variable for controlling the hold / non-hold (sample) of the analog voltage in the peak hold unit (40a, 40b). When 1 is substituted for this variable, the peak hold circuit (43a, 43b) is controlled. Hold control is performed to hold the output of the maximum value of the analog voltage given so far. When 0 is substituted for this variable, non-hold (sample) control is performed to output the maximum value of the analog voltage applied so far to the peak hold circuit (43a, 43b). Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing by assigning 0 to this variable HOLD_CTRL.
[0176]
In S303, the magnitudes of the values of the variable AD_VALUE (3) and the variable AD_VALUE (4) are determined. When the value of the variable AD_VALUE (3) is greater than or equal to the value of the variable AD_VALUE (4), that is, when the current output voltage value of the + peak hold unit 40a is greater than or equal to the current output voltage value of the −peak hold unit 40b, In S304, 0 is substituted into the variable PICKING. On the other hand, when the value of the variable AD_VALUE (3) is smaller than the value of the variable AD_VALUE (4), that is, when the current output voltage of the + peak hold unit 40a is smaller than the current output voltage of the −peak hold unit 40b, In S305, 1 is substituted into the variable PICKING. In the processing performed thereafter, by referring to the value of this variable PICKING, when the value is 0, it is recognized that the performance is currently being performed in the picking-up performance, and when the value is 1, Can recognize that the performance is currently being performed in the manner of picking down.
[0177]
After this process, the current picking direction detection process is terminated and the process returns to the input signal analysis process.
By the way, in the determination process of S301, if it is determined that the variable ENV_PERIOD is not 2, that is, as a result of the envelope analysis process, the current musical sound signal is not included in the decay interval, whether or not the variable HOLD_CTRL is 1 in S306. Determine whether or not. As a result, the variable HOLD_CTRL is 1, that is, hold control is performed on the peak hold units (40a, 40b) until this time, that is, the musical tone signal is included in the decay interval until this time. Only when it is determined, in S307, the peak hold units (40a, 40b) are reset, and in S308, 0 is substituted into the variable HOLD_CTRL to perform non-hold control. When the peak hold units (40a, 40b) are reset, the output of the maximum value of the analog voltage output until now is released, and the output analog voltage value once becomes zero.
[0178]
After this process, the current picking direction detection process is terminated and the process returns to the input signal analysis process.
The above processing is picking direction detection processing.
[0179]
Next, the VCF control process in S209 (FIG. 19) in the play mode process will be described. This VCF control process is also a process directly related to the present invention together with the above-described input signal analysis process.
[0180]
FIG. 27 is a flowchart showing the contents of the VCF control process.
First, in S311, an LFO process, which is a process for realizing an LFO function for oscillating the center frequency of the BPF included in the VCF 11, is performed in the present apparatus.
[0181]
In S312, EG processing, which is processing for realizing an EG (envelope generator) function for generating an envelope curve based on a change in the center frequency of the BPF formed by the VCF 11, is performed in this apparatus.
[0182]
In S313, a pitch control process, which is a process for realizing the pitch control function, which is a function of changing the center frequency of the BPF formed by the VCF 11 in accordance with the pitch of the input musical sound signal, is performed by this apparatus.
[0183]
In S314, a picking control process, which is a process for realizing a picking control function in this apparatus for changing the characteristics of the BPF formed by the VCF 11 according to the difference in the picking direction of the guitar performance, is performed.
[0184]
Details of each processing from S311 to S314 will be described later.
In S315, a value obtained by Fpitch × {1 + S × (LFO + EG) × 1/2} + Foffset is substituted into the variable F. The variable F is a variable for setting the control analog voltage to the VCF 11 and is a set value of the center frequency of the BPF that the VCF 11 configures. Each variable used in this step will be described in the detailed description of each process from S311 to S314 described later.
[0185]
In S316, the VCF control data table stored in advance in the ROM 52 and showing the correspondence between the control voltage applied to the VCF 11 and the set value of the center frequency or Q height of the BPF configured by the VCF 11 is referred to. . In S317, control values corresponding to the variables F and P are obtained from this table, and the obtained control data is given to the DA converter 54 for DA conversion. The converted analog voltage is applied to the VCF 11 and the characteristics of the BPF configured by the VCF 11 are set. The DA converter 54 continues to output an analog voltage value corresponding to the digital data given last time until new digital data is given. Therefore, the characteristics of the BPF formed by the VCF 11 are in that period. Shall not change.
[0186]
The variable P will be described together in the detailed description of each process from S311 to S314 described later.
After completion of this process, the current VCF control process is terminated and the process returns to the play mode process.
[0187]
The above processing is the VCF control processing.
Next, the LFO process in S311 in the VCF control process will be described. FIG. 28 is a flowchart showing the processing contents of the LFO processing.
[0188]
First, in S321, it is one of the operation control parameters of the apparatus set by the user shown in FIG. 10, and is stored in the temporary memory by the process of S201 or S207 (FIG. 19) of the play mode process described above. Refer to the setting contents of the Trig Mode of the block LFO. As a result, if the value of Trig Mode is 0, that is, if the LFO function is set to the operation stop (OFF) mode, the process proceeds to S322, and if the value is 1, that is, if the ALWAYS mode is set, the process proceeds to S323. If the value is 2, that is, the DECay mode is set, the process proceeds to S330.
[0189]
If the value of Trig Mode is 0, that is, if the LFO function is set to the operation stop mode, 0.0 is substituted into the variable LFO in S322. Here, the variable LFO is a parameter for setting a control amount by the LFO function with respect to the center frequency of the BPF formed by the VCF 11, and a value of 0.0 or more and 1.0 or less is set. Control to change the center frequency largely is performed. Further, when this value is set to 0.0, the above-described change in the center frequency of the BPF due to the LFO function does not occur.
[0190]
After the process of S322, the current LFO process is terminated and the process returns to the VCF control process.
By the way, if it is determined in S321 that the value of Trig Mode is 1, that is, that the LFO function is set to the ALWAYS mode, 1.0 is substituted into the variable RISE_COEF in S323. Here, the variable RISE_COEF is a variable for setting the vibration width of the vibration wave generated by the LFO function. A value of 0.0 or more and 1.0 or less is set, and a larger value indicates a vibration wave having a larger vibration width. Indicates that it will be generated.
[0191]
In S324, 1 is substituted into the variable ADDR_COUNT_F.
Here, the variable ADDR_COUNT_F and the variable ADDR_COUNT will be described. The variable ADDR_COUNT is a variable used as a ring counter for repeatedly reading vibration waveform data for one cycle stored in an OSC table described later. The variable ADDR_COUNT is constant only when the variable ADDR_COUNT_F is 1 by timer interrupt processing described later. A process of increasing the value by 1 every time is performed. Therefore, when a value other than 1, for example, 0 is assigned to the variable ADDR_COUNT_F, the increase in the value of the variable ADDR_COUNT can be stopped. Note that the initialization process shown in S101 in FIG. 15 includes a process of initializing the variable ADDR_COUNT_F and variable ADDR_COUNT by substituting 0.
[0192]
In S325, the value of the variable ADDR_COUNT is compared with the number of data of one period of vibration waveform data stored in the OSC table described later, and only when the value of the variable ADDR_COUNT exceeds the number of data of the waveform data, In S326, a value obtained by subtracting the number of waveform data from the value is substituted into the variable ADDR_COUNT. By this processing, the variable ADDR_COUNT functions as a ring counter.
[0193]
In S327, the sum of the variable ADDR_COUNT and ADDR_OFFSET (Wave Form) is substituted into the variable ADDR. Here, the variable ADDR is a variable in which a reference address for reading the vibration waveform data stored in the ROM 52 is set, and the waveform data for one cycle is repeatedly read by the action of the variable ADDR_COUNT that is a ring counter. be able to. ADDR_OFFSET (Wave Form) indicates the position of the storage area on the ROM 52 where the waveform data of the signal waveform indicated by the parameter Wave Form of the block LFO stored in the temporary memory is stored. An appropriate value corresponding to each value of Wave Form is set in advance.
[0194]
In S328, an OSC table that is a table of vibration waveform data stored in advance in the ROM 52 is referred to.
Here, the vibration waveform data will be described. As the vibration waveform data, the same number of data is stored for each waveform, and each data takes any value from 0.0 to 1.0. The head of each data is set to start from a data value of 0.0. Thus, even in the operation in the DECay mode described later, the center frequency of the BPF can be smoothly controlled at the start of generation of the vibration wave.
[0195]
In S329, the product of the OSC (ADDR), which is the content of the vibration waveform data stored at the address of the variable ADDR, and the variable RISE_COEF is calculated as the value of the variable LFO, and the current LFO processing is terminated and the VCF control processing is completed. Return to.
[0196]
Incidentally, in S321, when it is determined that the value of Trig Mode is 2, that is, the LFO function is set to the DECay mode, whether or not the value of the variable ENV_PERIOD is 2 in S330, that is, is currently input. It is determined whether or not the envelope of the musical sound signal is included in the decay interval. As a result, if the variable ENV_PERIOD value is 2, the process proceeds to S335, and if not 2, the process proceeds to S331.
[0197]
If it is determined by the determination processing in the previous step that the envelope of the musical sound signal that is currently input is not a decay interval, a variable ADDR_COUNT_F and a variable ADDR_COUNT and a variable LFO_TIMER_F and a variable LFO_TIMER described later are set to 0 from S331 to S334. Are sequentially assigned and initialized. Thereafter, the process proceeds to S322, in which the same processing as in the operation stop mode described above is performed. As a result, 0.0 is substituted into the variable LFO.
[0198]
On the other hand, if it is determined by the determination processing in S330 that the envelope of the musical sound signal currently input is a decay interval, 1 is substituted into the variable LFO_TIMER_F in S335.
[0199]
The variable LFO_TIMER_F and the variable LFO_TIMER will be described. The variable LFO_TIMER is a counter for measuring an elapsed time after the input musical sound signal is included in the decay period in the DECAY mode. By the timer interrupt process, the process of incrementing the value by 1 every predetermined time is performed only when the variable LFO_TIMER_F is 1. Further, when a value other than 1, for example, 0 is assigned to the variable LFO_TIMER_F, the increase in the value of the variable LFO_TIMER can be stopped. Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing the variable LFO_TIMER_F and the variable LFO_TIMER by substituting 0.
[0200]
In S336, it is checked whether or not the value of the variable LFO_TIMER has exceeded the parameter Delay Time of the block LFO stored in the temporary memory, and the generation of vibration waves by the LFO function with the value of the variable LFO_TIMER set is started. If the delay time has passed, the process proceeds to S337. On the other hand, if the value of LFO_TIMER has not passed the delay time, the process proceeds to S322 and the same processing as in the operation stop mode described above is performed. As a result, 0.0 is substituted into the variable LFO.
[0201]
In S337, it is checked whether or not the value of the variable LFO_TIMER has passed the total time of the parameter DelayTime and the parameter Rise Time of the block LFO stored in the temporary memory. In S338, the value of the result of the expression (LFO_TIMER-Delay_Time) / (Rise Time) is substituted into the variable RISE_COEF for setting the amplitude of the vibration wave described above. By this processing, the change in the vibration width from the start of generation of the vibration wave to the steady vibration width can be smoothed. After this processing, the process proceeds to S324, and the value of LFO based on the variable RISE_COEF set by the processing of S338 is set by the subsequent processing.
[0202]
On the other hand, in the determination process of S337, if it is determined that the value of LFO_TIMER has passed the total time of the parameter Delay Time and the parameter Rise Time, the process proceeds to S323, and the same process as in the DECay mode described above is performed. As a result, the same value as in the DECay mode is substituted into the variable LFO.
[0203]
The above processing is LFO processing.
Next, the EG process in S312 (FIG. 27) in the VCF control process will be described. 29 and 30 are flowcharts showing the processing contents of the EG processing.
[0204]
First, in S341 of FIG. 29, one of the operation control parameters of the apparatus set by the user shown in FIG. 10, which is the Trig Mode of the block EG stored in the temporary memory in the play mode processing described above. Refer to the settings. As a result, if the value of Trig Mode is 0, that is, if the EG function is set to the operation stop (OFF) mode, the process proceeds to S342, and if the value is 1, that is, if the ALWAYS mode is set, S360 (FIG. If the value is 2, that is, if the DECay mode is set, the process proceeds to S343.
[0205]
When the value of Trig Mode is 0, that is, when the EG function is set to the operation stop mode, 0.0 is substituted into the variable EG in S342. Here, the variable EG is a parameter for setting a control amount by the EG function with respect to the center frequency of the BPF formed by the VCF 11, and a value of 0.0 or more and 1.0 or less is set. Then, as the value is increased, control is performed so that the center frequency is greatly changed. On the other hand, when this value is set to 0.0, the change in the center frequency of the BPF by the EG function does not occur. .
[0206]
After the process of S342, the current EG process is terminated and the process returns to the VCF control process. When it is determined in S341 that the value of Trig Mode is 2, that is, the EG function is set to the DECay mode, the value of the variable ENV_PERIOD described above is checked in S343. As a result, if the value is 1, that is, if the envelope of the currently input musical sound signal is included in the attack period, the process proceeds to S344, and if the value is 2, that is, if it is included in the decay period, the process proceeds to S349. If the value is 0, that is, if it is included in the silent section, the process proceeds to S356.
[0207]
If it is determined by the determination process in the previous step that the envelope of the musical sound signal that is currently input is included in the attack section, in step S344, the variable AD_VALUE () into which the output voltage value of the envelope detection unit 20 is substituted. A value obtained by dividing 1) by the maximum value data that can be output from the AD converter 55 is substituted into the variable EG described above. By this processing, the variable EG changes according to the envelope of the tone signal during the attack period.
[0208]
In S345, the current value of the variable EG is substituted into the variable LASTATTACK_EG. The variable LASTATTACK_EG is a variable for storing the maximum value of the envelope in the attack section, which is necessary for processing in the decay section described later.
Thereafter, from S346 to S348, initialization is performed by sequentially substituting 0 for each of a number EGDECAY_TIMER_F, a variable EGDECAY_TIMER, and a variable LAST_TIME, which will be described later, and thereafter, the current EG process is terminated and the process returns to the VCF control process.
[0209]
By the way, when it is determined by the determination processing in S343 that the envelope of the musical sound signal currently input is a decay interval, 1 is substituted into the variable EGDECAY_TIMER_F in S349.
[0210]
Here, the variable EGDECAY_TIMER_F and the variable EGDECAY_TIMER will be described. The variable EGDECAY_TIMER is a counter for measuring the elapsed time after the input musical sound signal is included in the current decay interval, which will be described later. When the variable EGDECAY_TIMER_F is set to 1 by the timer interruption process, the value is incremented by 1 every fixed time. When a value other than 1 is assigned to the variable EGDECAY_TIMER_F, the value of the variable EGDECAY_TIMER is increased. Can be stopped. Note that the initialization process shown in S101 in FIG. 15 includes a process of initializing the variable EGDECAY_TIMER_F and variable EGDECAY_TIMER by substituting 0.
[0211]
In S350, the current value of the variable EGDECAY_TIMER is substituted into the variable LAST_TIME. The variable LAST_TIME will be described later.
In S351, the product of the variable LAST_TIME and INT (100 / Delay Rate) is substituted into the variable EGADDR. Here, the variable EGADDR is a variable in which a reference address for reading the waveform data of the envelope of only the decay portion stored on the ROM 52 is set. Delay Rate is a setting value of the parameter Delay Rate of the block EG stored in the temporary memory described above. The function INT () is a function that extracts only the integer part of the calculation result in parentheses. The processing of this step makes it possible to change the numerical interval of the value of the variable EGADDR that is successively changed at each EG processing by the value of the parameter Delay Rate. As a result, the waveform of the envelope of the decay portion Since the data is read by setting the jumping read address by the variable EGADDR, the attenuation characteristic of the envelope is changed.
[0212]
In S352, the magnitude of the value of the variable EGADDR mentioned above and the number of envelope waveform data of only the decay portion on the ROM 52 is checked. As a result, if the value of the variable EGADDR exceeds the number of waveform data, the envelope waveform of the decay part being generated is considered to be sufficiently attenuated, and 0.0 is substituted for the variable EG in S353, and The current EG process is terminated and the process returns to the VCF control process. On the other hand, if the value of the variable EGADDR does not exceed the number of waveform data, the process proceeds to S354.
[0213]
In S354, a decay curve table that is stored in advance in the ROM 52 and is a waveform data group of an envelope of only the decay portion is referred to. The contents of the decay curve table will be described. Each data is a value between 0.0 and 1.0, and the leading data of the decay curve is 1.0.
[0214]
In S355, the product of the variable LASTATTACK_EG and D_CURVE (EGADDR) described above in S345 is substituted for the variable EG, and the current EG process is terminated and the process returns to the VCF control process. Here, D_CURVE (EGADDR) is a data value when the variable EGADDR is read as a read address in the above-described decay curve table. By this processing, the attack portion and decay portion of the generated envelope can be continued without a sense of incongruity.
[0215]
By the way, when it is determined by the determination processing in S343 that the envelope of the musical sound signal currently input is a silent section, 1 is substituted into the variable EGDECAY_TIMER_F in S356. This processing is performed when the envelope of the musical sound signal transitions from the attack section to the silence section without transitioning to the silence section (the transition to the silence section is performed without satisfying the judgment condition for transition from the attack section to the decay section). It is possible that this may occur).
[0216]
In S357, the product of the constant DECay_COEF and (EGDAECAY_TIMER-LAST_TIME) is subtracted from the current value of the variable EG, and the result is substituted into the variable EG. The constant DECAY_COEF is a preset constant indicating the degree of attenuation of the envelope generation waveform in the silent period. Here, the variable LAST_TIME is a variable for storing the value of EGDECAY_TIMER at the time of execution of the previous EG process. Therefore, the value obtained by subtracting the variable LAST_TIME from the variable EGDACAY_TIMER is the current value from the previous processing time of the EG process. It shows the elapsed time up to the processing time. By the processing in this step, the value of the variable EG is set so as to decrease at a constant rate with the passage of time in the silent period.
[0217]
In S358, the value of the variable EGDECAY_TIMER is assigned to the variable LAST_TIME.
In S359, it is checked whether or not the value of the variable EG set in S357 has fallen below 0.0. As a result, only when the value of the variable EG is less than 0.0, the variable EG is set to 0.0 in S353. After this process, the current EG process is terminated and the process returns to the VCF control process.
[0218]
By the way, in the determination process of S341 described above, when it is determined that the value of Trig Mode is 2, that is, the EG function is set to the ALWAYS mode, the value of the variable ENV_PERIOD described above is checked in S360 of FIG. If the value is 0, that is, if the envelope of the currently input musical sound signal is included in the silent section, the process proceeds to S369, otherwise the process proceeds to S361.
[0219]
In S361, it is checked whether or not the variable EG_F is 0. The variable EG_F is a variable that is used only when the EG function is set to the ALWAYS mode, and takes a value of 0 or 1. When the variable EG_F is set to 0, the EG function indicates that the attack portion of the envelope waveform is generated (or not generated). When the variable EG_F is set to 1, the decay portion Is generated. Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing by assigning 0 to this variable EG_F.
[0220]
If it is determined that the EG function is generating the attack portion of the envelope waveform, 1 is substituted into the variable EGATTACK_TIMER_F in S362.
Here, the variable EGATTACK_TIMER_F and the variable EGATTACK_TIMER will be described. The variable EGATTACK_TIMER is a counter for measuring an elapsed time after the input musical sound signal is included in the current attack period from the silent period. When a variable EGATTACK_TIMER_F is incremented by 1 only when the variable EGATTACK_TIMER_F is 1 by a timer interrupt process described later, and a value other than 1 is substituted for the variable EGATTACK_TIMER_F, the value of the variable EGATTACK_TIMER Can stop the increase. Note that the initialization process indicated by S101 in FIG. 15 includes a process of initializing by substituting 0 for both variables.
[0221]
In S363, the sum of the value obtained by dividing the variable EGATTACK_TIMER by the product of the constant ATTACK_COEF and the Attack Rate and the current value of the variable EG is substituted into the variable EG. The constant DECAY_COEF is a preset constant indicating a reference for the degree of increase in the generated waveform of the attack portion of the envelope when the EG function is set to the ALWAYS mode. Also, Attack Rate is a setting value of the parameter Attack Rate of the block EG stored in the temporary memory described above. By the processing in this step, the value of the variable EG is set based on a unique envelope that is unrelated to the rise of the envelope of the input tone signal.
[0222]
In S364, it is checked whether or not the variable EG exceeds the value obtained by dividing the parameter Attack Level of the block EG stored in the temporary memory described above by 100. Only when the variable EG exceeds the value, the process from S365 to S368 is performed. Perform processing.
[0223]
In S365, the value obtained by dividing the parameter Attack Level by 100 is substituted into the variable EG.
In S366, since the envelope being generated has reached the maximum attack value, the value of the variable EG_F is set to 1, and a decay portion is generated in the next EG processing.
[0224]
In S367 and S368, initialization is performed by sequentially substituting 0 into the variable EGATTACK_TIMER_F and the variable EGATTACK_TIMER.
After the above process, the process proceeds to S345 (FIG. 29), and the same process as the attack period process in the DECay mode is performed.
[0225]
By the way, in the determination process of S361, when it is determined that the value of the variable EG_F is not 0, the process proceeds to S349 (FIG. 29) to perform the process of generating the decay portion of the envelope waveform, and the decay interval in the DECAY mode. The same processing as that described above is performed.
[0226]
In the determination process of S360, if it is determined that the value of the variable ENV_PERIOD is 0, that is, the envelope of the currently input musical sound signal is included in the silent section, the variable EG_F is set to 0 in S369. After that, in order to perform the generation processing in the silent section of the envelope waveform, the process proceeds to S356 (FIG. 29), and the same processing as the processing of the silent section in the DECAY mode is performed.
[0227]
The process so far is the EG process.
Next, the pitch control process in S313 (FIG. 27) in the VCF control process will be described. FIG. 31 is a flowchart showing the contents of the pitch control process.
[0228]
First, in S371, the pitch control table stored in advance in the ROM 52 is referred to. The contents of the pitch control table will be described with reference to FIG. 14. The pitch control table is input to the block PITCH CTRL parameter Freq Scaling stored in the temporary memory and the pitch detection process (FIG. 25). A value set by the user of this apparatus for the center frequency of the BPF composed of the VCF 11 that is the control amount by the pitch control processing from the value of the variable PITCH (horizontal axis in FIG. 14) indicating the current pitch of the musical tone signal in the middle It is a table in which the addition value from is shown.
[0229]
In S372, the addition value is obtained by referring to the table (in FIG. 31, this value is indicated as Ftable (Freq Scaling, PITCH)), and this value is added to the parameter Freq of the block FILTER stored in the temporary memory described above. Then, the result is substituted into the variable Fpitch. This value is a value related to the center frequency of the BPF by the VCF 11 accompanied by control by the pitch control function of the present apparatus.
[0230]
After this process, the current pitch control process is terminated and the process returns to the VCF control process.
The above processing is the pitch control processing.
Next, the picking control process in S314 (FIG. 27) in the VCF control process will be described. FIG. 32 is a flowchart showing the contents of the picking control process.
[0231]
First, in S381, the Sens parameter, which is a parameter of the block FILTER stored in the temporary memory and sets the degree of change in the center frequency of the BPF by the LFO function and the EG function of the present apparatus, is divided by 100. The assigned value is assigned to the variable S.
[0232]
In S382, Peak, which is a parameter of the block FILTER stored in the temporary memory, and sets the Q height of the BPF constituting the VCF 11, is substituted into the variable P.
[0233]
In S383, 0.0 is substituted into the variable Foffset. The variable Foffset is a variable used to change the setting of the center frequency of the BPF constituting the VCF 11, and the value of this variable is controlled by other functions of the present apparatus in S315 (FIG. 27) of the VCF control process described above. Is added to the center frequency.
[0234]
In S384, it is determined whether or not the setting value of the parameter Mode of the block PICKDIRECTION CTRL stored in the temporary memory is 0, that is, whether or not the OFF mode is set. As a result, if the set value of the parameter Mode is 0, the current pitch control process is terminated and the process returns to the VCF control process.
[0235]
In S385, it is determined whether or not the set value of the parameter Mode is 1, that is, the Pol + mode is set. If the Pol + mode is set, the process proceeds to S386, and if not, the process proceeds to S388.
[0236]
In S386, the value of the variable PICKING set according to the picking direction in the original guitar performance is checked in the picking direction detection process (FIG. 26), and the value is 0, that is, the original performance is performed by picking up. Only when it is, the sign of the variable S is inverted in S387. Thereafter, the current pitch control process is terminated and the process returns to the VCF control process.
[0237]
In S388, the value of the above-described variable PICKING is checked. If the value is 1, that is, if the original performance is performed by picking down, the process proceeds to S389, and if not, the current pitch control process is terminated. To return to the VCF control process.
[0238]
In S389, it is determined whether or not the setting value of the parameter Mode is 2, that is, the Pol-mode is set. Only when the Pol-mode is set, the sign of the variable S is reversed in S387 and the current pitch is set. The control process is terminated and the process returns to the VCF control process.
[0239]
In S390, it is determined whether or not the set value of the parameter Mode is 3, that is, whether or not the Freq Offset mode is set. If the Freq Offset mode is set, the block PICK DIRECTION CTRL stored in the temporary memory described above is determined. The set value of the parameter Offset Value is substituted into the variable Foffset described above, the current pitch control process is terminated, and the process returns to the VCF control process. On the other hand, when the setting value of the parameter Mode is not 3 (in this case, the setting value is 4, that is, only when the Peak Offset mode is set), the block PICK DIRECTION CTRL stored in the temporary memory described above is used. The set value of the parameter Offset Value and the above-described variable P are added and substituted into the variable P, the current pitch control process is terminated, and the process returns to the VCF control process.
[0240]
The above processing is the picking control processing.
Next, timer interrupt processing executed by the CPU 51 will be described. In the present embodiment, the values of some variables used for measuring the elapsed time in each process described so far are increased at regular intervals by timer interruption.
[0241]
The timer for measuring a certain time is configured to have a timer device outside of the CPU 51, or is realized by a method of generating a timer interrupt for every certain number of counts of the operation clock of the CPU 51. Setting the value of this time interval is arbitrary, and the shorter the interval time, the finer the time can be measured. However, the execution of other processing stops when timer interrupt processing is executed, so the balance between the two is balanced. Set the time interval value.
[0242]
FIG. 33 is a flowchart showing the processing contents of the timer interrupt processing.
First, in S401, it is checked whether or not the variable ATTACK_TIMER_F is set to 1, and when the variable ATTACK_TIMER_F is set to 1, the value of the variable ATTACK_TIMER is increased by 1 in S402.
[0243]
Thereafter, by the processing from S403 to S412, a set of the variable DECEY_TIMER_F and the variable DECEY_TIMER, a set of the variable ADDR_COUNT_F and the variable ADDR_COUNT, a set of the variable LFO_TIMER_F and the variable LFO_TIMER, and a set of the variable EGDECAY_TIMER_IMTER_I The same processing as that performed for the pair of the variable ATTACK_TIMER_F and the variable ATTACK_TIMER described above is performed for each of the pairs of EGATTACK_TIMER, and the timer interrupt processing is ended.
[0244]
When the CPU 51 executes the processes described above, the present apparatus realizes various functions according to the present invention.
In the present embodiment, the envelope detection unit 20, the pitch-voltage conversion unit 30, and the peak hold unit (40a, 40b) shown in FIG. 2 are realized by the configuration of the analog circuit, and the analog voltage output from each unit is obtained. The data converted by the AD converter 55 is used by the CPU 51 for various controls. However, the input musical sound signal is first AD converted and captured by the CPU 51 as digital signal data. It is also possible to configure so that all of these are digitally processed by the CPU 51.
[0245]
In addition, a sound effect addition program for causing the computer to execute these processes performed by the CPU 51 is created and stored in a computer-readable storage medium, and the program is read from the storage medium and executed by the computer. It is also possible to perform the functions of this apparatus. FIG. 34 shows an example of a computer-readable storage medium that stores the sound effect addition program. As shown in the figure, as the storage medium, for example, a storage device 82 such as a ROM or a hard disk device provided in the computer 81 as an internal or external accessory device, a floppy disk, an MO (magneto-optical disk), a CD-ROM , A portable storage medium 83 such as a DVD-ROM, or a storage device 86 attached to the program server 85 which is a computer connected to the computer 81 via the network 84 can be used.
[0246]
【The invention's effect】
  As explained in detail above,In the present invention, the envelope of the input musical sound signal is analyzed to detect an attack interval and a decay interval, and a decay portion of the envelope is generated based on a preset decay rate value in the detected decay interval, and detected. In the attack period, the frequency characteristic of the filter is changed in response to a change in the attack part of the extracted envelope. In the decay period, the frequency of the filter is changed in response to a change in the decay part of the generated envelope. Change characteristicsTherefore, in addition to adding the same acoustic effect as the conventional sound effect device to the attack portion of the musical tone signal of the instrument sound, the decay portion is added to the instrument sound of the instrument whose attenuation characteristic varies depending on the pitch. The variation due to the difference in the pitch of the acoustic effect can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram showing a principle configuration of the present invention.
FIG. 2 is a diagram showing an internal configuration of an auto wah for carrying out the present invention.
FIG. 3 is a diagram illustrating a configuration of an envelope detection unit.
FIG. 4 is a diagram for explaining a method of dividing an envelope waveform.
FIG. 5 is a diagram illustrating a configuration of a pitch-voltage conversion unit.
FIG. 6 is a diagram illustrating a relationship between a picking direction and an output waveform of a pickup.
FIG. 7 is a diagram illustrating a detailed configuration of a peak hold unit.
FIG. 8 is a diagram for explaining control of a peak hold circuit by a CPU.
FIG. 9 is a view showing an outline of a front panel of an auto wah.
FIG. 10 is a diagram showing a list of operation control parameters of the apparatus set by a user.
FIG. 11 is a diagram for explaining FILTER parameters;
FIG. 12 is a diagram illustrating LFO parameters.
FIG. 13 is a diagram illustrating EG parameters.
FIG. 14 is a diagram for explaining a parameter Freq Scaling.
FIG. 15 is a flowchart showing processing contents of processing performed by a CPU by execution of an auto wah control program according to the present embodiment;
FIG. 16 is a flowchart showing processing contents of edit mode processing;
FIG. 17 is a flowchart showing the processing contents of parameter selection processing.
FIG. 18 is a flowchart showing the contents of parameter value change processing.
FIG. 19 is a flowchart showing the processing content of play mode processing;
FIG. 20 is a flowchart showing processing contents of input signal analysis processing;
FIG. 21 is a flowchart showing the processing content of input signal data acquisition processing;
FIG. 22 is a flowchart showing processing contents of envelope analysis processing;
FIG. 23 is a flowchart showing the processing content of analysis processing within an attack section.
FIG. 24 is a flowchart showing the contents of a decay interval analysis process.
FIG. 25 is a flowchart showing the processing content of pitch detection processing;
FIG. 26 is a flowchart showing the processing content of picking direction detection processing;
FIG. 27 is a flowchart showing the contents of a VCF control process.
FIG. 28 is a flowchart showing the contents of LFO processing.
FIG. 29 is a flowchart (part 1) showing processing contents of EG processing;
FIG. 30 is a flowchart (part 2) showing the processing contents of the EG processing;
FIG. 31 is a flowchart showing the contents of a pitch control process.
FIG. 32 is a flowchart showing processing contents of picking control processing;
FIG. 33 is a flowchart showing processing details of timer interrupt processing;
FIG. 34 is a diagram illustrating an example of a storage medium that stores a sound effect addition program.
[Explanation of symbols]
1 Sound effect device
2 filters
3a Decay characteristic control means
3b Pitch detection means
3c Plucking direction detection means
4 Frequency characteristic changing means

Claims (7)

楽音信号を通過させるフィルタの周波数特性を該楽音信号に応じて変化させることで音響的効果を得る音響効果装置において、
前記楽音信号のエンベロープを抽出するエンベロープ抽出手段と、
このエンベロープ抽出手段により抽出されたエンベロープを解析してアタック区間及びディケイ区間を検出するエンベロープ解析手段と、
このエンベロープ解析手段により検出されたディケイ区間内において、予め設定されたディケイレート値に基づいてエンベロープのディケイ部分を生成するディケイエンベロープ生成手段と、
前記エンベロープ解析手段により検出されたアタック区間においては、前記エンベロープ抽出手段にて抽出されたエンベロープのアタック部分の変化に応答して前記フィルタの周波数特性を変化させるとともに、前記検出されたディケイ区間においては、前記ディケイエンベロープ生成手段にて生成されたエンベロープのディケイ部分の変化に応答して前記フィルタの周波数特性を変化させる周波数特性変化手段と
を有することを特徴とする音響効果装置。
In an acoustic effect device that obtains an acoustic effect by changing the frequency characteristics of a filter that passes a musical sound signal according to the musical sound signal,
An envelope extracting means for extracting an envelope of the musical sound signal;
An envelope analyzing means for analyzing the envelope extracted by the envelope extracting means to detect an attack interval and a decay interval;
Decay envelope generation means for generating a decay portion of the envelope based on a preset decay rate value within the decay interval detected by the envelope analysis means;
In the attack interval detected by the envelope analysis means, the frequency characteristic of the filter is changed in response to a change in the attack portion of the envelope extracted by the envelope extraction means, and in the detected decay interval , Frequency characteristic changing means for changing the frequency characteristic of the filter in response to a change in the decay portion of the envelope generated by the decay envelope generating means ;
A sound effect device comprising:
前記音響効果装置はさらに、周期的な振動信号を生成するLFO手段を有し、
前記周波数特性変化手段は、前記検出されたディケイ区間において、このLFO手段にて生成された振動信号の変化に応答して前記フィルタの周波数特性を変化させることを特徴とする請求項1に記載の音響効果装置。
The acoustic effect device further includes LFO means for generating a periodic vibration signal,
The frequency characteristic changing means changes the frequency characteristic of the filter in response to a change in a vibration signal generated by the LFO means in the detected decay interval. Sound effect device.
前記音響効果装置はさらに、前記楽音信号のピッチを検出するピッチ検出手段を有し、
前記周波数特性変化手段は、前記検出されたディケイ区間において、このピッチ検出手段にて検出されたピッチの変化に応答して前記フィルタの周波数特性を変化させることを特徴とする請求項1に記載の音響効果装置。
The sound effect device further includes pitch detection means for detecting the pitch of the musical sound signal,
2. The frequency characteristic of the filter according to claim 1, wherein the frequency characteristic changing means changes the frequency characteristic of the filter in response to a change in pitch detected by the pitch detecting means in the detected decay interval. Sound effect device.
前記楽音信号は、弦楽器の撥弦操作により生成されるものであり、
前記音響効果装置はさらに、該弦楽器の撥弦の方向を検出する撥弦方向検出手段を有し、
前記周波数特性変化手段は、前記検出されたディケイ区間において、この撥弦方向検出手段にて検出された撥弦方向の変化に応じて予め設定されている前記フィルタの周波数特性を選択することにより、前記フィルタの周波数特性を変化させることを特徴とする請求項1に記載の音響効果装置。
The musical sound signal is generated by a plucking operation of a stringed instrument,
The acoustic effect device further includes a plucked direction detecting means for detecting a plucked direction of the stringed instrument,
The frequency characteristic changing means selects a frequency characteristic of the filter that is set in advance in accordance with the change in the plucking direction detected by the plucking direction detection means in the detected decay interval. The sound effect device according to claim 1, wherein a frequency characteristic of the filter is changed .
前記周波数特性変化手段は、前記撥弦の方向に応じて前記フィルタの通過域を示す周波数の値を増減させることを特徴とする請求項4に記載の音響効果装置。The sound effect device according to claim 4, wherein the frequency characteristic changing means increases or decreases a frequency value indicating a pass band of the filter according to a direction of the plucked string . 楽音信号を通過させるフィルタの周波数特性を該楽音信号に応じて変化させることで音響的効果を得る音響効果付加方法であって、An acoustic effect adding method for obtaining an acoustic effect by changing a frequency characteristic of a filter that passes a musical sound signal according to the musical sound signal,
前記楽音信号のエンベロープを抽出し、Extract the envelope of the musical signal,
この抽出されたエンベロープを解析してアタック区間及びディケイ区間を検出し、Analyzing the extracted envelope to detect attack and decay intervals,
この検出されたディケイ区間内において、予め設定されたディケイレート値に基づいてエンベロープのディケイ部分を生成し、Within this detected decay interval, a decay portion of the envelope is generated based on a preset decay rate value,
前記検出されたアタック区間においては、前記抽出されたエンベロープのアタック部分の変化に応答して前記フィルタの周波数特性を変化させるとともに、 前記検出されたディケイ区間においては、前記生成されたエンベロープのディケイ部分の変化に応答して前記フィルタの周波数特性を変化させる、In the detected attack period, the frequency characteristic of the filter is changed in response to a change in the attack part of the extracted envelope, and in the detected decay period, the decay part of the generated envelope is changed. Changing the frequency characteristics of the filter in response to changes in
ことを特徴とする音響効果付加方法。An acoustic effect adding method characterized by the above.
楽音信号を通過させるフィルタの周波数特性を該楽音信号に応じて変化させることで音響的効果を得る音響効果装置に適用されるコンピュータに、To a computer applied to an acoustic effect device that obtains an acoustic effect by changing the frequency characteristic of a filter that passes a musical sound signal according to the musical sound signal,
前記楽音信号のエンベロープを抽出するエンベロープ抽出手段により抽出されたエンベロープを解析してアタック区間及びディケイ区間を検出するエンベロープ解析ステップと、An envelope analyzing step of analyzing an envelope extracted by an envelope extracting means for extracting an envelope of the musical sound signal to detect an attack interval and a decay interval;
この検出されたディケイ区間内において、予め設定されたディケイレート値に基づいてエンベロープのディケイ部分を生成するステップと、Generating a decay portion of the envelope based on a preset decay rate value within the detected decay interval;
前記検出されたアタック区間においては、前記エンベロープ抽出手段にて抽出されたエンベロープのアタック部分の変化に応答して前記フィルタの周波数特性を変化させるとともに、前記検出されたディケイ区間においては、前記生成されたエンベロープのディケイ部分の変化に応答して前記フィルタの周波数特性を変化させるステップと、In the detected attack period, the frequency characteristic of the filter is changed in response to a change in the attack part of the envelope extracted by the envelope extracting means, and the generated frequency is generated in the detected decay period. Changing the frequency characteristics of the filter in response to a change in the decay portion of the envelope;
を実行させる音響効果処理のプログラム。Sound effect processing program that executes
JP08268299A 1999-03-26 1999-03-26 Sound effect device, sound effect adding method, and storage medium storing sound effect adding program Expired - Fee Related JP4066554B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08268299A JP4066554B2 (en) 1999-03-26 1999-03-26 Sound effect device, sound effect adding method, and storage medium storing sound effect adding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08268299A JP4066554B2 (en) 1999-03-26 1999-03-26 Sound effect device, sound effect adding method, and storage medium storing sound effect adding program

Publications (2)

Publication Number Publication Date
JP2000276155A JP2000276155A (en) 2000-10-06
JP4066554B2 true JP4066554B2 (en) 2008-03-26

Family

ID=13781206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08268299A Expired - Fee Related JP4066554B2 (en) 1999-03-26 1999-03-26 Sound effect device, sound effect adding method, and storage medium storing sound effect adding program

Country Status (1)

Country Link
JP (1) JP4066554B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8045731B2 (en) 2005-06-06 2011-10-25 Yamaha Corporation Sound quality adjustment device
JP6950470B2 (en) * 2017-11-07 2021-10-13 ヤマハ株式会社 Acoustic device and acoustic control program

Also Published As

Publication number Publication date
JP2000276155A (en) 2000-10-06

Similar Documents

Publication Publication Date Title
JP3598613B2 (en) Music parameter control device
JP7160068B2 (en) Electronic musical instrument, method of sounding electronic musical instrument, and program
JP4066554B2 (en) Sound effect device, sound effect adding method, and storage medium storing sound effect adding program
JP3430267B2 (en) Electronic musical instrument
JPH06186972A (en) Musical sound processor
EP3757984A1 (en) Electronic musical instrument, method and program
JP2969138B2 (en) Pitch detection device
KR100365989B1 (en) Virtual Sound Responsive Landscape System And Visual Display Method In That System
JP7285175B2 (en) Musical tone processing device and musical tone processing method
JP2761897B2 (en) Automatic rhythm playing device
JP3307162B2 (en) Music control device
JP2009031457A (en) Musical sound generator and musical sound generation processing program
JP4040193B2 (en) Electronic musical instruments
JP3669065B2 (en) Electronic musical instrument control parameter changing device
JP2010175739A (en) Electronic metronome and program
JP3279122B2 (en) Tempo control device
JP2770676B2 (en) Electronic musical instrument
JP6387621B2 (en) Electronic string instrument string position detection device, string position detection method and program
JP4073597B2 (en) Electronic percussion instrument
JPH06118946A (en) Electronic percussion instrument
JP2000020060A (en) Electronic musical instrument
JP3042183B2 (en) Electronic musical instrument
JP4595851B2 (en) Performance data editing apparatus and program
JP3785526B2 (en) Electronic musical instruments
JP2000305571A (en) Musical sound signal level control device, its method, and memory medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071231

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

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120118

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees