(57)【特許請求の範囲】
【請求項１】
演奏操作により得られるベロシティに基づいて、演奏強度を算出する演奏強度算出手段と、
入力された信号波形のスペクトルを分析する分析手段と、
前記分析手段によって分析されたスペクトルの振幅における複数の極小点を検出する検出手段と、
この検出手段により検出された複数の極小点のうち、隣接する極小点間を線形補間して得られる線分上の位置及び前記演奏強度算出手段により算出された演奏強度に基づいて前記スペクトルの各振幅を分離する分離ポイントを算出する分離ポイント算出手段と、
この分離ポイント算出手段により算出された分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離する分離手段と、
を備えた楽音制御装置。
【請求項２】
前記分離手段は、前記分離ポイント算出手段により算出された分離ポイントに対して算術平均処理を行う平均処理手段を含み、当該算術平均処理を行なった分離ポイントにより、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離することを特徴とする請求項１に記載の楽音制御装置。
【請求項３】
前記分離手段は、前記スペクトル上において、予め設定された周波数範囲に含まれる前記スペクトルのみ、前記分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離することを特徴とする請求項１に記載の楽音制御装置。
【請求項４】
演奏操作により得られるベロシティに基づいて、演奏強度を算出する演奏強度算出ステップと、
入力された信号波形のスペクトルを分析する分析ステップと、
前記分析されたスペクトルの振幅における複数の極小点を検出する検出ステップと、
この検出された複数の極小点のうち、隣接する極小点間を線形補間して得られる線分上の位置及び前記算出された演奏強度に基づいて前記スペクトルの各振幅を分離する分離ポイントを算出する分離ポイント算出ステップと、
この算出された分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離する分離ステップと、
をコンピュータに実行させる楽音制御処理のプログラム。
【請求項５】
前記分離ステップは、前記算出された分離ポイントに対して算術平均処理を行う平均処理ステップを含み、当該算術平均処理を行なった分離ポイントに基づき、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離することを特徴とする請求項４に記載の楽音制御処理のプログラム。
【請求項６】
前記分離ステップは、前記スペクトル上において、予め設定された周波数範囲に含まれる前記スペクトルのみ、前記分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離することを特徴とする請求項４に記載の楽音制御処理のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音制御装置および楽音制御処理のプログラムに関し、特に、複数種類の音源が混在する信号波形から特定の音源の信号波形を分離する楽音制御装置および楽音制御処理のプログラムに関するものである。
【背景技術】
【０００２】
一般的な楽音信号波形は、曲を構成する複数のパートをそれぞれ独立した音源とし、それらの音源の信号波形を混在させることにより生成される。音源であるパートの種類には、メロディ、コード、ドラム、ベースなどがあり、さらに、ヴォーカルが加わる場合もある。このような複数種類の音源が混在する信号波形の中から特定の音源の信号波形を抽出して、その抽出した信号波形又は残りの信号波形を利用して新たな曲を構成する要求がある。例えば、ヴォーカルの音源の信号波形を分離して除去し、メロディ、コード、ドラム、ベースの音源の信号波形をカラオケの伴奏として使用することが要求されている。あるいは、ドラムおよびベースの音源の信号波形と他の音源の信号波形とを分離して、メロディ演奏の伴奏としてドラムおよびベースの信号波形を使用したり、その反対に、ドラム演奏やベース演奏にメロディおよびコードの信号波形を利用することが要求されている。
【０００３】
ある特許文献による音声信号処理装置においては、ＬチャンネルおよびＲチャンネルのステレオ音声として特定の定位、特定の周波数帯の音声成分をキャンセルするために、Ｌ側フィルタ手段、Ｒ側フィルタ手段において、例えばヴォーカル音声としての帯域など所定の帯域（実施形態においては、９０Ｈｚ〜６ｋＨｚ）を抽出し、これをＬチャンネル減算手段、Ｒチャンネル減算手段での減算に用いることで、例えばセンター定位されている音声の中からキャンセルを求める音声成分のみをキャンセルできるようになっている。（特許文献１参照）
【特許文献１】特許平１１−３８９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１における明細書の段落番号００３１には、ドラムスやベースの低域の演奏音声がセンター定位であったとしても、それらはキャンセルされず、音楽として不自然にならない音声出力が可能になると記載されている。しかしながら、ドラムやベースの音源は、低域の周波数成分を多く含んではいるが、高域の周波数成分も含んでおり、その高域成分によって豊かな音楽性を醸し出している。また、ドラムの音源は、低域のバスドラムだけでなく、中域のスネアや比較的高域のシンバルを含んでいるので、特許文献１における図面の図１および図１１に記載されているローパスフィルタやバンドパスフィルタによって周波数分離すると、ドラムスやベースの中域および高域の成分がキャンセルされて、その豊かな音楽性が失われてしまうことになる。
【０００５】
本発明は、このような従来の課題を解決するためのものであり、複数種類の音源が混在する信号波形の中から、メロディやコードなどの周期的な音源とドラム、パーカッションなどのリズムセクションの非周期的な音源やベースの音源とを分離して、新たな楽音発生に利用できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の楽音制御装置は、演奏操作により得られるベロシティに基づいて、演奏強度を算出する演奏強度算出手段と、入力された信号波形のスペクトルを分析する分析手段と、前記分析手段によって分析されたスペクトルの振幅における複数の極小点を検出する検出手段と、この検出手段により検出された複数の極小点のうち、隣接する極小点間を線形補間して得られる線分上の位置及び前記演奏強度算出手段により算出された演奏強度に基づいて前記スペクトルの各振幅を分離する分離ポイントを算出する分離ポイント算出手段と、この分離ポイント算出手段により算出された分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離する分離手段と、を備えた構成になっている。
【０００９】
請求項１の楽音制御装置において、請求項２に記載したように、前記分離手段は、前記分離ポイント算出手段により算出された分離ポイントに対して算術平均処理を行う平均処理手段を含み、当該算術平均処理を行なった分離ポイントにより、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離するような構成にしてもよい。
【００１０】
請求項１の楽音制御装置において、請求項３に記載したように、前記分離手段は、前記スペクトル上において、予め設定された周波数範囲に含まれる前記スペクトルのみ、前記分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離するような構成にしてもよい。
【００１３】
請求項４に記載の楽音制御処理のプログラムは、演奏操作により得られるベロシティに基づいて、演奏強度を算出する演奏強度算出ステップと、入力された信号波形のスペクトルを分析する分析ステップと、前記分析されたスペクトルの振幅における複数の極小点を検出する検出ステップと、この検出された複数の極小点のうち、隣接する極小点間を線形補間して得られる線分上の位置及び前記算出された演奏強度に基づいて前記スペクトルの各振幅を分離する分離ポイントを算出する分離ポイント算出ステップと、この算出された分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離する分離ステップと、をコンピュータに実行させる。
【００１６】
請求項４の楽音制御処理において、請求項５に記載したように、前記分離ステップは、前記算出された分離ポイントに対して算術平均処理を行う平均処理ステップを含み、当該算術平均処理を行なった分離ポイントに基づき、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離するような構成にしてもよい。
【００１７】
請求項４の楽音制御処理において、請求項６に記載したように、前記分離ステップは、前記スペクトル上において、予め設定された周波数範囲に含まれる前記スペクトルのみ、前記分離ポイントに基づいて、前記入力された信号波形を、周期的成分を有する信号波形と非周期的成分を有する信号波形とに分離するような構成にしてもよい。
【発明の効果】
【００２０】
本発明の楽音制御装置および楽音制御処理のプログラムによれば、複数種類の音源が混在する信号波形の中から、メロディやコードなどの周期的な音源とドラム、パーカッションなどのリズムセクションの非周期的な音源やベースの音源とを分離して、新たな楽音発生に利用できるという効果が得られる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明による装置の実施形態について、電子鍵盤楽器を例に採って説明する。
図１は、実施形態における電子鍵盤楽器の構成を示すブロック図である。ＣＰＵ１は、システムバスを介して、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、表示部６、Ａ／Ｄ変換器８、楽音生成部９に接続されており、これら各部との間で指令およびデータを授受して、この電子鍵盤楽器全体を制御する。さらに、Ａ／Ｄ変換器８には、複数種類の音源の信号波形を入力するサウンド入力システム７が接続されている。また、楽音生成部９には、Ｄ／Ａ変換器１０が接続され、Ｄ／Ａ変換器１０には増幅器やスピーカ（図示せず）を有するサウンド出力システム１１が接続されている。
【００２２】
鍵盤２は、押鍵に応じてその鍵に対応する音高、押鍵の演奏強度に応じたベロシティなどをＣＰＵ１に入力する。スイッチ部３は、分離スイッチやその他の複数のスイッチで構成されている。ＲＯＭ４には、ＣＰＵ１によって実行される楽音制御処理のプログラム、種々の変数の初期値などがあらかじめ記憶されている。ＲＡＭ５は、ＣＰＵ１のワークエリアであり、ＣＰＵ１によって処理されるデータを一時的に記憶する格納領域、楽音制御処理の実行に必要なレジスタ、フラグ、パラメータの領域が設けられている。表示部６は、操作に関するメッセージや信号波形の分離状態などを表示する。Ａ／Ｄ変換器８は、サウンド入力システム７から入力された信号波形をアナログからディジタルに変換してＣＰＵ１に入力する。楽音生成部９は、ＣＰＵ１から入力された波形データに応じて楽音信号を生成してＤ／Ａ変換器１０に入力する。Ｄ／Ａ変換器１０は、楽音生成部９から入力された楽音信号をディジタルからアナログに変換してサウンド出力システム１１に出力して発音させる。
【００２３】
図２は、図１のＲＡＭ５のレジスタ、フラグ、パラメータの構成図である。図２において、レジスタ、フラグ、パラメータの名称およびその内容は以下の通りである。
sp    分離実行フラグ（０：分離しない、１：分離する）
pa  分離ポイントの傾き補正パラメータ１
pb  分離ポイントの傾き補正パラメータ２
level  分離ポイントのレベル調整パラメータ
ml  ユーザ演奏強度反映フラグ（０：反映しない、１：反映する）
vbias  分離ポイントの直線特性を変動的に補正する変動補正パラメータ
fbias  分離ポイントの直線特性を固定的に補正する固定補正パラメータ
db  分離方法フラグ（０：ドラム・ベース音以外の音を残す、１：ドラム・ベース音を残す）
fp  スペクトルのパワー修正処理の範囲の分岐を設定する周波数ポイント
mean  移動平均実行フラグ（０：実行しない、１：実行する）
ratio  移動平均動作パラメータ
（以上は、ユーザによって設定される。）
kamp  ユーザ演奏強度
dmax  ＦＦＴ分析による振幅最大値
re[0]・・・・re[Len-1]  ＦＦＴ分析の実部格納領域
im[0] ・・・・im[Len-1]  ＦＦＴ分析の虚部格納領域
d[0] ・・・・d[Len-1]  re[ ],im[ ]から計算される振幅格納領域
pole[0] ・・・・pole[Len-1]  極小フラグ（０：極小でない、１：極小である）
bias[0] ・・・・bias[Len-1]  分離ポイント値の格納領域
【００２４】
次に、図１の電子鍵盤楽器の動作について、図３ないし図９に示すＣＰＵ１のフローチャートおよび図１０に示す信号波形のスペクトル列に基づいて説明する。
図３はメインルーチンのフローチャートである。初期処理（ステップＳＡ１）の後、スイッチ処理（ステップＳＡ２）、鍵盤処理（ステップＳＡ３）、表示処理（ステップＳＡ４）、その他の処理（ステップＳＡ５）を繰り返す。
【００２５】
図４は、メインルーチンにおけるステップＳＡ２のスイッチ処理のフローチャートである。分離スイッチがオンされたか否かを判別し（ステップＳＢ１）、このスイッチがオンされたときは、spが０であるか否かを判別する（ステップＳＢ２）。spが０である場合には、分離開始処理に遷移し、spを１（分離する）にセットする（ステップＳＢ３）。ステップＳＢ２においてspが１である場合には、分離終了処理に遷移し、spを０（分離しない）にセットする（ステップＳＢ４）。ステップＳＢ３若しくはステップＳＢ４の処理の後、又は、ステップＳＢ１において分離スイッチがオンでない場合には、その他のスイッチ処理（ステップＳＢ５）を行って、メインルーチンに戻る。その他のスイッチ処理では、例えば図２のレジスタ、フラグ、パラメータのうち、sp〜ratioの値について、ユーザによる設定が行われる。
【００２６】
図５は、メインルーチンにおけるステップＳＡ３の鍵盤処理のフローチャートである。鍵盤２をサーチして、押鍵、離鍵、又は変化なしの状態を検出する（ステップＳＣ１）。鍵盤状態が押鍵に変化したときは、楽音発生部９に発音チャンネルを割り当てて、押鍵ベロシティよりエンベロープ波形を選択し、発音開始処理を行う（ステップＳＣ２）。一方、鍵盤状態が押鍵から離鍵に変化したときは、離鍵キーに対応するチャンネルの発音終了処理を行う（ステップＳＣ３）。ステップＳＣ２若しくはステップＳＣ３の処理の後、又は、ステップＳＣ１において鍵盤状態に変化がない場合には、メインルーチンに戻る。
【００２７】
図６は、メインルーチンにおける一定時間ごとのインタラプト処理のフローチャートである。発音チャンネルについて発音更新処理を行い、全発音チャンネルにおけるエンベロープの現在値等に基づいて、０から１の範囲の値で表される演奏強度を算出し、kampにストアする（ステップＳＥ１）。次に、spが１であるか否かを判別する（ステップＳＥ２）。spが１（分離する）である場合には、Ａ／Ｄ変換器８からの入力音声をＲＡＭ５の入力バッファに書き込む（ステップＳＥ３）。次に、高速フーリエ変換（ＦＦＴ）の対象となるフレーム抽出のタイミングであるか否かを判別する（ステップＳＥ４）。フレーム抽出のタイミングであるときは、そのフレームを抽出して高速フーリエ変換を実行する（ステップＳＥ５）。
【００２８】
この後、メロディやコードなどの周期的な信号波形と、ドラムやベースなどの非周期的な信号波形とを分離する分離処理（ステップＳＥ６）を実行し、分離処理で算出した分離ポイントに対する移動平均処理（ステップＳＥ７）を実行し、周波数ポイントに基づく周波数範囲でのスペクトル振幅のパワー修正処理（ステップＳＥ８）を実行する。次に、逆高速フーリエ変換（ＩＦＦＴ）を実行して、ＲＡＭ５の出力バッファにフレームを加算する（ステップＳＥ９）。ステップＳＥ９の加算処理の後、又は、ステップＳＥ４においてフレーム抽出のタイミングでない場合には、出力バッファの読み出し（ステップＳＥ１０）を行い、その出力音声を合成する（ステップＳＥ１１）。ステップＳＥ２においてspが０（分離しない）場合には、分離処理を行うことなくステップＳＥ１１に移行して、出力音声を合成する。ステップＳＥ１１の出力音声の合成処理の後は、メインルーチンに戻る。
【００２９】
図７は、インタラプト処理におけるステップＳＥ６の分離処理のフローチャートである。まず、高速フーリエ変換におけるLen個の各周波数チャンネル（0〜Len-1）を指定する変数ｎを０にセットし、高速フーリエ変換の分析による振幅の最大値をストアするレジスタdmaxに０をストアする（ステップＳＦ１）。次に、高速フーリエ変換の分析によるスペクトルの実部および虚部から計算される振幅の格納領域d[n]に演算式sqrt(re[n]×re[n]+im[n]×im[n])の結果をストアし、d[n]>dmaxならば、dmaxにd[n]の値をストアし、nの値をインクリメントする（ステップＳＦ２）。そして、n＞Len-1であるか否かを判別し（ステップＳＦ３）、n≦Len-1の場合にはステップＳＦ２の処理を繰り返す。
【００３０】
ステップＳＦ３において、n＞Len-1の場合には、周波数チャンネルの両端の極小フラグpole[0],pole[Len-1]をともに１にセットし、nに１（２番目の周波数チャンネル）をセットする（ステップＳＦ４）。そして、nの値をインクリメントしながら、nで指定された周波数チャンネルでスペクトルが極小点ならば、pole[n]に１をセットし、極小点でない場合には、pole[n]に０をセットする（ステップＳＦ５）。nの値をインクリメントした結果、nの値がLen-1に達したか否かを判別し（ステップＳＦ６）、nの値がLen-1に達しない場合にはステップＳＦ５の処理を繰り返す。
【００３１】
ステップＳＦ６において、nの値がLen-1に達したときは、ユーザ演奏強度を示すlevelの値をlvにストアし、分離ポイントに演奏強度を反映させるか否かのフラグmlが１（反映させる）ならば、lvの値をlv×(1-kamp)に修正する（ステップＳＦ７）。前述のように演奏強度kampは０から１の値をとるため、演奏強度が最大（１）の場合はlvの値は０になる一方、演奏強度が最小（０）の場合はlvの値は変化しない（すなわちlevelと同じである）。次に、分離ポイント値の格納領域bias[Len-1]にd[Len-1]の振幅値をストアし、nの値を０にセットする（ステップＳＦ８）。すなわち、図１０（Ａ）に示す0からLen-1までのスペクトル列において、最大周波数チャンネルの分離ポイントをその周波数チャンネルの振幅値に設定する。そして、最小周波数チャンネルを出発点として、ステップＳＦ９からステップＳＦ１３までのループ処理を実行して、ステップＳＦ５の処理で求めた離散的な極小ポイント（pole[n]が１の周波数チャンネルn）の間を直線で補間する。
【００３２】
すなわち、極小ポイントの周波数チャンネルnに対する次の極小ポイントの周波数チャンネルをs（＞n）として、変数a,bを下記の演算式で算出する。ここで、変数aは直線（y=ax+b）の傾きを表し、変数bはその切片を表す。
a=(d[s]-d[n])/(s-n)
b=d[s]-a×s
また、次の極小ポイントの周波数チャンネルsまでの周波数チャンネルを指定する変数kの値にnの値をセットする（ステップＳＦ９）。
【００３３】
そして、kの値をインクリメントしながら、ステップＳＦ１０およびステップＳＦ１１のループ処理を実行して、補間すべき各スペクトルの分離ポイントを算出する。すなわち、ステップＳＦ１０において、変数cおよび分離ポイントbias［］を算出するために下記の演算を実行する。
ｃ＝a×k+b
bias[k]=c×(pa×k+pb)+(d[k]-c)×lv+vbias×dmax/100+fbias
【００３４】
この演算式において、lvの値に応じて分離ポイントbias［］の値が直線から曲線に変化する。レベル調整パラメータlevelの値は、例えば前述のスイッチ処理（図４）のステップＳＢ５において、０から１の範囲の値が設定される。mlの値が０、すなわちユーザ演奏強度を分離ポイントに反映させない場合は、lvの値は常にlevelの値に等しい。図１０（Ａ）において、lvの値が０の場合には、補間した分離ポイントbias［］は実線で表示された直線であり、lvの値が０から１までの値に応じて、補間した分離ポイントbias［］は点線で表示された曲線に補正され、lvの値が１に近くなるほど元のスペクトルに近づく形状になる。これに対して、mlの値が１、すなわちユーザ演奏強度を分離ポイントに反映させる場合は、lvの値は演奏強度kampの値に応じて変化する。図１０（Ａ）において、演奏強度kampが１（最大）ならばlvの値は０となり、補間した分離ポイントbias［］は実線で表示された直線になる。また演奏強度kampが１から０（最小）までの値に変化するのに応じてlvは０からlevelまでの値に変化し、補間した分離ポイントbias［］は点線で表示された曲線に補正され、演奏強度kampの値が０に近くなるほど元のスペクトルに近づく形状になる。
この他、この演算式においては、傾き補正パラメータpaおよびpbの値を用いた周波数に依存した補正(pa×k+pb)、変動補正パラメータvbiasの値を用いたスペクトル振幅最大値に依存した補正（vbias×dmax/100）、および周波数やスペクトル振幅最大値には依存しない固定補正パラメータfbiasの値による補正が行われ、分離ポイントbias［k］が算出される。各パラメータpa、pb、vbias、fbiasは、例えば前述のスイッチ処理（図４）のステップＳＢ５において、ユーザにより適切な値が設定される。
【００３５】
この演算の後、kの値をインクリメントする。そして、kの値がsの値よりも小さいか否かを判別し（ステップＳＦ１１）、kの値がsの値よりも小さい場合、すなわち、分離ポイントを算出すべき周波数チャンネルが残っている場合には、ステップＳＦ１０の演算処理を繰り返す。kの値がsの値に達したときは、nの値をsの値に更新し（ステップＳＦ１２）、nの値がLen-1に達したか否かを判別する（ステップＳＦ１３）。nの値がLen-1よりも小さい場合、すなわち、分離ポイントを補間すべきスペクトルが残っている場合には、ステップＳＦ９に移行してステップＳＦ１３までのループ処理を繰り返す。nの値がLen-1に達したときは、図６のインタラプト処理に戻る。
【００３６】
図８は、インタラプト処理におけるステップＳＥ７の移動平均処理のフローチャートである。まず、meanが１（移動平均実行）であるか否かを判別し（ステップＳＨ１）、meanが１である場合には、周波数チャンネルを指定する変数nを中央の周波数チャンネルを示す(Len/2)-1の値とし、移動平均の変数mdを０にセットする（ステップＳＨ２）。そして、nの値をデクリメントしながら、下記の演算を実行する（ステップＳＨ３）。
md=md×ratio+bias[n]×(1-ratio)
この演算で算出したmdの値をbias[n]およびbias[Len-n-1]にストアし、nの値をデクリメントする。すなわち、最初の中央の周波数チャンネルから両端の周波数チャンネルに向けて移動平均を算出する。そして、デクリメントしたnの値が０より小さいか否かを判別し（ステップＳＨ４）、nの値が０以上である場合には、ステップＳＨ３の移動平均の演算処理を繰り返す。nの値が０より小さくなって、スペクトル全体に対する移動平均を算出したときは、図６のインタラプト処理に戻る。
【００３７】
図９は、インタラプト処理におけるステップＳＥ８のパワー修正処理のフローチャートである。まず、周波数チャンネルを指定する変数nの値を１にセットして（ステップＳＧ１）、nの値をインクリメントしながら、ステップＳＧ２からステップＳＧ９までのループ処理を以下の手順で実行する。フラグdbが１（ドラム・ベース音を残す）であるか否かを判別し（ステップＳＧ２）、dbが１である場合には、n>fpであるか否かを判別する（ステップＳＧ３）。すなわち、nの値で指定する周波数チャンネルの周波数が分岐の周波数ポイントfpが示す周波数よりも高く、パワー修正を実行する周波数範囲であるか否かを判別する。n>fpである場合には、ＦＦＴ分析による実部re[n]および虚部im[n]を下記の演算によって修正する（ステップＳＧ４）。
re[n]=re[n]×bias[n]/d[n]
im[n]=im[n]×bias[n]/d[n]
【００３８】
一方、ステップＳＧ２において、dbが０（ドラム・ベース以外の音を残す）である場合には、n>fpであるか否かを判別する（ステップＳＧ５）。n>fpである場合には、ＦＦＴ分析による実部re[n]および虚部im[n]を下記の演算によって修正する（ステップＳＧ６）。
re[n]=re[n]×(d[n]-bias[n])/d[n]
im[n]=im[n]×(d[n]-bias[n])/d[n]
ステップＳＧ５においてnがfp以下である場合には、低域を除去するために実部re[n]および虚部im[n]をともに０に設定する（ステップＳＧ７）。
【００３９】
ステップＳＧ４における演算処理の後、ステップＳＧ３においてnがfp以下である場合、ステップＳＧ６における演算処理の後、又は、ステップＳＧ７においてre[n]およびim[n]をともに０に設定した後は、nの値をインクリメントする（ステップＳＧ８）。そして、nの値がLen-1より大きいか否かを判別する（ステップＳＧ９）。nの値がLen-1以内である場合には、まだパワー修正すべき周波数チャンネルが残っているので、ステップＳＧ２に移行してループ処理を繰り返す。nの値がLen-1より大きくなって、スペクトル全体に対するパワー修正が終了したときは、図６のインタラプト処理に戻る。
【００４０】
いま図１０（Ａ）に示すスペクトルにおいて、レベル調整パラメータlevelが０、移動平均実行フラグmeanが０であるとする。フラグdbが１ならば、ステップＳＧ４における演算の結果、図１０（Ｂ）に示すように、分岐の周波数ポイントfp以上の高域の周波数範囲では、極小ポイント間を補間した直線の分離ポイントから下側のスペクトルが抽出される。すなわちこの周波数範囲では、分離ポイントから上側のスペクトルを周期的な信号波形によるものとみなし、これを除去することにより、ドラムの音源の非周期的な信号波形がより高い比率で含まれたスペクトルとして抽出するものである。またこの周波数範囲で抽出されたスペクトルには、ベースの音源の信号波形も部分的に含まれるため、ベース音の高域の周波数成分を完全に損なうことのないスペクトル抽出になっている。
一方、分岐の周波数ポイントfp以下の低域の周波数範囲については、図１０（Ｂ）に示すように、図１０（Ａ）のスペクトルがそのまま残る。すなわち分岐の周波数ポイントfpをベース音の中心的な周波数帯域の上限の周波数ポイントに設定することにより、ベースの音源の信号波形で主要な低域の周波数成分が損なわれることなく抽出される。
したがって、複数種類の音源の信号波形からドラムの音源の非周期的な信号波形およびベースの音源の信号波形を抽出することができる。
ただし、非周期的な音源としてはドラムの音源に限定されない。例えば、タンバリン、トライアングル、カスタネット、鐘などのリズムセクションの非周期的な音源にも適用できることは言うまでもない。
【００４１】
これに対して、フラグdbが０ならば、ステップＳＧ６における演算の結果、図１０（Ｃ）に示すように、極小ポイント間を補間した直線の分離ポイントから上側のスペクトルが抽出される。ただし、分岐の周波数ポイントfp以下の低域の周波数範囲については、ステップＳＧ７の処理によってミュートされる。すなわち、この図１０（Ｃ）の信号波形のスペクトル列は図１０（Ａ）に示すスペクトル列から非周期的な信号波形のスペクトルを除去して、分岐の周波数ポイントfp以上の高域の周波数範囲で周期的な信号波形のスペクトル列を抽出した状態を示している。したがって、複数種類の音源の信号波形からドラム・ベース以外のメロディ、コード、ヴォーカルなどの音源の周期的な信号波形を抽出することができる。
【００４２】
このように、上記実施形態によれば、ＣＰＵ１は、複数種類の音源が混在する信号波形のスペクトルを分析して、分析したスペクトルの振幅の極小点を検出し、検出した極小点に基づいてスペクトルの分離ポイントを算出し、周期的成分を有する信号波形と非周期的成分を有する信号波形とをその分離ポイントによって分離する。
したがって、複数種類の音源が混在する信号波形の中から、メロディやコードなどの周期的な音源とドラム、パーカッションなどのリズムセクションの非周期的な音源やベースの音源とを分離して、新たな楽音発生に利用することができる。
【００４３】
この場合において、ＣＰＵ１は、演奏強度に応じて分離態様を変更するので、ユーザ演奏に応じたバリエーションの豊かな楽音制御を行うことができる。
また、ＣＰＵ１は、算出した分離ポイントに対して算術平均処理を行うので、簡易な手法で分離ポイントの調整を行うことができる。
また、ＣＰＵ１は、設定されている周波数ポイントに基づいて周期的成分を有する信号波形と非周期的成分を有する信号波形とを分離する周波数範囲を決定するので、ドラム、パーカッションなどのリズムセクションに加え、ベースの低域の信号波形のスペクトルを容易に抽出又は除去を行うことができる。
さらに、ＣＰＵ１は、所定のパラメータに基づいて、スペクトルにおける隣接する極小点の間を直線および曲線の少なくとも一方で補間して分離ポイントを算出するので、信号波形の周期的成分と非周期的成分との分離の度合いについて調整することができる。さらに、ＣＰＵ１は、所定のパラメータを演奏強度に応じて補正するので、演奏強度が高い（演奏を活発に行っている）場合はドラム・ベース音が分離・抽出された楽音を発生させる一方、演奏強度が低い（演奏が行われていない）場合はドラム・ベース音の分離・抽出が行われない楽音を発生させることが可能になるため、ユーザが特別なスイッチ操作等を行わずに分離態様を変更させることができる。
【００４４】
また、上記実施形態においては、ＲＯＭ４にあらかじめ記憶された楽音制御処理のプログラムをＣＰＵ１が実行する装置の発明について説明したが、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＤなどの記憶媒体に記録されている楽音制御処理のプログラムを不揮発性メモリにインストールしたり、インターネットなどのネットワークからダウンロードした楽音制御処理のプログラムを不揮発性メモリにインストールして、そのプログラムをＣＰＵ１が実行することも可能である。この場合には、プログラムの発明やそのプログラムを記録した記録媒体の発明を実現できる。
【００４５】
すなわち、本発明によるプログラムは、
入力された信号波形のスペクトルを分析するステップＡと、前記ステップＡによって分析されたスペクトルの振幅の極小点を検出するステップＢと、前記ステップＢによって検出された極小点に基づいてスペクトルの分離ポイントを算出し、周期的成分を有する信号波形と非周期的成分を有する信号波形とを当該分離ポイントによって分離するステップＣと、をコンピュータに実行させる。
【００４６】
前記ステップＣは、演奏強度に応じて分離態様を変更することを特徴とする。
【００４７】
前記ステップＣは、リズムセクションの信号波形を非周期的成分として分離することを特徴とする。
【００４８】
前記ステップＣは、算出した分離ポイントに対して算術平均処理を行うことを特徴とする。
【００４９】
前記ステップＣは、設定されている周波数ポイントに基づいて周期的成分を有する信号波形と非周期的成分を有する信号波形とを分離する周波数範囲を決定することを特徴とする。
【００５０】
前記ステップＣは、所定のパラメータに基づいて、スペクトルにおける隣接する極小点の間を直線および曲線の少なくとも一方で補間して分離ポイントを算出することを特徴とする。
【００５１】
前記ステップＣは、前記所定のパラメータを演奏強度に応じて補正することを特徴とする。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態における電子鍵盤楽器の構成を示すブロック図。
【図２】図１のＲＡＭの構成を示す図。
【図３】図１のＣＰＵによって実行されるメインルーチンのフローチャート。
【図４】図３におけるスイッチ処理のフローチャート。
【図５】図３における鍵盤処理のフローチャート。
【図６】図１のＣＰＵによって実行されるインタラプト処理のフローチャート。
【図７】図６における分離処理のフローチャート。
【図８】図６における移動平均処理のフローチャート。
【図９】図６におけるパワー修正処理のフローチャート。
【図１０】本発明によって処理された信号波形のスペクトル列を示す図。
【符号の説明】
【００５３】
１  ＣＰＵ
２  鍵盤
３  スイッチ部
４  ＲＯＭ
５  ＲＡＭ
６  表示部
７  サウンド入力システム
８  Ａ／Ｄ変換器
９  楽音生成部
１０  Ｄ／Ａ変換器
１１  サウンド出力システム
【図１】
0004534883.tif 000002
【図２】
0004534883.tif 000003
【図３】
0004534883.tif 000004
【図４】
0004534883.tif 000005
【図５】
0004534883.tif 000006
【図６】
0004534883.tif 000007
【図７】
0004534883.tif 000008
【図８】
0004534883.tif 000009
【図９】
0004534883.tif 000010
【図１０】
0004534883.tif 000011