(57)【特許請求の範囲】
【請求項１】
自動演奏装置のペダルの操作を行うアクチュエータに対する駆動制御を行うアクチュエータ駆動制御装置において、
自動演奏のイベントが発生すると、そのイベントに対応する前記ペダルの目標位置を設定し、その目標位置と、前記ペダルの位置を検出する位置検出手段から入力した位置とが一致するように前記アクチュエータをサーボ制御する制御手段と、
前記位置検出手段の特性補正や前記ペダルの中間位置調整に用いるテーブルであって、前記自動演奏のイベントに対応する前記ペダルの目標入力値と目標位置との対応関係を規定しているカーブテーブルを複数種類記憶している記憶手段とを備え、
前記制御手段は、
前記自動演奏のイベントに対応する前記ペダルの目標入力値から前記ペダルの目標位置へ変換するためのペダルテーブルの設定が指示された場合、前記ペダルを踏み込んだ状態で前記位置検出手段によって検出した前記ペダルの位置である踏込位置と、前記ペダルを踏み込んでいない状態で前記位置検出手段によって検出した前記ペダルの位置である開放位置と、選択された前記カーブテーブルとに基づき、前記踏込位置と開放位置との間における前記目標入力値と目標位置との対応関係を示すペダルテーブルを設定し、
前記自動演奏イベントが発生すると、そのイベントに対応する前記ペダルの目標入力値に対応する目標位置を、前記ペダルテーブルを用いて設定し、前記ペダルを、所定の移動速度で前記イベント発生から所定時間後に前記目標位置に移動させるため、どれだけ遅延させて移動開始させればよいかを示す遅延時間を計算し、前記イベント発生から前記遅延時間が経過した後、前記所定の移動速度で前記目標位置へ移動するように前記サーボ制御の目標値を逐次変更しながらサーボ制御を実行し、
前記イベント発生から所定時間後とは、前記自動演奏装置が備える全てのペダルをイベント内容に応じてそれぞれの目標位置へ移動させる場合に、最も遅れるものであっても間に合うよう考慮して設定されたタイミングであること
を特徴とするアクチュエータ駆動制御装置。
【請求項２】
請求項１に記載のアクチュエータ駆動制御装置において、
前記制御手段は、前記ペダルの移動速度をパラメータとしてスムージング処理を行って、前記サーボ制御を実行することを特徴とするアクチュエータ駆動制御装置。
【請求項３】
請求項１または請求項２に記載のアクチュエータ駆動制御装置を備えたことを特徴とする自動演奏装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動演奏装置用のアクチュエータ駆動制御装置に係り、特にペダルを操作させるためのアクチュエータを駆動制御する技術に関する。
【背景技術】
【０００２】
自動演奏ピアノなどの自動演奏装置においては、演奏データに基づいてペダルや鍵を操作して自動演奏を行わせている。このペダルや鍵の操作を行うソレノイド等のアクチュエータをサーボ制御することで駆動制御する技術が知られている（特許文献１参照）。アクチュエータで操作したペダルや鍵の位置をセンサで検出し、目標位置へ移動させるようにサーボ制御するのである。
【特許文献１】特開平６−２１４５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、ペダルや鍵をソレノイドなどのアクチュエータで駆動させる場合、駆動信号をアクチュエータに与え、アクチュエータに給電を開始してからペダルが目標位置に到達するまで、あるいは実際にハンマが打弦して発音されるまでに時間がかかる。そのため、打弦イベントフレームが読み出されたタイミングに対して実際の発音が遅れることになる。
【０００４】
また、アクチュエータに給電を開始してから実際にハンマが打弦して発音されるまでの時間は指示される打弦速度によって異なるため、打弦イベントフレームが記録媒体から読み出された時点にアクチュエータの給電を開始すると、打弦イベントの発生時間の間隔が各打弦イベントの指示する打弦速度に応じて変化してしまう。また、離鍵に関しても同様の問題がある。
【０００５】
本発明は、このような課題を解決するためになされたものであり、その目的は、自動演奏装置のペダルが適切なタイミングで操作されるようアクチュエータを適切に駆動制御する技術を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するためになされた請求項１に係る自動演奏装置用のアクチュエータ駆動制御装置は、自動演奏装置のペダルの操作を行うアクチュエータに対する駆動制御を行うものであり、  自動演奏のイベントが発生すると、そのイベントに対応する前記ペダルの目標位置を設定し、その目標位置と、ペダルの位置を検出する位置検出手段から入力した位置とが一致するようにアクチュエータをサーボ制御する制御手段と、前記位置検出手段の特性補正や前記ペダルの中間位置調整に用いるテーブルであって、前記自動演奏のイベントに対応する前記ペダルの目標入力値と目標位置との対応関係を規定しているカーブテーブルを複数種類記憶している記憶手段とを備えている。
【０００７】
この制御手段は、前記自動演奏のイベントに対応する前記ペダルの目標入力値から前記ペダルの目標位置へ変換するためのペダルテーブルの設定が指示された場合、前記ペダルを踏み込んだ状態で前記位置検出手段によって検出した前記ペダルの位置である踏込位置と、前記ペダルを踏み込んでいない状態で前記位置検出手段によって検出した前記ペダルの位置である開放位置と、選択された前記カーブテーブルとに基づき、前記踏込位置と開放位置との間における前記目標入力値と目標位置との対応関係を示すペダルテーブルを設定する。
また、この制御手段は、自動演奏イベントが発生すると、そのイベントに対応する前記ペダルの目標入力値に対応する目標位置を、前記ペダルテーブルを用いて設定し、ペダルを、所定の移動速度でイベント発生から所定時間後に目標位置に移動させるため、どれだけ遅延させて移動開始させればよいかを示す遅延時間を計算する。そして、イベント発生から遅延時間が経過した後、所定の移動速度で目標位置へ移動するようにサーボ制御の目標値を逐次変更しながらサーボ制御を実行する。
【０００８】
ここで、イベント発生から所定時間後とは、自動演奏装置が備える全てのペダルをイベント内容に応じてそれぞれの目標位置へ移動させる場合に、最も遅れるものであっても間に合うよう考慮して設定されたタイミングである。
【０００９】
上述のように、駆動信号をアクチュエータに与え、アクチュエータに給電を開始してからペダルが目標位置に到達するまでに時間がかかるため、ペダルが適切なタイミングで操作されないおそれがある。
【００１０】
これに対して本発明のアクチュエータ駆動制御装置によれば、自動演奏装置が備える全てのペダルをイベント内容に応じてそれぞれの目標位置へ移動させる場合に、最も遅れるものであっても間に合うよう考慮して設定されたタイミングである「イベント発生から所定時間後」に目標位置に移動させるため、ペダルをイベント発生からどれだけ遅延させて移動開始させればよいかを示す遅延時間を計算する。そして、イベント発生から遅延時間が経過した後、所定の移動速度で目標位置へ移動するようにサーボ制御の目標値を逐次変更しながらサーボ制御を実行する。
【００１１】
そのため、自動演奏装置のペダルが適切なタイミングで操作されるようアクチュエータを適切に駆動制御することができる。
ところで、自動演奏ピアノなどを想定すると、ペダル操作は演奏上、操作範囲（ストローク）の中間位置が重要で、ストロークの一部だけを使用したり、途中で止めたりすることもあるため、ＯＮ／ＯＦＦ操作よりもサーボ制御が向いていると言える。したがって、自動演奏装置のペダルの操作を行うアクチュエータに対する駆動制御を実行する本発明は有用である。
【００１２】
また、請求項２に示すように、制御手段が、ペダルの移動速度をパラメータとしてスムージング処理を行ってサーボ制御を実行してもよい。
請求項３に示すように、上述のアクチュエータ駆動制御装置を備えた自動演奏装置として実現すれば、自動演奏装置のペダルや鍵が適切なタイミングで操作されることとなる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施形態を図面と共に説明する。本実施形態は、本発明の自動演奏装置用のアクチュエータ駆動装置を自動演奏装置としての自動演奏ピアノに適用したものであり、ダンパーペダルの操作を行うアクチュエータとしてのソレノイドを駆動制御する形態である。
【００１４】
［自動演奏ピアノの全体構成の説明］
図１（ａ）は自動演奏ピアノの全体構成を示すブロック図である。
自動演奏ピアノ１は、複数の鍵を有する鍵盤６０，各種のキーやスイッチからなる操作パネル７０、ダンパーペダル機構を駆動するためのソレノイド３０、そのソレノイド３０を駆動させるソレノイド駆動回路５２、ダンパーペダル１０（図１（ｂ）参照）の位置を検出する位置センサ３２、上述の鍵盤６０，操作パネル７０，ソレノイド駆動回路５２および位置センサ３２との間で各種信号をやりとりするインタフェース部（Ｉ／Ｆ）４０、自動演奏ピアノ１全体の動作を制御するＣＰＵ４２、タイマ割り込み処理における割り込み時間や各種時間を計時するタイマ４３、制御手段としてのＣＰＵ４２が実行するプログラムなどを記憶しているＲＯＭ４４、演奏データ、テキストデータ等の各種入力情報、各種フラグやバッファデータ及びＣＰＵ４２による処理結果などを一時的に記憶するＲＡＭ４６、不図示のＭＩＤＩ機器等からの演奏データをＭＩＤＩ信号として入力したり、外部機器等へＭＩＤＩ信号を出力するＭＩＤＩインタフェース部（Ｉ／Ｆ）６２、などを備えている。
【００１５】
これらのうち、インタフェース部４０，ＣＰＵ４２，ＲＯＭ４４，ＲＡＭ４６，ＭＩＤＩインタフェース部（Ｉ／Ｆ）６２は、バス８０を介してそれぞれ通信可能に接続されている。
【００１６】
なお、演奏データは、例えば、ＭＩＤＩ（Musical Instrument Digital Interface）コードで構成され、鍵盤６０やダンパーペダル１０の動作を規定する。
インタフェース部４０は、鍵盤１０の有する各鍵に対してそれぞれ２以上のキー・スイッチを備えており、これらキー・スイッチの開閉状態に基づいて鍵の押鍵状態を検出すると共に、同一の鍵に対応するキー・スイッチそれぞれが開閉する時間差を押鍵の強さとして検出するように構成されている。
【００１７】
［ダンパーペダル機構、ソレノイド駆動回路の説明］
図１（ｂ）は、自動演奏ピアノ１のダンパーペダル機構である。本実施形態の自動演奏ピアノ１は、アップライト型である。
【００１８】
ダンパーペダル機構は、ダンパーペダル１０に天秤ボルト１２を介して一端が固定されたペダル天秤１４と、ペダル天秤１４の他端に下端が当接載置された突揚棒１６と、突揚棒１６の上端に一端の延出部を緩やかに連結されたダンパーロッド１８と、ダンパーロッド１８を回動可能に連結支持したセンターレール２０と、センターレール２０の上方で回動可能に支持されたダンパーレバー２２と、ダンパーレバー２２に連結されたダンパー２４と、ダンパー２４が接する弦２６とによって構成されている。
【００１９】
そして、このペダル機構を駆動するためのソレノイド３０と、ペダル機構の動作状態を検出する位置センサ３２が、ペダル天秤１４に配設されている。この位置センサ３２は、検出した結果を最終的にＣＰＵ４２へ数値データとして入力できるものであれば形式は問わない。例えば抵抗値、磁気量、光量などを電圧に変換して出力し、そのアナログ量をＡ／Ｄ変換して数値データとするものや、パソコンのマウスなどで採用されているスリット通過量、映像移動量などを計数して出力するものなどが考えられる。
【００２０】
次に、このダンパーペダル機構の動作について説明する。ダンパーペダル１０が踏み込まれると、天秤ボルト１２を介して固定されたペダル天秤１４の一端が下方へ引っ張られて揺動し、ペダル天秤１４の他端が上方へ動く。このペダル天秤１４によって、突揚棒１６が持ち上げられ、突揚棒１６の上端に連結されたダンパーロッド１８を動かす。ダンパーロッド１８は、センターレール２０との連結点を中心にして回動し、ダンパーレバー２２をダンパー２４が弦２６から離れる方向へ押す。
【００２１】
この状態で演奏が行われると、ダンパー２４が弦２６から離れているため、弦２６の振動が減衰せず、演奏音が響き続ける。次に、ダンパーペダル１０の踏み込みを開放すると、各部品は逆の動作をしてダンパー２４が弦２６に接触する。これによって、響いていた演奏音が止まる。
【００２２】
以上説明したダンパーペダルの動作は、自動演奏ピアノにおいては、ダンパーペダル１０の踏み込み操作の代わりに、ペダル天秤１４に配設されたソレノイド３０を駆動することによって行われる。このソレノイド３０を駆動するソレノイド駆動回路５２は、図１（ｃ）に示すように、ＣＰＵ４２からインタフェース部（Ｉ／Ｆ）４０を介して指示された駆動信号を、抵抗Ｒ１，Ｒ２，コンデンサＣ１からなる回路を介してトランジスタＴｒ１のベースに入力し、駆動信号のデューティ比に応じた電流をソレノイド３０に流してダンパーペダル機構を駆動する。なお、ソレノイド３０と並列に、ダイオードＤ１がカソードを電源電圧（ＤＣ１００Ｖ）側にして接続されている。このダイオードＤ１は、ソレノイド３０に発生した起電力を逃がすためのものである。
【００２３】
このＣＰＵ４２によるダンパーペダル機構に対する駆動制御は、位置センサ３２から出力されるダンパーペダル１０の位置データを目標値に一致させるようにフィードバック制御するサーボ制御である。この制御内容については後述する。
【００２４】
なお、自動演奏ピアノ１の他の構成は公知技術に従っているのでここではその詳細な説明は省略する。
［メイン処理の説明］
次に、自動演奏ピアノ１のＣＰＵ４２が実行するメイン処理を、図２のフローチャートを参照して説明する。
【００２５】
このメインルーチンが起動すると、まず、各種変数に初期値をセットする。ＲＡＭ４６における記憶領域を解放する、などの初期化処理を経て（Ｓ１１０）、自動演奏ピアノ１に対する操作に基づくイベントが発生したか否かがチェックされる（Ｓ１２０）。
【００２６】
このＳ１２０でイベントが発生したと判定されたら（Ｓ１２０：ＹＥＳ）、後述するイベント処理が行われる（Ｓ１３０）。こうしてイベント処理が行われた後、または、上記Ｓ１２０でイベントが発生していないと判定された場合（Ｓ１２０：ＮＯ）、プロセスがＳ１２０へと戻る。
【００２７】
［イベント処理の説明］
次に、自動演奏ピアノ１のＣＰＵ４２が実行するペダル関連のイベント処理を、図３（ａ）のフローチャートを参照して説明する。このイベント処理は図２のメイン処理のＳ１３０に移行した際に実行される処理の一部であり、ダンパーペダル１０に関連するイベントの処理のみを示している。
【００２８】
まず、演奏データに基づく自動演奏におけるダンパーペダル１０に対する目標入力があるか否か判定する（Ｓ２１０）。目標入力がある場合には（Ｓ２１０：ＹＥＳ）、目標位置設定処理を実行し（Ｓ２５０）、本サブルーチンを終了する。なお、Ｓ２５０で実行される目標位置設定処理については後述する。
【００２９】
一方、目標入力がない場合には（Ｓ２１０：ＮＯ）、開放位置の設定が指示されたか否か判定する（Ｓ２２０）。この開放位置の設定指示は、例えば設定者が操作パネル７０を操作して行う。開放位置の設定が指示された場合には（Ｓ２２０：ＹＥＳ）、開放位置の設定処理を実行し（Ｓ２６０）、本サブルーチンを終了する。
【００３０】
なお、「開放位置の設定処理」においては、そのときのダンパーペダル１０の位置を位置センサ３２によって検出し、その検出した位置データをＲＡＭ４６に記憶させておく。
開放位置の設定が指示されていない場合には（Ｓ２２０：ＮＯ）、踏込位置の設定が指示されたか否か判定する（Ｓ２３０）。この踏込位置の設定指示は、例えば設定者がダンパーペダル１０を踏み込んだ状態で操作パネル７０を操作して行う。踏込位置の設定が指示された場合には（Ｓ２３０：ＹＥＳ）、踏込位置の設定処理を実行し（Ｓ２７０）、本サブルーチンを終了する。
【００３１】
なお、「踏込位置の設定処理」においては、そのとき（つまり、ダンパーペダル１０を踏み込んだ状態）のダンパーペダル１０の位置を位置センサ３２によって検出し、その検出した位置データをＲＡＭ４６に記憶させておく。
【００３２】
踏込位置の設定が指示されていない場合には（Ｓ２３０：ＮＯ）、テーブル設定の設定が指示されたか否か判定する（Ｓ２４０）。このテーブル設定の指示は、例えば設定者が操作パネル７０を操作して行う。テーブル設定が指示された場合には（Ｓ２４０：ＹＥＳ）、ペダルテーブルの設定処理を実行し（Ｓ２８０）、本サブルーチンを終了する。
【００３３】
ここで、Ｓ２８０で実行されるペダルテーブル設定処理については説明する。ペダルテーブルは、演奏データ中のダンパーペダル１０に対する目標入力値（ＭＩＤＩデータ、例えば１２８ステップ）から目標位置（ダンパーペダル１０の位置データ（位置センサ３２の検出値をＡ／Ｄ変換した値）に相当）へ変換するためのテーブルである。
【００３４】
Ｓ２６０で設定した開放位置、Ｓ２７０で設定した踏込位置と、カーブテーブルを用いてペダルテーブルを設定する。カーブテーブルは、位置センサ３２の特性補正やダンパーペダル１０中間位置（ハーフペダルなどと称される。）の調整のため、ペダルテーブルを作成する際に使用する。複数種類のカーブテーブルを予めＲＯＭ４４内に記憶しておく。
【００３５】
作成されたペダルテーブルは、最下限が開放位置、最上限が踏込位置、途中の形状がカーブテーブル中のパラメータcurveNで指定したカーブテーブルの形状となる。このパラメータcurveNは、どのカーブテーブルを使用するかを指定するパラメータで、別途設定するが、自動演奏ピアノ１の機種によって固定に設定してもよい。
【００３６】
［目標位置設定処理の説明］
次に、自動演奏ピアノ１のＣＰＵ４２が実行する目標位置設定処理を、図３（ｂ）のフローチャートを参照して説明する。この目標位置設定処理は、図３（ａ）のイベント処理のサブルーチンであり、イベント処理のＳ２５０へ移行した際に実行される。
【００３７】
まず、新規目標位置ｎＤの設定を行う（Ｓ２５１）。具体的には、演奏データに基づく自動演奏におけるダンパーペダル１０に対する新規目標入力値ｎＬに対応する新規目標位置ｎＤを、Ｓ２８０にて設定したペダルテーブルを用いて算出し、設定する。
【００３８】
次のステップＳ２５２では、ＲＡＭ４６内に設けられたＦＩＦＯ型のイベントバッファへイベントを書き込み、現在時刻ｃＴを前回時刻ｌＴとして書き込み、新規目標位置ｎＤを目標値ｄＬとして書き込み、遅延時間ｄｔを算出した上で、演算実行フラグｒｕｎを立てる（ｒｕｎ＝１）。
【００３９】
ここで、遅延時間ｄｔは、総遅れ時間ＤＴ−（直前の最終目標位置ｌＤ−新規目標位置ｎＤ）／移動速度Ｓという式によって算出される。これらの関係を示したのが図５である。
【００４０】
総遅れ時間ＤＴは、予め設定された時間（例えば、５００ｍｓｅｃ）であるが、以下の観点から設定されたものである。
自動演奏ピアノにおいて鍵やペダルをソレノイドで駆動させる場合、駆動信号をソレノイドに与え、ソレノイドに給電を開始してから実際にハンマが打弦して発音されるまで、あるいはペダルが目標位置に到達するまでに時間がかかる。そのため、打弦イベントフレームが記録媒体から読み出されたタイミングに対して実際の発音が遅れることになる。なお、駆動にかかる時間は、強弱、重さ（鍵毎、機種毎）によって変わる。
【００４１】
また、ソレノイドに給電を開始してから実際にハンマが打弦して発音されるまでの時間は指示される打弦速度によって異なるため、打弦イベントフレームが記録媒体から読み出された時点にソレノイドの給電を開始すると、打弦イベントの発生時間の間隔が各打弦イベントの指示する打弦速度に応じて変化してしまう。また、離鍵に関しても同様の問題がある。
【００４２】
したがって、これらの内で最も遅れるものを考慮しつつ、「このタイミングに合わせれば遅れることがない」という所定の発音タイミングを決定し、イベント情報の読出しタイミングに対して、実際の打弦タイミングおよび実際の離鍵タイミングを所定時間（例えば、５００ｍｓｅｃ）だけ遅延させる。この所定時間を総遅れ時間ＤＴとして設定する。
【００４３】
［遅延・スムージング処理の説明］
次に、自動演奏ピアノ１のＣＰＵ４２が実行する遅延・スムージング処理を、図４のフローチャートを参照して説明する。この遅延・スムージング処理は、上述のメイン処理（図２）とは別に、所定時間（例えば、数ｍｓｅｃ〜数十ｍｓｅｃ）毎に実行される。
【００４４】
まず、現在のイベントが実行中か否か（つまり、演算実行フラグｒｕｎ＝１か否か）を判定し（Ｓ３１０）、現在のイベント実行中（ｒｕｎ＝１）の場合には（Ｓ３１０：ＹＥＳ）、続くステップＳ３２０にて、差分時間Δを算出する。具体的には、差分時間Δ＝現在時刻ｃＴ−前回時刻ｌＴという式によって算出する。
【００４５】
次に、残り遅延時間ｄｔ＞０か否か判定し（Ｓ３３０）、残り遅延時間ｄｔ＞０ならば（Ｓ３３０：ＹＥＳ）、遅延フェーズの処理（Ｓ３４０，Ｓ３５０）を実行して、本ルーチンを終了する。
【００４６】
遅延フェーズの処理においては、まずＳ３４０にて、遅延時間ｄｔから差分時間Δを減算する。そして、続くＳ３５０では、現在時刻ｃＴを前回時刻ｌＴとして書き込む。つまり、図３（ｂ）のＳ２５２において設定された遅延時間ｄｔ（図５も参照）は、差分時間Δずつ減算されていき、残り遅延時間ｄｔ≦０となったら（Ｓ３３０：ＮＯ）、スムージングフェーズ処理（Ｓ３６０〜Ｓ３９０）を実行して、本ルーチンを終了する。
【００４７】
スムージングフェーズの処理においては、まずＳ３６０にて、現在値ｃＬに移動速度Ｓ×差分時間Δを加算する。なお、この現在値ｃＬが現在のサーボ制御目標値になり、このサーボ制御目標値に基づいてサーボ制御を実行することとなる。
【００４８】
そして、目標値ｄＬに達したか否か判定し（Ｓ３７０）、目標値ｄＬに達していなければ（Ｓ３７０：ＮＯ）、Ｓ３５０へ移行し、現在時刻ｃＴを前回時刻ｌＴとして書き込んで本ルーチンを終了する。
【００４９】
一方、目標値ｄＬに達した場合には（Ｓ３７０：ＹＥＳ）、Ｓ３８０へ移行し、演算実行フラグｒｕｎを降ろす（ｒｕｎ＝０）。そして、現在値ｃＬを目標値ｄＬに書き換える。これは、現在値ｃLが目標値ｄLを飛び越えないようにするリミッタ処理である。
【００５０】
現在のイベント実行中（ｒｕｎ＝１）の場合には（Ｓ３１０：ＹＥＳ）、Ｓ３２０〜Ｓ３９０の処理を繰り返し実行するが、現在のイベントが実行中でない（ｒｕｎ＝０）場合には（Ｓ３１０：ＮＯ）、Ｓ４００へ移行する。
【００５１】
Ｓ４００では、イベントバッファに次のイベントがあるか否か判定し、イベントバッファに次のイベントがあれば（Ｓ４００：ＹＥＳ）、次のイベントデータを読み込んで設定し（Ｓ４１０）、Ｓ３２０へ移行する。一方、イベントバッファに次のイベントがなければ（Ｓ４００：ＮＯ）、本ルーチンを終了する。
【００５２】
［効果］
（１）このように本実施形態の自動演奏ピアノ１によれば、ダンパーペダル１０の操作を行うソレノイド３０に対する駆動制御を行うのであるが、自動演奏のイベントが発生すると、そのイベントに対応するダンパーペダル１０の目標位置ｎＤを設定し、その目標位置ｎＤと、位置センサ３２から入力した位置データとが一致するように、ソレノイド３０をサーボ制御する。
【００５３】
このサーボ制御においては、自動演奏イベントが発生すると、ダンパーペダル１０を、所定の移動速度Ｓでイベント発生から総遅れ時間ＤＴ後に目標位置ｎＤに移動させるため、どれだけ遅延させて移動開始させればよいかを示す遅延時間ｄｔを計算する。そして、イベント発生から遅延時間ｄｔが経過した後、所定の移動速度Ｓで目標位置ｎＤへ移動するようにサーボ制御の目標値を逐次変更（図４のＳ３６０において現在値ｃＬに移動速度Ｓ×差分時間Δを加算して逐次変更していることが対応する。）しながらサーボ制御を実行する。
【００５４】
ここで、総遅れ時間ＤＴは、自動演奏装置１が備える全てのペダル及び鍵をイベント内容に応じてそれぞれの目標位置へ移動させる場合に、最も遅れるものであっても間に合うよう考慮して設定されたタイミングである。そのため、自動演奏装置１のダンパーペダル１０が適切なタイミングで操作されるようソレノイド３０を適切に駆動制御することができる。
【００５５】
（２）また、図４のＳ３６０〜Ｓ３９０にてスムージングフェーズ処理を実行しているが、移動速度Ｓは、この処理におけるスムージングパラメータ（エンベロープスピード）である。ペダルに関するイベント情報として１２８段階設定されていても、実際のＭＩＤＩの曲データでは、オン（１２７）とオフ（０）の２値しか記録されていない場合が多く、２値ではサーボ制御であることの効果が薄くなる。そこで、本実施形態のようにスムージング処理すれば滑らかなペダル操作が可能になる。
【００５６】
［他の実施形態］
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、以下のような様々な態様にて実施することが可能である。
【００５７】
（１）上記実施形態では、サーボ制御する対象をダンパーペダル１０としたが、鍵盤６０（の各鍵）としてもよい。
また、アクチュエータとしてソレノイド３０を用いたが、ソレノイド３０以外のアクチュエータであっても同様に実現できる。
【００５８】
（２）上記実施形態では、図３（ｂ）のＳ２５１において、ペダルテーブルを用いた変換（つまり、演奏データに基づく自動演奏におけるダンパーペダル１０に対する新規目標入力値ｎＬに対応する新規目標位置ｎＤを設定）しており、その後の処理を位置情報で行っているが、ＭＩＤＩの演奏データに相当する値で処理を行っておき、最後にペダルテーブルを用いて変換することも考えられる。
【００５９】
（３）また、  なお、この移動速度Ｓは、固定値又は機種ごとに設定する値とすることが考えられるが、例えば、「今までの最終目標値−新規目標値」に応じて速度を変更したり（例えば、差が大きかったらゆっくり、など）、あるいは「現在値−目標値」に応じて速度を変更する（例えば、差が大きかったら速く、など）こともできる。
【図面の簡単な説明】
【００６０】
【図１】（ａ）は自動演奏ピアノの全体構成を示すブロック図、（ｂ）は自動演奏ピアノのダンパーペダル機構の説明図、（ｃ）はソレノイド駆動回路の回路図である。
【図２】はメイン処理を示すフローチャートである。
【図３】（ａ）はペダル関連のイベント処理を示すフローチャート、（ｂ）は目標位置設定処理を示すフローチャートである。
【図４】遅延・スムージング処理を示すフローチャートである。
【図５】遅延・スムージング処理の説明図である。
【符号の説明】
【００６１】
１…自動演奏ピアノ、１０…ダンパーペダル、２４…ダンパー、２６…弦、３０…ソレノイド、３２…位置センサ、４０…インタフェース部、４２…ＣＰＵ、４３…タイマ、４４…ＲＯＭ、４６…ＲＡＭ、５２…ソレノイド駆動回路、６２…ＭＩＤＩインタフェース部、６０…鍵盤、７０…操作パネル、８０…バス。
【図１】
0005329829.tif 000002
【図２】
0005329829.tif 000003
【図３】
0005329829.tif 000004
【図４】
0005329829.tif 000005
【図５】
0005329829.tif 000006