JPH0876758A - 自動伴奏装置 - Google Patents
自動伴奏装置Info
- Publication number
- JPH0876758A JPH0876758A JP6240514A JP24051494A JPH0876758A JP H0876758 A JPH0876758 A JP H0876758A JP 6240514 A JP6240514 A JP 6240514A JP 24051494 A JP24051494 A JP 24051494A JP H0876758 A JPH0876758 A JP H0876758A
- Authority
- JP
- Japan
- Prior art keywords
- chord
- key
- code
- data
- keys
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B15/00—Teaching music
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
- G10H1/38—Chord
- G10H1/383—Chord detection and/or recognition, e.g. for correction, or automatic bass generation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S84/00—Music
- Y10S84/22—Chord organs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Abstract
(57)【要約】
【目的】本発明は、押鍵情報に応じてコード演奏による
自動伴奏を行う自動伴奏装置に関し、初心者又は熟練者
であることを格別指定しなくても演奏者の技量に応じた
方法でコード検出を行うと共に、演奏者の技量に応じた
和音情報をロワー音として発音するために出力すること
のできる自動伴奏装置を提供することを目的とする。 【構成】特定鍵域の押鍵状態を検出する押鍵状態検出手
段10と、該押鍵状態検出手段で検出された押鍵状態に
応じて生成された演奏技量を判定するためのデータを順
次記憶する記憶手段12と、該記憶手段に記憶された複
数の前記データに基づき演奏技量を判定する演奏技量判
定手段10と、該演奏技量判定手段による判定結果に応
じて、複数の和音情報生成方法の中から1つの和音情報
生成方法を選択し、該選択された和音情報生成方法を用
いて前記特定鍵域の押鍵状態に応じた和音情報を生成す
る和音情報生成手段10、とを備えて構成される。
自動伴奏を行う自動伴奏装置に関し、初心者又は熟練者
であることを格別指定しなくても演奏者の技量に応じた
方法でコード検出を行うと共に、演奏者の技量に応じた
和音情報をロワー音として発音するために出力すること
のできる自動伴奏装置を提供することを目的とする。 【構成】特定鍵域の押鍵状態を検出する押鍵状態検出手
段10と、該押鍵状態検出手段で検出された押鍵状態に
応じて生成された演奏技量を判定するためのデータを順
次記憶する記憶手段12と、該記憶手段に記憶された複
数の前記データに基づき演奏技量を判定する演奏技量判
定手段10と、該演奏技量判定手段による判定結果に応
じて、複数の和音情報生成方法の中から1つの和音情報
生成方法を選択し、該選択された和音情報生成方法を用
いて前記特定鍵域の押鍵状態に応じた和音情報を生成す
る和音情報生成手段10、とを備えて構成される。
Description
【0001】
【産業上の利用分野】本発明は、押鍵情報に応じてコー
ド演奏による自動伴奏を行う自動伴奏装置に関する。
ド演奏による自動伴奏を行う自動伴奏装置に関する。
【0002】
【従来の技術】従来、予め記憶手段に記憶された自動演
奏データ(以下、「パターンデータ」という。)を読み
出し、これを例えば鍵盤装置等で指定されたコードに応
じて展開し、この展開によって得られた複数の和音構成
音を発生するための和音情報を音源に与えることによ
り、所定の演奏パターンに則って所定のコード進行に従
った伴奏音を発生する自動伴奏装置が知られている。
奏データ(以下、「パターンデータ」という。)を読み
出し、これを例えば鍵盤装置等で指定されたコードに応
じて展開し、この展開によって得られた複数の和音構成
音を発生するための和音情報を音源に与えることによ
り、所定の演奏パターンに則って所定のコード進行に従
った伴奏音を発生する自動伴奏装置が知られている。
【0003】この種の自動伴奏装置を搭載した電子楽器
では、例えばアッパー鍵がメロディ用、ロワー鍵がコー
ド検出用としてそれぞれ割り当てられており、ロワー鍵
でコードを指定して所定のコード進行に応じた伴奏音を
発生させながらアッパー鍵でメロディを弾くという方法
で使用されている。
では、例えばアッパー鍵がメロディ用、ロワー鍵がコー
ド検出用としてそれぞれ割り当てられており、ロワー鍵
でコードを指定して所定のコード進行に応じた伴奏音を
発生させながらアッパー鍵でメロディを弾くという方法
で使用されている。
【0004】ところで、ロワー鍵でコードを指定する場
合、通常、コードが成立するような押鍵パターンで3鍵
以上の鍵が押される。自動伴奏装置は、かかる押鍵パタ
ーンからコード(コードタイプ及びコードルート)を検
出し、記憶手段から読み出されたパターンデータを、こ
の検出されたコードに従って展開し発音に供する。
合、通常、コードが成立するような押鍵パターンで3鍵
以上の鍵が押される。自動伴奏装置は、かかる押鍵パタ
ーンからコード(コードタイプ及びコードルート)を検
出し、記憶手段から読み出されたパターンデータを、こ
の検出されたコードに従って展開し発音に供する。
【0005】しかし、初心者にとっては、自動伴奏の進
行タイミングに合わせて3鍵以上を押鍵する操作は非常
に困難であった。そこで、従来は、3鍵以上の押鍵によ
りコード指定するものは熟練者用のコード指定方法と
し、これとは別に、初心者用として、1音又は2音でコ
ード指定する方法が用いられている。この場合のコード
検出は例えば以下のようにして行われる。即ち、1鍵の
みを押鍵してコード指定した場合は、例えば押鍵に係る
キーコードがそのままコードルートとして用いられコー
ドタイプはメジャー(固定)としてコード検出される。
2鍵を押鍵してコード指定した場合は、例えば低音側の
キーコードがコードルートとして用いられ、コードタイ
プは、短3度で押鍵された場合はマイナー、長3度で押
鍵された場合はメジャーとしてコード検出される。そし
て、これらコードルート及びコードタイプに基づきパタ
ーンデータが複数の和音に展開されて和音情報が生成さ
れる。
行タイミングに合わせて3鍵以上を押鍵する操作は非常
に困難であった。そこで、従来は、3鍵以上の押鍵によ
りコード指定するものは熟練者用のコード指定方法と
し、これとは別に、初心者用として、1音又は2音でコ
ード指定する方法が用いられている。この場合のコード
検出は例えば以下のようにして行われる。即ち、1鍵の
みを押鍵してコード指定した場合は、例えば押鍵に係る
キーコードがそのままコードルートとして用いられコー
ドタイプはメジャー(固定)としてコード検出される。
2鍵を押鍵してコード指定した場合は、例えば低音側の
キーコードがコードルートとして用いられ、コードタイ
プは、短3度で押鍵された場合はマイナー、長3度で押
鍵された場合はメジャーとしてコード検出される。そし
て、これらコードルート及びコードタイプに基づきパタ
ーンデータが複数の和音に展開されて和音情報が生成さ
れる。
【0006】また、初心者用の他のコード指定方法とし
て、タッチバーと呼ばれる操作子を用いたワンフィンガ
ーによるコード指定方法も知られている。この方法によ
るコード指定では、押鍵に係るキーコードがコードルー
トとして用いられ、コードタイプはタッチバーの操作状
態に応じて決定される。この場合も、コードルート及び
コードタイプに基づきパターンデータが複数の和音に展
開されて和音情報が生成される。
て、タッチバーと呼ばれる操作子を用いたワンフィンガ
ーによるコード指定方法も知られている。この方法によ
るコード指定では、押鍵に係るキーコードがコードルー
トとして用いられ、コードタイプはタッチバーの操作状
態に応じて決定される。この場合も、コードルート及び
コードタイプに基づきパターンデータが複数の和音に展
開されて和音情報が生成される。
【0007】このように、従来の自動伴奏装置は、初心
者用及び熟練者用といった複数の方法でコード指定が可
能である。この場合、コード検出方法や和音情報発生方
法が異なるので、何れのコード検出方法や和音情報発生
方法を用いるかは操作パネルに設けられた専用の操作子
で指定するようになっている。
者用及び熟練者用といった複数の方法でコード指定が可
能である。この場合、コード検出方法や和音情報発生方
法が異なるので、何れのコード検出方法や和音情報発生
方法を用いるかは操作パネルに設けられた専用の操作子
で指定するようになっている。
【0008】
【発明が解決しようとする課題】しかしながら、初心者
は1鍵又は2鍵を用いてコード指定を行い、熟練者は3
鍵以上を用いてコード指定を行うのが一般的であるとい
う事実に鑑みれば、初心者と熟練者とを自動的に判別す
ることは可能であり、専用の操作子を設けてこれらを切
り換える構成は無駄である。
は1鍵又は2鍵を用いてコード指定を行い、熟練者は3
鍵以上を用いてコード指定を行うのが一般的であるとい
う事実に鑑みれば、初心者と熟練者とを自動的に判別す
ることは可能であり、専用の操作子を設けてこれらを切
り換える構成は無駄である。
【0009】また、ロワー鍵の押鍵に基づくコード検出
とは別に、初心者は1鍵又は2鍵しか押せないので和音
情報に展開してロワー音として発音して欲しいが、熟練
者ともなると押鍵した和音を(例えそれが和音構成にな
っていなくても)そのままロワー音として発音したいと
いう要望が出てくる。
とは別に、初心者は1鍵又は2鍵しか押せないので和音
情報に展開してロワー音として発音して欲しいが、熟練
者ともなると押鍵した和音を(例えそれが和音構成にな
っていなくても)そのままロワー音として発音したいと
いう要望が出てくる。
【0010】本発明は、かかる事情に鑑みてなされたも
のであり、その目的は、初心者又は熟練者であることを
格別指定しなくても演奏者の技量に応じた方法でコード
検出を行うと共に、これまた演奏者の技量に応じた和音
情報をロワー音として発音するために出力することので
きる自動伴奏装置を提供することにある。
のであり、その目的は、初心者又は熟練者であることを
格別指定しなくても演奏者の技量に応じた方法でコード
検出を行うと共に、これまた演奏者の技量に応じた和音
情報をロワー音として発音するために出力することので
きる自動伴奏装置を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に記載の発明は、特定鍵域の押鍵状態を検
出する押鍵状態検出手段と、該押鍵状態検出手段で検出
された押鍵状態に応じて生成された演奏技量を判定する
ためのデータを順次記憶する記憶手段と、該記憶手段に
記憶された複数の前記データに基づき演奏技量を判定す
る演奏技量判定手段と、該演奏技量判定手段による判定
結果に応じて、複数の和音情報生成方法の中から1つの
和音情報生成方法を選択し、該選択された和音情報生成
方法を用いて前記特定鍵域の押鍵状態に応じた和音情報
を生成する和音情報生成手段、とを具備したことを特徴
とする。
に、請求項1に記載の発明は、特定鍵域の押鍵状態を検
出する押鍵状態検出手段と、該押鍵状態検出手段で検出
された押鍵状態に応じて生成された演奏技量を判定する
ためのデータを順次記憶する記憶手段と、該記憶手段に
記憶された複数の前記データに基づき演奏技量を判定す
る演奏技量判定手段と、該演奏技量判定手段による判定
結果に応じて、複数の和音情報生成方法の中から1つの
和音情報生成方法を選択し、該選択された和音情報生成
方法を用いて前記特定鍵域の押鍵状態に応じた和音情報
を生成する和音情報生成手段、とを具備したことを特徴
とする。
【0012】また、同様の目的で、請求項2に記載の発
明は、請求項1に記載の発明において、前記押鍵状態検
出手段で3鍵以上が押鍵され且つ和音が成立したことが
検出された場合に熟練者データが、そうでない場合に初
心者データがそれぞれ順次前記記憶手段に記憶され、前
記演奏技量判定手段は、前記記憶手段に記憶された熟練
者データが所定数以上ならば演奏技量は熟練者であると
判定し、そうでなければ初心者と判定することを特徴と
する。
明は、請求項1に記載の発明において、前記押鍵状態検
出手段で3鍵以上が押鍵され且つ和音が成立したことが
検出された場合に熟練者データが、そうでない場合に初
心者データがそれぞれ順次前記記憶手段に記憶され、前
記演奏技量判定手段は、前記記憶手段に記憶された熟練
者データが所定数以上ならば演奏技量は熟練者であると
判定し、そうでなければ初心者と判定することを特徴と
する。
【0013】また、同様の目的で、請求項3に記載の発
明は、請求項1に記載の発明において、前記和音情報生
成手段が、前記特定鍵域の1鍵又は2鍵の押鍵により検
出されたコードを展開して3音以上の和音情報を生成す
る第1の和音情報生成方法と、前記特定鍵域における押
鍵情報をそのまま和音情報とする第2の和音情報生成方
法を有することを特徴とする。
明は、請求項1に記載の発明において、前記和音情報生
成手段が、前記特定鍵域の1鍵又は2鍵の押鍵により検
出されたコードを展開して3音以上の和音情報を生成す
る第1の和音情報生成方法と、前記特定鍵域における押
鍵情報をそのまま和音情報とする第2の和音情報生成方
法を有することを特徴とする。
【0014】また、同様の目的で、請求項4に記載の発
明は、請求項1に記載の発明において、特定鍵域の押鍵
状態を検出する押鍵状態検出手段と、該押鍵状態検出手
段で3鍵以上が押鍵され且つ和音が成立したことが検出
された場合に熟練者データが、そうでない場合に初心者
データがそれぞれ順次記憶される記憶手段と、該記憶手
段に記憶された熟練者データが所定数以上ならば演奏技
量は熟練者であると判定し、そうでなければ初心者と判
定する演奏技量判定手段と、該演奏技量判定手段により
初心者と判定された場合に前記特定鍵域の1鍵又は2鍵
の押鍵により検出されたコードを展開して3音以上の和
音情報を生成し、熟練者と判定された場合に前記特定鍵
域における押鍵情報をそのまま和音情報とする和音情報
生成手段、とを備えたことを特徴とする。
明は、請求項1に記載の発明において、特定鍵域の押鍵
状態を検出する押鍵状態検出手段と、該押鍵状態検出手
段で3鍵以上が押鍵され且つ和音が成立したことが検出
された場合に熟練者データが、そうでない場合に初心者
データがそれぞれ順次記憶される記憶手段と、該記憶手
段に記憶された熟練者データが所定数以上ならば演奏技
量は熟練者であると判定し、そうでなければ初心者と判
定する演奏技量判定手段と、該演奏技量判定手段により
初心者と判定された場合に前記特定鍵域の1鍵又は2鍵
の押鍵により検出されたコードを展開して3音以上の和
音情報を生成し、熟練者と判定された場合に前記特定鍵
域における押鍵情報をそのまま和音情報とする和音情報
生成手段、とを備えたことを特徴とする。
【0015】また、同様の目的で、請求項5に記載の発
明は、特定鍵域における押鍵数を検出する押鍵数検出手
段と、コードタイプを指定するコードタイプ指定操作子
と、前記押鍵数検出手段で検出された押鍵数が1鍵のと
きは該鍵で指定されるコードルートと前記コードタイプ
指定操作子で指定されるコードタイプとからなるコード
を検出する第1のコード検出手段と、前記押鍵数検出手
段で検出された押鍵数が2鍵以上のときは、押下された
複数の鍵のみに基づきコードタイプとコードルートとか
らなるコードを検出する第2のコード検出手段と、前記
第1のコード検出手段又は第2のコード検出手段で検出
されたコードに基づき自動伴奏音を発生する自動伴奏音
発生手段、とを有することを特徴とする。
明は、特定鍵域における押鍵数を検出する押鍵数検出手
段と、コードタイプを指定するコードタイプ指定操作子
と、前記押鍵数検出手段で検出された押鍵数が1鍵のと
きは該鍵で指定されるコードルートと前記コードタイプ
指定操作子で指定されるコードタイプとからなるコード
を検出する第1のコード検出手段と、前記押鍵数検出手
段で検出された押鍵数が2鍵以上のときは、押下された
複数の鍵のみに基づきコードタイプとコードルートとか
らなるコードを検出する第2のコード検出手段と、前記
第1のコード検出手段又は第2のコード検出手段で検出
されたコードに基づき自動伴奏音を発生する自動伴奏音
発生手段、とを有することを特徴とする。
【0016】また、同様の目的で、請求項6に記載の発
明は、請求項5に記載の発明において、前記コードタイ
プ指定操作子は、コードタイプがマイナーであることを
指定する第1の操作子とコードタイプがセブンスである
ことを指定する第2の操作子とを有し、第1の操作子の
操作に応じてコードタイプとしてマイナーが検出され、
第2の操作子の操作に応じてコードタイプとしてセブン
スが検出され、第1の操作子及び第2の操作子の何れも
操作されていないときはコードタイプとしてメジャーが
検出されることを特徴とする。
明は、請求項5に記載の発明において、前記コードタイ
プ指定操作子は、コードタイプがマイナーであることを
指定する第1の操作子とコードタイプがセブンスである
ことを指定する第2の操作子とを有し、第1の操作子の
操作に応じてコードタイプとしてマイナーが検出され、
第2の操作子の操作に応じてコードタイプとしてセブン
スが検出され、第1の操作子及び第2の操作子の何れも
操作されていないときはコードタイプとしてメジャーが
検出されることを特徴とする。
【0017】また、同様の目的で、請求項7に記載の発
明は、特定鍵域における押鍵数を検出する押鍵数検出手
段と、前記特定鍵域における押鍵に基づきコードルート
とコードタイプからなるコードを検出するコード検出手
段と、前記押鍵数検出手段で検出された押鍵数が所定数
未満のときは前記コード検出手段で検出されたコードか
ら前記押鍵数以上の発音数となるように和音情報を生成
して出力し、前記押鍵数検出手段で検出された押鍵数が
所定数以上のときは前記特定鍵域における押鍵情報をそ
のまま和音情報として出力する和音情報出力手段、とを
有することを特徴とする。
明は、特定鍵域における押鍵数を検出する押鍵数検出手
段と、前記特定鍵域における押鍵に基づきコードルート
とコードタイプからなるコードを検出するコード検出手
段と、前記押鍵数検出手段で検出された押鍵数が所定数
未満のときは前記コード検出手段で検出されたコードか
ら前記押鍵数以上の発音数となるように和音情報を生成
して出力し、前記押鍵数検出手段で検出された押鍵数が
所定数以上のときは前記特定鍵域における押鍵情報をそ
のまま和音情報として出力する和音情報出力手段、とを
有することを特徴とする。
【0018】また、同様の目的で、請求項8に記載の発
明は、請求項7に記載の発明において、前記所定数とし
て「3」を用いたことを特徴とする。
明は、請求項7に記載の発明において、前記所定数とし
て「3」を用いたことを特徴とする。
【0019】
【作用】請求項1に記載の発明においては、例えばコー
ド検出領域として割り当てられた特定鍵域の押鍵状態に
応じて演奏技量を判定するためのデータを記憶手段に順
次記憶すると共に、この記憶手段に記憶された複数のデ
ータに基づき演奏者の演奏技量を判定し、この判定結果
に基づいて演奏者の演奏技量に応じた和音情報生成方法
を用いて和音情報を生成するようにしている。
ド検出領域として割り当てられた特定鍵域の押鍵状態に
応じて演奏技量を判定するためのデータを記憶手段に順
次記憶すると共に、この記憶手段に記憶された複数のデ
ータに基づき演奏者の演奏技量を判定し、この判定結果
に基づいて演奏者の演奏技量に応じた和音情報生成方法
を用いて和音情報を生成するようにしている。
【0020】従って、演奏者が順次コード指定を行いな
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者のコード演奏に関する技量、例えば初
心者であるか又は熟練者であるかを判別することができ
る。そして、この判別結果に基づいて最適な和音情報生
成方法が選択され、以後の特定鍵域の押鍵に対してはこ
の選択された和音情報生成方法で和音情報が生成される
ので、従来のように、初心者又は熟練者であることを特
別に指定しなくても演奏者の技量に応じた和音情報を生
成して出力することができる。
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者のコード演奏に関する技量、例えば初
心者であるか又は熟練者であるかを判別することができ
る。そして、この判別結果に基づいて最適な和音情報生
成方法が選択され、以後の特定鍵域の押鍵に対してはこ
の選択された和音情報生成方法で和音情報が生成される
ので、従来のように、初心者又は熟練者であることを特
別に指定しなくても演奏者の技量に応じた和音情報を生
成して出力することができる。
【0021】請求項2に記載の発明においては、例えば
コード検出領域として割り当てられた特定鍵域の押鍵状
態に応じて、即ち、3鍵以上が押鍵され且つ和音が成立
したことが検出された場合に熟練者データを、そうでな
い場合に初心者データを記憶手段に順次記憶すると共
に、この記憶手段に記憶された熟練者データが所定数以
上ならば演奏技量は熟練者であると判定し、そうでなけ
れば初心者と判定し、この判定結果に基づいて演奏者の
演奏技量に応じた和音情報生成方法を用いて和音情報を
生成するようにしている。
コード検出領域として割り当てられた特定鍵域の押鍵状
態に応じて、即ち、3鍵以上が押鍵され且つ和音が成立
したことが検出された場合に熟練者データを、そうでな
い場合に初心者データを記憶手段に順次記憶すると共
に、この記憶手段に記憶された熟練者データが所定数以
上ならば演奏技量は熟練者であると判定し、そうでなけ
れば初心者と判定し、この判定結果に基づいて演奏者の
演奏技量に応じた和音情報生成方法を用いて和音情報を
生成するようにしている。
【0022】従って、演奏者が順次コード指定を行いな
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができる。そして、
この判別結果に基づいて最適な和音情報生成方法が選択
され、以後の特定鍵域の押鍵に対してはこの選択された
和音情報生成方法で和音情報が生成されるので、従来の
ように、初心者又は熟練者であることを特別に指定しな
くても演奏者の技量に応じた和音情報を生成して出力す
ることができる。
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができる。そして、
この判別結果に基づいて最適な和音情報生成方法が選択
され、以後の特定鍵域の押鍵に対してはこの選択された
和音情報生成方法で和音情報が生成されるので、従来の
ように、初心者又は熟練者であることを特別に指定しな
くても演奏者の技量に応じた和音情報を生成して出力す
ることができる。
【0023】請求項3に記載の発明においては、例えば
コード検出領域として割り当てられた特定鍵域の押鍵状
態に応じて演奏技量を判定するためのデータを記憶手段
に順次記憶すると共に、この記憶手段に記憶された複数
のデータに基づき演奏者の演奏技量を判定し、この判定
結果に基づいて、特定鍵域の1鍵又は2鍵の押鍵により
検出されたコードを展開して3音以上の和音情報を生成
する第1の和音情報生成方法、又は前記特定鍵域におけ
る押鍵情報をそのまま和音情報とする第2の和音情報生
成方法のいずれかを用いて和音情報を生成するようにし
ている。
コード検出領域として割り当てられた特定鍵域の押鍵状
態に応じて演奏技量を判定するためのデータを記憶手段
に順次記憶すると共に、この記憶手段に記憶された複数
のデータに基づき演奏者の演奏技量を判定し、この判定
結果に基づいて、特定鍵域の1鍵又は2鍵の押鍵により
検出されたコードを展開して3音以上の和音情報を生成
する第1の和音情報生成方法、又は前記特定鍵域におけ
る押鍵情報をそのまま和音情報とする第2の和音情報生
成方法のいずれかを用いて和音情報を生成するようにし
ている。
【0024】従って、演奏者が順次コード指定を行いな
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者のコード演奏に関する技量、例えば初
心者であるか又は熟練者であるかを判別することができ
る。そして、この判別結果に基づいて第1又は第2の和
音情報生成方法の何れかが選択され、以後の特定鍵域の
押鍵に対してはこの選択された第1又は第2の和音情報
生成方法で和音情報が生成されるので、従来のように、
初心者又は熟練者であることを特別に指定しなくても演
奏者の技量に応じた和音情報を生成して出力することが
できる。
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者のコード演奏に関する技量、例えば初
心者であるか又は熟練者であるかを判別することができ
る。そして、この判別結果に基づいて第1又は第2の和
音情報生成方法の何れかが選択され、以後の特定鍵域の
押鍵に対してはこの選択された第1又は第2の和音情報
生成方法で和音情報が生成されるので、従来のように、
初心者又は熟練者であることを特別に指定しなくても演
奏者の技量に応じた和音情報を生成して出力することが
できる。
【0025】請求項4に記載の発明においては、例えば
コード検出領域として割り当てられた特定鍵域の押鍵状
態に応じて、即ち、3鍵以上が押鍵され且つ和音が成立
したことが検出された場合に熟練者データを、そうでな
い場合に初心者データを記憶手段に順次記憶すると共
に、この記憶手段に記憶された熟練者データが所定数以
上ならば演奏技量は熟練者であると判定し、そうでなけ
れば初心者と判定し、この判定により初心者と判定され
た場合は特定鍵域の1鍵又は2鍵の押鍵により検出され
たコードを展開して3音以上の和音情報を生成する第1
の和音情報生成方法を用い、一方、熟練者と判定された
場合は特定鍵域における押鍵情報をそのまま和音情報と
する第2の和音情報生成方法を用いて和音情報を生成す
るようにしている。
コード検出領域として割り当てられた特定鍵域の押鍵状
態に応じて、即ち、3鍵以上が押鍵され且つ和音が成立
したことが検出された場合に熟練者データを、そうでな
い場合に初心者データを記憶手段に順次記憶すると共
に、この記憶手段に記憶された熟練者データが所定数以
上ならば演奏技量は熟練者であると判定し、そうでなけ
れば初心者と判定し、この判定により初心者と判定され
た場合は特定鍵域の1鍵又は2鍵の押鍵により検出され
たコードを展開して3音以上の和音情報を生成する第1
の和音情報生成方法を用い、一方、熟練者と判定された
場合は特定鍵域における押鍵情報をそのまま和音情報と
する第2の和音情報生成方法を用いて和音情報を生成す
るようにしている。
【0026】従って、演奏者が順次コード指定を行いな
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができる。そして、
この判別結果により初心者とされた場合は第1の和音情
報生成方法が選択され、熟練者とされた場合は第2の和
音情報生成方法が選択され、以後の特定鍵域の押鍵に対
してはこの選択された第1又は第2の和音情報生成方法
で和音情報が生成されるので、従来のように、初心者又
は熟練者であることを特別に指定しなくても演奏者の技
量に応じた和音情報を生成して出力することができる。
がらコード演奏を行った場合に、そのコード演奏の流れ
に基づいて演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができる。そして、
この判別結果により初心者とされた場合は第1の和音情
報生成方法が選択され、熟練者とされた場合は第2の和
音情報生成方法が選択され、以後の特定鍵域の押鍵に対
してはこの選択された第1又は第2の和音情報生成方法
で和音情報が生成されるので、従来のように、初心者又
は熟練者であることを特別に指定しなくても演奏者の技
量に応じた和音情報を生成して出力することができる。
【0027】より具体的には、初期状態(例えば、工場
出荷時又は電源投入時等)では、演奏技量は初心者と設
定され、演奏者が3鍵以上を押鍵し且つ和音が成立した
回数が所定数以上、例えば特定鍵域の押鍵が検出された
場合の少なくとも半分以上がコードとして成立した場合
に自動的に熟練者として再設定される。これにより、従
来のような初心者と熟練者とを切り換える操作子が不要
となっている。
出荷時又は電源投入時等)では、演奏技量は初心者と設
定され、演奏者が3鍵以上を押鍵し且つ和音が成立した
回数が所定数以上、例えば特定鍵域の押鍵が検出された
場合の少なくとも半分以上がコードとして成立した場合
に自動的に熟練者として再設定される。これにより、従
来のような初心者と熟練者とを切り換える操作子が不要
となっている。
【0028】請求項5に記載の発明においては、例えば
コード検出領域として割り当てられた特定鍵域の押鍵数
が1鍵のときは、演奏者は初心者とみなし、その鍵で指
定される音高をコードルートとし、これとコードタイプ
指定操作子で指定されるコードタイプとからなるコード
を検出する。一方、特定鍵域の押鍵数が2鍵以上のとき
は、演奏者は熟練者とみなし、押下された複数の鍵のみ
に基づきコードタイプとコードルートとからなるコード
を検出する。このようにして検出されたコードは、例え
ばパターンデータを展開するために使用され、展開によ
り得られた和音構成音は自動伴奏音を発生するために使
用される。
コード検出領域として割り当てられた特定鍵域の押鍵数
が1鍵のときは、演奏者は初心者とみなし、その鍵で指
定される音高をコードルートとし、これとコードタイプ
指定操作子で指定されるコードタイプとからなるコード
を検出する。一方、特定鍵域の押鍵数が2鍵以上のとき
は、演奏者は熟練者とみなし、押下された複数の鍵のみ
に基づきコードタイプとコードルートとからなるコード
を検出する。このようにして検出されたコードは、例え
ばパターンデータを展開するために使用され、展開によ
り得られた和音構成音は自動伴奏音を発生するために使
用される。
【0029】従って、演奏者が順次コード指定を行いな
がらコード演奏を行った場合に、その押鍵数に基づい
て、例えば演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができ、この判別結
果により初心者とされた場合は第1のコード検出手段
を、熟練者とされた場合は第2のコード検出手段をそれ
ぞれ用いてコード検出が行われる。従って、従来のよう
に、初心者又は熟練者であることを特別に指定しなくて
も演奏者の技量に応じたコード検出を行って自動伴奏に
供することができる。
がらコード演奏を行った場合に、その押鍵数に基づい
て、例えば演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができ、この判別結
果により初心者とされた場合は第1のコード検出手段
を、熟練者とされた場合は第2のコード検出手段をそれ
ぞれ用いてコード検出が行われる。従って、従来のよう
に、初心者又は熟練者であることを特別に指定しなくて
も演奏者の技量に応じたコード検出を行って自動伴奏に
供することができる。
【0030】請求項6に記載の発明においては、コード
タイプ指定操作子の第1の操作子を操作すればマイナー
が、第2の操作子を操作すればセブンスが、両方とも操
作されていない場合はメジャーが、それぞれコードタイ
プとして出力される。従って、第1及び第2の両操作子
が操作された場合はマイナーセブンスが出力されること
になる。このように、初心者が1鍵のみ押下してコード
指定する場合も、コードタイプ指定操作子を併用するこ
とにより、メジャーのみならず、複数のコードタイプを
指定することができ、より有用な自動伴奏装置を提供で
きるものとなっている。
タイプ指定操作子の第1の操作子を操作すればマイナー
が、第2の操作子を操作すればセブンスが、両方とも操
作されていない場合はメジャーが、それぞれコードタイ
プとして出力される。従って、第1及び第2の両操作子
が操作された場合はマイナーセブンスが出力されること
になる。このように、初心者が1鍵のみ押下してコード
指定する場合も、コードタイプ指定操作子を併用するこ
とにより、メジャーのみならず、複数のコードタイプを
指定することができ、より有用な自動伴奏装置を提供で
きるものとなっている。
【0031】請求項7に記載の発明においては、例えば
コード検出領域として割り当てられた特定鍵域の押鍵数
を検出し、押鍵数が所定数未満であることが検出された
ときは初心者であると判断し、当該押鍵数に基づくコー
ド検出を行い、この検出されたコードから押鍵数以上の
発音数(例えば通常の和音を構成する音の数)となるよ
うに音が付加された和音情報を生成し、一方、押鍵数が
所定数以上であることが検出されたときは、特定鍵域の
押鍵に対応した押鍵情報をそのまま和音情報として出力
するようにしている。
コード検出領域として割り当てられた特定鍵域の押鍵数
を検出し、押鍵数が所定数未満であることが検出された
ときは初心者であると判断し、当該押鍵数に基づくコー
ド検出を行い、この検出されたコードから押鍵数以上の
発音数(例えば通常の和音を構成する音の数)となるよ
うに音が付加された和音情報を生成し、一方、押鍵数が
所定数以上であることが検出されたときは、特定鍵域の
押鍵に対応した押鍵情報をそのまま和音情報として出力
するようにしている。
【0032】これにより、演奏者が初心者であって押鍵
数が少ない場合も通常の和音と同様の音数で和音を発生
させることができる。一方、押鍵数が所定数以上である
場合は、コードの成否とは無関係に押鍵された音がその
まま和音情報とされる。これは熟練者が所定数以上の押
鍵を行った場合は勿論、初心者が所定数以上の押鍵を行
った場合も同様である。従って、初心者にとっても自己
の意思に沿って特別なコード演奏を試みることが可能と
なっている。かかる動作は、従来のように、初心者又は
熟練者であることを特別に指定しなくても、押鍵数、つ
まり演奏者の技量に応じて自動的に切り換えて行われ
る。
数が少ない場合も通常の和音と同様の音数で和音を発生
させることができる。一方、押鍵数が所定数以上である
場合は、コードの成否とは無関係に押鍵された音がその
まま和音情報とされる。これは熟練者が所定数以上の押
鍵を行った場合は勿論、初心者が所定数以上の押鍵を行
った場合も同様である。従って、初心者にとっても自己
の意思に沿って特別なコード演奏を試みることが可能と
なっている。かかる動作は、従来のように、初心者又は
熟練者であることを特別に指定しなくても、押鍵数、つ
まり演奏者の技量に応じて自動的に切り換えて行われ
る。
【0033】請求項8に記載の発明においては、例えば
コード検出領域として割り当てられた特定鍵域の押鍵数
を検出し、押鍵数が「3」未満であることが検出された
ときは初心者であると判断し、1鍵又は2鍵に基づくコ
ード検出を行い、この検出されたコードから1又は2以
上の発音数(例えば通常の和音を構成する3〜4音)と
なるように音が付加された和音情報を生成し、一方、押
鍵数が「3」以上であることが検出されたときは、特定
鍵域の押鍵に対応した押鍵情報をそのまま和音情報とし
て出力するようにしている。
コード検出領域として割り当てられた特定鍵域の押鍵数
を検出し、押鍵数が「3」未満であることが検出された
ときは初心者であると判断し、1鍵又は2鍵に基づくコ
ード検出を行い、この検出されたコードから1又は2以
上の発音数(例えば通常の和音を構成する3〜4音)と
なるように音が付加された和音情報を生成し、一方、押
鍵数が「3」以上であることが検出されたときは、特定
鍵域の押鍵に対応した押鍵情報をそのまま和音情報とし
て出力するようにしている。
【0034】これにより、演奏者が初心者であって1鍵
又は2鍵を押下した場合も通常の和音と同様の3〜4音
で和音を発生させることができる。一方、押鍵数が
「3」以上である場合は、コードの成否とは無関係に押
鍵された音がそのまま和音情報とされる。これは熟練者
が「3」以上の押鍵を行った場合は勿論、初心者が
「3」以上の押鍵を行った場合も同様である。従って、
初心者にとっても自己の意思に沿って「3」鍵以上の押
鍵でコード演奏を試みることが可能となっている。かか
る動作は、従来のように、初心者又は熟練者であること
を特別に指定しなくても、押鍵数、つまり演奏者の技量
に応じて自動的に切り換えて行われる。
又は2鍵を押下した場合も通常の和音と同様の3〜4音
で和音を発生させることができる。一方、押鍵数が
「3」以上である場合は、コードの成否とは無関係に押
鍵された音がそのまま和音情報とされる。これは熟練者
が「3」以上の押鍵を行った場合は勿論、初心者が
「3」以上の押鍵を行った場合も同様である。従って、
初心者にとっても自己の意思に沿って「3」鍵以上の押
鍵でコード演奏を試みることが可能となっている。かか
る動作は、従来のように、初心者又は熟練者であること
を特別に指定しなくても、押鍵数、つまり演奏者の技量
に応じて自動的に切り換えて行われる。
【0035】
【実施例】以下、本発明の自動伴奏装置の実施例につ
き、図面を参照しながら詳細に説明する。
き、図面を参照しながら詳細に説明する。
【0036】図1は、本発明の自動伴奏装置の実施例の
構成を示すブロック図である。本自動伴奏装置は、中央
処理装置(以下、「CPU」という。)10、リードオ
ンリメモリ(以下、「ROM」という。)11、ランダ
ムアクセスメモリ(以下、「RAM」という。)12、
操作パネル13、鍵盤装置14、楽音発生器15、タイ
マ17及びMIDIコントローラ18がシステムバス3
0を介して相互に接続されて構成されている。システム
バス30は、例えばアドレス線、データ線及び制御信号
線等で成り、上記各構成要素間で各種データを送受する
ために使用される。
構成を示すブロック図である。本自動伴奏装置は、中央
処理装置(以下、「CPU」という。)10、リードオ
ンリメモリ(以下、「ROM」という。)11、ランダ
ムアクセスメモリ(以下、「RAM」という。)12、
操作パネル13、鍵盤装置14、楽音発生器15、タイ
マ17及びMIDIコントローラ18がシステムバス3
0を介して相互に接続されて構成されている。システム
バス30は、例えばアドレス線、データ線及び制御信号
線等で成り、上記各構成要素間で各種データを送受する
ために使用される。
【0037】CPU10は、ROM11に格納されてい
る制御プログラムに従って、本自動伴奏装置の全体を制
御する。本発明の押鍵状態検出手段、演奏技量判定手
段、和音情報生成手段、押鍵数検出手段、第1のコード
検出手段、第2のコード検出手段、コード検出手段及び
和音情報出力手段は、このCPU10の機能により実現
されている。このCPU10には、2つの割込信号入力
端子INT1及びINT2が設けられている。割込信号
入力端子INT1にはMIDIコントローラ18から、
割込信号入力端子INT2にはタイマ17からそれぞれ
割込信号が供給される。このCPU10の動作の詳細に
ついては後述する。
る制御プログラムに従って、本自動伴奏装置の全体を制
御する。本発明の押鍵状態検出手段、演奏技量判定手
段、和音情報生成手段、押鍵数検出手段、第1のコード
検出手段、第2のコード検出手段、コード検出手段及び
和音情報出力手段は、このCPU10の機能により実現
されている。このCPU10には、2つの割込信号入力
端子INT1及びINT2が設けられている。割込信号
入力端子INT1にはMIDIコントローラ18から、
割込信号入力端子INT2にはタイマ17からそれぞれ
割込信号が供給される。このCPU10の動作の詳細に
ついては後述する。
【0038】ROM11には、上述したCPU10を動
作させるための制御プログラム、CPU10が各種処理
に用いる種々の固定データ等が記憶されている。このR
OM11の内容はCPU10により読み出される。即
ち、CPU10は、ROM11から制御プログラム(命
令)を読み出して解釈・実行すると共に、所定の固定デ
ータを読み出して各種処理に使用する。
作させるための制御プログラム、CPU10が各種処理
に用いる種々の固定データ等が記憶されている。このR
OM11の内容はCPU10により読み出される。即
ち、CPU10は、ROM11から制御プログラム(命
令)を読み出して解釈・実行すると共に、所定の固定デ
ータを読み出して各種処理に使用する。
【0039】また、このROM11には、上述したよう
な各種データが記憶されている他、自動伴奏に用いられ
るパターンデータが格納されている。パターンデータ
は、例えば2〜16小節程度の演奏パターンを発生させ
るために使用される。このパターンデータは、例えば図
14(B)に示されるような、ステップタイム、ノート
ナンバ(キーコード)、ゲートタイム及びベロシティと
いった4バイトのデータの集合で構成されており、個々
のパターンデータは1つの音符に対応している。ここ
に、ステップタイムは発音を開始する時刻(発音タイミ
ング)を指定するものであり小節の先頭からのステップ
数で規定される。ノートナンバは音高を規定するために
使用される。ゲートタイムは発音時間を規定するために
使用される。ベロシティは発音の強さ(音量)を規定す
るために使用される。なお、このパターンデータは、後
述するRAM12に記憶するように構成しても良い。
な各種データが記憶されている他、自動伴奏に用いられ
るパターンデータが格納されている。パターンデータ
は、例えば2〜16小節程度の演奏パターンを発生させ
るために使用される。このパターンデータは、例えば図
14(B)に示されるような、ステップタイム、ノート
ナンバ(キーコード)、ゲートタイム及びベロシティと
いった4バイトのデータの集合で構成されており、個々
のパターンデータは1つの音符に対応している。ここ
に、ステップタイムは発音を開始する時刻(発音タイミ
ング)を指定するものであり小節の先頭からのステップ
数で規定される。ノートナンバは音高を規定するために
使用される。ゲートタイムは発音時間を規定するために
使用される。ベロシティは発音の強さ(音量)を規定す
るために使用される。なお、このパターンデータは、後
述するRAM12に記憶するように構成しても良い。
【0040】RAM12は、CPU10が使用する種々
のデータを一時記憶するために使用される。このRAM
12の全領域又は一部領域をバッテリーバックアップす
ることにより電源遮断後も記憶内容を保持するように構
成することができる。この構成によれば、電源を再投入
した場合に、電源遮断時の自動伴奏装置の状態を復元で
きるので直ちに使用開始できるという効果がある。な
お、RAM12がバッテリーバックアップされていると
きであっても、特殊操作、例えば操作パネル13の特定
スイッチ若しくは鍵盤装置14の特定鍵、又はこれらの
双方を押しながら電源を投入するという操作が行われた
場合は、強制的にRAM12の状態を初期化するように
構成することもできる。この構成によれば、バッテリー
バックアップの有無に拘わらず自動伴奏装置を初期状態
に設定できるという効果がある。
のデータを一時記憶するために使用される。このRAM
12の全領域又は一部領域をバッテリーバックアップす
ることにより電源遮断後も記憶内容を保持するように構
成することができる。この構成によれば、電源を再投入
した場合に、電源遮断時の自動伴奏装置の状態を復元で
きるので直ちに使用開始できるという効果がある。な
お、RAM12がバッテリーバックアップされていると
きであっても、特殊操作、例えば操作パネル13の特定
スイッチ若しくは鍵盤装置14の特定鍵、又はこれらの
双方を押しながら電源を投入するという操作が行われた
場合は、強制的にRAM12の状態を初期化するように
構成することもできる。この構成によれば、バッテリー
バックアップの有無に拘わらず自動伴奏装置を初期状態
に設定できるという効果がある。
【0041】このRAM12には、バッファ、レジス
タ、カウンタ、フラグ等の各種領域が定義されている。
本実施例で使用する具体的なバッファ、レジスタ、カウ
ンタ、フラグ等については、以下において出現する都度
説明するが、ここでは、主要な幾つかのバッファ、レジ
スタ、カウンタ、フラグ等について説明しておく。
タ、カウンタ、フラグ等の各種領域が定義されている。
本実施例で使用する具体的なバッファ、レジスタ、カウ
ンタ、フラグ等については、以下において出現する都度
説明するが、ここでは、主要な幾つかのバッファ、レジ
スタ、カウンタ、フラグ等について説明しておく。
【0042】(イ)TYPEフラグ 演奏者が初心者(TYPEフラグ=0)であるか又は熟
練者(TYPEフラグ=1)であるかを記憶するために
使用される。このTYPEフラグに基づいてコード検出
方法が決定される。 (ロ)自動演奏フラグ 本自動伴奏装置が自動演奏中(自動演奏フラグ=1)で
あるか又は自動演奏停止中(自動演奏フラグ=0)であ
るかを記憶するために使用される。この自動演奏フラグ
は後述するタイマ割込処理ルーチンで参照される。 (ハ)コードルートレジスタ 検出されたコードルートを記憶するために使用される。 (ニ)コードタイプレジスタ 検出されたコードタイプを記憶するために使用される。 (ホ)熟練度判定バッファ 本発明の記憶手段に対応するものであり、32個のエン
トリ(TPOINT0〜31)を有し、演奏者の鍵盤操
作をトレースして記憶するバッファである。この熟練度
判定バッファの各エントリには、ロワー鍵が押下される
毎に、押鍵数が「3」以上で且つコードが成立したとき
は熟練者データを示す「1」が、それ以外のときは初心
者データを示す「0」が順次書き込まれる。この熟練度
判定バッファは、その記憶内容に応じて初心者であるか
又は熟練者であるかを判断するために使用される。 (ヘ)トレースポインタTPOINT 上記熟練度判定バッファの各エントリを指標するポイン
タである。 (ト)レジスタTYPDAT 上記熟練度判定バッファの各エントリの内容を加算した
データを格納するレジスタである。このレジスタTYP
DATの内容に応じて初心者であるか又は熟練者である
かが判断される。
練者(TYPEフラグ=1)であるかを記憶するために
使用される。このTYPEフラグに基づいてコード検出
方法が決定される。 (ロ)自動演奏フラグ 本自動伴奏装置が自動演奏中(自動演奏フラグ=1)で
あるか又は自動演奏停止中(自動演奏フラグ=0)であ
るかを記憶するために使用される。この自動演奏フラグ
は後述するタイマ割込処理ルーチンで参照される。 (ハ)コードルートレジスタ 検出されたコードルートを記憶するために使用される。 (ニ)コードタイプレジスタ 検出されたコードタイプを記憶するために使用される。 (ホ)熟練度判定バッファ 本発明の記憶手段に対応するものであり、32個のエン
トリ(TPOINT0〜31)を有し、演奏者の鍵盤操
作をトレースして記憶するバッファである。この熟練度
判定バッファの各エントリには、ロワー鍵が押下される
毎に、押鍵数が「3」以上で且つコードが成立したとき
は熟練者データを示す「1」が、それ以外のときは初心
者データを示す「0」が順次書き込まれる。この熟練度
判定バッファは、その記憶内容に応じて初心者であるか
又は熟練者であるかを判断するために使用される。 (ヘ)トレースポインタTPOINT 上記熟練度判定バッファの各エントリを指標するポイン
タである。 (ト)レジスタTYPDAT 上記熟練度判定バッファの各エントリの内容を加算した
データを格納するレジスタである。このレジスタTYP
DATの内容に応じて初心者であるか又は熟練者である
かが判断される。
【0043】(チ)受信バッファ 受信バッファは、後述するMIDIコントローラ18か
ら受信したMIDIデータを一時記憶するために使用さ
れる。この受信バッファは、例えば図13に示されるよ
うに、RAM12に定義されたカウンタCTR、ポイン
タPTR及び記憶エリアとで構成され、CPU10の制
御によりFIFO(ファーストイン−ファーストアウ
ト)メモリとして機能するようになっている。記憶エリ
アは、例えば256個のエントリを有し、各エントリに
はMIDIデータが順次記憶される。
ら受信したMIDIデータを一時記憶するために使用さ
れる。この受信バッファは、例えば図13に示されるよ
うに、RAM12に定義されたカウンタCTR、ポイン
タPTR及び記憶エリアとで構成され、CPU10の制
御によりFIFO(ファーストイン−ファーストアウ
ト)メモリとして機能するようになっている。記憶エリ
アは、例えば256個のエントリを有し、各エントリに
はMIDIデータが順次記憶される。
【0044】カウンタCTRは受信したMIDIデータ
を書き込むべき記憶エリアの位置を指定する。このカウ
ンタCTRは、常に最後に書き込まれたMIDIデータ
の次のアドレスを指示するように制御される。このカウ
ンタCTRの初期値は「0」であり、MIDIデータが
書き込まれる度にインクリメントされ、その結果が最大
値TOPを越えた場合は最小値BTMに循環する。
を書き込むべき記憶エリアの位置を指定する。このカウ
ンタCTRは、常に最後に書き込まれたMIDIデータ
の次のアドレスを指示するように制御される。このカウ
ンタCTRの初期値は「0」であり、MIDIデータが
書き込まれる度にインクリメントされ、その結果が最大
値TOPを越えた場合は最小値BTMに循環する。
【0045】ポインタPTRは記憶エリア中の、読み出
すべきMIDIデータの位置を指示する。このポインタ
PTRは、常に最後に読み出されたMIDIデータの次
のアドレス、つまり次に読み出すべきMIDIデータの
アドレスを指示するように制御される。このポインタP
TRの初期値は「0」であり、MIDIデータが読み込
まれる度にインクリメントされ、その結果が最大値TO
Pを越えた場合は最小値BTMに循環する。
すべきMIDIデータの位置を指示する。このポインタ
PTRは、常に最後に読み出されたMIDIデータの次
のアドレス、つまり次に読み出すべきMIDIデータの
アドレスを指示するように制御される。このポインタP
TRの初期値は「0」であり、MIDIデータが読み込
まれる度にインクリメントされ、その結果が最大値TO
Pを越えた場合は最小値BTMに循環する。
【0046】この受信バッファは、カウンタCTRの内
容とポインタPTRの内容とが一致するときはエンプテ
ィであると判断される。なお、カウンタCTRをインク
リメントした結果、カウンタCTRの内容がポインタP
TRの内容に一致することとなる場合は受信バッファは
満杯であるのでMIDIデータの受信を抑止するように
制御される。カウンタCTRの内容とポインタPTRの
内容とが一致しない場合は、受信バッファにMIDIデ
ータが存在することが判断される。
容とポインタPTRの内容とが一致するときはエンプテ
ィであると判断される。なお、カウンタCTRをインク
リメントした結果、カウンタCTRの内容がポインタP
TRの内容に一致することとなる場合は受信バッファは
満杯であるのでMIDIデータの受信を抑止するように
制御される。カウンタCTRの内容とポインタPTRの
内容とが一致しない場合は、受信バッファにMIDIデ
ータが存在することが判断される。
【0047】この受信バッファへのMIDIデータの書
込みは後述するMIDI−IN割込処理ルーチンにて行
われ、受信バッファからのMIDIデータの読み出しは
後述するMIDI−IN処理ルーチンで行われる。な
お、本実施例では受信バッファをRAM12内に形成
し、MIDIデータの書込み/読み出しの制御はCPU
10で行うように構成したが、これらの代わりに周知の
FIFOメモリ素子を用いて構成することもできる。
込みは後述するMIDI−IN割込処理ルーチンにて行
われ、受信バッファからのMIDIデータの読み出しは
後述するMIDI−IN処理ルーチンで行われる。な
お、本実施例では受信バッファをRAM12内に形成
し、MIDIデータの書込み/読み出しの制御はCPU
10で行うように構成したが、これらの代わりに周知の
FIFOメモリ素子を用いて構成することもできる。
【0048】(リ)レジスタ群n レジスタ群n(nはパート番号に対応しており、本実施
例では、n=1〜4である。)は、パート毎の発音状態
を管理するために使用される。本実施例における各パー
トのポリフォニック数を「8」とすると、このレジスタ
群nは、例えば図14(A)に示されるように、8個の
ブロックで構成されており、各ブロックは発音チャンネ
ルに対応している。また、各ブロックは1音に対応して
おり、「キーコード及びそのオン/オフ」、「ベロシテ
ィ」、「残存ゲートタイム」の3バイトで構成されてい
る。
例では、n=1〜4である。)は、パート毎の発音状態
を管理するために使用される。本実施例における各パー
トのポリフォニック数を「8」とすると、このレジスタ
群nは、例えば図14(A)に示されるように、8個の
ブロックで構成されており、各ブロックは発音チャンネ
ルに対応している。また、各ブロックは1音に対応して
おり、「キーコード及びそのオン/オフ」、「ベロシテ
ィ」、「残存ゲートタイム」の3バイトで構成されてい
る。
【0049】キーコード(7ビット)は音高を示すため
に使用される。オン/オフビット(1ビット)はキーコ
ードで示される音がキーオン状態にあるか又はキーオフ
状態にあるかを示すために使用される。ベロシティ(7
ビット)はパターンデータ中のベロシティデータがセッ
トされ、発音の強さを指定するために使用される。残存
ゲートタイム(7ビット)は、初期値としてパターンデ
ータ中のゲートタイムがセットされ、発音中の音(オン
/オフビットが「1」になっている音)の残りの発音時
間を示すために使用される。なお、図14(A)におい
ては、1つのパートに対するレジスタ群のみ示されてい
るが、実際はパート1〜4のそれぞれに対して同じ構成
のレジスタ群が設けられている。
に使用される。オン/オフビット(1ビット)はキーコ
ードで示される音がキーオン状態にあるか又はキーオフ
状態にあるかを示すために使用される。ベロシティ(7
ビット)はパターンデータ中のベロシティデータがセッ
トされ、発音の強さを指定するために使用される。残存
ゲートタイム(7ビット)は、初期値としてパターンデ
ータ中のゲートタイムがセットされ、発音中の音(オン
/オフビットが「1」になっている音)の残りの発音時
間を示すために使用される。なお、図14(A)におい
ては、1つのパートに対するレジスタ群のみ示されてい
るが、実際はパート1〜4のそれぞれに対して同じ構成
のレジスタ群が設けられている。
【0050】(ヌ)小節レジスタと拍レジスタ 小節レジスタBRRは、小節の進行を計数するレジスタ
である。この小節レジスタBRRは、10進数4桁分に
相当する計数が可能である。また、拍レジスタBTRは
小節内の拍の進行を計数するレジスタである。この拍レ
ジスタBTRは、1ステップタイム毎にカウントアップ
される。本実施例では、1拍を48ステップの分解能と
する。従って、拍レジスタBTRは、4拍子の場合は4
拍、つまり192ステップを計数したらゼロにラウンド
する。この際、小節レジスタBRRはインクリメントさ
れるように制御される。この小節レジスタBRRと拍レ
ジスタBTRとは、自動伴奏の進行を管理するために使
用される。
である。この小節レジスタBRRは、10進数4桁分に
相当する計数が可能である。また、拍レジスタBTRは
小節内の拍の進行を計数するレジスタである。この拍レ
ジスタBTRは、1ステップタイム毎にカウントアップ
される。本実施例では、1拍を48ステップの分解能と
する。従って、拍レジスタBTRは、4拍子の場合は4
拍、つまり192ステップを計数したらゼロにラウンド
する。この際、小節レジスタBRRはインクリメントさ
れるように制御される。この小節レジスタBRRと拍レ
ジスタBTRとは、自動伴奏の進行を管理するために使
用される。
【0051】操作パネル13には、本自動伴奏装置と操
作者とがコミュニケーションするための各種スイッチ、
表示器等が設けられている。この操作パネル13の詳細
については後述する。
作者とがコミュニケーションするための各種スイッチ、
表示器等が設けられている。この操作パネル13の詳細
については後述する。
【0052】鍵盤装置14は、詳細は図示しないが、ア
ッパー鍵盤及びロワー鍵盤から構成されている。自動伴
奏モードで動作する場合は、アッパー鍵盤はメロディ演
奏に用いられ、ロワー鍵盤は特定鍵域としてコード検出
に用いられる。
ッパー鍵盤及びロワー鍵盤から構成されている。自動伴
奏モードで動作する場合は、アッパー鍵盤はメロディ演
奏に用いられ、ロワー鍵盤は特定鍵域としてコード検出
に用いられる。
【0053】上記のように構成される鍵盤装置14の鍵
盤の操作状態は次のようにしてCPU10に読み込まれ
る。即ち、CPU10は鍵盤装置14に対してスキャン
指令を送出する。鍵盤装置14は、このスキャン指令に
応答して各鍵のオン/オフを示す信号をCPU10に送
る。CPU10は、受け取った信号から各キーのオン/
オフを1ビットに対応させたキーデータを生成する。こ
のキーデータは、CPU10の制御下でRAM12に格
納され、キーイベントの有無を判断するために使用され
る(詳細は後述)。
盤の操作状態は次のようにしてCPU10に読み込まれ
る。即ち、CPU10は鍵盤装置14に対してスキャン
指令を送出する。鍵盤装置14は、このスキャン指令に
応答して各鍵のオン/オフを示す信号をCPU10に送
る。CPU10は、受け取った信号から各キーのオン/
オフを1ビットに対応させたキーデータを生成する。こ
のキーデータは、CPU10の制御下でRAM12に格
納され、キーイベントの有無を判断するために使用され
る(詳細は後述)。
【0054】楽音発生器15は、自動伴奏音発生手段に
対応するものであり、CPU10からシステムバス30
を介して送られてくる鍵情報に基づいて楽音信号を生成
する。この楽音発生器15で生成された楽音信号は、ス
ピーカシステム16に送られる。スピーカシステム16
は、例えば増幅器、スピーカ等で構成されており、楽音
発生器15から送られてくる楽音信号を音響信号に変換
して放音する周知のものである。
対応するものであり、CPU10からシステムバス30
を介して送られてくる鍵情報に基づいて楽音信号を生成
する。この楽音発生器15で生成された楽音信号は、ス
ピーカシステム16に送られる。スピーカシステム16
は、例えば増幅器、スピーカ等で構成されており、楽音
発生器15から送られてくる楽音信号を音響信号に変換
して放音する周知のものである。
【0055】タイマ17は、テンポに対応した間隔で割
込信号を発生する。この割込信号の発生間隔は、CPU
10からタイマ17にセットされるデータ(プリセット
値)により決定される。このタイマ17で発生された割
込信号はCPU10の割込信号入力端子INT2に供給
される。本実施例では、4分音符を1/48の分解能
(精度)で制御するものとしているので、4分音符当た
りに48回の割込信号が発生される。このタイマ17か
らの割込信号に応じて、後述するタイマ割込処理ルーチ
ンにおいて、小節レジスタBRR及び拍レジスタBTR
が更新される。
込信号を発生する。この割込信号の発生間隔は、CPU
10からタイマ17にセットされるデータ(プリセット
値)により決定される。このタイマ17で発生された割
込信号はCPU10の割込信号入力端子INT2に供給
される。本実施例では、4分音符を1/48の分解能
(精度)で制御するものとしているので、4分音符当た
りに48回の割込信号が発生される。このタイマ17か
らの割込信号に応じて、後述するタイマ割込処理ルーチ
ンにおいて、小節レジスタBRR及び拍レジスタBTR
が更新される。
【0056】MIDIコントローラ18は、外部装置と
本自動伴奏装置との間のMIDIデータの転送を制御す
るものである。このMIDIコントローラ18の外部側
に接続される外部装置としては、例えばMIDIデータ
を処理することのできる電子楽器、音源モジュール、コ
ンピュータ、シーケンサ等が挙げられる。MIDIコン
トローラ18は、外部装置からシリアルに送られてくる
MIDIデータを受信し、これが例えば1バイト分にな
った時点で割込信号を発生する。この割込信号は、CP
U10の割込信号入力端子INT1に供給される。
本自動伴奏装置との間のMIDIデータの転送を制御す
るものである。このMIDIコントローラ18の外部側
に接続される外部装置としては、例えばMIDIデータ
を処理することのできる電子楽器、音源モジュール、コ
ンピュータ、シーケンサ等が挙げられる。MIDIコン
トローラ18は、外部装置からシリアルに送られてくる
MIDIデータを受信し、これが例えば1バイト分にな
った時点で割込信号を発生する。この割込信号は、CP
U10の割込信号入力端子INT1に供給される。
【0057】図2は本自動伴奏装置の操作パネル13の
構成例を示す図である。小節/拍表示器130は、例え
ば5桁の7セグメントLED表示器で構成されている。
この小節/拍表示器130の上位4桁には、現在自動演
奏されている「小節」、つまり小節レジスタBRRの内
容が表示され、下位1桁には現在自動演奏されている
「拍」、つまり拍レジスタBTRの内容に対応する拍
(具体的には、4拍子の場合は、拍レジスタBTRの内
容を48で割って得られる商に1を加えた値)が表示さ
れる。この小節/拍表示器の表示内容は、自動演奏の進
行に伴って順次更新される。
構成例を示す図である。小節/拍表示器130は、例え
ば5桁の7セグメントLED表示器で構成されている。
この小節/拍表示器130の上位4桁には、現在自動演
奏されている「小節」、つまり小節レジスタBRRの内
容が表示され、下位1桁には現在自動演奏されている
「拍」、つまり拍レジスタBTRの内容に対応する拍
(具体的には、4拍子の場合は、拍レジスタBTRの内
容を48で割って得られる商に1を加えた値)が表示さ
れる。この小節/拍表示器の表示内容は、自動演奏の進
行に伴って順次更新される。
【0058】コード表示器131は、例えばLCD表示
器で構成されている。このコード表示器131には、後
述するコード検出処理で検出されたコード(コードルー
ト及びコードタイプ)が表示される。本実施例では、ロ
ワー鍵盤から送られてきたキーデータ又はMIDIチャ
ンネル1から送られてきたMIDIデータに対してコー
ド検出を行うものとする。なお、MIDIデータに対す
るコード検出は、MIDIチャンネル1から送られてき
たものに限定されず、他の任意のMIDIチャンネル、
或いは複数のMIDIチャンネルから送られてきたもの
を対象とするように構成しても良い。
器で構成されている。このコード表示器131には、後
述するコード検出処理で検出されたコード(コードルー
ト及びコードタイプ)が表示される。本実施例では、ロ
ワー鍵盤から送られてきたキーデータ又はMIDIチャ
ンネル1から送られてきたMIDIデータに対してコー
ド検出を行うものとする。なお、MIDIデータに対す
るコード検出は、MIDIチャンネル1から送られてき
たものに限定されず、他の任意のMIDIチャンネル、
或いは複数のMIDIチャンネルから送られてきたもの
を対象とするように構成しても良い。
【0059】テンポスピード表示器132は、例えば3
桁の7セグメントLED表示器で構成されている。この
テンポスピード表示器132には、現在設定されている
テンポスピードが表示される。
桁の7セグメントLED表示器で構成されている。この
テンポスピード表示器132には、現在設定されている
テンポスピードが表示される。
【0060】なお、小節/拍表示器130及びテンポス
ピード表示器132は、7セグメントのLED表示器で
構成したが、LCD表示器、CRT表示器、その他の種
々の表示器で構成することができる。同様に、コード表
示器131もLCD表示器に限定されず、CRT表示
器、その他の種々の表示器で構成することができる。
ピード表示器132は、7セグメントのLED表示器で
構成したが、LCD表示器、CRT表示器、その他の種
々の表示器で構成することができる。同様に、コード表
示器131もLCD表示器に限定されず、CRT表示
器、その他の種々の表示器で構成することができる。
【0061】インクリメンタ133は、テンポスピード
を設定するために使用される。このインクリメンタ13
3は、例えば右回転させることによりテンポスピードが
増加し、左回転させることによりテンポスピードが減少
するように制御される。そして、このインクリメンタ1
33で設定されたテンポスピードは、テンポスピード表
示器132に表示される。
を設定するために使用される。このインクリメンタ13
3は、例えば右回転させることによりテンポスピードが
増加し、左回転させることによりテンポスピードが減少
するように制御される。そして、このインクリメンタ1
33で設定されたテンポスピードは、テンポスピード表
示器132に表示される。
【0062】ストップスイッチ134は、自動演奏を停
止させるために使用される。即ち、自動演奏中にストッ
プスイッチ134が押されると自動演奏は停止される。
プレイ/ポーズスイッチ135は、自動演奏を開始させ
又は一時停止させるために使用される。自動演奏の停止
中又はポーズ(一時停止)状態にあるときに、このプレ
イ/ポーズスイッチ135が押されるとLED表示器1
40が点灯されて自動演奏が開始又は再開され、自動演
奏中に押されるとLED表示器142が消灯されてポー
ズ状態になる。
止させるために使用される。即ち、自動演奏中にストッ
プスイッチ134が押されると自動演奏は停止される。
プレイ/ポーズスイッチ135は、自動演奏を開始させ
又は一時停止させるために使用される。自動演奏の停止
中又はポーズ(一時停止)状態にあるときに、このプレ
イ/ポーズスイッチ135が押されるとLED表示器1
40が点灯されて自動演奏が開始又は再開され、自動演
奏中に押されるとLED表示器142が消灯されてポー
ズ状態になる。
【0063】パートスイッチ136〜139は、リズム
パートの発音を指示するために使用される。本実施例に
おいては、各パートのパターンデータは小節レジスタB
BR及び拍レジスタBTRの内容に応じて常にROM1
1から読み出されており、この読み出されたパターンデ
ータに基づき発音が行われるかどうかは、パートスイッ
チ136〜139がオンにされているかどうかによって
決定される。即ち、パート1スイッチ136が押される
とLED表示器141が点灯されてリズムパートが発音
され、次に押されるとLED表示器141が消灯されて
リズムパートの発音は停止される。同様に、パート2ス
イッチ137は、ベースパートの発音を指示するために
使用される。このパート2スイッチ137が押されると
LED表示器142が点灯されてベースパートが発音さ
れ、次に押されるとLED表示器142が消灯されてベ
ースパートの発音は停止される。
パートの発音を指示するために使用される。本実施例に
おいては、各パートのパターンデータは小節レジスタB
BR及び拍レジスタBTRの内容に応じて常にROM1
1から読み出されており、この読み出されたパターンデ
ータに基づき発音が行われるかどうかは、パートスイッ
チ136〜139がオンにされているかどうかによって
決定される。即ち、パート1スイッチ136が押される
とLED表示器141が点灯されてリズムパートが発音
され、次に押されるとLED表示器141が消灯されて
リズムパートの発音は停止される。同様に、パート2ス
イッチ137は、ベースパートの発音を指示するために
使用される。このパート2スイッチ137が押されると
LED表示器142が点灯されてベースパートが発音さ
れ、次に押されるとLED表示器142が消灯されてベ
ースパートの発音は停止される。
【0064】同様に、パート3スイッチ138は、アカ
ンパニメントパート(例えばコードパート等)の発音を
指示するために使用される。このパート3スイッチ13
8が押されるとLED表示器143が点灯されてアカン
パニメントパートが発音され、次に押されるとLED表
示器143が消灯されてアカンパニメントパートの発音
が停止される。同様に、パート4スイッチ139は、メ
ロディパートを指示するために使用される。このパート
4スイッチ139が押されるとLED表示器144が点
灯されてメロディパートが発音され、次に押されるとL
ED表示器144が消灯されてメロディパートの発音が
停止される。
ンパニメントパート(例えばコードパート等)の発音を
指示するために使用される。このパート3スイッチ13
8が押されるとLED表示器143が点灯されてアカン
パニメントパートが発音され、次に押されるとLED表
示器143が消灯されてアカンパニメントパートの発音
が停止される。同様に、パート4スイッチ139は、メ
ロディパートを指示するために使用される。このパート
4スイッチ139が押されるとLED表示器144が点
灯されてメロディパートが発音され、次に押されるとL
ED表示器144が消灯されてメロディパートの発音が
停止される。
【0065】上記各パートのうち、リズムパート、ベー
スパート及びアカンパニメントパートは1〜数小節程度
のパターンデータの繰り返し実行により発音されるもの
であり、メロディパートは、1曲分の全パターンデータ
が記憶される。
スパート及びアカンパニメントパートは1〜数小節程度
のパターンデータの繰り返し実行により発音されるもの
であり、メロディパートは、1曲分の全パターンデータ
が記憶される。
【0066】操作パネル13には、上記以外に複数の音
色の中から所望の音色を選択する音色選択操作子、音量
を調整する音量操作子等が設けられているが、本発明と
は直接関係しないので図示及び説明は省略する。
色の中から所望の音色を選択する音色選択操作子、音量
を調整する音量操作子等が設けられているが、本発明と
は直接関係しないので図示及び説明は省略する。
【0067】上記のように構成される操作パネル13の
各スイッチ等の設定状態は次のようにしてCPU10に
読み込まれる。即ち、CPU10は操作パネル13に対
してスキャン指令を送出する。操作パネル13は、この
スキャン指令に応答して各スイッチのオン/オフを示す
信号及びインクリメンタ133の現在値を示す信号をC
PU10に送る。CPU10は、受け取った信号からパ
ネルデータ(各スイッチのオン/オフを1ビットに対応
させたスイッチデータとインクリメンタ133の設定値
を示すインクリメンタデータとで成る。)を生成する。
このパネルデータは、CPU10の制御下でRAM12
に格納され、パネルイベントの有無を判断するために使
用される(詳細は後述)。
各スイッチ等の設定状態は次のようにしてCPU10に
読み込まれる。即ち、CPU10は操作パネル13に対
してスキャン指令を送出する。操作パネル13は、この
スキャン指令に応答して各スイッチのオン/オフを示す
信号及びインクリメンタ133の現在値を示す信号をC
PU10に送る。CPU10は、受け取った信号からパ
ネルデータ(各スイッチのオン/オフを1ビットに対応
させたスイッチデータとインクリメンタ133の設定値
を示すインクリメンタデータとで成る。)を生成する。
このパネルデータは、CPU10の制御下でRAM12
に格納され、パネルイベントの有無を判断するために使
用される(詳細は後述)。
【0068】タッチバー<L>150及びタッチバー<
R>151は、電子楽器の口棒部分に搭載されるもので
あるが、便宜上操作パネル13上に記載してある。この
タッチバー<L>150及びタッチバー<R>151
は、コードタイプ指定操作子に対応するものであり、そ
れぞれは第1の操作子及び第2の操作子に対応する。こ
のタッチバー<L>150及びタッチバー<R>151
の操作状態は、操作パネル13の各スイッチと同じ方法
でCPU10に読み込まれる。タッチバー<L>150
は、コードタイプとしてマイナーを指定するために使用
される。同様に、タッチバー<R>151は、コードタ
イプとしてセブンスを指定するために使用される。即
ち、これらタッチバー<L>150及びタッチバー<R
>151の操作状態により、以下の4つのコードタイプ
が指定可能になっている。
R>151は、電子楽器の口棒部分に搭載されるもので
あるが、便宜上操作パネル13上に記載してある。この
タッチバー<L>150及びタッチバー<R>151
は、コードタイプ指定操作子に対応するものであり、そ
れぞれは第1の操作子及び第2の操作子に対応する。こ
のタッチバー<L>150及びタッチバー<R>151
の操作状態は、操作パネル13の各スイッチと同じ方法
でCPU10に読み込まれる。タッチバー<L>150
は、コードタイプとしてマイナーを指定するために使用
される。同様に、タッチバー<R>151は、コードタ
イプとしてセブンスを指定するために使用される。即
ち、これらタッチバー<L>150及びタッチバー<R
>151の操作状態により、以下の4つのコードタイプ
が指定可能になっている。
【表1】 タッチバー<L> タッチバー<R> コードタイプ (マイナー) (セブンス) 0 0 メジャー 0 1 セブンス 1 0 マイナー 1 1 マイナーセブンス
【0069】タッチバー<L>150及びタッチバー<
R>151は、後述するワンフィンガーコード検出が行
われる場合に使用される。即ち、ワンフィンガーコード
検出では、1鍵の押下によりコードルートが決定され、
タッチバー<L>150及びタッチバー<R>151の
押下によりコードタイプが決定されてコード検出が行わ
れる。
R>151は、後述するワンフィンガーコード検出が行
われる場合に使用される。即ち、ワンフィンガーコード
検出では、1鍵の押下によりコードルートが決定され、
タッチバー<L>150及びタッチバー<R>151の
押下によりコードタイプが決定されてコード検出が行わ
れる。
【0070】次に、本発明の自動伴奏装置の動作につ
き、図3〜図12に示したフローチャートを参照しなが
ら詳細に説明する。
き、図3〜図12に示したフローチャートを参照しなが
ら詳細に説明する。
【0071】(1)メイン処理(図3) 図3は、本発明の自動伴奏装置のメインルーチンを示す
フローチャートであり、電源投入により起動される。電
源が投入されると、先ず、バッテリバックアップされて
いるかどうかが調べられる(ステップS10)。そし
て、バッテリバックアップされていることが判断される
と、次いで、特殊操作が行われているかどうかが調べら
れる(ステップS11)。ここで特殊操作が行われてい
ることが判断されると初期設定1が実行され(ステップ
S12)、そうでなければ初期設定処理1はスキップさ
れる。一方、上記ステップS10でバッテリバックアッ
プされていないことが判断された場合も初期設定1(ス
テップS12)が実行される。
フローチャートであり、電源投入により起動される。電
源が投入されると、先ず、バッテリバックアップされて
いるかどうかが調べられる(ステップS10)。そし
て、バッテリバックアップされていることが判断される
と、次いで、特殊操作が行われているかどうかが調べら
れる(ステップS11)。ここで特殊操作が行われてい
ることが判断されると初期設定1が実行され(ステップ
S12)、そうでなければ初期設定処理1はスキップさ
れる。一方、上記ステップS10でバッテリバックアッ
プされていないことが判断された場合も初期設定1(ス
テップS12)が実行される。
【0072】この初期設定1では、RAM12の一部、
例えばバッテリバックアップに関係するレジスタ、フラ
グ等(電源遮断時の状態を復元するのに必要な部分)が
初期状態に設定される。従って、この初期設定1が実行
されると、以後の処理においてはバッテリバックアップ
はなかったものとして処理される。この初期設定1にお
いて、TYPEフラグが「0」にクリアされ、コード検
出及び和音情報生成は初心者に対応した方法で行われ
る。
例えばバッテリバックアップに関係するレジスタ、フラ
グ等(電源遮断時の状態を復元するのに必要な部分)が
初期状態に設定される。従って、この初期設定1が実行
されると、以後の処理においてはバッテリバックアップ
はなかったものとして処理される。この初期設定1にお
いて、TYPEフラグが「0」にクリアされ、コード検
出及び和音情報生成は初心者に対応した方法で行われ
る。
【0073】次いで、初期設定2が行われる(ステップ
S13)。この初期設定2では、RAM12の他部、例
えばバッテリバックアップに無関係なレジスタ、フラグ
等が初期状態に設定される。以上の処理により、バッテ
リバックアップがなされていて、且つ特殊操作がなされ
ていなければ初期設定2のみが実行され、それ以外の場
合は初期設定1及び初期設定2の双方が実行されること
になり、バッテリバックアップ機能が実現されている。
また、この初期設定2では、TYPEフラグが「0」の
ときは熟練度判定バッファの各エントリが全て「0」に
設定される。一方、TYPEフラグが「1」のときは熟
練度判定バッファの各エントリが全て「1」に設定され
る。これにより、後述するコード検出方法更新処理(図
12)において、電源投入直後であってもTYPEフラ
グが「0」のときに熟練者と誤って判定されることがな
くなり、逆に、TYPEフラグが「1」のときに初心者
と誤って判定されることがなくなる。
S13)。この初期設定2では、RAM12の他部、例
えばバッテリバックアップに無関係なレジスタ、フラグ
等が初期状態に設定される。以上の処理により、バッテ
リバックアップがなされていて、且つ特殊操作がなされ
ていなければ初期設定2のみが実行され、それ以外の場
合は初期設定1及び初期設定2の双方が実行されること
になり、バッテリバックアップ機能が実現されている。
また、この初期設定2では、TYPEフラグが「0」の
ときは熟練度判定バッファの各エントリが全て「0」に
設定される。一方、TYPEフラグが「1」のときは熟
練度判定バッファの各エントリが全て「1」に設定され
る。これにより、後述するコード検出方法更新処理(図
12)において、電源投入直後であってもTYPEフラ
グが「0」のときに熟練者と誤って判定されることがな
くなり、逆に、TYPEフラグが「1」のときに初心者
と誤って判定されることがなくなる。
【0074】以上の初期化処理が終了すると、次いでパ
ネルスイッチスキャン処理が行われる(ステップS1
4)。即ち、CPU10は操作パネル13に対してスキ
ャン指令を送出する。これにより、操作パネル13は、
既に説明したようにパネルデータを生成してCPU10
に送る。CPU10は、このパネルデータ(以下、「新
パネルデータ」という。)をRAM12の所定領域に格
納する。次いで、前回のパネルスイッチスキャン処理で
読み込んで既にRAM12に記憶されているパネルデー
タ(以下、「旧パネルデータ」という。)と、上記新パ
ネルデータとを比較して相違するビットをオンにしたパ
ネルイベントマップを作成する。
ネルスイッチスキャン処理が行われる(ステップS1
4)。即ち、CPU10は操作パネル13に対してスキ
ャン指令を送出する。これにより、操作パネル13は、
既に説明したようにパネルデータを生成してCPU10
に送る。CPU10は、このパネルデータ(以下、「新
パネルデータ」という。)をRAM12の所定領域に格
納する。次いで、前回のパネルスイッチスキャン処理で
読み込んで既にRAM12に記憶されているパネルデー
タ(以下、「旧パネルデータ」という。)と、上記新パ
ネルデータとを比較して相違するビットをオンにしたパ
ネルイベントマップを作成する。
【0075】次いで、イベントの有無が調べられる(ス
テップS15)。これは、上記パネルイベントマップを
参照することにより行われる。即ち、パネルイベントマ
ップ中にオンになっているビットが1つ以上存在するか
どうかが調べられ、1つも存在しなければイベントはな
かったものと、1つ以上存在すればイベントがあったも
のとそれぞれ判断される。ここでイベントがあることが
判断されるとパネル制御処理が行われ(ステップS1
6)、そうでなければパネル制御処理はスキップされ
る。このパネル制御処理の詳細については後述する。
テップS15)。これは、上記パネルイベントマップを
参照することにより行われる。即ち、パネルイベントマ
ップ中にオンになっているビットが1つ以上存在するか
どうかが調べられ、1つも存在しなければイベントはな
かったものと、1つ以上存在すればイベントがあったも
のとそれぞれ判断される。ここでイベントがあることが
判断されるとパネル制御処理が行われ(ステップS1
6)、そうでなければパネル制御処理はスキップされ
る。このパネル制御処理の詳細については後述する。
【0076】次いで、鍵盤スキャンが行われる(ステッ
プS17)。即ち、CPU10は鍵盤装置14に対して
スキャン指令を送出する。これにより、鍵盤装置14
は、既に説明したようにキーデータを生成してCPU1
0に送る。CPU10は、このキーデータ(以下、「新
キーデータ」という。)をRAM12の所定領域に格納
する。次いで、前回の鍵盤スキャン処理で読み込んで既
にRAM12に記憶されているキーデータ(以下、「旧
キーデータ」という。)と、上記新キーデータとを比較
して相違するビットをオンにしたキーイベントマップを
作成する。
プS17)。即ち、CPU10は鍵盤装置14に対して
スキャン指令を送出する。これにより、鍵盤装置14
は、既に説明したようにキーデータを生成してCPU1
0に送る。CPU10は、このキーデータ(以下、「新
キーデータ」という。)をRAM12の所定領域に格納
する。次いで、前回の鍵盤スキャン処理で読み込んで既
にRAM12に記憶されているキーデータ(以下、「旧
キーデータ」という。)と、上記新キーデータとを比較
して相違するビットをオンにしたキーイベントマップを
作成する。
【0077】次いで、イベントの有無が調べられる(ス
テップS18)。これは、上記キーイベントマップを参
照することにより行われる。即ち、キーイベントマップ
中にオンになっているビットが1つ以上存在するかどう
かが調べられ、1つも存在しなければイベントはなかっ
たものと、1つ以上存在すればイベントがあったものと
それぞれ判断される。ここでイベントがあることが判断
されると鍵盤制御処理が行われ(ステップS19)、そ
うでなければ鍵盤制御処理はスキップされる。この鍵盤
制御処理の詳細については後述する。
テップS18)。これは、上記キーイベントマップを参
照することにより行われる。即ち、キーイベントマップ
中にオンになっているビットが1つ以上存在するかどう
かが調べられ、1つも存在しなければイベントはなかっ
たものと、1つ以上存在すればイベントがあったものと
それぞれ判断される。ここでイベントがあることが判断
されると鍵盤制御処理が行われ(ステップS19)、そ
うでなければ鍵盤制御処理はスキップされる。この鍵盤
制御処理の詳細については後述する。
【0078】次いで、受信バッファに受信データ(MI
DIデータ)が存在するかどうかが調べられる(ステッ
プS20)。これは、上述したように、カウンタCTR
の内容とポインタPTRの内容とが一致するかどうかを
調べることにより行われる。ここで受信バッファに受信
データが存在することが判断されるとMIDI−IN処
理が行われ(ステップS21)、そうでなければMID
I−IN処理はスキップされる。このMIDI−IN処
理の詳細については後述する。
DIデータ)が存在するかどうかが調べられる(ステッ
プS20)。これは、上述したように、カウンタCTR
の内容とポインタPTRの内容とが一致するかどうかを
調べることにより行われる。ここで受信バッファに受信
データが存在することが判断されるとMIDI−IN処
理が行われ(ステップS21)、そうでなければMID
I−IN処理はスキップされる。このMIDI−IN処
理の詳細については後述する。
【0079】次いで、パート1〜4読出処理が実行され
る(ステップS22)。この処理は、各パートのパター
ンデータを読み出して楽音を再生する処理である。この
パート1〜4読出処理の詳細については後述する。
る(ステップS22)。この処理は、各パートのパター
ンデータを読み出して楽音を再生する処理である。この
パート1〜4読出処理の詳細については後述する。
【0080】次いで、「その他の処理」が行われる(ス
テップS23)。この「その他の処理」では、音色選択
処理、ボリューム設定処理等が行われるが、本発明とは
直接関係しないので説明は省略する。その後、ステップ
S14に戻り、以下同様の処理が繰り返される。以上の
ステップS14〜S23の繰り返し実行の過程で、操作
パネル13や鍵盤装置14のイベントが発生し、或いは
MIDIデータの受信等があると、これらに対応した処
理が行われることにより、自動伴奏装置としての機能が
発揮される。
テップS23)。この「その他の処理」では、音色選択
処理、ボリューム設定処理等が行われるが、本発明とは
直接関係しないので説明は省略する。その後、ステップ
S14に戻り、以下同様の処理が繰り返される。以上の
ステップS14〜S23の繰り返し実行の過程で、操作
パネル13や鍵盤装置14のイベントが発生し、或いは
MIDIデータの受信等があると、これらに対応した処
理が行われることにより、自動伴奏装置としての機能が
発揮される。
【0081】(2)MIDI−IN割込処理(図4) このMIDI−IN割込処理は、メインルーチンの処理
に割り込んで実行される。このMIDI−IN割込処理
では、MIDIコントローラ18で受信されたMIDI
データが受信バッファに格納される。MIDIコントロ
ーラ18は、外部装置からシリアルに送られてくるMI
DIデータが1バイト分になると割込信号を発生する。
この割込信号はCPU10の割込信号入力端子INT1
に供給される。これにより、CPU10は割込モードに
入り、本MIDI−IN割込処理ルーチンがコールされ
る。
に割り込んで実行される。このMIDI−IN割込処理
では、MIDIコントローラ18で受信されたMIDI
データが受信バッファに格納される。MIDIコントロ
ーラ18は、外部装置からシリアルに送られてくるMI
DIデータが1バイト分になると割込信号を発生する。
この割込信号はCPU10の割込信号入力端子INT1
に供給される。これにより、CPU10は割込モードに
入り、本MIDI−IN割込処理ルーチンがコールされ
る。
【0082】MIDI−IN割込処理では、先ず、MI
DIコントローラ18からMIDIデータが読み込ま
れ、これが受信バッファのカウンタCTRで示される位
置に書き込まれる(ステップS30)。次いで、カウン
タCTRがインクリメントされ(ステップS31)、そ
の結果が記憶エリアの最大値TOPを越えたかどうかが
調べられる(ステップS32)。そして、最大値TOP
を越えていないことが判断されるとMIDI−IN処理
ルーチンからリターンする。一方、上記ステップS22
で最大値TOPを越えたことが判断されると、カウンタ
CTRの内容が最小値BTMに書き換えられ(ステップ
S33)、その後、MIDI−IN処理ルーチンからリ
ターンする。リターン先は、何れもメインルーチンの割
り込まれた位置である。これにより、最大値TOPから
最小値BTMへラウンドする循環バッファの機能が実現
されている。
DIコントローラ18からMIDIデータが読み込ま
れ、これが受信バッファのカウンタCTRで示される位
置に書き込まれる(ステップS30)。次いで、カウン
タCTRがインクリメントされ(ステップS31)、そ
の結果が記憶エリアの最大値TOPを越えたかどうかが
調べられる(ステップS32)。そして、最大値TOP
を越えていないことが判断されるとMIDI−IN処理
ルーチンからリターンする。一方、上記ステップS22
で最大値TOPを越えたことが判断されると、カウンタ
CTRの内容が最小値BTMに書き換えられ(ステップ
S33)、その後、MIDI−IN処理ルーチンからリ
ターンする。リターン先は、何れもメインルーチンの割
り込まれた位置である。これにより、最大値TOPから
最小値BTMへラウンドする循環バッファの機能が実現
されている。
【0083】なお、図中には示されていないが、カウン
タCTRをインクリメントした結果がポインタPTRの
値を越えることとなる場合は受信バッファは満杯である
ので、MIDIデータの取り込み処理は抑止される。
タCTRをインクリメントした結果がポインタPTRの
値を越えることとなる場合は受信バッファは満杯である
ので、MIDIデータの取り込み処理は抑止される。
【0084】(3)パネル制御処理(図5) 次に、メインルーチンのステップS16で行われるパネ
ル制御処理の詳細について、図5のフローチャートを参
照しながら説明する。
ル制御処理の詳細について、図5のフローチャートを参
照しながら説明する。
【0085】このパネル制御処理ルーチンは、メインル
ーチンでパネルスイッチ等のイベントがあったことが判
断された場合にコールされる。パネル制御処理では、先
ず、インクリメンタ133のイベントがあるかどうかが
調べられる(ステップS40)。新旧両パネルデータ中
のインクリメンタデータが比較され、これらが相違する
場合にインクリメンタ133のイベントがあったことが
判断される。ここでインクリメンタ133のイベントが
あったことが判断されるとテンポスピード処理が行われ
(ステップS41)、そうでなければテンポスピード処
理はスキップされる。テンポスピード処理では、新パネ
ルデータ中のインクリメンタデータに応じたデータがタ
イマ17にセットされると共に、テンポスピード表示器
132に送られる。これによりタイマ17から発生され
る割込信号の間隔が変更されて自動伴奏のテンポスピー
ドが変更される。また、変更後のテンポスピードがテン
ポスピード表示器132に表示される。
ーチンでパネルスイッチ等のイベントがあったことが判
断された場合にコールされる。パネル制御処理では、先
ず、インクリメンタ133のイベントがあるかどうかが
調べられる(ステップS40)。新旧両パネルデータ中
のインクリメンタデータが比較され、これらが相違する
場合にインクリメンタ133のイベントがあったことが
判断される。ここでインクリメンタ133のイベントが
あったことが判断されるとテンポスピード処理が行われ
(ステップS41)、そうでなければテンポスピード処
理はスキップされる。テンポスピード処理では、新パネ
ルデータ中のインクリメンタデータに応じたデータがタ
イマ17にセットされると共に、テンポスピード表示器
132に送られる。これによりタイマ17から発生され
る割込信号の間隔が変更されて自動伴奏のテンポスピー
ドが変更される。また、変更後のテンポスピードがテン
ポスピード表示器132に表示される。
【0086】次いで、ストップスイッチ134のイベン
トがあるかどうかが調べられる(ステップS42)。こ
れは、パネルイベントマップ中のストップスイッチ13
4に対応するビットが「1」であるかどうかを調べるこ
とにより行われる。ここでストップスイッチ134のイ
ベントがあることが判断されるとストップ処理が行われ
(ステップS43)、そうでなければストップ処理はス
キップされる。ストップ処理では、RAM12に定義さ
れている自動演奏フラグが「0」にクリアされる。これ
により、後述するタイマ割込処理(図9)において小節
レジスタBRR及び拍レジスタBTRの更新が抑止され
て自動演奏の進行が停止され、各パートの発音が停止さ
れる。
トがあるかどうかが調べられる(ステップS42)。こ
れは、パネルイベントマップ中のストップスイッチ13
4に対応するビットが「1」であるかどうかを調べるこ
とにより行われる。ここでストップスイッチ134のイ
ベントがあることが判断されるとストップ処理が行われ
(ステップS43)、そうでなければストップ処理はス
キップされる。ストップ処理では、RAM12に定義さ
れている自動演奏フラグが「0」にクリアされる。これ
により、後述するタイマ割込処理(図9)において小節
レジスタBRR及び拍レジスタBTRの更新が抑止され
て自動演奏の進行が停止され、各パートの発音が停止さ
れる。
【0087】次いで、プレイ/ポーズスイッチ135の
イベントがあるかどうかが調べられる(ステップS4
4)。これは、パネルイベントマップ中のプレイ/ポー
ズスイッチ135に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでプレイ/ポー
ズスイッチ135のイベントがあることが判断されると
プレイ処理が行われ(ステップS45)、そうでなけれ
ばプレイ処理はスキップされる。プレイ処理では、上記
自動演奏フラグが「0」、つまり自動演奏停止中にプレ
イ/ポーズスイッチ135が押されたことが判断される
と自動演奏フラグが「1」にセットされると共に、LE
D表示器140が点灯される。これにより、後述するタ
イマ割込処理(図9)において小節レジスタBRR及び
拍レジスタBTRの更新が開始され、自動演奏が進行さ
れる。逆に、自動演奏フラグが「1」、つまり自動演奏
中にプレイ/ポーズスイッチ135が押されたことが判
断されると自動演奏フラグが「0」にクリアされると共
に、LED表示器140が消灯される。これにより、上
記ストップスイッチ134が押された時と同様の処理が
行われて各パートの発音が停止される。
イベントがあるかどうかが調べられる(ステップS4
4)。これは、パネルイベントマップ中のプレイ/ポー
ズスイッチ135に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでプレイ/ポー
ズスイッチ135のイベントがあることが判断されると
プレイ処理が行われ(ステップS45)、そうでなけれ
ばプレイ処理はスキップされる。プレイ処理では、上記
自動演奏フラグが「0」、つまり自動演奏停止中にプレ
イ/ポーズスイッチ135が押されたことが判断される
と自動演奏フラグが「1」にセットされると共に、LE
D表示器140が点灯される。これにより、後述するタ
イマ割込処理(図9)において小節レジスタBRR及び
拍レジスタBTRの更新が開始され、自動演奏が進行さ
れる。逆に、自動演奏フラグが「1」、つまり自動演奏
中にプレイ/ポーズスイッチ135が押されたことが判
断されると自動演奏フラグが「0」にクリアされると共
に、LED表示器140が消灯される。これにより、上
記ストップスイッチ134が押された時と同様の処理が
行われて各パートの発音が停止される。
【0088】次いで、タッチバー<L>150又はタッ
チバー<R>151のイベントがあるかどうかが調べら
れる(ステップS46)。これは、パネルイベントマッ
プ中のタッチバー<L>150又はタッチバー<R>1
51に対応するビットが「1」であるかどうかを調べる
ことにより行われる。ここでタッチバー<L>150又
はタッチバー<R>151のイベントがないことが判断
されるとステップS50へ分岐し、そうでなければTY
PEフラグが「0」であるかどうかが調べられる(ステ
ップS47)。ここでTYPEフラグが「0」でないこ
とが判断されると、初心者でない(熟練者である)こと
が認識されステップS50へ分岐する。そうでなければ
初心者であることが認識され、次いで、ロアー鍵盤の押
鍵数が「2」より小さいかどうか、つまり1鍵のみの押
下であるかどうかが調べられる(ステップS48)。ロ
アー鍵盤の押鍵数は、新キーデータ中のロアー鍵盤に対
応するビットのうちオンになっているビットを計数する
ことにより算出される。以下における押鍵数の判断も同
様である。
チバー<R>151のイベントがあるかどうかが調べら
れる(ステップS46)。これは、パネルイベントマッ
プ中のタッチバー<L>150又はタッチバー<R>1
51に対応するビットが「1」であるかどうかを調べる
ことにより行われる。ここでタッチバー<L>150又
はタッチバー<R>151のイベントがないことが判断
されるとステップS50へ分岐し、そうでなければTY
PEフラグが「0」であるかどうかが調べられる(ステ
ップS47)。ここでTYPEフラグが「0」でないこ
とが判断されると、初心者でない(熟練者である)こと
が認識されステップS50へ分岐する。そうでなければ
初心者であることが認識され、次いで、ロアー鍵盤の押
鍵数が「2」より小さいかどうか、つまり1鍵のみの押
下であるかどうかが調べられる(ステップS48)。ロ
アー鍵盤の押鍵数は、新キーデータ中のロアー鍵盤に対
応するビットのうちオンになっているビットを計数する
ことにより算出される。以下における押鍵数の判断も同
様である。
【0089】ここで、ロアー鍵盤の押鍵数が「2」より
小さくない、つまり「2」以上であることが判断される
とステップS50へ分岐し、そうでなければコードタイ
プ決定処理が行われる(ステップS49)。即ち、タッ
チバー<L>150又はタッチバー<R>151の操作
状態に応じて上記表1に示した4つのコードタイプのう
ちの何れか1つが決定される。ここで決定されたコード
タイプは、コードタイプレジスタに格納され、後述する
鍵盤制御処理(図6)でコード検出を行う際に使用され
る。
小さくない、つまり「2」以上であることが判断される
とステップS50へ分岐し、そうでなければコードタイ
プ決定処理が行われる(ステップS49)。即ち、タッ
チバー<L>150又はタッチバー<R>151の操作
状態に応じて上記表1に示した4つのコードタイプのう
ちの何れか1つが決定される。ここで決定されたコード
タイプは、コードタイプレジスタに格納され、後述する
鍵盤制御処理(図6)でコード検出を行う際に使用され
る。
【0090】以上のステップS46〜S49の処理によ
り、初心者であって且つ1鍵のみ押下された場合に、タ
ッチバー<L>150又はタッチバー<R>151の操
作状態に応じてコードタイプが決定され、熟練者の場合
又は初心者であっても2鍵以上が押鍵された場合には、
タッチバー<L>150又はタッチバー<R>151の
押下は無視されてコードタイプの決定は行われない。
り、初心者であって且つ1鍵のみ押下された場合に、タ
ッチバー<L>150又はタッチバー<R>151の操
作状態に応じてコードタイプが決定され、熟練者の場合
又は初心者であっても2鍵以上が押鍵された場合には、
タッチバー<L>150又はタッチバー<R>151の
押下は無視されてコードタイプの決定は行われない。
【0091】次いで、パートスイッチ136〜139の
イベントであるかどうかが調べられる(ステップS5
0)。これは、パネルイベントマップ中のパートスイッ
チ136〜139に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでパートスイッ
チ136〜139のイベントがあることが判断されると
パート1〜4切換処理が行われ(ステップS51)、そ
うでなければパート1〜4切換処理はスキップされる。
その後、このパネル制御処理ルーチンからリターンして
メインルーチンに戻る。
イベントであるかどうかが調べられる(ステップS5
0)。これは、パネルイベントマップ中のパートスイッ
チ136〜139に対応するビットが「1」であるかど
うかを調べることにより行われる。ここでパートスイッ
チ136〜139のイベントがあることが判断されると
パート1〜4切換処理が行われ(ステップS51)、そ
うでなければパート1〜4切換処理はスキップされる。
その後、このパネル制御処理ルーチンからリターンして
メインルーチンに戻る。
【0092】ステップS51で行われるパート切換処理
は、パートスイッチ136〜139が押された時に、当
該パートの発音を開始し又は停止する処理である。本実
施例の自動伴奏装置では、既に説明したように、パート
1〜4のパターンデータは常にROM11から読み出さ
れており、読み出されたパターンデータに基づいて発音
が行われるかどうかは、パートスイッチ136〜139
がオンにされているかどうかによって決定される。
は、パートスイッチ136〜139が押された時に、当
該パートの発音を開始し又は停止する処理である。本実
施例の自動伴奏装置では、既に説明したように、パート
1〜4のパターンデータは常にROM11から読み出さ
れており、読み出されたパターンデータに基づいて発音
が行われるかどうかは、パートスイッチ136〜139
がオンにされているかどうかによって決定される。
【0093】このパート切換処理では、各パートの発音
開始又は発音停止をスムーズ且つ効率よく行うために、
パートスイッチ136〜139によって発音開始が指示
された場合に、当該パートで発音中であるべき音(パタ
ーンデータの読み出しのみが行われている音)のうち、
残存ゲートタイム(当該パートに対応するレジスタ群に
記憶されている残存ゲートタイム)が所定時間未満のも
のは発音の開始を抑止し、残存ゲートタイムが所定時間
以上のものについてのみ発音が開始されるように制御さ
れる。かかる処理により、CPU10がチャンネル割り
当て処理に要する時間が節約されてCPU10の負担が
軽減されるという利点がある。
開始又は発音停止をスムーズ且つ効率よく行うために、
パートスイッチ136〜139によって発音開始が指示
された場合に、当該パートで発音中であるべき音(パタ
ーンデータの読み出しのみが行われている音)のうち、
残存ゲートタイム(当該パートに対応するレジスタ群に
記憶されている残存ゲートタイム)が所定時間未満のも
のは発音の開始を抑止し、残存ゲートタイムが所定時間
以上のものについてのみ発音が開始されるように制御さ
れる。かかる処理により、CPU10がチャンネル割り
当て処理に要する時間が節約されてCPU10の負担が
軽減されるという利点がある。
【0094】(4)鍵盤制御処理(図6) 次に、メインルーチンのステップS19で行われる鍵盤
制御処理の詳細について、図6のフローチャートを参照
しながら説明する。
制御処理の詳細について、図6のフローチャートを参照
しながら説明する。
【0095】この鍵盤制御処理ルートは、メインルーチ
ンで鍵盤イベントがあったことが判断された場合にコー
ルされる。鍵盤制御処理では、先ず、イベントのあった
鍵がロアー鍵(ロアー鍵盤中のいずれかの鍵をいう。以
下も同じ。)であるかどうかが調べられる(ステップS
60)。これは、キーイベントマップ中のロアー鍵盤に
対応する部分の何れかのビットがオンになっているかど
うかを調べることによって行われる。ここでロワー鍵の
イベントでないことが判断されると、アッパー鍵(アッ
パー鍵盤中のいずれかの鍵をいう。以下も同じ。)のイ
ベントであると認識し、通常の押鍵に対する発音を行う
べくステップS64へ分岐する。
ンで鍵盤イベントがあったことが判断された場合にコー
ルされる。鍵盤制御処理では、先ず、イベントのあった
鍵がロアー鍵(ロアー鍵盤中のいずれかの鍵をいう。以
下も同じ。)であるかどうかが調べられる(ステップS
60)。これは、キーイベントマップ中のロアー鍵盤に
対応する部分の何れかのビットがオンになっているかど
うかを調べることによって行われる。ここでロワー鍵の
イベントでないことが判断されると、アッパー鍵(アッ
パー鍵盤中のいずれかの鍵をいう。以下も同じ。)のイ
ベントであると認識し、通常の押鍵に対する発音を行う
べくステップS64へ分岐する。
【0096】一方、ステップS60でロアー鍵のイベン
トでないことが判断されるとコード検出処理が行われる
(ステップS61)。このコード検出処理の詳細は、図
10のフローチャートに示されている。
トでないことが判断されるとコード検出処理が行われる
(ステップS61)。このコード検出処理の詳細は、図
10のフローチャートに示されている。
【0097】コード検出処理では、先ず、TYPEフラ
グが「0」であるかどうかが調べられる(ステップS1
00)。ここでTYPEフラグが「0」でないことが判
断されると、初心者でないことが認識されステップS1
04へ分岐し、そうでなければ初心者であることが認識
され、次いで、ロアー鍵盤の押鍵数が「2」より小さい
かどうか、つまり1鍵のみの押下であるかどうかが調べ
られる(ステップS101)。
グが「0」であるかどうかが調べられる(ステップS1
00)。ここでTYPEフラグが「0」でないことが判
断されると、初心者でないことが認識されステップS1
04へ分岐し、そうでなければ初心者であることが認識
され、次いで、ロアー鍵盤の押鍵数が「2」より小さい
かどうか、つまり1鍵のみの押下であるかどうかが調べ
られる(ステップS101)。
【0098】ここで、ロアー鍵盤の押鍵数が「2」より
小さくない、つまり「2」以上であることが判断される
とステップS104へ分岐し、そうでなければ押下され
た鍵のキーコードがコードルートとして検出される(ス
テップS102)。このコードルートは、コードルート
レジスタに格納される。次いで、コードタイプ決定処理
が行われる(ステップS103)。即ち、上述したパネ
ル処理ルーチン(図5)でタッチバー<L>150又は
タッチバー<R>151の操作に応じて決定されて既に
コードタイプレジスタに格納されているコードタイプが
本コード検出処理ルーチンで検出されたコードタイプと
して使用される。その後、このコード検出処理ルーチン
からリターンして鍵盤制御処理ルーチンに戻る。このよ
うにして決定されたコードルート及びコードタイプは、
次のステップS62で行われる和音展開に使用される。
上記ステップS101により押鍵数検出手段が実現さ
れ、ステップS102及びS103により第1のコード
検出手段及びコード検出手段が実現されている。
小さくない、つまり「2」以上であることが判断される
とステップS104へ分岐し、そうでなければ押下され
た鍵のキーコードがコードルートとして検出される(ス
テップS102)。このコードルートは、コードルート
レジスタに格納される。次いで、コードタイプ決定処理
が行われる(ステップS103)。即ち、上述したパネ
ル処理ルーチン(図5)でタッチバー<L>150又は
タッチバー<R>151の操作に応じて決定されて既に
コードタイプレジスタに格納されているコードタイプが
本コード検出処理ルーチンで検出されたコードタイプと
して使用される。その後、このコード検出処理ルーチン
からリターンして鍵盤制御処理ルーチンに戻る。このよ
うにして決定されたコードルート及びコードタイプは、
次のステップS62で行われる和音展開に使用される。
上記ステップS101により押鍵数検出手段が実現さ
れ、ステップS102及びS103により第1のコード
検出手段及びコード検出手段が実現されている。
【0099】一方、上記ステップS100で、TYPE
フラグが「0」でないことが判断されて初心者でないこ
とが認識された場合、又は上記ステップS101で初心
者であるが2鍵以上が押下されたことが判断された場合
は、通常のコード検出処理が行われる(ステップS10
4)。このコード検出処理は、ロアー鍵盤の押鍵パター
ンに応じて所定のアルゴリズムでコードルート及びコー
ドタイプを検出する処理である。このステップS104
におけるコード検出方法としては、周知の種々の方法を
用いることができる。その後、このコード検出処理ルー
チンからリターンして鍵盤制御処理ルーチンに戻る。こ
のステップS104により第2のコード検出手段及びコ
ード検出手段が実現されている。
フラグが「0」でないことが判断されて初心者でないこ
とが認識された場合、又は上記ステップS101で初心
者であるが2鍵以上が押下されたことが判断された場合
は、通常のコード検出処理が行われる(ステップS10
4)。このコード検出処理は、ロアー鍵盤の押鍵パター
ンに応じて所定のアルゴリズムでコードルート及びコー
ドタイプを検出する処理である。このステップS104
におけるコード検出方法としては、周知の種々の方法を
用いることができる。その後、このコード検出処理ルー
チンからリターンして鍵盤制御処理ルーチンに戻る。こ
のステップS104により第2のコード検出手段及びコ
ード検出手段が実現されている。
【0100】鍵盤制御処理ルーチンでは、次いで、和音
展開処理が行われる(ステップS61)。この和音展開
処理の詳細は、図11のフローチャートに示されてい
る。
展開処理が行われる(ステップS61)。この和音展開
処理の詳細は、図11のフローチャートに示されてい
る。
【0101】和音展開処理では、先ず、TYPEフラグ
が「0」であるかどうかが調べられる(ステップS11
0)。ここでTYPEフラグが「0」でないことが判断
されると初心者でないことが認識されてステップS11
4へ分岐する。そうでなければ初心者であることが認識
され、次いで、ロアー鍵盤の押鍵数が「3」より小さい
かどうか、つまり1鍵又は2鍵の押下であるかどうかが
調べられる(ステップS111)。
が「0」であるかどうかが調べられる(ステップS11
0)。ここでTYPEフラグが「0」でないことが判断
されると初心者でないことが認識されてステップS11
4へ分岐する。そうでなければ初心者であることが認識
され、次いで、ロアー鍵盤の押鍵数が「3」より小さい
かどうか、つまり1鍵又は2鍵の押下であるかどうかが
調べられる(ステップS111)。
【0102】ここで、ロアー鍵盤の押鍵数が「3」より
小さくない、つまり「3」以上であることが判断される
とステップS114へ分岐し、そうでなければ和音作成
が行われる(ステップS112)。即ち、コードルート
レジスタに格納されているコードルート及びコードタイ
プレジスタに格納されているコードタイプに基づいて、
3音又は4音のそれぞれを発音するための和音情報が作
成される。次いで、和音情報が楽音発生器15へ送られ
る(ステップS113)。これにより、ロワー鍵盤の押
鍵に基づいて3音又は4音の和音の発生が可能となる。
その後、この和音展開処理ルーチンからリターンして鍵
盤制御処理ルーチンに戻る。
小さくない、つまり「3」以上であることが判断される
とステップS114へ分岐し、そうでなければ和音作成
が行われる(ステップS112)。即ち、コードルート
レジスタに格納されているコードルート及びコードタイ
プレジスタに格納されているコードタイプに基づいて、
3音又は4音のそれぞれを発音するための和音情報が作
成される。次いで、和音情報が楽音発生器15へ送られ
る(ステップS113)。これにより、ロワー鍵盤の押
鍵に基づいて3音又は4音の和音の発生が可能となる。
その後、この和音展開処理ルーチンからリターンして鍵
盤制御処理ルーチンに戻る。
【0103】上記ステップS110で熟練者と判断され
た場合、又は上記ステップS111で初心者であるが3
鍵以上の押鍵を行ったことが判断された場合は、通常の
発音処理が行われる(ステップS114)。即ち、ロワ
ー鍵盤で押下された全ての鍵を発音するための情報が、
コードの成否に拘わらず楽音発生器15に送られる。そ
の後、この和音展開処理ルーチンからリターンして鍵盤
制御処理ルーチンに戻る。上記ステップSS111〜S
114により和音情報生成手段及び和音情報出力手段が
実現されている。
た場合、又は上記ステップS111で初心者であるが3
鍵以上の押鍵を行ったことが判断された場合は、通常の
発音処理が行われる(ステップS114)。即ち、ロワ
ー鍵盤で押下された全ての鍵を発音するための情報が、
コードの成否に拘わらず楽音発生器15に送られる。そ
の後、この和音展開処理ルーチンからリターンして鍵盤
制御処理ルーチンに戻る。上記ステップSS111〜S
114により和音情報生成手段及び和音情報出力手段が
実現されている。
【0104】鍵盤制御処理ルーチンでは、次いで、コー
ド検出方法更新処理が行われる(ステップS63)。こ
のコード検出方法更新処理の詳細は、図12のフローチ
ャートに示されている。
ド検出方法更新処理が行われる(ステップS63)。こ
のコード検出方法更新処理の詳細は、図12のフローチ
ャートに示されている。
【0105】コード検出方法更新処理では、先ず、ロア
ー鍵盤の押鍵数が「3」以上であるかどうかが調べられ
る(ステップS121)。そして、「3」以上であるこ
とが判断されると、コードとして成立したかどうかが調
べられる(ステップS121)。これは、例えば予め記
憶されているコードパターンと押鍵パターンとを比較す
ることにより実現される。
ー鍵盤の押鍵数が「3」以上であるかどうかが調べられ
る(ステップS121)。そして、「3」以上であるこ
とが判断されると、コードとして成立したかどうかが調
べられる(ステップS121)。これは、例えば予め記
憶されているコードパターンと押鍵パターンとを比較す
ることにより実現される。
【0106】ここで、コードとして成立したことが判断
されると、トレースポインタTPOINTで示される熟
練度判定バッファのエントリに「1」(熟練者データ)
が書き込まれる(ステップS122)。一方、コードと
して成立しなかったことが判断された場合、又は上記ス
テップS120でロアー鍵盤の押鍵数が「3」に満たな
いことが判断された場合は、トレースポインタTPOI
NTで示される熟練度判定バッファのエントリに「0」
(初心者データ)が書き込まれる(ステップS12
3)。上記ステップS120〜123により押鍵状態検
出手段が実現されている。
されると、トレースポインタTPOINTで示される熟
練度判定バッファのエントリに「1」(熟練者データ)
が書き込まれる(ステップS122)。一方、コードと
して成立しなかったことが判断された場合、又は上記ス
テップS120でロアー鍵盤の押鍵数が「3」に満たな
いことが判断された場合は、トレースポインタTPOI
NTで示される熟練度判定バッファのエントリに「0」
(初心者データ)が書き込まれる(ステップS12
3)。上記ステップS120〜123により押鍵状態検
出手段が実現されている。
【0107】次いで、トレースポインタTPOINTが
インクリメントされ(ステップS124)、「32」以
上になったかどうかが調べられる(ステップS12
5)。ここで「32」以上になったことが判断されると
トレースポインタTPOINTが「0」にクリアされ
(ステップS126)、そうでなければステップS12
6はスキップされる。
インクリメントされ(ステップS124)、「32」以
上になったかどうかが調べられる(ステップS12
5)。ここで「32」以上になったことが判断されると
トレースポインタTPOINTが「0」にクリアされ
(ステップS126)、そうでなければステップS12
6はスキップされる。
【0108】次いで、トレースポインタTPOINTで
指定される熟練度判定バッファの全エントリ(TPOI
NT0〜31)の内容が加算されてレジスタTYPDA
Tに格納される(ステップS127)。次いで、レジス
タTYPDATの内容が「16」以上であるかどうかが
調べられる(ステップS128)。そして、「16」以
上であることが判断されると、TYPEフラグに「1」
がセットされる(ステップS129)。その後、このコ
ード検出方法更新ルーチンからリターンして鍵盤制御処
理ルーチンに戻る。これにより、最近行われた32回の
ロワー鍵盤の押鍵のうち、3鍵以上が押下され且つコー
ドが成立した回数が16回以上、換言すればコードを押
さえたうちの半分以上がコードとして成立した場合は熟
練者と判断される。
指定される熟練度判定バッファの全エントリ(TPOI
NT0〜31)の内容が加算されてレジスタTYPDA
Tに格納される(ステップS127)。次いで、レジス
タTYPDATの内容が「16」以上であるかどうかが
調べられる(ステップS128)。そして、「16」以
上であることが判断されると、TYPEフラグに「1」
がセットされる(ステップS129)。その後、このコ
ード検出方法更新ルーチンからリターンして鍵盤制御処
理ルーチンに戻る。これにより、最近行われた32回の
ロワー鍵盤の押鍵のうち、3鍵以上が押下され且つコー
ドが成立した回数が16回以上、換言すればコードを押
さえたうちの半分以上がコードとして成立した場合は熟
練者と判断される。
【0109】一方、上記ステップS128で、「16」
未満であることが判断されると、TYPEフラグが
「0」にクリアされる(ステップS130)。その後、
このコード検出方法更新ルーチンからリターンして鍵盤
制御処理ルーチンに戻る。これにより、もっとも最近行
われた32回のロワー鍵盤の押鍵のうち、3鍵以上が押
下され且つコードが成立した回数が16回未満、換言す
ればコードを押さえたうちコードとして成立しなかった
回数が半分に満たない場合は初心者と判断される。上記
ステップS127〜S130の処理により演奏技量判定
手段が実現されている。
未満であることが判断されると、TYPEフラグが
「0」にクリアされる(ステップS130)。その後、
このコード検出方法更新ルーチンからリターンして鍵盤
制御処理ルーチンに戻る。これにより、もっとも最近行
われた32回のロワー鍵盤の押鍵のうち、3鍵以上が押
下され且つコードが成立した回数が16回未満、換言す
ればコードを押さえたうちコードとして成立しなかった
回数が半分に満たない場合は初心者と判断される。上記
ステップS127〜S130の処理により演奏技量判定
手段が実現されている。
【0110】以上のコード検出方法の変更が終了する
と、鍵盤制御処理ルーチンでは、次いで、発音処理が行
われる(ステップS64)。即ち、アッパー鍵の押鍵に
対しては、押鍵に係る鍵情報に基づき通常の発音が行わ
れる。
と、鍵盤制御処理ルーチンでは、次いで、発音処理が行
われる(ステップS64)。即ち、アッパー鍵の押鍵に
対しては、押鍵に係る鍵情報に基づき通常の発音が行わ
れる。
【0111】一方、ロワー鍵の押鍵に対しては、和音展
開処理(ステップS62)で作成された和音情報に基づ
く複数音の発音が行われる。即ち、レジスタ群nにキー
オン状態で格納されているキーコードと和音展開により
得られた新キーコードとが比較され、レジスタ群n中に
一致するキーコードが発見されれば、そのキーコードに
対しては何等の処理も行われない。従って、発音が継続
されることになる。一方、上記の比較において、コード
検出前の和音構成音であったがコード検出後に和音構成
音でなくなったキーコードに対しては、レジスタ群n中
の対応するキーコードのオン/オフビットが「0」にク
リアされ、キーオフ出力が行われる。ここに、「キーオ
フ出力」とは、楽音発生器15に所定のデータを送出
し、現在のエンベロープよりも格段に高速なリリースエ
ンベロープに置き換えて発音を終了させる一連の処理を
いい、以下においても同じである。
開処理(ステップS62)で作成された和音情報に基づ
く複数音の発音が行われる。即ち、レジスタ群nにキー
オン状態で格納されているキーコードと和音展開により
得られた新キーコードとが比較され、レジスタ群n中に
一致するキーコードが発見されれば、そのキーコードに
対しては何等の処理も行われない。従って、発音が継続
されることになる。一方、上記の比較において、コード
検出前の和音構成音であったがコード検出後に和音構成
音でなくなったキーコードに対しては、レジスタ群n中
の対応するキーコードのオン/オフビットが「0」にク
リアされ、キーオフ出力が行われる。ここに、「キーオ
フ出力」とは、楽音発生器15に所定のデータを送出
し、現在のエンベロープよりも格段に高速なリリースエ
ンベロープに置き換えて発音を終了させる一連の処理を
いい、以下においても同じである。
【0112】次いで、コード検出前の和音構成音でなく
コード検出後に新たに和音構成音となった音に対し、オ
ン/オフビットを「1」にセットしたキーコード、残存
ゲートタイム及びベロシティがレジスタ群nの中の1つ
のブロックに格納される。この際、格納に使用されるブ
ロックは、オン/オフビットが「0」になっているブロ
ックである。そして、キーオン出力が行われる。ここ
に、「キーオン出力」とは、楽音発生器15に所定のデ
ータ(キーコード、ベロシティ等)を送出し、発音を開
始させる一連の処理をいい、以下においても同じであ
る。以上の処理が全パートについて行われ、発音処理が
終了する。この発音処理が終了すると、この鍵盤制御処
理ルーチンからリターンしてメインルーチンに戻る。
コード検出後に新たに和音構成音となった音に対し、オ
ン/オフビットを「1」にセットしたキーコード、残存
ゲートタイム及びベロシティがレジスタ群nの中の1つ
のブロックに格納される。この際、格納に使用されるブ
ロックは、オン/オフビットが「0」になっているブロ
ックである。そして、キーオン出力が行われる。ここ
に、「キーオン出力」とは、楽音発生器15に所定のデ
ータ(キーコード、ベロシティ等)を送出し、発音を開
始させる一連の処理をいい、以下においても同じであ
る。以上の処理が全パートについて行われ、発音処理が
終了する。この発音処理が終了すると、この鍵盤制御処
理ルーチンからリターンしてメインルーチンに戻る。
【0113】(5)MIDI−IN処理(図7) 次に、メインルーチンのステップS21で行われるMI
DI−IN処理の詳細について、図7のフローチャート
を参照しながら説明する。
DI−IN処理の詳細について、図7のフローチャート
を参照しながら説明する。
【0114】このMIDI−IN処理ルーチンは、メイ
ンルーチンでMIDIデータを受信したことが判断され
た場合にコールされる。MIDI−IN処理では、先
ず、受信バッファから1つのMIDIメッセージが取り
出され、それに含まれるMIDIチャンネル番号が
「1」、つまりロワー鍵のデータであるかどうかが調べ
られる(ステップS70)。これは、MIDIメッセー
ジの第1バイト目の下位4ビットにあるチャンネル番号
を調べることにより行われる。ここで、チャンネル番号
が「1」でないことが判断されるとステップS73へ分
岐し、MIDIデータに基づく通常の発音処理が行われ
る。一方、チャンネル番号が「1」、つまりロワー鍵の
データである旨が判断されると、コード検出処理が行わ
れる(ステップS71)。このコード検出処理は、鍵盤
制御処理ルーチンのステップS61で説明したものと同
じである。
ンルーチンでMIDIデータを受信したことが判断され
た場合にコールされる。MIDI−IN処理では、先
ず、受信バッファから1つのMIDIメッセージが取り
出され、それに含まれるMIDIチャンネル番号が
「1」、つまりロワー鍵のデータであるかどうかが調べ
られる(ステップS70)。これは、MIDIメッセー
ジの第1バイト目の下位4ビットにあるチャンネル番号
を調べることにより行われる。ここで、チャンネル番号
が「1」でないことが判断されるとステップS73へ分
岐し、MIDIデータに基づく通常の発音処理が行われ
る。一方、チャンネル番号が「1」、つまりロワー鍵の
データである旨が判断されると、コード検出処理が行わ
れる(ステップS71)。このコード検出処理は、鍵盤
制御処理ルーチンのステップS61で説明したものと同
じである。
【0115】次いで、和音展開処理が行われる(ステッ
プS72)。この和音展開処理は、鍵盤制御処理ルーチ
ンのステップS62で説明したものと同じである。次い
で、発音処理が行われる(ステップS73)。この発音
処理は、鍵盤制御処理ルーチンのステップS64で行わ
れる処理と同じである。なお、本実施例ではMIDI−
IN処理ルーチンにおいてコード検出方法変更処理は行
われない構成となっているが、上記鍵盤制御処理ルーチ
ンと同様に、コード検出方法変更処理を行うように構成
することも可能である。
プS72)。この和音展開処理は、鍵盤制御処理ルーチ
ンのステップS62で説明したものと同じである。次い
で、発音処理が行われる(ステップS73)。この発音
処理は、鍵盤制御処理ルーチンのステップS64で行わ
れる処理と同じである。なお、本実施例ではMIDI−
IN処理ルーチンにおいてコード検出方法変更処理は行
われない構成となっているが、上記鍵盤制御処理ルーチ
ンと同様に、コード検出方法変更処理を行うように構成
することも可能である。
【0116】(6)パート1〜4読出処理(図8) 次に、メインルーチンのステップS22で行われるパー
ト1〜4読出処理の詳細について、図8のフローチャー
トを参照しながら説明する。
ト1〜4読出処理の詳細について、図8のフローチャー
トを参照しながら説明する。
【0117】パート1〜4読出処理は、メインルーチン
から周期的にコールされる。このパート1〜4読出処理
では、先ず、パート番号が「n=1」に初期化される
(ステップS80)。即ち、このパート1〜4読出処理
では、各パート1〜4に対応するパターンデータの読出
処理が行われる。次いで、パートnのパターンデータ中
から未発音のデータが検索される(ステップS81)。
即ち、小節レジスタBRRの内容で示される小節に含ま
れるパターンデータの中で、ステップタイムが拍レジス
タBTRの内容と同一のものが検索される。次いで、検
索されたパターンデータ中のキーコード、ゲートタイム
及びベロシティが読み出される(ステップS82)。
から周期的にコールされる。このパート1〜4読出処理
では、先ず、パート番号が「n=1」に初期化される
(ステップS80)。即ち、このパート1〜4読出処理
では、各パート1〜4に対応するパターンデータの読出
処理が行われる。次いで、パートnのパターンデータ中
から未発音のデータが検索される(ステップS81)。
即ち、小節レジスタBRRの内容で示される小節に含ま
れるパターンデータの中で、ステップタイムが拍レジス
タBTRの内容と同一のものが検索される。次いで、検
索されたパターンデータ中のキーコード、ゲートタイム
及びベロシティが読み出される(ステップS82)。
【0118】次いで、パートnに対応するレジスタ群n
の更新が行われる(ステップS83)。即ち、キーコー
ド、ゲートタイム及びベロシティがレジスタ群nの中の
1つのブロックに格納される。
の更新が行われる(ステップS83)。即ち、キーコー
ド、ゲートタイム及びベロシティがレジスタ群nの中の
1つのブロックに格納される。
【0119】次いで、当該パートnがオン、つまりパー
トnに対応するパートスイッチ136〜139の何れか
が押されているかどうかが調べられ(ステップS8
4)、押されていることが判断されると、キーオン出力
が行われる(ステップS85)。これにより、発音が行
われることになる。一方、パートスイッチ136〜13
9が押されていないことが判断されると、ステップS8
5はスキップされる。従って、この場合は、パターンデ
ータの読み出しのみが行われることになる。
トnに対応するパートスイッチ136〜139の何れか
が押されているかどうかが調べられ(ステップS8
4)、押されていることが判断されると、キーオン出力
が行われる(ステップS85)。これにより、発音が行
われることになる。一方、パートスイッチ136〜13
9が押されていないことが判断されると、ステップS8
5はスキップされる。従って、この場合は、パターンデ
ータの読み出しのみが行われることになる。
【0120】次いで、パート番号nがインクリメントさ
れ(ステップS86)、その結果が5以上でなければス
テップS81に戻って次のパートに対する読出処理が行
われ、5以上であれば全パートに対する処理が終了した
ことを認識してこのパート1〜4読出処理ルーチンから
リターンしてメインルーチンに戻る。
れ(ステップS86)、その結果が5以上でなければス
テップS81に戻って次のパートに対する読出処理が行
われ、5以上であれば全パートに対する処理が終了した
ことを認識してこのパート1〜4読出処理ルーチンから
リターンしてメインルーチンに戻る。
【0121】(7)タイマ割込処理(図9) 次にタイマ割込処理ルーチンについて、図9に示したフ
ローチャートを参照しながら説明する。このタイマ割込
処理ルーチンは、タイマ17から割込信号がCPU10
の割込信号入力端子INT2に供給されることにより起
動される。従って、その時点で設定されているテンポに
おける1ステップタイムに対応する時間間隔でこのタイ
マ割込処理ルーチンが起動されることになる。
ローチャートを参照しながら説明する。このタイマ割込
処理ルーチンは、タイマ17から割込信号がCPU10
の割込信号入力端子INT2に供給されることにより起
動される。従って、その時点で設定されているテンポに
おける1ステップタイムに対応する時間間隔でこのタイ
マ割込処理ルーチンが起動されることになる。
【0122】タイマ割込処理では、先ず、自動演奏フラ
グがオンになっているかどうかが調べられる(ステップ
S900)。即ち、本自動伴奏装置が自動演奏中である
かどうかが調べられる。ここで自動演奏フラグがオンで
あることが判断されると、拍レジスタBTRの内容がイ
ンクリメントされ(ステップS91)、その結果が「1
92」以上になったかどうかが調べられる(ステップS
92)。そして、「192」以上になったことが判断さ
れると、拍レジスタBTRがゼロにクリアされ(ステッ
プS93)、小節レジスタBRRがインクリメントされ
る(ステップS94)。上記ステップS92で「19
2」以上でないことが判断されると、ステップS93及
びS94の処理はスキップされる。上記ステップS91
〜S94の処理により、1ステップタイム毎に小節レジ
スタBRRと拍レジスタBTRとが連結された状態でイ
ンクリメントされる機能が実現されている。
グがオンになっているかどうかが調べられる(ステップ
S900)。即ち、本自動伴奏装置が自動演奏中である
かどうかが調べられる。ここで自動演奏フラグがオンで
あることが判断されると、拍レジスタBTRの内容がイ
ンクリメントされ(ステップS91)、その結果が「1
92」以上になったかどうかが調べられる(ステップS
92)。そして、「192」以上になったことが判断さ
れると、拍レジスタBTRがゼロにクリアされ(ステッ
プS93)、小節レジスタBRRがインクリメントされ
る(ステップS94)。上記ステップS92で「19
2」以上でないことが判断されると、ステップS93及
びS94の処理はスキップされる。上記ステップS91
〜S94の処理により、1ステップタイム毎に小節レジ
スタBRRと拍レジスタBTRとが連結された状態でイ
ンクリメントされる機能が実現されている。
【0123】次いで、全パートのゲートタイムの更新が
行われる(ステップS115)。即ち、全パートのレジ
スタ群に含まれる残存ゲートタイムが「0」以外のもの
はデクリメントされる。そして、このデクリメントの結
果、新たにゼロになった残存ゲートタイムが存在すれ
ば、その残存ゲートタイムに対応するキーコードに対し
てキーオフ出力が行われ発音が停止される。
行われる(ステップS115)。即ち、全パートのレジ
スタ群に含まれる残存ゲートタイムが「0」以外のもの
はデクリメントされる。そして、このデクリメントの結
果、新たにゼロになった残存ゲートタイムが存在すれ
ば、その残存ゲートタイムに対応するキーコードに対し
てキーオフ出力が行われ発音が停止される。
【0124】上記ステップS90で自動演奏フラグがオ
ンでないことが判断されると、自動演奏中でないことが
認識され、全パートのゲートタイムの更新のみが行われ
る。その後、このタイマ割込処理ルーチンからリターン
して割り込まれた位置に戻る。
ンでないことが判断されると、自動演奏中でないことが
認識され、全パートのゲートタイムの更新のみが行われ
る。その後、このタイマ割込処理ルーチンからリターン
して割り込まれた位置に戻る。
【0125】以上説明したように、本実施例において
は、例えばコード検出領域として割り当てられたロワー
鍵盤の押鍵状態に応じて、即ち、3鍵以上が押鍵され且
つ和音が成立したことが検出された場合に熟練者データ
として「1」を、そうでない場合に初心者データとして
「0」を、32個のエントリを有する熟練度判定バッフ
ァに順次記憶すると共に、この熟練度判定バッファに記
憶された熟練者データが半分(16)以上ならば演奏技
量は熟練者であると判定し、そうでなければ初心者と判
定し、この判定により初心者と判定された場合はロワー
鍵盤の1鍵又は2鍵の押鍵により検出されたコードを展
開して3音以上の和音情報を生成し、一方、熟練者と判
定された場合はロワー鍵盤における押鍵情報をそのまま
和音情報とするようにしている。
は、例えばコード検出領域として割り当てられたロワー
鍵盤の押鍵状態に応じて、即ち、3鍵以上が押鍵され且
つ和音が成立したことが検出された場合に熟練者データ
として「1」を、そうでない場合に初心者データとして
「0」を、32個のエントリを有する熟練度判定バッフ
ァに順次記憶すると共に、この熟練度判定バッファに記
憶された熟練者データが半分(16)以上ならば演奏技
量は熟練者であると判定し、そうでなければ初心者と判
定し、この判定により初心者と判定された場合はロワー
鍵盤の1鍵又は2鍵の押鍵により検出されたコードを展
開して3音以上の和音情報を生成し、一方、熟練者と判
定された場合はロワー鍵盤における押鍵情報をそのまま
和音情報とするようにしている。
【0126】これにより、演奏者が順次コード指定を行
いながらコード演奏を行った場合に、そのコード演奏の
流れに基づいて演奏者がコード演奏に関して初心者であ
るか又は熟練者であるかを判別することができる。そし
て、この判別結果により初心者又は熟練者に適した方法
で和音情報が生成されるので、従来のように、初心者又
は熟練者であることを特別に指定しなくても演奏者の技
量に応じた和音情報を生成して出力することができる。
いながらコード演奏を行った場合に、そのコード演奏の
流れに基づいて演奏者がコード演奏に関して初心者であ
るか又は熟練者であるかを判別することができる。そし
て、この判別結果により初心者又は熟練者に適した方法
で和音情報が生成されるので、従来のように、初心者又
は熟練者であることを特別に指定しなくても演奏者の技
量に応じた和音情報を生成して出力することができる。
【0127】また、例えばコード検出領域として割り当
てられたロワー鍵盤の押鍵数が1鍵のときは、演奏者は
初心者とみなし、その鍵で指定される音高をコードルー
トとし、これとタッチバー<L>150及びタッチバー
<R>151で指定されるコードタイプとからなるコー
ドを検出する。一方、ロワー鍵盤の押鍵数が2鍵以上の
ときは、演奏者は熟練者とみなし、押下された複数の鍵
のみに基づきコードタイプとコードルートとからなるコ
ードを検出する。このようにして検出されたコードは、
例えばパターンデータを展開するために使用され、展開
により得られた和音構成音は自動伴奏音を発生するため
に使用される。
てられたロワー鍵盤の押鍵数が1鍵のときは、演奏者は
初心者とみなし、その鍵で指定される音高をコードルー
トとし、これとタッチバー<L>150及びタッチバー
<R>151で指定されるコードタイプとからなるコー
ドを検出する。一方、ロワー鍵盤の押鍵数が2鍵以上の
ときは、演奏者は熟練者とみなし、押下された複数の鍵
のみに基づきコードタイプとコードルートとからなるコ
ードを検出する。このようにして検出されたコードは、
例えばパターンデータを展開するために使用され、展開
により得られた和音構成音は自動伴奏音を発生するため
に使用される。
【0128】従って、演奏者が順次コード指定を行いな
がらコード演奏を行った場合に、その押鍵数に基づい
て、例えば演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができ、この判別結
果によりそれぞれ適したコード検出方法を用いてコード
検出が行われる。従って、従来のように、初心者又は熟
練者であることを特別に指定しなくても演奏者の技量に
応じたコード検出を行って自動伴奏に供することができ
る。
がらコード演奏を行った場合に、その押鍵数に基づい
て、例えば演奏者がコード演奏に関して初心者であるか
又は熟練者であるかを判別することができ、この判別結
果によりそれぞれ適したコード検出方法を用いてコード
検出が行われる。従って、従来のように、初心者又は熟
練者であることを特別に指定しなくても演奏者の技量に
応じたコード検出を行って自動伴奏に供することができ
る。
【0129】
【発明の効果】以上詳述したように、本発明によれば、
初心者又は熟練者であることを格別指定しなくても演奏
者の技量に応じた方法でコード検出を行うことができる
と共に、演奏者の技量に応じた和音情報をロワー音とし
て発音するために出力することのできる自動伴奏装置を
提供できる。
初心者又は熟練者であることを格別指定しなくても演奏
者の技量に応じた方法でコード検出を行うことができる
と共に、演奏者の技量に応じた和音情報をロワー音とし
て発音するために出力することのできる自動伴奏装置を
提供できる。
【図1】本発明の実施例の自動伴奏装置の構成を示すブ
ロック図である。
ロック図である。
【図2】本発明の実施例に使用される操作パネルの一例
を示す図である。
を示す図である。
【図3】本発明の実施例のメイン処理を示すフローチャ
ートである。
ートである。
【図4】本発明の実施例のMIDI−IN割込処理を示
すフローチャートである。
すフローチャートである。
【図5】本発明の実施例のパネル制御処理を示すフロー
チャートである。
チャートである。
【図6】本発明の実施例の鍵盤制御処理を示すフローチ
ャートである。
ャートである。
【図7】本発明の実施例のMIDI−IN処理を示すフ
ローチャートである。
ローチャートである。
【図8】本発明の実施例のパート1〜4読出処理を示す
フローチャートである。
フローチャートである。
【図9】本発明の実施例のタイマ割込処理を示すフロー
チャートである。
チャートである。
【図10】本発明の実施例のコード検出処理を示すフロ
ーチャートである。
ーチャートである。
【図11】本発明の実施例の和音展開処理を示すフロー
チャートである。
チャートである。
【図12】本発明の実施例のコード検出方法更新処理を
示すフローチャートである。
示すフローチャートである。
【図13】本発明の実施例で使用する受信バッファの構
成を示す図である。
成を示す図である。
【図14】(A)は本発明の実施例で使用するレジスタ
群nの構成を示す図、(B)は本発明の実施例で使用す
るパターンデータの構成を示す図である。
群nの構成を示す図、(B)は本発明の実施例で使用す
るパターンデータの構成を示す図である。
10 CPU 11 ROM 12 RAM 13 操作パネル 14 鍵盤装置 15 楽音発生器 16 スピーカシステム 17 タイマ 18 MIDIコントローラ 30 システムバス 130 小節/拍表示器 131 コード表示器 132 テンポスピード表示器 133 インクリメンタ 134 ストップスイッチ 135 プレイ/ポーズスイッチ 136 パート1スイッチ 137 パート2スイッチ 138 パート3スイッチ 139 パート4スイッチ 140〜144 LED表示器 150 タッチバー<L> 151 タッチバー<R>
Claims (8)
- 【請求項1】 特定鍵域の押鍵状態を検出する押鍵状態
検出手段と、 該押鍵状態検出手段で検出された押鍵状態に応じて生成
された演奏技量を判定するためのデータを順次記憶する
記憶手段と、 該記憶手段に記憶された複数の前記データに基づき演奏
技量を判定する演奏技量判定手段と、 該演奏技量判定手段による判定結果に応じて、複数の和
音情報生成方法の中から1つの和音情報生成方法を選択
し、該選択された和音情報生成方法を用いて前記特定鍵
域の押鍵状態に応じた和音情報を生成する和音情報生成
手段、 とを備えたことを特徴とする自動伴奏装置。 - 【請求項2】 前記押鍵状態検出手段で3鍵以上が押鍵
され且つ和音が成立したことが検出された場合に熟練者
データが、そうでない場合に初心者データがそれぞれ順
次前記記憶手段に記憶され、前記演奏技量判定手段は、
前記記憶手段に記憶された熟練者データが所定数以上な
らば演奏技量は熟練者であると判定し、そうでなければ
初心者と判定することを特徴とする請求項1に記載の自
動伴奏装置。 - 【請求項3】 前記和音情報生成手段は、前記特定鍵域
の1鍵又は2鍵の押鍵により検出されたコードを展開し
て3音以上の和音情報を生成する第1の和音情報生成方
法と、前記特定鍵域における押鍵情報をそのまま和音情
報とする第2の和音情報生成方法を有することを特徴と
する請求項1に記載の自動伴奏装置。 - 【請求項4】 特定鍵域の押鍵状態を検出する押鍵状態
検出手段と、 該押鍵状態検出手段で3鍵以上が押鍵され且つ和音が成
立したことが検出された場合に熟練者データが、そうで
ない場合に初心者データがそれぞれ順次記憶される記憶
手段と、 該記憶手段に記憶された熟練者データが所定数以上なら
ば演奏技量は熟練者であると判定し、そうでなければ初
心者と判定する演奏技量判定手段と、 該演奏技量判定手段により初心者と判定された場合に前
記特定鍵域の1鍵又は2鍵の押鍵により検出されたコー
ドを展開して3音以上の和音情報を生成し、熟練者と判
定された場合に前記特定鍵域における押鍵情報をそのま
ま和音情報とする和音情報生成手段、 とを備えたことを特徴とする自動伴奏装置。 - 【請求項5】 特定鍵域における押鍵数を検出する押鍵
数検出手段と、 コードタイプを指定するコードタイプ指定操作子と、 前記押鍵数検出手段で検出された押鍵数が1鍵のときは
該鍵で指定されるコードルートと前記コードタイプ指定
操作子で指定されるコードタイプとからなるコードを検
出する第1のコード検出手段と、 前記押鍵数検出手段で検出された押鍵数が2鍵以上のと
きは、押下された複数の鍵のみに基づきコードタイプと
コードルートとからなるコードを検出する第2のコード
検出手段と、 前記第1のコード検出手段又は第2のコード検出手段で
検出されたコードに基づき自動伴奏音を発生する自動伴
奏音発生手段、 とを有することを特徴とする自動伴奏装置。 - 【請求項6】 前記コードタイプ指定操作子は、コード
タイプがマイナーであることを指定する第1の操作子と
コードタイプがセブンスであることを指定する第2の操
作子とを有し、第1の操作子の操作に応じてコードタイ
プとしてマイナーが検出され、第2の操作子の操作に応
じてコードタイプとしてセブンスが検出され、第1の操
作子及び第2の操作子の何れも操作されていないときは
コードタイプとしてメジャーが検出されることを特徴と
する請求項5に記載の自動伴奏装置。 - 【請求項7】 特定鍵域における押鍵数を検出する押鍵
数検出手段と、 前記特定鍵域における押鍵に基づきコードルートとコー
ドタイプからなるコードを検出するコード検出手段と、 前記押鍵数検出手段で検出された押鍵数が所定数未満の
ときは前記コード検出手段で検出されたコードから前記
押鍵数以上の発音数となるように和音情報を生成して出
力し、前記押鍵数検出手段で検出された押鍵数が所定数
以上のときは前記特定鍵域における押鍵情報をそのまま
和音情報として出力する和音情報出力手段、 とを有することを特徴とする自動伴奏装置。 - 【請求項8】 前記所定数は「3」であることを特徴と
する請求項7に記載の自動伴奏装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06240514A JP3139923B2 (ja) | 1994-09-08 | 1994-09-08 | 自動伴奏装置 |
US08/462,885 US5597971A (en) | 1994-09-08 | 1995-06-05 | Chord information generating apparatus and chord information generating method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP06240514A JP3139923B2 (ja) | 1994-09-08 | 1994-09-08 | 自動伴奏装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0876758A true JPH0876758A (ja) | 1996-03-22 |
JP3139923B2 JP3139923B2 (ja) | 2001-03-05 |
Family
ID=17060660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP06240514A Expired - Fee Related JP3139923B2 (ja) | 1994-09-08 | 1994-09-08 | 自動伴奏装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5597971A (ja) |
JP (1) | JP3139923B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323005A (ja) * | 2005-05-17 | 2006-11-30 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
JP2012189942A (ja) * | 2011-03-14 | 2012-10-04 | Yamaha Corp | コード検出装置およびコード検出方法を実現するためのプログラム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6602281B1 (en) * | 1995-06-05 | 2003-08-05 | Avantec Vascular Corporation | Radially expansible vessel scaffold having beams and expansion joints |
US5977472A (en) * | 1997-01-08 | 1999-11-02 | Yamaha Corporation | Chord detecting apparatus and method, and machine readable medium containing program therefor |
JP3617323B2 (ja) * | 1998-08-25 | 2005-02-02 | ヤマハ株式会社 | 演奏情報発生装置及びそのための記録媒体 |
JP3807275B2 (ja) * | 2001-09-20 | 2006-08-09 | ヤマハ株式会社 | コード提示装置およびコード提示用コンピュータプログラム |
US20030088761A1 (en) * | 2001-11-02 | 2003-05-08 | Paver Nigel C. | Register context usage indicator |
US7435891B2 (en) * | 2003-05-30 | 2008-10-14 | Perla James C | Method and system for generating musical variations directed to particular skill-levels |
WO2005104090A2 (en) * | 2004-04-22 | 2005-11-03 | James Fallgatter | Methods and electronic systems for fingering assignments |
US8269094B2 (en) * | 2009-07-20 | 2012-09-18 | Apple Inc. | System and method to generate and manipulate string-instrument chord grids in a digital audio workstation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4428269A (en) * | 1982-01-18 | 1984-01-31 | The Marmon Group, Inc. | Chord teaching system and method for an electronic musical instrument |
-
1994
- 1994-09-08 JP JP06240514A patent/JP3139923B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-05 US US08/462,885 patent/US5597971A/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006323005A (ja) * | 2005-05-17 | 2006-11-30 | Kawai Musical Instr Mfg Co Ltd | 電子楽器 |
JP2012189942A (ja) * | 2011-03-14 | 2012-10-04 | Yamaha Corp | コード検出装置およびコード検出方法を実現するためのプログラム |
Also Published As
Publication number | Publication date |
---|---|
US5597971A (en) | 1997-01-28 |
JP3139923B2 (ja) | 2001-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2602458B2 (ja) | 自動演奏装置 | |
JPH05108065A (ja) | 自動演奏装置 | |
JP2623809B2 (ja) | 自動押鍵指示装置 | |
JP3139923B2 (ja) | 自動伴奏装置 | |
JP2583809B2 (ja) | 電子楽器 | |
JP3405020B2 (ja) | 電子楽器 | |
JPH06259064A (ja) | 電子楽器 | |
JP3261929B2 (ja) | 自動伴奏装置 | |
JP2640992B2 (ja) | 電子楽器の発音指示装置及び発音指示方法 | |
JP3192597B2 (ja) | 電子楽器の自動演奏装置 | |
US5777250A (en) | Electronic musical instrument with semi-automatic playing function | |
JP3609045B2 (ja) | 自動演奏装置 | |
JPH0375874B2 (ja) | ||
JP2570562B2 (ja) | 自動演奏装置及び自動伴奏装置 | |
JP2513014B2 (ja) | 電子楽器の自動演奏装置 | |
JP2643277B2 (ja) | 自動演奏装置 | |
JP2665854B2 (ja) | 自動演奏装置 | |
JP3097382B2 (ja) | 和音検出装置 | |
JPH09244660A (ja) | 自動伴奏装置 | |
JP3120487B2 (ja) | 自動伴奏機能付電子楽器 | |
JP2630268B2 (ja) | リズム音発生装置 | |
JP3108494B2 (ja) | 自動伴奏装置 | |
JPH0863159A (ja) | 自動演奏装置 | |
JP3208799B2 (ja) | 自動伴奏装置 | |
JPH07199940A (ja) | 電子楽器のデモ演奏制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20001204 |
|
LAPS | Cancellation because of no payment of annual fees |