Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7794181B2 - 電子楽器、方法およびプログラム - Google Patents
[go: Go Back, main page]

JP7794181B2 - 電子楽器、方法およびプログラム - Google Patents

電子楽器、方法およびプログラム

Info

Publication number
JP7794181B2
JP7794181B2 JP2023139111A JP2023139111A JP7794181B2 JP 7794181 B2 JP7794181 B2 JP 7794181B2 JP 2023139111 A JP2023139111 A JP 2023139111A JP 2023139111 A JP2023139111 A JP 2023139111A JP 7794181 B2 JP7794181 B2 JP 7794181B2
Authority
JP
Japan
Prior art keywords
performance data
performance
processor
time
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023139111A
Other languages
English (en)
Other versions
JP2025033406A (ja
Inventor
知哉 梶川
真吾 岡野
修 森山
健 寺尾
達朗 土谷
裕貴 栗原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2023139111A priority Critical patent/JP7794181B2/ja
Priority to CN202411122823.1A priority patent/CN119541426A/zh
Priority to EP24196349.5A priority patent/EP4517736A1/en
Priority to US18/816,845 priority patent/US20250078792A1/en
Publication of JP2025033406A publication Critical patent/JP2025033406A/ja
Priority to JP2025248145A priority patent/JP2026031802A/ja
Application granted granted Critical
Publication of JP7794181B2 publication Critical patent/JP7794181B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/32Constructional details
    • G10H1/34Switch arrangements, e.g. keyboards or mechanical switches specially adapted for electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/375Tempo or beat alterations; Music timing control

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本明細書の開示は、電子楽器、方法およびプログラムに関する。
ユーザによる演奏を録音および再生することが可能な電子楽器が知られている(例えば特許文献1参照)。特許文献1に記載の電子楽器には、再生スイッチとダイヤルが設けられる。この電子楽器は、ダイヤルに対するユーザ操作で録音済みの演奏曲が指定されて再生スイッチが押されると、その演奏曲を再生する。
特開2008-152054号公報
特許文献1に記載の電子楽器では、ユーザは、ダイヤルを回して再生開始位置となる演奏曲を探し出す必要がある。そのため、再生開始位置を速やかに指定することが難しい場合がある。
本発明は上記の事情に鑑みてなされたものであり、その目的とするところは、ユーザが再生開始位置を速やかに指定することができる電子楽器、方法およびプログラムを提供することである。
本発明の一実施形態に係る電子楽器は、複数の演奏操作子と、ユーザが前記複数の演奏操作子の何れかを操作する毎に前記ユーザの演奏操作に応じた演奏データが記憶される記憶部と、少なくとも1つのプロセッサと、を備える。前記少なくとも1つのプロセッサは、第1の操作状態で、ユーザによって前記複数の演奏操作子の何れかが操作されると、前記記憶部に記憶される前記演奏データの最新録音ポイントからの早戻し時間であって、操作された前記演奏操作子に応じた早戻し時間を決定し前記早戻し時間に対応する前記記憶部内の前記演奏データの再生開始位置から、前記演奏データの出力を開始する。
本発明の一実施形態によれば、ユーザが再生開始位置を速やかに指定することができる電子楽器、方法およびプログラムが提供される。
本発明の一実施形態に係る電子楽器の外観を示す図である。 本発明の一実施形態に係る電子楽器の構成を示すブロック図である。 本発明の一実施形態に係る電子楽器に備えられるリングバッファへの演奏データの書き込みに関する説明図である。 本発明の一実施形態に係る電子楽器に備えられるプロセッサの状態遷移図である。 本発明の一実施形態におけるリングバッファへの演奏データの書き込みに関する説明図である。 本発明の一実施形態におけるリングバッファへの演奏データの書き込みに関する説明図である。 本発明の一実施形態に係る電子楽器の白鍵に対する押鍵操作に応じた再生開始ポイントに関する説明図である。 本発明の一実施形態に係る電子楽器の白鍵に対する押鍵操作に応じた早戻し処理の一例を説明する図である。 本発明の一実施形態に係る電子楽器の黒鍵に対する押鍵操作に応じた再生開始ポイントに関する説明図である。 本発明の一実施形態において演奏データを再生する際の処理タイミングの一例を示す図である。 本発明の一実施形態においてプロセッサが実行する録音処理のフローチャートである。 図10に示される録音タスク(ステップS102)のサブルーチンである。 本発明の一実施形態においてプロセッサが実行する再生処理のフローチャートである。 図12に示される再生開始ポイント決定処理(ステップS301)のサブルーチンである。 図12に示される出力タスク(ステップS305)のサブルーチンである。
図面を参照して、本発明の一実施形態に係る電子楽器、コンピュータの一例である電子楽器で実行される方法およびプログラムについて詳細に説明する。
図1は、本発明の一実施形態に係る電子楽器1の外観を示す図である。図2は、電子楽器1の構成を示すブロック図である。電子楽器1は、例えば電子キーボードである。電子楽器1は、電子ピアノなど、電子キーボード以外の電子鍵盤楽器であってもよい。電子楽器1は、電子打楽器、電子管楽器、電子弦楽器などの、他の形態の電子楽器であってもよい。
電子楽器1は、ハードウェア構成として、プロセッサ10、RAM(Random Access Memory)11、フラッシュROM(Read Only Memory)12、鍵盤13、ペダルユニット14、スイッチパネル15、キースキャナ16、音源LSI(Large Scale Integration)17、D/Aコンバータ18、アンプ19およびスピーカ20を備える。電子楽器1の各部は、バス21により接続される。
プロセッサ10は、フラッシュROM12に格納されたプログラムおよびデータを読み出す。プロセッサ10は、RAM11をワークエリアとして用いることにより、電子楽器1を統括的に制御する。
プロセッサ10は、例えばシングルプロセッサまたはマルチプロセッサであり、少なくとも1つのプロセッサを含む。複数のプロセッサを含む構成とした場合、プロセッサ10は、単一の装置としてパッケージ化されたものであってもよく、また、電子楽器1内で物理的に分離した複数の装置で構成されてもよい。プロセッサ10は、例えば、制御部、CPU(Central Processing Unit)、MPU(Micro Processor Unit)またはMCU(Micro Controller Unit)と呼ばれてもよい。
プロセッサ10は、RTC(Real Time Clock)10Aを含む。RTC10Aは、年月日および時刻のデジタルデータ(システム時間の一例)を生成して出力する。
RAM11は、データやプログラムを一時的に保持する。RAM11には、フラッシュROM12から読み出された各種プログラム、波形データなどの各種データが保持される。
図2に示されるように、RAM11には、第1記憶部11Aと第2記憶部11Bが確保される。第2記憶部11Bは、第1記憶部11Aとは別の記憶部の一例である。第1記憶部11Aを確保する記憶部と、第2記憶部11Bを確保する記憶部は、別々であってもよい。
図3は、第1記憶部11Aへの演奏データDの書き込みに関する説明図である。第1記憶部11Aは、リングバッファの一例であり、先端(Buffer[0])と終端(Buffer[MAX])が論理的に連結したFIFO(First In First Out)バッファとして動作する。
プロセッサ10は、図3に示されるように、演奏データDを、第1記憶部11Aの先端(Buffer[0])から終端(Buffer[MAX])まで順に書き込む。演奏データDは、1つの演奏操作子に対する1回の演奏操作毎にプロセッサ10によって生成されるデータである。
すなわち、第1記憶部11Aは、ユーザが複数の演奏操作子の何れかを操作する毎に操作に応じた演奏データDを記憶する記憶部の一例である。附言するに、第1記憶部11Aは、ユーザが演奏操作子の一例である鍵を操作する毎に、鍵に対する操作に応じた第1の演奏データDを記憶し、ユーザが第2操作子の一例であるペダルを操作する毎に、ペダルに対する操作に応じた第2の演奏データDを記憶する、リングバッファの一例である。
また、第1記憶部11Aは、演奏操作子に対する操作に応じた演奏データD(第1の演奏データの一例)および第2操作子に対する操作に応じた演奏データ(後述の演奏データP、音色や各種エフェクトの設定変更情報などであり、第2の演奏データの一例)を記憶する第1記憶領域(リングバッファ領域)の一例である。
プロセッサ10は、第1記憶部11Aの終端(Buffer[MAX])まで演奏データDを書き込むと、録音ポインタ(後述する最新録音ポイントPT2)を第1記憶部11Aの先端(Buffer[0])へ移動させる。プロセッサ10は、録音ポインタの移動後、再び、演奏データDを先端(Buffer[0])から順に書き込む。
演奏データDは、差分時間Da、コマンドタイプDb、コマンドデータDcなどの各種情報を含む。
差分時間Daは、差分時間情報の一例である。差分時間Daは、ユーザが演奏操作子の何れかを前回操作したときの時間(時刻)と、ユーザが演奏操作子の何れかを今回操作したときの時間(時刻)と、の差分の時間である。一例として、ユーザが鍵盤13に備えられる1つの鍵を操作し、続いて、1つの鍵を操作すると、これら2回の演奏操作の時間差が、差分時間Daとなる。プロセッサ10は、演奏操作が行われたときの時刻(システム時間の一例)をRTC10Aから取得する。
コマンドタイプDbは、ノートオン、ノートオフ、コントロールチェンジなどである。
コマンドデータDcは、キーナンバ、ベロシティ、パート、ペダルの種類、パート、データ値などである。
録音ポインタが第1記憶部11Aの先端(Buffer[0])に移動して新たな演奏データDの書き込みが行われる際、その書き込み領域に記憶されている演奏データDは、新たな演奏データDで上書きされる。詳しくは後述するが、第2記憶部11Bには、第1記憶部11Aにおいて上書きで消えてしまうペダルの演奏データDが記憶される。すなわち、第2記憶部11Bは、第2の演奏データを記憶する第2記憶領域の一例である。
なお、第1記憶部11A内および第2記憶部11B内の演奏データDは、電子楽器1の電源がオフされると消える。
フラッシュROM12は、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)などの不揮発性の半導体メモリである。フラッシュROM12には、一例として、本発明の一実施形態に係る各種処理を実行する制御プログラム12Aが記憶される。
鍵盤13は、演奏操作子である88個の鍵を備える。具体的には、鍵盤13は、52個の白鍵13Wと36個の黒鍵13Bを備える。各鍵は、それぞれ異なる音高と対応付けられている。電子楽器1は、鍵盤13が備える鍵に対する押鍵操作に応じて楽音を発音する。
なお、鍵盤13の鍵数は、88に限らない。鍵盤13は、61個の鍵、76個の鍵など、他の鍵数を備える構成としてもよい。
ペダルユニット14は、演奏操作子である3本のペダルを備える。具体的には、ペダルユニット14は、ダンパペダル、ソフトペダル、ソステヌートペダルを備える。ユーザがペダルを踏んだ状態で鍵に対する押鍵操作を行うと、電子楽器1は、踏まれているペダルに対応付けられた音響効果を楽音に付加して発音処理を行う。
すなわち、ペダルユニット14は、演奏操作子の一例である鍵に応じた楽音に効果(例えば音響効果)を付加する第2操作子の一例である。
スイッチパネル15は、電源ボタンB0、録音ボタンB1、再生/停止ボタンB2を含む。便宜上省略するが、スイッチパネル15は、音量、音色などのパラメータを調整したり項目を選択したりするための別の操作子も含む。
ユーザは、電源ボタンB0を押すことにより、電子楽器1の電源をオンまたはオフすることができる。ユーザは、録音ボタンB1を押すことにより、電子楽器1を用いて行う演奏を録音することができる。ユーザは、再生/停止ボタンB2を押すことにより、電子楽器1に記憶された演奏データDの再生と停止を行うことができる。
便宜上、電源ボタンB0、録音ボタンB1、再生/停止ボタンB2は、それぞれ、ボタンB0、B1、B2と略記されることがある。
スイッチパネル15は、ボタンB0~B2以外の操作子を含んでもよい。
キースキャナ16は、鍵盤13に対する押鍵および離鍵を監視する。キースキャナ16は、例えばユーザによる押鍵操作を検出すると、押鍵イベントをプロセッサ10に出力する。押鍵イベントには、押鍵操作に係る鍵の音高の情報(キーナンバ)が含まれる。キーナンバは、鍵番号、MIDI(Musical Instrument Digital Interface)キー、ノートナンバと呼ばれることもある。
本実施形態では、鍵の押鍵速度(ベロシティ)を計測する手段が別途設けられており、この手段により計測されたベロシティも押鍵イベントに含まれる。例示的には、各鍵について複数の接点スイッチが設けられている。鍵が押される際の各接点スイッチが導通する時間の差により、ベロシティが計測される。ベロシティは、押鍵操作の強さを示す値ともいえ、また、楽音の大きさ(音量)を示す値ともいえる。
波形データは、フラッシュROM12または不図示の別のメモリに格納される。この波形データは、押鍵操作に応じて楽音が速やかに発音されるように、電子楽器1の起動処理時にRAM11にロードされる。プロセッサ10は、キースキャナ16で押鍵操作が検知されると、RAM11にロードされた波形データのなかから、対応する波形データの読み出しを音源LSI17に指示する。読み出し対象の波形データは、例えば、ユーザによる操作によって選択された音色および押鍵イベントに応じて決まる。
音源LSI17は、プロセッサ10の指示のもと、RAM11から読み出した波形データに基づいて楽音を生成する。音源LSI17は、例えば128のジェネレータセクションを備えており、最大で128の楽音を同時に発音することができる。なお、本実施形態では、プロセッサ10と音源LSI17とが別々のプロセッサとして構成されるが、別の実施形態では、プロセッサ10と音源LSI17とが1つのプロセッサとして構成されてもよい。
音源LSI17により生成されたデジタル楽音データは、D/Aコンバータ18によりアナログ信号に変換された後、アンプ19により増幅されて、スピーカ20に出力される。
図4は、プロセッサ10の状態遷移図である。図4に示されるように、プロセッサ10は、待機状態ST1、録音状態ST2、再生状態ST3の3つの状態を行き来する。待機状態ST1は、ユーザによる電子楽器1の演奏の録音および再生を待機する状態である。録音状態ST2は、ユーザによる電子楽器1の演奏を録音する状態である。再生状態ST3は、録音された演奏を再生(リプレイ)する状態である。
電子楽器1の電源オフ時にユーザが電源ボタンB0を押すと、電子楽器1が起動する。これにより、プロセッサ10は、待機状態ST1となる。
待機状態ST1においてユーザが演奏操作を行うと、プロセッサ10は、録音状態ST2へ遷移する。この演奏操作は、鍵盤13が備える何れかの鍵に対する押鍵操作、またはペダルユニット14が備える何れかのペダルに対する踏み込み操作である。すなわち、プロセッサ10は、演奏操作子の何れかに対する操作をトリガとして待機状態ST1から録音状態ST2へ遷移する。このように、ユーザが演奏を始めると録音が自動的に開始される。そのため、ユーザは、操作負担を強いられることなく、演奏を録音することができる。
プロセッサ10は、録音状態ST2へ遷移すると、録音処理を開始する。録音処理は、ユーザが演奏操作子の何れかを操作する毎にその操作に応じた演奏データDを第1記憶部11Aに記憶する処理である。この録音処理は、例えば1ms周期(第1の周期の一例)で実行される。上記「ユーザが演奏操作子の何れかを操作」は、ユーザが52個の白鍵13Wの何れか1つ、または36個の黒鍵13Bの何れか1つ、もしくは3本のペダルの何れか1つを操作することである。「ms」はミリ秒を表す。
このように、プロセッサ10は、録音状態ST2にあるとき、演奏操作子に対するユーザの操作に応じて演奏データDを第1記憶部11Aに記憶する処理を、第1の周期(1ms周期)で実行する。
図5Aおよび図5Bは、第1記憶部11Aへの演奏データDの書き込みに関する説明図である。以下、ノートの演奏データDとペダルの演奏データDを区別して説明する場合、便宜上、ノートの演奏データDを「演奏データN」と記し、ペダルの演奏データDを「演奏データP」と記す。
最古録音ポイントPT1は、第1記憶部11Aに現在記憶されている演奏データDのなかで最も古い演奏データDの記憶位置を示す。
最新録音ポイントPT2は、次に行われる演奏操作に応じた演奏データDを記憶する位置を示す。
再生開始ポイントPT3は、再生処理時に第1記憶部11A内において演奏データDの出力を開始する位置を示す。再生開始ポイントPT3は、所定の基準時点(次に行われる、演奏操作子に対する操作に応じた演奏データDが記憶される時点であり、最新録音ポイントPT2が示す時点)から第1の時間(早戻し操作でユーザが指定した時間)遡った時点に対応する第1の位置の一例である。
演奏データDを早戻しするためには、演奏データDのフォーマットの構造上、最古録音ポイントPT1から再生開始ポイントPT3までを内部的に早送りする必要がある。すなわち、プロセッサ10は、第1記憶部11A内を最古録音ポイントPT1から再生開始ポイントPT3まで早送りで読み込み、再生開始ポイントPT3から演奏データDの再生(言い換えると、音源LSI17への演奏データDの出力)を開始する。
図5Aの例は、演奏データDが第1記憶部11Aの先端(Buffer[0])から途中まで書き込まれた状態を示す。図5Aの例では、演奏データDが第1記憶部11Aの終端(Buffer[MAX])までは書き込まれてない。そのため、この段階では、第1記憶部11A内で演奏データDが上書きされて消えることはない。図5Aの例では、第2記憶部11Bには演奏データDが記憶されていない。便宜上、次に行われる演奏操作に応じた演奏データDの書き込み領域を「書き込み領域W1」と記す。
図5Aの例では、プロセッサ10は、第1記憶部11Aを最古録音ポイントPT1から再生開始ポイントPT3まで早送りで読み込み、早送り中に読み込まれた演奏データP1に従ってペダル操作に関する設定値を更新(例えば、SMF(Standard MIDI File)のヘッダチャンクに、演奏データP1に基づくペダル操作に関する設定値を記述して、音源LSI17へ出力)する。これにより、再生開始ポイントPT3からの再生開始時、演奏データP1に応じた音響効果が楽音に付加されて発音処理が行われる。
すなわち、プロセッサ10は、第1記憶部11Aに第2の演奏データ(例えば演奏データP)がある場合、再生状態において、この演奏データPに基づいて、楽音の発音を、音源LSI17に指示して発音処理させる。
図5Bの例は、図5Aの状態から録音処理が引き続き実行された状態を示す。図5Bにおいて、図5Aの状態から新たに書き込まれた演奏データDを「演奏データD’」と記す。図5Bの例では、演奏データDが第1記憶部11Aの終端(Buffer[MAX])まで書き込まれて、録音ポイントが先端(Buffer[0])に戻り、先端(Buffer[0])から順に、新たな演奏データD’が書き込まれている。第1記憶部11A内のペダルの演奏データP1は、新たな演奏データD’で上書きされて消えている。
プロセッサ10は、再生処理時に第1記憶部11Aを最古録音ポイントPT1から再生開始ポイントPT3まで早送りで読み込む際、ペダルの演奏データP1が上書きされて消えているため、演奏データP1に応じた設定値を取得することができない。この場合、再生開始ポイントPT3からの再生開始時、演奏データP1に応じた音響効果が楽音に付加されずに発音処理が行われる。
そこで、プロセッサ10は、第1記憶部11Aにおいて新たな演奏データD’を書き込む領域にペダルの演奏データPが既に記憶されている場合、その領域の演奏データPを第1記憶部11Aとは別の第2記憶部11Bに記憶させたうえで、その領域の演奏データPを新たな演奏データD’で上書きする。すなわち、プロセッサ10は、録音状態において、第1記憶部11A(第1記憶領域の一例)内に記憶されている演奏データP(第2の演奏データの一例)を上書きする場合に、上書きされる演奏データPを第2記憶部11B(第2記憶領域の一例)に記憶する。
附言するに、プロセッサ10は、第1記憶部11A内の演奏データPを新たな演奏データD’で上書きする都度、第2記憶部11Bに記憶されている演奏データPを、上書きで第1記憶部11Aから消える演奏データPに更新する。
プロセッサ10は、早送り処理の前処理として、第2記憶部11B内の演奏データPの有無をチェックする。第2記憶部11B内に演奏データPが記憶されている場合、プロセッサ10は、その演奏データPに従ってペダル演奏に関する設定値を更新したうえで、第1記憶部11Aを最古録音ポイントPT1から再生開始ポイントPT3まで早送りで読み込む。これにより、演奏データPが上書きされて消えてしまった場合にも、プロセッサ10は、再生開始ポイントPT3からの再生開始時、その演奏データPに応じた音響効果を楽音に付加(すなわち、録音されたユーザの演奏を忠実に再現する適切な音響効果を楽音に付加)して発音処理することができる。
このように、プロセッサ10は、演奏データDを再生する際、第2記憶部11Bに記憶されたペダルの演奏データPを、第1記憶部11Aに記憶された演奏データNのなかで最も古い演奏データNに反映して出力する。
すなわち、プロセッサ10は、再生状態において、第1記憶部11A(第1記憶領域の一例)内に記憶されている演奏データD(第1の演奏データの一例)と、第2記憶部11B(第2記憶領域の一例)に記憶されている演奏データP(第2の演奏データの一例)と、に基づく楽音の発音を、音源LSI17に指示して発音処理させる。
附言するに、プロセッサ10は、第1記憶部11Aを最古録音ポイントPT1から再生開始ポイントPT3まで早送りで読み込む際、第2記憶部11B内に第2の演奏データ(例えば、演奏データPや後述の設定変更情報など)が記憶されている場合、第1記憶部11A内の演奏データDに対し、演奏データPに基づく音響効果の付加や設定変更情報に基づく音色等の設定情報を変更して、再生開始ポイントPT3からの発音開始を指示して、音源LSI17に発音処理させる。
録音状態ST2において、ユーザが録音ボタンB1を短押しまたは長押しすると、プロセッサ10は、録音(演奏操作に応じた演奏データDの記憶)を停止して、待機状態ST1に復帰する。
待機状態ST1(または録音状態ST2)において、ユーザが再生/停止ボタンB2を短押し、または再生/停止ボタンB2を押しながら何れかの鍵に対する押鍵操作を行うと、プロセッサ10は、再生状態ST3へ遷移する。
ユーザが再生/停止ボタンB2を短押した場合、プロセッサ10は、第1記憶部11A内の再生開始ポイントPT3を決定し、決定された再生開始ポイントPT3から演奏データDの再生を開始する。例示的には、プロセッサ10は、最新録音ポイントPT2から固定時間(例えば10秒)遡った時点を再生開始ポイントPT3として決定して、演奏データDの再生を開始する。
ユーザが再生/停止ボタンB2を押しながら何れかの鍵に対する押鍵操作を行った場合、プロセッサ10は、押鍵操作に応じた再生開始ポイントPT3から、演奏データDの再生を開始する。
図6は、ユーザが再生/停止ボタンB2を押しながら白鍵13Wを押した場合の再生開始ポイントPT3に関する説明図である。図6では、ユーザが押した白鍵13Wと早戻し時間との関係を概略的に示す。
白鍵13Wは、52個あり、それぞれが、A0~C8の各音域に対応する。図6に示されるように、プロセッサ10は、押鍵操作される白鍵13Wに応じて、再生の際の早戻し時間を決定する。例示的には、プロセッサ10は、高い音域に対応する白鍵13Wが押されるほど(言い換えると、図6中、右側に位置する白鍵13Wが押されるほど)早戻し時間を長くする。
早戻し時間は、次式(1)を用いて算出される。
式(1)
早戻し時間(s)=n×5(s)+10(s)
但し、(s)は、単位である秒を示す。
プロセッサ10は、音域A0~C8の白鍵13Wのそれぞれに値n(第1の値の一例)を対応付けて記憶する。値nは、1~52の何れかである。低い音域の白鍵13Wほど、対応付けられるnの値が小さい。
音域A0~C8のうち最も低い音域A0の白鍵13Wに、値nとして最も小さい「1」が対応付けられる。白鍵13Wの音域が1つ上がる毎に値nも1大きくなる。したがって、音域A0~C8のうち最も高い音域C8の白鍵13Wに、値nとして最も大きい「52」が対応付けられる。
プロセッサ10は、ユーザに押された白鍵13Wに対応付けられた値nを取得し、取得された値nを上記式(1)に代入して早戻し時間(第1の時間の一例)を算出する。
例えば、ユーザが再生/停止ボタンB2を押しながら音域A0の白鍵13Wを押すと、プロセッサ10は、早戻し時間として15秒を算出する。例えば、ユーザが再生/停止ボタンB2を押しながら音域C2の白鍵13Wを押すと、プロセッサ10は、早戻し時間として60秒を算出する。例えば、ユーザが再生/停止ボタンB2を押しながら音域C8の白鍵13Wを押すと、プロセッサ10は、早戻し時間として270秒を算出する。
このように、ユーザは、低い音域の白鍵13Wを押すことで、短い早戻し時間を指定することができる。ユーザは、高い音域の白鍵13Wを押すことで、長い早戻し時間を指定することができる。ユーザは、押下する白鍵13Wの音域や位置を手がかりとして早戻し時間の長さを把握できるため、直感的な早戻し操作を行うことができる。
プロセッサ10は、最新録音ポイントPT2(所定の基準時点の一例)から、上記式(1)を用いて算出された早戻し時間(第1の時間の一例)遡った時点に対応する位置(第1の位置の一例)を、再生開始ポイントPT3として決定する。
図7は、ユーザが再生/停止ボタンB2を押しながら白鍵13Wを押した場合に実行される早戻し処理の一例を説明する図である。図7中、「累計Da」は、差分時間Daの累計時間であり、最古録音ポイントPT1から順に各演奏データDの差分時間Daを加算した時間を示す。一例として、最古録音ポイントPT1の次の演奏データDまでの累計Daは、313msに426msを加算した739msとなる。
図7の例では、最新録音ポイントPT2の累計Daは、123,656msである。また、ユーザが再生/停止ボタンB2を押しながら音域C2の白鍵13Wを押すことにより、早戻し時間として60,000ms(=60秒)が算出される。
早戻し処理において、プロセッサ10は、最古録音ポイントPT1から最新録音ポイントPT2までの各演奏データDの差分時間Daを加算して、累計Daを算出する。プロセッサ10は、算出された累計Da(123,656ms)から60,000ms遡った時点に対応する63,656msを再生開始ポイントPT3として決定する。より具体的な例示として、プロセッサ10は、累計Daが63,656msに最も近い演奏データDの位置を再生開始ポイントPT3として決定する。
例えば一般的なSMFフォーマットでは、ティック(Tick)単位の情報であるデルタタイムを用いて各演奏データDの時間差が管理される。早戻し処理時、ユーザが指定した早戻し時間をティック単位の情報に変換したうえで早戻し後の再生開始ポイントPT3の位置を探索する必要がある。これに対し、本実施形態では、時間そのものを示す差分時間Daを用いて各演奏データDの時間差が管理される。ティック単位の情報への変換処理が不要であるため、プロセッサ10の処理負荷が軽減される。
このように、プロセッサ10は、複数の演奏データDのそれぞれに含まれる差分時間Daを用いて第1記憶部11A(記憶部の一例)内の第1の位置(算出された早戻し時間遡った時点に対応する位置)を特定し、特定された第1の位置を再生開始ポイントPT3として決定する。
再生処理時、プロセッサ10は、第1記憶部11A内を、累計Daが0msである最古録音ポイントPT1から再生開始ポイントPT3(累計Daが63,656msに最も近い演奏データDの位置)まで早送りで読み込み、再生開始ポイントPT3から演奏データDの再生を開始する。
図8は、ユーザが再生/停止ボタンB2を押しながら黒鍵13Bを押した場合の再生開始ポイントPT3に関する説明図である。図8では、ユーザが押した黒鍵13Bと早戻し時間との関係を概略的に示す。
黒鍵13Bは、36個あり、それぞれが、A#0~A#7の各音域に対応する。図8に示されるように、プロセッサ10は、ユーザによって押される黒鍵13Bに応じて再生時の早戻し時間を決定する。
プロセッサ10は、36個の黒鍵13B(音域A#0~A#7の黒鍵13B)のそれぞれに対し、マークM1~M36(識別子の一例)を対応付けて記憶する。
プロセッサ10は、例えば、録音状態ST2において、ユーザがボタンB1を短押しする毎に(ユーザがマーク操作を行う毎に)、その時点の最新録音ポイントPT2が示す第1記憶部11A上の録音開始位置に対してマークMを登録する(言い換えると、上記録音開始位置に対してマークMを対応付ける)。
より詳細には、プロセッサ10は、ユーザがマーク操作を行うと、その時点の最新録音ポイントPT2が示す第1記憶部11A上の録音開始位置に対して、常に、鍵盤13のなかで一番左に位置する黒鍵13B(A#0)に対応付けられたマークM1を登録する。
マークM1が新たな録音開始位置に対して登録される毎に、今回よりも前の各録音開始位置に対応する黒鍵13Bが、1つ右の黒鍵13Bに移動する。言い換えると、今回よりも前の各録音開始位置に対しては、符号の数字が1多いマークMが登録される。
一例として、マークM1が新たな録音開始位置に対して登録されると、それまでマークM1、M2、M3が登録されていた録音開始位置に対しては、それぞれ、マークM2、M3、M4が登録される。すなわち、今回よりも前の各録音開始位置には、数字が1インクリメントされたマークMが登録される。そのため、例えば、マークM4に対応する黒鍵13B(F#1)は、4回前にマークされた第1記憶部11A上の再生開始位置を示す。
プロセッサ10は、録音状態ST2に遷移すると、ユーザによるマーク操作の有無に拘わらず、その時点の最新録音ポイントPT2が示す第1記憶部11A上の録音開始位置に対してマークM1を登録してもよい。
マークMの登録情報は、電子楽器1の電源がオフされると消える。
例えば電子楽器1の電源がオンされてから録音処理が13回実行されると、それぞれの時点の録音開始位置に対してマークM1~13がそれぞれ登録される(図8参照)。マークM1~13は、それぞれ、音域A#0~D#3の黒鍵13Bに対応付けて記憶されている。
そのため、例えば、ユーザが再生/停止ボタンB2を押しながら音域C#3の黒鍵13Bを押すと、プロセッサ10は、この黒鍵13Bに対応付けられたマークM12を取得し、図8に示されるように、マークM12が登録された第1記憶部11A内の位置を再生開始ポイントPT3として決定する。
また、例えば、ユーザが再生/停止ボタンB2を押しながら音域F#1の黒鍵13Bを押すと、プロセッサ10は、この黒鍵13Bに対応付けられたマークM4を取得し、図8に示されるように、マークM4が登録された第1記憶部11A内の位置を再生開始ポイントPT3として決定する。
このように、ユーザは、低い音域の黒鍵13Bを押すほど、直近で録音された演奏を再生させることができ、高い音域の黒鍵13Bを押すほど、より前に録音された演奏を再生させることができる。ユーザは、押下する黒鍵13Bの音域や位置を手がかりとして、何れの時点まで早戻しされるかを直感的に把握できる。
例えば、ユーザは、或る黒鍵13Bを押して自らが演奏した演奏データを再生した後、再生した時点よりも少し前(例えばもう1つ前にマークした位置)から自分の演奏を聞きたいと考えた場合、上記の或る黒鍵13Bの右隣の黒鍵13Bを押せばよい。また、ユーザは、再生した時点よりも少し後(例えば1つ後にマークした位置)から自分の演奏を聴きたいと考えた場合、上記の或る黒鍵13Bの左隣の黒鍵13Bを押せばよい。
ユーザは、待機状態ST1であっても録音状態ST2であっても、再生/停止ボタンB2を押した状態で白鍵13Wまたは黒鍵13Bを押すというワンアクション操作で早戻し時間を決定(言い換えると、再生開始位置である再生開始ポイントPT3を速やかに指定)することができる。
再生処理は、再生開始ポイントPT3から開始された演奏データDの再生が停止または終了するまで、例えば5ms周期(第2の周期の一例)で実行される。
すなわち、プロセッサ10は、再生処理時、第1記憶部11Aに記憶された演奏データDを出力する処理を、1ms周期(第1の周期の一例)より長い5ms周期(第2の周期の一例)で実行する。より詳細には、プロセッサ10は、再生処理時、第1記憶部11Aに記憶された演奏データDを、録音処理の周期である1ms周期より長い5ms周期で、音源LSI17に出力する。音源LSI17は、プロセッサ10より入力される演奏データDに基づいて発音処理を行う。
プロセッサ10は、録音処理を1ms周期で実行することにより、高サンプリングレートの演奏データDを得ることができる。ここで、録音された演奏を高い再現性で再生するため、録音処理と同じ1ms周期で再生処理を実行することが考えられる。しかし、再生処理を高速で実行すると、電子楽器1の処理負担が増加する。この処理負荷の増加の影響で、再生音が適切に再生されない(例えば再生音がもたる)ことがある。「再生音がもたる」とは、例えば、再生音が遅れ気味になる、再生音が一時ずれるなどを示す。
そこで、本実施形態では、再生処理の実行周期を録音処理の実行周期よりも下げている。これにより、電子楽器1の処理負担が軽減されて、再生音が適切に再生されないなどの不具合を抑制できる。
再生処理を5ms周期とした場合、例えばテンポ255bpmで128分音符(1音符あたり約7.3ms)までの再現性が得られる。すなわち、再生処理の実行周期を録音処理の実行周期よりも下げた場合でも、聴感上で違和感のない十分な再現性が得られる。
図9は、電子楽器1において演奏データDを再生する際の処理タイミングの一例を示す図である。図9の例では、再生開始ポイントPT3は、演奏データD1を示す位置に置かれる。第1記憶部11Aにおいて、再生開始ポイントPT3から、演奏データD1、D2、D3、D4、D5、D6が順に位置する。
プロセッサ10は、再生開始ポイントPT3より後に位置する各演奏データD(演奏データD2以降)に含まれる差分時間Daを取得する。例示的には、プロセッサ10は、演奏データD2~D6に含まれる差分時間Daとして、それぞれ、3ms、8ms、1ms、5ms、2msを取得する。
プロセッサ10は、取得された差分時間Daに基づいて、再生処理の実行周期(5ms周期)が到来する毎に、対応する演奏データDを音源LSI17に出力する。
具体的には、プロセッサ10は、差分時間Daに基づいて、最初の実行周期(再生経過時間:0ms~5ms)で出力すべき演奏データDを検出し、検出された演奏データDを音源LSI17に出力する。プロセッサ10は、差分時間Daに基づいて、以降の実行周期(再生経過時間:5ms~10ms、10ms~15ms、・・・)においても、対応する演奏データDの検出および出力を行う。
演奏データD2~D6の差分時間Daは、それぞれ、3ms、8ms、1ms、5ms、2msである。これは、演奏データD1を出力してから3ms経過後に演奏データD2の出力タイミングが到来し、その8ms後に演奏データD3の出力タイミングが到来し、その1ms後に演奏データD4の出力タイミングが到来し、その5ms後に演奏データD5の出力タイミングが到来し、その2ms後に演奏データD6の出力タイミングが到来することを意味する。
演奏データD1、D2は、それぞれ、出力タイミングが再生経過時間の0秒時点、3ms時点である。そのため、演奏データD1、D2の出力タイミングは、最初の実行周期(再生経過時間:0ms~5ms)に属する。プロセッサ10は、最初の実行周期(再生経過時間:0ms~5ms)で出力すべき演奏データDとして、演奏データD1およびD2を検知して音源LSI17に出力する。
演奏データD3、D4は、それぞれ、出力タイミングが再生経過時間の11ms(3msに8msを加算した値)時点、12ms(11msに1msを加算した値)である。そのため、演奏データD3およびD4の出力タイミングは、2番目の実行周期(再生経過時間:5ms~10ms)に属さない。演奏データD3およびD4の出力タイミングは、3番目の実行周期(再生経過時間:10ms~15ms)に属する。プロセッサ10は、2番目の実行周期(再生経過時間:5ms~10ms)で何れの演奏データDも出力しない。プロセッサ10は、3番目の実行周期(再生経過時間:10ms~15ms)で出力すべき演奏データDとして、演奏データD3およびD4を検知して音源LSI17に出力する。
演奏データD5、D6は、それぞれ、出力タイミングが再生経過時間の17ms時点、19ms時点である。そのため、演奏データD5、D6の出力タイミングは、4番目の実行周期(再生経過時間:15ms~20ms)に属する。プロセッサ10は、4番目の実行周期(再生経過時間:15ms~20ms)で出力すべき演奏データDとして、演奏データD5およびD6を検知して音源LSI17に出力する。
すなわち、プロセッサ10は、再生処理の実行周期(5ms周期)が到来する毎に、当該周期に属する演奏データDを音源LSI17にまとめて出力する。言い換えると、プロセッサ10は、演奏データDを、5ms単位で揃えて(第2の周期の一例である5ms単位でクオンタイズして)、音源LSI17に出力する。
本実施形態では、時間そのものを示す差分時間Daを用いて各演奏データDの出力タイミングが管理される。ティック単位の情報であるデルタタイムを用いて演奏データDの出力タイミングを管理する場合と比べて、プロセッサ10の処理負荷が軽減される。
なお、再生状態ST3において、ユーザが何れかの鍵に対する押鍵操作を行うと、プロセッサ10は、演奏データDの出力を停止し、この停止位置を起点として、押鍵操作された鍵に応じた時間だけ早戻し処理する。プロセッサ10は、早戻し後の位置から演奏データDの出力を再開する。
再生状態ST3において、ユーザが再生/停止ボタンB2を短押しすると、電子楽器1は、実行中の再生処理を停止して、待機状態ST1に復帰する。
図10は、待機状態ST1から録音状態ST2へ遷移したときにプロセッサ10が実行する録音処理のフローチャートである。
プロセッサ10は、その時点の最新録音ポイントPT2が示す第1記憶部11A上の録音開始位置に対してマークMを登録する(ステップS101)。
例えば、プロセッサ10は、ユーザによるマーク操作に応じて、その時点の最新録音ポイントPT2が示す第1記憶部11A上の録音開始位置に対してマークM1を登録する。以後、プロセッサ10は、マーク操作が行われる都度、その時点の録音開始位置に対してマークM1を登録し、以前にマークされたマークMの番号を1インクリメントする。
このように、プロセッサ10は、第1記憶部11A(記憶部の一例)への演奏データDの記憶が開始されると、最新録音ポイントPT2が示す録音開始位置(記憶部内の、演奏データの記憶開始位置の一例)に、マークM(識別子の一例)を登録する。
プロセッサ10は、録音タスクを実行する(ステップS102)。
図11は、図10の録音タスク(ステップS102)の詳細を示すサブルーチンである。プロセッサ10は、この録音タスクを、録音処理が終了するまで(言い換えると、録音状態ST2から待機状態ST1または再生状態ST3へ遷移するまで)、1ms周期で繰り返し実行する。
前回の演奏データDが第1記憶部11Aの終端(Buffer[MAX])まで書き込まれていると(ステップS201:YES)、プロセッサ10は、最新録音ポイントPT2を第1記憶部11Aの先端(Buffer[0])へ移動させる(ステップS202)。すなわち、第1記憶部11Aの先頭の領域が次の書き込み領域W1となる。
前回の演奏データDが第1記憶部11Aの終端(Buffer[MAX])まで書き込まれていないと(ステップS201:NO)、プロセッサ10は、最新録音ポイントPT2を第1記憶部11A内の次の領域へ移動させる(ステップS203)。すなわち、前回の演奏データDが書き込まれた領域の直後の領域が次の書き込み領域W1となる。
プロセッサ10は、第1記憶部11Aに対する演奏データDの書き込みが2周目以降か否かを判定する(ステップS204)。「2周目以降」とは、電子楽器1の電源がオンされてから、少なくとも1度、演奏データDが第1記憶部11Aの終端(Buffer[MAX])まで書き込まれて最新録音ポイントPT2が先端(Buffer[0])へ移動した状態を示す。
第1記憶部11Aに対する演奏データDの書き込みが2周目以降でない(言い換えると、1周目である)場合(ステップS204:NO)、プロセッサ10は、鍵盤13に対する押鍵操作が行われたか否かを判定する(ステップS207)。押鍵操作が行われていない場合(ステップS207:NO)、プロセッサ10は、ペダルユニット14に対するペダル操作が行われたか否かを判定する(ステップS210)。
プロセッサ10は、図11の録音タスクの実行中、押鍵操作またはペダル操作が行われるまで、ステップS207およびS210の判定処理を1ms周期で繰り返し実行する。
押鍵操作が行われた場合(ステップS207:YES)、プロセッサ10は、押鍵操作に応じた押鍵イベントを取得する(ステップS208)。プロセッサ10は、押鍵操作時の時刻をRTC10Aから取得する(ステップS209)。押鍵イベントは、例えば、ノートナンバ、ベロシティなどを含む。
ペダル操作が行われた場合(ステップS210:YES)、プロセッサ10は、ペダル操作に応じたペダルイベントを取得する(ステップS211)。プロセッサ10は、ペダル操作時の時刻をRTC10Aから取得する(ステップS212)。ペダルイベントは、例えば、ペダルの種類、ペダルの踏み込み値などを含む。
プロセッサ10は、前回の演奏操作(押鍵操作またはペダル操作)時の時刻と、今回の演奏操作(押鍵操作またはペダル操作)時の時刻と、の差分時間Daを、算出する(ステップS213)。
プロセッサ10は、イベント(押鍵イベントまたはペダルイベント)に含まれるコマンドタイプDb(ノートオン、コントロールチェンジなど)およびコマンドデータDc(ノートナンバ、ベロシティなど)に、ステップS213で算出された差分時間Daを加えた情報を、演奏データD(ノートの演奏データNまたはペダルの演奏データP)として、最新録音ポイントPT2が示す次の書き込み領域W1へ書き込み(ステップS214)、ステップS201の処理へ戻る。
第1記憶部11Aに対する演奏データDの書き込みが2周目以降の場合(ステップS204:YES)、プロセッサ10は、最新録音ポイントPT2が示す次の書き込み領域W1に、ペダルの演奏データPが記憶されているか否かを判定する(ステップS205)。
次の書き込み領域W1にペダルの演奏データPが記憶されている場合(ステップS205:YES)、プロセッサ10は、この演奏データPを第2記憶部11Bに書き込んだうえで(ステップS206)、ステップS207以降の処理を実行する。
これにより、ステップS207以降の処理が実行されて、次の書き込み領域W1の演奏データPが上書きされて消えてしまった場合にも、プロセッサ10は、再生開始ポイントPT3からの再生開始時、第2記憶部11Bに書き込まれた演奏データPを読み出してペダル演奏に関する設定値を更新することにより、その音響効果を楽音に付加して発音処理することができる。
なお、第1記憶部11Aにおいて演奏データPが上書き消去される都度、第2記憶部11B内の演奏データPは、上書き消去される演奏データPに更新される。
図12は、待機状態ST1または録音状態ST2から再生状態ST3へ遷移したときにプロセッサ10が実行する再生処理のフローチャートである。
プロセッサ10は、再生開始ポイント決定処理を実行する(ステップS301)。
図13は、図12に示される再生開始ポイント決定処理(ステップS301)の詳細を示すサブルーチンである。
プロセッサ10は、待機状態ST1または録音状態ST2から再生状態ST3へ遷移するトリガとなった操作内容に応じて再生開始ポイントPT3を決定する。
具体的には、再生/停止ボタンB2だけが押された場合(ステップS401:YES)、プロセッサ10は、早戻し時間を10秒に決定する(ステップS402)。プロセッサ10は、最新録音ポイントPT2から10秒遡った時点を再生開始ポイントPT3として決定する(ステップS407)。
再生/停止ボタンB2が押された状態で白鍵13Wが押された場合(ステップS401:NO、ステップS403:YES)、プロセッサ10は、押された白鍵13Wに対応付けられた値nを取得し(ステップS404)、取得された値nを上記式(1)に代入して早戻し時間を算出する(ステップS405)。プロセッサ10は、最新録音ポイントPT2から、ステップS405で算出された早戻し時間遡った時点を、再生開始ポイントPT3として決定する(ステップS407)。
再生/停止ボタンB2が押された状態で黒鍵13Bが押された場合(ステップS401:NO、ステップS403:NO)、プロセッサ10は、押された黒鍵13Bに対応付けられたマークMを取得し(ステップS406)、取得されたマークMが登録された第1記憶部11A内の位置を再生開始ポイントPT3として決定する(ステップS407)。
このように、プロセッサ10は、ユーザにより再生/停止ボタンB2(第1の操作部の一例)が押された状態(第1の操作状態の一例)で、ユーザによって複数の演奏操作子の何れか(白鍵13Wの何れかまたは黒鍵13Bの何れか)が操作されると、操作された演奏操作子(白鍵13Wまたは黒鍵13B)に応じて、第1記憶部11A内の再生開始ポイントPT3を決定する。
プロセッサ10は、ペダルの演奏データPが第2記憶部11Bに記憶されているか否かを判定する(ステップS302)。
演奏データPが第2記憶部11Bに記憶されている場合(ステップS302:YES)、プロセッサ10は、ペダル情報処理を行う(ステップS303)。具体的には、プロセッサ10は、第2記憶部11Bに記憶されている演奏データPを読み出し、読み出された演奏データPに基づくペダル操作に関する設定値をヘッダチャンクに記述して音源LSI17に出力する。これにより、ペダル演奏に関する設定値が更新され、更新後の設定値に応じた音響効果が楽音に付加されて発音処理されるようになる。
プロセッサ10は、ステップS301で決定された再生開始ポイントPT3まで早戻しする(ステップS304)。具体的には、プロセッサ10は、第1記憶部11A内の最古録音ポイントPT1から、再生開始ポイントPT3まで、内部的に早送り処理する。
プロセッサ10は、出力タスクを実行する(ステップS305)。
図14は、図12の出力タスク(ステップS305)の詳細を示すサブルーチンである。プロセッサ10は、演奏データDの出力が停止または終了するまで、この出力タスクを5ms周期で繰り返し実行する。
なお、出力タスク(ステップS305)の実行中、待機状態ST1への遷移操作が行われると、演奏データDの出力が停止すると同時に出力タスクが終了する。また、出力タスクの実行中、ユーザが何れかの鍵に対する押鍵操作を行った場合も、演奏データDの出力が停止すると同時に出力タスクが終了する。後者の場合、演奏データDの出力の停止後、図12の再生処理が始めから(すなわち、ステップS301から)再度開始される。
再生開始ポイントPT3から最新録音ポイントPT2までの演奏データDが全て音源LSI17へ出力されると、演奏データDの出力が終了して出力タスクも終了する。
プロセッサ10は、RTC10Aより取得される時刻から、出力タスクの開始後の経過時間(再生経過時間)を計時する(ステップS501)。ここでは、ステップS501の初回実行時の再生経過時間を0msとする。なお、ステップS501のm回目(mは2以上)以降の実行時の再生経過時間は、プロセッサ10の処理負荷によって若干変動することがあるものの、基本的には、5msに値mを乗算した時間となる。
プロセッサ10は、次の再生周期を算出する(ステップS502)。
例示的には、プロセッサ10は、ステップS501で計時された再生経過時間を始点とし、この始点から出力タスクの周期である5ms後を終点とする期間を、次の再生周期として算出する。一例として、ステップS502の初回実行時は、0ms~5msが次の再生周期として算出される。ステップS501の2回目の実行時の再生経過時間が5.1msの場合、5.1ms~10.1msが次の再生周期として算出される。
プロセッサ10は、ステップS502で算出された次の再生周期内で再生対象となる演奏データDを検出する(ステップS503)。図9の例において次の再生周期が0ms~5msの場合、プロセッサ10は、演奏データD1およびD2を再生対象として検出する(ステップS503:YES)。再生対象となる演奏データDが検出されない場合(ステップS503:NO)、プロセッサ10は、ステップS501の処理に戻り、次の再生周期に対する処理を実行する。
プロセッサ10は、ステップS503で検出された再生対象の演奏データDの発音処理を行う(ステップS504)。すなわち、プロセッサ10は、再生対象の演奏データDを音源LSI17へ出力する。
プロセッサ10は、最新の演奏データD(最新録音ポイントPT2の演奏データD)を音源LSI17に出力していない場合(ステップS505:NO)、ステップS501の処理に戻り、次の再生周期に対する処理を実行する。すなわち、プロセッサ10は、最新録音ポイントPT2の演奏データDを音源LSI17に出力するまで、ステップS501~S505の処理を繰り返す。
最新録音ポイントPT2の演奏データDが音源LSI17に出力されると(ステップS505:YES)、プロセッサ10は、出力タスクを終了する。これにより、再生処理が終了して、プロセッサ10が待機状態ST1へ遷移する。
このように、プロセッサ10は、再生開始ポイント決定処理(ステップS301)で決定された再生開始ポイントPT3から演奏データDの出力を開始し、演奏データDの出力が停止または終了するまで、出力タスク(ステップS305)を5ms周期で繰り返し実行する。
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。
上記の実施形態では、プロセッサ10は、録音処理時、第1記憶部11Aで上書き消去されるペダルの演奏データPを第2記憶部11Bに書き込む。プロセッサ10は、再生処理時、第2記憶部11Bに記憶された演奏データPを読み出し、読み出された演奏データPに基づくペダル操作に関する設定値をヘッダチャンクに記述して音源LSI17に出力する。
別の実施形態では、プロセッサ10は、録音処理時、ペダルの演奏データPに限らず、音色や各種エフェクトの設定変更情報を、ペダルの演奏データPと同様に、第2記憶部11Bに書き込んでもよい。この設定変更情報は、例えば、スイッチパネル15に対するユーザの音色切替操作に応じて設定される音色情報、スイッチパネル15に対するユーザのエフェクト切替操作に応じて設定されるエフェクト切替情報など、である。スイッチパネル15は、第2操作子の一例である設定変更操作子であり、音色や各種エフェクトを含む設定情報を変更する操作を受け付ける。
別の実施形態では、プロセッサ10は、再生処理時、第2記憶部11Bに記憶された音色や各種エフェクトの設定変更情報を読み出し、読み出された設定変更情報をヘッダチャンクに記述して音源LSI17に出力する。これにより、例えば第1記憶部11Aで音色や各種エフェクトの設定変更情報が上書き消去される場合にも、その設定変更情報に応じた音色やエフェクトで楽音を発音することができる。
1 :電子楽器
10 :プロセッサ
11 :RAM
11A :第1記憶部(リングバッファ)
11B :第2記憶部
12 :フラッシュROM
12A :制御プログラム
13 :鍵盤
13B :黒鍵
13W :白鍵
14 :ペダルユニット
15 :スイッチパネル
16 :キースキャナ
17 :音源LSI
18 :D/Aコンバータ
19 :アンプ
20 :スピーカ
ST1 :待機状態
ST2 :録音状態
ST3 :再生状態

Claims (9)

  1. 複数の演奏操作子と、
    ユーザが前記複数の演奏操作子の何れかを操作する毎に前記ユーザの演奏操作に応じた演奏データが記憶される記憶部と、
    少なくとも1つのプロセッサと、を備え、
    前記少なくとも1つのプロセッサは、
    第1の操作状態で、ユーザによって前記複数の演奏操作子の何れかが操作されると、前記記憶部に記憶される前記演奏データの最新録音ポイントからの早戻し時間であって、操作された前記演奏操作子に応じた早戻し時間を決定し
    前記早戻し時間に対応する前記記憶部内の前記演奏データの再生開始位置から、前記演奏データの出力を開始する、
    電子楽器。
  2. 第1の操作部を更に備え、
    前記第1の操作状態は、ユーザにより前記第1の操作部が押された状態である、
    請求項1に記載の電子楽器。
  3. 前記複数の演奏操作子は複数の白鍵を含み、
    前記少なくとも1つのプロセッサは、
    前記複数の白鍵のそれぞれに第1の値を対応付けて記憶し、
    ユーザによって前記複数の白鍵の何れかが押されると、押された前記白鍵に対応付けられた前記第1の値を取得し、
    取得された前記第1の値に基づいて前記再生開始位置を決定する、
    請求項1に記載の電子楽器。
  4. 前記少なくとも1つのプロセッサは、
    取得された前記第1の値に基づいて第1の時間を算出し、
    前記記憶部内の前記演奏データの位置であって、所定の基準時点から前記第1の時間遡った時点に対応する第1の位置を、前記再生開始位置として決定する、
    請求項3に記載の電子楽器。
  5. 前記複数の演奏操作子の何れかが操作された前回の時刻と、前記複数の演奏操作子の何れかが操作された今回の時刻と、の差分時間が、今回の前記演奏データに含めて記憶されており、
    前記少なくとも1つのプロセッサは、
    複数の前記演奏データのそれぞれに含まれる前記差分時間を用いて前記記憶部内の前記第1の位置を特定し、
    特定された前記第1の位置を前記再生開始位置として決定する、
    請求項4に記載の電子楽器。
  6. 前記所定の基準時点は、次に行われる、前記演奏操作子に対する操作に応じた演奏データが前記記憶部に記憶される時点である、
    請求項4または請求項5に記載の電子楽器。
  7. 前記複数の演奏操作子は複数の黒鍵を含み、
    前記演奏データが記憶されている前記記憶部内の複数の位置のそれぞれに、前記複数の黒鍵の何れかに対応付けられた識別子が対応付けられており、
    前記少なくとも1つのプロセッサは、
    ユーザによって前記複数の黒鍵の何れかが押されると、押された前記黒鍵に対応付けられた前記識別子を取得し、
    取得された前記識別子が対応付けられた前記記憶部内の位置を、前記再生開始位置として決定する、
    請求項1に記載の電子楽器。
  8. コンピュータが、
    録音状態において、ユーザによる複数の演奏操作子への操作に応じて生成される演奏データを記憶部に記憶し、
    第1の操作状態において、ユーザにより前記複数の演奏操作子の何れかが操作されると、前記記憶部に記憶される前記演奏データの最新録音ポイントからの早戻し時間であって、操作された前記演奏操作子に応じた早戻し時間を決定し
    前記早戻し時間に対応する前記記憶部内の再生開始位置から、前記演奏データの出力を開始する、
    方法。
  9. コンピュータに、
    録音状態において、ユーザによる複数の演奏操作子への操作に応じて生成される演奏データを記憶部に記憶し、
    第1の操作状態において、ユーザにより前記複数の演奏操作子の何れかが操作されると、前記記憶部に記憶される前記演奏データの最新録音ポイントからの早戻し時間であって、操作された前記演奏操作子に応じた早戻し時間を決定し
    前記早戻し時間に対応する前記記憶部内の再生開始位置から、前記演奏データの出力を開始する、
    処理を実行させる、
    プログラム。
JP2023139111A 2023-08-29 2023-08-29 電子楽器、方法およびプログラム Active JP7794181B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2023139111A JP7794181B2 (ja) 2023-08-29 2023-08-29 電子楽器、方法およびプログラム
CN202411122823.1A CN119541426A (zh) 2023-08-29 2024-08-15 电子乐器、方法、存储介质以及计算机程序产品
EP24196349.5A EP4517736A1 (en) 2023-08-29 2024-08-26 Electronic musical instrument, method, and non-transitory recording medium
US18/816,845 US20250078792A1 (en) 2023-08-29 2024-08-27 Electronic musical instrument, method, and non-transitory recording medium
JP2025248145A JP2026031802A (ja) 2023-08-29 2025-12-15 電子楽器、方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2023139111A JP7794181B2 (ja) 2023-08-29 2023-08-29 電子楽器、方法およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2025248145A Division JP2026031802A (ja) 2023-08-29 2025-12-15 電子楽器、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2025033406A JP2025033406A (ja) 2025-03-13
JP7794181B2 true JP7794181B2 (ja) 2026-01-06

Family

ID=92543194

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2023139111A Active JP7794181B2 (ja) 2023-08-29 2023-08-29 電子楽器、方法およびプログラム
JP2025248145A Pending JP2026031802A (ja) 2023-08-29 2025-12-15 電子楽器、方法およびプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2025248145A Pending JP2026031802A (ja) 2023-08-29 2025-12-15 電子楽器、方法およびプログラム

Country Status (4)

Country Link
US (1) US20250078792A1 (ja)
EP (1) EP4517736A1 (ja)
JP (2) JP7794181B2 (ja)
CN (1) CN119541426A (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184060A (ja) 1999-12-22 2001-07-06 Yamaha Corp パート選択装置
JP2002510403A (ja) 1997-06-19 2002-04-02 タイムワープ テクノロジーズ,リミテッド 音楽スコアとの演奏のリアルタイムな相関のための方法および装置
JP2007093820A (ja) 2005-09-28 2007-04-12 Yamaha Corp 合奏システム
JP2007264034A (ja) 2006-03-27 2007-10-11 Yamaha Corp 演奏記録装置及びプログラム
JP2008152054A (ja) 2006-12-18 2008-07-03 Kawai Musical Instr Mfg Co Ltd 演奏録音機能付き電子楽器
JP2008176117A (ja) 2007-01-19 2008-07-31 Yamaha Corp 電子楽器及びプログラム
JP2019113764A (ja) 2017-12-25 2019-07-11 カシオ計算機株式会社 鍵盤楽器、方法及びプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002510403A (ja) 1997-06-19 2002-04-02 タイムワープ テクノロジーズ,リミテッド 音楽スコアとの演奏のリアルタイムな相関のための方法および装置
JP2001184060A (ja) 1999-12-22 2001-07-06 Yamaha Corp パート選択装置
JP2007093820A (ja) 2005-09-28 2007-04-12 Yamaha Corp 合奏システム
US20090151545A1 (en) 2005-09-28 2009-06-18 Yamaha Corporation Ensemble system
JP2007264034A (ja) 2006-03-27 2007-10-11 Yamaha Corp 演奏記録装置及びプログラム
JP2008152054A (ja) 2006-12-18 2008-07-03 Kawai Musical Instr Mfg Co Ltd 演奏録音機能付き電子楽器
JP2008176117A (ja) 2007-01-19 2008-07-31 Yamaha Corp 電子楽器及びプログラム
JP2019113764A (ja) 2017-12-25 2019-07-11 カシオ計算機株式会社 鍵盤楽器、方法及びプログラム

Also Published As

Publication number Publication date
CN119541426A (zh) 2025-02-28
EP4517736A1 (en) 2025-03-05
JP2026031802A (ja) 2026-02-24
JP2025033406A (ja) 2025-03-13
US20250078792A1 (en) 2025-03-06

Similar Documents

Publication Publication Date Title
CN104412320B (zh) 使用音频波形数据的自动演奏技术
JP3521838B2 (ja) 演奏動作表示装置、及び記録媒体
JP7794181B2 (ja) 電子楽器、方法およびプログラム
JP7747025B2 (ja) 電子楽器、方法およびプログラム
EP4517737A1 (en) Electronic musical instrument, method, and program
JP2773638B2 (ja) 自動演奏装置
JP3620396B2 (ja) 情報修正装置及び情報修正プログラムを記録した媒体
JP3528051B2 (ja) 演奏動作表示装置、及び記録媒体
JP3928725B2 (ja) 楽音信号発生装置及びレガート処理プログラム
US20250124904A1 (en) Electronic musical instrument, method, and storage medium that stores program
JPH10288987A (ja) 電子楽器及び楽音制御データ発生装置
JP3767418B2 (ja) 自動演奏装置及び自動演奏制御プログラム
JP3758041B2 (ja) 楽音制御データ発生装置
JP3548825B2 (ja) 演奏動作表示装置、及び記録媒体
JP3407563B2 (ja) 自動演奏装置及び自動演奏方法
JP2017015957A (ja) 演奏記録装置およびプログラム
JP2002189467A (ja) 演奏制御方法、演奏制御装置及び記録媒体
JP3837994B2 (ja) 楽譜データ変換装置、及び記録媒体
JP3307598B2 (ja) 演奏記録再生装置
JP3375220B2 (ja) 電子楽器
JP4835433B2 (ja) 演奏パターン再生装置及びそのコンピュータプログラム
JP2002287748A (ja) 電子楽器
JP2000132166A (ja) 自動演奏装置
JP2005025096A (ja) 電子楽器の半自動演奏装置
JP2004046280A (ja) シーケンスデータのタイミング処理装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20250728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251001

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251201

R150 Certificate of patent or registration of utility model

Ref document number: 7794181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150