JPH0371718B2 - - Google Patents

Info

Publication number
JPH0371718B2
JPH0371718B2 JP62336410A JP33641087A JPH0371718B2 JP H0371718 B2 JPH0371718 B2 JP H0371718B2 JP 62336410 A JP62336410 A JP 62336410A JP 33641087 A JP33641087 A JP 33641087A JP H0371718 B2 JPH0371718 B2 JP H0371718B2
Authority
JP
Japan
Prior art keywords
pitch
data
value
time
previous
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
JP62336410A
Other languages
English (en)
Other versions
JPH01177082A (ja
Inventor
Katsuhiko Obata
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP62336410A priority Critical patent/JPH01177082A/ja
Priority to US07/282,510 priority patent/US4924746A/en
Publication of JPH01177082A publication Critical patent/JPH01177082A/ja
Publication of JPH0371718B2 publication Critical patent/JPH0371718B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H3/00Instruments in which the tones are generated by electromechanical means
    • G10H3/12Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument
    • G10H3/14Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument using mechanically actuated vibrators with pick-up means
    • G10H3/18Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument using mechanically actuated vibrators with pick-up means using a string, e.g. electric guitar
    • G10H3/186Means for processing the signal picked up from the strings
    • G10H3/188Means for processing the signal picked up from the strings for converting the signal to digital format
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H3/00Instruments in which the tones are generated by electromechanical means
    • G10H3/12Instruments in which the tones are generated by electromechanical means using mechanical resonant generators, e.g. strings or percussive instruments, the tones of which are picked up by electromechanical transducers, the electrical signals being further manipulated or amplified and subsequently converted to sound by a loudspeaker or equivalent instrument
    • G10H3/125Extracting or recognising the pitch or fundamental frequency of the picked up signal
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/066Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for pitch analysis as part of wider processing for musical purposes, e.g. transcription, musical performance evaluation; Pitch recognition, e.g. in polyphonic sounds; Estimation or use of missing fundamental

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、電子ギターなどの電子弦楽器を含
む各種電子楽器等のための音高決定装置に係り、
特にその入力波形信号からピツチ抽出を行なつて
対応する音高を決定する音高決定装置に関する。
〔従来の技術〕
従来より、自然楽器の演奏操作によつて発生す
る波形信号からピツチ(基本周波数)を抽出し、
電子回路で構成された音源装置を制御して、人工
的に楽音等の音響を得るようにした電子楽器が
種々開発されている。
この種の電子楽器の一例として、トレモロアー
ム付の電子ギター(ギターシンセサイザ)があ
り、これは発音中の弦の音高を極端に変化させる
ことが可能である。
ところで、この種の電子楽器においては、弦の
ピツキングによつて、トレモロユニツトが振動す
るために、ピツキング直後の音高が不安定であつ
て、初回の抽出ピツチを使つて発音開始した後、
次回の抽出ピツチまで、それが維持されてしま
い、実際の生音(アコーステイツク音)以上に音
源から発生する楽音の音高がはずれて聞えてしま
うことが生じる。
そのため曲を演奏しても音程のしつかりしない
不安な感じを与えてしまうという問題があつた。
〔発明の目的〕
この発明は、上述のような発音開始時に不安定
なピツチ抽出がなされたとしても、安定した、つ
まり音程のしつかりした発音開始を可能とする音
高決定装置を提供することを目的とする。
〔発明の要点〕
すなわち、本発明は、前記目的を達成するため
に、入力波形信号の立ち上がりが立ち上がり検出
手段にて検出されると、ピツチ抽出手段にて抽出
されたピツチに対応して得られる半音単位の音高
を指定するデータにて音源手段から出力する楽音
の発生開始時の音高をクロマチツクに決定すると
ともに、それ以降はピツチ抽出手段にて抽出され
たピツチに対応して得られる半音単位の音高を指
定するデータと半音未満の音高を指定するデータ
にて楽音の音高を決定するようにした音高決定手
段を設けてなるようにしたことを要点とする。
すなわち、楽音発音開始時には、抽出されたピ
ツチをクロマチツクに半音階(100セント)毎の
音階として音源手段から楽音を発生するように
し、それ以降は半音未満(100セント未満)の周
波数制御まで行なうようにするのである。
〔実施例〕
以下、この発明の実施例にいて図面を参照して
説明するが、ここではこの発明を電子ギター(ギ
ターシンセサイザ)に適用した場合を例にあげて
説明する。なお、これに限らず他のタイプの電子
楽器であつても同様に適用できる。
第1図は、全体の回路を示すブロツク図であ
り、ピツチ抽出アナログ回路PAは、図示しない
例えば電子ギターボデイ上に張設された6つの弦
に夫々設けられ、弦の振動を電気信号に変換する
ヘキサピツクアツプと、このピツクアツプからの
出力からゼロクロス信号と波形信号Zi,Wi(i=
1〜6)を得るとともに、これらの信号を時分割
のシリアルゼロクロス信号ZCRおよびデジタル
出力(時分割波形信号)D1とに変換する変換手
段例えば後述するアナログ−デジタル変換器A/
Dとを備えている。
ピツチ抽出デジタル回路PDは、第2図のよう
にピーク検出回路PEDT、時定数変換制御回路
TCC、波高値取込み回路PVS、ゼロクロス時刻
取込回路ZTSからなり、前記ピツチ抽出アナロ
グ回路PAからのシリアルゼロクロス信号ZCRと
デジタル出力D1とに基づき最大ピーク点または
最小ピーク点を検出し、MAXI,MINI(I=1
〜6)を発生するとともに、ゼロクロス点通過、
厳密には最大ピーク点、最小ピーク点直後のゼロ
クロス点通過でインターラプト(割込み)信号
INTをマイコンMCPに出力し、またゼロクロス
点の時刻情報とピーク値情報例えばMAX,MIN
及び入力波形信号の瞬時値をそれぞれマイコン
MCPに出力するものである。なお、ピーク検出
回路PEDTの内部には、過去のピーク値を減算し
ながらホールドする回路を備えている。
そして、このピーク検出回路PEDTのピークホ
ールド回路の減衰率を変更するのが、時定数変換
制御回路TCCであり、波形の例えば1周期の時
間経過してもピークが検知できないときは、急速
に減衰するようにする。具体的には、初期状態で
は速やかに波形の振動を検知すべく最高音周期時
間経過にて、急速減衰し、弦振動が検知されると
倍音を拾わないために、当該弦の開放弦周期時間
経過にて同様に急速減衰するようにし、そして弦
の振動周期が抽出された後は、その周期にて急速
減衰を行なうようになる。
この時定数変換制御回路TCCに対するかかる
周期情報の設定は、マイコンMCPが行なう。そ
して、この時定数変換制御回路TCC内部の各弦
独立のカウンタと、この設定された周期情報との
一致比較を行ない、周期時間経過で時定数チエン
ジ信号をピーク検出回路PEDTへ送出する。
また、第2図における波高値取込み回路PVS
は、上述のとおり時分割的に送出されてくる波形
信号(デジタル出力)D1を、各弦毎の波高値に
デマルチプレクス処理し、ピーク検出回路PEDT
からのピーク信号MAXI,MINI(I=1〜6)
に従つて、ピーク値をホールドする。そして、マ
イコンMCPがアドレスデコーダDCDを介してア
クセスしてきた弦についての最大ピーク値もしく
は最小ピーク値をマイコンパスへ出力する。ま
た、この波高値取込み回路PVSからは、各弦毎
の振動の瞬時値も出力可能になつている。
ゼロクロス時刻取込回路ZTSは、各弦共通の
タイムベースカウンタ出力を、各弦のゼロクロス
時点(厳密には最大ピーク点及び最小ピーク点通
過直後のゼロクロス時点)でラツチするようにな
る。そして、マイコンMCPからの要求により、
そのラツチした時刻情報をマイコンバスへ送出す
る。
また、図のタイミングジエネレータTGから
は、第1図及び第2図に示す各回路の処理動作の
ためのタイミング信号を出力する。
マイコンMCPには、後述するピツチデータテ
ーブルを含むメモリ例えばROMおよびRAMを
有するとともに、タイマーTを有し、音源発生装
置SOBに与える為の信号を制御するものである。
音源発生装置SOBは音源SSとデジタル−アナロ
グ変換器D/Aと、アンプAMPと、スピーカSP
とからなり、マイコンMCPからのノートオン
(発音)、ノートオフ(消音)、周波数を変える音
高指示信号に応じた音高の楽音を放音するもので
ある。なお、音源SSの入力側とマイコンMCPの
データバスBUSとの間に、インターフエース
usical nstrument igital nterface)
MIDIが設けられている。勿論、ギター本体に音
源SSを設けるときは、別のインターフエースを
介してもよい。アドレスデコーダーDCDは、マ
イコンMCPからのアドレス読み出し信号ARが入
力されたとき、弦番号の読込み信号RDI、時刻読
込み信号RDj(j=1〜6)とMAX,MINのピ
ーク値及びその時点その時点の瞬時値読込み信号
RDAI(I=1〜18)をピツチ抽出デジタル回路
PDに出力する。
以下、マイコンMCPの動作についてフローチ
ヤートや波形を示す図面を参照して説明するが、
はじめに図面の符号について説明する。
AD…第1図の瞬時値読込み信号RDA13〜18
によりピツチ抽出デジタル回路PDの入力波形
を直接読んだ入力波高値(瞬時値) AMP(0,1)…正又は負の前回(old)の波高
値 AMRL1…振幅レジスタで記憶されているリラ
テイブ(relative)オフ(off)のチエツクのた
めの前回の振幅値である。ここで、前記リラテ
イブオフとは波高値が急激に減衰してきたこと
に基づき消音することで、フレツト操作をやめ
て開放弦へ移つたときの消音処理に相当する。
AMRL2…振幅レジスタで記憶されている前記
リラテイブオフのための前々回の振幅値で、こ
れにはAMRL1の値が入力される。
CHTIM…最高音フレツト(22フレツト)に対応
する周期 CHTIO…開放弦フレツトに対応する周期 CHTRR…時定数変換レジスタで、上述の時定数
変換制御回路TCC(第2図)の内部に設けられ
ている。
DUB…波形が続けて同一方向に来たことを示す
フラグ FOFR…リラテイブオフカウンタ HNC…波形ナンバーカウンタ K…半音以上と半音未満の音高コードからなる音
高データ MT…これからピツチ抽出を行なう側のフラグ
(正=1,負=0) NCHLV…ノーチエンジレベル(定数) OFTIM…オフタイム(例えば当該弦の開放弦周
期に相当) OFPT…通常オフチエツク開始フラグ ONF…ノートオフフラグ RIV…後述のステツプ(STEP)4での処理ルー
トの切換を行なうためのフラグ ROFCT…リラテイブオフのチエツク回数を定め
る定数 STEP…マイコンMCPのフロー動作を指定する
レジスタ(1〜5) T…周期データ TF…有効なつた前回のゼロクロス時刻データ TFN(0,1)…正または負のピーク値直後の前
回のゼロクロス時刻データ TFR…時刻記憶レジスタ THLIM…周波数上限(定数) TLLIM…周波数下限(定数) TP(0,1)…正または負の前回の周期データ TRLAB(0,1)…正または負の絶対トリガー
レベル(ノートオンしきい値) TRLRL…リラテイブオン(再発音開始) TRLRS…共振除去しきい値 TTLIM…トリガー時の周波数下限 TTP…前回抽出された周期データ TTR…周期レジスタ TTU…定数(17/32と今回の周期情報ttの積) TTW…定数(31/16と今回の周期情報ttの積) VEL…速度(ベロシテイー)を定める情報で、
発音開始時の波形の最大ピーク値にて定まる。
X…異常または正常状態を示すフラグ b…ワーキングレジスタBに記憶されている今回
正負フラグ(正ピークの次のゼロ点のとき1、
負ピークの次のゼロ点のとき0) c…ワーキングレジスタCに記憶されている今回
波高値(ピーク値) e…ワーキングレジスタEに記憶されている前々
回波高値(ピーク値) h…ワーキングレジスタHに記憶されている前々
回抽出された周期データ t…ワーキングレジスタT0に記憶されている今
回のゼロクロス時刻 tt…ワーキングレジスタTOTOに記憶されている
今回の周期情報 第3図は、マイコンMCPへインタラプトがか
けられたときの処理を示すインタラプトルーチン
であり、I1において、マイコンMCPはアドレ
スデコーダDCDを介し、ゼロクロス時刻取込回
路ZTSに対し、弦番号読み込み信号RDIを与えて
インタラプトを与えた弦を指定する弦番号を読み
込む。そして、その弦番号に対応する時刻情報つ
まりゼロクロス時刻情報をゼロクロス時刻取込回
路ZTSへ時刻読込み信号RD1〜RD6のいずれ
か対応するものを与えて読込む。これをtとす
る。しかる後、I2において、同様に波高値取込
み回路PVSへピーク値読込み信号RDAI(I=1
〜12のうちのいずれか)を与えて、ピーク値を読
取る。これをcとする。
続くI3において、当該ピーク値は正、負のい
ずれかのピークであるのかを示す情報bを、ゼロ
クロス時刻取込回路ZTSより得る。そして、I
4にて、このようにして得たt,c,bの値をマ
イコンMCP内のバツフアのレジスタT0,C,
Bにセツトする。このバツフアには、割込み処理
がなされる都度、このような時刻情報、ピーク値
情報、ピークの種類を示す情報がワンセツトとし
て書込まれていき、メインルーチンで、各弦毎に
かかる情報に対する処理がなされる。
第4図は、メインルーチンを示すフローチヤー
トである。パワーオンすることによりM1におい
て、各種レジスタやフラグがイニシヤライズさ
れ、レジスタSTEPが0とされる。M2で上述し
たバツフアが空かどうかが判断され、ノー(以
下、Nと称す)の場合にはM3に進み、バツフア
よりレジスタB,C,T0の内容が読まれる。こ
れにより、M4において、レジスタSTEPはいく
つか判断され、M5ではSTEP0,M6では
STEP1,M7ではSTEP2,M8ではSTEP3,M
9ではSTEP4の処理が順次おこなわれる。
M2でバツフアが空の場合すなわちイエス(以
下、Yと称する)の場合、M10〜M16へと順
次に進み、ここで通常のノートオフのアルゴリズ
ムの処理が行なわれる。このノートオフのアルゴ
リズムは、オフ(OFF)レベル以下の状態が所
定のオフタイム時間続いたら、ノートオフするア
ルゴリズムである。M10でSTEP=0かどうか
が判断され、Nの場合には、M11に進む。M1
1では、その時点の入力波高値ADが直接読まれ
る。これは、波高値取込み回路PSVへピーク値
読込み信号RDA13〜RDA18のいずれかを与
えることで達成できる。そして、この値ADが、
入力波高値ADオフレベルかどうかが判断さ
れ、Yの場合にはM12に進む。M12では前回
の入力波高値ADオフレベルかどうかが判断さ
れ、Yの場合にはM13に進み、ここでタイマー
Tの値オフタイムOFTIM(例えば当該弦の開
放弦周期の定数)かどうかが判断される。Yの場
合には、M14に進み、レジスタSTEPに0が書
きこまれ、M15ではノートオンかどうかが判断
され、Yの場合には、M16でノートオフ処理さ
れ、M2の入側のMに戻る。M12でNの場合に
はM17に進み、マイコンMCP内部タイマーT
をスタートし、M2の入側Mに戻る。M10でY
の場合、及びM11、M13、M15でNの場合
には、いずれもM12の入側のMに戻る。
このように、波形入力のレベルが減衰してきた
場合、オフレベル以下の入力波高値ADがオフタ
イムOFTIMに相当する時間続くと、ノートオフ
の指示を音源SSに対しマイコンMCPは送出す
る。なお、ステツプM15において、通常の状態
ではYの判断がなされるが、後述するような処理
によつて、楽音の発生を指示していない場合でも
レジスタSTEPは0以外の値をとつていることが
あり、(例えばノイズの入力による。)そのような
ときは、M14,M15の処理後M2へ戻ること
で、初期設定がなされることになる。
なお、第4図では、一つの弦についての処理し
か示していないが、この図に示した如き処理を弦
の数に相当する6回分、多重化してマイコン
MCPは実行することになる。勿論、プロセツサ
を複数個設けて、別個独立して同等の処理を実行
してもよい。
次に、M4にて分岐して対応する処理を行なう
各ルーチンの詳細について説明する。
第5図は、第4図のM5として示すステツプ0
(STEP0)のときのフローチヤートであり、S01
で絶対トリガレベル(ノートオンしきい値)
TRLAB(b)<今回波高値cかどうかが判断され、
Yの場合にはS02に進み共振除去がチエツクされ
る。なお、このトリガーレベルは、正と負との極
性のピーク夫々についてのチエツクを行なうよう
になつている。このTRLAB(0)とTRLAB(1)
とは、実験などによつて適切な値とすることにな
る。理想的なシステムではTRLAB(0)と
TRLAB(1)とは同じでよい。S02では、共振除去
しきい値TRLRS<[今回波高値c−前回波高値
AMP(b)]かどうか、すなわち今回波高値と前回
波高値の差が所定値以上か否かが判断される。
一つの弦をピツキングすることによつて他の弦
が共振を起こす場合、当該他の弦については、振
動のレベルが徐々に大きくなり、その結果前回と
今回とのピーク値の変化は微小なものとなつて、
その差は共振除去しきい値TRLRSを越えること
はない。ところが、通常のピツキングでは、波形
が急激に立上る(あるいは立ち下がる)ことにな
り、前記ピークの差は共振除去しきい値TRLRS
を越える。
いま、このS02で、Yの場合つまり共振の場合
でないとみなした場合には、S03において次の処
理が行なわれる。すなわち、今回正負フラグbが
フラグMTに書込まれ、レジスタSTEPに1が書
込まれ、さらに今回のゼロクロス時刻tが前回の
ゼロクロス時刻データTFN(b)として設定される。
そして、S04では、その他フラグ類がイニシヤラ
イズされ、S05に進む。S05では、今回波高値c
が前回の波高値AMP(b)としてセツトされ、しか
る後第4図のメインフローへリターンする。
第5図において、Aはリラテイブオン(再発音
開始)のエントリであり、後述するSTEP4のフ
ローからこのS06へジヤンプしてくる。そして、
S06では今まで出力している楽音を一度消去し、
再発音開始のためにS03へ進行する。この再発音
開始のための処理は、通常の発音開始のときと同
様であり、以下に詳述するとおりとなる。
そして、またS01でNの場合と、S02でNの場
合(今回波高値c−前回波高値AMP(b)が所定値
以上ない場合)には、S05に進む。従つて、発音
開始のための処理は進まないことになる。
以上述べたSTEP0(第11図のSTEP0→1の
間)では、フラグMTにBレジスタの内容(b=
1)が書込まれ、レジスタTOの内容(t)が前
回ゼロクロス時刻データTFN(1)に書込まれ、レ
ジスタCの波高値(c)が前回の波高値AMP(1)に書
込まれる。
第6図は第4図にM6として示すSTEP1のフ
ローチヤートの詳細を示すものであり、S11で
は、レジスタBの内容(b)と、フラグMTが不一致
かどうかが判断され、Yの場合にはS12に進む。
S12では、絶対トリガレベル(ノートオンしきい
値)TRLAB(b)<今回波高値cかどうかが判断さ
れ、Yの場合にはS13に進む。S12でYの場合に
はレジスタSTEPに2がセツトされ、S14でレジ
スタTOの内容(t)を前回のゼロクロス時刻デ
ータTFN(b)としてセツトし、さらにS15で今回波
高値cを、前回の波高値AMP(b)へセツトする。
S11において、Nの場合すなわち入力波形信号が
同一方向にきた場合S16に進み、今回波高値c>
前回波高値AMP(b)かどうかが判断され、Yの場
合すなわち今回の波高値cが前回の波高値AMP
(b)より大の場合には、S14に進む。一方、S12に
おいてNの場合には、S15に進み、これにより波
高値のみが更新される。また、S16において、N
の場合及び、S15の処理の終了時にはメインフロ
ー(第4図)へリターンする。
以上述べたSTEP1(第11図のSTEP1→2の
間)では、今回正負フラグb(=0)とフラグ
MT=1が不一致ということで、今回のゼロクロ
ス時刻tを前回のゼロクロス時刻データTFN
(0)としてセツトし、さらに今回波高値cを前
回の波高値AMP(0)として書込む。
第7図は、第4図にM7として示すSTEP2の
フローチヤートの詳細を示すもので、S20におい
て、今回正負フラグb=フラグMTかどうかすな
わちSTEP0の方向と同一のゼロクロス点の到来
かどうかを判断し、Yの場合にはS21に進む。
S21では、第2図の時定数変換制御回路TCC内の
レジスタCHTRRへ開放弦周期CHTIOをセツト
し、S22に進む。S22では、今回波高値c>(7/
8)×前回の波高値AMP(b)かどうか、つまり波高
値が前回と今回とで略同一かどうかをチエツク
し、Yの場合つまり美しい自然減衰の場合には、
S23に進み、フラグDUBを0にセツトし、S24に
進む。S24では、周期計算を行ない、今回のゼロ
クロス時刻t−前回のゼロクロス時刻データ
TFN(b)を前回周期データTP(b)に入力し、今回の
ゼロクロス時刻tを前回ゼロクロス時刻データ
TFN(b)として入力する。S24におけるTP(b)は、
STEP3でノートオン(1.5波)の条件として使用
される。また、S24では、レジスタSTEPが3と
セツトされる。更に、今回波高値cと、前回の波
高値AMP(0)と、前回の波高値AMP(1)の内、
最も大きい値をベロシテイVELとして登録する。
また、今回波高値cを前回の波高値AMP(b)へ書
込む。
S20でNの場合には、S25に進み、フラグDUB
すなわち同一方向の入力波形がきたということを
意味するフラグを1にし、S26に進む。S26では、
今回波高値c>前回の波高値AMP(b)かどうかが
判断され、Yの場合にはS29に進む。S29では今
回波高値cに前回の波高値AMP(b)が書替えられ、
レジスタTの内容tに前回のゼロクロス時刻デー
タTFN(b)が書替えられる。また、S22において、
Nの場合には、S27に進み、フラグDUB=1かど
うか、つまり前回STEP2を実行したとき、ダブ
ツたか否かのチエツクを行ない、Yの場合つまり
ダブツていればS28に進む。S28では、フラグ
DUBを0にする。この場合にはS29に進みメイン
ルーチンにリターンする。S24の処理の後、また
S26のNのときも、同様にメインルーチンへリタ
ーン(RET)する。
以上述べたSTEP2(第11図のSTEP2→3の
間)では、今回正負フラグbとしてフラグMT=
1が書替えられ、レジスタCHTRRに0フレツト
周期すなわち開放弦周期CHTIOが書替えられ、
またフラグDUBが0にセツトされ、さらにt−
TFN(1)→TP(1)なる周期計算が行なわれ、また今
回ゼロクロス時刻tに前回のゼロクロス時刻デー
タTFN(1)が書き替えられ、今回波高値c、前回
波高値AMP(0)、前回波高値AMP(1)の内最も大
きい値がベロシテイVELとしてセツトされ、更
に今回波高値cとして前回波高値AMP(1)がセツ
トされる。
第11図は、理想的な波形入力があつた場合の
例であるが、DUB=1となる場合について次に
説明する。第8図は、そのような場合のSTEP2
の動作を説明するための図であり、Aは一波をと
ばしてピーク検出した場合であり、入力波形が実
線のときは後述するSTEP3の処理にてノートオ
ンし、入力波形が点線の時はノートオンしない。
これは、S26にてYとなるかNとなるかの違いか
らである。また、STEP2からなかなかSTEP3に
移行しないのは、S20でb=MTが成立しても、
S22でc>(7/8)×(AMP(b)がNと判断され、
これがYとならない間は、STEP2は繰り返し実
行されるからである。また、Bは、オクターブ下
の倍音を検知した場合であり、この場合には、c
>(7/8)×AMP(b)のチエツク時、Yとなり
S23を経てS24に進み、STEP3に移る。
第9図は、第4図にM8として示すSTEP3の
フローチヤートであり、S30でフラグMT≠今回
正負フラグbかどうかが判断され、正常の場合す
なわちYのときは、S31に進む。S31では、(1/
8)c<AMP(b)ならXが0、また逆の場合には
X=1にセツトされ、S32に進む。S32では、今
回波高値cとして前回の波高値AMP(b)が書替え
られる。
そしてS33において、STEP2で得られたVEL
より今回波高値cが大であれば、ベロシテイ
VELは今回波高値cが入力される。もし逆なら
ば、このベロシテイVELは変化しない。次に今
回正負フラグbにフラグMTが書替えられ、これ
によりピツチ変更側が逆にされる。これは、後述
するSTEP4からフラグMTの意味が変り、ピツ
チ変更側を意味している。そして、S34で[t−
TFN(b)→TP(b)]なる周期計算が行なわれる。ま
た、今回のゼロクロス時刻tとして前回のゼロク
ロス時刻データTFN(b)が書替えられる。
次に、S35において、X=0かどうかを判断
し、Yの場合にはS36に進み、周波数上限
THLIM<前回の周期データTP(b)かどうか、つ
まりピツチ抽出上限チエツクを行ない、その結
果、最高音の周期より大きな周期をもてば、許容
範囲にあるということでYとなり、S37に進む。
S37では、トリガー時の周波数下限TTLIM>前
回の周期データTP(b)かどうか、つまりピツチ抽
出下限チエツクを行ない、最低音の周期より小の
周期をもてば許容範囲にあり、Yの判断をして
S38に進む。S37のピツチ抽出下限は、後述する
STEP4のピツチ抽出下限とは定数が異なる。
具体的には、上限THLIMは、最高音フレツト
の2〜3半音上の音高周期に相当し、トリガー時
の周波数下限TTLIMは、開放弦の開放弦フレツ
トの5半音下の音高周期に相当するものとする。
S38では、前回の周期データTP(b)を前回抽出
された周期データTTPとしてセツトすなわち、
ピツチ抽出側で抽出されたピツチをセーブ(これ
は後述するSTEP4で使用される)し、S39に進
む。S39では、前回の周期データTP(b)≒TP()
かどうか、すなわち極性の違うゼロクロス点間の
周期の略一致のチエツクである1.5波ピツチ抽出
チエツクを行ない、Yの場合にはS301で次のよ
うな処理が行なわれる。すなわち、前回のゼロク
ロス時刻データTFN()として時刻記憶レジス
タTFRが書替えられ、また今回のゼロクロス時
刻tが前回のゼロクロス時刻データTFとしてセ
ツトされ、波形ナンバーカウンタHNCをクリア
する。このカウンタHNCは後述するSTEP4にて
使用される。レジスタSTEPは4にセツトされ、
ノートオンフラグONFは2(発音状態)にセツト
され、定数TTUは0すなわち(MIN)にセツト
され、定数TTWは最高MAXにセツトされる。
これらはいずれも後述するSTEP4にて使用する
ものである。また、リラテイブオフの為の前回波
高値レジスタAMRL1がクリアされる。
次にS310で、いま求まつたTP(b)の周期データ
を、Tレジスタへ入力し、S311で音高コードK
を求めるサブルーチン(PITCHCAL)へジヤン
プし、その結果求まる音高コードにて、S312に
おいて発音開始の指示を音源SSへ出力する。と
ころで、このとき、音高コードのうち半音未満
(100セント未満)の音高コードは、四拾五入(K
←INT(K+0.5))されており、クロマチツクな
音高の発音開始が音源SSへ指示されることにな
る。またレジスタVELに記憶されているベロシ
テイの値に従つて、発生楽音の音量が決定される
ことになる。
第18図は、前記S311のサブルーチンの詳細
な内容を示している。
マイコンMCPは、まずオクターブ値OCTを0
とし(S181)、抽出ピツチデータTがマイコン
MCPの内に記憶しているピツチデータテーブル
(第19図)内の基準ピツチデータT0「4525」よ
り小さいか否か判断する(S182)。いま抽出ピツ
チデータTが例えば「9800」であつたとすると、
このデータT「9800」は基準ピツチデータT0
「4525」より大きいので、S183に進み、抽出ピツ
チデータT「9800」を1/2にして「4900」とし、オ
クターブ値OCTを−1して「−1」とし
(S184)、再びS182に戻つて、1/2にした抽出ピツ
チデータT「4900」が基準ピツチデータT0「4525」
より小さいか否か判断する。
今度も基準ピツチデータT0より大きいので、
再度S183,S184の処理を繰り返し、抽出ピツチ
データTを1/2にして「2450」とし、オクターブ
値を−1して「−2」とし、同じく抽出ピツチデ
ータT「2450」が基準ピツチデータT0「4525」よ
り小さいか否か判断する(S182)。
今度は基準ピツチデータT0より小さくなるの
で、S185に進み、抽出ピツチデータT「2450」が
1/2の基準ピツチデータT0「2262.5」より大きいか
否か判断する。抽出ピツチデータT「2450」の方
が大きいので、S188に進み、上記基準ピツチデ
ータT0「4525」により抽出ピツチデータT「2450」
を引いてオクターブ未満の端数データt「2075」
を求め、順番データmを「0」とし(S189)、こ
の「0」の順番データmに応じた差分ピツチデー
タdTm「129」より上記端数データt「2075」が小
さいか否か判断する(S190)。
差分ピツチデータdTmの方が小さいので、
S191に進んで、端数データt「2075」より先頭の
差分ピツチデータdTm「129」を引いて「1946」
とし、順番データmを+1して「1」とする
(S192)。そして、端数データtが差分ピツチデ
ータdTmより小さくなるまで、ステツプS191,
S192の処理を繰り返して、端数データtより差
分ピツチデータdTmを順番に引いていく。
そして、差分ピツチデータdTmが「73」まで
差し引かれ、順番データmが「21」になると、端
数データtが残り「17」となり、次の差分ピツチ
データdTm(m=21)「70」より小さくなるので、
S193に進み、K=K0+12×OCT+(m+t/
dTm)/2=57.0+12×(−2)+(21+17/
70)/2=43.62の演算を実行して、新たな音高
コードKを求める。この音高はG1# よりやや上
の音高となる。
こうして、ピツチデータテーブルに記憶された
A3〜A4の1オクターブ分のピツチの差分データ
dTmだけで、他のオクターブの音高データを求
めることができる。
また、抽出したピツチデータTが1/2の基準ピ
ツチデータT0/2「2262.5」より小さければ、
S185〜S187で抽出ピツチデータTが「2262.5」よ
り大きくなるまで2n倍(n=1,2,3……)し
ていき、以後は上述したS188〜S193の処理を行
なつて、音高データKを求める。
以上要約すると、マイコンMCPは、S181〜
S187で、抽出ピツチデータTを2n倍(n=……,
−2,−1,0,1,2……)して、ピツチデー
タテーブルに記憶されているピツチデータの範囲
内にはいるようにすることにより、このnの値で
あるオクターブ値OCTを求め、S188〜S192で、
上記抽出ピツチデータTのオクターブ未満の端数
データと差分ピツチデータdTmの累算データと
の対応から音名を求められることになる。
なお、上述の例では第19図右半分の差分ピツ
チデータdTmと順番データmと基準の音高デー
タK0「57.0」とピツチデータT0「4525」とだけピ
ツチデータテーブルに記憶するようにしたが、ピ
ツチデータテーブルに記憶するピツチデータT
は、第19図の左半分の音高データKとピツチデ
ータTのみとしてもよい。音高データKとピツチ
データTのみとする場合には、S188,S189を省
略し、S190で上記S183,S186で2n倍(n=……,
−2,−1,0,1,2……)した抽出ピツチデ
ータTがピツチデータテーブル内の各音高の記憶
ピツチデータより小さいか否かが判断され、
S191でピツチデータテーブルの読出アドレスを
+1する処理が行なわれ、S192はそのままで、
S193の音高計算処理の前に、抽出ピツチデータ
Tより直前にピツチデータテーブルより読み出し
たピツチデータとの差をtとし、このピツチデー
タテーブルのピツチデータと次の番地のピツチデ
ータとの差をdTmとする処理が実行されること
になる。
ピツチデータテーブルに記憶するデータを上記
差分ピツチデータdTm、順番データmと基準の
音高データK0「57.0」とピツチデータT0「4525」
のみとする場合には、差分ピツチデータdTmと
順番データmの桁数は、音高データKとピツチデ
ータTの桁数より小さいため、記憶容量がそれだ
け小さくて済む効果があるが、音高データK、ピ
ツチデータTをも記憶したとしても、従来のよう
に全オクターブにつきピツチデータを記憶する場
合に比べて、記憶容量がそれだけ小さくて済むこ
とには変わりはない。
また、上記実施例では、音高の表示を、シリア
ル番号とするようにしたが、オクターブ、音階名
(コード)、半音以下のデータにて表現するように
してもよく、その他どのような表現形態であつて
もよい。
更に、上記実施例ではピツチデータを50セント
単位(半音の半分)でもつようにしたが、100セ
ント単位(半音毎)にもつてもよく、あるいは更
に細分化してもつようにしてもよく、加えて、1
オクターブを越えてそのようなデータをもつよう
にしてもよい。
このようにして、周期データKから、対応する
音高コードを求めることができ、第9図の
STEP3の処理時には、音高コードは、半音以上
のものとされ(S312)、発音時の音高はクロマチ
ツクに指定されることになる。
さて、第9図のS30において、Nの場合(同一
方向)のゼロクロス点検出の場合)は、S303に
進み、前回の波高値AMP(b)<今回波高値cかど
うかが判断され、Yの場合はS304に進む。S304
では、今回波高値cが前回の波高値AMP(b)とし
てセツトされ、ベロシテイVELまたはレジスタ
Cの値cの内のいずれか大きい値がベロシテイ
VELにセツトされる。S303,S35,S36,S37,
S39のいずれの場合もNの場合には、メインルー
チンへリターン(RET)する。
第17図は、S31において、X=1すなわち異
常となる場合の具体例を示す図であり、1/8b1
b0のときと、1/8a2<a1のときのジヤツジではい
ずれもその条件を満足せず、X=1となる。
すなわち、第17図の最初の3つの波形のピー
ク(a0,b0,a1)は、ノイズによるもので、これ
らのノイズの周期を検出して発音開始を指示する
と、全くおかしな音が発生してしまう。そこで、
S31では、波高値が大きく変わつたことを検知し
て、X=1とし、S35でNの判断をするようにす
る。そして、S31にて波形が正常な変化をするこ
とが検知されてから、発音開始を指示するように
する。
第17図の場合TP(b)≒TP()の検出がなさ
れたときにノートオンとなる。
以上述べたSTEP3(第11図のSTEP3→4の
間)では、MT=1≠b、AMP(0)←c、max
[VEL、c(のいずれかの大きい方)]→VEL、
MT←b=0、TP(0)←[t−TFN(0)]、
TFN(0)←t、TTP←TP(0)、TFR←TFN
(1)、TF←t、HNC←0、ONF←2、TTU←0
(MIN)、TTW←MAX、AMRL1→0、ノート
オン条件TP(0)≒TP(1)についての処理がなさ
れる。そして、適切な波形入力に応答してこの
STEP3において、抽出されたピツチに従つたク
ロマチツクな音高の楽音が発生開始されることに
なる。第11図から判明するように、周期検出を
開始してから、1.5周期程度の時間経過で発音指
示が音源SSに対しなされることになる。勿論、
諸条件を満足しなければ、更におくれることは上
述したとおりである。
第10図は、第4図のM9として示すSTEP4の
フローチヤートであり、この場合ピツチ抽出のみ
を行なうルート、実際にピツチ変更を行なうル
ートがある。先ず、S40,S41,S42,S63〜
S67に示すルートについて説明する。S40にお
いて、波形ナンバーカウンタHNC>3が判断さ
れ、Yの場合にはS41に進む。S41では、リラテ
イブオンしきい値TRLRL<[今回波高値c−前
回の波高値AMP(b)]かどうかの判断が行なわれ、
Nの場合にはS42に進む。S42では今回正負フラ
グb=フラグMTつまりピツチ変更側かどうかが
判断され、Yの場合にはS43に進む。
ところで、初期状態では、前記波形ナンバーカ
ウンタHNCは0である(第9図のS301参照)の
で、S40ではNの判断をしてS42へ進む。そして、
例えば、第11図のような波形入力の場合は、b
=1でMT=0であるから、S42からS63へ進む。
S63においては、同じ極性のピークが続けて入
力されてきているか(ダブリであるか)、否かチ
エツクするために、レジスタRIV=1かどうかが
判断され、Yの場合にはS68に進み、また、Nの
場合(ダブリでない場合)にはS64に進み、ここ
で以下の処理が行なわれる。すなわち、S64では
今回波高値cが前回の波高値AMP(b)に入力され、
リラテイブオフ処理のために前回の振幅値
AMRL1が前々回の振幅値AMRL2に入力され
る。なお、いまの場合はAMRL1の内容は0で
ある(STEP3のS30参照)。さらにS64において、
前回の波高値AMP()と今回波高値cのうちい
ずれか大きい値が前回振幅値AMRL1に入力さ
れる。つまり、周期の中で2つある正,負のピー
ク値について大きい値のピーク値が振幅値
AMRL1にセツトされる。そして、S65で波形ナ
ンバーカウンタHNC>8かどうかが判断され、
ここで波形ナンバーカウンタ(ピツチ変更側でな
いゼロクロスカウンタ)HNCが+1され、カウ
ントアツプされる。
従つて、波形ナンバーカウンタHNCは、上限
が9となる。そして、S65もしくはS66の処理の
後S67へ進行する。S67では、レジスタRIVを1
とし、今回のゼロクロス時刻から時刻記憶レジス
タTFRの内容を引算して、周期レジスタTTRへ
入力する。この周期レジスタTTRは、第11図
に示すような周期情報を示すようになる。そし
て、今回のゼロクロス時刻tは、時刻記憶レジス
タTFRへセーブされ、この後、メインルーチン
にリターン(RET)する。
S63でYの場合は、S68に進み今回波高値c>
前回の波高値AMP(b)かどうかが判断され、YY
の場合はS69に進む。S69では、今回波高値cに
前回の波高値AMP(b)が書替えられ、S70に進む。
S70では今回波高値c>前回の振幅値AMRL1か
どうかが判断され、Yの場合にはS71に進み、こ
こで今回波高値cが前回の振幅値AMRL1に入
力される。
もし、S68でNの判断がなされるとすぐにメイ
ンルーチンへリターンする。従つて、新しい入力
波形のピークが大である場合についてのみ、新し
い波形の振幅値が登録される。(その場合は、倍
音のピークをひろつていないと考えられるので。) また、S70でNのときと、S71の処理の終了の
ときには、同様にメインルーチンへリターンす
る。
以上述べたようにルートは、第11図の例に
よれば以下のような処理がなされる。MT=0≠
b、RIV=0、AMP(1)←c、AMRL2←AMRL
1、AMRL1←max[AMP(0)、c(のいずれか
大きい方)]、HNC←(HNC+1)=1、RIV←
1、TTR←(t−TFR)、TFR←tが処理され
る。従つて、周期レジスタTTRに前回の同極性
のゼロクロス点(STEP2→3のところ)から今
回のゼロクロス点までの時刻情報の差つまり、周
期情報が求まつたことになる。そして、メインル
ーチンへ戻り、次のゼロクロスインターラプトを
待つ。
次に、S40〜S62に示すルートへ進んだ場合
の説明を行なう。いま、波形ナンバーカウンタ
HNC=1なので(S66参照)、S40からS42へ進
む。S42では、第11図のような場合、MT=0、
b=0なのでYとなり、S43へ進む。S43では、
レジスタRIV=1かどうかが判断される。既にル
ートにおいて、レジスタRIVは1とされている
(S67参照)ので、S43の判断はいまの場合Yとな
り、S44へ進む。
S44では、レジスタSTEP=4かどうかが判断
され、Yの場合にはS45に進む。S45では、今回
波高値c<60H(Hは16進法表現を示す)かどう
かが判断され、いま波高値は大なのでYとなり、
S46に進む。S46では、前々回の振幅値AMRL2
−前回の振幅値AMRL1≦(1/32)×前々回の
振幅値AMRL2かどうかが判断され、Yの場合
にはS47に進み、リラテイブオフカウンタFOFR
が0にセツトされる。このリラテイブオフの処理
については後述する。そして、S48では周期計算
が行なわれる。具体的には(今回のゼロクロス時
刻t−前回のゼロクロス時刻データTF)が今回
の周期情報ttとしてレジスタTOTOにセツトされ
る。そして、S49に進み、S49では、今回の周波
数情報tt>周波数上限THLIM(発音開始後の上
限)かどうかが判断され、Yの場合にはS50に進
む。
S49の周波数上限THLIMは、STEP3のS36で
使用したトリガー時(発音開始時)周波数の許容
範囲の上限(従つて周期として最小で、最高音フ
レツトの2〜3半音上の音高周期に相当する)と
同一のものである。
次に、S50では次の処理が行なわれる。すなわ
ち、レジスタRIVを0にし、今回のゼロクロス時
刻tが前回のゼロクロス時刻データTFとして入
力され、また前回の波高値AMP(b)が前々回波高
値eに入力され、さらに今回波高値cが前回の波
高値AMP(b)に入力される。
そして、S50の処理の後S51に進み、S51では、
周波数下限TLLIM>今回の周期情報ttかどうか
が判断され、Yの場合すなわち今回の周期がノー
トオン中のピツチ抽出音域下限以下になつた場合
にはS52に進む。
この場合、周波数下限TLLIMは、例えば、開
放弦音階の1オクターブ下にセツトされる。つま
り、STEP3の周波数下限TTLIM(S37参照)に
比較して、許容範囲を広くしている。このように
することで、トレモロアームの操作などによる周
波数変更に対応し得るようになる。
従つて、周波数の上限、下限について許容範囲
に入る場合についてのみS52まで進み、そうでな
い場合はS49,S51よりメンンルーチンへリター
ンする。
次に、S52では周期データTTPが前々回抽出さ
れた周期データhに入力され、また、今回の周期
情報ttが前回抽出された周期データTTPに入力
される。そして、S53で今回波高値cがベロシテ
イVELに書込まれ、S54に進む。S54では、ノー
チエンジレベルNCHLV>(前々回波高値e−今
回波高値c)かどうかの判断が行なわれ、Yの場
合にはS55に進む。
すなわち、前回の同極性の波高値(e=AMP
(b))と今回の波高値cとが大きく変化している場
合は、その差がNCHLVを越えることになり、そ
のようなときに、抽出された周期情報に基づきピ
ツチ変更を行なうと、不自然な音高変化を呈する
ことになる可能性が高い。そこで、S54でNの判
断がなされると、S55以降の処理をすることな
く、メインルーチンへリターンする。
次に、S54でYの場合、リラテイブオフカウン
タFOFR=0か否かが判断される。後述するリラ
テイブオフ処理を行なつているときは、リラテイ
ブオフカウンタFOFRは0でなくなつており、そ
のような場合もピツチ変更(S61を参照)の処理
を行なうことなく、S55でNの判断をしてメイン
ルーチンへリターンする。そして、S55にて、Y
の判断をしたときは、S56,S57へと順次進む。
ここで2波3値一致条件が判断される。S56で
は今回の周期情報tt×2-7<|今回の周期情報tt−
前々回周期データh|が判断され、Yの場合には
S57に進み、またS57では今回の周期情報tt×2-7
<|今回の周期情報tt−周期レジスタTTRの内
容|が判断され、Yの場合にはS58に進む。
すなわち、S56では、第11図の今回の周期情
報tt(S43参照)が、前回の周期データh(=
TTP)(S52参照)の値と略一致するか否かを判
断し、S57では、今回の周期情報ttの値が、それ
に重なる周期TTRとほぼ一致するか否かを判断
する。なお、その限界範囲は、2-7×ttとして、
周期情報に依存してその値が変わるようになつて
いる。勿論、これは固定の値としてもよいが、本
実施例採用技術の方が良好な結果を得ることがで
きる。
次のS58では、今回の周期情報tt>定数TTUか
どうかが判断され、YならばS59に進み、ここで
今回の周期情報tt<定数TTWかどうかが判断さ
れ、YならばS60へ進む。なお、S58,S59は急激
なピツチ変更を認めないための判断である。
つまり、S58の定数TTUは、STEP3のS301で
いま0とされ、定数TTWは同様にMAXの値と
されており、はじめてこのフローを通るときは必
ずS58,,S59でYの判断がなされるが、その後は
後述するS62において、定数TTUには、(17/32)
tt(略1オクターブ高音の周期情報)がセツトさ
れ、定数TTWには同様にS62にて(31/16)tt
(ほぼ1オクターブ低音の周期情報)がセツトさ
れる。従つて、急激にオクターブアツプする(こ
れは、フレツトを離してミユート操作したときな
どに生ずる)ことやオクターブダウンすること
(これは波形のピークをとり逃したときなどに起
る)があつたときは、ピツチ変更をすると、不自
然となるので、ピツチ変更をしないようにブラン
チする。
もし、S58,S59でYの判断がなされたときは、
次にS60へ進む。S60では、レジスタSTEP=4
にされたかどうかの判断が行なわれ、Yの場合に
は、S601へ進み、周期情報ttをレジスタTへセツ
トし、S602にて音高コードを求める。このS602
は、上述したS311と同様の音高コードを求める
サブルーチンPITCHCAL(第18図)の実行を
意味する。
その結果、半音未満の音高コードを含む音高コ
ードKが得られ、それをもつて、S603において
音源SSに対しピツチ変更指示をする。
次にS62に進み、今回の周期情報ttに対応して
時定数チエンジをし、また定数TTUが(17/32)
×今回の周期情報ttに書替えられ、さらに定数
TTWが(31/16)×今回の周期情報ttに書替えら
れる。
つまり、後述するように、リラテイブオフの処
理がなされたときに限り、STEP=5となるが、
そのときは、ピツチ変更を行なうことなく時定数
チエンジを行なう。この時定数チエンジの処理と
は、第2図の時定数変換制御回路TCC内部のレ
ジスタに今回の周期情報ttの値に基づくデータを
マイコンMCPがセツトすることをいう。これは、
既に説明したとおりである。
そして、S62の処理の終了でメインルーチンへ
リターンす。従つて、以上述べたようにルート
は、第11図に示す通り次の処理がなされる。す
なわち、HNC=1、MT=0=b、RIV=1、
FOFR←0、tt←(t−TF)、RIV←0、TF←
t、e←AMP(0)、AMP(0)←c、h←
TTP、TTP←tt、VEL←cであり、さらに、 TTP≒TTR≒tt、 TTU<tt<TTW、 AMP(0)−c<NCHLV の3条件の満足で、ttに従つた半音未満(100セ
ント未満)の音高変更も含むピツチ変更を行な
う。しかる後、TTU←(17/32)×tt、TTW←
(31/16)×ttがなされる。
従つて、ルートにて、実際の音源SSに対す
るピツチ変更が行なわれ、続くゼロクロスインタ
ラプトでルートの処理、同様に、続くゼロクロ
スインタラプトで、ルートの処理が行なわれ
る。このようにして、ルートでは、単に周期を
抽出(S67参照)し、ルートでは実際のピツチ
変更(S61参照)し、時定数チエンジ処理(S62
参照)が行なわれることになる。
なお、STEP4におけるS40において、ルート
のS66で波形ナンバーカウンタHNCが3を越え
るように、カウントアツプされた後は、Yの判断
がなされ、次にS41へ行き、リラテイブオンの条
件を検出する。これは、c−AMP(b)>TRLRL
であり、前回の振幅値AMRL1に比べて今回の
振幅値がしきい値TRLRLを越えて増大したと
き、つまり、これは弦操作後に同じ弦を再度ピツ
キングしたとき(トレモロ奏法などによる)にこ
のようなことがおき、この場合はS41でリラテイ
ブオンの処理をすべくS41からS78へ進み、時定
数変換制御回路TTCの時定数チエンジレジスタ
CHTRRへ最高音フレツト(例えば22フレツト)
の周期CHTIMをセツトする。しかる後、第5図
のS60へ進み、当該発音中の楽音をノートオフし
た後、再発音開始する。
通常の演奏操作によれば、S40,S41,S42へ進
み、上述たルートもしくはルートへ進む。
次に第12図、第13図を参照して、リラテイ
ブオフ処理を説明する。つまり、フレツト操作し
ている状態から、開放弦状態へ移行すると、波形
の振幅レベルは急激に落ちてきて、前々回の波高
値AMRL2と前回の波高値AMRL1との差が
(1/32)AMRL2を越えるようになると、S46か
らS74へ進む。そして、リラテイブオフカウンタ
FOFRが定数ROFCTを越えるまでカウントアツ
プするようにS74からS75へ進む。このとき、S75
からS48へ行きS49〜S55の処理を行なうが、
FOFR=0でないので、リラテイブオフ処理に入
る直前ではピツチ変更を行なうことなくメインル
ーチンへ戻る。
そして、S74でYと判断すると、つまり第13
図の例では、FOFRの値が3となつたとき
(ROFCTは2である)、S74からS75へ行く。
ただし、S46のジヤツジでYの判断が一度でも
あると、S46からS47へ進み、FOFRをリセツト
するようになる。従つてROFCTで指定される回
数だけ続けてS46の条件を満足しなければ、リラ
テイブオフの処理はなされない。なお、ROFCT
の値は、音高が高い弦について大きな値としてお
けば、略一定の時間経過で、いずれの弦について
も処理ができる。
そして、S74からS76へ行くと、リラテイブオ
フカウンタFOFRをリセツトし、レジスタSTEP
を5とし、S77へ進んで音源SSに対しノートオフ
を指示する。このSTEPが5の状態では、ピツチ
抽出処理をSTEP4の時と同様に実行するが、S60
からS601〜S603を介することなくS62へ進むの
で、音源SSに対しては、ピツチ変更はされない。
ただし、S62において抽出した周期に従つて時定
数チエンジ処理を行なう。
そして、STEPが5の状態では、リラテイブオ
ンの処理を受付けるが(S41,S78)、それ以外の
場合では、第4図のメインフローの中で、振動レ
ベルが減少してきたことが検知されることにより
M14でSTEPが0となり、初期状態に戻る。
なお、S46で使用するAMRL1,AMRL2は
S64で作られており、1周期の中でレベルが大な
方のピーク(最大ピークと最小ピークとの一方)
が、この値とされ、第13図の例では、最大ピー
クakが最小ピークbk−1より必ず大である場合で
あつて、ao+1とao+2、ao+2とao+3、ao
3とao+4の差がいずれも所定値を越えるように
なつている。
また、このときルートの処理においては、最
小ピークbo+1、bo+2、bo+3が極端に減少し
てきているので、S54でNの判断が成されて、メ
インルーチンへリターンし、ピツチ変更処理はな
されない。
次に、ピツチ抽出しているなかで、オクターブ
関係にある倍音、つまりオクターブ高い音やオク
ターブ低い音が続けて検出されたときの処理につ
いて説明する。
既に説明したように、S58ではttがTTUを越え
なかつたとき、つまり、前回抽出した周期の=1
7/32倍した値TTUより小になつたとき、S67へ
進む。つまり、オクターブ高い音が抽出されたと
きは、指定していたフレツトから指を離してミユ
ート操作をした場合とみなし、オクターブ高い音
を出力することなく、S58からS76へ行き、リラ
テイブオフ時同様S76,S77の処理によつて当該
音の発音を停止する。
また、S59では、ttがTTWを越えなかつたと
き、つまり前回抽出した周期の31/16倍した値
TTWより大となつたとき、S60へ進むことなく、
メインルーチンへリターンする。
この状態は第14図に示されている。通常ノー
トオフ近辺の非常に波形が小さい場合、他のピツ
キングによつてヘキサピツクアツプのクロストオ
ークやボデイの共振によつて波形が乗つてくる。
すると、例えば、第14図のような入力波形とな
り、1オクターブ下の入力波形が続けて検出され
てしまうことがある。
このような場合、何等処理を施さないと、急に
オクターブ下の音を出力してしまい、極めて不自
然となる。そのために、S57,S56でTan+2≒
Tao+3≒Tbo+2が検出されても、Tao+3>
Tao+1×(31/16)となるので、ピツチ変更する
ことなく、S59からメインルーチンへリターンす
る。
次に、ダブリの波形が抽出される場合つまり、
同じ極性のゼロクロス点が続けて到来する場合に
ついて説明する。第15図は、MT=1の場合の
例を示しており、基本波周期と倍音成分の周期が
非整数倍の関係にあるので、倍音の位相がずれて
行き、同じ極性のゼロクロスを検出してしまうこ
とになり、そのために誤つたピツチ変更をしない
ようにしないといけない。
そこで、図のダブリと書いてあるゼロクロス時
のSTEP4の処理では、S42からS43へ行き、S43
ではYの判断をしてS72へ行く。ここで、(ao
3)と(ao+2)の大きさが比較され、もし(ao
+3)が(ao+2)より大であれば、S72でYの
判断をし、AMP(1)に、(ao+3)の値をセツト
し、もし逆の場合は何等変更処理をしない。
ところで、このダブリの場合抽出している時刻
データは何等使用しないので、周期情報Tao+3
は何等変わらない。また、当然周期データに基づ
くピツチ変更は行なわない。
同様に、第16図は波形のダブリの場合の例
で、MT=0の状態を示している。このときも、
図中にダブリと示しているところで、ダブリの状
態が生じている。このときは、S42からS63へ行
き、Yの判断をしてS68へ行く。S68では、いま
の場合(ao+2)と(ao+3)との比較をして、
(ao+3)が(ao+2)より大なときに限りS69へ
行き、AMP(1)を書替える。この場合は、更に前
回の振幅値AMRL1と今回の振幅情報(波高値
c)の比較をS70で行なつて、もしYならばS71
へ進み、今回の振幅情報cを前回の振幅値
AMRL1へセツトする。
このようにして、倍音の影響で、波形がダブつ
たときにも、S56,S57を満足しない限りピツチ
変更処理はなされないことになる。
以上述べたように、本実施例によれば、トレモ
ロユニツトが付いた電子ギターにあつても、音程
のしつかりしたアタツクがだせるようになる。つ
まり、STEP3のピツチ計算時のみ求まつた音高
コードKを、半音未満の値を四捨五入して抽出し
たピツチに最も近い半音階(クロマチツク)上の
音階音として発音開始している(S311,S312参
照)。
そして、次からのピツチ抽出時にあつては
STEP4において、求まつた音高コードKをその
まま使用して音高制御しており(S601〜S603)、
半音未満のピツチ制御も行えるようにし、トロモ
ロ操作やチヨーキング操作など、各種演奏操作に
ともなう周波数変調も可能となつている。
なお、前記実施例においては、最大ピーク点、
最小ピーク点の次のゼロクロス点毎の間隔から周
期抽出を行なうようにしたが、その他の方式、例
えば最大ピーク点間や最小ピーク点間の時間間隔
から周期抽出を行なつてもよい。また、それに合
わせて回路構成は種々変更し得る。
また、前記実施例においては、この発明を電子
ギター(ギターシンセサイザ)に適用したもので
あつたが、それに限らない。ピツチ抽出を行なつ
て、オリジナルの信号とは別の音響信号を発生す
るタイプの楽器または装置であれば、種々適用可
能である。
〔発明の効果〕
以上述べたように本発明によれば、入力波形信
号の立ち上がりが立ち上がり検出手段にて検出さ
れると、ピツチ抽出手段にて抽出されたピツチに
対応して得られる半音単位を指定するデータに
て、音高決定手段が音源手段から出力する楽音の
発音開始時の音高をクロマチツクに決定するとと
もに、それ以降は抽出されたピツチに対応した半
音未満の音高を指定するデータを加えて楽音の音
高を決定するようにしたので、発音開始時の音程
感がしつかりしたものとなり、安定するという効
果を奏する。
【図面の簡単な説明】
第1図は本発明による電子楽器の入力制御装置
の全体の構成を示すブロツク図、第2図は第1図
のピツチ抽出デジタル回路の一例を示すブロツク
図、第3図は第2図のマイコンの割込み処理ルー
チンを示すフローチヤート、第4図は第2図のマ
イコンのメイン処理ルーチンを示すフローチヤー
ト、第5図〜第7図および第9図,第10図はい
ずれも第2図のマイコンの各ステツプの動作を説
明するためのフローチヤート、第8図,第11図
〜第17図はいずれも各ステツプの動作を説明す
るためのタイミングチヤート、第18図は、音高
コードを得るためのサブルーチンを求めるフロー
チヤート、第19図は、音高コード算出時に使用
するピツチデータテーブルを示す図である。 PA……ピツチ抽出アナログ回路、PD……ピツ
チ抽出デジタル回路、MCP……マイコン、SS…
…音源、PEDT……ピーク検出回路、ZTS……ゼ
ロクロス時刻取込回路、TCC……時定数変換制
御回路、PVS……波高値取込み回路。

Claims (1)

  1. 【特許請求の範囲】 1 入力波形信号のピツチをピツチ抽出手段によ
    り抽出して、音高を決定する音高決定装置におい
    て、 前記入力波形信号の立ち上がりを検出する立ち
    上がり検出手段と、 この立ち上がり検出手段にて前記入力波形信号
    の立ち上がりが検出されると、前記ピツチ抽出手
    段にて抽出されたピツチに対応して得た半音単位
    の音高を指定するデータにて音高をクロマチツク
    に決定するとともに、それ以降は前記ピツチ抽出
    手段にて抽出されたピツチに対応して得た半音単
    位の音高を指定するデータ及び半音未満の音高を
    指定するデータにて音高を決定する音高決定手段
    と、 を具備したことを特徴とする音高決定装置。 2 前記ピツチ抽出手段は、前記入力波形信号の
    周期を検出し、この周期から半音単位の音高を示
    す第1の情報と、半音未満の音高を示す第2の情
    報とを得るようにし、 前記音高決定手段は、音高をクロマチツクに決
    定する際の前記半音単位の音高を指定するデータ
    として前記第2の情報を丸め演算して前記第1の
    情報を変更したデータを用い、それ以外のときは
    前記半音単位の音高を指定するデータとして前記
    第1の情報を用い前記半音未満の音高を指定する
    データとして前記第2の情報を用いることを特徴
    とする特許請求の範囲第1項記載の音高決定装
    置。
JP62336410A 1987-12-28 1987-12-28 音高決定装置 Granted JPH01177082A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62336410A JPH01177082A (ja) 1987-12-28 1987-12-28 音高決定装置
US07/282,510 US4924746A (en) 1987-12-28 1988-12-09 Input apparatus of electronic device for extracting pitch from input waveform signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62336410A JPH01177082A (ja) 1987-12-28 1987-12-28 音高決定装置

Publications (2)

Publication Number Publication Date
JPH01177082A JPH01177082A (ja) 1989-07-13
JPH0371718B2 true JPH0371718B2 (ja) 1991-11-14

Family

ID=18298842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62336410A Granted JPH01177082A (ja) 1987-12-28 1987-12-28 音高決定装置

Country Status (2)

Country Link
US (1) US4924746A (ja)
JP (1) JPH01177082A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH027096A (ja) * 1988-06-27 1990-01-11 Casio Comput Co Ltd 電子楽器
DE19500750C2 (de) * 1995-01-12 1999-07-15 Blue Chip Music Gmbh Verfahren zur Tonhöhenerkennung, insbesondere bei zupf- oder schlagerregten Musikinstrumenten
JP2805598B2 (ja) * 1995-06-16 1998-09-30 ヤマハ株式会社 演奏位置検出方法およびピッチ検出方法
US7563975B2 (en) * 2005-09-14 2009-07-21 Mattel, Inc. Music production system
JP5098404B2 (ja) * 2006-10-27 2012-12-12 ソニー株式会社 音声処理方法および音声処理装置
JP6171347B2 (ja) 2013-01-08 2017-08-02 カシオ計算機株式会社 電子弦楽器、楽音生成方法及びプログラム
US9082384B1 (en) 2013-01-12 2015-07-14 Lewis Neal Cohen Musical instrument with keyboard and strummer

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3999456A (en) * 1974-06-04 1976-12-28 Matsushita Electric Industrial Co., Ltd. Voice keying system for a voice controlled musical instrument
JPS5299808A (en) * 1976-02-16 1977-08-22 Roland Corp Fundamental wave selector circuit
JPS6010639B2 (ja) * 1977-06-21 1985-03-19 ヤマハ株式会社 調律装置
US4217808A (en) * 1977-07-18 1980-08-19 David Slepian Determination of pitch
US4151775A (en) * 1977-08-31 1979-05-01 Merriman George W Electrical apparatus for determining the pitch or fundamental frequency of a musical note
US4300431A (en) * 1978-06-12 1981-11-17 Derocco Paul Pitch extractor circuit
JPS5555398A (en) * 1978-10-18 1980-04-23 Tokyo Shibaura Electric Co Basic frequency extracting cricuit
JPS5587196A (en) * 1978-12-23 1980-07-01 Nippon Musical Instruments Mfg External music tone input type electronic musical instrument
US4280387A (en) * 1979-02-26 1981-07-28 Norlin Music, Inc. Frequency following circuit
US4327623A (en) * 1979-04-12 1982-05-04 Nippon Gakki Seizo Kabushiki Kaisha Reference frequency signal generator for tuning apparatus
JPS55152597A (en) * 1979-05-16 1980-11-27 Agency Of Ind Science & Technol Treatment of waste water containing organophoshoric compound
US4357852A (en) * 1979-05-21 1982-11-09 Roland Corporation Guitar synthesizer
JPS55159495A (en) * 1979-05-31 1980-12-11 Nippon Musical Instruments Mfg Musical sound input type electronic musical instrument
JPS55162132A (en) * 1979-06-06 1980-12-17 Hitachi Ltd Data transfer system
US4351216A (en) * 1979-08-22 1982-09-28 Hamm Russell O Electronic pitch detection for musical instruments
JPS5758672A (en) * 1980-09-24 1982-04-08 Sumitomo Chem Co Ltd Substituted phenylhydantion derivative, its preparation, and herbicide comprising it as active in gredient
US4463650A (en) * 1981-11-19 1984-08-07 Rupert Robert E System for converting oral music to instrumental music
US4429609A (en) * 1981-12-14 1984-02-07 Warrender David J Pitch analyzer
US4457203A (en) * 1982-03-09 1984-07-03 Wright-Malta Corporation Sound signal automatic detection and display method and system
JPS58168793U (ja) * 1982-05-06 1983-11-10 ロ−ランド株式会社 ギタ−
US4633748A (en) * 1983-02-27 1987-01-06 Casio Computer Co., Ltd. Electronic musical instrument
US4726275A (en) * 1983-05-10 1988-02-23 Synthaxe Limited Electronic musical instrument
US4658690A (en) * 1983-05-10 1987-04-21 Synthaxe Limited Electronic musical instrument
US4523506A (en) * 1984-01-23 1985-06-18 Hollimon Marshall H Electronic tuning aid
JPS6126040A (ja) * 1984-07-16 1986-02-05 Mitsubishi Paper Mills Ltd ハロゲン化銀写真乳剤
US4627323A (en) * 1984-08-13 1986-12-09 New England Digital Corporation Pitch extractor apparatus and the like
JP2574215B2 (ja) * 1984-08-18 1997-01-22 松下電器産業株式会社 誘導加熱調理器
JPS62163099A (ja) * 1986-01-13 1987-07-18 フジゲン株式会社 シンセサイザ用ギタ−コントロ−ラ
US4688464A (en) * 1986-01-16 1987-08-25 Ivl Technologies Ltd. Pitch detection apparatus

Also Published As

Publication number Publication date
US4924746A (en) 1990-05-15
JPH01177082A (ja) 1989-07-13

Similar Documents

Publication Publication Date Title
JP2615825B2 (ja) 電子弦楽器
JP2734521B2 (ja) 楽音制御装置
JPH0371718B2 (ja)
US5048391A (en) Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal
US5147970A (en) Electronic musical instrument for generating musical tones on the basis of characteristics of input waveform signal
JP3653854B2 (ja) 弦楽器型電子楽器
JP2722584B2 (ja) 楽音制御装置
JP6135312B2 (ja) 電子弦楽器、楽音制御方法及びプログラム
JP2611263B2 (ja) 発音制御装置
JP2661066B2 (ja) 発音制御装置
JP2775633B2 (ja) 楽音制御装置
JP2661065B2 (ja) 発音制御装置
JP2615946B2 (ja) 楽音制御装置
JP2958778B2 (ja) 楽音発生装置
JP2661481B2 (ja) 電子楽器
JP2605773B2 (ja) 電子弦楽器
JP2591000B2 (ja) 電子弦楽器
JP2591001B2 (ja) 電子弦楽器
JPH01100596A (ja) 電子楽器の入力制御装置
JP6361109B2 (ja) 電子弦楽器、楽音制御方法及びプログラム
JP2858313B2 (ja) 音高情報生成装置
JP2530928Y2 (ja) 電子楽器のレベル表示装置
JP2014153434A (ja) 電子弦楽器、楽音生成方法及びプログラム
JPH01100597A (ja) 発音制御装置
JPH0372400A (ja) 電子楽器

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees