(57)【特許請求の範囲】
【請求項１】
組み合わせられた複数の演奏データを再生することによって自動演奏を行うことができる自動演奏装置において、
新たな演奏データを取得するためのデータ取得手段と、
外部記録媒体にデータを記録させるデータ記録手段と、
前記データ取得手段により取得された演奏データと組み合わせて再生させる他の演奏データを指定するための組み合わせ指定手段と、
前記組み合わせ指定手段により他の演奏データが指定されている前記データ取得手段により取得された演奏データを、前記データ記録手段により前記外部記録媒体に記録させる場合に、前記組み合わせ指定手段により指定された他の演奏データが前記データ取得手段により取得された演奏データであったときは、該他の演奏データを併せて前記外部記録媒体に記録させるよう制御し、一方、前記組み合わせ指定手段により指定された他の演奏データが前記自動演奏装置内に予め固定的に記憶されている演奏データであったときは、該他の演奏データの記憶位置を示す識別情報を併せて前記外部記録媒体に記録させるよう制御する記録制御手段と、
を具備したことを特徴とする自動演奏装置。
【請求項２】
前記外部記録媒体に記録されたデータを読み出すデータ読出手段と、
前記データ読出手段により読み出された演奏データに併せて記録されているデータが前記識別情報であったときには、該識別情報に基づいて他の演奏データを特定するデータ特定手段と、
前記データ読出手段により読み出された演奏データと、該演奏データに組み合わされている他の演奏データとを再生することによって自動演奏を行う自動演奏手段と、
を更に具備したことを特徴とする請求項１記載の自動演奏装置。
【請求項３】
他のデータと組み合わせて自動再生されるデータを記録媒体に記録するための方法であって、
新たなデータを取得し、
該新たなデータと組み合わせて自動再生させる他のデータを指定させ、
該他のデータが指定された前記新たなデータを記録媒体に記録させる場合に、該他のデータが当該新たなデータとは別に新たに取得されたデータであったときは、該他のデータを併せて前記記録媒体に記録させ、一方、該他のデータが予め用意されていたデータであったときは、該他のデータを示す識別情報を併せて前記記録媒体に記録させる、
ことを特徴とするデータ記録方法。
【請求項４】
コンピュータに、
新たな演奏データを取得するためのデータ取得処理と、
外部記録媒体にデータを記録させるデータ記録処理と、
前記データ取得処理により取得された演奏データと組み合わせて再生させる他の演奏データを指定するための組み合わせ指定処理と、
前記組み合わせ指定処理により他の演奏データが指定されている前記データ取得処理により取得された演奏データを、前記データ記録処理により前記外部記録媒体に記録させる場合に、前記組み合わせ指定処理により指定された他の演奏データが前記データ取得処理により取得された演奏データであったときは、該他の演奏データを併せて前記外部記録媒体に記録させるよう制御し、一方、前記組み合わせ指定処理により指定された他の演奏データが前記データ取得処理により取得された演奏データでなかったときは、該他の演奏データを示す識別情報を併せて前記外部記録媒体に記録させるよう制御する記録制御処理と、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、組み合わせられたイントロダクション用やエンディング用、或いはパート別といった複数の演奏データを設定された手順で再生する自動演奏を行うことができる自動演奏装置に関する。
【０００２】
【従来の技術】
現在、自動演奏（ここでは自動伴奏を含む）用の演奏データを再生することで自動演奏を行う自動演奏装置は専用の装置としてだけでなく、電子楽器等の楽音生成装置にも広く搭載されている。その自動演奏装置により、ユーザは一人でもアンサンブル演奏のような楽しみ方を味わうことができる。
【０００３】
上記演奏データは、通常、演奏上のイベントの内容を示すイベントデータ、及びそのイベントデータの処理タイミングを示す時間データからなるデータ対を処理順序に従って並べた形で構成されたシーケンスデータである。自動演奏装置のなかには、組み合わされた複数の演奏データを設定された手順で再生することができるものがある。そのような自動演奏装置の多くは、自動演奏させるパートの種類やその数、或いは組み合わせだけでなく、イントロダクション（以降、イントロと略記する）やエンディングの演奏を変更することができる。このため、ユーザにとっては、より幅広い音楽表現を行えるようになっている。
【０００４】
一方、自動演奏装置には、演奏データを作成したり、或いは予め用意された演奏データの内容を変更したりするための機能（以降、編集機能と呼ぶ）を搭載したものもある。その編集機能により、ユーザはそれまで自動演奏装置になかった演奏データを新たに取得することができる。言い換えれば、ユーザ独自の音楽表現を自動演奏に反映させることができる。このため、再生させる演奏データの組み合わせを指定できる自動演奏装置に編集機能を搭載させた場合には、ユーザはより一層、幅広い音楽表現を行うことができる。
【０００５】
【発明が解決しようとする課題】
編集機能を搭載し、演奏データの組み合わせを指定できる自動演奏装置では、編集機能によって新たに取得した演奏データ（以降、便宜的に取得演奏データと呼ぶ）は、ＲＡＭなどの書き込み可能なメモリに格納される。そのメモリの容量には制限がある。このため、そのメモリに格納（保存）できる取得演奏データの数やそのデータ量に制限が設けられているのが普通である。
【０００６】
メモリに格納できる取得演奏データ数が制限されていると、その数を越えないように、既に格納させている取得演奏データを随時、削除しなければならない。たとえそれまでに格納させた取得演奏データを全て残しておきたくても、そのなかの何れかを削除しなければならない状況が生じる。このことから、取得演奏データ自体が無くなるのを回避できるように、自動演奏装置になかには、ＦＤ（フロッピーディスク）等の外部の記録媒体にアクセスできる装置（記録媒体装置）を搭載して、取得演奏データの記録媒体への書き込みや、それの読み出しを行えるようになっているものがある。
【０００７】
取得演奏データのなかには、他の演奏データと組み合わせて再生するのを指定されたものもある。記録媒体装置を搭載した従来の自動演奏装置では、そのような取得演奏データは他の演奏データとともに記録媒体に保存するようになっていた。しかし、他の演奏データは、取得演奏データだけではない。自動演奏装置に予め用意（プリセット）された演奏データである可能性もある。取得演奏データをプリセットの演奏データとともに記録媒体に記録させた場合、それを読み出したときには、ＲＯＭ等に格納することでプリセットされている演奏データを単にメモリに書き込んだ形（コピーした形）となる。このため、メモリの容量を浪費するという問題点があった。
【０００８】
メモリの容量の浪費は、保存（再生）可能な取得演奏データの数を実質的に減少させる形で表面化する。このため、取得演奏データの記録媒体への保存やそれからの読み出しはより頻繁に行わなければならなくなる。このようなことから、時間の浪費や利便性の低下も招くことになる。
【０００９】
本発明の課題は、メモリの容量の浪費を回避して、メモリに保存できる演奏データ数の実質的な減少を防止する自動演奏装置を提供することにある。
【００１０】
【課題を解決するための手段】
本発明の自動演奏装置は、組み合わせられた複数の演奏データを再生することによって自動演奏を行うことができることを前提とし、新たな演奏データを取得するためのデータ取得手段と、外部記録媒体にデータを記録させるデータ記録手段と、データ取得手段により取得された演奏データと組み合わせて再生させる他の演奏データを指定するための組み合わせ指定手段と、組み合わせ指定手段により他の演奏データが指定されているデータ取得手段により取得された演奏データを、データ記録手段により外部記録媒体に記録させる場合に、組み合わせ指定手段により指定された他の演奏データがデータ取得手段により取得された演奏データであったときは、該他の演奏データを併せて外部記録媒体に記録させるよう制御し、一方、組み合わせ指定手段により指定された他の演奏データが自動演奏装置内に予め固定的に記憶されている演奏データであったときは、該他の演奏データの記憶位置を示す識別情報を併せて外部記録媒体に記録させるよう制御する記録制御手段と、を具備する。
【００１１】
なお、上記自動演奏装置は、外部記録媒体に記録されたデータを読み出すデータ読出手段と、データ読出手段により読み出された演奏データに併せて記録されているデータが識別情報であったときには、該識別情報に基づいて他の演奏データを特定するデータ特定手段と、データ読出手段により読み出された演奏データと、該演奏データに組み合わされている他の演奏データとを再生することによって自動演奏を行う自動演奏手段と、を更に具備することが望ましい。
【００１３】
本発明のデータ記録方法は、他のデータと組み合わせて自動再生されるデータを記録媒体に記録するために用いられることが前提であり、新たなデータを取得し、該新たなデータと組み合わせて自動再生させる他のデータを指定させ、該他のデータが指定された新たなデータを記録媒体に記録させる場合に、該他のデータが当該新たなデータとは別に新たに取得されたデータであったときは、該他のデータを併せて前記記録媒体に記録させ、一方、該他のデータが予め用意されていたデータであったときは、該他のデータを示す識別情報を併せて記録媒体に記録させる。
【００１５】
本発明の記録媒体は、新たな演奏データを取得するためのデータ取得処理と、外部記録媒体にデータを記録させるデータ記録処理と、データ取得処理により取得された演奏データと組み合わせて再生させる他の演奏データを指定するための組み合わせ指定処理と、組み合わせ指定処理により他の演奏データが指定されているデータ取得処理により取得された演奏データを、データ記録処理により外部記録媒体に記録させる場合に、組み合わせ指定処理により指定された他の演奏データがデータ取得処理により取得された演奏データであったときは、該他の演奏データを併せて外部記録媒体に記録させるよう制御し、一方、組み合わせ指定処理により指定された他の演奏データがデータ取得処理により取得された演奏データでなかったときは、該他の演奏データを示す識別情報を併せて外部記録媒体に記録させるよう制御する記録制御処理と、をコンピュータが読み取り実行可能なプログラムを記録している。
【００１７】
本発明では、他の演奏データと組み合わされた、新たに取得した演奏データを外部記録媒体に記録させる場合、該他の演奏データが内部記憶媒体などに予め用意されていた演奏データであったときには、該他の演奏データが記録されている位置などを示す識別情報を併せて記録させる。
【００１８】
このように、編集作業などによって新たに取得した演奏データは無条件で外部記録媒体に保存することで、それは外部記録媒体から随時、取り込むことが可能となる。よって、それを取得するために再び編集したり一から作成するといった時間のかかる作業は不要となる。また、識別情報を外部記録媒体に保存すると、それを基にして演奏データを探し出すことが可能となるので、必ずしも保存する必要のないデータの保存は行わなくても済むようになる。これらのことから、演奏データを他の演奏データと組み合わせて再生するのを可能としつつ、外部記録媒体に保存させるデータを必要最小限に抑えられるようになる。自動演奏装置にとっては、外部記録媒体から必ずしも必要としないデータ（既に装置内に存在するデータ）を取り込むのを回避させられるようになって、演奏データの格納用に用意したメモリをより有効利用することが可能となる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
＜第１の実施の形態＞
図１は第１の実施の形態による自動演奏装置の回路構成を示す図である。
【００２０】
その自動演奏装置は、図１に示すように、装置全体の制御を行うＣＰＵ１０１と、プログラムや演奏データ、及び各種制御データを格納したＲＯＭ１０２と、ＣＰＵ１０１がワーク用に使用するＲＡＭ１０３と、各種スイッチ、及びそれらの操作状態を検出する制御回路からなるスイッチ群１０４と、ＣＰＵ１０１の指示に従って音を放音するサウンドシステム１０５と、ＰＣカード、或いはＦＤ（フロッピー・ディスク）等の外部メモリ１１０にアクセスするＩ／Ｏ１０６と、ＣＰＵ１０１から送られた画像データを表示する表示器１０７と、を備えて構成されている。
【００２１】
図２は、スイッチ群１０４を構成する各種スイッチ、及び表示器１０７の配置を説明する図である。
表示器１０７は、例えばＬＣＤ（Liquid Crystal Display）であり、筐体を構成するカバーの開口に画面がはめ込まれた形で設けられている。その表示器１０７の周りに、電源のオン／オフやモード指定を行うための電源／モードスイッチ２０１、自動演奏のスタート／ストップを指示するためのスタート／ストップスイッチ２０２、上下左右の４つのスイッチからなるカーソルスイッチ２０３、及び各種入力や指定に用いられる値入力キー群（例えばテンキー）２０４が図２に示すように配置されている。スタート／ストップスイッチ２０２の近傍には、ユーザに自動演奏中か否かをユーザに通知するための表示ランプ（例えばＬＥＤ（Light Emitting Diode）２０５が配置されている。
【００２２】
以上の構成において、その動作を説明する。
ユーザが電源／モードスイッチ２０１のつまみをオフからノーマル、或いはエディットの位置に移動させて電源を投入させると、ＣＰＵ１０１はＲＯＭ１０２に格納されたプログラムを読み出して実行することにより、装置全体の制御を開始する。その後は、ＲＡＭ１０３を作業用に使用しながら、スイッチ群１０４から受け取った操作情報に応じて各部の制御を行う。
【００２３】
スイッチ群１０４の制御回路は、図２に示す各種スイッチを含め、スイッチ群１０４を構成するスイッチの操作状態（つまみの位置等）、或いは操作の有無を検出し、その検出結果を操作情報としてＣＰＵ１０１に送る。
【００２４】
ＣＰＵ１０１は、電源が投入されると、その投入の際に指定されたモードに応じた画面を表示器１０７に表示させる。それ以降は、スイッチ群１０４から受け取った操作情報に応じて表示内容を変更させる。その操作情報は、それを受け取った時点で表示器１０７に表示させている内容を考慮して解析する。設定や、表示器１０７の表示内容の変更などは、その解析結果に応じて行う。
【００２５】
なお、上記設定の変更は、例えばＲＡＭ１０３に保持させた変数の値を書き換え、必要に応じて、サウンドシステム１０５にコマンドを送出したり、或いは表示器１０７の表示内容を変更（画面の切り換えを含む）することで行う。表示器１０７の表示内容の変更は、例えば、表示させるべき画像データをＲＯＭ１０２から読み出し、その表示位置や表示状態を考慮しつつ、ＲＡＭ１０３を使用して１画面分の画像データを生成し、その生成した画像データを表示器１０７に送出することで行われる。
【００２６】
スイッチ群１０４から操作情報を受け取ることにより、ＣＰＵ１０１は、以下のような動作を行う。電源／モードスイッチ２０１により、ユーザはノーマルモード、或いはエディットモードを設定することができる。このことから、モード別に分けて説明する。
【００２７】
先ず、ノーマルモード設定時における動作について説明する。そのノーマルモードは、自動演奏の実行用に設けたモードである。
ユーザが電源／モードスイッチ２０１を操作してこのモードを設定すると、ＣＰＵ１０１は、表示器１０７にこのモード用の画面を表示させる。その画面は、例えば自動演奏に関わる各種設定項目やそれの現在の設定内容等が配置されたものである。設定項目としては、曲（リズムを含む）やテンポの他に、全体のなかで発音させないパート（チャンネル）を指定するためのものなどがある。
【００２８】
画面に配置された設定項目のなかで内容が変更可能な設定項目は、例えば反転表示させている。ＣＰＵ１０１は、反転表示させた設定項目を、図２のカーソルスイッチ２０３のなかで操作されたスイッチに応じて切り換える。例えば上スイッチが操作されたのであれば、それまで反転表示させていた設定項目を通常表示に戻し、それの上方に位置している設定項目を新たに反転表示させる。カーソルスイッチ２０３を操作して選択した設定項目の内容は、値入力キー群２０４への操作に応じて変更する。このようなことから、ユーザはカーソルスイッチ２０３や値入力キー群２０４を操作することによって、自動演奏に関わる各種設定を行えるようになっている。
【００２９】
ユーザが図２のスタート／ストップスイッチ２０２を操作すると、ＣＰＵ１０１は、表示器１０７に表示させている内容で自動演奏を開始する。その自動演奏は、ユーザが指定した曲に対応する演奏データを再生することで行われる。その演奏データは、基本的には、演奏上のイベントの内容を表すイベントデータ、及び、そのイベントデータを処理すべきタイミングを指定する時間データからなるデータ対が処理順序に従って並べられた形で編成されている。このことから、その再生は、データを読み出すアドレスを順次、変更しながら、時間データに従ってイベントデータを処理していくことで行われる。
【００３０】
その処理によって、サウンドシステム１０５にはＣＰＵ１０１からサウンドの発音に関わるコマンド（以降、発音コマンドと呼ぶ）が送られる。サウンドシステム１０５がその発音コマンドを処理することでサウンドが放音される。なお、そのサウンドシステム１０５は、例えば音源ＬＳＩ、Ｄ／Ａコンバータ、アンプ、及びスピーカから構成されたものである。そのサウンドシステム１０５の換わり、或いは、それ以外に、ＭＩＤＩ端子等のイベントデータを外部に出力するための手段を設けても良い。
【００３１】
図３は、上記ＲＯＭ１０２に格納された演奏データ（伴奏用の演奏データ）の構成を説明する図である。伴奏用の演奏データ（以降、パターンデータと呼ぶ）は、メロディを含む演奏用の演奏データとは異なり、繰り返し再生することが前提である。
【００３２】
そのパターンデータは、パート別、及び用途別に用意されている。図３中のコードパターンデータは、和音伴奏を行うためのものであり、それ以外の演奏を再生するためのパターンデータはリズムパターンセットデータとしてまとめられている。イントロ部分の演奏を行うためのイントロパターンデータ、通常（定常）のドラム演奏などを行うためのノーマルパターンデータ、一時的に演奏を装飾するためのフィルインパターンデータ、及び演奏の最後に再生されるエンディングパターンデータなどはリズムパターンセットデータとしてまとめられている。
【００３３】
コードパターンデータは、そのヘッダ部分に、それを再生するうえで必要な設定内容が格納されている。音色を指定するパラメータなどはそこに格納されている。それに続く「リズムパターンセット指定」が示されているセット指定エリアには、そのコードパターンデータと組み合わせて再生するリズムパターンセットデータを示すデータ（以降、便宜的にセット指定データと呼ぶ）が格納されている。実際の演奏内容を表すイベントデータは、そのセット指定エリア以降に格納されている。
【００３４】
図３中、２つの「：」で区切られた３つの数字は、イベントデータに付加された時間データの内容を表している。左から、小節、拍数、拍内の位置を表している。例えば「１：１：０」は、１小節目の１拍目の先頭が、付加されたイベントデータの処理タイミングであることを表している。「Ｃ」や「Ｆ７」、及び「Ｂ」などはイベントデータで指定された発音させるべきコード種を表している。
【００３５】
一方、「ノーマル１」や「フィルイン１」は、再生を開始すべきパターンデータを表している。「ノーマル１」はノーマルパターンデータ１、「フィルイン１」はフィルインパターンデータ１を表している。このようにして、本実施の形態では、コードパターンデータを、それと組み合わせて再生させる他のパターンデータ、及びそれを再生する手順の指定用としている。このことから、以降は、主にパターンデータに注目して説明することにする。
【００３６】
なお、演奏データの組み合わせや再生手順の指定方法は、これに限定されるものではない。どれか一つのパターンデータをそれらの指定用に用いるのではなく、それらの指定内容を別に格納しておくようにしても良い。
【００３７】
コードパターンデータによって再生開始が指定されるパターンデータでは、時間管理はコードパターンデータによって指定された再生開始タイミングを基準に行うようになっている。例えばノーマルパターンデータ１における「＋０：０：０」は、コードパターンデータによって指定された再生開始タイミングから０小節目の０拍の先頭、即ちその再生開始タイミングがイベントデータの処理タイミングであることを表している。このため、「ハイハット」や「バスドラム」はその再生開始タイミングで鳴ることになる。
【００３８】
ユーザが何らかのコードパターンデータを指定して自動演奏の開始を指示した場合、ＣＰＵ１０１は、それのセット指定データからそれと組み合わされているリズムパターンセットデータを特定し、そのセットデータ中のイントロパターンデータの再生を開始する。表示ランプ２０５は点灯させて、自動演奏中であることをユーザに対して通知する。コードパターンデータの再生は、イントロパターンデータの再生が終了した後に開始する。以降は、コードパターンデータ中で再生が指示された他のパターンデータの再生を随時、コードパターンデータの再生と並行して行う。
【００３９】
コードパターンデータの区切り（終わり）を示すデータ（以降、エンドデータと呼ぶ）まで処理を進めると、再び先頭に戻って処理を行う。それにより、ＣＰＵ１０１は、ユーザがスタート／ストップスイッチ２０２を操作して自動演奏の終了を指示するまでの間、コードパターンデータやそのなかで再生が指定された他のパターンデータの再生を繰り返し行う。
【００４０】
そのスタート／ストップスイッチ２０２が操作されると、ＣＰＵ１０１は、コードパターンデータ、それによって再生中の他のパターンデータの再生を終了させる。その終了に続ける形でエンディングパターンデータの再生を開始する。そのパターンデータの再生が終了した後、表示ランプ２０５を消灯させる。それにより、自動演奏が終了したことをユーザに通知する。
【００４１】
セットデータを構成する演奏データは、上記の手順で再生するために、例えば基本的に再生順に並べるか、或いは種類別（ここではイントロパターンデータ、リズムパターンデータ、フィルインパターンデータ、及びエンディングパターンデータなど）にまとめている。それにより、セットデータを構成する演奏データのなかで再生すべき演奏データを特定できるようにしている。なお、各演奏データ毎に識別用のデータを持たせるようにしても良い。
【００４２】
次に、エディットモード設定時における動作について説明する。そのエディットモードは、演奏データの編集などをユーザが行えるようにするために設けたモードである。
【００４３】
ユーザが電源／モードスイッチ２０１を操作してこのモードを設定すると、ＣＰＵ１０１は、表示器１０７にこのモード用の画面を表示させる。その画面は、例えば演奏データの編集に関わる各種選択項目等が配置されたものである。選択項目としては、イベントデータや時間データの入力に関わる項目（挿入や削除、移動等の項目を含む）、音色やテンポといった演奏データ全体に関わる設定を行うための項目、演奏データの読み出し（取り込み）先や保存先を指定するための項目、などがある。
【００４４】
画面に配置された選択項目のなかで選択されている項目は、例えば反転表示させている。ＣＰＵ１０１は、反転表示させた選択項目の機能を、例えば値入力キー群２０４を構成する所定のスイッチが操作されることで有効とし、その機能による操作を、値入力キー群２０４を構成する他のスイッチ、或いはカーソルスイッチ２０３への操作に応じて行う。表示器１０７の表示内容は、必要に応じて随時、変更させる。それにより、表示器１０７を介して提供すべき情報を提供しつつ、演奏データの作成・編集、演奏データの取り込みや保存をユーザの指示に従って行う。
【００４５】
ＲＯＭ１０２に格納されたコードパターンデータやリズムパターンセットデータは、それぞれ、互いに異なる番号が割り当てられたエリアに格納されている。そのエリアはＲＡＭ１０３にも設けられている。本実施の形態では、図４に示すように、ＲＯＭ１０２には０００〜０９９の番号が割り当てられたエリアを設け、ＲＡＭ１０３には１００〜１０９の番号が割り当てられたエリアを設けている。その番号は、演奏データが格納されたエリアを指定するだけでなく、再生する演奏データの指定にも用いられる。
【００４６】
ＲＡＭ１０３に設けられたエリアは、演奏データの保存用、或いは既に外部メモリ１１０に存在する演奏データの読み出し（取り込み）用として用いられる。ＲＯＭ１０２に格納された演奏データは、ＲＡＭ１０３のエリアに読み出させた後に編集することができる。実際の編集は、ＲＡＭ１０３に設けた作業用のエリアで行われる。
【００４７】
なお、外部メモリ１１０に格納された演奏データの読み出しは、ＣＰＵ１０１が、Ｉ／Ｏ１０６にそれが格納されているファイルの読み出しを指示し、それによってＩ／Ｏ１０６から送られてきたデータをＲＡＭ１０３の空きエリアに書き込むことで行われる。
【００４８】
作成・編集した演奏データは、ＲＡＭ１０３のエリアだけでなく、外部メモリ１１０に保存させることができる。ユーザが保存先として外部メモリ１１０を指定すると、ＣＰＵ１０１はＩ／Ｏ１０６に、データの書き込みを指示するコマンド、及び保存が指示された演奏データを送る。それにより、ユーザが保存を指示した演奏データを外部メモリ１１０にファイルの形で保存させる。
【００４９】
作成・編集の対象がコードパターンデータであった場合、ユーザが別に作成・編集したリズムパターンセットデータだけでなく、ＲＯＭ１０２に格納されているリズムパターンセットデータと組み合わせることができる。ＲＯＭ１０２に格納されているリズムパターンセットデータをユーザが作成・編集のコードパターンデータ（以降、新規コードパターンデータ、或いはエディットデータと呼ぶ）とともに外部メモリ１１０に保存すると、それらの読み出し先として必要なエリアが不要に多くなる。ＲＯＭ１０２のセットデータを書き込むエリアが必要となって、ＲＡＭ１０３の容量を浪費することになる。その浪費は以下のようにして回避させている。
【００５０】
図５は、新規の演奏データ（コードパターンデータ）を外部に保存させる場合のデータ構成例を説明する図である。同図（ａ）は他に新規の演奏データ（ここではリズムパターンセットデータ）がある場合、同図（ｂ）はそれがない場合、言い換えれば新規コードパターンデータがＲＯＭ１０２のセットデータと組み合わせられている場合の構成例である。
【００５１】
上述したように、コードパターンデータと組み合わせて再生させるリズムパターンセットデータは、それのセット指定エリア（図３中で「リズムパターンセット指定」が記述されているエリア）で指定するようになっている。ＣＰＵ１０１は、新規コードパターンデータの保存が指示されると、例えばそのエリアのデータを読み出し、それにユーザ用のエリアである１００〜１０９の間の番号（図４参照）が格納されている場合に、新規のリズムパターンセットデータと組み合わされていると判定する。それにより、新規のリズムパターンセットデータと組み合わされていると判定すると、それらを１ファイルにまとめて外部メモリ１１０に格納する。
【００５２】
そのセットデータは、外部メモリ１１０から読み出された際に、ＲＡＭ１０３のどのエリアに格納されるのかを予め知ることはできない。このため、セット指定エリアには、セット指定データとして、同一ファイルにまとめた、新規のセットデータと組み合わされている旨を示すデータを書き込む。図５（ａ）中の「ｓｅｌｆ」は、その旨を示すデータが書き込まれていることを表している。
【００５３】
一方、セット指定エリアのデータから新規ではないＲＯＭ１０２に格納のリズムパターンセットデータと組み合わされていると判定すると、ＣＰＵ１０１は、図５（ｂ）に示すように、新規コードパターンデータのみをそのまま外部メモリ１１０に格納する。それにより、外部メモリ１１０に必ずしも格納させる必要のないデータを格納しないようにしている。
【００５４】
上述したようにして外部メモリ１１０にファイル（データ）を格納することから、それの読み出しは以下のようにして行われる。
図５（ａ）中「ｓｅｌｆ」で表すデータがリズム指定エリアに格納されたファイル（データ）の読み出しをユーザが指示すると、ＣＰＵ１０１は、そのセット指定エリアのデータから同一ファイルにコードパターンデータ、及びリズムパターンセットデータが格納されていると判定する。その判定結果に従い、それらのデータを分けてＲＡＭ１０３の異なるエリアに書き込む。コードパターンデータ中のセット指定エリアには、リズムパターンセットデータを書き込んだエリアの番号を書き込む。それにより、組み合わせ（有機的な結びつき）を維持させつつ、それらのデータのエリアへの格納を行う。なお、本実施の形態では、ＲＡＭ１０３の空きエリアを探してデータを格納するようになっている。
【００５５】
これに対し、図５（ｂ）に示すように何らかの番号がリズム指定アリアに格納されたファイル（データ）の読み出しをユーザが指示すると、ＣＰＵ１０１は、そのセット指定エリアの番号からファイルにコードパターンデータのみが格納されていると判定する。その判定結果に従い、そのデータをＲＡＭ１０３の空きエリアに書き込む。それにより、組み合わせを維持させつつ、コードパターンデータのエリアへの格納が行われたことになる。
【００５６】
上述したようにして新規の演奏データの外部メモリ１１０への格納、及びそれからの読み出し（取り込み）を行うことで、ＲＯＭ１０２に格納されているデータをＲＡＭ１０３に格納するといったことを確実に回避させることができる。ＲＡＭ１０３には必要な演奏データのみを格納させることになって、それに保存できる演奏データ数の実質的な減少は常に防止されることになる。このことから、その演奏データ数の実質的な減少によって生じる時間の浪費や利便性の低下も常に回避されることになる。
【００５７】
次に、上記ＣＰＵ１０１の制御動作について、図６〜図１３に示す動作フローチャートを参照して詳細に説明する。
図６は、全体処理の動作フローチャートである。始めに図６を参照して、全体処理について詳細に説明する。なお、この処理は、ＣＰＵ１０１がＲＯＭ１０２に格納されているプログラムを読み出して実行することで実現される。
【００５８】
先ず、ステップ６０１では、装置を予め定められた状態に設定するイニシャライズ処理を実行する。この処理を実行することにより、各種変数には初期値が代入される。自動演奏中か否かを管理するための変数ＢＦにはそれを行っていないことを示す０が代入される。
【００５９】
ステップ６０１に続くステップ６０２では、自動演奏の実行、或いはユーザが演奏データの作成・編集を行うための自動演奏処理を実行する。それが終了した後、その他の処理を実行する。それを実行した後、上記ステップ６０２に戻る。その他の処理を実行することにより、表示器１０７の表示内容の変更やサウンドシステム１０５の制御、スイッチ群１０４の制御回路から操作情報の取得、それを解析しての各種変数の内容の書き換えといったことが行われる。
【００６０】
図７は、上記自動演奏処理の動作フローチャートである。次に、図７を参照して、自動演奏処理について詳細に説明する。
先ず、ステップ７０１では、上記その他の処理の実行結果（対応する変数の値）を参照して、電源／モードスイッチ２０１のつまみの位置を判定する。そのスイッチ２０１のつまみの位置がノーマルであった場合、その旨が判定されてステップ７０２に移行し、ノーマル処理を実行した後、一連の処理を終了する。スイッチ２０１のつまみの位置がエディットであった場合には、その旨が判定されてステップ７０３に移行し、エディット処理を実行した後、一連の処理を終了する。
【００６１】
上記ノーマル処理は、自動演奏を実現させるために実行される処理である。次に、そのノーマル処理について、図８に示すその動作フローチャートを参照して詳細に説明する。
【００６２】
先ず、ステップ８０１では、直前に実行した図６のステップ６０３のその他の処理によって取得した操作情報を基に、ユーザの指示に従って再生の対象とする演奏データを選択することを含め自動演奏に関わる設定内容の変更を行う演奏データ選択処理を実行する。この処理を実行することにより、カーソルスイッチ２０３や値入力キー群２０４に対するユーザの操作に応じて設定内容が変更されることになる。
【００６３】
ステップ８０１に続くステップ８０２では、スタート／ストップスイッチ２０２が操作されたか否か判定する。ユーザがそのスイッチ２０２を操作した場合、判定はＹＥＳとなってステップ８０３に移行し、変数ＢＦの値を反転、その値が０であれば１に、或いはその値が１であれば０に変更させた後、ステップ８０４に移行する。ユーザがスイッチ２０２を操作していない場合には、判定はＮＯとなり、そのステップ８０４に移行する。
【００６４】
ステップ８０４では、変数ＢＦの値が１か否か判定する。ユーザがスイッチ２０２を操作して自動演奏の開始を指示するか、或いは既に自動演奏を実行していた場合、判定はＹＥＳとなり、ステップ８０５で再生対象とする演奏データを読み出して処理する読出処理を実行した後、一連の処理を終了する。そうでない場合には、即ちユーザがスイッチ２０２を操作して自動演奏の終了を指示するか、或いは自動演奏を実行していない場合には、判定はＮＯとなり、ステップ８０６でそのような状況に対処するための停止処理を実行した後、一連の処理を終了する。
【００６５】
次に、上記ノーマル処理内で実行されるサブルーチン処理について、図９、及び図１０を参照して詳細に説明する。
図９は、上記ステップ８０５として実行される読出処理の動作フローチャートである。始めに図９を参照して、読出処理について詳細に説明する。ノーマル処理からは、変数ＩＦ、及びＥＦが引数として渡される。なお、変数ＩＦは、自動演奏の実行時に、イントロパターンデータの再生を行うべき状況か否かを判定するための変数であり、他方の変数ＥＦは、エンディングパターンデータの再生を行うべき状況か否かを判定するための変数である。
【００６６】
先ず、ステップ９０１では、変数ＩＦの値が１か否か判定する。ユーザがスタート／ストップスイッチ２０２を操作して自動演奏の開始を指示したか、或いはイントロパターンデータの再生が終了していない場合、判定はＹＥＳとなってステップ９０２に移行し、そうでない場合には、判定はＮＯとなってステップ９０５に移行する。
【００６７】
ステップ９０２では、イントロパターンデータからイベントデータを読み出し、それを時間データで指定されたタイミングで処理するためのイントロパターン読出処理を実行する。処理タイミングとなったイベントデータが存在していた場合、それを実行することにより、ＲＡＭ１０３に設けたバッファにサウンドシステム１０５に送出すべきコマンドが格納される。そのバッファに格納されたコマンドは、図６のステップ６０３のその他の処理の実行時にサウンドシステム１０５に送出される。
【００６８】
ステップ９０２に続くステップ９０３では、イントロパターンデータを構成するイベントデータを全て読み出して処理が終了したか否か判定する。そのパターンデータの再生が終了した場合、判定はＹＥＳとなってステップ９０４に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００６９】
ステップ９０４では、イントロパターンデータの再生が終了したことから、変数ＩＦに０を代入し、変数ＥＦには１を代入する。それにより、ユーザが自動演奏の終了を指示した場合に備える。ステップ９０５には、その後に移行する。
【００７０】
ステップ９０５に移行したということは、イントロパターンデータの再生が終了したか、或いはコードパターンデータの再生を行っていることを意味する。このことから、ステップ９０５では、コードパターンデータからイベントデータを読み出し、それを時間データで指定されたタイミングで処理するためのコードパターン読出処理を実行する。処理タイミングとなったイベントデータが存在していた場合、それを実行することにより、上記ステップ９０２のイントロパターン読出処理の実行時と同様に、ＲＡＭ１０３に設けたバッファにサウンドシステム１０５に送出すべきコマンドが格納されることになる。その処理を実行した後、一連の処理を終了する。
【００７１】
図１０は、上記ステップ８０６として実行される停止処理の動作フローチャートである。次に図１０を参照して、停止処理について詳細に説明する。ノーマル処理からは、上記変数ＩＦ、及びＥＦが引数として渡される。
【００７２】
先ず、ステップ１００１では、変数ＥＦの値が１か否か判定する。ユーザがスタート／ストップスイッチ２０２を操作して自動演奏の終了を指示したか、或いはエンディングパターンデータの再生が終了していない場合、判定はＹＥＳとなってステップ１００２に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７３】
ステップ１００２では、エンディングパターンデータからイベントデータを読み出し、それを時間データで指定されたタイミングで処理するためのエンディングパターン読出処理を実行する。処理タイミングとなったイベントデータが存在していた場合、それを実行することにより、ＲＡＭ１０３に設けたバッファにサウンドシステム１０５に送出すべきコマンドが格納される。そのバッファに格納されたコマンドは、図６のステップ６０３のその他の処理の実行時にサウンドシステム１０５に送出される。
【００７４】
ステップ１００２に続くステップ１００３では、エンディングパターンデータを構成するイベントデータを全て読み出して処理が終了したか否か判定する。そのパターンデータの再生が終了した場合、判定はＹＥＳとなってステップ１００４に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７５】
ステップ１００４では、エンディングパターンデータの再生が終了したことから、変数ＥＦに０を代入し、変数ＩＦには１を代入する。それにより、ユーザが自動演奏の開始を再び指示した場合に備える。それら変数への代入を行った後、一連の処理を終了する。
【００７６】
上述したサブルーチン処理を有するノーマル処理を実行することにより、自動演奏の開始をユーザが指示すると、イントロパターンデータ→コードパターンデータ（そのなかで再生が指示されている他のパターンデータを含む）→エンディングパターンデータ（ユーザが自動演奏の終了を指示することで再生を開始する）、という順序で再生されることになる。
【００７７】
図１１は、図７のステップ７０３として実行されるエディット処理の動作フローチャートである。次に、図１１を参照して、エディット処理について詳細に説明する。
【００７８】
先ず、ステップ１１０１では、直前に実行した図６のステップ６０３のその他の処理によって取得した操作情報を基に、ユーザの指示に従って演奏データの修正（編集）・作成する自動演奏データ修正・作成処理を実行する。この処理を実行することにより、カーソルスイッチ２０３や値入力キー群２０４に対するユーザの操作に応じてイベントデータや時間データの入力、変更、削除、移動、或いはコピーといったことが行われることになる。既に存在している演奏データの編集をユーザが指示した場合には、その演奏データをＲＡＭ１０３の作業用エリアに読み出すことが行われる。
【００７９】
ステップ１１０１に続くステップ１１０２では、ステップ１１０１の修正・作成処理を実行することで修正（編集）・作成された演奏データを保存する保存処理を実行する。その後に移行するステップ１１０３では、外部メモリ１１０から演奏データを取り込む取込処理を実行する。それが終了した後、一連の処理が終了する。
【００８０】
以降は、上記エディット処理内で実行されるサブルーチン処理について、図１２，及び図１３を参照して詳細に説明する。
図１２は、上記ステップ１１０２として実行される保存処理の動作フローチャートである。始めに、図１２を参照して、保存処理について詳細に説明する。なお、特に詳細な説明は省略するが、修正（編集）・作成した演奏データの保存は、例えばカーソルスイッチ２０３，及び値入力キー群２０４を操作して、それの保存を指示することで行うようになっている。その指示内容は、図６におけるステップ６０３のその他の処理を実行したときに保持される。保存処理は、その保持された指示内容に応じて行われる。
【００８１】
先ず、ステップ１２０１では、保存が指示されたか否か判定する。ユーザが保存の指示を行った場合、判定はＹＥＳとなってステップ１２０２に移行する。そうでない場合には、即ち保存が指示されていない（演奏データの修正（編集）・作成を継続していることを意味する）場合には、判定はＮＯとなって一連の処理を終了する。
【００８２】
ステップ１２０２では、ユーザが保存を指示した演奏データの種類を判定する。修正（編集）・作成のためにＲＡＭ１０３の作業エリアに格納されている演奏データ（エディットデータ）がコードパターンデータであった場合、その旨が判定されてステップ１２０４に移行する。そうでない場合には、その旨が判定されてステップ１２０３に移行する。なお、演奏データがコードパターンデータか否かは、例えばそのイベントデータから判定することができる。
【００８３】
上記したように、コードパターンデータ以外の演奏データは、コードパターンデータと組み合わせて再生するのを前提としている。コードパターンデータを外部メモリ１１０に保存する際に、それと同一ファイルにまとめて保存させる。このことから、ステップ１２０３では、コードパターンデータではないエディットデータをＲＡＭ１０３に設けた演奏データ保存用のエリアのなかで空いているエリアに格納する。ＲＡＭ１０３に設けたエリアに格納されているデータをユーザが編集していた場合には、それが格納されていたエリアに保存している。その後、一連の処理を終了する。
【００８４】
上記ステップ１２０２でコードパターンデータと判定すると、ＣＰＵ１０１は、例えば表示器１０７に保存先の指定を促すメッセージを表示させ、ユーザにその指定を行わせる。その指定は、例えば内部（ＲＡＭ１０３）か否かをカーソルスイッチ２０３、或いは／及び、値入力キー群２０４を操作して選択することで行うようになっている。ステップ１２０４では、その操作によりユーザが指定した保存先を判定する。ユーザが内部を選択した場合、その旨が判定されてステップ１２０３に移行し、エディットデータであるコードパターンデータをＲＡＭ１０３の空きエリアに格納した後、一連の処理を終了する。そうでない場合には、即ちユーザが保存先として外部（外部メモリ１１０）を選択した場合には、その旨が判定されてステップ１２０５に移行する。
【００８５】
ステップ１２０５では、エディットデータであるコートパターンデータのセット指定エリアに格納されたデータの値、即ち、それと組み合わせて再生させるリズムパターンセットデータが格納されたエリアの番号を判定する。その番号が０００〜０９９の間の番号、即ちＲＯＭ１０２に設けられたエリアの番号であった場合、その旨が判定されてステップ１２０９に移行する。そうでない場合には、即ちＲＡＭに設けられたエリアに割り当てられた１００〜１０９の間の番号であった場合には、その旨が判定されてステップ１２０６に移行する。
【００８６】
ステップ１２０６では、セット指定エリアに格納のデータによって指定されたエリアのセットデータを読み出し先として選択する。続くステップ１２０７では、そのセット指定エリアのデータを「ｓｅｌｆ」に書き替える。その書き替えを行った後は、ステップ１２０８に移行し、保存が指示されたコードパターンデータ（エディットデータ）、及びステップ１２０６で選択した演奏データ（リズムパターンセットデータ）を１ファイルにまとめてＩ／Ｏ１０６に送り、外部メモリ１１０に格納させる。それにより、外部メモリ１１０には図５（ａ）に示すようなデータ構成のファイルが格納されることになる。それが終了した後、一連の処理を終了する。
【００８７】
ステップ１２０９には、エディットデータであるコートパターンデータのセット指定エリアに格納されたデータの値が０００〜０９９の間とステップ１２０５で判定された場合に移行する。これは、そのコードパターンデータがＲＯＭ１０２に格納されたリズムパターンセットデータと組み合わせられていることを意味する。このことから、ステップ１２０９では、そのコードパターンデータのみをＩ／Ｏ１０６に送って外部メモリ１１０に格納させる。それにより、外部メモリ１１０には図５（ｂ）に示すようなデータ構成のファイルが格納されることになる。それが終了した後、一連の処理を終了する。
【００８８】
上記保存処理を実行することにより、外部メモリ１１０には最小限、保存させるべき演奏データのみが保存されることになる。このため、外部メモリ１１０をより有効に使用することができる。なお、外部メモリ１１０に保存するデータのファイル名については、それを自動的に付与しても良く、或いはユーザに入力させても良い。
【００８９】
次に、上記ステップ１１０３として実行される取込処理について、図１３に示すその動作フローチャートを参照して詳細に説明する。この取込処理は、上述の保存処理を実行することで外部メモリ１１０に保存された演奏データを取り込んでＲＡＭ１０３に設けたエリアに格納するための処理である。
【００９０】
先ず、ステップ１３０１では、ユーザが外部メモリ１１０を演奏データの取込先として指定することに対応して、取り込む演奏データをユーザに選択させる取込データ選択処理を実行する。その処理を実行することにより、ユーザが取込先として外部メモリ１１０を指定した場合には、ＣＰＵ１０１はＩ／Ｏ１０６に外部メモリ１１０にアクセスさせることにより、それに保存されているファイルの一覧を表示器１０７に表示させ、その一覧から読み出すファイルをユーザに選択させる。なお、特に詳細な説明は省略するが、演奏データの取り込みに関わる指定は、カーソルスイッチ２０３、或いは／及び、値入力キー群２０４を操作して行うようになっている。
【００９１】
ステップ１３０１に続くステップ１３０２では、読み出すべきファイルを選択してその読み出しをユーザが指示したか否か判定する。ユーザが取込先として外部メモリ１１０を指定していないか、或いは、選択したファイルの読み込みを指示していない場合、判定はＮＯとなって一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ１３０３に移行する。
【００９２】
ステップ１３０３では、外部メモリ１１０で読み込みが指示されたファイルのデータをＩ／Ｏ１０６に読み出させて受け取り（一旦、ＲＡＭ１０３の作業用のエリアに格納する）、それのセット指定エリアに格納されたデータの値を判定する。その値が０００〜０９９の間であった場合、即ちユーザが取り込みを指示したコードパターンデータがＲＯＭ１０２に格納されているリズムパターンセットデータと組み合わされている場合、その旨が判定されてステップ１３０４に移行し、そのパターンデータをＲＡＭ１０３の空きエリアに格納した後、一連の処理を終了する。そうでない場合には、即ちセット指定エリアに「ｓｅｌｆ」で示すデータが格納されていた場合には、その旨が判定されてステップ１３０５に移行する。
【００９３】
ステップ１３０５に移行したことは、コードパターンデータとリズムパターンセットデータとがまとめられたファイルの読み出しをユーザが指示したことを意味する。ステップ１３０５以降では、そのようなファイルのデータの読み出しに対応するための処理が行われる。
【００９４】
先ず、ステップ１３０５では、ファイル内でコードパターンデータに続けて格納されているリズムパターンセットデータをＲＡＭ１０３の空きエリアに格納する。続くステップ１３０６では、そのコードパターンデータのセット指定エリアのデータを「ｓｅｌｆ」からリズムパターンセットデータを格納したエリアの番号に書き換える。次に、ステップ１３０７に移行して、コードパターンデータをＲＡＭ１０３の空きエリアに格納する。そのようにして、ファイルにまとめられたコードパターンデータ、及びリズムパターンセットデータをＲＡＭ１０３の異なるエリアに格納した後、一連の処理を終了する。
【００９５】
上述したようにして、セット指定エリアのデータを書き換えることにより、コードパターンデータとリズムパターンセットデータとの組み合わせ（有機的な結びつき）は維持される。このため、外部メモリ１１０から取り込んだ演奏データは、ＲＯＭ１０２に予め格納されている演奏データと同様に再生することができる。
＜第２の実施の形態＞
上記第１の実施の形態では、新規コードパターンデータ、及び組み合わせて再生させる新規のリズムパターンセットデータを同一ファイルにまとめて外部メモリ１１０に保存させている。これに対し、第２の実施の形態は、それらのデータを別々のファイルで保存させるようにしたものである。
【００９６】
第２の実施の形態による自動演奏装置の構成は、第１の実施の形態のそれ（図１等参照）と基本的に同じである。このため、第２の実施の形態の説明は、第１の実施の形態で付した符号をそのまま用いて行うこととする。
【００９７】
周知のように、ファイルとしてデータを格納する場合、ファイル名が付けられる。拡張子が異なれば、同一のファイル名を付けることができる。第２の実施の形態は、そのことを利用してデータを保存するようにしたものである。ここでは、ファイル名は組み合わせを認識するために利用している。なお、第１の実施の形態でも同様であるが、ファイル名、或いは／及び、拡張子はユーザに入力させても良く、それを自動的に付けるようにしても良い。
【００９８】
外部メモリ１１０にデータを保存させる形が異なるために、ＣＰＵ１０１の動作については、図１１のエディット処理内で実行されるステップ１１０２の保存処理、及びステップ１１０３の取込処理が第１の実施の形態から大きく異なる。このことから、以降、それらのサブルーチン処理についてのみ説明する。
【００９９】
図１４は、第２の実施の形態における保存処理の動作フローチャートである。始めに、図１４を参照して、その保存処理について詳細に説明する。
先ず、ステップ１４０１では、保存が指示されたか否か判定する。ユーザが保存の指示を行った場合、判定はＹＥＳとなってステップ１４０２に移行する。そうでない場合には、即ち保存が指示されていない（演奏データの修正（編集）・作成を継続していることを意味する）場合には、判定はＮＯとなって一連の処理を終了する。
【０１００】
ステップ１４０２では、ユーザが保存を指示した演奏データの種類を判定する。修正（編集）・作成のためにＲＡＭ１０３の作業エリアに格納されている演奏データ（エディットデータ）がコードパターンデータであった場合、その旨が判定されてステップ１４０４に移行する。そうでない場合には、その旨が判定されてステップ１４０３に移行する。なお、演奏データがコードパターンデータか否かは、例えばそのイベントデータから判定することができる。
【０１０１】
ステップ１４０３では、コードパターンデータではないエディットデータをＲＡＭ１０３に設けた演奏データ保存用のエリアのなかで空いているエリアに格納する。ＲＡＭ１０３に設けたエリア（１００〜１０９の間の番号が割り当てられたエリア）に格納されているデータをユーザが編集していた場合には、それが格納されていたエリアに保存している。その後、一連の処理を終了する。
【０１０２】
上記ステップ１４０２でコードパターンデータと判定すると、ＣＰＵ１０１は、例えば表示器１０７に保存先の指定を促すメッセージを表示させ、ユーザにその指定を行わせる。その指定は、例えば内部（ＲＡＭ１０３）か否かをカーソルスイッチ２０３、或いは／及び、値入力キー群２０４を操作して選択することで行うようになっている。ステップ１４０４では、その操作によりユーザが指定した保存先を判定する。ユーザが内部を選択した場合、その旨が判定されてステップ１４０３に移行し、エディットデータであるコードパターンデータをＲＡＭ１０３の空きエリアに格納した後、一連の処理を終了する。そうでない場合には、即ちユーザが保存先として外部（外部メモリ１１０）を選択した場合には、その旨が判定されてステップ１４０５に移行する。
【０１０３】
ステップ１４０５では、エディットデータであるコートパターンデータのセット指定エリアに格納されたデータの値、即ち、それと組み合わせて再生させるリズムパターンセットデータが格納されたエリアの番号を判定する。その番号が０００〜０９９の間の番号、即ちＲＯＭ１０２に設けられたエリアの番号であった場合、その旨が判定されてステップ１４０９に移行する。そうでない場合には、即ちＲＡＭに設けられたエリアに割り当てられている１００〜１０９の間の番号であった場合には、その旨が判定されてステップ１４０６に移行する。
【０１０４】
ステップ１４０６では、保存が指示されたコードパターンデータ（エディットデータ）のセット指定エリアに格納のデータによって指定されたエリアのセットデータを読み出し先として選択する。続くステップ１４０７では、そのコードパターンデータ（エディットデータ）に所定のファイル名と拡張子を付与してＩ／Ｏ１０６に送り、外部メモリ１１０に書き込ませる。次に、ステップ１４０８に移行して、ステップ１４０６で選択した演奏データ（リズムパターンセットデータ）に同ファイル名と異なる拡張子を付与してＩ／Ｏ１０６に送り、外部メモリ１１０に書き込ませる。その後、一連の処理を終了する。
【０１０５】
なお、上記ファイル名、或いは／及び、拡張子は、ユーザに入力させても良く、自動的に付与するようにしても良い。拡張子については、その種類を限定したり、或いは変更の規則を決めておくことにより、それに格納されているデータの種類を認識するために用いても良い。
【０１０６】
ステップ１４０９には、エディットデータであるコートパターンデータのセット指定エリアに格納されたデータの値が０００〜０９９の間とステップ１４０５で判定された場合に移行する。これは、そのコードパターンデータがＲＯＭ１０２に格納されたリズムパターンセットデータと組み合わせられていることを意味する。このことから、ステップ１４０９では、そのコードパターンデータのみをＩ／Ｏ１０６に送って外部メモリ１１０に格納させる。その後、一連の処理を終了する。
【０１０７】
上記保存処理を実行することにより、外部メモリ１１０には最小限、保存させるべき演奏データのみが保存されることになる。このため、第１の実施の形態と同様に、外部メモリ１１０をより有効に使用することができる。
【０１０８】
次に、第２の実施の形態による取込処理について、図１５に示すその動作フローチャートを参照して詳細に説明する。この取込処理は、図１１のエディット処理内でステップ１１０３として実行される。
【０１０９】
先ず、ステップ１５０１では、ユーザが外部メモリ１１０を演奏データの取込先として指定することに対応して、取り込む演奏データ（ファイル）をユーザに選択させる取込データ選択処理を実行する。その処理を実行することにより、ユーザが取込先として外部メモリ１１０を指定した場合には、ＣＰＵ１０１はＩ／Ｏ１０６に外部メモリ１１０にアクセスさせることにより、それに保存されているファイルの一覧を表示器１０７に表示させ、その一覧から読み出すファイルをユーザに選択させる。なお、特に詳細な説明は省略するが、演奏データの取り込みに関わる指定は、カーソルスイッチ２０３、或いは／及び、値入力キー群２０４を操作して行うようになっている。
【０１１０】
ステップ１５０１に続くステップ１５０２では、読み出すべきファイルを選択してその読み出しをユーザが指示したか否か判定する。ユーザが取込先として外部メモリ１１０を指定していないか、或いは、選択したファイルの読み込みを指示していない場合、判定はＮＯとなって一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ１５０３に移行する。
【０１１１】
ステップ１５０３では、読み込みが指示されたファイルのファイル名と同じファイルが外部メモリ１１０に格納されているか否か判定する。そのファイルと同じ名前のファイルが他に格納されていた場合、判定はＹＥＳとなってステップ１５０５に移行する。そうでない場合には、判定はＮＯとなってステップ１５０４に移行し、ユーザが指定したファイルをＩ／Ｏ１０６に読み出させて受け取り（一旦、ＲＡＭ１０３の作業用のエリアに格納する）、それをＲＡＭ１０３の空きエリアに格納した後、一連の処理を終了する。
【０１１２】
ステップ１５０５では、同じ名前のファイルを全てＩ／Ｏ１０６に読み出させて受け取り（一旦、ＲＡＭ１０３の作業用のエリアに格納する）、ファイルの内容を参照してコードパターンデータを特定し、そのパターンデータ中のセット指定エリアに格納されたデータの値に対応するＲＡＭ１０３のエリアが空いているか否か判定する。そのコードパターンデータを保存する際にそれと組み合わせて再生されるリズムパターンセットデータが格納されていたＲＡＭ１０３のエリアが空いていた場合、判定はＹＥＳとなってステップ１５０８に移行する。そうでない場合には、判定はＮＯとなってステップ１５０６に移行する。
【０１１３】
ステップ１５０６に移行したことは、セット指定エリアのデータの値に対応するＲＡＭ１０３のエリアが既に使われていることによって、そのデータを書き替える必要が生じたことを意味する。このことから、ステップ１５０６、及び１５０７では、そのことに対応するための処理が行われる。
【０１１４】
先ず、ステップ１５０６では、同一の名前のファイルに格納されていたリズムパターンセットデータをＲＡＭ１０３の空きエリアに格納する。続くステップ１５０７では、ステップ１５０６でリズムパターンセットデータを格納したエリアの番号にセット指定エリアのデータを書き替えて、コードパターンデータをＲＡＭ１０３の空きエリアに格納する。その後、一連の処理を終了する。
【０１１５】
他方のステップ１５０８に移行したことは、セット指定エリアのデータを書き替えなくとも良いことを意味する。このことから、ステップ１５０８では、セット指定エリアに書き込まれた番号が割り当てられたＲＡＭ１０３のエリアにリズムパターンセットデータを格納し、コードパターンデータはＲＡＭ１０３の空きエリアに格納する。
【０１１６】
このようにして、ＲＡＭ１０３に設けたエリアの使用状況に応じてコードパターンデータのセット指定エリアのデータを書き替えることにより、コードパターンデータとリズムパターンセットデータとの組み合わせを維持させている。
【０１１７】
上述したようにして、コードパターンデータとリズムパターンセットデータとを別のファイルにして保存させても、第１の実施の形態と同様に、ＲＡＭ１０３の容量の浪費を回避することができる。セット指定エリアのデータは、保存時には書き替える必要がなくなり、取込時には必要に応じて書き替えれば良いことになる。それにより、その指定エリアのデータに関わる処理はより簡素化できることになる。
【０１１８】
なお、本実施の形態（第１及び第２の実施の形態）では、基本的に、コードパターンデータとそれ以外の演奏データとに区別して扱っているが、そのような区別を設けなくとも良い。演奏データ毎に扱ってもよく、イントロ用、フィルイン用といった用途別に扱っても良い。このことから、同じファイル名を付けて演奏データを保存する場合には、必要に応じてファイル数を増減させるようにしても良い。
【０１１９】
その演奏データについては、本実施の形態では伴奏用の演奏データに注目しているが、これは伴奏用の演奏データは組み合わせて再生することが多いからである。演奏データの組み合わせについては、メロディ用の演奏データを複数、組み合わせても良く、メロディ用と伴奏用の演奏データを組み合わせても良い。組み合わせの対象とする演奏データの種類は限定されるものではない。その組み合わせや再生の手順を指定するデータは、特定の演奏データに格納させるのではなく、別に格納させても良い。再生の手順については、それを固定とすることもできる。
【０１２０】
演奏データの外部メモリ１１０への格納（保存）については、本実施の形態では、新規コードパターンデータを外部メモリ１１０に保存する場合、それと組み合わせて再生するリズムパターンセットデータがＲＯＭ１０２に格納されていればそのセットデータを保存しないようにしている。それにより、外部メモリ１１０から取り込む必要のあるデータを保存時に選別している。しかし、セット指定エリアのデータから取り込む必要があるか否か判定することができる。このことから、保存時には組み合わせて再生させるデータを共に外部メモリ１１０に保存し、取込時には、セット指定エリアのデータから取り込む必要のないデータ（リズムパターンセットデータ）か否か判定して、その必要のないデータを廃棄するようにしても良い。
【０１２１】
リズムパターンセットデータについては、複数のコードパターンデータに同一のものを組み合わせることも考えられる。このことから、セットデータを中心にして、それと組み合わせられたコードパターンデータを保存するようにしても良い。例えば、それらを同一のファイルにまとめて保存しても良く、或いは拡張子を異ならせた同じ名前のファイルとして保存しても良い。前者を採用する場合、不要なデータによってＲＡＭ１０３のエリアを無駄にしないように、取込の際には必要とするデータをユーザに選択させるようにすることが望ましい。後者を採用する場合には、データを読み出す必要のないファイルを識別できるように、拡張子によってファイルに格納されているデータの種類を識別できるようにすることが望ましい。
【０１２２】
外部メモリ１１０から読み出したデータは、ＲＡＭ１０３の空きエリアに格納するようにしているが、その空きエリアが常に存在しているとは限らない。このことから、データを格納するエリアをユーザに指定させるようにしても良い。その場合、空きエリアが存在していなかったときにのみ、データを格納するエリアをユーザに指定させても良い。
【０１２３】
本実施の形態では既にＲＯＭ１０２、或いは外部メモリ１１０に存在している演奏データを編集するか、或いは演奏データを新たに作成することで新規の演奏データを取得するようになっているが、その新規の演奏データは、ＭＩＤＩ端子等の外部装置と通信を行う手段によって取得しても良い。
【０１２４】
本実施の形態は、専用の自動演奏装置に本発明を適用させたものであるが、本発明を適用できる自動演奏装置はそれに限定されるものではない。外部記録媒体にデータを書き込む機能、及びそれからデータを読み出す機能のうちの何れかを備えた自動演奏装置に本発明は幅広く適用させることができる。
【０１２５】
上記自動演奏装置の動作、或いはその変形例の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、フロッピーディスク、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等の通信回線を用いて、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得して任意の自動演奏装置、或いは情報処理装置にロードすることにより、その装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【０１２６】
【発明の効果】
以上、説明したように本発明は、他の演奏データと組み合わされた、新たに取得した演奏データを外部記録媒体に記録させる場合、該他の演奏データが内部記憶媒体などに予め用意されていた演奏データであったときには、該他の演奏データが記録されている位置などを示す識別情報を併せて記録させる。
【０１２７】
このように、編集作業などによって新たに取得した演奏データは無条件で外部記録媒体に保存することで、それは外部記録媒体から随時、迅速に取り込むことができる。また、識別情報を外部記録媒体に保存すると、それを基にして演奏データを探し出すことができるため、必ずしも保存する必要のないデータの保存は回避できる。これらのことから、外部記録媒体に保存させるデータを必要最小限に抑えることができる。自動演奏装置にとっては、外部記録媒体から必ずしも必要としないデータを取り込むのを回避できるため、演奏データの格納用に用意したメモリの利用効率の低下を防ぐことができる。
【図面の簡単な説明】
【図１】第１の実施の形態による自動演奏装置の回路構成を示す図である。
【図２】スイッチ群を構成する各種スイッチ、及び表示器の配置を説明する図である。
【図３】ＲＯＭに格納された演奏データの構成を説明する図である。
【図４】演奏データの格納エリアに割り当てられた番号を説明する図である。
【図５】新規の演奏データを外部に保存させる場合のデータ構成例を説明する図である。
【図６】全体処理の動作フローチャートである。
【図７】自動演奏処理の動作フローチャートである。
【図８】ノーマル処理の動作フローチャートである。
【図９】読出処理の動作フローチャートである。
【図１０】停止処理の動作フローチャートである。
【図１１】エディット処理の動作フローチャートである。
【図１２】保存処理の動作フローチャートである。
【図１３】取込処理の動作フローチャートである。
【図１４】保存処理の動作フローチャートである（第２の実施の形態）。
【図１５】取込処理の動作フローチャートである（第２の実施の形態）。
【符号の説明】
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    スイッチ群
１０５    サウンドシステム
１０６    Ｉ／Ｏ
１０７    表示器
１１０    外部メモリ
２０１    電源／モードスイッチ
２０２    スタート／ストップスイッチ
２０３    カーソルスイッチ
２０４    値入力キー群
【図１】
0003711440.tif 000002
【図２】
0003711440.tif 000003
【図３】
0003711440.tif 000004
【図４】
0003711440.tif 000005
【図５】
0003711440.tif 000006
【図６】
0003711440.tif 000007
【図７】
0003711440.tif 000008
【図８】
0003711440.tif 000009
【図９】
0003711440.tif 000010
【図１０】
0003711440.tif 000011
【図１１】
0003711440.tif 000012
【図１２】
0003711440.tif 000013
【図１３】
0003711440.tif 000014
【図１４】
0003711440.tif 000015
【図１５】
0003711440.tif 000016