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

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

▶ ローランド株式会社の特許一覧

特開2024-12235電子楽器、自動操作方法および自動操作プログラム
<>
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図1
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図2
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図3
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図4
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図5
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図6
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図7
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図8
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図9
  • 特開-電子楽器、自動操作方法および自動操作プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024012235
(43)【公開日】2024-01-30
(54)【発明の名称】電子楽器、自動操作方法および自動操作プログラム
(51)【国際特許分類】
   G10F 1/02 20060101AFI20240123BHJP
   G10H 1/00 20060101ALI20240123BHJP
【FI】
G10F1/02 B
G10H1/00 102Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022114426
(22)【出願日】2022-07-18
(71)【出願人】
【識別番号】000116068
【氏名又は名称】ローランド株式会社
(74)【代理人】
【識別番号】110000534
【氏名又は名称】弁理士法人真明センチュリー
(72)【発明者】
【氏名】須佐美 亮
【テーマコード(参考)】
5D478
【Fターム(参考)】
5D478EB21
5D478EB31
(57)【要約】
【課題】出力される楽音と自動操作される鍵との間のずれを抑制できる電子楽器、自動操作方法および自動操作プログラムを提供すること。
【解決手段】先のノートオフF1kとそのノートオフF1kと同一の音による後のノートオンN2kとの時間差ΔTが小さい場合に、ノートオフF1kをノートオフ前倒時間T3だけ前倒し、ノートオンN2kをノートオン遅延時間T4だけ遅延させる。これにより、ノートオフF1kによる鍵2aの離鍵の開始から、ノートオンN2kによる押鍵の開始まで時間を確保でき、十分に鍵2aの離鍵を行った上で押鍵を行うことができる。よって、ノートオフF1k及びノートオンN2sによる鍵2aの自動操作と、ノートオフF1s及びノートオンN2sとによる楽音の出力との間のずれが抑制されるので、これら鍵2aの自動操作と楽音の出力とによるユーザHの違和感を抑制できる。
【選択図】図2
【特許請求の範囲】
【請求項1】
自動操作が可能な鍵を有する鍵盤を備えた電子楽器であって、
ノートオン又はノートオフを含む演奏情報と前記演奏情報の入力タイミングとを取得する演奏情報取得手段と、
前記演奏情報取得手段で取得された演奏情報による前記鍵盤の鍵の自動操作を行うタイミングである鍵駆動タイミングを、前記演奏情報の入力タイミングに基づいて設定する鍵駆動タイミング設定手段と、
前記鍵駆動タイミング設定手段で設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する前倒手段と、
前記演奏情報取得手段で取得された演奏情報に基づく前記鍵盤の鍵の自動操作を、前記演奏情報の鍵駆動タイミングで行う自動操作手段と、を備えていることを特徴とする電子楽器。
【請求項2】
前記鍵駆動タイミング設定手段は、前記演奏情報取得手段で取得された演奏情報の入力タイミングに、前記タイミング閾値よりも長い先読遅延時間を加算したタイミングを前記演奏情報の鍵駆動タイミングに設定するものであることを請求項1記載の電子楽器。
【請求項3】
前記演奏情報取得手段で取得された演奏情報の楽音を当該演奏情報の入力タイミングに基づくタイミングで出力する楽音出力手段を備え、
前記楽音出力手段は、前記演奏情報取得手段で取得された演奏情報の楽音を、前記演奏情報の入力タイミングを前記先読遅延時間と前記鍵盤の鍵の自動操作に要する時間に応じた鍵駆動遅延時間とを加算した時間だけ遅延させたタイミングで出力するものであることを特徴とする請求項2記載の電子楽器。
【請求項4】
前記前倒手段は、前記鍵駆動タイミング設定手段で設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、前記タイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを第1時間だけ前倒したタイミングに再設定するものであり、
前記第1時間は、前記先読遅延時間よりも短い時間であることを特徴とする請求項2又は3に記載の電子楽器。
【請求項5】
前記先の演奏情報は、ノートオフであり、
前記後の演奏情報は、ノートオンであり、
前記第1時間は、更に前記鍵盤の鍵が自動操作によって完全に押鍵された状態から完全に離鍵された状態になるまでに要する時間以下に設定されるものであることを特徴とする請求項4記載の電子楽器。
【請求項6】
前記鍵駆動タイミング設定手段で設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、前記タイミング閾値以下の場合に、後の演奏情報の鍵駆動タイミングを更に遅延させたタイミングに再設定する遅延手段を備えていることを特徴とする請求項1又は2に記載の電子楽器。
【請求項7】
前記鍵駆動タイミング設定手段は、前記演奏情報取得手段で取得された演奏情報の入力タイミングに、前記タイミング閾値よりも長い先読遅延時間を加算したタイミングを前記演奏情報の鍵駆動タイミングに設定するものであり、
前記前倒手段は、前記鍵駆動タイミング設定手段で設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、前記タイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを第2時間だけ前倒したタイミングに再設定するものであり、
前記遅延手段は、前記鍵駆動タイミング設定手段で設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、前記タイミング閾値以下の場合に、後の演奏情報の鍵駆動タイミングを第3時間だけ更に遅延させたタイミングに再設定するものであり、
前記第2時間と前記第3時間を加算した時間は、前記先読遅延時間よりも短い時間であることを特徴とする請求項6記載の電子楽器。
【請求項8】
前記第2時間と前記第3時間を加算した時間は、更に前記鍵盤の鍵が自動操作によって完全に押鍵された状態から完全に離鍵された状態になるまでに実際に要する時間以下に設定されるものであることを特徴とする請求項7記載の電子楽器。
【請求項9】
自動操作が可能な鍵を有する鍵盤を備えた電子楽器で実行される自動操作方法であり、
ノートオン又はノートオフを含む演奏情報と前記演奏情報の入力タイミングとを取得する演奏情報取得ステップと、
前記演奏情報取得ステップで取得された演奏情報による前記鍵盤の鍵の自動操作を行うタイミングである鍵駆動タイミングを、前記演奏情報の入力タイミングに基づいて設定する鍵駆動タイミング設定ステップと、
前記鍵駆動タイミング設定ステップで設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する前倒ステップと、
前記演奏情報取得ステップで取得された演奏情報に基づく前記鍵盤の鍵の自動操作を、前記演奏情報の鍵駆動タイミングで行う自動操作ステップと、を備えていることを特徴とする自動操作方法。
【請求項10】
自動操作が可能な鍵を有する鍵盤を備えたコンピュータに、前記鍵盤の鍵の自動操作処理を実行させる自動操作プログラムであって、
ノートオン又はノートオフを含む演奏情報と前記演奏情報の入力タイミングとを取得する演奏情報取得ステップと、
前記演奏情報取得ステップで取得された演奏情報による前記鍵盤の鍵の自動操作を行うタイミングである鍵駆動タイミングを、前記演奏情報の入力タイミングに基づいて設定する鍵駆動タイミング設定ステップと、
前記鍵駆動タイミング設定ステップで設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する前倒ステップと、
前記演奏情報取得ステップで取得された演奏情報に基づく前記鍵盤の鍵の自動操作を、前記演奏情報の鍵駆動タイミングで行う自動操作ステップと、を前記コンピュータに実行させることを特徴とする自動操作プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子楽器、自動操作方法および自動操作プログラムに関するものである。
【背景技術】
【0002】
特許文献1には、外部記憶装置81に記憶される曲データからキーオンデータ及びキーオフデータを取得し、取得されたキーオンデータ及びキーオフデータを用いて、音源回路66及びサウンドシステム69で楽音を生成して出力すると共に、ソレノイド52の駆動により鍵11を押鍵および離鍵させる電子楽器が開示されている。かかる楽音の出力および鍵11の動作により、ユーザに鍵11の自動的な動作(自動操作)に応じて楽音が出力されているように見せることができる。
【0003】
ところで、演奏における連打を実現するため、曲データに、先のキーオフデータの直後に同一の音による後のキーオンデータが記憶されている場合がある。この場合、出力される楽音においては、ユーザは先のキーオフデータと後のキーオンデータとによる「音の切れ目」を認識できる。その一方で、鍵11はソレノイド52によって駆動するため、先のキーオフデータによって鍵21aが十分に離鍵される前に、後のキーオンデータによって押鍵が開始されてしまう。これによって、ユーザにはその鍵11が殆ど動作していないように見えてしまい、「音の切れ目」を認識できる、出力される楽音との違和感を覚えてしまう。
【0004】
そこで特許文献1では、同一の音による先のキーオフデータと後のキーオンデータとが短時間のうちに取得された場合に、後のキーオンデータによって鍵11を押鍵させるタイミングを遅延させる。これにより、先のキーオフデータによって鍵11の離鍵が十分に行われた後に、後のキーオンデータによって鍵11を押鍵させることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008-233825号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら特許文献1では、後のキーオンデータによる鍵11の押鍵を遅延させるため、後のキーオンデータによる楽音が出力が開始された後に鍵11の押鍵が開始される等、出力される楽音と鍵11の動作との間にずれが生じてしまう。このような出力される楽音と鍵11の動作との間のずれにユーザは違和感を覚えてしまう虞があるという問題点があった。
【0007】
本発明は、上述した問題点を解決するためになされたものであり、出力される楽音と自動操作される鍵との間のずれを抑制できる電子楽器、自動操作方法および自動操作プログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
この目的を達成するために本発明の電子楽器は、自動操作が可能な鍵を有する鍵盤を備えたものであり、ノートオン又はノートオフを含む演奏情報と前記演奏情報の入力タイミングとを取得する演奏情報取得手段と、前記演奏情報取得手段で取得された演奏情報による前記鍵盤の鍵の自動操作を行うタイミングである鍵駆動タイミングを、前記演奏情報の入力タイミングに基づいて設定する鍵駆動タイミング設定手段と、前記鍵駆動タイミング設定手段で設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する前倒手段と、前記演奏情報取得手段で取得された演奏情報に基づく前記鍵盤の鍵の自動操作を、前記演奏情報の鍵駆動タイミングで行う自動操作手段と、を備えている。
【0009】
本発明の自動操作方法は、自動操作が可能な鍵を有する鍵盤を備えた電子楽器で実行される方法であり、ノートオン又はノートオフを含む演奏情報と前記演奏情報の入力タイミングとを取得する演奏情報取得ステップと、前記演奏情報取得ステップで取得された演奏情報による前記鍵盤の鍵の自動操作を行うタイミングである鍵駆動タイミングを、前記演奏情報の入力タイミングに基づいて設定する鍵駆動タイミング設定ステップと、前記鍵駆動タイミング設定ステップで設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する前倒ステップと、前記演奏情報取得ステップで取得された演奏情報に基づく前記鍵盤の鍵の自動操作を、前記演奏情報の鍵駆動タイミングで行う自動操作ステップと、を備えている。
【0010】
また本発明の自動操作プログラムは、自動操作が可能な鍵を有する鍵盤を備えたコンピュータに、前記鍵盤の鍵の自動操作処理を実行させるプログラムであり、ノートオン又はノートオフを含む演奏情報と前記演奏情報の入力タイミングとを取得する演奏情報取得ステップと、前記演奏情報取得ステップで取得された演奏情報による前記鍵盤の鍵の自動操作を行うタイミングである鍵駆動タイミングを、前記演奏情報の入力タイミングに基づいて設定する鍵駆動タイミング設定ステップと、前記鍵駆動タイミング設定ステップで設定された、先の演奏情報の鍵駆動タイミングと、前記先の演奏情報と同一の音に関する後の演奏情報の鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する前倒ステップと、前記演奏情報取得ステップで取得された演奏情報に基づく前記鍵盤の鍵の自動操作を、前記演奏情報の鍵駆動タイミングで行う自動操作ステップと、を前記コンピュータに実行させるものである。
【図面の簡単な説明】
【0011】
図1】電子ピアノの外観を表す図である。
図2】(a)は、従来技術における鍵の自動操作および楽音の出力のタイミングを表す図であり、(b)は、実施形態において先のノートオフの前倒し及び後のノートオンの遅延を行う前の鍵の自動操作および楽音の出力のタイミングを表す図であり、(c)は、実施形態において先のノートオフの前倒し及び後のノートオンの遅延を行った後の鍵の自動操作および楽音の出力のタイミングを表す図である。
図3】(a)は、実施形態において後のノートオフの遅延を行う前の鍵の自動操作および楽音の出力のタイミングを表す図であり、(b)は、実施形態において後のノートオフの遅延を行った後の鍵の自動操作および楽音の出力のタイミングを表す図である。
図4】電子ピアノの機能ブロック図である。
図5】(a)は、電子ピアノの電気的構成を示すブロック図であり、(b)は、発音ノートバッファを模式的に表す図であり、(c)は、鍵駆動ノートバッファを模式的に表す図である。
図6】メイン処理のフローチャートである。
図7】鍵駆動ノート追加処理のフローチャートである。
図8】タイマーイベント処理のフローチャートである。
図9】(a)は、変形例における先のノートオフの前倒しを行った後の鍵の自動操作および楽音の出力のタイミングを表す図であり、(b)は、変形例における先のノートオフの前倒しを行った後の鍵の自動操作および楽音の出力のタイミングを表す図である。
図10】変形例における鍵駆動ノート追加処理のフローチャートである。
【発明を実施するための形態】
【0012】
以下、好ましい実施例について、添付図面を参照して説明する。まず、図1を参照して本実施形態の電子ピアノ1の概要を説明する。図1は、電子ピアノ1の外観を表す図であり、電子ピアノ1は、ユーザHの演奏に基づいた楽音や、MIDI(Musical Instrument Digital Interface)規格の楽曲データであるMIDIデータMDに基づいて楽音を発音する電子楽器である。
【0013】
電子ピアノ1には、主に鍵盤2と、ユーザHからの各種設定が入力される設定キー3と、各種設定の設定状態等が表示されるLCD4とが配設される。鍵盤2は、ユーザHの演奏による演奏情報を取得するための入力装置である。鍵盤2には、複数の鍵2aが配設され、ユーザHによる鍵2aの押鍵/離鍵操作に応じたMIDI規格の演奏情報が、CPU10(図5参照)へ出力され、楽音として出力される。
【0014】
鍵盤2には、鍵2aのそれぞれを独立して上下に駆動させるソレノイド2bが設けられる。ユーザHによって指定されたMIDIデータMDから演奏情報のうちのノートオンが取得された場合にソレノイド2bにより鍵2aを下方に駆動させることで、鍵2aの押鍵が実現される。一方で、MIDIデータMDから演奏情報のうちのノートオフが取得された場合に、ソレノイド2bにより鍵2aを上方に駆動させることで鍵2aの離鍵が実現される。
【0015】
ユーザHに指定されたMIDIデータMDに基づくソレノイド2bによる鍵2aの押鍵/離鍵と、当該MIDIデータMDによる楽音の発音とを同期させることで、ユーザHに電子ピアノ1が自動演奏されているように見せることができる。以下、このようなMIDIデータMDに基づきソレノイド2bを駆動させ、鍵2aを動作させることを「鍵2aの自動操作」という。
【0016】
本実施形態では、先のノートオフと同じ音に関する後のノートオンが取得されたタイミングとの時間差が小さい場合、先のノートオフによって鍵2aを自動操作させるタイミングを前倒し、更に後のノートオンによって鍵2aを自動操作させるタイミングを遅延させることで、先のノートオフによる鍵2aの離鍵を十分に実行できるように構成される。図2,3を参照して、鍵2aを自動操作させるタイミングを説明する。
【0017】
図2(a)は、従来技術における鍵2aを自動操作させるタイミングを表す図である。図2及び以降の図3,9において、横軸が時間軸とされる。本実施形態では、時間の単位として「Tick」が用いられ、1Tick当たりの所要時間として、「1ミリ秒」が例示される。なお、時間の単位は「Tick」に限られず、例えば「秒」や「分」等の他の時間の単位を用いても良い。また、1Tick当たりの所要時間は1ミリ秒に限られず、1ミリ秒以上でも1ミリ秒以下でも良い。
【0018】
MIDIデータMDから取得される演奏情報を「入力ノート」といい、その符号の末尾には「i」が付される。その入力ノートを楽音を発音させるタイミングに配置したものを「発音ノート」といい、その符号の末尾には「s」が付される。また、入力ノートを鍵2aを自動操作させるタイミングに配置したものを「鍵駆動ノート」といい、その符号の末尾には「k」が付される。これら入力ノート、発音ノート及び鍵駆動ノートにおいて、ノートオンを丸(「〇」)で表し、ノートオフを白抜きの四角(「□」)で表す。
【0019】
鍵駆動ノートによって自動操作させた際の鍵2aの上下位置が「鍵の上下位置」とされる。このうち、鍵2aを完全に離鍵した場合の鍵2aの上下位置が「離鍵位置Ku」とされ、鍵2aを完全に押鍵した場合の鍵2aの上下位置が「押鍵位置Kb」とされる。
【0020】
従来においては、図2(a)に示す通り、MIDIデータMDから入力ノートが取得された場合、その入力ノートに応じたタイミングに基づき鍵駆動ノート及び発音ノートが配置される。配置された鍵駆動ノートのタイミング(以下「鍵駆動タイミング」という)で鍵2aの自動操作が行われ、配置された発音ノートのタイミング(以下「楽音出力タイミング」という)で楽音の出力が行われる。
【0021】
従来において、鍵駆動タイミングを、入力ノートの入力タイミングと略同時のタイミングに設定していた。一方で楽音出力タイミングを、その入力ノートの入力タイミングから鍵駆動遅延時間T1させたタイミングに設定していた。ここで鍵駆動遅延時間T1は、完全に離鍵された鍵2aをソレノイド2bによって完全に押鍵された状態までに要する時間に基づく時間であり、「110ミリ秒」が例示される。
【0022】
例えば、入力ノートとしてノートオンN1iが時刻t1で取得された場合、その入力ノートに対応する鍵駆動ノートのノートオンN1kは時刻t1に配置され、入力ノートに対応する楽音出力ノートのノートオンN1sは、時刻t1から鍵駆動遅延時間T1後の時刻t2に配置される。このようにノートオンN1sとノートオンN1kとが鍵駆動遅延時間T1を隔てたタイミングに配置されることで、出力される楽音と鍵2aの自動操作との間のタイムラグを抑制できる。
【0023】
ところで、演奏における連打を実現するため、MIDIデータMDから先のノートオフが取得されたタイミングと、その先のノートオフと同一の音に関する後のノートオンが取得されたタイミングとの時間差が小さい場合がある。例えば、図2(a)における、入力ノートのノートオフF1iとノートオンN2iとのように、これらの時間差ΔTが短時間のうちに取得される場合がある。
【0024】
このような場合、ノートオフF1kとノートオンN2kとを、時間差ΔTのまま鍵2aの自動操作に用いるとソレノイド2bによって鍵2aを物理的に動かす必要があるため、先のノートオフF1kによって鍵2aが十分に離鍵される前に、後のノートオンN2kによって押鍵が開始されてしまう。これによって、ユーザHには鍵2aが殆ど動作していないように見えてしまう。
【0025】
一方で、ノートオフF1sとノートオンN2sとによる楽音の出力は、これらの時間差ΔTが短時間でも実行され、ユーザHは出力されるこれらの楽音を区別できる。即ちユーザHにとっては、鍵2aが殆ど動作しないにもかかわらず、ノートオフF1sとノートオンN2sとによる楽音は出力されるように認識されるため、鍵2aの自動操作と楽音の出力とに違和感を覚えてしまう虞がある。
【0026】
そこで本実施形態では、鍵駆動ノートにおいて同一の音による先のノートオフと後のノートオンとの時間差ΔTが、所定の時間より小さい場合は、先のノートオフのタイミングを前倒させると共に後のノートオンを遅延させることで、先のノートオフによる鍵2aの離鍵を十分に実現させる。図2(b),(c)を参照して、本実施形態における先のノートオフの前倒し及び後のノートオンの遅延を説明する。
【0027】
図2(b)は、本実施形態において先のノートオフの前倒し及び後のノートオンの遅延を行う前の鍵の自動操作および楽音の出力のタイミングを表す図である。本実施形態では、入力ノートが取得された場合、その入力ノートに対応する楽音出力タイミング及び鍵駆動タイミングを遅延させる。
【0028】
具体的には、楽音出力タイミングは、対応する入力ノートの入力タイミングから鍵駆動遅延時間T1と先読遅延時間T2とを加算した時間だけ遅延させたタイミングとされ、鍵駆動タイミングは、対応する入力ノートの入力タイミングから先読遅延時間T2を遅延させたタイミングとされる。先読遅延時間T2は、先のノートオフを前倒す後述のノートオフ前倒時間T3と後のノートオンを遅延させる後述のノートオン遅延時間T4とに基づく時間であり、「75ミリ秒」が例示される。
【0029】
入力ノートの入力タイミングから先読遅延時間T2だけ遅延させた鍵駆動ノートにおいて、先のノートオフと後のノートオフとの時間差ΔTが小さい場合、例えば、図2(b)における先のノートオフF1kと後のノートオンN2kとの時間差ΔTが、ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間より小さい場合、先のノートオフF1kをノートオフ前倒時間T3だけ前倒し、ノートオンN2kをノートオン遅延時間T4だけ遅延させる。
【0030】
本実施形態では、ノートオフ前倒時間T3及びノートオン遅延時間T4はそれぞれ「35ミリ秒」が例示される。即ちノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間が、上記した先読遅延時間T2以下となるように、先読遅延時間T2、ノートオフ前倒時間T3及びノートオン遅延時間T4が設定される。
【0031】
前倒しされた先のノートオフF1kの鍵駆動タイミングは、対応するノートオフF1iの入力タイミングから先読遅延時間T2を遅延させ、更にその時刻からノートオフ前倒時間T3が前倒しされた時刻とされる。即ち先のノートオフF1kの鍵駆動タイミングは、ノートオフF1iの入力タイミングに、先読遅延時間T2からノートオフ前倒時間T3を減算した時間を遅延させた時刻とされる。
【0032】
一方で遅延された後のノートオンN2kの鍵駆動タイミングは、対応するノートオンN2iの入力タイミング(時刻t4)から先読遅延時間T2を遅延させ、更にノートオン遅延時間T4を遅延させた時刻とされる。即ち後のノートオンN2kの鍵駆動タイミングは、ノートオンN2iの入力タイミングから、先読遅延時間T2とノートオン遅延時間T4とを加算した時間を遅延させた時刻とされる。
【0033】
このように先のノートオフF1kの鍵駆動タイミングを前倒させ、後のノートオンN2kの鍵駆動タイミングを遅延させることで、先のノートオフF1kによる鍵2aの離鍵の開始から、後のノートオンN2kによる押鍵の開始まで時間を確保できる。よって、先のノートオフF1kによる鍵2aの離鍵を十分に行った上で、後のノートオンN2kによる押鍵を行うことができる。これにより、ノートオフF1k及びノートオンN2sによる鍵2aの自動操作と、ノートオフF1s及びノートオンN2sとによる楽音の出力との間のずれが抑制されるので、これら鍵2aの自動操作と楽音の出力とによるユーザHの違和感を抑制できる。
【0034】
また、先のノートオフF1kの鍵駆動タイミングと後のノートオンN2kの鍵駆動タイミングとの間の時間の確保において、先のノートオフF1kの鍵駆動タイミングと後のノートオンN2kを鍵駆動タイミングとのそれぞれを変更させることで、これらのうちのいずれかと、対応する先のノートオフF1sの楽音出力タイミング又は後のノートオンN2sの楽音出力タイミングのいずれかとが大きくずれるのを抑制できる。
【0035】
なお、ノートオフ前倒時間T3及びノートオン遅延時間T4をそれぞれ35ミリ秒としたが、これに限られない。ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間が、上記した先読遅延時間T2以下であれば、35ミリ秒以上でも良いし、35ミリ秒以下でも良い。ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間が長いほど、鍵盤2の鍵2aを完全に離鍵した状態から、押鍵させる「フルストローク」を実現できる。一方で、ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間が短いほど、鍵2aを途中まで離鍵させて押鍵させる、実際の鍵2aの連打に近似した動作を実現できる。
【0036】
次に図3を参照して、鍵駆動ノートにおいて同一の音による先のノートオンと後のノートオフとの時間差ΔTが小さい場合を説明する。図3(a)は、本実施形態において後のノートオフの遅延を行う前の鍵の自動操作および楽音の出力のタイミングを表す図である。図3(a)において、先のノートオンN3kの鍵駆動タイミングと、同一の音による後のノートオフF4kの鍵駆動タイミングとの時間差ΔTが小さい場合も、先のノートオンN3kによって鍵2aが十分に押鍵される前に、後のノートオフF4kによって離鍵が開始される。これにより、ユーザHにとっては鍵2aが殆ど動作していないように見えてしまう。
【0037】
そこで本実施形態では、先のノートオンN3kの鍵駆動タイミングと、同一の音による後のノートオフF4kの鍵駆動タイミングとの時間差ΔTが小さい場合に、後のノートオフF4kの鍵駆動タイミングを遅延させることで、先のノートオンN3kによって鍵2aを押鍵させる時間を確保する。図3(b)を参照して、後のノートオフF4kの鍵駆動タイミングの遅延を説明する。
【0038】
図3(b)は、本実施形態において後のノートオフの遅延を行った後の鍵の自動操作および楽音の出力のタイミングを表す図である。先のノートオンN3kの鍵駆動タイミングと、後のノートオフF4kの鍵駆動タイミングとの時間差ΔTがノートオフ遅延時間T5より小さい場合は、後のノートオフF4kの鍵駆動タイミングをノートオフ遅延時間T5だけ遅延させる。
【0039】
具体的に、後のノートオフF4kは、対応するノートオフF4iの入力タイミング(時刻tp)から、先読遅延時間T2とノートオフ遅延時間T5とを加算した時間を遅延させた時刻とされる。なお、本実施形態においてノートオフ遅延時間T5は「110ミリ秒」が例示されるが、110ミリ秒以上でも110ミリ秒以下でも良い。
【0040】
このように、後のノートオフF4kの鍵駆動タイミングを遅延させることで、先のノートオンN3kによる鍵2aの押鍵の開始から、後のノートオフF4kによる離鍵の開始まで時間を確保できるので、鍵2aの押鍵を十分に行った上で、離鍵を行うことができる。これにより、ノートオンN3k及びノートオフF4kによる鍵2aの自動操作と、ノートオンN3s及びノートオフF4sによる楽音の出力との間のずれが抑制されるので、これら鍵2aの自動操作と楽音の出力とによるユーザHの違和感を抑制できる。
【0041】
次に、図4を参照して電子ピアノ1の機能を説明する。図4は、電子ピアノ1の機能ブロック図である。図4に示すように、電子ピアノ1は、演奏情報取得手段100と、鍵駆動タイミング設定手段101と、前倒手段102と、自動操作手段103とを有する。
【0042】
演奏情報取得手段100は、演奏情報とその入力タイミングとを取得する手段であり、図5で後述のCPU10で実現される。鍵駆動タイミング設定手段101は、演奏情報取得手段100で取得された演奏情報による鍵盤2の鍵2aの自動操作を行うタイミングである鍵駆動タイミングを、当該演奏情報の入力タイミングに基づいて設定する手段であり、CPU10で実現される。
【0043】
前倒手段102は、鍵駆動タイミング設定手段101で設定された、先の演奏情報の鍵駆動タイミングと、その先の演奏情報と同一の音に関する後の演奏情報との鍵駆動タイミングとの時間差が、所定のタイミング閾値以下の場合に、先の演奏情報の鍵駆動タイミングを前倒したタイミングに再設定する手段であり、CPU10で実現される。自動操作手段103は、自動操作手段は、演奏情報取得手段100で取得された演奏情報に基づく鍵盤2の鍵2aの自動操作を、当該演奏情報の鍵駆動タイミングで行う手段であり、CPU10及び上記のソレノイド2bで実現される。
【0044】
先の演奏情報の鍵駆動タイミングと後の演奏情報の鍵駆動タイミングとの時間差が所定のタイミング閾値以下の場合に、先の演奏情報による鍵2aの鍵駆動タイミングを前倒したタイミングに再設定される。これにより、先の演奏情報による鍵の自動操作の開始から、後の演奏情報による鍵2aの自動操作の開始までの時間を、当初の先の演奏情報の入力タイミングと後の演奏情報の入力タイミングとの時間よりも長くできるので、先の演奏情報によって鍵2aを自動操作させる時間を確保できる。
【0045】
これに加え、後の演奏情報の鍵駆動タイミングを、取得された当初の後の演奏情報の入力タイミングに基づくタイミングのままとできるので、後の演奏情報による楽音の出力のタイミングと後の演奏情報による鍵2aの自動操作との間のずれを抑制できる。これにより、後の演奏情報によって出力される楽音と鍵盤2の鍵2aの自動操作とによるユーザの違和感を抑制できる。
【0046】
次に、図5を参照して電子ピアノ1の電気的構成を説明する。図5(a)は、電子ピアノ1の電気的構成を示すブロック図である。電子ピアノ1は、CPU10と、フラッシュROM11と、RAM12と、上記した鍵盤2、設定キー3及びLCD4と、音源13と、Digital Signal Processor14(以下「DSP14」と称す)とを有し、それぞれバスライン15を介して接続される。
【0047】
CPU10は、バスライン15により接続された各部を制御する演算装置である。フラッシュROM11は、CPU10により実行されるプログラムや固定値データ等を格納した書き換え可能な不揮発性の記憶装置であり、制御プログラム11aと、複数のMIDIデータMDが記憶されるMIDIデータ11bとを含む。CPU10によって制御プログラム11aが実行されると、図6のメイン処理や図8のタイマーイベント処理が実行される。
【0048】
RAM12は、CPU10がプログラムの実行時に各種のワークデータやフラグ等を書き換え可能に記憶するためのメモリであり、対象MIDIデータ12aと、発音ノートバッファ12bと、鍵駆動ノートバッファ12cとを含む。対象MIDIデータ12aには、鍵2aの自動操作や楽音を出力する対象のMIDIデータMDが記憶される。発音ノートバッファ12bには上記の発音ノートに関する情報は記憶され、鍵駆動ノートバッファ12cには上記の鍵駆動ノートに関する情報は記憶される。図5(b),(c)を参照して発音ノートバッファ12b及び鍵駆動ノートバッファ12cを説明する。
【0049】
図5(b)は、発音ノートバッファ12bを模式的に表す図である。発音ノートバッファ12bには、上記した発音ノート毎に、楽音出力タイミングと、ノート番号と、ノート情報とが対応付けられて記憶される。図5(b)の発音ノートバッファ12bには、ピアノ等の1つの音色に対する発音ノートに関する情報が記憶される例を表すが、MIDIデータMDに複数の音色が含まれる場合は、それぞれの音色毎に発音ノートバッファ12bを設けても良いし、1つの発音ノートバッファ12bに、複数の音色の発音ノートに関する情報を混在させて記憶しても良い。1つの発音ノートバッファ12bに複数の音色の発音ノートに関する情報を記憶する場合は、例えば、発音ノートバッファ12bの発音ノート毎に、対応する音色の情報を記憶すれば良い。
【0050】
図5(c)は、鍵駆動ノートバッファ12cを模式的に表す図である。鍵駆動ノートバッファ12cには、上記した鍵駆動ノート毎に、鍵駆動タイミングと、ノート番号とノート情報とが対応付けられて記憶される。図5(c)の鍵駆動ノートバッファ12cにも、ピアノ等の1つの音色に対する鍵駆動ノートに関する情報が記憶される例を表すが、発音ノートバッファ12bと同様に、MIDIデータMDに複数の音色が含まれる場合は、それぞれの音色毎に鍵駆動ノートバッファ12cを設けても良いし、1つの鍵駆動ノートバッファ12cに複数の音色の鍵駆動ノートに関する情報を混在させて記憶しても良い。
【0051】
図5に戻る。音源13は、入力される演奏情報に基づく波形データを出力する装置である。DSP14は、音源13から入力された波形データを演算処理するための演算装置である。DSP14には、デジタルアナログコンバータ(DAC)16が接続され、そのDAC16にはアンプ17が接続され、そのアンプ17にはスピーカ18が接続される。
【0052】
次に、図6~8を参照して電子ピアノ1のCPU10で実行される処理を説明する。図6は、メイン処理のフローチャートである。メイン処理は、電子ピアノ1の電源が投入された場合に実行される処理である。メイン処理はまず、鍵2aの自動操作を行うかを確認する(S1)。本実施形態において鍵2aの自動操作を行う又は行わないを、ユーザHの設定キー3(図1参照)の操作により設定可能に構成され、S1の処理ではその設定状態が確認される。
【0053】
S1の処理において、鍵2aの自動操作を行う場合は(S1:Yes)、ユーザHの設定キー3の操作により、MIDIデータ11bに記憶されているMIDIデータMDのうち、1つのMIDIデータMDが指定されたかを確認する(S2)。
【0054】
S2の処理において、MIDIデータMDが指定された場合は(S2:Yes)、指定されたMIDIデータMDをMIDIデータ11bから取得し、対象MIDIデータ12aに保存する(S3)。S3の処理の後、対象MIDIデータ12aに記憶されるMIDIデータの読み出し位置である現在位置を、当該MIDIデータMDの先頭位置に設定する(S4)。一方でS2の処理において、MIDIデータMDが指定されない場合は(S2:No)、S3,S4の処理をスキップする。
【0055】
S2,S4の処理の後、対象MIDIデータ12aの現在位置がノート情報であるかを確認する(S5)。S5の処理において、対象MIDIデータ12aの現在位置がノート情報である場合は(S5:Yes)、ノート情報に対応するノート番号を取得する(S6)。S6の処理の後、対象MIDIデータ12aの現在位置のノート情報がノートオン又はノートオフであるかを確認する(S7)。
【0056】
S7の処理において、ノート情報がノートオン又はノートオフである場合は(S7:Yes)、現在の時刻に、鍵駆動遅延時間T1と先読遅延時間T2とを加算した楽音出力タイミングと、対象MIDIデータ12aの現在位置のノート情報およびS6の処理で取得したノート番号とを発音ノートバッファ12bに追加する(S8)。S8の処理により発音ノートバッファ12bに追加された発音ノートは、図8で後述のタイマーイベント処理における楽音の出力で用いられる。
【0057】
本実施形態においては対象MIDIデータ12aの現在位置のノート情報が、上記した入力ノートに該当し、対象MIDIデータ12aから当該入力ノートを取得した現在の時刻が、入力タイミングに該当する。本実施形態では、現在の時刻は図示しないリアルタイムクロックで取得されるが、リアルタイムクロック以外の装置から取得しても良い。
【0058】
S8の処理の後、鍵駆動ノート追加処理(S9)を実行する。ここで図7を参照して、鍵駆動ノート追加処理を説明する。
【0059】
図7は、鍵駆動ノート追加処理のフローチャートである。鍵駆動ノート追加処理はまず、対象MIDIデータ12aの現在位置のノート情報を確認する(S20)。S20の処理において、対象MIDIデータ12aの現在位置のノート情報がノートオンである場合は(S20:「ノートオン」)、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオフの鍵駆動ノートがあるかを確認する(S21)。
【0060】
S21の処理において、鍵駆動ノートバッファ12cにS6の処理で取得したノート番号と同一のノート番号のノートオフの鍵駆動ノートがある場合は(S21:Yes)、鍵駆動ノートバッファ12cに記憶される当該ノートオフの鍵駆動タイミングと、現在の時刻に先読遅延時間T2を加算した時刻との時間差ΔTが、ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間より小さいかを確認する(S22)。
【0061】
S22の処理において、時間差ΔTが、ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間より小さい場合は(S22:Yes)、図2で上記したノートオフF1kとノートオンN2kとのように、対象MIDIデータ12aの現在位置のノートオンと、鍵駆動ノートバッファ12cに記憶される同一のノート番号のノートオフとの時間差ΔTが小さく、当該ノートオフの鍵駆動タイミングを前倒しすると共に、対象MIDIデータ12aの現在位置のノートオンを遅延させる場合である。
【0062】
かかる場合に、鍵駆動ノートバッファ12cに記憶される当該ノートオフの鍵駆動タイミングをノートオフ前倒時間T3だけ早めることで前倒し(S23)、現在の時刻に先読遅延時間T2とノートオン遅延時間T4とを加算した時刻の鍵駆動タイミングと、対象MIDIデータ12aの現在位置のノート情報(即ちノートオン)およびS6の処理で取得したノート番号とを、鍵駆動ノートバッファ12cに追加する(S24)。
【0063】
一方でS20の処理において、対象MIDIデータ12aの現在位置のノート情報がノートオフである場合は(S20:「ノートオフ」)、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオンの鍵駆動ノートがあるかを確認する(S25)。
【0064】
S25の処理において、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオンの鍵駆動ノートがある場合は(S25:Yes)、鍵駆動ノートバッファ12cに記憶される当該ノートオンの鍵駆動タイミングと、現在の時刻に先読遅延時間T2を加算した時刻との時間差ΔTが、ノートオフ遅延時間T5より小さいかを確認する(S26)。
【0065】
S26の処理において、時間差ΔTがノートオフ遅延時間T5より小さい場合は(S26:Yes)、図3で上記したノートオンN3kとノートオフF4kとのように、対象MIDIデータ12aの現在位置のノートオフと、鍵駆動ノートバッファ12cに記憶される同一のノート番号のノートオンとの時間差ΔTが小さく、対象MIDIデータ12aの現在位置のノートオンを遅延させる場合である。
【0066】
かかる場合に、現在の時刻に先読遅延時間T2とノートオフ遅延時間T5とを加算した時刻の鍵駆動タイミングと、対象MIDIデータ12aの現在位置のノート情報(即ちノートオフ)およびS6の処理で取得したノート番号とを、鍵駆動ノートバッファ12cに追加する(S27)。
【0067】
S21の処理において、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオフの鍵駆動ノートがない場合(S21:No)、S22の処理において、時間差ΔTが、ノートオフ前倒時間T3とノートオン遅延時間T4とを加算した時間以上の場合(S22:No)、S25の処理において、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオンの鍵駆動ノートがない場合(S25:No)、又は、S26の処理において、時間差ΔTがノートオフ遅延時間T5以上の場合は(S26:No)、現在の時刻に先読遅延時間T2を加算した時刻の鍵駆動タイミングと、対象MIDIデータ12aの現在位置のノート情報およびS6の処理で取得したノート番号とを、鍵駆動ノートバッファ12cに追加する(S28)。S24,S27,S28の処理によって鍵駆動ノートバッファ12cに追加された発音ノートは、図8で後述のタイマーイベント処理におけるソレノイド2bによる鍵2aの自動操作に用いられる。
【0068】
S24,S27,S28の処理の後、鍵駆動ノート追加処理を終了する。
【0069】
図6に戻る。S5の処理において、対象MIDIデータ12aの現在位置がノート情報はない場合(S5:No)、又は、S9の鍵駆動ノート追加処理の後、その他の対象MIDIデータ12aのMIDIデータMDに関する処理を行い(S10)、現在位置を1つ進める(S11)。S10で行われる処理としては、例えば、MIDIデータMDに含まれる音量の変更指示に応じて出力される楽音の音量を変更したり、MIDIデータMDに含まれる音色の変更指示に応じて出力される楽音の音色を変更することが挙げられる。
【0070】
S1の処理において、鍵2aの自動操作を行わない場合(S1:No)、又は、S11の処理の後、電子ピアノ1のその他の処理を実行し(S12)、S1以下の処理を繰り返す。S14で行われる処理としては、例えば、ユーザHの鍵2aの演奏に基づく楽音の出力が挙げられる。
【0071】
次に、タイマーイベント処理を説明する。タイマーイベント処理は、上記したメイン処理とは別に、1ミリ秒ごとに実行されるタイマー割り込み処理である。図8を参照してタイマーイベント処理を説明する。
【0072】
図8は、タイマーイベント処理のフローチャートである。タイマーイベント処理はまず、現在の時刻が発音ノートバッファ12bの先頭の発音ノートの楽音出力タイミングに到達したかを確認する(S40)。S40の処理において、現在の時刻が発音ノートバッファ12bの先頭の発音ノートの楽音出力タイミングに到達した場合は(S40:Yes)、該当する発音ノートのノート番号およびノート情報に基づいた楽音を出力する(S41)。S41の処理により楽音が出力された後に、該当する発音ノートの楽音出力タイミング、ノート番号およびノート情報を発音ノートバッファ12bから削除する。
【0073】
S40の処理において、現在の時刻が発音ノートバッファ12bの先頭の発音ノートの楽音出力タイミングに到達していない場合は(S40:No)、S41の処理をスキップする。
【0074】
S40,S41の処理の後、現在の時刻が鍵駆動ノートバッファ12cの先頭の鍵駆動ノートの鍵駆動タイミングに到達したかを確認する(S42)。S42の処理において、現在の時刻が鍵駆動ノートバッファ12cの先頭の鍵駆動ノートの鍵駆動タイミングに到達した場合は(S42:Yes)、該当する鍵駆動ノートのノート番号およびノート情報に基づいてソレノイド2bを駆動させ、鍵2aの自動操作を行う(S43)。S43の処理による鍵2aの自動操作が行われた後に、該当する鍵駆動ノートの鍵駆動タイミング、ノート番号およびノート情報を鍵駆動ノートバッファ12cから削除する。
【0075】
S42の処理において、現在の時刻が鍵駆動ノートバッファ12cの先頭の鍵駆動ノートの鍵駆動タイミングに到達していない場合(S42:No)、又は、S43の処理の後、タイマーイベント処理を終了する。
【0076】
なお、タイマーイベント処理が実行される時間的な間隔は1ミリ秒に限られず、1ミリ秒以下でも、1ミリ秒以上でも良い。また、S40,S41による楽音の出力処理と、S40,S41による鍵2aの自動操作とを、同一のタイマー割り込み処理で行ったが、これに限られず、S40,S41の処理と、S41,S42の処理とをそれぞれ別のタイマー割り込み処理で行っても良いし、S40~S42の処理を上記のメイン処理で行っても良い。
【0077】
以上、上記実施形態に基づき説明したが、種々の改良変更が可能であることは容易に推察できるものである。
【0078】
上記実施形態では、図7のS21~S24の処理において、鍵駆動ノートの先のノートオフの鍵駆動タイミングと同一の音による後のノートオンの鍵駆動タイミングとの時間差ΔTが小さい場合に、先のノートオフの鍵駆動タイミングを前倒し、後のノートオンの鍵駆動タイミングを遅延させた。また、図7のS25~S27の処理において、鍵駆動ノートの先のノートオンの鍵駆動タイミングと同一の音による後のノートオフの鍵駆動タイミングとの時間差ΔTが小さい場合に、後のノートオフの鍵駆動タイミングを遅延させた。しかし、時間差ΔTが小さい場合の処理はこれに限られない。
【0079】
例えば、図9(a)のように、先のノートオフF1kの鍵駆動タイミングと後のノートオンN2kの鍵駆動タイミングとの時間差ΔTが小さい場合に、先のノートオフF1kの鍵駆動タイミングのみを第2ノートオフ前倒時間T6だけ前倒しても良い。また、図9(b)のように、先のノートオンN3kの鍵駆動タイミングと後のノートオフF4kの鍵駆動タイミングとの時間差ΔTが小さい場合に、先のノートオンN3kの鍵駆動タイミングのみをノートオン前倒時間T7だけ前倒しても良い。ここで、第2ノートオフ前倒時間T6とノートオン前倒時間T7とは先読遅延時間T2よりも短い時間とされ、それぞれ「35ミリ秒」が例示されるが、35ミリ秒以上でも35ミリ秒以下でも良い。
【0080】
この場合、図10の変形例における鍵駆動ノート追加処理のように、S21の処理において、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオフの鍵駆動ノートがある場合(S21:Yes)、鍵駆動ノートバッファ12cに記憶される当該ノートオフの鍵駆動タイミングと、現在の時刻に先読遅延時間T2を加算した時刻との時間差ΔTが、第2ノートオフ前倒時間T6より小さいかを確認する(S100)。S100の処理において、時間差ΔTが、第2ノートオフ前倒時間T6より小さい場合に(S100:Yes)、鍵駆動ノートバッファ12cに記憶される当該ノートオフの鍵駆動タイミングを第2ノートオフ前倒時間T6だけ早めることで前倒し(S100)、その後、S28の処理を行えば良い。
【0081】
S25の処理において、鍵駆動ノートバッファ12cに、S6の処理で取得したノート番号と同一のノート番号のノートオンの鍵駆動ノートがある場合は(S25:Yes)、鍵駆動ノートバッファ12cに記憶される当該ノートオンの鍵駆動タイミングと、現在の時刻に先読遅延時間T2を加算した時刻との時間差ΔTが、ノートオン前倒時間T7より小さいかを確認する(S102)。S102の処理において、時間差ΔTが、ノートオン前倒時間T7より小さい場合は(S102:Yes)、鍵駆動ノートバッファ12cに記憶される当該ノートオンの鍵駆動タイミングをノートオン前倒時間T7だけ早めることで前倒し(S103)、その後、S28の処理を行えば良い。
【0082】
また、上記実施形態の図7のS21~S24の処理による先のノートオフの前倒し及び後のノートオフの遅延と、変形例の図10のS25~S103の処理による先のノートオンの前倒しのみとを組み合わせても良いし、変形例の図10のS21~S101の処理による先のノートオフの前倒のみと、上記実施形態のS25~S27の後のノートオフの遅延のみを組み合わせても良い。
【0083】
上記実施形態では、先読遅延時間T2、ノートオフ前倒時間T3、ノートオン遅延時間T4及びノートオフ遅延時間T5といった、鍵駆動タイミングを変更させる時間をミリ秒単位で設定したが、これに限られない。音楽的に意味のある時間、例えば、MIDIデータMDに設定されている8分音符や16分音符の時間的な長さを基準として先読遅延時間T2等を設定しても良いし、MIDIデータMDに設定されているテンポの速さに応じて、先読遅延時間T2等の時間的な長さをそれぞれ設定しても良い。このように、先読遅延時間T2等を音楽的に意味のある時間に基づくものとすることで、出力される楽音とよりマッチした鍵2aの自動操作とすることができる。
【0084】
上記実施形態では、対象MIDIデータ12aに記憶されるMIDIデータMDに基づき、楽音の出力と鍵2aの自動操作とを行った。しかし、これに限られず、楽音の出力と鍵2aの自動操作とを別々のMIDIデータMDで行っても良い。この場合、楽音の出力の用いるMIDIデータMDに、図7,10の鍵駆動ノート追加処理に相当する鍵駆動タイミングの前倒し又は遅延を予め行ったMIDIデータMDを、鍵2aの自動操作用のMIDIデータMDとしても良い。
【0085】
上記実施形態では、図6のS3の処理において、MIDIデータ11bからMIDIデータMDを取得する構成としたが、これに限られない。例えば、電子ピアノ1に外部の機器と通信する通信装置を設け、その通信装置を介して他の機器やインターネットからMIDIデータMDを取得しても良い。この場合、他の機器やインターネットから入力されるMIDIデータMDを全て読み込んでから、演奏情報に対応する楽音の発音処理と鍵2aの自動操作(駆動)処理とを行っても良いし、他の機器やインターネットから入力されるMIDIデータMDをリアルタイムに受信しながら、演奏情報に対応する楽音の発音と鍵2aの自動操作処理とをリアルタイムに行っても良い。
【0086】
上記実施形態では、電子楽器として電子ピアノ1を例示したが、これに限られず、シンセサイザや電子吹奏楽器等、他の電子楽器に本発明を適用しても良い。また、制御プログラム11aをパーソナル・コンピュータや携帯端末等の情報処理装置で実行できるようにしても良い。この場合、パーソナル・コンピュータ等の情報処理装置に鍵盤2を接続すれば良い。
【0087】
上記実施形態では、楽曲データとしてMIDIデータMDを例示したが、これに限られず、MIDI規格以外の他の楽曲に関するデータを楽曲データとして用いても良い。
【符号の説明】
【0088】
1 電子ピアノ(電子楽器)
2 鍵盤
2a 鍵
S5,S6 演奏情報取得手段、演奏情報取得ステップ
S40,S41 楽音出力手段
S28 鍵駆動タイミング設定手段の一部、鍵駆動タイミング設定ステップの一部
S23 前倒手段、鍵駆動タイミング設定手段の一部、前倒ステップ、鍵駆動タイミング設定ステップの一部
S42,S43 自動操作手段、自動操作ステップ
S24 遅延手段、鍵駆動タイミング設定手段の一部、鍵駆動タイミング設定ステップの一部
ΔT 時間差
T1 鍵駆動遅延時間
T2 先読遅延時間
T3 ノートオフ前倒時間(第1時間、第2時間)
T4 ノートオン遅延時間(第3時間)
T6 第2ノートオフ前倒時間(第1時間)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10