(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024151503
(43)【公開日】2024-10-25
(54)【発明の名称】電子機器、電子楽器、制御方法及びプログラム
(51)【国際特許分類】
G10G 3/04 20060101AFI20241018BHJP
G10H 1/00 20060101ALI20241018BHJP
G11B 20/10 20060101ALI20241018BHJP
G11B 27/00 20060101ALI20241018BHJP
【FI】
G10G3/04
G10H1/00 102Z
G11B20/10 301Z
G11B27/00 B
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023064881
(22)【出願日】2023-04-12
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】森山 修
【テーマコード(参考)】
5D044
5D110
5D182
5D478
【Fターム(参考)】
5D044AB06
5D044DE17
5D044DE22
5D110AA27
5D110DA04
5D110DA11
5D182AD10
5D478EB22
5D478EB37
(57)【要約】
【課題】録音データを途中から再生する際に再生開始までにかかる時間を短縮する。
【解決手段】電子楽器の制御部は、演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンド(演奏コマンド)を録音データとして順次記録していく際に、録音データにおける所定時間毎に演奏パラメータの最新の設定値を取得し、前記所定時間毎に前記最新の設定値を含む第2コマンド(周期コマンド)を記録するように制御する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンドを録音データとして順次記録していく際に、前記録音データにおける所定時間毎に前記演奏パラメータの最新の設定値を取得し、前記所定時間毎に前記最新の設定値を含む第2コマンドを記録するように制御する制御部、
を備える電子機器。
【請求項2】
前記制御部は、
前記録音データに基づく演奏再生時に、シーク操作により指定された再生開始位置から前記所定時間分遡った位置から前記再生開始位置までの前記録音データを読み出し、
読み出した前記録音データの前記第1コマンド及び前記第2コマンドに基づいて、前記再生開始位置における演奏の再生を制御する、
請求項1に記載の電子機器。
【請求項3】
前記制御部は、
前記録音データに基づく演奏再生時に、シーク操作により指定された再生開始位置の直前の前記第2コマンドの位置から前記再生開始位置までの前記録音データを読み出し、
読み出した前記録音データの前記第1コマンド及び前記第2コマンドに基づいて、前記再生開始位置における演奏の再生を制御する、
請求項1に記載の電子機器。
【請求項4】
前記制御部は、
互いに異なる前記演奏パラメータに基づく前記第2コマンドを前記所定時間内に分散させて記録する、
請求項2に記載の電子機器。
【請求項5】
前記制御部は、
前記録音データに基づく演奏再生を開始した後は、前記録音データの前記第2コマンドを読み込まないように制御する、
請求項1に記載の電子機器。
【請求項6】
演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンドを録音データとして順次記録していく際に、前記録音データにおける所定時間毎に前記演奏パラメータの最新の設定値を取得し、前記所定時間毎に前記最新の設定値を含む第2コマンドを記録するように制御する制御部、
を備える電子楽器。
【請求項7】
コンピュータが、
演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンドを録音データとして順次記録していく際に、前記録音データにおける所定時間毎に前記演奏パラメータの最新の設定値を取得し、前記所定時間毎に前記最新の設定値を含む第2コマンドを記録するように制御する、
制御方法。
【請求項8】
コンピュータを、
演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンドを録音データとして順次記録していく際に、前記録音データにおける所定時間毎に前記演奏パラメータの最新の設定値を取得し、前記所定時間毎に前記最新の設定値を含む第2コマンドを記録するように制御する制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器、電子楽器、制御方法及びプログラムに関する。
【背景技術】
【0002】
従来、電子楽器における演奏を録音する技術が知られている(例えば、特許文献1参照)。
【0003】
電子楽器において演奏を録音する場合の録音方式としては、特許文献1に記載のように、演奏による楽音波形をオーディオデータとして記録する方式の他、MIDI(Musical Instrument Digital Interface)等の所定の規格を用いた、演奏者による演奏操作に応じたコマンド(演奏コマンド)を記録する方式がある。演奏コマンドを記録する方式は、オーディオデータを記録する場合に比べて記録するデータ量が小さく抑えられる。
【0004】
演奏コマンドは、例えば、操作子の操作状態(押鍵/離鍵状態)の変更、ペダルの踏下状態の変更、エフェクトの設定変更等、演奏操作によって設定値を変更可能な演奏パラメータの設定値の変更に関するコマンドである。そこで、
図13に示すように、従来、録音データの先頭に、演奏操作に応じて演奏パラメータの録音開始時における設定値を記録しておき、先頭からユーザのシーク操作等によって指定された再生開始位置Pまでのデータ(各種演奏パラメータの設定値)を読み出すことで、各パラメータの再生開始位置Pにおける設定状態を把握して、再生開始位置Pにおける演奏を再現できるようにしている。つまり、全ての演奏パラメータの初期の設定値はデータの先頭のみに設定されており、録音の途中に演奏パラメータの何れかの演奏コマンドを記録する場合は、その演奏パラメータの設定値のみが変更されるため、再生開始時には先頭のデータのみを読み出すのではなく、先頭からユーザのシーク操作等によって指定された再生開始位置Pまでのデータを全て読み出すことが一般的である。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、録音データが膨大になると、例えば、データ終端に近い位置から再生を開始する場合、先頭から再生開始位置Pまでの録音データを全て読み出すまでに時間がかかってしまう。また、再生開始位置Pを動かすたびに読み出し時間がかかってしまい、使い勝手が悪いものとなってしまう。
【0007】
本発明は、上記の問題に鑑みてなされたものであり、録音データの途中から演奏を再生する際に再生開始までにかかる時間を短縮することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の電子機器は、
演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンドを録音データとして順次記録していく際に、前記録音データにおける所定時間毎に前記演奏パラメータの最新の設定値を取得し、前記所定時間毎に前記最新の設定値を含む第2コマンドを記録するように制御する制御部、
を備える。
【発明の効果】
【0009】
本発明によれば、録音データの途中から演奏を再生する際に再生開始までにかかる時間を短縮することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明に係る電子楽器の機能的構成を示すブロック図である。
【
図2】
図1の制御部により実行される全体制御処理の流れを示すフローチャートである。
【
図3】
図2の録音状態切替制御処理の流れを示すフローチャートである。
【
図4】第1の実施形態における
図2の周期コマンド生成処理(周期コマンド生成処理A)の流れを示すフローチャートである。
【
図5】
図2の鍵盤制御処理の流れを示すフローチャートである。
【
図6】
図2のペダル制御処理の流れを示すフローチャートである。
【
図7】
図2のエフェクト制御処理の流れを示すフローチャートである。
【
図8】
図2の録音データ記録処理の流れを示すフローチャートである。
【
図9】
図2のシーク処理の流れを示すフローチャートである。
【
図10】
図2の全体制御処理により記録される録音データの構成及び当該録音データの再生開始位置Pから演奏を再生するために読み出すデータ範囲を示す図である。
【
図11】第2の実施形態における
図2の周期コマンド生成処理(周期コマンド生成処理B)の流れを示すフローチャートである。
【
図12】周期コマンドを分散した録音データの構成及び当該録音データの再生開始位置Pから演奏を再生するために読み出すデータ範囲を示す図である。
【
図13】従来の録音データの構成及び当該録音データの再生開始位置Pから演奏を再生するために読み出すデータ範囲を示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明を実施するための形態について、図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい種々の限定が付されている。そのため、本発明の技術的範囲を以下の実施形態及び図示例に限定するものではない。
【0012】
<第1の実施形態>
[電子楽器100の構成]
図1は、本発明の電子機器としての電子楽器100の機能的構成を示すブロック図である。
電子楽器100は、
図1に示すように、制御部11と、記憶部12と、鍵盤13と、操作部14と、表示部15と、通信部16と、サウンドシステム17と、ペダル部18とを備えて構成され、各部はバス19により接続されている。
【0013】
制御部11は、少なくとも1つのプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)等を備えて構成され、電子楽器100の各部を制御するコンピュータである。具体的には、制御部11のCPUは、記憶部12に記憶されているシステムプログラムや各種アプリケーションプログラムの中から指定されたプログラムを読み出してRAMに展開し、展開されたプログラムとの協働により各種処理を実行する。
制御部11のRAMには、制御部11のCPUから送出された演奏コマンド(第1コマンド)及び周期コマンド(第2コマンド)を順次格納するための録音用のキューが設けられている。演奏コマンドは、演奏者による演奏操作(鍵盤13の押鍵/離鍵、ペダル部18の踏下/解放、各種エフェクトの設定変更等)によって設定値が変更可能(設定可能)な演奏パラメータ(以下、単にパラメータという)の設定値の変更に関するコマンドである。周期コマンドは、所定の周期T毎に取得される、演奏操作によって設定値を変更することが可能なパラメータの最新の設定値を含む。所定の周期Tは例えば数秒~数十秒程度で適宜設定される時間である。
【0014】
記憶部12は、不揮発性の半導体メモリやHDD(Hard Disk Drive)等により構成されている。記憶部12は、電子楽器100のシステムプログラムや各種アプリケーションプログラム、プログラムの実行に必要なデータを記憶する。記憶部12は、電子楽器100に内蔵されたものに限られず、外付けHDD、USBメモリ等の情報処理装置1に対して着脱可能な外部記録媒体を含んでもよい。
【0015】
記憶部12には、最新状態記憶領域121、録音データ記録領域122が設けられている。
最新状態記憶領域121は、演奏操作によって設定値を変更することが可能な各パラメータの最新の設定値を夫々記憶する。最新状態記憶領域121に記憶されるパラメータとしては、例えば、鍵盤13の各鍵の押鍵/離鍵状態(押鍵(ノートON)/離鍵(ノートOFF)や、ベロシティ、音高(ノート番号)等)、ペダル部18のペダル踏下状態(踏み込みしているか否か又は踏み込み量等)、各種のエフェクト設定(ビブラート、リバーブ、コーラス等のエフェクト)等が挙げられる。つまり、設定値(パラメータに応じた数値)としては、例えばベロシティや音高(ノート番号)に応じた各数値、ペダル(ダンパーペダル)を踏み込みしているか否か又はペダルの踏み込み量に応じた数値、各種のエフェクト設定の種類毎に割り当てられた番号や、各種エフェクトの強弱に応じた数値などが挙げられる。
録音データ記録領域122は、演奏者による演奏の録音データを記録する領域である。
【0016】
鍵盤13は、複数の鍵(操作子)と、押鍵/離鍵された鍵を検出する検出部等を備え、押鍵/離鍵された鍵の情報を制御部11に出力する。
【0017】
操作部14は、電源スイッチ、録音開始ボタン/録音終了ボタン、各種設定を行うためのスイッチや操作ボタン等を有し、ユーザによる各種スイッチや操作ボタンの操作情報を制御部11に出力する。
【0018】
表示部15は、LCD(Liquid Crystal Display)等により構成され、制御部11から入力される表示信号の指示に従って、表示を行う。
【0019】
通信部16は、インターネット等の通信ネットワークやUSB(Universal Serial Bus)ケーブル等の通信インターフェースを介して接続された他の電子機器やUSBメモリ等の外部記録媒体とのデータ送受信を行う。
【0020】
サウンドシステム17は、音源部171、オーディオ回路172、スピーカ173を備えて構成されている。
音源部171は、制御部11からの制御情報に従い、ROM12に予め記憶された波形データを読み出すか又は波形データを生成してオーディオ回路172に出力する。
オーディオ回路172は、音源部171から出力された波形データをD/A変換して増幅し、スピーカ173は、増幅されたアナログ音(楽器音)を出力する。
【0021】
ペダル部18は、1又は複数のペダルと、ペダルの踏下状態を検出する検出部等を備え、ペダル踏下状態を示すペダル踏下情報を制御部11に出力する。ここで、ペダルの踏下情報は、例えば、ペダルを踏み込みしているか否か又はペダルの踏下量(踏み込み量)である。なお、設定値としてのペダルの踏み込み量に応じた数値は0~127の範囲で表され、所謂ハーフダンプ機能に対応している場合は0~63をOFF、64~127をONとして出力する。ハーフダンプ機能に対応していないものは、0をOFF、127をONとして出力する。
【0022】
[電子楽器100の動作]
次に、電子楽器100における動作について説明する。
電子楽器100の制御部11は、演奏者による演奏を、上述の演奏コマンド方式で録音する機能を備えている。
【0023】
ここで、従来の電子楽器においては、演奏コマンド方式による録音データの先頭に、演奏操作に応じて設定値が変更可能なパラメータの、録音開始時における設定値(初期値コマンド)を記録している(例えば、
図13参照)。そして、録音データを途中から再生する場合、電子楽器の制御部は、先頭から再生開始位置Pまでのデータ(初期値コマンド及び演奏操作に応じて取得された演奏コマンド)を読み出すことで、各パラメータの再生開始位置Pにおける設定状態を把握して、再生開始位置Pにおける演奏を再現できるようにしている。しかし、録音データが膨大になると、例えば、データ終端に近い位置から再生を開始する場合、データ先頭から再生開始位置Pまでのデータを全て読み出すまでに時間がかかってしまう。また、再生開始位置Pを動かすたびに読み出し時間がかかってしまい、使い勝手が悪いものとなってしまう。
【0024】
そこで、第1の実施形態では、演奏者による演奏操作に応じたコマンドである演奏コマンドを順次記録していく際に、所定の周期T毎に(所定時間毎に)、その時点における、演奏操作に応じて設定値が変更可能な全てのパラメータの最新の設定値を取得し、取得した全てのパラメータの最新の設定値を設定するコマンド(周期コマンド)を、録音データにおける所定時間毎に記録する。周期コマンドと周期コマンドの間では、直前の周期コマンド以降に変化のあったパラメータの設定値の変更に関する演奏コマンドのみを記録する。
【0025】
図2は、電子楽器100の電源がONとなった場合に制御部11により開始される全体制御処理の流れを示すフローチャートである。全体制御処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0026】
まず、制御部11は、操作部14により電源OFFが指示されたか否かを判断する(ステップS1)。
電源OFFが指示されていないと判断した場合(ステップS1;NO)、制御部11は、録音状態切替制御処理を実行する(ステップS2)。
【0027】
図3は、ステップS2において実行される録音状態切替制御処理の流れを示すフローチャートである。録音状態切替制御処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0028】
録音状態切替制御処理において、まず、制御部11は、演奏の録音中であるか否かを判断する(ステップS201)。
ステップS201において、録音中ではないと判断した場合(ステップS201;NO)、制御部11は、録音開始操作が実行されたか否かを判断する(ステップS202)。
録音開始操作が実行されていないと判断した場合(ステップS202;NO)、制御部11は、
図2のステップS3に移行する。
録音開始操作が実行されたと判断した場合(ステップS202;YES)、制御部11は、録音を開始し(ステップS203)、
図2のステップS3に移行する。
ステップS203において、制御部11は、例えば、録音開始からの経過時間を計測するカウンター(計時カウンターと呼ぶ)をリセットし、録音開始からの経過時間のカウントを開始する。
【0029】
ステップS201において、録音中であると判断した場合(ステップS201;YES)、制御部11は、録音終了操作が実行されたか否かを判断する(ステップS204)。
録音終了操作が実行されていないと判断した場合(ステップS204;NO)、制御部11は、
図2のステップS3に移行する。
録音終了操作が実行されたと判断した場合(ステップS204;YES)、制御部11は、録音を終了し(ステップS205)、
図2のステップS3に移行する。
ステップS205において、制御部11は、例えば、計時カウンターのカウントを停止する。
【0030】
図2のステップS3において、制御部11は、周期コマンド生成処理を実行する(ステップS3)。
【0031】
図4は、第1の実施形態において実行される周期コマンド生成処理(周期コマンド生成処理Aとする)の流れを示すフローチャートである。周期コマンド生成処理Aは、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0032】
まず、制御部11は、録音開始後の初回の周期コマンド生成処理Aの実行であるか否かを判断する(ステップS301)。
ステップS301において、録音開始後の初回の周期コマンド生成処理Aの実行であると判断した場合(ステップS301;YES)、制御部11は、最新状態記憶領域121から各パラメータ(演奏操作に応じて設定値が変更可能な全てのパラメータ)の設定値を取得し、取得した各パラメータの設定値を設定するコマンドである周期コマンドを生成する(ステップS303)。そして、制御部11は、取得した周期コマンドを録音用のキューに送出し(ステップS304)、
図2のステップS4に移行する。
【0033】
ここで、制御部11は、演奏コマンドとは異なるデータフォーマットで周期コマンドを生成し、録音用のキューに送出する。例えば、制御部11は、取得した各パラメータの設定値に、周期コマンドであることを示す識別情報(フラグ)を付加して周期コマンドとして録音用のキューに送出する。
【0034】
ステップS301において、録音開始後の初回の周期コマンド生成処理Aの実行ではないと判断した場合(ステップS301;NO)、制御部11は、前回の周期コマンドの送出から周期T以上の時間が経過したか否かを判断する(ステップS302)。
前回の周期コマンドの送出から周期T以上の時間が経過していないと判断した場合(ステップS302;NO)、制御部11は、
図2のステップS4に移行する。
【0035】
前回の周期コマンドの送出から周期T以上の時間が経過したと判断した場合(ステップS302;YES)、制御部11は、最新状態記憶領域121から各パラメータの設定値を取得して周期コマンドを生成する(ステップS303)。そして、制御部11は、生成した周期コマンドを録音用のキューに送出し(ステップS304)、
図2のステップS4に移行する。
【0036】
図2のステップS4において、制御部11は、鍵盤制御処理を実行する(ステップS4)。
【0037】
図5は、ステップS4において実行される鍵盤制御処理の流れを示すフローチャートである。鍵盤制御処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0038】
鍵盤制御処理において、まず、制御部11は、鍵盤13の押鍵/離鍵状態に変化があったか否かを判断する(ステップS401)。
【0039】
鍵盤13の押鍵/離鍵状態に変化がなかったと判断した場合(ステップS401;NO)、制御部11は、
図2のステップS5に移行する。
【0040】
鍵盤13の押鍵/離鍵状態に変化があったと判断した場合(ステップS401;YES)、制御部11は、サウンドシステム17にノートON情報/ノートOFF情報を送出する(ステップS402)。
ステップS402において、制御部11は、鍵盤13において押鍵が検出されていなかった鍵の押鍵が検出された場合、サウンドシステム17にノートON情報を送出する。また、制御部11は、鍵盤13において押鍵されていた鍵の離鍵が検出された場合、サウンドシステム17にノートOFF情報を送出する。ノートON情報、ノートOFF情報は、例えば、押鍵又は離鍵された鍵の音高(ノート番号)やベロシティの情報(設定値)を含む。
サウンドシステム17は、制御部11から送出されてきたノートON情報/ノートOFF情報に基づいて楽器音を出力又は消音する。
【0041】
次いで、制御部11は、ノートONコマンド/ノートOFFコマンドを生成し、計時カウンターの値を対応付けて録音用のキューに送出する(ステップS403)。
制御部11は、鍵盤13において押鍵が検出されていなかった鍵の押鍵が検出された場合、録音用のキューに、当該鍵のノートONコマンドに計時カウンターの値を対応付けて送出する。鍵盤13において押鍵されていた鍵の離鍵が検出された場合、録音用のキューに、当該鍵のノートOFFコマンドに計時カウンターの値を対応付けて送出する。ノートONコマンド、ノートOFFコマンドは、例えば、押鍵又は離鍵された鍵の音高(ノート番号)やベロシティの情報を含む。
【0042】
次いで、制御部11は、最新状態記憶領域121における、押鍵/離鍵状態が変化した鍵の設定値(押鍵(ノートON)/離鍵(ノートOFF)、ベロシティ、音高(ノート番号)等の設定値)を更新し(ステップS404)、
図2のステップS5に移行する。このとき、ある鍵において押鍵(ノートON)から離鍵(ノートOFF)までの間に周期コマンドが記録されるのであれば押鍵(ノートON)として記録(更新)する。つまり押鍵/離鍵に関しては、周期コマンドに各鍵の最新の押鍵/離鍵の状態を表す設定値が記録されることになる。上記の場合、再生時には押鍵(ノートON)から再生開始位置Pまでの経過時間に応じた発音を行う。
なお、ベロシティの設定値とは、打鍵(音)の強弱によって割り当てられる0~127の値である。また、音高(ノート番号)の設定値とは、鍵盤毎に割り当てられる0~127のいずれかの値(番号)である。
【0043】
図2のステップS5において、制御部11は、ペダル制御処理を実行する(ステップS5)。
図6は、
図2のステップS5において実行されるペダル制御処理の流れを示すフローチャートである。ペダル制御処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0044】
ペダル制御処理において、まず、制御部11は、ペダル部18のペダル踏下状態に変化があったか否かを判断する(ステップS501)。ここで、本実施形態では、ペダルの踏下状態は、踏み込みしているか否か又はペダルの踏み込み量で示されることとする。ペダルの解放は、踏み込み量0である。
【0045】
ペダル部18のペダル踏下状態に変化がなかったと判断した場合(ステップS501;NO)、制御部11は、
図2のステップS6に移行する。
【0046】
ペダル部18のペダル踏下状態に変化があったと判断した場合(ステップS501;YES)、制御部11は、サウンドシステム17に、踏下状態に変化があったペダルのペダル踏下情報(踏み込みしているか否か又は踏み込み量等)を送出する(ステップS502)。
サウンドシステム17は、制御部11から送出されてきたペダル踏下情報に基づいて、例えば、音を伸ばす等のペダルの効果を楽器音に付加したり、効果を解除したりする。
【0047】
次いで、制御部11は、踏下状態に変化があったペダルについてのペダル踏下コマンド(踏み込みしているか否か又は踏み込み量等のコマンド)を生成し、計時カウンターの値を対応付けて録音用のキューに送出する(ステップS503)。
【0048】
次いで、制御部11は、最新状態記憶領域121における、ペダル部18のペダルの踏下状態が変化したペダルの設定値(踏み込みしているか否か又は踏み込み量等の設定値)を更新し(ステップS504)、
図2のステップS6に移行する。
【0049】
図2のステップS6において、制御部11は、エフェクト制御処理を実行する(ステップS6)。
図7は、
図2のステップS6において実行されるエフェクト制御処理の流れを示すフローチャートである。エフェクト制御処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0050】
エフェクト制御処理において、まず、制御部11は、操作部14によりエフェクト設定の変更指示が入力されたか否かを判断する(ステップS601)。
【0051】
操作部14によりエフェクト設定の変更指示が入力されていないと判断した場合(ステップS601;NO)、制御部11は、
図2のステップS7に移行する。
【0052】
操作部14によりエフェクト設定の変更指示が入力されたと判断した場合(ステップS601;YES)、制御部11は、サウンドシステム17にエフェクト設定変更命令を送出する(ステップS602)。
サウンドシステム17は、エフェクト設定変更命令に従って、例えば、波形データを変更して、設定された効果を楽器音に付加したり解除したりする。
【0053】
次いで、制御部11は、エフェクト設定変更コマンドに計時カウンターの値を対応付けて、録音用のキューに送出する(ステップS603)。
【0054】
次いで、制御部11は、最新状態記憶領域121における、変更のあったエフェクトの設定値を更新し(ステップS604)、
図2のステップS7に移行する。
【0055】
図2のステップS7において、制御部11は、録音データ記録処理を実行する(ステップS7)。
【0056】
図8は、
図2のステップS7において実行される録音データ記録処理の流れを示すフローチャートである。録音データ記録処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0057】
録音データ記録処理において、まず、制御部11は、録音用のキューに、送出されてきたコマンドがキューイングされているか否かを判断する(ステップS701)。
録音用のキューに、送出されてきたコマンドがキューイングされていないと判断した場合(ステップS701;NO)、制御部11は、
図2のステップS8に移行する。
【0058】
録音用のキューに、送出されてきたコマンドがキューイングされていると判断した場合(ステップS701;YES)、制御部11は、録音用のキューからコマンド(対応する計時カウンターの値を含む)を読み出す(ステップS702)。
【0059】
次いで、制御部11は、録音中であるか否かを判断する(ステップS703)。
録音中であると判断した場合(ステップS703;YES)、制御部11は、読み出したコマンドを録音データ記録領域122に書き込み(ステップS704)、
図2のステップS8に移行する。
【0060】
録音中ではないと判断した場合(ステップS703;NO)、制御部11は、
図2のステップS8に移行する。
【0061】
図2のステップS8において、制御部11は、録音データの再生中であるか否かを判断する(ステップS8)。
録音データの再生中ではないと判断した場合(ステップS8;NO)、制御部11は、操作部14により録音データの再生開始が指示されたか否かを判断する(ステップS9)。
録音データの再生開始が指示されていないと判断した場合(ステップS9;NO)、制御部11は、S12に移行する。
【0062】
録音データの再生開始が指示されたと判断した場合(ステップS9;YES)、制御部11は、ユーザ操作に応じて、再生対象の録音データにおける再生開始位置のシーク処理を実行する(ステップS10)。
【0063】
図9は、
図2のステップS10において実行されるシーク処理の流れを示すフローチャートである。シーク処理は、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0064】
シーク処理において、まず、制御部11は、ユーザによる操作部14の操作により指定された再生開始位置Pを取得する(ステップS1011)。
ここで、ユーザは、例えば、操作部14による表示部15に表示されたシークバーの操作や操作部14の矢印キーなどの操作により、再生対象の録音データにおける再生開始位置Pを指定することができる。これらの再生開始位置Pを指定する操作をシーク操作という。
【0065】
次いで、制御部11は、読み出し位置を格納する変数である読み出し位置Rに、P-Tを設定する(ステップS1012)。
すなわち、指定された再生開始位置Pよりも周期Tだけ遡った位置(時間)を読み出し位置Rに設定する。指定された再生開始位置Pよりも周期T遡った位置からコマンドの読み出しを開始すれば、再生開始位置Pを読み出すまでの間に必ず再生開始位置Pの直前の周期コマンドを読み出すことができるためである。
【0066】
次いで、制御部11は、読み出し位置Rの録音データを録音データ記録領域122から読み出し、読み出した録音データのコマンドを楽器状態に反映する(ステップS1013)。
すなわち、制御部11は、読み出した周期コマンド又は演奏コマンドに基づいて、該当するパラメータの設定値を変更する。
【0067】
次いで、制御部11は、読み出し位置Rをインクリメントし(ステップS1014)、読み出し位置R=再生開始位置Pであるか否かを判断する(ステップS1015)。
【0068】
読み出し位置R=再生開始位置Pではないと判断した場合(ステップS1015;NO)、制御部11は、ステップS1013に戻る。
読み出し位置R=再生開始位置Pであると判断した場合(ステップS1015;YES)、制御部11は、
図2のステップS11に移行する。
【0069】
一方、
図2のステップS8において、録音データの再生中であると判断した場合(ステップS8;YES)、制御部11は、
図2のステップS11に移行する。
【0070】
図2のステップS11において、制御部11は、録音データ再生処理を実行し(ステップS11)、ステップS12に移行する。
制御部11は、ステップS10でシーク処理が実行された場合、再生開始位置Pから順次録音データを読み出し、読み出した録音データに基づいて、サウンドシステム17により演奏を再生させる。ステップS8で録音データ再生中であると判断された場合は、まだ読み出していない録音データを順次読み出し、読み出した録音データに基づいて、サウンドシステム17により演奏を再生させる。なお、周期コマンドと演奏コマンドのデータフォーマットが異なるようにした場合、制御部11は、録音データ再生処理では録音データにおける周期コマンドを読み込まないようにすると、システムの負荷を低減することができるため好ましい。
録音データの終端までの再生が終了するか、または操作部14により再生終了が指示されると、録音データ再生処理を終了する。
【0071】
ステップS12において、制御部11は、電子楽器100としてのその他の各種処理を実行する(ステップS12)。
電子楽器100としてその他各種処理とは、例えば、演奏操作以外の操作部14の操作に応じた設定変更や表示部15の表示処理等が挙げられる。
【0072】
電子楽器100としてのその他の各種処理を実行すると、制御部11は、ステップS1に戻る。
ステップS1において電源OFFが指示されたと判断した場合(ステップS1;YES)、制御部11は、全体制御処理を終了する。
【0073】
図10(a)は、上記全体制御処理により記録される録音データの構成及び当該録音データの再生開始位置Pから演奏を再生するために読み出すデータ範囲を示す図である。
図10(a)に示すように、上記全体制御処理で生成される録音データには、周期T毎に、演奏操作によって設定値を変更することが可能なパラメータの全パラメータの最新の設定値を示す周期コマンドが記録されているので、再生開始位置Pから周期Tだけ遡った位置から読み出しを開始すれば、再生開始位置Pの直前の周期コマンドとその後の演奏コマンドに基づいて、再生開始位置Pにおける演奏を再現(再生制御)することができる。したがって、従来(
図13参照)に比べて、再生開始位置Pにおける演奏を再現するために読み出すデータ範囲を大幅に削減することができるので、録音データに基づく演奏を途中から再生する際の再生開始までの時間を短縮することができる。
すなわち、従来では、パラメータの設定値全てを記録しているのは「データ先頭のみ」だったが、今回は「周期コマンド」時点でも同様のことを行う。これにより、常時録音や長時間の録音などによってデータのサイズが膨大になった場合でも即座に再生再開ができる。
【0074】
なお、上記全体制御処理において、制御部11は、再生開始位置Pから周期Tだけ遡った位置から読み出しを開始することとして説明したが、上述のように、周期コマンドと演奏コマンドのデータフォーマットが異なるようにした場合、録音データを再生開始位置Pから遡って周期コマンドを見つけ、そこを読み出し開始位置としてもよい。このような場合でも、
図10(b)に示すように、再生開始までの時間を短縮することができる。
【0075】
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
第1の実施形態では、周期T間隔で、演奏操作によって設定値の変更が可能な全てのパラメータの最新の設定値を1箇所にまとめて取得して周期コマンドとして録音データ記録領域122に書き込むこととした。しかし、パラメータの個数N(Nは自然数)が多くなるほど、各パラメータの最新の設定値の取得とそれらの録音用のキューへの送出の処理をまとめて行うと処理負荷が大きくなり、動作のもたつき等が発生する場合がある。そこで、第2の実施形態では、パラメータ毎にタイミングをずらして(分散して)、例えば、パラメータの個数をNとするとT/N時間毎にずらして各パラメータの最新の設定値を取得し、録音データにおける周期T毎に各パラメータの周期コマンドが記録されるようにする。
【0076】
第2の実施形態における電子楽器100の構成は、第1の実施形態と同様であるので説明を援用し、以下、第2の実施形態の動作について説明する。
【0077】
第2の実施形態においては、
図2の全体制御処理におけるステップS3の周期コマンド生成処理の動作が第1の実施形態と異なる。以下、第2の実施形態における周期コマンド生成処理(周期コマンド生成処理Bとする)について説明する。なお、第2の実施形態において、演奏操作によって設定値を変更することが可能な各パラメータには、0から順に識別番号が付与されており、周期コマンド生成処理Bでは、周期T/N毎に、最新状態記憶領域121から取得するパラメータの識別番号を格納するためのパラメータ選択変数cが使用される。制御部11は、
図2の全体制御処理を開始する際に、パラメータ選択変数cを0に初期化する。
【0078】
図11は、第2の実施形態において
図2のステップS3において実行される周期コマンド生成処理Bの流れを示すフローチャートである。周期コマンド生成処理Bは、制御部11と記憶部12に記憶されているプログラムとの協働により実行される。
【0079】
まず、制御部11は、録音開始後の初回の周期コマンド生成処理Bの実行であるか否かを判断する(ステップS3011)。
ステップS3011において、録音開始後の初回の周期コマンド生成処理Bの実行であると判断した場合(ステップS3011;YES)、制御部11は、最新状態記憶領域121から各パラメータの設定値を取得して周期コマンドを生成する(ステップS3012)。そして、制御部11は、生成した周期コマンドを録音用のキューに送出し(ステップS3013)、
図2のステップS4に移行する。
【0080】
ここで、制御部11は、後述する演奏コマンドとは異なるデータフォーマットで周期コマンドを生成し、録音用のキューに送出する。例えば、制御部11は、取得した各パラメータの設定値に、周期コマンドであることを示す識別情報を付加して周期コマンドとして録音用のキューに送出する。
【0081】
ステップS3011において、録音開始後の初回の周期コマンド生成処理Bの実行ではないと判断した場合(ステップS3011;NO)、制御部11は、前回の周期コマンドの送出から周期T/N以上の時間が経過したか否かを判断する(ステップS3014)。
前回の周期コマンドの送出から周期T/N以上の時間が経過していないと判断した場合(ステップS3014;NO)、制御部11は、
図2のステップS4に移行する。
【0082】
前回の周期コマンドの送出から周期T/N以上の時間が経過したと判断した場合(ステップS3014;YES)、制御部11は、最新状態記憶領域121から、パラメータ選択変数cに対応するパラメータの設定値S[c]を取得して周期コマンドを生成する(ステップS3015)。
すなわち、制御部11は、識別番号がcのパラメータの設定値を最新状態記憶領域121から取得して周期コマンドを生成する。
【0083】
次いで、制御部11は、設定値S[c]の周期コマンドを録音用のキューに送出する(ステップS3016)。
【0084】
次いで、制御部11は、(c+1)をNで除算したときの余りをパラメータ選択変数cに設定し(ステップS3017)、
図2のステップS4に移行する。
【0085】
図12は、第2の実施形態における上記全体制御処理により記録される録音データの構成及び当該録音データを再生開始位置Pから再生するために読み出すデータ範囲を示す図である。
図12に示すように、第2の実施形態における全体制御処理では、録音開始時の周期コマンド(初回の周期コマンド)を除き、パラメータ毎にタイミングをずらして、例えば、パラメータの個数をNとするとT/N時間毎にずらして各パラメータの周期コマンド(最新の設定値)が取得され、周期T毎に全パラメータの周期コマンドが記録される。よって、各パラメータの最新の設定値の取得とそれらの録音用のキューへの送出による処理負荷を分散させることができ、動作のもたつき等を低減することができる。録音データに基づく演奏を再生する際には、
図12に示すように、再生開始位置Pから周期Tだけ遡った読み出し位置Rから読み出しを開始すれば、再生開始位置PよりもT前から再生開始位置Pまでの範囲に全パラメータの周期コマンドが含まれるため、再生開始位置Pにおける演奏を再現することができる。よって、従来(
図13参照)に比べて、再生開始位置Pにおける演奏を再現するために読み出すデータ範囲を大幅に削減することができ、録音データを途中から再生する際の再生開始までの時間を短縮することができる。
【0086】
なお、周期T内でパラメータの取得タイミングをずらす際、1パラメータ毎に等しく取得タイミングをずらすことに限定されず、少数(Nより小さい自然数)の複数のパラメータ毎をひとまとめとし、取得タイミングをずらすこととしてもよい。
【0087】
以上説明したように、電子楽器100の制御部11は、演奏者による演奏操作に応じて設定される設定値を含む演奏パラメータに関する第1コマンドを録音データとして順次記録していく際に、録音データにおける所定時間毎に演奏パラメータの最新の設定値を取得し、所定時間毎に前記最新の設定値を含む第2コマンドを記録するように制御する。
したがって、ユーザにより指定された再生開始位置Pから周期Tだけ遡った位置、または再生開始位置Pの直前の周期コマンドの位置から録音データの読み出しを開始すれば(
図10(a)、(b)参照)、再生開始位置Pの直前の周期コマンドとその後の演奏コマンドに基づいて、再生開始位置Pにおける演奏を再現(再生)することができるので、従来(
図13参照)に比べて、再生開始位置Pにおける演奏を再現するために読み出すデータ範囲を大幅に削減することができ、録音データの途中から演奏を再生する際の再生開始までの時間を短縮することができる。
【0088】
例えば、制御部11は、録音データに基づき演奏を再生する際に、シーク操作により指定された再生開始位置Pから所定時間遡った位置から再生開始位置Pまでの録音データを読み出し、読み出した前記録音データの前記第1コマンド及び前記第2コマンドに基づいて、再生開始位置Pにおける演奏の再生を制御する。したがって、従来に比べて、再生開始位置Pにおける演奏を再現するために読み出すデータ範囲を大幅に削減することができ、録音データの途中から演奏を再生する際の再生開始までの時間を短縮することができる。
【0089】
また、例えば、制御部11は、録音データに基づき演奏を再生する際に、シーク操作により指定された再生開始位置Pの直前の周期コマンドの位置から再生開始位置Pまでの録音データを読み出し、読み出した録音データの演奏コマンド及び周期コマンドに基づいて、再生開始位置Pにおける演奏の再生を制御する。したがって、従来に比べて、再生開始位置Pにおける演奏を再現するために読み出すデータ範囲を大幅に削減することができ、録音データの途中から演奏を再生する際の再生開始までの時間を短縮することができる。
【0090】
また、例えば、制御部11は、互いに異なるパラメータに基づく周期コマンドを所定時間内に分散させて記録するので、各パラメータの最新の設定値の取得とそれらの録音用のキューへの送出による処理負荷を分散させることができ、動作のもたつき等を低減することができる。
【0091】
また、例えば、制御部11は、録音データに基づく演奏の再生を開始した後は、録音データの周期コマンドを読み込まないように制御することで、システムの負荷を低減することができる。
【0092】
なお、上記実施形態における記述内容は、本発明に係る電子機器、電子楽器、制御方法及びプログラムの好適な一例であり、これに限定されるものではない。
【0093】
例えば、上記実施形態では、演奏操作によって設定値を変更することが可能なパラメータが、鍵盤13の各鍵の押鍵/離鍵状態、ペダル踏下状態、及び各種エフェクトの設定である場合を例として説明したが、これらに限らない。演奏操作によって設定値を変更することが可能なパラメータのその他の例としては、例えば、ボリューム(音量)の大小、ピッチベンドの強弱、各種の音色設定(ピアノ、オルガン、ストリングス等)が挙げられる。これらのパラメータを設定可能な電子楽器の場合、これらのパラメータについても
図7に示すエフェクト制御処理と同様の処理(
図7及びその説明の「エフェクト設定」をボリューム設定、ピッチベントの設定、又は音色設定等に代えた処理)を行うことで、これらのパラメータに変更があった場合、録音データの演奏コマンドの他、周期コマンドにこれらの設定値の最新値を含めることができる。
【0094】
また、例えば、上記実施形態では、本発明の電子機器の制御部の機能は電子楽器100内の制御部11で実行することとしたが、これに限定されない。例えば、電子楽器100と通信部16を介して接続された電子機器(タブレット、スマートフォン等)に、本発明の電子機器の制御部の機能を実現するためのアプリケーションを記憶しておき、電子機器の制御部が、アプリケーションとの協働により電子楽器100を制御して、本発明の電子機器の制御部の機能を実現することとしてもよい。
【0095】
また、上記実施形態では、録音データへの周期コマンドの埋め込みを録音中に実施することとしたが、録音終了後に行うこととしてもよい。
【0096】
また、上記実施形態では、録音中であっても再生が可能であることとして説明したが、録音と再生を排他的に動作させることとしてもよい。
【0097】
また、上記実施形態では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてROM等の半導体メモリを使用した例を開示したが、この例に限定されない。その他のコンピュータ読み取り可能な媒体として、HDD、SSDや、CD-ROM等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、キャリアウエーブ(搬送波)も適用される。
【0098】
その他、電子楽器の細部構成及び細部動作に関しても、発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【0099】
以上に本発明の実施形態を説明したが、本発明の技術的範囲は上述の実施の形態に限定するものではなく、特許請求の範囲に記載に基づいて定められる。更に、特許請求の範囲の記載から本発明の本質とは関係のない変更を加えた均等な範囲も本発明の技術的範囲に含む。
【符号の説明】
【0100】
100 電子楽器
11 制御部
12 記憶部
121 最新状態記憶領域
122 録音データ記録領域
13 鍵盤
14 操作部
15 表示部
16 通信部
17 サウンドシステム
171 音源部
172 オーディオ回路
173 スピーカ
18 ペダル部
19 バス