JP3203734B2 - 演奏支援装置 - Google Patents

演奏支援装置

Info

Publication number
JP3203734B2
JP3203734B2 JP02296292A JP2296292A JP3203734B2 JP 3203734 B2 JP3203734 B2 JP 3203734B2 JP 02296292 A JP02296292 A JP 02296292A JP 2296292 A JP2296292 A JP 2296292A JP 3203734 B2 JP3203734 B2 JP 3203734B2
Authority
JP
Japan
Prior art keywords
key
variable
status
trill
performance
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 - Fee Related
Application number
JP02296292A
Other languages
English (en)
Other versions
JPH05224676A (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 JP02296292A priority Critical patent/JP3203734B2/ja
Publication of JPH05224676A publication Critical patent/JPH05224676A/ja
Application granted granted Critical
Publication of JP3203734B2 publication Critical patent/JP3203734B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、電子楽器に用いて好
適な演奏支援装置に関する。
【0002】
【従来の技術】自然楽器の奏法として、所定パターンを
繰返して演奏する奏法が各種知られている。具体的に
は、ピアノ等の鍵盤楽器の奏法の一つにトリル奏法が知
られている。トリル奏法とは二つの異なった音を急速に
反復しつつ演奏する奏法であるが、初心者がこれを行う
と、反復速度が遅く、押鍵強度や反復周期も一定になら
ない。これを巧みに行うには多くの訓練が必要であり、
その速さも自ずと限界がある。そこで、本出願人は、ト
リル演奏すべき二音の鍵を単に同時に押下することによ
り、自動的にトリル音を発生させる装置を提案している
(実公昭51−42362)。
【0003】
【発明が解決しようとする課題】しかしながら、上記装
置においては、トリル音を発生させるために和音と同様
の奏法、すなわち二音の鍵を単に同時に押下する奏法を
採用するから、演奏者において違和感が残るという問題
があった。さらに、二音の鍵を単に同時に押下する際に
和音を演奏するのかトリル音を演奏するのかを区別する
ため、なんらかの操作スイッチを設けて操作する必要が
あり、演奏が煩雑であった。本発明は上述した事情に鑑
みてなされたものであり、現実の繰返し奏法と同様の奏
法で繰返し音を発生させることができ、かつ、初心者に
おいても巧みな繰返し演奏を可能とする演奏支援装置を
提供することを目的としている。
【0004】
【課題を解決するための手段】上記課題を解決するため
本発明にあっては、順次入力される演奏情報に含まれる
キーコードが所定パターンの繰返しであるか否かを検出
する検出手段と、前記検出手段において前記キーコード
が所定パターンの繰返しであることが検出されている期
間中、検出されたパターンのキーコードを所定時間間隔
で順次自動的に出力する出力手段とを具備することを特
徴としている。
【0005】
【作用】検出手段において所定パターンの繰返しに係る
キーコードが検出されると、検出されたパターンのキー
コードが所定時間間隔で出力手段から順次自動的に出力
される。従って、例えば該所定時間間隔を一定値に設定
すると、入力された演奏情報に係るキーコードの時間間
隔にばらつきがあったとしても、出力手段からは一定の
時間間隔でキーコードが出力される。また、該所定時間
を入力された演奏情報に係るキーコードの時間間隔より
も短くすれば、出力手段からは演奏速度が加速されたキ
ーコードが出力される。また、出力されるキーコードに
係る押鍵強度を一定にすれば、入力された演奏情報の押
鍵強度にばらつきがあったとしても、出力手段からは一
定の押鍵強度の演奏情報が出力される。そして、検出手
段において所定パターンのキーコードが検出されなくな
ると、出力手段におけるキーコードの出力が停止する。
【0006】
【実施例】A.実施例の構成 以下、図面を参照してこの発明の実施例について説明す
る。まず、図1はこの発明の一実施例による電子楽器の
電気的構成を示すブロック図であり、演奏者によるトリ
ル演奏を検出し、検出したトリル演奏を加速化、平均化
等した後に楽音信号として出力するものである。
【0007】図において1は鍵盤であり、演奏者によっ
て演奏される複数の鍵が設けられ、これら鍵に対する操
作情報がバス5を介して出力される。この操作情報は、
通常の電子楽器のキーボードと同様に、押鍵を示すキー
オンパルスKON,離鍵を示すキーオフパルスKOF
F,音高を示すキーコードKCおよび押鍵の強さを示す
ベロシティVEL等から成る。
【0008】また、2は中央処理装置(CPU)であ
り、読出し専用メモリ(ROM)3に設定された処理プ
ログラムに基づいて、他の構成要素を制御するように構
成されている。なお、ROM3には、制御プログラムの
他に、処理において使用される各種のデータおよびテー
ブル等も格納されている。4は読出し/書込みメモリ
(RAM)であり、CPU2の処理において、変数等を
一時的に記憶するための各種レジスタ、フラグ等が割当
てられる。6はタイマであり、CPU2に時刻情報を供
給する。
【0009】次に、7は音源回路であり、CPU2から
バス5を介して音高、エンベロープ、音色等を指令する
データを受信すると、これらのデータに基づいて楽音信
号を発生する。そして、音源回路7は周知の電子楽器の
音源回路と同様に複数の楽音発生チャンネルが設けられ
ており、キーイベント毎にチャンネルが割当てられ、複
数の楽音を発生することが可能になっている。次に、8
はサウンドシステムであり、音源回路7から出力された
音声信号を増幅して発音するものである。
【0010】B.実施例の動作 実施例の全体動作 次に、図2〜図4を参照し本実施例の全体を説明する。
まず、本実施例の制御プログラムは、大略図2に示すよ
うに、トリル検出部100と、トリル変換部200と、
トリル再合成部300とから構成されている。トリル検
出部100は、鍵盤1から入力された演奏情報に基づい
て、トリル演奏が行われたか否かを検出し、トリル演奏
が行われたことを検出すると、トリル情報すなわちトリ
ル演奏の速度、音高、音量等のデータをトリル変換部2
00に供給する。また、トリル検出部100は、トリル
演奏以外の演奏情報を音源回路7に供給する。
【0011】次に、トリル変換部200は、供給された
トリル情報を加工してトリル再合成部300に供給す
る。すなわち、トリル速度を大とするとともに、その時
間間隔およびベロシティVELの偏差を小とし、他のト
リル情報とともにトリル再合成部300に供給する。次
に、トリル再合成部300は、加工されたトリル情報に
基づいて、演奏情報を合成し、音源回路7に供給する。
従って、音源回路7には、トリル再合成部300からト
リル演奏に係る演奏情報が供給されるか、若しくは、ト
リル検出部100からトリル以外の演奏情報が供給さ
れ、両演奏情報に係る楽音がサウンドシステム8(図1
参照)から出力される。
【0012】(i)トリル検出部100による動作 (i−i)キーコードKCに基づく状態遷移 次に、トリル検出部100による動作の概要を図3の状
態遷移図を参照して説明する。まず、トリル検出部10
0には、STATUS-0〜STATUS-4の五の状態(ステータス)
が存在し、原則としてキーコードKCが入力される度に
ステータスが遷移する。STATUS-0は初期状態のステータ
スであり、ここで鍵盤1の何れかの鍵が押鍵されると、
その鍵のキーコードKCが変数KC1に代入され、ステ
ータスがSTATUS-1に遷移する。次に、STATUS-1において
何れかの鍵が押下されると、その鍵のキーコードKCが
変数KC2に代入され、ステータスがSTATUS-2に遷移す
る。
【0013】次に、STATUS-2において何れかの鍵が押下
されると、その鍵のキーコードKCが変数KC1に等し
いか否かが判定される。ここで、両者が等しい場合はス
テータスがSTATUS-3に遷移する。一方、両者が等しくな
い場合には、変数KC2の内容が変数KC1に代入さ
れ、キーコードKCの内容が変数KC2に代入され、ス
テータスはSTATUS-2のまま保持される。従って、例えば
STATUS-0の状態からコード「C1」,「D1」,「C1」が連続し
て押鍵されると、ステータスは、STATUS-1およびSTATUS
-2を介してSTATUS-3に遷移する。
【0014】ここで、コード「C1」,「D1」,「C1」が順次
演奏された場合を考えると、この状態ではトリル演奏で
ある可能性が高いと考えられるが、トリル演奏であると
断定することは困難である。しかし、さらに多くの鍵が
押鍵されるのを待ってトリル演奏であるか否かを確実に
判定しようとすると、後述するトリル演奏の支援がそれ
だけ遅延することになる。そこで、本実施例において
は、ステータスがSTATUS-2からSTATUS-3に遷移する際
に、一応「トリル演奏が開始された」と判定し、トリル
検出部100からトリル変換部200に、その旨の情報
(開始メッセージ)が供給される。
【0015】次に、STATUS-3において何れかの鍵が押鍵
されると、そのキーコードKCが変数KC2(上記例で
はコード「D1」)に等しいか否かが判定される。両者が
等しい場合は、時間間隔および音量に関する情報がトリ
ル変換部200に供給され、ステータスがSTATUS-4に遷
移する。一方、両者が等しくなかった場合には、トリル
演奏が終了したものと判定され、その旨の情報(終了メ
ッセージ)がトリル再合成部300に供給されるととも
に、ステータスがSTATUS-0に遷移する。
【0016】次に、STATUS-4において何れかの鍵が押鍵
されると、上記STATUS-3の場合と同様に、そのキーコー
ドKCが変数KC1(上記例ではコード「C1」)に等し
いか否かが判定される。両者が等しい場合には、時間間
隔および音量に関する情報がトリル変換部200に供給
され、ステータスがSTATUS-3に遷移する。また、STATUS
-3の場合と同様に、両者が等しくない場合には、終了メ
ッセージがトリル再合成部300に供給され、ステータ
スがSTATUS-0に遷移する。従って、トリル検出部100
は、コード「C1」,「D1」,「C1」,「D1」,……が所定時間内
の間隔で繰返し演奏される限り、ステータスはSTATUS-3
およびSTATUS-4を交互に遷移することになる。
【0017】(i−ii)押鍵の時間間隔に基づく状態遷移 ところで、鍵盤1において、二のキーコードが交互に押
鍵された場合においても、両キーコードの押鍵時間間隔
が長い場合にはトリル演奏とは言えない。そこで、本実
施例においては、一の鍵が押鍵されてから他の鍵が押鍵
されるまでの時間間隔が検出され、この時間間隔が所定
時間Kよりも小であるか否かが判定される。そして、こ
の時間間隔が該所定時間K以上であった場合には、ステ
ータスがSTATUS-1〜STATUS-4の何れであっても強制的に
STATUS-0に遷移させることとしている。
【0018】(ii)トリル変換部200による動作 次に、トリル変換部200による動作の概要を説明す
る。まず、上述したように、トリル変換部200はトリ
ル検出部100から、トリル演奏の速度、音高、音量等
のトリル情報が供給される。しかし、このトリル情報
は、演奏者によって演奏されたままの情報であり、特に
演奏者が初心者である場合にはトリル速度が遅く、その
速度(発音間隔)もベロシティも一定しない。そこで、
トリル変換部200においては、トリル速度情報に所定
の係数を乗算することによりトリル速度を向上させ、さ
らに、乗算後のトリル速度とベロシティとを一定の時間
に亙って平均化することにより、発音間隔のばらつきと
ベロシティのばらつきとを小とする。そして、このよう
に加工されたトリル情報は、トリル再合成部300に供
給される。
【0019】(iii)トリル再合成部300による動作 次に、トリル再合成部300による動作の概要を図4の
状態遷移図を参照して説明する。まず、トリル再合成部
300には、OTSTATUS-0,OTSTATUS-1およびOTSTATUS-2
の三のステータスが存在する。OTSTATUS-0は初期状態の
ステータスであり、ここでトリル変換部200からトリ
ル情報が供給されたか否かが検出される。トリル情報の
供給が検出されると、ステータスがOTSTATUS-1に遷移す
る一方、検出されなかった場合にはステータスはOTSTAT
US-0に留る。
【0020】次に、OTSTATUS-1においては、トリル検出
部100からトリル終了メッセージが供給されたか否か
が判定され、供給された場合にはステータスがOTSTATUS
-0に遷移する。一方、終了メッセージが供給されなかっ
た場合には、トリル変換部200から供給されたトリル
情報に基づいて、第1のキーコード(トリル検出部10
0でトリル演奏が検出された場合の変数KC1に等し
い)に係るトリル演奏情報を合成し、これを音源回路7
に供給する。
【0021】また、OTSTATUS-2における動作もこれと同
様である。すなわち、OTSTATUS-2にあっては、トリル検
出部100からトリル終了メッセージが供給されたか否
かが判定され、供給された場合にはステータスがOTSTAT
US-0に遷移する。一方、終了メッセージが供給されなか
った場合には、トリル変換部200から供給されたトリ
ル情報に基づいて、第2のキーコード(同、変数KC2
に等しい)に係るトリル演奏情報を合成し、これを音源
回路7に供給する。
【0022】このように、トリル再合成部300におい
てOTSTATUS-1とOTSTATUS-2との間でステータスが遷移し
ている状態においては、トリル変換部200から供給さ
れたトリル情報に基づいて二のキーコードに係るトリル
演奏情報が交互に合成される。これによって、加速化お
よび平均化されたトリル音がサウンドシステム8から出
力される。
【0023】なお、トリル再合成部300におけるOTST
ATUS-1とOTSTATUS-2との間のステータスの遷移は、トリ
ル検出部100におけるSTATUS-3とSTATUS-4との間のス
テータスの遷移と同期するものではない。例えば、鍵盤
1においてトリル演奏に係る押鍵が10回なされれば、
トリル検出部100におけるステータスは、STATUS-3と
STATUS-4との間を10回(5往復)遷移することにな
る。一方、トリル変換部200において、例えばトリル
演奏の速度を2倍に加速するように設定されていれば、
トリル再合成部300におけるOTSTATUS-1とOTSTATUS-2
との間の状態遷移は約20回になる。
【0024】実施例の詳細動作 (i)STATUS-0における動作 上述した全体動作の詳細を図5〜図13のフローチャー
トを参照して説明する。図5はROM3に格納された制
御プログラムのメインルーチンのフローチャートであ
り、装置の電源投入とともに処理がステップSP1に進
む。ステップSP1においては、プログラムの初期設定
が行われ、全てのレジスタが所定の初期値にリセットさ
れる。
【0025】次に、処理がステップSP2に進むと、鍵
盤1からキーオン信号KONが出力されたか否か、すな
わち押鍵が有ったか否かが検出され、押鍵が検出される
まで処理が待機する。そして、キーオン信号KONが検
出されると、処理がステップSP3に進む。ステップS
P3においては、変数CRTMの内容が変数KONTM
に設定される。ここで、変数CRTMは、後述する割込
処理において時々刻々の時刻情報が設定される。従っ
て、以下変数CRTMを時刻情報CRTMと呼ぶ。ま
た、変数KONTMには、キーオン信号KONが検出さ
れた際の時刻情報CRTMが設定され、これによってキ
ーオン時刻を示す変数となる。従って、以下、変数KO
NTMを、キーオンタイムKONTMと呼ぶ。
【0026】次に、処理がステップSP4に進むと、変
数STATUSの値に応じて対応するサブルーチンが呼
出される。ここで、変数STATUSは、「0」〜
「4」の値を取り得る変数であり、これによってトリル
検出部100におけるステータスが(図3参照)STATUS
-0〜STATUS-4の何れであるのかを表示する。この変数S
TATUSは、先に初期設定(ステップSP1)におい
て「0」に設定されており、最初の押鍵時においてはST
ATUS-0に対応するサブルーチン(図6(a))が呼出され
る。
【0027】図6(a)のサブルーチンが呼出されると、
処理がステップSP101に進み、変数KC1に鍵盤1
から出力されたキーコードKCが代入され、変数VEL
1に鍵盤1から出力されたベロシティVELが代入さ
れ、これにより、最初の押鍵に係る情報が記録される。
また、同ステップにおいては、最新の押鍵に係る時刻を
示す変数PRVTMに現時点の時刻情報CRTMが代入
され、ステータスをSTATUS-1に遷移させるべく変数ST
ATUSが「1」に設定される。
【0028】次に、処理がステップSP102に進む
と、上記変数KC1、変数VEL1がそれぞれキーコー
ドおよびベロシティとして、キーオン信号KONととも
に音源回路7に供給される。これにより、最初の押鍵状
態に基づいた楽音が音源回路7を介してサウンドシステ
ム8から出力される。そして、以上の処理が終了する
と、処理がメインルーチン(図5)に戻る。
【0029】(ii)STATUS-1における動作 メインルーチンにおいては、次のキーオン信号KONが
検出されるまでステップSP2で処理が待機し、キーオ
ン信号KONが検出されると、処理がステップSP3を
介してステップSP4に進む。ここで、変数STATU
Sは先にステップSP101が実行された際に「1」に
設定されたから、STATUS-1に対応するサブルーチン(図
6(b)参照)が呼出される。
【0030】図6(b)において処理が開始されると、ス
テップSP111において変数KC2に鍵盤1から出力
されたキーコードKCが代入され、変数VEL2に鍵盤
1から出力されたベロシティVELが代入され、これに
より、2番目の押鍵に係る情報が記録される。また、同
ステップにおいては、最新の押鍵から2番目の押鍵まで
の時間が、時刻情報CRTMから変数PRVTMを減算
することによって求められ、求められた時間が変数IN
TV1に代入される。また、ステータスをSTATUS-2に遷
移させるべく変数STATUSが「2」に設定される。
【0031】次に、処理がステップSP112に進む
と、変数PRVTMに現時点の時刻情報CRTMが代入
される。次に、処理がステップSP113に進むと、上
記変数KC2、変数VEL2がそれぞれキーコードおよ
びベロシティとして、キーオン信号KONとともに音源
回路7に供給される。これにより、2番目の押鍵状態に
基づいた楽音が音源回路7を介してサウンドシステム8
から出力される。そして、以上の処理が終了すると、処
理がメインルーチン(図5)に戻る。
【0032】ところで、上述したように、本実施例によ
れば、トリル演奏がなされたか否かの判断はキーコード
に基づいてのみ行われるものではなく、押鍵の時間間隔
も判断対象となる。すなわち、最初の押鍵から2回目の
押鍵までの時間が所定時間K未満であれば、ステータス
はSTATUS-0に強制的に戻される。但し、この処理は後述
するタイマ割込処理によって行われるため、詳細は後述
する。
【0033】(iii)STATUS-2における動作 メインルーチンにおいて、3番目の押鍵に係るキーオン
信号KONが検出されると、処理がステップSP3を介
してステップSP4に進む。ここで、変数STATUS
は先にステップSP111において「2」に設定された
から、STATUS-2に対応するサブルーチン(図7参照)が
呼出される。
【0034】(iii−i)最初のキーコードと3番目のキー
コードとが一致しない場合の動作 図7において処理が開始されると、3番目の押鍵に係る
キーコードKCが、変数KC1すなわち最初の押鍵にか
かるキーコードと相違するか否かが判定される。ここ
で、両キーコードが相違する場合には「YES」と判定
されると、処理がステップSP122に進み、2番目の
押鍵に係る変数KC2の内容と変数VEL2の内容とが
各々変数KC1と変数VEL1とに転送される。次に、
処理がステップSP123に進むと、変数KC2に3番
目の押鍵に係るキーコードKCが代入され、変数VEL
2に3番目の押鍵に係るベロシティVELが代入され
る。次に、処理がステップSP124に進むと、変数I
NTV1の内容すなわち最初の押鍵から2番目の押鍵ま
での時間が変数INTV2に転送される。
【0035】次に、処理がステップSP125に進む
と、時刻情報CRTMから変数PRVTMが減算され、
この結果が変数INTV1に代入される。ここで、変数
PRVTMには、先にステップSP112において2番
目の押鍵時刻が代入されているから、変数INTV1に
は、2番目の押鍵から3番目の押鍵までの時間が代入さ
れる。次に、変数PRVTMには、時刻情報CRTMす
なわち3番目の押鍵に係る時刻が代入される。
【0036】次に、処理がステップSP126に進む
と、上記変数KC2、変数VEL2がそれぞれキーコー
ドおよびベロシティとして、キーオン信号KONととも
に音源回路7に供給される。これにより、3番目の押鍵
状態に基づいた楽音が音源回路7を介してサウンドシス
テム8から出力される。そして、以上の処理が終了する
と、処理がメインルーチン(図5)に戻る。
【0037】上記ステップSP121〜126の動作に
おいては、変数STATUSは変更されないから、ステ
ータスはSTATUS-2のまま保持される。また、ステップS
P122においては元々最初の押鍵に係る情報が記録さ
れていた変数KC1およびVEL1に2番目の押鍵に係
る情報が転送され、ステップSP123においては元々
2番目の押鍵に係る情報が記録されていた変数KC2お
よびVEL2に3番目の押鍵に係る情報が転送される。
従って、以後メインルーチンにおいてキーオン信号KO
Nが検出される度に図7のサブルーチンが呼出され、変
数KC1に記憶された「N−2」番目の押鍵に係るキー
コードと、「N」番目の押鍵に係るキーコードKCとが
一致するまで、上記ステップSP121〜126の処理
が同様に繰返される。
【0038】(iii−ii)最初のキーコードと3番目のキ
ーコードとが一致する場合の動作 一方、3番目の押鍵に係るキーコードKCが、変数KC
1すなわち最初の押鍵にかかるキーコードと等しい場合
には、ステップSP121において「NO」と判定さ
れ、処理がステップSP127に進む。
【0039】ステップSP127においては、3番目の
押鍵に係るベロシティVELが変数VEL1に代入され
る。次に、処理がステップSP128に進むと、変数I
NTV1の内容すなわち最初の押鍵から2番目の押鍵ま
での時間が変数INTV2に転送される。また、時刻情
報CRTMから変数PRVTMが減算され、この減算結
果すなわち2番目の押鍵から3番目の押鍵までの時間が
変数INTV1に代入される。また、変数PRVTMに
時刻情報CRTMが代入され、ステータスをSTATUS-3に
遷移させるべく変数STATUSが「3」に設定され
る。次に、処理がステップSP129に進むと、トリル
スタートサブルーチン(図10)が呼出される。
【0040】図10において処理が開始されると、ステ
ップSP201において、変数KC1,KC2の内容
が、それぞれ変数OTKC1,OTKC2に転送され
る。ここで、変数OTKC1,OTKC2は、それぞれ
合成するトリル演奏情報に係るキーコードを示す変数で
ある。また、変数VEL1,VEL2の平均値すなわち
2番目の押鍵のベロシティと3番目の押鍵のベロシティ
との平均値が変数OTVELに格納される。ここで、変
数OTVELは、合成するトリル演奏情報のベロシティ
を示す変数である。また、 OTINTV=(INTV1×a1+INTV2×a2
×(rate/100)……式(1) なる演算が実行されることにより、変数OTINTVが
設定される。
【0041】ここで、変数OTINTVは合成するトリ
ル演奏情報の発音時間間隔を示す変数である。式(1)に
おいて、a1およびa2は重み付けのための定数であり、
1>a2およびa1+a2=1の関係がある。すなわち、変
数OTINTVは過去の押鍵間隔たる変数INTV1,
INTV2に基づいて決定されるが、より新しい押鍵間
隔たる変数INTV1を重視して決定するようにしたも
のである。また、定数rateは、トリル演奏を加速す
るための定数であり、例えば演奏者の演奏速度の2倍に
設定する場合には、「50」に設定される。また、トリ
ル再合成部300の出力ステータス(図4参照)をOTST
ATUS-1に設定すべく、変数OTSTATUSが「1」に
設定される。
【0042】次に、処理がステップSP202に進む
と、3番目の押鍵時刻たる変数PRVTMと、トリル演
奏情報の発音時間間隔たる変数OTINTVとが加算さ
れ、加算結果が変数OTTMに代入される。これによ
り、変数OTTMは、次にトリル音を発音する時刻を表
示する。以上の処理により、トリル演奏情報の合成に必
要な各種変数が設定されると、処理が図7のサブルーチ
ンを介してメインルーチンに戻る。そして、タイマ割込
が発生すると、設定した各種変数に基づいてトリル演奏
情報が合成される(詳細は後述する)。
【0043】なお、図7においてステップSP121〜
126の処理が数回実行され、「N−2」番目の押鍵に
係るキーコードと、「N」番目の押鍵に係るキーコード
KCとの一致が検出された場合も上記と同様の処理が行
われる。この場合、上記説明のうち、“最初の押鍵”を
“「N−2」番目の押鍵”と、“2番目の押鍵”を
“「N−1」番目の押鍵”と、“3番目の押鍵”を
“「N」番目の押鍵”と読み替える。以後の処理につい
ても同様である。
【0044】(iv)STATUS-3における動作 次に、メインルーチンにおいて、4番目の押鍵に係るキ
ーオン信号KONが検出されると、処理がステップSP
3を介してステップSP4に進む。ここで、変数STA
TUSは先にステップSP128において「3」に設定
されたから、STATUS-3に対応するサブルーチン(図8参
照)が呼出される。
【0045】(iv−i)2番目のキーコードと4番目のキ
ーコードとが一致しない場合の動作 図8において処理が開始されると、ステップSP131
において、4番目の押鍵に係るキーコードKCと変数K
C2すなわち2番目の押鍵にかかるキーコードとが相違
するか否かが判定される。ここで、両キーコードが相違
する場合にはトリル演奏が停止されたものと考えられる
ゆえ「YES」と判定され、処理がステップSP137
に進む。ステップSP137においては、トリル停止サ
ブルーチン(図12)が呼出され、変数OTSTATU
Sが「0」に設定される。次に、ステップSP138に
おいては、変数STATUSが「0」に設定される。こ
れにより、プログラムが初期状態に戻され、処理がメイ
ンルーチンに戻る。
【0046】(iv−ii)2番目のキーコードと4番目のキ
ーコードとが一致する場合の動作 一方、4番目の押鍵に係るキーコードKCと、変数KC
2すなわち2番目の押鍵にかかるキーコードとが一致す
る場合には、トリル演奏が続行されているものと考えら
れる。この場合にはステップSP131において「N
O」と判定され、処理がステップSP132に進む。
【0047】ステップSP132においては、4番目の
押鍵に係るベロシティVELが変数VEL2に代入され
る。次に、処理がステップSP133に進むと、変数I
NTV2の内容が変数INTV3に、変数INTV1の
内容が変数INTV2に順次転送される。次に、処理が
ステップSP134に進むと、時刻情報CRTMから変
数PRVTMの内容が減算され、その減算結果すなわち
3番目の押鍵から4番目の押鍵までの時間が変数INT
V1に代入される。
【0048】これにより、変数INTV1には3番目の
押鍵から4番目の押鍵までの時間間隔が、変数INTV
2には2番目の押鍵から3番目の押鍵までの時間間隔
が、変数INTV3には最初の押鍵から2番目の押鍵ま
での時間間隔が、それぞれ記憶される。また、ステップ
SP134にあっては、変数PRVTMの内容が時刻情
報CRTMに設定され、ステータスをSTATUS-4に遷移さ
せるべく変数STATUSが「4」に設定される。
【0049】次に、処理がステップSP135に進む
と、変数VEL2の内容すなわち4番目の押鍵に係るベ
ロシティ(ステップSP132参照)が変数VELPに
転送される。次に、処理がステップSP136に進む
と、トリル続行サブルーチン(図11)が呼出される。
【0050】図11において処理が開始されると、ステ
ップSP211において、変数OTVELと変数VEL
Pとの平均値が演算され、この演算結果が変数OTVE
Lの新たな値として設定される。ここで、先にステップ
SP201が実行された際、変数OTVELには2番目
の押鍵と3番目の押鍵に係るベロシティの平均値が記憶
されているから、この値が4番目の押鍵のベロシティに
よる影響を付与されつつ更新されることになる。また、
本ステップにいては、 OTINTV=(INTV1×a3+INTV2×a4+INTV2×a5) ×(rate/100) ……式(2) なる演算が実行されることにより、変数OTINTVが
設定される。
【0051】ここで、変数OTINTVは、式(1)にお
いて説明したように、合成するトリル演奏情報の発音時
間間隔を示す変数であり、a3〜a5は、式(1)における
1,a2と同様に重み付けのための定数であり、a3
4+a5=1の関係を有し、また、より新しい押鍵間隔
を重視するため、a3>a4>a5の関係がある。
【0052】次に、処理がステップSP212に進む
と、4番目の押鍵時刻たる変数PRVTMと、トリル演
奏情報の発音時間間隔たる変数OTINTVとが加算さ
れ、加算結果が変数OTTMに代入される。これによ
り、変数OTTMは、次にトリル音を発音する時刻を表
示する。以上の処理により、トリル演奏情報の合成に必
要な各種変数が設定されると、処理が図8のサブルーチ
ンを介してメインルーチンに戻る。
【0053】(v)STATUS-4における動作 次に、メインルーチンにおいて、5番目の押鍵に係るキ
ーオン信号KONが検出されると、処理がステップSP
3を介してステップSP4に進む。ここで、変数STA
TUSは先にステップSP134において「4」に設定
されたから、STATUS-4に対応するサブルーチン(図9参
照)が呼出される。
【0054】(v−i)最初および3番目のキーコードと5
番目のキーコードとが一致しない場合の動作 図9において処理が開始されると、5番目の押鍵に係る
キーコードKCと、変数KC2すなわち最初および3番
目の押鍵にかかるキーコードとが相違するか否かが判定
される。ここで、両キーコードが相違する場合には、図
8における処理と同様に、ステップSP147を介して
トリル停止サブルーチン(図12)が呼出されることに
よって変数OTSTATUSが「0」に設定され、次に
ステップSP148において変数STATUSが「0」
に設定され、プログラムが初期状態に戻され、処理がメ
インルーチンに戻る。
【0055】(v−ii)最初および3番目のキーコードと
5番目のキーコードとが一致する場合の動作 一方、5番目の押鍵に係るキーコードKCと、変数KC
2すなわち最初および3番目の押鍵にかかるキーコード
とが一致する場合には、処理がステップSP142に進
む。ステップSP142〜146における処理は、上記
ステップSP132〜136における処理と同様であ
る。すなわち、5番目の押鍵に係るベロシティVELが
ステップSP142を介して変数VEL1に代入され、
ステップSP145を介して変数VELPに代入され
る。
【0056】また、ステップSP143、144を介し
て変数INTV1、INTV2およびINTV3が更新
され、変数PRVTMの内容が時刻情報CRTMに設定
され、ステータスをSTATUS-3に遷移させるべく変数ST
ATUSが「3」に設定される。次に、処理がステップ
SP146に進むと、トリル続行サブルーチン(図1
1)が呼出され、変数OTVEL、OTINTVおよび
OTTMが更新される。以後、トリル演奏が続行される
と、STATUS-3とSTATUS-4との間で押鍵の度にステータス
が遷移し、図8および図9のサブルーチンが交互に実行
される。
【0057】(vi)割込処理における動作 CPU2はタイマ6によって所定時間毎にタイマ割込が
かけられており、タイマ割込が発生すると、図13のタ
イマ割込処理ルーチンが呼出される。このルーチンは、
主にソフトウエアの全体構成(図2)中のトリル再合成
部300の処理と、トリル検出部100における押鍵時
間間隔による状態遷移の処理とを担うものである。以
下、詳細に説明する。図13において処理が開始される
と、ステップSP301において、タイマ6から時刻情
報が読出され、読出された時刻が変数(時刻情報)CR
TMに設定される。次に、処理がステップSP302に
進むと、この時刻情報CRTMとキーオンタイムKON
TMとの差が所定時間K以上であるか否かが判定され
る。なお、キーオンタイムKONTMには、最後の押鍵
に係る時刻が格納されている(図5ステップSP2,3
参照)。従って、ここで「YES」と判定された場合す
なわち上記差が所定時間K以上である場合には、トリル
演奏が終了したものと考えられる。
【0058】従って、かかる場合は処理がステップSP
310に進み、トリル停止サブルーチン(図12)を介
して変数OTSTATUSが「0」に設定され、さらに
ステップSP311を介して処理が変数STATUSが
「0」に設定される。これにより、プログラムが初期状
態に戻され、割込処理が終了し、処理が割込前のルーチ
ンに戻る。
【0059】一方、ステップSP302において「N
O」と判定された場合すなわち発音間隔に鑑みてトリル
演奏が続行されていると判定された場合には、処理がス
テップSP303に進む。ステップSP303において
は、時刻情報CRTMが変数OTTM以上であるか否か
が判定される。ここで、変数OTTMには、先にステッ
プSP202(図10参照)またはステップSP212
(図11参照)が実行された際に、次のトリル音を発音
すべき時刻が記録されている。従って、時刻情報CRT
Mがかかる時刻に達していなければ、「NO」と判定さ
れ、割込処理が終了し、処理が割込前のプログラムに戻
る。
【0060】一方、時刻情報CRTMが次のトリル音を
発音すべき時刻に達している場合には、ステップSP3
03において「YES」と判定され、処理がステップS
P304に進む。ところで、時刻情報CRTMが次のト
リル音を発音すべき時刻に達している場合においても、
トリル演奏に係る鍵以外の鍵が押下され、これによって
トリル演奏が停止した場合には、トリル音を出力すべき
でない。トリル演奏の途中においてこのような状態が生
じた場合は、先に説明したステップSP137(図8参
照)およびステップSP147(図9参照)において説
明したように、トリル停止サブルーチン(図12参照)
が呼出され、変数OTSTATUSが「0」に設定され
る。
【0061】そこで、ステップSP304にあっては、
変数OTSTATUSが「0」以外の数であるか否かを
判定し、「YES」と判定された場合にのみ、ステップ
SP305〜309に処理を移行させ、「NO」と判定
された場合すなわち変数OTSTATUSが「0」であ
る場合には、割込処理を終了させる。
【0062】処理がステップSP305に進むと、変数
OTSTATUSが「1」であるか否かが判定される。
ここで、変数OTSTATUSは「0」ではないから、
「1」または「2」である。「1」の場合は「YES」
と判定され、処理がステップSP306に進む。ステッ
プSP306においては、先にステップSP201(図
10参照)において設定された変数OTKC1および変
数OTVELが、それぞれキーコードおよびベロシティ
として、キーオン信号KONとともに音源回路7に出力
される。
【0063】次に、処理がステップSP307に進む
と、変数OTTMと発音間隔を示す変数OTINTVと
が加算され、加算結果が新たな変数OTTMとして設定
される。また、変数OTSTATUSが「2」に設定さ
れる。そして、上記処理が終了すると、タイマ割込処理
が終了する。
【0064】従って、以後、時刻情報CRTMが更新後
の変数OTTMに達する前にこのタイマ割込ルーチンが
実行されると、ステップSP303において「NO」と
判定されることになる。また、ステップSP307おい
て変数OTSTATUSが「2」に設定されたから、次
にステップSP305が実行されると「NO」と判定さ
れることになる。また、上述したように、変数OTTM
の値は、演奏者による新たな押鍵があると、その操作状
態に基づいて更新される(図10ステップSP202、
図11ステップSP212参照)。
【0065】一方、上記ステップSP305で「NO」
と判定されると、処理がステップSP308に進む。ス
テップSP308,309における処理は、上記ステッ
プSP306,307における処理と同様である。すな
わち、ステップSP308においては、変数OTKC2
および変数OTVELが、それぞれキーコードおよびベ
ロシティとしてキーオン信号KONとともに音源回路7
に出力され、ステップSP309においては、変数OT
TMが更新されるとともに変数OTSTATUSが
「1」に設定される。そして、上記処理が終了すると、
タイマ割込処理が終了する。
【0066】なお、本発明は上述した実施例に限定され
るものではなく、種々の変形が可能であることは言うま
でもない。例えば、上記実施例においては、二つの音の
繰返しによるトリル奏法を検出して自動的にトリル演奏
を行うようにしたが、三つ以上の音による所定パターン
の繰返し(例えば、コード「D1」,「C1」,「D1」,「E1」,
「D1」,「C1」,「D1」,……の繰返しであるターン奏法、あ
るいはアルペジオ奏法等)を検出し、検出したパターン
に係る演奏を自動的に行うようにしてもよい。
【0067】また、上記実施例においては、最新の押鍵
と、最新の押鍵の一つ前の押鍵と、最新の押鍵の二つ前
の押鍵の押鍵タイミングおよび押鍵強度の平均をとるこ
とによってトリル演奏の速度および押鍵強度を決定し、
トリル演奏の加速および押鍵強度の平均化を行うように
したが、この処理は必ずしも行う必要は無い。すなわ
ち、トリル演奏を検出した時点の速度および押鍵速度に
よって出力すべきトリル演奏情報の速度および押鍵強度
を決定し、トリル演奏が検出されている間は、決定した
速度および押鍵強度に基づいてトリル演奏を自動的に行
うようにしてもよい。
【0068】さらに、上記実施例においては、鍵盤の演
奏によって出力されたキーコードに基づいてトリル演奏
を検出したが、これに限らず、外部機器からMIDIで
入力されたキーコードに基づいてトリル演奏を検出して
もよい。
【発明の効果】以上説明したように、本発明の演奏支援
装置によれば、自動的に所定時間間隔で繰返し演奏が行
われるから、初心者においても巧みな繰返し演奏を行う
ことが可能である。
【図面の簡単な説明】
【図1】 一実施例のハードウエア構成を示すブロック
図である。
【図2】 一実施例のソフトウエアの全体構成を示すブ
ロック図である。
【図3】 トリル検出部100の状態遷移図である。
【図4】 トリル再合成部300の状態遷移図である。
【図5】 一実施例の制御プログラムのメインルーチン
のフローチャートである。
【図6】 同制御プログラムのサブルーチンのフローチ
ャートである。
【図7】 同制御プログラムのサブルーチンのフローチ
ャートである。
【図8】 同制御プログラムのサブルーチンのフローチ
ャートである。
【図9】 同制御プログラムのサブルーチンのフローチ
ャートである。
【図10】 同制御プログラムのサブルーチンのフロー
チャートである。
【図11】 同制御プログラムのサブルーチンのフロー
チャートである。
【図12】 同制御プログラムのサブルーチンのフロー
チャートである。
【図13】 同制御プログラムのタイマ割込処理ルーチ
ンのフローチャートである。
【符号の説明】
2 中央処理装置(検出手段、出力手段)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 順次入力される演奏情報に含まれるキー
    コードが所定パターンの繰返しであるか否かを検出する
    検出手段と、 前記検出手段において前記キーコードが所定パターンの
    繰返しであることが検出されている期間中、検出された
    パターンのキーコードを所定時間間隔で順次自動的に出
    力する出力手段とを具備することを特徴とする演奏支援
    装置。
JP02296292A 1992-02-07 1992-02-07 演奏支援装置 Expired - Fee Related JP3203734B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02296292A JP3203734B2 (ja) 1992-02-07 1992-02-07 演奏支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02296292A JP3203734B2 (ja) 1992-02-07 1992-02-07 演奏支援装置

Publications (2)

Publication Number Publication Date
JPH05224676A JPH05224676A (ja) 1993-09-03
JP3203734B2 true JP3203734B2 (ja) 2001-08-27

Family

ID=12097218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02296292A Expired - Fee Related JP3203734B2 (ja) 1992-02-07 1992-02-07 演奏支援装置

Country Status (1)

Country Link
JP (1) JP3203734B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7327434B2 (ja) * 2021-03-24 2023-08-16 カシオ計算機株式会社 プログラム、方法、情報処理装置、および演奏データ表示システム

Also Published As

Publication number Publication date
JPH05224676A (ja) 1993-09-03

Similar Documents

Publication Publication Date Title
JP3812328B2 (ja) 自動伴奏パターン発生装置及び方法
US20190318715A1 (en) Electronic musical instrument, electronic musical instrument control method, and storage medium
JPH0546172A (ja) 自動演奏装置
JP2756877B2 (ja) フレーズ演奏装置
US6750390B2 (en) Automatic performing apparatus and electronic instrument
JP2636640B2 (ja) 自動伴奏装置
JP3203734B2 (ja) 演奏支援装置
JP2587737B2 (ja) 自動伴奏装置
JPH03242697A (ja) 電子楽器
JP3293521B2 (ja) 発音タイミング制御装置
JPS6335038B2 (ja)
JP4449370B2 (ja) 自動伴奏生成装置及びプログラム
US5483018A (en) Automatic arrangement apparatus including selected backing part production
JP3493838B2 (ja) 電子楽器
JP4186855B2 (ja) 楽音制御装置及びプログラム
JPH04331990A (ja) 音声電子楽器
JPH04274297A (ja) 自動演奏装置
JP2722880B2 (ja) 電子楽器
JP3543159B2 (ja) 自動伴奏装置
JPH06274163A (ja) 自動演奏装置
JP3499672B2 (ja) 自動演奏装置
JP3870948B2 (ja) 表情付け処理装置および表情付け用コンピュータプログラム
JPH04243295A (ja) 電子楽器
JPH05143075A (ja) 自動伴奏装置
JP2000056765A (ja) 電子楽器

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010529

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080629

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090629

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees