(57)【特許請求の範囲】
【請求項１】
複数のトラックを有し、各トラック毎に演奏情報が記憶された演奏情報記憶手段と、
この演奏情報記憶手段から前記演奏情報を読み出す際のトラックの順序を設定する設定手段と、
この設定手段により設定された順序に従って前記各トラックから演奏情報を時分割で読み出す読出手段と、
を有することを特徴とする自動演奏装置。
【請求項２】
複数のトラックを有し、各トラック毎に演奏情報が記憶された演奏情報記憶手段と、
この演奏情報記憶手段から前記演奏情報を読み出す際のトラックの順序を設定及び設定変更する設定変更手段と、
この設定変更手段により設定変更されるトラックの順序を更新しつつ記憶する順序記憶手段と、
この順序記憶手段に記憶されている順序に従って前記各トラックから演奏情報を時分割で読み出す読出手段と、
を有することを特徴とする自動演奏装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、複数のトラックに記憶された演奏情報に基づいて自動演奏を行う自動演奏装置に関する。
【０００２】
【従来の技術】
従来の自動演奏装置において、複数の発音チャンネル毎に楽音を生成するポリフォニックに対応するものにあっては、演奏情報が複数の各トラック毎、例えば４つのトラック毎に記憶されている。各トラックに記憶されている演奏情報は、音色や音高等を示すイベントデータと、そのイベントデータの発音タイミングを示す時刻データ（相対時刻データ）とで構成されている。そして、自動演奏を開始すると、トラック１からトラック４の演奏情報が時分割で読み出されて発音指示され、この発音指示に従って対応するチャンネルで発音処理を行うことにより、自動演奏が進行することとなる。
【０００３】
【発明が解決しようとする課題】
しかしながら、このように常に同一の順序に従って各トラック１〜４から演奏情報を読み出して発音処理を行うと、例えばトラック１とトラック４とに同時刻に処理されるべきイベントが記憶されていると、トラック４に記憶されているイベントに基づく発音指示は、トラック１に記憶されているイベントデータに基づく発音指示よりも遅れてしまうこととなる。すなわち、ＭＩＤＩなどのシリアルインターフェイスを介して演奏を行う場合、その送信レートから１音のイベント当たり１ミリ秒が必要であり、よって、トラック１で１音のイベント処理のみを行った場合であっても、トラック４のイベント処理は数ミリの遅れとなってしまう。また、１つのトラックに和音データが記憶されている場合のように、同時発生させるべき複数のイベントが存在する場合には、次のトラックのイベント処理であっても、無視できない程遅れてしまう。
【０００４】
一方、楽音にはその特性に応じた聴感上の優先順位があり、例えばドラムのようなパーカッシブな音色は、アタックの遅いストリングスのような音色より先に発音させなければ、発音タイミングの遅れが明瞭となり、逆に、アタックの遅いストリングスのような音色は発音タイミングが遅れてもそれが聴感上不明瞭となる。しかるに、従来の自動演奏装置にあっては、前述のように常に同一の順序に従って各トラックのイベント処理を実行することから、この聴感上の優先順位に従って発音させることができず、よって、同時発音すべきイベントの発音遅れが明瞭となってしまう場合があった。
【０００５】
本発明は、このような従来の課題に鑑みてなされたものであり、同時発音すべきイベントの発音遅れを聴感上不明瞭にして自動演奏を進行させることができる自動演奏装置を提供することを目的とするものである。
【０００６】
【課題を解決するための手段】
前記課題を解決するために本発明にあっては、複数のトラックを有し、各トラック毎に演奏情報が記憶された演奏情報記憶手段と、この演奏情報記憶手段から前記演奏情報を読み出す際のトラックの順序を設定する設定手段と、この設定手段により設定された順序に従って各トラックから演奏情報を時分割で読み出す読出手段とを有している。また、本発明の他の構成にあっては、複数のトラックを有し、各トラック毎に演奏情報が記憶された演奏情報記憶手段と、この演奏情報記憶手段から前記演奏情報を読み出す際のトラックの順序を設定及び設定変更する設定変更手段と、この設定変更手段により設定変更されるトラックの順序を更新しつつ記憶する順序記憶手段と、この順序記憶手段に記憶されている順序に従って各トラックから演奏情報を時分割で読み出す読出手段とを有している。
【０００７】
【作用】
前記構成において、設定手段によりトラックの順序を設定すると、読出手段はこの設定された順序で、各トラックから演奏情報を読み出す。したがって、例えばあるトラックにドラムのようなパーカッシブな音の演奏情報が記憶され、他のトラックにこれと同時発音タイミングであって、ストリングスのようなアタックの遅い音が入力される場合、前者のトラックが先となる順序を設定手段により設定すれば、ドラム音がストリングス音よりも先行して読み出される。これにより、ストリングス音の発音遅れが不明瞭となる状態で自動演奏が進行する。
【０００８】
また、前記本発明の他の構成にあっては、トラックの順序が設定変更される都度、順序記憶手段はこの設定変更されたトラックの順序を更新しつつ記憶し、読出手段はこの順序記憶手段に記憶されている順序、つまり最新に記憶された順序に従って各トラックからの演奏情報を読み出す。したがって、この構成においては、自動演奏の実行中であっても、トラックの順序を設定変更すれば、その時点から、当該設定変更された順序に従って各トラックからの演奏情報が読み出されこととなる。
【０００９】
【実施例】
以下、本発明の一実施例を図にしたがって説明する。図１に示すように、本実施例にかかる自動演奏装置１０の装置本体１１には、ＬＣＤディスプレイ１２が設けられているとともに、テンキー等で構成されるキー群１３が設けられている。さらに、装置本体１１には、Ｐａｕｓｅ ＳＷ１４、Ｒｅｓｅｔ ＳＷ１５、Ｂｗｄ ＳＷ１６、Ｆｗｄ ＳＷ１７、ＲＥＣ ＳＷ１８、ＳＴＯＰ ＳＷ１９、ＰＬＡＹ ＳＷ２０が設けられているとともに、オーダートラックＳＷ２１、トラックＮＯ．１〜４に対応する４個のイベントトラックＳＷ２２−１〜２２−４、及びデータエントリダイヤル２３が設けられている。
【００１０】
こられキー及びＳＷ等１３〜２３の操作情報は、図２のブロック構成図において、パネルスイッチ２４を介してＣＰＵ２５に取り込まれる。ＲＡＭ２６は、ワーク用であり一部の領域には、図３（Ａ）に示すように、アドレス０〜３に対応させてトラックＮＯ．を記憶するオーダートラックが設けられている。また、ＲＯＭ２７には、この自動演奏装置１０の機能をＣＰＵ２５の動作により実現するに必要なプログラム等が記憶されている。
【００１１】
ＣＰＵ２５は、このプログラムに従って動作し、前記ＬＣＤディスプレイ１２の表示状態、ＦＤＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ  Ｄｒｉｖｅｒ）２８の動作及びＭＩＤＩインターフェース２９の入出力を制御する。このＭＩＤＩインターフェース２９は、図外の音源に接続されており、また、ＦＤＤ２８内のフロッピーディスクには、図４に示すように、トラック１〜４に各々演奏情報が記憶されている。この演奏情報は、音色や音高を示すイベントデータと、その発音タイミングを示す時刻（相対時刻）データとで構成されており、イベントデータと時刻データとは順次異なるアドレスに対応して格納されているとともに、各イベントデータの次のアドレスに対応する時刻データが格納されている。
【００１２】
次に、以上の構成にかかる本実施例の動作をフローチャートに従って説明する。すなわち、電源を投入するとＣＰＵ２５は、図５に示すメインルーチンに従って動作し、イニシャライズ処理（ＳＡ１）を実行して、各種レジスタに初期値をプリセットする。また、電源が投入されている間、ＰＬＡＹ ＳＷ２０及びＲＥＣ ＳＷ１８の状態を常時監視し（ＳＡ２，ＳＡ４）、ＰＬＡＹ ＳＷ２０がオンとなったならばＰＬＡＹ処理を（ＳＡ３）、ＲＥＣ ＳＷ１８がオンとなったならばＲＥＣ処理を（ＳＡ５）、各々実行する。
【００１３】
また、メインルーチンに対して、ＣＰＵ２５は図６に示すインタラプトルーチン（１）と、図７に示すインタラプトルーチン（２）とを割り込んで実行する。すなわち、インタラプトルーチン（１）においては、時刻カウンタをインクリメントし、よって、時刻カウンタはこのインタラプトルーチン（１）のタイミングで歩進している。
【００１４】
また、インタラプトルーチン（２）においては、オーダートラックＳＷ２１がオンとなった否かを判別して（ＳＣ１）、オンとなっていないならば、ＳＣ４に進んでＯＮＦフラグがセットされているか否かを判別する。このＯＮＦフラグは、メインルーチン（図５）におけるＳＡ１のイニシャライズ処理によりリセットされ、また、オーダートラックＳＷ２１がＯＮとなった場合に、このフローのＳＣ２でセットされることから、オーダートラックＳＷ２１がオンとなるまでは、リセット状態にある。したがって、オーダートラックＳＷ２１がオンとなるまでは、ＳＣ１→ＳＣ４→ＲＥＴＵＲＮを繰り返す。
【００１５】
そして、オーダートラックＳＷ２１をワンタッチ操作すると、該オーダートラックＳＷ２１がオンとなる。したがって、ＳＣ１からＳＣ２に進んで、ＯＮＦフラグをセットした後、ｎに初期値“１”をセットする（ＳＣ３）。次に、ＯＮＦフラグがセット状態にあるか否かを判別するが（ＳＣ４）、このときＯＮＦフラグは既にセット状態にあることから、ＳＣ４からＳＣ５に進み、いずれかのイベントトラックＳＷ２２−１〜２２−４が操作されたか否かを判別する。そして、いずれかのイベントトラックＳＷ２２−１〜２２−４が操作されたならば、レジスタｎに操作されたイベントトラックＳＷ２２−１〜２２−４に対応するトラックＮＯ．を記憶させる（ＳＣ６）。引き続き、レジスタｎをインクリメントして（ＳＣ７）、このインクリメントしたｎが“５”となったか否かを判別して、ｎ≠５であるならばメインルーチンにリターンする。
【００１６】
そして、次のタイマインタラプトのタイミングになると、ＳＣ１から処理が行われることになるが、ワンタッチ操作したユーザーは指がオーダートラックＳＷ２１から離れており、オーダートラックＳＷ２１はオフとなっていることから、ＳＣ１からＳＣ４に進む。このとき、ＯＮＦフラグはセット状態にあることから、残るイベントトラックＳＷ２２−１〜２２−４のいずれかを操作すると、ＳＣ４→ＳＣ５→ＳＣ６→ＳＣ７と進み、操作されたイベントトラックＳＷ２２−１〜２２−４に対応するトラックＮＯ．をレジスタｎに記憶させた後、ｎをインクリメントする。
【００１７】
したがって、ｎ＝５となるまでにＳＣ６の処理が４回繰り返されることとなり、このときイベントトラックＳＷ２２−１〜２２−４を、例えば３、１、４、２の順序で操作したとすると、レジスタｎに対応して下記のようにトラックＮＯ．が記憶されることとなる。
【００１８】
レジスタ１：トラックＮＯ．３
レジスタ２：トラックＮＯ．１
レジスタ３：トラックＮＯ．４
レジスタ４：トラックＮＯ．２
そして、このように各レジスタ１〜４にトラックＮＯ．が記憶されることによりｎ＝５となると、ＳＣ８からＳＣ９に進んでＯＮＦフラグをリセットした後、トラックからの読み出し順序が変更されたことを示すべく、順序変更Ｆ（フラグ）をセットする（ＳＣ１０）。
【００１９】
他方、メインルーチンにおけるＰＬＡＹ処理（ＳＡ３）は、図８に示すフローに従って行われ、イニシャライズ処理（ＳＤ１）を実行後、順序変更Ｆがセットされているか否かを判別する（ＳＤ２）。このとき、前述したトラックの順序変更がなされていると、前述のＳＣ１０で順序変更Ｆはセットされており、よって、ＳＤ２からＳＤ３に進んで、オーダートラック内の内容をレジスタ１〜４に基づいて変更する。したがって、上記例のようにレジスタ１〜４に各トラックＮＯ．が記憶されているとすると、このＳＤ３の処理により、図３に示した０〜３のアドレスに対応する記憶領域を有するオーダートラックの内容は、下記のように変更される。
0003543160.tif 000002
引き続き、順序変更Ｆをリセットするとともに（ＳＤ４）、順序カウンタに初期値“０”をセットし（ＳＤ５）、さらに、順序カウンタの内容をアドレスにして、オーダートラックの内容を呼び出す（ＳＤ６）。したがって、このＳＤ６の処理により、本例の場合先ずアドレス０に記憶されているトラックＮＯ．３が呼び出されることとなる。次に、この呼び出したオーダートラックの内容が示すトラックＮＯ．のトラック処理を行った後（ＳＤ７）、順序カウンタをインクリメトし（ＳＤ８）、順序カウンタ＝トラック数（＝４）となるまで（ＳＤ９）、ＳＤ６〜ＳＤ９のループを繰り返す。
【００２０】
したがって、このループは４回繰り返されることとなり、上記例の場合トラックＮＯ．３→１→４→２の順序でトラック処理（ＳＤ７）が時分割で実行される。また、順序カウンタ＝トラック数（＝４）となったならば、ＳＴＯＰ ＳＷがオンとなったか（ＳＤ１０）、及び当該自動演奏曲が曲終了となったか（ＳＤ１１）を判別し、ユーザーの操作によりＳＴＯＰ ＳＷがオンとなるか、若しくは曲終了となるまでＳＤ２からの処理を繰り返す。これにより、トラックＮＯ．３→１→４→２の順序でトラック処理（ＳＤ７）繰り返されつつ自動演奏が進行し、ＳＴＯＰ ＳＷがオンとなるか、若しくは曲終了した時点で、メインルーチンにリターンする。
【００２１】
また、このＰＬＡＹ処理におけるトラック処理（ＳＤ７）は、図９に示すフローに従って行われ、当該トラックの時刻データを読み出した後（ＳＥ１）、図６のタイマインタラプトルーチン（１）でインクリメトされている時刻カウンタの値が、この読み出した時刻データの値に到達したか否かを判別する（ＳＥ２）。そして、時刻カウンタ＝時刻データとなって、この時刻データに対応するイベントデータの発音タイミングとなったならば、当該時刻データの前のアドレスのイベントデータ及び時刻データを呼び出す（ＳＥ３）。
【００２２】
すなわち、図４をもって前述したように、演奏情報は、イベントデータと、その発音タイミングを示す時刻データとで構成され、イベントデータと時刻データとは順次異なるアドレスに対応して格納されているとともに、各イベントデータの次のアドレスに対応する時刻データが格納されている。したがって、時刻カウンタ＝時刻データとなった時点で発音処理すべきイベントデータはその前のアドレスに格納されており、よって、前のアドレスのイベントデータを呼び出す。また、次回にＳＥ２の判別を行う際に用いられる時刻データである次の時刻データを、このＳＥ３で呼び出しておく。
【００２３】
そして、このＳＥ３に続くＳＥ４では、ＳＥ３で呼び出したイベントデータをＭＩＤＩインターフェース２９を介して図外の音源に供給するイベント処理を実行する。このとき、このトラック処理が、本例の場合トラックＮＯ．３→１→４→２の順序で実行されることから、同一時刻に発音処理すべきイベントデータがトラックＮＯ．１とＮＯ．３とに格納されていたとすると、トラックＮＯ．３のイベントがトラックＮＯ．１のイベントに先行して発音処理されることとなる。したがって、トラックＮＯ．３にドラムのようなパーカッシブな音色のイベントデータが格納され、トラックＮＯ．１にアタックの遅いストリングスのような音色のイベントデータが格納されている場合には、例示した順序を設定することにより、発音タイミングの遅れが聴感上明瞭となることなく、ストリングスの楽音を発生させることができる。しかも、前記タイマインタラプトルーチン（２）は一定時間間隔で実行されていることから、自動演奏の実行中であっても、オーダートラックＳＷ２１及びイベントトラックＳＷ２２−１〜２２−４の操作を行えば、レジスタ１〜４のトラックＮＯ．及びオーダートラックの内容が書き換えられる。よって、自動演奏中であっても、随時トラックの順序を変更することができる。
【００２４】
【発明の効果】
以上説明したように本発明は、演奏情報を読み出すトラックの順序を設定して、この設定した順序に従って各トラックから時分割で演奏情報を読み出すようにした。よって、ドラムのようなパーカッシブな音の演奏情報を、ストリングスのようなアタックの遅い音の演奏情報よりも先に読み出させることが可能となり、これにより、発音遅れを不明瞭にしつつ自動演奏を進行させることができる。
【００２５】
また、本発明は、設定及び設定変更されるトラックの順序を更新しつつ記憶し、この記憶した順序に従って各トラックから演奏を読み出すようにした。よって、自動演奏の実行中であっても、トラックの順序を変更することができ、曲の進行に伴って処理される各トラック内のイベントに対応して、好適なトラック順序の設定が可能となる。
【図面の簡単な説明】
【図１】本発明の一実施例かかる自動演奏装置の外観平面図である。
【図２】同自動演奏装置のブロック構成図である。
【図３】オーダートラックの構成を示す図である。
【図４】演奏情報の記憶状態を示す図である。
【図５】メインルーチンを示すフローチャートである。
【図６】タイマインタラプトルーチン（１）を示すフローチャートである。
【図７】タイマインタラプトルーチン（２）を示すフローチャートである。
【図８】ＰＬＡＹ処理の内容を示すフローチャートである。
【図９】トラック処理の内容を示すフローチャートである。
【符号の説明】
１０    自動演奏装置
２１    オーダートラックＳＷ
２２    イベントトラックＳＷ
２５    ＣＰＵ
２６    ＲＡＭ
２７    ＲＯＭ
２８    ＦＤＤ
【図１】
0003543160.tif 000003
【図２】
0003543160.tif 000004
【図３】
0003543160.tif 000005
【図４】
0003543160.tif 000006
【図５】
0003543160.tif 000007
【図６】
0003543160.tif 000008
【図７】
0003543160.tif 000009
【図８】
0003543160.tif 000010
【図９】
0003543160.tif 000011