JP3168708B2 - 音階検出装置 - Google Patents

音階検出装置

Info

Publication number
JP3168708B2
JP3168708B2 JP17918792A JP17918792A JP3168708B2 JP 3168708 B2 JP3168708 B2 JP 3168708B2 JP 17918792 A JP17918792 A JP 17918792A JP 17918792 A JP17918792 A JP 17918792A JP 3168708 B2 JP3168708 B2 JP 3168708B2
Authority
JP
Japan
Prior art keywords
scale
frequency
pass filter
filter
tone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP17918792A
Other languages
English (en)
Other versions
JPH05346783A (ja
Inventor
誠 岩大路
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP17918792A priority Critical patent/JP3168708B2/ja
Publication of JPH05346783A publication Critical patent/JPH05346783A/ja
Application granted granted Critical
Publication of JP3168708B2 publication Critical patent/JP3168708B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、入力される音響信号の
スペクトルに基づいて、固定された音階周波数の中間の
音階周波数をも検出可能とした音階検出装置に関する。
【0002】
【従来の技術】楽器音や人声音等の入力される音響信号
をディジタル信号処理によりディジタルフィルタリング
処理を時分割で実行し、その出力結果から音階周波数を
検出するものがある(例えば、特開平4−19696号
公報参照)。
【0003】この音階検出装置は、基本的には、与えら
れる音響信号を表現するディジタル波形信号に対して、
予め固定された各音階に対応する周波数に関する周波数
スペクトルのレベルを検知するために、時分割で異なる
特性のディジタルフィルタリング処理を順次行い、この
ディジタル信号処理手段にて実行されたディジタルフィ
ルタリング処理の結果に基づいて、上記与えられる音響
信号に含まれる音階周波数を検出している。
【0004】したがって、この音階検出装置によれば、
信号処理をすべてディジタル処理することができ、入力
音響の音階周波数を短時間で検出し、しかも回路的に小
規模で安定した動作をさせることができる。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
音階検出装置にあっては、与えられる音響信号を表現す
るディジタル波形信号に対して、時分割で異なる特性の
ディジタルフィルタリング処理を順次実行し、予め固定
された各音階に対応する周波数に関する周波数スペクト
ルのレベルを検知して、入力音響信号の音階周波数が固
定音階のいずれであるかを検出していたため、与えられ
る音響信号が予め固定された音階の中間の音階周波数の
ときには、隣接する固定音階のどちらか一方と検出され
るため、その音響信号の音階周波数を正確に検出するこ
とができないという問題があった。そこで、本発明は、
与えられる音響信号が、固定された各音階の中間の音階
周波数のときにも、正確にその音階の周波数を検出する
ことのできる音階検出装置を提供することを目的として
いる。
【0006】
【課題を解決するための手段】本発明は、与えられる音
響信号を表現するディジタル波形信号に対して、異なる
特性のディジタルフィルタリング処理を時分割で順次実
行することにより、各音階に対応する周波数に関する周
波数スペクトルのレベルを検出するフィルタ手段と、前
記フィルタ手段により検出した周波数スペクトルのレベ
ルの最も大きい音階及びこの音階に隣接する音階のうち
周波数スペクトルのレベルの大きい方を選択する第1の
選択手段と、前記第1の選択手段により選択された2つ
の音階の周波数スペクトルのレベル比を演算する演算手
段と、前記各音階毎に設けられ、夫々隣接する音階との
周波数スペクトルのレベル比に対する音階周波数差に対
応するシフトデータが記憶された複数の変換手段と、
記複数の変換手段の中から、前記第1の選択手段により
選択された隣接する音階に対応する変換手段を選択する
第2の選択手段と、 前記第2の選択手段により選択され
た変換手段から前記演算手段により演算されたレベル比
に対応するシフトデータを読み出す読み出し手段と、
記第1の選択手段により選択された音階の周波数を前記
読み出し手段にて読み出されたシフトデータに基づいた
周波数分だけシフトした音階周波数を中間音階周波数と
して検出する検出手段と、を備えたことを特徴としてい
る。
【0007】
【作用】本発明によれば、与えられる音響信号を表現す
るディジタル波形信号に対して、フィルタ手段により、
異なる特性のディジタルフィルタリング処理を時分割で
順次実行し、各音階に対応する周波数に関する周波数ス
ペクトルのレベルを検出する。このフィルタ手段により
検出した周波数スペクトルのレベルの最も大きい音階及
びこの音階に隣接する音階のうち周波数スペクトルのレ
ベルの大きい方を、第1の選択手段により、選択し、こ
第1の選択手段により選択された2つの音階の周波数
スペクトルのレベル比を、演算手段により、演算する。
そして、この演算手段からのレベル比を、各音階毎に設
けられた変換手段の中から第2の選択手段により、隣接
する音階に対応する変換手段を選択し、該変換手段によ
上記2つの音階周波数差に対応したシフトデータに変
換し、この変換手段からのシフトデータに基づいて、検
出手段により、上記第1の選択手段で選択された音階の
周波数を周波数分だけシフトした音階周波数を中間音階
周波数として検出する。
【0008】したがって、ディジタルフィルタリング処
理により、与えられる音響信号の実際の音階に近い互い
に隣接する固定された音階を検出し、この隣接する音階
の周波数レベル比を算出して、音響信号の実際の音階の
周波数を検出することができる。その結果、予め固定さ
れた音階周波数の間の中間の音階周波数をも検出するこ
とができる。
【0009】
【実施例】以下に、本願発明の一実施例を説明する。
【0010】<基本原理>先ず、実施例で用いるディジ
タルフィルタ処理の基本原理について説明する。実施例
では、ディジタルフィルタ処理をDSP(Digital Sign
al Processor:ディジタル信号処理プロセッサ)を使用
することにより行っている。すなわち、DSPにディジ
タルフィルタとして動作させるのに必要なプログラムや
データを書き込み、図1に示すようなバンドパスフィル
タHt(z)を構成するとともに、更にエンベロープ抽出回
路を構成し、ディジタルフィルタ処理及びエンベロープ
抽出処理を行う。
【0011】図1において、入力信号X(n) は、アナロ
グの音響信号を所定サンプリングタイミングでサンプリ
ングした値をディジタル信号(もともとディジタル信号
で供給される場合はそのままでよい)に変換して入力し
たものであり、この入力信号X(n) に対して、DSPの
時分割処理によってn個のバンドパスフィルタHt(z)の
フィルタリング処理を行う。このフィルタリング処理に
際して、n個のバンドパスフィルタHt(z)の伝達関数
を、複数オクターブの各音階に依存させて変更する。
【0012】図2は、バンドパスフィルタHt(z)として
チェビシエフ形のものを採用した場合の周波数特性の大
きさを示している。
【0013】この場合の伝達関数としては、tを各音階
を指定するサフィックス(添字)として、次のようにな
る。
【0014】
【数1】 ここで、i=1としてこのバンドパスフィルタHt(z)を
構成すると、DSPの処理は、
【0015】
【数2】 を実行することになる。
【0016】なお、i≧2の場合は、上式と同様の演算
を繰り返し実行することになる。
【0017】また、各バンドパスフィルタHt(z)の係数
については、数値計算で求めることができる。
【0018】具体例としては、A4=440Hzのバンド
パスフィルタを次の条件(〜は図2参照)で構成す
ると、下記の如き係数値をもつ伝達関数のディジタルフ
ィルタリング処理を実行することになる。
【0019】すなわち、 =1dB =(サンプリング周波数fs)=10KHz =12dB以上 =415Hz =430Hz =450Hz =466Hz の条件で、i=1、2の2段のディジタルフィルタのそ
れぞれの係数は次のようになる。
【0020】H440Hz(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. このように、バンドパスフィルタHt(z)の演算が各音階
に対して時分割的に実行され、その結果信号Yt(n)、t
=1〜Nが求まる。
【0021】この結果信号Yt(n)に対して、次に、DS
Pは、エンベロープ抽出処理を時分割で行う。このエン
ベロープ処理は、それぞれの結果信号Yt(n)の波形につ
いて所定時間間隔毎(例えば各音階の対応する周波数
毎)にピークレベル(絶対値)を求めて行う。あるいは
後述するような特定のディジタルフィルタを|Yt(n)|
(Yt(n)の絶対値信号)に対して行って求める。
【0022】このようにDSPの時分割処理により、そ
れぞれの音階についてのエンベロープ信号Et(n)、
t=1〜Nが求まり、この出力に対して、このDSPの
適用された楽音発生装置等のCPU(マイクロコンピュ
ータなど)が、レベル判断を実行することにより、もと
もとの入力信号X(n) の波形に含まれる音階信号を1乃
至複数検出することが可能となる。
【0023】このように、この基本原理は、各音階につ
いてピークをもつバンドパスフィルタHt(z)によりフィ
ルタリング処理を時分割で行うものであるが、バンドパ
スフィルタHt(z)は、上述したチェビシェフ形のバンド
パスフィルタに限るものではなく、種々の形式のディジ
タルフィルタで何等の機能を実現できる。また、バンド
パスフィルタは、ローパスフィルタとハイパスフィルタ
をカスケード接続することによっても実現できる。
【0024】上記チェビシェフ形のバンドパスフィル
タ、A4 =440Hzの例では、8回の乗算が必要とな
る。そこで、以下に、フィルタ演算を行う際の乗算回数
を減らし、リアルタイムでフィルタリングを行うことを
容易にしたフィルタリング処理のひとつの改良原理を説
明する。
【0025】<改良原理>図3は、乗算回数を減少させ
たディジタルフィルタ演算をDSPに行わせる改良原理
を示しており、このバンドパスフィルタは、ハイパスフ
ィルタH1(z)、ローパスフィルタH2t(z) 及びローパス
フィルタHE(z)で構成されている。
【0026】このバンドパスフィルタでは、ディジタル
表現による入力音響信号X(n) は、まず、ハイパスフィ
ルタH1(z)に入力され、ハイパスフィルタH1(z)は、そ
の詳細については後述するが、周波数0で0、周波数f
s/2で最大となるハイパスディジタルフィルタであ
る。
【0027】このハイパスフィルタH1(z)の出力Y(n)
が、各音階t毎に時分割動作するローパスフィルタH2t
(z) に入力され、ローパスフィルタH2t(z) は、その詳
細については後述するが、音階周波数でピークをもった
レゾナンスタイプのローパスディジタルフィルタの特性
をもっている。
【0028】したがって、上記ハイパスフィルタH1(z)
とローパスフィルタH2t(z) をカスケード接続して得ら
れるディジタルフィルタの周波数特性の大きさは、図4
のごとくなっており、疑似バンドパスフィルタとなって
いる。
【0029】図4において、f1、f2、……fN が、各
音階周波数に対応し、Nを40〜50程度(3オクター
ブから4オクターブ)にすることが可能である。なお、
これ以上の広いオクターブレンジで音階検出するとき
は、高速のDSPか、複数のDSPによる並列処理を採
用することで達成できる。
【0030】このローパスフィルタH2t(z) の出力W
t(n)、t=1〜Nが、各音階毎に時分割動作するローパ
スフィルタHE(z)に与えられ、このローパスフィルタH
E(z)の特性も後述するが、このローパスフィルタHE(z)
の各出力Et(n)が、図1と同様に、各音階についてのエ
ンベロープ信号となる。その後の処理は、基本原理の場
合と同様である。
【0031】次に、図3の各ディジタルフィルタの構
成、特性を詳述する。
【0032】ハイパスフィルタH1(z) 図5は、ハイパスフィルタH1(z)の一構成例を示してい
る。
【0033】このハイパスフィルタH1(z)は、2次のF
IR(Finite Impulse Response)ディジタルフィルタ
であり、その伝達関数は、
【0034】
【数3】 である。
【0035】図5において、5−1、5−2は遅延素
子、5−3、5−4、5−5は乗算器、5−6、5−7
は加算器を示している。このハイパスフィルタH1(z)を
DSPで演算により実現するときには、
【0036】
【数4】 を実行することとなる。この場合、係数と信号の乗算は
単なるシフト処理で実現できる。
【0037】このハイパスフィルタH1(z)の周波数特性
は、
【0038】
【数5】 となり、図6にその特性を示すように、Ω=0(0Hz)
で最小、Ω=π(fs/2Hz)で最大となる特性をと
る。
【0039】ローパスフィルタH2t(z) 図7は、ローパスフィルタH2t(z) の一構成例を示して
いる。
【0040】このローパスフィルタH2t(z) は、2次の
IIR(Infinite Impulse Response) ディジタルフィ
ルタであって、その伝達関数は、
【0041】
【数6】 である。
【0042】ローパスフィルタH2t(z) は、後述するよ
うに、音階を示すサフィックスtに依存してθとCYと
が変化し、rがレゾナンスの強さ(ピークの程度)を示
すパラメータとなる。
【0043】図7において、7−1、7−2は遅延素
子、7−3、7−4、7−5は乗算器、7−6、7−7
は加算器を示している。このローパスフィルタH2t(z)
をDSPで演算により実現するときは、 Wt(n)=CY・Y(n)+2rcosθWt(n-1)−r2t(n-2)……式(2) を実行することとなる。
【0044】このローパスフィルタH2t(z) の周波数特
性は
【0045】
【数7】 で与えられる。ここで、この伝達関数の極は、
【0046】
【数8】 に依存し、Z=0に2重の零点がある。この伝達関数の
極と零点の配置、および、θを、0<θ<π/2とした
ときの極ベクトルと零点ベクトルと、を図8に示す。図
8から理解されるとおり、Ω=0からΩ=πに向けて単
位円に沿ってΩが動くにつれて、ベクトルv2の長さ
は、はじめ減少し、次に増加する。最小のベクトルv2
の長さは、
【0047】
【外1】 の近くである。
【0048】ここで、周波数Ωにおける周波数応答の大
きさは、零点ベクトルv1 とベクトルv2 の長さの比で
あり、周波数応答の位相は、実軸とベクトルv1 のなす
角度からベクトルv2 のなす角を引いた値となることが
知られており、振幅特性のみを図示すると図9のように
なる。
【0049】すなわち、周波数応答の大きさ(振幅特
性)は、図9から分るように、極ベクトルv2 の大きさ
の逆数に比例し、θに近いΩで最大となる。そして、r
の大きさに従ってこのピークの鋭さが決まり、rを1に
近づけてゆくと急なピーク(レゾナンス特性)をもった
フィルタが実現できる。
【0050】以上の説明から明らかなように、各音階毎
に、θの値を決定すれば(θ=2πft/fs)、図10
に示すように、音階周波数ft でピークをもつレゾナン
ス付きのローパスフィルタH2t(z) を実現することがで
きる。
【0051】なお、rは、となりの音階のレベルに影響
しないような大きさに、CYは、各音階で同等のレベル
の出力W1(n)が得られるような大きさに、実験で、もし
くは数学的に求めることが可能となる。
【0052】例えば、fの音階周波数(ft)と、Δf
離れたとなりの音階周波数f+Δf(すなわちft+1
との周波数応答の大きさの比を、m:1とする場合、
【0053】
【数9】 というrについての4次方程式を解いて、0<r<1を
満足するものを選び、各係数 −2rcosθ、r2
求めることができる。いま、数値計算の結果、例えば、
s =5KHz、f=440Hzで、m=4とすると、 −2rcosθ=−1.9773、r2 = 0.9851、CY=36.
7 となる。その他の音階についても同様である。
【0054】ローパスフィルタHE(z) 図11は、ローパスフィルタHE(z)の一構成例を示す。
【0055】これはさきに説明したローパスフィルタH
2t(z) と同じ形の2次のIIRディジタルフィルタであ
って伝達関数は、
【0056】
【数10】 である。
【0057】これは、先のローパスフィルタH2t(z) の
伝達関数において、r=0.9、θ=0と、したものであ
る。
【0058】図11において、11−1は、入力信号
(ローパスフィルタH2t(z) の出力信号)Wt(n)を、絶
対値化する絶対値回路であり、その出力|Wt(n)|がデ
ィジタルフィルタリングされる。11−2、11−3は
遅延素子、11−4、11−5、11−6は乗算器、1
1−7、11−8は加算器を示している。このローパス
フィルタH2t(z) をDSPで演算により実現するとき
は、 Et(n)=CE|Wt(n)|+1.8Et(n-1)−0.81Et(n-2)……式(3) を実行することとなる。
【0059】このローパスフィルタH2t(z) は、その周
波数特性が、上述の説明のように、θ=0でピークをも
つ、レゾナンス付きのローパスフィルタで、図12に示
すような特性(振幅特性)をとる。ここで、係数CE
は、各音階毎のレベルを一様にするファクターで実験な
どで適宜求め得る。
【0060】図13は、この図11の構成によって得ら
れるエンベープ信号Et(n)を模式的に示している。
【0061】このように、ローパスフィルタH2t(z)
は、絶対値回路11−1により、負の波高値(図11の
破線)がすべて正の波高値に変換された上でローパスフ
ィルタがかけられるので、結局この波形信号|Wt(n)|
の直流成分を求めるような動作をフィルタ回路がとるよ
うになる。
【0062】<実施例の全体構成>次に、本願発明の音
階検出装置の一実施例の具体的な構成を説明する。
【0063】図14は、本願発明に係る音階検出装置を
適用した楽音発生装置1の全体ブロック図である。
【0064】楽音発生装置1は、CPU(Central Proc
essing Unit)2、ROM(Read Only Memory) 3、RA
M(Random Access Memory) 4、音階検出装置5、キー
ボード6、ディスプレイ7、プリンタ8、楽音発生回路
9、オーディオシステム10及びスピーカ11等を備え
ており、こられ各部はバス12により接続されている。
ROM3には、楽音発生装置としてのプログラム等や各
種データが格納されている。特に、ROM3は、後述す
る中間音検出処理で使用する中間音検出用データテーブ
ルを記憶しており、この中間音検出用データテーブルに
ついては、後述する。
【0065】CPU2は、ROM3内のプログラムに従
って楽音発生装置1の各部を制御し、楽音発生装置1と
しての処理及び中間音検出処理を行なう。CPU2は、
特に、後述するように、音階検出装置5の検出周波数ス
ペクトルのレベルの最も大きい音階及びこの音階に隣接
する音階のうち周波数スペクトルのレベルの大きい方を
選択する選択手段、この選択された2つの音階の周波数
スペクトルのレベル比を演算する演算手段、各音階毎に
設けられ、演算手段からのレベル比を上記2つの音階周
波数差に対応したシフトデータに変換する変換手段及び
この変換手段からのシフト量に基づいて選択手段で選択
された2つの音階周波数の中間音階周波数を検出する検
出手段、としての処理を実行する。
【0066】RAM4は、後述する音階検出装置5をデ
ィジタルフィルタやエンベロープ抽出装置として動作さ
せるためのデータ等を記憶するとともに、CPU2のワ
ーク用メモリとして機能する。
【0067】音階検出装置5は、マイクロフォン41、
ローパスフィルタ42、A/D変換器43、DSP4
4、フィルタ係数ROM45及びワークRAM46等を
備えており、音響信号の入力端子として、ライン入力 L
INE INを備えている。
【0068】この音階検出装置5は、マイクロフォン4
1あるいはライン入力 LINE INから入力する音響信号
(これは楽器音、人声音、あるいはテープレコーダやラ
ジオ、テレビ、CDプレーヤー等からの再生音響であっ
てもよい)を、ローパスフィルタ42で適宜フィルタリ
ングした後、適当なサンプリング周波数fsで、A/D
変換器43よりディジタル信号X(n) に変換し、DSP
44に入力する。
【0069】フィルタ係数ROM45は、DSP44を
ディジタルフィルタとして機能させるのに必要な各種係
数を記憶し、必要に応じて読み出されてDSP44に出
力される。
【0070】ワークRAM46は、DSP44がディジ
タルフィルタとして動作する際のワークメモリであり、
フィルタリング演算のためのデータや、A/D変換器4
3から入力されたディジタル入力信号X(n) 及びDSP
44で演算処理された波形信号等を記憶する。
【0071】DSP44は、後述するように、フィルタ
係数ROM45に記憶されている係数やワークRAM4
6を使用して、演算処理し、ディジタルフィルタリング
処理を実行するとともに、エンベロープ抽出処理を実行
する。
【0072】DSP44の処理結果は、CPU2に送ら
れ、CPU2は、音階検出装置5の検出結果、及び後述
する楽音発生回路9に内蔵されている各種モジュールの
記憶状態に基づいて音階検出装置5の検出した音階や楽
音発生装置9により発生している楽音の状態を判断し
て、楽音発生回路9の発生モジュールへの音階音の割り
付け処理や削除処理を行なう。
【0073】キーボード6には、ファンクションスイッ
チや鍵盤等が設けられており、キーボード6でスイッチ
や鍵盤等の操作が行なわれると、CPU2がこの操作を
検出して、楽音発生回路9の発生音モジュールに発生楽
音を割り当てる。
【0074】ディスプレイ7およびプリンタ8は、CP
U2の制御下で作動し、音階検出装置5で検出された1
乃至複数の音階を表示し、また用紙に印字する。例え
ば、CPU2は、リアルタイムで入力中の音響に含まれ
る音階をディスプレイ7に表示してもよく、あるいはノ
ンリアルタイムで、編集作業などを経た上で楽譜として
ディスプレイ7に表示したり、プリンタ8で用紙に印刷
したりする。
【0075】前記音階検出装置5は、後述するように、
全体として、与えられる音響信号を表現するディジタル
波形信号に対して、異なる特性のディジタルフィルタリ
ング処理を時分割で順次行なうことにより各音階に対応
した周波数に関する周波数スペクトルのレベルを検出す
るフィルタ手段として機能している。
【0076】楽音発生装置9としては、各種タイプの音
源発生回路が適用可能であり、例えば、PCM方式、F
M方式、iPD方式、正弦波合成方式等の音源発生回路
が適用される。この楽音発生装置9は、複数の楽音発生
チャンネル、例えば、4チャンネルを有しており、前記
CPU2の発音モジュールに割り当てられた音階番号の
音階音を、オーディオシステム10を駆動することによ
り、スピーカ11を介して音響出力させる。
【0077】オーディオシステム10としては、通常の
オーディオシステムが使用されており、オーディオシス
テム10には、楽音発生回路9からの信号だけでなく、
マイクロフォン41やライン入力 LINE INの信号も与え
られ、必要に応じて音響出力として出力する。また、楽
音発生回路9は、キーボード6の音色指定に従った音色
の楽音信号を発生でき、この場合も、CPU2が出力す
べき音階音を発音モジュールに割り当てて楽音発生動作
をする。さらに、CPU2は、音階検出装置5が検出し
た音階音の変化を順次RAM4にシーケンサ情報として
記憶し、このシーケンサ情報をキーボード6のプレイス
タート指示等に応答して、順次読み出して楽音発生回路
9から対応する楽音信号を発生することも可能である。
【0078】<DSPの構成>図15は、ディジタルフ
ィルタ及びエンベロープ抽出回路として機能するDSP
44の回路構成図であり、DSP44は、インターフェ
ィス441、オペレーションROM442、アドレスカ
ウンタ443、デコーダ444、乗算器445、加減算
器446、レジスタ群447、及びフラグレジスタ44
8等を備えている。
【0079】インターフェィス441は、バスを介して
図14に示すCPU2やA/D変換器43に接続されて
おり、インターフェィス441を介して音響入力信号や
CPU2からの命令が入力され、また処理結果の音階信
号等が出力される。
【0080】オペレーションROM442には、楽音発
生装置1に使用するディジタルフィルタ及びエンベロー
プ抽出回路としてのプログラムが格納されており、プロ
グラムメモリ2は、アドレスカウンタ443のアドレス
指定により順次プログラム内容をデコーダ444に出力
するとともに、各部に出力する。
【0081】デコーダ444は、オペレーションROM
442から読み出されたプログラム内容をデコードし、
制御信号としてDSP44の各部に出力する。
【0082】DSP44のバスには、上記音階検出装置
5のフィルタ係数ROM45及びワークRAM46が接
続されており、オペレーションROM442のプログラ
ムに従って適宜係数データや波形信号等がDSP44に
供給され、またDSP44で演算処理した波形信号がワ
ークRAM46に出力されて書き込まれる。
【0083】乗算器445は、入力されるデータを乗算
処理し、その演算結果を加減算器446やレジスタ群4
47等に出力する。
【0084】加減算器446は、入力データに加算処理
あるいは減算処理を行ない、演算結果をレジスタ群44
7を介して乗算器445やワークRAM46等に出力す
るとともに、演算結果の符号データをフラグレジスタ4
48に出力する。
【0085】フラグレジスタ448のフラグデータは、
アドレスカウンタ443に出力され、アドレスカウンタ
443へのフラグレジスタ448のフラグデータにより
オペレーションROM442から出力されるプログラム
内容が決定される。すなわち、フラグレジスタ448の
フラグデータによりジャッジ処理を行なっている。
【0086】次に作用を説明する。
【0087】楽音発生装置1の処理としては、主に、入
力音響信号から固定された音階の音階音を検出する音階
検出処理、中間音階を検出する中間音検出処理及び検出
した音階音をその音域とレベルにより所定の音色等で発
音させる音階音発生処理、に分類することができる。以
下、この音階検出処理、中間音検出処理及び音階音発生
処理について説明する。
【0088】<音階検出処理>先ず、音階検出装置5に
おける固定された音階に対する音階検出処理を説明す
る。
【0089】音階検出処理は、CPU2の制御下で行な
われ、上記改良原理で説明したディジタルフィルタ処理
により音階検出処理を行なう。
【0090】CPU2は、まず、図16に示すように、
音階検出処理の開始に際して、イニシャル処理を行う
(ステップS1)。このイニシャル処理は、主にワーク
RAM46をクリアする処理である。
【0091】イニシャル処理が完了すると、A/D変換
器43による音響信号のディジタル信号X(n) へのディ
ジタル変換が完了したかどうかチェックし(ステップS
2)、A/D変換器43でディジタル変換が完了する
と、A/D変換器43から入力されるディジタル信号X
(n) を順次アドレス設定してワークRAM46に記憶す
る(ステップS3)。この場合、ワークRAM46のう
ちの特定エリアをリングバッファ(終端と始端とを仮想
的に連結することで構成されるバッファ)として使用す
ることにより、無制限の入力信号(ディジタル信号X
(n) )に対応できる。
【0092】ワークRAM46にディジタル信号X(n)
が記憶されると、CPU2は、DSP44をFIRのハ
イパスフィルタH1(z)として動作させる(ステップS
4)。このFIRハイパスフィルタH1(z)としての動作
処理は、上記DSP44のオペレーションROM442
のプログラムのアドレス設定をアドレスカウンタ443
に行なうととともに、フィルタ係数ROM45の係数設
定をハイパスフィルタH1(z)用に設定することにより行
なう。
【0093】このハイパスフィルタH1(z)としての演算
は、上記式(1)によるもので、今回の入力ディジタル
信号X(n) のほかワークRAM46から前回、前々回の
入力ディジタル信号入力X(n-1)、X(n-2)を読み出し、
DSP44内の乗算器445、加減算器446を使用し
て実行する。
【0094】ハイパスフィルタH1(z)としての演算処理
が完了すると、各音階についてフィルタ処理を行なうた
めの設定値tを初期設定値t=1にセットし(ステップ
S5)、ローパスフィルタH2t(z) としてのフィルタリ
ング演算を行う(ステップS6)。このローパスフィル
タH2t(z) としての演算は、上記式(2)によるもの
で、各係数CY、2rcosθ、r2 をフィルタ係数R
OM45から読み出しながら、DSP44内の乗算器4
45、加減算器446を使用して実行する。この演算結
果Wt(n) も、ワークRAM46の別の特定のエリアを
リングバッファとして使用し、順次ストアする。この場
合も、ワークRAM46をリングバッファとして使用す
ることにより、このバッファから前回及び前々回の演算
結果Wt(n-1)、Wt(n-2)を次々と読み出して演算に用い
ることができる。
【0095】ハイパスフィルタH1(z)及びローパスフィ
ルタH2t(z) としての演算処理が完了すると、次に各音
階についてのエンベロープ抽出処理を行なう。このエン
ベロープ抽出処理は、各音階についてDSP44をII
RローパスフィルタHE(z)として演算処理させることに
より実行する(ステップS7)。
【0096】このローパスフィルタHE(z)としての演算
は、上記式(3)によるもので、各係数CE、1.8、−
0.81 をフィルタ係数ROM45から読み出しながら、
DSP44内の乗算器445、加減算器446を使用し
て行う。この演算のうち、絶対値計算|Wt(n)|も加減
算器446を使用して実行する。
【0097】この演算結果Et(n)も、ワークRAM46
の更に別の特定エリア46をリングバッファとして使用
して、順次ストアすることにより、このバッファから前
回及び前々回の演算結果Et(n-1)、Et(n-2)を次々と読
み出して演算に用いることができる。
【0098】上記フィルタ処理及びエンベロープ抽出処
理が終了すると、全ての音階についてこれらの各処理が
なされたかどうか(t=N)チェックし(ステップS
8)、すべての音階については処理が終了していないと
きには、設定値tをインクリメントして(ステップS
9)、ステップS6に移行する。ステップS6に移行す
ると、再びステップS6及びステップS7のフィルタリ
ング処理を実行する。
【0099】ステップS8で、全ての音階に対してフィ
ルタリング処理等が完了していると、各音階についての
エンベロープEt(n)(t=1〜N)をCPU2へ通知し
た後(ステップS10)、音階検出処理モードを終了す
るかどうかチェックする(ステップS11)。音階検出
処理モードの終了でないときには、ステップS2に移行
し、次の音響信号のA/D変換を待って、同様に処理を
行なう。すなわち、DSP44は、1サンプリング毎
に、時分割で3系統のディジタルフィルタリングを順番
に、しかも各音階について繰り返して実行することによ
り、リアルタイムで、各音階のエンベロープに従って、
固定された各音階に対応する周波数に関する周波数スペ
クトルのレベルを検知することができる。
【0100】ステップS11で、キーボード5の操作等
によりCPU2が音階検出処理モードの終了をDSP4
4に通知してきたときは、一連の処理動作を終了する。
【0101】<CPU2の音階音発生処理>CPU2
は、上述したようにDSP44から毎サンプリング周期
で各音階についてのエンベロープ信号Et(n)(t=1〜
N)、すなわち、各音階に対応する周波数に関する周波
数スペクトルのレベルが与えられるので、種々の目的に
これを使用することができるが、本実施例では、入力音
響信号が単音である場合について説明する。
【0102】以下、モード設定に対応した音階音発生処
理について、図17に基づいて説明する。
【0103】CPU2は、図17に示すように、音階音
発生処理を行なうために、まず、DSP44から結果通
知があるかどうかチェックする(ステップP1)。この
結果通知チェック処理は、上記音階検出装置5での音階
検出処理が終了したことを示す音階検出終了信号が音階
検出装置5から入力されているかどうかチェックするこ
とにより行なう。
【0104】音階検出終了信号が入力されているときに
は、音階検出装置5が検出した各音階のエンベロープ値
t(n)をRAM4に書き込む(ステップP2)。検出し
た各音階のエンベロープ値Et(n)のRAM4への書込が
完了すると、これらの各音階のエンベロープ値Et(n)の
うち最も大きいものを取り出して、Max としてRAM4
へ書き込み(ステップP3)、Max が所定の閾値を越え
ているかどうかジャッジする(ステップP4)。
【0105】上記ステップP4で、Max が閾値を越えて
いないときには、発音中の楽音があるかどうか、すなわ
ち楽音発生回路9により発生中の楽音信号があるかどう
かチェックし(ステップP5)、発生中の楽音がないと
きには、ステップP1に戻って、DSP44からの次の
音階のエンベロープ値Et(n)の入力に備える。
【0106】ステップP5で、発生中の楽音があるとき
には、前回のサンプリングによりマイクロホン41やラ
イン入力 LINE IN等からMax として採用した音階音の音
響入力が停止したと判断して、CPU2は、楽音発生回
路9に、消音開始を指示し(ステップP6)、ステップ
P1に戻って次のDSP44からのからの入力に備え
る。
【0107】ステップP4で、Max が所定の閾値を越え
ているときには、音階検出装置5が検出した各音階のエ
ンベロープ値Et(n)の最大の音階に隣接する上下2つの
音階のうちエンベロープ値Et(n)が大きい方のものをSe
condとしてRAM4に記憶し(ステップP7)、中間音
検出処理を行なう(ステップP8)。
【0108】すなわち、入力音響信号の実際の音階は、
音階検出装置が検出したエンベロープの最大の音階(Ma
x )から、この音階に隣接する上下2つの音階のうちエ
ンベロープの大きい方の音階(Second)側にシフトして
いると考えられるからである。
【0109】この中間音検出処理により、後述するよう
に、入力音響の音階が前記音階検出処理で検出可能な固
定音階と固定音階の間の音階であるときに、その固定音
階と固定音階の間の実際の音階を検出する。
【0110】中間音検出処理により、実際の音階を検出
すると、次に、上記音階検出処理で検出された音階音
が、現在発音中であるかどうかチェックする(ステップ
P9)。発音中のときには、固定音階音に対しては、新
たに発音対象とする必要がないので、中間音検出処理で
検出されたベンドレンジにベンド値を設定し、ステップ
P1に戻って、同様の処理を繰り返す(ステップP1
0)。このベンドレンジへのベンド値の設定により、固
定音階に対してベンド値だけシフトした実際の音階の音
階音が発音される。
【0111】ステップP9で、上記音階検出処理で検出
された音階音が、現在発音中でないときには、別の音階
音が発音中であるかどうか、チェックする(ステップP
11)。別の音階音が発音中のときには、本実施例で
は、単音を取り扱っており、発音されるのは1音に限定
されるので、当該発音中の音階音の消音指示を行なっ
て、発音中の音階音を消音した後(ステップP12)、
今回上記音階検出処理で取り出した音階音の発音を指示
する(ステップP13)。発音指示を行なうと、中間音
検出処理で検出されたベンドレンジにベンド値を設定
し、固定音階に対してベンド値だけシフトした実際の音
階の音階音を発音させる(ステップP10)。すなわ
ち、楽音発生回路9は、発音指示があり、ベンド値が設
定されると、指示された音階からベンド値だけシフトし
た音階音を発音する。
【0112】ステップP11で、別の音階音が発音中で
ないときには、そのまま今回音階検出処理で取り出した
音階音を発音対象として、発音指示し(ステップP1
3)、中間音検出処理で検出されたベンドレンジにベン
ド値を設定して、指示された音階からベンド値だけシフ
トした音階音を発音させる(ステップP10)。
【0113】<CPU2の中間音検出処理>中間音検出
処理では、CPU2は、図17のステップP7で、音階
検出装置5が検出した各音階のエンベロープ値Et(n)の
最大の音階に隣接する上下2つの音階のうちエンベロー
プ値Et(n)が大きい方のものをSecondとしてRAM4に
記憶すると、このMax とSecondで音階の低いものをLow
、音階の高いものをHighに設定する(ステップQ
1)。
【0114】次に、ROM3の中間音階検出データテー
ブルのアドレスをLow にあわせ(ステップQ2)、Low
のエンベロープ/Highのエンベロープを演算して、この
演算結果から中間音階データ(実際の音階データ)のオ
フセットを求める(ステップQ3)。
【0115】上記音階検出処理で検出された音階をLow
とし、そこからのROM3の中間音階検出データテーブ
ルを基にしたLow からのシフト量をベンドベンドデータ
として記憶して(ステップQ4)、中間音検出処理を終
了する。
【0116】上記ROM3の中間音階検出データテーブ
ルは、例えば、ディジタルフィルタの伝達関数が、図1
9に示すように、221Hzと234・14Hzであったと
すると、この2つの伝達関数の比、すなわち、ピーク周
波数221Hzの伝達関数をピーク周波数234.14Hz
の伝達関数で割ったものが、図20であり、この図20
の200Hz〜250Hz附近を拡大したものが図21であ
る。図21に示すように、隣接する音階を検出するディ
ジタルフィルタの伝達関数の比は、極大点及び極小点が
2つの伝達関数のピークに一致しており、この2点間で
は、単調に減少している。したがって、この極値間での
伝達関数の比が分ると、逆変換により、実際の周波数が
分ることになる。そこで、伝達関数比から周波数を変換
する変換テーブルを、ROM3に中間音階検出データテ
ーブルとして記憶させ、この中間音階検出データテーブ
ルから、上記図18のステップQ4でシフト量を求めて
いる。例えば、上記周波数の例では、221Hzをベース
とした中間音階への変換テーブルがROM3に記憶され
ており、この中間音階検出データテーブルとしては、上
記音階検出処理で検出される全ての固定音階をベースと
した中間音階への変換テーブルがそれぞれ用意されてい
る。この中間音階検出データテーブルは、実際には、半
音の間をセント単位で分けられる程度のデータで充分で
ある。
【0117】上記図18のステップQ4で記憶したベン
ドデータを、図17のステップP10で、音階検出処理
で検出した音階、すなわちLow からのシフト量として、
ベンドレンジにベンド値を設定し、楽音発生回路9は、
このベンド値だけ発音指示された音階(Low )からシフ
トした音階の楽音を発生する。
【0118】したがって、ディジタルフィルタリング処
理により、与えられる音響信号の実際の音階に近い互い
に隣接する固定された音階を検出し、この隣接する音階
の周波数レベル比を算出して、音響信号の実際の音階を
検出することができる。その結果、予め固定された音階
の間の中間の音階をも検出することができ、検出した予
め固定された音階の間の中間の音階音をも発生させるこ
とができる。
【0119】なお、上記実施例においては、単音につい
て説明したが、これに限るものではなく、複音に対して
も同様に中間音を検出し、検出した中間音の複音を発生
させることができる。
【0120】
【発明の効果】本発明によれば、ディジタルフィルタリ
ング処理により、与えられる音響信号の実際の音階に近
い互いに隣接する固定された音階を検出し、この隣接す
る音階の周波数レベル比を算出して、予め固定された音
階周波数の間の中間の音階周波数をも検出することがで
きる。その結果、音響信号の実際の音階を正確に検出す
ることができる。
【図面の簡単な説明】
【図1】本願発明に係る音階検出装置の一実施例の基本
原理を示す構成図。
【図2】図1のバンドパスフィルタHt(z)の周波数特性
図。
【図3】図1を改良した原理による構成図。
【図4】図3のハイパスフィルタH1(z)とローパスフィ
ルタH2t(z) をカスケード接続したときの周波数特性
図。
【図5】図3のハイパスフィルタH1(z)の構成図。
【図6】図5のハイパスフィルタH1(z)の周波数特性
図。
【図7】図3のローパスフィルタH2t(z) の構成図。
【図8】図7のディジタルフィルタの極と零点及び極ベ
クトルと零点ベクトルを示す図。
【図9】図8に対応てして周波数特性を表した図。
【図10】図7のローパスフィルタH2t(z) の周波数特
性図。
【図11】図3のローパスフィルタHE(z)の構成図。
【図12】図11のローパスフィルタHE(z)の周波数特
性図。
【図13】図11の構成によりエンベロープ抽出がなさ
れることを説明する説明図。
【図14】本願発明に係る音階検出装置の一実施例を適
用した楽音発生装置の全体回路構成図。
【図15】図14のDSP44の内部回路構成図。
【図16】図16のDSP44によるディジタルフィル
タ処理のフローチャート。
【図17】音階音発生処理を示すフローチャート。
【図18】図17の中間音検出処理を示すフローチャー
ト。
【図19】ディジタルフィルタの伝達関数の一例を示す
図。
【図20】図19の伝達関数の比を示す図。
【図21】図20の部分拡大図。
【符号の説明】
1 楽音発生装置 2 CPU 3 ROM 4 RAM 5 音階検出装置 6 キーボード 7 ディスプレイ 8 プリンタ 9 楽音発生回路 10 オーディオシステム 11 スピーカ 12 バス 22 音色バッファ 23 ポリピッチ抽出データバッファ 24 最大レベルバッファ 25 特定音域バッファ 44 DSP 45 フィルタ係数ROM 46 ワークRAM
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 G01R 23/16 - 23/167 H03H 17/00 - 17/08

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 与えられる音響信号を表現するディジタ
    ル波形信号に対して、異なる特性のディジタルフィルタ
    リング処理を時分割で順次実行することにより、各音階
    に対応する周波数に関する周波数スペクトルのレベルを
    検出するフィルタ手段と、 前記フィルタ手段により検出した周波数スペクトルのレ
    ベルの最も大きい音階及びこの音階に隣接する音階のう
    ち周波数スペクトルのレベルの大きい方を選択する第1
    の選択手段と、 前記第1の選択手段により選択された2つの音階の周波
    数スペクトルのレベル比を演算する演算手段と、 前記各音階毎に設けられ、夫々隣接する音階との周波数
    スペクトルのレベル比に対する音階周波数差に対応する
    シフトデータが記憶された複数の変換手段と、 前記複数の変換手段の中から、前記第1の選択手段によ
    り選択された隣接する音階に対応する変換手段を選択す
    る第2の選択手段と、 前記第2の選択手段により選択された変換手段から前記
    演算手段により演算されたレベル比に対応するシフトデ
    ータを読み出す読み出し手段と、 前記第1の選択手段により選択された音階の周波数を前
    記読み出し手段にて読み出されたシフトデータに基づい
    た周波数分だけシフトした音階周波数を中間音階周波数
    として検出する検出手段と、 を備えたことを特徴とする音階検出装置。
JP17918792A 1992-06-12 1992-06-12 音階検出装置 Expired - Fee Related JP3168708B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17918792A JP3168708B2 (ja) 1992-06-12 1992-06-12 音階検出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17918792A JP3168708B2 (ja) 1992-06-12 1992-06-12 音階検出装置

Publications (2)

Publication Number Publication Date
JPH05346783A JPH05346783A (ja) 1993-12-27
JP3168708B2 true JP3168708B2 (ja) 2001-05-21

Family

ID=16061464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17918792A Expired - Fee Related JP3168708B2 (ja) 1992-06-12 1992-06-12 音階検出装置

Country Status (1)

Country Link
JP (1) JP3168708B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004028694B3 (de) 2004-06-14 2005-12-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum Umsetzen eines Informationssignals in eine Spektraldarstellung mit variabler Auflösung

Also Published As

Publication number Publication date
JPH05346783A (ja) 1993-12-27

Similar Documents

Publication Publication Date Title
JP2775651B2 (ja) 音階検出装置及びそれを用いた電子楽器
US4829463A (en) Programmed time-changing coefficient digital filter
US5157215A (en) Electronic musical instrument for modulating musical tone signal with voice
US5270954A (en) Filter device and electronic musical instrument using the filter device
US5157623A (en) Digital filter with dynamically variable filter characteristics
JPS63163897A (ja) 楽音信号発生方法
JP3168708B2 (ja) 音階検出装置
JP3185266B2 (ja) 楽音発生装置
US4231277A (en) Process for forming musical tones
JPS6332196B2 (ja)
JP3132038B2 (ja) 和音判別装置及びそれを用いた自動伴奏装置
JP3127406B2 (ja) テンポ検出装置
JP3149466B2 (ja) ピッチ抽出装置及びそれを用いた電子楽器
JP3118863B2 (ja) 音階検出装置を用いた楽音発生装置
JP2762926B2 (ja) 楽音生成装置
JP2779983B2 (ja) 電子楽器
JP3120468B2 (ja) 音階検出装置及びそれを用いた楽音発生装置
JP3149097B2 (ja) 音響成分抽出装置、それを用いた電子楽器、及び周波数成分抽出装置
JPH08234759A (ja) 楽音信号発生装置
JPH05346787A (ja) 音声制御楽音発生装置
JPH05100675A (ja) 和音データ生成装置、伴奏音データ生成装置、および楽音発生装置
JP2814939B2 (ja) 波形処理装置
JP3149463B2 (ja) 効果付加装置
JPH08234746A (ja) デジタルフィルタおよびデジタルフィルタを用いた電子楽器
JP2750332B2 (ja) 楽音分析方法及びこの分析方法を用いた楽音分析装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090316

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees