[go: up one dir, main page]

JP2822281B2 - Accompaniment information processing device - Google Patents

Accompaniment information processing device

Info

Publication number
JP2822281B2
JP2822281B2 JP3109679A JP10967991A JP2822281B2 JP 2822281 B2 JP2822281 B2 JP 2822281B2 JP 3109679 A JP3109679 A JP 3109679A JP 10967991 A JP10967991 A JP 10967991A JP 2822281 B2 JP2822281 B2 JP 2822281B2
Authority
JP
Japan
Prior art keywords
register
chord
information
key
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3109679A
Other languages
Japanese (ja)
Other versions
JPH04317100A (en
Inventor
勉 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawai Musical Instrument Manufacturing Co Ltd
Original Assignee
Kawai Musical Instrument Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawai Musical Instrument Manufacturing Co Ltd filed Critical Kawai Musical Instrument Manufacturing Co Ltd
Priority to JP3109679A priority Critical patent/JP2822281B2/en
Priority to US07/866,374 priority patent/US5250746A/en
Publication of JPH04317100A publication Critical patent/JPH04317100A/en
Application granted granted Critical
Publication of JP2822281B2 publication Critical patent/JP2822281B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、例えば電子楽器等に用
いられる伴奏情報処理装置に関し、特にキーボード等の
音高指定手段で指定された音高を検出し、所定の加工を
施して伴奏情報として記憶する伴奏情報処理装置に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an accompaniment information processing apparatus used for, for example, an electronic musical instrument, and more particularly, to detecting a pitch specified by a pitch specifying means such as a keyboard and performing predetermined processing on the accompaniment information. The present invention relates to an accompaniment information processing device that stores as an accompaniment.

【0002】[0002]

【従来の技術】従来、電子楽器等に用いられる伴奏情報
処理装置として、例えば特開昭62−187388号公
報に開示された自動演奏装置付電子楽器がある。この発
明は、キーボードの押鍵状態により和音が成立したとき
のみ、その和音のコードタイプとコードルートを記憶す
るようにしたものである。
2. Description of the Related Art Conventionally, as an accompaniment information processing apparatus used for an electronic musical instrument or the like, there is an electronic musical instrument with an automatic performance device disclosed in Japanese Patent Application Laid-Open No. 62-187388, for example. According to the present invention, the chord type and chord root of a chord are stored only when a chord is established by the key depression state of the keyboard.

【0003】また、他の伴奏情報処理装置として、例え
ば特開平1−179087号公報に開示された自動演奏
装置がある。この発明は、和音が成立したときは、その
和音のコードタイプとコードルートとを記憶し、和音が
成立しなかったときは、その時の構成音を、例えば数音
まで記憶するというものである。
As another accompaniment information processing apparatus, there is, for example, an automatic performance apparatus disclosed in Japanese Patent Application Laid-Open No. 1-179087. According to the present invention, when a chord is formed, the chord type and chord root of the chord are stored, and when the chord is not formed, the constituent sounds at that time are stored, for example, up to several tones.

【0004】上記公報に開示されている発明は、和音情
報を効率良く記憶するという観点からは、一定の効果を
発揮するが、以下のような欠点がある。
The invention disclosed in the above publication has a certain effect from the viewpoint of efficiently storing chord information, but has the following disadvantages.

【0005】和音が成立した場合に、該和音のコード
タイプとコードルートしか記憶しないので、キーボード
上での最低音が何であるかを判別できない。また、どの
オクターブで押鍵された和音であるかも判断することが
できない。したがって、再生時は、例えばコードルート
を最低音にし、特定のオクターブで再生する等の固定的
な処理しかできず、伴奏の忠実な再現ができない。
[0005] When a chord is formed, only the chord type and chord root of the chord are stored, so that it is impossible to determine the lowest note on the keyboard. Also, it is impossible to determine in which octave the chord is pressed. Therefore, at the time of reproduction, only fixed processing such as, for example, setting the chord root to the lowest tone and reproducing at a specific octave can be performed, and faithful reproduction of accompaniment cannot be performed.

【0006】和音が不成立のときは、その時の構成音
を、音名で記憶するので、和音不成立時には記憶する情
報量が増大する。
When a chord is not established, the constituent sound at that time is stored by a note name, so that when the chord is not established, the amount of information to be stored increases.

【0007】和音が不成立のときは、伴奏パターンと
して、Major 若しくは和音不成立用の独自の情報を記憶
・再生するので、演奏の流れが生きてこない。
When a chord is not established, Major or original information for chord unsuccess is stored and reproduced as an accompaniment pattern, so that the flow of performance does not come to life.

【0008】和音としての成立は注意深く記憶する
が、伴奏エリアにキーオンがあるか否かを検出し、記憶
することはできない。
Although the formation as a chord is memorized carefully, it is not possible to detect whether or not there is a key-on in the accompaniment area and memorize it.

【0009】[0009]

【発明が解決しようとする課題】この発明は、上記諸欠
点を解消するためになされたもので、和音成立時に和音
情報に特定音情報を付加して記憶することにより記録時
の内容を忠実に再生することができる伴奏情報処理装置
を提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made in order to solve the above-mentioned drawbacks, and by adding specific sound information to chord information when a chord is established, the contents at the time of recording can be faithfully reproduced. It is an object of the present invention to provide an accompaniment information processing device capable of reproducing.

【0010】また他の目的は、和音不成立時であっても
演奏の流れを生かしつつ記憶すべき情報量を減らすこと
のできる伴奏情報処理装置を提供することを目的とす
る。
It is another object of the present invention to provide an accompaniment information processing apparatus capable of reducing the amount of information to be stored while utilizing the flow of performance even when chords are not established.

【0011】[0011]

【0012】[0012]

【課題を解決するための手段】この発明の伴奏情報処理
装置は、音高を指定する音高指定手段と、前記音高指定
手段で指定された音高情報に基づきオクターブ識別情報
を含む特定音情報を生成する特定音情報生成手段と、前
記音高指定手段で指定された音高情報の構成音を検出す
る構成音検出手段と、前記構成音検出手段で検出された
構成音の有無を検出するキーオン検出手段と、前記構成
音検出手段で検出された構成音から和音を検出して和音
情報を生成する和音情報生成手段と、前記特定音情報生
成手段で生成されたオクターブ識別情報を含む特定音情
報、前記キーオン検出手段で検出された構成音の有無、
ならびに前記和音情報生成手段で生成された和音情報の
3者を関連付けて時系列的に記憶する記憶手段と、を具
備したことを特徴とする。
According to the present invention, there is provided an accompaniment information processing apparatus comprising: a pitch designation unit for designating a pitch; and a specific tone including octave identification information based on the pitch information designated by the pitch designation unit. Specific sound information generating means for generating information; constituent sound detecting means for detecting constituent sounds of the pitch information specified by the pitch specifying means; and detecting presence or absence of constituent sounds detected by the constituent sound detecting means Key-on detecting means, chord information generating means for detecting chords from the constituent sounds detected by the constituent sound detecting means to generate chord information, and identification including octave identification information generated by the specific sound information generating means. Sound information, presence or absence of a constituent sound detected by the key-on detecting means,
And storage means for storing the chord information generated by the chord information generation means in a time-series manner in association with each other.

【0013】また、この発明の伴奏情報処理装置は、音
高を指定する音高指定手段と、前記音高指定手段で指定
された音高情報の構成音を検出する構成音検出手段と、
前記構成音検出手段で検出された構成音により和音が成
立することが判断されたときは和音情報を生成し、和音
が成立しないことが判断されたときは直前の構成音情報
に対する補正情報を生成する和音/補正情報生成手段
と、前記和音/補正情報生成手段で生成された和音情報
又は補正情報を時系列的に記憶する記憶手段と、を具備
したことを特徴とするものであり、さらに、上記構成に
おいて前記和音/補正情報生成手段で生成される補正情
報が、和音との相対的な音高に係る情報であることを特
徴とするものである。
Further, the accompaniment information processing apparatus according to the present invention comprises a pitch specifying means for specifying a pitch, a constituent sound detecting means for detecting a constituent sound of the pitch information specified by the pitch specifying means,
When it is determined that a chord is formed by the constituent sounds detected by the constituent sound detection means, chord information is generated, and when it is determined that the chord is not formed, correction information for the immediately preceding constituent sound information is generated. And a storage means for storing the chord information or the correction information generated by the chord / correction information generating means in a time-series manner. In the above configuration, the correction information generated by the chord / correction information generating means is information relating to a pitch relative to a chord.

【0014】[0014]

【0015】[0015]

【作用】本発明に係る第1の伴奏情報処理装置は、検出
した和音情報に、該和音情報に係る特定音情報、例えば
和音構成音の最低音又は最高音に関する情報、オクター
ブ情報等を関連付けて記憶するようにしたものである。
The first accompaniment information processing apparatus according to the present invention associates the detected chord information with specific sound information relating to the chord information, for example, information relating to the lowest or highest note of the chord component, octave information, and the like. It is intended to be memorized.

【0016】これにより、同一の構成音の和音であって
も、該和音の最低音又は最高音を基準にして展開するこ
とにより所定のバリエーションで和音を再生することが
でき、また、所定の音域で和音を再生することができる
こととなり、記録時の伴奏を忠実に再現できるものとな
っている。
Thus, even if the chords have the same constituent tone, the chords can be reproduced in a predetermined variation by developing the chords with reference to the lowest or highest chord. Can reproduce the chord, and the accompaniment at the time of recording can be faithfully reproduced.

【0017】本発明に係る第2の伴奏情報処理装置は、
和音の不成立は、所定の和音から次の和音に移行する過
程で数鍵を余分に押鍵したり離鍵したりすることにより
発生する場合が多いという特性に着目してなされたもの
で、和音が成立しなかったことを検出した場合は、直前
に記憶した和音情報に対する変化分を補正情報として記
憶するようにしたものである。
A second accompaniment information processing apparatus according to the present invention
Unsuccessful chords are made by paying attention to the characteristic that they often occur due to extra keys being pressed or released in the process of shifting from a predetermined chord to the next chord. Is detected, the change from the chord information stored immediately before is stored as correction information.

【0018】これにより、和音不成立時の記憶すべき情
報量を大幅に減少させることができるものとなってい
る。また、和音不成立時には直前に成立した和音情報を
重視して、例えば少なくともコードタイプは直前に成立
した和音情報を用いるようにしたので、演奏の流れが自
然なものとなっている。
This makes it possible to greatly reduce the amount of information to be stored when a chord is not established. Further, when a chord is not established, the chord information immediately preceding is regarded as important, and for example, at least the chord information used at least for the chord type is used, so that the flow of the performance is natural.

【0019】[0019]

【0020】[0020]

【0021】[0021]

【実施例】図1は、本発明に係る伴奏情報処理装置を包
含する電子楽器の全体的な構成を示す概略ブロック図で
ある。
FIG. 1 is a schematic block diagram showing the overall configuration of an electronic musical instrument including an accompaniment information processing apparatus according to the present invention.

【0022】図において、10はシリアル入出力を行う
インタフェース回路である。このインタフェース回路1
0は、本装置と外部装置との間でMIDI(Musical
In-strument Digital Interface)情報の送受を行
うものである。
In FIG. 1, reference numeral 10 denotes an interface circuit for performing serial input / output. This interface circuit 1
0 indicates MIDI (Musical) between the device and an external device.
It sends and receives In-strument Digital Interface (Information) information.

【0023】このインタフェース回路10は、外部装置
側に「MIDI IN」端子と「MIDI OUT」端
子とを有している。また、CPU側はシステムバス30
に接続されるようになっている。そして、外部装置側
は、規格化されたMIDIインタフェースにより、CP
U側は、キーコード(キーナンバ)により、それぞれ情
報の送受を行うようになっている。
The interface circuit 10 has a "MIDI IN" terminal and a "MIDI OUT" terminal on the external device side. The CPU side is the system bus 30
Is to be connected to. The external device uses a standardized MIDI interface to control the CP.
The U side transmits and receives information by a key code (key number).

【0024】ここでキーナンバとは、キーボードの各キ
ーに割り当てられた番号であってMIDI規格に準じて
おり、C-1=0、C0 =12、C1 =24、C2 =3
6、…のように、1オクターブで「12」ずつ増加する
数値である。
Here, the key number is a number assigned to each key of the keyboard and conforms to the MIDI standard. C -1 = 0, C 0 = 12, C 1 = 24, C 2 = 3.
6,... Are values that increase by “12” in one octave.

【0025】このインタフェース回路10からは、割り
込み要求信号が出力されるようになっている。この割り
込み要求信号は、CPU16の割り込み端子INT2に
供給される。インタフェース回路10は、この割り込み
信号をアクティブにすることにより、CPU16に割り
込みをかけ、該インタフェース回路10からRAM18
内のMIDIバッファへの情報転送を要求する。
The interface circuit 10 outputs an interrupt request signal. This interrupt request signal is supplied to the interrupt terminal INT2 of the CPU 16. By activating this interrupt signal, the interface circuit 10 interrupts the CPU 16 and sends the interrupt signal from the interface circuit 10 to the RAM 18.
Request for information transfer to the MIDI buffer in the.

【0026】11はキースイッチである。このキースイ
ッチ11は、キーボードの各キーに対応して設けられて
おり、押鍵/離鍵によりオン/オフするスイッチであ
る。このキースイッチ11の出力はキースキャン回路1
2に供給される。
Reference numeral 11 denotes a key switch. The key switch 11 is provided corresponding to each key of the keyboard, and is a switch that is turned on / off by key press / key release. The output of the key switch 11 is the key scan circuit 1
2 is supplied.

【0027】キースキャン回路12は、キースイッチ1
1のオン/オフ状態を検出するものである。このキース
キャン回路12で検出されたキースイッチ11のオン/
オフ状態は、キーコード(キーナンバ)としてシステム
バス30に出力される。また、このキースキャン回路1
2からは、割り込み要求信号が出力されるようになって
いる。この割り込み要求信号は、CPU16の割り込み
端子INT3に供給される。キースキャン回路12は、
この割り込み要求信号をアクティブにすることにより、
CPU16に割り込みをかけ、該キースキャン回路12
からRAM18内のマニュアルバッファへのキーナンバ
の転送を要求する。
The key scan circuit 12 includes the key switch 1
1 for detecting the on / off state. The ON / OFF state of the key switch 11 detected by the key scan circuit 12
The OFF state is output to the system bus 30 as a key code (key number). Also, this key scan circuit 1
2 outputs an interrupt request signal. This interrupt request signal is supplied to the interrupt terminal INT3 of the CPU 16. The key scan circuit 12
By activating this interrupt request signal,
The CPU 16 is interrupted, and the key scan circuit 12
Requesting transfer of the key number to the manual buffer in the RAM 18.

【0028】13はパネルスイッチであり、図示しない
パネルに設けられた音色スイッチ、音量スイッチ等で構
成されている。このパネルスイッチ13の出力は、パネ
ルスキャン回路14に供給される。
Reference numeral 13 denotes a panel switch, which comprises a tone switch, a volume switch, and the like provided on a panel (not shown). The output of the panel switch 13 is supplied to a panel scan circuit 14.

【0029】パネルスキャン回路14は、パネルスイッ
チ13のオン/オフ状態を検出するものである。このパ
ネルスキャン回路14で検出されたパネルスイッチ13
のオン/オフ状態は、該パネルスイッチ13に対応した
ナンバ(トーンナンバ)としてシステムバス30に出力
される。
The panel scan circuit 14 detects the on / off state of the panel switch 13. The panel switch 13 detected by the panel scan circuit 14
Is output to the system bus 30 as a number (tone number) corresponding to the panel switch 13.

【0030】15はタイマである。このタイマ15は、
テンポスピードを制御するために使用される。このタイ
マ15には、CPU16から任意のカウント値がセット
されるようになっている。このタイマ15は、セットさ
れたカウント値の計数を終了した際に、割り込み要求信
号を発生する。このタイマ15が出力する割り込み要求
信号は、CPU16の割り込み端子INT1に供給され
るようになっている。CPU16は、タイマ15が発生
する割り込み要求信号のインターバルに同期するべく、
テンポスピードを制御する。
Reference numeral 15 denotes a timer. This timer 15
Used to control tempo speed. An arbitrary count value is set in the timer 15 by the CPU 16. The timer 15 generates an interrupt request signal when the counting of the set count value is completed. The interrupt request signal output from the timer 15 is supplied to an interrupt terminal INT1 of the CPU 16. The CPU 16 synchronizes with the interval of the interrupt request signal generated by the timer 15.
Control tempo speed.

【0031】CPU16は、この実施例の電子楽器の全
体を制御するとともに、伴奏情報処理装置としての諸機
能を実現するものである。
The CPU 16 controls the entire electronic musical instrument of this embodiment and implements various functions as an accompaniment information processing device.

【0032】即ち、音高情報としてのキーナンバを受け
取ると、その時選択されている音色にて発音するべく、
音源回路21を駆動する。また、上記キーナンバに基づ
き、和音情報や補正情報を検出し、自動演奏を行わせ
る。さらに、上記で検出した和音情報や補正情報を記憶
・再生する制御を行う。これらCPU16の処理内容に
ついては、後に詳細に説明する。
That is, when the key number as the pitch information is received, in order to produce the tone selected at that time,
The tone generator 21 is driven. Further, based on the key number, chord information and correction information are detected, and an automatic performance is performed. Further, control for storing and reproducing the chord information and the correction information detected above is performed. The processing contents of the CPU 16 will be described later in detail.

【0033】17はリードオンリメモリ(以下「RO
M」という。)である。このROM17には、上記CP
U16を動作させるためのプログラム、和音を検出する
ためのコード表(詳細は後述する)等が記憶される。
Reference numeral 17 denotes a read only memory (hereinafter referred to as "RO").
M ”. ). This ROM 17 contains the CP
A program for operating the U16, a chord table for detecting a chord (details will be described later), and the like are stored.

【0034】18はランダムアクセスメモリ(以下「R
AM」という。)である。このRAM18には、CPU
16の作業用のレジスタ、コードシーケンサ用の記憶エ
リア、MIDIバッファ、マニュアルバッファ、ディス
クバッファ、ニューキーエリア、オールドキーエリア等
が定義されている。これらの詳細については、後述す
る。
Reference numeral 18 denotes a random access memory (hereinafter referred to as "R
AM ". ). The RAM 18 has a CPU
Sixteen work registers, a code sequencer storage area, a MIDI buffer, a manual buffer, a disk buffer, a new key area, an old key area, and the like are defined. Details of these will be described later.

【0035】19はディスク駆動回路であり、ディスク
装置20を制御するものである。このディスク駆動回路
19は、MIDI入出力と同じ方法で、記憶手段として
のディスク装置20に演奏情報を書き込み、また、ディ
スク装置20から演奏情報を読み出す処理を行う。この
際、ディスク装置20を効率よく使用するために、RA
M18上に設けられたディスクバッファを介してブロッ
ク単位(例えば、256〜1024バイト)でデータ転
送を行うようになっている。
Numeral 19 denotes a disk drive circuit for controlling the disk drive 20. The disk drive circuit 19 performs a process of writing performance information to a disk device 20 as storage means and reading performance information from the disk device 20 in the same manner as MIDI input / output. At this time, in order to use the disk device 20 efficiently, RA
Data is transferred in block units (for example, 256 to 1024 bytes) via a disk buffer provided on the M18.

【0036】また、このディスク駆動回路19からは、
割り込み要求信号が出力されるようになっている。この
割り込み要求信号は、CPU16の割り込み端子INT
4に供給される。ディスク駆動回路19は、この割り込
み要求信号をアクティブにすることにより、CPU16
に割り込みをかけ、ディスク装置20からRAM18内
のディスクバッファへのデータの転送を要求する。
Also, from the disk drive circuit 19,
An interrupt request signal is output. This interrupt request signal is sent to the interrupt terminal INT of the CPU 16.
4 is supplied. By activating this interrupt request signal, the disk drive circuit 19
To request the transfer of data from the disk device 20 to the disk buffer in the RAM 18.

【0037】21は音源回路である。この音源回路21
は、CPU16によってアサインされた32チャネルの
キーナンバとトーンナンバとに基づき、デジタル楽音信
号を時分割で生成するものである。この音源回路21で
生成されたデジタル楽音信号は、D/A変換器22に供
給される。
Reference numeral 21 denotes a tone generator circuit. This sound source circuit 21
Generates a digital tone signal in a time-division manner on the basis of the key number and tone number of 32 channels assigned by the CPU 16. The digital tone signal generated by the tone generator 21 is supplied to a D / A converter 22.

【0038】D/A変換器22は、入力されたデジタル
楽音信号をアナログ楽音信号に変換するものである。こ
のD/A変換器22で変換されたアナログ楽音信号は、
サウンドシステム23に供給されるようになっている。
The D / A converter 22 converts an input digital tone signal into an analog tone signal. The analog tone signal converted by the D / A converter 22 is
The sound is supplied to the sound system 23.

【0039】サウンドシステム23は、入力された電気
信号としてのアナログ楽音信号を音響信号に変換するも
のである。つまり、サウンドシステム23は、例えばス
ピーカやヘッドホン等に代表される音響発生手段であり
放音を行うものである。
The sound system 23 converts an analog tone signal as an input electric signal into an acoustic signal. That is, the sound system 23 is a sound generating unit represented by, for example, a speaker or a headphone, and emits sound.

【0040】上記インタフェース回路10、キースキャ
ン回路12、パネルスキャン回路14、タイマ15、C
PU16、ROM17、RAM18、ディスク駆動回路
19及び音源回路21は、システムバス30を介して相
互に接続されるようになっている。
The above interface circuit 10, key scan circuit 12, panel scan circuit 14, timer 15, C
The PU 16, the ROM 17, the RAM 18, the disk drive circuit 19, and the tone generator 21 are connected to each other via a system bus 30.

【0041】次に、上記構成において、動作を説明す
る。図2は本発明の実施例に係る伴奏情報処理装置のメ
インフローチャートを示す。
Next, the operation of the above configuration will be described. FIG. 2 shows a main flowchart of the accompaniment information processing apparatus according to the embodiment of the present invention.

【0042】先ず、電源投入又はリセット操作が行われ
ると、イニシャライズが行われる(ステップS10
0)。このイニシャライズ処理では、各種ハードウエア
の初期化、初期値設定、RAM18の内容の初期化等が
行われる。
First, when a power-on or reset operation is performed, initialization is performed (step S10).
0). In the initialization processing, initialization of various hardware, initial value setting, initialization of the contents of the RAM 18, and the like are performed.

【0043】次いで、RECスイッチのオンイベントが
あるか否かが調べられる(ステップS101)。このR
ECスイッチは、パネルスイッチ13の中の1つのスイ
ッチである。このRECスイッチは、後に行う和音検出
処理(ステップS112)で検出した和音情報を、RA
M18内のコードシーケンサに記憶するか否かを指示す
るスイッチである。
Next, it is checked whether or not there is an ON event of the REC switch (step S101). This R
The EC switch is one of the panel switches 13. The REC switch converts the chord information detected in the chord detection processing (step S112) performed later into RA
This is a switch for instructing whether or not to store in the code sequencer in M18.

【0044】このステップS101で、RECスイッチ
のオンイベントがあったことが判断されると、RECフ
ラグを「1」、PLYフラグを「0」にセットする(ス
テップS102)。このRECフラグ、PLYフラグ
は、RAM18内の所定領域に定義されるフラグであ
る。一方、RECスイッチのオンイベントがなかったこ
とが判断されると、上記ステップS102はスキップさ
れる。
If it is determined in step S101 that an REC switch ON event has occurred, the REC flag is set to "1" and the PLY flag is set to "0" (step S102). The REC flag and the PLY flag are flags defined in a predetermined area in the RAM 18. On the other hand, when it is determined that there is no REC switch ON event, the above step S102 is skipped.

【0045】次いで、PLYスイッチのオンイベントが
あるか否かが調べられる(ステップS103)。このP
LYスイッチも、パネルスイッチ13の中の1つのスイ
ッチである。このPLYスイッチは、RAM18内のコ
ードシーケンサに記憶されている和音情報をテンポスピ
ードに合わせて再生するか否かを指示するスイッチであ
る。
Next, it is checked whether or not there is an ON event of the PLY switch (step S103). This P
The LY switch is also one of the panel switches 13. The PLY switch is a switch for instructing whether or not the chord information stored in the chord sequencer in the RAM 18 is reproduced according to the tempo speed.

【0046】このステップS103で、PLYスイッチ
のオンイベントがあったことが判断されると、PLYフ
ラグを「1」、RECフラグを「0」にセットする(ス
テップS104)。一方、PLYスイッチのオンイベン
トがなかったことが判断されると、上記ステップS10
4はスキップされる。
If it is determined in step S103 that the PLY switch has been turned on, the PLY flag is set to "1" and the REC flag is set to "0" (step S104). On the other hand, if it is determined that there is no PLY switch ON event, the process proceeds to step S10
4 is skipped.

【0047】以上の処理から理解できるように、PLY
フラグとRECフラグは同時に「1」になることはな
く、したがって、検出した和音情報の記憶と、記憶され
た和音情報の再生を同時に行うことはできない。
As can be understood from the above processing, PLY
The flag and the REC flag do not become "1" at the same time, and therefore, the storage of the detected chord information and the reproduction of the stored chord information cannot be performed at the same time.

【0048】次いで、STARTスイッチのオンイベン
トがあるか否かが調べられる(ステップS105)。こ
のSTARTスイッチは、パネルスイッチ13の中の1
つのスイッチである。このSTARTスイッチは、和音
を検出して記憶する処理(REC処理)又は記憶された
和音情報を再生する処理(PLY処理)を開始するか否
かを指示するスイッチである。
Next, it is checked whether there is an ON event of the START switch (step S105). This START switch is one of the panel switches 13.
Switch. The START switch is a switch for instructing whether or not to start processing for detecting and storing chords (REC processing) or processing for reproducing stored chord information (PLY processing).

【0049】このステップS105で、STARTスイ
ッチのオンイベントがあったことが判断されると、RU
Nフラグを「1」にセットする(ステップS106)。
このRUNフラグは、RAM18内の所定領域に定義さ
れるフラグである。
If it is determined in step S105 that the start switch ON event has occurred, the RU
The N flag is set to "1" (step S106).
This RUN flag is a flag defined in a predetermined area in the RAM 18.

【0050】また、RAM18内のコードシーケンサの
ポインタPNT及びタイマカウンタTIMNをゼロにク
リアする(ステップS107)。ポインタPNTは、現
在読出中又は記録中のコードシーケンサのデータ位置を
指すものである。またタイマカウンタTIMNは、タイ
マ15からの割り込み要求信号に応じて、RUN中(R
UNフラグが「1」)であるという条件で、インクリメ
ントされるカウンタである(図15(A)参照)。これ
らは何れもRAM18内に設けられる。
Further, the pointer PNT of the code sequencer and the timer counter TIMN in the RAM 18 are cleared to zero (step S107). The pointer PNT indicates the data position of the code sequencer currently being read or recorded. The timer counter TIMN responds to the interrupt request signal from the timer 15 during RUN (R
This counter is incremented on condition that the UN flag is “1”) (see FIG. 15A). These are all provided in the RAM 18.

【0051】一方、STARTスイッチのオンイベント
がなかったことが判断されると、上記ステップS10
6、S107はスキップされる。
On the other hand, if it is determined that there is no ON event of the START switch, the process proceeds to step S10.
6, S107 is skipped.

【0052】次いで、キーデータのミキシング処理が行
われる(ステップS108)。このキーデータのミキシ
ング処理は、MIDI入力キーナンバとマニュアル入力
キーナンバ及びディスク再生キーナンバの論理和をとる
処理である。MIDI入力キーナンバとマニュアル入力
キーナンバ及びディスク再生キーナンバは、それぞれ、
RAM18のMIDIバッファ、マニュアルバッファ及
びディスクバッファに記憶されている。このミキシング
処理により、キーナンバ0〜127に対する新たなキー
情報が、RAM18内のニューキーエリアに作成され
る。
Next, key data mixing processing is performed (step S108). The key data mixing process is a process of calculating the logical sum of the MIDI input key number, the manual input key number, and the disk reproduction key number. The MIDI input key number, manual input key number, and disc playback key number are respectively
It is stored in the MIDI buffer, manual buffer and disk buffer of the RAM 18. By this mixing process, new key information for the key numbers 0 to 127 is created in the new key area in the RAM 18.

【0053】次いで、キーイベントの有無が調べられる
(ステップS109)。これは、RAM18内のニュー
キーエリアの内容とオールドキーエリアの内容との排他
的論理和をとり、その結果がゼロであるか否かを調べる
ことにより行われる。したがって、MIDI入力キーナ
ンバとマニュアル入力キーナンバ及びディスク再生キー
ナンバのキーイベントの有無が共通に調べられることに
なる。
Next, the presence or absence of a key event is checked (step S109). This is performed by taking the exclusive OR of the contents of the new key area and the contents of the old key area in the RAM 18 and checking whether or not the result is zero. Therefore, the presence / absence of key events of the MIDI input key number, the manual input key number, and the disc reproduction key number can be commonly checked.

【0054】ここで、キーイベントがなかったことが判
断されると、処理シーケンスはステップS116へ移
る。即ち、和音検出処理、REC処理等は行われない。
一方、キーイベントがあったことが判断されると、キー
イベントがあったキーのキーナンバが、スプリットポイ
ント(SP)のキーナンバ以下であるか否かが調べられ
る(ステップS110)。
Here, when it is determined that there is no key event, the processing sequence proceeds to step S116. That is, chord detection processing, REC processing, and the like are not performed.
On the other hand, if it is determined that a key event has occurred, it is checked whether the key number of the key having the key event is equal to or less than the key number of the split point (SP) (step S110).

【0055】ここで、スプリットポイント(SP)と
は、和音検出を行うキーボードの境界を示すキーナンバ
である。通常、このスプリットポイント以下のキーナン
バを有する領域が和音エリアのキーとなり、和音検出の
対象となる。したがって、和音検出を行う場合、そのキ
ーナンバが、スプリットポイントの上であるか下である
かを判別する必要がある。勿論、全キー領域において和
音を検出する場合があるが、この時は、SP=127に
設定すれば良い。このスプリットポイントは、通常、可
変にできるように構成される。
Here, the split point (SP) is a key number indicating a boundary of a keyboard for performing chord detection. Normally, an area having a key number equal to or smaller than the split point is a key of the chord area and is a target of chord detection. Therefore, when performing chord detection, it is necessary to determine whether the key number is above or below the split point. Of course, a chord may be detected in all key areas. In this case, SP may be set to 127. This split point is usually configured to be variable.

【0056】上記ステップS110で、キーイベントが
あったキーのキーナンバが、スプリットポイント(S
P)のキーナンバより大きいことが判断されると、和音
検出対象外のキーであるので、以下の和音検出処理、R
EC処理は行われずに、処理シーケンスはステップS1
15へ移る。したがって、通常のキー押下による発音処
理(ステップS115)が行われることになる。
In step S110, the key number of the key having the key event is changed to the split point (S
If it is determined that the key number is larger than the key number of P), the key is out of the chord detection target, so that the following chord detection processing, R
The EC processing is not performed, and the processing sequence is step S1.
Move to 15. Therefore, a sound generation process (step S115) by a normal key press is performed.

【0057】一方、スプリットポイント(SP)のキー
ナンバ以下であることが判断されると、ノートチャネル
アサイン処理が実行される(ステップS111)。ここ
で、ノートチャネルアサインとは、和音は特別の12個
の各ノートに対応した発音チャネルを余分に有し、同じ
音名(ノート)に関しては、1音しか発音できないとす
る処理である。このノートチャネルアサインは、自動伴
奏(オートアカンパニメント、オートアルペジオ)に使
用され、適宜タイミングで刻まれる。
On the other hand, if it is determined that the key number is equal to or less than the key number of the split point (SP), note channel assignment processing is executed (step S111). Here, note channel assignment is a process in which a chord has an extra sounding channel corresponding to each of the special 12 notes, and only one sound can be sounded for the same note name (note). This note channel assignment is used for automatic accompaniment (auto accompaniment, auto arpeggio) and is carved at appropriate timing.

【0058】次いで、和音検出処理が実行される(ステ
ップS112)。この和音検出処理の詳細については、
後述する。
Next, chord detection processing is executed (step S112). For details of this chord detection process,
It will be described later.

【0059】次いで、「REC=1且つRUN=1」で
あるか否かが調べられる(ステップS113)。つま
り、和音情報の記憶を行うべきことが指定されているか
否かが調べられる。そして、和音情報の記憶を行うべき
ことが指定されていることが判断されると、REC処理
を行う(ステップS114)。つまり、検出した和音情
報を、RAM18内のコードシーケンサに記憶する処理
を行う。このREC処理の詳細については後述する。一
方、ステップS113で、和音情報の記憶を行うべきこ
とが指定されていないことが判断されると、このREC
処理はスキップされる。
Next, it is checked whether or not "REC = 1 and RUN = 1" (step S113). That is, it is checked whether or not it is specified that chord information should be stored. If it is determined that the chord information should be stored, REC processing is performed (step S114). That is, a process of storing the detected chord information in the chord sequencer in the RAM 18 is performed. Details of this REC processing will be described later. On the other hand, if it is determined in step S113 that it is not specified that chord information should be stored, this REC
Processing is skipped.

【0060】次いで、発音制御処理が行われる(ステッ
プS115)。この発音制御処理は、キーイベントがあ
ったキーナンバが、スプリットポイントの上か下かによ
り、アッパー音色かロワー音色かを選択して、キーイベ
ントに応じた発音を行うものである。即ち、キーのオン
イベントであれば、そのキーをいずれかのチャネルにア
サインして発音を開始させ、オフイベントであれば、対
応するキーナンバのチャネルを捜し出して発音をリリー
ス状態に移行させる。
Next, a tone generation control process is performed (step S115). In this sound generation control process, an upper tone or a lower tone is selected depending on whether a key number having a key event is above or below a split point, and sound is generated according to the key event. That is, if the event is a key on event, the key is assigned to one of the channels to start sounding. If the event is an off event, the channel with the corresponding key number is searched for and the sounding is shifted to the release state.

【0061】次いで、「PLY=1且つRUN=1」で
あるか否かが調べられる(ステップS116)。つま
り、和音情報の再生が指定されているか否かが調べられ
る。そして、和音情報の再生が指定されていることが判
断されると、PLY処理を行い、RAM18内のコード
シーケンサに記憶された和音情報を再生する(ステップ
S117)。このPLY処理の詳細については後述す
る。
Next, it is checked whether "PLY = 1 and RUN = 1" (step S116). That is, it is checked whether or not reproduction of chord information is designated. When it is determined that the reproduction of the chord information is designated, the PLY processing is performed, and the chord information stored in the chord sequencer in the RAM 18 is reproduced (step S117). Details of the PLY processing will be described later.

【0062】このPLY処理で、上記ステップS111
で行ったノートチャネルアサイン処理と同様の処理が行
われると、次いで、上記ステップS115で行ったと同
様の発音制御が行われる(ステップS118)。
In this PLY processing, the above-mentioned step S111
When the same processing as the note channel assignment processing performed in step S115 is performed, then the same tone generation control as performed in step S115 is performed (step S118).

【0063】一方、ステップS116で、和音情報の再
生が指定されていないことが判断されると、このPLY
処理(ステップS117)及び発音制御処理(ステップ
S118)はスキップされる。
On the other hand, if it is determined in step S116 that reproduction of chord information has not been designated, this PLY
The process (step S117) and the tone generation control process (step S118) are skipped.

【0064】次いで、「その他の処理」が行われる(ス
テップS119)。この「その他の処理」では、本発明
に直接には関係しない上述以外の処理、例えばパネル処
理、MIDI出力処理、ディスク装置書込み処理、その
他の自動演奏処理(オートベース処理等)等が行われ
る。その後、ステップS101に戻り、以下同様の処理
が繰り返し実行される。
Next, "other processing" is performed (step S119). In this "other processing", processing other than those described above, which is not directly related to the present invention, such as panel processing, MIDI output processing, disk device writing processing, and other automatic performance processing (auto-base processing, etc.) are performed. Thereafter, the process returns to step S101, and the same processing is repeatedly executed.

【0065】なお、上記自動演奏処理は、後述するCO
DOレジスタとROTOレジスタの内容及びノートチャ
ネルアサインの内容を参照して行われる。
The automatic performance process is performed by a CO
This is performed by referring to the contents of the DO register and the ROTO register and the contents of the note channel assignment.

【0066】次に、上記メインルーチンのステップS1
12で行われる和音検出処理の詳細について説明する。
Next, step S1 of the main routine is executed.
The details of the chord detection processing performed in Step 12 will be described.

【0067】図3及び図4は、和音検出処理の第1の実
施例を示すフローチャートである。
FIGS. 3 and 4 are flowcharts showing a first embodiment of the chord detection process.

【0068】先ず、和音エリアのキーナンバのうち、最
高音のノートナンバをHIGBレジスタに、最低音のノ
ートナンバをLOWBレジスタに入れる(ステップS2
00)。ここでHIGBレジスタ、LOWBレジスタ
は、RAM18に定義されるレジスタである。これらH
IGBレジスタ、LOWBレジスタには、オクターブナ
ンバも同時に入れられる。
First, of the key numbers in the chord area, the note number of the highest note is put in the HIGB register and the note number of the lowest note is put in the LOWB register (step S2).
00). Here, the HIGB register and the LOWB register are registers defined in the RAM 18. These H
An octave number is also stored in the IGB register and the LOWB register at the same time.

【0069】ここで、ノートナンバとは、C =000
B 、C♯=0001B 、D =0010B 、D♯=0
011B 、E =0100B 、F =0101B 、F♯
=0110B 、G =0111B 、G♯=1000B
A =1001B 、A♯=1010B 、B =1011
B である。ここで、添字の「B 」は2進数であることを
示し、以下、同様の意味で用いる。
Here, the note number is C = 000.
0 B , C♯ = 0001 B , D = 0010 B , D♯ = 0
011 B, E = 0100 B, F = 0101 B, F♯
= 0110 B , G = 0111 B , G♯ = 1000 B ,
A = 1001 B, A♯ = 1010 B, B = 1011
B. Here, the suffix “ B ” indicates a binary number, and is used in the same meaning hereinafter.

【0070】また、オクターブナンバは、B1 以下 =
00B 、C2 〜B2 =01B 、C3 〜B3 =10B 、C
4 以上 =11B である。
The octave number is B 1 or less =
00 B, C 2 ~B 2 = 01 B, C 3 ~B 3 = 10 B, C
4 or more = 11 B.

【0071】次いで、和音エリアのキーのオン/オフ状
態について、各オクターブ間で論理和をとり、その結果
をビット列としてBITBレジスタに入れる(ステップ
S201)。BITBレジスタは、図5に示すような、
RAM18に定義される12ビットのレジスタである。
Next, for the on / off state of the key in the chord area, a logical sum is calculated for each octave, and the result is stored in the BITB register as a bit string (step S201). The BITB register is as shown in FIG.
This is a 12-bit register defined in the RAM 18.

【0072】次いで、BITBレジスタの内容が全てゼ
ロであるか否か、つまり、和音エリアに、オンになって
いるキーが1個もないか否かが調べられる(ステップS
202)。
Next, it is checked whether or not the contents of the BITB register are all zero, that is, whether or not there is any key turned on in the chord area (step S).
202).

【0073】そして、全てゼロであることが判断される
と、CODBレジスタを「0」に、ROTBレジスタを
「FH 」に(添字の「H 」は16進数であることを示
す。以下、同様。)、POSBレジスタを「00B 」に
セットし、さらに、BITOレジスタを「0」にし(ス
テップS203)、その後、本和音検出ルーチンからリ
ターンする。
When it is determined that all the bits are zero, the CODB register is set to "0" and the ROTB register is set to "F H " (the subscript " H " indicates a hexadecimal number. Hereinafter, the same applies). .), The POSB register is set to “00 B ”, the BITO register is set to “0” (step S203), and thereafter, the process returns from the main chord detection routine.

【0074】ここで、CODBレジスタ、ROTBレジ
スタ、POSBレジスタ、BITOレジスタの各レジス
タは、RAM18に定義されるレジスタである。
Here, the CODB register, the ROTB register, the POSB register, and the BITO register are registers defined in the RAM 18.

【0075】CODBレジスタは、コードタイプを記憶
するレジスタである。コードタイプは、表1の右側部に
示す7種類があり、それぞれ「0〜7」のコード値で表
される。このCODBレジスタに「0」を入れるという
ことは、和音エリアにキーオンが1つもないということ
を意味する。
The CODB register is a register for storing a code type. There are seven code types shown on the right side of Table 1, each of which is represented by a code value of “0 to 7”. Putting “0” in this CODB register means that there is no key-on in the chord area.

【0076】[0076]

【表1】 ROTBレジスタは、コードルートを記憶するレジスタ
である。コードルートは、ノートナンバと同じコードで
表され、C=0000B 、C♯=0001B 、D=00
10B 、…、B=1011B の12種類がある。このR
OTBレジスタに「FH 」を入れるということは、対応
するコードルートが存在しないということを意味する。
[Table 1] The ROTB register is a register that stores a code route. The chord root is represented by the same code as the note number, C = 0000 B , C♯ = 0001 B , D = 00
There are 12 types of 10 B ,..., B = 1011 B. This R
Putting "F H " in the OTB register means that there is no corresponding code root.

【0077】POSBレジスタは、補正音を記憶するレ
ジスタである。このPOSBレジスタに「00B 」を入
れるということは、後述する補正音がないことを意味す
る。
The POSB register is a register for storing a correction sound. Putting “00 B ” in the POSB register means that there is no corrected sound described later.

【0078】BITOレジスタは、今回の和音検出処理
で得たビット列、つまりBITBの内容を格納するレジ
スタであり、次回の和音検出処理において参照される。
The BITO register stores the bit string obtained in the current chord detection processing, that is, the contents of BITB, and is referred to in the next chord detection processing.

【0079】上記ステップS202で、BITBレジス
タの内容が全てゼロでない、つまり和音エリアに何らか
のキーオンがあったことが判断されると、RTATレジ
スタをクリアする(ステップS204)。このRTAT
レジスタは、RAM18に定義されるレジスタであり、
ビット列をローテイトシフトした回数を記憶するもので
ある。
If it is determined in step S202 that the contents of the BITB register are not all zero, that is, that there is any key-on in the chord area, the RTAT register is cleared (step S204). This RTAT
The register is a register defined in the RAM 18,
The number of times the bit string has been rotated and shifted is stored.

【0080】次いで、BITBレジスタの内容をBIT
Aレジスタに入れる(ステップS205)。このBIT
Aレジスタは、RAM18に定義されるレジスタであ
り、ビット列をローテイトシフトするための作業用のレ
ジスタである。
Next, the contents of the BITB register are
It is stored in the A register (step S205). This BIT
The A register is a register defined in the RAM 18, and is a working register for rotating and shifting a bit string.

【0081】そして、このBITAレジスタの下位3ビ
ットが「001B 」であるか否かを調べる(ステップS
206)。これは、表1に示すように、コードが成立す
る場合は、下位3ビットが「001B 」になることに着
目したものである。なお、全てゼロの場合は、上記ステ
ップS202で調べられて既に除外されている。
Then, it is checked whether or not the lower three bits of this BITA register are "001 B " (step S).
206). This focuses on the fact that, as shown in Table 1, when the code is established, the lower three bits become "001 B ". If all are zero, it has been checked in step S202 and has already been excluded.

【0082】このステップS206で、BITAレジス
タの下位3ビットが「001B 」でないことが判断され
ると、RTATレジスタの内容をインクリメントし(ス
テップS207)、その後、BITAレジスタを1ビッ
ト分ローテイトシフトする(ステップS208)。この
ローテイトシフトの方向は、左右いずれであっても良
い。
If it is determined in step S206 that the lower 3 bits of the BITA register are not "001 B ", the contents of the RTAT register are incremented (step S207), and then the BITA register is rotated by one bit. (Step S208). The direction of the rotate shift may be either left or right.

【0083】次いで、RTATレジスタの内容が「1
2」になったか否か、つまり、BITAレジスタを12
回ローテイトシフトしたか(一巡したか)否かを調べる
(ステップS209)。そして、「12」でなければス
テップS206へ戻り、ステップS206〜S209の
動作を繰り返す。
Next, when the content of the RTAT register is "1"
2 ”, that is, the BITA register is set to 12
It is checked whether or not the rotation shift has been performed one time (step S209). If it is not "12", the process returns to step S206, and the operations of steps S206 to S209 are repeated.

【0084】この繰り返し実行過程において、ステップ
S209で、「12」になったことが判断されると、和
音コードが成立しなかったものと判断し、ステップS2
10以下のコード不成立の場合の処理を実行する。
In this repetitive execution process, if it is determined in step S209 that the number has become "12", it is determined that the chord chord has not been established, and step S2 is performed.
The processing in the case where 10 or less codes are not established is executed.

