JP2661065B2 - Sound control device - Google Patents

Sound control device

Info

Publication number
JP2661065B2
JP2661065B2 JP62258668A JP25866887A JP2661065B2 JP 2661065 B2 JP2661065 B2 JP 2661065B2 JP 62258668 A JP62258668 A JP 62258668A JP 25866887 A JP25866887 A JP 25866887A JP 2661065 B2 JP2661065 B2 JP 2661065B2
Authority
JP
Japan
Prior art keywords
pitch
peak value
time
value
previous
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
JP62258668A
Other languages
Japanese (ja)
Other versions
JPH01100595A (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.)
KASHIO KEISANKI KK
Original Assignee
KASHIO KEISANKI KK
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 KASHIO KEISANKI KK filed Critical KASHIO KEISANKI KK
Priority to JP62258668A priority Critical patent/JP2661065B2/en
Publication of JPH01100595A publication Critical patent/JPH01100595A/en
Application granted granted Critical
Publication of JP2661065B2 publication Critical patent/JP2661065B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、電子ギターなどの電子弦楽器を含む各種
電子楽器の発音制御装置に係り、特にその入力波形信号
から誤りなくピッチ抽出を行なって、ミストラッキング
を減らすことができる電子楽器の入力制御装置に関す
る。 [従来の技術] 従来より、自然楽器の演奏操作によって発生する波形
信号からピッチ(基本周波数)を抽出し、電子回路で構
成された音源装置を制御して、人工的に楽音等の音響を
得るようにした電子楽器が種々開発されている。 この種の電子楽器の一例として、トレモロアーム付の
電子ギターがあり、これは発音中の弦の音高を極端に変
化させることが可能である。 [発明が解決しょうとする問題点] ところが、前記電子ギターは、必要とする音域が広い
ために、ピッチの許容範囲を、各フレットで指定される
音高の上限、下限の範囲を越えて広げねばならない。し
かるに、このようなピッチ抽出音域制限範囲を広くすれ
ばするほど、誤って抽出した周期で、楽音を発生してし
まうという可能性が高くなる。 ところで、このようなトレモロアーム付の電子ギター
などでも、ピッキング操作のときは、本来のフレットに
対応する音高で発音を開始し、しかる後、トレモロアー
ムを操作することがほとんどである。これは、演奏上、
トレモロアームの操作をしながら弦のピッキングをする
ことは困難であるからであり、そのためいきなり発音可
能な範囲の極限で、発音開始が指示されることはあり得
ないと考えられる。 [発明の目的] この発明は、上述の理由によって発音開始時と、それ
以降のピッチ抽出の制限範囲を変更し得ることに着目し
てなされたもので、ピッキング時におけるミストラッキ
ングを減らすことができる発音制御装置を提供すること
を目的とする。 [発明の要点] この発明は、前記目的を達成するため、入力波形信号
のピッチを抽出するピッチ抽出手段と、前記ピッチ抽出
手段の抽出するピッチに対応する音高の楽音を発生指示
する指示手段と、前記ピッチ抽出手段に対して、前記指
示手段が楽音の発生を指示していない時は第1の所定周
波数範囲内に入るピッチを抽出するよう指示し、前記指
示手段が楽音の発生を指示している時は、前記第1の所
定周波数範囲より広い第2の所定周波数範囲内に入るピ
ッチを抽出するよう指示し、当該指示に基づいて抽出し
たピッチを前記指示手段に供給するよう制御する制御手
段とを具備していることを特徴とするものである。 具体的には、後述する実施例の如く、発音開始時のピ
ッチ抽出音域制限範囲(第1の所定周波数範囲)を、上
限THLIM、下限TTLIMとし、発音開始後のピッチ抽出音域
制限範囲(第2の所定周波数範囲で第1の所定周波数範
囲より広い範囲)を上限THLIM(発音開始時の上限と同
一)、下限TLLIMとしており、前記TTLIMとTLLIMとで指
定される周波数が異なるようになっている。つまり、発
音開始後の下限TLLIMが、発音開始時の下限(トリガー
時の周波数下限)TTLIMに比べて低い周波数を指定す
る。このようにして、許容範囲を周波数の下限のみにつ
いては、チョーキング操作をしている状態で、ピッキン
グすることが可能性として存在するという理由により、
発音開始時と発音開始後とで同一している。なお、発音
開始時にはトレモロアームの操作以外で周波数が下がる
ことはあり得ない。 勿論、そのようなチョーキング操作を発音開始時に行
なわないと考えれば、周波数の上限についても、発音開
始時については制限を厳しくしてもよい。 [実施例] 以下、この発明の実施例について図面を参照して説明
するが、ここではこの発明を電子ギターに適用した場合
を例にあげて説明するが、これに限らず他のタイプの電
子楽器であっても同様に適用できる。 第1図は、全体の回路を示すブロック図であり、ピッ
チ抽出アナログ回路PAは、図示しない例えば電子ギター
ボディ上に張設された6つの弦に夫々設けられ、弦の振
動を電気信号に変換するヘキサピックアップと、このピ
ックアップからの出力からゼロクロス信号Zi(i=1〜
6)と波形信号Wi(i=1〜6)とを得るとともに、こ
れらの信号を時分割のシリアルゼロクロス信号ZCRおよ
びデジタル出力(時分割波形信号)D1とに変換する変換
手段例えば後述するアナログ−デジタル変換器A/Dとを
備えている。 ピッチ抽出デジタル回路PDは、第2図のようにピーク
検出回路PEDT、時定数変換制御回路TCC、波高値取込み
回路PVS、ゼロクロス時刻取込回路ZTSからなり、前記ピ
ッチ抽出アナログ回路PAからのシリアルゼロクロス信号
ZCRとデジタル出力D1とに基づき最大ピーク点または最
小ピーク点を検出し、MAXI,MINI(I=1〜6)を発生
するとともに、ゼロクロス点通過、厳密には最大ピーク
点、最小ピーク点直後のゼロクロス点通過でインターラ
プト(割込み)信号INTをマイコンMCPに出力し、またゼ
ロクロス点の時刻情報とピーク値情報例えばMAX,MIN及
び入力波形信号の瞬時値をそれぞれマイコンMCPに出力
するものである。なお、ピーク検出回路PEDTの内部に
は、過去のピーク値を減算しながらホールドする回路を
備えている。 そして、このピーク検出回路PEDTのピークホールド回
路の減衰率を変更するのが、時定数変換制御回路TCCで
あり、波形の例えば1周期の時間経過してもピークが検
出できないときは、急速に減衰するようにする。具体的
には、初期状態では速やかに波形の振動を検知すべく最
高音周期時間経過にて、急速減衰し、弦振動が検知され
ると倍音を拾わないために、当該弦の開放弦周期時間経
過にて同様に急速減衰するようにし、そして弦の振動周
期が抽出された後は、その周期にて急速減衰を行なうよ
うになる。 この時定数変換制御回路TCCに対するかかる周期情報
の設定は、マイコンMCPが行なう。そして、この時定数
変換制御回路TCC内部の各弦独立のカウンタと、この設
定された周期情報との一致比較を行ない、周期時間経過
で時定数チェンジ信号をピーク検出回路PEDTへ送出す
る。 また、第2図における波高値取込み回路PVSは、上述
のとおり時分割的に送出されてくる波形信号(デジタル
出力)D1を、各弦毎の波高値にデマルチプレクス処理
し、ピーク検出回路PEDTからのピーク信号MAX,MINに従
って、ピーク値をホールドする。そして、マイコンMCP
がアドレスデコーダDCDを介してアクセスしいきた弦に
ついての最大ピーク値もしくは最小ピーク値をマイコン
バスへ出力する。また、この波高値取込み回路PVSから
は、各弦毎の振動の瞬時値も出力可能になっている。 ゼロクロス時刻取込回路ZTSは、各弦共通のタイムベ
ースカウンタ出力を、各弦のゼロクロス時点(厳密には
最大ピーク点及び最小ピーク点通過直後のゼロクロス時
点)でラッチするようになる。そして、マイコンMCPか
らの要求により、そのラッチした時刻情報をマイコンバ
スへ送出する。 また、図のタイミングジェネレータTGからは、第1図
及び第2図に示す各回路の処理動作のためのタイミング
信号を出力する。 マイコンMCPには、メモリ例えばROMおよびRAMを有す
るとともに、タイマーTを有し、楽音発生装置SOBに与
える為の信号を制御するものである。楽音発生装置SOB
は音源SSとデジタル−アナログ変換器D/Aと、アンプAMP
と、スピーカSPとからなり、マイコンMCPからのノート
オン(発音)、ノートオフ(消音)、周波数を変える音
高指示信号に応じた音高の楽音を放音するものである。
なお、音源SSの入力側とマイコンMCPのデータバスBUSと
の間に、インターフェース(usical nstrument i
gital nterface)MIDIが設けられている。勿論、ギタ
ー本体に音源SSを設けるときは、別のインターフェース
を介してもよい。アドレスデコーダーDCDは、マイコンM
CPからのアドレス読み出し信号ARが入力されたとき、弦
番号の読込み信号RDI、時刻読込み信号RDj(j=1〜
6)とMAX,MINのピーク値及びその時点その時点の瞬時
値読込み信号RDAI(I=1〜18)をピッチ抽出デジタル
回路PDに出力する。 以下、マイコンMCPの動作についてフローチャートや
波形を示す図面を参照して説明するが、はじめに図面の
符号について説明する。 AD…第1図の瞬時値読込み信号RDA13〜18によりピッチ
抽出デジタル回路PDの入力波形を直接読んだ入力波高値
(瞬時値) AMP(0,1)…正又は負の前回(old)の波高値 AMRL1…振幅レジスタで記憶されているリラティブ(rel
ative)オフ(off)のチェックのための前回の振幅値で
ある。ここで、前記リラティブオフとは波高値が急激に
減衰してきたことに基づき消音することで、フレット操
作をやめて開放弦へ移ったときの消音処理に相当する。 AMRL2…振幅レジスタで記憶されている前記リラティブ
オフのための前々回の振幅値で、これにはAMRL1の値が
入力される。 CHTIM…最高音フレット(22フレット)に対応する周期 CHTIO…開放弦フレットに対応する周期 CHTRR…時定数変換レジスタで、上述の時定数変換制御
回路TCC(第2図)の内部に設けられている。 DUB…波形が続けて同一方向に来たことを示すフラグ FOFR…リラティブオフカウンタ HNC…波形ナンバーカウンタ MT…これからピッチ抽出を行なう側のフラグ(正=1,負
=0) NCHLV…ノーチェンジレベル(定数) OFTIM…オフタイム(例えば当該弦の開放弦周期に相
当) OFPT…通常オフチェック開始フラグ ONF…ノートオンフラグ RIV…後述のステップ(STEP)4での処理ルートの切替
を行なうためのフラグ ROFCT…リラティブオフのチェック回数を定める定数 STEP…マイコンMCPのフロー動作を指定するレジスタ
(1〜5) TF…有効となった前回のゼロクロス時刻データ TFN(0,1)…正または負のピーク値直後の前回のゼロク
ロス時刻データ TFR…時刻記憶レジスタ THLIM…周波数上限(定数) TLLIM…周波数下限(定数) TP(0,1)…正または負の前回の周期データ TRLAB(0,1)…正または負の絶対トリガーレベル(ノー
トオンしきい値) TRLRL…リラティブオン(再発音開始)のしきい値 TRLRS…共振除去しきい値 TTLIM…トリガー時の周波数下限 TTP…前回抽出された周期データ TTR…周期レジスタ TTU…定数(17/32と今回の周期情報ttの積) TTW…定数(31/16と今回の周期情報ttの積) VEL…速度(ベロシテイー)を定める情報で、発音開始
時の波形の最大ピーク値にて定まる。 X…異常または正常状態を示すフラグ b…ワーキングレジスタBに記憶されている今回正負グ
ラフ(正ピークの次のゼロ点のとき1、負ピークの次の
ゼロ点のときo) c…ワーキングレジスタレジスタCに記憶されている今
回波高値(ピーク値) e…ワーキングレジスタEに記憶されている前々回波高
値(ピーク値) h…ワーキングレジスタHに記憶されている前々回抽出
された周期データ t…ワーキングレジスタT0に記憶されている今回のゼロ
クロス時刻 tt…ワーキングレジスタTOTOに記憶されている今回の周
期情報 第3図は、マイコンMCPへインタラプトがかけられた
ときの処理を示すインタラプトルーチンであり、I1にお
いて、マイコンMCPはアドレスデコーダDCDを介し、ゼロ
クロス時刻取込回路ZTSに対し、弦番号読み込み信号RDI
を与えたインタラプトを与えた弦を指定する弦番号読み
込む。そして、その弦番号に対応する時刻情報つまりゼ
ロクロス時刻情報をゼロクロス時刻取込回路ZTSへ時刻
読込み信号RD1〜RD6のいずれか対応するものを与えて読
込む。これをtとする。しかる後、I2において、同様に
波高値取込み回路PVSへピーク値読込む信号RDAI(I=
1〜12のうちのいずれか)を与えて、ピーク値を読取
る。これをcとする。 続くI3において、当該ピーク値は正、負のいずれかの
ピークであるのかを示す情報bを、ゼロクロス時刻取込
回路ZTSより得る。そして、I4にて、このようにして得
たt,c,bの値をマイコンMCP内のバッファのレジスタT0、
C、Bにセットする。このバッファには、割込み処理が
なされる都度、このような時刻情報、ピーク値情報、ピ
ークの種類を示す情報がワンセットとして書込まれてい
き、メインルーチンで、各弦毎にかかる情報に対する処
理がなされる。 第4図は、メインルーチンを示すフローチャートであ
る。パワーオンすることによりM1において、各種レジス
タやフラグがイニシャライズされ、レジスタSTEPが0と
される。M2で上述したバッファが空かどうかが判断さ
れ、ノー(以下、Nと称す)の場合にはM3に進み、バッ
ファよりレジスタB、C,TOの内容が読まれる。これによ
り、M4において、レジスタSTEPはいくつか判断され、M5
ではSTEP0,M6ではSTEP1,M7ではSTEP2,M8ではSTEP3,M9で
はSTEP4の処理が順次おこなわれる。 M2でバッファが空の場合すなわちイエス(以下、Yと
称する)の場合、M10〜M16へと順次に進み、ここで通常
のノートオフのアルゴリズムの処理が行なわれる。この
ノートオフのアルゴリズムは、オフ(OFF)レベル以下
の状態が所定のオフタイム時間続いたら、ノートオフす
るアルゴリズムである。M10でSTEP=0どうかが判断さ
れ、ノー(以下、Nと称する)の場合には、M11に進
む。M11では、その時点の入力波高値ADが直接読まれ
る。これは、波高値取込み回路PVSヘピーク値読込み信
号RDA13〜RDA18のいずれかを与えることで達成できる。
そして、この値ADが、入力波高値ADオフレベルかどう
かが判断され、Yの場合にはM12に進む。M12では前回の
入力波高値ADオフレベルかどうかが判断され、Yの場
合にはM13に進み、ここでタイマーTの値オフタイムO
FTIM(例えば当該弦の開放弦周期の定数)かどうかが判
断される。Yの場合には、M14に進み、レジスタSTEPに
0が書きこまれ、M15ではノートオンかどうかが版断さ
れ、Yの場合には、M16でノートオフ処理され、M2の入
側のMに戻る。M12でNの場合にはM17に進み、マイコン
MCP内部タイマーTをスタートし、M2の入側Mに戻る。M
10でその場合、及びM11、M13、M15はNの場合には、い
ずれもM12の入側のMに戻る。 このような、波形入力のレベルが減衰してきた場合、
オフレベル以下の入力波高値ADがオフタイムOFTIMに相
当する時間続くと、ノートオフの指示を音源SSに対しマ
イコンMCPは送出する。なお、ステップM15において、通
常の状態ではYの判断がなされるが、後述するような処
理によって、楽音の発声を指示していない場合でもレジ
スタSTEPは0以外の値をとっていることがあり、(例え
ばノイズの入力による。)そのようなときは、M14、M15
の処理後M2へ戻ることで、初期設定がなされることにな
る。 なお、第4図では、一つの弦についての処理しか示し
ていないが、この図に示した如く処理を弦の数に相当す
る6回分、多重化してマイコンMCPは実行することにな
る。勿論、プロセッサを複数個設けて、別個独立して同
等の処理を実行してもよい。 次に、M4にて分岐して対応する処理を行なう各ルーチ
ンの詳細について説明する。 第5図は、第4図のM5として示すステップ0(STEP
0)のときのフローチャートであり、S01で税体トリガレ
ベル(ノートオンしきい値)TRLAB(b)<今回波高値
cかどうかが判断され、Yの場合にはS02に進み共振除
去がチェックされる。なお、このトリガーレベルは、正
と負との極性のピーク夫々についてのチェックを行なう
ようになっている。このTRLAB(0)とTRLAB(1)と
は、実験などによって適切な値とすることになる。理想
的なシステムではTRLAB(0)とTRLAB(1)とは同じで
よい。S02では、共振除去しきい値TRLRS<[今回波高値
c−前回波高値AMP(b)]かどうか、すなわち今回波
高値と前回波高値の下が所定値以上か否かが判断され
る。 一つの弦をピッキングすることによって他の弦が共振
を起こす場合、当該他の弦については、振動のレベルが
徐々に大きくなり、その結果前回と今回とのピーク値の
変化は微小なものとなって、その差は共振除去しきい値
TRLRSを越えることはない。ところが、通常のピッキン
グでは、波形が急激に立上る(あるいは立ち下がる)こ
とになり、前記ピークの差は共振除去しきい値TRLRSを
越える。 いま、このS02で、Yの場合つまり共振の場合でない
とみなした場合には、S03において次の処理が行なわれ
る。すなわち、今回正負フラグbがフラグMTに書込ま
れ、レジスタSTEPに1が書込まれ、さらに今回のゼロク
ロス時刻tが前回のゼロクロス時刻データTFN(b)と
して設定される。そして、S04では、その他フラグ類が
イニシャライズされ、S05に進む。S05では、今回波高値
cが前回の波高値AMP(b)としてセットされ、しかる
後第4図のメインフローヘリターンする。 第5図において、Aはリラティブオン(再発音開始)
のエントリであり、後述するSTEP4のフローからこのS06
へジャンプしてくる。そして、S06では今まで出力して
いる楽音を一度消去し、再発音開始のためにS03へ進行
する。この再発音開始のための処理は、通常の発音開始
のときと同様であり、以下に詳述するとおりとなる。 そして、またS01でNの場合と、S02でNの場合(今回
波高値c−前回波高値AMP(b)が所定値以上ない場
合)には、S05に進む。従って、発音開始のための処理
は進まないとことになる。 以上述べたSTEP0(第11図のSTEP0→1の間)では、フ
ラグMTにBレジスタの内容(b=1)が書込まれ、レジ
スタTOの内容(t)が前回ゼロクロス時刻データTFN
(1)に書込まれ、レジスタCの波高値(c)が前回の
波高値AMP(1)に書込まれる。 第6図は第4図にM6として示すSTEP1のフローチャー
トの詳細を示すものであり、S11では、レジスタBの内
容(b)と、フラグMTが不一致かどうかが判断され、Y
の場合にはS12に進む。S12では、絶対トリガレベル(ノ
ートオンしきい値)TRLAB(b)<今回波高値cかどう
かが判断され、Yの場合にはS13に進む。S12でYの場合
にはレジスタSTEPに2がセットされ、S14でレジスタTO
の内容(t)を前回のゼロクロス時刻データTFN(b)
としてセットし、さらにS15で今回波高値cを、前回の
波高値AMP(b)へセットする。S11において、Nの場合
すなわち入力波形信号が同一方向にきた場合S16に進
み、今回波高値c>前回波高値AMP(b)かどうかが判
断され、Yの場合すなわち今回の波高値cが前回の波高
値AMP(b)より大の場合には、S14に進む。一方、S12
においてNの場合には、S15に進み、これにより波高値
のみが更新される。また、S16において、Nの場合及
び、Z15の処理の終了時にはメインフロー(第4図)へ
リターンする。 以上述べたSTEP1(第11図のSTEP1→2の間)では、今
回正負フラグb(=0)とフラグMT=1が不一致という
ことで、今回のゼロクロス時刻tを前回のゼロクロス時
刻データTFN(0)としてセットし、さらに今回波高値
cを前回の波高値AMP(0)として書込む。 第7図は、第4図にM7として示すSTEP2のフローチャ
ートの詳細を示すもので、S20において、今回正負フラ
グb=フラグMTかどうかすなわちSTEP0の方向と同一の
ゼロクロス点の到来かどうかを判断し、Yの場合にはS2
1に進む。S21では、第2図の時定数変換制御回路TCC内
のレジスタCHTRRへ開放弦周期CHTIOをセットし、S22に
進む。S22では、今回波高値c>(7/8)×前回の波高値
AMP(b)かどうか、つまり波高値が前回と今回とで略
同一かどうかをチエックし、Yの場合つまり美しい自然
減衰の場合には、S23に進み、フラグDUBを0にセット
し、S24に進む。S24では、周期計算を行ない、今回のゼ
ロクロス時刻t−前回のゼロクロス時刻データTFN
(b)を前回周期データTP(b)に入力し、今回のゼロ
クロス時刻tを前回ゼロクロス時刻データTFN(b)と
して入力する。S24におけるTP(b)は、STEP3でノート
オン(1.5波)の条件として使用される。また、S24で
は、レジスタSTEPが3とセットされる。更に、今回波高
値cと、負の波高値AMP(0)と、正の波高値AMP(1)
の内、最も大きい値をベロシティVELとして登録する。
また、今回波高値cを前回の波高値AMP(b)へ書込
む。 S20でNの場合には、S25に進み、フラグDUBすなわち
同一方向の入力波形がきたということを意味するフラグ
を1にし、S26に進む。S26では、今回波高値c>前回の
波高値AMP(b)かどうかが判断され、Yの場合にはS29
に進む。S29では今回波高値cに前回の波高値AMP(b)
を書替え、レジスタTの内容tに前回のゼロクロス時刻
データTFN(b)が書替えられる。また、S22において、
Nの場合には、S27に進み、フラグDUB=1かどうか、つ
まり前回STEP2を実行したとき、ダブッたか否かのチェ
ックを行ない、Yの場合つまりダブッていればS28に進
む。S28では、フラグDUBを0にする。この場合にはS29
に進みメインルーチンにリターンする。S24の処理の
後、またS26のNのときも、同様にメインルーチンへリ
ターン(RET)する。 以上述べたSTEP2(第11図のSTEP2→3の間)では、今
回正負フラグbとフラグMT=1が同じであれば、レジス
タCHTRRに0フレット周期すなわち開放弦周期CHTIOが書
替えられ、またフラグDUBが0にセットされ、さらにt
−TFN(1)→TP(1)なる周期計算が行なわれ、また
今回ゼロクロス時刻tに前回のゼロクロス時刻データTF
N(1)が書き替えられ、今回波高値c、前回波高値AMP
(0)、前回波高値AMP(1)の内最も大きい値がベロ
シティVELとしてセットされ、更に今回波高値cとして
前回波高値AMP(1)がセットされる。 第11図は、理想的な波形入力があった場合の例である
が、DUB=1となる場合にについて次に説明する。第8
図は、そのような場合のSTEP2の動作を説明するための
図であり、(A)は一波をとばしてピーク検出した場合
であり、入力波形が実線のときは後述するSTEP3の処理
にてノートオンし、入力波形が点線の時はノートオンし
ない。これは、S26にてYとなるかNとなるかの違いか
らである。また、STEP2からなかなかSTEP3に移行しない
のは、S20でb=MTが成立しても、S22でc>(7/8)×A
MP(b)がNと判断され、これがYとならない間は、ST
EP2は繰返し実行されるからである。また、(B)は、
オクターブ下の倍音を検知した場合であり、この場合に
は、C>(7/8)×AMP(b)のチェック時、YとなりS2
3を経てS24に進み、STEP3に移る。 第9図は、第4図にM8として示すSTEP3のフローチャ
ートであり、S30でフラグMT≠今回正負フラグbかどう
かが判断され、正常の場合すなわちYのときは、S31に
進む。S31では、(1/8)c<AMP(b)ならXが0、ま
た逆の場合にはX=1にセットされ、S32に進む。S32で
は、今回波高値cとして前回の波高値AMP(b)が書替
えられる。 そしてS33において、STEP2で得られたVELより今回波
高値cが大であれば、ベロシティVELは今回波高値cが
入力される。もし逆ならば、このベロシティVELは変化
しない。次に今回正負フラグbにフラグMTが書替えら
れ、これによりピッチ抽出側が逆にされる。これは、後
述するSTEP4からフラグMTの意味が変り、ピッチ変更側
を意味している。そして、S34で[t−TFN(b)→TP
(b)]なる周期計算が行なわれる。また、今回のセロ
クロス時刻tとして前回のゼロクロス時刻データTFN
(b)が書替えられる。 次に、S35において、X=Oかどうかを判断し、Yの
場合にはS36に進み、周波数上限THLIM<前回の周期デー
タTP(b)かどうか、つまりピッチ抽出上限チェックを
行ない、その結果、最高音の周期より大きな周期をもて
ば、許容範囲にあるということでYとなり、S37に進
む。S37では、トリガー時の周波数下限TTLIM>前回の周
期データTP(b)かどうか、つまりピッチ抽出下限チェ
ックを行ない、最低音の周期より小の周期をもてば許容
範囲にあり、Yの判断をしてS38に進む。S37のピッチ抽
出下限は、後述するSTEP4のピッチ抽出下限とは定数が
異なる。 具体的には、周波数上限THLIMは、最高音フレットの
2〜3半音上の音高周期に相当し、トリガー時の周波数
下限TTLIMは、開放弦の開放弦フレットの5半音下の音
高周期に相当するものとする。 S38では、今回の周期データTP(b)を前回抽出され
た周期データTTPとしてセットすなわち、ピッチ抽出側
で抽出されたピッチをセーブ(これは後述するSTEP4で
使用される)し、S39に進む。S39では、周期データTP
(b)≒TP()かどうか、すなわち極性の違うゼロク
ロス点間の周期の略一致のチェックである1.5波ピッチ
抽出チェックを行ない、Yの場合にはS301で次のような
処理が行なわれる。すなわち、前回のゼロクロス時刻デ
ータTFN()として時刻記憶レジスタTFRが書替えら
れ、また今回のゼロクロス時刻tが前回のゼロクロス時
刻データTFとしてセットされ、波形ナンバーカウンター
HNCをクリアする。このカウンターHNCは後述するSTEP4
にて使用される。レジスタSTEPは4にセットされ、ノー
トオンフラグONFは2(発音状態)にセットされ、定数T
TUは0すなわち(MIN)にセットされ、定数TTWは最高MA
Xにセットされる。これらはいずれも後述するSTEP4にて
使用するものである。また、リラティブオフの為の前回
波高値レジスタAMRL1がクリアされる。そして、最後のS
302で前回周期データTP(b)に対応した音高とベロシ
ティVELに対応した音量でノートオン処理が行なわれ
る。即ち、マイコンMCPは音源SSに対し発音開始の指示
をする。 S30において、Nの場合(同一方向のゼロクロス点検
出の場合)は、S303に進み、前回の波高値AMP(b)<
今回波高値cかどうかが判断され、Yの場合はS304に進
む。S304では、今回波高値cが前回の波高値AMP(b)
としてセットされ、ベロシティVELまたはレジスタCの
値cの内のいずれか大きい値がベロシティVELにセット
される。S303、S35、S36、S37、S39のいずれの場合もN
の場合には、メインルーチンへリターン(RET.)する。 第17図はS31において、X=1すなわち異常となる場
合の具体例を示す図であり、1/8b1<b0のときと、1/8a2
>a1のときのジャッジではいずれもその条件を満足せ
ず、X=1となる。 すなわち、第17図の最初の3つの波形のピーク(a0,b
0,a1)は、ノイズによるもので、これらのノイズの周期
を検出して発音開始を指示すると、全くおかしな音が発
生してしまう。そこで、S31では、波高値が大きく変わ
ったことを検知して、X=1とし、S35でNの判断をす
るようにする。そして、S31にて波形が正常な変化をす
ることが検知されてから、発音開始を指示するようにす
る。 第17図の場合TP≒()の検出がなされたときにノー
トオンとなる。 以上述べたSTEP3(第11図のSTEP3→4の間)では、MT
=1≠b、AMP(0)←c、max[VEL、c(のいずれか
の大きい方)]→VEL、MT←b=0、TP(0)←[t−T
FN(0)]、TFN(0)←t、TTP←TP(0)、TFR←TFN
(1)、TF←t、HNC←0、ONF←2、TTU←0(MIN)、
TTW←MAX、AMRL1←0、ノートオン条件TP(o)≒TP
(1)についての処理がなされる。そして、適切な波形
入力に応答してこのSTEP3において、抽出されたピッチ
に従った音高の楽音が発生開始されることになる。第11
図から判明するように、周期検出を開始してから、1.5
周期程度の時間経過で発音指示が音源SSに対しなされる
ことになる。勿論、諸条件を満足しなければ、更におく
れることは上述したとおりである。 第10図は、第4図のM9として示すSTEP4のフローチャ
ートであり、この場合ピッチ抽出のみを行なうルート
、実際にピッチ変更を行なうルートがある。先ず、
S40,S41,S42,S63〜S68に示すルートについて説明す
る。S40において、波形ナンバーカウンタHNC>3が判断
され、Yの場合にはS41に進む。S41では、リラティブオ
ンしきい値TRLRL<[今回波高値c−前回の波高値AMP
(b)]かどうかが判断が行なわれ、Nの場合にはS42
に進む。S42では今回正負フラグb=グラフMTつまりピ
ッチ変更側かどうかが判断され、Yの場合にはS43に進
む。 ところで、初期状態では、前記波形ナンバーカウンタ
HNCは0である(第9図のS301参照)ので、S40ではNの
判断をしてS42へ進む。そして、例えば、第11図のよう
な波形入力の場合は、b=1でMT=0であるから、S42
からS63へ進む。 S63においては、同じ極性のピークが続けて入力され
てきているか(ダブリであるか)、否かチェックするた
めに、レジスタRIV=1かどうかが判断され、Yの場合
にはS68に進み、また、Nの場合(ダブリでない場合)
にはS64に進み、ここで以下の処理が行なわれる。すな
わち、S64では今回波高値cが前回の波高値AMP(b)に
入力され、リラティブオフ処理のために前回の振幅値AM
RL1が前々回の振幅AMRL2に入力される。なお、いまの場
合はAMRL1の内容は0である(STEP3のS30参照)。さら
にS64において、前回の波高値AMP()と今回波高値c
のうちいずれか大きい値が全か振幅値AMRL1に入力され
る。つまり、周期の中で2つある正,負のピーク値につ
いて大きい値のピーク値が振幅値AMRL1にセットされ
る。そして、S65で波形ナンバーカウンタHNC>8かどう
かが判断され、ここで波形ナンバーカウンタ(ピッチ変
更側でないゼロクロスカウンター)HNCが+1され、カ
ウントアップされる。 従って、波形ナンバーカウンタHNCは、上限が9とな
る。そして3S65もしくはS66の処理の後S67へ進行する。
S67では、レジスタRIVを1とし、今回のゼロクロス時刻
から時刻記憶レジスタTFRの内容を引算して、周期レジ
スタTTRへ入力する。この周期レジスタTTRは、第11図に
示すような周期情報を示すようになる。そして、今回の
ゼロクロス時刻tは、時刻記憶レジスタTFRへセーブさ
れ、この後、メインルーチンにリターン(RET)する。 S63でYの場合は、S68に進み今回波高値c>前回の波
高値AMP(b)かどうかが判断され、Yの場合はS69に進
む。S69では、今回波高値cに前回の波高値APM(b)が
書替えられ、S70に進む。S70では今回波高値c>前回の
振幅値AMPL1かどうかが判断され、Yの場合にはS71に進
み、ここで今回波高値cが前回の振幅値AMRL1に入力さ
れる。 もし、S68でNの判断がなされるとすぐにメインルー
チンへリターンする。従って、新しい入力波形のピーク
が大である場合についてのみ、新しい波形の振幅値が登
録される。(その場合は、倍音のピークをひろっていな
いと考えられるので。) また、S70でNのときと、S71の処理の終了のときに
は、同様にメインルーチンへリターンする。 以上述べたようにルートは、第11図の例によれば以
下のような処理がなされる、MT=0≠b、RIV=0、AMP
(1)←c、AMRL2←AMRL1、MRL1←max[AMP(0),c
(のいずれか大きい方)]、HNC←(HNC+1)=1,RI
V、TTR←(t−TFR)、TFR−tが処理される。従って、
周期レジスタTTRに前回の同極性のゼロクロス点(STEP2
→3のところ)から今回のゼロクロス点までの時刻情報
の差つまり、周期情報が求まったことになる。そして、
メインルーチンへ戻り、次のゼロクロスインターラプト
を待つ。 次に、S40〜S62に示すルートへ進んだ場合の説明を
行なう。いま、波形ナンバーカウンタHNC=1なので(S
66参照)、S40からS42へ進む。S42では、第11図のよう
な場合、MT=0、b=0なのでYとなり、S43へ進む。S
43では、レジスタRIV=1かどうかが判断される。既に
ルートにおいて、レジスタRIVは1とされている(S67
参照)ので、S43の判断はいまの場合Yとなり、S44へ進
む。 S44では、レジスタSTEP=4かどうかが判断され、Y
の場合にはS45に進む。S45では、今回波高値c<60H
(Hは16進法表現を示す)かどうかが判断され、波高値
cが小であればYとなり、S46に進む。S46では、前々回
の振幅値AMRL2−前回の振幅値AMRL1≦(1/32)×前々回
の振幅値AMRL2かどうかが判断され、Yの場合にはS47に
進み、リラティブオフカウンタFOFRが0にセットされ
る。このリラティブオフの処理については後述する。そ
して、S48では周期計算がおこなわれる。、具体的には
(今回のゼロクロス時刻t−前回のゼロクロス時刻デー
タTF)が今回の周期情報ttとしてレジスタTOTOにットさ
れる。そして、S49に進み、S49では、今回の周波数情報
tt>周波数上限THLIM(発音開始後の上限)かどうかが
判断され、Yの場合にはS50に進む。 S49の周波数上限THLIMは、STEP3のS36で使用したトリ
ガー時(発音開始時)周波数の許容範囲の上限(従って
周期として最小で、最高音フレットの2〜3半音上の音
高周期に相当する)と同一のものである。 次に、S50では次の処理が行なわれる。すなわち、レ
ジスタRIVを0にし、今回のゼロクロス時刻tが前回の
ゼロクロス時刻データTFとして入力され、また前回の波
高値AMP(b)が前々回波高値eに入力され、さらに前
回波高値cが前回の波高値AMP(b)に入力される。 そして、S50の処理の後S51に進み、S51では、周波数
下限TLLIM>今回の周期情報ttかどうかが判断され、Y
の場合すなわち今回の周期がノートオン中のピッチ抽出
音域下限以下になった場合にはS52に進む。 この場合、周波数下限TLLIMは、例えば、開放弦音階
の1オクターブ下にセットされる。つまり、STEP3の周
波数下限TTLIM(S37参照)に比較して、許容範囲を広く
している。このようにすることで、トレモロアームの操
作などによる周波数変更に対応し得るようになる。 従って、周波数の上限、下限について許容範囲に入る
場合についてのみS52まで進み、そうでない場合はS49、
S51よりメインルーチンへリターンする。 次に、S52では周期データTTPが前々回抽出された周期
データhに入力され、また、今回の周期情報ttが前回抽
出された周期データTTPに入力される。そして、S53で今
回波高値cがベロシティVELに書込まれ、S54に進む。S5
4では、ノーチェンジレベルNCHLV>(前々回波高値e−
今回波高値c)かどうかの判断が行なわれ、Yの場合に
はS55に進む。 すなわち、前回の同極性の波高値(e=AMP(b))
と今回の波高値cとが大きく変化している場合は、その
差がNCLVを越えることになり、そのようなときに、抽出
された周期情報に基づきピッチ変更を行なうと、不自然
な高音変化を呈することになる可能性が高い。そこで、
S54でNの判断されると、S55以降の処理をすることな
く、メインルーチンへリターンする。 次に、S54でYの場合、リラティブオフカウンタFOFR
=0か否かが判断されるる。後述するリラティブオフ処
理を行なっているときは、リラティブオフカウンタFOFR
は0でなくなっており、そのような場合もピッチ変更
(S61を参照)の処理を行なうことなく、S55でNの判断
をしてメインルーチンへリターンする。そして、S55に
て、Yの判断をしたときは、S56、S57へと順次進む。 ここで2波3値一致条件が判断される。S56では今回
の周期情報tt×2-7<|今回の周期情報tt−前々回周期
データh|が判断され、Yの場合にはS57に進み、またS57
では今回の周期情報tt×2-7<|今回の周期情報tt−周
期レジスタTTRの内容|が判断され、Yの場合にはS58に
進む。 すなわち、S56では、第11図の今回の周期情報tt(S43
参照)が、前回の周期データh(S52参照)の値と略一
致するか否かを判断し、S57では、今回の周期情報ttの
値が、それに重なる周期TTRとほぼ一致するか否かを判
断する。なお、その上限範囲は、2-7xttとして、周期情
報に依存してその値が変わるようになっている。勿論、
これは固定の値としてもよいが、本実施例採用技術の方
が良好な結果を得ることができる。 次のS58では、前回の周期情報tt>定数TTUかどうかが
判断され、YならばS59へ進み、ここで今回の周期情報t
t<定数TTWかどうかが判断され、YならばS60へ進む。
なお、S58,S59は急激なピッチ変更を認めないための判
断である。 つまり、S58の定数TTUは、STEP3のS301でいま0とさ
れ、定数TTWは同様にMAXの値とされており、はじめてこ
のフローを通るときは必ずS58、S59でYの判断がなされ
るが、その後は後述するS62において、定数TTUには、
(17/32)tt(略1オクターブの高音の周期情報)がセ
ットされ、定数TTWには同様にS62にて(31/16)tt(ほ
ぼ1オクターブ低音の周期情報)がセットされる。従っ
て、急激にオクターブアップする(これは、フレットを
離してミュート操作したときなどに生ずる)ことやオク
ターブダウンすること(これは波形のピークをとり逃し
たときなどに起る)があったときは、ピッチ変更をする
と、不自然となるので、ピッチ変更をしないようにブラ
ンチする。 もし、S58、S59でYの判断がなされたときは、次にS6
0へ進む。S60では、レジスタSTEP=4にされたかどうか
の判断が行なわれ、その場合にはS61に進む。S61では、
マイコンMCPから音源SSへピッチ変更(今回の周期情報t
tに基づく)が行なわれ、S62に進み、今回の周期情報tt
に対応して時定数チェンジをし、また定数TTUが(17/3
2)×今回の周期情報ttに書替えられ、さらに定数TTWが
(31/16)×今回の周期情報ttに書替えられる。 つまり、後述するように、リラティブオフの処理がな
されたときに限り、STEP=5となるが、そのときは、ピ
ッチ変更を行なうことなく時定数チェンジを行なう。こ
の時定数チェンジの処理とは、第2図の時定数変換制御
回路TCC内部のレジスタに今回の周期情報ttの値に基づ
くデータをマイコンMCPがセットすることをいう。これ
は、既に説明したとおりである。 そして、S62の処理の終了でメインルーチンへリター
ンする。従って、以上述べたようにルートは、第11図
に示す通り次の処理がなされる。すなわち、HNC=1、M
T=0=b、RIV=1、FOFR←0、tt←(t−TF)、RIV
←0、TF←t、e←AMP(0)、AMP(0)←c、h←TT
P、TTP←tt、VEL←cであり、さらに、 TTP≒TTR≒tt、 TTU<tt<TTW、 AMP(0)−c<NCHLV の3条件の満足で、ttに従ったピッチ変更を行なう。し
かる後、TTU←(17/32)×tt、TTW←(31/16)×ttがな
される。 従って、ルートにて、実際の音源SSに対するピッチ
変更が行なわれ、続くゼロクロスインタラプトでルート
の処理、同様に、続くゼロクロスインタラプトで.ル
ートの処理が行われる。このようにして、ルートで
は、単に周期を抽出(S67を参照)し、ルートでは実
際のピッチ変更(S61参照)、時定数チェンジ処理(S62
参照)が行なわれることになる。 なお、STEP4におけるS40において、ルートのS66で
波形ナンバーカウンタHNCが3を越えるように、カウン
トアップされた後は、Yの判断がなされ、次にS41へ行
き、リラティブオンの条件を検出する。これは、c−AM
P(b)>TRLRLであり、前回の振幅値AMRL1に比べて今
回の振幅値がしきい値TRLRLを越えて増大したとき、つ
まり、これは弦操作後に同じ弦を再度ピッキングしたと
き(トレモロ奏法などによる)にこのようなことがお
き、この場合はS41でリラティブオンの処理をすべくS41
からS78へ進み、時定数変換制御回路TCCの時定数チェン
ジレジスタCHTRRへ最高音フレット(例えば22フレッ
ト)の周期CHTIMをセットする。しかる後、第5図のS06
へ進み、当該発音中の楽音をノートオフした後、再発音
開始する。 通常の演奏操作によれば、S40、S41、S42へ進み、上
述したルートもしくはルートへ進む。 次に第12図、第13図を参照して、リラティブオフ処理
を説明する。つまり、フレット操作している状態から、
開放弦状態へ移行すると、波形の振幅レベルは急激に落
ちてきて、前々回の波高値AMRL2と前回の波高値AMRL1と
の差が(1/32)AMRL2を越えるようになると、S46からS7
4へ進む。そして、リラティブオフカウンタFOFRが定数R
OFCTを越えるまでカウントアップするようにS74からS75
へ進む。このとき、S75からS48へ行きS49〜S55の処理を
行なうが、FOFR=0でないので、リラティブオフ処理に
入る直前ではピッチ変更をおこなうことなくメインルー
チンへ戻る。 そして、S74でYと判断すると、つまり第13図の例で
は、FOFRの値が3となったとき(ROFCTは2である)、S
74からS75へいく。 ただし、S46のジャッジでYの判断が一度でもある
と、S46からS47へ進み、FOFRをリセットするようにな
る。従って、ROFCTで指定される回数だけ続けてS46の条
件を満足しなければ、リラティブオフの処理はなされな
い。なお、ROFCTの値は、音高が高い弦について大きな
値としておけば、略一定の時間経過で、いずれの弦につ
いてもリラティブオフ処理ができる。 そして、S74からS76へ行くと、リラティブオフカウン
タFOFRをリセットし、レジスタSTEPを5とし、S77へ進
んで音源SSに対しノートオフを指示する。このSTEPが5
の状態では、ピッチ抽出処理をSTEP4の時と同様に実行
するが、S60からS61を介することなくS62へ進むので、
音源SSに対しては、ピッチ変更はされない。ただし、S6
2において抽出した周期に従って時定数がチェンジ処理
を行なう。 そして、STEPが5の状態では、リラティブオンの処理
を受付けるが(S41、S78)、それ以外の場合では、第4
図のメインフローの中で、振動レベルが減少してきたこ
とが検知されることによりM14でSTEPが0となり、初期
状態にもどる。 なお、S46で使用するAMRL1、AMRL2はS64で作られてお
り、1周期の中でレベルが大な方のピーク(最大ピーク
と最小ピークとの一方)が、この値とされ、第13図の例
では、最大ピークaKが最小ピークbK−1より必ず大であ
る場合であって、a n+1とa n−2、a n+2とa n+3
とa n+4の差がいずれも所定値を越えるようになって
いる。 また、このときルートの処理においては、最小ピー
クb n+1、b n+2、b n+3が極端に減少してきてい
るので、S54でNの判断が成されて、メインルーチンへ
リターンし、ピッチ変更処理はなされない。 次に、ピッチ抽出しているなかで、オクターブ関係に
ある倍音、つまりオクターブ高い音やオクターブ低い音
が続けて検出されたときの処理について説明する。 既に説明したように、S58ではttがTTUを越えなかった
とき、つまり、前回抽出した周期の17/32倍した値TTUよ
り小になったとき、S76へ進む。つまり、オクターブ高
い音が抽出されたときは、指定していたフレットから指
を離してミュート操作をした場合とみなし、オクターブ
高い音を出力することなく、S58からS76へ行き、リラテ
ィブオフ時同様S76、S77の処理によって当該音の発音を
停止する。 また、S59では、ttがTTWを越えたとき、つまり前回抽
出した周期の31/16倍した値TTWより大となったとき、S6
0へ進むことなく、メインルーチンへリターンする。 この状態は第14図に示されている。通常ノートオフ近
辺の非常に波形が小さい場合、他のピッキングによって
ヘキサピックアップのクロストオークやボディの共振に
よって波形が乗ってくる。すると、例えば、第14図のよ
うな入力波形となり、1オクターブ下の入力波形が続け
て検出されてしまうことがある。 このような場合、何等処理を施さないと、急にオクタ
ーブ下を音の出力してしまい、極めて不自然となる。そ
のために、S57、S56でT an+2≒T an+3≒T bn+2が
検出されても、T an+3>T an+1×(31/16)となる
ので、ピッチ変更することなく、S59からメインルーチ
ンへリターンする。 次に、ダブリの波形が抽出される場合つまり、同じ極
性のゼロクロス点が続けて到来する場合について説明す
る。第15図は、MT=1の場合の例を示しており、基本波
周期と倍音成分の周期が非整数倍の関係にあるので、倍
音を位相がずれて行き、同じ極性のゼロクロスを検出を
してしまうことになり、そのために誤ったピッチ変更を
しないようにしないといけない。 そこで、図のダブリと書いてあるゼロクロス時のSTEP
4の処理では、S42からS43へ行き、S43ではYの判断をし
てS72へ行く。ここで、(a n+3)と(a n+2)の大
きさが比較され、もし(a n+3)が(a n+2)より大
であれば、S72でYの判断をし、AMP(1)に、(a n+
3)の値をセットし、もし逆の場合は何等変更処理をし
ない。 ところで、このダブリの場合抽出している時刻データ
は何等使用しないので、周期情報T an+3は何等変わら
ない。また、当然周期データに基づくピッチ変更は行な
われない。 同様に、第16図は波形のダブリの場合の例で、MT=0
の状態を示している。このときも、図中にダブリと示し
ているところで、ダブリの状態が生じている。このとき
は、S42からS63へ行き、Yの判断をしてS68へ行く。S68
では、いまの場合(a n+2)と(a n+3)との比較を
して、(a n+3)が(a n+2)より大なときに限りS6
9へ行き、AMP(1)を書替える。この場合は、更に前回
の振幅値AMRL1と今回の振幅情報(波高値c)の比較をS
70で行なって、もしYならばS71へ進み、今回の振幅情
報cを前回の振幅値AMRL1へセットする。 このようにして、倍音の影響で、波形がタブったとき
にも、S56、S57を満足しない限りピッチ変更処理はなさ
れないことになる。 以上述べた実施例によれば、トレモロ付の電子ギター
であっても、発音開始時は音域制限手段のピッチ抽出音
域制限範囲が狭く制御されることから、ピッキング時に
おけるミストラッキングを減らすことができる。 なお、前記実施例おいては、最大ピーク点、最小ピー
ク点の次のゼロクロス点毎の間隔から周期抽出を行なう
ようにしたが、その他の方式、例えば最大ピーク点間や
最小ピーク点間の時間間隔から周期抽出をおこなっても
よい。また、それに合せて回路構成は種々変更し得る。 また、前記実施例においては、この発明を電子ギター
(ギターシンセサイザ)に適用したものであったが、そ
れに限らない。ピッチ抽出を行なって、オリジナルの信
号とは別の音響信号を発生するタイプの楽器または装置
であれば、種々適用可能である。 [発明の効果] 以上述べた本発明によれば、入力波形信号のピッチを
抽出するピッチ抽出手段と、前記ピッチ抽出手段の抽出
するピッチに対応する音高の楽音を発生指示する指示手
段と、前記ピッチ抽出手段に対して、前記指示手段が楽
音の発生を指示していない時は第1の所定周波数範囲内
に入るピッチを抽出するよう指示し、前記指示手段が楽
音の発生を指示している時は、前記第1の所定周波数範
囲より広い第2の所定周波数範囲内に入るピッチを抽出
するよう指示し、当該指示に基づいて抽出したピッチを
前記指示手段に供給するよう制御する制御手段を備えて
いるので、ピッキング時におけるミストラッキングを減
らすことができる発音制御装置を提供できる。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a sound control device for various electronic musical instruments including an electronic stringed musical instrument such as an electronic guitar, and more particularly to a method for extracting a pitch from an input waveform signal thereof without error. The present invention relates to an electronic musical instrument input control device capable of reducing mistracking. [Prior Art] Conventionally, a pitch (fundamental frequency) is extracted from a waveform signal generated by a performance operation of a natural musical instrument, and a sound source device formed of an electronic circuit is controlled to artificially obtain a sound such as a musical sound. Various electronic musical instruments have been developed. An example of this type of electronic musical instrument is an electronic guitar with a tremolo arm, which can change the pitch of a sounding string extremely. [Problems to be Solved by the Invention] However, since the electronic guitar requires a wide range, the allowable range of the pitch is expanded beyond the upper and lower limits of the pitch specified by each fret. I have to. However, the wider such a pitch extraction sound range restriction range is, the higher the possibility that a musical tone is generated at a cycle that is erroneously extracted. By the way, even in such an electronic guitar with a tremolo arm, at the time of picking operation, sounding is started at a pitch corresponding to the original fret, and thereafter, the tremolo arm is mostly operated. This is a performance
This is because it is difficult to pick a string while operating the tremolo arm, and therefore it is considered that it is impossible to instruct the start of sounding immediately at the limit of the range in which sound can be generated. [Purpose of the Invention] The present invention has been made in view of the fact that the limit range of pitch extraction at the start of sound generation and thereafter can be changed for the above-described reason, and mistracking at the time of picking can be reduced. It is an object to provide a pronunciation control device. SUMMARY OF THE INVENTION In order to achieve the above object, the present invention provides a pitch extracting means for extracting a pitch of an input waveform signal, and an instruction means for instructing generation of a musical tone having a pitch corresponding to the pitch extracted by the pitch extracting means. And instructing the pitch extraction means to extract a pitch falling within a first predetermined frequency range when the instruction means does not instruct generation of a musical tone, and the instruction means instructs generation of a musical sound. If so, an instruction is issued to extract a pitch that falls within a second predetermined frequency range wider than the first predetermined frequency range, and control is performed to supply the extracted pitch to the instruction means based on the instruction. And control means. Specifically, as in the embodiment described later, the pitch extraction range limitation range (first predetermined frequency range) at the start of sound generation is set to the upper limit THLIM and the lower limit TTLIM, and the pitch extraction range limit range (second time limit) after the start of sound generation is set. , The upper limit THLIM (same as the upper limit at the start of sound generation) and the lower limit TLLIM, and the frequencies specified by the TTLIM and TLLIM are different. . That is, the lower limit TLLIM after the start of sound generation designates a lower frequency than the lower limit at the start of sound generation (frequency lower limit at the time of trigger) TTLIM. In this way, the permissible range is limited to the lower limit of the frequency only, because there is a possibility of picking while performing the choking operation.
It is the same at the start of pronunciation and after the start of pronunciation. At the start of sound generation, the frequency cannot be lowered except for the operation of the tremolo arm. Of course, if such a choking operation is not performed at the start of sound generation, the upper limit of the frequency may be strictly limited at the start of sound generation. [Embodiment] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. Here, a case in which the present invention is applied to an electronic guitar will be described as an example. The same applies to musical instruments. FIG. 1 is a block diagram showing the entire circuit. A pitch extraction analog circuit PA is provided on each of six strings stretched on, for example, an electronic guitar body (not shown), and converts the vibration of the strings into an electric signal. And a zero-cross signal Zi (i = 1 to
6) and a waveform signal Wi (i = 1 to 6), and converting means for converting these signals into a time-division serial zero-cross signal ZCR and a digital output (time-division waveform signal) D1, for example, an analog It has a digital converter A / D. The pitch extraction digital circuit PD includes a peak detection circuit PEDT, a time constant conversion control circuit TCC, a peak value acquisition circuit PVS, and a zero cross time acquisition circuit ZTS as shown in FIG. 2, and a serial zero cross from the pitch extraction analog circuit PA. signal
The maximum peak point or the minimum peak point is detected based on the ZCR and the digital output D1, and MAXI, MINI (I = 1 to 6) is generated. An interrupt (interrupt) signal INT is output to the microcomputer MCP upon passing through the zero-cross point, and time information and peak value information of the zero-cross point, for example, MAX, MIN, and instantaneous values of the input waveform signal are output to the microcomputer MCP. Note that a circuit is provided inside the peak detection circuit PEDT for holding while subtracting a past peak value. The time constant conversion control circuit TCC changes the decay rate of the peak hold circuit of the peak detection circuit PEDT. When a peak cannot be detected even after a lapse of one cycle of the waveform, the decay rate is rapidly reduced. To do it. Specifically, in the initial state, the waveform rapidly attenuates after the maximum sound period elapses in order to quickly detect the vibration of the waveform, and does not pick up harmonics when the string vibration is detected. Similarly, rapid decay is performed over time, and after the vibration period of the string is extracted, rapid decay is performed at that period. The setting of the cycle information for the time constant conversion control circuit TCC is performed by the microcomputer MCP. Then, a match between the respective string-independent counters in the time constant conversion control circuit TCC and the set cycle information is compared, and a time constant change signal is sent to the peak detection circuit PEDT when the cycle time elapses. The peak value capturing circuit PVS in FIG. 2 performs a demultiplexing process on the waveform signal (digital output) D1 transmitted in a time-division manner as described above into a peak value for each string, and a peak detection circuit PEDT The peak value is held in accordance with the peak signals MAX and MIN from. And microcomputer MCP
Outputs the maximum peak value or the minimum peak value of the string accessed via the address decoder DCD to the microcomputer bus. The peak value capturing circuit PVS can also output the instantaneous value of the vibration of each string. The zero-cross time acquisition circuit ZTS latches the output of the time base counter common to each string at the zero-cross point of each string (strictly speaking, the zero-cross point immediately after passing the maximum peak point and the minimum peak point). Then, in response to a request from the microcomputer MCP, the latched time information is transmitted to the microcomputer bus. Further, a timing signal for the processing operation of each circuit shown in FIGS. 1 and 2 is output from the timing generator TG shown in FIG. The microcomputer MCP has a memory, for example, a ROM and a RAM, has a timer T, and controls a signal to be supplied to the tone generator SOB. Music generator SOB
Is sound source SS, digital-analog converter D / A, and amplifier AMP
And a speaker SP, and emits a musical tone having a pitch corresponding to a pitch instruction signal for changing the frequency from note-on (sound generation) to note-off (silence) from the microcomputer MCP.
Between the data bus BUS input side and the microcomputer MCP sound source SS, an interface (M usical I nstrument D i
gital I nterface) MIDI is provided. Of course, when the sound source SS is provided on the guitar body, another interface may be used. Address decoder DCD, microcomputer M
When the address read signal AR from the CP is input, a string number read signal RDI and a time read signal RDj (j = 1 to
6) The peak value of MAX and MIN and the instantaneous value read signal RDAI (I = 1 to 18) at that time are output to the pitch extraction digital circuit PD. Hereinafter, the operation of the microcomputer MCP will be described with reference to flowcharts and drawings showing waveforms. First, reference numerals in the drawings will be described. AD: input peak value (instantaneous value) directly reading the input waveform of the pitch extraction digital circuit PD using the instantaneous value read signals RDA13 to RDA18 in FIG. 1 AMP (0,1) ... positive or negative previous (old) wave High value AMRL1 ... relative (rel) stored in the amplitude register
ative) The previous amplitude value for checking off. Here, the relative off is equivalent to a silencing process when the fret operation is stopped and the sound is shifted to an open string by canceling the sound based on a sudden decrease in the peak value. AMRL2... The amplitude value two times before the relative OFF stored in the amplitude register, to which the value of AMRL1 is input. CHTIM: a cycle corresponding to the highest tone fret (22th fret) CHTIO: a cycle corresponding to the open string fret CHTRR: a time constant conversion register, which is provided inside the time constant conversion control circuit TCC (FIG. 2). . DUB: a flag indicating that the waveforms have continuously arrived in the same direction FOFR: a relative off counter HNC: a waveform number counter MT: a flag from which the pitch is to be extracted (positive = 1, negative = 0) NCHLV: no change level ( OFTIM: Off time (e.g., corresponding to the open string cycle of the string) OFPT: Normal off check start flag ONF: Note on flag RIV: Flag ROFCT for switching the processing route in step (STEP) 4 described later ... Constant that determines the number of relative off checks STEP: Registers (1 to 5) that specify the flow operation of the microcomputer MCP TF: Previous zero-crossing time data TFN (0,1) that became valid Immediately after the positive or negative peak value Previous zero-crossing time data TFR: Time storage register THLIM: Frequency upper limit (constant) TLLIM: Frequency lower limit (constant) TP (0, 1): Positive or negative previous period data TRLAB (0 , 1)… positive or negative absolute trigger level (note-on threshold) TRLRL… relative-on (start of re-production) threshold TRLRS… resonance elimination threshold TTLIM… trigger lower frequency limit TTP… extracted last time Period data TTR: Period register TTU: Constant (product of 17/32 and current period information tt) TTW: Constant (product of 31/16 and current period information tt) VEL: Information that determines speed (velocity) Determined by the maximum peak value of the waveform at the start of sounding. X: Flag indicating an abnormal or normal state b: Current positive / negative graph stored in working register B (1 at the next zero point after the positive peak, o at the next zero point after the negative peak) c: Working register register The current peak value (peak value) stored in C e... The pre-last peak value stored in the working register E (peak value) h. The cycle data extracted before and after the last stored in the working register H t. The current zero-crossing time tt stored in T0. The current cycle information stored in the working register TOTO. FIG. 3 is an interrupt routine showing processing when an interrupt is applied to the microcomputer MCP. The microcomputer MCP sends a string number read signal RDI to the zero-cross time acquisition circuit ZTS via the address decoder DCD.
Reads the string number specifying the string given the interrupt given. Then, the time information corresponding to the string number, that is, the zero-cross time information, is supplied to the zero-cross time fetch circuit ZTS by giving any one of the time read signals RD1 to RD6. This is defined as t. Thereafter, at I2, the signal RDAI (I =
1 to 12) and read the peak value. This is assumed to be c. In the following I3, information b indicating whether the peak value is a positive or negative peak is obtained from the zero-crossing time acquisition circuit ZTS. Then, at I4, the values of t, c, b obtained in this way are stored in the register T0 of the buffer in the microcomputer MCP,
Set to C and B. Each time interrupt processing is performed, such time information, peak value information, and information indicating the type of peak are written into this buffer as one set, and the main routine processes the information for each string. Is made. FIG. 4 is a flowchart showing a main routine. When the power is turned on, various registers and flags are initialized in M1, and the register STEP is set to 0. At M2, it is determined whether or not the above-mentioned buffer is empty. If NO (hereinafter referred to as N), the process proceeds to M3, and the contents of the registers B, C, and TO are read from the buffer. As a result, in M4, several registers STEP are determined, and M5
In Steps 0 and M6, the processing in Step 1, Step 7 in M7, Step 3 in M8, and Step 4 in M9 are sequentially performed. When the buffer is empty at M2, that is, when the answer is yes (hereinafter, referred to as Y), the process sequentially proceeds to M10 to M16, where a normal note-off algorithm process is performed. This note-off algorithm is an algorithm for performing note-off when a state below the off (OFF) level continues for a predetermined off-time period. At M10, it is determined whether or not STEP = 0, and if NO (hereinafter, referred to as N), the process proceeds to M11. In M11, the input peak value AD at that time is directly read. This can be achieved by applying any one of the peak value reading signals RDA13 to RDA18 to the peak value capturing circuit PVS.
Then, it is determined whether or not this value AD is the input peak value AD off level, and if Y, the process proceeds to M12. In M12, it is determined whether or not it is the previous input peak value AD off level, and in the case of Y, the process proceeds to M13, where the timer T value off time O
It is determined whether it is FTIM (for example, a constant of the open string period of the string). In the case of Y, the process proceeds to M14, where 0 is written to the register STEP, and whether or not note-on is performed is cut off in M15, and in the case of Y, the note-off process is performed in M16, and the M in the input side of M2 is Return. If N is M12, proceed to M17
Start the MCP internal timer T and return to the entry side M of M2. M
In this case at 10, and when M11, M13, and M15 are N, all return to M on the entry side of M12. When the level of the waveform input is attenuated,
When the input peak value AD equal to or less than the off level continues for a time corresponding to the off time OFTIM, the microcomputer MCP sends a note-off instruction to the sound source SS. In step M15, the determination of Y is made in a normal state, but the register STEP may take a value other than 0 even when the instruction of utterance of a musical tone is not instructed by a process described later. (For example, due to noise input.) In such a case, M14, M15
By returning to M2 after the processing of, the initial setting is performed. Although FIG. 4 shows only the processing for one string, as shown in this figure, the microcomputer MCP executes the processing by multiplexing the processing six times corresponding to the number of strings. Of course, a plurality of processors may be provided, and the same processing may be executed separately and independently. Next, details of each routine for branching and performing corresponding processing in M4 will be described. FIG. 5 shows a step 0 (STEP 0) shown as M5 in FIG.
It is a flowchart at the time of (0). In S01, it is determined whether or not the tax trigger level (note-on threshold) TRLAB (b) <the present peak value c. If Y, the process proceeds to S02 to check the resonance removal. You. The trigger level is checked for each of positive and negative polarity peaks. TRLAB (0) and TRLAB (1) are set to appropriate values by experiments and the like. In an ideal system, TRLAB (0) and TRLAB (1) may be the same. In S02, it is determined whether or not the resonance removal threshold value TRLRS <[current peak value c−previous peak value AMP (b)], that is, whether the value below the current peak value and the previous peak value is equal to or greater than a predetermined value. When picking one string causes another string to resonate, the level of vibration of the other string gradually increases, and as a result, the change in the peak value between the previous time and the current time becomes very small. The difference is the resonance rejection threshold
Never exceed TRLRS. However, in normal picking, the waveform suddenly rises (or falls), and the difference between the peaks exceeds the resonance removal threshold value TRLRS. If it is determined in S02 that it is not the case of Y, that is, the case of resonance, the following processing is performed in S03. That is, the current positive / negative flag b is written into the flag MT, 1 is written into the register STEP, and the current zero-cross time t is set as the previous zero-cross time data TFN (b). Then, in S04, other flags are initialized, and the process proceeds to S05. In S05, the current peak value c is set as the previous peak value AMP (b), and thereafter, the process returns to the main flow in FIG. In FIG. 5, A is relative on (reproducing starts).
The entry of S06 from the flow of STEP 4 described later
Jump to. Then, in S06, the musical tone output so far is deleted once, and the process proceeds to S03 to start re-sounding. The process for starting re-sound generation is the same as that for starting normal sound generation, and will be described in detail below. Then, in the case of N in S01 and the case of N in S02 (when the current peak value c-the previous peak value AMP (b) is not equal to or more than the predetermined value), the process proceeds to S05. Therefore, the process for starting sound generation does not proceed. In STEP 0 described above (between STEP 0 and 1 in FIG. 11), the contents of the B register (b = 1) are written in the flag MT, and the contents (t) of the register TO are set to the previous zero-crossing time data TFN.
(1) is written, and the peak value (c) of the register C is written to the previous peak value AMP (1). FIG. 6 shows details of the flowchart of STEP 1 shown as M6 in FIG. 4. In S11, it is determined whether or not the content (b) of the register B and the flag MT do not match.
In the case of, the process proceeds to S12. In S12, it is determined whether or not the absolute trigger level (note-on threshold) TRLAB (b) <the current peak value c. If Y, the process proceeds to S13. In the case of Y in S12, 2 is set in the register STEP, and in S14, the register TO
(T) is replaced with the previous zero-cross time data TFN (b)
Then, in S15, the current peak value c is set to the previous peak value AMP (b). In S11, in the case of N, that is, when the input waveform signal comes in the same direction, the process proceeds to S16, and it is determined whether or not the current peak value c> the previous peak value AMP (b). If it is larger than the peak value AMP (b), the process proceeds to S14. Meanwhile, S12
In the case of N, the process proceeds to S15, whereby only the peak value is updated. Further, in S16, in the case of N and at the end of the processing of Z15, the process returns to the main flow (FIG. 4). In STEP 1 described above (between STEP 1 and STEP 2 in FIG. 11), since the current positive / negative flag b (= 0) and the flag MT = 1 do not match, the current zero cross time t is set to the previous zero cross time data TFN (0 ), And the current peak value c is written as the previous peak value AMP (0). FIG. 7 shows details of the flowchart of STEP 2 shown as M7 in FIG. 4. In S20, it is determined whether or not the current positive / negative flag b = flag MT, that is, whether or not the same zero-cross point as the direction of STEP0 has arrived. , Y for S2
Proceed to 1. In S21, the open chord cycle CHTIO is set in the register CHTRR in the time constant conversion control circuit TCC of FIG. 2, and the process proceeds to S22. In S22, the current peak value c> (7/8) x the previous peak value
It is checked whether it is AMP (b), that is, whether the peak value is substantially the same between the previous time and this time, and in the case of Y, that is, in the case of beautiful natural attenuation, the process proceeds to S23, the flag DUB is set to 0, and the process proceeds to S24. move on. In S24, a cycle calculation is performed, and the current zero-cross time t−the previous zero-cross time data TFN is calculated.
(B) is input to the previous cycle data TP (b), and the current zero cross time t is input as the previous zero cross time data TFN (b). TP (b) in S24 is used as a note-on (1.5 wave) condition in STEP3. In S24, the register STEP is set to 3. Further, the current crest value c, the negative crest value AMP (0), and the positive crest value AMP (1)
The largest value is registered as velocity VEL.
Also, the current peak value c is written to the previous peak value AMP (b). In the case of N in S20, the process proceeds to S25, where the flag DUB, that is, the flag indicating that an input waveform in the same direction has arrived, is set to 1, and the process proceeds to S26. In S26, it is determined whether or not the current crest value c> the previous crest value AMP (b).
Proceed to. In S29, the current peak value c is replaced by the previous peak value AMP (b)
And the previous zero-crossing time data TFN (b) is rewritten to the contents t of the register T. In S22,
In the case of N, the flow proceeds to S27, and it is checked whether or not the flag DUB = 1, that is, when STEP2 was executed last time, whether or not the flag is doubled. In the case of Y, that is, if the flag is doubled, the flow proceeds to S28. In S28, the flag DUB is set to 0. In this case S29
To return to the main routine. After the processing in S24 and also in the case of N in S26, the process similarly returns to the main routine (RET). In STEP 2 described above (between STEP 2 and STEP 3 in FIG. 11), if the current positive / negative flag b and the flag MT = 1 are the same, the 0th fret cycle, that is, the open string cycle CHTIO is rewritten to the register CHTRR, and the flag DUB is set. Is set to 0, and t
−TFN (1) → TP (1) is calculated, and the previous zero-cross time data TF
N (1) is rewritten and the current crest value c and the previous crest value AMP
(0), the largest value of the previous peak value AMP (1) is set as the velocity VEL, and the previous peak value AMP (1) is set as the current peak value c. FIG. 11 shows an example in which there is an ideal waveform input. The case where DUB = 1 will be described below. 8th
The figure is a diagram for explaining the operation of STEP 2 in such a case, where (A) shows a case where one wave is skipped and a peak is detected, and when the input waveform is a solid line, the processing is performed in STEP 3 described later. Note-on does not occur when the input waveform is a dotted line. This is due to the difference between Y and N in S26. Also, the reason why it is difficult to shift from STEP 2 to STEP 3 is that even if b = MT is satisfied in S20, c> (7/8) × A in S22.
If MP (b) is determined to be N and this is not Y, ST (ST)
This is because EP2 is repeatedly executed. (B)
This is a case where an overtone lower than an octave is detected. In this case, when C> (7/8) × AMP (b) is checked, Y becomes S2.
After 3, go to S24 and move to STEP3. FIG. 9 is a flowchart of STEP 3 shown as M8 in FIG. 4. In S30, it is determined whether or not the flag MT ≠ the current positive / negative flag b. If normal, that is, if Y, the process proceeds to S31. In S31, if (1/8) c <AMP (b), X is set to 0, otherwise, X = 1 is set, and the process proceeds to S32. In S32, the previous peak value AMP (b) is rewritten as the current peak value c. Then, in S33, if the current peak value c is larger than the VEL obtained in STEP2, the current peak value c is input as the velocity VEL. If vice versa, this velocity VEL will not change. Next, the flag MT is rewritten to the positive / negative flag b this time, whereby the pitch extraction side is reversed. This means that the meaning of the flag MT is different from STEP 4 described later, and means a pitch change side. Then, in S34, [t-TFN (b) → TP
(B)]. Also, the current zero cross time data TFN is used as the current cell cross time t.
(B) is rewritten. Next, in S35, it is determined whether or not X = O, and in the case of Y, the flow proceeds to S36, and whether or not the frequency upper limit THLIM <the previous cycle data TP (b), that is, a pitch extraction upper limit check is performed. If the period is longer than the period of the highest sound, it is Y because it is within the allowable range, and the process proceeds to S37. In S37, whether the lower limit of the frequency at the time of triggering is TTLIM> the previous cycle data TP (b), that is, the lower limit of the pitch extraction is checked, and if a cycle shorter than the cycle of the lowest note is within the allowable range, the judgment of Y And proceed to S38. The pitch extraction lower limit of S37 is different from the pitch extraction lower limit of STEP 4 described later in a constant. Specifically, the upper frequency limit THLIM is equivalent to a pitch period two to three semitones above the highest note fret, and the lower frequency limit TTLIM at the time of triggering is set to a pitch period five semitones below the open string fret of the open string. Shall be equivalent. In S38, the current cycle data TP (b) is set as the previously extracted cycle data TTP, that is, the pitch extracted on the pitch extraction side is saved (this is used in STEP4 described later), and the process proceeds to S39. In S39, the cycle data TP
(B) A 1.5 wave pitch extraction check, which is a check of whether or not ≒ TP (), that is, a check of a period substantially coincident between zero-cross points having different polarities, is performed. In the case of Y, the following processing is performed in S301. That is, the time storage register TFR is rewritten as the previous zero-cross time data TFN (), the current zero-cross time t is set as the previous zero-cross time data TF, and the waveform number counter
Clear HNC. This counter HNC is STEP4 described later
Used in The register STEP is set to 4, the note-on flag ONF is set to 2 (sound generation state), and the constant T
TU is set to 0 or (MIN) and constant TTW is the highest MA
Set to X. These are all used in STEP 4 described later. Also, the previous peak value register AMRL1 for relative off is cleared. And the last S
At 302, note-on processing is performed at a pitch corresponding to the previous cycle data TP (b) and a volume corresponding to the velocity VEL. That is, the microcomputer MCP instructs the sound source SS to start sound generation. In S30, in the case of N (in the case of zero-cross point detection in the same direction), the process proceeds to S303, and the previous peak value AMP (b) <
It is determined whether or not this time is the peak value c, and in the case of Y, the process proceeds to S304. In S304, the current peak value c is the previous peak value AMP (b)
And the larger of the velocity VEL and the value c of the register C is set to the velocity VEL. N in any of S303, S35, S36, S37, S39
In this case, return to the main routine (RET.). FIG. 17 is a diagram showing a specific example of a case where X = 1, that is, an abnormality, in S31, wherein 1 / 8b 1 <b 0 and 1 / 8a 2
> In all of the judges when the a 1 does not satisfy the condition, the X = 1. That is, the peaks (a 0 , b) of the first three waveforms in FIG.
0 , a 1 ) is caused by noise. If the period of these noises is detected and the start of sound generation is instructed, a completely strange sound is generated. Therefore, in S31, it is detected that the peak value has greatly changed, X = 1, and N is determined in S35. Then, in S31, it is instructed to start sound generation after it is detected that the waveform changes normally. In the case of FIG. 17, note-on occurs when TP ≒ () is detected. In STEP 3 described above (between STEP 3 and 4 in FIG. 11), the MT
= 1 ≠ b, AMP (0) ← c, max [VEL, c (whichever is greater)] → VEL, MT ← b = 0, TP (0) ← [t−T
FN (0)], TFN (0) ← t, TTP ← TP (0), TFR ← TFN
(1), TF ← t, HNC ← 0, ONF ← 2, TTU ← 0 (MIN),
TTW ← MAX, AMRL1 ← 0, note-on condition TP (o) ≒ TP
The processing of (1) is performed. Then, in response to the appropriate waveform input, in STEP 3, generation of a musical tone having a pitch according to the extracted pitch is started. Eleventh
As can be seen from the figure, 1.5 seconds after starting the period detection
A sound generation instruction is issued to the sound source SS after a lapse of about a cycle. Of course, if the various conditions are not satisfied, further delays are as described above. FIG. 10 is a flowchart of STEP 4 shown as M9 in FIG. 4. In this case, there is a route for only extracting the pitch and a route for actually changing the pitch. First,
The routes shown in S40, S41, S42, and S63 to S68 will be described. In S40, it is determined that the waveform number counter HNC> 3, and in the case of Y, the process proceeds to S41. In S41, the relative on threshold value TRLRL <[the current peak value c−the previous peak value AMP
(B)] is determined, and if N, S42
Proceed to. In S42, it is determined whether or not the current positive / negative flag b = graph MT, that is, the pitch change side. If Y, the process proceeds to S43. By the way, in the initial state, the waveform number counter
Since HNC is 0 (see S301 in FIG. 9), N is determined in S40 and the process proceeds to S42. Then, for example, in the case of the waveform input as shown in FIG. 11, since b = 1 and MT = 0, S42
Proceed to S63 from. In S63, it is determined whether or not the register RIV = 1 to check whether or not a peak having the same polarity is continuously input (whether it is a double). If Y, the process proceeds to S68, and , N (if not double)
Proceeds to S64, where the following processing is performed. That is, in S64, the current peak value c is input to the previous peak value AMP (b), and the previous amplitude value AM is used for the relative off process.
RL1 is input to the amplitude AMRL2 two times before. In this case, the content of AMRL1 is 0 (see S30 in STEP3). Further, in S64, the previous peak value AMP () and the present peak value c
Is input to the full or amplitude value AMRL1. That is, a peak value of a large value of two positive and negative peak values in the cycle is set to the amplitude value AMRL1. Then, in S65, it is determined whether or not the waveform number counter HNC> 8. Here, the waveform number counter (zero cross counter on the non-pitch changing side) HNC is incremented by 1 and counted up. Therefore, the upper limit of the waveform number counter HNC is 9. Then, the process proceeds to S67 after the processing of 3S65 or S66.
In S67, the register RIV is set to 1, the content of the time storage register TFR is subtracted from the current zero crossing time, and the result is input to the period register TTR. This cycle register TTR indicates the cycle information as shown in FIG. Then, the current zero cross time t is saved in the time storage register TFR, and thereafter, the process returns (RET) to the main routine. In the case of Y in S63, the process proceeds to S68, and it is determined whether or not the current peak value c> the previous peak value AMP (b). In the case of Y, the process proceeds to S69. In S69, the previous peak value APM (b) is rewritten to the current peak value c, and the process proceeds to S70. In S70, it is determined whether the current crest value c> the previous amplitude value AMPL1. If Y, the process proceeds to S71, where the current crest value c is input to the previous amplitude value AMRL1. If the determination of N is made in S68, the process immediately returns to the main routine. Therefore, only when the peak of the new input waveform is large, the amplitude value of the new waveform is registered. (In that case, it is considered that the peak of the overtone is not spread.) When N in S70 and when the process of S71 ends, the process similarly returns to the main routine. As described above, according to the example of FIG. 11, the following processing is performed on the route: MT = 0 ≠ b, RIV = 0, AMP
(1) ← c, AMRL2 ← AMRL1, MRL1 ← max [AMP (0), c
(Whichever is greater)], HNC ← (HNC + 1) = 1, RI
V, TTR ← (t−TFR), TFR−t are processed. Therefore,
The previous zero-cross point of the same polarity (STEP2
The difference between the time information from the point of → 3) and the current zero-cross point, that is, the cycle information has been obtained. And
Return to the main routine and wait for the next zero cross interrupt. Next, a description will be given of a case where the vehicle has proceeded to the route shown in S40 to S62. Now, since the waveform number counter HNC is 1, (S
66), and proceed from S40 to S42. In S42, in the case as shown in FIG. 11, since MT = 0 and b = 0, the result is Y, and the process proceeds to S43. S
At 43, it is determined whether or not the register RIV = 1. In the route, the register RIV is already set to 1 (S67
Therefore, the determination in S43 is Y in this case, and the process proceeds to S44. In S44, it is determined whether or not the register STEP = 4.
In the case of, go to S45. In S45, the peak value c <60H this time
(H indicates hexadecimal notation) is determined. If the peak value c is small, the result is Y, and the process proceeds to S46. At S46, it is determined whether or not the amplitude value AMRL2 of the previous time AMRL2−the previous amplitude value AMRL1 ≦ (1/32) × the amplitude value AMRL2 of the previous time, and if Y, the process proceeds to S47, where the relative off counter FOFR is set to 0. You. The relative off processing will be described later. Then, in S48, a cycle calculation is performed. Specifically, (the current zero-cross time t-the previous zero-cross time data TF) is stored in the register TOTO as the current cycle information tt. Then, the process proceeds to S49, and in S49, the current frequency information
It is determined whether tt> frequency upper limit THLIM (upper limit after the start of sound generation). If Y, the process proceeds to S50. The frequency upper limit THLIM of S49 is the upper limit of the allowable range of the frequency at the time of triggering (at the start of sounding) used in S36 of STEP3 (therefore, the minimum period is equivalent to the pitch period two to three semitones above the highest note fret) Is the same as Next, the following processing is performed in S50. That is, the register RIV is set to 0, the current zero-cross time t is input as the previous zero-cross time data TF, the previous peak value AMP (b) is input as the immediately preceding peak value e, and the previous peak value c is set as the previous peak value c. It is input to the peak value AMP (b). Then, after the process of S50, the process proceeds to S51, and in S51, it is determined whether or not the frequency lower limit TLLIM> the present cycle information tt, and Y
In other words, if the current cycle is equal to or less than the lower limit of the pitch-extracted sound range during note-on, the process proceeds to S52. In this case, the lower frequency limit TLLIM is set, for example, one octave below the open string scale. In other words, the allowable range is wider than the frequency lower limit TTLIM (see S37) of STEP3. By doing so, it becomes possible to cope with a frequency change due to operation of the tremolo arm or the like. Accordingly, the process proceeds to S52 only when the upper limit and lower limit of the frequency fall within the allowable range, and otherwise, the process proceeds to S49.
Return from S51 to the main routine. Next, in S52, the cycle data TTP is input to the cycle data h extracted two times before, and the current cycle information tt is input to the cycle data TTP extracted last time. Then, in S53, the current peak value c is written to the velocity VEL, and the process proceeds to S54. S5
At 4, the no-change level NCHLV> (previous peak value e-
It is determined whether or not the current crest value is c), and in the case of Y, the process proceeds to S55. That is, the previous peak value of the same polarity (e = AMP (b))
If the peak value c greatly changes, the difference exceeds the NCLV. In such a case, if the pitch is changed based on the extracted period information, an unnatural high tone change Is likely to be present. Therefore,
If N is determined in S54, the process returns to the main routine without performing the processing in S55 and thereafter. Next, in the case of Y in S54, the relative off counter FOFR
It is determined whether or not = 0. When performing the relative off processing described below, the relative off counter FOFR
Is not 0, and in such a case, without performing the process of changing the pitch (see S61), a determination of N is made in S55, and the process returns to the main routine. Then, when the determination of Y is made in S55, the process sequentially proceeds to S56 and S57. Here, the two-wave ternary coincidence condition is determined. In S56, the present cycle information tt × 2 −7 <| the present cycle information tt−the cycle data before last time h | is determined. If Y, the process proceeds to S57, and S57
In this case, the current cycle information tt × 2 −7 <| current cycle information tt−contents of cycle register TTR | is determined, and in the case of Y, the flow proceeds to S58. That is, in S56, the current cycle information tt (S43
It is determined whether or not the value of the current cycle information h (see S52) substantially matches the value of the previous cycle data h (see S52). In S57, it is determined whether or not the value of the current cycle information tt substantially matches the cycle TTR overlapping therewith. to decide. Note that the upper limit range is 2 −7 xtt, and the value changes depending on the period information. Of course,
This may be a fixed value, but better results can be obtained with the technique employed in this embodiment. In the next S58, it is determined whether or not the previous cycle information tt> constant TTU. If Y, the process proceeds to S59, where the current cycle information t
It is determined whether or not t <constant TTW. If Y, the process proceeds to S60.
Steps S58 and S59 are for preventing a sudden change in pitch. In other words, the constant TTU of S58 is now set to 0 in S301 of STEP3, and the constant TTW is similarly set to the value of MAX. When passing through this flow for the first time, Y is always determined in S58 and S59. After that, in S62 described later, the constant TTU includes:
(17/32) tt (period information of one octave high tone) is set, and (31/16) tt (substantially one octave low frequency information) is also set in the constant TTW in S62. Therefore, if there is a sudden octave up (this occurs when the fret is released and the mute operation is performed) or an octave down (this occurs when the waveform peak is missed) If the pitch is changed, it becomes unnatural, so branching is performed without changing the pitch. If Y is determined in S58 and S59, then S6
Go to 0. In S60, it is determined whether or not the register STEP = 4. In that case, the process proceeds to S61. In S61,
Change pitch from microcomputer MCP to sound source SS (this cycle information t
t), and proceeds to S62, where the current cycle information tt
Changes the time constant in response to
2) x is rewritten to the current cycle information tt, and the constant TTW is rewritten to (31/16) x current cycle information tt. That is, as described later, STEP = 5 is set only when the relative off process is performed. In this case, the time constant is changed without changing the pitch. The processing of the time constant change means that the microcomputer MCP sets data based on the value of the current cycle information tt in a register inside the time constant conversion control circuit TCC of FIG. This is as described above. Then, the process returns to the main routine at the end of the process of S62. Therefore, as described above, the route is subjected to the following processing as shown in FIG. That is, HNC = 1, M
T = 0 = b, RIV = 1, FOFR ← 0, tt ← (t−TF), RIV
← 0, TF ← t, e ← AMP (0), AMP (0) ← c, h ← TT
P, TTP ← tt, VEL ← c, and the pitch is changed according to tt when the three conditions of TTP ≒ TTR ≒ tt, TTU <tt <TTW, and AMP (0) −c <NCHLV are satisfied. Thereafter, TTU ← (17/32) × tt and TTW ← (31/16) × tt are performed. Therefore, in the route, a pitch change with respect to the actual sound source SS is performed, and processing of the route is performed in the subsequent zero cross interrupt, and similarly, in the subsequent zero cross interrupt. Route processing is performed. In this way, on the route, the period is simply extracted (see S67), on the route, the actual pitch change (see S61), the time constant change process (S62)
Reference) will be performed. In step S40 in step 4, after the waveform number counter HNC is counted up in step S66 so that the waveform number counter HNC exceeds 3, the determination of Y is made, and then the process goes to step S41 to detect the relative on condition. This is c-AM
When P (b)> TRLRL and the current amplitude value exceeds the threshold value TRLRL as compared with the previous amplitude value AMRL1, that is, when the same string is picked again after the string operation (tremolo playing method) Such a case occurs in such a case. In this case, in order to perform the relative on process in S41, S41 is executed.
Then, the flow advances to S78 to set the cycle CHTIM of the highest tone fret (for example, 22th fret) in the time constant change register CHTRR of the time constant conversion control circuit TCC. Then, S06 in FIG.
Then, after note-off of the tone being sounded, re-sounding is started. According to the normal performance operation, the process proceeds to S40, S41, and S42, and proceeds to the above-described route or route. Next, the relative off processing will be described with reference to FIGS. In other words, from the state where you are operating the fret,
When the state shifts to the open string state, the amplitude level of the waveform sharply drops, and when the difference between the peak value AMRL2 of the previous time and the previous peak value AMRL1 exceeds (1/32) AMRL2, S46 to S7
Proceed to 4. Then, the relative off counter FOFR becomes a constant R
From S74 to S75 to count up until it exceeds OFCT
Proceed to. At this time, the process goes from S75 to S48 and performs the processes of S49 to S55. However, since FOFR is not 0, the process returns to the main routine without changing the pitch immediately before entering the relative off process. When Y is determined in S74, that is, in the example of FIG. 13, when the value of FOFR becomes 3 (ROFCT is 2), S
Go from 74 to S75. However, if the judgment of Y is at least once in the judgment of S46, the process proceeds from S46 to S47 to reset the FOFR. Therefore, unless the condition of S46 is satisfied continuously for the number of times specified by ROFCT, the relative off processing is not performed. If the value of ROFCT is set to a large value for a string having a high pitch, the relative off processing can be performed for any of the strings after a lapse of a substantially constant time. Then, when going from S74 to S76, the relative off counter FOFR is reset, the register STEP is set to 5, and the process goes to S77 to instruct the sound source SS to perform note-off. This STEP is 5
In the state of, the pitch extraction process is executed in the same manner as in STEP 4, but since the process proceeds from S60 to S62 without passing through S61,
The pitch is not changed for the sound source SS. However, S6
The time constant changes according to the cycle extracted in 2. Then, in the state of STEP 5, the relative-on process is accepted (S41, S78).
In the main flow of the figure, when it is detected that the vibration level has decreased, STEP becomes 0 in M14, and the process returns to the initial state. Note that AMRL1 and AMRL2 used in S46 are made in S64, and the peak having the larger level (one of the maximum peak and the minimum peak) in one cycle is set to this value, and FIG. In the example, the maximum peak a K is always larger than the minimum peak b K −1, where an + 1 and an-2, an + 2 and an + 3.
And a n + 4 are both greater than a predetermined value. Also, at this time, in the route processing, since the minimum peaks b n + 1, b n + 2, b n + 3 have been extremely reduced, the determination of N is made in S54 and the process returns to the main routine, and the pitch change processing is not performed. Not done. Next, a description will be given of a process performed when harmonics having an octave relationship, that is, octave higher and lower octave sounds are successively detected during pitch extraction. As described above, in S58, when tt does not exceed the TTU, that is, when tt becomes smaller than the value TTU which is 17/32 times the cycle extracted last time, the process proceeds to S76. In other words, when an octave higher sound is extracted, it is considered that the user has released the finger from the designated fret and the mute operation has been performed. The sound generation of the sound is stopped by the processing of S77. In S59, when tt exceeds TTW, that is, when tt exceeds 31/16 times the value TTW of the previously extracted cycle, S6
Return to the main routine without going to 0. This state is shown in FIG. Usually, when the waveform is very small near the note-off, the waveform is picked up by crosstalk of the hexa pickup or resonance of the body due to other picking. Then, for example, an input waveform as shown in FIG. 14 may be obtained, and an input waveform one octave lower may be continuously detected. In such a case, if no processing is performed, the sound is suddenly output below the octave, which is extremely unnatural. Therefore, even if Tan + 2 ≒ Tan + 3 ≒ Tbn + 2 is detected in S57 and S56, since Tan + 3> Tan + 1 × (31/16), the process returns from S59 to the main routine without changing the pitch. Next, a case where a doubled waveform is extracted, that is, a case where zero-cross points having the same polarity continuously arrive will be described. FIG. 15 shows an example in the case of MT = 1. Since the fundamental wave period and the period of the harmonic component are non-integer multiples, the harmonics are shifted in phase and the zero-cross of the same polarity is detected. You have to make sure that you do not change the pitch incorrectly. Therefore, STEP at the time of zero cross written as double in the figure
In the process of 4, the process goes from S42 to S43, and in S43, the determination of Y is made and the process goes to S72. Here, the magnitudes of (an + 3) and (an + 2) are compared. If (an + 3) is greater than (an + 2), Y is determined in S72, and (AMP (1) a n +
The value of 3) is set, and if not, no change processing is performed. By the way, in the case of this double, no extracted time data is used, so that the cycle information Tan + 3 does not change at all. In addition, the pitch is not changed based on the cycle data. Similarly, FIG. 16 shows an example of the case of doubled waveform, where MT = 0.
The state of is shown. At this time as well, the state of double doubling occurs where double doubling is indicated in the figure. At this time, the process goes from S42 to S63, makes a Y determination, and goes to S68. S68
Then, in this case, (an + 2) and (an + 3) are compared, and only when (an + 3) is larger than (an + 2), S6
Go to 9 and rewrite AMP (1). In this case, the comparison between the previous amplitude value AMRL1 and the current amplitude information (peak value c) is further performed by S
The determination is made at 70, and if Y, the process proceeds to S71, and the current amplitude information c is set to the previous amplitude value AMRL1. In this way, even when the waveform is tabbed due to the influence of the harmonic, the pitch change processing is not performed unless S56 and S57 are satisfied. According to the above-described embodiment, even with an electronic guitar with a tremolo, at the start of sounding, the pitch extraction range limitation range of the range limitation means is controlled to be narrow, so that mistracking during picking can be reduced. . In the above embodiment, the periodic extraction is performed from the interval of each zero crossing point next to the maximum peak point and the minimum peak point. However, other methods, such as the time between the maximum peak points and the time between the minimum peak points, are used. Periodic extraction may be performed from the interval. Further, the circuit configuration can be variously changed in accordance with it. In the above-described embodiment, the present invention is applied to an electronic guitar (guitar synthesizer). However, the present invention is not limited to this. Various types of musical instruments or devices that perform pitch extraction to generate an acoustic signal different from the original signal can be applied. According to the present invention described above, pitch extracting means for extracting a pitch of an input waveform signal, instruction means for instructing generation of a musical tone having a pitch corresponding to the pitch extracted by the pitch extracting means, When the instructing means does not instruct the generation of a musical tone, the instructing means instructs the pitch extracting means to extract a pitch falling within a first predetermined frequency range. A control means for instructing to extract a pitch falling within a second predetermined frequency range wider than the first predetermined frequency range, and controlling the extracted pitch to be supplied to the instruction means based on the instruction. Therefore, it is possible to provide a sound control device that can reduce mistracking during picking.

【図面の簡単な説明】 第1図は本発明を適用した電子楽器の入力制御装置の全
体の構成を示すブロック図、第2図は第1図のピッチ抽
出デジタル回路の一例を示すブロック図、第3図は第2
図のマイコンの割込み処理ルーチンを示すフローチャー
ト、第4図は第2図のマイコンのメイン処理ルーチンを
示すフローチャート、第5図〜第7図および第9図,第
10図はいずれも第2図のマイコンの各ステップの動作を
説明するためのフローチャート、第8図,第11図〜第17
図はいずれも各ステップの動作を説明するためのタイミ
ングチャートである。 PA……ピッチ抽出アナログ回路、PD……ピッチ抽出デジ
タル回路、MCP……マイコン、SS……音源、PEDT……ピ
ーク検出回路、ZTS……ゼロクロス時刻取込回路、TCC…
…時定数変換制御回路、PVS……波高値取込み回路。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing an entire configuration of an input control device of an electronic musical instrument to which the present invention is applied, FIG. 2 is a block diagram showing an example of a pitch extraction digital circuit of FIG. FIG. 3 shows the second
FIG. 4 is a flowchart showing an interrupt processing routine of the microcomputer shown in FIG. 4, FIG. 4 is a flowchart showing a main processing routine of the microcomputer shown in FIG. 2, and FIGS.
10 is a flowchart for explaining the operation of each step of the microcomputer of FIG. 2, and FIGS. 8, 11 to 17
Each figure is a timing chart for explaining the operation of each step. PA: Pitch extraction analog circuit, PD: Pitch extraction digital circuit, MCP: Microcomputer, SS: Sound source, PEDT: Peak detection circuit, ZTS: Zero-cross time acquisition circuit, TCC ...
… Time constant conversion control circuit, PVS …… Crest value capture circuit.

Claims (1)

(57)【特許請求の範囲】 1.入力波形信号のピッチを抽出するピッチ抽出手段
と、 前記ピッチ抽出手段の抽出するピッチに対応する音高の
楽音を発生指示する指示手段と、 前記ピッチ抽出手段に対して、前記指示手段が楽音の発
生を指示していない時は第1の所定周波数範囲内に入る
ピッチを抽出するよう指示し、前記指示手段が楽音の発
生を指示している時は、前記第1の所定周波数範囲より
広い第2の所定周波数範囲内に入るピッチを抽出するよ
う指示し、当該指示に基づいて抽出したピッチを前記指
示手段に供給するよう制御する制御手段と、 を具備することを特徴とする発音制御装置。
(57) [Claims] Pitch extracting means for extracting the pitch of the input waveform signal; instructing means for instructing generation of a musical tone having a pitch corresponding to the pitch extracted by the pitch extracting means; When the generation is not instructed, it is instructed to extract a pitch falling within the first predetermined frequency range, and when the instructing means is instructing the generation of a musical tone, the pitch is wider than the first predetermined frequency range. And a control means for instructing to extract a pitch falling within the predetermined frequency range of 2, and controlling to supply the extracted pitch to the instructing means based on the instruction.
JP62258668A 1987-10-14 1987-10-14 Sound control device Expired - Fee Related JP2661065B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62258668A JP2661065B2 (en) 1987-10-14 1987-10-14 Sound control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62258668A JP2661065B2 (en) 1987-10-14 1987-10-14 Sound control device

Publications (2)

Publication Number Publication Date
JPH01100595A JPH01100595A (en) 1989-04-18
JP2661065B2 true JP2661065B2 (en) 1997-10-08

Family

ID=17323439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62258668A Expired - Fee Related JP2661065B2 (en) 1987-10-14 1987-10-14 Sound control device

Country Status (1)

Country Link
JP (1) JP2661065B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126089A (en) * 1984-07-16 1986-02-05 セイコーインスツルメンツ株式会社 Musical scale detector

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6126089A (en) * 1984-07-16 1986-02-05 セイコーインスツルメンツ株式会社 Musical scale detector

Also Published As

Publication number Publication date
JPH01100595A (en) 1989-04-18

Similar Documents

Publication Publication Date Title
JP2615825B2 (en) Electronic string instrument
JP2734521B2 (en) Music control device
JP2782949B2 (en) Keyboard instrument
US5048391A (en) Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal
US4924746A (en) Input apparatus of electronic device for extracting pitch from input waveform signal
US5990408A (en) Electronic stringed instrument using phase difference to control tone generation
US5147970A (en) Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal
JP2661065B2 (en) Sound control device
JP2611263B2 (en) Sound control device
JP2661066B2 (en) Sound control device
JP2722584B2 (en) Music control device
JP2591001B2 (en) Electronic string instrument
JP2775633B2 (en) Music control device
JP2605773B2 (en) Electronic string instrument
JP2591000B2 (en) Electronic string instrument
JP2661481B2 (en) Electronic musical instrument
JP2858313B2 (en) Pitch information generation device
JP2615946B2 (en) Music control device
JP2530928Y2 (en) Electronic musical instrument level display
JP6135312B2 (en) Electronic stringed instrument, musical sound control method and program
JP2958778B2 (en) Tone generator
JPH01100596A (en) Input controller for electronic musical instrument
JP2014153434A (en) Electronic stringed instrument, musical sound generation method and program
JP6361109B2 (en) Electronic stringed instrument, musical sound control method and program
JPH01100597A (en) Electronic musical instrument

Legal Events

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