以下、添付図面を参照して、本発明の実施の形態について説明する。図1(a)は、本発明の実施の形態にかかる電子楽器の概略平面図、図1(b)は、電子楽器の概略側面図である。図1(a)、(b)に示すように、電子楽器10は、ギターなど弦楽器に類似した形状であり、ボディ11、ボディ11の一端から延びるネック12、ネック12の端部(ギターのナットに相当する部分)17に取り付けられたヘッド13を備える。ボディ11の上面中央部には、ブリッジ14および弦支持部材15がボディ11に取り付けられ、これらの間に6本の弦16が張設されている。ブリッジ14および弦支持部材15には、後述するように、弦16の振動を検出する部材(弦振動スイッチ40)が設けられている。弦16において、図1(b)に示す最下部がギターの第6弦に相当するように最も太い弦が張設され、上に向かうのにしたがって弦の太さが徐々に細くなる。
また、本実施の形態においては、ネック12上にはスイッチ群21が配置されている。スイッチ群21においては、ネック12上の2つのフレット間および弦により画定される所定の領域に少なくとも1つのフレットスイッチが配置されている。演奏者が、ネック12上の所望の位置を指で押して何れか1つのフレットスイッチをオンさせることで、電子楽器10は、特定の弦を特定のフレット位置で押さえたことを認識することができる。
さらに、本実施の形態においては、ボディ11中、ブリッジ14の対応する所定の位置に振動部材22が取り付けられると共に、ネック13中にも振動部材23が取り付けられている。振動部材22、23は、たとえば、駆動信号により回転駆動される振動モータであり、駆動信号の信号レベルによりその回転数(振動量)を変更することが可能である。
図2は、本実施の形態にかかる電子楽器のハードウェア構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU31、ROM32、RAM33、スイッチ部34、振動部35およびサウンドシステム36を有している。CPU11は、電子楽器10全体の制御、スイッチ部34を構成する各種スイッチの操作の検出、振動部35の振動モータ22、23を回転駆動する駆動信号の生成、スイッチ部34を構成する各種スイッチの操作にしたがった楽音データ生成の指示など種々の処理を実行する。
ROM12は、スイッチ部34を構成する各種スイッチの操作の検出、振動部35の振動モータ22、23を回転駆動する駆動信号の生成、各種スイッチ操作にしたがった楽音データ生成の指示などの処理プログラムを格納する。また、ROM12は、ギター、ベース、ピアノなど種々の音色の楽音データを生成するための波形データを記憶する波形データエリアを備えている。本実施の形態においては、ROM12の波形データエリアには、エレクトリックギター、アコースティックギター、エレクトリックベース、アコースティックベースなど主として弦楽器の音色の波形データが格納されるが、これに限定されるものではなく、ピアノなど鍵盤楽器、管楽器、打楽器などの音色の波形データが格納されていても良い。
RAM13は、ROM12から読み出されたプログラムや、処理の過程で生じたデータを記憶する。処理の過程で生じたデータには、スイッチ部34を構成するスイッチ(たとえば、スイッチ群21中のフレットスイッチ)の操作状態、各弦16の振動状態および振動レベル、各弦に対応する楽音の発音状態などが含まれる。
サウンドシステム36は、音源部37、オーディオ回路38およびスピーカ39を備える。音源部37は、CPU31からの指示にしたがって、ROM32から波形データを読み出して、楽音データを生成して出力する。オーディオ回路38は、楽音データをアナログ信号に変換し、変換されたアナログ信号を増幅してスピーカ39に出力する。これによりスピーカ39から音響信号が出力される。
スイッチ部34は、ネック12上に配置されたスイッチ群21および弦振動スイッチ40を備える。スイッチ群21には、複数のフレットスイッチ(たとえば符号41、42参照)が配置される。本実施の形態では、スイッチ群21において、第k弦(k=1〜6)に相当するライン上において、フレットごとに1つのフレットスイッチが配置される。第k弦のフレットスイッチは、ネック12の長手方向に沿ってフレット数だけ並べて配置されている。また、上記長手方向に沿ってフレット数Nだけ配置された一群のフレットスイッチが、弦の数(K:本実施の形態では「6」)だけ、長手方向に垂直な方向に配設される。したがって、本実施の形態においては、ネック12上には、K×L個のフレットスイッチがマトリクス状に配置される。
CPU31は、フレットスイッチの操作状態を検出することにより、演奏者がどの弦およびフレット位置を押したかを判断することができる。無論、ある弦に相当するライン上において、フレット間に複数のスイッチが配置され、それらの何れかがオン状態となったことで、どの弦のフレット位置が押されたかを判断するように構成しても良い。
また、CPU31は、弦振動スイッチ40の振動状態および振動レベルを検出することにより、演奏者が、何れの弦をどの程度の強さで弾弦したかを判断することができる。
たとえば、特許文献1に記載されたように、弦の端部に導電性部材を設けるとともに、弦が振動していないときには、弦の端部の導電性部材と接触しない他の導電性部材を設け、弦の振動に伴い、当該導電性部材が変動して他の導電性部材と接触することで、弦振動を検出するスイッチにより、振動状態(振動の有無)を判断することができる。また、特許文献2に記載されたように、本体11上に弦16と対向する位置にピックアップを設けて、ピックアップからの出力のエンベロープ(包落線)を算出して、当該エンベロープのレベルにより弦の振動レベルを検出することができる。なお、ピックアップ出力に基づいて弦の振動状態(振動の有無)を検出しても良い。無論、他の手段を用いて弦の振動状態および振動レベルを検出しても良い。
図3は、本実施の形態にかかる電子楽器10の内部構成を示すブロックダイヤグラムである。図3に示すように、電子楽器10は、弦振動検出部43、フレットスイッチ状態検出部44、音源処理部45および振動量演算部46を有する。弦振動処理部43は、弦振動スイッチ40からの信号に基づいて、各弦の振動状態(振動の有無)および振動レベルを検出する。フレットスイッチ状態検出部44は、スイッチ群21を構成するフレットスイッチのそれぞれについての操作状態(オン状態、オフ状態)を検出する。弦の振動状態および振動レベル、フレットスイッチの操作状態は、それぞれ、RAM33に格納される。
音源処理部45は、弦振動検出部32により得られた各弦の振動状態(振動の有無)および振動レベルと、フレットスイッチ状態検出部44により得られたフレットスイッチの操作状態とに基づいて、所定の音高の楽音データを生成してサウンドシステム36に出力する。また、振動量演算部46は、各弦の振動状態(振動の有無)および振動レベルと、フレットスイッチの操作状態とに基づいて、振動部35の振動モータ22、23のそれぞれを回転駆動するための駆動信号を生成して駆動部35に出力する。
本実施の形態において、弦振動検出部43、フレットスイッチ状態検出部44および振動量演算部46は、主としてCPU31により実現される。音源処理部45は、CPU31およびサウンドシステム36により実現される。
このように構成された電子楽器10において実行される処理について説明する。図4は、本実施の形態にかかる電子楽器において実行される処理の例を示すフローチャートである。電子楽器10のCPU31は、RAM13に一時的に記憶された各種パラメータ、弦の振動状態や振動レベルを示すデータ、フレットスイッチの操作状態を示すデータのクリアを含むイニシャライズ処理を実行する(ステップ401)。
次いで、CPU31(フレットスイッチ状態検出部44)は、スイッチ処理を実行する(ステップ402)。図5および図6は、本実施の形態にかかるスイッチ処理の例を示すフローチャートである。CPU31は、弦を特定するパラメータkを「1」に初期化し(ステップ501)、パラメータkが「6」より大きくなるまで(ステップ502でYes)、ステップ503〜ステップ507、ステップ601〜603の処理を繰り返す。ステップ502でYesと判断された場合には、CPU31は、他のスイッチ処理(たとえば、音色指定スイッチの操作に応答した処理など)を実行して(ステップ508)、スイッチ処理を終了する。
ステップ502でNoと判断された場合に、CPU31は、第k弦に相当するネック12の長手方向のライン上に、新規オンのフレットスイッチが存在するかを判断する(ステップ503)。ステップ503でYesと判断された場合には、CPU31は、第k弦に相当するライン上で、新規オンとなったフレットスイッチの高音側、つまり、よりボディ11に近い側でオン状態であるような他のフレットスイッチが存在するかを判断する(ステップ504)。これは、弦楽器において、同じ弦について、複数のフレット位置で弦が押された場合に、最高音を発生するフレット位置の押弦が有効となることを考慮したものである。
ステップ504でNoと判断された場合には、CPU31は、新規オンとなったフレットスイッチについてのノートオンイベントをRAM34に格納する(ステップ505)。ノートオンイベントはフレットスイッチの操作状態(オン状態)を示す情報に相当し、フレットスイッチを特定するパラメータ(たとえば、弦の番号およびフレット番号)を含む。
次いで、CPU31は、第k弦に相当するネック12の長手方向のライン上に、新規オフのフレットスイッチが存在するかを判断する(ステップ506)。ステップ506でNoと判断された場合には、CPU31は、パラメータkをインクリメントして(ステップ603)、ステップ502に戻る。ステップ506でYesと判断された場合には、CPU31は、新規オフとなったフレットスイッチについてのノートオフイベントをRAM34に格納する(ステップ507)。ノートオフイベントはフレットスイッチの操作状態(オフ状態)を示す情報に相当し、フレットスイッチを特定するパラメータ(たとえば、弦の番号およびフレット番号)を含む。
その後、CPU31は、第k弦に相当するライン上で、新規オフとなったフレットスイッチの低音側、つまり、よりヘッド13に近い側でオン状態であるような他のフレットスイッチが存在するかを判断する(ステップ601)。ステップ601でYesと判断された場合には、CPU31は、当該他のフレットスイッチについてのノートオンイベントをRAM34に格納する(ステップ602)。たとえば、ある弦において、2つのフレット位置が押さえられた状態で、高音側をオフ状態にすると、低音側の楽音が鳴ることに対応している。その後CPU31は、パラメータkをインクリメントして(ステップ603)、ステップ502に戻る。
スイッチ処理(ステップ402)の後、CPU31(弦振動検出部43)は、弾弦処理を実行する(ステップ403)。図7は、本実施の形態にかかる弾弦処理の例を示すフローチャートである。図7に示すように、CPU31は、弦を特定するパラメータkを「1」に初期化し(ステップ701)、パラメータkが「6」より大きくなるまで(ステップ702でYes)、ステップ703以降の処理を繰り返す。CPU31は、第k弦の振動状態(振動の有無)および振動レベルを取得して、RAM34に格納する(ステップ703)。その後、CPU31は、パラメータkをインクリメントして(ステップ704)、ステップ702に戻る。
弾弦処理(ステップ403)の後、CPU31(振動量演算部46)は振動処理を実行する(ステップ404)。図8は、本実施の形態にかかる振動処理の例を示すフローチャートである。本実施の形態においては、弦ごとに、振動レベル、仮想的な弦長、および、仮想的な弦の太さに基づいて振動量パラメータが算出され、算出された振動量パラメータの総和に、さらに発音された楽音の音程(2つの楽音の隔たり)を考慮して、振動モータ22、23を回転駆動するための振動量データが生成される。
CPU31は、弦を特定するパラメータkを「1」に初期化するとともに、振動量パラメータの総和ΣEを「0」に初期化する(ステップ801)。ステップ801においては、後述する第1のパラメータH(k)、第2のパラメータL(k)および第3のパラメータR(k)も初期化される。ここで、第1のパラメータH(k)の初期値は「0」、第2のパラメータL(k)および第3のパラメータR(k)の初期値は「1」とする。CPU31は、パラメータkが「6」より大きくなるまで(ステップ802でYes)、ステップ803〜808以降の処理を繰り返す。
CPU31は、第k弦の振動レベルに基づく第1のパラメータH(k)を得る(ステップ803)。本実施の形態において、第1のパラメータH(k)は、それぞれ「0」〜「1」の値をとり、最大の振幅レベルで弾弦されたときにH(k)=1、振幅が「0」(つまり第k弦が振動していない)ときにH(k)=0となり、振幅が大きくなるのにしたがってH(k)は線形に増大する。なお、振幅が大きくなるのにしたがってH(k)は増大するが、これは線形ではなく他の関数(たとえば指数関数や対数関数)にしたがっても良い。
次いで、CPU31は、第k弦の仮想的な弦長に基づく第2のパラメータL(k)を取得する(ステップ804)。実際の弦楽器では、第k弦において押弦されたフレット位置とブリッジとの間の弦長、および、ヘッドとネックとの間にあるナットとブリッジとの間の弦の全長(全弦長)に基づき、全弦長に対する弦長の比により発音される楽音の音高が決まる。また、弾弦された際の弦自体の振動量も、全弦長に対する上記弦長の比に従う。すなわち、演奏者により押されたフレット位置が、ヘッドに近づくのにしたがって、弦自体の振動量は大きくなり、開放弦の状態、つまり、全弦長で弾弦されたときに最大となる。
本実施の形態にかかる電子楽器10では、ヘッドからブリッジの全体にわたって弦が張設されていない。したがって、実際に第k弦がヘッドからブリッジの全体にわたって張設されていた場合を考え、フレットスイッチのオンにより発生する楽音と同一の楽音を発生するときのフレット位置とブリッジとの間の弦長を仮想的な弦長として、当該仮想的な弦長と全弦長との比を、第2のパラメータL(k)としている。
図9は、仮想的な弦長と第2のパラメータL(k)を説明する図、図10は、フレット位置と仮想的な弦長に基づくパラメータL(k)とを関連付けたパラメータテーブルの例を示す図である。図9において、第1弦16−1〜第6弦16−6の下端に位置するブリッジから、ヘッドとネックとの間に位置するナット(符号900)までの第2のパラメータL=1とする。すなわち、仮想的な弦長/全弦長=1となるからである。
たとえば、第5フレット(符号902参照)の位置(図9では、第3弦の第5フレットに相当する位置(符号901参照))が押されている場合には、第3弦の開放弦G音に対して完全4度高いCB音が発生し、仮想的な弦長/全弦長=0.7492であり、L(3)=0.7492となる。また、第7フレット(符号904参照)の位置(図9では、第6弦の第7フレットに相当する位置(符号903参照))が押されている場合には、第6弦の開放弦E音に対して完全5度高いB音が発生し、仮想的な弦長/全弦長=0.6664であり、L(6)=0.664となる。本実施の形態にかかるパラメータテーブルには、フレット位置nにおけるパラメータLとして、(開放弦のときに発生される楽音の平均率による周波数/第nフレットがオンされたときに発生される楽音の平均率による周波数)が格納されている。
本実施の形態においては、図10のテーブル1000に示すように、フレット位置と第2のパラメータLとを関連付けたパラメータテーブルを用意し、ROM32に格納している。したがって、CPU31は、スイッチオンイベントおよび後述する発音ステータスを参照して、フレットスイッチがオン状態で楽音発生中のフレット位置を特定し、ROM32中のパラメータテーブルを参照して、特定されたフレット位置に関連付けられたパラメータLの値を取得すれば良い。
また、CPU31は、第k弦の仮想的な弦の太さにしたがった第3のパラメータR(k)を取得する(ステップ805)。本実施の形態において、仮想的な弦の太さとは、実際の弦楽器の第1弦〜第6弦までの弦の太さであり、弦の番号が増大するのにしたがって弦の太さは増大する。たとえば、最も弦の太さが大きい第6弦について、パラメータR(6)=1として、パラメータR(k)は以下のような値をとる。
R(5)=0.9
R(4)=0.7
R(3)=0.5
R(2)=0.4
R(1)=0.3
本実施の形態においては、弦の番号kとパラメータR(k)とを関連付けた第2のパラメータテーブルを用意し、ROM32に格納している。CPU31は、処理中のパラメータkの値に基づいて、R(k)を取得することができる。なお、上記R(k)の値は上述したものに限定されない。
その後、CPU31は、取得した第1のパラメータH(k)、第2のパラメータL(k)および第3のパラメータR(k)を乗じて、第k弦についての振動量パラメータE(k)を算出し(ステップ806)、算出された振動量パラメータE(k)を、振動量パラメータの総和ΣEに加算する(ステップ807)。次いで、CPU31は、パラメータkをインクリメントして(ステップ808)、ステップ802に戻る。
ステップ802でYesと判断された場合には、CPU31は、弦共鳴付加処理を実行する。図11は、本実施の形態にかかる弦共鳴付加処理の例を示すフローチャートである。CPU31は、各弦の発音ステータスを参照して、発音中の弦の番号を特定するとともに、発音中の弦のスイッチオンイベントを参照して、発音中の楽音の音程(2つの楽音の隔たり)を特定する(ステップ1101)。
たとえば、演奏者はEmajのコードを弾く左手を操作すると以下のようなフレット位置が押される。また、括弧内は発生する楽音の音高である。
第6弦:開放弦(E2)
第5弦:第2フレット(B2)
第4弦:第2フレット(E3)
第3弦:第1フレット(G#3)
第2弦:開放弦(B3)
第1弦:開放弦(E4)
この場合には、第6弦と第5弦とが完全5度、第6弦と第4弦とが完全8度、第5弦と第2弦とが完全8度、第4弦と第2弦とが完全5度、および、第4弦と第1弦とが完全8度の関係を有することになる。
CPU31は、発音中の楽音の音程を参照して、完全1度(同音)の関係を有する楽音が存在するかを判断する(ステップ1102)。ステップ1102でYesと判断された場合には、CPU31は、振動量パラメータの総和ΣEに、完全1度についての共鳴係数Int1を乗じて、その乗算値を振動量データPとする(ステップ1103)。その一方、ステップ1102でNoと判断された場合には、CPU31は、振動量パラメータの総和ΣEを、振動量データPとする(ステップ1104)。
また、CPU31は、発音中の楽音の音程を参照して、完全5度の関係を有する楽音が存在するかを判断し(ステップ1105)、存在する場合には(ステップ1105でYes)、振動量データPに、完全5度についての共鳴係数Int5を乗じる(ステップ1106)。さらに、CPU31は、発音中の楽音の音程を参照して、完全8度の関係を有する楽音が存在するかを判断し(ステップ1107)、存在する場合には(ステップ1107でYes)、振動量パラメータPに、完全8についての共鳴係数Int8を乗じる(ステップ1108)。
本実施の形態において、共鳴係数Int1、Int5、Int8は、それぞれ1より大きい数であり、Int1>Int8>Int5である(たとえば、Int1=1.4、Int8=1.3、Int5=1.2)。したがって、発音中の楽音の音程に完全1度、完全8度および完全5度の何れかが含まれる場合に、その音程にしたがって、振動量データPが増分される。
弦共鳴付加処理(ステップ809)が終了すると、CPU31は、得られた振動量データPに基づいて、振動部35の振動モータ22、23をそれぞれ駆動するための駆動信号を生成して、振動モータ22、23に出力する(ステップ810)。これにより、振動モータ22、23は振動し、ボディ11およびヘッド13の振動が演奏者に伝えられる。なお、振動モータ22は、ヘッド13より体積および重量の大きいボディ11を振動させる必要があるため、振動モータ22は、振動モータ23よりより大きく振動するように駆動信号は出力されるのが望ましい。
振動処理(ステップ404)の後、CPU31(音源処理部45)は発音処理を実行する(ステップ405)。図12および図13は、本実施の形態にかかる発音処理の例を示すフローチャートである。図12に示すように、CPU31は、弦を特定するパラメータkを「1」に初期化し(ステップ1201)、パラメータkが「6」より大きくなるまで(ステップ1202でYes)、ステップ1203以降の処理を繰り返す。
CPU31は、RAM33を参照して、第k弦についてのスイッチオンイベントがあるかを判断する(ステップ1203)。ステップ1203でYesと判断された場合には、CPU31は、RAM13を参照して、第k弦の振動レベルが「0」より大きいかを判断する(ステップ1204)。ステップ1204でYesと判断された場合には、CPU31は、スイッチオンイベントにしたがってオン状態となったフレットスイッチに対応する音高の楽音を、振動レベルに基づくベロシティで発音するようにサウンドシステム36の音源部37に指示する(ステップ1205)。音源部37は、指示にしたがって、ROM32から音高に応じて波形データを読み出して、所定のベロシティを乗じて楽音データを生成し、オーディオ回路38に出力する。CPU31は、その後、第k弦のスイッチオンイベントをクリアするとともに、RAM33に格納される第k弦の発音ステータスを「発音中」とする(ステップ1206)。これにより、新規に第k弦上のフレットスイッチがオンされ、かつ、第k弦が弾弦されたときに、フレットスイッチに対応する音高の楽音の発音を開始させることができる。
ステップ1207でNoと判断された場合には、CPU31は、第k弦の発音ステータスが「発音中」であるかを判断する(ステップ1207)。ステップ1207でYesと判断された場合には、CPU31は、現在発音中の第k弦の楽音の音量レベルを、現在の第k弦の振動レベルに従ったものにするよう、音源部37に指示する(ステップ1208)。音源部37は、CPU31からの指示にしたがって、読みだされた波形データに、第k弦の現在の振動レベルに基づく音量レベル(エンベロープ)を乗じて楽音データを生成し、オーディオ回路38に出力する。
さらに、CPU31は、第k弦の振動レベルが「0」になっている場合には(ステップ1209でNo)、RAM33に格納される第k弦の発音ステータスを「消音中」とする(ステップ1210)。ステップ1204でNo或いはステップ1209でYesと判断された場合、または、ステップ1206或いはステップ1210が終了した場合には、ステップ1304に進む。
ステップ1207でNoと判断された場合には、CPU31は、第k弦の振動レベルが「0」より大きいかを判断する(ステップ1301)。ステップ1301でYesと判断された場合には、CPU31は、第k弦の開放弦に対応する音高の楽音を、振動レベルに基づくベロシティで発音するようにサウンドシステム36の音源部37に指示する(ステップ1302)。音源部37は、指示にしたがって、ROM32から音高に応じて波形データを読み出して、所定のベロシティを乗じて楽音データを生成し、オーディオ回路38に出力する。CPU31は、その後、第k弦のスイッチオンイベントをクリアするとともに、RAM33に格納される第k弦の発音ステータスを「発音中」とする(ステップ1303)。これにより、新規に第k弦において、フレットスイッチがオンされていない、すなわち、開放弦の状態で第k弦が弾弦されたときであっても、開放弦に対応する音高の楽音の発音を開始させることができる。
また、CPU31は、RAM33を参照して、第k弦についてのスイッチオフイベントがあるかを判断する(ステップ1304)。ステップ1304でYesと判断された場合には、CPU31は、第5弦の楽音の消音を音源部37に指示する(ステップ1305)。音源部37は、第k弦について発音中の楽音データに、所定のリリースエンベロープを乗じて、楽音を消音させる。CPU31は、その後、第k弦のスイッチオフイベントをクリアするとともに、RAM33に格納される第k弦の発音ステータスを「消音中」とする(ステップ1306)。これにより、新規に第k弦上のフレットスイッチがオフにされた場合には、当該フレットスイッチに対応する音高の楽音を消音させることができる。
その後、CPU31はパラメータkをインクリメントして(ステップ1307)、ステップ1202に戻る。
本実施の形態によれば、CPU31(弦振動検出部43)は弦振動スイッチ40からの信号に基づき、複数の弦16のそれぞれの振動レベルを検出する。また、CPU31(振動量演算部46)は、弦振動検出部43により検出された弦の振動レベルに基づく第1の振動パラメータを算出し、当該第1の振動パラメータに対応する所定の振動量を示す駆動信号を生成する。駆動信号は振動部35に与えられ、本体内に配置された振動モータ22およびヘッド内に配置された振動モータ23が振動する。したがって、本実施の形態においては、実際の弦楽器と同様に、弦が振動したときに、その振動にしたがって電子楽器10自体を振動させることができる。これにより、ユーザにより演奏しているときの臨場感を感じさせることが可能となる。
また、本実施の形態によれば、CPU31(振動量演算部46)は、各弦の振動レベルに基づく第1の振動パラメータの総和に基づいて駆動信号を生成する。したがって、弦のそれぞれの振動に基づく適量な振動をボディ11およびヘッド13に発生させることが可能となる。
また、本実施の形態においては、ネック12において、長手方向に複数のフレットスイッチが並べて配設され、かつ、当該複数のフレットスイッチが、前記長手方向に直行する列方向に前記弦の数だけ配設されている。CPU31(フレットスイッチ状態検出部44)は、フレットスイッチの操作状態を検出し、CPU31(振動量演算部46)は、オン状態のフレットスイッチの、ネック12の長手方向における位置に基づき、位置がボディ11に近づくのにしたがって、その振動レベルを小さくする第2の振動パラメータを算出し、第1の振動パラメータおよび第2の振動パラメータに基づき前記駆動信号を生成する。
実際の弦楽器において、押弦するフレット位置がボディに近い側(高音側)になるのにしたがって、振動する弦長が短くなるため振動量が減少する。フレット位置に応じて振動量を制御することにより、実際の弦楽器の弦長に基づく振動量と同様の振動量を取得することが可能となる。
本実施の形態においては、CPU31(振動量演算部46)は、列ごとに、オン状態のフレットスイッチの、ネック12の長手方向における位置に基づき、位置がボディ11に近づくのにしたがって、その振動レベルを小さくする第2の振動パラメータを算出し、列についての第2のパラメータと、当該列に対応する弦についての第1のパラメータとに基づいたパラメータの総和を算出し、当該振動パラメータの総和に基づいて、駆動信号を生成している。したがって、弦のそれぞれの振動に基づくきめ細かで適量な振動をボディ11およびヘッド13に発生させることが可能となる。
さらに、本実施の形態においては、CPU31(振動量演算部46)は、音源部37が発生する楽音の音高に基づき、弦楽器における開放弦のときに全弦長に対する、当該音高の楽音を発生するときの弦長の比にしたがって、当該比が小さくなるのにしたがって、その振動レベルを小さくする第2の振動パラメータを算出している。したがって、実際の弦楽器における演奏の際の振動と同様な振動を、ボディ11およびヘッド13に発生させることができる。
また、本実施の形態においては、CPU31(振動量算出部46)は、弦の各々に対応付けて、前記弦の張設方向の垂直方向に沿って一様に減少或いは増大する第3の振動パラメータを参照して、各弦の振動レベルに基づく第1の振動パラメータと第3のパラメータに基づいたパラメータの総和を算出し、当該振動パラメータの総和に基づいて、駆動信号を生成する。実際の弦楽器では、弦の太さは弦の張設方向の垂直方向にそって一様に大きく或いは小さくなる。弦の太さが大きくなるのにしたがってその振動量は大きく、したがって、弦楽器自体を振動させる作用も大きくなる。本実施の形態によれば、このような弦楽器の弦の太さを考慮したボディ11およびヘッド13の振動を実現することができる。
さらに、本実施の形態においては、CPU31(振動量演算部46)は、音源部37により発生された楽音の音程が所定の度であるときに、振動パラメータの総和を増大させ、増大された振動パラメータの総和にしたがって駆動信号を生成する。実際の弦楽器では、一定の協和音が生じているときに、弦同士が共鳴する。本実施の形態によれば、共鳴による振動を電子楽器においても実現することが可能となる。
また、本実施の形態においては、共鳴度の大きな順に3つ(完全1度、完全8度および完全5度)について、振動パラメータの増大の度合いも上記順序で、振動パラメータを増大させている。したがって、共鳴度にしたがった振動を実現することが可能となる。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
本実施の形態においては、弦の振動レベルに基づく第1の振動パラメータ、仮想的な弦の長さに基づく第2の振動パラメータ、および、仮想的な弦の太さに基づく第3の振動パラメータを算出し、これらを乗じて振動パラメータを得ているが、これに限定されるものではない。たとえば、第1の振動パラメータのみを用いてもよい。或いは、第1の振動パラメータおよび第2の振動パラメータを用いても良いし、第1の振動パラメータおよび第3の振動パラメータを用いても良い。さらに、他の振動パラメータの組み合わせを採用しても良い。
また、本実施の形態においては、弦共鳴付加処理において、完全1度、完全8度および完全5度について、1以上の共鳴係数を、振動量パラメータの総和に乗じて、値を増分させている。しかしながら、他の音程(たとえば、完全4度、長10度)においても所定の共鳴係数を用いて値を増分させても良い。