【0085】即ち、先ず、CODBレジスタ及びROT
Bレジスタのそれぞれに「FH 」を入れる(ステップS
210)。ここで、CODBレジスタの内容が「FH
であることは、和音エリアでのキーオンはあったが、コ
ードが成立しなかったことを意味する。
That is, first, the CODB register and the ROT
Put “F H ” into each of the B registers (step S
210). Here, the content of the CODB register is “F H ”.
Means that there was a key-on in the chord area, but the chord was not established.

【0086】次いで、BITBレジスタの内容と、前回
の和音検出処理で得たビット列が入っているBITOレ
ジスタの内容との排他的論理和(図中、記号「∀」で示
す。)をとり、結果をBITXレジスタに格納する。
(ステップS211)。ここで、BITXレジスタは、
RAM18に定義されるレジスタであり、前回のビット
列に対し、今回のビット列中で変化があったビットを記
憶するものである。上記排他的論理和をとることによ
り、変化があったビットが「1」として、BITXレジ
スタに記憶されることになる。
Next, the contents of the BITB register and the contents of the BITO register containing the bit string obtained in the previous chord detection processing are exclusive ORed (indicated by the symbol “∀” in the figure), and the result is obtained. Is stored in the BITX register.
(Step S211). Here, the BITX register is
This register is defined in the RAM 18 and stores bits that have changed in the current bit string with respect to the previous bit string. By taking the exclusive OR, the changed bit is stored in the BITX register as "1".

【0087】次に、ステップS211aを実行するが、
このステップは省略しても良い。即ち、省略した場合
は、BITOレジスタの内容がコード不成立のときには
変化せず、メモリへ記憶される情報は、常に、それ以前
に成立した和音コード(全鍵離鍵時もその1つである
が)に対しての変化ビットとなるため、現在の基本とし
ている和音が分かり易い。
Next, step S211a is executed.
This step may be omitted. In other words, when omitted, the contents of the BITO register do not change when the chord is not established, and the information stored in the memory is always the chord chord that was established before (although it is one when all keys are released). ), The current basic chord is easy to understand.

【0088】これに対し、ステップS211aを省略し
ない場合は、BITOレジスタの内容が、コード成立/
不成立に関係なく変化し、メモリへ記憶される情報は、
常に、直前にこのルーチンへ入ったビットマップに対し
ての変化ビットのみとなるため、記憶情報量を最低限に
保つことができる。
On the other hand, if step S211a is not omitted, the contents of the BITO register indicate that the code
Information that changes regardless of failure and is stored in memory
Since there are always only the changed bits for the bitmap that entered this routine immediately before, the amount of stored information can be kept to a minimum.

【0089】次いで、図6(B)に示す形式のデータが
作成されることになる。これらのデータが格納される各
レジスタは何れもRAM18に定義される。即ち、BI
TXレジスタで「1」となっているビットをノートナン
バに変換してNOTBレジスタに入れる(ステップS2
12)。NOTBレジスタは、ノートナンバを記憶する
レジスタである。
Next, data in the format shown in FIG. 6B is created. Each register in which these data are stored is defined in the RAM 18. That is, BI
The bit set to “1” in the TX register is converted into a note number and put in the NOTB register (step S2).
12). The NOTB register is a register that stores a note number.

【0090】次いで、BITXレジスタで「1」となっ
たビットが、今回新たにオンになったのかオフになった
のかを、BITBレジスタを参照することにより判断
し、その結果をON/OFレジスタに入れる(ステップ
S213)。
Next, it is determined whether the bit which has become "1" in the BITX register is newly turned on or off this time by referring to the BITB register, and the result is stored in the ON / OF register. (Step S213).

【0091】次いで、NOTBレジスタと、HIGBレ
ジスタ及びLOWBレジスタとを比較して補正音を作成
しPOSBレジスタに入れる(ステップS214)。即
ち、NOTBレジスタの内容とHIGBレジスタの内容
又はLOWBレジスタの内容とが同じであるか否かを調
べ、下記の条件により2ビットのデータを作成してPO
SBレジスタに記憶する。 NOTB=HIGBであれば、POSB=10B (最
高音) NOTB=LOWBであれば、POSB=01B (最
低音) 上記のいずれでもない場合は、POSB=11B (中
間音) なお、補正ノートなしの場合は、POSB=00B が入
れられる。
Next, the NOTB register is compared with the HIGB register and the LOWB register to create a correction sound and put it into the POSB register (step S214). That is, it is checked whether or not the contents of the NOTB register and the contents of the HIGHB register or the contents of the LOWB register are the same.
Store in SB register. If NOTB = HIGB, POSB = 10 B (highest sound) If NOTB = LOWB, POSB = 01 B (lowest sound) If none of the above, POSB = 11 B (intermediate sound) In the case of none, POSB = 00 B is entered.

【0092】次いで、LOWBレジスタのオクターブナ
ンバを取り出し、OCTBレジスタに入れる(ステップ
S215)。次いで、OCTBレジスタの内容をOCT
Oレジスタに入れる(ステップS216)。ここで、O
CTOレジスタは、RAM18に定義されるレジスタで
あり、前回の和音検出処理で得たオクターブナンバを格
納しているレジスタである。そして、このステップS2
16の処理を終了後、本和音検出ルーチンをリターンす
る。以上でコードが成立しなかった場合の処理を終了す
る。
Next, the octave number of the LOWB register is taken out and put into the OCTB register (step S215). Next, the contents of the OCTB register are
It is stored in the O register (step S216). Where O
The CTO register is a register defined in the RAM 18 and stores the octave number obtained in the previous chord detection processing. And this step S2
After the end of the process in step 16, the main chord detection routine is returned. Thus, the processing in the case where the code is not established is terminated.

【0093】一方、上記ステップS206で、BITA
レジスタの下位3ビットが「001B 」であることが判
断されると、図6(A)に示す形式のデータが作成され
ることになる。即ち、BITAレジスタの下位3ビット
を除く9ビットからなるビット列を作成する(ステップ
S217)。例えば、BITAレジスタの内容が、
On the other hand, in step S206, BITA
When it is determined that the lower three bits of the register are “001 B ”, data in the format shown in FIG. 6A is created. That is, a bit string composed of 9 bits excluding the lower 3 bits of the BITA register is created (step S217). For example, if the contents of the BITA register are

【0094】BITA=「000010010001」
であったなら、ビット列=「000010010」とい
う9ビットのビット列を得る。
BITA = “000001000011”
, A 9-bit bit string of bit string = “000010110” is obtained.

【0095】次いで、該ビット列をアドレスとして、例
えば表2に示すように構成されたコード表を参照し、対
応するアドレスから読み出したコードタイプ、準コード
ルートをそれぞれCODBレジスタ、ROTBレジスタ
に入れる(ステップS218)。つまり、コードが成立
しなければ「FFH 」が、コードが成立すれば、コード
タイプ0〜7と準コードルート0〜BH が得られるの
で、上位4ビットのコードタイプをCODBレジスタ
へ、下位4ビットの準コードルートをROTBレジスタ
に入れる。
Next, the code string and the quasi-code route read from the corresponding address are put into the CODB register and the ROTB register, respectively, by referring to the code table configured as shown in Table 2 using the bit string as an address (step S1). S218). That is, if the code is not established, "FF H " is obtained, and if the code is established, code types 0 to 7 and quasi-code routes 0 to B H are obtained. Put the 4-bit quasi-code route into the ROTB register.

【0096】[0096]

【表2】 次いで、CODBレジスタ、ROTBレジスタの内容が
双方共「FH 」であるか否かを調べる(ステップS21
9)。即ち、コード不成立であるか否かを調べる。
[Table 2] Then, CODB register, the contents of ROTB register checks whether or not it is both "F H" (step S21
9). That is, it is checked whether or not the code is not established.

【0097】ここで、CODBレジスタ、ROTBレジ
スタの内容が双方共「FH 」であることが判断される
と、コード不成立であったことを認識し、ステップS2
11へ分岐する。ステップS211以降の処理は上述し
た通りであるので、ここでは説明を省略する。
Here, when it is determined that the contents of both the CODB register and the ROTB register are "F H ", it is recognized that the code has not been established, and step S2 is executed.
Branch to 11. Since the processing after step S211 is as described above, the description is omitted here.

【0098】一方、ステップS219で、CODBレジ
スタの内容、又はROTBレジスタの内容のいずれかが
「FH 」でないことが判断されると、表2を参照して得
られたROTBレジスタの準コードルートと、先にロー
テイトシフトした際に、その回数を記憶しているRTA
Tレジスタの内容を加算し、結果をROTBレジスタに
入れる(ステップS220)。但し、この加算結果が
「12」より大きい値になったときは、「12」を減算
する。これにより、ROTBレジスタ内に本当のコード
ルート(正コードルート)が得られることになる。
On the other hand, if it is determined in step S219 that either the content of the CODB register or the content of the ROTB register is not “F H ”, the quasi-code route of the ROTB register obtained with reference to Table 2 RTA that stores the number of rotation shifts
The contents of the T register are added, and the result is put into the ROTB register (step S220). However, when the addition result becomes a value larger than “12”, “12” is subtracted. As a result, a real code root (primary code root) is obtained in the ROTB register.

【0099】次いで、CODBレジスタの内容をCOD
Oレジスタに、ROTBレジスタの内容をROTOレジ
スタに、BITBレジスタの内容をBITOレジスタ
に、それぞれ格納する(ステップS221)。
Next, the contents of the CODB register are
The contents of the ROTB register are stored in the ROTO register and the contents of the BITB register are stored in the BITO register in the O register (step S221).

【0100】次いで、和音エリアのキーオンの中で、最
低音のノートが何であったかを少ないビット数(2ビッ
ト)で表す処理を行う(ステップS222)。
Next, a process of representing the lowest note in the key-on of the chord area with a small number of bits (2 bits) is performed (step S222).

【0101】即ち、表1において、正コードルート(R
OTBレジスタに記憶されている)に対して、どれだけ
離れた位置に最低音のノート(LOWBレジスタ)が存
在するかを調べる。
That is, in Table 1, the primary code root (R
(Stored in the OTB register) to determine how far the lowest note (LOWB register) exists.

【0102】実際には、ROTBレジスタの内容からL
OWBレジスタの内容を減算し、結果が「12」以上で
あれば「12」を減じ、結果が負であれば「12」を加
算してSUBTレジスタに入れる。そして、SUBTレ
ジスタに得られた値「0〜11」を、下記のように分類
してMINBレジスタに入れる。
Actually, L is determined from the contents of the ROTB register.
The contents of the OWB register are subtracted, and if the result is equal to or greater than "12", "12" is subtracted. If the result is negative, "12" is added and entered into the SUBT register. Then, the values “0 to 11” obtained in the SUBT register are categorized as follows and put into the MINB register.

【0103】SUBTレジスタの内容が0、1、2の
時、MINBレジスタ←00B SUBTレジスタの内容が3、4、5の時、MINB
レジスタ←01B SUBTレジスタの内容が6、7、8の時、MINB
レジスタ←10B SUBTレジスタの内容が9、10、11の時、MINB
レジスタ←11B これは、表1から明らかなように、コードルートを基準
として3音ずつに4等分すると、各ブロックにはキーオ
ンが1つしかないという特性を利用したものである。
When the contents of the SUBT register are 0, 1, and 2, the MINB register ← 00 B When the contents of the SUBT register are 3, 4, and 5, the MINB register
Register ← 01 B When the contents of the SUBT register are 6, 7, and 8, MINB
Register ← 10 B When the contents of the SUBT register are 9, 10, and 11, MINB
Register ← 11 B As is clear from Table 1, this utilizes the characteristic that when the chord root is divided into three tones into four equal parts, each block has only one key-on.

【0104】このMINBレジスタに格納すべき値をさ
らに確実に得るために、コードルートからキーオンの数
を数え、それがLOWBレジスタのノートと同じになっ
た時の値を用いるように構成しても良い。
In order to more reliably obtain the value to be stored in the MINB register, the number of key-ons is counted from the chord root, and the value at the time when it becomes the same as the note in the LOWB register may be used. good.

【0105】次いで、LOWBレジスタのオクターブナ
ンバを、OCTBレジスタに入れる(ステップS22
3)。
Next, the octave number of the LOWB register is stored in the OCTB register (step S22).
3).

【0106】そして、OCTOレジスタの内容とOCT
Bレジスタの内容とを比較することにより、前回の和音
検出処理が行われた際に得られたオクターブナンバか
ら、今回得られたオクターブナンバが変化しているか否
かを調べる(ステップS224)。
The contents of the OCTO register and the OCT
By comparing the contents of the B register with the contents of the B register, it is checked whether or not the octave number obtained this time has been changed from the octave number obtained when the previous chord detection processing has been performed (step S224).

【0107】そして、変化していないことが判断される
と、ステップS227へ分岐し、POSBレジスタの内
容を「11B 」にセットし、オクターブ変更はないこと
を伝えてリターンする。この際のPOSBレジスタの値
は、中間音であることを示す本来の意味ではなく、オク
ターブ変更がないことを伝える特殊な意味で使用され
る。
If it is determined that the octave has not changed, the flow branches to step S227 to set the content of the POSB register to "11 B ", and returns that there is no octave change. At this time, the value of the POSB register is not used in the original meaning of indicating an intermediate tone, but is used in a special meaning indicating that there is no octave change.

【0108】一方、上記ステップS224でオクターブ
ナンバが変化していることが判断されると、POSBレ
ジスタの内容を「00B 」にセットする(ステップS2
25)。これは、オクターブ変更があり、補正ノートは
ないことを表す。
[0108] On the other hand, when determining that the octave number in step S224 is changed, sets the contents of the POSB register to "00 B" (step S2
25). This means that there is an octave change and no correction notes.

【0109】次いで、OCTBレジスタの内容をOCT
Oレジスタに入れ(ステップS226)、その後、この
和音検出ルーチンをリターンする。
Next, the content of the OCTB register is
It is stored in the O register (step S226), and thereafter, the chord detection routine is returned.

【0110】以上説明した和音検出処理の第1の実施例
では、ビット列の下位3ビットに注目してビット列パタ
ーンをチェックしたが、これに限定されるものでなく、
例えば上位の3ビットでも良く、さらに、その他の任意
の3ビットでも良い。
In the first embodiment of the chord detection processing described above, the bit string pattern is checked by focusing on the lower three bits of the bit string. However, the present invention is not limited to this.
For example, the upper three bits may be used, and any other three bits may be used.

【0111】また、ビットパターンとしてチェックする
ビット数も3ビットに限定されるものでなく、例えば下
位2ビットを「01B 」とし、同じビットパターンが見
つかった時点で、その他の10ビットをアドレスとし
て、表2よりも1ビット多いアドレスで構成されるコー
ド表を参照してコード成立の有無をチェックすることも
可能である。
The number of bits to be checked as a bit pattern is not limited to 3 bits. For example, the lower 2 bits are set to “01 B ”, and when the same bit pattern is found, the other 10 bits are set as an address. It is also possible to check whether or not a code is established by referring to a code table composed of an address one bit larger than that in Table 2.

