説明

楽曲再生装置、楽曲再生方法及びプログラム

【課題】ソフトウェア音源とハードウェア音源とを用いる場合であっても、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることを可能とする楽曲再生装置、楽曲再生方法及びプログラムを提供する。
【解決手段】処理負荷が所定以上であると判定された場合、第1テーブルに記憶されたレコードの中から、トラックレベルが小さいレコードが決定される。また、処理負荷が所定以上であると判定された場合、第1テーブルに記憶されたレコードの中から、ベロシティが小さいレコードが決定される。決定されたレコードが、ハードウェア音源により出力される。制御部は、楽曲再生装置により出力される音の一部をハードウェア音源により出力させ、その他の音をソフトウェア音源により出力させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、楽曲を再生する楽曲再生装置に関する。具体的には、楽曲を再生する際に、楽曲データに基づいて、ソフトウェア音源とハードウェア音源とを切り替えて楽曲を出力する装置に関する。
【背景技術】
【0002】
従来、楽曲を再生する際に、楽曲データに基づいて楽音を合成する再生装置が知られている。特許文献1には、楽曲を再生する際に、ソフトウェア音源とハードウェア音源とを用いて、音を出力する楽曲再生装置が開示されている。特許文献1に記載の楽曲再生装置では、新たに発音を開始するノートオン情報が読み出されたときに、CPU使用率が小さかった場合に、ソフトウェア音源により発音している。また、新たに発音を開始するノートオン情報が読み出されたときに、CPU使用率が大きかった場合に、ハードウェア音源により発音している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−283774号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
楽曲再生装置で重要な機能は、楽曲再生装置のユーザに対して、滑らかに聞こえるように楽曲を再生する機能である。CPU性能は向上しているが、全ての楽曲をソフトウェア音源で再生するには、CPU負荷が高くなり、滑らかに楽曲を再生するには好ましくない状況が発生する場合がある。所定の発音をソフトウェア音源により行う場合に、発音内容によっては、CPU負荷が高くなる場合がある。また、再生される楽曲の演奏情報によって、CPU負荷が異なる場合がある。特許文献1に記載の技術では、新たに発音を開始するノートオン情報が読み出されるたびに、CPU使用率を検出する処理が発生するため、発音する直前にならないと、ソフトウェア音源によるCPU負荷が分からない。そのため、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないという問題があった。
【0005】
本発明は、以上のことを鑑みてなされたものである。本発明の目的は、ソフトウェア音源とハードウェア音源とを用いる場合であっても、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることを可能とする楽曲再生装置、楽曲再生方法及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
請求項1に記載の発明によれば、演奏信号を含むMIDIデータを記憶する記憶手段と、前記記憶手段に記憶されたMIDIデータに基づいて、複数の楽器の音を発音するハードウェア音源と、前記記憶手段に記憶されたMIDIデータに基づいて、音を生成するソフトウェア音源と、前記記憶手段に記憶されたMIDIデータの中から、再生するMIDIデータを決定する第1決定手段と、前記第1決定手段により決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する第2決定手段と、前記第2決定手段により決定された処理負荷が、所定の処理負荷より大きいか否かを判定する判定手段と、前記判定手段により所定の処理負荷より大きいと判定された場合、前記ハードウェア音源により再生させる楽器を決定する第3決定手段と、前記第3決定手段により決定された楽器を、前記ハードウェア音源により出力させ、前記第3決定手段により決定された楽器以外についての音を前記ソフトウェア音源により生成させる第1制御手段と、前記判定手段により所定の処理負荷より大きいと判定されなかった場合、前記第1決定手段により決定されたMIDIデータを、前記ソフトウェア音源により出力させる第2制御手段と、を備えることを特徴とする楽曲再生装置である。
【0007】
請求項2に記載の発明によれば、前記第3決定手段は、前記記憶手段に記憶されたMIDIデータに基いて前記ソフトウェア音源により生成される音の大きさが小さい楽器を優先して、前記ハードウェア音源により再生させる楽器として決定することを特徴とする。
【0008】
請求項3に記載の発明によれば、前記第3決定手段は、前記記憶手段に記憶されたMIDIデータに基いて前記ソフトウェア音源により生成される音の大きさが所定の値より小さい、または、最も小さい楽器を、前記ハードウェア音源により再生させる楽器として決定することを特徴とする。
【0009】
請求項4に記載の発明によれば、前記第3決定手段は、前記ソフトウェア音源により生成される音の大きさとして、音の強弱を示すベロシティが弱い楽器を優先して、前記ハードウェア音源により再生させる楽器として決定することを特徴とする。
【0010】
請求項5に記載の発明によれば、前記第3決定手段は、前記ベロシティの強弱が所定より弱い、または、最も弱い楽器を、前記ハードウェア音源により再生させる楽器として決定することを特徴とする。
【0011】
請求項6に記載の発明によれば、演奏信号を含むMIDIデータを記憶する記憶手段に記憶されたMIDIデータの中から、再生するMIDIデータを決定する第1決定ステップと、前記第1決定ステップにより決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する第2決定ステップと、前記第2決定ステップにより決定された処理負荷が、所定の処理負荷より大きいか否かを判定する判定ステップと、前記判定ステップにより所定の処理負荷より大きいと判定された場合、MIDIデータに基づいて、複数の楽器の音を発音するハードウェア音源により再生させる楽器を決定する第3決定ステップと、前記第3決定ステップにより決定された楽器を、前記ハードウェア音源により出力させ、前記第3決定ステップにより決定された楽器以外についての音を、MIDIデータに基づいて音を生成するソフトウェア音源により生成させる第1制御ステップと、前記判定ステップにより所定の処理負荷より大きいと判定されなかった場合、前記第1決定ステップにより決定されたMIDIデータを、前記ソフトウェア音源により出力させる第2制御ステップと、を含む楽曲再生方法である。
【0012】
請求項7に記載の発明によれば、演奏信号を含むMIDIデータを記憶する記憶手段に記憶されたMIDIデータの中から、再生するMIDIデータを決定する第1決定ステップと、前記第1決定ステップにより決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する第2決定ステップと、前記第2決定ステップにより決定された処理負荷が、所定の処理負荷より大きいか否かを判定する判定ステップと、前記判定ステップにより所定の処理負荷より大きいと判定された場合、MIDIデータに基づいて、複数の楽器の音を発音するハードウェア音源により再生させる楽器を決定する第3決定ステップと、前記第3決定ステップにより決定された楽器を、前記ハードウェア音源により出力させ、前記第3決定ステップにより決定された楽器以外についての音を、MIDIデータに基づいて音を生成するソフトウェア音源により生成させる第1制御ステップと、前記判定ステップにより所定の処理負荷より大きいと判定されなかった場合、前記第1決定ステップにより決定されたMIDIデータを、前記ソフトウェア音源により出力させる第2制御ステップと、をコンピュータに実行させることを特徴とするプログラムである。
【発明の効果】
【0013】
請求項1に記載の発明によれば、第2決定手段は、第1決定手段により決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する。判定手段は、第2決定手段により決定された処理負荷が、所定の処理負荷より大きいか否かを判定する。第3決定手段は、判定手段により所定の処理負荷より大きいと判定された場合、ハードウェア音源により再生させる楽器を決定する。従って、楽曲再生前にソフトウェア音源により音を生成する際の処理負荷を把握することができ、音を生成する際にソフトウェア音源とハードウェア音源とのいずれを用いるかを決定することができる。この結果、ソフトウェア音源とハードウェア音源とを用いる場合であっても、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることができる。
【0014】
請求項2に記載の発明によれば、第3決定手段は、記憶手段に記憶されたMIDIデータに基いて前記ソフトウェア音源により生成される音の大きさが小さい楽器を優先して、ハードウェア音源により再生させる楽器として決定する。音の大きさが小さい楽器は、楽曲を聴くユーザに聞き取り難い。このため、音の大きさが小さい楽器を優先して、ソフトウェア音源からハードウェア音源に切り替えることで、楽曲の変化をユーザに認識させることを抑えて、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることができる。
【0015】
請求項3に記載の発明によれば、第3決定手段は、記憶手段に記憶されたMIDIデータに基いてソフトウェア音源により生成される音の大きさが所定の値より小さい、または、最も小さい楽器を、ハードウェア音源により再生させる楽器として決定する。この結果、音の大きさが所定の値より小さい楽器、または、最も小さい楽器を、ソフトウェア音源からハードウェア音源に切り替えることで、楽曲の変化をユーザに認識させることを抑えて、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることができる。
【0016】
請求項4に記載の発明によれば、第3決定手段は、ソフトウェア音源により生成される音の大きさとして、音の強弱を示すベロシティが弱い楽器を優先して、ハードウェア音源により再生させる楽器として決定することを特徴とする。音の強弱が弱い楽器は、楽曲を聴くユーザに聞き取り難い。このため、音の強弱が弱い楽器を優先して、ソフトウェア音源からハードウェア音源に切り替えることで、楽曲の変化をユーザに認識させることを抑えて、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることができる。
【0017】
請求項5に記載の発明によれば、第3決定手段は、ベロシティの強弱が所定より弱い、または、最も弱い楽器を、ハードウェア音源により再生させる楽器として決定する。この結果、音の強弱が所定より弱い楽器、または、最も弱い楽器を、ソフトウェア音源からハードウェア音源に切り替えることで、楽曲の変化をユーザに認識させることを抑えて、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることができる。
【0018】
請求項6または請求項7に記載の発明によれば、第2決定ステップは、第1決定ステップにより決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する。判定ステップは、第2決定ステップにより決定された処理負荷が、所定の処理負荷より大きいか否かを判定する。第3決定ステップは、判定ステップにより所定の処理負荷より大きいと判定された場合、ハードウェア音源により再生させる楽器を決定する。従って、楽曲再生前にソフトウェア音源により音を生成する際の処理負荷を把握することができ、音を生成する際にソフトウェア音源とハードウェア音源とのいずれを用いるかを決定することができる。この結果、ソフトウェア音源とハードウェア音源とを用いる場合であっても、楽曲の再生中にCPUの性能不足で再生が滑らかに行えないことを避けることができる。
【図面の簡単な説明】
【0019】
【図1】本実施形態の楽曲再生システムの概要構成図及び楽曲再生装置1の電気的構成を示す概念図の一例を示す図である。
【図2】本実施形態の第1テーブルが第1テーブル記憶領域162に記憶される記憶状態を示す概念図である。
【図3】本実施形態の第2テーブルが第2テーブル記憶領域163に記憶される記憶状態を示す概念図である。
【図4】本実施形態の楽曲再生装置1のメイン動作を示すフローチャートである。
【図5】本実施形態の演奏開始前処理を示すフローチャートである。
【図6】本実施形態の切り替え楽器選択処理を示すフローチャートである。
【図7】本実施形態の演奏処理を示すフローチャートである。
【発明を実施するための最良の形態】
【0020】
[最良の実施形態]
以下、図面に沿って、本発明を適用した最良の実施形態について説明する。
【0021】
[楽曲再生システムの概要構成]
図1は、本実施形態の楽曲再生システムの概要構成を説明する説明図である。図1に示すように、楽曲再生システムは、楽曲再生装置1と、ナビ2とから構成される。楽曲再生装置1は、いわゆるカラオケのコマンダーである。ナビ2は、赤外線により楽曲再生装置1に指令を送る装置である。図示しないナビ2の操作部が、ユーザにより操作される。操作部が操作されることで、所定の操作信号が、ナビ2から楽曲再生装置1に送信される。例えば、ナビ2を操作することで、カラオケの楽曲が予約される。そのため、ナビ2から、予約されたカラオケの楽曲を示す操作信号が楽曲再生装置1に送信される。楽曲再生装置1は、操作信号を受信すると、操作信号が含む楽曲を予約楽曲としてRAM等に一時記憶する。
【0022】
また、ナビ2は、各カラオケ店舗等に設置されたアクセスポイント110に接続される。アクセスポイント110は、例えば、無線LANである。また、アクセスポイント110は、ルータ120を介してWAN等のインターネットと接続可能である。また、ナビ2は、アクセスポイント110を介して、カラオケ店舗内のLAN100に接続される。これにより、ナビ2は、LAN100に接続された楽曲再生装置1に情報を送受信可能となる。
【0023】
図1に示すように、楽曲再生装置1は、制御部12と、LANインターフェース部14と、記憶部16と、操作処理部22と、MIDIシーケンサ25と、ソフトウェア音源27と、ビデオRAM32と、映像制御部38とを備える。本実施形態のソフトウェア音源27は、本発明のソフトウェア音源の一例である。
【0024】
制御部12は、楽曲再生装置1の各種構成を制御する。制御部12は、例えば、CPU及びRAM等から構成されるコントローラである。
【0025】
LANインターフェース部14は、楽曲再生装置1とLAN100と接続する。LANインターフェース部14により、楽曲再生装置1は、インターネット及びナビ2と通信可能になる。
【0026】
記憶部16は、各種情報を記憶するHardDisk(HD)等から構成される。記憶部16は、MIDIデータ記憶領域161と、第1テーブル記憶領域162と、第2テーブル記憶領域163と、プログラム記憶領域164とを備える。MIDIデータ記憶領域161は、MIDIデータを記憶する。MIDIデータは、楽曲再生装置1で再生される演奏データである。MIDIデータは、ノートナンバーと、ベロシティと、ノートオフと、ノートオンと、プログラムチェンジと、チャンネルと、トラックレベルとを含む。ノートナンバーは、音の高低を表す番号である。ノートナンバーは、例えば、最も低い音を0、最も高い音を127と割り当てた音の高さである。ベロシティは、音の強さである。ノートオフは、音を止める指令である。また、ノートオンは、音を鳴らす命令である。プログラムチェンジは、音色を変える命令である。チャンネルは、MIDIデータにより発音される楽器を示す。トラックレベルは、発音される音の大きさを示す。ノートオンのタイミングで、ノートナンバー、ベロシティ、プログラムチェンジ、チャンネル及びトラックレベルにより構成される演奏が開始される。また、ノートオフのタイミングで、ノートナンバー、ベロシティ、プログラムチェンジ、チャンネル及びトラックレベルにより構成される演奏が終了される。本実施形態のMIDIデータ記憶領域161は、本発明の記憶手段の一例である。
【0027】
第1テーブル記憶領域162は、第1テーブルを記憶する。図2は、第1テーブル記憶領域162に第1テーブルが記憶される記憶状態を示す概念図である。最初に、MIDIデータ記憶領域161に記憶されたMIDIデータの中から、再生されるMIDIデータが決定される。決定されたMIDIデータが制御部12により読み取られる。読み取られたMIDIデータの中で、ノートオンのタイミング以降に出力される各種の音が、第1テーブルに夫々レコードとして記憶される。つまり、第1テーブルには、ノートオンのタイミング以降に出力される各種類の音と、その音が出力される出力タイミングとが、対応付けて記憶されることになる。具体的には、図2に示すように、ノートナンバー、プログラムチェンジナンバー、ベロシティ、チャンネル及びトラックレベルとより生成される音が、その音が出力される出力タイミングと対応付けられて第1テーブルに記憶される。これにより、読み出されたMIDIデータにより出力される各種の音と、その音の出力タイミングとがレコードとして第1テーブルに記憶される。本実施形態では、出力タイミングとして、所定のサンプル数を記憶しているがこれに限定されるものではない。時系列として、出力するタイミングを示す時間が、出力タイミングとして記憶されても良い。読み取られたMIDIデータの中で、ノートオフのタイミングが検出されると、第1テーブルに記憶されたレコードが削除される。これにより、ノートオンからノートオフの間に発音される発音数が決定される。なお、第1テーブルは、楽曲再生装置1により楽曲を再生する処理負荷を決定するために用いられる。処理負荷を決定する詳細な方法は、後述する。
【0028】
第2テーブル記憶領域163は、第2テーブルを記憶する。第2テーブルは、ハードウェア音源26により出力させる音を記憶するテーブルである。図3は、第2テーブル記憶領域163に第2テーブルが記憶される記憶状態を示す概念図である。第2テーブルは、第1テーブルと同様に、ノートナンバー、プログラムチェンジナンバー、ベロシティ、チャンネル及びトラックレベルとより生成される音が、その音が出力される出力タイミングと対応付けて記憶する。以下、第2テーブルの生成方法について、説明する。
【0029】
プログラム記憶領域164は、楽曲再生装置1のメイン動作処理、演奏開始前処理、切り替え楽器選択処理及び演奏処理を実行するプログラムを記憶する。なお、本実施形態の楽曲再生装置1のプログラムは、例えば、ネットワーク上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしても良い。
【0030】
まず、MIDIデータ記憶領域161に記憶されたMIDIデータの中から、再生されるMIDIデータが決定される。決定されたMIDIデータが制御部12により読み取られる。読み取られたMIDIデータの中で、ノートオンのタイミング以降に出力される各種の音が、第1テーブルに夫々レコードとして記憶される。これにより、ノートオンからノートオフの間で、MIDIデータにより再生される発音数が決定される。本実施形態では、楽曲再生装置1の処理負荷として、発音数が用いられる。本実施形態では、基本的に、ソフトウェア音源27により、音が生成されて出力される。そのため、所定のノートオンからノートオフの間で、発音数が多いとソフトウェア音源27の処理負荷が大きくなり、滑らかに音が出力されない問題が生じる。本実施形態では、上記問題を解決するために、本実施形態では、発音数が所定数より多い場合、第1テーブルに記憶された音の中で、ハードウェア音源26により出力させる音が決定される。ハードウェア音源26により出力される音が、第2記憶テーブルとして第2テーブル記憶領域163に記憶される。なお、処理負荷が大きいか否かを判定するために用いる所定数は、楽曲再生装置1の制御部12の性能によって決められても良い。また、処理負荷として、発音数以外が用いられても良い。例えば、実際に音が出力される際の処理負荷が決定されても良い。また、1発音あたりのCPU負荷が事前に決められて、発音数に比例して、CPU負荷が大きくなるように決定されても良い。
【0031】
特に、本実施形態では、処理負荷が所定以上であると判定された場合、第1テーブルに記憶されたレコードの中から、トラックレベルが小さいレコードが決定される。また、本実施形態では、処理負荷が所定以上であると判定された場合、第1テーブルに記憶されたレコードの中から、ベロシティが小さいレコードが決定される。決定されたレコードが、ハードウェア音源26により出力される。一般的に、ハードウェア音源26よりもソフトウェア音源27の方が、音質が良い。これは、ソフトウェア音源はハードウェア音源よりも用いる波形、エフェクターの質が良いからである。しかしながら、ソフトウェア音源27により音データが生成される場合、CPU等の処理負荷が高くなる。この理由のため、本実施形態では、処理負荷が所定以上になった場合、制御部12は、楽曲再生装置1により出力される音の一部をハードウェア音源26により出力させる。これにより、楽曲再生装置1の処理負荷を下げることができる。本実施形態では、処理負荷が所定以上の場合、ハードウェア音源に出力させる音として、トラックレベルが小さい、または、ベロシティが小さいレコードが決定される。これは、トラックレベルが小さい、または、ベロシティが小さいレコードにより出力される音は、音の大きさまたは音の強さが弱いため、ハードウェア音源により出力させたとしても、ユーザにとって違和感が少ないためである。図2及び図3に示す例では、図2に示すレコードの中から、トラックレベルが最も小さい「12」であるレコード番号「3」が決定される。決定されたレコードが、図3に示すように、第2テーブルに登録される。
【0032】
MIDIシーケンサ25は、ハードウェア音源26とソフトウェア音源27とに接続される。ハードウェア音源26は、スピーカ30に音を出力させるための出力信号を生成するハードウェアである。MIDIシーケンサ25は、MIDIデータと第2テーブルに基づいて、ハードウェア音源26及びソフトウェア音源27に出力信号を生成させる。生成された出力信号は、ミキシングアンプ28に接続される。MIDIデータに基づいて、MIDIシーケンサ25は、ハードウェア音源26に生成させる出力信号を決定する。本実施形態のハードウェア音源26は、本発明のハードウェア音源の一例である。
【0033】
ソフトウェア音源27は、スピーカ30により音を出力するための出力信号を生成する。制御部12は、ソフトウェア音源27を制御し、ソフトウェア音源に音データを生成させる。ソフトウェア音源27は、MIDIシーケンサ25より送信されたMIDIデータに基づいて、スピーカ27により音を出力するための出力信号を生成する。ハードウェア音源26を用いることなく、音を出力することができる。ソフトウェア音源27により音が出力されることで、ハードウェア音源を備えなくても出力することができる。
【0034】
ハードウェア音源26とソフトウェア音源27とは、ミキシングアンプ28に接続される。また、ミキシングアンプ28は、スピーカ30と接続される。ミキシングアンプ28は、ハードウェア音源26とソフトウェア音源27とにより出力される信号を合成する。合成された信号がスピーカ30に出力される。これにより、スピーカ30から音が出力されることになる。
【0035】
また、ミキシングアンプ28は、マイク制御部29と接続される。マイク制御部29は、図示しないマイクと接続される。マイクにより入力された情報に基づいて、マイク制御部は、音声信号を生成する。制御部12は、生成された音声信号をミキシングアンプ28に出力する。音声信号に基づいて、ミキシングアンプ28は、マイクにより入力された音声をスピーカ30により出力する。
【0036】
操作処理部22は、操作部18と、赤外線受信部20と接続される。操作部18は、音楽再生装置1のユーザにより操作される。操作部18により操作され、入力された信号が操作処理部22に出力される。また、赤外線受信部20は、ナビ2により送信された赤外線を受信する。受信された赤外線の信号は、操作処理部22に出力される。操作処理部22は、出力された夫々の信号にも基づいて、操作内容を決定する。決定された操作内容に基づいて、制御部12は、音楽再生装置1を制御する。
【0037】
ビデオRAM32は、記憶部12に記憶された映像情報を一時記憶する。ビデオRAM3は、映像制御部38に接続される。また、映像制御部は、表示部36に接続される。制御部12は、ビデオRAM32に一時記憶された映像情報を出力させる指令を、ビデオRAM32及び映像制御部38に出力する。制御部12の指令に基づいて映像制御部38は、ビデオRAMに記憶された映像情報を、表示部36に出力させる。
【0038】
[メイン動作]
以上説明した構成からなる本実施形態の楽曲再生装置1の動作及び作用について、添付図面を参照して説明する。まず、楽曲再生装置1の動作及び作用について、添付図面を参照して説明する。図4は、楽曲再生装置1におけるメイン動作の処理手順を示すフローチャートである。楽曲再生装置1のメイン動作は、電源またはコンセントを介して商用電源などの外部電源とノード装置とが接続されたことにより、遂行される。以下に示す処理は、制御部12により処理される。
【0039】
まず、ステップS101では、発音数が1の無音データを再生させる。そして、ステップS102では、発音数が1の無音データを再生させたときの制御部12が備えるCPU負荷が計測される。ステップS103では、計測されたCPU負荷は、制御部12が備えるRAMに一時記憶される。これにより、処理負荷を判定するための基準となるCPU負荷が決定される。
【0040】
ステップS104では、予約楽曲があるか否かが判定される。具体的には、制御部12のRAMに予約楽曲が一時記憶されているか否かが判定される。予約楽曲があると判定された場合(ステップS104:YES)、ステップS105が実行される。予約楽曲があると判定されなかった場合(ステップS104:NO)、ステップS109が実行される。
【0041】
次に、ステップS105では、所定の楽曲が選曲される。RAMに一時記憶された予約楽曲に対応するMIDIデータが、再生される楽曲として決定される。そして、MIDIデータ記憶領域161に記憶されたMIDIデータの中から、再生されるMIDIデータが決定される。決定されたMIDIデータが、制御部12が備えるRAMに一時記憶される。本実施形態の制御部12とステップS105とは、本発明の第1決定手段の一例である。本実施形態のステップS105は、本発明の第1決定ステップの一例である。
【0042】
ステップS106では、演奏開始前処理が実行される。なお、演奏開始前処理の詳細は、図5を用いて後述する。
【0043】
ステップS107では、演奏処理が実行される。なお、演奏処理の詳細は、図7を用いて後述する。
【0044】
ステップS108では、予約楽曲が他にあるか否かが判定される。具体的には、ステップS105で選曲された楽曲以外に、RAMに予約楽曲が一時記憶されているか否かが判定される。RAMに一時記憶された予約楽曲があると判定された場合(ステップS108:YES)、ステップS105が再度実行される。RAMに一時記憶された予約曲があると判定されなかった場合(ステップS108:NO)、ステップS109が実行される。
【0045】
ステップS109では、楽曲再生装置1の電源がオフにされたか否かが判定される。楽曲再生装置1の電源がオフにされたと判定された場合(ステップS109:YES)、メイン動作は終了される。楽曲再生装置1の電源がオフにされたと判定された場合(ステップS109:NO)、ステップS104が再度実行される。
【0046】
[演奏開始前処理]
ここでは、楽曲再生装置1の演奏開始前処理動作及び作用について、添付図面を参照して説明する。図5は、楽曲再生装置1における演奏開始前処理の処理手順を示すフローチャートである。
【0047】
ステップS201では、ステップS105で選曲されたMIDIデータが、制御部12のRAMに読み込まれる。ステップS105で選曲されたMIDIデータが、RAMに一時記憶される。
【0048】
ステップS202では、ステップS201で読み込まれたMIDIデータの曲が終了されたか否かが判定される。MIDIデータの曲が終了されたか否かは、MIDIデータが含む演奏が終了したかにより判定される。MIDIデータの曲が終了したと判定された場合(ステップS202:YES)、演奏開始前処理は終了される。MIDIデータの曲が終了したと判定されなかった場合(ステップS202:NO)、ステップS203が実行される。
【0049】
ステップS203では、MIDIデータが解析される。具体的には、RAMに一時記憶されたMIDIデータが含む音が出力される時系列に沿って、MIDIデータが読み出される。
【0050】
ステップS204では、ステップS203で読み出されたMIDIデータの中に、ノートオンがあったか否かが判定される。ノートオンがあったと判定された場合(ステップS204:YES)、ステップS205が実行される。ノートオンがあったと判定されなかった場合(ステップS204:NO)、ステップS206が実行される。
【0051】
ステップS205では、ノートナンバー、プログラムチェンジナンバー、ベロシティ、チャンネル、トラックレベル及び出力タイミングが、第1テーブル記憶領域に第1テーブルとして記憶される。ステップS205で記憶されるのは、ステップS204でノートオンが判定された以降に出力される音に関する情報である。
【0052】
ステップS206では、ステップS203で時系列に読み出されたMIDIデータの中に、ノートオフがあったか否かが判定される。ノートオフがあったと判定された場合(ステップS206:YES)、ステップS207が実行される。ノートオフがあったと判定されなかった場合(ステップS206:NO)、ステップS203が繰り返し実行される。
【0053】
ステップS207では、第1テーブル記憶領域162に記憶された第1テーブルの中から、ノートオフと判定されたレコードが削除される。
【0054】
ステップS208では、第1テーブルのレコード数と、ステップS103で登録された1発音数あたりのCPU負荷とに基づいて、楽曲再生装置1の処理負荷が決定される。具体的には、ステップS102では、1発音数を出力した際のCPU負荷として、CPUの使用率が用いられる。ステップS102で1発音数あたりに用いられたCPUの使用率が決定される。本実施形態では、1発話数あたりのCPUの使用率と、第1テーブルのレコード数とを乗じた値が、処理負荷として決定される。また、上記方法以外に、第1テーブルに登録されたレコード数を用いて、楽曲再生装置1の処理負荷が決定されても良い。第1テーブルに登録されたレコードが多いほど、発音数が多い楽曲である。このため、レコード数により、楽曲再生装置1の処理負荷を決定することができる。本実施形態の制御部12とステップS208とは、本発明の第2決定手段の一例である。本実施形態のステップS208は、本発明の第2決定ステップの一例である。
【0055】
ステップS209では、処理負荷が所定値上であるか否かが判定される。本実施形態では、ステップS208で決定されたCPU使用率が、所定の値以上であるか否かが判定される。処理負荷が所定値上であると判定された場合(ステップS209:YES)、ステップS210が実行される。処理負荷が所定値上であると判定されなかった場合(ステップS209:NO)、ステップS202が実行される。また、この方法以外に、第1テーブルに登録されたレコード数が所定数以上であるか否かがステップS209で判定されても良い。この場合、レコード数が所定数以上であると判定された(ステップS209:YES)場合、ステップS210が実行される。また、レコード数が所定数以上であると判定されなかった場合(ステップS209:NO)、ステップS202が実行される。本実施形態の制御部12とステップS209とは、本発明の判定手段の一例である。また、本実施形態のステップS209は、本発明の判定ステップの一例である。
【0056】
ステップS210では、切り替え楽器選択処理が実行される。なお、切り替え楽器選択処理の詳細は、図6を用いて後述する。ステップS210では、第1テーブルに記憶されたレコードの中から、第2テーブルに登録させるレコードが決定される。具体的には、後述する切り替え楽器選択処理により、切り替え楽器候補として決定されたレコードが、第2テーブルに登録させるレコードとして決定される。本実施形態の制御部12とステップS210とは、本発明の第3決定手段の一例である。また、本実施形態のステップS210は、本発明の第3決定ステップの一例である。
【0057】
ステップS211では、第2テーブル記憶領域163に記憶された第2テーブルに、ステップS210で決定されたレコードが追加される。具体的には、後述する切り替え楽器選択処理により決定された切り替え楽器候補の中のレコードが、ステップS210で追加される。
【0058】
[切り替え楽器選択処理]
ここでは、楽曲再生装置1の切り替え楽器選択処理動作及び作用について、添付図面を参照して説明する。図6は、楽曲再生装置1における切り替え楽器選択処理の処理手順を示すフローチャートである。
【0059】
ステップS301では、Nに「0」が設定される。設定された値は、制御部12のRAMの所定の記憶領域に一時記憶される。
【0060】
ステップS302では、第1テーブル記憶領域162に記憶された第1テーブルの中から、N番目のレコードが取得される。具体的には、「0」番目のレコードが第1テーブルから取得される。
【0061】
ステップS303では、ステップS302で取得されたレコードが、切り替え楽器候補としてRAMに一時記憶される。具体的には、「0」番目のレコードが、切り替え楽器候補としてRAMに一時記憶される。
【0062】
ステップS304では、第1テーブルに、「N+1」番目のレコードが存在するか否かが判定される。具体的には、Nが「0」の場合、第1テーブルに「1」番目のレコードが登録されているか否かが判定される。「N+1」番目のレコードが存在すると判定された場合(ステップS304:YES)、ステップS305が実行される。「N+1」番目のレコードが存在すると判定されなかった場合(ステップS304:NO)、ステップS316が実行される。
【0063】
ステップS305では、第1テーブルから「N+1」番目のレコードが取得される。取得された「N+1」番目のレコードは、制御部12のRAMの所定の記憶領域に一時記憶される。
【0064】
ステップS306では、ステップS305で取得された「N+1」番目のレコードのトラックレベルと、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのトラックレベルとが比較される。
【0065】
ステップS307では、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのトラックレベルよりも、「N+1」番目のレコードのトラックレベルの方が小さいか否かが判定される。「N+1」番目のレコードのトラックレベルの方が小さいと判定された場合(ステップS307:YES)、ステップS314が実行される。「N+1」番目のレコードのトラックレベルの方が小さいと判定されなかった場合(ステップS307:NO)、ステップS308が実行される。
【0066】
ステップS308では、ステップS305で取得された「N+1」番目のレコードのトラックレベルと、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのトラックレベルとが等しいか否かが判定される。トラックレベルが等しいと判定された場合(ステップS308:YES)、ステップS309が実行される。トラックレベルが等しいと判定されなかった場合(ステップS308:NO)、ステップS315が実行される。
【0067】
ステップS309では、ステップS305で取得された「N+1」番目のレコードのベロシティと、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのベロシティとが比較される。
【0068】
ステップS310では、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのベロシティよりも、「N+1」番目のレコードのベロシティの方が小さいか否かが判定される。「N+1」番目のレコードのベロシティの方が小さいと判定された場合(ステップS310:YES)、ステップS314が実行される。「N+1」番目のレコードのベロシティの方が小さいと判定されなかった場合(ステップS310:NO)、ステップS311が実行される。
【0069】
ステップS311では、ステップS305で取得された「N+1」番目のレコードのベロシティと、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのベロシティとが等しいか否かが判定される。ベロシティが等しいと判定された場合(ステップS311:YES)、ステップS312が実行される。トラックレベルが等しいと判定されなかった場合(ステップS311:NO)、ステップS315が実行される。
【0070】
ステップS312では、ステップS305で取得された「N+1」番目のレコードのノートナンバーと、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのノートナンバーとが比較される。
【0071】
ステップS313では、ステップS303またはステップS314で切り替え楽器候補として決定されたレコードのノートナンバーよりも、「N+1」番目のレコードのノートナンバーの方が大きいか否かが判定される。「N+1」番目のレコードのノートナンバーの方が大きいと判定された場合(ステップS313:YES)、ステップS314が実行される。「N+1」番目のレコードのノートナンバーの方が大きいと判定されなかった場合(ステップS313:NO)、ステップS315が実行される。本実施形態のステップS313では、ノート番号が大きいか否かが判定されているが、これに限定されるものではない。本実施形態では、ノートナンバーが小さい音を優先して、ソフトウェア音源により出力させたいため、ステップS313では、ノート番号が大きい音がハードウェア音源により出力されている。ノートナンバーが大きい音を優先して、ソフトウェア音源により出力させたい場合、ステップS313では、ノート番号が小さいか否かが判定されれば良い。この判定処理により、ノートナンバーが小さい音がハードウェア音源により出力されることになる。
【0072】
ステップS314では、「N+1」番目のレコードが、切り替え楽器候補として決定される。決定された切り替え楽器候補のレコードは、制御部12のRAMの所定の記憶領域に一時記憶される。
【0073】
ステップS315では、「N」の値に「1」がインクリメントされる。具体的には、「N」の値に1が加算された値が、新たな「N」の値としてRAMに一時記憶される。
【0074】
[演奏処理]
ここでは、楽曲再生装置1の演奏処理動作及び作用について、添付図面を参照して説明する。図7は、楽曲再生装置1における演奏処理の処理手順を示すフローチャートである。
【0075】
ステップS401では、ステップS105で選曲された楽曲の出力が終了したか否かが判定される。楽曲の出力が終了したと判定された場合(ステップS401:YES)、演奏処理は終了される。楽曲の出力が終了したと判定されなかった場合(ステップS401:NO)、ステップS402が実行される。
【0076】
ステップS402では、ステップS203と同様に、MIDIデータが解析される。具体的には、RAMに一時記憶されたMIDIデータが含む音が出力される時系列に沿って、MIDIデータが読み出される。
【0077】
ステップS403では、ステップS402で読み出されたMIDIデータの中に、ノートオンがあったか否かが判定される。ノートオンがあったと判定された場合(ステップS403:YES)、ステップS404が実行される。ノートオンがあったと判定されなかった場合(ステップS403:NO)、ステップS408が実行される。
【0078】
ステップS404では、第2テーブル記憶領域163に記憶される第2テーブルが参照される。具体的には、第2テーブルに登録されたレコードが参照される。
【0079】
ステップS405では、ステップS404で参照された第2テーブルにレコードが存在するか否かが判定される。第2テーブルにレコードが存在すると判定された場合(ステップS405:YES)、ステップS406が実行される。第2テーブルにレコードが存在すると判定されなかった場合(ステップS405:NO)、ステップS407が実行される。
【0080】
ステップS406では、ステップS405で存在すると判定されたレコードが、ハードウェア音源26に送信される。本実施形態の制御部12とステップS406とは、本発明の第1制御手段の一例である。また、本実施形態のステップS406は、本発明の第1制御ステップの一例である。なお、変形例として、ステップS406では、第2テーブルに存在するレコードがハードウェア音源26に送信され、第2テーブルに存在するレコード以外のレコードに対応する音がソフトウェア音源27に送信されても良い。
【0081】
ステップS407では、MIDIデータに基づいて、制御部12が音データを生成する。生成された音データがソフトウェア音源27に送信される。本実施形態の制御部12とステップS407とは、本発明の第2制御手段の一例である。また、本実施形態のステップS407は、本発明の第2制御ステップの一例である。
【0082】
ステップS408では、ハードウェア音源とソフトウェア音源とにMIDIデータが送信される。MIDIデータに基づいて、制御部12が音データを生成する。生成された音データがソフトウェア音源27に送信される。
【0083】
(変形例1)
本実施形態では、ステップS307で、「N+1」番目のレコードのトラックレベルの方が小さいと判定されなかった場合、ステップS308が実行された後に、ステップS309でベロシティの比較が行われていた。本実施形態の変形例1として、本実施形態のステップS306及びステップS307が実行される代わりに、本実施形態のステップS309とステップS310とが実行されても良い。
【0084】
(変形例2)
本実施形態では、ステップS307で、「N+1」番目のレコードのトラックレベルの方が小さいと判定されなかった場合、ステップS308が実行された後に、ステップS309でベロシティの比較が行われていた。変形例2では、ステップS308からステップS310が実行されなくても良い。この場合、ステップS306及びステップS307の処理のみで、切り替え楽器候補とするレコードが決定されても良い。また、ステップS306からステップS308が実行されずに、ステップS309ステップS310のみが実行されて、切り替え楽器候補とするレコードが決定されても良い。
【0085】
(変形例3)
本実施形態は、本発明をカラオケシステムに適用した例について記載したが、これに限定されるものではない。MIDIデータが用いられる楽曲再生システムまたは楽曲再生装置であれば、本発明を適用可能である。
【0086】
(変形例4)
本実施形態では、ステップS304からステップS315までの処理が繰り返し実行される。これにより、トラックレベルが小さい、または、ベロシティが小さいレコードから優先して順番に、ハードウェア音源26により出力される音として決定されていた。本実施形態の変形例として、トラックレベルが最も小さい、または、ベロシティが最も小さいレコードが、ハードウェア音源26により出力される音として決定されても良い。また、トラックレベルが所定の値より小さいレコードが、ハードウェア音源26により出力される音として決定されても良い。また、ベロシティが所定の値より小さいレコードが、ハードウェア音源26により出力される音として決定されても良い。
【0087】
(変形例5)
なお、本実施形態の ステップS202で楽曲が終了したと判定された(ステップS202:YES)後に、第1テーブル記憶領域162に記憶された第1テーブルが削除されても良い。
【符号の説明】
【0088】
1 楽曲再生装置
2 ナビ
12 制御部
14 LANインタフェース部
16 記憶部
18 操作部
20 赤外線受信部
22 操作処理部
25 MIDIシーケンサ
26 ハードウェア音源
27 ソフトウェア音源
28 ミキシングアンプ
29 マイク制御部
30 スピーカ
32 ビデオRAM
36 表示部
38 映像制御部
100 インターネット
110 アクセスポイント
120 ルータ
161 MIDIデータ記憶領域
162 第1テーブル記憶領域
163 第2テーブル記憶領域
164 プログラム記憶領域

【特許請求の範囲】
【請求項1】
演奏信号を含むMIDIデータを記憶する記憶手段と、
前記記憶手段に記憶されたMIDIデータに基づいて、複数の楽器の音を発音するハードウェア音源と、
前記記憶手段に記憶されたMIDIデータに基づいて、音を生成するソフトウェア音源と、
前記記憶手段に記憶されたMIDIデータの中から、再生するMIDIデータを決定する第1決定手段と、
前記第1決定手段により決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する第2決定手段と、
前記第2決定手段により決定された処理負荷が、所定の処理負荷より大きいか否かを判定する判定手段と、
前記判定手段により所定の処理負荷より大きいと判定された場合、前記ハードウェア音源により再生させる楽器を決定する第3決定手段と、
前記第3決定手段により決定された楽器を、前記ハードウェア音源により出力させ、前記第3決定手段により決定された楽器以外についての音を前記ソフトウェア音源により生成させる第1制御手段と、
前記判定手段により所定の処理負荷より大きいと判定されなかった場合、前記第1決定手段により決定されたMIDIデータを、前記ソフトウェア音源により出力させる第2制御手段と、
を備えることを特徴とする楽曲再生装置。
【請求項2】
前記第3決定手段は、前記記憶手段に記憶されたMIDIデータに基いて前記ソフトウェア音源により生成される音の大きさが小さい楽器を優先して、前記ハードウェア音源により再生させる楽器として決定することを特徴とする請求項1に記載の楽曲再生装置。
【請求項3】
前記第3決定手段は、前記記憶手段に記憶されたMIDIデータに基いて前記ソフトウェア音源により生成される音の大きさが所定の値より小さい、または、最も小さい楽器を、前記ハードウェア音源により再生させる楽器として決定することを特徴とする請求項2に記載の楽曲再生装置。
【請求項4】
前記第3決定手段は、前記ソフトウェア音源により生成される音の大きさとして、音の強弱を示すベロシティが弱い楽器を優先して、前記ハードウェア音源により再生させる楽器として決定することを特徴とする請求項1から請求項3のいずれか一項に記載の楽曲再生装置。
【請求項5】
前記第3決定手段は、前記ベロシティの強弱が所定より弱い、または、最も弱い楽器を、前記ハードウェア音源により再生させる楽器として決定することを特徴とする請求項4に記載の楽曲再生装置。
【請求項6】
演奏信号を含むMIDIデータを記憶する記憶手段に記憶されたMIDIデータの中から、再生するMIDIデータを決定する第1決定ステップと、
前記第1決定ステップにより決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する第2決定ステップと、
前記第2決定ステップにより決定された処理負荷が、所定の処理負荷より大きいか否かを判定する判定ステップと、
前記判定ステップにより所定の処理負荷より大きいと判定された場合、MIDIデータに基づいて、複数の楽器の音を発音するハードウェア音源により再生させる楽器を決定する第3決定ステップと、
前記第3決定ステップにより決定された楽器を、前記ハードウェア音源により出力させ、前記第3決定ステップにより決定された楽器以外についての音を、MIDIデータに基づいて音を生成するソフトウェア音源により生成させる第1制御ステップと、
前記判定ステップにより所定の処理負荷より大きいと判定されなかった場合、前記第1決定ステップにより決定されたMIDIデータを、前記ソフトウェア音源により出力させる第2制御ステップと、
を含む楽曲再生方法。
【請求項7】
演奏信号を含むMIDIデータを記憶する記憶手段に記憶されたMIDIデータの中から、再生するMIDIデータを決定する第1決定ステップと、
前記第1決定ステップにより決定されたMIDIデータをソフトウェア音源により再生する際の処理負荷を決定する第2決定ステップと、
前記第2決定ステップにより決定された処理負荷が、所定の処理負荷より大きいか否かを判定する判定ステップと、
前記判定ステップにより所定の処理負荷より大きいと判定された場合、MIDIデータに基づいて、複数の楽器の音を発音するハードウェア音源により再生させる楽器を決定する第3決定ステップと、
前記第3決定ステップにより決定された楽器を、前記ハードウェア音源により出力させ、前記第3決定ステップにより決定された楽器以外についての音を、MIDIデータに基づいて音を生成するソフトウェア音源により生成させる第1制御ステップと、
前記判定ステップにより所定の処理負荷より大きいと判定されなかった場合、前記第1決定ステップにより決定されたMIDIデータを、前記ソフトウェア音源により出力させる第2制御ステップと、
をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−220511(P2012−220511A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−82584(P2011−82584)
【出願日】平成23年4月4日(2011.4.4)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】