(57)【特許請求の範囲】
【請求項１】
入力音の音高を検出する検出手段と、
補正目標の音高を指定する指定手段と、
前記入力音の音高を前記指定手段により指定された補正目標の音高に向けて徐々に補正する音高補正手段と、
前記補正目標の音高および前記音高補正手段における現時点の音高補正量を表示する手段と
を備えたことを特徴とする音高補正装置。
【請求項２】
入力音の音高を検出する検出手段と、
補正目標の音高を指定する指定手段と、
前記入力音の音高を前記補正目標の音高に向けて徐々に補正する音高補正手段と、
前記検出手段により検出した入力音の音高を表示する手段と、
前記指定手段により指定された補正目標の音高を表示する手段と、
前記音高補正手段の音高補正処理における現時点の音高補正量を表示する手段と
を備えたことを特徴とする音高補正装置。
【請求項３】
請求項１または２に記載の音高補正装置において、
前記補正目標の音高を表示する手段は、各音名に対応する表示要素を点灯させることにより前記補正目標の音高を示すものであり、点灯時には所定の時定数で最大照度まで漸増し、消灯時には所定の時定数で最小照度まで漸減するように表示するものであることを特徴とする音高補正装置。
【請求項４】
入力音の音高を補正する処理を行なう音高補正プログラムであって、
コンピュータに、
入力音の音高を検出する検出ステップと、
補正目標の音高を指定する指定ステップと、
前記入力音の音高を前記指定ステップにより指定された補正目標の音高に向けて徐々に補正する音高補正ステップと、
前記補正目標の音高および前記音高補正ステップにおける現時点の音高補正量を表示するステップと
を実行させることを特徴とする音高補正プログラム。
【請求項５】
入力音の音高を補正する処理を行なう音高補正プログラムであって、
コンピュータに、
入力音の音高を検出する検出ステップと、
補正目標の音高を指定する指定ステップと、
前記入力音の音高を前記補正目標の音高に向けて徐々に補正する音高補正ステップと、
前記検出ステップにより検出した入力音の音高を表示するステップと、
前記指定ステップにより指定された補正目標の音高を表示するステップと、
前記音高補正ステップの音高補正処理における現時点の音高補正量を表示するステップと
を実行させることを特徴とする音高補正プログラム。
【請求項６】
請求項４または５に記載の音高補正プログラムにおいて、
前記補正目標の音高を表示するステップは、各音名に対応する表示要素を点灯させることにより前記補正目標の音高を示すものであり、点灯時には所定の時定数で最大照度まで漸増し、消灯時には所定の時定数で最小照度まで漸減するように表示するものであることを特徴とする音高補正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、入力音の音高を指定された音高に補正する音高補正装置および該装置に係るプログラムに関する。
【背景技術】
【０００２】
従来より、いわゆるピッチコレクターあるいはピッチチェンジャーなどと呼ばれる音高補正装置が知られている（例えば、特許文献１参照）。これは、入力音の音高（ピッチ）を任意指定の音階周波数に補正して出力する装置である。音程のふらついた演奏や歌唱音を補正して、きれいに楽曲を仕上げるなどが主な利用法である。例えば、カラオケなどで歌い手が歌うボーカル音の音高を曲に正確に合わせるために用いる。逆に、ピッチ変動を目立たせるように補正して、演奏音の個性を強調するためにも使える。ピッチコレクターはリアルタイムの処理が可能である。また、自動演奏の機能拡張プラグインソフトとして提供されるものもある。例えば、自動演奏に合わせてボーカル音を録音するとき、ボーカル音の音高を、予め設定されているメロディの音高（あるいは予め決められた音階の何れかの音高）に補正し、本来の音高の歌声とすることができる。
【０００３】
上述したピッチコレクターあるいはピッチチェンジャーなどの音高補正装置では、入力音の音高を抽出する機能が必須である。音高抽出の方式としては、入力音波形データからそのエンベロープを生成し、そのエンベロープのゼロクロス（信号の符号が正から負に、あるいは負から正に変化するポイント）を検出し、そのゼロクロスの周期を入力音の周期とするものである。
【特許文献１】特開平１０−７８７９１号（特許第３３７９３４８号）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、従来の音高補正装置では、音高の補正の際、どのような音高に補正されたかなどについて視覚的に見やすくする工夫がなかった。
【０００５】
この発明は、音高補正装置において、補正出力音の音高（音名）や元の音の音高をどの程度補正したかなどの変化について一目で分かるように視認性の良い表示を行なうようにすることを目的とする。
【課題を解決するための手段】
【０００６】
この目的を達成するため、この発明に係る音高補正装置およびプログラムでは、入力音の音高を補正目標の音高に向けて徐々に補正する処理を行なう際に、その補正目標の音高および音高補正処理の現時点の音高補正量を表示するようにしたことを特徴とする。
【０００７】
また、補正目標の音高の表示は、各音名に対応する表示要素を点灯させることにより前記補正目標の音高を示すものであり、点灯時には所定の時定数で最大照度まで漸増し、消灯時には所定の時定数で最小照度まで漸減するように表示するものであることを特徴とする。表示要素とは、例えば後述する発明の実施の形態では、ディスプレイ上に表示した鍵盤イメージの各鍵に対応する。ディスプレイ上の表示に限らず、ハードウエアとしての鍵盤の各鍵（鍵盤の鍵でなく各音名が区別できるものであればよい）にランプなどを設けて上記表示要素としてもよい。
【発明の効果】
【０００８】
以上説明したように、この発明によれば、音高補正装置あるいはプログラムにおいて、補正出力音の音高（音名）や元の音の音高をどの程度補正したかなどの変化について一目で分かるように視認性の良い表示を行なうことができる。これにより音高補正処理を行なう際に、ユーザはその処理の状況を容易に把握できるようになる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を用いてこの発明の実施の形態を説明する。
【００１０】
図１は、この発明の実施の形態に係るピッチコレクターのハード構成を示す。このピッチコレクターは、ＣＰＵ１０１、ＲＯＭ／ＲＡＭ１０２、ハードディスク装置（ＨＤＤ）１０３、ＱＷＥＲＴＹキーボード１０４、ディスプレイ１０５、オーディオ入出力インターフェース（Ｉ／Ｆ）１０６、ＭＩＤＩ  Ｉ／Ｆ１０７、ネットワークＩ／Ｆ１０８、およびバスライン１１０を備える。
【００１１】
ＣＰＵ１０１は、このピッチコレクター全体の動作を制御する処理装置である。ＲＯＭ／ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムや使用するデータを格納するメモリであり、不揮発性のリードオンリメモリ（ＲＯＭ）と揮発性のランダムアクセスメモリ（ＲＡＭ）からなる。ＨＤＤ１０３は、ＣＰＵ１０１が実行するプログラムや各種のデータを記憶する外部記憶装置である。ＱＷＥＲＴＹキーボード１０４は、通常のパーソナルコンピュータに用いられているタイプ用キーボードである。ディスプレイ１０５は、ＣＰＵ１０１からの指示に基づいて各種の情報を表示する。オーディオＩ／Ｆ１０６は楽音波形信号の入出力を行なうインターフェースであり、ＭＩＤＩ  Ｉ／Ｆ１０７はＭＩＤＩ信号の入出力を行なうインターフェースであり、ネットワークＩ／Ｆ１０８はローカルエリアネットワーク（ＬＡＮ）やインターネットなどに接続するためのインターフェースである。バスライン１１０は、これら各部を相互接続するバスラインである。
【００１２】
このようなピッチコレクターは、専用の装置として構成することもできるし、汎用のＰＣ（パーソナルコンピュータ）を用いて構成することもできる。ここでは、汎用のＰＣを用いて、ＰＣアプリケーションまたはアプリケーションの付加機能（プラグイン）としてピッチコレクターを実現するものとして説明する。
【００１３】
図２は、図１のハード構成のピッチコレクターの機能ブロック図を示す。該ブロック図の動作は、ＰＣ上で所定のソフトウェアを動作させることにより実現している。図２の各部の処理を説明する前に、本ピッチコレクターにおけるモードについて説明する。このピッチコレクターでは、MIDI Control as Scaleモード、MIDI Control as Noteモード、またはパネルモードが選択可能である。
【００１４】
MIDI Control as Scaleモードは、補正基準音階の音名を指定し、入力音の音高を、その音高に一番近い補正基準音階の何れかの音名の音高に補正するモードである。補正基準音階は、補正目標となる複数の音名（最大ではＣ，Ｃ＃，Ｄ，…，Ａ＃，Ｂの１２個の音名）から構成される。補正基準音階の音名は、ＭＩＤＩノートナンバ（KeyCode）でリアルタイムに指定することができる。音階として判断するため、オクターブの区別（例えば、音名ＣであればＣ２，Ｃ３などの区別）はなく、単に音名Ｃ，Ｃ＃，…，Ｂとして認識する。ＭＩＤＩノートオン受信でそのノートナンバの音名を補正基準音階に加え、ノートオフ受信でその音名を補正基準音階から削除する。
【００１５】
MIDI Control as Noteモードは、リアルタイムで補正基準音名を指定し、入力音の音高を、その補正基準音名の音高に補正するモードである。補正基準音名は、ＭＩＤＩノートナンバにより絶対値としてリアルタイムに指定する。オクターブの区別も行ない、例えば音名ＣであればＣ２，Ｃ３などは異なる音名として絶対値で認識する。単音のＭＩＤＩノートオン受信でそのノートナンバの音名を補正基準音高として認識し、ノートオフ受信でそのノートを補正基準音高から削除する。複数のＭＩＤＩノートオンを受信した場合、後着優先となる。
【００１６】
パネルモードは、調性（Key）と音階（Scale）をメニューから指定することにより補正基準音階を直接設定するモードである。所定の操作により任意のスケールの設定も行なうことができる。パネルモードで補正基準音階を指定した後は、入力音の音高は、その音高に一番近い補正基準音階の何れかの音名の音高に補正される。
【００１７】
次に、図２の各部の処理について説明する。入力信号INPUTは入力音の波形データであり、ここではボーカル音とする。出力信号OUTPUTは音高が補正された波形データである。その他、表示用データとして、入力音高表示データINPUT_PICTH、補正ノート表示データCORRNOTE、および補正量表示データCORRECTを出力する。入力音高表示データINPUT_PICTHは、入力音から検出した音高（周波数値）を示す。補正ノート表示データCORRNOTEは、補正目標の音高（音名表現）を示す。補正量表示データCORRECTは、現時点における入力音の音高の補正量（ピッチシフト量）を示す。
【００１８】
ピッチ抽出２０１にはパラメータTypeが入力する。Typeは、入力音声の性質に合ったフィルタリングおよびピッチ抽出方式を選択するためのパラメータであり、具体的にはノーマル、男声、または女声の３種類の何れかである。ピッチ抽出２０１は、Typeに応じたフィルタリングおよびピッチ抽出方式で、入力音の音高（周波数値）を検出する。検出された音高データは、加算器２０２に入力する。加算器２０２は、その音高データから基準周波数であるMasterTune(IN)を減算する。MasterTune(IN)は、入力音声の音高の基準周波数を設定するパラメータであり、デフォルトではＡ３＝４４０Ｈｚである。基準周波数を減算した結果の音高データは平均化処理２０３に入力する。入力音の音高は時々刻々と変化するので、平均化処理２０３により、入力した音高データを平滑化するローパスフィルタ（ＬＰＦ）などの処理を施すものである。パラメータPitchDetectSensは、平均化処理２０３の応答性（時定数）を設定するパラメータである。主に、入力音声のピッチ変動の大小に応じて適当な値に設定する。入力音であるボーカル音は、人の歌い方に応じた音高の揺れがあり、余りに応答性よく音高を補正してしまうと本来のボーカル音を損ねてしまう場合がある。そのような場合は、PitchDetectSensを調整して応答性を低く設定する。
【００１９】
補正ノート判定２０４は、平均化処理後の音高データに応じて、その入力音の音高が一番近い補正基準音階の何れかの音名の音高を割り出す処理を行なう。特に、MIDI Control as Scaleモードのとき、補正ノート判定２０４は、ＭＩＤＩノートオン受信でそのノートナンバの音名を補正基準音階に加え、ノートオフ受信でその音名を補正基準音階から削除する処理を行なう。またパネルモードのとき、補正ノート判定２０４は、パラメータとして調性（Key）と音階（Scale）を入力し、それらに応じて補正基準音階を設定する処理を行なう。
【００２０】
スイッチ２０５はモードに応じて切り替えられる。MIDI Control as Scaleモードまたはパネルモードのとき、スイッチ２０５は２０５Ａ側に接続され、補正ノート判定２０４で割り出された補正音高データ（オクターブも含む補正目標の音名を示すデータ）がリミット処理２０６に入力される。一方、MIDI Control as Noteモードのとき、スイッチ２０５は２０５Ｂ側に接続され、外部からリアルタイムに入力する補正基準音名が補正音高データとしてリミット処理２０６に入力される。
【００２１】
リミット処理２０６は、補正音高データが所定の上限と下限の間に入っていることを確認する処理である。パラメータとして入力するLowLimitは下限値、HighLimitは上限値を、それぞれ示すデータである。補正音高データが下限を下回る場合はその下限値に、上限を上回る場合はその上限値に修正される。リミット処理２０６が出力する補正音高データは、補正目標の音名を示す補正ノート表示データCORRNOTE（音名表現）として出力される。またリミット処理２０６は、その補正目標の音名を周波数値に変換し、その値を補正音高データ（周波数値）として加算器２０７に入力する。
【００２２】
加算器２０７は、補正音高データ（周波数値）から元の入力音のピッチ抽出結果の音高（周波数値）を減算し、その結果（すなわち入力音の音高と補正目標の音高との差分であり、入力音の音高を補正するピッチシフト量）をＬＰＦ２０８に入力する。ＬＰＦ２０８は、そのピッチシフト量の変化を滑らかにする。ＬＰＦ２０８に入力するPitchCorrectSpeedは、音高補正を開始してから目標の音高に達するまでの時間特性を制御するためのパラメータである。ＬＰＦ２０８から出力される平滑化されたピッチシフト量は、補正量表示データCORRECTとして出力される。また、このピッチシフト量に対し、加算器２０９でPicthShiftを、加算器２１０でMasterTune(OUT)を、それぞれ加算する。PicthShiftはピッチ補正した信号全体の音高を調整するためのパラメータであり、MasterTune(OUT)はピッチ補正後の音高の基準周波数を設定するパラメータである。ピッチシフト２１１は、加算器２１０から出力されたピッチシフト量に応じて、入力音の音高を補正し、補正後の楽音を出力する。FormantShiftは、ピッチシフト処理２１１におけるフォルマントの周波数位置の設定を行なうパラメータである。
【００２３】
図３（ａ）は、ピッチコレクターの設定ウインドウを示す。この設定ウインドウは、図２で説明したようにピッチコレクターが動作する際に画面上に表示されるウインドウである。３０１は、音名ＣからＢまでの１オクターブ分の音階の表示を行なうための鍵盤パネルである。鍵盤パネル３０１の上部に、音高補正状況を表示するための表示部３０２が表示される。その他、図２で説明した種々のパラメータなどを調整するための操作子３０３の表示がなされているが、ここでは省略する。
【００２４】
図３（ｂ）は、音高補正状況表示部３０２の表示例を示す。３１１は、現在の入力音から検出した音高（すなわち、図２の入力音高表示データINPUT_PICTH）をモニタ表示する検出音高線である。検出音高線３１１の表示位置は、下部の鍵盤パネル３０１の各鍵に対応している。例えば図３（ｂ）の検出音高線３１１は、Ｃ＃の鍵の上に表示されているので、現在の入力音から検出した音高がＣ＃であることを示している。なお、図２で説明したように入力音高表示データINPUT_PICTHは周波数値であるので、この値から対応する音名（Ｃ，Ｃ＃，Ｄ，…，Ａ＃，Ｂ）を求め、該音名に対応する鍵の位置に検出音高線３１１を表示している。
【００２５】
３１２は、入力音の音高からの現時点の音高補正量（補正量表示データCORRECT）を示すピッチインジケータ表示である。ピッチインジケータ表示３１２は、検出音高線３１１の位置からＬＥＤ（発行ダイオード）が発光する長さで音高の補正量を示している。また、CORRECTは＋または−の極性を有し、その極性に応じて検出音高線３１１の位置から右側または左側のどちらにピッチインジケータ表示３１２を伸縮させるかを決定している。図３（ｂ）では３１２に示す部分が現時点の補正量を示す発光部分であるが、これは現在の入力音の音高Ｃ＃がＦ付近まで補正されて出力されていることを示している。補正目標は音名に対応する周波数だが、音高の補正は徐々に行なわれるので、補正量３１２が、隣り合う鍵同士の中間位置にくることもある。ここではＬＥＤイメージの表示としたが、単なるバー表示でもよい。補正量が大きければ長く、少なければ短く表示し、補正量が０の場合は補正量３１２の表示は無い。補正量がＣまたはＢをまたぐときには、補正量を折り返して表示する。図３（ｃ）は、検出音高線３２２で示される入力音の音高がＧ３であり、これがＣ４に補正された場合の補正量の表示である。３２３および３２４に示すように折り返して表示されている。
【００２６】
図３（ｄ）は、鍵盤パネル３０１における補正目標の音名の表示例である。補正目標の音名は、補正ノート表示データCORRNOTEに基づいて鍵盤パネル３０１の鍵を部分的に光らせることにより表示する。入力音に応じて補正目標は時々刻々と変化し、これに応じて補正目標の鍵の点灯はリアルタイムに行なわれる。鍵の点灯は、補正ノート表示データCORRNOTEとして新たな補正目標の音名が出力されたときから急速に照度を増加させ所定時間後に最大照度とする。補正ノート表示データCORRNOTEとして当該補正目標の音名が出力され続ける間、当該鍵の点灯状態は最大照度が保持される。補正ノート表示データCORRNOTEとして次の補正目標の音名またはNULL（補正目標無し、音高補正処理は停止状態となる）が出力されたとき、それまで点灯されていた鍵が消灯される。消灯は余韻をもって徐々に消えていくようにすることで、視覚的に判断しやすくしている。図３（ｄ）の３３１は一番強く光っている鍵を示し、３３２は一番光った状態から若干消えた状態を示し、３３３はさらに消えていく状態を示す。
【００２７】
図４は、図３で説明したような鍵盤パネル３０１における補正目標の音名の表示を行なう鍵照度制御部の機能ブロック図を示す。本実施形態では、このような機能ブロックの動作は実際にはプログラムで行なっている。
【００２８】
図４の鍵照度制御部は、音名フィルタ４０１および各音名ごとの照度制御を行なうディスプレイフィルタ（DISPLAY FILTER x）４０２−１〜４０２−１２を備える。音名フィルタ４０１は、補正ノート表示データCORRNOTEを入力し、その音名に対応する出力を１とし、他の音名に対応する出力を０とする。補正ノート表示データCORRNOTEがNULL出力のときは、すべての音名に対応する出力を０とする。例えば、補正ノート表示データCORRNOTEとして音名Ｃが認識されると、音名フィルタの「＝Ｃ」の出力が０から１に立ち上がる。このとき音名Ｃの鍵照度を制御するディスプレイフィルタ４０２−１は以下のように動作する。
【００２９】
まずトリガ（TRIGGER）４１１が１となるので、該トリガ４１１の指示でレジスタREGc４１５に初期値INIT（INIT＜１）が書き込まれる。これにより、ディスプレイフィルタ４０２−１の出力C_LAMPが０から初期値INITとなる。出力C_LAMPの値を照度として、音名Ｃの鍵について図３（ｄ）で説明した表示が行なわれるので、初期照度はINIT＜１で表示されることになる。加算器４１２、乗算器４１３、および加算器４１４は、遅延手段としてのレジスタREGc４１５を加えて、レジスタREGc４１５の現在値から入力値に漸近する（その時定数はDISPLAY TCで決まる）フィルタを構成している。したがって、補正ノート表示データCORRNOTEとして音名Ｃが続けば、ディスプレイフィルタ４０２−１には１が入力し続けるので、初期照度INITから最大照度１まで徐々に漸近して表示される。最大照度１に至った後は、音名Ｃが続く限り、その最大照度１が保持される。補正ノート表示データCORRNOTEが音名Ｃ以外になると、音名フィルタ４０１の「＝Ｃ」の出力が１から０となり、ディスプレイフィルタ４０２−１には０が入力するので、レジスタREGc４１５の値すなわちC_LAMPの値は１から０まで徐々に減少する。したがって、音名Ｃの鍵の照度は１から０まで徐々に減少する。
【００３０】
他のディスプレイフィルタ４０２−２〜４０２−１２も同様の構成であり、これらのディスプレイフィルタから出力されるC_LAMP，C#_LAMP，…，B_LAMPを鍵盤パネル３０１の各鍵の照度として図３（ｄ）で説明した表示を行なう。なお、照度値は、実用上は７〜８段階で区別すれば十分である。
【００３１】
図５は、鍵の照度の変化例を示すタイミングチャート図である。図５（ａ）は補正ノートの音名（CORRNOTE）の変化を示す。NULLの状態から、タイミング５０１で補正ノートＣとなり、それが続き、タイミング５０２で補正ノートＤとなる。さらにタイミング５０３でＥ、タイミング５０４でＣ、タイミング５０５でNULLとなる。続いて、タイミング５０６でＣ、タイミング５０７でNULLと切り替わる。
【００３２】
図５（ｂ）は、図５（ａ）のように補正ノートが切り替わったときの鍵盤パネル３０１のＣ鍵の照度の変化を示す。タイミング５０１で補正ノートＣになるので、照度が初期値INITで立ち上がり、５１１に示すように徐々に照度１に近づく。照度１に至った後は補正ノートＣが継続しているので、Ｃ鍵の照度も１を保持する。タイミング５０２で補正ノートＤになるので、Ｃ鍵の照度は５１２に示すように徐々に減少し、５１３に示すように０に至る。次に、タイミング５０４で補正ノートＣとなるので、再び照度が初期値INITで立ち上がり、５１４に示すように徐々に照度１に近づく。タイミング５０５で補正ノートの指定が無くなるので、５１５に示すようにＣ鍵の照度は徐々に減少し、５１６に示すように０に至る。タイミング５０６で再び補正ノートＣとなるので、初期値INITから５１７に示すように照度が増加する。増加途中のタイミング５０７で補正ノートＣの指定が無くなったときは、その時点から５１８に示すように照度が０まで減少する。同様にして、図５（ｃ）はＤ鍵の照度、図５（ｄ）はＥ鍵の照度を示す。Ｃ鍵で説明したのと同様な変化を示している。
【００３３】
以上のように、入力音が途切れなく、または十分に短い時間内に連続変化するときは、キーオフされた鍵の照光は残光を残しながら消えていきつつ、新たなキーオンに対応する鍵の照光が立ち上がるので、補正目標の音高（音程）の移動・変化が認識しやすい。
【００３４】
なお、入力音として同じ音高のキーオン・キーオフ（キーオンとキーオフは本実施形態のピッチコレクターへの入力のオンとオフを意味するものとする）が連続的に繰り返される場合は、キーオフ後、照度を早く減衰させるように制御（すなわち補正目標の音高に変化がない場合はキーオン・キーオフの変化により対応した表示動作とする）してもよい。そのためには、例えばキーオンからキーオフまでの時間間隔やキーオンから次のキーオンまでの時間間隔に応じてディスプレイフィルタのパラメータDISPLAY TCを変更したり、所定時間内のキーオンやキーオフの数に応じてディスプレイフィルタのパラメータDISPLAY TCを変更すればよい。また、同じ音高とは限らず、補正目標の音高が変化するキーオン・キーオフに対して、上述のようなキーオン・キーオフの変化に応じた表示動作を行なってもよい。
【００３５】
さらに、照度立ち上がり時と立ち下がり時の時定数は切り換えることができるようにしてもよい。例えば、所定の設定画面でユーザがディスプレイフィルタのパラメータDISPLAY TCを任意に変更できるようにしてもよい。また、図４のディスプレイフィルタでは、照度立ち上がり時と立ち下がり時とで同じ時定数を用いたが、照度立ち上がり時と立ち下がり時とで別々のフィルタを用いて時定数も異なる値としてもよい。この場合、図２で説明したPitchDetectSensやPitchCorrectSpeedに応じて、照度立ち上がり時の時定数を変更制御するようにしてもよい。
【００３６】
図６（ａ）は、ピッチコレクター処理のフローチャートを示す。この処理は、図１に示した構成のＰＣ上でＯＳ（オペレーティングシステム）の管理下で動作するものである。ステップ６０１で、ピッチコレクター信号処理を行なう。これは図２で説明した機能ブロックの処理である。次にステップ６０２で設定ウインドウ（図３）を閉じるイベントがあったか否か判定し、なければステップ６０３で設定ウインドウ表示処理を行ないリターンする。設定ウインドウを閉じるイベントがあったときは、ステップ６０４で、設定ウインドウ表示消去処理を行ない、ステップ６０５でピッチコレクターの終了処理を行ない、リターンする。
【００３７】
図６（ｂ）は、ステップ６０３の設定ウインドウ表示処理のフローチャートを示す。ステップ６１１で、入力音高表示データINPUT_PICTHのモニタ表示処理を行なう。これは、入力音から検出した音高（周波数値）であるINPUT_PICTHの値から対応する音名（Ｃ，Ｃ＃，Ｄ，…，Ａ＃，Ｂ）を求め、該音名に対応する鍵の位置に図３で説明した検出音高線３１１や３２２を表示する処理である。次にステップ６１２で、ピッチインジケータ部の表示処理を行なう。これは、現時点の音高補正量（補正量表示データCORRECT）に応じて、図３で説明したピッチインジケータ表示３１２を行なう処理である。
【００３８】
次にステップ６１３で、ワークレジスタｘに最初の音名Ｃを格納する。以下、レジスタｘに格納した音名を音名ｘと呼ぶ。ステップ６１４で、補正目標の音名ｘのオンイベントがあるか否か（すなわち、CORRNOTE＝音名ｘか）判定する。あるときはステップ６１５に、ないときはステップ６１６に、進む。ステップ６１５では、ディスプレイフィルタｘ（図４のディスプレイフィルタ４０２−１から４０２−１２のうち音名ｘに対応するもの）のレジスタREGxに初期値INITをセットし、音名フィルタ４０１の音名ｘに対応する出力を１とする。ステップ６１６では、補正目標音名ｘのオフイベントがあるか否か（すなわち、CORRNOTE≠音名ｘか）判定する。あるときはステップ６１７に、ないときはステップ６１８に、進む。ステップ６１７で、音名フィルタ４０１の音名ｘに対応する出力を０とする。ステップ６１８では、図４で説明したディスプレイフィルタｘの信号処理を行なう。ステップ６１９で、全音名について処理が終了したか否か判定する。まだ処理していない音名があるときは、ステップ６２０でワークレジスタｘに次の音名をセットし、ステップ６１４に戻る。全音名の処理が終了したときは、ステップ６２１で、１２個のすべてのディスプレイフィルタの出力C_LAMP，C#_LAMP，…，B_LAMPを鍵盤パネル３０１の対応する鍵の照光に反映させる。ステップ６２２で、その他、表示およびＧＵＩの処理などを行ない、リターンする。
【００３９】
なお、音高データのフォーマットについてであるが、周波数値を単純に二進数化（バイナリ）したものでもよいが、楽音を扱う上では、周波数値そのものより、対数表現による相対周波数データ、別の言い方をすれば、セント単位（半音＝１００セント、１オクターブ＝１２００セント）で表現するフォーマットとすると、合理的で計算処理も楽である。セント単位のフォーマットとは、基準（ゼロ）となる絶対音高を予め定めておいて、それからのセント差で音高を表す形式である。例えば、基準音高をＡ３＝４４０Ｈｚとして、１オクターブ上のＡ４は「＋１２００」、１音下のＧ３は「−２００」と表す。
【００４０】
ここで、データの値を正値に限りたいときは、処理対象とする最低音高を基準に据えればよい。例えば、Ａ−３＝６．８７５Ｈｚをシステムで扱う最低音高とすれば、６オクターブ上のＡ３は「＋７２００」、Ｃ３は「＋６３００」、Ｃ２は「＋５１００」、Ｃ４は「＋７５００」となる。半音差＝１００セント、１オクターブ差＝１２００である、このセント単位のフォーマットを使えば、音名の認識も簡単化できる。例えば、Ａ３＝「＋７２００」ならば、音高データ値が「＋０」「＋１２００」「＋２４００」「＋３６００」「＋４８００」「＋６０００」「＋７２００」「＋８４００」「＋９６００」…の場合、その音名は「Ａ」となる。また「＋３００」「＋１５００」「＋２７００」「＋３９００」「＋５１００」「＋６３００」「＋７５００」…であれば、音名は「Ｃ」である。
【００４１】
セント単位フォーマットによれば、基準音高の変更にも対応が容易である。システムの音名、音高名の認識部分は例えばＡ３＝４４０Ｈｚを基準音高として音名、音高を認識するものとしておく。これに、Ａ３＝４４１Ｈｚを基準音高とする演奏音を入力するときは、４４０Ｈｚと４４１Ｈｚのセント差＝３．９３０２セントをピッチ抽出の結果（セント値）から減算してシステムに入力すればよい。
【００４２】
鍵照度の制御をこのセント単位フォーマットによる周波数データの値に応じて行なってもよい（入力音から抽出した音高データがＣ〜Ｂの１２音名の何れかの音高対応値に収まれば最高照度とし、該音高から離れるに従って、照度を下げるなど）。
【００４３】
なお、上記実施の形態では、ＰＣ上で動作するプログラムでピッチコレクターの信号処理や図３で説明した表示処理を行なったが、任意の部分をハードウエアで実現することも可能である。図３の表示はＰＣのディスプレイへの表示であるが、ハードウエアとして鍵盤を備え、図３で説明したのと同様の表示ができるものであれば（例えば、各鍵には３３１〜３３３のような点灯表示ができるようにする）、本発明を適用可能である。
【００４４】
図３では鍵盤パネル３０１により補正目標の音高を表示しているが、鍵盤のイメージではなくとも、各音名が分かるような表示であればよい。
【００４５】
次に、上述したピッチコレクターにおけるピッチ抽出部２０１（図２）の実施形態を説明する。
【００４６】
図７は、ピッチ抽出部２０１におけるピッチ抽出の方式を説明するための波形信号図である。７０１は、入力音の楽音波形（入力波形と呼ぶ）を示す。７０２は、入力波形７０１の正側のエンベロープ波形および該エンベロープ波形の所定の区間をホールドしたホールド波形を示す。７０２ａや７０２ｃが入力波形７０１の正側のエンベロープ波形の部分であり、７０２ｂや７０２ｄがホールド波形の部分である。どのような区間をホールドするかについては後述する。エンベロープ波形は、所定の時定数で入力波形を追随する回路あるいは処理で生成しているため、７０２ａや７０２ｃに示すように元の入力波形に対して若干の遅れをもって追随した波形となっている。もちろん、より高い追随性のエンベロープ波形としてもよい。図７では正側のみ図示したが、負側についても同様に、負側のエンベロープ波形および該エンベロープ波形の所定の区間をホールドしたホールド波形を生成している。
【００４７】
図７を参照してピッチ抽出の原理を説明する。まず、正側のみに注目して、ピッチ抽出部２０１におけるピッチ抽出時の動作を説明する。
（ａ）入力波形に応じたエンベロープ波形が生成出力されているとき（ホールド解除状態のとき）、入力波形の正から負へのゼロクロスを検出し、そのタイミングでエンベロープ波形の値をホールドする。例えば、エンベロープ波形７０２ａが生成出力されているとき、正から負へのゼロクロスのタイミング７１１で当該エンベロープ波形の値をホールドし、以後はホールド波形７０２ｂを出力している。
（ｂ）ホールド波形の値（ホールドレベル）と入力波形の値とを比較する。入力波形のレベルがホールドレベルに達しない間はホールドを維持する。入力波形のレベルがホールドレベルを超えたタイミングでホールド解除する。例えば、ホールド波形７０２ｂであれば、７１２に示すような入力波形のレベルがホールドレベルに達しない間はホールドを維持し、入力波形のレベルがホールドレベルを超えたタイミング７１３でホールド解除している。ホールド解除のタイミングで、ＣＭＰ＝１とする。ＣＭＰは周期計測のためのタイミング検出用フラグであり、１または−１をとる。
【００４８】
上記（ａ）と（ｂ）の動作を負側でも行なう。ただし、負側の（ａ）の動作では、入力波形の負から正へのゼロクロスのタイミングでエンベロープ波形の値をホールドすることになる。また、負側の（ｂ）の動作では、ホールド波形の絶対値と入力波形の絶対値とを比較して、入力波形の絶対値がホールドレベルの絶対値を超えたタイミングでホールド解除することになる。さらに、このホールド解除のタイミングで、ＣＭＰ＝−１とする。
【００４９】
以上の正側と負側の動作を合わせて、以下のような順序で動作する。
・正側の（ａ）
・負側の（ｂ）  ＣＭＰ＝−１に立ち下がり
・負側の（ａ）
・正側の（ｂ）  ＣＭＰ＝１に立ち上がり
・（以下、正側の（ａ）から繰り返し）
【００５０】
タイミング検出用フラグＣＭＰ＝１の区間をＣＭＰ＋と呼び、ＣＭＰ＝−１の区間をＣＭＰ−と呼ぶ。基本的に、ＣＭＰ＝１の立ち上がりのタイミングから次のＣＭＰ＝１の立ち上がりのタイミングまでの区間長さや、ＣＭＰ＝−１の立ち下がりのタイミングから次のＣＭＰ＝−１の立ち下がりのタイミングまでの区間が、入力音の基本的な周期（この周期は入力音の音高の１つの表現形態でありピッチ情報の１つである）と判定できる。従って、これらの区間長さを所定回数計測し、その平均などを求めて入力音の周期（ピッチ情報）とすればよい。ＣＭＰ＝１の立ち上がりのタイミングから次のＣＭＰ＝１の立ち上がりのタイミングまでの区間長さに基づいて周期を求めるのであれば、正側の処理のみ行なえばよく、負側の処理は不要である。また、ＣＭＰ＝１の立ち上がりのタイミング自体を区間の区切りとせずとも、例えば、ＣＭＰ＝１の立ち上がりのタイミングの直前のゼロクロス位置を求めることとし、そのようなゼロクロス位置の間の区間長さから周期を求めてもよい。要するに、ＣＭＰ＝１に立ち上がる（あるいはＣＭＰ＝−１に立ち下がる）タイミングに基づいて入力音の周期を求めればよい。なお、本実施形態では、できるだけ精度を高く検出するため、何回か連続して順次得られるＣＭＰ＋とＣＭＰ−の区間長さを用いて、幾つかのパターンで誤差検出を行ない、所定以上の誤差があるＣＭＰ＋やＣＭＰ−の区間長さはピッチを求めるのに使用しないようにしている。そのような誤差検出については、図１１のステップ１１１０で詳述する。
【００５１】
なお、上記（ｂ）の動作で入力波形のレベルがホールドレベルを超えたタイミングでホールド解除することに加え、前回のホールド解除のタイミングから所定のホールドタイムが経過したとき強制的にホールド解除するようにしている。例えば、図７のタイミング７１３でホールド解除してエンベロープ波形７０２ｃに移行した後、ゼロクロスタイミング７１４でホールド波形７０２ｄに移行するが、所定のホールドタイム７２１が経過したタイミング７１５で強制的にホールド解除し、入力波形のエンベロープ波形に移行している。これは、検出されたピッチ情報が安定してきたときは入力波形のレベルがホールドレベルを超えるタイミングがある程度予測でき、検出されたピッチ情報に応じたホールドタイム（例えば、求めた周期を所定％増とする）を過ぎるまで入力波形のレベルがホールドレベルを超えないときは、入力波形のその周期はピッチ抽出するのに使うデータとしては誤差が多いと考えられるので、当該周期のデータはピッチ抽出には用いずに次の周期の検出に進むようにしているものである。これにより、より精度の高いピッチ情報の検出が行なえる。
【００５２】
図８および図９を参照して、図７で説明した本実施形態におけるピッチ抽出方式のうち、特にエンベロープ波形をホールドして入力波形のレベルがそのホールドレベルを超えたときにホールド解除することの効果について説明する。
【００５３】
図８は、ホールドしない場合の例である。この例では、入力波形８０１に対しエンベロープ波形８０２を生成し、入力波形８０１がエンベロープ波形８０２を超えたタイミング（例えば、８１１や８１２）でフラグＣＭＰを立ち上げている。負側でも同様の処理を行なう。矩形波８０３は、１または−１を交互に取るフラグＣＭＰを示す。この方式では、例えば正側を見ると、８２１，８２２，８２３などが大きなピークを示しているので、この周期が本来の入力波形の周期を示していると認められるが、低次の高調波のピーク（例えば、８３１や８３２）があるため、これらの低次の高調波のピークをも検出してしまっている。結果として、フラグＣＭＰは矩形波８０３に示すような挙動をとるため、例えばタイミング８１１から８１２の区間を１周期と誤認してしまう。
【００５４】
図９は、図７で説明した本実施形態の方式によるピッチ抽出例である。図８と同じ入力波形９０１に対し同様にエンベロープ波形９０２を生成しているが、本実施形態では９０２ａ，９０２ｂに示すようにゼロクロスのタイミングでエンベロープ波形をホールドするようにしている。低次の高調波のピーク９３１，９３２はこのホールドレベルまで至らないので、フラグＣＭＰが変わるタイミングとして検出されていない。負側では低次の高調波のピークも検出しているが、正側で正常に検出しているため、矩形波８０３は立ち上がりのタイミングの周期が正確に入力音の周期を示すものとなっている。
【００５５】
図１０は、図２のピッチ抽出部２０１の詳細な機能ブロック図を示す。該ブロック図の動作は、ＰＣ上で所定のソフトウエアを動作させることにより実現している。
【００５６】
帯域制限フィルタ１００１は、入力音を、パラメータTYPEに基づいて、所定の帯域に制限する。パラメータTYPEは上述したようにノーマル、男声、または女声を区別するパラメータであり、その区別に応じて帯域制限するものである。その出力は比較部１００８のＡ端子および比較部１００９のＡ端子に入力する。また、帯域制限フィルタ１００１の出力は、正極性エンベロープフォロワ１００２、負極性エンベロープフォロワ１００３、ゼロクロス検出部１００４、およびレベル検出部１００５に入力する。帯域制限フィルタ１００１の出力は、図７の７０１に相当する。
【００５７】
正極性エンベロープフォロワ１００２は、図７〜図９で説明したように入力波形に対して正側のエンベロープ波形を生成する。正極性エンベロープフォロワ１００２の出力であるエンベロープ波形は、正極性側のホールド部１００６に入力する。ホールド部１００６は、ピッチ判定部１０１０から出力されるホールド開始信号Ｈによりホールド開始し、リセット信号Ｒによりホールド解除する。ホールド部１００６は、ホールド開始から解除までの間は、ホールド開始時点における入力波形の値をホールドしたホールドレベルを出力し続ける。また、ホールド解除から開始までの間は、入力波形の値をそのままスルーして出力する。ホールド部１００６の出力は、図７の７０２に相当する。
【００５８】
ホールド部１００６の出力は、比較部１００８のＢ端子に入力する。比較部１００８は、Ａ端子に入力する入力波形のレベルとＢ端子に入力するホールド部１００６の出力信号のレベルとを比較し、Ａ＞Ｂのタイミングでピッチ判定部１０１０にその旨を示す信号を出力する。
【００５９】
負極性エンベロープフォロワ１００３、ホールド部１００７、および比較部１００９は、それぞれ、正極性エンベロープフォロワ１００２、ホールド部１００６、および比較部１００８と同様の動作を負側の波形に対して行なう部分である。比較部１００９は、入力波形のレベルとホールド部１００７の出力信号のレベルとを絶対値で比較するものである。ゼロクロス検出部１００４は、帯域制限フィルタ１００１からの入力波形のゼロクロスを検出する。レベル検出部１００５は、入力波形のレベルが所定のスレショルドレベルＴＨを超えたことを検出する。
【００６０】
ピッチ判定部１０１０は、ピッチ抽出部全体の動作を制御する。特に、図７で説明した動作を実現するため、ピッチ判定部１０１０は、以下のようにホールド開始信号Ｈとリセット信号Ｒを出力する。ここでは、図７で説明した「正側の（ａ）」「負側の（ｂ）」「負側の（ａ）」「正側の（ｂ）」の各動作の順でピッチ判定部１０１０の動作を説明する。また、ホールドタイムのタイミングでホールド解除する動作についても含めて説明する。この説明では図７の番号で例示するものとする。
正側の（ａ）：ゼロクロス検出部１００４から入力波形が正から負へゼロクロスしたタイミング７１１を取得し、該タイミングでホールド部１００６にホールド開始信号Ｈを出力する。ただし、入力波形が正から負へゼロクロスするタイミングが来なくても、正側タイマ１０１１が所定のホールドタイムを超えたときは、ホールド部１００６にホールド開始信号Ｈを出力する。
負側の（ｂ）：比較部１００９から｜Ａ｜＞｜Ｂ｜となったタイミングを取得し、該タイミングでホールド部１００７にリセット信号Ｒを出力する。該タイミングで、負側タイマ１０１２をリセットしてホールドタイムの計時を開始するとともに、ＣＭＰ＝−１とする。
負側の（ａ）：ゼロクロス検出部１００４から入力波形が負から正へゼロクロスしたタイミングを取得し、該タイミングでホールド部１００７にホールド開始信号Ｈを出力する。ただし、入力波形が負から正へゼロクロスするタイミングが来なくても、負側タイマ１０１２が所定のホールドタイムを超えたときは、ホールド部１００７にホールド開始信号Ｈを出力する。
正側の（ｂ）：比較部１００８からＡ＞Ｂとなったタイミング７１３を取得し、該タイミングでホールド部１００６にリセット信号Ｒを出力する。該タイミングで、正側タイマ１０１１をリセットしてホールドタイム７２１の計時を開始するとともに、ＣＭＰ＝１とする。
【００６１】
以上のようにして、ピッチ判定部１０１０は、図７で説明した動作を実現する。また、ピッチ判定部１０１０は、順次得られるＣＭＰ＋とＣＭＰ−の区間長さからピッチを求める。さらに、求めたピッチに基づいてホールドタイムを調整する。
【００６２】
図１０（ｂ）は、正極性エンベロープフォロワ１００２の構成例を示す。正極性エンベロープフォロワ１００２は、乗算器１０２１、加算器１０２２、正極通過部１０２３、乗算器１０２５、加算器１０２６、遅延部１０２７、および乗算器１０２８を備える。正極通過部１０２３は、グラフ１０２４に示すように、入力値が正のときそのままスルーし、入力値が負のときは０を出力する。ループ回路の乗算器１０２５，１０２８の乗数や遅延部１０２７の遅延時間によって、入力信号から正側のエンベロープを生成する際の追随性（時定数）が決まる。負極性エンベロープフォロワ１００３も同様の構成である。負極性エンベロープフォロワ１００３の場合は、正極通過部１０２３の代りに負極通過部を用いる。
【００６３】
図１１は、ピッチ抽出部２０１（主としてピッチ判定部１０１０）の動作の概要を示すフローチャートである。ピッチ抽出の処理が開始すると、まずステップ１１０１で、ピッチセンスフラグPITCHSENSFLG（初めは０に初期化されているものとする）が０か否か判定する。０のときは、ステップ１１０２でレベル検出部１００５により入力波形のレベルチェックを行なう。次にステップ１１０３で、そのレベルLEVELが所定のスレッショルドTHより大きいか否か判定する。大きくないときはステップ１１０２に戻る。ステップ１１０３でLEVEL＞THになったときは、ステップ１１０４に進む。この判定は、入力信号のレベルが小さいときにピッチを検出すると誤差が大きくなるので、入力信号のレベルが所定値を超えた後に実際のピッチ検出の処理を開始するための判定である。
【００６４】
ステップ１１０４で、ゼロクロス検出部１００４により入力波形のゼロクロスカウントをチェックし、一定期間内のゼロクロス検出回数ZEROXを求める。ステップ１１０５で、ZEROX＜THZEROかどうか判定する。THZEROは予め決められた所定数である。そうでないときは、現在入力されている入力音は子音部分（ゼロクロスが多くピッチを検出できない範囲）であると判定できるので、ステップ１１０６で、その旨を示す判定結果を上位に出力し処理を終了する。ZEROX＜THZEROのときは、入力音が落ち着いてきてピッチ検出ができる範囲に入ったと見なせるから、ステップ１１０７でPITCHSENSFLGに１をセットし、ステップ１１０１に戻る。
【００６５】
ステップ１１０１でPITCHSENSFLGが０でないときは、ステップ１１０９で、図１０で説明した動作を行ない、ピッチ判定部１０１０でＣＭＰ＋とＣＭＰ−の区間長さを連続して所定数検出する。ステップ１１１０では、検出した所定数のＣＭＰ＋とＣＭＰ−の区間長さのデータについて幾つかのパターンで誤差検出を行なう。そのパターンは以下のようなものである。
（１）連続するＣＭＰ＋とＣＭＰ−の和（この和が１周期に相当する）を何区間か求める。注目する１区間の和について、その１つ前の和からの変化量を割合（例えば％）で求め、該変化量の割合をその１区間の誤差とする。
（２）連続するＣＭＰ−とＣＭＰ＋の和（この和が１周期に相当する）を何区間か求める。注目する１区間の和について、その１つ前の和からの変化量を割合（例えば％）で求め、該変化量の割合をその１区間の誤差とする。
（３）連続するＣＭＰ＋とＣＭＰ−とＣＭＰ＋とＣＭＰ−（すなわち２周期分の長さ）を順次求め、前回求めた２周期分の長さからの変化量を割合（例えば％）で求め、該変化量の割合を誤差とする。
【００６６】
ステップ１１１１では、ステップ１１１０で求めた全ての誤差が所定の規定値より小さいかをチェックする。全ての誤差が規定値より小さいときは、ステップ１１１２で、各区間計測データを平均化して、周期を求め、その結果をピッチ抽出結果として出力する。その後、ステップ１１１４でピッチセンスフラグに０をリセットしてリターンする。ステップ１１１１で規定値より大きな誤差があったときは、ステップ１１１３で検出エラーの通知を行い、ステップ１１１４に進む。
【００６７】
なお、ここでは全誤差が規定値より小さいときピッチ検出結果を出力し、規定より大きい誤差が１つでもあったときエラーを通知するように説明したが、実際には、上記（１）または（２）の誤差が規定値より大きい場合は、その誤差が検出された区間のデータを破棄し、他の区間のデータから平均を求めてピッチ抽出している。また、上記（３）の誤差で規定値より大きなものが検出された場合は、その誤差が検出された２周期のうち少なくともどちらか１つの周期は誤検出していると考えられるので、各周期について（１）や（２）の誤差を用いて厳密に評価したり、他の誤差検出法で誤検出の周期を求めてもよい。
【００６８】
さらに、ここではステップ１１０９でＣＭＰ＋とＣＭＰ−の区間長さを連続して所定数検出した後、それらの検出データの誤差評価を行ない、ピッチ抽出を行なっているが、ステップ１１１０から１１１３の処理をＣＭＰ＋またはＣＭＰ−が１つ得られる毎に繰り返し行ない、リアルタイムにピッチ抽出結果を出力することもできる。
【００６９】
次に、図７で説明したピッチ抽出動作の変形例を説明する。図１２は、図７と同様のピッチ抽出動作を示す波形信号図である。図７における７００番台の番号と図１２における１２００番台の番号とは下２桁が同じものが対応する部分である。図１２では、図７から変形した部分のみ説明する。特に「ゼロクロス検知」にヒステリシス特性を持たせたことが特徴である。すなわち、図１２の変形例では所定の閾値ｔｈ＋とｔｈ−が設定されている。正から負へのクロスのタイミングは波形７０１の値が前記閾値ｔｈ−を下回ったタイミング１２１１，１２１４とする。同様に、負から正へのクロスのタイミングは波形７０１の値が前記閾値ｔｈ＋を上回ったタイミングとする。その他は図７と同様である。
【００７０】
実際に楽音信号を処理するためにはＯＰアンプ、アナログコンパレータ、アナログディジタルコンバータなどの半導体デバイスが使用されるが、それら半導体デバイスの特性により、数ｍＶ〜μＶ単位のオフセットや温度ドリフトが生じる。従って、図１２の変形例のように、厳密なゼロクロスでなくゼロ近傍に所定の閾値を設定してやり、「負→正へのゼロクロス検知」は「正側の閾値レベルのクロス検知」、「正→負へのゼロクロス検知」は「負側の閾値レベルのクロス検知」を行なうように構成すれば、回路構成等により厳密なゼロ値の検出が困難な場合であっても安定した「ゼロクロス」の検知が行なえる。
【００７１】
なお、上記図３の鍵盤表示の変形例として、以下のような態様もある。図３の音高補正状況の表示３０２を表示するＬＥＤのインジケータに代えて液晶表示器等を用い、検出音高から音高補正量までを他の領域と区別できるよう区分けして表示させてもよい。また、音高がどの音名まで補正されているかを示すため、該音名の表示を添えるようにしてもよい。さらに、図３のような鍵盤表示に代えて、あるいは図３のような鍵盤表示に加えて、現在検出されている音高（音名）、現時点の音高補正量（どの音名まで補正されているかを示す音名表示でもよい）、補正目標の音高（音名）、現在検出されている音高と補正目標の音高との音高差（音程差）、および／または、補正途中の現時点の音高と補正目標の音高との音高差（音程差）を、グラフあるいは数値により表示するようにしてもよい。
【図面の簡単な説明】
【００７２】
【図１】この発明の実施の形態に係るピッチコレクターのハード構成図
【図２】ピッチコレクターの機能ブロック図
【図３】ピッチコレクターの設定ウインドウの表示例を示す図
【図４】鍵照度制御部の機能ブロック図
【図５】鍵の照度の変化例を示すタイミングチャート図
【図６】ピッチコレクター処理および設定ウインドウ表示処理のフローチャート図
【図７】ピッチ抽出部におけるピッチ抽出の方式を説明するための波形信号図
【図８】ホールドしない場合のピッチ抽出の方式を説明するための波形信号図
【図９】ホールドした場合のピッチ抽出の方式を説明するための波形信号図
【図１０】ピッチ抽出部の詳細な機能ブロック図
【図１１】ピッチ抽出部の動作の概要を示すフローチャート図
【図１２】ピッチ抽出の方式の変形例を示す波形信号図
【符号の説明】
【００７３】
１０１…中央処理装置（ＣＰＵ）、１０２…ＲＯＭ／ＲＡＭ、１０３…ハードディスク装置（ＨＤＤ）、１０４…ＱＷＥＲＴＹキーボード、１０５…ディスプレイ、１０６…オーディオＩ／Ｆ、１０７…ＭＩＤＩ  Ｉ／Ｆ、１０８…ネットワークＩ／Ｆ。
【図１】
0004840612.tif 000002
【図２】
0004840612.tif 000003
【図３】
0004840612.tif 000004
【図４】
0004840612.tif 000005
【図５】
0004840612.tif 000006
【図６】
0004840612.tif 000007
【図７】
0004840612.tif 000008
【図８】
0004840612.tif 000009
【図９】
0004840612.tif 000010
【図１０】
0004840612.tif 000011
【図１１】
0004840612.tif 000012
【図１２】
0004840612.tif 000013