【0112】また、下位1ビットの「1」の状態を検出
して、その他の11ビットをアドレスとして、表2より
も2ビット多いアドレスで構成されるコード表を参照し
てコード成立の有無をチェックすることも可能である。
Further, the state of "1" of the lower 1 bit is detected, and using the other 11 bits as an address, referring to a code table composed of an address two bits larger than in Table 2, it is determined whether or not the code is established. It is also possible to check.

【0113】さらに、上記実施例では、ビットパターン
中に必ず「1」が存在したが、「00B 」というビット
パターンをチェックして残り10ビットのコード表を参
照してコード成立の有無をチェックすることも可能であ
る。
[0113] Further, in the above embodiment, the check was always exists "1" in the bit pattern, the presence or absence of a reference to the code established a code table of the remaining 10-bit check bit pattern of "00 B" It is also possible.

【0114】以上、要するに、12ビットのフルパター
ンから1ビット以上を除外したパターン表を参照するよ
うに構成することで、コード表の大きさを小さくするこ
とができ、メモリ容量の減少を図ることができる。
In summary, by referring to the pattern table in which one or more bits are excluded from the full pattern of 12 bits, the size of the code table can be reduced, and the memory capacity can be reduced. Can be.

【0115】次に、和音検出ルーチンの第2の実施例に
ついて、図7及び図8のフローチャートを参照しながら
説明する。
Next, a second embodiment of the chord detection routine will be described with reference to the flowcharts of FIGS.

【0116】図において、ステップS250、251
は、上記第1の実施例のステップS200、S201と
同じである。即ち、和音エリアのキーナンバのうち、最
高音のノートナンバをHIGBレジスタに、最低音のノ
ートナンバをLOWBレジスタに入れる(ステップS2
50)。このHIGBレジスタ、LOWBレジスタは、
オクターブナンバも同時に入れられる。
In the figure, steps S250 and S251
Are the same as steps S200 and S201 of the first embodiment. That is, of the key numbers of the chord area, the note number of the highest note is stored in the HIGB register and the note number of the lowest note is stored in the LOWB register (step S2).
50). This HIGB register and LOWB register are
The octave number can also be entered at the same time.

【0117】次いで、和音エリアのキーのオン/オフ状
態について、各オクターブ間で論理和をとり、その結果
をビット列としてBITBレジスタに入れる(ステップ
S251)。
Next, as for the on / off state of the key of the chord area, a logical sum is calculated between the octaves, and the result is stored in the BITB register as a bit string (step S251).

【0118】次いで、BITBレジスタの内容を2つに
分けて上位ビット列をBITHレジスタに、下位ビット
列をBITLレジスタに入れる(ステップS252)。
BITHレジスタ、BITLレジスタの一例を図9に示
す。
Next, the contents of the BITB register are divided into two, and the upper bit string is put into the BITH register and the lower bit string is put into the BITL register (step S252).
FIG. 9 shows an example of the BITH register and the BITL register.

【0119】同図では、BITHレジスタとしてBIT
Bレジスタの上位4ビット、BITLレジスタとしてB
ITBレジスタの下位8ビットを記憶するように構成し
たが、この分け方は任意である。即ち、BITHレジス
タ、BITLレジスタの各ビット数は任意であり、ビッ
トの並び方も任意に構成して良い。さらに、2分割に限
定されず、3分割さらにはそれ以上の数に分割しても良
い。
In the figure, BIT is set as the BITH register.
Upper 4 bits of the B register, B as the BITL register
Although the lower 8 bits of the ITB register are configured to be stored, the division method is arbitrary. That is, the number of bits in the BITH register and the BITL register is arbitrary, and the arrangement of the bits may be arbitrarily configured. Further, the number of divisions is not limited to two, but may be three or more.

【0120】次いで、BITLレジスタの内容をアドレ
スとして、例えば表3に示すように構成される第1コー
ド表を参照し、該当情報を読み出してREFAレジスタ
に入れる(ステップS253)。
Next, by referring to the first code table configured as shown in Table 3, for example, using the contents of the BITL register as an address, the corresponding information is read and stored in the REFA register (step S253).

【0121】[0121]

【表3】 この第1コード表は、下位ビット列だけでコードとして
成立する可能性のあるパターンには、残りの上位ビット
列を参照するためのヘッドアドレスが格納されている。
一方、下位ビット列だけで見ても既にコードとして成立
する可能性がない場合は、不成立として「FFH 」が格
納されている。
[Table 3] In the first code table, a pattern that can be realized as a code only by the lower bit string stores a head address for referring to the remaining upper bit string.
On the other hand, if there is no possibility that the code is already established even if only the lower bit string is viewed, “FF H ” is stored as not established.

【0122】次に、REFAレジスタの内容を参照して
「FFH 」であるか否かを調べる(ステップS25
4)。ここで、「FFH 」であることが判断されると、
和音コードが成立しなかったものと判断し、コード不成
立の場合の処理を実行する。
Next, it is checked whether or not the value is "FF H " by referring to the contents of the REFA register (step S25).
4). Here, when it is determined that “FF H ”,
It is determined that the chord chord has not been established, and processing is performed when the chord is not established.

【0123】即ち、先ず、CODBレジスタ及びROT
Bレジスタのそれぞれに「FH 」を入れる(ステップS
255)。ここで、CODBレジスタの内容が「FH
であることは、和音エリアでのキーオンはあったが、コ
ードが成立しなかったことを意味する。
That is, first, the CODB register and the ROT
Put “F H ” into each of the B registers (step S
255). Here, the content of the CODB register is “F H ”.
Means that there was a key-on in the chord area, but the chord was not established.

【0124】次いで、BITBレジスタの内容と、前回
の和音検出処理で得たビット列が入っているBITOレ
ジスタとの排他的論理和をとり、結果をBITXレジス
タに格納する(ステップS256)。これにより、変化
があったビットが「1」として、BITXレジスタに記
憶されることになる。次に、ステップS256aを実行
するが、このステップは省略しても良い。省略した場合
又は省略しない場合のそれぞれの効果は、図4のステッ
プS211aで説明した通りである。
Next, the contents of the BITB register are exclusive-ORed with the BITO register containing the bit string obtained in the previous chord detection processing, and the result is stored in the BITX register (step S256). As a result, the changed bit is stored in the BITX register as "1". Next, step S256a is executed, but this step may be omitted. The respective effects when omitted or not omitted are as described in step S211a in FIG.

【0125】次いで、図11(B)に示す形式のデータ
が作成されることになる。即ち、BITXレジスタで
「1」となったビットが存在するグループの番号(グル
ープナンバ)をBGRPレジスタに入れる(ステップS
257)。BGRPレジスタは、RAM18に定義され
るレジスタである。
Next, data in the format shown in FIG. 11B is created. That is, the number (group number) of the group in which the bit set to "1" in the BITX register exists is entered in the BGRP register (step S).
257). The BGRP register is a register defined in the RAM 18.

【0126】このBGRPレジスタに入れられるデータ
は、下記のように定義される。
The data stored in the BGRP register is defined as follows.

【0127】 BGRPレジスタ=00B : D ,C♯,C BGRPレジスタ=01B : F ,E ,D♯ BGRPレジスタ=10B : G♯,G ,F♯ BGRPレジスタ=11B : B ,A♯,A 次いで、BITBレジスタの中で、BGRPのグループ
ナンバに対応したビット列を選択し、BPTNレジスタ
に格納する(ステップS258)。
BGRP register = 00 B : D, C♯, C BGRP register = 01 B : F, E, D♯ BGRP register = 10 B : G♯, G, F♯ BGRP register = 11 B : B, A♯ , A Next, a bit string corresponding to the BGRP group number is selected from the BITB register and stored in the BPTN register (step S258).

【0128】そして、BITXレジスタの中で、「1」
であるノートナンバαと、HIGBレジスタ及びLOW
Bレジスタとを比較して補正音を作成しPOSBレジス
タに入れる(ステップS259)。即ち、BITXレジ
スタの内容とHIGBレジスタ内容及びLOWBレジス
タ内容とが同じであるか否かを調べ、下記の条件により
POSBレジスタに記憶するデータを作成する。
Then, "1" is set in the BITX register.
And the HIGB register and LOW
A correction sound is created by comparing the result with the B register and stored in the POSB register (step S259). That is, it checks whether the contents of the BITX register are the same as the contents of the HIGHB register and the contents of the LOWB register, and creates data to be stored in the POSB register under the following conditions.

【0129】 α=HIGBであれば、POSB=10B (最高音) α=LOWBであれば、POSB=01B (最低音) 上記のいずれでもない場合は、POSB=11B (中
間音) なお、補正ノートなしの場合は、POSB=00B が入
れられる。
If α = HIGB, POSB = 10 B (highest sound). If α = LOWB, POSB = 01 B (lowest sound). If none of the above, POSB = 11 B (intermediate sound). In the case where there is no correction note, POSB = 00 B is entered.

【0130】次いで、HIGBレジスタのオクターブナ
ンバを取り出し、OCTBレジスタに入れる(ステップ
S260)。
Next, the octave number of the HIGB register is taken out and put into the OCTB register (step S260).

【0131】次いで、OCTBレジスタの内容をOCT
Oレジスタに入れる(ステップS261)。そして、こ
のステップS261の処理を終了後、本和音検出ルーチ
ンをリターンする。
Next, the contents of the OCTB register are
It is stored in the O register (step S261). Then, after the processing of step S261 is completed, the main chord detection routine is returned.

【0132】一方、上記ステップS254で、REFA
レジスタの内容が「FFH 」でないことが判断される
と、図11(A)に示す形式のデータが作成されること
になる。即ち、REFAレジスタの内容が「FFH 」で
なければ、残りのビット列のパターン次第ではコードが
成立する可能性があるので、REFAレジスタの内容を
高位アドレス、残りのビット列(BITHレジスタの内
容)を下位アドレスとして表4に示すように構成された
第2コード表を参照し、該当データを読み出す。
On the other hand, in step S254, REFA
If it is determined that the contents of the register are not “FF H ”, data in the format shown in FIG. 11A is created. That is, if the contents of the REFA register are not “FF H ”, a code may be established depending on the pattern of the remaining bit strings. The corresponding data is read out with reference to the second code table configured as shown in Table 4 as the lower address.

【0133】[0133]

【表4】 そして、読み出したデータの上位4ビット(コードタイ
プ)をCODBレジスタに、下位4ビット(コードルー
ト)をROTBレジスタに入れる(ステップS26
2)。
[Table 4] Then, the upper 4 bits (code type) of the read data are stored in the CODB register, and the lower 4 bits (code root) are stored in the ROTB register (step S26).
2).

【0134】次いで、CODBレジスタ、ROTBレジ
スタの内容が双方共「FH 」であるか否かを調べる(ス
テップS263)。即ち、コード不成立であるか否かを
調べる。
Next, it is checked whether the contents of the CODB register and the ROTB register are both "F H " (step S263). That is, it is checked whether or not the code is not established.

【0135】ここで、CODBレジスタ、ROTBレジ
スタの内容が双方共「FH 」であることが判断される
と、コード不成立であることを認識し、ステップS25
6へ分岐する。ステップS256以降の処理は上述した
通りであるので、ここでは説明を省略する。
Here, when it is determined that the contents of both the CODB register and the ROTB register are "F H ", it is recognized that the code is not established, and step S25 is executed.
Branch to 6. Since the processing after step S256 is as described above, the description is omitted here.

【0136】一方、ステップS263で、CODBレジ
スタの内容、又はROTBレジスタの内容のいずれかが
「FH 」でないことが判断されると、CODBレジスタ
の内容をCODOレジスタに、ROTBレジスタの内容
をROTOレジスタに、BITBレジスタの内容をBI
TOレジスタに、それぞれ格納する(ステップS26
4)。
On the other hand, if it is determined in step S263 that either the content of the CODB register or the content of the ROTB register is not “F H ”, the content of the CODB register is stored in the CODO register, and the content of the ROTB register is stored in the ROTO register. Register the contents of the BITB register to BI
Each is stored in the TO register (step S26)
4).

【0137】次いで、和音エリアのキーオンの中で、最
低音のノートが何であったかを少ないビット数(2ビッ
ト)で表す処理、つまりコードルート(ROTBレジス
タの内容)と最低音(LOWBレジスタの内容)との差
を検出する処理を行う(ステップS265)。この処理
は、上記第1実施例のステップS222と同じ処理であ
るので、詳細は省略する。
Next, in the key-on of the chord area, the process of representing the lowest note by a small number of bits (2 bits), that is, the chord root (the contents of the ROTB register) and the lowest tone (the contents of the LOWB register) Then, a process of detecting the difference between the two is performed (step S265). This process is the same as step S222 in the first embodiment, and thus the details are omitted.

【0138】次いで、HIGBレジスタのオクターブナ
ンバを、OCTBレジスタに入れる(ステップS26
6)。
Next, the octave number of the HIGB register is stored in the OCTB register (step S26).
6).

【0139】そして、OCTOレジスタの内容とOCT
Bレジスタの内容とを比較することにより、前回の和音
検出処理が行われた際に得られたオクターブナンバか
ら、今回得られたオクターブナンバが変化しているか否
かを調べる(ステップS267)。
The contents of the OCTO register and the OCT
By comparing with the contents of the B register, it is checked whether or not the octave number obtained this time has changed from the octave number obtained when the previous chord detection processing has been performed (step S267).

【0140】そして、変化していないことが判断される
と、ステップS270へ分岐し、POSBレジスタの内
容を「11B 」にセットし、オクターブ変更はないこと
を伝えてリターンする。ここでのPOSBレジスタの値
は、中間音であることを示す本来の意味ではなく、オク
ターブ変更がないことを伝える特殊な意味で使用され
る。
If it is determined that the octave has not changed, the flow branches to step S270 to set the contents of the POSB register to "11 B ", and returns that there is no octave change. Here, the value of the POSB register is not used in its original meaning to indicate an intermediate tone, but is used in a special meaning to convey that there is no octave change.

【0141】一方、上記ステップS267でオクターブ
ナンバが変化していることが判断されると、POSBレ
ジスタの内容を「00B 」にセットする(ステップS2
68)。これは、オクターブナンバの修正はあるが、補
正ノートはないことを意味する。
If it is determined in step S267 that the octave number has changed, the contents of the POSB register are set to "00 B " (step S2).
68). This means that there is an octave number correction but no correction notes.

【0142】次いで、OCTBレジスタの内容をOCT
Oレジスタに入れ(ステップS269)、その後、この
和音検出ルーチンをリターンする。
Next, the contents of the OCTB register are changed to OCT.
It is stored in the O register (step S269), and thereafter, this chord detection routine is returned.

【0143】以上説明した和音検出処理の第2の実施例
では、12ビット列を高位4ビットと低位8ビットに分
割し、先に低位8ビットを参照するようにしたがこれに
限定されるものではない。
In the second embodiment of the above-described chord detection processing, the 12-bit string is divided into high-order 4 bits and low-order 8 bits, and the low-order 8 bits are referred to first. However, the present invention is not limited to this. Absent.

【0144】例えば、図10に示すような分け方もあ
る。また、コード表を参照する場合に、先にBITHレ
ジスタで参照するか、BITLレジスタで参照するかも
任意である。
For example, there is a division method as shown in FIG. When referring to the code table, it is optional to refer to the BITH register first or refer to the BITL register.

【0145】また、分割は2つに限定されるものでな
く、例えば、BITH,BITM,BITLのように3
つに分割することもできるし、それ以上の数に分割する
こともできる。
The division is not limited to two. For example, three divisions such as BITH, BITM, and BITL
It can be divided into two or more.

【0146】以上、要するに、212の全ビットパターン
中、コード成立の可能性があるグループだけを表として
用意し、これを複数回参照することによりコード表を小
さくすることができ、メモリ容量の減少を図ることがで
きる。
As described above, in short, out of all the 2 12 bit patterns, only a group having a possibility of code establishment is prepared as a table, and by referring to this table a plurality of times, the code table can be made smaller. Reduction can be achieved.

【0147】次に、メインルーチン(図2)のステップ
S114で行うREC処理の第1の実施例の詳細につい
て、図12に示すフローチャートを参照しながら説明す
る。
Next, details of the first embodiment of the REC process performed in step S114 of the main routine (FIG. 2) will be described with reference to the flowchart shown in FIG.

【0148】なお、本REC処理ルーチン(実施例1)
は、上記和音検出処理の第1の実施例に対応させて記載
しているが、第2の実施例でも略同様の処理で実現でき
る。
This REC processing routine (Embodiment 1)
Is described corresponding to the first embodiment of the chord detection process, but can be realized by substantially the same process in the second embodiment.

【0149】先ず、CODBレジスタ、ROTBレジス
タの内容が双方共「FH 」であるか否か、つまりコード
不成立であるか否かを調べる(ステップS300)。
First, it is checked whether the contents of the CODB register and the ROTB register are both “F H ”, that is, whether or not the code is not established (step S 300).

【0150】そして、コード不成立であることが判断さ
れるとステップS307へ分岐する。一方、コード成立
であることが判断されると、前回変化のあったタイム
(TIMO)と今回のタイム(TIMN)との時間差を
求め、TIMBレジスタに格納する(ステップS30
1)。そして、今回のタイムTIMNをTIMOレジス
タに入れる(ステップS302)。
If it is determined that the code is not established, the flow branches to step S307. On the other hand, when it is determined that the code is established, a time difference between the time (TIMO) at which the previous change was made and the current time (TIMN) is obtained and stored in the TIMB register (step S30).
1). Then, the current time TIMN is entered in the TIMO register (step S302).

【0151】次いで、図6(A)に示すように、MIN
Bレジスタの内容とTIMBレジスタの内容とを、シー
ケンスポインタPNTで示されるアドレスへ格納する
(ステップS303)。また、CODBレジスタの内容
とROTBレジスタの内容とを、シーケンスポインタP
NT+1で示されるアドレスへ格納する(ステップS3
04)。そして、シーケンスポインタを「+2」する
(ステップS305)。
Next, as shown in FIG.
The contents of the B register and the contents of the TIMB register are stored at the address indicated by the sequence pointer PNT (step S303). Further, the contents of the CODB register and the ROTB register are stored in the sequence pointer P.
It is stored at the address indicated by NT + 1 (step S3
04). Then, the sequence pointer is incremented by "+2" (step S305).

【0152】次いで、POSBレジスタの内容が「00
B 」であるか否か、つまり、オクターブナンバの更新が
あるか否かを調べる(ステップS306)。そして、更
新がないことが判断されると、このREC処理ルーチン
からリターンする。
Next, the contents of the POSB register are set to "00".
B ”, that is, whether or not the octave number has been updated (step S306). When it is determined that there is no update, the process returns from the REC processing routine.

【0153】一方、オクターブナンバの更新があること
が判断されると(コード不成立の場合も同様。)、前回
変化のあったタイム(TIMO)と今回のタイム(TI
MN)との時間差を求め、TIMBレジスタに格納する
(ステップS307)。そして、今回のタイムTIMN
をTIMOレジスタに入れる(ステップS308)。
On the other hand, if it is determined that the octave number has been updated (the same applies to the case where the code is not established), the time at which the last change was made (TIMO) and the current time (TIMO) are made.
MN) is obtained and stored in the TIMB register (step S307). And this time TIMN
In the TIMO register (step S308).

【0154】次いで、図6(B)に示すように、OCT
Bレジスタの内容とTIMBレジスタの内容とを、シー
ケンスポインタPNTで示されるアドレスへ格納する
(ステップS309)。また、POSBレジスタの内
容、ON/OFレジスタの内容、及びNOTBレジスタ
の内容とを、シーケンスポインタPNT+1で示される
アドレスへ格納する(ステップS310)。そして、シ
ーケンスポインタを「+2」する(ステップS31
1)。その後、本REC処理ルーチンからリターンす
る。以上で、REC処理を終了する。
Next, as shown in FIG.
The contents of the B register and the contents of the TIMB register are stored in the address indicated by the sequence pointer PNT (step S309). Further, the contents of the POSB register, the contents of the ON / OF register, and the contents of the NOTB register are stored in the address indicated by the sequence pointer PNT + 1 (step S310). Then, the sequence pointer is incremented by "+2" (step S31).
1). Thereafter, the process returns from the REC processing routine. Thus, the REC process ends.

【0155】次に、メインルーチン(図2)のステップ
S117で行うPLY処理の詳細について、図13及び
図14に示すフローチャートを参照しながら説明する。
Next, the details of the PLY processing performed in step S117 of the main routine (FIG. 2) will be described with reference to the flowcharts shown in FIGS.

【0156】なお、本PLY処理ルーチンは、上記和音
検出処理の第1の実施例に対応させて記載しているが、
第2の実施例でも略同様の処理で実現できるものであ
る。
Although the present PLY processing routine is described in association with the first embodiment of the chord detection processing,
The second embodiment can also be realized by substantially the same processing.

【0157】先ず、ポインタPNTが現在示している、
RAM18内のシーケンスメモリから読み出したデータ
をAREGレジスタに入れる(ステップS400)。
First, the pointer PNT currently indicates
The data read from the sequence memory in the RAM 18 is stored in the AREG register (step S400).

【0158】次いで、AREGレジスタの下位6ビット
を抽出し、TIMBレジスタに入れる(ステップS40
1)。そして、前回にPLY処理ルーチンがアクセスさ
れたタイミング(TIMO)に、上記で求めたTIMB
レジスタの内容を加算した値が、現在のタイミング(T
IMN)以下であるか否かを調べる(ステップS40
2)。
Next, the lower 6 bits of the AREG register are extracted and put into the TIMB register (step S40).
1). Then, at the timing (TIMO) at which the PLY processing routine was accessed last time, the TIMB determined above is used.
The value obtained by adding the contents of the register is the current timing (T
IMN) or not (step S40).
2).

【0159】ここで、現在のタイミング(TIMN)が
「TIMO+TIMB」よりも小さいことが判断される
と、新しいシーケンスデータを読み出すには未だ早すぎ
るので、そのまま、このPLY処理ルーチンからリター
ンする。
Here, if it is determined that the current timing (TIMN) is smaller than "TIMO + TIMB", the process returns from the PLY processing routine as it is too early to read out new sequence data.

【0160】一方、現在のタイミング(TIMN)が
「TIMO+TIMB」よりも大きいか、又は等しいこ
とが判断されると、新しいシーケンスデータを読み出す
必要があるので、ステップS403以下の処理に移る。
On the other hand, if it is determined that the current timing (TIMN) is greater than or equal to "TIMO + TIMB", it is necessary to read out new sequence data, so that the process proceeds to step S403 and subsequent steps.

【0161】即ち、先ず、TIMNレジスタの内容をT
IMOレジスタに入れることにより、TIMOレジスタ
の内容を更新する(ステップS403)。そして、シー
ケンスポインタPNT+1で示されるアドレスの内容を
読み出し、BREGレジスタに入れる(ステップS40
4)。そして、シーケンスポインタPNTの内容を「+
2」する(ステップS405)。
That is, first, the contents of the TIMN register are set to T
The contents of the TIMO register are updated by placing the contents in the IMO register (step S403). Then, the contents of the address indicated by the sequence pointer PNT + 1 are read and put into the BREG register (step S40).
4). Then, the content of the sequence pointer PNT is changed to "+
2 "(step S405).

【0162】そして、BREGレジスタのMSBが
「1」であるか否かを調べる(ステップS406)。こ
れは、AREGレジスタ、BREGレジスタの内容が、
コード成立時の和音情報であるのか、コード不成立時の
オクターブナンバと補正ノート情報であるのかを調べる
ことになる。
Then, it is checked whether or not the MSB of the BREG register is "1" (step S406). This means that the contents of the AREG and BREG registers are
It is checked whether the information is chord information when a chord is established, or octave number and correction note information when a chord is not established.

【0163】そして、上記MSBが「0」であることが
判断されると、AREGレジスタ、BREGレジスタの
内容が、図6(A)に示すコード成立時の和音情報であ
るものとして以下の処理を実行する。
When it is determined that the MSB is "0", the following processing is performed assuming that the contents of the AREG register and the BREG register are chord information at the time of chord establishment shown in FIG. Run.

【0164】先ず、AREGレジスタの上位2ビットを
抽出し、MINBレジスタに入れる(ステップS40
7)。これにより、最低音情報がMINBレジスタに入
れられる。
First, the upper two bits of the AREG register are extracted and put into the MINB register (step S40).
7). As a result, the lowest note information is stored in the MINB register.

【0165】次いで、BREGレジスタの最上位の次の
ビットから3ビットを抽出してCODOレジスタへ、B
REGレジスタの下位4ビットを抽出してROTOレジ
スタへ入れる(ステップS408)。
Next, 3 bits are extracted from the next most significant bit of the BREG register, and
The lower 4 bits of the REG register are extracted and put into the ROTO register (step S408).

【0166】次いで、CODOレジスタに格納されたコ
ードタイプから表1のC基準コード表を参照し、12音
ビット列を読み出し、BITAレジスタに入れる(ステ
ップS409)。
Next, the 12-tone bit string is read out from the code type stored in the CODO register with reference to the C reference code table in Table 1 and put into the BITA register (step S409).

【0167】次いで、MINBレジスタの値から、BI
TAレジスタのうち最低音が何であったかを検出する
(ステップS410、S411)。即ち、MINBレジ
スタの内容が「00B 」であれば、下位3ビットが
「1」であるパターンを生成し、MINBレジスタの内
容が「01B 」であれば、次の3ビットが「1」である
パターンを生成し、MINBレジスタの内容が「1
B 」であれば、さらに次の3ビットが「1」であるパ
ターンを生成し、MINBレジスタの内容が「11B
であれば、上位3ビットが「1」であるパターンを生成
してKKレジスタに入れる(ステップS410)。
Next, the value of BINB is
The lowest tone in the TA register is detected (steps S410 and S411). That is, if the content of the MINB register is “00 B ”, a pattern in which the lower three bits are “1” is generated, and if the content of the MINB register is “01 B ”, the next three bits are “1”. Is generated, and the content of the MINB register is “1”.
If 0 B ", three more bits of the next generates a pattern is" 1 ", the contents of MINB register is" 11 B "
If so, a pattern whose upper three bits are "1" is generated and stored in the KK register (step S410).

【0168】そして、上記で求めたKKレジスタの値と
BITAレジスタの値との論理積をとり、LOWBレジ
スタに入れる(ステップS411)。
Then, the logical product of the value of the KK register and the value of the BITA register obtained as described above is calculated and stored in the LOWB register (step S411).

【0169】最低音の情報MINBは、「C」をコード
ルートとすると、「C,C♯,D」、「D♯,E,
F」、「F♯,G,G♯」、「A,A♯,B」の4つの
各ブロックにキーオンは1つしか存在しないという性質
を利用して、MINBレジスタには2ビットのコードと
して格納されている。
The lowest tone information MINB is “C, C♯, D”, “D♯, E,
Using the property that there is only one key-on in each of the four blocks “F”, “F♯, G, G♯”, and “A, A♯, B”, a 2-bit code is stored in the MINB register. Is stored.

【0170】つまり、 MINB=00B ならば、「C,C♯,D」 MINB=01B ならば、「D♯,E,F」 MINB=10B ならば、「F♯,G,G♯」 MINB=11B ならば、「F♯,G,G♯」 の3音のうち、キーオンになっているのが最低音であっ
たということを意味する。
That is, if MINB = 00 B , “C, C♯, D” If MINB = 01 B , “D♯, E, F” If MINB = 10 B , “F♯, G, G♯ If "MINB = 11 B," F♯, G, of the three sound of G♯ ", means that was the lowest sound has become the key-on.

【0171】ここで、コードルートと最低音の違いを説
明すると、同じコードタイプとコードルートであって
も、表5のように分けられる。
Here, the difference between the chord root and the lowest note will be described. Even if the chord type and the chord root are the same, they are divided as shown in Table 5.

【0172】[0172]

【表5】 コードタイプとコードルートは、従来から使用されてい
るが、最低音をいかに使用するかは区々である。また、
コード成立時には、従来は、最低音は使用されないこと
が多かった。
[Table 5] Chord types and chord roots have been used in the past, but how to use the lowest note varies. Also,
Conventionally, when a chord is established, the lowest note is often not used.

【0173】この実施例では、和音の最低音が何である
かを、検出し、記憶し、さらに再生することにより、例
えばバッキングの構成音やアルペジオの構成音をより忠
実に再現できる。また、最低音を用いて、オートベース
演奏のベースルートとして利用することも可能である。
In this embodiment, by detecting, storing and reproducing the lowest chord of the chord, for example, the constituent sound of the backing or the arpeggio can be reproduced more faithfully. It is also possible to use the lowest tone as a bass route for an auto bass performance.

【0174】次に、BITAレジスタの内容を、ROT
Bレジスタに記憶されている値分だけローテイトシフト
してBITBレジスタに格納する(ステップS41
2)。これにより、REC処理時と同じ12ビット列が
生成できたことになる。
Next, the contents of the BITA register are stored in the ROT
Rotate shift by the value stored in the B register and store it in the BITB register (step S41)
2). As a result, the same 12-bit string as in the REC processing has been generated.

【0175】次いで、BITBレジスタのうちLOWB
レジスタのビットより高いビットはそのままノートナン
バに変換し、OCTOレジスタの内容によってオクター
ブデータを付加し、そのノートチャネルへキーオンとし
て入れる(ステップS413)。即ち、このステップで
は、和音が成立しているため、コードタイプが「0」の
場合を除き、BITBレジスタには、通常、3〜4個の
キーオンビットが存在する。
Next, LOWB of the BITB register
Bits higher than the bits of the register are directly converted to note numbers, octave data is added according to the contents of the OCTO register, and the data is entered as key-on to the note channel (step S413). That is, in this step, since a chord is established, there are usually three to four key-on bits in the BITB register except when the chord type is “0”.

