JP5703543B2 - 電子楽器、方法及びプログラム - Google Patents

電子楽器、方法及びプログラム Download PDF

Info

Publication number
JP5703543B2
JP5703543B2 JP2009089689A JP2009089689A JP5703543B2 JP 5703543 B2 JP5703543 B2 JP 5703543B2 JP 2009089689 A JP2009089689 A JP 2009089689A JP 2009089689 A JP2009089689 A JP 2009089689A JP 5703543 B2 JP5703543 B2 JP 5703543B2
Authority
JP
Japan
Prior art keywords
event
note
midi
data
midi data
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
JP2009089689A
Other languages
English (en)
Other versions
JP2010243615A (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 JP2009089689A priority Critical patent/JP5703543B2/ja
Publication of JP2010243615A publication Critical patent/JP2010243615A/ja
Application granted granted Critical
Publication of JP5703543B2 publication Critical patent/JP5703543B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、電子楽器、方法及びプログラムに関する。
従来、電子楽器の製品開発過程や、製造過程においての仕様テストは、人手により行なわれている。すなわち、操作者がスイッチを一つずつ操作して、電子楽器の振舞い、たとえば、LEDの点灯、消灯や、表示装置の画面上へ表示などを確認する。また、仕様テストにおいて不具合が生じた場合に、どの操作シーケンスにより不具合が生じたかを確認する必要があるが、人手による操作の場合、その操作シーケンスを覚えておらず、不具合を再現することが難しい場合もある。また、手作業で行なわれる限り、操作者によるスイッチ操作にミスが生じる場合もある。
これら人手によるミスを無くし、手動操作の手間を軽減するために、何らかの手段により自動的に操作を実行させることが望ましい。
パーソナルコンピュータに電子楽器に対して制御信号を送信するテストツールを装着し、電子楽器が制御信号にしたがって決められた動作をするように必要な回路要素を組み込むことが考えられる。しかしながら、この場合には、電子楽器にテスト専用の仕組み(インタフェースや回路)を組み込む必要があり、電子楽器の回路規模を大きくしてしまうという問題点がある。また、通常動作で必要の無い回路要素を組み込むことは無駄である。
電子楽器以外の操作子を有する電子機器においても、仕様テストにおいては同様の問題が起こり得る。
特開平10−39865号公報
たとえば、電子楽器においては、MIDI(Musical Instrument Digital Interface)に基づいて、予め定義されたメッセージを受信することで、所定の楽音を発音し、或いは、音色を切り替えることが可能である。また、特許文献1には、鍵盤において、特定パターンの鍵の押鍵操作により、所定のMIDIデータ列が出力されると、上記押鍵操作のパターンにしたがって、カラオケ演奏におけるトランスポーズ、演奏の一時停止或いは再スタートが制御できるカラオケ装置が提案されている。
本発明は、制御信号の出力側においても特殊なテストツールを要することなく、また、受信側においても手作業による操作の必要なく、操作子の操作を自動的に実行可能な操作実行システムを提供することを目的とする。また、本発明は、通常で必要の無い回路要素の組み込みが不要であっても、操作子の操作を自動的に実行できる電子楽器を提供することを目的とする。
本発明の目的は、供給されるMIDIデータのノートオンイベントに基づいて、当該ノートオンイベントに対応する音高の楽音データを生成するとともに、ノートオフイベントに基づいて、当該ノートオフイベントに対応する音高の楽音データを消音する楽音データ生成手段と、前記MIDIデータを受信するMIDIインタフェース手段と、鍵盤と、前記鍵盤への押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成するイベント生成手段と、それぞれオンオフ操作可能な複数の操作子と、前記複数の操作子のいずれかの操作子のオンオフ操作に応答して、当該オンオフ操作された操作子に対応しかつ前記楽音データの生成・消音以外のイベントを実行するイベント実行手段と、通常動作モード及びイベント実行モードのいずれかのモードを選択するモード選択手段と、前記通常動作モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータ及び前記イベント生成手段により生成されたMIDIデータを、前記楽音データ生成手段に供給する供給手段と、前記イベント実行モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータに基づき、前記複数の操作子のうち当該MIDIデータに対応する操作子のイベントを、前記イベント実行手段に実行させるイベント実行制御手段と、を備えたことを特徴とする電子楽器により達成される。
好ましい実施態様においては、前記モード選択手段は、前記MIDIインタフェース手段によりMIDIデータとしてエクスクルーシブメッセージが受信され、かつ当該受信されたエクスクルーシブメッセージの内容に基づいて、通常動作モード及びイベント実行モードのいずれかのモードを選択する。
より好ましい実施態様においては、前記イベント実行制御手段は前記イベント実行手段に対して、前記MIDIデータがノートオンイベントである場合に、前記対応する操作子がオン状態となったときのイベントを実行させるとともに、前記MIDIデータがノートオフイベントである場合に、前記対応する操作子をオフ状態となったときのイベントを実行させる。
また、本発明の目的は、供給されるMIDIデータのノートオンイベントに基づいて、当該ノートオンイベントに対応する音高の楽音データを生成するとともに、ノートオフイベントに基づいて、当該ノートオフイベントに対応する音高の楽音データを消音する楽音データ生成手段と、前記MIDIデータを受信するMIDIインタフェース手段と、鍵盤と、押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成するイベント生成手段と、それぞれオンオフ操作可能な複数の操作子と、を有する電子楽器に用いる方法であって、前記電子楽器は、前記鍵盤への押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成し、前記複数の操作子のいずれかのオンオフ操作に応答し、当該オンオフ操作された操作子に対応しかつ前記楽音データの生成・消音以外のイベントを実行し、通常動作モード及びイベント実行モードのいずれかのモードを選択し、前記通常動作モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータ及び前記イベント生成手段により生成されたMIDIデータを、前記楽音データ生成手段に供給し、前記イベント実行モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータに基づき、前記複数の操作子のうち当該MIDIデータに対応する操作子のイベントを実行させることにより達成される。
また、本発明の目的は、供給されるMIDIデータのノートオンイベントに基づいて、当該ノートオンイベントに対応する音高の楽音データを生成するとともに、ノートオフイベントに基づいて、当該ノートオフイベントに対応する音高の楽音データを消音する楽音データ生成手段と、前記MIDIデータを受信するMIDIインタフェース手段と、鍵盤と、それぞれオンオフ操作可能な複数の操作子と、を有する電子楽器として用いられるコンピュータに、前記鍵盤への押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成するイベント生成ステップと、前記複数の操作子のいずれかの操作子のオンオフ操作に応答して、当該オンオフ操作された操作子に対応しかつ前記楽音データの生成・消音以外のイベントを実行するイベント実行ステップと、通常動作モード及びイベント実行モードのいずれかのモードを選択するモード選択ステップと、前記通常動作モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータ及び前記イベント生成ステップにより生成されたMIDIデータを、前記楽音データ生成手段に供給する供給ステップと、前記イベント実行モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータに基づき、前記複数の操作子のうち当該MIDIデータに対応する操作子のイベントを、前記イベント実行ステップにて実行させるイベント実行制御ステップと、を実行させるプログラムにより達成される。
本発明によれば、制御信号の出力側においても特殊なテストツールを要することなく、また、受信側においても手作業による操作の必要なく、操作子の操作を自動的に実行可能な操作実行システムを提供することが可能となる。また、本発明によれば、通常で必要の無い回路要素の組み込みが不要であっても、操作子の操作を自動的に実行できる電子楽器を提供することが可能となる。
図1は、本実施の形態にかかる電子楽器およびパーソナルコンピュータを含む操作自動実行システムの概略を示す図である。 図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。 図3は、本実施の形態におけるMIDIデータの例を示す図である。 図4は、PCの記憶装置に記憶されたSMFのデータ構成の例を示す図である。 図5は、PCに設けられたSMFプレーヤにおいて実行されるデータ送信処理の例を示すフローチャートである。 図6は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。 図7は、本実施の形態にかかるMIDI処理の例を示すフローチャートである。 図8は、本実施の形態にかかるスイッチ操作実行処理の例を示すフローチャートである。 図9は、本実施の形態にかかるスイッチ操作実行処理の例を示すフローチャートである。 図10は、本実施の形態にかかるスイッチ操作実行処理の例を示すフローチャートである。 図11は、本実施の形態におけるスイッチ番号とスイッチ名との対応テーブルの例を示す図である。 図12は、本実施の形態にかかるテンキー処理の例を示すフローチャートである。 図13は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。 図14は、本実施の形態にかかるソング処理の例を示すフローチャートである。 図15は、本実施の形態にかかる発音処理の例を示すフローチャートである。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器およびパーソナルコンピュータを含む操作自動実行システムの概略を示す図である。図1に示すように、本実施の形態にかかる電子楽器10は、複数(たとえば61個)の鍵16−1、16−2、・・・を含む鍵盤11を有する。また、鍵盤11の上部には、音色の指定、ガイドデータの作成、ガイドの有無などを指定するための複数のスイッチ(たとえば、スイッチ17、テンキー18など)や、演奏される楽曲に関する種々の情報、たとえば、音色、リズムパターン、コードネームなどを表示する表示部14を有する。
また、本実施の形態においては、操作自動実行システムは、パーソナルコンピュータ(PC)15を備える。PC15には、SMF(スタンダードMIDIファイル)プレーヤ31が設けられ、記憶装置32に格納されたSMF33を読み出して、再生することができる。PC15と電子楽器10との間はケーブル34で連結され、PC15のSMFプレーヤ31により読み出されたSMFに基づくMIDIデータが電子楽器10に与えられる。このケーブル34は、MIDI規格に準拠する5ピンのDINコネクタを有するケーブルであっても良いし、USBケーブルであっても良い。
図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、鍵盤11、スイッチ部12、MIDIインタフェース(I/F)13、および、液晶表示装置を有する表示部14を備える。
CPU21は、電子楽器10全体の制御、鍵盤11の鍵(たとえば、図1の符号16−1、16−2参照)の押鍵やスイッチ部12を構成するスイッチの操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御など種々の処理を実行する。また、本実施の形態において、CPU21は、PC15から与えられたMIDIデータに基づく処理を実行する。このMIDIデータに基づく処理については後に詳述する。
ROM22は、CPU21に実行させる種々の処理、たとえば、鍵盤の鍵のオン(押鍵)・オフ(離鍵)、スイッチの操作、押鍵に応じた楽音の発音、MIDIデータに基づく処理などのプログラムを格納する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリア、および、自動伴奏パターンなどを構成する楽音のソングデータを格納したソングデータエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生成されたデータを記憶する。
サウンドシステム24は、音源部26、オーディオ回路27およびスピーカ28を有する。音源部26は、たとえば、押鍵された鍵に関するノートオンイベントをCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部26は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路27は、楽音データをD/A変換して増幅する。これによりスピーカ28から音響信号が出力される。
本実施の形態にかかる電子楽器10は、通常モードの下においては、鍵盤11の鍵の押鍵に基づいて楽音を発生することができる。また、通常モードの下においては、MIDI・I/F13を介してMIDIデータを受信したときにも、MIDIデータのメッセージにしたがった動作、たとえば、ノートオンを示すデータであれば、所定の音高の楽音データを生成し、その楽音を発音する。また、ノートオフを示すデータであれば所定の音高の楽音を消音する。その一方、本実施の形態においては、スイッチ実行モードの下で電子楽器10が作動する場合がある。このスイッチ実行モードにおいては、MIDIデータを、電子楽器10のスイッチ操作の指示として使用し、所定のスイッチをオンさせることができる
図3は、本実施の形態におけるMIDIデータの例を示す図である。図3において、上の2つ(符号301、302参照)は、それぞれ、通常のノートオン、ノートオフを示すメッセージである。たとえば、ノートオンを示すMIDIデータ301においては、最初の1バイト(符号303)で、ノートオン(9(H))およびチャンネル00(H)〜FF(H))が特定され、次の1バイトで、ノート番号(音高)が特定される。その後の1バイトはベロシティを示す。また、ノートオフを示すMIDIデータ302においては、最初の1バイト(符号303)で、ノートオン(8(H))およびチャンネル(00(H)〜FF(H))が特定され、次の1バイトで、ノート番号(音高)が特定される。その後の1バイトはベロシティを示す。
本実施の形態においては、後述するスイッチ実行モードの下で、符号311に示すMIDIデータを電子楽器10が受け入れると、電子楽器10は、所定のスイッチをオンする。したがって、このMIDIデータ311は、スイッチオンを示すメッセージとなる。MIDIデータ311は、基本的に、ノートオンを示すMIDIデータ301と類似する構成をとる。すなわち、最初の1バイト(符号313参照)は、(符号、ノートオンと同様に「9(H)」およびチャンネル番号(本実施例では00(H))となる。また、次の1バイト(符号314)は、スイッチ番号であり、予め電子楽器においてその割り当てを示すテーブルがたとえばROM22に格納されている。図11は、本実施の形態におけるスイッチ番号とスイッチ名との対応テーブルの例を示す図である。図11に示すように、テーブル1100において、「+(プラス)」キー、「−(マイナス)」キーを含むいわゆるテンキー(符号1101参照)を構成するキーが、それぞれ、スイッチ番号0〜11と対応付けられる。他のキー(たとえば、トーンキー1102、ソングキー1103など)も、所定のスイッチ番号(たとえば、「12」、「13」)と対応付けられている。
また、符号312に示すMIDIデータを電子楽器10が受け入れると、電子楽器10は、所定のスイッチをオフする。したがって、このMIDIデータ312は、スイッチオフを示すメッセージとなる。MIDIデータ312は、基本的に、ノートオフを示すMIDIデータ302と類似する構成をとる。すなわち、最初の1バイト(符号315参照)は、(符号、ノートオフと同様に「8(H)」およびチャンネル番号(本実施例では00(H))となる。また、次の1バイト(符号314)は、スイッチ番号である。
本実施の形態においては、符号321に示すエクスクルーシブメッセージを用いて、電子楽器10を通常モードからスイッチ実行モードに切り替えている。このエクスクルーシブメッセージは、冒頭の1バイトが「F0(H)」で、最後の1バイト(EOX)が「F7(H)」となるデータである。
図4は、PC15の記憶装置32に記憶されたSMF33のデータ構成の例を示す図である。図4に示すように、SMF33は、複数のデータレコード(符号401〜410参照)を含み、SMFプレーヤ31が、順次レコードを読み出していく。図4の例では、最初のレコード401はデルタタイム“0”、つまり、すぐに次のレコードを読み出すことを示すデータである。次のレコード402は、「エクスクルーシブメッセージ1」であり、上述したように、電子楽器10において、動作モードを通常モードからスイッチ実行モードに切り替えるためのデータである。また、その後、デルタタイムt(符号403)、ノートオン#(ナンバー)0(符号404)、デルタタイムt(符号405)、ノートオフ#0(符号406)というレコードが格納されている。これらレコードによると、デルタタイムtに相当する時間待機した後、ノートオン#0を出力し、さらに、デルタタイムtに相当する時間だけ待機した後、ノートオフ#0を出力することが示される。また、SMF33の末尾のレコード410はエクスクルーシブメッセージ2であり、電子楽器10において、動作モードをスイッチ実行モードから通常モードに切り替えるデータである。
図5は、PC15に設けられたSMFプレーヤ31において実行されるデータ送信処理の例を示すフローチャートである。図5に示すように、SMFプレーヤ31は、まず、自己のメモリ(図示せず)のクリアを含むイニシャライズを実行し(ステップ501)、SMF33のレコードを読み出す(ステップ502)。SMFプレーヤ31は、読み出したレコードがデルタタイムであるかを判断し(ステップ503)、デルタタイムであれば(ステップ503でYes)、当該デルタタイムに相当する時間だけ待機して(ステップ504)、ステップ506に進む。
ステップ503でNoと判断された場合には、SMFプレーヤ31は、レコードに含まれるデータを出力する(ステップ505)。SMFプレーヤ31は、最終レコードまで処理が終了したかを判断し(ステップ506)、ステップ506でNoと判断された場合にはステップ502に戻る。このようにして、MIDIデータがSMFプレーヤ31から電子楽器10に送信される。
図6は、本実施の形態にかかる電子楽器10において実行される処理の例を概略的に示すフローチャートである。図6に示すように、電子楽器10の電源が投入されると、CPU21は、RAM23中のデータや、表示部14の画面に表示された画像のクリアを含むイニシャライズを実行する(ステップ601)。イニシャライズが終了すると、電子楽器10のCPU21は、MIDI処理を実行する(ステップ602)。図7は、本実施の形態にかかるMIDI処理の例を示すフローチャートである。CPU21は、MIDI・I/F13にMIDIデータの入力があったかを判断する(ステップ701)。ステップ701でNoと判断された場合には処理を終了する。ステップ701でYesと判断された場合には、受け入れたMIDIデータがエクスクルーシブメッセージであるかを判断する(ステップ702)。
ステップ702でYesと判断された場合には、CPU21は、メッセージ番号、つまり、「エクスクルーシブメッセージ1(図4の符号402参照)」であるか、「エクスクルーシブメッセージ2(図4の符号410参照)」であるかを判断する。メッセージ番号=1と判断した場合には、CPU21は、動作モードをスイッチ実行モードとする(ステップ704)。動作モードの情報はRAM23に格納される。メッセージ番号=2と判断した場合には、CPU21は、動作モードを通常モードとする(ステップ705)。
また、ステップ702でNoと判断された場合には、CPU21は、動作モードが通常モードであるかを判断する(ステップ706)。ステップ706でYesと判断された場合には、CPU21は、MIDIデータに示されるメッセージに対応する処理を実行する(ステップ707)。たとえば、MIDIデータがノートオンメッセージであれば、ノートオンメッセージに含まれるチャンネルを、ノート番号にしたがった音高で、メッセージに含まれるベロシティで発音するために必要な処理を実行する。つまり、通常の電子楽器10においてMIDIデータを受信したときと同様に動作する。
その一方、ステップ706でNoと判断された場合には、CPU21は、スイッチ操作実行処理を実行する(ステップ708)。図8〜図10は、本実施の形態にかかるスイッチ操作実行処理の例を示すフローチャートである。CPU21は、MIDIデータがノートオンイベントであるかを判断する(ステップ801)。先に説明したように、スイッチオンを示すMIDIデータ(図3の符号311参照)は、最初の1バイトが、チャンネル「0」のノートオンイベントと同一である。したがって、ステップ801でYesと判断されることは、スイッチオンを示すMIDIデータ(メッセージ)が電子楽器10に受け入れられたことを意味する。
ステップ801でYesと判断された場合には、CPU21は、MIDIデータのノートナンバエリア中に含まれる番号を参照する。図3を参照して説明したように、スイッチオンを示すMIDIデータでは、2バイト目、ノートナンバを格納するエリア(ノートナンバエリア)にスイッチ番号が格納されている。したがって、ノートナンバエリアを参照することにより、どのスイッチをオンすべきかを特定することができる。ノートナンバエリア中の番号が「0」〜「11」の何れかであれば(ステップ802でYes)、CPU21はテンキー処理を実行する(ステップ803)。ノートナンバエリア中の番号が「12」であれば、CPU21は、トーンスイッチ(SW)オン処理を実行し(ステップ805)、ノートナンバエリア中の番号が「13」であれば(ステップ806でYes)、CPU21は、ソングSWオン処理を実行する(ステップ807)。
同様に、ノートナンバエリア中の番号が「14」(ステップ808でYes)、「15」(ステップ810でYes)、或いは、「16」(ステップ812でYes)であれば、CPU21は、リズムSWオン処理(ステップ809)、テンポアップSWオン処理(ステップ811)或いはテンポダウンSWオン処理(ステップ813)をそれぞれ実行する。
また、ノートナンバエリア中の番号が「17」(ステップ901でYes)、「18」(ステップ903でYes)、「19」(ステップ905でYes)、或いは、「20」(ステップ907でYes)であれば、CPU21は、音量アップSWオン処理(ステップ902)、音量ダウンSWオン処理(ステップ904)、スタートSWオン処理(ステップ906)、或いは、ストップSWオン処理(ステップ908)をそれぞれ実行する。
ステップ801でNoと判断された場合には、CPU21は、MIDIデータがノートオフイベントであるかを判断する(ステップ901)。先に説明したように、スイッチオフを示すMIDIデータ(図3の符号312参照)は、最初の1バイトが、チャンネル「0」のノートオフイベントと同一である。したがって、ステップ901でYesと判断されることは、スイッチオフを示すMIDIデータ(メッセージ)が電子楽器10に受け入れられたことを意味する。なお、本実施の形態では、スイッチオフが有効なスイッチは、テンポアップSW、テンポダウンSW,音量アップSWおよび音量ダウンSWである。これらのスイッチは、短時間オンされたときだけではなく、オン状態が継続された場合には、オン状態である限り、テンポアップ/ダウン、音量アップ/ダウンの処理が実行される。このような場合に、オン状態からオフ状態となったときに、テンポアップ/ダウン、音量アップ/ダウンをそれぞれ解除する処理を行なう必要がある。
ステップ1001でYesと判断された場合には、ノートナンバエリア中の番号が「15」(ステップ1002でYes)、「16」(ステップ1004でYes)、「17」(ステップ1006でYes)、或いは、「18」(ステップ1008でYes)であれば、CPU21は、テンポアップSWオフ処理(ステップ1003)、テンポダウンSWオフ処理(ステップ1005)、音量SWオフ処理(ステップ1007)、或いは、音量SWオフ処理(ステップ1009)をそれぞれ実行する。
スイッチ操作実行処理で行なわれる、スイッチのオンに関する処理、つまり、テンキー処理(ステップ803)、トーンSWオン処理(ステップ805)、ソングSWオン処理(ステップ807)、リズムSWオン処理(ステップ809)、テンポアップSWオン処理(ステップ811)、テンポダウンSWオン処理(ステップ813)、音量アップSWオン処理(ステップ902)、音量ダウンSWオン処理(ステップ904)、スタートSWオン処理(ステップ906)およびストップSWオン処理(ステップ908)、並びに、スイッチのオフに関する処理、つまり、テンポアップSWオフ処理(ステップ1003)、テンポダウンSWオフ処理(ステップ1005)、音量アップSWオフ処理(ステップ1007)、音量ダウンSWオフ処理(ステップ1009)は、それぞれ、演奏モードにおけるスイッチのオンに関する処理、並びに、スイッチのオフに関する処理、つまり、図6のスイッチ処理(ステップ603)において実行される処理とほぼ同様である。すなわち、実際にユーザによりスイッチがオンされ、或いは、オン状態のスイッチがオフされたときと同一の処理がCPU21により実行される。
以下、スイッチのオン・オフに関する処理について簡単に説明する。図12は、本実施の形態にかかるテンキー処理の例を示すフローチャートである。図12に示すように、CPU21は、「+(プラス)」キー或いは「−(マイナス)」キーのオンであったかを判断する(ステップ1201)。これは、MIDIデータにおいてノートナンバエリアの番号が「10」または「11」であるかを判断すれば良い。ステップ1201でNoと判断された場合には、CPU21は、数「n」および「n」により構成される二桁の数「n」について、一の桁であった「n」を十の桁「n」にシフトするとともに(ステップ1202)、ノートナンバエリアの番号「n」を、「n」とする(ステップ1203)。
次いで、CPU11は、テンキーにて入力された番号を設定すべき対象を判断する(ステップ1204)。ステップ1204は、トーンSWオン処理(図8のステップ805)、ソングSWオン処理(ステップ807)、リズムSWオン処理(ステップ809)の何れが直近に実行されているかにより決定される。これら処理により設定対象モードが決定される。設定対象がソングであれば、CPU21は、ソング番号を二桁の数「n」とする(ステップ1205)。設定対象が音色であれば、CPU21は、音色番号を二桁の数「n」とする(ステップ1206)。設定対象がリズムであれば、CPU21は、リズム番号を二桁の数「n」とする(ステップ1207)。ステップ1205〜1207で設定された番号はRAM13に格納される。
ステップ1201でYesと判断された場合には、CPU21は、「+(プラス)」キーのオンであったかを判断する(ステップ1208)。ステップ1208でYesと判断された場合には、CPU21は、二桁の数「n」をインクリメントし(ステップ1209)、その一方、ステップ1208でNoと判断された場合には、CPU21は、二桁の数「n」をデクリメントする(ステップ1210)。ステップ1209、1210が終了した後、ステップ1204に進む。
トーンSWオン処理(図8のステップ805)、ソングSWオン処理(ステップ805)、リズムSWオン処理(ステップ807)においては、それぞれ、設定対象モードが、トーン、ソング、リズムに設定され、その情報がRAM23に格納される。
テンポアップSWオン処理(ステップ811)においては、CPU21は、テンポ値をインクリメントするとともに、自身に内蔵したテンポタイマをスタートし、かつ、テンポアップフラグを「1」にセットする。テンポ値やテンポアップフラグ、後述するテンポダウンフラグはRAM23中に格納される。テンポタイマは、所定間隔で実行されるインタラプト処理(図示せず)において参照され、テンポアップフラグが「1」であれば、テンポ値がインクリメントされる。
その一方、テンポダウンSWオン処理(ステップ813)においては、CPU21は、テンポ値をデクリメントするとともに、自身に内蔵したテンポタイマをスタートし、かつ、テンポダウンフラグを「1」にセットする。テンポタイマは、所定間隔で実行されるインタラプト処理(図示せず)において参照され、テンポダウンフラグが「1」であれば、テンポ値がデクリメントされる。
テンポアップSWオフ処理(図10のステップ1003)においては、CPU21は、テンポタイマを停止し、かつ、テンポアップフラグを「0」にリセットする。また、テンポダウンSWオフ処理(ステップ1005)において、CPU21は、テンポタイマを停止し、かつ、テンポダウンフラグを「0」にリセットする。
音量アップSWオン処理(図9のステップ902)においては、CPU21は、ボリューム値をインクリメントするとともに、自身に内蔵したボリュームタイマをスタートし、かつ、ボリュームアップフラグを「1」にセットする。ボリューム値やボリュームアップフラグ、後述するボリュームダウンフラグはRAM23中に格納される。ボリュームタイマは、所定間隔で実行されるインタラプト処理(図示せず)において参照され、ボリュームアップフラグが「1」であれば、ボリューム値がインクリメントされる。
その一方、ボリュームダウンSWオン処理(ステップ904)においては、CPU21は、ボリューム値をデクリメントするとともに、自身に内蔵したボリュームタイマをスタートし、かつ、ボリュームダウンフラグを「1」にセットする。ボリュームタイマは、所定間隔で実行されるインタラプト処理(図示せず)において参照され、ボリュームダウンフラグが「1」であれば、ボリューム値がデクリメントされる。
ボリュームアップSWオフ処理(図10のステップ1007)においては、CPU21は、ボリュームタイマを停止し、かつ、ボリュームアップフラグを「0」にリセットする。また、ボリュームダウンSWオフ処理(ステップ1009)においては、CPU21は、ボリュームタイマを停止し、かつ、ボリュームダウンフラグを「0」にリセットする。
スタートSWオン処理(図9のステップ906)について以下に説明する。スタートSWオン処理においては、CPU21は、ソング番号(前述した二桁の数「n」)に対応する自動演奏用のソングデータの、ROM23中の先頭アドレスを、アドレスADとしてセットする。また、ソングタイマによるタイマインタラプトを有効にし、かつ、スタートフラグを「1」にセットする。ソングタイマのタイマ値およびアドレスADはソング処理(ステップ605)において利用される。その一方、スタートSWオフ処理(ステップ907)においては、CPU21は、タイマインタラプトを無効にし、スタートフラグを「0」にリセットする。
MIDI処理(図6のステップ602)が終了すると、CPU21は、スイッチ処理を実行する(ステップ603)。スイッチ処理においては、スイッチ部12を構成するスイッチの実際の操作を検出し、検出されたスイッチの操作にしたがった処理を実行する。実際には、図8〜図10に示すスイッチのオンに関する処理、つまり、テンキー処理(ステップ803)、トーンSWオン処理(ステップ805)、ソングSWオン処理(ステップ807)、リズムSWオン処理(ステップ809)、テンポアップSWオン処理(ステップ811)、テンポダウンSWオン処理(ステップ813)、音量アップSWオン処理(ステップ902)、音量ダウンSWオン処理(ステップ904)、スタートSWオン処理(ステップ906)およびストップSWオン処理(ステップ908)、並びに、スイッチのオフに関する処理、つまり、テンポアップSWオフ処理(ステップ1003)、テンポダウンSWオフ処理(ステップ1005)、音量アップSWオフ処理(ステップ1007)、音量ダウンSWオフ処理(ステップ1009)の何れかが実行される。
スイッチ処理(ステップ603)の後、鍵盤処理(ステップ604)が実行される。図図13は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。図13に示すように、CPU21は、鍵盤11の鍵を所定の順で(たとえば、音高の低い鍵から)走査して(ステップ1301)、処理対象となる鍵の状態に変化があったか否かを判断する(ステップ1302)。ステップ1302で鍵がオン状態となった場合には、CPU21は、当該鍵の押鍵に基づき、鍵に対応する音高の楽音を発音することを示すノートオンイベントを生成する(ステップ1303)。また、処理対象となる鍵がオフ状態となった場合には、CPU21は、離鍵された鍵に対応する音高の楽音を消音することを示すノートオフイベントを生成する(ステップ1304)。ノートオンイベントおよびノートオフイベントは、RAM23のイベントエリアに格納される。
ステップ1303、1304が実行された後、或いは、ステップ1302で鍵の状態に変化がないと判断された場合には、CPU21は、すべての鍵について処理が終了したかを判断する(ステップ1305)。ステップ1305でNoと判断された場合には、ステップ1301に戻る。その一方、ステップ1305でYesと判断された場合には処理を終了する。
鍵盤処理(ステップ604)の後、ソング処理(ステップ605)が実行される。図14は、本実施の形態にかかるソング処理の例を示すフローチャートである。ソング処理では、スタートフラグが「1」である場合に(ステップ1401でYes)、CPU21は、アドレスADにしたがってソングデータを参照し(ステップ1402)、また、タイマインタラプトにおいて更新されるソングタイマ値を参照し(ステップ1403)、発音時刻が到来した楽音が存在するかを判断する(ステップ1404)。ステップ1404でYesと判断された場合には、CPU21は、ソングデータが示す音高の楽音を発音することを示すノートオンイベントを生成する(ステップ1405)。また、ステップ1405においては、ソングデータのアドレスADが進められる。
ステップ1404でNoと判断された場合には、発音時間が経過した楽音が存在するかを判断する(ステップ1406)。ステップ1406でYesと判断された場合には、ソングデータが示す音高の楽音を消音することを示すノートオフイベントを生成する(ステップ1407)。
ソング処理(ステップ605)の後、発音処理(ステップ606)が実行される。図15は、本実施の形態にかかる発音処理の例を示すフローチャートである。CPU21は、RAM23のイベントエリアを参照して(ステップ1501)、未処理のイベントが存在するかを判断する(ステップ1502)。ステップ1502でNoと判断された場合には処理を終了する。ステップ1502でYesと判断された場合には、CPU21は、イベントがノートオンイベントであるかを判断する(ステップ1503)。ステップ1503でYesと判断された場合には、CPU21は、音源部26に対して、ノートオンイベントが示す音高の楽音を、所定の音色で発音するように指示を与える(ステップ1504)。音源部26は、指示に応答して、指定された音色の波形データを、指定された音高に基づいて読み出して、かつ、読み出された波形データに、エンベロープに基づく乗算値を乗算して楽音データを生成し、オーディオ回路27に出力する。
ステップ1503でNoと判断された場合、つまり、イベントがノートオフイベントであった場合には、CPU21は、ノートオフイベントが示す音高の楽音を消音するように音源部26に指示を与える(ステップ1505)。音源部26は、指示に応答して、読み出された波形データに、徐々に減少するリリースのエンベロープを乗算して楽音データを生成してオーディオ回路27に出力する。
本実施の形態によれば、SMFプレーヤ31から出力された所定のシーケンスにしたがったMIDIデータを電子楽器のMIDI・I/F13が受け入れると、CPU21は、受け入れたMIDIデータのメッセージを参照して、所定のスイッチに対するイベント(スイッチのオン・オフ)を実行する。したがって、操作者による手動操作なく、所定のシーケンスにしたがって、スイッチに対するイベントを実行することができる。
また、本実施の形態においては、電子楽器10は、通常に動作する通常モード、および、スイッチに対するイベントを実行するイベント実行モードの何れかの動作モードの下で動作し、CPU11は、MIDIデータが、イベント実行モードの開始を示す第1のエクスルーシブメッセージであるときに、動作モードを、イベント実行モードにして、メッセージにしたがったスイッチに対するイベントを実行し、MIDIデータが、イベント実行モードの終了を示す第2のエクスルーシブメッセージであるときに、動作モードを、通常動作モードにする。したがって、動作モードの切り替えも操作者が行なうことなく、実現することができる。
さらに、前記実施の形態においては、前記MIDIデータがノートオンイベントのメッセージであるときに、前記所定の操作子をオン状態にするとともに、前記MIDIデータがノートオフイベントのメッセージである場合に、前記所定のスイッチをオフ状態とする。したがって、通常のMIDIメッセージ中に、スイッチについてのイベントを含ませることができる。
また、前記実施の形態においては、ノートオンイベントのメッセージ中、ノートナンバエリアの値と、複数のスイッチの何れか1つとが対応付けられ、CPU21は、ノートオンイベントのメッセージ中の、ノートナンバエリアの値を参照して、値に対応付けられたスイッチを特定して、イベントを実行する。たとえば、ノートナンバエリアの値を用いれば、128個のスイッチについてイベントを実行することができる。チャンネルの値を用いれば、16個、チャンネルおよびノートナンバの双方を用いれば、2048個のスイッチについてイベントを実行することができる。さらに、ベロシティの値まで医療すれば、さらにその128倍(つまり、2048×128=262144個)のスイッチについてイベントを実行することができる。
上記実施の形態において、MIDIデータは、スタンダードMIDIファイル(SMF)の形態で記憶装置32に格納され、また、SMFを再生するSMFプレーヤ31から電子楽器10に与えられる。したがって、MIDIデータの出力側を特殊なテストツールとする必要がない。
また、本実施の形態において、通常モードにおいては、MIDIデータのメッセージに基づいて、音源部26において楽音が生成される。その一方、イベント実行モードでは、同じMIDIメッセージを用いて、スイッチについてのイベントが実行される。したがって、単なる動作モードの切り替えによって、楽音の生成およびスイッチのテストの何れかを実行することができる。
さらに、本実施の形態においては、前記イベント実行モードの下で、前記MIDIデータがノートオンイベントのメッセージであるときに、所定のスイッチがオン状態にされ、MIDIデータがノートオフイベントのメッセージである場合に、所定のスイッチがオフ状態とされる。このように、単にノートオンメッセージ、ノートオフメッセージを利用することで、スイッチのイベント制御が実現される。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
前記実施の形態においては、電子楽器に本発明を適用し、SMFプレーヤからの出力を電子楽器が受け入れるように構成したが、これに限定されるものではなく、他の電子機器に本発明を適用しても良い。この場合、MIDI・I/Fを設ける必要があり、また、MIDIのデータにしたがってイベントを実行する処理プログラムを、ROM22中に格納する必要がある。
また、本実施の形態においては、MIDIデータの出力側にSMFプレーヤを用いたが、これに限定されるものではなく、所定のシーケンスにしたがってMIDIデータが出力できるものであれば、他の再生装置を用いても良い。また、SMFを用いることで、所定のシーケンスおよびデルタタイムに基づくタイミングでMIDIデータが出力されるが、MIDIデータのシーケンス・フォーマットは、SMFに限定されるものではない。
さらに、前記実施の形態においては、イベントとしてスイッチのオン・オフを記載したがこれに限定されるものではなく、スイッチ以外の操作子、たとえば、スライダー、ボリュームなどの移動などのイベントにも本発明を適用することができる。
10 電子楽器
11 鍵盤
12 スイッチ部
13 MIDI・I/F
14 表示部
16 鍵
15 PC
21 CPU
22 ROM
23 RAM
24 サウンドシステム
26 音源部
27 オーディオ回路
28 スピーカ
31 SMFプレーヤ
32 記憶装置
33 SMF

Claims (5)

  1. 供給されるMIDIデータのノートオンイベントに基づいて、当該ノートオンイベントに対応する音高の楽音データを生成するとともに、ノートオフイベントに基づいて、当該ノートオフイベントに対応する音高の楽音データを消音する楽音データ生成手段と、
    前記MIDIデータを受信するMIDIインタフェース手段と、
    鍵盤と、
    前記鍵盤への押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成するイベント生成手段と、
    それぞれオンオフ操作可能な複数の操作子と、
    前記複数の操作子のいずれかの操作子のオンオフ操作に応答して、当該オンオフ操作された操作子に対応しかつ前記楽音データの生成・消音以外のイベントを実行するイベント実行手段と、
    通常動作モード及びイベント実行モードのいずれかのモードを選択するモード選択手段と、
    前記通常動作モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータ及び前記イベント生成手段により生成されたMIDIデータを、前記楽音データ生成手段に供給する供給手段と、
    前記イベント実行モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータに基づき、前記複数の操作子のうち当該MIDIデータに対応する操作子のイベントを、前記イベント実行手段に実行させるイベント実行制御手段と、
    を備えたことを特徴とする電子楽器。
  2. 前記モード選択手段は、前記MIDIインタフェース手段によりMIDIデータとしてエクスクルーシブメッセージが受信され、かつ当該受信されたエクスクルーシブメッセージの内容に基づいて、通常動作モード及びイベント実行モードのいずれかのモードを選択することを特徴とする請求項1に記載の電子楽器。
  3. 前記イベント実行制御手段は前記イベント実行手段に対して、前記MIDIデータがノートオンイベントである場合に、前記対応する操作子がオン状態となったときのイベントを実行させるとともに、前記MIDIデータがノートオフイベントである場合に、前記対応する操作子をオフ状態となったときのイベントを実行させることを特徴とする請求項1または2に記載の電子楽器。
  4. 供給されるMIDIデータのノートオンイベントに基づいて、当該ノートオンイベントに対応する音高の楽音データを生成するとともに、ノートオフイベントに基づいて、当該ノートオフイベントに対応する音高の楽音データを消音する楽音データ生成手段と、前記MIDIデータを受信するMIDIインタフェース手段と、鍵盤と、押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成するイベント生成手段と、それぞれオンオフ操作可能な複数の操作子と、を有する電子楽器に用いる方法であって、前記電子楽器は、
    前記鍵盤への押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成し、
    前記複数の操作子のいずれかのオンオフ操作に応答し、当該オンオフ操作された操作子に対応しかつ前記楽音データの生成・消音以外のイベントを実行し、
    通常動作モード及びイベント実行モードのいずれかのモードを選択し、
    前記通常動作モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータ及び前記イベント生成手段により生成されたMIDIデータを、前記楽音データ生成手段に供給し、
    前記イベント実行モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータに基づき、前記複数の操作子のうち当該MIDIデータに対応する操作子のイベントを実行させる、方法。
  5. 供給されるMIDIデータのノートオンイベントに基づいて、当該ノートオンイベントに対応する音高の楽音データを生成するとともに、ノートオフイベントに基づいて、当該ノートオフイベントに対応する音高の楽音データを消音する楽音データ生成手段と、前記MIDIデータを受信するMIDIインタフェース手段と、鍵盤と、それぞれオンオフ操作可能な複数の操作子と、を有する電子楽器として用いられるコンピュータに、
    前記鍵盤への押鍵操作により前記ノートオンイベントを生成するとともに、離鍵操作により前記ノートオフイベントを生成するイベント生成ステップと、
    前記複数の操作子のいずれかの操作子のオンオフ操作に応答して、当該オンオフ操作された操作子に対応しかつ前記楽音データの生成・消音以外のイベントを実行するイベント実行ステップと、
    通常動作モード及びイベント実行モードのいずれかのモードを選択するモード選択ステップと、
    前記通常動作モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータ及び前記イベント生成ステップにより生成されたMIDIデータを、前記楽音データ生成手段に供給する供給ステップと、
    前記イベント実行モードが選択されているときに、前記MIDIインタフェース手段に受信されたMIDIデータに基づき、前記複数の操作子のうち当該MIDIデータに対応する操作子のイベントを、前記イベント実行ステップにて実行させるイベント実行制御ステップと、
    を実行させるプログラム。
JP2009089689A 2009-04-02 2009-04-02 電子楽器、方法及びプログラム Active JP5703543B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009089689A JP5703543B2 (ja) 2009-04-02 2009-04-02 電子楽器、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009089689A JP5703543B2 (ja) 2009-04-02 2009-04-02 電子楽器、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2010243615A JP2010243615A (ja) 2010-10-28
JP5703543B2 true JP5703543B2 (ja) 2015-04-22

Family

ID=43096726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009089689A Active JP5703543B2 (ja) 2009-04-02 2009-04-02 電子楽器、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5703543B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04303892A (ja) * 1991-03-30 1992-10-27 Yamaha Corp 電子鍵盤楽器のチェック方法
JPH0584996U (ja) * 1992-04-15 1993-11-16 ローランド株式会社 電子楽器のテスト音発生装置
JP2668761B2 (ja) * 1992-07-17 1997-10-27 株式会社河合楽器製作所 電子楽器
JP2944365B2 (ja) * 1993-06-29 1999-09-06 積水化学工業株式会社 Midi計測器
JP3363962B2 (ja) * 1993-08-25 2003-01-08 株式会社河合楽器製作所 電子楽器
JP3079526B2 (ja) * 1993-10-20 2000-08-21 ヤマハ株式会社 楽音パラメータ編集システム
JPH0752348B2 (ja) * 1993-12-13 1995-06-05 ヤマハ株式会社 電子楽器
JP3266149B2 (ja) * 1997-01-06 2002-03-18 ヤマハ株式会社 演奏ガイド装置
JP3925349B2 (ja) * 2002-08-22 2007-06-06 ヤマハ株式会社 音声データと演奏データの同期再生を行うための装置および方法
JP4626429B2 (ja) * 2005-07-20 2011-02-09 ヤマハ株式会社 Midiデータ送信装置及びプログラム

Also Published As

Publication number Publication date
JP2010243615A (ja) 2010-10-28

Similar Documents

Publication Publication Date Title
JP2004264501A (ja) 鍵盤楽器
CN115376476A (zh) 电子乐器、电子乐器的控制方法以及存储介质
JP2004334051A (ja) 楽譜表示装置および楽譜表示コンピュータプログラム
JP4548292B2 (ja) 音源設定装置及び音源設定プログラム
JP4259533B2 (ja) 演奏システム、このシステムに用いるコントローラ、およびプログラム
JP2008089975A (ja) 電子楽器
JPWO2007015321A1 (ja) 楽音出力切り換え装置、楽音出力切り換え方法、楽音出力切り換えのためのコンピュータプログラム
JP5703543B2 (ja) 電子楽器、方法及びプログラム
JP3192597B2 (ja) 電子楽器の自動演奏装置
JP4268920B2 (ja) 電子楽器
JP2007240558A (ja) コード検出領域設定装置、該装置を具えたコード表示装置、及びこれらのプログラム
JP6410345B2 (ja) サウンドプレビュー装置及びプログラム
JP4056902B2 (ja) 自動演奏装置及び自動演奏方法
JP3226268B2 (ja) コンサートマジック自動演奏装置
JP5200368B2 (ja) アルペジオ生成装置およびアルペジオ生成方法を実現するためのプログラム
JP2006039262A (ja) 効果付与装置及び方法
JP5453966B2 (ja) 楽音発生装置および楽音発生プログラム
JP4094441B2 (ja) 電子楽器
JP6305275B2 (ja) 電子楽器における音声アシスト装置及びプログラム
JP5463724B2 (ja) 楽音発生装置および楽音発生プログラム
JPH07146681A (ja) 電子楽器
JP2953937B2 (ja) 電子楽器の音量調整装置
JP5104293B2 (ja) 自動演奏装置
JP4900233B2 (ja) 自動演奏装置
JP3529123B2 (ja) 自動演奏装置及び自動演奏方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140709

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: 20150127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150209

R150 Certificate of patent or registration of utility model

Ref document number: 5703543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150