JP3744190B2 - Automatic accompaniment device - Google Patents
Automatic accompaniment device Download PDFInfo
- Publication number
- JP3744190B2 JP3744190B2 JP08059098A JP8059098A JP3744190B2 JP 3744190 B2 JP3744190 B2 JP 3744190B2 JP 08059098 A JP08059098 A JP 08059098A JP 8059098 A JP8059098 A JP 8059098A JP 3744190 B2 JP3744190 B2 JP 3744190B2
- Authority
- JP
- Japan
- Prior art keywords
- accompaniment
- track
- control sequence
- time
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、演奏パターンデータにしたがって自動伴奏を行う自動伴奏装置に関する。
【0002】
【従来の技術】
従来の自動伴奏装置においては、複数の伴奏パターンデータをメモリに用意しておき、設定された伴奏パターンに応じて1つの伴奏パターンデータを選択し、これを繰り返しループ演奏することにより、自動伴奏を行っていた。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来の自動伴奏装置では、最近のように多様な伴奏パターンが要求されるようになると、伴奏パターンデータを記憶させるメモリの容量も増加することになる。また、メモリに記憶された固定の伴奏パターンをループ演奏するだけでは伴奏演奏が単調になるため、豊かな音楽性をもつ演奏が得られないという問題がある。
本発明の課題は、伴奏パターンデータのためのメモリの容量を低減するとともに、音楽性豊かな伴奏演奏を実現することである。
【0004】
【課題を解決するための手段】
本発明は、制御シーケンスデータにしたがって所定の時間長からなる伴奏シーケンスデータを複数組み合わせて伴奏パターンデータを作成するデータ作成手段と、制御シーケンスデータに含まれている演奏操作情報と同一の演奏操作情報が、制御シーケンスデータの進行中における指定された期間内において入力されたか否かを判別する入力情報判別手段と、制御シーケンスデータの演奏操作情報と入力された演奏操作情報とが一致したことを入力情報判別手段が判別したときは、その演奏操作情報によって指定されている伴奏シーケンスデータをデータ作成手段によって作成された伴奏パターンデータに合成させるデータ合成手段と、を有する構成になっている。
本発明によれば、ある伴奏パターンを自動演奏する場合には、複数の伴奏シーケンスデータを自在に組み合わせてその伴奏パターンを構築し、しかも、演奏者の特定の演奏操作に応じて、その演奏操作によって指定されている伴奏シーケンスデータを初めに構築した伴奏パターンにさらに合成する。
【0005】
【発明の実施の形態】
以下、本発明の自動伴奏装置の第1〜第3実施形態を図を参照して説明する。
図1は各実施形態に共通する自動伴奏装置のシステムを示すブロック図である。鍵盤等からなる演奏子(以下、「鍵盤」という)1は、操作に応じて演奏操作情報を入力する。スイッチパネル2は、音色や音量その他、伴奏パターンの設定等、発生する楽音の条件を設定するスイッチである。CPU3は、ROM及びRAM(いずれも図示せず)を内蔵したワンチップマイコンで構成され、ROMのプログラムの鍵盤処理、スイッチ処理にしたがって、鍵盤1及びスイッチパネル2から入力されたコマンドやデータをRAMに一時的にストアして処理する。表示回路4は、この装置の状態や操作についてのメッセージ等をCPU3の表示処理によって表示する。
【0006】
伴奏パターンメモリ5は、自動演奏する伴奏パターンデータそのものではなく、所定の時間長(例えば、1小節)からなる伴奏シーケンスデータを多数記憶している。CPU3は、スイッチパネル2からの伴奏パターンの設定に応じて、複数の伴奏シーケンスデータを伴奏パターンメモリ5から読み出して組み合わせ、例えば2小節の伴奏パターンデータを作成するためのコントロールシーケンスデータを生成する。作成される伴奏パターンは、ドラムパート、ベースパート、コードパートの複数のパートで構成される。なお、この実施形態においては、1音1音をデータ入力するステップ入力によってコントロールシーケンスデータが構成されている。また、各パートの複数のトラックは、すべて動作状態にする必要はなく、動作状態であるアライブ(ALIVE)又は非動作状態であるデッド(DEAD)が動作モードによって設定される。
【0007】
CPU3のRAM内には、コントロールシーケンスデータに対応するコントロールシーケンストラックのレジスタ、及び、複数のパートからなる伴奏シーケンスデータに対応する伴奏シーケンストラックのレジスタが設けられている。各トラックの処理については後述する。そして、音源6は、伴奏シーケンストラックに応じたCPU3の発音処理に応じて、図示しない音響システムに対して伴奏信号を送出する。
【0008】
次に、各実施形態の動作について、CPU3のフローチャートを参照して説明する。図2〜図7に関しては、各実施形態に共通の動作を示すフローである。図2は、メインフロー及びタイマインタラプト(TICK)のフローである。メインフローにおいては、初期化処理(ステップS1)を行った後、ステップS2〜ステップS7のループ処理を実行する。すなわち、鍵盤1の押鍵・離鍵、押鍵の強弱を検出する鍵盤処理(ステップS2)、スイッチパネル2の各スイッチの操作状態を検出するスイッチ処理(ステップS3)、表示回路4を制御する表示処理(ステップS4)、伴奏パターンデータに関する処理を行う伴奏制御処理(ステップS5)、発音・消音の制御を行う発音処理(ステップS6)、及び、その他の処理(ステップS7)を繰り返し行う。また、一定時間ごとに発生するタイマインタラプトに応じて、シーケンスタイマインタラプト処理を実行する(ステップS8)。
【0009】
図3は、図2のメインフローのステップS5における伴奏制御処理のフローである。この処理では、スイッチ処理で何らかのスイッチがオンされたイベントがあるか否かを判別する(ステップS9)。イベントがない場合にはこのフローを終了するが、イベントがあった場合には、スタートスイッチがオンされたか否かを判別する(ステップS10)。このスイッチがオンされた場合には、伴奏スタート処理を行う(ステップS11)。そして、このフローを終了する。
【0010】
ステップS10において、スタートスイッチがオンでない場合には、ストップスイッチがオンされたか否かを判別する(ステップS12)。このスイッチがオンされた場合には、伴奏ストップ処理を行う(ステップS13)。そして、このフローを終了する。
【0011】
ステップS12において、ストップスイッチがオンされない場合には、フィルインスイッチがオンされたか否かを判別する(ステップS14)。このスイッチがオンされた場合には、フィルイン処理を行う(ステップS15)。そして、このフローを終了する。
【0012】
ステップS14においてフィルインスイッチがオンされない場合には、伴奏番号値スイッチ(ACCOMP NUMBER VALUE SW)がオンされたか否かを判別する(ステップS16)。このスイッチがオンされた場合には、伴奏番号変更処理を行う(ステップS17)。
【0013】
ステップS16において伴奏番号値スイッチがオンされない場合には、オンされたその他のスイッチに応じた処理を行う(ステップS18)。そして、このフローを終了する。
【0014】
図4は、図3のステップS11における伴奏スタート処理のフローである。この処理では、伴奏パートのドラムパート、ベースパート、コードパートのいずれかを指定するポインタPを「1」にセットし(ステップS19)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの複数のコントロールトラックのいずれかを指定するポインタCTを「1」にセットする(ステップS20)。そして、CTをインクリメントしながら、Pで指定したパートの各コントロールシーケンストラックの伴奏スタート処理を行う。
【0015】
CTで指定したコントロールシーケンストラックにおいて、まず、コントロールトラックをアサインする(ステップS21)。次に、アサインしたコントロールトラックに、スイッチパネルで設定された伴奏パターンであるバリエーション(この場合、バリエーション1)のコントロールシーケンスデータの開始アドレスを設定する(ステップS22)。そして、次に実行するコマンドまでのステップタイム、及び実行するコマンドをシーケンスデータから読み出して、あらかじめコントロールトラックに設定する(ステップS23)。次に、コントロールシーケンストラックの動作モードをアライブにする(ステップS24)。
【0016】
この後、ポインタCTをインクリメントして(ステップS25)、次のコントロールシーケンストラックを指定する。そして、指定したコントロールシーケンストラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS26)。最大数以下である場合には、ステップS21に移行して、CTで指定したコントロールシーケンストラックをアサインする。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するまで、CTをインクリメントしながら、ステップS21〜ステップS26の処理を繰り返す。
【0017】
ステップS26において、コントロールシーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS27)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS28)。最大数以下である場合には、ステップS20に移行して、そのパートの最初のトラック(CT=1)からステップS21〜ステップS26の処理を繰り返す。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するたびに、ステップS27においてPをインクリメントする。
【0018】
ステップS28において、指定したパートが最大パート数を超えた場合には、伴奏モードを伴奏スタート(ACCOMP START )にセットする(ステップS29)。そして、このフローを終了する。
【0019】
図5は、図3のステップS13における伴奏ストップ処理のフローである。この処理では、伴奏によって発音した全てのノート(音)をオフにして(ステップS30)、全てのコントロールシーケンストラックを初期化して、動作モードをデッドすなわち非動作にする(ステップS31)。また、全ての伴奏シーケンストラックを初期化して、動作モードをデッドにする(ステップS32)。次に、伴奏モードを伴奏ストップ(ACCOMP STOP )にセットする(ステップS33)。そして、このフローを終了する。
【0020】
図6は、図3のステップS15におけるフィルイン処理のフローである。この処理では、伴奏によって発音した全てのノートをオフにし(ステップS34)、全てのコントロールシーケンストラックを初期化して、動作モードをデッドにする(ステップS35)。また、全ての伴奏シーケンストラックを初期化して、動作モードをデッドにする(ステップS36)。
【0021】
次に、伴奏パートを指定するポインタPを「1」にセットする(ステップS37)。また、その指定したパートのコントロールシーケンストラックのポインタCTを「1」にセットする(ステップS38)。そして、CTをインクリメントしながら、Pで指定したパートの各コントロールシーケンストラックのフィルイン処理を行う。
【0022】
CTで指定したコントロールシーケンストラックにおいて、まず、コントロールシーケンストラックをアサインする(ステップS39)。次に、アサインしたコントロールシーケンストラックに、スイッチパネルで設定されたフィルインのコントロールシーケンスデータの開始アドレスを設定する(ステップS40)。次に、コントロールシーケンストラックの動作モードをアライブにする(ステップS41)。
【0023】
この後、ポインタCTをインクリメントして(ステップS42)、次のコントロールシーケンストラックを指定する。そして、指定したコントロールシーケンストラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS43)。最大数以下である場合には、ステップS39に移行して、CTで指定したコントロールシーケンストラックをアサインする。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するまで、CTをインクリメントしながら、ステップS39〜ステップS43の処理を繰り返す。
【0024】
ステップS43において、コントロールシーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS44)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS45)。最大数以下である場合には、ステップS38に移行して、そのパートの最初のトラック(CT=1)からステップS39〜ステップS43の処理を繰り返す。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するたびに、ステップS44においてPをインクリメントする。
【0025】
ステップS45において、指定したパートが最大パート数を超えた場合には、現在演奏すべき時点まで強制的にコントロールシーケンスデータ及び伴奏シーケンスデータを進める(ステップS46)。そして、伴奏モードをフィルイン(ACCOMP FILLIN )にセットする(ステップS47)。そして、このフローを終了する。
【0026】
図7は、図2のステップS8におけるシーケンスタイマインタラプト処理のフローである。この処理では、コントロールシーケンストラックの処理(ステップS48)、伴奏シーケンストラックのゲートタイム処理(ステップS49)、伴奏シーケンストラックの処理(ステップS50)、ノートのゲートタイム処理(ステップS51)を実行する。
【0027】
次に、図8〜図18を参照して、各実施形態ごとに図7におけるシーケンスタイマインタラプト処理の動作を説明する。
まず、図8〜図15を参照して第1実施形態を説明する。図8は、図7のステップS48における第1実施形態のコントロールシーケンストラックの処理のフローである。この処理では、伴奏パートを指定するポインタPを「1」にセットし(ステップS52)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの複数のコントロールシーケンストラックのいずれかを指定するポインタCTを「1」にセットする(ステップS53)。そして、CTをインクリメントしながら、Pで指定したパートの各コントロールシーケンストラックの処理を行う。
【0028】
CTで指定したコントロールシーケンストラックのモードはアライブであるか否かを判別し(ステップS54)、アライブである場合には、コントロールシーケンストラックにおける次の実行コマンドまでの残りステップタイムは「0」であるか否かを判別する(ステップS55)。残りステップタイムが「0」でない場合には、そのステップタイムをデクリメントする(ステップS56)。
【0029】
ステップS55のデクリメントの後、又は、ステップS54においてコントロールシーケンストラックがアライブでなくデッドの場合には、ポインタCTをインクリメントして(ステップS57)、次のコントロールトラックを指定する。そして、指定したコントロールトラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS58)。最大数以下である場合には、ステップS54に移行して、CTで指定したコントロールシーケンストラックの動作モードを判別する。
【0030】
コントロールシーケンストラックの動作モードがアライブの場合に、ステップS55において残りステップタイムが「0」である場合には、次の実行コマンドを判別する(ステップS59)。実行コマンドがトラックオンである場合には、コントロールシーケンスデータ中の番号の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する(ステップS60)。一方、実行コマンドがジャンプである場合には、コントロールシーケンスデータ中のラベルにジャンプする(ステップS61)。
【0031】
ステップS60において伴奏シーケンストラックを生成した後、又は、ステップS61においてジャンプした後は、次のコントロールシーケンスデータを読み出し、コントロールシーケンストラックにセットするとともに、次のコントロールシーケンスデータまでのステップタイムをコントロールシーケンストラックにセットする(ステップS62)。そして、ステップS55に移行して、残りステップタイムを判別する。
【0032】
そして、コントロールシーケンストラックがそのパートの最大トラック数に達するまで、CTをインクリメントしながら、ステップS54以降の処理を繰り返す。ステップS58において、コントロールシーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS63)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS64)。最大数以下である場合には、ステップS53に移行して、新たに指定したパートの最初のコントロールシーケンストラックについて上記処理を繰り返す。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するたびに、ステップS63においてPをインクリメントする。ステップS64において、指定したパートが最大パート数を超えた場合には、このフローを終了する。
【0033】
図9は、図7のステップS49における第1実施形態の伴奏シーケンストラックのゲートタイム処理のフローである。この処理では、伴奏パートを指定するポインタPを「1」にセットし(ステップS65)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの複数の伴奏シーケンストラックのいずれかを指定するポインタSTを「1」にセットする(ステップS66)。そして、STをインクリメントしながら、Pで指定したパートの各伴奏シーケンストラックの処理を行う。
【0034】
STで指定した伴奏シーケンストラックの動作モードはアライブであるか否かを判別し(ステップS67)、アライブである場合には、伴奏シーケンストラックにおける残りゲートタイムが「0」であるか否かを判別する(ステップS68)。残りゲートタイムが「0」でない場合には、そのゲートタイムをデクリメントする(ステップS69)。
【0035】
ステップS69においてステップタイムをデクリメントした後、又は、ステップS67において伴奏シーケンストラックがデッドである場合には、STをインクリメントして(ステップS70)、次の伴奏シーケンストラックを指定する。そして、指定した伴奏シーケンスラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS71)。最大数以下である場合には、ステップS67に移行して、STで指定した伴奏シーケンストラックの動作モードを判別する。そして、伴奏シーケンストラックがそのパートの最大トラック数に達するまで、STをインクリメントしながら、ステップS67〜ステップS71の処理を繰り返す。
【0036】
ステップS68において、残りゲートタイムが「0」になった場合には、この伴奏シーケンストラックによって発音した全てのノートをオフにする(ステップS72)。また、この伴奏シーケンストラックを初期化して、動作モードをデッドにする(ステップS73)。そして、ステップS70に移行して、STをインクリメントする。
【0037】
ステップS71において、伴奏シーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS74)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS75)。最大数以下である場合には、ステップS66に移行して、新たに指定したパートの最初の伴奏シーケンストラックについて、ステップS67以降の処理を実行する。そして、伴奏シーケンストラックがそのパートの最大トラック数に達するたびに、ステップS74においてPをインクリメントする。ステップS75において、指定したパートが最大パート数を超えた場合には、このフローを終了する。
【0038】
図10は、図7のステップS50における第1実施形態の伴奏シーケンストラックの処理のフローである。この処理では、伴奏パートを指定するポインタPを「1」にセットし(ステップS76)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの伴奏シーケンストラックを指定するポインタSTを「1」にセットする(ステップS77)。そして、STをインクリメントしながら、Pで指定したパートの伴奏シーケンストラックの処理を行う。
【0039】
STで指定した伴奏シーケンストラックの動作モードはアライブであるか否かを判別し(ステップS78)、アライブである場合には、伴奏シーケンストラックにおける次の実行コマンドまでの残りステップタイムは「0」であるか否かを判別する(ステップS79)。残りステップタイムが「0」でない場合には、伴奏シーケンストラックのステップタイムをデクリメントする(ステップS80)。
【0040】
ステップS80におけるデクリメントの後、又は、ステップS78において伴奏シーケンストラックがアライブでなくデッドの場合には、ポインタSTをインクリメントして(ステップS81)、次の伴奏シーケンストラックを指定する。そして、指定した伴奏シーケンストラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS82)。最大数以下である場合には、ステップS78に移行して、STで指定した伴奏シーケンストラックの動作モードを判別する。ステップS78において、伴奏シーケンストラックの動作モードがアライブの場合において、ステップS79において次の実行コマンドまでの残りステップタイムが「0」になった場合には、その実行コマンドを判別する(ステップS83)。
【0041】
実行コマンドがトラックエンドの場合には、この伴奏シーケンストラックの動作モードをデッドにする(ステップS84)。そして、ステップS81に移行して、STをインクリメントして次の伴奏シーケンストラックを指定する。
【0042】
一方、ステップS83において、実行コマンドがノート番号nのノートオンコマンドである場合には、ノート番号nのノートを伴奏シーケンスデータ中のベロシティ及びゲートタイムでセットしてオンにする(ステップS85)。また、次の伴奏シーケンスデータを読み出して伴奏シーケンストラックにセットするとともに、次の伴奏シーケンスデータまでのステップタイムを伴奏シーケンストラックにセットする(ステップS86)。この後、ステップS79に移行して、残りステップタイムを判別する。そして、ステップS82において、伴奏シーケンストラックがそのパートの最大トラック数に達するまで、STをインクリメントしながら、ステップS78〜ステップS82の処理を繰り返す。
【0043】
ステップS82において、伴奏シーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS87)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS88)。最大数以下である場合には、ステップS77に移行して、新たに指定したパートの最初の伴奏シーケンストラックについてステップS78以降の処理を繰り返す。そして、伴奏シーケンストラックがそのパートの最大トラック数に達するたびに、ステップS87においてPをインクリメントする。ステップS88において、指定したパートが最大パート数を超えた場合には、このフローを終了する。
【0044】
図11は、ドラムパートを例に採った場合の第1実施形態におけるコントロールトラックの処理を示す図である。図11(1)は、ドラムコントロールシーケンストラック「00」にセットされた伴奏シーケンスデータである。データの第1行目は、ステップタイム「000」で伴奏シーケンストラック番号「01」をゲートタイム「192(1小節)」の間だけオンにするトラック1を生成することを示している。したがって、図8のステップS55において、残りステップタイムが「0」であり、ステップS59において実行コマンドがトラックオンであるので、直ちにステップS60において、伴奏シーケンストラック番号「01」の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する。
【0045】
図11(1)のデータの第2行目は、ステップタイム「000」で、伴奏シーケンストラック番号「25」をゲートタイム「192(1小節)」の間だけオンにするトラック2を生成することを示している。したがって、図8のステップS55において、残りステップタイムが「0」であり、ステップS59において実行コマンドがトラックオンであるので、直ちにステップS60において、伴奏シーケンストラック番号「25」の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する。
【0046】
図11(1)のデータの第3行目は、ステップタイム「192」後に(すなわち1小節後に)、伴奏シーケンストラック番号「64」をゲートタイム「192(1小節)」の間だけオンにするトラック3を生成することを示している。したがって、図8のステップS55において、残りステップタイムが「192」であり、ステップS56においてステップタイムをデクリメントする。そして、192ステップ経過後に残りステップタイムが「0」になると、ステップS59において実行コマンドがトラックオンであるので、ステップS60において、伴奏シーケンストラック番号「64」の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する。
【0047】
図11(2)は、図11(1)に基づいて、コントロールシーケンストラックの制御による伴奏シーケンストラックの生成の状態を示している。すなわち、初めの1小節では伴奏シーケンストラック番号「01」を実行するトラック1及び伴奏シーケンストラック番号「25」を実行するトラック2を生成し、後の1小節では伴奏シーケンストラック番号「64」を実行するトラック3を生成する。そして、この2小節の伴奏パターンを繰り返し演奏する。
【0048】
図12は、図11の場合におけるドラムパートの3つの伴奏シーケンストラックの処理を示す図である。この場合、伴奏シーケンストラック番号「01」はバス、伴奏シーケンストラック番号「25」はスネア、伴奏シーケンストラック番号「64」はハイハットである。
【0049】
バストラックの第1行目は、ステップタイム「000」で、ノート番号「36」をベロシティ96で48ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「0」であり、ステップS83において実行コマンドがノート番号オンであるので、直ちにステップS85において、ノート番号「36」のノート(バス)をベロシティ96及びゲートタイム48の時間だけオンにする伴奏シーケンストラックを生成する。
【0050】
第2行目は、ステップタイム「096」で、ノート番号「36」をベロシティ85で48ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「96」であり、ステップS80においてステップタイムをデクリメントする。そして、96ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがノート番号オンであるので、ステップS85において、ノート番号「36」のノート(バス)をベロシティ85及びゲートタイム48の時間だけオンにする伴奏シーケンストラックを生成する。
【0051】
第3行目は、ステップタイム「096」で、トラックエンドになることを示している。したがって、図10のステップS79において、残りステップタイムが「96」であり、ステップS80においてステップタイムをデクリメントする。そして、96ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがトラックエンドであるので、ステップS84において、この伴奏シーケンストラックの動作モードをデッドにする。
【0052】
この結果、トラック1のバスは、図12(2)に示すように、1小節の1/4拍目及び3/4拍目に強弱をつけた2拍子の伴奏シーケンスを形成する。
【0053】
スネアトラックの第1行目は、ステップタイム「048」で、ノート番号「38」をベロシティ80で48ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「48」であり、ステップS80においてステップタイムをデクリメントする。そして、48ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがノート番号オンであるので、ステップS85において、ノート番号「38」のノート(スネア)をベロシティ80及びゲートタイム48の時間だけオンにする伴奏シーケンストラックを生成する。
【0054】
第2行目は、ステップタイム「144」で、ノート番号「38」をベロシティ69で48ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「144」であり、ステップS80においてステップタイムをデクリメントする。そして、144ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがノート番号オンであるので、ステップS85において、ノート番号「38」のノート(スネア)をベロシティ69及びゲートタイム48の時間だけオンにする伴奏シーケンストラックを生成する。
【0055】
第3行目は、ステップタイム「192」で、トラックエンドになることを示している。したがって、図10のステップS79において、残りステップタイムが「192」であり、ステップS80においてステップタイムをデクリメントする。そして、192ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがトラックエンドであるので、ステップS84において、この伴奏シーケンストラックの動作モードをデッドにする。
【0056】
この結果、トラック2のスネアは、図12(2)に示すように、1小節の2/4拍目及び4/4拍目に強弱をつけた2拍子の伴奏シーケンスを形成する。
【0057】
ハイハットトラックの第1行目は、ステップタイム「000」で、ノート番号「42」をベロシティ80で24ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「0」であり、ステップS83において実行コマンドがノート番号オンであるので、直ちにステップS85において、ノート番号「42」のノート(ハイハット)をベロシティ80及びゲートタイム24の時間だけオンにする伴奏シーケンストラックを生成する。
【0058】
第2行目〜第8行目は、ステップタイム「024」〜「168」で、ノート番号「42」をベロシティ80で24ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「24」〜「168」であり、ステップS80においてステップタイムをデクリメントする。そして、24〜168ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがノート番号オンであるので、ステップS85において、ノート番号「42」のノート(ハイハット)をベロシティ80及びゲートタイム24の時間だけオンにする伴奏シーケンストラックを生成する。
【0059】
第9行目は、ステップタイム「192」で、トラックエンドになることを示している。したがって、図10のステップS79において、残りステップタイムが「192」であり、ステップS80においてステップタイムをデクリメントする。そして、192ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがトラックエンドであるので、ステップS84において、この伴奏シーケンストラックの動作モードをデッドにする。
【0060】
この結果、トラック3のハイハットは、図12(2)に示すように、1小節の1/8拍目ごとに同じ強さの8拍子の伴奏シーケンスを形成する。
【0061】
図13は、図11の場合におけるドラムパートの3つの伴奏シーケンストラックの処理のうちハイハットの伴奏シーケンストラックのみを伴奏シーケンストラック番号「64」から伴奏シーケンストラック番号「70」に変更したものである。
【0062】
図13(1)において、ハイハットトラックの第1行目は、ステップタイム「000」で、ノート番号「42」をベロシティ80で12ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「0」であり、ステップS83において実行コマンドがノート番号オンであるので、直ちにステップS85において、ノート番号「42」のノート(ハイハット)をベロシティ80及びゲートタイム12の時間だけオンにする伴奏シーケンストラックを生成する。
【0063】
第2行目〜第16行目は、ステップタイム「012」〜「180」で、ノート番号「42」をベロシティ80で12ステップのゲートタイムの時間だけオンにすることを示している。したがって、図10のステップS79において、残りステップタイムが「12」〜「180」であり、ステップS80においてステップタイムをデクリメントする。そして、12〜180ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがノート番号オンであるので、ステップS85において、ノート番号「42」のノート(ハイハット)をベロシティ80及びゲートタイム12の時間だけオンにする伴奏シーケンストラックを生成する。
【0064】
第17行目は、ステップタイム「192」で、トラックエンドになることを示している。したがって、図10のステップS79において、残りステップタイムが「192」であり、ステップS80においてステップタイムをデクリメントする。そして、192ステップタイムが経過して残りステップタイムが「0」になると、ステップS83において実行コマンドがトラックエンドであるので、ステップS84において、この伴奏シーケンストラックの動作モードをデッドにする。
【0065】
この結果、トラック3のハイハットは、図13(2)に示すように、1小節の1/16拍目ごとに同じ強さの16拍子の伴奏シーケンスを形成する。
【0066】
このように、図1に示した伴奏パターンメモリ5に、自動演奏する一連の伴奏パターンデータそのものではなく、伴奏パターンデータを構成する所定の時間長の多数の伴奏シーケンスデータを個々に記憶させて、これらの組合せによって自動演奏する一連の伴奏パターンデータをその都度作成する。したがって、伴奏パターンデータのためのメモリの容量を低減することができる。
【0067】
図14は、図8に示したコントロールシーケンスの処理の変形例を示している。この処理では、複数の伴奏シーケンスデータの組合せで構成された伴奏パターンデータに対して、演奏者の特定の演奏操作情報の入力に応じた他の伴奏シーケンスデータをさらに加味する。具体的には、特定の演奏操作情報(例えば、コードチェンジ情報)を待って、その対象となる演奏操作情報が起こった(入力された)なら、コントロールシーケンスデータで指定したサブトラックを実行する。サブトラックについては後述する。
【0068】
図14において、伴奏パートを指定するポインタPを「1」にセットし(ステップS89)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの複数のコントロールトラックのいずれかを指定するポインタCTを「1」にセットする(ステップS90)。そして、CTをインクリメントしながら、Pで指定したパートの各コントロールトラックの処理を行う。
【0069】
CTで指定したコントロールシーケンストラックの動作モードはアライブであるか否かを判別し(ステップS91)、アライブである場合には、コントロールシーケンストラックにおける次の実行コマンドまでの残りステップタイムは「0」であるか否かを判別する(ステップS92)。残りステップタイムが「0」でない場合には、そのステップタイムをデクリメントする(ステップS93)。
【0070】
ステップS93のデクリメントの後、又は、ステップS91においてコントロールシーケンストラックがアライブでなくデッドの場合には、ポインタCTをインクリメントして(ステップS94)、次のコントロールトラックを指定する。そして、指定したコントロールトラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS95)。最大数以下である場合には、ステップS91に移行して、CTで指定したコントロールシーケンストラックの動作モードを判別する。
【0071】
コントロールシーケンストラックがアライブの場合に、ステップS92において残りステップタイムが「0」である場合には、次の実行コマンドを判別する(ステップS96)。実行コマンドがトラックオンである場合には、コントロールシーケンスデータ中の番号の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する(ステップS97)。ステップS96において、実行コマンドがジャンプである場合には、コントロールシーケンスデータ中のラベルにジャンプする(ステップS98)。ステップS96において、実行コマンドが、演奏者の特定の演奏操作情報の入力に応じた他の伴奏シーケンスデータをさらに加味するウェイト(WAITn ;nはサブトラックの番号)である場合には、ウェイトの待ちの対象である特定の演奏操作情報が今回起こったなら、コントロールシーケンスデータで指定した番号nのサブトラックを実行する(ステップS99)。
【0072】
ステップS97において伴奏シーケンストラックを生成した後、ステップS98においてジャンプした後、又は、ステップS99においてサブトラックを実行した後若しくは待ちの対象が起らなかった場合には、次のコントロールシーケンスデータを読み出し、コントロールシーケンストラックにセットするとともに、次のコントロールシーケンスデータまでのステップタイムをコントロールシーケンストラックにセットする(ステップS100)。そして、ステップS92に移行して、残りステップタイムを判別する。
【0073】
そして、コントロールシーケンストラックがそのパートの最大トラック数に達するまで、CTをインクリメントしながら、ステップS92以降の処理を繰り返す。ステップS95において、コントロールシーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS101)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS102)。最大数以下である場合には、ステップS90に移行して、新たに指定したパートの最初のコントトールシーケンストラックについて上記処理を繰り返す。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するたびに、ステップS101においてPをインクリメントする。ステップS102において、指定したパートが最大パート数を超えた場合には、このフローを終了する。
【0074】
図15は、図11のドラムパートを例に採った場合において、サブトラックを実行するコントロールトラックの処理を示す図である。図15におけるコントロールシーケンストラック(Drum CTRL00)は、図11におけるコントロールトラックと同じである。したがって、図15(2)に示すように、ドラムコントロールトラック1の制御によって、初めの1小節では伴奏シーケンストラック番号「01」を実行するトラック1及び伴奏シーケンストラック番号「25」を実行するトラック2を生成し、後の1小節では伴奏シーケンストラック番号「64」を実行するトラック3を生成する。そして、この2小節の伴奏パターンを繰り返し演奏する。
【0075】
一方、図15(1)のコントロールシーケンストラック(Drum CTRL01)においては、第1行目は、ステップタイム「000」で、ウェイトコマンド(WAIT1 )を実行することを示している。この実行コマンドは、鍵盤から入力された演奏操作情報がコントロールシーケンスデータに設定されている演奏操作情報(Match 00)と一致したときに、サブトラックを実行するコマンドである。サブトラックの第4行目は、ステップタイム「000」で、伴奏シーケンストラック番号「72」をゲートタイム「192」の間だけオンにするトラック4を生成することを示している。サブトラックの第5行目は、ステップタイム「192」で、トラックエンドになることを示している。
【0076】
したがって、図15(2)に示すように、設定されている演奏操作情報(Match 00)と一致した演奏操作情報が入力されると、直ちに伴奏シーケンストラック番号「72」の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する。この場合において、サブトラックを実行させるための演奏操作情報としては、例えば、コードチェンジ情報が考えられる。この場合には、演奏者がコードチェンジをすると同時にサブトラックを実行する。
【0077】
このように、上記第1実施形態によれば、図1におけるCPU3は、制御シーケンスデータにしたがって所定の時間長からなる伴奏シーケンスデータを複数組み合わせて伴奏パターンデータを作成するデータ作成手段と、制御シーケンスデータ(コントロールシーケンスデータ)に含まれている演奏操作情報と同一の演奏操作情報が入力されたか否かを判別する入力情報判別手段と、制御シーケンスデータの演奏操作情報と入力された演奏操作情報とが一致したことを入力情報判別手段が判別したときは、その演奏操作情報によって指定されている伴奏シーケンスデータをデータ作成手段によって作成された伴奏パターンデータに合成させるデータ合成手段とを構成する。
【0078】
そして、ある伴奏パターンを自動演奏する場合には、複数の伴奏シーケンスデータを自在に組み合わせてその伴奏パターンを構築し、しかも、演奏者の特定の演奏操作に応じて、その演奏操作によって指定されている伴奏シーケンスデータを初めに構築した伴奏パターンにさらに合成する。したがって、伴奏パターンデータのためのメモリの容量を低減するとともに、音楽性豊かな伴奏演奏を実現することができる。
【0079】
次に、第2実施形態について、図16及び図17を参照して説明する。この第2実施形態においては、待ち対象の演奏操作情報が入力されたとき、直ちにサブトラックを実行するのではなく、動作モードがウェイトの場合にサブトラックを実行する。
【0080】
図16は、図7のステップS48における第2実施形態のコントロールトラックの処理のフローである。この処理では、伴奏パートを指定するポインタPを「1」にセットし(ステップS103)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの複数のコントロールトラックのいずれかを指定するポインタCTを「1」にセットする(ステップS104)。そして、CTをインクリメントしながら、Pで指定したパートの各コントロールトラックの処理を行う。
【0081】
CTで指定したコントロールシーケンストラックの動作モードはアライブであるか否かを判別し(ステップS105)、アライブである場合には、コントロールシーケンストラックにおける次の実行コマンドまでの残りステップタイムは「0」であるか否かを判別する(ステップS106)。残りステップタイムが「0」でない場合には、動作モードはウェイトであるか否かを判別する(ステップS107)。動作モードがウェイトでない場合には、コントロールシーケンストラックのステップタイムをデクリメントする(ステップS108)。
【0082】
ステップS108のデクリメントの後、又は、ステップS105においてコントロールシーケンストラックの動作モードがアライブでなくデッドの場合には、ポインタCTをインクリメントして(ステップS109)、次のコントロールトラックを指定する。そして、指定したコントロールトラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS110)。最大数以下である場合には、ステップS105に移行して、CTで指定したコントロールシーケンストラックの動作モードを判別する。
【0083】
コントロールシーケンストラックの動作モードがアライブの場合に、ステップS106において残りステップタイムが「0」である場合には、動作モードをアライブにする(ステップS111)。そして、次の実行コマンドを判別する(ステップS112)。実行コマンドがトラックオンである場合には、コントロールシーケンスデータ中の番号の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する(ステップS113)。ステップS112において、実行コマンドがジャンプである場合には、コントロールシーケンスデータ中のラベルにジャンプする(ステップS114)。ステップS112において、実行コマンドがウェイトである場合には、動作モードをウェイトにする(ステップS115)。
【0084】
ステップS113において伴奏シーケンストラックを生成した後、ステップS114においてジャンプした後、又は、ステップS115において動作モードをウェイトにした後は、次のコントロールシーケンスデータを読み出し、コントロールシーケンストラックにセットするとともに、次のコントロールシーケンスデータまでのステップタイムをコントロールシーケンストラックにセットする(ステップS116)。そして、ステップS106に移行して、残りステップタイムを判別する。
【0085】
ステップS106において残りステップタイムが「0」でない場合に、ステップS107において動作モードがウェイトの場合には、入力された演奏操作情報が待ち対象の情報と一致しているか否かを判別する(ステップS117)。一致したときは、待ち対象が今回起こったので、コントロールシーケンスデータで指定したサブトラックを実行する(ステップS118)。サブトラックを実行した後、又は、入力された演奏操作情報が待ち対象の情報と一致していない場合には、ステップS108に移行して、コントロールシーケンストラックのステップタイムをデクリメントする。そして、ステップS109において、CTをインクリメントする。
【0086】
インクリメントした結果、ステップS110において、コントロールトラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS119)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS120)。最大数以下である場合には、ステップS104に移行して、新たに指定したパートの最初のコントロールシーケンストラックについてステップS105以降の処理を実行する。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するたびに、ステップS119においてPをインクリメントする。ステップS120において、指定したパートが最大パート数を超えた場合には、このフローを終了する。
【0087】
図17は、ドラムパートを例に採った場合において、サブトラックを実行するコントロールトラックの処理を示す図である。図17におけるコントロールシーケンストラック(Drum CTRL00)は、第1実施形態の図11におけるコントロールトラックと同じである。したがって、図17(2)に示すように、ドラムコントロールトラック1の制御によって、初めの1小節では伴奏シーケンストラック番号「01」を実行するトラック1及び伴奏シーケンストラック番号「25」を実行するトラック2を生成し、後の1小節では伴奏シーケンストラック番号「64」を実行するトラック3を生成する。そして、この2小節の伴奏パターンを繰り返し演奏する。
【0088】
一方、図17(1)のコントロールシーケンストラック(Drum CTRL01)においては、ステップタイム「000」で、ウェイトコマンド(WAIT1 )を実行することを示している。この実行コマンドは、鍵盤から入力された演奏操作情報がコントロールシーケンスデータで設定されている演奏操作情報(Match 00)と一致したときに、サブトラックを実行するコマンドである。また、ステップタイム「000」で、伴奏シーケンストラック番号「72」をゲートタイム「192」の間だけオンにするトラック4を生成することを示している。さらに、ステップタイム「192」で、トラックエンドになることを示している。ただし、図16のフローに示したように、設定されている演奏操作情報が入力された場合でも、動作モードがウェイトのときに、サブトラックを実行する。
【0089】
したがって、図17(2)に示すように、ドラムコントロールトラック2がウェイトのときにのみ、設定されている演奏操作情報(Match 00)と一致した演奏操作情報が入力されると、伴奏シーケンストラック番号「72」の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する。例えば、動作モードがウェイトのときに、演奏者がコードチェンジをすると、同時にサブトラックを実行する。
【0090】
このように、上記第2実施形態によれば、CPU3は、コントロールシーケンスデータの進行中における指定された範囲内に入力される演奏操作情報のみを受け付ける。したがって、演奏者の操作や装置の状態によりインタラクティブに伴奏データが変化し、多彩な伴奏演奏が所定のタイミング間において可能になる。
【0091】
次に、第3実施形態について図18を参照して説明する。この第3実施形態においても、第2実施形態と同様に、待ち対象の演奏操作情報が入力されたとき、直ちにサブトラックを実行するのではなく、動作モードがウェイトの場合にサブトラックを実行する。さらに、サブトラックの実行コマンドがワンショット実行コマンドである場合には、「一度だけ」サブトラックを実行する。
【0092】
図18は、図7のステップS48における第3実施形態のコントロールシーケンストラックの処理のフローである。この処理では、伴奏パートを指定するポインタPを「1」にセットし(ステップS121)、Pをインクリメントしながらループ処理を行う。Pで指定したパートにおいて、そのパートの複数のコントロールトラックのいずれかを指定するポインタCTを「1」にセットする(ステップS122)。そして、CTをインクリメントしながら、Pで指定したパートの各コントロールトラックの処理を行う。
【0093】
CTで指定したコントロールシーケンストラックの動作モードはアライブであるか否かを判別し(ステップS123)、アライブである場合には、コントロールシーケンストラックにおける次の実行コマンドまでの残りステップタイムは「0」であるか否かを判別する(ステップS124)。残りステップタイムが「0」でない場合には、動作モードはウェイトであるか否かを判別する(ステップS125)。動作モードがウェイトでない場合には、コントロールシーケンストラックのステップタイムをデクリメントする(ステップS126)。
【0094】
ステップS126のデクリメントの後、又は、ステップS123においてコントロールシーケンストラックの動作モードがアライブでなくデッドの場合には、ポインタCTをインクリメントして(ステップS127)、次のコントロールトラックを指定する。そして、指定したコントロールトラックがそのパートの最大トラック数を超えたか否かを判別する(ステップS128)。最大数以下である場合には、ステップS123に移行して、CTで指定したコントロールシーケンストラックの動作モードを判別する。
【0095】
コントロールシーケンストラックの動作モードがアライブの場合に、ステップS124において残りステップタイムが「0」である場合には、動作モードをアライブにする(ステップS129)。そして、次の実行コマンドを判別する(ステップS130)。実行コマンドがトラックオンである場合には、コントロールシーケンスデータ中の番号の伴奏シーケンスデータを演奏する伴奏シーケンストラックを生成する(ステップS131)。ステップS130において、実行コマンドがジャンプである場合には、コントロールシーケンスデータ中のラベルにジャンプする(ステップS132)。ステップS130において、実行コマンドがウェイトである場合には、動作モードをウェイトにする(ステップS133)。
【0096】
ステップS131において伴奏シーケンストラックを生成した後、ステップS132においてジャンプした後、又は、ステップS133において動作モードをウェイトにした後は、次のコントロールシーケンスデータを読み出し、コントロールシーケンストラックにセットするとともに、次のコントロールシーケンスデータまでのステップタイムをコントロールシーケンストラックにセットする(ステップS134)。そして、ステップS124に移行して、残りステップタイムを判別する。
【0097】
ステップS124において残りステップタイムが「0」でない場合に、ステップS125において動作モードがウェイトの場合には、入力された演奏操作情報が待ち対象の情報と一致しているか否かを判別する(ステップS135)。一致したときは、待ち対象が今回起こったので、コントロールシーケンスデータで指定したサブトラックを実行する(ステップS136)。サブトラックを実行した後、その実行コマンドがワンショットウェイトであるか否かを判別する(ステップS137)。ワンショットウェイトである場合には、動作モードをアライブにする(ステップS138)。アライブにした後、又は、ステップS135において入力された演奏操作情報が待ち対象の情報と一致していない場合、若しくは、ステップS137において実行コマンドがワンショットウェイトでない場合には、ステップS126に移行して、コントロールシーケンストラックのステップタイムをデクリメントする。そして、ステップS127において、CTをインクリメントする。
【0098】
インクリメントした結果、ステップS128において、コントロールシーケンストラックがそのパートの最大トラック数を超えた場合には、ポインタPをインクリメントして(ステップS139)、次のパートを指定する。そして、指定したパートが最大数を超えたか否かを判別する(ステップS140)。最大数以下である場合には、ステップS122に移行して、新たに指定したパートの最初のコントロールシーケンストラックからステップS123以降の処理を実行する。そして、コントロールシーケンストラックがそのパートの最大トラック数に達するたびに、ステップS139においてPをインクリメントする。ステップS140において、指定したパートが最大パート数を超えた場合には、このフローを終了する。
【0099】
このように、上記第3実施形態によれば、CPU3は、コントロールシーケンスデータの進行中における指定された範囲内に入力される演奏操作情報のみを受け付ける。さらにこの場合において、実行コマンドがワンショットウェイトの場合には、その範囲内に一度だけ演奏操作情報を受け付ける。したがって、演奏者の操作や装置の状態によりインタラクティブに伴奏データが変化し、多彩な伴奏演奏が所定のタイミング間において一度だけ可能になる。
【0100】
なお、上記第3実施形態において、所定の範囲内に一度だけ演奏操作情報を受け付けるようにしたが、任意の回数を設定することにより、その設定した回数だけサブトラックを実行することも可能である。
【0101】
また、上記各実施形態においては、図7のシーケンスタイマインタラプトの処理において、全てのパート及び全てのコントロールシーケンストラックについて処理を行う構成にしたが、処理対象のコントロールシーケンストラックの番号をレジスタ等にストアして、処理対象のコントロールシーケンストラックだけについて処理を行う構成にしてもよい。この場合には、処理対象でないコントロールシーケンストラックについては指定しないので、全てのパート及び全てのコントロールシーケンストラックについて指定して処理を行う場合に比較して、処理時間を短縮することができる。
【0102】
【発明の効果】
本発明によれば、ある伴奏パターンを自動演奏する場合には、複数の伴奏シーケンスデータを自在に組み合わせてその伴奏パターンを構築し、しかも、演奏者の特定の演奏操作に応じて、その演奏操作によって指定されている伴奏シーケンスデータを初めに構築した伴奏パターンにさらに合成する。したがって、伴奏パターンデータのためのメモリの容量を低減するとともに、音楽性豊かな伴奏演奏を実現することができる。
【図面の簡単な説明】
【図1】各実施形態における自動伴奏装置のシステムを示すブロック図。
【図2】CPUによって実行されるメイン及びタイマインタラプトのフローチャート。
【図3】図2における伴奏制御処理のフローチャート。
【図4】図3における伴奏スタート処理のフローチャート。
【図5】図3における伴奏ストップ処理のフローチャート。
【図6】図3におけるフィルイン処理のフローチャート。
【図7】図2におけるシーケンスタイマインタラプト処理のフローチャート。
【図8】第1実施形態における図7のコントロールシーケンストラック処理のフローチャート。
【図9】第1実施形態における図7の伴奏シーケンストラックのゲートタイム処理のフローチャート。
【図10】第1実施形態における図7の伴奏シーケンストラック処理のフローチャート。
【図11】ドラムパートを例に採った場合の第1実施形態におけるコントロールシーケンストラックの処理を示す図。
【図12】図11における伴奏シーケンストラックの処理を示す図。
【図13】図11における伴奏シーケンストラックの処理を示す図。
【図14】第1実施形態における図7のコントロールシーケンストラック処理のフローチャート。
【図15】ドラムパートを例に採った場合の第1実施形態におけるコントロールシーケンストラックの処理を示す図。
【図16】第2実施形態における図7のコントロールシーケンストラック処理のフローチャート。
【図17】ドラムパートを例に採った場合の第2実施形態におけるコントロールシーケンストラックの処理を示す図。
【図18】第3実施形態における図7のコントロールシーケンストラック処理のフローチャート。
【符号の説明】
1 鍵盤
2 スイッチパネル
3 CPU
4 表示回路
5 伴奏パターンメモリ
6 音源[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an automatic accompaniment apparatus that performs automatic accompaniment according to performance pattern data.
[0002]
[Prior art]
In a conventional automatic accompaniment device, a plurality of accompaniment pattern data is prepared in a memory, one accompaniment pattern data is selected in accordance with the set accompaniment pattern, and this is repeatedly performed in a loop, thereby performing automatic accompaniment. I was going.
[0003]
[Problems to be solved by the invention]
However, in the conventional automatic accompaniment apparatus, when various accompaniment patterns are required as in recent years, the capacity of a memory for storing accompaniment pattern data also increases. Further, there is a problem that a performance with rich musicality cannot be obtained because the accompaniment performance becomes monotonous only by performing a loop performance of a fixed accompaniment pattern stored in the memory.
An object of the present invention is to reduce the capacity of a memory for accompaniment pattern data and realize an accompaniment performance rich in music.
[0004]
[Means for Solving the Problems]
The present invention provides data creation means for creating accompaniment pattern data by combining a plurality of accompaniment sequence data having a predetermined time length according to control sequence data, and performance operation information identical to the performance operation information included in the control sequence data But , Within a specified period during the progress of the control sequence data When the input information discriminating means discriminates that the input information discriminating means for discriminating whether or not the performance operation information of the control sequence data and the inputted performance operation information coincide with each other, it is designated by the performance operation information. And data synthesizing means for synthesizing the accompaniment sequence data thus created with the accompaniment pattern data created by the data creating means.
According to the present invention, when an accompaniment pattern is automatically played, the accompaniment pattern is constructed by freely combining a plurality of accompaniment sequence data, and the performance operation is performed according to the specific performance operation of the performer. Is further combined with the accompaniment pattern constructed first.
[0005]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, first to third embodiments of an automatic accompaniment apparatus of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing a system of an automatic accompaniment apparatus common to each embodiment. A player (hereinafter referred to as “keyboard”) 1 including a keyboard or the like inputs performance operation information in accordance with an operation. The
[0006]
The
[0007]
In the RAM of the
[0008]
Next, the operation of each embodiment will be described with reference to the flowchart of the
[0009]
FIG. 3 is a flow of accompaniment control processing in step S5 of the main flow of FIG. In this process, it is determined whether or not there is an event in which any switch is turned on in the switch process (step S9). If there is no event, this flow is ended. If there is an event, it is determined whether or not the start switch is turned on (step S10). When this switch is turned on, accompaniment start processing is performed (step S11). Then, this flow ends.
[0010]
In step S10, if the start switch is not on, it is determined whether or not the stop switch is turned on (step S12). When this switch is turned on, accompaniment stop processing is performed (step S13). Then, this flow ends.
[0011]
If the stop switch is not turned on in step S12, it is determined whether or not the fill-in switch is turned on (step S14). When this switch is turned on, a fill-in process is performed (step S15). Then, this flow ends.
[0012]
If the fill-in switch is not turned on in step S14, it is determined whether or not the accompaniment number value switch (ACCOMP NUMBER VALUE SW) is turned on (step S16). When this switch is turned on, accompaniment number change processing is performed (step S17).
[0013]
If the accompaniment number switch is not turned on in step S16, the other switches turned on According Processing is performed (step S18). Then, this flow ends.
[0014]
FIG. 4 is a flow of accompaniment start processing in step S11 of FIG. In this process, the pointer P for designating one of the drum part, bass part, and chord part of the accompaniment part is set to “1” (step S19), and loop processing is performed while incrementing P. In the part designated by P, the pointer CT for designating one of the control tracks of the part is set to “1” (step S20). Then, accompaniment start processing is performed for each control sequence track of the part designated by P while incrementing CT.
[0015]
In the control sequence track designated by CT, first, a control track is assigned (step S21). Next, the start address of the control sequence data of the variation (in this case, variation 1), which is the accompaniment pattern set on the switch panel, is set in the assigned control track (step S22). Then, the step time to the next command to be executed and the command to be executed are read from the sequence data and set in advance in the control track (step S23). Next, the operation mode of the control sequence track is made alive (step S24).
[0016]
Thereafter, the pointer CT is incremented (step S25), and the next control sequence track is designated. Then, it is determined whether or not the designated control sequence track exceeds the maximum number of tracks of the part (step S26). When the number is less than the maximum number, the process proceeds to step S21, and the control sequence track designated by CT is assigned. Then, the processes in steps S21 to S26 are repeated while incrementing CT until the control sequence track reaches the maximum number of tracks of the part.
[0017]
In step S26, if the control sequence track exceeds the maximum number of tracks for that part, the pointer P is incremented (step S27), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S28). When the number is less than the maximum number, the process proceeds to step S20, and the processes from step S21 to step S26 are repeated from the first track (CT = 1) of the part. Each time the control sequence track reaches the maximum number of tracks of the part, P is incremented in step S27.
[0018]
If the specified part exceeds the maximum number of parts in step S28, the accompaniment mode is set to accompaniment start (ACCOMP START) (step S29). Then, this flow ends.
[0019]
FIG. 5 is a flow of accompaniment stop processing in step S13 of FIG. In this process, all notes (sounds) produced by accompaniment are turned off (step S30), all control sequence tracks are initialized, and the operation mode is set to dead, that is, non-operation (step S31). Also, all accompaniment sequence tracks are initialized and the operation mode is set to dead (step S32). Next, the accompaniment mode is set to accompaniment stop (ACCOMP STOP) (step S33). Then, this flow ends.
[0020]
FIG. 6 is a flow of the fill-in process in step S15 of FIG. In this process, all notes produced by accompaniment are turned off (step S34), all control sequence tracks are initialized, and the operation mode is set to dead (step S35). Also, all accompaniment sequence tracks are initialized and the operation mode is set to dead (step S36).
[0021]
Next, the pointer P for designating the accompaniment part is set to “1” (step S37). Further, the pointer CT of the designated part control sequence track is set to “1” (step S38). Then, the fill-in process of each control sequence track of the part designated by P is performed while incrementing CT.
[0022]
In the control sequence track designated by CT, first, a control sequence track is assigned (step S39). Next, the start address of the fill-in control sequence data set on the switch panel is set in the assigned control sequence track (step S40). Next, the operation mode of the control sequence track is made alive (step S41).
[0023]
Thereafter, the pointer CT is incremented (step S42), and the next control sequence track is designated. Then, it is determined whether or not the designated control sequence track exceeds the maximum number of tracks of the part (step S43). If the number is less than the maximum number, the process proceeds to step S39, and a control sequence track designated by CT is assigned. Then, the processes in steps S39 to S43 are repeated while incrementing CT until the control sequence track reaches the maximum number of tracks of the part.
[0024]
Step S43 When the control sequence track exceeds the maximum number of tracks of the part, the pointer P is incremented (step S44), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S45). When the number is less than the maximum number, the process proceeds to step S38, and the processes from step S39 to step S43 are repeated from the first track (CT = 1) of the part. Each time the control sequence track reaches the maximum number of tracks of the part, P is incremented in step S44.
[0025]
In step S45, if the designated part exceeds the maximum number of parts, the control sequence data and accompaniment sequence data are forcibly advanced to the time point at which the current performance should be performed (step S46). Then, the accompaniment mode is set to fill-in (ACCOMP FILLIN) (step S47). Then, this flow ends.
[0026]
FIG. 7 is a flow of the sequence timer interrupt process in step S8 of FIG. In this processing, control sequence track processing (step S48), accompaniment sequence track gate time processing (step S49), accompaniment sequence track processing (step S50), and note gate time processing (step S51) are executed.
[0027]
Next, the operation of the sequence timer interrupt process in FIG. 7 will be described for each embodiment with reference to FIGS.
First, the first embodiment will be described with reference to FIGS. FIG. 8 is a flow of processing of the control sequence track of the first embodiment in step S48 of FIG. In this process, the pointer P for designating the accompaniment part is set to “1” (step S52), and a loop process is performed while incrementing P. In the part designated by P, a pointer CT for designating one of the plurality of control sequence tracks of the part is set to “1” (step S53). Then, each control sequence track of the part designated by P is processed while incrementing CT.
[0028]
It is determined whether or not the mode of the control sequence track designated by CT is alive (step S54). If the mode is alive, the remaining step time until the next execution command in the control sequence track is “0”. Whether or not (step S55). If the remaining step time is not “0”, the step time is decremented (step S56).
[0029]
After the decrement in step S55, or if the control sequence track is not alive but dead in step S54, the pointer CT is incremented (step S57), and the next control track is designated. Then, it is determined whether or not the designated control track exceeds the maximum number of tracks of the part (step S58). If the number is less than the maximum number, the process proceeds to step S54 to determine the operation mode of the control sequence track designated by CT.
[0030]
When the operation mode of the control sequence track is alive and the remaining step time is “0” in step S55, the next execution command is determined (step S59). If the execution command is track-on, an accompaniment sequence track for playing accompaniment sequence data of the number in the control sequence data is generated (step S60). On the other hand, if the execution command is a jump, it jumps to a label in the control sequence data (step S61).
[0031]
After generating the accompaniment sequence track in step S60 or jumping in step S61, the next control sequence data is read and set in the control sequence track, and the step time until the next control sequence data is set to the control sequence track. (Step S62). Then, the process proceeds to step S55, and the remaining step time is determined.
[0032]
Then, the processes after step S54 are repeated while incrementing CT until the control sequence track reaches the maximum number of tracks of the part. In step S58, when the control sequence track exceeds the maximum number of tracks of the part, the pointer P is incremented (step S63), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S64). If the number is less than the maximum number, the process proceeds to step S53, and the above process is repeated for the first control sequence track of the newly designated part. Each time the control sequence track reaches the maximum number of tracks of the part, P is incremented in step S63. In step S64, if the designated part exceeds the maximum number of parts, this flow ends.
[0033]
FIG. 9 is a flowchart of the gate time processing of the accompaniment sequence track of the first embodiment in step S49 of FIG. In this process, the pointer P for designating the accompaniment part is set to “1” (step S65), and a loop process is performed while incrementing P. In the part designated by P, a pointer ST for designating any one of the plurality of accompaniment sequence tracks of the part is set to “1” (step S66). Then, each accompaniment sequence track of the part specified by P is processed while incrementing ST.
[0034]
It is determined whether or not the operation mode of the accompaniment sequence track specified in ST is alive (step S67). If it is alive, it is determined whether or not the remaining gate time in the accompaniment sequence track is “0”. (Step S68). If the remaining gate time is not “0”, the gate time is decremented (step S69).
[0035]
After decrementing the step time in step S69, or if the accompaniment sequence track is dead in step S67, ST is incremented (step S70), and the next accompaniment sequence track is designated. Then, it is determined whether or not the designated accompaniment sequence rack exceeds the maximum number of tracks of the part (step S71). If the number is less than the maximum number, the process proceeds to step S67 to determine the operation mode of the accompaniment sequence track specified in ST. Then, the process from step S67 to step S71 is repeated while incrementing ST until the accompaniment sequence track reaches the maximum number of tracks of the part.
[0036]
If the remaining gate time becomes "0" in step S68, all notes produced by this accompaniment sequence track are turned off (step S72). Also, the accompaniment sequence track is initialized to set the operation mode to dead (step S73). Then, the process proceeds to step S70, and ST is incremented.
[0037]
In step S71, if the accompaniment sequence track exceeds the maximum number of tracks of the part, the pointer P is incremented (step S74), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S75). When the number is less than the maximum number, the process proceeds to step S66, and the process from step S67 onward is executed for the first accompaniment sequence track of the newly designated part. Each time the accompaniment sequence track reaches the maximum number of tracks of the part, P is incremented in step S74. In step S75, when the designated part exceeds the maximum number of parts, this flow is ended.
[0038]
FIG. 10 is a processing flow of the accompaniment sequence track of the first embodiment in step S50 of FIG. In this process, the pointer P for designating the accompaniment part is set to “1” (step S76), and a loop process is performed while incrementing P. In the part designated by P, the pointer ST for designating the accompaniment sequence track of the part is set to “1” (step S77). And increment ST while doing , P, the accompaniment sequence track of the part specified by P is processed.
[0039]
It is determined whether or not the operation mode of the accompaniment sequence track designated by ST is alive (step S78). If the operation mode is alive, the remaining step time until the next execution command in the accompaniment sequence track is “0”. It is determined whether or not there is (step S79). If the remaining step time is not “0”, the step time of the accompaniment sequence track is decremented (step S80).
[0040]
After the decrement in step S80, or if the accompaniment sequence track is not alive but dead in step S78, the pointer ST is incremented (step S81), and the next accompaniment sequence track is designated. Then, it is determined whether or not the designated accompaniment sequence track exceeds the maximum number of tracks of the part (step S82). If the number is less than the maximum number, the process proceeds to step S78 to determine the operation mode of the accompaniment sequence track designated by ST. In step S78, when the operation mode of the accompaniment sequence track is alive, if the remaining step time up to the next execution command becomes “0” in step S79, the execution command is determined (step S83).
[0041]
If the execution command is track end, the accompaniment sequence track operation mode is set to dead (step S84). In step S81, ST is incremented to specify the next accompaniment sequence track.
[0042]
On the other hand, if the execution command is a note-on command with the note number n in step S83, the note with the note number n is set and turned on with the velocity and gate time in the accompaniment sequence data (step S85). The next accompaniment sequence data is read out and set in the accompaniment sequence track, and the step time up to the next accompaniment sequence data is set in the accompaniment sequence track (step S86). Thereafter, the process proceeds to step S79 to determine the remaining step time. In step S82, the processes in steps S78 to S82 are repeated while incrementing ST until the accompaniment sequence track reaches the maximum number of tracks of the part.
[0043]
In step S82, if the accompaniment sequence track exceeds the maximum number of tracks of the part, the pointer P is incremented (step S87), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S88). When the number is less than the maximum number, the process proceeds to step S77, and the processes after step S78 are repeated for the first accompaniment sequence track of the newly designated part. Each time the accompaniment sequence track reaches the maximum number of tracks of that part, P is incremented in step S87. In step S88, if the designated part exceeds the maximum number of parts, this flow ends.
[0044]
FIG. 11 is a diagram illustrating a control track process in the first embodiment when a drum part is taken as an example. FIG. 11 (1) shows accompaniment sequence data set on the drum control sequence track “00”. The first line of data indicates that
[0045]
The second line of the data in FIG. 11 (1) is to generate
[0046]
The third line of the data shown in FIG. 11 (1) shows the accompaniment sequence track number “after the step time“ 192 ”(that is, after one measure). 64 ”Is generated only during the gate time“ 192 (one measure) ”. Therefore, the remaining step time is “192” in step S55 of FIG. 8, and the step time is decremented in step S56. When the remaining step time becomes “0” after the 192 steps have elapsed, the execution command is track-on in step S59. Therefore, in step S60, the accompaniment sequence track for playing the accompaniment sequence data of accompaniment sequence track number “64” is selected. Generate.
[0047]
FIG. 11 (2) shows a state of generation of an accompaniment sequence track by control of the control sequence track based on FIG. 11 (1). That is, in the first bar,
[0048]
FIG. 12 is a diagram showing processing of three accompaniment sequence tracks of the drum part in the case of FIG. In this case, the accompaniment sequence track number “01” is a bus, the accompaniment sequence track number “25” is a snare, and the accompaniment sequence track number “64” is a hi-hat.
[0049]
The first line of the bus track indicates that note time “36” is turned on at a velocity of 96 and a gate time of 48 steps with a step time of “000”. Therefore, since the remaining step time is “0” in step S79 of FIG. 10 and the execution command is the note number on in step S83, the note (bus) with the note number “36” is immediately set to
[0050]
The second line indicates that the note number “36” is turned on at a velocity of 85 for a gate time of 48 steps with a step time “096”. Accordingly, the remaining step time is “96” in step S79 of FIG. 10, and the step time is decremented in step S80. When the remaining step time becomes “0” after the 96 step time has elapsed, the execution command is the note number on in step S83, so in step S85, the note (bus) with the note number “36” is changed to the velocity 85 and An accompaniment sequence track that is turned on only for the
[0051]
The third row indicates that the track end is reached at step time “096”. Therefore, in step S79 of FIG. 10, the remaining step time is “96”, and the step time is decremented in step S80. Then, when the 96 step time has elapsed and the remaining step time becomes “0”, the execution command is a track end in step S83, so in step S84, the operation mode of this accompaniment sequence track is set to dead.
[0052]
As a result, as shown in FIG. 12 (2), the bus of
[0053]
The first line of the snare track indicates that the note number “38” is turned on at the
[0054]
The second line indicates that the note number “38” is turned on at the
[0055]
The third line indicates that the track end is reached at the step time “192”. Therefore, in step S79 of FIG. 10, the remaining step time is “192”, and the step time is decremented in step S80. When the remaining step time becomes “0” after the 192 step time has elapsed, the execution command is the track end in step S83, and therefore the operation mode of this accompaniment sequence track is set to dead in step S84.
[0056]
As a result,
[0057]
The first line of the hi-hat track indicates that the note number “42” is turned on at a velocity of 80 for a gate time of 24 steps at a step time “000”. Therefore, since the remaining step time is “0” in step S79 of FIG. 10 and the execution command is the note number on in step S83, the note (hi-hat) of note number “42” is immediately moved to
[0058]
The second to eighth lines indicate that step times “024” to “168” and note number “42” is turned on at a velocity of 80 for a gate time of 24 steps. Therefore, in step S79 in FIG. 10, the remaining step times are “24” to “168”, and the step time is decremented in step S80. Then, when the remaining step time becomes “0” after the lapse of 24 to 168 step times, the execution command is the note number on in step S83. Therefore, in step S85, the note (hi-hat) of note number “42” is velocity-converted. An accompaniment sequence track is generated that is turned on for 80 and
[0059]
The ninth line indicates that the track end is reached at the step time “192”. Therefore, in step S79 of FIG. 10, the remaining step time is “192”, and the step time is decremented in step S80. When the remaining step time becomes “0” after the 192 step time has elapsed, the execution command is the track end in step S83, and therefore the operation mode of this accompaniment sequence track is set to dead in step S84.
[0060]
As a result,
[0061]
FIG. 13 shows that only the hi-hat accompaniment sequence track is changed from the accompaniment sequence track number “64” to the accompaniment sequence track number “70” in the processing of the three accompaniment sequence tracks of the drum part in the case of FIG.
[0062]
In FIG. 13 (1), the first line of the hi-hat track indicates that the note time “42” is turned on at the
[0063]
The 2nd to 16th lines indicate that the note times “42” are turned on at the
[0064]
The 17th line indicates that the track end is reached at the step time “192”. Therefore, in step S79 of FIG. 10, the remaining step time is “192”, and the step time is decremented in step S80. When the remaining step time becomes “0” after the 192 step time has elapsed, the execution command is the track end in step S83, and therefore the operation mode of this accompaniment sequence track is set to dead in step S84.
[0065]
As a result,
[0066]
In this way, in the
[0067]
FIG. 14 shows a modification of the processing of the control sequence shown in FIG. In this process, other accompaniment sequence data according to the input of the player's specific performance operation information is further added to the accompaniment pattern data composed of a combination of a plurality of accompaniment sequence data. Specifically, after waiting for specific performance operation information (for example, chord change information), if the target performance operation information occurs (input), the subtrack specified by the control sequence data is executed. The sub track will be described later.
[0068]
In FIG. 14, the pointer P for designating the accompaniment part is set to “1” (step S89), and loop processing is performed while incrementing P. In the part designated by P, the pointer CT for designating one of the control tracks of the part is set to “1” (step S90). Then, each control track of the part designated by P is processed while incrementing CT.
[0069]
It is determined whether or not the operation mode of the control sequence track designated by CT is alive (step S91). If it is alive, the remaining step time until the next execution command in the control sequence track is “0”. It is determined whether or not there is (step S92). If the remaining step time is not “0”, the step time is decremented (step S93).
[0070]
After the decrement in step S93, or if the control sequence track is not alive but dead in step S91, the pointer CT is incremented (step S94), and the next control track is designated. Then, it is determined whether or not the designated control track exceeds the maximum number of tracks of the part (step S95). If the number is less than the maximum number, the process proceeds to step S91 to determine the operation mode of the control sequence track designated by CT.
[0071]
When the control sequence track is alive and the remaining step time is “0” in step S92, the next execution command is determined (step S96). If the execution command is track-on, an accompaniment sequence track for playing the accompaniment sequence data of the number in the control sequence data is generated (step S97). In step S96, if the execution command is jump, jump to the label in the control sequence data (step S98). In step S96, the execution command waits for further consideration of other accompaniment sequence data in accordance with the player's input of specific performance operation information ( WAITn ; Where n is the number of the subtrack), the specific performance operation information that is the target of the wait has occurred this time Then Then, the subtrack of number n designated by the control sequence data is executed (step S99).
[0072]
After generating an accompaniment sequence track in step S97, after jumping in step S98, or after executing a subtrack in step S99, or when no waiting object has occurred, read the next control sequence data, In addition to being set in the control sequence track, the step time until the next control sequence data is set in the control sequence track (step S100). Then, the process proceeds to step S92 to determine the remaining step time.
[0073]
Then, the processes after step S92 are repeated while incrementing CT until the control sequence track reaches the maximum number of tracks of the part. In step S95, when the control sequence track exceeds the maximum number of tracks of the part, the pointer P is incremented (step S101), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S102). If less than the maximum number, step S90 The above process is repeated for the first control sequence track of the newly designated part. Each time the control sequence track reaches the maximum number of tracks of the part, P is incremented in step S101. In step S102, when the designated part exceeds the maximum number of parts, this flow ends.
[0074]
FIG. 15 is a diagram showing a control track process for executing a subtrack when the drum part of FIG. 11 is taken as an example. The control sequence track (Drum CTRL00) in FIG. 15 is the same as the control track in FIG. Therefore, as shown in FIG. 15 (2), under the control of the
[0075]
On the other hand, in the control sequence track (Drum CTRL01) of FIG. 15 (1), the first line indicates that the wait command (WAIT1) is executed at the step time “000”. This execution command is a command for executing a subtrack when the performance operation information input from the keyboard matches the performance operation information (Match 00) set in the control sequence data. The fourth line of the sub-track indicates that
[0076]
Therefore, as shown in FIG. 15 (2), when performance operation information matching the set performance operation information (Match 00) is input, the accompaniment sequence data of accompaniment sequence track number “72” is played immediately. Generate an accompaniment sequence track. In this case, for example, chord change information can be considered as performance operation information for executing the subtrack. In this case, the subtrack is executed at the same time as the performer changes the chord.
[0077]
As described above, according to the first embodiment, the
[0078]
When an accompaniment pattern is automatically played, an accompaniment pattern is constructed by freely combining a plurality of accompaniment sequence data, and the accompaniment pattern is specified by the performance operation according to the player's specific performance operation. The additional accompaniment sequence data is further synthesized into the accompaniment pattern constructed first. Accordingly, it is possible to reduce the capacity of the memory for accompaniment pattern data and realize an accompaniment performance rich in music.
[0079]
Next, a second embodiment will be described with reference to FIGS. In the second embodiment, when the performance operation information to be waited is input, the subtrack is not immediately executed, but the subtrack is executed when the operation mode is wait.
[0080]
FIG. 16 is a flowchart of the control track process of the second embodiment in step S48 of FIG. In this process, the pointer P for designating the accompaniment part is set to “1” (step S103), and a loop process is performed while incrementing P. In the part designated by P, the pointer CT for designating one of the control tracks of the part is set to “1” (step S104). Then, each control track of the part designated by P is processed while incrementing CT.
[0081]
It is determined whether or not the operation mode of the control sequence track designated by CT is alive (step S105). If it is alive, the remaining step time until the next execution command in the control sequence track is “0”. It is determined whether or not there is (step S106). If the remaining step time is not “0”, it is determined whether or not the operation mode is a wait (step S107). If the operation mode is not wait, the step time of the control sequence track is decremented (step S108).
[0082]
After the decrement in step S108 or when the operation mode of the control sequence track is not alive but dead in step S105, the pointer CT is incremented (step S109), and the next control track is designated. Then, it is determined whether or not the designated control track exceeds the maximum number of tracks of the part (step S110). If it is equal to or less than the maximum number, the process proceeds to step S105 to determine the operation mode of the control sequence track designated by CT.
[0083]
When the operation mode of the control sequence track is alive and the remaining step time is “0” in step S106, the operation mode is made alive (step S111). Then, the next execution command is determined (step S112). If the execution command is track-on, an accompaniment sequence track for playing the accompaniment sequence data of the number in the control sequence data is generated (step S113). Step S112 If the execution command is jump, the process jumps to the label in the control sequence data (step S114). If the execution command is wait in step S112, the operation mode is set to wait (step S115).
[0084]
After generating the accompaniment sequence track in step S113, after jumping in step S114, or after setting the operation mode to wait in step S115, the next control sequence data is read and set to the control sequence track, and the next The step time up to the control sequence data is set in the control sequence track (step S116). Then, the process proceeds to step S106, and the remaining step time is determined.
[0085]
If the remaining step time is not “0” in step S106 and the operation mode is “wait” in step S107, it is determined whether or not the input performance operation information matches the information to be waited (step S117). ). If they match, the waiting target has occurred this time, so the subtrack specified by the control sequence data is executed (step S118). After executing the sub-track or when the input performance operation information does not match the information to be waited, the process proceeds to step S108, and the step time of the control sequence track is decremented. In step S109, CT is incremented.
[0086]
As a result of the increment, if the control track exceeds the maximum number of tracks of the part in step S110, the pointer P is incremented (step S119), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S120). When the number is less than the maximum number, the process proceeds to step S104, and the processes after step S105 are executed for the first control sequence track of the newly designated part. Each time the control sequence track reaches the maximum number of tracks of the part, P is incremented in step S119. In step S120, if the designated part exceeds the maximum number of parts, this flow ends.
[0087]
FIG. 17 is a diagram illustrating a control track process for executing a subtrack when a drum part is taken as an example. FIG. The control sequence track (Drum CTRL00) is the same as the control track in FIG. 11 of the first embodiment. Therefore, as shown in FIG. 17 (2), under the control of the
[0088]
On the other hand, in the control sequence track (Drum CTRL01) of FIG. 17 (1), the wait command (WAIT1) is executed at the step time “000”. This execution command is a command for executing a subtrack when the performance operation information input from the keyboard matches the performance operation information (Match 00) set in the control sequence data. Further, it is shown that a
[0089]
Accordingly, as shown in FIG. 17 (2), if performance operation information that matches the set performance operation information (Match 00) is input only when the
[0090]
As described above, according to the second embodiment, the
[0091]
Next, a third embodiment will be described with reference to FIG. Also in the third embodiment, as in the second embodiment, when the performance operation information to be waited is input, the subtrack is not immediately executed, but the subtrack is executed when the operation mode is wait. . Further, if the sub-track execution command is a one-shot execution command, the sub-track is executed “only once”.
[0092]
FIG. 18 is a flowchart of processing of the control sequence track of the third embodiment in step S48 of FIG. In this process, the pointer P for designating the accompaniment part is set to “1” (step S121), and a loop process is performed while incrementing P. In the part designated by P, a pointer CT for designating one of the plurality of control tracks of the part is set to “1” (step S122). Then, each control track of the part designated by P is processed while incrementing CT.
[0093]
It is determined whether or not the operation mode of the control sequence track designated by CT is alive (step S123). If it is alive, the remaining step time until the next execution command in the control sequence track is “0”. It is determined whether or not there is (step S124). If the remaining step time is not “0”, it is determined whether or not the operation mode is a wait (step S125). If the operation mode is not wait, the step time of the control sequence track is decremented (step S126).
[0094]
After the decrement in step S126, or when the operation mode of the control sequence track is not alive but dead in step S123, the pointer CT is incremented (step S127), and the next control track is designated. Then, it is determined whether or not the designated control track exceeds the maximum number of tracks of the part (step S128). If the number is less than the maximum number, the process proceeds to step S123, and the operation mode of the control sequence track designated by CT is determined.
[0095]
When the operation mode of the control sequence track is alive and the remaining step time is “0” in step S124, the operation mode is made alive (step S129). Then, the next execution command is determined (step S130). If the execution command is track-on, an accompaniment sequence track for playing the accompaniment sequence data of the number in the control sequence data is generated (step S131). In step S130, if the execution command is jump, jump to the label in the control sequence data (step S132). If the execution command is a wait in step S130, the operation mode is set to a wait (step S133).
[0096]
After generating the accompaniment sequence track in step S131, jumping in step S132, or after setting the operation mode to wait in step S133, the next control sequence data is read and set to the control sequence track. The step time up to the control sequence data is set in the control sequence track (step S134). Then, the process proceeds to step S124, and the remaining step time is determined.
[0097]
If the remaining step time is not “0” in step S124 and the operation mode is “wait” in step S125, it is determined whether or not the input performance operation information matches the information to be waited (step S135). ). If they match, the waiting target has occurred this time, so the subtrack specified by the control sequence data is executed (step S136). After executing the subtrack, it is determined whether or not the execution command is a one-shot wait (step S137). If it is a one-shot wait, the operation mode is set to alive (step S138). After alive, or when the performance operation information input in step S135 does not match the information to be waited, or when the execution command is not one-shot wait in step S137, the process proceeds to step S126. Decrement the step time of the control sequence track. In step S127, CT is incremented.
[0098]
As a result of the increment, if the control sequence track exceeds the maximum number of tracks of the part in step S128, the pointer P is incremented (step S139), and the next part is designated. And it is discriminate | determined whether the designated part exceeded the maximum number (step S140). When the number is less than the maximum number, the process proceeds to step S122, and the processes after step S123 are executed from the first control sequence track of the newly designated part. Each time the control sequence track reaches the maximum number of tracks of that part, P is incremented in step S139. In step S140, if the designated part exceeds the maximum number of parts, this flow ends.
[0099]
As described above, according to the third embodiment, the
[0100]
In the third embodiment, the performance operation information is received only once within a predetermined range. However, by setting an arbitrary number of times, it is possible to execute the sub-track for the set number of times. .
[0101]
Further, in each of the above embodiments, in the sequence timer interrupt process of FIG. 7, the process is performed for all parts and all control sequence tracks. However, the numbers of control sequence tracks to be processed are stored in a register or the like. Thus, the processing may be performed only for the control sequence track to be processed. In this case, since the control sequence track that is not the processing target is not specified, the processing time can be shortened as compared with the case where the processing is specified for all the parts and all the control sequence tracks.
[0102]
【The invention's effect】
According to the present invention, when an accompaniment pattern is automatically played, the accompaniment pattern is constructed by freely combining a plurality of accompaniment sequence data, and the performance operation is performed according to the specific performance operation of the performer. Is further combined with the accompaniment pattern constructed first. Accordingly, it is possible to reduce the capacity of the memory for accompaniment pattern data and realize an accompaniment performance rich in music.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a system of an automatic accompaniment apparatus in each embodiment.
FIG. 2 is a flowchart of main and timer interrupts executed by a CPU.
FIG. 3 is a flowchart of accompaniment control processing in FIG. 2;
4 is a flowchart of accompaniment start processing in FIG. 3;
FIG. 5 is a flowchart of accompaniment stop processing in FIG. 3;
6 is a flowchart of fill-in processing in FIG. 3;
7 is a flowchart of sequence timer interrupt processing in FIG. 2;
8 is a flowchart of control sequence track processing of FIG. 7 in the first embodiment.
9 is a flowchart of gate time processing of the accompaniment sequence track of FIG. 7 in the first embodiment.
10 is a flowchart of the accompaniment sequence track processing of FIG. 7 in the first embodiment.
FIG. 11 is a diagram showing processing of a control sequence track in the first embodiment when a drum part is taken as an example.
12 is a diagram showing processing of the accompaniment sequence track in FIG. 11. FIG.
13 is a diagram showing processing of an accompaniment sequence track in FIG. 11. FIG.
14 is a flowchart of control sequence track processing of FIG. 7 in the first embodiment.
FIG. 15 is a diagram showing processing of a control sequence track in the first embodiment when a drum part is taken as an example.
16 is a flowchart of control sequence track processing of FIG. 7 in the second embodiment.
FIG. 17 is a diagram showing processing of a control sequence track in the second embodiment when a drum part is taken as an example.
18 is a flowchart of control sequence track processing of FIG. 7 in the third embodiment.
[Explanation of symbols]
1 keyboard
2 Switch panel
3 CPU
4 Display circuit
5 Accompaniment pattern memory
6 sound sources
Claims (2)
前記制御シーケンスデータに含まれている演奏操作情報と同一の演奏操作情報が、前記制御シーケンスデータの進行中における指定された期間内において入力されたか否かを判別する入力情報判別手段と、
前記制御シーケンスデータの演奏操作情報と入力された演奏操作情報とが一致したことを前記入力情報判別手段が判別したときは、当該演奏操作情報によって指定されている伴奏シーケンスデータを前記データ作成手段によって作成された伴奏パターンデータに合成させるデータ合成手段と、
を有することを特徴とする自動伴奏装置。Data creating means for creating accompaniment pattern data by combining a plurality of accompaniment sequence data having a predetermined time length according to the control sequence data;
Input information determination means for determining whether or not the same performance operation information as the performance operation information included in the control sequence data is input within a specified period during the progress of the control sequence data ;
When the input information determination means determines that the performance operation information of the control sequence data matches the input performance operation information, the accompaniment sequence data specified by the performance operation information is output by the data creation means. Data synthesizing means for synthesizing the generated accompaniment pattern data;
An automatic accompaniment apparatus characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08059098A JP3744190B2 (en) | 1998-03-13 | 1998-03-13 | Automatic accompaniment device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08059098A JP3744190B2 (en) | 1998-03-13 | 1998-03-13 | Automatic accompaniment device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11259074A JPH11259074A (en) | 1999-09-24 |
JP3744190B2 true JP3744190B2 (en) | 2006-02-08 |
Family
ID=13722564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08059098A Expired - Fee Related JP3744190B2 (en) | 1998-03-13 | 1998-03-13 | Automatic accompaniment device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3744190B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4211709B2 (en) | 2004-08-04 | 2009-01-21 | ヤマハ株式会社 | Automatic performance device and computer program applied to the same |
JP5228315B2 (en) * | 2006-11-30 | 2013-07-03 | ヤマハ株式会社 | Program for realizing automatic accompaniment generation apparatus and automatic accompaniment generation method |
JP6414164B2 (en) | 2016-09-05 | 2018-10-31 | カシオ計算機株式会社 | Automatic performance device, automatic performance method, program, and electronic musical instrument |
-
1998
- 1998-03-13 JP JP08059098A patent/JP3744190B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11259074A (en) | 1999-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5386081A (en) | Automatic performance device capable of successive performance of plural music pieces | |
CN106128437B (en) | Electronic musical instrument | |
JP2616274B2 (en) | Automatic performance device | |
US4685370A (en) | Automatic rhythm playing apparatus having plurality of rhythm patterns for a rhythm sound | |
JP3922224B2 (en) | Automatic performance device and program | |
JP2500528B2 (en) | Electronic musical instrument | |
JP3744190B2 (en) | Automatic accompaniment device | |
JP3286683B2 (en) | Melody synthesis device and melody synthesis method | |
JPH0876758A (en) | Automatic accompaniment device | |
JP2631722B2 (en) | Automatic performance device | |
JP2636640B2 (en) | Automatic accompaniment device | |
JP3844286B2 (en) | Automatic accompaniment device for electronic musical instruments | |
JP3252181B2 (en) | Electronic musical instrument | |
JP2958487B2 (en) | An electronic musical instrument with a click status notification function | |
JP3555255B2 (en) | Automatic accompaniment device | |
US5955692A (en) | Performance supporting apparatus, method of supporting performance, and recording medium storing performance supporting program | |
JP4214845B2 (en) | Automatic arpeggio device and computer program applied to the device | |
JP3663873B2 (en) | Sound channel controller | |
JP4241833B2 (en) | Automatic performance device and program | |
JP2768348B2 (en) | Automatic performance device | |
JP2513308B2 (en) | Electronic musical instrument | |
JP2624104B2 (en) | Performance progress control device of automatic performance device | |
JP3883270B2 (en) | Automatic performance device | |
JP3399629B2 (en) | Electronic musical instrument characteristic change processing device | |
JPH11296169A (en) | Automatic player |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050714 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050831 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051101 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051114 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091202 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101202 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121202 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131202 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |