以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図1は、本実施形態による電子楽器のマウスピース部100の断面図である。
マウスピース部100内の奥に設置されるブレスセンサ101(呼気センサ)は、例えば圧力センサであり、吹奏者(演奏者)が吹き込み口103を咥えて吹き込んだ息の吹き込み圧力を検知する。
ボイスセンサ102(音声センサ)は、例えばマイクであり、上述の吹奏動作とともに吹奏者により発声される音声を検知する。
図2は、電子楽器の第1の実施形態のブロック図である。この電子楽器は、図1に示したブレスセンサ101およびボイスセンサ102、第1エンベロープ抽出手段201、第2エンベロープ抽出手段202、ブレス閾値検出手段203、音高指定複数キー204、音高決定手段205、発音指示手段206、Wave Generator(ウェーブ・ジェネレータ)207(音源)、ノーマル音波形データ208、グロウリング音波形データ209、合成比決定手段210、ゲイン決定手段211、ピッチ抽出手段212、乗算器213、215(音源)、加算器214(音源)、DAC(デジタルアナログコンバータ)/増幅器216、およびスピーカ217を備える。
第1エンベロープ抽出手段201は、ブレスセンサ101が検出した吹奏圧や呼気流量などのブレス出力値からそのエンベロープ特性であるブレス・エンベロープを抽出する。
第2エンベロープ抽出手段202は、ボイスセンサ102が検出したグロウリング音のエンベロープ特性であるボイス・エンベロープを抽出する。具体的には例えば、第2エンベロープ抽出手段202は、ボイスセンサ102が出力するアナログ出力音声信号値をデジ鳴る信号に変換し、その変換結果に対してピークレベルをひろってゆく処理(例えば低い周波数のローパスフィルタ処理)を実行し、その実行結果をボイス・エンベロープとして出力する。
ブレス閾値検出手段203は、ブレス・エンベロープが所定の閾値であるブレス閾値を超えたか否かを判定し、超えた場合に、発音指示手段206に対して発音指示を行うように通知する。
音高指定複数キー204は、吹奏者が管楽器の指使いにより音高指定を行うためのキースイッチ群である。
音高決定手段205は、音高指定複数キー204における管楽器の指使いによる操作状態に基づいて、第2の音高を決定する。
発音指示手段206は、ブレス閾値検出手段203から通知があった場合に、Wave Generator207に対して、音高決定手段205で決定された第2の音高による発音指示を出力する。
ボイスセンサ102が出力するアナログ出力信号値を所定の時間間隔でサンプリングすることによりデジタル信号に変換し、その変換結果からピッチ情報を抽出してそのピッチ情報に基づいて第2の音高を決定する。また、デジタル信号に変換する前に、アナログ出力信号からピッチ情報を抽出するようにしてもよい。
Wave Generator207は、それが内蔵するROMに記憶されたノーマル音波形データ208およびグロウリング音波形データ209をそれぞれ、発音指示手段206による発音指示に基づく第1の音高およびピッチ抽出手段212が決定した第2の音高でそれぞれ並列に読み出して出力する。ノーマル音波形データ208は、管楽器の通常演奏時の楽音をサンプリングした波形データである。グロウリング音波形データ209は、管楽器のグロウリング奏法による演奏時の楽音をサンプリングした波形データである。この波形データは、吹奏によるリードの振動を含まない音で、マウスピース部を介して音声だけを与えた結果、楽器筺体全体から発せられる音の波形データである。
合成比決定手段210は、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルに従って、管楽器の通常の楽音であるノーマル音(第1の楽音信号)に対する管楽器のグロウリング奏法によって発音される楽音であるグロウリング音(第2の楽音信号)の合成比率を決定し、乗算器213に対して乗算値を与える。
乗算器213は、Wave Generator207から出力されるグロウリング音に対して、合成比決定手段210から与えられた乗算値を乗算する。
加算器214は、Wave Generator207から出力されるノーマル音に乗算器213から出力されるグロウリング音を加算する。
ゲイン決定手段211は、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルに従って、加算器214から出力される楽音信号の最終ゲインを決定し、それに対応する乗算値を乗算器215に与える。
乗算器215は、加算器214の出力に対して、ゲイン決定手段211から与えられた乗算値を乗算する。
DAC/増幅器216は、乗算器215から出力される楽音信号を、デジタル信号からアナログ信号に変換した後、増幅する。
スピーカ217は、DAC/増幅器216から出力される増幅された楽音信号を放音する。
図3は、図1の合成比決定手段210およびゲイン決定手段211の構成例を示す図である。
合成比決定手段210は、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルを入力として、ボイス・レベルの入力値(横軸)が大きくなるほど0から1に向かって出力乗算値(縦軸)が増加する特性を有するグロウリング音用テーブル301を備える。合成比決定手段210は、ボイス・レベルの入力値に対して、グロウリング音用テーブル301を参照することにより、乗算器213に対する乗算値を決定する。
合成比決定手段210、乗算器213、および加算器214により、図1のマウスピース部100からボイスセンサ102への吹奏者によるグロウリング音入力が大きくなるほどグロウリング音の混合比率が高くなるようにノーマル音とグロウリング音が混合された楽音信号が得られることになる。
ゲイン決定手段211は、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルを入力として、ブレス・レベルの入力値(横軸)がブレス閾値検出手段203が決定するブレス閾値に達するまでは出力乗算値(縦軸)が0(ゼロ)で、ブレス・レベルの入力値がブレス閾値を超えると、ブレス・レベルの入力値が大きくなるほど0から1に向かって出力乗算値が増加する特性を有するゲイン・テーブル302を備える。ゲイン決定手段211は、ブレス・レベルの入力値に対して、ゲイン・テーブル302を参照することにより、乗算器215に対する乗算値を決定する。
ゲイン決定手段211および乗算器215により、図1のマウスピース部100からブレスセンサ101への吹奏者による息の吹き込み圧力が強くなるほど大きな音量となる楽音信号が得られる。
以上のようにして、図2および図3の構成を有する電子楽器の第1の実施形態によれば、吹奏者によるグロウリング音の発声動作に基づいて、ノーマル楽音とグロウリング音をシームレスに混合して発音することが可能となる。
図4は、電子楽器の第2の実施形態のブロック図である。図4の構成が図2に示した第1の実施形態の構成と異なる点は、合成比決定手段210が、破線で示されるように、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルのみではなく、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルも加味して、乗算器213における各乗算値を決定するようにした点である。また、ゲイン決定手段211も、破線で示されるように、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルのみではなく、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルも加味して、乗算器215における乗算値を決定するようにした点である。
図4に示される電子楽器の第2の実施形態の構成により、マウスピース部100からブレスセンサ101への吹奏者による息の吹き込み圧力とボイスセンサ102への吹奏者によるグロウリング音入力に基づいて、図2および図3に示される電子楽器の第1の実施形態の構成による効果に加えて、より複雑にノーマル音とグロウリング音が混合された楽音信号を得ることが可能となる。
図5は、電子楽器の第3の実施形態のブロック図である。図5の構成が図2に示した第1の実施形態の構成と異なる点は、Wave Generator207、合成比決定手段210、ゲイン決定手段211、乗算器213、215、および加算器214の代わりに、第1Wave Generator501(音源手段)、第2Wave Generator503(音源手段)、ボイス閾値検出手段503、第2発音指示手段504、第1ゲイン決定手段505(第1のゲイン決定手段)、第2ゲイン決定手段506(第2のゲイン決定手段)、乗算器507、508(音源手段)、および加算器509(音源手段)が設けられている点である。
第1Wave Generator501は、それが内蔵するROMに記憶されたノーマル音波形データ208を、発音指示手段206による発音指示に基づく第1の音高で読み出して出力する。
ボイス閾値検出手段503は、第2エンベロープ抽出手段202が抽出したボイス・エンベロープが所定の閾値であるボイス閾値を超えたか否かを判定し、超えた場合に、第2発音指示手段504に対して発音指示を行うように通知する。
第2発音指示手段504は、ボイス閾値検出手段503から通知があった場合に、第2Wave Generator503に対して、ピッチ抽出手段212で決定された第2の音高による発音指示を出力する。
第2Wave Generator503は、それが内蔵するROMに記憶されたグロウリング音波形データ209を、発音指示手段206による発音指示に基づく第2の音高で読み出して出力する。
第1ゲイン決定手段505は、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルに従って、第1Wave Generator501から出力されるノーマル音波形データ208のゲインを決定し、それに対応する乗算値を乗算器507に与える。
第2ゲイン決定手段506は、第2エンベロープ抽出手段202が抽出したブレス・エンベロープのブレス・レベルに従って、第2Wave Generator503から出力されるグロウリング音波形データ209のゲインを決定し、それに対応する乗算値を乗算器508に与える。
加算器509は、乗算器507から出力されるゲイン制御されたノーマル音波形データと乗算器508から出力されるゲイン制御されたグロウリング音波形データを加算する。加算器509から出力される楽音信号は、DAC/増幅器216に入力される。
図6は、図5の第1ゲイン決定手段505および第2ゲイン決定手段506の構成例を示す図である。
第1ゲイン決定手段505は、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルを入力として、ブレス・レベルの入力値(横軸)がブレス閾値検出手段203が決定するブレス閾値に達するまでは出力乗算値(縦軸)が0(ゼロ)で、ブレス・レベルの入力値がブレス閾値を超えると、ブレス・レベルの入力値が大きくなるほど0から1に向かって出力乗算値が増加する特性を有するノーマル音用ゲイン・テーブル601を備える。第1ゲイン決定手段505は、ブレス・レベルの入力値に対して、ノーマル音用ゲイン・テーブル601を参照することにより、乗算器507に対する乗算値を決定する。
第2ゲイン決定手段506は、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルを入力として、ボイス・レベルの入力値(横軸)がボイス閾値検出手段503が決定するボイス閾値に達するまでは出力乗算値(縦軸)が0(ゼロ)で、ボイス・レベルの入力値がボイス閾値を超えると、ボイス・レベルの入力値が大きくなるほど0から1に向かって出力乗算値が増加する特性を有するグロウリング音用ゲイン・テーブル602を備える。第2ゲイン決定手段506は、ボイス・レベルの入力値に対して、グロウリング音用ゲイン・テーブル602を参照することにより、乗算器508に対する乗算値を決定する。
第1ゲイン決定手段505および乗算器507により、図1のマウスピース部100からブレスセンサ101への吹奏者による息の吹き込み圧力が強くなるほどノーマル音の混合比が大きくなる楽音信号が得られる。また、第2ゲイン決定手段506および乗算器508により、図1のマウスピース部100からボイスセンサ102への吹奏者によるグロウリング音大きくなるほどグロウリング音の混合比が大きくなる楽音信号が得られる。
以上のようにして、図5および図6の構成を有する電子楽器の第3の実施形態によれば、ブレス閾値検出手段203、発音指示手段206、第1Wave Generator501、および乗算器507等からなるノーマル音の発音系統と、ボイス閾値検出手段503、第2発音指示手段504、第2Wave Generator503、および乗算器508等からなるグロウリング音の発音系統により、ノーマル音とグロウリング音を完全に独立して発音制御し、後段の加算器509で加算されるようにしたので、吹奏者はマウスピース部100において吹き込み圧力を加えずにグロウリング音のみを発声することにより、グロウリング音だけの楽音も放音可能となる。
図7は、電子楽器の第4の実施形態のブロック図である。図7の構成が図5に示した第3の実施形態の構成と異なる点は、第1ゲイン決定手段505が、破線で示されるように、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルのみではなく、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルも加味して、乗算器507における各乗算値を決定するようにした点である。また、第2ゲイン決定手段506も、破線で示されるように、第2エンベロープ抽出手段202が抽出したボイス・エンベロープのボイス・レベルのみではなく、第1エンベロープ抽出手段201が抽出したブレス・エンベロープのブレス・レベルも加味して、乗算器508における各乗算値を決定するようにした点である。
図7に示される電子楽器の第4の実施形態の構成により、マウスピース部100からブレスセンサ101への吹奏者による息の吹き込み圧力とボイスセンサ102への吹奏者によるグロウリング音入力に基づいて、図5および図6に示される電子楽器の第3の実施形態の構成による効果に加えて、より複雑にノーマル音とグロウリング音が混合された楽音信号を得ることが可能となる。
図8は、電子楽器の第5の実施形態のブロック図である。図8の構成が図5に示した第3の実施形態の構成と異なる点は、第1ゲイン決定手段505および第2ゲイン決定手段506がゲイン決定手段801で統合され、ボイス閾値検出手段503が省略されている点である。
図9は、図8のゲイン決定手段801の構成例を示す図である。
図9に示されるゲイン決定手段801においてまず、入力値演算手段901が、第2エンベロープ抽出手段202からのボイス・レベルVoiceおよび第1エンベロープ抽出手段201からのブレス・レベルBreathを入力として、関数演算Fgrowling(Voice,Breath)(図中では「Fg(Voice,Breath)」と省略されて表記もされている)を実行することにより、グロウリング音用の入力値Input1を演算する。また、入力値演算手段901が、第2エンベロープ抽出手段202からのボイス・レベルVoiceおよび第1エンベロープ抽出手段201からのブレス・レベルBreathを入力として、関数演算Fnormal(Voice,Breath)(図中では「Fn(Voice,Breath)」と省略されて表記もされている)を実行することにより、ノーマル音用の入力値Input2を演算する。
次に、ゲイン決定手段801は、入力値演算手段901が演算したグロウリング音用の入力値Input1を入力として、グロウリング音用ゲイン・テーブル902を参照することにより、0から1の間で変化する乗算値を出力し、乗算器508に与える。また、ゲイン決定手段801は、入力値演算手段901が演算したノーマル音用の入力値Input2を入力として、ノーマル音用ゲイン・テーブル903を参照することにより、0から1の間で変化する乗算値を出力し、乗算器507に与える。
以上のようにして、図8および図9の構成を有する電子楽器の第5の実施形態によれば、第2エンベロープ抽出手段202からのボイス・レベルと第1エンベロープ抽出手段201からのブレス・レベルに基づいて、複雑なゲイン制御が可能となる。
図10は、図2および図3に示した電子楽器の第1の実施形態の機能または図5および図6に示した電子楽器の第3の実施形態の機能を、ソフトウェア処理によって実現可能な電子楽器の第6の実施形態または第7の実施形態のハードウェア構成例を示すブロック図である。
図10に示されるハードウェア構成例は、CPU(セントラルプロセッシングユニット:中央演算処理装置)1001、ROM(リードオンリーメモリ)1002、RAM(ランダムアクセスメモリ)1003、図1、図2、または図5と同様のブレスセンサ101とその出力が接続されるADC(アナログデジタルコンバータ)1004、図1、図2、または図5と同様のボイスセンサ102とその出力が接続されるADC1005、図2または図5と同様の音高指定複数キー204とその出力が接続されるGPIO(ジェネラルパーパスインプットアウトプット)1006、Wave Generator1007、図2または図5と同様のDAC/増幅器216、図2または図5と同様のスピーカ217を備え、これらがバス1008によって相互に接続された構成を有する。同図に示される構成は、電子楽器を実現できるハードウェア構成の一例であり、そのようなハードウェア構成はこの構成に限定されるものではない。
CPU1001は、当該電子吹奏楽器全体の制御を行う。ROM1002は、発音制御プログラムを記憶する。RAM1003は、発音制御プログラムの実行時に、データを一時的に格納する。
ブレスセンサ101の出力は、図2または図5の第1エンベロープ抽出手段201と同様の機能を有するADC1004でアナログ信号からデジタル信号のブレス・エンベロープのブレス・レベルに変換されて、CPU101に読み込まれる。
ボイスセンサ102の出力は、図2または図5の第2エンベロープ抽出手段202と同様の機能を有するADC1005でアナログ信号からデジタル信号のブレス・エンベロープのボイス・レベルに変換されて、CPU101に読み込まれる。
音高指定複数キー204の各操作状態は、図2または図5の音高決定手段205と同様の機能を有するGPIO107を介してCPU101に読み込まれる。
Wave Generator1007は、第1の実施形態における図2のWave Generator207と乗算器213、加算器214、および乗算器215とからなる機能、または第3の実施形態における図5の第1Wave Generator501と乗算器507、第2Wave Generator503と乗算器508、および加算器214とからなる機能を実現する。
Wave Generator1007から出力された楽音信号は、CPU1001を介してDAC/増幅器216においてデジタル信号からアナログ信号に変換されて増幅された後、スピーカ217を介して放音される。
図11は、図10のハードウェア構成例を有する第6の実施形態のメイン処理の例を示すフローチャートである。この処理は、図10のCPU1001が、ROM1002に記憶された発音制御処理プログラムを実行する動作として実現される。この処理は、第1の実施形態における図2のブレス閾値検出手段203、発音指示手段206、合成比決定手段210、およびゲイン決定手段211等の機能を実現する。以下、随時図10の構成を参照するものとする。
まず、CPU1001は、初期化処理(Initialize)を実行する(ステップS1101)。図12は、ステップS1101の初期化処理の詳細例を示すフローチャートである。初期化処理では、RAM1003内の関連する各変数に初期値を格納する処理等が実行される。図12のステップS1201において、まず、ウェーブ・ジェネレータの初期化として、RAM1003内の変数GeneratorStatusに、ROM1002に記憶されている定数値GENERATOR_DEADが格納される。また、ブレス・エンベロープ値の初期化として、RAM1003内の変数Breathに0(ゼロ)が格納される。また、ボイス・エンベロープ値の初期化として、RAM1003内の変数Voiceに0(ゼロ)が格納される。また、ボイスピッチの初期化として、RAM503内の変数Vpitchに0(ゼロ)が格納される。また、合成比の初期化として、RAM1003内の変数GrowlingRatioにグロウリング音の初期ゲイン値0(ゼロ)が格納される。また、全体音量(ゲイン)の初期化として、RAM1003内の変数Gainに0(ゼロ)が格納される。そして、ブレス閾値の初期化として、RAM1003内の変数BreathThreshNoteOnにROM1002に記憶されている定数値BREATH_THRESHOLD_NOTEONが格納される。
図11の処理に戻って、CPU1001は、音高指定用複数キーの操作された運指パターンから第1の音高の情報(RAM1003内の変数NoteNumber)を得るための、発音制御プログラム上のサブルーチン処理KeyScan()を実行する(ステップS1102)。
次に、CPU1001は、ブレスセンサ101の出力を取得しブレス・エンベロープ値(RAM1003内の変数Breath)を更新するための、発音制御プログラム上のサブルーチン処理RenewBreath()を実行する(ステップS1103)。
次に、CPU1001は、ボイスセンサ102の出力を取得しボイス・エンベロープ値(RAM1003内の変数Voice)を更新するための、発音制御プログラム上のサブルーチン処理RenewVoice()を実行する(ステップS1104)。
次に、CPU1001は、ボイスセンサ102の出力から第2の音高の情報であるピッチ情報(RAM503内の変数Vpitch)を更新するための、発音制御プログラム上のサブルーチン処理RenewVoicePitch()を実行する(ステップS1105)。
そして、CPU1001は、楽音制御処理である、発音制御プログラム上のサブルーチン処理SoundControl()を実行する(ステップS1106)。
その後、CPU1001は、ステップS1102の処理に戻る。
図13は、図11のステップS1105の楽音制御処理(発音制御プログラム上のサブルーチン処理SoundControl())の詳細例を示すフローチャートである。
まず、CPU1001は、発音状態を示すRAM1003内の変数GeneratorStatusの値が未発音状態を示すROM1002内の定数値GENERATOR_DEADになっているか否かを判定する(ステップS1301)。
ステップS1301の判定がYES(未発音状態)ならば、CPU1001は、ステップS1302の処理に移行する。ここではCPU1001は、ブレス・レベルを示すRAM1003内の変数Breathの値が、第1の実施形態で説明したブレス閾値を示すROM1002内の定数値BreathThreshNoteOnを超えたか否かを判定する。この処理は、第1の実施形態における図2のブレス閾値検出手段203の機能を実現する。
次に、CPU1001は、第1の音高の情報を記憶するRAM1003内の変数NoteNumberとブレス・レベルを記憶するRAM1003内の変数Breathとボイス・レベルを記憶するRAM1003内の変数Voiceを入力として、発音処理である発音制御プログラム上のサブルーチン処理NoteOn(NoteNumber,Breath,Voice)を実行する(ステップS1303)。この処理の詳細については、図14のフローチャートの説明で後述する。
次に、CPU1001は、発音後処理として、発音状態か否かを示すRAM1003内の変数GeneratorStatusに、発音状態を示すROM1002内の定数値GENERATOR_ALIVEを格納する(ステップS1304)。その後、CPU1001は、図13のフローチャートの処理を終了し、図11のステップS1105の楽音制御処理を終了する。
ステップS1301の判定がNO(発音状態)ならば、CPU1001は、ステップS1305の処理に移行する。ここではCPU1001は、ブレス・レベルが格納されているRAM1003内の変数Breathの値に基づいて、ゲイン制御を行うための発音制御プログラム上のサブルーチン処理GainControl(Breath)を実行し、ブレスレベルに応じたゲインを決定する。この処理は、第1の実施形態における図2または図3のゲイン決定手段211の機能を実現する。この結果得られたゲイン値は、Wave Generator1007に与えられる。Wave Generator1007は、このゲイン値に基づいて、第1の実施形態における図2または図3の乗算器215に対応する機能を実行する。
次に、CPU1001は、ボイス・レベルが格納されているRAM1003内の変数Voiceの値に基づいて、合成比制御を行うための発音制御プログラム上のサブルーチン処理MixRateControl(Voice)を実行し、ボイスレベルに応じた合成比を決定する。決定された合成比は、RAM1003内の変数GrowlingRatioに格納される。この処理は、第1の実施形態における図2または図3の合成比決定手段210の機能を実現する。GrowlingRatioは、グロウリング音のノーマル音に対する合成比を示し、第1の実施形態における図2または図3の乗算器213に与えられる乗算値に対応する。この変数値は、Wave Generator1007に与えられる。Wave Generator1007は、これらの変数値に基づいて、第1の実施形態における図2または図3の乗算器213に対応する機能を実行する。
次に、CPU1001は、ピッチ情報が格納されているRAM1003内の変数Vpitchの値に基づいて、ピッチ制御を行うための発音制御プログラム上のサブルーチン処理VoicePitchControl(Vpitch)を実行し、第1の実施形態で説明したグロウリング音に関する第2の音高を決定する(ステップS1307)。この処理は、第1の実施形態における図2のピッチ抽出手段212の機能を実現する。
その後、CPU1001は、ブレス・レベルを示すRAM1003内の変数Breathの値が、第1の実施形態で説明したブレス閾値を示すROM1002内の定数値BreathThreshNoteOn以下となったか否かを判定する(ステップS1308)。ステップS1308の判定がYESならば、CPU1001は、発音後処理として、発音状態か否かを示すRAM1003内の変数GeneratorStatusに、未発音状態を示すROM1002内の定数値GENERATOR_DEADを格納する(ステップS1309)。この処理は、第1の実施形態における図2のブレス閾値検出手段203の機能を実現する。
ステップS1308の判定がNOの場合またはステップS1309の処理の後、CPU1001は、図13のフローチャートの処理を終了し、図11のステップS1105の楽音制御処理を終了する。
図14は、図13のステップS1303の発音処理(発音制御プログラム上のサブルーチン処理NoteOn(NoteNumber,Breath,Voice)の詳細例を示すフローチャートである。この処理は、第1の実施形態における図2の発音指示手段206、合成比決定手段210、およびゲイン決定手段211の各機能を実現する。
まず、CPU1001は、第1の実施形態で説明した(図2の音高決定手段205の出力に対応する)第1の音高を記憶するRAM1003内の変数NoteNumberを入力として、ジェネレータの初期化のための発音制御プログラム上のサブルーチン処理InitilizeNormalTone(NoteNumber)を実行する(ステップS1401)。ここではCPU1001は、ノーマル音用の前処理を実行する。より具体的には、CPU1001は、Wave Generator1007に対して、ノーマル音波形データ208(図2参照)のスタートアドレスを設定し、また変数NoteNumberが示す音高に対応するノーマル音波形データ208の読出し速度を設定する。この処理は、第1の実施形態における図2の発音指示手段206の機能の一部を実現する。
次に、CPU1001は、第1の実施形態で説明した(図2のピッチ抽出手段212の出力に対応する)第2の音高を記憶するRAM1003内の変数Vpitchを入力として、ジェネレータの初期化のための発音制御プログラム上のサブルーチン処理InitilizeGrowlingTone(Vpitch)を実行する(ステップS1402)。ここではCPU1001は、グロウリング音用の前処理を実行する。より具体的には、CPU1001は、Wave Generator1007に対して、グロウリング音波形データ209(図2参照)のスタートアドレスを設定し、また変数Vpitchが示す音高に対応するグロウリング音波形データ209の読出し速度を設定する。この処理は、第1の実施形態における図2のピッチ抽出手段212の機能の一部を実現する。
次に、CPU1001は、合成比制御のための発音制御プログラム上のサブルーチン処理MixRateControl(Voice)を実行する(ステップS1403)。この処理は、発音状態で実行される図13のステップS1306の処理と同様であり、第1の実施形態における図2または図3の合成比決定手段210の機能を実現する。決定された合成比は、RAM1003内の変数GrowlingRatioに格納され、Wave Generator1007に与えられる。Wave Generator1007は、この変数値に基づいて、第1の実施形態における図2または図3の乗算器213に対応する機能を実行する。
次に、CPU1001は、ゲイン制御を行うための発音制御プログラム上のサブルーチン処理GainControl(Breath)を実行する(ステップS1404)。この処理は、発音状態で実行される図13のステップS1305の処理と同様であり、第1の実施形態における図2または図3のゲイン決定手段211の機能を実現する。決定されたゲイン値は、Wave Generator1007に与えられる。Wave Generator1007は、このゲイン値に基づいて、第1の実施形態における図2または図3の乗算器215に対応する機能を実行する。
最後に、CPU1001は、ジェネレータ・シンクロ・スタートのための発音制御プログラム上のサブルーチン処理SyncStartGenerator()を実行する(ステップS1405)。この処理では、CPU1001は、Wave Generator1007に対してノーマル音波形データ208とグロウリング音波形データ209を同期(シンクロ)させて出力処理させるための発音開始指示を出す。
以上説明した第6の実施形態の動作により、第1の実施形態における図2または図3の電子楽器の機能が、ソフトウェア処理として実現される。
次に、図10のハードウェア構成例を有する第7の実施形態について説明する。第7の実施形態では、第3の実施形態における図5または図6の電子楽器の機能が、ソフトウェア処理として実現される。まず、第7の実施形態のメイン処理の例を示すフローチャートは、図10で示した第6の実施形態のフローチャートと同様である。この処理は、第6の実施形態の場合と同様に、図10のCPU1001が、ROM1002に記憶された発音制御処理プログラムを実行する動作として実現される。このメイン処理は、第3の実施形態における図5のブレス閾値検出手段203、発音指示手段206、ボイス閾値検出手段503、第2発音指示手段504、第1ゲイン決定手段505、および第2ゲイン決定手段506等の機能を実現する。以下、随時図10の構成を参照するものとする。
図15は、第7の実施形態における図11のステップS1101の初期化処理(Initialize)の詳細例を示すフローチャートである。ここでは、第6の実施形態における図12で示した詳細例のフローチャートの場合と同様に、RAM1003内の関連する各変数に初期値を格納する処理等が実行される。まず、第3の実施形態における図5に示されるように、Wave Generatorは、第1Wave Generator501と第2Wave Generator503があり、この2つの機能を図10のWave Generator507が担っている。そこで、まず、ウェーブ・ジェネレータの初期化として、図5の第1Wave Generator501に対応するRAM1003内の変数NormalGeneratorStatusに、ROM1002に記憶されている定数値GENERATOR_DEADが格納される。また、図5の第2Wave Generator503に対応するRAM1003の変数GrowlingGeneratorStatusに、ROM1002に記憶されている定数値GENERATOR_DEADが格納される。ブレス・エンベロープ値の初期化、ボイス・エンベロープ値の初期化、およびボイスピッチの初期化は、第6の実施形態における図12の場合と同様であり、RAM1003内の変数Breath、変数Voice、および変数Vpitchにそれぞれ0(ゼロ)が格納される。また、合成比の初期化として、第3の実施形態における図5の第1ゲイン決定手段505および第2ゲイン決定手段506のそれぞれに対応するRAM1003内の変数NormalRatioおよび変数GrowlingRatioに、それぞれ初期ゲイン値0(ゼロ)が格納される。なお、第1の実施形態における図2のゲイン決定手段801に相当する全体音量(ゲイン)の調整機能は、第3の実施形態における図5の第1ゲイン決定手段505および第2ゲイン決定手段506が兼ねるため、全体音量(図12にあったゲイン変数Gain)の初期化は無い。次に、ブレス閾値の初期化、第6の実施形態における図12の場合と同様であり、RAM1003内の変数BreathThreshNoteOnにROM1002に記憶されている定数値BREATH_THRESHOLD_NOTEONが格納される。最後に、ボイス閾値の初期化として、RAM1003内の変数VoiceThreshGrowlingOnにROM1002に記憶されている定数値VOICE_THRESHOLD_GROWLINGONが格納される。
第7の実施形態において、以上で示される図11のステップS1101の処理以降の、ステップS1102からステップS1105までの各処理は、第6の実施形態の場合と同様である。
図16は、第7の実施形態における図11のステップS1105の楽音制御処理(発音制御プログラム上のサブルーチン処理SoundControl())の詳細例を示すフローチャートである。図16に示されるように、第7の実施形態における楽音制御処理では、第3の実施形態における図5のブレス閾値検出手段203、発音指示手段206、第1Wave Generator501、および乗算器507等からなるノーマル音の発音系統と、ボイス閾値検出手段503、第2発音指示手段504、第2Wave Generator503、および乗算器508等からなるグロウリング音の発音系統により、ノーマル音とグロウリング音が独立して発音制御される。これに対応して、図16では、ノーマル音の制御処理に対応する発音制御プログラム上のサブルーチン処理NormalControl()(ステップS1601)と、グロウリング音の制御処理に対応する発音制御プログラム上のサブルーチン処理GrowlingControl()(ステップS1602)が個別に実行される。
図17は、図16のステップS1601のノーマル音の制御処理(発音制御プログラム上のサブルーチン処理NormalControl())の詳細例を示すフローチャートである。
まず、CPU1001は、ノーマル音の発音状態を示すRAM1003内の変数NormalGeneratorStatusの値が未発音状態を示すROM1002内の定数値GENERATOR_DEADになっているか否かを判定する(ステップS1701)。
ステップS1701の判定がYES(未発音状態)ならば、CPU1001は、ステップS1702の処理に移行する。ここではCPU1001は、ブレス・レベルを示すRAM1003内の変数Breathの値が、第3の実施形態で説明したブレス閾値を示すROM1002内の定数値BreathThreshNoteOnを超えたか否かを判定する。この処理は、第3の実施形態における図5のブレス閾値検出手段203の機能を実現する。
次に、CPU1001は、第1の音高の情報を記憶するRAM1003内の変数NoteNumberとブレス・レベルを記憶するRAM1003内の変数Breathを入力として、ノーマル音の発音処理である発音制御プログラム上のサブルーチン処理NoteOn(NoteNumber,Breath)を実行する(ステップS1703)。この処理の詳細については、図18のフローチャートの説明で後述する。
次に、CPU1001は、ノーマル音の発音後処理として、ノーマル音が発音状態か否かを示すRAM1003内の変数NormalGeneratorStatusに、発音状態を示すROM1002内の定数値GENERATOR_ALIVEを格納する(ステップS1704)。その後、CPU1001は、図17のフローチャートの処理を終了し、図16のステップS1602のノーマル音の制御処理を終了する。
ステップS1701の判定がNO(発音状態)ならば、CPU1001は、ステップS1705の処理に移行する。ここではCPU1001は、ブレス・レベルが格納されているRAM1003内の変数Breathの値に基づいて、ノーマル音のゲイン制御を行うための発音制御プログラム上のサブルーチン処理NormalGainControl(Breath)を実行し、ブレスレベルに応じたノーマル音のゲイン値NormalRaioを決定する。この処理は、第3の実施形態における図5または図6の第1ゲイン決定手段505の機能を実現する。NormalRatioは、ノーマル音のグロウリング音に対する合成比を示し、第3の実施形態における図5または図6の乗算器507に与えられる乗算値に対応する。この結果得られたゲイン値NormalRaioは、Wave Generator1007に与えられる。Wave Generator1007は、このゲイン値NormalRaioに基づいて、第3の実施形態における図5または図6の乗算器507に対応する機能を実行する。
その後、CPU1001は、ブレス・レベルを示すRAM1003内の変数Breathの値が、第3の実施形態で説明したブレス閾値を示すROM1002内の定数値BreathThreshNoteOn以下となったか否かを判定する(ステップS1706)。ステップS1706の判定がYESならば、CPU1001は、ノーマル音の発音後処理として、ノーマル音が発音状態か否かを示すRAM1003内の変数NormalGeneratorStatusに、未発音状態を示すROM1002内の定数値GENERATOR_DEADを格納する(ステップS1707)。この処理は、第3の実施形態における図5のブレス閾値検出手段203の機能を実現する。
ステップS1706の判定がNOの場合またはステップS1707の処理の後、CPU1001は、図17のフローチャートの処理を終了し、図16のステップS1601のノーマル音の制御処理を終了する。
図18は、図17のステップS1703のノーマル音の発音処理(発音制御プログラム上のサブルーチン処理NoteOn(NoteNumber,Breath)の詳細例を示すフローチャートである。この処理は、第3の実施形態における図5の発音指示手段206および第1ゲイン決定手段505の各機能を実現する。
まず、CPU1001は、第3の実施形態で説明した(図5の音高決定手段205の出力に対応する)第1の音高を記憶するRAM1003内の変数NoteNumberを入力として、ジェネレータの初期化のための発音制御プログラム上のサブルーチン処理InitilizeNormalTone(NoteNumber)を実行する(ステップS1801)。ここではCPU1001は、ノーマル音用の前処理を実行する。より具体的には、CPU1001は、Wave Generator1007に対して、ノーマル音波形データ208(図2の第1Wave Generator501を参照)のスタートアドレスを設定し、また変数NoteNumberが示す音高に対応するノーマル音波形データ208の読出し速度を設定する。この処理は、第3の実施形態における図5の発音指示手段206の機能の一部を実現する。
次に、CPU1001は、ノーマル音のゲイン制御を行うための発音制御プログラム上のサブルーチン処理NormalGainControl(Breath)を実行する(ステップS1802)。この処理は、ノーマル音の発音状態で実行される図17のステップS1705の処理と同様であり、第3の実施形態における図5または図6の第1ゲイン決定手段505の機能を実現する。決定されたゲイン値NormalRaioは、Wave Generator1007に与えられる。Wave Generator1007は、このゲイン値NormalRaioに基づいて、第3の実施形態における図5または図6の乗算器507に対応する機能を実行する。
最後に、CPU1001は、ノーマル音のジェネレータ・スタートのための発音制御プログラム上のサブルーチン処理StartNormalGenerator()を実行する(ステップS1803)。この処理では、CPU1001は、Wave Generator1007に対してノーマル音波形データ208を出力処理させるための発音開始指示を出す。
図19は、図16のステップS1602のグロウリング音の制御処理(発音制御プログラム上のサブルーチン処理GrowlingControl())の詳細例を示すフローチャートである。
まず、CPU1001は、グロウリング音の発音状態を示すRAM1003内の変数GrowlingGeneratorStatusの値が未発音状態を示すROM1002内の定数値GENERATOR_DEADになっているか否かを判定する(ステップS1901)。
ステップS1901の判定がYES(未発音状態)ならば、CPU1001は、ステップS1902の処理に移行する。ここではCPU1001は、ボイス・レベルを示すRAM1003内の変数Voiceの値が、第3の実施形態で説明したボイス閾値を示すROM1002内の定数値VoiceThreshGrowlingOnを超えたか否かを判定する。この処理は、第3の実施形態における図5のボイス閾値検出手段503の機能を実現する。
次に、CPU1001は、第2の音高の情報を記憶するRAM1003内の変数Vpitchとボイス・レベルを記憶するRAM1003内の変数Voiceを入力として、グロウリング音の発音処理である発音制御プログラム上のサブルーチン処理GrowlingOn(Vpitch,Voice)を実行する(ステップS1903)。この処理の詳細については、図20のフローチャートの説明で後述する。
次に、CPU1001は、グロウリング音の発音後処理として、グロウリング音が発音状態か否かを示すRAM1003内の変数GrowlingGeneratorStatusに、発音状態を示すROM1002内の定数値GENERATOR_ALIVEを格納する(ステップS1904)。その後、CPU1001は、図19のフローチャートの処理を終了し、図16のステップS1602のグロウリング音の制御処理を終了する。
ステップS1901の判定がNO(発音状態)ならば、CPU1001は、ステップS1905の処理に移行する。ここではCPU1001は、ボイス・レベルが格納されているRAM1003内の変数Voiceの値に基づいて、グロウリング音のゲイン制御を行うための発音制御プログラム上のサブルーチン処理GrowlingGainControl(Voice)を実行し、ブレスレベルに応じたグロウリング音のゲインGrowlingRaioを決定する。この処理は、第3の実施形態における図5または図6の第2ゲイン決定手段506の機能を実現する。GrowlingRatioは、グロウリング音のノーマル音に対する合成比を示し、第3の実施形態における図5または図6の乗算器508に与えられる乗算値に対応する。この結果得られたゲイン値GrowlingRatioは、Wave Generator1007に与えられる。Wave Generator1007は、このゲイン値GrowlingRatioに基づいて、第3の実施形態における図5または図6の乗算器508に対応する機能を実行する。
次に、CPU1001は、ピッチ情報が格納されているRAM1003内の変数Vpitchの値に基づいて、ピッチ制御を行うための発音制御プログラム上のサブルーチン処理VoicePitchControl(Vpitch)を実行し、第3の実施形態で説明したグロウリング音に関する第2の音高を決定する(ステップS1906)。この処理は、第3の実施形態における図3のピッチ抽出手段212の機能を実現する。
その後、CPU1001は、ボイス・レベルを示すRAM1003内の変数Voiceの値が、第3の実施形態で説明したボイス閾値を示すROM1002内の定数値VoiceThreshGrowlingOn以下となったか否かを判定する(ステップS1907)。ステップS1907の判定がYESならば、CPU1001は、グロウリング音の発音後処理として、グロウリング音が発音状態か否かを示すRAM1003内の変数GrowlingGeneratorStatusに、未発音状態を示すROM1002内の定数値GENERATOR_DEADを格納する(ステップS1908)。この処理は、第3の実施形態における図5のボイス閾値検出手段503の機能を実現する。
ステップS1907の判定がNOの場合またはステップS1908の処理の後、CPU1001は、図19のフローチャートの処理を終了し、図16のステップS1602のグロウリング音の制御処理を終了する。
図20は、図19のステップS1903のグロウリング音の発音処理(発音制御プログラム上のサブルーチン処理GrowlingOn(Vpitch,Voice)の詳細例を示すフローチャートである。この処理は、第3の実施形態における図5の第2発音指示手段504および第2ゲイン決定手段506の各機能を実現する。
まず、CPU1001は、第3の実施形態で説明した(図5のピッチ抽出手段212の出力に対応する)第2の音高を記憶するRAM1003内の変数Vpitchを入力として、ジェネレータの初期化のための発音制御プログラム上のサブルーチン処理InitilizeGrowling(Vpitch)を実行する(ステップS2001)。ここではCPU1001は、グロウリング音用の前処理を実行する。より具体的には、CPU1001は、Wave Generator1007に対して、グロウリング音波形データ209(図5の第2Wave Generator503を参照)のスタートアドレスを設定し、また変数Vpitchが示す音高に対応するグロウリング音波形データ209の読出し速度を設定する。この処理は、第3の実施形態における図5の第2発音指示手段504の機能の一部を実現する。
次に、CPU1001は、グロウリング音のゲイン制御を行うための発音制御プログラム上のサブルーチン処理GrowlingGainControl(Voice)を実行する(ステップS2002)。この処理は、グロウリング音の発音状態で実行される図19のステップS1905の処理と同様であり、第3の実施形態における図5または図6の第2ゲイン決定手段506の機能を実現する。決定されたゲイン値GrowlingRaioは、Wave Generator1007に与えられる。Wave Generator1007は、このゲイン値GrowlingRaioに基づいて、第3の実施形態における図5または図6の乗算器508に対応する機能を実行する。
最後に、CPU1001は、グロウリング音のジェネレータ・スタートのための発音制御プログラム上のサブルーチン処理StartNormalGenerator()を実行する(ステップS2003)。この処理では、CPU1001は、Wave Generator1007に対してグロウリング音波形データ209を出力処理させるための発音開始指示を出す。
以上説明した第7の実施形態の動作により、第3の実施形態における図5または図6の電子楽器の機能が、ソフトウェア処理として実現される。
以上説明したようにして、第1〜第7の実施形態により、グローイング音声のピッチ(周波数)に応じた周波数で合成用のグロウリング音を発音させノーマル楽音と合成することで、画一的なビートのグロウル楽音ではなく奏者が細かなビートのコントロールができるようになり、さらに演奏表現力を高めることが可能となる。
そして、上述の実施形態では、ブレスセンサ101により吹奏による呼気の圧力を検知しているが、これに限るものではない。本実施形態のブレスセンサ101を流量センサに置き換えて、吹奏による呼気の流量を検知してもよい。
さらに、このブレスセンサ101および流量センサ両方を用いる構成にしてもよい。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
発声される音声を検知する音声センサと、
前記発声に伴う呼気の圧力及び当該呼気の流量の少なくとも一方を検知する呼気センサと、
音高指定キーの操作状態に基づいて第1の音高を決定する第1の音高決定手段と、
前記音声センサにより検知された音声に基づいて第2の音高を決定する第2の音高決定手段と、
前記第1の音高の楽音を発生させる第1の楽音信号を生成するとともに、前記第2の音高の楽音を発生させる第2の楽音信号を生成する音源手段と、
前記呼気センサにより検知された呼気の圧力及び流量の少なくとも一方に基づいてゲインを決定するゲイン決定手段と、
前記音声センサにより検知された音声に基づいて、前記第1の楽音信号と第2の楽音信号とを合成する場合の当該楽音信号夫々の割合を決定する割合決定手段と、
前記決定された割合で前記第1の楽音信号及び第2の楽音信号を合成し、当該合成された楽音信号を前記決定されたゲインに対応する大きさで出力する出力手段と、
を備えることを特徴とする電子楽器。
(付記2)
前記呼気センサにより検知された呼気の圧力及び流量の少なくとも一方からブレス・エンベロープを抽出する第1エンベロープ抽出手段と、前記音声センサにより検知された音声からボイス・エンベロープを抽出する第2エンベロープ抽出手段とをさらに備え、
前記割合決定手段は、前記ボイス・エンベロープ及び前記ブレス・エンベロープの少なくとも一方に基づいて、前記割合を決定し、
前記ゲイン決定手段は、前記ブレス・エンベロープ及び前記ボイス・エンベロープの少なくとも一方に基づいて、前記ゲインを決定する、
ことを特徴とする付記1に記載の電子楽器。
(付記3)
前記第1の楽音信号は管楽器の通常演奏時の楽音信号であり、前記第2の楽音信号は管楽器のグロウリング奏法による演奏時の楽音信号であり、
前記割合決定手段は、前記音声センサにより検知された音声が大きくなるほど前記第2の楽音信号の割合が大きくなるようにする、
ことを特徴とする付記1または2のいずれかに記載の電子楽器。
(付記4)
発声される音声を検知する音声センサと、
前記発声に伴う呼気の圧力及び流量の少なくとも一方を検知する呼気センサと、
音高指定キーの操作状態に基づいて第1の音高を決定する第1の音高決定手段と、
前記音声センサにより検知された音声に基づいて第2の音高を決定する第2の音高決定手段と、
前記呼気センサにより検知された呼気の圧力及び流量の少なくとも一方に基づいて第1のゲインを決定する第1のゲイン決定手段と、
前記音声センサにより検知された音声に基づいて第2のゲインを決定する第2のゲイン決定手段と、
前記第1のゲインに対応する大きさで且つ前記第1の音高の楽音を発生させる第1の楽音信号を生成するとともに、前記第2のゲインに対応する大きさで且つ前記第2の音高の楽音を発生させる第2の楽音信号を生成し、当該生成した第1の楽音信号および第2の楽音信号を合成して出力する音源手段と、
を備えることを特徴とする電子楽器。
(付記5)
前記呼気センサにより検知された呼気の圧力及び流量の少なくとも一方からブレス・エンベロープを抽出する第1エンベロープ抽出手段と、前記音声センサにより検知された音声からボイス・エンベロープを抽出する第2エンベロープ抽出手段とをさらに備え、
前記第1のゲイン決定手段は、前記ブレス・エンベロープに基づいて、前記第1のゲインを決定し、
前記第2のゲイン決定手段は、前記ブレス・エンベロープに基づいて、前記第2のゲインを決定する、
ことを特徴とする付記4に記載の電子楽器。
(付記6)
前記第1の楽音信号は管楽器の通常演奏時の楽音信号であり、前記第2の楽音信号は管楽器のグロウリング奏法による演奏時の楽音信号であり、
前記第1のゲイン決定手段は、前記呼気センサにより検知された呼気の圧力及び流量の少なくとも一方の出力が大きくなるほど前記第1のゲインが大きくなるように、当該第1のゲインを決定し、
前記第2のゲイン決定手段は、前記音声センサにより検知された音声の出力が大きくなるほど前記第2のゲインが大きくなるように、当該第2のゲインを決定する、
ことを特徴とする付記4または5のいずれかに記載の電子楽器。
(付記7)
発声される音声を検知する音声センサと、前記発声に伴う呼気の圧力及び当該呼気の流量の少なくとも一方を検知する呼気センサと、音高指定キーとを有する電子楽器の発音制御方法であって、前記電子楽器は、
前記音高指定キーの操作状態に基づいて第1の音高を決定し、
前記検知された音声に基づいて第2の音高を決定し、
前記第1の音高の楽音を発生させる第1の楽音信号を生成するとともに、前記第2の音高の楽音を発生させる第2の楽音信号を生成し、
前記検知された呼気の圧力及び流量の少なくとも一方に基づいてゲインを決定し、
前記検知された音声に基づいて、前記第1の楽音信号と第2の楽音信号とを合成する場合の当該楽音信号夫々の割合を決定し、
前記決定された割合で前記第1の楽音信号及び第2の楽音信号を合成し、当該合成された楽音信号を前記決定されたゲインに対応する大きさで出力する、発音制御方法。
(付記8)
発声される音声を検知する音声センサと、前記発声に伴う呼気の圧力及び当該呼気の流量の少なくとも一方を検知する呼気センサと、音高指定キーとを有する電子楽器の発音制御方法であって、前記電子楽器は、
前記音高指定キーの操作状態に基づいて第1の音高を決定し、
前記検知された音声に基づいて第2の音高を決定し、
前記検知された呼気の圧力及び流量の少なくとも一方に基づいて第1のゲインを決定し、
前記検知された音声に基づいて第2のゲインを決定し、
前記第1のゲインに対応する大きさで且つ前記第1の音高の楽音を発生させる第1の楽音信号を生成するとともに、前記第2のゲインに対応する大きさで且つ前記第2の音高の楽音を発生させる第2の楽音信号を生成し、当該生成した第1の楽音信号および第2の楽音信号を合成して出力する、発音制御方法。
(付記9)
発声される音声を検知する音声センサと、前記発声に伴う呼気の圧力及び当該呼気の流量の少なくとも一方を検知する呼気センサと、音高指定キーとを有する電子楽器として用いられるコンピュータに、
前記音高指定キーの操作状態に基づいて第1の音高を決定するステップと、
前記検知された音声に基づいて第2の音高を決定するステップと、
前記第1の音高の楽音を発生させる第1の楽音信号を生成するとともに、前記第2の音高の楽音を発生させる第2の楽音信号を生成するステップと、
前記検知された呼気の圧力及び流量の少なくとも一方に基づいてゲインを決定するステップと、
前記検知された音声に基づいて、前記第1の楽音信号と第2の楽音信号とを合成する場合の当該楽音信号夫々の割合を決定するステップと、
前記決定された割合で前記第1の楽音信号及び第2の楽音信号を合成し、当該合成された楽音信号を前記決定されたゲインに対応する大きさで出力するステップと、
を実行させるプログラム。
(付記10)
発声される音声を検知する音声センサと、前記発声に伴う呼気の圧力及び当該呼気の流量の少なくとも一方を検知する呼気センサと、音高指定キーとを有する電子楽器として用いられるコンピュータに、
前記音高指定キーの操作状態に基づいて第1の音高を決定するステップと、
前記検知された音声に基づいて第2の音高を決定するステップと、
前記検知された呼気の圧力及び流量の少なくとも一方に基づいて第1のゲインを決定するステップと、
前記検知された音声に基づいて第2のゲインを決定するステップと、
前記第1のゲインに対応する大きさで且つ前記第1の音高の楽音を発生させる第1の楽音信号を生成するとともに、前記第2のゲインに対応する大きさで且つ前記第2の音高の楽音を発生させる第2の楽音信号を生成し、当該生成した第1の楽音信号および第2の楽音信号を合成して出力するするステップと、
を実行させるプログラム。