【0176】これらのキーオンビットの中からLOWB
レジスタの最低音と、それよりも高い側のオンビットを
検出してノートコードとし、OCTOレジスタのオクタ
ーブナンバを付加して、対応するノートチャネルへキー
オンとして割り当てる。
LOWB is selected from these key-on bits.
The lowest note in the register and the on-bit higher than the lowest note are detected and used as a note code. The octave number in the OCTO register is added to the note code and assigned as a key-on to the corresponding note channel.

【0177】次いで、BITBレジスタのうちLOWB
レジスタのビットより低いビットはそのままノートナン
バに変換し、OCTOレジスタの内容に「1」を加えた
値をオクターブデータとして付加し、そのノートチャネ
ルへキーオンとして入れる(ステップS414)。即
ち、このステップでは、BITBレジスタのうちLOW
Bレジスタの音名より低いところにあるキーオンビット
は、ノートコードに変換した後、OCTOレジスタに格
納されているオクターブナンバに「+1」したオクター
ブナンバを付加し、キーオンにて、対応するノートチャ
ネルに割り当てる。
Next, LOWB of the BITB register
Bits lower than the bits of the register are directly converted to note numbers, a value obtained by adding "1" to the contents of the OCTO register is added as octave data, and the result is entered as key-on to the note channel (step S414). That is, in this step, LOW of the BITB register
The key-on bit lower than the note name in the B register is converted to a note code, and an octave number added to the octave number stored in the OCTO register is incremented by "+1". assign.

【0178】例えば、 B A♯A G♯G F♯F E D♯D C♯C BITB=0 0 1 0 0 1 0 0 0 0 0 1 CODB=Major(1) ROTB=2(D) LOWB=F♯ OCTB=01B であれば、 F♯の音は、オクターブナンバ=2、ノートナンバ=6 A の音は、オクターブナンバ=2、ノートナンバ=9 D の音は、オクターブナンバ=3、ノートナンバ=2 となることを意味する。For example, B A A G G F F D D D C C BITB = 0 0 1 0 0 1 0 0 0 0 0 0 1 CODB = Major (1) ROTB = 2 (D) LOWB = If F♯OCTB = 01 B , the sound of F♯ is octave number = 2, the note of note number = 6 A is the octave number = 2 and the note number = 9 D is the octave number = 3, the note is octave number = 3 Number = 2.

【0179】次いで、他のノートチャネルをキーオフと
する(ステップS415)。すなわち、上記ステップS
413、S414で割り当てられなかった他のノートチ
ャネルをクリアして、本PLY処理ルーチンからリター
ンする。なお、コードタイプが「0」、つまり全キーオ
フである場合は、12個の全ノートチャネルをクリアす
るとになる。
Next, another note channel is keyed off (step S415). That is, the above step S
The other note channels not allocated in 413 and S414 are cleared, and the process returns from the PLY processing routine. When the chord type is "0", that is, when all keys are turned off, all 12 note channels are cleared.

【0180】一方、上記ステップS406で、MSBが
「1」であることが判断されると、AREGレジスタ、
BREGレジスタの内容が、図6(B)に示すコード成
立時の情報であるものとして以下の処理を実行する。
On the other hand, if it is determined in step S406 that the MSB is "1", the AREG register
The following processing is executed assuming that the content of the BREG register is the information at the time when the code shown in FIG.

【0181】先ず、AREGレジスタの上位2ビットを
抽出し、OCTBレジスタに入れる(ステップS41
6)。
First, the upper two bits of the AREG register are extracted and put into the OCTB register (step S41).
6).

【0182】次いで、前回のオクターブナンバ(OCT
O)と今回のオクターブナンバ(OCTB)とを比較す
る(ステップS417)。そして、異なることが判断さ
れると、今回のオクターブナンバ(OCTB)をOCT
Oレジスタに入れる(ステップS418)。そして、全
ノートチャネルKYEN1〜12のオクターブナンバO
CTを修正する(ステップS419)。
Next, the last octave number (OCT
O) and the current octave number (OCTB) are compared (step S417). If it is determined that they are different, the current octave number (OCTB) is changed to OCT.
It is stored in the O register (step S418). Then, the octave numbers O of all the note channels KYEN1 to KYEN12 are set.
The CT is corrected (Step S419).

【0183】上記ステップS417で同じことが判断さ
れると、ステップS418、S419はスキップされ
る。
If the same is determined in step S417, steps S418 and S419 are skipped.

【0184】次いで、BREGレジスタから補正音の相
対的位置、オンオフ、音名を取り出し、それぞれ、PO
SBレジスタ、ON/OFレジスタ、NOTBレジスタ
に格納する(ステップS420)。
Next, the relative position, on / off and note name of the corrected sound are extracted from the BREG register, and
The data is stored in the SB register, ON / OF register, and NOTB register (step S420).

【0185】次いで、ON/OFレジスタの内容が
「1」であるか否かが調べられる(ステップS42
1)。つまり、補正音は、現在の和音に付加される(オ
ン)のか、現在の和音から或る音を削除する(オフ)の
かが調べられる。そして、ON/OFレジスタの内容が
「0」、つまり、現在の和音から或る音を削除すること
が判断されると、KEYN1〜12の中でNOTBレジ
スタの内容と同じノートのチャネルをキーオフ状態にす
る(ステップS422)。その後、このPLY処理ルー
チンからリターンする。
Next, it is checked whether or not the content of the ON / OF register is "1" (step S42).
1). In other words, it is checked whether the correction sound is added to the current chord (on) or a certain sound is deleted from the current chord (off). When the content of the ON / OF register is "0", that is, when it is determined that a certain tone is deleted from the current chord, the channel of the same note as the content of the NOTB register in the KEYN1 to 12 is keyed off. (Step S422). Thereafter, the process returns from the PLY processing routine.

【0186】一方、上記ステップS421で、ON/O
Fレジスタの内容が「1」、つまり、現在の和音に或る
音を付加することが判断されると、POSBレジスタの
内容が「00B 」であるか否かを調べる(ステップS4
23)。
On the other hand, in step S421, ON / O
F "1" contents of the register, i.e., when adding a certain sound in the current chord is determined, it is checked whether the content of the POSB register is "00 B" (step S4
23).

【0187】ここで、POSBレジスタの内容は、次の
ようにセットされている。
Here, the contents of the POSB register are set as follows.

【0188】 POSBレジスタ=00B …補正(付加)ノートなし POSBレジスタ=01B …補正(付加)ノートあり
(最低音) POSBレジスタ=10B …補正(付加)ノートあり
(最高音) POSBレジスタ=11B …補正(付加)ノートあり
(中間音) したがって、上記ステップS423でPOSBレジスタ
の内容が「00B 」であることが判断されると、補正ノ
ートがないので、そのままリターンする。
POSB register = 00 B … No correction (addition) note POSB register = 01 B … Correction (addition) note (lowest note) POSB register = 10 B … Correction (addition) note (highest note) POSB register = 11 B ... Corrected (additional) note exists (intermediate tone) Therefore, if it is determined in step S423 that the content of the POSB register is “00 B ”, there is no corrected note, and the process returns.

【0189】一方、POSBレジスタの内容が「0
B 」でないことが判断されると、補正ノートがあるの
で、NOTBレジスタ、POSBレジスタ、OCTOレ
ジスタのの内容から、ノートナンバとオクターブナンバ
を作成し、該当チャネルにキーオンとして入れる(ステ
ップS424)。
On the other hand, if the contents of the POSB register are "0"
If it is determined that it is not "0 B ", there is a correction note, so a note number and an octave number are created from the contents of the NOTB register, the POSB register, and the OCTO register, and are entered as key-on in the corresponding channel (step S424).

【0190】即ち、NOTBレジスタからノートナンバ
を得、POSBレジスタの内容から、補正(付加)音を
現在の和音構成の上位に付加するのか、下位に付加する
のか、或いは中間に付加するのかを認識し、さらにOC
TOレジスタに格納されているオクターブナンバを参照
して、当該音のオクターブ情報とし、該当するノートチ
ャネルにキーオンとして割り当てる(ステップS42
4)。
That is, the note number is obtained from the NOTB register, and it is recognized from the contents of the POSB register whether the correction (addition) sound is to be added to the upper, lower, or middle of the current chord structure. And then OC
With reference to the octave number stored in the TO register, the octave information of the sound is referred to and assigned as a key-on to the corresponding note channel (step S42).
4).

【0191】なお、ここで、ステップS425に示すよ
うに、NOTBレジスタの内容をROTOレジスタに入
れることにより、最低音をコードルートとすることも可
能である。この処理は、必須ではない。
Here, as shown in step S425, the lowest note can be set as the chord root by putting the contents of the NOTB register into the ROTO register. This process is not essential.

【0192】その後、このPLY処理ルーチンからリタ
ーンし、メインルーチンに戻る。
Thereafter, the process returns from the PLY processing routine and returns to the main routine.

【0193】次に、割り込み処理について説明する。図
15は、この電子楽器が有する4種類の割り込み処理を
説明するフローチャートである。
Next, the interrupt processing will be described. FIG. 15 is a flowchart illustrating four types of interrupt processing of the electronic musical instrument.

【0194】同図(A)は、タイマ割り込み処理を示す
ものである。タイマ15が所定値(時間)を計数する
と、CPU16のINT1端子に割り込み要求信号が供
給され、CPU16は、実行中の処理を一時中断して割
り込み処理を行う。即ち、先ず、RUNフラグが「1」
であるか否かが調べられる。このRUNフラグは、パネ
ルのSTARTスイッチが押されることにより「1」に
セットされるフラグである。したがって、動作中に
「1」にされる。
FIG. 23A shows a timer interrupt process. When the timer 15 counts a predetermined value (time), an interrupt request signal is supplied to the INT1 terminal of the CPU 16, and the CPU 16 temporarily interrupts the process being executed to perform the interrupt process. That is, first, the RUN flag is set to “1”.
Is checked. This RUN flag is a flag that is set to “1” when the START switch on the panel is pressed. Therefore, it is set to "1" during operation.

【0195】ここで、RUNフラグが「1」でないこと
が判断されると、つまり動作中でないことが判断される
と、何等の処理も行わずにこの割り込み処理ルーチンか
らリターンする。
Here, if it is determined that the RUN flag is not "1", that is, if it is determined that the RUN flag is not operating, the process returns from the interrupt processing routine without performing any processing.

【0196】一方、RUNフラグが「1」であることが
判断されると、TIMNレジスタの内容をインクリメン
トする。これにより、現在の時刻が更新されることにな
る。同図(B)は、MIDI割り込み処理を示すもので
ある。インタフェース回路10がMIDI IN端子か
らデータを受け取ると、CPU16のINT2端子に割
り込み要求信号が供給され、CPU16は、実行中の処
理を一時中断して割り込み処理を行う。この割り込み処
理では、インタフェース回路10からの入力情報を、R
AM18のMIDIバッファに格納する。その後、この
割り込み処理ルーチンからリターンする。このMIDI
バッファに格納された情報が、上述したように、種々の
処理に使用されることになる。
On the other hand, when it is determined that the RUN flag is "1", the contents of the TIMN register are incremented. As a result, the current time is updated. FIG. 7B shows the MIDI interrupt processing. When the interface circuit 10 receives the data from the MIDI IN terminal, an interrupt request signal is supplied to the INT2 terminal of the CPU 16, and the CPU 16 temporarily interrupts the processing being executed to perform the interrupt processing. In this interrupt processing, the input information from the interface circuit
It is stored in the MIDI buffer of AM18. Thereafter, the process returns from the interrupt processing routine. This MIDI
The information stored in the buffer is used for various processes as described above.

【0197】同図(C)は、キースイッチ割り込み処理
を示すものである。キースイッチ11が押されたことを
キースキャン回路12が検出すると、CPU16のIN
T3端子に割り込み要求信号が供給される。CPU16
は、実行中の処理を一時中断して割り込み処理を行う。
この割り込み処理では、キースキャン回路12からのキ
ースイッチ情報を、RAM18のマニュアルバッファに
格納する。その後、この割り込み処理ルーチンからリタ
ーンする。このマニュアルバッファに格納された情報
が、上述したように、種々の処理に使用されることにな
る。
FIG. 19C shows the key switch interrupt processing. When the key scan circuit 12 detects that the key switch 11 has been pressed, the
An interrupt request signal is supplied to the T3 terminal. CPU16
Performs an interrupt process by temporarily suspending the process being executed.
In this interrupt processing, the key switch information from the key scan circuit 12 is stored in the manual buffer of the RAM 18. Thereafter, the process returns from the interrupt processing routine. The information stored in the manual buffer is used for various processes as described above.

【0198】同図(D)は、ディスク入力割り込み処理
を示すものである。ディスク駆動回路19でデータ転送
要求が発生すると、CPU16のINT4端子に割り込
み要求信号が供給される。CPU16は、実行中の処理
を一時中断して割り込み処理を行う。この割り込み処理
では、ディスク装置20からディスク駆動回路19を介
して供給されるデータを、RAM18のディスクバッフ
ァに格納する。その後、この割り込み処理ルーチンから
リターンする。このディスクバッファに格納された情報
が、上述したように、種々の処理に使用されることにな
る。
FIG. (D) shows the disk input interrupt processing. When a data transfer request occurs in the disk drive circuit 19, an interrupt request signal is supplied to the INT4 terminal of the CPU 16. The CPU 16 temporarily interrupts the process being executed and performs an interrupt process. In this interrupt processing, data supplied from the disk device 20 via the disk drive circuit 19 is stored in the disk buffer of the RAM 18. Thereafter, the process returns from the interrupt processing routine. The information stored in the disk buffer is used for various processes as described above.

【0199】次に、REC処理の第2の実施例について
説明する。図16はREC処理ルーチン(実施例2)の
処理を示すフローチャートである。
Next, a second embodiment of the REC process will be described. FIG. 16 is a flowchart illustrating the processing of the REC processing routine (second embodiment).

【0200】この処理は、図3及び図4、又は図7及び
図8に示した和音検出ルーチンを使用せず、音色ビット
マップを直接記憶する方式である。この処理では、図1
7に示すデータ形式で和音シーケンスを記憶する。
This processing is a method of directly storing the timbre bitmap without using the chord detection routine shown in FIGS. 3 and 4 or FIGS. 7 and 8. In this process, FIG.
The chord sequence is stored in the data format shown in FIG.

【0201】先ず、和音エリアのキーナンバのうち、最
低音のノートナンバをLOWBレジスタに入れる(ステ
ップS900)。このLOWBレジスタには、オクター
ブナンバも同時に入れられる。
First, among the key numbers of the chord area, the note number of the lowest note is entered in the LOWB register (step S900). The LOWB register also stores an octave number at the same time.

【0202】次いで、最高音のノートナンバをOCTB
レジスタに入れる(ステップS901)。次いで、和音
エリアのキーのオン/オフ状態について、各オクターブ
間で論理和をとり、その結果をビット列としてBITB
レジスタに入れる(ステップS902)。
Next, the note number of the highest note is OCTB.
The data is stored in a register (step S901). Next, regarding the on / off state of the keys in the chord area, a logical sum is calculated between the octaves, and the result is used as a bit string in BITB
It is stored in a register (step S902).

【0203】次いで、前回変化のあったタイム(TIM
O)と今回のタイム(TIMN)との時間差を求め、T
IMBレジスタに格納する(ステップS903)。そし
て、今回のタイムTIMNをTIMOレジスタに入れる
(ステップS904)。
Next, the time when the last change (TIM
O) and the current time (TIMN),
The data is stored in the IMB register (step S903). Then, the current time TIMN is entered in the TIMO register (step S904).

【0204】次いで、図17に示すように、OCTBレ
ジスタの内容とTIMBレジスタの内容とをつなげ、シ
ーケンスポインタPNTで示されるアドレスへ格納する
(ステップS905)。また、BITBレジスタの内容
の下位8ビットを、シーケンスポインタPNT+1で示
されるアドレスへ格納する(ステップS906)。
Next, as shown in FIG. 17, the contents of the OCTB register and the contents of the TIMB register are connected and stored at the address indicated by the sequence pointer PNT (step S905). Also, the lower 8 bits of the contents of the BITB register are stored in the address indicated by the sequence pointer PNT + 1 (step S906).

【0205】さらに、LOWBレジスタの内容とBIT
Bレジスタの上位4ビットとをつなげ、シーケンスポイ
ンタPNT+2で示されるアドレスへ格納する(ステッ
プS907)。
Furthermore, the contents of the LOWB register and BIT
The upper 4 bits of the B register are connected and stored at the address indicated by the sequence pointer PNT + 2 (step S907).

【0206】そして、シーケンスポインタを「+3」し
て(ステップS908)、このREC処理ルーチンから
リターンする。
Then, the sequence pointer is set to "+3" (step S908), and the process returns from the REC processing routine.

【0207】この実施例によれば、常に3バイトのデー
タを必要とするが、コード成立、不成立にかかわらず、
同じデータ形式で記憶することができるという利点があ
る。
According to this embodiment, although 3 bytes of data are always required, regardless of whether the code is established or not,
There is an advantage that data can be stored in the same data format.

【0208】また、最低音のノートナンバとオクターブ
ナンバも可能な限り少ないビット数で一緒に記憶するこ
とによりPLY時の再現性を良くしている。
Further, the note number and octave number of the lowest note are stored together with as few bits as possible, thereby improving the reproducibility in PLY.

【0209】以上、上述した各実施例によれば、CPU
が不得手とするローテイトシフトや比較の量が削減され
和音検出処理が高速化されるとともに、プログラムやコ
ード表を小さくできるのでこれらを記憶するメモリの容
量を小さくできる
According to the above-described embodiments, the CPU
Reduces the amount of rotate shifts and comparisons that are difficult to perform, speeds up the chord detection process, and reduces the size of the memory for storing these programs and chord tables.

【0210】また、和音成立時にもその和音中の特定音
情報(最高音、最低音)を一緒に記憶することにより、
再生する際に、記録時に近い構成音パターンを得ること
ができる。
Further, even when a chord is formed, specific tone information (highest tone, lowest tone) in the chord is stored together,
At the time of reproduction, a constituent sound pattern close to that at the time of recording can be obtained.

【0211】また、オクターブ情報が変化した時に、該
オクターブ情報も記憶するので、再生時の伴奏音を、記
録時の音域で再生できるものとなっている。
When the octave information changes, the octave information is also stored, so that the accompaniment sound at the time of reproduction can be reproduced in the sound range at the time of recording.

【0212】また、和音が不成立のときは、前回の伴奏
音パターンの変化分の音に対応する情報を補正情報とし
て記憶するようにしたので、和音が不成立時に記憶する
情報量を減少させることができる。
Further, when a chord is not established, information corresponding to a sound corresponding to a change in the previous accompaniment sound pattern is stored as correction information. Therefore, the amount of information to be stored when a chord is not established can be reduced. it can.

【0213】また、和音不成立のときに、Majorパ
ターンや不成立特有のパターンを用いるのではなく、直
前に成立した和音パターンを重視し、少なくともコード
タイプはその直前に成立した和音パターンのものを用
い、各構成音に関しては直前の和音パターンからの変化
分を加味して記憶するようにしたので、演奏の流れが生
きてくるという利点がある。
When a chord is not established, instead of using the Major pattern or a pattern specific to the non-establishment, emphasis is placed on the chord pattern that was formed immediately before, and at least the chord type using the chord pattern that was formed immediately before is used. Since each constituent sound is stored taking into account the change from the immediately preceding chord pattern, there is an advantage that the flow of the performance comes alive.

【0214】また、和音エリアにキーオンがない状態も
1つの和音と同じパターンとして扱うことにより、常に
伴奏音を付加するのではなく、伴奏音を削除するという
処理も可能となっている。これにより、統一的な処理を
行うことができ、簡単になるという効果がある。
By treating the state in which there is no key-on in the chord area as the same pattern as one chord, it is also possible to delete accompaniment sounds instead of always adding accompaniment sounds. Thereby, unified processing can be performed and there is an effect that the processing is simplified.

【0215】さらに、和音検出のコードタイプ、コード
ルートを基準に記憶するのではなく、常に12音ビット
列を記憶し、同時に特定音情報をも記憶するという構成
により、忠実な再生を容易に実現することができるもの
となっている。
Further, faithful reproduction is easily realized by a configuration in which a 12-tone bit string is always stored and specific sound information is also stored at the same time, instead of storing chord detection chord types and chord roots as references. It is something that can be done.

【0216】[0216]

【発明の効果】以上詳述したように、この発明によれ
ば、和音成立時には和音情報にオクターブ識別情報を含
む特定音情報を付加して記憶することにより、記録時の
内容を忠実に再現することができ、また、和音不成立時
であっても演奏の流れを極力生かしつつ記憶すべき情報
量を低減することができる伴奏情報処理装置を提供する
ことができる。
As described above in detail, according to the present invention, when a chord is formed, specific sound information including octave identification information is added to the chord information and stored, so that the contents at the time of recording are faithfully reproduced. Further, it is possible to provide an accompaniment information processing apparatus capable of reducing the amount of information to be stored while making the most of the performance flow even when chords are not established.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の伴奏情報処理装置が包含される電子楽
器の一実施例の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of an embodiment of an electronic musical instrument including an accompaniment information processing apparatus of the present invention.

【図2】本発明の伴奏情報処理装置が包含される電子楽
器の主動作を示すメインフローチャートである。
FIG. 2 is a main flowchart showing a main operation of the electronic musical instrument to which the accompaniment information processing apparatus of the present invention is included.

【図3】図2の和音検出処理の第1の実施例の動作を示
すフローチャートである。
FIG. 3 is a flowchart showing an operation of the first example of the chord detection processing of FIG. 2;

【図4】図2の和音検出処理の第1の実施例の動作を示
すフローチャートである。
FIG. 4 is a flowchart showing an operation of the first embodiment of the chord detection processing of FIG. 2;

【図5】本発明の第1の実施例で使用するBITBレジ
スタの形式を説明するための図である。
FIG. 5 is a diagram for explaining a format of a BITB register used in the first embodiment of the present invention.

【図6】本発明の第1の実施例で採用するデータ形式を
説明するための図である。
FIG. 6 is a diagram for explaining a data format adopted in the first embodiment of the present invention.

【図7】図2の和音検出処理の第2の実施例の動作を示
すフローチャートである。
FIG. 7 is a flowchart showing the operation of the second embodiment of the chord detection processing of FIG. 2;

【図8】図2の和音検出処理の第2の実施例の動作を示
すフローチャートである。
FIG. 8 is a flowchart showing the operation of the second embodiment of the chord detection processing of FIG. 2;

【図9】本発明の第2の実施例で使用するBITBレジ
スタの形式を説明するための図である。
FIG. 9 is a diagram for explaining a format of a BITB register used in a second embodiment of the present invention.

【図10】本発明の他の実施例を説明するための図であ
る。
FIG. 10 is a diagram for explaining another embodiment of the present invention.

【図11】本発明の第2の実施例で採用するデータ形式
を説明するための図である。
FIG. 11 is a diagram for explaining a data format adopted in a second embodiment of the present invention.

【図12】図2のREC処理(実施例1)を詳細に示す
フローチャートである。
FIG. 12 is a flowchart showing the REC process (first embodiment) of FIG. 2 in detail.

【図13】図2のPLY処理を詳細に示すフローチャー
トである。
FIG. 13 is a flowchart showing the PLY processing of FIG. 2 in detail.

【図14】図2のPLY処理を詳細に示すフローチャー
トである。
FIG. 14 is a flowchart showing the PLY processing of FIG. 2 in detail.

【図15】本発明の第1、第2の実施例における割り込
み処理を説明するためのフローチャートである。
FIG. 15 is a flowchart illustrating an interrupt process according to the first and second embodiments of the present invention.

【図16】図2のREC処理(実施例2)を詳細に示す
フローチャートである。
FIG. 16 is a flowchart showing the REC processing (second embodiment) of FIG. 2 in detail.

【図17】図16で使用するデータ形式を示す図であ
る。
FIG. 17 is a diagram showing a data format used in FIG. 16;

【符号の説明】[Explanation of symbols]

11 キースイッチ(音高指定手段) 13 パネルスイッチ 15 タイマ 16 CPU(構成音検出手段、和音情報生成手段、特
定音情報生成手段、和音/補正情報生成手段、音ビット
列作成手段) 17 ROM 18 RAM(記憶手段) 20 ディスク装置(記憶手段) 21 音源回路
11 Key switch (pitch specifying means) 13 Panel switch 15 Timer 16 CPU (Constituent sound detecting means, chord information generating means, specific sound information generating means, chord / correction information generating means, sound bit string generating means) 17 ROM 18 RAM ( Storage means) 20 disk device (storage means) 21 sound source circuit

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 音高を指定する音高指定手段と、 前記音高指定手段で指定された音高情報に基づきオクタ
ーブ識別情報を含む特定音情報を生成する特定音情報生
成手段と、 前記音高指定手段で指定された音高情報の構成音を検出
する構成音検出手段と、 前記構成音検出手段で検出された構成音の有無を検出す
るキーオン検出手段と、 前記構成音検出手段で検出された構成音から和音を検出
して和音情報を生成する和音情報生成手段と、 前記特定音情報生成手段で生成されたオクターブ識別情
報を含む特定音情報、前記キーオン検出手段で検出され
た構成音の有無、ならびに前記和音情報生成手段で生成
された和音情報の3者を関連付けて時系列的に記憶する
記憶手段と、 を具備したことを特徴とする伴奏情報処理装置。
1. A pitch specifying means for specifying a pitch; a specific pitch information generating means for generating specific pitch information including octave identification information based on the pitch information specified by the pitch specifying means; Constituent sound detecting means for detecting a constituent sound of the pitch information specified by the pitch specifying means; key-on detecting means for detecting the presence or absence of the constituent sound detected by the constituent sound detecting means; detection by the constituent sound detecting means Chord information generating means for detecting chords from the constituent sounds thus generated to generate chord information; specific sound information including octave identification information generated by the specific sound information generating means; constituent sounds detected by the key-on detecting means Storage means for storing the presence / absence and the three pieces of chord information generated by the chord information generation means in a time-series manner in association with each other.
【請求項2】 音高を指定する音高指定手段と、 前記音高指定手段で指定された音高情報の構成音を検出
する構成音検出手段と、 前記構成音検出手段で検出された構成音により和音が成
立することが判断されたときは和音情報を生成し、和音
が成立しないことが判断されたときは直前の構成音情報
に対する補正情報を生成する和音/補正情報生成手段
と、 前記和音/補正情報生成手段で生成された和音情報又は
補正情報を時系列的に記憶する記憶手段と、 を具備したことを特徴とする伴奏情報処理装置。
2. A pitch detecting means for specifying a pitch, a constituent sound detecting means for detecting a constituent sound of the pitch information specified by the pitch specifying means, and a structure detected by the constituent sound detecting means. A chord / correction information generating means for generating chord information when it is determined that a chord is established by the sound, and generating correction information for the immediately preceding constituent tone information when it is determined that the chord is not established; Storage means for storing the chord information or the correction information generated by the chord / correction information generation means in a time-series manner.
【請求項3】 前記和音/補正情報生成手段で生成され
る補正情報が、和音との相対的な音高に係る情報である
ことを特徴とする請求項2記載の伴奏情報処理装置。
3. The accompaniment information processing apparatus according to claim 2, wherein the correction information generated by said chord / correction information generating means is information relating to a pitch relative to a chord.
JP3109679A 1991-04-09 1991-04-16 Accompaniment information processing device Expired - Fee Related JP2822281B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3109679A JP2822281B2 (en) 1991-04-16 1991-04-16 Accompaniment information processing device
US07/866,374 US5250746A (en) 1991-04-09 1992-04-09 Chord detecting apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3109679A JP2822281B2 (en) 1991-04-16 1991-04-16 Accompaniment information processing device

Publications (2)

Publication Number Publication Date
JPH04317100A JPH04317100A (en) 1992-11-09
JP2822281B2 true JP2822281B2 (en) 1998-11-11

Family

ID=14516436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3109679A Expired - Fee Related JP2822281B2 (en) 1991-04-09 1991-04-16 Accompaniment information processing device

Country Status (1)

Country Link
JP (1) JP2822281B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6217756A (en) * 1985-07-16 1987-01-26 Canon Inc Electrophotographic magnetic toner
JPS6227717A (en) * 1985-07-29 1987-02-05 Nissan Motor Co Ltd Image pickup device
JP2522337B2 (en) * 1988-01-06 1996-08-07 ヤマハ株式会社 Automatic playing device

Also Published As

Publication number Publication date
JPH04317100A (en) 1992-11-09

Similar Documents

Publication Publication Date Title
GB2104700A (en) Electronic musical instrument providing automatic ensemble performance
JP2590293B2 (en) Accompaniment content detection device
JP6860077B2 (en) Musical tone data playback device and musical tone data playback method
EP0039464B1 (en) Electronic musical instrument
JPH04277798A (en) Chord detecting apparatus and automatic accompniment apparatus
JP2822281B2 (en) Accompaniment information processing device
US4248118A (en) Harmony recognition technique application
JP2900753B2 (en) Automatic accompaniment device
JP2717461B2 (en) Chord detection storage device
US5250746A (en) Chord detecting apparatus
US4926736A (en) Electronic musical instrument with automatic performance apparatus
JPH0274997A (en) Electronic musical instrument
US4920849A (en) Automatic performance apparatus for an electronic musical instrument
JP2640992B2 (en) Pronunciation instruction device and pronunciation instruction method for electronic musical instrument
US5107745A (en) Electronic musical instrument capable of reporting operating conditions including sound level and tempo
JP3405020B2 (en) Electronic musical instrument
JP2856025B2 (en) Automatic accompaniment device
JP3450542B2 (en) Accompaniment pattern creation device
JP3690174B2 (en) Music generator
JP3189837B2 (en) Performance information analyzer and performance information analysis method
JP2580950B2 (en) Automatic scale generator
JP2715038B2 (en) Automatic performance device
JPH0827624B2 (en) Automatic playing device
JP2572316B2 (en) Automatic performance device
JPH02135496A (en) Electronic musical instrument with harp effect

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees