(57)【特許請求の範囲】
【請求項１】
楽曲またはその一部の波形を示すオーディオストリームデータの開始点から終了点までの各部の周波数特性を順次求める周波数解析手段と、
ユーザが行う操作部の操作に従って周波数帯域および振幅域からなる領域を指定する範囲指定手段と、
前記範囲指定手段により指定された周波数帯域および振幅域からなる領域に前記周波数解析手段によって順次求められる周波数特性におけるパワースペクトルのピークが含まれる期間を検出し、この検出結果に基づき、楽音の発生タイミングを示すシーケンスデータを生成するシーケンスデータ生成手段と
を具備することを特徴とするシーケンスデータ生成装置。
【請求項２】
前記周波数解析手段は、前記オーディオストリームデータの周波数特性をフレーム毎に順次求め、
前記シーケンスデータ生成手段は、前記範囲指定手段により指定された周波数帯域および振幅域からなる領域に前記周波数解析手段によってフレーム毎に順次求められる周波数特性におけるパワースペクトルのピークが含まれるフレームを検出し、前記ピークが含まれるフレームをノートオン期間とすることにより、楽音の発生タイミングを示すシーケンスデータを生成することを特徴とする請求項１に記載のシーケンスデータ生成装置。
【請求項３】
前記範囲指定手段は、前記操作部の操作に従って、周波数帯域と、上限を有さず、下限のみを持った振幅域とからなる領域を指定することを特徴とする請求項１または２に記載のシーケンスデータ生成装置。
【請求項４】
前記範囲指定手段は、ユーザが行う操作部の操作に従って周波数帯域および振幅域からなる領域を１または複数指定し、
前記シーケンスデータ生成手段は、前記範囲指定手段により周波数帯域および振幅域からなる領域が複数指定された場合に、前記領域毎に、前記周波数解析手段によって順次求められる周波数特性におけるパワースペクトルのピークが含まれる期間を検出し、この検出結果に基づき、各々楽音の発生タイミングを示す複数のシーケンスデータを生成することを特徴とする請求項１〜３のいずれか１の請求項に記載のシーケンスデータ生成装置。
【請求項５】
前記周波数解析手段により求められる周波数特性におけるパワースペクトルを表示する表示手段を具備し、
前記範囲指定手段は、前記表示手段における前記パワースペクトルの表示画面上において前記周波数帯域および振幅域からなる領域を指定するポインティングデバイスを具備することを特徴とする請求項１〜４のいずれか１の請求項に記載のシーケンスデータ生成装置。
【請求項６】
前記表示手段は、前記周波数解析手段により順次求められるパワースペクトルを順次表示することを特徴とする請求項５に記載のシーケンスデータ生成装置。
【請求項７】
前記表示手段は、前記周波数解析手段により順次求められるパワースペクトルを重ね書きしたものを表示することを特徴とする請求項５に記載のシーケンスデータ生成装置。
【請求項８】
前記周波数解析手段が第１のオーディオストリームデータの周波数特性を順次求め、
前記表示手段が前記周波数解析手段により求められる第１のオーディオストリームデータの周波数特性におけるパワースペクトルを表示し、
前記範囲指定手段がユーザが行う操作部の操作に従って前記表示手段における前記第１のオーディオストリームデータのパワースペクトルの表示画面上において前記周波数帯域および振幅域からなる領域を指定し、
前記周波数解析手段が第２のオーディオストリームデータの開始点から終了点までの各部の周波数特性を順次求め、
前記シーケンスデータ生成手段が、前記範囲指定手段により指定された周波数帯域および振幅域からなる領域に前記周波数解析手段によって順次求められる前記第２のオーディオストリームデータの周波数特性におけるパワースペクトルのピークが含まれる期間を検出し、この検出結果に基づき、楽音の発生タイミングを示すシーケンスデータを生成することを特徴とする請求項５〜７のいずれか１の請求項に記載のシーケンスデータ生成装置。
【請求項９】
前記オーディオストリームデータを音として再生する再生手段を具備し、
前記再生手段によるオーディオストリームデータの再生に同期して、前記周波数解析手段は、前記オーディオストリームデータの周波数特性を求め、前記表示手段は、前記周波数特性におけるパワースペクトルを表示することを特徴とする請求項１〜８のいずれか１の請求項に記載のシーケンスデータ生成装置。
【請求項１０】
コンピュータを、
楽曲またはその一部の波形を示すオーディオストリームデータの開始点から終了点までの各部の周波数特性を順次求める周波数解析手段と、
ユーザが行う操作部の操作に従って周波数帯域および振幅域からなる領域を指定する範囲指定手段と、
前記範囲指定手段により指定された周波数帯域および振幅域からなる領域に前記周波数解析手段によって順次求められる周波数特性におけるパワースペクトルのピークが含まれる期間を検出し、この検出結果に基づき、楽音の発生タイミングを示すシーケンスデータを生成するシーケンスデータ生成手段として機能させることを特徴とするシーケンスデータ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、楽音に連動して素子を駆動するのに用いるシーケンスデータを生成する装置およびプログラムに関する。
【背景技術】
【０００２】
携帯電話など、楽曲再生機能を持った電子機器では、楽曲再生の際、アミューズメント性を高めるために、楽曲のノート（音符）のタイミングに合わせてＬＥＤを点滅させ、あるいはバイブレータを振動させる場合がある。ここで、電子機器がＭＩＤＩデータなどの演奏データによって音源を駆動して楽曲再生を行うものである場合には、演奏データに含まれるノートオンやノートオフの指示の情報をＬＥＤの点滅等の制御に用いることができた。しかし、最近の携帯電話などでは、このように音源の駆動により楽曲再生を行うのではなく、演奏を録音することにより得られたオーディオストリームデータを再生することにより楽曲再生を行う機種も提供されている。この場合、オーディオストリームデータは、楽音波形を表すデータであって、ノートオンやノートオフのタイミングを直接表すデータではないので、これをＬＥＤの点滅制御等に用いることはできない。従って、このようなオーディオストリームデータを用いて楽曲再生を行う装置において、ＬＥＤの点滅制御等を行うためには、楽曲のノートのタイミングを示すデータを別途用意する必要がある。従来、オーディオストリームデータからノートのタイミングの抽出を行う技術として、特許文献１に開示された技術があった。この技術は、オーディオストリームデータを一定時間長のフレームに分割し、フレーム毎に周波数解析を行ってスペクトルを求め、フレーム間におけるスペクトルのピークの不連続性を検出することによりノートのタイミングを検出するものである。
【特許文献１】特開２００３−５７４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述した特許文献１に開示された技術は、スペクトルのピークの不連続性に基づいてノートのタイミングを検出するので、時間経過に伴って音高が明確に変化する楽音波形のオーディオストリームデータでないと、オーディオストリームデータ自体からノートのタイミングを検出するのは困難であるという問題があった。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、処理対象が打楽器音などのような音高の変化が明確でない楽音波形のオーディオストリームデータである場合であっても、ノートのタイミングを検出し、ＬＥＤやバイブレータなどの素子を駆動するシーケンスデータを生成することができるシーケンスデータ生成装置およびシーケンスデータ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
この発明は、楽曲またはその一部の波形を示すオーディオストリームデータの開始点から終了点までの各部の周波数特性を順次求める周波数解析手段と、周波数帯域および振幅域を指定する範囲指定手段と、前記範囲指定手段により指定された周波数帯域および振幅域に前記周波数解析手段によって順次求められる周波数特性におけるパワースペクトルのピークが含まれる期間を検出し、この検出結果に基づき、楽音の発生タイミングを示すシーケンスデータを生成するシーケンスデータ生成手段とを具備することを特徴とするシーケンスデータ生成装置およびコンピュータを前記各手段として機能させるシーケンスデータ生成プログラムを提供する。
かかる発明によれば、範囲指定手段により適切な周波数帯域および振幅域を指定することにより、周波数解析手段により順次求められるオーディオストリームデータの周波数特性から楽音の発生タイミングを検出し、シーケンスデータを生成することができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照し、この発明の実施の形態を説明する。
図１はこの発明の一実施形態であるシーケンスデータ生成装置の構成を示すブロック図である。このシーケンスデータ生成装置は、パーソナルコンピュータなどのコンピュータに対し、オーディオストリームデータからシーケンスデータを生成するシーケンスデータ生成プログラムをインストールしたものである。
【０００７】
図１において、ＣＰＵ１は、このシーケンスデータ生成装置の各部を制御する制御中枢である。ＲＯＭ２は、ローダなど、このシーケンスデータ生成装置の基本的な動作を制御するための制御プログラムを記憶した読み出し専用メモリである。表示部３は、装置の動作状態やユーザに対するメッセージなどを表示するための装置である。操作部４は、ユーザからコマンドや各種の情報を受け取るための手段であり、キーボードやマウスなどの各種の操作子により構成されている。Ｉ／Ｆ（インタフェース）群５は、ネットワークを介して他の装置との間でデータ通信を行うためのネットワークインタフェースや、磁気ディスク、ＣＤ−ＲＯＭなどの外部記憶媒体との間でデータの授受を行うためのドライバなどにより構成されている。ＨＤＤ（ハードディスク装置）６は、各種のプログラムやデータベースなどの情報を記憶するための不揮発性記憶装置である。ＲＡＭ７は、ＣＰＵ１によってワークエリアとして使用される揮発性メモリである。ＣＰＵ１は、操作部４を介して与えられる指令に従い、ＨＤＤ６内のプログラムをＲＡＭ７にロードして実行する。サウンドシステム８は、ＣＰＵ１による制御の下、音声を出力する装置である。
【０００８】
ＨＤＤ６に記憶される情報として、シーケンスデータ生成プログラムとその処理対象であるオーディオストリームデータがある。ここで、オーディオストリームデータは、楽曲演奏の際の楽音波形をサンプリングして符号化することにより得られるデータである。また、シーケンスデータ生成プログラムは、このオーディオストリームデータから楽音の発音期間を示すノート情報を抽出し、一連のノート情報により構成されるシーケンスデータを生成するプログラムである。好ましい態様において、シーケンスデータ生成プログラムおよびオーディオストリームデータは、例えばインターネット内のサイトからＩ／Ｆ群５の中の適当なものを介してダウンロードされ、ＨＤＤ６にインストールされる。また、他の態様において、シーケンスデータ生成プログラムおよびオーディオストリームデータは、ＣＤ−ＲＯＭ、ＭＤなどのコンピュータ読み取り可能な記憶媒体に記憶された状態で取引される。この態様では、Ｉ／Ｆ群５の中の適当なものを介して記憶媒体からシーケンスデータ生成プログラムまたはオーディオストリームデータが読み出され、ＨＤＤ６にインストールされる。
【０００９】
図２はシーケンスデータ生成プログラムの処理内容を示すブロック図である。この図に示すように、シーケンスデータ生成プログラムは、窓掛け１１、ＦＦＴ（高速フーリエ変換）１２、パワースペクトル表示１３、矩形指定によるパラメータ設定１４、矩形内ピーク検出１５および発音時間累算１６の各処理を含む。窓掛け１１では、処理対象であるオーディオストリームデータを一定時間長のフレームに分割し、フレーム毎に窓関数を乗算する。ＦＦＴ１２では、フレーム毎に、窓関数の乗じられたオーディオストリームデータにＦＦＴを施し、オーディオストリームデータの周波数特性を求める。そして、パワースペクトル表示１３では、横軸を周波数軸、縦軸を振幅軸として、ＦＦＴ１２において求めた各フレームの周波数特性の絶対値であるパワースペクトルを表示部３に表示する。
【００１０】
図３はこのパワースペクトル表示１３の処理により表示部３に表示されるパワースペクトルの例を示している。打楽器音などの波形は、図示の例のように、広い周波数範囲に分布したパワースペクトルを含んでいるが、それらのパワースペクトルの中には発音開始から発音終了までの間に振幅が大きく推移する特徴的なパワースペクトルがある。ユーザは、表示部３におけるパワースペクトル表示を確認し、そのような特徴的なパワースペクトルが存在する周波数帯域と振幅域を見つける。矩形指定によるパラメータ設定１４では、パワースペクトルの表示された表示部３の表示画面上において、上記の特徴的なパワースペクトルの存在する矩形領域の始点Ｐ１および終点Ｐ２を操作部４におけるマウスなどのポインティングデバイスの操作によりユーザに指定させる。そして、矩形指定によるパラメータ設定１４では、図３に示すように、操作部４の操作によって指定された矩形領域をパワースペクトルと重ね表示するとともに、その矩形領域の横辺によって示される周波数帯域と縦辺によって示される振幅域をパラメータとして受け取る。
【００１１】
矩形内ピーク検出１５および発音時間累算１６の各処理は、オーディオストリームデータのパワースペクトルからノート情報を抽出し、シーケンスデータを生成する処理を構成している。これらの処理は、矩形指定によるパラメータ設定１４が実行され、周波数帯域および振幅域が設定されることにより実行可能となる。矩形内ピーク検出１５では、ＦＦＴ１２により得られたパワースペクトルのピークの中に、パラメータ設定１４により得られた周波数帯域および振幅域の範囲内に属するものがあるか否かをフレーム毎に判定する。この判定がフレーム毎に繰り返されることにより、楽音の発音期間の開始と終了が求められる。そして、発音時間累算１６では、この周波数帯域幅および振幅域の範囲内にパワースペクトルのピークが含まれる時間を累算する。この累算により、楽音の発音期間の長さが求められる。そして、楽音の発音期間の開始時刻および長さを示すノート情報が得られ、シーケンスデータが構成される。
【００１２】
次に本実施形態の動作を説明する。図４は、シーケンスデータ生成プログラムにおいて図２における矩形指定によるパラメータ設定１４に相当するルーチンの処理内容を示すフローチャートである。また、図５は、シーケンスデータ生成プログラムにおいて図２における矩形内ピーク検出１５および発音時間累算１６に相当するルーチンの処理内容を示すフローチャートである。ユーザが操作部４の操作によりシーケンスデータ生成プログラムの起動を指示すると、ＣＰＵ１は、同プログラムをＨＤＤ６からＲＡＭ７にロードして実行する。このシーケンスデータ生成プログラムの実行過程において、ＣＰＵ１は、まず、図４に示すルーチンの実行を開始する。まず、ＣＰＵ１は、パワースペクトル表示ウィンドウがアクティブか否かを判断し（ステップＳ１０１）。この判断の結果が「ＮＯ」である場合、ＣＰＵ１は、同判断を繰り返す。ここで、操作部４の操作により、ＨＤＤ６内の所望のオーディオストリームデータの選択が指示されると、ＣＰＵ１は、シーケンスデータ生成プログラムに従い、そのオーディオストリームデータをＨＤＤ６からＲＡＭ７内のワークエリアにロードし、このワークエリア内のオーディストリームデータについて図２における窓掛け１１、ＦＦＴ１２、パワースペクトル表示１３を実行する。これによりパワースペクトルが表示部３に表示される。この際、ＲＡＭ７のワークエリアにロードされたオーディオストリームデータをサウンドシステム８により再生し、処理対象をユーザに聴かせるようにしてもよい。
【００１３】
パワースペクトルの表示の態様には各種のものが考えられる。第１の態様では、横軸を周波数、縦軸を振幅とするパワースペクトルのグラフをフレーム毎に順次表示する。この態様では、ユーザは、パワースペクトルのグラフが時間経過に伴って変化してゆくのを観察することができる。なお、矩形指定によるパラメータ設定１４におけるユーザの操作を容易にするため、矩形指定によるパラメータ設定１４が完了するまでの間、オーディオストリームデータの最後のフレームのパワースペクトルの表示が終わった後、再び最初のフレームに戻り、窓掛け１１、ＦＦＴ１２、パワースペクトル表示１３を繰り返し実行するようにしてもよい。第２の態様では、フレーム毎に得られるパワースペクトルのグラフの画像をＲＡＭ７内のビデオメモリエリアに重ね書きし、ビデオメモリエリア内の画像を表示部３に表示する。この態様では、ユーザは、全フレームについて重ね合わせたパワースペクトルのグラフを表示部３の表示画面上において観察することができる。
【００１４】
表示部３にパワースペクトルが表示されると、ユーザは、パワースペクトルを観察する。そして、時間経過に伴って振幅が大きく変化するような特徴的なパワースペクトルがある場合、ユーザは、操作部４のマウスのドラッグ操作により、その特徴的なパワースペクトルのピークを囲む矩形を指定する。以下の処理は、このマウス操作による矩形入力を受け付けるための処理である。
【００１５】
まず、パワースペクトル表示が行われ、ステップＳ１０１の判断結果が「ＹＥＳ」となってステップＳ１０２に進むと、ＣＰＵ１は、操作部４におけるマウスボタンが押されたか否かを判断し、肯定的な判断結果が得られるまで同判断を繰り返す。マウスボタンが押され、ステップＳ１０２の判断結果が「ＹＥＳ」になると、ＣＰＵ１は、既に矩形が表示部３に表示されているか否かを判断する（ステップＳ１０３）。この判断結果が「ＮＯ」である場合、ＣＰＵ１は、マウスボタンが押されたときの表示画面上のカーソルの位置座標を始点Ｐ１の位置座標として記憶する（ステップＳ１０６）。次にＣＰＵ１は、マウスボタンが離されたか否かを判断し（ステップＳ１０７）、肯定的な判断結果が得られるまで同判断を繰り返す。
【００１６】
そして、マウスボタンが離されて、ステップＳ１０７の判断結果が「ＹＥＳ」になると、ＣＰＵ１は、マウスボタンが離されたときの表示画面上のカーソルの位置座標を終点Ｐ２の位置座標として記憶する（ステップＳ１０８）。次にＣＰＵ１は始点Ｐ１と終点Ｐ２を結ぶ直線が対角線となる矩形を、パワースペクトルと重ね合わせて表示部３に表示する（ステップＳ１０９）。そして、ＣＰＵ１は、表示された矩形の縦辺に相当する振幅域と横辺に相当する周波数帯域幅を求め、ノート情報の抽出対象となる領域を特定するパラメータとして設定し（ステップＳ１１０）、処理をステップＳ１０２に戻す。
【００１７】
本実施形態においてユーザは、以上のようにして表示部３に矩形が表示された状態において、マウス操作により矩形を変更することができる。以下、その場合の動作を説明する。まず、矩形が表示された状態においてマウスボタンが押されると、ステップＳ１０２を介してステップＳ１０３に進んだとき、このステップＳ１０３の判断結果が「ＹＥＳ」となり、処理はステップＳ１０４に進む。ステップＳ１０４において、ＣＰＵ１は、マウスが押されたときのカーソル位置が表示されている矩形の辺上にあるか否かを判断する。この判断結果が「ＮＯ」である場合、ＣＰＵ１は、表示部３における矩形の表示を消去し（ステップＳ１０５）、マウスが押されたときのカーソル位置の座標を始点Ｐ１の座標として記憶する（ステップＳ１０６）。その後、マウスが離されたときに、上述と同様、ステップＳ１０７〜Ｓ１１０を順次実行して矩形を確定させ、矩形の縦辺に相当する振幅域と矩形の横辺に相当する周波数帯域をパラメータとして設定する。このように、始点Ｐ１として、表示されている矩形の辺上でない位置を指すマウス操作が行われた場合には、既に表示されている矩形が消去され、新たな矩形入力として取り扱われる。
【００１８】
一方、表示されている矩形の辺上にカーソルを位置させてマウスボタンが押されたときには、ステップＳ１０２およびステップＳ１０３を介してステップＳ１０４に進んだとき、ステップＳ１０４の判断結果が「ＹＥＳ」となり、ステップＳ１１１に進む。このステップＳ１１１において、ＣＰＵ１は、マウスボタンが離されたか否かを判断し、肯定的な判断結果が得られるまで同判断を繰り返す。そして、マウスが離されてステップＳ１１１の判断結果が「ＹＥＳ」になると、ＣＰＵ１は、ステップＳ１０４においてマウスによって指示されていることを確認した矩形の辺を、マウスのドラッグ量に応じて移動させ、この辺の移動後の矩形を表示部３に表示する（ステップＳ１１２）。そして、処理はステップＳ１１０に進み、ＣＰＵ１は、表示された矩形の縦辺に相当する振幅域と横辺に相当する周波数帯域幅を求め、ノート情報の抽出対象となる領域を特定するパラメータとして設定し（ステップＳ１１０）、処理をステップＳ１０２に戻す。
【００１９】
以上のようにして、矩形の縦辺に相当する振幅域と、矩形の横辺に相当する周波数帯域が設定されると、図５に示すルーチンの実行が可能な状態となる。そして、ユーザが操作部４の操作により、シーケンスデータの生成の指示を入力すると、ＣＰＵ１は、図５に示すルーチンを実行する。このルーチンでは、オーディオストリームデータをフレーム単位で処理してノートイベントを含むシーケンスデータを生成する。まず、ＣＰＵ１は、初期化処理を実行し、ノートオンフラグＮＯＮを“０”に、フレームカウンタＦＣＮＴを「０」に、ノートオン期間カウンタＮＬを「０」に設定する（ステップＳ２０１）。ここで、ノートオンフラグＮＯＮは、現在処理しているフレームがノートオン期間（楽音の発音期間）のものかノートオフ期間のものかを示すフラグであり、ノートオン期間は“１”、ノートオフ期間は“０”とされる。また、フレームカウンタＦＣＮＴは、オーディオストリームデータのフレーム単位での処理を進める際に処理したフレーム数を計数するカウンタである。このカウンタのカウント値は、オーディオストリームデータの開始点を基準とした時刻情報として用いられる。ノートオン期間カウンタＮＬは、ノートオン期間が始まってから終了するまでのフレーム数を計数するカウンタである。
【００２０】
ステップＳ２０１の初期化処理が終了すると、ＣＰＵ１は、ＲＡＭ７のワークエリアから１フレーム分のオーディオストリームデータを読み出し、そのフレームについて図２における窓掛け１１、ＦＦＴ１２およびパワースペクトル表示１３の各処理を実行する（ステップＳ２０２）。次にＣＰＵ１は、ＦＦＴ１２により得られたパワースペクトルのピークの中に、現在設定されている矩形領域の周波数帯域および振幅域に収まるものがあるか否かを判断する（ステップＳ２０３）。この判断結果が「ＮＯ」である場合、ＣＰＵ１は、ノートオンフラグＮＯＮが“０”であるか否かを判断する（ステップＳ２０４）。そして、ステップＳ２０４の判断結果が「ＹＥＳ」である場合、ＣＰＵ１は、フレームカウンタＦＣＮＴを「１」だけ増加させる（ステップＳ２１０）。次にＣＰＵ１は、現在のフレームが処理対象であるオーディオストリームデータの最後のフレームか否かを判断し（ステップＳ２１１）、この判断結果が「ＮＯ」である場合には処理をステップＳ２０２に戻す。以後、ステップＳ２０２、Ｓ２０３、Ｓ２０４、Ｓ２１０、Ｓ２１１の各処理が繰り返される。
【００２１】
この間、ステップＳ２０２の処理対象となるフレームが楽曲のノートオフ期間に属するものからノートオン期間に属するものに移行してゆくと、ステップＳ２０２において得られるパワースペクトルの振幅が大きくなってゆく。そして、ステップＳ２０２において得られるパワースペクトルのピークが現在設定されている矩形領域内に入ると、ステップＳ２０３の判断結果が「ＹＥＳ」になり、ＣＰＵ１の処理はステップＳ２０７に進む。このステップＳ２０７においてＣＰＵ１は、ノートオンフラグＮＯＮが“１”か否かを判断する。この判断結果が「ＮＯ」である場合、すなわち、ノートオフ期間からノートオン期間への切り換わりがあった場合には、ＣＰＵ１は、ノートオンフラグＮＯＮを“１”とし、その時点におけるフレームカウンタＦＣＮＴのカウント値をノートオン開始時刻データＦＳとして保存し、ノートオン期間カウンタＮＬを「０」に初期化する（ステップＳ２０８）。次にＣＰＵ１は、ノートオン期間カウンタＮＬを「１」だけ増加させ（ステップＳ２０９）、上述したステップＳ２１０およびＳ２１１を順次実行し、ステップＳ２１１の判断結果が「ＮＯ」である場合には処理をステップＳ２０２に戻す。
【００２２】
この結果、処理はステップＳ２０２およびＳ２０３を介してステップＳ２０７に進む。このとき、ノートオンフラグＮＯＮは“１”となっているため、ステップＳ２０７の判断結果は「ＹＥＳ」となる。従って、ＣＰＵ１は、ステップＳ２０９、Ｓ２１０およびＳ２１１を順次実行し、ステップＳ２１１の判断結果が「ＮＯ」である場合には処理をステップＳ２０２に戻す。以後、ステップＳ２０２、Ｓ２０３、Ｓ２０７、Ｓ２０９、Ｓ２１０、Ｓ２１１の各処理が繰り返される。
【００２３】
この間、ステップＳ２０２の処理対象となるフレームが楽曲のノートオン期間に属するものからノートオフ期間に属するものに移行してゆくと、ステップＳ２０２において得られるパワースペクトルの振幅が小さくなってゆく。そして、ステップＳ２０２において得られるパワースペクトルのピークが現在設定されている矩形領域外に出ると、ステップＳ２０３の判断結果が「ＮＯ」になり、ＣＰＵ１の処理はステップＳ２０４に進む。このステップＳ２０４においてＣＰＵ１は、ノートオンフラグＮＯＮが“０”か否かを判断する。このときノートオンフラグＮＯＮは“１”となっているため、ステップＳ２０４の判断結果は「ＮＯ」となり、ＣＰＵ１の処理はステップＳ２０５に進む。このステップＳ２０５においてＣＰＵ１は、ノートオンフラグＮＯＮを“０”とする。次にステップＳ２０６に進み、ＣＰＵ１は、その時点におけるノートオン開始時刻データＦＳおよびノートオン期間カウンタＮＬをノート情報としてＲＡＭ７内に設定されたシーケンスデータの格納エリアに格納する（ステップＳ２０６）。次にＣＰＵ１は、ステップＳ２１０およびＳ２１１を順次実行し、ステップＳ２１１の判断結果が「ＮＯ」である場合には処理をステップＳ２０２に戻す。
以後、同様の動作が繰り返され、ステップＳ２１１の判断結果が「ＹＥＳ」となったときこのルーチンは終了する。
【００２４】
以上の処理により、ノート情報を時系列的に並べたシーケンスデータがＲＡＭ７内に得られる。このシーケンスデータは元のオーディオストリームデータと共に携帯電話などの楽曲再生機能を持った電子機器のユーザに供給され、オーディオストリームデータは楽曲の再生に、シーケンスデータはＬＥＤやバイブレータの駆動制御に用いられる。オーディオデータおよびシーケンスデータは、Ｉ／Ｆ群５の中の適切な装置により記憶媒体に格納してユーザに供給してもよいし、Ｉ／Ｆ群５の中の適切な装置を介してネットワーク内のサーバに送信し、そこからユーザに配信するようにしてもよい。
【００２５】
以上のように、本実施形態によれば、周波数解析によりオーディオストリームデータのパワースペクトルを求め、指定された周波数帯域および振幅域内にパワースペクトルのピークが収まる期間を検出し、この検出結果に基づいてシーケンスデータを生成するようにしたので、打楽器演奏音など音高の変化が明確でない楽音の発音タイミングを示すシーケンスデータをオーディオストリームデータから生成することができる。また、本実施形態によれば、周波数解析により求めたパワースペクトルを、横軸を周波数、縦軸を振幅として表示し、この表示画面上において所望の周波数帯域および振幅域をマウスなどのポインティングデバイスにより指定させるようにしたので、ユーザは、所望の楽音の種類に特有な特徴的なパワースペクトルの発生する周波数帯域および振幅域を見つけ、その領域を簡単な操作により指定することができる。
【００２６】
以上、この発明の一実施形態について説明したが、この発明にはこれ以外にも他の実施形態が考えられる。例えば次の通りである。
（１）上記実施形態では、マウスの操作により矩形領域をユーザに指定させたため、振幅域の上限および下限の両方が得られ、パワースペクトルのピークが指定された周波数帯域内にあり、かつ、振幅域の上限および下限の間に収まっている期間を検出した。しかし、振幅域の上限は無視し、パワースペクトルのピークが指定された周波数帯域内にあり、かつ、振幅域の下限以上である期間を検出し、これを楽音の発音期間として扱ってもよい。
【００２７】
（２）上記実施形態では、楽音の発音開始時刻を示す情報と発音の持続時間を示す情報を含むシーケンスデータを生成したが、楽音の発音開始時刻を示す情報を含み、発音の持続時間を示す情報を含まないシーケンスデータを生成してもよい。あるいは、シーケンスデータに従ってＬＥＤやバイブレータの駆動を行う携帯電話などの電子機器において、シーケンスデータ中の楽音の発音開始時刻を示す情報のみを利用してＬＥＤ等の駆動開始タイミングを制御し、駆動の持続時間は例えばユーザが操作子の操作により自由に設定するようにしてもよい。
【００２８】
（３）上記実施形態において、窓掛け１１、ＦＦＴ１２、パワースペクトル表示１３の高速実行が可能な場合には、処理対象のオーディオストリームデータをサウンドシステム８に送って楽曲を再生させ、これに同期させて、オーディオストリームデータの各フレームについての窓掛け１１、ＦＦＴ１２、パワースペクトル表示１３を順次実行させるようにしてもよい。この態様によれば、ユーザは、サウンドシステム８により再生される楽曲を聴き、例えばドラム音などの所望の楽音が発音されるのに合わせて大きく動く特徴的なパワースペクトルを発見し、矩形領域の指定を行うことができる。
【００２９】
（４）矩形領域の指定を行わせるために利用するオーディオストリームデータとシーケンスデータを生成するために利用するオーディオストリームデータは別のデータであってもよい。すなわち、矩形指定によるパラメータ設定１４を容易に行わせるために、処理対象のオーディオストリームデータとは別に、ドラム音、シンバル音といった各種の楽音の単発音のオーディオストリームデータを用意する。そして、これらのうちユーザによって指定されたものについて窓掛け１１、ＦＦＴ１２、パワースペクトル表示１３および矩形指定によるパラメータ設定１４を実行する。そして、矩形領域が定まった場合には、所望の楽曲のオーディオストリームデータを処理対象とし、窓掛け１１、ＦＦＴ１２、パワースペクトル表示１３、矩形内ピーク検出１５および発音時間累算１６の各処理を実行するのである。
【００３０】
（５）上記実施形態では、１個の矩形領域を指定するようにしたが、矩形領域を複数指定することを認め、矩形領域毎に、パワースペクトルのピークが収まる期間の検出および検出結果に基づくシーケンスデータの生成を行うようにしてもよい。この態様によれば、複数種類の楽音を含む楽曲のオーディオストリームデータが処理対象となっており、かつ、楽音の種類により、特徴的なパワースペクトルの現れる周波数帯域が異なるような場合に、それらの楽音の種類毎に矩形領域を設定し、各楽音に対応したシーケンスデータを生成することができる。この場合において、シーケンスデータを利用する携帯電話等において、例えば第１の楽音のシーケンスデータにより赤色ＬＥＤの点滅制御を行い、第２の楽音のシーケンスデータにより青色ＬＥＤの点滅制御を行うようにしてもよい。
（６）窓掛け１１およびＦＦＴ１２は、ＣＰＵ１がＤＳＰ（デジタル信号プロセッサ）などの他の装置に実行させるようにしてもよい。
【図面の簡単な説明】
【００３１】
【図１】この発明の一実施形態であるシーケンスデータ生成装置の構成を示すブロック図である。
【図２】同実施形態におけるシーケンスデータ生成プログラムの処理内容を示す図である。
【図３】同実施形態におけるパワースペクトルの表示例を示す図である。
【図４】同実施形態における矩形指定によるパラメータ設定のためのルーチンの処理内容を示すフローチャートである。
【図５】同実施形態における矩形内ピーク検出および発音時間累算のためのルーチンの処理内容を示すフローチャートである。
【符号の説明】
【００３２】
１……ＣＰＵ、２……ＲＯＭ、３……表示部、４……操作部、５……Ｉ／Ｆ群、６……ＨＤＤ、７……ＲＡＭ、８……サウンドシステム、１１……窓掛け、１２……ＦＦＴ、１３……パワースペクトル表示、１４……矩形指定によるパラメータ設定、１５……矩形内ピーク検出、１６……発音時間累算。
【図１】
0004665664.tif 000002
【図２】
0004665664.tif 000003
【図３】
0004665664.tif 000004
【図４】
0004665664.tif 000005
【図５】
0004665664.tif 000006