JPH0876760A - 自動演奏装置のテンポスピード制御装置 - Google Patents
自動演奏装置のテンポスピード制御装置Info
- Publication number
- JPH0876760A JPH0876760A JP6230744A JP23074494A JPH0876760A JP H0876760 A JPH0876760 A JP H0876760A JP 6230744 A JP6230744 A JP 6230744A JP 23074494 A JP23074494 A JP 23074494A JP H0876760 A JPH0876760 A JP H0876760A
- Authority
- JP
- Japan
- Prior art keywords
- tempo
- speed
- tempo speed
- displacement
- operator
- 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.)
- Withdrawn
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】本発明は、自動演奏装置における録音又は再生
時のテンポスピードを制御する自動演奏装置のテンポス
ピード制御装置に関し、現テンポスピードの如何に拘わ
らず目標のテンポスピードに素早く設定することのでき
る操作性に優れた自動演奏装置のテンポスピード制御装
置を提供することを目的とする。 【構成】演奏情報を所定のテンポスピードで記録し又は
再生する自動演奏装置において、テンポスピードの変更
を指示するテンポ操作子133、155と、該テンポ操
作子が操作された場合の変位を検出する変位検出手段1
0と、該変位検出手段で検出された前記テンポ操作子の
変位に応じて現在のテンポスピードを所定の割合で変更
する変更手段10、とを備えて構成される。
時のテンポスピードを制御する自動演奏装置のテンポス
ピード制御装置に関し、現テンポスピードの如何に拘わ
らず目標のテンポスピードに素早く設定することのでき
る操作性に優れた自動演奏装置のテンポスピード制御装
置を提供することを目的とする。 【構成】演奏情報を所定のテンポスピードで記録し又は
再生する自動演奏装置において、テンポスピードの変更
を指示するテンポ操作子133、155と、該テンポ操
作子が操作された場合の変位を検出する変位検出手段1
0と、該変位検出手段で検出された前記テンポ操作子の
変位に応じて現在のテンポスピードを所定の割合で変更
する変更手段10、とを備えて構成される。
Description
【0001】
【産業上の利用分野】本発明は、自動演奏装置における
録音又は再生時のテンポスピードを制御する自動演奏装
置のテンポスピード制御装置に関する。
録音又は再生時のテンポスピードを制御する自動演奏装
置のテンポスピード制御装置に関する。
【0002】
【従来の技術】従来、鍵盤や操作パネルの操作に応じて
発生された演奏情報をメモリに記憶(録音)し、また、
このメモリに記憶された演奏情報を読み出して再生する
自動演奏装置が知られている。かかる自動演奏装置で
は、通常、録音又は再生時のテンポスピードをマニュア
ル操作で変更できるようになっている。このようなテン
ポスピードの変更機能は、自動演奏装置に備えられたテ
ンポスピード制御装置によって行われている。テンポス
ピード制御装置は、例えばテンポスピードを規定するデ
ータ(以下、「テンポスピード値」という。)を記憶す
るテンポレジスタと、例えばアップダウンスイッチ又は
インクリメンタ等といったテンポスピードを変更するた
めのテンポ操作子とこのテンポ操作子の操作に応じてテ
ンポレジスタの内容を変更することによりテンポスピー
ドを変えるテンポスピード制御部とで構成されている。
発生された演奏情報をメモリに記憶(録音)し、また、
このメモリに記憶された演奏情報を読み出して再生する
自動演奏装置が知られている。かかる自動演奏装置で
は、通常、録音又は再生時のテンポスピードをマニュア
ル操作で変更できるようになっている。このようなテン
ポスピードの変更機能は、自動演奏装置に備えられたテ
ンポスピード制御装置によって行われている。テンポス
ピード制御装置は、例えばテンポスピードを規定するデ
ータ(以下、「テンポスピード値」という。)を記憶す
るテンポレジスタと、例えばアップダウンスイッチ又は
インクリメンタ等といったテンポスピードを変更するた
めのテンポ操作子とこのテンポ操作子の操作に応じてテ
ンポレジスタの内容を変更することによりテンポスピー
ドを変えるテンポスピード制御部とで構成されている。
【0003】かかる従来のテンポスピード制御装置にお
いては、テンポ操作子が操作された回数、例えばアップ
ダウンスイッチが押された回数に応じて、現在のテンポ
スピード(以下、「現テンポスピード」という。)を規
定する現テンポスピード値が増減されて新しいテンポス
ピード(以下、「新テンポスピード」という。)が設定
される。今、テンポ操作子がN回操作されたとすると、
新テンポスピードを規定する新テンポスピード値は次式
で示される。 新テンポスピード値=現テンポスピード値±N・・・(1)
いては、テンポ操作子が操作された回数、例えばアップ
ダウンスイッチが押された回数に応じて、現在のテンポ
スピード(以下、「現テンポスピード」という。)を規
定する現テンポスピード値が増減されて新しいテンポス
ピード(以下、「新テンポスピード」という。)が設定
される。今、テンポ操作子がN回操作されたとすると、
新テンポスピードを規定する新テンポスピード値は次式
で示される。 新テンポスピード値=現テンポスピード値±N・・・(1)
【0004】このような従来のテンポスピード制御装置
においては、テンポスピードを、例えばテンポ80から
テンポ60まで下げるためには、テンポ操作子を20回
操作すれば良い。しかし、例えばテンポ160からテン
ポ120まで下げるためには、テンポ操作子を40回も
操作する必要がある。即ち、現テンポスピードを3/4
まで下げたい場合に、現テンポスピード如何によって2
倍の操作量の違いが生じてしまうという問題があった。
においては、テンポスピードを、例えばテンポ80から
テンポ60まで下げるためには、テンポ操作子を20回
操作すれば良い。しかし、例えばテンポ160からテン
ポ120まで下げるためには、テンポ操作子を40回も
操作する必要がある。即ち、現テンポスピードを3/4
まで下げたい場合に、現テンポスピード如何によって2
倍の操作量の違いが生じてしまうという問題があった。
【0005】また、テンポスピード変更の迅速化を図る
ために、1回のテンポ操作子の操作で変更される量を2
倍又は3倍以上にしたもの、即ち、上記(1)式の
「N」の代わりに「2N」を用いたもの、或いは「3
N」以上を用いたものも開発されている。しかしなが
ら、演奏者が所定の割合でテンポスピードを増減させよ
うとした場合に、現テンポスピード如何によってテンポ
操作子の操作量が大きく異なってしまうという問題は残
ったままであった。
ために、1回のテンポ操作子の操作で変更される量を2
倍又は3倍以上にしたもの、即ち、上記(1)式の
「N」の代わりに「2N」を用いたもの、或いは「3
N」以上を用いたものも開発されている。しかしなが
ら、演奏者が所定の割合でテンポスピードを増減させよ
うとした場合に、現テンポスピード如何によってテンポ
操作子の操作量が大きく異なってしまうという問題は残
ったままであった。
【0006】一方、テンポ操作子が操作された状態が一
定時間(例えば、0.5秒)継続されると、以後はテン
ポ操作子が操作され続けている限り、テンポスピードが
所定時間間隔で自動的にインクリメント又はデクリメン
トされる機能(以下、「オートインクリメント機能」と
いう。)を有するテンポスピード制御装置も開発されて
いる。このオートインクリメント機能は、基本的には、
所定時間間隔毎に現テンポスピード値に一定値を加算又
は減算するものである。更に、このオートインクリメン
ト機能を変形したものとして、例えば、テンポ操作子を
操作し続けた時間に応じて徐々にインクリメント又はデ
クリメントする時間間隔を短くすることによりテンポス
ピード変更の迅速化を図ったテンポスピード制御装置も
開発されている。
定時間(例えば、0.5秒)継続されると、以後はテン
ポ操作子が操作され続けている限り、テンポスピードが
所定時間間隔で自動的にインクリメント又はデクリメン
トされる機能(以下、「オートインクリメント機能」と
いう。)を有するテンポスピード制御装置も開発されて
いる。このオートインクリメント機能は、基本的には、
所定時間間隔毎に現テンポスピード値に一定値を加算又
は減算するものである。更に、このオートインクリメン
ト機能を変形したものとして、例えば、テンポ操作子を
操作し続けた時間に応じて徐々にインクリメント又はデ
クリメントする時間間隔を短くすることによりテンポス
ピード変更の迅速化を図ったテンポスピード制御装置も
開発されている。
【0007】
【発明が解決しようとする課題】しかしながら、上述し
た従来のテンポスピード制御装置は、何れも現テンポス
ピードとは無関係なパラメータによってテンポスピード
を制御することにより、テンポスピード変更の簡単化・
迅速化を図ろうとするものである。
た従来のテンポスピード制御装置は、何れも現テンポス
ピードとは無関係なパラメータによってテンポスピード
を制御することにより、テンポスピード変更の簡単化・
迅速化を図ろうとするものである。
【0008】演奏者は、テンポスピードを変更するにあ
たり、例えば現テンポスピードを半分、又は3/4に落
としたい、或いは2倍又は4/3に上げたい等といった
具合に、所定割合でテンポスピードを変更したいという
要求を持っている。しかし、従来のテンポスピード制御
装置では、現テンポスピードとは無関係にテンポスピー
ドの変更処理が行われるので、同じ割合でテンポスピー
ドを増減させたい場合に現テンポスピード如何によって
操作子の操作回数が大きく異なってしまい、非常に使い
勝手に劣るという問題があった。
たり、例えば現テンポスピードを半分、又は3/4に落
としたい、或いは2倍又は4/3に上げたい等といった
具合に、所定割合でテンポスピードを変更したいという
要求を持っている。しかし、従来のテンポスピード制御
装置では、現テンポスピードとは無関係にテンポスピー
ドの変更処理が行われるので、同じ割合でテンポスピー
ドを増減させたい場合に現テンポスピード如何によって
操作子の操作回数が大きく異なってしまい、非常に使い
勝手に劣るという問題があった。
【0009】本発明は、かかる事情に鑑みてなされたも
のであり、その目的は、現テンポスピードの如何に拘わ
らず目標のテンポスピードに素早く設定することのでき
る操作性に優れた自動演奏装置のテンポスピード制御装
置を提供することにある。
のであり、その目的は、現テンポスピードの如何に拘わ
らず目標のテンポスピードに素早く設定することのでき
る操作性に優れた自動演奏装置のテンポスピード制御装
置を提供することにある。
【0010】
【課題を解決するための手段】上記第1の目的を達成す
るために、請求項1に記載の発明は、演奏情報を所定の
テンポスピードで記録し又は再生する自動演奏装置にお
いて、テンポスピードの変更を指示するテンポ操作子
と、該テンポ操作子が操作された場合の変位を検出する
変位検出手段と、該変位検出手段で検出された前記テン
ポ操作子の変位に応じて現在のテンポスピードを所定の
割合で変更する変更手段、とを有することを特徴とす
る。
るために、請求項1に記載の発明は、演奏情報を所定の
テンポスピードで記録し又は再生する自動演奏装置にお
いて、テンポスピードの変更を指示するテンポ操作子
と、該テンポ操作子が操作された場合の変位を検出する
変位検出手段と、該変位検出手段で検出された前記テン
ポ操作子の変位に応じて現在のテンポスピードを所定の
割合で変更する変更手段、とを有することを特徴とす
る。
【0011】また、同様の目的で、請求項2に記載の発
明は、前記テンポ操作子は正側と負側との双方向に操作
可能であり、前記変位検出手段は、該テンポ操作子の正
の変位又は負の変位を検出することを特徴とする。
明は、前記テンポ操作子は正側と負側との双方向に操作
可能であり、前記変位検出手段は、該テンポ操作子の正
の変位又は負の変位を検出することを特徴とする。
【0012】また、同様の目的で、請求項3に記載の発
明は、前記変更手段は、前記変位検出手段で検出された
前記テンポ操作子の変位に応じて現在のテンポスピード
値を所定の指数関数に従って変更することを特徴とす
る。
明は、前記変更手段は、前記変位検出手段で検出された
前記テンポ操作子の変位に応じて現在のテンポスピード
値を所定の指数関数に従って変更することを特徴とす
る。
【0013】また、同様の目的で、請求項4に記載の発
明は、前記テンポ操作子は特定の非操作位置を有し、該
非操作位置に対して正側及び負側の双方向に多段階の変
位量を出力し、前記変更手段は、前記変位検出手段で検
出された該テンポ操作子の変位量に応じて現在のテンポ
スピードを変更することを特徴とする。
明は、前記テンポ操作子は特定の非操作位置を有し、該
非操作位置に対して正側及び負側の双方向に多段階の変
位量を出力し、前記変更手段は、前記変位検出手段で検
出された該テンポ操作子の変位量に応じて現在のテンポ
スピードを変更することを特徴とする。
【0014】また、同様の目的で、請求項5に記載の発
明は、前記テンポ操作子が所定時間以上操作されている
場合に操作続行中であることを検出する操作続行検出手
段と、一定時間間隔でテンポ変更タイミングを発生する
タイミング発生手段、とを更に有し、前記変更手段は、
前記操作続行手段により操作続行中であることが検出さ
れている間は、前記タイミング発生手段で発生された各
テンポ変更タイミングにおいて、前記変位検出手段で検
出された前記テンポ操作子の変位に応じて現在のテンポ
スピードを所定の割合で変更することを特徴とする。
明は、前記テンポ操作子が所定時間以上操作されている
場合に操作続行中であることを検出する操作続行検出手
段と、一定時間間隔でテンポ変更タイミングを発生する
タイミング発生手段、とを更に有し、前記変更手段は、
前記操作続行手段により操作続行中であることが検出さ
れている間は、前記タイミング発生手段で発生された各
テンポ変更タイミングにおいて、前記変位検出手段で検
出された前記テンポ操作子の変位に応じて現在のテンポ
スピードを所定の割合で変更することを特徴とする。
【0015】また、同様の目的で、請求項6に記載の発
明は、演奏情報を所定のテンポスピードで記録し又は再
生する自動演奏装置において、テンポスピードの変更を
指示するテンポ操作子と、該テンポ操作子が操作された
場合の変位を検出する変位検出手段と、前記テンポ操作
子が所定時間以上操作されている場合に操作続行中であ
ることを検出する操作続行検出手段と、該操作続行検出
手段により操作続行中であることが検出されている間
は、テンポスピードに応じた時間間隔でテンポ変更タイ
ミングを発生するタイミング発生手段と、該タイミング
発生手段で発生された各テンポ変更タイミングにおい
て、前記変位検出手段で検出されたテンポ操作子の変位
に応じて現在のテンポスピードを所定の割合で変更する
変更手段、とを有することを特徴とする。
明は、演奏情報を所定のテンポスピードで記録し又は再
生する自動演奏装置において、テンポスピードの変更を
指示するテンポ操作子と、該テンポ操作子が操作された
場合の変位を検出する変位検出手段と、前記テンポ操作
子が所定時間以上操作されている場合に操作続行中であ
ることを検出する操作続行検出手段と、該操作続行検出
手段により操作続行中であることが検出されている間
は、テンポスピードに応じた時間間隔でテンポ変更タイ
ミングを発生するタイミング発生手段と、該タイミング
発生手段で発生された各テンポ変更タイミングにおい
て、前記変位検出手段で検出されたテンポ操作子の変位
に応じて現在のテンポスピードを所定の割合で変更する
変更手段、とを有することを特徴とする。
【0016】また、同様の目的で、請求項7に記載の発
明は、前記タイミング発生手段を、テンポスピードに比
例して発生間隔が短く又は長くなるテンポ変更タイミン
グを発生するように構成したことを特徴とする。
明は、前記タイミング発生手段を、テンポスピードに比
例して発生間隔が短く又は長くなるテンポ変更タイミン
グを発生するように構成したことを特徴とする。
【0017】更に、同様の目的で、請求項8に記載の発
明は、前記テンポ操作子は特定の非操作位置を有し、該
非操作位置に対して正側及び負側の双方向に多段階の変
位量を出力し、前記変更手段は、各テンポ変更タイミン
グにおいて、前記変位検出手段で検出されたテンポ操作
子の変位量に応じて現在のテンポスピードを変更するよ
うに構成したことを特徴とする。
明は、前記テンポ操作子は特定の非操作位置を有し、該
非操作位置に対して正側及び負側の双方向に多段階の変
位量を出力し、前記変更手段は、各テンポ変更タイミン
グにおいて、前記変位検出手段で検出されたテンポ操作
子の変位量に応じて現在のテンポスピードを変更するよ
うに構成したことを特徴とする。
【0018】
【作用】請求項1に記載の発明においては、演奏情報を
所定のテンポスピードで記録し又は再生する自動演奏装
置において、テンポ操作子が操作されるとその変位が変
位検出手段で検出される。変更手段は、この変位検出手
段で検出された変位に応じて現在のテンポスピードを所
定の割合で変更する。
所定のテンポスピードで記録し又は再生する自動演奏装
置において、テンポ操作子が操作されるとその変位が変
位検出手段で検出される。変更手段は、この変位検出手
段で検出された変位に応じて現在のテンポスピードを所
定の割合で変更する。
【0019】上記変更手段は、例えば下式に示す演算を
行うことにより新テンポスピード値を算出する。 新テンポスピード値=現テンポスピード値×(1.00±M)・・・(2) ここで、Mは予め定められる定数であり、例えば0≦M
≦1.00の値を用いることができる。
行うことにより新テンポスピード値を算出する。 新テンポスピード値=現テンポスピード値×(1.00±M)・・・(2) ここで、Mは予め定められる定数であり、例えば0≦M
≦1.00の値を用いることができる。
【0020】請求項2に記載の発明においては、テンポ
操作子として正側と負側との双方向に操作可能な操作子
が採用されている。テンポ操作子が操作されると正又は
負の変位が変位検出手段で検出される。変更手段は、こ
の検出された正又は負の変位に応じて現在のテンポスピ
ードを所定の割合で増加し又は減少する。
操作子として正側と負側との双方向に操作可能な操作子
が採用されている。テンポ操作子が操作されると正又は
負の変位が変位検出手段で検出される。変更手段は、こ
の検出された正又は負の変位に応じて現在のテンポスピ
ードを所定の割合で増加し又は減少する。
【0021】より具体的には、正の変位が検出された場
合は、上記(2)式の「±M」として「+M」が用いら
れ、負の変位が検出された場合は、上記(2)式のMと
して「−M」が用いられる。これにより、テンポ操作子
の操作に応じて、現テンポスピードを所定の割合で増加
又は減少の双方向に変化させることができるものとなっ
ている。
合は、上記(2)式の「±M」として「+M」が用いら
れ、負の変位が検出された場合は、上記(2)式のMと
して「−M」が用いられる。これにより、テンポ操作子
の操作に応じて、現テンポスピードを所定の割合で増加
又は減少の双方向に変化させることができるものとなっ
ている。
【0022】請求項3に記載の発明においては、変更手
段は、変位検出手段でテンポ操作子の変位が検出される
度に現テンポスピード値を、上記(2)式で示されるよ
うな関数に従って変更する処理を繰り返す。これによ
り、テンポスピードは指数関数的に増減される。かかる
指数関数的なテンポスピードの変化は人の感覚に沿った
ものであり、テンポ変化に不自然さがなくなり操作性に
優れたものとなっている。
段は、変位検出手段でテンポ操作子の変位が検出される
度に現テンポスピード値を、上記(2)式で示されるよ
うな関数に従って変更する処理を繰り返す。これによ
り、テンポスピードは指数関数的に増減される。かかる
指数関数的なテンポスピードの変化は人の感覚に沿った
ものであり、テンポ変化に不自然さがなくなり操作性に
優れたものとなっている。
【0023】なお、上記(2)式の演算により生じた小
数点以下の端数は、切上げ、切り捨て又は四捨五入等し
て新テンポスピード値を求めることができる。また、上
記(2)式の演算により生じた小数点以下の端数を、切
上げ、切り捨て又は四捨五入して得られる整数部分のみ
をテンポスピード値として採用し、小数点以下を含む演
算結果は次の演算のために残しておくように構成するこ
ともできる。
数点以下の端数は、切上げ、切り捨て又は四捨五入等し
て新テンポスピード値を求めることができる。また、上
記(2)式の演算により生じた小数点以下の端数を、切
上げ、切り捨て又は四捨五入して得られる整数部分のみ
をテンポスピード値として採用し、小数点以下を含む演
算結果は次の演算のために残しておくように構成するこ
ともできる。
【0024】上記(2)式におけるMの値としては、例
えば「0.02」程度の値が好ましい。M=0.02と
した場合、テンポスピードは、テンポ操作子が押下され
る度に以下のように変化する。なお、この例はテンポス
ピードの可変範囲の一部につき、上記(2)式に基づき
小数点以下を四捨五入して求めたものである。 No. テンポ No. テンポ No. テンポ No. テンポ No. テンポ No. テンポ 1:180 21:148 31:120 41:100 51:80 61:67 2:176 22:145 32:118 42: 98 52:78 62:66 3:172 23:142 33:116 43: 96 53:76 63:65 4:169 24:139 34:114 44: 94 54:74 64:64 5:166 25:136 35:112 45: 92 55:73 65:63 6:163 26:133 36:110 46: 90 56:72 66:62 7:160 27:130 37:108 47: 88 57:71 67:61 8:157 28:127 38:106 48: 86 58:70 68:60 9:154 29:124 39:104 49: 84 59:69 69:59 10:151 30:122 40:102 50: 82 60:68 70:58
えば「0.02」程度の値が好ましい。M=0.02と
した場合、テンポスピードは、テンポ操作子が押下され
る度に以下のように変化する。なお、この例はテンポス
ピードの可変範囲の一部につき、上記(2)式に基づき
小数点以下を四捨五入して求めたものである。 No. テンポ No. テンポ No. テンポ No. テンポ No. テンポ No. テンポ 1:180 21:148 31:120 41:100 51:80 61:67 2:176 22:145 32:118 42: 98 52:78 62:66 3:172 23:142 33:116 43: 96 53:76 63:65 4:169 24:139 34:114 44: 94 54:74 64:64 5:166 25:136 35:112 45: 92 55:73 65:63 6:163 26:133 36:110 46: 90 56:72 66:62 7:160 27:130 37:108 47: 88 57:71 67:61 8:157 28:127 38:106 48: 86 58:70 68:60 9:154 29:124 39:104 49: 84 59:69 69:59 10:151 30:122 40:102 50: 82 60:68 70:58
【0025】このように、現テンポスピードに所定の係
数「(1.00±M)」を乗じることにより新テンポス
ピードを算出されるので、現テンポスピードが大きけれ
ばテンポ操作子の1回の操作で変更されるテンポスピー
ドの割合は大きくなり、逆に、現テンポスピードが小さ
ければその割合は小さくなる。従って、現テンポスピー
ドがテンポ操作子を操作すべき回数に与える影響は小さ
くなり、目標テンポスピードに素早く近づけることがで
きる。
数「(1.00±M)」を乗じることにより新テンポス
ピードを算出されるので、現テンポスピードが大きけれ
ばテンポ操作子の1回の操作で変更されるテンポスピー
ドの割合は大きくなり、逆に、現テンポスピードが小さ
ければその割合は小さくなる。従って、現テンポスピー
ドがテンポ操作子を操作すべき回数に与える影響は小さ
くなり、目標テンポスピードに素早く近づけることがで
きる。
【0026】従来の技術の欄で示した例と比較すれば、
テンポ160をテンポ120に落とす(3/4にする)
場合は、パネル操作子の操作回数は24回となり、テン
ポ80をテンポ60に落とす(3/4にする)場合は、
パネル操作子の操作回数は17回となる。このように、
従来のテンポスピード制御装置では、パネル操作子の操
作回数に20回もの差があったが、本発明によれば、7
回の差で済む。
テンポ160をテンポ120に落とす(3/4にする)
場合は、パネル操作子の操作回数は24回となり、テン
ポ80をテンポ60に落とす(3/4にする)場合は、
パネル操作子の操作回数は17回となる。このように、
従来のテンポスピード制御装置では、パネル操作子の操
作回数に20回もの差があったが、本発明によれば、7
回の差で済む。
【0027】なお、新テンポスピード値は、上記(2)
式等を用いた関数演算によらずに、予め記憶手段に現テ
ンポスピード値と新テンポスピード値とを対応させたテ
ーブルを格納しておき、このテーブルを参照して求める
ように構成することもできる。この構成によれば、関数
に表せないような複雑なテンポスピードの変化を実現す
ることができる。要は、現テンポスピードを加味して新
テンポスピード値を求めることができるような構成であ
れば良い。
式等を用いた関数演算によらずに、予め記憶手段に現テ
ンポスピード値と新テンポスピード値とを対応させたテ
ーブルを格納しておき、このテーブルを参照して求める
ように構成することもできる。この構成によれば、関数
に表せないような複雑なテンポスピードの変化を実現す
ることができる。要は、現テンポスピードを加味して新
テンポスピード値を求めることができるような構成であ
れば良い。
【0028】また、請求項4に記載の発明においては、
テンポ操作子として特定の非操作位置を有し、該非操作
位置に対して正側及び負側の双方向に多段階の変位量を
出力し得るもの、例えばモジュレーションホイール等に
用いられる操作子を採用している。そして、このテンポ
操作子から出力される変位量に応じた値が上記(2)式
におけるMの値として用られている。この際、テンポ操
作子は、非操作位置に対して正側に操作された場合は正
の変位量(「+M」)、負側に操作された場合は負の変
位量(「−M」)を出力する。変更手段は、変位検出手
段で検出されたテンポ操作子の変位量に応じて、例えば
上記(2)式に従って現在のテンポスピードを変更す
る。
テンポ操作子として特定の非操作位置を有し、該非操作
位置に対して正側及び負側の双方向に多段階の変位量を
出力し得るもの、例えばモジュレーションホイール等に
用いられる操作子を採用している。そして、このテンポ
操作子から出力される変位量に応じた値が上記(2)式
におけるMの値として用られている。この際、テンポ操
作子は、非操作位置に対して正側に操作された場合は正
の変位量(「+M」)、負側に操作された場合は負の変
位量(「−M」)を出力する。変更手段は、変位検出手
段で検出されたテンポ操作子の変位量に応じて、例えば
上記(2)式に従って現在のテンポスピードを変更す
る。
【0029】かかる構成により、テンポ操作子の1回の
操作で現テンポスピードを大きく変化させることができ
る。例えば、テンポ操作子の操作により変位量として
「+0.10」なる値が出力されれば、テンポスピード
を10%上げることができる。同様に、変位量として
「−0.50」なる値が出力されたとすれば、テンポ操
作子の1回の操作でテンポスピードを半分にすることも
可能である。このように、本発明によれば、テンポ操作
子の操作量に応じて現テンポスピードを大きく変化させ
ることができ、迅速に目標テンポスピードに到達でき
る。
操作で現テンポスピードを大きく変化させることができ
る。例えば、テンポ操作子の操作により変位量として
「+0.10」なる値が出力されれば、テンポスピード
を10%上げることができる。同様に、変位量として
「−0.50」なる値が出力されたとすれば、テンポ操
作子の1回の操作でテンポスピードを半分にすることも
可能である。このように、本発明によれば、テンポ操作
子の操作量に応じて現テンポスピードを大きく変化させ
ることができ、迅速に目標テンポスピードに到達でき
る。
【0030】また、請求項5に記載の発明においては、
オートインクリメント機能が実現されている。即ち、テ
ンポ操作子が所定時間以上操作されることにより操作続
行中であることが検出されると、その操作続行中である
ことが検出されている間は、一定時間間隔で発生される
各テンポ変更タイミングにおいて、変位検出手段で検出
されたテンポ操作子の変位に応じて現在のテンポスピー
ドが所定の割合で変更される。
オートインクリメント機能が実現されている。即ち、テ
ンポ操作子が所定時間以上操作されることにより操作続
行中であることが検出されると、その操作続行中である
ことが検出されている間は、一定時間間隔で発生される
各テンポ変更タイミングにおいて、変位検出手段で検出
されたテンポ操作子の変位に応じて現在のテンポスピー
ドが所定の割合で変更される。
【0031】このように、テンポ操作子を操作し続ける
ことにより自動的にテンポスピードを増加又は減少させ
ることができるので、テンポ設定操作が簡単且つ迅速に
なるという利点がある。しかも、現テンポスピードが大
きければ一定時間毎に更新されるテンポスピードの割合
は大きくなり、逆に、現テンポスピードが小さければそ
の割合は小さくなる。従って、現テンポスピードが、テ
ンポ操作子を操作し続けている時間に与える影響は小さ
くなり、人の感覚に沿ったテンポスピードの変化で目標
テンポスピードに素早く近づけることができる。
ことにより自動的にテンポスピードを増加又は減少させ
ることができるので、テンポ設定操作が簡単且つ迅速に
なるという利点がある。しかも、現テンポスピードが大
きければ一定時間毎に更新されるテンポスピードの割合
は大きくなり、逆に、現テンポスピードが小さければそ
の割合は小さくなる。従って、現テンポスピードが、テ
ンポ操作子を操作し続けている時間に与える影響は小さ
くなり、人の感覚に沿ったテンポスピードの変化で目標
テンポスピードに素早く近づけることができる。
【0032】更に具体的に説明する。テンポ操作子とし
て、例えばホイールのような非操作位置に対して正側に
操作された場合は正の変位量(「+M」)、負側に操作
された場合は負の変位量(「−M」)を出力するものを
用いた場合について説明する。このテンポ操作子には、
その回転位置に対応して、例えば図2(B)に示される
ようなレートRが割り当てられている。そして、テンポ
操作子が操作されることにより選択されたレートRは、
上記(2)式のMの値として用いられる。このテンポ操
作子で所定のレートRが選択されてその状態が所定時間
(例えば0.5秒)が経過すると、以後は一定時間間
隔、例えば0.1秒毎に上記(2)式の演算が繰り返さ
れる。
て、例えばホイールのような非操作位置に対して正側に
操作された場合は正の変位量(「+M」)、負側に操作
された場合は負の変位量(「−M」)を出力するものを
用いた場合について説明する。このテンポ操作子には、
その回転位置に対応して、例えば図2(B)に示される
ようなレートRが割り当てられている。そして、テンポ
操作子が操作されることにより選択されたレートRは、
上記(2)式のMの値として用いられる。このテンポ操
作子で所定のレートRが選択されてその状態が所定時間
(例えば0.5秒)が経過すると、以後は一定時間間
隔、例えば0.1秒毎に上記(2)式の演算が繰り返さ
れる。
【0033】例えば、テンポ操作子によりレートRとし
て「0.10」が選択された場合は、テンポスピードが
2倍になるまでにn秒かかるとすると、下式が成り立
つ。 (1.01)n=2・・・(3) よって、 n=log2/log1.01 =0.3010/(0.4321×10-2)=69.6 即ち、6.96秒後にテンポスピードは2倍になる。
て「0.10」が選択された場合は、テンポスピードが
2倍になるまでにn秒かかるとすると、下式が成り立
つ。 (1.01)n=2・・・(3) よって、 n=log2/log1.01 =0.3010/(0.4321×10-2)=69.6 即ち、6.96秒後にテンポスピードは2倍になる。
【0034】同様に、テンポ操作子によりレートRとし
て「0.30」が選択された場合は、テンポスピードが
2倍になるまでにn秒かかるとすると、下式が成り立
つ。 (1.01)n=2・・・(4) よって、 n=log2/log1.03 =0.3010/(0.1283×10-1)=23.4 即ち、2.34秒後にテンポスピードは2倍になる。
て「0.30」が選択された場合は、テンポスピードが
2倍になるまでにn秒かかるとすると、下式が成り立
つ。 (1.01)n=2・・・(4) よって、 n=log2/log1.03 =0.3010/(0.1283×10-1)=23.4 即ち、2.34秒後にテンポスピードは2倍になる。
【0035】このように、テンポ操作子の操作量に応じ
て任意の時間をかけてテンポスピードを変更することが
できる。例えば、1小節でテンポスピードを半分にした
り、4小節ぐらいかけてテンポスピードを2倍にすると
いうような操作が可能である。なお、上記請求項1〜請
求項5に記載の発明においては、テンポスピードの更新
は±1刻みに行われない場合があり、かかる場合は所望
のテンポスピードに一致させることができない事態が発
生する。このようなケースに対応するために、テンポス
ピードを±1刻みで変更するテンポ操作子を別途設ける
か、又は特定のモードに設定した場合に上記テンポ操作
子が±1刻みで動作するように制御する構成を付加すれ
ば、より操作性に優れたテンポスピード制御装置を提供
することができる。
て任意の時間をかけてテンポスピードを変更することが
できる。例えば、1小節でテンポスピードを半分にした
り、4小節ぐらいかけてテンポスピードを2倍にすると
いうような操作が可能である。なお、上記請求項1〜請
求項5に記載の発明においては、テンポスピードの更新
は±1刻みに行われない場合があり、かかる場合は所望
のテンポスピードに一致させることができない事態が発
生する。このようなケースに対応するために、テンポス
ピードを±1刻みで変更するテンポ操作子を別途設ける
か、又は特定のモードに設定した場合に上記テンポ操作
子が±1刻みで動作するように制御する構成を付加すれ
ば、より操作性に優れたテンポスピード制御装置を提供
することができる。
【0036】また、請求項6に記載の発明においては、
演奏情報を所定のテンポスピードで記録し又は再生する
自動演奏装置において、テンポ操作子が操作された場合
の変位を変位検出手段で検出し、テンポ操作子が所定時
間以上継続して操作されている間にテンポスピードに応
じた時間間隔で発生される各テンポ変更タイミングにお
いて、上記変位検出手段で検出されたテンポ操作子の変
位に応じて現在のテンポスピードが変更される。
演奏情報を所定のテンポスピードで記録し又は再生する
自動演奏装置において、テンポ操作子が操作された場合
の変位を変位検出手段で検出し、テンポ操作子が所定時
間以上継続して操作されている間にテンポスピードに応
じた時間間隔で発生される各テンポ変更タイミングにお
いて、上記変位検出手段で検出されたテンポ操作子の変
位に応じて現在のテンポスピードが変更される。
【0037】例えば、テンポ操作子が所定時間(例えば
0.5秒)以上押下され続けると、テンポ変更タイミン
グがその時点で設定されているテンポスピードに応じた
時間間隔で発生される。そして、各テンポ変更タイミン
グにおいては、上記変位検出手段で検出されたテンポ操
作子の変位に応じて現テンポスピードが自動的に変更さ
れる。この変更は、例えば上述した(1)式の演算によ
り実現することができる。この場合、テンポ操作子とし
て正側と負側との双方向に変位可能な操作子を用いれ
ば、±Mの値を得ることができ、現テンポスピードを増
加又は減少させることができる。
0.5秒)以上押下され続けると、テンポ変更タイミン
グがその時点で設定されているテンポスピードに応じた
時間間隔で発生される。そして、各テンポ変更タイミン
グにおいては、上記変位検出手段で検出されたテンポ操
作子の変位に応じて現テンポスピードが自動的に変更さ
れる。この変更は、例えば上述した(1)式の演算によ
り実現することができる。この場合、テンポ操作子とし
て正側と負側との双方向に変位可能な操作子を用いれ
ば、±Mの値を得ることができ、現テンポスピードを増
加又は減少させることができる。
【0038】このように、テンポ操作子を操作し続ける
ことにより自動的にテンポスピードを増加又は減少させ
ることができるので、テンポ設定操作が簡単になるとい
う利点がある。しかも、テンポスピードを変更するタイ
ミングはその時点で設定されているテンポスピードに応
じて決定されるので、現テンポスピードが大きければテ
ンポ変更タイミングの発生間隔が密になり、逆に、現テ
ンポスピードが小さければテンポ変更タイミングの発生
間隔が粗になる。従って、現テンポスピードが、テンポ
変更に要する時間に与える影響は小さくなる。
ことにより自動的にテンポスピードを増加又は減少させ
ることができるので、テンポ設定操作が簡単になるとい
う利点がある。しかも、テンポスピードを変更するタイ
ミングはその時点で設定されているテンポスピードに応
じて決定されるので、現テンポスピードが大きければテ
ンポ変更タイミングの発生間隔が密になり、逆に、現テ
ンポスピードが小さければテンポ変更タイミングの発生
間隔が粗になる。従って、現テンポスピードが、テンポ
変更に要する時間に与える影響は小さくなる。
【0039】また、請求項7に記載の発明においては、
テンポスピードに比例してテンポ変更タイミングの発生
間隔が短く又は長くなるように制御される。これによ
り、現テンポスピードの如何に拘わらず略一定時間で目
標テンポスピードに近づけることができる。
テンポスピードに比例してテンポ変更タイミングの発生
間隔が短く又は長くなるように制御される。これによ
り、現テンポスピードの如何に拘わらず略一定時間で目
標テンポスピードに近づけることができる。
【0040】更に、請求項8に記載の発明においては、
テンポ操作子として特定の非操作位置を有し、該非操作
位置に対して正側及び負側の双方向に多段階の変位量を
出力し得るもの、例えばモジュレーションホイール等に
用いられる操作子を採用している。そして、このテンポ
操作子から出力される変位量に応じた値が上記(1)式
におけるMの値として用られている。この際、テンポ操
作子は、非操作位置に対して正側に操作された場合は正
の変位量(「+M」)、負側に操作された場合は負の変
位量(「−M」)を出力する。変更手段は、変位検出手
段で検出されたテンポ操作子の変位量に応じて、例えば
上記(1)式に従って現在のテンポスピードを変更す
る。
テンポ操作子として特定の非操作位置を有し、該非操作
位置に対して正側及び負側の双方向に多段階の変位量を
出力し得るもの、例えばモジュレーションホイール等に
用いられる操作子を採用している。そして、このテンポ
操作子から出力される変位量に応じた値が上記(1)式
におけるMの値として用られている。この際、テンポ操
作子は、非操作位置に対して正側に操作された場合は正
の変位量(「+M」)、負側に操作された場合は負の変
位量(「−M」)を出力する。変更手段は、変位検出手
段で検出されたテンポ操作子の変位量に応じて、例えば
上記(1)式に従って現在のテンポスピードを変更す
る。
【0041】かかる構成により、上記(1)式による1
回の演算で変更されるテンポスピード量を任意に設定す
ることができ、目標テンポスピードに到達する時間を任
意に調整することができる。
回の演算で変更されるテンポスピード量を任意に設定す
ることができ、目標テンポスピードに到達する時間を任
意に調整することができる。
【0042】
【実施例】以下、本発明の自動演奏装置のテンポスピー
ド制御装置の実施例につき、図面を参照しながら詳細に
説明する。
ド制御装置の実施例につき、図面を参照しながら詳細に
説明する。
【0043】(実施例1)図1は、本発明の実施例1の
テンポスピード制御装置が適用された自動演奏装置の構
成を示すブロック図である。本テンポスピード制御装置
が適用された自動演奏装置は、中央処理装置(以下、
「CPU」という。)10、リードオンリメモリ(以
下、「ROM」という。)11、ランダムアクセスメモ
リ(以下、「RAM」という。)12、操作パネル1
3、楽音発生器14、タイマA16、タイマB20、M
IDIコントローラ17及びFDコントローラ18を有
し、これら各要素間はシステムバス30で相互に接続さ
れている。システムバス30は、例えばアドレス線、デ
ータ線及び制御信号線等で成り、上記各要素間で各種デ
ータを送受するために使用される。
テンポスピード制御装置が適用された自動演奏装置の構
成を示すブロック図である。本テンポスピード制御装置
が適用された自動演奏装置は、中央処理装置(以下、
「CPU」という。)10、リードオンリメモリ(以
下、「ROM」という。)11、ランダムアクセスメモ
リ(以下、「RAM」という。)12、操作パネル1
3、楽音発生器14、タイマA16、タイマB20、M
IDIコントローラ17及びFDコントローラ18を有
し、これら各要素間はシステムバス30で相互に接続さ
れている。システムバス30は、例えばアドレス線、デ
ータ線及び制御信号線等で成り、上記各要素間で各種デ
ータを送受するために使用される。
【0044】CPU10は、変更手段、操作続行検出手
段に対応する。このCPU10は、ROM11に格納さ
れている制御プログラムに従って、本テンポスピード制
御装置が適用された電子楽器の全体を制御する。このC
PU10には、3つの割込信号入力端子INT1、IN
T2及びINT3が設けられている。割込信号入力端子
INT1にはMIDIコントローラ17から、割込信号
入力端子INT2にはタイマA16から、割込信号入力
端子INT3にはタイマB20からそれぞれ割込信号が
供給される。このCPU10の動作の詳細については後
述する。
段に対応する。このCPU10は、ROM11に格納さ
れている制御プログラムに従って、本テンポスピード制
御装置が適用された電子楽器の全体を制御する。このC
PU10には、3つの割込信号入力端子INT1、IN
T2及びINT3が設けられている。割込信号入力端子
INT1にはMIDIコントローラ17から、割込信号
入力端子INT2にはタイマA16から、割込信号入力
端子INT3にはタイマB20からそれぞれ割込信号が
供給される。このCPU10の動作の詳細については後
述する。
【0045】ROM11には、上述したCPU10を動
作させるための制御プログラム、CPU10が各種処理
に用いる種々の固定データ等が記憶されている。また、
このROM11には、例えば図15に示した変換テーブ
ルが格納されている(変換テーブルの詳細は後述す
る。)このROM11の内容はCPU10により読み出
される。即ち、CPU10は、ROM11から制御プロ
グラム(命令)を読み出して解釈・実行することにより
各種機能を発揮すると共に、所定の固定データを読み出
して各種処理に使用する。
作させるための制御プログラム、CPU10が各種処理
に用いる種々の固定データ等が記憶されている。また、
このROM11には、例えば図15に示した変換テーブ
ルが格納されている(変換テーブルの詳細は後述す
る。)このROM11の内容はCPU10により読み出
される。即ち、CPU10は、ROM11から制御プロ
グラム(命令)を読み出して解釈・実行することにより
各種機能を発揮すると共に、所定の固定データを読み出
して各種処理に使用する。
【0046】RAM12は、CPU10が使用する種々
のデータを一時記憶する。このRAM12には、例えば
バッファ、レジスタ、カウンタ、フラグ等の各種領域が
定義されている。本実施例で使用する具体的なバッフ
ァ、レジスタ、カウンタ、フラグ等については、以下に
おいて出現する都度説明するが、ここでは、「受信バッ
ファ」及び「小節レジスタと拍レジスタ」について説明
しておく。
のデータを一時記憶する。このRAM12には、例えば
バッファ、レジスタ、カウンタ、フラグ等の各種領域が
定義されている。本実施例で使用する具体的なバッフ
ァ、レジスタ、カウンタ、フラグ等については、以下に
おいて出現する都度説明するが、ここでは、「受信バッ
ファ」及び「小節レジスタと拍レジスタ」について説明
しておく。
【0047】受信バッファ 受信バッファは、後述するMIDIコントローラ17か
ら受信したMIDIデータを一時記憶するために使用さ
れる。この受信バッファは、例えば図14(A)に示さ
れるように、RAM12に定義されたカウンタCTR、
ポインタPTR及び記憶エリアとで構成され、CPU1
0の制御によりFIFO(ファーストイン−ファースト
アウト)メモリとして動作するようになっている。記憶
エリアは、例えば256個のエントリを有し、各エント
リにはMIDIデータが順次記憶される。
ら受信したMIDIデータを一時記憶するために使用さ
れる。この受信バッファは、例えば図14(A)に示さ
れるように、RAM12に定義されたカウンタCTR、
ポインタPTR及び記憶エリアとで構成され、CPU1
0の制御によりFIFO(ファーストイン−ファースト
アウト)メモリとして動作するようになっている。記憶
エリアは、例えば256個のエントリを有し、各エント
リにはMIDIデータが順次記憶される。
【0048】カウンタCTRは受信したMIDIデータ
を書き込むべき記憶エリアの位置を指定する。このカウ
ンタCTRは、常に最後に書き込まれたMIDIデータ
の次のアドレスを指示するように制御される。このカウ
ンタCTRの初期値は「0」であり、MIDIデータが
書き込まれる度にインクリメントされ、その結果が最大
値TOPを越えた場合は最小値BTMに循環する。
を書き込むべき記憶エリアの位置を指定する。このカウ
ンタCTRは、常に最後に書き込まれたMIDIデータ
の次のアドレスを指示するように制御される。このカウ
ンタCTRの初期値は「0」であり、MIDIデータが
書き込まれる度にインクリメントされ、その結果が最大
値TOPを越えた場合は最小値BTMに循環する。
【0049】ポインタPTRは記憶エリア中の、読み出
すべきMIDIデータの位置を指示する。このポインタ
PTRは、常に最後に読み出されたMIDIデータの次
のアドレス、つまり次に読み出すべきMIDIデータの
アドレスを指示するように制御される。このポインタP
TRの初期値は「0」であり、MIDIデータが読み込
まれる度にインクリメントされ、その結果が最大値TO
Pを越えた場合は最小値BTMに循環する。
すべきMIDIデータの位置を指示する。このポインタ
PTRは、常に最後に読み出されたMIDIデータの次
のアドレス、つまり次に読み出すべきMIDIデータの
アドレスを指示するように制御される。このポインタP
TRの初期値は「0」であり、MIDIデータが読み込
まれる度にインクリメントされ、その結果が最大値TO
Pを越えた場合は最小値BTMに循環する。
【0050】この受信バッファは、カウンタCTRの内
容とポインタPTRの内容とが一致するときはエンプテ
ィであると判断される。なお、カウンタCTRをインク
リメントした結果、カウンタCTRの内容がポインタP
TRの内容に一致することとなる場合は受信バッファは
満杯であるのでMIDIデータの受信を抑止するように
制御される。カウンタCTRの内容とポインタPTRの
内容とが一致しない場合は、受信バッファにMIDIデ
ータが存在する旨が判断される。
容とポインタPTRの内容とが一致するときはエンプテ
ィであると判断される。なお、カウンタCTRをインク
リメントした結果、カウンタCTRの内容がポインタP
TRの内容に一致することとなる場合は受信バッファは
満杯であるのでMIDIデータの受信を抑止するように
制御される。カウンタCTRの内容とポインタPTRの
内容とが一致しない場合は、受信バッファにMIDIデ
ータが存在する旨が判断される。
【0051】この受信バッファへのMIDIデータの書
込みは後述するMIDI−IN割込処理ルーチンにて行
われ、受信バッファからのMIDIデータの読み出しは
後述するMIDI−IN処理ルーチンで行われる。な
お、本実施例では受信バッファをRAM12内に形成
し、MIDIデータの書込み/読み出しの制御はCPU
10で行うように構成したが、これらの代わりに周知の
FIFOメモリ素子を用いて構成することもできる。
込みは後述するMIDI−IN割込処理ルーチンにて行
われ、受信バッファからのMIDIデータの読み出しは
後述するMIDI−IN処理ルーチンで行われる。な
お、本実施例では受信バッファをRAM12内に形成
し、MIDIデータの書込み/読み出しの制御はCPU
10で行うように構成したが、これらの代わりに周知の
FIFOメモリ素子を用いて構成することもできる。
【0052】小節レジスタと拍レジスタ 小節レジスタBRRは、小節の進行を計数するレジスタ
である。この小節レジスタBRRは、10進数4桁分に
相当する計数が可能である。また、拍レジスタBTRは
小節内の拍の進行を計数するレジスタである。この拍レ
ジスタBTRは、1ステップタイム毎にカウントアップ
される。本実施例では、1拍を48ステップの分解能と
する。従って、拍レジスタBTRは、4拍子の場合は4
拍、つまり192ステップを計数したらゼロにラウンド
する。この際、小節レジスタBRRはインクリメントさ
れるように制御される。
である。この小節レジスタBRRは、10進数4桁分に
相当する計数が可能である。また、拍レジスタBTRは
小節内の拍の進行を計数するレジスタである。この拍レ
ジスタBTRは、1ステップタイム毎にカウントアップ
される。本実施例では、1拍を48ステップの分解能と
する。従って、拍レジスタBTRは、4拍子の場合は4
拍、つまり192ステップを計数したらゼロにラウンド
する。この際、小節レジスタBRRはインクリメントさ
れるように制御される。
【0053】このRAM12には、上述したようなバッ
ファ、レジスタ等が定義されている他、自動演奏データ
(以下、「パターンデータ」という。)が格納されてい
る。パターンデータは、例えば2〜16小節程度の演奏
パターンを発生させるために使用される。このパターン
データは、例えば図14(B)に示されるような、ステ
ップタイム、ノートナンバ(キーコード)、ゲートタイ
ム及びベロシティといった4バイトのデータの集合で構
成されている。個々のパターンデータは、1つの音符に
対応している。ここに、ステップタイムは発音を開始す
る時刻を指定するものであり小節の先頭からのステップ
数で規定される。ノートナンバは音高を規定するために
使用される。ゲートタイムは発音時間を規定するために
使用される。ベロシティは発音の強さ(音量)を規定す
るために使用される。
ファ、レジスタ等が定義されている他、自動演奏データ
(以下、「パターンデータ」という。)が格納されてい
る。パターンデータは、例えば2〜16小節程度の演奏
パターンを発生させるために使用される。このパターン
データは、例えば図14(B)に示されるような、ステ
ップタイム、ノートナンバ(キーコード)、ゲートタイ
ム及びベロシティといった4バイトのデータの集合で構
成されている。個々のパターンデータは、1つの音符に
対応している。ここに、ステップタイムは発音を開始す
る時刻を指定するものであり小節の先頭からのステップ
数で規定される。ノートナンバは音高を規定するために
使用される。ゲートタイムは発音時間を規定するために
使用される。ベロシティは発音の強さ(音量)を規定す
るために使用される。
【0054】図1の説明に戻る。操作パネル13には、
本テンポスピード制御装置と操作者とがコミュニケーシ
ョンするための各種スイッチ、表示器等が設けられてい
る。この操作パネル13の詳細については後述する。
本テンポスピード制御装置と操作者とがコミュニケーシ
ョンするための各種スイッチ、表示器等が設けられてい
る。この操作パネル13の詳細については後述する。
【0055】楽音発生器14は、CPU10からシステ
ムバス30を介して送られてくるデータに基づいて楽音
信号を生成するものである。この楽音発生器14で生成
された楽音信号は、スピーカシステム15に送られる。
スピーカシステム15は、例えば増幅器、スピーカ等で
構成されており、楽音発生器14から送られてくる楽音
信号を音響信号に変換して放音する周知のものである。
ムバス30を介して送られてくるデータに基づいて楽音
信号を生成するものである。この楽音発生器14で生成
された楽音信号は、スピーカシステム15に送られる。
スピーカシステム15は、例えば増幅器、スピーカ等で
構成されており、楽音発生器14から送られてくる楽音
信号を音響信号に変換して放音する周知のものである。
【0056】タイマA16は、テンポに対応した時間間
隔で割込信号を発生する。この割込信号の発生間隔は、
CPU10からタイマA16にセットされるデータ(プ
リセット値)により決定される。このタイマA16で発
生された割込信号はCPU10の割込信号入力端子IN
T2に供給される。本実施例では、4分音符を1/48
の分解能(精度)で制御するものとしているので、4分
音符当たりに48回の割込信号が発生されることにな
る。
隔で割込信号を発生する。この割込信号の発生間隔は、
CPU10からタイマA16にセットされるデータ(プ
リセット値)により決定される。このタイマA16で発
生された割込信号はCPU10の割込信号入力端子IN
T2に供給される。本実施例では、4分音符を1/48
の分解能(精度)で制御するものとしているので、4分
音符当たりに48回の割込信号が発生されることにな
る。
【0057】タイマB20は、一定時間間隔(本実施例
では0.1秒間隔とする。)で割込信号を発生する。こ
の割込信号の発生間隔は、例えばハードウエア的に固定
されている。なお、割込信号の発生間隔は本実施例では
0.1秒して説明するが、これに限定されるものでなく
任意の値を用いることができる。このタイマB20で発
生された割込信号はCPU10の割込信号入力端子IN
T3に供給される。
では0.1秒間隔とする。)で割込信号を発生する。こ
の割込信号の発生間隔は、例えばハードウエア的に固定
されている。なお、割込信号の発生間隔は本実施例では
0.1秒して説明するが、これに限定されるものでなく
任意の値を用いることができる。このタイマB20で発
生された割込信号はCPU10の割込信号入力端子IN
T3に供給される。
【0058】MIDIコントローラ17は、外部装置と
本テンポスピード制御装置が適用された自動演奏装置と
の間のMIDIデータの転送を制御する。このMIDI
コントローラ17の外部側に接続される外部装置として
は、例えばMIDIデータを処理することのできる電子
楽器、音源モジュール、コンピュータ、シーケンサ等が
挙げられる。MIDIコントローラ17は、外部装置か
らシリアルに送られてくるMIDIデータを受信し、こ
れが例えば1バイト分になった時点で割込信号を発生す
る。この割込信号は、CPU10の割込信号入力端子I
NT1に供給される。
本テンポスピード制御装置が適用された自動演奏装置と
の間のMIDIデータの転送を制御する。このMIDI
コントローラ17の外部側に接続される外部装置として
は、例えばMIDIデータを処理することのできる電子
楽器、音源モジュール、コンピュータ、シーケンサ等が
挙げられる。MIDIコントローラ17は、外部装置か
らシリアルに送られてくるMIDIデータを受信し、こ
れが例えば1バイト分になった時点で割込信号を発生す
る。この割込信号は、CPU10の割込信号入力端子I
NT1に供給される。
【0059】FDコントローラ18は、フロッピーディ
スクドライブ装置19を制御するものである。フロッピ
ーディスクドライブ装置19に装着されるフロッピーデ
ィスクには、例えば、パターンデータが記憶されてい
る。そして、操作パネル13に設けられた所定のスイッ
チ(図示しない)を操作することにより、フロッピーデ
ィスクに記録されている上記パターンデータがFDコン
トローラ18を介してRAM12の所定領域にロードさ
れる。
スクドライブ装置19を制御するものである。フロッピ
ーディスクドライブ装置19に装着されるフロッピーデ
ィスクには、例えば、パターンデータが記憶されてい
る。そして、操作パネル13に設けられた所定のスイッ
チ(図示しない)を操作することにより、フロッピーデ
ィスクに記録されている上記パターンデータがFDコン
トローラ18を介してRAM12の所定領域にロードさ
れる。
【0060】図2(A)は本テンポスピード制御装置が
適用された自動演奏装置の操作パネル13の構成例を示
す図である。小節/拍表示器130は、例えば5桁の7
セグメントLED表示器で構成されている。この小節/
拍表示器130の上位4桁には、現在自動演奏されてい
る「小節」、つまり小節レジスタBRRの内容が表示さ
れ、下位1桁には現在自動演奏されている「拍」、つま
り拍レジスタBTRの内容に対応する拍(具体的には、
4拍子の場合は、拍レジスタBTRの内容を48で割っ
て得られる商に1を加えた値)が表示される。この小節
/拍表示器130の表示内容は、自動演奏の進行に伴っ
て順次更新される。
適用された自動演奏装置の操作パネル13の構成例を示
す図である。小節/拍表示器130は、例えば5桁の7
セグメントLED表示器で構成されている。この小節/
拍表示器130の上位4桁には、現在自動演奏されてい
る「小節」、つまり小節レジスタBRRの内容が表示さ
れ、下位1桁には現在自動演奏されている「拍」、つま
り拍レジスタBTRの内容に対応する拍(具体的には、
4拍子の場合は、拍レジスタBTRの内容を48で割っ
て得られる商に1を加えた値)が表示される。この小節
/拍表示器130の表示内容は、自動演奏の進行に伴っ
て順次更新される。
【0061】コード表示器131は、例えばLCD表示
器で構成されている。このコード表示器131には、後
述するメインルーチンのMIDI−IN処理(ステップ
S15)の中で行われるコード検出処理で検出されたコ
ード(コードルート及びコードタイプ)が表示される。
本実施例では、MIDIチャンネル1(MIDI−CH
1)により送られてきたMIDIデータをロワー鍵から
のデータとみなし、これに対してコード検出が行われる
ものとする。従って、このコード表示器131には、M
IDIチャンネル1から送られてきたMIDIデータに
基づいて検出されたコードが表示される。なお、コード
検出は、MIDIチャンネル1から送られてきた演奏デ
ータに限定されず、他の任意のMIDIチャンネル、或
いは複数のMIDIチャンネルから送られてきた演奏デ
ータを対象とするように構成しても良い。
器で構成されている。このコード表示器131には、後
述するメインルーチンのMIDI−IN処理(ステップ
S15)の中で行われるコード検出処理で検出されたコ
ード(コードルート及びコードタイプ)が表示される。
本実施例では、MIDIチャンネル1(MIDI−CH
1)により送られてきたMIDIデータをロワー鍵から
のデータとみなし、これに対してコード検出が行われる
ものとする。従って、このコード表示器131には、M
IDIチャンネル1から送られてきたMIDIデータに
基づいて検出されたコードが表示される。なお、コード
検出は、MIDIチャンネル1から送られてきた演奏デ
ータに限定されず、他の任意のMIDIチャンネル、或
いは複数のMIDIチャンネルから送られてきた演奏デ
ータを対象とするように構成しても良い。
【0062】テンポスピード表示器132は、例えば3
桁の7セグメントLED表示器で構成されている。この
テンポスピード表示器132には、現在設定されている
テンポスピードが表示される。現在設定されているテン
ポスピード値はRAM12に設けられたテンポレジスタ
に格納されている。
桁の7セグメントLED表示器で構成されている。この
テンポスピード表示器132には、現在設定されている
テンポスピードが表示される。現在設定されているテン
ポスピード値はRAM12に設けられたテンポレジスタ
に格納されている。
【0063】なお、小節/拍表示器130及びテンポス
ピード表示器132は、7セグメントのLED表示器で
構成したが、LCD表示器、CRT表示器、その他の種
々の表示器で構成することができる。同様に、コード表
示器131もLCD表示器に限定されず、CRT表示
器、その他の種々の表示器で構成することができる。
ピード表示器132は、7セグメントのLED表示器で
構成したが、LCD表示器、CRT表示器、その他の種
々の表示器で構成することができる。同様に、コード表
示器131もLCD表示器に限定されず、CRT表示
器、その他の種々の表示器で構成することができる。
【0064】アップダウンスイッチ133はテンポ操作
子に対応するものであり、テンポを設定・変更するため
に使用される。このアップダウンスイッチ133は、ア
ップスイッチ133Aとダウンスイッチ133Bとで構
成されている。そして、アップスイッチ133Aが押さ
れる度に現テンポスピードが増加され、ダウンスイッチ
133Bが押される度に現テンポスピードが減少され
る。そして、このアップダウンスイッチ133でテンポ
スピードが変更されるとテンポレジスタの内容が変更さ
れると共に、変更後のテンポスピードがテンポスピード
表示器132に表示される。
子に対応するものであり、テンポを設定・変更するため
に使用される。このアップダウンスイッチ133は、ア
ップスイッチ133Aとダウンスイッチ133Bとで構
成されている。そして、アップスイッチ133Aが押さ
れる度に現テンポスピードが増加され、ダウンスイッチ
133Bが押される度に現テンポスピードが減少され
る。そして、このアップダウンスイッチ133でテンポ
スピードが変更されるとテンポレジスタの内容が変更さ
れると共に、変更後のテンポスピードがテンポスピード
表示器132に表示される。
【0065】ここで、アップダウンスイッチ133の押
下に伴うテンポスピードの変化について説明する。アッ
プスイッチ133A又はダウンスイッチ133Bの何れ
かが押され、そのイベントが検出されると、上述した
(2)式により新テンポスピード値が算出される。
(2)式におけるMとしては、上述したように、0≦M
≦1.00の範囲の定数を用いることができる。アップ
スイッチ133Aが押された場合はMとして「+M」が
採用され、ダウンスイッチ133Bが押された場合は
「−M」が採用される。一般に、Mとして「0.02」
程度の値を採用することができる。
下に伴うテンポスピードの変化について説明する。アッ
プスイッチ133A又はダウンスイッチ133Bの何れ
かが押され、そのイベントが検出されると、上述した
(2)式により新テンポスピード値が算出される。
(2)式におけるMとしては、上述したように、0≦M
≦1.00の範囲の定数を用いることができる。アップ
スイッチ133Aが押された場合はMとして「+M」が
採用され、ダウンスイッチ133Bが押された場合は
「−M」が採用される。一般に、Mとして「0.02」
程度の値を採用することができる。
【0066】なお、新テンポスピード値は、上述したよ
うな関数演算によらずに、予め記憶手段に現テンポスピ
ード値と新テンポスピード値との対応を記憶したテーブ
ルを格納しておき、このテーブルを参照して求めるよう
に構成することもできる。この場合、テーブルはROM
11に形成することができる。この構成によれば、関数
に表せないような複雑なテンポスピードの変化を実現す
ることができる。
うな関数演算によらずに、予め記憶手段に現テンポスピ
ード値と新テンポスピード値との対応を記憶したテーブ
ルを格納しておき、このテーブルを参照して求めるよう
に構成することもできる。この場合、テーブルはROM
11に形成することができる。この構成によれば、関数
に表せないような複雑なテンポスピードの変化を実現す
ることができる。
【0067】また、このアップダウンスイッチ133
は、オートインクリメント機能を実現するためにも使用
される。即ち、アップスイッチ133Aが所定時間(例
えば0.5秒)以上押下され続けるとテンポスピード値
が自動的にインクリメントされる。同様に、ダウンスイ
ッチ133Bが所定時間(例えば0.5秒)以上押下さ
れ続けるとテンポスピード値が自動的にデクリメントさ
れる。これらテンポスピード値のインクリメント又はデ
クリメントは、例えば0.1秒間隔でコールされる後述
するタイマB割込処理ルーチンで上記(2)式の演算が
行われることにより実現されている。
は、オートインクリメント機能を実現するためにも使用
される。即ち、アップスイッチ133Aが所定時間(例
えば0.5秒)以上押下され続けるとテンポスピード値
が自動的にインクリメントされる。同様に、ダウンスイ
ッチ133Bが所定時間(例えば0.5秒)以上押下さ
れ続けるとテンポスピード値が自動的にデクリメントさ
れる。これらテンポスピード値のインクリメント又はデ
クリメントは、例えば0.1秒間隔でコールされる後述
するタイマB割込処理ルーチンで上記(2)式の演算が
行われることにより実現されている。
【0068】ホイール155はテンポ操作子に対応する
ものであり、テンポを設定するために使用される。この
ホイール155としては、例えば、図2(B)に示すよ
うな通常の電子楽器でモジュレーションホイールとして
使用されている操作子と同じものを使用することができ
る。即ち、ホイール155は、演奏者の操作に応じて上
下方向に回転可能であり、操作されない状態では例えば
バネの作用により定位置(センター位置)に戻るように
構成されており、回転位置に応じて正又は負の多段階に
わたる値を出力する装置である。即ち、ホイール155
は、回転位置に応じた電圧を出力するポテンショメータ
ーで構成され、この電圧は図示しないA/D変換器でデ
ジタルデータに変換されてホイールデータとしてCPU
10に供給される。
ものであり、テンポを設定するために使用される。この
ホイール155としては、例えば、図2(B)に示すよ
うな通常の電子楽器でモジュレーションホイールとして
使用されている操作子と同じものを使用することができ
る。即ち、ホイール155は、演奏者の操作に応じて上
下方向に回転可能であり、操作されない状態では例えば
バネの作用により定位置(センター位置)に戻るように
構成されており、回転位置に応じて正又は負の多段階に
わたる値を出力する装置である。即ち、ホイール155
は、回転位置に応じた電圧を出力するポテンショメータ
ーで構成され、この電圧は図示しないA/D変換器でデ
ジタルデータに変換されてホイールデータとしてCPU
10に供給される。
【0069】ここで、ホイール155の操作に伴うテン
ポスピードの変化について説明する。このホイール15
5には、その回転位置に対応して、例えば図2(B)に
示されるようなレートRが割り当てられている。そし
て、ホイール155が操作されることにより選択された
レートRは、上記(2)式のMとして用いられる。この
ホイール155で所定のレートRが選択されると、上記
(2)式の演算が行われ、新テンポスピードに変更され
る。
ポスピードの変化について説明する。このホイール15
5には、その回転位置に対応して、例えば図2(B)に
示されるようなレートRが割り当てられている。そし
て、ホイール155が操作されることにより選択された
レートRは、上記(2)式のMとして用いられる。この
ホイール155で所定のレートRが選択されると、上記
(2)式の演算が行われ、新テンポスピードに変更され
る。
【0070】また、このホイール155は、オートイン
クリメント機能を実現するためにも使用される。即ち、
ホイール155が所定時間(例えば0.5秒)以上特定
位置に固定され続けるとテンポスピード値が自動的にイ
ンクリメント又はデクリメントされる。インクリメント
が行われるかデクリメントが行われるかは、ホイール1
55が何れの方向に回転されたかに従う。即ち、正のレ
ートRの位置に固定された場合はインクリメントが行わ
れ、負のレートRの位置に固定された場合はデクリメン
トが行われる。上記(2)式のMの値としては、このレ
ートRが使用される。上記テンポスピード値のインクリ
メント又はデクリメントは、例えば0.1秒間隔でコー
ルされる後述するタイマB割込処理ルーチンで上記
(2)式の演算が行われることにより実現されている。
クリメント機能を実現するためにも使用される。即ち、
ホイール155が所定時間(例えば0.5秒)以上特定
位置に固定され続けるとテンポスピード値が自動的にイ
ンクリメント又はデクリメントされる。インクリメント
が行われるかデクリメントが行われるかは、ホイール1
55が何れの方向に回転されたかに従う。即ち、正のレ
ートRの位置に固定された場合はインクリメントが行わ
れ、負のレートRの位置に固定された場合はデクリメン
トが行われる。上記(2)式のMの値としては、このレ
ートRが使用される。上記テンポスピード値のインクリ
メント又はデクリメントは、例えば0.1秒間隔でコー
ルされる後述するタイマB割込処理ルーチンで上記
(2)式の演算が行われることにより実現されている。
【0071】操作パネル13の説明に戻る。図2(A)
において、ストップスイッチ134は、自動演奏を停止
させるために使用される。即ち、自動演奏中にストップ
スイッチ134が押されると自動演奏は停止される。プ
レイ/ポーズスイッチ135は、自動演奏を開始させ又
は一時停止させるために使用される。自動演奏の停止中
又はポーズ(一時停止)状態にあるときに、このプレイ
/ポーズスイッチ135が押されるとLED表示器14
3が点灯されて自動演奏が開始又は再開され、自動演奏
中に押されるとLED表示器143が消灯されてポーズ
状態になる。
において、ストップスイッチ134は、自動演奏を停止
させるために使用される。即ち、自動演奏中にストップ
スイッチ134が押されると自動演奏は停止される。プ
レイ/ポーズスイッチ135は、自動演奏を開始させ又
は一時停止させるために使用される。自動演奏の停止中
又はポーズ(一時停止)状態にあるときに、このプレイ
/ポーズスイッチ135が押されるとLED表示器14
3が点灯されて自動演奏が開始又は再開され、自動演奏
中に押されるとLED表示器143が消灯されてポーズ
状態になる。
【0072】FFスイッチ136は、テンポスピードを
上げて再生するために使用される。即ち、自動演奏中に
FFスイッチ136が押されるとLED表示器144が
点灯されて高速再生が行われ、次に押されるとLED表
示器144が消灯されて元のテンポスピードに戻る。R
EWスイッチ137は、再生位置を戻すために使用され
る。即ち、このREWスイッチ137が押下されるとL
ED表示器145が点灯されて小節/拍数が減少(リワ
インド)する。このリワインド状態は小節/拍表示器1
30で確認することができる。リワインド状態で再度R
EWスイッチ137が押されるとLED表示器145が
消灯されて自動演奏の再生が再開される。
上げて再生するために使用される。即ち、自動演奏中に
FFスイッチ136が押されるとLED表示器144が
点灯されて高速再生が行われ、次に押されるとLED表
示器144が消灯されて元のテンポスピードに戻る。R
EWスイッチ137は、再生位置を戻すために使用され
る。即ち、このREWスイッチ137が押下されるとL
ED表示器145が点灯されて小節/拍数が減少(リワ
インド)する。このリワインド状態は小節/拍表示器1
30で確認することができる。リワインド状態で再度R
EWスイッチ137が押されるとLED表示器145が
消灯されて自動演奏の再生が再開される。
【0073】リピートスイッチ138は、曲を繰り返し
自動演奏させるために使用される。即ち、自動演奏を開
始させる前にこのリピートスイッチ138が押されると
LED表示器146が点灯され、曲の最後まで自動演奏
が行われると最初に戻って同じ曲の自動演奏が繰り返さ
れる。この状態で再度リピートスイッチ138が押され
るとLED表示器146が消灯されて自動演奏の繰り返
し再生状態は解除される。なお、このリピートスイッチ
138は、自動演奏中に所定の操作を行うことにより、
曲の特定区間を繰り返し再生するためにも使用されるが
ここでは説明は省略する。
自動演奏させるために使用される。即ち、自動演奏を開
始させる前にこのリピートスイッチ138が押されると
LED表示器146が点灯され、曲の最後まで自動演奏
が行われると最初に戻って同じ曲の自動演奏が繰り返さ
れる。この状態で再度リピートスイッチ138が押され
るとLED表示器146が消灯されて自動演奏の繰り返
し再生状態は解除される。なお、このリピートスイッチ
138は、自動演奏中に所定の操作を行うことにより、
曲の特定区間を繰り返し再生するためにも使用されるが
ここでは説明は省略する。
【0074】パート1スイッチ139は、リズムパート
の発音を指示するために使用される。このパート1スイ
ッチ139が押されるとLED表示器147が点灯され
てリズムパートが発音され、次に押されるとLED表示
器147が消灯されてリズムパートの発音は停止され
る。同様に、パート2スイッチ140は、ベースパート
の発音を指示するために使用される。このパート2スイ
ッチ140が押されるとLED表示器148が点灯され
てベースパートが発音され、次に押されるとLED表示
器148が消灯されてベースパートの発音は停止され
る。
の発音を指示するために使用される。このパート1スイ
ッチ139が押されるとLED表示器147が点灯され
てリズムパートが発音され、次に押されるとLED表示
器147が消灯されてリズムパートの発音は停止され
る。同様に、パート2スイッチ140は、ベースパート
の発音を指示するために使用される。このパート2スイ
ッチ140が押されるとLED表示器148が点灯され
てベースパートが発音され、次に押されるとLED表示
器148が消灯されてベースパートの発音は停止され
る。
【0075】同様に、パート3スイッチ141は、アカ
ンパニメントパート(例えばコードパート等)の発音を
指示するために使用される。このパート3スイッチ14
1が押されるとLED表示器149が点灯されてアカン
パニメントパートが発音され、次に押されるとLED表
示器149が消灯されてアカンパニメントパートの発音
が停止される。同様に、パート4スイッチ142は、メ
ロディパートを指示するために使用される。このパート
4スイッチ142が押されるとLED表示器150が点
灯されてメロディパートが発音され、次に押されるとL
ED表示器150が消灯されてメロディパートの発音が
停止される。
ンパニメントパート(例えばコードパート等)の発音を
指示するために使用される。このパート3スイッチ14
1が押されるとLED表示器149が点灯されてアカン
パニメントパートが発音され、次に押されるとLED表
示器149が消灯されてアカンパニメントパートの発音
が停止される。同様に、パート4スイッチ142は、メ
ロディパートを指示するために使用される。このパート
4スイッチ142が押されるとLED表示器150が点
灯されてメロディパートが発音され、次に押されるとL
ED表示器150が消灯されてメロディパートの発音が
停止される。
【0076】上記各パートのうち、リズムパート、ベー
スパート及びアカンパニメントパートは1〜数小節程度
のパターンデータの繰り返し実行により発音されるもの
であり、メロディパートは、1曲分の全パターンデータ
が順次読み出されることにより発音されるものである。
スパート及びアカンパニメントパートは1〜数小節程度
のパターンデータの繰り返し実行により発音されるもの
であり、メロディパートは、1曲分の全パターンデータ
が順次読み出されることにより発音されるものである。
【0077】操作パネル13には、上記以外に複数の音
色の中から所望の音色を選択する音色選択操作子、音量
を調整する音量操作子、フロッピーディスクからのデー
タをRAM12にロードするための操作子等が設けられ
ているが、本発明とは直接関係しないので図示及び説明
は省略する。
色の中から所望の音色を選択する音色選択操作子、音量
を調整する音量操作子、フロッピーディスクからのデー
タをRAM12にロードするための操作子等が設けられ
ているが、本発明とは直接関係しないので図示及び説明
は省略する。
【0078】上記のように構成される操作パネル13の
各スイッチ等の設定状態は次のようにしてCPU10に
読み込まれる。即ち、CPU10は操作パネル13に対
してスキャン指令を送出する。操作パネル13は、この
スキャン指令に応答して各スイッチのオン/オフを示す
信号及びホイール155の現在値を示す信号をCPU1
0に送る。CPU10は、受け取った信号からパネルデ
ータ(各スイッチのオン/オフを1ビットに対応させた
スイッチデータとホイール155の設定値を示すホイー
ルデータとで成る。)を生成する。このパネルデータ
は、CPU10の制御下でRAM12に格納され、パネ
ルイベントの有無を判断するために使用される(詳細は
後述)。
各スイッチ等の設定状態は次のようにしてCPU10に
読み込まれる。即ち、CPU10は操作パネル13に対
してスキャン指令を送出する。操作パネル13は、この
スキャン指令に応答して各スイッチのオン/オフを示す
信号及びホイール155の現在値を示す信号をCPU1
0に送る。CPU10は、受け取った信号からパネルデ
ータ(各スイッチのオン/オフを1ビットに対応させた
スイッチデータとホイール155の設定値を示すホイー
ルデータとで成る。)を生成する。このパネルデータ
は、CPU10の制御下でRAM12に格納され、パネ
ルイベントの有無を判断するために使用される(詳細は
後述)。
【0079】次に、本発明のテンポスピード制御装置が
適用された自動演奏装置の実施例1の動作につき、図3
〜図9に示したフローチャートを参照しながら詳細に説
明する。
適用された自動演奏装置の実施例1の動作につき、図3
〜図9に示したフローチャートを参照しながら詳細に説
明する。
【0080】(1)メイン処理(図3) 図3は、本発明のテンポスピード制御装置が適用された
自動演奏装置の実施例のメインルーチンを示すフローチ
ャートであり、電源投入により起動される。電源が投入
されると、先ず、初期化処理が行われる(ステップS1
0)。この初期化処理では、CPU10の内部状態が初
期状態に設定されると共に、RAM12に定義されてい
るレジスタ、カウンタ或いはフラグ等に初期値が設定さ
れる。
自動演奏装置の実施例のメインルーチンを示すフローチ
ャートであり、電源投入により起動される。電源が投入
されると、先ず、初期化処理が行われる(ステップS1
0)。この初期化処理では、CPU10の内部状態が初
期状態に設定されると共に、RAM12に定義されてい
るレジスタ、カウンタ或いはフラグ等に初期値が設定さ
れる。
【0081】この初期化処理が終了すると、次いでパネ
ルスイッチスキャン処理が行われる(ステップS1
1)。即ち、CPU10は操作パネル13に対してスキ
ャン指令を送出する。これにより、操作パネル13は、
既に説明したようにパネルデータを生成し、CPU10
に送る。CPU10は、このパネルデータ(以下、「新
パネルデータ」という。)をRAM12の所定領域に格
納する。次いで、前回のパネルスイッチスキャン処理で
読み込んで既にRAM12に記憶されているパネルデー
タ(以下、「旧パネルデータ」という。)と、上記新パ
ネルデータとを比較して相違するビットをオンにしたパ
ネルイベントマップを作成する。
ルスイッチスキャン処理が行われる(ステップS1
1)。即ち、CPU10は操作パネル13に対してスキ
ャン指令を送出する。これにより、操作パネル13は、
既に説明したようにパネルデータを生成し、CPU10
に送る。CPU10は、このパネルデータ(以下、「新
パネルデータ」という。)をRAM12の所定領域に格
納する。次いで、前回のパネルスイッチスキャン処理で
読み込んで既にRAM12に記憶されているパネルデー
タ(以下、「旧パネルデータ」という。)と、上記新パ
ネルデータとを比較して相違するビットをオンにしたパ
ネルイベントマップを作成する。
【0082】次いで、イベントの有無が調べられる(ス
テップS12)。これは、上記パネルイベントマップを
参照することにより行われる。即ち、パネルイベントマ
ップ中にオンになっているビットが1つ以上存在するか
どうかが調べられ、1つも存在しなければイベントはな
かったものと、1つ以上存在すればイベントがあったも
のとそれぞれ判断される。このステップS12でイベン
トがあることが判断されるとパネル制御処理が行われ
(ステップS13)、そうでなければパネル制御処理は
スキップされる。このパネル制御処理の詳細については
後述する。
テップS12)。これは、上記パネルイベントマップを
参照することにより行われる。即ち、パネルイベントマ
ップ中にオンになっているビットが1つ以上存在するか
どうかが調べられ、1つも存在しなければイベントはな
かったものと、1つ以上存在すればイベントがあったも
のとそれぞれ判断される。このステップS12でイベン
トがあることが判断されるとパネル制御処理が行われ
(ステップS13)、そうでなければパネル制御処理は
スキップされる。このパネル制御処理の詳細については
後述する。
【0083】次いで、受信バッファに受信データ(MI
DIデータ)があるかどうかが調べられる(ステップS
14)。これは、上述したように、カウンタCTRの内
容とポインタPTRの内容とが一致するかどうかを調べ
ることにより行われる。ここで受信バッファに受信デー
タがあることが判断されるとMIDI−IN処理が行わ
れ(ステップS15)、そうでなければMIDI−IN
処理はスキップされる。
DIデータ)があるかどうかが調べられる(ステップS
14)。これは、上述したように、カウンタCTRの内
容とポインタPTRの内容とが一致するかどうかを調べ
ることにより行われる。ここで受信バッファに受信デー
タがあることが判断されるとMIDI−IN処理が行わ
れ(ステップS15)、そうでなければMIDI−IN
処理はスキップされる。
【0084】MIDI−IN処理では、MIDIコント
ローラ17から入力されて受信バッファに格納されてい
るMIDIデータに対する処理が行われる。即ち、MI
DI−IN処理では、先ず、受信バッファから1つのM
IDIメッセージが取り出され、それに含まれるMID
Iチャンネル番号が「1」であるかどうか、つまりロワ
ー鍵のデータであるかどうかが調べられる。そして、チ
ャンネル番号が「1」でないことが判断されるとMID
Iデータに従って通常の発音処理が行われる。
ローラ17から入力されて受信バッファに格納されてい
るMIDIデータに対する処理が行われる。即ち、MI
DI−IN処理では、先ず、受信バッファから1つのM
IDIメッセージが取り出され、それに含まれるMID
Iチャンネル番号が「1」であるかどうか、つまりロワ
ー鍵のデータであるかどうかが調べられる。そして、チ
ャンネル番号が「1」でないことが判断されるとMID
Iデータに従って通常の発音処理が行われる。
【0085】一方、チャンネル番号が「1」、つまりロ
ワー鍵のデータである旨が判断されるとコード検出処理
が行われ、コードタイプ及びコードルートが検出され
る。ここで検出されたコードタイプ及びコードルートは
コード表示器131に送られて表示される。そして、コ
ード検出処理により検出されたコードタイプ及びコード
ルートに従って、RAM12から読み出されたパターン
データが展開され、コード構成音の楽音データが作成さ
れる。この楽音データは楽音発生器14に送られる。楽
音発生器14では楽音信号が生成され、この楽音信号が
スピーカシステム15に供給されることにより自動演奏
音の発生が開始される。
ワー鍵のデータである旨が判断されるとコード検出処理
が行われ、コードタイプ及びコードルートが検出され
る。ここで検出されたコードタイプ及びコードルートは
コード表示器131に送られて表示される。そして、コ
ード検出処理により検出されたコードタイプ及びコード
ルートに従って、RAM12から読み出されたパターン
データが展開され、コード構成音の楽音データが作成さ
れる。この楽音データは楽音発生器14に送られる。楽
音発生器14では楽音信号が生成され、この楽音信号が
スピーカシステム15に供給されることにより自動演奏
音の発生が開始される。
【0086】次いで、パート1〜4読出処理が実行され
る(ステップS16)。この処理は、各パートのパター
ンデータをRAM12から読み出して楽音を再生する処
理である。このパート1〜4読出処理の概要は以下の通
りである。即ち、先ずパート1〜4のパターンデータが
順次RAM12から読み出される。そして、パターンデ
ータに含まれるステップタイムが調べられ、当該パター
ンデータは発音タイミングに至っているかどうかが調べ
られる。そして、発音タイミングに至っていることが判
断されると、そのパターンデータが上記で検出されてい
るコードに従って展開され、コード構成音の楽音データ
が生成される。この楽音データは、上記と同様に楽音発
生器14に送られる。楽音発生器14では楽音信号が生
成され、この楽音信号がスピーカシステム15に供給さ
れることにより自動演奏音の発生が開始される。
る(ステップS16)。この処理は、各パートのパター
ンデータをRAM12から読み出して楽音を再生する処
理である。このパート1〜4読出処理の概要は以下の通
りである。即ち、先ずパート1〜4のパターンデータが
順次RAM12から読み出される。そして、パターンデ
ータに含まれるステップタイムが調べられ、当該パター
ンデータは発音タイミングに至っているかどうかが調べ
られる。そして、発音タイミングに至っていることが判
断されると、そのパターンデータが上記で検出されてい
るコードに従って展開され、コード構成音の楽音データ
が生成される。この楽音データは、上記と同様に楽音発
生器14に送られる。楽音発生器14では楽音信号が生
成され、この楽音信号がスピーカシステム15に供給さ
れることにより自動演奏音の発生が開始される。
【0087】次いで、「その他の処理」が行われる(ス
テップS17)。この「その他の処理」では、フロッピ
ーディスクの制御、音色選択処理、ボリューム設定処理
等が行われるが、本発明とは直接関係しないので説明は
省略する。その後、ステップS11に戻り、以下同様の
処理が繰り返される。上記のステップS11〜S17の
繰り返し実行により、操作パネル13の操作やMIDI
データの受信に伴う各種処理が実行され、自動演奏装置
としての各種機能が実現される。
テップS17)。この「その他の処理」では、フロッピ
ーディスクの制御、音色選択処理、ボリューム設定処理
等が行われるが、本発明とは直接関係しないので説明は
省略する。その後、ステップS11に戻り、以下同様の
処理が繰り返される。上記のステップS11〜S17の
繰り返し実行により、操作パネル13の操作やMIDI
データの受信に伴う各種処理が実行され、自動演奏装置
としての各種機能が実現される。
【0088】(2)MIDI−IN割込処理(図4) このMIDI−IN割込処理は、メインルーチンの処理
に割り込んで実行される。このMIDI−IN割込処理
では、MIDIコントローラ17で受信されたMIDI
データが受信バッファに格納される。MIDIコントロ
ーラ17は、外部装置からシリアルに送られてくるMI
DIデータが1バイト分になると割込信号を発生する。
この割込信号はCPU10の割込信号入力端子INT1
に供給される。これにより、CPU10は割込モードに
入り、本MIDI−IN割込処理ルーチンがコールされ
る。
に割り込んで実行される。このMIDI−IN割込処理
では、MIDIコントローラ17で受信されたMIDI
データが受信バッファに格納される。MIDIコントロ
ーラ17は、外部装置からシリアルに送られてくるMI
DIデータが1バイト分になると割込信号を発生する。
この割込信号はCPU10の割込信号入力端子INT1
に供給される。これにより、CPU10は割込モードに
入り、本MIDI−IN割込処理ルーチンがコールされ
る。
【0089】MIDI−IN割込処理では、先ず、MI
DIコントローラ17からMIDIデータが読み込ま
れ、これが受信バッファのカウンタCTRで示される位
置に書き込まれる(ステップS20)。次いで、カウン
タCTRがインクリメントされ(ステップS21)、そ
の結果が記憶エリアの最大値TOPを越えたかどうかが
調べられる(ステップS22)。そして、最大値TOP
を越えていないことが判断されるとこのMIDI−IN
処理ルーチンからリターンしてメインルーチンの割り込
まれた位置に戻る。一方、上記ステップS22で最大値
TOPを越えたことが判断されると、カウンタCTRの
内容が最小値BTMに書き換えられ(ステップS2
3)、その後、このMIDI−IN処理ルーチンからリ
ターンしてメインルーチンの割り込まれた位置に戻る。
これにより、最大値TOPから最小値BTMへラウンド
する循環バッファの機能が実現されている。
DIコントローラ17からMIDIデータが読み込ま
れ、これが受信バッファのカウンタCTRで示される位
置に書き込まれる(ステップS20)。次いで、カウン
タCTRがインクリメントされ(ステップS21)、そ
の結果が記憶エリアの最大値TOPを越えたかどうかが
調べられる(ステップS22)。そして、最大値TOP
を越えていないことが判断されるとこのMIDI−IN
処理ルーチンからリターンしてメインルーチンの割り込
まれた位置に戻る。一方、上記ステップS22で最大値
TOPを越えたことが判断されると、カウンタCTRの
内容が最小値BTMに書き換えられ(ステップS2
3)、その後、このMIDI−IN処理ルーチンからリ
ターンしてメインルーチンの割り込まれた位置に戻る。
これにより、最大値TOPから最小値BTMへラウンド
する循環バッファの機能が実現されている。
【0090】なお、図中には示されていないが、カウン
タCTRをインクリメントした結果がポインタPTRの
値を越えることとなる場合は受信バッファは満杯である
ので、MIDIデータの取り込み処理は抑止される。
タCTRをインクリメントした結果がポインタPTRの
値を越えることとなる場合は受信バッファは満杯である
ので、MIDIデータの取り込み処理は抑止される。
【0091】(3)パネル制御処理(図5) 次に、メインルーチンのステップS13で行われるパネ
ル制御処理の詳細について、図5のフローチャートを参
照しながら説明する。
ル制御処理の詳細について、図5のフローチャートを参
照しながら説明する。
【0092】このパネル制御処理ルーチンは、メインル
ーチンでパネルスイッチ等のイベントがあったことが判
断された場合にコールされる。パネル制御処理では、先
ずアップダウンスイッチ133のイベントがあるかどう
かが調べられる(ステップS30)。これは、パネルイ
ベントマップ中のアップスイッチ133A又はダウンス
イッチ133Bに対応するビットが「1」であるかどう
かを調べることにより行われる。ここでアップスイッチ
133A又はダウンスイッチ133Bのイベントがある
ことが判断されるとテンポスピード処理1が行われ(ス
テップS31)、そうでなければテンポスピード処理1
はスキップされる。このテンポスピード処理1の詳細に
ついては後述する。このステップS30の処理は変位検
出手段に対応するものである。
ーチンでパネルスイッチ等のイベントがあったことが判
断された場合にコールされる。パネル制御処理では、先
ずアップダウンスイッチ133のイベントがあるかどう
かが調べられる(ステップS30)。これは、パネルイ
ベントマップ中のアップスイッチ133A又はダウンス
イッチ133Bに対応するビットが「1」であるかどう
かを調べることにより行われる。ここでアップスイッチ
133A又はダウンスイッチ133Bのイベントがある
ことが判断されるとテンポスピード処理1が行われ(ス
テップS31)、そうでなければテンポスピード処理1
はスキップされる。このテンポスピード処理1の詳細に
ついては後述する。このステップS30の処理は変位検
出手段に対応するものである。
【0093】次いで、ホイール155のイベントがある
かどうかが調べられる(ステップS32)。即ち、新旧
両パネルデータ中のホイールデータが比較され、これら
が相違する場合にホイール155のイベントがあったこ
とが判断される。このステップS32でホイール155
のイベントがあったことが判断されるとテンポスピード
処理2が行われ(ステップS33)、そうでなければテ
ンポスピード処理2はスキップされる。このテンポスピ
ード処理2の詳細につても後述する。このステップS3
2の処理は変位検出手段に対応するものである。
かどうかが調べられる(ステップS32)。即ち、新旧
両パネルデータ中のホイールデータが比較され、これら
が相違する場合にホイール155のイベントがあったこ
とが判断される。このステップS32でホイール155
のイベントがあったことが判断されるとテンポスピード
処理2が行われ(ステップS33)、そうでなければテ
ンポスピード処理2はスキップされる。このテンポスピ
ード処理2の詳細につても後述する。このステップS3
2の処理は変位検出手段に対応するものである。
【0094】次いで、ストップスイッチ134のイベン
トがあるかどうかが調べられる(ステップS34)。こ
れは、パネルイベントマップ中のストップスイッチ13
4に対応するビットが「1」であるかどうかを調べるこ
とにより行われる。ここでストップスイッチ134のイ
ベントがあることが判断されるとストップ処理が行われ
(ステップS35)、そうでなければストップ処理はス
キップされる。ストップ処理では、RAM12に定義さ
れている自動演奏フラグが「0」にクリアされる。これ
により、後述するタイマA割込処理(図8)において小
節レジスタBRR及び拍レジスタBTRの更新が抑止さ
れて自動演奏の進行が停止され、各パートの発音が停止
される。
トがあるかどうかが調べられる(ステップS34)。こ
れは、パネルイベントマップ中のストップスイッチ13
4に対応するビットが「1」であるかどうかを調べるこ
とにより行われる。ここでストップスイッチ134のイ
ベントがあることが判断されるとストップ処理が行われ
(ステップS35)、そうでなければストップ処理はス
キップされる。ストップ処理では、RAM12に定義さ
れている自動演奏フラグが「0」にクリアされる。これ
により、後述するタイマA割込処理(図8)において小
節レジスタBRR及び拍レジスタBTRの更新が抑止さ
れて自動演奏の進行が停止され、各パートの発音が停止
される。
【0095】次いで、プレイ/ポーズスイッチ135の
イベントがあるかどうかが調べられる(ステップS3
6)。これは、パネルイベントマップ中のプレイ/ポー
ズスイッチ135に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでプレイ/ポー
ズスイッチ135のイベントがあることが判断されると
プレイ処理が行われ(ステップS37)、そうでなけれ
ばプレイ処理はスキップされる。プレイ処理では、上記
自動演奏フラグが「0」、つまり自動演奏停止中にプレ
イ/ポーズスイッチ135が押されたことが判断される
と自動演奏フラグが「1」にセットされると共に、LE
D表示器143が点灯される。これにより、後述するタ
イマA割込処理(図8)において小節レジスタBRR及
び拍レジスタBTRの更新が開始され、自動演奏が進行
される。逆に、自動演奏フラグが「1」、つまり自動演
奏中にプレイ/ポーズスイッチ135が押されたことが
判断されると自動演奏フラグが「0」にクリアされると
共に、LED表示器143が消灯される。これにより、
上記ストップスイッチ134が押された時と同様の処理
が行われて各パートの発音が停止される。
イベントがあるかどうかが調べられる(ステップS3
6)。これは、パネルイベントマップ中のプレイ/ポー
ズスイッチ135に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでプレイ/ポー
ズスイッチ135のイベントがあることが判断されると
プレイ処理が行われ(ステップS37)、そうでなけれ
ばプレイ処理はスキップされる。プレイ処理では、上記
自動演奏フラグが「0」、つまり自動演奏停止中にプレ
イ/ポーズスイッチ135が押されたことが判断される
と自動演奏フラグが「1」にセットされると共に、LE
D表示器143が点灯される。これにより、後述するタ
イマA割込処理(図8)において小節レジスタBRR及
び拍レジスタBTRの更新が開始され、自動演奏が進行
される。逆に、自動演奏フラグが「1」、つまり自動演
奏中にプレイ/ポーズスイッチ135が押されたことが
判断されると自動演奏フラグが「0」にクリアされると
共に、LED表示器143が消灯される。これにより、
上記ストップスイッチ134が押された時と同様の処理
が行われて各パートの発音が停止される。
【0096】次いで、FFスイッチ136のイベントが
あるかどうかが調べられる(ステップS38)。これ
は、パネルイベントマップ中のFFスイッチ136に対
応するビットが「1」であるかどうかを調べることによ
り行われる。ここでFFスイッチ136のイベントがあ
ることが判断されるとFF処理が行われ(ステップS3
9)、そうでなければFF処理はスキップされる。FF
処理では、RAM12に定義されたFFフラグが
「0」、つまり通常再生中にFFスイッチ136が押さ
れたことが判断されるとFFフラグが「1」にセットさ
れ、タイマA16に所定のデータがセットされると共
に、LED表示器144が点灯される。これにより、テ
ンポスピードが早くなって高速再生が行われる。逆に、
FFフラグが「1」、つまり高速再生中にFFスイッチ
136が押されたことが判断されるとFFフラグが
「0」にクリアされ、タイマA16に元のデータがリス
トアされると共に、LED表示器144が消灯される。
これにより、FFスイッチ136が押される前のテンポ
スピードに戻る。
あるかどうかが調べられる(ステップS38)。これ
は、パネルイベントマップ中のFFスイッチ136に対
応するビットが「1」であるかどうかを調べることによ
り行われる。ここでFFスイッチ136のイベントがあ
ることが判断されるとFF処理が行われ(ステップS3
9)、そうでなければFF処理はスキップされる。FF
処理では、RAM12に定義されたFFフラグが
「0」、つまり通常再生中にFFスイッチ136が押さ
れたことが判断されるとFFフラグが「1」にセットさ
れ、タイマA16に所定のデータがセットされると共
に、LED表示器144が点灯される。これにより、テ
ンポスピードが早くなって高速再生が行われる。逆に、
FFフラグが「1」、つまり高速再生中にFFスイッチ
136が押されたことが判断されるとFFフラグが
「0」にクリアされ、タイマA16に元のデータがリス
トアされると共に、LED表示器144が消灯される。
これにより、FFスイッチ136が押される前のテンポ
スピードに戻る。
【0097】次いで、REWスイッチ137のイベント
があるかどうかが調べられる(ステップS40)。これ
は、パネルイベントマップ中のREWスイッチ137に
対応するビットが「1」であるかどうかを調べることに
より行われる。ここでREWスイッチ137のイベント
があることが判断されるとREW処理が行われ(ステッ
プS41)、そうでなければREW処理はスキップされ
る。REW処理では、RAM12に定義されたREWフ
ラグが「0」、つまり通常再生中にREWスイッチ13
7が押されたことが判断されるとREWフラグが「1」
にセットされ、RAM12に定義された小節レジスタB
RR及び拍レジスタBTRが所定の速度でデクリメント
され、その結果が小節/拍表示器130に送られると共
に、LED表示器145が点灯される。これにより、小
節/拍表示器130の表示がデクリメントされながら自
動演奏のシーケンスが後退する。なお、このREW処理
中には発音は停止される。逆に、FFフラグが「1」、
つまり高速再生中にREWスイッチ137が押されたこ
とが判断されるとREWフラグが「0」にクリアされ、
LED表示器145が消灯される。これにより、減少さ
れた小節レジスタBRR及び拍レジスタBTRの位置か
ら自動演奏が再開される。
があるかどうかが調べられる(ステップS40)。これ
は、パネルイベントマップ中のREWスイッチ137に
対応するビットが「1」であるかどうかを調べることに
より行われる。ここでREWスイッチ137のイベント
があることが判断されるとREW処理が行われ(ステッ
プS41)、そうでなければREW処理はスキップされ
る。REW処理では、RAM12に定義されたREWフ
ラグが「0」、つまり通常再生中にREWスイッチ13
7が押されたことが判断されるとREWフラグが「1」
にセットされ、RAM12に定義された小節レジスタB
RR及び拍レジスタBTRが所定の速度でデクリメント
され、その結果が小節/拍表示器130に送られると共
に、LED表示器145が点灯される。これにより、小
節/拍表示器130の表示がデクリメントされながら自
動演奏のシーケンスが後退する。なお、このREW処理
中には発音は停止される。逆に、FFフラグが「1」、
つまり高速再生中にREWスイッチ137が押されたこ
とが判断されるとREWフラグが「0」にクリアされ、
LED表示器145が消灯される。これにより、減少さ
れた小節レジスタBRR及び拍レジスタBTRの位置か
ら自動演奏が再開される。
【0098】次いで、リピートスイッチ138のイベン
トがあるかどうかが調べられる(ステップS42)。こ
れは、パネルイベントマップ中のリピートスイッチ13
8に対応するビットが「1」であるかどうかを調べるこ
とにより行われる。ここでリピートスイッチ138のイ
ベントがあることが判断されるとリピート処理が行われ
(ステップS43)、そうでなければリピート処理はス
キップされる。リピート処理では、RAM12に定義さ
れたリピートフラグが「0」であればリピートフラグが
「1」にセットされると共に、LED表示器146が点
灯される。逆に、リピートフラグが「1」であればリピ
ートフラグが「0」にクリアされ、LED表示器145
が消灯される。これにより、詳細は図示されていない
が、1曲分のパターンデータの読み出しが終了した場合
に、リピートフラグが「1」であれば自動演奏のシーケ
ンスは曲の先頭に戻り、同じ自動演奏が繰り返し実行さ
れる。一方、リピートフラグが「0」であれば自動演奏
は停止される。
トがあるかどうかが調べられる(ステップS42)。こ
れは、パネルイベントマップ中のリピートスイッチ13
8に対応するビットが「1」であるかどうかを調べるこ
とにより行われる。ここでリピートスイッチ138のイ
ベントがあることが判断されるとリピート処理が行われ
(ステップS43)、そうでなければリピート処理はス
キップされる。リピート処理では、RAM12に定義さ
れたリピートフラグが「0」であればリピートフラグが
「1」にセットされると共に、LED表示器146が点
灯される。逆に、リピートフラグが「1」であればリピ
ートフラグが「0」にクリアされ、LED表示器145
が消灯される。これにより、詳細は図示されていない
が、1曲分のパターンデータの読み出しが終了した場合
に、リピートフラグが「1」であれば自動演奏のシーケ
ンスは曲の先頭に戻り、同じ自動演奏が繰り返し実行さ
れる。一方、リピートフラグが「0」であれば自動演奏
は停止される。
【0099】次いで、パートスイッチ139〜142の
イベントがあるかどうかが調べられる(ステップS4
4)。これは、パネルイベントマップ中のパートスイッ
チ139〜142に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでパートスイッ
チ139〜142のイベントがあることが判断されると
パート1〜4切換処理が行われ(ステップS45)、そ
うでなければパート1〜4切換処理はスキップされる。
イベントがあるかどうかが調べられる(ステップS4
4)。これは、パネルイベントマップ中のパートスイッ
チ139〜142に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでパートスイッ
チ139〜142のイベントがあることが判断されると
パート1〜4切換処理が行われ(ステップS45)、そ
うでなければパート1〜4切換処理はスキップされる。
【0100】上記パート1〜4切換処理は、パートスイ
ッチ139〜142が押された時に、当該パートの発音
を開始し又は停止する処理である。本実施例のテンポス
ピード制御装置が適用された自動演奏装置では、パート
1〜4のパターンデータは常に読み出されており、読み
出されたパターンデータに基づいて発音が行われるかど
うかは、パートスイッチ139〜142がオンにされて
いるかどうかによって決定される。
ッチ139〜142が押された時に、当該パートの発音
を開始し又は停止する処理である。本実施例のテンポス
ピード制御装置が適用された自動演奏装置では、パート
1〜4のパターンデータは常に読み出されており、読み
出されたパターンデータに基づいて発音が行われるかど
うかは、パートスイッチ139〜142がオンにされて
いるかどうかによって決定される。
【0101】従って、このパート1〜4切換処理では、
RAM12から読み出されているパターンデータに基づ
いて作成された楽音データを楽音発生器14に送るかど
うかを制御する処理が行われる。例えばパートスイッチ
139がオンにされると、その旨がRAM12中のフラ
グで記憶され、これにより、上述したパート1〜4読出
処理ルーチンではRAM12から読み出されたリズムパ
ートのパターンデータに基づいて作成された楽音データ
が楽音発生器14に送出されるように制御される。これ
により、リズムパートの楽音が発生される。一方、パー
トスイッチ139がオフにされると、その旨がRAM1
2中のフラグで記憶され、これにより、上述したパート
1〜4読出処理ルーチンではRAM12から読み出され
たリズムパートのパターンデータに基づいて作成された
楽音データは楽音発生器14に送出されないように制御
される。従って、リズムパートの楽音の発生が停止され
る。ベースパート、アカンパニメントパート及びメロデ
ィパートについても同様の処理が行われる。以上のパネ
ル制御処理が終了すると、このパネル制御処理ルーチン
からリターンしてメインルーチンに戻る。
RAM12から読み出されているパターンデータに基づ
いて作成された楽音データを楽音発生器14に送るかど
うかを制御する処理が行われる。例えばパートスイッチ
139がオンにされると、その旨がRAM12中のフラ
グで記憶され、これにより、上述したパート1〜4読出
処理ルーチンではRAM12から読み出されたリズムパ
ートのパターンデータに基づいて作成された楽音データ
が楽音発生器14に送出されるように制御される。これ
により、リズムパートの楽音が発生される。一方、パー
トスイッチ139がオフにされると、その旨がRAM1
2中のフラグで記憶され、これにより、上述したパート
1〜4読出処理ルーチンではRAM12から読み出され
たリズムパートのパターンデータに基づいて作成された
楽音データは楽音発生器14に送出されないように制御
される。従って、リズムパートの楽音の発生が停止され
る。ベースパート、アカンパニメントパート及びメロデ
ィパートについても同様の処理が行われる。以上のパネ
ル制御処理が終了すると、このパネル制御処理ルーチン
からリターンしてメインルーチンに戻る。
【0102】(4)テンポスピード処理1(図6) 次に、パネル制御処理ルーチンのステップS31で実行
されるテンポスピード処理1の詳細について、図6のフ
ローチャートを参照しながら説明する。このテンポスピ
ード処理1では、アップダウンスイッチ133の操作に
応じてテンポスピードを変更する処理が行われる。この
テンポスピード処理1は変更手段に対応するものであ
る。
されるテンポスピード処理1の詳細について、図6のフ
ローチャートを参照しながら説明する。このテンポスピ
ード処理1では、アップダウンスイッチ133の操作に
応じてテンポスピードを変更する処理が行われる。この
テンポスピード処理1は変更手段に対応するものであ
る。
【0103】テンポスピード処理1では、先ず、アップ
ダウンスイッチ133、つまりアップスイッチ133A
又はダウンスイッチ133Bの何れかのオンイベントが
あったかどうかが調べられる(イベント50)。これ
は、新パネルデータ中のアップスイッチ133A又はダ
ウンスイッチ133Bの何れかに対応するビットが
「1」にセットされているかどうかを調べることにより
行われる。ここでオンイベントがあったことが判断され
ると、TMPONフラグが「1」にセットされる(ステ
ップS51)。TMPONフラグはRAM12に定義さ
れるフラグであり、アップスイッチ133A又はダウン
スイッチ133Bの何れかがオンにされ続けているかど
うかを記憶するものである。このTMPONフラグは、
後述するタイマB割込処理ルーチンで参照され、オート
インクリメント機能を実現するために使用される(詳細
は後述する)。
ダウンスイッチ133、つまりアップスイッチ133A
又はダウンスイッチ133Bの何れかのオンイベントが
あったかどうかが調べられる(イベント50)。これ
は、新パネルデータ中のアップスイッチ133A又はダ
ウンスイッチ133Bの何れかに対応するビットが
「1」にセットされているかどうかを調べることにより
行われる。ここでオンイベントがあったことが判断され
ると、TMPONフラグが「1」にセットされる(ステ
ップS51)。TMPONフラグはRAM12に定義さ
れるフラグであり、アップスイッチ133A又はダウン
スイッチ133Bの何れかがオンにされ続けているかど
うかを記憶するものである。このTMPONフラグは、
後述するタイマB割込処理ルーチンで参照され、オート
インクリメント機能を実現するために使用される(詳細
は後述する)。
【0104】次いで、カウンタTMPTIMがゼロにク
リアされる(ステップS52)。このカウンタTMPT
IMはRAM12に定義されるカウンタである。このカ
ウンタTMPTIMは、後述するタイマB割込処理ルー
チンで更新され、オートインクリメント機能におけるテ
ンポスピード値を更新する時間間隔を計数するために使
用される(詳細は後述する)。
リアされる(ステップS52)。このカウンタTMPT
IMはRAM12に定義されるカウンタである。このカ
ウンタTMPTIMは、後述するタイマB割込処理ルー
チンで更新され、オートインクリメント機能におけるテ
ンポスピード値を更新する時間間隔を計数するために使
用される(詳細は後述する)。
【0105】次いで、上記ステップS50でオンイベン
トがあったスイッチはアップスイッチ133Aであるか
どうかが調べられ(ステップS53)、アップスイッチ
133Aのイベントであることが判断されるとレジスタ
TMPCNTに「+1」がセットされ(ステップS5
4)、そうでなければダウンスイッチ133Bのイベン
トであることが認識されてレジスタTMPCNTに「−
1」がセットされる(ステップS55)。ここで、レジ
スタTMPCNTはRAM12に定義されるレジスタで
あり、テンポスピード値を変更する際のレートRを指定
するために使用される。
トがあったスイッチはアップスイッチ133Aであるか
どうかが調べられ(ステップS53)、アップスイッチ
133Aのイベントであることが判断されるとレジスタ
TMPCNTに「+1」がセットされ(ステップS5
4)、そうでなければダウンスイッチ133Bのイベン
トであることが認識されてレジスタTMPCNTに「−
1」がセットされる(ステップS55)。ここで、レジ
スタTMPCNTはRAM12に定義されるレジスタで
あり、テンポスピード値を変更する際のレートRを指定
するために使用される。
【0106】次に、レジスタTMPCNTの内容に応じ
てレートRが作成される(ステップS56)。レジスタ
TMPCNTの内容とレートRとの対応は、例えば図1
5に示す形式で変換テーブルとしてROM11に格納さ
れている。即ち、レジスタTMPCNTの内容が「+
1」の場合はレートRとして「1.01」が作成され、
レジスタTMPCNTの内容が「−1」の場合はレート
Rとして「0.99」が作成される。このレートRは、
次のステップS57において、新テンポスピードを算出
するために使用される。
てレートRが作成される(ステップS56)。レジスタ
TMPCNTの内容とレートRとの対応は、例えば図1
5に示す形式で変換テーブルとしてROM11に格納さ
れている。即ち、レジスタTMPCNTの内容が「+
1」の場合はレートRとして「1.01」が作成され、
レジスタTMPCNTの内容が「−1」の場合はレート
Rとして「0.99」が作成される。このレートRは、
次のステップS57において、新テンポスピードを算出
するために使用される。
【0107】次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値にレートRが乗算され
て新テンポスピード値が算出される(ステップS5
7)。次いで、算出された新テンポスピード値がテンポ
リミッタを通されることにより、テンポスピード値が
「30」から「300」の範囲に入るように調整される
(ステップS58)。テンポリミッタは例えばCPU1
0の処理により構成することができ、上記乗算の結果が
「30」以下になったら「30」に、また「300」以
上になったら「300」にそれぞれ調整される。
納されている現テンポスピード値にレートRが乗算され
て新テンポスピード値が算出される(ステップS5
7)。次いで、算出された新テンポスピード値がテンポ
リミッタを通されることにより、テンポスピード値が
「30」から「300」の範囲に入るように調整される
(ステップS58)。テンポリミッタは例えばCPU1
0の処理により構成することができ、上記乗算の結果が
「30」以下になったら「30」に、また「300」以
上になったら「300」にそれぞれ調整される。
【0108】次いで、タイマA16のプリセット値が更
新される(ステップS59)。即ち、新テンポスピード
となるような時間間隔で割込信号を発生させるためのデ
ータがタイマA16にセットされる。これにより、以後
はタイマA16から新テンポスピードに対応した時間間
隔で割込信号が発生され、後述するタイマA割込処理に
おいて残存ゲートタイムが更新される。これにより、残
存ゲートタイムを更新する時間が新テンポスピードに応
じて行われることになり、新テンポスピードに応じた自
動演奏が行われることになる。
新される(ステップS59)。即ち、新テンポスピード
となるような時間間隔で割込信号を発生させるためのデ
ータがタイマA16にセットされる。これにより、以後
はタイマA16から新テンポスピードに対応した時間間
隔で割込信号が発生され、後述するタイマA割込処理に
おいて残存ゲートタイムが更新される。これにより、残
存ゲートタイムを更新する時間が新テンポスピードに応
じて行われることになり、新テンポスピードに応じた自
動演奏が行われることになる。
【0109】次いで、新テンポスピード値がテンポスピ
ード表示器132に送られ、更新されたテンポスピード
値が表示される(ステップS60)。その後、このテン
ポスピード処理1ルーチンからリターンしてパネル制御
処理ルーチンに戻る。
ード表示器132に送られ、更新されたテンポスピード
値が表示される(ステップS60)。その後、このテン
ポスピード処理1ルーチンからリターンしてパネル制御
処理ルーチンに戻る。
【0110】上記ステップS50で、アップダウンスイ
ッチ133、つまりアップスイッチ133A又はダウン
スイッチ133Bの何れかのオンイベントでないことが
判断されると、TMPONフラグは「0」にクリアされ
る(ステップS61)。これにより、アップスイッチ1
33A及びダウンスイッチ133Bの何れも押されてい
ないことが判断され、後述するタイマB割込処理ルーチ
ンにおけるオートインクリメント機能を実現するための
処理は行われない。その後、このテンポスピード処理1
ルーチンからリターンしてパネル制御処理ルーチンに戻
る。
ッチ133、つまりアップスイッチ133A又はダウン
スイッチ133Bの何れかのオンイベントでないことが
判断されると、TMPONフラグは「0」にクリアされ
る(ステップS61)。これにより、アップスイッチ1
33A及びダウンスイッチ133Bの何れも押されてい
ないことが判断され、後述するタイマB割込処理ルーチ
ンにおけるオートインクリメント機能を実現するための
処理は行われない。その後、このテンポスピード処理1
ルーチンからリターンしてパネル制御処理ルーチンに戻
る。
【0111】(5)テンポスピード処理2(図7) 次に、パネル制御処理ルーチンのステップS33で実行
されるテンポスピード処理2の詳細について、図7のフ
ローチャートを参照しながら説明する。このテンポスピ
ード処理2では、ホイール155の操作に応じてテンポ
スピードを変更する処理が行われる。このテンポスピー
ド処理2は変更手段に対応するものである。
されるテンポスピード処理2の詳細について、図7のフ
ローチャートを参照しながら説明する。このテンポスピ
ード処理2では、ホイール155の操作に応じてテンポ
スピードを変更する処理が行われる。このテンポスピー
ド処理2は変更手段に対応するものである。
【0112】テンポスピード処理2では、先ず、ホイー
ルデータがレジスタTMPCNTにセットされる(ステ
ップS70)。ホイールデータとしては、新パネルデー
タに含まれるホイールデータが使用され、例えば図15
に示されるように、「+10」〜「−10」までの値が
用いられる。次いで、レジスタTMPCNTの内容が
「0」であるかどうかが調べられる(ステップS7
1)。ここで、レジスタTMPCNTの内容が「0」で
ないことが判断されると、つまりホイール155がセン
ター位置から移動されたことが判断されると、TMPO
Nフラグが「1」にセットされる(ステップS72)。
これにより、後述するタイマB割込処理ルーチンでオー
トインクリメント機能を実現するための処理が行われる
(詳細は後述する)。
ルデータがレジスタTMPCNTにセットされる(ステ
ップS70)。ホイールデータとしては、新パネルデー
タに含まれるホイールデータが使用され、例えば図15
に示されるように、「+10」〜「−10」までの値が
用いられる。次いで、レジスタTMPCNTの内容が
「0」であるかどうかが調べられる(ステップS7
1)。ここで、レジスタTMPCNTの内容が「0」で
ないことが判断されると、つまりホイール155がセン
ター位置から移動されたことが判断されると、TMPO
Nフラグが「1」にセットされる(ステップS72)。
これにより、後述するタイマB割込処理ルーチンでオー
トインクリメント機能を実現するための処理が行われる
(詳細は後述する)。
【0113】次いで、カウンタTMPTIMがゼロにク
リアされる(ステップS73)。これにより、後述する
タイマB割込処理ルーチンでカウンタTMPTIMがゼ
ロからカウントを開始され、オートインクリメント機能
を実現するための時間の計数が開始される(詳細は後述
する)。
リアされる(ステップS73)。これにより、後述する
タイマB割込処理ルーチンでカウンタTMPTIMがゼ
ロからカウントを開始され、オートインクリメント機能
を実現するための時間の計数が開始される(詳細は後述
する)。
【0114】次いで、レジスタTMPCNTの内容に応
じてレートRが作成される(ステップS74)。レジス
タTMPCNTの内容とレートRとの対応は、例えば図
15に示す形式で変換テーブルとしてROM11に格納
されている。即ち、ホイール155の操作位置に応じて
レジスタTMPCNTにセットされた「+10」から
「−10」までの値に応じてレートR「1.10」〜
「0.90」(「1.00」を除く。)が作成される。
このレートRは、次のステップS75において、新テン
ポスピードを算出するために使用される。
じてレートRが作成される(ステップS74)。レジス
タTMPCNTの内容とレートRとの対応は、例えば図
15に示す形式で変換テーブルとしてROM11に格納
されている。即ち、ホイール155の操作位置に応じて
レジスタTMPCNTにセットされた「+10」から
「−10」までの値に応じてレートR「1.10」〜
「0.90」(「1.00」を除く。)が作成される。
このレートRは、次のステップS75において、新テン
ポスピードを算出するために使用される。
【0115】次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値にレートRが乗算され
て新テンポスピード値が算出され(ステップS75)、
算出された新テンポスピード値がテンポリミッタを通さ
れ(ステップS76)、タイマA16のプリセット値が
更新され(ステップS77)、更新されたテンポスピー
ド値が表示される(ステップS78)。上記ステップS
75〜78の各処理は、上述したテンポスピード処理1
のステップS57〜60の処理と同じである。その後、
このテンポスピード処理2ルーチンからリターンしてパ
ネル制御処理ルーチンに戻る。
納されている現テンポスピード値にレートRが乗算され
て新テンポスピード値が算出され(ステップS75)、
算出された新テンポスピード値がテンポリミッタを通さ
れ(ステップS76)、タイマA16のプリセット値が
更新され(ステップS77)、更新されたテンポスピー
ド値が表示される(ステップS78)。上記ステップS
75〜78の各処理は、上述したテンポスピード処理1
のステップS57〜60の処理と同じである。その後、
このテンポスピード処理2ルーチンからリターンしてパ
ネル制御処理ルーチンに戻る。
【0116】上記ステップS70で、レジスタTMPC
NTの内容が「0」であることが判断されると、つまり
ホイール155がセンター位置に戻されたことが判断さ
れると、TMPONフラグが「0」にクリアされる(ス
テップS79)。これにより、後述するタイマB割込処
理ルーチンでオートインクリメント機能を実現するため
の処理は行われない(詳細は後述する)。その後、この
テンポスピード処理2ルーチンからリターンしてパネル
制御処理ルーチンに戻る。
NTの内容が「0」であることが判断されると、つまり
ホイール155がセンター位置に戻されたことが判断さ
れると、TMPONフラグが「0」にクリアされる(ス
テップS79)。これにより、後述するタイマB割込処
理ルーチンでオートインクリメント機能を実現するため
の処理は行われない(詳細は後述する)。その後、この
テンポスピード処理2ルーチンからリターンしてパネル
制御処理ルーチンに戻る。
【0117】(6)タイマA割込処理(図8) 次にタイマA割込処理ルーチンについて説明する。この
タイマA割込処理ルーチンは、タイマA16から割込信
号がCPU10の割込信号入力端子INT2に供給され
ることにより起動される。従って、その時点で設定され
ているテンポにおける1ステップタイムに対応する時間
間隔で、換言すればテンポスピードに応じた時間間隔で
このタイマA割込処理ルーチンが起動されることにな
る。
タイマA割込処理ルーチンは、タイマA16から割込信
号がCPU10の割込信号入力端子INT2に供給され
ることにより起動される。従って、その時点で設定され
ているテンポにおける1ステップタイムに対応する時間
間隔で、換言すればテンポスピードに応じた時間間隔で
このタイマA割込処理ルーチンが起動されることにな
る。
【0118】タイマA割込処理では、先ず、自動演奏フ
ラグがオンになっているかどうかが調べられる(ステッ
プS80)。即ち、本テンポスピード制御装置が適用さ
れた自動演奏装置が自動演奏中であるかどうかが調べら
れる。ここで自動演奏フラグがオンであることが判断さ
れると、拍レジスタBTRの内容がインクリメントされ
(ステップS81)、その結果が「192」以上になっ
たかどうかが調べられる(ステップS82)。そして、
「192」以上になったことが判断されると、拍レジス
タBTRがゼロにクリアされ(ステップS83)、小節
レジスタBRRがインクリメントされる(ステップS8
4)。上記ステップS82で「192」以上でないこと
が判断されると、ステップS83及びS84の処理はス
キップされる。上記ステップS81〜S84の処理によ
り、1ステップタイム毎に小節レジスタBRRと拍レジ
スタBTRとが連結された状態でインクリメントされる
機能が実現されている。
ラグがオンになっているかどうかが調べられる(ステッ
プS80)。即ち、本テンポスピード制御装置が適用さ
れた自動演奏装置が自動演奏中であるかどうかが調べら
れる。ここで自動演奏フラグがオンであることが判断さ
れると、拍レジスタBTRの内容がインクリメントされ
(ステップS81)、その結果が「192」以上になっ
たかどうかが調べられる(ステップS82)。そして、
「192」以上になったことが判断されると、拍レジス
タBTRがゼロにクリアされ(ステップS83)、小節
レジスタBRRがインクリメントされる(ステップS8
4)。上記ステップS82で「192」以上でないこと
が判断されると、ステップS83及びS84の処理はス
キップされる。上記ステップS81〜S84の処理によ
り、1ステップタイム毎に小節レジスタBRRと拍レジ
スタBTRとが連結された状態でインクリメントされる
機能が実現されている。
【0119】次いで、全パートのゲートタイムの更新が
行われる(ステップS85)。即ち、全パートの残存ゲ
ートタイムを記憶しているレジスタ群(RAM12に設
けられている。)に含まれる残存ゲートタイムが「0」
以外のものはデクリメントされる。そして、このデクリ
メントの結果、新たにゼロになった残存ゲートタイムが
あれば、その残存ゲートタイムに対応するキーコードに
対してキーオフ出力が行われ発音が停止される。
行われる(ステップS85)。即ち、全パートの残存ゲ
ートタイムを記憶しているレジスタ群(RAM12に設
けられている。)に含まれる残存ゲートタイムが「0」
以外のものはデクリメントされる。そして、このデクリ
メントの結果、新たにゼロになった残存ゲートタイムが
あれば、その残存ゲートタイムに対応するキーコードに
対してキーオフ出力が行われ発音が停止される。
【0120】上記ステップS80で自動演奏フラグがオ
ンでないことが判断されると、自動演奏中でないことが
認識され、全パートのゲートタイムの更新のみが行われ
る。その後、このタイマA割込処理ルーチンからリター
ンして割り込まれた位置に戻る。このように、テンポス
ピードに依存してコールされる本ルーチンにより残存ゲ
ートタイムをデクリメントすることにより、テンポスピ
ードに応じた発音の長さが決定されるようになってい
る。
ンでないことが判断されると、自動演奏中でないことが
認識され、全パートのゲートタイムの更新のみが行われ
る。その後、このタイマA割込処理ルーチンからリター
ンして割り込まれた位置に戻る。このように、テンポス
ピードに依存してコールされる本ルーチンにより残存ゲ
ートタイムをデクリメントすることにより、テンポスピ
ードに応じた発音の長さが決定されるようになってい
る。
【0121】(7)タイマB割込処理(図9) 次にタイマB割込処理について図9に示したフローチャ
ートを参照しながら説明する。このタイマB割込処理で
はオートインクリメント機能が実現されている。オート
インクリメント機能は、アップダウンスイッチ133又
はホイール155の操作が開始されてから0.8秒経過
し、又は前回にテンポスピード値が更新されてから0.
8秒経過する毎に、現テンポスピード値をレートRに応
じて変更して新テンポスピード値とする処理を行うこと
により実現されている。なお、上記「0.8秒」という
値は一例であり、この値に限定されず任意の値を用いる
ことができる。
ートを参照しながら説明する。このタイマB割込処理で
はオートインクリメント機能が実現されている。オート
インクリメント機能は、アップダウンスイッチ133又
はホイール155の操作が開始されてから0.8秒経過
し、又は前回にテンポスピード値が更新されてから0.
8秒経過する毎に、現テンポスピード値をレートRに応
じて変更して新テンポスピード値とする処理を行うこと
により実現されている。なお、上記「0.8秒」という
値は一例であり、この値に限定されず任意の値を用いる
ことができる。
【0122】このタイマB割込処理ルーチンは、タイマ
B20から割込信号がCPU10の割込信号入力端子I
NT3に供給されることにより起動される。従って、こ
のタイマB割込処理ルーチンは0.1秒間隔で起動され
る。
B20から割込信号がCPU10の割込信号入力端子I
NT3に供給されることにより起動される。従って、こ
のタイマB割込処理ルーチンは0.1秒間隔で起動され
る。
【0123】タイマB割込処理では、先ず、TMPON
フラグが「1」であるかどうかが調べられる(ステップ
S90)。ここでTMPONフラグが「1」でないこと
が判断されると、アップダウンスイッチ133は押され
ていないか又はホイール155は操作されていないこと
を認識し、ステップS91以下の処理は行わずにこのタ
イマB割込処理ルーチンからリターンして割り込まれた
位置に戻る。即ち、オートインクリメント機能は動作し
ない。
フラグが「1」であるかどうかが調べられる(ステップ
S90)。ここでTMPONフラグが「1」でないこと
が判断されると、アップダウンスイッチ133は押され
ていないか又はホイール155は操作されていないこと
を認識し、ステップS91以下の処理は行わずにこのタ
イマB割込処理ルーチンからリターンして割り込まれた
位置に戻る。即ち、オートインクリメント機能は動作し
ない。
【0124】一方、TMPONフラグが「1」であるこ
とが判断されると、アップダウンスイッチ133が押さ
れ続けているか又はホイール155は操作され続けてい
ることを認識し、ステップS91以下のオートインクリ
メント処理が行われる。即ち、先ずレジスタTMPTI
Mの内容がインクリメントされる(ステップS91)。
そして、レジスタTMPTIMの内容が「8」以上であ
るかどうかが調べられる(ステップS92)。ここで、
「8」以上でないことが判断されると、未だ0.8秒経
過しておらず新テンポスピード値の算出タイミングに至
っていないことが認識され、ステップS93以下の処理
は行わずにこのタイマB割込処理ルーチンからリターン
して割り込まれた位置に戻る。このステップS90〜S
92の処理は、本発明の操作続行検出手段及びタイミン
グ発生手段に対応する。
とが判断されると、アップダウンスイッチ133が押さ
れ続けているか又はホイール155は操作され続けてい
ることを認識し、ステップS91以下のオートインクリ
メント処理が行われる。即ち、先ずレジスタTMPTI
Mの内容がインクリメントされる(ステップS91)。
そして、レジスタTMPTIMの内容が「8」以上であ
るかどうかが調べられる(ステップS92)。ここで、
「8」以上でないことが判断されると、未だ0.8秒経
過しておらず新テンポスピード値の算出タイミングに至
っていないことが認識され、ステップS93以下の処理
は行わずにこのタイマB割込処理ルーチンからリターン
して割り込まれた位置に戻る。このステップS90〜S
92の処理は、本発明の操作続行検出手段及びタイミン
グ発生手段に対応する。
【0125】一方、「8」以上であることが判断される
と、アップダウンスイッチ133又はホイール155の
操作が開始されてから0.8秒経過し、又は前回にテン
ポスピード値が更新されてから0.8秒経過したことが
認識され、レジスタTMPTIMに「0」がセットされ
る(ステップS93)。これにより、0.8秒後に再
度、新テンポスピードの算出が行われるように設定され
る。
と、アップダウンスイッチ133又はホイール155の
操作が開始されてから0.8秒経過し、又は前回にテン
ポスピード値が更新されてから0.8秒経過したことが
認識され、レジスタTMPTIMに「0」がセットされ
る(ステップS93)。これにより、0.8秒後に再
度、新テンポスピードの算出が行われるように設定され
る。
【0126】次いで、レジスタTMPCNTの内容に応
じてレートRが作成される(ステップS94)。この
際、アップスイッチ133Aが押し続けられることによ
りオートインクリメント機能が実現される場合は、レー
トRとして「1.01」が作成され、ダウンスイッチ1
33Bが押し続けられることによりオートインクリメン
ト機能が実現される場合は、レートRとして「0.9
9」が作成され、ホイール155が操作され続けること
によりオートインクリメント機能が実現される場合は、
ホイール155の操作位置に応じて、「1.10」〜
「0.90」(「1.00」を除く。)の何れかのレー
トRが作成される。
じてレートRが作成される(ステップS94)。この
際、アップスイッチ133Aが押し続けられることによ
りオートインクリメント機能が実現される場合は、レー
トRとして「1.01」が作成され、ダウンスイッチ1
33Bが押し続けられることによりオートインクリメン
ト機能が実現される場合は、レートRとして「0.9
9」が作成され、ホイール155が操作され続けること
によりオートインクリメント機能が実現される場合は、
ホイール155の操作位置に応じて、「1.10」〜
「0.90」(「1.00」を除く。)の何れかのレー
トRが作成される。
【0127】次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値にレートRが乗算され
て新テンポスピード値が算出され(ステップS95)、
算出された新テンポスピード値がテンポリミッタを通さ
れ(ステップS96)、タイマA16のプリセット値が
更新され(ステップS97)、更新されたテンポスピー
ド値が表示される(ステップS98)。上記ステップS
95〜98の各処理は、上述したテンポスピード処理1
のステップS57〜60の処理と同じである。その後、
このタイマB割込処理ルーチンからリターンして割り込
まれた位置に戻る。
納されている現テンポスピード値にレートRが乗算され
て新テンポスピード値が算出され(ステップS95)、
算出された新テンポスピード値がテンポリミッタを通さ
れ(ステップS96)、タイマA16のプリセット値が
更新され(ステップS97)、更新されたテンポスピー
ド値が表示される(ステップS98)。上記ステップS
95〜98の各処理は、上述したテンポスピード処理1
のステップS57〜60の処理と同じである。その後、
このタイマB割込処理ルーチンからリターンして割り込
まれた位置に戻る。
【0128】以上説明したように、本実施例1において
は、正側と負側との双方向に操作可能なアップダウンス
イッチ133が操作されるとその正又は負の変位が検出
され、その変位に応じて現テンポスピードが所定の割合
で変更される。より具体的には、正の変位が検出された
場合は、上記(2)式の「±M」として「+M」が用い
られ、負の変位が検出された場合は、上記(2)式のM
として「−M」が用いられ、現テンポスピードが所定の
割合で増加又は減少される。
は、正側と負側との双方向に操作可能なアップダウンス
イッチ133が操作されるとその正又は負の変位が検出
され、その変位に応じて現テンポスピードが所定の割合
で変更される。より具体的には、正の変位が検出された
場合は、上記(2)式の「±M」として「+M」が用い
られ、負の変位が検出された場合は、上記(2)式のM
として「−M」が用いられ、現テンポスピードが所定の
割合で増加又は減少される。
【0129】上記(2)式に示されるように、現テンポ
スピードに所定の係数「(1.00±M)」を乗じるこ
とにより新テンポスピードが算出されるので、現テンポ
スピードが大きければテンポ操作子の1回の操作で変更
されるテンポスピードの割合は大きくなり、逆に、現テ
ンポスピードが小さければその割合は小さくなる。従っ
て、現テンポスピードがテンポ操作子を操作すべき回数
に与える影響は小さくなり、目標テンポスピードに素早
く近づけることができる。
スピードに所定の係数「(1.00±M)」を乗じるこ
とにより新テンポスピードが算出されるので、現テンポ
スピードが大きければテンポ操作子の1回の操作で変更
されるテンポスピードの割合は大きくなり、逆に、現テ
ンポスピードが小さければその割合は小さくなる。従っ
て、現テンポスピードがテンポ操作子を操作すべき回数
に与える影響は小さくなり、目標テンポスピードに素早
く近づけることができる。
【0130】また、アップダウンスイッチ133が操作
される度に現テンポスピード値が、上記(2)式で示さ
れるような関数に従って変更されるので、テンポスピー
ドは指数関数的に増減される。かかる指数関数的なテン
ポスピードの変化は人の感覚に沿ったものであり、テン
ポ変化に不自然さがなくなり操作性に優れたものとなっ
ている。
される度に現テンポスピード値が、上記(2)式で示さ
れるような関数に従って変更されるので、テンポスピー
ドは指数関数的に増減される。かかる指数関数的なテン
ポスピードの変化は人の感覚に沿ったものであり、テン
ポ変化に不自然さがなくなり操作性に優れたものとなっ
ている。
【0131】また、本実施例1においては、非操作位置
としてのセンター位置を有し、正側と負側との双方向に
操作可能なホイール155が操作されるとその正又は負
の変位量が検出され、その変位量に応じて現テンポスピ
ードが所定の割合で変更される。より具体的には、正の
変位量が検出された場合は、上記(2)式の「±M」と
して「+M」が用いられ、負の変位量が検出された場合
は、上記(2)式のMとして「−M」が用いられ、現テ
ンポスピードが上記変位量に応じた割合で増加又は減少
される。かかる構成により、ホイール155の1回の操
作で現テンポスピードを大きく変化させることができ、
迅速に目標テンポスピードに到達できる。
としてのセンター位置を有し、正側と負側との双方向に
操作可能なホイール155が操作されるとその正又は負
の変位量が検出され、その変位量に応じて現テンポスピ
ードが所定の割合で変更される。より具体的には、正の
変位量が検出された場合は、上記(2)式の「±M」と
して「+M」が用いられ、負の変位量が検出された場合
は、上記(2)式のMとして「−M」が用いられ、現テ
ンポスピードが上記変位量に応じた割合で増加又は減少
される。かかる構成により、ホイール155の1回の操
作で現テンポスピードを大きく変化させることができ、
迅速に目標テンポスピードに到達できる。
【0132】また、本実施例1では、オートインクリメ
ント機能が実現されている。即ち、アップダウンスイッ
チ133又はホイール155が所定時間(例えば0.8
秒)以上操作され続けることにより操作続行中であるこ
とが検出されると、その操作続行中であることが検出さ
れている間は、例えば0.8秒毎に現テンポスピードが
所定の割合で変更される。
ント機能が実現されている。即ち、アップダウンスイッ
チ133又はホイール155が所定時間(例えば0.8
秒)以上操作され続けることにより操作続行中であるこ
とが検出されると、その操作続行中であることが検出さ
れている間は、例えば0.8秒毎に現テンポスピードが
所定の割合で変更される。
【0133】このように、アップダウンスイッチ133
又はホイール155を操作し続けることにより自動的に
テンポスピードを増加又は減少させることができるの
で、テンポ設定操作が簡単且つ迅速になるという利点が
ある。しかも、現テンポスピードが大きければ一定時間
毎に更新されるテンポスピードの割合は大きくなり、逆
に、現テンポスピードが小さければその割合は小さくな
る。従って、現テンポスピードが、テンポ操作子を操作
し続けている時間に与える影響は小さくなり、人の感覚
に沿ったテンポスピードの変化で目標テンポスピードに
素早く近づけることができる。
又はホイール155を操作し続けることにより自動的に
テンポスピードを増加又は減少させることができるの
で、テンポ設定操作が簡単且つ迅速になるという利点が
ある。しかも、現テンポスピードが大きければ一定時間
毎に更新されるテンポスピードの割合は大きくなり、逆
に、現テンポスピードが小さければその割合は小さくな
る。従って、現テンポスピードが、テンポ操作子を操作
し続けている時間に与える影響は小さくなり、人の感覚
に沿ったテンポスピードの変化で目標テンポスピードに
素早く近づけることができる。
【0134】(実施例2)上記実施例1が、オートイン
クリメント機能を実現するに際し、現テンポスピードに
所定の係数を乗じることにより現テンポスピードをテン
ポ操作子の操作に応じて指数関数的に変化させて操作性
の向上を図ろうとするのに対し、この実施例2は、現テ
ンポスピードに所定の定数を加算することによりテンポ
スピードを変更するものであり、その加算の時間間隔を
テンポスピードに応じて変更することにより上記実施例
1と同様の効果を発揮させようとするものである。以
下、実施例1との相違点を中心に説明する。
クリメント機能を実現するに際し、現テンポスピードに
所定の係数を乗じることにより現テンポスピードをテン
ポ操作子の操作に応じて指数関数的に変化させて操作性
の向上を図ろうとするのに対し、この実施例2は、現テ
ンポスピードに所定の定数を加算することによりテンポ
スピードを変更するものであり、その加算の時間間隔を
テンポスピードに応じて変更することにより上記実施例
1と同様の効果を発揮させようとするものである。以
下、実施例1との相違点を中心に説明する。
【0135】本発明の実施例2のテンポスピード制御装
置が適用された自動演奏装置としては、図1のブロック
図に示したものと同様のものが使用される。ただし、タ
イマB20は不要であり、従って、CPU10の割込信
号入力端子INT3も不要である。また、操作パネル1
3(図2)も実施例1で使用したものと同一のものが使
用される。
置が適用された自動演奏装置としては、図1のブロック
図に示したものと同様のものが使用される。ただし、タ
イマB20は不要であり、従って、CPU10の割込信
号入力端子INT3も不要である。また、操作パネル1
3(図2)も実施例1で使用したものと同一のものが使
用される。
【0136】次に、本発明のテンポスピード制御装置が
適用された自動演奏装置の実施例2の動作につき、図1
0〜図13に示したフローチャートを参照しながら詳細
に説明する。なお、実施例1で使用したメイン処理(図
3)、MIDI−IN割込処理(図4)及びパネル制御
処理(図5)は、本実施例2でもそのまま使用される。
これらの説明は省略する。
適用された自動演奏装置の実施例2の動作につき、図1
0〜図13に示したフローチャートを参照しながら詳細
に説明する。なお、実施例1で使用したメイン処理(図
3)、MIDI−IN割込処理(図4)及びパネル制御
処理(図5)は、本実施例2でもそのまま使用される。
これらの説明は省略する。
【0137】(1)テンポスピード処理1(図10) パネル制御処理ルーチンのステップS31で実行される
テンポスピード処理1の詳細について、図10のフロー
チャートを参照しながら説明する。このテンポスピード
処理1では、アップダウンスイッチ133の操作に応じ
てテンポスピードを変更する処理が行われる。このテン
ポスピード処理1は変更手段に対応するものである。
テンポスピード処理1の詳細について、図10のフロー
チャートを参照しながら説明する。このテンポスピード
処理1では、アップダウンスイッチ133の操作に応じ
てテンポスピードを変更する処理が行われる。このテン
ポスピード処理1は変更手段に対応するものである。
【0138】テンポスピード処理1では、先ず、アップ
ダウンスイッチ133のオンイベントがあったかどうか
が調べられ(イベント100)、オンイベントがあった
ことが判断されると、TMPONフラグが「1」にセッ
トされ(ステップS101)、次いで、カウンタTMP
TIMがゼロにクリアされる(ステップS102)。以
上の処理は図6におけるステップS50〜S52の処理
と同じである。
ダウンスイッチ133のオンイベントがあったかどうか
が調べられ(イベント100)、オンイベントがあった
ことが判断されると、TMPONフラグが「1」にセッ
トされ(ステップS101)、次いで、カウンタTMP
TIMがゼロにクリアされる(ステップS102)。以
上の処理は図6におけるステップS50〜S52の処理
と同じである。
【0139】次いで、上記ステップS50でオンイベン
トがあったスイッチはアップスイッチ133Aであるか
どうかが調べられ(ステップS103)、アップスイッ
チ133Aのイベントであることが判断されるとレジス
タAに「+1」がセットされ(ステップS104)、そ
うでなければダウンスイッチ133Bのイベントである
ことが認識されてレジスタAに「−1」がセットされる
(ステップS105)。ここで、レジスタAはRAM1
2に定義されるレジスタであり、テンポスピード値を変
更する際の加算値を記憶するために使用される。
トがあったスイッチはアップスイッチ133Aであるか
どうかが調べられ(ステップS103)、アップスイッ
チ133Aのイベントであることが判断されるとレジス
タAに「+1」がセットされ(ステップS104)、そ
うでなければダウンスイッチ133Bのイベントである
ことが認識されてレジスタAに「−1」がセットされる
(ステップS105)。ここで、レジスタAはRAM1
2に定義されるレジスタであり、テンポスピード値を変
更する際の加算値を記憶するために使用される。
【0140】次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値に加算値Aが加算され
て新テンポスピード値が算出される(ステップS10
6)。次いで、算出された新テンポスピード値がテンポ
リミッタを通され(ステップS107)、タイマA16
のプリセット値が更新され(ステップS108)、新テ
ンポスピード値がテンポスピード表示器132に送られ
て更新されたテンポスピード値が表示される(ステップ
S109)。このステップS107〜S109の処理
は、図6におけるステップS58〜S60の処理と同じ
である。その後、このテンポスピード処理2ルーチンか
らリターンしてパネル制御処理ルーチンに戻る。
納されている現テンポスピード値に加算値Aが加算され
て新テンポスピード値が算出される(ステップS10
6)。次いで、算出された新テンポスピード値がテンポ
リミッタを通され(ステップS107)、タイマA16
のプリセット値が更新され(ステップS108)、新テ
ンポスピード値がテンポスピード表示器132に送られ
て更新されたテンポスピード値が表示される(ステップ
S109)。このステップS107〜S109の処理
は、図6におけるステップS58〜S60の処理と同じ
である。その後、このテンポスピード処理2ルーチンか
らリターンしてパネル制御処理ルーチンに戻る。
【0141】上記ステップS100で、アップダウンス
イッチ133のオンイベントでないことが判断される
と、TMPONフラグは「0」にクリアされる(ステッ
プS109A)。これにより、アップスイッチ133A
及びダウンスイッチ133Bの何れも押されていないこ
とが判断され、後述するオートインク処理ルーチンにお
けるオートインクリメント機能を実現するための処理は
行われない。その後、このテンポスピード処理2ルーチ
ンからリターンしてパネル制御処理ルーチンに戻る。
イッチ133のオンイベントでないことが判断される
と、TMPONフラグは「0」にクリアされる(ステッ
プS109A)。これにより、アップスイッチ133A
及びダウンスイッチ133Bの何れも押されていないこ
とが判断され、後述するオートインク処理ルーチンにお
けるオートインクリメント機能を実現するための処理は
行われない。その後、このテンポスピード処理2ルーチ
ンからリターンしてパネル制御処理ルーチンに戻る。
【0142】このように、このテンポスピード処理1で
は、TMPONフラグがアップダウンスイッチ133の
操作に応じてセット又はクリアされる点を除けば、従来
のテンポスピード制御装置の機能と同一の機能が実現さ
れている。即ち、アップスイッチ133Aが押されると
テンポスピードが「+1」され、ダウンスイッチ133
Bが押されるとテンポスピードが[−1」される。
は、TMPONフラグがアップダウンスイッチ133の
操作に応じてセット又はクリアされる点を除けば、従来
のテンポスピード制御装置の機能と同一の機能が実現さ
れている。即ち、アップスイッチ133Aが押されると
テンポスピードが「+1」され、ダウンスイッチ133
Bが押されるとテンポスピードが[−1」される。
【0143】(2)テンポスピード処理2(図11) 次に、パネル制御処理ルーチンのステップS33で実行
されるテンポスピード処理2の詳細について、図11の
フローチャートを参照しながら説明する。このテンポス
ピード処理2では、ホイール155の操作に応じてテン
ポスピードを変更する処理が行われる。このテンポスピ
ード処理2は変更手段に対応するものである。
されるテンポスピード処理2の詳細について、図11の
フローチャートを参照しながら説明する。このテンポス
ピード処理2では、ホイール155の操作に応じてテン
ポスピードを変更する処理が行われる。このテンポスピ
ード処理2は変更手段に対応するものである。
【0144】テンポスピード処理2では、先ず、ホイー
ルデータがレジスタTMPCNTにセットされ(ステッ
プS110)、次いで、レジスタTMPCNTの内容が
「0」であるかどうかが調べられる(ステップS11
1)。ここで、レジスタTMPCNTの内容が「0」で
ないことが判断されるとTMPONフラグが「1」にセ
ットされ(ステップS72)、次いで、カウンタTMP
TIMがゼロにクリアされる(ステップS113)。以
上の処理は、図7におけるステップS70〜S73の処
理と同じである。
ルデータがレジスタTMPCNTにセットされ(ステッ
プS110)、次いで、レジスタTMPCNTの内容が
「0」であるかどうかが調べられる(ステップS11
1)。ここで、レジスタTMPCNTの内容が「0」で
ないことが判断されるとTMPONフラグが「1」にセ
ットされ(ステップS72)、次いで、カウンタTMP
TIMがゼロにクリアされる(ステップS113)。以
上の処理は、図7におけるステップS70〜S73の処
理と同じである。
【0145】次いで、レジスタTMPCNTの内容(ホ
イールデータ)に応じて加算値Aが作成される(ステッ
プS114)。この加算値Aは、次のステップS115
において、新テンポスピードを算出するために使用され
る。
イールデータ)に応じて加算値Aが作成される(ステッ
プS114)。この加算値Aは、次のステップS115
において、新テンポスピードを算出するために使用され
る。
【0146】次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値に加算値Aが加算され
て新テンポスピード値が算出され(ステップS11
5)、算出された新テンポスピード値がテンポリミッタ
を通され(ステップS116)、タイマA16のプリセ
ット値が更新され(ステップS117)、更新されたテ
ンポスピード値が表示される(ステップS118)。上
記ステップS115〜S118の処理は、図10のステ
ップS106〜S109の処理と同じである。その後、
このテンポスピード処理2ルーチンからリターンしてパ
ネル制御処理ルーチンに戻る。
納されている現テンポスピード値に加算値Aが加算され
て新テンポスピード値が算出され(ステップS11
5)、算出された新テンポスピード値がテンポリミッタ
を通され(ステップS116)、タイマA16のプリセ
ット値が更新され(ステップS117)、更新されたテ
ンポスピード値が表示される(ステップS118)。上
記ステップS115〜S118の処理は、図10のステ
ップS106〜S109の処理と同じである。その後、
このテンポスピード処理2ルーチンからリターンしてパ
ネル制御処理ルーチンに戻る。
【0147】上記ステップS111で、レジスタTMP
CNTの内容が「0」であることが判断されると、つま
りホイール155がセンター位置に戻されたことが判断
されると、TMPONフラグが「0」にクリアされる
(ステップS119)。これにより、後述するオートイ
ンク処理ルーチンでオートインクリメント機能を実現す
るための処理は行われない(詳細は後述する)。その
後、このテンポスピード処理2ルーチンからリターンし
てパネル制御処理ルーチンに戻る。
CNTの内容が「0」であることが判断されると、つま
りホイール155がセンター位置に戻されたことが判断
されると、TMPONフラグが「0」にクリアされる
(ステップS119)。これにより、後述するオートイ
ンク処理ルーチンでオートインクリメント機能を実現す
るための処理は行われない(詳細は後述する)。その
後、このテンポスピード処理2ルーチンからリターンし
てパネル制御処理ルーチンに戻る。
【0148】このように、このテンポスピード処理2で
は、ホイール155の操作に応じてホイール155の変
位量(加算値A)が現テンポスピードに加算又は減算さ
れて新テンポスピードが算出される。従って、ホイール
155を大きく変位させることにより、現テンポスピー
ドを大きく変化させることができるものとなっている。
は、ホイール155の操作に応じてホイール155の変
位量(加算値A)が現テンポスピードに加算又は減算さ
れて新テンポスピードが算出される。従って、ホイール
155を大きく変位させることにより、現テンポスピー
ドを大きく変化させることができるものとなっている。
【0149】(3)タイマA割込処理(図12) 次にタイマA割込処理ルーチンについて説明する。この
タイマA割込処理ルーチンは、タイマA16から割込信
号がCPU10の割込信号入力端子INT2に供給され
ることにより起動される。従って、その時点で設定され
ているテンポにおける1ステップタイムに対応する時間
間隔で、換言すればテンポスピードに応じた時間間隔で
このタイマA割込処理ルーチンが起動されることにな
る。
タイマA割込処理ルーチンは、タイマA16から割込信
号がCPU10の割込信号入力端子INT2に供給され
ることにより起動される。従って、その時点で設定され
ているテンポにおける1ステップタイムに対応する時間
間隔で、換言すればテンポスピードに応じた時間間隔で
このタイマA割込処理ルーチンが起動されることにな
る。
【0150】このタイマA割込処理は、ステップS12
6のオートインク処理が行われることを除き、実施例1
のタイマA割込処理ルーチン(図8)の処理と同じ(ス
テップS80〜85は、それぞれステップS120〜1
25に対応している。)であるので説明は省略する。オ
ートインク処理(ステップS126)は、オートインク
リメント機能を実現するための処理である(詳細は後述
する)。その後、このタイマA割込処理ルーチンからリ
ターンして割り込まれた位置に戻る。このように、テン
ポスピードに依存してオートインク処理ルーチンがコー
ルされることにより、テンポスピードに応じた時間間隔
でテンポスピードの変更が行われることになる。
6のオートインク処理が行われることを除き、実施例1
のタイマA割込処理ルーチン(図8)の処理と同じ(ス
テップS80〜85は、それぞれステップS120〜1
25に対応している。)であるので説明は省略する。オ
ートインク処理(ステップS126)は、オートインク
リメント機能を実現するための処理である(詳細は後述
する)。その後、このタイマA割込処理ルーチンからリ
ターンして割り込まれた位置に戻る。このように、テン
ポスピードに依存してオートインク処理ルーチンがコー
ルされることにより、テンポスピードに応じた時間間隔
でテンポスピードの変更が行われることになる。
【0151】(4)オートインク処理(図13) 次に、オートインク処理について図13に示したフロー
チャートを参照しながら説明する。このオートインク処
理ではオートインクリメント機能が実現されている。オ
ートインクリメント機能は、アップダウンスイッチ13
3又はホイール155の操作が開始されてから所定時間
経過し、又は前回にテンポスピード値が更新されてから
所定時間経過する毎に、現テンポスピード値を加算値A
に応じて変更して新テンポスピード値とする処理を行う
ことにより実現されている。
チャートを参照しながら説明する。このオートインク処
理ではオートインクリメント機能が実現されている。オ
ートインクリメント機能は、アップダウンスイッチ13
3又はホイール155の操作が開始されてから所定時間
経過し、又は前回にテンポスピード値が更新されてから
所定時間経過する毎に、現テンポスピード値を加算値A
に応じて変更して新テンポスピード値とする処理を行う
ことにより実現されている。
【0152】このオートインク処理ルーチンは、タイマ
A割込処理ルーチンからコールされる。従って、このオ
ートインク処理ルーチンはテンポスピードに応じた時間
間隔で起動される。
A割込処理ルーチンからコールされる。従って、このオ
ートインク処理ルーチンはテンポスピードに応じた時間
間隔で起動される。
【0153】オートインク処理では、先ず、TMPON
フラグが「1」であるかどうかが調べられ(ステップS
130)、TMPONフラグが「1」でないことが判断
されると、ステップS131以下の処理は行わずにこの
オートインク処理ルーチンからリターンしてタイマA割
込処理ルーチンに戻り、更にタイマA割込処理ルーチン
からもリターンして割り込まれた位置に戻る。即ち、オ
ートインクリメント機能は動作しない。
フラグが「1」であるかどうかが調べられ(ステップS
130)、TMPONフラグが「1」でないことが判断
されると、ステップS131以下の処理は行わずにこの
オートインク処理ルーチンからリターンしてタイマA割
込処理ルーチンに戻り、更にタイマA割込処理ルーチン
からもリターンして割り込まれた位置に戻る。即ち、オ
ートインクリメント機能は動作しない。
【0154】一方、TMPONフラグが「1」であるこ
とが判断されると、アップダウンスイッチ133が押さ
れ続けているか又はホイール155は操作され続けてい
ることを認識し、ステップS131以下のオートインク
リメント処理が行われる。即ち、先ずレジスタTMPT
IMの内容がインクリメントされる(ステップS13
1)。そして、レジスタTMPTIMの内容が「32」
以上であるかどうかが調べられる(ステップS13
2)。ここで、「32」以上でないことが判断される
と、未だテンポ更新タイミングに至っていないことが認
識され、ステップS133以下の処理は行わずにこのオ
ートインク処理ルーチンからリターンしてタイマA割込
処理ルーチンに戻り、更にタイマA割込処理ルーチンか
らもリターンして割り込まれた位置に戻る。このステッ
プS130〜S132の処理は、本発明の操作続行検出
手段及びタイミング発生手段に対応する。
とが判断されると、アップダウンスイッチ133が押さ
れ続けているか又はホイール155は操作され続けてい
ることを認識し、ステップS131以下のオートインク
リメント処理が行われる。即ち、先ずレジスタTMPT
IMの内容がインクリメントされる(ステップS13
1)。そして、レジスタTMPTIMの内容が「32」
以上であるかどうかが調べられる(ステップS13
2)。ここで、「32」以上でないことが判断される
と、未だテンポ更新タイミングに至っていないことが認
識され、ステップS133以下の処理は行わずにこのオ
ートインク処理ルーチンからリターンしてタイマA割込
処理ルーチンに戻り、更にタイマA割込処理ルーチンか
らもリターンして割り込まれた位置に戻る。このステッ
プS130〜S132の処理は、本発明の操作続行検出
手段及びタイミング発生手段に対応する。
【0155】一方、「32」以上であることが判断され
ると、アップダウンスイッチ133又はホイール155
の操作が開始されてから所定時間経過し、又は前回にテ
ンポスピード値が更新されてから所定時間経過したこと
が認識され、レジスタTMPTIMに「0」がセットさ
れる(ステップS133)。これにより、上記所定時間
後に再度、新テンポスピードの算出が行われるように設
定される。
ると、アップダウンスイッチ133又はホイール155
の操作が開始されてから所定時間経過し、又は前回にテ
ンポスピード値が更新されてから所定時間経過したこと
が認識され、レジスタTMPTIMに「0」がセットさ
れる(ステップS133)。これにより、上記所定時間
後に再度、新テンポスピードの算出が行われるように設
定される。
【0156】次いで、レジスタTMPCNTの内容に応
じて加算値Aが作成される(ステップS94)。この
際、アップスイッチ133Aが押し続けられることによ
りオートインクリメント機能が実現される場合は、加算
値Aとして「+1」が作成され、ダウンスイッチ133
Bが押し続けられることによりオートインクリメント機
能が実現される場合は、加算値Aとして「−1」が作成
され、ホイール155が操作され続けることによりオー
トインクリメント機能が実現される場合は、ホイール1
55の操作位置に応じて、「−10」〜「+10」の何
れかの加算値Aが作成される。
じて加算値Aが作成される(ステップS94)。この
際、アップスイッチ133Aが押し続けられることによ
りオートインクリメント機能が実現される場合は、加算
値Aとして「+1」が作成され、ダウンスイッチ133
Bが押し続けられることによりオートインクリメント機
能が実現される場合は、加算値Aとして「−1」が作成
され、ホイール155が操作され続けることによりオー
トインクリメント機能が実現される場合は、ホイール1
55の操作位置に応じて、「−10」〜「+10」の何
れかの加算値Aが作成される。
【0157】次いで、レジスタTMPCNTの内容(ホ
イールデータ)に応じて加算値Aが作成され(ステップ
S134)、次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値に加算値Aが加算され
て新テンポスピード値が算出され(ステップS13
5)、算出された新テンポスピード値がテンポリミッタ
を通され(ステップS136)、タイマA16のプリセ
ット値が更新され(ステップS137)、更新されたテ
ンポスピード値が表示される(ステップS138)。上
記ステップS134〜S138の処理は、図11のステ
ップS114〜S118の処理と同じである。その後、
このオートインク処理ルーチンからリターンしてタイマ
A割込処理ルーチンに戻り、更にタイマA割込処理ルー
チンからもリターンして割り込まれた位置に戻る。
イールデータ)に応じて加算値Aが作成され(ステップ
S134)、次いで、RAM12のテンポレジスタに格
納されている現テンポスピード値に加算値Aが加算され
て新テンポスピード値が算出され(ステップS13
5)、算出された新テンポスピード値がテンポリミッタ
を通され(ステップS136)、タイマA16のプリセ
ット値が更新され(ステップS137)、更新されたテ
ンポスピード値が表示される(ステップS138)。上
記ステップS134〜S138の処理は、図11のステ
ップS114〜S118の処理と同じである。その後、
このオートインク処理ルーチンからリターンしてタイマ
A割込処理ルーチンに戻り、更にタイマA割込処理ルー
チンからもリターンして割り込まれた位置に戻る。
【0158】なお、上記ステップS132における値
「32」は、テンポスピードの更新間隔を決定するため
に使用される値であり、「32」に限定されず任意の値
を用いることができる。
「32」は、テンポスピードの更新間隔を決定するため
に使用される値であり、「32」に限定されず任意の値
を用いることができる。
【0159】以上説明したように、本実施例2において
は、アップダウンスイッチ133又はホイール155が
操作された場合の変位(アップダウンスイッチ133の
場合は±1、ホイール155の場合は、−10〜+1
0)を検出し、アップダウンスイッチ133又はホイー
ル155が所定時間以上継続して操作されている間にテ
ンポスピードに応じた時間間隔で発生される各テンポ変
更タイミングにおいて、上記変位を加算又は減算するこ
とにより現テンポスピードが変更される。
は、アップダウンスイッチ133又はホイール155が
操作された場合の変位(アップダウンスイッチ133の
場合は±1、ホイール155の場合は、−10〜+1
0)を検出し、アップダウンスイッチ133又はホイー
ル155が所定時間以上継続して操作されている間にテ
ンポスピードに応じた時間間隔で発生される各テンポ変
更タイミングにおいて、上記変位を加算又は減算するこ
とにより現テンポスピードが変更される。
【0160】このように、テンポ操作子を操作し続ける
ことにより自動的にテンポスピードを増加又は減少させ
ることができるので、テンポ設定操作が簡単になるとい
う利点がある。しかも、テンポスピードを変更するタイ
ミングはその時点で設定されているテンポスピードに応
じて決定されるので、現テンポスピードが大きければテ
ンポ変更タイミングの発生間隔が密になり、逆に、現テ
ンポスピードが小さければテンポ変更タイミングの発生
間隔が粗になる。従って、現テンポスピードが、テンポ
変更に要する時間に与える影響は小さくなる。
ことにより自動的にテンポスピードを増加又は減少させ
ることができるので、テンポ設定操作が簡単になるとい
う利点がある。しかも、テンポスピードを変更するタイ
ミングはその時点で設定されているテンポスピードに応
じて決定されるので、現テンポスピードが大きければテ
ンポ変更タイミングの発生間隔が密になり、逆に、現テ
ンポスピードが小さければテンポ変更タイミングの発生
間隔が粗になる。従って、現テンポスピードが、テンポ
変更に要する時間に与える影響は小さくなる。
【0161】また、テンポスピードに比例してテンポ変
更タイミングの発生間隔が短く又は長くなるように制御
すれば、現テンポスピードの如何に拘わらず略一定時間
で目標テンポスピードに近づけるように構成することが
できる。
更タイミングの発生間隔が短く又は長くなるように制御
すれば、現テンポスピードの如何に拘わらず略一定時間
で目標テンポスピードに近づけるように構成することが
できる。
【0162】また、ホイール155を用いた場合は、こ
のホイール155から出力される変位量に応じた値が上
記(1)式におけるMの値として用られる。この際、ホ
イール155は、非操作位置(センター位置)に対して
正側に操作された場合は正の変位量(「+M」)、負側
に操作された場合は負の変位量(「−M」)を出力す
る。従って、上記(1)式による1回の演算で変更され
るテンポスピード量及びテンポスピードの増減を任意に
設定することができ、目標テンポスピードに到達する時
間を任意に調整することができる。
のホイール155から出力される変位量に応じた値が上
記(1)式におけるMの値として用られる。この際、ホ
イール155は、非操作位置(センター位置)に対して
正側に操作された場合は正の変位量(「+M」)、負側
に操作された場合は負の変位量(「−M」)を出力す
る。従って、上記(1)式による1回の演算で変更され
るテンポスピード量及びテンポスピードの増減を任意に
設定することができ、目標テンポスピードに到達する時
間を任意に調整することができる。
【0163】
【発明の効果】以上詳述したように、本発明によれば、
現テンポスピードの如何に拘わらず目標のテンポスピー
ドに素早く設定することのできる操作性に優れた自動演
奏装置のテンポスピード制御装置を提供することができ
る。
現テンポスピードの如何に拘わらず目標のテンポスピー
ドに素早く設定することのできる操作性に優れた自動演
奏装置のテンポスピード制御装置を提供することができ
る。
【図1】本発明の実施例1及び実施例2に共通に使用さ
れる自動演奏装置のテンポスピード制御装置の構成を示
すブロック図である。
れる自動演奏装置のテンポスピード制御装置の構成を示
すブロック図である。
【図2】(A)は本発明の実施例1及び実施例2に共通
に使用されるに操作パネルの一例を示す図であり、
(B)はホイールの構成を示す図である。
に使用されるに操作パネルの一例を示す図であり、
(B)はホイールの構成を示す図である。
【図3】本発明の実施例1及び実施例2に共通に使用さ
れるメインルーチンを示すフローチャートである。
れるメインルーチンを示すフローチャートである。
【図4】本発明の実施例1及び実施例2に共通に使用さ
れるMIDI−IN割込処理ルーチンを示すフローチャ
ートである。
れるMIDI−IN割込処理ルーチンを示すフローチャ
ートである。
【図5】本発明の実施例1及び実施例2に共通に使用さ
れるパネル制御処理ルーチンを示すフローチャートであ
る。
れるパネル制御処理ルーチンを示すフローチャートであ
る。
【図6】本発明の実施例1に使用されるテンポスピード
処理1ルーチンを示すフローチャートである。
処理1ルーチンを示すフローチャートである。
【図7】本発明の実施例1に使用されるテンポスピード
処理2ルーチンを示すフローチャートである。
処理2ルーチンを示すフローチャートである。
【図8】本発明の実施例1に使用されるタイマA割込処
理ルーチンを示すフローチャートである。
理ルーチンを示すフローチャートである。
【図9】本発明の実施例1に使用されるタイマB割込処
理ルーチンを示すフローチャートである。
理ルーチンを示すフローチャートである。
【図10】本発明の実施例2に使用されるテンポスピー
ド処理1ルーチンを示すフローチャートである。
ド処理1ルーチンを示すフローチャートである。
【図11】本発明の実施例2に使用されるテンポスピー
ド処理2ルーチンを示すフローチャートである。
ド処理2ルーチンを示すフローチャートである。
【図12】本発明の実施例2に使用されるタイマA割込
処理ルーチンを示すフローチャートである。
処理ルーチンを示すフローチャートである。
【図13】本発明の実施例2に使用されるオートインク
処理ルーチンを示すフローチャートである。
処理ルーチンを示すフローチャートである。
【図14】(A)本発明の実施例1及び実施例2に共通
に使用される受信バッファの構成を示す図であり、
(B)は本発明の実施例1及び実施例2に共通に使用さ
れるパターンデータの構成を示す図である。
に使用される受信バッファの構成を示す図であり、
(B)は本発明の実施例1及び実施例2に共通に使用さ
れるパターンデータの構成を示す図である。
【図15】本発明の実施例1に使用される変換テーブル
の一例を示す図である。
の一例を示す図である。
10 CPU 11 ROM 12 RAM 13 操作パネル 14 楽音発生器 15 スピーカシステム 16 タイマA 17 MIDIコントローラ 18 FDコントローラ 19 フロッピーディスクドライブ装置 20 タイマB 30 システムバス 130 小節/拍表示器 131 コード表示器 132 テンポスピード表示器 133 アップダウンスイッチ 134 ストップスイッチ 135 プレイ/ポーズスイッチ 136 FFスイッチ 137 REWスイッチ 138 リピートスイッチ 139 パート1スイッチ 140 パート2スイッチ 141 パート3スイッチ 142 パート4スイッチ 143〜150 LED表示器 155 ホイール
Claims (8)
- 【請求項1】 演奏情報を所定のテンポスピードで記録
し又は再生する自動演奏装置において、 テンポスピードの変更を指示するテンポ操作子と、 該テンポ操作子が操作された場合の変位を検出する変位
検出手段と、 該変位検出手段で検出された前記テンポ操作子の変位に
応じて現在のテンポスピードを所定の割合で変更する変
更手段、 とを有することを特徴とする自動演奏装置のテンポスピ
ード制御装置。 - 【請求項2】 前記テンポ操作子は正側と負側との双方
向に操作可能であり、前記変位検出手段は、該テンポ操
作子の正の変位又は負の変位を検出することを特徴とす
る請求項1に記載の自動演奏装置のテンポスピード制御
装置。 - 【請求項3】 前記変更手段は、前記変位検出手段で検
出された前記テンポ操作子の変位に応じて現在のテンポ
スピードを所定の指数関数に従って変更することを特徴
とする請求項1に記載の自動演奏装置のテンポスピード
制御装置。 - 【請求項4】 前記テンポ操作子は特定の非操作位置を
有し、該非操作位置に対して正側及び負側の双方向に多
段階の変位量を出力し、前記変更手段は、前記変位検出
手段で検出された該テンポ操作子の変位量に応じて現在
のテンポスピードを変更することを特徴とする請求項1
に記載の自動演奏装置のテンポスピード制御装置。 - 【請求項5】 前記テンポ操作子が所定時間以上操作さ
れている場合に操作続行中であることを検出する操作続
行検出手段と、 一定時間間隔でテンポ変更タイミングを発生するタイミ
ング発生手段、とを更に有し、 前記変更手段は、前記操作続行手段により操作続行中で
あることが検出されている間は、前記タイミング発生手
段で発生された各テンポ変更タイミングにおいて、前記
変位検出手段で検出された前記テンポ操作子の変位に応
じて現在のテンポスピードを所定の割合で変更すること
を特徴とする請求項1〜請求項4のいずれかに記載の自
動演奏装置のテンポスピード制御装置。 - 【請求項6】 演奏情報を所定のテンポスピードで記録
し又は再生する自動演奏装置において、 テンポスピードの変更を指示するテンポ操作子と、 該テンポ操作子が操作された場合の変位を検出する変位
検出手段と、 前記テンポ操作子が所定時間以上操作されている場合に
操作続行中であることを検出する操作続行検出手段と、 該操作続行検出手段により操作続行中であることが検出
されている間は、テンポスピードに応じた時間間隔でテ
ンポ変更タイミングを発生するタイミング発生手段と、 該タイミング発生手段で発生された各テンポ変更タイミ
ングにおいて、前記変位検出手段で検出されたテンポ操
作子の変位に応じて現在のテンポスピードを所定の割合
で変更する変更手段、 とを有することを特徴とする自動演奏装置のテンポスピ
ード制御装置。 - 【請求項7】 前記タイミング発生手段は、テンポスピ
ードに比例して発生間隔が短く又は長くなるテンポ変更
タイミングを発生することを特徴とする請求項5に記載
の自動演奏装置のテンポスピード制御装置。 - 【請求項8】 前記テンポ操作子は特定の非操作位置を
有し、該非操作位置に対して正側及び負側の双方向に多
段階の変位量を出力し、前記変更手段は、各テンポ変更
タイミングにおいて、前記変位検出手段で検出されたテ
ンポ操作子の変位量に応じて現在のテンポスピードを変
更することを特徴とする請求項5に記載の自動演奏装置
のテンポスピード制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6230744A JPH0876760A (ja) | 1994-08-31 | 1994-08-31 | 自動演奏装置のテンポスピード制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6230744A JPH0876760A (ja) | 1994-08-31 | 1994-08-31 | 自動演奏装置のテンポスピード制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0876760A true JPH0876760A (ja) | 1996-03-22 |
Family
ID=16912619
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6230744A Withdrawn JPH0876760A (ja) | 1994-08-31 | 1994-08-31 | 自動演奏装置のテンポスピード制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0876760A (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007279490A (ja) * | 2006-04-10 | 2007-10-25 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
| JP2009020539A (ja) * | 2008-10-27 | 2009-01-29 | Yamaha Corp | 自動演奏装置及びプログラム |
| JP2009217025A (ja) * | 2008-03-11 | 2009-09-24 | Yamaha Corp | 電子楽器及びそのプログラム |
| CN102198571A (zh) * | 2011-05-17 | 2011-09-28 | 安徽绿能技术研究院 | 高强度高韧性埋弧焊料 |
| JP2015525895A (ja) * | 2012-06-29 | 2015-09-07 | ノキア コーポレイション | オーディオ信号分析 |
| WO2020217324A1 (ja) * | 2019-04-23 | 2020-10-29 | AlphaTheta株式会社 | 電子楽器および楽曲フレーズ生成プログラム |
-
1994
- 1994-08-31 JP JP6230744A patent/JPH0876760A/ja not_active Withdrawn
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007279490A (ja) * | 2006-04-10 | 2007-10-25 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
| JP2009217025A (ja) * | 2008-03-11 | 2009-09-24 | Yamaha Corp | 電子楽器及びそのプログラム |
| JP2009020539A (ja) * | 2008-10-27 | 2009-01-29 | Yamaha Corp | 自動演奏装置及びプログラム |
| CN102198571A (zh) * | 2011-05-17 | 2011-09-28 | 安徽绿能技术研究院 | 高强度高韧性埋弧焊料 |
| JP2015525895A (ja) * | 2012-06-29 | 2015-09-07 | ノキア コーポレイション | オーディオ信号分析 |
| WO2020217324A1 (ja) * | 2019-04-23 | 2020-10-29 | AlphaTheta株式会社 | 電子楽器および楽曲フレーズ生成プログラム |
| JPWO2020217324A1 (ja) * | 2019-04-23 | 2020-10-29 | ||
| US12347410B2 (en) | 2019-04-23 | 2025-07-01 | Alphatheta Corporation | Electronic musical instrument and musical piece phrase generation program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0876760A (ja) | 自動演奏装置のテンポスピード制御装置 | |
| US5239124A (en) | Iteration control system for an automatic playing apparatus | |
| US5308917A (en) | Keyboard touch response setting apparatus | |
| JP4134945B2 (ja) | 自動演奏装置及びプログラム | |
| JP3625914B2 (ja) | アルペジエータ | |
| US5508471A (en) | Automatic performance apparatus for an electronic musical instrument | |
| JP3019755B2 (ja) | 楽音発生方法および楽音発生装置 | |
| US5220118A (en) | Auto-play musical instrument with a dial for controlling tone-up level of auto-play tones | |
| JP3171759B2 (ja) | 自動演奏装置 | |
| JP2958487B2 (ja) | クリツク音による設定状態告知機能を備えた電子楽器 | |
| JP3173704B2 (ja) | 自動演奏装置 | |
| JP3630266B2 (ja) | 自動伴奏装置 | |
| JP4229355B2 (ja) | 電子楽器のパラメータ設定装置 | |
| JP3385545B2 (ja) | 自動演奏装置 | |
| JP3625913B2 (ja) | アルペジエータ | |
| JP2002162964A (ja) | 自動演奏装置 | |
| JPH0863159A (ja) | 自動演奏装置 | |
| JP3404818B2 (ja) | 自動演奏装置 | |
| JPH10116077A (ja) | 自動演奏装置のテンポ制御装置及びテンポ制御方法 | |
| JP3385544B2 (ja) | 自動演奏装置 | |
| JP3324881B2 (ja) | 自動演奏装置 | |
| JPH05173551A (ja) | ピアノの自動演奏装置 | |
| JP2665854B2 (ja) | 自動演奏装置 | |
| JP3022022B2 (ja) | 自動演奏装置 | |
| JP2005010458A (ja) | 自動アルペジオ装置および同装置に適用されるコンピュータプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20011106 |