(57)【特許請求の範囲】
【請求項１】
所定の回転軸周りに回転して音の放射方向を回転させるロータを備えたスピーカから放音される電気オルガンの楽音を表す楽音信号を発生する楽音信号発生装置であって、
前記ロータが前記回転軸周りに所定の角度だけ回転する間に前記スピーカから発せられた楽音の音響波形を表す波形データであって、複数のサンプル値から構成された波形データを記憶した記憶手段と、
前記記憶手段から前記サンプル値を順次読み出して、前記読み出したサンプル値に基づいて楽音信号を発生する再生手段であって、前記複数のサンプル値によって表された楽音の音高及びフォルマントを変更することなく前記楽音の再生速度を変更する再生速度変更手段を有する再生手段と、を備えた、楽音信号発生装置。
【請求項２】
請求項１に記載の楽音信号発生装置において、
前記楽音の再生速度を設定するための操作子を備え、
前記再生速度変更手段は、前記操作子の操作状態に応じて、前記楽音の再生速度を決定する、楽音信号発生装置。
【請求項３】
請求項１又は２に記載の楽音信号発生装置において、
前記記憶手段は、複数の前記波形データを備え、
前記再生手段は、複数の前記波形データをそれぞれ構成するサンプル値のうち、互いに対応するサンプル値を読み出す、位相同期手段を備える、楽音信号発生装置。
【請求項４】
請求項１乃至３のうちのいずれか１つに記載の楽音信号発生装置において、
前記再生速度変更手段は、ピッチ同期重畳加算法を用いて、前記楽音の再生速度を変更する、楽音信号発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音の波形を表す波形データを記憶した波形メモリから前記波形データを構成するサンプル値を順次読み出すことにより楽音信号を発生する楽音信号発生装置に関する。とくに、従来のロータリースピーカから発せられた電気オルガンの音を模擬した楽音信号を発生する楽音信号発生装置に関する。
【背景技術】
【０００２】
従来、複数のトーンホイールを備えた電気オルガンは知られている。トーンホイールは、歯車状の部材である。すなわち、円板状部材の周面に複数の凹凸が形成されている。前記凹凸の数が音高に対応している。電気オルガンは、各トーンホイールの周面に対向するように配置された電磁ピックアップを備える。前記複数のトーンホイールがモータによって回転させられると、その回転により電磁ピックアップ周辺の磁界が周期的に変化する。その磁界の変化に応じた電気信号が電磁ピックアップから出力される。この電気信号がアンプで増幅されて出力端子から出力される。
【０００３】
この電気オルガンには９本のドローバー（複数の接点を備えたスライドスイッチ）が搭載され、これらのドローバーには、それぞれ、基音（８’）、２倍音（４’）、３倍音（２−２／３’）、４倍音（２’）、５倍音（１＋２／３’）、６倍音（１＋１／３’）、８倍音（１’）、基音よりも１オクターブ低い音（１６’）、１６’の３倍音（５＋１／３’）が割り当てられている。なお、「’」は「フィート」（パイプオルガンのパイプの長さを表す単位）を意味している。この電気オルガンの１つの鍵を押鍵すると、その鍵に対応する基音と、その他の８種の倍音が同時に出力される。上記のドローバーは、基音及び倍音の音量をそれぞれ調整する操作子である。言い換えれば、ドローバーは音色を設定するための操作子である。
【０００４】
また、従来、電気オルガンの出力信号を再生する際に用いられるロータリースピーカは知られている。ロータリースピーカは、上向き又は下向きに固定されたスピーカユニットと、前記スピーカユニットの上方又は下方にて上下方向に延びる回転軸回り回転し、音の放射方向を回転させるロータ（ホーン）を備える。このように音の放射方向を回転させることにより、再生される音に聴感上の効果（コーラス、トレモロなど）が付与される。ロータリースピーカは、ロータの回転速度を選択可能に構成されている。回転速度選択スイッチを「ＦＡＳＴ」に設定すると、ロータは約４００ｒｐｍで回転する。一方、回転速度選択スイッチを「ＳＬＯＷ」に設定すると、ロータは約５０ｒｐｍで回転する。また、回転速度を切り替えた際、ロータの回転速度が徐々に変化する。
【０００５】
また、特許文献１には、ロータリースピーカによる効果を模擬できる電子楽器が記載されている。この電子楽器は、電気オルガンの出力信号の波形を表す波形データを記憶している。つまり、波形データは、ロータリースピーカの効果が付与される前の状態の音を表している。この電子楽器は、前記波形データを構成するサンプル値を順次読み出すことにより、電気オルガンの出力信号と同様の信号を再生する。この電子楽器は、前記再生された信号を変調する変調回路を備えている。これにより、ロータリースピーカによる効果に類似する効果が前記再生された信号に付与される。
【０００６】
また、特許文献２には電子楽器が記載されている。この電子楽器は、ロータリースピーカのロータの各回転角度におけるインパルス応答を記憶している。各インパルス応答は、次のようにして測定される。まず、ロータを正面に向けた状態で、ロータリースピーカの入力端子にインパルス信号を入力する。その再生音をロータリースピーカのキャビネットの正面に設置されたマイクを用いてサンプリングする。つぎに、ロータを所定の微小角度だけ回転させた状態で、ロータリースピーカの入力端子にインパルス信号を入力する。その再生音を、前記マイクを用いてサンプリングする。以降、ロータを前記所定の微小角度だけ回転させるごとにインパルス応答を測定して記録するという作業を、ロータがその回転軸回りに１回転するまで繰り返す。また、この電子楽器も、特許文献１の電子楽器と同様に、波形データを構成するサンプル値を順次読み出すことにより、電気オルガンの出力信号と同様の信号を再生する。この電子楽器は、前記複数のインパルス応答のうちの１つのインパルス応答をロータの回転角度順に選択する。そして、前記再生された信号と現在選択されているインパルス応答とを畳み込んで得られた信号を出力する。これにより、ロータリースピーカによる効果に似た効果が前記再生された信号に付与される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−０５８１５９号公報
【特許文献２】特開平７−１８１９７０号公報
【発明の概要】
【０００８】
上記特許文献１の電子楽器における変調回路の変調信号が比較的単純であり、ロータリースピーカによる効果を忠実に模擬することは困難である。
【０００９】
また、上記特許文献２の電子楽器においては、畳み込み演算の負荷が高いので、処理能力の高い演算装置が必要であり、部品コストが高くなる。
【００１０】
本発明は上記問題に対処するためになされたもので、その目的は、ロータリースピーカから発生される電気オルガンの音を模擬した楽音を表す楽音信号を発生する、安価な楽音信号発生装置を提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、後述する実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【００１１】
上記目的を達成するために、本発明の特徴は、所定の回転軸周りに回転して音の放射方向を回転させるロータを備えたスピーカから放音される電気オルガンの楽音を表す楽音信号を発生する楽音信号発生装置（１０、１０Ａ、１０Ｂ）であって、前記ロータが前記回転軸周りに所定の角度だけ回転する間に前記スピーカから発せられた楽音の音響波形を表す波形データ（ＷＤ）であって、複数のサンプル値から構成された波形データを記憶した記憶手段（ＷＭ）と、前記記憶手段から前記サンプル値を順次読み出して、前記読み出したサンプル値に基づいて楽音信号を発生する再生手段（１６）であって、前記複数のサンプル値によって表された楽音の音高及びフォルマントを変更することなく前記楽音の再生速度を変更する再生速度変更手段を有する再生手段と、を備えた、楽音信号発生装置としたことにある。
【００１２】
この場合、前記楽音の再生速度を設定するための操作子（ＲＶ）を備え、前記再生速度変更手段は、前記操作子の操作状態に応じて、前記楽音の再生速度を決定するとよい。
【００１３】
また、この場合、前記再生速度変更手段は、ピッチ同期重畳加算法を用いて、前記楽音の再生速度を変更するとよい。
【００１４】
本発明に係る楽音信号発生装置においては、ロータが所定の角度だけ回転する間（例えば、回転軸周りに略一回転する間）にロータリースピーカから発せられる楽音を表す波形データを繰り返し読み出して楽音信号を再生する。そして、その再生速度を変更可能である。したがって、本発明によれば、ロータリースピーカによる効果を、特許文献１の電子楽器よりも忠実に模擬できる。また、特許文献２のような畳み込み演算が不要である。したがって、特許文献２のような計算能力の高い演算装置は不要である。よって、本発明によれば、楽音信号発生装置の部品コストを抑えることが出来る。
【００１５】
また、本発明の他の特徴は、前記記憶手段は、複数の前記波形データを備え、前記再生手段は、複数の前記波形データをそれぞれ構成するサンプル値のうち、互いに対応するサンプル値を読み出す、位相同期手段を備える、楽音信号発生装置としたことにある。
【００１６】
各楽音信号の位相は、ロータリースピーカのロータの回転角度に対応している。本発明においては、再生手段は、複数の楽音信号を同時に生成するために複数の波形データを同時に読み出す際、互いに対応するアドレスに記憶されているサンプル値を読み出す。すなわち、再生される各楽音の位相が略同期している。よって、複数の楽音信号を生成した際、それらの楽音信号は、ロータリースピーカのロータが略同一方向を向いた状態を表している。したがって、本発明によれば、複数の楽音が１つのロータから放射される様子を忠実に模擬できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１乃至第３実施形態に係る電子楽器のハードウェア構成を示すブロック図である。
【図２】図１の電子楽器の外観を示す平面図である。
【図３】図１の電子楽器の音源回路の構成を示すブロック図である。
【図４】波形データの構成を示す概念図である。
【図５】図３の音源回路の重畳加算回路の構成を示すブロック図である。
【図６】各セグメントに適用される窓関数を示すグラフである。
【図７】波形データから切り出されるセグメントの順を示す概念図である。
【図８】ノートオンフラグの値の一例を示す表である。
【図９】倍音フラグとトラックオンフラグとの関係を示す表である。
【図１０】各種パラメータの設定値の一例を示す表である。
【発明を実施するための形態】
【００１８】
（第１実施形態）
本発明の一実施形態に係る楽音信号発生装置としての電子楽器１０について説明する。まず、この電子楽器１０の概略について図１を用いて説明する。この電子楽器１０は、特許文献１及び特許文献２の電子楽器と同様に、音の波形を表す波形データＷＤを波形メモリＷＭから読み出して、前記読み出した波形データＷＤが表す音を再生する。本実施形態では、９１個のトーンホイールを備えた電気オルガンを模擬している。なお、最低音のトーンホイールから最高音のトーンホイールに向かって順に、ノートナンバＮＮを対応付けている。最低音のトーンホイールのノートナンバＮＮが「１」であり、最高音のトーンホイールのノートナンバＮＮが「９１」である。
【００１９】
波形データＷＤは、電気オルガンの各トーンホイールを単独で選択した状態（例えばドローバーのうち、「８’」のドローバーのみを引いておき、１つの鍵を押した状態）で電気オルガンから出力された信号をロータリースピーカに入力した際に発せられた音をサンプリングして得られたサンプリングデータに基づいて生成される。各波形データＷＤは、ロータリースピーカのロータがその回転軸周りに一周する間に発せられた楽音の波形を表している。以下、ノートナンバＮＮに対応する波形データＷＤを「波形データＷＤ（ＮＮ）」と標記する。電子楽器１０は、波形データＷＤ（ＮＮ）を繰り返し読み出して、ノートナンバＮＮに対応する楽音信号を連続的に再生する。音高の異なる複数の楽音信号を再生する際、前記再生される複数の楽音信号の位相が略同期している。楽音信号の位相は、ロータの開口部の向き（ロータの回転軸回りの回転角度）に相当する。
【００２０】
また、電子楽器１０は、タイムストレッチ機能を有する。タイムストレッチ機能とは、音のピッチ及びフォルマントを維持したまま、音の長さを変更する機能である。つまり、音を時間軸方向に伸縮させることができる。言い換えれば、楽音信号の再生速度（時間の進む速さ）のみを変更できる。電子楽器１０は、このタイムストレッチ機能を用いて、各波形データを同一の伸縮率で時間軸方向に伸縮させる。つまり、楽音信号の再生速度を変更する。これにより、電気オルガンにおいてロータリースピーカのロータの回転速度を「ＳＬＯＷ」に設定したときの再生音（前記ロータリースピーカから発せられる音）、「ＦＡＳＴ」に設定したときの再生音、及びロータの回転速度が徐々に変化しているときの再生音を模擬する。なお、本実施形態においては、公知のピッチ同期重畳加算法を用いて、タイムストレッチ機能を実現している。
【００２１】
つぎに、電子楽器１０の構成について具体的に説明する。電子楽器１０は、図１に示すように、入力操作子１１、コンピュータ部１２、表示器１３、記憶装置１４、外部インターフェース回路１５、及び音源回路１６を備え、これらがバスＢＳを介して接続されている。また、音源回路１６には、波形メモリＷＭが接続されている。また、音源回路１６には、サウンドシステム１７が接続されている。
【００２２】
入力操作子１１は、演奏操作子及び設定操作子を含む。演奏操作子及び設定操作子は、図２に示すように、オン・オフ操作に対応したスイッチ（例えば数値を入力するためのテンキー）、回転操作に対応したボリューム、ロータリーエンコーダ又はスイッチ、スライド操作に対応したボリューム、リニアエンコーダ又はスイッチ、マウス、タッチパネルなどからなる。演奏操作子は、発音開始、発音停止などに用いられる。また、設定操作子は、音量の設定、音色の設定などに用いられる。入力操作子１１の操作内容を表す操作情報（操作子の指示値）は、バスＢＳを介して、後述するコンピュータ部１２に供給される。
【００２３】
例えば、演奏操作子には、鍵盤装置ＫＹが含まれる。鍵盤装置ＫＹは、複数の鍵を備える。最低音の鍵から最高音の鍵に向かって順にノートナンバＮＮが割り当てられている。最低音の鍵のノートナンバＮＮは「１３」であり、最高音のノートナンバＮＮは「５５」である（図２参照）。
【００２４】
また、例えば、設定操作子には、図２に示すように、ドローバーＤＢｊ＝１，２，・・・・，９が含まれる。ドローバーＤＢｊ＝１は、基音よりも１オクターブ低い音の音量を設定する操作子である。また、ドローバーＤＢｊ＝２は、基音よりも１オクターブ低い音の３倍音の音量を設定する操作子である。また、ドローバーＤＢｊ＝３，ＤＢｊ＝４，ＤＢｊ＝５，ＤＢｊ＝６，ＤＢｊ＝７，ＤＢｊ＝８，ＤＢｊ＝９は、それぞれ、基音、２倍音、３倍音、４倍音、５倍音、６倍音、８倍音の音量を設定する操作子である。ドローバーＤＢｊは、スライドボリュームで構成されている。ドローバーＤＢｊは、演奏者によって操作されるノブを有する。ドローバーＤＢｊは、ノブの位置に応じた指示値（電圧値）を出力する。ノブが演奏者に最も近い位置にあるとき、指示値は最大である。また、ノブが演奏者から最も遠い位置にあるとき、指示値は最小である。
【００２５】
また、例えば、設定操作子には、ロータ速度選択スイッチＲＶが含まれる。ロータ速度選択スイッチＲＶは、ロータリースピーカのロータの回転速度を「ＳＬＯＷ」、「ＦＡＳＴ」、及び「ＳＴＯＰ」のいずれに設定した状態の再生音を模擬するかを選択する操作子である。ロータ速度選択スイッチＲＶは、「ＳＬＯＷ」及び「ＦＡＳＴ」にそれぞれ対応した２つのタクトスイッチから構成されている。「ＳＬＯＷ」に対応したタクトスイッチを押すと、ロータ速度選択スイッチＲＶの指示値は「ＳＬＯＷ」に設定される。また、「ＦＡＳＴ」に対応したタクトスイッチを押すと、ロータ速度選択スイッチＲＶの指示値は「ＦＡＳＴ」に設定される。また、前記２つのタクトスイッチを同時に押すと、ロータ速度選択スイッチＲＶの指示値は「ＳＴＯＰ」に設定される。
【００２６】
コンピュータ部１２は、バスＢＳにそれぞれ接続されたＣＰＵ１２ａ、ＲＯＭ１２ｂ及びＲＡＭ１２ｃからなる。ＣＰＵ１２ａは、電子楽器１０の動作を表す各種プログラムをＲＯＭ１２ｂから読み出して実行する。例えば、ＣＰＵ１２ａは、各種プログラムに従って、鍵盤装置ＫＹ、ドローバーＤＢｊ、ロータ速度選択スイッチＲＶなどの操作状態を検出し、その検出結果に基づいて、音源回路１６を制御する。
【００２７】
ＲＯＭ１２ｂには、前記プログラムに加えて、初期設定パラメータ、各波形データＷＤ（ＮＮ）に関する情報（先頭アドレス、末尾アドレスなど）を表わす波形データ情報、表示器１３に表示される画像を表わす表示データを生成するための図形データ及び文字データなどの各種データが記憶されている。ＲＡＭ１２ｃには、各種プログラムの実行時に必要なデータが一時的に記憶される。
【００２８】
表示器１３は、液晶ディスプレイ（ＬＣＤ）によって構成される。表示器１３には、図形データ、文字データなどを用いて生成された表示データがコンピュータ部１２から供給される。表示器１３は、前記表示データに基づいて画像を表示する。
【００２９】
また、記憶装置１４は、ＨＤＤ、ＦＤＤ、ＣＤ、ＤＶＤなどの大容量の不揮発性記録媒体と、各記録媒体に対応するドライブユニットから構成されている。外部インターフェース回路１５は、電子楽器１０を他の電子音楽装置、パーソナルコンピュータなどの外部機器に接続可能とする接続端子（例えば、ＭＩＤＩ入出力端子）を備えている。電子楽器１０は、外部インターフェース回路１５を介して、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどの通信ネットワークにも接続可能である。
【００３０】
音源回路１６は、図３に示すように、制御部ＣＴ、発音部ＳＰ、信号処理部ＤＰ及びミキサー部ＭＸを有する。
【００３１】
制御部ＣＴは、ＣＰＵ１２ａの指示に従って、次に説明する発音部ＳＰを制御する。制御部ＣＴは、詳しくは後述するように、各楽音信号の再生速度及び位相を同期させるために用いる複数のカウンタ回路（マスターサンプルカウンタＣｍｓ（ＣＴ）、スレーブサンプルカウンタＣｓｓ（ＮＮ＝１〜９１）、サンプリング期間カウンタＣＰ（ＮＮ＝１〜９１））を有する。
【００３２】
発音部ＳＰは、複数（例えば２７３個）の発音チャンネルＣＨ（ｎ＝１，２，・・・，２７３）を備える。各発音チャンネルＣＨ（ｎ）の構成は共通である。発音チャンネルＣＨ（ｎ）は、読み込み回路ＤＲＤ（ｎ）、重畳加算回路ＯＬＡ（ｎ）、及び音量制御回路ＶＯＬ（ｎ）を有する。
【００３３】
読み込み回路ＤＲＤ（ｎ）は、波形メモリＷＭに接続されている。波形メモリＷＭには、電気オルガンの楽音の波形を表す複数の波形データＷＤが記憶されている。波形データＷＤは、次のようにして生成されている。すなわち、電気オルガンにおいて１つの鍵を押した際に１つのトーンホイールの電磁ピックアップの信号のみが出力されるようにドローバーを設定しておく。つぎに、鍵を１つずつ押し、ロータリースピーカーからそれぞれ発せられた音を、ロータリースピーカの正面に設置されたマイクを用いて、所定のサンプリング周期（例えば１／４４１００秒）で数秒間サンプリングしてサンプリングデータを得る。なお、前記音をサンプリングする際、ロータの回転速度を「ＳＬＯＷ」に設定している。
【００３４】
上記のようにして得られた各サンプリングデータにおいて、ロータが所定の方向（例えば正面）に向けられている状態からその回転軸周りに１回転する間に発せられた部分を切り出して、１つのトーンホイールに対応する原データとして記憶する。この作業を繰り返し、全てのトーンホイールに対する原データを生成する。すなわち、１つのトーンホイールに対して１つの原データが生成される。本実施形態では、原データを、電子楽器１０とは別の装置を用いて次のように変形したデータを波形データＷＤとして記憶している。すなわち、例えばピッチ同期重畳加算法を用いて、原データのピッチ及びフォルマントを変更することなく、再生速度のみを２倍にした状態を表すデータを予め生成して、波形データＷＤとして波形メモリＷＭに記憶している。なお、各波形データＷＤの先頭と末尾にそれぞれループポイントが設定され、このループポイント間が繰り返し再生される。したがって、原データをサンプリングデータから切り出す際、原データをループ再生した際に原データの末尾と先頭との境界にてノイズが生じない程度に、切り出し位置を原データごとに調整している。例えば、基音の節の位置を切り出し位置に設定している。したがって、原データのうちのいくつかのデータは、ロータがちょうど１回転する時間長と同一の時間長の原データよりも多少長い場合又は短い場合がある。このように、波形データＷＤごとに、その長さが多少異なる場合がある。
【００３５】
また、電子楽器１０とは別の装置により、各波形データＷＤの各区間のピッチ（音高）が予め分析され、前記各区間の基音の節に相当する位置に対応するピッチマーク値が計算される。ピッチマーク値は、波形データＷＤの先頭から前記節の位置までのサンプル数に相当する。すなわち、ピッチマーク値は、波形データＷＤを構成する各サンプル値が記憶されている記憶領域に対応づけられたアドレスであって、前記基音の節に相当するアドレスを表す。ピッチマーク値は波形データＷＤの先頭アドレスに対するオフセットアドレスに相当する。例えば、基音の周波数が７３．５Ｈｚである場合、図４に示すように、各ピッチマーク値は、「０」、「６００」、「１２００」、・・・となる。このピッチマーク値は波形メモリＷＭに記憶されている。図４に示す例では、各ピッチマーク値を整数としたが、各ピッチマーク値が小数部を含んでもよい。
【００３６】
読み込み回路ＤＲＤ（ｎ）は、サンプリング期間ごとに、サンプル値を波形メモリＷＭから読み出す。読み込み回路ＤＲＤ（ｎ）は、読み込んだサンプル値を、重畳加算回路ＯＬＡ（ｎ）に供給する。
【００３７】
重畳加算回路ＯＬＡ（ｎ）は、図５に示すように、乗算回路ＭＵＬ（ｎ）と加算回路ＡＤＤ（ｎ）を備える。乗算回路ＭＵＬ（ｎ）は、入力信号に図６に示すような窓関数を適用する回路である。このような窓関数が入力信号に適用されることにより、重畳加算回路ＯＬＡ（ｎ）の出力信号はフェードインした後、フェードアウトする。
【００３８】
加算回路ＡＤＤ（ｎ＝１），ＡＤＤ（ｎ＝２），・・・，ＡＤＤ（ｎ＝２７３）は、互いに接続可能である。加算回路ＡＤＤ（ｎ＝ａ）は、乗算回路ＭＵＬ（ｎ＝ａ）から供給されたサンプル値と他の加算回路ＡＤＤ（ｎ＝ｂ）から供給されたサンプル値を加算して、さらに他の加算回路ＡＤＤ（ｎ＝ｃ）に供給可能である。また、加算回路ＡＤＤ（ｎ）は、前記加算して得られたサンプル値を音量制御回路ＶＯＬ（ｎ）に供給する。
【００３９】
音量制御回路ＶＯＬ（ｎ）は、重畳加算回路ＯＬＡ（ｎ）から供給されたサンプル値を、ＣＰＵ１２ａの指示に従って増幅して、ミキサー部ＭＸへ出力する。
【００４０】
信号処理部ＤＰは、入力した波形データが表わす音にリバーブ、ディレイなどの効果を付与して出力する。
【００４１】
ミキサー部ＭＸは、サンプリング期間ごとに、各発音チャンネルＣＨ（ｎ＝１），ＣＨ（ｎ＝２），・・・，ＣＨ（ｎ＝２７３）及び信号処理部ＤＰから供給されたサンプル値を加算して、サウンドシステム１７に供給する。
【００４２】
サウンドシステム１７は、ミキサー部ＭＸから供給されたディジタル音信号をアナログ音信号に変換するＤ／Ａ変換器、前記変換したアナログ音信号を外部（パワーアンプなど）へ出力する出力端子を備える。
【００４３】
つぎに、電子楽器１０の動作の概略について説明する。本実施形態においては、３つの発音チャンネルＣＨから構成されたトラックＴＫを用いて、１つのノートナンバＮＮに対応する楽音信号を再生する。電子楽器１０は、２７３個の発音チャンネルＣＨを備えているので、９１個のトラックＴＫを構成可能である。１つのトラックＴＫに１つのノートナンバＮＮが割り当てられる。以下、ノートナンバＮＮ（＝「１」〜「９１」）に対応するトラックＴＫを「トラックＴＫ（ＮＮ）」と標記する。また、トラックＴＫ（ＮＮ）は、発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）から構成されるものとする（図３参照）。
【００４４】
電気オルガンにおいては、全てのトーンホイールが常に回転していて、押された鍵に対応する複数のトーンホイールの電磁ピックアップの出力信号が加算される。このような電気オルガンの動作を模擬するために、電子楽器１０においては、全てのトラックＴＫ（ＮＮ＝１〜９９）は常に楽音信号を再生している。ただし、電子楽器１０の鍵盤装置の鍵が押されていない状態では、全てのトラックＴＫの音量が「０」に設定される。そして、鍵が操作されると、その鍵の音高を基音とした他の８個の倍音のノートナンバＮＮがそれぞれ計算される。そして、基音及び倍音のノートナンバＮＮにそれぞれ対応する９個のトラックＴＫ（ＮＮ）の音量が、ドローバーＤＢｊ＝１，２，・・・，９の操作状態に応じて変更される。各トラックＴＫにて再生される楽音信号の位相は略同期している。また、各トラックＴＫにおける楽音信号の再生速度は略同期している。
【００４５】
トラックＴＫ（ＮＮ）の発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）は、楽音信号の一部の信号（以下、グレインＧＲｉ＝０，１，２，・・・と呼ぶ）をそれぞれ生成する。発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）にてそれぞれ生成されたグレインＧＲｉが、発音チャンネルＣＨ（ｎ＝ＮＮ）にて重畳加算されて、１つの楽音信号として、ミキサー部ＭＸへ供給される。
【００４６】
各グレインＧＲｉは、ノートナンバＮＮに対応する波形データＷＤ（ＮＮ）の一部の区間であって、基音の２周期分の長さに相当する区間（以下、セグメントＳＧｉ＝０，１，２，・・・と呼ぶ（図４参照））に対して図６に示すような窓関数を適用して形成される波形データに相当する。セグメントＳＧｉの先頭及び末尾のアドレスは、いずれかのピッチマーク値に一致する。したがって、セグメントＳＧｉの中央のアドレスも、いずれかのピッチマーク値に一致する。以下の説明において、セグメントＳＧｉの中央に位置するピッチマークを「中央のピッチマーク」と呼ぶ。また、セグメントＳＧｉの前半部分とセグメントＳＧｉ―１の後半部分とが同一となるように各セグメントＳＧｉが元の波形データから切り出される。
【００４７】
発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）は、循環的に動作して、各グレインＧＲｉを再生する（図７参照）。１つの発音チャンネルＣＨ（ｎ）において１つのグレインＧＲｉがその中央のピッチマークまで再生されたとき、他の１つの発音チャンネルＣＨ（ｎ）が新たにグレインＧＲｉを再生し始める。各発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）にて再生するグレインＧＲｉのインデックスｉは、再生速度に応じて決定される。再生速度が遅い場合には、同一のインデックスｉが連続する。つまり、元の波形データＷＤ（ＮＮ）のうちの同一のセグメントＳＧｉが連続して切り出される。一方、再生速度が速い場合には、一部のセグメントＳＧｉがスキップされる。つまり、元の波形データＷＤ（ＮＮ）の一部が読み飛ばされる。逆に言えば、同一のセグメントＳＧｉを連続して切り出すことで、楽音信号の再生速度が遅くなる（波形データＷＤ（ＮＮ）が伸長される）。一方、一部のセグメントＳＧｉをスキップすることで、楽音信号の再生速度が速くなる（波形データＷＤ（ＮＮ）が短縮される）。
【００４８】
つぎに、電子楽器１０の動作について具体的に説明する。まず、ＣＰＵ１２ａの動作について説明する。電子楽器１０の電源が投入されると、ＣＰＵ１２ａは、ノートナンバＮＮが割り当てられた鍵が押されているか否かを表すノートオンフラグＦＮ（ＮＮ＝１３〜５５）を「０」に設定する。演奏者が鍵盤装置のいずれかの鍵を押すと、ＣＰＵ１２ａは、押鍵された鍵に割り当てられているノートナンバＮＮを検出する。ＣＰＵ１２ａは、前記検出したノートナンバＮＮに対応するノートオンフラグＦＮ（ＮＮ）を「１」に設定する（図８参照）。一方、演奏者が押していた鍵を解放すると、ＣＰＵ１２ａは、前記解放された鍵に割り当てられているノートナンバＮＮを検出する。そして、ＣＰＵ１２ａは、前記検出したノートナンバＮＮに対応するノートオンフラグＦＮ（ＮＮ）を「０」に設定する。なお、図８においては、ノートナンバＮＮが「３７」及び「４９」である鍵が押されているときのノートオンフラグＦＮ（ＮＮ）の状態を示している。
【００４９】
また、ＣＰＵ１２ａは、所定の時間間隔をおいて（例えば、１０ミリ秒ごとに）、各ノートナンバＮＮに関する音量値ＶＬ（ＮＮ）を計算して音源回路１６に供給する。各音量値ＶＬ（ＮＮ）は、ノートオンフラグＦＮ（ＮＮ）及びドローバーＤＢｊの現在の指示値ＤＶｊを用いて、次の演算式（１）に基づいて計算される。
ＶＬ（ＮＮ）＝ＦＮ（ＮＮ−３６）・ＤＶ９＋ＦＮ（ＮＮ−３１）・ＤＶ８＋ＦＮ（ＮＮ−２８）・ＤＶ７
＋ＦＮ（ＮＮ−２４）・ＤＶ６＋ＦＮ（ＮＮ−１９）・ＤＶ５＋ＦＮ（ＮＮ−１２）・ＤＶ４
＋ＦＮ（ＮＮ）・ＤＶ３＋ＦＮ（ＮＮ−７）・ＤＶ２＋ＦＮ（ＮＮ＋１２）・ＤＶ１  ・・・（１）
ただし、ノートオンフラグＦＮ（ＮＮ＜１３）及びノートオンフラグＦＮ（ＮＮ＞５５）は「０」とする。
【００５０】
また、演奏者がロータ速度選択スイッチＲＶを操作すると、ＣＰＵ１２ａは、ロータ速度選択スイッチＲＶの指示値（「ＳＬＯＷ」、「ＦＡＳＴ」又は「ＳＴＯＰ」）を検出する。ＣＰＵ１２ａは、前記検出結果に応じて、マスター再生速度倍率θを設定する。マスター再生速度倍率θは、前記模擬しようとするロータリースピーカのロータの回転速度スイッチが「ＳＬＯＷ」であるとき前記ロータが１回転するのにかかる時間長と同一の時間長の波形データ（以下、基準波形データと呼ぶ）を再生する速度の倍率に相当する。なお、基準波形データは、本実施形態を説明するための仮想的なデータであり、基準波形データが波形メモリＷＭに記憶されているわけではない。基準波形データをそのままの長さ（速さ）で再生するとき、マスター再生速度倍率θは「１．０」である。基準波形データを１／２倍の長さ（２倍の速さ）で再生するとき、マスター再生速度倍率θは「２．０」である。ロータ速度選択スイッチＲＶの指示値が「ＳＬＯＷ」を示すとき、ＣＰＵ１２ａは、マスター再生速度倍率θを「０．５」に設定して、音源回路１６に供給する。一方、ロータ速度選択スイッチＲＶの指示値が「ＦＡＳＴ」を示すとき、ＣＰＵ１２ａは、マスター再生速度倍率θを「４」に設定して、音源回路１６に供給する。また、ロータ速度選択スイッチＲＶの指示値が「ＳＴＯＰ」であるとき、ＣＰＵ１２ａは、マスター再生速度倍率θを「０」に設定して、音源回路１６に供給する。ただし、ＣＰＵ１２ａは、ロータ速度選択スイッチＲＶの指示値が変更された後、マスター再生速度倍率θの値を変更前の値から変更後の値に向かって徐々に変更する。この際、マスター再生速度倍率θが小数部を含んでもよい。
【００５１】
つぎに、音源回路１６の動作について具体的に説明する。まず、制御部ＣＴの動作について説明する。電子楽器１０に電源が投入されると、制御部ＣＴは、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）を「０」に設定する。また、制御部ＣＴは、スレーブサンプルカウンタＣｓｓ（ＮＮ＝１〜９１）のカウント値ｔｓｓ（ＮＮ＝１〜９１）を「０」に設定する。また、制御部ＣＴは、経過したサンプリング期間数をカウントするサンプリング期間カウンタＣｐ（ＮＮ＝１〜９１）のカウント値ｔｐ（ＮＮ＝１〜９１）を「０」に設定する。
【００５２】
そして、制御部ＣＴは、サンプリング期間ごとに、カウント値ｔｐ（ＮＮ）を更新する。すなわち、カウント値ｔｐ（ＮＮ）をインクリメントする。ただし、カウント値ｔｐ（ＮＮ）がノートナンバＮＮに対応する波形データＷＤ（ＮＮ）を構成するサンプル値の総数を超えた場合、カウント値ｔｐ（ＮＮ）から前記サンプル値の総数を減算する。また、制御部ＣＴは、サンプリング期間ごとに、カウント値ｔｍｓ（ＣＴ）を更新する。すなわち、カウント値ｔｍｓ（ＣＴ）に、マスター再生速度倍率θを加算する。また、制御部ＣＴは、サンプリング期間ごとに、カウント値ｔｓｓ（ＮＮ）を更新する。すなわち、カウント値ｔｓｓ（ＮＮ）に、マスター再生速度倍率θとスレーブ再生速度倍率φ（ＮＮ）とを乗算した値を加算する。なお、スレーブ再生速度倍率φ（ＮＮ）は、基準波形データの長さに対する波形データＷＤ（ＮＮ）の長さの比率に相当する。ただし、カウント値ｔｓｓ（ＮＮ）がノートナンバＮＮに対応する波形データＷＤ（ＮＮ）を構成するサンプル値の総数を超えた場合、制御部ＣＴは、そのカウント値ｔｓｓ（ＮＮ）から前記サンプル値の総数を減算する。
【００５３】
カウント値ｔｍｓ（ＣＴ）に対するカウント値ｔｓｓ（ＮＮ＝１），ｔｓｓ（ＮＮ＝２），・・・のうちのいずれか１つ又は複数のカウント値の比が何らかの要因（例えば、小数部の桁数が有限であること）により理想値からずれることがある。この場合、前記ずれが所定の許容範囲内に含まれるように、前記ずれが生じたトラックＴＫの再生速度が次のようにして補正される。ここで、カウント値ｔｍｓ（ＣＴ）とカウント値ｔｓｓ（ＮＮ）との比が理想値からずれて、そのずれが前記許容範囲外にあるとする。この場合、制御部ＣＴは、マスター再生速度倍率θとスレーブ再生速度倍率φ（ＮＮ）とを乗算した値に、さらに所定の補正倍率ψを加味した値をカウント値ｔｓｓ（ＮＮ）に加算する。補正倍率ψは予めＣＰＵ１２ａから制御部ＣＴに供給されている。例えば、補正倍率ψは、「１．１９」及び「１／１．１９」に設定される。トラックＴＫ（ＮＮ）の再生位置が他のトラックＴＫの再生位置に対して遅れているとき、制御部ＣＴは、カウント値ｔｓｓ（ＮＮ）に、マスター再生速度倍率θとスレーブ再生速度倍率φ（ＮＮ）とを乗算した値を更に１．１９倍した値を加算する。つまり、トラックＴＫ（ＮＮ）の再生速度を速くする。一方、トラックＴＫ（ＮＮ＝ｋ）の再生位置が他のトラックＴＫ（ＮＮ≠ｋ）の再生位置に対して進みすぎている場合、制御部ＣＴは、カウント値ｔｓｓ（ＮＮ）に、マスター再生速度倍率θとスレーブ再生速度倍率φ（ＮＮ）とを乗算した値を更に１／１．１９倍した値を加算する。つまり、トラックＴＫ（ＮＮ）の再生速度を遅くする。このように、カウント値ｔｓｓ（ＮＮ）がカウント値ｔｍｓ（ＣＴ）に略同期している。
【００５４】
また、制御部ＣＴは、カウント値ｔｐ（ＮＮ）が波形データＷＤ（ＮＮ）のいずれかのピッチマークを超えたトラックＴＫ（ＮＮ）に対し、カウント値ｔｓｓ（ＮＮ）の直前のピッチマーク値を起点のピッチマーク値として、新たなグレインＧＲの生成を開始させる。
【００５５】
また、制御部ＣＴは、読み出しアドレスが１つのセグメントＳＧｉの末尾まで達した発音チャンネルＣＨ（ｎ）の動作を停止させる。
【００５６】
また、上記のように、制御部ＣＴは、前記所定の時間間隔をおいて、ＣＰＵ１２ａから音量値ＶＬ（ＮＮ＝１〜９１）を入力する。すると、制御部ＣＴは、トラックＴＫ（ＮＮ）の発音チャンネルＣＨ（ｎ＝ＮＮ）の音量制御回路ＶＯＬ（ｎ＝ＮＮ）の増幅度を音量値ＶＬ（ＮＮ）に従って設定する。
【００５７】
つぎに、発音チャンネルＣＨ（ｎ＝ＮＮ）の動作について説明する。発音チャンネルＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）の動作は、発音チャンネルＣＨ（ｎ＝ＮＮ）の動作と同様であるので、それらの説明を省略する。
【００５８】
発音チャンネルＣＨ（ｎ＝ＮＮ）が制御部ＣＴからグレインＧＲｉの生成を開始するよう指示されると、読み出し回路ＤＲＤ（ｎ＝ＮＮ）は、サンプリング期間ごとに、サンプル値を波形メモリＷＭから読み出して、重畳加算回路ＯＬＡ（ｎ＝ＮＮ）に供給する。サンプル値の読み出しアドレスは、波形データＷＤ（ｎ＝ＮＮ）の先頭アドレスに前記起点のピッチマーク値の整数部の値を加算した値に初期化される。以降、発音チャンネルＣＨ（ｎ＝ＮＮ）は、制御部ＣＴから動作停止指示を入力するまで、サンプリング期間ごとに読み出しアドレスをインクリメントする。重畳加算回路ＯＬＡ（ｎ＝ＮＮ）の乗算回路ＭＵＬ（ｎ＝ＮＮ）は、図６に示す窓関数に基づいて計算した係数を、読み出し回路ＤＲＤ（ｎ＝ＮＮ）から供給されたサンプル値に乗算する。このようにして、サンプリング期間ごとに、グレインＧＲｉのサンプル値が生成される。発音チャンネルＣＨ（ｎ＝ＮＮ＋９１）及び発音チャンネルＣＨ（ｎ＝ＮＮ＋１８２）も、発音チャンネルＣＨ（ｎ＝ＮＮ）と同様の制御シーケンスに従って、グレインＧＲｉを生成する。発音チャンネルＣＨ（ｎ＝ＮＮ＋９１）及び発音チャンネルＣＨ（ｎ＝ＮＮ＋１８２）にてそれぞれ生成されたグレインＧＲｉのサンプル値は、発音チャンネルＣＨ（ｎ＝ＮＮ）の加算回路ＡＤＤ（ｎ＝ＮＮ）に供給される。発音チャンネルＣＨ（ｎ＝ＮＮ）は、発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１８２）にて同一のサンプリング期間内に生成されたグレインＧＲｉのサンプル値を加算して、ミキサー部ＭＸに供給する。
【００５９】
本実施形態においては、ロータが略一回転する間にロータリースピーカから発せられる楽音を表す波形データＷＤ（ＮＮ）を繰り返し読み出して楽音信号を再生する。そして、ロータ速度選択スイッチＲＶの操作に応じて、各トラックＴＫ（ＮＮ）の再生速度が変更される。したがって、本実施形態によれば、特許文献２の電子楽器のような複雑な畳み込み演算が不要である。したがって、部品コストを抑えることができる。
【００６０】
また、各楽音信号の位相は、ロータリースピーカのロータの回転角度に対応している。本実施形態においては、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）がロータの回転角度に対応している。そして、スレーブサンプルカウンタＣｓｓ（ＮＮ）のカウント値ｔｓｓ（ＮＮ）がマスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）に略同期している。つまり、各トラックＴＫ（ＮＮ）において、互いに対応するアドレスに記憶されているサンプル値が読み出される。言い換えれば、再生される各楽音の位相が略同期している。すなわち、各トラックＴＫ（ＮＮ）にて発生される楽音信号は、ロータリースピーカのロータが略同一方向を向いた状態における楽音を表している。したがって、本実施形態によれば、複数の楽音が１つのロータから放射される様子を忠実に模擬できる。
【００６１】
（第２実施形態）
つぎに、本発明の第２実施形態に係る電子楽器１０Ａについて説明する。まず、電子楽器１０Ａの概略について説明する。第１実施形態においては、トラックＴＫ（ＮＮ）に、割り当てられる発音チャンネルＣＨ（ｎ）のインデックスｎが予め決定されている。すなわち、トラックＴＫ（ＮＮ）に、発音チャンネルＣＨ（ｎ＝ＮＮ），ＣＨ（ｎ＝ＮＮ＋９１），ＣＨ（ｎ＝ＮＮ＋１９２）が割り当てられている。そして、全てのトラックＴＫ（ＮＮ＝１〜９１）は常に楽音信号を再生している。これに対し、第２実施形態においては、トラックＴＫ（ＮＮ）に対し、発音チャンネルＣＨ（ｎ）が動的に割り当てられる。言い換えれば、トラックＴＫ（ＮＮ）が動的に形成される。その他の構成は、第１実施形態と同様である。
【００６２】
つぎに、第２実施形態に係る電子楽器１０Ａについて具体的に説明する。とくに、ＣＰＵ１２ａが、トラックＴＫ（ＮＮ）に対し、発音チャンネルＣＨ（ｎ）を動的に割り当てる動作について具体的に説明する。なお、本実施形態では、便宜上、押された鍵に割り当てられているノートナンバを「ノートナンバＫＮ」と標記し、その倍音に相当するノートナンバを「ノートナンバＮＮ」と標記する。また、本実施形態においては、ノートオンフラグＦＮ（ＫＮ＝１３〜５５）に加えて、倍音フラグＦＨ（ＫＮ＝１３〜５５，ＮＮ＝１〜９１）、及びトラックオンフラグＦＴ（ＮＮ＝１〜９１）が用いられる（図９参照）。
【００６３】
電子楽器１０Ａのハードウェア構成は、第１実施形態と同様である（図１乃至図３参照）。また、ノートオンフラグＦＮ（ＫＮ＝１３〜５５）に関する構成及び動作は、第１実施形態と同様である。
【００６４】
倍音フラグＦＨ（ＫＮ＝１３〜５５，ＮＮ＝１〜９１）は、電子楽器１０Ａの電源投入時に「０」に設定される。ノートナンバＫＮの鍵が押されているとき、発音状態に設定される基音及び８個の倍音のノートナンバＮＮに対応する倍音フラグＦＨ（ＫＮ，ＮＮ）が「１」に設定される。すなわち、ノートナンバＫＮの鍵が押されているとき、倍音フラグＦＨ（ＫＮ，ＮＮ＝ＫＮ−１２），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋７），ＦＨ（ＫＮ，ＮＮ＝ＫＮ），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋１２），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋１９），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋２４），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋２８），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋３１），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋３６）が「１」に設定される。ノートナンバＫＮの鍵が解放されているとき、倍音フラグＦＨ（ＫＮ，ＮＮ＝ＫＮ−１２），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋７），ＦＨ（ＫＮ，ＮＮ＝ＫＮ），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋１２），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋１９），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋２４），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋２８），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋３１），ＦＨ（ＫＮ，ＮＮ＝ＫＮ＋３６）が「０」に設定される。上記のように、１つのノートナンバＫＮに対し、９個の倍音フラグＦＨが設けられていればよい。すなわち、ノートナンバＫＮの倍音にはなり得ないノートナンバＮＮに関する倍音フラグＦＨ（図９において斜線を付した部分に相当する倍音フラグＦＨ（ＫＮ，ＮＮ））は不要である。
【００６５】
トラックオンフラグＦＴ（ＮＮ＝１〜９１）は、トラックＴＫ（ＮＮ）の動作状態を表すフラグである。トラックオンフラグＦＴ（ＮＮ＝１〜９１）は、電源投入時に「０」に設定される。倍音フラグＦＨ（ＫＮ＝１３，ＮＮ）〜倍音フラグＦＨ（ＫＮ＝５５，ＮＮ）のうちの少なくとも１つが「１」であるとき、トラックオンフラグＦＴ（ＮＮ）が「１」に設定される。一方、倍音フラグＦＨ（ＫＮ＝１３，ＮＮ）〜倍音フラグＦＨ（ＫＮ＝５５，ＮＮ）のうちの全てのフラグが「０」であるとき、トラックオンフラグＦＴ（ＮＮ）が「０」に設定される。
【００６６】
演奏者が鍵盤装置のいずれかの鍵を押すと、ＣＰＵ１２ａは、押された鍵に割り当てられているノートナンバＫＮを検出する。ＣＰＵ１２ａは、第１実施形態と同様に、ノートオンフラグＦＮ（ＫＮ）を「１」に設定する。さらに、ＣＰＵ１２ａは、前記検出したノートナンバＫＮに関する９個の倍音フラグＦＨを「１」に設定する。
【００６７】
つぎに、ＣＰＵ１２ａは、各ノートナンバＮＮに関するトラックオンフラグＦＴ（ＮＮ）を次のように操作する。具体的には、倍音フラグＦＨ（ＫＮ＝１３，ＮＮ＝ｉ）〜倍音フラグＦＨ（ＫＮ＝５５，ＮＮ＝ｉ）のうちの少なくとも１つが「１」であるとき、ＣＰＵ１２ａは、トラックオンフラグＦＴ（ＮＮ＝ｉ）を「１」に設定する。トラックオンフラグＦＴ（ＮＮ）が「０」から「１」に遷移したとき、ＣＰＵ１２ａは、トラックＴＫ（ＮＮ）に、動作停止中の３つの発音チャンネルＣＨを割り当てる。そして、ＣＰＵ１２ａは、トラックＴＫ（ＮＮ）に割り当てた３つの発音チャンネルＣＨにて波形データＷＤ（ＮＮ）を用いて楽音信号を再生することを表す情報を音源回路１６に供給する。
【００６８】
一方、演奏者が押していた鍵を解放すると、ＣＰＵ１２ａは、前記解放された鍵に割り当てられているノートナンバＫＮを検出する。そして、ＣＰＵ１２ａは、ノートオンフラグＦＮ（ＫＮ）を「０」に設定する。さらに、ＣＰＵ１２ａは、前記検出したノートナンバＫＮに関する９個の倍音フラグＦＨ（ＫＮ，ＮＮ）を「０」に設定する。
【００６９】
また、ＣＰＵ１２ａは、各ノートナンバＮＮに関するトラックオンフラグＦＴ（ＮＮ）を次のように操作する。具体的には、倍音フラグＦＨ（ＫＮ＝１３，ＮＮ＝ｉ）〜倍音フラグＦＨ（ＫＮ＝５５，ＮＮ＝ｉ）のうちの全てのフラグが「０」であるとき、ＣＰＵ１２ａは、トラックオンフラグＦＴ（ＮＮ＝ｉ）を「０」に設定する。トラックオンフラグＦＴ（ＮＮ）が「１」から「０」に遷移したとき、ＣＰＵ１２ａは、トラックＴＫ（ＮＮ）に割り当てられていた３つの発音チャンネルＣＨを解放する（動作を停止させて、新たなトラックＴＫに割り当て可能な状態に設定する）ことを表す情報を音源回路１６に供給する。
【００７０】
また、ＣＰＵ１２ａは、所定の時間間隔（例えば１０ミリ秒）をおいて、各ノートナンバＮＮに関する音量値ＶＬ（ＮＮ）を計算して音源回路１６に供給する。なお、トラックオンフラグＦＴ（ＮＮ＝１〜９１）のうち、値が「１」であるトラックオンフラグＦＴ（ＮＮ）を選択し、前記選択したトラックオンフラグＦＴ（ＮＮ）に対応するノートナンバＮＮに関する音量値ＶＬ（ＮＮ）のみを計算して音源回路１６に供給すればよい。音量値ＶＬ（ＮＮ）は、第１実施形態と同様に、ノートオンフラグＦＮ（ＫＮ）及びドローバーＤＢｊの指示値ＤＶｊを用いて、次の演算式（２）に基づいて計算される。
ＶＬ（ＮＮ）＝ＦＮ（ＫＮ＝ＮＮ−３６）・ＤＶ９＋ＦＮ（ＫＮ＝ＮＮ−３１）・ＤＶ８
＋ＦＮ（ＫＮ＝ＮＮ−２８）・ＤＶ７＋ＦＮ（ＫＮ＝ＮＮ−２４）・ＤＶ６
＋ＦＮ（ＫＮ＝ＮＮ−１９）・ＤＶ５＋ＦＮ（ＫＮ＝ＮＮ−１２）・ＤＶ４
＋ＦＮ（ＫＮ＝ＮＮ）・ＤＶ３＋ＦＮ（ＫＮ＝ＮＮ−７）・ＤＶ２
＋ＦＮ（ＫＮ＝ＮＮ＋１２）・ＤＶ１  ・・・（２）
ただし、ノートオンフラグＦＮ（ＫＮ＜１３）及びノートオンフラグＦＮ（ＫＮ＞５５）は「０」とする。
【００７１】
また、ＣＰＵ１２ａは、第１実施形態と同様に、マスター再生速度倍率θを設定する。
【００７２】
音源回路１６の制御部ＣＴは、第１実施形態と同様に、サンプリング期間ごとに、カウント値ｔｐ（ＮＮ）及びカウント値ｔｍｓ（ＣＴ）を更新する。また、制御部ＣＴは、ＣＰＵ１２ａの指示に従って、トラックＴＫ（ＮＮ）に割り当てられた３個の発音チャンネルＣＨ（ｎ）の動作を開始させる。この際、制御部ＣＴは、スレーブサンプルカウンタＣｓｓ（ＮＮ）のカウント値ｔｓｓ（ＮＮ）を決定（初期化）する。すなわち、制御部ＣＴは、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）に応じて、カウント値ｔｓｓ（ＮＮ）を設定する。例えば、制御部ＣＴは、波形データＷＤ（ＮＮ）のピッチマーク値のうち、カウント値ｔｍｓ（ＣＴ）の直前のピッチマーク値をカウント値ｔｓｓ（ＮＮ）の初期値として設定する。その後、制御部ＣＴは、第１実施形態と同様に、カウント値ｔｓｓ（ＮＮ）を更新する。発音開始時においてトラックＴＫ（ＮＮ）にて再生される楽音信号の位相が他のトラックＴＫの位相とは少しずれていたとしても、トラックＴＫ（ＮＮ）の位相が順次補正され、しばらくすると、前記他のトラックＴＫの位相に略同期する。制御部ＣＴは、第１実施形態と同様に、動作中（楽音信号を再生中）のトラックＴＫ（ＮＮ）を制御する。すなわち、カウント値ｔｐ（ＮＮ）がピッチマークを超えるごとに、新たなグレインＧＲｉの生成を開始させる。また、トラックＴＫ（ＮＮ）の音量を制御する。トラックＴＫ（ＮＮ）による楽音信号の再生手順は第１実施形態と同様である。また、制御部ＣＴは、ロータ速度選択スイッチＲＶの設定値に従って、波形データＷＤ（ＮＮ）の再生速度を設定する。また、制御部ＣＴは、ＣＰＵ１２ａの指示に従って、トラックＴＫ（ＮＮ）の動作を停止させる。
【００７３】
本実施形態においては、トラックＴＫ（ＮＮ）に動的に発音チャンネルＣＨ（ｎ）が割り当てられる。発音チャンネルが比較的少ない音源回路１６において、発音チャンネルＣＨ（ｎ）が不足した場合には、従来の電子楽器と同様に、所定のルールに従ってトラックＴＫを選択し、前記選択したトラックＴＫにて発生中の楽音を強制的に減衰させる。そして、前記選択したトラックＴＫにて、新たな楽音を発生させる。これによれば、音源回路１６の発音チャンネル数が第１実施形態より少ない場合であっても、第１実施形態と同様の効果が得られる。
【００７４】
なお、ドローバーＤＢｊが完全に押し込まれている場合（つまり、その指示値が「０」である場合）には、そのドローバーＤＢｊに対応する楽音信号を発生させるためのトラックＴＫ（発音チャンネルＣＨ（ｎ））は不要である。そこで、図１０に示すように、音量値ＶＬ（ＮＮ）が「０」より大きいノートナンバＮＮに関するトラックオンフラグＦＴ（ＮＮ）のみを「１」に設定し、前記ノートナンバＮＮが割り当てられているトラックＴＫ（ＮＮ）に発音チャンネルＣＨ（ｎ）を割り当ててもよい。なお、図１０の例においては、ドローバーＤＢｊ＝３及びドローバーＤＢｊ＝４の設定値が最大であり、その他のドローバーＤＢｊの設定値が「０」である。また、この例においては、斜線を付した２つの鍵が押されている。これによれば、音源回路１６の発音チャンネル数がさらに少ない場合であっても、第１実施形態と同様の効果が得られる。
【００７５】
（第３実施形態）
つぎに、本発明の第３実施形態に係る電子楽器１０Ｂについて説明する。まず、電子楽器１０Ｂの概略について説明する。電子楽器１０Ｂのハードウェア構成は、電子楽器１０及び電子楽器１０Ａと略同一である。ただし、電子楽器１０Ｂにおいては、電子楽器１０及び電子楽器１０Ａとは異なる波形データＷＤを用いる。具体的には、電気オルガンのドローバーを所定の設定にした状態（例えば、１つ又は複数のプリセットスイッチを押した状態）で、１つずつ鍵を押し、ロータリースピーカから発せられた楽音をそれぞれサンプリングしている。各サンプリングデータから原データを切り出し、原データをタイムストレッチして（音の長さを変更して）、波形データを生成する手順に関しては、上記の第１実施形態及び第２実施形態と同様である。なお、本実施形態においては、電子楽器１０Ｂの鍵のノートナンバＮＮ（＝１３〜５５）に対応した波形データＷＤ（ＮＮ＝１３〜５５）が生成され、波形メモリＷＭ内に記憶されている。上記のように、電子楽器１０Ｂでは、１つの波形データＷＤが複数のトーンホイールの音（倍音）を含んでいるので、ドローバーＤＢｊはトーンホイールの組み合わせ（すなわち音色）を設定するための操作子としては機能せず、他の用途に用いられる。
【００７６】
演奏者が鍵盤装置のいずれかの鍵を押すと、ＣＰＵ１２ａは、押鍵された鍵に割り当てられているノートナンバＮＮを検出する。そして、ＣＰＵ１２ａは、前記検出したノートナンバＮＮに対応するトラックオンフラグＦＴ（ＮＮ）を「１」に設定するとともに、トラックＴＫ（ＮＮ）に動作停止中の３つの発音チャンネルＣＨ（ｎ）を割り当てる。そして、ＣＰＵ１２ａは、トラックＴＫ（ＮＮ）にて波形データＷＤ（ＮＮ）を用いて楽音信号を再生することを表す情報を音源回路１６に供給する。
【００７７】
一方、演奏者が押していた鍵を解放すると、ＣＰＵ１２ａは、前記解放された鍵に割り当てられているノートナンバＮＮを検出する。そして、ＣＰＵ１２ａは、トラックＴＫ（ＮＮ）に割り当てられていた３つの発音チャンネルＣＨを解放する（動作を停止させて、新たなトラックＴＫに割り当て可能な状態に設定する）ことを表す情報を音源回路１６に供給する。
【００７８】
また、ＣＰＵ１２ａは、第１実施形態と同様に、マスター再生速度倍率θを設定する。音源回路１６の制御部ＣＴの動作は、第２実施形態と同様である。
【００７９】
上記第１実施形態及び第２実施形態においては、各波形データＷＤは、１つのトーンホイールのみが選択された状態の楽音を表している。各トラックＴＫは、それらに対応する波形データＷＤに基づいて楽音信号を再生する。そして、ドローバーＤＢｊの設定に応じて各トラックＴＫの音量値ＶＬを計算している。これに対し、本実施形態では、各波形データＷＤは、電気オルガンのドローバーを所定の状態に設定したとき（つまり、複数のトーンホイールの電磁ピックアップが選択された状態で１つの鍵が押されたとき）の楽音を表している。そのため、１つの鍵に対して１つのトラックＴＫを割り当てて、各トラックＴＫにて波形データＷＤを再生するだけで、複数のトーンホイールの電磁ピックアップが選択された状態の楽音信号が得られる。このように、本実施形態によれば、第１実施形態及び第２実施形態とは異なり、各トラックＴＫの音量値ＶＬを計算する必要がない。よって、上記第１実施形態及び第２実施形態に比べて、ＣＰＵ１２ａの負荷を軽減できる。また、発音チャンネルＣＨの総数が第１実施形態及び第２実施形態に比べて少ない場合であっても、両実施形態と同様の効果が得られる。
【００８０】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【００８１】
例えば、上記実施形態においては、前記原データを、電子楽器１０とは別の装置を用いて変形したデータを波形データＷＤとして記憶している。しかし、前記原データをそのまま波形データＷＤとして用いてもよい。この場合、ロータ速度選択スイッチＲＶの指示値が「ＳＬＯＷ」を示すとき、ＣＰＵ１２ａは、マスター再生速度倍率θを「１」に設定すればよい。また、ロータ速度選択スイッチＲＶの指示値が「ＦＡＳＴ」を示すとき、ＣＰＵ１２ａは、マスター再生速度倍率θを「８」に設定すればよい。また、上記実施形態においては、前記サンプリングデータを得る際、ロータの回転速度を「ＳＬＯＷ」に設定している。しかし、前記サンプリングデータを得る際、ロータの回転速度を「ＦＡＳＴ」に設定してもよい。この場合、前記サンプリングデータから抽出した原データを変形したデータを波形データＷＤとして用いてもよいし、前記原データをそのまま波形データＷＤとして用いてもよい。
【００８２】
また、例えば、上記実施形態においては、ロータリースピーカから発せられた電気オルガンの楽音をモノラルサンプリングしている。しかし、これに代えて、前記楽音をステレオサンプリングしてもよい。つまり、ロータリースピーカの正面に左右方向に間隔をおいて設置された２つのマイクを用いて、ロータリースピーカから発せられる音をサンプリングし、左チャンネル用の波形データと右チャンネル用の波形データを別々に生成してもよい。この場合、左チャンネル用の波形データ及び右チャンネル用の波形データを、別々のトラックＴＫにて再生すればよい。したがって、第１実施形態においては、５４６個の発音チャンネルＣＨ（ｎ）を設ける必要がある。これによれば、より豊かなコーラス効果を得ることができる。
【００８３】
また、マスターサンプルカウンタＣｍｓ（ＣＴ）を用いることなく、トラックＴＫ（ＮＮ＝１），ＴＫ（ＮＮ＝２），・・・のうちの１つのトラックに対応するスレーブサンプルカウンタＣｓｓ（ＮＮ）をマスターサンプルカウンタとして用いても良い。すなわち、トラックＴＫ（ＮＮ＝１），ＴＫ（ＮＮ＝２），・・・のうちの１つをマスタートラックとし、その他のトラックＴＫをスレーブトラックとしてもよい。
【００８４】
また、基準波形データの長さ（サンプル数）と各波形データＷＤの長さ（サンプル数）の差は実際には小さいので、スレーブ再生速度倍率φ（ＮＮ）を「１」と見なし、補正倍率ψのみを用いて、トラックＴＫの再生速度を調整してもよい。
【００８５】
また、電気オルガンのキークリック音を表す波形データを記憶しておき、鍵が押されたとき、前記キークリック音の波形データを読み出して、前記キークリック音を付加してもよい。この場合、ロータの向きに応じた複数のキークリック音をそれぞれ表す複数の波形データを記憶しておき、前記複数の波形データのうち、マスターサンプルカウンタＣｍｓ（ＣＴ）のカウント値ｔｍｓ（ＣＴ）（つまり、ロータの回転角度）に応じた波形データを読み出してキークリック音を付加してもよい。
【００８６】
また、高音用スピーカと低音用スピーカを備えるとともに、それぞれのスピーカ用のロータを備えたロータリースピーカを模擬してもよい。この場合、各ロータの近傍にマイクをそれぞれ設置し、各ロータから発せられる楽音をそれぞれサンプリングして高音の波形データと低音の波形データをそれぞれ生成すればよい。そして、高音の波形データと低音の波形データをそれぞれ別のトラックＴＫにて再生すればよい。その際、高音の波形データを再生するトラックＴＫのグループのマスターサンプルカウンタと、低音の波形データを再生するトラックＴＫのグループのマスターサンプルカウンタとを設けるとよい。つまり、２つのマスターサンプルカウンタを用いるとよい。これによれば、高音用のロータの向きと、低音用のロータの向きがずれている状態を模擬できる。なお、高音域のトーンホイールの楽音のみを、高音用のロータの近傍に設置したマイクを用いてサンプリングし、低音域のトーンホイールの楽音のみを、低音用のロータの近傍に設置したマイクを用いてサンプリングしてもよい。
【００８７】
また、波形データＷＤの再生速度を変更する手法は上記実施形態に限られず、他のタイムストレッチアルゴリズムを採用してもよい。例えば、ピッチとは関係の無い所定の時間間隔で切り出した複数のセグメントをクロスフェードして重畳加算するアルゴリズムであってもよい。
【００８８】
また、上記実施形態においては、１つのトラックＴＫに対して３つの発音チャンネルＣＨを割り当て、そのうちの２つの発音チャンネルＣＨにて生成される楽音信号が重畳加算されている。しかし、１つのトラックＴＫに対して、上記実施形態より多くの発音チャンネルＣＨを割り当てておき、より多くの発音チャンネルＣＨにて生成される楽音信号が重畳加算されるように構成してもよい。
【００８９】
また、上記実施形態においては、複数の発音チャンネルＣＨを有する音源回路１６を用いてタイムストレッチ機能を実現している。しかし、ＣＰＵ１２ａ、ＤＳＰなどをタイムストレッチ装置として機能させてもよい。つまり、ＣＰＵ１２ａ、ＤＳＰなどが、ＲＡＭ１２ｃ内に波形データＷＤを読み込み、その波形データＷＤを時間軸方向に伸縮させるプログラムを実行してもよい。このプログラムは、リアルタイムに実行されてもよいし、ノンリアルタイムに実行されてもよい。
【符号の説明】
【００９０】
１０，１０Ａ，１０Ｂ・・・電子楽器、１１・・・入力操作子、１２・・・コンピュータ部、１３・・・表示器、１６・・・音源回路、１７・・・サウンドシステム、ＣＨ・・・発音チャンネル、ＣＴ・・・制御部、Ｃｍｓ・・・マスターサンプルカウンタ、Ｃｐ・・・サンプリング期間カウンタ、Ｃｓｓ・・・スレーブサンプルカウンタ、ＤＢｊ・・・ドローバー、ＦＨ・・・倍音フラグ、ＦＮ・・・ノートオンフラグ、ＦＴ・・・トラックオンフラグ、ＧＲ・・・グレイン、ＫＮ・・・ノートナンバ、ＫＹ・・・鍵盤装置、ＮＮ・・・ノートナンバ、ＯＬＡ・・・重畳加算回路、ＲＶ・・・ロータ速度選択スイッチ、ＳＧ・・・セグメント、ＳＰ・・・発音部、ＴＫ・・・トラック、ＶＬ・・・音量値、ＶＯＬ・・・音量制御回路、ＷＤ・・・波形データ、ＷＭ・・・波形メモリ、θ・・・マスター再生速度倍率、φ・・・スレーブ再生速度倍率、ψ・・・補正倍率
【図１】
0006547522.tif 000002
【図２】
0006547522.tif 000003
【図３】
0006547522.tif 000004
【図４】
0006547522.tif 000005
【図５】
0006547522.tif 000006
【図６】
0006547522.tif 000007
【図７】
0006547522.tif 000008
【図８】
0006547522.tif 000009
【図９】
0006547522.tif 000010
【図１０】
0006547522.tif 000011