(57)【要約】【課題】電子管楽器の操作に応じて音源から出力させる音のピッチを高速に特定すること。【解決手段】オンでなければならない操作子、オフでなければならない操作子、及びそのどちらでも構わない操作子を異なるビットパターンとして示す１対のバイナリデータを収録したテーブルを準備し、各操作子の状態を検出して得たバイナリデータを基にこのテーブルのバイナリデータ対を順次照合していくことにより、音のピッチを一意に特定するようにした。【選択図】図６
2010079315.tif 000002
【特許請求の範囲】
【請求項１】
吹奏者の唇による操作に応じてオンとオフの両状態の間を切り替わる唇操作子と、
各々が吹奏者の手指による操作に応じてオンとオフの両状態の間を切り替わる複数の手指操作子と、
音のピッチを表すピッチデータと、手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第１の記憶手段と、
音のピッチを表すピッチデータと、唇操作子及び手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第２の記憶手段と、
前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを１にすると共にオフ状態になっている操作子に割り当てたビットを０にしたバイナリデータを生成する検出手段と、
前記検出手段により生成されたバイナリデータを成す全ビットのうち手指操作子に割り当てられた一部のビットの配列と一致するバイナリデータが前記第１の記憶手段に記憶されているときはそのバイナリデータと対応付けて当該第１の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる一方で、第１の記憶手段に記憶されていないときは唇操作子に割り当てられたビットを含めた全ビットの配列と一致するバイナリデータと対応付けて前記第２の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御手段
を備えた電子管楽器。
【請求項２】
請求項１に記載の電子管楽器において、
唇操作子がオン状態であるときとオフ状態であるときにそれぞれ出力する音の両ピッチを表す各ピッチデータと、手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない手指操作子に割り当てたビットを１にすると共にオフ状態でなければならない手指操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第３の記憶手段を更に備え、
前記音源制御手段は、
唇操作子に割り当てられたビットを含めた全ビットの配列と一致するバイナリデータが前記第２の記憶手段に記憶されていないときは、前記生成されたバイナリデータを成す全ビットのうち手指操作子に割り当てられた一部のビットの配列と一致するバイナリデータと対応付けて前記第３の記憶手段に記憶されたバイナリデータを読み出し、そのバイナリデータが表す両ピッチのうちから唇操作子の状態に応じて選択した一方のピッチの音を音源から出力させる電子管楽器。
【請求項３】
請求項２に記載の電子管楽器において、
前記検出手段は、
前記唇操作子の状態を定量的に示す状態値を生成する状態値生成手段を有し、
前記音源制御手段は、
前記第３の記憶手段に記憶されたバイナリデータを読み出した後、前記手指操作子に割り当てられた一部のビットの配列の内容に応じて決定付けられる閾値と前記状態値生成手段が生成した状態値とを比較した結果に基づいてそのバイナリデータが表す両ピッチのうちの一方を選択し、選択したピッチの音を音源から出力させる
電子管楽器。
【請求項４】
請求項３に記載の電子管楽器において、
前記第３の記憶手段にてバイナリデータと対応付けられたピッチデータは、１オクターブのピッチ差を有する両ピッチを表す
電子管楽器。
【請求項５】
吹奏者の唇による操作に応じてオンとオフの両状態の間を切り替わる唇操作子と、各々が吹奏者の手指による操作に応じてオンとオフの両状態の間を切り替わる複数の手指操作子と、音のピッチを表すピッチデータと、手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第１の記憶手段と、音のピッチを表すピッチデータと、唇操作子及び手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第２の記憶手段と、前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを１にすると共にオフ状態になっている操作子に割り当てたビットを０にしたバイナリデータを生成する検出手段とを備えた電子管楽器に、
前記検出手段により生成されたバイナリデータを成す全ビットのうち手指操作子に割り当てられた一部のビットの配列と一致するバイナリデータが前記第１の記憶手段に記憶されているときはそのバイナリデータと対応付けて当該第１の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる一方で、第１の記憶手段に記憶されていないときは唇操作子に割り当てられたビットを含めた全ビットの配列と一致するバイナリデータと対応付けて前記第２の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然管楽器の吹奏音を電子的に再現する電子管楽器に関する。
【背景技術】
【０００２】
周知のように、電子管楽器は、自然管楽器を模した唄口と演奏用キーの両操作子を備え、唄口から呼気が吹入されると、演奏用キーの押下の組み合わせである運指に応じてピッチを特定し、そのピッチで唄口への呼気圧に応じた音量の吹奏音を合成して放音するようになっている。
ここで、自然管楽器に特有の奏法の１つにオクターブ切り替えがある。オクターブ切り替えは、フルートのようなオクターブを切替えるための演奏用キーを備えない楽器において、「アンブッシャ」と呼ばれる呼気を吹入する下唇の動きを微妙に変えることによって、運指を固定したまま吹奏音のオクターブ等をコントロールする奏法を意味し、「オーバーブロー」や「リップスラー」などともいう。
特許文献１には、オクターブ切り替えを精緻に検出し得る電子管楽器の開示がある。この文献に開示された電子管楽器は、唄口内に離散的に設置した複数の呼気圧検出センサを通じて呼気の吹入の向きを検出する。そして、検出した向きに応じて現在のオクターブを特定した後、そのオクターブに従ったピッチの楽音信号の出力を音源へ指示するようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−１９９９１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、この種の電子管楽器は、演奏用キーや呼気圧検出センサなどといった各操作子のオンとオフの組み合わせと音源から出力させる音のピッチとを対応付けたテーブルを搭載し、吹奏者の操作により操作子の状態が遷移すると、遷移後の各操作子の状態の組み合わせと一致するピッチをテーブルからサーチしてそのピッチの音を音源から放音させるようになっている。
しかしながら、電子管楽器の演奏用キーの状態の組み合わせのパターンは極めて多く、これにアンブッシャを検出する呼気圧センサの状態を加えるとそのパターンの数は更に膨大なものになる。よって、それらの組み合わせの各々と対応するピッチをテーブルに収録するとデータ量もそれだけ大きくなってしまい、ピッチのサーチに要する時間を高速化しにくくなるという問題があった。
本発明は、このような背景の下に案出されたものであり、電子管楽器の操作に応じて音源から出力させる音のピッチを高速に特定し得るような仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の好適な態様である電子管楽器は、吹奏者の唇による操作に応じてオンとオフの両状態の間を切り替わる唇操作子と、各々が吹奏者の手指による操作に応じてオンとオフの両状態の間を切り替わる複数の手指操作子と、音のピッチを表すピッチデータと、手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第１の記憶手段と、音のピッチを表すピッチデータと、唇操作子及び手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第２の記憶手段と、前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを１にすると共にオフ状態になっている操作子に割り当てたビットを０にしたバイナリデータを生成する検出手段と、前記検出手段により生成されたバイナリデータを成す全ビットのうち手指操作子に割り当てられた一部のビットの配列と一致するバイナリデータが前記第１の記憶手段に記憶されているときはそのバイナリデータと対応付けて当該第１の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる一方で、第１の記憶手段に記憶されていないときは唇操作子に割り当てられたビットを含めた全ビットの配列と一致するバイナリデータと対応付けて前記第２の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御手段とを備える。
【０００６】
この態様において、唇操作子がオン状態であるときとオフ状態であるときにそれぞれ出力する音の両ピッチを表す各ピッチデータと、手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない手指操作子に割り当てたビットを１にすると共にオフ状態でなければならない手指操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第３の記憶手段を更に有し、前記音源制御手段は、唇操作子に割り当てられたビットを含めた全ビットの配列と一致するバイナリデータが前記第２の記憶手段に記憶されていないときは、前記生成されたバイナリデータを成す全ビットのうち手指操作子に割り当てられた一部のビットの配列と一致するバイナリデータと対応付けて前記第３の記憶手段に記憶されたバイナリデータを読み出し、そのバイナリデータが表す両ピッチのうちから唇操作子の状態に応じて選択した一方のピッチの音を音源から出力させるようにしてもよい。
【０００７】
また、前記検出手段は、前記唇操作子の状態を定量的に示す状態値を生成する状態値生成手段を有し、前記音源制御手段は、前記第３の記憶手段に記憶されたバイナリデータを読み出した後、前記手指操作子に割り当てられた一部のビットの配列の内容に応じて決定付けられる閾値と前記状態値生成手段が生成した状態値とを比較した結果に基づいてそのバイナリデータが表す両ピッチのうちの一方を選択し、選択したピッチの音を音源から出力させるようにしてもよい。
【０００８】
また、前記第３の記憶手段にてバイナリデータと対応付けられたピッチデータは、１オクターブのピッチ差を有する両ピッチを表すようにしてもよい。
【０００９】
本発明の別の好適な態様であるプログラムは、吹奏者の唇による操作に応じてオンとオフの両状態の間を切り替わる唇操作子と、各々が吹奏者の手指による操作に応じてオンとオフの両状態の間を切り替わる複数の手指操作子と、音のピッチを表すピッチデータと、手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第１の記憶手段と、音のピッチを表すピッチデータと、唇操作子及び手指操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータであって、オン状態でなければならない操作子に割り当てたビットを１にすると共にオフ状態でなければならない操作子に割り当てたビットを０にしたバイナリデータとを対応付けて記憶した第２の記憶手段と、前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを１にすると共にオフ状態になっている操作子に割り当てたビットを０にしたバイナリデータを生成する検出手段とを備えた電子管楽器に、前記検出手段により生成されたバイナリデータを成す全ビットのうち手指操作子に割り当てられた一部のビットの配列と一致するバイナリデータが前記第１の記憶手段に記憶されているときはそのバイナリデータと対応付けて当該第１の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる一方で、第１の記憶手段に記憶されていないときは唇操作子に割り当てられたビットを含めた全ビットの配列と一致するバイナリデータと対応付けて前記第２の記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御機能を実現させる。
【発明の効果】
【００１０】
本発明によると、電子管楽器の操作に応じて音源から出力させる音のピッチを高速に特定することができる。
【図面の簡単な説明】
【００１１】
【図１】電子フルートの外観を示す図である。
【図２】リッププレートの構成図である。
【図３】メンブレンスイッチの構成図である。
【図４】接触圧検出部の駆動原理について説明する。
【図５】電子フルートの電気的構成を示す図である（第１実施形態）。
【図６】運指テーブルを示す図である（第１実施形態）。
【図７】運指表を示す図である。
【図８】実施形態の処理を示す図である（第１実施形態）。
【図９】ピッチデータ読み出し処理を示す図である（第１実施形態）。
【図１０】電子フルートの電気的構成を示す図である（第２実施形態）。
【図１１】運指テーブルを示す図である（第２実施形態）。
【図１２】ピッチデータ読み出し処理を示す図である（第２実施形態）。
【図１３】ピッチデータ読み出し処理の詳細を示す図である（第２実施形態）。
【発明を実施するための形態】
【００１２】
（第１実施形態）
本願発明の第１実施形態について説明する。
本実施形態は、以下の２つの特徴を有する。
１つ目の特徴は、電子フルートの各操作子のオンとオフの状態の組み合わせをそれらの操作子の各々に１ビットずつを個別に割り当てたビット列からなるバイナリデータとして取り扱うこととした点である。
２つ目の特徴は、音源から出力させ得る音の各ピッチと、それらの各ピッチの音を出力するためにオンでなければならない操作子、オフでなければならない操作子、及びそのどちらでも構わない操作子を異なるビットパターンとして示すバイナリデータ対とを対応付けたテーブルを準備し、吹奏者により操作される各操作子の状態を個別に検出して得たバイナリデータとこのテーブルのバイナリデータの各対とを所定のアルゴリズムに従って順次照合していくことにより、音のピッチを一意に特定するようにした点である。
【００１３】
図１は、本実施形態にかかる電子フルート１の外観を示す図である。図に示すように、この電子フルート１の筐体は、頭管部１０、主管部２０、及び足管部３０から成る。そして、主管部２０と足管部３０には吹奏者の手指による操作をそれぞれ受け付ける操作子である１５個の演奏用キー４０が設けられ、頭管部１０には口唇による操作を受け付ける操作子であるリッププレート５０が設けられている。つまり、この電子フルート１は、手指により操作される１５個の演奏用キー４０と口唇により操作される１個のリッププレート５０の合計１６個の操作子を有している。また、リッププレート５０には、唄口５１と接触圧検出部７０が設けられている。
【００１４】
図２はリッププレート５０の構成の詳細を示す断面図である。図に示すように、唄口５１の手前側のベース部には断面が略Ｌ字状の窪部が形成されおり、アクチエータ７１、発泡ゴム７２、及びメンブレンスイッチ７３からなる接触圧検出部７０が収容されている。
メンブレンスイッチ７３は、図３に示すように、各々の表面に電極を有する上側電極シート７３ａと下側電極シート７３ｂを、互いの表面同士がメンブレンスペーサ７３ｃと感圧導電性ゴム７３ｄを挟み込むように重ね合わせてなる。そして、下側電極シート７３ｂの裏面は窪部の長手面に接着されている。
【００１５】
図２において、アクチエータ７１は、上面から下面にかけて先細るテーパ形状を成す部材であり、その上面の後端は窪部の短手面の上端に対して上下方向に揺動自在に連結されている。また、このアクチエータ７１の上面の前端は上側にやや切り立って略一直線状の突起部７４を形成しており、下面には略直方体状の発泡ゴム７２が貼り付けられている。このアクチエータ７１は、吹奏者の下唇から受けた接触力を自身の揺動を通じてメンブレンスイッチ７３に伝達する。
【００１６】
図４（ａ）及び（ｂ）を参照し、接触圧検出部７０の駆動原理について説明する。
図４（ａ）に示すように、電子フルート１を吹奏する吹奏者は、自らの下唇をアクチエータ７１の突起部７４に接触させて唄口５１へ息を吹入する。周知のように、感圧導電性ゴム７３ｄは、圧縮すればするほどその圧縮方向の電気抵抗が小さくなるという性質を有している。アクチエータ７１とリッププレート５０の連結部位は弱い力で上方向に付勢されているので、アクチエータ７１の突起部７４に吹奏者の下唇が接触していなかったり或いは比較的弱い力で接触している状態では、感圧導電性ゴム７３ｄの電気抵抗が無限大となって上側電極シート７３ａと下側電極シート７３ｂの両接点間の電圧が最大になる。そして、吹奏者がピッチをオクターブアップさせるオクターブ切り替えを行う際は、図４（ｂ）に示すように自らの下唇でアクチエータ７１を強く押し下げるため、感圧導電性ゴム７３ｄの電気抵抗が徐々に低くなって両接点間の電圧が低下する。よって、感圧導電性ゴム７３ｄの両接点間に印加される電圧に応じて割り出される接触圧の閾値を好適に設定しておき、接触圧が閾値を跨いで遷移したか否かを参照すれば、オクターブ切り替えのタイミングを精緻に特定することができる。
【００１７】
図５は、電子フルート１の電気的構成を示す図である。なお、図において、筐体上に備え付けられた要素は図１等を参照して既に説明したところであるから同一の符号を付して再度の説明を割愛する。この電子フルート１は、メンブレンスイッチ７３の他に、ブレスセンサ９１、キーセンサ９２、アナログ／デジタル（以下、「Ａ／Ｄ」と呼ぶ）変換部９３、ＣＰＵ９４、ＲＡＭ９５、ＲＯＭ９６、音源９７、及びサウンドシステム９８を備える。
【００１８】
図に示す各部の機能を概説すると、まず、ブレスセンサ９１は、頭管部１０のリッププレート５０に設けられた唄口５１に吹き入れられる呼気の呼気圧を検出し、検出した圧力値を示す信号をＡ／Ｄ変換部９３へ供給する。
キーセンサ９２は、主管部２０から足管部３０にかけて設けられた各演奏用キー４０の押下量を個別に検出し、検出した各キー毎の押下量を示す信号をＡ／Ｄ変換部９３へ供給する。
【００１９】
Ａ／Ｄ変換部９３は、ブレスセンサ９１から供給される信号をＡ／Ｄ変換し、呼気圧データとしてＣＰＵ９４に供給すると共に、キーセンサ９２から供給される信号をＡ／Ｄ変換し、各演奏用キー４０毎の押下量データとしてＣＰＵ９４に供給する。また、このＡ／Ｄ変換部９３は、メンブレンスイッチ７３の上側電極シート７３ａと下側電極シート７３ｂの両電極間に印加されている電圧値をＡ／Ｄ変換し、接触圧データとしてＣＰＵ９４に供給する。
【００２０】
音源９７は、周知のＭＩＤＩ(Musical Instruments Digital Interface)音源９７であ
り、ＣＰＵ９４から自らに供給される各種ＭＩＤＩメッセージに従って合成した楽音信号をサウンドシステム９８へ出力し、及びその出力を停止する。サウンドシステム９８は楽音信号に応じた音を放音する。
ＲＯＭ９６は、運指テーブル９６ａと音源制御プログラム９６ｅを記憶する。
【００２１】
図６は、運指テーブル９６ａを示す図である。図に示すように、このテーブル９６ａを構成するレコードの各々は、「Ｎｏ．」、「音名」、「不問運指」、「必須運指」の４つのフィールドを有する。
「Ｎｏ．」のフィールドには、ＭＩＤＩのキーコードを識別する番号が記憶される。「音名」のフィールドには、ピッチデータが記憶される。ピッチデータは、ピッチの高さを英語音名により表したデータである。
【００２２】
「不問運指」のフィールドには、不問運指バイナリデータを記憶する。不問運指バイナリデータは、１６個の操作子の各々に１ビットずつを個別に割り当てた１６桁のビット列であって、オンとオフの何れの状態でも構わない操作子のビットを０にして残りのビットを１にしたビット列を表すデータである。
「必須運指」のフィールドには、必須運指バイナリデータを記憶する。必須運指バイナリデータは、１６個の操作子の各々に１ビットずつを個別に割り当てた１６桁のビット列であって、オン状態でなければならない操作子のビットを１にして残りのビットを０にしたビット列を表すデータである。
【００２３】
なお、図６の「不問運指」と「必須運指」の各々のフィールドは、ビット列を見やすくするために上位８桁と下位８桁の間に便宜上の仕切り線を記してある。
また、図に示すように、このテーブルの各レコードは、「音名」のフィールドに記憶されたピッチデータが示すピッチが高いものから順にソートされている。
【００２４】
ここで、各レコードの「不問運指」と「必須運指」のフィールドにそれぞれ記憶されるべき両バイナリデータの取得手順について説明しておく。これらの両データは、アコースティックなフルートの音響特性を基に作成した運指表から得られる。
図７は、運指表を示す図である。この運指表の列は、筐体の１６個の操作子の各々を一意に識別すべく作成者により割り振られた１６進数の符号（０乃至ｆ）と対応する。具体的には、主管部２０と足管部３０に設けられた１５個の演奏用キー４０のうち頭管部１０に最も近い演奏用キー４０から最も遠いものに向かって順に「０、１、２、３、・・・ｅ」の各符号が割り振られ、頭管部１０のリッププレート５０に「ｆ」の符号が割り振られている。一方、運指表の行は、アコースティックなフルートにより鳴らすことができる音のピッチを示す各音名と対応する。
【００２５】
そして、運指表の各行における０乃至ｅの記号の各々と対応するます目には、「１」と「０」に「×」を加えた３つのうちいずれかの文字が記される。「１」の文字は、該当の音名のピッチの音を鳴らすためにオンの状態でなければならない操作子であることを、「０」の文字はオフの状態でなければならない操作子であることを、「×」の文字はオンとオフのいずれの状態でも構わない操作子であることをそれぞれ表している。
【００２６】
例えば、図の音名「Ｆ６」の行のます目には、左から順番に「０００１００Ｘ００１１０ＸＸＸ１」と文字を並べた文字列が記されている。これは、「３」、「９」、「ａ」、「ｆ」の符号を割り振った操作子がオンの状態となっており、「０」、「１」、「２」、「４」、「５」、「７」、「８」、「ｂ」の符号を割り振った操作子がオフになってさえいれば、残りの、「６」、「ｃ」、「ｄ」、「ｅ」の符号を割り振った操作子がオンであるかオフであるかにかかわらず「Ｆ６」のピッチの音が鳴ること、つまり、「６」、「ｃ」、「ｄ」、「ｅ」の符号を割り振った操作子を不問とする運指であることを示している。
【００２７】
また、図の音名「Ｅ♭５」の行のます目には、「００００００Ｘ０１０１０ＸＸＸ１」の文字列が記されており、その下の１オクターブ低い音名「Ｅ♭４」の行のます目には、「ｆ」の符号を割り振った操作子であるリッププレート５０のビットだけを反転させた「００００００Ｘ０１０１０ＸＸＸ０」の文字列が記されている。これは、これらの両運指がいわゆるオクターブ切り替え運指の関係にあり、演奏用キー４０の状態を固定したままリッププレート５０のアクチエータへの下唇の接触圧を変化させるだけでオクターブが上げ下げできることを示している。
【００２８】
このような意味合いを持つ、「１」、「０」、「×」の３値の組み合わせよりなる文字列が全ての音名について記された運指表を基に、同じ意味合いを「０」と「１」の２値によって表した不問運指バイナリデータと必須運指バイナリデータのセットを作成する。上述したように、不問運指バイナリデータは、オンとオフの何れの状態でもよい操作子のビットを０にして残りのビットを１にしたビット列を表すデータであり、また、必須運指データは、オンでなければならない操作子のビットを１にして残りのビットを０にしたビット列を表すデータである。よって、例えば、図７の音名「Ｆ６」の行のます目に記された「０００１００Ｘ００１１０ＸＸＸ１」の文字列からは、「Ｘ」を「０」に変換すると共に「０」を「１」に変換した「１１１１１１０１１１１１０００１」の不問運指バイナリデータと、「Ｘ」を「０」に変換した「０００１０００００１１００００１」の必須運指バイナリデータとが取得されることになる。
【００２９】
図５において、音源制御プログラム９６ｅは、本実施形態に特徴的な機能をＣＰＵ９４に付与するプログラムである。このプログラム９６ｅを実行するＣＰＵ９４は、呼気圧データを記憶する領域（以下、「呼気圧データ記憶領域」と呼ぶ）、押下量データを記憶する領域（以下、「押下量データ記憶領域」と呼ぶ）、接触圧データを記憶する領域（以下、「接触圧データ記憶領域」と呼ぶ）をＲＡＭ９５に確保し、それらの領域のデータをＡ／Ｄ変換部９３から供給される各種データで順次書き換えながら本実施形態に特徴的な処理を行う。処理の内容については後に詳述する。
【００３０】
図８は、本実施形態の処理を示すフローチャートである。
図に示す一連の処理は、図示しないシステムクロックにより発生されるクロック信号と同期して順次実行されるものである。
図において、ＣＰＵ９４は、呼気圧データ記憶領域に記憶されている呼気圧データが予め設定された呼気圧閾値を上回ったか否か判断する（Ｓ１００）
ステップ１００にて、呼気圧データが呼気圧閾値を上回ったと判断したＣＰＵ９４は、押下量データ記憶領域に記憶された押下量データと接触圧データ記憶領域に記憶された接触圧データとに応じて特定されるピッチデータを運指テーブル９６ａから読み出す（Ｓ１１０）。このステップ１１０は本実施形態に特徴的なものであり、その詳細は図９を参照して後述する。
【００３１】
ピッチデータを読み出したＣＰＵ９４は、そのピッチデータが表すピッチでの発音を指示するノートオンメッセージを音源９７に供給する（Ｓ１３０）。具体的には、ノートオンメッセージであることを記したステータスバイトと、ステップ１１０で読み出したピッチデータと対応するキーコードを記したデータバイトとを含むＭＩＤＩメッセージを音源９７へ供給する。メッセージの供給を受けた音源９７は、そのメッセージに応じて合成した楽音信号のサウンドシステム９８への出力を開始する。これにより、ノートオンメッセージが指定するピッチの楽音がサウンドシステム９８から放音される。
続いて、ＣＰＵ９４は、呼気圧データ記憶領域に記憶されている呼気圧データが呼気圧閾値を下回ったか否か判断する（Ｓ１４０）。
【００３２】
ステップ１４０にて呼気圧データが呼気圧閾値を下回ったと判断したとき、ＣＰＵ９４は、消音を指示するノートオフメッセージを音源９７に供給する（Ｓ１５０）。具体的には、ノートオフメッセージであることを記したステータスバイトを含むＭＩＤＩメッセージを音源９７へ供給する。メッセージの供給を受けた音源９７は、サウンドシステム９８への楽音信号の出力を停止する。これにより、サウンドシステム９８による放音が停止されてステップ１００に戻り、呼気圧データが表す圧力値が呼気圧閾値を再び上回ると、以降の処理が繰り返される。
ステップ１４０にて呼気圧データが呼気圧閾値を下回っていないと判断したとき、ＣＰＵ９４は、ノートオフメッセージの供給を行わず楽音信号を出力させたまま次のステップへ進む。
【００３３】
続いて、ＣＰＵ９４は、押下量データ記憶領域の記憶内容がＡ／Ｄ変換部９３から新たに供給された押下量データにより書き換えられているか否か判断する（Ｓ１６０）。吹奏者が自身の運指を変更すればこのステップの判断結果は「Ｙｅｓ」となり、変更しなければこのステップの判断結果は「Ｎｏ」ということになる。
ステップ１６０にて押下量データ記憶領域の記憶内容が書き換えられていると判断したときは、ステップ１１０に戻って変更後の運指と対応する別のピッチデータを読み出し、続くステップ１３０でそのピッチデータが示すピッチでの発音を指示するノートオンメッセージを音源９７へ供給する。一方、押下量データ記憶領域の記憶領域が書き換えられていないと判断したときは、そのまま次のステップへ進む。
【００３４】
続いて、ＣＰＵ９４は、接触圧データ記憶領域の接触圧データが予め設定された接触圧閾値を跨いで遷移したか否か判断する（Ｓ１７０）。吹奏者が運指を固定したままリッププレートへの下唇の接触力を変化させればこのステップの判断結果は「Ｙｅｓ」となり、変化させなければこのステップの判断結果は「Ｎｏ」ということになる。
ステップ１７０にて接触圧データが接触圧閾値を跨いで変化したと判断しときは、ステップ１１０に戻って１オクターブのピッチ差を有する別のピッチデータを読み出し、続くステップ１３０でそのピッチデータが示すピッチでの発音を指示するノートオンメッセージを音源９７へ供給する。一方、接触圧閾値を跨いで変化していなければステップ１４０へ戻る。
【００３５】
図９は、ステップ１１０のピッチデータ読み出し処理の詳細を示すフローチャートである。
図８のステップ１００にて、呼気圧データが呼気圧閾値を上回ったと判断したＣＰＵ９４は、押下量データ記憶領域に記憶された各押下量データと接触圧データ記憶領域に記憶された接触圧データとを基に現在の運指を示すバイナリデータを生成する（Ｓ１１１）。具体的には、以下の手順で生成を行う。まず、押下量データ記憶領域に記憶されている１５個の押下量データを、演奏用キー４０のオンとオフの両状態を分かつべく予め設定された押下量閾値と順次比較し、押下量データが押下量閾値を上回ると「１」のビット、下回ると「０」のビットを出力していくことによって１５桁のビットを生成する。なお、各押下量データと押下量閾値の比較は、運指表における「０乃至ｅ」の各符号の割り振りと同じ順序、つまり、頭管部１０に最も近い演奏用キー４０の押下量データから順に行う。続いて、接触圧データ記憶領域に記憶されている接触圧データをリッププレート５０のオンとオフの両状態を分かつべく予め設定された接触圧閾値と比較し、接触圧データが接触圧閾値を上回ると「１」のビット、下回ると「０」のビットを出力し、出力したビットを上述した１５桁のビットの末尾に加える。これにより、オン状態になっている操作子に割り当てたビットを１にすると共にオフ状態になっている操作子に割り当てたビットを０にした１６桁のバイナリデータが生成されることになる。
【００３６】
続いて、ＣＰＵ９４は、運指テーブル９６ａの先頭のレコードを特定する（Ｓ１１２）。
ＣＰＵ９４は、特定したレコードの「不問運指」のフィールドに記憶された不問運指バイナリデータとステップ１１１で生成したバイナリデータの論理積を演算する（Ｓ１１３）。
ＣＰＵ９４は、ステップ１１３における論理積の演算結果とステップ１１２で特定したレコードの「必須運指」のフィールドに記憶された必須運指バイナリデータとが一致するか否か判断する（Ｓ１１４）。
【００３７】
ステップ１１４にて両者が一致しないと判断したとき、ＣＰＵ９４は、参照対象となるレコードを昇順に１つ進めた後（Ｓ１１５）、ステップ１１３に戻って以降の処理を繰り返す。
ステップ１１４で両者が一致すると判断したとき、ＣＰＵ９４は、現在特定しているレコードの「音名」のフィールドに記憶されたピッチデータを音源９７から出力させる音のピッチを示すピッチデータとして読み出す（Ｓ１１６）。
【００３８】
以上説明した実施形態では、オンとオフの何れの状態でも構わない操作子に割り当てたビットを０にして残りのビットを１にした不問運指バイナリデータと、オンの状態でなければならないビットを１にして残りのビットを０にした必須運指バイナリデータとからなる各バイナリデータ対をピッチデータと対応付けて運指テーブル９６ａに収録しておき、現在の運指を表すバイナリデータが得られると、そのバイナリデータと不問運指バイナリデータの論理積をまず演算し、その演算結果として得られる新たなバイナリデータと必須運指バイナリデータの一致の有無により、音源から出力させる音のピッチデータをサーチするようになっている。よって、不問の操作子をも含めたすべての組み合わせを収録するよりも運指テーブル９６ａのデータ量を小さくすることができ、また、ピッチデータのサーチに要する時間自体もより高速化することができる。
【００３９】
（第２実施形態）
本願発明の第２実施形態について説明する。
本実施形態は、第１実施形態において１つであった運指テーブルを、リッププレート５０がオンとオフのどちらの状態でも同じピッチの音が鳴る運指のバイナリデータ対を取り纏めた第１運指テーブル、リッププレート５０がオンの状態のときだけあるピッチの音が鳴る運指のバイナリデータ対を取り纏めた第２運指テーブル、及びリッププレート５０がオンの状態のときとオフの状態のときとで１オクターブのピッチ差を有する別の音が鳴る運指のバイナリデータ対を取り纏めた第３運指テーブルの３つに分割し、第１、第２、第３の順番でテーブルを参照して行くことにより、ピッチデータをより高速にサーチできるようにした。
更に、本実施形態は、リッププレート５０のオン又はオフの状態を検出すべく接触圧データと比較する接触圧閾値を予め設定しておいた所定の閾値幅（以下、この幅を「接触圧閾値幅」と呼ぶ）の中で変化させることにより、アコースティックなフルートにより近い感度でオクターブ切り替えのタイミングを特定できるようにした。
【００４０】
図１０は、本実施形態にかかる電子フルート１の電気的構成を示す図である。図に示すように、本実施形態では、第１実施形態において１つであった運指テーブル９６ａを、これを分割して得た、第１運指テーブル９６ｂ、第２運指テーブル９６ｃ、及び第３運指テーブル９６ｄの３つのテーブルと置き換えている。
図１１は、第１乃至第３運指テーブルを示す図であり、（ａ）が第１運指テーブル９６ｂを、（ｂ）が第２運指テーブル９６ｃを、（ｃ）が第３運指テーブル９６ｄのデータ内容をそれぞれ示している。図に示すように、第１乃至第３運指テーブルの編成自体は図６に示したところと同様であり、テーブルを構成する各レコードの各々が、「Ｎｏ．」、「音名」、「不問運指」、「必須運指」の４つのフィールドを有している。
【００４１】
各テーブルの違いを具体的に説明すると、まず、第１運指テーブル９６ｂは、図７の運指表に記された、「１」、「０」、「Ｘ」の３値よりなる各文字列のうち、リッププレート５０の状態がオンでもオフでも同じ高さのピッチの音が鳴る運指の文字列から得たバイナリデータ対だけを取り纏めてなる。よって、このテーブルの各レコードの「不問運指」のフィールドには、１６桁目のビット（リッププレート５０に割り当てられた記号「ｆ」と対応するビット）を「０」にした不問運指バイナリデータが記憶されることになる。なお、図に示すように第１運指テーブル９６ｂはＬ個のレコードを有していることから、リッププレート５０の状態がオンでもオフでも同じピッチの音が鳴る運指のパターンもＬ種類あることが分かる。
【００４２】
第２運指テーブル９６ｃは、図７の運指表に記された各記号列のうち、リッププレート５０の状態がオンのときだけ音が鳴る運指の文字列から得たバイナリデータ対だけを取り纏めてなる。よって、このテーブルの各レコードの「必須運指」のフィールドには、１６桁目のビットを「１」にした必須運指バイナリデータが記憶されることになる。なお、図に示すようにこの第２運指テーブル９６ｃはＭ個のレコードを有していることから、リッププレート５０の状態がオンのときだけ音が鳴る運指のパターンもＭ種類あることが分かる。
【００４３】
第３運指テーブル９６ｄは、図７の運指表に記された各文字列のうち、リッププレート５０の状態がオンかオフかに応じてオクターブ差を有する別の音が鳴る運指の文字列から得たバイナリデータ対だけを取り纏めてなる。よって、このテーブルの各レコードの「音名」のフィールドには、「Ｅ♭４，Ｅ♭５」といったように１オクターブのピッチ差を有するピッチデータの対が記憶され、また、「不問運指」と「必須運指」のフィールドには、上位１５桁のビット（演奏用キー４０に割り当てられた記号「０乃至ｅ」と対応するビット）のみからなるバイナリデータ対が記憶される。なお、図に示すようにこの第３テーブルはＮ個のレコードを有していることから、リッププレート５０の状態がオンかオフかに応じてオクターブ差を有する別の音が鳴る運指のパターンもＮ種類あることが分かる。また、第１実施形態の運指テーブル９６ａにおいては、このようないわゆるオクターブ切替運指の各々のバイナリデータ対を別レコードとして記憶していたが、本実施形態における第３運指テーブル９６ｄはこれを１つのレコードとして記憶するので、テーブル全体としてのデータ量は第１実施形態よりも更に小さくなる。
【００４４】
第１実施形態と同様に、第１乃至第３テーブルの各レコードは、「音名」のフィールドに記憶されたビッチデータが示すピッチが高いものから順番にソートされている。
【００４５】
次に、本実施形態の処理を説明する。
本実施形態においては、ピッチデータ読み出し処理の内容が図９に示したところと異なる。
図１２は、ピッチデータ読み出し処理の詳細を示すフローチャートである。
図８のステップ１００にて、呼気圧データが呼気圧閾値を上回ったと判断したＣＰＵ９４は、押下量データ記憶領域に記憶されている１５個の押下量データと押下量閾値とを順次比較し、それらの比較の結果を示す１５桁のビット列を生成する（Ｓ１１７）。具体的には、押下量データ記憶領域に記憶されている１５個の押下量データを運指表における「０乃至ｅ」の各符号の割り振りと同じ順序で順次比較し、押下量データが押下量閾値を上回ると「１」のビット、下回ると「０」のビットを出力していくことによって１５桁のビット列を生成する。
【００４６】
続いて、ＣＰＵ９４は、接触圧データ記憶領域に記憶されている接触圧データと接触圧閾値幅の上限値とを比較し、その比較の結果を示す１桁のビットを生成する（Ｓ１１８）。
ＣＰＵ９４は、ステップ１１７で生成した１５桁のビット列の末尾にステップ１１８で生成したビットを連結させることにより、現在の運指を表す１６桁のバイナリデータを生成する（Ｓ１１９）。
【００４７】
ＣＰＵ９４は、ステップ１１９で生成したバイナリデータを基に第１運指テーブル９６ｂをサーチする（Ｓ１２０）。このステップのサーチは、図９のステップ１１２乃至ステップ１１４に示したところと同様の手順で実行される。つまり、参照対象となるレコードを１つずつ進めながら、ステップ１１９で生成したバイナリデータと不問運指バイナリデータの論理積の演算結果と必須運指バイナリデータとが一致するか否かを順次照合していくのである。上述したように、第１運指テーブル９６ｂはＬ個のレコードを有しているので、ステップ１１２乃至１１４のループをＬ回繰り返しても一致する必須運指バイナリデータが見つからなかったときはサーチ失敗となる。
【００４８】
ステップ１２０において、論理積の演算結果と一致する必須運指バイナリデータのサーチに成功したときは、ステップ１２４に進み、第１運指テーブル９６ｂにてその必須運指バイナリデータと対応付けられているピッチデータを読み出す。
一方、ステップ１２０においてサーチに失敗したとき、ＣＰＵ９４は、ステップ１１９で生成したバイナリデータを基に第２運指テーブル９６ｃをサーチする（Ｓ１２１）。このステップのサーチも図９のステップ１１１乃至ステップ１１４に示したところと同様の手順で実行される。上述したように、第２運指テーブル９６ｃはＭ個のレコードを有しているので、ステップ１１２乃至ステップ１１４のループをＭ回繰り返しても一致する必須運指バイナリデータが見つからなかったときはサーチ失敗となる。
【００４９】
ステップ１３０においてサーチに失敗したとき、ＣＰＵ９４は、ステップ１１９で生成したバイナリデータを基に第３運指テーブル９６ｄをサーチする（Ｓ１２２）。このステップのサーチの手順は図９のステップ１１２乃至ステップ１１４と一部異なるため、図１３を参照して詳述する。
図１３において、ＣＰＵ９４は、第３運指テーブル９６ｄの先頭のレコードを特定する（Ｓ１１２１）。
【００５０】
続いて、ＣＰＵ９４は、ステップ１１２１で特定したレコードの「不問運指」のフィールドに記憶された不問運指バイナリデータとステップ１１７で生成しておいた１５桁のビット列の論理積を演算する（Ｓ１１２２）。
ＣＰＵ９４は、ステップ１１２２における論理積の演算結果とステップ１１２１で特定したレコードの「必須運指」のフィールドに記憶された必須運指バイナリデータとが一致するか否か判断する（Ｓ１１２３）。
【００５１】
ステップ１１２３にて両者が一致しないと判断したとき、ＣＰＵ９４は、参照対象となっていないレコードが残っていれば、参照対象のレコードを昇順に１つ進めた後（Ｓ１１２４）、ステップ１１２２に戻って以降の処理を繰り返す。上述したように、第３運指テーブル９６ｄはＮ個のレコードを有しているので、ステップ１１２２乃至ステップ１１２４のループをＮ回繰り返しても一致する必須運指バイナリデータが見つからなかったときはサーチ失敗となる。
【００５２】
一方、ステップ１１２３で両者が一致していると判断したとき、ＣＰＵ９４は、現在特定しているレコードが第３運指テーブル９６ｄの先頭のレコードから何番目かをカウントする（Ｓ１１２５）。
続いて、ＣＰＵ９４は、接触圧閾値幅の上限値と下限値の間のスケールにステップ１１２５で得たカウント値を照らし合わせた相対値を線形補間により求める（Ｓ１１２６）。具体的には、接触圧閾値幅の上限値と下限値の間の差分をＭ等分した値とステップ１１２５で求めたカウント値の積を求め、その求めた積と下限値の和を相対値とする。よって、現在特定しているレコードが先頭のレコードに近いほど、言い換えればピッチが高いほど接触圧閾値の上限値に近い相対値が求まり、末端のレコードに近いほど下限値に近い相対値が求まることになる。
【００５３】
続いて、ＣＰＵ９４は、接触圧データ記憶領域に記憶されている接触圧データとステップ１１２６で求めた接触圧閾値の相対値とを比較する（Ｓ１１２７）。
ステップ１１２７の比較を行った結果、接触圧データの方が接触圧閾値の相対値よりも大きかったとき、ＣＰＵ９４は、現在特定しているレコードの「音名」のフィールドに記憶されている両ピッチデータのうち高いオクターブの方のピッチデータを選択する（Ｓ１１２８）。一方、接触圧データの方が接触圧閾値の相対値よりも小さかったとき、ＣＰＵ９４は、現在特定しているレコードの「音名」のフィールドに記憶されている両ピッチデータのうち低いオクターブの方のピッチデータを選択する（Ｓ１１２９）。
【００５４】
ステップ１１２８又はステップ１１２９でいずれか一方のピッチデータが選択されると、図１２のステップ１２４に進んでその一方のピッチデータが読み出される。
図１２において、第３運指テーブル９６ｄのサーチが失敗すると、ステップ１１７に戻り、直前のクロックタイミングで書き換えられた押下量データ記憶領域及び接触圧データ記憶領域の記憶内容を基に以降の処理が再び繰り返される。
【００５５】
以上説明した本実施形態では、第１乃至第３運指テーブルを設け、第１運指テーブルから順次参照していくので、音源から出力させる音のピッチのサーチに要する時間をより高速化することができる。また、第３運指テーブルを参照する際は、リッププレート５０のオン又はオフの状態を検出するための接触圧閾値を予め設定しておいた接触圧閾値幅の上限値から下限値までの所定の閾値幅の中で変化させるので、アコースティックなフルートにより近い感度でオクターブ切り替えのタイミングを特定することができる。
【００５６】
（他の実施形態）
本願発明は、種々の変形実施が可能である。
上記実施形態において、不問運指バイナリデータは、オンとオフの何れの状態でも構わない操作子のビットを０にして残りのビットを１にしており、また、必須運指バイナリデータは、オンでなければならない操作子のビットを１にして残りのビットを０にしていたが、不問運指バイナリデータのビットを反転させたものを運指テーブルに収録してもよい。この変形例の場合、吹奏者の操作に応じて生成される現在の運指のバイナリデータの否定と不問運指バイナリデータの論理積が演算され、その演算結果と必須運指バイナリデータとが照合されることになる。
上記実施形態においては、吹奏者の下唇のリッププレートへの接触圧を基にオクターブアップの有無を検出していたが、唄口と唇の距離などの他の物理量を基にオクターブアップの有無の検出を行ってもよい。
第２実施形態では、第１乃至第３の３つの運指テーブルを準備し、それらを第１運指テーブルから順次参照していくことによって音のピッチを特定していた。これに対し、第２運指テーブルと第３運指テーブルを１つに纏めてもよい。つまり、リッププレートの状態が鳴る音に影響しない運指のバイナリデータ対を取り纏めた運指テーブルと、リッププレートの状態が鳴る音に影響する運指のバイナリデータ対を取り纏めた運指テーブルの２つに分割するのである。この変形例であっても、前者の運指テーブルから参照するようにするようにすれば、ピッチのサーチを高速化できる。
【符号の説明】
【００５７】
１…電子フルート、１０…頭管部、２０…主管部、３０…足管部、４０…演奏用キー、５０…リッププレート、５１…唄口、７０…接触圧検出部、７１…アクチエータ、７２…発泡ゴム、７３…メンブレンスイッチ、７４…突起部、９１…ブレスセンサ、９２…キーセンサ、９３…Ａ／Ｄ変換部、９４…ＣＰＵ、９５…ＲＡＭ、９６…ＲＯＭ、９７…音源、９８…サウンドシステム
【図１】
2010079315.tif 000003
【図２】
2010079315.tif 000004
【図３】
2010079315.tif 000005
【図４】
2010079315.tif 000006
【図５】
2010079315.tif 000007
【図６】
2010079315.tif 000008
【図７】
2010079315.tif 000009
【図８】
2010079315.tif 000010
【図９】
2010079315.tif 000011
【図１０】
2010079315.tif 000012
【図１１】
2010079315.tif 000013
【図１２】
2010079315.tif 000014
【図１３】
2010079315.tif 000015