IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社河合楽器製作所の特許一覧

<>
  • 特開-自動演奏装置及び自動演奏プログラム 図1
  • 特開-自動演奏装置及び自動演奏プログラム 図2
  • 特開-自動演奏装置及び自動演奏プログラム 図3
  • 特開-自動演奏装置及び自動演奏プログラム 図4
  • 特開-自動演奏装置及び自動演奏プログラム 図5
  • 特開-自動演奏装置及び自動演奏プログラム 図6
  • 特開-自動演奏装置及び自動演奏プログラム 図7
  • 特開-自動演奏装置及び自動演奏プログラム 図8
  • 特開-自動演奏装置及び自動演奏プログラム 図9
  • 特開-自動演奏装置及び自動演奏プログラム 図10
  • 特開-自動演奏装置及び自動演奏プログラム 図11
  • 特開-自動演奏装置及び自動演奏プログラム 図12
  • 特開-自動演奏装置及び自動演奏プログラム 図13
  • 特開-自動演奏装置及び自動演奏プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024053144
(43)【公開日】2024-04-15
(54)【発明の名称】自動演奏装置及び自動演奏プログラム
(51)【国際特許分類】
   G10H 1/00 20060101AFI20240408BHJP
   G10H 1/40 20060101ALI20240408BHJP
【FI】
G10H1/00 102Z
G10H1/40
【審査請求】未請求
【請求項の数】21
【出願形態】OL
(21)【出願番号】P 2022159205
(22)【出願日】2022-10-03
(71)【出願人】
【識別番号】000001410
【氏名又は名称】株式会社河合楽器製作所
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】勝田 雅則
【テーマコード(参考)】
5D478
【Fターム(参考)】
5D478BB00
5D478EA87
5D478EB12
5D478EB40
(57)【要約】
【課題】演奏区間の自動演奏が終了する前に、外部イベントの入力があった場合には、適切なテンポで、その演奏区間の自動演奏を続行できるようにする。
【解決手段】自動演奏装置は、複数の演奏区間に区分された演奏データを自動演奏する自動演奏装置であって、第1の外部イベントの入力に応じて、第1のテンポで、前記演奏データの第1の演奏区間の自動演奏を行う第1の自動演奏手段と、前記第1の演奏区間の自動演奏が終了する前に、第2の外部イベントの入力があった場合には、前記第1のテンポとは異なる第2のテンポで、前記第1の演奏区間の自動演奏を続行し、前記第1の演奏区間の自動演奏が終了すると、第3のテンポで、前記演奏データの第2の演奏区間の自動演奏を行う第2の自動演奏手段とを有する。
【選択図】図13
【特許請求の範囲】
【請求項1】
複数の演奏区間に区分された演奏データを自動演奏する自動演奏装置であって、
第1の外部イベントの入力に応じて、第1のテンポで、前記演奏データの第1の演奏区間の自動演奏を行う第1の自動演奏手段と、
前記第1の演奏区間の自動演奏が終了する前に、第2の外部イベントの入力があった場合には、前記第1のテンポとは異なる第2のテンポで、前記第1の演奏区間の自動演奏を続行し、前記第1の演奏区間の自動演奏が終了すると、第3のテンポで、前記演奏データの第2の演奏区間の自動演奏を行う第2の自動演奏手段と
を有することを特徴とする自動演奏装置。
【請求項2】
さらに、前記第1の演奏区間の自動演奏が終了した後に、第2の外部イベントの入力があった場合には、前記第1のテンポとは異なる第4のテンポで、前記演奏データの第2の演奏区間の自動演奏を行う第3の自動演奏手段を有することを特徴とする請求項1に記載の自動演奏装置。
【請求項3】
前記第3の自動演奏手段は、
前記第1の演奏区間の自動演奏が終了した後、第1の期間が経過する前に、前記第2の外部イベントの入力があった場合には、前記第4のテンポで、前記第2の演奏区間の自動演奏を行い、
前記第1の演奏区間の自動演奏が終了した後、前記第1の期間が経過した後に、前記第2の外部イベントの入力があった場合には、前記第1のテンポ又は前記演奏データのテンポで、前記第2の演奏区間の自動演奏を行うことを特徴とする請求項2に記載の自動演奏装置。
【請求項4】
さらに、前記第1の演奏区間の自動演奏の終了時刻と、前記第2の外部イベントの入力時刻とが相互に同じ場合には、前記第1のテンポで、前記第2の演奏区間の自動演奏を行う第4の自動演奏手段を有することを特徴とする請求項3に記載の自動演奏装置。
【請求項5】
前記第2の自動演奏手段は、前記第1のテンポと、前記第1の演奏区間のすべてを前記第1のテンポで演奏した場合の演奏時間と、前記第1の外部イベントの入力から前記第2の外部イベントの入力までの時間とに応じて、前記第2のテンポを演算することを特徴とする請求項1に記載の自動演奏装置。
【請求項6】
前記第2の自動演奏手段は、前記演算された第2のテンポが第1の閾値より小さい場合には、前記第2のテンポを前記第1の閾値に修正することを特徴とする請求項5に記載の自動演奏装置。
【請求項7】
前記第2のテンポは、前記第1のテンポより速く、
前記第3のテンポは、前記第1のテンポより速く、かつ、前記第2のテンポより遅いことを特徴とする請求項1に記載の自動演奏装置。
【請求項8】
前記第3の自動演奏手段は、前記第1のテンポと、前記第1の演奏区間のすべてを前記第1のテンポで演奏した場合の演奏時間と、前記第1の外部イベントの入力から前記第2の外部イベントの入力までの時間とに応じて、前記第4のテンポを演算することを特徴とする請求項2に記載の自動演奏装置。
【請求項9】
前記第4のテンポは、前記第1のテンポより遅いことを特徴とする請求項2に記載の自動演奏装置。
【請求項10】
前記第1の期間は、前記演奏データの1拍の長さであることを特徴とする請求項3に記載の自動演奏装置。
【請求項11】
前記演奏データの1拍の長さが第2の閾値より長い場合には、前記第1の期間は、前記演奏データの1拍の長さであり、
前記演奏データの1拍の長さが前記第2の閾値より短い場合には、前記第1の期間は、前記第2の閾値であることを特徴とする請求項3に記載の自動演奏装置。
【請求項12】
前記複数の演奏区間の各々は、前記演奏データの1拍の長さであることを特徴とする請求項1に記載の自動演奏装置。
【請求項13】
前記複数の演奏区間の各々は、前記演奏データのメロディのノートデータの1音と、前記メロディのノートデータの1音に付随する伴奏のノートデータで構成される区間であることを特徴とする請求項1に記載の自動演奏装置。
【請求項14】
前記第1の外部イベントと前記第2の外部イベントは、それぞれ、鍵盤の押鍵操作、又は、操作子若しくはタッチパネルの操作に基づくイベントであることを特徴とする請求項1に記載の自動演奏装置。
【請求項15】
前記第1の外部イベントと前記第2の外部イベントは、それぞれ、発音の強弱に関する情報を含み、
前記第1の自動演奏手段は、前記第1の外部イベントに含まれる発音の強弱に関する情報を基に、前記第1の演奏区間の自動演奏の音量を決定し、
前記第2の自動演奏手段は、前記第2の外部イベントに含まれる発音の強弱に関する情報を基に、前記第2の演奏区間の自動演奏の音量を決定することを特徴とする請求項1に記載の自動演奏装置。
【請求項16】
複数の演奏区間に区分された演奏データを自動演奏する自動演奏装置であって、
第1の外部イベントの入力に応じて、第1のテンポで、前記演奏データの第1の演奏区間の自動演奏を行う第1の自動演奏手段と、
前記第1の演奏区間の自動演奏が終了した後、第1の期間が経過する前に、第2の外部イベントの入力があった場合には、前記第1のテンポとは異なる第2のテンポで、前記第2の演奏区間の自動演奏を行い、前記第1の演奏区間の自動演奏が終了した後、前記第1の期間が経過した後に、前記第2の外部イベントの入力があった場合には、前記第1のテンポ又は前記演奏データの第2の演奏区間のテンポで、前記第2の演奏区間の自動演奏を行う第2の演奏手段と
を有することを特徴とする自動演奏装置。
【請求項17】
前記第2の自動演奏手段は、前記第1のテンポと、前記第1の演奏区間のすべてを前記第1のテンポで演奏した場合の演奏時間と、前記第1の外部イベントの入力から前記第2の外部イベントの入力までの時間とに応じて、前記第2のテンポを演算することを特徴とする請求項16に記載の自動演奏装置。
【請求項18】
前記第2のテンポは、前記第1のテンポより遅いことを特徴とする請求項16に記載の自動演奏装置。
【請求項19】
前記第1の期間は、前記演奏データの1拍の長さであることを特徴とする請求項16に記載の自動演奏装置。
【請求項20】
前記演奏データの1拍の長さが第2の閾値より長い場合には、前記第1の期間は、前記演奏データの1拍の長さであり、
前記演奏データの1拍の長さが前記第2の閾値より短い場合には、前記第1の期間は、前記第2の閾値であることを特徴とする請求項16に記載の自動演奏装置。
【請求項21】
コンピュータを、請求項1~20のいずれか1項に記載の自動演奏装置として機能させるための自動演奏プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動演奏装置及び自動演奏プログラムに関する。
【背景技術】
【0002】
特許文献1には、外部イベントに従って、曲データを自動演奏する自動演奏装置が記載されている。曲データは、所定の区間データによって各演奏区間に区分されている。区間データは区間の先頭に位置する。自動演奏は、外部イベントを受けて曲データの所定区間の先頭から終わりまでを自動演奏する。自動演奏時には、外部イベントに応じて、外部イベントに対応する区間の自動演奏が1区間ずつ順次進行する。自動演奏装置は、外部イベントがあったとき、その直前の区間における自動演奏のテンポ、直前の区間におけるクロック数の想定値として予め記憶されている値、及び前回の外部イベントから今回の外部イベントまでの間のクロック数の実測値を用いて、今回の外部イベントに対応する区間における自動演奏のテンポを設定する。
【0003】
特許文献2には、演奏データの楽音を順次自動的に出力するために、楽譜上の進行位置を表す楽譜時間の進行に基づいてテンポクロック情報を出力するテンポクロック情報出力手段を有するテンポコントローラが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4808868号公報
【特許文献2】特許第2653232号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の場合、各演奏区間の末尾に自動演奏が到達する前に押鍵した時には、演奏位置を次の演奏区間の先頭に一気にジャンプして演奏を継続する。そのため、ジャンプ先までの区間の楽音は発音されずに飛ばされ、自動演奏が先へ進んでしまうという課題がある。特に、ゆっくりしたテンポから速いテンポに切り替える場合に、この課題は顕著である。
【0006】
その上、ジャンプ後のテンポが急激に速くなり、自動演奏がすぐに演奏区間の末尾まで到達してしまうため、操作者の想定より早いタイミングで自動演奏が一時停止することになる。この一時停止が不自然に感じるため、早く解除するために慌てて次の押鍵をする。すると、だんだん早め早めに押鍵をするようになるので、テンポがどんどん速くなってしまう。この悪循環を断ち切るために、押鍵タイミングを遅らせると、今度は逆に不自然に一時停止する。このジャンプと一時停止の繰り返しが原因で、操作者の意に反したギクシャクとした不自然な演奏になってしまうという課題もある。特に、複数の演奏区間にまたがる音の階段など、この課題は顕著である。
【0007】
上記の課題は、大した問題でないように思われがちであるが、実は演奏にとって大事なポイントである。操作者は、自分の押鍵コントロールによって、自動演奏が意のままに滑らかに進むことで、心地よさを感じ、それがあってこそ、初めて演奏者気分に酔いしれることができる。
【0008】
ところが、特許文献1の場合、演奏区間の末尾より押鍵が早いと、音が間引かれて、いきなりジャンプし、演奏区間の末尾より押鍵が遅いと、自動演奏が一時停止してしまうため、滑らかな自動演奏で、心地よくなるどころか、意に反したぎこちない演奏が原因で、逆にストレスがどんどんたまってしまうのである。それを防ごうと、音が間引かれないようにしつつ、一時停止もほとんどしないようにコントロールすることも可能ではあるが、それでは、原曲とほとんど変わらないつまらない自動演奏となってしまう。
【0009】
上記の課題をカーレースゲームに例えると分かりやすい。ハンドル操作に対する反応が良過ぎる場合、カーブに合わせてハンドルをちょっと回しただけで、カーブよりきつく車の進行方向が曲がってしまう。それを立て直そうとして、ハンドルを逆に切ると、今度は逆方向に車が曲がり過ぎてしまう。この繰り返しで、ハンドル操作がなかなか定まらなくて、車が左右に振られてイライラする。これと同様である。要するに、押鍵に対して反応が機敏すぎると、逆に演奏コントロールがやりにくいのである。
【0010】
一方、演奏区間の末尾から次の演奏区間の先頭まで、少し時間を空けた後に、自動演奏を再開したい場合、演奏区間の末尾で一時停止後に、少し時間を空けてから押鍵することになるが、そうすることで、次の演奏区間のテンポが極端に遅くなってしまう。そこで、テンポを速めようとして、かなり早めに押鍵すると、音が間引かれて先へジャンプしてしまう。これもまた、操作者の意に反した不自然な演奏になる課題である。
【0011】
本発明の目的は、演奏区間の自動演奏が終了する前に、外部イベントの入力があった場合には、適切なテンポで、その演奏区間の自動演奏を続行できるようにすることである。
【課題を解決するための手段】
【0012】
自動演奏装置は、複数の演奏区間に区分された演奏データを自動演奏する自動演奏装置であって、第1の外部イベントの入力に応じて、第1のテンポで、前記演奏データの第1の演奏区間の自動演奏を行う第1の自動演奏手段と、前記第1の演奏区間の自動演奏が終了する前に、第2の外部イベントの入力があった場合には、前記第1のテンポとは異なる第2のテンポで、前記第1の演奏区間の自動演奏を続行し、前記第1の演奏区間の自動演奏が終了すると、第3のテンポで、前記演奏データの第2の演奏区間の自動演奏を行う第2の自動演奏手段とを有する。
【発明の効果】
【0013】
本発明によれば、演奏区間の自動演奏が終了する前に、外部イベントの入力があった場合には、適切なテンポで、その演奏区間の自動演奏を続行することができる。
【図面の簡単な説明】
【0014】
図1図1は、本実施形態による自動演奏装置の構成例を示す図である。
図2図2(A)及び(B)は、鍵盤イベントのタイミングの表示例を示す図である。
図3図3は、複数の演奏データを記憶するROMの例を示す図である。
図4図4(A)及び(B)は、演奏データの構成例を示す図である。
図5図5は、第1~第4の演奏区間のピアノロールの表示例を示す図である。
図6図6は、自動演奏装置の処理のメインルーチンを示すフローチャートである。
図7図7は、パネルイベント処理の詳細を示すフローチャートである。
図8図8は、鍵盤イベント処理の詳細を示すフローチャートである。
図9図9は、自動演奏用イベント処理の詳細を示すフローチャートである。
図10図10は、音量設定処理の詳細を示すフローチャートである。
図11図11は、押鍵イベントの間隔が演奏時間と同じ場合の処理例を示す図である。
図12図12(A)及び(B)は、押鍵イベントの間隔が演奏時間より長い場合の処理例を示す図である。
図13図13は、押鍵イベントの間隔が演奏時間より短い場合の処理例を示す図である。
図14図14は、タッチパネルに表示するピアノロールの例を示す図である。
【発明を実施するための形態】
【0015】
図1は、本実施形態による自動演奏装置100の構成例を示す図である。自動演奏装置100は、電子楽器、パーソナルコンピュータ、タブレット又はスマートフォン等である。以下、自動演奏装置100が電子楽器である場合を例に説明する。自動演奏装置100は、鍵盤108、鍵盤108の操作状態を検出するキースイッチ回路101、操作パネル109、操作パネル109の操作状態を検出するパネルスイッチ回路102、RAM104、ROM105、CPU106、テンポタイマー115及び楽音発生装置107を有し、これらはバス114により結合されている。楽音発生装置107には、ディジタル/アナログ(D/A)変換器111、増幅器112、及びスピーカ113が順次接続されている。
【0016】
操作パネル109は、モード選択スイッチを有する。このモード選択スイッチにおいて、通常演奏モードを選択すると、この自動演奏装置100は通常の電子楽器として機能し、一方、自動演奏モードを選択すると、自動演奏装置として機能する。操作パネル109は、選曲スイッチを有する。この選曲スイッチにおいて、自動演奏する曲を選ぶことができる。また、操作パネル109は、自動演奏をする際の鍵盤108に対する鍵盤イベント(鍵盤108のいずれかの鍵を押鍵すること;外部イベント)のタイミングを表示する表示器109aを有する。
【0017】
表示器109aは、図2(A)に示すように、自動演奏において鍵盤イベントを与えるべきタイミングを大きい黒丸で示し、鍵盤イベントのタイミングの他に、鍵盤イベントに応じて発音されるノートデータのタイミングを小さい黒丸で表示する。また、表示器109aは、一拍の区間の区切りを表示し、既に自動演奏が終了した鍵盤イベントのタイミング、及び発音されたノートデータのタイミングは、図2(B)に示すように、十字印として表示する。
【0018】
テンポタイマー115は、自動演奏の際に、所定の間隔で割り込み信号をCPU106に供給し、自動演奏のテンポの基準となるものである。
【0019】
ROM105は、自動演奏装置100の全体を制御するためのプログラムや各種データの他、複数の曲に対応した複数の演奏データ116、及び演奏制御機能のためのプログラムも記憶している。複数の演奏データ116は、図3に示すように、曲毎に、ROM105に予め記憶されている。
【0020】
各曲の演奏データ116は、図4(A)に示すように、最初の部分に、音色データ、音量ボリュームデータ、テンポデータ、及び拍データを有する。また、演奏データ116は、一拍ごとにまとまったノートデータと、拍ごとに対応して設けられた拍データとを有する。上記の音色データは、続くノートデータ(図4(B)においてはメロディのノートデータ及び伴奏のノートデータ)に基づき発音すべき楽音の音色を指定する。上記の音量ボリュームデータは、発音する楽音の音量を制御する。上記のテンポデータは、曲の最初の拍のテンポスピードのみ制御するものである。なお、2拍目以降のテンポは、後述するように、押鍵イベント間のタイミングにより定められる。
【0021】
上記のノートデータは、それぞれ、キーナンバK、ステップタイムS、ゲートタイムG、及びベロシティVを含んでいる。ステップタイムSは、曲の始めを基点として、そのノートデータが発音されるタイミングを示すデータである。キーナンバKは、音階を示す。ゲートタイムGは、発音の持続時間を示す。ベロシティVは、発音の音量(押鍵圧)を示す。
【0022】
演奏データ116は、複数の演奏区間に区分されている。複数の演奏区間の各々は、例えば、演奏データ116の1拍の長さである。複数の演奏区間の各々は、例えば、複数のノートデータを有する。
【0023】
なお、図4(B)に示すように、複数の演奏区間の各々は、例えば、メロディのノートデータと、伴奏のノートデータを有していてもよい。メロディのノートデータ及び伴奏のノートデータは、それぞれ、キーナンバK、ステップタイムS、ゲートタイムG、及びベロシティVを含んでいる。
【0024】
自動演奏モードは、ビートモードと、メロディモードを有する。ビートモードでは、複数の演奏区間の各々は、演奏データ116の1拍の長さである。メロディモードでは、複数の演奏区間の各々は、演奏データ116のメロディのノートデータの1音と、そのメロディのノートデータの1音に付随する伴奏のノートデータで構成される区間である。
【0025】
図5は、ビートモードにおける演奏データ116の第1~第4の演奏区間のピアノロールの表示例を示す図である。CPU106は、図5のピアノロールを表示器109aに表示することができる。演奏データ116は、メロディのノートデータ116aと、伴奏のノートデータ116bを有する。第1~第4の演奏区間の各々は、1拍の長さである。
【0026】
曲頭の拍子は、2/4である。曲頭から1拍ずつ、第1の演奏区間から第4の演奏区間までのノートデータを示している。1小節目の1拍目には、ノートデータが存在しない。第1の演奏区間は、1小節目の2拍目であり、1小節目の弱起の拍のみである。第2の演奏区間と第2の演奏区間は、2小節目である。第4の演奏区間は、3小節目の1拍目である。この例では、各演奏区間の時間は、4分音符の長さと同じである。
【0027】
図5のピアノロールは、表示画面の横方向が演奏データの時間軸であり、表示画面の縦方向が鍵盤108の音高である。ノートデータ116a及び116bの各々は、矩形図形で表される。矩形図形は、左辺が発音開始時刻を示し、右辺が発音終了時刻を示す。演奏データの再生位置117は、ソングポインタであり、縦ラインで示される。CPU106は、鍵盤108の押鍵操作に応じて、演奏データの自動演奏の再生経過時刻を進め、各ノートデータの矩形図形が右から左へ向かって移動するように、スクロール表示する。ノートデータの矩形図形の左辺が再生位置117を通過すると、楽音の発音が開始される。矩形図形の右辺が再生位置117を通過すると、楽音の発音が終了する。
【0028】
図1に戻り、CPU106は、ROM105に予め格納されている自動演奏プログラムを実行することにより、後述する自動演奏装置100の処理を実現する。また、CPU106は、ROM105に格納されている各種の制御プログラムを読み出して実行することで、自動演奏装置100の全体の動作制御も行う。このとき、RAM104は、CPU106が各種の制御処理を行うために、種々のデータを一時記憶するためのメモリとして使用される。RAM104は、自動演奏の際には、図3に示すように、自動演奏する曲の演奏データ116を保持し、必要に応じて楽音発生装置107に送り出す。
【0029】
楽音発生装置107は、自動演奏の実行時には、RAM104から送られる所定の演奏データ116を発音し、通常演奏の実行時には、鍵盤108の押鍵に応じた楽音を発音するものである。
【0030】
次に、自動演奏装置100の基本動作を説明する。自動演奏装置100は、自動演奏モードとした場合には、第1の押鍵イベントがあると、自動演奏データのうち、第1の演奏区間の先頭から、第1の演奏区間の終わりまで自動演奏を進め、第2の押鍵イベントがあると、第2の演奏区間の先頭からその第2の演奏区間の終わりまで自動演奏を進行する。以後同様に、第nの押鍵イベントがあると、第nの演奏区間の先頭からその第nの演奏区間の終わりまで自動演奏を進行する。
【0031】
図6は、自動演奏装置100の処理のメインルーチンを示すフローチャートである。自動演奏装置100に電源が投入されると、先ず、ステップ10では、CPU106は、初期設定を行う。この初期設定は、CPU106の内部状態を初期状態に設定すると共に、RAM104に定義されているレジスタ、カウンタ或いはフラグ等に初期値を設定する処理である。また、この初期設定では、楽音発生装置107に所定のデータを送り、電源投入時に不要な音が発生されるのを防止する処理も行われる。
【0032】
次に、ステップ20では、CPU106は、パネルイベント処理を行う。パネルイベント処理の詳細を図7に示す。
【0033】
ステップ110では、CPU106は、パネルスイッチ回路102により、操作パネル109での操作の有無を判定する。これは、次のようにして行われる。即ち、先ず、CPU106は、パネルスイッチ回路102が操作パネル109をスキャンすることにより得られる各スイッチのオン/オフ状態を示すデータ(以下、「新パネルデータ」という。)を各スイッチに対応したビット列として取り込む。
【0034】
次いで、CPU106は、前回読み込んで既にRAM104に記憶されているデータ(以下、「旧パネルデータ」という。)と、上記新パネルデータとを比較して相違するビットをオンにしたパネルイベントマップを作成する。パネルイベントの有無は、このパネルイベントマップを参照することにより判定される。即ち、パネルイベントマップ中にオンになっているビットが1つでも存在すると、パネルイベントがあった旨の判定が行われる。
【0035】
ステップ110において、CPU106は、パネルイベントがないことの判定が行われると、このパネルイベント処理ルーチンからリターンして、図6のメインルーチンに戻る。一方、ステップ110において、CPU106は、パネルイベントがあることの判定が行われると、ステップ120に進む。
【0036】
ステップ120では、CPU106は、そのパネルイベントがモード選択スイッチのイベントであるか否かを判定する。これは、パネルイベントマップ中のモード選択スイッチに対応するビットがオンになっているか否かを調べることにより行われる。CPU106は、モード選択スイッチのイベントでないことの判定が行われると、ステップ130に進む。一方、CPU106は、モード選択スイッチのイベントであることの判定が行われると、ステップ150に進む。
【0037】
ステップ150では、CPU106は、モード変更処理を行う。このモード変更処理とは、通常演奏モードと自動演奏モードとを、転換する処理である。モード変更処理が終了すると、CPU106は、ステップ130に進む。
【0038】
ステップ130では、CPU106は、上記のパネルイベントが選曲スイッチのイベントであるか否かを判定する。これは、パネルイベントマップ中の選曲スイッチに対応するビットがオンになっているか否かを判定することにより行われる。
【0039】
CPU106は、選曲スイッチのイベントでないことの判定が行われると、ステップ140に進む。一方、CPU106は、選曲スイッチのイベントであることの判定が行われると、ステップ160に進む。
【0040】
ステップ160では、CPU106は、選曲処理を行う。この選曲処理とは、自動演奏をする曲を選択する処理であり、選曲スイッチにおいて指定された曲が、自動演奏実行時に演奏される。選曲処理が終了すると、CPU106は、ステップ140に進む。
【0041】
ステップ140では、CPU106は、その他のスイッチに対する処理を行う。この「その他のスイッチ処理」により、例えば、音色選択スイッチ、音響効果選択スイッチ、音量設定スイッチ等の各パネルイベントに対する処理が行われることになる。この「その他のスイッチ処理」が終了すると、CPU106は、パネルイベント処理ルーチンからリターンして、図6のメインルーチンに戻る。
【0042】
図6に戻り、パネルイベント処理が終了すると、ステップ30では、CPU106は、鍵盤イベント処理を実行する。この鍵盤イベント処理の詳細を図8に示す。
【0043】
まず、ステップ210では、CPU106は、自動演奏モードと通常演奏モードのいずれであるのかを判定する。自動演奏モードであることの判定が行われると、CPU106は、ステップ220に進む。一方、通常演奏モードであることの判定が行われると、CPU106は、ステップ230に進む。
【0044】
ステップ220では、CPU106は、後述する自動演奏用イベント処理を実行し、図6のメインルーチンに戻る。ステップ230では、CPU106は、通常イベント処理(通常の電子楽器としての発音処理)を実行し、図6のメインルーチンに戻る。
【0045】
図6に戻り、ステップ40では、CPU106は、MIDI受信処理を実行する。具体的には、CPU106は、MIDI端子を介して接続している外部装置(図示せず)から入力されるデータに基づいて、発音、消音、その他の処理を行う。
【0046】
次に,、ステップ50では、CPU106は、その他の処理を行う。具体的には、CPU106は、音色選択処理とボリューム設定処理等を含む楽音発生装置107のパラメータ設定処理を行う。
【0047】
図9は、図8のステップ220の処理の詳細を示すフローチャートである。ステップ301では、CPU106は、押鍵イベント(外部イベント)の有無を判定する。これは、次のようにして行われる。即ち、CPU106は、キースイッチ回路101で鍵盤108をスキャンすることにより、各鍵の押下状態を示すデータ(以下、「新キーデータ」という。)を各鍵に対応したビット列として取り込む。
【0048】
次いで、CPU106は、前回読み込んで既にRAM104に記憶されているデータ(以下、「旧キーデータ」という。)と、上記新キーデータとを比較して相違するビットが存在するか否かを調べ、相違するビットをオンにした押鍵イベントマップを作成する。押鍵イベントの有無の判定は、この押鍵イベントマップを参照することにより行われる。即ち、押鍵イベントマップ中にオンになっているビットが1つでも存在すると、CPU106は、押鍵イベントがあった旨の判定を行う。押鍵イベントは、鍵盤108の押鍵速度の情報を含む。押鍵速度の情報は、発音の強弱に関する情報である。
【0049】
CPU106は、押鍵イベントがあったことの判定が行われると、ステップ302に進む。一方、CPU106は、押鍵イベントが無かったことの判定が行われると、自動演奏用イベント処理ルーチンからリターンして、図8のフローチャートに戻る。
【0050】
ステップ302では、CPU106は、上記の押鍵イベントが最初の押鍵イベントKON1であるか否かを判定する。CPU106は、最初の押鍵イベントKON1である場合には、ステップ303に進み、2回目以降の押鍵イベントである場合には、ステップ306に進む。
【0051】
ステップ303では、CPU106は、図11図12(A)、(B)及び図13のように、第1の演奏区間のテンポをT0に設定する。ここで、テンポT0は、図4(A)のテンポデータが示すテンポである。
【0052】
次に、ステップ304では、CPU106は、音量設定処理を行う。CPU106は、押鍵イベントKON1に含まれる押鍵速度の情報を基に、第1の演奏区間の自動演奏の音量を決定する。音量設定処理の詳細を図10に示す。
【0053】
ステップ410では、CPU106は、押鍵イベントに含まれる押鍵速度が、所定の値A1より大きいか否かを判定する。CPU106は、押鍵速度がA1より大きくない場合には、ステップ420に進み、押鍵速度がA1より大きい場合には、ステップ440に進む。
【0054】
ステップ420では、CPU106は、押鍵イベントに含まれる押鍵速度が、所定の値A2より小さいか否かを判定する。CPU106は、押鍵速度がA2より小さくない場合には、ステップ430に進み、押鍵速度がA2より小さい場合には、ステップ450に進む。なお、A1>A2である。
【0055】
ステップ430では、CPU106は、押鍵イベントに対応する演奏区間内のノートデータの発音の音量を、それぞれのノートデータのベロシティVに従った音量に設定する。その後、処理は、図9のフローチャートに戻る。
【0056】
ステップ440では、CPU106は、押鍵イベントに対応する演奏区間内のノートデータの発音の音量を、それぞれのノートデータのベロシティVを1.2倍した値に従った音量に設定する。その後、処理は、図9のフローチャートに戻る。
【0057】
ステップ450では、CPU106は、押鍵イベントに対応する演奏区間内のノートデータの発音の音量を、それぞれのノートデータのベロシティVを0.7倍した値に従った音量に設定する。その後、処理は、図9のフローチャートに戻る。
【0058】
上記ステップ410~450の処理により、演奏者は、鍵盤108の押鍵速度を変えることにより、その押鍵に対応する演奏区間の自動演奏時の音量を変化させることができる。
【0059】
図9に戻り、ステップ305では、CPU106は、自動演奏部として機能し、図11図12(A)、(B)及び図13のように、押鍵イベントKON1の入力に応じて、テンポT0で、演奏データ116の第1の演奏区間の自動演奏を行う。具体的には、CPU106は、第1の演奏区間のノートデータを順次読み出し、楽音発生装置107へ送る。楽音発生装置107は、ノートデータに含まれるキーナンバK及びゲートタイムGに従って、それぞれ、発音の音階、及び発音の継続時間を定めるとともに、ノートデータの有するベロシティVと、鍵盤108の押鍵速度とに従って、発音の音量を設定し、発音する。その後、処理は、図8のフローチャートに戻る。
【0060】
ステップ306では、CPU106は、図11のように、押鍵イベントの間隔t1-t0が演奏時間s1と同じ場合には、ステップ307に進む。押鍵イベントの間隔t1-t0は、前回の押鍵イベントKON1の入力時刻t0から今回の押鍵イベントKON2の入力時刻t1までの時間である。演奏時間s1は、現在の自動演奏の対象である第1の演奏区間のすべてをテンポT0で演奏した場合の演奏時間である。すなわち、CPU106は、現在の自動演奏の対象である第1の演奏区間の自動演奏の終了時刻u1と、今回の押鍵イベントKON2の入力時刻t1とが相互に同じ場合には、ステップ307に進む。
【0061】
ステップ307では、CPU106は、次の演奏区間のテンポを、現在の自動演奏の対象である演奏区間のテンポと同じテンポに設定する。例えば、押鍵イベントKON2が入力された場合、CPU106は、第2の演奏区間のテンポを、第1の演奏区間のテンポT0と同じテンポに設定する。
【0062】
次に、ステップ308では、CPU106は、今回の押鍵イベントKON2を基に、音量設定処理を行う。この音量設定処理は、図10のフローチャートの処理であり、前述の説明と同様である。CPU106は、押鍵イベントKON2に含まれる押鍵速度の情報を基に、第2の演奏区間の自動演奏の音量を決定する。
【0063】
次に、ステップ309では、CPU106は、図11のように、ステップ307で設定されたテンポT0で、第2の演奏区間の自動演奏を行う。具体的な自動演奏方法は、上記のステップ305と同様である。その後、処理は、図8のフローチャートに戻る。
【0064】
ステップ306において、CPU106は、図12(A)又は(B)のように、押鍵イベントの間隔t1-t0が演奏時間s1より長い場合には、ステップ310に進む。押鍵イベントの間隔t1-t0は、前回の押鍵イベントKON1の入力時刻t0から今回の押鍵イベントKON2の入力時刻t1までの時間である。演奏時間s1は、現在の自動演奏の対象である第1の演奏区間のすべてをテンポT0で演奏した場合の演奏時間である。すなわち、CPU106は、現在の自動演奏の対象である第1の演奏区間の自動演奏が終了した時刻u1の後に、時刻t1で今回の押鍵イベントKON2の入力があった場合には、ステップ310に進む。
【0065】
ステップ310では、CPU106は、図12(A)のように、現在の自動演奏の対象である第1の演奏区間の自動演奏が終了した時刻u1の後、所定の期間THが経過する前に、時刻t1で今回の押鍵イベントKON2の入力があった場合には、ステップ311に進む。所定の期間THは、演奏時間s1に対応した期間である。例えば、所定の期間THは、演奏データ116の1拍の長さである。
【0066】
ステップ311では、CPU106は、式(1)のように、現在の自動演奏の対象である第1の演奏区間のテンポT0と、その第1の演奏区間のすべてをテンポT0で演奏した場合の演奏時間s1と、前回の押鍵イベントKON1の入力から今回の押鍵イベントKON2の入力までの時間t1-t0とに応じて、次の自動演奏の対象である第2の演奏区間のテンポT1を演算する。テンポT1は、テンポT0とは異なるテンポである。
T1=T0×s1÷(t1-t0) ・・・(1)
【0067】
例えば、各演奏区間は1拍の長さであり、1拍の長さは4分音符の長さと同じである。演奏データ116の時間単位(tick)は、例えば、4分音符の長さd(タイムベース)=480とする単位である。演奏時間s1(秒)がc1(tick)であるとすると、演奏時間s1(秒)は、テンポT0を基に、式(2)で表される。テンポT0は、例えば、120である。本実施形態におけるテンポは、1分間の4分音符の拍数で表される。テンポ=120は、1分間に4分音符の長さで120拍打つ演奏の速さである。
s1=c1(tick)÷d(tick)×60(秒)÷T0
=480÷480×60÷120
=0.5秒 ・・・(2)
【0068】
例えば、(t1-t0)が0.75秒である場合、第2の演奏区間のテンポT1は、式(1)に基づく式(3)により、80となる。第2の演奏期間のテンポT1は、第1の演奏期間のテンポT0より遅い。
T1=T0×s1÷(t1-t0)
=120×0.5÷0.75
=80 ・・・(3)
【0069】
次に、ステップ312では、CPU106は、今回の押鍵イベントKON2を基に、音量設定処理を行う。この音量設定処理は、図10のフローチャートの処理であり、前述の説明と同様である。
【0070】
次に、ステップ313では、CPU106は、図12(A)のように、ステップ311で設定されたテンポT1で、第2の演奏区間の自動演奏を行う。具体的な自動演奏方法は、上記のステップ305と同様である。その後、処理は、図8のフローチャートに戻る。
【0071】
ステップ310において、CPU106は、図12(B)のように、現在の自動演奏の対象である第1の演奏区間の自動演奏が終了した時刻u1の後、所定の期間THが経過した後に、時刻t1で今回の押鍵イベントKON2の入力があった場合には、ステップ314に進む。例えば、所定の期間THは、演奏データ116の1拍の長さである。
【0072】
ステップ314では、CPU106は、次の演奏区間のテンポを、現在の自動演奏の対象である演奏区間のテンポと同じテンポ、又は、演奏データ116のテンポに設定する。例えば、押鍵イベントKON2が入力された場合、CPU106は、第2の演奏区間のテンポを、第1の演奏区間のテンポT0と同じテンポ、又は、図4(A)の演奏データ116の第2の演奏区間のテンポT0に設定する。
【0073】
次に、ステップ315では、CPU106は、今回の押鍵イベントKON2を基に、音量設定処理を行う。この音量設定処理は、図10のフローチャートの処理であり、前述の説明と同様である。
【0074】
次に、ステップ316では、CPU106は、図12(B)のように、ステップ314で設定されたテンポT0で、第2の演奏区間の自動演奏を行う。具体的な自動演奏方法は、上記のステップ305と同様である。その後、処理は、図8のフローチャートに戻る。
【0075】
なお、ステップ310の所定の期間THがあまりに短いと、図12(B)のように、時刻u1の一時停止の度に、元のテンポT0に戻されてしまうため、所定の期間THは、下限閾値(0.2秒)を設けるのがよい。なお、下限閾値は、0.2秒以外の値でもよい。
【0076】
所定の期間THは、例えば、演奏データ116の1拍の長さである。演奏データ116の1拍の長さが閾値(0.2秒)より長い場合には、所定の期間THは、演奏データ116の1拍の長さになる。また、演奏データ116の1拍の長さが閾値(0.2秒)より短い場合には、所定の期間THは、閾値(0.2秒)になる。
【0077】
ステップ306において、CPU106は、図13のように、押鍵イベントの間隔t1-t0が演奏時間s1より短い場合には、ステップ317に進む。押鍵イベントの間隔t1-t0は、前回の押鍵イベントKON1の入力時刻t0から今回の押鍵イベントKON2の入力時刻t1までの時間である。演奏時間s1は、現在の自動演奏の対象である第1の演奏区間のすべてをテンポT0で演奏した場合の演奏時間である。すなわち、CPU106は、現在の自動演奏の対象である第1の演奏区間の自動演奏が終了する前に、時刻t1で今回の押鍵イベントKON2の入力があった場合には、ステップ317に進む。
【0078】
ステップ317では、CPU106は、図13のように、現在の自動演奏の対象である演奏区間の残りの区間のテンポを、テンポT2に設定する。例えば、押鍵イベントKON2が入力された場合、CPU106は、第1の演奏区間の残りの時間t1~u1のテンポを、テンポT2に設定する。テンポT2は、テンポT0とは異なるテンポである。
【0079】
CPU106は、式(4)のように、現在の自動演奏の対象である第1の演奏区間のテンポT0と、その第1の演奏区間のすべてをテンポT0で演奏した場合の演奏時間s1と、前回の押鍵イベントKON1の入力から今回の押鍵イベントKON2の入力までの時間t1-t0とに応じて、テンポT2を演算する。
T2=T0×s1÷(t1-t0) ・・・(4)
【0080】
例えば、(t1-t0)が0.3秒である場合、テンポT2は、式(4)に基づく式(5)により、200となる。テンポT2は、テンポT0より速い。第1の演奏区間は、時刻t0~t1ではT0であり、時刻t1~u1ではT2である。
T2=T0×s1÷(t1-t0)
=120×0.5÷0.3
=200 ・・・(5)
【0081】
なお、テンポT2には下限閾値B1を設けた方がよい。その理由は、第1の演奏区間の末尾までの時間t1~u1が長いほど、次の第2の演奏区間の先頭からの演奏が押鍵イベントKON2の時刻t1から遅延するため、自動演奏の追従性が悪くなってしまうためである。押鍵イベントKON2の入力から第1の演奏区間の末尾までの時間t1-u1の許容時間をs3(秒)とする。第2の演奏区間の開始時刻u1は、押鍵イベントKON2の時刻t1から許容時間s3以上遅延しないように制限する。
【0082】
許容時間s3は、第1の演奏区間のテンポT0に比例するのが望ましい。つまり、テンポT0が遅いほど、許容時間s3は長くしてもよい。さらに、許容時間s3は、許容音価n(tick)を基に決めるとわかりやすい。例えば、許容音価n(tick)を8分音符の長さとしたとき、許容音価n(tick)は、4分音符の長さd(tick)の半分の長さ(240tick)となる。許容時間s3は、式(6)で表される。
s3(秒)=n(tick)÷d(tick)×60(秒)÷T0
=240÷480×60÷120
=0.25秒 ・・・(6)
【0083】
テンポT2の下限閾値B1は、許容時間s3を基に、式(7)により表される。
B1=c1(tick)÷d(tick)×60(秒)÷s3(秒)
=c1(tick)÷d(tick)×60(秒)÷{n(tick)÷d(tick)×60(秒)÷T0}
=T0×c1(tick)÷n(tick)
=120×480÷240
=240 ・・・(7)
【0084】
CPU106は、式(4)で演算されたテンポT2が下限閾値B1より小さい場合には、式(4)で演算されたテンポT2を下限閾値B1に修正する。例えば、CPU106は、式(5)で演算されたテンポT2(=200)が下限閾値B1(=240)より小さいので、式(5)で演算されたテンポT2を240に修正する。下限閾値B1を設けることにより、押鍵イベントKON2の入力時刻t1から第2の演奏区間の自動演奏開始時刻u1までの時間を短くし、押鍵操作に対する自動演奏開始の遅延時間を短くすることができる。
【0085】
次に、押鍵イベントの間隔t1-t0が0.2秒である例を説明する。この場合、CPU106は、式(4)に基づく式(8)により、テンポT2を演算する。
T2=T0×s1÷(t1-t0)
=120×0.5÷0.2
=300 ・・・(8)
【0086】
この場合、CPU106は、テンポT2(=300)が下限閾値B1(=240)よりも速いので、テンポT2=300とする。
【0087】
なお、式(6)の許容時間s3は、テンポT0に関係なく、固定値(例えば0.1秒など)としてもよいし、設定手段により設定できるようにしてもよい。0.1秒程度であれば、押鍵タイミングに対して追従性が悪いと感じないレベルである。
【0088】
次に、ステップ318では、CPU106は、図13のように、次の自動演奏の対象である演奏区間のテンポを、テンポT3に設定する。例えば、押鍵イベントKON2が入力された場合、CPU106は、第2の演奏区間のテンポを、テンポT3に設定する。
【0089】
CPU106は、式(9)により、テンポT3を演算する。ここで、係数fは、0~1.0の小数である。
T3=T2×f+T0×(1-f) ・・・(9)
【0090】
係数fは、テンポT0からテンポT1へのテンポ移行を滑らかにするための係数である。係数fが小さいほど、テンポT3は前の演奏区間のテンポT0を引き摺りやすく、係数fが大きいほど、テンポT2は押鍵イベントの間隔t1-t0に基づくテンポT2に移行しやすくなる。テンポT3は押鍵イベントの間隔t1-t0に基づくテンポT2に移行しやすくなる。0<f<1.0である場合、テンポT3は、テンポT0より速く、かつ、テンポT2より遅くなる。
【0091】
例えば、係数fが0.8であり、押鍵イベントの間隔t1-t0が0.4秒である場合を説明する。その場合、テンポT3は、式(9)を基に、式(10)で表される。第2の演奏区間のテンポT3は、140になる。
T3=T2×f+T0×(1-f)
={T0×s1÷(t1-t0)}×f+T0×(1-f)
={120×0.5÷0.4}×0.8+120×(1-0.8)
=150×0.8+120×(1-0.8)
=140 ・・・(10)
【0092】
次に、ステップ319では、CPU106は、今回の押鍵イベントKON2を基に、音量設定処理を行う。この音量設定処理は、図10のフローチャートの処理であり、前述の説明と同様である。
【0093】
次に、ステップ320では、CPU106は、図13のように、ステップ317で設定されたテンポT2で、第1の演奏区間の自動演奏を続行する。テンポT2は、テンポT0とは異なるテンポである。時刻u1では、CPU106は、テンポT2での第1の演奏区間の自動演奏を終了し、ステップ318で設定されたテンポT3で、第2の演奏区間の自動演奏を行う。具体的な自動演奏方法は、上記のステップ305と同様である。その後、処理は、図8のフローチャートに戻る。
【0094】
上記では、第1の演奏区間と第2の演奏区間を例に説明したが、第3の演奏区間移行も同様の処理が行われる。その場合、上記のテンポT0は、前の演奏区間のテンポを示す。
【0095】
図14は、タッチパネルに表示するピアノロールの例を示す図である。図1の自動演奏装置100がタブレットである場合、操作パネル109はタッチパネルであり、CPU106は、図5と同様に、操作パネル109のタッチパネルに図14のピアノロールを表示することができる。また、図1の自動演奏装置100が電子楽器である場合、操作パネル109はタッチパネルを含み、CPU106は、図5と同様に、操作パネル109のタッチパネルに図14のピアノロールを表示することができる。
【0096】
図14のピアノロールは、図5のピアノロールと同様に、演奏データの複数のノートデータと、再生位置117を有する。演奏データの複数のノートデータは、複数の演奏区間の破線119で、区分されている。複数の演奏区間の各々は、例えば、演奏データの1拍の長さである。
【0097】
さらに、図14のピアノロールは、タップエリア118を有する。上記の押鍵イベントKON1及びKON2は、外部イベントの一例である。上記の押鍵イベントKON1及びKON2の代わりに、その他の外部イベントを用いることができる。外部イベントは、鍵盤108の押鍵操作、又は、操作パネル109の操作子若しくはタッチパネルの操作等に基づくイベントである。ここでは、外部イベントの他の例として、タップエリア118のタップ操作に基づくタップイベントの例を説明する。すなわち、自動演奏モードにおいて、上記の鍵盤108の押鍵操作の代わりに、タップエリア118のタップ操作を用いることができる。
【0098】
CPU106は、タップエリア118のタップ操作に基づき、タップイベントを生成する。タップイベントは、発音の強弱に関する情報を含む。発音の強弱に関する情報は、図10の鍵盤108の押鍵速度に対応する。CPU106は、上記と同様に、タップエリア118のタップイベントの入力時刻に基づき、各演奏区間のテンポを設定する。
【0099】
上記の発音の強弱に関する情報は、タップエリア118のタップ強度の情報である。強くタップするほど、発音を強くする。ここで、タップ強度は、タップ速度(タップオンからタップオフまでの時間)なども含まれる。あるいは、上記の発音の強弱に関する情報は、タップエリア118内のタップ位置の情報でもよい。例えば、タップエリア118内のタップ位置が上になるほど、発音が強くなり、タップエリア118内のタップ位置が下になるほど、発音が弱くなる。それ以外にも、スワイプ(距離、方向、速度など)、その他のタッチジェスチャの違いなどにより、発音の強弱を入力してもよい。要するに、タッチ操作の違いにより、発音の強弱をコントロール可能なものであれば、上記に限らない。これにより、CPU106は、操作者の1つのタップ操作に基づき、発音の強弱に関する情報を含むタップイベントを生成する。CPU106は、上記の押鍵速度及び押鍵イベントの代わりに、発音の強弱に関する情報及びタップイベントを用いて、図9及び図10の処理を行う。
【0100】
次に、本実施形態の効果を説明する。特許文献1では、図5の第1の演奏区間内の1番目と2番目のノートデータの自動演奏を行った後、押鍵イベントKON2の入力があった場合、第1の演奏区間内の3番目と4番目のノートデータを自動演奏せず、第2の演奏区間の自動演奏を開始する。これは、原曲の音を間引いて演奏していることになるため、音楽的には大きな課題である。
【0101】
そこで、本実施形態では、CPU106は、図13のように、第1の演奏区間の自動演奏が終了する前に、押鍵イベントKON2が入力された場合には、テンポT0からより高速なテンポT2に変更し、第1の演奏区間の自動演奏を続行する。第1の演奏区間の自動演奏が終了すると、CPU106は、テンポT0及びT2を加味した新たなテンポT3に切り替えて、第2の演奏区間の自動演奏を行う。
【0102】
本実施形態によれば、CPU106は、押鍵に対する自動演奏の追従性を最低限維持しながら、未発音のノートデータをなくすことができるので、上記の特許文献1の課題を解決することができる。
【0103】
また、特許文献1では、第1の演奏区間の自動演奏が終了する前に、押鍵イベントが入力された場合には、直ちに、第2の演奏区間の先頭にジャンプし、第2の演奏区間の先頭からいきなりテンポが高速になり、第2の演奏区間の末尾にすぐに演奏が到達して一時停止することで、操作者の意に反した不自然な演奏になってしまう、という課題がある。
【0104】
そこで、本実施形態によれば、CPU106は、第2の演奏区間に対して、テンポT0及びT2を加味した新たなテンポT3を設定することにより、いきなりテンポが高速になることを抑制し、上記の特許文献1の課題を解決することができる。テンポT3は、テンポT0より速く、テンポT2より遅いテンポにすることができる。
【0105】
また、図12(A)において、押鍵イベントの間隔t1-t0が極めて長い場合には、第2の演奏区間のテンポT1が極端に遅くなり、不自然な演奏になってしまうという課題がある。
【0106】
そこで、CPU106は、図12(B)のように、第1の演奏区間の自動演奏終了時刻u1の後、所定の期間THが経過した後に、押鍵イベントKON2の入力があった場合には、押鍵イベントの間隔t1-t0を無視して、第2の演奏区間に対して、演奏データ116のテンポT0、又は、前の演奏区間のテンポT0に設定する。これにより、押鍵イベントの間隔t1-t0が極めて長い場合でも、第2の演奏区間のテンポT1が極端に遅くなることを抑制し、上記の課題を解決することができる。
【0107】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体及び上記のプログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0108】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0109】
100 自動演奏装置
101 キースイッチ回路
102 パネルスイッチ回路
104 RAM
105 ROM
106 CPU
107 楽音発生装置
108 鍵盤
109 操作パネル
111 ディジタル/アナログ(D/A)変換器
112 増幅器
113 スピーカ
114 バス
115 テンポタイマー
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14