(57)【要約】【課題】  シンセサイザ等の電子楽器において、ユーザによるプログラム開発を安価に実現する。【解決手段】  電子楽器１とパーソナルコンピュータ４０とをシリアルインタフェース２，５４を介して接続する。電子楽器１の動作モードをプログラム開発モードに設定すると、入力装置４、演奏操作子６等における操作は全て所定のポートを介して、コンピュータ４０に通知される。コンピュータ４０においては、ソースコードから電子楽器１のＣＰＵ１０用のバイナリ−コードを生成するコンパイラと、該ＣＰＵ１０をエミュレートするエミュレータとが起動される。このバイナリ−コードに基づいて音源・エフェクト部２６等に対して発音指示等を行う旨が指令されると、シリアルインタフェース５４，２を介して、その旨がエミュレータによって電子楽器１に指令される。【選択図】  図１
2007003555.tif 000002
【特許請求の範囲】
【請求項１】
複数の操作子と、
遠隔操作用の第１の出力ポートと、遠隔操作用の第１の入力ポートと、外部コンピュータによるエミュレーション用の第２の出力ポートと、エミュレーション用の第２の入力ポートとを有する通信手段と、
現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モードであるか否かを判定するモード判定手段と、
前記複数の操作子のうち何れかが操作されると、前記モード判定手段における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報と、該操作された操作子の操作状態とを前記第２の出力ポートを介して出力する操作状態出力手段と、
前記モード判定手段における判定結果が肯定的であったことを条件として、第１の入力ポートを介して受信したデータを前記第２の出力ポートを介して出力するデータ転送手段と
を有することを特徴とする電子楽器。
【請求項２】
前記複数の操作子は、標準状態における音高が各々特定された複数の鍵から成る鍵盤と、前記各鍵に対する音高を前記標準状態における音高からシフトするシフト量を設定するシフト量設定操作子とを有し、
前記シフト量設定操作子が操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、前記シフト量を記憶するシフト量記憶手段と、
前記鍵盤のうち何れかが操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、操作された鍵の標準状態における音高を前記シフト量だけシフトして成る音高に係るノートオンイベントを発生させるイベント発生手段と
をさらに有することを特徴とする請求項１記載の電子楽器。
【請求項３】
複数の操作子と、遠隔操作用の第１の出力ポートと遠隔操作用の第１の入力ポートと外部コンピュータによるエミュレーション用の第２の出力ポートとエミュレーション用の第２の入力ポートとを有する通信手段と、処理装置とを有する電子楽器の、該処理装置において実行されるプログラムであって、
現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モードであるか否かを判定するモード判定過程と、
前記複数の操作子のうち何れかが操作されると、前記モード判定過程における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報と、該操作された操作子の操作状態とを前記第２の出力ポートを介して出力する操作状態出力過程と、
前記モード判定過程における判定結果が肯定的であったことを条件として、第１の入力ポートを介して受信したデータを前記第２の出力ポートを介して出力するデータ転送過程と
を前記処理装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンセサイザ等のプログラム開発に用いて好適な電子楽器およびプログラムに関する。
【背景技術】
【０００２】
シンセサイザ等の電子楽器においては、パーソナルコンピュータと接続することにより、単体では実現できない様々な機能を実現することができる。例えば、非特許文献１に開示された電子楽器においては、電子楽器に設けられているフェーダ等の操作子をパーソナルコンピュータを遠隔操作するための操作子として使用することができ、逆にパーソナルコンピュータによって電子楽器を遠隔操作することも可能である。これらの遠隔操作には、一般的にＭＩＤＩ信号のシステム・エクスクルーシブ・メッセージが使用される。また、電子楽器を制御するプログラムは電子楽器内のフラッシュメモリ等に記憶され、必要な場合にはフレキシブルディスクや通信回線を介して、フラッシュメモリ内のプログラムをアップデートすることも可能である。
【０００３】
【非特許文献１】「ＭＯＴＩＦ  ＥＳ  取扱説明書」，ヤマハ株式会社，２００３年
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、従来の電子楽器においては、その内部で動作するプログラムは、メーカによって供給されることを前提としており、ユーザがプログラムを自由に作成できる環境を整えているものではなかった。勿論、電子楽器を開発するメーカーは電子楽器内のプログラムを開発するための開発システムを保有しているが、これと同様のシステムをエンドユーザが購入するのは非現実的である。
この発明は上述した事情に鑑みてなされたものであり、エンドユーザにおいて、低価格かつ高性能なプログラム開発環境を実現できる電子楽器およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項１記載の電子楽器にあっては、複数の操作子（１０１，１０２ａ，１０２ｂ）と、遠隔操作用の第１の出力ポート（ポートＡ）と、遠隔操作用の第１の入力ポート（ポートＢ）と、外部コンピュータによるエミュレーション用の第２の出力ポート（ポートＸ）と、エミュレーション用の第２の入力ポート（ポートＹ）とを有する通信手段（２）と、現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モード（基本モードがプログラム開発モード）であるか否かを判定するモード判定手段（ＳＰ１２，ＳＰ２２，ＳＰ３２）と、前記複数の操作子（１０１，１０２ａ，１０２ｂ）のうち何れかが操作されると、前記モード判定手段における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報（操作子ＩＤ）と、該操作された操作子の操作状態とを前記第２の出力ポート（ポートＸ）を介して出力する操作状態出力手段（ＳＰ１６）と、前記モード判定手段における判定結果が肯定的であったことを条件として、第１の入力ポート（ポートＢ）を介して受信したデータを前記第２の出力ポート（ポートＸ）を介して出力するデータ転送手段（ＳＰ３６）とを有することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の電子楽器において、前記複数の操作子（１０１，１０２ａ，１０２ｂ）は、標準状態における音高が各々特定された複数の鍵から成る鍵盤（１０１）と、前記各鍵に対する音高を前記標準状態における音高からシフトするシフト量を設定するシフト量設定操作子（１０２ａ，１０２ｂ）とを有し、前記シフト量設定操作子（１０２ａ，１０２ｂ）が操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、前記シフト量を記憶するシフト量記憶手段（ＳＰ１８，ＲＡＭ３０）と、前記鍵盤（１０１）のうち何れかが操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、操作された鍵の標準状態における音高を前記シフト量だけシフトして成る音高に係るノートオンイベントを発生させるイベント発生手段（ＳＰ１８）とをさらに有することを特徴とする。
また、請求項３記載のプログラムにあっては、複数の操作子（１０１，１０２ａ，１０２ｂ）と、遠隔操作用の第１の出力ポート（ポートＡ）と遠隔操作用の第１の入力ポート（ポートＢ）と外部コンピュータによるエミュレーション用の第２の出力ポート（ポートＸ）とエミュレーション用の第２の入力ポート（ポートＹ）とを有する通信手段（２）と、処理装置（１０）とを有する電子楽器の、該処理装置において実行されるプログラムであって、現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モード（基本モードがプログラム開発モード）であるか否かを判定するモード判定過程（ＳＰ１２，ＳＰ２２，ＳＰ３２）と、前記複数の操作子（１０１，１０２ａ，１０２ｂ）のうち何れかが操作されると、前記モード判定過程における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報（操作子ＩＤ）と、該操作された操作子の操作状態とを前記第２の出力ポート（ポートＸ）を介して出力する操作状態出力過程（ＳＰ１６）と、前記モード判定過程における判定結果が肯定的であったことを条件として、第１の入力ポート（ポートＢ）を介して受信したデータを前記第２の出力ポート（ポートＸ）を介して出力するデータ転送過程（ＳＰ３６）とを前記処理装置（１０）に実行させることを特徴とする。
【発明の効果】
【０００６】
このように本発明によれば、現在の動作モードが外部コンピュータのエミュレーション動作に対応する動作モードである場合に、操作された操作子を特定する情報と、該操作された操作子の操作状態とを前記第２の出力ポートを介して出力するとともに、第１の入力ポートを介して受信したデータを第２の出力ポートを介して出力するから、通常使用している電子楽器を外部コンピュータによってエミュレーションを行うときの入出力装置として使用することができる。これにより、ユーザは、新たなハードウエアを購入することなくプログラム開発システムを構築することができる。
【発明を実施するための最良の形態】
【０００７】
1．実施例のハードウエア構成
次に、本発明の一実施例の電子楽器用プログラム開発システムの構成を図１を参照し説明する。
まず、本開発システムのハードウエアは、電子楽器１とパーソナルコンピュータ４０とから構成される。電子楽器１の内部において２はシリアルインタフェースであり、パーソナルコンピュータ４０との間でシリアルデータを入出力する。シリアルインタフェース２は、例えばＵＳＢインタフェースによって構成され、シリアルデータを送受信するポートを複数確保することができる。ここで、シリアルインタフェース２には、「４」のポートＡ，Ｂ，Ｘ，Ｙが確保されていることとする。ここでポートＡはＭＩＤＩ信号の出力ポート、ポートＢはＭＩＤＩ信号の入力ポート、ポートＸはプログラム開発時におけるエミュレーション用制御信号の出力ポート、ポートＹはエミュレーション用制御信号の入力ポートとして使用される。
【０００８】
４は入力装置であり、電子楽器１の操作パネル上の各種のノブ、フェーダ、ボタン等から構成される。なお、一部のボタンにはＬＥＤが内蔵されており、ＬＥＤの点灯または消灯によってオンオフ状態等を表示する。６は演奏操作子であり、鍵盤、ブレスコントローラ等から構成される。８はディスプレイであり、ドットマトリクス状のＬＣＤディスプレイおよびＬＥＤインジケータ、ボタン内のＬＥＤ等から構成される。１０はＣＰＵであり、ＲＯＭ１２、またはフラッシュメモリ２４に記憶されたプログラムに基づいて、バス１６を介して他の構成要素を制御する。なお、ＲＯＭ１２には、後述する図４，図５に示す基本的なプログラムが記憶され、フラッシュメモリ２４には変更可能なプログラムやユーザの作成したプログラム、このユーザの作成したプログラムのソースコード等が記憶される。
【０００９】
１８はＭＩＤＩインタフェースであり、ＭＩＤＩ信号を入出力する。２２は波形取込インタフェースであり、外部から入力されたアナログ信号をデジタル信号に変換する。２６は音源・エフェクト部であり、バス１６を介して供給されたＭＩＤＩ信号に基づいて楽音信号を合成する。なお、音源・エフェクト部２６には一または複数のプラグインボードを装着するためのスロットが設けられており、ここにプラグインボードを装着することにより、機能を追加することができる。２８はサウンドシステムであり、該楽音信号を発音する。３０はＲＡＭであり、ＣＰＵ１０のワークメモリとして用いられる。
【００１０】
次に、パーソナルコンピュータ４０の内部において４２は入力装置であり、文字入力用キーボードおよびマウス等から構成されている。４４はディスプレイであり、ユーザに対して各種情報を表示する。４６はＣＰＵであり、後述するプログラムに基づいて、バス５２を介してパーソナルコンピュータ４０内の他の構成要素を制御する。４８はＲＯＭであり、イニシャルプログラムローダ等が記憶されている。５０はＲＡＭであり、ＣＰＵ４６のワークメモリとして用いられる。５４はシリアルインタフェースであり、電子楽器１内のシリアルインタフェース２に対してシリアルデータを入出力する。５６はハードディスクであり、オペレーティングシステム、電子楽器１の制御プログラム、電子楽器１のフラッシュメモリ２４に格納するプログラムを開発するための開発用プログラム等が格納される。５８はドライブ装置であり、ＣＤ−ＲＯＭ、ＭＯ等のリムーバルディスクに対してデータの読出し／書込みを行う。
【００１１】
2．電子楽器１の動作モード
2．1．基本モード
次に、電子楽器１の動作モードについて説明する。電子楽器１の動作モードには「基本モード」と「楽音モード」の二種類があり、両動作モードは独立して設定することができる。まず、基本モードは、「プログラム開発モード」または「ユーザモード」のうち何れか一方にセットされる。ここでプログラム開発モードとは、パーソナルコンピュータ４０等、外部のコンピュータにおいて電子楽器１のプログラムを開発するための動作モードである。一方、ユーザモードとは、電子楽器１を通常の電子楽器として動作させるための動作モードである。
【００１２】
2．2．楽音モード
また、楽音モードは電子楽器１における楽音の生成方法や編集方法等を規定する動作モードであり、以下のようなものがある。
・ボイスモード：シミュレートしようとする楽器の音色（ボイス）の作成、編集、初期化、再生および保存等を行うモード。
・パフォーマンスモード：パフォーマンス（複数のボイスを重ねて鳴らす音色セット）の作成、編集、初期化、再生および保存等を行うモード。
・ソングモード：ソング（ＭＩＤＩで構成される曲データ）の作成、編集、初期化、再生および保存等を行うモード。
・パターンモード：パターン（ＭＩＤＩで構成されるリズムパターンであってループ再生するもの）の作成、編集、初期化、再生および保存等を行うモード。
・サンプリングモード：波形取込インタフェース２２等を介して入力されるサンプリングデータの作成、編集、初期化、再生および保存等を行うモード。
・リモートモード：電子楽器１に設けられているフェーダ等の操作子をパーソナルコンピュータを遠隔操作するための操作子として使用するとともに、パーソナルコンピュータによって電子楽器１を遠隔操作するモード。
【００１３】
3．電子楽器１のパネル構成
次に、電子楽器１の操作パネルの構成を図２，図３を参照し説明する。
図２において、１０１は鍵盤であり、複数の鍵から構成されている。なお、各々の鍵は、標準状態において一の音高に対応するものであり、かかる音高を用いて各鍵を、例えば「１０１−Ｃ２」のように表記する。１０２はオクターブ設定部であり、鍵盤１０１の各鍵に対応させる音高を「１」オクターブ低くシフトするダウンボタン１０２ａと、「１」オクターブ高くシフトするアップボタン１０２ｂとから構成されている。
【００１４】
１０３はピッチベンドホイールであり、楽音信号のピッチを上下動するシステム・エクスクルーシブ・メッセージを出力する。１０４はモジュレーションホイールであり、モジュレーション効果のコントロール量を上下動するシステム・エクスクルーシブ・メッセージを出力する。１０５はリボンコントローラであり、ユーザが表面を指で左右方向になぞると、その移動量に応じて、指定されたパラメータを変化させる。１０６はマスターボリュームフェーダであり、サウンドシステム２８における音量を調節する。
【００１５】
１０７はノブコントロール部であり、演奏中のボイスの音色やアルペジオ再生に関する各種パラメータを増減するノブ１０７ｅ〜１０７ｈと、これらのノブの機能を選択する選択ボタン１０７ａ〜１０７ｄとから構成されている。１０８はコントロールフェーダ群であり、各種パラメータの値を増減する。１０９はリモートボタン群であり、リモートモードのオン／オフ状態、およびリモートモードにおける遠隔操作のパラメータを設定する。なお、リモートモードがオン状態にされると、楽音モードがリモートモードに変更されるとともに、従前の楽音モードがＲＡＭ３０の所定領域に記憶される。また、リモートモードがオフ状態に設定されると、楽音モードが、このＲＡＭ３０の所定領域に記憶されていたモードに変更されることになる。
【００１６】
１１０はエフェクトボタン群であり、音源・エフェクト部２６内で実行されるエフェクト処理のうち、インサーションエフェクト、システムエフェクト、マスターエフェクトのオン／オフ状態を切り換える複数のボタンから構成されている。１１１はアルペジオボタンであり、アルペジオの自動生成を行うか否かを切り換える。１１２はシーケンサトランスポートボタン群であり、シーケンスデータ等の再生開始、録音開始、再生または録音の停止、早送り、巻き戻し等を制御する複数ののボタンから構成されている。１１３はモードボタン群であり、リモートモード以外の楽音モードを設定する複数のボタンから構成されている。
【００１７】
次に、図３において１１４はＬＣＤディスプレイであり、各々所定数のドットを縦横に配列したドットマトリクスディスプレイとして構成され、ＣＰＵ１０の制御の下、画像および文字等を表示する。１１６はファンクションボタン群、であり、各楽音モードによって特定される機能の有効／無効状態を設定する。１１８はインフォメーションボタンであり、これが押下されると、現在の楽音モードに関する情報がＬＣＤディスプレイ１１４に表示される。１１９はデータダイアルであり、ＬＣＤディスプレイ１１４内のカーソル位置に表示される数値の値を増減する。なお、データダイアル１１９は、速く回すほど、単位回転角あたりの数値の変化量が大きくなる。１２０はインク／イエスボタンであり、ＬＣＤディスプレイ１１４のカーソルに表示されている数値を「１」だけ増加する。また、インク／イエスボタン１２０は、各種処理を実行する際の確認（ＹＥＳ）にも使用される。
【００１８】
１２１はデック／ノーボタンであり、ＬＣＤディスプレイ１１４のカーソルに表示されている数値を「１」だけ減少する。また、デック／ノーボタン１２１は、各種処理の実行をキャンセルする場合（ＮＯ）にも使用される。１２２はカーソルボタン群であり、ＬＣＤディスプレイ１１４上のカーソルを上下左右方向に移動させる複数のボタンから構成されている。ところで、ＬＣＤディスプレイ１１４に表示される機能は階層構造になっている。１２３はEXITボタンであり、ＬＣＤディスプレイ１１４に表示される機能の階層を一つ上の階層に戻す。１２４はENTERボタンであり、ＬＣＤディスプレイ１１４に表示されている数値を確定する。１２５はスロットランプであり、音源・エフェクト部２６におけるプラグインボードの装着状況を表示する。１２６〜１３２はその他ボタンであり、楽音信号を生成するための各種の処理に対応付けられている。
【００１９】
4．実施例の動作
4．1．基本モード設定
次に、本実施例の動作を説明する。まず、電子楽器１の電源が投入されると、図４(a)に示す基本モード設定ルーチンが起動される。図において処理がステップＳＰ２に進むと、入力装置４において所定の操作が実行されているか否かが確認される。ここで、「所定の操作」とは、例えば電源投入時に鍵１０１−Ｃ１を押下しておくような操作である。ここで「ＮＯ」と判定されると処理はステップＳＰ６に進み、基本モードがユーザモードに設定される。一方、ここで「ＹＥＳ」と判定されると、処理はステップＳＰ４に進み、基本モードがプログラム開発モードに設定されるとともに、エミュレーションフラグという複数のフラグが全て“１”に設定される。なお、基本モードは、電源投入後の任意のタイミングで設定変更できるようにしてもよい。
【００２０】
ここで、エミュレーションフラグについて説明しておく。エミュレーションフラグは、図６に示すように、操作パネル上の個々の操作子およびポートＢから入力される入力ＭＩＤＩデータの種別毎に対応して電子楽器１内のＲＡＭ３０に記憶されているフラグである。なお、入力ＭＩＤＩデータがＭＩＤＩチャンネルの指定を伴う場合には、ＭＩＤＩチャンネル毎にエミュレーションフラグが記憶される。ここで、エミュレーションフラグが“１”であるときは、対応する処理を外部コンピュータ（すなわちパーソナルコンピュータ４０）で実行することを示し、同フラグが“０”である場合には電子楽器１の内部で対応する処理を実行することを示す。電源投入時に基本モードとしてプログラム開発モードが指定された場合には上述したように全てのエミュレーションフラグが“１”に設定されるが、個々の操作および入力データに対するエミュレーションフラグの値はその後に随時変更することが可能である。
【００２１】
4．2．操作イベント処理
電子楽器１の操作パネルにおいて、鍵、ノブ、フェーダ、ボタン等の操作子の操作が検出されると、図４(b)に示す操作イベントルーチンが起動される。図４(b)において処理がステップＳＰ１２に進むと、基本モードがプログラム開発モードであるか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ１４に進み、検出された操作に対応するエミュレーションフラグが“１”であるか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ１６に進み、操作が検出された操作子の操作子ＩＤと、検出された操作情報とがポートＸを介してパーソナルコンピュータ４０に出力される。
【００２２】
ここで、操作子ＩＤとは、操作パネルに設けられた各操作子に付与されたユニークな番号である。また、「操作情報」は操作子の種類に応じて異なる。すなわち、操作子が鍵盤１０１内の鍵であった場合には、操作情報とは、キーオン、キーオフ、アフタータッチの区別と、ベロシティ（キーオンの場合）またはアフタータッチ量（アフタータッチの場合）とから成るデータになる。また、操作子がノブまたはホイールであった場合には、操作情報はノブまたはホイールの回転角度（絶対値）である。また、操作子がリボンコントローラ１０５であった場合には、操作情報はリボンコントローラ１０５上のユーザの指の移動速度である。また、操作子がボタンであった場合には、操作情報はオンまたはオフの状態である。
【００２３】
一方、上記ステップＳＰ１２またはＳＰ１４の何れかにおいて「ＮＯ」と判定されると、処理はステップＳＰ１８に進み、検出された操作内容に基づいた処理が電子楽器において実行される。ここで、具体的に如何なる処理が実行されるかは、操作された操作子や楽音モードに応じて種々異なる。例えば、オクターブ設定部１０２が操作されたのであれば、ピッチをシフトすべき量であるシフト量（「＋１」または「−１」オクターブ）がＲＡＭ３０内の所定領域に記憶され、ボタン１０２ａ，１０２ｂの内蔵ＬＥＤのうち対応する側が点灯処理されることになる。
【００２４】
4．3．ポートＹデータ受信処理
次に、ポートＹを介してパーソナルコンピュータ４０からデータが受信されると、図５(a)に示すポートＹデータ受信処理ルーチンが起動される。図５(a)において処理がステップＳＰ２２に進むと、基本モードがプログラム開発モードであるか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ２４に進み、受信データに基づく処理が電子楽器において実行される。一方、ステップＳＰ２２において「ＮＯ」と判定されると、本ルーチンが直ちに終了し、ポートＹから受信したデータは無視される。上述したように、ポートＹはプログラム開発時におけるエミュレーション用制御信号の入力ポートとして使用されるため、基本モードがユーザモードであれば、ポートＹからのデータは全て無視されることになる。
【００２５】
ポートＹから受信されるデータとしては、各エミュレーションフラグの値を変更する指示、ＬＣＤディスプレイ１１４に対する表示内容の指示、操作パネル上のＬＥＤ（ボタン内部のＬＥＤを含む）の点灯／消灯の指示、音源・エフェクト部２６に対する発音やエフェクトの指示、ポートＡからのデータ出力の指示、その他電子楽器１の内部状態の指示等、電子楽器１内のプログラムによって指定可能な各種の動作の指示が含まれる。そして、上記ステップＳＰ２４においては、これらの指示に基づいて、電子楽器１の表示状態、発音状態、内部状態等が設定されることになる。
【００２６】
4．4．ポートＢデータ受信処理
次に、ポートＢを介してパーソナルコンピュータ４０からデータが受信されると、図５(b)に示すポートＢデータ受信処理ルーチンが起動される。図５(b)において処理がステップＳＰ３２に進むと、基本モードがプログラム開発モードであるか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ３４に進み、ポートＢから受信したデータに対応するエミュレーションフラグが“１”であるか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ３６に進み、ポートＢから受信したデータがポートＸを介して転送される。
【００２７】
一方、上記ステップＳＰ３２またはＳＰ３４の何れかにおいて「ＮＯ」と判定されると、処理はステップＳＰ３８に進み、受信されたデータに基づいた処理が電子楽器において実行される。ここで、具体的に如何なる処理が実行されるかは、受信されたデータの内容や、楽音モードに応じて種々異なる。例えばＭＩＤＩのノートオンイベントデータが受信されたのであれば、音源・エフェクト部２６において発音チャンネルが確保され、該ノートオンイベントデータに対応する発音処理が開始される。
【００２８】
4．5．パーソナルコンピュータ４０における動作
パーソナルコンピュータ４０においては、一般的な音楽アプリケーションプログラムと、開発用プログラムとが起動される。音楽アプリケーションプログラムの動作は、「従来の技術」で述べた周知の音楽アプリケーションプログラムと同様である。すなわち、電子楽器１から受信したＭＩＤＩ信号によって音楽アプリケーションプログラムの各種状態が設定され、あるいは音楽アプリケーションプログラムから電子楽器１を遠隔操作するためのＭＩＤＩ信号が出力される。但し、本実施例においては、音楽アプリケーションプログラムによるＭＩＤＩ信号の入出力は、必ずポートＡ，Ｂを経由して実行されることになる。
【００２９】
また、開発用プログラムはＣ言語等のコンパイラと、電子楽器１のＣＰＵ１０をエミュレートするエミュレータと、その他開発支援プログラムとから構成される。ここで、コンパイラは、Ｃ言語等のソースコードをコンパイルし、電子楽器１のＣＰＵ１０で動作するバイナリ−コードを生成する。エミュレータは、パーソナルコンピュータ４０のＣＰＵ４６上で、この電子楽器１のＣＰＵ１０の動作をエミュレートするものである。
【００３０】
ところで、電子楽器１内のプログラムにおいて、ＣＰＵ１０による操作パネル上の操作検出、操作パネル上の状態変更、ポートＡ，Ｂからのデータの入出力は、全てＲＯＭ１２に記憶されたＢＩＯＳプログラムを経由して実行される。これらのＢＩＯＳプログラムは、電子楽器１内のプログラムにおける「システムコール」によって呼び出すことが可能である。一方、パーソナルコンピュータ４０内のエミュレータにおいては、このシステムコールが検出されると、上記ＢＩＯＳプログラムを動作させる代わりに、ポートＸ，Ｙからのデータの入出力が実行されることになる。
【００３１】
4．6．プログラム開発の具体例
ここで、プログラム開発の一例として、電子楽器１において鍵盤１０１が操作され、あるいはリモートモードにおいてポートＢを介してＭＩＤＩのノート信号を受信したとき、自動的に伴奏音を発音する自動伴奏プログラムを開発する場合の手順を説明する。最初にＣ言語等によって自動伴奏プログラムのソースコードがユーザによって作成され、パーソナルコンピュータ４０内でコンパイルされると、ＣＰＵ１０用のバイナリ−コードがパーソナルコンピュータ４０において作成される。そして、パーソナルコンピュータ４０においてエミュレータを起動し、電子楽器１をプログラム開発モードで立上げると、エミュレーションの準備が完了する。
【００３２】
ここで、ユーザが鍵盤１０１内の何れかの鍵（ここではＫ１とする）を押鍵すると、その鍵のキーオン情報がポートＸを介してパーソナルコンピュータ４０に通知される（操作イベントルーチン（図４(b)）のステップＳＰ１６）。これにより、パーソナルコンピュータのエミュレータにおいては、上記バイナリ−コードが実行される。該バイナリ−コードにおいては、最初に鍵Ｋ１に対応する楽音信号を電子楽器１内の音源・エフェクト部２６において合成させるように、音源・エフェクト部２６にパラメータを設定するシステムコールが実行され、しかる後に鍵Ｋ１に対応して発生させるべき伴奏音を音源・エフェクト部２６において合成させるように、音源・エフェクト部２６にパラメータを設定するシステムコールが実行されることとする。
【００３３】
エミュレータにおいては、上記各システムコールが検出されると、その旨を通知するデータがポートＹを介して電子楽器１に送信される。これらポートＹからのデータが電子楽器１に受信されると、ポートＹデータ受信処理ルーチン（図５(a)）のステップＳＰ２４において、上記各システムコールが実行され、指定されたパラメータが音源・エフェクト部２６に対してセットされる。これにより、音源・エフェクト部２６においては、鍵Ｋ１に係る楽音信号と、その伴奏音の楽音信号とが合成され、サウンドシステム２８を介して放音される。これにより、ユーザは、鍵盤１０１の操作に対して伴奏音が正常に生成されるか否かを確認することができる。
【００３４】
また、パーソナルコンピュータ４０で実行されている音楽アプリケーションプログラムにおいて、電子楽器１に対してある音高（Ｋ２）のノートオンイベントがポートＢを介して送信されたとする。該ノートオンイベントがパーソナルコンピュータ４０によって受信されると、そのノートオンイベントがポートＸを介してパーソナルコンピュータ４０に転送される（ポートＢデータ受信処理ルーチン（図５(b)）のステップＳＰ３６）。これにより、パーソナルコンピュータのエミュレータにおいては、上記バイナリ−コードが再び実行される。該バイナリ−コードにおいては、最初に音高Ｋ２のノートオンイベントに対応する楽音信号を電子楽器１内の音源・エフェクト部２６において合成させるように、音源・エフェクト部２６にパラメータを設定するシステムコールが実行され、しかる後に鍵Ｋ２に対応して発生させるべき伴奏音を音源・エフェクト部２６において合成させるように、音源・エフェクト部２６にパラメータを設定するシステムコールが実行されることとする。
【００３５】
上述したように、エミュレータにおいては、上記各システムコールが検出されると、その旨を通知するデータがポートＹを介して電子楽器１に送信される。これらポートＹからのデータが電子楽器１に受信されると、上述した押鍵操作の場合と同様に、ステップＳＰ２４において各システムコールが実行され、指定されたパラメータが音源・エフェクト部２６に対してセットされる。これにより、音源・エフェクト部２６においては、音高（Ｋ２）のノートオンイベントに係る楽音信号と、その伴奏音の楽音信号とが合成され、サウンドシステム２８を介して放音される。これにより、ユーザは、ポートＢを介して入力されるＭＩＤＩイベントに対しても、伴奏音が正常に生成されるか否かを確認することができる。
【００３６】
以上のように、エミュレータにおいて自動伴奏が正常に実行されたことが確認されると、ユーザが所定の操作を行うことにより、パーソナルコンピュータ４０から電子楽器１に対してバイナリ−コードが転送され、該バイナリ−コードがフラッシュメモリ２４に格納される。なお、バイナリ−コードとともにソースコードも電子楽器１に転送することにより、ソースコードとバイナリ−コードとを対応付けてフラッシュメモリ２４に格納することも可能である。バイナリ−コードがフラッシュメモリ２４に転送されると、電子楽器１が単独で自動伴奏プログラムを実行できるようになる。
【００３７】
ところで、上述した自動伴奏の動作例においては、関係する全てのエミュレーションフラグが“１”であることを前提として説明したが、エミュレーションの必要が無い機能については対応するエミュレーションフラグを“０”にしておくことにより、電子楽器１内で対応する処理を完結させることができる。これにより、エミュレーションを行うときのパーソナルコンピュータ４０の負荷を抑制することができる。例えば、自動伴奏プログラムの機能のうち一部にのみ不具合がある場合は、不具合が生じている機能についてのみパーソナルコンピュータ４０においてエミュレーションしつつデバッグするとよい。
【００３８】
ところで、楽音モードがリモートモードに設定された状態で、鍵盤１０１が操作されると、操作された鍵に対応するＭＩＤＩのイベントデータがポートＡを介して出力される。一方、基本モードがプログラム開発モードに設定された状態で、鍵盤１０１が操作されると、操作された鍵に対応する操作子ＩＤと操作情報とがポートＸを介して出力される。このように、操作された鍵に関連する情報が外部に出力される点で両者の動作は共通するが、両者の動作はポートおよび信号形態が異なる以外に、大きな相違点がある。
【００３９】
まず、オクターブ設定部１０２と鍵盤１０１とが操作された場合を想定してみる。楽音モードとしてリモートモードが選択され、オクターブ設定部１０２が操作された場合には、操作内容がＲＡＭ３０に記憶され、ダウンボタン１０２ａまたはアップボタン１０２ｂの内蔵ＬＥＤが点灯されることにより、「音高を１オクターブダウン（またはアップ）」させる旨がユーザによって確認できるようになる。但し、オクターブ設定部１０２への操作自体に対しては、対応するＭＩＤＩ信号は特にポートＡから出力されることはない。その後に鍵盤１０１が操作されたときには、押下された鍵に対して出力されるＭＩＤＩ信号のイベントデータの内容が、オクターブのシフト量に応じて設定される。例えば、ユーザがダウンボタン１０２ａを押下した後に鍵１０１−Ｃ３を押鍵すると、音高「Ｃ３」よりも「１」オクターブ低い音高「Ｃ２」のノートオンイベントデータがポートＡから出力される。
【００４０】
パーソナルコンピュータ４０において、この音高「Ｃ２」のイベントデータが受信されたとしても、オクターブをシフトしない状態で鍵１０１−Ｃ２が押鍵されたのか、「１」オクターブアップさせた状態で鍵１０１−Ｃ１が押鍵されたのか、あるいは「１」オクターブダウンさせた状態で鍵１０１−Ｃ３が押鍵されたのか、全く区別することができない。しかし、通常の演奏情報を入出力するのであれば、かかる区別は全く不要なものである。すなわち、パーソナルコンピュータ４０においては、「操作された鍵」ではなく「指定された音高」に基づいて楽音信号の発生や演奏情報の記録等の処理が行われるため、ノートオンイベントに係る音高「Ｃ３」が明確であればよいのである。
【００４１】
一方、基本モードとしてプログラム開発モードが選択され、かつ関係するエミュレーションフラグが全て“１”であった場合に、ポートＸから出力されるデータは、上述したものとは明らかに異なる。まず、ボタン１０２ａ，１０２ｂのうち何れかが押下されると、押下されたボタンの操作子ＩＤと、押下された旨とがポートＸを介して出力される（ＳＰ１６）。これらの情報を如何に扱うかはパーソナルコンピュータ４０内で決定することであるが、仮にオクターブのシフト量を記憶する必要があるのであれば、パーソナルコンピュータ４０内で該シフト量が記憶されることになる。また、ボタン１０２ａ，１０２ｂの内蔵ＬＥＤを点灯する必要がある場合には、ポートＹを介してパーソナルコンピュータ４０から電子楽器１に対してＬＥＤの点灯が指令されることになる。
【００４２】
次に、電子楽器１の操作パネルにおいて鍵１０１−Ｃ３が押鍵されると、ポートＸを介して、鍵１０１−Ｃ３の操作子ＩＤと、操作情報（キーオン情報）とがパーソナルコンピュータ４０に対して出力される。この、鍵１０１−Ｃ３のキーオン情報は、「操作された鍵」を特定するものであって、「発音すべき音高」を特定するものではない。すなわち、鍵１０１−Ｃ３が押鍵される前にオクターブ設定部１０２が操作されたか否かとは全く関係するものではない。鍵１０１−Ｃ３のキーオン情報に基づいて、なんらかの発音を行うか否か、あるいはどの音高で発音を行うのかはパーソナルコンピュータ４０において決定されることである。
【００４３】
5．変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例においては、音楽アプリケーションプログラムを実行することにより電子楽器１との間でＭＩＤＩ信号を送受信するコンピュータ、および開発用プログラムを実行するコンピュータとして、一台のパーソナルコンピュータ４０を用いた。しかし、シリアルデータをポート毎に分岐することにより、ポートＡ，Ｂのデータを送受信する音楽アプリケーションプログラム用のコンピュータおよび、ポートＸ，Ｙのデータを送受信する開発用コンピュータの２台のコンピュータを用いても良い。これにより、コンピュータ一台あたりの負荷を軽減することができる。
【００４４】
(2)また、上記実施例においては、ＲＯＭ１２に記憶されているプログラムによって各種イベント処理（図４，図５）を実行したが、これらのプログラムのみをＣＤ−ＲＯＭ、フレキシブルディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施例の電子楽器用プログラム開発システムのブロック図である。
【図２】電子楽器１の操作パネルの平面図（１／２）である。
【図３】電子楽器１の操作パネルの平面図（２／２）である。
【図４】電子楽器１の各種イベントルーチンのフローチャートである。
【図５】電子楽器１の他のイベントルーチンのフローチャートである。
【図６】電子楽器１に記憶されるエミュレーションフラグを示す図である。
【符号の説明】
【００４６】
１：電子楽器、２：シリアルインタフェース、４：入力装置、６：演奏操作子、１０：ＣＰＵ（処理装置）、１２：ＲＯＭ、１６：バス、２２：波形取込インタフェース、２４：フラッシュメモリ、２６：音源・エフェクト部、２８：サウンドシステム、３０：ＲＡＭ、４０：パーソナルコンピュータ、４２：入力装置、４４：ディスプレイ、４６：ＣＰＵ、４８：ＲＯＭ、５０：ＲＡＭ、５２：バス、５４：シリアルインタフェース、５６：ハードディスク、５８：ドライブ装置、１０１：鍵盤、１０２：オクターブ設定部、１０２ａ：ダウンボタン（シフト量設定操作子）、１０２ｂ：アップボタン（シフト量設定操作子）、１０３：ピッチベンドホイール、１０４：モジュレーションホイール、１０５：リボンコントローラ、１０７：ノブコントロール部、１０７ａ〜１０７ｄ：選択ボタン、１０７ｅ〜１０７ｈ：ノブ、１０８：コントロールフェーダ群、１０９：リモートボタン群、１１０：エフェクトボタン群、１１１：アルペジオボタン、１１２：シーケンサトランスポートボタン群、１１３：モードボタン群、１１４：ＬＣＤディスプレイ、１１６：ファンクションボタン群、１１８：インフォメーションボタン、１１９：データダイアル、１２０：インク／イエスボタン、１２１：デック／ノーボタン、１２２：カーソルボタン群、１２３：EXITボタン、１２４：ENTERボタン、１２５：スロットランプ。
【図１】
2007003555.tif 000003
【図２】
2007003555.tif 000004
【図３】
2007003555.tif 000005
【図４】
2007003555.tif 000006
【図５】
2007003555.tif 000007
【図６】
2007003555.tif 000008