(57)【要約】【課題】  自動演奏データを制作した制作者の意図しない変化が施されて演奏されることのないようにする。【解決手段】  自動演奏データに自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報を記憶し、該自動演奏データに基づき、変更内容を指定する変更データに基づいて自動演奏データの内容を変更する又はしない範囲を判定する。変更データに基づいて自動演奏データの内容を変更する一方で、自動演奏データの内容を変更しないと判定された範囲については変更データによる変更指定にも関わらず自動演奏データの内容を変更しないで自動演奏を行う。このようにすると、既に所望の音楽的表現などを意図して制作されている自動演奏データの全て又は一部箇所に対して変更をかけられないようにすることができ、したがって、制作者が意図したとおりの音楽的表現を実現する演奏を行うことができるようになる。【選択図】        図６
2006091804.tif 000002
【特許請求の範囲】
【請求項１】
変更内容を指定する変更データに基づいて自動演奏データの内容を変更しながら自動演奏を行うことが可能な自動演奏装置であって、
自動演奏データに基づき、その内容を変更する又はしない範囲を判定する判定手段と、
前記変更データに基づいて自動演奏データの内容を変更する一方で、前記自動演奏データの内容を変更しないと判定された範囲については前記変更データによる変更指定にも関わらず自動演奏データの内容を変更しないで自動演奏を行う演奏手段と
を具えた自動演奏装置。
【請求項２】
前記自動演奏データは、自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報を記憶することを特徴とする請求項１に記載の自動演奏装置。
【請求項３】
ユーザ操作に応じて、前記自動演奏データに対しその内容を変更する又はしない範囲を記録する制御手段を具えたことを特徴とする請求項１又は２に記載の自動演奏装置。
【請求項４】
自動演奏を繰り返し、該繰り返される自動演奏を元にして自動演奏データを生成することが可能な自動演奏装置であって、
変更内容を指定する変更データに基づき、自動演奏データの内容を変更しながら自動演奏を行うか否かを設定する設定手段と、
前記変更データに基づき自動演奏データの内容を変更しながらの自動演奏が既に行われたか否かを判定する判定手段と、
未だ自動演奏データの内容を変更しながらの自動演奏が行われていない場合には前記設定に応じて自動演奏データの内容を変更しながら自動演奏を行う一方で、既に自動演奏データの内容を変更しながらの自動演奏が行われていた場合には自動演奏データの内容を変更することなく自動演奏を行う演奏手段と、
少なくとも前記内容が変更された自動演奏データを繰り返し自動演奏する対象として記憶する記憶手段と
を具えた自動演奏装置。
【請求項５】
自動演奏を繰り返し、該繰り返される自動演奏を元にして自動演奏データを生成することが可能な自動演奏装置であって、
変更内容を指定する変更データに基づき、自動演奏データの内容を変更しながら自動演奏を行うか否かを設定する設定手段と、
自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報に基づき、その内容を変更する又はしない範囲を判定する判定手段と、
前記設定に応じて前記自動演奏データの内容を変更すると判定した範囲については前記変更データに基づいて自動演奏データの内容を変更しながら自動演奏を行う一方で、前記自動演奏データの内容を変更しないと判定した範囲については自動演奏データの内容を変更することなく自動演奏を行う演奏手段と、
少なくとも前記内容が変更された自動演奏データを繰り返し自動演奏する対象として記憶する記憶手段と
を具えた自動演奏装置。
【請求項６】
演奏操作子を具えてなり、
前記記憶手段は、ユーザ操作された前記演奏操作子に応じて発生される楽音に関するデータを前記自動演奏データと共に記憶することを特徴とする請求項４又は５に記載の自動演奏装置。
【請求項７】
コンピュータに、
自動演奏データに基づき、その内容を変更する又はしない範囲を判定する手順と、
変更内容を指定する変更データに基づいて自動演奏データの内容を変更する一方で、前記自動演奏データの内容を変更しないと判定された範囲については前記変更データによる変更指定にも関わらず自動演奏データの内容を変更しないで自動演奏を行う手順と
を実行させるためのプログラム。
【請求項８】
コンピュータに、
変更内容を指定する変更データに基づき、自動演奏データの内容を変更しながら自動演奏を行うか否かを設定する手順と、
前記変更データに基づき自動演奏データの内容を変更しながらの自動演奏が既に行われたか否かを判定する手順と、
未だ自動演奏データの内容を変更しながらの自動演奏が行われていない場合には前記設定に応じて自動演奏データの内容を変更しながら自動演奏を行う一方で、既に自動演奏データの内容を変更しながらの自動演奏が行われていた場合には自動演奏データの内容を変更することなく自動演奏を行う手順と、
少なくとも前記内容が変更された自動演奏データを繰り返し自動演奏する対象として記憶する手順と
を実行させるためのプログラム。
【請求項９】
コンピュータに、
変更内容を指定する変更データに基づき、自動演奏データの内容を変更しながら自動演奏を行うか否かを設定する手順と、
自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報に基づき、その内容を変更する又はしない範囲を判定する手順と、
前記設定に応じて前記自動演奏データの内容を変更すると判定した範囲については前記変更データに基づいて自動演奏データの内容を変更しながら自動演奏を行う一方で、前記自動演奏データの内容を変更しないと判定した範囲については自動演奏データの内容を変更することなく自動演奏を行う手順と、
少なくとも前記内容が変更された自動演奏データを繰り返し自動演奏する対象として記憶する手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動演奏中に自動演奏データに対し所望の変化を与え、元の自動演奏データとは雰囲気の異なる自動演奏を行うことが可能な自動演奏装置及びプログラムに関する。特に、自動演奏データを制作した制作者の意図しない変化が施されて演奏されることのないようにできるようにした自動演奏装置及びプログラムに関する。
【背景技術】
【０００２】
従来から、所定の自動演奏データに基づき自動演奏を行うシーケンサ等の自動演奏装置が知られている。こうした自動演奏装置の１例としては、例えば下記に示す特許文献１に記載の装置がある。この特許文献１に開示されている従来の自動演奏装置は、所謂プレイエフェクト機能（あるいはスイング機能やグルーブ機能とも呼ぶ）と称する、記憶されている元の自動演奏データを破壊することなく、自動演奏時に該自動演奏データに含まれる各種パラメータ（例えばノートオンタイミング、ベロシティ、ゲートタイムなど）の値を所定のプレイエフェクトデータ（変更データ）に従い適宜に変更しながら自動演奏を行うことによって、元の自動演奏データをそのまま自動演奏した場合とは雰囲気の異なる自動演奏、例えば生演奏のような雰囲気ある感情表現豊かな自動演奏を行うことのできる機能を有している。
【特許文献１】特許2630166号公報
【０００３】
また、最近では、自動演奏データに基づく自動演奏を繰り返し、該繰り返される自動演奏にあわせて行われたユーザ操作に応じて発生される楽音を追加録音するようにして自動演奏データを生成することのできるようにした、所謂ループ録音方式やオーバーダブ録音方式などと呼ばれるデータ生成機能を有する自動演奏装置が公知である。ここで、上記ループ録音方式とは、数小節の伴奏パターンの演奏が繰り返される自動伴奏と同じように、録音（つまり自動演奏データの生成）についてもループ方式がとられるものである。例えば、２小節の自動演奏データの録音をスタートさせると、該２小節の録音が何回も繰り返される（ループ再生される）。一度録音した自動演奏データはその次の「ループ」からすぐに演奏されることになるので、ユーザは耳で録音した自動演奏データをすぐに確認することができる。他方、オーバーダブ録音方式とは、一度録音したパート（チャンネル）に、元のデータを消さずに重ねて録音する方式である。例えば、２小節のメインパートの録音をスタートさせると、この２小節の録音が何回も繰り返される（ループ再生される）。一度録音した自動演奏データは、その次の「ループ」から演奏される。そこで、ユーザはその録音した自動演奏データを耳で確認しながら、さらに重ねて新しいノートデータを録音していくことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、自動演奏データを制作する際に、制作者は例えば拍どおりに正確に再生されることを意図して自動演奏データを制作する場合もあるし、予め各種パラメータを細かく設定して所謂ノリや雰囲気を持たせた自動演奏データを制作する場合もある。しかし、上記したような従来のプレイエフェクト機能を有する自動演奏装置においては、元の自動演奏データを制作した制作者の意図にかかわらず、自動演奏の際には必ず自動演奏データに対してプレイエフェクトをかけるようになっていた。したがって、制作者自身が既に所望の音楽的表現などを意図して各種パラメータを設定済みであるような自動演奏データを使用した場合であっても、該自動演奏データに対してプレイエフェクトがかけられ各種パラメータが変更される結果として、制作者が意図した音楽的表現とはかけ離れた演奏や、音楽として不自然な演奏が行われることが生じる、という問題点があった。また、従来において、例えばプレイエフェクト機能を用いて予め作成しておいた自動演奏データに対して更にプレイエフェクトをかけたような場合には、自動演奏データのプレイエフェクトをかける対象の箇所全てに対し多重にプレイエフェクトがかけられてしまうことから、制作者の意図からより大きくずれた演奏が行われたり、音楽としてより不自然である演奏が行われることが生じてしまうこととなって都合が悪い。
【０００５】
また、上記したループ録音方式又はオーバーダブ録音方式などのような、自動演奏を繰り返しながら自動演奏データを生成するデータ生成機能を有する場合において、単に自動演奏を行うのではなく所定のプレイエフェクトデータ（変更データ）に従いプレイエフェクトをかけながら自動演奏できるようにすると、より多様な自動演奏データを簡単に生成することができ便利である。しかし、自動演奏に対して単にプレイエフェクトをかけるようにしただけでは、自動演奏が繰り返される（ループ再生される）たびにプレイエフェクトがかけられる、つまり多重にプレイエフェクトがかけられてしまうことが生じることから非常に都合が悪い。そこで、こうしたプレイエフェクトが多重にかけられることなく、適宜にプレイエフェクトをかけながらリアルタイムに自動演奏データを生成することのできるようにした、データ生成機能を有する自動演奏装置が従来から望まれていた。
【０００６】
本発明は上述の点に鑑みてなされたもので、既に所望の音楽的表現などを意図して制作されている自動演奏データの全て又は一部箇所に対してプレイエフェクトをかけられないようにすることによって、該自動演奏データの制作者が意図したとおりの音楽的表現を実現する演奏、音楽として自然な演奏を行うことのできるようにした自動演奏装置及びプログラムを提供することを目的とする。
また、ループ録音方式又はオーバーダブ録音方式などの、繰り返される自動演奏にあわせて行われたユーザ操作に応じて発生される楽音を追加録音するようにして自動演奏データを生成するデータ作成機能を有する場合に、所望のループ再生時においてはプレイエフェクトをかけ、それ以降のループ再生時にはプレイエフェクトをかけないようにすることによって、多重にプレイエフェクトがかけられることなくリアルタイムに自動演奏データを作成することのできるようにした自動演奏装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の請求項１に係る自動演奏装置は、変更内容を指定する変更データに基づいて自動演奏データの内容を変更しながら自動演奏を行うことが可能な自動演奏装置であって、自動演奏データに基づき、その内容を変更する又はしない範囲を判定する判定手段と、前記変更データに基づいて自動演奏データの内容を変更する一方で、前記自動演奏データの内容を変更しないと判定された範囲については前記変更データによる変更指定にも関わらず自動演奏データの内容を変更しないで自動演奏を行う演奏手段とを具える。
本発明に係る好ましい実施例として、前記自動演奏データは、自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報を記憶することを特徴とする。
【０００８】
本発明によると、自動演奏データに基づき、変更内容を指定する変更データに基づいて自動演奏データの内容を変更する又はしない範囲を判定する。前記自動演奏データは、自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報を記憶している。演奏手段は、前記変更データに基づいて自動演奏データの内容を変更する一方で、前記自動演奏データの内容を変更しないと判定された範囲については前記変更データによる変更指定にも関わらず自動演奏データの内容を変更しないで自動演奏を行う。このようにすると、変更データに基づいて自動演奏データの内容を変更しながら自動演奏を行う自動演奏装置において、既に所望の音楽的表現などを意図して制作されている自動演奏データの全て又は一部箇所に対して変更をかけられないようにすることができる。したがって、該自動演奏データの制作者が意図したとおりの音楽的表現を実現する演奏、音楽として自然な演奏を行うことができるようになる。
【０００９】
本発明の請求項４に係る自動演奏装置は、自動演奏を繰り返し、該繰り返される自動演奏を元にして自動演奏データを生成することが可能な自動演奏装置であって、変更内容を指定する変更データに基づき、自動演奏データの内容を変更しながら自動演奏を行うか否かを設定する設定手段と、前記変更データに基づき自動演奏データの内容を変更しながらの自動演奏が既に行われたか否かを判定する判定手段と、未だ自動演奏データの内容を変更しながらの自動演奏が行われていない場合には前記設定に応じて自動演奏データの内容を変更しながら自動演奏を行う一方で、既に自動演奏データの内容を変更しながらの自動演奏が行われていた場合には自動演奏データの内容を変更することなく自動演奏を行う演奏手段と、少なくとも前記内容が変更された自動演奏データを繰り返し自動演奏する対象として記憶する記憶手段とを具える。
また、本発明の請求項５に係る自動演奏装置は、自動演奏を繰り返し、該繰り返される自動演奏を元にして自動演奏データを生成することが可能な自動演奏装置であって、変更内容を指定する変更データに基づき、自動演奏データの内容を変更しながら自動演奏を行うか否かを設定する設定手段と、自動演奏データの内容を変更する又はしない範囲を指定する所定の禁止情報に基づき、その内容を変更する又はしない範囲を判定する判定手段と、前記設定に応じて前記自動演奏データの内容を変更すると判定した範囲については前記変更データに基づいて自動演奏データの内容を変更しながら自動演奏を行う一方で、前記自動演奏データの内容を変更しないと判定した範囲については自動演奏データの内容を変更することなく自動演奏を行う演奏手段と、少なくとも前記内容が変更された自動演奏データを繰り返し自動演奏する対象として記憶する記憶手段とを具える。これらによると、自動演奏の繰り返しを伴いながら自動演奏データを生成する際に、プレイエフェクトがかけられた以降のループ再生時にはプレイエフェクトをかけないようにすることから、多重にプレイエフェクトがかけられることを防止し、またより多様な自動演奏データを簡単に生成することができるようになる。
【００１０】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【発明の効果】
【００１１】
本発明によれば、自動演奏データに変更禁止情報を記憶しておき、該変更禁止情報に従って自動演奏データを再生する際にその内容に変更が加えられることを防止することのできるようにしたことから、制作者の意図したとおりの音楽表現で、且つ音楽として自然な演奏を行うことができるようになる、という効果が得られる。
また、ループ録音方式又はオーバーダブ録音方式などの自動演奏を伴いながら自動演奏データを生成する際に、所望のループ再生時にはプレイエフェクトをかけ、それ以降のループ再生時にはプレイエフェクトをかけないようにすることによって、多重にプレイエフェクトがかけられることを防止し、より多様な自動演奏データを簡単に生成することができるようになる、という効果が得られる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
【実施例１】
【００１３】
図１は、この発明に係る自動演奏装置を適用した電子楽器の全体構成を示したハード構成ブロック図である。本実施例に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御される。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してＲＯＭ２、ＲＡＭ３、検出回路４，５、表示回路６、音源回路７、効果回路８、外部記憶装置１０、MIDIインタフェース（Ｉ／Ｆ）１１および通信インタフェース（Ｉ／Ｆ）１２がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。例えば、タイマ１Ａはクロックパルスを発生し、発生したクロックパルスをＣＰＵ１に対して処理タイミング命令として与えたり、あるいはＣＰＵ１に対してインタラプト命令として与える。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００１４】
ＲＯＭ２は、ＣＰＵ１により実行される各種プログラムや各種データを格納するものである。ＲＡＭ３は、ＣＰＵ１が所定のプログラムを実行する際に発生する各種データを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。この実施例においては、例えば自動演奏の再生タイミングにある各種イベントデータに対してプレイエフェクトをかけるか否かを判定するための、自動演奏データを構成する各トラック毎に１つずつ対応するようにして用意されるプレイエフェクト禁止フラグや、自動演奏データ（詳しくは、再生タイミングに達した自動演奏データに含まれる各種イベントデータ）を一時的に保持するための再生バッファなどがある。すなわち、この実施例に示す電子楽器においては、自動演奏データに含まれる元の各種イベントデータが直接再生されることにより自動演奏が行われるのではなく、一旦、ＲＡＭ３上に設けられた再生バッファに再生タイミングに達した各種イベントデータを一時的に保存し、これを再生することにより自動演奏を行うようにしている。この再生バッファにイベントデータを一時保存する際には、前記プレイエフェクト禁止フラグに従い、元のイベントデータに対して各種パラメータ（例えばノートオンタイミング、ベロシティ、ゲートタイムなど）の値を適宜に変更するなどのプレイエフェクトの処理を施すか否かを判定し、該判定に従ってプレイエフェクト処理を実行するようにしている。こうした処理についての詳細な説明は、後述する（図５及び図６参照）。
【００１５】
演奏操作子４Ａは楽音の音高を選択するための複数の鍵を備えた例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子４Ａ（鍵盤等）はユーザによるマニュアル（手弾き）演奏のために使用できるのは勿論のこと、当該電子楽器における自動演奏の演奏環境などを設定するための入力手段として使用することもできる。検出回路４は、演奏操作子４Ａの各鍵の押圧及び離鍵を検出することによって検出出力を生じる。設定操作子（スイッチ等）５Ａは、自動演奏に関する各種情報等を入力するためのスイッチなどである。例えば、自動演奏対象とする自動演奏データを選択する選択スイッチ、後述するデータ生成機能（図８参照）をオン又はオフする録音開始／終了スイッチ、プレイエフェクト機能をオン（プレイエフェクトをかける設定）又はオフ（プレイエフェクトをかけない設定）するプレイエフェクト設定スイッチ、演奏テンポや音色などの自動演奏に用いる各種情報（パラメータ）等を入力するスイッチ（操作子）などである。勿論、これら以外にも、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ６Ａに表示される所定のポインティングデバイスを操作するために用いるマウスなどの各種操作子を含んでいてよい。検出回路５は、上記各スイッチの操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路６は例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ６Ａに、自動演奏可能な自動演奏データの一覧、自動演奏に用いる各種情報の種類や現在の設定状況、あるいはＣＰＵ１の制御状態などを表示する。ユーザは該ディスプレイ６Ａに表示されるこれらの各種情報を参照しながら、自動演奏対象とする自動演奏データや自動演奏に用いる各種情報（パラメータ）の選択、入力、設定などを行うことができる。
【００１６】
音源回路７は複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた、ユーザによる演奏操作子４Ａの操作に応じてあるいは自動演奏データに基づき発生される各種演奏情報を入力し、これらの演奏情報に基づいて楽音信号を発生する。音源回路７から発生された楽音信号は、効果回路８を介して効果付与されてアンプやスピーカなどを含むサウンドシステム９から発音される。効果回路８は複数のエフェクトユニットを含んでおり、各エフェクトユニットは設定された効果パラメータに従い、それぞれ異なった効果を音源回路７からの楽音信号に付与することができる。この音源回路７と効果回路８とサウンドシステム９の構成には、従来のいかなる構成を用いてもよい。例えば、音源回路８はFM、PCM、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、ＣＰＵ１によるソフトウェア処理で構成してもよい。
【００１７】
外部記憶装置１０は、自動演奏データなどの各種データや、ＣＰＵ１が実行する各種制御プログラム等の制御に関するデータなどを記憶するものである。なお、上述したＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置１０（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置１０はハードディスク（HD）に限られず、フレキシブルディスク（FD）、コンパクトディスク（CD‐ROM・CD‐RAM）、光磁気ディスク（MO）、あるいはDVD（Digital Versatile Disk）等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
【００１８】
MIDIインタフェース（Ｉ／Ｆ）１１は、外部接続された他のMIDI機器１１Ａ等からMIDI形式の自動演奏データ（MIDIデータ）を当該電子楽器へ入力したり、あるいは当該電子楽器からMIDI形式の自動演奏データ（MIDIデータ）を他のMIDI機器１１Ａ等へ出力するためのインタフェースである。他のMIDI機器１１Ａはユーザによる操作に応じてMIDIデータを発生する機器であればよく、鍵盤型、弦楽器型、管楽器型、打楽器型、身体装着型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってもよい。なお、MIDIインタフェース１１は専用のMIDIインタフェースを用いるものに限らず、RS-232C、USB（ユニバーサル・シリアル・バス）、IEEE1394（アイトリプルイー1394）等の汎用のインタフェースを用いてMIDIインタフェース１１を構成するようにしてもよい。この場合、MIDIイベントデータ以外のデータをも同時に送受信するようにしてもよい。MIDIインタフェース１１として上記したような汎用のインタフェースを用いる場合には、他のMIDI機器１１ＡはMIDIイベントデータ以外のデータも送受信できるようにしてよい。勿論、自動演奏データのデータフォーマットはMIDI形式のデータに限らず他の形式であってもよく、その場合はMIDIインタフェース１１と他のMIDI機器１１Ａはそれにあった構成とする。
【００１９】
通信インタフェース（Ｉ／Ｆ）１２は、例えばLANやインターネット、電話回線等の有線あるいは無線の通信ネットワークＸに接続されており、該通信ネットワークＸを介してサーバコンピュータ１２Ａと接続され、当該サーバコンピュータ１２Ａから制御プログラムあるいは各種データなどを電子楽器側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置１０（例えば、ハードディスク）等に制御プログラムや各種データが記憶されていない場合には、サーバコンピュータ１２Ａから制御プログラムや各種データをダウンロードするために用いられる。こうした通信インタフェース１２は、有線あるいは無線のものいずれかでなく双方を具えていてよい。
【００２０】
なお、上述した電子楽器において、演奏操作子４Ａは鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、電子楽器は演奏操作子４Ａやディスプレイ６Ａあるいは音源回路７などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。さらに、本発明に係る自動演奏装置を適用する装置としては電子楽器に限らず、パーソナルコンピュータや携帯電話等の携帯型通信端末、あるいはカラオケ装置やゲーム装置など、どのような形態の装置・機器に適用してもよい。携帯型通信端末に適用した場合、端末のみで所定の機能が完結している場合に限らず、機能の一部をサーバ側に持たせ、端末とサーバとからなるシステム全体として所定の機能を実現するようにしてもよい。
【００２１】
ここで、外部記憶装置１０などに予め複数記憶されており、当該電子楽器において自動演奏のために用いられる自動演奏データについて、図を用いて簡単に説明する。図２〜図４は、自動演奏データのデータ構造の一実施例を示す概念図である。一般的に自動演奏のために用いられる自動演奏データとしては、従来知られているように所謂ソングデータ、スタイルデータ、アルペジオデータなどの種類に大きく分けられる。そこで、ここではソングデータ、スタイルデータ、アルペジオデータ毎に図を分けて示し、これらの各図を参照しながら自動演奏データのデータ構造について説明する。なお、図２〜図４に示すソングデータ、スタイルデータ、アルペジオデータには各図で示したデータ以外のデータも含まれていてよいが、本発明を説明する上では必須のものではないため、その説明を省略する。
【００２２】
まず、ソングデータのデータ構造について、図２を用いて説明する。図２はソングデータのデータ構造を示す概念図であり、図２（ａ）は該ソングデータの全てのトラックについて一括してプレイエフェクトがかけられることを禁止するよう設定できるようにした場合のデータ構成であり、図２（ｂ）は該ソングデータの所望のトラック毎に適宜にプレイエフェクトがかけられることを禁止するよう設定できるようにした場合のデータ構成である。
【００２３】
ソングデータは、１つのマスタートラックチャンクデータと、複数のノートシーケンストラックチャンクデータとにより主に構成される（図２の左端図参照）。マスタートラックチャンクデータは自動演奏を行うにあたって予め全てのトラックに対して共通に設定しておく必要のある各種パラメータに関するデータであり、例えば演奏テンポや拍子あるいは各演奏パート毎の音色及び効果の設定等に係るデータである。図２に示すソングデータにおいては、演奏テンポが演奏進行に応じて変化するよう、演奏テンポを表す複数のテンポ指定イベントを演奏進行順に記憶した例を示している。他方、ノートシーケンストラックチャンクデータは自動演奏される楽曲の再生内容を表わす情報であり、トラック１〜トラックＮ（例えば、Ｎは１６など）までの複数のトラック毎に、実際の演奏の元になる各種イベントデータを演奏進行順に記憶したデータである。図２に示すソングデータにおいては、ここに記憶される各種イベントデータとして、楽音の発音を指示するノートオンイベントや楽音の消音を指示するノートオフイベント等の演奏イベントデータを例示している。この演奏イベントデータは、演奏タイミングデータと組み合わされて使用される。本実施例での演奏タイミングデータとは、演奏イベントデータから次の演奏イベントデータまでの時間間隔を示す時間データであるが、これに限らず相対時間あるいは絶対時間等どのようなフォーマットであってもよい。すなわち、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で演奏データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
【００２４】
上記したようなソングデータは、自動演奏時においてプレイエフェクトがかけられて演奏されることを禁止する「プレイエフェクト禁止イベント」を記憶することができる。まず、該ソングデータに含まれる全てのトラックについて一括してプレイエフェクトがかけられることを禁止する場合には、図２（ａ）に示すように、マスタートラックチャンクデータ内にプレイエフェクト禁止イベントを記憶する。この際に、全トラックの全区間にわたって一括してプレイエフェクトがかけられることを禁止する場合、つまり当該ソングデータに対してプレイエフェクトが全くかけられないようにする場合には、マスタートラックチャンクデータの先頭に対して「プレイエフェクト禁止イベント」を１つだけ記憶する（図２（ａ）真中図参照）。一方、該ソングデータに含まれる全てのトラックにおける所望の特定区間についてのみ一括してプレイエフェクトがかけられることを禁止する場合、つまり当該ソングデータに対して一部区間においてプレイエフェクトがかけられないようにする場合には、マスタートラックチャンクデータに対して「プレイエフェクト禁止イベント」及び「プレイエフェクト許可イベント」を１組として、プレイエフェクトがかけられることを禁止したい範囲に該当する１乃至複数のテンポ指定イベントの前後に上記それぞれのイベントを記憶する（図２（ａ）右端図参照）。
【００２５】
一方、ソングデータの所望のトラック毎に適宜にプレイエフェクトがかけられることを禁止する場合には、図２（ｂ）に示すように、該当するノートシーケンストラックチャンクデータにプレイエフェクト禁止イベントを記憶する。この際に、各トラック毎の全区間にわたってプレイエフェクトがかけられることを禁止する場合には、該当するノートシーケンストラックチャンクデータの先頭に対して「プレイエフェクト禁止イベント」を１つだけ記憶する（図２（ｂ）真中図参照）。一方、各トラックにおける所望の特定区間について個々にプレイエフェクトがかけられることを禁止する場合には、該当するノートシーケンストラックチャンクデータに対して「プレイエフェクト禁止イベント」及び「プレイエフェクト許可イベント」を１組として、プレイエフェクトがかけられることを禁止したい範囲に該当する１乃至複数のノートオンイベント（又はノートオフイベント）の前後に上記それぞれのイベントを記憶する（図２（ｂ）右端図参照）。
【００２６】
次に、スタイルデータのデータ構造について、図３を用いて説明する。図３はスタイルデータのデータ構造を示す概念図であり、図３（ａ）は該スタイルデータの全てのトラックについて一括してプレイエフェクトがかけられることを禁止するよう設定できるようにした場合のデータ構成であり、図３（ｂ）は該スタイルデータの所望のトラック毎に適宜にプレイエフェクトがかけられることを禁止するよう設定できるようにした場合のデータ構成である。
【００２７】
図３から理解できるように、この実施例に示すスタイルデータは上記ソングデータと同様に、１つのマスタートラックチャンクデータと、複数のノートシーケンストラックチャンクデータとにより主に構成される。ただし、スタイルデータの所望のトラック毎に適宜にプレイエフェクトがかけられることを禁止する場合には（図３（ｂ）参照）、ソングデータと異なりマスタートラックチャンクデータを有していなくてよい。すなわち、一般的な従来知られたスタイルデータはマスタートラックチャンクデータを有しないが、この実施例においては全トラックの全区間で一括してプレイエフェクトがかけられることを禁止するために、「プレイエフェクト禁止イベント」を記憶する領域としてマスタートラックチャンクデータを設けている。全トラックの全区間にわたって一括してプレイエフェクトがかけられることを禁止する場合には、１つの「プレイエフェクト禁止イベント」のみが前記新たに設けられたマスタートラックチャンクデータ内に記憶される（図３（ａ）真中図参照）。一方、該スタイルデータに含まれる全てのトラックにおける所望の特定区間についてのみ一括してプレイエフェクトがかけられることを禁止する場合には、特定区間毎に対応するように「プレイエフェクト禁止イベント」と「プレイエフェクト許可イベント」の組が１乃至複数記憶される（図３（ａ）右端図参照）。また、スタイルデータの所望のトラック毎に適宜にプレイエフェクトがかけられることを禁止する場合には、図３（ｂ）に示すように、該当するノートシーケンストラックチャンクデータにプレイエフェクト禁止イベントを記憶する。各トラック毎の全区間にわたってプレイエフェクトがかけられることを禁止する場合（図３（ｂ）真中図参照）、各トラックにおける所望の特定区間について個々にプレイエフェクトがかけられることを禁止する場合（図３（ｂ）右端図参照）における各データ構成は上記ソングデータとほぼ同様であることから、ここでの説明を省略する。
【００２８】
次に、アルペジオデータのデータ構造について、図４を用いて説明する。図４は、アルペジオデータのデータ構造を示す概念図である。このアルペジオデータは上記ソングデータやスタイルデータとは異なり、１つのトラック分についての演奏イベントデータ（ノートオンイベントやノートオフイベントなど）により主に構成されている。そこで、アルペジオデータの場合には、全トラック分について一括してプレイエフェクトがかけられることを禁止するように設定することはできず、各トラック毎にプレイエフェクトがかけられることを禁止するように設定することのみができるようになっている。この図４に示すように、当該トラックの全区間でプレイエフェクトがかけられることを禁止する場合には該アルペジオデータの先頭に「プレイエフェクト禁止イベント」を記憶する。他方、当該トラックの特定区間でプレイエフェクトがかけられることを禁止する場合には、特定区間毎に対応するように「プレイエフェクト禁止イベント」と「プレイエフェクト許可イベント」の組を記憶する。このようなデータ構成は、上記ソングデータ又はスタイルデータにおける各トラック毎にプレイエフェクトがかけられることを禁止する場合に示したデータ構成と同じである。
【００２９】
なお、プレイエフェクト禁止情報は、上記指定方法を組み合わせて、トラック毎に時間的な区間を指定するものであってよい。
なお、上述した実施例において、一部区間のみについてプレイエフェクトがかけられることを禁止する場合に「プレイエフェクト禁止イベント」及び「プレイエフェクト許可イベント」を１組のみ記憶した例を示したが（図２（ｂ）右端図又は図３（ｂ）右端図参照）、こうした１組の「プレイエフェクト禁止イベント」及び「プレイエフェクト許可イベント」を複数組記憶することによって、同一のトラックにおいて異なる一部区間でそれぞれプレイエフェクトがかけられることを禁止するように設定できるようにしてよいことは言うまでもない。
なお、プレイエフェクト禁止情報は、自動演奏データに対して、時間的に、始めから終わりまで指定するものであってもよいし、部分的な区間を、１つあるいは複数、指定するものであってもよい。区間指定の例として、何小節目の何拍目から何小節目の何拍目までを禁止するといったような指定の方法が挙げられる。
【００３０】
なお、この実施の形態では、ソングデータ及びスタイルデータは各種イベントデータ（演奏イベントデータなど）を各トラック毎に独立して記憶するようにデータ構成したものを例に説明したがこれに限らず、複数トラック分の各種イベントデータが混在して記憶されているもの、すなわち、各種イベントデータをその割り当てられたトラックにかかわらず、出力順に１列に並べて記憶するようにデータを構成したものであってもよい。そうした際に、所望のトラック毎に適宜にプレイエフェクトがかけられることを禁止する場合には、プレイエフェクト禁止イベント（又はプレイエフェクト許可イベント）と共に、プレイエフェクトがかけられることを禁止する対象となるトラックナンバ等を記憶するようにするとよい。
なお、メモリ上において、時系列の自動演奏データが連続する領域に記憶されていてもよいし、飛び飛びの領域に散在して記憶されている自動演奏データを、連続するデータとして別途管理するようにしてもよい。すなわち、時系列的に連続する自動演奏データとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題ではない。
【００３１】
本発明に係る自動演奏装置を適用した電子楽器は、ユーザ所望の自動演奏データに基づく自動演奏中に、所望の変化を与えながら当該自動演奏データの再生を行うことによって（つまり、プレイエフェクトをかけながらの演奏を行うことによって）、元の自動演奏データを単に再生した場合の演奏とは雰囲気の異なる演奏を行うことが可能である、所謂プレイエフェクト機能を有する。そこで、こうしたプレイエフェクト機能を実現する処理動作について説明する。
【００３２】
まず、マスタートラックチャンクデータに基づく「マスタートラックの再生処理」について、図５を用いて説明する。図５は、「マスタートラックの再生処理」の一実施例を示すフローチャートである。当該処理は、演奏テンポに応じた所定周期毎（例えば、四分音符あたり９６回）に実行される。以下、図５に示したフローチャートに従って、当該処理の動作を説明する。
【００３３】
ステップＳ１では、元の自動演奏データのマスタートラックチャンクデータ内に、再生タイミングに達したイベントがあるか否かを判定する。再生タイミングに達したイベントがない場合には（ステップＳ１のＮＯ）、当該処理を修了する。再生タイミングに達したイベントがある場合には（ステップＳ１のＹＥＳ）、当該イベントがプレイエフェクト禁止イベントであるか否か（ステップＳ２）、当該イベントがプレイエフェクト許可イベントであるか否か（ステップＳ５）をそれぞれ判定し、これらの再生タイミングに達したイベントの種類に応じて以下に示すような処理を実行する。当該イベントがプレイエフェクト禁止イベントである場合（ステップＳ２のＹＥＳ）には、全トラック分についてプレイエフェクト禁止フラグを立てると共に（ステップＳ３）、プレイエフェクトをかけることが禁止されている旨を表示するようにディスプレイ６Ａの表示を更新する（ステップＳ４）。他方、当該イベントがプレイエフェクト許可イベントである場合には（ステップＳ５のＹＥＳ）、全トラック分についてプレイエフェクト禁止フラグを下ろすと共に（ステップＳ６）、プレイエフェクトを許可する旨を表示するようにディスプレイ６Ａの表示を更新する（ステップＳ７）。すなわち、ここでは予めＲＡＭ３上にトラック毎に用意されている全てのプレイエフェクト禁止フラグに対して、再生タイミングに達したイベントの種類がプレイエフェクト禁止イベントである場合には例えば「１」（又は「０」）を、再生タイミングに達したイベントの種類がプレイエフェクト許可イベントである場合には例えば「０」（又は「１」）を設定する。当該イベントが上記以外のイベント、例えばテンポ指定イベントなどである場合には（ステップＳ２及びステップＳ５が共にＮＯ）、当該イベントに従い演奏テンポの設定など、通常のイベント処理を行う（ステップＳ８）。ただし、元の自動演奏データがスタイルデータである場合には、マスタートラックチャンクデータ内にプレイエフェクト禁止イベント又はプレイエフェクト許可イベント以外のイベントが記憶されていることがないので、こうした通常のイベント処理が実行されることはない。
【００３４】
次に、ノートシーケンストラックチャンクデータに基づく「ノートシーケンストラックの再生処理」について、図６を用いて説明する。図６は、「ノートシーケンストラックの再生処理」の一実施例を示すフローチャートである。当該処理は上記した「マスタートラックの再生処理」とあわせて並行動作される処理であって、演奏テンポに応じた所定周期毎（例えば、四分音符あたり９６回）に、各トラック毎に対応する処理がそれぞれ実行される。
【００３５】
ステップＳ１１では、元の自動演奏データのノートシーケンストラックチャンクデータ内に、再生タイミングに達したイベントがあるか否かを判定する。再生タイミングに達したイベントがある場合には（ステップＳ１１のＹＥＳ）、当該イベントがプレイエフェクト禁止イベントであるか否か（ステップＳ１４）、当該イベントがプレイエフェクト許可イベントであるか否か（ステップＳ１７）をそれぞれ判定し、これらの再生タイミングに達したイベントの種類に応じて以下に示すような処理を実行する。当該イベントがプレイエフェクト禁止イベントである場合（ステップＳ１４のＹＥＳ）には、プレイエフェクト禁止フラグを立てると共に（ステップＳ１５）、プレイエフェクトをかけることが禁止されている旨を表示するようにディスプレイ６Ａの表示を更新する（ステップＳ１６）。他方、当該イベントがプレイエフェクト許可イベントである場合には（ステップＳ１７のＹＥＳ）、プレイエフェクト禁止フラグを下ろすと共に（ステップＳ１８）、プレイエフェクトを許可する旨を表示するようにディスプレイ６Ａの表示を更新する（ステップＳ１９）。
【００３６】
当該イベントが上記以外のイベント、例えば演奏イベント（ノートオンイベントやノートオフイベント）などである場合には（ステップＳ１４及びステップＳ１７が共にＮＯ）、パネル設定はプレイエフェクトＯＮか否かを判定する（ステップＳ２０）。すなわち、ユーザが設定操作子５Ａ等を用いプレイエフェクトをかけるよう機器設定済み（プレイエフェクトＯＮ）であるか否かを判定する。パネル設定がプレイエフェクトＯＮでなくプレイエフェクトをかけないよう機器設定されている場合には（ステップＳ２０のＮＯ）、ステップＳ２４の処理へジャンプする。パネル設定がプレイエフェクトＯＮでありプレイエフェクトをかけるよう機器設定されている場合には（ステップＳ２０のＹＥＳ）、プレイエフェクト禁止フラグが立っているか否かを判定する（ステップＳ２１）。プレイエフェクト禁止フラグが立っていないと判定した場合には（ステップＳ２１のＮＯ）、ステップＳ２３の処理へジャンプする。一方、プレイエフェクト禁止フラグが立っていると判定した場合には（ステップＳ２１のＹＥＳ）、プレイエフェクト禁止を無視する設定がなされているか否かを判定する（ステップＳ２２）。プレイエフェクト禁止を無視する設定がなされていない場合には（ステップＳ２２のＮＯ）、ステップＳ２４の処理へジャンプする。プレイエフェクト禁止を無視する設定がなされている場合には（ステップＳ２２のＹＥＳ）、当該イベントに対してプレイエフェクトをかける（ステップＳ２３）。すなわち、当該電子楽器では単純にプレイエフェクト禁止情報に従うのではなく、従うか無視するかをユーザに設定させる機能を有していてよい。上記のように、例えばプレイエフェクト禁止情報を無視するようにユーザが設定していたような場合には、自動演奏データにプレイエフェクト禁止情報が含まれていても、これを無視してプレイエフェクトをかけることができる。イベントに対してプレイエフェクトをかける方法としては、予め用意された変更内容を指定する変更データに基づき元の自動演奏データの内容を変更することでプレイエフェクトをかける。こうした方法は公知であることから、ここでの説明を省略する。ステップＳ２４では、プレイエフェクトがかけられたあるいはプレイエフェクトがかけられていない、プレイエフェクト禁止イベント及びプレイエフェクト許可イベント以外の全てのイベントを再生バッファに入れる。
【００３７】
上記ステップＳ１１において、元の自動演奏データのノートシーケンストラックチャンクデータ内に、再生タイミングに達したイベントがない場合には（ステップＳ１１のＮＯ）、上記ステップＳ２３で処理した再生バッファ内に再生タイミングに達したイベントがあるか否かを判定する（ステップＳ１２）。再生バッファ内に再生タイミングに達したイベントがない場合には（ステップＳ１２のＮＯ）、当該処理を終了する。この場合、自動演奏は行われない。一方、再生バッファ内に再生タイミングに達したイベントがある場合には（ステップＳ１２のＹＥＳ）、音源回路７を用いて楽音を発音させるなど、イベントに応じた処理を実行する（ステップＳ１３）。すなわち、再生バッファからイベントを読み出して発音を行う発音処理を行い、自動演奏を実行する。ここで実行される自動演奏は、元の自動演奏データにプレイエフェクト禁止イベントが全く記憶されていない場合にはプレイエフェクトがかけられた演奏となるし、元の自動演奏データにプレイエフェクト禁止イベントが記憶されている場合には対応する箇所（全て又は一部区間）についてはプレイエフェクトがかけられていない演奏となる。なお、元の自動演奏データがスタイルデータやアルペジオデータである場合には、音高を決定した上で発音させる。この音高の決定については演奏時に所定のルールに従って決定するのであるが、こうした技術は多数公知であることから、ここでの説明を省略する。
【００３８】
次に、ユーザ所望の区間においてプレイエフェクトがかけられることを禁止するよう、元の自動演奏データ（詳しくは各ノートシーケンストラックデータ）に対してプレイエフェクト禁止情報（プレイエフェクト禁止イベント及びプレイエフェクト許可イベント）が記憶された自動演奏データを新たに生成する「プレイエフェクト禁止情報記録処理」について、図７を用いて説明する。図７は、「プレイエフェクト禁止情報記録処理」の一実施例を示すフローチャートである。当該処理は、上述した「マスタートラック再生処理」及び「ノートシーケンストラック再生処理」（図５及び図６参照）とあわせて並行動作される処理である。ユーザは上記各処理の動作に応じて発音される演奏を聞きながら、適宜のタイミングで所定のユーザインタフェース（各種操作子等）を操作することで、自動演奏中におけるユーザ操作のタイミングに応じた箇所に、プレイエフェクト禁止情報を自動演奏データ中に記録することができる。
【００３９】
ステップＳ３１では、バッファに演奏イベントがあるか否かを判定する。前記バッファは、演奏テンポに応じた所定周期（例えば、四分音符あたり９６回）の間に生じた演奏イベントやユーザによるユーザインタフェース操作に応じて発生された操作イベントを、読み出されるまで一時的に記憶する記憶領域である。バッファに演奏イベントがある場合には（ステップＳ３１のＹＥＳ）、当該演奏イベントを新しい自動演奏データに追加して（ステップＳ３６）、ステップＳ３１の処理へ戻る。一方、バッファに演奏イベントがない場合には（ステップＳ３１のＮＯ）、まずプレイエフェクトをかけることを止める操作イベントがバッファにあるか否かを判定する（ステップＳ３２）。プレイエフェクトをかけることを止める操作イベントがバッファにある場合には（ステップＳ３２のＹＥＳ）、プレイエフェクト許可イベントを新しい自動演奏データに追加する（ステップＳ３３）。次に、プレイエフェクトをかけることを許可する操作イベントがバッファにあるか否かを判定する（ステップＳ３４）。プレイエフェクトをかけることを許可する操作イベントがバッファにある場合には（ステップＳ３４のＹＥＳ）、プレイエフェクト禁止イベントを新しい自動演奏データに追加する（ステップＳ３５）。このようにして、プレイエフェクトをかけながら自動演奏データを記録処理する際に、自動演奏データ中のプレイエフェクトをかけた範囲の前後に、それぞれプレイエフェクト禁止イベント及びプレイエフェクト許可イベントを記録しておくことによって、該生成した自動演奏データを後ほど再生する際に前記範囲において更なるプレイエフェクトがかけられることを禁止するようにしている。
【００４０】
なお、上述した「プレイエフェクト禁止情報記録処理」では、各ノートシーケンストラックデータにプレイエフェクト禁止情報を記録するようにしたが、マスタートラックチャンクデータにプレイエフェクト禁止情報（この場合にはプレイエフェクト禁止イベントのみ）を記録するようにしてもよい。例えば、演奏中にユーザインタフェースの操作が１回のみであったような場合、あるいは専用のユーザインタフェースが操作された場合には、マスタートラックチャンクデータにプレイエフェクト禁止情報を記録するようにするとよい。また、プレイエフェクト禁止情報を記録する対象として、一律全トラックを指定するようにしてもよいし、トラック毎に個別に指定するものであってもよい。
なお、上述した「プレイエフェクト禁止情報記録処理」では、演奏中にユーザ操作に応じてすぐにプレイエフェクト禁止情報を記録するようにしたがこれに限らず、演奏中に行われたプレイエフェクトに係るユーザ操作を全て時間データと共に記憶しておき、これに基づき元の自動演奏データの該当する箇所にプレイエフェクト禁止情報を記録して新たな自動演奏データを生成するようにしてもよい。
なお、プレイエフェクト禁止情報を付加する自動演奏データとしては、上述したようなソングデータでもよいし、スタイルデータでもよいし、アルペジオデータでもよい。  なお、選択した自動演奏データに、プレイエフェクト禁止情報が含まれているかどうかを演奏せずともユーザに伝えるユーザインタフェースを具えていてもよい。また、演奏中にプレイエフェクト禁止情報をユーザに対してリアルタイムに伝えるユーザインタフェースを具えていてもよい。表示等の視覚により伝えるものであってもよいし、楽音等の聴覚により伝えるものであってもよい。
なお、プレイエフェクト禁止情報に基づいてプレイエフェクトを禁止する方法としては、ユーザが操作してもプレイエフェクトがかからないようにしてもよいし、ユーザが操作自体を行うことができないようにしてもよい。ユーザが操作自体を行うことができないようにする場合には、例えばユーザがパネル操作をしても設定のための画面表示を行わない、あるいはＬＥＤを点灯させない、などのようにするとよい。
【実施例２】
【００４１】
本発明に係る自動演奏装置を適用した電子楽器は、ループ録音方式又はオーバーダブ録音方式等の、繰り返される自動演奏にあわせて適宜に入力されたユーザ操作に基づく楽音をリアルタイムに追加録音することにより自動演奏データを生成するデータ生成機能を有していてよい。データ生成機能の実行時に、上記したようなプレイエフェクト機能による所望の変化を与えながら自動演奏データを再生する（つまり、プレイエフェクトをかけながらの演奏を行う）ことによって、元の自動演奏データを単に再生した場合の演奏とは雰囲気の異なる演奏を行うと共に、プレイエフェクトをかけた後の自動演奏データをユーザ操作に応じて入力された楽音などと共に記憶することができる。勿論、ユーザ操作がない場合には、プレイエフェクトをかけた後の自動演奏データのみを記憶することができるようにしてよい。そこで、こうした自動演奏の繰り返しを伴って自動演奏データを生成するデータ生成機能について、以下説明する。
【００４２】
まず、データ生成機能の処理概要について、図８を用いて簡単に説明する。図８は、当該電子楽器が有するデータ生成機能を説明するための機能ブロック図である。図８において、図中の矢印は自動演奏データ（詳しくは演奏イベントデータ）の流れを表すものである。自動演奏の元となる自動演奏データ、プレイエフェクトをかけられた後やユーザ操作に基づく楽音追加後の自動演奏データは、ＲＡＭ３あるいは外部記憶装置１０内の所定のバッファ内にそれぞれ記憶される。すなわち、自動演奏データを格納するバッファ３（又は１０）は、再生に用いる自動演奏データを格納する再生バッファ３ａと、生成した自動演奏データを記録する記録バッファ３ｂとからなるダブルバッファあるいはリングバッファの構造をもつものであって、前記再生バッファ３ａと記録バッファ３ｂとが次々にループする毎に入れ替わることで、ループ録音方式及びオーバーダブ録音方式によるデータ生成機能を実現するようにしている。
【００４３】
制御モジュールＡは、ここに示す各モジュールを制御する。この制御モジュールＡで行われる具体的な処理（データ生成処理）については、後述する（後述の図９〜図１１参照）。再生モジュールＢは、タイマ１Ａに同期して再生バッファ３ａから該当する自動演奏データ（詳しくは演奏イベントデータ）を読み出し、該読み出した演奏イベントデータをプレイエフェクトモジュールＥに送る。プレイエフェクトモジュールＥでは、予め記憶されたプレイエフェクトデータ（変更データ）１００に基づき前記読み出された演奏イベントデータに対してプレイエフェクトをかけて、これを音源ドライバモジュールＦに送る。音源ドライバモジュールＦでは、送られてきたプレイエフェクトがかけられた後の演奏イベントデータを音源回路７に送ることで楽音を発生するよう制御する。また、音源ドライバモジュールＦは、前記プレイエフェクトモジュールＥからプレイエフェクトがかけられた後の演奏イベントデータのみではなく、キースキャンモジュールＤによりユーザ操作が検知された演奏操作子４Ａに応じた演奏イベントデータも入力される。したがって、プレイエフェクトをかけられた自動演奏に加えて、ユーザ操作に応じた楽音を同時に発生させることができる。また、プレイエフェクトモジュールＥからの演奏イベントデータ及びキースキャンモジュールＤからの演奏操作子４Ａのユーザ操作に応じた演奏イベントデータは共に記録モジュールＣに送られ、記録モジュールＣではこれらの演奏イベントデータを記録バッファ３ｂに記録する。したがって、記録バッファ３ｂに記録される自動演奏データは、再生バッファ３ａに記録されていた元の自動演奏データと比較すると、プレイエフェクトがかけられており、さらにはユーザ操作された演奏操作子４Ａに応じた演奏イベントデータが付加されたものとなる。勿論、プレイエフェクトがかけられなかったり、演奏操作子４Ａの操作がなかったような場合には、再生バッファ３ａに記録されていた元の自動演奏データがそのまま記録バッファ３ｂに記録されることは言うまでもない。
【００４４】
次に、上述したデータ生成機能を実現する「データ生成処理」について、図９を用いて説明する。図９は、「データ生成処理」の一実施例を示すフローチャートである。当該処理は、ユーザによる所定の録音操作に応じて開始される。以下、図９に示したフローチャートに従って、当該処理の動作を説明する。
【００４５】
ステップＳ４１では、初期設定を行う。再生バッファ３ａに元となる自動演奏データを記憶させておかずに、再生バッファ３ａがまっさらな状態から自動演奏データを全く新規に生成するような場合には、該初期設定として、生成対象とする自動演奏データの長さ（例えば小節数）を指定したり、再生バッファ３ａをクリアする（空にする）などの処理を行う。一方、再生バッファ３ａに記憶された既存の自動演奏データを利用して自動演奏データを生成する場合には、該初期設定として、再生バッファ３ａに元となる既存の自動演奏データを予め読み込んでおくなどの処理を行う。この再生バッファ３ａに既存の自動演奏データを読み込んでおく場合、ユーザは既存の自動演奏データの中から任意のデータを選択することができる。ステップＳ４２は、ＲＡＭ３のワークエリア内に確保されるプレイエフェクト制御フラグを「許可」に設定する。ステップＳ４３は、録音「開始」のパネル操作を待つ。すなわち、ユーザによる録音開始／終了スイッチ操作に応じて録音「開始」が指示されるまで、当該処理を続行せずに待機させておく。録音「開始」が指示された場合には、再生モジュールＢ及び記録モジュールＣそれぞれに対し録音開始を指示する一方、プレイエフェクトモジュールＥに対してはスルーを指示する（ステップＳ４４）。これらの指示以降、再生モジュールＢではタイマ１Ａに同期して再生バッファ３ａから演奏イベントデータを読み出し、該読み出した演奏イベントデータをプレイエフェクトモジュールＥを経由して音源ドライバモジュールＦ及び記録モジュールＣに対してそれぞれ送る。記録モジュールＣでは、送られてきた演奏イベントデータを順次に記録バッファ３ｂに記憶する。
【００４６】
ステップＳ４５では、録音「終了」のパネル操作が行われたか否かを判定する。ユーザによる録音開始／終了スイッチ操作に応じて録音「終了」操作が行われたと判定した場合には（ステップＳ４５のＹＥＳ）、当該処理を終了する。この処理終了に伴い、記録バッファ３ｂ内に記録されている自動演奏データは所定の不揮発メモリや外部記憶装置１０などに記憶される。ただし、プレイエフェクトがかけられていない、あるいはユーザによる演奏操作子４Ａの操作が全く行われることがなかったような場合には、記録バッファ３ｂ内に記録されている自動演奏データと再生バッファ３ａ内に記録されている元の自動演奏データとは何ら変わらないので、記録バッファ３ｂ内に記録されている自動演奏データを所定の不揮発メモリや外部記憶装置１０などに記憶しなくてよい。
【００４７】
一方、録音「終了」の操作が行われていないと判定した場合には（ステップＳ４５のＮＯ）、プレイエフェクト制御フラグが「許可」に設定されているか否かを判定する（ステップＳ４６）。プレイエフェクト制御フラグが「許可」に設定されている場合には（ステップＳ４６のＹＥＳ）、パネル操作子上でのプレイエフェクト設定のオン／オフ設定をプレイエフェクトモジュールＥに反映させ、該プレイエフェクト設定が「オン」設定である場合には、プレイエフェクトをかけるようにプレイエフェクトモジュールＥに指示する（ステップＳ４７）。上述した図８から理解できるように、この場合には、プレイエフェクトモジュールＥでは予め記憶されているプレイエフェクトデータ１００に基づいて、再生モジュールＢから送られた演奏イベントデータを加工する。そして、加工された演奏イベントデータは音源ドライバモジュールＦに送られると共に、記録モジュールＣに送られて記録バッファ３ｂに記録される。したがって、音源回路７を介して発音される楽音はプレイエフェクトがかけられた後の楽音が発生され、また記録バッファ３ｂにはプレイエフェクトがかけられた後の演奏イベントデータが記録されることになる。さらに、ユーザによる演奏操作子４Ａの操作があるような場合には、キースキャンモジュールＤから該操作に応じて発生された演奏イベントデータが音源ドライバモジュールＦ及び記録モジュールＣに送られることから、プレイエフェクトがかけられた後の楽音と同時に、ユーザによる演奏操作子４Ａの操作に応じて発生された演奏イベントデータに基づく楽音が発生される。そして、記録バッファ３ｂにはプレイエフェクトがかけられた後の演奏イベントデータと共に、ユーザによる演奏操作子４Ａの操作に応じて発生された演奏イベントデータが記録されることになる。
【００４８】
他方、プレイエフェクト制御フラグが「許可」に設定されていない場合には（ステップＳ４６のＮＯ）、パネル操作子上でのプレイエフェクト「オン」設定又は「オフ」設定に関わらず、プレイエフェクトをかけないようにプレイエフェクトモジュールＥに指示する（ステップＳ４８）。この場合には、音源回路７を介して発音される楽音はプレイエフェクトがかけられていない楽音が発生され、また記録バッファ３ｂにはプレイエフェクトがかけられていない元の演奏イベントデータがそのまま記録されることになる（ただし、ユーザによる演奏操作子４Ａの操作がある場合には、該操作に応じて発生された演奏イベントデータが同時に記録バッファ３ｂに記録される）。
【００４９】
ステップＳ４９では、再生バッファ３ａに対する読み出しポインタが繰り返し読み出しされる範囲であるループの終端まで到達したか否かを判定する。ループの終端まで到達したと判定した場合には（ステップＳ４９のＹＥＳ）、再生バッファ３ａと記録バッファ３ｂの更新を行い、さらには再生モジュールＢの再生バッファ３ａに対する読み出しポインタ及び記録モジュールＣの記録バッファ３ｂに対する書き込みポインタのそれぞれを該当するループの先頭に設定する（ステップＳ５０）。ステップＳ５１では、最新のループの１周つまり直近のループ処理で記録バッファ３ｂに記録された自動演奏データがプレイエフェクトがかけられた後のデータであるか否かを判定する。プレイエフェクトがかけられた後のデータであると判定した場合には（ステップＳ５１のＹＥＳ）、プレイエフェクト制御フラグを「許可」から「禁止」に設定変更する（ステップＳ５２）。こうすると、プレイエフェクトをかけるプレイエフェクト「オン」設定である場合であっても、１回のループ処理の際にのみプレイエフェクトがかけられることになることから、ループ再生つまり自動演奏が繰り返されても多重にプレイエフェクトがかけられてしまうことがない。また、プレイエフェクト設定スイッチによる「オン」設定又は「オフ」設定によりプレイエフェクトをかけるかけないかを指示するようにしたことから、ユーザは演奏操作子４Ａを操作して楽音を追加録音した後に、プレイエフェクト「オン」設定して、追加録音した楽音を含む自動演奏データに対してプレイエフェクトをかけることができるようになる。すなわち、録音の最初からプレイエフェクトをかけなくてもよく、プレイエフェクトをかけることなくユーザ操作に応じて発生された楽音を追加録音してから、該生成した自動演奏データに対してプレイエフェクトをかけることができる。
【実施例３】
【００５０】
次に、上述したデータ生成機能を実現する「データ生成処理」の別の実施例について、図１０及び図１１を用いて説明する。図１０は、「データ生成処理」の別の実施例を示すフローチャートである。図１１は、「データ生成処理」と並行動作される「プレイエフェクト処理」の一実施例を示すフローチャートである。この「プレイエフェクト処理」は、自動演奏データに含まれるイベント毎に実行される処理である。
【００５１】
ステップＳ６１では、初期設定を行う。ステップＳ６２では、ＲＡＭ３のワークエリア内に確保されるプレイエフェクト制御フラグを「許可」にする。ステップＳ６３は、ユーザによる録音「開始」のパネル操作を待つ。録音「開始」が指示されると、再生モジュールＢ及び記録モジュールＣそれぞれに対し開始を指示する一方、プレイエフェクトモジュールＥに対してはスルーを指示する（ステップＳ６４）。ステップＳ６５では、ユーザによる録音「終了」のパネル操作が行われたか否かを判定する。録音「終了」の操作が行われた場合には（ステップＳ６５のＹＥＳ）、当該処理を終了する。この場合、記録バッファ３ｂ内に記録された自動演奏データは不揮発メモリ又は外部記憶装置１０などに記憶される。録音「終了」の操作が行われていない場合には（ステップＳ６５のＮＯ）、再生バッファ３ａに対する読み出しポインタが繰り返し読み出しされる範囲であるループの終端まで到達したか否かを判定する（ステップＳ６６）。ループの終端まで到達したと判定した場合には（ステップＳ６６のＹＥＳ）、再生バッファ３ａと記録バッファ３ｂの更新を行い、さらには再生モジュールＢの再生バッファ３ａに対する読み出しポインタ及び記録モジュールＣの記録バッファ３ｂに対する書き込みポインタのそれぞれをループの先頭に設定する（ステップＳ６７）。ステップＳ６８では、最新のループの１周つまり直近のループ処理で記録バッファ３ｂに記録された自動演奏データがプレイエフェクトがかけられた後のデータであるか否かを判定する。プレイエフェクトがかけられた後のデータであると判定した場合には（ステップＳ６８のＹＥＳ）、自動演奏データに対してプレイエフェクトを禁止にするイベントを書き込む（ステップＳ６９）。例えば、自動演奏データ全体に対してプレイエフェクトをかけることを禁止するイベント（既に説明済みのプレイエフェクト禁止イベント）を、自動演奏データの最初に書き込む。勿論、プレイエフェクトがかけられた区間の前後にプレイエフェクト禁止イベント及びプレイエフェクト許可イベントを書き込み、この区間のみプレイエフェクトをかけることを禁止するようにしてもよい。
【００５２】
図１１に示すように、ステップＳ７１では、演奏イベントデータが「プレイエフェクト許可イベント」であるか否かを判定する。「プレイエフェクト許可イベント」である場合には（ステップＳ７１のＹＥＳ）、プレイエフェクト制御フラグを「許可」にする（ステップＳ７２）。ステップＳ７３では、「プレイエフェクト禁止イベント」であるか否かを判定する。「プレイエフェクト禁止イベント」である場合には（ステップＳ７３のＹＥＳ）、プレイエフェクト制御フラグを「禁止」にする（ステップＳ７４）。ステップＳ７５は、演奏イベントデータが通常の演奏イベント（例えばノートオン、ノートオフなど）であるか否かを判定する。通常の演奏イベントである場合には（ステップＳ７５のＹＥＳ）、プレイエフェクト制御フラグが「許可」であり、かつパネル設定がプレイエフェクト「オン」設定であるか否かを判定する（ステップＳ７６）。プレイエフェクト制御フラグが「許可」であり、かつパネル設定がプレイエフェクト「オン」設定である場合には（ステップＳ７６のＹＥＳ）、当該演奏イベントにプレイエフェクトをかけて、これを音源ドライバモジュールＦと記録モジュールＣとに送る（ステップＳ７７）。この場合には、プレイエフェクトがかけられた後の自動演奏データが記録バッファ３ｂに記憶される。一方、プレイエフェクト制御フラグが「許可」でない、あるいは「許可」であってもパネル設定がプレイエフェクト「オン」設定でない場合には（ステップＳ７６のＮＯ）、演奏イベントをそのまま音源ドライバモジュールＦと記録モジュールＣとに送る（ステップＳ７８）。この場合には、プレイエフェクトがかけられることなく、元の自動演奏データがそのまま記録バッファ３ｂに記憶される。
【００５３】
なお、上述したような「データ生成処理」及び「プレイエフェクト処理」は複数の各パート毎に実行され、各パート毎にプレイエフェクトに関する各種処理を実行することは言うまでもない。
なお、ユーザが任意のループ回数だけプレイエフェクトをかけるよう設定できるようにしてあってもよい。
なお、上述したような自動演奏データを作成する機能が自動演奏装置あるいはプログラムに備わっている場合に、自動演奏データにプレイエフェクト禁止情報を付加する機能として、ユーザの介在なしで自動的に付加することに限らず、ユーザ操作に応じて付加することができるようにしてもよい。
なお、演奏操作子４Ａのユーザ操作に応じて発生される演奏イベントデータを自動的にアルペジオを実現する演奏イベントデータに変換し、変換後のアルペジオを実現する演奏イベントデータに対してプレイエフェクトをかけたものを自動演奏データとして記録するようにしてあってもよい。
【００５４】
なお、対象となる自動演奏データは、プリセットのものだけでなく、ユーザが作成したものでもよい。
なお、自動演奏データを再生するための処理方法としては、設定されたテンポに応じて処理周期を変更する方法、処理周期は一定で自動演奏中のタイミングデータの値を設定されたテンポに応じて変更する方法、処理周期は一定で１回の処理において自動演奏データ中の演奏タイミングデータの計数の仕方をテンポに応じて変更する方法等、どのようなものであってもよい。
【図面の簡単な説明】
【００５５】
【図１】この発明に係る自動演奏装置を適用した電子楽器の全体構成を示したハード構成ブロック図である。
【図２】ソングデータのデータ構造を示す概念図であり、図２（ａ）は全てのトラックについて一括してプレイエフェクトがかけられることを禁止するよう設定できるようにした場合、図２（ｂ）は所望のトラック毎にプレイエフェクトがかけられることを禁止するよう設定できるようにした場合である。
【図３】スタイルデータのデータ構造を示す概念図であり、図３（ａ）は全てのトラックについて一括してプレイエフェクトがかけられることを禁止するよう設定できるようにした場合、図３（ｂ）は所望のトラック毎にプレイエフェクトがかけられることを禁止するよう設定できるようにした場合である。
【図４】アルペジオデータのデータ構造を示す概念図である。
【図５】マスタートラックの再生処理の一実施例を示すフローチャートである。
【図６】ノートシーケンストラックの再生処理の一実施例を示すフローチャートである。
【図７】プレイエフェクト禁止情報記録処理の一実施例を示すフローチャートである。
【図８】データ生成機能を説明するための機能ブロック図である。
【図９】データ生成処理の一実施例を示すフローチャートである。
【図１０】データ生成処理の別の実施例を示すフローチャートである。
【図１１】プレイエフェクト処理の一実施例を示すフローチャートである。
【符号の説明】
【００５６】
１…ＣＰＵ、２…ＲＯＭ、３…ＲＡＭ、３ａ…再生バッファ、３ｂ…記録バッファ、４、５…検出回路、４Ａ…演奏操作子、５Ａ…設定操作子、６…表示回路、６Ａ…ディスプレイ、７…音源回路、８…効果回路、９…サウンドシステム、１０…外部記憶装置、１１…MIDIインタフェース、１１Ａ…MIDI機器、１２…通信インタフェース、１２Ａ…サーバコンピュータ、Ｘ…通信ネットワーク、１Ｄ…通信バス（データ及びアドレスバス）、Ａ…制御モジュール、Ｂ…再生モジュール、Ｃ…記録モジュール、Ｄ…キースキャンモジュール、Ｅ…プレイエフェクトモジュール、Ｆ…音源ドライバモジュール、１００…プレイエフェクトデータ
【図１】
2006091804.tif 000003
【図２】
2006091804.tif 000004
【図３】
2006091804.tif 000005
【図４】
2006091804.tif 000006
【図５】
2006091804.tif 000007
【図６】
2006091804.tif 000008
【図７】
2006091804.tif 000009
【図８】
2006091804.tif 000010
【図９】
2006091804.tif 000011
【図１０】
2006091804.tif 000012
【図１１】
2006091804.tif 000013