JP4466576B2 - 電子管楽器及びそのプログラム - Google Patents

電子管楽器及びそのプログラム Download PDF

Info

Publication number
JP4466576B2
JP4466576B2 JP2006020704A JP2006020704A JP4466576B2 JP 4466576 B2 JP4466576 B2 JP 4466576B2 JP 2006020704 A JP2006020704 A JP 2006020704A JP 2006020704 A JP2006020704 A JP 2006020704A JP 4466576 B2 JP4466576 B2 JP 4466576B2
Authority
JP
Japan
Prior art keywords
binary data
state
pitch
data
operator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006020704A
Other languages
English (en)
Other versions
JP2007199604A (ja
Inventor
孝一郎 柴田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2006020704A priority Critical patent/JP4466576B2/ja
Publication of JP2007199604A publication Critical patent/JP2007199604A/ja
Application granted granted Critical
Publication of JP4466576B2 publication Critical patent/JP4466576B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、自然管楽器の吹奏音を電子的に再現する電子管楽器に関する。
周知のように、電子管楽器は、自然管楽器を模した唄口と演奏用キーの両操作子を備え、唄口から呼気が吹入されると、演奏用キーの押下の組み合わせである運指に応じてピッチを特定し、そのピッチで唄口への呼気圧に応じた音量の吹奏音を合成して放音するようになっている。
ここで、自然管楽器に特有の奏法の1つにオクターブ切り替えがある。オクターブ切り替えは、フルートのようなオクターブを切替えるための演奏用キーを備えない楽器において、「アンブッシャ」と呼ばれる呼気を吹入する下唇の動きを微妙に変えることによって、運指を固定したまま吹奏音のオクターブ等をコントロールする奏法を意味し、「オーバーブロー」や「リップスラー」などともいう。
特許文献1には、オクターブ切り替えを精緻に検出し得る電子管楽器の開示がある。この文献に開示された電子管楽器は、唄口内に離散的に設置した複数の呼気圧検出センサを通じて呼気の吹入の向きを検出する。そして、検出した向きに応じて現在のオクターブを特定した後、そのオクターブに従ったピッチの楽音信号の出力を音源へ指示するようになっている。
特開平07−199919号公報
ところで、この種の電子管楽器は、演奏用キーや呼気圧検出センサなどといった各操作子のオンとオフの組み合わせと音源から出力させる音のピッチとを対応付けたテーブルを搭載し、吹奏者の操作により操作子の状態が遷移すると、遷移後の各操作子の状態の組み合わせと一致するピッチをテーブルからサーチしてそのピッチの音を音源から放音させるようになっている。
しかしながら、電子管楽器の演奏用キーの状態の組み合わせのパターンは極めて多く、これにアンブッシャを検出する呼気圧センサの状態を加えるとそのパターンの数は更に膨大なものになる。よって、それらの組み合わせの各々と対応するピッチをテーブルに収録するとデータ量もそれだけ大きくなってしまい、ピッチのサーチに要する時間を高速化しにくくなるという問題があった。
本発明は、このような背景の下に案出されたものであり、電子管楽器の操作応じて音源から出力させる音のピッチを高速に特定し得るような仕組みを提供することを目的とする。
本発明の好適な態様である電子管楽器は、各々がオンとオフの両状態の間を切り替わる複数の操作子と、音のピッチを表すピッチデータと、前記各操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータのセットであって、オン状態でなければならない操作子及びオフ状態でなければならない操作子に割り当てたビットを1にすると共にオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第1のバイナリデータとオン状態でなければならない操作子に割り当てたビットを1にすると共にオフ状態でなければならない操作子及びオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第2のバイナリデータとからなるセットとを対応付けて記憶した記憶手段と、前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを1にすると共にオフ状態になっている操作子に割り当てたビットを0にしたバイナリデータを生成する検出手段と、前記検出手段によりバイナリデータが生成されると、前記記憶手段にてピッチデータと対応付けられたバイナリデータの各セットを順次特定する特定手段と、前記特定手段によってバイナリデータのセットが特定されるたびに、特定されたセットの一方を成す第1のバイナリデータと前記生成されたバイナリデータの論理積を演算して得た新たなバイナリデータがそのセットの他方を成す第2のバイナリデータと一致するか否か判断する判断手段と、前記新たなバイナリデータが第2のバイナリデータと一致すると前記判断手段が判断したとき、その第2のバイナリデータを含むセットと対応付けて前記記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御手段とを備える。
この態様において、前記複数の操作子は、吹奏者の下唇による接触の強さに応じてオンとオフの両状態の間を切り替わる唇操作子と、各々が吹奏者の手指による押下の有無に応じてオンとオフの両状態の間を切り替わる複数の手指操作子とを含むとよい。
本発明の別の好適な態様であるプログラムは、各々がオンとオフの両状態の間を切り替わる複数の操作子と、音のピッチを表すピッチデータと、前記各操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータのセットであって、オン状態でなければならない操作子及びオフ状態でなければならない操作子に割り当てたビットを1にすると共にオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第1のバイナリデータとオン状態でなければならない操作子に割り当てたビットを1にすると共にオフ状態でなければならない操作子及びオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第2のバイナリデータとからなるセットとを対応付けて記憶した記憶手段と、前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを1にすると共にオフ状態になっている操作子に割り当てたビットを0にしたバイナリデータを生成する検出手段とを備えた電子管楽器に、前記検出手段によりバイナリデータが生成されると、前記記憶手段にてピッチデータと対応付けられたバイナリデータの各セットを順次特定する特定機能と、前記特定機能によってバイナリデータのセットが特定されるたびに、特定されたセットの一方を成す第1のバイナリデータと前記生成されたバイナリデータの論理積を演算して得た新たなバイナリデータがそのセットの他方を成す第2のバイナリデータと一致するか否か判断する判断機能と、前記新たなバイナリデータが第2のバイナリデータと一致すると前記判断機能が判断したとき、その第2のバイナリデータを含むセットと対応付けて前記記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御機能とを実現させる。
本発明によると、電子管楽器の操作に応じて音源から出力させる音のピッチを高速に特定することができる。
(第1実施形態)
本願発明の第1実施形態について説明する。
本実施形態は、以下の2つの特徴を有する。
1つ目の特徴は、電子フルートの各操作子のオンとオフの状態の組み合わせをそれらの操作子の各々に1ビットずつを個別に割り当てたビット列からなるバイナリデータとして取り扱うこととした点である。
2つ目の特徴は、音源から出力させ得る音の各ピッチと、それらの各ピッチの音を出力するためにオンでなければならない操作子、オフでなければならない操作子、及びそのどちらでも構わない操作子を異なるビットパターンとして示すバイナリデータ対とを対応付けたテーブルを準備し、吹奏者により操作される各操作子の状態を個別に検出して得たバイナリデータとこのテーブルのバイナリデータの各対とを所定のアルゴリズムに従って順次照合していくことにより、音のピッチを一意に特定するようにした点である。
図1は、本実施形態にかかる電子フルート1の外観を示す図である。図に示すように、この電子フルート1の筐体は、頭管部10、主管部20、及び足管部30から成る。そして、主管部20と足管部30には吹奏者の手指による操作をそれぞれ受け付ける操作子である15個の演奏用キー40が設けられ、頭管部10には口唇による操作を受け付ける操作子であるリッププレート50が設けられている。つまり、この電子フルート1は、手指により操作される15個の演奏用キー40と口唇により操作される1個のリッププレート50の合計16個の操作子を有している。また、リッププレート50には、唄口51と接触圧検出部70が設けられている。
図2はリッププレート50の構成の詳細を示す断面図である。図に示すように、唄口51の手前側のベース部には断面が略L字状の窪部が形成されおり、アクチエータ71、発泡ゴム72、及びメンブレンスイッチ73からなる接触圧検出部70が収容されている。
メンブレンスイッチ73は、図3に示すように、各々の表面に電極を有する上側電極シート73aと下側電極シート73bを、互いの表面同士がメンブレンスペーサ73cと感圧導電性ゴム73dを挟み込むように重ね合わせてなる。そして、下側電極シート73bの裏面は窪部の長手面に接着されている。
図2において、アクチエータ71は、上面から下面にかけて先細るテーパ形状を成す部材であり、その上面の後端は窪部の短手面の上端に対して上下方向に揺動自在に連結されている。また、このアクチエータ71の上面の前端は上側にやや切り立って略一直線状の突起部74を形成しており、下面には略直方体状の発泡ゴム72が貼り付けられている。このアクチエータ71は、吹奏者の下唇から受けた接触力を自身の揺動を通じてメンブレンスイッチ73に伝達する。
図4(a)及び(b)を参照し、接触圧検出部70の駆動原理について説明する。
図4(a)に示すように、電子フルート1を吹奏する吹奏者は、自らの下唇をアクチエータ71の突起部74に接触させて唄口51へ息を吹入する。周知のように、感圧導電性ゴム73dは、圧縮すればするほどその圧縮方向の電気抵抗が小さくなるという性質を有している。アクチエータ71とリッププレート50の連結部位は弱い力で上方向に付勢されているので、アクチエータ71の突起部74に吹奏者の下唇が接触していなかったり或いは比較的弱い力で接触している状態では、感圧導電性ゴム73dの電気抵抗が無限大となって上側電極シート73aと下側電極シート73bの両接点間の電圧が最大になる。そして、吹奏者がピッチをオクターブアップさせるオクターブ切り替えを行う際は、図4(b)に示すように自らの下唇でアクチエータ71を強く押し下げるため、感圧導電性ゴム73dの電気抵抗が徐々に低くなって両接点間の電圧が低下する。よって、感圧導電性ゴム73dの両接点間に印加される電圧に応じて割り出される接触圧の閾値を好適に設定しておき、接触圧が閾値を跨いで遷移したか否かを参照すれば、オクターブ切り替えのタイミングを精緻に特定することができる。
図5は、電子フルート1の電気的構成を示す図である。なお、図において、筐体上に備え付けられた要素は図1等を参照して既に説明したところであるから同一の符号を付して再度の説明を割愛する。この電子フルート1は、メンブレンスイッチ73の他に、ブレスセンサ91、キーセンサ92、アナログ/デジタル(以下、「A/D」と呼ぶ)変換部93、CPU94、RAM95、ROM96、音源97、及びサウンドシステム98を備える。
図に示す各部の機能を概説すると、まず、ブレスセンサ91は、頭管部10のリッププレート50に設けられた唄口51に吹き入れられる呼気の呼気圧を検出し、検出した圧力値を示す信号をA/D変換部93へ供給する。
キーセンサ92は、主管部20から足管部30にかけて設けられた各演奏用キー40の押下量を個別に検出し、検出した各キー毎の押下量を示す信号をA/D変換部93へ供給する。
A/D変換部93は、ブレスセンサ91から供給される信号をA/D変換し、呼気圧データとしてCPU94に供給すると共に、キーセンサ92から供給される信号をA/D変換し、各演奏用キー40毎の押下量データとしてCPU94に供給する。また、このA/D変換部93は、メンブレンスイッチ73の上側電極シート73aと下側電極シート73bの両電極間に印加されている電圧値をA/D変換し、接触圧データとしてCPU94に供給する。
音源97は、周知のMIDI(Musical Instruments Digital Interface)音源97であり、CPU94から自らに供給される各種MIDIメッセージに従って合成した楽音信号をサウンドシステム98へ出力し、及びその出力を停止する。サウンドシステム98は楽音信号に応じた音を放音する。
ROM96は、運指テーブル96aと音源制御プログラム96eを記憶する。
図6は、運指テーブル96aを示す図である。図に示すように、このテーブル96aを構成するレコードの各々は、「No.」、「音名」、「不問運指」、「必須運指」の4つのフィールドを有する。
「No.」のフィールドには、MIDIのキーコードを識別する番号が記憶される。「音名」のフィールドには、ピッチデータが記憶される。ピッチデータは、ピッチの高さを英語音名により表したデータである。
「不問運指」のフィールドには、不問運指バイナリデータを記憶する。不問運指バイナリデータは、16個の操作子の各々に1ビットずつを個別に割り当てた16桁のビット列であって、オンとオフの何れの状態でも構わない操作子のビットを0にして残りのビットを1にしたビット列を表すデータである。
「必須運指」のフィールドには、必須運指バイナリデータを記憶する。必須運指バイナリデータは、16個の操作子の各々に1ビットずつを個別に割り当てた16桁のビット列であって、オン状態でなければならない操作子のビットを1にして残りのビットを0にしたビット列を表すデータである。
なお、図6の「不問運指」と「必須運指」の各々のフィールドは、ビット列を見やすくするために上位8桁と下位8桁の間に便宜上の仕切り線を記してある。
また、図に示すように、このテーブルの各レコードは、「音名」のフィールドに記憶されたッチデータが示すピッチが高いものから順にソートされている。
ここで、各レコードの「不問運指」と「必須運指」のフィールドにそれぞれ記憶されるべき両バイナリデータの取得手順について説明しておく。これらの両データは、アコースティックなフルートの音響特性を基に作成した運指表から得られる。
図7は、運指表を示す図である。この運指表の列は、筐体の16個の操作子の各々を一意に識別すべく作成者により割り振られた16進数の符号(0乃至f)と対応する。具体的には、主管部20と足管部30に設けられた15個の演奏用キー40のうち頭管部10に最も近い演奏用キー40から最も遠いものに向かって順に「0、1、2、3、・・・e」の各符号が割り振られ、頭管部10のリッププレート50に「f」の符号が割り振られている。一方、運指表の行は、アコースティックなフルートにより鳴らすことができる音のピッチを示す各音名と対応する。
そして、運指表の各行における0乃至eの記号の各々と対応するます目には、「1」と「0」に「×」を加えた3つのうちいずれかの文字が記される。「1」の文字は、該当の音名のピッチの音を鳴らすためにオンの状態でなければならない操作子であることを、「0」の文字はオフの状態でなければならない操作子であることを、「×」の文字はオンとオフのいずれの状態でも構わない操作子であることをそれぞれ表している。
例えば、図の音名「F6」の行のます目には、左から順番に「000100X00110XXX1」と文字を並べた文字列が記されている。これは、「3」、「9」、「a」、「f」の符号を割り振った操作子がオンの状態となっており、「0」、「1」、「2」、「4」、「5」、「7」、「8」、「b」の符号を割り振った操作子がオフになってさえいれば、残りの、「6」、「c」、「d」、「e」の符号を割り振った操作子がオンであるかオフであるかにかかわらず「F6」のピッチの音が鳴ること、つまり、「6」、「c」、「d」、「e」の符号を割り振った操作子を不問とする運指であることを示している。
また、図の音名「E♭5」の行のます目には、「000000X01010XXX1」の文字列が記されており、その下の1オクターブ低い音名「E♭4」の行のます目には、「f」の符号を割り振った操作子であるリッププレート50のビットだけを反転させた「000000X01010XXX0」の文字列が記されている。これは、これらの両運指がいわゆるオクターブ切り替え運指の関係にあり、演奏用キー40の状態を固定したままリッププレート50のアクチエータへの下唇の接触圧を変化させるだけでオクターブが上げ下げできることを示している。
このような意味合いを持つ、「1」、「0」、「×」の3値の組み合わせよりなる文字列が全ての音名について記された運指表を基に、同じ意味合いを「0」と「1」の2値によって表した不問運指バイナリデータと必須運指バイナリデータのセットを作成する。上述したように、不問運指バイナリデータは、オンとオフの何れの状態でもよい操作子のビットを0にして残りのビットを1にしたビット列を表すデータであり、また、必須運指データは、オンでなければならない操作子のビットを1にして残りのビットを0にしたビット列を表すデータである。よって、例えば、図7の音名「F6」の行のます目に記された「000100X00110XXX1」の文字列からは、「X」を「0」に変換すると共に「0」を「1」に変換した「1111110111110001」の不問運指バイナリデータと、「X」を「0」に変換した「0001000001100001」の必須運指バイナリデータとが取得されることになる。
図5において、音源制御プログラム96eは、本実施形態に特徴的な機能をCPU94に付与するプログラムである。このプログラム96eを実行するCPU94は、呼気圧データを記憶する領域(以下、「呼気圧データ記憶領域」と呼ぶ)、押下量データを記憶する領域(以下、「押下量データ記憶領域」と呼ぶ)、接触圧データを記憶する領域(以下、「接触圧データ記憶領域」と呼ぶ)をRAM95に確保し、それらの領域のデータをA/D変換部93から供給される各種データで順次書き換えながら本実施形態に特徴的な処理を行う。処理の内容については後に詳述する。
図8は、本実施形態の処理を示すフローチャートである。
図に示す一連の処理は、図示しないシステムクロックにより発生されるクロック信号と同期して順次実行されるものである。
図において、CPU94は、呼気圧データ記憶領域に記憶されている呼気圧データが予め設定された呼気圧閾値を上回ったか否か判断する(S100)
ステップ100にて、呼気圧データが呼気圧閾値を上回ったと判断したCPU94は、押下量データ記憶領域に記憶された押下量データと接触圧データ記憶領域に記憶された接触圧データとに応じて特定されるピッチデータを運指テーブル96aから読み出す(S110)。このステップ110は本実施形態に特徴的なものであり、その詳細は図9を参照して後述する。
ピッチデータを読み出したCPU94は、そのピッチデータが表すピッチでの発音を指示するノートオンメッセージを音源97に供給する(S130)。具体的には、ノートオンメッセージであることを記したステータスバイトと、ステップ110で読み出したピッチデータと対応するキーコードを記したデータバイトとを含むMIDIメッセージを音源97へ供給する。メッセージの供給を受けた音源97は、そのメッセージに応じて合成した楽音信号のサウンドシステム98への出力を開始する。これにより、ノートオンメッセージが指定するピッチの楽音がサウンドシステム98から放音される。
続いて、CPU94は、呼気圧データ記憶領域に記憶されている呼気圧データが呼気圧閾値を下回ったか否か判断する(S140)。
ステップ140にて呼気圧データが呼気圧閾値を下回ったと判断したとき、CPU94は、消音を指示するノートオフメッセージを音源97に供給する(S150)。具体的には、ノートオフメッセージであることを記したステータスバイトを含むMIDIメッセージを音源97へ供給する。メッセージの供給を受けた音源97は、サウンドシステム98への楽音信号の出力を停止する。これにより、サウンドシステム98による放音が停止されてステップ100に戻り、呼気圧データが表す圧力値が呼気圧閾値を再び上回ると、以降の処理が繰り返される。
ステップ140にて呼気圧データが呼気圧閾値を下回っていないと判断したとき、CPU94は、ノートオフメッセージの供給を行わず楽音信号を出力させたまま次のステップへ進む。
続いて、CPU94は、押下量データ記憶領域の記憶内容がA/D変換部93から新たに供給された押下量データにより書き換えられているか否か判断する(S160)。吹奏者が自身の運指を変更すればこのステップの判断結果は「Yes」となり、変更しなければこのステップの判断結果は「No」ということになる。
ステップ160にて押下量データ記憶領域の記憶内容が書き換えられていると判断したときは、ステップ110に戻って変更後の運指と対応する別のピッチデータを読み出し、続くステップ130でそのピッチデータが示すピッチでの発音を指示するノートオンメッセージを音源97へ供給する。一方、押下量データ記憶領域の記憶領域が書き換えられていないと判断したときは、そのまま次のステップへ進む。
続いて、CPU94は、接触圧データ記憶領域の接触圧データが予め設定された接触圧閾値を跨いで遷移したか否か判断する(S170)。吹奏者が運指を固定したままリッププレートへの下唇の接触力を変化させればこのステップの判断結果は「Yes」となり、変化させなければこのステップの判断結果は「No」ということになる。
ステップ170にて接触圧データが接触圧閾値を跨いで変化したと判断しときは、ステップ110に戻って1オクターブのピッチ差を有する別のピッチデータを読み出し、続くステップ130でそのピッチデータが示すピッチでの発音を指示するノートオンメッセージを音源97へ供給する。一方、接触圧閾値を跨いで変化していなければステップ140へ戻る。
図9は、ステップ110のピッチデータ読み出し処理の詳細を示すフローチャートである。
図8のステップ100にて、呼気圧データが呼気圧閾値を上回ったと判断したCPU94は、押下量データ記憶領域に記憶された各押下量データと接触圧データ記憶領域に記憶された接触圧データとを基に現在の運指を示すバイナリデータを生成する(S111)。具体的には、以下の手順で生成を行う。まず、押下量データ記憶領域に記憶されている15個の押下量データを、演奏用キー40のオンとオフの両状態を分かつべく予め設定された押下量閾値と順次比較し、押下量データが押下量閾値を上回ると「1」のビット、下回ると「0」のビットを出力していくことによって15桁のビットを生成する。なお、各押下量データと押下量閾値の比較は、運指表における「0乃至e」の各符号の割り振りと同じ順序、つまり、頭管部10に最も近い演奏用キー40の押下量データから順に行う。続いて、接触圧データ記憶領域に記憶されている接触圧データをリッププレート50のオンとオフの両状態を分かつべく予め設定された接触圧閾値と比較し、接触圧データが接触圧閾値を上回ると「1」のビット、下回ると「0」のビットを出力し、出力したビットを上述した15桁のビットの末尾に加える。これにより、オン状態になっている操作子に割り当てたビットを1にすると共にオフ状態になっている操作子に割り当てたビットを0にした16桁のバイナリデータが生成されることになる。
続いて、CPU94は、運指テーブル96aの先頭のレコードを特定する(S112)。
CPU94は、特定したレコードの「不問運指」のフィールドに記憶された不問運指バイナリデータとステップ111で生成したバイナリデータの論理積を演算する(S113)。
CPU94は、ステップ113における論理積の演算結果とステップ112で特定したレコードの「必須運指」のフィールドに記憶された必須運指バイナリデータとが一致するか否か判断する(S114)。
ステップ114にて両者が一致しないと判断したとき、CPU94は、参照対象となるレコードを昇順に1つ進めた後(S115)、ステップ113に戻って以降の処理を繰り返す。
ステップ114で両者が一致すると判断したとき、CPU94は、現在特定しているレコードの「音名」のフィールドに記憶されたピッチデータを音源97から出力させる音のピッチを示すピッチデータとして読み出す(S116)。
以上説明した実施形態では、オンとオフの何れの状態でも構わない操作子に割り当てたビットを0にして残りのビットを1にした不問運指バイナリデータと、オンの状態でなければならないビットを1にして残りのビットを0にした必須運指バイナリデータとからなる各バイナリデータ対をピッチデータと対応付けて運指テーブル96aに収録しておき、現在の運指を表すバイナリデータが得られると、そのバイナリデータと不問運指バイナリデータの論理積をまず演算し、その演算結果として得られる新たなバイナリデータと必須運指バイナリデータの一致の有無により、音源から出力させる音のピッチデータをサーチするようになっている。よって、不問の操作子をも含めたすべての組み合わせを収録するよりも運指テーブル96aのデータ量を小さくすることができ、また、ピッチデータのサーチに要する時間自体もより高速化することができる。
(第2実施形態)
本願発明の第2実施形態について説明する。
本実施形態は、第1実施形態において1つであった運指テーブルを、リッププレート50がオンとオフのどちらの状態でも同じピッチの音が鳴る運指のバイナリデータ対を取り纏めた第1運指テーブル、リッププレート50がオンの状態のときだけあるピッチの音が鳴る運指のバイナリデータ対を取り纏めた第2運指テーブル、及びリッププレート50がオンの状態のときとオフの状態のときとで1オクターブのピッチ差を有する別の音が鳴る運指のバイナリデータ対を取り纏めた第3運指テーブルの3つに分割し、第1、第2、第3の順番でテーブルを参照して行くことにより、ピッチデータをより高速にサーチできるようにした。
更に、本実施形態は、リッププレート50のオン又はオフの状態を検出すべく接触圧データと比較する接触圧閾値を予め設定しておいた所定の閾値幅(以下、この幅を「接触圧閾値幅」と呼ぶ)の中で変化させることにより、アコースティックなフルートにより近い感度でオクターブ切り替えのタイミングを特定できるようにした。
図10は、本実施形態にかかる電子フルート1の電気的構成を示す図である。図に示すように、本実施形態では、第1実施形態において1つであった運指テーブル96aを、これを分割して得た、第1運指テーブル96b、第2運指テーブル96c、及び第3運指テーブル96dの3つのテーブルと置き換えている。
図11は、第1乃至第3運指テーブルを示す図であり、(a)が第1運指テーブル96bを、(b)が第2運指テーブル96cを、(c)が第3運指テーブル96dのデータ内容をそれぞれ示している。図に示すように、第1乃至第3運指テーブルの編成自体は図6に示したところと同様であり、テーブルを構成する各レコードの各々が、「No.」、「音名」、「不問運指」、「必須運指」の4つのフィールドを有している。
各テーブルの違いを具体的に説明すると、まず、第1運指テーブル96bは、図7の運指表に記された、「1」、「0」、「X」の3値よりなる各文字列のうち、リッププレート50の状態がオンでもオフでも同じ高さのピッチの音が鳴る運指の文字列から得たバイナリデータ対だけを取り纏めてなる。よって、このテーブルの各レコードの「不問運指」のフィールドには、16桁目のビット(リッププレート50に割り当てられた記号「f」と対応するビット)を「0」にした不問運指バイナリデータが記憶されることになる。なお、図に示すように第1運指テーブル96bはL個のレコードを有していることから、リッププレート50の状態がオンでもオフでも同じピッチの音が鳴る運指のパターンもL種類あることが分かる。
第2運指テーブル96cは、図7の運指表に記された各記号列のうち、リッププレート50の状態がオンのときだけ音が鳴る運指の文字列から得たバイナリデータ対だけを取り纏めてなる。よって、このテーブルの各レコードの「必須運指」のフィールドには、16桁目のビットを「1」にした必須運指バイナリデータが記憶されることになる。なお、図に示すようにこの第2運指テーブル96cはM個のレコードを有していることから、リッププレート50の状態がオンのときだけ音が鳴る運指のパターンもM種類あることが分かる。
第3運指テーブル96dは、図7の運指表に記された各文字列のうち、リッププレート50の状態がオンかオフかに応じてオクターブ差を有する別の音が鳴る運指の文字列から得たバイナリデータ対だけを取り纏めてなる。よって、このテーブルの各レコードの「音名」のフィールドには、「E♭4,E♭5」といったように1オクターブのピッチ差を有するピッチデータの対が記憶され、また、「不問運指」と「必須運指」のフィールドには、上位15桁のビット(演奏用キー40に割り当てられた記号「0乃至e」と対応するビット)のみからなるバイナリデータ対が記憶される。なお、図に示すようにこの第3テーブルはN個のレコードを有していることから、リッププレート50の状態がオンかオフかに応じてオクターブ差を有する別の音が鳴る運指のパターンもN種類あることが分かる。また、第1実施形態の運指テーブル96aにおいては、このようないわゆるオクターブ切替運指の各々のバイナリデータ対を別レコードとして記憶していたが、本実施形態における第3運指テーブル96dはこれを1つのレコードとして記憶するので、テーブル全体としてのデータ量は第1実施形態よりも更に小さくなる。
第1実施形態と同様に、第1乃至第3テーブルの各レコードは、「音名」のフィールドに記憶されたビッチデータが示すピッチが高いものから順番にソートされている。
次に、本実施形態の処理を説明する。
本実施形態においては、ピッチデータ読み出し処理の内容が図9に示したところと異なる。
図12は、ピッチデータ読み出し処理の詳細を示すフローチャートである。
図8のステップ100にて、呼気圧データが呼気圧閾値を上回ったと判断したCPU94は、押下量データ記憶領域に記憶されている15個の押下量データと押下量閾値とを順次比較し、それらの比較の結果を示す15桁のビット列を生成する(S117)。具体的には、押下量データ記憶領域に記憶されている15個の押下量データを運指表における「0乃至e」の各符号の割り振りと同じ順序で順次比較し、押下量データが押下量閾値を上回ると「1」のビット、下回ると「0」のビットを出力していくことによって15桁のビット列を生成する。
続いて、CPU94は、接触圧データ記憶領域に記憶されている接触圧データと接触圧閾値幅の上限値とを比較し、その比較の結果を示す1桁のビットを生成する(S118)。
CPU94は、ステップ117で生成した15桁のビット列の末尾にステップ118で生成したビットを連結させることにより、現在の運指を表す16桁のバイナリデータを生成する(S119)。
CPU94は、ステップ119で生成したバイナリデータを基に第1運指テーブル96bをサーチする(S120)。このステップのサーチは、図9のステップ112乃至ステップ114に示したところと同様の手順で実行される。つまり、参照対象となるレコードを1つずつ進めながら、ステップ119で生成したバイナリデータと不問運指バイナリデータの論理積の演算結果と必須運指バイナリデータとが一致するか否かを順次照合していくのである。上述したように、第1運指テーブル96bはL個のレコードを有しているので、ステップ112乃至114のループをL回繰り返しても一致する必須運指バイナリデータが見つからなかったときはサーチ失敗となる。
ステップ120において、論理積の演算結果と一致する必須運指バイナリデータのサーチに成功したときは、ステップ124に進み、第1運指テーブル96bにてその必須運指バイナリデータと対応付けられているピッチデータを読み出す。
一方、ステップ120においてサーチに失敗したとき、CPU94は、ステップ119で生成したバイナリデータを基に第2運指テーブル96cをサーチする(S121)。このステップのサーチも図9のステップ111乃至ステップ114に示したところと同様の手順で実行される。上述したように、第2運指テーブル96cはM個のレコードを有しているので、ステップ112乃至ステップ114のループをM回繰り返しても一致する必須運指バイナリデータが見つからなかったときはサーチ失敗となる。
ステップ130においてサーチに失敗したとき、CPU94は、ステップ119で生成したバイナリデータを基に第3運指テーブル96dをサーチする(S122)。このステップのサーチの手順は図9のステップ112乃至ステップ114と一部異なるため、図13を参照して詳述する。
図13において、CPU94は、第3運指テーブル96dの先頭のレコードを特定する(S1121)。
続いて、CPU94は、ステップ1121で特定したレコードの「不問運指」のフィールドに記憶された不問運指バイナリデータとステップ117で生成しておいた15桁のビット列の論理積を演算する(S1122)。
CPU94は、ステップ1122における論理積の演算結果とステップ1121で特定したレコードの「必須運指」のフィールドに記憶された必須運指バイナリデータとが一致するか否か判断する(S1123)。
ステップ1123にて両者が一致しないと判断したとき、CPU94は、参照対象となっていないレコードが残っていれば、参照対象のレコードを昇順に1つ進めた後(S1124)、ステップ1122に戻って以降の処理を繰り返す。上述したように、第3運指テーブル96dはN個のレコードを有しているので、ステップ1122乃至ステップ1124のループをN回繰り返しても一致する必須運指バイナリデータが見つからなかったときはサーチ失敗となる。
一方、ステップ1123で両者が一致していると判断したとき、CPU94は、現在特定しているレコードが第3運指テーブル96dの先頭のレコードから何番目かをカウントする(S1125)。
続いて、CPU94は、接触圧閾値幅の上限値と下限値の間のスケールにステップ1125で得たカウント値を照らし合わせた相対値を線形補間により求める(S1126)。具体的には、接触圧閾値幅の上限値と下限値の間の差分をM等分した値とステップ1125で求めたカウント値の積を求め、その求めた積と下限値の和を相対値とする。よって、現在特定しているレコードが先頭のレコードに近いほど、言い換えればピッチが高いほど接触圧閾値の上限値に近い相対値が求まり、末端のレコードに近いほど下限値に近い相対値が求まることになる。
続いて、CPU94は、接触圧データ記憶領域に記憶されている接触圧データとステップ1126で求めた接触圧閾値の相対値とを比較する(S1127)。
ステップ1127の比較を行った結果、接触圧データの方が接触圧閾値の相対値よりも大きかったとき、CPU94は、現在特定しているレコードの「音名」のフィールドに記憶されている両ピッチデータのうち高いオクターブの方のピッチデータを選択する(S1128)。一方、接触圧データの方が接触圧閾値の相対値よりも小さかったとき、CPU94は、現在特定しているレコードの「音名」のフィールドに記憶されている両ピッチデータのうち低いオクターブの方のピッチデータを選択する(S1129)。
ステップ1128又はステップ1129でいずれか一方のピッチデータが選択されると、図12のステップ124に進んでその一方のピッチデータが読み出される。
図12において、第3運指テーブル96dのサーチが失敗すると、ステップ117に戻り、直前のクロックタイミングで書き換えられた押下量データ記憶領域及び接触圧データ記憶領域の記憶内容を基に以降の処理が再び繰り返される。
以上説明した本実施形態では、第1乃至第3運指テーブルを設け、第1運指テーブルから順次参照していくので、音源から出力させる音のピッチのサーチに要する時間をより高速化することができる。また、第3運指テーブルを参照する際は、リッププレート50のオン又はオフの状態を検出するための接触圧閾値を予め設定しておいた接触圧閾値幅の上限値から下限値までの所定の閾値幅の中で変化させるので、アコースティックなフルートにより近い感度でオクターブ切り替えのタイミングを特定することができる。
(他の実施形態)
本願発明は、種々の変形実施が可能である。
上記実施形態において、不問運指バイナリデータは、オンとオフの何れの状態でも構わない操作子のビットを0にして残りのビットを1にしており、また、必須運指バイナリデータは、オンでなければならない操作子のビットを1にして残りのビットを0にしていたが、不問運指バイナリデータのビットを反転させたものを運指テーブルに収録してもよい。この変形例の場合、吹奏者の操作に応じて生成される現在の運指のバイナリデータの否定と不問運指バイナリデータの論理積が演算され、その演算結果と必須運指バイナリデータとが照合されることになる。
上記実施形態においては、吹奏者の下唇のリッププレートへの接触圧を基にオクターブアップの有無を検出していたが、唄口と唇の距離などの他の物理量を基にオクターブアップの有無の検出を行ってもよい。
第2実施形態では、第1乃至第3の3つの運指テーブルを準備し、それらを第1運指テーブルから順次参照していくことによって音のピッチを特定していた。これに対し、第2運指テーブルと第3運指テーブルを1つに纏めてもよい。つまり、リッププレートの状態が鳴る音に影響しない運指のバイナリデータ対を取り纏めた運指テーブルと、リッププレートの状態が鳴る音に影響する運指のバイナリデータ対を取り纏めた運指テーブルの2つに分割するのである。この変形例であっても、前者の運指テーブルから参照するようにするようにすれば、ピッチのサーチを高速化できる。
電子フルートの外観を示す図である。 リッププレートの構成図である。 メンブレンスイッチの構成図である。 接触圧検出部の駆動原理について説明する。 電子フルートの電気的構成を示す図である(第1実施形態)。 運指テーブルを示す図である(第1実施形態)。 運指表を示す図である。 実施形態の処理を示す図である(第1実施形態)。 ピッチデータ読み出し処理を示す図である(第1実施形態)。 電子フルートの電気的構成を示す図である(第2実施形態)。 運指テーブルを示す図である(第2実施形態)。 ピッチデータ読み出し処理を示す図である(第2実施形態)。 ピッチデータ読み出し処理の詳細を示す図である(第2実施形態)。
符号の説明
1…電子フルート、10…頭管部、20…主管部、30…足管部、40…演奏用キー、50…リッププレート、51…唄口、70…接触圧検出部、71…アクチエータ、72…発泡ゴム、73…メンブレンスイッチ、74…突起部、91…ブレスセンサ、92…キーセンサ、93…A/D変換部、94…CPU、95…RAM、96…ROM、97…音源、98…サウンドシステム

Claims (3)

  1. 各々がオンとオフの両状態の間を切り替わる複数の操作子と、
    音のピッチを表すピッチデータと、前記各操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータのセットであって、オン状態でなければならない操作子及びオフ状態でなければならない操作子に割り当てたビットを1にすると共にオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第1のバイナリデータとオン状態でなければならない操作子に割り当てたビットを1にすると共にオフ状態でなければならない操作子及びオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第2のバイナリデータとからなるセットとを対応付けて記憶した記憶手段と、
    前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを1にすると共にオフ状態となっている操作個に割り当てたビットを0にしたバイナリデータを生成する検出手段と、
    前記検出手段によりバイナリデータが生成されると、前記記憶手段にてピッチデータと対応付けられたバイナリデータの各セットを順次特定する特定手段と、
    前記特定手段によってバイナリデータのセットが特定されるたびに、特定されたセットの一方を成す第1のバイナリデータと前記生成されたバイナリデータの論理積を演算して得た新たなバイナリデータがそのセットの他方を成す第2のバイナリデータと一致するか否か判断する判断手段と、
    前記新たなバイナリデータが第2のバイナリデータと一致すると前記判断手段が判断したとき、その第2のバイナリデータを含むセットと対応付けて前記記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御手段と
    を備えた電子管楽器。
  2. 請求項1に記載の電子管楽器において、
    前記複数の操作子は、
    吹奏者の下唇による接触の強さに応じてオンとオフの両状態の間を切り替わる唇操作子と、
    各々が吹奏者の手指による押下の有無に応じてオンとオフの両状態の間を切り替わる複数の手指操作子と
    を含む電子管楽器。
  3. 々がオンとオフの両状態の間を切り替わる複数の操作子と、音のピッチを表すピッチデータと、前記各操作子のオン又はオフの状態の組み合わせをそれらの操作子に個別に割り当てた各ビットの配列により表すバイナリデータのセットであって、オン状態でなければならない操作子及びオフ状態でなければならない操作子に割り当てたビットを1にすると共にオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第1のバイナリデータとオン状態でなければならない操作子に割り当てたビットを1にすると共にオフ状態でなければならない操作子及びオン状態でもオフ状態でも構わない操作子に割り当てたビットを0にした第2のバイナリデータとからなるセットとを対応付けて記憶した記憶手段と、前記操作子の各々の状態を個別に検出し、オン状態になっている操作子に割り当てたビットを1にすると共にオフ状態となっている操作個に割り当てたビットを0にしたバイナリデータを生成する検出手段とを備えた電子管楽器に、
    前記検出手段によりバイナリデータが生成されると、前記記憶手段にてピッチデータと対応付けられたバイナリデータの各セットを順次特定する特定機能と、
    前記特定機能によってバイナリデータのセットが特定されるたびに、特定されたセットの一方を成す第1のバイナリデータと前記生成されたバイナリデータの論理積を演算して得た新たなバイナリデータがそのセットの他方を成す第2のバイナリデータと一致するか否か判断する判断機能と、
    前記新たなバイナリデータが第2のバイナリデータと一致すると前記判断機能が判断したとき、その第2のバイナリデータを含むセットと対応付けて前記記憶手段に記憶されたピッチデータが表すピッチの音を音源から出力させる音源制御機能と
    を実現させるプログラム。
JP2006020704A 2006-01-30 2006-01-30 電子管楽器及びそのプログラム Expired - Fee Related JP4466576B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006020704A JP4466576B2 (ja) 2006-01-30 2006-01-30 電子管楽器及びそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006020704A JP4466576B2 (ja) 2006-01-30 2006-01-30 電子管楽器及びそのプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010003105A Division JP4894931B2 (ja) 2010-01-08 2010-01-08 電子管楽器及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2007199604A JP2007199604A (ja) 2007-08-09
JP4466576B2 true JP4466576B2 (ja) 2010-05-26

Family

ID=38454259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006020704A Expired - Fee Related JP4466576B2 (ja) 2006-01-30 2006-01-30 電子管楽器及びそのプログラム

Country Status (1)

Country Link
JP (1) JP4466576B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6202565B2 (ja) * 2013-10-25 2017-09-27 宗一郎 井上 電子管楽器システム

Also Published As

Publication number Publication date
JP2007199604A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
JP4462180B2 (ja) 電子管楽器及びそのプログラム
US6765142B2 (en) Electronic keyboard musical instrument
CN101329862A (zh) 电子管乐器
JP4320782B2 (ja) 演奏制御装置、およびプログラム
US20210074252A1 (en) Electronic wind instrument and control method thereof
JP4419966B2 (ja) 電子管楽器及びそのプログラム
JP4466576B2 (ja) 電子管楽器及びそのプログラム
JP4894931B2 (ja) 電子管楽器及びそのプログラム
JP4361327B2 (ja) 電子楽器の演奏評価装置
US5925844A (en) Piano with built-in electronic musical instrument
JPH0643867A (ja) 電子楽器
CN109559724B (zh) 音阶转换装置、电子管乐器、音阶转换方法和存储介质
JP4471697B2 (ja) 電子楽器
JP4305319B2 (ja) 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器
JP4354546B2 (ja) 楽器演奏動作検出と楽器演奏動作指導のための装置および方法、並びにそのプログラムを記録した記録媒体
CN221175769U (zh) 按标准钢琴琴键进行排布的电吹管
JPS6237792B2 (ja)
JP2011123239A (ja) 演奏教習装置及びブログラム
JP6710432B2 (ja) 楽音制御装置、電子楽器、楽音制御方法およびプログラム
JP4305320B2 (ja) 演奏情報生成装置、演奏情報記録装置及び鍵盤楽器
JP3690276B2 (ja) 電子弦楽器
JPH07104754A (ja) 電子楽器組み込みピアノ
JP4274068B2 (ja) 電子打楽器およびプログラム
JP2009139690A (ja) 電子鍵盤楽器
JP4675731B2 (ja) 楽音発生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees