JP2551197B2 - 自動演奏装置 - Google Patents

自動演奏装置

Info

Publication number
JP2551197B2
JP2551197B2 JP2086851A JP8685190A JP2551197B2 JP 2551197 B2 JP2551197 B2 JP 2551197B2 JP 2086851 A JP2086851 A JP 2086851A JP 8685190 A JP8685190 A JP 8685190A JP 2551197 B2 JP2551197 B2 JP 2551197B2
Authority
JP
Japan
Prior art keywords
tempo
register
change
setting
value
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
JP2086851A
Other languages
English (en)
Other versions
JPH03284797A (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 JP2086851A priority Critical patent/JP2551197B2/ja
Priority to US07/677,170 priority patent/US5220120A/en
Publication of JPH03284797A publication Critical patent/JPH03284797A/ja
Application granted granted Critical
Publication of JP2551197B2 publication Critical patent/JP2551197B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は電子楽器のシーケンサや自動伴奏装置ある
いは自動リズム演奏装置等の自動演奏装置に関し、特に
自動演奏のテンポを変更する場合に、変更前のテンポか
ら変更後のテンポへ滑らかに変更することができるよう
にしたものに関する。
〔従来技術〕
電子楽器のキーボードやコンピュータ等から入力され
る演奏情報を記憶し、記憶された演奏情報に基づいて演
奏音を再生するシーケンサタイプの自動演奏装置として
は、特開昭58−211191号や特開昭63−193192号公報に示
されたものがある。この種の自動演奏装置においては、
テンポクロックに従って演奏情報をメモリから読み出
し、その演奏情報に基づき楽音信号を発生する。その場
合、テンポクロック周波数はテンポ設定値に応じて可変
制御することができ、こうしてテンポクロック周波数を
可変制御することにより再生演奏のテンポを所望のもの
に自由に変化させることができる。テンポ設定値は、テ
ンポ設定つまみの操作によって連続的に設定変更した
り、適宜のスイッチ操作に応じて不連続的に設定変更す
ることができる。
従来の自動演奏装置ではつまみ又はスイッチ等のテン
ポ設定用操作子によって演奏中にテンポ変更操作を行う
と、自動演奏テンポが変更後の新たなテンポに即移行し
てしまうため、テンポが急激に変化し、ギクシャクとし
た断絶感を与えてしまうという問題がある。つまみの操
作によっでテンポを連続的に変更することができるもの
にあっては、テンポを滑らかに変化させたい場合には、
テンポ設定用操作子つまみを徐々に操作すればよいので
あるが、そうすると手動演奏を並列して行う場合に障害
となるので好ましくない。
そこで、自動演奏のテンポが変更されたとき、変更前
から変更後のテンポに滑らかに変化させる補間演算処理
を行う自動演奏装置が知られている(例えば特開平1−
273097号)。このような従来の自動演奏装置におけるテ
ンポ変更時の補間演算処理においては、テンポ目標値が
現テンポよりも大のとき(つまりテンポ加速時)と小の
とき(つまりテンポ減速時)とで、テンポ変化レートを
区別することなく、同レートで変化させるようにしてい
た。
〔発明が解決しようとする課題〕
人間の聴感レベルでは、テンポを変化するとき、テン
ポ減速時と加速時とで同じ変化レートとした場合、遅く
なるときより速くなるときの方があたかも大きくテンポ
変化したように感じ取られる傾向にある。そのため、上
記従来技術のようにテンポ減速時と加速時とで同じ変化
レートとした場合は、加速時のテンポ変化速度と減速時
のテンポ変化速度があたかも異なるかのように錯覚して
聞き取られてしまい、違和感を感じさせてしまう、とい
う問題点があった。
この発明は上述の点に鑑みてなされたもので、自動演
奏のテンポが変更されたときに、上記のような違和感を
感じさせることなく、変更前から変更後のテンポに滑ら
かに変化させることができるようにした自動演奏装置を
提供しようとするものである。
〔課題を解決するための手段〕 この発明に係る自動演奏装置は、テンポ設定値に応じ
た速さのテンポ信号を発生するテンポ信号発生手段と、
このテンポ信号によって確立されるテンポに従って楽音
を自動的に発生する楽音自動発生手段と、テンポ加速時
の変化レートを設定するテンポ加速レート設定手段と、
このテンポ加速レート設定手段とは別に設けられた、テ
ンポ減速時の変化レートを設定するテンポ減速レート設
定手段と、前記テンポ設定値が変更されたとき、前記テ
ンポ信号発生手段で発生するテンポ信号の速さを、変更
前のテンポ設定値に対応する速さから変更後のテンポ設
定値に対応する速さまで徐々に変化させるものであっ
て、テンポを加速する変化のときには前記テンポ加速レ
ート設定手段で設定された変化レートに基づいて前記テ
ンポ信号の速さを徐々に変化させ、他方、テンポを減速
する変化のときには前記テンポ減速レート設定手段で設
定された変化レートに基づいて前記テンポ信号の速さを
徐々に変化させるテンポ変更制御手段とを具え、テンポ
を速くするときの変化レートを遅くするときの変化レー
トよりも小さく設定できることを特徴とするものであ
る。
〔作用〕
テンポ信号発生手段はテンポ設定値に応じた速さのテ
ンポ信号を発生する。このテンポ設定値は、公知のよう
に、つまみあるいはスイッチ等の操作子の操作によって
若しくはデータ入力等の手法により、アナログ形式でま
たはディジタル数値で、のどちらによって与えられても
よいものである。このテンポ設定値が変更された場合、
テンポ変更制御手段では、テンポ信号発生手段で発生す
るテンポ信号の速さを、変更前のテンポ設定値に対応す
る速さから変更後のテンポ設定値に対応する速さまで徐
々に変化させるよう制御する。ここで、テンポ加速時の
変化レートとテンポ減速時の変化レートをそれぞれ独立
に可変設定するために、テンポ加速レート設定手段とテ
ンポ減速レート設定手段とが別々に設けられており、上
記テンポ変更制御手段では、テンポを加速する変化のと
きには前記テンポ加速レート設定手段で設定された変化
レートに基づいて前記テンポ信号の速さを徐々に変化さ
せ、他方、テンポを減速する変化のときには前記テンポ
減速レート設定手段で設定された変化レートに基づいて
前記テンポ信号の速さを徐々に変化させる。従って、テ
ンポ設定値を変更した場合、自動演奏のテンポは直ちに
変更後のテンポに変化せずに、変更前のテンポから変更
後のテンポまで徐々に変化し、滑らかなテンポ変化を自
動的に実現することができるのみならず、テンポ加速時
の変化レートとテンポ減速時の変化レートをそれぞれ独
立に可変設定できることにより、テンポを速くするとき
の変化レートを遅くするときの変化レートよりも小さく
設定することができ、人間の聴感に合ったテンポ加速又
は減速制御を行うことができる。すなわち、テンポを速
くするときの変化レートを遅くするときの変化レートよ
りも小さく設定することにより、テンポを速くするとき
も遅くするときも同程度の変化速度でテンポが徐々に変
化するように聞き取れるようになり、違和感を感じさせ
ないようにすることができる。
〔実施例〕
以下、この発明の実施例を添付図面に従って詳細に説
明する。
まず、この発明の自動演奏装置の基本構成を機能ブロ
ック図によって示すと第1図のようである。すなわち、
この自動演奏装置は、テンポ設定値に応じた速さのテン
ポ信号を発生するテンポ信号発生手段と、このテンポ信
号によって確立されるテンポに従って楽音を自動的に発
生する楽音自動発生手段と、テンポ加速時の変化レート
を設定するテンポ加速レート設定手段と、このテンポ加
速レート設定手段とは別に設けられた、テンポ減速時の
変化レートを設定するテンポ減速レート設定手段と、前
記テンポ設定値が変更されたとき、前記テンポ信号発生
手段で発生するテンポ信号の速さを、変更前のテンポ設
定値に対応する速さから変更後のテンポ設定値に対応す
る速さまで徐々に変化させるものであって、テンポを加
速する変化のときには前記テンポ加速レート設定手段で
設定された変化レートに基づいて前記テンポ信号の速さ
を徐々に変化させ、他方、テンポを減速する変化のとき
には前記テンポ減速レート設定手段で設定された変化レ
ートに基づいて前記テンポ信号の速さを徐々に変化させ
るテンポ変更制御手段とを具え、テンポを速くするとき
の変化レートを遅くするときの変化レートよりも小さく
設定できることを特徴とするものである。
第2図はシーケンサタイプの自動演奏装置の一実施例
を示すものである。マイクロプロセッサユニット(CP
U)10は、この自動演奏装置全体の動作を制御するもの
である。このCPU10に対して、バス19を介してプログラ
ム及びデータメモリ11、ワーキングレジスタ12、シーケ
ンサメモリ13、操作パネル14、入出力装置15及びテンポ
クロック発生器18が接続されている。この実施例では番
号10〜15、18、19で示された部分がシーケンサモジュー
ルであり、このシーケンサモジュールに対して入出力装
置15を介して鍵盤回路16及び音源17のモジュールがそれ
ぞれ接続される。各モジュール間のデータの授受は周知
のMIDI規格で行われる。
プログラム及びデータメモリ11はCPU10の各種プログ
ラムや各種データを格納するものであり、リードオンリ
ーメモリ(ROM)で構成されている。
ワーキングレジスタ12はCPU10がプログラムを実行す
る際に発生する各種データを一時的に格納するものであ
り、ランダムアクセスメモリ(RAM)の所定のアドレス
領域がそれぞれ割り当てられる。
シーケンサメモリ13は、ランダムアクセスメモリ(RA
M)で構成され、演奏情報を記憶する。
操作パネル14は、音色、音量、音高、効果等を選択・
設定・制御するための各種操作子を含むものであり、例
えば逗子のようにテンポ設定用操作子として、テンポ設
定操作子14a、テンポ変更係数設定操作子14b及びテンポ
追従性設定操作子14cを有しており、テンポ設定操作子1
4aによって所望のテンポ設定を行う。
入出力装置15はMIDI規格で表現された演奏情報の入出
力を行うものであり、任意の演奏情報をシーケンサモジ
ュールに入力するための鍵盤回路16が接続可能であると
共に、このシーケンサモジュールから出力される演奏情
報を受け取る音源17が接続可能である。勿論、鍵盤回路
16の代わりにコンピュータ等を接続し、所望の演奏情報
を入力することもできる。
鍵盤回路16は、発生すべき楽音の音高を指定する鍵盤
のそれぞれの鍵に対応して設けられた複数のキースイッ
チからなる回路を含んで構成されており、新たな鍵が押
圧されたときはキーオンイベント情報を出力し、鍵が新
たに離鍵されたときはキーオフイベント情報を出力す
る。また、鍵押し下げ時の押鍵操作速度又は押圧力等を
判別してタッチデータを生成する処理を行い、生成した
タッチデータをベロシティデータとして出力する。この
ようにキーオン、キーオフイベント情報及びベロシティ
情報はMIDI規格で表現されており、後述するようにキー
コードと割当てチャンネルを示すデータをも含んでい
る。
音源17は、複数のチャンネルで楽音信号の同時発生が
可能であり、入出力装置15を経由して与えられた演奏情
報(MIDI規格に準拠したデータ)を入力し、このデータ
に基づき楽音信号を発生する。
音源17における楽音信号発生方式はいかなるものを用
いてもよい。例えば、発生すべき楽音の音高に対応して
変化するアドレスデータに応じて波形メモリに記憶した
楽音波形サンプル値データを順次読み出すメモリ読み出
し方式、又は上記アドレスデータを位相角パラメータデ
ータとして所定の周波数変調演算を実行して楽音波形サ
ンプル値データを求めるFM方式、あるいは上記アドレス
データを位相角パラメータデータとして所定の振幅変調
演算を実行して楽音波形サンプル値データを求めるAM方
式等の公知の方式を適宜採用してもよい。
音源17から発生されたデジタル楽音信号はD/A変換器
(図示せず)によって、アナログの楽音信号に変換さ
れ、サウンドシステム(図示せず)を介して発音され
る。
テンポクロック発生器18は時間間隔を計数したり、自
動演奏のテンポを設定したりするためのテンポクロック
パルスを発生するものであり、このテンポクロックパル
スの周波数は操作パネル14のテンポ設定用操作子14a、1
4b及び14cによって設定・調整可能である。発生したテ
ンポクロックパルスはCPU10に対してインタラプト命令
として与えられ、インタラプト処理により自動演奏処理
が実行される。
シーケンサメモリ13に記憶する自動演奏情報は演奏シ
ーケンスを示す情報であり、記録モード時において演奏
者の実際の演奏手順に従って演奏情報を順次記憶し、プ
レイモード時においては上記テンポクロックに従ってそ
の記憶内容を順次読み出す。記憶する演奏情報として
は、鍵盤回路16及び操作パネル14における情報イベント
に基づく各種情報である。すなわち、押鍵時において、
キーオンイベント情報を記憶し、離鍵時においてキーオ
フイベント情報を記憶し、各イベントの間では、それら
イベント間の時間間隔を示す時間情報を記憶する。これ
ら自動演奏情報の記録手順については公知であるため詳
細説明は省略する。
シーケンサメモリ13に記憶する演奏情報は、例えばMI
DI規格のデータフォーマットからなる。その一例として
「キーオン」、「キーオフ」及び「時間間隔」の3種類
の情報を第3図に示す。
各データの第1バイト目はメッセージの種類を示すス
テータスバイト(メッセージの種類を判別するための識
別コードとして利用されるバイト)であり、これに続く
第2及び第3バイト目はデータバイトである。
「キーオン」データすなわちキーオンイベント情報の
第1バイト目は、そのデータが「キーオン」データであ
ることを示す『9』と、このキーオンイベントが割り当
てられているMIDIのチャンネルナンバを示す『X』とか
らなり、識別コード『9X』で表される。「キーオフ」デ
ータすなわちキーオフイベント情報の第1バイト目は、
そのデータが「キーオフ」データであることを示す
『8』と、このキーオフイベントが割り当てられている
MIDIのチャンネルナンバを示す『X』とからなり、識別
コード『8X』で表される。
「キーオン」及び「キーオフ」データの第2バイト目
はその鍵のキーコードを示し、第3バイト目はその鍵の
タッチ情報であるベロシティデータを示す。
「時間間隔」データの第1バイト目の識別コード『F
4』はMIDI規格では未定義のものであるが、この実施例
では楽音の発音タイミングを示す時間間隔の識別コード
として使用する。その時間間隔は第2バイト目の上位7
ビットと第3バイト目の下位7ビットとで表わされる。
以上のようにMIDI規格においては、1単位のイベント
情報又は時間情報は3バイトデータで構成される。シー
ケンサメモリ13においては、ポインタによって指定され
る1アドレスは1バイトであり、3バイトデータからな
る1単位のイベント情報又は時間情報が連続する3つの
ポインタアドレスに記憶される。
この実施例では、シーケンサメモリ13は32トラックの
規模を有している。1トラックは1つの演奏パートに対
応する。また、1トラックにつき16チャネルの楽音発生
が可能である。つまり、1演奏パートは16チャンネルポ
リフォニックである。上述のMIDI規格の1バイト目のチ
ャンネル『X』は1トラック内の16チャンネルのいずれ
かを示している。シーケンサメモリ13では、各トラック
毎にシーケンシャルな演奏情報を記憶し、再生時は各ト
ラックの演奏情報を読み出す。
この実施例では、テンポ設定値がテンポ設定操作子14
aの操作によって変更された場合に、テンポクロック周
波数を変更前のテンポ設定値に対応する周波数から変更
後のテンポ設定値に対応する周波数まで適宜の時間をか
けて徐々に移行させるようになっている。その場合の移
行法すなわち補間法の一例の概略につき第4図(a)及
び(b)を用いて説明する。
第4図(a)及び(b)では、横軸が時間tを示し、
縦軸がテンポクロック発生器18から出力されるテンポク
ロック周波数を示す。本図ではテンポクロック周波数を
AからBに増加させ、次にテンポクロック周波数をBか
らCに減少させる場合を示す。
まず、第4図(a)のテンポクロック周波数をAから
Bに増加させる場合、即ちテンポ設定操作子14aによっ
てテンポを増加変更させるというテンポ設定イベントが
発生すると、時刻T0の時点でテンポクロック周波数はテ
ンポ増加量U0だけ増加し、(A+U0)となり、その値
(A+U0)は単位時間間隔Eaの間(時刻T0から時刻T1ま
での間)維持される。そして、時刻T1になると、今度は
テンポクロック周波数はテンポ増加量U1だけ増加し、
(A+U0+U1)となり、その値(A+U0+U1)も同様に
単位時間間隔Eaの間だけ維持される。これ以後は、テン
ポ増加量U2、U3、U4、U5及びU6が時間の経過と共にテン
ポ周波数に加算され、それに伴ってテンポクロック周波
数は徐々に増加し、時刻T6の時点では目標のテンポクロ
ック周波数Bに到達する。この場合、テンポ増加量U1、
U2、U3、U4、U5及びU6は徐々に小さくなるように設定さ
れており、対数カーブで増加する。
このようにしてテンポアップ終了後、時刻T6から時刻
T7までの間は、テンポクロック周波数Bは一定の値を維
持する。そして、時刻T7でテンポを減少変更させるテン
ポ設定イベントが発生すると、前述のテンポ増加の場合
とは逆に、時刻T7の時点でテンポクロック周波数はテン
ポ減少量D0だけ減少し、(B−D0)となり、その値(B
−D0)は単位時間間隔Ebの間(時刻T7から時刻T8までの
間)維持される。そして、時刻T8になると、今度はテン
ポクロック周波数はテンポ減少量D1だけ減少し、(B−
D0−D1)となり、その値(B−D0−D1)も同様に単位時
間間隔Ebの間だけ維持される。これ以後は、テンポ減少
量D2、D3、D4及びD5が時間の経過と共にテンポ周波数か
ら減算され、それに伴ってテンポクロック周波数は徐々
に減少し、時刻T12の時点では目標のテンポクロック周
波数Cに移行する。このとき、テンポ減少量D1、D2、D
3、D4及びD5は徐々に小さくなるように設定されてい
る。
このテンポ減少時の単位時間間隔Ebはテンポ増加時の
単位時間間隔Eaよりも小さく設定されているので、増加
時に比べて速くテンポクロック周波数は減少し、目標の
テンポクロック周波数に早く到達するようになってい
る。つまり、テンポを速くする場合と遅くする場合とで
は、遅くする場合の方が変化レートが大である。
一方、第4図(b)の場合も第4図(a)と同様に、
テンポクロック周波数はA、B、Cの順番に移行する
が、この例ではテンポ増加時の単位時間間隔がテンポ減
少時の単位時間間隔Ebに等しくなっている。従って、テ
ンポ設定イベントが時刻T0と同じ時刻t0で発生したとし
ても、目標のテンポ周波数Bには第4図(b)の例の方
が先に到達する。一方、第4図(b)の例ではテンポ減
少時のテンポ減少量D6、D7、D8及びD9がそれぞれ第4図
(a)のテンポ減少量よりもそれぞれ大きく定められて
いるため、時刻T7と同時刻t7に減少を開始しても第4図
(a)の場合よりも先に目標のテンポ周波数Cに到達す
るようになっている。従って、第4図(b)のように制
御する場合も、テンポを速くする場合は遅くする場合よ
りも変化レートが小である。
このように、本実施例では、テンポ増加量及びテンポ
減少量(これらをテンポ変化量という)やテンポ増加時
及び減少時の単位時間間隔を任意に設定することによっ
て、あるテンポクロック周波数から目標とするテンポク
ロック周波数への移行の際の変化レートを可変設定し、
かつ所望の変化カーブ特性で行うことができる。なお、
この単位時間間隔の大きさを制御することによってテン
ポの移行に要する時間、即ちテンポクロック周波数変更
操作に対する追従性が決定するので、増加時及び減少時
の単位時間間隔Ea及びEbのことを以下ではテンポ追従性
ということにする。なお、第4図に示すようなテンポ増
加量及び減少量、テンポ追従性に従う具体的処理につい
ては後述する。
次に、CPU10によって実行される第2図の自動演奏装
置の処理の一例を第5図から第15図に示したフローチャ
ートに基づいて説明する。
その前に、各処理で使用されるワーキングレジスタ12
の内容について説明する。ワーキングレジスタ12には次
のようなレジスタがそれぞれ設定されている。
・FLG:一単位の演奏情報の1バイト目に有る識別コード
を一時記憶する識別コードレジスタ ・MD(TRK):再生、記録、停止等の動作モードをトラ
ック毎に記憶する動作モードレジスタ ・POINT(TRK):シーケンサメモリ13のアドレスをトラ
ック毎に指定するポインタ ・PRI:装置のプログラム及びデーメモリ11に予め標準的
に装備されているテンポ変更係数及びテンポ追従性デー
タを使用するプリセットモードか、又はユーザが任意に
設定したテンポ変更係数及びテンポ追従性データを使用
するマニュアルモードかを示す処理モードレジスタであ
り、プリセットモードのときPRI=“1"、マニュアルモ
ードのときPRI=“0"である。
・KCD:キーコードを一時記憶するキーコードレジスタ ・VEL:ベロシティデータを一時記憶するベロシティレジ
スタ ・TNOW:テンポクロック周波数を設定するテンポデー
タ、即ち楽音発音中の現在のテンポ設定の値を示すデー
タを一時記憶するテンポ設定レジスタ ・TNEW:テンポ変更の目標となるテンポデータを一時記
憶する目標テンポレジスタ ・TRK:現在処理中のトラック番号(1〜32)を指示する
トラック番号レジスタ ・TIME(TRK):シーケンス演奏イベント間の時間間隔
を示すデータをトラック毎に一時記憶する時間間隔レジ
スタ ・UPC:テンポクロック周波数増加時に使われるレジスタ
であり、ユーザが任意に設定したテンポ増加量を決定す
るためのテンポアップ係数を記憶するテンポアップ係数
レジスタ ・DNC:テンポクロック周波数減少時に使われるレジスタ
であり、ユーザが任意に設定したテンポ減少量を決定す
るためのテンポダウン係数を記憶するテンポダウン係数
レジスタ ・EU:ユーザが任意に設定したテンポアップ時のテンポ
追従性データ(例えば、第4図の単位時間間隔Ea又はE
b)を記憶するテンポアップ追従性レジスタ ・ED:ユーザが任意に設定したテンポダウン時のテンポ
追従性データ(例えば、第4図の単位時間間隔Eb)を記
憶するテンポダウン追従性レジスタ ・EXU:テンポアップ追従性レジスタEUのテンポ追従性デ
ータを格納し、それをデクリメントしていくためのアッ
プ時間計測用レジスタ ・EXD:テンポダウン追従性レジスタEDのテンポ追従性デ
ータを格納し、それをデクリメントしていくためのダウ
ン時間計測用レジスタ ・EXPRI:プログラム及びデータメモリ11に予め格納され
ているテンポ追従性データEPRIを格納し、それをデクリ
メントしていくための時間計測用レジスタ また、プログラム及びデータメモリ11には、テンポア
ップ係数レジスタUPC及びテンポダウン係数レジスタDNC
に記憶されているテンポアップ係数及びテンポダウン係
数に対応したテンポアップ係数データUPCX及びテンポダ
ウン係数データDNCX、並びに上記テンポアップ・ダウン
追従性レジスタEU及びEDのテンポ追従性データに対応し
たテンポ追従性データEPRIが予め標準的に格納されてい
る。但し、プログラム及びデータメモリ11に格納されて
いる追従性データはテンポアップ時及びテンポダウン時
に共通に使用される。
第5図はCPU10が処理するメインルーチンの一例を示
す図である。
まず、電源が投入されると、CPU10はプログラム及び
データメモリ11に格納されている制御プログラムに応じ
た処理を開始する。「イニシャライズ」処理では、ワー
キングレジスタ12を初期化する。その後に、「プレイス
イッチイベント」処理、「テンポ設定イベント」処理、
「プリセット/マニュアル設定イベント」処理、「テン
ポ変更係数設定イベント」処理、「テンポ追従性設定イ
ベント」処理及びその他各種処理(記録スイッチ処理、
停止スイッチ処理、テンキー入力処理等のその他の操作
イベント処理)がイベントの発生に応じて繰り返し実行
される。
「プレイスイッチイベント」処理は、操作パネル14の
プレイ(再生)スイッチが操作されたときに自動演奏
(再生)を開始するための処理である。この処理の一例
は第10図に示されている。「テンポ設定イベント」処理
は操作パネル14上のテンポ設定操作子14aによってテン
ポ設定値の設定変更操作がなされた時に行われる。この
処理の一例は第6図に示されている。「プリセット/マ
ニュアル設定イベント」処理は、操作パネル14上の処理
モード選択スイッチが操作された時に行われる。この処
理の一例は第7図に示されている。「テンポ変更係数設
定イベント」処理及び「テンポ追従性設定イベント」処
理は共に操作パネル14の操作子14b及び14cによてテンポ
変更係数や追従性データの設定操作がなされた時に行わ
れる。これらの処理の一例は第8図及び第9図に示され
ている。「その他」の処理では、操作パネル15における
その他の操作子の操作に基づく処理や、その他の種々の
処理が行われる。
第6図に示す「テンポ設定イベント」処理では、操作
パネル14のテンポ設定操作子14aによって新たに設定さ
れたテンポ設定値を、目標のテンポデータとして目標テ
ンポレジスタTNEWに格納し、テンポアップ追従性レジス
タEU及びテンポダウン追従性レジスタEDのテンポ追従性
データをアップ時間計測用レジスタEXU及びダウン時間
計測用レジスタEXDにそれぞれ格納し、プログラム及び
データメモリ11内のテンポ追従性データEPRIを時間計測
用レジスタEXPRIに格納する。これによって、マニュア
ルモードによるテンポ変更操作時に、テンポアップ時と
テンポダウン時の変化レートをそれぞれ異ならせること
ができる。
第7図に示す「プリセット/マニュアル設定イベン
ト」処理では、操作パネル14の処理モード選択スイッチ
が操作される毎に処理モードレジスタPRIの内容をプリ
セットモード又はマニュアルモードに反転する。
第8図に示す「テンポ変更係数設定イベント」処理で
は、マニュアルモード用のテンポ変更係数をテンポアッ
プ係数レジスタUPC又はテンポダウン係数レジスタDNCに
設定する処理を行う。まず、操作パネル14のテンポ変更
係数設定操作子14bによる設定イベントがテンポアップ
方向の係数設定操作か否かを判断する。YESの場合はテ
ンポ変更係数設定操作子14bによって設定されたテンポ
変更係数をテンポアップ係数レジスタUPCに記憶し、NO
の場合は設定されたテンポ変更係数をテンポダウン係数
レジスタDNCに記憶する。
第9図に示す「テンポ追従性設定イベント」処理で
は、マニュアルモード用のテンポ追従性データをテンポ
アップ追従性レジスタEU及びテンポダウン追従性レジス
タEDに設定する処理を行う。まず、操作パネル14のテン
ポ追従性設定操作子14cによる設定イベント操作がテン
ポアップ方向の追従性設定操作か否かを判断する。YES
の場合はテンポ追従性設定操作子14cによって設定され
たテンポ追従性データをテンポアップ追従性レジスタEU
に記憶し、NOの場合は設定された追従性データをテンポ
ダウン追従性レジスタEDに記憶する。
第4図(a)の例の場合は、第8図の処理でテンポア
ップ係数レジスタUPCとテンポダウン件数レジスタDNCに
はだいたい同じ値を設定し、第9図の処理でテンポアッ
プ追従性レジスタEUに単位時間間隔Eaを設定し、テンポ
ダウン追従性レジスタEDには単位時間間隔Eaよりも小さ
な単位時間間隔Ebを設定する。従って、第4図(a)の
場合、テンポクロック周波数の増加及び減少時のテンポ
増加量及びテンポ減少量はだいたい同じであるが、単位
時間間隔(テンポ追従性)が異なるため増加時の方が減
少時よりも緩やかに変化する。
また、第4図(b)の例の場合は、第8図の処理でテ
ンポアップ係数レジスタUPCにテンポダウン件数レジス
タDNCよりも小さな値を設定し、第9図の処理でテンポ
アップ追従性レジスタEUとテンポダウン追従性レジスタ
EDには同じ単位時間間隔Ebを設定する。従って、第4図
(b)の場合、テンポクロック周波数の増加及び減少時
の単位時間間隔は同じであっても、テンポ増加量がテン
ポ減少量よりも小さいため、増加時の方が減少時よりも
緩やかに変化する。
次に、第10図に従って「プレイスイッチイベント」処
理の各ステップの内容を順に説明する。
ステップ21:第番目のトラックから処理を開始するため
に、トラック番号レジスタTRKに“1"を設定する。
ステップ22:動作モードレジスタMD(TRK)に格納されて
いる値が発生モードを示す値であるかどうかを判断し、
再生モード(YES)の場合は次のステップ23に進み、再
生モード以外の記録又は停止モード(NO)の場合はステ
ップ30に進む。動作モードレジスタMD(TRK)はトラッ
ク毎に設けられており、このステップ22ではトラック番
号レジスタTRKで指定されるトラックの動作モードを判
定する。このようにトラック毎に動作モードを設定する
ことによって再生するトラックを任意に指定することが
できるようになっているが、トラック毎の動作モード設
定処理については詳細説明を省略する。
ステップ23:トラック番号レジスタTRKによって指定され
たトラックに関するシーケンサメモリ13の先頭アドレス
をポインタPOINT(TRK)に格納する。
ステップ24:ポインタPOINT(TRK)のアドレスに対応す
るシーケンサメモリ13内の演奏情報データを識別コード
レジスタFLGに格納する。
ステップ25:識別コードレジスタFLGに格納されている演
奏情報データの識別コードを判定し、それぞれの識別コ
ードに応じた処理ステップに進む。
ステップ26:識別コードが「キーオン」イベントを示す
『9X』の場合に行う処理であり、第11図のキーオンイベ
ントサブルーチンを行う。
ステップ27:識別コードが「キーオフ」イベントを示す
『8X』の場合に行う処理であり、キーオフ処理を行う。
この処理はキーオン処理とほぼ同様であってよいので、
詳細説明は省略する。
ステップ28:識別コードが時間情報を示す『F4』の場合
に行う処理であり、第12図の時間間隔設定サブルーチン
を行う。
ステップ29:識別コードが上記以外のコードの場合に行
う処理であり、それぞれのコードに応じた処理を行う。
ここではこの処理についての説明は省略する。
ステップ30:トラック番号レジスタTRKの内容に1をプラ
スし、トラック番号を1だけインクリメントする。
ステップ31:インクリメントされたトラック番号レジス
タTRKの値が最大シーケンサトラック数31より大きいか
どうかを判断し、小さい場合はステップ22に戻り、イン
クリメントされたトラック番号に関して上述と同様の処
理を施す。大きい(YES)場合は全トラックの先頭アド
レスについての処理が終了したのでリターンし、メイン
ルーチンに戻り、これ以降は第13図及び第14図の処理を
テンポクロックによるインタラプト処理で実行する。
第10図のステップ26又は第14図のステップ73で実行さ
れるキーオンイベントサブルーチンの詳細を第11図を用
いて説明する。
まず、識別コードレジスタFLGの内容がキーオンの場
合に、MIDI規格からなるキーオンデータ(第3図参照)
の第2バイト目のキーコードデータをキーコードレジス
タKCDに格納し、MIDI規格からなるキーオンデータの第
3バイト目のベロシティデータをベロシティレジスタVE
Lに格納する。次に、ポインタPOINT(TRK)の内容に3
をプラスし、トラック番号を3だけインクリメントす
る。ここで、3だけインクリメントする理由は、第2及
び第3バイト目のデータ、ここではキーコードデータ及
びベロシティデータをジャンプして、次の演奏情報のス
テータスバイト(第1バイト)のアドレスをポインタPO
INT(TRK)が指示するようにするためである。最初の処
理でキーコードレジスタKCDに格納されたキーコードデ
ータと、その次の処理でベロシティレジスタVELに格納
されたベロシティデータとをそれぞれ有するMIDIのキー
オンメッセージを入出力装置15を介して音源17に送出す
る。これによって、音源17はキーオンメッセージに基づ
いて楽音を発生するようになる。
次に、第10図のステップ28又は第14図のステップ75で
実行する時間間隔設定サブルーチンの詳細例を第12図を
用いて説明する。
この処理は、識別コードレジスタFLGの内容が時間情
報を示している場合に行われる処理であり、まず、この
時間情報データの第2及び第3バイト目に有る時間間隔
データをトラック番号レジスタTRKにより指定されたト
ラックの時間間隔レジスタTIME(TRK)に格納する。次
に、当該トラックのポインタPOINT(TRK)の内容に3を
プラスし、シーケンメモリ13のアドレスを3だけインク
リメントし、次の演奏情報の1バイト目を指示する。
第10図のプレイスイッチイベントルーチンはプレイス
イッチがオンされたときに1回だけ行われる。これ以後
は、テンポクロックの割り込みに従い、第13図及び第14
図に例示するテンポクロック割り込みルーチンが繰り返
し実行される。このルーチンはテンポクロック発生器18
からCPU10にテンポクロックが与えられる毎に実行され
る処理である。
ステップ51及び52では、テンポ設定レジスタTNOWの値
と、目標テンポレジスタTNEWの値とを比較し、その結果
に応じた処理への分岐処理を行う。
ステップ51:テンポ設定レジスタTNOWと目標テンポレジ
スタTNEWに格納されている値が互いに等しい(YESの)
場合は、これ以降のステップ52〜63のテンポ変更処理は
行わずに、ステップ510でテンポ設定レジスタTNOWに目
標テンポレジスタTNEWの値をセットし、ステップ66へジ
ャンプし、テンポ設定レジスタTNOWの値をそのままテン
ポクロック発生器18に送出する。テンポ設定レジスタTN
OWと目標テンポレジスタTNEWとの値が等しくない(NO
の)場合は次のステップ52へ進む。
ステップ52:目標テンポレジスタTNEWに格納されている
値がテンポ設定レジスタTNOWに格納されている値よりも
大きいかどうかを判定し、大きい(YESの)場合はテン
ポアップ処理を行うためにステップ53以降の処理に進
み、小さい(NOの)場合はテンポダウン処理を行うため
にステップ60以降の処理に進む。
従って、第4図の例において、テンポクロック周波数
Aがテンポ設定レジスタTNOWに格納され、テンポクロッ
ク周波数Bが目標テンポレジスタTNEWに格納されている
場合は、ステップ53以降のテンポアップ処理が行われ、
また、テンポクロック周波数Bがテンポ設定レジスタTN
OWに格納され、テンポクロック周波数Cが目標テンポレ
ジスタTNEWに格納されている場合は、ステップ60以降の
テンポダウン処理が行われる。
次に、ステップ53〜59のテンポアップ処理について説
明する。
ステップ53:処理モードレジスタPRIの値が“0"、即ちマ
ニュアルモードであるかどうかを判断し、マニュアルモ
ード(YES)の場合はステップ54に進み、そうでない(N
Oの)場合はステップ57に進む。従って、ステップ54〜5
6の処理はマニュアルモードの場合に行われ、ステップ5
7〜59の処理はプリセットモードの場合に行われる。
ステップ54:そのままテンポアップ処理を行ってよいか
どうかの判定、即ち、アップ時間計測用レジスタEXUの
値が“0"になっているかどうかを判定する。アップ時間
計測用レジスタEXUの値が“0"でない(NOの)場合は、
処理時刻が第4図(a)及び(b)の単位時間間隔Ea又
はEbの途中にあることを意味するので、その時刻ではテ
ンポクロック周波数の値を変更することなく一定に維持
しなければならない。従って、NOの場合は、アップ時間
計測用レジスタEXUをカウントダウンするためのステッ
プ55に進む。逆に、アップ時間計測用レジスタEXUの値
が“0"(YES)の場合は、処理時刻が第4図(a)及び
(b)の各時刻T0〜T6又はt0〜t6のどれかにちょうど該
当することを意味するので、その時刻におけるテンポ増
加量を計算するためのステップ56に進む。
ステップ55:アップ時間計測用レジスタEXUから1だけカ
ウントダウンし、第14図のステップ67にジャンプする。
ステップ56:テンポ設定レジスタTNOW、目標テンポレジ
スタTNEW及びテンポアップ係数レジスタUPCに基づいて
テンポアップ後のテンポクロック周波数の値を計算す
る。具体的には、目標テンポレジスタTNEWの値からテン
ポ設定レジスタTNOWの値を減算し、この減算値にテンポ
アップ係数レジスタUPCの値を乗算し、この乗算値とテ
ンポ設定レジスタTNOWの値とを加算したものを新たなテ
ンポ設定レジスタTNOWの値として格納する。即ち、第4
図のテンポ増加量U0を計算し、その値を変更前のテンポ
クロック周波数設定値に加算している。このステップの
UPC・(TNEW−TNOW)の計算処理によって、第4図のよ
うなテンポ増加量U0、U1、U2・・・の大きさを徐々に小
さくすることができる。計算が終了したらステップ66に
進む。
ステップ57〜59はステップ53でプリセットモードと判
定された場合に行われる処理であるが、上記ステップ54
〜56と内容的にはほとんど同じ処理なので、簡単に説明
する。
ステップ57:アップ時間計測用レジスタEXPRIの値が“0"
になっているかどうかを判定し、NOの場合はステップ58
に進み、YESの場合はステップ59に進む。
ステップ58:アップ時間計測用レジスタEXPRIから1だけ
カウントダウンし、第14図のステップ67にジャンプす
る。
ステップ59:テンポ設定レジスタTNOW、目標テンポレジ
スタTNEW及びプログラム及びデータメモリ11内のテンポ
アップ係数データUPCXに基づいてテンポアップ後のテン
ポクロック周波数の値をステップ56と同様にして計算す
る。計算が終了したらステップ66に進む。
次に、ステップ60〜65のテンポダウン処理について説
明する。これらの各処理はステップ53〜59と概略同じ処
理である。
ステップ60:処理モードレジスタPRIの値が“0"、即ちマ
ニュアルモードであるかどうかを判断し、マニュアルモ
ード(YES)の場合はステップ61に進み、そうでない(N
Oの)場合はステップ64に進む。従って、ステップ61〜6
3の処理はマニュアルモードの場合に行われ、ステップ6
4,65,58の処理はプリセットモードの時に行われる。
ステップ61:そのままテンポダウン処理を行ってよいか
どうかの判定、即ち、ダウン時間計測用レジスタEXDの
値が“0"になっているかどうかを判定する。ダウン時間
計測用レジスタEXDの値が“0"でない(NOの)場合は、
処理時刻が第4図(a)及び(b)の単位時間間隔Ebの
途中にあることを意味するので、その時刻ではテンポク
ロック周波数の値を変更することなく一定に維持しなけ
ればならない。従って、NOの場合は、ダウン時間計測用
レジスタEXDをカウントダウンするためのステップ62に
進む。逆に、ダウン時間計測用レジスタEXDの値が“0"
(YES)の場合は、処理時刻が第4図(a)及び(b)
の各時刻T7〜T12又はt7〜t10のいずれかにちょうど該当
することを意味するので、その時刻におけるテンポ減少
量を計算するためのステップ63に進む。
ステップ62:ダウン時間計測用レジスタEXDから1だけカ
ウントダウンし、第14図のステップ67にジャンプする。
ステップ63:テンポ設定レジスタTNOW、目標テンポレジ
スタTNEW及びテンポダウン係数レジスタDNCに基づいて
テンポダウン後のテンポクロック周波数の値を計算す
る。具体的には、テンポ設定レジスタTNOWの値から目標
テンポレジスタTNEWの値を減算し、この減算値にテンポ
ダウン係数レジスタDNCの値を乗算し、テンポ設定レジ
スタTNOWの値からこの乗算値を減算したものを新なたテ
ンポ設定レジスタTNOWの値として格納する。即ち、第4
図のテンポ減少量D0を計算し、その値を変更前のテンポ
クロック周波数から減算している。このステップのDNC
・(TNOW−TNEW)の計算処理によって、第4図のような
変更直後のテンポ減少量D0、D1、D2・・・の大きさを徐
々に小さくすることができる。計算が終了したらステッ
プ66に進む。
ステップ64及び65は上記ステップ57及び59とほとんど
同じ処理なので簡単に説明する。
ステップ64:アップ時間計測用レジスタEXPRIの値が“0"
になっているかどうかを判定し、NOの場合はステップ58
に進み、YESの場合はステップ65に進む。
ステップ65:テンポ設定レジスタTNOW、目標テンポレジ
スタTNEW及びプログラム及びデータメモリ11内のテンポ
ダウン係数データDNCXに基づいてテンポアップ後のテン
ポクロック周波数の値をステップ63と同様に計算する。
計算が終了したらステップ66に進む。
ステップ66:ステップ56、59、63又は65によってテンポ
設定レジスタTNOWに新たに設定されたテンポデータをテ
ンポクロック発生器18へ送出する。これにより、自動演
奏のテンポがテンポ設定レジスタTNOWに格納されている
テンポデータに対応する値に変更される。
ステップ66の後、ステップ660に進み、その後、第14
図のステップ67に進む。ステップ660では、テンポアッ
プ追従性レジスタEU及びテンポダウン追従性レジスタED
のテンポ追従性データをアップ時間計測用レジスタEXU
及びダウン時間計測用レジスタEXDにそれぞれ格納し、
プログラム及びデータメモリ11内のテンポ追従性データ
EPRIを時間計測用レジスタEXPRIに格納するという処理
が行われる。これによって、次のインタラプトタイミン
グでは、ステップ54、57、61又は64の判断がNOとなり、
ステップ55、58又は62の各処理で単位時間間隔のカウン
トダウンが行われるようになる。
次に、第14図の記載のステップ67〜78について説明す
る。
ステップ67:第1番目のトラックから処理を開始するた
めに、トラック番号レジスタTRKに“1"を設定する。
ステップ68:トラック番号レジスタTRKによって指定され
たトラックの動作モードレジスタMD(TRK)に格納され
ている値が再生モードを示す値であるかどうかを判断
し、再生モード(YES)の場合は次のステップ69に進
み、再生モードNOつまり記録又は停止モードの場合はス
テップ77に進む。
ステップ69:再生モード(YES)の場合は、トラック番号
レジスタTRKによって指定されたトラックに対応する時
間間隔レジスタTIME(TRK)の値が“0"であるかどうか
を判断し、“0"の場合はステップ70に進み、“0"以外の
場合はステップ71に進む。時間間隔レジスタTIME(TR
K)の値が“0"以外であるとは、演奏イベント間の時間
間隔をカウントしている最中であることを示す。他方、
時間間隔レジスタTIME(TRK)の値が“0"であるとは、
時間間隔のカウントが終了したことを示す。
ステップ70:ステップ69で時間間隔レジスタTIME(TRK)
の値が“0"と判断された場合は、次の演奏情報をシーケ
ンサメモリ13から読み出す必要があるので、ポインタPO
INT(TRK)によって指示された次の演奏情報メッセージ
の1バイト目から次の演奏情報の識別コードを読み出
し、これを識別コードレジスタLFGに格納する。
ステップ71:ステップ69で時間間隔レジスタTIME(TRK)
の値が“0"以外と判断された場合は、このレジスタの値
から1だけマイナスし、時間間隔レジスタTIME(TRK)
の値をデクリメントし、ステップ77に進む。つまり、時
間カウントはテンポクロックパルスによって時間間隔デ
ータをデクリメントすることによって行う。
ステップ72:識別コードレジスタFLGに格納されている演
奏情報データの識別コードを判定し、それぞれの識別コ
ードに応じた処理ステップに進む。
ステップ73:識別コードが「キーオン」イベントを示す
『9X』の場合に行う処理であり、第11図のキーオンイベ
ントサブルーチンを行う。
ステップ74:識別コードが「キーオフ」イベントを示す
『8X』の場合に行う処理であり、キーオフ処理を行う。
ステップ75:識別コードが時間情報を示す『F4』の場合
に行う処理であり、第12図の時間間隔設定サブルーチン
を行う。
ステップ76:識別コードが上記以外のコードの場合に行
う処理であり、それぞれのコードに応じた処理を行う。
ステップ77:トラック番号レジスタTRKの内容に1をプラ
スし、トラック番号を1だけインクリメントする。
ステップ78:インクリメントされたトラック番号レジス
タTRKの値が最大トラック数32より大きいかどうかを判
断し、小さい場合はステップ68に戻り、インクリメント
されたトラック番号に関して上述と同様の処理を繰り返
す。大きい(YES)場合はテンポクロック分についての
全トラックの処理が終了したのでリターンする。その
後、次のテンポクロックパルス発生によるインタラプト
信号の発生によって再び処理を実行する。
以上の構成において、再生動作つまり自動演奏動作に
ついて説明すると、まず、処理モードをプリセットモー
ドとするかマニュアルモードとするかの選択を予め行
い、第7図の処理により、処理モードレジスタPRIの内
容を設定する。
また、マニュアルモード用のテンポ変更係数(テンポ
アップ係数及びテンポダウン係数)及び追従性データ
(テンポ増加時及び減少時の時間間隔)の設定を所望に
応じて行い、第8図、第9図の処理により、テンポアッ
プ係数レジスタUPC、テンポダウン係数レジスタDNC、テ
ンポアップ追従レジスタEU及びテンポダウン追従レジス
タEUに格納する。勿論、これらの設定処理(第7図〜第
9図の処理)は自動演奏中でも設定変更可能である。
次に、所望の再生トラックの選択を行った後、プレイ
スイッチをオンすると、第10図のプレイスイッチイベン
ト処理が実行される。この場合、再生トラックの先頭の
演奏情報が例えばキーオンデータであるとすると、ステ
ップ26が実行され、第11図のキーオンイベントサブルー
チンに入る。このキーオンイベントサブルーチンでは、
キーコード及びベロシティデータが所定のキーコードレ
ジスタKCD及びベロシティレジスタVELに格納される。こ
れにより、キーオンデータに応じた楽音が、ベロシティ
データに従ってタッチレスポンス制御のなされた状態で
発音される。
そして、キーオンデータの次の演奏情報が時間間隔デ
ータの場合は、第14図のテンポクロックインタラプトル
ーチンのステップ75の処理を行った後、このインタラプ
トルーチンのステップ71の処理をテンポクロックタイミ
ング毎に繰り返して、時間間隔データをデクリメントす
ることによって時間カウントを行う。時間間隔分のカウ
ントが終了すると、第14図のステップ70により次の演奏
情報が読み出され、同様の処理が繰り返される。
テンポクロック周波数が変更されずに楽音が発生して
いる状態では、第13図のテンポ変更処理のステップ52〜
65はステップ51によって行われずに、第14図のステップ
67以降の処理が繰り返し実行される。
このような処理が繰り返し実行されている状態で、第
6図のテンポ設定イベントが行われると、新しいテンポ
クロック周波数の値が目標テンポレジスタTNEWに格納さ
れ、それぞれのテンポアップ追従レジスタEU、テンポダ
ウン追従レジスタEDの値がテンポアップ時間計測用レジ
スタEXU及びテンポダウン時間計測用レジスタEXDに格納
される。同時にプログラム及びデータメモリ11内のテン
ポ追従性データEPRIも時間計測用レジスタEXPRIに格納
される。そして、第13図のステップ52以降の処理が実行
され、現在値から目標値に向かって徐々に変化するテン
ポ設定データがテンポクロック発生器18に送出され、こ
れに伴い自動演奏のテンポが目標値に到達するまで徐々
に滑らかに変更される。
尚、上記実施例では、演奏者がテンポ変更係数とテン
ポ追従性の両方をそれぞれ自由に設定できるようにした
が、これに限らず、第4図(a)のようにテンポ増加量
及び減少量は等しく、テンポ追従性係数のみを増加と減
少の場合で異なる値に設定してもよいし、また、第4図
(b)のようにテンポ追従性は増加と減少の場合で等し
く、テンポ増加量及び減少量のみを異なる値としてもよ
く、その組合せは適宜選択可能である。
例えば、第4図(b)のようにテンポ追従性係数は増
加と減少の場合で等しく、テンポ増加量及び減少量のみ
を可変とする場合は、第9図のアップ追従性レジスタEU
及びダウン追従性レジスタEDを第16図のように1つにま
とめて追従性レジスタEYとし、第6図のアップ時間計測
用レジスタEXU及びダウン時間計測用レジスタEXDを第15
図のように1つにまとめて時間計測用レジスタEXとすれ
ばよい。このように変更した場合は、第13図のフローチ
ャートを第17図のように変えることができる。
第17図のフローチャートについて説明すると、第17図
においては、第13図のステップ53及び60がステップ81に
まとめられ、処理モードの判定が最初に行われる。この
判定結果に応じて、次のステップ82又は84が行われる。
これらのステップ82及び84の処理は第13図のステップ5
4、57、61及び64に対応しており、テンポアップ又はテ
ンポダウン処理を行ってよいかどうかを判定している。
即ち、時間計測用レジスタEX又はEXPRIの値が“0"にな
っているかどうかを判定し、“0"でない(NOの)場合
は、処理時刻が第4図(b)の時間間隔Ebの途中にある
ことを意味するので、その時刻におけるテンポクロック
周波数の値を維持し、時間をカウントダウンするための
ステップ83又は85に進み、ここでの処理が終了後、第14
図のステップ67にジャンプする。
逆に、時間計測用レジスタEX又はEXPRIの値が“0"(Y
ES)の場合は、処理時刻が第4図(b)の各時刻T0〜T
6,T7〜T12又はt0〜t6,t7〜t10のいずれかにちょうど該
当することを意味するので、その時刻におけるテンポ増
加量又は減少量を計算するために次のステップ86に進
む。
ステップ86及び87では、第13図のステップ51及び52と
同様の処理、即ちテンポ設定レジスタTNOWの値と、目標
テンポレジスタTNEWの値とを比較し、その結果に応じた
ステップ860、88及び91の各処理へ分岐する。ステップ8
8〜90では、テンポアップ処理が行われ、ステップ91〜9
3ではテンポダウン処理が行われる。
ステップ88及び91では、ステップ81と同様に処理モー
ドの判定を行う。ステップ89、90、92及び93では、この
結果に応じて第13図のステップ56、59、63及び65と同じ
処理を行い、ステップ94に進み、テンポ設定レジスタTN
OWの値をそのままテンポクロック発生器18に送出する。
以上のようにして第17図の処理は終了するが、大部分
の処理は第13図のものと同じである。
なお、第13図のステップ51及び第17図のステップ86に
おける「TNEW=TNOW」の判断は両者が厳密に一致してい
ることを条件とする必要はなく、適宜の不感帯幅以内の
誤差は実質上一致しているものとして処理する。そのた
め、ステップ51、86の判断がYESの場合は、ステップ51
0、860の処理を行い、正確にTNEW=TNOWとしている。こ
の場合におけるステップ510、860の処理は省略可能でも
ある。
また、上記実施例ではプリセットモードにおけるテン
ポ追従性データEPRIとして1つのデータを用いたが、テ
ンポアップ時及びテンポダウン時で異なるデータを用い
るようにしてもよい。
さらに、テンポアップ時及びテンポダウン時のテンポ
増加量及び減少量を徐々に小さくすることにより対数的
なカーブで補間を行うようにしたが、これに限定される
ものではなく、直線的に増加又は減少させてもよい。こ
の場合は、ステップ56、59、63、65、89、90、92及び93
の計算式を適宜所定のものに変更すればよい。
なお、第4図(a)及び(b)では、テンポアップ時
又はテンポダウン時の時間間隔(テンポ追従性)を一定
として示したが、実際は第13図、第14図及び第17図の処
理がテンポクロックインタラプトで処理されている関係
上、テンポクロックそれ自体の変動の影響を受けること
により、微妙に変化することになる。しかし、実用上問
題のない制御が可能である。なお、第13図及び第17図の
各処理を固定されたクロックパルスによるインタラプト
処理とし、第14図の処理のみをテンポクロックインタラ
プト処理とすることによって、単位時間間隔(テンポ追
従性)を正確に一定とすることができる。
上記実施例では、ソフトウェア処理によりこの発明を
実施しているが、専用のハードウェアを構成し、同様の
制御を行うようにしてもよい。
この発明が適用可能な自動演奏装置は、上記実施例の
ようなシーケンサに限らず、自動ベースコードや自動ア
ルペジョ等の自動伴奏装置、あるいは自動リズム演奏装
置等、テンポクロックに従って自動演奏を行なうタイプ
の如何なる自動演奏装置にも適用できることは言うまで
もない。
〔発明の効果〕
以上のとおり、この発明によれば、テンポ設定値が変
更された場合、テンポ信号の速さ、即ちテンポクロック
の周波数を、変更前のテンポ設定値に対応する速さから
変更後のテンポ設定値に対応する速さまで徐々に変化さ
せるようにしたので、テンポの変更がなされた場合、自
動演奏のテンポは直ちに変更後のテンポに変化せずに、
変更前のテンポから変更後のテンポまで徐々に変化し、
滑らかなテンポ変化を実現することができる。従って、
演奏中にテンポが急激に変化してギクシャクした断絶感
を与えることがなくなり、また、手動演奏と自動演奏を
一緒に行なう場合にも手動演奏のテンポの変動に合わせ
て自動演奏テンポを滑らかに変更しようとするときにも
テンポ変更操作が容易に行なえるという優れた効果を奏
する。
特に、この発明によれば、テンポ加速時の変化レート
とテンポ減速時の変化レートをそれぞれ独立に可変設定
できることにより、テンポを速くするときの変化レート
を遅くするときの変化レートよりも小さく設定すること
ができ、人間の聴感に合ったテンポ加速又は減速制御を
行うことができる、という優れた効果を奏する。すなわ
ち、テンポを速くするときの変化レートを遅くするとき
の変化レートよりも小さく設定することにより、テンポ
を速くするときも遅くするときも同程度の変化速度でテ
ンポが徐々に変化するように聞き取れるようになり、違
和感を感じさせないようにすることができる。
【図面の簡単な説明】
第1図はこの発明の構成を示す機能ブロック図、 第2図はこの発明に係る電子楽器の一実施例のハードウ
ェア構成を示すブロック図、 第3図は第2図のシーケンサメモリに記憶する演奏情報
をMIDI規格で表現した場合のデータフォーマットの一例
を示す図、 第4図(a),(b)はこの発明のテンポ変更処理の概
念を示す図、 第5図は第2図のCPUが処理するメインルーチンの一例
を示すフローチャート図、 第6図は第5図のテンポ設定イベント処理の詳細例を示
すフローチャート図、 第7図は第5図のプリセット/マニュアル設定イベント
処理詳細例を示すフローチャート図、 第8図は第5図のテンポ変更係数設定イベント処理の詳
細例を示すフローチャート図、 第9図は第5図のテンポ追従性設定イベント処理の詳細
例を示すフローチャート図、 第10図は第5図のプレイスイッチイベント処理の詳細例
を示すフローチャート図、 第11図は第10図及び第14図のキーオンサブルーチンの詳
細例を示すフローチャート図、 第12図は第10図及び第14図の時間間隔設定サブルーチン
の詳細例を示すフローチャート図、 第13図及び第14図はテンポクロック割り込み処理の詳細
例を示すフローチャート図、 第15図は第6図のテンポ設定イベント処理の変更例を示
すフローチャート図、 第16図は第9図のテンポ追従性設定イベント処理の変更
例を示すフローチャート図、 第17図は第13図のテンポクロック割り込み処理の変更例
を示すフローチャート図である。 10……CPU、11……プログラム及びデータメモリ、12…
…ワーキングレジスタ、13……シーケンサメモリ、14…
…操作パネル、15……入出力装置、16……鍵盤回路、17
……音源、18……テンポクロック発生器。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】テンポ設定値に応じた速さのテンポ信号を
    発生するテンポ信号発生手段と、 このテンポ信号によって確立されるテンポに従って楽音
    を自動的に発生する楽音自動発生手段と、 テンポ加速時の変化レートを設定するテンポ加速レート
    設定手段と、 このテンポ加速レート設定手段とは別に設けられた、テ
    ンポ減速時の変化レートを設定するテンポ減速レート設
    定手段と、 前記テンポ設定値が変更されたとき、前記テンポ信号発
    生手段で発生するテンポ信号の速さを、変更前のテンポ
    設定値に対応する速さから変更後のテンポ設定値に対応
    する速さまで徐々に変化させるものであって、テンポを
    加速する変化のときには前記テンポ加速レート設定手段
    で設定された変化レートに基づいて前記テンポ信号の速
    さを徐々に変化させ、他方、テンポを減速する変化のと
    きには前記テンポ減速レート設定手段で設定された変化
    レートに基づいて前記テンポ信号の速さを徐々に変化さ
    せるテンポ変更制御手段と を具え、テンポを速くするときの変化レートを遅くする
    ときの変化レートよりも小さく設定できることを特徴と
    する自動演奏装置。
