JP4240772B2 - 音楽データ処理装置 - Google Patents
音楽データ処理装置 Download PDFInfo
- Publication number
- JP4240772B2 JP4240772B2 JP2000211817A JP2000211817A JP4240772B2 JP 4240772 B2 JP4240772 B2 JP 4240772B2 JP 2000211817 A JP2000211817 A JP 2000211817A JP 2000211817 A JP2000211817 A JP 2000211817A JP 4240772 B2 JP4240772 B2 JP 4240772B2
- Authority
- JP
- Japan
- Prior art keywords
- event
- port
- midi
- midi data
- input
- 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
【発明の属する技術分野】
本発明は、MIDIデータ等の音楽データ処理装置に関する。
【0002】
【従来の技術】
電子ピアノ等の電子楽器においては、電子楽器に内蔵される音源を用いて楽音を発生する他に、外部機器との間でデータ通信を行う通信機能を備えたものが広く普及している。
このように、電子楽器と外部機器との間でデータ通信を行うための規格として、MIDI(Musical Instrument Digital Interface)規格があり、このMIDI規格に対応する機器には、MIDIインタフェースが搭載されている。
このMIDIインタフェースには、MIDI規格設定当初から広く利用されてきたシングルポートタイプ(例えば、1イン/1アウトタイプ等)のMIDIインタフェースの他、複数の入出力端子を備えた、いわゆるマルチポートタイプ(例えば、8イン/8アウトタイプ等)のMIDIインタフェースがある。
このマルチポートタイプのMIDIインタフェースを備えた音源装置にキーボード、シンセサイザー等の電子楽器、音源を複数接続することで、多くの音源や電子楽器等を自由に使い分けることが可能となる一方、これらの音源や電子楽器から入力されるMIDIデータに基づき、演奏を再現することも可能となる(図13参照)。
【0003】
【発明が解決しようとする課題】
ところで、このマルチポートタイプのMIDIインタフェースを備えた音源装置(音楽データ処理装置)は、複数のポートを介してMIDIデータを受信した場合にどのポートから入力されるMIDIデータを優先的に処理するか(以下、単に優先度という)が予め決定されている。
図14は、従来の音源装置がポート1を介して3イベント分のMIDIデータを受信し、その間にポート2を介して1イベント分のMIDIデータを受信した場合におけるデータ処理に流れを示すものである。
この図14に示すデータ処理の流れは、音源装置のポート1の優先度がポート2の優先度よりも高く設定されている場合を想定している。なお、図14に示すイベント(音楽イベント)は、楽器演奏や、操作等の処理を行うために必要な演奏情報であり、例えば発音を示すノートオン、音高を示すノートナンバー、音の強さを示すベロシティ等のMIDIデータにより構成された発音イベント等である。
従来の音源装置は、優先度に従ってイベント処理を行っていたため、図14に示すように優先度の高いポート(ポート1)から入力されるイベントがある限り、優先度の低いポート(ポート2)から入力されるイベントが処理されることはなかった。この結果、優先度の低いポートから入力されるイベントの処理が遅延し、本来発音すべきタイミングから遅れて発音する等の問題が生じていた。
本発明は、以上説明した事情を鑑みてなされたものであり、複数の入力ポートを介して入力されるイベントを均等に処理することができる音楽データ処理装置を提供することを目的とする。
【0004】
【課題を解決するための手段】
上述した問題を解決するため、請求項1に記載の音楽データ処理装置は、外部装置と接続するための複数のポートと、2以上のポートから音楽イベントが略同時に入力された場合に、前回処理を行った音楽イベントが入力されたポートと異なるポートから入力された音楽イベントを優先的に処理するイベント処理手段とを具備することを特徴とする。
また、請求項2に記載の音楽データ処理装置は、外部装置と接続するための複数のポートと、ポートから音楽イベントが入力された場合に、該ポートとは異なるポートから入力された音楽イベントがあるか否かを判断し、異なるポートから入力された音楽イベントがあると判断した場合には、前回処理を行った音楽イベントが入力されたポートと異なるポートから入力された音楽イベントを優先的に処理するイベント処理手段とを具備することを特徴とする。
【0005】
また、請求項3に記載の音楽データ処理装置は、外部装置と接続するための複数のポートと、1の音楽イベントに対して1または複数パートの処理を行い、ポートを介して入力された音楽イベントが、複数パートの処理を行う音楽イベントである場合には、前記音楽イベントに対して1パート分の処理を行った後、前記ポートとは異なるポートから入力された音楽イベントがあるか否かを判断し、異なるポートから入力された音楽イベントがあると判断した場合には、該音楽イベントを優先的に処理するイベント処理手段とを具備することを特徴とする。
【0006】
【発明の実施の形態】
以下、本発明をさらに理解しやすくするため、実施の形態について説明する。かかる実施の形態は、本発明の一態様を示すものであり、この発明を限定するものではなく、本発明の範囲で任意に変更可能である。
【0007】
A.第1の実施形態
(1)実施形態の構成
図1は、本実施形態に係る音源装置100の概略構成を示すブロック図である。
音源装置100は、装置各部の制御を司るCPU200と、各種制御プログラム及び固定データ等が格納されているROM300と、各種データを格納する書き換え可能なRAM400と、マルチポートタイプのMIDIインタフェース510を介してMIDIデータが入力されるMIDI入力部500と、CPU200による制御の下、楽音信号を生成する楽音生成部600とを備えている。
【0008】
a)音源装置100の機能構成
図2は、MIDIデータを受信する場合のCPU200の制御機能を示す機能ブロック図である。
CPU200におけるMIDIデータ受信時の制御機能は、シリアルデータ受信手段210−k(k=1〜N)と、MIDIイベント解釈手段220−k(k=1〜N)と、MIDIイベント記憶手段230−k(k=1〜N)と、MIDIデータマネージャ手段240とを具備している。
同図に示すように、シリアルデータ受信手段210−k(k=1〜N)、MIDIイベント解釈手段220−k(k=1〜N)及びMIDIイベント記憶手段230−k(k=1〜N)は、MIDIインタフェース510の各ポートk(k=1〜N)に対応して設けられている。
【0009】
シリアルデータ受信手段210−kは、ポートkを介して入力されるMIDIデータを受信し、受信したMIDIデータを1バイトずつMIDIイベント解釈手段220−kに出力する。
MIDIイベント解釈手段220−kは、MIDIデータ受信手段210−kから1バイトずつMIDIデータを受け取り、受け取った1バイト単位のMIDIデータを順次FIFO方式のMIDIイベント記憶手段230−kに格納すると共に、1イベント成立したか否かの判断を行う。このイベント成立の判断方法については実施形態の動作において説明するため省略する。
【0010】
MIDIデータマネージャ手段240は、MIDIイベント解釈手段220−kからイベント成立通知を受け取ると、対応するMIDIイベント記憶手段230−kを参照し、イベント処理を行う。さらに詳述すると、MIDIマネージャ手段240は、まずMIDIイベント解釈手段220−kからMIDIデータを受け取ることにより、どのポートにおいてイベントが成立しているかを把握する。そして、MIDIデータマネージャ手段240は、メモリ241を参照することにより、次に処理すべきイベントを決定する。
このメモリ241は、書き換え可能な記憶手段であり、最後に処理したイベントの入力ポート番号が格納されている。MIDIデータマネージャ手段240は、このメモリ241を参照し、例えば同一ポートに入力されたイベントを連続して処理しない等の判断基準に基づき、処理すべきイベントを決定する。なお、具体的な決定方法については、後に詳述するため省略する。
次に、MIDIインタフェースの複数のポートに、MIDIデータが入力された場合の音源装置100の動作について説明する。
【0011】
(2)実施形態の動作
図3は、MIDIインタフェース510のポート1及びポート2を介して各々1イベント分のMIDIデータが入力される場合を例示した図である。
同図に示すように、音源装置100のポート1及びポート2には、MIDIデータ送信側の装置a及び装置bがそれぞれ接続されている。
以下に、音源装置100が装置a及び装置bからMIDIデータを受信した場合のイベント処理動作について図2〜図7を参照して説明する。なお、図3に示すイベントは、説明の便宜上、全て3バイト構成(MIDIデータ3バイトで1イベント成立)とする。
【0012】
a)イベント解釈手段220−kの動作
MIDIイベント解釈手段220−1及びMIDIイベント解釈手段220−2は、シリアルデータ受信手段201−1及びシリアルデータ受信手段201−2から1バイトずつMIDIデータを受信する。
図4は、イベント解釈手段220−kの動作を示すフローチャートである。
MIDIイベント解釈手段220−kは、ステップS1において、シリアルデータ受信手段210−kからMIDIデータが供給されたか否かを判断する。MIDIイベント解釈手段220−kはMIDIデータが供給されると(ステップS1;YES)、ステップS2に進み、1イベント分のMIDIデータが供給されたか、すなわち1イベント成立したか否かの判断を行う。具体的には、MIDIイベント解釈手段220−kは、まずMIDIデータのフラグを参照し、ステータスバイトであるか、あるいはデータバイトであるかの判断を行う。
【0013】
図5は、発音イベントを構成するMIDIデータを示す図である。
同図に示す発音イベントは、1つのステータスバイト(ノートオン)と2つのデータバイト(ノートナンバー及びベロシティ)により構成されている。このような構成の発音イベントは、まずステータスバイトがMIDIイベント解釈手段220−kに入力され、次いでデータバイトがMIDIイベント解釈手段220−kに入力される。ここで、ステータスバイトには、フラグ“1”がセットされ、データバイトにはフラグ“0”がセットされている。また、ステータスバイトには、後に続くデータバイトの数に関する情報が含まれている。
従って、MIDIイベント解釈手段220−kは、MIDIデータのフラグを参照することにより、ステータスバイトであるか、データバイトであるかを判断する一方、受け取ったMIDIデータがステータスバイトであれば、これに含まれる情報に基づき、後に続くデータバイト数を把握する。
【0014】
ここで、再びイベント解釈手段220−kの動作説明に戻り、本実施形態に係るイベントは、全て3バイト構成のイベントであるため、後に続くデータバイトの数が「2」である旨の情報がステータスバイトに含まれている。
MIDIイベント解釈手段220−kは、受け取ったMIDIデータが1バイトであるのに対し、1イベント成立するのに必要なMIDIデータは3バイトであるため、イベントは成立しないと判断し(ステップS2;NO)、1バイト分のMIDIデータをMIDIイベント記憶手段230−kに書き込んだ後、ステップS1へ戻り、上述した処理を繰り返し実行する。
【0015】
その後、2バイト分のMIDIデータがMIDIイベント解釈手段220−kに供給されたとする。
2バイト分のMIDIデータが供給されることにより、MIDIイベント解釈手段220−kは、1イベント成立したと判断し(ステップS2;YES)、1イベントを構成する最後のMIDIデータをMIDIイベント記憶手段230−kに書き込むと共に、MIDIデータマネージャ手段240に対して1イベント成立した旨の通知を行う(ステップS3)。
このような処理をMIDIイベント解釈手段220−1及びMIDIイベント解釈手段220−2が実行することにより、MIDIイベント記憶手段230−1及びMIDIイベント記憶手段230−2の各々に、1イベント分のMIDIデータが格納される。
【0016】
次に、図6及び図7を参照して、MIDIイベント解釈手段220−1及びMIDIイベント解釈手段220−2からイベント成立通知を受けたMIDIデータマネージャ手段240の動作説明を行う。
【0017】
b)MIDIデータマネージャ手段240の動作
図6は、MIDIデータマネージャ手段240の動作を示すフローチャートであり、図7は、音源装置100に入力されるイベントを模式的に示した図である。 MIDIデータマネージャ手段240は、ステップSa1において、イベント成立通知の検出を行う。MIDIデータマネージャ手段240は、イベント成立通知を受け取るまでの間、繰り返しステップSa1を実行する(図7に示す、ステージ1)。
【0018】
その後、ポート1からイベント入力され、イベント解釈手段220−1がMIDIデータマネージャ手段240に対してイベント成立通知を行ったとする(図7に示す、ステージ2)。
MIDIデータマネージャ手段240はイベント成立通知を受け取ると、ステップSa2に進み、受け取ったイベント成立通知に対応するポートが、最後に処理したイベントに対応するポートと同一であるか否かの判断を行う。前述したように、メモリ241には、最後に処理したイベントのポート番号が書き込まれている。ここでは、前回処理したイベントのポート番号が「N」であったとする。MIDIデータマネージャ手段240は、このメモリ241に格納されたポート番号「N」が、今回入力されたイベントのポート番号「1」と一致しないため、最後に処理したポートと異なると判断し(ステップSa2;NO)、ステップSa3に進む。ステップSa3において、MIDIデータマネージャ手段240は、処理すべきイベントが格納されているMIDIイベント記憶手段230−1を参照し、ポート1のイベント処理を開始する。ポート1のイベント処理が終了すると、MIDIデータマネージャ手段240は、メモリ241に書き込まれたポート番号を「N」から「1」へ変更する。MIDIデータマネージャ手段240は、最後に処理したイベントのポート番号を書き換えが終了すると、ステップSa1に戻り、再びイベントが成立しているポートがあるか否かの判断を行う。
【0019】
その後、再びポート1からイベント入力され、イベント解釈手段220−1がMIDIデータマネージャ手段240に対してイベント成立通知を行ったとする(図7に示す、ステージ3)。
MIDIデータマネージャ手段240はイベント成立通知を受け取ると、前回と同様、受け取ったイベント成立通知に対応するポートが最後に処理したイベントに対応するポートと同一であるか否かの判断を行う。メモリ241には、最後に処理したイベントのポート番号「1」が書き込まれている。MIDIデータマネージャ手段240は、このメモリ241に格納されたポート番号「1」が、今回入力されたイベントのポート番号「1」と一致するため、最後に処理したポートと同一であると判断し(ステップSa2;YES)、このポート1のイベント処理を行うことなく、ステップSa4に進む。
ポート1のイベント処理を行うことなくステップSa4に移行したMIDIデータマネージャ手段240は、他のポートにおいてイベントが成立しているか否かの判断を行う。ここで、MIDIデータマネージャ手段240は、他のイベント解釈手段220−kからイベント成立通知を受けていないため、他ポートにおいてイベントは成立していないと判断し、ステップSa3に進む。結局、この場合もMIDIデータマネージャ手段240は、ポート1のイベント処理を行うこととなるが、この動作については上述した場合と同様であるため、説明を省略する。
【0020】
その後、ポート1及びポート2からイベント入力され、イベント解釈手段220−1及びイベント解釈手段220−2がMIDIデータマネージャ手段240に対してイベント成立通知を行ったとする(図7に示す、ステージ4)。
ここで、MIDIデータマネージャ手段240は、まずイベント解釈手段220−1からのイベント成立通知を認識し、次いでイベント解釈手段220−2からのイベント成立通知を認識したとする。これにより、MIDIデータマネージャ手段240は、前回と同様、メモリ241に格納されたポート番号「1」が、今回入力されたイベントのポート番号「1」と一致するため、最後に処理したポートと同一であると判断し(ステップSa2;YES)、このポート1のイベント処理を行うことなく、ステップSa4に進む。
ポート1のイベント処理を行うことなくステップSa4に移行したMIDIデータマネージャ手段240は、他のポートにおいてイベントが成立しているか否かの判断を行う。この判断時において、MIDIデータマネージャ手段240は、イベント解釈手段220−2からイベント成立通知を受け取っている。従って、MIDIデータマネージャ手段240は他のポート(ポート2)においてもイベントが成立していると判断し(ステップSa4;YES)、ステップSa5に進む。
【0021】
このステップSa5において、MIDIデータマネージャ手段240は、次に処理すべきイベントを決定する。図7に示すステージ4は、ポート2に対応するイベント解釈手段220−2からイベント成立通知が行われる場合を想定しているが、もちろんポート3、・・・、ポートN等多数のポートに対応するイベント解釈手段からMIDIデータマネージャ手段240に対してイベント成立通知が行われる場合もある。かかる場合には、いずれか1のイベントを選択する必要があるため、MIDIデータマネージャ手段240は、このステップSa5において次に処理すべきイベントを決定する。例えば、複数のポートにおいてイベントが成立している場合には、最後に処理したイベントのポート(ポート3と仮定する)に最も近いポートのイベントを次に処理すべきイベントとして決定する。ただし、最も近いポートが2ポートある場合(例えば上述したポート3に対して、ポート2及びポート4等)には、ポート番号の小さい方(ポート2)を選択し、このポートのイベントを次に処理べきイベントとして決定する。その他にも様々な方法が考えられるが、これ以上の説明は省略し、MIDIデータマネージャ手段240の動作説明を続ける。
【0022】
ここで、MIDIデータマネージャ手段240は、ポート2に対応するイベント解釈手段230−2からのみイベント成立通知を受けている。このため、MIDIデータマネージャ手段240は、次に処理すべきイベントはポート2のイベントであると判断し、ステップSa3に進む。ステップSa3において、MIDIデータマネージャ手段240は、判断結果に基づき、処理すべきイベントが格納されているMIDIイベント記憶手段230−2を参照し、ポート2のイベント処理を開始するのであるが、この時、ポート1のイベントは未だ処理されていない。すなわち、MIDIデータマネージャ手段240は、最後に処理したイベントのポートとは異なるポートのイベントを優先的に処理するのである。
【0023】
その後、ポート2のイベント処理が終了したとする。
ポート2のイベント処理が終了すると、MIDIデータマネージャ手段240は、メモリ241に書き込まれたポート番号を「1」から「2」へ変更する。MIDIデータマネージャ手段240は、最後に処理したイベントのポート番号の書き換えが終了すると、ステップSa1に戻り、再びイベントが成立しているポートがあるか否かの判断を行う。その後、MIDIデータマネージャ手段240は、ポート1のイベントを処理することとなるが、この場合の動作については、上述と同様であるため、これ以上の説明は省略する。
【0024】
以上の説明から明らかなように、本実施形態に係る音源装置100は、発音が込み合った状態においても、特定ポートのイベントのみを優先的に処理することはない。すなわち、本実施形態に係る音源装置100は、複数のポートにおいてイベントが成立している場合、各ポートのイベントを均等に処理していくため、イベントの処理が遅延することを未然に防止することができる。
なお、本実施形態に係るメモリ241は、最後に処理したイベントのポート番号を格納する構成であったが、これに限定する趣旨ではなく、2以上(例えば、音源装置100の総ポート数N等)のデータを格納する構成としても良いのは勿論である。このような構成のメモリ241を使用することで、最後に処理したイベントのポート番号、及び最後の1つ前に処理したイベントのポート番号のいずれにも一致しないポートから入力されるイベントを処理することができる。これにより、例えば3つのポートにおいてイベントが成立しているにもかかわらず、2つのポート間で繰り返しイベントが処理され、残り1ポートから入力されるイベントが処理されないといった問題を未然に防ぐことができる。
【0025】
B.第2の実施形態
ところで、従来より広く普及している音源装置には、複数の楽器を個別に演奏させることを目的とした「チャンネル」という概念が導入されている。具体的には、第1チャンネルにはヴァイオリン、第2チャンネルにはピアノ、・・・等が設定され、各チャンネルに対応して用意された音源を使用することにより、複数の楽器の音を同時に発音することができる構成となっている。従来は、このようにチャンネルの数だけ音源が必要であったのだが、近年チャンネル別に複数の楽器の音を発音することができるマルチ音源が開発され、これが主流となっている。
さらに、マルチ音源の中でも、特にマルチパートと呼ばれる音源(以下、マルチパート音源という)は、効率の良い演奏が可能であることから盛んに研究・開発されている。ここで、マルチパート音源とは、複数のパート(例えば、ピアノ、ヴァイオリン等)を持ち、パート毎の設定により受信チャンネル(以下、単にChと記す場合もある)を指定することができる音源である。
【0026】
図8は、ポート、チャンネル及びパートの関係を示す図であり、図9は、マルチパートの概念を説明するための図である。
図9についてさらに詳述すると、図9(a)は、ユーザによってパート毎の受信チャンネルが指定された場合を例示した図であり、図9(b)は、音源装置側から見たチャンネルで処理すべきパートテーブルを示す図である。なお、この図8に示すMIDIチャンネル及びパートは、ポート1を想定したものであるが、このチャンネル及びパートの概念は、全てのポート(図8に示す、ポート1〜ポートN)に共通するため、その他のポートについては説明を省略する。
【0027】
図9に示す設定がなされたマルチパート音源において、パート1にはヴァイオリン、パート2にはピアノ、パート3にはオルガンが設定されていたとする。
このような設定のマルチパート音源に対して、チャンネル1を指定したイベント及びチャンネル2を指定したイベントが入力され、かつ各チャンネルを指定したイベントがいずれも「ド」の音を発音させる発音イベントであったとする。
マルチパート音源は、1ChのMIDIイベントを受信した場合には、ヴァイオリンの音色で「ド」の音を発音させるべく、図示せぬレジスタに対してパラメータ設定を行う。これに対し、2ChのMIDIイベントを受信した場合、マルチパート音源はピアノとオルガンの音色で「ド」の音を発音させるべく、レジスタの所定領域に各種パラメータを設定する。このようにして、マルチパート音源は1つのチャンネルで複数の音色を発音したり、音に厚みを持たせることができるのである。
【0028】
しかしながら、従来のマルチパート音源には、次のような問題があった。例えば、前掲図9(b)に示すパートテーブルを具備するマルチパート音源が、ポート1を介して2Chのイベントを受信した後、ポート1とは異なるポート、例えばポート2を介して1Ch(処理すべきパート:パート1)のイベントを受信したとする。
従来のマルチパート音源は、図10に示すように、まずポート1の2Chで処理すべきパート2及びパート3を連続して処理し、次いでポート2の1Chで処理すべきパート1を処理していた。このように、従来のマルチパート音源においては、あるポートのイベントに対応したパート処理(パート処理:マルチパート音源に対して各種パラメータ設定を行うこと)が開始されると、このイベントに対応した全てのパート処理が終了するまで、他のポートのイベントに対応したパート処理が行われないという問題があった。
【0029】
図11は、本実施形態に係るマルチパート音源のMIDIデータマネージャ手段240の動作を示すフローチャートであり、図12はこのフローを実行した場合のデータ処理の流れを模式的に示した図である。
図11及び以下に示すマルチパート音源の動作説明は、上述した場合と同様、ポート1を介して2Chのイベントを受信し、ポート2を介して1Chのイベントを受信した場合を想定している。また、ハードウェアの構成等は、前述した図1及び図2と同様であるため、対応する部分に同一符号を付し、その詳細な説明を省略する。
【0030】
MIDIデータマネージャ手段240は、ステップSb1において、MIDIイベント解釈手段220からイベント成立通知があるか否かを検出している。 マルチパート音源がポート1を介してイベントを受信すると、MIDIイベント解釈手段220−1は、MIDIデータマネージャ手段240に対してイベント成立通知を行う。
これにより、MIDIデータマネージャ手段240は、ポート1においてイベントが成立したと判断し(ステップSb1;YES)、ステップSb2に進む。
ステップSb2に進むと、MIDIデータマネージャ手段240は、MIDIイベント記憶手段230−1を参照し、当該イベントのチャンネル番号を読み出す。
【0031】
MIDIデータマネージャ手段240は、MIDIイベント記憶手段230−1に格納されているイベントが2Chのイベントであると判断すると、RAM400等に格納されたパートテーブル(図9(b)参照)を参照し、この2Chで処理すべきパート(パート2及びパート3)を把握する。MIDIデータマネージャ手段240は、ステップSb2において1パート分の処理を行うのであるが、2Chで処理すべきパートは複数(パート2及びパート3)ある。このため、MIDIデータマネージャ手段240は、いずれのパートを先に処理すべきか判断し、この判断結果に基づき1パート分のパート処理を行う。いずれのパートを先に処理すべきかの判断基準等については、本願発明の趣旨とは関係がないため、ここでは省略する。
【0032】
ここで、MIDIデータマネージャ手段240は、パート2を先に処理すべきであると判断したとする(ステップSb2)。
1パート分の処理が終了すると、MIDIデータマネージャ手段240はパート2の処理を終えると、このイベントに対応した全てのパート処理を行うことなく、すなわちパート3の処理を行うことなく、他ポートでイベントが成立しているか否かの判断を行う(ステップSb3)。
ここで、MIDIデータマネージャ手段240は、ポート1のイベント処理を行っている間に、MIDIイベント解釈手段220−2からポート2においてイベントが成立した旨の通知を受け取っていたとする。
【0033】
これにより、MIDIデータマネージャ手段240は、他ポートでイベントが成立していると判断し(ステップSb3;YES)、ステップSb5に進む。ステップSb5において、MIDIデータマネージャ手段240は、他ポートで成立しているイベントの処理を行う。ただし、このステップSb5の処理は、図11に示す制御フローを継承する。すなわち、他ポートのイベントにおいて処理すべきパートが複数ある場合であっても、1パート分の処理のみを行うのである(ステップSb2参照)。
ここで、他ポートにおいて成立しているイベントは、ポート2において成立している1Chのイベントであり、処理すべきパートはパート1のみである。
MIDIデータマネージャ手段240は、ポート2のイベントに対応したパート1の処理を行い、ステップSb4に進む。
【0034】
MIDIデータマネージャ手段240は、このステップSb4において、前回処理したポート1のイベントに関して次に処理すべきパートがあるか否かの判断を行う。上述したように、MIDIデータマネージャ手段240は、ポート1のイベントに関して1パート分の処理、すなわちパート2の処理を行ったのみであり、パート3の処理は未だ行っていない。従って、MIDIデータマネージャ手段240は、処理すべきパートが残っていると判断して(ステップSb4;YES)ステップSb2に戻り、未処理であったパート3の処理を行う。
パート3の処理が終了すると、MIDIデータマネージャ手段240はステップSb3に進む。ここで、MIDIデータマネージャ手段240はステップSb2の処理が終了するまでの間に、その他のポートからイベント成立通知を受け取っていなかったとする。
【0035】
これにより、MIDIデータマネージャ手段240は、他のポートでイベントは成立していないと判断し(ステップSb3;NO)、ステップSb4に進む。
MIDIデータマネージャ手段240は、このステップSb4において、ポート1のイベントに関して処理すべきパートが残っているかを判断する。ここでは、ポート1のイベントに関する全てのパート処理が終了している。MIDIデータマネージャ手段240は、ポート1のイベントに関する全てのパート処理が終了したと判断すると、ステップSb1に戻り、以上説明した処理を繰り返し実行する。
【0036】
このように、本実施形態に係るマルチポート音源は、1のポートにおいて成立しているイベントに関して処理すべきパートが複数あるような場合であっても、当該ポートの処理が集中して行われることはない(図12参照)。従って、他のポートにおいて成立しているイベントの処理が遅延するといった問題を未然に防ぐことができる。
【0037】
【発明の効果】
以上説明したように、本発明によれば、複数の入力ポートを介して入力されるイベントを均等に処理することができる音楽データ処理装置を提供することができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係る音源装置100の概略構成を示すブロック図である。
【図2】 同実施形態におけるCPU200の制御機能を示す機能ブロック図である。
【図3】 同実施形態における音源装置100にMIDIデータが入力される場合を例示した図である。
【図4】 同実施形態におけるイベント解釈手段220の動作を示すフローチャートである。
【図5】 イベントを構成するMIDIデータを示す図である。
【図6】 同実施形態におけるMIDIデータマネージャ手段240の動作を示すフローチャートである。
【図7】 同実施形態における音源装置100に入力されるMIDIデータを模式的に示した図である。
【図8】 ポート、チャンネル及びパートの関係を示す図である。
【図9】 マルチパートの概念を説明するための図である。
【図10】 同実施形態におけるデータ処理の流れを模式的に示した図である。
【図11】 第2の実施形態におけるMIDIデータマネージャ手段240の動作を示すフローチャートである。
【図12】 同実施形態におけるデータ処理の流れを模式的に示した図である。
【図13】 従来の音源装置を説明するための図である。
【図14】 従来の音源装置におけるデータ処理の流れを模式的に示した図である。
【符号の説明】
210−k・・・シリアルデータ受信手段
220−k・・・MIDIイベント解釈手段
230−k・・・MIDIイベント記憶手段
240・・・MIDIデータマネージャ手段
100・・・音源装置
Claims (3)
- 外部装置と接続するための複数のポートと、
2以上のポートから音楽イベントが略同時に入力された場合に、前回処理を行った音楽イベントが入力されたポートと異なるポートから入力された音楽イベントを優先的に処理するイベント処理手段と
を具備することを特徴とする音楽データ処理装置。 - 外部装置と接続するための複数のポートと、
ポートから音楽イベントが入力された場合に、該ポートとは異なるポートから入力された音楽イベントがあるか否かを判断し、異なるポートから入力された音楽イベントがあると判断した場合には、前回処理を行った音楽イベントが入力されたポートと異なるポートから入力された音楽イベントを優先的に処理するイベント処理手段と
を具備することを特徴とする音楽データ処理装置。 - 外部装置と接続するための複数のポートと、
1の音楽イベントに対して1または複数パートの処理を行い、
ポートを介して入力された音楽イベントが、複数パートの処理を行う音楽イベントである場合には、前記音楽イベントに対して1パート分の処理を行った後、前記ポートとは異なるポートから入力された音楽イベントがあるか否かを判断し、
異なるポートから入力された音楽イベントがあると判断した場合には、該音楽イベントを優先的に処理するイベント処理手段と
を具備することを特徴とする音楽データ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000211817A JP4240772B2 (ja) | 2000-07-12 | 2000-07-12 | 音楽データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000211817A JP4240772B2 (ja) | 2000-07-12 | 2000-07-12 | 音楽データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002023740A JP2002023740A (ja) | 2002-01-25 |
JP4240772B2 true JP4240772B2 (ja) | 2009-03-18 |
Family
ID=18707852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000211817A Expired - Fee Related JP4240772B2 (ja) | 2000-07-12 | 2000-07-12 | 音楽データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4240772B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8106570B2 (en) | 2009-05-05 | 2012-01-31 | General Electric Company | Isotope production system and cyclotron having reduced magnetic stray fields |
US8106370B2 (en) | 2009-05-05 | 2012-01-31 | General Electric Company | Isotope production system and cyclotron having a magnet yoke with a pump acceptance cavity |
US8153997B2 (en) | 2009-05-05 | 2012-04-10 | General Electric Company | Isotope production system and cyclotron |
JP5891620B2 (ja) * | 2011-07-01 | 2016-03-23 | ヤマハ株式会社 | 演奏データ送信装置及び演奏データ受信装置 |
-
2000
- 2000-07-12 JP JP2000211817A patent/JP4240772B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002023740A (ja) | 2002-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11881196B2 (en) | Electronic keyboard musical instrument and method of generating musical sound | |
CN108630178B (zh) | 乐音生成装置、乐音生成方法、记录介质及电子乐器 | |
JP4240772B2 (ja) | 音楽データ処理装置 | |
WO2007139034A1 (ja) | 楽音合成装置及び方法 | |
JP2565069B2 (ja) | 電子楽器 | |
JP2007093679A (ja) | 音源設定装置及び音源設定プログラム | |
JP4238807B2 (ja) | 音源用波形データの決定装置 | |
JP4353225B2 (ja) | 楽音形成装置 | |
JP3334483B2 (ja) | 外部波形を入力可能な波形メモリ型楽音発生装置 | |
JP7130185B2 (ja) | 電子楽器、電子楽器の制御方法及び制御プログラム | |
JPH05210385A (ja) | 電子楽器 | |
JP4306138B2 (ja) | 楽音発生装置及び楽音発生処理のプログラム | |
KR101786461B1 (ko) | 단일 신시사이저를 사용한 다중 사운드합성 기반의 미디음원모듈과 그를 사용한 노래반주장치 | |
JPH02135564A (ja) | データ処理装置 | |
JPH1049159A (ja) | 電子楽器の楽音発生装置 | |
JP3508139B2 (ja) | デジタル信号処理プロセッサ | |
JP3741047B2 (ja) | 音源装置 | |
KR100186314B1 (ko) | 음원발생기 | |
JP2020154217A (ja) | 電子楽器、電子楽器の制御方法及びプログラム | |
JPH05289662A (ja) | エフェクト自動選択装置 | |
JP2019168645A (ja) | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 | |
JP3190103B2 (ja) | 楽音合成装置 | |
JP2019032566A (ja) | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 | |
JP2001005475A (ja) | ウエーブテーブルシンセサイザー | |
JPH0468635B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070604 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081112 |
|
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: 20081209 |
|
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: 20081222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120109 Year of fee payment: 3 |
|
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: 20130109 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |