JP2611263B2 - 発音制御装置 - Google Patents
発音制御装置Info
- Publication number
- JP2611263B2 JP2611263B2 JP62258672A JP25867287A JP2611263B2 JP 2611263 B2 JP2611263 B2 JP 2611263B2 JP 62258672 A JP62258672 A JP 62258672A JP 25867287 A JP25867287 A JP 25867287A JP 2611263 B2 JP2611263 B2 JP 2611263B2
- Authority
- JP
- Japan
- Prior art keywords
- peak value
- value
- pitch
- time
- 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 - Lifetime
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] この発明は、電子ギターなどの電子弦楽器を含む各種
電子楽器に係り、特に演奏者が意図しない耳ざわりな電
子音が発音されることがない発音制御装置に関する。
電子楽器に係り、特に演奏者が意図しない耳ざわりな電
子音が発音されることがない発音制御装置に関する。
[従来の技術] 従来より、自然楽器の演奏操作によって発生する波形
信号からピッチ(基本周波数)を抽出し、電子回路で構
成された音源装置を制御して、人工的に楽音等の音響を
得るようにした電子楽器が種々開発されている。
信号からピッチ(基本周波数)を抽出し、電子回路で構
成された音源装置を制御して、人工的に楽音等の音響を
得るようにした電子楽器が種々開発されている。
この種の電子楽器の一例として、電子ギターがあり、
従来音源装置への発音開始の指示として、以下のように
行なっていた。
従来音源装置への発音開始の指示として、以下のように
行なっていた。
すなわち、入力波形信号の最大(正側)ピーク値のみ
を検出し、この検出値が所定レベル以上かどうかを判断
し、それ以上のとき、音源装置に対して発音開始(トリ
ガー時)の指示を与える第1の方法がある。
を検出し、この検出値が所定レベル以上かどうかを判断
し、それ以上のとき、音源装置に対して発音開始(トリ
ガー時)の指示を与える第1の方法がある。
また、入力波形信号の最大ピーク値と最小(負側)ピ
ーク値をそれぞれ検出し、その検出値のいずれか一方が
所定レベル以上のとき、音源装置に対して発音開始(ト
リガー時)の指示を与える第2の方法がある。
ーク値をそれぞれ検出し、その検出値のいずれか一方が
所定レベル以上のとき、音源装置に対して発音開始(ト
リガー時)の指示を与える第2の方法がある。
[発明が解決しようとする問題点] 以上述べた従来の第1及び第2の方法はいずれも、そ
の片側のピーク値が所定レベル以上であることがトリガ
ー条件であるため、演奏者が意図しない電子音が発音さ
れる。例えば、第18図のような正側波形のピーク値が負
側波形のピーク値に比べて極端に大きく、しかも非対称
な入力波形信号であっても、ピーク値が所定レベル以上
であるため、発音が開始される。ところで、第18図のよ
うな入力波形信号は、演奏者が例えば不注意で弦をピッ
クや爪でひっかいたときなどに出やすく、この場合でも
電子音が発音され、大変耳ざわりであった。
の片側のピーク値が所定レベル以上であることがトリガ
ー条件であるため、演奏者が意図しない電子音が発音さ
れる。例えば、第18図のような正側波形のピーク値が負
側波形のピーク値に比べて極端に大きく、しかも非対称
な入力波形信号であっても、ピーク値が所定レベル以上
であるため、発音が開始される。ところで、第18図のよ
うな入力波形信号は、演奏者が例えば不注意で弦をピッ
クや爪でひっかいたときなどに出やすく、この場合でも
電子音が発音され、大変耳ざわりであった。
[発明の目的] 本発明は、演奏者が不注意等によって発音される異常
音が入力された場合には、耳ざわりな電子音が発音され
ることがない発音制御装置を提供することを目的とす
る。
音が入力された場合には、耳ざわりな電子音が発音され
ることがない発音制御装置を提供することを目的とす
る。
[発明の要点] 本発明は、前記目的を達成するため、入力波形信号の
ピッチを検出するピッチ検出手段と、前記入力波形信号
の正のピーク値と負のピーク値と双方を検出するピーク
検出手段と、前記ピーク検出手段が所定期間内に検出す
る前記正のピーク値と負のピーク値との双方が所定値以
上である場合に、前記ピッチ検出手段が検出するピッチ
に対応する音高の楽音の発生を指示する指示手段とを有
するようにしたことを特徴とするものである。
ピッチを検出するピッチ検出手段と、前記入力波形信号
の正のピーク値と負のピーク値と双方を検出するピーク
検出手段と、前記ピーク検出手段が所定期間内に検出す
る前記正のピーク値と負のピーク値との双方が所定値以
上である場合に、前記ピッチ検出手段が検出するピッチ
に対応する音高の楽音の発生を指示する指示手段とを有
するようにしたことを特徴とするものである。
[実施例] 以下、この発明の実施例についで図面を参照して説明
するが、ここでは本発明を電子ギターに適用した場合を
例にあげて説明するが、これに限らず他のタイプの電子
楽器であっても同様に適用できる。
するが、ここでは本発明を電子ギターに適用した場合を
例にあげて説明するが、これに限らず他のタイプの電子
楽器であっても同様に適用できる。
第1図は、全体の回路を示すブロック図であり、ピッ
チ抽出アナログ回路PAは、図示しない例えば電子ギター
ボディ上に張設された6つの弦に夫々設けられ、弦の振
動を電気信号に変換するヘキサピックアップと、このピ
ックアップからの出力からゼロクロス信号Zi(i=1〜
6)と波形信号Wi(i=1〜6)とを得るとともに、こ
れらの信号を時分割のシリアルゼロクロス信号ZCRおよ
びデジタル出力(時分割波形信号)D1とに変換する変換
手段例えば後述するアナログ−デジタル変換器A/Dとを
備えている。
チ抽出アナログ回路PAは、図示しない例えば電子ギター
ボディ上に張設された6つの弦に夫々設けられ、弦の振
動を電気信号に変換するヘキサピックアップと、このピ
ックアップからの出力からゼロクロス信号Zi(i=1〜
6)と波形信号Wi(i=1〜6)とを得るとともに、こ
れらの信号を時分割のシリアルゼロクロス信号ZCRおよ
びデジタル出力(時分割波形信号)D1とに変換する変換
手段例えば後述するアナログ−デジタル変換器A/Dとを
備えている。
ピッチ抽出デジタル回路PDは、第2図のようにピーク
検出回路PEDT、時定数変換制御回路TCC、波高値取り込
み回路PVS、ゼロクロス時刻取込回路ZTSからなり、前記
ピッチ抽出アナログ回路PAからのシリアルゼロクロス信
号ZCRとデジタル出力D1とに基づき最大ピーク点または
最小ピーク点を検出し、MAX I,MN I(I=1〜6)を発
生するとともに、ゼロクロス点通過、厳密には最大ピー
ク点、最小ピーク点直後のゼロクロス点通過でインター
ラプト(割込み)信号INTをマイコンMCPに出力し、また
ゼロクロス点の時刻情報とピーク値情報例えばMAX,MIN
及び入力波形信号の瞬時値をそれぞれマイコンMCPに出
力するものである。なお、ピーク検出回路PEDTの内部に
は、過去のピーク値を減算しながらホールドする回路を
備えている。
検出回路PEDT、時定数変換制御回路TCC、波高値取り込
み回路PVS、ゼロクロス時刻取込回路ZTSからなり、前記
ピッチ抽出アナログ回路PAからのシリアルゼロクロス信
号ZCRとデジタル出力D1とに基づき最大ピーク点または
最小ピーク点を検出し、MAX I,MN I(I=1〜6)を発
生するとともに、ゼロクロス点通過、厳密には最大ピー
ク点、最小ピーク点直後のゼロクロス点通過でインター
ラプト(割込み)信号INTをマイコンMCPに出力し、また
ゼロクロス点の時刻情報とピーク値情報例えばMAX,MIN
及び入力波形信号の瞬時値をそれぞれマイコンMCPに出
力するものである。なお、ピーク検出回路PEDTの内部に
は、過去のピーク値を減算しながらホールドする回路を
備えている。
そして、このピーク検出回路PEDTのピークホールド回
路の減衰率を変更するのが、時定数変換制御回路TCCで
あり、波形の例えば1周期の時間経過してもピークが検
知できないときは、急速に減衰するようにする。具体的
には、初期状態では速やかに波形の振動を検知すべく最
高音周期時間経過にて、急速減衰し、弦振動が検知され
ると倍音を拾わないために、当該弦の開放弦周期時間経
過にて同様に急速減衰するようにし、そして弦の振動周
期が抽出された後は、その周期にて急速減衰を行なうよ
うになる。
路の減衰率を変更するのが、時定数変換制御回路TCCで
あり、波形の例えば1周期の時間経過してもピークが検
知できないときは、急速に減衰するようにする。具体的
には、初期状態では速やかに波形の振動を検知すべく最
高音周期時間経過にて、急速減衰し、弦振動が検知され
ると倍音を拾わないために、当該弦の開放弦周期時間経
過にて同様に急速減衰するようにし、そして弦の振動周
期が抽出された後は、その周期にて急速減衰を行なうよ
うになる。
この時定数変換制御回路TCCに対するかかる周期情報
の設定は、マイコンMCPが行なう。そして、この時定数
変換制御回路TCC内部の各弦独立のカウンタと、この設
定された周期情報との一致比較を行ない、周期時期経過
で時定数チェンジ信号をピーク検出回路PEDTへ送出す
る。
の設定は、マイコンMCPが行なう。そして、この時定数
変換制御回路TCC内部の各弦独立のカウンタと、この設
定された周期情報との一致比較を行ない、周期時期経過
で時定数チェンジ信号をピーク検出回路PEDTへ送出す
る。
また、第2図における波高値取込み回路PVSは、上述
のとおり時分割的に送出されてくる波形信号(デジタル
出力)D1を、各弦毎の波高値にデマルチプレクス処理
し、ピーク検出回路PEDTからのピーク信号MAX,MINに従
って、ピーク値をホールドする。そして、マイコンMCP
がアドレスデコーダDCDを介してアクセスしてきた弦に
ついての最大ピーク値もしくは最小ピーク値をマイコン
バスへ出力する。また、この波高値取込み回路PVSから
は、各弦毎の振動の瞬時値も出力可能になっている。
のとおり時分割的に送出されてくる波形信号(デジタル
出力)D1を、各弦毎の波高値にデマルチプレクス処理
し、ピーク検出回路PEDTからのピーク信号MAX,MINに従
って、ピーク値をホールドする。そして、マイコンMCP
がアドレスデコーダDCDを介してアクセスしてきた弦に
ついての最大ピーク値もしくは最小ピーク値をマイコン
バスへ出力する。また、この波高値取込み回路PVSから
は、各弦毎の振動の瞬時値も出力可能になっている。
ゼロクロス時刻取込回路ZTSは、各弦共通のタイムベ
ースカウンタ出力を、各弦のゼロクロス時点(厳密には
最大ピーク点及び最小ピーク点通過直後のゼロクロス時
点)でラッチするようになる。そして、マイコンMCPか
らの要求により、そのラッチした時刻情報をマイコンバ
スへ送出する。
ースカウンタ出力を、各弦のゼロクロス時点(厳密には
最大ピーク点及び最小ピーク点通過直後のゼロクロス時
点)でラッチするようになる。そして、マイコンMCPか
らの要求により、そのラッチした時刻情報をマイコンバ
スへ送出する。
また、図のタイミングジェネレータTGからは、第1図
及び第2図に示す各回路の処理動作のためのタイミング
信号を出力する。
及び第2図に示す各回路の処理動作のためのタイミング
信号を出力する。
マイコンMCPには、メモリ例えばROMおよびRAMを有す
るとともに、タイマーTを有し、楽音発生装置SOBに与
える為の信号を制御するものである。楽音発生装置SOB
は音源SSとデジタル−アナログ変換器D/Aと、アンプAMP
と、スピーカSPとからなり、マイコンMCPからのノート
オン(発音)、ノートオフ(消音)、周波数を変える音
高指示信号に応じた音高の楽音を放音するものである。
なお、音源SSの入力側とマイコンMCPのデータバスBUSと
の間に、インターフェース(Musical Instrument Di
gital Interface)MIDIが設けられている。勿論、ギタ
ー本体に音源SSを設けるときは、別のインターフェース
を介してもよい。アドレスデコーダーDCDは、マイコンM
CPからのアドレス読み出し信号ARが入力されたとき、弦
番号の読込み信号RDI、時刻読込み信号RDj(j=1〜
6)とMAX,MINのピーク値及びその時点その時点の瞬時
値読込み信号RDA I(I=1〜18)をピッチ抽出デジタ
ル回路PDに出力する。
るとともに、タイマーTを有し、楽音発生装置SOBに与
える為の信号を制御するものである。楽音発生装置SOB
は音源SSとデジタル−アナログ変換器D/Aと、アンプAMP
と、スピーカSPとからなり、マイコンMCPからのノート
オン(発音)、ノートオフ(消音)、周波数を変える音
高指示信号に応じた音高の楽音を放音するものである。
なお、音源SSの入力側とマイコンMCPのデータバスBUSと
の間に、インターフェース(Musical Instrument Di
gital Interface)MIDIが設けられている。勿論、ギタ
ー本体に音源SSを設けるときは、別のインターフェース
を介してもよい。アドレスデコーダーDCDは、マイコンM
CPからのアドレス読み出し信号ARが入力されたとき、弦
番号の読込み信号RDI、時刻読込み信号RDj(j=1〜
6)とMAX,MINのピーク値及びその時点その時点の瞬時
値読込み信号RDA I(I=1〜18)をピッチ抽出デジタ
ル回路PDに出力する。
以下、マイコMCPの動作についてフローチャートや波
形を示す図面を参照して説明するが、はじめに図面の符
号について説明する。
形を示す図面を参照して説明するが、はじめに図面の符
号について説明する。
AD…第1図の瞬時値読込み信号RDA13〜18によりピッチ
抽出デジタル回路PDの入力波形を直接読込んだ入力波高
値(瞬時値) AMP(0,1)……正又は負の前回(old)の波高値 AMPL1……振幅レジスタで記憶されているリラティブ(r
elative)オフ(off)のチェックのための前回の振幅値
である。ここで、前記リラティブオフとは波高値が急激
に減衰してきたことに基づき消音することで、フレット
操作をやめて開放弦へ移ったときの消音処理に相当す
る。
抽出デジタル回路PDの入力波形を直接読込んだ入力波高
値(瞬時値) AMP(0,1)……正又は負の前回(old)の波高値 AMPL1……振幅レジスタで記憶されているリラティブ(r
elative)オフ(off)のチェックのための前回の振幅値
である。ここで、前記リラティブオフとは波高値が急激
に減衰してきたことに基づき消音することで、フレット
操作をやめて開放弦へ移ったときの消音処理に相当す
る。
AMRL2……振幅レジスタで記憶されている前記リラティ
ブオフのための前々回の振幅値で、これにはAMPL1の値
が入力される。
ブオフのための前々回の振幅値で、これにはAMPL1の値
が入力される。
CHTIM…最高音フレット(22フレット)に対応する周期 CHTIO…最高弦フレットに対応する周期 CHTRR…時定数変換レジスタで、上述の時定数変換制御
回路TCC(第2図)の内部に設けられている。
回路TCC(第2図)の内部に設けられている。
DUB…波形が続けて同一方向に来たことを示すフラグ ROFR…リラティブオフカウンタ 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…速度(ベロシテイー)を定める情報で、発音開始
時の波形の最大ピーク値にて定まる。
=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、負ピークの次の
ゼロ点のとき0) c…ワーキングレジスタレジスタCに記憶されている今
回波高値(ピーク値) e…ワーキングレジスタEに記憶されている前々回波高
値(ピーク値) h…ワーキングレジスタHに記憶されている前々回抽出
された周期データ t…ワーキングレジスタT0に記憶されている今回のゼロ
クロス時刻 tt…ワーキングレジスタTOTOに記憶されている今回の周
期情報 第3図は、マイコンMCPへインタラプトがかけられた
ときの処理を示すインタラプトル−チンであり、I1にお
いて、マイコンMCPはアドレスデコーダDCDを介し、ゼロ
クロス時刻取込回路ZTSに対し、弦番号読み込み信号RDI
を与えてインタラプト与えた弦を指定する弦番号を読み
込む。そして、その弦番号に対応する時刻情報つまりゼ
ロクロス時刻情報をゼロクロス時刻取込回路ZTSへ時刻
読込み信号RD1〜RD6のいずれか対応するものを与えて読
込む。これをtとする。しかる後、I2において、同様に
波高値取込み回路PVSへピーク値読込み信号RDA I(I=
1〜12のうちいずれか)を与えて、ピーク値を読取る。
これをcとする。
ラグ(正ピークの次のゼロ点のとき1、負ピークの次の
ゼロ点のとき0) c…ワーキングレジスタレジスタCに記憶されている今
回波高値(ピーク値) e…ワーキングレジスタEに記憶されている前々回波高
値(ピーク値) h…ワーキングレジスタHに記憶されている前々回抽出
された周期データ t…ワーキングレジスタT0に記憶されている今回のゼロ
クロス時刻 tt…ワーキングレジスタTOTOに記憶されている今回の周
期情報 第3図は、マイコンMCPへインタラプトがかけられた
ときの処理を示すインタラプトル−チンであり、I1にお
いて、マイコンMCPはアドレスデコーダDCDを介し、ゼロ
クロス時刻取込回路ZTSに対し、弦番号読み込み信号RDI
を与えてインタラプト与えた弦を指定する弦番号を読み
込む。そして、その弦番号に対応する時刻情報つまりゼ
ロクロス時刻情報をゼロクロス時刻取込回路ZTSへ時刻
読込み信号RD1〜RD6のいずれか対応するものを与えて読
込む。これをtとする。しかる後、I2において、同様に
波高値取込み回路PVSへピーク値読込み信号RDA I(I=
1〜12のうちいずれか)を与えて、ピーク値を読取る。
これをcとする。
続くI3において、当該ピーク値は正、負のいずれかの
ピークであるのかを示す情報bを、ゼロクロス時刻取込
回路ZTSより得る。そして、I4にて、このようにして得
たt,c,bの値をマイコンMCP内のバッファのレジスタT0、
C、Bにセットする。このバッファには、割込み処理が
なされる都度、このような時刻情報、ピーク値情報、ピ
ークの種類を示す情報がワンセットとして書込まれてい
き、メインルーチンで、各弦毎にかかる情報に対する処
理がなされる。
ピークであるのかを示す情報bを、ゼロクロス時刻取込
回路ZTSより得る。そして、I4にて、このようにして得
たt,c,bの値をマイコンMCP内のバッファのレジスタT0、
C、Bにセットする。このバッファには、割込み処理が
なされる都度、このような時刻情報、ピーク値情報、ピ
ークの種類を示す情報がワンセットとして書込まれてい
き、メインルーチンで、各弦毎にかかる情報に対する処
理がなされる。
第4図は、メインルーチンを示すフローチャートであ
る。パワーオンすることによりM1において、各種レジス
タやフラグやイニシャライズされ、レジスタSTEPが0と
される。M2で上述したバッファが空かどうかが判断さ
れ、ノー(以下、Nと称す)の場合にはM3に進み、バッ
ファよりレジスタB、C,T0の内容が読まれる。これによ
り、M4において、レジスタSTEPはいくつか判断され、M5
ではSTEP0,M6ではSTEP1,M7ではSTEP2,M8ではSTEP3,M9で
はSTEP4の処理が順次行なわれる。
る。パワーオンすることによりM1において、各種レジス
タやフラグやイニシャライズされ、レジスタSTEPが0と
される。M2で上述したバッファが空かどうかが判断さ
れ、ノー(以下、Nと称す)の場合にはM3に進み、バッ
ファよりレジスタB、C,T0の内容が読まれる。これによ
り、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に戻る。
称する)の場合、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へ戻ることで、初期設定がなされることにな
る。
オフレベル以下の入力波高値ADがオフタイムOFTIMに相
当する時間続くと、ノートオフの指示を音源SSに対しマ
イコンMCPは送出する。なお、ステップM15において、通
常の状態ではYの判断がなされるが、後述するような処
理によって、楽音の発生を指示していない場合でもレジ
スタSTEPは0以外の値をとっていることがあり、(例え
ばノイズの入力による。)そのようなときは、M14、M15
の処理後M2へ戻ることで、初期設定がなされることにな
る。
なお、第4図では、一つの弦についての処理しか示し
ていないが、この図に示した如き処理を弦の数に相当す
る6回分、多重化してマイコンMCPは実行することにな
る。勿論、プロセッサを複数個設けて、別個独立して同
等の処理を実行してもよい。
ていないが、この図に示した如き処理を弦の数に相当す
る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)]かどうか、すなわち今回波
高値と前回波高値の差が所定値以上か否かが判断され
る。
0)のときのフローチャートであり、S01で絶対トリガレ
ベル(ノートオンしきい値)TRLAB(b)<今回波高値
cかどうかが判断され、Yの場合にはS02に進み共振除
去がチェックされる。なお、このトリガーレベルは、正
と負との極性のピーク夫々についてのチェックを行なう
ようになっている。このTRLAB(0)とTRLAB(1)と
は、実験などによって適切な値とすることになる。理想
的なシステムではTRLAB(0)とTRLAB(1)とは同じで
よい。S02では、共振除去しきい値TRLRS<[今回波高値
c−前回波高値AMP(b)]かどうか、すなわち今回波
高値と前回波高値の差が所定値以上か否かが判断され
る。
一つの弦をピッキングすることによって他の弦が共振
を起こす場合、当該他の弦については、振動のレベルが
徐々に大きくなり、その結果前回と今回とのピーク値の
変化は微小なものとなって、その差は共振除去しきい値
TRLRSを越えることはない。ところが、通常のピッキン
グでは、波形が急激に立上る(あるいは立ち下がる)こ
とになり、前記ピークの差は共振除去しきい値TRLRSを
越える。
を起こす場合、当該他の弦については、振動のレベルが
徐々に大きくなり、その結果前回と今回とのピーク値の
変化は微小なものとなって、その差は共振除去しきい値
TRLRSを越えることはない。ところが、通常のピッキン
グでは、波形が急激に立上る(あるいは立ち下がる)こ
とになり、前記ピークの差は共振除去しきい値TRLRSを
越える。
いま、このS02で、Yの場合つまり共振の場合でない
とみなした場合には、S03において次の処理が行なわれ
る。すなわち、今回正負フラグbがフラグMTに書込ま
れ、レジスタSTEPに1が書込まれ、さらに今回のゼロク
ロス時刻tが前回のゼロクロス時刻データTFN(b)と
して設定される。そして、S04では、その他フラグ類が
イニシャライズされ、S05に進む。S05では、今回波高値
cが前回の波高値AMP(b)としてセットされ、しかる
後第4図のメインフローヘリターンする。
とみなした場合には、S03において次の処理が行なわれ
る。すなわち、今回正負フラグbがフラグMTに書込ま
れ、レジスタSTEPに1が書込まれ、さらに今回のゼロク
ロス時刻tが前回のゼロクロス時刻データTFN(b)と
して設定される。そして、S04では、その他フラグ類が
イニシャライズされ、S05に進む。S05では、今回波高値
cが前回の波高値AMP(b)としてセットされ、しかる
後第4図のメインフローヘリターンする。
第5図において、Aはリラティブオン(再発音開始)
のエントリであり、後述するSTEP4のフローからこのS06
へジャンプしてくる。そして、S06では今まで出力して
いる楽音を一度消去し、再発音開始のためにS03へ進行
する。この再発音開始のための処理は、通常の発音開始
のときと同様であり、以下に詳述するとおりとなる。
のエントリであり、後述するSTEP4のフローからこのS06
へジャンプしてくる。そして、S06では今まで出力して
いる楽音を一度消去し、再発音開始のためにS03へ進行
する。この再発音開始のための処理は、通常の発音開始
のときと同様であり、以下に詳述するとおりとなる。
そして、またS01でNの場合と、S02でNの場合(今回
波高値c−前回波高値AMP(b)が所定値以上ない場
合)には、S05に進む。従って、発音開始のための処理
は進まないことになる。
波高値c−前回波高値AMP(b)が所定値以上ない場
合)には、S05に進む。従って、発音開始のための処理
は進まないことになる。
以上述べたSTEP0(第11図のSTEP0→1の間)では、フ
ラグMTにBレジスタの内容(b=1)が書込まれ、レジ
スタT0の内容(t)が前回ゼロクロス時刻データTFN
(1)に書込まれ、レジスタCに波高値(c)が前回の
波高値AMP(1)に書込まれる。
ラグMTにBレジスタの内容(b=1)が書込まれ、レジ
スタT0の内容(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の場合及
び、S15の処理の終了時にはメインフロー(第4図)へ
リターンする。
トの詳細を示すものであり、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の場合及
び、S15の処理の終了時にはメインフロー(第4図)へ
リターンする。
以上述べたSTEP1(第11図のSTEP1→2の間)では、今
回正負フラグb(=0)とフラグMT=1が不一致という
ことで、今回のゼロクロス時刻tを前回のゼロクロス時
刻データTFN(0)としてセットし、さらに今回波高値
cを前回の波高値AMP(0)として書込む。
回正負フラグ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において、今回正負フラ
グ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)する。
同一方向の入力波形がきたということを意味するフラグ
を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)がセットされる。
回正負フラグ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に移る。
が、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)が書替
えられる。
ートであり、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)が書
替ええられる。
cが大であれば、ベロシティVELは今回波高値cが入力
される。もし逆ならば、このベロシティVELは変化しな
い。次に今回正負フラグbにフラグMTが書替えられ、こ
れによりピッチ抽出側が逆にされる。これは、後述する
STEP4からフラグMTの意味が変り、ピッチ変更側を意味
している。そして、S34で[t−TFN(b)→TP(b)]
なる周期計算が行なわれる。また、今回のゼロクロス時
刻tとして前回のゼロクロス時刻データTFN(b)が書
替ええられる。
次に、S35において、X=0かどうかを判断し、Yの
場合にはS36に進み、周波数上限THLIM<前回の周期デー
タTP(b)かどうか、つまりピッチ抽出上限チェックを
行ない、その結果、最高音の周期より大きな周期をもて
ば、許容範囲にあるということでYとなり、S37に進
む。S37では、トリガー時の周波数下限TTLIM>今回の周
期データTP(b)かどうか、つまりピッチ抽出下限チェ
ックを行ない、最低音の周期より小の周期をもてば許容
範囲にあり、Yの判断をしてS38に進む。S37のピッチ抽
出下限は、後述するSTEP4のピッチ抽出下限とは定数が
異なる。
場合にはS36に進み、周波数上限THLIM<前回の周期デー
タTP(b)かどうか、つまりピッチ抽出上限チェックを
行ない、その結果、最高音の周期より大きな周期をもて
ば、許容範囲にあるということでYとなり、S37に進
む。S37では、トリガー時の周波数下限TTLIM>今回の周
期データTP(b)かどうか、つまりピッチ抽出下限チェ
ックを行ない、最低音の周期より小の周期をもてば許容
範囲にあり、Yの判断をしてS38に進む。S37のピッチ抽
出下限は、後述するSTEP4のピッチ抽出下限とは定数が
異なる。
具体的には、周波数上限THLIMは、最高音フレットの
2〜3半音上の音高周期に相当し、トリガー時の周波数
下限TTLIMは、開放弦の開放弦フレットの5半音下の音
高周期に相当するものとする。
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に対し発音開始の指示
をする。
た周期データ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.)する。
出の場合)は、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となる。
合の具体例を示す図であり、1/8b1<b0のときと、1/8a2
<a1のときのジャッジではいずれもその条件を満足せ
ず、X=1となる。
すなわち、第17図の最初の3つの波形のピーク(a0,b
0,a1)は、ノイズによるもので、これらのノイズの周期
を検出して発音開始を指示すると、全くおかしな音が発
生してしまう。そこで、S31では、波高値が大きく変わ
ったことを検知して、X=1として、S35でNの判断を
するようにする。そして、S31にて波形が正常な変化を
することが検知されてから、発音開始を指示するように
する。
0,a1)は、ノイズによるもので、これらのノイズの周期
を検出して発音開始を指示すると、全くおかしな音が発
生してしまう。そこで、S31では、波高値が大きく変わ
ったことを検知して、X=1として、S35でNの判断を
するようにする。そして、S31にて波形が正常な変化を
することが検知されてから、発音開始を指示するように
する。
第17図の場合TP≒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)、TFP←TFN
(1)、TF←t、HNC←0、ONF←2、TTU←0(MIN)、
TTW←MAX、AMRL1←0、ノートオン条件TP(0)≒TP
(1)についての処理がなされる。そして、適切な波形
入力に応答してそのSTEP3において、抽出されたピッチ
に従った音高の楽音が発生開始されることになる。第11
図から判明するように、周期検出を開始してから、1.5
周期程度の時間経過で発音指示が音源SSに対しなされる
ことになる。勿論、諸条件を満足しなければ、更におく
れることは上述したとおりである。
=1≠b、AMP(0)←c、max[VEL、c(のいずれか
の大きい方)]→VEL、MT←b=0、TP(0)←[t−T
FN(0)]、TFN(0)←t、TTP←TP(0)、TFP←TFN
(1)、TF←t、HNC←0、ONF←2、TTU←0(MIN)、
TTW←MAX、AMRL1←0、ノートオン条件TP(0)≒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に進
む。
ートであり、この場合ピッチ抽出のみを行なうルート
、実際にピッチ変更を行なうルートがある。先ず、
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へ進む。
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)に入
力され、リラティブオフ処理のために前回の振幅値AMRL
1が前々回の振幅値AMRL2に入力される。なお、いまの場
合はAMRL1の内容は0である(STEP3のS30参照)。さら
にS64において、前回の波高値AMP()と今回波高値c
のうちいずれか大きい値が前回振幅値AMRL1に入力され
る。つまり、周期の中で2つある正,負のピーク値につ
いて大きい値のピーク値が振幅値AMRL1にセットされ
る。そして、S65で波形ナンバーカウンタHNC>8かどう
かが判断され、ここで波形ナンバーカウンタ(ピッチ変
更側でないゼロクロスカウンター)HNCが+1され、カ
ウントアップされる。
てきているか(ダブリであるか)否かチェックするため
に、レジスタRIV=1かどうかが判断され、Yの場合に
はS68に進み、また、Nの場合(ダブリでない場合)に
はS64に進み、ここで以下の処理が行なわれる。すなわ
ち、S64では今回波高値cが前回の波高値AMP(b)に入
力され、リラティブオフ処理のために前回の振幅値AMRL
1が前々回の振幅値AMRL2に入力される。なお、いまの場
合はAMRL1の内容は0である(STEP3のS30参照)。さら
にS64において、前回の波高値AMP()と今回波高値c
のうちいずれか大きい値が前回振幅値AMRL1に入力され
る。つまり、周期の中で2つある正,負のピーク値につ
いて大きい値のピーク値が振幅値AMRL1にセットされ
る。そして、S65で波形ナンバーカウンタHNC>8かどう
かが判断され、ここで波形ナンバーカウンタ(ピッチ変
更側でないゼロクロスカウンター)HNCが+1され、カ
ウントアップされる。
従って、波形ナンバーカウンタHNCは、上限が9とな
る。そして、S65もしくはS66の処理の後S67へ進行す
る。S67では、レジスタRIVを1とし、今回のゼロクロス
時刻から時刻記憶レジスタTFRの内容を引算して、周期
レジスタTTRへ入力する。この周期レジスタTTRは、第11
図に示すような周期情報を示すようになる。そして、今
回のゼロクロス時刻tは、時刻記憶レジスタTFRへセー
ブされ、この後、メインルーチンにリターン(RET)す
る。
る。そして、S65もしくはS66の処理の後S67へ進行す
る。S67では、レジスタRIVを1とし、今回のゼロクロス
時刻から時刻記憶レジスタTFRの内容を引算して、周期
レジスタTTRへ入力する。この周期レジスタTTRは、第11
図に示すような周期情報を示すようになる。そして、今
回のゼロクロス時刻tは、時刻記憶レジスタTFRへセー
ブされ、この後、メインルーチンにリターン(RET)す
る。
S63でYの場合は、S68に進み今回波高値c>前回の波
高値AMP(b)かどうかが判断され、Yの場合はS69に進
む。S69では、今回波高値cに前回の波高値AMP(b)が
書替えられ、S70に進む。S70では今回波高値c>前回の
振幅値AMRL1がとうかが判断され、Yの場合にはS71に進
み、ここで今回波高値cが前回の振幅値AMRL1に入力さ
れる。
高値AMP(b)かどうかが判断され、Yの場合はS69に進
む。S69では、今回波高値cに前回の波高値AMP(b)が
書替えられ、S70に進む。S70では今回波高値c>前回の
振幅値AMRL1がとうかが判断され、Yの場合にはS71に進
み、ここで今回波高値cが前回の振幅値AMRL1に入力さ
れる。
もし、S68でNの判断がなされるとすぐにメインルー
チンへリターンする。従って、新しい入力波形のピーク
が大である場合についてのみ、新しい波形の振幅値が登
録される。(その場合は、倍音のピークをひろっていな
いと考えられるので。) また、S70でNのとき、S71の処理の終了のときには、
同様にメインルーチンへリターンする。
チンへリターンする。従って、新しい入力波形のピーク
が大である場合についてのみ、新しい波形の振幅値が登
録される。(その場合は、倍音のピークをひろっていな
いと考えられるので。) また、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のところ)から今回のゼロクロス点までの時刻情報
の差つまり、周期情報が求まったことになる。そして、
メインルーチンへ戻り、次のゼロクロスインターラプト
を待つ。
下のような処理がなされる。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へ進
む。
行なう。いま、波形ナンバーカウンタ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に進む。
の場合には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半音上の音
高周期に相当する)と同一のものである。
ガー時(発音開始時)周波数の許容範囲の上限(従って
周期として最小で、最高音フレットの2〜3半音上の音
高周期に相当する)と同一のものである。
次に、S50では次の処理が行なわれる。すなわち、レ
ジスタRIVを0にし、今回のゼロクロス時刻tが前回の
ゼロクロス時刻データTFとして入力され、また前回の波
高値AMP(b)が前々回波高値eに入力され、さらに今
回波高値cが前回の波高値AMP(b)に入力される。
ジスタRIVを0にし、今回のゼロクロス時刻tが前回の
ゼロクロス時刻データTFとして入力され、また前回の波
高値AMP(b)が前々回波高値eに入力され、さらに今
回波高値cが前回の波高値AMP(b)に入力される。
そして、S50の処理の後S51に進み、S51では、周波数
下限TLLIM>今回の周期情報ttかどうかが判断され、Y
の場合すなわち今回の周期がノートオン中のピッチ抽出
音域下限以下になった場合にはS52に進む。
下限TLLIM>今回の周期情報ttかどうかが判断され、Y
の場合すなわち今回の周期がノートオン中のピッチ抽出
音域下限以下になった場合にはS52に進む。
この場合、周波数下限TLLIMは、例えば、開放弦音階
の1オクターブ下にセットされる。つまり、STEP3の周
波数下限TTLIM(S37参照)に比較して、許容範囲を広く
している。このようにすることで、トレモロアームの操
作などによる周波数変更に対応し得るようになる。
の1オクターブ下にセットされる。つまり、STEP3の周
波数下限TTLIM(S37参照)に比較して、許容範囲を広く
している。このようにすることで、トレモロアームの操
作などによる周波数変更に対応し得るようになる。
従って、周波数の上限、下限について許容範囲に入る
場合についてのみS52まで進み、そうでない場合はS49、
S51よりメインルーチンへリターンする。
場合についてのみS52まで進み、そうでない場合はS49、
S51よりメインルーチンへリターンする。
次に、S52では周期データTTPが前々回抽出された周期
データhに入力され、また、今回の周期情報ttが前回抽
出された周期データTTPに入力される。そして、S53で今
回波高値cがベロシティVELに書込まれ、S54に進む。S5
4では、ノーチェンジレベルNCHLV>(前々回波高値e−
今回波高値c)かどうかの判断が行なわれ、Yの場合に
はS55に進む。
データhに入力され、また、今回の周期情報ttが前回抽
出された周期データTTPに入力される。そして、S53で今
回波高値cがベロシティVELに書込まれ、S54に進む。S5
4では、ノーチェンジレベルNCHLV>(前々回波高値e−
今回波高値c)かどうかの判断が行なわれ、Yの場合に
はS55に進む。
すなわち、前回の同極性の波高値(e=AMP(b))
と今回の波高値cとが大きく変化している場合は、その
差がNCHLVを越えることになり、そのようなときに、抽
出された周期情報に基づきピッチ変更を行なうと、不自
然な音高変化を呈することになる可能性が高い。そこ
で、S54でのNの判断されると、S55以降の処理をするこ
となく、メインルーチンへリターンする。
と今回の波高値cとが大きく変化している場合は、その
差がNCHLVを越えることになり、そのようなときに、抽
出された周期情報に基づきピッチ変更を行なうと、不自
然な音高変化を呈することになる可能性が高い。そこ
で、S54でのNの判断されると、S55以降の処理をするこ
となく、メインルーチンへリターンする。
次に、S54でYの場合、リラティブオフカウンタFOFR
=0か否かが判断されるる。後述するリラティブオフ処
理を行なっているときは、リラティブオフカウンタFOFR
は0でなくなっており、そのような場合もピッチ変更
(S61を参照)の処理を行なうことなく、S55でNの判断
をしてメインルーチンへリターンする。そして、S55に
て、Yの判断をしたときは、S56、S57へと順次進む。
=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に
進む。
の周期情報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として、周期情
報に依存してその値が変わるようになっている。勿論、
これは固定の値としてもよいが、本実施例採用技術の方
が良好な結果を得ることができる。
参照)が、前回の周期データh(S52参照)の値と略一
致するか否かを判断し、S57では、今回の周期情報ttの
値が、それに重なる周期TTRとほぼ一致するか否かを判
断する。なお、その限界範囲は、2-7xttとして、周期情
報に依存してその値が変わるようになっている。勿論、
これは固定の値としてもよいが、本実施例採用技術の方
が良好な結果を得ることができる。
次のS58では、今回の周期情報tt>定数TTUかどうかが
判断され、YならばS59へ進み、ここで今回の周期情報t
t<定数TTWかどうかが判断され、YならばS60へ進む。
なお、S58,S59は急激なピッチ変更を認めないための判
断である。
判断され、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オクターブ低温の周期情報)がセットされる。従っ
て、急激にオクターブアップする(これは、フレットを
離してミュート操作したときなどに生ずる)ことやオク
ターブダウンすること(これは波形のピークをとり逃し
たときなどに起る)があったときは、ピッチ変更をする
と、不自然となるので、ピッチ変更をしないようにブラ
ンチする。
れ、定数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に書替えられる。
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がセットすることをいう。これ
は、既に説明したとおりである。
されたときに限り、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≒t
t、TTU<tt<TTW、AMP(0)−c<NCHLVの3条件
の満足で、ttに従ったピッチ変更を行なう。しかる後、
TTU←(17/32)×tt、TTW←(31/16)×ttがなされる。
ンする。従って、以上述べたようにルートは、第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≒t
t、TTU<tt<TTW、AMP(0)−c<NCHLVの3条件
の満足で、ttに従ったピッチ変更を行なう。しかる後、
TTU←(17/32)×tt、TTW←(31/16)×ttがなされる。
従って、ルートにて、実際の音源SSに対するピッチ
変更が行なわれ、続くゼロクロスインタラプトでルート
の処理、同様に、続くゼロクロスインタラプトで.ル
ートの処理が行なわれる。このようにして、ルート
では、単に周期を抽出(S67を参照)し、ルートでは
実際のピッチ変更(S61参照)、時定数チェンジ処理(S
62参照)が行なわれることになる。
変更が行なわれ、続くゼロクロスインタラプトでルート
の処理、同様に、続くゼロクロスインタラプトで.ル
ートの処理が行なわれる。このようにして、ルート
では、単に周期を抽出(S67を参照)し、ルートでは
実際のピッチ変更(S61参照)、時定数チェンジ処理(S
62参照)が行なわれることになる。
なお、STEP4におけるS40において、ルートのS66で
波形ナンバーカウンタHNCが3を越えるように、カウン
トアップされた後は、Yの判断がなされ、次にS41へ行
き、リラティブオンの条件を検出する。これは、c−AM
P(b)>TRLRLであり、前回の振幅値AMRL1に比べて今
回の振幅値がしきい値TRLRLを越えて増大したとき、つ
まり、これは弦操作後に同じ弦を再度ピッキングしたと
き(トレモロ奏法などによる)にこのようなことがお
き、この場合はS41へリラティブオンの処理をすべくS41
からS78へ進み、時定数変換制御回路TCCの時定数チェン
ジレジスタCHTRRへ最高音フレット(例えば22フレッ
ト)の周期CHTIMをセットする、しかる後、第5図のS06
へ進み、当該発音中の楽音をノートオフした後、再発音
開始する。
波形ナンバーカウンタ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でないので、リラティブオフ処理に
入る直前ではピッチ変更をおこなうことなくメインルー
チンへ戻る。
を説明する。つまり、フレット操作している状態から、
開放弦状態へ移行すると、波形の振幅レベルは急激に落
ちてきて、前々回の波高行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へいく。
は、FOFRの値が3となったとき(ROFCTは2である)、S
74からS75へいく。
ただし、S46のジャッジでYの判断が一度でもある
と、S46からS47へ進み、FOFRをリセットするようにな
る。従って、ROFCTで指定される回数だけ続けてS46の条
件を満足しなければ、リラティブオフの処理はなされな
い。なおROFCTの値は、音高が高い弦について大きな値
としておけば、略一定の時間経過で、いずれの弦につい
てもリラティブオフ処理ができる。
と、S46からS47へ進み、FOFRをリセットするようにな
る。従って、ROFCTで指定される回数だけ続けてS46の条
件を満足しなければ、リラティブオフの処理はなされな
い。なおROFCTの値は、音高が高い弦について大きな値
としておけば、略一定の時間経過で、いずれの弦につい
てもリラティブオフ処理ができる。
そして、S74からS76へ行くと、リラティブオフカウン
タFOFRをリセットし、レジスタSTEPを5とし、S77へ進
んで音源SSに対しノートオフを指示する。このSTEPが5
の状態では、ピッチ抽出処理をSTEP4の時と同様に実行
するが、S60からS61を介することなくS62へ進むので、
音源SSに対しては、ピッチ変更はされない。ただし、S6
2において抽出した周期に従って時定数チェンジ処理を
行なう。
タFOFRをリセットし、レジスタSTEPを5とし、S77へ進
んで音源SSに対しノートオフを指示する。このSTEPが5
の状態では、ピッチ抽出処理をSTEP4の時と同様に実行
するが、S60からS61を介することなくS62へ進むので、
音源SSに対しては、ピッチ変更はされない。ただし、S6
2において抽出した周期に従って時定数チェンジ処理を
行なう。
そして、STEPが5の状態では、リラティブオンの処理
を受付けるが(S41、S78)、それ以外の場合では、第4
図のメインフローの中で、振動レベルが減少してきたこ
とが検知されることによりM14でSTEPが0となり、初期
状態にもどる。
を受付けるが(S41、S78)、それ以外の場合では、第4
図のメインフローの中で、振動レベルが減少してきたこ
とが検知されることによりM14でSTEPが0となり、初期
状態にもどる。
なお、S46で使用するAMRL1、AMRL2はS64で作られてお
り、1周期の中でレベルが大な方のピーク(最大ピーク
と最小ピークとの一方)が、この値とされ、第13図の例
では、最大ピークaKが最小ピークbK−1より必ず大であ
る場合であって、an+1とan+2、an+2とan+3、an+3とan+4
の差がいずれも所定値を越えるようになっている。
り、1周期の中でレベルが大な方のピーク(最大ピーク
と最小ピークとの一方)が、この値とされ、第13図の例
では、最大ピークaKが最小ピークbK−1より必ず大であ
る場合であって、an+1とan+2、an+2とan+3、an+3とan+4
の差がいずれも所定値を越えるようになっている。
また、このときとルートの処理においては、最小ピ
ークbn+1、bn+2、bn+3が極端に減少してきているので、
S54でNの判断が成されて、メインルーチンへリターン
し、ピッチ変更処理はなされない。
ークbn+1、bn+2、bn+3が極端に減少してきているので、
S54でNの判断が成されて、メインルーチンへリターン
し、ピッチ変更処理はなされない。
次に、ピッチ抽出しているなかで、オクターブ関係に
ある倍音、つまりオクターブ高い音やオクターブ低い音
が続けて検出されたときの処理について説明する。
ある倍音、つまりオクターブ高い音やオクターブ低い音
が続けて検出されたときの処理について説明する。
既に説明したように、S58ではttがTTUを越えなかった
とき、つまり、前回抽出した周期の17/32倍した値TTUよ
り小になったとき、S76へ進む。つまり、オクターブ高
い音が抽出されたときは、指定していたフレットから指
を離してミュート操作をした場合とみなし、オクターブ
高い音を出力することなく、S58からS76へ行き、リラテ
ィブオフ時同様S76、S77の処理によって当該音の発音を
停止する。
とき、つまり、前回抽出した周期の17/32倍した値TTUよ
り小になったとき、S76へ進む。つまり、オクターブ高
い音が抽出されたときは、指定していたフレットから指
を離してミュート操作をした場合とみなし、オクターブ
高い音を出力することなく、S58からS76へ行き、リラテ
ィブオフ時同様S76、S77の処理によって当該音の発音を
停止する。
また、S59では、ttがTTWを越えたとき、つまり前回抽
出した周期の31/16倍した値TTWより大となったとき、S6
0へ進むことなく、メインルーチンへリターンする。
出した周期の31/16倍した値TTWより大となったとき、S6
0へ進むことなく、メインルーチンへリターンする。
この状態は第14図に示されている。通常ノーフオフ近
辺の非常に波形が小さい場合、他のピッキングによって
ヘキサピックアップのクロストオークやボディの共振に
よって波形が乗ってくる。すると、例えば、第14図のよ
うな入力波形となり、1オクターブ下の入力波形が続け
て検出されてしまうことがある。
辺の非常に波形が小さい場合、他のピッキングによって
ヘキサピックアップのクロストオークやボディの共振に
よって波形が乗ってくる。すると、例えば、第14図のよ
うな入力波形となり、1オクターブ下の入力波形が続け
て検出されてしまうことがある。
このような場合、何等処理を施さないと、急にオクタ
ーブ下の音を出力してしまい、極めて不自然となる。そ
のために、S57、S56でTan+2≒Tan+3≒Tbn+2が検出され
ても、Tan+3>Tan+1×(31/16)となるので、ピッチ変
更することなく、S59からメインルーチンへリターンす
る。
ーブ下の音を出力してしまい、極めて不自然となる。そ
のために、S57、S56でTan+2≒Tan+3≒Tbn+2が検出され
ても、Tan+3>Tan+1×(31/16)となるので、ピッチ変
更することなく、S59からメインルーチンへリターンす
る。
次に、ダブリの波形が抽出される場合つまり、同じ極
性のゼロクロス点が続けて到来する場合について説明す
る。第15図は、MT=1の場合の例を示しており、基本波
周期と倍音成分の周期が非整数倍の関係にあるので、倍
音の位相がずれて行き、同じ極性のゼロクロスを検出を
してしまうことになり、そのために誤ったピッチ変更を
しないようにしないといけない。
性のゼロクロス点が続けて到来する場合について説明す
る。第15図は、MT=1の場合の例を示しており、基本波
周期と倍音成分の周期が非整数倍の関係にあるので、倍
音の位相がずれて行き、同じ極性のゼロクロスを検出を
してしまうことになり、そのために誤ったピッチ変更を
しないようにしないといけない。
そこで、図のダブリと書いてあるゼロクロス時のSTEP
4の処理では、S42からS43へ行き、S43ではYの判断をし
てS72へ行く。ここで(an+3)と(an+2)の大きさが比
較され、もし(an+3)が(an+2)より大であれば、S72
でYの判断をし、AMP(1)に、(an+3)の値をセット
し、もし逆の場合は何等変更処理をしない。
4の処理では、S42からS43へ行き、S43ではYの判断をし
てS72へ行く。ここで(an+3)と(an+2)の大きさが比
較され、もし(an+3)が(an+2)より大であれば、S72
でYの判断をし、AMP(1)に、(an+3)の値をセット
し、もし逆の場合は何等変更処理をしない。
ところで、このダブリの場合抽出している時刻データ
は何等使用しないので、周期情報Tan+3は何等変わらな
い。また、当然周期データに基づくピッチ変更は行なわ
れない。
は何等使用しないので、周期情報Tan+3は何等変わらな
い。また、当然周期データに基づくピッチ変更は行なわ
れない。
同様に、第16図は波形のダブリの場合の例で、MT=0
の状態を示している。このときも、図中にダブリと示し
ているところで、ダブリの状態が生じている。このとき
は、S42からS63へ行き、Yの判断をしてS68へ行く。S68
では、いまの場合(an+2)と(an+3)との比較をして、
(an+3)が(an+2)より大なときに限りS69へ行き、AMP
(1)を書変える。この場合は、更に前回の新幅値AMRL
1と今回の振幅情報(波高値c)の比較をS70で行なっ
て、もしYならばS71へ進み、今回の振幅情報cを前回
の振幅値AMRL1へセットする。
の状態を示している。このときも、図中にダブリと示し
ているところで、ダブリの状態が生じている。このとき
は、S42からS63へ行き、Yの判断をしてS68へ行く。S68
では、いまの場合(an+2)と(an+3)との比較をして、
(an+3)が(an+2)より大なときに限りS69へ行き、AMP
(1)を書変える。この場合は、更に前回の新幅値AMRL
1と今回の振幅情報(波高値c)の比較をS70で行なっ
て、もしYならばS71へ進み、今回の振幅情報cを前回
の振幅値AMRL1へセットする。
このようにして、倍音の影響で、波形がダブったとき
にも、S56、S57を満足しない限りピッチ変更処理はなさ
れないことになる。
にも、S56、S57を満足しない限りピッチ変更処理はなさ
れないことになる。
以上述べた実施例によれば、入力波形信号の最大ピー
ク値と最小ピーク値が共に所定レベル以上でない場合に
は、発音開始の指示を音源装置SOBに与えないようにし
たので、演奏者の不注意で弦をピックや爪でひっかいた
とき等に生ずる異常音で生じた場合には、電子音が発音
されることがなく、従って、演奏者の意図しない耳ざわ
りな音が発音されることがない。
ク値と最小ピーク値が共に所定レベル以上でない場合に
は、発音開始の指示を音源装置SOBに与えないようにし
たので、演奏者の不注意で弦をピックや爪でひっかいた
とき等に生ずる異常音で生じた場合には、電子音が発音
されることがなく、従って、演奏者の意図しない耳ざわ
りな音が発音されることがない。
すなわち、第5図及び第6図において、STEP=0の無
音状態におけるS01(本発明の判別手段に相当)で、第
2図のピーク検出回路PEDT(本発明のピーク値検出手段
に対応)からの今回波高値(ピーク値)cが、所定トリ
ガーレベルTRLAB(b)(この場合、最大ピーク値の時
b−1、また最小ピーク値の時b=0である)を越えれ
ば、Yとなり、S02に進む。ここで、(今回波高値c−
前回の波高値AMP(b))>リラティブオンのしきい値T
RLRLかどうかすなわち、共振除去チェックがパス(Yの
場合)すれば、STEP=1になる。さらに、第6図のS12
(本発明の判別手段に相当)では、先程と反対側のピー
クがきたとき、そのピーク値cをトリガーレベルTRLAB
(b)と比較し、このトリガーレベルTRLAB(b)より
今回波高値cが大きい場合には、S13に進むことから、S
TEP=2となる。
音状態におけるS01(本発明の判別手段に相当)で、第
2図のピーク検出回路PEDT(本発明のピーク値検出手段
に対応)からの今回波高値(ピーク値)cが、所定トリ
ガーレベルTRLAB(b)(この場合、最大ピーク値の時
b−1、また最小ピーク値の時b=0である)を越えれ
ば、Yとなり、S02に進む。ここで、(今回波高値c−
前回の波高値AMP(b))>リラティブオンのしきい値T
RLRLかどうかすなわち、共振除去チェックがパス(Yの
場合)すれば、STEP=1になる。さらに、第6図のS12
(本発明の判別手段に相当)では、先程と反対側のピー
クがきたとき、そのピーク値cをトリガーレベルTRLAB
(b)と比較し、このトリガーレベルTRLAB(b)より
今回波高値cが大きい場合には、S13に進むことから、S
TEP=2となる。
発音開始に到るまでは、前述したようにいくつかの条
件にパスしなければならないが、第5図のS01および第
6図のS12の両方を満足すなわち、ピーク値cが所定レ
ベルTRLABを越えなければ、STEP=2まで進まないの
で、第18図のような入力波形信号がきても発音されな
い。また、第18図のような入力波形信号の場合には、一
旦STEP=1になるが、入力波形信号が所定レベルTRLAB
より小さくなれば、第4図のメインルーチンでSTEP=0
に戻る。このようなことから、演奏者の不注意などの異
常な入力波形信号が入力されても、電子音が発音される
ことがないため、耳ざわりになることもない。
件にパスしなければならないが、第5図のS01および第
6図のS12の両方を満足すなわち、ピーク値cが所定レ
ベルTRLABを越えなければ、STEP=2まで進まないの
で、第18図のような入力波形信号がきても発音されな
い。また、第18図のような入力波形信号の場合には、一
旦STEP=1になるが、入力波形信号が所定レベルTRLAB
より小さくなれば、第4図のメインルーチンでSTEP=0
に戻る。このようなことから、演奏者の不注意などの異
常な入力波形信号が入力されても、電子音が発音される
ことがないため、耳ざわりになることもない。
なお、前記実施例においては、最大ピーク点、最小ピ
ーク点の次のゼロクロス点毎の間隔から周期抽出を行な
うようにしたが、その他の方式、例えば最大ピーク点間
や最小ピーク点間の時間間隔から周期抽出をおこなって
もよい。また、それに合せて回路構成は種々変更し得
る。
ーク点の次のゼロクロス点毎の間隔から周期抽出を行な
うようにしたが、その他の方式、例えば最大ピーク点間
や最小ピーク点間の時間間隔から周期抽出をおこなって
もよい。また、それに合せて回路構成は種々変更し得
る。
また、前記実施例においては、この発明を電子ギター
(ギターシンセサイザ)に適用したものであったが、そ
れに限らない。ピッチ抽出を行なって、オリジナルの信
号とは別の音響信号を発生するタイプの楽器または装置
であれば、種々適用可能である。
(ギターシンセサイザ)に適用したものであったが、そ
れに限らない。ピッチ抽出を行なって、オリジナルの信
号とは別の音響信号を発生するタイプの楽器または装置
であれば、種々適用可能である。
[発明の効果] 以上述べた本発明によれば、ピッチ検出手段が入力波
形信号のピッチを検出し、ピーク検出手段が前記入力波
形信号の正のピーク値の負のピーク値と双方を検出し、
指示手段が、前記ピーク検出手段が所定期間内に前記正
のピーク値と負のピーク値との双方が所定値以上である
場合に、前記ピッチ検出手段が検出するピッチに対応す
る音高の楽音の発生を指示するようにしたので、演奏者
が意図しない耳ざわりな電子音が発生されることがない
発音制御装置を提供できる。
形信号のピッチを検出し、ピーク検出手段が前記入力波
形信号の正のピーク値の負のピーク値と双方を検出し、
指示手段が、前記ピーク検出手段が所定期間内に前記正
のピーク値と負のピーク値との双方が所定値以上である
場合に、前記ピッチ検出手段が検出するピッチに対応す
る音高の楽音の発生を指示するようにしたので、演奏者
が意図しない耳ざわりな電子音が発生されることがない
発音制御装置を提供できる。
第1図は本発明を適用した電子楽器の入力制御装置の全
体の構成を示すブロック図、第2図は第1図のピッチ抽
出デジタル回路の一例を示すブロック図、第3図は第2
図のマイコンの割込み処理ルーチンを示すフローチャー
ト、第4図は第2図のマイコンのメイン処理ルーチンを
示すフローチャート、第5図〜第7図および第9図,第
10はいずれも第2図のマイコンの各ステップの動作を説
明するためのフローチャート、第8図,第11図〜第17図
はいずれも各ステップの動作を説明するためのタイミン
グチャート、第18図は従来の電子楽器の問題点を説明す
るための波形図である。 PA……ピッチ抽出アナログ回路、PD……ピッチ抽出デジ
タル回路、MCP……マイコン、SS……音源、PEDT……ピ
ーク検出回路(ピーク値検出手段)、ZTS……ゼロクロ
ス時刻取込回路、TCC……時定数変換制御回路、PVS……
波高値取込み回路。S01、S12……判別手段。
体の構成を示すブロック図、第2図は第1図のピッチ抽
出デジタル回路の一例を示すブロック図、第3図は第2
図のマイコンの割込み処理ルーチンを示すフローチャー
ト、第4図は第2図のマイコンのメイン処理ルーチンを
示すフローチャート、第5図〜第7図および第9図,第
10はいずれも第2図のマイコンの各ステップの動作を説
明するためのフローチャート、第8図,第11図〜第17図
はいずれも各ステップの動作を説明するためのタイミン
グチャート、第18図は従来の電子楽器の問題点を説明す
るための波形図である。 PA……ピッチ抽出アナログ回路、PD……ピッチ抽出デジ
タル回路、MCP……マイコン、SS……音源、PEDT……ピ
ーク検出回路(ピーク値検出手段)、ZTS……ゼロクロ
ス時刻取込回路、TCC……時定数変換制御回路、PVS……
波高値取込み回路。S01、S12……判別手段。
Claims (2)
- 【請求項1】入力波形信号のピッチを検出するピッチ検
出手段と、 前記入力波形信号の正のピーク値と負のピーク値と双方
を検出するピーク検出手段と、 前記ピーク検出手段が所定期間内に検出する前記正のピ
ーク値と負のピーク値との双方が所定値以上である場合
に、前記ピッチ検出手段が検出するピッチに対応する音
高の楽音の発生を指示する指示手段と を有することを特徴とする発音制御装置。 - 【請求項2】前記指示手段における所定値は、前記正の
ピーク値と負のピーク値とで値が互いに異なることを特
徴とする特許請求の範囲第1項記載の発音制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62258672A JP2611263B2 (ja) | 1987-10-14 | 1987-10-14 | 発音制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62258672A JP2611263B2 (ja) | 1987-10-14 | 1987-10-14 | 発音制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01100598A JPH01100598A (ja) | 1989-04-18 |
JP2611263B2 true JP2611263B2 (ja) | 1997-05-21 |
Family
ID=17323496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62258672A Expired - Lifetime JP2611263B2 (ja) | 1987-10-14 | 1987-10-14 | 発音制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2611263B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2471884A (en) | 2009-07-17 | 2011-01-19 | Gp Acoustics | Loudspeaker driver surround with at least one stiffening tab |
-
1987
- 1987-10-14 JP JP62258672A patent/JP2611263B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01100598A (ja) | 1989-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2615825B2 (ja) | 電子弦楽器 | |
EP0987678B1 (en) | Synthesizer detecting pitch and plucking point of stringed instrument to generate tones | |
JP2734521B2 (ja) | 楽音制御装置 | |
JP2782949B2 (ja) | 鍵盤楽器 | |
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 | |
US5147970A (en) | Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal | |
JP3653854B2 (ja) | 弦楽器型電子楽器 | |
JP2611263B2 (ja) | 発音制御装置 | |
JP2661066B2 (ja) | 発音制御装置 | |
JP2661065B2 (ja) | 発音制御装置 | |
JP2722584B2 (ja) | 楽音制御装置 | |
JP2775633B2 (ja) | 楽音制御装置 | |
JP2605773B2 (ja) | 電子弦楽器 | |
JP2591001B2 (ja) | 電子弦楽器 | |
JP2591000B2 (ja) | 電子弦楽器 | |
JP2661481B2 (ja) | 電子楽器 | |
JP2530928Y2 (ja) | 電子楽器のレベル表示装置 | |
JP6135312B2 (ja) | 電子弦楽器、楽音制御方法及びプログラム | |
JP2615946B2 (ja) | 楽音制御装置 | |
JP2858313B2 (ja) | 音高情報生成装置 | |
JP2958778B2 (ja) | 楽音発生装置 | |
JPH01100596A (ja) | 電子楽器の入力制御装置 | |
JP6361109B2 (ja) | 電子弦楽器、楽音制御方法及びプログラム | |
JP2014153434A (ja) | 電子弦楽器、楽音生成方法及びプログラム |