JPH0535296A - ピツチ抽出装置及びそれを用いた電子楽器 - Google Patents

ピツチ抽出装置及びそれを用いた電子楽器

Info

Publication number
JPH0535296A
JPH0535296A JP3187486A JP18748691A JPH0535296A JP H0535296 A JPH0535296 A JP H0535296A JP 3187486 A JP3187486 A JP 3187486A JP 18748691 A JP18748691 A JP 18748691A JP H0535296 A JPH0535296 A JP H0535296A
Authority
JP
Japan
Prior art keywords
pitch
zero
interval
processing
acoustic signal
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.)
Granted
Application number
JP3187486A
Other languages
English (en)
Other versions
JP3149466B2 (ja
Inventor
Tetsukazu Nakae
哲一 仲江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP18748691A priority Critical patent/JP3149466B2/ja
Publication of JPH0535296A publication Critical patent/JPH0535296A/ja
Application granted granted Critical
Publication of JP3149466B2 publication Critical patent/JP3149466B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】 本発明は、入力された音響信号から、その波
形のピッチを抽出するピッチ抽出装置及びそれを用いた
電子楽器において、入力する音響信号が如何なるピッチ
周波数を有していてもそれを正確に検出可能とすること
を目的とする。 【構成】 ゼロクロス検出方式により得られたピッチに
対応するノート・ナンバーPIT の値が所定の音階Kより
下であるか否かが判定される(ステップS403)。その判
定がYESで入力された音響信号のピッチが低いと判定
されたら、ゼロクロス検出方式の処理結果に基づいて、
楽音発生回路に対して発音処理が実行される(ステップ
S404)。逆に、上記判定がNOで入力された音響信号の
ピッチが高いと判定されたら、フィルタ処理方式の処理
結果に基づいて、楽音発生回路に対して発音処理が実行
される。これにより、高精度かつリアルタイムのピッチ
抽出(音階検出)が可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、入力された音響信号か
ら、その波形のピッチ(音階)を抽出するピッチ抽出装
置及びそれを用いた電子楽器に関する。
【0002】
【従来の技術】従来から、例えば人が歌う歌声やマイク
ロフォンから採取した楽音などの繰り返し波形からなる
音声信号から、そのピッチ周波数又はピッチ周期(以
下、単に「ピッチ」と呼ぶ)を抽出したいという要請が
強い。ピッチを抽出できれば、例えば、そのピッチに対
応する楽音を電子楽器等から発音させることができるよ
うになるなど、抽出されたピッチ情報を様々な処理に用
いることが可能となる。
【0003】従来から、音声信号からピッチを抽出する
技術として種々の手法が提案されている。ピッチ抽出方
式の第1の代表的な従来例として、例えば本出願人が特
願平3−120291で開示したように、入力された音
響信号の隣接するゼロクロス点(振幅が0となる時間位
置)の間の時間をその波形のピッチ周期として求める方
式がある。
【0004】ピッチ抽出方式の第2の代表的な従来例と
して、例えば本出願人が特願平2−123789で開示
したように、各音階に対応するバンドパスフィルタを各
々設け、各フィルタを介して各音階に対応する周波数に
関する周波数スペクトルのレベルを検知し、レベルが最
大になった周波数をピッチ周波数として求める方式が
る。
【0005】
【発明が解決しようとする課題】しかし、第1の従来例
では、入力される音響信号のピッチ周波数が高くなる
と、ピッチ周期が短くなりすぎてしまい、正確なピッチ
周期を求めるのが困難になるという問題点を有してい
る。
【0006】また、第2の従来例では、それがアナログ
回路によって構成される場合にはバンドパスフィルタを
複数組設けなければならず、回路規模が大きくなってし
まうという問題点を有している。
【0007】これに対して、時分割で動作するディジタ
ルフィルタによって複数のバンドパスフィルタを実現す
れば、回路規模を小さくすることができる。しかし、入
力される音響信号のピッチ周波数が低くなると、低帯域
のバンドパスフィルタを構成しなければならないためフ
ィルタ係数の値が大きくなり、そのフィルタ係数を表現
するために必要なビット数が、ディジタルフィルタを実
現する例えばDSP(ディジタル信号処理プロセッサ)
の許容ビット数をオーバーしてしまうという問題が発生
する。
【0008】また、ピッチ抽出装置の第2の従来例が楽
器の音階検出装置として使用される場合、高い音階域の
音階周波数の差は、例えばA6 =1760[Hz]とA
#6=1867[Hz]の差の107[Hz]のように、
比較的大きい周波数差となるが、低い音階域の音階周波
数の差は、例えばA2 =110[Hz]とA#2=116
[Hz]の差の7[Hz]のように、僅かな周波数差に
しかならない。従って、低い音階域ほどカットオフ周波
数の急俊なバンドパスフィルタを構成しなければなら
ず、その結果バンドパスフィルタの次数が高くなってD
SP等によるリアルタイム処理が不可能になってしまう
という問題点を有している。
【0009】本発明の課題は、入力する音響信号が如何
なるピッチ周波数を有していてもそれを正確に検出可能
とすることにある。
【0010】
【課題を解決するための手段】本発明は、まず、入力さ
れる音響信号から値が負又は正の第1の極性から他方の
第2の極性へ変化するゼロクロス点を順次検出し、それ
ら各ゼロクロス点間の間隔から音響信号のピッチ情報を
検出する第1のピッチ検出手段を有する。同手段は、例
えば音響信号の極性が所定方向に変化するゼロクロス点
からその次の極性が逆方向に変化するゼロクロス点まで
のゼロクロス間隔を順次求め、順次求まるゼロクロス間
隔が一致したときの一方のゼロクロス間隔の先頭のゼロ
クロス点から他方のゼロクロス間隔の先頭のゼロクロス
点までの間隔から音響信号のピッチ周期を検出する。
【0011】次に、音響信号に対して異なる特性のディ
ジタルフィルタリング処理を時分割で順次行うことによ
り、その処理に対応する各々所定の複数の周波数に関す
る各周波数スペクトルのレベルを検出し、これら各周波
数スペクトルのレベルを判定することによって音響信号
のピッチ情報を検出する第2のピッチ検出手段を有す
る。同手段は、例えば所定の特性のハイパスフィルタリ
ング処理と、上述した各所定の周波数でピークを有する
レゾナンスが付加された各ローパスフィルタリング処理
とを音響信号に対して時分割のカスケード処理として順
次実行し、更に、その結果得られる各所定の周波数に対
応する各出力信号から各エンベロープ成分を抽出するロ
ーパスフィルタ処理等の信号処理を時分割で順次実行
し、それにより得られる各所定の周波数に対応する各エ
ンベロープ成分として上述の各周波数スペクトルのレベ
ルを検出する。そして、例えば、これら各周波数スペク
トルのレベルのうち値が最大となるレベルに対応する周
波数としてピッチ情報が検出される。
【0012】更に、第1又は第2のピッチ検出手段の何
れかで検出されたピッチ情報が所定の周波数閾値以下の
ピッチ周波数に対応しているならば第1のピッチ検出手
段からのピッチ情報を出力し、所定の周波数閾値以上の
ピッチ周波数に対応しているならば第2のピッチ検出手
段からのピッチ情報を出力する選択手段を有する。
【0013】本発明は、以上の構成を有するピッチ抽出
装置からのピッチ情報を用いることにより、そのピッチ
情報に対応する音階の楽音を発生する楽音発生手段を更
に有するような電子楽器として構成することもできる。
【0014】
【作用】「発明が解決しようとする課題」において説明
したように、ゼロクロス検出によるピッチ抽出方式は、
入力される音響信号のピッチ周波数が低い範囲では良い
性能を発揮する。一方、ディジタルフィルタリングによ
るピッチ抽出方式は、入力される音響信号のピッチ周波
数が高い範囲では良い性能を発揮する。
【0015】そこで、本発明では、これら2つの方式の
出力をピッチ周波数に応じて切替えて選択することによ
り、両者の長所を生かした高精度なピッチ抽出を実現す
ることができる。
【0016】この場合特に、ディジタルフィルタリング
によるピッチ抽出方式がピッチ周波数の高い範囲でのみ
使用されることにより、フィルタ係数の値を小さくする
ことができ、通常のDSP(ディジタル信号処理プロセ
ッサ)等によって容易にディジタルフィルタを構成する
ことができる。
【0017】また、本発明によるピッチ抽出装置が電子
楽器の音階検出装置として使用される場合、ピッチ周波
数が高い、即ち音階が高い範囲の音階周波数の差は大き
な値となるため、カットオフ周波数の急俊なディジタル
フィルタを構成する必要がなくなり、その結果バンドパ
スフィルタの次数を低くすることができ、DSP等によ
るリアルタイム処理を容易に実現できる。
【0018】
【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。全体構成 図1は、本発明の実施例の全体構成を示すブロック図で
ある。
【0019】本実施例は、CPU(中央演算制御装置)
101、ROM102、RAM103、音階検出部11
1、キーボード106、ディスプレイ105、プリンタ
104、楽音発生回路108、D/A変換器109、ア
ンプ110及びスピーカ111等を備えており、こらら
各部分は、バス107により接続されている。
【0020】ROM102には、後述する動作フローチ
ャートで示される各種制御プログラムや、音色データ等
の各種データが格納されている。CPU101は、RO
M102内の制御プログラムに従って、他の各部分を制
御する。
【0021】RAM103は、後述する音階検出部11
1をゼロクロス検出装置やディジタルフィルタ又はエン
ベロープ抽出装置として動作させるためのデータ等を記
憶すると共に、CPU101のワークメモリとして機能
する。
【0022】音階検出部111は、マイク112、マイ
クアンプ113、ローパスフィルタ114、A/D変換
器115、DSP116、ROM117及びワークRA
M118から構成され、また、音響信号のライン入力端
子として、LINE IN を備えている。
【0023】この音階検出部111では、マイク112
又はライン入力端子LINE IN から入力されるアナログ音
響信号(楽器音、人声音、或いはテープレコーダやラジ
オ、テレビ、CDプレーヤ等からの再生音響等)が、ロ
ーパスフィルタ114を介してA/D変換器115に入
力され、ディジタル音響信号(以後、単に音響信号と呼
ぶ)x(n) に変換されてDSP116に入力される。
【0024】DSP116は、上記音響信号x(n) に基
づいて、後述するディジタルフィルタ演算のための各種
係数及びピッチ周期からノート・ナンバーへの変換テー
ブルを記憶したROM117、或いは各種データを記憶
するワークRAM118を用いて、後述するゼロクロス
検出又はフィルタ処理を行う。
【0025】DSP116での処理結果は、CPU10
1に送られる。CPU101は、DSP116での処理
結果及び後述する楽音発生回路108に内蔵されている
各種モジュールの記憶状態に基づいて、楽音発生回路1
08に対する音階音の割り付け処理や削除処理を行う。
【0026】キーボード106には、ファンクションス
イッチや鍵盤等が設けられており、これらが操作される
と、CPU101が、その操作状態を検出し、楽音発生
回路108に発生されるべき楽音を割り当てる。
【0027】ディスプレイ105又はプリンタ104
は、CPU101の制御下で動作し、検出された音階を
表示し又は用紙に印字する。例えばCPU101は、リ
アルタイムで入力中の音響信号の音階をディスプレイ1
05に表示し、或いは、この音響信号の音階を、ノンリ
アルタイムで、編集作業等を経た上で、楽譜などとして
ディスプレイ105にしたりプリンタ104で用紙に印
字したりしてもよい。
【0028】楽音発生回路108としては、例えば、P
CM方式、FM方式、iPD方式、正弦波合成方式等の
各種タイプの音源回路が適用可能である。この楽音発生
回路108は、複数(例えば4チャネル)の楽音発音チ
ャネルを有しており、CPU101によって割り付けら
れた音階番号の音階音を発生する。この音階音は、オー
ディオシステム109を介してスピーカ110から放音
される。DSPの構成 次に、図2は、図1のDSP116の全体構成図であ
る。
【0029】同図において、まず、インタフェース20
1は、CPU101に接続されるバス107及びA/D
変換115に接続されるバスを収容し、各バスとDSP
内部の回路とを接続する。
【0030】オペレーションROM203は、DSP1
16の全体の動作を規定するマイクロプログラムを格納
したROMであり、アドレスカウンタ202からの指定
アドレスに基づいて対応するプログラム命令が読み出さ
れる。図1のCPU101は、アドレスカウンタ202
にデータをセットすることによって、オペレーションR
OM203から如何なるプログラムを読み出して後述す
る各処理を実行するかを、アドレスカウンタ202に指
示する。
【0031】オペレーションROM203の出力は、デ
コーダ204にも与えられ、DSP116内の各回路に
各種の制御信号を出力し、所望の動作を行わせる。一
方、DSP116の内部バスには、図1のROM117
及びワークRAM118が接続される。そして、オペレ
ーションROM203からのプログラム命令に従って、
フィルタ係数や音響信号x(n) 等が、DSP116に対
して供給され、或いはワークRAM118に対して入出
力される。
【0032】レジスタ群208は、演算中のデータを一
時記憶する複数のレジスタからなり、乗算器205又は
加減算器207の各入出力端子に、内部バスを介して接
続されている。そして、加減算器207からの演算結果
(比較結果等)に基づいたジャッジ処理を実現するた
め、フラグレジスタ206を介してアドレスカウンタ2
02へ、ジャッジ結果を示すフラグ信号が送出される。
【0033】このフラグレジスタ206の出力に応じて
アドレスカウンタ202のアドレスが変更され、そのア
ドレスに応じてオペレーションROM203からプログ
ラム命令が読み出される。このようにして、ジャッジ処
理が実現される。
【0034】以上、図1及び図2の構成を有する本発明
の実施例の動作について、以下に順次説明する。DSP116とCPU101の基本動作 まず、DSP116の全体的な動作について説明する。
【0035】図3は、図2のオペレーションROM20
3に格納されたマイクロプログラムが実行されることに
より実現されるDSP116の全体的な動作を示すフロ
ーチャートである。
【0036】まず、電源がオンされると、図2のワーク
RAM118、レジスタ群208などの全ての内容が初
期化される(ステップS301)。次に、図1のA/D変換
器115において1サンプル分のA/D変換処理が終了
するのが待たれ(ステップS302)、A/D変換処理が終
了すると、ディジタルデータに変換された1サンプル分
の音響信号が、ワークRAM118に取り込まれる。
【0037】続いて、上述のA/D変換された音響信号
に基づいて、後に詳述するゼロクロス検出によるピッチ
検出が行われる(ステップS303)。更に、同じく上述の
A/D変換された音響信号に基づいて、後に詳述するフ
ィルタ処理によるピッチ検出が行われる(ステップS30
4)。
【0038】そして、ゼロクロス検出によりワークRA
M118に得られたピッチに対応するノート・ナンバー
PIT とエンベロープ値ENV 、及びフィルタ処理により同
じくワークRAM118に得られた各音階のエンベロー
プ信号Et(n)が、CPU101に転送される(ステップ
S305)。
【0039】以上のステップS302〜S305の処理が、A/
D変換器115において1サンプル分のA/D変換処理
が終了する毎に実行される。以上のように、DSP11
6では、音響信号に対して、ゼロクロス検出によるピッ
チ検出とフィルタ処理によるピッチ検出とがそれぞれ実
行される点が特徴である。
【0040】次に、CPU101の全体的な動作につい
て説明する。図4は、図1のROM102に格納された
制御プログラムが実行されることにより実現されるCP
U101の全体的な動作を示すフローチャートである。
【0041】まず、電源がオンされると、図1のRAM
118、CPU101内の特には図示しないレジスタ等
の内容が初期化される(ステップS401)。次に、DSP
116から図3のステップS305での転送処理に基づ
くデータが転送されてくるのが待たれ(ステップS40
2)、それらのデータが転送されてくると、DSP11
6でのゼロクロス検出(図3のステップS303)により得
られたピッチに対応するノート・ナンバーPIT の値が所
定の音階Kより下であるか否かが判定される(ステップ
S403)。
【0042】そして、ステップS403の判定がYESで、
入力された音響信号のピッチが低いと判定されたら、D
SP116でのゼロクロス検出(図3のステップS303)
の処理結果に基づいて、楽音発生回路108に対して発
音処理が実行される(ステップS404)。
【0043】逆に、ステップS403の判定がNOで、入力
された音響信号のピッチが高いと判定されたら、DSP
116でのフィルタ処理(図3のステップS304)の処理
結果に基づいて、楽音発生回路108に対して発音処理
が実行される(ステップS405)。
【0044】以上のステップS402〜S405の処理が、DS
P116から図3のステップS305での転送処理に基づく
データが転送されてくる毎に実行される。ゼロクロス検出処理 次に、図3のDSP処理におけるゼロクロス検出の処理
について説明する。 <ゼロクロス検出の基本動作原理>通常、例えば人の歌
声などのように、ピッチ感が明瞭でかつ単音で演奏され
る音声は、図5に示すように、ピッチ周期(例えば)
毎に繰り返されるほぼ相似の波形要素(例えば同図のa
とd、bとe、cとf)で構成されている。
【0045】このような音声は、その音声に含まれる倍
音成分のために、その波形が振幅0の基準レベルを横切
るゼロクロス点を1ピッチ周期内に数多く有している。
そのため、このような周期性を有する波形からそのピッ
チ周期を求めるには、いずれのゼロクロス点の間をピッ
チ周期とするかを決定しなければならないが、上述のよ
うな周期性を有する波形にはつぎのような特徴がある。
【0046】即ち、隣接するピッチ周期のほぼ同形の波
形(例えば上記aとd)のそれぞれのゼロクロス点(例
えばZ1〜Z2とZ7〜Z8)で定まる区間(例えばと)の
時間はほぼ等しい。
【0047】本実施例では上述の点に着目し、隣接する
ゼロクロス点間の時間のほぼ等しい2つの区間(例えば
と)を見出すことにより、その2つの区間のそれぞ
れの開始点(例えばZ1とZ7)の間の時間間隔を抽出し
て、入力音響信号のピッチに対応するノートナンバーを
検出する。
【0048】上述のような基本動作原理に従って動作す
るゼロクロス検出の動作について、以下に説明する。 <ゼロクロス検出の動作の概要>図5において、例え
ば、波形aのゼロクロス点Z1〜Z2の区間の時間がカウ
ントされ、そのカウント値COUNT 1 が第1のカウンタに
保持される。次に、波形aと同じ極性を有する波形b、
c、d・・・のそれぞれの区間、、の時間が順次
カウントされ、そのカウント値COUNT 2 は、COUNT 1 と
ほぼ等しい値が得られるまで順次更新されながら、第2
のカウンタに保持される。
【0049】この場合に、ゼロクロス点Z1から、波形
b、c、dのそれぞれのゼロクロス点Z3、Z5、Z7までの
時間、、及びが第3のカウンタによってカウント
される。そのカウント値COUNT 3 は、この入力音声信号
のピッチ周期となる可能性を有するので、ピッチ周期と
なるカウント値が得られるまで、順次更新されながらR
AM4内の変数PITCOUNTER に保存される。
【0050】そして、区間の時間とほぼ等しい時間を
有する区間が見出されたら、ゼロクロス点Z1、Z7間の
時間に相当するカウンタ値が上記メモリ変数PIT COUN
TERから読み出され、ピッチ周期として確定される。そ
して、そのピッチ周期に対応するノート・ナンバーがR
OM117内のテーブルから求められる。 <ゼロクロス検出の具体的動作>次に、上述の動作原理
に従い、入力される音響信号の波形のピッチを求める動
作を、図6〜図8の動作フローチャートを用いて説明す
る。これらの動作フローチャートは、図3のステップS
303の部分の詳細であり、DSP116が、オペレー
ションROM203内に記憶されているマイクロプログ
ラムを実行する動作として実現される。
【0051】図6において、まず、ワークRAM118
には、音声信号を読み出す時点がその信号波形のいかな
る状態(status) に対応するかを示すステータス・フ
ラグ(図5参照)、入力音声信号の波形エンベロープの
大きさを示す変数ENV 、ピッチ抽出の結果得られたピッ
チに対応するノート・ナンバーを保持する変数PIT 、第
1、第2、第3の3個のカウンタの各々のカウント値を
保持する変数count 1,count 2,count 3 、及び1つ前の
A/D変換値を保持する変数ADMEM などの各データが保
持される。
【0052】続いて、A/D変換器115から入力され
てくる1サンプル分の音響信号が、レジスタ群208内
のレジスタreg1に格納される(ステップS601)。その
後、ステータス・フラグにより処理が3つに分岐される
(ステップS602)。最初は、図5のステータス・フラグ
=0の状態であるので、ステップS603に進む。ステータ
ス・フラグ=0の状態では、入力音響信号の振幅が負側
から正側へ向かうゼロクロス点Z1を検出するために、1
つ前のA/D変換値が書き込まれている変数ADMEM の値
が負で、かつ現在のA/D変換値が格納されているレジ
スタreg1の値が正であるか否かが判定される。
【0053】今の場合、ステップS603の判定はNOであ
り、ステップS605に進む。そして、今回A/D変換値が
セットされたreg1の値が変数ADMEM に移され(ステップ
S605)、エンベロープ抽出(ステップS606)が実行され
た後、ゼロクロス検出を終了する。
【0054】上記エンベロープ抽出(ステップS606)の
処理は、図8の動作フローチャートとして示される。図
8において、まず、現在のA/D変換値(reg1の内容)
の絶対値が演算され(ステップS801)、その後、その絶
対値データがローパスフィルタを通されて、入力された
音響信号の波形が整形される(ステップS802)。そして
その結果得られたエンベロープ値が変数ENV に格納され
る(ステップS803)。
【0055】以上の処理は、音響信号の各サンプルが入
力されて図3のステップS303のゼロクロス検出が繰り返
し実行され、入力音響信号のサンプリング点がその振幅
が負側から正側へ向うゼロクロス点(図5のZ1)に到達
するまで繰り返される。
【0056】サンプリング点が上記ゼロクロス点に到達
すると、図6のステップS603の判定がYESとなり、ス
テータス・フラグSTATUS FLAG が1にされる(ステップ
S604)。
【0057】上述のようにステータス・フラグSTATUS F
LAG が1になったため、次のサンプル点に対応する図3
のS303のゼロクロス検出でのステップS602の処理におい
て、ステップS607に移る。
【0058】この状態では、図5の区分に例示される
時間をカウントするために、第1のカウンタとしての変
数COUNT 1 (以下、第1のカウンタCOUNT 1 と呼ぶ)の
インクリメントが、また、区分に例示される時間をカ
ウントするために第3のカウンタとしての変数COUNT 3
(以下、第3のカウンタCOUNT 3 と呼ぶ)のインクリメ
ントがそれぞれ開始される。
【0059】まず、第1のカウンタCOUNT 1 の値が1増
加させられる(ステップS607)。次に、入力音響信号の
振幅が正側から負側へ向うゼロクロス点、すなわち図5
の区間の終了点であるゼロクロス点Z2を検出するため
に、1つ前のA/D変換値が書き込まれた変数ADMEM の
値が正で、かつ現在のA/D変換値が書き込まれたレジ
スタreg 1 の値が負であるか否かが判定される(ステッ
プS608)。
【0060】その判定がNOなら、第3のカウンタCOUN
T 3 の値が1増加させられる(ステップS610)。以後、
ステップS608→S610→S605→S606〜S602→S607→S608・
・・のループ処理が、音響信号の各サンプルが入力され
て図3のステップS303のゼロクロス検出が実行される毎
に繰り返され、その繰り返し処理毎に第1のカウンタCO
UNT 1 及び第3のカウンタCOUNT 3 の値が1づつ増加さ
れる。
【0061】そして、ステップS608の判定がYESにな
り、入力音響信号のサンプリング点がその振幅が正側か
ら負側へ向うゼロクロス点Z2に到達すると、ステータス
・フラグが2にされる(ステップS609)。その後、ステ
ップS610に進み、COUNT 3 が値1増加されたあと、ステ
ップS605→S606と進む。
【0062】以上のようなループ処理が行われて、図2
の区間の時間に相当するカウンタ値が第1のカウンタ
COUNT 1 に保持される。続いて、音響信号の次のサンプ
ルが入力されて再び図3のステップS303のゼロクロス検
出が実行されると、上述のステップS609でステータス・
フラグは2にされたため、今回はステップS602から、図
7のステップS611→S612と進む。
【0063】ステップS612では、入力音響信号の振幅が
負側から正側へ向うゼロクロス点(図5のZ3)を検出す
るため、図6のステップS603と同じ処理、即ち、変数AD
MEMの値(1つ前のA/D変換値)が負で、かつレジス
タreg1の値(現在のA/D変換値)が正であるか否かが
判定される。
【0064】その判定がNOである間は、S612→ステッ
プS610(図6)→S605→S606〜S602→S611(図7)→S6
12・・・のループ処理が、音響信号の各サンプルが入力
され図3のステップS303のゼロクロス検出が実行される
毎に繰り返され、各繰り返し毎に第3のカウンタCOUNT
3 のカウント値が1づつ増加させられる(S610)。
【0065】そして、ステップS612の判定がYESにな
り、入力音響信号のサンプリング点がその振幅が負側か
ら正側へ向うゼロクロス点Z3に到達すると、ステータス
・フラグが3にされて、このときのCOUNT 3 の値(図5
の時間に相当)が変数PITCOUNTER に保存される(ス
テップS613)。このPIT COUNTER の値は、抽出されるべ
きピッチに対応する周期の候補、すなわち、図5の区間
のカウント値になる可能性を有するものとして、保持
される。
【0066】その後、ステップS613→S610(図6)→S6
05→S606と進んだ後、音響信号の次のサンプルが入力さ
れて再び図3のステップS303のゼロクロス検出が実行さ
れ、S601→S602〜S611(図7)と進む。
【0067】今回はSTATUS FLAG =3 の状態となったた
め、ステップS611からステップS614に進み、第2のカウ
ンタCOUNT 2 のカウント値が1増加され、この時点から
図5の区分のカウントが開始される。
【0068】次に、入力音響信号の振幅が正側から負側
へ向うゼロクロス点、すなわち図5の区間の終了点に
相当するゼロクロス点Z4が検出されるため、変数ADMEM
の値(1つ前のA/D 変換値)が正で、かつレジスタreg1
の値(現在のA/D 変換値)が負であるか否かが判定され
る(ステップS615)。
【0069】その判定がNOの間は、ステップS614→S6
15→S610(図6)〜S606〜S601→S602→S611(図7)→
S614のループ処理が、音響信号の各サンプルが入力され
図3のステップS303のゼロクロス検出が実行される毎に
繰り返され、各繰り返し毎に第2のカウンタCOUNT 2 と
第3のカウンタCOUNT 3 の値が1づつ増加される。
【0070】ステップS615の判定がYESになると、ゼ
ロクロス点Z4が検出されたことになり、ここでステータ
ス・フラグが4に変えられる(ステップS616)。その
後、図6のステップS610に進み、COUNT 3 が値1増加さ
れたあと、ステップS605→S606と進み、音響信号の次の
サンプルが入力されて再び図3のステップS303のゼロク
ロス検出が実行されると、S601→S602→S611(図7)と
進む。
【0071】今回はSTATUS FLAG =4 の状態となったた
め、ステップS611からステップS617に進む。この状態で
は、図5の区分に対して区分、、が順次比較さ
れ、区分とほぼ等しい時間を有する区分が見出され
たとき、区分の時間を入力された音響信号のピッチ周
期と定める処理動作が行われる。
【0072】まず、今までに得られた第1のカウンタCO
UNT 1 と第2のカウンタCOUNT 2 のそれぞれの値がほぼ
等しいか否か、すなわち、COUNT 1 とCOUNT 2 のそれぞ
れの値の差の絶対値が、許容誤差範囲内にあるか否かが
判定される(ステップS617)。この許容誤差範囲は、入
力音響信号のサンプリング周波数とピッチ周波数に依存
するが、経験的に決定される。
【0073】今の場合は、COUNT 1 とCOUNT 2 は、それ
ぞれ図5の区間とのカウント値を保持しているた
め、ステップS617の判定はNOとなりステップS618に進
む。ここで、入力音響信号に雑音などが混入すると、そ
れが原因となって、ステップS617の判定がNOの状態が
異常に長く続き、楽音の発音指示が行われない場合があ
る。
【0074】このような異常状態の発生を防ぐために、
音響信号のピッチ周期とされるべき時間をカウントする
第3のカウンタCOUNT 3 の値が常に監視され、その値が
音声信号の最低音のピッチ周期に比べてはるかに大きい
値を有する所定の制限値を超えているか否かが判定され
る(ステップS618)。
【0075】この制限値も前述の許容誤差範囲と同様、
経験的に決定される。例えばサンプリング周波数を20KH
z 、最低抽出音高(ピッチ)を110.5Hz (音名:A1に相
当)とすると、 20000÷110.5 =180.995 ・・・ となるため、制限値は180前後とすればよい。
【0076】ステップS618の判定がYESの場合、すな
わち異常状態の場合は、図1のCPU101を介して楽
音発生回路108に対して、全ての発音中の音を消音す
る指示がなされると共に、後述すR変数on nowがクリア
され、ゼロクロス検出の処理を終了する。
【0077】ステップS618の判定がNOの場合は、ステ
ップS619に進んで、第2のカウンタCOUNT 2 の値がクリ
アされ、ステータス・フラグは2に戻される。そして、
再び次のゼロクロスを求めるための処理に入る。このと
き変数PIT COUNTER に保持された値は無効となるが、第
3のカウンタCOUNT 3 は依然カウントアップをつづけて
おり、また、第1のカウンタCOUNT 1 も図5の区間の
カウント値を保持している。
【0078】上述のようにしてステータス・フラグの2
の状態に戻された後は、前回と同様にステータス・フラ
グの3の状態、4の状態と進み、第2のカウンタCOUNT
2 には図5の区間のカウント値、変数PIT COUNTER に
は同図の区間の始まりから区間のゼロクロス点z5ま
でのカウント値(図5の)が保持される。
【0079】しかし、今回もCOUNT 1 の値(区分の時
間に対応)とCOUNT 2 の値(区分の時間に対応)が一
致しないため、ステップS407の判定がNOとなる。その
ためステップS618を介してステップS619に進み、再びス
テータス・フラグが2の状態から実行し直されることに
なる。
【0080】そして、この次にステータス・フラグが再
び4の状態になったとき、COUNT 2は図5の区間のカ
ウント値を保持し、一方、PIT COUNTER は同図の時間
のカウント値を保持している。そして、ステップS617に
おいて、初めてYESと判定され、ステップS621に進
む。
【0081】このときの入力された音響信号のピッチ周
期の正しい値は、PIT COUNTER に保持されている第3の
カウンタCOUNT 3 の値(図5の)となる。そして、こ
の値に対応するノート・ナンバーが図2のROM117
内の変換テーブルから読み出され、変数PIT に移される
(ステップS621)。
【0082】次に、ステータス・フラグと、すべてのカ
ウンタがクリアされ、初期状態にリセットされる(ステ
ップS622)。そして、図6のステップS605→S606と進ん
だ後、ゼロクロス検出の処理を終了する。
【0083】以上のようにして、音響信号の各サンプル
が入力され図3のステップS303のゼロクロス検出が実行
される毎に、ピッチ周期に対応するノート・ナンバーPI
T とエンベロープ値ENV が求められ、これらが図3のス
テップS305の処理によってDSP116からCPU10
1へ転送され、後に詳述する図4のステップS404の発音
処理において使用される。
【0084】上述のゼロクロス検出の処理では、ゼロク
ロス間隔の規則性のみに着目してノート・ナンバー(ピ
ッチ)の抽出が行われたが、ゼロクロス間隔の規則性に
例えば入力音響信号の各波形部分の面積や振幅の最大値
などの規則性を加味すれば、より高精度な処理が可能と
なる。フィルタ処理 次に、図3のDSP処理におけるフィルタ処理について
説明する。 <フィルタ処理の基本動作原理>まず、DSP116で
実行されるフィルタ処理の基本動作原理を、図9と図1
0を用いて説明する。
【0085】図9は、フィルタ処理の基本機能ブロック
図である。図9において、入力音響信号x(n) は、各サ
ンプルタイミング毎に図1のA/D変換器115からD
SP116に入力されてくる1サンプル分の音響信号で
ある。なお、nは、離散的なサンプリング時刻を示す。
【0086】上述の入力音響信号x(n) に対して、DS
P116における時分割処理によって、N個分のバンド
パスフィルタのフィルタリング処理が実行される。今、
任意の音階t(1≦t≦N)のバンドパスフィルタの伝
達関数をHt(z)とする。本実施例では、各伝達関数Ht
(z)(1≦t≦N)の特性が、複数オクターブの各音階
に依存して変更される。図10は、伝達関数Ht(z)を有
するバンドパスフィルタ(以下、バンドパスフィルタH
t(z)と呼ぶ)としてチェビシェフ形フィルタが採用され
る場合の周波数特性図である。この場合の伝達関数Ht
(z)は、下式で示される。
【0087】
【数1】
【0088】ここで、i=1とすると、DSP116
は、
【0089】
【数2】
【0090】で示されるディジタルフィルタリング処理
の演算を実行することになる。更に、i≧2の場合に
は、数2式と同様の演算が繰り返し実行されることにな
る。
【0091】また、バンドパスフィルタHt(z)のフィル
タ係数は、数値計算で求めることができる。具体例とし
ては、ノートナンバーA4 に対応する中心周波数が44
0[Hz]のバンドパスフィルタを以下に示される条件
(〜は図10を参照)で構成すると、下記の如き係
数値で実現される伝達関数Ht(z)を有するディジタルフ
ィルタリング処理が実行されることになる。
【0092】即ち、 =1[dB] =サンプリング周波数fs =10[kHz] =12[dB]以上 =415[Hz] =430[Hz] =450[Hz] =466[Hz] の条件で、i=1、2の2段のディジタルフィルタの各
フィルタ係数は、 Ht(0)=0.08192384 i=1に対して、 a1(1)=-1.91442200776 a2(1)= 0.9933673 b1(1)=-1.91105345727 b2(1)= 1. i=2に対して、 a1(2)=-1.9210712 a2(2)= 0.993606 b1(2)=-1.93525314797 b2(2)= 1. となる。
【0093】このように、各音階t(1≦t≦N)のバ
ンドパスフィルタHt(z)のディジタルフィルタリング処
理がDSP116において時分割的に実行され、その結
果、図9の各出力信号Yt(n)(1≦t≦N)が求まる。
【0094】続いて、DSP116は、図9に示される
ように、上記各出力信号Yt(n)に対して、それぞれエン
ベロープ抽出処理を時分割処理によって実行する。この
エンベロープ抽出処理は、各出力信号Yt(n)に対して、
所定時間間隔(例えば各音階に対応する時間間隔)毎に
ピークレベル(絶対値)を求める処理として実現され
る。或いは、後述するような特定のディジタルフィルタ
リング処理を各出力信号Yt(n)の絶対値に対して実行す
る処理として実現される。
【0095】以上のようにして、DSP116による時
分割処理によって、各音階t(1≦t≦N)についての
エンベロープ信号Et(n)が求まる。そして、前述したC
PU101による図4のステップS405の発音処理におい
て、後に詳述するようなレベル判断処理を実行すること
により、入力音響信号x(n) から音階情報を検出するこ
とができる。 <フィルタ処理の改良動作原理>上述のバンドパスフィ
ルタHt(z)は、それがチェビシェフ形フィルタとして実
現される場合についての原理説明であったが、例えば前
述したようなノートナンバーA4 に対応する中心周波数
が440[Hz]のバンドパスフィルタが構成された場
合、そのディジタルフィルタリング処理において各サン
プルタイミング毎に8回の乗算が必要となる。
【0096】そこで、ディジタルフィルタリング処理に
おける乗算回数を減らし、リアルタイムのフィルタ処理
を可能とする、フィルタ処理の改良された動作原理につ
き、図11〜図21を用いて以下に説明する。
【0097】図11は、フィルタ処理の改良機能ブロッ
ク図である。図11では、図9の伝達関数Ht(z)(1≦
t≦N)を有するバンドパスフィルタ処理と等価なフィ
ルタ処理が、伝達関数H1(z)(全音階tで共通)を有す
るハイパスフィルタ処理と、伝達関数H2t(z) (1≦t
≦N)を有するローパスフィルタ処理とのカスケード処
理によって実現される。この場合、図9のバンドパスフ
ィルタの伝達関数Ht(z)は、図11のように、ハイパス
フィルタの伝達関数H1(z)とローパスフィルタの伝達関
数H2t(z) の積で表される。
【0098】ここで、ハイパスフィルタの伝達関数H1
(z)は、後に詳述するが、周波数0で0、周波数fs /
2[Hz]で出力が最大となる特性を有する。また、ロ
ーパスフィルタの伝達関数H2t(z) は、これも後に詳述
するが、各音階周波数で出力が極大となるレゾナンスタ
イプの特性を有する。従って、上述のハイパスフィルタ
H1(z)とローパスフィルタH2t(z) とがカスケード接続
されることにより得られるフィルタの伝達関数Ht(z)
は、図12の如く疑似的なバンドパスフィルタの特性と
なっている。図12で、各中心周波数f1 〜fN が各音
階周波数に対応し、また、隣接帯域間の周波数差はΔf
である。更に、Nの値は40〜50程度(本実施例の場
合、高域側の3〜4オクターブ分)にすることが可能で
ある。
【0099】このようなフィルタリング処理によって得
られるローパスフィルタH2t(z) の各出力信号Wt(n)
(1≦t≦N)が、図11のように、伝達関数HEt(z)
(1≦t≦N)で示される各エンベロープ抽出部に入力
することによって、それぞれの出力としてエンベロープ
信号Et(n)(1≦t≦N)が得られる。このエンベロー
プ抽出部は、後に詳述するように、カットオフ周波数の
低いローパスフィルタとして実現される。
【0100】つぎに、伝達関数H1(z)を有するハイパス
フィルタ、伝達関数H2t(z) を有するローパスフィル
タ、及び伝達関数HEt(z) を有するエンベロープ抽出部
の各フィルタ特性について、以下に詳細に説明する。
【0101】図13は、図11のハイパスフィルタH1
(z)をハードウエアのイメージで示した構成図である。
これは、2次のFIRディジタルフィルタであって、そ
の伝達関数は、
【0102】
【数3】
【0103】で示される。図13において、1301、
1302のz-1はサンプリング・クロック1周期分の遅
延を与える遅延素子を表し、1306、1307は加算
器である。また1303、1304、1305は乗算器
であり、×2、×1、×1/4 の各係数は、上記各乗算器
における乗算係数である。
【0104】DSP116では、図13のハイパスフィ
ルタと等価なフィルタ処理が、
【0105】
【数4】
【0106】なる離散演算処理により実現される。な
お、この場合、フィルタ係数は2の倍数であるので、係
数と信号の乗算は、単なるビットシフト処理で実現され
る。
【0107】このハイパスフィルタの周波数特性は、
【0108】
【数5】
【0109】となり、Ω=0(0[Hz])でゲインが
最小、Ω=π(fs /2[Hz])でゲインが最大にな
る特性を有する。ここでfs は図1のA/D変換器11
5における音響信号x(n) のサンプリング周波数であ
る。図14にこのハイパスフィルタの特性を示す。サン
プリング定理により、fs /2〜fs [Hz]までの周
波数特性は、0〜fs /2[Hz]までの周波数特性が
fs /2[Hz]を境に折返った特性となっている。
【0110】続いて、図15は、図11のローパスフィ
ルタH2t(z) をハードウエアのイメージで示した構成図
である。これは、2次のIIRディジタルフィルタであ
り、その伝達関数は、
【0111】
【数6】
【0112】で示される。そして、この式のθとCY
は、後述するように、各音階tに応じて変化し、またr
がレゾナンスの強さ、つまり出力ピークの大きさを示す
パラメータである。
【0113】図15において、1501、1502は、
サンプリング・クロック1周期分の遅延を与える遅延素
子を表し、1503、1504、1505は乗算器で、
それぞれに同図に示される係数−2rcosθ、r2
CYが乗算される。また、1506及び1507は加算
器である。
【0114】DSP116においては、図15に示す構
成のローパスフィルタと等価なフィルタ演算処理が、
【0115】
【数7】
【0116】
【数8】
【0117】なる離散演算処理により実現される。ここ
で、伝達関数の極は、“**”をべき乗演算として、z1
=re**(jθ)、z2 =re**(-jθ)に存在し、z=
0に二重の零点がある。この極と零点の配置と、0<θ
<π/2としたときの極ベクトルと零点ベクトルとの関
係を図16に示す。
【0118】同図から理解されるとおり、単位円に沿っ
て移動する点Pと零点0を結ぶ線分が実軸となす角度を
Ωとすると、Ω=0〜πにおいて、極ベクトルZ1 と零
点ベクトルV1 との差であるベクトルV2 の長さは、初
めは減少し、その後に増加する。ベクトルV2 の最小の
長さは、P点が極Z1 に最接近したとき、すなわち、θ
=Ωのときである。
【0119】ここで、このローパスフィルタの周波数Ω
における周波数応答の大きさ(振幅特性)は、零点ベク
トルV1 とベクトルV2 のそれぞれの長さの比で定ま
る。そして、この零点ベクトルV1 の値は常に1である
から、周波数応答の大きさは、ベクトルV2 の大きさの
逆数に比例し、上述のようにθ=Ωで最大となる。また
周波数応答の大きさのピークは、rの値により定まり、
rの値が1に近づくほど大きくなる。図17は、Ω=−
π〜πにおけるこの周波数応答の大きさを表している。
【0120】一方、周波数応答の位相は、実軸と零点ベ
クトルV1 とのなす角Ωから、実軸とベクトルV2 との
なす角を引いた値になる。以上の説明から明らかなよう
に、各音階t(1≦t≦N)の中心周波数ftとサンプ
リング周波数fs を用いて、θ=2πfs /ft で求ま
るθの値を決めれば、図18に示されるように、各帯域
の中心周波数ft でピークを有するローパスフィルタが
実現される。
【0121】この場合、ピークの大きさは、前述のよう
にrの値により変化するが、このrの値を選択してピー
クが隣の帯域に影響するのを防ぎ、また前述のCYの値
を選択して各帯域の出力Wt(n)のレベルがほぼ等しくな
るように設定することができる。
【0122】上記rとCYの値は、例えば次のようにし
て求めることができる。今、各音階tの中心周波数ft
と、それからΔf離れた隣の音階t+1の中心周波数f
t+1 (=ft +Δf)との周波数応答の大きさの比をm
とすると、
【0123】
【数9】
【0124】というrについての4次方程式を解き、そ
の結果、得られたrのうち、0<r<1であるrを選
び、各係数−2rcosθ、r2 を求めることができ
る。数値計算の結果、例えばノートナンバーA4 に対応
する中心周波数が440[Hz]であり、サンプリング
周波数fs =5[kHz]、m=4とすると、 −2rcosθ=-1.9773 r2 = 0.9851 CY= 36.7 となる。その他の帯域についても同じようにして求める
ことができる。
【0125】以上のような伝達関数H1(z)を有するロー
パスフィルタと伝達関数H2t(z) を有するローパスフィ
ルタが、図11に示されるようにカスケードに接続され
ることにより、各伝達関数の積として表される全体の伝
達関数Ht(z)によって、図12で前述したように、疑似
的なバンドパスフィルタの特性が実現される。
【0126】つぎに、図19は、図11のエンベロープ
抽出部に対応するローパスフィルタ伝達特性HEt(z) を
ハードウエアのイメージで示した構成図である。これ
は、前述したローパスフィルタH2t(z) と同じ形の2次
のIIRディジタルフィルタで、その伝達関数は、
【0127】
【数10】
【0128】である。この式は数6式で前述したローパ
スフィルタの伝達関数H2t(z) において、r=0.9、
θ=0としたものに等しい。図19において、絶対値回
路1901は、図11のローパスフィルタH2t(z)の出
力Wt(n)の絶対値|Wt(n)|を出力し、次のディジタル
フィルタ部に送る。1902、1903はサンプリング
・クロック1周期分の遅延を与える遅延素子、190
4、1905及び1906は乗算器で、各乗算器には同
図に示される各係数が乗算される。また、1907及び
1908は加算器である。
【0129】DSP116では、図19に示される構成
のローパスフィルタと等価なフィルタ演算処理が、
【0130】
【数11】
【0131】なる離散演算処理により実現される。この
ローパスフィルタの周波数特性は、図20に示されるよ
うに、最大値を示すレゾナンスをΩ=0に有する。この
ローパスフィルタのカットオフ周波数は、エンベロープ
抽出という目的から、先の最低帯域のローパスフィルタ
H2t(z) のカットオフ周波数よりも、はるかに低い周波
数に設定される。
【0132】ここで、係数CEは、各音階t毎のそれぞ
れの出力レベルを合わせるためのものである。図21
は、図19のローパスフィルタで得られたエンベロープ
信号Et(n)を、ローパスフィルタH2t(z) の出力の絶対
値|Wt(n)|と対比させて模式的に示した図である。図
19の絶対値回路1901に相当する演算によって、入
力信号の負の波高値(図21の破線)が正の波高値に変
換された上で、ローパスフィルタ処理が行われる。これ
により、各音階t毎のエンベロープを求める動作が実現
される。 <フィルタ処理の具体的動作>上述のフィルタ処理の改
良原理に従い、入力される音響信号の音階(ピッチ)を
求める動作を、図22の動作フローチャートを用いて説
明する。この動作フローチャートは、図3のステップS
304の部分の詳細であり、DSP116が、オペレー
ションROM203内に記憶されているマイクロプログ
ラムを実行する動作として実現される。
【0133】図22の動作フローチャートに従ったフィ
ルタ処理により、音響信号の各サンプルx(n) が入力さ
れて図3のステップS304のフィルタ処理が繰り返し実行
される毎に、図11の各音階共通のハイパスフィルタ部
及び各音階毎のローパスフィルタイミング部とエンベロ
ープ抽出部に相当する処理が時分割処理で実行されるこ
とにより、サンプリング周期毎に各音階のエンベロープ
信号Et(n)が得られ、それが図3のステップS305の処理
によりCPU101に転送される。
【0134】図22の動作フローチャートに関連し、ワ
ークRAM118には、図1のA/D変換器115から
入力される現在、1サンプル前及び2サンプル前の各音
響信号を保持する各変数x(n) 、x(n-1) 及びx(n-2)
、図11の伝達関数H1(z)を有するハイパスフィルタ
部の現在、1サンプル前及び2サンプル前の各出力を保
持する各変数s(n) 、s(n-1) 及びs(n-2) 、図11の
伝達関数H2t(z) を有する各音階tに対応するローパス
フィルタ部の現在、1サンプル前及び2サンプル前の各
出力を保持する各変数Wt(n)、Wt(n-1)及びWt(n-2)
(1≦t≦N)、そうして、図11の伝達関数HEt(z)
を有する各音階tに対応するエンベロープ抽出部の現
在、1サンプル前及び2サンプル前の各出力を保持する
各変数Et(n)、Et(n-1)及びEt(n-2)(1≦t≦N)
が、それぞれ格納される。
【0135】図22において、まず、A/D変換器11
5から入力されてくる1サンプル分の音響信号が、図2
のワークRAM118内の変数x(n) に格納される(ス
テップS2201 )。
【0136】次に、ワークRAM118内の各変数x
(n) 、x(n-1) 及びx(n-2) から図2のレジスタ群20
8内の各レジスタに、現在のサンプルと過去2サンプル
分の音響信号が読み出され、図11の伝達関数H1(z)で
示されるハイパスフィルタ処理が実行される(ステップ
S2202 )。この処理は、前述の数4式で表される演算処
理であり、図2の乗算器205および加減算器207を
使って実行される。このとき数4式の演算に用いられる
各フィルタ係数は、ROM117から読み出される。こ
の結果得られた出力は、ワークRAM118内の変数s
(n) に格納される。
【0137】以上のハイパスフィルタ処理は、各帯域で
共通な処理であるため、1回のみ実行される。次に、図
11の伝達関数H2t(z) を有する各音階tに対応するロ
ーパスフィルタ処理と、伝達関数HEt(z) を有する各音
階tに対応するエンベロープ抽出処理が続けて実行され
る。
【0138】これらの処理は、各音階tに対応して、N
音階分の時分割処理として繰り返される。そのために、
図2のレジスタ群208内に、N音階分の時分割処理を
行うための繰り返し制御用のレジスタtが設けられ、ス
テップS2203 でレジスタtの値が1に初期設定される。
【0139】そして、ステップS2204 とS2205 で1音階
分のローパスフィルタ処理とエンベロープ抽出処理が終
了する毎に、ステップS2206 でレジスタtの内容がNに
達したか否かが判定され、達していなければ、ステップ
S2207 においてレジスタtの内容がインクリメントさ
れ、ステップS2204 とS2205 の処理が繰り返される。
【0140】このジャッジ処理は、図2の加減算器20
7とフラグレジスタ206によって実行され、アドレス
カウンタ202によって、ステップS2204、およびS2205
に対応するプログラム命令群がオペレーションROM
203から繰り返し読み出される。
【0141】まず、ROM117から、レジスタtで示
される番号に対応する音階のフィルタ係数CY、2rc
osθ及びr2 が読み出される。そして、ワークRAM
118の各変数s(n) 、s(n-1) 及びs(n-2) から図2
のレジスタ群208内の各レジスタに、現在のサンプル
と過去2サンプル分のステップS2202 におけるハイパス
フィルタ処理の出力信号が読み出され、これらの信号に
対して上述のフィルタ係数を用いて図11の伝達関数H
2t(z) で示されるローパスフィルタ処理が実行される
(ステップS2204 )。この処理は、前述の数7式で表さ
れる演算処理であり、図2の乗算器205および加減算
器207を使って実行される。この結果得られた出力
は、ワークRAM118内の変数Wt(n)に格納される。
なお、この変数の添え字tは、現在のレジスタtの値に
対応している。
【0142】続いて、ROM117から、レジスタtで
示される番号に対応する音階のフィルタ係数CE、「1.
8 」及び「0.81」が読み出される。そして、上述のロー
パスフィルタ処理の出力である変数Wt(n)の内容と、ワ
ークRAM118からレジスタ群208内のレジスタに
読み出された過去2サンプルのローパスフィルタ処理の
出力Wt(n-1)及びWt(n-2)に対して、上述のフィルタ係
数を用いて図11の伝達関数HEt(z) で示されるエンベ
ロープ抽出処理(ローパスフィルタ処理)が実行される
(ステップS2205 )。この処理は、前述の数11式で表
される演算処理であり、図2の乗算器205および加減
算器207を使って実行される。この結果得られた出力
は、ワークRAM118内の変数Et(n)に格納される。
なお、この変数の添え字tは、現在のレジスタtの値に
対応している。
【0143】以上、ステップS2204 〜S2207 の処理の繰
り返しにより、図11のN音階分のローパスフィルタ部
とエンベロープ抽出部に相当する処理が行われ、この結
果、サンプリング周期毎に各音階のエンベロープ信号E
t(n)が得られ、それが図3のステップS305の処理により
CPU101に転送される。ゼロクロス検出処理による発音処理 続いて、図4のCPU処理におけるゼロクロス検出処理
による発音処理について説明する。
【0144】前述したように、図4のステップS403の判
定において、DSP116でのゼロクロス検出(図3の
ステップS303)により得られたノート・ナンバーPIT の
値が所定の音階Kより下である、即ち、入力された音響
信号のピッチが低いと判定されたら、ステップS404にお
いて、DSP116でのゼロクロス検出の処理結果に基
づいて、楽音発生回路108に対して発音処理が実行さ
れる。
【0145】図23は、図4のステップS404のゼロクロ
ス検出処理による発音処理の動作フローチャートであ
る。この動作フローチャートは、CPU101が、RA
M103内の制御プログラムを実行する動作として実現
される。
【0146】図23の動作フローチャートに関連して、
RAM103には、DSP116から転送されてきたピ
ッチに対応するノート・ナンバーを格納する変数PIT と
エンベロープ値を格納する変数ENV、及び現在発音中
のノートナンバーを保持する変数ON NOW等が保持されて
いる。
【0147】図23において、まず、DSP116から
転送されてきたエンベロープ値ENVの値が、所定の閾
値THRESHOLD を超え、かつノートナンバーPIT の値が0
より大きいか否かが判定される(ステップS2301 )。
【0148】その判定がNOならば、図1の楽音発生回
路108で発音中の全ての楽音に対して消音が指示さ
れ、かつ発音中の音が無いことを示すために変数ON NOW
がクリアされて(ステップS2306 )、ゼロクロス検出に
よる発音処理を終了する。
【0149】即ち、エンベロープ値ENVの値は、図6
のステップS606に対応する図8の動作フローチャートな
どから理解されるように、入力音響信号の平均的な振幅
を示している。従って、入力音響信号の平均振幅が小さ
いうちは、入力音響信号に基づく発音処理は行われない
ということになる。
【0150】また、ノートナンバーPIT の値が0である
ということは、図7の動作フローチャートで示されるD
SP116でのゼロクロス検出において、STATUS FLAG
の値が4にならずに実質的なノートナンバーの検出(ス
テップS621)が行われなかったということになる。従っ
て、このような場合にも、入力音響信号に基づく発音処
理は行われないということになる。
【0151】図23のステップS2301 の判定がYESな
らば、変数ON NOWの値が0か否か判別されることにより
現在発音中の音がないか否かが判定され(ステップS230
2 )、その判定がYESならば、ステップS2305 に進
む。
【0152】ステップS2305 の判定がNOで現在発音中
の音があると判定されたなら、発音中のノートナンバー
を示す変数ON NOWの内容と抽出されたノートナンバーを
示す変数PIT の内容が比較される(ステップS2303 )。
【0153】比較の結果、両者が一致すれば、再発音す
る必要がないのでそのままゼロクロス検出による発音処
理を終了し、両者が一致しなければ、発音すべきノート
ナンバーが変化したことになるため、現在発音中の音の
消音が楽音発生回路108に対して指示された後に(ス
テップS2304 )、ステップS2305が実行される。
【0154】ステップS2305 では、ノートナンバーPIT
で示される音階の楽音の発音が楽音発生回路108に対
して指示されると共に、変数ON NOWに変数PIT の値が代
入されて、現在、変数PIT に対応する音階の楽音が発音
中であることが示される。この処理の後、ゼロクロス検
出による発音処理を終了する。
【0155】以上のようにして、入力された音響信号の
ピッチが低い場合には、ゼロクロス検出によって得られ
る音階(ピッチ)データを用いて楽音が発音される。フィルタ処理による発音処理 続いて、図4のCPU処理におけるフィルタ処理による
発音処理について説明する。
【0156】前述したように、図4のステップS403の判
定において、DSP116でのゼロクロス検出(図3の
ステップS303)により得られたノート・ナンバーPIT の
値が所定の音階Kより上である、即ち、入力された音響
信号のピッチが高いと判定されたら、ステップS404にお
いて、DSP116でのフィルタ処理(図3のステップ
S304)の処理結果に基づいて、楽音発生回路108に対
して発音処理が実行される(ステップS405)。
【0157】図24は、図4のステップS404のフィルタ
処理による発音処理の動作フローチャートである。この
動作フローチャートもゼロクロス検出の場合と同様、C
PU101がRAM103内の制御プログラムを実行す
る動作として実現される。
【0158】図24で、まず、DSP116から転送さ
れてきたN音階分のエンベロープ信号Et(n)(1≦t≦
N)がRAM103に格納される(ステップS2401 )。
次に、これらのエンベロープ信号Et(n)(1≦t≦N)
のうち、その値が所定の閾値を越えているものが全部取
り出される(ステップS2402 )。
【0159】上記閾値を越えているエンベロープ信号が
あれば(ステップS2403 の判定がYESならば)、それ
らのうち値が最大となるものが抽出され、そのエンベロ
ープ信号に対応する音階が検出される(ステップS240
4)。ここで、上記N個の音階は、予めROM102等
にプリセットされており、CPU101は、値が最大と
なるエンベロープ信号の番号tでROM102をアクセ
スすることにより、その音階を検出する。
【0160】次に、取り出された音階の楽音が、楽音発
生回路108において現在発音中か否かが判定される
(ステップS2405 )。発音中であるならば(ステップS2
405 の判定がYESならば)、再発音する必要がないの
でそのままフィルタ処理による発音処理を終了し、発音
中でないならば、別の音階の楽音が発音中か否かが判定
される(ステップS2406 )。
【0161】そして、別の音階の楽音が発音中でないな
らば(ステップS2406 の判定がNOならば)、ステップ
S2404 で取り出された音階による楽音の発音が楽音発生
回路108に対して指示される(ステップS2407 )。
【0162】また、別の音階の楽音が発音中であるなら
ば、その楽音の消音処理を行った後に(ステップS2408
)、ステップS2407 の発音処理が行われる。ステップS
2407 の処理の後、フィルタ処理による発音処理を終了
する。
【0163】以上のようにして、入力された音響信号の
ピッチが高い場合には、フィルタ処理によって得られる
音階(ピッチ)データを用いて楽音が発音される。
【0164】
【発明の効果】本発明によれば、ゼロクロス検出による
ピッチ抽出方式の出力とディジタルフィルタリングによ
るピッチ抽出方式の出力をピッチ周波数に応じて切替え
て選択することにより、両者の長所を生かした高精度な
ピッチ抽出を実現することが可能となる。
【0165】特に、ディジタルフィルタリングによるピ
ッチ抽出方式がピッチ周波数の高い範囲でのみ使用され
ることにより、フィルタ係数の値を小さくすることがで
き、通常のDSP等によって容易にディジタルフィルタ
を構成することが可能となる。
【0166】更に、本発明によるピッチ抽出装置が電子
楽器の音階検出装置として使用される場合、音階が高い
範囲の音階周波数の差は大きな値となるため、カットオ
フ周波数の急俊なディジタルフィルタを構成する必要が
なくなり、その結果バンドパスフィルタの次数を低くす
ることができ、DSP等によるリアルタイム処理を容易
に実現可能となる。
【図面の簡単な説明】
【図1】本発明の実施例の全体構成図である。
【図2】DSPの全体構成図である。
【図3】DSP処理の全体動作フローチャートである。
【図4】CPU処理の全体動作フローチャートである。
【図5】ゼロクロス検出の原理説明図である。
【図6】ゼロクロス検出の動作フローチャート(その
1)である。
【図7】ゼロクロス検出の動作フローチャート(その
2)である。
【図8】ゼロクロス検出におけるエンベロープ抽出の動
作フローチャートである。
【図9】フィルタ処理の基本機能ブロック図である。
【図10】バンドパスフィルタHt(z)の特性図である。
【図11】フィルタ処理の改良機能ブロック図である。
【図12】バンドパスフィルタH1(z)・H2t(z) の特性
図である。ある。
【図13】ハイパスフィルタH1(z)の構成図である。
【図14】ハイパスフィルタH1(z)の特性図である。
【図15】ローパスフィルタH2t(z) の構成図である。
【図16】ローパスフィルタH2t(z) の極と零点及び極
ベクトルと零ベクトルの関係図である。
【図17】ローパスフィルタH2t(z) の振幅特性図であ
る。ある。
【図18】ローパスフィルタH2t(z) の特性図である。
ある。
【図19】ローパスフィルタHEt(z) の構成図である。
【図20】ローパスフィルタHEt(z) の特性図である。
【図21】|Wt(n)|とEt(n)の関係図である。
【図22】フィルタ処理の動作フローチャートである。
【図23】ゼロクロス検出による発音処理の動作フロー
チャートである。
【図24】フィルタ処理による発音処理の動作フローチ
ャートである。
【符号の説明】
101 CPU 102 ROM 103 RAM 104 プリンタ 105 ディスプレイ 106 キーボード 107 バス 108 楽音発生回路 109 オーディオシステム 110 スピーカ 111 音階検出部 112 マイク 113 マイクアンプ 114 ローパスフィルタ 115 A/D変換器 116 DSP 117 ROM 201 インタフェース 202 アドレスカウンタ 203 オペレーションROM 204 デコーダ 205 乗算器 206 フラグレジスタ 207 加減算器 208 レジスタ群

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 入力される音響信号から値が負又は正の
    第1の極性から他方の第2の極性へ変化するゼロクロス
    点を順次検出し、該各ゼロクロス点間の間隔から前記音
    響信号のピッチ情報を検出する第1のピッチ検出手段
    と、 前記音響信号に対して異なる特性のディジタルフィルタ
    リング処理を時分割で順次行うことにより、該処理に対
    応する各々所定の複数の周波数に関する各周波数スペク
    トルのレベルを検出し、該各周波数スペクトルのレベル
    を判定することにより前記音響信号のピッチ情報を検出
    する第2のピッチ検出手段と、 前記第1のピッチ検出手段又は前記第2のピッチ検出手
    段の何れかで検出されたピッチ情報が所定の周波数閾値
    以下のピッチ周波数に対応しているならば前記第1のピ
    ッチ検出手段からのピッチ情報を出力し、所定の周波数
    閾値以上のピッチ周波数に対応しているならば前記第2
    のピッチ検出手段からのピッチ情報を出力する選択手段
    と、 を有することを特徴とするピッチ抽出装置。
  2. 【請求項2】 前記第1のピッチ検出手段は、 前記音響信号が負又は正の第1の極性から他方の第2の
    極性へゼロクロスするゼロクロス点から次に前記第2の
    極性から前記第1の極性へゼロクロスするゼロクロス点
    までの間隔を第1の間隔として計測する第1の間隔計測
    手段と、 該第1の間隔計測手段による計測の終了後、前記音響信
    号が前記第1の極性から前記第2の極性へゼロクロスす
    るゼロクロス点から次に前記第2の極性から前記第1の
    極性へゼロクロスするゼロクロス点までの各々の区間の
    間隔を第2の間隔として順次計測する第2の間隔計測手
    段と、 前記第1の間隔計測手段による計測が開始されたゼロク
    ロス点からの間隔を逐次計測する第3の間隔計測手段
    と、 前記第2の計測手段が前記各第2の間隔の計測を開始し
    た各時点において前記第3の間隔計測手段が計測してい
    る間隔を周期情報として順次更新しながら記憶する間隔
    記憶手段と、 前記第1の間隔計測手段が計測した前記第1の間隔と前
    記第2の間隔計測手段が順次計測した前記各第2の間隔
    が、所定の許容誤差範囲内で一致したか否かを順次判定
    する判定手段と、 該判定手段が前記一致を検出した時点で前記時間記憶手
    段に記憶されている前記周期情報を前記音響信号のピッ
    チ情報として出力し、その後、前記第1の間隔計測手段
    による計測処理から順に前記各処理を繰り返させること
    により前記音響信号からピッチ情報を順次抽出する繰り
    返し制御手段と、 を含むことを特徴とする請求項1に記載のピッチ抽出装
    置。
  3. 【請求項3】 前記第2のピッチ検出手段は、 所定の特性のハイパスフィルタリング処理と、前記各所
    定の周波数でピークを有するレゾナンスが付加された各
    ローパスフィルタリング処理とを前記音響信号に対して
    時分割のカスケード処理として順次実行し、 その結果得られる前記各所定の周波数に対応する各出力
    信号から各エンベロープ成分を抽出する信号処理を時分
    割で順次実行し、 その結果得られる前記各所定の周波数に対応する各エン
    ベロープ成分として前記各周波数スペクトルのレベルを
    検出する、 ことを特徴とする請求項1又は2の何れか1項に記載の
    ピッチ抽出装置。
  4. 【請求項4】 請求項1乃至3の何れか1項に記載のピ
    ッチ抽出装置からのピッチ情報に対応する音階の楽音を
    発生する楽音発生手段を更に有する、 ことを特徴とする電子楽器。
JP18748691A 1991-07-26 1991-07-26 ピッチ抽出装置及びそれを用いた電子楽器 Expired - Fee Related JP3149466B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18748691A JP3149466B2 (ja) 1991-07-26 1991-07-26 ピッチ抽出装置及びそれを用いた電子楽器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18748691A JP3149466B2 (ja) 1991-07-26 1991-07-26 ピッチ抽出装置及びそれを用いた電子楽器

Publications (2)

Publication Number Publication Date
JPH0535296A true JPH0535296A (ja) 1993-02-12
JP3149466B2 JP3149466B2 (ja) 2001-03-26

Family

ID=16206912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18748691A Expired - Fee Related JP3149466B2 (ja) 1991-07-26 1991-07-26 ピッチ抽出装置及びそれを用いた電子楽器

Country Status (1)

Country Link
JP (1) JP3149466B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207455A (ja) * 1996-11-20 1998-08-07 Yamaha Corp 音信号分析装置及び方法
JP2004334238A (ja) * 1996-11-20 2004-11-25 Yamaha Corp 音信号分析装置及び方法
JP2004334240A (ja) * 1996-11-20 2004-11-25 Yamaha Corp 音信号分析装置及び方法
JP2005346079A (ja) * 2004-06-04 2005-12-15 Honda Research Inst Europe Gmbh 解決調波および未解決調波の統一処理方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101121217B1 (ko) * 2011-10-14 2012-03-22 주식회사 스마트송 Iir 필터를 이용한 시간 영역에서의 피치 추정 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207455A (ja) * 1996-11-20 1998-08-07 Yamaha Corp 音信号分析装置及び方法
JP2004334238A (ja) * 1996-11-20 2004-11-25 Yamaha Corp 音信号分析装置及び方法
JP2004334240A (ja) * 1996-11-20 2004-11-25 Yamaha Corp 音信号分析装置及び方法
JP2005346079A (ja) * 2004-06-04 2005-12-15 Honda Research Inst Europe Gmbh 解決調波および未解決調波の統一処理方法

Also Published As

Publication number Publication date
JP3149466B2 (ja) 2001-03-26

Similar Documents

Publication Publication Date Title
EP0484137B1 (en) Digital filter for a music synthesizer
JPH04181996A (ja) 音源装置
US5270954A (en) Filter device and electronic musical instrument using the filter device
JPH04195196A (ja) Midiコード作成装置
JP3149466B2 (ja) ピッチ抽出装置及びそれを用いた電子楽器
JPH10149187A (ja) 音声情報抽出装置
JP3127406B2 (ja) テンポ検出装置
JP3149097B2 (ja) 音響成分抽出装置、それを用いた電子楽器、及び周波数成分抽出装置
JPH052390A (ja) 楽音変調装置および楽音変調装置を用いた電子楽器
JP3185266B2 (ja) 楽音発生装置
JPH06214571A (ja) ディストーション回路
JPH1026994A (ja) カラオケ採点装置
JP3321921B2 (ja) 音響成分抽出装置、それを用いた電子楽器、及び周波数成分抽出装置
JPH05127668A (ja) 自動採譜装置
JP3258318B2 (ja) 音声制御電子楽器
JP3118863B2 (ja) 音階検出装置を用いた楽音発生装置
JP3200940B2 (ja) 楽音制御装置
JP3919359B2 (ja) 楽音信号のアタック位置検出装置
JPH05346787A (ja) 音声制御楽音発生装置
JP3120490B2 (ja) 音声制御装置及び音声制御電子楽器
JP3120468B2 (ja) 音階検出装置及びそれを用いた楽音発生装置
JPH0318720B2 (ja)
JPH05173565A (ja) 効果付加装置
JPH05346783A (ja) 音階検出装置
JPH05188932A (ja) 楽音認識装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001219

LAPS Cancellation because of no payment of annual fees