Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JPH0769686B2 - 電子弦楽器 - Google Patents
[go: Go Back, main page]

JPH0769686B2 - 電子弦楽器 - Google Patents

電子弦楽器

Info

Publication number
JPH0769686B2
JPH0769686B2 JP63007279A JP727988A JPH0769686B2 JP H0769686 B2 JPH0769686 B2 JP H0769686B2 JP 63007279 A JP63007279 A JP 63007279A JP 727988 A JP727988 A JP 727988A JP H0769686 B2 JPH0769686 B2 JP H0769686B2
Authority
JP
Japan
Prior art keywords
data
value
string
fret
processing unit
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 - Lifetime
Application number
JP63007279A
Other languages
English (en)
Other versions
JPH01183698A (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 JP63007279A priority Critical patent/JPH0769686B2/ja
Priority to US07/296,807 priority patent/US4951546A/en
Publication of JPH01183698A publication Critical patent/JPH01183698A/ja
Publication of JPH0769686B2 publication Critical patent/JPH0769686B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 本発明は電子弦楽器で発生される楽音にレガートを付与
する技術に係り、特に、演奏者のレガートスイッチの操
作時にレガートを付与した状態で楽音の音高変更する技
術に関する。
[従来の技術] 従来、この種の電子弦楽器としては、例えば特開昭62−
99790号公報に開示されているものが知られている。こ
の公報に開示されている電子弦楽器は超音波を弦に供給
し、該超音波の発信から弦と接触しているフレットで反
射される超音波のエコーの受信までの時間間隔に基づき
弦と接触しているフレットを判別する。このようにして
弦と接触するフレットが判別されると、一定値以上の振
幅が検出された撥弦時毎に弦と接触するフレットに対応
する音高の楽音の発生に必要な楽音信号が合成され、サ
ウンドシステムが撥弦毎に指定された音高の楽音を発生
させる。
[発明が解決しようとする問題点] しかしながら、上記電子弦楽器では演奏者の撥弦に基づ
き一定値以上の振幅の振動が発生する毎に楽音を発生さ
せていたので、撥弦毎に指定されたエンベロープを有す
る楽音信号が発生し、発生する楽音にレガートを付与す
ることができなかった。その結果、演奏に奏法上の制限
が発生し、演奏時の音楽表現に制限が生じるという問題
点があった。
したがって、本発明の目的は楽音にレガートを付与可能
な電子弦楽器を提供することである。
[問題点を解決するための手段] 本願発明の要旨は第1図に示されているように、音高指
定部1を有する楽器本体2に張設され音高指定時に上記
音高指定部1に押圧される弦3と、該弦3に超音波を与
え該超音波の伝播時間に基づき上記弦3が接触する上記
音高指定部1の位置を判別する位置判別手段4が、撥弦
の弦振動に基づき撥弦を検出する撥弦検出手段5と、上
記撥弦時に上記位置判別手段4で判別された上記音高指
定部1の位置に対応する音高の楽音を撥弦の強さに対応
した音量で発生させる楽音発生手段6と、演奏者が操作
可能なレガートスイッチ7と、該レガートスイッチ7が
操作された状態で撥弦後に上記弦と上記音高指定部との
接触位置が変更されると上記楽音発生手段により発音さ
れる楽音にレガートを付与しつつ音高を変更させるレガ
ート発生手段8とを有することである。
[発明の作用および発明の効果] 上記構成に係る電子弦楽器の演奏時には、演奏者がレガ
ートスイッチを操作することなく弦3を音高指定部1に
押圧しつつ撥弦して演奏すると、位置判別手段4が弦3
と音高指定部1との接触位置を判断して該接触位置に関
する情報を楽音発生手段6に送出し、撥弦がなされる
と、撥弦検出手段5が楽音発生手段6に楽音の発生を指
示する。したがって、楽音発生手段6は撥弦毎に楽音の
発生、終了を繰り返す。しかしながら、レガートスイッ
チ8が操作された状態で撥弦がなされ、その後に演奏者
が弦3と音高指定部1との接触位置を変更するとレガー
ト発生手段8が楽音発生手段6に発生する楽音にレガー
トを付与することを指示する。その結果、楽音発生手段
6は発生中の楽音を終了させることなく音高を変更し、
発生される楽音にレガートを付与する。したがって、本
願発明に係る電子弦楽器では、演奏者がレガートスイッ
チの操作により発生する楽音にレガートを付与すること
ができ豊かな音楽表現が可能になるという効果を得られ
る。
[実施例] 電子弦楽器の概略構成 第2図は本発明の一実施例の概略構成を示すブロック図
である。図において、21はギターボディであり、このギ
ターボディ21の長手方向には6本の直径の異なる弦23,2
5,・・・が互いに並行に張設されている。各弦23,25,・
・のテールピース側には圧電素子27,29,・・が対応する
弦23,25,・・に接触するようにギターボディ21に固定さ
れており、更に、各圧電素子27,29,・・の近傍には電磁
ビックアップ31,33,・・が弦23,25,・・に対応して固定
されている。更に、圧電素子27,29,・・と電磁ピックア
ップ31,33,・・との間にはベンドセンサ35,37,・・が弦
23,25,・・に対応してギターボディ21に固定されてお
り、これらのベンドセンサ35,37,・・は弦23,25,・・の
ベンド量を検出して発生する楽音にベンド効果を付与す
る。一方、ギターボディ21のネック側には複数、典型的
には24本のフレット39,41,・・,43,45が弦23,25、・・
に略直角に固定されており、各弦3,25,・・は演奏時に
ギターボディ21のネック部に押圧されてフレット39,41,
・・,43,45に接触する。
これらの圧電素子27,29,・・と電磁ピックアップ31,33,
・・とベンドセンサ35,37,・・とはスイッチ群59ととも
にインターフェース61を介してバスシステム63に接続さ
れており、このバスシステム63には中央処理装置(CP
U)65とプログラムメモリ67とレジスタ群69と各種のテ
ーブル71とトーンジェネレータ(TG)73とが更に接続さ
れている。上記プログラムメモリ65は読み出し専用メモ
リで構成されており、第10図〜第14図、第16図〜第18
図、第20図〜第24図の各プログラムに示されているアル
ゴリズムを実現するための命令が保持されている。ま
た、レジスタ群69は随時読み出し書き込みメモリで構成
されており、後に詳述する各種データを書き換え可能に
保持している。これに対して、各種テーブル71は読み出
し専用メモリで構成されており、上記プログラムの実行
の際参照される固定データが記憶されている。トーンジ
ェネレータ73は中央処理装置65からデータの供給を受け
て楽音信号を形成し、この楽音信号は増幅器とスピーカ
とで構成されるサウンドシステム75に供給されて楽音の
発生に供される。第2図に示された回路は更にクロック
発生回路77を有しており、このクロック発生回路77は1K
Hzのタイマークロックを中央処理装置65とインターフェ
ース61とに供給している。中央処理装置65はタイマーク
ロックの印加時にタイマー割り込みを発生させ、第11図
に示されているプログラムを実行する。これに対して、
インターフェース61はタイマークロックCKの供給を受け
ると1msec毎の弦振動の最大振幅値を保持し、中央処理
装置65からのアクセスに備える。この弦振動の最大振幅
値のラッチについては第5図に関して後に詳述する。
インターフェース61の詳細構成 続いて、第3図〜第5図を参照してインターフェース61
の詳細構成を説明する。第3図は超音波の発生回路およ
び超音波の伝播時間の計時回路の構成を示すブロック図
であり、第3図に現れる主要信号のタイミングを第4図
に示す。第5図は1msec毎の弦振幅の最大値を検知する
回路の構成を示すブロック図である。また、第6図はベ
ンドセンサから供給されるベンド量を処理する回路であ
る。
まず、第3図〜第4図を参照して超音波の発生回路およ
び伝播時間の計時回路を説明する。これらの回路は各圧
電素子27,29,・・毎に設けられているが、以下の説明で
は圧電素子27に関してのみ説明する。
上述のようにクロック発生回路77は1msec毎にタイマー
クロックCKを発生させており(第4図(A)参照)、タ
イマークロックはインターフェース61の単安定マルチバ
イブレータ(M.M.1)79に供給されてタイマークロックC
Kの前縁で立ち上がる駆動パルスP1を発生させる(第4
図(B)参照)。この駆動パルスP1は定電流増幅器81で
増幅された後に圧電素子27に供給される。その結果、圧
電素子27は高周波で機械的に振動し(以下、この高周波
の振動を超音波BRという)、この超音波BRは弦23に伝達
される。弦23に伝達された超音波BRは弦23を伝播してゆ
き、演奏者が音高の指定を所望して弦23をギターボディ
21のネックに押圧していると、超音波BRは弦23と接触し
ているフレット39,41,・・,43または45に反射されてエ
コーECを発生させる。このエコーECは再び弦23を伝播し
てゆき、圧電素子27で再び電気信号(以下、エコー信号
という)に変換される(第4図(C)参照)。このエコ
ー信号はアナログゲート83に供給されるが、アナログゲ
ート83は単安定マルチバイブレータ(M.M.2)からの禁
止信号DS(第4図(D)参照)の存在期間のみオフして
いるので、エコー信号の到着時にはオンしており、した
がって、エコー信号はアナログゲート83を通過してピー
クホールド回路87,89に供給される(第4図(E)参
照)。ピークホールド回路87は100KHzのタイミング信号
に応答してエコー信号をサンプリングし、アナログコン
パレータ91に供給する。このアナログコンパレータ91
は、ディジタルしきい値(エコーしきい値データ、レジ
スタ群69から転送される)を保持するレジスタとアナロ
グ−ディジタル変換器(以下、A/D変換器という)とで
構成されるしきい値供給回路93から供給されるアナログ
しきい値と1/100msec毎に上記ピークホールド回路87か
ら出力されるエコー信号の瞬間値とを比較して、エコー
信号の瞬間値がアナログしきい値より大きくなる期間高
レベルに移行するエコー検出信号EDを立ち上がり検出回
路95と立ち下がり検出回路97とにそれぞれ供給する(第
4図(F)参照)。したがって、立ち上がり検出回路95
はエコー検出信号EDの前縁を検出して第1カウント終了
パルスP2を発生させる(第4図(G)参照。)一方立ち
下がり検出回路97はエコー検出信号EDの立ち下がりを検
出して第2カウント終了パルスP3を発生させる(第4図
(H)参照)。これに対して、ピークホールド回路89は
エコー信号の最大値を検出し、該最大値をA/D変換器99
でディジタル値に変換してこれを遅延回路100から供給
されるラッチ信号の応答してエコーレベルデータECHLVL
Sとしてレジスタ101に記憶させる。
かかるエコー信号に関する処理と並行して、伝播時間の
計時のための準備がなされる。すなわち、先行するエコ
ー検出信号でリセットされたフリップフロップ103,105
にタイマークロックCKが供給されると、これらのフリッ
プフロップ103,105はセットされ、アンドゲート107,109
の一方の入力がそれぞれ高レベル(第4図(I),
(J)参照)に移行する。その結果、アンドゲート107,
109は2MHzのクロックパルスを通過させ、カウンタ111,1
13はアンドゲートから供給されるクロックパルスをカウ
ントパルスCNTとして計時を開始する。したがって、カ
ウンタ111,113は駆動パルスP1の発生、すなわち超音波
の発生から立ち上がり検出回路95及び立ち下がり検出回
路97がフリップフロップ103,105をそれぞれリセットす
るまでの間に供給されるカウントパルスCNTを計数する
(第4図(K),(L)参照)。換言すると、カウンタ
111は超音波の発生からエコーパルスの前縁までの間に
供給されたカウントパルス数を、カウンタ113は超音波
の発生からエコーパルスの後縁までの間に供給されたカ
ウントパルス数をそれぞれ計数することになる。これら
のカウンタ111,113内に保持されている計数値は加算回
路115で加算され、しかる後にエコーカウントデータECH
CNTSとしてレジスタ117に供給、保持される。
次に、第5図を参照して1msec毎に弦振幅の最大値を検
出するための回路を説明する。この回路も電磁ピックア
ップ31,33,・・毎に設けられているが、以下には電磁ピ
ックアップ31について設けられている回路についてのみ
説明する。
第5図において、電磁ピックアップ31から出力されるア
ナログ電気信号の波形は撥弦時の弦振動の波形に相似し
ており、このアナログ電気信号は30KHzのサンプリング
クロックでサンプリングされてA/D変換器119に供給され
る。A/D変換器119ではアナログ電気信号の瞬時波高値を
ディジタル値に変換して絶対値抽出回路121でその符号
ビットを除去し、絶対値(以下、単にディジタル波高値
という)とする。このディジタル波高値はレジスタ123
と比較器125の一方の入力端子とに並行に供給され、レ
ジスタ123の出力端子は上記比較器125の他方の入力端子
とレジスタ127とに並行に供給されている。したがっ
て、レジスタ123がタイマークロックCKの遅延信号(遅
延回路129により形成される)でリセットされた後に順
次供給されるディジタル波高値をラッチし、このラッチ
されたディジタル波高値は順次供給されるディジタル波
高値と比較器125で比較される。比較器125が新たに供給
されたディジタル波高値がレジスタ123にラッチされて
いるディジタル波高値より大きと判別すれば、比較器12
5はレジスタ123にラッチ信号を送出して新たなディジタ
ル波高値をレジスタ123に保持させる。かかる比較結果
に基づくディジタル波高値の書換えを1msec続けるとレ
ジスタ123には該1msec間の最大ディジタル波高値が残
り、この最大ディジタル波高値はタイマークロックCKに
応答してレジスタ127にラッチされる。したがって、レ
ジスタ127は先行する1msec間の最大ディジタル波高値を
後続する1msec間保持することになり、このレジスタ127
内のディジタル波高値は最大波高値データPICKUPSとし
て後述するように中央処理装置65に読み取られる。な
お、レジスタ123はレジスタ127が最大ディジタル波高値
をラッチした後にタイマークロックCKの遅延信号でリセ
ットされる。
次に、ベンド量を処理するための回路について説明す
る。この回路もベンドセンサ35,37,・・毎に設けられて
いるが、以下の説明はベンドセンサ35に付随している回
路についてのみ説明する。第6図において、ベンドセン
サ35は発光素子131と受光素子133と弦23の移動にともな
い光路面積134を変化させる遮へい板135とで構成されて
おり、遮へい板135の移動にともない変化する光量は受
光センサ133からA/D変換器137でディジタル光量値に変
換され、このディジタル光量値はベンドデータBENDSと
してレジスタ139に保持される。このベンドデータBENDS
と遮へい板135の回動角との関係を第7図を参照して詳
説する。弦23が中立状態にあるときは、遮へい板135は
第7図(A)に示されているように弦23に対して略垂直
であり、光路面積134は略半減している。このときのベ
ンドデータ値BENDSは16進数で40(40H)となるように調
整されている。これに対して、弦23が左側に倒されると
光路面積は第7図(B)に示されているように最大にな
り、このときのベンドデータBENDSは7FHとなり、反対に
弦23が右側に倒されると光路面積134は最小になり、ベ
ンドデータBENDSは00Hとなる。従って、ベンドデータBE
NDSは00H〜7FHの間で弦の左右の移動に対応して変化す
ることになる。
スイッチ群に含まれているスイッチ インターフェース61に接続されているスイッチ群59に含
まれているスイッチの使用を具体的に説明する。スイッ
チ群59には、メインスイッチ、レガートスイッチ、レフ
トハンドスイッチ、初期化スイッチ、音色選択スイッ
チ、音量選択スイッチ、ベンドカーブ選択スイッチが含
まれている。メインスイッチは電子弦楽器の起動と停止
とに使用されるスイッチであり、メインスイッチの操作
により電子弦楽器が起動されるとメインスイッチオンイ
ベントが中央処理装置65により検出され、第10図に示さ
れているメインルーチンプログラムの実行が開始され
る。レガートスイッチは連続する楽音にレガートを付与
するか否かのためのスイッチであり、レガートスイッチ
オンイベント毎にレガート付与の有無を交互に決定す
る。レガート付与の時には複数の楽音はアタックを繰り
返すことなくそのピッチを漸次変化させる。すなわち、
レガートスイッチの操作によりレガート付与の状態でフ
レットを変更して(t1,t2)撥弦すると、第8図A,B,Cに
示されているように楽音のエンベロープはアタックを繰
り返しつつ再度の撥弦時には急速に減衰する。ところ
が、レガートスイッチの操作によりレガートなしの状態
で撥弦後にフレットを変更すると楽音のピッチは第8図
Dに示されているように撥弦時に急速に減衰することな
くピッチを連続的に変化させる。この場合、楽音の音量
は変化しない。これに対して、レフトハンドスイッチも
同様の操作でレフトハンドモードの有無を決定する。レ
フトハンドモードにおいて、演奏者が弦23,25,・・をフ
レット39,41,・・,43,45に押圧すると撥弦しなくても一
定の音量で楽音が発生する。したがって、演奏者は一方
の手、通常左手のみで電子弦楽器を演奏することができ
る。初期化スイッチはメインスイッチオンイベント時に
初期設定された各種データを再度設定し直すときに使用
されるスイッチであり、第10図〜第11図に示された初期
化モード時に実行されるサブルーチンプログラムが再び
実行される。この初期化スイッチオンイベントについて
は第10図に関する説明で詳細に述べられる。音色選択ス
イッチは電子弦楽器で発生される楽音の音色を選択する
ときにしようされるスイッチであり、本実施例では電気
ギターの音色以外にも、種々の楽器の音色、電子合成音
を音色選択スイッチの選択に基づいて発生させることが
できる。音量選択スイッチは電子弦楽器で発生される楽
音の音量を選択するスイッチであり、6弦全体を一括し
て選択することも、1弦ずつ音量のバランスを調整する
こともできる。ベンドカーブ選択スイッチは弦のベンド
時に楽音のピッチの変化の軌跡を選択するスイッチであ
り、本実施例の場合には、第9図に示されているように
E,F,Gの3種類の軌跡から所望の軌跡を選択することが
できる。すなわち、中立状態(40H)の弦を第7図
(B),(C)に関して説明したように左側(7FH)、
または右側(00H)に傾斜させると、軌跡Eが選択され
ていると楽音のピッチは急峻に途中まで変化した後に一
定となるが、軌跡Fが選択されていると、楽音のピッチ
はネックの幅全域にわたって一定に変化する。これに対
して、軌跡Gが選択させていると、楽音のピッチは当初
緩やかに変化し、その後、急峻に変化する。したがっ
て、演奏者はベンドカーブ選択スイッチを操作して楽想
に適したピッチの軌跡を選択することができる。
レジスタ群に保持されるデータ 次に、レジスタ群69に保持され、後に詳述するプログラ
ムの実行に使用されるデータを表1に示す。
各種テーブル 第2図に示されている各種テーブルには以下のものが含
まれている。
(1)BENDCNV:ベンドセンサ35,37,・・の出力値を楽音
のピッチの変化量に変換するテーブルであり、ベンドセ
ンサデータBENDにしたがいBENDCNV(BEND)で表され
る。第18図に示されたピッチ変更データ算出サブルーチ
ンの実行時に使用される。
(2)FKCNV:フレット番号データFRETの対応するキーコ
ードFKCNV(FRET)を各弦毎に保持するテーブルであ
り、第22図に示されたキーオンサブルーチンの実行時に
使用される。なお、弦毎のフレット位置とキーコードと
の対応は別表1に示されており、キーコードとキーとの
対応は別表2に示されている。
(3)RNGR,RNGL:仮想ベンド量の右側限界値および左側
限界値、これらの限界値はフレット位置毎に設定され、
例えばRNGR(FRET)で表されている。これは、ネック部
の幅は0番フレットに近づくと狭くなり、一定ではない
ためである。第18図に示されたピッチ変更データ算出サ
ブルーチンの実行時に使用される。
(4)10〜124、1BEND:下駒から各フレットまで、およ
び下駒からベンドセンサまでの距離。具体的な数値は別
表3に示す。
メインルーチンプログラム まず、中央処理装置65で実行されるメインルーチンプロ
グラムを第10図に基づき説明する。電子弦楽器のメイン
スイッチがオンされると、中央処理装置65はタイマー割
り込みを禁止した状態でステップP1、ステップP2を順次
実行して以下に説明するレジスタの初期化を行う。すな
わち、カウントデータN、累算値データSUMにそれぞれ
データ値「0」を設定し、モードデータMODEのデータ値
は「1」に設定する(ステップP1)。したがって、タイ
マー割り込みが解除されると上記モードデータMODEのデ
ータ値「1」に基づき電子弦楽器は初期化モードとな
る。続くステップP2では、電磁ピックアップ時間制御デ
ータPCKCNTとキーオントリガデータONTRGと先行波高値
データOPCKとピックアップ最大値データPEAKとミュート
カウントデータMUTECNTとフレット位置データNFRETとキ
ーコードデータOKCとをそれぞれ「0」に設定する。し
かる後に、中央処理装置65はタイマー割り込み禁止を解
除し、タイマークロックCKに基づく割り込みを可能にす
る(ステップP3)。従って、ステップP3以降はタイマー
割り込みが可能になり、タイマー割り込みに際しては後
に第11図に関連して説明する各種サブルーチンプログラ
ムを実行する。しかしながら、タイマー割り込みにより
実行するサブルーチンプログラムの終了時には再びメイ
ンルーチンプログラムに戻ってその実行を続ける。した
がって、以下のメインルーチンプログラムに関する説明
はタイマー割り込みが発生しなかったものとして続け
る。
上述のようにタイマー割り込みの解除がなされると、中
央処理装置65はレジスタ群69からモードデータMODEを読
み出してそのデータ値が「0」であるか否かを判断する
(ステップP4)。モードデータMODEのデータ値が「0」
以外(N)なら電子弦楽器は初期値設定モードなので、
中央処理装置65はステップP4を繰り返しつつ演奏モード
に切り替わるのを待つ。上述のように電子弦楽器のメイ
ンスイッチオンイベントではステップP1においてモード
データMODEのデータ値は「1」に設定されているので、
中央処理装置65はステップP4を繰り返しつつ初期値設定
のためのサブルーチンP200,P300,P400の終了を待つこと
になる。ところが、初期値設定が終了して初期値設定モ
ードから演奏モードに切り替わるとステップP4の判断結
果が「イエス」(Y)となるので、中央処理装置65はス
テップP5に進んでレガートスイッチオンイベントの発生
の有無を判断する(ステップP5)。中央処理装置65はス
テップP5でレガートスイッチオンイベントの発生を検出
すると、レガート状態データLGTのデータ値を「0」か
ら「1」に、またはその反対に切り換える(「LGT←1
−LGT」の演算(ステップP6))。その後にレフトハン
ドスイッチオンイベントの発生の有無をステップP7で判
断する。ステップP5でレガートスイッチオンイベントの
未発生を検出したときには、中央処理装置65はステップ
P6を実行することなくステップP7に進み、レフトハンド
スイッチオンイベントの検出の有無を判断する。ステッ
プP7でレフトハンドスイッチオンイベントが検出される
と、レフトハンドモードデータLEFTのデータ値を「0」
から「1」に、またはその反対に切り換える(「LEFT←
1−LEFT」の演算(ステップP8))。しかる後に、ステ
ップP9に進み、その他の処理、例えば音色選択、音量選
択等に関する処理を実行する。一方、ステップP7でレフ
トハンドスイッチオンイベントの未発生が判別されたと
きには、中央処理装置65はステップP8を実行することな
くステップP9に進む。この後に、中央処理装置65は初期
化スイッチオンイベントの有無をステップP10で判断
し、初期化スイッチオンイベントの発生時(Y)にはタ
イマー割り込み再び禁止して(ステップP11)ステップP
1に戻り、ステップP1,P2,P3,P4,P200,P300,P400で構成
される初期化のためのルーチンを実行する。一方、ステ
ップP10で初期化スイッチオンイベントが検出されなか
ったときには、ステップP5に戻り、以後、ステップP5〜
P10で構成される処理を繰り返し実行しつつタイマー割
り込みに対処する。
タイマー割り込み処理ルーチン すでに説明したように、クロック発生回路77は1msecの
間隔でタイマークロックCKを発生させており、ステップ
P4〜P10の間にタイマークロックCKに基づくタイマー割
り込みが発生すると、中央処理装置65はこのタイマーク
ロックCKに応答して第11図に示されているタイマー割り
込み処理ルーチンを実行する。なお、以下の説明は弦23
についてのみの説明であるが、他の5弦も同様なので、
時分割等で並列に処理することができる。
タイマー割り込みが発生すると、中央処理装置65はレジ
スタ群69からモードデータMODEを読み出してその値を判
断し(P100)、該モードデータンMODEのデータの値が
「0」なら後述する演奏モードの処理を実行し、モード
データMODEの値が「1」「2」「3」なら以下に説明す
るサブルーチン(P200,P300,P400)をそれぞれ実行す
る。本実施例の場合、サブルーチンP200,P300,P400が初
期値設定モードを構成している。
まず、モードデータMODEのデータ値が「1」の場合につ
いて説明する。上述のように、メインルーチンプログラ
ムのステップP1においてモードデータMODEは「1」に設
定されているので、メインスイッチオンイベント発生
後、または初期化スイッチオンイベント発生後のタイマ
ー割り込み時にはステップP100の判断はモードデータ値
「1」となる。したがって、中央処理装置65は第12図に
示されているベンドセンサ初期設定サブルーチンを実行
する。
ベンドセンサ初期設定サブルーチン ベンドセンサ初期設定サブルーチンが開始されると、中
央処理装置65はレジスタ139からベンドデータBENDSを読
み込み(ステップP201)、該ベンドデータBENDSをベン
ドセンサデータBENDとしてレジスタ群に送出する(ステ
ップP202)。しかる後に、中央処理装置65は累算値デー
タSUMを読み出し、累積値データSUMの値にベンドセンサ
データBENDの値を加算する(ステップP203)。第1回目
の処理時には、累積値データの値が「0」なので(ステ
ップP1参照)累積値データSUMはベンドセンサデータBEN
Dと同一の値となる。続いて、中央処理装置65はカウン
トデータNを「1」だけ歩進させ(ステップP204)、そ
の後、カウントデータNの値が「16」に達したか否かを
判断する(ステップP205)。ステップP205の判断結果が
ノー(N)の間はタイマー割り込み処理ルーチン、更に
メインルーチンプログラムに戻り、再びタイマー割り込
みの発生を待つ。
再びタイマー割り込みが発生すると、依然としてモード
データMODEのデータ値は「1」なので、中央処理装置65
はベンドセンサ初期設定サブルーチンを実行し、上記ス
テップP201〜P205を繰り返す。このようにして、中央処
理装置65は、タイマー割り込みが発生する毎にレジスタ
139からベンドデータBENDSを読み込み、これを累算値デ
ータSUMに加算しながら、カウントデータNの値が「1
6」に達するまてステップP201〜P205を繰り返し実行す
る。したがって、カウントデータSUMの値が「16」に達
したときには累積値データは16回分のベンドデータBEND
Sの累積値となっている。そこで、中央処理装置65は累
積値データSUMの値を「16」で除し、その商から「40H
を差し引いてベンドデータBENDSの補正値BENDIを算出し
てレジスタ群69に送出する(ステップP206)。この後、
中央処理装置65はステップP207に進み、カウントデータ
Nの値と累積値データSUMの値とをそれぞれ「0」にリ
セットし、続くステップP208でモードデータMODEの値を
「2」に設定してベンドセンサ初期設定サブルーチンを
終了する。
エコーレベル初期設定サブルーチン 上述のようにベンドセンサ初期設定サブルーチンの終了
前にモードデータMODEは「2」に設定されるので、ベン
ドセンサ初期設定サブルーチン終了後のタイマー割り込
み発生時には、タイマー割り込み処理ルーチンのステッ
プP100の判断結果はエコーレベル初期設定サブルーチン
の実行を求めるものとなり、中央処理装置65は第13図に
示されているエコーレベル初期設定サブルーチンを実行
する。エコーレベル初期設定サブルーチンでは、まず、
中央処理装置65はレジスタ101からエコーレベルデータE
CHLVLSを読み出し(ステップP301)、これを受信レベル
データECHLVLとしてレジスタ群69に送出する(ステップ
P302)。しかる後に、中央処理装置65は累算値データSU
Mを読み出し、累積値データSUMの値に受信レベルデータ
ECHLVLの値を加算する(ステップP303)。第1回目の処
理時には、累積値データの値が「0」なので(ステップ
P207参照)累積値データSUMは受信レベルデータECHLVL
と同一の値になる。続いて、中央処理装置65はカウント
データNを「1」だけ歩進させ(ステップP304)、その
後、カウントデータNの値が「16」に達したか否かを判
断する(ステップP305)。ステップP305の判断結果がノ
ー(N)の間はタイマー割り込み処理ルーチン、更にメ
インルーチンプログラムに戻り、再びタイマー割り込み
の発生を待つ。
再びタイマー割り込みが発生すると、依然としてモード
データMODEのデータ値は「2」なので、中央処理装置65
はエコーレベル初期設定サブルーチンを実行し、上記ス
テップP301〜P305を繰り返す。このようにして、中央処
理装置65は、タイマー割り込みが発生する毎にレジスタ
101からエコーレベルデータECHLVLSを読み込み、これを
累算値データSUMに加算しながら、カウントデータNの
値が「16」に達するまでステップP301〜P305を繰り返し
実行する。したがって、カウントデータSUMの値が「1
6」に達したときには累積値データは16回分のエコーレ
ベルデータECHLVLSの累積値となっている。そこで、中
央処理装置65は累積値データSUMの値を「16」で除して
開放弦レベルデータECHLVLIを算出してレジスタ群69に
送出する(ステップP306)。
この後、中央処理装置65はステップP307に進み、ミュー
トしきい値データMUTEを計算する。すなわち、開放弦レ
ベルデータECHLVLIに0.7を乗してこれをミュートしきい
値データMUTEとしてレジスタ群69に送出する。続いて、
中央処理装置65はエコーしきい値データTHLVLを計算す
る(ステップP308)、本実施例の場合、エコーしきい値
データTHLVLは開放弦レベルデータECHLVLIの0.2倍とし
ており、中央処理装置65はエコーしきい値データTHLVL
の算出後、これをレジスタ群69に送出する。このよう
に、エコーしきい値データTHLVLがレジスタ群69に保持
されると、中央処理装置65はエコーしきい値データTHLV
Lをしきい値供給回路93のレジスタに転送して演奏モー
ドでのエコー信号と雑音との判別に供する(ステップP3
09)。以後、中央処理装置65はカウントデータNと累積
値データSUMとをそれぞれ「0」にリセットし(ステッ
プP310)、しかる後にモードデータMODEを「3」に設定
してエコーレベル初期設定サブルーチンを終了する。
フレット位置算出サブルーチン 上述のようにエコーレベル初期設定サブルーチンの終了
前にモードデータMODEは「3」に設定されるので、エコ
ーレベル初期設定サブルーチン終了後のタイマー割り込
み発生時には、タイマー割り込み処理ルーチンのステッ
プP100の判断結果がフレット位置算出サブルーチンの実
行を求めるものとなり、中央処理装置65は第14図に示さ
れているフレット位置算出サブルーチンを実行する。フ
レット位置算出サブルーチンでは、まず、中央処理装置
65がレジスタ117からエコーカウントデータECHCNTSを読
み出し(ステップP401)、これを受信カウントデータEC
HCNTとしてレジスタ群69に送出する(ステップP402)。
しかる後に、中央処理装置65は累算値データSUMを読み
出し、累積値データSUMの値に受信カウントデータECHCN
Tの値を加算する(ステップP403)。第1回目の処理時
には、累積値データの値が「0」なので(ステップP310
参照)、累積値データSUMは受信カウントデータECHCNT
と同一の値になる。続いて、中央処理装置65はカウント
データNを「1」だけ進歩させ(ステップP404)、その
後、カウントデータNの値が「16」に達したか否かを判
断する(ステップP405)。ステップP405の判断結果がノ
ー(N)の間はタイマー割り込み処理ルーチン、更にメ
インルーチンプログラムに戻り、再びタイマー割り込み
の発生を待つ。
再びタイマー割り込みが発生すると、依然としてモード
データMODEのデータ値は「3」なので、中央処理装置65
はフレット位置算出サブルーチンを実行し、上記ステッ
プP401〜P405を繰り返す。このようにして、中央処理装
置65は、タイマー割り込みが発生する毎にレジスタ117
からエコーカウントデータECHCNTSを読み込み、これを
累算値データSUMに加算しながら、カウントデータNの
値が「16」に達するまでステップP401〜P405を繰り返し
実行する。したがって、カウントデータSUMの値が「1
6」に達したときには累積値データは16回分のエコーカ
ウントデータECHCNTSの累積値となっている。そこで、
中央処理装置65は累積値データSUMの値を「16」で除し
て開放弦カウントデータECHCNTIを算出してレジスタ群6
9に送出する(ステップP406)。
この後、中央処理装置65はステップP407に進み、フレッ
トカウントデータiを「0」に設定する。次に、中央処
理装置65はフレット境界データCNTTHiを算出する(ステ
ップP408)。すなわち、フレットは開放弦時に超音波が
反射される0番フレット39(F0)から圧電素子27,29,・
・に向かって第15図に示されているようにフレット番号
F0,F1,・・・・,Fi,・・,F23,F24が付与されている。圧
電素子27,29,・・から0番フレット39(F0)までの距離
を10とすると、i番目のフレットFiについての伝播時間
のしきい値を示すフレット境界データCNTTHiは CNTTHi=(1i-1−1i)/(2・10) ×ECHCNTI で求められる。上式におい、(1i-1−1i)/2は圧電素子
27,29,・・から隣接するフレットの中点までの距離を示
しており、ステップP406で求められた開放弦カウントデ
ータECHCNTIを比例配分することにより各フレットに関
する伝播時間を算出している。なお、上記各フレットま
での距離1iは各種テーブル71に固定的に保持されてい
る。このようにしてフレットカウントデータiで特定さ
れるフレットFiに関する伝播時間のしきい値が算出され
ると(現時点ではフレットカウントデータiが「0」な
ので、仮想フレットF-1に関するフレット境界データCNT
TH-1が得られる、なお仮想フレットの位置については第
15図に示されているように圧電素子から見て0番フレッ
トより更に遠い実在しないフレットである)これをレジ
スタ群69に転送し、しかる後に中央処理装置65はフレッ
トカウントデータiを「1」歩進させ(ステップP40
9)、フレットカウントデータiが「24」に達したか否
かを判断する(ステップP410)。ステップP410の判断結
果がノー(N)の間、中央処理装置65はステップP408に
戻ってステップP408〜P410を繰り返しつつ仮想フレット
F-1、フレットF0〜F24についてフレット境界データCNTT
Hiを算出する。このようにして算出されたフレット境界
データCNTTHiはレジスタ群69に送出されて保持される。
やがて全フレットについてフレット境界データCNTTHiが
算出されると、ステップP410の判断結果がイエス(Y)
になるので、中央処理装置65はフレット番号データFRET
とフレット位置データNFRETとをそれぞれ「0」とし
(ステップP411)、その後、モードデータMODEを「0」
に設定してフレット位置算出サブルーチンを終了する。
このように、フレット位置算出サブルーチンの実行終了
により初期値設定モードは終了し、モードデータMODEは
演奏モードを指定するようになる。
演奏モード時の処理 上述のようにフレット位置算出サブルーチンが終了する
とモードデータMODEのデータ値は「0」となっているの
で、中央処理装置65がタイマー割り込みに応答してタイ
マー割り込み処理を実行すると、ステップP100の判断結
果は演奏モードを指定し、中央処理装置65はフレット判
別サブルーチンP500、ベンド奏法判別サブルーチンP90
0、キーオン検出サブルーチンP1100およびミュート判別
サブルーチンP1200を順次実行する。
フレット判別サブルーチンP500では、エコー信号に基づ
き形成されたエコーカウントデータECHCNTSの値を上述
のフレット位置算出サブルーチン(第14図参照)で算出
したフレット境界データCNTTHiと順次比較して弦と接触
しているフレットを判別し、3回連続して同一フレット
を検出したらフレット位置を確定し、確定されたフレッ
トとレフトハンドモードか否かに応じてキーオフサブル
ーチン、キーチェンジサブルーチンまたはキーオンサブ
ルーチンを実行する。
ベンド奏法判別サブルーチンP900では、ベンドセンサ35
から供給されるベンドデータBENDSの有効または無効を
判断し、ベンドデータBENDSが有効なデータから、予め
選択されているベンドカーブに基づきピッチの変更量を
算出して該ピッチの変更量をトーンジェネレータ73に送
出する。
これに対して、キーオン検出サブルーチンP1100では最
大波高値データPICKUPから弦振動のピーク時を判断し、
弦振動がピークに達した後に3回連続して弦振動が減衰
したことを検出したら撥弦の発生を認め、キーオンサブ
ルーチンを実行して楽音を発生させる。
また、ミュート判別サブルーチンP1200では、キーオン
サブルーチンの実行時に最大値に設定されたミュートカ
ウントデータMUTECNTが最小値「0」になったときの受
信レベルデータECHLVLが上述のエコーレベル初期設定サ
ブルーチン(第13図)の実行時に設定されたミュートし
きい値データの値にまで減少していたら、演奏者のミュ
ート操作を検出して直ちにキーオフプログラムを実行す
る。
演奏モードでは、中央処理装置65が各レジスタ101、11
7、127、139に保持されているデータにアクセスしつ
つ、上記サブルーチンP500,P900,P1100,P1200をタイマ
ー割り込み毎に実行して演奏者の操作を判別し、トーン
ジェネレータ73に演奏者の意志にしたがった楽音の発
生、および種々の奏法に対応した楽音への効果の付与を
指示する。
以下、演奏モードにおいて実行されるサブルーチンを詳
細に説明する。
フレット判別サブルーチン フレット判別サブルーチンP500のアルゴリズムは第16図
に示されている。
フレット判別サブルーチンが開始すると、中央処理装置
65はレジスタ117からエコーカウントデータECHCNTSを読
み込み(ステップP501)、読み込だエコーカウントデー
タECHCNTSをレジスタ群69に受信カウントデータECHCNT
として転送する(ステップP502)。続いて、中央処理装
置65はカウントデータNに「−1」を設定し(ステップ
P503)、フレットカウントデータiを「0」に設定する
(ステップP504)。この後、中央処理装置65は仮想フレ
ットF-1に関するフレット境界データCNTTHiを受信カウ
ントデータECHCNTと比較して(ステップP505)、フレッ
ト境界データCNTTHiの値が受信カウントデータECHCNTの
値より大きい場合には、ステップP505の判断結果がイエ
ス(Y)となるので、フレットカウントデータiをカウ
ントデータNに転送した後に(ステップP506)、フレッ
トカウントデータiの値を「1」増加させて(ステップ
P507)、フレットカウントデータiが「24」を超えたか
否かをステップP508で判断する。フレットカウントデー
タiがエコー信号を発生させたフレットより遠いフレッ
トを指定している間はステップP505の判断結果はイエス
(Y)となるので、中央処理装置65はステップP505〜P5
08で構成されるループを繰り返し実行しながらステップ
P505の判断結果がノー(N)に変わるのを待つ。ステッ
プP505の判断結果がノー(N)になると、中央処理装置
65はステップP507に進み、フレットカウントデータiの
値をカウントデータNに設定することなくその値を
「1」だけ増加させる。このようにして、中央処理装置
65はステップP505〜P508を繰り返し実行してエコー信号
を発生させたフレットを捜査しながらステップP508の判
断結果がイエス(Y)になるのを待つ。
ステップP508の判断結果がイエスになると、中央処理装
置65は受信カウントデータECHCNTを仮想フレット〜24番
フレットのフレット境界データCNTTHiを順次比較したこ
とになるので、ステップP509に進み、カウントデータN
が仮想フレットを示す「−1」、または24番フレットを
示す「24」であるか否かを判断し、その判断結果がイエ
ス(Y)ならエコー信号が仮想フレット以遠の実在しな
いフレットで発生したか、音高の割り当てられていない
24フレットで発生したことを示しているので、受信カウ
ントデータECHCNTをエラーデータと判断してフレット位
置確定判別データSMCNTを「0」に設定する(ステップP
510)。このようにフレット位置確定判別データSMCNTが
「0」に設定されると、受信カウントデータECHCNTを発
生させたエコー信号に関しては楽音の発生はなされな
い。一方、ステップP509の判断結果が、ノー(N)の場
合には、フレット番号データFRETの値とカウントデータ
Nの値とが等しいか否かを判断する(ステップP511)。
ステップP511の判断結果がイエス(Y)なら、確定した
フレットが押し続けられているのでキーオン処理するこ
となくステップP510でフレット位置確定判別データSMCN
Tの値を「0」に設定して、タイマー割り込み処理ルー
チン(第11図)に戻る。一方、ステップP511の判断結果
がイエス(Y)ならカウントデータNの値がフレット位
置データNFRETの値と等しいか否かをステップP512で判
断し、等しくないときは(N)フレット位置確定判別デ
ータSMCNTの値を「1」に設定し(ステップP513)、し
かる後にカウントデータNの値をフレット位置データNF
RETとして設定する(ステップP514)。一方、フレット
位置データNFRETの値とカウントデータNの値とが等し
い場合には、フレット位置確定判別データSMCNTの値を
「1」だけ増加させ(ステップP515)、フレット位置確
定判別データSMCNTが「3」か否かを判断する(ステッ
プP516)。ステップP516の判断結果がノー(N)なら
ば、タイマー割り込み処理ルーチン(第11図)に戻り、
ステップP516の判断結果がイエス(Y)ならフレット番
号データFRETの値をフレット位置データNFRETの値に一
致させ(ステップP517)、フレット位置確定判別データ
SMCNTを「0」に設定する(ステップP518)。このよう
に、本実施例では同一のフレットが3回検出されたとき
のみ該フレットを弦と接触しているフレットと認定す
る。
中央処理装置65は続いてフレット番号データFRETの値が
「0」であるか否かを判断し(ステップP519)、フレッ
ト番号データFRETの値が「0」なら弦を押圧して撥弦し
た後に開放弦に移行したことを示しているので、中央処
理装置65はキーオフサブルーチンP600を実行して楽音の
発生を停止させる。これに対して、フレット番号データ
FRETの値が「0」以外なら、ステップP520に進み、レフ
トハンドモードデータLEFTの値が「1」であるか否かを
判断し、その判断結果がイエス(Y)ならレフトハンド
演奏に備えてピックアップ最大値データPEAKに平均的音
量値を示す「40H]を設定し(ステップP521)、その
後、キーオンサブルーチンを実行してタイマー割り込み
サブルーチンに戻る(ステップP700)。一方、ステップ
P520の判断結果がノー(N)なら、中央処理装置65はキ
ーチェンジサブルーチンP800を実行してタイマー割り込
み処理ルーチンに戻る。以上説明したキーオフサブルー
チン、キーオフサブルーチン及びキーチェンジサブルー
チンは後に詳述する。
ベンド奏法判別サブルーチン 中央処理装置65は上述したフレット位置判別サブルーチ
ンが終了してタイマー割り込み処理ルーチンに戻ると、
ベンド奏法判別サブルーチンP900を実行する。ベンド奏
法判別サブルーチンP900にあっては、まず、電磁ピック
アップ時間制御データPCKCNTの値が「0」か否かを判断
し(ステップP901)、ノー(N)の場合には、ベンド奏
法の判別を中止してタイマー割り込み処理ルーチンに戻
る。レジスタ群69に関する項でも説明したように、電磁
ピックアップ時間制御データPCKCNTは撥弦検出時に初期
値「10」に設定されるので、撥弦検出後一定期間(約10
msec)はベンド奏法の判別を行わないようにできる。こ
れは、撥弦時の弦振動を誤ってベンドによる弦の移動と
判断しないためである。これに対して、ステップP901の
判断結果がイエス(Y)の場合には、中央処理装置65は
レジスタ139からベンドデータBENDSを読み込み(ステッ
プP902)、このベンドデータBENDSをレジスタ群69に送
出してベンドセンサデータBENDとして保持する(ステッ
プP903)。この後に、中央処理装置65はベンドセンサデ
ータBENDを補正する(ステップP904)。すなわち、上述
したベンドセンサ初期設定サブルーチン(第12図参照)
で算出したベンド補正データBENDIをベンドセンサデー
タBENDに加算して、これを再びレジスタ群69にベンドセ
ンサデータBENDとして保持する。以上のベンドセンサデ
ータBENDの補正後、中央処理装置65は補正されたベンド
センサデータBENDの有効性を判断する。すなわち、ステ
ップP905でベンドセンサデータBENDの値がオーバーフロ
ーしているか否かを判断し、オーバーフロー時にはベン
ドセンサデータBENDにその最大値(7FH)を設定し(ス
テップP906)、オーバーフローはしていないものの(ス
テップP905の判断結果がノー(N)の場合)、アンダー
フローしている場合には(ステップP907の判断結果がイ
エス(Y)の場合))、ベンドセンサデータBENDとして
最小値(00H)を設定する(ステップP908)。このよう
にして、ベンドセンサデータBENDを再度補正して一定範
囲内におさめると、中央処理装置65は第18図に示されて
いるピッチ変更データ算出サブルーチンを実行する(ス
テップP1000)。
ピッチ変更データ算出サブルーチンP1000を説明する前
に、第19図を参照して仮想ベンド量について説明する。
第19図はギターボディ21を示す平面図であり、141は下
駒を示している。第19図に示されているように、撥弦は
位置PCでなされるので、ベンドセンサ35,37,・・により
検出されたベンド量に基づき弦の接触しているフレット
P1での弦の変位を算出すると、ギターボィ21のネック部
の幅を超えてしまう。一方、ベンド奏法に基づく弦のフ
レットとの接触位置P2での変位は、ギターのネック部の
範囲内のはずであり、ベンドセンサ35,37,・・の検出し
たベンド量が撥弦による変位かベンド操作による変位か
を判断するためにベンドセンサ35,37,・・の検出値に基
づき以下のように仮想ベンド量Xを算出する。
X=(BEND−40H)・LF ここで、BENDはステップP904〜P908で補正されたベンド
センサデータの値であり、LFは下駒から弦の押圧されて
いるフレットまでの距離を示すベンド位置データであ
る。従って、(BEND−40H)は弦の傾き角であり、該傾
き角にベンド位置データLFを乗することにより、位置P
1,P2等における仮想ベンド量X(P1)またはX(P2)を
得ることができる。もし、このようにして算出された仮
想ベンド量が位置P1における値X(P1)のようにネック
部の幅を超えているなら、ベンド操作はなされなかった
はずであり、この場合には、楽音のピッチ変更を発生さ
せるべきではない。これに対して、仮想ベンド量X(P
2)のように弦の変位がネック部の幅以内なら楽音のピ
ッチを変化させてベンド奏法に対応した音高の変化を生
じさせなければならない。
そこで、中央処理装置65はフレット判別サブルーチンで
検出したフレット番号データFRETに基づき弦と接触して
いるフレットまでの距離をテーブル71から読み出し、こ
れをベンド位置データLFとしてレジスタ群69に保持させ
る(ステップP1001)。続いて、中央処理装置65は(BEN
D−40H)・LFを計算して、仮想ベンド量Xを算出する
(ステップP1002)。かようにして仮想ベンド量Xが算
出されると、中央処理装置65は仮想ベンド量Xをテーブ
ル71に保持されている右側限界値RNGR(FRET)と比較し
て仮想ベンド量Xが右側限界値RNGR(FRET)以上か否か
を判断する(ステップP1003)。ステップP1003の判断結
果がノー(N)なら仮想ベンド量Xは無効なので、ピッ
チ変更データBENDCの値を「0」に設定し(ステップP10
04)、ステップP1003の判断結果がイエス(Y)なら中
央処理装置65は仮想ベンド量Xをテーブル71から読み出
した左側限界値RNGLと比較して、仮想ベンド量Xが左側
限界値RNGL以下か否かを判断する(ステップP1005)。
ステップP1005の判断結果がノー(N)なら仮想ベンド
量Xはやはり無効なので、ピッチ変更データBENDCを
「0」に設定して楽音の音高を一定に維持するようにす
る。
これに対して、ステップP1005の判断結果がイエス
(Y)なら仮想ベンド量Xは有効なので、中央処理装置
65はステップP1006に進み、予め選択されているベンド
カーブ(本実施例では第9図のE,F,Gのいずれか)にし
たがいベンドセンサデータBENDからピッチ変更データBE
NDCを算出しレジスタ群69に保持させる(かかるピッチ
データの算出をBENDCNV(BEND)と表す)。
以上のように、ピッチ変更データBENDCが算出される
と、中央処理装置65はベンド奏法判別サブルーチンに戻
り、ステップP909でピッチ変更データBENDCが「0」で
あるか否かを判断する。ステップP909の判断結果がイエ
ス(Y)なら楽音のピッチを変更する必要がないので、
タイマー割り込み処理ルーチンに戻る。一方、ステップ
P909の判断結果がノー(N)ならピッチ変更データBEND
Cは変更すべき楽音のピッチを示しているので、中央処
理装置65はピッチ変更データBENDCをトーンジェネレー
タ73に送出する(ステップP910)。このようにしてピッ
チ変更データBENDCがトーンジェネレータ73に送出され
ると、トーンジェネレータ73は供給されたピッチ変更デ
ータBENDCに基づき楽音のピッチを変更する。その結
果、演奏者は弦をネック部の幅方向に移動させることに
よってベンド奏法に対応した音高の変化を楽音に付与す
ることができる。中央処理装置65はステップP910でピッ
チ変更データBENDをトーンジェネレータ73に送出する
と、タイマー割り込み処理ルーチンに戻り、キーオン検
出サブルーチンP1100を実行する。
キーオン検出サブルーチン 上述のキーオン検出サブルーチンP1100においては、中
央処理装置65は第20図に示されているように、まず、電
磁ピックアップ時間制御データPCKCNTの値が「1」〜
「7」であるか否かを判断し(ステップP1101)その判
断結果がイエス(Y)なら電磁ピックアップ時間制御デ
ータPCKCNTの値を「1」だけ減少させる(ステップP110
2)。電磁ピックアップ時間制御データPCKNTはレジスタ
群69に関して説明したように、その値が「7」になると
キーオン、すなわち発音開始となるので、ステップP110
1で電磁ピックアップ時間制御データPCKCNTの値が
「1」〜「7」ならステップP1102を経てタイマー割り
込み処理ルーチンに戻るように制御することにより、一
旦発音した後には、少なくとも7msecは再発音させない
ことになる。
一方、ステップP1101の判断結果がノー(N)ならば、
中央処理装置65はレジスタ127から最大波高値データPIC
KUPSを読み込み(ステップP1103)、これをレジスタ群6
9に送出して保持(PICKUP)する(ステップP1104)。続
く、ステップP1105では最大波高値データPICKUPの値が
ピックアップしきい値データPCKTHの値より大きいか否
かを判断し、最大波高値データPICKUPの値がピックアッ
プしきい値データPCKTHの値以下なら該最大波高値デー
タPICKUPを雑音と判断してステップP1114に進み、最大
波高値データPICKUPを先行波高値データOPCKとしてレジ
スタ群69に保持させる。一方、最大波高値データPICKUP
の値がピックアップしきい値データPCKTHの値より大き
いなら、中央処理装置65は最大波高値データPICKUPを撥
弦に基づくデータと判断してステップP1106に進み、最
大波高値データPICKUPの値を電磁ピックアップ境界値デ
ータPCKLSの値と比較してその大小を判別する。電磁ピ
ックアップ境界値データPCKLSは撥弦用倍率データMPLの
値を選択するための境界値であり、中央処理装置65はス
テップP1106の実行に先立ちレジスタ群69から読み出
し、最大波高値データPICKUPとの比較に用いる。最大波
高値データPICKUPの値が電磁ピックアップ境界値データ
PCKLSの値を超えているなら、ステップP1106の判断結果
がイエス(Y)となり、中央処理装置65は撥弦により高
レベルの弦振動が発生していると判断して撥弦用倍率デ
ータを「1.5」に設定する(ステップP1107)。一方、最
大波高値データPICKUPの値が電磁ピックアップ境界値デ
ータPCKLSの値以下なら、中央処理装置65は低レベルの
弦振動であると判断して撥弦用倍率データMPLを「2.0」
に設定する(ステップP1108)。かかる撥弦用倍率デー
タMPLの設定後、中央処理装置65はキーオントリガデー
タONTRGの値が「1」であるか否かを判断する(ステッ
プP1109)。キーオントリガデータONTRGは最大波高値デ
ータPICKUPの値が先行波高値データOPCKに撥弦用倍率デ
ータMPLを乗算した値を超えたか否かを示しており、先
行するキーオン検出サブルーチンの実行中に値が決定さ
れる。よって、先行するキーオン検出サブルーチンの実
行中に(OPCK×MPL)より大きな最大波高値データPICKU
Pが検出されていなければ、ステップP1109の判断結果は
ノー(N)となり、先行波高値データOPCKに撥弦用倍率
データMPLを乗し、その積を最大波高値データPICKUPと
比較する(ステップP1110)。最大波高値データPICKUP
の値が上記積の値より大きければ、ステップP1110の判
断結果はイエス(Y)となり、中央処理装置65はキーオ
ントリガデータONTRGの値を「1」に設定し(ステップP
1111)、電磁ピックアップ時間制御データPCKCNTを「1
0」に設定する(ステップP1112)。その後、中央処理装
置65はピックアップ最大値データを「0」に設定し(ス
テップP1113)、最大波高値データPICKUPを先行波高値
データOPCKとしてレジスタ群69に保持させる(ステップ
P1114)。本実施例の場合は、弦振動がピークに達し、
その後、検出された最大波高値データPICKUPの値が3回
連続して減少したら、撥弦を検出したことになるので、
ステップP1111〜P1113で上記撥弦検出のための前準備を
することになる。一方、最大波高値データPICKUPの値が
上記先行波高値データOPCKの値と撥弦用倍率データMPL
との積より小さかった場合は、弦弦とみなすには十分な
振動がまだ発生していないので、撥弦検出の前準備をす
ることなくステップP1114に進む。
これに対して、先行するキーオン検出サブルーチンでキ
ーオントリガデータONTRGがすでに「1」に設定されて
いるなら(ステップP1109の判断結果がイエス(Y)と
なる)、上記撥弦検出のための前準備はすでに終了して
いるので、中央処理装置65はステップP1109からステッ
プP1115に進み、先行波高値データOPCKの値が最大波高
値データPICKUPの値より大きいか否かを判断する。先行
波高値データOPCKの値が最大波高値データPICKUPの値よ
り小さいなら、ステップP1115の判断結果はノー(N)
となり、弦振動の振幅は依然として増加しているので、
電磁ピックアップ時間制御データPCKCNTを「10」に設定
して(ステップP1116)、最大波高値データPICKUPを先
行波高値データOPCKとしてレジスタ群69に保持させる
(ステップP1123)。これに対して、最大波高値データP
ICKUPの値が先行波高値データOPCKの値より小さい場合
には、弦振動の減衰が始まっているので(ステップP111
5の判断結果はイエス(Y)となる)、中央処理装置65
は電磁ピックアップ時間制御データPCKCNTの値が「10」
であるか否かを判断し(ステップP1117)、その判断結
果がイエス(Y)ならピックアップ最大値データPEAKの
値が先行波高値データOPCKの値より大きいか否かを判断
する(ステップP1118)。ステップP1118の判断結果がノ
ー(N)なら先行波高値データOPCKをピックアップ最大
値データPEAKとしてレジスタ群69に保持させ(ステップ
P1119)、ステップP1118の判断結果がイエス(Y)なら
ステップP1119を実行することなくステップP1120に進
み、電磁ピックアップ時間制御データPCKCNTを「1」だ
け減少させる。一方、ステップP1117の判断結果かノー
(N)ならステップ1118,P1119を実行することなくステ
ップP1120に進み、電磁ピックアップ時間制御データPCK
CNTの値を「1」だけ減少させる。したがって、ピック
アップ最大値データPEAKは最大波高値データPICKUPの撥
弦検出後の最も大きな値に等しくなる。
しかる後、中央処理装置65は、電磁ピックアップ時間制
御データPCKCNTの値が「7」に達したか否かを判断し
(ステップP1121)、電磁ピックアップ時間制御データP
CKCNTが「7」より大きければステップP1121の上述の撥
弦検出の条件は満たされていないので、ステップP1123
に進み、最大波高値データPICKUPの値を先行波高値デー
タOPCKとしてレジスタ群69に保持させる。しかしなが
ら、電磁ピックアップ時間制御データPCKCNTの値が
「7」に達していれば撥弦検出の条件が成就しているの
で、中央処理装置65はステップP700に進み、後述するキ
ーオンサブルーチンを実行して楽音を発生させる。かよ
うにして楽音の発生がなされると、中央処理装置65はキ
ーオントリガデータONTRGの値を「0」に設定し(ステ
ップP1122)、最大波高値データPICKUPの値を先行波高
値データOPCKとしてレジスタ群69に保持させて以後のキ
ーオン検出に備える(ステップP1123)。この後、中央
処理装置65はタイマー割り込み処理ルーチンに戻る。
ミュート判別サブルーチン キーオン検出サブルーチンの終了後タイマー割り込み処
理ルーチンに戻った中央処理装置65は、ミュート判別サ
ブルーチン(第21図参照)を実行する。すなわち、中央
処理装置65はレジスタ群69からミュートカウントデータ
MUTECNTを読み出し、ミュートカウントデータMUTECNTの
値が「0」か否かを判断する(ステップP1201)。ミュ
ートカウントデータMUTECNTはキーオンサブルーチンの
実行時にミュート奏法と判断された場合「50」に設定さ
れるので、ミュート奏法時のキーオンサブルーチンの実
行により楽音が発生した後の一定期間は「0」以外の値
を有している。すなわち、楽音の発生後一定時間が経過
するまではステップP1201の判断結果はノー(N)とな
り、ミュートカウントデータMUTECNTの値を「1」だけ
減少させ(ステップP1202)、再びミュートカウントデ
ータMUTECNTの値が「0」に達したか否かを判断する
(ステップP1203)。ミュートカウントデータMUTECNTの
値が依然として「0」に達していなければ、中央処理装
置65はミュート判別サブルーチンの実行を終了してタイ
マー割り込み処理ルーチンに戻る。一方、ステップP120
3の判断結果がイエス(Y)なら、中央処理装置65は上
記一定期間の経過を認め、レジスタ101からエコーレベ
ルデータECHLVLSを読み込み(ステップP1204)、これ
(ECHLVLS)を受信レベルデータECHLVLとしてレジスタ
群69に保持させる(ステップP1205)。この後に、中央
処理装置65は受信レベルデータECHLVLとミュートしきい
値データMUTEとにアクセスしてこれらを比較し(ステッ
プP1206)、受信レベルデータECHLVLの値がミュートし
きい値データMUTEの値より小さい場合はステップP1206
の判断結果がノー(N)になるので、キーオフサブルー
チンP600を実行して楽音を急速に停止させる。一方、ス
テップP1206の判断結果がイエス(Y)なら演奏者によ
るミュート操作はなされなかったと判断してキーオフサ
ブルーチンを実行することなくタイマー割り込み処理ル
ーチンに戻る。通常の撥弦時はミュートカウントデータ
は「0」なのでステップP1201にてイエス(Y)とな
り、同様の処理(P1204〜P1206)を行い、撥弦後にミュ
ート操作されたか否かを判断し、キーオフサブルーチン
の実行の有無を決定する。
キーオンサブルーチン フレット位置判別サブルーチン中にレフトハンド演奏に
基づく楽音の発生が必要になったとき、あるいはキーオ
ン検出サブルーチン中に撥減検出の条件が成就したとき
には、中央処理装置65はキーオンサブルーチンを実行す
る。キーオンサブルーチンでは、第22図に示されている
ように、中央処理装置65はエコーレベルデータECHLVLS
をレジスタ101から読み込み(ステップP701)、該読み
込まれたエコーレベルデータECHLVLSをレジスタ群69に
送出して受信レベルデータECHLVLとして保持させる(ス
テップP702)。この後に中央処理装置65は受信レベルデ
ータECHLVLをミュートしきい値データMUTEと比較して
(ステップP703)、受信レベルデータECHLVLの値がミュ
ートしきい値MUTEよりも大きければ(Y)、中央処理装
置65は通常の発音が所望されていると判断してピックア
ップ最大値データPEAKをタッチデータTOUCHとしてレジ
スタ群69に保持させる(ステップP704)。このピックア
ップ最大値データPEAKの値は、レフトハンド演奏モード
時には音量データの基準値(40H)に設定されているが
(ステップP521)、通常の演奏時には弦振動のピーク時
の最大波高値データPICKUPと等しい値になっている(ス
テップP1119)。受信レベルデータECHLVLの値がミュー
トしきい値データMUTEの値以下なら、中央処理装置65は
ピックアップ最大値データPEAKに「0.4」を乗じ、その
積をタッチデータTOUCHとしてレジスタ群69に保持させ
る(ステップP705)。よって、演奏者がミュート操作を
行った場合は、楽音は音量を小さくして発音される。ス
テップP705の実行後、中央処理装置65はミュートカウン
トデータを「50」に設定し(ステップP706)、ミュート
判別サブルーチンにおける一定期間の計時に供する。
このようにトーンジェネレータ73の音量制御に使用され
るタッチデータTOUCHが設定されると、中央処理装置65
はレジスタ群69からフレット判別サブルーチンで確定さ
れたフレット番号データFRETを読み出し、該フレット番
号データFRETに基づきテーブル71からフレット番号デー
タFRETに対応するキーコードFKCNV(FRET)を読み出
し、このキーコードFKCNV(FRET)をフレット位置対応
キーコードデータKCとしてレジスタ群69に保持させる
(ステップP707)。続いて、中央処理装置65はレジスタ
群69から現在発音中の楽音のキーコードデータOKCを読
み込み、その値が「0」であるか否かを判断する(ステ
ップP708)。現在発音中の楽音があるなら、ステップP7
08の判断結果はノー(N)なので、該発音中の楽音につ
いてトーンジェネレータ73に発音の停止を指示する(ス
テップP709)。一方、ステップP708の判断結果がイエス
(Y)なら中央処理装置65はステップP709を実行するこ
となくフレット位置対応キーコードデータKCとタッチデ
ータTOUCHとをトーンジェネレータ73に送出して楽音の
発生を指示する(ステップP710)。このように、トーン
ジェネレータ73に楽音の発生が指示されると、中央処理
装置65はフレット位置対応キーコードデータKCを現在発
音中の楽音のキーコードデータOKCとしてレジスタ群69
に保持させ(ステップP711)、その後、タイマー割り込
み処理ルーチンまたはキーオン検出サブルーチンに戻
る。
キーオフサブルーチン フレット判別サブルーチンまたはミュート判別サブルー
チンにおいてキーオフサブルーチンの実行が要請される
と、中央処理装置66は第23図に示されているように、現
在発音中の楽音に関するキーコードデータOKCが「0」
であるか否かを判断し(ステップP601)、キーコードデ
ータOKCの値が「0」なら楽音の発生はすでに停止して
いるので、タイマー割り込み処理ルーチンに戻る。一
方、ステップP601の判断結果がノー(N)ならばキーコ
ードデータOKCで示される現在発音中の楽音の発音停止
をトーンジェネレータ73に指示する(ステップP602)。
キーチェンジサブルーチン フレット判別サブルーチンにおいてキーチェンジサブル
ーチンの実行が要請されると、中央処理装置65は第24図
に示されているように、レガート状態データLGTの値が
「1」であるか否かを判断し(ステップP801)、ステッ
プP801の判断結果がノー(N)なら現在発音中の楽音に
関するキーコードデータOKCの値が「0」か否かを判断
する(ステップP802)。キーコードデータOKCの値が
「0」以外ならトーンジェネレータ73は発音中なので
(ノー(N))、中央処理装置65はトーンジェネレータ
73を制御してキーコードOKCで表された楽音の発生を停
止させ(ステップP803)、続くステップP804でフレット
位置対応キーコードデータKCとタッチデータTOUCHとを
トーンジェネレータ73に供給して楽音の発生を指示す
る。したがって、トーンジェネレータ73はそれまで発音
していた楽音を停止し、フレット判別サブルーチンで検
出されたフレットに対応する音高の楽音をタッチデータ
TOUCHで表された音量にしたがい発生させる。しかる後
に、中央処理装置65はフレット位置対応キーコードデー
タKCを現在発音中の楽音に関するキーコードデータOKC
としてレジスタ群69に保持させる(ステップP805)。
一方、ステップP801の判断結果がイエス(Y)なら、レ
ガート奏法による楽音の制御(第8図参照)が所望され
ていると判断し、中央処理装置65は発音中の楽音の有無
にかかわらず、フレット位置対応キーコードKCとタッチ
データTOUCHとをトーンジェネレータ73に供給して楽音
の発生を指示する(ステップP806)。その後、中央処理
装置65は現在発音中の楽音の有無をキーコードデータOK
Cから判断する(ステップP807)。その結果、発音中の
楽音があればキーコードデータOKCが「0」なのでステ
ップP807の判断結果はノー(N)になり、中央処理装置
65はキーコードデータOKCで表される楽音の発生停止を
指示する(ステップP808)。ステップP807の判断結果が
イエス(Y)の場合、またはステップP808実行終了後、
中央処理装置65はフレット位置対応キーコードデータKC
を現在発音中の楽音に関するキーコードデータOKCとし
てレジスタ群69に保持させる(ステップP809)。以上の
ように、レガート演奏に基づく楽音の発生時には、フレ
ット位置対応キーコードデータKCについての楽音の発生
指示を先行させ、第8図のDに示されたようなエンベロ
ープを有する楽音を発生させることができる。
上記ソフトウエアで実現された機能はハードウエアで構
成することもでき、弦数は6弦に限らない。また、上記
実施例ではミュートしきい値データMUTEとエコーしきい
値データTHLVLとを受信レベルデータECHLVLから一義的
に決定したが、演奏者が演奏開始前または演奏中に設定
可能にしてもよい。さらに、ベンドセンサ初期設定サブ
ルーチン、エコーレベル初期設定サブルーチンおよびフ
レット位置算出サブルーチンにおけるデータの読み込み
回数は「16」回に限らず、任意の回数に設定できる。ま
た、タッチデータTOUCHはピックアップ最大値データPEA
Kを変換した値に設定してもよく、左側限界値および右
側限界値はネック部の幅が大きく変わらなければ、フレ
ット毎に設定する必要はない。フレットに対応するキー
コードは実施例に限らず演奏者が各弦独立に対応づけら
れるようにしてもよい。
情報処理ユニット(含む、中央処理装置)トーンジェネ
レータ73等は電子弦楽器のボディに指示されていてもよ
く、ボディとは別体でもよい。また、トーンジェネレー
タ73がMIDIで制御されるときには、例えば次のような初
期設定が必要である。すなわち、受信MONOモード、ピッ
チベンドを含むチャンネル独立制御、しかしながら、こ
れらの設定は非常に煩わしいので、電源オン時にソフト
ウエアにより自動的に設定するとよい。また、超音波の
発生とエコーの受信とを別個の圧電素子で分担してもよ
い。更に、ギターのような撥弦を検出する楽器だけでな
く、バイオリンのように擦弦を利用する楽器でもよい。
【図面の簡単な説明】
第1図は本発明のクレーム対応図、 第2図は本発明の一実施例の概略構成を示すブロック
図、 第3図はインターフェースの一部の詳細構成を示すブロ
ック図、 第4図は第3図に示された回路の動作を説明するタイミ
ングチャート図、 第5図はインターフェースの他の一部を詳細に示すブロ
ック図、 第6図はインターフェースの更に他の一部を詳細に示す
ブロック図、 第7図(A)〜(C)はベンド量とベンドデータとの関
係を示す動作説明図、 第8図はレガート奏法時のエンベロープを示す波形図、 第9図は選択可能なベンドカーブを示すグラフ、 第10図は一実施例のメインルーチンを示すフローチャー
ト図、 第11図はタイマー割り込み処理ルーチンのフローチャー
ト図、 第12図はベンドセンサ初期設定サブルーチンのフローチ
ャート図、 第13図はエコーレベル初期設定サブルーチンのフローチ
ャート図、 第14図はフレット位置算出サブルーチンのフローチャー
ト図、 第15図はフレットの配置図、 第16図はフレット判別サブルーチンのフローチャート
図、 第17図はベンド奏法判別サブルーチンのフローチャート
図、 第18図はピッチ変更データ算出サブルーチンのフローチ
ャート図、 第19図は仮想ベンド量を説明するネック部の平面図、 第20図はキーオン検出サブルーチンのフローチャート
図、 第21図はミュート判別サブルーチンのフローチャート
図、 第22図はキーオンサブルーチンのフローチャート図、 第23図はキーオフサブルーチンのフローチャート図、 第24図はキーチェンジサブルーチンのフローチャート図
である。 1……音高指定部、 2……楽器本体、 3……弦、 4……位置判別手段、 5……撥弦検出手段、 6……楽音発生手段、 7……レガートスイッチ、 8……レガート発生手段。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】音高指定部を有する楽器本体に張設され音
    高指定時に上記音高指定部に押圧される弦と、 該弦に超音波を与え、該超音波の伝播時間に基づき上記
    弦が接触する上記音高指定部の位置を判別する位置判別
    手段と、 撥弦の弦振動に基づき撥弦を検出する撥弦検出手段と、 上記撥弦時に上記位置判別手段で判別された上記音高指
    定部の位置に対応する音高の楽音を撥弦の強さに対応し
    た音量で発生させる楽音発生手段とを有する電子弦楽器
    において、 演奏者が操作可能なレガートスイッチと、 該レガートスイッチによりレガートモードが選択された
    状態で撥弦後に上記弦と上記音高指定部との接触位置が
    変更されると上記楽音発生手段により発音される楽音に
    レガートを付与しつつ音高を変更させるレガート発生手
    段とを有することを特徴とする電子弦楽器。
  2. 【請求項2】上記電子弦楽器は撥弦毎に順次更新される
    撥弦の強さに関する情報を保持する記憶手段を更に有し
    ており、上記レガート発生手段は上記更新された撥弦の
    強さに関する情報に基づき上記楽音発生手段にレガート
    の付与された楽音の発生を指示する特許請求の範囲第1
    項記載の電子弦楽器。
