(57)【特許請求の範囲】
【請求項１】
曲データを読み出して自動演奏する自動演奏手段と、
曲データがロードされた際に、テキストメタイベントデータとして前記曲データ中に埋め込まれている特定の演奏位置を示すソングポジションマーカーを前記曲データ中から検出する検出手段と、
前記自動演奏手段が前記曲データを自動演奏している際に、前記検出手段において検出されたいずれかの前記ソングポジションマーカーが指定された時は、指定された当該ソングポジションマーカーにおける前記演奏位置にジャンプして、前記自動演奏手段により自動演奏されることを特徴とする自動演奏装置。
【請求項２】
前記ソングポジションマーカーを複数のスイッチ手段のいずれかに割り当て、該スイッチ手段のいずれかを操作することにより、操作したスイッチ手段に割り当てられているソングポジションマーカーが指定されるようにしたことを特徴とする請求項１記載の自動演奏装置。
【請求項３】
前記ソングポジションマーカーは、前記曲データの特定の演奏位置が非小節単位で指定可能とされており、前記ソングポジションマーカーが指定された場合は、指定された時に自動演奏されている位置の次に到達する、指定された前記ソングポジションマーカーの演奏位置に対応する小節内位置まで自動演奏された際に、指定された前記ソングポジションマーカーの前記演奏位置にジャンプして自動演奏されることを特徴とする請求項１記載の自動演奏装置。
【請求項４】
前記ソングポジションマーカーが指定された後、自動演奏されている位置が、前記次に到達する小節内位置に到達するまでのジャンプ待ちの間に、再度同ソングポジションマーカーが指定された時は、ジャンプを解除するようにしたことを特徴とする請求項３記載の自動演奏装置。
【請求項５】
ループ再生時のループエンド位置を示すループエンドマーカーが前記曲データ中に設定可能とされており、ループ再生が指示された場合は、前記ソングポジションマーカーあるいは前記ループエンドマーカーの位置まで自動演奏された時に、その前に位置するソングポジションマーカーにジャンプして、当該ソングポジションマーカーの後に位置する最初のソングポジションマーカーあるいはループエンドマーカーとの間においてループ再生されるようにしたことを特徴とする請求項１記載の自動演奏装置。
【請求項６】
前記ソングポジションマーカーはループ回数情報を含み、前記ジャンプしたソングポジションマーカーにおけるループ回数だけループ再生されることを特徴とする請求項５記載の自動演奏装置。
【請求項７】
前記ソングポジションマーカーには、該マーカーの名称が付与されていることを特徴とする請求項１記載の自動演奏装置。
【請求項８】
前記検出手段により検出された前記ソングポジションマーカーの演奏位置に対応する設定情報を記憶するソングポジション情報記憶手段と、前記ソングポジションマーカーの演奏位置を非小節単位で設定する設定手段とをさらに有し、前記ソングポジションマーカーの演奏位置を設定する際には、該ソングポジションマーカーの設定後の演奏位置に対応する設定情報を、前記ソングポジション情報記憶手段に記憶し直すことを特徴とする請求項１記載の自動演奏装置。
【請求項９】
前記ソングポジションマーカーおよび／または前記ループエンドマーカの演奏位置を非小節単位で設定する設定手段をさらに有し、前記マーカーの演奏位置を設定する際には、前記マーカー間の時間距離が所定値以下に設定できないようにされていることを特徴とする請求項１または５記載の自動演奏装置。
【請求項１０】
自動演奏あるいはループ再生されている際に、その演奏位置に対応する前記ソングポジションマーカーに割り当てられている表示手段が、その旨を表示することを特徴とする請求項１ないし９のいずれかに記載の自動演奏装置。
【請求項１１】
コンピュータを、
曲データを順次読み出して自動演奏する自動演奏手段、
曲データがロードされた際に、テキストメタイベントデータとして前記曲データ中に埋め込まれているソングポジションマーカーを前記曲データ中から検出する検出手段、
前記自動演奏手段により自動演奏されている際に、前記検出手段において検出されたいずれかの前記ソングポジションマーカーが指定されたことを検出するマーカー検出手段、
該マーカー検出手段において、前記ソングポジションマーカーのいずれかが指定されたと検出された際に、指定された前記ソングポジションマーカーで示される演奏位置に前記自動演奏手段の演奏位置をジャンプさせるジャンプ手段、
として機能させるようにしたことを特徴とする自動演奏プログラム。
【請求項１２】
前記ソングポジションマーカーが複数のスイッチ手段のいずれかに割り当てられており、
前記マーカー検出手段では、前記スイッチ手段のいずれかが操作された際に、操作されたスイッチ手段に割り当てられているソングポジションマーカーが指定されたと検出するようにしたことを特徴とする請求項１１記載の自動演奏プログラム。
【請求項１３】
前記ソングポジションマーカーは、前記曲データの特定の演奏位置が非小節単位で指定可能とされており、前記マーカー検出手段において、前記ソングポジションマーカーのいずれかが指定されたと検出された際に、前記ジャンプ手段において、検出された時に自動演奏されている位置の次に到達する、指定された前記ソングポジションマーカーの演奏位置に対応する小節内位置まで自動演奏された際に、指定された前記ソングポジションマーカーの前記演奏位置にジャンプさせるようにしたことを特徴とする請求項１１記載の自動演奏プログラム。
【請求項１４】
自動演奏装置により自動演奏可能な自動演奏データのデータ構造であって、
楽音の発生や楽音制御を行うイベントデータと、該イベントデータの生起タイミングを示すタイミングデータとが交互に配置されるデータ列から少なくとも構成され、
前記イベントデータには、前記自動演奏データにおける特定の演奏位置を示すソングポジションマーカーがテキストメタイベントデータとして少なくとも１つ含まれており、
前記自動演奏装置に前記自動演奏データがロードされる際に、前記ソングポジションマーカーが検出され、
前記自動演奏装置において前記ソングポジションマーカーのいずれかが指定されたと検出された際に、指定された前記ソングポジションマーカーで示される演奏位置に前記自動演奏手段の演奏位置がジャンプされるようにしたことを特徴とする自動演奏データのデータ構造。
【請求項１５】
前記ソングポジションマーカーはループ再生時のループ開始位置あるいはループエンド位置となることができ、前記テキストメタイベントデータには、前記自動演奏データにおける特定の演奏位置を示すと共に、ループ再生時のループエンド位置となるループエンドマーカーが含まれていることを特徴とする請求項１４記載の自動演奏データのデータ構造。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、曲データ中の任意の位置へのジャンプや、任意区間のループ再生を行える自動演奏装置、自動演奏プログラムおよび自動演奏データのデータ構造に関する。
【０００２】
【従来の技術】
自動演奏装置の操作パネルに設けられた複数のスイッチの各々に、曲データ中の所望の小節を設定し、各スイッチを操作することで瞬時に対応する小節へとジャンプ可能な自動演奏装置が知られている。例えば、特開平09-114456号公報に記載されている自動演奏装置は、曲番号と小節数という情報を各スイッチに設定することができるようにされており、いずれかのスイッチが操作された際に、そのスイッチに設定されている小節へジャンプして自動演奏されるようになされている。
【０００３】
【発明が解決しようとする課題】
しかしながら、スイッチを操作することで対応する小節へとジャンプ可能な従来の自動演奏装置においては、各スイッチに設定される所望の小節は、自動演奏装置本体内に記憶されようになされている。このため、曲データが変更されると自動演奏時のジャンプをコントロールすることができず、自動演奏される曲データが変更される場合には、各スイッチへの設定をし直さなければならないという問題点があった。
また、各スイッチへの設定は小節単位とされており、非小節単位で設定することができないという問題点があった。
【０００４】
そこで、本発明は、曲データ中の任意の位置へのジャンプや、任意区間のループ再生を、簡単に行えることのできる自動演奏装置、自動演奏プログラムおよび自動演奏データのデータ構造を提供することを目的としている。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明の自動演奏装置は、曲データを読み出して自動演奏する自動演奏手段と、曲データがロードされた際に、テキストメタイベントデータとして前記曲データ中に埋め込まれている特定の演奏位置を示すソングポジションマーカーを前記曲データ中から検出する検出手段と、前記自動演奏手段が前記曲データを自動演奏している際に、前記検出手段において検出されたいずれかの前記ソングポジションマーカーが指定された時は、指定された当該ソングポジションマーカーにおける前記演奏位置にジャンプして、前記自動演奏手段により自動演奏される。
【０００６】
また、上記本発明の自動演奏装置において、前記ソングポジションマーカーを複数のスイッチ手段のいずれかに割り当て、該スイッチ手段のいずれかを操作することにより、操作したスイッチ手段に割り当てられているソングポジションマーカーが指定されるようにしてもよい。
さらに、上記本発明の自動演奏装置において、前記ソングポジションマーカーは、前記曲データの特定の演奏位置が非小節単位で指定可能とされており、前記ソングポジションマーカーが指定された場合は、指定された時に自動演奏されている位置の次に到達する、指定された前記ソングポジションマーカーの演奏位置に対応する小節内位置まで自動演奏された際に、指定された前記ソングポジションマーカーの前記演奏位置にジャンプして自動演奏されるようにしてもよい。
【０００７】
さらにまた、上記本発明の自動演奏装置において、前記ソングポジションマーカーが指定された後、自動演奏されている位置が、前記次に到達する小節内位置に到達するまでのジャンプ待ちの間に、再度同ソングポジションマーカーが指定された時は、ジャンプを解除するようにしてもよい。
さらにまた、上記本発明の自動演奏装置において、ループ再生時のループエンド位置を示すループエンドマーカーが前記曲データ中に設定可能とされており、ループ再生が指示された場合は、前記ソングポジションマーカーあるいは前記ループエンドマーカーの位置まで自動演奏された時に、その前に位置するソングポジションマーカーにジャンプして、当該ソングポジションマーカーの後に位置する最初のソングポジションマーカーあるいはループエンドマーカーとの間においてループ再生されるようにしてもよい。
【０００８】
さらにまた、上記本発明の自動演奏装置において、前記ソングポジションマーカーはループ回数情報を含み、前記ジャンプしたソングポジションマーカーにおけるループ回数だけループ再生されるようにしてもよい。
さらにまた、上記本発明の自動演奏装置において、前記ソングポジションマーカーには、該マーカーの名称が付与されていてもよい。
さらにまた、上記本発明の自動演奏装置において、前記検出手段により検出された前記ソングポジションマーカーの演奏位置に対応する設定情報を記憶するソングポジション情報記憶手段と、前記ソングポジションマーカーの演奏位置を非小節単位で設定する設定手段とをさらに有し、前記ソングポジションマーカーの演奏位置を設定する際には、該ソングポジションマーカーの設定後の演奏位置に対応する設定情報を、前記ソングポジション情報記憶手段に記憶し直すようにしてもよい。
【０００９】
さらにまた、上記本発明の自動演奏装置において、前記ソングポジションマーカーおよび／または前記ループエンドマーカの演奏位置を非小節単位で設定する設定手段をさらに有し、前記マーカーの演奏位置を設定する際には、前記マーカー間の時間距離が所定値以下に設定できないようにされていてもよい。
さらにまた、上記本発明の自動演奏装置において、自動演奏あるいはループ再生されている際に、その演奏位置に対応する前記ソングポジションマーカーに割り当てられている表示手段が、その旨を表示するようにしてもよい。
【００１０】
次に、上記目的を達成することのできる本発明の自動演奏データのデータ構造は、自動演奏装置により自動演奏可能な自動演奏データのデータ構造であって、楽音の発生や楽音制御を行うイベントデータと、該イベントデータの生起タイミングを示すタイミングデータとが交互に配置されるデータ列から少なくとも構成され、前記イベントデータには、前記自動演奏データにおける特定の演奏位置を示すソングポジションマーカーがテキストメタイベントデータとして少なくとも１つ含まれており、前記自動演奏装置に前記自動演奏データがロードされる際に、前記ソングポジションマーカーが検出され、前記自動演奏装置において前記ソングポジションマーカーのいずれかが指定されたと検出された際に、指定された前記ソングポジションマーカーで示される演奏位置に前記自動演奏手段の演奏位置がジャンプされるようにしている。
また、上記本発明の自動演奏データのデータ構造において、前記ソングポジションマーカーはループ再生時のループ開始位置あるいはループエンド位置となることができ、前記テキストメタイベントデータには、前記自動演奏データにおける特定の演奏位置を示すと共に、ループ再生時のループエンド位置となるループエンドマーカーが含まれていてもよい。
次に、上記目的を達成することのできる本発明の自動演奏プログラムは、上記本発明の自動演奏装置の機能を、コンピュータに機能させるようにした自動演奏プログラムとされている。
【００１１】
このような本発明によれば、曲データにおける特定の演奏位置を示すソングポジションマーカーやループエンドマーカーを曲データ中に挿入することができる。このため、曲データが変更された場合にソングポジションマーカーやループエンドマーカーが曲データ中から検出されて自動的に設定されるようになる。このため、曲データが変更されても曲データ中の任意の位置へのジャンプや、任意区間のループ再生を、簡単に行えることができるようになる。
そして、曲データ中にイベントデータとしてソングポジションマーカーやループエンドマーカーを挿入することができるので、曲データごとにソングポジション設定やループエンド設定が簡単に行える。このソングポジションマーカーやループエンドマーカーのタイミングは非小節単位、例えば小節数と拍数やクロックにより設定することができる。この場合に、マーカー間が近すぎる場合は、設定する意味がないので設定できないようにするのが好適である。そして、指定されたソングポジションマーカーにジャンプする際には、ジャンプ指定後に次に到達する、指定されたソングポジションマーカーのポジションに対応する小節内ポジションまで演奏位置が達した際に、指定されたソングポジションマーカーの演奏位置にジャンプさせるようにしている。これにより、ユーザに違和感を覚えさせることなくジャンプさせることができるようになる。
【００１２】
さらに、ループ再生においてソングポジションに加えてループエンドマーカーによりループエンドを設定することができるので、ループエンドをソングポジション以外の任意のポジションに設定することができる。さらにまた、ソングポジションマーカーに対応してＬＥＤ等の表示手段を設けたので、表示手段により現在、どのソングポジションを再生中かを把握することができる。さらにまた、ソングポジションマーカーごとに名前やループ回数を設定することができるので、ソングポジションがわかりやすく、また、ループ再生を自由に制御できるようになる。なお、ソングポジションへのジャンプを指示するスイッチ手段を、操作するごとに状態が反転されるトグルスイッチとすると、ソングポジションへのジャンプ指示を容易にキャンセルすることができるようになる。
【００１３】
【発明の実施の形態】
本発明の実施の形態の自動演奏プログラムを備える自動演奏装置のハードウェア構成の一例を図１に示す。
図１に示す本発明にかかる自動演奏装置１において、ＣＰＵ１０は、自動演奏装置１の全体の動作を制御する中央処理装置（Central Processing Unit）であり、タイマ１１は、動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマであり、自動演奏等の時間管理等に使用される。ＲＯＭ１２は、ＣＰＵ１が実行する本発明の自動演奏プログラム等のプログラムや、各種データ等が格納されているＲＯＭ（Read Only Memory）であり、ＲＡＭ１３は、外部記録装置１４等から読み出された本発明にかかるデータ構造とされている曲データ等の各種データの格納エリアや、ＣＰＵ１のワークエリア等が設定されるＲＡＭ（Random Access Memory）である。外部記憶装置１４は、自動演奏プログラム等の各種アプリケーションプログラムや本発明にかかるデータ構造の曲データが記憶される外部記憶手段であり、ＨＤＤ（Hard Disk Drive）、ＦＤＤ（Floppy（登録商標）Disk Drive）、ＣＤ（Compact Disk）−ＲＯＭ、ＭＯ（Magneto Optical Disk）、ＤＶＤ（Digital Versatile Disk）等により構成することができる。
【００１４】
ＭＩＤＩ  Ｉ／Ｆ１６は、外部に設けられているＭＩＤＩ機器１５との間でＭＩＤＩ信号の受け渡しを行うＭＩＤＩインターフェースであり、ＭＩＤＩ機器１５は、ＭＩＤＩ対応とされたシーケンサや電子楽器等とされる。通信インターフェース１９は、イーサネット（登録商標）等のＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１８を介してサーバコンピュータ１７に接続するための通信インターフェースであり、通信ネットワーク１８を通じてサーバコンピュータ１７から本発明に係る自動演奏プログラム等のアプリケーションソフトや曲データ等の各種データを受け取ることができる。
演奏操作子２０は、鍵盤等の演奏操作子であり、演奏操作子２０を操作した際の演奏操作子情報は検出回路２１により検出されてバス２９へ送出される。パネル操作子２２は、パネル等に設けられた複数のスイッチであり、パネル操作子２２を操作した際のスイッチ情報は検出回路２３により検出されてバス２９に送出される。ディスプレイ２４は、自動演奏の設定、楽音データの編集や入力等の画面が表示される液晶表示器等の表示装置であり、ディスプレイ２４は表示回路２５により駆動されて所望の画面が表示される。
【００１５】
音源回路２６は、音源レジスタに格納されている複数の発音チャンネルの楽音制御データに基づいて楽音を生成しており、効果回路２７は、エフェクタを制御するためのエフェクト制御データに基づいて音源回路２６により生成された楽音データにリバーブ、コーラス、バリエーション等の効果を付与している。サウンドシステム２８は、効果回路２７から出力されるアナログ信号に変換されたアナログ楽音信号を増幅して発音するサウンドシステムである。また、バス２９は各ブロック間においてデータ等を相互に授受するためのバスであり、データバスやアドレスバスから構成されている。
【００１６】
上記した自動演奏装置１のハードウェア構成は、パーソナルコンピュータやワークステーションと同様の構成とされており、パーソナルコンピュータやワークステーションに本発明にかかる自動演奏プログラムを実行させることにより、本発明にかかる自動演奏装置１とすることができる。図１に示す自動演奏装置１において、本発明に係る自動演奏プログラムを起動して自動演奏を行う場合は、外部記憶装置１４や通信インターフェース１９を介して本発明にかかるデータ構造の曲データをＲＡＭ１３にロードする。そして、ディスプレイ２４に表示されているコントロールボタンを操作することにより、所望の設定状態において自動演奏を開始することができる。自動演奏中にパネルに設けられている後述するソングポジションスイッチを操作することにより、指定されたソングポジションにジャンプさせて自動演奏させることができる。また、パネルに設けられている後述するループスイッチを操作することにより、ソングポジションの間、あるいはソングポジションとループエンドポジションとの間においてループ再生することができる。
【００１７】
次に、本発明に係る自動演奏装置１の特徴点について、図２ないし図９を参照しながら説明する。
図２には、本発明にかかる自動演奏データのデータ構造が示されており、このようなデータ構造の曲データを図１に示す構成の自動演奏装置１において自動演奏することができる。図２に示すデータ構造の曲データは、曲名やテンポ、作曲者や作成日等の曲の情報が格納されているヘッダを備えている。このヘッダに続いて、イベントの生起タイミングを示すタイミングデータと、楽音の発生や楽音制御を行うイベントデータとが交互に配置されるデータ列とされており、曲データはヘッダとデータ列とから構成されている。イベントデータの種類としては、ノートオンあるいはノートオフのノートデータ、音量や効果などを設定するコントロールチェンジデータ、音色を設定するプログラムチェンジデータ、ピッチを連続的に上下させるピッチベンド、拍子、テンポチェンジ、および、本発明において特徴的なソングポジションマーカーと、ループエンドマーカー等とされている。なお、ソングポジションマーカーとループエンドマーカーにおいて、マーカー間の時間距離が所定値以下とされた場合は、その際のジャンプやループ再生に意味がなくなることから、マーカー間の時間距離は所定値以下に設定できないようにされている。例えば、マーカー間の時間距離の最小値は３２分音符長や半拍あるいは１拍としてもよい。
【００１８】
イベントデータの一種とされるソングポジションマーカーおよびループエンドマーカーについて図３を参照して説明する。図３において横軸ｔは自動演奏の経過時間でありソングポジションマーカーおよびループエンドマーカーは、図３に示すようにその特定の演奏位置を示すことができる。例えば、図示するように４つのソングポジションマーカーＳＰＪ−０１〜ＳＰＪ−０４のイベントデータおよびその時間位置を示すタイミングデータを曲データ中に埋め込むことができる。これらのソングポジションマーカーＳＰＪ−０１〜ＳＰＪ−０４において、第１のソングポジションマーカーＳＰＪ−０１は曲データの先頭である第１小節の第１拍を示すマーカーとされており、第２のソングポジションマーカーＳＰＪ−０２は曲データの第１６小節の第２拍を示すマーカーとされており、第３のソングポジションマーカーＳＰＪ−０３は曲データの第８小節の第１拍を示すマーカーとされており、第４のソングポジションマーカーＳＰＪ−０４は曲データの第２４小節の第１拍を示すマーカーとされている。
【００１９】
これらのソングポジションマーカーＳＰＪ−０１〜ＳＰＪ−０４の設定情報は、イベントデータにテキストメタイベントにて記述されており、記述内容は、ソングポジション番号、ソングポジションの名前、ループ再生時のループ回数等とされている。そして、ソングポジションマーカーのイベントデータは、汎用ＭＩＤＩシーケンサにより作成したり編集したりすることが可能とされている。図１に示す自動演奏装置１において自動演奏している際に、このようなソングポジションマーカーＳＰＪ−０１〜ＳＰＪ−０４のいずれかを指定すると、指定されたソングポジションマーカーの演奏位置にジャンプして自動演奏されるようになる。このような動作を実現するために、外部記憶装置１４等から曲データがＲＡＭ１３にロードされた際に、曲データ中のソングポジションマーカーが検出されて、そのイベントデータに記述されている内容およびソングポジションマーカーのタイミングデータから求められる小節数と拍数、クロック数、ソングポジションの位置おいて有効な楽音設定データからなる設定情報がＲＡＭ１３に確保されているソングポジションマーカー情報記憶領域に記憶される。４つのソングポジションマーカーＳＰＪ−０１〜ＳＰＪ−０４が検出されて、その設定情報がソングポジションマーカー情報記憶領域に記憶されている一例を図４に示す。
【００２０】
図４に示すソングポジションマーカー情報記憶領域に記憶されている各ソングポジションマーカーの設定情報は次のようにされている。ソングポジション番号「０１」とされている第１のソングポジションマーカーＳＰＪ−０１は、小節数「１」、拍数「１」とされて曲データの先頭である第１小節の第１拍、クロック数「０００」がソングポジションとされており、ソングポジションの名前は「Ｉｎｔｒｏ」、ループ回数は「５」、プログラムチェンジやコントロールチェンジ等の設定データから設定情報が構成されている。ソングポジション番号「０２」とされている第２のソングポジションマーカーＳＰＪ−０２は、小節数「１６」、拍数「２」、クロック数「０００」がソングポジションとされており、ソングポジションの名前は「Ｃｈｏｒｕｓ」、ループ回数は「無限」、プログラムチェンジやコントロールチェンジ等の設定データから設定情報が構成されている。ソングポジション番号「０３」とされている第３のソングポジションマーカーＳＰＪ−０３は、小節数「８」、拍数「１」、クロック数「０００」がソングポジションとされており、ソングポジションの名前は「Ｖｅｒｓｅ」、ループ回数は「無限」、プログラムチェンジやコントロールチェンジ等の設定データから設定情報が構成されている。ソングポジション番号「０４」とされている第４のソングポジションマーカーＳＰＪ−０４は、小節数「２４」、拍数「１」、クロック数「０００」がソングポジションとされており、ソングポジションの名前は無し、ループ回数は「２」、プログラムチェンジやコントロールチェンジ等の設定データから設定情報が構成されている。
【００２１】
そして、ソングポジション情報記憶領域の情報が参照されて、各ポジションマーカーがパネル操作子２２の一部を構成するソングポジションスイッチにそれぞれ割り当てられる。この場合、ソングポジション番号とソングポジションスイッチ番号が対応するように割り当てられる。すなわち、ソングポジション情報記憶領域の情報が図４に示す場合には、図３に示す第１ソングポジションスイッチ３１に第１のソングポジションマーカーＳＰＪ−０１が割り当てられ、第２ソングポジションスイッチ３２に第２のソングポジションマーカーＳＰＪ−０２が割り当てられ、第３ソングポジションスイッチ３３に第３のソングポジションマーカーＳＰＪ−０３が割り当てられ、第４ソングポジションスイッチ３４に第４のソングポジションマーカーＳＰＪ−０４が割り当てられる。ソングポジションスイッチ３１〜３４のいずれかのソングポジションスイッチを操作した際に、そのソングポジションスイッチに割り当てられたソングポジションマーカーが示す演奏位置にジャンプするようになる。ジャンプする際には、そのソングポジションマーカーが示すポジション（拍、クロック）に対応するポジションであって、ソングポジションスイッチが操作された時点で演奏されている位置の次に到達する、そのソングポジションマーカーが示すポジションに対応する小節内のポジションの位置からジャンプさせることにより、継続されている自動演奏に違和感を極力生じさせないようにしている。
【００２２】
なお、図３に示す例ではソングポジションマーカーは最大４つとされている。この場合、ソングポジション番号は図４に示すように「０１」〜「０４」となるが、その順番を時間位置順とする必要はなく、時間位置は逆転していてもよい。また、これ以外の番号にした場合のマーカーは、ループエンドを示すループエンドマーカーとなる。さらに、図３に示すソングポジションマーカーの表記において、最初の「：」はソングポジション番号とソングポジション名との区切りを示す区切り記号であり、２番目の「：」はソングポジション名とループ回数との区切りを示す区切り記号である。なお、ソングポジションマーカーの表記に、任意の文字列とすることのできるソングポジション名を用いると、当該マーカーの種類をユーザが判別しやすくなる。さらにまた、ループ回数はループ再生時に繰り返す回数とされる。このループ回数の指定がない時は無限ループ（ループ再生がオフされるまで繰り返す）となる。
【００２３】
さらにまた、図４に示すように各ソングポジションスイッチに対応して、ソングポジションマーカーの位置に対応したプログラムチェンジやコントロールチェンジ等の設定データが記憶される。これにより、ジャンプやループをした際に、各ソングポジションマーカーの位置で適切なプログラムチェンジやコントロールチェンジ等の設定がなされるようになる。後述するように、マーカーの位置をエディットして移動させた場合には、設定データも移動後の位置に対応したものに修正される。
【００２４】
具体的に、図５ないし図９を参照してソングポジションマーカーが示すポジションに対応するポジションの位置からジャンプさせる説明をする。図５では操作されたソングポジションスイッチに割り当てられているソングポジションマーカーの位置Ｔｊが４／４拍子の小節の１拍目（小節先頭）とされ、自動演奏中に４／４拍子の小節における１拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ１で示され、４／４拍子の小節における２拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ２で示され、３／４拍子の小節における１拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ３で示されている。この場合は、位置Ｔｊが１拍目とされていることから当該ソングポジションスイッチを位置Ｔｐ１あるいは位置Ｔｐ２で操作した時は、その後の最初の小節の１拍目から位置Ｔｊにジャンプして自動演奏されるようになる。また、位置Ｔｐ３では拍子が変更されているが、当該ソングポジションスイッチを位置Ｔｐ３で操作した時も、その後の最初の小節の１拍目から位置Ｔｊにジャンプして自動演奏されるようになる。
【００２５】
次に、図６では拍子は変更されず４／４拍子とされ、操作されたソングポジションスイッチに割り当てられているソングポジションマーカーの位置Ｔｊが２拍目とされ、自動演奏中に１拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ１で示され、２拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ２で示されている。この場合は、位置Ｔｊが２拍目とされていることから当該ソングポジションスイッチを位置Ｔｐ１で操作した時は、半拍後であるその小節における２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。また、位置Ｔｐ２で当該ソングポジションスイッチを操作した時は、次の小節における２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。
【００２６】
次に、図７では操作されたソングポジションスイッチに割り当てられているソングポジションマーカーの位置Ｔｊが４／４拍子の小節の２拍目とされ、自動演奏中に３／４拍子の小節の１拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ１で示され、３／４拍子の小節の２拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ２で示されている。この場合は、位置Ｔｊが２拍目とされていることから当該ソングポジションスイッチを位置Ｔｐ１で操作した時は、拍子の変更にかかわらず半拍後であるその小節における２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。また、位置Ｔｐ２で当該ソングポジションスイッチを操作した時は、拍子の変更にかかわらず次の小節における２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。
【００２７】
次に、図８では操作されたソングポジションスイッチに割り当てられているソングポジションマーカーの位置Ｔｊが４／４拍子の小節の４拍半目とされ、自動演奏中に３／４拍子の小節の１拍と１６分目で当該ソングポジションスイッチを操作した時の位置がＴｐ１で示され、３／４拍子の小節の２拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ２で示され、次の３／４拍子の小節の１拍と１６分目で当該ソングポジションスイッチを操作した時の位置がＴｐ３で示されている。この場合は、位置Ｔｊが４拍半目とされており、拍子が４／４拍子から３／４拍子に変更されていることから、当該ソングポジションスイッチを位置Ｔｐ１で操作した時は、３／４拍子のその小節の１拍目から数えて４拍半目である次の小節の１拍半目から位置Ｔｊにジャンプして自動演奏されるようになる。また、位置Ｔｐ２で当該ソングポジションスイッチを操作した時も同様になる。さらに、当該ソングポジションスイッチを位置Ｔｐ３で操作した時も、３／４拍子のその小節の１拍目から数えて４拍半目である次の小節（Ｔｐ１の次の次の小節）の１拍半目から位置Ｔｊにジャンプして自動演奏されるようになる。
【００２８】
次に、図９では操作されたソングポジションスイッチに割り当てられているソングポジションマーカーの位置Ｔｊが３／４拍子の小節の２拍目とされ、自動演奏中に４／４拍子の小節の１拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ１で示され、３／４拍子の小節の２拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ２で示され、次の３／４拍子の小節の３拍半目で当該ソングポジションスイッチを操作した時の位置がＴｐ３で示されている。この場合は、位置Ｔｊが２拍目とされており、拍子が３／４拍子から４／４拍子に変更されていることから、当該ソングポジションスイッチを位置Ｔｐ１で操作した時は、４／４拍子のその小節の２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。また、位置Ｔｐ２で当該ソングポジションスイッチを操作した時は、２拍目は過去になっているため次の４／４拍子の小節の２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。さらに、当該ソングポジションスイッチを位置Ｔｐ３で操作した時は、その小節の次の３／４拍子の小節の２拍目から位置Ｔｊにジャンプして自動演奏されるようになる。
【００２９】
ところで、ループエンドマーカーもソングポジションマーカーと同様に、テキストメタイベントにて記述されたループエンドマーカーのイベントデータおよびその時間位置を示すタイミングデータにより曲データ中に埋め込むことができる。ループエンドマーカーは、任意の位置に挿入可能とされ、１つのソングポジションマーカーの区間について、１つ以上挿入することができる。図３に示す例では３つのループエンドマーカーＳＰＪ−ＬＥ３、ＳＰＪ−ＬＥ２１、ＳＰＪ−ＬＥ２２が挿入されている。ループエンドマーカーＳＰＪ−ＬＥ３は、第３のソングポジションマーカーＳＰＪ−０３と第２のソングポジションマーカーＳＰＪ−０２との間に挿入されており、ループエンドマーカーＳＰＪ−ＬＥ２１、ＳＰＪ−ＬＥ２２は、第２のソングポジションマーカーＳＰＪ−０２と第４のソングポジションマーカーＳＰＪ−０４との間に挿入されている。これらのループエンドマーカーは、図３に示すループスイッチ３５を操作してループ再生をオンとした時に、ループ再生されるループエンド位置となる。
【００３０】
具体的に図３に示す例で説明すると、ループスイッチ３５が押されると、次に現れる何らかのマーカー位置まで演奏し、直前のソングポジションマーカーまで戻って、次に現れる何らかのマーカーとの間をソングポジションマーカーにおいて指定されている指定回、または無限回演奏する。すなわち、第１のソングポジションマーカーＳＰＪ−０１と第３のソングポジションマーカーＳＰＪ−０３の間でループスイッチ３５が操作されると、第１のソングポジションマーカーＳＰＪ−０１と第３のソングポジションマーカーＳＰＪ−０３の間を第１のソングポジションマーカーＳＰＪ−０１で指定されている５回繰り返して自動演奏する。その後次に進むようになる。また、第３のソングポジションマーカーＳＰＪ−０３とループエンドマーカーＬＥ３の間でループスイッチ３５が操作されると、第３のソングポジションマーカーＳＰＪ−０３とループエンドマーカーＬＥ３の間を第３のソングポジションマーカーＳＰＪ−０３で指定されている無限回（ループスイッチ３５を再度操作してループ再生をキャンセルするまで）繰り返して自動演奏する。
【００３１】
さらに、ループエンドマーカーＬＥ３と第２のソングポジションマーカーＳＰＪ−０２の間でループスイッチ３５が押されると、まずは第２のソングポジションマーカーＳＰＪ−０２まで演奏し、その後第３のソングポジションマーカーＳＰＪ−０３に戻り、ループエンドマーカーＬＥ３との間を第３のソングポジションマーカーＳＰＪ−０３で指定されている無限回繰り返して自動演奏する。さらにまた、第２のソングポジションマーカーＳＰＪ−０２とループエンドマーカーＬＥ２１の間でループスイッチ３５が押されると、第２のソングポジションマーカーＳＰＪ−０２とループエンドマーカーＬＥ２１の間を第２のソングポジションマーカーＳＰＪ−０２で指定されている無限回繰り返して自動演奏する。さらにまた、ループエンドマーカーＬＥ２１とループエンドマーカーＬＥ２２の間でループボタンが押されると、まずはループエンドマーカーＬＥ２２まで演奏し、その後第２のソングポジションマーカーＳＰＪ−０２に戻り、ループエンドマーカーＬＥ２１との間を第２のソングポジションマーカーＳＰＪ−０２で指定されている無限回繰り返して自動演奏する。
【００３２】
さらにまた、ループエンドマーカーＬＥ２２と第４のソングポジションマーカーＳＰＪ−０４の間でループボタンが押されると、まずは第４のソングポジションマーカーＳＰＪ−０４まで演奏し、その後第２のソングポジションマーカーＳＰＪ−０２に戻り、ループエンドマーカーＬＥ２１の間を第２のソングポジションマーカーＳＰＪ−０２で指定されている無限回繰り返して自動演奏する。さらにまた、第４のソングポジションマーカーＳＰＪ−０４で指定されている以降でループボタンが押されると、まずは曲エンドまで演奏し、その後第４のソングポジションマーカーＳＰＪ−０４で指定されていると曲エンドの間を第４のソングポジションマーカーＳＰＪ−０４で指定されている２回繰り返して自動演奏する。そして、その後自動演奏は終了するようになる。
【００３３】
ところで、図３に示すようにソングポジションスイッチ３１〜３４とループスイッチ３５の上には発光素子ＬＥＤ１〜ＬＥＤ５がそれぞれ設けられている。発光素子ＬＥＤ１〜ＬＥＤ４は、例えば、緑色および赤色で発光可能とされており、発光素子ＬＥＤ５は例えば、緑色で発光可能とされている。ソングポジションスイッチ３１〜３４に対応して設けられている発光素子ＬＥＤ１〜ＬＥＤ４が緑色に発光するのは、ロードされた曲データ中に対応するソングポジションマーカーが設定されていた場合であって、当該ソングポジションマーカーのエリアが自動演奏されていない場合であり、当該ソングポジションマーカーのエリアが自動演奏されている場合は赤色に発光する。また、ループスイッチ３５における発光素子ＬＥＤ５が緑色に発光するのは、ループ再生がオンされた場合である。
なお、ソングポジションスイッチ３１〜３４とループスイッチ３５は、操作するごとに状態が反転するトグルスイッチとされているため、ソングポジションへのジャンプ指示やループ再生指示を容易にキャンセルすることができるようになる。
【００３４】
次に、本発明にかかる自動演奏装置１において実行される曲データロード処理のフローチャートを図１０に示す。
外部記憶装置１４から所望の曲データをＲＡＭ１３にロードする指示が行われると、曲データロード処理が起動され、ステップＳ１０にて外部記憶装置１４から指定された所望の曲データがＲＡＭ１３にロードされる。次いで、ステップＳ１１にてロードされた曲データ中のソングポジションマーカーがチェックされる。そして、チェックされたソングポジションマーカーの設定情報が取得されて、ステップＳ１２にてＲＡＭ１３に確保されたソングポジション情報記憶領域に図４に示すように記憶される。次いで、チェックされたソングポジションマーカーをステップＳ１３にて、前述したようにソングポジションスイッチ３１〜３４にそれぞれ割り当て、対応する発光素子ＬＥＤ１〜ＬＥＤ４を第１態様である緑色で発光させる。そして、ステップＳ１４にてディスプレイ２４にソングポジションマーカー情報を表示する。この際の表示態様の一例を図１１に示す。ディスプレイ２４には、図１１の例ではソングポジション番号、ソングポジションの小節数と拍数、クロック数、ソングポジションの名前、ループ再生時のループ回数が表示される。表示態様は図１１に示す表示に限らず、図３に示すような演奏時間軸上にソングポジションマーカーを表示するグラフィカルな表示態様であってもよい。ステップＳ１４の処理が終了すると曲データロード処理は終了する。さらに、ソングポジションマーカー情報を表示する際に、合わせてループエンドマーカーの情報を表示するようにしてもよい。
【００３５】
次に、本発明にかかる自動演奏装置において実行されるソングポジションマーカーの位置等を編集する曲データエディット処理のフローチャートを図１２に示す。
曲データをエディットするいずれかのボタン等を操作すると、曲データエディット処理が起動され、ステップＳ２１にてソングポジションマーカーの位置修正のエディットか否かが判断される。ここで、ソングポジションマーカーの位置修正のエディットが指示されていると判断されると、ステップＳ２２に進んでパネル操作子２２の操作に応じてソングポジションマーカーの位置を修正する。この場合、小節、拍、クロックの少なくとも１つが修正され、修正は数値で指定してもよいし、ディスプレイ２４上で表示されているマーカーの位置を移動させてもよい。ただし、２つのソングポジションマーカーの距離が所定値以内になる時は、修正を無効あるいは所定値を超えるように自動的に設定する。例えば、２つのマーカー間が１拍以内の距離になったとき、修正を無効にするか、あるいは１拍にする。そして、ステップＳ２１においてソングポジションマーカーの位置修正のエディットが指示されていないと判断された場合と同様にステップＳ２３に進む。
【００３６】
ステップＳ２３では、ソングポジションマーカーの名前やループ回数のエディットか否かが判断される。ここで、ソングポジションマーカーの名前あるいはループ回数のエディットが指示されていると判断されると、ステップＳ２４に進んでパネル操作子２２の操作に応じてソングポジションマーカーの名前やループ回数を修正する。そして、ステップＳ２３においてソングポジションマーカーの位置修正のエディットが指示されていないと判断された場合と同様にステップＳ２５に進む。ステップＳ２５では、その他のイベントのエディットか否かが判断される。ここで、ノートデータ、コントロールチェンジデータやプログラムチェンジデータ等のイベントのエディットが指示されていると判断されると、ステップＳ２６に進んでパネル操作子２２の操作に応じて指示されているイベントデータを修正する。そして、ステップＳ２５においてその他のイベントのエディットが指示されていないと判断された場合と同様にステップＳ２７に進む。
【００３７】
ステップＳ２７では、エディット終了が指示されているか否かが判断され、エディット終了が指示されていると判断された場合は、ステップＳ２８にてエディット後における曲データ中のソングポジションマーカーがチェックされる。次いで、チェックされたソングポジションマーカーに対応する設定情報が取得されて、ステップＳ２９にてＲＡＭ１３に確保されたソングポジション情報記憶領域に図４に示すように記憶される。設定情報の取得は、曲データの先頭からコントロールチェンジやプログラムチェンジ等の設定データをソングポジションマーカーの位置まで更新しながら読み出すことにより取得するか、ソングポジションマーカーの位置から曲データの先頭に向かって設定データをサーチしていき、見つかった設定データを取得する等により行う。ステップＳ２９の処理が終了すると曲データエディット処理は終了する。なお、ステップＳ２７にてエディットが継続されていると判断された場合は、ステップＳ２１に戻りステップＳ２１ないしステップＳ２６の処理が繰り返し実行されて曲データが編集されるようになる。
【００３８】
なお、曲データエディット処理において、編集結果を反映したソングポジションマーカー情報をディスプレイ２４に表示させるようにしてもよい。また、後述するようにソングポジションマーカーの曲データへの挿入は、曲データの再生時にソングポジションスイッチ３１〜３４を操作（ダブルクリック）することにより入力しているが、曲データエディット処理においてソングポジションマーカーを挿入できるようにしてもよい。また、挿入されているソングポジションマーカーを削除できるようにしてもよい。さらに、ループエンドマーカーの挿入、編集、削除などは、外部のＭＩＤＩシーケンサ（テキストメタイベントを扱うことのできるＭＩＤＩシーケンサならばなんでもよい）により行うことを想定しているが、曲データエディット処理においてループエンドマーカーの挿入や編集をできるようにしてもよい。
【００３９】
次に、本発明にかかる自動演奏装置において実行される曲データ再生処理のフローチャートを図１３ないし図１５に示す。
自動演奏の開始が指示されると、曲データ再生処理が開始されステップＳ３１にて読み出されたイベント再生タイミングに達しているか否かが判断される。イベント再生タイミングに達しているか否かは、別途テンポに応じてカウントされているタイマの値と当該イベントデータのタイミングデータの値とを比較することにより行われる。ここで、タイミングデータで示される時刻に達していると判断された場合は、ステップＳ３２に進みイベントはソングポジションマーカーか否かが判断される。ここで、イベントがソングポジションマーカーと判断されると、ステップＳ３３にてループ再生モードとされているか否かが判断される。ここで、ループスイッチ３５が操作されていてループ再生モードと判断されると、イベント再生タイミングに達したソングポジションマーカーは、曲データの先頭のソングポジションマーカー以外か否かがステップＳ３４にて判断される。この処理は、曲データの先頭のソングポジションマーカーの場合、ループ先がないのでループさせないために行われる。
【００４０】
ここで、イベント再生タイミングに達したソングポジションマーカーが、曲データの先頭のソングポジションマーカー以外と判断されると、ループ再生が可能となるため、ステップＳ３５にて直前のソングポジションマーカーまでジャンプし、ジャンプしたソングポジションマーカーにおける設定情報を反映させる。次いで、ステップＳ３６にて、ジャンプしたソングポジションマーカーに設定されているループ回数は有限回数とされているか否かが判断される。ここで、第１のソングポジションマーカーや第４のソングポジションマーカーのようにループ回数が有限回数とされている場合は、ステップＳ３７にてソングポジション情報記憶領域に記憶されている当該ソングポジションマーカーにおけるループ回数が「１」だけデクリメントされる。さらに、デクリメントした結果、そのループ回数が「０」になったか否かが判断される。ここで、そのループ回数が「０」になったと判断されるとステップＳ３９にてループモードが解除されて、対応する発光素子ＬＥＤ５が消灯される。ステップＳ３９の処理が終了すると、図１４に示すステップＳ４６に進む。
【００４１】
ステップＳ３１にてタイミングデータで示される時刻に達していないと判断された場合は、ステップＳ３２ないしステップＳ３９の処理はスキップされ図１４に示すステップＳ４６に進む。また、ステップＳ３６にてループ回数が有限回数とされていないと判断された場合は、ステップＳ３７ないしステップＳ３９の処理はスキップされ図１４に示すステップＳ４６に進む。さらに、ステップＳ３８にてループ回数が「０」になっていないと判断された場合は、ステップＳ３９の処理はスキップされ図１４に示すステップＳ４６に進む。
また、ステップＳ３３にてループ再生モードでないと判断された場合、および、ステップＳ３４にて曲データの先頭のソングポジションマーカーと判断された場合はステップＳ３２にて検出されたソングポジションマーカーの位置へジャンプするため、ステップＳ４０に分岐して第２態様である赤色で点灯しているジャンプ前のソングポジションマーカーに対応する発光素子ＬＥＤがあった場合は、その発光素子ＬＥＤを第１態様である緑色で発光させる。次いで、ステップＳ４１にてステップＳ３２にて検出されたジャンプ先のソングポジションマーカーに対応する発光素子ＬＥＤを第２態様である赤色で発光させる。ステップＳ４１の処理が終了すると、図１４に示すステップＳ４６に進む。
【００４２】
また、ステップＳ３２にてイベント再生タイミングに達したイベントがソングポジションマーカーではないと判断されると、ステップＳ４２に分岐してそのイベントがループエンドマーカーか否かが判断される。ここで、そのイベントがループエンドマーカーと判断されると、ステップＳ４３にてループ再生モードとされているか否かが判断される。ここで、ループスイッチ３５が操作されていてループ再生モードと判断されると、イベント再生タイミングに達したループエンドマーカーの前にソングポジションマーカーがあるか否かがステップＳ４４にて判断される。ここで、そのループエンドマーカーの前にソングポジションマーカーがある場合は、前述したステップＳ３５にジャンプする。そして、前述したステップＳ３５ないしステップＳ３９の処理が実行され、ステップＳ３９の処理が終了すると、図１４に示すステップＳ４６に進む。また、ステップＳ４２にてイベント再生タイミングに達したイベントがループエンドマーカーでないと判断されるとステップＳ４５に分岐してその他のイベント処理が行われる。その他のイベント処理の例としては、ノートイベントに対する発音処理や消音処理、プログラムチェンジイベントに対する音色設定処理、コントロールチェンジイベントに対するボリュームやエフェクト等の各種設定処理、ピッチベンドイベントに対するピッチ変更処理、拍子イベントに対する拍子変更処理、テンポチェンジイベントに対するテンポ変更処理の終了がある。また、ステップＳ４３にてループ再生モードとされていないと判断された場合、および、ステップＳ４４にてイベント再生タイミングに達したループエンドマーカーの前にソングポジションマーカーがなく、戻るソングポジションマーカーがないと判断された場合は、図１４に示すステップＳ４６に進む。
【００４３】
図１４に示すステップＳ４６では、ソングポジションスイッチがシングルクリックされたか否かが判断される。ソングポジションスイッチがシングルクリックされた場合は、操作したソングポジションスイッチに対応するソングポジションマーカーの位置へジャンプさせる処理が行われることから、シングルクリックされてステップＳ４６にてＹＥＳと判断された場合は、ステップＳ４７に進み非ジャンプ待ちモードとなっているか否かが判断される。ジャンプ待ちモードとは、ソングポジションスイッチが操作されてから実際にジャンプするまでのモードであり、ジャンプ待ちモードは前述した図５〜図９に示す位置Ｔｐからジャンプするタイミングまでとされる。ここで、非ジャンプモードになっていると判断されると、ステップＳ４８にて操作したソングポジションスイッチに対応するソングポジションマーカーの演奏位置のタイミングをチェックし、ジャンプさせるタイミングをセットする。ジャンプさせるタイミングは、図５〜図９を参照して前述した説明の通りとされる。そして、ステップＳ４９にてジャンプ待ちモードにセットされて、ステップＳ５０にて操作したソングポジションスイッチに対応する発光素子ＬＥＤを第３態様、例えば緑色の点滅発光で点灯させる。
【００４４】
また、ステップＳ４７にてジャンプ待ちモードにセットされていると判断されると、ステップＳ５４に分岐する。ここで、ジャンプ待ちモードとなっている時に、さらにソングポジションスイッチを操作した時は、同じソングポジションスイッチが操作された時はジャンプすることがクリアされ、異なるソングポジションスイッチが操作された時はそのソングポジションスイッチに対応するソングポジションマーカーの位置にジャンプするように再セットされる。このような処理がステップＳ５４以降の処理において実行され、ステップＳ５４ではジャンプ待ちモードがクリアされ、さらにステップＳ５５にてセットされていたジャンプタイミングがクリアされる。次いで、クリアされたジャンプ位置に対応する発光素子ＬＥＤを第１態様とされる緑色で発光させる。次に、ステップＳ５７にてジャンプ待ちモードにセットされた際に操作されたソングポジションスイッチと同一のソングポジションスイッチが操作されたのか否かが判断される。ここで、同一のソングポジションスイッチが操作されたと判断されると、対応するジャンプのセットはステップＳ５４ないしステップＳ５６においてクリアされているので、そのままステップＳ５１へ進む。また、異なるソングポジションスイッチが操作されたと判断されると、ステップＳ４８に分岐し、ステップＳ４８からステップＳ５０における前述した処理が実行されることにより新たに操作されたソングポジションスイッチに対応するソングポジションマーカーの位置へのジャンプがセットされる。なお、それまでのジャンプのセットはステップＳ５４ないしステップＳ５６においてクリアされている。
【００４５】
ステップＳ５０の処理が終了すると、ステップＳ５１にてソングポジションスイッチがダブルクリックされたか否かが判断される。ソングポジションスイッチがダブルクリックされた場合は、現在の演奏位置における小節の先頭位置がそのソングポジションスイッチにおけるソングポジションマーカーとなる。そこで、ステップＳ５２にてダブルクリックされたソングポジションスイッチに対応するソングポジション情報記憶領域の小節数と拍数およびクロックの欄に、現在の小節の先頭タイミングを記憶させる。次いで、対応するソングポジション情報記憶領域の設定データの欄に、現在の小節の先頭におけるプログラムチェンジやコントロールチェンジ等の設定データが記憶される。これにより、対応するソングポジション情報記憶領域に既にソングポジションマーカーの情報が記憶されている場合は対応するソングポジションマーカーが更新され、記憶されていない場合はソングポジションマーカーが新規に追加されることになる。ステップＳ５３の処理が終了すると、図１５に示すステップＳ５８に進む。なお、自動演奏中において現在の小節の先頭位置におけるプログラムチェンジやコントロールチェンジ等の設定データは各小節先頭に達する毎にバッファリングされている。
【００４６】
ステップＳ５８ではステップＳ４８においてセットされたジャンプタイミングに達したか否かが判断される。ここで、ジャンプタイミングに達していると判断されると、ジャンプ先のソングポジションマーカーの位置にジャンプすると共に、そのソングポジションマーカーにおけるプログラムチェンジやコントロールチェンジ等の設定データが反映される。次いで、ステップＳ６０にてジャンプ先のソングポジションマーカーに対応するソングポジションスイッチにおける発光素子ＬＥＤが第２態様である赤色で点灯されると共に、他の発光素子ＬＥＤが第１態様である緑色で点灯されるようになる。そして、ステップＳ５８においてジャンプタイミングに達していないと判断された場合と同様に、ステップＳ６１に進む。
【００４７】
ステップＳ６１では、ループスイッチ３５が操作されたか否かが判断される。ここで、ループスイッチ３５が操作されたと判断されると、ステップＳ６２にて現在ループモードとされているか否かが判断され、現在ループモードとされている判断された場合はステップＳ６３においてループモードが解除される。すなわち、ループ再生時にループスイッチ３５を操作することによりループ再生をキャンセルすることができる。また、ステップＳ６２にて現在ループモードとされていないと判断された場合は、ステップＳ６４に分岐してループ再生モードに設定される。そして、ステップＳ６１にてループスイッチ３５が操作されていないと判断された場合、および、ステップＳ６３あるいはステップＳ６４の処理が終了した場合はステップＳ６５に進み、全てのイベントデータの読み出しが終了して曲データが終了したか否かが判断される。ここで、曲データが終了したと判断された場合は曲データ再生処理は終了する。また、曲データが終了していない場合はステップＳ３１に戻り前述した曲データ再生処理が繰り返し実行されるようになる。
【００４８】
次に、本発明にかかる自動演奏装置１おいて実行される曲データ保存処理のフローチャートを図１６に示す。
ＲＡＭ１３にロードされている曲データの保存を指示するボタン等を操作すると、図１６に示す曲データ保存処理が起動され、ステップＳ７１にてＲＡＭ１３にロードされている曲データ中のソングポジションマーカーのタイミングデータとイベントデータとが削除される。ついで、ステップＳ７２にてソングポジション情報記憶領域の内容を参照して、ソングポジションマーカーのタイミングデータとイベントデータとを作成してＲＡＭ１３にロードされている曲データ中に挿入する。次いで、ステップＳ７３にて新たに作成されたソングポジションマーカーが挿入されているＲＡＭ１３に格納されている曲データが外部記憶装置１４等の記憶媒体に保存される。これにより、ＲＡＭ１３にロードされている曲データのソングポジションマーカーが編集された場合であっても、編集後の曲データが記憶媒体に保存されるようになる。
【００４９】
ところで、本発明は自動演奏プログラムという自動演奏のアプリケーションソフトウェアをパソコンにインストールした形態でもよく、カラオケ装置や、ゲーム装置、携帯電話等の携帯型通信端末、自動演奏ピアノに適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
また、本発明にかかる自動演奏装置の形態は電子楽器とすることができる。この場合、電子楽器は鍵盤楽器に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の形態としてもよい。また、本発明にかかる自動演奏装置を電子楽器本体と別体の装置とし、ＭＩＤＩや各種ネットワーク等の通信手段を用いて各装置を接続するものであってもよい。
さらに、本発明にかかる自動演奏プログラムや曲データを外部記憶媒体から、或いは通信インターフェース１９を介して外部装置から電子楽器やパソコンに供給してもよい。この通信インターフェース１９及び通信ネットワーク１８は、有線のものに限らず無線でもよい。また双方を備えていてもよい。
【００５０】
さらにまた、本発明にかかる曲データのデータ構造は、演奏イベントの発生時刻を１つ前のイベントからの時間で表した「イベント＋相対時間」、演奏イベントの発生時刻を曲や小節内における絶対時間で表した「イベント＋絶対時間」、音符の音高と符長あるいは休符と休符長で演奏データを表した「音高（休符）＋符長」、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域に演奏イベントを記憶した「ベタ方式」等、どのような形式でもよい。
さらにまた、曲データを自動演奏する際の処理方法は、設定されたテンポに応じて処理周期を変更する方法、処理周期は一定で、曲データ中のタイミングデータの値を設定されたテンポに応じて変更する方法、処理周期は一定で、１回の処理において曲データ中のタイミングデータの計数の仕方をテンポに応じて変更する方法等、どのようなものであってもよい。
さらにまた、複数チャンネル分の曲データの記憶方法としては、複数のチャンネルのデータが混在記憶された形式でもよいし、各チャンネルのデータがトラック毎に分かれて記憶されている形式でもよい。
さらにまた、メモリ上において、時系列の曲データが連続する領域に記憶されていてもよいし、飛び飛びの領域に散在して記憶されているデータを、連続するデータとして別途管理するようにしてもよい（すなわち、時系列的に連続するデータとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題ではない）。
【００５１】
【発明の効果】
本発明は以上のように構成されているので、曲データにおける特定の演奏位置を示すソングポジションマーカーやループエンドマーカーを曲データ中に挿入することができる。このため、曲データが変更された場合にソングポジションマーカーやループエンドマーカーが曲データ中から検出されて自動的に設定されるようになる。このため、曲データが変更されても曲データ中の任意の位置へのジャンプや、任意区間のループ再生を、簡単に行えることができるようになる。
そして、曲データ中にイベントデータとしてソングポジションマーカーやループエンドマーカーを挿入することができるので、曲データごとにソングポジション設定やループエンド設定が簡単に行える。このソングポジションマーカーやループエンドマーカーのタイミングは非小節単位、例えば小節数と拍数やクロックにより設定することができる。この場合に、マーカー間が近すぎる場合は、設定する意味がないので設定できないようにするのが好適である。そして、指定されたソングポジションマーカーにジャンプする際には、ジャンプ指定後に次に到達する、指定されたソングポジションマーカーのポジションに対応する小節内ポジションまで演奏位置が達した際に、指定されたソングポジションマーカーの演奏位置にジャンプさせるようにしている。これにより、ユーザに違和感を覚えさせることなくジャンプさせることができるようになる。
【００５２】
さらに、ループ再生においてソングポジションに加えてループエンドマーカーによりループエンドを設定することができるので、ループエンドをソングポジション以外の任意のポジションに設定することができる。さらにまた、ソングポジションマーカーに対応してＬＥＤ等の表示手段を設けたので、表示手段により現在、どのソングポジションを再生中かを把握することができる。さらにまた、ソングポジションマーカーごとに名前やループ回数を設定することができるので、ソングポジションがわかりやすく、また、ループ再生を自由に制御できるようになる。なお、ソングポジションへのジャンプを指示するスイッチ手段を、操作するごとに状態が反転されるトグルスイッチとすると、ソングポジションへのジャンプ指示を容易にキャンセルすることができるようになる。
【図面の簡単な説明】
【図１】  本発明の実施の形態の自動演奏プログラムを備える自動演奏装置のハードウェア構成の一例を示すブロック図である。
【図２】  本発明の実施の形態の自動演奏装置にかかる本発明の自動演奏データのデータ構造を示す図である。
【図３】  本発明の実施の形態の自動演奏装置にかかるソングポジションマーカーおよびループエンドマーカーについて説明するための図である。
【図４】  本発明の実施の形態の自動演奏装置における設定情報がソングポジションマーカー情報記憶領域に記憶されている態様を示す図である。
【図５】  本発明の実施の形態の自動演奏装置においてジャンプさせる第１態様を示す図である。
【図６】  本発明の実施の形態の自動演奏装置においてジャンプさせる第２態様を示す図である。
【図７】  本発明の実施の形態の自動演奏装置においてジャンプさせる第３態様を示す図である。
【図８】  本発明の実施の形態の自動演奏装置においてジャンプさせる第４態様を示す図である。
【図９】  本発明の実施の形態の自動演奏装置においてジャンプさせる第５態様を示す図である。
【図１０】  本発明にかかる自動演奏装置において実行される曲データロード処理のフローチャートである。
【図１１】  本発明にかかる自動演奏装置において実行される曲データロード処理においてディスプレイに表示されるソングポジションマーカー情報を示す図である。
【図１２】  本発明にかかる自動演奏装置において実行される曲データエディット処理のフローチャートである。
【図１３】  本発明にかかる自動演奏装置において実行される曲データ再生処理のフローチャートの一部である。
【図１４】  本発明にかかる自動演奏装置において実行される曲データ再生処理のフローチャートの他の一部である。
【図１５】  本発明にかかる自動演奏装置において実行される曲データ再生処理のフローチャートのさらに他の一部である。
【図１６】  本発明にかかる自動演奏装置において実行される曲データ保存処理のフローチャートである。
【符号の説明】
１  自動演奏装置、１０  ＣＰＵ、１１  タイマ、１２  ＲＯＭ、１３  ＲＡＭ、１４  外部記憶装置、１５  ＭＩＤＩ機器、１６  ＭＩＤＩインタフェース、１７  サーバコンピュータ、１８  通信ネットワーク、１９  通信インターフェース、２０  演奏操作子、２１  検出回路、２２  パネル操作子、２３  検出回路、２４  ディスプレイ、２５  表示回路、２６  音源回路、２７  効果回路、２８  サウンドシステム、２９  バス、３１  第１ソングポジションスイッチ、３２  第２ソングポジションスイッチ、３３  第３ソングポジションスイッチ、３４  第４ソングポジションスイッチ、３５  ループスイッチ、ＬＥＤ１〜ＬＥＤ５  発光素子
【図１】
0003873782.tif 000002
【図２】
0003873782.tif 000003
【図３】
0003873782.tif 000004
【図４】
0003873782.tif 000005
【図５】
0003873782.tif 000006
【図６】
0003873782.tif 000007
【図７】
0003873782.tif 000008
【図８】
0003873782.tif 000009
【図９】
0003873782.tif 000010
【図１０】
0003873782.tif 000011
【図１１】
0003873782.tif 000012
【図１２】
0003873782.tif 000013
【図１３】
0003873782.tif 000014
【図１４】
0003873782.tif 000015
【図１５】
0003873782.tif 000016
【図１６】
0003873782.tif 000017