JP4200621B2 - 同期制御方法および同期制御装置 - Google Patents
同期制御方法および同期制御装置 Download PDFInfo
- Publication number
- JP4200621B2 JP4200621B2 JP2000003955A JP2000003955A JP4200621B2 JP 4200621 B2 JP4200621 B2 JP 4200621B2 JP 2000003955 A JP2000003955 A JP 2000003955A JP 2000003955 A JP2000003955 A JP 2000003955A JP 4200621 B2 JP4200621 B2 JP 4200621B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- performance
- control
- time
- event
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、楽器の演奏に同期して楽器以外の装置を制御する同期制御装置および方法に関する。
【0002】
【従来の技術】
従来より、楽器の演奏にあわせて楽器以外の装置を制御することによって、様々な効果を付与することが行われている。例えばコンサートなどであれば様々な色の照明によって効果を付与したり、コーラスとして予めサンプリングしてあった音声を再生するような効果を付与することがある。このような演奏に効果を付与するタイミングは、演奏曲の進行と同期がとれていることが望ましい。
演奏の進行にあわせて効果付与を指示する操作として、上述した例であれば予め決められたタイミングで照明を制御する装置のスイッチのオン・オフを行ったり、音声再生装置のスタート・ストップ操作を行う必要がある。
【0003】
【発明が解決しようとする課題】
このような指示操作を演奏者が楽器の演奏動作とあわせて逐一行うことは困難である。しかしながら演奏者が演奏を進行させるタイミングが必ずしも楽譜通りではない場合、第三者が制御指示操作を行うと、演奏タイミングと効果付与タイミングが同期しない恐れもある。
あらかじめ制御内容を楽譜の進行に応じて時系列に記述したデータを作成しておくことも可能であるが、この場合も演奏者が楽譜通りに演奏を進行させなかった場合には、演奏の進行と効果付与が同期しないという問題がある。
このように、従来は演奏動作と楽器以外の装置を同期させる制御は大変困難であるという問題があった。
【0004】
本発明は、上記の事情を考慮してなされたものであり、楽器の演奏と楽器以外の装置の動作を同期させることが可能な、同期制御装置および同期制御方法を提供することを目的とする。
【0005】
【課題を解決するための手段】
上記課題を解決するため、本発明の請求項1に記載の発明は、楽器の演奏動作に同期して他装置を制御する同期制御方法であって、前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データから、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出段階と、読み出した前記制御データに基づいて前記他装置を制御する制御段階とを備え、予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする。
請求項2に記載の発明は、請求項1に記載の同期制御方法において、前記制御データは、複数のイベントデータで構成され、読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏段階を備えることを特徴とする。
請求項3に記載の発明は、請求項1に記載の同期制御方法において、前記所定の区切りは、前記主演奏データに含まれる音高データと対応付けて記述されており、前記演奏動作として検出された音高と、前記音高データが示す音高とが一致した場合は前記時間進行の停止を解除することを特徴とする。
請求項4に記載の発明は、請求項1に記載の同期制御方法において、前記制御段階は、予め記憶された対応データに基づいて、前記制御データに含まれるパラメータに基づいて前記他装置の制御内容を認識することを特徴とする。
請求項5に記載の発明は、請求項1に記載の同期制御方法において、前記他装置は複数種類の装置であり、前記制御データは前記他装置の種類を区別するパラメータを含むことを特徴とする。
請求項6に記載の発明は、請求項1ないし5のいずれかに記載の同期制御方法であって、前記演奏データは、前記主演奏データ系列と前記演奏に付加する伴奏内容を記述する伴奏データ系列とを対応付けており、前記読出段階は、前記主演奏データ、前記制御データ、および前記伴奏データ系列に含まれる個々の伴奏データを読み出し、読み出した前記伴奏データに基づいて電子楽音を発生させる段階を備えることを特徴とする。
【0006】
請求項7に記載の発明は、楽器の演奏動作に同期して他装置を制御する同期制御装置であって、前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データを記憶する演奏データ記憶手段と、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出手段と、読み出した前記制御データに基づいて前記他装置を制御する制御手段とを備え、予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする。
請求項8に記載の発明は、請求項7に記載の同期制御装置において、前記制御データは、複数のイベントデータで構成され、読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏手段を具備することを特徴とする。なお、本件における「他装置」とは、楽器本体と離間された位置に配置されるもののみならず、楽器に内蔵あるいは設置され、楽器本体と一体的に配置されたものを含む。
【0007】
【発明の実施の形態】
[1.実施形態の構成]
[1−1.全体構成]
図1に実施形態の全体構成を示す。本実施形態では、演奏を行うためのピアノ100、ピアノ100とMIDI(Musical Instrument Digital Interface)ケーブル111で接続された制御装置200、および制御装置200の制御に基づいて演奏に各種効果を付与する効果装置300を備えて構成されている。
ピアノ100は、後に詳しく説明するようにMIDI信号を出力することができるように構成されており、制御装置200は、ピアノ100における演奏に同期して送信されるMIDI信号に基づいて制御装置300を制御できるように構成されている。
本実施形態では、効果装置300としては、照明装置301、ディスプレイ302、およびサウンドシステム303が制御装置200に接続されており、制御装置200は、照明装置301のオン/オフや移動、ディスプレイ302への静止画や動画の表示、サウンドシステム303への効果音(例えば、CDに記録されたオーディオ音)の出力などを制御する。
【0008】
[1−2.ピアノの構成]
図2は、ピアノ100の外観構成を示す図であり、図3は、ピアノ100の主要部内部の構成を示す図である。
ピアノ100は、鍵1の運動をハンマ2に伝達するアクションメカニズム3と、ハンマ2によって打撃される弦4と、鍵1を駆動するソレノイド5と、弦4の振動を止めるためのダンパ6とを備えており、これらの構成は一般的な自動ピアノと同様である。また、このピアノ100には、通常のアコースティックピアノと同様にバックチェック7が設けられており、打弦後のハンマ2がハンマーアクション機構に戻ったときのハンマ2の暴れを防止する。他にも、このピアノ100は、通常のアコースティックピアノに搭載される機構と同様のものを備えている。さらに、このピアノ100には、ハンマ2の打弦を阻止する不図示のストッパが設けられており、このストッパは、演奏者の指示あるいは操作に応じて、打弦を阻止する位置と打弦を許容する位置との間で電気的あるいは機械的に移動可能にされている。
【0009】
また、このピアノ100は、コントローラ11、サーボコントローラ12、電子楽音発生部25、キーセンサ26、MIDIインターフェイス110、ディスクドライブ120、およびディスプレイ130を備えている。
コントローラ11は、CPU(中央処理装置)、ROM(リードオンリーメモリ)およびRAM(ランダムアクセスメモリ)などを有しており、ピアノ100の各部を制御するものである。
サーボコントローラ12は、速度指示値Vrに応じた励磁電流をソレノイド5に供給するとともに、ソレノイド5から供給されるフィードバック信号としての出力速度Vyと速度指示値Vrを比較し、両者が一致するようにサーボ制御を行うものであり、速度指示値Vrは、各時刻における鍵1の位置に対応した速度を示す値としてコントローラ11から適宜出力される。
電子楽音発生部25は、コントローラ11の制御に基づいて電子的な楽音を発生するものであり、音源やスピーカ等から構成されされている。
キーセンサ26は、各鍵1の下面側に設けられ、対応する鍵1の動作を検出するセンサであり、各鍵1の状態を示す信号を検出してコントローラ11に出力する。コントローラ11は、これらのキーセンサ26から供給される信号に基づいて、後に詳しく説明するように制御装置200に対して各種効果制御を指示するMIDI信号を送信する。
【0010】
ディスクドライブ120は、例えばDVD−ROMやCD−ROMなどの外部記録媒体に記録されたデータを読み出す装置であり、本実施形態では、演奏データをコントローラ11に供給するために用いられる。
ディスプレイ130は、タッチパネル付きの液晶ディスプレイであって、譜面立ての横に上下左右に回動可能に支持されており、コントローラ11は、表示内容の制御やパネル状態の検出を行うことができるように構成されている。本実施形態では、ディスプレイ130は、ピアノ100の演奏状態などを表示したり、各種設定を行うためのパネルとして用いられる。
【0011】
[1−3.制御装置の構成]
図4は制御装置200の構成を示す図である。この図に示すように制御装置200は、各部を制御する制御部201、MIDIインターフェイス202、設定テーブル203、照明データベース211、画像データベース212、音響データベース213、照明装置制御部221、ディスプレイ制御部222、サウンドシステム制御部223を備えている。
設定テーブル203には、後に例を図示するように、MIDI信号の内容と効果装置300の制御内容との対応が記憶されている。本実施形態では、制御内容は制御装置300の種類毎に詳細な制御内容を記述したファイルをデータベースとして記憶しており、照明データベース211は照明装置301の制御内容を記憶したものであり、画像データベース212はディスプレイ302に表示する静止画や動画の制御内容を記憶したものであり、音響データベース213はサウンドシステム303におけるオーディオ出力の制御内容を記憶したものである。
また、照明装置制御部221、ディスプレイ制御部222、およびサウンドシステム制御部223は、受信したMIDI信号の内容に基づいて特定されたファイルの記述内容に従って、各々接続された効果装置を制御するものである。
【0012】
[1−4.データの構成]
次に、同期制御を行うためのデータ構成について説明する。本実施形態では、演奏の進行を記述した演奏データに基づいて同期制御を行うものとし、演奏データはMIDIフォーマットで記述されている。
図5は演奏データの一部を示した図である。MIDIデータは、イベントデータと、これらの時間間隔を示すタイミングデータと、エンドデータとからなるシーケンスデータで構成され、ディスクドライブ120から供給される。
【0013】
イベントデータは、ノートオンイベントやノートオフイベント、ノートナンバ、およびベロシティを示すデータを有している。なお、ノートオンおよびノートオフ以外のイベントについては、本実施形態では説明を省略する。
また、MIDIデータでは最大16系統の楽器をコントロールすることができるようになっており、このためノートイベントデータとして最大16系統のデータを記述することができる。本実施形態では、各系統毎にシーケンスデータが作成されており、各シーケンスはTr0〜Tr15までのトラック名で特定されるようになっている。
【0014】
所定の1系統のイベントデータのノートオンイベントのベロシティを示す部分には、キューフラグという識別子が記述されるようになっている(図5に示した「Cf」参照)。つまり、コントローラ11は、MIDIデータの所定の系統のノートオンイベントのベロシティを示す部分を参照することにより、このノート(音高)がキューフラグに特定されるものであるか否かを判別することができるようになっている。なお、キューフラグであることを記述するための情報は、上記のようにベロシティの部分に書き込む以外にも、他の部分に書き込むようにしてもよい。
【0015】
本実施形態では、このキューフラグを用いて、ピアノ100における演奏と制御装置200において行う効果装置300の制御を同期させる。より具体的には、上述した各系統に、演奏のメロディラインを示す主演奏トラックと、ピアノ100の外部に接続されている機器の制御内容を示す外部制御トラックとを割り当て、主演奏トラックに含まれるノートオンイベントに一定の区切り毎にキューフラグを付しておく。
そして、キューフラグが付された主演奏トラックのノートオンイベントの実行タイミングを、センサ26が検出する鍵1の押鍵操作に基づいて制御することによって、あわせて外部制御トラックのイベントデータの実行タイミングも制御する。
これにより、予め演奏の進行にあわせて制御内容を記述しておくことができるので、演奏しながら制御スイッチを操作する手間が省け、押鍵操作に基づいて進行を制御できるので、演奏者がタイミングをコントロールできるようになる。
【0016】
ところで、本実施形態では、図6に例示するように、コントローラ11が行う制御内容を各トラック毎に割り当てたテーブルが、コントローラ11内のRAMに記憶させる。この内容は、例えば演奏データに含まれている。
コントローラ11は、所定のタイミングにおいて実行すべきイベントデータが含まれるトラック番号に基づいて異なる制御を行えるようになっており、図6に示す例では、トラックTr0のイベントデータに基づいてソレノイド5を制御し、トラックTr1のイベントデータに基づいて電子楽音発生部25を制御し、トラックTr2のイベントデータに基づいて外部の装置を制御するように設定されている。ここでのソレノイド5の駆動は、ハンマ2が弦4を打撃しない程度に鍵1を駆動する、いわゆる鍵1を半押し状態とすることにより、演奏者に対して押下すべき鍵を報知するものとする。なお、鍵1を半押し状態とする演奏ガイドは行わないようにしてもよいし、各鍵毎に設けたLEDによる点灯表示などによって演奏ガイドを行うようにしてもよい。
これにより、トラックTr0のデータに基づいて演奏指示を行い、トラックTr1のデータに基づいて伴奏の自動演奏を行い、トラックTr1のデータに基づいて外部に接続した効果装置300を用いた効果付与を行うことができるようになる。
【0017】
図7は、ピアノ100から送信されるMIDI信号の内容と、制御装置200における制御内容との対応を例示した図であり、この内容は、先に説明したように、制御装置200の設定テーブルに記憶されている。
本実施形態では、外部装置に対する制御内容を示すMIDIデータにはノートオンイベントを用いるものとしている。制御装置200は、ノートオンデータに含まれるノートナンバに基づいて制御内容を選択すればよい。
また、先にも説明したように、各制御装置300の詳細な制御内容を記述したファイルはデータベースとして記憶されており、各ファイルには、図7に例示するようにそれぞれファイル名が付されて特定できるようになっている。
設定テーブルは、ノートナンバとファイル名とを1対1に対応させたデータ構成となっている。
なお、図7においては、ノートナンバ0〜127を照明、画像、音響の3種類の制御内容に対応させているが、照明、画像、音響のイベントデータを各種類毎に異なるトラックに割り当てるようにすれば、各種類のイベントデータを分別できるため、128個のノートナンバを各種類の制御に各々用いることができ、制御を多様化できる。
【0018】
[2.実施形態の動作]
次に、上述した構成を備える本実施形態の動作について、同期制御動作の概要説明した後、ピアノ100および制御装置200の詳細な動作についてそれぞれ説明する。
【0019】
[2−1.概要動作]
図8は、上述した主演奏トラックおよび外部制御トラックのデータの内容例を楽譜として表示した図である。
以下の説明においては、タイミングの特定について、「イベント時刻」および「ポインタ時刻」2種類の時刻を用いる。「イベント時刻」とは、上述したタイミングデータの累積によって特定される時刻であり、演奏データに含まれる各イベントデータを実行すべき時刻を示す。例えば、図8に示す具体例では、コントローラ11の分解能=2(1/8分音符を基本単位)とした場合の各音符の演奏時刻を「イベント時刻」の時系列に示している。この例によれば、キューフラグの付されたノートオンイベントは、イベント時刻t8およびt16において演奏されることになる。このイベント時刻によって示されるタイミングは、演奏データに含まれる16のトラックTr0〜Tr15共通の時刻であり、これにより、各トラックに含まれるイベントデータの同期をとることができるようになっている。
【0020】
一方、「ポインタ時刻」とは、イベントデータを実行している時刻、すなわち現在演奏中の時刻を示しているものである。キューフラグを用いない通常のMIDIデータに基づく演奏であれば、ポインタ時刻はテンポによって規定される一定の時間間隔で進行していくが、本実施形態のようにキューフラグを用いて演奏進行の待ち受けを行う場合には、必ずしも一定の時間間隔で進行するとは限らない。
なお、以下の説明においては、イベント時刻およびポインタ時刻の他に、「キューフラグ時刻」を用いる場合があるが、これはイベント時刻のうちの、特にキューフラグが付されたノートオンイベントを実行すべき時刻を示すものである。また、図8中の「経過時間」は、キューフラグに対応する押鍵イベントの待ち受け状態になってからの経過時間を示してる。なお、本実施形態における「キューフラグに対応する押鍵イベント」とは、キューフラグが付されたノートイオンイベントに含まれるノートナンバに対応した鍵1の押鍵をキーセンサ26が検出した場合をいう。
【0021】
本実施形態では、押鍵イベントの待ち受け状態は、キューフラグ時刻を前後する所定時間継続するものとしている。これは、演奏者が演奏データが示すキューフラグ時刻よりも、早くあるいは遅く押鍵しても、効果付与タイミングを演奏に同期させるためである。
より具体的には、キューフラグに対応する押鍵の待ち受け時間(図8中の「経過時間」)においては、ポインタ時刻の進行をいったん停止し、キューフラグに対応した押鍵イベントがあったときにキューフラグ時刻からポインタ時刻の進行を開始する。なお、押鍵イベントの待ち受け状態が開始してから所定時間が経過しても押鍵イベントがなかった場合には、ミスタッチや誤検出により押鍵イベントが検出されなかった場合や、演奏者が効果付与を行わないことを意図した場合であって、演奏者の演奏動作自体は進行している場合があるので、待ち受け状態は解除して、未実行のイベントデータに対応するイベント時刻からポインタ時刻の進行を開始する。
【0022】
本実施形態では、上述したような処理を行うために、コントローラ11において実行する処理において必要なデータを一時的に記憶しておくバッファ(押鍵バッファ、イベントバッファ、キューフラグバッファ)がピアノ100のコントローラ11のRAMに設けられる。
図9は、各種バッファの内容例を示す図であり、(1)は押鍵バッファの内容例を示し、(2)はイベントバッファの内容例を示し、(3)はキューフラグバッファの内容例を示している。
【0023】
押鍵バッファは、キーセンサ26によって検出された鍵1の押鍵操作内容を記憶するバッファである。コントローラ11には、鍵1とノートナンバとの対応が予め設定されており、鍵1毎に押鍵イベントを検出すると、当該鍵1に対応したノートナンバを認識できるようになっている。
イベントバッファは、次に実行すべきイベントデータを予めディスクドライブにセットされたディスクから読み出して記憶するバッファであり、図9(2)に示すように、当該イベントデータのトラック番号、イベント、ノートナンバ、およびイベント時刻を対応付けて記憶するようになっている。
キューフラグバッファは、キューフラグの内容を記憶するバッファであり、図9(3)に示すように、キューフラグが付されたノートオンイベントのノートナンバ、キュー実行待ち状態になってからの経過時間、およびキューフラグ時刻を対応付けて記憶するようになっている。
これらのバッファを用いた詳細な処理について、次にフローチャートを参照しながら説明する。
【0024】
[2−2.ピアノ100の詳細動作]
[2−2−1.メインルーチン]
図10に示したフローチャートは、ピアノ100のコントローラ11が、内部のメモリに記憶されたプログラムに従って実行する処理のメインルーチンである。この図に示す処理は、例えば上述したディスプレイ130のタッチパネルの操作などによって演奏開始が指示された時に開始する。
コントローラ11は、この図に示す処理を開始すると、まず各種設定などの初期化処理を行う(S100)。ここでは、例えば上述した各種バッファの初期化や、ポインタ時刻の初期化などを行う。
初期化が終了すると、コントローラ11は、後にそれぞれ詳しく説明する押鍵処理(S200)、演奏データ読出処理(S300)、およびイベント実行処理(S400)を演奏終了まで循環させる。なお、循環は、イベント時刻系列における基本単位の時間毎に1循環するものとする。
【0025】
[2−2−2.押鍵処理]
図11に示すフローチャートは、押鍵処理(図10:S200)のサブルーチンを示したものである。押鍵処理は、演奏者が行った鍵1の操作状態を検出するルーチンであり、コントローラ11は、まずキーセンサ26の検出値を取り込む(S201)。
そして、検出値に基づいて押鍵イベントの有無を判定し(S202)、押鍵イベント有りと判定した場合には(S202;YES)、図9(1)に示すように押鍵イベントを検出された鍵1に対応するノートナンバを押鍵バッファに書き込んで(S203)、処理をメインルーチンに戻す。
【0026】
一方、ステップS202の判定において、押鍵イベント無しと判定した場合には(S202;NO)、次に離鍵イベントの有無を判定し(S204)、離鍵イベント有りと判定した場合には(S204;YES)、離鍵イベントを検出された鍵1に対応するノートナンバを押鍵バッファから消去して(S205)、処理をメインルーチンに戻す。
ステップS204の判定において、離鍵イベント無しと判定した場合には(S204;NO)、鍵1の状態に変化がなかったと判定できるので、そのまま処理をメインルーチンに戻す。
この処理を繰り返し行うことによって、コントローラ11は、演奏者が鍵1を操作した状態を押鍵バッファに記憶されたデータによって認識することができる。
【0027】
[2−2−3.演奏データ読出処理]
図12に示すフローチャートは、演奏データ読出処理(図10:S300)のサブルーチンを示したものである。演奏データ読出処理は、演奏データ中のMIDIシーケンスから次に実行すべきイベントデータを予め読み出して、図9(2)に示したイベントバッファに記憶しておく処理である。なお、イベントデータを読み出すための読出タイマは、各トラック毎に設けられている。
【0028】
コントローラ11は、まず最初のトラックTr0から読み出しを開始する(S301)。読み出しを開始すると、読出タイマが示す値が0であるか否か、すなわち、このトラックのイベントデータの読み出しタイミングであるか否かを判定する(S302)。なお、読出タイマにセットされる値は、後に説明するように、次のイベントデータを読み出すまでの時間を示しており、ルーチンが1循環する毎に1づつデクリメントされることによって、時間の経過を示すものである。ステップS302の判定において、イベントデータの読み出しタイミングであると判定した場合は(S302;YES)、次に実行すべきイベントデータを読み出して(S303)、そのイベントデータを実行すべきイベント時刻をタイミングデータに基づいて算出する(S304)。そして、図9(2)に示すように、トラック番号、イベントの種類、ノートナンバ、およびイベント時刻をイベントバッファに書き込んで(S305)、次にイベントデータを読み出すまでの時間を読出タイマにセットする(S306)。ここでセットする時間は、イベント時刻よりも所定時間前になるような時間にしておく。これによって、予めイベントデータを読み出しておくことができるようになり、キューフラグに対応する押鍵イベントの待ち受けもキューフラグ時刻よりも前から開始することが可能となる。
【0029】
コントローラ11は、今回読み出したイベントデータにキューフラグが付されているか否かを判定し(S307)、キューフラグがふされていると判定した場合には(S307;YES)、図9(3)に示すように、キューフラグの付されたノートオンイベントのノートナンバをキューフラグバッファに書き込む(S308)。このとき、あわあせてステップS304で算出したイベント時刻をキューフラグ時刻としてセットする。なお、この時点ではキューフラグを書き込んでから時間の経過がないので、経過時間は0とする。
【0030】
キューフラグへの書込(S308)が終了した後、あるいはステップS307の判定において、キューフラグが付されていないと判定した場合は(S307;NO)、全トラックのMIDIデータについて読出処理を実行したか否かを判定し(S309;NO)、まだ読出処理を行っていないトラックが残っていると判定した場合は(S309;NO)、処理対象を次のトラックに変更して(S310)、ステップS302の読出タイマ値の判定に移行させる。
ところで、このステップS302の判定において、読出タイマ値が0ではない、すなわちイベントデータを読み出すタイミングではないと判定した場合は(S302;NO)、読出タイマ値を1デクリメントした後(S311)、全トラックについて処理を終了したか否かの判定を行う(S309)。
そして、ステップS309の判定において全トラックについて処理を終了したと判定すると(S309;YES)、演奏データ読出処理を終了してメインルーチンに戻る。
【0031】
[2−2−4.イベント実行処理]
図13に示すフローチャートは、イベント実行処理(図10:S400)のサブルーチンを示したものである。イベント実行処理は、イベントバッファに記憶されたイベントデータを実行するための処理であり、キューフラグに対応した押鍵イベントの待ち受けも、このルーチンで行うものである。
コントローラ11は、キューフラグバッファにデータが記憶されているか否かをまず判定し(S401)、キューフラグバッファにデータが記憶されている、すなわち、キューフラグに対応した押鍵イベントの待ち受け状態であると判定した場合は(S401;YES)、キューフラグバッファに記憶されているノートナンバと押鍵バッファに記憶されているノートナンバが一致するか否かを判定する(S402)。ここで、両者が一致すると判定した場合は(S402;YES)、キューフラグの付されたノートオンイベントが指示した鍵1を演奏者が操作したものと判定できるので、先に説明したように、待ち受け状態を解除すべく、ポインタ時刻をキューフラグ時刻にセットする(S403)。
【0032】
一方、ステップS402の判定において、キューフラグバッファに記憶されているノートナンバと押鍵バッファに記憶されているノートナンバが一致しないと判定した場合は(S402;NO)、キューフラグの付されたノートオンイベントが指示した鍵1を演奏者が操作していない、あるいは、ことなる鍵1を操作したと判定できるので、キューフラグバッファ中の経過時間(図9(3)参照)を1インクリメントする(S404)。
そして、経過時間値が、待ち受け許容時間としての所定値以上になったか否かを判定し(S405)、所定値未満、すなわち、経過時間がいまだ許容時間内であると判定した場合には(S405;NO)、キューフラグに対応した押鍵イベントの待ち受け状態を継続すべく、イベント実行処理を終了してメインルーチンに戻る。
一方、経過時間値が所定値以上になったと判定した場合には(S405;YES)、待ち受け状態を解除すべく、次に実行すべきイベントデータのイベント時刻をポインタ時刻にセットする(S406)。
ステップS403あるいはステップS406において、待ち受け状態を解除するポイント時刻のセットを行った後、キューフラグバッファのデータを削除する(S407)。
【0033】
ところで、ステップS401の判定において、キューフラグバッファにはデータが記憶されていないと判定した場合は(S401;NO)、押鍵イベントの待ち受け状態ではないので、通常の演奏としてポインタ時刻を進行させるべく、ポインタ時刻を1インクリメントする(S410)。
【0034】
ステップS403、S406、あるいはS410において今回処理すべきポインタ時刻をセットすると、コントローラ11は、イベントバッファを参照してこのポインタ時刻に対応したイベントを実行する(S408)。先に図6を参照しながら説明したように、実行すべきイベントデータが含まれていたトラック番号毎にコントローラ11が行う制御内容が対応付けられている。図6に示す例では、実行すべきイベントデータがトラックTr0のデータであればこのノートナンバに対応した鍵1のソレノイド5を制御し、トラックTr1のデータであればこのノートナンバに対応した音高の楽音を電子楽音発生装置25に発生させ、トラックTr3のデータであればこのノートナンバを含むノートオンメッセージをMIDI信号として制御装置200に送信する。
このような、各トラックに対応したイベントデータに基づく制御を実行した後(S408)、コントローラ11は、実行したイベントデータをイベントバッファから削除して(S409)、イベント実行処理を終了する。
【0035】
[2−3.制御装置200の詳細動作]
次に、制御装置200の詳細動作について、図14に示すフローチャートを参照しながら説明する。
制御装置200の制御部201は、例えば、パネル操作やピアノ100から送信されるデータなどに基づいて図14に示す処理を開始すると、初期化処理を行った後(Sb1)、ピアノ100からのMIDI信号受信待ち状態とする(Sb2)。
ステップSb2においてMIDI信号を受信したと判定した場合は(Sb2;YES)、図7に例示したような設定テーブル203を参照して、受信したノートナンバに対応する制御データをデータベースから検索する(SSb3)。そして、検索された制御データに基づいて効果装置300を制御して(Sb4)、ピアノ200における演奏が終了したか否かを判定する(Sb5)。
ステップSb5の判定において、演奏が終了していないと判定した場合は(Sb5;NO)、処理をステップSb2のMIDI信号受信待ちに戻し、演奏が終了したと判定した場合は(Sb5;YES)、処理を終了する。
【0036】
[3.まとめ]
このように、本実施形態では、演奏者に対する演奏支援や伴奏の自動演奏などの音楽データの時間進行にあわせて、演奏に付与する各種効果の内容を予め演奏データに記述しておくことができるので、演奏者は複数の効果付与制御操作を演奏動作とは別に行う必要がなくなる。
また、演奏データにはキューフラグが付されており、キューフラグに対応する押鍵イベントの待ち受けができるようになっているので、演奏タイミングが演奏データに記述されたタイミングよりも前後した場合であっても、あわせて付与すべき効果の制御も待ち受け状態になっているので、演奏動作と効果制御が同期するようになる。
【0037】
[4.変形例]
本発明は、上述した実施形態に限らず、以下に示すような各種の変形が可能である。
【0038】
上記実施形態では、楽器以外の他装置として、効果装置である照明装置、ディスプレイ、サウンドシステムなどを例としてあげたが、これらに限らず、例えば、空調装置、送風装置や、香り発生装置など、ピアノ100が楽器として備える通常の機能以外のもので制御可能なものであればどのような装置でもかまわない。
また、各効果装置で付与する効果についても、予め記憶したデータによる制御が行えればどのようなものでもよく、記憶しておくデータの形式もどのようなものでもかまわない。例えば、動画であればMPEG(Moving Picture Experts Group)などをもちいればよいし、オーディオであればADPCM(Adaptive Differential Pulse Code Modulation)形式のデータでもよいし、MIDIデータに基づいて音源で楽音を生成するようにしてもかまわない。
なお、演奏者が演奏する楽器についても、上記実施形態のようなピアノにかぎらず、キーボードやオルガンのような他の鍵楽器であってもよいし、演奏者が音高を特定して演奏動作を行う楽器であって、演奏動作を検出できるものであれば管楽器や弦楽器のような他の楽器であってもかまわない。
【0039】
演奏動作を検出する手段についても、上記のようなキーセンサに限らず、演奏者の動作に対応して指示された音高を検出できればどのようなものでもかまわない。あるいは、演奏動作であれば音高に限らず、検出可能なものであれば例えばダンパペダルの押下など他の動作であってもかまわない。
【0040】
また、上記実施形態では、複数の効果装置を一つの制御装置で制御しているが、各効果装置毎に制御装置を設けて、楽器側でMIDI信号の送信先を制御するようにしてもかまわない。あるいは、制御装置を楽器側に設ける構成にしてもよい。
上記実施形態では、キューフラグをノートオンイベントに含めたデータ構成としているが、これに限らず、演奏者の演奏動作と対応付けることができればどのような記述のしたかでもよく、例えばキューフラグのみを記述したトラックを設けてもよい。
なお、演奏データに記述された所定の区切りを示すデータとして、上記実施形態ではキューフラグを用いているが、これに限らず他の識別子を用いるようにしてもかまわない。例えば小節線を示すデータを含めた場合は小節線データを用いてもよいし、カラオケデータのようにさび区間の開始を示すマークなどを記述しているような場合には、このようなマークを用いてもかまわない。あるいは、識別子を用いずに、所定の時間条件や何音符毎などといった他の情報を演奏データのヘッダなどに記述しておいてもかまわない。
【0041】
上記実施形態では、キューフラグがバッファに記憶されている場合には、該キューフラグのノートナンバに対応する押鍵イベントを検出するまでポインタ時刻の進行を停止することによって、楽器の演奏動作と主演奏データとを比較し、該比較結果に応じて主演奏データおよび制御データの進行を制御しているが、進行の停止に限らず、例えば、進行速度を徐々に遅くするようにしてもよい。
また、上記実施形態では、楽器の演奏動作と主演奏データとを比較する際には、主演奏データの進行と制御データの進行とを同一のポインタ時刻を用いて一致させているが、主演奏データの進行のみを停止し、制御データの進行は少し先まで進ませてから停止するようにしてもよいし、制御データの進行速度を徐々に遅くするようにしてもよい。
なお、上記実施形態では、キューフラグに対応する押鍵イベントの待ち受け状態になってから所定時間が経過した場合は、待ち受け状態を解除するものとして説明しているが、押鍵イベントを検出するまで待ち続けるようにしてもかまわない。
また、上記実施形態では、キューフラグ時刻よりも早いタイミングから押鍵イベントの待ち受けを行うものとし、キューフラグ時刻よりも前に押鍵イベントを検出した場合には効果付与タイミングも前倒しとなる例を用いて説明しているが、これに限らず、効果付与タイミングを前倒ししないようにしてもよい。このような場合は、ポイント時刻がキューフラグ時刻と一致した時点で、所定時間前以内に押鍵イベントを検出していた場合には、そのままポインタ時刻を進行させ、押鍵イベントを検出していなかった場合は、押鍵イベントを検出するまで待ち続けるようにすればよい。
【0042】
効果付与を制御するイベントデータについて、上記実施形態ではノートオンイベントを用いて、そのイベントに含まれるノートナンバと制御内容とを対応付けているが、例えばエクスクルーシブなどの他のメッセージを用いてもよいし、ベロシティなど他のパラメータと制御内容を対応付けるようにしてもかまわない。
なお、演奏データを記述するデータ形式および、楽器から制御装置への制御信号の送信形式についても、上記実施形態のようなMIDIに限らず、他の形式のものをもちいてもかまわないのはもちろんである。
また、上記実施形態では、各種制御を行うためのプログラムは予めコントローラ11および制御部201に記憶されているものとして説明したが、例えば、ディスクドライブ120にセットされたディスクから読み出したり、インストールできるようにしてもよい。
プログラムや演奏データをコントローラ11や制御部201に供給する手段についても、ディスクからの読み込みに限らず、通信インターフェイスを設けて、通信回線によって供給できるようにしてもかまわない。
【0043】
【発明の効果】
以上説明したように、本発明によれば、楽器の演奏と楽器以外の装置の動作を同期させて制御することが可能になる。
【図面の簡単な説明】
【図1】 実施形態の全体構成を示す図である。
【図2】 ピアノの外観構成を示す図である。
【図3】 ピアノの主要部の構成を示す図である。
【図4】 制御装置の構成を示すブロック図である。
【図5】 MIDIデータの構成を示す図である。
【図6】 MIDIデータと制御内容の対応を示す図である。
【図7】 MIDIデータに含まれるパラメータと制御内容の対応を示す図である。
【図8】 MIDIデータの内容を音符で示した図である。
【図9】 各種バッファの内容を例示した図である。
【図10】 ピアノの動作を説明するフローチャートである(メインルーチン)。
【図11】 ピアノの動作を説明するフローチャートである(押鍵処理)。
【図12】 ピアノの動作を説明するフローチャートである(演奏データ読出処理)。
【図13】 ピアノの動作を説明するフローチャートである(イベント実行処理)。
【図14】 制御装置の動作を説明するフローチャートである。
【符号の説明】
100……ピアノ、1……鍵、2……ハンマ、3……アクションメカニズム、4……弦、5……ソレノイド、6……ダンパ6、11……コントローラ、12……サーボコントローラ、25……電子楽音発生装置、26……キーセンサ、110……MIDIインターフェイス、111……MIDIケーブル、120……ディスクドライブ、130……ディスプレイ、200……制御装置、300……効果装置。
Claims (8)
- 楽器の演奏動作に同期して他装置を制御する同期制御方法であって、
前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データから、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出段階と、
読み出した前記制御データに基づいて前記他装置を制御する制御段階とを備え、
予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする同期制御方法。 - 請求項1に記載の同期制御方法において、
前記制御データは、複数のイベントデータで構成され、
読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏段階を備えることを特徴とする同期制御方法。 - 請求項1に記載の同期制御方法において、
前記所定の区切りは、前記主演奏データに含まれる音高データと対応付けて記述されており、
前記演奏動作として検出された音高と、前記音高データが示す音高とが一致した場合は前記時間進行の停止を解除することを特徴とする同期制御方法。 - 請求項1に記載の同期制御方法において、
前記制御段階は、予め記憶された対応データに基づいて、前記制御データに含まれるパラメータに基づいて前記他装置の制御内容を認識することを特徴とする同期制御方法。 - 請求項1に記載の同期制御方法において、
前記他装置は複数種類の装置であり、前記制御データは前記他装置の種類を区別するパラメータを含むことを特徴とする同期制御方法。 - 請求項1ないし5のいずれかに記載の同期制御方法であって、
前記演奏データは、前記演奏に付加する伴奏内容を記述する伴奏データ系列と前記主演奏データ系列とを対応付けており、
前記読出段階は、前記主演奏データ、前記制御データ、および前記伴奏データ系列に含まれる個々の伴奏データを読み出し、
読み出した前記伴奏データに基づいて電子楽音を発生させる段階を備えることを特徴とする同期制御方法。 - 楽器の演奏動作に同期して他装置を制御する同期制御装置であって、
前記楽器の演奏内容を記述する主演奏データ系列と前記他装置を制御する制御内容を時系列で記述した制御データ系列とを対応付けた演奏データを記憶する演奏データ記憶手段と、前記主演奏データ系列に含まれる個々の主演奏データと前記制御データ系列に含まれる個々の制御データとを共通の時間進行に従って読み出す読出手段と、
読み出した前記制御データに基づいて前記他装置を制御する制御手段とを備え、
予め前記演奏データに記述された所定の区切りにおいては、読み出した前記主演奏データに対応した演奏動作を検出するまで前記時間進行を停止し、かつ、該時間進行を停止してから所定時間が経過しても該演奏動作が検出されない場合には、該時間進行の停止を解除することを特徴とする同期制御装置。 - 請求項7に記載の同期制御装置において、
前記制御データは、複数のイベントデータで構成され、
読み出した前記制御データに含まれる個々のイベントデータに基づいて前記楽器の自動演奏を行う自動演奏手段を備えることを特徴とする同期制御装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000003955A JP4200621B2 (ja) | 2000-01-12 | 2000-01-12 | 同期制御方法および同期制御装置 |
US09/754,520 US6417439B2 (en) | 2000-01-12 | 2001-01-04 | Electronic synchronizer for musical instrument and other kind of instrument and method for synchronizing auxiliary equipment with musical instrument |
DE60134596T DE60134596D1 (de) | 2000-01-12 | 2001-01-10 | Elektronischer Synchronisator und Verfahren zur Synchronisation von zusätzlichem Gerät mit einem Musikinstrument |
EP01100594A EP1130572B1 (en) | 2000-01-12 | 2001-01-10 | Electronic synchronizer and method for synchronising auxiliary equipment with musical instrument |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000003955A JP4200621B2 (ja) | 2000-01-12 | 2000-01-12 | 同期制御方法および同期制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001195061A JP2001195061A (ja) | 2001-07-19 |
JP4200621B2 true JP4200621B2 (ja) | 2008-12-24 |
Family
ID=18532809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000003955A Expired - Fee Related JP4200621B2 (ja) | 2000-01-12 | 2000-01-12 | 同期制御方法および同期制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4200621B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7863513B2 (en) * | 2002-08-22 | 2011-01-04 | Yamaha Corporation | Synchronous playback system for reproducing music in good ensemble and recorder and player for the ensemble |
JP4655455B2 (ja) * | 2003-06-30 | 2011-03-23 | カシオ計算機株式会社 | 演奏記録再生装置、及びプログラム |
JP5491905B2 (ja) * | 2010-02-27 | 2014-05-14 | 株式会社第一興商 | カラオケ照明システム |
-
2000
- 2000-01-12 JP JP2000003955A patent/JP4200621B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001195061A (ja) | 2001-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001195063A (ja) | 演奏支援装置 | |
EP1130572B1 (en) | Electronic synchronizer and method for synchronising auxiliary equipment with musical instrument | |
JP4321476B2 (ja) | 電子楽器 | |
US20070119291A1 (en) | Musical performance training device and recording medium for storing musical performance training program | |
JP3237455B2 (ja) | 演奏指示装置 | |
US6180865B1 (en) | Melody performance training apparatus and recording mediums which contain a melody performance training program | |
JP3975526B2 (ja) | カラオケ装置 | |
CN1162834C (zh) | 卡拉ok机 | |
JP4200621B2 (ja) | 同期制御方法および同期制御装置 | |
JPH10214083A (ja) | 楽音生成方法および記憶媒体 | |
JP4228494B2 (ja) | 制御装置および制御方法 | |
JP2003015636A (ja) | 楽譜表示装置 | |
JP3055554B2 (ja) | 操作指示装置 | |
JPH0533798B2 (ja) | ||
JP3613062B2 (ja) | 楽音データ作成方法および記憶媒体 | |
KR0144939B1 (ko) | 악보출력기능을 갖는 영상노래반주장치 | |
JP4254656B2 (ja) | 自動演奏装置及びプログラム | |
JP2009198657A (ja) | 演奏教習装置および演奏教習プログラム | |
JP3918308B2 (ja) | カラオケ装置 | |
JP3622315B2 (ja) | カラオケの表示装置 | |
JP3546602B2 (ja) | 自動演奏装置 | |
JP2556639B2 (ja) | 自動演奏装置 | |
JPH06161439A (ja) | 楽音と映像の再生出力同期装置 | |
JPH10153996A (ja) | 音源カラオケ装置 | |
JPH07140977A (ja) | 自動演奏装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061124 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080502 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080513 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080711 |
|
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: 20080916 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080929 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121017 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121017 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131017 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |