Warning: copy(.htaccess): failed to open stream: Permission denied in /home/jp321/public_html/header.php on line 8
入力制御装置および入力制御プログラム - カシオ計算機株式会社
米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 楽器;音響 -> カシオ計算機株式会社

発明の名称 入力制御装置および入力制御プログラム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−41149(P2007−41149A)
公開日 平成19年2月15日(2007.2.15)
出願番号 特願2005−223182(P2005−223182)
出願日 平成17年8月1日(2005.8.1)
代理人 【識別番号】100096699
【弁理士】
【氏名又は名称】鹿嶋 英實
発明者 出嶌 達也
要約 課題
発音遅れを解消する入力制御装置を実現する。

解決手段
INTa割込み処理により弾弦に先行して行われるフレット操作で生じるタッチ音の最大ピーク検出後の波形ゼロクロス毎に発生する割込み信号INTaの発生周期(タッチ音の周期TIME1)を検出すると共に、INTb割込み処理によりタッチ音の最小ピーク検出後の波形ゼロクロス毎に発生する割込み信号INTbの発生周期(タッチ音の周期TIME2)を検出する。検出した周期TIME1と周期TIME2とが略一致する場合にその周期TIME1に対応した音高の楽音を発音させる。これにより、弾弦で生じるピッキング音からのピッチ抽出よりも早期に発音ピッチを確定でき、発音遅れを解消する。
特許請求の範囲
【請求項1】
弾弦に先行して行われるフレット操作に応じて発生するタッチ音の周期を検出するタッチ周期検出手段と、
前記タッチ周期検出手段により検出された周期に対応した音高の楽音の発音を指示する発音指示手段と
を具備することを特徴とする入力制御装置。
【請求項2】
前記タッチ周期検出手段は、
タッチ音の最大ピーク検出後の波形ゼロクロス毎に生成される第1の割込み信号の発生周期を検出する第1の周期検出手段と、
タッチ音の最小ピーク検出後の波形ゼロクロス毎に生成される第2の割込み信号の発生周期を検出する第2の周期検出手段と、
前記第1および第2の周期検出手段によりそれぞれ検出された第1および第2の割込み信号の発生周期が略一致する場合に、いずれか一方の発生周期をタッチ音の周期に設定する設定手段と
を具備することを特徴とする請求項1記載の入力制御装置。
【請求項3】
前記第1の周期検出手段は、
前記第2の周期検出手段が第2の割込み信号の発生周期を適正に検出していない旨のフラグを設定している場合に周期検出を中止する第1の中止手段と、
第1の割込み信号の発生周期を適正に検出したか否かを表すフラグを設定する第1のフラグ設定手段とを具備し、
前記第2の周期検出手段は、
前記第1のフラグ設定手段が発生周期を適正に検出していない旨のフラグを設定している場合に周期検出を中止する第2の中止手段と、
第2の割込み信号の発生周期を適正に検出したか否かを表すフラグを設定する第2のフラグ設定手段と
を具備することを特徴とする請求項2記載の入力制御装置。
【請求項4】
前記設定手段は、前記第1および第2の周期検出手段によりそれぞれ検出された第1および第2の割込み信号の発生周期が略一致する場合に、両発生周期の平均値をタッチ音の周期に設定することを特徴とする請求項2記載の入力制御装置。
【請求項5】
弾弦に先行して行われるフレット操作に応じて発生するタッチ音の最大ピーク検出後の波形ゼロクロス毎に生成される第1の割込み信号の発生周期を検出する第1の周期検出処理と、
弾弦に先行して行われるフレット操作に応じて発生するタッチ音の最小ピーク検出後の波形ゼロクロス毎に生成される第2の割込み信号の発生周期を検出する第2の周期検出処理と、
前記第1および第2の周期検出処理によりそれぞれ検出された第1および第2の割込み信号の発生周期が略一致する場合に、いずれか一方の発生周期をタッチ音周期に設定する設定処理と、
前記設定処理にて設定されたタッチ音周期に対応した音高の楽音の発音を指示する発音指示処理と
をコンピュータで実行させることを特徴とする入力制御プログラム。
発明の詳細な説明
【技術分野】
【0001】
本発明は、電子ギターに用いて好適な入力制御装置および入力制御プログラムに関する。
【背景技術】
【0002】
入力される波形信号のピッチを抽出し、抽出したピッチに対応する楽音の発音を指示する入力制御装置が知られている。この種の装置として、例えば特許文献1には、入力波形信号の最大値検出直後の波形ゼロクロス周期と最小値検出直後の波形ゼロクロス周期とを検出し、両周期が略一致した場合にその検出した周期に対応するピッチの楽音の発音を指示したり、あるいは入力波形信号の最大値検出周期と最小値検出周期とを検出し、両周期が略一致した場合にその検出した周期に対応するピッチの楽音の発音を指示する技術が開示されている。
【0003】
【特許文献1】特開昭63−136088号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、上記特許文献1に開示の入力制御装置を適用した電子ギターでは、各弦毎に配設されるピックアップコイルにより弾弦(ピッキング)後の弦振動を入力波形信号として検出する。ピッキング後の入力波形信号からピッチ抽出する為には、最低1.5波長分の時間が必要とされる。例えば5弦解放のギター演奏では、110Hzのピッキング音となるが、このピッキング音のピッチ抽出に要する時間(1.5波長分)は13.63msecとなり、これにノイズによるエラー訂正等の処理時間を加えると、都合20msec程度のピッチ抽出遅延に成り得る。ピッチ抽出遅延は、発音遅れとして認識され、とりわけピッキング音が低音になるほど顕著になり、ギター演奏に不自然さや違和感を与えてしまうという問題がある。
【0005】
そこで本発明は、このような事情に鑑みてなされたもので、発音遅れを解消することができる入力制御装置および入力制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するため、請求項1に記載の発明では、弾弦に先行して行われるフレット操作に応じて発生するタッチ音の周期を検出するタッチ周期検出手段と、前記タッチ周期検出手段により検出された周期に対応した音高の楽音の発音を指示する発音指示手段とを具備することを特徴とする。
【0007】
上記請求項1に従属する請求項2に記載の発明では、前記タッチ周期検出手段は、タッチ音の最大ピーク検出後の波形ゼロクロス毎に生成される第1の割込み信号の発生周期を検出する第1の周期検出手段と、タッチ音の最小ピーク検出後の波形ゼロクロス毎に生成される第2の割込み信号の発生周期を検出する第2の周期検出手段と、前記第1および第2の周期検出手段によりそれぞれ検出された第1および第2の割込み信号の発生周期が略一致する場合に、いずれか一方の発生周期をタッチ音の周期に設定する設定手段とを具備することを特徴とする。
【0008】
上記請求項2に従属する請求項3に記載の発明では、前記第1の周期検出手段は、前記第2の周期検出手段が第2の割込み信号の発生周期を適正に検出していない旨のフラグを設定している場合に周期検出を中止する第1の中止手段と、第1の割込み信号の発生周期を適正に検出したか否かを表すフラグを設定する第1のフラグ設定手段とを具備し、
前記第2の周期検出手段は、前記第1のフラグ設定手段が発生周期を適正に検出していない旨のフラグを設定している場合に周期検出を中止する第2の中止手段と、第2の割込み信号の発生周期を適正に検出したか否かを表すフラグを設定する第2のフラグ設定手段とを具備することを特徴とする。
【0009】
上記請求項2に従属する請求項4に記載の発明では、前記設定手段は、前記第1および第2の周期検出手段によりそれぞれ検出された第1および第2の割込み信号の発生周期が略一致する場合に、両発生周期の平均値をタッチ音の周期に設定することを特徴とする。
【0010】
請求項5に記載の発明では、弾弦に先行して行われるフレット操作に応じて発生するタッチ音の最大ピーク検出後の波形ゼロクロス毎に生成される第1の割込み信号の発生周期を検出する第1の周期検出処理と、弾弦に先行して行われるフレット操作に応じて発生するタッチ音の最小ピーク検出後の波形ゼロクロス毎に生成される第2の割込み信号の発生周期を検出する第2の周期検出処理と、前記第1および第2の周期検出処理によりそれぞれ検出された第1および第2の割込み信号の発生周期が略一致する場合に、いずれか一方の発生周期をタッチ音周期に設定する設定処理と、前記設定処理にて設定されたタッチ音周期に対応した音高の楽音の発音を指示する発音指示処理とをコンピュータで実行させることを特徴とする。
【発明の効果】
【0011】
請求項1に記載の発明によれば、弾弦に先行して行われるフレット操作に応じて発生するタッチ音の周期を検出し、検出された周期に対応した音高の楽音の発音を指示するので、弾弦で生じるピッキング音からのピッチ抽出よりも早期に発音ピッチを確定できる結果、発音遅れを解消することができる。
【0012】
請求項2に記載の発明によれば、タッチ音の最大ピーク検出後の波形ゼロクロス毎に生成される第1の割込み信号の発生周期と、タッチ音の最小ピーク検出後の波形ゼロクロス毎に生成される第2の割込み信号の発生周期とを検出し、検出された第1および第2の割込み信号の発生周期が略一致する場合に、いずれか一方の発生周期をタッチ音の周期に設定するので、弾弦で生じるピッキング音からのピッチ抽出よりも早期にピッチ抽出することができる。
【0013】
請求項5に記載の発明によれば、弾弦に先行して行われるフレット操作に応じて発生するタッチ音の最大ピーク検出後の波形ゼロクロス毎に生成される第1の割込み信号の発生周期と、タッチ音の最小ピーク検出後の波形ゼロクロス毎に生成される第2の割込み信号の発生周期とを検出し、検出された第1および第2の割込み信号の発生周期が略一致する場合に、いずれか一方の発生周期をタッチ音周期に設定し、設定されたタッチ音周期に対応した音高の楽音の発音を指示するので、弾弦で生じるピッキング音からのピッチ抽出よりも早期に発音ピッチを確定できる結果、発音遅れを解消することができる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照して本発明の実施の形態について説明する。
A.構成
図1は、本発明の実施の一形態による入力制御装置を備えた電子ギターの要部構成を示すブロック図である。この図において、ピッチ抽出部P1〜P6は、電子ギター本体(不図示)に張設される各弦に対応して設けられ、入力波形POの周期計測に必要な各種信号を発生してCPU100に供給する。入力波形POとは、各弦毎に配設されるピックアップコイル(不図示)から出力される波形信号を指す。ピッチ抽出部P1〜P6は、それぞれ構成要素2〜14から構成される。
【0015】
ピッチ抽出部P1〜P6において、アンプ2は、ピックアップコイルから供給される入力波形POをレベル増幅して出力する。ローパスフィルタ(LPF)3は、レベル増幅された入力波形POの高周波成分を除去する。最大ピーク検出回路(MAX)4は、入力波形POの最大ピークを検出して最大ピーク検出信号を発生する。最小ピーク検出回路(MIN)5は、入力波形POの最小ピークを検出して最小ピーク検出信号を発生する。ゼロクロス検出回路(Zero)6は、入力波形POのゼロクロスを検出してゼロクロス検出信号を発生する。
【0016】
A/D変換器7は、入力波形POをA/D変換して入力波形データを出力する。フリップフロップ(FF)8は、最大ピーク検出回路(MAX)4から供給される最大ピーク検出信号の立ち下がりに同期してHighレベルの出力を発生し、CPU100から供給されるクリア信号CLaに同期してその出力をLowレベルに設定する。フリップフロップ(FF)10は、最小ピーク検出回路(MIN)5から供給される最小ピーク検出信号の立ち下がりに同期してHighレベルの出力を発生し、CPU100から供給されるクリア信号CLaに同期してその出力をLowレベルに設定する。
【0017】
インバータ10は、ゼロクロス検出回路(Zero)6から出力されるゼロクロス検出信号を反転出力する。アンドゲート11は、フリップフロップ(FF)8の出力とインバータ10の出力とのAND出力を割込み信号INTaとしてCPU100に供給する。つまり、アンドゲート11は、最大ピーク検出後の波形ゼロクロス時点に割込み信号INTaをCPU100に供給する。なお、CPU100は割込み信号INTaの入力に応じて、クリア信号CLaを発生してフリップフロップ(FF)8に供給する。
【0018】
アンドゲート12は、フリップフロップ(FF)9の出力とゼロクロス検出信号とのアンド出力を割込み信号INTbとしてCPU100に供給する。つまり、アンドゲート12は、最小ピーク検出後の波形ゼロクロス時点に割込み信号INTbをCPU100に供給する。なお、CPU100は割込み信号INTbの入力に応じて、クリア信号CLbを発生してフリップフロップ(FF)9に供給する。オアゲート13は、フリップフロップ(FF)8、9のOR出力をラッチ信号Lとしてラッチ回路14およびCPU100に供給する。ラッチ回路14は、ラッチ信号Lが供給される毎、すなわち最大ピーク検出時点もしくは最小ピーク検出時点の入力波形データをラッチしてCPU100に供給する。
【0019】
このように、ピッチ抽出部P1〜P6では、例えば図2(a)に図示する入力波形POが供給されると、同図(b)〜(d)に図示するタイミングで生成される最大ピーク検出信号、ゼロクロス検出信号およびフリップフロップ(FF)8の出力に基づき、同図(e)に図示するように、最大ピーク検出後の波形ゼロクロスに同期した割込み信号INTaをCPU100に供給する。
【0020】
また、図示していないが、最小ピーク検出信号、ゼロクロス検出信号およびフリップフロップ(FF)9の出力に基づき、最小ピーク検出後の波形ゼロクロスに同期した割込み信号INTbをCPU100に供給する。さらに、ラッチ回路14が最大ピーク検出時点もしくは最小ピーク検出時点の入力波形データをCPU100に供給するようになっている。
【0021】
再び図1を参照して構成の説明を続ける。CPU100は、ピッチ抽出部P1〜P6からそれぞれ供給される各信号(割込み信号INTa、INTbおよび入力波形データDATA)に基づき各弦毎の発音又は消音を音源104に指示する。具体的には、入力波形データDATAが所定レベルV1を超えた時に、割込み信号INTa、INTbの発生周期で定まる音高の楽音の発音を音源104に指示する一方、入力波形データDATAが所定レベルV2以下になった時に、音源104に消音を指示する。
【0022】
このようなCPU100の処理において、本発明の特徴は、弾弦(ピッキング)以前に行われるフレット操作(弦を指で抑えて音高指定する操作)の時に、弦がフレットに接触して発生する所謂「タッチ音」の入力波形POを用いてピッチ抽出することにある。このようにすることで弾弦で生じるピッキング音からのピッチ抽出よりも早期に発音ピッチを確定して発音遅れを解消するようになっている。こうしたCPU100の処理動作の詳細については追って述べる。
【0023】
ROM102は、CPU100が実行する各種制御プログラムの他、ピッチ変換テーブルを記憶する。ROM102に記憶される各種制御プログラムとは、後述するメインルーチン、n弦処理、INTa割込み処理およびINTb割込み処理を含む。また、ROM102に記憶されるピッチ変換テーブルとは、割込み信号INTa、INTbの発生周期を読み出しアドレスとして、対応するピッチ(音高)を読み出すデータテーブルである。
【0024】
RAM103は、バッファエリアおよびワークエリアを備える。RAM103のバッファエリアには、ピッチ抽出部P1〜P6から取り込む入力波形データDATAが格納される。RAM103のワークエリアには、割込み信号INTa、INTbの発生周期を計時するカウンタとして機能するタイマレジスタ等の各種レジスタやフラグが一時記憶される。音源104は、周知の波形メモリ読み出し方式で構成され、CPU100から供給される演奏情報に応じた楽音データを発生する。サウンドシステム105は、音源7から出力される楽音データをアナログ変換した後、信号増幅したり不要ノイズ等を除去するフィルタリングを施してスピーカから放音させる。
【0025】
B.動作
次に、図3〜図7を参照して実施形態の動作を説明する。以下では、最初にメインルーチンの動作について説明した後、INTa割込み処理、INTb割込み処理およびn弦処理の各動作について説明する。
【0026】
(1)メインルーチンの動作
上記構成による電子ギターに電源が投入されると、CPU100は図3に図示するメインルーチンを実行してステップSA1に処理を進め、RAM103に設けられる各種レジスタ・フラグ類をゼロリセットしたり、初期値セットするイニシャライズを行った後、ステップSA2に処理を進める。ステップSA2では、処理対象となる弦を指定するポインタnに「1」をセットする。次いで、ステップSA3では、ポインタnの値で指定される弦の状態に応じた演奏情報を発生して音源104に与えるn弦処理を実行する。n弦処理の詳細については後述する。
【0027】
そして、n弦処理が完了すると、ステップSA4に進み、ポインタnをインクリメントして歩進させ、続くステップSA5では、歩進されたポインタnの値が「6」を超えたか、つまり、第1弦から第6弦までの全ての弦について処理し終えたか否かを判断する。全ての弦について処理し終えていなければ、判断結果が「NO」となり、ステップSA3に処理を戻す。以後、全ての弦について処理し終えるまでステップSA3〜SA5を繰り返す。そして、全ての弦について処理し終えると、上記ステップSA5の判断結果が「YES」となり、上述のステップSA2に処理を戻して再び第1弦からn弦処理を行う。以後、電源スイッチがオフ操作されるまで、第1弦〜第6弦について順次n弦処理を繰り返す。
【0028】
(2)INTa割込み処理の動作
次に、図4を参照してINTa割込み処理の動作を説明する。上述のメインルーチン実行中にピッチ抽出部側から割込み信号INTaが供給されると、CPU100は図4に図示するINTa割込み処理を実行してステップSB1に処理を進める。ステップSB1では、オンフラグONFが「0」であるか否かを判断する。オンフラグONFは、後述するn弦処理にて設定されるフラグであり、「0」の場合に音源104が消音中であることを表し、「1」の場合に音源104が発音中であることを表す。
【0029】
したがって、このステップSB1では、音源104が消音中であるかどうかを判断する。ここで、音源104が発音中であると、判断結果は「NO」になり、周期計測を行わずに本処理を完了させる。一方、音源104が消音中であれば、判断結果は「YES」になり、次のステップSB2に進む。ステップSB2では、クリア信号CLaを発生してピッチ抽出部Pnのフリップフロップ(FF)8をリセットすると共に、割込み信号INTaの発生タイミングを計時するカウンタの値を読み込む。
【0030】
続いて、ステップSB3では、カウンタ値読み込みが1回目でないか否かを判断する。カウンタ値の読み込みが初回であると、判断結果は「NO」になり、ステップSB8に進み、フラグFFに「1」をセットする一方、カウンタをクリアして本処理を終える。これにより、初回の割込み信号INTaが供給された場合に、CPU100は最大ピーク検出後の波形ゼロクロス時点のカウンタ値を保持する。なお、上記フラグFFは、「1」の場合にINTa割込み処理完了を表し、「0」の場合に後述のINTb割込み処理完了を表す。
【0031】
さて一方、カウンタ値の読み込みが初回以降であると、上記ステップSB3の判断結果が「YES」となり、ステップSB4に進む。ステップSB4では、フラグFFが「0」であるか否かを判断する。フラグFFは、INTa割込み処理による周期計測が行われた時に「1」となり、INTb割込み処理による周期計測が行われた時に「0」となるフラグである。また、図2(e)に図示するように、周期t1を計測するINTa割込み処理と、周期t2を計測するINTb割込み処理とは、理想的には交互に行われる。したがって、INTa割込み処理とINTb割込み処理とが順当に実行されると、フラグFFはその都度反転するが、例えば入力波形POにノイズが重畳する等して最大ピークあるいは最小ピークの検出が行えない状況であれば、INTa割込み処理とINTb割込み処理とが交互に実行されない事態も起こり得る。そこで、ステップSB4では、フラグFFが「0」であるか否かで順当にINTb割込み処理が実行されたかどうかを判断している。
【0032】
順当にINTb割込み処理が実行されていなければ、フラグFFは「1」のままだから、上記ステップSB4の判断結果は「NO」になり、この場合、周期計測不可と見做して何も行わずに本処理を完了させる。これに対し、順当にINTb割込み処理が実行されていると、後述するように、フラグFFは「0」にセットされるので、上記ステップSB4の判断結果が「YES」になり、ステップSB5に進む。
【0033】
ステップSB5では、前回取り込んだカウンタ値と今回取り込んだカウンタ値とに応じて割込み信号INTaの発生周期を算出する。続いて、ステップSB6では、そうして算出した周期をレジスタTIME1にストアする。次に、ステップSB7では、割込み信号INTaの周期計測が適正に行われた旨を表す為にフラグTIME1Fに「1」をセットする。この後、ステップSB8に進み、INTa割込み処理完了を表す為にフラグFFに「1」をセットすると共に、カウンタをクリアして本処理を終える。
【0034】
(3)INTb割込み処理の動作
次に、図5〜図6を参照してINTb割込み処理の動作を説明する。前述のメインルーチン実行中にピッチ抽出部側から割込み信号INTbが供給されると、CPU100は図5に図示するINTa割込み処理を実行してステップSC1に処理を進める。ステップSC1では、オンフラグONFが「0」であるか否か、すなわち音源104が消音中であるかどうかを判断する。ここで、音源104が発音中であると、判断結果は「NO」になり、期計測を行わずに本処理を完了させる。一方、音源104が消音中であれば、判断結果は「YES」になり、次のステップSC2に進む。
【0035】
ステップSC2では、クリア信号CLbを発生してピッチ抽出部Pnのフリップフロップ(FF)9をリセットすると共に、割込み信号INTbの発生タイミングを計時するカウンタの値を読み込む。続いて、ステップSC3では、カウンタ値読み込みが1回目でないか否かを判断する。カウンタ値の読み込みが初回であると、その判断結果は「NO」になり、後述するステップSC8に進む。
【0036】
一方、カウンタ値の読み込みが初回以降であると、上記ステップSC3の判断結果が「YES」となり、ステップSC4に進む。ステップSC4では、上述したINTa割込み処理と同様、フラグFFが「1」であるか否かで順当にINTa割込み処理が実行されたかどうかを判断する。順当にINTa割込み処理が実行されていなければ、フラグFFは「0」のままだから、上記ステップSC4の判断結果は「NO」になり、この場合、周期計測不可と見做して何も行わずに本処理を完了させる。
【0037】
これに対し、順当にINTa割込み処理が実行されていると、前述したステップSB8(図4参照)によりフラグFFは「1」にセットされる為、上記ステップSC4の判断結果が「YES」になり、ステップSC5に進む。ステップSC5では、前回取り込んだカウンタ値と今回取り込んだカウンタ値とに応じて割込み信号INTbの発生周期を算出し、続くステップSC6では、算出した周期をレジスタTIME2にストアする。そして、ステップSC7では、割込み信号INTbの周期計測が適正に行われた旨を表す為にフラグTIME2Fに「1」をセットする。この後、ステップSC8に進み、INTb割込み処理完了を表す為にフラグFFをゼロリセットすると共に、カウンタをクリアする。
【0038】
次いで、図6に図示するステップSC9に進み、フラグTIME1FおよびフラグTIME2Fが共に「1」、つまり割込み信号INTa、INTbの各周期が計測済みであるか否かを判断する。両周期が計測済みでなければ、判断結果は「NO」になり、本処理を完了させる。これに対し、両周期が計測済みであると、判断結果は「YES」となり、ステップSC10に進む。ステップSC10では、レジスタTIME1に格納される割込み信号INTaの周期と、レジスタTIME2に格納される割込み信号INTbの周期とが略一致するかどうかを判断する。
【0039】
両周期が略一致しない場合には、判断結果が「NO」となり、後述のステップSC13に進む。一方、両周期が略一致すると、上記ステップSC10の判断結果が「YES」になり、ステップSC11に進む。ステップSC11では、レジスタTIME1に格納される割込み信号INTaの周期を、レジスタTIMEにストアする。次いで、ステップSC12では、フラグTOUCHFに「1」をセットする。これにより、弾弦に先行するフレット操作で生じたタッチ音に基づきピッチ抽出(周期計測)が完了した旨を表す。この後、ステップSC13に進み、フラグTIME1Fをゼロリセットし、続くステップSC14では、フラグTIME2Fをゼロリセットして本処理を終える。
【0040】
(4)n弦処理の動作
次に、図7を参照してn弦処理の動作を説明する。上述したメインルーチンのステップSA3(図3参照)を介して本処理が実行されると、CPU100は図7に図示するステップSD1に進み、ポインタnの値に対応したピッチ抽出部Pn(n=1〜6)のラッチ回路14から入力波形データDATAを取り込み、RAM103のバッファエリアに格納する。続いて、ステップSD2では、オンフラグONFが「0」であるか否か、すなわち消音中であるかどうかを判断する。以下、音源104が消音中の場合と、音源104が発音中の場合とに分けて動作を説明する。
【0041】
<音源104が消音中の場合>
音源104が消音中であると、ステップSD2の判断結果は「YES」になり、ステップSD3に進む。ステップSD3では、上記ステップSD1において取り込んだ入力波形データDATAのレベルが所定値V1以上であるか否かを判断する。入力波形データDATAのレベルが所定値V1以上でなければ、判断結果は「NO」となり、本処理を終える。つまり、入力波形データDATAのレベルが所定値V1以上でなければ、タッチ音と判断しないようになっている。
【0042】
一方、入力波形データDATAのレベルが所定値V1以上であると、上記ステップSD3の判断結果が「YES」になり、ステップSD4に進む。ステップSD4では、フラグTOUCHFが「1」であるか否か、すなわち弾弦に先行するフレット操作で生じたタッチ音に基づきピッチ抽出(周期計測)が完了した状態であるかどうかを判断する。タッチ音に基づくピッチ抽出が完了していなければ、判断結果は「NO」になり、本処理を終える。
【0043】
これに対し、タッチ音に基づくピッチ抽出が完了していると、上記ステップSD4の判断結果が「YES」になり、ステップSD5に進む。ステップSD5では、レジスタTIMEに格納される周期に対応した音高をROM102に記憶されるピッチ変換テーブルから読み出し、読み出した音高の楽音の発音開始を音源104に指示する。これにより、音源104は、タッチ音から抽出した周期に対応するピッチの楽音を発音する。したがって、従来のように、弾弦で生じたピッキング音からのピッチ抽出よりも早期に発音ピッチを確定できる為、発音遅れを解消し得るようになる。この後、ステップSD6に進み、オンフラグONFに「1」をセットして音源104が発音中にある旨を表してから本処理を完了させる。
【0044】
<音源104が発音中の場合>
さて、以上のようにして音源104が発音を開始した後に本処理が実行されると、前述したステップSD2の判断結果が「NO」になり、ステップSD7に処理を進める。ステップSD7では、入力波形データDATAの波形レベルが所定値V2以下であるか否かを判断する。入力波形データDATAの波形レベルが所定値V2以下であると、判断結果は「YES」になり、ステップSD8に進み、音源104に消音を指示する。そして、ステップSD9では、消音に応じてオンフラグONFをゼロリセットして本処理を終える。一方、入力波形データDATAの波形レベルが所定値V2を超えていると、上記ステップSD7の判断結果が「NO」となり、ステップSD10に進み、波形読み出し周波数を一定にして持続音発音させる周波数制御を音源104に指示して本処理を完了させる。
【0045】
以上説明したように、本実施形態では、INTa割込み処理により弾弦に先行して行われるフレット操作で生じるタッチ音の最大ピーク検出後の波形ゼロクロス毎に発生する割込み信号INTaの発生周期をタッチ音の周期TIME1として検出すると共に、INTb割込み処理によりタッチ音の最小ピーク検出後の波形ゼロクロス毎に発生する割込み信号INTbの発生周期をタッチ音の周期TIME2として検出し、検出した周期TIME1と周期TIME2とが略一致する場合にその周期TIME1に対応した音高の楽音を発音させるので、従来のように、弾弦で生じるピッキング音からのピッチ抽出よりも早期に発音ピッチを確定できる結果、発音遅れを解消することができる。
【0046】
なお、上述した実施の形態では、割込み信号INTaの発生周期から検出したタッチ音の周期TIME1と、割込み信号INTbの発生周期から検出したタッチ音の周期TIME2とが略一致した場合に周期TIME1側をタッチ音の周期として選択したが、これに替えて周期TIME2側をタッチ音の周期として選択する態様としても構わない。また、割込み信号INTaの発生周期から検出したタッチ音の周期TIME1と、割込み信号INTbの発生周期から検出したタッチ音の周期TIME2とが略一致した場合に、両周期TIME1、TIME1の平均値を算出し、それをタッチ音の周期として設定する態様にすることもできる。
【図面の簡単な説明】
【0047】
【図1】本発明の実施の一形態の構成を示すブロック図である。
【図2】ピッチ抽出部P1〜P6における入出力信号を説明する波形図である。
【図3】メインルーチンの動作を示すフローチャートである。
【図4】INTa割込み処理の動作を示すフローチャートである。
【図5】INTb割込み処理の動作を示すフローチャートである。
【図6】INTb割込み処理の動作を示すフローチャートである。
【図7】n弦処理の動作を示すフローチャートである。
【符号の説明】
【0048】
P1〜P6 ピッチ抽出部
100 CPU
102 ROM
103 RAM
104 音源
105 サウンドシステム




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013