JP2086851A 1990-03-30 1990-03-30 自動演奏装置 Expired - Fee Related JP2551197B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2086851A JP2551197B2 (ja) 1990-03-30 1990-03-30 自動演奏装置
US07/677,170 US5220120A (en) 1990-03-30 1991-03-29 Automatic play device having controllable tempo settings

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2086851A JP2551197B2 (ja) 1990-03-30 1990-03-30 自動演奏装置

Publications (2)

Publication Number Publication Date
JPH03284797A JPH03284797A (ja) 1991-12-16
JP2551197B2 true JP2551197B2 (ja) 1996-11-06

Family

ID=13898317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2086851A Expired - Fee Related JP2551197B2 (ja) 1990-03-30 1990-03-30 自動演奏装置

Country Status (1)

Country Link
JP (1) JP2551197B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2747177B2 (ja) * 1992-10-01 1998-05-06 株式会社河合楽器製作所 電子楽器の自動演奏装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2523779B2 (ja) * 1988-04-26 1996-08-14 松下電器産業株式会社 自動演奏装置

Also Published As

Publication number Publication date
JPH03284797A (ja) 1991-12-16

Similar Documents

Publication Publication Date Title
EP1638077B1 (en) Automatic rendition style determining apparatus, method and computer program
US7396992B2 (en) Tone synthesis apparatus and method
JPH04274498A (ja) 自動演奏装置
JPH0823746B2 (ja) 自動楽音発生装置
US5495073A (en) Automatic performance device having a function of changing performance data during performance
US5654517A (en) Automatic performance device having a function of modifying tone generation timing
US5220120A (en) Automatic play device having controllable tempo settings
EP1391873B1 (en) Rendition style determination apparatus and method
JP2551197B2 (ja) 自動演奏装置
JP2551193B2 (ja) 自動演奏装置
US5942711A (en) Roll-sound performance device and method
JP2611694B2 (ja) 自動演奏装置
US5160797A (en) Step-recording apparatus and method for automatic music-performing system
US20020046639A1 (en) Method and apparatus for waveform reproduction
JPH0631977B2 (ja) 電子楽器
JPH0926787A (ja) 音色制御装置
JP2713107B2 (ja) 自動演奏装置
JP2526834B2 (ja) 演奏制御装置
JPH05173551A (ja) ピアノの自動演奏装置
JP3033393B2 (ja) 自動伴奏装置
JP3486938B2 (ja) レガート演奏可能な電子楽器
JP3178176B2 (ja) 自動伴奏装置
JP2658736B2 (ja) 自動演奏装置
JP3864784B2 (ja) 電子楽器および電子楽器用プログラム
JP2972364B2 (ja) 音楽的情報処理装置及び音楽的情報処理方法

Legal Events

Date Code Title Description
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: 20070822

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20090822

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees