JPH096338A - 楽音制御装置 - Google Patents

楽音制御装置

Info

Publication number
JPH096338A
JPH096338A JP7156517A JP15651795A JPH096338A JP H096338 A JPH096338 A JP H096338A JP 7156517 A JP7156517 A JP 7156517A JP 15651795 A JP15651795 A JP 15651795A JP H096338 A JPH096338 A JP H096338A
Authority
JP
Japan
Prior art keywords
variable
value
vibration
detected
string
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.)
Abandoned
Application number
JP7156517A
Other languages
English (en)
Inventor
Hirotake Sato
博毅 佐藤
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 JP7156517A priority Critical patent/JPH096338A/ja
Publication of JPH096338A publication Critical patent/JPH096338A/ja
Abandoned legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【目的】 演奏者にとってより広い音楽表現が容易に行
える楽音制御装置を提供することを目的とする。 【構成】 6連のピックアップ102aは、6本の弦の
振動をそれぞれ検出して電気信号に変換し、その電気信
号は弦の振動情報としてLPF206、A/Dコンバー
タ207を介してDSP205に入力される。DSP2
05は、各弦の振動情報を解析して演奏者が6本の弦に
対するストロークの方向、その速度を求め、該求めたこ
れらの情報、及びCPU203から送られた制御データ
を基に選択されているパラメータ(ビブラート等)の変
調の深さを決定し、この決定に従って発音の指示を波形
読出回路208、フィルタ209、エンベロープ発生器
210に対して行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の振動体の振動状
態に応じて発音される楽音を制御するための技術に関す
る。
【0002】
【従来の技術及び発明が解決しようとする課題】例えば
振動体としての弦は、それを弾く指によっても音色が変
化することが知られている。ギターシンセサイザのよう
に振動体の振動に応じて楽音を電子的に発音させる楽器
の場合、演奏者は振動体を振動させる方法によって任意
に音色を変化させることが可能である。このため、この
ように楽音を制御する楽器は演奏テクニックを有する演
奏者にとって非常に魅力的な商品となっている。
【0003】上記ギターシンセサイザは、振動体として
複数の弦を備え、各弦の振動は個々に検出される。ギタ
ーシンセサイザに搭載される楽音制御装置は、各弦毎に
検出したそれの振動状態に応じて個々に発音命令を生成
することにより、発音される楽音を制御する。これによ
り、弦の振動状態は楽音に反映され、演奏者は演奏法等
により音色の制御を行うことができ、他の電子楽器には
できない音色の表現が可能となる。
【0004】しかし、アコースティックなギターを模擬
する一方では、様々な種類の楽音を生成(合成)できる
という機能の他に、エレクトロニクス技術を生かして、
アコースティックなギターでは不可能な音楽表現が行え
ることが望まれていた。
【0005】本発明の課題は、演奏者にとってより広い
音楽表現が容易に行える楽音制御装置を提供することに
ある。
【0006】
【課題を解決するための手段】本発明の楽音制御装置
は、複数の振動体の振動を各々検出し、該検出した振動
状態に応じて発音命令を生成することにより、発音され
る楽音を制御するものであり、以下の手段を備える。
【0007】先ず、振動検出手段は、複数の振動体の振
動状態をそれぞれ検出する。次に振動変化検出手段は、
振動検出手段が検出した各振動体の振動状態から、振動
体毎にその振動操作をそれぞれ検出する。制御手段は、
振動操作検出手段が各振動体毎に検出したそれぞれの振
動操作の開始タイミング間の関係に基づき、発音命令を
生成する。
【0008】上記の構成において、制御手段は、振動操
作検出手段が各振動体毎に検出したそれぞれの振動操作
の開始タイミングから、複数の振動体において振動操作
が行われた操作方向を認識し、該認識した操作方向を基
に発音命令を生成する、ことが望ましい。また、制御手
段は、振動操作検出手段が各振動体毎に検出したそれぞ
れの振動操作の開始タイミングから、振動操作を検出し
た開始タイミングが前後するその間の時間差を求め、該
求めた時間差を基に発音命令を生成する、ことが望まし
い。
【0009】また、振動操作検出手段は、振動検出手段
が検出した振動体の振動状態のなかから振幅のピーク値
を抽出し、該抽出したピーク値の変化から振動体に対す
る振動操作の開始タイミングを検出する、ことが望まし
い。
【0010】
【作用】本発明の楽音制御装置は、複数の振動体に対す
る演奏者の操作、例えばこれら複数の振動体に対して操
作を行った順序(操作方向)、及び/或いは、その操作
を行った際の時間間隔(操作速度)に基づいて発音命令
を生成することにより、発音される楽音の制御を行う。
【0011】各振動体の検出した機械振動を演奏情報と
する他に、各振動体に対して演奏者が行った操作を関連
させて新たに演奏情報を生成し、この生成した演奏情報
を基にして楽音を制御することにより、新たに生成した
演奏情報の量に応じてより広い音楽表現を容易に行える
ようになる。即ちエレクトロニクス技術を生かした新し
い音楽の創造も可能となる。
【0012】
【実施例】以下、本発明の実施例について、図面を参照
しながら詳細に説明する。図1は、本実施例が適用され
たギターシンセサイザのシステムの外観図である。
【0013】図1に示すように、上記ギターシンセサイ
ザは、コントロール部であるギター110と、このコン
トロール部によって駆動される音源部100とから構成
される。
【0014】ギター110は、振動体として6本の弦1
11、及び各弦111の振動状態を各々検出するための
3つの6連のピックアップ112を備えている。これら
のピックアップ112は、例えばコイルと永久磁石等か
らなり、弦111の振動を電気信号に変換する。並んで
配設されている3つのピックアップ112において、そ
の右端に位置するピックアップ112aから出力された
電気信号はケーブル120を介し、音源部100に送ら
れる。
【0015】音源部112は、そのコンソール101上
に演奏者が各種設定を行うためのコンソールスイッチ群
102が設けられている。このコンソールスイッチ群1
02により設定された条件に従い、ギター110(ピッ
クアップ112a)から入力した電気信号に応じて楽音
信号を生成する。
【0016】図2は、上記音源部100の構成のブロッ
ク図である。図2において、コンソール制御回路201
は、図1に示すコンソールスイッチ群102の各スイッ
チの操作状態を検出する。ROM202は、CPU20
3が実行する各種プログラム、及び各種データを格納し
ている。CPU203は、RAM204を作業領域とし
て用いながら、このROM202から読み出したプログ
ラムを実行し、音源部100全体の制御を行う。また、
コンソール制御回路201から通知されるコンソールス
イッチ群102の操作状態に応じてモード設定等を行
い、DSP205にその動作を指示する制御データを送
出する。
【0017】ギター110のピックアップ112aから
ケーブル120を介して音源部100に入力した電気信
号は、LPF206でその高周波成分が除去された後、
A/Dコンバータ207でデジタルデータ(以降、振動
データと記す)に変換される。DSP205は、A/D
コンバータ207から入力した各弦111毎の振動デー
タ、及び上記CPU203から入力した制御データを基
に、波形読出回路208、フィルタ209、及びエンベ
ローブ発生器210を制御する。
【0018】PCM−ROM211は、各種波形データ
をPCM方式で格納している。DSP205は波形読出
回路208に対し、PCM−ROM211から読み出す
波形データの種類を指示するとともに、それを読み出す
際の速度(ピッチ)を各弦111毎に対応させて指示す
る。波形読出回路208は、このDSP205からの指
示に従って、PCM−ROM211から波形データを読
み出す。
【0019】フィルタ209は、波形読出回路208が
PCM−ROM211から読み出した波形データの周波
数成分をDSP205からの指示に従って除去し、周波
数特性を加工する。エンベローブ発生器210は、DS
P205からの指示に従い、フィルタ209から入力し
た各弦111毎の波形データにエンベロープを付加し、
音量を加工する。
【0020】弦111は、基本振動の他に、この基本振
動の整数倍である高次の倍振動が合成した振動である。
その振動のエンベローブは、急激な立ち上がり、ゆるや
かな減衰となっている。これらは、音色を特徴づける重
要なファクタである。DSP205は、弦111の振動
状態に応じてフィルタ209、及びエンベローブ発生器
210を制御することにより、演奏者が所望する音色に
波形データを加工する。言い換えれば、弦111の振動
状態を反映させた波形データを生成させる。なお、波形
読出回路208、フィルタ209、及びエンベローブ発
生器210によって発音される楽音の波形データを生成
することから、以降、これらをまとめて音源と記載する
ことにする。
【0021】D/Aコンバータ212は、エンベロープ
発生器210による処理が施された後の波形データを、
アナログの波形信号に変換する。出力回路213は、D
/Aコンバータ212から入力した各弦111毎に対応
する波形信号を合成し、出力端子214に出力する。こ
の出力回路213により、6チャンネル(ギター110
が備えた弦111の本数は6)分の波形信号は、例えば
2チャンネル(ステレオ)の波形信号として出力され
る。
【0022】上記DSP205は、CPU203からの
指示に応じて、各弦111が弾かれた際の時間差、演奏
者が6本の弦111を弾いた方向(ストロークした方
向)を検出し、これらの検出結果に基づいて、発音させ
る楽音を変調する制御を行う。発音される楽音の変調
は、例えばエンベロープ発生器210に送出する各種パ
ラメータ(これは発音命令に該当する)の値を変更する
ことで行われる。これらの具体的な動作については後述
する。
【0023】以上が、本実施例が適用されたシステム
(ギターシンセサイザ)の構成、及びその概略動作であ
る。次に、動作フローチャート、及び説明図を参照しな
がら、各部の動作を詳細に説明する。
【0024】始めに、図2に示すCPU203の制御動
作について説明する。図3は、このCPU203が実行
する全体処理の動作フローチャートである。この一連の
処理動作は、CPU203が、ROM202に格納され
ているプログラムを実行することで実現される。
【0025】特には図示しない電源スイッチがオンされ
ると、先ず、RAM204の内容の初期設定等を行う
(ステップ301)。その後、ステップ302〜310
において、コンソール制御回路201から入力したコン
ソールスイッチ群102の操作状態に応じて、DSP2
05に送出する各種パラメータを設定する処理を実行す
る。これら各種パラメータは、RAM204内に変数と
して格納される。
【0026】上記ステップ301に続くステップ302
では、変数Vibratoに、ビブラート設定の有無、
及びその深さを表す値を代入する。例えばこの変数Vi
bratoには、0〜256の数値が代入され、ビブラ
ートが設定されていない場合には0が代入される。
【0027】このステップ302に続くステップ303
では、変数Cutoffに、フィルタ209のカットオ
フ周波数を表す値を代入する。例えばこの変数Cuto
ffには、カットオフ周波数の高さに応じて0〜256
の数値が代入される。
【0028】このステップ303に続くステップ303
〜304では、発音させる楽音のエンベローブの全体的
な形を決定する変数Level、Attack、Rel
easeにそれぞれ値を代入する。変数Levelは、
音量の全体的な大きさ(レベル)、変数Attackは
エンベロープにおける立ち上がり時間、変数Relea
seはリリース時間を制御するための変数であり、例え
ば0〜256の間の数値が代入される。
【0029】ステップ306に続くステップ307〜3
08では、弦111に対して演奏者が操作(ピッキン
グ)を行った方向毎に、そのときのストロークの速度に
応じて楽音を変調する深さを表す値を変数Up Dep
th、Down Depthにそれぞれ代入する。変数
Up Depthには音高が高いほうから低いほうへ演
奏者が弦111を操作したときの変調の深さ、変数Do
wn Depthにはその反対の方向に弦111を操作
したときの変調の深さを表す値がそれぞれ代入される。
【0030】ステップ308に続くステップ309〜3
10では、上記ステップ307〜308で値を代入した
変数によってその変調の深さが制御される音色のパラメ
ータ(ビブラート、カットオフ周波数等)を設定する。
具体的には、ステップ309において、変数Down
Depthにより制御されるパラメータを示す値が変数
Down Parameterに、また、ステップ31
0において、変数UpDepthにより制御されるパラ
メータを示す値が変数Up Parameterに、そ
れぞれ代入される。
【0031】上述したステップ302〜310の処理を
実行することにより、CPU203からDSP205に
受け渡す制御データが生成され、そのデータはそれぞれ
各変数に代入される。これら各変数に代入された値は、
ステップ310に続くステップ311において、所定の
形式でDSP205に送られる。その後、ステップ30
2に戻り、以降の処理を同様に繰り返し実行する。
【0032】このようにして、CPU203は、コンソ
ールスイッチ群102に対する演奏者の操作に応じてD
SP205に受け渡す制御データを生成する。他方のD
SP205は、CPU203から受け取ったこれらのデ
ータを基に、ピックアップ112aが検出した弦111
振動から楽音波形の生成、及びその変調を行う。
【0033】次に、DSP205の動作について詳細に
説明する。図4は、このDSP205が実行する全体処
理の動作フローチャートである。電源スイッチがオンさ
れると、先ず、楽音読出回路208、フィルタ209、
エンベロープ発生器210等の各部を初期化する(ステ
ップ401)。この初期化が終了すると、続くステップ
402では、CPU203との交信を行う。このCPU
203との交信は、CPU203が実行する図3のステ
ップ311の処理に対応するDSP205側の処理であ
る。この処理により、CPU203から制御データがD
SP205に受け渡される。
【0034】CPU203との交信が終了すると、次に
ステップ403において、ピックアップ102aが検出
した弦111振動を波形として取り込む波形取り込み処
理を実行する。続くステップ404では、取り込んだ波
形のピーク(これは波形のエンベロープに対応する)を
検出するピーク検出処理を実行し、その後、ステップ4
05の処理に移行する。
【0035】ステップ405では、上記ステップ404
の処理により検出した波形のピーク値から弦111の振
動が増大する変化を検出するアタック検出処理を実行す
る。続くステップ406では、ステップ404の処理で
検出したピーク値からその弦111の振動のピッチ(音
高)を検出するピッチ検出処理を実行する。その後、ス
テップ407の処理に移行する。
【0036】ステップ407では、上述したステップ4
03〜406の処理により検出した弦111の振動状態
に応じた発音処理を実行する。この発音処理が終了した
後、ステップ402の処理に戻ってそれ以降の処理を同
様に繰り返し実行する。後述するように、この発音処理
では、検出した弦111振動に応じて生成した楽音波形
に対し、弦111の振動の変化が発生した方向等に応じ
てそれを変調する処理が行われる。
【0037】上記したステップ403〜407の各処理
について、図5〜図13を参照して詳細に説明する。図
5は、ステップ403の波形取り込み処理の動作フロー
チャートである。この波形取り込み処理は、DSP20
5が、LPF206、A/Dコンバータ207を介して
入力したピックアップ112aからの検出信号(振動デ
ータ)を、特には図示しない内部の記憶領域に格納する
ことで実現される処理である。
【0038】先ず、ステップ501では、変数nに1を
代入する。本実施例が適用されたシステムにおいて、ギ
ター110は6本の弦111を備えている。この変数n
は、これら6本の弦111の各振動状態を時分割的に取
り込むための変数である。
【0039】ステップ501に続くステップ502で
は、A/Dコンバータ207がデジタル信号に変換した
ピックアップ112a出力(ADn)を、変数HAnに
代入するとともに、このときの変数Tの値を変数HTn
に代入する。上記したADn、HAn、HTnにおける
nは、変数nの現在値を表している(以降、同様)。ま
た、変数Tは、後述するタイマインタラプト処理によっ
てその値がインクリメントされる、現在時刻を表す値が
代入されている変数である。
【0040】上記ステップ502の処理が終了すると、
続くステップ503では、変数nをインクリメントす
る。このインクリメントが終了すると、ステップ504
において、変数nの値が7か否か判定する。変数nの値
が7の場合、その判定はYESとなって一連の処理が終
了する。そうでない場合、その判定はNOとなってステ
ップ502の処理に戻る。
【0041】このように、ステップ502〜504の処
理を繰り返し行うことで、波形(振動)を取り込む対象
となる弦111をその隣に移しながら、対応するA/D
コンバータ207の出力データ(即ち振動データ)が順
次格納される。
【0042】次に、上記ステップ404のピーク検出処
理について、図6に示すその動作フローチャートを参照
して説明する。このピーク検出処理は、各弦111毎
に、上記波形取り込み処理によって取り込まれた波高値
(振幅値)のなかからピーク値に該当するものを抽出す
る処理である。ピーク値を抽出し、各弦111の振動状
態の変化をそのエンベロープから判断することにより、
振動状態の変化を正確、且つ容易に把握することが可能
となる。
【0043】弦111に実際に発生する振動は、基本モ
ードの他に高次モードの振動が合成したものであるの
で、そのピーク値の抽出には高次モードの振動を考慮し
た処理が必要である。しかし、ここでは説明を簡単にす
るため、弦111には基本モードの振動が発生するとし
て、その基本的な処理内容を説明する。
【0044】先ず、ステップ601では、変数nに1を
代入する。この処理に続くステップ602では、変数H
Anから変数FHAnを引いた値を変数Dn(=HAn
−FHAn)に代入する処理を実行する。上記したよう
に、変数HAnには変数nが示す弦111の現在(最
新)の波高値が代入されており、一方の変数FHAnに
はその一つ前の波高値が代入されている。従って、この
ステップ602の処理により、変数Dnには波高値の差
分値が代入される。
【0045】ステップ602に続くステップ603で
は、現在(最新)の差分値が代入されている変数Dnの
符号とその一つ前の差分値が代入されている変数FDn
の符号が等しくないか否か判定する。これら2つの変数
に代入されている値の符号が異なる場合、その判定はY
ESとなり、ピーク値を検出したとしてステップ604
の処理に移行する。反対にこれらの変数の符号が等しい
場合、その判定はNOとなってステップ608の処理に
移行する。
【0046】ステップ604では、変数FHAnの値を
配列変数である変数PLn(mn)に、また、変数FH
Tnの値を同じく配列変数である変数PTn(mn)に
各々代入する。本実施例では、振動のピッチ等を検出す
るために、所定期間、波形のピーク値を保持するように
しており、上記mnは、そのための変数である。後述す
るように、その値の範囲は0〜256としている。
【0047】上記ステップ604の処理が終了すると、
次にステップ605において、変数PFnに1、変数m
nをインクリメントする処理を行う。上記変数PFn
は、波形のピーク値を検出したか否かを示すフラグとし
て用いられる変数である。このステップ605の処理が
終了すると、ステップ606の処理に移行する。
【0048】ステップ606では、変数mnの値が25
6か否か判定する。変数mnの値が256と判定する
と、ステップ607で変数mnに0を代入した後、ステ
ップ608の処理に移行する。その値が256ではない
と判定すると、このままステップ608の処理に移行す
る。
【0049】ステップ608では、次にピーク検出処理
を実行する際に必要となる変数の更新を行う。具体的に
は、変数HAnの値を変数FHAnに、変数Dnの値を
変数FDnに、また、変数HTnの値を変数FHTnに
それぞれ代入する。
【0050】ステップ608に続くステップ609で
は、変数nをインクリメントする。その後、ステップ6
10において、変数nの値が7か否か、即ち全ての弦1
11に対してそのピーク値の検出を行ったか否か判定す
る。変数nの値が7であった場合、その判定はYESと
なって一連の処理を終了する。そうでない場合、その判
定はNOとなってステップ602の処理に戻る。
【0051】このように、ピーク検出処理では、所定の
時間間隔毎に検出した波高値間の差分値からピーク値を
検出する。上記したように、このピーク検出処理は弦1
11に発生した基本モードのピーク値を検出するもので
ある。しかし、基本モードの他に高次モードが合成した
振動が弦111上に発生していても、その全体的な処理
の流れは同じである。
【0052】次に、図4に示すステップ405のアタッ
ク検出処理について説明する。上述したように、図2に
おいて、波形読出回路208がPCM−ROM211か
ら読み出した波形の波高値は、フィルタ209を介して
エンベロープ発生器210に入力され、ここでエンベロ
ープが付加される。アタック検出処理は、この付加させ
るエンベロープの最初の部分であるアタックをかけるタ
イミング、即ち楽音の発音を開始するタイミングを検出
する処理である。
【0053】先ず、ステップ701では、変数nに1を
代入する。続くステップ702では、変数HAnの絶対
値が所定値α以上か否か、即ち現在の波高値は所定値α
以上であるか否か判定する。弦111の間では、その大
きさは小さいが、振動エネルギの授受が発生する。その
一方では、弦111の振動を電気信号で扱うことから、
ノイスの発生は完全には回避することはできない。この
ため、本実施例では、所定値αを設定し、変数HAnの
絶対値が所定値αより小さい場合、この変数HAnに対
応する弦111は振動していないとしている。変数HA
nに対応する弦111が振動していない(ピックアップ
112aからの検出信号が無信号状態)と判定した場
合、図8のステップ706の処理に移行し、そうでない
と判定した場合、ステップ703の処理に移行する。
【0054】ステップ703では、変数TMnの値が所
定値βより大きいか否か判定する。この変数TMnは、
後述するタイマインタラプト処理により、変数nが示す
弦111の無振動状態の期間を計測した値が代入された
変数である。このステップ703において、変数TMn
の値が所定値βよりも大きいと判定した場合、ステップ
704の処理に移行し、そうでないと判定した場合、ス
テップ708の処理に移行する。ステップ704では、
変数AFnに、アタックを検出した旨を表す1を代入
し、その後、ステップ705の処理に移行する。
【0055】図9は、本実施例におけるアタックの検出
方法の説明図である。図9において、弦111の振動状
態の時間変化はエンベロープで表しており、また、図中
のmnは現在の時刻、mn−1はその一つ前にピーク値
を検出した時刻を表している。これは、その他の時刻に
おいても同様である。
【0056】図9(a)は、上記ステップ702〜70
4の処理によって検出されるアタックの例を示してい
る。弦111のアタックとは、弦111がそれまでの振
幅よりも大きく変化することであり、実際には演奏者が
弦111を弾く(ピッキング)ことでアタックが発生す
る。図9(a)に示すように、弦111の無振動状態を
一定時間以上検出した後にその弦111の振動が大きく
なった(所定値αよりも)場合、その大きくなった振動
を検出次第、アタックが発生したと判定する。
【0057】図7に戻り、ステップ705以降の処理に
ついて説明する。ステップ705では、現在時刻を表す
値が代入されている変数Tの値を変数TAnに代入する
とともに、変数TMnに0を代入する。この変数TAn
は、6本の弦111におけるアタックが検出された位置
の移動方向を判定するために用いられる。このステップ
705の処理が終了すると、図8のステップ706の処
理に移行する。
【0058】ステップ706では、変数nをインクリメ
ントする。その後、ステップ707において、変数nの
値が7か否か判定する。変数nの値が7の場合、その判
定はYESとなって一連の処理は終了する。反対にその
値が7ではない場合、その判定はNOとなってステップ
702の処理に戻る。
【0059】ステップ703で変数TMnの値が所定値
β以下と判定すると、次にステップ708の処理が実行
される。このステップ708では、変数PFnの値が1
か否か、即ち上記ステップ403で取り込んだ波形はピ
ーク値であるか否か判定する。変数PFnの値が1であ
った場合、その判定はYESとなってステップ710の
処理に移行する。そうでない場合、その判定はNOとな
り、図8のステップ709の処理に移行する。ステップ
709では、変数AFn、及び変数TMnに0を各々代
入し、その後、ステップ706の処理に移行する。
【0060】他方のステップ710では、変数PLn
(mn)の絶対値、即ち現在のピーク値の絶対値を配列
変数である変数CLEVEL(n)に代入する。これに
続くステップ711では、変数PLn(mn−1)〜P
Ln(mn−γ−1)のなかで最もレベルの大きい値の
絶対値を配列変数LLEVEL(n)に代入する。この
ステップ711の処理が終了すると、ステップ712に
おいて、それぞれ値が代入された変数CLEVEL
(n)と変数LLEVEL(n)の大小関係を判定す
る。この判定処理は、現在対象としている弦111の振
幅が増大する方向に変化しているか否かを判定するため
の処理である。変数CLEVEL(n)の値が変数LL
EVEL(n)の値よりも小さい場合、その判定はYE
Sとなって図8のステップ709の処理に移行する。そ
うでない場合、即ち弦111の振幅は増大する方向に変
化している場合、その判定はNOとなって図8のステッ
プ713の処理に移行する。
【0061】ステップ713では、上記変数CLEVE
L(n)と変数LLEVEL(n)の比(=CLEVE
L(n)/LLEVEL(n))を算出し、この算出し
た比の値を変数Aに代入する。その後、ステップ714
において、この変数Aの値は所定値δより大きいか否か
判定する。変数Aの値が所定値δより大きい場合、その
判定はYESとなってステップ715の処理に移行す
る。そうでない場合、その判定はNOとなってステップ
709の処理に移行する。
【0062】図9(b)、及び(c)は、ある時間内に
おけるピーク値の変化からアタックを検出する方法を示
している。上述したように、図9(b)、及び(c)に
おいて、mnは現在時刻、mn−1は一つ前のピーク値
を検出したときの時刻、mn−γ−1は現在時刻からγ
−1前のピーク値を検出したときの時刻を表す。時刻m
n−γ−1から時刻mn−1の間は、現在時刻mnのピ
ーク値と比較する対象を抽出する区間(比較区間)であ
る。
【0063】本実施例では、図9(b)に示すように、
弦111の振幅値が短時間の間に急激に増大した場合、
アタックが発生したと判定する。その一方では、図9
(c)に示すように、弦111の振幅値がなだらかに増
大した場合、アタックが発生したとは判定しない。
【0064】発音される楽音の音量レベルは、付加され
るエンベロープに応じて変化するが、アタックをかけた
場合、その音量レベルは大きく変化する。このことか
ら、演奏者がアコースティックな楽器を演奏している感
覚を持てるように、演奏者がそれまでの振動状態を大き
く変化させるように弦111を弾いた場合、アタックが
発生したと判定するようにしている。アタックが発生し
たか否かの判定を行うための所定値δは、予め定めた値
に固定してもよいが、演奏者が様々な演奏を行えるよう
に、任意に設定できるようにすることが望ましい。ま
た、比較区間を決定する所定値γは、ノイズの発生量、
及びその発生頻度等を考慮して設定する。これらの所定
値γ、δを適正な値にすることにより、誤動作等を低減
する効果が期待できる。
【0065】ステップ715では、アタックを検出した
旨を示す1を変数AFnに代入する。これに続くステッ
プ716では、変数TAnに変数Tの値を代入するとと
もに、変数TMnに0を代入する。これらの変数に対し
てそれぞれ値を代入した後、ステップ706の処理に移
行する。
【0066】このように、アタック検出処理では、弦1
11の振動状態を監視しながら、無振動とみなす状態が
継続した時間、その振動の振幅の変化の大きさを基にア
タックを検出する。なお、本実施例では、振動のピーク
値の比からアタックを判定(検出)しているが、ピーク
値の差からアタックを検出してもよく、これらを組み合
わせてアタックを検出するようにしてもよい。
【0067】次に、上記アタック検出処理に続いて行わ
れるステップ406のピッチ検出処理(図4参照)につ
いて説明する。このピッチ検出処理は、各弦111の振
動状態に応じた音高で楽音を発音するために行われる処
理であり、ピーク値間の時間間隔を基に各弦111の振
動周波数を検出する。図10は、その動作フローチャー
トである。
【0068】先ず、ステップ1001では、変数nに1
を代入する。これに続くステップ1002では、変数P
Fnの値が1か否か、即ちステップ403の波形取り込
み処理で取り込んだ波高値はピーク値であるか否か判定
する。変数PFnの値が1の場合、その判定はYESと
なってステップ1003の処理に移行する。そうでない
場合、その判定はNOとなってステップ1009の処理
に移行する。
【0069】ステップ1003では、256の配列を有
する変数PLnのなかで最もレベル(値)の大きいもの
をポインタ指定し、その指定した変数PLn、及びそれ
に対応する変数PTnの値をそれぞれ変数PLmax、
PTmaxに代入する。これら変数に対する値の代入が
終了すると、続くステップ1004では、ポインタを移
動させて隣接する変数PLn、PTnを指定する。配列
を有する変数PLn、PTnに対するポインタ指定、及
び移動は、変数mnに該当する値を代入することにより
行われる。
【0070】ステップ1004に続くステップ1005
では、ステップ1004で指定した変数PLnの値が0
か否か判定する。ピーク値からピッチを検出するために
は、ピーク値が2つ以上変数PLn(PTn)に代入さ
れている必要がある。ステップ1004で指定した変数
PLnの値が0であった場合、ピッチを検出するための
データがないと判定、即ちその判定はYESとなってス
テップ1009の処理に移行する。そうでない場合、そ
の判定はNOとなってステップ1006の処理に移行す
る。
【0071】ステップ1006では、ステップ1004
で指定した変数PLnの符号は変数PLmaxの符号と
同じであるか否か判定する。これら変数の符号が同じ場
合、その判定はYESなってステップ1007の処理に
移行する。そうでない場合、その判定はNOとなってス
テップ1004の処理に戻る。
【0072】ステップ1007では、ステップ1004
で指定した変数PLnの値が、変数PLmaxの1/2
以上の値であるか否か判定する。変数PLmaxには変
数PLnのなかの最大値が代入されていることから、ス
テップ1004で指定した変数PLnの値は変数PLm
axの値以下である。ステップ1004で指定した変数
PLnの値が変数PLmaxの1/2以上の値であった
場合、その判定はYESとなってステップ1008の処
理に移行する。そうでない場合、その判定はNOとなっ
てステップ1004の処理に移行する。
【0073】上記ステップ1004〜1007の処理を
繰り返し行うことにより、ピッチを検出するための他方
のピーク値(もう一つは変数PLmaxに代入されてい
るピーク値である)を検索し、ステップ1007でYE
Sと判定することで、この他方のピーク値が確定する。
【0074】ステップ1008では、確定した2つのピ
ーク間の時間間隔、即ちステップ1004で指定された
PTn(mn)−PTmaxの値に基づいてピッチを算
出し、これを配列変数CPITCH(n)に代入する。
その後、ステップ1009の処理に移行する。
【0075】ステップ1009では、変数nをインクリ
メントする。このインクリメントが終了すると、続くス
テップ1010において、変数nの値が7か否か判定す
る。変数nの値が7の場合、その判定はYESとなり、
一連の処理が終了する。そうでない場合、その判定はN
Oとなってステップ1002の処理に戻り、他の弦11
1の振動状態からそのピッチの検出を行う。
【0076】このように、ピッチ検出処理では、各弦1
11毎に、その振動の1周期に対応する2つのピーク値
を特定し、この2つのピーク値を取り込んだ時間間隔を
基に各弦111のピッチを算出する。
【0077】次に、上記ピッチ検出処理に続いて実行さ
れるステップ407の発音処理(図4参照)について説
明する。この発音処理は、DSP205が、各弦111
毎の振動状態に応じて音源(波形読出回路208、フィ
ルタ209、及びエンベロープ発生器210)を制御
し、発音させる楽音の波形データを生成させる処理であ
る。図11はその動作フローチャートである。
【0078】先ず、ステップ1101では、変数nに1
を代入する。これに続くステップ1102では、変数A
Fnの値が1か否か、即ちアタックを検出したか否か判
定する。アタックを検出した場合、即ち演奏者が現在対
象としている弦111を弾いた場合、その判定はYES
となってステップ1108の処理に移行する。そうでな
い場合、その判定はNOとなってステップ1103の処
理に移行する。
【0079】ステップ1103では、この時点で最新の
ピーク値である変数PLn(mn−1)の値を変数CL
EVEL(n)に代入する。その後、ステップ1104
において、この変数CLEVEL(n)の値が前述の所
定値αよりも小さいか否か判定する。変数CLEVEL
(n)の値が所定値αよりも小さい場合、その判定はY
ESとなり、ステップ1105において、弦番号n(変
数nの値)の音源に対してリリース指示を行った後、ス
テップ1106の処理に移行する。そうでない場合、こ
のままステップ1106の処理に移行する。
【0080】弦111の振動のピーク値から楽音の発音
をリリースさせるか否か判定することにより、振動(波
形)を取り込んだタイミングによって誤ったリリースの
指示を行うことが回避される。
【0081】ステップ1106では、変数nをインクリ
メントする。その後、ステップ1107において、変数
nの値は7か否か判定する。変数nの値が7の場合、そ
の判定はYESとなり、一連の処理が終了する。そうで
ない場合、その判定はNOとなってステップ1102の
処理に戻る。
【0082】アタックを検出、即ち変数AFnに1が代
入されていた場合、ステップ1108〜1117の処理
が行われる。先ず、ステップ1108では、各弦111
のアタックを検出した時刻が代入されている変数TA1
〜TA6 のなかから、今回のアタックを検出した弦11
1以外で最も最近の時刻を検索し、この検索した時刻を
変数T0 に代入する。続くステップ1109では、今回
のアタックの時刻を変数Tn に代入する。変数Tn への
値の代入が終了すると、ステップ1110で変数Tn か
ら変数T0 を引いた値を変数Dに代入した後、ステップ
1111の処理に移行する。弦111の振動の取り込み
は、非常に短い時間間隔で繰り返し行われる。このた
め、変数T0 に代入した時刻は今回のアタックを検出し
た時刻よりも過去となり、変数Dの符号は正である。
【0083】ステップ1111では、最も最近アタック
が検出された弦番号は今回のアタックの弦番号よりも小
さいか否か、即ち変数T0 に代入した時刻でアタックを
検出した弦111の番号は変数nで表される弦番号より
も小さいか否か判定する。このステップ1111の判定
処理により、演奏者が6本の弦111に対して弾いた方
向が検出される。最近アタックを検出した弦番号は今回
の弦番号よりも小さい場合、即ち音高が低いほうから高
いほうに演奏者が弦111を弾いた(ダウンストローク
した)場合、その判定はYESとなり、ステップ111
2の処理に移行する。そうでない場合、即ち演奏者がア
ップストロークした場合、その判定はNOとなってステ
ップ1114の処理に移行する。
【0084】ステップ1112、1113では、ダウン
ストロークに応じて楽音を変調させるための設定が行わ
れる。先ず、ステップ1112では、CPU203から
送られた変数Down Depthと変数Dの値から変
調値(変数)Mを求める。この変調値Mは、例えば予め
用意した変調カーブテーブルから変数Dに対応する変調
率を読み出し、該読み出した変調率を変数Down D
epthの値に応じて修正することで求める。図12
は、この変調カーブテーブル例を示す図である。
【0085】ステップ1112に続くステップ1113
では、Down Parameterとして選択してい
るパラメータ(ビブラート等)を上記変調値(変数)M
の値によって変調、即ち選択しているパラメータを変調
する深さを設定する。その後、ステップ1116の処理
に移行する。
【0086】他方のステップ1114、1115では、
アップストロークに応じて楽音を変調させるための設定
が行われる。先ず、ステップ1114では、CPU20
3から送られた変数Up Depthと変数Dの値から
変調値(変数)Mを求める。このときの変調値Mも、例
えば予め用意した変調カーブテーブルから変数Dに対応
する変調率を読み出し、該読み出した変調率を変数Do
wn Depthの値に応じて修正することで求める。
【0087】ステップ1114に続くステップ1115
では、Up Parameterとして選択しているパ
ラメータを上記変調値(変数)Mの値によって変調、即
ち選択しているパラメータを変調する深さを設定する。
その後、ステップ1116の処理に移行する。
【0088】ステップ1116では、ステップ111
2、1113、或いはステップ1114、1115の処
理で設定した各種パラメータに基づいて、音源に発音開
始指示を行う。続くステップ1117では変数AFnに
0を代入し、その後、ステップ1106の処理に移行す
る。
【0089】上記ステップ1116では、例えば楽音読
出回路208にはPCM−ROM211から波形データ
を読み出す速度として変数CPITCHの各値が送ら
れ、フィルタ209、エンベロープ発生器210にはス
トロークの方向、及びその速度に応じて変調の深さを変
更したパラメータの値が送られる。変調を行う対象(パ
ラメータ)がビブラートであった場合、楽音読出回路2
08に送られる上記変数CPITCHの値はストローク
の方向、及びその速度に応じて増減される。これによ
り、エンベロープ発生器210から出力される最終的な
波形データは、弦111に対するストロークの方向、及
びその速度が反映されたものとなる。
【0090】このようにして、ストロークの方向、及び
ストロークの速さに応じて楽音は変調される。このた
め、演奏者は複数の弦111に対する弾き方によって発
音させる楽音を任意に変調することができる。ストロー
クの方向、及びストロークの速さの何方か一方のみを採
用しても、演奏者は従来より広範囲の音楽表現を容易に
行うことが可能であるが、本実施例ではこれらを組み合
わせているので、更に広範囲の音楽表現が容易となって
いる。
【0091】なお、ストロークの方向、及びストローク
の速さの他に、更にアタックを検出した弦111の位置
(番号)を組み合わせてもよい。また、変調の深さだけ
でなく、変調する対象を演奏者が弦111に対する弾き
方(ストロークの速度、ストロークした弦111の数、
及びその位置等。本実施例ではストロークの方向だけで
ある)で変更できるようにしてもよい。このように、本
発明は、様々な変形を行うことができるものである。こ
の一方では、本実施例で挙げている変調する対象はビブ
ラート、カットオフ周波数であるが、これに限定するも
のではなく、本発明が適用された機器の機能に応じて変
調する対象は選択すれば良い。この場合においても、演
奏者は変調する対象、その変調の深さ等の設定は演奏者
が任意に行えるようにすることが望ましい。
【0092】次に、タイマインタラプト処理について説
明する。このタイマインタラプト処理は、上述したよう
に、弦111の無振動状態が継続した期間、また、各弦
111のアタックが発生した時刻差を検出するために、
変数T、変数TMnの更新を行う割り込み処理であり、
所定時間間隔毎に実行される。図13はその動作フロー
チャートである。
【0093】先ず、ステップ1301では、変数Tをイ
ンクリメントする。このインクリメントが終了すると、
続くステップ1302において、インクリメント後の変
数Tの値は予め定めた最大値maxと等しいか否か判定
する。変数Tの値が最大値maxと等しかった場合、そ
の判定はYESとなり、ステップ1303で変数Tに0
を代入した後、ステップ1304の処理に移行する。そ
うでない場合、その判定はNOとなり、次にステップ1
304の処理を実行する。
【0094】このように、変数Tは0から最大値max
の間の値を繰り返して変更される。このため、弦111
のアタックの発生時刻の比較は、現在の値を基準として
行われる。
【0095】ステップ1304では、変数nに1を代入
する。これに続くステップ1305では、変数TMnを
インクリメントし、その後、ステップ1306で変数n
をインクリメントする。変数nのインクリメントが終了
すると、ステップ1307で変数nの値は7であるか否
か判定する。変数nの値が7の場合、その判定はYes
となって一連の処理を終了する。そうでない場合、その
判定はNOとなってステップ1305の処理に戻り、他
の変数TMnのインクリメントを継続して行う。
【0096】なお、本実施例は、弦111を振動体とす
るギターシンセサイザに本発明を適用したものである
が、これに限定したものではない。本発明は、複数の振
動体の機械振動をそれぞれ検出し、各振動体の振動状態
に応じてそれぞれ楽音を発音するものであれば広く適用
することができる。また、本実施例はコントロール部
(ギター110)、及び音源部100を備えて構成され
たシステム(ギターシンセサイザ)に適用したものであ
るが、コントロール部に本発明を適用し、音源部にMI
DI等で発音命令を送出するようしてもよい。
【0097】ところで、ギターにおいて一般的に用いら
れる奏法はストローク奏法であるが、2、或いは3フィ
ンガーピッキングのように、弦を一本ずつはじく奏法も
ある。演奏者がストローク奏法を行ったときだけそのス
トロークの方向に応じて楽音を変調したいような場合、
隣接してアタックが検出された時刻の差(本実施例では
変数Dに代入される)にしきい値を設け、このしきい値
より時刻の差が大きいか否かを監視していくことでこれ
を実現することができる。
【0098】
【発明の効果】以上、説明したように本発明は、例えば
これら複数の振動体に対して操作を行った順序(操作方
向)、その操作を行った際の時間間隔(操作速度)に着
目して、複数の振動体に対して演奏者が行った操作を関
連させて新たに演奏情報を生成し、この生成した演奏情
報を基にして楽音を制御するため、演奏者は広い音楽表
現を容易に行うことができる。
【図面の簡単な説明】
【図1】本実施例が適用されたシステムの外観図であ
る。
【図2】音源部の構成のブロック図である。
【図3】CPUによる全体処理の動作フローチャートで
ある。
【図4】DSPによる全体処理の動作フローチャートで
ある。
【図5】波形取り込む処理の動作フローチャートであ
る。
【図6】ピーク検出処理の動作フローチャートである。
【図7】アタック検出処理の動作フローチャートである
(その1)。
【図8】アタック検出処理の動作フローチャートである
(その2)。
【図9】アタックの検出方法の説明図である。
【図10】ピッチ検出処理の動作フローチャートであ
る。
【図11】発音検出処理の動作フローチャートである。
【図12】変調カーブテーブル例を示す図である。
【図13】タイマインタラプト処理の動作フローチャー
トである。
【符号の説明】
100 音源部 110 ギターシンセサイザ 112、112a ピックアップ 202 ROM 203 CPU 204 RAM 205 DSP 206 LPF 207 A/Dコンバータ 208 波形読出回路 209 フィルタ 210 エンベロープ発生器 211 PCM−ROM

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数の振動体の振動を各々検出し、該検
    出した振動状態に応じて発音命令を生成することによ
    り、発音される楽音を制御する楽音制御装置であって、 前記複数の振動体の振動状態をそれぞれ検出する振動検
    出手段と、 前記振動検出手段が検出した各振動体の振動状態から、
    前記振動体毎にその振動操作をそれぞれ検出する振動操
    作検出手段と、 前記振動操作検出手段が各振動体毎に検出したそれぞれ
    の振動操作の開始タイミング間の関係に基づき、前記発
    音命令を生成する制御手段と、 を具備したことを特徴とする楽音制御装置。
  2. 【請求項2】 前記制御手段は、前記振動操作検出手段
    が各振動体毎に検出したそれぞれの振動操作の開始タイ
    ミングから、前記複数の振動体において振動操作が行わ
    れた操作方向を認識し、該認識した操作方向を基に前記
    発音命令を生成する、 ことを特徴とする請求項1記載の楽音制御装置。
  3. 【請求項3】 前記制御手段は、前記振動操作検出手段
    が各振動体毎に検出したそれぞれの振動操作の開始タイ
    ミングから、前記振動操作を検出した開始タイミングが
    前後するその間の時間差を求め、該求めた時間差を基に
    前記発音命令を生成する、 ことを特徴とする請求項1記載の楽音制御装置。
  4. 【請求項4】 前記振動操作検出手段は、前記振動検出
    手段が検出した振動体の振動状態のなかから振幅のピー
    ク値を抽出し、該抽出したピーク値の変化から振動体に
    対する振動操作の開始タイミングを検出する、 ことを特徴とする請求項1記載の楽音制御装置。
JP7156517A 1995-06-22 1995-06-22 楽音制御装置 Abandoned JPH096338A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7156517A JPH096338A (ja) 1995-06-22 1995-06-22 楽音制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7156517A JPH096338A (ja) 1995-06-22 1995-06-22 楽音制御装置

Publications (1)

Publication Number Publication Date
JPH096338A true JPH096338A (ja) 1997-01-10

Family

ID=15629520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7156517A Abandoned JPH096338A (ja) 1995-06-22 1995-06-22 楽音制御装置

Country Status (1)

Country Link
JP (1) JPH096338A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005533279A (ja) * 2002-07-16 2005-11-04 ライン 6,インコーポレーテッド 組込みdspモデリングを有する弦楽器
JP2009233339A (ja) * 2009-05-29 2009-10-15 Namco Bandai Games Inc コンピュータ読み取り可能な記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005533279A (ja) * 2002-07-16 2005-11-04 ライン 6,インコーポレーテッド 組込みdspモデリングを有する弦楽器
JP2009233339A (ja) * 2009-05-29 2009-10-15 Namco Bandai Games Inc コンピュータ読み取り可能な記録媒体
JP4513132B2 (ja) * 2009-05-29 2010-07-28 株式会社バンダイナムコゲームス コンピュータ読み取り可能な記録媒体

Similar Documents

Publication Publication Date Title
EP0310133B1 (en) Tone signal generation device
JP3598613B2 (ja) 楽音パラメータ制御装置
CN111986638B (zh) 电子管乐器、乐音生成装置、乐音生成方法、记录介质
CN111095395B (zh) 声音信号生成装置、键盘乐器以及记录介质
CN110248272B (zh) 音响处理装置及音响处理方法
EP1391873B1 (en) Rendition style determination apparatus and method
JPH096338A (ja) 楽音制御装置
JPH0962257A (ja) 楽音信号処理装置
JP2692672B2 (ja) 楽音信号発生装置
JP3279861B2 (ja) 楽音信号発生装置
US5945621A (en) Musical tone control apparatus with envelope processing
JP2629418B2 (ja) 楽音合成装置
JP3114283B2 (ja) 楽音信号発生装置
JP2508138B2 (ja) 楽音信号発装置
JPH0635449A (ja) 電子打楽器
JP4821558B2 (ja) 楽音合成装置及びプログラム
JP2560348B2 (ja) 楽音信号発生装置
JP5088011B2 (ja) 携帯端末装置
JP3360104B2 (ja) 楽音信号形成装置
JPH0822282A (ja) ギター自動伴奏装置
JP4826276B2 (ja) 楽音合成装置及びプログラム
JP2004361528A (ja) 楽音信号発生装置及びレガート処理プログラム
JP2829996B2 (ja) 電子弦楽器
JP3484737B2 (ja) 楽音特性制御装置
JP2759149B2 (ja) 楽音制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040831

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20041001