JPH0664471B2 - 自動伴奏装置 - Google Patents

自動伴奏装置

Info

Publication number
JPH0664471B2
JPH0664471B2 JP62333219A JP33321987A JPH0664471B2 JP H0664471 B2 JPH0664471 B2 JP H0664471B2 JP 62333219 A JP62333219 A JP 62333219A JP 33321987 A JP33321987 A JP 33321987A JP H0664471 B2 JPH0664471 B2 JP H0664471B2
Authority
JP
Japan
Prior art keywords
register
key
chord
data
sound
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 - Lifetime
Application number
JP62333219A
Other languages
English (en)
Other versions
JPH01177088A (ja
Inventor
隆 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP62333219A priority Critical patent/JPH0664471B2/ja
Priority to US07/291,110 priority patent/US4939974A/en
Publication of JPH01177088A publication Critical patent/JPH01177088A/ja
Publication of JPH0664471B2 publication Critical patent/JPH0664471B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】 「産業上の利用分野」 この発明は、少ない記憶情報量で変化に富んだ自動伴奏
を行うことができる自動伴奏装置に関する。
「従来の技術」 伴奏用鍵盤の押鍵データから根音およびコード(和音)
を検出し、この検出結果と選択されているリズムパター
ンとに基づいて自動伴奏を行う自動伴奏装置が開発され
ている。
ところで、従来の自動伴奏装置は、リズムパターンに対
応して単に同一音高でリズムを刻むものや、和音伴奏と
ともに予め記憶した音高情報に基づいて変化のあるベー
ス音演奏を行うもの(特開昭59−140495号)があった。
「発明が解決しようとする問題点」 しかし、上述した従来装置にあっては以下の欠点があっ
た。すなわち、同一音高で単にリズムを刻むだけのもの
は楽音的な変化に乏しく、また、音高情報を記憶するタ
イプのものは、そのパターン記憶量が大となってしま
う。特に後者にあって、より変化に富んだ音楽的な自動
伴奏を行うためには、ベース音のみならず、和音を構成
する各音についても種々変化させることが望ましいが、
このようにすると音高情報の記憶量が膨大となってしま
うという問題が生じる。
この発明は、上述した事情に鑑みてなされたもので、少
ない記憶情報量で、変化に富んだ和音伴奏を行うことが
できる自動伴奏装置を提供することを目的としている。
「問題点を解決するための手段」 この発明は、クロック信号を発生するクロック発生手段
と、前記クロック信号に基づく各演奏タインミグにおい
ての発音の指示および発音する和音の音程態様を指示す
るパターンデータデータを記憶するパターンデータ記憶
手段と、演奏すべき和音を指定する和音指定手段と、前
記音程態様と和音の種類とに応じて複数音の音高情報を
記憶する音程態様記憶手段と、前記クロック信号に基づ
いて前記パターンデータを順次読み出しこの読みだした
パターンデータによって発音が指示されたとき、指示に
対応する音程態様と前記和音指定手段によって指示され
た和音の種類にしたがって前記音声態様記憶手段から複
数の音高情報を読み出し、該複数の音高情報に基づいて
発音すべき和音を構成する音データ作成手段と、この音
データ作成手段から供給される各音データに基づいて和
音発生を行う楽音発生手段とを具備することを特徴とし
ている。
「作用」 以上の構成によれば、音データ作成手段は、上記クロッ
ク信号に基づいてパターンデータを順次読み出し、この
読みだしたパターンデータによって発音が指示されたと
き、指示に対応する音程態様と和音指定手段によって指
示された和音の種類にしたがって音声態様記憶手段から
複数の音高情報を読み出し、該複数の音高情報に基づい
て発音すべき和音を構成する。
したがって、パターンデータ自体は少ないデータ量で、
しかも変化に富んだ演奏が可能となり、伴奏音のための
データを記憶するメモリの容量を、従来の音高情報を記
憶するタイプのものに比較し大幅に節約することができ
る。
「実施例」 以下、図面を参照してこの発明の実施例について説明す
る。
(1:実施例の構成) 第1図は、この発明の一実施例の構成を示すブロック図
である。
第1図において、符号1は鍵盤ユニットであり、複数の
キーと、各キーのオン/オフ状態を検出するための複数
のキースイッチと、各キースイッチのキーコードをバス
ラインBに供給するインターフェイス回路とから構成さ
れている。ここで、第2図にキーとキーコードとの対応
関係を示す。第2図は、キーコードを10進表示してあ
り、この図から判るように半音毎にキーコードの数値が
1変化するようになっており、C音がキーコード「6
0」となっている。
2は装置各部を制御するCPU(中央処理装置)、3はCPU
2のプログラムが記憶されたプログラムメモリ、4は各
種レジスタおよびフラグが設定されるワーキングメモリ
である。なお、ワーキングメモリ4内の各レジスタおよ
びフラグについては、後述する。
次に、符号5は、リズム音および和音の伴奏音発生の際
に使用されるパターンデータRPDが記憶されたパターン
メモリである。この場合パターンメモリ5には、予めリ
ズム種類(サンバ,スローロック等)およびコードタイ
ムに対応した多数のパターンデータRPDが記憶されてい
る。このパターンデータRPDのフォーマットを第3図に
示す。図示のように、パターンデータは、26バイトのデ
ータにより構成されており、各バイトには相対的なアド
レス「−2」,「−1」,「0」,「1」,……「2
2」,「23」が設定されている。以下に各アドレスのデ
ータについて説明する。
アドレス「−2」:このアドレスには、第4図に示すテ
ーブル#0,#1……のいずれかを指定する8ビットのテ
ーブルセレクトデータTBLSELが記憶されている。このテ
ーブル#0,#1……はテーブルメモリ6に記憶されてい
る。
アドレス「−1」:このアドレスには、和音伴奏におい
て本来同時発音すべき和音の構成音を微少時間ずらして
発音する際のずらし時間を指示するディレイタイムデー
タが記憶されている。このデータは、ギターのストロー
ク演奏のように、全体としては各弦がほぼ同時に鳴らさ
れるが実際に弦により微妙に発音タイミングがずれてい
る場合(6弦側が速く1弦側が遅い、あるいはその逆)
を再現するときなどに用いられる。
アドレス「0」〜「23」:これらの各アドレスには、和
音の音程態様およびキーオン態様を示す発音態様指示デ
ータPDが第0番から第47番まで記憶されている。このよ
うに48の発音態様指示データPD〜PD が記憶されて
いるのは、この実施例において1小節(4拍子)を48分
割し、各分割タイミングにおいて発音制御を行うように
しているからである。この発音態様指示データPDは、16
進表示の(0)(F)で表される4ビットのデータ
であり、各発音タイミングに応じ4ビット単位で順次使
用される。ここで、その内容と指示する発音態様の関係
を第5図に示す。
第5図において、「ノーマル」とは当該分割タイミング
において発音を行う通常のキーオン態様であり、「タイ
キーオン」とは当該分割タイミングにおける発音音符
(和音構成音)のいずれかがそれ以前の音符(和音構成
音)とタイ記号によりつながれていた場合(第17図参
照)には、当該音符については新たに発音をし直さず継
続して以前の音を伸ばす態様である。また、「ディレイ
キーオン」とは、前述のディレイタイムデータを用いる
演奏を行う態様である。図の上段横軸の数値は音程態様
番号TEBNOであり、第4図に示す各テーブル内において
設定されている音程態様のいずれかを指示する。ここ
で、テーブル#0においては、TEBNO「0」がコードタ
イプによって決まる通常の和音構成音の音程関係を指示
し、TEBNO「1」が9th(ナインス)の音を含む和音構成
音の音程関係を指示し、TEBNO「2」が通常の和音構成
音の各音を半音下げた音程関係を指示する。また、テー
ブル#1においては、音程態様番号TEBNO「0」が通常
の和音構成音の音程関係を、「1」が通常の和音構成音
の各音を半音下げた音程関係を指示する。このように、
音程態様番号TEBNOの値は、選択されるテーブルの番号
により、その機能が任意に設定される。
また、第4図に示すコードタイプの記号は、汎用のコー
ドタイプ記号を用いており、例えば、Mはメジャー、m
はマイナー,susはサス、Augはオーグメント、dimはディ
ミニッシュ、数字はセブンスあるいはシックスス等を示
している。これらのコードタイプは、1〜Dの16進コー
ドによって指定さるようになっている。chは、発音チャ
ンネルを示しており、この実施例においてはch0〜ch2の
3つのチャンネルによって複数音による自動伴奏を行う
ようにしている。第4図の各発音チャンネルchの欄に記
載されている数値「0」〜「255」(10進表示)はキー
コードである。
また、発音態様指示データPDの内容が(1)(C)
の場合は、上述のように音程態様番号TEBNOを指示する
が、(0)ときはキーオフを指示し、また、(F)
のときは何もせず前の状態を保持することを指示する。
なお、発音態様指示データPDの内容の(D)H,(E)
は本実施例では使用していない(第5図参照)。
以上がパターン内の各データの機能であり、第3図に示
すフォーマットに従ったパターンデータがリズム種類お
よびコードタイプに対応して複数記憶されている。ま
た、アドレス「−2」「−1」は、パターンデータのヘ
ッダとなっている。
次に、第1図における7は、テンポクロック発生器であ
り、自動演奏音のテンポの基となる一定周期のテンポク
ロックTPをCPU2へ出力する。このテンポクロックTPによ
ってCPU2に割込みがかかる。この場合、テンポクロック
TPの周期は、CPU2からバスラインBを介して供給されて
テンポデータTDに応じて決まる。
8はタイマであり、一定周期のパルス信号をCPU2に割り
込み信号として供給する。このタイマ8は、ディレイタ
イムデータ(第3図参照)を用いる演奏において、設定
されたディレイタイムを経時するために用いられる。
10は、リズム選択スイッチ、リズムスタート/ストップ
スイッチ、音色選択スイッチ、および各種効果選択スイ
ッチ等から構成されているスイッチ群である。12は、ト
ーンジェネレータであり、鍵盤回路1の押鍵/離鍵に従
ってCPU2から発せられるキーオン/キーオフ情報に基づ
いてプレーヤの鍵演奏に対応する楽音を発生するととも
に、パターンデータRPDに基づく伴奏和音を発生する。
また、トーンゼネレータ12は、パーカッション系のリズ
ル音源を有しており、選択されたリズムに対応するリズ
ム音を、テンポクロックTPに従って発生するようになっ
ている。
ここで、上述したワーキングメモリ4内の各種レジスタ
およびフラグの主なものについて説明する。
フラグRUN:自動伴奏走行時に“1"、停止時に“0"が書き
込まれる。
レジスタCLK:テンポクロックTPのカウント数が書き込ま
れるレジスタであり、各小節毎に「0」〜「47」の値が
サイクリックに書き込まれる。
レジスタDL1,DL:チャンネルch1,ch2のディレイタイムを
計時するレジスタであり、第3図に示すディレイタイム
データが書き込まれる。ディレイ演奏時においては、タ
イマ8がクロックを出力する毎に減算され、このレジス
タンDL1,DL2の内容が0となったときに該当するチャン
ネルの発音が許可される。
キーコードバッファKCBUF:押鍵されたキーのキーコード
が書き込まれるレジスタであり、複数設けられている。
レジスタCHD:和音情報が書き込まれるレジスタであり、
CPU2が伴奏用鍵盤のキーコードからコードタイプと根音
を検出するとコードタイプデータが上位4ビットに、根
音データが下位4ビットに各々書き込まれる。根音デー
タは「0」,「1」,……「11」のデータであり、C
音、C#音、……B音に対応する。コードタイプデータ
は第4図に示すコードタイプに対応したデータであり、
メジャーM、マイナm、セブンス7th等に応じた「1」
〜「13」のデータである。
レジスタTCHD:上記和音情報が一時記憶されるレジスタ
である。
レジスタROOT:上記根音データが一時記憶されるレジス
タである。
レジスタTYPE:コードタイプデータが記憶されるレジス
タである。
レジスタCHK:CLK.MOD.12の演奏値が記憶されるレジスタ
である。ここで、CLK.MOD.12とは、レジスタCLKの内容
を12で割った商の余りをいう。このCLK.MOD.12は、一拍
内のタイミングを表現する。
レジスタTBLSEL.R:テーブルセレクトデータ(第3図参
照)TBLSELが書き込まれるレジスタである。
レジスタDLYTM:ディレイタイムデータ(第3図参照)が
書き込まれるレジスタである。
アドレスポインタPNT:第3図に示すパターンフォーマッ
トのアドレスを示すポインタである。
レジスタDTおよびNDT:各々発音態様指示データPDが書き
込まれるレジスタであり、レジスタDTにはその時点の発
音態様指示データPDnが書き込まれ、レジスタンNDTには
次のタイミングの発音態様指示データPDn が書き込
まれる。
レジスタKEY0〜2:トーンジェネレータ12内の発音チ
ャンネルch0〜ch2に対応して設けられているキーコード
バッファである。このレジスタKEY〜KEYに書き込ま
れるキーコードによって発音チャンネルch0〜ch2が発音
する音の音高が決定される。
レジスタOKEY0〜2:レジスタKEY0〜2の前回の値が
記憶されるレジスタである。
フラグMODE:“0"のときはチャンネルchi(i=1〜2
に新たにキーコードを書き込んでキーオンさせる通常の
キーオンモードを指示する。また、“1"のときは、すで
に発音状態にある発音チャンネルに対しキーコードのみ
をすり替える発音処理(この処理の詳細は後述)を指示
する。
レジスタRTKEY:レジスタROOT内の根音データの音域を変
換したキーコード書き込まれるレジスタである。
以上がワーキングメモリ4内に設けられている主なレジ
スタ、フラグ等である。
(2:実施例の動作) 次に、上述した構成によるこの実施例の動作について説
明する。
この実施例の動作は、基本的にはリズムに応じて和音
(3音)を刻む自動伴奏である。また、この実施例にお
いては、キーオン態様により発音処理が異なるため、以
下に各キーオン態様毎に説明を行う。
A:ノーマル メインルーチン“MAIN" 第6図は、この実施例のメインルーチンを示すフローチ
ャートである。まず、電源が投入されると、イニシャル
処理としてワーキングメモリ4内の各動レジスタ、フラ
グ(KLBUF、RUN、DL1、DL2等)がクリアされ、その後に
おいてステップP2以降の処理に移る。
ステップSP2においては、スイッチ群10内のスタートス
イッチにオンイベントがあったかどうかが判断される。
ここで、イベントとはスイッチやキーの状態に変化があ
ったことをいい、オフからオンへ変化するオンイベント
と、オンからオフへ変化するオフイベントとがある。ス
テップSP2において、スタートスイッチのオンイベント
が検出されると、ステップSP3においてフラグRUNの値を
反転する。このステップSP2,SP3の処理により、スター
トスイッチが押される毎にフラグRUNの値が反転する。
次に、ステップSP4において、フラグRUNが“1"か否かが
判定され、「NO」であれば、自動伴奏走行の停止指示と
なるため、ステップSP5に移って、トーンジェネレータ1
2のチャンネルch0〜ch2をオフするとともに、リズム音
(パーカッション類まの発生も全てオフする。そして、
ステップSP4において「YES」と判定された場合は、自動
伴奏走行の開始が指示された場合であるから、ステップ
SP6に移り、レジスタCLK,DL1,DL2をクリアして自動伴奏
の開始に備える。ステップSP5,SP6の処理の後は、ステ
ップSP7に移りリズム選択が変更されたか否かが判断さ
れる。一方、ステップSP2の判定が「NO」の場合、すな
わち、スタートスイッチがオンもしくはオフのままであ
る場合は、ステップSP3〜SP5の処理を行わず、ステップ
SP7に至る。ステップSP7の判定が「YES」のときは、変
更されたリズム種類を示すデータに変更し(ステップSP
8)、ステップSP9でフラグRUNが“1"かどうかが判定さ
れる。この判定が、「YES」のときは、自動伴奏走行中
にリズム種類が切換られた場合であるから、ステップSP
10において、それ以前に選択されていたリズム種類によ
る伴奏の発音を停止し、新たに選択されたリズムによる
伴奏に備え、その後にステップSP116においてキーイベ
ントの有無の判定を行う。一方、ステップSP9の判定
が、「NO」の場合は、以前から継続して自動伴奏が行わ
れていない場合か、自動伴奏を停止すべくステップSP3
においてフラグRUNをクリアした場合である。したがっ
て、すでにトーンジェネレータ12内のチャンネルch0〜c
h2の発音は停止されているから、ステップSP10の処理を
行わず、直ちにステップSP11の判定を行う。ステップSP
11の判定は、CPU2が鍵盤回路1から供給されるキーコー
ドの変化をみることよって行われる。キーイベントがな
い場合は、ステップSP12に移り、スイッチ群10内の他の
スイッチの操作に応じた音色や音量の設定、変更等を行
い、再び、ステップSP2に戻って、上記処理を繰り返し
行う。
一方、キーイベントがあった場合は、サブルーチン“KE
Y・EVT"の処理に移る。
サブルーチン“KEY・EVT" まず、ステップSPa1において、鍵盤回路1から発せられ
るキーコードを、キーコードバッファKCBUFに書き込
む。キーコードが複数発せられた場合は、所定の割り当
て処理にしたがって各キーコードバッファKCBUFに割り
当てる。そして、ステップSPa2に移り、イベントのあっ
たキーの発音処理を行う。この発音処理は、トーンジェ
ネレータ12のチャンネルch0〜ch2とは別の発音チャンネ
ルにより行われる。すなわち、この発音はメロディ演奏
中の和音演奏とは別の押鍵に応じた直接的な発音処理で
ある。次に、ステップSPa3においては、キーコードバッ
ファKCBUF内のキーコードに基づきコードタイプおよび
根音を検出し、これらをレジスタTCHDに書き込む。そし
て、ステップSPa4においてCLK.MOD.12の演奏、すなわ
ち、レジスタCLKの内容を12で除して余りを求める演算
を行って、演算結果をレジスタCHKに書き込む。この演
算の結果は、前述のように1拍内におけるタイミングを
示す。ここで、レジスタCLKの内容は、自動伴奏スター
ト開始時にはリセットされて「0」であるが、テンポク
ロック発生器7からテンポクロックTPが発生される毎に
サブルーチンCLK・ERQ(第12図参照)の処理により1づ
つインクリメントされ、小節内のタイミング(「0」〜
「47」)を示す値となっている。ステップSPa4の処理が
終わると、ステップSPa5に移りレジスタCHKの内容が1
〜3か否かが判断される。この判断は、キーイベントが
あったタイミングが、拍の最初から1/4のタイミング
以内であるか否かの判断である。この判定が「YES」の
場合は、レジスタCHDにレジスタTCHD内のデータが書き
込まれる。このレジスタTCHD書き込まれたデータ(根音
データ+コードタイプデータ)は、以下の発音処理に用
いられる。一方、ステップSPa5の判定が「NO」の場合
は、メインルーチン“MAIN"に戻り、次の拍の先頭タイ
ミングにおいてレジスタCHDに書き込まれる(第12図ス
テップSPd4参照)。すなわち、キーイベントが拍の先頭
部分で生じた場合は、直ちにその変更された和音の根音
データ,コードタイプデータをレジスタCHDに書き込ん
で自動伴奏の発音処理に用いるが、キーイベントが拍の
先頭部分以外で生じた場合は、次の拍の先頭タイミング
まで待ってから変更された和音の根音データ,コードタ
イプデータをレジスタCHDに書き込む。これは、拍の途
中で自動伴奏の和音が変化すると音楽的に不自然となる
ので、それを回避するためである。
ステップSPa6の処理が終わると、レジスタCHD内の根音
データおよびコードタイプデータをレジスタROOTおよび
レジスタTYPEに各々書き込み(ステップSPa7、SPa8参
照)、“サブルーチンPAT・CHG"の処理に移る。
“サブルーチPAT・CHG" この処理は、キーイベントがあった場合において、それ
以前に行われていた自動伴奏と、新たなキーイベントに
基づく自動伴奏との整合をとるための処理である。
まず、ステップSPb1において、選択されているリズム種
類と、レジスタTYPEの内容に基づいて次に演奏すべきパ
ターンデータRPDを読出し、レジスタPATに書き込む。そ
して、ステップSPb2においては、読出したパターンデー
タRPDのアドレス「−2」にあるテーブルセレクトデー
タTBLSELおよびアドレス「−1」にあるディレイタイム
データ(第3図参照)を、各々レジスタTBLSEL.Rおよび
レジスタDLYTMに書き込む。次に、ポインタPNTにレジス
タCLKの値、すなわち、その時点におけるクロックのカ
ウント値を書き込み(ステップSPb3)、NPMT.MOD.2の演
算値が「0」か否かが判断される(ステップSPb4)。こ
の演算は、その時点のクロックカウント値(CLKの値)
が偶数か奇数かを調べる演算であり、「0」となった場
合が偶数である。そして、偶数の場合は、ステップSPb5
に進み、パターンデータRPDのアドレス「PNT/2」の下
位4ビットにある発音態様指示データPDをレジスタDTに
書き込む。また、ステップンSPb4における演算が奇数の
場合は、ステップSPb6に進み、パターンデータRPDのア
ドレス((PNT−1)/2」の上位4ビットにある発音
態様指示データPDをレジスタDTに書き込む。上述したス
テップSPb4〜SPb6の処理は、クロックカウント値と発音
態様指示データPDの番号とを合致させる処理である。例
えば、ポインタPNTに書き込まれるクロックカウント値
が「1」のときは、アドレス「0」の上位4ビットにあ
る発音態様指示データPDが選択され、また、クロック
カウント値が「46」のときはアドレス23の下位4ビット
にある発音態様指示データPD が選択される(第3図
参照)。上記処理において、クロックカウント値に対応
した発音態様指示データPDがレジスタDTに書き込まれる
と、ステップSPb7に移りレジスタDTの内容が(F)
否か、すなわち、「何もしない」を指示するものである
かどうかが判断される。この判断が「YES」の場合は、
ポインタPNTの値を減算し、ステップSPb9を介して再び
ステップSPb4以降の処理を行う。この処理はレジスタン
DTの内容が(F)以外のものとなるまで続けられる。
そして、(F)以外のデータが検出されると、ステッ
プSPb11に移りレジスタDTの内容が「0」かどうか、す
なわち、キーオフを指示するデータであるかどうかを判
断する。この判定が「YES」の場合は、レジスタKEY
0〜2の内容が「0」であればメインルーチン“MAIN"
(第6図参照)へリターンし、「0」でなければトーン
ジェネレータ12のチャンネルch0〜2を全てキーオフす
るとともに(ステップSPb16,SPb17)、レジスタKEY
0〜2をクリアした後にリターンする。
ここで、上述したステップSPb4〜SPb11およびステップS
Pb15〜SP17の一連の処理の意味について説明する。
いま、第9図(イ)に示すように、第3拍目の先頭タイ
ミングにおいて和音Cメジャから和音Fメジャへの変更
があったとする。この変更によって新たに読出された和
音メジャに対応するパターンデータRPDが譜面上で第9
図(ロ)に示されるものであったとする。この譜面を発
音態様指示データにすると例えば第10図に示すようにな
る。ここで、第3拍目の先頭タイミングにおけるレジス
タCLKの値は「24」であるから、ステップSPb3において
ポインタPNTに書き込まれる値は「24」となる。そし
て、ステップSPb4→SPb5→SPb7の処理により、ステップ
SPb7においては発音態様指示データPD の値が(F)
か否かが判断される。この場合は、(F)であるか
ら判定は「YES」となる。ところで、(F)の意味は
「何もしない」であるから、それ以前にキーオンが指示
されていればその発音を継続し、キーオフが指示されて
いれば消音状態を維持しなければならない。したがっ
て、あるタイミングにおける発音態様指示データPDが
(F)である場合には、新たにどのような発音制御を
すべきか不明である。このため、それ以前のタイミング
の発音態様指示データであって(F)以外のものをサ
ーチする必要がある。ステップSPb4〜SPb10の処理は、
このサーチを行う処理である。さて、上記例にあって
は、発音態様指示データPD が(F)であるから、
1つ前の発音態様指示データPD を調べると、(0)
なっており、クロックカウント値「24」においては消
音を維持しなければならないことが判る。この消音の判
断は、ステップSPb11において「YES」となった場合に対
応する。
ところで、キーイベントがある前の和音Cメジャの伴奏
時のパターンデータRPDが譜面上では第9図(ハ)のよ
うに表されるとする。この場合にあっては、同図に示す
ようにクロックカウント値「23」で消音が指示されてい
るから、この時点におけるレジスタKEY0〜2の内容
は、消音指示のためにすべて「0」となっている。すな
わち、クロックカウント値「24」における発音態様が、
変更前(同図(ハ))と変更後(同図(ロ))とで同じ
である。このような場合には、ステップSPb15の判定が
「YES」となり、発音制御処理は行わずにそのままリタ
ーンする。
一方、キーイベントがある前の和音Cメジャの伴奏時の
パターンデータRPDが譜面上で第9図(ニ)ように表さ
れるとする。この場合にあっては、同図に示すように、
クロックカウント値「23」では2拍目に発音した音を継
続している必要がある。したがって、レジスタKEY
0〜2には2拍目の発音に対応するキーコード(付点4
分音符のキーコード)が各々書き込まれている。しか
し、和音変更後のクロックカンウント値「24」(3拍
目)にあっては消音の必要がある(同図(ロ)参照)。
そこで、このような場合にあっては、ステップSPb16に
進んでトーンジェネレータ12の発音チャンネルch0〜2
をキーオフして消音させ、さらに、レジスタKEY0〜2
をクリアしてからリターンする(ステップSPb17)。
以上が、ステップSPb4〜SPb11およびステップSPb15〜SP
b17の処理の意味である。
上記ステップSPb11〜SPb17の処理は、変更後の当該タイ
ンミングにおいて消音が指示された場合の処理であった
が、逆に、発音が指示される場合もある。この場合は、
ステップSPb11〜SPb14の処理を行う。この処理を以下に
説明する。
変更後のパターンデータにおける当該タイミングの発音
態様指示データPDが(F)、(0)以外のとき、お
よび、当該タイミングから順次さかのぼって検出された
発音態様指示データPDが(0)以外のときは、変更後
において発音が指示される場合である。この場合にはス
テップSPb11の判定が「NO」となるから、ステップSPb12
の判定を行う。この判定は前述のステップSPb15の判定
と同様の判定であり、「YES」の場合は、変更前のパタ
ーンデータにより当該タイミングにおい消音されてい
る。また、「NO」の場合には変更前のパターンデータに
より当該タイミングで発音がなされている。そして、ス
テップSPb12の判定が「YES」のときはフラグMODEに“0"
が書き込まれ、「NO」のときはフラグMODEに“1"が書き
込まれる(ステップSPb13,14)。そして、この処理の後
にサブルーチン“PAT・KEY"の処理に移る。発音処理
は、このサブルーチンにおいて行われる。
サブルーチン“PAT・KEY(ノーマル)” このサブルーチンは、トーンジェネレータ12の発音チャ
ンネルch0〜2を制御するためのサブルーチンである。
但し、第5図に示すキーオン態様が「ノーマル」、「タ
イキーオン」、「ディレイキーオン」の各場合において
各々処理が異なるため、ここでは「ノーマル」の場合に
ついて説明する。
まず、第11図に示すステップSPc1において、(DT−
1).MOD.4の演算を行い、演算結果をレジスタTBLNO.R
に書き込む。この演算は、発音態様指示データPDの値を
音程態様番号TBLNOに変換する演算である(第5図参
照)。次に、ステップSPc2においては、発音態様指示デ
ータPDの値をキーオン態様番号に変換する演算、すなわ
ち、INT{(DT−1)/4}を行い、その演算結果をレ
ジスタKONTPに書き込む。ステップSPc3においては、レ
ジスタOKEYiにレジスタKEYi(i=0〜2)の値を書き
込む。ステップSPc3の処理は、この時点でチャンネルch
0〜2において発生されている前回のキーコードを、同
一番号のレジスタOKEYに書き込む処理である。次に、ス
テップSPc4に移り、図示の演算によって根音の音域をG
〜F#に変更し、変更後の根音をレジスタRTKEYに
書き込む処理を行う。この処理例を示す。今、レジスタ
ROOT内の根音データがC音を示す「0」の場合は、(RO
OT+5).MOD.12の演算を行うと「5」となり、これに
「55」を加算すると「60」となる。キーコード「60」は
第2図に示すように、C音のキーコードである。
次に、ステップSPc5においては、レジスタTBLSEL.R(ス
テップSPb2でセット済み)内のセレクト番号に一致する
テーブルを読出し、このテーブルにおいてレジスタTBLN
O.R内の音程態様番号TBLNOに対応するデータを読出す。
そして、この読楕したデータの各チャンネルch0〜2に
対応する数値をレジスタRTKEYの値にそれぞれ加え、こ
の加算結果をレジスタKEY0〜2に各々書き込む。今、
レジスタRTKEYの内容がキーコード「60」であり、か
つ、テーブルが#0、音程態様番号TBLNOが0、コード
タイプがM(メジャー)であった場合は、第4図に示す
ように4,7,12が各々60に加算される。したがって、レジ
スタKEYにはキーコード「64」が、レジスタKEYには
キーコード「67」が、レジスタンKEYにはキーコード
「72」が各々書き込まれる。これらのキーコード「6
4」,「67」,「72」は各々E音、G音、C音に
対応する。
ステップSPc5の処理が終わると、ステップSPc6に移りレ
ジスタCONTPの内容が「0」,「1」,「2」のいずれ
であるかが判断される。すなわち、キーオン態様が「ノ
ーマル」であるか、「ディレイキーオン」であるか、
「タイキーオン」であるかが判断される。
ここでは、「ノーマル」について説明するので、ステッ
プSPc7に進む。このステップSPc7においては、レジスタ
MODEの内容が“1"か否かが判断され、「NO」であればス
テップSPc5においてレジスタKEY0〜2に書き込んだキ
ーコードを、トーンジェネレータ12内の各発音チャンネ
ルch0〜ch2に各々供給し、当該キーコードの発音を行う
(ステップSPc8)。一方、レジスタMODEの内容が“1"で
あれば、ステップSPc7の判断が「NO」となり、レジスタ
KEY0〜2に書き込んだキーコードとトーンゼネレータ1
2内の発音チャンネルch0〜ch2内のキーコードとを入れ
換えて発音を行う(ステップSpc9)。このように、キー
コードの入れ換えを行うのは、レジスタンMODEが“1"の
場合は発音チャンネルch0〜ch2がそれ以前に供給された
キーコードにより発音継続している場合であるから(ス
テップSPb12,SPb14参照)、途切れのない発音(スラー
記号に対応する発音)を行うために前のキーコードと新
たなキーコードとの入れ換えを行う。
ステップSPc8、SPc9のキーオン処理が終了するとリター
ンする。リータン先は、このサブルーチンが“PAT・CH
G"(第8図)において呼ばれた場合は、メインルーチン
である。
上述の動作説明は、自動伴奏中においてキーイベント
(和音変更)があった場合の発音処理であり、“MAIN"
→“KEY・EVT"→“PAT・CHG"→“PAT・KEY"なるルーチ
ンを経て、メインルーチン“MAIN"にリターンする。な
お、変更後のパターンデータの当該タイミングにおいて
発音が指示されない場合は、サブルーチン“PAT・CHG"
において消音処理(ステップSPb16)等を行った後にメ
インルーチン“MAIN"にリターンする。
ところで、自動判奏の通常の発音処理は、テンポクロッ
クTPに基づいて自動的に行われる処理である。この場合
の処理は、第12図に示すサブルーチン“CLK・IRQ"およ
び第13図に示すサブルーチン“PAT・READ"によって行わ
れる。以下に、これらについて説明する。
サブルーチン“CLK・IRQ" まず、第1図に示すテンポクロック発生器7からテンポ
クロックTPが発せられると、CPU2に割り込みがかかり、
この結果、処理がサブルーチン“CLK・IRQ"に移る。そ
して、ステップSPd1においてフラグRUN“1"か否が判定
され、「NO」であればリターンし、「YES」であればス
テップSPd2に移る。ステップSPd2においては、レジスタ
CLKの値および選択されているリズム種に応じて、リズ
ム音発生処理(パーカッション系の発音)が行われる。
次に、ステップSPd3に移り、レジスタCLKの内容を12で
割った余りが「0」か否かが判断される。この判断が
「YES」の場合は、レジスタCLKの内容が拍の先頭タイミ
ング(0,12,24,36)を示している。このステップSPd3の
判定が「NO」のときは直ちにサブルーチン“PAT・READ"
の処理を行い、「YES」の場合にはレジスタTCHDの内容
をレジスタHCDに書き込んだ後に上記サブルーチン“PAT
・READ"に移る。ステップSPd4の処理は、前述したステ
ップSPa5の判定が「NO」となって、レジスタCHKに書き
込まれなかったキーコードを、ここにおいて書き込むた
めの処理である。
サブルーチン“PAT・READ" まず、第13図に示すステップSPe1においては、リズム種
類とレジスタYPE内のコードタイプデータに基づき、演
奏すべきパターンデータRPDが選択され、レジスタPATに
書き込まれる。そして、パターンデータRPDのアドレス
「−2」、「−1」にあるテーブルセレクトデータTBLS
ELおよびディレイタイムデータを、各々レジスタTBLSE
L.RおよびレジスタDLYTMに書き込む。次に、ステップSP
3においては、レジスタCLKの内容が偶数か奇数かが判断
され、偶数であればステップSPe4に進み、レジスタンDT
およびNDTにパターンデータのアドレス「CLK/2」の下
位4ビットおよび上位4ビットにある発音態様指示デー
タPDnおよびPDn (nはレジスタCLKの内容)を各々
書き込む。また、レジスタCLKの内容が奇数であればレ
ジスタンDTおよびNDTに、パターンデータのアドレス
「(CLK−1)/2」の上位4ビットおよびアドレス
「(CLK+1)/2」の下位4ビットにある発音態様指
示データPDnおよびPDn が書き込まれる(ステップSP
e5)。このステップSPe4,SPe5の処理により、レジスタD
Tにはその時点で処理すべき発音態様指示データPDが書
き込まれ、レジスタNDTには次のタイミング(CLK+1)
で処理すべき発音態様指示データPDが書き込まれる。例
えば、レジスタCLKの内容が「4」の場合は、第5図に
示すアドレス「2」の発音態様指示データPD,PD
レジスタDT,NDTに書き込まれ、レジスタCLKの内容が
「5」の場合はアドレス「2」の発音態様指示データPD
と、アドレス「3」の発音態様指示データPDとがレ
ジスタDT,NDTに書き込まれる。なお、ステップSPe5にお
いてCLK+1の値が「48」となった場合は、アドレス
「0」の下位4ビットを書き込むようになっている。
次に、ステップSPe6においては、レジスタDTの内容が
(F)かどうか、すなわち、当該タイミングにおいて
処理すべき発音態様指示データPDが「何もしない」であ
るかどうかが判断される。この判定が「YES」の場合
は、ステップSPe11に進み、レジスタNDTの内容が(F)
かどうか、すなわち、次に処理すべき発音態様指示デ
ータPDが「何もしない」であるかどうかが判断される。
この判断が「YES」であればリターンし、「NO」であれ
ばステップSPe12においてレジスタDL1の内容が「0」か
どうかが判断される。レジスタDL1は、第6図に示すス
テップSP1のイニシャライズ処理によりクリアされてい
るから、ステップSPe12の判定が「YES」となり、ステッ
プSPe15に進んでレジスタンDL2の内容が「0」か否かが
判定される。このレジスタDL2もステップSP1においてリ
セットされているから、判定は「YES」となってリター
ンする。このように、レジスタDTの内容が(F)であ
る場合には、ステップSPe6,SPe11を介し、あるいはさら
にステップSPe12,SPe15を介してサブルーチン“CLK・IR
Q"のステップSPd5にリターンする。ステップSPd5におい
ては、レジスタCLKの内容を1インクリメントする処理
が行われる。なお、ステップSPd5において図示の演算を
行っているのは、レジスタCLKの内容を「0」〜「47」
で循環させるためである。
一方、第13図に示すステップSPe6において「NO」となる
と、ステップSPe7に移り、レジスタDTの内容が(0)
であるか否かが判断される。この判断が「YES」であれ
ば、当該タイミングにおいてキーオフが指示されている
から、トーンジェネレータ12の発音チャンネルch0〜ch2
をすべてキーオフさせ、また、レジスタKEY0〜2をク
リアする(ステップSPe8,SPe9)。ステップSPe7におい
て「NO」と判断された場合は、ステップSPe10において
フラグMODEを“0"にした後サブルーチン“PAT・KEY"の
処理に移る。
サブルーチン“PAT・KEY"の処理は、前述した通りであ
り、キーオン態様がノーマルで、フラグMODEが“0"の場
合は、ステップSPc1〜SPc8の処理による発音がなされ
る。この発音処理後においては、ステップSpe11にリタ
ーンする。キーオン態様がノーマルの場合は、ステープ
Spe11もしくはステップSPe12Spe15を経て第12図のステ
ープSPd5にリターンし、レジスタCLKをインクリメント
する。
以上の処理をテンポクロックTPが発せられる毎を行う。
以上がキーオン態様「ノーマル」の処理である。
B:ディレイキーオン 次に、ディレイキーオンの場合について説明する。
このディレイキーオンは、サブルーチン“PAT・KEY"、
“PAT・READ"における処理内容が変わると点と、サブル
ーチン“TIMER・IRQ"の処理が加わる以外は前述のノー
マルの場合と同様である。始めに、サブルーチン“PAT
・KEY"の処理について説明する。
サブルーチン“APT・KEY"(ディレイキーオン) まず、ステップSPc1からSPc6までは、ノーマルの場合と
同様であるが、ステップSpc6の判定によりステップSPc1
0に移り、レジスタMODが“1"か否かが判断される。この
判定が「YES」の場合は、ステップSPc9に移り、チャン
ネルCh0〜ch2内のキーコードをレジスタKEY0〜2内の
キコードにすり替えて3つのキコードをすべて発音す
る。すなわち、ディレイキーオン処理を行わず、3音同
時発音とする。これは、レジスタMODが“1"となるの
は、和音変更のキーイベントがあった場合において、変
更前のパターンデータによって発音が継続される場合で
あるから、新たなキコードによってディレイキーオンを
行うと音楽的に不自然となるためである。
一方、ステップSPc10で「NO」と判定された場合は、ス
テップSPb2あるいはステップSPe2においてレジスタDLYT
Mに書き込んだディレイタイムデータ(第5図参照)
を、レジスタDL1に書き込み、また、ディレイタイムデ
ータを2倍してレジスタDL2に書き込む。そして、ステ
ップSpc12に移り、レジスタKEY内のキーコードをチャ
ンネルchに供給してキーオンする。すなわち、レジス
タKEYのキーコード(第4図に示すように和音を構成
する音の最低音)はディレイキーオンせず直ちに発音す
る。ステップSPc12の処理が終わると、直ちにメインル
ーチン“MAIN"にリターンするか、第13図のステップSPe
11→(SPc12,15)→第2図のSPd5を介してメインルーチ
ンにリターンする。前者は、サブルーチン“PAT・CHG"
において“PAT・KEY"がコールされた場合であり、後者
はサブルーチン“PAT・READ"において“PAT・KEY"がコ
ールされた場合である。そして、メインルーチン“MAI
N"を循環中においてタイマ8からパルス信号IPが出力さ
れると、処理はサブルーチン“TIMER・IRQ"に移る。こ
の場合、パルス信号IPの周期はテンポクロックTPより充
分に短く設定されているため、通常は次のテンポクロッ
クTPが供給される前にサブルーチン“TIMER・IRQ"の処
理が行われる。
サブルーチン“TIMER・IRQ" まず、ステップSPf1においてフラグRUNの内容が“1"か
否かが判断され、「NO」であればメインルーチン“MAI
N"にリターンし、「YES」であればステップSPf2に進
む。ステップSPf2ではレジスタDL1の内容が「0」か否
かが判断され、「0」であればステップSPc6に進み、
「0」でなければレジスタDL1の内容が1減算される
(ステップSPf3)。そして、減算後のレジスタDL1の内
容が「0」か否かが判断され(ステップSPf4)、「0」
であればチャンネルch1にレジスタンKEY内のキーコー
ドを供給してキーオンする。ステップSPfの判定が「N
O」の場合は、ステップSPf6に進む。
次に、ステップSPf6〜SPf9の処理は、上述したSPf2〜Sp
f5までの処理と全く同様の処理をレジスタDL2について
行う処理である。そして、ステップSPf9の処理が終わる
とリターンし、再び、パルス信号IPが供給された時点で
このサブルーチン“TIMER・IRQ"に戻る。このように、
パルス信号IPが供給される毎にサブルーチン“TIMER・I
RQ"の処理が行われると、当初ディレイタイムデータが
書き込まれていたレジスタDL1,DL2の内容がステップSPf
3,SPf7の処理により順次減算されていき、減算結果が
「0」となったときにおいてレジスタKEY,KEY内の
キーコードが、チャンネルch1もしくはチャンネルch2に
供給されキーオンされる。すなわち、チャンネルch1の
発音はチャンネルch0よりディレイタイムデータ分だけ
遅れ、また、レジスタDL2の内容がレジスタDL1内容の2
倍であることから(ステップSpc11参照)、チャンネルc
h2の発音はチャンネルch1の発音よりさらにディレイタ
イムデータ分だけ遅れる。図示すと第15図のようにな
る。
サブルーチ“PAT・READ"のステップSPe13〜SPe17 ところで、曲のテンポが速い場合は、ディレイキーオン
処理を行うと、ディレイ処理されたキーコードの発音タ
イミングが後に発音されるべき次の音符よりも遅れるこ
とが生じる。例えば、第16図に示すように、最初の16分
音符の和音についえディレイキーオン処理を行った場合
に、チャンネルch2の発音タイミングが、次の16分音符
の発音タイミングtより遅れる場合がある。これは音
楽的に不自然なため、かかる場合はディレイ処理を中断
し、チャンネルch2の発音タイミングをタイミングt
の前にずらす処理を行うようにしている。
サブルーチン“PAT・READ"のステップSPe13〜SPe17の処
理はこのための処理である。以下にこの処理について説
明する。
今、ディレイキーオンの処理が終了してないうちに、次
のテンポクロックTPが発せられたとする。この結果、処
理はサブルーチン“GLK・IRQ"を介して“PAT・READ"に
至る。そして、ステップSPe1〜ステップSPe6を経てステ
ップSPe11の判定が行われる。この場合、次のテンポク
ロックTPのタイミングにおいて音発生を行う場合は、ス
テップSPe11の判定が「NO」となるから、ステップSPe12
に移り、レジスタDL1の内容が「0」が否かが判断され
る。この判定が「NO」であれば、発音チャンネルch1に
ついては未だディレイキーオン処理が行われていない場
合であるから、ステップSPe13おいてレジスタDL1をクリ
アし、さらにチャンネルch1にレジスタKEY内のキーコ
ードを供給して強制的にキーオンする(ステップSPe1
4)。一方、ステップSPe12の判定が「YES」であれば、
ステップSPe15においてレジスタDL2の内容が「0」か否
かが判断される。この判断が「YES」であれば、チャン
ネルch1,ch2の双方のディレイキーオン処理が終了して
いるため、ステップSPd5を介してメインルーチン“MAI
N"へリターンする。また、ステップSPe15で「NO」とな
った場合は、レジスタDL2をクリアしチャンネルch2にレ
ジスタKEY2内のキーコードを供給して強制的にキーオン
させる。この処理の後は、ステップSPd5を介してメイン
ルーチン“MAIN"にリターンする。
以上がディレイキーオンの処理である。
C:タイキーオン 次に、タイキーオンの処理について説明する。この場合
は、サブルーチン“PAT・KEY"の処理以外は、前述たノ
ーマルの処理と同様である。
サブルーチン“PAT・KEY"のステップSPc1〜SPc6までの
処理は、ノーマルの場合と同様の処理となるが、ステッ
プSpc6の判定において「1」となり、ステップSPc13に
進む。ステップSPc13においては、レジスタiをクリア
し、さらに、ステップSpc14においてレジスタjをクリ
アする。そして、ステップSPc15に移りレジスタCKEYiと
レジスタKEYiの内容が比較される。この処理は、ステッ
プSpc3においてレジスタCKEYiに書き込んだ前回のキー
コードデータとステップSPc5においてレジスタンKEYiに
書き込んだ今回のキーコードデータとが一致しているか
どうかを判断する処理である。また、ステップSPc15に
おいては、レジスタiとレジスタjの内容が異なってい
るか否かも判定する。このステップSpc15における最初
の判断は、レジスタOKEYとレジスタKEYの内容比較
となるが、i=jであるので判定はNOとなり、ステップ
SPc17に移る。ステップSPc17においては、レジスタjの
内容に1が加算され、ステップSPc18の処理に移る。ス
テップSpc18は、レジスタjの値が「3」未満か否かを
判定する処理であり、ステップSpc17の加算処理が2回
以下のときは「YES」となり、再びステップSPc15に移り
比較処理を行う。ステップSPc15における2回目の比較
処理は、OKEY=KEYか否かの比較である。この判断
が「YES」であれば、レジスタKEYiとレジスタKEYjの内
容を入れ換える(ステップSPc16)。すなわち、上記の
場合においては、レジスタKEYとレジスタKEYの内容
を入れ換える。以後同様にしてレジスタjの内容をイン
クリメントし、再びステップSPc15の処理を行う。この
処理の後にステップSPc17の処理を行うと、ステップSPc
18の判定が「NO」となり、ステップSPc19においてレジ
スタiの内容がインクリメントされる。次に、ステップ
SPc20に進み、レジスタiの内容が3未満か否かが判断
される。この判断はステップSPc19の処理が2回以下の
ときは「YES」となるから、処理は再びステップSPc14に
戻る。すなわち、レジスタiの値を「1」として、上記
処理を繰り返す。以後同様にレジスタiの値を2にして
上記処理を行い、再度ステップSpc20に至るとこの判定
が「NO」となり、ステップSPc14〜ステップSpc20からな
るループを抜ける。
このループの処理によってレジスタOKEYi=KEYjとなっ
た場合は、レジスタKEYiの内容とエジスタKEYjの内容が
入れ換えられる。これにより、レジスタKEYi(
i=0〜2)内の次に発音すべきキーコードが、現在発
音されている発音チャンネルchiのキーコードと同じ場
合は、当該発音チャンネルと同一の番号のレジスタKEYi
に入れ換えられる。ただし、発音チャンネルchiと同一
番号のレジスタKEYiに初めから同じキーコードが書き込
まれている場合は、入れ換えの必要がないので、この処
理は行われない。
例えば、第17図に示すように現在G音,B音,D音に
よる和音(和音G)が奏せられており、レジスタOKE
Y,OKEY,OKEYに各々キーコード「67」,「71」,
「74」が書き込まれているとする。そして、次に発音す
べき音がE音,G音,D音(和音Cth)でレジスタ
KEY,KEY,KEYに各々キーコード「64」,「67」,
「74」が書き込まれているとする。この場合には、KEY
=OKEY、KEY=OKEYであり、KEYについては一
致するものがない。したがって、レジスタKEYはその
ままであるが、レジスタKEYとKEY内容は入れ換えら
れる。対応関係を示すと以下のようになる。
次に、ステップSPc21においてレジスタiがクリアされ
ると、ステップSPc22においてレジスタOKEYiとレジスタ
KEYiの同一番号のものの内容が等しいかどうかが判定さ
れる。この判定結果が「NO」のときは、ステップSPc23
に進みフラグMODEが“1"か否かが判断され、「NO」であ
れば、現在発音中の音がない場合であれから発音チャン
ネルchiにレジスタKEYiのキーコードを供給してキーオ
ン処理を行う(ステップSPc24)。また、ステップSPc23
の判定が「YES」の場合は、現在発音中の音がある場合
であるから、発音チャンネルchiのキーコードとレジス
タKEYiのキーコードを入れ換えて発音処理を行う(ステ
ップSPc25)。これらの処理の後はステップSpc26におい
てレジスタiをインクリメントし、ステップSPc27を介
してステップSPc22に移り上記動作を繰り返す。
一方、ステップSPc22の判定が「YES」の場合は、新たな
発音処理(ステップSPc24,25)を行わず、ステップSPc2
6,SPc27を介してステップSPc22に至り、上記処理を繰り
返す。このよに新たな発音処理が行われないと、発音チ
ャンネルchiは前回の音をそのまま継続して発し続け
る。
そして、ステップSPc22〜SPc26の処理が3回行われる
と、ステップSPc27の判定が「NO」となってリターンす
る。
ここで、第1表に示した例において上記処理が行われる
と、i=0とi=2のときにおいてOKEYi=KEYiとなる
ので、発音チャンネルch0とch2については新たな発音処
理が行われず、前回の音であるD音とG音が継続し
て発せられる。また、発音チャンネルch1については、
ステップSpc24において新たにE音の発音が為され
る。この結果、第17図に示すように、D音とG
は、タイ記号によりつながれた音符として発音される。
以上がタイキーオンの処理である。
D:総合的動作例 第18図は、パターンデータの一例である。そして、上記
パターンデータでテーブル#0が選択され、かつ、コー
ドタイプがCメジャーである場合の演奏例を第19図に示
す。この図に示すように、1拍目の先頭タイミング(CL
K=「0」)においては、発音態様指示データPD
(9)であるから、第5図に示すようにキーオン態様
がディレイキーオンで、音程態様番号TBLNOが「0」で
ある。したがって、演奏は第19図に示すようにE音,G
音,C音のディレイキーオンとなる。そして、レジス
タCLKが「1」〜「10」となるタイミングにおいては発
音態様指示データPDが(F)であるから何もしない。
レジスタCLKが「11」となるタイミングにおいては、発
音態様指示データPDが(0)となるため、上記各音を
消音する。この結果、第19図に示すようにE音,G
音,C音が4分音符の長さで発音される。そして、レ
ジスタCLKが「12」となるタイミングにおいては、発音
態様指示データPDが(1)であるからノーマルキーオ
ンで音程態様番号TBLNO(0」が選択される。したがっ
て、このタイミングにおいては、E音,G音,C音が
発せられる。そして、レジスタCLKが「17」となるタイ
ミングの発音態様指示データが(0)となっているか
ら上記各音はこの時点で消音される。この結果、上記各
音は、8分音符の長さで発音される。次に、レジスタCL
Kが「18」となるタイミングの発音態様指示データPDは
(A)であるから、ディレイキーオンで音程態様番号
TBLNOが「1」となる。この結果、Cthのコードの発
音となり(第4図参照)、E音,G音,D音が発音さ
れる。そして、レジスタCLKが「24」となるタイミング
の発音態様指示データPDが(5)となっているから、
第5図に示すようにキーオン態様がタイキーオンで音程
態様番号TBLNOが「0」となる。この結果、E音,G
音,C音の発音となり、かつ、E音,G音がタイ記号
によりつながれた発音となる。また、2拍目の最終タイ
ミング(CLK=「23」)の発音態様指示データが(0)
となっていないから3拍目のC音は消音を介さずに
発音され(キーコード入れ換えの発音)、スラー記号に
よってつながれた音の発音となる。次に、レジスタCLK
が「29」となるタイミングニおいては消音が指示され、
以後4拍目の先頭タイミングまで発音態様指示データPD
が(F)となっている。これにより、第19図に示すよ
うに8分休符が表現される。そして、4拍目の先頭タイ
ミングと、4拍目の1/2のタイミングにおいて発音態
様指示データPDが(3)H,(1)となっているので、
♭E音、♭G音,♭C音(=B音)およびE
音,G音,C音がそれぞれ8分音符の長さで発音され
る。
(3:実施例の効果) 以上のようにこの実施例においては、発音態様指示デー
タにより、発音タイミングの指示と音程変更の指示を行
うようにしたので、パターンデータの記憶量が極めて少
ないにもかかわらず変化に富んだ演奏を行うことができ
る。すなわち、発音態様指示データが4ビットで構成さ
れているので、1小節当たり24バイトの容量で特定リズ
ムに対する特定のコードタイプの伴奏データを構成する
ことができ、コードタイプ毎、およびリズム種類毎にリ
ズムパターンデータを設けても、記憶容量は少なくて済
む。
(4:実施例の変形) 上記実施例は以下のように変形することが可能である。
上述した実施例は、主に伴奏鍵盤の演算について説明
したが、メロディ鍵盤を付加し、メロディ演奏を合わせ
て行うよう構成してよい。
自動伴奏形態として、単独の和音演奏を示したが、ベ
ース音や自動アルペジオ演算等の他のパートと組み合わ
せることも可能である。さらに、上記実施例では根音自
体の発音は行わなかったが、根音も合わせて発音するよ
うに構成してもよい。
ディレイキーオンにおいて、専用のタイマ8によって
ディレイ時間の計時を行ったが、テンポクロックTPを用
いてディレイ時間を計時してもよい。
テンポの分解能や拍子は、実施例においては「48」お
よび4/4拍子であったが、これに限定されず、他の任
意の分解能および拍子を設定することも可能であり、ま
た、組み合わせて構成することも可能である。
実施例においては、テーブルが複数設けられていた
が、これは1つでもよい。この場合は、テーブルセレク
トデータTBSELは不要となる。
音程の変化は、実施例においては、発音態様指示デー
タPDによってテーブル内の音程態様番号TBLNOを選択す
ることによって行ったが、テーブルによらず演算で行っ
てもよい。
例えば、半音下げる変化(第5図の音程態様番号2)な
どは、機械的にキーコードの数値を1減算するような処
理を行えばよい。
「発明の効果」 以上説明したように、この発明によれば、クロック信号
を発生するクロック発生手段と、前記クロック信号に基
づく各演奏タイミングにおいての発音の指示および発音
する和音の音程態様を指示するパターンデータデータを
記憶するパターンデータ記憶手段と、演奏すべき和音を
指定する和音指定手段と、前記音程態様と和音の種類と
に応じて複数音の音高情報を記憶する音程態様記憶手段
と、前記クロック信号に基づいて前記パターンデータを
順次読み出しこの読みだしたパターンデータによって発
音が指示されたとき、指示に対応する音程態様と前記和
音指定手段によって指示された和音の種類にしたがって
前記音声態様記憶手段から複数の音高情報を読み出し、
該複数の音高情報に基づいて発音すべき和音を構成する
音データ作成手段と、この音データイ作成手段から供給
される各音データに基づいて和音発生を行う楽音発生手
段とを具備したので、少ないデータ量で、しかも変化に
富んだ演奏が可能となり、伴奏音のためのデータを記憶
するメモリの容量を、従来のものに比較し大幅に節約す
ることができる。
【図面の簡単な説明】
第1図はこの発明の一実施例の構成を示すブロック図、 第2図は同実施例で用いるキーコードとキーとの関係を
示す図、 第3図は同実施例におけるリズムパターンデータのフォ
ーマットを示す図、 第4図は自動伴奏の和音の音程を決定するテーブルの内
容を示す図、 第5図は発音態様指示データの機能を示す図、 第6図は同実施例のメインルーチンを示すフローチャー
ト、 第7図、第8図、第11図、第12図、第13図、第14図は各
々同実施例のサブルーチンを示すフローチャート、 第9図は自動伴奏中にキーイベントがあった場合の発音
処理を示すための図、 第10図は発音態様指示データの一例を示す図、 第15図はディレイキーオン処理を説明するためのタイミ
グ図、 第16図はディレイキーオン処理における禁止処理を示す
ためのタイミグ図、 第17図はタイキーオン処理を説明するための楽譜、 第18図は総合動作例における発音態様指示データの一例
を示す図、 第19図は第18図に示す発音態様指示データを用いた場合
の演奏例を示す楽譜である。 1……鍵盤回路、2……CPU、3……プログラムメモ
リ、4……ワーキングメモリ、5……リズムパターンメ
モリ、6……テーブルメモリ、7……テンポクロック発
生器、8……タイマ、12……トーンジェネレータ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】クロック信号を発生するクロック発生手段
    と、 前記クロック信号に基づく各演奏タイミングにおいての
    発音の指示および発音する和音の音程態様を指示するパ
    ターンデータデータを記憶するパターンデータ記憶手段
    と、 演奏すべき和音を指定する和音指定手段と、 前記音程態様と和音の種類とに応じて複数音の音高情報
    を記憶する音程態様記憶手段と、 前記クロック信号に基づいて前記パターンデータを順次
    読み出し、この読みだしたパターンデータによって発音
    が指示されたとき、指示に対応する音程態様と前記和音
    指定手段によって指示された和音の種類にしたがって前
    記音声態様記憶手段から複数の音高情報を読み出し、該
    複数の音高情報に基づいて発音すべき和音を構成する音
    データ作成手段と、 この音データ作成手段から供給される音データに基づい
    て和音発生を行う楽音発生手段と、 を具備することを特徴とする自動伴奏装置。
JP62333219A 1987-12-29 1987-12-29 自動伴奏装置 Expired - Lifetime JPH0664471B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62333219A JPH0664471B2 (ja) 1987-12-29 1987-12-29 自動伴奏装置
US07/291,110 US4939974A (en) 1987-12-29 1988-12-28 Automatic accompaniment apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62333219A JPH0664471B2 (ja) 1987-12-29 1987-12-29 自動伴奏装置

Publications (2)

Publication Number Publication Date
JPH01177088A JPH01177088A (ja) 1989-07-13
JPH0664471B2 true JPH0664471B2 (ja) 1994-08-22

Family

ID=18263647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62333219A Expired - Lifetime JPH0664471B2 (ja) 1987-12-29 1987-12-29 自動伴奏装置

Country Status (1)

Country Link
JP (1) JPH0664471B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7400798B2 (ja) * 2021-12-15 2023-12-19 カシオ計算機株式会社 自動演奏装置、電子楽器、自動演奏方法、及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5834496A (ja) * 1981-08-24 1983-02-28 ヤマハ株式会社 電子楽器の自動移調装置
JPS5968687A (ja) * 1982-10-13 1984-04-18 Hitachi Heating Appliance Co Ltd 超音波物体検出装置

Also Published As

Publication number Publication date
JPH01177088A (ja) 1989-07-13

Similar Documents

Publication Publication Date Title
JP2576700B2 (ja) 自動伴奏装置
JP3829439B2 (ja) アルペジオ発音装置およびアルペジオ発音を制御するためのプログラムを記録したコンピュータ読み取り可能な媒体
US4939974A (en) Automatic accompaniment apparatus
JPH0782325B2 (ja) モチーフ演奏装置
US4674383A (en) Electronic musical instrument performing automatic accompaniment on programmable memorized pattern
US4619176A (en) Automatic accompaniment apparatus for electronic musical instrument
JPH0727382B2 (ja) 自動伴奏装置
JPH0664471B2 (ja) 自動伴奏装置
JPH0769698B2 (ja) 自動伴奏装置
JPH067331B2 (ja) 自動伴奏装置
JP2714455B2 (ja) モチーフ演奏装置及びモチーフ演奏方法
JP3296182B2 (ja) 自動伴奏装置
JPH0683355A (ja) 自動伴奏装置
JP2705421B2 (ja) 自動伴奏装置
JP3120806B2 (ja) 自動伴奏装置
JPS61292689A (ja) 自動伴奏装置付き電子楽器
JP3055352B2 (ja) 伴奏パターン作成装置
JPH0769697B2 (ja) 自動伴奏装置
JP3082294B2 (ja) 伴奏音信号形成装置
JP2848322B2 (ja) 自動伴奏装置
JP3289037B2 (ja) モチーフ演奏装置及びモチーフ演奏方法
JP2619237B2 (ja) 電子楽器の自動伴奏装置
JP2988371B2 (ja) 自動伴奏装置
JP2576296B2 (ja) 電子楽器の自動伴奏装置
JPH0320794A (ja) 電子楽器