JP3439850B2 - 自動演奏装置 - Google Patents

自動演奏装置

Info

Publication number
JP3439850B2
JP3439850B2 JP27443894A JP27443894A JP3439850B2 JP 3439850 B2 JP3439850 B2 JP 3439850B2 JP 27443894 A JP27443894 A JP 27443894A JP 27443894 A JP27443894 A JP 27443894A JP 3439850 B2 JP3439850 B2 JP 3439850B2
Authority
JP
Japan
Prior art keywords
time
value
performance
timing
tempo
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
JP27443894A
Other languages
English (en)
Other versions
JPH08115083A (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.)
Roland Corp
Original Assignee
Roland 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 Roland Corp filed Critical Roland Corp
Priority to JP27443894A priority Critical patent/JP3439850B2/ja
Publication of JPH08115083A publication Critical patent/JPH08115083A/ja
Application granted granted Critical
Publication of JP3439850B2 publication Critical patent/JP3439850B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、自動演奏装置に関し、
さらに詳細には、外部同期信号に同期して演奏する演奏
タイミングの発生方法を改良した自動演奏装置に関す
る。
【0002】
【従来の技術およびその問題点】従来、マイクロ・コン
ピューターによって制御される自動演奏装置において、
外部同期信号としてSMPTE規格における同期信号た
るLTC同期信号に同期して、演奏データの演奏タイミ
ングを示すタイミング・クロックを発生するためには、
例えば、特公平4−48237号公報あるいは特開平2
−208698号公報などに示されるように、演奏デー
タを演奏するテンポに応じたタイミング・クロックの間
隔をLTC同期信号のビット数でもち、LTC同期信号
のビット数をカウントすることによって、テンポに応じ
たタイミング・クロックを発生するようにしていた。
【0003】ところで、外部同期信号としては、ビット
の時間間隔が約417μ秒の上記したLTC同期信号の
他に、約16.7m秒の間隔で発生するビデオの垂直同
期信号(VSYNC)や、約8.3m秒の間隔で発生す
るMIDI規格におけるMIDIタイムコード(MT
C)などの外部同期信号がある。しかしながら、これら
VSYNCやMTCなどの外部同期信号は、LTC同期
信号と比較すると、上記したように信号の発生する間隔
が長いものである。このため、上記した特公平4−48
237号公報あるいは特開平2−208698号公報な
どに示される方法によってでは、VSYNCやMTCな
どのような発生間隔の長い外部同期信号を基準としてテ
ンポ・クロックを発生するには不適当であることが指摘
されていた。
【0004】一方、上記した特公平4−48237号公
報あるいは特開平2−208698号公報などに示され
る方法で、LTC同期信号を基準としてテンポ・クロッ
クを発生する場合においては、LTC同期信号に応じて
417μ秒毎に外部同期信号の処理を行うことになり、
CPU(中央処理装置)における割り込み処理の負担が
大きくなるという問題点があった。
【0005】また、自動演奏装置において、演奏データ
を読みだして音源などへ出力するタイミングの発生に関
しては、演奏データのテンポ(1分間当たりの4分音符
の数で表現する)から求められる4分音符1個分の時間
間隔を、4分音符当たりのタイミング・クロック数(以
下、「クロック分解能」と称す。)で均等に分割した時
間間隔を求め、当該時間間隔をタイマーの周期にセット
してCPUに対して割り込みをかけることにより得るこ
とが行われていた。
【0006】上記したようなタイミングの発生方法にお
いて用いられるタイマーが、正確なテンポでタイミング
・クロックを発生するためには、少なくとも1μ秒毎に
カウントされるタイマー・カウンターの周期を設定する
ことにより実現することが必要であり、このように構成
することにより、さまざまなテンポによって変化するタ
イミングを発生することができるものであった。しかし
ながら、遅いテンポにおけるタイミングの発生を実現す
るためには、16ビット以上のタイマー・カウンターを
必要としていた。
【0007】また、上記したようなタイミングの発生方
法において、演奏の品質を向上するためにクロック分解
能を大きくすると、速いテンポのときには割り込みの周
期があまりにも短くなり、当該割り込み処理のためにC
PUの処理時間が使用されてしまい、その他の演奏に関
する処理を行うことができなくなるという問題点があっ
た。
【0008】一方、上記したようなタイミングの発生方
法において、クロック分解能を下げると、遅いテンポの
ときには割り込み周期があまりにも長くなり、微妙なタ
イミングを表現することができないという問題点があっ
た。
【0009】こうした問題点を解決するために、例え
ば、特開平1−319793号公報に開示された技術が
提案されている。
【0010】この特開平1−319793号公報に開示
された技術は、速いテンポでは割り込み周期が所定時間
間隔以上に短くならないようにクロック分解能を下げる
処理を行い、遅いテンポでは割り込み周期が所定時間間
隔以上に長くならないようにクロック分解能を上げる処
理を行っている。このようにクロック分解能を変化させ
ることにより、どのようなテンポにおいても割り込み周
期が所定時間間隔以内に収まるようにすることができる
ようになされている。
【0011】しかしながら、こうした特開平1−319
793号公報に開示された技術においても、テンポに応
じてタイマーの周期を設定しているものであるので、上
記したようなタイミングの発生方法と同様に、テンポに
応じて割り込み周期を自由に設定できるハードウェアに
よるタイマーを必要とするという問題点があった。
【0012】一方、テンポに応じて割り込み周期を自由
に設定できるタイマーではなくて、割り込み周期が固定
されているタイマーを用いる場合には、予め演奏データ
を当該タイマーの固定周期のタイミングで記録しておく
方法と、4分音符を基準とする演奏データから、演奏デ
ータのテンポ情報を考慮して固定周期のタイマーのタイ
ミングに変換することにより、固定周期のタイマー割り
込みのタイミングで演奏できるようにする方法とが知ら
れている。これらの方法によれば、テンポに応じて割り
込み周期を自由に設定できるタイマーがなくても演奏を
行うことが可能となる。
【0013】しかしながら、上記した方法の中の前者
(予め演奏データをタイマーの固定周期のタイミングで
記録しておく方法)にあっては、演奏データを参照する
場合に音楽的な小節や拍の位置を指定することが困難で
あり、上記した方法の中の後者(演奏データのテンポ情
報を考慮して固定周期のタイマーのタイミングに変換す
る方法)にあっては、演奏データを固定周期のタイミン
グにその都度変換する処理を行わなければならないとい
う問題点があった。
【0014】
【発明が解決しようとする課題】上記したように、「従
来の技術」の項で説明した従来の自動演奏装置における
演奏データを読みだして音源などへ出力するタイミング
の発生方法にあっては、外部同期信号に同期させる場合
においても、またテンポに応じて割り込み周期を自由に
設定できるタイマーを使用する場合においても、さらに
は固定周期のタイマーを使用する場合においても、種々
の問題点が指摘されていた。
【0015】本発明は、従来の技術の有する上記したよ
うな種々の問題点に鑑みてなされたものであり、その目
的とするところは、テンポに応じて周期を変化させるこ
とができない固定周期のタイマー割り込みなどの周期的
な信号を利用して、約16.7m秒の間隔で発生するV
SYNCや約8.3m秒の間隔で発生するMTCなどの
ような比較的周期の長い外部同期信号に同期して、任意
に設定されたテンポに応じて演奏データを演奏するため
のタイミング・クロックを発生することのできる自動演
奏装置を提供しようとするものである。
【0016】
【課題を解決するための手段】上記目的を達成するため
に、本発明による自動演奏装置は、外部同期信号毎に時
刻を歩進する自動演奏装置において、外部同期信号間の
時刻を固定周期で発生するタイマー割り込みなどの周期
的な信号毎に補間して、その補間された時刻の進み具合
に応じたテンポによって定まるタイミング・クロック数
を発生するようにしたものである。
【0017】
【作用】上記したように、VSYNCによる16.7m
秒間隔やMTCによる8.3m秒間隔などのように、比
較的長い時間間隔で受信した外部同期信号のタイミング
のみでは、様々なテンポに応じて精度のよい演奏を実現
することはできない。
【0018】ところが、一般に、CPUを用いた電子楽
器においては、ユーザー・インターフェースや発音処理
あるいは表示処理などの制御のために、固定周期のタイ
マー割り込みなどの間隔の短い周期的な信号を利用し
て、処理のタイミングを得ている。従って、こうした周
期的な信号をタイミング・クロックの発生に利用できれ
ば、全体構成を複雑化することなく、様々なテンポに応
じた精度のよい演奏を実現することができる。
【0019】即ち、VSYNCによる16.7m秒間隔
やMTCによる8.3m秒間隔などのように、比較的長
い時間間隔で受信した外部同期信号のタイミングのみで
は、様々なテンポに応じて精度のよい演奏を実現するこ
とはできないので、発音処理や表示処理などのために設
けられている固定周期のタイマー割り込みなどの間隔の
短い周期的な信号を、外部同期信号の分解能の粗さを補
間することと、テンポに応じたタイミング・クロックの
発生とに利用することによって、様々なテンポに応じて
所望の精度で演奏させることができるようになる。
【0020】ところで、例えば、1m秒の間隔でタイマ
ー割り込みを発生させ、その割り込みをきっかけに外部
同期信号を補間してタイミング・クロックを発生させる
場合には、「従来の技術」の項で説明した従来の方法と
比較すると、最大で1m秒の誤差(ズレ)を持つことに
なる。しかしながら、電子楽器における統一規格である
MIDI規格では、任意の音を1音発生させるために必
要な時間として0.96m秒かかり、さらにその後に発
音処理時間がかかるので、最大1m秒程度のタイミング
のズレは、無視できる程度のズレと言える。
【0021】また、上記したような実際の発音にかかる
時間(MIDI規格においては、「0.96m秒+発音
処理時間」である。)を考慮すれば、SMPTEのLT
C同期信号に同期させた場合における417μ秒の間隔
の割り込み処理は、必要以上に短い間隔でタイミング・
クロックの処理をしていることになり、実質的には無駄
な処理を行っていることになる。
【0022】ところが、本発明においては、VSYNC
やMTCなどの比較的時間間隔の長い外部同期信号を利
用し、固定周期の割り込み時のみタイミング・クロック
の処理を行うものであるので、CPUの処理時間を有効
に利用することができる。
【0023】また、「従来の技術」の項で説明したSM
PTEのLTC同期信号に同期する従来の方法において
は、テンポに応じて同期信号のビット数を設定すること
でそれ実現していたので、速いテンポやクロック分解能
が高い場合には、設定の自由度が少なく、テンポの設定
で曲全体の時間を調整することが簡単ではなかった。
【0024】しかしながら、本発明では、ビット単位で
テンポを設定するのではなく、固定周期毎に進む時刻に
応じたテンポ・クロックを演算などで発生させ、演算な
どによる誤差を端数として繰り入れていくようにするこ
とができるので、自由なテンポの設定が可能である。ま
た、クロック分解能を大きくしても、固定周期の割り込
み時に数クロック一度に発生することができるので、速
いテンポでの割り込み処理が頻繁にならずに、遅いテン
ポでの微妙なタイミングの演奏を行うためにクロック分
解能の大きな演奏データを使用することが可能となる。
【0025】
【実施例】以下、添付の図面に基づいて、本発明による
自動演奏装置の実施例を詳細に説明する。
【0026】図1には、本発明の一実施例による自動演
奏装置のブロック構成図が示されている。
【0027】この自動演奏装置は、その全体の動作の制
御をCPU10を用いて制御するように構成されてい
る。このCPU10には、バス12を介して、CPU1
0の制御プログラムなどが格納されたリード・オンリ・
メモリ(ROM)14と、CPU10によるプログラム
の実行に必要な後述する各種レジスタやタイミング・ク
ロックを単位として演奏データを記憶する領域が設定さ
れたワーキング・エリアとしてのランダム・アクセス・
メモリ(RAM)16と、後述する本発明の実施に関連
する各種操作子を備えた操作子部18と、固定された所
定の周期によってCPU10に割り込みをかけるための
固定周期タイマー20と、VSYNCやMTCなどの所
定の外部同期信号を入力するための外部同期信号入力回
路22と、CPU10によって発生されるタイミング・
クロックに応じてRAM16から読み出された演奏デー
タに基づき楽音信号を生成する音源部24と、音源部2
4において生成された楽音信号を空間に楽音として放音
するためのステレオ出力可能なアンプ内蔵スピーカー2
6L、26Rなどからなるサウンド・ジェネレーター2
8とを有している。
【0028】なお、本実施例においては、RAM16の
演奏データを記憶する領域には、磁気ディスクなどの外
部記憶装置36に記憶された演奏データが、公知の技術
によりロードされて記憶されているものとするが、演奏
データを記憶したROMなどを内部記憶装置として配設
し、こうした内部記憶装置からRAM16へ演奏データ
をロードするようにしてもよい。
【0029】また、RAM16には、以下に説明するよ
うな変数を記憶するレジスタやフラグなどが設定されて
いる。なお、以下の説明においては、各レジスタなどの
内容(データ等)は、特に断らない限り、同一のラベル
名で表すものとする。
【0030】(1)TcTime 外部同期信号入力回路22から入力される外部同期信号
の到来毎に歩進される時刻を表す。
【0031】(2)TcStep 外部同期信号入力回路22から入力される外部同期信号
1回当たりに歩進される時間(歩進量)を表し、外部同
期信号の理論的時間間隔に相当する。
【0032】(3)TcPeriod 外部同期信号入力回路22から入力される外部同期信号
の時間間隔を測定するために用いるものであり、後述す
る外部同期信号割り込みルーチンに示される、外部同期
信号毎の割り込み処理の最終処理において「0」に初期
化されるとともに、固定周期タイマー20による固定周
期のタイマー割り込み毎に「1」インクリメントされ
る。
【0033】(4)IntTime 固定周期タイマー20による固定周期のタイマー割り込
み毎に歩進する時刻を表す。
【0034】(5)IntTimeStep IntTimeの歩進量を表す。
【0035】(6)Tb(Ti)およびCb(Ti) テンポデータであり、Tb(Ti)は、所定のテンポが
一定の時間であり、その時間中に発生すべきクロック数
がCb(Ti)である。ただし、「Tb(Ti)=0」
は、データの終了を表わす。
【0036】
【0037】(8)Ti Tb、Cbのインデックスである。
【0038】(9)PlayTime テンポ・データで歩進する時刻を表す。
【0039】(10)NextTime Tiが指している現在のテンポ・データの終わりの時刻
を表す。
【0040】(11)Clock 演奏データを読み出すためのタイミング・クロック数で
あり、演奏開始時からの現在までの累算値である。
【0041】(12)ClockR Clockの端数を表し、誤差なくタイミング・クロッ
クを発生させるために設けられている。
【0042】(13)NextClock Tiが指している現在のテンポ・データの終わりのCl
ockを表す。
【0043】(14)Status 曲が進行しているかどうかを表し、「0」であるならば
演奏の停止状態を表し、「1」であるならば曲の演奏待
ちの状態を表し、「2」であるならば曲の演奏中の状態
を表す。
【0044】(15)PlayClock 演奏すべき演奏データのクロック数を表わす。すなわ
ち、各演奏データには、演奏開始から演奏すべき時刻ま
でのクロック数が記憶されていて、Clockが、この
PlayClock以上になったとき、その演奏データ
を読み出して音源に供給する。
【0045】(16)StartTime スタート・ボタン32の操作による演奏開始時刻を表
す。
【0046】また、図2は、操作子部18を構成する操
作子が配設された操作パネル30の概略構成説明図であ
り、本発明の実施に関係する操作子のみを示している。
この操作パネル30には、操作子部18を構成する本発
明の実施に関係する操作子として、演奏データをRAM
16から読みだして演奏を開始するためのスタート・ボ
タン32と、演奏データのRAM16からの読みだしを
停止して演奏を停止するためのストップ・ボタン34と
が配設されている。
【0047】以上の構成において、CPU10が、図9
に示す初期化ルーチンInt()、図10に示す演奏開
始ルーチンStart(StartTime)(引数S
tartTime:演奏開始時刻)、図11に示す演奏
停止ルーチンStop()、図12に示す外部同期信号
割り込みルーチンExtSyncInterrup
t()、図13に示すタイマー割り込みルーチンTim
erInterrupt()ならびに図14に示す演奏
ルーチンPlayTask()をそれぞれ適宜実行する
ことにより、RAM16に記憶された演奏データの読み
出しが行われ、音源部24へ演奏データに基づく楽音信
号生成の指示が出力されることになる。そして、音源部
24においては演奏データに基づいて楽音信号を生成
し、生成した楽音信号をサウンド・ジェネレター28へ
出力することにより、スピーカー26L、26Rを介し
て空間に楽音が放音される。
【0048】即ち、CPU10は操作パネル30に配設
されたスタート・ボタン32が押されたとき、図10に
示す演奏開始ルーチンを起動する。これによって演奏が
最初から始まることになる。
【0049】また、CPU10は操作パネル30に配設
されたストップ・ボタン34が押されたとき、図11に
示す演奏停止ルーチンを起動する。これによって、演奏
を途中で停止することができる。
【0050】そして、上記したスタート・ボタン32
と、ストップ・ボタン34との操作は、曲の演奏状態に
関わりなく、任意のタイミングで操作することができる
ものである。
【0051】以下に、上記した各ルーチンについて詳細
に説明するが、以下の説明においては、外部同期信号と
してMTCを用いるものとする。
【0052】このMTCにおいては、1フレームを4分
割した時刻に同期信号が到来する。つまり、フーム・モ
ードが30フレームのとき、「1秒/30(フレーム)
/4」に一度、即ち、約8.3m秒間隔で同期信号が到
来することになる。理解を容易にするために、「1/2
4000秒」の単位として単位[U]を用いると、約
8.3m秒は200[U]となる(同様に、VSYNC
の場合には、同期信号の到来の周期たる約16.7m秒
は400[U」となる。)。
【0053】また、固定周期タイマー20の割り込み間
隔を1m秒とすると、1m秒は24[U]と表現され
る。従って、上記した各変数との関係においては、Tc
Stepは200[U]であり、IntTimeSte
pは24[U]である。
【0054】そして、本発明は、上記した「課題を解決
するための手段」において説明したように、外部同期信
号間の時刻を固定周期で発生するタイマー割り込みなど
の周期的な信号毎に補間して、その補間された時刻の進
み具合に応じたテンポによって定まるタイミング・クロ
ック数を発生するようにしたものであり、「TcSte
p=200[U]」と「IntTimeStep=24
[U]」とを採用する場合には、タイミング・クロック
は「IntTimeStep=24[U]」の歩進に応
じて発生される一方で、時刻は「TcStep=200
[U]」により歩進されるものであり、「TcStep
=200[U]」の歩進毎にIntTimeはTcTi
meに書き換えられることになる。
【0055】図3には、こうした「TcStep=20
0[U]」と「IntTimeStep=24[U]」
とを採用した場合における、TcTimeの進みとIn
tTimeの進みと理論的な時刻の進みとの関係が示さ
れている。図3に示されているように、IntTime
の進みは理論的な時刻の進みとは若干のズレを有する
が、TcTimeの歩進毎にIntTimeはTcTi
meに書き換えられるので、当該ズレの累積を防止する
ことができる。なお、図3乃至図7の横軸は時間(単位
m秒)を、縦軸はIntTimeおよびTcTime
(単位[U])をそれぞれ表わす。
【0056】こうしたTcTimeの進みとIntTi
meの進みと理論的な時刻の進みとの関係は、例えば、
テープ・レコーダーにSMPTEのLTC同期信号を録
音しておき、テープ・レコーダーの出力をMTCに変換
して使用する際において、テープレコーダが速く再生さ
れて同期信号の間隔が狭くなった場合には、図4に示す
ようになる。
【0057】また、テープ・レコーダーがゆっくり再生
されて同期信号の間隔が広くなった場合には、TcTi
meの進みとIntTimeの進みと理論的な時刻の進
みとの関係は、図5に示すようになる。
【0058】ところで、図5に示す場合においては、I
ntTimeはTcTimeを追い越してしまっている
が、TcTimeは「TcStep=200[U]」で
歩進されているので、以下に説明するフローチャートに
は示していないが、IntTimeの歩進においてTc
Timeに「200」を足した値を越える場合には、図
6に示すようにそれ以上進めないようにしてもよい。
【0059】なお、図4乃至図6に示すように、外部同
期信号が本来の時間間隔で入力されない場合には、In
tTimeの進みと理論的な時刻の進みとのズレが大き
くなる。しかしながら、このズレは、図3の場合と同様
に、少なくとも外部同期信号の発生のタイミングでは解
消されて累積されないので、実用上は問題になることは
ない。
【0060】なお、こうしたズレが大きくなるのを補正
するためには、後述する外部同期信号割り込みルーチン
において詳述する処理を行えばよい。即ち、例えば、1
m秒で外部同期信号入力回路22から入力される外部同
期信号の時間間隔を測定すると、図7に示す場合には約
6m秒になることから、その固定周期毎に進める時刻の
幅(IntTimeStep)を24[U]から、「2
4[U]×8[m秒]/6[m秒]=32[U]」に補
正すると、理論的な時刻の進み具合とのズレを小さくす
ることができる(図7)。
【0061】また、本実施例においては、後述するフロ
ーチャートに示す処理により得られた時刻に従ってタイ
ミング・クロックを発生するために、テンポ・データを
タイミング・クロックの数(Cb[Ti](Ti=0,
1,2,・・・))とそれを発生する時間[U](Tb
[Ti](Ti=0,1,2,・・・))との対で持つ
ようにした。こうした一つの対は、その時間の間は同じ
テンポで演奏され、複数の対を曲の進行に応じて並べる
ことにより、1曲分のテンポを表現することができる。
【0062】従って、Cb[Ti](Ti=0,1,
2,・・・)の総和はその曲の総クロック数を表し、T
b[Ti](Ti=0,1,2,・・・)の総和はその
曲の総演奏時間を表すことになる。
【0063】上記したように、Cb[Ti]とTb[T
i]との対により曲のテンポを表現するようにしたた
め、IntTimeの示す時刻とPlayTimeの示
す時刻とNextTimeの示す時刻との間の関係で
は、図8(a)(b)(c)に示すようになる。
【0064】それでは、以下に、各フローチャートを各
ステップ毎に説明するものとするが、まず図9には、初
期化ルーチンが示されている。
【0065】図9に示す初期化ルーチンは、自動演奏装
置に電源が投入されることにより起動されるものであ
り、この初期化ルーチンが起動されると、ステップS9
02において、TcStepに「200」をセットし
(上記したように、MTCの場合には、同期信号発生の
間隔は200[U]である。)、IntTimeに
「0」をセットし、IntTimeStepに「24」
をセットし(固定周期タイマー20によるタイミング・
クロック発生の固定周期を「1m秒=24[U]」とし
た。)、TcPeriodに「0」をセットし、この初
期化ルーチンを終了する。
【0066】次に、スタート・ボタン32を押すと、S
tartTime(演奏開始時刻)を引数として図10
のフローチャートに示す演奏開始ルーチンが起動される
が、この演奏開始ルーチンが起動されると、ステップS
1002において、Statusに「0」をセットし、
PlayClockに「0」をセットし、Clockに
「0」をセットし、ClockRに「0」をセットし、
Tiに「0」をセットし、PlayTimeに「Sta
rtTime」をセットし、NextTimeに「Pl
ayTime+Tb[0]」をセットし、NextCl
ockに「Cb[0]」をセットし、Statusに
「1」をセットして、演奏開始の準備を行った後に、こ
の演奏開始ルーチンを終了する。
【0067】また、ストップ・ボタン34を押すと、図
11のフローチャートに示す演奏停止ルーチンが起動さ
れるが、この演奏停止ルーチンが起動されると、ステッ
プS1102において、Statusに「0」をセット
して演奏を停止し、この演奏停止ルーチンを終了する。
【0068】次に、外部同期信号入力回路22に外部同
期信号(本実施例においては、外部同期信号はMTCで
ある。)が入力される毎に、割り込み処理として起動さ
れる外部同期信号割り込みルーチンに関して説明する。
【0069】図12のフローチャートには、この外部同
期信号割り込みルーチンが示されており、外部同期信号
割り込みルーチンが起動されると、ステップS1202
において、TcTimeにTcStepを加算して、T
cTimeを更新した後に、IntTimeにTcTi
meをセットし、またIntTimeStepに「24
×(8/TcPeriod)」(図7参照)の演算結果
をセットした後に、TcPeriodに「0」をセット
する。
【0070】なお、IntTimeStepに「24×
(8/TcPeriod)」の演算結果をセットする処
理を行うのは、上記したように、同期信号が本来の時間
間隔(約8.3m秒)で入力されない場合において、I
ntTimeStepを補正するためである。
【0071】さらに次に、固定周期タイマー20の1m
秒毎に発生されるタイミング・クロックによる割り込み
処理として起動される、タイマー割り込みルーチンに関
して説明する。
【0072】図13のフローチャートには、タイマー割
り込みルーチンが示されており、このタイマー割り込み
ルーチンが起動されると、ステップS1302におい
て、TcPeriodが「1」インクリメントされる。
【0073】ステップS1302の処理を終了すると、
ステップS1304へ進み、IntTimeにIntT
imeStepを加えて、IntTimeを更新する。
【0074】ステップS1304の処理を終了すると、
ステップS1306へ進み、Statusが「0」であ
るか否かを判断する。
【0075】ステップS1306の判断結果が肯定
(Y)、即ち、「Status=0」であって演奏の停
止状態であるならば、以降の処理を行わずにこのタイマ
ー割り込みルーチンを終了する。
【0076】一方、ステップS1306の判断結果が否
定(N)、即ち、「Status=1」あるいは「St
atus=2」であるならば、ステップS1308へ進
み、Statusが「1」であるか否かを判断する。
【0077】ステップS1308の判断結果が肯定、即
ち、「Status=1」であって曲の演奏待ちの状態
であるならば、ステップS1310へ進み、PlayT
imeがIntTimeより大きいか否かを判断する。
【0078】ステップS1310の判断結果が肯定、即
ち、PlayTimeがIntTimeより大きいなら
ば、以降の処理を行わずにこのタイマー割り込みルーチ
ンを終了する。
【0079】一方、ステップS1310の判断結果が否
定、即ち、PlayTimeがIntTime以下であ
るならば、ステップS1312へ進む。
【0080】ステップS1312では、Statusに
「2」をセットして曲の演奏中であることを示し、ステ
ップS1314へ進む。
【0081】また、ステップS1308の判断結果が否
定、即ち、「Status=2」であって曲の演奏中で
ある場合にも、ステップS1314へ進む。
【0082】ステップS1314は、NextTime
がIntTimeより大きいか否かを判断する。
【0083】ステップS1314の判断結果が肯定、即
ち、NextTimeがIntTimeより大きいなら
ば、ステップS1316へ進み、IntTimeがPl
ayTimeより大きいか否かを判断する。
【0084】ステップS1316の判断結果が否定、即
ち、IntTimeがPlayTime以下であるなら
ば(図8(c)に示す場合に該当する。)、以降の処理
を行わずにこのタイマー割り込みルーチンを終了する。
【0085】一方、ステップS1316の判断結果が肯
定、即ち、IntTimeがPlayTimeより大き
い場合(図8(a)に示す場合に該当する。)には、ス
テップS1318へ進む。
【0086】ステップS1318では、「(IntTi
me−PlayTime)×Cb[Ti]/Tb[T
i]」の演算を行い、その商をClockに加算してC
lockを更新し、その余りをClockRに加算して
ClockRを更新する。さらに、PlayTimeの
値をIntTimeの値とする。
【0087】ステップS1318の処理を終了すると、
ステップS1320へ進み、ClockRはTb[T
i]より小さいか否かを判断する。
【0088】ステップS1320の判断結果が否定、即
ち、ClockRがTb[Ti]以上である場合には、
ステップS1322へ進む。
【0089】ステップS1322では、ClockRか
らTb[Ti]を減算してClockRを更新し、さら
にClockを「1」インクリメントする。
【0090】ステップS1322の処理を終了すると、
ステップS1324へ進み、演奏ルーチンを起動し、こ
のタイマー割り込みルーチンを終了する。
【0091】一方、ステップS1320の判断結果が肯
定、即ち、ClockRがTb[Ti]より小さいなら
ば、直接ステップS1324へ進み、演奏ルーチンを起
動し、このタイマー割り込みルーチンを終了する。
【0092】また、ステップS1314の判断結果が否
定、即ち、NextTimeがIntTime以下であ
る場合(図8(b)に示す場合に該当する。)には、ス
テップS1326へ進み、Tb[Ti]が「0」である
か否かを判断する。
【0093】ステップS1326の判断結果が肯定、即
ち、Tb[Ti]が「0」であるならば、全てのテンポ
・データを処理したことを意味するので、以降の処理を
行わずにこのタイマー割り込みルーチンを終了する。
【0094】一方、ステップS1326の判断結果が否
定、即ち、Tb[Ti]が「0」でないならば、ステッ
プS1328へ進み、Tiを「1」インクリメントし、
ステップS1330へ進む。
【0095】ステップS1330では、PlayTim
eにNextTimeの値をセットした後に、Next
TimeにTb[Ti]を加算してNextTimeを
更新し、ClockにNextClockの値をセット
した後に、NextClockにCb[Ti]を加算し
NextClockを更新し、さらにClockRに
「0」をセットして、このタイマー割り込みルーチンを
終了する。
【0096】図14には、タイマー割り込みルーチンの
ステップS1324で起動される演奏ルーチンが示され
ており、この演奏ルーチンにおいては、ステップS14
02において、Statusが「2」であるか否かを判
断する。
【0097】このステップS1402の判断結果が否
定、即ち、「Status=0」あるいは「Statu
s=1」であるならば、以降の処理を行うことなくこの
演奏ルーチンを終了する。
【0098】一方、ステップS1402の判断結果が肯
定、即ち、「Status=2」であって曲の演奏中の
状態であるならば、ステップS1404へ進み、Pla
yClockがClockより大きいか否かを判断す
る。
【0099】このステップS1404の判断結果が肯
定、即ち、PlayClockがClockより大きい
ならば、この演奏ルーチンを終了する。
【0100】一方、ステップS1404の判断結果が否
定、即ち、PlayClockがClock以下である
場合には、ステップS1406へ進む。
【0101】ステップS1406では、PlayClo
ckの指す演奏データを読みだし、音源部24に発音を
指示して楽音信号を生成させる。
【0102】ステップS1406の処理を終了すると、
ステップS1408へ進み、次の演奏データがあるか否
かを判断する。
【0103】ステップS1408の判断結果が肯定、即
ち、次の演奏データがある場合には、ステップS141
0へ進み、PlayClockを次の演奏データに進め
た後にステップS1404へ戻り、以降の処理を繰り返
す。
【0104】一方、ステップS1408の判断結果が否
定、即ち、全演奏データに関してステップS1406に
おける処理を終了し、次の演奏データがない場合(ステ
ップS1408の判断結果が否定の場合)には、ステッ
プS1412へ進み、Statusに「0」をセット
し、演奏データの読み出しを全て終了して演奏が停止状
態にあることを示して演奏を終了する。
【0105】また、上記したように、ストップ・ボタン
34を押した場合にも演奏を停止することができるもの
である。その場合には、上記したように、ストップ・ボ
タン34が押されると、図11に示す演奏停止ルーチン
が起動されることになり、この演奏停止ルーチンのステ
ップS1102において、Statusに「0」をセッ
トし、演奏データの読み出しを全て終了して演奏が停止
状態にあることを示して演奏を終了する。
【0106】なお、上記した実施例においては、タイミ
ング・クロックの積算用としてClockを設定した
が、そのClockの差分を用いるようにしてもよい。
【0107】また、上記した実施例においては、テンポ
・データをCbとTbとの対で持ったが、テンポ・デー
タを1クロックや4分音符当たりの時間で持つようにし
ても、同様な作用効果を得ることができる。
【0108】さらに、上記した実施例においては、外部
同期信号の割り込みの度に、TcPeriodからIn
tTimeStepを計算しているが(ステップS12
02)、一般に、同期信号はその周期の変化が激しくな
い。従って、TcPeriodからIntTimeSt
epを計算する処理は、フレーム毎や1秒毎に計算する
程度でもよい。即ち、たとえIntTimeStepの
更新が遅れても、少なくとも外部同期信号毎に正確な時
間に補正されるので、実質的に演奏上問題を生ずること
がないからである。
【0109】また、上記のタイマー割り込みルーチンに
おいて得られるClockを演奏データに対応させて、
演奏データともに記録することにより、容易に自動演奏
用の演奏データを作成することができる。
【0110】さらにまた、上記した実施例においては、
固定的な周期で発生される信号としてタイマー割り込み
を用いた場合を示したが、これに限られることなしに、
適宜のカウンタなどを用いて固定的な周期の信号を発生
するようにしてもよい。
【0111】
【発明の効果】本発明は、以上説明したように構成され
ているので、以下に記載されるような効果を奏する。
【0112】外部同期信号毎に時刻を歩進する自動演奏
装置において、外部同期信号間の時刻を固定周期で発生
するタイマー割り込みなどの周期的な信号毎に補間し
て、その補間された時刻の進み具合に応じたテンポによ
って定まるタイミング・クロック数を発生するようにし
たため、テンポに応じて周期を変化させることができな
い固定周期のタイマー割り込みなどの周期的な信号を利
用して、約16.7m秒の間隔で発生するVSYNCや
約8.3m秒の間隔で発生するMTCなどのような比較
的周期の長い外部同期信号に同期して、任意に設定され
たテンポに応じて演奏データを演奏するためのタイミン
グ・クロックを発生することができるようになる。
【図面の簡単な説明】
【図1】本発明の一実施例による自動演奏装置を示すブ
ロック構成図である。
【図2】図1に示す自動演奏装置の操作パネルの概略構
成説明図である。
【図3】「TcStep=200[U]」と「IntT
imeStep=24[U]」とを採用した場合におけ
る、TcTimeの進みとIntTimeの進みと理論
的な時刻の進みとの関係を示す説明図である。
【図4】テープ・レコーダーにSMPTEのLTC同期
信号を録音しておき、テープ・レコーダーの出力をMT
Cに変換して使用する際において、テープレコーダが速
く再生されて同期信号の間隔が狭くなった場合における
TcTimeの進みとIntTimeの進みと理論的な
時刻の進みとの関係を示す説明図である。
【図5】テープ・レコーダーをゆっくり再生した場合な
どにおいて、同期信号の間隔が広くなった場合における
TcTimeの進みとIntTimeの進みと理論的な
時刻の進みとの関係を示す説明図である。
【図6】IntTimeの歩進においてTcTimeに
「200」を足した値を越える場合に、それ以上進めな
いようにした処理を行った場合におけるTcTimeの
進みとIntTimeの進みと理論的な時刻の進みとの
関係を示す説明図である。
【図7】IntTimeの進みと理論的な時刻の進みと
の大きなズレを補正した場合におけるTcTimeの進
みとIntTimeの進みと理論的な時刻の進みとの関
係を示す説明図である。
【図8】(a)(b)(c)はそれぞれ、IntTim
eの示す時刻とPlayTimeの示す時刻とNext
Timeの示す時刻との間の関係を示す説明図である。
【図9】初期化ルーチンInit()を示すフローチャ
ートである。
【図10】演奏開始ルーチンStart()を示すフロ
ーチャートである。
【図11】演奏停止ルーチンStop()を示すフロー
チャートである。
【図12】外部同期信号割り込みルーチンExSync
Interrupt()を示すフローチャートである。
【図13】タイマー割り込みルーチンTimerInt
errupt()を示すフローチャートである。
【図14】演奏ルーチンPlayTask()を示すフ
ローチャートである。
【符号の説明】
10 CPU 12 バス 14 ROM 16 RAM 18 操作子部 20 固定周期タイマー 22 外部同期信号入力回路 24 音源部 26L、26R スピーカー 28 サウンド・ジェネレーター 30 操作パネル 32 スタート・ボタン 34 ストップ・ボタン 36 外部記憶装置
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 - 7/00

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 タイミング・クロックを単位として演奏
    データを記憶する記憶手段と、 外部同期信号を入力する外部同期信号入力手段と、 前記外部同期信号入力手段によって入力された外部同期
    信号毎に時刻を歩進する時刻歩進手段と、 所定の周期で信号を発生する信号発生手段と、 前記信号発生手段によって発生された信号毎に、前記時
    刻歩進手段によって歩進された時刻に所定の時間を加算
    した時刻を得る加算手段と、 前記加算手段によって得られた時刻に基づいて、前記演
    奏データを演奏するテンポに応じた値を累算する累算手
    段と、 前記累算手段によって累算された値が所定値以上になる
    毎にタイミング・クロックを発生するタイミング・クロ
    ック発生手段と、 前記タイミング・クロック発生手段によって発生された
    タイミング・クロックに基づいて、前記記憶手段に記憶
    された演奏データを読みだして出力する出力手段とを有
    することを特徴とする自動演奏装置。
  2. 【請求項2】前記外部同期信号の間隔を測定する測定手
    段と、 前記測定手段によって測定された間隔に基づいて、前記
    加算手段によって加算される所定の時間を設定する時間
    設定手段とをさらに有することを特徴とする請求項1記
    載の自動演奏装置。
  3. 【請求項3】前記累算手段は、前記加算手段によって得
    られた時刻に基づいて、前記演奏データを演奏するテン
    ポに応じた値を、前記所定値単位に分割できる前記所定
    値以上の値と前記所定値未満の値とに分離して累算する
    ものであり、前記所定値未満の値を累算した値が前記所
    定値以上になる毎に前記累算した値から前記所定値を減
    算するとともに前記所定値以上の値の累算値を繰り上げ
    る請求項1または2のいずれか1項に記載の自動演奏装
    置。
JP27443894A 1994-10-13 1994-10-13 自動演奏装置 Expired - Fee Related JP3439850B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27443894A JP3439850B2 (ja) 1994-10-13 1994-10-13 自動演奏装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27443894A JP3439850B2 (ja) 1994-10-13 1994-10-13 自動演奏装置

Publications (2)

Publication Number Publication Date
JPH08115083A JPH08115083A (ja) 1996-05-07
JP3439850B2 true JP3439850B2 (ja) 2003-08-25

Family

ID=17541687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27443894A Expired - Fee Related JP3439850B2 (ja) 1994-10-13 1994-10-13 自動演奏装置

Country Status (1)

Country Link
JP (1) JP3439850B2 (ja)

Also Published As

Publication number Publication date
JPH08115083A (ja) 1996-05-07

Similar Documents

Publication Publication Date Title
US7221852B2 (en) Motion picture playback apparatus and motion picture playback method
US5973255A (en) Electronic musical instrument utilizing loop read-out of waveform segment
US7223911B2 (en) Portable telephone set with reproducing and composing capability of music
US4924745A (en) Automatic performance recording apparatus
JP3439850B2 (ja) 自動演奏装置
JPH0922287A (ja) 楽音波形生成方法
JPH0820872B2 (ja) 波形発生装置
JPH1031495A (ja) カラオケ装置
JPH06175663A (ja) 波形データ編集装置
JP2970396B2 (ja) 波形処理装置
US6207885B1 (en) System and method for rendition control
JPH11305772A (ja) 電子楽器
JP3635361B2 (ja) 電子楽器の音素材処理装置
JP4685226B2 (ja) 波形再生用自動演奏装置
JPH04141693A (ja) 音楽の同期信号生成装置
JP2812379B2 (ja) 音源装置
JPH04270389A (ja) ボーカルデータ表示装置
JP2556170B2 (ja) 自動演奏記録装置
JP3939421B2 (ja) テンポ設定装置
JP3404818B2 (ja) 自動演奏装置
JP4066319B2 (ja) サンプラ機能を備えたディジタルレコーダ
JP4062193B2 (ja) 自動伴奏再生位置検出装置、自動伴奏装置及び自動伴奏再生位置検出プログラム並びに自動伴奏制御プログラム
JP3407563B2 (ja) 自動演奏装置及び自動演奏方法
JPH0830269A (ja) 自動演奏装置
JP5678343B2 (ja) フレーズデータ検索装置及びプログラム

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Free format text: PAYMENT UNTIL: 20090613

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20090613

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090613

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100613

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees