(57)【要約】      （修正有）【課題】楽音の各周波数スペクトル成分のレベルをより柔軟に設定可能とする。【解決手段】スペクトル設定装置では、縦軸をレベル、横軸を周波数としたエンベロープ入力画面を表示し、この画面上にエンベロープ波形を表示する。そして、発音すべき楽音を構成する周波数スペクトル成分である基音及び倍音それぞれのレベルを対応する周波数と共に取得する。さらに、この取得したエンベロープレベルに基づき、対応する周波数に該当する基音及び倍音の各レベルを変更する。そのため、周波数に対応したエンベロープの形状に合わせて、楽音の基音及び倍音の構造を変更することができる。したがって、音高の異なる楽音それぞれに対して、特定の周波数帯域に含まれるスペクトル成分のレベルを一律に変更することができ、楽音に含まれる周波数スペクトル成分のレベルをより柔軟に設定可能とすることが可能となる。【選択図】図５
2013029660.tif 000002
【特許請求の範囲】
【請求項１】
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画手段と、
前記エンベロープ描画手段より描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得手段と、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得手段で取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更手段と、
を備えたスペクトル設定装置。
【請求項２】
前記エンベロープレベル取得手段は、前記表示画面の周波数軸レンジ外における前記エンベロープレベルを、前記周波数軸レンジ内において前記エンベロープレベルが設定された最大の周波数に対応する前記エンベロープレベルと同一の値に設定する請求項１に記載のスペクトル設定装置。
【請求項３】
前記レベル変更手段は、前記楽音の周波数スペクトル内において存在する倍音のみのレベルを、当該倍音の周波数に対応する前記エンベロープレベルに基づいて変更する請求項１に記載のスペクトル設定装置。
【請求項４】
前記レベル変更手段は、前記該当する基音あるいは倍音のレベルを、当該基音あるいは倍音の周波数に対応するエンベロープレベルに基づいて変更する請求項１から３のいずれか１項に記載のスペクトル設定装置。
【請求項５】
前記レベル変更手段は、前記該当する基音あるいは倍音のレベルに対して、前記周波数に対応するエンベロープレベルをゲインとして演算し、その演算結果を前記該当する基音あるいは倍音のレベルとする請求項１から３のいずれか１項に記載のスペクトル設定装置。
【請求項６】
コンピュータに、
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画機能と、
前記エンベロープ描画機能によって描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得機能と、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得機能によって取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更機能と、
を実現させるプログラム。
【請求項７】
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画ステップと、
前記エンベロープ描画ステップにおいて描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得ステップと、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得ステップにおいて取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更ステップと、
を含むスペクトル設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器が発生する楽音の周波数スペクトルを設定するスペクトル設定装置、プログラム及びスペクトル設定方法に関する。
【背景技術】
【０００２】
従来、１つの音高に設定されている基本波（基音の波形）及び基本波の倍音成分の各レベルを順次指定することによりエンベロープを表示し、ユーザによって任意の形状に設定されたエンベロープを基に、基本波及び基本波の倍音成分毎のレベルを表すスペクトルデータを更新するスペクトル設定装置が知られている（例えば、特許文献１参照）。
【０００３】
このようなスペクトル設定装置では、１つの音高について、基本波及び基本波の倍音成分毎のスペクトルレベルを１つ１つ個別に設定することなく、ユーザが設定したエンベロープから、その音高の基本波及び基本波の倍音成分毎のスペクトルレベルをまとめて設定することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−５３９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術を含め、従来のスペクトル設定装置においては、所定の音高で発音されるひとつの楽音を構成する周波数スペクトルに基づいて描画されたエンベロープ波形から倍音次数毎のスペクトル成分のレベルを抽出しているため、予め指定された音高の特定の倍音レベルのみを変更することはできるものの、それぞれ異なる音高の複数の楽音全てに対して、特定の周波数帯域に含まれるスペクトルレベルを一律に変更することは困難であった。
即ち、従来のスペクトル設定装置においては、楽音の周波数スペクトル成分のレベルを設定する際の柔軟性がユーザのニーズに対して十分なものではなかった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、楽音の周波数スペクトル成分のレベルをより柔軟に設定可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一態様のスペクトル設定装置は、
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画手段と、
前記エンベロープ描画手段より描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得手段と、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得手段で取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更手段と、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、楽音の周波数スペクトルレベルをより柔軟に設定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係るスペクトル設定装置１のハードウェアの構成を示すブロック図である。
【図２】ＲＡＭ１３が記憶するメモリマップを示す図である。
【図３】ＣＰＵ１１が実行する主制御処理の流れを説明するフローチャートである。
【図４】ＣＰＵ１１が実行する設定処理の流れを説明するフローチャートである。
【図５】エンベロープ入力画面の一例を示す模式図である。
【図６】エンベロープデータから読み出された周波数ｆに対応するスペクトルレベルを示す図である。
【図７】ＣＰＵ１１が実行する再生処理の流れを説明するフローチャートである。
【図８】音源４１が実行する楽音出力処理の流れを説明するフローチャートである。
【図９】スペクトルレベルの設定状態を示す模式図である。
【図１０】エンベロープ波形データから読み出された周波数ｆに対応して設定した各周波数スペクトル成分のレベルを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本発明に係るスペクトル設定装置の実施形態について説明する。
［第１実施形態］
［スペクトル設定装置の構成］
【００１１】
本実施形態に係るスペクトル設定装置は、横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画し、この描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得する。そして、発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、その周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更する。スペクトル設定装置は、このようにして変更された楽音の周波数スペクトルレベルを時間軸上に展開し、展開して得られた時間軸上の波形のデータを更新後の楽音の波形データとして保持する。
【００１２】
これにより、縦軸をレベル、横軸を周波数とする領域に、ユーザーがエンベロープ波形を描画し、この描画されたエンベロープ波形に合わせて、複数の音高の楽音を構成する基音及び倍音の構造を決定することができる。そのため、複数の楽音を構成する周波数スペクトル成分のうち、特定の周波数帯域に含まれるスペクトル成分のレベルを一律に高めることができ、楽音を構成する周波数スペクトル成分、つまり基音及び倍音の各レベルをより柔軟に設定可能とすることが可能となる。
【００１３】
図１は、本発明の第１実施形態に係るスペクトル設定装置１のハードウェアの構成を示すブロック図である。
図１において、スペクトル設定装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、バス１４と、入出力インターフェース１５と、入力部１６と、出力部１７と、記憶部１８と、ＭＩＤＩインターフェース部１９と、ドライブ２０と、を備えている。
【００１４】
ＣＰＵ１１は、ＲＯＭ１２に記録されているプログラム、または、記憶部１８からＲＡＭ１３にロードされたプログラムに従って各種の処理を実行する。具体的には、ＣＰＵ１１は、スペクトル設定装置１のメインフローとなる主制御処理や、そのサブフローとなる設定処理及び再生処理を実行する。
【００１５】
ＲＡＭ１３には、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等が適宜記憶される。具体的には、ＲＡＭ１３には、発生すべき楽音の波形データが音高毎に記憶され、さらにその基音及び倍音のスペクトルレベルを表すデータ及び設定処理においてユーザが設定したスペクトルのエンベロープレベルを表すデータが記憶される。
図２は、ＲＡＭ１３が記憶するメモリマップを示す図である。
図２に示すように、ＲＡＭ１３のメモリマップには、各音高の波形データＷＤ、ｎ次の倍音のスペクトルレベル（即ち、１次の倍音である基音のレベルＢＬ１及びｎ次（ｎは２以上の整数）の倍音のスペクトルレベルＨＬ２〜ＨＬｎ）、ユーザが設定処理において変更したスペクトルのエンベロープデータ（対応する周波数毎のエンベロープレベルのデータ）が格納されている。
【００１６】
各音高の波形データＷＤは、鍵番号０からｋ（ｋは鍵盤の数を表す自然数）の波形データＷＤ０〜ＷＤｋによって構成される。これらの波形データＷＤ０〜ＷＤｋは、時間軸上の振幅を表したデータである。
基音のレベルＢＬ１及び倍音のレベルＨＬ２〜ＨＬｎは、変更対象となっている鍵番号の波形データを構成する基音のレベル及びその基音に対する各倍音のレベルを表したデータである。
【００１７】
スペクトルのエンベロープデータは、予め指定された周波数毎のエンベロープのレベルＥＬ１〜ＥＬｍ（ｍは自然数）を表すデータによって構成される。これらエンベロープのレベルＥＬ１〜ＥＬｍは、例えば１Ｈｚ毎に、ユーザが設定したエンベロープのレベルを取得して得られるデータである。
【００１８】
図１の説明に戻り、ＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インターフェース１５も接続されている。入出力インターフェース１５には、入力部１６、出力部１７、記憶部１８、ＭＩＤＩインターフェース部１９及びドライブ２０が接続されている。
【００１９】
入力部１６は、ＭＩＤＩキーボードを含み、鍵盤及び各種情報を入力するためのスイッチを備えている。そして、入力部１６は、鍵が押下された場合に、その鍵を識別するための鍵番号や、鍵の押下の強さを示す情報（以下、「ベロシティ」と呼ぶ。）をＣＰＵ１１に出力したり、ユーザによって入力された各種情報をＣＰＵ１１に出力したりする。また、入力部１６には、マウス等のポインティングデバイスや、文字入力のためのキーボードが含まれ、これらによる入力信号をＣＰＵ１１に出力する。
【００２０】
出力部１７は、ディスプレイや、スピーカ及びＤ／Ａ変換回路等を有しており、画像や音声を出力する。
記憶部１８は、ハードディスクあるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、スペクトル設定装置１の制御のための各種プログラムやデータを記憶する。
【００２１】
ＭＩＤＩインターフェース部１９は、楽音を発生する音源４１とスペクトル設定装置１とを接続するインターフェースである。音源４１は、再生処理の際に、設定処理の結果、ユーザによって周波数スペクトル成分の変更された波形データに基づく楽音を出力する。なお、音源４１が実行する楽音出力処理の詳細は、図８を参照して後述する。
【００２２】
ドライブ２０には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア３１が適宜装着される。ドライブ２０によってリムーバブルメディア３１から読み出されたプログラムは、必要に応じて記憶部１８にインストールされる。また、リムーバブルメディア３１は、記憶部１８に記憶されている各種データも、記憶部１８と同様に記憶することができる。
【００２３】
［動作］
次に、スペクトル設定装置１の動作を説明する。
［主制御処理］
まず、図３を参照して、ＣＰＵ１１が実行する主制御処理について説明する。
図３は、ＣＰＵ１１が実行する主制御処理の流れを説明するフローチャートである。
主制御処理は、本実施形態では、スペクトル設定装置１の起動と共に開始され、終了の指示が入力されるまで、繰り返し実行される。
【００２４】
ステップＳ１において、ＣＰＵ１１は、スペクトル設定装置１の初期化を実行する。これにより、主制御処理において使用する各パラメータ等がリセットされる。
【００２５】
ステップＳ２において、ＣＰＵ１１は、設定処理及び再生処理のいずれにモードが設定されているかの判定を行う。
設定処理にモードが設定されている場合、ステップＳ２において、設定処理モードであると判定されて、処理はステップＳ３に進む。
ステップＳ３において、ＣＰＵ１１は、設定処理を実行する。なお、設定処理の詳細については、図４を参照して後述する。
ステップＳ４において、ＣＰＵ１１は、ユーザによってモードの変更が指示入力されたか否かの判定を行う。
【００２６】
ユーザによってモードの変更が指示入力された場合、ステップＳ４においてＹＥＳと判定されて、処理はステップＳ５に進む。
これに対し、ユーザによってモードの変更が指示入力されていない場合、ステップＳ４においてＮＯと判定されて、処理はステップＳ２に進む。
ステップＳ５において、ＣＰＵ１１は、モードを再生処理に変更する。
このようなステップＳ５の処理の後、処理はステップＳ２に進む。
【００２７】
また、再生処理にモードが設定されている場合、ステップＳ２において、再生処理モードであると判定されて、処理はステップＳ６に進む。
ステップＳ６において、ＣＰＵ１１は、再生処理を実行する。なお、再生処理の詳細については、図７を参照して後述する。
ステップＳ７において、ＣＰＵ１１は、ユーザによってモードの変更が指示入力されたか否かの判定を行う。
【００２８】
ユーザによってモードの変更が指示入力された場合、ステップＳ７においてＹＥＳと判定されて、処理はステップＳ８に進む。
これに対し、ユーザによってモードの変更が指示入力されていない場合、ステップＳ７においてＮＯと判定されて、処理はステップＳ２に進む。
ステップＳ８において、ＣＰＵ１１は、モードを設定処理に変更する。
このようなステップＳ８の処理の後、処理はステップＳ２に進む。
ＣＰＵ１１は、終了の指示が入力されるまで、このような処理を繰り返す。
【００２９】
［設定処理］
次に、主制御処理のステップＳ３において、サブフローとして実行される設定処理について説明する。
図４は、ＣＰＵ１１が実行する設定処理の流れを説明するフローチャートである。
設定処理は、主制御処理のステップＳ３において、サブフローとして呼び出されることに対応して開始される。
【００３０】
ステップＳ１１において、ＣＰＵ１１は、エンベロープ波形の設定を行うか否かを指示入力するための確認画面を表示する。
エンベロープ波形の設定を行う旨の指示入力が行われると、ステップＳ１１においてＹＥＳと判定されて、処理はステップＳ１２に進む。
これに対し、エンベロープ波形の設定を行わない旨の指示入力が行われると、ステップＳ１１においてＮＯと判定されて、処理は主制御処理に戻る。
【００３１】
ステップＳ１２において、ＣＰＵ１１は、エンベロープ波形を入力するためのユーザインターフェース画面（以下、「エンベロープ入力画面」と呼ぶ。）を表示する。
ステップＳ１３において、ＣＰＵ１１は、エンベロープ入力画面においてユーザが設定したエンベロープをグラフ領域に表示する。
【００３２】
図５は、エンベロープ入力画面の一例を示す模式図である。
エンベロープ入力画面には、横軸を周波数ｆ、縦軸をエンベロープレベルとするグラフ領域が含まれ、入力部１６によって、目的とする形にエンベロープを設定することが可能になっている。
図５に示す例では、ユーザによって、１００Ｈｚを頂点とし５０Ｈｚにおいて１００Ｈｚの１／２のレベルとなるエンベロープが設定されている。
【００３３】
ステップＳ１４において、ＣＰＵ１１は、ユーザが設定したエンベロープに入力を確定するか否かを確認する画面表示を行う。
ユーザが設定したエンベロープに入力を確定しない旨が入力された場合、ステップＳ１４においてＮＯと判定されて、処理はステップＳ１５に進む。
【００３４】
これに対し、ユーザが設定したエンベロープに入力を確定する旨が入力された場合、ステップＳ１４においてＹＥＳと判定されて、処理はステップＳ１６に進む。
ステップＳ１５において、ＣＰＵ１１は、エンベロープ入力画面においてユーザが設定したエンベロープをクリアする。
ステップＳ１５の後、処理はステップＳ１２に進む。
【００３５】
ステップＳ１６において、ＣＰＵ１１は、ユーザが設定したエンベロープの形を記憶する。ステップＳ１６では、例えば１Ｈｚ毎に、ユーザによって設定されたエンベロープのレベルを取得し、図２に示すメモリマップおけるスペクトルのエンベロープデータ（エンベロープのレベルＥＬ１〜ＥＬｍ）として記憶する。
ステップＳ１７において、ＣＰＵ１１は、音高に対応する鍵番号ｋとして０（最低鍵番号）を設定する。
【００３６】
ステップＳ１８において、ＣＰＵ１１は、鍵番号ｋに対応する波形データＷＤｋを図２に示すメモリマップから読み出し、周波数軸上のスペクトルに変換する。
ステップＳ１９において、ＣＰＵ１１は、基音及び各次数の倍音のレベルを取得し、図２に示すメモリマップにおいて、基音のレベルＢＬ１及び倍音のレベルＨＬ２〜ＨＬｎとして格納する。
【００３７】
ステップＳ２０において、ＣＰＵ１１は、レベルを設定する基音及び倍音の次数ｎとして１を設定する。なお、次数ｎ＝１は、基音を表し、２以上は倍音を表している。
ステップＳ２１において、ＣＰＵ１１は、ｎ次の倍音の周波数ｆを取得する。
ステップＳ２２において、ＣＰＵ１１は、周波数ｆがエンベロープ入力画面の横軸のレンジ内であるか否かの判定を行う。
【００３８】
周波数ｆがエンベロープ入力画面の横軸のレンジ内でない場合、ステップＳ２２においてＮＯと判定されて、処理はステップＳ２５に進む。
これに対し、周波数ｆがエンベロープ入力画面の横軸のレンジ内である場合、ステップＳ２２においてＹＥＳと判定されて、処理はステップＳ２３に進む。
【００３９】
ステップＳ２３において、ＣＰＵ１１は、図２に示すメモリマップのエンベロープデータから、周波数ｆに対応するエンベロープのレベルを読み出す。このとき、ｎ次の倍音の周波数ｆがエンベロープデータとして格納されているデータのサンプリング周波数と一致しない場合、ＣＰＵ１１は、周波数ｆに最も近い周波数のエンベロープのレベルを読み出すようにしても良い。
【００４０】
図６は、エンベロープデータから読み出された周波数ｆに対応するレベルを示す図である。
図６に示すように、ステップＳ２３の処理では、基音及びｎ次の倍音の周波数に対応するスペクトルレベルが取得される。
ステップＳ２４において、ＣＰＵ１１は、ｎ次の倍音のレベルＨＬｎを、読み出したエンベロープレベルに変更する。
【００４１】
ステップＳ２５において、ＣＰＵ１１は、レベルを設定する基音及び倍音の次数ｎを１加算する。
ステップＳ２６において、ＣＰＵ１１は、次数ｎが設定されている倍音の最高次数より大きいか否かの判定を行う。
次数ｎが設定されている倍音の最高次数以下である場合、ステップＳ２６においてＮＯと判定されて、処理はステップＳ２１に進む。
【００４２】
これに対し、次数ｎが設定されている倍音の最高次数より大きい場合、ステップＳ２６にＹＥＳと判定されて、処理はステップＳ２７に進む。
ステップＳ２７において、図２に示すメモリマップにおける１からｎ次の倍音のレベル（１次の倍音である基音のレベルＢＬ１及び２次以上の倍音のレベルＨＬ２〜ＨＬｎ）で表される音高の波形を時間軸上に展開し、波形データを生成する。
【００４３】
ステップＳ２８において、ＣＰＵ１１は、ステップＳ２７において生成した波形データを図２に示すメモリマップの波形データＷＤｋとして格納する。
ステップＳ２９において、ＣＰＵ１１は、鍵番号ｋを１加算する。
ステップＳ３０において、ＣＰＵ１１は、鍵番号ｋが入力部１６に備えられているＭＩＤＩキーボードの鍵の数を表す最高鍵番号より大きいか否かの判定を行う。
【００４４】
鍵番号ｋが最高鍵番号以下である場合、ステップＳ３０においてＮＯと判定されて、処理はステップＳ１８に進む。
これに対し、鍵番号ｋが最高鍵番号より大きい場合、ステップＳ３０においてＹＥＳと判定されて、処理は主制御処理に戻る。
【００４５】
このように、設定処理が実行されると、ユーザによって入力されたエンベロープにおいて、鍵番号０の基音及び各次数の倍音の周波数におけるレベルが取得され、鍵番号０から基音の周波数を１音高分ずらして、鍵番号１の基音及び各次数の倍音の周波数におけるレベルが取得されるというように、最大鍵番号の基音及び各次数の倍音の周波数におけるレベルまでが順次取得される。
【００４６】
［再生処理］
次に、主制御処理のステップＳ６において、サブフローとして実行される再生処理について説明する。
図７は、ＣＰＵ１１が実行する再生処理の流れを説明するフローチャートである。
再生処理は、主制御処理のステップＳ６において、サブフローとして呼び出されることに対応して設定される。
【００４７】
ステップＳ４１において、ＣＰＵ１１は、全ての鍵番号の鍵における入力の状態を走査する。
ステップＳ４２において、ＣＰＵ１１は、各鍵番号の鍵において、入力の状態に変化があるか否かの判定を行う。
各鍵番号の鍵において、入力の状態の変化が離鍵（鍵の押下の解放）である場合、ステップＳ４２において「オフ」と判定されて、処理はステップＳ４３に進む。
【００４８】
これに対し、各鍵番号の鍵において、入力の状態の変化が押鍵（鍵の押下の開始）である場合、ステップＳ４２において「オン」と判定されて、処理はステップＳ４５に進む。
また、各鍵番号の鍵において、入力の状態の変化がない場合、処理は主制御処理に戻る。
ステップＳ４３において、ＣＰＵ１１は、オフと判定された鍵番号ｋを離鍵番号として設定する。
【００４９】
ステップＳ４４において、ＣＰＵ１１は、音源４１に離鍵を通知するためのイベント（以下、「ノートオフイベント」と呼ぶ。）を生成する。ノートオフイベントには、離鍵番号及び０を示すベロシティが含まれている。
このようなステップＳ４４の処理の後、処理はステップＳ４８に進む。
ステップＳ４５において、ＣＰＵ１１は、オンと判定された鍵番号ｋを押鍵番号として設定する。
【００５０】
ステップＳ４６において、ＣＰＵ１１は、押鍵のあった鍵のベロシティ（鍵盤の押下の強さ）を検出する。
ステップＳ４７において、ＣＰＵ１１は、音源４１に押鍵を通知するためのイベント（以下、「ノートオンイベント」と呼ぶ。）を生成する。ノートオンイベントには、押鍵番号、音高を示す情報（図２のメモリマップにおける波形データを識別する情報）及びベロシティが含まれている。
【００５１】
このようなステップＳ４７の処理の後、処理はステップＳ４８に進む。
ステップＳ４８において、ＣＰＵ１１は、ノートオンイベントあるいはノートオフイベントを音源４１に出力する。
このようなステップＳ４８の処理の後、処理は主制御処理に戻る。
【００５２】
［楽音出力処理］
次に、再生処理が実行されることに対応して、音源４１において実行される楽音出力処理について説明する。
図８は、音源４１が実行する楽音出力処理の流れを説明するフローチャートである。
【００５３】
楽音出力処理は、スペクトル設定装置１において再生処理が実行されることに対応して、音源４１によって開始される。
ステップＳ５１において、音源４１は、スペクトル設定装置１からイベントを受信したか否かの判定を行う。
【００５４】
イベントを受信していない場合、ステップＳ５１においてＮＯと判定されて、処理はステップＳ５６に進む。
イベントを受信した場合、ステップＳ５１においてＹＥＳと判定されて、処理はステップＳ５２に進む。
【００５５】
ステップＳ５２において、音源４１は、受信したイベントがノートオンイベントであるか否かの判定を行う。
受信したイベントがノートオンイベントでない場合、ステップＳ５２においてＮＯと判定されて、処理はステップＳ５３に進む。なお、受信したイベントがノートオンイベントでない場合には、受信したイベントはノートオフイベントであると判定される。
これに対し、受信したイベントがノートオンイベントである場合、ステップＳ５２においてＹＥＳと判定されて、処理はステップＳ５４に進む。
【００５６】
ステップＳ５３において、音源４１は、出力中の楽音におけるエンベロープのリリースを開始する。これにより、出力中の楽音の音量が急激に減少する。
このようなステップＳ５３の処理の後、処理はステップＳ５７に進む。
【００５７】
ステップＳ５４において、音源４１は、ノートオンを表すノートオンフラグに、ノートオン中であることを示す１を設定する。
ステップＳ５５において、音源４１は、ノートオンイベント受信に応答して、エンベロープの発生を開始する。
ステップＳ５６において、音源４１は、ノートオンフラグに１が設定されているか否かの判定を行う。
【００５８】
ノートオンフラグに１が設定されていない場合、ステップＳ５６においてＮＯと判定されて、処理はステップＳ５１に進む。
これに対し、ノートオンフラグに１が設定されている場合、ステップＳ５６においてＹＥＳと判定されて、処理はステップＳ５７に進む。
ステップＳ５７において、音源４１は、ノートオンイベントにおいて示されている音高を表す情報を基に、スペクトル設定装置１のメモリマップから、押鍵番号に対応する波形データを読み出す。
【００５９】
ステップＳ５８において、音源４１は、出力する楽音のエンベロープのレベルが予め設定した閾値以下となっているか否かの判定を行う。
出力する楽音のエンベロープレベルが予め設定した閾値以下となっている場合、処理はステップＳ５９に進む。
【００６０】
これに対し、出力する楽音のエンベロープレベルが予め設定した閾値より大きい場合、処理はステップＳ６０に進む。
ステップＳ５９において、音源４１は、ノートオンフラグにノートオン中でないことを表す０を設定する。
このようなステップＳ５９の処理の後、処理はステップＳ５１に進む。
【００６１】
ステップＳ６０において、音源４１は、ステップＳ５７において読み出した波形データを出力する。このとき、ノートオンからの経過時間に対応する波形データのレベルが出力される。
このようなステップＳ６０処理の後、処理はステップＳ５１に進む。
なお、楽音出力処理は、スペクトル設定装置１における再生処理の終了に対応して終了となる。
【００６２】
以上説明したように、第１実施形態のスペクトル設定装置１では、横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画し、この描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得する。そして、発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、その周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更する。スペクトル設定装置１は、このようにして変更された音高のスペクトルのレベルを時間軸上の波形に展開し、展開して得られた時間軸上の波形のデータを更新後の音高の波形データとして保持する。
【００６３】
これにより、縦軸をレベル、横軸を周波数とする領域に、ユーザーがエンベロープ波形を描画し、この描画されたエンベロープ波形に合わせて、複数の音高の楽音を構成する基音及び倍音の構造を決定することができる。そのため、複数の楽音を構成する周波数スペクトル成分のうち、特定の周波数帯域に含まれるスペクトル成分のレベルを一律に高めることができ、楽音を構成する周波数スペクトル成分、つまり基音及び倍音の各レベルをより柔軟に設定可能とすることが可能となる。
【００６４】
なお、上記実施形態において、設定処理のステップＳ１２を実行するＣＰＵ１１がエンベロープ描画手段に対応し、設定処理のステップＳ２３を実行するＣＰＵ１１がエンベロープレベル取得手段に対応し、設定処理のステップＳ２４を実行するＣＰＵ１１がレベル変更手段に対応する。
【００６５】
［変形例］
第１実施形態において、設定処理では、エンベロープ入力画面の横軸の周波数レンジ内についてのみ、入力されたエンベロープ波形のレベルを基に楽音を構成する周波数スペクトル成分のレベルを設定することとしたが、この周波数レンジを越える範囲については、横軸の右端の周波数、即ち周波数レンジ内で最大の周波数に対応するエンベロープ波形のレベルと同一のレベルを設定することもできる。
【００６６】
この場合、高次の倍音について、ユーザの目的に合わせた周波数スペクトル成分の各レベルを設定することができる。
以上、本発明の第１実施形態に係るスペクトル設定装置１について説明した。
次に、本発明の第２実施形態に係るスペクトル設定装置１について説明する。
【００６７】
［第２実施形態］
第１実施形態では、設定処理のステップＳ２３において、周波数ｆに対応するエンベロープ波形のレベルを読み出し、ステップＳ２４において、周波数ｆのスペクトル成分であるｎ次の倍音のレベルＨＬｎを、この読み出したエンベロープ波形のレベルに変更することとした。
即ち、第１実施形態では、スペクトル入力画面の横軸の周波数レンジ内に含まれる全ての倍音のレベルを、対応するエンベロープ波形のレベルに設定することとした。
【００６８】
これに対し、第２実施形態では、第１実施形態と同様の構成の下、ステップＳ２４の処理を変更し、レベルが「０」でない倍音、つまり楽音の構成要素として存在する倍音のレベルに対してのみ、その倍音の周波数ｆに対応するエンベロープ波形のレベルに基づく変更を行う。
【００６９】
図９は、スペクトルレベルの設定状態を示す模式図である。
また、図１０は、エンベロープ波形データから読み出された周波数ｆに対応して設定した各周波数スペクトル成分のレベルを示す図である。なお、図１０においては、第１実施形態における図５で設定されたエンベロープ波形に基づいて周波数スペクトル成分のレベルを設定した場合を示している。
【００７０】
図９に示すように、基音（１次の倍音）及び３次の倍音のみ存在し、２次の倍音が存在していない場合、基音及び３次の倍音については、エンベロープ波形のレベルに対応するレベルに設定される一方、２次の倍音には設定されない（レベルが「０」のままである）。
【００７１】
このような処理とすることにより、第２実施形態のスペクトル設定装置１では、予めス周波数ペクトル成分として存在する倍音についてのみ、そのレベルをエンベロープ入力画面によって入力されたエンベロープ波形のレベルに基づいて設定することができる。
【００７２】
［変形例］
第１実施形態及び第２実施形態において、エンベロープ波形の各レベルを取得して、そのレベルをそのまま、対応する周波数スペクトル成分のレベルとするものとした。
これに対し、エンベロープ波形のレベルを、周波数スペクトル成分のレベルに対するゲインとし、このゲインを対応する周波数スペクトル成分レベルに乗算することにより、周波数スペクトル成分の新たなレベルとすることもできる。
この場合、既に設定されているスペクトルレベルに対する強弱を表すエンベロープレベルを設定して、楽音の周波数スペクトル成分のレベルを設定することが可能となる。
【００７３】
上述の実施形態では、記憶媒体としてリムーバブルメディア３１を用いているがこれに限定されない。例えば、ネットワーク上の他の装置（サーバ等）内の記憶部（ハードディスク等）でも良い。
【００７４】
また、上述の実施形態では、スペクトル設定装置１として、情報処理機能を有する電子機器一般を採用することができる。具体的には、例えば、スペクトル設定装置１は、ノート型のパーソナルコンピュータ、デスクトップ型のパーソナルコンピュータ、携帯情報端末、携帯電話機、ポータブルゲーム機等によって実現することができる。
【００７５】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
また、スペクトル設定装置１の各機能は、ハードウェア単体で構成しても良いし、ソフトウェア単体で構成しても良いし、それらの組み合わせで構成しても良い。
【００７６】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであっても良い。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであっても良い。
【００７７】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図１のリムーバブルメディア３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア３１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図１のＲＯＭ１２や、図１の記憶部１８に含まれるハードディスク等で構成される。
【００７８】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【００７９】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００８０】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画手段と、
前記エンベロープ描画手段より描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得手段と、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得手段で取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更手段と、
を備えたスペクトル設定装置。
［付記２］
前記エンベロープレベル取得手段は、前記表示画面の周波数軸レンジ外における前記エンベロープレベルを、前記周波数軸レンジ内において前記エンベロープレベルが設定された最大の周波数に対応する前記エンベロープレベルと同一の値に設定する付記１に記載のスペクトル設定装置。
［付記３］
前記レベル変更手段は、前記楽音の周波数スペクトル内において存在する倍音のみのレベルを、当該倍音の周波数に対応する前記エンベロープレベルに基づいて変更する付記１に記載のスペクトル設定装置。
［付記４］
前記レベル変更手段は、前記該当する基音あるいは倍音のレベルを、当該基音あるいは倍音の周波数に対応するエンベロープレベルに基づいて変更する付記１から３のいずれか１項に記載のスペクトル設定装置。
［付記５］
前記レベル変更手段は、前記該当する基音あるいは倍音のレベルに対して、前記周波数に対応するエンベロープレベルをゲインとして演算し、その演算結果を前記該当する基音あるいは倍音のレベルとする付記１から３のいずれか１項に記載のスペクトル設定装置。
［付記６］
コンピュータに、
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画機能と、
前記エンベロープ描画機能によって描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得機能と、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得機能によって取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更機能と、
を実現させるプログラム。
［付記７］
横軸を周波数、縦軸をレベルとする表示画面上に、エンベロープ波形を描画するエンベロープ描画ステップと、
前記エンベロープ描画ステップにおいて描画されたエンベロープ波形の各レベルを、対応する周波数と共に取得するエンベロープレベル取得ステップと、
発音すべき楽音の周波数スペクトルを構成する基音及び倍音のうち、その周波数が前記エンベロープ取得ステップにおいて取得された各エンベロープレベルに対応する周波数に該当する基音あるいは倍音が存在する場合は、前記周波数に対応するエンベロープレベルに基づいて、前記該当する基音あるいは倍音のレベルを変更するレベル変更ステップと、
を含むスペクトル設定方法。
【符号の説明】
【００８１】
１・・・スペクトル設定装置、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・バス、１５・・・入出力インターフェース、１６・・・入力部、１７・・・出力部、１８・・・記憶部、１９・・・ＭＩＤＩインターフェース部、２０・・・ドライブ、３１・・・リムーバブルメディア、４１・・・音源
【図１】
2013029660.tif 000003
【図２】
2013029660.tif 000004
【図３】
2013029660.tif 000005
【図４】
2013029660.tif 000006
【図５】
2013029660.tif 000007
【図６】
2013029660.tif 000008
【図７】
2013029660.tif 000009
【図８】
2013029660.tif 000010
【図９】
2013029660.tif 000011
【図１０】
2013029660.tif 000012