JP2858313B2 - 音高情報生成装置 - Google Patents
音高情報生成装置Info
- Publication number
- JP2858313B2 JP2858313B2 JP63309670A JP30967088A JP2858313B2 JP 2858313 B2 JP2858313 B2 JP 2858313B2 JP 63309670 A JP63309670 A JP 63309670A JP 30967088 A JP30967088 A JP 30967088A JP 2858313 B2 JP2858313 B2 JP 2858313B2
- Authority
- JP
- Japan
- Prior art keywords
- pitch
- peak value
- information
- value
- peak
- 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
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、電子ギター等の電子弦楽器をはじめとする
シンセサイザータイプの電子楽器に係り、特に入力波形
信号からピッチ情報を抽出しそれに応じた音高で楽音を
発音させることができる音高情報生成装置に関する。
シンセサイザータイプの電子楽器に係り、特に入力波形
信号からピッチ情報を抽出しそれに応じた音高で楽音を
発音させることができる音高情報生成装置に関する。
ギター等を演奏操作することにより弦の振動等を電気
信号として検出し、その入力波形信号に従ってディジタ
ル回路等で構成された楽音発生回路を制御して、楽音を
合成し放音させるようにした電子楽器が開発されてい
る。
信号として検出し、その入力波形信号に従ってディジタ
ル回路等で構成された楽音発生回路を制御して、楽音を
合成し放音させるようにした電子楽器が開発されてい
る。
特に、ピッチ抽出回路が入力波形信号からピッチ周波
数を抽出し、楽音発生回路がそのピッチ周波数に対応し
た音高の楽音を発生するタイプのものは、楽音の音高等
が入力波形信号にダイレクトに応答するため、演奏者の
演奏に忠実な楽音合成を行うことができる。
数を抽出し、楽音発生回路がそのピッチ周波数に対応し
た音高の楽音を発生するタイプのものは、楽音の音高等
が入力波形信号にダイレクトに応答するため、演奏者の
演奏に忠実な楽音合成を行うことができる。
このようなタイプの電子楽器においては、楽音の音高
は発音開始時の入力波形信号のピッチ周波数によって決
定されるだけでなく、その後、入力波形信号のピッチ周
波数が変化した場合、前記ピッチ抽出回路がリアルタイ
ムでピッチ周波数を抽出し、それに応じた音高情報を生
成して発音中の楽音の音高を変更制御することができ
る。
は発音開始時の入力波形信号のピッチ周波数によって決
定されるだけでなく、その後、入力波形信号のピッチ周
波数が変化した場合、前記ピッチ抽出回路がリアルタイ
ムでピッチ周波数を抽出し、それに応じた音高情報を生
成して発音中の楽音の音高を変更制御することができ
る。
従って、例えば電子ギターにおいて、演奏者がチョー
キング奏法(フレット上で弦を押圧している指をフレッ
トの長手方向と直角の方向にスライドさせて弦の張力を
変化させる奏法)を行って、入力波形信号すなわち弦振
動波形信号のピッチ周波数を意図的に変化させたような
場合に、当該操作に応じて発音中の楽音の音高を変化さ
せることができ、大きな演奏効果を付加させることが可
能である。
キング奏法(フレット上で弦を押圧している指をフレッ
トの長手方向と直角の方向にスライドさせて弦の張力を
変化させる奏法)を行って、入力波形信号すなわち弦振
動波形信号のピッチ周波数を意図的に変化させたような
場合に、当該操作に応じて発音中の楽音の音高を変化さ
せることができ、大きな演奏効果を付加させることが可
能である。
この場合、ピッチ周波数は一般にそれほど急激に変化
することはなく、従って、もしピッチ抽出回路から抽出
されるピッチ周波数が何らかの原因で急激に変化したよ
うな場合、これに基づいて音高を変更すると発音中の楽
音の音高変化が不自然になってしまう。上記原因として
は、例えばピッチ抽出回路がピッチの基本周波数成分
(いわゆるピッチ周波数に等しい)以外の倍音成分を抽
出してしまうことが考えられる。
することはなく、従って、もしピッチ抽出回路から抽出
されるピッチ周波数が何らかの原因で急激に変化したよ
うな場合、これに基づいて音高を変更すると発音中の楽
音の音高変化が不自然になってしまう。上記原因として
は、例えばピッチ抽出回路がピッチの基本周波数成分
(いわゆるピッチ周波数に等しい)以外の倍音成分を抽
出してしまうことが考えられる。
そこで、ピッチ周波数の誤抽出を防止するために、従
来のピッチ抽出タイプの電子楽器には、通常、抽出され
たピッチ周波数が正当に変化したものであるか否かを判
定する手段が備えられている。具体的には、例えば現在
抽出されたピッチ周波数(又はピッチ周期)が、前回及
び前々回に抽出された2つのピッチ周波数(又はピッチ
周期)の何れからも、あまり変化しない場合(例えば1
パーセント以下の変化の場合)にのみ、現在抽出された
ピッチ周波数(又はピッチ周期)に基づいて現在発音中
の音高を変更するように制御するような手段が備えられ
ている。
来のピッチ抽出タイプの電子楽器には、通常、抽出され
たピッチ周波数が正当に変化したものであるか否かを判
定する手段が備えられている。具体的には、例えば現在
抽出されたピッチ周波数(又はピッチ周期)が、前回及
び前々回に抽出された2つのピッチ周波数(又はピッチ
周期)の何れからも、あまり変化しない場合(例えば1
パーセント以下の変化の場合)にのみ、現在抽出された
ピッチ周波数(又はピッチ周期)に基づいて現在発音中
の音高を変更するように制御するような手段が備えられ
ている。
しかし、既に説明したように、例えば電子ギター等の
場合において、演奏者がチョーキング奏法を行って入力
波形信号のピッチ周波数を意図的に変更すると、かなり
の範囲でピッチ周波数が変化し得る。特に、演奏者がチ
ョーキングを低音弦に対して速い操作で行ったような場
合、連続する3周期程度でもその経過時間が長くなり、
その時間内にピッチ周波数はかなり大幅に変化する。こ
のような状態で、前記従来のピッチ判定手段をそのまま
適用すると、現在抽出されたピッチ周波数が、前回及び
前々回に抽出された2つのピッチ周波数に対して数パー
セント以上、極端な場合、10〜15%近く変化し得るた
め、そのような場合には正当なピッチ周波数の変化とみ
なされず、音高の変更がなされないという事態も起こり
得る。従って、上記のようなチョーキング操作に対し
て、発音中の楽音の音高が追従しなくなり、演奏者の意
図した通りの音高の変更を行えずに、不自然な演奏とな
ってしまうという問題点を有している。
場合において、演奏者がチョーキング奏法を行って入力
波形信号のピッチ周波数を意図的に変更すると、かなり
の範囲でピッチ周波数が変化し得る。特に、演奏者がチ
ョーキングを低音弦に対して速い操作で行ったような場
合、連続する3周期程度でもその経過時間が長くなり、
その時間内にピッチ周波数はかなり大幅に変化する。こ
のような状態で、前記従来のピッチ判定手段をそのまま
適用すると、現在抽出されたピッチ周波数が、前回及び
前々回に抽出された2つのピッチ周波数に対して数パー
セント以上、極端な場合、10〜15%近く変化し得るた
め、そのような場合には正当なピッチ周波数の変化とみ
なされず、音高の変更がなされないという事態も起こり
得る。従って、上記のようなチョーキング操作に対し
て、発音中の楽音の音高が追従しなくなり、演奏者の意
図した通りの音高の変更を行えずに、不自然な演奏とな
ってしまうという問題点を有している。
上記問題点は、例えば電子ギターの場合、チョーキン
グ奏法以外にも、グリッサンド、ハンマリングオン等の
奏法、トレモロアームによるアーミング等の操作を行う
ことにより、弦の張力を意図的に変化させたような場合
にも同様に起こり得る。また、電子ギターに限らず他の
電子楽器においても、演奏者の操作により入力波形のピ
ッチ周波数が意図的に変更されるような場合が考えられ
る。
グ奏法以外にも、グリッサンド、ハンマリングオン等の
奏法、トレモロアームによるアーミング等の操作を行う
ことにより、弦の張力を意図的に変化させたような場合
にも同様に起こり得る。また、電子ギターに限らず他の
電子楽器においても、演奏者の操作により入力波形のピ
ッチ周波数が意図的に変更されるような場合が考えられ
る。
本発明の課題は、抽出した周期変動による誤った音高
指定を防止したうえで、弦張力を意図的に変化させてピ
ッチ変化を起こす各様な奏法(チョーキング、グリッサ
ンド、トレモロ等)に対応した音高変更を可能とし、加
えて、こうした音高変更の最中での誤った音高指定を防
止することができる音高情報生成装置を提供することに
ある。
指定を防止したうえで、弦張力を意図的に変化させてピ
ッチ変化を起こす各様な奏法(チョーキング、グリッサ
ンド、トレモロ等)に対応した音高変更を可能とし、加
えて、こうした音高変更の最中での誤った音高指定を防
止することができる音高情報生成装置を提供することに
ある。
本発明は、例えば金属弦振動をピックアップによって
入力波形信号として検出し、これからピッチ情報を抽出
し、該ピッチ情報により楽音の音高を制御するタイプの
電子弦楽器(電子ギター)等として実現される音高情報
生成装置である。
入力波形信号として検出し、これからピッチ情報を抽出
し、該ピッチ情報により楽音の音高を制御するタイプの
電子弦楽器(電子ギター)等として実現される音高情報
生成装置である。
そして、本発明では上述した課題を解決する為、演奏
操作によって励振される弦振動から抽出した周期に応じ
てピッチ情報を生成するピッチ情報生成手段と、前記周
期が、短期間中に所定以上変動した場合には前記ピッチ
情報生成手段が生成するピッチ情報を誤ピッチ情報と判
定し、そうでない場合には適正ピッチ情報と判定する第
1の判定手段と、適正ピッチ情報が供給された場合には
それに対応した音高を指定し、誤ピッチ情報が供給され
た場合にはそれ以前の適正ピッチ情報にて指定された音
高を維持する音高指定手段と、適正ピッチ情報が、以前
に指定された音高の所定倍数以下で変動した場合には意
図したピッチ変化と見做して前記音高指定手段が指定中
の音高を、当該適正ピッチ情報の変動に追従して変更さ
せ、一方、所定倍数を超えて変動した場合には意図しな
いピッチ変化と見做して当該適正ピッチ情報を前記誤ピ
ッチ情報と判定して前記音高指定手段にて指定中の音高
を維持させる第2の判定手段と、この第2の判定手段に
よって適正ピッチ情報が誤ピッチ情報と判定された場
合、前記周期の変動が所定範囲に収束するまで前記ピッ
チ情報生成手段が生成するピッチ情報を誤ピッチ情報と
判定し続け、収束し終えたら適正ピッチ情報と判定する
第3の判定手段とを具備する。
操作によって励振される弦振動から抽出した周期に応じ
てピッチ情報を生成するピッチ情報生成手段と、前記周
期が、短期間中に所定以上変動した場合には前記ピッチ
情報生成手段が生成するピッチ情報を誤ピッチ情報と判
定し、そうでない場合には適正ピッチ情報と判定する第
1の判定手段と、適正ピッチ情報が供給された場合には
それに対応した音高を指定し、誤ピッチ情報が供給され
た場合にはそれ以前の適正ピッチ情報にて指定された音
高を維持する音高指定手段と、適正ピッチ情報が、以前
に指定された音高の所定倍数以下で変動した場合には意
図したピッチ変化と見做して前記音高指定手段が指定中
の音高を、当該適正ピッチ情報の変動に追従して変更さ
せ、一方、所定倍数を超えて変動した場合には意図しな
いピッチ変化と見做して当該適正ピッチ情報を前記誤ピ
ッチ情報と判定して前記音高指定手段にて指定中の音高
を維持させる第2の判定手段と、この第2の判定手段に
よって適正ピッチ情報が誤ピッチ情報と判定された場
合、前記周期の変動が所定範囲に収束するまで前記ピッ
チ情報生成手段が生成するピッチ情報を誤ピッチ情報と
判定し続け、収束し終えたら適正ピッチ情報と判定する
第3の判定手段とを具備する。
上記構成によれば、(イ)弦振動から抽出した周期に
応じて生成されるピッチ情報について適否を判断し、誤
ピッチ情報と判定されたら、以前の適正ピッチ情報にて
指定された音高を維持するので、誤った音高指定を防止
し、(ロ)さらに、適正ピッチ情報についても適否を判
断し、適正ピッチ情報が以前に指定された音高の所定倍
数以下で変動したら、意図したピッチ変化と見做し、指
定中の音高をその変動に追従して変更させ、これにより
弦張力を意図的に変化させてピッチ変化を起こす各様な
奏法(チョーキング、グリッサンド、トレモロ等)に対
応した音高指定を可能とし、(ハ)加えて、適正ピッチ
情報が以前に指定された音高の所定倍数を超えて変動し
たら、意図しないピッチ変化と見做して即座に適正ピッ
チ情報を誤ピッチ情報と判定して指定中の音高を維持さ
せておき、この場合、弦振動の周期変動が所定範囲に収
束するまで誤ピッチ情報と判定し続け、収束し終えたら
適正ピッチ情報と判定するので、音高を変更させている
最中に誤った音高指定を防止する。
応じて生成されるピッチ情報について適否を判断し、誤
ピッチ情報と判定されたら、以前の適正ピッチ情報にて
指定された音高を維持するので、誤った音高指定を防止
し、(ロ)さらに、適正ピッチ情報についても適否を判
断し、適正ピッチ情報が以前に指定された音高の所定倍
数以下で変動したら、意図したピッチ変化と見做し、指
定中の音高をその変動に追従して変更させ、これにより
弦張力を意図的に変化させてピッチ変化を起こす各様な
奏法(チョーキング、グリッサンド、トレモロ等)に対
応した音高指定を可能とし、(ハ)加えて、適正ピッチ
情報が以前に指定された音高の所定倍数を超えて変動し
たら、意図しないピッチ変化と見做して即座に適正ピッ
チ情報を誤ピッチ情報と判定して指定中の音高を維持さ
せておき、この場合、弦振動の周期変動が所定範囲に収
束するまで誤ピッチ情報と判定し続け、収束し終えたら
適正ピッチ情報と判定するので、音高を変更させている
最中に誤った音高指定を防止する。
以下、本発明の実施例につき詳細に説明を行う。な
お、以下の説明においては、記号{ }、( )、
《 》で囲まれ、アンダーラインを付した見出しの順
に、順次項目分けを行う。
お、以下の説明においては、記号{ }、( )、
《 》で囲まれ、アンダーラインを付した見出しの順
に、順次項目分けを行う。
{本発明による電子楽器の構成} 本実施例は、ボディー上に6本の金属弦が張られ、該
金属弦の下部に設けられたフレット(指板)を指で押さ
えながら、所望の弦をピッキングすることにより演奏を
行う電子ギターとして実現されている。なお、その外見
は省略する。
金属弦の下部に設けられたフレット(指板)を指で押さ
えながら、所望の弦をピッキングすることにより演奏を
行う電子ギターとして実現されている。なお、その外見
は省略する。
第1図は、本実施例の全体の構成図である。
まず、ピッチ抽出アナログ回路1は、特には図示しな
い前記6本の弦毎にそれぞれ設けられ、各弦の振動を電
気信号に変換するヘキサピックアップからの各出力を、
特には図示しないローパスフィルタに通して高調波成分
を除去することにより、6種類の各波形信号Wi(i=1
〜6)を得る。更に、各波形信号Wiの振幅の符号が正又
は負に変化する毎に、ハイレベル又はローレベルとなる
パルス状のゼロクロス信号Zi(i=1〜6)を発生す
る。そして、これら6種類の波形信号Wi及びゼロクロス
信号Ziを、各々特には図示しないA/D変換器等により、
時分割のシリアルゼロクロス信号ZCR及びディジタル出
力(時分割波形信号)D1に変換し、出力する。
い前記6本の弦毎にそれぞれ設けられ、各弦の振動を電
気信号に変換するヘキサピックアップからの各出力を、
特には図示しないローパスフィルタに通して高調波成分
を除去することにより、6種類の各波形信号Wi(i=1
〜6)を得る。更に、各波形信号Wiの振幅の符号が正又
は負に変化する毎に、ハイレベル又はローレベルとなる
パルス状のゼロクロス信号Zi(i=1〜6)を発生す
る。そして、これら6種類の波形信号Wi及びゼロクロス
信号Ziを、各々特には図示しないA/D変換器等により、
時分割のシリアルゼロクロス信号ZCR及びディジタル出
力(時分割波形信号)D1に変換し、出力する。
ピッチ抽出ディジタル回路2は、第2図に示すように
ピーク検出回路201、時定数変換制御回路202、波高値取
込み回路203、ゼロクロス時刻取込回路204からなる。こ
れら第2図の各回路は,前記ピッチ抽出アナログ回路1
(第1図)からの、6弦分を時分割したシリアルゼロク
ロス信号ZCR及びディジタル出力D1に基づいて、6弦分
を時分割処理する。以下の説明では説明を容易にするた
め1弦分の処理について説明し、シリアルゼロクロス信
号ZCR及びディジタル出力D1は1弦分の信号のイメージ
で説明するが、特に言及しないときは6弦分について時
分割処理が行われているものとする。
ピーク検出回路201、時定数変換制御回路202、波高値取
込み回路203、ゼロクロス時刻取込回路204からなる。こ
れら第2図の各回路は,前記ピッチ抽出アナログ回路1
(第1図)からの、6弦分を時分割したシリアルゼロク
ロス信号ZCR及びディジタル出力D1に基づいて、6弦分
を時分割処理する。以下の説明では説明を容易にするた
め1弦分の処理について説明し、シリアルゼロクロス信
号ZCR及びディジタル出力D1は1弦分の信号のイメージ
で説明するが、特に言及しないときは6弦分について時
分割処理が行われているものとする。
第2図において、まず、ピーク検出回路201は、前記
シリアルゼロクロス信号ZCR及びディジタル出力D1に基
づいて、ディジタル出力D1の最大ピーク点及び最小ピー
ク点を検出する。そのために、同回路201の内部に、特
には図示しないが、過去のピーク値の絶対値を減算し
(減衰させ)ながらホールドするピークホールド回路を
有している。そして、ピーク検出回路201は前回のピー
ク値検出後、上記ピークホールド回路から出力されるピ
ークホールド信号をしきい値として、次のシリアルゼロ
クロス信号ZCRが発生した後にディジタル出力D1の絶対
値がこのしきい値を越えた時点でピーク値のタイミング
を検出する。なお、ピーク値のタイミング検出は、ディ
ジタル出力D1が正符号の場合と負符号の場合の各々につ
いて行われる。そして、上記ピーク値の検出タイミング
で、正符号の場合は最大ピーク値検出信号MAX、負符号
の場合は最小ピーク値検出信号MINを出力する。なお、
これらの各信号も実際には当然6弦分の時分割信号であ
る。
シリアルゼロクロス信号ZCR及びディジタル出力D1に基
づいて、ディジタル出力D1の最大ピーク点及び最小ピー
ク点を検出する。そのために、同回路201の内部に、特
には図示しないが、過去のピーク値の絶対値を減算し
(減衰させ)ながらホールドするピークホールド回路を
有している。そして、ピーク検出回路201は前回のピー
ク値検出後、上記ピークホールド回路から出力されるピ
ークホールド信号をしきい値として、次のシリアルゼロ
クロス信号ZCRが発生した後にディジタル出力D1の絶対
値がこのしきい値を越えた時点でピーク値のタイミング
を検出する。なお、ピーク値のタイミング検出は、ディ
ジタル出力D1が正符号の場合と負符号の場合の各々につ
いて行われる。そして、上記ピーク値の検出タイミング
で、正符号の場合は最大ピーク値検出信号MAX、負符号
の場合は最小ピーク値検出信号MINを出力する。なお、
これらの各信号も実際には当然6弦分の時分割信号であ
る。
次に、時定数変換制御回路202は、上記ピーク検出回
路201内のピークホールド回路の減衰率を変更する回路
であり、ピーク検出回路201からの最大・最小ピーク値
検出信号MAX,MIN、及び第1図の中央制御装置(MCP、以
下同じ)3からの制御により動作する。これについては
後述する。
路201内のピークホールド回路の減衰率を変更する回路
であり、ピーク検出回路201からの最大・最小ピーク値
検出信号MAX,MIN、及び第1図の中央制御装置(MCP、以
下同じ)3からの制御により動作する。これについては
後述する。
続いて、第2図における波高値取込回路203は、前記
ピーク抽出アナログ回路1より時分割的に送出されてく
るディジタル出力D1を、各弦毎の波高値にデマルチプレ
クス(分解)処理し、前記ピーク検出回路201からのピ
ーク値検出信号MAX,MINに従って、ピーク値をホールド
する。そして、MCP3(第1図)がアドレスデコーダ4
(第1図)を介してアクセスしてきた弦についての最大
ピーク値、もしくは最小ピーク値をバスBUSを介してMCP
3へ順次出力する。また、この波高値取込回路203から
は、上記ピーク値の他、各弦毎の振動の瞬時値も出力可
能になっている。
ピーク抽出アナログ回路1より時分割的に送出されてく
るディジタル出力D1を、各弦毎の波高値にデマルチプレ
クス(分解)処理し、前記ピーク検出回路201からのピ
ーク値検出信号MAX,MINに従って、ピーク値をホールド
する。そして、MCP3(第1図)がアドレスデコーダ4
(第1図)を介してアクセスしてきた弦についての最大
ピーク値、もしくは最小ピーク値をバスBUSを介してMCP
3へ順次出力する。また、この波高値取込回路203から
は、上記ピーク値の他、各弦毎の振動の瞬時値も出力可
能になっている。
ゼロクロス時刻取込回路204は、前記ピッチ抽出アナ
ログ回路1(第1図)からのシリアルゼロクロス信号ZC
Rに従って、各弦共通のタイムベースカウンタ2041の出
力を、各弦のゼロクロス時点、厳密には、ピーク検出回
路201から出力される最大・最小ピーク値検出信号MAX、
MINで決定される最大ピーク点及び最小ピーク点の通過
タイミング直後のゼロクロス時点でラッチする。このラ
ッチ動作が行われていると、ゼロクロス時刻取込回路20
4は続いて、第1図のMCP3に割り込み信号INTを出力す
る。これにより、MCP3からアドレスデコーダ4(第1
図)を介して出力される制御信号(後述する)に従っ
て、ゼロクロスが発生した弦番号、ラッチした当該弦に
対応するゼロクロス時刻及び正負情報(後述する)を、
バスBUSを介してMCP3へ順次出力する。
ログ回路1(第1図)からのシリアルゼロクロス信号ZC
Rに従って、各弦共通のタイムベースカウンタ2041の出
力を、各弦のゼロクロス時点、厳密には、ピーク検出回
路201から出力される最大・最小ピーク値検出信号MAX、
MINで決定される最大ピーク点及び最小ピーク点の通過
タイミング直後のゼロクロス時点でラッチする。このラ
ッチ動作が行われていると、ゼロクロス時刻取込回路20
4は続いて、第1図のMCP3に割り込み信号INTを出力す
る。これにより、MCP3からアドレスデコーダ4(第1
図)を介して出力される制御信号(後述する)に従っ
て、ゼロクロスが発生した弦番号、ラッチした当該弦に
対応するゼロクロス時刻及び正負情報(後述する)を、
バスBUSを介してMCP3へ順次出力する。
また、第2図のタイミングジェネレータ205からは、
第1図及び第2図に示す各回路の処理動作のためのタイ
ミング信号が出力される。
第1図及び第2図に示す各回路の処理動作のためのタイ
ミング信号が出力される。
次に、第1図に戻って、MCP3は、メモリ例えばROM301
及びRAM302を有するとともに、タイマ303を有する。ROM
301は後述する各種楽音制御用のプログラムを記憶して
いる不揮発メモリであり、RAM302は該制御時の各種変数
・データ用のワーク領域として用いられる書き替え可能
なメモリである。また、タイマ303は、後述するノート
オフ(消音)処理のために用いられる。
及びRAM302を有するとともに、タイマ303を有する。ROM
301は後述する各種楽音制御用のプログラムを記憶して
いる不揮発メモリであり、RAM302は該制御時の各種変数
・データ用のワーク領域として用いられる書き替え可能
なメモリである。また、タイマ303は、後述するノート
オフ(消音)処理のために用いられる。
楽音発生部5は、楽音発生回路501とD/A変換器502、
アンプ503及びスピーカ504からなり、MCP3からの楽音制
御情報に応じた楽音を放音する。なお、楽音発生回路50
1の入力側に、インターフェイス(Musical Instrument
Digital Interface)MIDIが設けられており、楽音制御
情報伝送用の専用バスMIDI−BUSを介して、MCP3と接続
される。なお、ギター本体内に楽音発生部5を設けると
きには、別の内部インターフェイスを介してもよい。
アンプ503及びスピーカ504からなり、MCP3からの楽音制
御情報に応じた楽音を放音する。なお、楽音発生回路50
1の入力側に、インターフェイス(Musical Instrument
Digital Interface)MIDIが設けられており、楽音制御
情報伝送用の専用バスMIDI−BUSを介して、MCP3と接続
される。なお、ギター本体内に楽音発生部5を設けると
きには、別の内部インターフェイスを介してもよい。
アドレスデコーダ4は、前記したゼロクロス時刻取込
回路204(第2図)からの割り込み信号INTの発生の後、
MCP3(第1図)から発生するアドレス読み出し信号ARに
従って、ゼロクロス時刻取込回路204に、弦番号読込み
信号▲▼、続いて、時刻読込み信号▲
▼(i=1〜6)を供給する。また、同様に、波
高値取込み回路203(第2図)に波形読込み信号RDAj
(j=1〜18)を出力する。これらの動作の詳細につい
ては後述する。
回路204(第2図)からの割り込み信号INTの発生の後、
MCP3(第1図)から発生するアドレス読み出し信号ARに
従って、ゼロクロス時刻取込回路204に、弦番号読込み
信号▲▼、続いて、時刻読込み信号▲
▼(i=1〜6)を供給する。また、同様に、波
高値取込み回路203(第2図)に波形読込み信号RDAj
(j=1〜18)を出力する。これらの動作の詳細につい
ては後述する。
{本実施例の概略動作} 上記構成の実施例の動作につき以下に説明する。
まず、楽音発生までの本実施例の概略動作について説
明を行う。
明を行う。
第10図のD1は、第1図のピッチ抽出アナログ回路1か
ら出力されるディジタル出力D1の1弦分についてアナロ
グ的に示したものである。この波形は、特には図示しな
いギターの6弦のうち1弦をピッキングすることによ
り、対応するピックアップから検出される電気信号をデ
ィジタル信号として出力したものであり、当該弦を特に
は図示しないフレット(指板)上で押さえる位置に従っ
て、第10図T0〜T5等に示すようなピッチ周期を有する波
形が発生する。
ら出力されるディジタル出力D1の1弦分についてアナロ
グ的に示したものである。この波形は、特には図示しな
いギターの6弦のうち1弦をピッキングすることによ
り、対応するピックアップから検出される電気信号をデ
ィジタル信号として出力したものであり、当該弦を特に
は図示しないフレット(指板)上で押さえる位置に従っ
て、第10図T0〜T5等に示すようなピッチ周期を有する波
形が発生する。
本実施例では、このピッチ周期T0〜T5等をリアルタイ
ムで抽出することにより、第1図のMCP3がそれに対応す
る音高情報を生成し、第1図の楽音発生回路501でその
音高の楽音を発音させる。従って、特には図示しないト
レモロアームによって、演奏中に演奏者が弦の張力を変
化させたような場合、それに従ってディジタル出力D1の
ピッチ周期が変化するため、音高情報もそれに従ってリ
アルタイムで変化し、楽音に豊かな表現を付加すること
ができる。
ムで抽出することにより、第1図のMCP3がそれに対応す
る音高情報を生成し、第1図の楽音発生回路501でその
音高の楽音を発音させる。従って、特には図示しないト
レモロアームによって、演奏中に演奏者が弦の張力を変
化させたような場合、それに従ってディジタル出力D1の
ピッチ周期が変化するため、音高情報もそれに従ってリ
アルタイムで変化し、楽音に豊かな表現を付加すること
ができる。
また、本実施例では、第10図のディジタル出力D1のピ
ーク値a0〜a3又はb0〜b3等を検出しており、特に第1図
のMCP3が立ち上がり時(弦のピッキング時)の最大ピー
ク値a0に基づいて音量情報を作成して楽音発生回路501
に転送することにより、弦をピッキングした強さに応じ
た音量の楽音を発音させることができる。
ーク値a0〜a3又はb0〜b3等を検出しており、特に第1図
のMCP3が立ち上がり時(弦のピッキング時)の最大ピー
ク値a0に基づいて音量情報を作成して楽音発生回路501
に転送することにより、弦をピッキングした強さに応じ
た音量の楽音を発音させることができる。
次に、本実施例では楽音の発音開始後に、順次抽出さ
れるピッチ周期(例えば第10図T2〜T5等)に基づいて楽
音の音高を変更する場合、前々回に抽出されたピッチ周
波数に比べて、1.33倍以上であるか否かが判定される。
そして、1.33倍以下と判定された場合は、そのピッチ周
波数の変化は、演奏者による意図的なピッチ変化とみな
して、即座に音高を変更する動作を行う。逆に、1.33倍
以上と判定された場合は、ピッチの基本周波数の倍音等
を誤って抽出してしまったとみなして、抽出されるピッ
チ周期に対応するピッチ周波数の変化が、前回及び前々
回のピッチ周波数に比較して、2-7以下の変化になるま
では音高を変更しない。
れるピッチ周期(例えば第10図T2〜T5等)に基づいて楽
音の音高を変更する場合、前々回に抽出されたピッチ周
波数に比べて、1.33倍以上であるか否かが判定される。
そして、1.33倍以下と判定された場合は、そのピッチ周
波数の変化は、演奏者による意図的なピッチ変化とみな
して、即座に音高を変更する動作を行う。逆に、1.33倍
以上と判定された場合は、ピッチの基本周波数の倍音等
を誤って抽出してしまったとみなして、抽出されるピッ
チ周期に対応するピッチ周波数の変化が、前回及び前々
回のピッチ周波数に比較して、2-7以下の変化になるま
では音高を変更しない。
上記動作は、ピッチ抽出手段から誤って抽出され得る
成分が基本周波数の1.33倍音以上であり、かつ、演奏者
により意図的に変更され得るピッチ周波数の範囲が前々
回のピッチの基本周波数の1.33倍以上になることはほと
んどないという事実を利用している。
成分が基本周波数の1.33倍音以上であり、かつ、演奏者
により意図的に変更され得るピッチ周波数の範囲が前々
回のピッチの基本周波数の1.33倍以上になることはほと
んどないという事実を利用している。
これにより、演奏者による意図的なピッチ周波数の変
更操作に良く追従して音高を変更できると同時に、誤っ
たピッチ周波数による音高変更を防ぐことができる。こ
れが、本実施例の大きな特徴とする点である。
更操作に良く追従して音高を変更できると同時に、誤っ
たピッチ周波数による音高変更を防ぐことができる。こ
れが、本実施例の大きな特徴とする点である。
以上の動作は、ギターの6弦分の時分割ディジタル出
力D1について時分割処理されるため、楽音発生回路501
からは6弦分の楽音を聴覚的に同時に発音させることが
できる。そして、これらの楽音は、自由な音量・音色に
設定でき、電子的に各種の効果を付加できるため、極め
て大きな演奏効果が得られる。
力D1について時分割処理されるため、楽音発生回路501
からは6弦分の楽音を聴覚的に同時に発音させることが
できる。そして、これらの楽音は、自由な音量・音色に
設定でき、電子的に各種の効果を付加できるため、極め
て大きな演奏効果が得られる。
{ピッチ抽出ディジタル回路の動作} 上記動作を実現するための本実施例の動作につき、以
下に詳細に説明を行ってゆく。
下に詳細に説明を行ってゆく。
(概略動作) まず、第1図又は第2図のピッチ抽出ディジタル回路
2の動作について説明を行う。なお、以下の説明におい
ても1弦分についてのみ説明し、シリアルゼロクロス信
号ZCR、ディジタル出力D1、最大・最小ピーク値検出信
号MAX,MINは1弦分のイメージで説明するが、実際には
6弦分について時分割処理されている。
2の動作について説明を行う。なお、以下の説明におい
ても1弦分についてのみ説明し、シリアルゼロクロス信
号ZCR、ディジタル出力D1、最大・最小ピーク値検出信
号MAX,MINは1弦分のイメージで説明するが、実際には
6弦分について時分割処理されている。
同回路2では、各弦毎に第10図のディジタル出力D1か
ら、ピーク値a0〜a3又はb0〜b3等を抽出し、同時に各ピ
ーク値の直後のゼロクロス時刻t1〜t7等を抽出し、更
に、各ゼロクロス時刻の直前のピーク値が正か負かによ
り1又は0を示す情報を抽出して、第1図のMCP3に供給
する。これに基づいて、MCP3は前記ゼロクロス時刻の間
隔から第10図の各ピッチ周期T0〜T5等を抽出して、ま
た、その他前記各種楽音情報を生成し、更に、後述する
ように必要に応じて、エラー処理、ノートオフ(消音)
処理、リラティブオン・オフの処理等を行う。
ら、ピーク値a0〜a3又はb0〜b3等を抽出し、同時に各ピ
ーク値の直後のゼロクロス時刻t1〜t7等を抽出し、更
に、各ゼロクロス時刻の直前のピーク値が正か負かによ
り1又は0を示す情報を抽出して、第1図のMCP3に供給
する。これに基づいて、MCP3は前記ゼロクロス時刻の間
隔から第10図の各ピッチ周期T0〜T5等を抽出して、ま
た、その他前記各種楽音情報を生成し、更に、後述する
ように必要に応じて、エラー処理、ノートオフ(消音)
処理、リラティブオン・オフの処理等を行う。
(詳細動作) そのために、第2図のピーク検出回路201では、第10
図のように入力してくるディジタル出力D1に対して、ま
ず、その値が負となる部分で、その絶対値が0を越えた
タイミングx0で、第10図に示すような最小ピーク値検出
信号MINがハイレベルになる。
図のように入力してくるディジタル出力D1に対して、ま
ず、その値が負となる部分で、その絶対値が0を越えた
タイミングx0で、第10図に示すような最小ピーク値検出
信号MINがハイレベルになる。
これにより、第2図の波高値取込回路203は、上記最
小ピーク値検出信号MINがハイレベルとなった直後のタ
イミングx1で、別に入力するディジタル出力D1から最小
ピーク値(負側の波高値)b0(絶対値)を検出して特に
は図示しないラッチにホールドし、これと共に最小ピー
ク値検出信号MINをローレベルに戻す。
小ピーク値検出信号MINがハイレベルとなった直後のタ
イミングx1で、別に入力するディジタル出力D1から最小
ピーク値(負側の波高値)b0(絶対値)を検出して特に
は図示しないラッチにホールドし、これと共に最小ピー
ク値検出信号MINをローレベルに戻す。
一方、第1図のピッチ抽出アナログ回路1から第2図
のゼロクロス時刻取込回路204には、第10図に示すよう
なシリアルゼロクロス信号ZCRが入力している。この信
号は、ピッチ抽出アナログ回路1内の特には図示しない
コンパレータがディジタル出力D1の正負を判定し、それ
に従って同コンパレータからハイレベル又はローレベル
の2値ディジタル信号として出力される信号である。
のゼロクロス時刻取込回路204には、第10図に示すよう
なシリアルゼロクロス信号ZCRが入力している。この信
号は、ピッチ抽出アナログ回路1内の特には図示しない
コンパレータがディジタル出力D1の正負を判定し、それ
に従って同コンパレータからハイレベル又はローレベル
の2値ディジタル信号として出力される信号である。
そして、ゼロクロス時刻取込回路204では、前記ピー
ク検出回路201から出力される最小ピーク値検出信号MIN
がタイミングx0でハイレベルとなった直後に、シリアル
ゼロクロス信号ZCRが変化するエッジタイミング、すな
わち、ディジタル出力D1のゼロクロス時点で、第2図の
タイムベースカウンタ2041で計時されている時刻t0(第
10図)をラッチする。なお、このラッチデータの最上位
ビットに、直前のピーク値が正であるか負であるかを示
す1または0の正負フラグ(最小ピーク値b0に対しては
0となる)が付加される。
ク検出回路201から出力される最小ピーク値検出信号MIN
がタイミングx0でハイレベルとなった直後に、シリアル
ゼロクロス信号ZCRが変化するエッジタイミング、すな
わち、ディジタル出力D1のゼロクロス時点で、第2図の
タイムベースカウンタ2041で計時されている時刻t0(第
10図)をラッチする。なお、このラッチデータの最上位
ビットに、直前のピーク値が正であるか負であるかを示
す1または0の正負フラグ(最小ピーク値b0に対しては
0となる)が付加される。
更に、ゼロクロス時刻取込回路204は上記動作に連続
して第1図のMCP3に割り込み信号INTを出力する。これ
により、割り込み信号INTが発生した時点において、第
2図の波高値取込回路203には最小ピーク値b0(絶対
値)がホールドされ、ゼロクロス時刻取込回路204には
最小ピーク値b0の発生直後の前記正負フラグを含むゼロ
クロス時刻がラッチされている。
して第1図のMCP3に割り込み信号INTを出力する。これ
により、割り込み信号INTが発生した時点において、第
2図の波高値取込回路203には最小ピーク値b0(絶対
値)がホールドされ、ゼロクロス時刻取込回路204には
最小ピーク値b0の発生直後の前記正負フラグを含むゼロ
クロス時刻がラッチされている。
そして、割り込み信号INTの出力の後、第1図のMCP3
からアドレスデコーダ4を介して行われるアクセス(後
述する)により、上記正負フラグを含むゼロクロス時刻
及び最小ピーク値b0が、バスBUSを介してMCP3に転送さ
れる。なお、以上の処理は6弦分について時分割処理さ
れているため、後述するように、上記各情報の出力の前
に、どの弦番号について上記割り込みが発生したのかを
示す情報を、ゼロクロス時刻取込回路204からMCP3に出
力する。
からアドレスデコーダ4を介して行われるアクセス(後
述する)により、上記正負フラグを含むゼロクロス時刻
及び最小ピーク値b0が、バスBUSを介してMCP3に転送さ
れる。なお、以上の処理は6弦分について時分割処理さ
れているため、後述するように、上記各情報の出力の前
に、どの弦番号について上記割り込みが発生したのかを
示す情報を、ゼロクロス時刻取込回路204からMCP3に出
力する。
次に、第2図のピーク検出回路201では、内部の特に
は図示しないピークホールド回路が、第10図の最小ピー
ク値b0(絶対値)をピークホールドし、第10図のピーク
ホールド信号q0を出力する。これにより、ピーク検出回
路201は上記ピークホールド信号(絶対値)をしきい値
として、ディジタル出力D1の負側についてその絶対値が
上記しきい値を越えたタイミングx2で、再び最小ピーク
値検出信号MINをハイレベルにする。
は図示しないピークホールド回路が、第10図の最小ピー
ク値b0(絶対値)をピークホールドし、第10図のピーク
ホールド信号q0を出力する。これにより、ピーク検出回
路201は上記ピークホールド信号(絶対値)をしきい値
として、ディジタル出力D1の負側についてその絶対値が
上記しきい値を越えたタイミングx2で、再び最小ピーク
値検出信号MINをハイレベルにする。
これにより、前記と全く同様にして、第2図の波高値
取込回路203で、最小ピーク値検出信号MINがハイレベル
となった直後のタイミングx3で次の最小ピーク値b1(絶
対値)がホールドされ、第2図のゼロクロス時刻取込回
路204で、上記最小ピーク値b1の発生直後の正負フラグ
(この場合も0)を含むゼロクロス時刻t2がラッチさ
れ、割り込み信号INTの送出後、MCP3に転送される。
取込回路203で、最小ピーク値検出信号MINがハイレベル
となった直後のタイミングx3で次の最小ピーク値b1(絶
対値)がホールドされ、第2図のゼロクロス時刻取込回
路204で、上記最小ピーク値b1の発生直後の正負フラグ
(この場合も0)を含むゼロクロス時刻t2がラッチさ
れ、割り込み信号INTの送出後、MCP3に転送される。
上記に基づく、第10図のディジタル出力D1の負側に対
する最小ピーク値b0〜b3(絶対値)、ゼロクロス時刻
t0,t2,t4,t6等の検出、及びピークホールド信号q0〜q3
等の出力動作と全く同様にして、ディジタル出力D1の正
側に対して最大ピーク値a0〜a3等の検出、ゼロクロス時
刻t1,t3,t5,t7等の検出、及びピークホールド信号p0〜p
3等の出力動作が並列して行われる。なお、この場合
は、ピーク検出回路201から最大ピーク値検出信号MAXが
第10図に示すように出力され、第2図の波高値取込回路
203及びゼロクロス時刻取込回路204においては、この信
号MAXに基づいて最大ピーク値a0〜a3等、及び正負フラ
グ(この場合、正ピークであるから1)を含むゼロクロ
ス時刻t1,t3,t5,t7等がラッチされる。
する最小ピーク値b0〜b3(絶対値)、ゼロクロス時刻
t0,t2,t4,t6等の検出、及びピークホールド信号q0〜q3
等の出力動作と全く同様にして、ディジタル出力D1の正
側に対して最大ピーク値a0〜a3等の検出、ゼロクロス時
刻t1,t3,t5,t7等の検出、及びピークホールド信号p0〜p
3等の出力動作が並列して行われる。なお、この場合
は、ピーク検出回路201から最大ピーク値検出信号MAXが
第10図に示すように出力され、第2図の波高値取込回路
203及びゼロクロス時刻取込回路204においては、この信
号MAXに基づいて最大ピーク値a0〜a3等、及び正負フラ
グ(この場合、正ピークであるから1)を含むゼロクロ
ス時刻t1,t3,t5,t7等がラッチされる。
以上に示した動作により、第2図のゼロクロス時刻取
込回路204からは、第10図のゼロクロス時刻t0〜t7の各
時刻毎に割り込み信号INTが第1図のMCP3に出力され、
これに基づいた各時刻毎に、最小又は最大ピーク値(絶
対値)とゼロクロス時刻の組として、b0とt0、a0とt1、
b1とt2、a1とt3,・・・等が順次MCP3へ出力される。こ
こでMCP3において、最小ピーク値(負側のピーク値)で
あるのか最大ピーク値(正側のピーク値)であるのかの
判定は、ゼロクロス時刻の最上位ビットに付加されてい
る前記正負フラグにより可能である。
込回路204からは、第10図のゼロクロス時刻t0〜t7の各
時刻毎に割り込み信号INTが第1図のMCP3に出力され、
これに基づいた各時刻毎に、最小又は最大ピーク値(絶
対値)とゼロクロス時刻の組として、b0とt0、a0とt1、
b1とt2、a1とt3,・・・等が順次MCP3へ出力される。こ
こでMCP3において、最小ピーク値(負側のピーク値)で
あるのか最大ピーク値(正側のピーク値)であるのかの
判定は、ゼロクロス時刻の最上位ビットに付加されてい
る前記正負フラグにより可能である。
なお、上記動作の他に、第2図の波高値取込回路203
はMCP3からのアクセスによりディジタル出力D1の瞬時値
を任意に出力できる。これについては後述する。
はMCP3からのアクセスによりディジタル出力D1の瞬時値
を任意に出力できる。これについては後述する。
また、第2図のピーク検出回路201内のピークホール
ド回路で発生される第10図のピークホールド信号p0〜
p3,q0〜q3等の各減衰率(時定数)は、MCP3の制御下で
第2図の時定数変換制御回路202によって随時変更され
る。
ド回路で発生される第10図のピークホールド信号p0〜
p3,q0〜q3等の各減衰率(時定数)は、MCP3の制御下で
第2図の時定数変換制御回路202によって随時変更され
る。
基本的には、ディジタル出力D1の例えばピッチ周期時
間が経過した後に、上記ピークホールド信号が急速に減
衰するようにその時定数を変更する。そして、このとき
のピッチ周期情報の設定は、第1図のMCP3が後述する動
作により、各ピッチ周期の抽出を行った後にバスBUSを
介して、時定数変換制御回路202内の時定数変換レジス
タCHTRR(後述する)にピッチ周期情報をセットして行
う。これにより、時定数変換制御回路202は、内部に設
けられた特には図示しない各弦独立のカウンタと、MCP3
から時定数変換レジスタCHTRRに設定されたピッチ周期
情報との一致比較を行い、ピッチ周期時間が経過して一
致出力が発生した時点で、時定数チェンジ信号を前記ピ
ーク検出回路201へ送出する。この動作により、ピーク
ホールド信号は1ピッチ周期の時間が経過すると、急速
に減衰し、これにより次のピッチ周期のピークが適切に
検出される。
間が経過した後に、上記ピークホールド信号が急速に減
衰するようにその時定数を変更する。そして、このとき
のピッチ周期情報の設定は、第1図のMCP3が後述する動
作により、各ピッチ周期の抽出を行った後にバスBUSを
介して、時定数変換制御回路202内の時定数変換レジス
タCHTRR(後述する)にピッチ周期情報をセットして行
う。これにより、時定数変換制御回路202は、内部に設
けられた特には図示しない各弦独立のカウンタと、MCP3
から時定数変換レジスタCHTRRに設定されたピッチ周期
情報との一致比較を行い、ピッチ周期時間が経過して一
致出力が発生した時点で、時定数チェンジ信号を前記ピ
ーク検出回路201へ送出する。この動作により、ピーク
ホールド信号は1ピッチ周期の時間が経過すると、急速
に減衰し、これにより次のピッチ周期のピークが適切に
検出される。
なお、1ピッチ周期が経過する前に、ピーク検出回路
201において次の最大又は最小ピーク値検出信号MAX又は
MINが検出された場合は、これらの信号の立ち下がりの
タイミングで上記カウンタをリセットし、次のピークホ
ールド信号を生成するようにしている。
201において次の最大又は最小ピーク値検出信号MAX又は
MINが検出された場合は、これらの信号の立ち下がりの
タイミングで上記カウンタをリセットし、次のピークホ
ールド信号を生成するようにしている。
また、各弦の振動周期は、演奏者がフレット上で当該
弦を押さえる位置によって幅広く変化するため、ディジ
タル出力D1の各弦に対応する波形の立ち上がり時には、
その波形の振動を速やかに検知すべく、各弦の最高音周
期時間経過にてピークホールド信号が急速減衰し、その
直後は、各ピッチ周期の倍音を拾わないように、各弦の
開放弦周期(最低音周期)時間経過にて急速減衰するよ
うに設定が行われる。そして、ピッチ周期が有効に抽出
された後は、当該ピッチ周期時間経過にて急速減衰する
ように設定が行われ、演奏操作によるディジタル出力D1
の各弦のピッチ周期の変化に追従する。
弦を押さえる位置によって幅広く変化するため、ディジ
タル出力D1の各弦に対応する波形の立ち上がり時には、
その波形の振動を速やかに検知すべく、各弦の最高音周
期時間経過にてピークホールド信号が急速減衰し、その
直後は、各ピッチ周期の倍音を拾わないように、各弦の
開放弦周期(最低音周期)時間経過にて急速減衰するよ
うに設定が行われる。そして、ピッチ周期が有効に抽出
された後は、当該ピッチ周期時間経過にて急速減衰する
ように設定が行われ、演奏操作によるディジタル出力D1
の各弦のピッチ周期の変化に追従する。
更に、ピッチ検出回路201において、正負どちらのピ
ーク値に対して上記ピークホールドの制御を行うかは、
シリアルゼロクロス信号ZCRがハイレベルであるかロー
レベルであるかによって判定するようにしている(第10
図参照)。
ーク値に対して上記ピークホールドの制御を行うかは、
シリアルゼロクロス信号ZCRがハイレベルであるかロー
レベルであるかによって判定するようにしている(第10
図参照)。
{中央制御装置(MCP)の動作} 以上の動作により、第1図のピッチ抽出回路2から供
給される最大又は最小ピーク値、ゼロクロス時刻、およ
びピーク値の正負を示す正負フラグに基づいて、第1図
のMCP3が、ピッチ抽出及び音量・音色に関するパラメー
タの抽出を行うことにより、楽音発生回路501を制御す
るための楽音制御情報を発生する。なお、MCP3はROM301
に記憶されたプログラムに従って、以下に詳細に説明す
るように第3図〜第9図に示す動作フローチャートを実
行する。
給される最大又は最小ピーク値、ゼロクロス時刻、およ
びピーク値の正負を示す正負フラグに基づいて、第1図
のMCP3が、ピッチ抽出及び音量・音色に関するパラメー
タの抽出を行うことにより、楽音発生回路501を制御す
るための楽音制御情報を発生する。なお、MCP3はROM301
に記憶されたプログラムに従って、以下に詳細に説明す
るように第3図〜第9図に示す動作フローチャートを実
行する。
(変数の説明) はじめに、後述する第3図〜第9図の動作フローチャ
ートで示される制御プログラムにおいて用いられる各変
数について、以下に列挙しておく。
ートで示される制御プログラムにおいて用いられる各変
数について、以下に列挙しておく。
AD・・・第1図のピッチ抽出ディジタル回路2への入
力波形D1を直接読んだ入力高値(瞬時値) AMP(0,1)・・・正又は負の前回(old)の波高値
(ピーク値) AMRL1・・・振幅レジスタで記憶されているリラティ
ブ(relative)オフ(off)のチェックのための前回の
振幅値(ピーク値)である。ここで、前記リラティブオ
フとは波高値が急激に減衰してきたことに基づき消音す
ることで、フレット操作をやめて開放弦へ移ったときの
消音処理に相当する。
力波形D1を直接読んだ入力高値(瞬時値) AMP(0,1)・・・正又は負の前回(old)の波高値
(ピーク値) AMRL1・・・振幅レジスタで記憶されているリラティ
ブ(relative)オフ(off)のチェックのための前回の
振幅値(ピーク値)である。ここで、前記リラティブオ
フとは波高値が急激に減衰してきたことに基づき消音す
ることで、フレット操作をやめて開放弦へ移ったときの
消音処理に相当する。
AMRL2・・・振幅レジスタで記憶されている前記リラ
ティブオフのための前々回の振幅値(ピーク値)で、こ
れにはAMRL1の値が入力される。
ティブオフのための前々回の振幅値(ピーク値)で、こ
れにはAMRL1の値が入力される。
CHTIM・・・最高音フレット(22フレット目)に対応
する周期 CHTIO・・・開放弦フレットに対応する周期 CHTRR・・・時定数変換レジスタで、上述の時定数変
換制御回路202(第2図)の内部に設けられている。
する周期 CHTIO・・・開放弦フレットに対応する周期 CHTRR・・・時定数変換レジスタで、上述の時定数変
換制御回路202(第2図)の内部に設けられている。
DUB・・・波形が続けて同一方向にきたことを示すフ
ラグ、 FOFR・・・リラティブオフカウンタ、 NHC・・・波形ナンバーカウンタ MT・・・これからピッチ抽出を行う側のフラグ(正=
1、負=0) NCHLV・・・ノーチェンジレベル(定数) OFTIM・・・オフタイム(例えば当該弦の開放弦周期
に相当) OFPT・・・通常オフチェック開始フラグ ONF・・・ノートオンフラグ RIV・・・後述のステップ(STEP)4での処理ルート
の切替を行うためのフラグ ROFCT・・・リラティブオフのチェック回数を定める
定数 STEP・・・MCP3のフロー動作を指定するレジスタ(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・・・速度(ベロシティ)を定める情報で、発音
開始時の波形の最大ピークにて定まる。
ラグ、 FOFR・・・リラティブオフカウンタ、 NHC・・・波形ナンバーカウンタ MT・・・これからピッチ抽出を行う側のフラグ(正=
1、負=0) NCHLV・・・ノーチェンジレベル(定数) OFTIM・・・オフタイム(例えば当該弦の開放弦周期
に相当) OFPT・・・通常オフチェック開始フラグ ONF・・・ノートオンフラグ RIV・・・後述のステップ(STEP)4での処理ルート
の切替を行うためのフラグ ROFCT・・・リラティブオフのチェック回数を定める
定数 STEP・・・MCP3のフロー動作を指定するレジスタ(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に記憶されている今
回の周期情報 tt12・・・倍音を抽出してしまったか否かを判定する
閾値情報 (割り込み処理ルーチンの動作) 次に、第3図は、MCP3へピッチ抽出ディジタル回路2
内のゼロクロス時刻取込回路204(第2図)から、割り
込み信号INTにより割り込みがかけられたときの処理を
示す割り込み処理ルーチンの動作フローチャートを示し
た図である。
正負フラグ(正ピークの次のゼロ点のとき1、負ピーク
の次のゼロ点のとき0) c・・・ワーキングレジスタCに記憶されている今回
波高値(ピーク値) e・・・ワーキングレジスタEに記憶されている前々
回波高値(ピーク値) h・・・ワーキングレジスタHに記憶されている前々
回抽出された周期データ t・・・ワーキングレジスタT0に記憶されている今回
のゼロクロス時刻 tt・・・ワーキングレジスタTOTOに記憶されている今
回の周期情報 tt12・・・倍音を抽出してしまったか否かを判定する
閾値情報 (割り込み処理ルーチンの動作) 次に、第3図は、MCP3へピッチ抽出ディジタル回路2
内のゼロクロス時刻取込回路204(第2図)から、割り
込み信号INTにより割り込みがかけられたときの処理を
示す割り込み処理ルーチンの動作フローチャートを示し
た図である。
前記したように、ゼロクロス時刻取込回路204から割
り込み信号INTが出力される時点においては、第2図の
波高値取込回路203には最大又は最小ピーク値(絶対
値)がホールドされ、ゼロクロス時刻取込回路204には
当該ピーク値発生直後のゼロクロス時刻、及び直前のピ
ーク値が最大(正の)ピーク値である場合1、最小(負
の)ピーク値である場合0を示す正負フラグがラッチさ
れている。
り込み信号INTが出力される時点においては、第2図の
波高値取込回路203には最大又は最小ピーク値(絶対
値)がホールドされ、ゼロクロス時刻取込回路204には
当該ピーク値発生直後のゼロクロス時刻、及び直前のピ
ーク値が最大(正の)ピーク値である場合1、最小(負
の)ピーク値である場合0を示す正負フラグがラッチさ
れている。
そこで、MCP3はまず第3図のI 1において、アドレス
デコーダ4に所定のアドレス読み出し信号ARをセット
し、第2図のゼロクロス時刻取込回路204に対して、弦
番号読み込み信号▲▼を出力させる。これに
より同回路204からは、まずどの弦番号について上記割
り込みが発生したのかを示す弦番号が、バスBUSを介し
てMCP3に出力される。続いて、MCP3はアドレスデコーダ
4に別のアドレス読み出し信号ARをセットし、ゼロクロ
ス時刻取込回路204に対して、時刻読み込み信号▲
▼〜▲▼のうち上記弦番号に対応
する信号を出力させる。これにより同回路204からは、
上記時刻読み込み信号▲▼(i=1〜6の
うちいずれか)で指定される弦番号対応のラッチにセッ
トされているゼロクロス時刻情報が、バスBUSを介してM
CP3に出力される。これを第3図I 1に示すように今回の
ゼロクロス時刻tとする。
デコーダ4に所定のアドレス読み出し信号ARをセット
し、第2図のゼロクロス時刻取込回路204に対して、弦
番号読み込み信号▲▼を出力させる。これに
より同回路204からは、まずどの弦番号について上記割
り込みが発生したのかを示す弦番号が、バスBUSを介し
てMCP3に出力される。続いて、MCP3はアドレスデコーダ
4に別のアドレス読み出し信号ARをセットし、ゼロクロ
ス時刻取込回路204に対して、時刻読み込み信号▲
▼〜▲▼のうち上記弦番号に対応
する信号を出力させる。これにより同回路204からは、
上記時刻読み込み信号▲▼(i=1〜6の
うちいずれか)で指定される弦番号対応のラッチにセッ
トされているゼロクロス時刻情報が、バスBUSを介してM
CP3に出力される。これを第3図I 1に示すように今回の
ゼロクロス時刻tとする。
続いて、第3図のI 2において、前記「ピッチ抽出デ
ィジタル回路の動作」の項で説明したように、ゼロクロ
ス時刻情報の最上位ビットに付加されている正負フラグ
を取り出しこれを今回正負フラグbとする。
ィジタル回路の動作」の項で説明したように、ゼロクロ
ス時刻情報の最上位ビットに付加されている正負フラグ
を取り出しこれを今回正負フラグbとする。
その後、第3図のI 3において、MCP3は前記と同様に
アドレスデコーダ4を介して、第2図の波高値取込回路
203に対して、ピーク値読み込み▲▼(j=1
〜12のうちいずれか)を出力させる。ここで、同回路20
3内には、特には図示しないが、6弦分の最大ピーク値
及び最小ピーク値をホールドする12個のラッチがあるた
め、MCP3は前記弦番号及び正負フラグbに基づいて、上
記ピーク値読み込み信号▲▼を選択して出力さ
せる。これにより同回路203からは、当該ピーク値読み
込み信号▲▼で指定されるラッチにセットされ
ている最大ピーク値または最小ピーク値(絶対値)が、
バスBUSを介してMCP3に出力される。これを第3図I 3に
示すように、今回ピーク値cとする。
アドレスデコーダ4を介して、第2図の波高値取込回路
203に対して、ピーク値読み込み▲▼(j=1
〜12のうちいずれか)を出力させる。ここで、同回路20
3内には、特には図示しないが、6弦分の最大ピーク値
及び最小ピーク値をホールドする12個のラッチがあるた
め、MCP3は前記弦番号及び正負フラグbに基づいて、上
記ピーク値読み込み信号▲▼を選択して出力さ
せる。これにより同回路203からは、当該ピーク値読み
込み信号▲▼で指定されるラッチにセットされ
ている最大ピーク値または最小ピーク値(絶対値)が、
バスBUSを介してMCP3に出力される。これを第3図I 3に
示すように、今回ピーク値cとする。
以上の動作の後、第3図のI 4において、上記のよう
にして得たt,c,bの値をMCP3内の特には図示しないレジ
スタT0,C,Bにセットする。このレジスタには、上記割り
込み処理がなされる都度、このようなゼロクロス時刻情
報、ピーク値情報(絶対値)、ピークの種類を示す正負
フラグの情報がワンセットとして書込まれていき、後述
するメインルーチンで、各弦毎にかかる情報に対する処
理がなされる。
にして得たt,c,bの値をMCP3内の特には図示しないレジ
スタT0,C,Bにセットする。このレジスタには、上記割り
込み処理がなされる都度、このようなゼロクロス時刻情
報、ピーク値情報(絶対値)、ピークの種類を示す正負
フラグの情報がワンセットとして書込まれていき、後述
するメインルーチンで、各弦毎にかかる情報に対する処
理がなされる。
なお、上記レジスタT0,C,Bは、6弦に対応して6個ず
つあり、以下第4図〜第9図に説明する楽音制御の処理
は、6弦分について全て時分割で行われるが、これ以後
は簡単のため1弦分の処理について述べてゆく。
つあり、以下第4図〜第9図に説明する楽音制御の処理
は、6弦分について全て時分割で行われるが、これ以後
は簡単のため1弦分の処理について述べてゆく。
(メインルーチンの動作) 第4図は、メインルーチンの処理を示す動作フローチ
ャートである。ここでは、パーワーON後の初期化(イニ
シャライズ)、楽音のノートオフ(消音)処理、及びST
EP0〜STEP4(又は5)の各処理の選択の処理を行う。本
実施例では、楽音制御の処理を後述するようにステップ
という処理概念で行っており、後述するように、STEP0
→STEP1→STEP2→STEP3→STEP4(→STEP5)→STEP0とい
う順で楽音制御を行ってゆく。
ャートである。ここでは、パーワーON後の初期化(イニ
シャライズ)、楽音のノートオフ(消音)処理、及びST
EP0〜STEP4(又は5)の各処理の選択の処理を行う。本
実施例では、楽音制御の処理を後述するようにステップ
という処理概念で行っており、後述するように、STEP0
→STEP1→STEP2→STEP3→STEP4(→STEP5)→STEP0とい
う順で楽音制御を行ってゆく。
なお、本発明に特に関係するのは、STEP4におけるル
ートの処理である。
ートの処理である。
《基本動作》 第4図において、まず、パワーオン(電源投入)する
ことにより、M1において各種レジスタやフラグがイニシ
ャライズされ、レジスタSTEPが0とされる。またこの場
合、前記「ピッチ抽出ディジタル回路の動作」の項の時
定数変換制御回路202(第2図)の説明において述べた
ように、初期状態において、ピーク検出回路201(第2
図)がディジタル出力D1の波形の立ち上がり時の振動を
速やかに検知できるように、MCP3がバスBUSを介して時
定数変換制御回路202内の時定数変換レジスタCHTRRに最
高音フレックス周期CHTIMをセットし、ピーク検出回路2
01内のピークホールド回路から出力されるピークホール
ド信号(第10図p0またはq0等)が、最高音周期時間経過
にて急速減衰するように制御される。
ことにより、M1において各種レジスタやフラグがイニシ
ャライズされ、レジスタSTEPが0とされる。またこの場
合、前記「ピッチ抽出ディジタル回路の動作」の項の時
定数変換制御回路202(第2図)の説明において述べた
ように、初期状態において、ピーク検出回路201(第2
図)がディジタル出力D1の波形の立ち上がり時の振動を
速やかに検知できるように、MCP3がバスBUSを介して時
定数変換制御回路202内の時定数変換レジスタCHTRRに最
高音フレックス周期CHTIMをセットし、ピーク検出回路2
01内のピークホールド回路から出力されるピークホール
ド信号(第10図p0またはq0等)が、最高音周期時間経過
にて急速減衰するように制御される。
続いて、第4図のM2で、前記「割り込み処理ルーチン
の動作」の項で説明したレジスタが空かどうかが判断さ
れ、ノー(以下、NOと称す)の場合にはM3に進み、各レ
ジスタB,C,T0の内容が読まれる。続いて、M4において、
レジスタSTEPの値はいくつかが判断され、M5ではSTEP0,
M6ではSTEP1,M7ではSTEP2,M8ではSTEP3、M9ではSTEP4の
処理が順次実行される。なお、次のステップへの更新
は、後述するように各STEP0〜STEP4の処理において行わ
れる。
の動作」の項で説明したレジスタが空かどうかが判断さ
れ、ノー(以下、NOと称す)の場合にはM3に進み、各レ
ジスタB,C,T0の内容が読まれる。続いて、M4において、
レジスタSTEPの値はいくつかが判断され、M5ではSTEP0,
M6ではSTEP1,M7ではSTEP2,M8ではSTEP3、M9ではSTEP4の
処理が順次実行される。なお、次のステップへの更新
は、後述するように各STEP0〜STEP4の処理において行わ
れる。
《ノートオフ動作》 前記M2でバッファが空の場合、すなわちイエス(以
下、YESと称する)の場合、M10〜M19への処理に進み、
ここで通常のノートオフのアルゴリズムの処理が行われ
る。このノートオフのアルゴリズムは、ディジタル出力
D1(第1図)において、その波高値がオフ(OFF)レベ
ル以下の状態が所定のオフタイム時間続いたら、ノート
オフするアルゴリズムである。
下、YESと称する)の場合、M10〜M19への処理に進み、
ここで通常のノートオフのアルゴリズムの処理が行われ
る。このノートオフのアルゴリズムは、ディジタル出力
D1(第1図)において、その波高値がオフ(OFF)レベ
ル以下の状態が所定のオフタイム時間続いたら、ノート
オフするアルゴリズムである。
まず、M10でSTEP=0かどうかが判断され、YESの場合
には、楽音を発生していない初期状態のため、ノートオ
フはする必要がなく、M2に戻る。一方、NOの場合には、
M11に進む。
には、楽音を発生していない初期状態のため、ノートオ
フはする必要がなく、M2に戻る。一方、NOの場合には、
M11に進む。
M11では、その時点のディジタル出力D1の入力波高値
(瞬時値)ADが直接読まれる。これは、MCP3がアドレス
デコーダ4を介して、波高値取込み回路203(第2図)
へピーク値読み込み信号▲▼〜▲
▼のいずれかを与えることにより、同回路203がディジ
タル出力D1の現在の瞬時値を、バスBUSを介してMCP3に
出力することで達成できる。そして、この値ADが、予め
設定したオフレベル以下かどうかが判断され、NOの場合
はノートオフする必要がないためM2に戻り、YESの場合
にはM12に進む。
(瞬時値)ADが直接読まれる。これは、MCP3がアドレス
デコーダ4を介して、波高値取込み回路203(第2図)
へピーク値読み込み信号▲▼〜▲
▼のいずれかを与えることにより、同回路203がディジ
タル出力D1の現在の瞬時値を、バスBUSを介してMCP3に
出力することで達成できる。そして、この値ADが、予め
設定したオフレベル以下かどうかが判断され、NOの場合
はノートオフする必要がないためM2に戻り、YESの場合
にはM12に進む。
M12では、前回の入力波高値ADがオフレベル以下かど
うかが判断され、NOの場合には、M17に進みMCP3内のタ
イマ303をスタートし、M2に戻る。そして、次に再びこ
の処理にきたときに、M12はYESとなるため、M13に進
み、ここでタイマ303の値がオフタイムOFTIMかどうかが
判断される。オフタイムOFTIMとしては例えば処理をし
ている弦の開放弦フレット周期CHTIOがセットされてお
り、M13でNOの場合にはM2に戻って処理が繰り返され、Y
ESとなるとM14に進み、レジスタSTEPに0を書き込み、
時定数変換レジスタCHTRRへ最高音フレット周期CHTIMを
セットした後、M15を介して(後述する)、M16に進む。
すなわち、ディジタル出力D1のレベルが減衰してきた場
合、オフレベル以下の入力波高値ADがオフタイムOFTIM
に相当する時間続くと、ディジタル出力D1が入力せず弦
が弾かれなくなったと判断できるため、M16に進んでノ
ートオフの処理がされる。
うかが判断され、NOの場合には、M17に進みMCP3内のタ
イマ303をスタートし、M2に戻る。そして、次に再びこ
の処理にきたときに、M12はYESとなるため、M13に進
み、ここでタイマ303の値がオフタイムOFTIMかどうかが
判断される。オフタイムOFTIMとしては例えば処理をし
ている弦の開放弦フレット周期CHTIOがセットされてお
り、M13でNOの場合にはM2に戻って処理が繰り返され、Y
ESとなるとM14に進み、レジスタSTEPに0を書き込み、
時定数変換レジスタCHTRRへ最高音フレット周期CHTIMを
セットした後、M15を介して(後述する)、M16に進む。
すなわち、ディジタル出力D1のレベルが減衰してきた場
合、オフレベル以下の入力波高値ADがオフタイムOFTIM
に相当する時間続くと、ディジタル出力D1が入力せず弦
が弾かれなくなったと判断できるため、M16に進んでノ
ートオフの処理がされる。
M16では、MCP3が楽音発生回路501(第1図)に対し
て、ノートオフの指示を送出し、これにより楽音の発音
が停止される。このようにノートオフされた場合には、
必ずSTEP0に戻る。
て、ノートオフの指示を送出し、これにより楽音の発音
が停止される。このようにノートオフされた場合には、
必ずSTEP0に戻る。
なお、ステップM15において、通常の状態ではYESの判
断がなされるが、後述するような処理によって、楽音の
発音を指示していない場合でもレジスタSTEPは0以外の
値をとっていることがあり(例えばノイズの入力によ
る)、そのようなときには、M14,M15の処理後M2へ戻る
ことで、STEP0へ初期設定される。
断がなされるが、後述するような処理によって、楽音の
発音を指示していない場合でもレジスタSTEPは0以外の
値をとっていることがあり(例えばノイズの入力によ
る)、そのようなときには、M14,M15の処理後M2へ戻る
ことで、STEP0へ初期設定される。
(STEP0の処理動作) 次に、第4図のメインルーチンにおいて分岐して対応
する処理を行う各ルーチンの詳細について説明を行う。
する処理を行う各ルーチンの詳細について説明を行う。
まず、第5図は、第4図のメインルーチンのM5として
示すステップ0(STEP0)の処理の動作フローチャート
である。この処理においては、ピッチ抽出処理等のため
の初期設定、及び次のSTEP1への移行処理を行う。以下
第11図の基本動作説明図を用いて説明を行う。なお、第
11図は第10図と同一の波形である。
示すステップ0(STEP0)の処理の動作フローチャート
である。この処理においては、ピッチ抽出処理等のため
の初期設定、及び次のSTEP1への移行処理を行う。以下
第11図の基本動作説明図を用いて説明を行う。なお、第
11図は第10図と同一の波形である。
《基本動作》 今、第4図のメインルーチンは、M2とM10のループの
繰り返しにより、前記「割り込み処理ルーチンの動作」
の項において説明したように、ピッチ抽出ディジタル回
路2(第1図)から割り込みが掛かって、レジスタT0、
C、Bにデータが入力するのを待っている。
繰り返しにより、前記「割り込み処理ルーチンの動作」
の項において説明したように、ピッチ抽出ディジタル回
路2(第1図)から割り込みが掛かって、レジスタT0、
C、Bにデータが入力するのを待っている。
そして、データが入力し、第4図のM2からM3を経て上
記各レジスタの内容が読み込まれると、M4を介してM5、
即ち第5図のSTEP0に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t0、
今回正負フラグb=0、今回ピーク値cはb=0より最
小ピーク値でc=b0(絶対値)である。なお、第11図で
bとb0〜b3等は異なる記号である。
記各レジスタの内容が読み込まれると、M4を介してM5、
即ち第5図のSTEP0に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t0、
今回正負フラグb=0、今回ピーク値cはb=0より最
小ピーク値でc=b0(絶対値)である。なお、第11図で
bとb0〜b3等は異なる記号である。
まず、第5図のS01において、今回ピーク値cの値
が、絶対トリガレベル(ノートオンのための正の閾値)
TRLAB(b)より大きいか否かが判定される。なお、こ
の判定は、今回正負フラグbの値に基づき正と負の各極
性(最大ピーク値又は最小ピーク値)の各々について実
行され、正側の絶対トリガレベルTRLAB(1)と負側の
絶対トリガレベルTRLAB(0)は、ディジタル出力D1
(第1図)にオフセットが重畳された場合等を考慮し
て、経験的に別々の値に設定することができる。理想的
なシステムでは同じ値でよい。第11図の例では、今回最
小ピーク値c=b0(絶対値)とTRLAB(b)=TRLAB
(0)とが比較され、c=b0>TRLAB(0)、即ち判定
はYESとなる。
が、絶対トリガレベル(ノートオンのための正の閾値)
TRLAB(b)より大きいか否かが判定される。なお、こ
の判定は、今回正負フラグbの値に基づき正と負の各極
性(最大ピーク値又は最小ピーク値)の各々について実
行され、正側の絶対トリガレベルTRLAB(1)と負側の
絶対トリガレベルTRLAB(0)は、ディジタル出力D1
(第1図)にオフセットが重畳された場合等を考慮し
て、経験的に別々の値に設定することができる。理想的
なシステムでは同じ値でよい。第11図の例では、今回最
小ピーク値c=b0(絶対値)とTRLAB(b)=TRLAB
(0)とが比較され、c=b0>TRLAB(0)、即ち判定
はYESとなる。
次に、S02を経た後(後述する)、S03の処理が実行さ
れる。ここでは、まず、今回正負フラグbがフラグMTに
書き込まれ、レジスタSTEPに1が書き込まれて次のステ
ップへの移行準備がなされ、更に、今回のゼロクロス時
刻tが以降の処理のために前回のゼロクロス時刻データ
TFN(b)として設定される。第11図の例では、同図に
示すようにMT=b=0、TFN(b)=TFN(0)=t=t0
となる。
れる。ここでは、まず、今回正負フラグbがフラグMTに
書き込まれ、レジスタSTEPに1が書き込まれて次のステ
ップへの移行準備がなされ、更に、今回のゼロクロス時
刻tが以降の処理のために前回のゼロクロス時刻データ
TFN(b)として設定される。第11図の例では、同図に
示すようにMT=b=0、TFN(b)=TFN(0)=t=t0
となる。
続いて、S04において、「変数の説明」の項に示した
上記フラグ以外のその他フラグ類(定数値を除く)が初
期化される。
上記フラグ以外のその他フラグ類(定数値を除く)が初
期化される。
更に、S05においては、今回ピーク値cが以降の処理
のために前回のピーク値AMP(b)(絶対値)としてセ
ットされ、第4図のメインルーチンのM2の処理に戻る。
第11図の例では、同図に示すようにAMP(b)=AMP
(0)=c=b0となる。
のために前回のピーク値AMP(b)(絶対値)としてセ
ットされ、第4図のメインルーチンのM2の処理に戻る。
第11図の例では、同図に示すようにAMP(b)=AMP
(0)=c=b0となる。
以上の処理により、第11図の例では、同図(STEP0→
1の間)に示すようにフラグMTにレジスタBの今回正負
フラグb=0が書き込まれ、負側の前回のゼロクロス時
刻のデータTFN(0)にレジスタT0の今回のゼロクロス
時刻データt=t0が書き込まれ、負側の前回のピーク値
AMP(0)にレジスタCの今回最小ピーク値c=b0が書
き込まれる。
1の間)に示すようにフラグMTにレジスタBの今回正負
フラグb=0が書き込まれ、負側の前回のゼロクロス時
刻のデータTFN(0)にレジスタT0の今回のゼロクロス
時刻データt=t0が書き込まれ、負側の前回のピーク値
AMP(0)にレジスタCの今回最小ピーク値c=b0が書
き込まれる。
《共振除去動作》 なお、第5図のS01において、今回ピーク値cの値が
絶対トリガレベルTRLAB(b)以下の場合は、発音(ノ
ートオン)の処理へは移行せず、S05において前回のピ
ーク値AMP(b)に今回ピーク値Cの値をセットするだ
けで、第4図のメインルーチンへ戻る。ところが、1本
の弦をピッキングすることにより、他の弦が共振を起こ
すような場合、当該他の弦については振動のレベルが徐
々に大きくなり、やがて第5図のS01の判定結果がYESと
なり、S02の処理に移る。しかし、このような場合、正
規のピッキングを行った訳ではないので、発音(ノート
オン)の動作に移行するのは妥当ではない。そこで、S0
2の処理において上記共振の除去を行う。即ち、上記の
ような場合、今回ピーク値cは前回のピーク値AMP
(b)に比べてほとんど大きくなっていないため、その
差c−AMP(b)が共振除去しきい値TRLRSより大きくな
い場合には、上記共振状態が発生したと判定して、発音
処理へは移行せず、S05において前回のピーク値AMP
(b)に今回ピーク値cの値をセットするだけで、第4
図のメインルーチンに戻る。一方、第11図のような正常
なピッキングを行った場合に、波形が急激に立上ること
になり、前記ピーク値の差c−AMP(b)は共振除去閾
値TRLRSを越え、前記したようにS02からS03の処理へ移
行する。
絶対トリガレベルTRLAB(b)以下の場合は、発音(ノ
ートオン)の処理へは移行せず、S05において前回のピ
ーク値AMP(b)に今回ピーク値Cの値をセットするだ
けで、第4図のメインルーチンへ戻る。ところが、1本
の弦をピッキングすることにより、他の弦が共振を起こ
すような場合、当該他の弦については振動のレベルが徐
々に大きくなり、やがて第5図のS01の判定結果がYESと
なり、S02の処理に移る。しかし、このような場合、正
規のピッキングを行った訳ではないので、発音(ノート
オン)の動作に移行するのは妥当ではない。そこで、S0
2の処理において上記共振の除去を行う。即ち、上記の
ような場合、今回ピーク値cは前回のピーク値AMP
(b)に比べてほとんど大きくなっていないため、その
差c−AMP(b)が共振除去しきい値TRLRSより大きくな
い場合には、上記共振状態が発生したと判定して、発音
処理へは移行せず、S05において前回のピーク値AMP
(b)に今回ピーク値cの値をセットするだけで、第4
図のメインルーチンに戻る。一方、第11図のような正常
なピッキングを行った場合に、波形が急激に立上ること
になり、前記ピーク値の差c−AMP(b)は共振除去閾
値TRLRSを越え、前記したようにS02からS03の処理へ移
行する。
《リラティブオンのエントリ動作》 第5図において、Aは後述するリラティブオン(再発
音開始)のエントリであり、後述するSTEP4のフローか
らこのS06へジャンプしてくる。そして、S06では今まで
出力している楽音を一度除去し(ノートオフ)し、再発
音開始のためにS03へ進行する。この再発音開始のため
の処理は、通常の発音開始のときと同様であり、前記し
たとおりである。ここでS06のノートオフの処理は、第
4図の前記M16の処理と同じである。
音開始)のエントリであり、後述するSTEP4のフローか
らこのS06へジャンプしてくる。そして、S06では今まで
出力している楽音を一度除去し(ノートオフ)し、再発
音開始のためにS03へ進行する。この再発音開始のため
の処理は、通常の発音開始のときと同様であり、前記し
たとおりである。ここでS06のノートオフの処理は、第
4図の前記M16の処理と同じである。
(STEP1の処理動作) 次に、第6図は、第4図のメインルーチンのM6として
示すステップ1(STEP1)の処理の動作フローチャート
である。この処理においては、前記STEP0に続くピッチ
抽出処理等のための初期設定とそれに続くSTEP2への移
行処理、又はおかしな波形が入力したときのダブリ処理
(エラー処理)等を行う。
示すステップ1(STEP1)の処理の動作フローチャート
である。この処理においては、前記STEP0に続くピッチ
抽出処理等のための初期設定とそれに続くSTEP2への移
行処理、又はおかしな波形が入力したときのダブリ処理
(エラー処理)等を行う。
《基本動作》 まず、前記STEP0により、最初のデータに対する初期
設定が行われた後、第4図のメインルーチンでは、M2→
M10→M11→M2のループの繰り返しにより、前記ピッチ抽
出デジタル回路2(第1図)から再び割り込みがかかっ
て、レジスタT0、C、Bに次のデータが入力するのを待
っている。
設定が行われた後、第4図のメインルーチンでは、M2→
M10→M11→M2のループの繰り返しにより、前記ピッチ抽
出デジタル回路2(第1図)から再び割り込みがかかっ
て、レジスタT0、C、Bに次のデータが入力するのを待
っている。
そして、データが入力し、第4図のM2からM3を経て上
記各レジスタの内容が読み込まれると、M4を介してM6、
即ち第6図のSTEP1に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t1、
今回正負フラグb=1、今回ピーク値はb=1より最大
ピーク値でc=a0である。
記各レジスタの内容が読み込まれると、M4を介してM6、
即ち第6図のSTEP1に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t1、
今回正負フラグb=1、今回ピーク値はb=1より最大
ピーク値でc=a0である。
まず、第6図のS11を介して(後述する)、S12におい
て前記「STEP0の処理動作」の項における第5図のS01の
説明で述べたのと全く同様に、今回ピーク値cの値が、
絶対トリガレベルTRLAB(b)より大きいか否かが判定
される。第11図の例では、今回最大ピーク値c=a0とTR
LAB(b)=TRLAB(1)とが比較され、c=a0>TRLAB
(1)、即ち判定はYESとなる。
て前記「STEP0の処理動作」の項における第5図のS01の
説明で述べたのと全く同様に、今回ピーク値cの値が、
絶対トリガレベルTRLAB(b)より大きいか否かが判定
される。第11図の例では、今回最大ピーク値c=a0とTR
LAB(b)=TRLAB(1)とが比較され、c=a0>TRLAB
(1)、即ち判定はYESとなる。
次に、S13でレジスタSTEPに2が書き込まれ次のステ
ップへの移行準備がなされる。
ップへの移行準備がなされる。
続いて、S14において、レジスタT0の今回のゼロクロ
ス時刻tが以降の処理のために前回のゼロクロス時刻デ
ータTFN(b)として設定される。更に、S15において、
レジスタcの今回ピーク値cが以降の処理のために前回
のピーク値AMP(b)としてセットされ、第4図のメイ
ンルーチンのM2の処理に戻る。第11図の例では、同図に
示すようにTFN(1)=t=t1、AMP(1)=c=a0とな
る。なお、MTの内容は書き替えられず0のままである。
ス時刻tが以降の処理のために前回のゼロクロス時刻デ
ータTFN(b)として設定される。更に、S15において、
レジスタcの今回ピーク値cが以降の処理のために前回
のピーク値AMP(b)としてセットされ、第4図のメイ
ンルーチンのM2の処理に戻る。第11図の例では、同図に
示すようにTFN(1)=t=t1、AMP(1)=c=a0とな
る。なお、MTの内容は書き替えられず0のままである。
《ダブリ処理の動作》 第11図のような正常なディジタル出力D1が入力してい
る場合には、前記STEP0において負(正)側の最小
(大)ピーク値(絶対値)が抽出された後は、STEP1に
おいて反対に正(負)側の最大(小)ピーク値が抽出さ
れる。従って、第6図のS11においては、今回正負フラ
グb=1(0)はSTEP0でセットされたフラグMT=0
(1)と異なるため、前記したようにS12に進む。
る場合には、前記STEP0において負(正)側の最小
(大)ピーク値(絶対値)が抽出された後は、STEP1に
おいて反対に正(負)側の最大(小)ピーク値が抽出さ
れる。従って、第6図のS11においては、今回正負フラ
グb=1(0)はSTEP0でセットされたフラグMT=0
(1)と異なるため、前記したようにS12に進む。
ところが、場合により、STEP0の後にSTEP1で第12図
(a)又は(b)に示すような波形が入力することがあ
る。この場合、STEP0で負側の最小ピーク値b0が抽出さ
れた後、STEP1で再び負側の最小ピーク値b1がダブって
抽出される。従って、第6図のS11においては、今回正
負フラグはb=0となり、STEP0でセットされたフラグM
T=0と一致する。この場合は、第6図のS16に進み、ダ
ブリ処理(エラー処理)を行う。
(a)又は(b)に示すような波形が入力することがあ
る。この場合、STEP0で負側の最小ピーク値b0が抽出さ
れた後、STEP1で再び負側の最小ピーク値b1がダブって
抽出される。従って、第6図のS11においては、今回正
負フラグはb=0となり、STEP0でセットされたフラグM
T=0と一致する。この場合は、第6図のS16に進み、ダ
ブリ処理(エラー処理)を行う。
S16では、ピーク値cの値が同じ符号の前回のピーク
値AMP(b)より大きいか否かが判定される。
値AMP(b)より大きいか否かが判定される。
今、第12図(a)のような場合、c=b1>AMP(b)
=AMP(0)=b0は成立しない。このような場合は、今
回の最小ピーク値b1はおかしな波形として無視し(斜線
部)、STEPは更新せずに、第4図のメインルーチンのM2
の処理に戻り、次の正常なピークが入力されるのを待
つ。
=AMP(0)=b0は成立しない。このような場合は、今
回の最小ピーク値b1はおかしな波形として無視し(斜線
部)、STEPは更新せずに、第4図のメインルーチンのM2
の処理に戻り、次の正常なピークが入力されるのを待
つ。
一方、第12図(b)のような場合、c=b1>APM
(b)=AMP(0)=b0は成立する。このような場合
は、前回のSTEP0で抽出した最小ピーク値b0の方をおか
しな波形として無視し(斜線部)、STEP0においてセッ
トされた負側の前回のゼロクロス時刻データTNF
(0)、及び負側の前回のピーク値AMP(0)の内容
を、第6図のS14、S15により今回のゼロクロス時刻t及
び今回ピーク値cと入れ替えて変更する。即ち、第12図
(b)の例では、TFN(0)=t=t1、AMP(0)=c=
b1となる。このダブリ処理の後、STEPは更新せずに(第
6図のS13を通らない)、第4図のメインルーチンのM2
の処理に戻り、次の正常なピークが入力されるのを待
つ。
(b)=AMP(0)=b0は成立する。このような場合
は、前回のSTEP0で抽出した最小ピーク値b0の方をおか
しな波形として無視し(斜線部)、STEP0においてセッ
トされた負側の前回のゼロクロス時刻データTNF
(0)、及び負側の前回のピーク値AMP(0)の内容
を、第6図のS14、S15により今回のゼロクロス時刻t及
び今回ピーク値cと入れ替えて変更する。即ち、第12図
(b)の例では、TFN(0)=t=t1、AMP(0)=c=
b1となる。このダブリ処理の後、STEPは更新せずに(第
6図のS13を通らない)、第4図のメインルーチンのM2
の処理に戻り、次の正常なピークが入力されるのを待
つ。
上記動作の後、正常なピーク値が入力すると、第6図
のS11→S12→S13→S14→S15により前記した処理が行わ
れ、例えば第11図に示すようにt=t1で、次のSTEP2の
処理への移行が行われる。
のS11→S12→S13→S14→S15により前記した処理が行わ
れ、例えば第11図に示すようにt=t1で、次のSTEP2の
処理への移行が行われる。
(STEP2の処理動作) 次に、第7図は、第4図のメインルーチンのM7として
示すステップ2(STEP2)の処理の動作フローチャート
である。この処理においては、ピッチ抽出のための第1
回目のピッチ周期の検出、ベロシティーの設定、及びST
EP3への移行処理、又はおかしな波形が入力したときの
エラー処理(ダブリ処理)等を行う。
示すステップ2(STEP2)の処理の動作フローチャート
である。この処理においては、ピッチ抽出のための第1
回目のピッチ周期の検出、ベロシティーの設定、及びST
EP3への移行処理、又はおかしな波形が入力したときの
エラー処理(ダブリ処理)等を行う。
《基本動作》 まず、前記STEP1による処理が行われた後、第4図の
メインルーチンでは、M2→M10→M11→M2のループの繰り
返しにより、前記ピッチ抽出デジタル回路2(第1図)
から再び割り込みがかかって、レジスタT0、C、Bに次
のデータが入力するのを待っている。
メインルーチンでは、M2→M10→M11→M2のループの繰り
返しにより、前記ピッチ抽出デジタル回路2(第1図)
から再び割り込みがかかって、レジスタT0、C、Bに次
のデータが入力するのを待っている。
そして、データが入力し、第4図のM2からM3を経て上
記各レジスタの内容が読み込まれると、M4を介してM7、
即ち第7図のSTEP2に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t2、
今回正負フラグb=0、今回ピーク値はb=0より最小
ピーク値でc=b1である。
記各レジスタの内容が読み込まれると、M4を介してM7、
即ち第7図のSTEP2に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t2、
今回正負フラグb=0、今回ピーク値はb=0より最小
ピーク値でc=b1である。
まず、第7図のS20を経た後(後述する)のS21におい
ては、MCP3がバスBUSを介して第2図の時定数変換制御
回路202内の時定数変換レジスタCHTRRに現在処理をして
いる弦の開放弦フレット周期CHTIOをセットする。これ
は、前記「ピッチ抽出ディジタル回路の動作」の項の時
定数変換制御回路202の説明において述べたように、ピ
ーク検出回路201(第2図)がデジタル出力D1の波形の
立ち上がり時の振動を検知した後は、各ピッチ周期の倍
音を拾わないように、ピーク検出回路201内のピークホ
ールド回路から出力されるピークホールド信号(第10図
p1、p2等)が各弦の開放弦周期、即ち最低音周期CHTIO
の時間経過にて急速減衰するようにしたものである。
ては、MCP3がバスBUSを介して第2図の時定数変換制御
回路202内の時定数変換レジスタCHTRRに現在処理をして
いる弦の開放弦フレット周期CHTIOをセットする。これ
は、前記「ピッチ抽出ディジタル回路の動作」の項の時
定数変換制御回路202の説明において述べたように、ピ
ーク検出回路201(第2図)がデジタル出力D1の波形の
立ち上がり時の振動を検知した後は、各ピッチ周期の倍
音を拾わないように、ピーク検出回路201内のピークホ
ールド回路から出力されるピークホールド信号(第10図
p1、p2等)が各弦の開放弦周期、即ち最低音周期CHTIO
の時間経過にて急速減衰するようにしたものである。
次に、S22において、今回ピーク値cの値が同じ符号
の前回のピーク値AMP(b)の7/8倍より大きいか否かが
判定される。この処理については後に詳述するが、通常
は弦をピッキングした波形はなめらかに自然減衰するた
めこの判定はYESとなり、次のS23を経て(後述する)S2
4に進む。
の前回のピーク値AMP(b)の7/8倍より大きいか否かが
判定される。この処理については後に詳述するが、通常
は弦をピッキングした波形はなめらかに自然減衰するた
めこの判定はYESとなり、次のS23を経て(後述する)S2
4に進む。
S24では、{(今回のゼロクロス時刻t)−(同じ符
号の前回のゼロクロス時刻データTFN(b))}を演算
することにより、第1回目のピッチ周期を検出する。そ
してこの結果を、後述するSTEP3でのノートオン(発音
開始)の条件として使用するために、前回周期データTP
(b)として設定する。第11図の例では、同図に示すよ
うにTP(0)=t−TFN(0)=t2−t0となる。
号の前回のゼロクロス時刻データTFN(b))}を演算
することにより、第1回目のピッチ周期を検出する。そ
してこの結果を、後述するSTEP3でのノートオン(発音
開始)の条件として使用するために、前回周期データTP
(b)として設定する。第11図の例では、同図に示すよ
うにTP(0)=t−TFN(0)=t2−t0となる。
また、S24では、今回のゼロクロス時刻tが以降の処
理のために前回のゼロクロス時刻データTFN(b)とし
て設定される。第11図の例では、同図に示すようにTNF
(0)=t=t2となる。なお、STEP0で設定されたTFN
(0)=t0は、上記前回周期データTP(b)=TP(0)
が演算できたため必要なくなり消去される。
理のために前回のゼロクロス時刻データTFN(b)とし
て設定される。第11図の例では、同図に示すようにTNF
(0)=t=t2となる。なお、STEP0で設定されたTFN
(0)=t0は、上記前回周期データTP(b)=TP(0)
が演算できたため必要なくなり消去される。
同じく、S24では、レジスタSTEPに3が書き込まれて
次のステップへの移行準備がなされる。
次のステップへの移行準備がなされる。
更に、S24では、以降の処理のために、今回ピーク値
cと、前回のピーク値AMP(0)、AMP(1)のうち、最
も大きい値をベロシティVELとして設定する。なお、ベ
ロシティVELは、STEP3で後述するように楽音の音量を決
定するための値として用いられる。同様に、今回ピーク
値cを前回のピーク値AMP(b)として設定し、第4図
のメインルーチンのM2の処理に戻る。第11図の例では、
VEL=max{c、AMP(0)、AMP(1)}=max{b1、
b0、a0}となり、AMP(0)=c=b1となる。なお、STE
P0で設定されたAMP(0)=b0は、上記ベロシティVELが
演算できたため必要なくなり消去される。
cと、前回のピーク値AMP(0)、AMP(1)のうち、最
も大きい値をベロシティVELとして設定する。なお、ベ
ロシティVELは、STEP3で後述するように楽音の音量を決
定するための値として用いられる。同様に、今回ピーク
値cを前回のピーク値AMP(b)として設定し、第4図
のメインルーチンのM2の処理に戻る。第11図の例では、
VEL=max{c、AMP(0)、AMP(1)}=max{b1、
b0、a0}となり、AMP(0)=c=b1となる。なお、STE
P0で設定されたAMP(0)=b0は、上記ベロシティVELが
演算できたため必要なくなり消去される。
《ダブリ処理の動作》 第11図のような正常なデジタル出力D1が入力している
場合には、前記STEP1において正(負)側の最大(小)
ピーク値が抽出された後は、STEP2において反対に負
(正)側の最小(大)ピーク値が抽出される。従って、
この場合のSTEP2におけるピーク値の符号はSTEP1のとき
と逆であり、更に、STEP0のときと同じとなり、第7図
のS20においては、今回正負フラグb=0(1)はSTEP0
でセットされたフラグMT=0(1)と一致し、前記した
ようにS21に進む。
場合には、前記STEP1において正(負)側の最大(小)
ピーク値が抽出された後は、STEP2において反対に負
(正)側の最小(大)ピーク値が抽出される。従って、
この場合のSTEP2におけるピーク値の符号はSTEP1のとき
と逆であり、更に、STEP0のときと同じとなり、第7図
のS20においては、今回正負フラグb=0(1)はSTEP0
でセットされたフラグMT=0(1)と一致し、前記した
ようにS21に進む。
ところが、前記「STEP1の処理動作」の「ダブリ処理
の動作」の項の説明において述べたのと同様に、場合に
より波形がダブって、STEP1の後に第13A図又は第13B図
に示すような波形が入力することがある。この場合、ST
EP1で正側の最大ピーク値a0が抽出された後、STEP2で再
び正側の最大ピーク値a1がダブって抽出される。従っ
て、第7図のS20においては、今回正負フラグはb=1
となり、STEP0でセットされたフラグMT=0と一致す
る。この場合は、第7図のS25に進み、ダブリ処理(エ
ラー処理)を行う。なお、第13A図、第13B図において単
純斜線のハッチを施したピークは、第2図のピーク検出
回路201内のピークホールド回路から発生される第13A図
又は第13B図のピークホールド信号p0、p1、q0等にひっ
かからなかったため、ピークとして検出されなかった部
分である。
の動作」の項の説明において述べたのと同様に、場合に
より波形がダブって、STEP1の後に第13A図又は第13B図
に示すような波形が入力することがある。この場合、ST
EP1で正側の最大ピーク値a0が抽出された後、STEP2で再
び正側の最大ピーク値a1がダブって抽出される。従っ
て、第7図のS20においては、今回正負フラグはb=1
となり、STEP0でセットされたフラグMT=0と一致す
る。この場合は、第7図のS25に進み、ダブリ処理(エ
ラー処理)を行う。なお、第13A図、第13B図において単
純斜線のハッチを施したピークは、第2図のピーク検出
回路201内のピークホールド回路から発生される第13A図
又は第13B図のピークホールド信号p0、p1、q0等にひっ
かからなかったため、ピークとして検出されなかった部
分である。
S25では、まず、ダブリフラグDUBを1に設定した後
(後述する)、S26に進み、今回ピーク値cの値が同じ
符号の前回のピーク値AMP(b)より大きいか否かが判
定される。
(後述する)、S26に進み、今回ピーク値cの値が同じ
符号の前回のピーク値AMP(b)より大きいか否かが判
定される。
今、第13A図において、STEP0(t=t0)、STEP1(t
=t1)の処理の後、t=t2においてSTEP2が実行された
場合、c=a1>AMP(b)=AMP(1)=a0は成立しな
い。即ち、第7図のS26の判定結果はNOとなる。このよ
うな場合は、今回の最大ピーク値a1はおかしな波形とし
て無視し(同図のクロス斜線のハッチを施した部分)、
STEPは更新せず、第4図のメインルーチンのM2の処理に
戻り、次の正常なピークが入力されるのを待つ。そし
て、t=t3において、最小ピーク値c=b1が入力するこ
とにより、第7図のS20がYESとなって、第11図の場合と
同様に、前記S21→S22→S23→S24の処理が行われ、第14
A図のt=t3で次のSTEP3の処理に進む。なお、第7図の
S24において設定される前回周期データTP(0)は、第1
3A図に示すように、今回のゼロクロス時刻t3と、STEP0
において設定された前回のゼロクロス時刻t0の差にな
る。また、後述するSTEP3において演算されるその次の
周期データTxの起点は、同図に示すようにクロス斜線の
ハッチを施したピーク(c=a1)が無視されるため、ST
EP1において設定された前回のゼロクロス時刻TFN(1)
=t1である。
=t1)の処理の後、t=t2においてSTEP2が実行された
場合、c=a1>AMP(b)=AMP(1)=a0は成立しな
い。即ち、第7図のS26の判定結果はNOとなる。このよ
うな場合は、今回の最大ピーク値a1はおかしな波形とし
て無視し(同図のクロス斜線のハッチを施した部分)、
STEPは更新せず、第4図のメインルーチンのM2の処理に
戻り、次の正常なピークが入力されるのを待つ。そし
て、t=t3において、最小ピーク値c=b1が入力するこ
とにより、第7図のS20がYESとなって、第11図の場合と
同様に、前記S21→S22→S23→S24の処理が行われ、第14
A図のt=t3で次のSTEP3の処理に進む。なお、第7図の
S24において設定される前回周期データTP(0)は、第1
3A図に示すように、今回のゼロクロス時刻t3と、STEP0
において設定された前回のゼロクロス時刻t0の差にな
る。また、後述するSTEP3において演算されるその次の
周期データTxの起点は、同図に示すようにクロス斜線の
ハッチを施したピーク(c=a1)が無視されるため、ST
EP1において設定された前回のゼロクロス時刻TFN(1)
=t1である。
一方、第13B図の場合、上記とは逆にc=a1>AMP
(b)=AMP(1)=a0は成立する。即ち、第7図のS26
の判定結果はYESとなる。このような場合は、前回のSTE
P1で抽出した最大ピーク値a0の方をおかしな波形として
無視し(同図のクロス斜線のハッチを施した部分)、ST
EP1においてセットされた前回のゼロクロス時刻データT
FN(1)、及び正側の前回のピーク値AMP(1)の内容
を、第7図のS29により今回のゼロクロス時刻t及び今
回のピーク値cと入れ替えて変更する。即ち、第13B図
の例では、同図に示すようにTFN(1)=t=t2、AMP
(1)=c=a0となる。このダブリ処理の後、STEPは更
新せずに第4図のメインルーチンのM2の処理に戻り、次
の正常なピーク値が入力するのを待つ。以下、t=t3に
おいて最小ピーク値c=b1が入力した後の処理は、前記
第13A図の場合と同じである。ただし、STEP1において抽
出されたピーク(第13B図のクロス斜線のハッチを施し
たピークc=a0)が無視され、c=a1のピークに変更さ
れているため、後述するSTEP3において演算されるTP
(0)の次の周期データTyの起点は、STEP2の前記ダブ
リ処理において設定された前回のゼロクロス時刻TFN
(1)=t2となり、第13A図の場合と異なる。
(b)=AMP(1)=a0は成立する。即ち、第7図のS26
の判定結果はYESとなる。このような場合は、前回のSTE
P1で抽出した最大ピーク値a0の方をおかしな波形として
無視し(同図のクロス斜線のハッチを施した部分)、ST
EP1においてセットされた前回のゼロクロス時刻データT
FN(1)、及び正側の前回のピーク値AMP(1)の内容
を、第7図のS29により今回のゼロクロス時刻t及び今
回のピーク値cと入れ替えて変更する。即ち、第13B図
の例では、同図に示すようにTFN(1)=t=t2、AMP
(1)=c=a0となる。このダブリ処理の後、STEPは更
新せずに第4図のメインルーチンのM2の処理に戻り、次
の正常なピーク値が入力するのを待つ。以下、t=t3に
おいて最小ピーク値c=b1が入力した後の処理は、前記
第13A図の場合と同じである。ただし、STEP1において抽
出されたピーク(第13B図のクロス斜線のハッチを施し
たピークc=a0)が無視され、c=a1のピークに変更さ
れているため、後述するSTEP3において演算されるTP
(0)の次の周期データTyの起点は、STEP2の前記ダブ
リ処理において設定された前回のゼロクロス時刻TFN
(1)=t2となり、第13A図の場合と異なる。
以上、第13A図又は第13B図に示すように波形がダブっ
た場合は、ピーク値の小さい方のピークがおかしな波形
として無視され、エラー処理される。
た場合は、ピーク値の小さい方のピークがおかしな波形
として無視され、エラー処理される。
次に、ダブリ処理の他の場合の処理のための、第7図
のS22の分岐について説明を行う。
のS22の分岐について説明を行う。
今、第7図のSTEP2の処理が実行される場合、弦をピ
ッキングした正常な波形はなめらかに自然減衰するた
め、S22において今回ピーク値の値は同じ符号の前回の
ピーク値AMP(b)の7/8倍より大きい値となり、S22の
判定はYESとなって次のS23に進む。
ッキングした正常な波形はなめらかに自然減衰するた
め、S22において今回ピーク値の値は同じ符号の前回の
ピーク値AMP(b)の7/8倍より大きい値となり、S22の
判定はYESとなって次のS23に進む。
ところが、場合によりc>(7/8)×AMP(b)が成立
しないことがある。第1の場合として、例えば弦をブリ
ッジに近いところでピッキングすることにより、波形は
正常だがなめらかな減衰波形とならず、S22の判定結果
がNOとなることがおこりうる。しかし、このような場合
においても、前記第7図のS24の処理を正常に行う必要
がある。そして、この場合、波形が正常であるため、前
記したようなダブリは発生しておらず、それ以前に第7
図のS20からS25へ分岐していないため、ダブリフラグDU
Bの値は0のままである。そこで、第7図のS27におい
て、DUB=1が成立しない場合は、S22の判定結果にかか
わらず、再びS24の処理に戻り、前記「基本動作」の項
で述べた処理を行う。なお、ダブリフラグDUBは、前記
第5図のSTEP0のS04の処理において、その値が0に初期
化されている。
しないことがある。第1の場合として、例えば弦をブリ
ッジに近いところでピッキングすることにより、波形は
正常だがなめらかな減衰波形とならず、S22の判定結果
がNOとなることがおこりうる。しかし、このような場合
においても、前記第7図のS24の処理を正常に行う必要
がある。そして、この場合、波形が正常であるため、前
記したようなダブリは発生しておらず、それ以前に第7
図のS20からS25へ分岐していないため、ダブリフラグDU
Bの値は0のままである。そこで、第7図のS27におい
て、DUB=1が成立しない場合は、S22の判定結果にかか
わらず、再びS24の処理に戻り、前記「基本動作」の項
で述べた処理を行う。なお、ダブリフラグDUBは、前記
第5図のSTEP0のS04の処理において、その値が0に初期
化されている。
一方、第7図のS22が成立しない第2の場合として、
波形に前記したようなダブリが発生した場合がある。こ
の場合について、第13C図を用いて以下に説明を行う。
波形に前記したようなダブリが発生した場合がある。こ
の場合について、第13C図を用いて以下に説明を行う。
今、第13B図で説明したのと同様に、第13C図に示すよ
うに、STEP0(t=t0)、STEP1(t=t1)の処理の後
に、t=t2において前記ダブリ処理が行われ、c=a0の
ピーク(同図のクロス斜線のハッチを施したピーク)が
除去され、c=a1のピーク(同図の縦線のハッチを施し
たピーク)が残されたとする。なお、単純な斜線のハッ
チを施したピーク(c=a1)は、第13A図又は第13B図と
同様、元々検出されないピークである。
うに、STEP0(t=t0)、STEP1(t=t1)の処理の後
に、t=t2において前記ダブリ処理が行われ、c=a0の
ピーク(同図のクロス斜線のハッチを施したピーク)が
除去され、c=a1のピーク(同図の縦線のハッチを施し
たピーク)が残されたとする。なお、単純な斜線のハッ
チを施したピーク(c=a1)は、第13A図又は第13B図と
同様、元々検出されないピークである。
上記のようにダブリが発生すると、次のt=t3におい
ては第13C図に示すように正負フラグはb=0となるた
め、STEP0でセットされたフラグMT=0と一致する。従
って、第7図のS20からS21を介してS22の処理に進む。
ところが、t=t3において検出される今回の最小ピーク
値c=b1は、波形がダブったために同じ符号の前回の最
小ピーク値AMP(0)=b0からかなり離れており、減衰
も大きい、従って、第13図Cに示すように第7図のS22
の判定結果がNOとなる場合がある。
ては第13C図に示すように正負フラグはb=0となるた
め、STEP0でセットされたフラグMT=0と一致する。従
って、第7図のS20からS21を介してS22の処理に進む。
ところが、t=t3において検出される今回の最小ピーク
値c=b1は、波形がダブったために同じ符号の前回の最
小ピーク値AMP(0)=b0からかなり離れており、減衰
も大きい、従って、第13図Cに示すように第7図のS22
の判定結果がNOとなる場合がある。
上記のような場合は、それ以前のt=t2においてダブ
リ処理を行っているため、ダブリフラグDUBの値は1で
ある。従って、第7図のS27の判定結果はNOとなり、S28
を介して(後述する)S29に進む。
リ処理を行っているため、ダブリフラグDUBの値は1で
ある。従って、第7図のS27の判定結果はNOとなり、S28
を介して(後述する)S29に進む。
S29においては、第13C図のt=t3以後に正常な波形を
獲得して新たに処理をやり直すために、STEP0において
セットされた前回のゼロクロス時刻データTFN(0)、
及び負側の前回のピーク値AMP(0)の内容を、第7図
のS29により今回のゼロクロス時刻t及び今回のピーク
値cと入れ替えて変更する。即ち、第13C図の例では、
同図に示すようにTFN(0)=t=t3、AMP(0)=c=
b1となり、結局、同図の横線のハッチを施したピーク
(c=b0)が無視される。なお、以降の処理のために、
第7図のS28でダブリフラグDUBは0にリセットされる。
これらの動作の後、STEPの値は更新せずに第4図のメイ
ンルーチンのM2の処理に戻り、次のピークの入力を待
つ。
獲得して新たに処理をやり直すために、STEP0において
セットされた前回のゼロクロス時刻データTFN(0)、
及び負側の前回のピーク値AMP(0)の内容を、第7図
のS29により今回のゼロクロス時刻t及び今回のピーク
値cと入れ替えて変更する。即ち、第13C図の例では、
同図に示すようにTFN(0)=t=t3、AMP(0)=c=
b1となり、結局、同図の横線のハッチを施したピーク
(c=b0)が無視される。なお、以降の処理のために、
第7図のS28でダブリフラグDUBは0にリセットされる。
これらの動作の後、STEPの値は更新せずに第4図のメイ
ンルーチンのM2の処理に戻り、次のピークの入力を待
つ。
そして、上記の場合、第13C図に示すようにt=t4、
t=t5において、第7図のSTEP2が繰り返された後、STE
P3に移行する。このようなSTEP2の繰り返し動作につい
ては様々なパターンがあるため、その詳細な説明は省略
するが、全体の流れとしては正常な波形を獲得できるよ
うになって、次のSTEP3において用いるためのデータTFN
(0)、AMP(0)、及びTFN(1)、AMP(1)が有効
に決定されるように動作した後に、STEP3に移行する。
なお、第13C図のケースでは、TP(0)=t5−t3、後述
するSTEP3において演算されるその次の周期データT‖
の起点は、TFN(1)=t4となる。
t=t5において、第7図のSTEP2が繰り返された後、STE
P3に移行する。このようなSTEP2の繰り返し動作につい
ては様々なパターンがあるため、その詳細な説明は省略
するが、全体の流れとしては正常な波形を獲得できるよ
うになって、次のSTEP3において用いるためのデータTFN
(0)、AMP(0)、及びTFN(1)、AMP(1)が有効
に決定されるように動作した後に、STEP3に移行する。
なお、第13C図のケースでは、TP(0)=t5−t3、後述
するSTEP3において演算されるその次の周期データT‖
の起点は、TFN(1)=t4となる。
(STEP3の処理動作) 次に、第8図は、第4図のメインルーチンのM8として
示すステップ3(STEP3)の処理の動作フローチャート
である。この処理においては、ノートオン(発音開始)
処理、ノートオン時の音高設定のためのピッチ周期の抽
出、ベロシティの演算、STEP4への移行処理、及びおか
しな波形が入力したときのエラー処理等を行う。
示すステップ3(STEP3)の処理の動作フローチャート
である。この処理においては、ノートオン(発音開始)
処理、ノートオン時の音高設定のためのピッチ周期の抽
出、ベロシティの演算、STEP4への移行処理、及びおか
しな波形が入力したときのエラー処理等を行う。
《基本動作》 まず、前記STEP3による処理が行われた後、第4図の
メインルーチンでは、M2→M10→M11→M2のループの繰り
返しにより、前記ピッチ抽出デジタル回路2(第1図)
から再び割り込みがかかって、レジスタT0、C、Bに次
のデータが入力するのを待っている。
メインルーチンでは、M2→M10→M11→M2のループの繰り
返しにより、前記ピッチ抽出デジタル回路2(第1図)
から再び割り込みがかかって、レジスタT0、C、Bに次
のデータが入力するのを待っている。
そして、データが入力し、第4図のM2からM3を経て上
記各レジスタの内容が読み込まれると、M4を介してM8、
即ち第8図のSTEP3に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t3、
今回正負フラグb=1、今回ピーク値はb=1より最大
ピーク値でc=a1である。
記各レジスタの内容が読み込まれると、M4を介してM8、
即ち第8図のSTEP3に移る。この状態においては、例え
ば第11図に示すように、今回のゼロクロス時刻t=t3、
今回正負フラグb=1、今回ピーク値はb=1より最大
ピーク値でc=a1である。
まず、第8図のS30、S31、S32を経た後(後述す
る)、S33においてベロシティVELを演算する。今、前記
「STEP2の処理動作」の「基本動作」の項で説明したよ
うに第7図のS24において、過去3回のピーク値、第11
図の例では、b0、a0、b1の各種(絶対値)のうち最大の
ものがベロシティVELに格納されている。そこで、第8
図のS33において、ベロシティVELと今回ピーク値cのう
ち大きい方を判定し、それを楽音発生回路501(第1
図)で楽音を発生するときの新たなベロシティVELとす
る。第11図の例では、VEL=a0、c=a1より、VEL=max
〔a0、a1〕=a0となる。
る)、S33においてベロシティVELを演算する。今、前記
「STEP2の処理動作」の「基本動作」の項で説明したよ
うに第7図のS24において、過去3回のピーク値、第11
図の例では、b0、a0、b1の各種(絶対値)のうち最大の
ものがベロシティVELに格納されている。そこで、第8
図のS33において、ベロシティVELと今回ピーク値cのう
ち大きい方を判定し、それを楽音発生回路501(第1
図)で楽音を発生するときの新たなベロシティVELとす
る。第11図の例では、VEL=a0、c=a1より、VEL=max
〔a0、a1〕=a0となる。
上記動作の後、第8図の同じくS33において、MT←b
とした後(後述する)、S34において、{(今回のゼロ
クロス時刻t)−(同じ符号の前回のゼロクロス時刻デ
ータTFN(b))}を演算することにより、ピッチ周期
を検出し、前回周期データTP(b)として設定する。第
11図の例では、同図に示すようにTP(1)=t3−t1とな
る。
とした後(後述する)、S34において、{(今回のゼロ
クロス時刻t)−(同じ符号の前回のゼロクロス時刻デ
ータTFN(b))}を演算することにより、ピッチ周期
を検出し、前回周期データTP(b)として設定する。第
11図の例では、同図に示すようにTP(1)=t3−t1とな
る。
続いて、第8図のS35〜S38を経た後(後述する)、S3
9において、上記S34で求まった前回周期データTP(b)
と、前記第7図のS24において設定された、上記TP
(b)とは異極性の前回周期データTP()とが、ほぼ
同一であるか否かを判定する。そして、その判定結果が
YESである場合には、ピッチ周期が安定に抽出され始め
たとして、S301を経た後(後述する)、S302においてノ
ートオン(発音開始)の処理を行う。第11図の例では、
負側の前回周期データTP(1)=t3−t1と正側の前回周
期データTP(0)=t2−t0が、ほぼ同一であると判定さ
れ、ノートオンの処理に移る。なお、判定結果がNOの場
合については後述する。
9において、上記S34で求まった前回周期データTP(b)
と、前記第7図のS24において設定された、上記TP
(b)とは異極性の前回周期データTP()とが、ほぼ
同一であるか否かを判定する。そして、その判定結果が
YESである場合には、ピッチ周期が安定に抽出され始め
たとして、S301を経た後(後述する)、S302においてノ
ートオン(発音開始)の処理を行う。第11図の例では、
負側の前回周期データTP(1)=t3−t1と正側の前回周
期データTP(0)=t2−t0が、ほぼ同一であると判定さ
れ、ノートオンの処理に移る。なお、判定結果がNOの場
合については後述する。
次の、S302においては、第8図のS33で演算されたベ
ロシティVELに基づいて音量情報が生成されると共に、
前回ピッチ周期TP(b)に基づいて、対応する音高情報
が生成される。これらの処理によって生成された音量情
報及び音高情報は、第1図のMIDI−BUS及びインタフェ
ースMIDIを介して楽音発生回路501に出力される。そし
て、同回路501では上記各情報に応じた音量及び音高の
楽音がリアルタイムで発生される。
ロシティVELに基づいて音量情報が生成されると共に、
前回ピッチ周期TP(b)に基づいて、対応する音高情報
が生成される。これらの処理によって生成された音量情
報及び音高情報は、第1図のMIDI−BUS及びインタフェ
ースMIDIを介して楽音発生回路501に出力される。そし
て、同回路501では上記各情報に応じた音量及び音高の
楽音がリアルタイムで発生される。
なお、第8図の処理は、ギターの6弦各々について行
われるため、上記処理も6弦各々について独立になされ
ることになる。
われるため、上記処理も6弦各々について独立になされ
ることになる。
上記ノートオンの処理と共に、第8図のS38及びS301
において、次のSTEP4において用いられるパラメータの
設定を行なった後、S302を経て第4図のメインルーチン
のM2の処理に戻り、次のSTEP4に移行する。即ち、S38に
おいてS34で抽出された前回の周期データTP(b)が前
回抽出された周期データTTPとしてセットされ、S301に
おいて第7図のSTEP2のS24において設定された前回のゼ
ロクロス時刻データTFN()が時刻記憶レジスタTFRに
セットされ、今回のゼロクロス時刻データtが有効とな
った前回のゼロクロス時刻データTFとしてセットされ、
波形ナンバーカウンタHNCが0にクリアされ、レジスタS
TEPの値が4に更新され、ノートオンフラグONFが2(発
音状態)にセットされ、定数TTUが0(最低MIN)にセッ
トされ、定数TTWが最高MAXにセットされ、リラティブオ
フチェックのための前回の振幅値AMRL1が0にクリアさ
れる。更に、本発明に特に関係し後述するSTEP4で用い
られる倍音が抽出されているか否かを判定するための閾
値情報tt12に0がセットされる。以上の各パラメータに
ついては、STEP4で後述する。
において、次のSTEP4において用いられるパラメータの
設定を行なった後、S302を経て第4図のメインルーチン
のM2の処理に戻り、次のSTEP4に移行する。即ち、S38に
おいてS34で抽出された前回の周期データTP(b)が前
回抽出された周期データTTPとしてセットされ、S301に
おいて第7図のSTEP2のS24において設定された前回のゼ
ロクロス時刻データTFN()が時刻記憶レジスタTFRに
セットされ、今回のゼロクロス時刻データtが有効とな
った前回のゼロクロス時刻データTFとしてセットされ、
波形ナンバーカウンタHNCが0にクリアされ、レジスタS
TEPの値が4に更新され、ノートオンフラグONFが2(発
音状態)にセットされ、定数TTUが0(最低MIN)にセッ
トされ、定数TTWが最高MAXにセットされ、リラティブオ
フチェックのための前回の振幅値AMRL1が0にクリアさ
れる。更に、本発明に特に関係し後述するSTEP4で用い
られる倍音が抽出されているか否かを判定するための閾
値情報tt12に0がセットされる。以上の各パラメータに
ついては、STEP4で後述する。
《周期不適切の場合の動作》 前記第8図のS34において、前回周期データTP(b)
が検出された場合、このピッチ周期は、対応する弦を最
高フレットで演奏したときの周期より大きい値を有し、
その弦の開放弦周期より小さい値を有するはずである。
が検出された場合、このピッチ周期は、対応する弦を最
高フレットで演奏したときの周期より大きい値を有し、
その弦の開放弦周期より小さい値を有するはずである。
そこで、周波数上限THLIMという定数として、現在処
理をしている弦の最高音フレットで定まる音高の2〜3
半音上の音高周期を設定し、周波数下限TTLIMという定
数として、同じ弦の開放弦状態で定まる音高の5半音程
度下の音高周期を設定し、第8図のS36、S37において、
S34で求まった前回周期データTP(b)がTHLIMより大き
く、かつ、TTLIMより小さいか否かが判定される。そし
て、上記判定結果が共にYESであれば、S39に進んで前記
した周期判定処理を行う。
理をしている弦の最高音フレットで定まる音高の2〜3
半音上の音高周期を設定し、周波数下限TTLIMという定
数として、同じ弦の開放弦状態で定まる音高の5半音程
度下の音高周期を設定し、第8図のS36、S37において、
S34で求まった前回周期データTP(b)がTHLIMより大き
く、かつ、TTLIMより小さいか否かが判定される。そし
て、上記判定結果が共にYESであれば、S39に進んで前記
した周期判定処理を行う。
ここでS36、S37の判定結果がNOの場合、S34で抽出さ
れた前回周期データTP(b)は適切な値でないことにな
る。従って、このような場合は、S36又はS37から第4図
のメインルーチンのM2の処理に戻りSTEP3を繰り返す。
れた前回周期データTP(b)は適切な値でないことにな
る。従って、このような場合は、S36又はS37から第4図
のメインルーチンのM2の処理に戻りSTEP3を繰り返す。
次に、第8図のS39において、S34で求まった前回周期
データTP(b)と、これと異極性の前回周期データTP
()とが離れた値である場合には、倍音等を抽出して
しまって正確なピッチ周期の抽出を誤った可能性が高
く、ピッチ周期が安定に抽出されていないことになる。
従って、このような場合は、S39の判定結果がNOとな
り、第4図のメインルーチンのM2の処理に戻りSTEP3を
繰り返す。
データTP(b)と、これと異極性の前回周期データTP
()とが離れた値である場合には、倍音等を抽出して
しまって正確なピッチ周期の抽出を誤った可能性が高
く、ピッチ周期が安定に抽出されていないことになる。
従って、このような場合は、S39の判定結果がNOとな
り、第4図のメインルーチンのM2の処理に戻りSTEP3を
繰り返す。
ここで、上記動作によりSTEP3を繰り返す場合、通常
の波形においては、第4図のM2、M3を介して新たに検出
されるピークは、その極性が交互に切り替わってbの値
が0と1で交互に反転し、また、第8図のS33において
フラグMTの値が交互に変更され、同じくS34においてTP
(b)が新たに演算され、TFN(b)の内容も書き替え
られる。従って、S36、S37の判定は、最も新しく求まっ
たピッチ周期に対して行われ、更に、S39における判定
は、最も新しく求まったピッチ周期と、その1つ前(約
半周期前)の異極性側のピッチ周期とに対して行われ、
ピッチ周期が安定に抽出できた時点で前記ノートオンの
処理へ移行することになる。
の波形においては、第4図のM2、M3を介して新たに検出
されるピークは、その極性が交互に切り替わってbの値
が0と1で交互に反転し、また、第8図のS33において
フラグMTの値が交互に変更され、同じくS34においてTP
(b)が新たに演算され、TFN(b)の内容も書き替え
られる。従って、S36、S37の判定は、最も新しく求まっ
たピッチ周期に対して行われ、更に、S39における判定
は、最も新しく求まったピッチ周期と、その1つ前(約
半周期前)の異極性側のピッチ周期とに対して行われ、
ピッチ周期が安定に抽出できた時点で前記ノートオンの
処理へ移行することになる。
また、その都度、第8図のS33において、ベロシティV
ELが、新しく検出されたピークに対応するように更新さ
れる。
ELが、新しく検出されたピークに対応するように更新さ
れる。
《ノイズ除去処理の動作》 第8図のS31の処理は、波形の立ち上がり部分にノイ
ズが発生した場合に対処するための処理である。今、例
えば第14図に示すように、STEP0、1、2においてノイ
ズによるピークa0、b0、a1等が検出されてしまった場
合、これらのノイズの周期を検出して発音開始を指示す
ると、全くおかしな楽音を発音してしまう。
ズが発生した場合に対処するための処理である。今、例
えば第14図に示すように、STEP0、1、2においてノイ
ズによるピークa0、b0、a1等が検出されてしまった場
合、これらのノイズの周期を検出して発音開始を指示す
ると、全くおかしな楽音を発音してしまう。
そこで、第8図のS31においては、連続するピーク値
が大きく変化した場合には、ノイズが発生していると判
断して異常検知フラグXを1にセットし、S35においてN
Oの判定をさせることにより、ノイズ部分に基づいてノ
ートオンしないようにしている。
が大きく変化した場合には、ノイズが発生していると判
断して異常検知フラグXを1にセットし、S35においてN
Oの判定をさせることにより、ノイズ部分に基づいてノ
ートオンしないようにしている。
具体的には、今回ピーク値cを1/8した値が、それと
同符号の前回ピーク値AMP(b)より小さければ正常で
あると判断してX=0とし、そうでなければX=1とす
る。そして、S35においてX=0でないと判定された場
合には、第4図のメインルーチンのM2の処理に戻りSTEP
3を繰り返す。この場合、第8図のS32において前回ピー
ク値AMP(b)が順次更新されるため、S31における処理
は、最も新しく検出されたピーク値とその直前の同符号
のピーク値とに対して行われ、連続するピーク値が大き
く変化しなくなった時点で前記ノートオンの処理へ移行
することになる。第14図の例では、t=t3、t=t4共に
S31でX=1となってしまうためノートオンせず、t=t
5において初めて正常なピークが入力したと判断される
ためX=0となり、t=t5でノートオンする。そして、
この場合は、連続するピッチ周期TP(b)とTP()は
正常な値となっている。
同符号の前回ピーク値AMP(b)より小さければ正常で
あると判断してX=0とし、そうでなければX=1とす
る。そして、S35においてX=0でないと判定された場
合には、第4図のメインルーチンのM2の処理に戻りSTEP
3を繰り返す。この場合、第8図のS32において前回ピー
ク値AMP(b)が順次更新されるため、S31における処理
は、最も新しく検出されたピーク値とその直前の同符号
のピーク値とに対して行われ、連続するピーク値が大き
く変化しなくなった時点で前記ノートオンの処理へ移行
することになる。第14図の例では、t=t3、t=t4共に
S31でX=1となってしまうためノートオンせず、t=t
5において初めて正常なピークが入力したと判断される
ためX=0となり、t=t5でノートオンする。そして、
この場合は、連続するピッチ周期TP(b)とTP()は
正常な値となっている。
《ダブリ処理の動作》 第8図のS30の判定処理は、ダブリ処理のための判定
である。今、第11図のような正常な波形D1が入力してい
る場合には、t=t3における今回正負フラグb=1は、
フラグMT=0と一致せず、前記したようにS31へ進む。
である。今、第11図のような正常な波形D1が入力してい
る場合には、t=t3における今回正負フラグb=1は、
フラグMT=0と一致せず、前記したようにS31へ進む。
ところが、前記「STEP1の処理動作」又は「STEP2の処
理動作」の「ダブリ処理の動作」の項の説明において述
べたのと同様に、波形がダブった場合、第8図のS30の
判定結果はNOとなる。
理動作」の「ダブリ処理の動作」の項の説明において述
べたのと同様に、波形がダブった場合、第8図のS30の
判定結果はNOとなる。
そして、ダブったピークのピーク値cの方が、それと
同符号の直前のピーク値AMP(b)より小さい場合は、
第8図のS303の判定結果がNOとなることによりそのダブ
ったピークを無視し、第4図のM2の処理に戻った後STEP
3を繰り返す。これは、第13A図の場合等と同様の考え方
による。
同符号の直前のピーク値AMP(b)より小さい場合は、
第8図のS303の判定結果がNOとなることによりそのダブ
ったピークを無視し、第4図のM2の処理に戻った後STEP
3を繰り返す。これは、第13A図の場合等と同様の考え方
による。
これに対して、ダブったピークのピーク値cの方が大
きかった場合は、S303の判定結果はYESとなり、S304の
処理へ進む。そして、S304では直前のピークの方を無視
して、AMP(b)の内容を今回のピーク値cに設定し直
し、ベロシティVELをその値を使って計算し直した後、
第4図のM2に戻ってSTEP3を繰り返す。これは、第13B図
の場合等と同様の考え方による。
きかった場合は、S303の判定結果はYESとなり、S304の
処理へ進む。そして、S304では直前のピークの方を無視
して、AMP(b)の内容を今回のピーク値cに設定し直
し、ベロシティVELをその値を使って計算し直した後、
第4図のM2に戻ってSTEP3を繰り返す。これは、第13B図
の場合等と同様の考え方による。
以上の処理の後、正常なピークが入力することによ
り、S30の判定結果がYESとなり、更に、S35、S36、S37
及びS39等の各判定結果がYESとなることにより、前記ノ
ートオンの処理が行われ、楽音の発音が開始されること
になる。
り、S30の判定結果がYESとなり、更に、S35、S36、S37
及びS39等の各判定結果がYESとなることにより、前記ノ
ートオンの処理が行われ、楽音の発音が開始されること
になる。
(STEP4の処理動作) 次に、第9図は、第4図のメインルーチンのM9として
示すステップ4(STEP4)の処理の動作フローチャート
である。この処理においては、ピッチ抽出・変更処理、
リラティブオン・リラティブオフの処理、ピッチ周期不
適時の処理、及びダブリ処理等を行う。まず、ピッチ抽
出・変更処理においては、ピッチ抽出のみを行うルート
、実際にピッチ変更を行うルートがあり、通常は新
たなピークが入力する毎に交互に繰り返す。ここで、本
発明に特に関係するのは、ルートにおけるピッチ変更
時の判定処理である。
示すステップ4(STEP4)の処理の動作フローチャート
である。この処理においては、ピッチ抽出・変更処理、
リラティブオン・リラティブオフの処理、ピッチ周期不
適時の処理、及びダブリ処理等を行う。まず、ピッチ抽
出・変更処理においては、ピッチ抽出のみを行うルート
、実際にピッチ変更を行うルートがあり、通常は新
たなピークが入力する毎に交互に繰り返す。ここで、本
発明に特に関係するのは、ルートにおけるピッチ変更
時の判定処理である。
《ルートの動作》 先ず、S40、S41、S42、S63〜S67に示すルートにつ
いて説明する。S40において、波形ナンバーカウンタHNC
>3が判断され、YESの場合にはS41に進む。S41では、
リラティブオンしきい値TRLRL<(今回ピーク値c−同
じ符号の前回のピーク値AMP(b))かどうかが判断が
行われ、NOの場合にはS42に進む(YESの場合は後述す
る)。S42では今回正負フラグb=フラグMTつまりピッ
チ変更側かどうかが判断され、YESの場合にはS43に進
む。
いて説明する。S40において、波形ナンバーカウンタHNC
>3が判断され、YESの場合にはS41に進む。S41では、
リラティブオンしきい値TRLRL<(今回ピーク値c−同
じ符号の前回のピーク値AMP(b))かどうかが判断が
行われ、NOの場合にはS42に進む(YESの場合は後述す
る)。S42では今回正負フラグb=フラグMTつまりピッ
チ変更側かどうかが判断され、YESの場合にはS43に進
む。
ところで、初期状態では、前記波形ナンバーカウンタ
HNCは0である(第8図のS301参照)ので、S40ではNOの
判断をしてS42へ進む。そして、例えば第11図のような
波形入力の場合は、t=t4においてb=0でMT=1(第
8図のSTEP3のS33で書き替えられている)であるから、
S42からS63へ進む。
HNCは0である(第8図のS301参照)ので、S40ではNOの
判断をしてS42へ進む。そして、例えば第11図のような
波形入力の場合は、t=t4においてb=0でMT=1(第
8図のSTEP3のS33で書き替えられている)であるから、
S42からS63へ進む。
S63においては、同じ極性のピークが続けて入力され
てきているか(ダブリであるか)、否かチェックするた
めに、レジスタRIV=1かどうかが判断され、YESの場合
(ピークがダブった場合)にはS68に進んでダブリ処理
を行い(後述する)、また、NOの場合(ダブリでない場
合)にはS64に進み、ここでは以下の処理が行われる。
てきているか(ダブリであるか)、否かチェックするた
めに、レジスタRIV=1かどうかが判断され、YESの場合
(ピークがダブった場合)にはS68に進んでダブリ処理
を行い(後述する)、また、NOの場合(ダブリでない場
合)にはS64に進み、ここでは以下の処理が行われる。
即ち、S64では今回ピーク値cが前回のピーク値AMP
(b)に入力され、リラティブオフ処理(後述する)の
ために前回の振幅値AMRL1が前々回の振幅値AMRL2に入力
される。なお、始めはAMRL1の内容は0である。(第8
図のSTEPのS301参照)。
(b)に入力され、リラティブオフ処理(後述する)の
ために前回の振幅値AMRL1が前々回の振幅値AMRL2に入力
される。なお、始めはAMRL1の内容は0である。(第8
図のSTEPのS301参照)。
更に、S64において、異符号の前回のピーク値AMP
()と今回ピーク値cのうちいずれか大きい値が前回
振幅値AMRL1に入力される。つまり、周期の中で2つあ
る正、負のピーク値について大きい値のピーク値が振幅
値AMRL1にセットされる。
()と今回ピーク値cのうちいずれか大きい値が前回
振幅値AMRL1に入力される。つまり、周期の中で2つあ
る正、負のピーク値について大きい値のピーク値が振幅
値AMRL1にセットされる。
そして、S65で波形ナンバンーカウンタHNC>8かどう
かが判断され、ここで波形ナンバーカウンタ(ピッチ変
更側でないゼロクロスカウンタ)HNCが+1され、カウ
ントアップされる。従って、波形ナンバーカウンタHNC
は、上限が9となる。そして、S65もしくはS66の処理の
後S67へ進行する。
かが判断され、ここで波形ナンバーカウンタ(ピッチ変
更側でないゼロクロスカウンタ)HNCが+1され、カウ
ントアップされる。従って、波形ナンバーカウンタHNC
は、上限が9となる。そして、S65もしくはS66の処理の
後S67へ進行する。
S67では、レジスタRIVを1とし、今回のゼロクロス時
刻tから時刻記憶レジスタTFRの内容を引算して、周期
レジスタTTRへ入力する。この周期レジスタTTRは、第11
図の例では周期情報TTR=t−TFR=t4−t2を示す。そし
て、今回のゼロクロス時刻tは、時刻記憶レジスタTFR
へセーブされ、この後、第4図のメインルーチンのM2の
処理に戻る。
刻tから時刻記憶レジスタTFRの内容を引算して、周期
レジスタTTRへ入力する。この周期レジスタTTRは、第11
図の例では周期情報TTR=t−TFR=t4−t2を示す。そし
て、今回のゼロクロス時刻tは、時刻記憶レジスタTFR
へセーブされ、この後、第4図のメインルーチンのM2の
処理に戻る。
以上述べたようにルートは、第11図の例によれば以
下のような処理がなされる。即ち、MT=1≠b、RIV=
0、AMP(0)←c=b2、AMRL2←AMRL1=0、AMRL1←ma
x{AMP(1)=a1、c=b2(のいずれか大きい方)}、
HNC←{HNC+1}=1、RIV←1、TTR←{t−TFR}=
{t4−t2}、TFR←t=t4となる。従って、周期レジス
タTTRに前回の同極性のゼロクロス点t=t2(STEP2→3
の変化時点)から今回のゼロクロス点t=t4までの時刻
情報の差つまり、周期情報が求まったことになる。そし
て、第4図のメインルーチンのM2の処理へ戻り、次のピ
ークが入力するのを待つ。
下のような処理がなされる。即ち、MT=1≠b、RIV=
0、AMP(0)←c=b2、AMRL2←AMRL1=0、AMRL1←ma
x{AMP(1)=a1、c=b2(のいずれか大きい方)}、
HNC←{HNC+1}=1、RIV←1、TTR←{t−TFR}=
{t4−t2}、TFR←t=t4となる。従って、周期レジス
タTTRに前回の同極性のゼロクロス点t=t2(STEP2→3
の変化時点)から今回のゼロクロス点t=t4までの時刻
情報の差つまり、周期情報が求まったことになる。そし
て、第4図のメインルーチンのM2の処理へ戻り、次のピ
ークが入力するのを待つ。
《ルートの動作》 次に、S40〜S62に示すルートへ進んだ場合の説明を
行なう。いま、波形ナンバーカウンタHNC=1なので(S
66参照)、S40からS42へ進む(S40については後述す
る)。
行なう。いま、波形ナンバーカウンタHNC=1なので(S
66参照)、S40からS42へ進む(S40については後述す
る)。
S42では、例えば第11図のような場合、MT=1、b=
1なのでYESとなり、S43へ進む。
1なのでYESとなり、S43へ進む。
S43では、レジスタRIV=1かどうかが判断される。既
にルートにおいて、レジスタRIVは1とされている(S
67参照)ので、S43の判断はYESとなり、S44へ進む。な
お、S43の判定結果がNOとなる場合のダブリ処理につい
ては後述する。
にルートにおいて、レジスタRIVは1とされている(S
67参照)ので、S43の判断はYESとなり、S44へ進む。な
お、S43の判定結果がNOとなる場合のダブリ処理につい
ては後述する。
S44では、レジスタSTEP=4かどうかが判断され、YES
の場合にはS45に進む(NOの場合については後述す
る)。S45では、今回ピーク値c<60H(Hは16進法表現
を示す)かどうかが判断され、値の大きなピーク値が入
力した場合は、この判定結果はNOとなり、S47に進む。
これに対して、値が60Hより小さい場合は、YESとなりS4
6に進む。
の場合にはS45に進む(NOの場合については後述す
る)。S45では、今回ピーク値c<60H(Hは16進法表現
を示す)かどうかが判断され、値の大きなピーク値が入
力した場合は、この判定結果はNOとなり、S47に進む。
これに対して、値が60Hより小さい場合は、YESとなりS4
6に進む。
S46では、前々回の振幅値(ピーク値)AMRL2−前回の
振幅値(ピーク値)AMRL1≦(1/32)×前々回の振幅値
(ピーク値)AMRL2かどうかが判断され、YESの場合には
S47に進み、リラティブオフカウンタFOFRが0にセット
される。NOの場合には、S74に進みリラティブオフの処
理が行われる。このリラティブオフの処理については後
述する。
振幅値(ピーク値)AMRL1≦(1/32)×前々回の振幅値
(ピーク値)AMRL2かどうかが判断され、YESの場合には
S47に進み、リラティブオフカウンタFOFRが0にセット
される。NOの場合には、S74に進みリラティブオフの処
理が行われる。このリラティブオフの処理については後
述する。
S48では周期計算がおこなわれる。具体的には(今回
のゼロクロス時刻t−前回のゼロクロス時刻データTF)
が今回の周期情報ttとしてレジスタTOTOにセットされ
る。そして、S49に進む。
のゼロクロス時刻t−前回のゼロクロス時刻データTF)
が今回の周期情報ttとしてレジスタTOTOにセットされ
る。そして、S49に進む。
S49では、今回の周期情報tt>周波数上限THLIM(発音
開始後の上限)かどうかが判断され、YESの場合にはS50
に進む(NOの場合は後述する)。S49の周波数上限THLIM
は、第8図のSTEP3のS36で使用したトリガ時(発音開始
時)の周波数の許容範囲の上限(従って周期として最小
で、最高音フレットの2〜3半音上の音高周期に相当す
る)と同一のものである。
開始後の上限)かどうかが判断され、YESの場合にはS50
に進む(NOの場合は後述する)。S49の周波数上限THLIM
は、第8図のSTEP3のS36で使用したトリガ時(発音開始
時)の周波数の許容範囲の上限(従って周期として最小
で、最高音フレットの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かどうかが判断され、YES
の場合即ち今回の周期がノートオン中のピッチ抽出音域
下限以下になった場合にはS52に進む。この場合、周波
数下限TLLIMは、例えば、開放弦音階の1オクターブ下
にセットされる。つまり、第8図のSTEP3の周波数下限T
TLIM(S37参照)に比較して、許容範囲を広くしてい
る。このようにすることで、トレモロアームの操作など
による周波数変更に対応し得るようになる。
下限TLLIM>今回の周期情報ttかどうかが判断され、YES
の場合即ち今回の周期がノートオン中のピッチ抽出音域
下限以下になった場合にはS52に進む。この場合、周波
数下限TLLIMは、例えば、開放弦音階の1オクターブ下
にセットされる。つまり、第8図のSTEP3の周波数下限T
TLIM(S37参照)に比較して、許容範囲を広くしてい
る。このようにすることで、トレモロアームの操作など
による周波数変更に対応し得るようになる。
上記動作により、周波数の上限、下限について許容範
囲に入る場合についてのみS52まで進み、そうでない場
合はS49、S51より第4図のメインルーチンのM2の処理に
戻って次のピークの入力を待つ。
囲に入る場合についてのみS52まで進み、そうでない場
合はS49、S51より第4図のメインルーチンのM2の処理に
戻って次のピークの入力を待つ。
次に、S52では周期データTTPが前々回抽出された周期
データhに入力され、また、今回の周期情報ttが前回抽
出された周期データTTPに入力される。
データhに入力され、また、今回の周期情報ttが前回抽
出された周期データTTPに入力される。
そして、S53で今回ピーク値cがベロシティVELに書込
まれ、S54に進む。
まれ、S54に進む。
S54では、ノーチェンジレベルNCHLV>(前々回ピーク
値e−今回ピーク値c)かどうかの判断が行われ、YES
の場合にはS55に進む。即ち、前回の同極性のピーク値
(e=AMP(b)と今回のピーク値cとが大きく変化し
ている場合は、その差がNCHLVを越えることになり、そ
のようなときに、抽出された周期情報に基づきピッチ変
更を行なうと、不自然な音高変化を呈することになる可
能性が高い。そこで、S54でNOの判断がなされると、S55
以降の処理をすることなく、第4図のメインルーチンの
M2の処理へ戻り、次のピークの入力を待つ。
値e−今回ピーク値c)かどうかの判断が行われ、YES
の場合にはS55に進む。即ち、前回の同極性のピーク値
(e=AMP(b)と今回のピーク値cとが大きく変化し
ている場合は、その差がNCHLVを越えることになり、そ
のようなときに、抽出された周期情報に基づきピッチ変
更を行なうと、不自然な音高変化を呈することになる可
能性が高い。そこで、S54でNOの判断がなされると、S55
以降の処理をすることなく、第4図のメインルーチンの
M2の処理へ戻り、次のピークの入力を待つ。
次に、S54でYESの場合は、リラティブオフカウンタFO
FR=0か否かが判断される。後述するリラティブオフ処
理を行っているときは、リラティブオフカウンタFOFRは
0でなくなっており、そのような場合はピッチ変更(S6
1を参照)の処理を行なうことなく、S55でNOの判断をし
て第4図のメインルーチンのM2の処理へリターンする。
そして、S55にて、YESの判断をしたときは、S56、S562
又はS57へと順次進む。以下の処理が、本発明に特に関
係する処理である。
FR=0か否かが判断される。後述するリラティブオフ処
理を行っているときは、リラティブオフカウンタFOFRは
0でなくなっており、そのような場合はピッチ変更(S6
1を参照)の処理を行なうことなく、S55でNOの判断をし
て第4図のメインルーチンのM2の処理へリターンする。
そして、S55にて、YESの判断をしたときは、S56、S562
又はS57へと順次進む。以下の処理が、本発明に特に関
係する処理である。
以下の処理では、最も新しく抽出された今回の周期情
報ttの変化が、演奏者により意図的に変更されたのか、
又は倍音等として誤って抽出された成分によるものなの
かを判定する。
報ttの変化が、演奏者により意図的に変更されたのか、
又は倍音等として誤って抽出された成分によるものなの
かを判定する。
まず、S56では、今回の周期情報tt×2-7>|今回の周
期情報tt−周期レジスタTTRの内容|が判断される。今
回の周期情報t=t5−t3が、それに重なる周期TTR=t4
−t2(S67参照)とほぼ一致するか否かが判断される。
この処理は、今回の周期情報ttが周期レジスタTTRの内
容すなわち半周期前の周期情報から、2-7以上の割合で
変化した場合は、正常なピッチ周期の変化ではないとし
て、S56の判定がNOとなり、後述するS61のピッチ変更の
処理へ移行しない。
期情報tt−周期レジスタTTRの内容|が判断される。今
回の周期情報t=t5−t3が、それに重なる周期TTR=t4
−t2(S67参照)とほぼ一致するか否かが判断される。
この処理は、今回の周期情報ttが周期レジスタTTRの内
容すなわち半周期前の周期情報から、2-7以上の割合で
変化した場合は、正常なピッチ周期の変化ではないとし
て、S56の判定がNOとなり、後述するS61のピッチ変更の
処理へ移行しない。
次に、S56の条件を満たした場合、S562へ進む。ここ
では、今回の周期情報tt≦倍音判定のための閾値tt12が
判断される。ここで、tt12には後述するS62によって、
ピッチ変更を行った前々回の値ttの12/16の値がセット
される。従って、ここでは、今回の周期情報ttが、前々
回のピッチ変更を行った周期の75%より短いか否か、す
なわち今回の周期情報ttに対応するピッチ周波数が前々
回のピッチ変更を行ったピッチ周波数の1.33倍より大き
いか否かが判定される。ここで、「本発明の概略動作」
の項で説明したように、ピッチ抽出時において誤抽出さ
れ得る成分としては、2倍音、3倍音等の整数倍音成分
の他に、1.5倍或いは1.33倍の非整数倍音成分が経験的
に存在する。従って、1.33倍以下のピッチ周波数の変化
であれば正しいピッチ変化、すなわち演奏者がチョーキ
ング奏法等により意図的にピッチ周波数(音程)を変化
させた場合であるとみなせる。このとき、1.33倍音は、
ギターのフレット上では、5フレット分の変化に相当
し、演奏者が意図的に音程を変化させる場合に5フレッ
ト分以上変化させることは、経験的にほとんどない。従
って、今回の周期情報ttに対応するピッチ周波数が前々
回のピッチ変更を行ったピッチ周波数の1.33倍より小さ
い場合、すなわち今回の周期情報ttが、前々回のピッチ
変更を行った周期の75%より長い場合には、S562の判定
がNOとなり、S58〜S60を介して、即座にS61のピッチ変
更処理を行う。これにより、演奏者による意図的なピッ
チ周波数の変更操作に良く追従して、楽音の音高を変更
できることになる。
では、今回の周期情報tt≦倍音判定のための閾値tt12が
判断される。ここで、tt12には後述するS62によって、
ピッチ変更を行った前々回の値ttの12/16の値がセット
される。従って、ここでは、今回の周期情報ttが、前々
回のピッチ変更を行った周期の75%より短いか否か、す
なわち今回の周期情報ttに対応するピッチ周波数が前々
回のピッチ変更を行ったピッチ周波数の1.33倍より大き
いか否かが判定される。ここで、「本発明の概略動作」
の項で説明したように、ピッチ抽出時において誤抽出さ
れ得る成分としては、2倍音、3倍音等の整数倍音成分
の他に、1.5倍或いは1.33倍の非整数倍音成分が経験的
に存在する。従って、1.33倍以下のピッチ周波数の変化
であれば正しいピッチ変化、すなわち演奏者がチョーキ
ング奏法等により意図的にピッチ周波数(音程)を変化
させた場合であるとみなせる。このとき、1.33倍音は、
ギターのフレット上では、5フレット分の変化に相当
し、演奏者が意図的に音程を変化させる場合に5フレッ
ト分以上変化させることは、経験的にほとんどない。従
って、今回の周期情報ttに対応するピッチ周波数が前々
回のピッチ変更を行ったピッチ周波数の1.33倍より小さ
い場合、すなわち今回の周期情報ttが、前々回のピッチ
変更を行った周期の75%より長い場合には、S562の判定
がNOとなり、S58〜S60を介して、即座にS61のピッチ変
更処理を行う。これにより、演奏者による意図的なピッ
チ周波数の変更操作に良く追従して、楽音の音高を変更
できることになる。
一方、今回の周期情報ttに対応するピッチ周波数が前
々回のピッチ変更を行ったピッチ周波数の1.33倍より大
きい場合、すなわち今回の周期情報ttが、前々回のピッ
チ変更を行った周期の75%より短い場合には、倍音成分
抽出等の誤ったピッチ抽出が行われたと判断され、S562
の判定がYESとなってS57に進む。
々回のピッチ変更を行ったピッチ周波数の1.33倍より大
きい場合、すなわち今回の周期情報ttが、前々回のピッ
チ変更を行った周期の75%より短い場合には、倍音成分
抽出等の誤ったピッチ抽出が行われたと判断され、S562
の判定がYESとなってS57に進む。
S57では今回の周期情報tt×2-7>|今回の周期情報tt
−前々回周期データh|が判断される。第11図の例の場
合、今回の周期情報tt=t5−t3(S48参照)が、1周期
前の前回の周期データh=TTP=t3−t1(S52参照)の値
とほぼ一致するか否かが判断される。この場合、前記S5
62の判定がYESとなった直後は、S57の判定はS562の判定
より厳しいため、S57の判定は当然NOとなる。そして、
前記STEP4のルートとルートの処理が繰り返され、
やがて正しい周期情報が抽出されると、S57の判定がYES
となる。これにより、S58〜S60を介して、ようやくS61
でピッチ変更が行われる。このように、誤ったピッチ周
期情報に基づいてピッチ変更すなわち楽音の音高の変更
が行われてしまわないようにすることができる。
−前々回周期データh|が判断される。第11図の例の場
合、今回の周期情報tt=t5−t3(S48参照)が、1周期
前の前回の周期データh=TTP=t3−t1(S52参照)の値
とほぼ一致するか否かが判断される。この場合、前記S5
62の判定がYESとなった直後は、S57の判定はS562の判定
より厳しいため、S57の判定は当然NOとなる。そして、
前記STEP4のルートとルートの処理が繰り返され、
やがて正しい周期情報が抽出されると、S57の判定がYES
となる。これにより、S58〜S60を介して、ようやくS61
でピッチ変更が行われる。このように、誤ったピッチ周
期情報に基づいてピッチ変更すなわち楽音の音高の変更
が行われてしまわないようにすることができる。
以上のように、S56、S562又はS57においては、演奏者
による意図的なピッチ周波数の変更操作に良く追従して
音高を変更できるような判定を行うと同時に、誤ったピ
ッチ周波数による音高変更が行われないような判定がな
される。
による意図的なピッチ周波数の変更操作に良く追従して
音高を変更できるような判定を行うと同時に、誤ったピ
ッチ周波数による音高変更が行われないような判定がな
される。
上記S562又はS57の判定がYESとなった後、S58の処理
に進む。
に進む。
S58では、今回の周期情報tt>定数TTUかどうかが判断
され、YESならばS59へ進み、ここで今回の周期情報tt<
定数TTWかどうかが判断され、YESならばS60へ進む。な
お、S58、S59でNOと判定される場合については後述す
る。
され、YESならばS59へ進み、ここで今回の周期情報tt<
定数TTWかどうかが判断され、YESならばS60へ進む。な
お、S58、S59でNOと判定される場合については後述す
る。
S60では、レジスタSTEP=4であるのかどうかの判断
が行われ、YESの場合にはS61に進む。
が行われ、YESの場合にはS61に進む。
S61では、第1図のMCP3から楽音発生回路501へピッチ
変更(今回の周期情報ttに基づく)が行われ、S62に進
む。
変更(今回の周期情報ttに基づく)が行われ、S62に進
む。
S62では、今回の周期情報ttに対応して時定数チェン
ジをし、また定数TTUが(17/32)×今回の周期情報ttに
書替えられ、さらに定数TTWが(31/16)×今回の周期情
報ttに書き替えられる。更に、前記したように、今回の
周期情報ttを12/16倍した値が、次のルートのS562に
おける倍音判定で用いられる閾値tt12の値とされる。
ジをし、また定数TTUが(17/32)×今回の周期情報ttに
書替えられ、さらに定数TTWが(31/16)×今回の周期情
報ttに書き替えられる。更に、前記したように、今回の
周期情報ttを12/16倍した値が、次のルートのS562に
おける倍音判定で用いられる閾値tt12の値とされる。
また、後述するように、リラティブオフの処理がなさ
れたときに限り、STEP=5となるが、そのときはS60か
らS62に直接進み、S61でピッチ変更を行なうことなく、
S62で時定数チェンジを行なう。
れたときに限り、STEP=5となるが、そのときはS60か
らS62に直接進み、S61でピッチ変更を行なうことなく、
S62で時定数チェンジを行なう。
上記時定数チェンジの処理とは、第2図の時定数変換
制御回路202内部の時定数変換レジスタCHTRRに今回の周
期情報ttの値に基づく周期データを第1図のMCP3がセッ
トすることをいう。これは、前記「ピッチ抽出デジタル
回路の動作」の「詳細動作」の項で既に説明したとおり
である。
制御回路202内部の時定数変換レジスタCHTRRに今回の周
期情報ttの値に基づく周期データを第1図のMCP3がセッ
トすることをいう。これは、前記「ピッチ抽出デジタル
回路の動作」の「詳細動作」の項で既に説明したとおり
である。
そして、S62の処理の終了で第4図のメインルーチン
のM2の処理へ戻る。
のM2の処理へ戻る。
以上述べたようにルートでは、第11図の例では、次
の処理がなされる。即ち、HNC=1、MT=1=b、RIV=
1と判定され、FOFR←0、tt←t−TF=t5−t3、RIV←
0、TF←t=t5、e←AMP(1)=a1、AMP(1)←c=
a2、h←TTP=TP(1)=t3−t1、TTP←tt=t5−t3、VE
L←c=a2となり、更に、 TTR≒tt tt≧tt12、又は(tt≦tt12、かつtt≒TTP) TTU<tt<TTW、 AMP(0)−c<NCHLV の4条件の満足で、ttに従ったピッチ変更を行なう。そ
の後、TTU←(17/32)×tt、TTW←(31/16)×tt、tt12
←(12/16)×ttの設定がなされる。
の処理がなされる。即ち、HNC=1、MT=1=b、RIV=
1と判定され、FOFR←0、tt←t−TF=t5−t3、RIV←
0、TF←t=t5、e←AMP(1)=a1、AMP(1)←c=
a2、h←TTP=TP(1)=t3−t1、TTP←tt=t5−t3、VE
L←c=a2となり、更に、 TTR≒tt tt≧tt12、又は(tt≦tt12、かつtt≒TTP) TTU<tt<TTW、 AMP(0)−c<NCHLV の4条件の満足で、ttに従ったピッチ変更を行なう。そ
の後、TTU←(17/32)×tt、TTW←(31/16)×tt、tt12
←(12/16)×ttの設定がなされる。
以上の動作によりルートにおいて、実際の楽音発生
回路501(第1図)に対するピッチ変更が行われ、続く
ゼロクロスインタラプト(次のピークの検出)でルート
の処理、同様に、続くゼロクロスインタラプトで、ル
ートの処理が行われる。このようにして、ルートで
は、単に周期を抽出(S67を参照)し、ルートでは実
際のピッチ変更(S61参照)、時定数チェンジ処理(S62
参照)が行われることになる。
回路501(第1図)に対するピッチ変更が行われ、続く
ゼロクロスインタラプト(次のピークの検出)でルート
の処理、同様に、続くゼロクロスインタラプトで、ル
ートの処理が行われる。このようにして、ルートで
は、単に周期を抽出(S67を参照)し、ルートでは実
際のピッチ変更(S61参照)、時定数チェンジ処理(S62
参照)が行われることになる。
《リラティブオンの処理動作》 第9図のSTEP4におけるルートのS66で、波形ナンバ
ーカウンタHNCが3を越えるようにカウントアップされ
た後は、S40においてYESの判断がなされ、次にS41へ行
き、リラティブオンの条件を検出する。
ーカウンタHNCが3を越えるようにカウントアップされ
た後は、S40においてYESの判断がなされ、次にS41へ行
き、リラティブオンの条件を検出する。
これは、c−AMP(b)>TRLRLであり、前回のピーク
値AMP(b)に比べて今回のピーク値cがしきい値TRLRL
を越えて増大したとき、つまり、これは弦操作後に同じ
弦を再度ピッキングしたとき(トレモロ奏法などによ
る)にこのようなことがおき、この場合はS41の判定結
果がYESとなり、リラティブオンの処理をすべくS41から
S78へ進む。
値AMP(b)に比べて今回のピーク値cがしきい値TRLRL
を越えて増大したとき、つまり、これは弦操作後に同じ
弦を再度ピッキングしたとき(トレモロ奏法などによ
る)にこのようなことがおき、この場合はS41の判定結
果がYESとなり、リラティブオンの処理をすべくS41から
S78へ進む。
S78では、時定数変換制御回路202(第2図)の時定数
変換レジスタCHTRRへ最高音フレット(例えば22フレッ
ト)の周期CHTIMをセットする。
変換レジスタCHTRRへ最高音フレット(例えば22フレッ
ト)の周期CHTIMをセットする。
上記処理の後、第5図のSTEP0のS06へ進み、当該発音
中の楽音をノートオフした後、再発音を開始する。な
お、通常の演奏操作によれば、第9図のSTEP4のS41では
NOの判断がなされ、S42へ進み、上述したルートもし
くはルートへ進む。
中の楽音をノートオフした後、再発音を開始する。な
お、通常の演奏操作によれば、第9図のSTEP4のS41では
NOの判断がなされ、S42へ進み、上述したルートもし
くはルートへ進む。
《リラティブオフの処理動作》 次に、第15図を参照して、リラティブオフ処理を説明
する。リラティブオフとは、フレット操作をしている状
態から、ピッキングをしないで開放弦状態へ移行する操
作にともない消音動作を行うことをいう。
する。リラティブオフとは、フレット操作をしている状
態から、ピッキングをしないで開放弦状態へ移行する操
作にともない消音動作を行うことをいう。
この場合、波形の振幅レベルは急激に落ちてきて、前
々回の波高値(ピーク値)AMRL2と前回の波高値(ピー
ク値)AMRL1との差が(1/32)・AMRL2を越えるようにな
り、第9図のSTEP4のS46からS74へ進む。
々回の波高値(ピーク値)AMRL2と前回の波高値(ピー
ク値)AMRL1との差が(1/32)・AMRL2を越えるようにな
り、第9図のSTEP4のS46からS74へ進む。
そして、リラティブオフカウンタFOFRが定数ROFCTを
越えるまでカウントアップするようにS74からS75へ進
む。
越えるまでカウントアップするようにS74からS75へ進
む。
続けて、S75からS48へ行きS49〜S55の処理を行なう
が、FOFR=0でないので、S55の判定結果はNOとなり、
リラティブオフ処理に入る直前ではピッチ変更を行なう
ことなく第4図のメインルーチンのM2の処理へ戻る。
が、FOFR=0でないので、S55の判定結果はNOとなり、
リラティブオフ処理に入る直前ではピッチ変更を行なう
ことなく第4図のメインルーチンのM2の処理へ戻る。
そして、リラティブオフ時のピークが次々に入力し、
S74でNOと判断すると、つまり第15図の例では、FOFRの
値が3となったとき(ROFCTは2である)、S74からS76
へ移行する。
S74でNOと判断すると、つまり第15図の例では、FOFRの
値が3となったとき(ROFCTは2である)、S74からS76
へ移行する。
ただし、S46の判断でYESの判断が一度でもあるとする
と、S46からS47へ進み、FOFRをリセットするように動作
する。従って、ROFCTで指定される回数だけ続けてS46の
条件を満足しなければ、リラティブオフの処理はなされ
ない。なお、ROFCTの値は、音高が高い弦について大き
な値としておけば、ほぼ一定の時間経過で、いずれの弦
についてもリラティブオフ処理ができる。
と、S46からS47へ進み、FOFRをリセットするように動作
する。従って、ROFCTで指定される回数だけ続けてS46の
条件を満足しなければ、リラティブオフの処理はなされ
ない。なお、ROFCTの値は、音高が高い弦について大き
な値としておけば、ほぼ一定の時間経過で、いずれの弦
についてもリラティブオフ処理ができる。
次に、S74からS76へ行くと、リラティブオフカウンタ
FOFRをリセットし、レジスタSTEPを5とし、S77へ進ん
で楽音発生回路501(第1図)に対しノートオフを指示
する。
FOFRをリセットし、レジスタSTEPを5とし、S77へ進ん
で楽音発生回路501(第1図)に対しノートオフを指示
する。
このSTEPが5の状態では、ピッチ抽出処理をSTEP4の
時と同様に実行するが、S60からS61を介することなくS6
2へ進むので、楽音発生回路501に対しては、ピッチ変更
は指示されない。ただし、S62において抽出した周期に
従って時定数チェンジ処理を行なう。
時と同様に実行するが、S60からS61を介することなくS6
2へ進むので、楽音発生回路501に対しては、ピッチ変更
は指示されない。ただし、S62において抽出した周期に
従って時定数チェンジ処理を行なう。
そして、STEPが5の状態では、リラティブオンの処理
を受付けるが(S41、S78)、それ以外の場合では、第4
図のメインルーチンの中で、振動レベルが減少してきた
ことが検知されることによりM14でSTEPが0となり、初
期状態にもどる。
を受付けるが(S41、S78)、それ以外の場合では、第4
図のメインルーチンの中で、振動レベルが減少してきた
ことが検知されることによりM14でSTEPが0となり、初
期状態にもどる。
なお、S46で使用するAMRL1、AMRL2はS64で作られてお
り、1周期の中でレベルが大きい方のピーク(最大ピー
クと最小ピークとのうちいずれか一方)がこの値とさ
れ、第15図の最大ピークakが最大ピークbk−1より必ず
大である場合であって、an+1とan+2、an+2とan+
3、an+3とan+4の差がいずれも所定値を越えるよう
になっている。
り、1周期の中でレベルが大きい方のピーク(最大ピー
クと最小ピークとのうちいずれか一方)がこの値とさ
れ、第15図の最大ピークakが最大ピークbk−1より必ず
大である場合であって、an+1とan+2、an+2とan+
3、an+3とan+4の差がいずれも所定値を越えるよう
になっている。
また、このときルートの処理においては、最小ピー
クbn+1、bn+2、bn+3が極端に減少してきているの
で、S54でNOの判断が成されて、第4図のメインルーチ
ンのM2の処理へ戻り、ピッチ変更処理はなされない。
クbn+1、bn+2、bn+3が極端に減少してきているの
で、S54でNOの判断が成されて、第4図のメインルーチ
ンのM2の処理へ戻り、ピッチ変更処理はなされない。
《ピッチ周期不適切時の処理動作》 次に、ピッチ周期が不適切な場合、即ち、ピッチ抽出
している際に、S58又はS59でオクターブ関係にある倍
音、つまりオクターブ高い周期やオクターブ低い周期が
続けて検出されたときの処理について説明を行う。
している際に、S58又はS59でオクターブ関係にある倍
音、つまりオクターブ高い周期やオクターブ低い周期が
続けて検出されたときの処理について説明を行う。
今、第9図のSTEP4のS58の定数TTUは、第8図のSTEP3
のS301にて最小の値0とされ、定数TTWは同様に最大の
値MAXとされており、はじめてこのフローを通るときは
必ずS58、S59でYESの判断がなされるが、その後はS62に
おいて、定数TTUには、(17/32)・tt(ほぼ1オクター
ブ高音の周期情報)がセットされ、定数TTWには同様にS
62にて(31/16)・tt(ほぼ1オクターブ低音の周期情
報)がセットされる。
のS301にて最小の値0とされ、定数TTWは同様に最大の
値MAXとされており、はじめてこのフローを通るときは
必ずS58、S59でYESの判断がなされるが、その後はS62に
おいて、定数TTUには、(17/32)・tt(ほぼ1オクター
ブ高音の周期情報)がセットされ、定数TTWには同様にS
62にて(31/16)・tt(ほぼ1オクターブ低音の周期情
報)がセットされる。
従って、急激にオクターブアップする場合(これは、
振動弦を指で振動を止めるようにミュート操作したとき
などに生ずる)、又はオクターブダウンする場合(これ
は波形のピークを取り逃した時などに起る)が発生した
ときは、ピッチ変更をすると、不自然となるので、ピッ
チ変更をしないように分岐する。
振動弦を指で振動を止めるようにミュート操作したとき
などに生ずる)、又はオクターブダウンする場合(これ
は波形のピークを取り逃した時などに起る)が発生した
ときは、ピッチ変更をすると、不自然となるので、ピッ
チ変更をしないように分岐する。
即ち、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より大となったと
き、S60へ進むことなく、第4図のメインルーチンのM2
の処理へ戻る。
前回抽出した周期の31/16倍した値TTWより大となったと
き、S60へ進むことなく、第4図のメインルーチンのM2
の処理へ戻る。
この状態は第16図に示されている。通常ノートオフ近
辺の非常に波形が小さい場合は、他のピッキングによっ
てヘキサピックアップのクロストークやボディの共振に
よって波形が乗ってくる。すると、例えば、第16図のよ
うな入力波形となり、1オクターブ下の入力波形が続け
て検出されてしまうことがある。
辺の非常に波形が小さい場合は、他のピッキングによっ
てヘキサピックアップのクロストークやボディの共振に
よって波形が乗ってくる。すると、例えば、第16図のよ
うな入力波形となり、1オクターブ下の入力波形が続け
て検出されてしまうことがある。
このような場合、何等処理を施さないと、急にオクタ
ーブ下の音を出力してしまい、極めて不自然となる。そ
のために、S56、S57でTan+2≒Tan+3≒Tbn+2が検
出されても、Tan+3>Tan+1×(31/16)となるの
で、ピッチ変更することなく、S59から第4図のメイン
ルーチンのM2の処理へ戻る。
ーブ下の音を出力してしまい、極めて不自然となる。そ
のために、S56、S57でTan+2≒Tan+3≒Tbn+2が検
出されても、Tan+3>Tan+1×(31/16)となるの
で、ピッチ変更することなく、S59から第4図のメイン
ルーチンのM2の処理へ戻る。
《ダブリ処理の動作》 次に、波形がダブって抽出される場合、即ち、同じ極
性のピークが続けて検出される場合の処理について説明
を行う。
性のピークが続けて検出される場合の処理について説明
を行う。
まず、第9図のSTEP4のS42の判定結果がNOとなるルー
トにおいて、S63でYESの場合は、S68に進みダブリ処
理が行われる。
トにおいて、S63でYESの場合は、S68に進みダブリ処
理が行われる。
即ち、S63でYESの場合はS68に進み、今回ピーク値c
>同じ符号の前回のピーク値AMP(b)かどうかが判断
され、YESの場合はS69に進む。
>同じ符号の前回のピーク値AMP(b)かどうかが判断
され、YESの場合はS69に進む。
S69では、今回ピーク値cに前回のピーク値AMP(b)
が書き替えられ、S70に進む。
が書き替えられ、S70に進む。
S70では今回ピーク値c>前回の振幅値(ピーク値)A
MRL1かどうかが判断され、YESの場合にはS71に進み、こ
こで今回ピーク値cが前回の振幅値(ピーク値)AMRL1
とされる。
MRL1かどうかが判断され、YESの場合にはS71に進み、こ
こで今回ピーク値cが前回の振幅値(ピーク値)AMRL1
とされる。
もし、S68でNOの判断がなされるとすぐに、第4図の
メインルーチンのM2の処理に戻る。従って、新しい入力
波形のピークが大である場合についてのみ、倍音のピー
クをひろっていないと考えられるので、新しい波形のピ
ーク値が登録される。
メインルーチンのM2の処理に戻る。従って、新しい入力
波形のピークが大である場合についてのみ、倍音のピー
クをひろっていないと考えられるので、新しい波形のピ
ーク値が登録される。
また、S70でNOのときと、S71の処理の終了のときに
は、同様にメインルーチンへ戻る。
は、同様にメインルーチンへ戻る。
第17図に、上記ダブリ処理の例を示す。なお、この例
の場合はMT=0の状態を示している。一般に、基本波周
期と倍音成分の周期が非整数倍の関係にあるので、倍音
の位相がずれて行き、同じ極性のゼロクロスを検出をし
てしまうことになり、そのために誤ったピッチ変更をし
ないようにしないといけない。この図の例の場合では、
「ダブリ」と示しているところで、ダブリの状態が生じ
ている。
の場合はMT=0の状態を示している。一般に、基本波周
期と倍音成分の周期が非整数倍の関係にあるので、倍音
の位相がずれて行き、同じ極性のゼロクロスを検出をし
てしまうことになり、そのために誤ったピッチ変更をし
ないようにしないといけない。この図の例の場合では、
「ダブリ」と示しているところで、ダブリの状態が生じ
ている。
このときは、S42からS63へ行き、YESの判断をしてS68
へ行く。S68では、この場合、(an+2)と(an+3)
との比較をして、(an+3)が(an+2)より大なとき
に限りS69へ行き、AMP(1)を書替える。そして、更に
前回の振幅値(ピーク値)AMRL1と今回の振幅情報(ピ
ーク値c)の比較をS70で行って、もしYESならばS71へ
進み、今回のピーク値cを前回の振幅値(ピーク値)AM
RL1とする。
へ行く。S68では、この場合、(an+2)と(an+3)
との比較をして、(an+3)が(an+2)より大なとき
に限りS69へ行き、AMP(1)を書替える。そして、更に
前回の振幅値(ピーク値)AMRL1と今回の振幅情報(ピ
ーク値c)の比較をS70で行って、もしYESならばS71へ
進み、今回のピーク値cを前回の振幅値(ピーク値)AM
RL1とする。
次に、第9図のSTEP4のS42の判定結果がYESとなるル
ートにおいて、次のS43でNOとなる場合は、S72に進み
上記と同様にダブリ処理が行われる。
ートにおいて、次のS43でNOとなる場合は、S72に進み
上記と同様にダブリ処理が行われる。
即ち、S43でNOの場合はS72に進み、今回ピーク値c>
同じ符号の前回のピーク値AMP(b)かどうかが判断さ
れ、YESの場合はS73に進み、今回ピーク値cに前回のピ
ーク値AMP(b)が書き替えられた後、第4図のメイン
ルーチンのM2の処理へ戻る。
同じ符号の前回のピーク値AMP(b)かどうかが判断さ
れ、YESの場合はS73に進み、今回ピーク値cに前回のピ
ーク値AMP(b)が書き替えられた後、第4図のメイン
ルーチンのM2の処理へ戻る。
もし、S72でNOの判断がなされるとすぐに、第4図の
メインルーチンのM2の処理に戻る。従って、この場合
も、新しい入力波形のピークが大である場合についての
み、新しい波形のピーク値が登録される。
メインルーチンのM2の処理に戻る。従って、この場合
も、新しい入力波形のピークが大である場合についての
み、新しい波形のピーク値が登録される。
第18図に、その例を示す。この例ではMT=1の状態を
示している。この場合、図のダブリと書いてあるゼロク
ロス時のSTEP4の処理では、S42からS43へ行き、S43では
YESの判断をしてS72へ進む。ここで(an+3)と(an+
2)の大きさが比較され、もし(an+3)が(an+2)
より大であれば、S72でYESの判断をし、AMP(1)に、
(an+3)の値をセットし、もし逆の場合は何等変更処
理をしない。
示している。この場合、図のダブリと書いてあるゼロク
ロス時のSTEP4の処理では、S42からS43へ行き、S43では
YESの判断をしてS72へ進む。ここで(an+3)と(an+
2)の大きさが比較され、もし(an+3)が(an+2)
より大であれば、S72でYESの判断をし、AMP(1)に、
(an+3)の値をセットし、もし逆の場合は何等変更処
理をしない。
ところで、上記のダブリ処理の場合、抽出している時
刻データは何等使用しないので、周期情報Tan+3は何
等変わらない。また、当然周期データに基づくピッチ変
更は行われない。
刻データは何等使用しないので、周期情報Tan+3は何
等変わらない。また、当然周期データに基づくピッチ変
更は行われない。
{本発明の他の実施例} 以上、本実施例においては、この発明を電子ギダー
(ギーターシンセサイザ)に適用したものであったが、
それに限らない。演奏操作を入力波形信号として検出
し、それに基づいてオリジナルの信号とは別の音響信号
を発生するタイプの楽音発生装置で、演奏者が意図的に
入力波形信号のピッチ周波数を変更できるようなタイプ
のものであれば、種々適用可能である。
(ギーターシンセサイザ)に適用したものであったが、
それに限らない。演奏操作を入力波形信号として検出
し、それに基づいてオリジナルの信号とは別の音響信号
を発生するタイプの楽音発生装置で、演奏者が意図的に
入力波形信号のピッチ周波数を変更できるようなタイプ
のものであれば、種々適用可能である。
(発明の効果) 本発明によれば、弦振動から抽出した周期に応じて生
成されるピッチ情報について適否を判断し、誤ピッチ情
報と判定されたら、以前の適正ピッチ情報にて指定され
た音高を維持するので、誤った音高指定を防止できる。
成されるピッチ情報について適否を判断し、誤ピッチ情
報と判定されたら、以前の適正ピッチ情報にて指定され
た音高を維持するので、誤った音高指定を防止できる。
さらに、適正ピッチ情報についても適否を判断し、適
正ピッチ情報が以前に指定された音高の所定倍数以下で
変動したら、意図したピッチ変化と見做し、指定中の音
高をその変動に追従して変更させ、これにより弦張力を
意図的に変化させてピッチ変化を起こす各様な奏法(チ
ョーキング、グリッサンド、トレモロ等)に対応した音
高指定を行うことができる。
正ピッチ情報が以前に指定された音高の所定倍数以下で
変動したら、意図したピッチ変化と見做し、指定中の音
高をその変動に追従して変更させ、これにより弦張力を
意図的に変化させてピッチ変化を起こす各様な奏法(チ
ョーキング、グリッサンド、トレモロ等)に対応した音
高指定を行うことができる。
加えて、適正ピッチ情報が以前に指定された音高の所
定倍数を越えて変動したら、意図しないピッチ変化と見
做して即座に適正ピッチ情報を誤ピッチ情報と判定して
指定中の音高を維持させておき、この場合、弦振動の周
期変動が所定範囲に収束するまで誤ピッチ情報と判定し
続け、収束し終えたら適正ピッチ情報と判定するので、
音高を変更させている最中に誤った音高指定を防止する
ことができる。ことが可能となる。
定倍数を越えて変動したら、意図しないピッチ変化と見
做して即座に適正ピッチ情報を誤ピッチ情報と判定して
指定中の音高を維持させておき、この場合、弦振動の周
期変動が所定範囲に収束するまで誤ピッチ情報と判定し
続け、収束し終えたら適正ピッチ情報と判定するので、
音高を変更させている最中に誤った音高指定を防止する
ことができる。ことが可能となる。
第1図は、本発明による電子楽器の構成図、 第2図は、ピッチ抽出ディジタル回路の構成図、 第3図は、割込み処理ルーチンの動作フローチャートを
示した図、 第4図は、メインルーチンの動作フローチャートを示し
た図、 第5図は、STEP0の動作フローチャートを示した図、 第6図は、STEP1の動作フローチャートを示した図、 第7図は、STEP2の動作フローチャートを示した図、 第8図は、STEP3の動作フローチャートを示した図、 第9図は、STEP4(5)の動作フローチャートを示した
図、 第10図は、本実施例の概略動作説明図、 第11図は、本実施例の基本動作説明図、 第12図(a)、(b)は、STEP1におけるダブリ処理の
動作説明図、 第13A図、第13B図、第13C図は、それぞれSTEP2における
ダブリ処理の動作説明図、 第14図は、STEP3におけるノイズ除去処理の動作説明
図、 第15図は、STEP4におけるリラティブオフ処理の動作説
明図、 第16図は、STEP4におけるピッチ周期不適切時の処理動
作説明図、 第17図は、ルートにおけるダブリ処理の動作説明図、 第18図は、ルートにおけるダブリ処理の動作説明図で
ある。 1……ピッチ抽出アナログ回路、 2……ピッチ抽出デジタル回路、 3……中央制御装置(MCP)、 4……アドレスデコーダ、 5……楽音発生部、 201……ピーク検出回路、 202……時定数変換制御回路、 203……波高値取込回路、 204……ゼロクロス時刻取込回路、 501……楽音発生回路、 D1……デジタル出力、
示した図、 第4図は、メインルーチンの動作フローチャートを示し
た図、 第5図は、STEP0の動作フローチャートを示した図、 第6図は、STEP1の動作フローチャートを示した図、 第7図は、STEP2の動作フローチャートを示した図、 第8図は、STEP3の動作フローチャートを示した図、 第9図は、STEP4(5)の動作フローチャートを示した
図、 第10図は、本実施例の概略動作説明図、 第11図は、本実施例の基本動作説明図、 第12図(a)、(b)は、STEP1におけるダブリ処理の
動作説明図、 第13A図、第13B図、第13C図は、それぞれSTEP2における
ダブリ処理の動作説明図、 第14図は、STEP3におけるノイズ除去処理の動作説明
図、 第15図は、STEP4におけるリラティブオフ処理の動作説
明図、 第16図は、STEP4におけるピッチ周期不適切時の処理動
作説明図、 第17図は、ルートにおけるダブリ処理の動作説明図、 第18図は、ルートにおけるダブリ処理の動作説明図で
ある。 1……ピッチ抽出アナログ回路、 2……ピッチ抽出デジタル回路、 3……中央制御装置(MCP)、 4……アドレスデコーダ、 5……楽音発生部、 201……ピーク検出回路、 202……時定数変換制御回路、 203……波高値取込回路、 204……ゼロクロス時刻取込回路、 501……楽音発生回路、 D1……デジタル出力、
Claims (1)
- 【請求項1】演奏操作によって励振される弦振動から抽
出した周期に応じてピッチ情報を生成するピッチ情報生
成手段と、 前記周期が、短期間中に所定以上変動した場合には前記
ピッチ情報生成手段が生成するピッチ情報を誤ピッチ情
報と判定し、そうでない場合には適正ピッチ情報と判定
する第1の判定手段と、 適正ピッチ情報が供給された場合にはそれに対応した音
高を指定し、誤ピッチ情報が供給された場合にはそれ以
前の適正ピッチ情報にて指定された音高を維持する音高
指定手段と、 適正ピッチ情報が、以前に指定された音高の所定倍数以
下で変動した場合には意図したピッチ変化と見做して前
記音高指定手段が指定中の音高を、当該適正ピッチ情報
の変動に追従して変更させ、一方、所定倍数を超えて変
動した場合には意図しないピッチ変化と見做して当該適
正ピッチ情報を前記誤ピッチ情報と判定して前記音高指
定手段にて指定中の音高を維持させる第2の判定手段
と、 この第2の判定手段によって適正ピッチ情報が誤ピッチ
情報と判定された場合、前記周期の変動が所定範囲に収
束するまで前記ピッチ情報生成手段が生成するピッチ情
報を誤ピッチ情報と判定し続け、収束し終えたら適正ピ
ッチ情報と判定する第3の判定手段と を有することを特徴とする音高情報生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63309670A JP2858313B2 (ja) | 1988-12-07 | 1988-12-07 | 音高情報生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63309670A JP2858313B2 (ja) | 1988-12-07 | 1988-12-07 | 音高情報生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02154298A JPH02154298A (ja) | 1990-06-13 |
JP2858313B2 true JP2858313B2 (ja) | 1999-02-17 |
Family
ID=17995858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63309670A Expired - Lifetime JP2858313B2 (ja) | 1988-12-07 | 1988-12-07 | 音高情報生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2858313B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5988796A (ja) * | 1982-11-15 | 1984-05-22 | パイオニア株式会社 | 信号発生装置 |
JPS63173096A (ja) * | 1987-01-12 | 1988-07-16 | カシオ計算機株式会社 | 電子楽器の入力制御装置 |
JPS63298397A (ja) * | 1987-05-29 | 1988-12-06 | カシオ計算機株式会社 | 電子弦楽器の入力制御装置 |
-
1988
- 1988-12-07 JP JP63309670A patent/JP2858313B2/ja not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5988796A (ja) * | 1982-11-15 | 1984-05-22 | パイオニア株式会社 | 信号発生装置 |
JPS63173096A (ja) * | 1987-01-12 | 1988-07-16 | カシオ計算機株式会社 | 電子楽器の入力制御装置 |
JPS63298397A (ja) * | 1987-05-29 | 1988-12-06 | カシオ計算機株式会社 | 電子弦楽器の入力制御装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH02154298A (ja) | 1990-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2615825B2 (ja) | 電子弦楽器 | |
JP2734521B2 (ja) | 楽音制御装置 | |
US5048391A (en) | Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal | |
US5147970A (en) | Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal | |
US5990408A (en) | Electronic stringed instrument using phase difference to control tone generation | |
US4924746A (en) | Input apparatus of electronic device for extracting pitch from input waveform signal | |
JP2722584B2 (ja) | 楽音制御装置 | |
JP2775633B2 (ja) | 楽音制御装置 | |
JP2858313B2 (ja) | 音高情報生成装置 | |
JP2661481B2 (ja) | 電子楽器 | |
JP2615946B2 (ja) | 楽音制御装置 | |
JP2958778B2 (ja) | 楽音発生装置 | |
JP2661066B2 (ja) | 発音制御装置 | |
JP2611263B2 (ja) | 発音制御装置 | |
JP2661065B2 (ja) | 発音制御装置 | |
JP2591001B2 (ja) | 電子弦楽器 | |
JP2591000B2 (ja) | 電子弦楽器 | |
JP2605773B2 (ja) | 電子弦楽器 | |
JP6135312B2 (ja) | 電子弦楽器、楽音制御方法及びプログラム | |
JP2530928Y2 (ja) | 電子楽器のレベル表示装置 | |
JPH01100596A (ja) | 電子楽器の入力制御装置 | |
JP6361109B2 (ja) | 電子弦楽器、楽音制御方法及びプログラム | |
JP2014153434A (ja) | 電子弦楽器、楽音生成方法及びプログラム | |
JPH0372400A (ja) | 電子楽器 | |
JPH01100597A (ja) | 発音制御装置 |