米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 楽器;音響 -> ヤマハ株式会社

発明の名称 電子楽器およびプログラム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−3555(P2007−3555A)
公開日 平成19年1月11日(2007.1.11)
出願番号 特願2005−180126(P2005−180126)
出願日 平成17年6月21日(2005.6.21)
代理人 【識別番号】100104798
【弁理士】
【氏名又は名称】山下 智典
発明者 廣井 真
要約 課題
シンセサイザ等の電子楽器において、ユーザによるプログラム開発を安価に実現する。

解決手段
電子楽器1とパーソナルコンピュータ40とをシリアルインタフェース2,54を介して接続する。電子楽器1の動作モードをプログラム開発モードに設定すると、入力装置4、演奏操作子6等における操作は全て所定のポートを介して、コンピュータ40に通知される。コンピュータ40においては、ソースコードから電子楽器1のCPU10用のバイナリ−コードを生成するコンパイラと、該CPU10をエミュレートするエミュレータとが起動される。このバイナリ−コードに基づいて音源・エフェクト部26等に対して発音指示等を行う旨が指令されると、シリアルインタフェース54,2を介して、その旨がエミュレータによって電子楽器1に指令される。
特許請求の範囲
【請求項1】
複数の操作子と、
遠隔操作用の第1の出力ポートと、遠隔操作用の第1の入力ポートと、外部コンピュータによるエミュレーション用の第2の出力ポートと、エミュレーション用の第2の入力ポートとを有する通信手段と、
現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モードであるか否かを判定するモード判定手段と、
前記複数の操作子のうち何れかが操作されると、前記モード判定手段における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報と、該操作された操作子の操作状態とを前記第2の出力ポートを介して出力する操作状態出力手段と、
前記モード判定手段における判定結果が肯定的であったことを条件として、第1の入力ポートを介して受信したデータを前記第2の出力ポートを介して出力するデータ転送手段と
を有することを特徴とする電子楽器。
【請求項2】
前記複数の操作子は、標準状態における音高が各々特定された複数の鍵から成る鍵盤と、前記各鍵に対する音高を前記標準状態における音高からシフトするシフト量を設定するシフト量設定操作子とを有し、
前記シフト量設定操作子が操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、前記シフト量を記憶するシフト量記憶手段と、
前記鍵盤のうち何れかが操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、操作された鍵の標準状態における音高を前記シフト量だけシフトして成る音高に係るノートオンイベントを発生させるイベント発生手段と
をさらに有することを特徴とする請求項1記載の電子楽器。
【請求項3】
複数の操作子と、遠隔操作用の第1の出力ポートと遠隔操作用の第1の入力ポートと外部コンピュータによるエミュレーション用の第2の出力ポートとエミュレーション用の第2の入力ポートとを有する通信手段と、処理装置とを有する電子楽器の、該処理装置において実行されるプログラムであって、
現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モードであるか否かを判定するモード判定過程と、
前記複数の操作子のうち何れかが操作されると、前記モード判定過程における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報と、該操作された操作子の操作状態とを前記第2の出力ポートを介して出力する操作状態出力過程と、
前記モード判定過程における判定結果が肯定的であったことを条件として、第1の入力ポートを介して受信したデータを前記第2の出力ポートを介して出力するデータ転送過程と
を前記処理装置に実行させることを特徴とするプログラム。
発明の詳細な説明
【技術分野】
【0001】
本発明は、シンセサイザ等のプログラム開発に用いて好適な電子楽器およびプログラムに関する。
【背景技術】
【0002】
シンセサイザ等の電子楽器においては、パーソナルコンピュータと接続することにより、単体では実現できない様々な機能を実現することができる。例えば、非特許文献1に開示された電子楽器においては、電子楽器に設けられているフェーダ等の操作子をパーソナルコンピュータを遠隔操作するための操作子として使用することができ、逆にパーソナルコンピュータによって電子楽器を遠隔操作することも可能である。これらの遠隔操作には、一般的にMIDI信号のシステム・エクスクルーシブ・メッセージが使用される。また、電子楽器を制御するプログラムは電子楽器内のフラッシュメモリ等に記憶され、必要な場合にはフレキシブルディスクや通信回線を介して、フラッシュメモリ内のプログラムをアップデートすることも可能である。
【0003】
【非特許文献1】「MOTIF ES 取扱説明書」,ヤマハ株式会社,2003年
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、従来の電子楽器においては、その内部で動作するプログラムは、メーカによって供給されることを前提としており、ユーザがプログラムを自由に作成できる環境を整えているものではなかった。勿論、電子楽器を開発するメーカーは電子楽器内のプログラムを開発するための開発システムを保有しているが、これと同様のシステムをエンドユーザが購入するのは非現実的である。
この発明は上述した事情に鑑みてなされたものであり、エンドユーザにおいて、低価格かつ高性能なプログラム開発環境を実現できる電子楽器およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0005】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項1記載の電子楽器にあっては、複数の操作子(101,102a,102b)と、遠隔操作用の第1の出力ポート(ポートA)と、遠隔操作用の第1の入力ポート(ポートB)と、外部コンピュータによるエミュレーション用の第2の出力ポート(ポートX)と、エミュレーション用の第2の入力ポート(ポートY)とを有する通信手段(2)と、現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モード(基本モードがプログラム開発モード)であるか否かを判定するモード判定手段(SP12,SP22,SP32)と、前記複数の操作子(101,102a,102b)のうち何れかが操作されると、前記モード判定手段における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報(操作子ID)と、該操作された操作子の操作状態とを前記第2の出力ポート(ポートX)を介して出力する操作状態出力手段(SP16)と、前記モード判定手段における判定結果が肯定的であったことを条件として、第1の入力ポート(ポートB)を介して受信したデータを前記第2の出力ポート(ポートX)を介して出力するデータ転送手段(SP36)とを有することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1記載の電子楽器において、前記複数の操作子(101,102a,102b)は、標準状態における音高が各々特定された複数の鍵から成る鍵盤(101)と、前記各鍵に対する音高を前記標準状態における音高からシフトするシフト量を設定するシフト量設定操作子(102a,102b)とを有し、前記シフト量設定操作子(102a,102b)が操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、前記シフト量を記憶するシフト量記憶手段(SP18,RAM30)と、前記鍵盤(101)のうち何れかが操作されると、前記モード判定手段における判定結果が否定的であったことを条件として、操作された鍵の標準状態における音高を前記シフト量だけシフトして成る音高に係るノートオンイベントを発生させるイベント発生手段(SP18)とをさらに有することを特徴とする。
また、請求項3記載のプログラムにあっては、複数の操作子(101,102a,102b)と、遠隔操作用の第1の出力ポート(ポートA)と遠隔操作用の第1の入力ポート(ポートB)と外部コンピュータによるエミュレーション用の第2の出力ポート(ポートX)とエミュレーション用の第2の入力ポート(ポートY)とを有する通信手段(2)と、処理装置(10)とを有する電子楽器の、該処理装置において実行されるプログラムであって、現在の動作モードが、外部コンピュータのエミュレーション動作に対応する動作モード(基本モードがプログラム開発モード)であるか否かを判定するモード判定過程(SP12,SP22,SP32)と、前記複数の操作子(101,102a,102b)のうち何れかが操作されると、前記モード判定過程における判定結果が肯定的であったことを条件として、操作された操作子を特定する情報(操作子ID)と、該操作された操作子の操作状態とを前記第2の出力ポート(ポートX)を介して出力する操作状態出力過程(SP16)と、前記モード判定過程における判定結果が肯定的であったことを条件として、第1の入力ポート(ポートB)を介して受信したデータを前記第2の出力ポート(ポートX)を介して出力するデータ転送過程(SP36)とを前記処理装置(10)に実行させることを特徴とする。
【発明の効果】
【0006】
このように本発明によれば、現在の動作モードが外部コンピュータのエミュレーション動作に対応する動作モードである場合に、操作された操作子を特定する情報と、該操作された操作子の操作状態とを前記第2の出力ポートを介して出力するとともに、第1の入力ポートを介して受信したデータを第2の出力ポートを介して出力するから、通常使用している電子楽器を外部コンピュータによってエミュレーションを行うときの入出力装置として使用することができる。これにより、ユーザは、新たなハードウエアを購入することなくプログラム開発システムを構築することができる。
【発明を実施するための最良の形態】
【0007】
1.実施例のハードウエア構成
次に、本発明の一実施例の電子楽器用プログラム開発システムの構成を図1を参照し説明する。
まず、本開発システムのハードウエアは、電子楽器1とパーソナルコンピュータ40とから構成される。電子楽器1の内部において2はシリアルインタフェースであり、パーソナルコンピュータ40との間でシリアルデータを入出力する。シリアルインタフェース2は、例えばUSBインタフェースによって構成され、シリアルデータを送受信するポートを複数確保することができる。ここで、シリアルインタフェース2には、「4」のポートA,B,X,Yが確保されていることとする。ここでポートAはMIDI信号の出力ポート、ポートBはMIDI信号の入力ポート、ポートXはプログラム開発時におけるエミュレーション用制御信号の出力ポート、ポートYはエミュレーション用制御信号の入力ポートとして使用される。
【0008】
4は入力装置であり、電子楽器1の操作パネル上の各種のノブ、フェーダ、ボタン等から構成される。なお、一部のボタンにはLEDが内蔵されており、LEDの点灯または消灯によってオンオフ状態等を表示する。6は演奏操作子であり、鍵盤、ブレスコントローラ等から構成される。8はディスプレイであり、ドットマトリクス状のLCDディスプレイおよびLEDインジケータ、ボタン内のLED等から構成される。10はCPUであり、ROM12、またはフラッシュメモリ24に記憶されたプログラムに基づいて、バス16を介して他の構成要素を制御する。なお、ROM12には、後述する図4,図5に示す基本的なプログラムが記憶され、フラッシュメモリ24には変更可能なプログラムやユーザの作成したプログラム、このユーザの作成したプログラムのソースコード等が記憶される。
【0009】
18はMIDIインタフェースであり、MIDI信号を入出力する。22は波形取込インタフェースであり、外部から入力されたアナログ信号をデジタル信号に変換する。26は音源・エフェクト部であり、バス16を介して供給されたMIDI信号に基づいて楽音信号を合成する。なお、音源・エフェクト部26には一または複数のプラグインボードを装着するためのスロットが設けられており、ここにプラグインボードを装着することにより、機能を追加することができる。28はサウンドシステムであり、該楽音信号を発音する。30はRAMであり、CPU10のワークメモリとして用いられる。
【0010】
次に、パーソナルコンピュータ40の内部において42は入力装置であり、文字入力用キーボードおよびマウス等から構成されている。44はディスプレイであり、ユーザに対して各種情報を表示する。46はCPUであり、後述するプログラムに基づいて、バス52を介してパーソナルコンピュータ40内の他の構成要素を制御する。48はROMであり、イニシャルプログラムローダ等が記憶されている。50はRAMであり、CPU46のワークメモリとして用いられる。54はシリアルインタフェースであり、電子楽器1内のシリアルインタフェース2に対してシリアルデータを入出力する。56はハードディスクであり、オペレーティングシステム、電子楽器1の制御プログラム、電子楽器1のフラッシュメモリ24に格納するプログラムを開発するための開発用プログラム等が格納される。58はドライブ装置であり、CD−ROM、MO等のリムーバルディスクに対してデータの読出し/書込みを行う。
【0011】
2.電子楽器1の動作モード
2.1.基本モード
次に、電子楽器1の動作モードについて説明する。電子楽器1の動作モードには「基本モード」と「楽音モード」の二種類があり、両動作モードは独立して設定することができる。まず、基本モードは、「プログラム開発モード」または「ユーザモード」のうち何れか一方にセットされる。ここでプログラム開発モードとは、パーソナルコンピュータ40等、外部のコンピュータにおいて電子楽器1のプログラムを開発するための動作モードである。一方、ユーザモードとは、電子楽器1を通常の電子楽器として動作させるための動作モードである。
【0012】
2.2.楽音モード
また、楽音モードは電子楽器1における楽音の生成方法や編集方法等を規定する動作モードであり、以下のようなものがある。
・ボイスモード:シミュレートしようとする楽器の音色(ボイス)の作成、編集、初期化、再生および保存等を行うモード。
・パフォーマンスモード:パフォーマンス(複数のボイスを重ねて鳴らす音色セット)の作成、編集、初期化、再生および保存等を行うモード。
・ソングモード:ソング(MIDIで構成される曲データ)の作成、編集、初期化、再生および保存等を行うモード。
・パターンモード:パターン(MIDIで構成されるリズムパターンであってループ再生するもの)の作成、編集、初期化、再生および保存等を行うモード。
・サンプリングモード:波形取込インタフェース22等を介して入力されるサンプリングデータの作成、編集、初期化、再生および保存等を行うモード。
・リモートモード:電子楽器1に設けられているフェーダ等の操作子をパーソナルコンピュータを遠隔操作するための操作子として使用するとともに、パーソナルコンピュータによって電子楽器1を遠隔操作するモード。
【0013】
3.電子楽器1のパネル構成
次に、電子楽器1の操作パネルの構成を図2,図3を参照し説明する。
図2において、101は鍵盤であり、複数の鍵から構成されている。なお、各々の鍵は、標準状態において一の音高に対応するものであり、かかる音高を用いて各鍵を、例えば「101−C2」のように表記する。102はオクターブ設定部であり、鍵盤101の各鍵に対応させる音高を「1」オクターブ低くシフトするダウンボタン102aと、「1」オクターブ高くシフトするアップボタン102bとから構成されている。
【0014】
103はピッチベンドホイールであり、楽音信号のピッチを上下動するシステム・エクスクルーシブ・メッセージを出力する。104はモジュレーションホイールであり、モジュレーション効果のコントロール量を上下動するシステム・エクスクルーシブ・メッセージを出力する。105はリボンコントローラであり、ユーザが表面を指で左右方向になぞると、その移動量に応じて、指定されたパラメータを変化させる。106はマスターボリュームフェーダであり、サウンドシステム28における音量を調節する。
【0015】
107はノブコントロール部であり、演奏中のボイスの音色やアルペジオ再生に関する各種パラメータを増減するノブ107e〜107hと、これらのノブの機能を選択する選択ボタン107a〜107dとから構成されている。108はコントロールフェーダ群であり、各種パラメータの値を増減する。109はリモートボタン群であり、リモートモードのオン/オフ状態、およびリモートモードにおける遠隔操作のパラメータを設定する。なお、リモートモードがオン状態にされると、楽音モードがリモートモードに変更されるとともに、従前の楽音モードがRAM30の所定領域に記憶される。また、リモートモードがオフ状態に設定されると、楽音モードが、このRAM30の所定領域に記憶されていたモードに変更されることになる。
【0016】
110はエフェクトボタン群であり、音源・エフェクト部26内で実行されるエフェクト処理のうち、インサーションエフェクト、システムエフェクト、マスターエフェクトのオン/オフ状態を切り換える複数のボタンから構成されている。111はアルペジオボタンであり、アルペジオの自動生成を行うか否かを切り換える。112はシーケンサトランスポートボタン群であり、シーケンスデータ等の再生開始、録音開始、再生または録音の停止、早送り、巻き戻し等を制御する複数ののボタンから構成されている。113はモードボタン群であり、リモートモード以外の楽音モードを設定する複数のボタンから構成されている。
【0017】
次に、図3において114はLCDディスプレイであり、各々所定数のドットを縦横に配列したドットマトリクスディスプレイとして構成され、CPU10の制御の下、画像および文字等を表示する。116はファンクションボタン群、であり、各楽音モードによって特定される機能の有効/無効状態を設定する。118はインフォメーションボタンであり、これが押下されると、現在の楽音モードに関する情報がLCDディスプレイ114に表示される。119はデータダイアルであり、LCDディスプレイ114内のカーソル位置に表示される数値の値を増減する。なお、データダイアル119は、速く回すほど、単位回転角あたりの数値の変化量が大きくなる。120はインク/イエスボタンであり、LCDディスプレイ114のカーソルに表示されている数値を「1」だけ増加する。また、インク/イエスボタン120は、各種処理を実行する際の確認(YES)にも使用される。
【0018】
121はデック/ノーボタンであり、LCDディスプレイ114のカーソルに表示されている数値を「1」だけ減少する。また、デック/ノーボタン121は、各種処理の実行をキャンセルする場合(NO)にも使用される。122はカーソルボタン群であり、LCDディスプレイ114上のカーソルを上下左右方向に移動させる複数のボタンから構成されている。ところで、LCDディスプレイ114に表示される機能は階層構造になっている。123はEXITボタンであり、LCDディスプレイ114に表示される機能の階層を一つ上の階層に戻す。124はENTERボタンであり、LCDディスプレイ114に表示されている数値を確定する。125はスロットランプであり、音源・エフェクト部26におけるプラグインボードの装着状況を表示する。126〜132はその他ボタンであり、楽音信号を生成するための各種の処理に対応付けられている。
【0019】
4.実施例の動作
4.1.基本モード設定
次に、本実施例の動作を説明する。まず、電子楽器1の電源が投入されると、図4(a)に示す基本モード設定ルーチンが起動される。図において処理がステップSP2に進むと、入力装置4において所定の操作が実行されているか否かが確認される。ここで、「所定の操作」とは、例えば電源投入時に鍵101−C1を押下しておくような操作である。ここで「NO」と判定されると処理はステップSP6に進み、基本モードがユーザモードに設定される。一方、ここで「YES」と判定されると、処理はステップSP4に進み、基本モードがプログラム開発モードに設定されるとともに、エミュレーションフラグという複数のフラグが全て“1”に設定される。なお、基本モードは、電源投入後の任意のタイミングで設定変更できるようにしてもよい。
【0020】
ここで、エミュレーションフラグについて説明しておく。エミュレーションフラグは、図6に示すように、操作パネル上の個々の操作子およびポートBから入力される入力MIDIデータの種別毎に対応して電子楽器1内のRAM30に記憶されているフラグである。なお、入力MIDIデータがMIDIチャンネルの指定を伴う場合には、MIDIチャンネル毎にエミュレーションフラグが記憶される。ここで、エミュレーションフラグが“1”であるときは、対応する処理を外部コンピュータ(すなわちパーソナルコンピュータ40)で実行することを示し、同フラグが“0”である場合には電子楽器1の内部で対応する処理を実行することを示す。電源投入時に基本モードとしてプログラム開発モードが指定された場合には上述したように全てのエミュレーションフラグが“1”に設定されるが、個々の操作および入力データに対するエミュレーションフラグの値はその後に随時変更することが可能である。
【0021】
4.2.操作イベント処理
電子楽器1の操作パネルにおいて、鍵、ノブ、フェーダ、ボタン等の操作子の操作が検出されると、図4(b)に示す操作イベントルーチンが起動される。図4(b)において処理がステップSP12に進むと、基本モードがプログラム開発モードであるか否かが判定される。ここで「YES」と判定されると、処理はステップSP14に進み、検出された操作に対応するエミュレーションフラグが“1”であるか否かが判定される。ここで「YES」と判定されると、処理はステップSP16に進み、操作が検出された操作子の操作子IDと、検出された操作情報とがポートXを介してパーソナルコンピュータ40に出力される。
【0022】
ここで、操作子IDとは、操作パネルに設けられた各操作子に付与されたユニークな番号である。また、「操作情報」は操作子の種類に応じて異なる。すなわち、操作子が鍵盤101内の鍵であった場合には、操作情報とは、キーオン、キーオフ、アフタータッチの区別と、ベロシティ(キーオンの場合)またはアフタータッチ量(アフタータッチの場合)とから成るデータになる。また、操作子がノブまたはホイールであった場合には、操作情報はノブまたはホイールの回転角度(絶対値)である。また、操作子がリボンコントローラ105であった場合には、操作情報はリボンコントローラ105上のユーザの指の移動速度である。また、操作子がボタンであった場合には、操作情報はオンまたはオフの状態である。
【0023】
一方、上記ステップSP12またはSP14の何れかにおいて「NO」と判定されると、処理はステップSP18に進み、検出された操作内容に基づいた処理が電子楽器において実行される。ここで、具体的に如何なる処理が実行されるかは、操作された操作子や楽音モードに応じて種々異なる。例えば、オクターブ設定部102が操作されたのであれば、ピッチをシフトすべき量であるシフト量(「+1」または「−1」オクターブ)がRAM30内の所定領域に記憶され、ボタン102a,102bの内蔵LEDのうち対応する側が点灯処理されることになる。
【0024】
4.3.ポートYデータ受信処理
次に、ポートYを介してパーソナルコンピュータ40からデータが受信されると、図5(a)に示すポートYデータ受信処理ルーチンが起動される。図5(a)において処理がステップSP22に進むと、基本モードがプログラム開発モードであるか否かが判定される。ここで「YES」と判定されると、処理はステップSP24に進み、受信データに基づく処理が電子楽器において実行される。一方、ステップSP22において「NO」と判定されると、本ルーチンが直ちに終了し、ポートYから受信したデータは無視される。上述したように、ポートYはプログラム開発時におけるエミュレーション用制御信号の入力ポートとして使用されるため、基本モードがユーザモードであれば、ポートYからのデータは全て無視されることになる。
【0025】
ポートYから受信されるデータとしては、各エミュレーションフラグの値を変更する指示、LCDディスプレイ114に対する表示内容の指示、操作パネル上のLED(ボタン内部のLEDを含む)の点灯/消灯の指示、音源・エフェクト部26に対する発音やエフェクトの指示、ポートAからのデータ出力の指示、その他電子楽器1の内部状態の指示等、電子楽器1内のプログラムによって指定可能な各種の動作の指示が含まれる。そして、上記ステップSP24においては、これらの指示に基づいて、電子楽器1の表示状態、発音状態、内部状態等が設定されることになる。
【0026】
4.4.ポートBデータ受信処理
次に、ポートBを介してパーソナルコンピュータ40からデータが受信されると、図5(b)に示すポートBデータ受信処理ルーチンが起動される。図5(b)において処理がステップSP32に進むと、基本モードがプログラム開発モードであるか否かが判定される。ここで「YES」と判定されると、処理はステップSP34に進み、ポートBから受信したデータに対応するエミュレーションフラグが“1”であるか否かが判定される。ここで「YES」と判定されると、処理はステップSP36に進み、ポートBから受信したデータがポートXを介して転送される。
【0027】
一方、上記ステップSP32またはSP34の何れかにおいて「NO」と判定されると、処理はステップSP38に進み、受信されたデータに基づいた処理が電子楽器において実行される。ここで、具体的に如何なる処理が実行されるかは、受信されたデータの内容や、楽音モードに応じて種々異なる。例えばMIDIのノートオンイベントデータが受信されたのであれば、音源・エフェクト部26において発音チャンネルが確保され、該ノートオンイベントデータに対応する発音処理が開始される。
【0028】
4.5.パーソナルコンピュータ40における動作
パーソナルコンピュータ40においては、一般的な音楽アプリケーションプログラムと、開発用プログラムとが起動される。音楽アプリケーションプログラムの動作は、「従来の技術」で述べた周知の音楽アプリケーションプログラムと同様である。すなわち、電子楽器1から受信したMIDI信号によって音楽アプリケーションプログラムの各種状態が設定され、あるいは音楽アプリケーションプログラムから電子楽器1を遠隔操作するためのMIDI信号が出力される。但し、本実施例においては、音楽アプリケーションプログラムによるMIDI信号の入出力は、必ずポートA,Bを経由して実行されることになる。
【0029】
また、開発用プログラムはC言語等のコンパイラと、電子楽器1のCPU10をエミュレートするエミュレータと、その他開発支援プログラムとから構成される。ここで、コンパイラは、C言語等のソースコードをコンパイルし、電子楽器1のCPU10で動作するバイナリ−コードを生成する。エミュレータは、パーソナルコンピュータ40のCPU46上で、この電子楽器1のCPU10の動作をエミュレートするものである。
【0030】
ところで、電子楽器1内のプログラムにおいて、CPU10による操作パネル上の操作検出、操作パネル上の状態変更、ポートA,Bからのデータの入出力は、全てROM12に記憶されたBIOSプログラムを経由して実行される。これらのBIOSプログラムは、電子楽器1内のプログラムにおける「システムコール」によって呼び出すことが可能である。一方、パーソナルコンピュータ40内のエミュレータにおいては、このシステムコールが検出されると、上記BIOSプログラムを動作させる代わりに、ポートX,Yからのデータの入出力が実行されることになる。
【0031】
4.6.プログラム開発の具体例
ここで、プログラム開発の一例として、電子楽器1において鍵盤101が操作され、あるいはリモートモードにおいてポートBを介してMIDIのノート信号を受信したとき、自動的に伴奏音を発音する自動伴奏プログラムを開発する場合の手順を説明する。最初にC言語等によって自動伴奏プログラムのソースコードがユーザによって作成され、パーソナルコンピュータ40内でコンパイルされると、CPU10用のバイナリ−コードがパーソナルコンピュータ40において作成される。そして、パーソナルコンピュータ40においてエミュレータを起動し、電子楽器1をプログラム開発モードで立上げると、エミュレーションの準備が完了する。
【0032】
ここで、ユーザが鍵盤101内の何れかの鍵(ここではK1とする)を押鍵すると、その鍵のキーオン情報がポートXを介してパーソナルコンピュータ40に通知される(操作イベントルーチン(図4(b))のステップSP16)。これにより、パーソナルコンピュータのエミュレータにおいては、上記バイナリ−コードが実行される。該バイナリ−コードにおいては、最初に鍵K1に対応する楽音信号を電子楽器1内の音源・エフェクト部26において合成させるように、音源・エフェクト部26にパラメータを設定するシステムコールが実行され、しかる後に鍵K1に対応して発生させるべき伴奏音を音源・エフェクト部26において合成させるように、音源・エフェクト部26にパラメータを設定するシステムコールが実行されることとする。
【0033】
エミュレータにおいては、上記各システムコールが検出されると、その旨を通知するデータがポートYを介して電子楽器1に送信される。これらポートYからのデータが電子楽器1に受信されると、ポートYデータ受信処理ルーチン(図5(a))のステップSP24において、上記各システムコールが実行され、指定されたパラメータが音源・エフェクト部26に対してセットされる。これにより、音源・エフェクト部26においては、鍵K1に係る楽音信号と、その伴奏音の楽音信号とが合成され、サウンドシステム28を介して放音される。これにより、ユーザは、鍵盤101の操作に対して伴奏音が正常に生成されるか否かを確認することができる。
【0034】
また、パーソナルコンピュータ40で実行されている音楽アプリケーションプログラムにおいて、電子楽器1に対してある音高(K2)のノートオンイベントがポートBを介して送信されたとする。該ノートオンイベントがパーソナルコンピュータ40によって受信されると、そのノートオンイベントがポートXを介してパーソナルコンピュータ40に転送される(ポートBデータ受信処理ルーチン(図5(b))のステップSP36)。これにより、パーソナルコンピュータのエミュレータにおいては、上記バイナリ−コードが再び実行される。該バイナリ−コードにおいては、最初に音高K2のノートオンイベントに対応する楽音信号を電子楽器1内の音源・エフェクト部26において合成させるように、音源・エフェクト部26にパラメータを設定するシステムコールが実行され、しかる後に鍵K2に対応して発生させるべき伴奏音を音源・エフェクト部26において合成させるように、音源・エフェクト部26にパラメータを設定するシステムコールが実行されることとする。
【0035】
上述したように、エミュレータにおいては、上記各システムコールが検出されると、その旨を通知するデータがポートYを介して電子楽器1に送信される。これらポートYからのデータが電子楽器1に受信されると、上述した押鍵操作の場合と同様に、ステップSP24において各システムコールが実行され、指定されたパラメータが音源・エフェクト部26に対してセットされる。これにより、音源・エフェクト部26においては、音高(K2)のノートオンイベントに係る楽音信号と、その伴奏音の楽音信号とが合成され、サウンドシステム28を介して放音される。これにより、ユーザは、ポートBを介して入力されるMIDIイベントに対しても、伴奏音が正常に生成されるか否かを確認することができる。
【0036】
以上のように、エミュレータにおいて自動伴奏が正常に実行されたことが確認されると、ユーザが所定の操作を行うことにより、パーソナルコンピュータ40から電子楽器1に対してバイナリ−コードが転送され、該バイナリ−コードがフラッシュメモリ24に格納される。なお、バイナリ−コードとともにソースコードも電子楽器1に転送することにより、ソースコードとバイナリ−コードとを対応付けてフラッシュメモリ24に格納することも可能である。バイナリ−コードがフラッシュメモリ24に転送されると、電子楽器1が単独で自動伴奏プログラムを実行できるようになる。
【0037】
ところで、上述した自動伴奏の動作例においては、関係する全てのエミュレーションフラグが“1”であることを前提として説明したが、エミュレーションの必要が無い機能については対応するエミュレーションフラグを“0”にしておくことにより、電子楽器1内で対応する処理を完結させることができる。これにより、エミュレーションを行うときのパーソナルコンピュータ40の負荷を抑制することができる。例えば、自動伴奏プログラムの機能のうち一部にのみ不具合がある場合は、不具合が生じている機能についてのみパーソナルコンピュータ40においてエミュレーションしつつデバッグするとよい。
【0038】
ところで、楽音モードがリモートモードに設定された状態で、鍵盤101が操作されると、操作された鍵に対応するMIDIのイベントデータがポートAを介して出力される。一方、基本モードがプログラム開発モードに設定された状態で、鍵盤101が操作されると、操作された鍵に対応する操作子IDと操作情報とがポートXを介して出力される。このように、操作された鍵に関連する情報が外部に出力される点で両者の動作は共通するが、両者の動作はポートおよび信号形態が異なる以外に、大きな相違点がある。
【0039】
まず、オクターブ設定部102と鍵盤101とが操作された場合を想定してみる。楽音モードとしてリモートモードが選択され、オクターブ設定部102が操作された場合には、操作内容がRAM30に記憶され、ダウンボタン102aまたはアップボタン102bの内蔵LEDが点灯されることにより、「音高を1オクターブダウン(またはアップ)」させる旨がユーザによって確認できるようになる。但し、オクターブ設定部102への操作自体に対しては、対応するMIDI信号は特にポートAから出力されることはない。その後に鍵盤101が操作されたときには、押下された鍵に対して出力されるMIDI信号のイベントデータの内容が、オクターブのシフト量に応じて設定される。例えば、ユーザがダウンボタン102aを押下した後に鍵101−C3を押鍵すると、音高「C3」よりも「1」オクターブ低い音高「C2」のノートオンイベントデータがポートAから出力される。
【0040】
パーソナルコンピュータ40において、この音高「C2」のイベントデータが受信されたとしても、オクターブをシフトしない状態で鍵101−C2が押鍵されたのか、「1」オクターブアップさせた状態で鍵101−C1が押鍵されたのか、あるいは「1」オクターブダウンさせた状態で鍵101−C3が押鍵されたのか、全く区別することができない。しかし、通常の演奏情報を入出力するのであれば、かかる区別は全く不要なものである。すなわち、パーソナルコンピュータ40においては、「操作された鍵」ではなく「指定された音高」に基づいて楽音信号の発生や演奏情報の記録等の処理が行われるため、ノートオンイベントに係る音高「C3」が明確であればよいのである。
【0041】
一方、基本モードとしてプログラム開発モードが選択され、かつ関係するエミュレーションフラグが全て“1”であった場合に、ポートXから出力されるデータは、上述したものとは明らかに異なる。まず、ボタン102a,102bのうち何れかが押下されると、押下されたボタンの操作子IDと、押下された旨とがポートXを介して出力される(SP16)。これらの情報を如何に扱うかはパーソナルコンピュータ40内で決定することであるが、仮にオクターブのシフト量を記憶する必要があるのであれば、パーソナルコンピュータ40内で該シフト量が記憶されることになる。また、ボタン102a,102bの内蔵LEDを点灯する必要がある場合には、ポートYを介してパーソナルコンピュータ40から電子楽器1に対してLEDの点灯が指令されることになる。
【0042】
次に、電子楽器1の操作パネルにおいて鍵101−C3が押鍵されると、ポートXを介して、鍵101−C3の操作子IDと、操作情報(キーオン情報)とがパーソナルコンピュータ40に対して出力される。この、鍵101−C3のキーオン情報は、「操作された鍵」を特定するものであって、「発音すべき音高」を特定するものではない。すなわち、鍵101−C3が押鍵される前にオクターブ設定部102が操作されたか否かとは全く関係するものではない。鍵101−C3のキーオン情報に基づいて、なんらかの発音を行うか否か、あるいはどの音高で発音を行うのかはパーソナルコンピュータ40において決定されることである。
【0043】
5.変形例
本発明は上述した実施例に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施例においては、音楽アプリケーションプログラムを実行することにより電子楽器1との間でMIDI信号を送受信するコンピュータ、および開発用プログラムを実行するコンピュータとして、一台のパーソナルコンピュータ40を用いた。しかし、シリアルデータをポート毎に分岐することにより、ポートA,Bのデータを送受信する音楽アプリケーションプログラム用のコンピュータおよび、ポートX,Yのデータを送受信する開発用コンピュータの2台のコンピュータを用いても良い。これにより、コンピュータ一台あたりの負荷を軽減することができる。
【0044】
(2)また、上記実施例においては、ROM12に記憶されているプログラムによって各種イベント処理(図4,図5)を実行したが、これらのプログラムのみをCD−ROM、フレキシブルディスク等の記録媒体に格納して頒布し、あるいは伝送路を通じて頒布することもできる。
【図面の簡単な説明】
【0045】
【図1】本発明の一実施例の電子楽器用プログラム開発システムのブロック図である。
【図2】電子楽器1の操作パネルの平面図(1/2)である。
【図3】電子楽器1の操作パネルの平面図(2/2)である。
【図4】電子楽器1の各種イベントルーチンのフローチャートである。
【図5】電子楽器1の他のイベントルーチンのフローチャートである。
【図6】電子楽器1に記憶されるエミュレーションフラグを示す図である。
【符号の説明】
【0046】
1:電子楽器、2:シリアルインタフェース、4:入力装置、6:演奏操作子、10:CPU(処理装置)、12:ROM、16:バス、22:波形取込インタフェース、24:フラッシュメモリ、26:音源・エフェクト部、28:サウンドシステム、30:RAM、40:パーソナルコンピュータ、42:入力装置、44:ディスプレイ、46:CPU、48:ROM、50:RAM、52:バス、54:シリアルインタフェース、56:ハードディスク、58:ドライブ装置、101:鍵盤、102:オクターブ設定部、102a:ダウンボタン(シフト量設定操作子)、102b:アップボタン(シフト量設定操作子)、103:ピッチベンドホイール、104:モジュレーションホイール、105:リボンコントローラ、107:ノブコントロール部、107a〜107d:選択ボタン、107e〜107h:ノブ、108:コントロールフェーダ群、109:リモートボタン群、110:エフェクトボタン群、111:アルペジオボタン、112:シーケンサトランスポートボタン群、113:モードボタン群、114:LCDディスプレイ、116:ファンクションボタン群、118:インフォメーションボタン、119:データダイアル、120:インク/イエスボタン、121:デック/ノーボタン、122:カーソルボタン群、123:EXITボタン、124:ENTERボタン、125:スロットランプ。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013