(57)【特許請求の範囲】
【請求項１】
先頭桁から最終桁の１つ前までの桁数分の数字と最終桁の文字とからなる文字列を入力する入力手段と、
前記入力手段により入力される先頭桁から最終桁の１つ前までの各桁の数字の内、先頭桁を１次倍音に、この先頭桁から最終桁の１つ前までの各桁にそれぞれ２次倍音以降の整数次倍音を対応付けて各桁の数値を読み込む第１の読込手段と、
前記第１の読込手段により読み込まれた各桁の数値を、対応する倍音次数のスペクトルレベルに変換して基本パターンの倍音構造を設定する第１の設定手段と、
前記入力手段により入力される最終桁の文字を読み込む第２の読込手段と、
前記第２の読込手段により読み込まれた最終桁の文字が、繰り返しパターンの繰り返し設定を指示する所定の文字である場合、前記第１の設定手段により設定された基本パターンの倍音構造に続いて、基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンを繰り返し設定する第２の設定手段と
を具備することを特徴とするスペクトル設定装置。
【請求項２】
前記第２の設定手段は、設定可能な最大の次数まで繰り返しパターンを繰り返し設定することを特徴とする請求項１記載のスペクトル設定装置。
【請求項３】
先頭桁から最終桁の１つ前までの桁数分の数字と最終桁の文字とからなる文字列を入力する入力処理と、
前記入力処理により入力される先頭桁から最終桁の１つ前までの各桁の数字の内、先頭桁を１次倍音に、この先頭桁から最終桁の１つ前までの各桁にそれぞれ２次倍音以降の整数次倍音を対応付けて各桁の数値を読み込む第１の読込処理と、
前記第１の読込処理により読み込まれた各桁の数値を、対応する倍音次数のスペクトルレベルに変換して基本パターンの倍音構造を設定する第１の設定処理と、
前記入力処理により入力される最終桁の文字を読み込む第２の読込処理と、
前記第２の読込処理により読み込まれた最終桁の文字が、繰り返しパターンの繰り返し設定を指示する所定の文字である場合、前記第１の設定処理により設定された基本パターンの倍音構造に続いて、基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンを繰り返し設定する第２の設定処理と
をコンピュータに実行させるスペクトル設定処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、倍音合成方式で楽音を発生する楽音発生装置に用いて好適なスペクトル設定装置およびスペクトル設定処理プログラムに関する。
【背景技術】
【０００２】
従来より、正弦波形などの基本波とその倍音成分（整数次倍音）とを重ね合わせて任意の倍音構造の楽音を発生する倍音合成方式の楽音発生装置が知られている。この種の装置では、予め各種倍音構造のスペクトルデータを記憶しておき、これらスペクトルデータの内から楽音発生装置側の発音チャンネルにアサインするスペクトルデータを選択すると、その選択されたスペクトルデータ、すなわち基本波およびその倍音成分毎のスペクトルレベル（振幅値）を、指定された発音チャンネル毎に設定するスペクトル設定装置を備えている。こうしたスペクトル設定装置については、例えば特許文献１に開示されている。
【０００３】
【特許文献１】特開２００４−５３９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、従来のスペクトル設定装置では、基本波およびその倍音成分毎のスペクトルレベルを一つ一つ個別に設定して倍音構造を形成する為、倍音構造を形成する各次数のスペクトルレベルを一括して設定することが出来ないという問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、倍音構造を形成する各次数のスペクトルレベルを一括して設定することができるスペクトル設定装置およびスペクトル設定処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に記載の発明では、先頭桁から最終桁の１つ前までの桁数分の数字と最終桁の文字とからなる文字列を入力する入力手段と、前記入力手段により入力される先頭桁から最終桁の１つ前までの各桁の数字の内、先頭桁を１次倍音に、この先頭桁から最終桁の１つ前までの各桁にそれぞれ２次倍音以降の整数次倍音を対応付けて各桁の数値を読み込む第１の読込手段と、前記第１の読込手段により読み込まれた各桁の数値を、対応する倍音次数のスペクトルレベルに変換して基本パターンの倍音構造を設定する第１の設定手段と、前記入力手段により入力される最終桁の文字を読み込む第２の読込手段と、前記第２の読込手段により読み込まれた最終桁の文字が、繰り返しパターンの繰り返し設定を指示する所定の文字である場合、前記第１の設定手段により設定された基本パターンの倍音構造に続いて、基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンを繰り返し設定する第２の設定手段とを具備することを特徴とする。
【００１０】
上記請求項１に従属する請求項２に記載の発明では、前記第２の設定手段は、設定可能な最大の次数まで繰り返しパターンを繰り返し設定することを特徴とする。
【００１２】
請求項３に記載の発明では、先頭桁から最終桁の１つ前までの桁数分の数字と最終桁の文字とからなる文字列を入力する入力処理と、前記入力処理により入力される先頭桁から最終桁の１つ前までの各桁の数字の内、先頭桁を１次倍音に、この先頭桁から最終桁の１つ前までの各桁にそれぞれ２次倍音以降の整数次倍音を対応付けて各桁の数値を読み込む第１の読込処理と、前記第１の読込処理により読み込まれた各桁の数値を、対応する倍音次数のスペクトルレベルに変換して基本パターンの倍音構造を設定する第１の設定処理と、前記入力処理により入力される最終桁の文字を読み込む第２の読込処理と、前記第２の読込処理により読み込まれた最終桁の文字が、繰り返しパターンの繰り返し設定を指示する所定の文字である場合、前記第１の設定処理により設定された基本パターンの倍音構造に続いて、基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンを繰り返し設定する第２の設定処理とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明では、倍音構造を形成する各スペクトルレベルを一括して設定することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。
[第１実施形態]  
Ａ．構成  
図１は、第１実施形態によるスペクトル設定装置を備えた楽音発生装置の構成を示すブロック図である。この図において、ＣＰＵ１０は、操作部１５に配設される各種スイッチ操作に応じて装置各部の動作形態を指定したり、後述するスペクトル設定処理を実行して基本波およびその倍音成分毎のスペクトルレベル（振幅値）を一括設定する。また、ＣＰＵ１０では、設定した基本波およびその倍音成分毎のスペクトルレベルに基づき倍音合成した波形データを、後述する鍵盤１３から供給される演奏情報に応じて修飾し、これにより生成される楽音波形データを出力する。
【００１５】
ＲＯＭ１１は、上記ＣＰＵ１０が実行する各種プログラムの他、例えば後述するスペクトル設定処理に用いられるスペクトル設定画面ＳＳなどの各種ＧＵＩ（グラフィカル・ユーザ・インタフェース）画面データを記憶する。ＲＯＭ１１に記憶される各種プログラムとは、後述するメインルーチンおよびスペクトル設定処理を含む。また、ＲＯＭ１１に記憶されるスペクトル設定画面ＳＳとは、例えば図２に図示するように、入力フィールドＩＮとスペクトル設定ボタンＳＢとを備える。
【００１６】
ＲＡＭ１２は、図３に示すように、各種レジスタ・フラグデータを一時記憶するワークエリアＷＥと、スペクトル設定処理により一括設定される１次倍音（基本波）からｎ次倍音までの各スペクトルレベルＳＰ[１]〜ＳＰ[ｎ]を格納するスペクトルデータエリアＳＤＥと、スペクトル設定ファイルエリアＳＦＥとを備える。なお、スペクトル設定ファイルエリアＳＦＥに格納されるスペクトル設定ファイルの構成については、後述の第２実施形態において説明する。
【００１７】
鍵盤１３は、押離鍵操作（演奏操作）に応じたキーオン／キーオフイベントや鍵番号等を含む演奏情報を発生してＣＰＵ１０に供給する。入力部１４は、上述したスペクトル設定画面ＳＳ（図２参照）の入力フィールドＩＮに数字（又は文字）を入力するキーボードや、スペクトル設定画面ＳＳに設けられるスペクトル設定ボタンＳＢをポインティングした状態でマウスボタンを押下する周知のクリック操作がなされるマウスを備える。
【００１８】
操作部１５は、装置パネルに配設される各種スイッチを備え、操作されるスイッチ種に応じたスイッチイベントを発生してＣＰＵ１０に供給する。図示していないが、操作部１５には、例えば装置電源をオンオフする電源スイッチの他、動作モードを切り替えるモード切り替えスイッチ等が設けられている。表示部１６は、ＬＣＤパネル等から構成され、ＣＰＵ１０から供給される表示制御信号に応じて装置各部の動作状態や、スペクトル設定状態などを画面表示する。サウンドシステム１７は、ＣＰＵ１０が公知の倍音合成方式にて発生した楽音波形データをアナログ形式の楽音信号に変換した後、当該楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカから発音させる。
【００１９】
Ｂ．動作  
次に、図４〜図８を参照して第１実施形態の動作について説明する。以下では、最初に全体動作としてメインルーチンの動作を説明した後、メインルーチンからコールされるスペクトル設定処理の動作を説明する。
【００２０】
（１）メインルーチンの動作  
図４は、メインルーチンの動作を示すフローチャートである。装置電源の投入に応じてメインルーチンが実行されると、ＣＰＵ１０は図４に図示するステップＳＡ１に進み、ＲＡＭ１２のワークエリアＷＥに格納される各種レジスタ・フラグデータを初期化したり、スペクトルデータエリアＳＤＥの内容をゼロリセットする。そして、こうしたイニシャライズが完了すると、次のステップＳＡ２に進み、動作モードを表すモードフラグＭＯＤＥのフラグ値が「０」であるか否かを判断する。なお、モードフラグＭＯＤＥは、「０」の場合に発音処理を実行する発音モードを表し、「１」の場合にスペクトル設定処理を実行するスペクトル設定モードを表す。
【００２１】
したがって、ステップＳＡ２では、発音モードであるか否かを判断する。発音モードであれば、判断結果は「ＹＥＳ」になり、ステップＳＡ３に進み、倍音合成される楽音を、鍵盤１３の押離鍵操作で生じる演奏情報に応じて修飾して発音させたり消音させる発音処理を実行した後、ステップＳＡ５に進む。なお、倍音合成される楽音とは、後述のスペクトル設定処理にて設定される倍音構造（１次倍音からｎ次倍音の各スペクトルレベル）に従って倍音合成される波形データを指す。
【００２２】
一方、モードフラグＭＯＤＥの値が「１」のスペクトル設定モードであると、上記ステップＳＡ２の判断結果は「ＮＯ」になり、ステップＳＡ４に進み、倍音構造（１次倍音からｎ次倍音の各スペクトルレベル）を一括して設定するスペクトル設定処理を実行した後、ステップＳＡ５に進む。ステップＳＡ５では、操作部１５に配設されるモード切り替えスイッチの操作の有無を判断する。モード切り替えスイッチが操作されなければ、判断結果は「ＮＯ」になり、ステップＳＡ７に進む。
【００２３】
これに対し、モード切り替えスイッチが操作されると、判断結果は「ＹＥＳ」になり、ステップＳＡ６に進み、モードフラグＭＯＤＥを反転させた後、ステップＳＡ７に進む。そして、ステップＳＡ７では、例えば上記ステップＳＡ４のスペクトル設定処理にて設定された倍音構造を表示部１６に画面表示する等の、その他の処理を実行した後、上記ステップＳＡ２に処理を戻す。以後、装置電源がパワーオフされる迄、上述したステップＳＡ２〜ＳＡ７を繰り返す。
【００２４】
（２）スペクトル設定処理の動作
次に、図５〜図８を参照してスペクトル設定処理の動作を説明する。図５は、スペクトル設定処理の動作を示すフローチャートである。上述したメインルーチンのステップＳＡ４（図４参照）を介して本処理が実行されると、ＣＰＵ１０は図５に図示するステップＳＢ１に処理を進め、ＲＯＭ１１からスペクトル設定画面ＳＳ（図２参照）の画面データを読み出して表示部１６に画面表示する。次いで、ステップＳＢ２では、スペクトル設定画面ＳＳに設けられるスペクトル設定ボタンＳＢがクリック操作されるまで待機する。
【００２５】
スペクトル設定ボタンＳＢがクリック操作されると、ステップＳＢ２の判断結果が「ＹＥＳ」になり、ステップＳＢ３に進む。ステップＳＢ３では、スペクトル設定画面ＳＳの入力フィールドＩＮに入力が有るか否かを判断する。入力が無ければ、判断結果は「ＮＯ」になり、ステップＳＢ４に進み、例えば「入力されていません。所用の桁数の数列を入力してください」なるエラー表示を表示部１６に画面表示させた後、上述のステップＳＢ２に処理を戻す。
【００２６】
本実施形態では、後述するように、倍音構造を一括設定する為、スペクトルレベルを設定する倍音次数に対応した桁数分の数字（数列）を、スペクトル設定画面ＳＳの入力フィールドＩＮに入力する仕様となっている。そして、所用の桁数の数列を入力フィールドＩＮに入力した後にスペクトル設定ボタンＳＢをクリック操作すると、上記ステップＳＢ２，ＳＢ３の各判断結果が「ＹＥＳ」になり、ステップＳＢ５に進み、設定処理を実行する。
【００２７】
ステップＳＢ５を介して設定処理が実行されると、ＣＰＵ１０は図６に図示するステップＳＣ１に処理を進める。ステップＳＣ１では、倍音次数を指定するポインタＩに初期値「１」をセットする。次いで、ステップＳＣ２では、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の内、ポインタＩで指定される桁の数字を読み込んでレジスタＩＮにストアする。例えば、図７に図示する一例のように、スペクトル設定画面ＳＳの入力フィールドＩＮに「１０２４」なる４桁の数列が入力されている場合、ここでは先頭（１番目）の桁の数字「１」を読み込んでレジスタＩＮにストアする。
【００２８】
次いで、ステップＳＣ３では、レジスタＩＮの値を、ポインタＩで指定される次数レジスタＤＮ[Ｉ]にストアする。続いて、ステップＳＣ４では、次数レジスタＤＮ[Ｉ]の値が「０」であるか否かを判断する。図７に図示する一例において、先頭（１番目）の桁の数字「１」を読み込んでいる場合には、ここでの判断結果が「ＮＯ」になり、ステップＳＣ６に進む。ステップＳＣ６では、１００／ＤＮ［Ｉ］なる演算式にて算出したスペクトルレベルをレジスタＳＬにストアする。したがって、先頭（１番目）の桁の数字「１」を読み込んでいる場合には、上記演算式で得られる値「１００」をレジスタＳＬにストアする。
【００２９】
そして、ステップＳＣ７では、レジスタＳＬに格納された値を、ポインタＩで指定される倍音次数のスペクトルレベルＳＰ[Ｉ]としてＲＡＭ１２のスペクトルデータエリアＳＤＥ（図３参照）にストアする。したがって、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の先頭桁「１」を読み込んだ場合には、１次倍音のスペクトルレベルＳＰ［１］が「１００」に設定される。
【００３０】
こうして、入力フィールドＩＮに入力された数列の先頭桁に対応した１次倍音のスペクトルレベルＳＰ［１］が設定されると、ステップＳＣ８に進み、ポインタＩをインクリメントして歩進させる。そして、ステップＳＣ９では、歩進されたポインタＩが最後の次数、すなわち設定可能な最大次数を超えたかどうかを判断する。超えていなければ、判断結果は「ＮＯ」となり、ステップＳＣ１０に進み、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の最後の桁まで読み込み終えたか否かを判断する。最後まで読み込み終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＣ２に処理を戻す。
【００３１】
そして、上述した入力の一例において、２桁目の「０」を読み込むと、上述したステップＳＣ４の判断結果が「ＹＥＳ」になり、ステップＳＣ５に進み、ポインタＩで指定される２次倍音のスペクトルレベルＳＰ[２]を「０」としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアした後、ステップＳＣ８に進み、ポインタＩを歩進させる。
【００３２】
以後、同様にして、入力フィールドＩＮに入力された数列「１０２４」の３桁目を読み込んだ場合には、１００／２により得られる値「５０」が３次倍音のスペクトルレベルＳＰ[３]としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアされ、さらに４桁目を読み込むと、１００／４により得られる値「２５」が４次倍音のスペクトルレベルＳＰ[４]としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアされる。こうして、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の最後の桁まで読み込み終えると、上記ステップＳＣ１０の判断結果が「ＹＥＳ」になり、設定処理を終える。
【００３３】
このように、第１実施形態では、入力される数列の先頭桁を１次倍音（基本波）に、この先頭桁以降の各桁にそれぞれ２次倍音以降の整数次倍音を対応付け、倍音構造を指定する桁数分の数列を入力すると、入力された各桁の数値に応じて、予め指定された演算式に基づきそれぞれ対応する倍音次数のスペクトルレベルを算出するので、倍音構造を形成する各次数のスペクトルレベルを一括して設定し得るようになる。
【００３４】
例えば、図７に図示した一例のように、スペクトル設定画面ＳＳの入力フィールドＩＮに「１０２４」なる４桁の数列を入力するだけで、図８に図示するように、１次倍音のスペクトルレベルが「１００」、２次倍音のスペクトルレベルが「０」、３次倍音のスペクトルレベルが「５０」、４次倍音のスペクトルレベルが「２５」となる倍音構造を一括設定し得るようになっている。
【００３５】
[第２実施形態]  
次に、図９〜図１１を参照して第２実施形態による設定処理の動作を説明する。第２実施形態の構成は、上述した第１実施形態と同一なので、その説明については省略する。図９は、第２実施形態による設定処理の動作を示すフローチャートである。前述した第１実施形態と同様、スペクトル設定処理のステップＳＢ５（図５参照）を介して本処理が実行されると、ＣＰＵ１０は図９に図示するステップＳＤ１に処理を進め、倍音次数を指定するポインタＩに初期値「１」をセットする。
【００３６】
続いて、ステップＳＤ２では、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の内、ポインタＩで指定される桁の数字を読み込んでレジスタＩＮにストアする。例えば、スペクトル設定画面ＳＳの入力フィールドＩＮに「１０２３」なる４桁の数列が入力された場合を想定する。すると、この一例では、先頭（１番目）の桁の数字「１」が読み込まれてレジスタＩＮにストアされる。
【００３７】
次いで、ステップＳＤ３では、レジスタＩＮの値を、ポインタＩで指定される次数レジスタＤＮ[Ｉ]にストアし、続くステップＳＤ４では、次数レジスタＤＮ[Ｉ]の値が「０」であるか否かを判断する。想定した一例では、先頭（１番目）の桁の数字「１」が次数レジスタＤＮ[１]にストアされるので、上記ステップＳＤ４の判断結果は「ＮＯ」になり、ステップＳＤ６に進む。ステップＳＤ６では、次数レジスタＤＮ[Ｉ]の値に対応するスペクトルレベルをスペクトル設定ファイルから読み出してレジスタＳＬにストアする。
【００３８】
スペクトル設定ファイルとは、ＲＡＭ１２のスペクトル設定ファイルエリアＳＦＥ（図３参照）に格納されるファイルであり、図１０に図示する一例のように、設定される数字（次数レジスタＤＮ[Ｉ]の値に相当）にスペクトルレベルを対応付けたデータテーブルを有する。したがって、図１０に図示する一例のスペクトル設定ファイルを用いた場合、上記想定例により次数レジスタＤＮ[１]の値が「１」であると、これに対応するスペクトルレベルとして「１００」が読み出されてレジスタＳＬにストアされる。
【００３９】
そして、ステップＳＤ７では、レジスタＳＬに格納された値を、ポインタＩで指定される倍音次数のスペクトルレベルＳＰ[Ｉ]としてＲＡＭ１２のスペクトルデータエリアＳＤＥ（図３参照）にストアする。こうして、入力フィールドＩＮに入力された数列の先頭桁に対応した１次倍音のスペクトルレベルＳＰ［１］が設定されると、ステップＳＤ８に進み、ポインタＩをインクリメントして歩進させる。
【００４０】
次いで、ステップＳＤ９では、歩進されたポインタＩが最後の次数、すなわち設定可能な最大次数を超えたかどうかを判断する。超えていなければ、判断結果は「ＮＯ」となり、ステップＳＤ１０に進み、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の最後の桁まで読み込み終えたか否かを判断する。最後まで読み込み終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＤ２に処理を戻す。
【００４１】
そして、想定した一例において、入力フィールドＩＮの２桁目の「０」を読み込むと、上述したステップＳＤ４の判断結果が「ＹＥＳ」になり、ステップＳＤ５に進み、ポインタＩで指定される２次倍音のスペクトルレベルＳＰ[２]を「０」としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアした後、ステップＳＤ８に進み、ポインタＩを歩進させる。
【００４２】
以後、同様にして、入力フィールドＩＮに入力された数列「１０２３」の３桁目の「２」を読み込んだ場合には、図１０に図示する一例のスペクトル設定ファイル中から「２」に対応して読み出されるスペクトルレベルの値「８０」が３次倍音のスペクトルレベルＳＰ[３]としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアされ、さらに４桁目を読み込むと、同ファイル中から「３」に対応して読み出されるスペクトルレベルの値「７０」が４次倍音のスペクトルレベルＳＰ[４]としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアされる。こうして、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の最後の桁まで読み込み終えると、上記ステップＳＤ１０の判断結果が「ＹＥＳ」になり、設定処理を終える。
【００４３】
このように、第２実施形態では、入力される数列の先頭桁を１次倍音（基本波）に、この先頭桁以降の各桁にそれぞれ２次倍音以降の整数次倍音を対応付け、倍音構造を指定する桁数分の数列を入力すると、予め数値とスペクトルレベルとが対応付けられたデータテーブルを参照して、入力された各桁の数値に各々対応する倍音次数のスペクトルレベルを読み出す為、倍音構造を形成する各次数のスペクトルレベルを一括して設定し得るようになる。
【００４４】
例えば、想定した一例のように、スペクトル設定画面ＳＳの入力フィールドＩＮに「１０２３」なる４桁の数列を入力した場合に、図１０に図示する一例のスペクトル設定ファイルを用いると、図１１に図示するように、１次倍音のスペクトルレベルが「１００」、２次倍音のスペクトルレベルが「０」、３次倍音のスペクトルレベルが「８０」、４次倍音のスペクトルレベルが「７０」となる倍音構造を一括して設定することができる。また、第２実施形態では、スペクトル設定ファイル中のデータテーブルに、数値とスペクトルレベルとを自由に対応付けることができる為、各様な倍音構造を一括設定できるようになるという効果も奏する。
【００４５】
[第３実施形態]  
次に、図１２〜図１３を参照して第３実施形態による設定処理の動作を説明する。第３実施形態の構成は、上述した第１実施形態と同一なので、その説明については省略する。図１２は、第３実施形態による設定処理の動作を示すフローチャートである。前述した第１実施形態と同様、スペクトル設定処理のステップＳＢ５（図５参照）を介して本処理が実行されると、ＣＰＵ１０は図１２に図示するステップＳＥ１に処理を進め、倍音次数を指定するポインタＩに初期値「１」をセットする。
【００４６】
続いて、ステップＳＥ２では、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の内、ポインタＩで指定される桁の数字（又は文字）を読み込んでレジスタＩＮにストアする。例えば、スペクトル設定画面ＳＳの入力フィールドＩＮに「１０２４ｎ」なる５桁の文字列が入力された場合を想定する。すると、この一例では、先頭（１番目）の桁の数字「１」が読み込まれてレジスタＩＮにストアされる。
【００４７】
次いで、ステップＳＥ３では、レジスタＩＮの値を、ポインタＩで指定される次数レジスタＤＮ[Ｉ]にストアし、続くステップＳＥ４では、次数レジスタＤＮ[Ｉ]の値が数字であるか否かを判断する。想定した一例において、先頭の桁の数字「１」を読み込んだ場合には、上記ステップＳＥ４の判断結果が「ＹＥＳ」となり、ステップＳＥ５に進み、次数レジスタＤＮ[Ｉ]の値が「０」であるか否かを判断する。想定した一例において、先頭の桁の数字「１」を読み込んだ場合には、次数レジスタＤＮ[１]の値が「１」となるので、上記ステップＳＥ５の判断結果は「ＮＯ」になり、ステップＳＥ６に進む。
【００４８】
ステップＳＥ６では、１００／ＤＮ［１］なる演算式で算出したスペクトルレベルをレジスタＳＬにストアする。想定した一例において、先頭の桁の数字「１」を読み込んだ場合には、スペクトルレベルの値が「１００」となる。次いで、ステップＳＥ７では、レジスタＳＬに格納された値を、ポインタＩで指定される倍音次数のスペクトルレベルＳＰ[Ｉ]としてＲＡＭ１２のスペクトルデータエリアＳＤＥ（図３参照）にストアする。したがって、想定した一例において、先頭の桁の数字「１」を読み込んだ場合には、１次倍音のスペクトルレベルＳＰ［１］が「１００」に設定される。
【００４９】
こうして、入力フィールドＩＮに入力された数列の先頭桁に対応した１次倍音のスペクトルレベルＳＰ［１］が設定されると、ステップＳＥ９に進み、ポインタＩをインクリメントして歩進させる。そして、ステップＳＥ１０では、歩進されたポインタＩが最後の次数、すなわち設定可能な最大次数を超えたかどうかを判断する。超えていなければ、判断結果は「ＮＯ」となり、ステップＳＥ１１に進み、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された数列の最後の桁まで読み込み終えたか否かを判断する。最後まで読み込み終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＥ２に処理を戻す。
【００５０】
そして、想定した一例において、スペクトル設定画面ＳＳの入力フィールドＩＮに入力された文字列の２桁目の「０」を読み込むと、上述したステップＳＥ５の判断結果が「ＹＥＳ」になり、ステップＳＥ８に進み、ポインタＩで指定される２次倍音のスペクトルレベルＳＰ[２]を「０」としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアした後、ステップＳＥ９に進み、ポインタＩを歩進させる。
【００５１】
以後、同様にして、入力フィールドＩＮに入力された文字列「１０２４ｎ」の３桁目を読み込んだ場合には、１００／２により得られる値「５０」が３次倍音のスペクトルレベルＳＰ[３]としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアされ、さらに４桁目を読み込むと、１００／４により得られる値「２５」が４次倍音のスペクトルレベルＳＰ[４]としてＲＡＭ１２のスペクトルデータエリアＳＤＥにストアされる。
【００５２】
そして、入力フィールドＩＮに入力された文字列「１０２４ｎ」の５桁目の「ｎ」を読み込んだ場合には、上述したステップＳＥ４の判断結果が「ＮＯ」となり、ステップＳＥ１２に進む。ステップＳＥ１２では、それまでに設定された１次倍音から４次倍音の各スペクトルレベルの内、１次以降の各倍音のレベルを設定可能な次数まで繰り返し設定する。例えば、１３次倍音まで設定可能な場合には、図１３に図示するように、２次倍音〜４次倍音の各スペクトルレベルを、それぞれ５次倍音〜７次倍音、８次倍音〜１０次倍音および１１次倍音〜１３次倍音に繰り返し割り当てて設定して本処理を終える。
【００５３】
このように、第３実施形態では、入力される文字列の先頭桁を１次倍音（基本波）に、この先頭桁以降から最終桁の１つ前までの各桁にそれぞれ２次倍音以降の整数次倍音を対応付け、倍音構造の基本パターンを指定する先頭桁から最終桁の１つ前までの桁数分の数字と、基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンの繰り返し設定を指示する最終桁の文字「ｎ」とからなる文字列を入力すると、入力された先頭桁から最終桁の１つ前までの各桁の数値に応じて、予め指定された演算式に基づきそれぞれ対応する倍音次数のスペクトルレベルを算出して基本パターンの倍音構造を設定する。
【００５４】
そして、最終桁に繰り返しパターンの繰り返し設定を指示する最終桁の文字「ｎ」が入力されていると、設定された基本パターンの倍音構造に続いて、基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンを繰り返し設定するので、所望の倍音構造を形成する各次数のスペクトルレベルを一括して設定し得るようになる。また、最終桁に文字「ｎ」を入力するだけで基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンが繰り返し設定される為、繰り返しパターンを有する倍音構造を設定する際の入力操作が容易になるという効果も得られる。
【００５５】
なお、上述した第３実施形態では、入力される文字列の最終桁に文字「ｎ」を付加した場合に、設定可能な倍音次数に達するまで基本パターンから１次倍音を除外した２次倍音以降の整数次倍音からなる繰り返しパターンを繰り返し設定するようにしたが、これに替えて、繰り返しパターンの繰り返し設定を指示する文字「ｎ」の次の桁に繰り返し回数を表す数字を入力可能とし、その数字で指定される回数分、繰り返しパターンの繰り返し設定を行うことも可能である。
【図面の簡単な説明】
【００５６】
【図１】本発明による第１実施形態の構成を示すブロック図である。
【図２】スペクトル設定画面ＳＳの一例を示す図である。
【図３】ＲＡＭ１２の構成を示すメモリマップである。
【図４】メインルーチンの動作を示すフローチャートである。
【図５】スペクトル設定処理の動作を示すフローチャートである。
【図６】設定処理の動作を示すフローチャートである。
【図７】スペクトル設定画面ＳＳにおける入力の一例を示す図である。
【図８】図７に図示した入力の一例に対応して設定されるスペクトルレベルを示すグラフである。
【図９】第２実施形態による設定処理の動作を示すフローチャートである。
【図１０】スペクトル設定ファイルの構成を示す図である。
【図１１】第２実施形態による設定処理の動作例を示すグラフである。
【図１２】第３実施形態による設定処理の動作を示すフローチャートである。
【図１３】第３実施形態による設定処理の動作例を示すグラフである。
【符号の説明】
【００５７】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  鍵盤
１４  入力部
１５  操作部
１６  表示部
１７  サウンドシステム
【図１】
0005104078.tif 000002
【図２】
0005104078.tif 000003
【図３】
0005104078.tif 000004
【図４】
0005104078.tif 000005
【図５】
0005104078.tif 000006
【図６】
0005104078.tif 000007
【図７】
0005104078.tif 000008
【図８】
0005104078.tif 000009
【図９】
0005104078.tif 000010
【図１０】
0005104078.tif 000011
【図１１】
0005104078.tif 000012
【図１２】
0005104078.tif 000013
【図１３】
0005104078.tif 000014