JPH0572596B2 - - Google Patents
Info
- Publication number
- JPH0572596B2 JPH0572596B2 JP57204000A JP20400082A JPH0572596B2 JP H0572596 B2 JPH0572596 B2 JP H0572596B2 JP 57204000 A JP57204000 A JP 57204000A JP 20400082 A JP20400082 A JP 20400082A JP H0572596 B2 JPH0572596 B2 JP H0572596B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- timing
- sound
- note
- 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
Links
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/36—Accompaniment arrangements
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/155—Musical effects
- G10H2210/161—Note sequence effects, i.e. sensing, altering, controlling, processing or synthesising a note trigger selection or sequence, e.g. by altering trigger timing, triggered note values, adding improvisation or ornaments or also rapid repetition of the same note onset
- G10H2210/185—Arpeggio, i.e. notes played or sung in rapid sequence, one after the other, rather than ringing out simultaneously, e.g. as a chord; Generators therefor, i.e. arpeggiators; Discrete glissando effects on instruments not permitting continuous glissando, e.g. xylophone or piano, with stepwise pitch variation and on which distinct onsets due to successive note triggerings can be heard
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/155—Musical effects
- G10H2210/321—Missing fundamental, i.e. creating the psychoacoustic impression of a missing fundamental tone through synthesis of higher harmonics, e.g. to play bass notes pitched below the frequency range of reproducing speakers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S84/00—Music
- Y10S84/12—Side; rhythm and percussion devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S84/00—Music
- Y10S84/22—Chord organs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Electrophonic Musical Instruments (AREA)
Description
この発明は、ベース音、アルペジヨ音等の伴奏
音を自動的に発生することのできる電子楽器の自
動伴奏装置に関し、和音等の押鍵がなされるたび
にその押鍵状態に関連して発音する可能性のある
ベース・アルペジヨキーデータを形成してメモリ
に格納しておくことによりベース音、アルペジヨ
音等の発生を時分割的に制御する場合にリズムに
同期したベース・アルペジヨ音発生を可能にした
ものである。 従来、自動ベース装置としては、和音押鍵に基
づいて和音の根音及び種類を検出する一方、ベー
スパターンメモリからテンポクロツク信号に基づ
いて根音に対するインターバル値を示すインター
バルデータを読出し、根音を示す根音データに該
インターバルデータを加算してベースキーデータ
を形成した後検出和音取水に応じて該ベースキー
データの指示音高を適宜修正し、この音高修正処
理を経たベースキーデータに応じてベース音を発
生するようにしたものが提案されている。また、
自動アルペジヨ装置としては、和音押鍵がなされ
るたびに押鍵和音(例えばC,F,G)に対応し
た押鍵データをメモリに書込み、一定周期(例え
ば16分音符)毎のパルスをトリガ信号として低音
側から高音側に順次に発音すべき押鍵データをサ
ーチし、このサーチで得られる押鍵データに適宜
オクターブ処理等を施してアルペジヨ音を発生さ
せるようにしたものが提案されている。 上記した自動ベース装置及び自動アルペジヨ装
置はベース音発生とアルペジヨ音発生とを並行し
て行なうえ回路システムに用いるには有効なのも
のであるが、ベース音発生とアルペジヨ音発生と
を時分割的に処理するシステム、特にマイクロコ
ンピユータを用いて時分割処理するシステムに用
いるには、演算処理(ベース音発生ではキーデー
タ形成及び音高修正処理、アルペジヨ音発生では
オクターブ処理等)に時間がかかりすぎるためリ
ズムに同期してベース音及びアルペジヨ音を発生
するのが困難である欠点を有する。すなわち、通
常の電子楽器では、和音、ベース音、アルペジヨ
音等はリズム音に同期して発生されるのが好まし
いが、各音発生のための演算処理に時間がかかり
すぎると特定のリズムタイミングはベース音、ア
ルペジヨ音等が遅れて発生されることになり、好
ましくない。 このような問題点を解決するには、高速演算可
能なコンピユータを用いればよいが、このような
コンピユータを電子楽器に組込むのは、コスト、
スペース等の面で非現実的である。 また、別の自動伴奏装置としては、押鍵検出時
又はパターン変更検出時にパターンメモリら例え
ば6音の分散和音の組合せパターン(具体的には
オクターブ指定データ)を読み出しておき、押鍵
での押鍵状態と読み出されているオクターブ指定
データとに基づいて6音分のキーデータを形成し
てメモリに書込み、このメモリのキーデータを発
生すべきタイミングに対応して順次に出力して自
動的に分散和音信号を発生させるようにしたもの
が知られている(例えば特開昭57−32496号公報
参照)。 このような自動伴奏装置によると、前もつてキ
ーデータを形成、確保しておくので、個々の音の
発音時には演算処理が不要となる利点があるが、
キーデータを形成する際に伴奏パターン中のオク
ターブ指定データを基礎にしており、しかも伴奏
パターンでは発音タイミングを順番に指定するだ
けであるのが、押鍵状態に基づいてアルペジヨ音
として発音する可能のある多数の音のうちオクタ
ーブ指定データで指定される例えば6音のみが順
番に発音されるだけである。従つて、発音パター
ンが定型化してしまい、演奏が単調になる。そこ
で、変化に富んだ伴奏音を発生させるには演奏進
行に従つて適宜パターンを変更する必要が生じ、
パターン変更操作が面倒となる。 この発明の目的は、マクロコンピユータ等の低
速・小型コンピユータによる時分割処理を採用し
てもリズムとの十分な同期関係においてベース
音、アルペジヨ音等の伴奏を発生しうる共に面倒
なパターン変更操作なしでも変化に富んだ伴奏音
発生をなしうる新規な自動伴奏装置を提供するこ
とにある。 この発明による第1の自動伴奏装置は、 (a) 鍵盤と、 (b) 複数のキーデータを記憶可能な第1の記憶手
段と、 (c) 前記鍵盤で押鍵がなされるたびにその押鍵状
態に基づいて伴奏音してい発音する可能性のあ
る互いに異なる複数の音の音高をそれぞれ示す
複数のキーデータを形成して前記第1の記憶手
段に発音順序とは独立な所定順序でそれぞれ書
込むデータ形成・書込手段と、 (d) テンポクロツク信号を発生する手段と、 (e) 順次に発音すべき伴奏音につちて各伴奏音毎
にその音を前記第1の記憶手段内の前記所定順
序中での順位で指定する音指定データと該音の
発音タイミングを示すタイミングデータとを含
む伴奏パターンデータを記憶した第2の記憶手
段と、 (f) 前記テンポクロツク信号に基づいて前記第2
の記憶手段からタイミングデータを順次に読出
すと共に該読出しのために該タイミングデータ
と読出タイミングとを比較し、発音すべきタイ
ミングと判定されるたびに該タイミングデータ
に関連した音指定データに基づいて前記第1の
記憶手段から該音指定データの示す順次のキー
データを読出す読出手段と、 (g) 前記第1の記憶手段から読出されるキーデー
タに応じて伴奏音信号を発生する伴奏音発生手
段とをそなえ、 前記データ形成・書込手段では前記伴奏パタ
ーンデータ中の音指定データとは独立にキーデ
ータを形成する ことを特徴とするものである。 また、この発明による第2の自動伴奏装置は、 (a) 鍵盤と、 (b) この鍵盤での押鍵状態に基づいて和音の根音
及び種類を検出する和音検出手段と、 (c) この和音検出手段で検出可能な各根音毎にキ
ーデータ群を記憶した第1の記憶手段であつ
て、各キーデータ群が、対応する根音に関して
ベース音として発音する可能性のある互いに異
なる複数の音の音高をそれぞれ示す複数のキー
データを含んでいるものと、 (d) 複数のキーデータを記憶可能な第2の記憶手
段と、 (e) 前記和音検出手段で和音の根音及び種類が検
出されるたびに前記第1の記憶手段から検出根
音に対応しキーデータ群を読出して前記第2の
記憶手段に転送し、該キーデータ群に属する複
数のキーデータを該第2の記憶手段に発音順序
とは独立な所定順序でそれぞれ書込む転送手段
と、 (f) 前記和音検出手段で和音の根音及び種類が検
出されるたびに検出和音種類がベース音高修正
を要する特定の和音種類に該当するか判定し、
該当すると判定されたときは前記第2の記憶手
段に記憶されるキーデータ群内の予め定められ
たキーデータについてその指示音高を修正する
音高修正手段と、 (g) テンポクロツク信号を発生する手段と、 (h) 順次に発音すべきベース音について各ベース
音毎にその音を前記第2の記憶手段内の前記所
定順序中での順位で指定する音指定データと該
音の発音タイミングを示すタイミングデータと
を含むベースパターンデータを記憶した第3の
記憶手段と、 (i) 前記テンポクロツク信号に基づいて前記第3
の記憶手段からタイミングデータを順次に読出
すと共に各読出しのたびに該タイミングデータ
と読出タイミングとを比較し、発音すべきタイ
ミングと判定されたときは該タイミングデータ
に関連した音指定データに基づいて前記第2の
記憶手段から該音指定データの示す順位のキー
データを読出す読出手段と、 (j) 前記第2の記憶手段から読出されるキーデー
タに応じてベース音信号を発生するベース音発
生手段と をそなえたものでる。 上記した第1の自動伴奏装置によれば、押鍵が
なされるたびにキーデータを形成、確保しておく
ので、テンポクロツク信号及び伴奏パターンデー
タに基づく発音処理の際には、従来のような時間
のかかる演算処理が不要となり、低速・小型コン
ピユータを用いた場合にもリズムとの十分な同期
関係においてベース音、アルペジヨ音等の伴奏音
は発生することができる。その上、キーデータを
伴奏パターンとは独立に形成して記憶すると共
に、伴奏パターンには発音タイミング毎にキーデ
ータの順位指定を可能にする音指定データを含ま
せるようにしたので、伴奏パターンに制御されず
に発音する可能性のある多数のキーデータを用意
することができ、伴奏パターンとしては、発音タ
イミング毎に多数のキーデータのうち任意のもと
のを指定して変化に富んだパターンを組める。従
つて、面倒なパターン変更操作なしでも変化に富
んだ伴奏音発生が可能となる。 また、上記した第2の自動伴奏装置によれば、
第1の自動伴奏装置と同様の作用効果に加えて、
次のような作用効果も得られる。すなわち、キー
データの形成・書込処理は、予め形成された複数
群のキーデータのうちから1群のキーデータを選
択して書込むだけの簡単な処理になる。また、発
音処理の際には、音高修正処理が不要であり、リ
ズムとの十分な同期関係において検出和音種類に
適合したベース音を発生させることができる。 以下、添付図面に示す実施例についてこの発明
を詳述する。 第1図は、この発明の一実施例による電子楽器
を示すもので、この電子楽器はマイクロコンピユ
ータの助けによつてメロデイ音、和音、ベース
音、アルペジヨ音、リズム音等の発生が制御され
るようになつている。 鍵盤部10は上鍵盤(UK)、下鍵盤(LK)及
びペダル鍵盤(PK)を含んでおり、パネルスイ
ツチ(SW)回路12はパネル面に配置された多
数の操作子、例えばUK・LK音色選択スイツチ、
リズムスタート・ストツプスイツチ、リズム選択
スイツチ、テンポボリユーム、ウオーキングベー
ス選択スイツチ、アルペジヨ選択スイツチ、モー
ド選択スイツチ等を含んでいる。 鍵盤・パネルインターフエース14はバス16
を介して中央処理装置(CPU)18と結合して
おり、CPU18はインターフエース14を介し
て鍵盤部10の各鍵盤の鍵及びパネルスイツチ回
路12の各種スイツチ等を走査して鍵状態情報及
びスイツチ状態情報を検出するようになつてい
る。 CPU18の楽音発生制御動作はROM(リー
ド・オンリイ・メモリ)からなるプログラムメモ
リ20に記憶されたプログラムによつて制御され
るが、その詳細については後述する。 ROMからなる記憶テーブル22は和音検出テ
ーブル22a、ベース音テーブル22b及び符長
テーブル22cを含むもので、和音検出テーブル
22aはフインガード・コード(FC)モードと、
シングル・フインガー(SF)モードとで別々に
LK押鍵状態に対応した和音名データを記憶して
いる。ここで、和音名データは和音の根音に対応
したトニツクデータと、メジヤ、マイナ等の和音
タイプに対応した和音タイプデータとの組合せか
らなり、FCモードの場合はLKでの実際の和音押
鍵に対応して根音及び和音タイプが決定され、
SFモードの場合はLKで押された鍵のうちの最高
(又は最低)鍵に対応して根音が決定されると共
に根音鍵以外の鍵の状態(例えば白鍵か黒鍵かの
鍵種又は押鍵数)に応じて和音タイプを決定する
ようになつている。なお、SFモードの場合の和
音タイプ指定はPKあるいは専用の和音タイプ指
定スイツチで行なうようにしてもよい。 ベース音テーブル22bは第2図に示すように
トニツクC,C#,D……Bの各々に対応した1
2の記憶部を有し、各記憶部にはトニツクCなら
ばC2,D2,E2……D4というように、またトニツ
クC#ならばC2#,D2#,F2,F2#,G2#,A2
#,C2#……というように発音可能性のあるダ
イアトニツクノート16個分のキーコードデータが
記憶されている。 符長テーブル22cは各種の音符の時間長を表
わす時間長データが記憶されているもので、後述
のパターンデータ中に含まれる音長データが示す
値を相対アドレスとして時間長データが読出され
るようになつている。 ROMからなるパターンメモリ24はベースパ
ターンメモリ24a、和音パターンメモリ24
b、リズムパターンメモリ24c及びアルペジヨ
パターンメモリ24dを含むもので、ベースパタ
ーンメモリ24a及びアルペジヨパターンメモリ
24dは第3図に示すようにマーチ、スイング…
…ワルツ等のリズム種類毎にパターンデータが記
憶されている。 すなわち、ベースパターンデータは一例をマー
チに関して示すように1音分が2バイトのデータ
からなり、1バイト目が2ビツトの音量データ
ACCと、1ビツトのミユートデータMと、不使
用(“0”)の1ビツトと、4ビツトの発音タイミ
ングデータTMGとを含み、2バイト目が4ビツ
トの音程データと、4ビツトの音長データとを含
んでいる。 ここで、音量データACCはベース音にアクセ
ントを付加するためのものであり、ミユートデー
タMはベース音の音色やサステイン時間を制御し
て若干鈍い感じのするミユート音を発生させるた
めのものである。発音タイミングデータTMGは
1拍(4分音符1個に対応)内の0〜11のいずれ
かの発音タイミングを示すもので、タイミング値
0〜11は後述する拍内タイミングカウンタのカウ
ント値0〜11に対応している。音程データは後述
するベース音バツフア内の0〜15のいずれかのア
ドレスを指定することによつて発音すべきベース
音に対応するキーデータの読出しを可能にするも
のである。音長データは発音すべきベース音の立
上りからサステイン開始時までのオン時間(PK
の場合のキーオン時間に対応)を音符種別に対応
する数値で表わすもので、この数値は符長テーブ
ル22cのアドレスに対応している。すなわち、
音長データそれ自体はベース音のオン時間がどの
音符に対応しているか示すだけであるから、ベー
ス音のオン時間の長さ(音符長)を知るには音長
データに基づいて符長テーブル22cの時間長デ
ータを読出す必要がある。 第3図に示すように2拍内で発音すべきベース
音が複数ある場合には各ベース音に対応する2バ
イトデータが順次に配置され、その後に拍エンド
フラグデータ(16進で「0D」)が配置される。そ
して、このような配置は必要とする拍数分につい
て同様になされ、最後にリターンフラグデータ
(16進で「0F」)が配置される。 アルペジヨパターンデータは一例をマーチに関
して示すように1音分が2バイトのデータからな
り、1バイト目が1ビツトの音量データACCと、
2ビツトのチヤンネルデータCHと、1ビツトの
ミユートデータMと、4ビツトの発音タイミング
データTMGとを含み、2バイト目が4ビツトの
音程データと、4ビツトの音長データとを含んで
いる。 ここで、音量データACCと、ミユートデータ
Mと、発音タイミングデータTMGと、音程デー
タと、音長データとは先にベースパターンデータ
について述べたものとそれぞれ同様の機能を有す
るものである。チヤンネルデータCHは4つの楽
音形成チヤンネルのうちのいずれかを指定するた
めのものである。なお、2バイトデータ、拍エン
ドフラグデータ(16進で「0D」)及びリターンフ
ラグデータ(16進で「0F」)の配置の仕方も前述
のベースパターンデータの場合と同様である。 和音パターンメモリ24bは発音タイミングデ
ータと、音量、音色等のため発音制御データと、
音長データとを含む和音パターンデータを記憶し
たもので、データ配置の仕方は前述のベースパタ
ーンデータの場合と同様である。また、リズムパ
ターンデータメモリ24cは発音タイミングデー
タと、楽器種類指定データと、音量、音色等のた
めの発音制御データとを含むリズムパターンデー
タを記憶したもので、データ配置の仕方が前述の
ベースパターンの場合と同様である。 RAM(ランダム・アクセス・メモリ)からな
る伴奏音バツフア26は和音バツフア26a、ベ
ース音バツフア26b及びアルペジヨ音バツフア
26cを含むもので、第4図に示すように和音バ
ツフア26aは4音分の和音キーコードデータを
格納しうるようになつており、ベース音バツフア
26bは16音分のベースキーコードデータを各納
しうるようになつてとり、アルペジヨ音バツフア
26cは16音分のアルペジヨキーコードデータを
格納しうるようになつている。 RAMからなる発音鋳ベース・アルペジヨデー
タメモリ28は、第5図に示すようにベース用の
3つの記憶部BASRAM0〜BASRAM2と、アル
ペジヨ用の16の記憶部ARPRAM0〜ARPRAM15
とを含むもので、後述のベース・アルペジヨ発音
処理(第14〜17図)の際に利用されるもので
ある。BASRAM0はオフタイミングデータを、
BASRAM1はキーコードデータを、BASRAM2
は発音制御データ(音量データACC及びミユー
トデータM)をそれぞれ記憶するためのものであ
る。 また、ARPRAM0〜ARPRAM3,ARPRAM4
〜ARPRAM7,ARPRAM8〜ARPRAM11,
ARPRAM12〜ARPRAM15はそれぞれ第1、第
2、第3、第4図の音楽形成チヤンネルに対応し
て設けられたもので、ARPRAM0,ARPRAM1,
ARPRAM2,ARPRAM3はそれぞれ第1の音楽
形成チヤンネルのためにオンキーコードデータ、
オフタイミングデータ、オフキーコードデータ、
発音制御データ(音量データACC、ミユートデ
ータM及びチヤンネルデータCH)を記憶するよ
うになつており、このような記憶分担は第2の楽
音形成チヤンネルのためのARPRAM4〜
ARPRAM7、第3の楽音形成チヤンネルのため
のARPRAM8〜ARPRAM11、第4の楽音形成チ
ヤンネルのためのARPRAM12〜ARPRAM15に
ついてもそれぞれ同様である。 RAMからなるワーキングエリア30は各種の
フラグ、レジスタ等を含むもので、この発明の実
施に関係するレジスタ配置は第6図にようになつ
ている。すなわち、TONICは検出和音の根音に
対応したトニツクデータを書込むためのレジス
タ、TYPEは検出和音のタイプに対応した和音タ
イプデータを書込むためのレジスタ、
RHYROM,CHDROM,BASROM,
ARPROMはそれぞれリズムパターンメモリ24
c、和音パターンメモリ24b、ベースパターン
メモリ24a、アルペジヨパターンメモリ24d
のパターン先頭アドレスを選択されたリズム種類
に応じてセツトするためのレジスタである。 RHYRUNはリズムスタート時にセツトされ、
リズムストツプ時にリセツトされるリズムランフ
ラグ、TMPCNTは1拍内でカウント値が0〜11
に変化する拍内タイミングカウンタ、TIMING
は1小節内でカウント値が0〜35(3拍子の場合)
又は0〜47(4拍子の場合)に変化する小節内タ
イミングカウンタ、TMPMAXはカウンタ
TININGの最大タイミング値36(3拍子の場合)
又は48(4拍子の場合)がセツトされるレジスタ
である。なお、3拍子か4拍子かは選択されるリ
ズム種類に応じて決まる。 RHHEND,CDHEND,BAHEND,
ARHENDはそれぞれリズム、和音、ベース、ア
ルペジヨのための拍エンドフラグであり、対応す
る拍エンドフラグデータの検出時にセツトされる
ものである。また、RHPNT,CDPNT,
BAPNT,ARPNTはそれぞれリズムパターンメ
モリ24c、和音パターンメモリ24b、ベース
パターンメモリ24a、アルペジヨパターンメモ
リ24dからデータを読出す際に利用されるアド
レスポインタであり、各パターンの先頭からの相
対アドレスを示すものである。 ARPCNTは発音すべきアルペジヨノートの数
がセツトされるレジスタである。なお、この実施
例ではアルペジヨ用楽音形成チヤンネルが4つ設
けてあるので、発音すべきアルペジヨノートの数
は4つ以内に制限される。 OCTDWはアルペジヨ音セツトの処理(第1
2図)においてダウンすべきオクターブ数がセツ
トされるレジスタ、PKWONはウオーキングベ
ース選択スイツチの状態フラグ、ARPONはアル
ペジヨ選択スイツチの状態フラグ、ARCHはア
ルペジヨ変換処理(第15図)において楽音形成
チヤンネルを指定するデータ(1チヤンネルなら
ば16進で「00」、2チヤンネルならば16進で
「04」、3チヤンネルならば16進で「08」、4チヤ
ンネルならば16進で「0C」)が書込まれるレジス
タ、LKCNTはLKで押された鍵の数がセツトさ
れるレジスタ、LKHLBFはLKで押された鍵に対
応するキーコードデータを高い方から順に並べて
10音分書込可能なバツフアレジスタである。な
お、ワーキングエリア30内には、上記した以外
にも各種のレジスタが含まれている。 ここで、キーコードの決め方を述べておくと、
キーコードKCはオクターブコードOCとノートコ
ードNCとの和で表わされる。オクターブコード
OC及びノートコードNCはそれぞれ第1表及び第
2表に示すようになつている。
音を自動的に発生することのできる電子楽器の自
動伴奏装置に関し、和音等の押鍵がなされるたび
にその押鍵状態に関連して発音する可能性のある
ベース・アルペジヨキーデータを形成してメモリ
に格納しておくことによりベース音、アルペジヨ
音等の発生を時分割的に制御する場合にリズムに
同期したベース・アルペジヨ音発生を可能にした
ものである。 従来、自動ベース装置としては、和音押鍵に基
づいて和音の根音及び種類を検出する一方、ベー
スパターンメモリからテンポクロツク信号に基づ
いて根音に対するインターバル値を示すインター
バルデータを読出し、根音を示す根音データに該
インターバルデータを加算してベースキーデータ
を形成した後検出和音取水に応じて該ベースキー
データの指示音高を適宜修正し、この音高修正処
理を経たベースキーデータに応じてベース音を発
生するようにしたものが提案されている。また、
自動アルペジヨ装置としては、和音押鍵がなされ
るたびに押鍵和音(例えばC,F,G)に対応し
た押鍵データをメモリに書込み、一定周期(例え
ば16分音符)毎のパルスをトリガ信号として低音
側から高音側に順次に発音すべき押鍵データをサ
ーチし、このサーチで得られる押鍵データに適宜
オクターブ処理等を施してアルペジヨ音を発生さ
せるようにしたものが提案されている。 上記した自動ベース装置及び自動アルペジヨ装
置はベース音発生とアルペジヨ音発生とを並行し
て行なうえ回路システムに用いるには有効なのも
のであるが、ベース音発生とアルペジヨ音発生と
を時分割的に処理するシステム、特にマイクロコ
ンピユータを用いて時分割処理するシステムに用
いるには、演算処理(ベース音発生ではキーデー
タ形成及び音高修正処理、アルペジヨ音発生では
オクターブ処理等)に時間がかかりすぎるためリ
ズムに同期してベース音及びアルペジヨ音を発生
するのが困難である欠点を有する。すなわち、通
常の電子楽器では、和音、ベース音、アルペジヨ
音等はリズム音に同期して発生されるのが好まし
いが、各音発生のための演算処理に時間がかかり
すぎると特定のリズムタイミングはベース音、ア
ルペジヨ音等が遅れて発生されることになり、好
ましくない。 このような問題点を解決するには、高速演算可
能なコンピユータを用いればよいが、このような
コンピユータを電子楽器に組込むのは、コスト、
スペース等の面で非現実的である。 また、別の自動伴奏装置としては、押鍵検出時
又はパターン変更検出時にパターンメモリら例え
ば6音の分散和音の組合せパターン(具体的には
オクターブ指定データ)を読み出しておき、押鍵
での押鍵状態と読み出されているオクターブ指定
データとに基づいて6音分のキーデータを形成し
てメモリに書込み、このメモリのキーデータを発
生すべきタイミングに対応して順次に出力して自
動的に分散和音信号を発生させるようにしたもの
が知られている(例えば特開昭57−32496号公報
参照)。 このような自動伴奏装置によると、前もつてキ
ーデータを形成、確保しておくので、個々の音の
発音時には演算処理が不要となる利点があるが、
キーデータを形成する際に伴奏パターン中のオク
ターブ指定データを基礎にしており、しかも伴奏
パターンでは発音タイミングを順番に指定するだ
けであるのが、押鍵状態に基づいてアルペジヨ音
として発音する可能のある多数の音のうちオクタ
ーブ指定データで指定される例えば6音のみが順
番に発音されるだけである。従つて、発音パター
ンが定型化してしまい、演奏が単調になる。そこ
で、変化に富んだ伴奏音を発生させるには演奏進
行に従つて適宜パターンを変更する必要が生じ、
パターン変更操作が面倒となる。 この発明の目的は、マクロコンピユータ等の低
速・小型コンピユータによる時分割処理を採用し
てもリズムとの十分な同期関係においてベース
音、アルペジヨ音等の伴奏を発生しうる共に面倒
なパターン変更操作なしでも変化に富んだ伴奏音
発生をなしうる新規な自動伴奏装置を提供するこ
とにある。 この発明による第1の自動伴奏装置は、 (a) 鍵盤と、 (b) 複数のキーデータを記憶可能な第1の記憶手
段と、 (c) 前記鍵盤で押鍵がなされるたびにその押鍵状
態に基づいて伴奏音してい発音する可能性のあ
る互いに異なる複数の音の音高をそれぞれ示す
複数のキーデータを形成して前記第1の記憶手
段に発音順序とは独立な所定順序でそれぞれ書
込むデータ形成・書込手段と、 (d) テンポクロツク信号を発生する手段と、 (e) 順次に発音すべき伴奏音につちて各伴奏音毎
にその音を前記第1の記憶手段内の前記所定順
序中での順位で指定する音指定データと該音の
発音タイミングを示すタイミングデータとを含
む伴奏パターンデータを記憶した第2の記憶手
段と、 (f) 前記テンポクロツク信号に基づいて前記第2
の記憶手段からタイミングデータを順次に読出
すと共に該読出しのために該タイミングデータ
と読出タイミングとを比較し、発音すべきタイ
ミングと判定されるたびに該タイミングデータ
に関連した音指定データに基づいて前記第1の
記憶手段から該音指定データの示す順次のキー
データを読出す読出手段と、 (g) 前記第1の記憶手段から読出されるキーデー
タに応じて伴奏音信号を発生する伴奏音発生手
段とをそなえ、 前記データ形成・書込手段では前記伴奏パタ
ーンデータ中の音指定データとは独立にキーデ
ータを形成する ことを特徴とするものである。 また、この発明による第2の自動伴奏装置は、 (a) 鍵盤と、 (b) この鍵盤での押鍵状態に基づいて和音の根音
及び種類を検出する和音検出手段と、 (c) この和音検出手段で検出可能な各根音毎にキ
ーデータ群を記憶した第1の記憶手段であつ
て、各キーデータ群が、対応する根音に関して
ベース音として発音する可能性のある互いに異
なる複数の音の音高をそれぞれ示す複数のキー
データを含んでいるものと、 (d) 複数のキーデータを記憶可能な第2の記憶手
段と、 (e) 前記和音検出手段で和音の根音及び種類が検
出されるたびに前記第1の記憶手段から検出根
音に対応しキーデータ群を読出して前記第2の
記憶手段に転送し、該キーデータ群に属する複
数のキーデータを該第2の記憶手段に発音順序
とは独立な所定順序でそれぞれ書込む転送手段
と、 (f) 前記和音検出手段で和音の根音及び種類が検
出されるたびに検出和音種類がベース音高修正
を要する特定の和音種類に該当するか判定し、
該当すると判定されたときは前記第2の記憶手
段に記憶されるキーデータ群内の予め定められ
たキーデータについてその指示音高を修正する
音高修正手段と、 (g) テンポクロツク信号を発生する手段と、 (h) 順次に発音すべきベース音について各ベース
音毎にその音を前記第2の記憶手段内の前記所
定順序中での順位で指定する音指定データと該
音の発音タイミングを示すタイミングデータと
を含むベースパターンデータを記憶した第3の
記憶手段と、 (i) 前記テンポクロツク信号に基づいて前記第3
の記憶手段からタイミングデータを順次に読出
すと共に各読出しのたびに該タイミングデータ
と読出タイミングとを比較し、発音すべきタイ
ミングと判定されたときは該タイミングデータ
に関連した音指定データに基づいて前記第2の
記憶手段から該音指定データの示す順位のキー
データを読出す読出手段と、 (j) 前記第2の記憶手段から読出されるキーデー
タに応じてベース音信号を発生するベース音発
生手段と をそなえたものでる。 上記した第1の自動伴奏装置によれば、押鍵が
なされるたびにキーデータを形成、確保しておく
ので、テンポクロツク信号及び伴奏パターンデー
タに基づく発音処理の際には、従来のような時間
のかかる演算処理が不要となり、低速・小型コン
ピユータを用いた場合にもリズムとの十分な同期
関係においてベース音、アルペジヨ音等の伴奏音
は発生することができる。その上、キーデータを
伴奏パターンとは独立に形成して記憶すると共
に、伴奏パターンには発音タイミング毎にキーデ
ータの順位指定を可能にする音指定データを含ま
せるようにしたので、伴奏パターンに制御されず
に発音する可能性のある多数のキーデータを用意
することができ、伴奏パターンとしては、発音タ
イミング毎に多数のキーデータのうち任意のもと
のを指定して変化に富んだパターンを組める。従
つて、面倒なパターン変更操作なしでも変化に富
んだ伴奏音発生が可能となる。 また、上記した第2の自動伴奏装置によれば、
第1の自動伴奏装置と同様の作用効果に加えて、
次のような作用効果も得られる。すなわち、キー
データの形成・書込処理は、予め形成された複数
群のキーデータのうちから1群のキーデータを選
択して書込むだけの簡単な処理になる。また、発
音処理の際には、音高修正処理が不要であり、リ
ズムとの十分な同期関係において検出和音種類に
適合したベース音を発生させることができる。 以下、添付図面に示す実施例についてこの発明
を詳述する。 第1図は、この発明の一実施例による電子楽器
を示すもので、この電子楽器はマイクロコンピユ
ータの助けによつてメロデイ音、和音、ベース
音、アルペジヨ音、リズム音等の発生が制御され
るようになつている。 鍵盤部10は上鍵盤(UK)、下鍵盤(LK)及
びペダル鍵盤(PK)を含んでおり、パネルスイ
ツチ(SW)回路12はパネル面に配置された多
数の操作子、例えばUK・LK音色選択スイツチ、
リズムスタート・ストツプスイツチ、リズム選択
スイツチ、テンポボリユーム、ウオーキングベー
ス選択スイツチ、アルペジヨ選択スイツチ、モー
ド選択スイツチ等を含んでいる。 鍵盤・パネルインターフエース14はバス16
を介して中央処理装置(CPU)18と結合して
おり、CPU18はインターフエース14を介し
て鍵盤部10の各鍵盤の鍵及びパネルスイツチ回
路12の各種スイツチ等を走査して鍵状態情報及
びスイツチ状態情報を検出するようになつてい
る。 CPU18の楽音発生制御動作はROM(リー
ド・オンリイ・メモリ)からなるプログラムメモ
リ20に記憶されたプログラムによつて制御され
るが、その詳細については後述する。 ROMからなる記憶テーブル22は和音検出テ
ーブル22a、ベース音テーブル22b及び符長
テーブル22cを含むもので、和音検出テーブル
22aはフインガード・コード(FC)モードと、
シングル・フインガー(SF)モードとで別々に
LK押鍵状態に対応した和音名データを記憶して
いる。ここで、和音名データは和音の根音に対応
したトニツクデータと、メジヤ、マイナ等の和音
タイプに対応した和音タイプデータとの組合せか
らなり、FCモードの場合はLKでの実際の和音押
鍵に対応して根音及び和音タイプが決定され、
SFモードの場合はLKで押された鍵のうちの最高
(又は最低)鍵に対応して根音が決定されると共
に根音鍵以外の鍵の状態(例えば白鍵か黒鍵かの
鍵種又は押鍵数)に応じて和音タイプを決定する
ようになつている。なお、SFモードの場合の和
音タイプ指定はPKあるいは専用の和音タイプ指
定スイツチで行なうようにしてもよい。 ベース音テーブル22bは第2図に示すように
トニツクC,C#,D……Bの各々に対応した1
2の記憶部を有し、各記憶部にはトニツクCなら
ばC2,D2,E2……D4というように、またトニツ
クC#ならばC2#,D2#,F2,F2#,G2#,A2
#,C2#……というように発音可能性のあるダ
イアトニツクノート16個分のキーコードデータが
記憶されている。 符長テーブル22cは各種の音符の時間長を表
わす時間長データが記憶されているもので、後述
のパターンデータ中に含まれる音長データが示す
値を相対アドレスとして時間長データが読出され
るようになつている。 ROMからなるパターンメモリ24はベースパ
ターンメモリ24a、和音パターンメモリ24
b、リズムパターンメモリ24c及びアルペジヨ
パターンメモリ24dを含むもので、ベースパタ
ーンメモリ24a及びアルペジヨパターンメモリ
24dは第3図に示すようにマーチ、スイング…
…ワルツ等のリズム種類毎にパターンデータが記
憶されている。 すなわち、ベースパターンデータは一例をマー
チに関して示すように1音分が2バイトのデータ
からなり、1バイト目が2ビツトの音量データ
ACCと、1ビツトのミユートデータMと、不使
用(“0”)の1ビツトと、4ビツトの発音タイミ
ングデータTMGとを含み、2バイト目が4ビツ
トの音程データと、4ビツトの音長データとを含
んでいる。 ここで、音量データACCはベース音にアクセ
ントを付加するためのものであり、ミユートデー
タMはベース音の音色やサステイン時間を制御し
て若干鈍い感じのするミユート音を発生させるた
めのものである。発音タイミングデータTMGは
1拍(4分音符1個に対応)内の0〜11のいずれ
かの発音タイミングを示すもので、タイミング値
0〜11は後述する拍内タイミングカウンタのカウ
ント値0〜11に対応している。音程データは後述
するベース音バツフア内の0〜15のいずれかのア
ドレスを指定することによつて発音すべきベース
音に対応するキーデータの読出しを可能にするも
のである。音長データは発音すべきベース音の立
上りからサステイン開始時までのオン時間(PK
の場合のキーオン時間に対応)を音符種別に対応
する数値で表わすもので、この数値は符長テーブ
ル22cのアドレスに対応している。すなわち、
音長データそれ自体はベース音のオン時間がどの
音符に対応しているか示すだけであるから、ベー
ス音のオン時間の長さ(音符長)を知るには音長
データに基づいて符長テーブル22cの時間長デ
ータを読出す必要がある。 第3図に示すように2拍内で発音すべきベース
音が複数ある場合には各ベース音に対応する2バ
イトデータが順次に配置され、その後に拍エンド
フラグデータ(16進で「0D」)が配置される。そ
して、このような配置は必要とする拍数分につい
て同様になされ、最後にリターンフラグデータ
(16進で「0F」)が配置される。 アルペジヨパターンデータは一例をマーチに関
して示すように1音分が2バイトのデータからな
り、1バイト目が1ビツトの音量データACCと、
2ビツトのチヤンネルデータCHと、1ビツトの
ミユートデータMと、4ビツトの発音タイミング
データTMGとを含み、2バイト目が4ビツトの
音程データと、4ビツトの音長データとを含んで
いる。 ここで、音量データACCと、ミユートデータ
Mと、発音タイミングデータTMGと、音程デー
タと、音長データとは先にベースパターンデータ
について述べたものとそれぞれ同様の機能を有す
るものである。チヤンネルデータCHは4つの楽
音形成チヤンネルのうちのいずれかを指定するた
めのものである。なお、2バイトデータ、拍エン
ドフラグデータ(16進で「0D」)及びリターンフ
ラグデータ(16進で「0F」)の配置の仕方も前述
のベースパターンデータの場合と同様である。 和音パターンメモリ24bは発音タイミングデ
ータと、音量、音色等のため発音制御データと、
音長データとを含む和音パターンデータを記憶し
たもので、データ配置の仕方は前述のベースパタ
ーンデータの場合と同様である。また、リズムパ
ターンデータメモリ24cは発音タイミングデー
タと、楽器種類指定データと、音量、音色等のた
めの発音制御データとを含むリズムパターンデー
タを記憶したもので、データ配置の仕方が前述の
ベースパターンの場合と同様である。 RAM(ランダム・アクセス・メモリ)からな
る伴奏音バツフア26は和音バツフア26a、ベ
ース音バツフア26b及びアルペジヨ音バツフア
26cを含むもので、第4図に示すように和音バ
ツフア26aは4音分の和音キーコードデータを
格納しうるようになつており、ベース音バツフア
26bは16音分のベースキーコードデータを各納
しうるようになつてとり、アルペジヨ音バツフア
26cは16音分のアルペジヨキーコードデータを
格納しうるようになつている。 RAMからなる発音鋳ベース・アルペジヨデー
タメモリ28は、第5図に示すようにベース用の
3つの記憶部BASRAM0〜BASRAM2と、アル
ペジヨ用の16の記憶部ARPRAM0〜ARPRAM15
とを含むもので、後述のベース・アルペジヨ発音
処理(第14〜17図)の際に利用されるもので
ある。BASRAM0はオフタイミングデータを、
BASRAM1はキーコードデータを、BASRAM2
は発音制御データ(音量データACC及びミユー
トデータM)をそれぞれ記憶するためのものであ
る。 また、ARPRAM0〜ARPRAM3,ARPRAM4
〜ARPRAM7,ARPRAM8〜ARPRAM11,
ARPRAM12〜ARPRAM15はそれぞれ第1、第
2、第3、第4図の音楽形成チヤンネルに対応し
て設けられたもので、ARPRAM0,ARPRAM1,
ARPRAM2,ARPRAM3はそれぞれ第1の音楽
形成チヤンネルのためにオンキーコードデータ、
オフタイミングデータ、オフキーコードデータ、
発音制御データ(音量データACC、ミユートデ
ータM及びチヤンネルデータCH)を記憶するよ
うになつており、このような記憶分担は第2の楽
音形成チヤンネルのためのARPRAM4〜
ARPRAM7、第3の楽音形成チヤンネルのため
のARPRAM8〜ARPRAM11、第4の楽音形成チ
ヤンネルのためのARPRAM12〜ARPRAM15に
ついてもそれぞれ同様である。 RAMからなるワーキングエリア30は各種の
フラグ、レジスタ等を含むもので、この発明の実
施に関係するレジスタ配置は第6図にようになつ
ている。すなわち、TONICは検出和音の根音に
対応したトニツクデータを書込むためのレジス
タ、TYPEは検出和音のタイプに対応した和音タ
イプデータを書込むためのレジスタ、
RHYROM,CHDROM,BASROM,
ARPROMはそれぞれリズムパターンメモリ24
c、和音パターンメモリ24b、ベースパターン
メモリ24a、アルペジヨパターンメモリ24d
のパターン先頭アドレスを選択されたリズム種類
に応じてセツトするためのレジスタである。 RHYRUNはリズムスタート時にセツトされ、
リズムストツプ時にリセツトされるリズムランフ
ラグ、TMPCNTは1拍内でカウント値が0〜11
に変化する拍内タイミングカウンタ、TIMING
は1小節内でカウント値が0〜35(3拍子の場合)
又は0〜47(4拍子の場合)に変化する小節内タ
イミングカウンタ、TMPMAXはカウンタ
TININGの最大タイミング値36(3拍子の場合)
又は48(4拍子の場合)がセツトされるレジスタ
である。なお、3拍子か4拍子かは選択されるリ
ズム種類に応じて決まる。 RHHEND,CDHEND,BAHEND,
ARHENDはそれぞれリズム、和音、ベース、ア
ルペジヨのための拍エンドフラグであり、対応す
る拍エンドフラグデータの検出時にセツトされる
ものである。また、RHPNT,CDPNT,
BAPNT,ARPNTはそれぞれリズムパターンメ
モリ24c、和音パターンメモリ24b、ベース
パターンメモリ24a、アルペジヨパターンメモ
リ24dからデータを読出す際に利用されるアド
レスポインタであり、各パターンの先頭からの相
対アドレスを示すものである。 ARPCNTは発音すべきアルペジヨノートの数
がセツトされるレジスタである。なお、この実施
例ではアルペジヨ用楽音形成チヤンネルが4つ設
けてあるので、発音すべきアルペジヨノートの数
は4つ以内に制限される。 OCTDWはアルペジヨ音セツトの処理(第1
2図)においてダウンすべきオクターブ数がセツ
トされるレジスタ、PKWONはウオーキングベ
ース選択スイツチの状態フラグ、ARPONはアル
ペジヨ選択スイツチの状態フラグ、ARCHはア
ルペジヨ変換処理(第15図)において楽音形成
チヤンネルを指定するデータ(1チヤンネルなら
ば16進で「00」、2チヤンネルならば16進で
「04」、3チヤンネルならば16進で「08」、4チヤ
ンネルならば16進で「0C」)が書込まれるレジス
タ、LKCNTはLKで押された鍵の数がセツトさ
れるレジスタ、LKHLBFはLKで押された鍵に対
応するキーコードデータを高い方から順に並べて
10音分書込可能なバツフアレジスタである。な
お、ワーキングエリア30内には、上記した以外
にも各種のレジスタが含まれている。 ここで、キーコードの決め方を述べておくと、
キーコードKCはオクターブコードOCとノートコ
ードNCとの和で表わされる。オクターブコード
OC及びノートコードNCはそれぞれ第1表及び第
2表に示すようになつている。
【表】
【表】
【表】
上記した第1及び第2表によれば、例えばC2,
C3,C4,B2,B3,B4はいずれも16進でそれぞれ
「01」、「11」、「21」、「0C」、「1C」、「2C」で表
わ
される。なお、16進の「0C」につづく16進の
「0D」、「0E」、「0F」と、16進の「00」はノート
コードとして使用されないが、16進の「0D」及
び「0F」は前述したようにそれぞれ拍エンドフ
ラグデータ及びリターンフラグデータに使用され
る。 UKインターフエース32はパネルスイツチ操
作に基づくUK音色データ及びUK操作に基づく
UKキーデータをUK楽音形成回路34に供給し、
同回路34は供給されたデータに応じてUK楽音
信号を形成する。このUK楽音信号は出力アンプ
36を介してスピーカ38に供給され、音響変換
される。 LKインターフエース40はパネルスイツチ操
作に基づくLK音色データ及びLK操作に基づく
LKキーデータをLK楽音形成回路42に供給し、
同回路42は供給されたデータに応じてLK楽音
信号を形成する。LK楽音信号は出力アンプ36
を介してスピーカ38に供給され、音響変換され
る。なお、UKインターフエース32を介しての
UKキーデータ出力処理は第7図について後述す
るメインルーチンで行なわれるが、和音バツフア
26aからLKインターフエース40を介しての
LKキーデータ出力処理は第13図について後述
するインタタラプトルーチンで行なわれる。 ベースインターフエース44は、オンキーコー
ド(ONKC)レジスタ46、オフキーコード
(OFFKC)レジスタ48、割当制御回路50、
キーコード(KC)・キーオン(KON)レジスタ
52及び発音制御データレジスタ54をを含んで
おり、あるベース音を発音しているときにその前
のベース音の発音を持続できるように2つの楽音
形成チヤンネルにキーデータを交互に割当てるよ
うになつている。ベースインターフエース44か
らのキーデータ及び発音制御データはベース音形
成回路56に供給され、同回路56は供給された
データに基づいてベース音信号を形成する。この
ベース音信号は出力アンプ36を介してスピーカ
38に供給され、音響変換される。 アルペジヨインターフエース58は、オンキー
コード(ONKC)レジスタ60、オフキーコー
ド(OFFKC)レジスタ62、割当制御回路6
4、キーコード(KC)・キーオン(KON)レジ
スタ66及び発音制御データレジスタ68を含ん
でおり、発音制御データ中に含まれるチヤンネル
データCHにしたがつて4つの楽音形成チヤンネ
ルのいずれかにキーデータを割当てるようになつ
ている。アルペジヨインターフエース58からの
キーデータ及び発音制御データはアルペジヨ音形
成回路70に供給れ、同回路70は供給されたデ
ータに基づいてアルペジヨ音信号を形成する。こ
のアルペジヨ音信号は出力アンプ36を介してス
ピーカ38に供給され、音響変換される。 リズムインターフエース72は発音すべき楽器
種類を指定するデータ及び発音制御データをリズ
ム音形成回路74に供給し、同回路74は供給さ
れたデータに応じてリズム音信号を形成する。こ
のリズム音信号は出力アンプ36を介してスピー
カ38に供給され、音響変換される。 ベース音バツフア26bからベースインターフ
エース44を介してのベースデータ出力処理と、
アルペジヨ音バツフア26cからアルペジヨイン
ターフエース58を介してのアルペジヨデータ出
力処理と、リズムインターフエース72を介して
のリズムデータ出力処理とはいずれも第13図に
ついて後述するインタラプトルーチンで行なわれ
る。 テンポタイマ76はテンポボリユームでセツト
されたテンポに応じて1拍内で12個のタイミング
パルスを発生し、各パルスに応じて1拍内で12回
メインルーチンにインタラプトをかけるものであ
る。 メインルーチン 次に、第7図を参照してメインルーチンの処理
を説明する。図示しない電源スイツチをオンする
と、メインルーチンの処理がスタートし、各鍵盤
及び各パルススイツチ等を走査して鍵状態情報及
びスイツチ状態情報を検出する。そして、鍵又は
パネルスイツチ等に状態変化があるか判定し、ノ
ーNならば走査・検出動作をくりかえす。また、
状態変化ありかの判定でイエスYならば鍵盤・パ
ルススイツチ等の状態情報をワーキングエリア3
0内の対応するデータレジスタにそれぞれ一旦ス
トアする。 次に、LKの鍵状態に変化があるか判断する。
通常はLK押鍵開始前に種々のパネル操作子の操
作がなされる。このような場合は、LK変化あり
かの判定はノーNとなり、パルス操作子の操作に
基づく処理を行なう。すなわち、。UK音色選択
スイツチ及びLK音色選択スイツチの操作に基づ
いて、UK音色データをワーキングエリア30か
らUKインターフエース32を介してUK楽音信
号回路34に、またLK音色データをワーキング
エリア30からLKインターフエース40を介し
てLK楽音形成回路42にそれぞれ送出する。ま
た、リズム選択スイツチの操作に基づき、選択さ
れたリズム種類に応じてレジスタRHYROM,
CHDROM,BASROM,ARPROMにそれぞれ
パターン先頭アドレスをセツトする。そして、レ
ジスタTMPMAXには、選択されたリズムが3
拍子か4拍子かに応じてそれぞれ最大タイミング
値36又は48をセツトする。 さらに、リズムスタート・ストツプスイツチに
よるリズムスタート操作に基づいてリズムランフ
ラグRHYRUNをセツトし、カウンタTMPCNT
及びTIMINGをクリアし、ポインタRHPNT,
CDPNT,BAPNT,ARPNTをクリアし、テン
ポタイマ76をイニシヤライズし、拍エンドフラ
グRHHEND,CDHEND,BAHEND,
ARHENDをクリアする。なお、リズムスター
ト・ストツプスイツチをストツプ位置に操作した
場合はリズムランフラグRHYRUNをクリアす
る。 さらに、ウオーキングベース選択スイツチのオ
ン操作に基づいて、状態フラグPKWONをセツ
トし、またアルペジヨ選択スイツチのオン操作に
基づいて、状態フラグARPONをセツトする。な
お、ウオーキングベース選択スイツチ又はアルペ
ジヨ選択スイツチをオフした場合には状態フラグ
PKWON又はARPONをそれぞれリセツトする。 ところで、LK押鍵を開始すると、LK変化あり
かの判定がイエスYとなり、LK押鍵数及びLK押
鍵音セツトの処理に移る。すなわち、LKで押さ
れた鍵の数をレジスタLKCNTにセツトすると共
に、LKで押された鍵に対応するキーコードデー
タを高い方から順に並べてバツフアレジスタ
LKHLBFに書込む。 次に、LK押鍵状態及びFCモードかSFモード
かに応じて和音検出テーブル22aを参照するこ
とにより和音検出を行ない、検出根音に対応した
トニツクデータをレジスタTONICに且つ検出和
音タイプに対応した和音タイプデータをレジスタ
TYPEにそれぞれ書込む。ここで、レジスタ
TONIC内のデータフオーマツトは1バイト(8
ビツト)のうち上位4ビツトが不使用であり、下
位4ビツトが1〜12のトニツクノートナンバを表
わすようになつている。また、レジスタTYPE内
のデータも上位4ビツトが不使用で、下位4ビツ
トが和音タイプを表わすようになつている。 次に、ベース音セツトのサブルーチンに移り、
ベース音バツフア26bに、検出和音に関連して
発音する可能性のあるベースキーコードデータを
16音分ストアするが、この処理の詳細は第8図に
ついて後述する。 次に、アルペジヨ音セツトのサブルーチンに移
り、アルペジヨ音バツフア26cに、検出和音に
関連して発音する可能のあるアルペジヨキーコー
ドデータを16音分ストアするが、この処理の詳細
は第12図について後述する。 この後、和音バツフア26aに和音データをセ
ツトする。ここでセツトされる和音データはFC
モードの場合にはLK押鍵に対応したキーコード
データであり、SFモードの場合には検出した根
音及び和音タイプに応じて形成される和音構成音
キーコードデータである。 鍵盤・パネルスイツチ等に状態変化がある場合
について上述したような処理が終わると、鍵盤・
パネルスイツチ等の状態検出の処理に戻り、以
下、同様の動作がくりかえされる。 ベース音セツトのサブルーチン 次に、第8図を参照してベース音セツトのサブ
ルーチンの処理を説明する。 まず、レジスタTONICのトニツクデータを
CPU18内のAレジスタにロードする。そして、
Aレジスタにロードされたトニツクデータを4ビ
ツトレフトシフトすることにより16倍する。前述
したようにトニツクデータは下位4ビツトで1〜
12のトニツクノートナンバ(ベース音テーブル2
2b内のトニツクC,C#,D……Bに対応)を
表わすようになつているので、Aレジスタのトニ
ツクデータを16倍すると、16,32,48……192の
いずれかの値を示す16倍トニツクデータが得られ
る。 次に、16倍トニツクデータをAレジスタから
CPU18内のXレジスタに転送する。そして
CPU18内にYレジスタには16進で「00」を書
込むことにより数値0をセツトする。これはベー
ス音バツフア26bに最初のキーコードデータを
書込むのを可能にするためである。 次に、第2図に示すようにベース音テーブル2
2bの先頭アドレス値(固定値)をBASTBと
し、先にXレジスタに格納された16倍トニツクデ
ータの値をXとすると、(BASTB−16+X)な
る演算を実行してテーブル2にbから最初に読出
すべきキーコードデータのアドレスを求め、この
アドレスに対応したキーコードデータをテーブル
22bから読出してAレジスタにロードする。そ
して、第4図に示すようにベース音バツフア26
bの先頭アドレス値(固定値)をBASBFとする
と、これにYレジスタの値を加算することによつ
てベース音バツフア26bの最初に書込むべきア
ドレスを指定してそこにAレジスタからの最初の
キーコードデータをストアする。この結果、検出
和音の根音に対応した特定のトニツクに属する16
音分のキーコードデータのうち、最初のキーコー
ドデータがベース音テーブル22bからAレジス
タを介してベース音バツフア26bに転送された
ことになる。 この後は、Xレジスタ及びYレジスタの値をそ
れぞれ1ずつアツプして読出アドレス及び書込ア
ドレスを1つずつ進める。そして、Yレジスタの
値が16に等しいか判定し、ノーNならば上記した
ようなキーコードデータ転送動作をくりかえす。
このような転送動作を最初のものも含めて16回行
なうと、特定のトニツクに属する16音分のキーコ
ードデータがすべてベース音テーブル22bから
ベース音バツフア26bに転送されたことにな
る。 このとき、Yレジスタの値は16になり、Yレジ
スタ値16かの判定はイエスYとなるから、次に和
音タイプに応じてベース音バツフア26b内のデ
ータを補正する処理に移る。まず、レジスタ
TYPEの和音タイプデータをAレジスタにロード
し、Aレジスタの値が16進で「01」が調べて和音
タイプがセブンス(7th)が判定し、イエスYな
らばXレジスタに7度データ(16進で「06」)を
セツトする。そして、第9図について後述するよ
うな半音ダウンのサブルーチンに移り、ベース音
バツフア26b内の7度に対応したキーコードデ
ータの音程を半音ダウンさせて処理を終る。 セブンスかの判定でノーNであつたならば、A
レジスタの値が16進で「04」か調べて和音タイプ
がマイナ(m)か判定する。この判定の結果、イ
エスYならばXレジスタに3度データ(16進で
「02」)をセツトする。そして、半音ダウンのサブ
ルーチンに移り、ベース音バツフア26b内の3
度に対応したキーコードデータの音程を半音ダウ
ンさせて処理を終る。 マイナかの判定でノーNであつたならば、Aレ
ジスタの値が16進で「05」か調べて和音タイプが
マイナセブンス(m7)が判定する。この判定の
結果、イエスYならば、前述のマイナの場合と同
様に、Xレジスタに3度データをセツトして半音
ダウンのサブルーチンを実行する。次に、前述の
セブンスの場合と同様に、Xレジスタに7度デー
タをセツトして半音ダウンのサブルーチンを実行
し、処理を終る。 マイナセブンスかの判定でノーNであつたんら
ば、Aレジスタの値が16進で「06」か調べて和音
タイプがマイナセブンス5度フラツト(m7(5b))
か判定する。この判定の結果、イエスYならば、
前述のマイナの場合と同様に、Xレジスタに3度
データをセツトして半音ダウンのサブルーチンを
実行する。次に、Xレジスタに5度データ(16進
で「04」)をセツトして半音ダウンのサブルーチ
ンを実行することによりベース音バツフア26b
内の5度に対応したキーコードデータの音程を半
音ダウンさせる。この後、前述のセブンスの場合
と同様に、Xレジスタに7度データをセツトして
半音ダウンのサブルーチンを実行し、処理を終
る。 マイナセブンス5度フラツトかの判定でノーN
であつたならば、Aレジスタの値が16進で「07」
か調べて和音タイプがデイミニツシユ(Dim)か
判定する。この判定の結果、イエスYならば、前
述のマイナの場合と同様に、Xレジスタに3度デ
ータをセツトして半音ダウンのサブルーチンを実
行する。次に、前述のマイナセブンス5度フラツ
トの場合と同様に、Xレジスタに5度データをセ
ツトして半音ダウンのサブルーチンを実行する。
この後、Xレジスタに7度データをセツトし、第
11図について後述するような全音ダウンのサブ
ルーチンに移り、ベース音バツフア26b内の7
度に対応したキーコードデータの音程を全音ダウ
ンさせて処理を終る。 デイミニツシユかの判定でノーNであつたなら
ば、Aレジスタの値が16進で「08」か調べて和音
タイプがオーギユメント(Aug)か判定する。こ
の判定の結果、イエスYならば、前述のセブンス
の場合と同様に、Xレジスタに7度データをセツ
トして半音ダウンのサブルーチンを実行する。次
に、Xレジスタに5度データをセツトし、第10
図について後述するような半音アツプのサブルー
チンに移り、ベース音バツフア26b内の5度に
対応したキーコードデータの音程を半音アツプさ
せて処理を終る。 オーギユメントかの判定でノーNであつたらな
ば、和音タイプはメジヤ(M)、シツクスス
(6th)又はメジヤセブンス(M7th)のいずれか
であり、上述のような音程補正を施すことなく処
理を終る。 半音ダウンのサブルーチン 次に、第9図を参照して半音ダウンのサブルー
チンの処理を説明する。 まず、アドレス値BASBFにXレジスタの度数
値Xを加算してベース音バツフア26bのアドレ
ス(BASBF+X)を指定することにより同バツ
フア26bからセツト度数に対応したキーコード
データを取出し、Aレジスタにロードする。そし
て、Aレジスタのキーコードデータの下位4ビツ
ト(ノートコード)が16進で「01」か調べて音名
がCであるか判定する。この判定の結果、ノーN
であればAレジスタの値から1を引いて音程を半
音ダウンさせる。また、判定結果がイエスYであ
れば音高BにダウンさせるべくAレジスタの値か
ら5を引く。これは、前述したように16進の
「00」、「0D」〜「0F」がノートコードに使用され
ていないので、C音と、その半音下のB音とでは
ノートコード値で5だけ離れているからである。 この後、Aレジスタ内の半音ダウンされたキー
コードデータをベース音バツフア26b内の元の
アドレス(BASBF+X)に戻して格納する。そ
して、Aレジスタの値に16進で「10」が加算する
ことによつてAレジスタのキーコードデータのオ
クターブ値を1だけアツプし、このオクターブア
ツプされたキーコードデータをベース音バツフア
26bのアドレス(BASBF+X+7)に格納し
て処理を終る。この結果、ベース音バツフア26
b内のアドレス(BASBF+X)のキーコードデ
ータと、このデータり1オクターブ(7アドレ
ス)上の同一音名のキーコードデータとはいずれ
も音程が音程ダウンされたことになる。 半音アツプのサブルーチン 次に、第10図を参照して半音アツプのサブル
ーチンの処理を説明する。 まず、前述の半音ダウンの場合と同様にベース
音バツフア26bからセツト度数に対応したキー
コードデータを取出し、Aレジスタにロードす
る。そして、Aレジスタの下位4ビツトが16進で
「0C」か調べて音名がBか判定する。この判定の
結果、ノーNであればAレジスタの値に1を加算
して音程を半音アツプさせる。また、判定結果が
イエスYであれば音高CにアツプさせるべくAレ
ジスタの値に5を加算する。これは、前述の半音
ダウンの場合とは逆の処理である。 この後、Aレジスタ内の半音アツプされたキー
コードデータをベース音バツフア26b内の元の
アドレス(BASBF+X)に戻して格納する。そ
して、前述の半音ダウンの場合と同様にAレジス
タのキーコードデータのオクターブ値を1だけア
ツプし、このオクターブアツプしたキーコードデ
ータをベース音バツフア26bのアドレス
(BASBF+X+7)に格納して処理を終る。こ
の結果、ベース音バツフア26b内のアドレス
(BASBF+X)のキーコードデータと、このデ
ータより1オクターブ(7アドレス)上の同一音
名のキーコードデータとはいずれも音程が半音ア
ツプされたことになる。 全音ダウンのサブルーチン 次に、第11図を参照して全音ダウンのサブル
ーチンの処理を説明する。 まず、前述の半音ダウンの場合と同様にベース
音バツフア26bからセツト度数に対応したキー
コードデータを取出し、Aレジスタにロードす
る。そして、Aレジスタの下位4ビツトが16進で
「02」以上か調べて音高がC#以上か判断する。
この判定の結果、ノーNであればAレジスタの値
から2を引いて音程を全音ダウンさせる。また、
判定結果がイエスYであればC#はBに、Cは
A#にそれぞれダウンさせるべくAレジスタの値
から6を引く。これは半音ダウンの場合よりさら
に半音(ノートコード値で1)低いからである。 この後、Aレジスタ内の全音ダウンされたキー
コードデータをベース音バツフア26b内の元の
アドレス(BASBF+X)に戻して格納する。そ
して、前述の半音ダウンの場合と同様にAレジス
タのキーコードデータのオクターブ値を1だけア
ツプし、このオクターブアツプしたキーコードデ
ータをベース音バツフア26bのアドレス
(BASBF+X+7)に格納して処理を終る。こ
の結果、ベース音バツフア26b内のアドレス
(BASBF+X)のキーコードデータと、このデ
ータより1オクターブ(7アドレス)上の同一音
名のキーコードデータとはいずれも音程が全音ダ
ウンされたことになる。 アルペジヨ音セツトのサブルーチン 次に、第12図を参照してアルペジヨ音セツト
のサブルーチンの処理を説明する。 まず、レジスタLKCNTからLK押鍵数データ
を読出してAレジスタにロードすることによりA
レジスタにLK押鍵数をセツトする。そして、A
レジスタの値が4以上か調べてLK押鍵数が5以
上か判定する。この判定の結果、ノーNならばA
レジスタのデータをそのままアルペジヨノート数
を示すものとしてレジスタARPCNTにストアす
る。また、判定結果がイエスYであつたならば、
Aレジスタの値を4に書換えることによりアルペ
ジヨノート数を4に制限してから、Aレジスタの
データをレジスタARPCNTにストアする。 次に、レジスタLKCNTからLK押鍵数データ
を読出してXレジスタにロードすることによりX
レジスタにLK押鍵数をセツトする。そして、前
述のLK音用のバツフアレジスタLKHLBFの先頭
アドレス値(固定値)を第6図に示すように
HLBとし、Xレジスタの押鍵数をXとしてアド
レス(HLB+X−1)を指定することによりレ
ジスタLKHLBFから最低音に対応したキーコー
ドデータを読出し、これをAレジスタに入れる。
この場合、レジスタLKHLBFにはLKで押された
複数鍵に対応するキーコードデータが先頭アドレ
スHLBに最高音のものが入るようにして高低順
に並べてストアされているので、上記のようにア
ドレス(HLB+X−1)を指定すると、LKで押
された鍵のうちの最低音に対応したキーコードデ
ータを読出すことがきる。 次に、Aレジスタの値が16進で「10」より小さ
いか調べて最低音が最低オクターブに属するもの
か判定する。この判定の結果、ノーNであれば、
ダウンすべきオクターブ数を演算してレジスタ
OCTDWに入れる。すなわち、アルペジヨ音バ
ツフア26cにはLK発音域の最低オクターブに
属するアルペジヨノートから入れていきたいの
で、Aレジスタの上位4ビツト(最低音オクター
ブ)から16進の「00」(発音域最低オクターブ)
を引いてオクターブ差を求め、これをダウンすべ
きオクターブ数としてレジスタOCTDWに書込
んでおく。 このような書込みが終つた後又は最低オクター
ブかの判定でイエスYとなつた後、Yレジスタに
16進で「00」を書込み、数値0とセツトする。こ
れはアルペジヨ音バツフア26cに最初のアルペ
ジヨキーコードデータを書込むのを可能にするた
めである。 次に、アドレス(HLB+X−1)を指定する
ことによりレジスタLKHLBFから最初のキーコ
ードデータ(最低音に対応)を読出してAレジス
タに入れる。そして、Aレジスタの値からレジス
タOCTDWの値を差引くことによりオクターブ
ダウンの補正を施し、この補正後のデータをAレ
ジスタに入れておく。 次に、Aレジスタのキーコードデータをアルペ
ジヨ音バツフア26cにストアする。このときの
書込アドレスは、第4図に示すようにバツフア2
6cの先頭アドレス値(固定値)をARPBFと
し、Yレジスタの値をYとすれば、(ARPBF+
Y)で指定されるが、前述したようにYレジスタ
の値は0であるので、バツフア26cの先頭アド
レスARPBFが最初の書込アドレスとなる。 次に、Xレジスタ及びYレジスタの値をそれぞ
れ1ずつアツプして読出アドレス及び書込アドレ
スを1つずつ進める。 この後、Yレジスタの値が3より大きいか調べ
ることにより4音分のキーコードデータ転送が終
了しが判定し、ノーNであれば上記のようなレジ
スタLKHLBFからアルペジヨ音バツフア26c
へのデータ転送動作をくりかえす。そして、この
ようなデータ転送動作を最初のものを含めて4回
行なうと、アルペジヨ音バツフア26cには4音
分のキーコードデータがストアされたことにな
り、4音転送終了かの判定はイエスYとなる。 このようなデータ転送処理においては、LK押
鍵数(Xレジスタの値)が4より大きいとして
も、アルペジヨ音バツフア26cにはレジスタ
LKHLBF内の低音側から数えて4音分のキーデ
ータしかストアされない。また、LK押鍵数が4
であればバツフア26cにはレジスタLKHLBF
内の4音分のキーデータがストアされるが、LK
押鍵数が4より小さい、例えば2であつた場合に
はバツフア26cにはレジスタLKHLBF内にな
い無関係なデータが2音分ストアされる。しか、
このような無関係データはこのデータ書込処理で
消去されるので問題にならない。 さて、4音転送終了かの判定がイエスYになる
と、Xレジスタに16進で「00」を書込んで数値0
をセツトすると共に、Yレジスタにレジスタ
ARPCNからアルペジヨノート数をセツトする。 次に、アドレス(ARPBF+X)を指定するこ
とによりアルペジヨ音バツフア26cから最初の
キーコードデータ(最高音に対応)を読出してA
レジスタに入れる。そして、Aレジスタの値が16
進で「41」より大きいか調べてAレジスタのデー
タの音高がC6音より高いか判定する。これは各
音毎に最高オクターブに達するまで1オクターブ
ずつ音程を上げていき、最高オクターブに達した
ら同一オクターブをくりかえるようにするためで
ある。この音高>C6かの判定の結果、イエスY
ならばオクターブアツプ処理不要なので、Aレジ
スタのキーコードデータをそのまま(すなわちオ
クターブ変更せずに)アルペジヨ音バツフア26
cのアドレス(ARPBF+Y)にストアする。ま
た、判定結果がノーNであつたならば、Aレジス
タの値に16進で「10」を加算して1オクターブア
ツプの補正を施し、この補正されたデータをバツ
フア26cのアドレス(ARPBF+Y)にストア
する。 ここで、アルペジヨ音バツフア26cの書込ア
ドレスは(ARPBF+Y)で指定されるので、前
述したようにLK押鍵数(すなわちYレジスタの
値Y)が2であつたとしても前述の無関係データ
は新たに書込まれるキーコードデータによつて置
換されるので、バツフア26c内に残ることはな
い。 次に、Xレジスタ及びYレジスタの値をそれぞ
れ1ずつアツプして読出アドレス及び書込アドレ
スを1つずつ進める。 この後、Yレジスタの値が15おり大きいか調べ
てアルペジヨ音バツフア26cがキーコードデー
タで一杯か判定し、ノーNであれば上記のような
データ読出・ストア動作をくりかえす。そして、
このようなデータ読出・ストア動作を最初のもの
を含めて(16−Y0)回行なうと、バツフア26
cは一杯になる。ここで、Y0はレジスタ
ARPCNTの値に対応するYレジスタの初期値で
ある。バツフア26cが一杯になると、一杯かの
判定がイエスYとなつて処理を終る。 インタラプトルーチン 次に、第13図を参照してインタラプトルーチ
ンの処理を説明する。 前述したようにテンポタイマ76は1拍内で12
回インタラプトをかけるようになつているが、イ
ンタラプト命令が発生されるたびに、前述のメイ
ンルーチンから第13図のインタラプトルーチン
に移る。 インタラプトルーチンでは、まず、メインルー
チンで使用されていた各レジスタの内容をセーブ
してから、リズムランフラグRHYRUNが0でな
いか調べてリズムラン(リズムスタート・ストツ
プスイツチがスタート位置にセツトされている)
か判定する。この判定の結果、ノーNならばリズ
ム音、和音、ベース音、アルペジヨ音を発生する
ための処理が不要なので、各レジスタの内容を復
帰させてインタラプトルーチンを終り、メインル
ーチンに戻る。 リズムランからの判定結果、イエスYであつた
とすると、リズム音出力の処理に移る。この処理
は、先頭アドレスレジスタRHYROM、アドレス
ポインタRHPNT、拍内タイミングカウンタ
TMPCNT、拍エンドフラグRHHENDを利用し
てリズムパターンメモリ24cを参照し、発音す
べきリズム楽器(打楽器)に対応する楽器種類指
定データ及び発音制御データをリズムインターフ
エース72を介してリズム音形成回路74に供給
するもので、これによつて特定の拍内タイミング
におけるリズム音発生が可能になる。なお、この
リズム音出力処理は、オフタイミング処理及びキ
ーオフ処理がない点を除き、後述のベース音出力
処理と同様である。 次に、和音出力の処理に移る。この処理は、先
頭アドレスレジスタCHDROM、アドレスポイン
タCDPNT、拍内タイミングカウンタ
TMPCNT、拍エンドフラグCDHENDを利用し
て和音パターンメモリ24bを参照し、和音バツ
フア26aにセツトされている和音データをLK
インターフエース40を介してLK楽音形成回路
42に供給するもので、これによつて特定の拍内
タイミングにける和音発生が可能になる。なお、
この和音出力処理は、発音すべきキーコード出力
を選択しない点及び複数音分のキーコードデータ
が同時に出力される点を除き、後述のベース音出
力処理と同様である。 次に、ベース音出力のサブルーチンを実行して
特定の拍内タイミングにおけるベース音発生を可
能にするが、その詳細は第14図について後述す
る。 次にアルペジヨ変換のサブルーチン及びアルペ
ジヨ音出力おサブルーチンを順次に実行して特定
の拍内タイミングにおけるアルペジヨ音発生を可
能にするが、その詳細は第15図〜第17図につ
いて後述する。 この後、拍内タイミングカウンタTMPCNTを
1をカウントアツプする。そして、小節内タイミ
ングカンウタTIMNINGも1カウントアツプす
る。 次に、カウンタTMPCNTの値が12に達したか
調べることにより拍オーバーか判定し、その結果
がノーNならば各レジスタを復帰させてメインル
ーチンに戻る。また、拍オーバーかの判定結果が
イエスYならば拍エンドフラグRHHEND、
CDHEND,BAHEND、ARHENDをそれぞれ
リセツトさせてから、カウンタTMPCNTをリセ
ツトさせる。 この後、カウンタTIMNINGの値が最大タイ
ミングレジスタTMPMAXの値(3拍子ならば
36、4拍子ならば48)に一致するか調べて小節オ
ーバーか判定し、その結果がノーNならば各レジ
スタを復帰させてメインルーチンに戻る。また、
小節オーバーかの判定結果がイエスYであればカ
ウンタTIMINGをリセツトしてから各レジスタ
を復帰させてメインルーチンに戻る。 上記したインタラプトルーチンによれば、リズ
ム音、和音、ベース音、アルペジヨ音をそれぞれ
1拍内で12回ずつ発生可能であるが、12個の拍内
タイミングのうちどのタイミングで各々の音を発
生させるかは選択されたリズム種類に応じてパタ
ーンメモリ24から読出されるリズムパターン、
和音パターン、ベースパターン、アルペジヨパタ
ーンに応じてそれぞれ決まる。 ベース音出力のサブルーチン 次に、第14図を参照してベース音出力のサブ
ルーチンの処理を説明する。 まず、拍エンドフラグBAHENDが16進で
「00」でないか調べて拍エンドか判定する。フラ
グBAHNDは拍エンドフラグデータの検出時に
16進で「0D」がセツトされる一方、リターンフ
ラグデータの検出時に16進で「0F」がセツトさ
れるもので、拍エンドかの判定の結果、イエスY
ならば拍エンドフラグデータ又はリターンフラグ
データが検出されたことを意味し、ノーNならば
いずれのフラグデータも検出されていないことを
意味する。 拍エンドかの判定でノーNであつたものとする
と、アドレスポインタBAPNTからポインタ値
(ベースパターンメモリ24a内の相対アドレス)
を読出してYレジスタに入れる。そして、選択さ
れたリズム種類に対応してレジスタBASROMに
セツトされているパターン先頭アドレス値にYレ
ジスタの値を加算してアドレス指定することによ
りベースパターンメモリ24aから選択されたリ
ズム種類に対応したベースパターンデータを読出
し、Aレジスタに入れる。この場合、Aレジスタ
に書込まれるのは、2バイト1組のデータのうち
1バイト目のデータであり、発音制御データ(上
位3ビツト)及び発音タイミングデータ(下位4
ビツト)を含むものである。 次に、Aレジスタの下位4ビツトの示す発音タ
イミング値が拍内タイミングカウンタTMPCNT
の値と一致するか判定する。この判定の結果、イ
エスYであるものとすると、Yレジスタのポイン
タ値を1だけアツプする。 次に、状態フラグPKWONが1か調べてウオ
ーキングベース選択スイツチがオンか判定する。
この結果、ノーNならば、Yレジスタのポインタ
値をさらに1だけアツプしてから、Yレジスタの
ポインタ値をポインタBAPNTに格納して処理を
終る。このようにウオーキングベースオンでない
ときにはポインタBAPNTの値を次に読出すべき
データに対応させておく。 一方、ウオーキングベースオンからの判定でイ
エスYであつたものとすると、発音制御データ格
納処理に移る。すなわち、Aレジスタの下位4ビ
ツトをマスクして上位3ビツトの発音制御データ
(音量データACC及びミユートデータM)を取出
し、発音中ベース・アルペジヨデータメモリ28
内の記憶部BASRAM2にストアする。 次に、レジスタBASROMにセツトされている
パターン先頭アドレス値に先に1アツプされたY
レジスタのポインタ値を加算してアドレス指定す
ることによりベースパターンメモリ24aからベ
ースパターンデータを読出してAレジスタに入れ
る。この場合、Aレジスタに書込まれるのは、2
バイト1組のデータのうち2バイト目のデータで
あり、音程データ(上位4ビツト)及び音長デー
タ(下位4ビツト)を含むものである。 次に、Aレジスタのデータを4ビツトライトシ
フトすることにより上位4ビツトの音程データを
取出し、Xレジスタに入れる。 前述したように音程データはベース音バツフア
26b内の0〜15のいずれかのアドレスを示して
いる。そこで、バツフア26bの先頭アドレス値
BASBFにXレジスタの値を加算してアドレス指
定することによりバツフア26bから上記音程デ
ータに対応したキーコードデータを取出し、Aレ
ジスタに入れる。 次に、Aレジスタのキーコードデータをメモリ
28内の記憶部BASRAM1に転送し、格納する。 この後、BASRAM2の発音制御データ及び
BASRAM1のキーコードデータをベースインタ
ーフエース44に出力する。インターフエース4
4に供給されたキーコードデータはオンキーコー
ドレジスタ46に書込まれ、割当制御回路50に
よつてキーコード・キーオレンジスタ52内の第
1の楽音形成チヤンネルに対応したレジスタ部に
転送される。この結果、第1の楽音形成チヤンネ
ルに対応したレジスタ部には発音すべき音に対応
したキーコードデータと、キーオンデータとがス
トアされたことになり、これらのデータがベース
音形成回路56に供給される。また、インターフ
エース44に供給された発音制御データは発音制
御データレジスタ54にストアされ、このレジス
タからベース音形成回路56に供給される。従つ
て、ベース音形成回路56はインターフエース4
4からキーコードデータ、キーオンデータ及び音
量データACCに応じて第1の楽音形成チヤンネ
ルでベース音信号を形成し、このベース音信号に
応じてスピーカ38からベース音が発生される。 次に、オフタイミング処理Aに移る。この処理
では、先ず、レジスタBASROMにセツトされて
いるパターン先頭アドレス値にYレジスタのポイ
ンタ値を加算してアドレス指定することによりベ
ースパターンメモリ24aから再びベースパター
ンデータを読出し、Aレジスタに入れる。このと
きAレジスタに入るのは音程データ及び音長デー
タである。 次に、Aレジスタのデータと16進の「0F」と
のANDをとることによつて下位4ビツトの音長
データを取出し、Xレジスタに入れる。そして、
第2図に示すように符長テーブル22cの先頭ア
ドレス値(固定値)をOFTIMEとし、Xレジス
タの値(テーブル22c内の相対アドレス)をX
としてアドレス(OFTIME+X)を指定するこ
とによりテーブル22cから上記音長データに対
応した時間長データを読出し、Aレジスタに入れ
る。 次に、Aレジスタの値と小節内タイミングカウ
ンタTIMINGの値とを加算してオフタイミング
値を求め、これをAレジスタに入れる。 次に、Aレジスタの値(オフタイミング値)が
最大タイミングレジスタTMPMAXの値(3拍
子ならば36、4拍ならば48)以上か調べて1小節
を越えたか判定する。この判定の結果、ノーNな
らば、Aレジスタのオフタイミングデータをメモ
リ28の記憶部BASRAM0に格納する。また、
判定結果がイエスYならばAレジスタの値からレ
ジスタTMPMAXの値を引いてオフタイミング
値を補正し、この補正されたオフタイミングデー
タをBASRAM0に格納する。いずれにしても、
BASRAM0に格納されたオフタイミングデータ
はベース音の発音開始後サステインを開始すべき
時点を小節内タイミング値(3拍子ならば0〜35
のいずれか、4拍ならば0〜47のいずれか)で示
すものである。 オフタイミングデータ格納の後は、前述のウオ
ーキングベースオンでなかつた場合と同様にYレ
ジスタのポインタ値を1アツプし、この1アツプ
したポインタ値をポインタBAPNTに格納して処
理を終る。 上記したのは、あるインタラプトがかかつたと
きにベースパターンデータを読出したところ拍内
タイミング一致が得られた(発音すべきベース音
があつた)場合の処理であるが、次のインタラプ
トがかかつたときにも上記と同様にしてベースパ
ターンデータを読出し、Aレジスタに入れる。こ
のときの読出されるベースパターンデータは第1
4図の下部でポインタ値を1アツプしておいての
で、前回の読出データの次のデータである。 次に、前回同様にAレジスタの下位4ビツトと
カウンタTMPCNTの内容とを比較して拍内タイ
ミング一致か判定する。この判定結果がノーNで
あるとすると、Aレジスタの値が16進で「0D」
以下か調べてフラグデータ(拍エンドフラグデー
タ又はリターンフラグデータ)か判定する。 この場合、Aレジスタのデータが発音タイミン
グデータであるとすると、フラグデータかの判定
結果はノーNとなり、オフタイミング取出処理に
移る。この処理は、メモリ28の記憶部
BASRAM0から先に格納したオフタイミングデ
ータを取出してAレジスタに入れるものである。 次に、Aレジスタの発音タイミング値が小節内
タイミングカウンタTIMINGの値と一致するか
判定する。この判定の結果、ノーNであるとする
と、まだサステイン開始時に至つていないものと
してキーオフ処理bを経ずに処理を終る。 この後、インタラプトが何回かかかるが、いず
れのインタラプトでも拍内タイミング一致及び小
節内タイミングが得られないものとすると、上記
した同様にキーオフ処理Bを経ずに処理を終る。
そして、このようにてインタラプトをくりかえし
ている間にも小節内タイミングカウンタ
TIMINGの値は増加しているので、やがで小節
内タイミングの一致が得られるときがくる。 小節内タイミングの一致が得られると、キーオ
フ処理Bに移る。すなわち、メモリ28の記憶部
BASRAM1から先に格納したキーコードデータ
を取出し、Aレジスタに入れる。次に、Aレジス
タが0でないか調べてキーコードデータありか判
定し、通常はイエスYであるので、Aレジスタの
キーコードデータをベースインターフエース44
に出力する。インターフエース44に供給された
キーコードデータはオフキーコードレジスタ48
にストアされ、割当制御回路50によつてレジス
タ52内の第1の楽音形成チヤンネルに対応した
レジスタ部に転送される。このため、第1の楽音
形成チヤンネルに対応したレジスタ部では先にス
トアされていたキーオンデータがキーオフデータ
で置換され、このキーオフデータがベース音形成
回路56に供給される。 ベース音形成回路56はキーオフデータを受取
ると、発生中のベース音信号の振幅エンベロープ
を徐々に減衰させるべきサステイン制御を行な
う。このサステイン制御のため、発音中のベース
音は急に消えることなく徐々に減衰していく。こ
の場合、発音制御データレジスタ54にストアさ
れているミユートデータMが“1”であれば、そ
れが“0”の場合に比べてベース音の減衰時間が
短くなるようにサステイン制御が行なわれる。 上記のようにしてベース音のサステイン制御が
開始された後は、メモリ28の記憶部
BASRAM1に16進で「00」を書込んでキーコー
ドデータをクリアし、処理を終る。 上記では、Aレジスタに読出したデータが発音
タイミングデータであるとしたが、これが拍エン
ドフラグデータ(16進で「0D」)であつた場合は
次のような動作になる。すなわち、拍内タイミン
グ一致かの判定結果はノーNとなるから、フラグ
データかの判定をすると、イエスYとなる。次
に、Aレジスタの値が16進で「0F」か調べてリ
ターンフラグか判定する。この結果、ノーNとな
るので、Aレジスタの拍エンドフラグデータを拍
エンドフラグBAHENDにセツトする。そして、
Yレジスタのポインタ値を1アツプし、この1ア
ツプされたポインタ値をポインタBAPNTにセツ
トする。 この後、前述したと同様にオフタイミングデー
タを取出し、小節内タイミング一致か判定する
が、この判定の結果は、前述のようにキーオフ開
始までに何回かのインタラプトが必要であるとす
ると、ノーNとなり、処理を終る。 この次のインタラプがかかると、第14図の上
部の拍エンドかの判定はイエスYとなる。これ
は、前回のインタラプトで拍エンドフラグ
BAHENDにセツトしておいたからである。 拍エンドかの判定がイエスYとなると、前述し
たと同様にオフタイミングデータを取出し、小節
内タイミング一致か判定するが、前回同様にノー
Nとなり、処理を終る。 このように、拍エンドフラグBAHENDが一旦
セツトされると、第14図のルーチンは実質的に
オフタイミングデータ取出し及び小節内タイミン
グ一致判定を含む簡略処理で終るようになり、こ
のような簡略処理は第13図のルーチンで拍内タ
イミングカウンタTMPCNTのカウント値が12に
なつて拍エンドフラグBAHENDがリセツトされ
るまでくるかえさえる。なお、かような簡略処理
がくりかえされている間にも小節内タイミングカ
ウンタTIMINGはカウンタTMPCNTと同様に
インタラプトのたびにカウント値が増大するの
で、小節内タイミング一致が得られれば前述した
と同様にキーオフ処理Bが行なわれる。 第13図のルーチンで拍エンドフラグ
BAHENDがリセツトされた後、次のインタラプ
トがかかると、第14図の上部の拍エンドかの判
定はノーNとなり、前述したと同様にパターンデ
ータ読出しを行なう。この場合、前述の拍エンド
フラグセツトの後にポインタBAPNTの値を1ア
ツプしてあるので、拍エンドフラグデータの次の
発音制御・発音タイミングデータが読出される。
そして、この読出データに基づいて拍内タイミン
グ一致か判定し、その結果イエスYならば前述し
たと同様にメモリ28の記憶部BASRAM2には
発音制御データを且つ記憶部BASRAM1にはキ
ーコードデータをそれぞれ書込み、インターフエ
ース44に出力する。この場合、インターフエー
ス44では、割当制御回路50がキーコード・キ
ーオンレジスタ52内の第2の楽音形成チヤンネ
ルに対応したレジスタ部にキーコードデータ及び
キーオフデータを割当てるので、ベース音形成回
路56は第2の楽音形成チヤンネルでベース音信
号を形成し、このベース音信号に応じたベース音
がスピータ38から奏出される。 このように、今回のベース音信号は前回ベース
音信号とは別の楽音形成チヤンネルで形成される
ので、前のベース音がサステインされている間に
今回のベース音を発音させることができる。 この後は、前述したと同様にオフタイミング処
理B及びポインタ値アツプ等の処理をする。 そして、この後何回目かのインタラプトで小節
内タイミング一致が得られたときに今回のベース
音についてキーオフ処理Bを行なう。 上記のようにしてベース音発生動作を進めてい
くうちに、ベースパターンメモリ24aからAレ
ジスタにリターンフラグデータが読出される。そ
こで、前記したと同様に拍内タイミング一致が判
定すると、ノーNとなり、さらにフラグデータが
判定すると、イエスYとなる。次に、Aレジスタ
の値が16進で「0F」か調べてリターンフラグデ
ータか判定すると、イエスYとなるので、Yレジ
スタに16進で「FF」(全8ビツト“1”のデー
タ)をセツトする。 次に、拍エンドフラグBAHENDにAレジスタ
のリターンフラグデータをセツトする。そして、
Yレジスタの値(16進で「FF」)に1を加えてポ
インタ値を1アツプすると、ポインタ値は16進で
「00」になり、このポインタ値をポインタ
BAPNTにセツトする。 この後は、オフタイミングデータを取出して小
節内タイミング一致が判定し、ノーNならば処理
を終り、イエスYならばキーオフ処理Bを経て処
理を終る。 この次のインタラプトでは拍エンドフラグ
BAHENDがセツトされているので、前述した拍
エンドフラグセツトの場合と同様の動作になり、
このような動作は拍エンドフラグBAHENDがリ
セツトされるまでくりかえされる。そして、拍エ
ンドフラグBAHENDがリセツトされると、その
次のインタラプトからはポインタBAPNTが16進
で「00」となつているのでベースパターンメモリ
24aの先頭アドレスからベースパターンデータ
が読出され、以下、上記したと同様のベース音発
生動作がくりかえされる。 アルペジヨ変換のサブルーチン 次に、第15図を参照してアルペジヨ変換のサ
ブルーチンの処理を説明する。 まず、拍エンドフラグBAHENDの値が16進で
「00」でないか調べて拍エンドフラグデータの検
出時に16進で「0D」がセツトされる一方、リタ
ーンフラグデータの検出時に16進で「0F」がセ
ツトされるもので、拍エンドかの判定の結果、イ
エスYならば拍エンドフラグデータ又はリターン
フラグデータを検出されたことを意味し、ノーN
ならばいずれのフラグデータも検出されていない
ことを意味する。 拍エンドかの判定でノーNであつたものとする
と、アドレスポインタARPNTからポインタ値
(アルペジヨパターンメモリ24d内の相対アド
レス)を読出してYレジスタに入れる。そして、
選択されたリズム種類に対応してレジスタ
ARPROMにセツトされているパターン先頭アド
レス値にYレジスタの値を加算してアドレス指定
することによりアルペジヨパターンメモリ24d
から選択されたリズム種類に対応したアルペジヨ
パターンデータを読出し、Aレジスタに入れる。
この場合、Aレジスタに書込まれるのは、2バイ
ト1組のデータのうち1バイト目のデータであ
り、発音制御データ(上位4ビツト)及び発音タ
イミングデータ(下位4ビツト)を含むものであ
る。 次に、AレジスタのデータをXレジスタに移
す。そして、Aレジスタのデータと16進の「0F」
とのANDをとることによつて下位4ビツトの発
音タイミングデータを取出し、これをAレジスタ
に入れる。 次に、Aレジスタの値が拍内タイミングカウン
タTMPCNTの値と一致するか判定する。この判
定の結果、イエスYであるものとすると、状態ク
ラブARPONが16進の「00」でないか調べてアル
ペジヨ選択スイツチがオンか判定する。この判定
の結果、ノーNならばYレジスタのポインタ値を
1アツプする処理を2回してパターンデータ読出
しに戻る。この場合、Yレジスタのポインタ値を
2アツプするのは、アルペジヨパターンデータが
2バイト1組で記憶されているので、次の2バイ
ト1組のデータの1バイト目を読出すにはアドレ
ス値を2だけ進める必要があるからである。 この後、前記したと同様にしてアルペジヨパタ
ーンデータを読出し、そのうちの発音タイミング
データの示す値をカウンタTMPCNTの値とを比
較して拍内タイミング一致か判定し、この結果が
イエスYならば再びアルペジヨオンが判定し、こ
の結果がノーNならば再びポインタ値を2アツプ
する。 このようなポインタ値アツプ動作は拍内タイミ
ング一致が得られ且つアルペジヨオンでない限り
最大で4回までくりかえし可能である。すなわ
ち、この実施例ではアルペジヨ用に4つの楽音形
成チヤンネルが設けられていて特定の拍内タイミ
ングで最大4音のアルペジヨ音を同時発音可能な
ので、アルペジヨパターンデータには拍内タイミ
ング値同一の2バイド1組のデータが4音分含ま
れている可能性があり、このような場合には、上
記のような動作が4回くりかえされ、ポインタ値
は8つ進むことになる。 ところで、前述のアルペジヨオンかの判定でイ
エスYであつたものとすると、Xレジスタの内容
をAレジスタに移してから、チヤンネル判定を行
なう。これはアルペジヨパターンデータ中のチヤ
ンネルデータCHが4つの楽音形成チヤンネルの
うちのいずれのものを指定しているか判定するも
ので、まず1チヤンネルか判定し、ノーNならば
2チヤンネルか判定し、ノーNならば3チヤンネ
ルか判定し、ノーNならば4チヤンネルであると
判定する。 具体的には、チヤンネルデータCHが第3図に
示すように1バイト(8ビツト)のうち最上位ビ
ツトから数えて2番目及び3番目の2ビツトから
なり、1,2,3,4の各チヤンネルに対応して
それぞれ「00」、「01」。「10」、「11」のバイナリコ
ードを与えるので、1チヤンネルかの判定ではA
レジスタのデータと16進の「60」(=01100000)
とのANDをとつて16進の「00」になるか調べ、
2チヤンネルかの判定ではAレジスタのデータと
16進の「40」(=01000000)とのANDをとつて16
進の「00」になるか調べ、3チヤンネルかの判定
ではAレジスタのデータと16進の「20」(=
00100000)とのANDをとつて16進の「00」にな
るか調べる。 上記のようなチヤンネル判定の結果、1チヤン
ネルと判定されればレジスタARCGHに16進で
「00」を入れ、2チヤンネルと判定されれば
ARCGHに16進で「04」を入れ、3チヤンネルと
判定されればARCHに16進で「08」を入れ、4
チヤンネルと判定(3チヤンネルでないと判定)
されればARCHに16進で「0C」を入れる。 このようにしてレジスタARCHにいずれいか
のチヤンネルを指定するデータを入れた後は、ア
ルペジヨ音ストアのサブルーチンに移る。このサ
ブルーチンは、発音中ベース・アルペジヨデータ
メモリ28内の、レジスタARCHの示すチヤン
ネルに対応した記憶部(ARPRAM0〜
ARPRAM3,ARPRAM4〜ARPRAM7,
ARPRAM8〜ARPRAM11又はARPRAM12〜
ARPRAM15)にアルペジヨデータをストアする
ためのもので、詳しくは第16図について後述す
る。なお、アルペジヨ音ストアのサブルーチンで
はYレジスタのポインタ値が2アツプされるよう
になつている。 アルペジヨ音ストアのサブルーチンが終ると、
パターンデータ読出しに戻り、次のアルペジヨパ
ターンデータを読出、前回同様に拍内タイミング
一致が判定し、イエスYならばアルペジヨオンが
判定し、イエスYならばチヤンネル判定及びレジ
スタARCHのセツトを行なう。このような動作
も、前述のアルペジヨオンでない場合のポインタ
値アツプ動作と同様に拍内タイミング一致が得ら
れ且つアルペジヨオンである限り最大4回までく
りかえし可能である。 上記したのは、あるインタラプトがかかつたと
きにアルペジヨパターンデータを読出したところ
拍内タイミング一致が得られた(発音すべいアル
ペジヨ音があつた)場合の処理であるが、拍内タ
イミング一致が得られなかつた場合の動作は次の
ようになる。すなわち、拍内タイミング一致かの
判定はノーNとなるので、Aレジスタの値が16進
で「0D」以上か調べフラグデータ(拍エンドフ
ラグデータ又はリターンフラグデータ)か判定す
る。この判定の結果、ノーNであれば処理を終
る。 一方、フラグデータかの判定がイエスYであつ
た場合には、Aレジスタの値が16進で「0F」か
調べてリターンフラグデータでるか判定し、ノー
NであればAレジスタのデータが拍エンドフラグ
データ(16進で「0D」)であるので、これを拍エ
ンドフラグARHENDにセツトする。そして、Y
レジスタのポインタ値を1アツプし、この1アツ
プされたポインタ値をポインタARPNTにセツト
して処理を終る。また、リターンフラグかの判定
でイエスYであればYレジスタに16進で「FF」
をセツトてから、Aレジスタのリターンフラグデ
ータ(16進で「0F」)を拍エンドフラグ
ARHENDにセツトする。そして、Yレジスタの
値を1アツプすると、16進で「00」になるので、
この値をポインタARPNTにセツトして処理を終
る。 このように拍エンドフラグARHENDに拍エン
ドフラグリターン又はリターンフラグデータがセ
ツトされると、この次のインタラプトでは第15
図の上部の拍エンドかの判定でイエスYとな、同
図のサブルーチンは終る。このような動作は、第
13図のサブルーチンでカウンタTMPCNTのカ
ウント値が12に達して拍エンドフラグARHEND
がリセツトされるまでくりかえされる。 拍エンドフラグARHENDがリセツトされる
と、この次のインタラプトでは、拍エンドかの判
定がノーNとなるので、アルペジヨパターンデー
タとして拍エンドフラグデータの次のデータ又は
先頭アドレスのデータが読出され、以下、拍内タ
イミング一致か否か、アルペジヨオンか否かに応
じて前述したような動作がくりかえされる。 アルペジヨ音ストアのサブルーチン 次に、第16図を参照してアルペジヨ音ストア
のサブルーチンの処理を説明する。 まず、選択されたリズム種類に対応してレジス
タARPROMにセツトされているパターン先頭ア
ドレス値にYレジスタの値を加算してアドレス指
定することによりアルペジヨパターンメモリ24
dから選択されたリズム種類に対応したアルペジ
ヨパターンデータを読出し、Aレジスタに入れ
る。このときAレジスタに入れる1バイトのデー
タは、第15図のループにおいて拍内タイミング
一致が得られた発音タイミングデータ(下位4ビ
ツト)と、このデータに関連する発音制御データ
(上位4ビツト)とを含むものである。 次に、第5図に示すようにアルペジヨデータ記
憶部の先頭アドレス値(固定値)をARMとし、
レジスタARCH内のチヤンネル指定データの値
をACHとしてアドレス(ARM+ACH+3)を
指定することにより指定チヤンネルに対応した記
憶部(ARPRAM3,ARPRAM7,ARPRAM11
又はARPRAM15)にAレジスタから取出した発
音制御データ(音量データACC、チヤンネルデ
ータCH及びミユートデータM)を格納する。 次に、Yレジスタのポインタ値を1アツプして
から、レジスタARPROMにセツトされているパ
ターン先頭アドレス値にYレジスタのポインタ値
を加算してアドレス指定することによりメモリ2
4dからアルペジヨパターンデータを読出し、A
レジスタに入れる。このときAレジスタに入る1
バイトのデータはこの前に読出された1バイトの
データの次のものであり、音程データ(上位4ビ
ツト)及び音長データ(下位4ビツト)を含んで
いる。 次に、Aレジスタのデータを4ビツトライトシ
フトすることにより上位4ビツトの程度データを
取出し、この音程データをAレジスタからXレジ
スタに移す。ここで、音程データはアルペジヨ音
バツフア26c内の0〜15のいずれかのアドレス
を示しているものである。 次に、第4図に示すようにアルペジヨ音バツフ
ア26cの先頭アドレスをARPBFとし、Xレジ
スタの値をXとしてアドレス(ARPBF+X)を
指定することによりバツフア26cから上記音程
データに対応したキーコードデータを読出し、A
レジスタに入れる。 次に、Aレジスタのキーコードデータを、アド
レス(ARM+ACH+0)を指定することにより
指定チヤンネルに対応する記憶部(ARPRAM0,
ARPRAM4,ARPRAM8又はARPRAM12)に
オンキーコードデータとしてストアする。 次に、Aレジスタのキーコードデータを、アド
レス(ARM+ACH+2)を指定することにより
指定チヤンネルに対応する記憶部(ARPRAM2,
ARPRAM6,ARPRAM10又はARPRAM14)に
オフキーコードデータとしてストアする。 次に、レジスタARPROMにセツトされている
パターン先頭アドレス値にYレジスタのポインタ
値を加算してアドレス指定することによりメモリ
24dから前回と同じアルペジヨパターンデータ
(音程、音長データ)を読出し、Aレジスタに入
れる。そして、Aレジスタのデータと16進の
「0F」とのANDをとることによつて下位4ビツ
トの音長データを取出し、Xレジスタに入れる。 次に、前述のベース音出力のルーチンで述べた
と同様にアドレス(OFTIME+X)を指定する
ことに符長テーブル22cから上記音長データに
対応した時間長データを読出し、Aレジスタに入
れる。 次に、Aレジスタの値と小節内タイミングカウ
ンタTIMINGの値とを加算してオフタイミング
値を求め、これをAレジスタに入れる。 次に、Aレジスタの値(オフタイミング値)が
最大タイミングレジスタTMPMAXの値(3拍
子ならば36、4拍子ならば48)以上か調べて1小
節をこえたか判定する。この判定の結果、ノーN
ならばAレジスタのオフタイミングデータを、ア
ドレス(ARM+ACH+1)を指定することによ
り指定チヤンネルに対応する記憶部
(ARPRAM1,ARPRAM5,ARPRAM9又は
ARPRAM13)にストアする。また、判定結果が
イエスYならばYレジスタの値からレジスタ
TMPMAXの値を引いてオフタイミング値を補
正し、この補正されたオフタイミング値を上記し
たと同様にアドレス(ARM+ACH+1)の記憶
部にストアする。いずれにしても、アドレス
(ARM+ACH+1)の記憶部にストアされたオ
フタイミングデータはアルペジヨ音の発音開始後
サステインを開始すべき時点を小節内タイミング
値(3拍子ならば0〜35のいずれか、4拍子なら
ば0〜47のいずれか)で示すものである。 オフタイミングデータストタの後は、Yレジス
タのポインタ値を1アツプして処理を終る。この
ポインタ値アツプによつて第16図のサブルーチ
ンではポインタ値が2アツプしたことになり、第
15図のサブルーチンに戻つた場合に次の2バイ
ト1組のデータの1バイト目(発音制御・発音タ
イミングデータ)の読出しが可能になる。 なお、第16図のサブルーチンは、1回のイン
タラプトでも複数回実行されることがある。すな
わち、第15図で複音アルペジヨのための拍内タ
イミング一致が複数回(最大で4回)得られたも
のとすると、第16図のサブルーチンは拍内タイ
ミング一致の回数に対応して複数回実行される。 アルペジヨ音出力のサブルーチン 次に、第17図を参照してアルペジヨ音出力の
サブルーチンの処理を説明する。 まず、Xレジスタに16進で「00」を書込んで数
値0をセツトする。そして、アドレス(ARM+
X+0)を指定することにより1チヤンネルに対
応した記憶部ARPRAM0からオンキーコードデ
ータを読出し、Aレジスタに入れる。 次に、Aレジスタの値が16進で「00」でないか
調べてオンキーコードデータありか判定し、イエ
スYであれば、キーオン処理Cに移る。この処理
では、Aレジスタのオンキーコードデータをアル
ペジヨインターフエース58に出力する。インタ
ーフエース58に供給されたオンキーコードデー
タはオンキーコードレジスタ60に書込まれる。 次に、アドレス(ARM+X+3)を指定する
ことにより1チヤンネルに対応した記憶部
ARPRAM3から発音制御データを読出、Aレジ
スタに入れる。そして、Aレジスタの発音制御デ
ータをインターフエース58に出力する。インタ
ーフエース58に供給された発音制御データは発
音制御データレジスタ68に書込まれる。 インターフエース58では、割当制御回路64
がレジスタ68の発音制御データ中に含まれるチ
ヤンネルデータCHに示すチヤンネルいレジスタ
60のオンキーコードデータを割当てる。すなわ
ち、この場合はキーコード・キーオンレジスタ6
6の1チヤンネルに対応したレジスタ部に発音す
べきキーコードデータと、キーオンデータとがス
トアされ、これらのデータがアルペジヨ音形成回
路70に供給される。また、アルペジヨ音形成回
路70にはレジスタ68から音量データACC及
びミユートデータMが供給される。このため、ア
ルペジヨ音形成回路70はインターフエース58
からのキーコードデータ、キーオンデータ及び音
量データACCに応じて第1の楽音形成チヤネル
でアルペジヨ音信号を形成し、このアルペジヨ音
信号に応じてスピーカ38からアルペジヨ音が発
声される。 上記のような発音制御データ出力処理の後は、
アドレス(ARM+X+0)を指定して記録部
ARPROM0に16進で「00」を書込むことにより
オンキーコードデータをクリアする。そして、X
レジスタの値を4アツプしてから、Xレジスタの
値が16進で「0C」より大きいか調べて4チヤン
ネル分の処理が終了したか判定する。上記した例
では、これまでのところ1チヤンネル分の処理が
終つただけであるので、判定結果はノーNとな
り、オンキーコードデータ読出しに戻る。 この後は、オンキーコードデータありと判定さ
れる限り上記したと同様にキーオン処理Cを残り
の2〜4チヤンネルについて行なう(従つて、特
定の拍内タイミングで4音まで同時発音可能であ
る)が、2〜4チヤンネルに対応するオンキーコ
ードデータがないものとする。2チヤンネルに対
応したオンキーコードデータを読出した後のオン
キーコードデータありかの判定でノーNとなる。 この場合には、アドレス(ARM+X+1)を
指定して2チヤンネルに対応する記憶部
ARPRAM5からオフタイミングデータを取出し、
Aレジスタに入れる。そして、Aレジスタの値と
小節内タイミングカウンタTIMINGの値とが一
致するか判定する。 この判定の結果、ノーNであるとすると、上記
したと同時にXレジスタの値を4アツプしてか
ら、3チヤンネルに対応したオンキーコードデー
タを読出し、オンキーコードデータありか判定す
る。この判定の結果、ノーNとなるので、上記し
たと同様に3チヤンネルに対応したオフタイミン
グデータを読出し、小節内タイミング一致か判定
する。 この判定の結果、ノーNであるとすると、3チ
ヤンネル対応データについて上記したと同様の動
作が4チヤンネル対応データについて行なわれ
る。この場合、小節内タイミング一致かの判定で
ノーNとなつた後、Xレジスタの値をアツプする
と、Xレジスタの値が16進の「0C」より大きい
ので4チヤンネル分終了かの判定がイエスYとな
り、処理を終る。 なお、上記の例にいて、1チヤンネルに対応し
たキーコードコードデータがなかつたものとすれ
ばキーオン処理Cは行なわれず、オフタイミング
読出し及び小節内タイミング一致判定等が4回行
なわれて処理が終る。 上記したのは、あるインタラプトがかかつた場
合の処理であるが、この後何回目かのインタラプ
トがかかつたとき1チヤンネルに対応するオフタ
イミングデータについて小節内タイミング一致か
の判定がイエスYになるものとすると、キーオフ
処理Dに移る。この処理では、まずアドレス
(ARM+X+2)を指定して1チヤンネルに対
応した記憶部ARPRAM2からオフキーコードデ
ータを読出し、Aレジスタに入れる。そして、A
レジスタの値が16進で「00」でないか調べてオフ
キーコードデータありか判定し、通常イエスYで
あるのでAレジスタのオフキーコードデータをア
ルペジヨインターフエース58に出力する。イン
ターフエース58に供給されたオフキーコードデ
ータはオフキーコードレジスタ62にストアさ
れ、割当制御回路64によつてレジスタ66内の
1チヤンネルに対応したレジスタ部に転送され
る。このため、1チヤンネルに対応したレジスタ
部では先にストアされていたキーオンデータがキ
ーオフデータで置換され、このキーオフデータが
アルペジヨ音形成回路70に供給される。 アルペジヨ音形成回路70はキーオフデータを
受取ると、前述のベース音形成回路56の場合と
同様にして、第1の楽音形成チヤンネルで形成中
のアルペジヨ音信号をサステイン制御する。この
ため、1チヤンネルに対応した発音中のアルペジ
ヨ音は徐々に減衰していく。なお、このサステイ
ン制御において、レジスタ68にストアされてい
るミユートデータMが利用されることは前述のベ
ース音のサステイン制御の場合と同様である。 上記のようなオフキーコードデータ出力処理の
後は、アドレス(ARM+X+2)を指定して記
憶部ARPRAM2に16進で「00」を書込んでオフ
キーコードデータをクリアする。 次に、Xレジスタの値を4アツプして2チヤン
ネルに対応したオンキーコードデータを読出し、
オンキーコードデータありか判定してイエスYな
らば前述したと同様にキーオン処理Cにより2チ
ヤンネルに対応したアルペジヨ音を発生させる。 この後、3及び4チヤンネルに対応したデータ
についてオンキーコードありか否か、小節内タイ
ミング一致か否かに応じて前述したような処理を
行なう。 上記した第15図〜第17図のサブルーチンに
よれば、例えばC2,E2,G2のアルペジヨ音を順
次に発音させうるばかりでなく、同時に発音させ
ることもできる。また、いずれの発音形態をとる
にしても、アルペジヨ音バツフア26cには複数
オクターブに展開した16音分のキーコードデータ
がストアされているので、アルペジヨパターンデ
ータの内容を適宜定めておくことにり例えばC2
−E2−G2,C3−E3,C4−E4−G4のように、オク
ターブシフトした自動アルペジヨ演奏が可能であ
る。 以上のように、この発明によれば、押鍵がなさ
れるたびにその押鍵状態に関連して発音する可能
性のあるベース・アルペジヨキーデータを形成
し、メモリに格納しておくので、ベース音及び/
又はアルペジヨ音と発生すべきタイミングでは格
納データを適宜選択して出力すればよく、マイク
ロコンピユータ等でベース音発生及びアルペジヨ
音発生を時分割的に処理する場合にリズムに同期
したベース・アルペジヨ音発生が可能になる効果
は大きい。その上、伴奏用キーデータを伴奏パタ
ーン中の音指定データとは独立に形成して所定順
序で記憶すると共に音指定データで伴奏用キーデ
ータを順位指定して読出すようにしたので、パタ
ーン変更操作ないしでも変化に富んだ伴奏音発生
が可能になる効果が得られる。さらに、ベース音
発生の場合にあつては、和音検出時に第1のメモ
リから第2のメモリにベース用キーデータを転送
して音高修正処理を施すようにしたので、処理が
簡単になると共にリズムとの十分な同期関係にて
訂正音高のベース音を発生可能となる付加的効果
も得られる。
C3,C4,B2,B3,B4はいずれも16進でそれぞれ
「01」、「11」、「21」、「0C」、「1C」、「2C」で表
わ
される。なお、16進の「0C」につづく16進の
「0D」、「0E」、「0F」と、16進の「00」はノート
コードとして使用されないが、16進の「0D」及
び「0F」は前述したようにそれぞれ拍エンドフ
ラグデータ及びリターンフラグデータに使用され
る。 UKインターフエース32はパネルスイツチ操
作に基づくUK音色データ及びUK操作に基づく
UKキーデータをUK楽音形成回路34に供給し、
同回路34は供給されたデータに応じてUK楽音
信号を形成する。このUK楽音信号は出力アンプ
36を介してスピーカ38に供給され、音響変換
される。 LKインターフエース40はパネルスイツチ操
作に基づくLK音色データ及びLK操作に基づく
LKキーデータをLK楽音形成回路42に供給し、
同回路42は供給されたデータに応じてLK楽音
信号を形成する。LK楽音信号は出力アンプ36
を介してスピーカ38に供給され、音響変換され
る。なお、UKインターフエース32を介しての
UKキーデータ出力処理は第7図について後述す
るメインルーチンで行なわれるが、和音バツフア
26aからLKインターフエース40を介しての
LKキーデータ出力処理は第13図について後述
するインタタラプトルーチンで行なわれる。 ベースインターフエース44は、オンキーコー
ド(ONKC)レジスタ46、オフキーコード
(OFFKC)レジスタ48、割当制御回路50、
キーコード(KC)・キーオン(KON)レジスタ
52及び発音制御データレジスタ54をを含んで
おり、あるベース音を発音しているときにその前
のベース音の発音を持続できるように2つの楽音
形成チヤンネルにキーデータを交互に割当てるよ
うになつている。ベースインターフエース44か
らのキーデータ及び発音制御データはベース音形
成回路56に供給され、同回路56は供給された
データに基づいてベース音信号を形成する。この
ベース音信号は出力アンプ36を介してスピーカ
38に供給され、音響変換される。 アルペジヨインターフエース58は、オンキー
コード(ONKC)レジスタ60、オフキーコー
ド(OFFKC)レジスタ62、割当制御回路6
4、キーコード(KC)・キーオン(KON)レジ
スタ66及び発音制御データレジスタ68を含ん
でおり、発音制御データ中に含まれるチヤンネル
データCHにしたがつて4つの楽音形成チヤンネ
ルのいずれかにキーデータを割当てるようになつ
ている。アルペジヨインターフエース58からの
キーデータ及び発音制御データはアルペジヨ音形
成回路70に供給れ、同回路70は供給されたデ
ータに基づいてアルペジヨ音信号を形成する。こ
のアルペジヨ音信号は出力アンプ36を介してス
ピーカ38に供給され、音響変換される。 リズムインターフエース72は発音すべき楽器
種類を指定するデータ及び発音制御データをリズ
ム音形成回路74に供給し、同回路74は供給さ
れたデータに応じてリズム音信号を形成する。こ
のリズム音信号は出力アンプ36を介してスピー
カ38に供給され、音響変換される。 ベース音バツフア26bからベースインターフ
エース44を介してのベースデータ出力処理と、
アルペジヨ音バツフア26cからアルペジヨイン
ターフエース58を介してのアルペジヨデータ出
力処理と、リズムインターフエース72を介して
のリズムデータ出力処理とはいずれも第13図に
ついて後述するインタラプトルーチンで行なわれ
る。 テンポタイマ76はテンポボリユームでセツト
されたテンポに応じて1拍内で12個のタイミング
パルスを発生し、各パルスに応じて1拍内で12回
メインルーチンにインタラプトをかけるものであ
る。 メインルーチン 次に、第7図を参照してメインルーチンの処理
を説明する。図示しない電源スイツチをオンする
と、メインルーチンの処理がスタートし、各鍵盤
及び各パルススイツチ等を走査して鍵状態情報及
びスイツチ状態情報を検出する。そして、鍵又は
パネルスイツチ等に状態変化があるか判定し、ノ
ーNならば走査・検出動作をくりかえす。また、
状態変化ありかの判定でイエスYならば鍵盤・パ
ルススイツチ等の状態情報をワーキングエリア3
0内の対応するデータレジスタにそれぞれ一旦ス
トアする。 次に、LKの鍵状態に変化があるか判断する。
通常はLK押鍵開始前に種々のパネル操作子の操
作がなされる。このような場合は、LK変化あり
かの判定はノーNとなり、パルス操作子の操作に
基づく処理を行なう。すなわち、。UK音色選択
スイツチ及びLK音色選択スイツチの操作に基づ
いて、UK音色データをワーキングエリア30か
らUKインターフエース32を介してUK楽音信
号回路34に、またLK音色データをワーキング
エリア30からLKインターフエース40を介し
てLK楽音形成回路42にそれぞれ送出する。ま
た、リズム選択スイツチの操作に基づき、選択さ
れたリズム種類に応じてレジスタRHYROM,
CHDROM,BASROM,ARPROMにそれぞれ
パターン先頭アドレスをセツトする。そして、レ
ジスタTMPMAXには、選択されたリズムが3
拍子か4拍子かに応じてそれぞれ最大タイミング
値36又は48をセツトする。 さらに、リズムスタート・ストツプスイツチに
よるリズムスタート操作に基づいてリズムランフ
ラグRHYRUNをセツトし、カウンタTMPCNT
及びTIMINGをクリアし、ポインタRHPNT,
CDPNT,BAPNT,ARPNTをクリアし、テン
ポタイマ76をイニシヤライズし、拍エンドフラ
グRHHEND,CDHEND,BAHEND,
ARHENDをクリアする。なお、リズムスター
ト・ストツプスイツチをストツプ位置に操作した
場合はリズムランフラグRHYRUNをクリアす
る。 さらに、ウオーキングベース選択スイツチのオ
ン操作に基づいて、状態フラグPKWONをセツ
トし、またアルペジヨ選択スイツチのオン操作に
基づいて、状態フラグARPONをセツトする。な
お、ウオーキングベース選択スイツチ又はアルペ
ジヨ選択スイツチをオフした場合には状態フラグ
PKWON又はARPONをそれぞれリセツトする。 ところで、LK押鍵を開始すると、LK変化あり
かの判定がイエスYとなり、LK押鍵数及びLK押
鍵音セツトの処理に移る。すなわち、LKで押さ
れた鍵の数をレジスタLKCNTにセツトすると共
に、LKで押された鍵に対応するキーコードデー
タを高い方から順に並べてバツフアレジスタ
LKHLBFに書込む。 次に、LK押鍵状態及びFCモードかSFモード
かに応じて和音検出テーブル22aを参照するこ
とにより和音検出を行ない、検出根音に対応した
トニツクデータをレジスタTONICに且つ検出和
音タイプに対応した和音タイプデータをレジスタ
TYPEにそれぞれ書込む。ここで、レジスタ
TONIC内のデータフオーマツトは1バイト(8
ビツト)のうち上位4ビツトが不使用であり、下
位4ビツトが1〜12のトニツクノートナンバを表
わすようになつている。また、レジスタTYPE内
のデータも上位4ビツトが不使用で、下位4ビツ
トが和音タイプを表わすようになつている。 次に、ベース音セツトのサブルーチンに移り、
ベース音バツフア26bに、検出和音に関連して
発音する可能性のあるベースキーコードデータを
16音分ストアするが、この処理の詳細は第8図に
ついて後述する。 次に、アルペジヨ音セツトのサブルーチンに移
り、アルペジヨ音バツフア26cに、検出和音に
関連して発音する可能のあるアルペジヨキーコー
ドデータを16音分ストアするが、この処理の詳細
は第12図について後述する。 この後、和音バツフア26aに和音データをセ
ツトする。ここでセツトされる和音データはFC
モードの場合にはLK押鍵に対応したキーコード
データであり、SFモードの場合には検出した根
音及び和音タイプに応じて形成される和音構成音
キーコードデータである。 鍵盤・パネルスイツチ等に状態変化がある場合
について上述したような処理が終わると、鍵盤・
パネルスイツチ等の状態検出の処理に戻り、以
下、同様の動作がくりかえされる。 ベース音セツトのサブルーチン 次に、第8図を参照してベース音セツトのサブ
ルーチンの処理を説明する。 まず、レジスタTONICのトニツクデータを
CPU18内のAレジスタにロードする。そして、
Aレジスタにロードされたトニツクデータを4ビ
ツトレフトシフトすることにより16倍する。前述
したようにトニツクデータは下位4ビツトで1〜
12のトニツクノートナンバ(ベース音テーブル2
2b内のトニツクC,C#,D……Bに対応)を
表わすようになつているので、Aレジスタのトニ
ツクデータを16倍すると、16,32,48……192の
いずれかの値を示す16倍トニツクデータが得られ
る。 次に、16倍トニツクデータをAレジスタから
CPU18内のXレジスタに転送する。そして
CPU18内にYレジスタには16進で「00」を書
込むことにより数値0をセツトする。これはベー
ス音バツフア26bに最初のキーコードデータを
書込むのを可能にするためである。 次に、第2図に示すようにベース音テーブル2
2bの先頭アドレス値(固定値)をBASTBと
し、先にXレジスタに格納された16倍トニツクデ
ータの値をXとすると、(BASTB−16+X)な
る演算を実行してテーブル2にbから最初に読出
すべきキーコードデータのアドレスを求め、この
アドレスに対応したキーコードデータをテーブル
22bから読出してAレジスタにロードする。そ
して、第4図に示すようにベース音バツフア26
bの先頭アドレス値(固定値)をBASBFとする
と、これにYレジスタの値を加算することによつ
てベース音バツフア26bの最初に書込むべきア
ドレスを指定してそこにAレジスタからの最初の
キーコードデータをストアする。この結果、検出
和音の根音に対応した特定のトニツクに属する16
音分のキーコードデータのうち、最初のキーコー
ドデータがベース音テーブル22bからAレジス
タを介してベース音バツフア26bに転送された
ことになる。 この後は、Xレジスタ及びYレジスタの値をそ
れぞれ1ずつアツプして読出アドレス及び書込ア
ドレスを1つずつ進める。そして、Yレジスタの
値が16に等しいか判定し、ノーNならば上記した
ようなキーコードデータ転送動作をくりかえす。
このような転送動作を最初のものも含めて16回行
なうと、特定のトニツクに属する16音分のキーコ
ードデータがすべてベース音テーブル22bから
ベース音バツフア26bに転送されたことにな
る。 このとき、Yレジスタの値は16になり、Yレジ
スタ値16かの判定はイエスYとなるから、次に和
音タイプに応じてベース音バツフア26b内のデ
ータを補正する処理に移る。まず、レジスタ
TYPEの和音タイプデータをAレジスタにロード
し、Aレジスタの値が16進で「01」が調べて和音
タイプがセブンス(7th)が判定し、イエスYな
らばXレジスタに7度データ(16進で「06」)を
セツトする。そして、第9図について後述するよ
うな半音ダウンのサブルーチンに移り、ベース音
バツフア26b内の7度に対応したキーコードデ
ータの音程を半音ダウンさせて処理を終る。 セブンスかの判定でノーNであつたならば、A
レジスタの値が16進で「04」か調べて和音タイプ
がマイナ(m)か判定する。この判定の結果、イ
エスYならばXレジスタに3度データ(16進で
「02」)をセツトする。そして、半音ダウンのサブ
ルーチンに移り、ベース音バツフア26b内の3
度に対応したキーコードデータの音程を半音ダウ
ンさせて処理を終る。 マイナかの判定でノーNであつたならば、Aレ
ジスタの値が16進で「05」か調べて和音タイプが
マイナセブンス(m7)が判定する。この判定の
結果、イエスYならば、前述のマイナの場合と同
様に、Xレジスタに3度データをセツトして半音
ダウンのサブルーチンを実行する。次に、前述の
セブンスの場合と同様に、Xレジスタに7度デー
タをセツトして半音ダウンのサブルーチンを実行
し、処理を終る。 マイナセブンスかの判定でノーNであつたんら
ば、Aレジスタの値が16進で「06」か調べて和音
タイプがマイナセブンス5度フラツト(m7(5b))
か判定する。この判定の結果、イエスYならば、
前述のマイナの場合と同様に、Xレジスタに3度
データをセツトして半音ダウンのサブルーチンを
実行する。次に、Xレジスタに5度データ(16進
で「04」)をセツトして半音ダウンのサブルーチ
ンを実行することによりベース音バツフア26b
内の5度に対応したキーコードデータの音程を半
音ダウンさせる。この後、前述のセブンスの場合
と同様に、Xレジスタに7度データをセツトして
半音ダウンのサブルーチンを実行し、処理を終
る。 マイナセブンス5度フラツトかの判定でノーN
であつたならば、Aレジスタの値が16進で「07」
か調べて和音タイプがデイミニツシユ(Dim)か
判定する。この判定の結果、イエスYならば、前
述のマイナの場合と同様に、Xレジスタに3度デ
ータをセツトして半音ダウンのサブルーチンを実
行する。次に、前述のマイナセブンス5度フラツ
トの場合と同様に、Xレジスタに5度データをセ
ツトして半音ダウンのサブルーチンを実行する。
この後、Xレジスタに7度データをセツトし、第
11図について後述するような全音ダウンのサブ
ルーチンに移り、ベース音バツフア26b内の7
度に対応したキーコードデータの音程を全音ダウ
ンさせて処理を終る。 デイミニツシユかの判定でノーNであつたなら
ば、Aレジスタの値が16進で「08」か調べて和音
タイプがオーギユメント(Aug)か判定する。こ
の判定の結果、イエスYならば、前述のセブンス
の場合と同様に、Xレジスタに7度データをセツ
トして半音ダウンのサブルーチンを実行する。次
に、Xレジスタに5度データをセツトし、第10
図について後述するような半音アツプのサブルー
チンに移り、ベース音バツフア26b内の5度に
対応したキーコードデータの音程を半音アツプさ
せて処理を終る。 オーギユメントかの判定でノーNであつたらな
ば、和音タイプはメジヤ(M)、シツクスス
(6th)又はメジヤセブンス(M7th)のいずれか
であり、上述のような音程補正を施すことなく処
理を終る。 半音ダウンのサブルーチン 次に、第9図を参照して半音ダウンのサブルー
チンの処理を説明する。 まず、アドレス値BASBFにXレジスタの度数
値Xを加算してベース音バツフア26bのアドレ
ス(BASBF+X)を指定することにより同バツ
フア26bからセツト度数に対応したキーコード
データを取出し、Aレジスタにロードする。そし
て、Aレジスタのキーコードデータの下位4ビツ
ト(ノートコード)が16進で「01」か調べて音名
がCであるか判定する。この判定の結果、ノーN
であればAレジスタの値から1を引いて音程を半
音ダウンさせる。また、判定結果がイエスYであ
れば音高BにダウンさせるべくAレジスタの値か
ら5を引く。これは、前述したように16進の
「00」、「0D」〜「0F」がノートコードに使用され
ていないので、C音と、その半音下のB音とでは
ノートコード値で5だけ離れているからである。 この後、Aレジスタ内の半音ダウンされたキー
コードデータをベース音バツフア26b内の元の
アドレス(BASBF+X)に戻して格納する。そ
して、Aレジスタの値に16進で「10」が加算する
ことによつてAレジスタのキーコードデータのオ
クターブ値を1だけアツプし、このオクターブア
ツプされたキーコードデータをベース音バツフア
26bのアドレス(BASBF+X+7)に格納し
て処理を終る。この結果、ベース音バツフア26
b内のアドレス(BASBF+X)のキーコードデ
ータと、このデータり1オクターブ(7アドレ
ス)上の同一音名のキーコードデータとはいずれ
も音程が音程ダウンされたことになる。 半音アツプのサブルーチン 次に、第10図を参照して半音アツプのサブル
ーチンの処理を説明する。 まず、前述の半音ダウンの場合と同様にベース
音バツフア26bからセツト度数に対応したキー
コードデータを取出し、Aレジスタにロードす
る。そして、Aレジスタの下位4ビツトが16進で
「0C」か調べて音名がBか判定する。この判定の
結果、ノーNであればAレジスタの値に1を加算
して音程を半音アツプさせる。また、判定結果が
イエスYであれば音高CにアツプさせるべくAレ
ジスタの値に5を加算する。これは、前述の半音
ダウンの場合とは逆の処理である。 この後、Aレジスタ内の半音アツプされたキー
コードデータをベース音バツフア26b内の元の
アドレス(BASBF+X)に戻して格納する。そ
して、前述の半音ダウンの場合と同様にAレジス
タのキーコードデータのオクターブ値を1だけア
ツプし、このオクターブアツプしたキーコードデ
ータをベース音バツフア26bのアドレス
(BASBF+X+7)に格納して処理を終る。こ
の結果、ベース音バツフア26b内のアドレス
(BASBF+X)のキーコードデータと、このデ
ータより1オクターブ(7アドレス)上の同一音
名のキーコードデータとはいずれも音程が半音ア
ツプされたことになる。 全音ダウンのサブルーチン 次に、第11図を参照して全音ダウンのサブル
ーチンの処理を説明する。 まず、前述の半音ダウンの場合と同様にベース
音バツフア26bからセツト度数に対応したキー
コードデータを取出し、Aレジスタにロードす
る。そして、Aレジスタの下位4ビツトが16進で
「02」以上か調べて音高がC#以上か判断する。
この判定の結果、ノーNであればAレジスタの値
から2を引いて音程を全音ダウンさせる。また、
判定結果がイエスYであればC#はBに、Cは
A#にそれぞれダウンさせるべくAレジスタの値
から6を引く。これは半音ダウンの場合よりさら
に半音(ノートコード値で1)低いからである。 この後、Aレジスタ内の全音ダウンされたキー
コードデータをベース音バツフア26b内の元の
アドレス(BASBF+X)に戻して格納する。そ
して、前述の半音ダウンの場合と同様にAレジス
タのキーコードデータのオクターブ値を1だけア
ツプし、このオクターブアツプしたキーコードデ
ータをベース音バツフア26bのアドレス
(BASBF+X+7)に格納して処理を終る。こ
の結果、ベース音バツフア26b内のアドレス
(BASBF+X)のキーコードデータと、このデ
ータより1オクターブ(7アドレス)上の同一音
名のキーコードデータとはいずれも音程が全音ダ
ウンされたことになる。 アルペジヨ音セツトのサブルーチン 次に、第12図を参照してアルペジヨ音セツト
のサブルーチンの処理を説明する。 まず、レジスタLKCNTからLK押鍵数データ
を読出してAレジスタにロードすることによりA
レジスタにLK押鍵数をセツトする。そして、A
レジスタの値が4以上か調べてLK押鍵数が5以
上か判定する。この判定の結果、ノーNならばA
レジスタのデータをそのままアルペジヨノート数
を示すものとしてレジスタARPCNTにストアす
る。また、判定結果がイエスYであつたならば、
Aレジスタの値を4に書換えることによりアルペ
ジヨノート数を4に制限してから、Aレジスタの
データをレジスタARPCNTにストアする。 次に、レジスタLKCNTからLK押鍵数データ
を読出してXレジスタにロードすることによりX
レジスタにLK押鍵数をセツトする。そして、前
述のLK音用のバツフアレジスタLKHLBFの先頭
アドレス値(固定値)を第6図に示すように
HLBとし、Xレジスタの押鍵数をXとしてアド
レス(HLB+X−1)を指定することによりレ
ジスタLKHLBFから最低音に対応したキーコー
ドデータを読出し、これをAレジスタに入れる。
この場合、レジスタLKHLBFにはLKで押された
複数鍵に対応するキーコードデータが先頭アドレ
スHLBに最高音のものが入るようにして高低順
に並べてストアされているので、上記のようにア
ドレス(HLB+X−1)を指定すると、LKで押
された鍵のうちの最低音に対応したキーコードデ
ータを読出すことがきる。 次に、Aレジスタの値が16進で「10」より小さ
いか調べて最低音が最低オクターブに属するもの
か判定する。この判定の結果、ノーNであれば、
ダウンすべきオクターブ数を演算してレジスタ
OCTDWに入れる。すなわち、アルペジヨ音バ
ツフア26cにはLK発音域の最低オクターブに
属するアルペジヨノートから入れていきたいの
で、Aレジスタの上位4ビツト(最低音オクター
ブ)から16進の「00」(発音域最低オクターブ)
を引いてオクターブ差を求め、これをダウンすべ
きオクターブ数としてレジスタOCTDWに書込
んでおく。 このような書込みが終つた後又は最低オクター
ブかの判定でイエスYとなつた後、Yレジスタに
16進で「00」を書込み、数値0とセツトする。こ
れはアルペジヨ音バツフア26cに最初のアルペ
ジヨキーコードデータを書込むのを可能にするた
めである。 次に、アドレス(HLB+X−1)を指定する
ことによりレジスタLKHLBFから最初のキーコ
ードデータ(最低音に対応)を読出してAレジス
タに入れる。そして、Aレジスタの値からレジス
タOCTDWの値を差引くことによりオクターブ
ダウンの補正を施し、この補正後のデータをAレ
ジスタに入れておく。 次に、Aレジスタのキーコードデータをアルペ
ジヨ音バツフア26cにストアする。このときの
書込アドレスは、第4図に示すようにバツフア2
6cの先頭アドレス値(固定値)をARPBFと
し、Yレジスタの値をYとすれば、(ARPBF+
Y)で指定されるが、前述したようにYレジスタ
の値は0であるので、バツフア26cの先頭アド
レスARPBFが最初の書込アドレスとなる。 次に、Xレジスタ及びYレジスタの値をそれぞ
れ1ずつアツプして読出アドレス及び書込アドレ
スを1つずつ進める。 この後、Yレジスタの値が3より大きいか調べ
ることにより4音分のキーコードデータ転送が終
了しが判定し、ノーNであれば上記のようなレジ
スタLKHLBFからアルペジヨ音バツフア26c
へのデータ転送動作をくりかえす。そして、この
ようなデータ転送動作を最初のものを含めて4回
行なうと、アルペジヨ音バツフア26cには4音
分のキーコードデータがストアされたことにな
り、4音転送終了かの判定はイエスYとなる。 このようなデータ転送処理においては、LK押
鍵数(Xレジスタの値)が4より大きいとして
も、アルペジヨ音バツフア26cにはレジスタ
LKHLBF内の低音側から数えて4音分のキーデ
ータしかストアされない。また、LK押鍵数が4
であればバツフア26cにはレジスタLKHLBF
内の4音分のキーデータがストアされるが、LK
押鍵数が4より小さい、例えば2であつた場合に
はバツフア26cにはレジスタLKHLBF内にな
い無関係なデータが2音分ストアされる。しか、
このような無関係データはこのデータ書込処理で
消去されるので問題にならない。 さて、4音転送終了かの判定がイエスYになる
と、Xレジスタに16進で「00」を書込んで数値0
をセツトすると共に、Yレジスタにレジスタ
ARPCNからアルペジヨノート数をセツトする。 次に、アドレス(ARPBF+X)を指定するこ
とによりアルペジヨ音バツフア26cから最初の
キーコードデータ(最高音に対応)を読出してA
レジスタに入れる。そして、Aレジスタの値が16
進で「41」より大きいか調べてAレジスタのデー
タの音高がC6音より高いか判定する。これは各
音毎に最高オクターブに達するまで1オクターブ
ずつ音程を上げていき、最高オクターブに達した
ら同一オクターブをくりかえるようにするためで
ある。この音高>C6かの判定の結果、イエスY
ならばオクターブアツプ処理不要なので、Aレジ
スタのキーコードデータをそのまま(すなわちオ
クターブ変更せずに)アルペジヨ音バツフア26
cのアドレス(ARPBF+Y)にストアする。ま
た、判定結果がノーNであつたならば、Aレジス
タの値に16進で「10」を加算して1オクターブア
ツプの補正を施し、この補正されたデータをバツ
フア26cのアドレス(ARPBF+Y)にストア
する。 ここで、アルペジヨ音バツフア26cの書込ア
ドレスは(ARPBF+Y)で指定されるので、前
述したようにLK押鍵数(すなわちYレジスタの
値Y)が2であつたとしても前述の無関係データ
は新たに書込まれるキーコードデータによつて置
換されるので、バツフア26c内に残ることはな
い。 次に、Xレジスタ及びYレジスタの値をそれぞ
れ1ずつアツプして読出アドレス及び書込アドレ
スを1つずつ進める。 この後、Yレジスタの値が15おり大きいか調べ
てアルペジヨ音バツフア26cがキーコードデー
タで一杯か判定し、ノーNであれば上記のような
データ読出・ストア動作をくりかえす。そして、
このようなデータ読出・ストア動作を最初のもの
を含めて(16−Y0)回行なうと、バツフア26
cは一杯になる。ここで、Y0はレジスタ
ARPCNTの値に対応するYレジスタの初期値で
ある。バツフア26cが一杯になると、一杯かの
判定がイエスYとなつて処理を終る。 インタラプトルーチン 次に、第13図を参照してインタラプトルーチ
ンの処理を説明する。 前述したようにテンポタイマ76は1拍内で12
回インタラプトをかけるようになつているが、イ
ンタラプト命令が発生されるたびに、前述のメイ
ンルーチンから第13図のインタラプトルーチン
に移る。 インタラプトルーチンでは、まず、メインルー
チンで使用されていた各レジスタの内容をセーブ
してから、リズムランフラグRHYRUNが0でな
いか調べてリズムラン(リズムスタート・ストツ
プスイツチがスタート位置にセツトされている)
か判定する。この判定の結果、ノーNならばリズ
ム音、和音、ベース音、アルペジヨ音を発生する
ための処理が不要なので、各レジスタの内容を復
帰させてインタラプトルーチンを終り、メインル
ーチンに戻る。 リズムランからの判定結果、イエスYであつた
とすると、リズム音出力の処理に移る。この処理
は、先頭アドレスレジスタRHYROM、アドレス
ポインタRHPNT、拍内タイミングカウンタ
TMPCNT、拍エンドフラグRHHENDを利用し
てリズムパターンメモリ24cを参照し、発音す
べきリズム楽器(打楽器)に対応する楽器種類指
定データ及び発音制御データをリズムインターフ
エース72を介してリズム音形成回路74に供給
するもので、これによつて特定の拍内タイミング
におけるリズム音発生が可能になる。なお、この
リズム音出力処理は、オフタイミング処理及びキ
ーオフ処理がない点を除き、後述のベース音出力
処理と同様である。 次に、和音出力の処理に移る。この処理は、先
頭アドレスレジスタCHDROM、アドレスポイン
タCDPNT、拍内タイミングカウンタ
TMPCNT、拍エンドフラグCDHENDを利用し
て和音パターンメモリ24bを参照し、和音バツ
フア26aにセツトされている和音データをLK
インターフエース40を介してLK楽音形成回路
42に供給するもので、これによつて特定の拍内
タイミングにける和音発生が可能になる。なお、
この和音出力処理は、発音すべきキーコード出力
を選択しない点及び複数音分のキーコードデータ
が同時に出力される点を除き、後述のベース音出
力処理と同様である。 次に、ベース音出力のサブルーチンを実行して
特定の拍内タイミングにおけるベース音発生を可
能にするが、その詳細は第14図について後述す
る。 次にアルペジヨ変換のサブルーチン及びアルペ
ジヨ音出力おサブルーチンを順次に実行して特定
の拍内タイミングにおけるアルペジヨ音発生を可
能にするが、その詳細は第15図〜第17図につ
いて後述する。 この後、拍内タイミングカウンタTMPCNTを
1をカウントアツプする。そして、小節内タイミ
ングカンウタTIMNINGも1カウントアツプす
る。 次に、カウンタTMPCNTの値が12に達したか
調べることにより拍オーバーか判定し、その結果
がノーNならば各レジスタを復帰させてメインル
ーチンに戻る。また、拍オーバーかの判定結果が
イエスYならば拍エンドフラグRHHEND、
CDHEND,BAHEND、ARHENDをそれぞれ
リセツトさせてから、カウンタTMPCNTをリセ
ツトさせる。 この後、カウンタTIMNINGの値が最大タイ
ミングレジスタTMPMAXの値(3拍子ならば
36、4拍子ならば48)に一致するか調べて小節オ
ーバーか判定し、その結果がノーNならば各レジ
スタを復帰させてメインルーチンに戻る。また、
小節オーバーかの判定結果がイエスYであればカ
ウンタTIMINGをリセツトしてから各レジスタ
を復帰させてメインルーチンに戻る。 上記したインタラプトルーチンによれば、リズ
ム音、和音、ベース音、アルペジヨ音をそれぞれ
1拍内で12回ずつ発生可能であるが、12個の拍内
タイミングのうちどのタイミングで各々の音を発
生させるかは選択されたリズム種類に応じてパタ
ーンメモリ24から読出されるリズムパターン、
和音パターン、ベースパターン、アルペジヨパタ
ーンに応じてそれぞれ決まる。 ベース音出力のサブルーチン 次に、第14図を参照してベース音出力のサブ
ルーチンの処理を説明する。 まず、拍エンドフラグBAHENDが16進で
「00」でないか調べて拍エンドか判定する。フラ
グBAHNDは拍エンドフラグデータの検出時に
16進で「0D」がセツトされる一方、リターンフ
ラグデータの検出時に16進で「0F」がセツトさ
れるもので、拍エンドかの判定の結果、イエスY
ならば拍エンドフラグデータ又はリターンフラグ
データが検出されたことを意味し、ノーNならば
いずれのフラグデータも検出されていないことを
意味する。 拍エンドかの判定でノーNであつたものとする
と、アドレスポインタBAPNTからポインタ値
(ベースパターンメモリ24a内の相対アドレス)
を読出してYレジスタに入れる。そして、選択さ
れたリズム種類に対応してレジスタBASROMに
セツトされているパターン先頭アドレス値にYレ
ジスタの値を加算してアドレス指定することによ
りベースパターンメモリ24aから選択されたリ
ズム種類に対応したベースパターンデータを読出
し、Aレジスタに入れる。この場合、Aレジスタ
に書込まれるのは、2バイト1組のデータのうち
1バイト目のデータであり、発音制御データ(上
位3ビツト)及び発音タイミングデータ(下位4
ビツト)を含むものである。 次に、Aレジスタの下位4ビツトの示す発音タ
イミング値が拍内タイミングカウンタTMPCNT
の値と一致するか判定する。この判定の結果、イ
エスYであるものとすると、Yレジスタのポイン
タ値を1だけアツプする。 次に、状態フラグPKWONが1か調べてウオ
ーキングベース選択スイツチがオンか判定する。
この結果、ノーNならば、Yレジスタのポインタ
値をさらに1だけアツプしてから、Yレジスタの
ポインタ値をポインタBAPNTに格納して処理を
終る。このようにウオーキングベースオンでない
ときにはポインタBAPNTの値を次に読出すべき
データに対応させておく。 一方、ウオーキングベースオンからの判定でイ
エスYであつたものとすると、発音制御データ格
納処理に移る。すなわち、Aレジスタの下位4ビ
ツトをマスクして上位3ビツトの発音制御データ
(音量データACC及びミユートデータM)を取出
し、発音中ベース・アルペジヨデータメモリ28
内の記憶部BASRAM2にストアする。 次に、レジスタBASROMにセツトされている
パターン先頭アドレス値に先に1アツプされたY
レジスタのポインタ値を加算してアドレス指定す
ることによりベースパターンメモリ24aからベ
ースパターンデータを読出してAレジスタに入れ
る。この場合、Aレジスタに書込まれるのは、2
バイト1組のデータのうち2バイト目のデータで
あり、音程データ(上位4ビツト)及び音長デー
タ(下位4ビツト)を含むものである。 次に、Aレジスタのデータを4ビツトライトシ
フトすることにより上位4ビツトの音程データを
取出し、Xレジスタに入れる。 前述したように音程データはベース音バツフア
26b内の0〜15のいずれかのアドレスを示して
いる。そこで、バツフア26bの先頭アドレス値
BASBFにXレジスタの値を加算してアドレス指
定することによりバツフア26bから上記音程デ
ータに対応したキーコードデータを取出し、Aレ
ジスタに入れる。 次に、Aレジスタのキーコードデータをメモリ
28内の記憶部BASRAM1に転送し、格納する。 この後、BASRAM2の発音制御データ及び
BASRAM1のキーコードデータをベースインタ
ーフエース44に出力する。インターフエース4
4に供給されたキーコードデータはオンキーコー
ドレジスタ46に書込まれ、割当制御回路50に
よつてキーコード・キーオレンジスタ52内の第
1の楽音形成チヤンネルに対応したレジスタ部に
転送される。この結果、第1の楽音形成チヤンネ
ルに対応したレジスタ部には発音すべき音に対応
したキーコードデータと、キーオンデータとがス
トアされたことになり、これらのデータがベース
音形成回路56に供給される。また、インターフ
エース44に供給された発音制御データは発音制
御データレジスタ54にストアされ、このレジス
タからベース音形成回路56に供給される。従つ
て、ベース音形成回路56はインターフエース4
4からキーコードデータ、キーオンデータ及び音
量データACCに応じて第1の楽音形成チヤンネ
ルでベース音信号を形成し、このベース音信号に
応じてスピーカ38からベース音が発生される。 次に、オフタイミング処理Aに移る。この処理
では、先ず、レジスタBASROMにセツトされて
いるパターン先頭アドレス値にYレジスタのポイ
ンタ値を加算してアドレス指定することによりベ
ースパターンメモリ24aから再びベースパター
ンデータを読出し、Aレジスタに入れる。このと
きAレジスタに入るのは音程データ及び音長デー
タである。 次に、Aレジスタのデータと16進の「0F」と
のANDをとることによつて下位4ビツトの音長
データを取出し、Xレジスタに入れる。そして、
第2図に示すように符長テーブル22cの先頭ア
ドレス値(固定値)をOFTIMEとし、Xレジス
タの値(テーブル22c内の相対アドレス)をX
としてアドレス(OFTIME+X)を指定するこ
とによりテーブル22cから上記音長データに対
応した時間長データを読出し、Aレジスタに入れ
る。 次に、Aレジスタの値と小節内タイミングカウ
ンタTIMINGの値とを加算してオフタイミング
値を求め、これをAレジスタに入れる。 次に、Aレジスタの値(オフタイミング値)が
最大タイミングレジスタTMPMAXの値(3拍
子ならば36、4拍ならば48)以上か調べて1小節
を越えたか判定する。この判定の結果、ノーNな
らば、Aレジスタのオフタイミングデータをメモ
リ28の記憶部BASRAM0に格納する。また、
判定結果がイエスYならばAレジスタの値からレ
ジスタTMPMAXの値を引いてオフタイミング
値を補正し、この補正されたオフタイミングデー
タをBASRAM0に格納する。いずれにしても、
BASRAM0に格納されたオフタイミングデータ
はベース音の発音開始後サステインを開始すべき
時点を小節内タイミング値(3拍子ならば0〜35
のいずれか、4拍ならば0〜47のいずれか)で示
すものである。 オフタイミングデータ格納の後は、前述のウオ
ーキングベースオンでなかつた場合と同様にYレ
ジスタのポインタ値を1アツプし、この1アツプ
したポインタ値をポインタBAPNTに格納して処
理を終る。 上記したのは、あるインタラプトがかかつたと
きにベースパターンデータを読出したところ拍内
タイミング一致が得られた(発音すべきベース音
があつた)場合の処理であるが、次のインタラプ
トがかかつたときにも上記と同様にしてベースパ
ターンデータを読出し、Aレジスタに入れる。こ
のときの読出されるベースパターンデータは第1
4図の下部でポインタ値を1アツプしておいての
で、前回の読出データの次のデータである。 次に、前回同様にAレジスタの下位4ビツトと
カウンタTMPCNTの内容とを比較して拍内タイ
ミング一致か判定する。この判定結果がノーNで
あるとすると、Aレジスタの値が16進で「0D」
以下か調べてフラグデータ(拍エンドフラグデー
タ又はリターンフラグデータ)か判定する。 この場合、Aレジスタのデータが発音タイミン
グデータであるとすると、フラグデータかの判定
結果はノーNとなり、オフタイミング取出処理に
移る。この処理は、メモリ28の記憶部
BASRAM0から先に格納したオフタイミングデ
ータを取出してAレジスタに入れるものである。 次に、Aレジスタの発音タイミング値が小節内
タイミングカウンタTIMINGの値と一致するか
判定する。この判定の結果、ノーNであるとする
と、まだサステイン開始時に至つていないものと
してキーオフ処理bを経ずに処理を終る。 この後、インタラプトが何回かかかるが、いず
れのインタラプトでも拍内タイミング一致及び小
節内タイミングが得られないものとすると、上記
した同様にキーオフ処理Bを経ずに処理を終る。
そして、このようにてインタラプトをくりかえし
ている間にも小節内タイミングカウンタ
TIMINGの値は増加しているので、やがで小節
内タイミングの一致が得られるときがくる。 小節内タイミングの一致が得られると、キーオ
フ処理Bに移る。すなわち、メモリ28の記憶部
BASRAM1から先に格納したキーコードデータ
を取出し、Aレジスタに入れる。次に、Aレジス
タが0でないか調べてキーコードデータありか判
定し、通常はイエスYであるので、Aレジスタの
キーコードデータをベースインターフエース44
に出力する。インターフエース44に供給された
キーコードデータはオフキーコードレジスタ48
にストアされ、割当制御回路50によつてレジス
タ52内の第1の楽音形成チヤンネルに対応した
レジスタ部に転送される。このため、第1の楽音
形成チヤンネルに対応したレジスタ部では先にス
トアされていたキーオンデータがキーオフデータ
で置換され、このキーオフデータがベース音形成
回路56に供給される。 ベース音形成回路56はキーオフデータを受取
ると、発生中のベース音信号の振幅エンベロープ
を徐々に減衰させるべきサステイン制御を行な
う。このサステイン制御のため、発音中のベース
音は急に消えることなく徐々に減衰していく。こ
の場合、発音制御データレジスタ54にストアさ
れているミユートデータMが“1”であれば、そ
れが“0”の場合に比べてベース音の減衰時間が
短くなるようにサステイン制御が行なわれる。 上記のようにしてベース音のサステイン制御が
開始された後は、メモリ28の記憶部
BASRAM1に16進で「00」を書込んでキーコー
ドデータをクリアし、処理を終る。 上記では、Aレジスタに読出したデータが発音
タイミングデータであるとしたが、これが拍エン
ドフラグデータ(16進で「0D」)であつた場合は
次のような動作になる。すなわち、拍内タイミン
グ一致かの判定結果はノーNとなるから、フラグ
データかの判定をすると、イエスYとなる。次
に、Aレジスタの値が16進で「0F」か調べてリ
ターンフラグか判定する。この結果、ノーNとな
るので、Aレジスタの拍エンドフラグデータを拍
エンドフラグBAHENDにセツトする。そして、
Yレジスタのポインタ値を1アツプし、この1ア
ツプされたポインタ値をポインタBAPNTにセツ
トする。 この後、前述したと同様にオフタイミングデー
タを取出し、小節内タイミング一致か判定する
が、この判定の結果は、前述のようにキーオフ開
始までに何回かのインタラプトが必要であるとす
ると、ノーNとなり、処理を終る。 この次のインタラプがかかると、第14図の上
部の拍エンドかの判定はイエスYとなる。これ
は、前回のインタラプトで拍エンドフラグ
BAHENDにセツトしておいたからである。 拍エンドかの判定がイエスYとなると、前述し
たと同様にオフタイミングデータを取出し、小節
内タイミング一致か判定するが、前回同様にノー
Nとなり、処理を終る。 このように、拍エンドフラグBAHENDが一旦
セツトされると、第14図のルーチンは実質的に
オフタイミングデータ取出し及び小節内タイミン
グ一致判定を含む簡略処理で終るようになり、こ
のような簡略処理は第13図のルーチンで拍内タ
イミングカウンタTMPCNTのカウント値が12に
なつて拍エンドフラグBAHENDがリセツトされ
るまでくるかえさえる。なお、かような簡略処理
がくりかえされている間にも小節内タイミングカ
ウンタTIMINGはカウンタTMPCNTと同様に
インタラプトのたびにカウント値が増大するの
で、小節内タイミング一致が得られれば前述した
と同様にキーオフ処理Bが行なわれる。 第13図のルーチンで拍エンドフラグ
BAHENDがリセツトされた後、次のインタラプ
トがかかると、第14図の上部の拍エンドかの判
定はノーNとなり、前述したと同様にパターンデ
ータ読出しを行なう。この場合、前述の拍エンド
フラグセツトの後にポインタBAPNTの値を1ア
ツプしてあるので、拍エンドフラグデータの次の
発音制御・発音タイミングデータが読出される。
そして、この読出データに基づいて拍内タイミン
グ一致か判定し、その結果イエスYならば前述し
たと同様にメモリ28の記憶部BASRAM2には
発音制御データを且つ記憶部BASRAM1にはキ
ーコードデータをそれぞれ書込み、インターフエ
ース44に出力する。この場合、インターフエー
ス44では、割当制御回路50がキーコード・キ
ーオンレジスタ52内の第2の楽音形成チヤンネ
ルに対応したレジスタ部にキーコードデータ及び
キーオフデータを割当てるので、ベース音形成回
路56は第2の楽音形成チヤンネルでベース音信
号を形成し、このベース音信号に応じたベース音
がスピータ38から奏出される。 このように、今回のベース音信号は前回ベース
音信号とは別の楽音形成チヤンネルで形成される
ので、前のベース音がサステインされている間に
今回のベース音を発音させることができる。 この後は、前述したと同様にオフタイミング処
理B及びポインタ値アツプ等の処理をする。 そして、この後何回目かのインタラプトで小節
内タイミング一致が得られたときに今回のベース
音についてキーオフ処理Bを行なう。 上記のようにしてベース音発生動作を進めてい
くうちに、ベースパターンメモリ24aからAレ
ジスタにリターンフラグデータが読出される。そ
こで、前記したと同様に拍内タイミング一致が判
定すると、ノーNとなり、さらにフラグデータが
判定すると、イエスYとなる。次に、Aレジスタ
の値が16進で「0F」か調べてリターンフラグデ
ータか判定すると、イエスYとなるので、Yレジ
スタに16進で「FF」(全8ビツト“1”のデー
タ)をセツトする。 次に、拍エンドフラグBAHENDにAレジスタ
のリターンフラグデータをセツトする。そして、
Yレジスタの値(16進で「FF」)に1を加えてポ
インタ値を1アツプすると、ポインタ値は16進で
「00」になり、このポインタ値をポインタ
BAPNTにセツトする。 この後は、オフタイミングデータを取出して小
節内タイミング一致が判定し、ノーNならば処理
を終り、イエスYならばキーオフ処理Bを経て処
理を終る。 この次のインタラプトでは拍エンドフラグ
BAHENDがセツトされているので、前述した拍
エンドフラグセツトの場合と同様の動作になり、
このような動作は拍エンドフラグBAHENDがリ
セツトされるまでくりかえされる。そして、拍エ
ンドフラグBAHENDがリセツトされると、その
次のインタラプトからはポインタBAPNTが16進
で「00」となつているのでベースパターンメモリ
24aの先頭アドレスからベースパターンデータ
が読出され、以下、上記したと同様のベース音発
生動作がくりかえされる。 アルペジヨ変換のサブルーチン 次に、第15図を参照してアルペジヨ変換のサ
ブルーチンの処理を説明する。 まず、拍エンドフラグBAHENDの値が16進で
「00」でないか調べて拍エンドフラグデータの検
出時に16進で「0D」がセツトされる一方、リタ
ーンフラグデータの検出時に16進で「0F」がセ
ツトされるもので、拍エンドかの判定の結果、イ
エスYならば拍エンドフラグデータ又はリターン
フラグデータを検出されたことを意味し、ノーN
ならばいずれのフラグデータも検出されていない
ことを意味する。 拍エンドかの判定でノーNであつたものとする
と、アドレスポインタARPNTからポインタ値
(アルペジヨパターンメモリ24d内の相対アド
レス)を読出してYレジスタに入れる。そして、
選択されたリズム種類に対応してレジスタ
ARPROMにセツトされているパターン先頭アド
レス値にYレジスタの値を加算してアドレス指定
することによりアルペジヨパターンメモリ24d
から選択されたリズム種類に対応したアルペジヨ
パターンデータを読出し、Aレジスタに入れる。
この場合、Aレジスタに書込まれるのは、2バイ
ト1組のデータのうち1バイト目のデータであ
り、発音制御データ(上位4ビツト)及び発音タ
イミングデータ(下位4ビツト)を含むものであ
る。 次に、AレジスタのデータをXレジスタに移
す。そして、Aレジスタのデータと16進の「0F」
とのANDをとることによつて下位4ビツトの発
音タイミングデータを取出し、これをAレジスタ
に入れる。 次に、Aレジスタの値が拍内タイミングカウン
タTMPCNTの値と一致するか判定する。この判
定の結果、イエスYであるものとすると、状態ク
ラブARPONが16進の「00」でないか調べてアル
ペジヨ選択スイツチがオンか判定する。この判定
の結果、ノーNならばYレジスタのポインタ値を
1アツプする処理を2回してパターンデータ読出
しに戻る。この場合、Yレジスタのポインタ値を
2アツプするのは、アルペジヨパターンデータが
2バイト1組で記憶されているので、次の2バイ
ト1組のデータの1バイト目を読出すにはアドレ
ス値を2だけ進める必要があるからである。 この後、前記したと同様にしてアルペジヨパタ
ーンデータを読出し、そのうちの発音タイミング
データの示す値をカウンタTMPCNTの値とを比
較して拍内タイミング一致か判定し、この結果が
イエスYならば再びアルペジヨオンが判定し、こ
の結果がノーNならば再びポインタ値を2アツプ
する。 このようなポインタ値アツプ動作は拍内タイミ
ング一致が得られ且つアルペジヨオンでない限り
最大で4回までくりかえし可能である。すなわ
ち、この実施例ではアルペジヨ用に4つの楽音形
成チヤンネルが設けられていて特定の拍内タイミ
ングで最大4音のアルペジヨ音を同時発音可能な
ので、アルペジヨパターンデータには拍内タイミ
ング値同一の2バイド1組のデータが4音分含ま
れている可能性があり、このような場合には、上
記のような動作が4回くりかえされ、ポインタ値
は8つ進むことになる。 ところで、前述のアルペジヨオンかの判定でイ
エスYであつたものとすると、Xレジスタの内容
をAレジスタに移してから、チヤンネル判定を行
なう。これはアルペジヨパターンデータ中のチヤ
ンネルデータCHが4つの楽音形成チヤンネルの
うちのいずれのものを指定しているか判定するも
ので、まず1チヤンネルか判定し、ノーNならば
2チヤンネルか判定し、ノーNならば3チヤンネ
ルか判定し、ノーNならば4チヤンネルであると
判定する。 具体的には、チヤンネルデータCHが第3図に
示すように1バイト(8ビツト)のうち最上位ビ
ツトから数えて2番目及び3番目の2ビツトから
なり、1,2,3,4の各チヤンネルに対応して
それぞれ「00」、「01」。「10」、「11」のバイナリコ
ードを与えるので、1チヤンネルかの判定ではA
レジスタのデータと16進の「60」(=01100000)
とのANDをとつて16進の「00」になるか調べ、
2チヤンネルかの判定ではAレジスタのデータと
16進の「40」(=01000000)とのANDをとつて16
進の「00」になるか調べ、3チヤンネルかの判定
ではAレジスタのデータと16進の「20」(=
00100000)とのANDをとつて16進の「00」にな
るか調べる。 上記のようなチヤンネル判定の結果、1チヤン
ネルと判定されればレジスタARCGHに16進で
「00」を入れ、2チヤンネルと判定されれば
ARCGHに16進で「04」を入れ、3チヤンネルと
判定されればARCHに16進で「08」を入れ、4
チヤンネルと判定(3チヤンネルでないと判定)
されればARCHに16進で「0C」を入れる。 このようにしてレジスタARCHにいずれいか
のチヤンネルを指定するデータを入れた後は、ア
ルペジヨ音ストアのサブルーチンに移る。このサ
ブルーチンは、発音中ベース・アルペジヨデータ
メモリ28内の、レジスタARCHの示すチヤン
ネルに対応した記憶部(ARPRAM0〜
ARPRAM3,ARPRAM4〜ARPRAM7,
ARPRAM8〜ARPRAM11又はARPRAM12〜
ARPRAM15)にアルペジヨデータをストアする
ためのもので、詳しくは第16図について後述す
る。なお、アルペジヨ音ストアのサブルーチンで
はYレジスタのポインタ値が2アツプされるよう
になつている。 アルペジヨ音ストアのサブルーチンが終ると、
パターンデータ読出しに戻り、次のアルペジヨパ
ターンデータを読出、前回同様に拍内タイミング
一致が判定し、イエスYならばアルペジヨオンが
判定し、イエスYならばチヤンネル判定及びレジ
スタARCHのセツトを行なう。このような動作
も、前述のアルペジヨオンでない場合のポインタ
値アツプ動作と同様に拍内タイミング一致が得ら
れ且つアルペジヨオンである限り最大4回までく
りかえし可能である。 上記したのは、あるインタラプトがかかつたと
きにアルペジヨパターンデータを読出したところ
拍内タイミング一致が得られた(発音すべいアル
ペジヨ音があつた)場合の処理であるが、拍内タ
イミング一致が得られなかつた場合の動作は次の
ようになる。すなわち、拍内タイミング一致かの
判定はノーNとなるので、Aレジスタの値が16進
で「0D」以上か調べフラグデータ(拍エンドフ
ラグデータ又はリターンフラグデータ)か判定す
る。この判定の結果、ノーNであれば処理を終
る。 一方、フラグデータかの判定がイエスYであつ
た場合には、Aレジスタの値が16進で「0F」か
調べてリターンフラグデータでるか判定し、ノー
NであればAレジスタのデータが拍エンドフラグ
データ(16進で「0D」)であるので、これを拍エ
ンドフラグARHENDにセツトする。そして、Y
レジスタのポインタ値を1アツプし、この1アツ
プされたポインタ値をポインタARPNTにセツト
して処理を終る。また、リターンフラグかの判定
でイエスYであればYレジスタに16進で「FF」
をセツトてから、Aレジスタのリターンフラグデ
ータ(16進で「0F」)を拍エンドフラグ
ARHENDにセツトする。そして、Yレジスタの
値を1アツプすると、16進で「00」になるので、
この値をポインタARPNTにセツトして処理を終
る。 このように拍エンドフラグARHENDに拍エン
ドフラグリターン又はリターンフラグデータがセ
ツトされると、この次のインタラプトでは第15
図の上部の拍エンドかの判定でイエスYとな、同
図のサブルーチンは終る。このような動作は、第
13図のサブルーチンでカウンタTMPCNTのカ
ウント値が12に達して拍エンドフラグARHEND
がリセツトされるまでくりかえされる。 拍エンドフラグARHENDがリセツトされる
と、この次のインタラプトでは、拍エンドかの判
定がノーNとなるので、アルペジヨパターンデー
タとして拍エンドフラグデータの次のデータ又は
先頭アドレスのデータが読出され、以下、拍内タ
イミング一致か否か、アルペジヨオンか否かに応
じて前述したような動作がくりかえされる。 アルペジヨ音ストアのサブルーチン 次に、第16図を参照してアルペジヨ音ストア
のサブルーチンの処理を説明する。 まず、選択されたリズム種類に対応してレジス
タARPROMにセツトされているパターン先頭ア
ドレス値にYレジスタの値を加算してアドレス指
定することによりアルペジヨパターンメモリ24
dから選択されたリズム種類に対応したアルペジ
ヨパターンデータを読出し、Aレジスタに入れ
る。このときAレジスタに入れる1バイトのデー
タは、第15図のループにおいて拍内タイミング
一致が得られた発音タイミングデータ(下位4ビ
ツト)と、このデータに関連する発音制御データ
(上位4ビツト)とを含むものである。 次に、第5図に示すようにアルペジヨデータ記
憶部の先頭アドレス値(固定値)をARMとし、
レジスタARCH内のチヤンネル指定データの値
をACHとしてアドレス(ARM+ACH+3)を
指定することにより指定チヤンネルに対応した記
憶部(ARPRAM3,ARPRAM7,ARPRAM11
又はARPRAM15)にAレジスタから取出した発
音制御データ(音量データACC、チヤンネルデ
ータCH及びミユートデータM)を格納する。 次に、Yレジスタのポインタ値を1アツプして
から、レジスタARPROMにセツトされているパ
ターン先頭アドレス値にYレジスタのポインタ値
を加算してアドレス指定することによりメモリ2
4dからアルペジヨパターンデータを読出し、A
レジスタに入れる。このときAレジスタに入る1
バイトのデータはこの前に読出された1バイトの
データの次のものであり、音程データ(上位4ビ
ツト)及び音長データ(下位4ビツト)を含んで
いる。 次に、Aレジスタのデータを4ビツトライトシ
フトすることにより上位4ビツトの程度データを
取出し、この音程データをAレジスタからXレジ
スタに移す。ここで、音程データはアルペジヨ音
バツフア26c内の0〜15のいずれかのアドレス
を示しているものである。 次に、第4図に示すようにアルペジヨ音バツフ
ア26cの先頭アドレスをARPBFとし、Xレジ
スタの値をXとしてアドレス(ARPBF+X)を
指定することによりバツフア26cから上記音程
データに対応したキーコードデータを読出し、A
レジスタに入れる。 次に、Aレジスタのキーコードデータを、アド
レス(ARM+ACH+0)を指定することにより
指定チヤンネルに対応する記憶部(ARPRAM0,
ARPRAM4,ARPRAM8又はARPRAM12)に
オンキーコードデータとしてストアする。 次に、Aレジスタのキーコードデータを、アド
レス(ARM+ACH+2)を指定することにより
指定チヤンネルに対応する記憶部(ARPRAM2,
ARPRAM6,ARPRAM10又はARPRAM14)に
オフキーコードデータとしてストアする。 次に、レジスタARPROMにセツトされている
パターン先頭アドレス値にYレジスタのポインタ
値を加算してアドレス指定することによりメモリ
24dから前回と同じアルペジヨパターンデータ
(音程、音長データ)を読出し、Aレジスタに入
れる。そして、Aレジスタのデータと16進の
「0F」とのANDをとることによつて下位4ビツ
トの音長データを取出し、Xレジスタに入れる。 次に、前述のベース音出力のルーチンで述べた
と同様にアドレス(OFTIME+X)を指定する
ことに符長テーブル22cから上記音長データに
対応した時間長データを読出し、Aレジスタに入
れる。 次に、Aレジスタの値と小節内タイミングカウ
ンタTIMINGの値とを加算してオフタイミング
値を求め、これをAレジスタに入れる。 次に、Aレジスタの値(オフタイミング値)が
最大タイミングレジスタTMPMAXの値(3拍
子ならば36、4拍子ならば48)以上か調べて1小
節をこえたか判定する。この判定の結果、ノーN
ならばAレジスタのオフタイミングデータを、ア
ドレス(ARM+ACH+1)を指定することによ
り指定チヤンネルに対応する記憶部
(ARPRAM1,ARPRAM5,ARPRAM9又は
ARPRAM13)にストアする。また、判定結果が
イエスYならばYレジスタの値からレジスタ
TMPMAXの値を引いてオフタイミング値を補
正し、この補正されたオフタイミング値を上記し
たと同様にアドレス(ARM+ACH+1)の記憶
部にストアする。いずれにしても、アドレス
(ARM+ACH+1)の記憶部にストアされたオ
フタイミングデータはアルペジヨ音の発音開始後
サステインを開始すべき時点を小節内タイミング
値(3拍子ならば0〜35のいずれか、4拍子なら
ば0〜47のいずれか)で示すものである。 オフタイミングデータストタの後は、Yレジス
タのポインタ値を1アツプして処理を終る。この
ポインタ値アツプによつて第16図のサブルーチ
ンではポインタ値が2アツプしたことになり、第
15図のサブルーチンに戻つた場合に次の2バイ
ト1組のデータの1バイト目(発音制御・発音タ
イミングデータ)の読出しが可能になる。 なお、第16図のサブルーチンは、1回のイン
タラプトでも複数回実行されることがある。すな
わち、第15図で複音アルペジヨのための拍内タ
イミング一致が複数回(最大で4回)得られたも
のとすると、第16図のサブルーチンは拍内タイ
ミング一致の回数に対応して複数回実行される。 アルペジヨ音出力のサブルーチン 次に、第17図を参照してアルペジヨ音出力の
サブルーチンの処理を説明する。 まず、Xレジスタに16進で「00」を書込んで数
値0をセツトする。そして、アドレス(ARM+
X+0)を指定することにより1チヤンネルに対
応した記憶部ARPRAM0からオンキーコードデ
ータを読出し、Aレジスタに入れる。 次に、Aレジスタの値が16進で「00」でないか
調べてオンキーコードデータありか判定し、イエ
スYであれば、キーオン処理Cに移る。この処理
では、Aレジスタのオンキーコードデータをアル
ペジヨインターフエース58に出力する。インタ
ーフエース58に供給されたオンキーコードデー
タはオンキーコードレジスタ60に書込まれる。 次に、アドレス(ARM+X+3)を指定する
ことにより1チヤンネルに対応した記憶部
ARPRAM3から発音制御データを読出、Aレジ
スタに入れる。そして、Aレジスタの発音制御デ
ータをインターフエース58に出力する。インタ
ーフエース58に供給された発音制御データは発
音制御データレジスタ68に書込まれる。 インターフエース58では、割当制御回路64
がレジスタ68の発音制御データ中に含まれるチ
ヤンネルデータCHに示すチヤンネルいレジスタ
60のオンキーコードデータを割当てる。すなわ
ち、この場合はキーコード・キーオンレジスタ6
6の1チヤンネルに対応したレジスタ部に発音す
べきキーコードデータと、キーオンデータとがス
トアされ、これらのデータがアルペジヨ音形成回
路70に供給される。また、アルペジヨ音形成回
路70にはレジスタ68から音量データACC及
びミユートデータMが供給される。このため、ア
ルペジヨ音形成回路70はインターフエース58
からのキーコードデータ、キーオンデータ及び音
量データACCに応じて第1の楽音形成チヤネル
でアルペジヨ音信号を形成し、このアルペジヨ音
信号に応じてスピーカ38からアルペジヨ音が発
声される。 上記のような発音制御データ出力処理の後は、
アドレス(ARM+X+0)を指定して記録部
ARPROM0に16進で「00」を書込むことにより
オンキーコードデータをクリアする。そして、X
レジスタの値を4アツプしてから、Xレジスタの
値が16進で「0C」より大きいか調べて4チヤン
ネル分の処理が終了したか判定する。上記した例
では、これまでのところ1チヤンネル分の処理が
終つただけであるので、判定結果はノーNとな
り、オンキーコードデータ読出しに戻る。 この後は、オンキーコードデータありと判定さ
れる限り上記したと同様にキーオン処理Cを残り
の2〜4チヤンネルについて行なう(従つて、特
定の拍内タイミングで4音まで同時発音可能であ
る)が、2〜4チヤンネルに対応するオンキーコ
ードデータがないものとする。2チヤンネルに対
応したオンキーコードデータを読出した後のオン
キーコードデータありかの判定でノーNとなる。 この場合には、アドレス(ARM+X+1)を
指定して2チヤンネルに対応する記憶部
ARPRAM5からオフタイミングデータを取出し、
Aレジスタに入れる。そして、Aレジスタの値と
小節内タイミングカウンタTIMINGの値とが一
致するか判定する。 この判定の結果、ノーNであるとすると、上記
したと同時にXレジスタの値を4アツプしてか
ら、3チヤンネルに対応したオンキーコードデー
タを読出し、オンキーコードデータありか判定す
る。この判定の結果、ノーNとなるので、上記し
たと同様に3チヤンネルに対応したオフタイミン
グデータを読出し、小節内タイミング一致か判定
する。 この判定の結果、ノーNであるとすると、3チ
ヤンネル対応データについて上記したと同様の動
作が4チヤンネル対応データについて行なわれ
る。この場合、小節内タイミング一致かの判定で
ノーNとなつた後、Xレジスタの値をアツプする
と、Xレジスタの値が16進の「0C」より大きい
ので4チヤンネル分終了かの判定がイエスYとな
り、処理を終る。 なお、上記の例にいて、1チヤンネルに対応し
たキーコードコードデータがなかつたものとすれ
ばキーオン処理Cは行なわれず、オフタイミング
読出し及び小節内タイミング一致判定等が4回行
なわれて処理が終る。 上記したのは、あるインタラプトがかかつた場
合の処理であるが、この後何回目かのインタラプ
トがかかつたとき1チヤンネルに対応するオフタ
イミングデータについて小節内タイミング一致か
の判定がイエスYになるものとすると、キーオフ
処理Dに移る。この処理では、まずアドレス
(ARM+X+2)を指定して1チヤンネルに対
応した記憶部ARPRAM2からオフキーコードデ
ータを読出し、Aレジスタに入れる。そして、A
レジスタの値が16進で「00」でないか調べてオフ
キーコードデータありか判定し、通常イエスYで
あるのでAレジスタのオフキーコードデータをア
ルペジヨインターフエース58に出力する。イン
ターフエース58に供給されたオフキーコードデ
ータはオフキーコードレジスタ62にストアさ
れ、割当制御回路64によつてレジスタ66内の
1チヤンネルに対応したレジスタ部に転送され
る。このため、1チヤンネルに対応したレジスタ
部では先にストアされていたキーオンデータがキ
ーオフデータで置換され、このキーオフデータが
アルペジヨ音形成回路70に供給される。 アルペジヨ音形成回路70はキーオフデータを
受取ると、前述のベース音形成回路56の場合と
同様にして、第1の楽音形成チヤンネルで形成中
のアルペジヨ音信号をサステイン制御する。この
ため、1チヤンネルに対応した発音中のアルペジ
ヨ音は徐々に減衰していく。なお、このサステイ
ン制御において、レジスタ68にストアされてい
るミユートデータMが利用されることは前述のベ
ース音のサステイン制御の場合と同様である。 上記のようなオフキーコードデータ出力処理の
後は、アドレス(ARM+X+2)を指定して記
憶部ARPRAM2に16進で「00」を書込んでオフ
キーコードデータをクリアする。 次に、Xレジスタの値を4アツプして2チヤン
ネルに対応したオンキーコードデータを読出し、
オンキーコードデータありか判定してイエスYな
らば前述したと同様にキーオン処理Cにより2チ
ヤンネルに対応したアルペジヨ音を発生させる。 この後、3及び4チヤンネルに対応したデータ
についてオンキーコードありか否か、小節内タイ
ミング一致か否かに応じて前述したような処理を
行なう。 上記した第15図〜第17図のサブルーチンに
よれば、例えばC2,E2,G2のアルペジヨ音を順
次に発音させうるばかりでなく、同時に発音させ
ることもできる。また、いずれの発音形態をとる
にしても、アルペジヨ音バツフア26cには複数
オクターブに展開した16音分のキーコードデータ
がストアされているので、アルペジヨパターンデ
ータの内容を適宜定めておくことにり例えばC2
−E2−G2,C3−E3,C4−E4−G4のように、オク
ターブシフトした自動アルペジヨ演奏が可能であ
る。 以上のように、この発明によれば、押鍵がなさ
れるたびにその押鍵状態に関連して発音する可能
性のあるベース・アルペジヨキーデータを形成
し、メモリに格納しておくので、ベース音及び/
又はアルペジヨ音と発生すべきタイミングでは格
納データを適宜選択して出力すればよく、マイク
ロコンピユータ等でベース音発生及びアルペジヨ
音発生を時分割的に処理する場合にリズムに同期
したベース・アルペジヨ音発生が可能になる効果
は大きい。その上、伴奏用キーデータを伴奏パタ
ーン中の音指定データとは独立に形成して所定順
序で記憶すると共に音指定データで伴奏用キーデ
ータを順位指定して読出すようにしたので、パタ
ーン変更操作ないしでも変化に富んだ伴奏音発生
が可能になる効果が得られる。さらに、ベース音
発生の場合にあつては、和音検出時に第1のメモ
リから第2のメモリにベース用キーデータを転送
して音高修正処理を施すようにしたので、処理が
簡単になると共にリズムとの十分な同期関係にて
訂正音高のベース音を発生可能となる付加的効果
も得られる。
第1図は、この発明の一実施例による電子楽器
のブロツク図、第2図は、記憶テーブル内のデー
タ配置を示す図、第3図は、パターンメモリ内の
データ配置を示す図、第4図は、伴奏音バツフア
の構成図、第5図は、発音中ベース・アルペジヨ
データメモリの構成図、第6図は、ワーキングエ
リア内のレジスタ配置を示す図、第7図は、メイ
ンルーチンのフローチヤート、第8図は、ベース
音セツトのサブルーチンのフローチヤート、第9
図は、半音ダウンのサブルーチンのフローチヤー
ト、第10図は、半音アツプのサブルーチンのフ
ローチヤート、第11図は、全音ダウンのサブル
ーチンのフローチヤート、第12図は、アルペジ
ヨ音セツトのサブルーチンのフローチヤート、第
13図は、インタラプトルーチンのフローチヤー
ト、第14図は、ベース音出力のサブルーチンの
フローチヤート、第15図は、アルペジヨ変換の
サブルーチンのフローチヤート、第16図は、ア
ルペジヨ音ストアのサブルーチンのフローチヤー
ト、第17図は、アルペジヨ音出力のサブルーチ
ンのフローチヤートである。 10……鍵盤部、18……中央処理装置、22
……記憶テーブル、24……パターンメモリ、2
6……伴奏音バツフア、30……ワーキングエリ
ア、44……ベースインターフエース、56……
ベース音形成回路、58……アルペジヨインター
フエース、70……アルペジヨ音形成回路。
のブロツク図、第2図は、記憶テーブル内のデー
タ配置を示す図、第3図は、パターンメモリ内の
データ配置を示す図、第4図は、伴奏音バツフア
の構成図、第5図は、発音中ベース・アルペジヨ
データメモリの構成図、第6図は、ワーキングエ
リア内のレジスタ配置を示す図、第7図は、メイ
ンルーチンのフローチヤート、第8図は、ベース
音セツトのサブルーチンのフローチヤート、第9
図は、半音ダウンのサブルーチンのフローチヤー
ト、第10図は、半音アツプのサブルーチンのフ
ローチヤート、第11図は、全音ダウンのサブル
ーチンのフローチヤート、第12図は、アルペジ
ヨ音セツトのサブルーチンのフローチヤート、第
13図は、インタラプトルーチンのフローチヤー
ト、第14図は、ベース音出力のサブルーチンの
フローチヤート、第15図は、アルペジヨ変換の
サブルーチンのフローチヤート、第16図は、ア
ルペジヨ音ストアのサブルーチンのフローチヤー
ト、第17図は、アルペジヨ音出力のサブルーチ
ンのフローチヤートである。 10……鍵盤部、18……中央処理装置、22
……記憶テーブル、24……パターンメモリ、2
6……伴奏音バツフア、30……ワーキングエリ
ア、44……ベースインターフエース、56……
ベース音形成回路、58……アルペジヨインター
フエース、70……アルペジヨ音形成回路。
Claims (1)
- 【特許請求の範囲】 1 (a) 鍵盤と、 (b) 複数のキーデータを記憶可能な第1の記憶手
段と、 (c) 前記鍵盤で押鍵がなされるたびにその押鍵状
態に基づいて伴奏音として発音する可能性のあ
る互いに異なる複数の音の音高をそれぞれ示す
複数のキーデータを形成して前記第1の記憶手
段に発音順序とは独立な所定順序でそれぞれ書
込むデータ形成・書込手段と、 (d) テンポクロツク信号を発生する手段と、 (e) 順次に発音すべき伴奏音について各伴奏音毎
にその音を前記第1の記憶手段内の前記所定順
序中での順位で指定する音指定データと該音の
発音タイミングを示すタイミングデータとを含
む伴奏パターンデータを記憶した第2の記憶手
段と、 (f) 前記テンポクロツク信号に基づいて前記第2
の記憶手段からタイミングデータを順次に読出
すと共に各読出しのたびに該タイミングデータ
と読出タイミングとを比較し、発音すべきタイ
ミングと判定されるたびに該タイミングデータ
に関連した音指定データに基づいて前記第1の
記憶手段から該音指定データの示す順位のキー
データを読出す読出手段と、 (g) 前記第1の記憶手段から読出されるキーデー
タに応じて伴奏音信号を発生する伴奏音発生手
段とをそなえ、 前記データ形成・書込手段では前記伴奏パタ
ーンデータ中の音指定データとは独立にキーデ
ータを形成する ことを特徴とする電子楽器の自動伴奏装置。 2 (a) 鍵盤と、 (b) この鍵盤での押鍵状態に基づいて和音の根音
及び種類を検出する和音検出手段と、 (c) この和音検出手段で検出可能な各根音毎にキ
ーデータ群を記憶した第1の記憶手段であつ
て、各キーデータ群が、対応する根音に関して
ベース音として発音する可能性のある互いに異
なる複数の音の音高をそれぞれ示す複数のキー
データを含んでいるものと、 (d) 複数のキーデータを記憶可能な第2の記憶手
段と、 (e) 前記和音検出手段で和音の根音及び種類が検
出されるたびに前記第1の記憶手段から検出根
音に対応したキーデータ群を読出して前記第2
の記憶手段に転送し、該キーデータ群に属する
複数のキーデータを該第2の記憶手段に発音順
序とは独立な所定順序でそれぞれ書込む転送手
段と、 (f) 前記和音検出手段で和音の根音及び種類が検
出されるたびに検出和音種類がベース音高修正
を要する特定の和音種類に該当するか判定し、
該当すると判定されたときは前記第2の記憶手
段に記憶されるキーデータ群内の予め定められ
たキーデータについてその指示音高を修正する
音高修正手段と、 (g) テンポクロツク信号を発生する手段と、 (h) 順次に発音すべきベース音について各ベース
音毎にその音を前記第2の記憶手段内の前記所
定順序中での順位で指定する音指定データと該
音の発音タイミングを示すタイミングデータと
を含むベースパターンデータを記憶した第3の
記憶手段と、 (i) 前記テンポクロツク信号に基づいて前記第3
の記憶手段からタイミングデータを順次に読出
すと共に各読出しのたびに該タイミングデータ
と読出タイミングとを比較し、発音すべきタイ
ミングと判定されたときは該タイミングデータ
に関連した音指定データに基づいて前記第2の
記憶手段から該音指定データの示す順位のキー
データを読出す読出手段と、 (j) 前記第2の記憶手段から読出されるキーデー
タに応じてベース音信号を発生するベース音発
生手段と をそなえた電子楽器の自動伴奏装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57204000A JPS5994793A (ja) | 1982-11-20 | 1982-11-20 | 電子楽器の自動伴奏装置 |
| US06/741,714 US4619176A (en) | 1982-11-20 | 1985-06-06 | Automatic accompaniment apparatus for electronic musical instrument |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP57204000A JPS5994793A (ja) | 1982-11-20 | 1982-11-20 | 電子楽器の自動伴奏装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5994793A JPS5994793A (ja) | 1984-05-31 |
| JPH0572596B2 true JPH0572596B2 (ja) | 1993-10-12 |
Family
ID=16483111
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57204000A Granted JPS5994793A (ja) | 1982-11-20 | 1982-11-20 | 電子楽器の自動伴奏装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US4619176A (ja) |
| JP (1) | JPS5994793A (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4674383A (en) * | 1985-06-21 | 1987-06-23 | Nippon Gakki Seizo Kabushiki Kaisha | Electronic musical instrument performing automatic accompaniment on programmable memorized pattern |
| US4881440A (en) * | 1987-06-26 | 1989-11-21 | Yamaha Corporation | Electronic musical instrument with editor |
| US4941387A (en) * | 1988-01-19 | 1990-07-17 | Gulbransen, Incorporated | Method and apparatus for intelligent chord accompaniment |
| JP3013648B2 (ja) * | 1993-03-23 | 2000-02-28 | ヤマハ株式会社 | 自動編曲装置 |
| JP3938104B2 (ja) * | 2003-06-19 | 2007-06-27 | ヤマハ株式会社 | アルペジオパターン設定装置およびプログラム |
| US8933309B2 (en) * | 2012-11-12 | 2015-01-13 | Yamaha Corporation | Simulating muting in a drive control device for striking member in sound generation mechanism |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS55135899A (en) * | 1979-04-12 | 1980-10-23 | Matsushita Electric Industrial Co Ltd | Electronic musical instrument |
| JPS6326869Y2 (ja) * | 1979-08-07 | 1988-07-20 | ||
| JPS5654494A (en) * | 1979-10-09 | 1981-05-14 | Nippon Musical Instruments Mfg | Electronic musical instrument |
| JPS5732496A (en) * | 1980-08-06 | 1982-02-22 | Nippon Musical Instruments Mfg | Electronic musical instrument |
| US4449437A (en) * | 1981-09-21 | 1984-05-22 | Baldwin Piano & Organ Company | Automatic piano |
-
1982
- 1982-11-20 JP JP57204000A patent/JPS5994793A/ja active Granted
-
1985
- 1985-06-06 US US06/741,714 patent/US4619176A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS5994793A (ja) | 1984-05-31 |
| US4619176A (en) | 1986-10-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2522761B2 (ja) | 電子楽器のチャンネル割り当て装置 | |
| JPH0631978B2 (ja) | 電子楽器の自動伴奏装置 | |
| US4920851A (en) | Automatic musical tone generating apparatus for generating musical tones with slur effect | |
| US5315059A (en) | Channel assigning system for electronic musical instrument | |
| JP2655905B2 (ja) | 電子楽器のチャンネル割り当て装置 | |
| JPH0584920B2 (ja) | ||
| JPH0634170B2 (ja) | 電子楽器の自動伴奏装置 | |
| JPH0572596B2 (ja) | ||
| JPH09179559A (ja) | 自動伴奏装置及び自動伴奏方法 | |
| JPH01179090A (ja) | 自動伴奏装置 | |
| KR930007833B1 (ko) | 전자악기 | |
| JP2698942B2 (ja) | 楽音発生装置 | |
| JP2640992B2 (ja) | 電子楽器の発音指示装置及び発音指示方法 | |
| JPH0559438B2 (ja) | ||
| JP2943560B2 (ja) | 自動演奏装置 | |
| JP2513014B2 (ja) | 電子楽器の自動演奏装置 | |
| JP2526636B2 (ja) | 電子楽器 | |
| JPH0822282A (ja) | ギター自動伴奏装置 | |
| JPH0515279B2 (ja) | ||
| JPH021316B2 (ja) | ||
| JP2827313B2 (ja) | 電子楽器 | |
| JP2814479B2 (ja) | 電子楽器 | |
| JP2619237B2 (ja) | 電子楽器の自動伴奏装置 | |
| JPH07104753A (ja) | 電子楽器の自動調律装置 | |
| JP2685419B2 (ja) | 電子楽器のチャンネル割り当て装置及びチャンネル割り当て方法 |