明 細 書
演奏指示に従って演奏された自然楽器の楽音判定装置、楽音判定プロ グラムおよび該プログラムを記録した媒体
技術分野
[0001] 本発明は、演奏指示に従って演奏された自然楽器の楽音を判定する判定装置に 関し、特に、押鍵指示手段等、演奏指示手段によって指示されたとおりに演奏された 力どうかをパワースペクトルの照合によって行う自然楽器の楽音判定装置に関する。 背景技術
[0002] 例えば、特公平 2— 705号公報に開示されているように、鍵盤楽器の演奏を独習す るための押鍵指示手段を有する電子楽器が知られている。この電子楽器では、予め 記憶装置に記憶された演奏情報が表示回路に順次読み出され、鍵盤の各鍵に対応 して設けられた表示ランプがこの演奏情報に従って点灯される。演奏者が操作した 鍵はキースキャン回路で検出され、この操作鍵の音高が、表示ランプで指示された 演奏情報の音高と一致した場合に次の演奏情報が記憶装置から表示回路に読み出 される。
[0003] しかし、このような押鍵指示手段は、キースキャン回路を備えた電子楽器では容易 に実現できる力 キースキャン回路を持たないアコースティックピアノのような自然楽 器では実現が困難である。キースキャン回路に必要なキースィッチや表示ランプを鍵 毎に製品に後付けする作業が繁雑であり、手軽に行えないからである。
[0004] キースキャン回路を用いる代わりに、演奏による楽音の周波数分析により操作鍵を 検出することが考えられる。例えば、特公平 1—51200公報に記載された表示装置で は、音声信号の周波数分析結果に基づいて判定された音声信号の音高を、ディスプ レイ上の五線譜に音符として表示する。
[0005] しかし、ピアノ音のような倍音成分を多く含む楽音の音高検出では、押鍵の倍音成 分つまり高調波成分によって音高を誤判断してしまったり、オクターブ間隔の二つの 和音と該和音の下の単音との判別(例えば、 C3と C4の和音と C3単音との判別)がで きな力つたりすることがある。これらは互いに倍音構成が似ている力 である。
[0006] また、同時に複数の基音とその倍音を発生する楽器の演奏に対応した MIDIコード を生成する装置が提案されている(特許第 2890831号公報)。この装置では、演奏 楽音の波形データ力 基音に対応した周波数成分の波形データを抽出し、かつその エンベロープデータを検出する手段を備える一方、楽器が発生する各基音毎にその エンベロープ波形に対応して基音エンベロープデータを記憶している記憶手段を備 え、検出されたエンベロープデータと記憶されている基音エンベロープデータとを相 互相関によって比較し、楽器音を判定する。この装置では、構成が非常に複雑であ つて、特に、ソフトウェアでエンベロープデータの比較や楽器音の判定をリアルタイム で処理するのが困難である。
[0007] 特許第 2806047号公報には、シンセサイザで種々の楽器音を種々の音程で順次 組合わせて作成した信号と入力信号とを比較して楽音から採譜する装置が提案され ている。しかし、この装置では、和音も含めたすべての組み合わせの音と比較する必 要があるので、計算時間が膨大になるという問題がある。
発明の開示
発明が解決しょうとする課題
[0008] 上述のように、キースキャン手段を有して 、な 、アコースティックピアノでは、指示通 りに押鍵できた力どうかの判定が困難であるし、マイクロフォン力も入力された楽音か ら押鍵の正確さをリアルタイムで判定するのは容易ではないという問題点があった。
[0009] 本発明は、上記課題に鑑み、ピアノ等、自然楽器が指示通りに演奏できた力どうか を和音演奏も含めて容易に判定することができる自然楽器の楽音判定装置を提供す ることを目的とする。
[0010] また、本発明は、指示通りに演奏できた力否かを判断するために、演奏楽音の判断 要素としてのアタックを確実に検出できるようにすることを目的とする。
[0011] また、本発明は、演奏の仕方 (特に、強弱)によって、指示通り演奏できた力どうか の判定にばらつきが生じな 、ようにすることを目的とする。
[0012] また、本発明は、演奏情報に従って押鍵指示と自動伴奏とを行う場合に、演奏と自 動伴奏とのタイミングがずれにくくすることを目的とする。
[0013] また、本発明は、指示通りに演奏できた力どうかの判定が、外部ノイズによって影響
を受けるのを排除することを目的とする。
課題を解決するための手段
[0014] 上記の課題を解決し、目的を達成するための本発明は、演奏指示通りの演奏が行 われたときに、演奏指示の進行を次に進めることができる演奏指示装置のための自 然楽器の楽音判定装置にぉ 、て、自然楽器演奏音のパワースペクトルを計算するス ベクトル計算手段と、自然楽器音の音高毎のパワースペクトルを単音モデルとして記 憶するスペクトル記憶手段と、前記演奏指示装置による演奏指示に応答して前記ス ベクトル記憶手段から読み出された単音モデルと前記スペクトル計算手段で計算さ れた前記演奏指示に基づく演奏音のパワースペクトルとの距離を判定し、該距離が しきい値以内に近接しているときに前記演奏指示手段の進行を次に進める一致信号 を出力するスペクトル比較手段とを具備する。
[0015] 前記スペクトル記憶手段には、前記演奏指示に先立って演奏された自然楽器音の パワースペクトルを単音モデルとして記憶することができるようにする。
[0016] 本発明は、前記演奏指示が和音の演奏指示であるときに、前記スペクトル記憶手 段カゝら読み出された該和音の構成音の音高に対応する単音モデルを合成して前記 演奏音のパワースペクトルとの比較のために前記スペクトル比較手段に出力するス ベクトル合成手段を具備する。
[0017] 前記スペクトル比較手段は、単音モデルまたは単音モデルの合成に対する演奏音 のパワースペクトル不足分を、前記距離として計算するように構成する。
[0018] 前記自然楽器がピアノである場合に、前記スペクトル作成手段では、ピアノ演奏音 のアタック部分のパワースペクトルを計算するように構成する。
[0019] 本発明は、演奏指示に従って演奏された自然楽器演奏音のデジタルデータに対し て FFT窓毎に FFT処理をして該デジタルデータのパワースペクトルを計算する FFT 手段と、前記各 FFT処理毎に計算されたパワースペクトルのパワーが前回計算時よ り予定以上増大したか否かによって該自然楽器演奏音のアタックがあった力否かを 判断するアタック検出手段と、前記アタックがあつたと判定された以降に算出された パワースペクトルと予め記憶されて 、る自然楽器音の音高毎のパワースペクトルのう ち前記演奏指示に含まれる音高のものとの距離が予定のしきい値以内であるか否か
を判断する比較手段と、前記 FFT手段の FFT窓を、前後の FFT窓同士が部分的に 重複するように設定する手段とを具備する。
[0020] 本発明は、前記演奏指示を、予め選択された曲の演奏情報に従ってコンピュータ の表示装置に表示するとともに、前記距離が予定のしきい値以内であるときに、前記 演奏情報に従って次の演奏指示を表示する押鍵指示手段を具備する。
[0021] 本発明は、前記 FFT窓同士の重複期間を決定するシフト時間を予め設定しておき 、後続の前記 FFT手段および前記アタック検出手段の処理が開始される時間までに 、先行する前記 FFT手段および前記アタック検出手段の処理が終了しな 、場合に 前記シフト時間を拡大する手段をさらに備える。
[0022] 本発明は、前記演奏情報に基づいて、演奏速度が速い所定のフレーズを予め検 出する高速部検出手段と、前記フレーズに対応する演奏指示の演奏音に対しては、 前記アタック検出手段による処理を省略するとともに、前記比較手段による判断を、 アタックの有無に拘わらず、演奏指示後の入力音について実行する手段を備える。
[0023] 本発明は、入力音のデジタル信号をフーリエ変換する FFT手段と、押鍵指示に従 つて演奏された自然楽器音のパワースペクトルと、予め作成された自然楽器音のパヮ 一スペクトルの単音モデルのうち前記押鍵指示の音階に対応する単音モデルとが予 定の許容範囲内で一致して 、るかどうかを判定する判定手段とを備え、前記 FFT手 段による算出値をそのまま前記パワースペクトルとして使用するように構成される。
[0024] 本発明は、前記 FFT手段による算出値の高域側をカットして前記パワースペクトル として使用するように構成される。前記入力音がローパスフィルタを通じて入力される ように構成される。
[0025] 本発明は、前記パワースペクトルを所定の音量で正規化する正規化手段と、和音 の各構成音に対応する単音モデルを合成する合成手段とを備え、前記押鍵指示が 和音であった場合に、前記判定手段では、前記正規化手段で正規化された演奏音 のパワースペクトルと、前記第 2合成手段で合成され、その後に前記正規化手段で正 規化された単音モデルとの一致を判定するように構成される。
[0026] 本発明は、前記押鍵指示が和音であった場合、前記判定手段での一致判断のた めの許容範囲を和音の構成音数に応じて狭くさせる手段を備える。前記判定手段で
の一致判断のための許容範囲をパワースペクトルの総量が多いほど広くさせるように する。
[0027] 前記判定手段での一致判断のための許容範囲を、予想される残響に応じて該残 響が多いほど広くさせる手段を備える。
[0028] 本発明は、前記自然楽器の音高毎の演奏音のパワースペクトル特徴を予め設定し 、前記判定手段での一致判定結果を仮の判定とし、演奏音のパワースペクトルに前 記パワースペクトル特徴が含まれて ヽる場合に前記仮の判定を本判定とするようにす る。前記 FFT手段の周波数分解能は、低音域で細かくする。
[0029] 本発明は、複数の小節を含む楽譜、該楽譜上で次に演奏すべき音符を指示する 演奏指示記号および演奏タイミングを指示するタイミング記号を表示する表示手段と 、前記タイミング記号で指示されたタイミングで、前記演奏指示記号が示す音符を正 しく演奏できたかどうかを判定する演奏音判定手段と、前記演奏音判定手段によって 正しく演奏できたと判断されたときに前記演奏指示記号を次に演奏すべき音符の位 置に進める表示制御手段と、前記演奏タイミング記号および前記演奏指示記号の少 なくとも一方の表示が予め定めた時期まで進んだときに、現在表示されている楽譜に 続く楽譜によって、現在表示されている楽譜を先頭力 書き替えていく手段とを備え る。
[0030] 本発明は、前記楽譜の書き替えが、前記演奏タイミング記号および前記演奏指示 記号の少なくとも一方の表示位置と書き替え進行位置とを予定間隔に維持して進行 されるようにする。この予定間隔は、前記演奏タイミング記号および前記演奏指示記 号の少なくとも一方の表示位置と書き替え進行位置との水平方向での表示座標が一 致するように決定されて 、る。
[0031] 前記楽譜は、複数小節を含む段を上下に複数段配して 1画面に表示されていて、 前記予め定めた時期は、少なくとも 2段目以降の段に表示された各小節のいずれか の演奏タイミングに設定される。
[0032] 前記楽譜が 1画面に 1段表示されていて、前記予め定めた時期は、 1段落の半分ま で前記演奏タイミング記号および前記演奏指示記号の少なくとも一方の表示が進ん だときである。
[0033] 本発明は、予定の演奏情報に従って自動伴奏する伴奏手段と、前記演奏指示記 号が指示する音符が演奏されるタイミングを予定時間超過しても、前記演奏音判定 手段によって正しく演奏できたとの判定結果が得られないときに、自動伴奏を一旦停 止する手段とを備える。
[0034] 前記演奏音判定手段は、演奏指示に従って演奏された自然楽器演奏音のデジタ ルデータに対して FFT処理をして該デジタルデータのパワースペクトルを計算する F FT手段と、前記各 FFT処理毎に計算されたパワースペクトル力 予め記憶されてい る自然楽器音の音高毎のパワースペクトルのうち前記演奏指示に含まれる音高のも のとの距離が予定のしきい値以内であるか否かを判断する比較手段とからなり、前記 距離が予定のしきい値以内であるときに、正しく演奏できたと判定する。
[0035] 本発明は、モデル作成時に自然楽器を実際に弾くことにより発生された演奏音を取 り込み、該演奏音のパワースペクトルをモデルとして作成するモデル作成処理を同一 音高の音に対して複数回実行し、作成されたモデルが少なくとも 2回一致した場合に 当該モデルを記憶させる。
[0036] モデル作成に際しては、モデル作成時に、レッスンする楽曲の選択あるいは演奏 者のレベルに応じてモデル作成の音域を自動的に設定することができ、また、モデ ル作成時に自然楽器を実際に弾くことにより発生された演奏音とともに、演奏指示し た音高の音を音源力も発生させることができる。
[0037] また、まず、白鍵の全てについてのモデル作成を指示し、続いて黒鍵の全てにつ いてのモデル作成を指示することもでき、また、表示装置に鍵盤を表示させてモデル 作成時の押鍵位置を指示するとともに、前記表示装置に表示された鍵盤の所定位置 に目印表示を常時行うこともできる。
[0038] さらに、モデル作成時に自然楽器を実際に弾くことにより発生された演奏音の音量 を閾値と比較し、演奏音の音量が閾値を一定時間継続的に下回ったとき無音状態と 判断して次のモデル作成に移ようにすることができる。
[0039] モデル作成時に自然楽器を実際に弾くことにより発生された演奏音をレベル調整し て取り込み、取り込んだ演奏音をレベル調整された演奏音の音量および該レベル調 整状態で取り込んだノイズの音量に基づいて設定した閾値と比較してアタックを検出
し、アタックを検出したときの演奏音のパワースペクトルを算出してモデルとして記憶 する。
[0040] モデル作成時に自然楽器を実際に弾くことにより発生された演奏音の音量を閾値 と比較し、演奏音の音量が閾値を一定時間継続的に下回ったとき無音状態と判断し て次のモデル作成に移る。
[0041] モデル作成時に自然楽器を実際に弾くことにより発生された演奏音を取り込み、取 り込んだ演奏音のパワースペクトルを求め、モデルを作成しょうとする音高の基本周 波数より低い周波数成分をカットしたパワースペクトルをモデルとして記憶する。
[0042] モデル作成時に自然楽器を演奏しな!、状態で取り込んだ音のパワースペクトルを 求め、そのパワースペクトル中でパワー最大のスペクトルのパワー値をノイズ基準値と し、このノイズ基準値以下をカットした演奏音のパワースペクトルをモデルとして記憶 する。
[0043] モデル作成時に自然楽器を実際に弾くことにより発生された演奏音を取り込み、該 演奏音のパワースペクトルを求め、該パワースペクトル中の最も低 、周波数付近の成 分をカットしたパワースペクトルをモデルとして記憶する。
[0044] 上記アタック検出、無音検出、アクション音やノイズや DC成分除去の技術は適宜 組み合わせて採用することができ、また、本発明は装置あるいはプログラムとして構 成することができる。
発明の効果
[0045] 本発明によれば、演奏指示に応答して読み出された単音モデルのパワースぺタト ルと、演奏指示に従って演奏された楽器のパワースペクトルとが比較される。両者が しきい値の距離以内であれば演奏が指示通りに行えたと判定され、演奏指示が進行 される。特に、演奏指示に従って読み出された単音モデルが存在するので、演奏音 のパワースペクトルとの一致を判定するための比較が容易である。
[0046] 単音モデルが、現に演奏に使用する自然楽器の演奏音から作成されて記憶されて いるので、該自然楽器が調律が不十分な場合であっても、正しく演奏されればパヮ 一スペクトルが確実に一致して演奏の正確さを判定可能である。和音の判定にぉ 、 ても、単音モデルの合成パワースペクトルと演奏音のパワースペクトルと比較する処
理を 1度行うだけでょ 、ので、計算時間の短縮が可能である。
[0047] ピアノ等、残響音が多!、楽器にぉ 、て、パワースペクトルの不足分のみを距離とし て計算することにより、残響音の影響を抑制して現演奏音の正確さを判定することが できる。アタックが検出された時点力も判定の手順を実行できる、早期に判定が可能 であるので、演奏に合わせて円滑に演奏指示を進行させていくことができる。また、ピ ァノの演奏においては、アタックを検出することにより、同じ演奏音 (和音も含む)が連 続する場合であっても、個々の演奏音を確実に検出することができる。
[0048] 本発明によれば、演奏指示に従って演奏された楽器音のパワースペクトルの増大 量が予定以上であったときにアタックがあつたと判断される。そして、この楽器演奏音 のパワースペクトルが予め記憶されて 、る自然楽器音の音高毎のパワースペクトルの うち前記演奏指示に含まれる音高のものと一致したときに指示どおりに演奏されたと 判定されて演奏指示が進行される。
[0049] 特に、アタックの判断では FFT窓が部分的に重複するように設定されるので、先の FFT窓に関する計算に続く次の FFT窓に関する計算は、入力データが FFT窓の長 さの分だけ新たに入力されなくても、 FFT窓を部分的に重複させるためにシフトさせ た時間分のデータが先の計算後に入力されていれば実行できる。したがって、先行 する FFT窓の直後に現れているアタックは、次に FFT窓の長さ分のデータが入力さ れるまで待たなくても、先の FFT窓に関する計算に続けて短時間内に実行される次 の FFT窓に関する計算で検出される。
[0050] 前記演奏指示は、コンピュータの表示装置に表示され、演奏音のパワースペクトル と予め記憶されている自然楽器音のパワースペクトルとが略一致したときに演奏指示 が進行される。
[0051] コンピュータの能力に応じて、 FFT窓の重複時間を決定するシフト時間を調節する ことができるので、コンピュータの能力内でできるだけ高速でアタックの有無を判断す ることがでさる。
[0052] アルペジオ等、演奏速度が速い演奏ではアタックの有無を判断してからパワースぺ タトルの比較を行ったのでは、演奏者の速い演奏に判定が追いつかない。本発明に よれば、このような速い演奏においては、アタックの有無を判断することなくパワース
ベクトルの一致を判断することができる。
[0053] 本発明によれば、 FFT手段の出力であるパワースペクトルがそのまま演奏音一致 判定に使用される。例えば、アコースティックピアノは強く弾いたときと、弱く弹いたと きとで倍音の出方が変わるが、 FFTの出力値をそのまま使用すると、この倍音の出方 の変化が少ない。したがって、弾き方の強弱によって判定が異なるのを防止できる。 本発明によれば、高周波数側のパワースペクトルが除去されるので、弾き方の強弱 による判定のばらつきを回避できる。
[0054] 合成されたパワースペクトルに関して正規ィ匕をすることにより、強く弾いても大きい 音量が得られない高音側のパワースペクトルが正規ィ匕によって極端に修正されるの を防止することができる。
[0055] 和音の演奏にぉ 、て、構成音数が多 、場合に一致判定基準を厳しくして単音モデ ルの特徴が埋もれるのを回避する。
[0056] 高音側で低音側よりパワースペクトルの総量が少ないために異なる音高でも同音高 と判断されるおそれがある力 パワースペクトルの総量によって一致判断のためのし きい値が設定されるので、音高による影響を改善することができる。
[0057] 残響がある場合に入力音の音量と残響音の音量とが加算され、その値が正規化さ れるので、演奏音とモデルとがー致しにくいが、残響に応じてしきい値を設定できる ので、残響の影響を排除することができる。
[0058] オクターブ違 、など、似た音であると判断されるおそれがある音であっても、予め設 定してあるパワースペクトルに特徴がない場合に、誤って同一音高であると判断され るのを回避することができる。
[0059] 低音部で周波数分解能を細力べすることにより、半音の違いのパワースペクトルの 違 、をより確実に判別することができる。
[0060] 本発明によれば、表示された楽譜の途中まで演奏指示が進行したときに、現在表 示されている楽譜に続く未表示の楽譜によって、現在表示されている楽譜が、その最 初の部分から徐々に書き替えられていく。演奏者は、楽譜を最後まで読んだならば、 視線を楽譜の最初の部分に移すという定型の目の動きを行えばよいので、演奏すベ き部分を探して楽譜上を追うという必要がない。そのために演奏指示に従って演奏す
る練習を楽に行うことができる。
[0061] 次の音符を演奏すべきタイミングで自動伴奏が停止されて演奏音の判定の処理を 待つということはなぐ演奏が正しく行われた場合には自動伴奏は継続して行われ、 スムーズな伴奏に従って演奏の練習を行うことができる。
[0062] 演奏指示に従って行われる演奏音のパワースペクトル増大量が予定以上のときに アタックがあつたと判断される。そして、この楽器演奏音のパワースペクトルが予め記 憶されて 、る自然楽器音の音高毎のパワースペクトルのうち前記演奏指示に含まれ る音高のものと一致したときに指示どおりに演奏されたと判定されて演奏指示が進行 される。
[0063] 本発明によれば、作成されたモデルが少なくとも 2回一致した場合に当該モデルを 記憶するので、モデルを作成するときに外部環境によるノイズなどが発せられたとし ても誤りなぐその楽器カゝら発生される演奏音に対応するモデルを誤りなく作成できる
[0064] また、レッスンする楽曲の選択あるいは演奏者のレベルに応じてモデル作成の音域 を自動的に設定することにより、必要な単音のモデルを作成するだけでよいので、モ デル作成を効率的に誤りなく行うことができる。また、モデル作成に際して、モデル作 成時に楽器を実際に弾くことにより発生された演奏音とともに、演奏指示した音高の 音を音源力 発生させることにより、楽器力 発せられるモデル作成演奏音と聴き比 ベて押鍵の間違いを演奏者に気付力せることができる。
[0065] また、まず、白鍵の全てについてのモデル作成を指示し、続いて黒鍵の全てにつ V、てのモデル作成を指示するようにしたり、表示装置に鍵盤を表示させてモデル作 成時の押鍵位置を指示するとともに、前記表示装置に表示された鍵盤の所定位置に 目印表示を常時行うようにしたりすれば、誤ったモデルが作成される可能性をさらに 少なくし、初心者でも間違 ヽなく容易にモデルを作成できるようになる。
[0066] さらに、無音状態を検出して次のモデル作成に進ませることにより、先のモデル作 成での演奏音の残響の影響をなくすことができるととみに、安心して次々とモデルを 作成することができる。
[0067] 本発明によれば、モデル作成時に演奏音の音量を適当に調整できるとともに、レべ
ル調整されて入力された演奏音のアタックを良好に検出でき、演奏音の音量が適当 でなければその旨のメッセージを送出してほぼ一定の強さで弹くように促すことがで きるので、誤りのな 、モデルを作成することができる。
[0068] また、無音状態を検出して次のモデル作成に進ませることにより、先のモデル作成 での演奏音の残響の影響をなくすことができるとともに、安心して次々とモデルを作 成することができる。
[0069] さらに、モデル作成時にモデルの基本周波数以下のパワースペクトルを取り除いた り、モデルとするパワースペクトルの中力 ノイズのパワー最大値よりも低いパワーの パワースペクトルを取り除 、たり、演奏音のパワースペクトルにお 、て最も低 、周波数 付近の成分や DC成分を取り除くことにより、アクション音やノイズや DC成分の影響 がモデルに出な 、ようにすることができる。
図面の簡単な説明
[0070] [図 1]本発明の一実施形態に係るピアノの押鍵判定装置のシステム構成を示すプロ ック図である。
[図 2]演奏情報の一例を示す図である。
[図 3]押鍵指示表示の一例を示す図である。
[図 4]スペクトル作成部の要部機能を示すブロック図である。
[図 5]スペクトル比較部の要部機能を示すブロック図である。
[図 6]和音用モデル作成のための要部機能を示すブロック図である。
[図 7]本発明の第 2実施形態に係るピアノのレッスンシステムの構成を示すブロック図 である。
[図 8]第 2実施形態に係るレッスンシステムの要部機能ブロック図である。
[図 9]モデル作成フェーズに関する CPUの処理を示すフローチャートである。
[図 10]レッスンフェーズに関する CPU1の処理を示すフローチャートである。
[図 11]入力データと FFT窓の位置との関連を示す図である。
[図 12]入力データと処理タイミングとの関係を示す図である。
[図 13]アタック検出の遅れを解消できる入力データの入力タイミングと処理タイミング との関係を示す図 (その 2)である。
[図 14]アタック検出の遅れを解消できる例に係る入力データの入力タイミングと FFT 窓の位置との関連を示す図である。
[図 15]技量レベルに応じた音域を表示画面上で設定するための表示装置上の表示 例を示す図である。
[図 16]音域設定の際の入力の参考になるように表示される画面の例を示す図である [図 17]モデル押鍵指示の表示例を示す図である。
[図 18]第 3実施形態に係るスペクトル比較部の要部処理を示すフローチャートである
[図 19]レッスンフェーズで入力音が和音であるときのパワースペクトル比較のための C PUの機能を示すブロック図である。
[図 20]鍵を強めに弹 、たときのアタック時のパワースペクトルの例を示す図である。
[図 21]鍵を弱めに弾いたときのアタック時のパワースペクトルの例である。
[図 22]強めに弾いた音の logをとらない FFT値でパワースペクトルを示した図である。
[図 23]弱めに弾いた音の logをとらない FFT値でパワースペクトルを示した図である。
[図 24]logをとらない FFT値をモデルとした場合の演奏音判定のための CPUの要部 機能を示す図である。
圆 25]表示画面上に描かれた押鍵指示を伴う楽譜例を示す図である。
圆 26]楽譜が書き替えられている途中の押鍵表示の例を示す図である。
圆 27]楽譜が書き替えられた後の押鍵表示の例を示す図である。
圆 28] 1段で楽譜を表示した押鍵指示の例を示す図である。
[図 29]押鍵指示の処理を示すフローチャートである。
[図 30]楽譜を一画面に複数段ずつ表示する処理を示すフローチャートである。
[図 31]楽譜を一画面に一段ずつ表示する処理を示すフローチャートである。
[図 32]モデル作成フェーズの処理を示すフローチャートである。
[図 33]アタック検出処理の説明図である。
[図 34]マイクロフォンと AZD変^^の部分の詳細構成を示すブロック図である。
[図 35]音量表示の例を示す図である。
[図 36]音高対音量最大値の特性図である。
[図 37]モデル作成時の押鍵指示の例を示す図である。
[図 38]最低音 (ノートナンパ 21)の鍵の離鍵後の音量変化を示す図である。
[図 39]最低音 (ノートナンパ 48)の鍵の離鍵後の音量変化を示す図である。
[図 40]図 39の部分拡大図である。
[図 41]アタック直後のパワースペクトルを示す図である。
[図 42]アタックから約 1.4秒後のパワースペクトルを示す図である。
[図 43]アタックから約 4.1秒後のパワースペクトルを示す図である。
[図 44]アタックから約 5.8秒後のパワースペクトルを示す図である。
[図 45]モデル作成音(ノートナンパ 50)を押鍵したときに得られたパワースペクトルを 示す
[図 46]最高音 (ノートナンパ 108)を押鍵したときに得られた音量変化を示す図である
[図 47]レッスンフェーズの処理を示すフローチャートである。
[図 48]比較処理の例を示すフローチャートである。
[図 49]マイクロフォンから取り込まれた音のスペクトルの例を示す図である。
[図 50]ノイズ除去前とノイズ除去後のパワースペクトルの例を示す図である。
[図 51]DC除去前と DC除去後の波形の例を示す図である。
符号の説明
[0071] 3Α· ··スペクトル記憶部、 3Β· ··演奏情報記憶部、 8…表示装置、 10…マイクロ フォン、 12· ··スペクトル作成部、 14· ··スペクトル比較部、
15· ··押鍵指示部、 19· ··モード切り換え部、 81· ··表示画面、 83· ··消しゴムマー ク、 101· ··マイクボリューム、 102· ··マイクアンプ、 121· ··フーリエ変換部、 122 · · ·アタック 出 §、 123· ··ノ ッフ: τ、 124"'レべノレ 出§^、 125· ··ノ ッフ: τ、 12 6…レベル増加分算出部、 127· ··レベル増加判定部
発明を実施するための最良の形態
[0072] [第 1実施形態]
以下、図面を参照して本発明を詳細に説明する。図 1は本発明の一実施形態に係
る楽音判定装置であって、ピアノの押鍵判定装置のシステム構成を示すブロック図で ある。押鍵判定装置 1は、押鍵指示通りの楽音がアコースティックピアノ Pで弾かれた ときに押鍵指示を次のステップに進める。押鍵判定装置 1は、マイクロフォン 10、 A/ D変 6、スペクトル作成部 12、スペクトル記憶部 3A、スペクトル比較部 14、演奏 情報記憶部 3B、押鍵指示部 15、モード切り換え部 19および表示装置 8からなる。こ れら構成要素のうちマイクロフォン 10を除く押鍵判定装置 1の各構成要素は、 CPU, ROM, RAM,およびマイクロフォン 10から入力される音声信号を受け入れるインタ フェース等を備えるパーソナルコンピュータ上のソフトウェアおよびハードウェアによつ て実現することができる。表示装置 8としては液晶ディスプレイやブラウン管等、パー ソナルコンピュータの処理結果を表示するための周知の表示手段を使用することが できる。演奏情報記憶部 3Bは、外部記憶装置としてもよい。
[0073] 演奏情報記憶部 3Bには、楽曲の演奏情報が記憶されている。図 2は、演奏情報の フォーマット例を示す図である。演奏情報には、少なくともイベントデータ、およびィべ ントデータの読み出しタイミングを指示するタイミングデータとが記憶されて 、る。ィべ ントデータはノートナンパを含むノートオンデータおよびノートオフデータ力もなる。タ イミングデータは、例えば、一つのイベント終了力 次のイベント発生までの時間情報 として設定される。イベントデータとタイミングデータは、図示のように、アドレス進行に 従って記憶される。
[0074] 図 1に戻り、押鍵検出のために演奏音と比較される単音モデルの作成について説 明する。単音モデルの作成時には、パーソナルコンピュータの入力キーを使用して モデル作成指示を入力することができる。このモデル作成指示に応答してモード切り 換え部 19がスペクトル記憶部 3A側に切り換えられる。ピアノ Pの各鍵の演奏音を 1音 ずつマイクロフォン 10で取り込み、単音モデルを作成する。
[0075] まず、ピアノ Pの演奏音はマイクロフォン 10で採取され、マイクロフォン 10から AZD 変 6に入力される。 AZD変 6は、マイクロフォン力も入力されたアナログ楽 音信号をデジタル楽音信号に変換する。スぺ外ル作成部 12は、高速フーリエ変換 機能を備え、 AZD変換器 6から入力されたデジタル楽音信号をフーリエ変換してパ ワースベクトルを計算する。単音モデル作成時には、モード切り換え部 19はスぺタト
ル記憶部 3Aに切り換えられて 、るので、計算されたパワースペクトルは該スペクトル 記憶部 3Aに入力され、各鍵毎つまりノートナンパ毎に単音モデルとして記憶される。 スペクトル記憶部 3Aに記憶された単音モデルを保存しておくため、フレキシブルディ スク等の外部記憶装置 9を有することができる。単音モデルを、演奏のつど作成する 手間を省くためである。
[0076] ピアノ Pの練習時には、押鍵指示開始指示に応答して演奏情報記憶部 3Bから押 鍵指示部 15に演奏情報が読み出され、表示装置 8に押鍵指示を表示するための表 示データが作成される。押鍵指示開始指示はパーソナルコンピュータ上力 入力キ 一を使用して入力することができる。表示装置 8は押鍵指示部 15から供給される表 示データに従って押鍵指示表示をする。押鍵指示表示の例は、図 3に関して後述す る。
[0077] さらに、押鍵指示部 15では、押鍵すべき音高つまりノートナンパが演奏情報のノー トオンデータ中力 抽出され、スペクトル記憶部 3Aに入力される。スペクトル記憶部 3 Aは、入力されたノートナンパに対応する単音モデルを出力し、該単音モデルはスぺ タトル比較部 14に入力される。
[0078] 一方、表示装置 8上の押鍵指示表示に従って演奏されたピアノ Pの各鍵の演奏音 がマイクロフォン 10で取り込まれる。ピアノ Pの演奏音はマイクロフォン 10から AZD 変換器 6に入力され、 AZD変換器 6は、入力されたアナログ楽音信号をデジタル楽 音信号に変換する。スぺ外ル作成部 12は、高速フーリエ変擁能を備え、入力さ れたデジタル楽音信号をフーリエ変換してパワースペクトルを計算する。練習時には 、モード切り換え部 19は押鍵指示開始指示に応答してスペクトル比較部 14側に切り 換えられて 、るので、計算された演奏音に対応するパワースペクトルはスペクトル比 較部 14に入力される。
[0079] スペクトル比較部 6では、スペクトル作成部 12で作成されたピアノ Pの演奏音のパヮ 一スペクトルと、スペクトル記憶部 3Aから入力された単音モデルとが比較される。ノ ワースベクトルの比較についてはさらに後述する。
[0080] パワースペクトルの比較の結果、両者が一致していると判断された場合 (一致の判 断基準は後述する)、スペクトル比較部 14は一致信号を押鍵指示部 15に入力する。
押鍵指示部 15は、一致信号に応答して、演奏情報記憶部 3Bの読み出しアドレスを 進めて次の演奏情報を読み出す。表示装置 8の表示は読み出された演奏情報に従 つて更新された表示データに従って押鍵指示を進行させる。
[0081] パワースペクトルの比較の結果、両者が一致して 、な 、と判断された場合は、スぺ タトル比較部 14から一致信号が出力されないので、次の演奏情報は読み出されない 。演奏者が演奏しなおし、その演奏音のパワースペクトルが単音モデルと一致すれ ば、押鍵指示は進行する。パワースペクトルが一致しない場合に、表示装置 8に再度 の押鍵を促すエラー表示を行えるようにするのが好まし 、。
[0082] 図 3は、表示装置 8の表示画面の一例を示す図であり、同図ではピアノロールつま りスクロール表示方式で押鍵指示をして 、る。表示画面 81の下部に鍵盤図形 Kが表 示されていて、その上方に押鍵指示マーク Mが表示される。表示画面 81は上下が時 間軸であり、押鍵指示マーク Mは鍵盤図形 Kに近いほど、早い時期に弾くべき楽音 であることを意味する。押鍵指示マーク Mは、押鍵すべき鍵に対応する位置に、音符 長さに対応した長さで表示され、前記パワースペクトルが一致すると、下方にスクロー ルされる。現在押鍵されているべき鍵はマーク mで示される。小節線 BLで示すように 、この例では 2小節分の押鍵指示が同時に一画面上に表示されている力 同時に表 示する画面の大きさつまり表示される演奏情報の範囲は任意である。このように演奏 情報に基づく押鍵指示マークと鍵盤図形とを同時に表示し、押鍵指示マークをスクロ ール表示する演奏指示装置は、例えば、特開平 9- 305171号公報に開示されてい る。
[0083] 押鍵指示の表示形式は、鍵盤図形に対してマークをスクロールする方式に限らず、 楽譜形式、つまり五線譜上に表示された音符をスクロールする方式であってもよい。 また、ピアノ Pの鍵盤に沿って各鍵毎に対応する位置に LED (発光ダイオード)を配 した表示器を設置し、押鍵すべき鍵に対応する LEDを点灯させて押鍵指示を表示 するものであってもよい。
[0084] 次に、スペクトル作成部 12を詳述する。図 4は、スペクトル作成部 12の要部機能を 示すブロック図である。スペクトル作成部 12は、フーリエ変換部 121、アタック検出部 122、およびバッファ 123を備えることができる。アタック検出部 122は、レベル検出
部 124、バッファ 125、レベル増加分算出部 126、およびレベル増加判定部 127を 有する。
[0085] フーリエ変換部 121は、入力されるデジタル楽音信号を所定時間毎に抽出し、その デジタル楽音をスペクトル変換してバッファ 123に出力する。レベル検出部 124は、 バッファ 123に出力されたパワースペクトルの各周波数成分のレベルを検出してバッ ファ 125に格納する。レベル増加分算出部 126は、レベル検出部 124から入力され る今回のパワースペクトルとバッファ 125に保持されている前回検出されたパワース ベクトルの各周波数成分のレベルの差を合計し、前回算出時からのレベル増加分を 算出する。レベル増加判定部 127は、レベル増加分が予定のしきい値を超えたとき に、アタック検出と判断してバッファ 123からパワースペクトルを前記スペクトル記憶部 3Aに読み出す。
[0086] このように、入力されたデジタル楽音信号のアタックを検出してそのパワースぺタト ルを抽出するようにするのは、なるべく早い時期に、正しい押鍵がされたかどうかを検 出するのが望ましいからである。先に弾いた音の残響がある演奏時のアタック検出で は、このようにパワースペクトルのレベル増加分に基づ!/、てアタック検出するのが好ま しい。しかし、単音モデル作成時のアタック検出では、このような方法によらず、単に 音量または振幅が、予想されるノイズの音量または振幅以上に設定したしきい値を超 過したときにアタック検出と判断する方法でもよ 、。単音ずつモデル作成のために演 奏音を入力すればょ 、ので、残響等を考慮しなくてょ 、からである。
[0087] 次に、スペクトル比較部 14を詳述する。図 5は、スペクトル比較部 14の要部機能を 示すブロック図である。スペクトル比較部 14は、距離算出部 141、距離合計部 142、 および距離判定部 143を備える。距離算出部 141は、スペクトル記憶部 3Aから入力 されるパワースペクトルとスペクトル作成部 12から入力されるパワースペクトルとのュ ークリツド距離を各周波数成分毎に算出する。ユークリッド距離によれば、二つの値 の差が 2乗されて、その結果、該差が強調されるので、二つの値の一致の判別が容 易である。
[0088] 距離合計部 142は、各周波数成分毎のユークリッド距離を合計する。距離判定部 1 43は、ユークリッド距離の合計が予定のしきい値以下であるかどうかによって、両パヮ
一スペクトルが一致しているかどうかを判定し、一致していれば、一致信号を出力す る。
[0089] ノ ヮ一スペクトルの比較に際して、距離算出部 141では、スペクトル作成部 12から 入力されるパワースペクトルのレベル力 スペクトル記憶部 3A力 入力されるパワー スペクトルのレベルに対してどれだけ不足しているかを各周波数成分毎に算出し、距 離合計部 142では、その不足分の合計を算出するようにしてもよい。ピアノ等、残響 が多く残る楽器には、この方が好都合である。
[0090] 距離判定部 143で使用されるしきい値は、固定値にするのではなぐ前回のァタツ ク検出時力も今回のアタック検出時までの時間に応じて変えることができる。すなわち 、該時間が短い場合にはしきい値を大きくしてパワースペクトルの一致判定基準を緩 ぐ該時間が長い場合はしきい値を小さくしてパワースペクトルの一致判定基準を厳 しくする。
[0091] 単音モデル作成時と演奏時とでは音量が異なるので、このような音のパワースぺク トルを互いに比較すると正しい判定ができない。そこで、 AZD変 6から入力され るデジタル楽音信号を正規化する手段が設けられる。正規化は、該デジタル楽音信 号の振幅を測定し、その測定値が所定値になるようにレベル補正することである。
[0092] 練習時の入力音が和音であるときには、あら力じめスペクトル合成を行って比較を 行う。図 6は、和音の押鍵比較をするための機能を示すブロック図である。スペクトル 記憶部 3Aは、押鍵指示部 15から和音の押鍵指示が入力されたときに、該和音を構 成する各音のパワースペクトルをスペクトル合成部 20に出力する。和音の合成は各 音のパワースペクトルつまり単音モデルを加算して行う。単に単音モデルを加算する のではなぐ各音の弾くべき音量に従って単音モデルに重み付けをした後、そのパヮ 一スペクトルを加算してもよい。弾くべき音量の大きさは、例えば、演奏情報に含める ことができるベロシティデータによって判断することができる。
[0093] 和音演奏時は、表示装置 8上の押鍵指示表示に従ってピアノ Pで演奏された和音 演奏音がマイクロフォン 10で取り込まれる。ピアノ Pの演奏和音はマイクロフォン 10か ら AZD変 6に入力されて和音のデジタル信号に変換されてスペクトル比較部 1 4に供給される。
[0094] 上記実施形態では、単音モデルをピアノ Pの演奏音に基づいて作成し、この単音 モデルとピアノ Pの演奏音との比較を行った。これによつて、ピアノ Pが仮に調律が正 しく行われていない場合であっても、同じピアノ Pの演奏音同士の比較で判断するの で、押鍵指示通りに弾けたかどうかの判断が確実である。
[0095] しかし、本発明は、これに限らず、他のピアノの演奏音から別途作成した単音モデ ルを外部記憶装置 19からスペクトル記憶部 3Aに読み込んで使用する場合にも適用 できる。
[0096] また、パワースペクトルの単音モデルを使用するのに限らず、例えば、演奏音の波 形を記憶して単音モデルとしてもよいしパワースペクトルのピーク位置つまり基本波 の周波数を単音モデルとしてもよい。これらの場合は、スペクトル比較部 14では、ピ ァノ Pの演奏音の波形や基本波の周波数を単音モデルと比較するのはもちろんであ る。
[0097] さらに、本発明は、ピアノの押鍵判定に限らず、オルガン、アコーディオン、ハーモ ユカ、リコーダ、ギター等、各種自然楽器の演奏音判定に適用することができる。
[0098] [第 2実施形態]
次に、本発明の第 2実施形態を説明する。アタックのパワースペクトル同士を比較し て演奏音が正しいかどうかを判断する場合、アタックは次のようにして検出される。ま ず、マイクロフォンからの入力音に対する高速フーリエ変換 (FFT)を行う。そして、検 出されたパワースペクトル力 前回検出されたパワースペクトルに対してどの程度増 カロしているかを算出する。そして、この増加程度がしきい値以上のときにアタックと判 断する。
[0099] FFTは所定の FFT窓の長さ毎に区切って実施され、当該窓時間でアタックが検出 されない場合は、次の窓時間内で再度 FFTを実施する。しかし、 FFTの窓時間は長 V、ので、このように窓の長さ毎に区切って処理を行って!/、たのではアタックの検出が 遅れてしまう。特に、アルペジオのように複数音を素速く演奏する場合には処理が間 に合わず、アタックを検出できない。例えば、アコースティックピアノの最高音の場合、 音の持続時間が約 40m秒程度しかな!/、が、 11025Hzで 1024ポイントの FFTを行 つた場合、窓時間が約 93m秒となり、アタックの瞬間を捉えることができない。
[0100] 第 2実施形態では、指示通りに演奏できた力どうかを判定する際に必要なアタック の検出を確実に行うことができるようにする。
[0101] 図 7は、本発明の楽音判定装置の第 2実施形態に係るピアノのレッスンシステムの ブロック構成図である。このレッスンシステムでは、予め準備された演奏情報に基づ いてピアノの鍵もしくは音高の指示、および押鍵タイミングの指示を含む押鍵指示を 表示し、演奏者はこの押鍵指示に従って順次演奏を進めていく。具体的処理は、モ デル作成フェーズとレッスンフェーズとからなる。モデル作成フェーズでは、レッスン に先立ち、レッスンに使用するピアノの各鍵の発生音のパワースペクトルを単音モデ ルとして記憶する。そして、レッスンフェーズでは、押鍵指示のための表示を行うととも に(押鍵指示の例は、図 3に関して述べた)、押鍵指示に従って行われる演奏音のパ ワースベクトルと前記単音モデルとを比較し、両者のパワースペクトルが予定の距離 内にあれば押鍵指示を先に進める。
[0102] 図 7に示すレッスンシステムは、 CPU1、 ROM2、 RAM3、音源装置 4、スピーカ 5、 AZD変翻 6、入力装置 (キーボードやマウス) 7、および表示装置 8を含むパーソ ナルコンピュータで要部を構成することができる。表示装置 8としては液晶ディスプレ ィゃブラウン管等、パーソナルコンピュータの処理結果を表示するための周知の表示 手段を使用することができる。パーソナルコンピュータには外部記憶装置 9が接続さ れ、かつ A/D変翻 6を介してマイクロフォン 10が接続される。マイクロフォン 10は ピアノ Pの発生音を採取するために設けられるものであり、ピアノ P内に配置されるの が望ましい。
[0103] 図 8は、 CPU1の機能つまり判定装置の構成を示すブロック図である。 CPU1は、 音量測定部 11、スペクトル作成部 12、アタック検出部 13、スペクトル比較部 14、押 鍵指示部 15、およびフェース切り換え部 19を要部機能として備える。すなわち、これ ら要部機能は、 CPU1で実行されるソフトウェアとして実現される。もちろん、これらの 要部機能はハードウェアで構成してもよ 、。
[0104] 音量測定部 11は、マイクロフォン 10から AZD変 6を通じて入力された音のレ ベル (音量)を検出する。スペクトル作成部 12は、マイクロフォン 10および AZD変換 器 6を通じて入力されたデジタル楽音信号からパワースペクトルを得る FFT機能を有
する。モデル作成フェーズでは、フェーズ切り換え部 19がスペクトル記憶部 3A側に 切り替えられ、 FFTによって得られたパワースペクトルは RAM3内のスペクトル記憶 部 3Aに記憶される。パワースペクトルは外部記憶装置 9に記憶してもよい。
[0105] レッスンフェーズでは、フェーズ切り換え部 19がスペクトル比較部 14側に切り替えら れる。アタック検出部 13は、検出されたパワースペクトルに基づいてアタックを検出す る。スペクトル比較部 14はモデル作成フェーズおよびレッスンフェーズにおいて、そ れぞれスペクトル作成部 12で作成されたパワースペクトルの距離を比較して演奏が 押鍵指示通り行われたかどうかを判断する。押鍵指示部 15は、演奏情報記憶部 3B に格納されている演奏情報に従って表示装置 8への押鍵指示表示のための表示デ ータを作成する。表示データはレッスンフェーズで入力装置 7から入力される演奏開 始指示に応答して押鍵指示部 15で作成され、表示装置 8に入力される。
[0106] 図 9は、モデル作成フェーズに関する CPU1の処理を示すフローチャートである。ス テツプ S1では、曲の選択を促す画面を表示装置 8に表示する。入力装置 7を使用し て選曲がなされたならば (ステップ S2肯定)、ステップ S3に進んで、選ばれた曲の演 奏情報を演奏情報記憶部 3Bから読み出し、その演奏情報を走査してその曲の音域 を検出する。この音域で単音モデルを作成するためである。単音モデル作成する音 域は、選曲に従って決定するのでなくてもよい。例えば、演奏者が直接音域を入力し てもよいし、選曲に代えて技量のレベルを選択できるように画面表示し、この画面表 示に従って技量レベル力も決定してもよい(図 15に関して後述)。また、演奏者が直 接音域を入力する際の参考となるように選曲された曲の音域を表示してもよい(図 16 に関して後述)。
[0107] ステップ S4では、収録する単音モデルの音高を決定する。最初は上記音域中の最 低音を収録音高として決定する。ステップ S5では、単音モデル収録用の押鍵指示( レッスンフェーズでの押鍵指示と区別して、「モデル押鍵指示」と 、う)として表示装置 8に収録音高を表示する(図 17に関して後述する)。モデル押鍵指示は、表示装置 8 によらず音源装置 4を使って音高に対応した楽音データを作成し、スピーカ 5で発音 させるようにしてもよい。また、発音による指示は表示装置 8による表示と併せて行つ てもよい。
[0108] ステップ S6では、音量測定部 11での音量測定を開始する。音量測定は離鍵指示 まで継続される。ステップ S7で音量がアタック検出のためのしきい値を超えているか 否かが判断され、この判断が肯定ならばアタックを検出したとしてステップ S8に進む 。ステップ S8では、 FFTによりパワースペクトルを計算し、このパワースペクトルおよ びパワースペクトル計算時の音量を RAM3に一時的に保存する。
[0109] ステップ S9では、表示装置 8に離鍵を促す指示をする。離鍵指示は表示装置 11で の表示またはスピーカ 5による音もしくは音声の指示であってもよい。ステップ S10で は、音量が無音検出のためのしきい値以下になったかどうかを判断する。音量がこの しき 、値以下になれば実質的に無音と判断され、ステップ S 11に進む。
[0110] ステップ S 11では、モデル押鍵指示から離鍵指示までの音量の最大値が許容範囲 に入っているかどうかが判断される。最大音量が許容範囲にない場合は、極端に強く または極端に弱く弾かれたためと判断され、単音モデルとして適当でないので、再度 押鍵を要求するためにステップ S 5に進む。アタックを検出したとみなしたときの音量 力も判断するのではなぐ測定した音量の最大値によって押鍵強さが適当であるかど うかを判断するのは、アタック時点で音量が最大になるとは限らず、通常はアタック検 出後に音量は最大値となるからである。なお、押鍵強さは、音量によって判断するの に代えて振幅の最大値によって判断してもよ 、。
[0111] 正しく押鍵されたと判断されたならば、ステップ S 12に進み、ステップ S8で一時的に 保存したパワースペクトルおよび音量をこの音高の単音モデルとして対応づけてスぺ タトル記憶部 3Aもしくは外部記憶装置 9に記憶する。
[0112] ステップ S11が否定の場合は、押鍵強さを変えて弾くようにメッセージを表示してか らステップ S5に進むようにしてもよい。例えば、許容範囲に対して音量が大きいときは 「もっと弱く弾いてください」と表示し、許容範囲に対して音量が小さいときは「もっと強 く弾いてください」と表示する。
[0113] ステップ S 13では、ステップ S3で決定された音域の最終音 (最高音)の単音モデル を作成したかどうかを判断し、最終音の単音モデルを作成していたのでなければ、ス テツプ S14で、音高を 1段階高くした後、ステップ S5に進む。ステップ S14では、音高 を音階に従って直上の音高に上げる、つまり音程を 1度上げるのではなぐ白鍵およ
び黒鍵について、それぞれ個別に連続して押鍵できるように音高を上げていくのがよ い。音階に従って順に音程を 1度ずつ上げていくと白鍵と黒鍵を交互に弾く場合が 生じ、モデル押鍵指示と対応しな!ヽ鍵を弾く操作エラーが起こりやす ヽからである。
[0114] 最終音まで単音モデルを作成したならば、ステップ S13は肯定となって、このモデ ル作成フェーズの処理を終了する。
[0115] 図 10は、レッスンフェーズに関する CPU1の処理を示すフローチャートである。ステ ップ S21では、ステップ S 12で記憶した単音モデルを読み込む。ここでは最新に記憶 された単音モデル、もしくは前回のレッスンで使用した単音モデルを自動的に読み込 んでもよ!/、し、記憶されて!、る単音モデルを表示装置 8に表示して演奏者が選択した ものを読み込んでもよい。ステップ S22では、レッスンする曲の選択を促す画面を表 示装置 8に表示する。この画面は、 RAM3もしくは外部記憶装置 9に予め記憶されて V、るレッスン曲データに基づ 、て曲の一覧表として作成される。記憶されて 、るレツス ン曲のうち演奏者の技量レベルに応じた曲のみを表示するようにしてもよい。
[0116] ステップ S23では、レッスン曲が選ばれたかどうかが判断され、レッスンする曲が選 曲されたならば (ステップ S23肯定)、ステップ S24に進んで、選ばれた曲の演奏情 報を演奏情報記憶部 3Bから読み出す。
[0117] ステップ S25では、選ばれた曲の演奏情報中のすべての音の高さが、選択された 単音モデルの音域内に含まれているかどうかを判断する。この判断が肯定ならば、ス テツプ S26に進む力 否定であれば、改めて選曲を促すためにステップ S22に戻る。 なお、ステップ S25が否定の場合に、選曲に戻ってもよいし、単音モデルの選択をや り直すようにしてもよい。
[0118] ステップ S26では、選ばれたレッスン曲の最初の楽音の音高を、変数として RAM3 にセットする。そして、ステップ S27ではこの音高に対応する鍵を弾くことができるよう に押鍵指示を行う。ステップ S28では、単音モデルのうちから押鍵指示の音高に対 応するものを読み出す。
[0119] ステップ S29では、スペクトル作成部 12の機能により、マイクロフォン 10からの入力 音のパワースペクトルを算出する。ステップ S30では、アタックが既に検出されている か否かを判断する。通常アタックが検出されるのは、音が立ち上がる瞬間のみであり
、再びアタックが検出されたとしても、その時のパワースペクトルと単音モデルとがー 致するとは限らない。したがって、アタックが一度検出された後、同じ楽音が発生され ている間は、このステップ S30の判断によって 2度目以降のアタック検出を回避する。 最初はこのステップ S30の判断は否定であり、ステップ S31に進んでアタック検出を 行う。 2度目以降にステップ S30の判断は肯定となり、ステップ S34に進む。アタック 検出はパワースペクトルのパワー増加分が予定量を超えた力否かによって判断する 。アタックが検出されたならばステップ S32が肯定となり、ステップ S33でアタック検出 フラグをセットしてステップ S34に進む。
[0120] ステップ S34では、スペクトル比較部 14の機能により、ステップ S29で計算されたパ ワースベクトルと単音モデルとがー致しているかどうかを判断する。この判断は、単音 モデルのパワースペクトルとステップ S29で計算されたパワースペクトルとの距離の合 計によって行う。つまり各周波数成分毎に互いの距離を算出し、その合計がしきい値 を超えて 、るか否かによって両スペクトルが一致して 、るか否かを判断する。両パヮ 一スペクトルの単純比較でもよ 、し、互 、の音量の違いに応じて正規ィ匕つまり重み付 けしたパワースペクトル同士の比較であってもよい。また、ユークリッド距離を使用す るのがよい。ユークリッド距離によれば、二つの値の差が 2乗されて、その結果、該差 が強調され、二つの値の一致の判別が容易だからである。
[0121] 演奏音が和音の場合は、和音モデルを作成し、ステップ S34では、この和音モデル と演奏音のパワースペクトルとを比較する。
[0122] パワースペクトルの比較に際して、スペクトル作成部 12から入力されるパワースぺク トルのレベルが、単音モデルのパワースペクトルのレベルに対してどれだけ不足して いる力を各周波数成分毎に算出し、その不足分の合計を算出するようにしてもよい。 ピアノ等、残響が多く残る楽器には、この方が好都合である。
[0123] 両パワースペクトルが一致していない場合は、ステップ S29に戻る。両パワースぺク トルが一致していた場合はステップ S35に進んでアタック検出フラグをリセットする。
[0124] ステップ S36では、演奏情報の最後の楽音についてそのパワースペクトルと単音モ デルとの一致の判断が終了した力否かが判断される。最後の楽音についての単音モ デルとの比較処理が終了していない場合は、ステップ S37において、演奏情報の次
の楽音データの音高を、変数として RAM3にセットし、ステップ S27に進む。
[0125] 最後の楽音についての前記比較処理が終了した場合は、ステップ S38に進んでも う一度同じ曲についてレッスンを行うかどうかを演奏者に選択させる表示をしたり、ス テツプ S39に進んで別の曲のレッスンを行うかどうかを演奏者に選択させる表示をし たりする。
[0126] ステップ S38が肯定の場合はステップ S26に進むし、ステップ S39が肯定ならばス テツプ S22に進む。ステップ S36およびステップ S39が否定ならば、レッスンフェーズ を終了する。
[0127] 次に、アタック検出をより確実に行うことができる処理について説明する。図 11は、 入力データと FFT窓の位置との関連を示す図である。アタック検出は、マイクロフォン 10から入力された音のデータに対して、このように区切られた FFT窓毎に行われる。
[0128] 図 12は、入力データの入力タイミングと処理タイミングとの関係を示す図である。例 えば、入力データがタイミング tOから蓄積開始されて、タイミング tlで FFTに必要な 分が蓄積されると、その入力データに関して計算が開始され、タイミング t2で計算が 終了してアタックか否かの判断がなされる。そして、アタックが検出されなければ、タイ ミング tl一 t3間のデータが採取されるのを待ってタイミング t3で再び計算が開始され 、タイミング t4で計算が終了してアタック力否かの判断がなされる。この計算タイミング によれば、例えば、タイミング tlと t2との間で生じたアタックは、タイミング t4において 検出される。つまり実際のアタック時から、ほぼ FFT窓の長さ分遅れた時点で検出さ れる。
[0129] そこで、次のようにして、このようなアタック検出の遅れを解消する。図 13は、ァタツ ク検出の遅れを解消できる入力データの入力タイミングと処理タイミングとの関係を示 す図である。図 13において、タイミングので、タイミング tOからタイミング tlの間に入 力されたデータに対して FFT処理を開始し、さらにタイミング tlから時間 A Lずらした 時点 t20で、その時点 t20直前の FFT窓時間に相当する時間 Tの入力データに対し て FFT処理を開始する。時間 A Lは予め設定される値で、例えば、 FFT窓の 1Z4の 長さに設定しておく。この FFT処理に基づくアタック有無は計算開始から処理時間 Δ T経過後のタイミング t21で検出される。つまり、タイミング tlの直後に生じたアタック
がタイミング t21で検出される。同様にタイミング tO力ら時間 2 A L、 3 A L"-、のように 、順次、 FFT窓を予定のシフト時間 A Lずつずらした時間の入力データについて FF T処理を行う。したがって、図 12に関して説明した例のようにタイミング t4でアタック検 出される処理よりも短時間でアタック検出することができる。
[0130] 図 14は、 FFT窓をずらして FFT処理を行ってアタック検出遅れを解消する図 13の 処理に係る入力データと FFT窓の位置との関連を示す図である。
[0131] CPU1の処理能力によって、 FFT処理に時間が力かる場合、つまりタイミング tlか ら開始される処理時間 ΔΤ力 ずらした時間(シフト時間) A Lより長い場合は、シフト A L時間を処理時間 ΔΤと同じ力、処理時間 ΔΤより長くなるように延長する。一方、 処理時間 ΔΤが、シフト時間 A Lより長い場合は、シフト A L時間を処理時間 ΔΤに合 わせて短縮することもできる。こうして、 FFT処理の時間に応じてできるだけ素速くァ タック検出することができる。
[0132] また、 1回の FFT処理で 1度しかアタック検出できないので、一つの FFT窓内で 2回 アタックがあるような場合、例えば、アルペジオのように速いフレーズでは、後の音の アタックを検出することができない。この場合、押鍵指示が進行しないことになる。そこ で、このような速いフレーズのときはアタック検出をスキップして処理を先に進めること ができる。アルペジオ等である力否かは予め演奏情報を先読みして判断する処理ル 一チンを設けておくことによって検出することができる。つまり演奏情報を予め読み取 つて、アルペジオなど演奏速度が速 、フレーズの位置 (発生タイミング)を予め記憶し ておく。そして、このフレーズの発生タイミングでの楽音に対する処理では、図 10のス テツプ S29でパワースペクトルを算出したならば、アタックの検出如何にかかわらず、 直ちに単音モデルとの比較 (ステップ S34)に移行する。
[0133] アタックの有無を判断するのに使用されるパワースペクトルの増加分のしきい値は、 モデル作成フェーズにパワースペクトルと併せて記憶した音量に応じて連動させても よい。また、アタック検出処理 (ステップ S31, S32)を繰り返してもアタックが検出され な 、場合は、しき 、値設定画面を表示装置 8に表示して演奏者にしき 、値の調節を 促してちょい。
[0134] アタックを検出した後に、パワースペクトル中に次に弾くべき音のピークが立ってい
るかチェックして、余分な音ではアタックを検出しないようにすることもできる。
[0135] 図 15は、技量レベルに応じた音域を表示画面上で設定するための表示装置 8上の 表示例を示す図である。図 15には、鍵盤図形 Kを表示し、この鍵盤図形 K上に、技 量レベルを示す「入門」、「初級」、「中級」および「上級」の文字と、各技量レベルのそ れぞれに対応した音域を矢印で表示する。この各技量レベルの!/ヽずれかを選択す れば、各レベルに対応した図示の範囲の音域が設定される。例えば、この画面の技 量レベルを示す各文字上にカーソルを合わせて指示を入力すれば、各レベルに対 応した図示の範囲がレッスン音域として設定されるようにする。
[0136] 図 16は、音域設定の際の入力の参考になるように表示される画面の例を示す図で ある。図 16において、表示された鍵盤図形 Kの鍵のうち、白鍵および黒鍵とは異なる 色で示した鍵 16が、選曲されたレッスン曲に含まれる音高に対応する鍵である。図で は着色できないので、鍵 16には、他の黒鍵および白鍵と区別するため粗いドット模 様を付した。演奏者はこの音高の表示を参考に、これらの鍵 16のすベてを含むよう に音域を設定することができる。例えば、任意の二つの鍵を表示画面上で指示し、こ れらの鍵をそれぞれ最低音および最高音とする音高の範囲をレッスン音域として設 定するとよい。
[0137] 図 17は、モデル押鍵指示の表示例を示す図である。図 17において、表示装置 8に 表示された鍵盤図形 Kには、他の鍵と区別できるように色もしくは模様を付けた鍵 17 によって、単音モデル作成のための押鍵すべき鍵盤位置を示している。演奏者はこ の表示された鍵盤図形 K上の鍵 17に従って実際のピアノの鍵を押すことができる。 なお、図中の白鍵上に示したマーク 18は押鍵位置を認識しやすくするためのもので ある。このマーク 18で示された鍵と同じ音高に対応する実際のピアノの鍵に、単音モ デル作成に先だってシール等を付しておくことにより、表示された鍵盤図形 Kと実際 のピアノの鍵盤との対応がつきやすくなる。
[0138] 図 9および図 10に示したフローチャートや変形例に係る処理は CPU1で実行可能 なようにプログラムされ、 CDや ROM等、周知の記録媒体に記録して提供されること ができる。
[0139] [第 3実施形態]
次に、本発明の第 3実施形態を説明する。既述のように、演奏音のパワースぺタト ルと単音モデルとの比較にぉ 、て、単音モデル作成時および演奏時のそれぞれの 音量に応じて演奏音のパワースペクトルと単音モデルを音量で正規ィヒしたあと、両パ ワースベクトルの距離を周波数成分毎に算出し、その合計値がしきい値以下である か否かによって、両パワースペクトルが一致して!/、るかどうかを判定する。
[0140] 和音の場合は、比較時に各構成音の単音モデルを合成して和音モデルを作成し、 この和音モデルと演奏音のパワースペクトルとに関して、単音の場合と同様に両パヮ 一スペクトルが一致しているかどうかの判定を行う。
[0141] しかし、和音に関しては以下の課題がある。各構成音の単音モデル毎に音量で正 規化し、その後に合成を行うようにすると、強く弾いても大きい音量が出ない高音側 でパワースペクトルが強調されすぎた和音モデルになってしまう。その結果、高音側 の音は極端に強く弾かないとパワースペクトルが和音モデルと一致しない。
[0142] アコースティックピアノでは、強く弾いた場合と、弱く弾いた場合とで倍音の出方が 違ってくる。したがって、モデル作成時と演奏時との音量の違いだけでなぐ打鍵の 強さの違いによっても、パワースペクトルがー致しに《なることが考えられる。
[0143] 和音の演奏では、和音数が多くなるほど、各構成音の特徴が埋もれ、一部の構成 音が違って 、てもパワースペクトルが一致して 、ると判定されてしまうことが考えられ る。
[0144] 音高によってパワースペクトルの量が異なり、高音の方が低音に比べてパワースぺ タトルの総量が少ない。したがって、低音に比べてパワースペクトルが一致しやすい。 つまり正しく弾かれた力どうかの判定精度が低下するおそれがある。
[0145] パワースペクトルの一致を、モデルに対する演奏音のパワースペクトルの不足分の 総和をしきい値と比較して判断する場合、オクターブの違いや、和音の構成音の一 部の違 、などによってパワースペクトルが似通って 、る場合に、誤ってパワースぺタト ルが一致して 、ると判断されることが考えられる。
[0146] 低音部は周波数分解能が低いので、半音差で隣り合つている音同士の違いを判定 しにくぐ誤ってパワースペクトルが一致していると判断されることが考えられる。
[0147] 第 3実施形態では、指示通りに演奏できた力どうかを判定する際のパワースペクトル
の照合精度をより向上させることができる方法を提案する。
[0148] 演奏音が和音の場合は、後述する方法によって和音モデルを作成し、ステップ S3 4では、この和音モデルと演奏音のパワースペクトルとの比較を行う。
[0149] 図 18は、第 3実施形態に係る前記スペクトル比較部 14の処理 (ステップ S34)の詳 細なフローチャートである。図 18において、ステップ S41では、演奏情報に基づいて 演奏音が和音カゝ否かを判断する。和音の場合は和音モデルを作成する。まず、ステ ップ S42で単音モデルを合成して和音モデルを作成する。ステップ S43では、モデ ルを音量で正規ィ匕する。和音の場合は和音モデルを正規ィ匕する。正規ィ匕は、モデル と演奏音との音量の違いによる影響を排除するためモデル作成時の音量と演奏音の 音量とを同じにするものである。例えば、演奏情報のベロシティ値から弾くべき音量を 決定し、この音量にモデルおよび演奏音の音量が揃うようにパワースペクトルを重み 付けする。和音の場合は各構成音の音量の総和によって正規ィ匕する。演奏音が和 音でな 、場合は、ステップ S41からステップ S42をスキップしてステップ S43に進む。
[0150] ステップ S44では、演奏音のパワースペクトルを正規化する。ステップ S45では、モ デルと演奏音のパワースペクトルとの距離を算出する。ステップ S46では、パワース ベクトルの一致を判断するためのしき ヽ値を決定する。しき 、値の決定方法は後述 する。
[0151] ステップ S47では、ステップ S45で決定したしきい値とステップ S45で算出された距 離とを比較する。距離がしきい値以下であれば、演奏音のパワースペクトルとモデル とが一致したと判断される。また、距離がしきい値以上の場合は演奏音のパワースぺ タトルとモデルとが不一致と判断される。
[0152] ステップ S47で、距離がしきい値以下であると判断された場合に、さらに演奏音の パワースペクトルにその演奏音にあるべき特徴の有無によって演奏音と押鍵指示とが 一致している力否かを判断した後、最終的に決定してもよい (ステップ S48)。演奏音 にあるべき特徴に関してはさらに後述する。
[0153] 和音の比較において、単音モデルを合成して作成された和音モデルを正規化する ことによって、次の効果が期待できる。各構成音の単音モデルをそれぞれ音量で正 規化してから合成すると、高音側の、強く弾いても大きい音量が得られない音域では
、パワースペクトルが強調されすぎた和音モデルになるおそれがある。しかし、合成さ れたパワースペクトルに対して正規ィ匕するとこの不具合が解消される。
[0154] 図 19は、レッスンフェーズで入力音が和音であるときのパワースペクトル比較のた めの CPU1の機能を示すブロック図である。和音の比較は、単音モデルを合成して その後作成された和音モデルと演奏和音のパワースペクトルとで行う。押鍵指示部 1 5からの押鍵指示に従ってスペクトル記憶部 3Aの単音モデルが合成部 20に読み出 されて合成される。合成された単音モデルつまり和音モデルは、正規化部 21で音量 によって正規ィ匕され、スペクトル比較部 14に入力される。
[0155] 一方、マイクロフォン 10から入力され AZD変^ ^6でデジタルデータに変換され た演奏音はスペクトル作成部 12に入力されてパワースペクトルが算出される。算出さ れたパワースペクトルは、スペクトル比較部 14に入力されて前記和音モデルと比較さ れる。比較により、パワースペクトルが一致した場合は、押鍵指示部 15にその結果が 通知され、押鍵指示が進められる。なお、単音モデルの合成後に正規ィ匕を行うように している場合、単音モデルは、ほぼ同一の強さで打鍵されて作成されているのが望ま しい。
[0156] 次に、ピアノ Pを強く弾いた場合と弱く弾いた場合のパワースペクトルの違いの影響 を排除する手法を説明する。ピアノ Pを強く弾いた場合と弱く弾いた場合の倍音の違 いの影響を低減してパワースペクトルの一致の判断を確実にする手法を説明する。 図 20はノートナンパ「60」の鍵を強めに弹 、たときのアタック時のパワースペクトルの 例を示し、図 21はノートナンパ「60」の鍵を弱めに弾いたときのアタック時のパワース ベクトルの例である。この図 20,図 21の例は音量で正規化した値であり、 FFT処理 後の log値である。このように、同じ鍵を弾いても打鍵の強さによって倍音の出方に違 いがあるのがわかる。この両者を比較した場合、互いの距離が大きいので両者は不 一致と判断されるおそれがある。
[0157] このパワースペクトルは、上述のように log値である。一方、 FFT処理後の値をその まま (logをとらない値で)パワースペクトルとして示すと、図 22,図 23のようになる。図 22,図 23に示すように、音域毎のパワーの違いが強調され、高音側つまり倍音側の パワースペクトルがカットされて 、るのが分力る。
[0158] したがって、モデル作成フェーズおよびレッスンフェーズにおいて、パワースぺタト ルを作成する際に FFT処理で算出された値を、 logをとらずにそのままパワースぺタト ルのモデルとして採用する。
[0159] 図 24は、 logをとらない値をモデルとした場合の演奏音判定のための CPU1の要部 機能を示す図である。モデル作成フェーズでは、フェーズ切替部 19がスペクトル記 憶部 3A側に切り替えられる。スペクトル作成部 12は、マイクロフォン 10から入力され て AZD変 6で AZD変換された楽音のデジタルデータのパワースペクトルを算 出する。その計算結果は音高とともに、 logをとらない値のままスペクトル記憶部 3Αに 直接入力されて入力データのパワースペクトルモデルとして保存される。レッスンフエ ーズでは、フェーズ切替部 19がスペクトル比較部 14側に切り替えられる。そして、ス ベクトル作成部 12で FFT処理された入力データは、音高とともに、 logをとらない値 のままパワースペクトルとしてスペクトル比較部 14に直接入力される。そして、スぺタト ル比較部 14には、同様に、 logをとらない値としてスペクトル記憶部 3Aに保存されて いるパワースペクトルが読み出されて両パワースペクトルが比較される。
[0160] FFT処理後の値を logをとらずに直接使用するのに代えて、 FFT処理後の値の log をとつたものを使用して、この logをとつた値であるパワースペクトルの高域側をカット して使用するようにしてもよい。また、演奏音波形を、ローノ スフィルタを通して取り込 むようにしてもよい。
[0161] スペクトル比較部 14で使用される距離のしきい値の決定方法を説明する。和音の 場合、和音数が多いほど各構成音の特徴が埋もれてしまい、一部の構成音が押鍵 指示と違っていても和音全体としては距離が一致することがある。そこで、しきい値を 固定するのではなぐ和音数に応じてしきい値を変化させる。つまり、和音数が多い ほど小さ!/ヽしき!/、値 (小さ!/、距離値)を使用してパワースペクトルの一致判断基準を 厳しくする。しき 、値は演奏情報から和音数を判断して自動的にしき 、値を選択して もよいが、演奏者が予め曲に応じて選択してもよい。
[0162] 音高によってさらにしきい値を変化させることができる。高音側では低音側に比べて パワースペクトルのパワーの総量が少な 、ので、比較されるパワースペクトル同士の 距離が小さくなり、一致と判断されやすくなるためである。上記和音数に対応するしき
い値が、例えば、ノートナンパ 60に対して使用されるのを前提にすると、音高毎のし き ヽ値は次式で求められる。
[0163] T=Ts X∑Pi (i= l— N)Z∑ (Ps) i(i= 1— N)…式 1。この式 1において、符号 T は和音モデルの音高に対応するしきい値、 Tsは和音数に対応するしきい値、 Pは和 音モデルのパワースペクトル、 Psはノートナンパ 60の単音モデルのパワースペクトル
、 Nは FFTのポイントの数である。
[0164] この式 1を使用して、ノートナンパ 60のパワースペクトル量の総和に対するしきい値 が Tsのときの、和音モデルのパワースペクトル量の総和に対するしきい値 Tが求めら れる。
[0165] 残響を考慮して前記しきい値 Tを甘くしてもよい。残響は前回のアタックと今回のァ タックとの時間差によって推測することができる。アタックの時間差 Faがしき 、値を修 正するかどうかの判断の基準時間 FA以下のときには、しきい値 Tは次式 2によって修 正されたしき!/、値 Taとすることができる。
[0166] Ta= (1 + (FA— Fa) X e/FA) XT…式 2。この式 2において、 eは係数である。本 発明者等の実験によれば、時間 FAを 200m秒、 eを「3」にすると、良好な比較結果 が得られた。前記時間 Faが時間 FAを超えたときは、残響による影響はないので、し き!、値 Tはそのまま修正しな 、で使用する。
[0167] この式 2から理解できるように、アタックの時間差が小さ 、ほどしき 、値 Taは大きくな る。つまりパワースペクトルが一致したかどうかの判断基準が甘くなる。
[0168] なお、アタックは一度し力検出しないということを先に説明している力 アタックの時 間差でしき 、値を修正する手法をとる場合には、発生したアタックをそのつど検出す るようにする。
[0169] 残響の程度は、アタックの時間差によって推測するのに限らない。例えば、演奏情 報に基づいて各楽音の発生タイミング力 各楽音の時間差を検出し、この時間差を アタックの時間差に代えて式 2にあてはめればよい。アタック直前の音量から残響の 大きさを判断するようにしてもょ ヽ。演奏情報カゝらダンパーペダルが踏まれて ヽると判 断されたときは残響は大き 、と判断できるので、しき!/、値は大きくしてもょ 、。
[0170] 上述のような各手法によって、残響が小さいと判断された場合に距離のしきい値を
小さくしてパワースペクトルが一致した力どうかの判断基準を厳しくし、残響が大きい と判断された場合は距離のしきい値を大きくしてパワースペクトルが一致したかどうか の判断基準を甘くすることができる。
[0171] パワースペクトルの総量によるしきい値の修正と、残響によるしきい値の修正の双方 で、和音数に対応して決定されたしきい値を修正してもよいし、いずれか一方で修正 してちよい。
[0172] 次に、演奏音にあるべき特徴に関して説明する。オクターブの違いや和音の一部 の構成音の違いだけでは、互いに異なる楽音のパワースペクトル力 楽音を判断で きないことがある。そこで、パワースペクトルの比較にカ卩えて演奏音にあるべき特徴の 有無を判断するようにした(図 5ステップ S48)。演奏音にあるべき特徴の例としては、 例えば、パワースペクトルの位置 (周波数)である。単音ならば、最も大きいパワース ベクトルの位置が特徴となる。和音では、構成音同士の単音モデルを互いに比較し て、その単音にしかないピークの中で最大のピークの位置が特徴である。特徴はピ ークに限らないし、各単音の特徴は複数であってもよい。この場合、すべての特徴が 見つからなくても、複数の特徴のいくつかが見つかれば、演奏音が押鍵指示と一致 していると判断してもよい。
[0173] 次に、低音部での半音違い (音程 1度)を判断する方法を説明する。低音部は周波 数分解能が粗いので、半音違いの音は判別しにくいし、パワースペクトルも似ている ため、誤って一致と判断するおそれがある。この誤判断を回避するために、音域によ つて低音部では FFTポイント数を増やす力、ポイントの数は維持してサンプリング周 波数を下げる。これによつて低音部の周波数分解能を細力べする。この方法は FFT ポイント数やサンプリング周波数の異なるパワースペクトル同士を比較することはでき な!、ので、モデル作成時に FFTポイント数またはサンプリング周波数を変えて複数の モデルを作成しておく。
[0174] [第 4実施形態]
次に、本発明の第 4実施形態を説明する。押鍵指示とともに、演奏情報に従って自 動伴奏装置による伴奏を進めることが考えられる。しかし、パワースペクトルの比較を するための高速フーリエ変換 (FFT)の計算に時間が力かるので、演奏音が正しいか
どうかの判定が実時間から遅れる。押鍵指示と同様に楽音の存在する丁度のタイミン グで自動伴奏を止めて演奏の判定を待って 、ると、演奏者が正 、タイミングで演奏 しても、正しく演奏できたと判断されるまでは伴奏が再開されないので、伴奏が途切 れてスムーズな演奏ができな 、。
[0175] また、押鍵指示を画面に表示した楽譜上で行う場合、一画面に全ての楽譜を表示 することができないときは、画面をスクロールまたは画面表示切り替えを行って楽譜を 見ることになる。楽譜を一段で表示して順次左力 右に画面をスクロールもしくは切り 替えていく方法と、多段に表示した楽譜を上方から下方にスクロールもしくは切り替え ていく方法等が考えられる。
[0176] 押鍵指示通りに演奏がされたときに次の押鍵タイミングまで押鍵指示を進める方法 では、上記スクロールもしくは切り替えは自動的に行われる。例えば、演奏に間に合 う速度で徐々にスクロールさせる力、表示されている最後の小節もしくは表示されて V、る最後の音符が演奏されたタイミングで一度に画面を次に切り替えるかの 、ずれ かが採用される。しかし、これらいずれのスクロール方法においても楽譜自体が動か されることになるので、演奏者は画面から一度目を離すと、どこを演奏していたかが 分からなくなることがある。目を画面カゝら離さないとしても、押鍵指示に注目するのに カロえて、動 、て 、る楽譜を見ると 、う余分な気遣 、を演奏者にさせることになる。
[0177] また、演奏者にとっては、直前に押鍵すべき音符を表示されるよりも、楽譜からある 程度先の音符を見て、余裕をもって押鍵指示を待てるようになって!/、るのが望ま ヽ
[0178] 第 4実施形態では、伴奏および押鍵指示への追従を容易にして円滑な演奏をする ことができる自然楽器の演奏指示システムを提供する。
[0179] 図 25は、第 4実施形態に係る表示装置 8の表示画面上に描かれた押鍵指示を伴う 楽譜例を示す図であり、レッスンフェーズで使用される。この例では、表示装置 8の表 示画面 81には楽譜 Gが 2段で表示されている。表示段数は複数段であればよぐ 2 段に限定されないし、後述するように、楽譜を 1画面に 1段ずつ表示する場合にも本 発明は適用することができる。 1段に表示する小節数は 4小節に限らないし、表示画 面 81の幅に合わせて小節の幅は任意に決定できる。複数段に楽譜を表示する場合
、表示する小節数は各段毎に異なっていてもよい。
[0180] 図 25において、表示画面 81の右側には、表示画面 81に現在表示されていない楽 譜を表示させるための操作部としてのスクロールバー 82が表示される。表示画面 81 にはスクロールバー 82の位置に対応する楽譜 Gが表示されている。すなわち、図 25 では、全体の楽譜の最初の部分 (8小節分)が表示されており、スクロールバー 82を 下に移動させると、選択されたレッスン曲の楽譜のうち、現在表示されている 8小節に 続く 9小節目以降の部分が現れる。このスクロールバー 82は、演奏開始前などに操 作して楽譜全体を通して見るときに使用されるが、レッスンモードつまり実際に演奏を 行っているときには、機能を停止させておく。したがって、レッスンモードではスクロー ルバ一 82の表示位置は初期位置又は現在位置に固定する力、消去する。
[0181] 表示画面 81では、次に演奏すべき音符の場所を実線の縦線で示す押鍵指示 NP ( 演奏指示記号)、および自動伴奏の現在位置を示す点線の縦線で示す伴奏指示 S P (タイミング記号)が表示される。伴奏指示 SPは、初期位置が画面 81の左側にあり 、押鍵指示動作が開始されると徐々に右側に移動する。伴奏指示 SPは、第 1小節の 最初の押鍵タイミングまでは、例えば、メトロノーム音で演奏される前奏とともに押鍵 指示 NPに近付く。所定の演奏速度で押鍵指示 NPに伴奏指示 SPが近づき、押鍵指 示 NPに伴奏指示 SPが重なったときが押鍵タイミングである。そこで、演奏者はこの 指示を見てピアノ Pで第 1音を弹くと演奏音のパワースペクトルがモデルと比較され、 演奏音のパワースペクトルがモデルと一致したならば、押鍵指示 NPは次に押鍵すベ き音符の位置に移動する。一方、伴奏指示 SPは所定の演奏速度で移動するので押 鍵指示 NPに引き離され、やがて次の押鍵タイミングで伴奏指示 SPが押鍵指示 NP に追 、つく。この動作を繰り返して押鍵指示は進行する。
[0182] 演奏音のパワースペクトルがモデルと一致しな 、ときは自動伴奏および伴奏指示は 移動せずに待機する。自動伴奏の待機処理につ!、ては後述する。
[0183] 1画面に楽譜を表示しきれな!/ヽ場合は、演奏が終わった位置の楽譜を、現在表示 されている楽譜に続く楽譜で書き替えることによって表示させる。特に本実施形態で は演奏者の目の移動を最小限度に抑えるための、次の楽譜書き替え方法を採る。表 示画面 81に表示されて 、る楽譜の最後の段、つまり図 25の例では第 2段目の演奏
を行って!/、る最中に、その次の段つまり図 25に示されて 、な 、第 3段目の楽譜を表 示画面 81に描く。この第 3段目の楽譜は現在 1段目の楽譜が表示されて!、る位置に 表示される。つまり、上段の楽譜が、現在下段に表示されている楽譜に続く次の段の 楽譜に切り替えられる。
[0184] 例えば、下段の演奏が開始された時点で楽譜の書き替えを上段の先頭部分力も開 始する。書き替えは押鍵指示 NPの移動に追従するかたちで徐々に行われていく。 つまり、下段の演奏が開始されたならば、上段の楽譜の書き替えが開始され、下段の 演奏が終了した時点で上段の楽譜書き替えが終わっているようにする。換言すれば 、現在の押鍵指示 NPの位置と書き替え位置とが画面 81上でその水平方向座標 (X 座標)がー致するように楽譜の書き替えが進行される。
[0185] 下段の演奏が開始した時点で上段の書き替えを開始するのに限らず、下段の演奏 行われている間、つまり第 8小節目の演奏が終わるまでに少なくとも 9小節目の楽譜 が画面 81上に表示されていればよい。但し、演奏者が楽譜を予め見ることができるよ うに、少なくとも、下段の最後の小節の演奏が開始されるまでに次の楽譜が表示され ているのが好ましい。
[0186] 書き替え位置と押鍵指示 NPの表示位置とが X座標で一致しているのに限らず、例 えば、両者が予定の間隔 (小節数)を維持するように、書き替え位置を押鍵指示 NP の表示位置に追従させるのであてもよい。下段の演奏が終了して、新たに表示され た上段の演奏に移ったあとも、書き替え位置と押鍵指示 NPの表示位置とが予定間 隔に維持され、楽譜は曲の終了部分まで継続して書き替えられる。
[0187] 楽譜の書き替えは、上述のように徐々に進行させていってもよいし、一挙に 1段分 の楽譜を切り替えるのあってもよい。例えば、上段の演奏が終わって下段の演奏が開 始されたら、上段の楽譜を新たな楽譜に素速く書き替えることもできる。
[0188] 図 26、図 27は、楽譜が書き替えられている途中の押鍵表示の例を示す図である。
図 26において、伴奏指示 SPで示されるように、現在、演奏は第 7小節目まで進んで いて、押鍵指示 NPは第 7小節目の第 2番目の音符の位置にある。この押鍵指示 NP の表示位置と X座標が一致するように、楽譜書き替え位置を示す「消しゴムマーク」 8 3が上段の楽譜上に表示されている。ここでは、上段の楽譜の第 1小節目が第 10小
節目の楽譜で書き替えられて 、る。
[0189] 書き替えは、上述のように押鍵指示 NPの移動に従って演奏が 1音終了する毎に楽 譜を書き替えていってもよいし、演奏が 1小節終了する毎に 1小節ずつ楽譜を書き替 えていつてもよい。徐々に書き替えを行う場合には、下段の楽譜の演奏が終了した時 点で、上段の楽譜がすべて書き替えられる。
[0190] そして、第 10小節目が含まれる段の演奏が終了するまでに、下段の楽譜はすべて 新たな楽譜に切り替えられる。楽譜が書き替えられた上段の演奏に移ると、図 27〖こ 示すように、下段の楽譜の書き替えが、上段の楽譜の場合と同様に行われる。
[0191] こうして、演奏者は、通常の紙に記述された楽譜にしたがって演奏するときと同様に 、画面 81の表示を追っていけばよい。つまり表示画面 81の上段の左から右、上から 下へと目を移し、最下段の右端まで楽譜を追った後は、再び最上段左に目を移すと いう具合である。
[0192] 図 28は、 1段で楽譜を表示した例である。表示画面の上下方向幅が狭くて多段表 示が適さないときに採用される。この例では、第 2小節目の演奏が開始されると、元の 第 1小節目は第 5小節目の楽譜に書き替えられる。このように、一つの小節について 演奏が終了すると、その小節は直ちに次の段の対応部分に書き替えられる。
[0193] 楽譜の書き替え開始タイミングは、図 28の例に限らない。 1段表示において、押鍵 指示 NPが段の半分まで進んだ時点で楽譜の書き替えを開始するようにし、書き替え 位置と押鍵指示 NPの位置との間隔を維持しつつ書き替えを進めていってもよい。
[0194] 図 26—図 28では、楽譜の書き替え位置を押鍵指示 NPの位置を基準にした力 こ の押鍵指示 NPに代えて、伴奏指示 SPの位置を基準にして楽譜の書き替えを開始 · 進行させていってもよい。
[0195] 図 29は、押鍵指示の処理を示すフローチャートである。ステップ S51では、トータル 演奏時間をクリアする。トータル演奏時間は、実際に演奏を行ったところまでの時間 をいう。ステップ S52では、曲の最初の音符の押鍵指示表示位置を設定する。ステツ プ S53では、演奏を開始すするとともに、トータル演奏時間の更新 (インクリメント)を 開始する。ステップ S54では、ステップ S52で設定された位置に押鍵指示 NPを描画 する。
[0196] ステップ S55では、現在のトータル演奏時間に基づいて演奏位置つまり伴奏指示 S Pの表示位置を計算し、その位置に伴奏指示 SPを表示する。ステップ S56では、演 奏音をモデルと比較する。この比較の詳細は上述した。ステップ S57では、演奏音の パワースペクトルがモデルと一致したか否かが判断される。演奏音のパワースぺタト ルがモデルと一致したならばステップ S58に進む力 一致して ヽな 、場合はステップ S62に進む。
[0197] ステップ S62では、トータル演奏時間が押鍵指示 NPのある位置に対応する時間を 予定時間以上超えている力否かが判断される。ステップ S62が否定ならばステップ S 55に進む。ステップ S62でトータル演奏時間が押鍵指示 NPのある位置に対応する 時間を予定時間以上超えて 、ると判断されたときは、ステップ S63でトータル演奏時 間の更新を停止してステップ S 55に進む。
[0198] スペクトルが一致している場合は、ステップ S57からステップ S58に進んでトータル 演奏時間の更新が停止している力否かを判断する。トータル演奏時間の更新が停止 している場合はステップ S59に進んで、トータル演奏時間の更新を再開する。トータ ル演奏時間の更新が停止して ヽな 、場合はステップ S58からステップ S60に進んで 、すべての音符について押鍵指示を終えたか否かが判断される。この判断は最初は 否定であり、ステップ S61に進んで押鍵指示 NPの表示位置を次の音符の位置に進 めた後、ステップ S54に進む。ステップ S60が肯定ならばこのフローチャートの処理を 終了する。
[0199] 図 30は、 1画面に楽譜を複数段ずつ表示する処理を示すフローチャートである。こ の例では、押鍵指示 NPと書き替え進行位置との水平方向での表示座標 (X座標)が 一致するように間隔をおいて楽譜が書き替えられる。
[0200] ステップ S71では、一画面分の楽譜を表示する。例えば、五線譜の画像に音符や 記号の画像を重ね合わせて表示させる。ステップ S72では、変数 Xpをクリアする。こ の変数 Xpは、演奏情報を先読みするため、どこまで描画をしたかを記憶するため、 つまり消しゴムマーク 83の位置を記憶するために使用される。ステップ S73では、変 数 Bpをクリアする。変数 Bpは前回どの段に押鍵指示 NPがあったかによつて変数 Xp の値を修正するため、前回の描画時の押鍵指示段を記憶するために使用される。
[0201] ステップ S74では、押鍵指示 NPが曲の最終段にあるかどうかを判断する。押鍵指 示 NPが最終段にあればこのフローチャートの処理は終了する。押鍵指示 NPが最終 段に進むまではステップ S75に進む。
[0202] ステップ S75では、変数 Bpが現在の押鍵指示段を示しているか否力、つまり押鍵 指示 NPが表示されて 、る段が前回から変わって 、な 、かどうかが判断される。変数 Bpが現在の押鍵指示段でなければ、つまり押鍵指示段が進んで!/、ればステップ S7 6に進み変数 Xpをクリアする。これによつて、演奏情報の先読みのための描画開始 位置が画面左端に戻される。変数 Bpが現在の押鍵指示段を示していれば、ステップ S76はスキップされてステップ S 77に進む。
[0203] ステップ S77では、押鍵指示 NPが最下段に位置しているかどうかが判断され、この 判断が否定ならば、ステップ S78に進む。ステップ S78では、現在押鍵指示 NPがあ る段の 1つ下の段に、座標 Xp力ゝら押鍵指示 NPと同じ X座標値までの音符を描画する
[0204] 押鍵指示 NPが最下段に位置していたときはステップ S79に進み、表示画面の一 番上の段に、座標 Xp力ゝら押鍵指示 NPと同じ X座標値までの音符を描画する。
[0205] ステップ S80では、変数 Xpに現在の押鍵指示 NPの X座標を保存する。ステップ S8 1では、変数 Bpに押鍵指示 NPが描画されている段を保存する。
[0206] 図 31は、一画面に一段ずつ楽譜を表示するためのフローチャートである。この処理 では、押鍵指示 NPの表示力も段の半分に相当する間隔をおいて楽譜を書き替えて いる。つまり、押鍵指示が段の中央まで進んだら現在表示されている楽譜を先頭から 書き替え始める。そして、押鍵指示 NPが段の先頭に戻った時点では書き替え位置 つまり消しゴムマーク 83の位置は、段の半分まで進んでいるように処理される。
[0207] ステップ S91では、一段分の楽譜を表示する。ステップ S92では、変数 Xpをクリア する。この変数 Xpは、演奏情報を先読みするため、どこまで描画をしたかを記憶する ために使用される。ステップ S93では、フラグ Fをクリア(ゼロをセット)する。フラグ Fは 前回の描画時の押鍵指示 NPが段の中央に対して 、ずれにあるかを示すものであり 、押鍵指示 NPが段の中央より右にある場合に変数 Xpを修正するために使用される 。ステップ S94では、現在の押鍵指示 NPの X座標が段の中央より右カゝ否かが判断さ
れる。押鍵指示 NPの x座標が段の中央より右でなければステップ S95でフラグ Fにゼ 口をセットする。ステップ S96では押鍵指示 NPは曲の第一段目力どうかが判断される 。一段目に押鍵指示 NPがあれば、その一段分の楽譜はすでにステップ S91で描画 されているので、この場合はステップ S94に戻る。
[0208] 押鍵指示 NPの X座標が段の中央より右であればステップ S94力 ステップ S97に 進み、フラグ Fがゼロ力否かが判別される。ステップ S94が肯定でステップ S97が肯 定のときは、押鍵指示 NPが段の中央左力 右に移ったと判断される。押鍵指示 NP が段の中央左から右に移ったときはステップ S98に進む。フラグ Fがゼロでない場合 は、押鍵指示 NPは段の中央力 右力 左に移っていないと判断され、ステップ S 10 1に進む。
[0209] ステップ S98では、押鍵指示 NPは曲の第一段目力どうかが判断される。押鍵指示 NPが曲の一段目でなければ、ステップ S99に進んで、座標 Xp力も右端までの音符 を描画する。押鍵指示 NPが段の左側力 右側に移ったときに消しゴムマーク 83の位 置、つまり書き替え位置を段の右側から左側に先頭に移すため、前回の消しゴムマ ーク 83の位置 (座標 Xp)力も右端までの描画を確実に終了させる処理である。ステツ プ S 100では、変数 Xpをクリアして消しゴムマーク 83の位置を段の先頭に位置させる 。曲の第 1段目では押鍵指示 NPが段の右に移行したときに消しゴムマーク 83の位 置は初期位置であるので、ステップ S98からステップ S100にジャンプする。
[0210] ステップ S101では、押鍵指示 NPが段の右側にあることを示すフラグ Fに「1」をセッ トする。ステップ S102では、押鍵指示 NPは曲の最終段になったか否かが判断され る。押鍵指示 NPが曲の最終段になれば、次に描画する楽譜はないので処理を終了 する。
[0211] 押鍵指示 NPは曲の最終段でなければ、ステップ S103に進んで、座標 Xpから押 鍵指示 NPの X座標に段の半分の値を加算した X座標値までの音符を現在表示され ている段に描画する。ステップ S104では、変数 Xpに現在の押鍵指示 NPの X座標に 段の半分の値を加算して保存する。
[0212] 前記ステップ S96で、押鍵指示 NPがー段目でない、つまり二段目以降の楽譜の上 を示していると判断されたときは、ステップ S103に進む。
[0213] 上述の伴奏指示と同じタイミングで、伴奏が行われる。伴奏のための演奏情報は、 練習曲の演奏情報とともに ROM2または外部記憶装置 9から供給される。伴奏のた めの演奏情報は伴奏カウンタに従って読み出される。伴奏は、演奏が押鍵指示通り に行われたとき、つまりステップ S57が否定のときには中断させる。
演奏が正しく行われたかどうかの判断は FFTによるパワースペクトルの検出および比 較のための時間がかかる。したがって、押鍵指示 NPに伴奏指示 SPが重なったとき に伴奏を中断すると、 FFT処理の時間だけ伴奏がとぎれる。本実施形態では、伴奏 は演奏が正しく行われな力つたと判断されるまで伴奏カウンタは停止させな 、ようにし たので、演奏が押鍵指示に従って正しく行われたときには、伴奏が途切れることはな い。
[0214] 伴奏を停止させるかどうかを演奏が正しく行われた力どうかによってのみ決定させる のに限らない。伴奏が押鍵すべきタイミングまで進んだ後、予定時間を計数する計数 処理ルーチンを設け、この予定時間内に演奏が正しく行われたという判断結果がで ないときに、伴奏を停止させることもできる。この予定時間内に演奏が正しく行われた t 、う判断結果がでれば、伴奏は中断されな 、。
[0215] この予定時間はレッスンする最小音符の長さ未満、またはその次に弾くべき音符ま での時間(つまりステップ時間)未満にすれば、次の音を弹 、て 、な 、のに伴奏がそ の音のタイミングより先に伴奏が進んでいるという不都合を防止でき、演奏者に違和 感を感じさせない。この予定時間は演奏者が任意に指定できるようにするとよい。
[0216] 上記各フローチャートや変形例に係る処理は CPU1で実行可能なようにプログラム され、 CDや ROM等、周知の記録媒体に記録して提供されることができる。
[0217] [第 5実施形態]
上記各実施形態に係る楽音判定装置は、簡単な計算で、しかも調律のずれ具合に かかわらず演奏音が正 、かどうかを判定することができると!/、う特徴を持つ。
[0218] しかしながら、自然楽器を実際に弾いて各音高の単音のモデルを作成して記憶さ せるので、そのときに外部環境によるノイズなどが発せられると、そのノイズなどがマイ クロフオン力 入力されて、入力音にはピアノ音以外にノイズなどが含まれてしまう。こ のようにノイズなどを含む入力音のパワースペクトルに基づいてモデルを作成すると、
各音高の単音のモデルが正しく作成されない。し力も、外部環境により発せられるノ ィズなどのパワースペクトルは一定ではないためそれを取り除くことは困難であり、レ ッスン時の演奏とモデルとの一致の判断がノイズなどにより影響されるという問題があ る。
[0219] パワースペクトルにおけるピッチ検出などを行って各音高の単音のモデルが正しく 記憶されたカゝ否かを判断することも考えられる。例えば、特公平 1—51200公報には 、音声信号の周波数分析結果に基づ 、て音声信号の音高を判定する技術が記載さ れており、この技術を利用してモデルを作成することも考えられる力 パワースぺタト ルにおけるピッチ検出の処理負担が大きい。
[0220] また、各音高の単音のモデルを作成するときに演奏者が自然楽器を実際に弾く必 要があるが、ピアノのような音域が非常に広い楽器ではその全ての音高の単音を弹 いて全音高についてのモデルを作成すると、間違えて違う鍵を押鍵してしまう可能性 が高くなる。実際のレッスン演奏に使用する音域は楽曲やレベルによって比較的狭 い音域内に限られることが多ぐ使用しない音域のモデルを作成する必要はない。か えって、使用しない音域までの全てのモデルを作成しておいても、調律や経年変化 によって各鍵の音高がモデル作成時と変わった場合にはそれに合わせて再度モデ ルを作成しなければならないので無駄になる。
[0221] また、モデル作成時に表示装置に鍵盤を表示し、作成しょうとするモデルの音高の 音を押鍵指示したとしても、ピアノのような鍵盤楽器では、特に初心者にとって押鍵指 示表示と実際の鍵盤の位置を対応付けることが困難である。
[0222] さらに、モデル作成時には、モデルを作成する音域の鍵を次々と押鍵してそれぞれ の単音のモデルを作成して記憶していくが、余り早く次の鍵を押鍵すると前の演奏音 の残響がまだ残って 、るため余分な周波数成分が含まれてしま ヽ、押鍵した鍵に対 応する本来のモデルが作成されないという問題がある。そうすると、レッスン時に正し Vヽ鍵を押鍵してもモデルとの一致が得られなくなってしまう。十分に残響がなくなるま で待って次の鍵のモデル作成を開始させることによりこの不都合をなくすことができる 1S 単音ごとに必要以上に十分な時間を費やすことは無駄であり、広い音域のモデ ルを作成する場合には多大に時間を要することになる。また、どの時点で次の鍵を押
鍵してモデル作成に入って 、 、かはっきりしな!/、。
[0223] 次に説明する第 5実施形態では、モデルを作成するときに、外部環境によるノイズ などが発せられたとしても各音高の単音のモデルを誤りなく作成でき、初心者でも間 違 、なく容易にモデルを作成して記憶することができるようにする。
[0224] 図 32は、第 5実施形態に係るモデル作成フェーズにおける CPU1の処理を示すフ ローチャートである。モデル作成が指示されたとき、まず、楽曲あるいはレッスン(技量
)レベルの選択を促す画面を表示装置 8に表示し、演奏者に楽曲を選択してもらうか 、レッスンレベルを選択してもらうかする(S 111)。この選択に従ってモデル作成の音 域を設定する(S 112)。
[0225] 楽曲が選択された場合には、その楽曲の演奏情報を走査し、例えば図 16に示すよ うに、それに含まれる音高を少なくとも含む音域をモデル作成の音域として自動的に 設定する。選択された楽曲のレベルに応じてモデル作成の音域を自動的に設定する ようにしてもよいし、選択された楽曲に出てくる音高を演奏者に示し、それらの音高を 少なくとも含む音域を演奏者に指示させてモデル作成の音域を設定するようにしても よい。
[0226] レッスンレベルが選択された場合には、選択されたレッスンレベルの楽曲に含まれ る音域をモデル作成の音域として設定する。例えば図 15に示すように、入門、初級、 中級、上級に従って音域を広く設定する。モデル作成の音域を設定したら、モデル 作成の最初の音高の音、例えばモデル作成の音域に含まれる最低音をセットする(S 113)。
[0227] 次に、モデル作成の音高の音に対応する鍵を表示装置 8に表示した鍵盤に表示し 、演奏者に押鍵を指示する(S114)。この際、押鍵指示した音高の音を音源 4に発音 するよう〖こ指示してもよい。演奏者が指示された鍵を押鍵すると、ピアノ Pから発せら れたモデル作成演奏音はマイクロフォン 10により取り込まれる。ステップ S 114で押鍵 指示した音高の音をスピーカ 5から発音させれば、ここでピアノ Pから発せられる演奏 音 (モデル作成フェーズで発生される演奏音を、以下「モデル作成演奏音」と呼ぶ)と 聴き比べて押鍵の間違いを演奏者に気付力せることができる。
[0228] マイクロフォン 10を通して入力されたアナログ信号を AZD変 6でデジタル信
号に変換し、その音量を音量測定部 11で測定する。音量測定は離鍵指示まで継続 して行う。音量測定部 11で測定した音量が閾値を超えたらアタックとみなす (S115) 。このアタック検出処理については後で詳細に説明する。スペクトル作成部 12はデジ タル信号を FFTしてパワースペクトルを作成し、音量測定部 11はその音量を算出す る(S116)。アタックが検出されたときのパワースペクトルと音量は、後で使用するの でバッファとしての RAM3に一時的に保存する。
[0229] ノワースぺ外ルが作成され、音量が算出されたら表示装置 8に離鍵を促す指示を 表示する(S117)。離鍵指示はスピーカ 5による音もしくは音声の指示であってもよい 。続いて、次の処理に移る力 次の処理が先の音高の音の残響音で影響されないよ うに、その前にピアノ Pが無音状態になっている必要あるので、離鍵指示後、音量測 定部 11で算出される音量が無音検出の閾値以下になるまで待つ(S118)。音量がこ の閾値以下になれば実質的に無音状態と判断する。ピアノの場合には力なりの残響 音があるので、無音検出は、誤りなくモデルを作成するために重要である。
[0230] 無音状態になったと判断できたら、押鍵指示力 これまでの期間の音量の最大値ま たは振幅の最大値が許容範囲内に入っているかどうかを判断する(S119)。ここで音 量や振幅が許容範囲内に入っておらず、それが大きすぎると判断した場合には、例 えば「もっと小さく弾いて下さい。」とメッセージを出し、逆にそれが小さすぎると判断さ れた場合には「もっと大きく弾いて下さい。」とメッセージを出すなどして力もステップ S 114に戻り、演奏者に再度の押鍵を指示する。これは極端に強くまたは弱く押鍵され た場合のパワースペクトルはモデルとしてふさわしくないからである。アタック検出時 点の音量や振幅ではなぐ押鍵指示力 これまでの期間の音量の最大値または振幅 をチェックするのは、アタック検出時点の音量や振幅はピーク値ではなぐ音量や振 幅は通常、アタック検出後にピーク値となるからである。
[0231] 押鍵指示力 これまでの期間の音量の最大値または振幅の最大値が許容範囲内 に入っていると判断できたら、一時的に保存しておいたパワースペクトルと音量を押 鍵された音高の音のモデルとして RAM 11に記憶する(S 120)。
[0232] 以上のステップ S111— S120により単音のモデルが記憶される力 本実施形態で は、このモデル記憶の際に、外部環境によるノイズなどが発せられたとしても各音高
の単音のモデルが正しく記憶されるように、同じ鍵を再度押鍵するように指示し、これ により得られたモデルが先に記憶したモデルと一致すればそれを正規のモデルとし て残すようにしている。
[0233] 以下に説明するステップ S121— S127がこの処理である。 1回目の押鍵によるモデ ルを RAM3に記憶した後、演奏者にもう一度同じ鍵を押鍵するように指示する(S12 D oこの押鍵指示は、 1回目と同様、表示装置 8による表示あるいは音源 4による発 音、あるいは両者によって行ってもよい。次に、ステップ S 120で記憶したモデルを読 み出す (S122)。
[0234] 演奏者の押鍵によるモデル作成演奏音はマイクロフォン 10によって取り込まれる。
マイクロフォン 10を通して入力されたアナログ信号を AZD変 6でデジタル信号 に変換した後、その音量を音量測定部 11で検出する (S123)。ある程度以上の音量 が検出されたら、スペクトル作成部 12でデジタル信号を FFTしてパワースペクトルを 作成し、これを 2回目のモデルとする(S 124)。ある程度以上の音量が検出されて始 めてパワースペクトルを作成することにより、無駄な処理をなくし、本装置がパーソナ ルコンピュータなどで構成された場合の CPUの負荷を減らすことができる。
[0235] 2回目のモデルを作成したら、すでにアタックが検出されているかどうかをチェックす る(S125)。最初はアタックは検出されていないので次のステップに進み、アタックを 検出する(S126)。アタック検出は、音の立ち上がりを検出するものであり、例えば音 量変化で検出する方法やパワースペクトルの各スペクトルのパワー増加分力 検出 する方法などで実行できる。
[0236] ステップ S126でアタックを検出できな力つた場合、ステップ S 123に戻って再度音 量の検出からやり直す。また、アタックを検出できた場合には、ステップ S122で読み 出したモデル(1回目のモデル)とステップ S 124で作成したモデル(2回目のモデル) との比較処理 (S127)に移る。アタック検出(S126)は、同じ楽音の間は一度検出し たら 2度目以降は検出する必要はない。通常、アタックが検出されるのは音が立ち上 がる瞬間のみであり、必ずしもアタック時の楽音のパワースペクトルと 1回目のモデル とが一致するとは限らないからである。比較処理に際しては、 1回目と 2回目の押鍵に よる音量の違 、をなくすために両者の音量が同じになるように正規ィ匕することが好ま
しい。
[0237] 比較処理(S127)は、例えば 1回目のモデルと比べて 2回目のモデルに足りない不 足分のパワースぺ外ルの合計を距離として算出し、これを所定の閾値と比較し、距 離が閾値を超える場合には不一致と判断し、距離が閾値以下の場合には一致と判 断する方法により実行できる。この方法は、ピアノなどのような残響が多く残る楽器に は有効な方法である。このとき、距離が閾値以下の場合でも押鍵された鍵の楽音の ノ ヮ一スペクトルに構成音ごとの特徴が見つからない場合には不一致と判断するよう にすることちでさる。
[0238] ステップ S 127で不一致と判断した場合、 S4に戻って再度 1回目のモデル作成から やり直す。この再度の処理で作成されたモデルは、先に記憶されたモデルに上書き される。
[0239] ステップ S 127で一致と判断すれば、 S 10で RAM3に記憶したモデルを正しいモ デルとして残したままにしておく。次に、作成されたモデルの音がモデル作成の最終 音かどうかを判断する(S 128)。ステップ S 112で設定された音域の最終音 (最高音) ではな!/ヽと判断すれば、例えば半音高!ヽ次の音高の音にするなどモデル作成演奏 音を 1つ進め(RAM3にセット)てステップ S114に戻り(S129)、その音について同 様の処理を繰り返す。また、 S 128で最終音と判断すれば、作成された全ての音高の 音のモデルを RAM3または外部記憶装置 9に保存し(S 130)、モデル作成を終了す る。
[0240] 次に、アタック検出処理 (S115)について説明する。アタック検出は、ノイズや入力 信号レベルに応じた閾値に基づ 、て行う。モデルとレッスン時の演奏音のパワースぺ タトルはできるだけ早 、段階で一致検出することが望ま 、ので、モデル作成時に押 鍵後の演奏音のアタックを検出し、アタック検出時点のパワースペクトルをモデルとし 飞 feす。。
[0241] アタック検出に際しては、まず最初に、ピアノ Pを弾いていない状態で余分な音を立 てないようにして、音量測定部 11で騒音 (暗騒音)の音量を測定する。この測定時間 は特に問題にならないが、例えば 5秒程度でよぐ余り長いと騒音が入り込む可能性 が大きくなるので 1秒程度でもよ 、。
[0242] 音量測定部 11は、 AZD変換器 6からの出力サンプルが N個たまるごとに下記式で 音量を測定する。なお、 Siは潘目の出力(振幅)を表す。
[0243] [数 1]
1 N
X≥. I s i ( 1 )
N i = l
[0244] サンプリング周波数が 11025Hzの場合、 Nの値は 128程度が好ましぐこの場合には 約 12msecごとに繰り返し音量が計算されることになる。上記式で求めた音量 P の例
W
えば 5秒間の最大値をノイズ音量の最大値 P として保存する。
WNOISE
[0245] ノイズ音量の最大値 P WNOISEが保存されたら、これにアタックとみなす音量 P WATTACK を加算した値をアタック検出の音量閾値 P とする。つまり、ノイズ音量以上にある程
WTH
度の音量が入力されたらピアノ Pが演奏されたと判断する。図 33に P 、 P
WNOISE WATTAC
および P の関係を示す。
K WTH
[0246] 以上で説明したアタック検出は、入力されるデジタル信号の音量または振幅の影響 を受けるため、マイクロフォン 1の入力レベルが適正に設定される必要がある。
[0247] 図 34は、マイクロフォン 10と AZD変換器 6の部分(図 1)の詳細構成を示すブロッ ク図である。マイクロフォン 10の出力はマイクボリューム 101に入力され、次にマイク アンプ 102を経由して A/D変翻 6に入力される。マイクボリューム 102を調節する ことによってマイクの感度や入力音の音量に応じて AZD変 6の入力信号レベル を変更することができる。楽音判定装置がパーソナルコンピュータに実装される場合 などでは録音デバイスのミキサコントロールがこれに相当する。
[0248] ピアノ Ρの演奏音をマイクロフォン 10で取り込んで AZD変 6に入力するとき、 AZD変換後のデジタル信号がノイズに埋もれたり、クリップされな ヽようにするため に、モデル作成時に表示装置 8にピークメータを表示する。
[0249] ピークメータは、例えば図 35に示すように、点灯個数の振れ具合を変化 (色変化) させて AZD変換後のデジタル信号の一定時間ごとの振幅の最大値を表示し、その 最大値が 0のときには 1つも点灯しない表示になる。また、その最大値がデジタル信 号の量子化ビット数によって決まる振幅の最大値もしくはその半分程度になったとき
全てが点灯する表示になる。
[0250] ピアノ Pを強めに弹 、たときに、上記のように設定されたピークメータの 7— 8割程度 が点灯するようにマイクボリューム 101を調節すれば、ノイズに埋もれたり、クリップさ れたりしない適切な入力信号レベルにすることができる。なお、この調節の際に弾く 鍵は高音域より中音域や低音域の方が適して 、る。中音域や低音域の方が適正な 音量が得られるからである。また、振幅の最大値を更新つする一定時間間隔は、 10— 50msec程度が適当である。余り速すぎるとピークメータの動きに目が追いつかないし 、余り遅すぎると瞬間的な音量の変化が表示されなくなってしまうからである。
[0251] アタックとみなす音量 P は、マイク入力レベルを適正に設定するために表示
WATTACK
したピークメータの振れ具合に応じて変える。マイクボリューム 101の調節によってピ ークメータの 7— 8割程度が振れるようにできれば問題はないが、マイクロフォン 10の 感度が低いため、マイクボリューム 101を最大限にしてもピークメータが余り振れない ような場合には、 7— 8割程度が振れるようにした場合と同じ閾値では、思いつきり強く 弾いてもアタックが検出されな力つたり、力なり強く弾かないとアタックが検出されなか つたりする。また、ピアノのような楽器では余り強く弾くと高い倍音が強く出るため、強 く弹 、てモデルを作成すると、レッスン時にも同じように強く弾かな 、と一致が得られ なくなってしまう。
[0252] ピークメータは、音量 P として AZD変換後のデジタル波形の振幅の平均値を表示
W
して 、るので、ピークメータが半分しか振れな 、場合にはアタックとみなす音量 P
WATT
も半分程度にすればよい。つまり、通常(強めに弾いたときにピークメータが 7— 8
ACK
割程度振れる)時のアタックとみなす音量 P が 100位で丁度よいことが実験的
WATTACK
に分力つているとき、ピークメータがその半分位しか振れないときにはアタックとみな す音量 P も半分の 50位にすればよい。
WATTACK
[0253] 次に、音量 (振幅)チェック処理 (S9)で用いられる音量最大値許容範囲の設定に ついて説明する。図 36は、あるピアノを最低音の音高 (ノートナンパ) 21から最高音の ノートナンパ 108までの 88鍵を、ほぼ同じ強さで弾いたときの音高対音量最大値の特 性を示す。なお、音量最大値とは各鍵を弾いたときに上記式により算出される音量 P の最大値のことである。同図にみられるように、同じ強さで弾いた場合でも音域 (音
高)によって音量値に大きな差があることが分かる。特に最高音に近い音域では非常 に小さ 、音量最大値し力得られな 、。このように音域によって音量最大値に大きな差 があるため、単純に音量最大値が同じ位になるようにガイドしたのでは同じ強さで弹 いてもらうことはできない。
[0254] 図 36の音高対音量最大値の特性が予め分力つている場合にはこの特性に従って 音量最大値の許容範囲を変化させればよいが、この特性は個々のピアノによって異 なるし、マイクロフォンの特'性によっても音域ごとの音量が異なってくるので、全ての 装置に共通的な音量最大値許容範囲を予め設定しておくことはできない。
[0255] これは、以下のような方法で個々の装置において音量最大値許容範囲を設定する ことにより解決できる。ピアノによって個体差があり、マイクロフォンによって周波数特 性が異なるが、アコースティックピアノで一般的なマイクロフォンを使う限り最高音あた りの音量が最も小さぐ中音域あたりの音量は力なり大きいことに間違いない。そこで 、予め最高音と中音域の 1音(中央のドなど)をモデル作成にふさわしい普通の強さ、 またはやや弱 、タツチで弹 、てもら!/、、そのときの音量最大値を保存しておく。
[0256] この 2つの音量最大値にある程度の幅を持たせた範囲を音量最大値許容範囲とす る。つまり、最高音の音量最大値を P
WH、中音域の音量最大値を P
WMとすると、入力 された音の音量最大値が P XR力 P /Rf (R, R' は 1.5程度の数値)の範囲
WH WM
に入って 、るかどうかをチェックし、入って ヽな 、場合には「もっと小さく弹 、て下さ!ヽ 」や「もっと大きく弾いて下さい。」とメッセージを出すなどして、再度押鍵してもらうよう にする。なお、 Rと は同じ値でも異なる値でもよい。
[0257] また、モデル作成にふさわしい普通の強さで弾くということが演奏者の主観が入つ て難しぐまた同じ位の強さで弾くということが難しい場合には、最高音と中音域の 1 音を思いつきり強く弾いてもらって音量最大値を測定し、それを何分の一かにした音 量を普通の強さで弹 、たときの音量と類推し、この音量を基準値として音量最大値許 容範囲を設定するようにしてもよい。ピアノの構造上、強い音といっても限界があるの で、この方法により個人差のないデータを入力することができる。
[0258] また、モデル作成する音域の中の数力所の音を弾いてもらい、それにより得られる 音量最大値から音高対音量最大値の特性を作成し、この特性から音量最大値の許
容範囲を決めることもできる。この場合も、標準の強さで弾いてもらうことが難しい場合 には各鍵を思いつきり強く弾いてもらって音量最大値を測定し、それを何分の一かに した音量を音量最大値許容範囲の基準値とすることができる。
[0259] なお、各鍵の押鍵強さを判断するのに使う数量は、必ずしも音量最大値である必要 はなぐ AZD変換後のデジタル波形の振幅の最大値などでもよい。また、最大値で はなく平均値を使うこともできる。
[0260] 次に、離鍵指示(S117)と無音検出処理 (S118)について説明する。図 37は、モ デル作成時に表示装置 8に鍵盤を表示し、押鍵する鍵のみの色を変えて押鍵を指 示する押鍵指示の例を示す。押鍵指示と同時に音源 4に指示してスピーカ 5から発 音させるようにしてちょい。
[0261] 押鍵指示に従って押鍵され、パワースペクトルを作成し、音量を算出したら、離鍵を 指示する(S117)。離鍵指示は、押鍵指示の反対であり、表示装置 8に表示した鍵の 色を元に戻すか、または押鍵指示のときとは異なる色で表示し、以下に説明するよう に無音になったと判断したときに鍵の色を元に戻すことにより行う。なお、スピーカ 5か ら発音させている場合にはその停止を音源 4に指示する。
[0262] 離鍵後も残響音が残って 、るので、次の音のモデル作成のための押鍵ある 、は 2 回目の押鍵の前に残響音が消えるのを待つ(S118)。残響音の音量は、音量 P を
W
求める上記式によって求めることができる。
[0263] 図 38は、アコースティックピアノにおいて最低音(ノートナンパ 21)を押鍵してすぐに 離鍵したときに得られた音量変化を示し、実測により得られたものである。同図のよう に、離鍵後の残響音は音量はアタック直後に著しく低下するが、その後は上下しなが ら徐々に減衰していくので、音量が単純に閾値 P を一度下回ったということで無音
WTH
と判断すると、その後にまた音量が上がってしまう可能性がある。そこで、閾値 P
WTH
以下になっても音量を追跡するとともに経過時間をカウントし、再び音量が閾値 P
WTH
を上回ったら経過時間をクリアする。そして、閾値 P 以下の経過時間が連続して例
WTH
えば 1秒になって初めて無音と判断する。
[0264] ここで用いる閾値 P は以下のようにして決定できる。モデル作成に先立ち、ノィ
WTH
ズの音量を測定する。これは、演奏者に音を立てないように静かにしてもらってマイク
口フォン 10から 1一 5秒程度の間の音を取り込み、上記式により音量を算出すればよ い。これにより測定された音量の最大値をノイズ音量の最大値 P とする。閾値 P
WNOISE
はノイズ音量の最大値 p に無音とみなす音量 P を加えたものとする。
WTH WNOISE WSILENT
[0265] 無音とみなす音量 P は小さいほど無音に近い状態で判断できるが、音の減
WSILENT
衰は時間が経過するほど減衰する音量の程度が減っていくので、余り小さくすると音 量が閾値 P 以下になるまでの時間が著しく長くなつてしまうので、パワースペクトル
WTH
に現れな ヽくら!ヽの音量まで低下したら無音と判断されるように設定するのがよ ヽ。
[0266] また、無音とみなす音量 P を AZD変換後のデジタル信号の振幅に応じて変
WSILENT
えるようにしてもょ 、。例えば AZD変換後のデジタル信号の一定時間ごとの振幅の ピークを図 35に示すようなピークメータで表示するとき、通常(強めに弾いたときにピ ークメータが 7— 8割振れる)時の無音とみなす音量 P 力 0位の値で丁度よ ヽ
WSILENT
ことが実験的に分力つているとき、ピークメータがその半分位しか振れないときには無 音とみなす音量 P もその半分の 25位にする。
WSILENT
[0267] 図 39は、アコースティックピアノにおいてノートナンノ 48 (中央のドよりも 1オクターブ 低いドの音)を普通の強さで押鍵したときに得られた音量変化を示し、実測により得ら れたものである。図 40は、図 39の部分拡大図である。同図のように、音量はアタック 直後に著しく低下するが、その後は上下しながら徐々に減衰し、 10秒前後でノイズと 区別が付かない程度まで減衰する。低音になるほどこの減衰に力かる時間は長くな る力 次の音のモデル作成のための押鍵あるいは 2回目の押鍵に早く入れるように、 無音と判断できる程度に音量が減衰するのをできるだけ早く検知してその旨をガイド するのがよい。
[0268] 図 41一図 44はそれぞれ、実測により得られたアタック直後、アタック力も約 1.4秒後 、アタックから約 4.1秒後、アタックから約 5.8秒後のパワースペクトルを示す。また、図 16は、次のモデル作成音 (ノートナンパ 50)をやや弱く押鍵したときに得られたパワー スぺクトノレを示す。
[0269] 図 41一図 44と図 45とを比較すれば、図 39, 40においてどの程度に音量が減衰す れば次のモデル作成が影響されないかが判断できる。この例の音域の場合、弱めに 弾いても比較的大きなパワースペクトルが得られているので、アタックから 1.4秒後や
4.1秒後程度でも次のモデル作成への影響は殆どな!/、。つまり無音とみなす音量 P
WS
は 250— 750程度でも構わないことになる力 もっと小さくしてできるだけ無音に近
ILENT
V、状態で次のモデル作成に移る方が望まし 、。
[0270] 図 46は、最高音 (ノートナンパ 108)を普通の強さで押鍵したときに得られた音量変 化を示し、最高でも 300程度の音量しか出ないのが分かる。この場合の無音とみなす 音量 P を 250— 750程度としたのでは大きすぎる。図 39と図 45力 、無音とみ
WSILENTを
なす音量 P を全音域で同じとするならば、 10— 75程度がふさわしいことが分か
WSILENT
る。それより大きくては、最高音 (ノートナンパ 108)のように音量が出ない音域で少し 弱めに押鍵してしまうと最大音量が P +P を下回ってしまうことがあり、そ
WNOISE WSILENT
れより小さくては、少し大きめのノイズが入ると無音と判断できない状況が生じるから である。
[0271] なお、図 37の押鍵指示において黒丸印で示すように、モデル作成時に表示装置 8 に表示する鍵盤の中央「ド」などの鍵に目印表示 Sを常時表示し、実際のピアノの鍵 盤の中央「ド」の鍵にも同じ目印表示のシール Sを貼っておくことなどにより両鍵盤の 対応を分かりやすくできる。また、通常、実際のピアノの鍵盤上側部にはメーカ名など のロゴ 102が付されている力 このロゴ 102の所定位置(図 37では「B」の位置)に対 応させた目印を表示装置 8に表示させるなどしてもよい。これによりモデル作成時の 負担を軽減することができる。
[0272] 図 47は、レッスンフェーズの CPU1の処理を示すフローチャートである。レッスン開 始が指示されたとき、まず、 RAM3または外部記憶装置 9からモデルをワーク領域に 読み込む(S 131)。読み込まれるモデルは、モデル作成フェーズで設定された音域 に含まれる全ての音高の音のモデルである。ここでは、前回作成したモデルまたは前 回使用したモデルを自動的に読み込むようにしてもょ ヽし、これまで作成したモデル の中から演奏者に選択させて読み込むようにしてもょ 、。
[0273] 次に、演奏者がレッスンする楽曲を選択する(S132)。この際、 RAM3または外部 記憶装置 9に予め記憶されているレッスン曲データを検索して楽曲の一覧を作成し、 この一覧の中力も演奏者がレッスンする楽曲を自分で選択するようにしてもょ 、し、演 奏者のレベルにあった楽曲を装置側で自動的に選択して提示するようにしてもょ 、。
レッスンする楽曲が決まったら、この楽曲の演奏情報を RAM3または外部記憶装置
9から読み出す (S133)。
[0274] レッスンで表示装置 8に押鍵指示を表示したり伴奏をしたりするのに使用される演 奏情報のフォーマット例は、図 2に関して説明した。
[0275] 次に、選択された楽曲に含まれる全ての音高の単音のモデルが S131で読み込ん だモデルに含まれているかどうかをチェックする(S 134)。ここで、選曲した楽曲の全 ての音高の音の単音モデルが含まれていないと判断すれば、ステップ S132に戻つ て別の楽曲の選択を指示するか、ステップ S 131に戻って別のモデルの読み込みを 指示する。
[0276] ステップ S134で、選曲した楽曲の全ての音高の音の単音モデルが含まれている判 断すれば、この楽曲の最初の楽音の音高を RAM3上の変数にセットする(S135)。 同時に、この音高の音の鍵を演奏者に押鍵してもらうための押鍵指示を表示装置 8 に表示し(S136)、さらに、ステップ S131で読み込んだモデルからこの音高の音に 対応する単音モデルを読み出す (S137)。
[0277] 演奏者は表示装置 8に表示された押鍵指示を見てピアノ Pの鍵を押鍵するが、その ときに発生される演奏音はマイクロフォン 10によって取り込まれる。マイクロフォン 10 を通して入力されたアナログ信号を AZD変換器 6でデジタル信号に変換した後、そ の音量を音量測定部 11で検出する(S28)。ステップ S139— S142の処理は、図 32 の S 124— S 127の処理と同様であるので、詳細な説明は省略する。ステップ S 142 で不一致と判断した場合、ステップ S139に戻って再度音量の検出からやり直す。
[0278] ステップ S142で一致と判断した場合には、まず、アタック検出をリセットし (S143)、 選曲した楽曲の最後の楽音力否かを判断する(S144)。ここで楽曲の最後の楽音で ないと判断すれば、次の楽音の音高を RAM3にセットし(S 145)、ステップ S 136に 戻る。以上の処理を楽曲の最後の楽音まで繰り返し実行し、楽曲の終わりに達したな らばもう一度レッスンをするかを尋ねたり(S146)、別の楽曲をレッスンするかを尋ね たりして(S147)その応答に対応する処理に移る。
[0279] 図 48は、 1回目のモデルと 2回目のモデルとの比較処理(S 127)あるいはモデルと レッスン時の演奏音のパワースペクトルとの比較処理(S 142)の例を示すフローチヤ
ートである。
[0280] まず、今回の演奏音と比較するためのモデルを、ステップ S122あるいはステップ S 137で読み出したモデル力も作成する(S151)。単音の演奏音の場合は単音のモデ ルそのままでよぐ和音の演奏音の場合には単音のモデルを合成する。また、モデル と今回の演奏音の音量の違!、をなくすためにモデル作成時の音量と今回の演奏音 の音量が同じになるようにモデルと今回の演奏音のパワースペクトルを音量によって 正規ィ匕する。和音の演奏音の場合には和音を構成する音のモデル作成時の音量の 総和によって正規化する。なお、音量ではなく波形のピーク値によって正規ィ匕しても よい。
[0281] モデルが作成できたら、モデルと比べて今回の演奏音に足りない不足分のパワー スペクトルの合計を距離として算出する(S 152)。この方法は、ピアノなどのような残 響が多く残る楽器には有効な方法である。
[0282] 次に、モデルと今回の演奏音が一致すると判断するための閾値を設定し (S153)、 ステップ S152で算出した距離をこの閾値と比較する(S154)。距離が閾値以上であ る場合には不一致と判断し、距離が閾値より小さい場合には一致と判断する。このと き、距離が閾値より小さい場合でも今回の演奏音のパワースペクトルに構成音ごとの 特徴が見つからな 、場合には不一致と判断するようにしてもょ 、(S 155)。ステップ S 154ある 、はステップ S 155で不一致と判断した場合、ステップ S 114に戻って再度 押鍵指示 (音量検出)からやり直す。また、ステップ S155で一致と判断した場合には ステップ S 128に進む。
[0283] レッスン時のピアノロールつまりスクロール方式による押鍵指示の表示の例は、図 3 に関して説明した。
[0284] ステップ S142 (図 47)で、次に押鍵すべく楽音のモデルとピアノ Pの演奏音力も計 算されたパワースペクトルの距離が閾値以下であることが判断されると、ピアノロール は下方向にスクロールされ、次の押鍵すべき楽音の押鍵指示マーク Mが鍵盤図形 K に最も近 、位置まで下がってきた時点で止まる。押鍵指示された楽音が押鍵される までピアノロールのスクロールが停止しているので、演奏者は自分のペースで次の楽 音を押鍵することができる。ステップ S133 (図 47)で読み出す演奏情報には、演奏者
に押鍵を促す楽音だけでなぐ伴奏の演奏情報も含ませることができる。この場合に は次に押鍵すべき音のタイミングまでの伴奏音が音源装置 4を通してスピーカ 5から 出力される。
[0285] 現在押鍵されて!、る!/、るべき鍵はマーク mで示される。このマーク mの長さはこの鍵 をあとどれだけ長く押鍵していなくてはならないかを示しており、これにより演奏者は 離鍵するタイミングを前もって知ることができる。小節線 BLで示すように、この例では 2小節分の押鍵指示を同時に 1画面に表示しているが、同時に表示する小節数、表 示する演奏情報の範囲は任意である。
[0286] 第 5実施形態は、さらに種々に変形して実施可能である。例えば、ステップ S129 ( 図 32)では、音高を音階に従って直上の音高に上げるのではなぐ白鍵と黒鍵を別 にしてそれぞれ個別に連続して押鍵させるように音高を上げていくのがよい。音階に 従って順に音高を上げていくと白鍵と黒鍵を交互に弾く場合が生じ、押鍵指示された 鍵に対応しない鍵を弾く誤りが起こることがあるからである。
[0287] また、設定されたモデル作成音域の全ての鍵をある色で表示し、その色を変えるな どして押鍵指示を行えば、あとどれだけの単音モデルを作成しなければならな ヽかが 容易に分力る。
[0288] [第 6実施形態]
ところで、モデル作成時に、演奏者は鍵によっていろいろな強さで押鍵する可能性 があり、このように押鍵強さが各鍵で異なって発生された演奏音を基にモデルを作成 することは好ましくない。また、レッスン時、次に弾くべき音が和音の場合には和音を 構成する単音のモデルを合成してモデルとする力 ピアノの場合には同じ強さで押 鍵しても音域によって音量が大きく異なるため、モデル合成時に各単音の音量を正 規ィ匕して合成することは適当でない。以上のことから、モデル作成時には演奏者に各 鍵を同じ強さで弾いてもらうようにする。それにより発生された演奏音を基にモデルを 作成し、和音の場合には各単音のモデルをそのまま合成し、合成後に全体として正 規ィ匕して使用できるようにする工夫が必要である。
[0289] また、アタック検出は入力されるデジタル信号の音量または振幅の影響を受けるた め、入力される演奏音のレベルが適正に設定される必要がある。さらに、同じ強さで
弾いた場合でも音域 (音高)によって発生される音量に大きな差があるので、単純に 音量最大値が同じ位になるようにガイドしたのでは同じ強さで弾いてもらうことはでき ない。また、モデル作成時に余り強く押鍵すると、高次倍音の成分が強く出てしまい、 これにより作成されたモデルとレッスン時の演奏音のパワースペクトルの一致検出が 難しくなつてしまう。そのため、モデル作成時には普通の強さ力、やや弱めに押鍵し てもらうことが望ましい。
[0290] また、モデル作成時には、モデルを作成する音域の鍵を次々と押鍵してそれぞれ の単音のモデルを作成して記憶していくが、余り早く次の鍵を押鍵すると前の演奏音 の残響がまだ残って 、るため余分な周波数成分が含まれてしま ヽ、押鍵した鍵に対 応する本来のモデルが作成されないという問題がある。そうすると、レッスン時に正し Vヽ鍵を押鍵してもモデルとの一致が得られなくなってしまう。十分に残響がなくなるま で待って次の鍵のモデル作成を開始させることによりこの不都合をなくすことができる 1S 単音ごとに必要以上に十分な時間を費やすことは無駄であり、広い音域のモデ ルを作成する場合には多大に時間を要することになる。また、どの時点で次の鍵を押 鍵してモデル作成に入って 、 、かはっきりしな!/、。
[0291] また、上述の各音高の単音のパワースペクトルをモデルとして作成するとき、マイク 口フォンからの入力音にはピアノの音以外にピアノのアクション音も含まれてしまう。こ のアクション音のパワースペクトルは、 FFTで得られたモデルおよびレッスン時の演 奏音のパワースペクトルの低音部に入って 、る。
[0292] 高音の鍵の場合には本来のピアノ音である弦の振動音よりもアクション音のパワー スペクトルの方が強く出るため、モデルとレッスン時の演奏音とを比較すると、ァクショ ン音のパワースペクトルの一致が比較的大きく評価されてしまう。このアクション音が モデルとレッスン時の演奏音の含まれることにより両者の正しい一致が得られず不都 合であるため、何らかの工夫が必要である。
[0293] アクション音が評価されないようにするには、アクション音を取り除けばよい。し力し、 アクション音はアクション部分力も発せられるノイズのようなものであり、そのパワース ベクトルは毎回異なるためアクション音のみを選択して取り除くことは困難である。
[0294] また、モデルとレッスン時の演奏音のパワースペクトルの比較の前処理としてパワー
スペクトルの正規ィ匕を行うが、単純にパワースペクトルを音量で正規ィ匕すると外部環 境によるノイズなども正規化されてしまい、特に弱く弾いた音を正規ィ匕した場合、ノィ ズ成分を大きく持ち上げてしまう結果になる。従って、このようなノイズがモデルやレツ スン時の演奏音に含まれて 、ても両者の正し 、一致が得られな 、。
[0295] また、パワースペクトルを作成するために FFTを行うと、パワースペクトルに DC (直 流)成分が現れる。そのような DC成分がモデルやレッスン時の演奏音のパワースぺ タトルに含まれて 、ても、モデルとレッスン時の演奏音のパワースペクトルの正し、一 致が得られない。
[0296] さらに、モデルとレッスン時の演奏音のパワースペクトルの比較に当たってパワース ベクトルの正規ィヒのために音量を測定する場合、 DC成分の影響で音量を正しく測 定できない。 AZD変換前のアナログ信号にのっている DCのオフセットは、 AZD変 換後のデジタル信号にものってしまうため、波形の振幅力 音量を求めようとすると D Cのオフセットによって音量を正しく測定できない。
[0297] 従って、モデルとレッスン時の演奏音のパワースペクトルの比較を正しく行うにはノ ィズ成分や DC成分の影響も受けな 、ようにする工夫も必要である。
[0298] 次に説明する第 6実施形態では、 自然楽器の演奏において演奏指示手段の指示 どおりの操作がなされた力どうかを判定するためのモデルを誤りなく作成できるように する。
[0299] 第 6実施形態として、モデル作成にお 、てモデルに含まれるアクション音、ノイズ成 分および DC成分を低減する方法を説明する。以下では、自然楽器をピアノ (アコ一 スティックピアノ)として説明する力 その他の自然楽器でも同様に考えることができる
[0300] まず、モデルに含まれるアクション音を低減する方法ついて説明する。マイクロフォ ン 10から音を取り込むときにピアノ Pを弹くと、どうしてもピアノ Pのアクション音まで取 り込んでしまう。図 49はマイクロフォン 10から取り込まれた音のスペクトルの例を示す 図である。
[0301] アクション音は毎回違ったパワースペクトルを有し、ノイズのようなものである。ァクシ ヨン音は主に低音部に強い成分を持つパワースペクトルとして現れる力 高音部の鍵
以外ではアクション音が入ってもピアノ本来の音(弦の振動音)のパワースペクトルの 方がかなり大きぐ押鍵された鍵の演奏音とモデルの比較に殆ど影響しな!、。
[0302] しかし、高音部の鍵の場合、弦の振動音のパワースペクトルが小さ!/、ため、ァクショ ン音のパワースペクトルの影響が大きぐ押鍵された鍵の演奏音とモデルを比較する ときにアクション音のパワースペクトルが大きく評価される結果となってしまう。したがつ て、押鍵された鍵の演奏音とモデルの正しい比較結果が得られなくなる。アクション 音のパワースペクトルが毎回同じであればそれを減算して取り除くことは可能である 力 アクション音のパワースペクトルはノイズのようなもので毎回異なるので単純に減 算して取り除くことは不可能である。
[0303] そこで、モデルを作成するときに、モデルを作成しょうとする音高の音の基本周波 数 f 以下のパワースペクトルをカットする。ただし、ピアノ Pの調律がずれていることも
0
考えられるので、実際にカットする周波数は基本周波数 f よりも若干低い周波数、例
0
えば半音低 、周波数にすることが好ま 、。アクション音に含まれる周波数成分より 基本周波数が低い音高ではアクション音のパワースペクトルを取り除くことができない ことになるが、上述のように高音部の鍵以外では弦の振動音のパワースペクトルに比 ベてアクション音のパワースペクトルは比較的小さ 、ので、レッスン時に押鍵された鍵 の演奏音とモデルとを比較する上での問題は生じない。
[0304] 次に、モデルに含まれるノイズ成分を低減する方法について説明する。モデルを作 成するときにマイクロフォン 10から音を取り込むと、ノイズが混入されるのが普通であ る。ノイズには、周囲の環境音やマイクロフォン 10のケーブルに入り込むノイズ、マイ クアンプや AZD変 6のアナログ回路部分に入り込むノイズなどがある。ピアノ P の音の音量が大きぐそれに比較してノイズが目立たないほど小さければ問題はない 力 弱い押鍵での演奏音をそのままモデルにした場合、モデルの音量は小さいので 、モデルとレッスン時に押鍵された鍵の演奏音を比較する際に音量で正規ィ匕を行うと 、ノイズ成分も大きく持ち上げられてしまうことになる。
[0305] 一方、レッスン時に押鍵された鍵の演奏音にもノイズが含まれている力 その演奏 音の音量が大きければ相対的にノイズ成分のパワースペクトルが低くなり、音量で正 規化してもノイズ成分のスペクトルは小さいままである。そのため、モデルとレッスン時
の押鍵された鍵の演奏音の一致は得られなくなってしまう。
[0306] この不都合をなくすために、演奏者がピアノ Pを弹 ヽて ヽな 、状態でマイクロフォン 10から音を数秒取り込み、取り込んだ入力音を一定時間間隔でオーバラップさせな 力 Sら FFTし、これにより求められたパワースペクトル中でのパワー最大値を測定して 保存しておく。このパワー最大値をノイズと判断する基準値とする。すなわち、モデル とするパワースペクトルの中力 このパワー最大値よりも低 、パワーのパワースぺタト ルをカットすることによりノイズと思われる成分を取り除く。図 50はノイズ除去前 (a)とノ ィズ除去後(b)のパワースペクトルの例を示す。なお、モデルの音量の値はそのまま とし、レッスン時にモデルと演奏音のパワースペクトルの比較に際し、この音量の値に 基づいて正規化を行う。
[0307] 次に、モデルに含まれる DC成分を低減する方法について説明する。押鍵された鍵 の演奏音を FFTしてパワースペクトルに変換すると、 DC成分は最も低 、周波数のパ ワースベクトルとして現れる。 DC成分のパワースペクトルが実際に押鍵された鍵自体 の演奏音のパワースペクトルよりも強く出てしまう場合もある。このような場合には、モ デルとレッスン時に押鍵された鍵の演奏音を比較する際に DC成分が大きく評価され てしまい不都合が生じる。そこで、 FFTのサイドローブも考慮し、得られたパワースぺ タトルにおいて最も低い周波数とその隣のパワースペクトルを強制的にゼロにして D C成分と考えられる部分を取り除く。
[0308] 次に、音量を測定するときの DCを取り除く方法について説明する。モデルとレツス ン時に押鍵された鍵の演奏音を比較する際にパワースペクトルを音量で正規ィ匕する 力 AZD変換前のアナログ信号に DCのオフセットがのっていると AZD変換後のデ ジタル信号にも DCのオフセットがのってしまい、音量の測定では単位時間当たりの 波形の振幅の絶対値の平均を音量として 、るため正 、音量を求めることができな い。そこで、音量を測定する瞬間の例えば 1秒前までの波形力 音の振幅の平均値 を求める。この平均値は波形の DCを表すのでこの平均値を音量測定の波形力 減 算することにより DCを取り除くことができる。図 51は DC除去前 (a)と DC除去後 (b) の波形の例を示し、波形振幅の中心の 0レベルからのずれがなくなる様子を示してい る。
[0309] 本発明は種々の実施形態で実施可能である。例えば、作成されたモデルはその後 のレッスンで継続して使用されるものであるので、特に注意深ぐ間違いなく作成され る必要があるのでモデル作成者の負担が大きい。この負担を軽減するために、ステツ プ S19 (図 32)で音高を音階に従って直上の音高に上げるのではなぐ白鍵と黒鍵を 別にしてそれぞれ個別に連続して押鍵させるように音高を上げていくのがよい。音階 に従って順に音高を上げていくと白鍵と黒鍵を交互に弾く場合が生じ、押鍵指示さ れた鍵に対応しな 、鍵を弾く誤り力起こることがある力らである。
[0310] また、設定されたモデル作成音域の全ての鍵をある色で表示し、その色を変えるな どして押鍵指示を行えば、あとどれだけの単音モデルを作成しなければならな ヽかが 容易に分力る。
[0311] なお、図 32のフローチャートによれば、 1回目と 2回目のモデルとがー致しないとき 、再度 1回目のモデル作成力 行うようにしており、これによれば 1回目のモデルを記 憶しておくだけでよいが、同一音高の単音に対して 1回目、 2回目、 3回目、…という ように順次作成されたモデルを記憶していき、複数回、例えば 2回の一致が得られた 時点でその音高の単音のモデル作成を終了して、一致したモデルを正規のモデルと して採用するようにすることもできる。
[0312] また、上記したアタック検出、無音検出、アクション音やノイズや DC成分除去の技 術は適宜組み合わせて採用することができる。