JP63007279A 1988-01-14 1988-01-14 電子弦楽器 Expired - Lifetime JPH0769686B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63007279A JPH0769686B2 (ja) 1988-01-14 1988-01-14 電子弦楽器
US07/296,807 US4951546A (en) 1988-01-14 1989-01-13 Electronic stringed musical instrument

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63007279A JPH0769686B2 (ja) 1988-01-14 1988-01-14 電子弦楽器

Publications (2)

Publication Number Publication Date
JPH01183698A JPH01183698A (ja) 1989-07-21
JPH0769686B2 true JPH0769686B2 (ja) 1995-07-31

Family

ID=11661589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63007279A Expired - Lifetime JPH0769686B2 (ja) 1988-01-14 1988-01-14 電子弦楽器

Country Status (1)

Country Link
JP (1) JPH0769686B2 (ja)

Also Published As

Publication number Publication date
JPH01183698A (ja) 1989-07-21

Similar Documents

Publication Publication Date Title
US5850051A (en) Method and apparatus for creating an automatic accompaniment pattern on the basis of analytic parameters
US7112738B2 (en) Electronic musical instrument
US4991488A (en) Acoustic detection of note bending in stringed M.I.D.I. compatible musical instruments
JP3653854B2 (ja) 弦楽器型電子楽器
JP2699367B2 (ja) 電子弦楽器および電子弦楽器の音高データ発生方法
US9966051B2 (en) Sound production control apparatus, sound production control method, and storage medium
JP2643213B2 (ja) 電子弦楽器
JPH0769686B2 (ja) 電子弦楽器
US4951546A (en) Electronic stringed musical instrument
JPH0769685B2 (ja) 電子弦楽器
JPH0769684B2 (ja) 電子弦楽器
JPH0682273B2 (ja) 電子弦楽器
JP4628725B2 (ja) テンポ情報出力装置、テンポ情報出力方法及びテンポ情報出力のためのコンピュータプログラム、タッチ情報出力装置、タッチ情報出力方法及びタッチ情報出力のためのコンピュータプログラム
JP3642130B2 (ja) 電子楽器
JPH06186973A (ja) ピッチ検出装置
JPH01183694A (ja) 電子弦楽器
JPH05108075A (ja) 電子楽器
JP6572916B2 (ja) 発音制御装置及び方法、プログラム
JP2579229Y2 (ja) 電子弦楽器
JP2836028B2 (ja) 自動演奏装置
JP2526032Y2 (ja) 電子楽器
JP3279122B2 (ja) テンポ制御装置
JP2570550B2 (ja) 電子弦楽器
JP3345453B2 (ja) 自動演奏装置
JP2002032083A (ja) 電子楽器