説明

カラオケ装置およびプログラム

【課題】カラオケ装置において、例えばノートオン信号などの他の信号を示すデータを送信するタイミングを遅らせることなく、ガイドメロディの音色の種別を変更すること。
【解決手段】音声制御部のCPUが、ガイドメロディの音色の種別を変更する際にその音色の種別に対応するよう音響効果の各種設定を変更する場合には、音声制御部のワークエリアが一時的に記憶する演奏データから「データ挿入可能領域」を検出し、その検出したデータ挿入可能領域へ変更データおよび設定データを挿入する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カラオケ装置において、例えばノートオン信号などの他の信号を示すデータを送信するタイミングを遅らせることなく、ガイドメロディの音色の種別を変更する技術に関する。
【背景技術】
【0002】
従来より、ガイドメロディを含む演奏データに基づいてカラオケ演奏を行う機能を有するカラオケ装置が知られている。ここでガイドメロディとは、カラオケ演奏に合わせて歌おうとする人が主旋律をうろ覚えの場合などに、その補助となるよう演奏されるメロディパートを云う。このガイドメロディは、基本的には主な設置場所であるカラオケボックスにて利用されることを想定して、楽曲ごとに様々な音色にて作成されている。なお、ガイドメロディに使われる音色の種別の具体例としては、ビブラフォンやピアノ、フルート、ハーモニカなどが挙げられる。
【0003】
また、上述のようなカラオケ装置の中には、ガイドメロディの音符の長さや音高を変更するものがある(例えば、特許文献1参照。)。また、上述のようなカラオケ装置の中には、ガイドメロディの音量を変化させるものがある(例えば、特許文献2参照。)。
【特許文献1】特開2000−267652号公報(第4頁、図2,3,6)
【特許文献2】特開平9−81166号公報(第5頁、図1)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、上述のようなカラオケ装置においては、ガイドメロディの音色の種別を変更する旨のデータに対応する音響効果を設定するためのデータについては、図3(a)に例示するように、本来演奏データには含まれないため、これらのデータを含めて送信すると、図3(b)に例示するように、例えばノートオン信号などの他の信号を示すデータを送信するタイミングが遅れてしまうおそれがある。
【0005】
本発明は、このような不具合に鑑みなされたものであり、その目的とするところは、カラオケ装置において、例えばノートオン信号などの他の信号を示すデータを送信するタイミングを遅らせることなく、ガイドメロディの音色の種別を変更する技術を提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するためになされた請求項1に係るカラオケ装置は、「ガイドメロディの音色の種別を変更する際にその音色の種別に対応する音響効果の各種設定を変更する場合には、バッファが一時的に記憶する演奏データから他のデータを挿入可能な領域を検出し、その検出したデータ挿入可能領域へ変更データおよび変更データに対応する音響効果を設定するためのデータを挿入すること」を特徴とする。
【0007】
具体的には、演奏データ記憶手段(16:この欄においては、発明に対する理解を容易にするため、必要に応じて「発明を実施するための最良の形態」欄で用いた符号を付すが、この符号によって請求の範囲を限定することを意味するものではない。)が、音色が指定されたガイドメロディを含み、MIDIデータの形式で作成された演奏データを記憶しており、カラオケ演奏手段(30)が、演奏データ取得手段(12)によって演奏データ記憶手段から取得された演奏データに基づいてカラオケ演奏を行う。また、バッファ(24g)が、演奏データ取得手段によって取得された演奏データを一時的に記憶可能であり、変更データ取得手段(24e)が、ガイドメロディの音色の種別を変更する旨の変更データを取得可能である。また、設定情報対応テーブル記憶手段(24e)が、ガイドメロディの音色の種別とガイドメロディに関する設定内容を示す「ガイドメロディ設定情報」とを対応付けた設定情報対応テーブルを記憶する。
【0008】
そして、変更データ取得手段によって変更データが取得された場合には、設定情報特定手段(24e)が、その変更データが指示するガイドメロディの音色の種別に対応するガイドメロディ設定情報を、設定情報対応テーブル記憶手段が記憶する設定情報対応テーブルを参照して特定する。一方、データ更新手段(24e)が、バッファに記憶された演奏データからデータ挿入可能領域を検出し、その検出したデータ挿入可能領域へ変更データおよび設定情報特定手段によって特定されたガイドメロディ設定情報を示す設定データを挿入することによってバッファが記憶する演奏データを更新する。なお、ここで「データ挿入可能領域」とは、演奏データのうち変更データやガイドメロディ設定情報を示す設定データを挿入可能な領域を云う。
【0009】
さらに、演奏データ転送手段(24e)が、バッファが記憶する演奏データを読み出してカラオケ演奏手段に転送し、カラオケ演奏手段が、演奏データ転送手段によって転送された演奏データに基づいてカラオケ演奏を行う。
【0010】
従来のカラオケ装置においては、ガイドメロディの音色の種別を変更する旨の「変更データ」に対応するガイドメロディ設定情報については、図3(a)に例示するように、本来演奏データには含まれないため、これらのデータを含めて送信すると、図3(b)に例示するように、例えばノートオン信号などの他の信号を示すデータを送信するタイミングが遅れてしまうおそれがある。これに対して本発明によれば、図4に例示するように、ガイドメロディの音色の種別を変更する際にその音色の種別に対応するよう音響効果の各種設定を変更する場合には、バッファが一時的に記憶する演奏データからデータ挿入可能領域を検出し、その検出したデータ挿入可能領域へ変更データおよび設定データを挿入するので、例えばノートオン信号などの他の信号を示すデータを送信するタイミングを遅らせることなく、ガイドメロディの音色の種別を変更することができる。
【0011】
なお、演奏データについては、複数のMIDIトラックで構成されており、これら複数のMIDIトラックのうちの少なくとも一つはガイドメロディ用のトラックとして使用される。
【0012】
また、上述の変更データについては、(イ)例えば当該カラオケ装置が備える操作部(18)やリモコン端末(2)などから入力される場合や、(ロ)演奏データに含まれる場合が考えられる。このうち(イ)の場合には、上述の変更データ取得手段が、例えば当該カラオケ装置が備える操作部(18)やリモコン端末(2)などから入力されたガイドメロディの音色の種別を変更する旨のデータを上述の変更データとして取得することが考えられる。また、(ロ)の場合には、上述の変更データ取得手段が、バッファが一時的に記憶する演奏データから変更データを取得することが考えられる。
【0013】
また、上述のようにバッファが一時的に記憶する演奏データから変更データを取得する手法としては、(ハ)カラオケ演奏を行う予定の演奏データすべてを演奏データ記憶手段から取得してバッファへ一時的に記憶させ、そのバッファが記憶する演奏データから変更データを検出する手法や、(ニ)カラオケ演奏を行う予定の演奏データの取得中に、そのバッファが記憶する演奏データから変更データを検出する手法が考えられる。
【0014】
このうち、上述の(ハ)については、請求項2のように、変更データ取得手段が、演奏データ取得手段によって演奏データが演奏データ記憶手段から取得されてバッファへ記憶されたのちに、バッファに記憶された演奏データから変更データを検出することによって変更データを取得することが考えられる。
【0015】
このようにすれば、上述の(ニ)の場合に比べて、上述の変更データ検出処理の起動頻度を少なくでき、変更データ取得手段の処理負荷を小さくできる。また、予約曲に対して上述の処理を実行すれば、その予約曲よりも以前に予約された演奏曲の演奏中に上述の処理を行うこともできる。ただし、カラオケ演奏を行う予定の演奏データすべてをバッファへ一時的に記憶させるため、上述の(ニ)の場合に比べて、バッファの記憶領域の容量を大きくする必要がある。
【0016】
また、上述の(ニ)については、さらに具体的には、所定時間が経過するごとに変更データ検出処理を実行する手法が考えられる。すなわち、請求項3のように、変更データ取得手段が、所定時間が経過するごとにその間にバッファに記憶された演奏データから変更データを検出することによって変更データを取得することが考えられる。
【0017】
このようにすれば、バッファの記憶領域の容量を小さくすることができる。ただし、上述の変更データ検出処理の実行頻度が多くなり、変更データ取得手段の処理負荷が大きくなる。
【0018】
また、上述の「データ挿入可能領域」の検出手法としては、ガイドメロディのノートオフ信号とノートオン信号との間の領域をデータ挿入可能領域として検出する手法が挙げられる。しかし、このようなデータ挿入可能領域検出手法においては、例えばガイドメロディに和音が含まれていて複数のノートオン信号が同時に有効となる場合には、その和音を構成する音のノートオフ信号の一つを検出しても、和音を構成する他の音のノートオン信号が有効な状態が維持される。ここで、上述のような手法で検出されたデータ挿入可能領域へ変更データおよび設定データを挿入した場合には、その挿入した変更データおよび設定データによって有効なノートオン信号の音色および音響設定が変更される。このことによってそのガイドメロディの和音の音色および音響設定が演奏中に変更され、違和感を与えるおそれがある。
【0019】
そこで、データ更新手段が、演奏データのうちガイドメロディの有効なノートオン信号が存在しない領域をデータ挿入可能領域として検出することが考えられる(請求項4)。
このようにすれば、ガイドメロディの和音を構成する全ての音のノートオン信号が無効となってから音色や音響設定を変更するので、例えばガイドメロディに和音が含まれる場合であっても、その和音の音色および音響設定が演奏中に変更されて違和感を与えてしまうといったことを防ぐことができる。
【0020】
ところで、上述のように演奏データのデータ挿入可能領域へ変更データおよび設定データを挿入した場合には、演奏データを構成するガイドメロディ用のトラックを含んだ全てのトラックに含まれるノートオン信号の転送タイミングが遅延することがある。このような場合には、演奏データに基づくカラオケ演奏手段によるカラオケ演奏時に、そのノートオン信号に対応する音の立ち上がりが遅れ、音質に影響が生じるおそれがある。
【0021】
そこで、他のデータ挿入可能領域を検出して前記変更データおよび設定データの一部を挿入することが考えられる。具体的には、請求項5のように、データ更新手段が、データ挿入可能領域へ前記変更データおよび前記設定データを挿入した場合に前記演奏データに含まれるノートオン信号のうちその転送タイミングが遅れるノートオン信号が存在するか否かを判断する。転送タイミングが遅れるノートオン信号が存在する場合には、データ更新手段が、データ挿入可能領域以外の他のデータ挿入可能領域を演奏データから検出する。さらに、データ更新手段が、その検出した他のデータ挿入可能領域へ変更データおよび設定データの一部を挿入することによってバッファが記憶する演奏データを更新する。
【0022】
このように他のデータ挿入可能領域を検出して前記変更データおよび設定データの一部を挿入すれば、上述のようなデータ挿入可能領域への変更データなどの挿入時における演奏データに含まれるノートオン信号の転送タイミングの遅延を防ぐことができ、ノートオン信号の転送タイミングの遅延を原因とするカラオケ演奏の音質への影響を極力抑えることができる。
【0023】
また、上述のように演奏データのデータ挿入可能領域へ変更データおよび設定データを挿入した場合において演奏データに含まれるノートオン信号の転送タイミングが遅延するときには、その遅延するノートオン信号とその転送タイミングが重複するノートオン信号が存在することがある。このような場合にこれらノートオン信号の何れかの転送タイミングを遅延させると、演奏データに基づくカラオケ演奏手段によるカラオケ演奏時に、その遅延させたノートオン信号に対応する音の立ち上がりが遅れ、音質に影響が生じるおそれがある。
【0024】
そこで、ノートオン信号の転送タイミングを遅延させた場合に、その遅延させたノートオン信号とその転送タイミングが重複するノートンオン信号が存在する場合には、転送タイミングの遅延による影響が大きい方を優先することが考えられる。
【0025】
具体的には、請求項6のように、影響度対応テーブル記憶手段(24e)が、音色の種別と影響度情報とを対応付けた影響度対応テーブルを記憶する。ここで、影響度情報とは、ノートオン信号の転送タイミングが遅れた際の音の立ち上がりへの影響度を示す情報を云う。データ挿入可能領域へ変更データおよび設定データを挿入した場合に演奏データに含まれるノートオン信号のうちその転送タイミングが遅れる遅延ノートオン信号が存在する場合には、データ更新手段が、その遅延ノートオン信号とその転送タイミングが重複する重複ノートオン信号が存在するか否かを判断する。重複ノートオン信号が存在する場合には、データ更新手段が、影響度対応テーブル記憶手段が記憶する影響度対応テーブルを参照して、遅延ノートオン信号に対応する影響度情報、および重複ノートオン信号に対応する影響度情報を特定する。さらに、データ更新手段が、その特定した遅延ノートオン信号に対応する影響度情報、および重複ノートオン信号に対応する影響度情報に基づき、遅延ノートオン信号または重複ノートオン信号の何れが遅延による音の立ち上がりへの影響が大きい方を特定する。そして、データ更新手段が、その特定したノートオン信号を優先してデータ挿入可能領域へ挿入することよってバッファが記憶する演奏データを更新する。
【0026】
このように遅延ノートオン信号と重複ノートオン信号のうち遅延による音質への影響度が大きい方を優先してデータ挿入可能領域へ挿入すれば、ノートオン信号の転送タイミングの遅延を原因とするカラオケ演奏の音質への影響を極力抑えることができる。
【0027】
なお、請求項7に示すように、請求項1〜請求項6の何れかに記載のカラオケ装置における設定情報特定手段およびデータ更新手段は、コンピュータを機能させるプログラムとして実現できる。したがって、本発明は、プログラムの発明として実現できる。また、このようなプログラムの場合、例えば、FD、MO、DVD−ROM、CD−ROM、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータにロードして起動することにより用いることができる。この他、ROMやバックアップRAMをコンピュータ読み取り可能な記録媒体として本プログラムを記録しておき、ROMあるいはバックアップRAMをコンピュータに組み込んで用いても良い。
【発明を実施するための最良の形態】
【0028】
以下に本発明の実施形態を図面とともに説明する。
[第一実施形態]
図1は、カラオケシステムの全体構成を示すブロック図である。また、図2は、カラオケシステムの音声制御部の構成を示すブロック図である。また、図3は、MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、(a)は通常演奏時を示し、(b)はガイドメロディ変更時(単純置き換え時)を示す。また、図4は、MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、ガイドメロディ変更時(遅延解消手法その1)を示す。
【0029】
カラオケシステムは、図1に示すように、カラオケ装置1とリモコン端末2とがデータ通信可能に構成されたものである。
[カラオケ装置1の構成の説明]
カラオケ装置1は、カラオケ装置1全体の動作を制御する制御部12、カラオケ装置1をネットワーク100に接続するためのインタフェース部14、演奏楽曲の伴奏内容および歌詞を示す楽曲データや映像データなどを記憶するハードディスク(HDD)16、複数のキー・スイッチからなる操作部18、リモコン端末2からの赤外線信号を赤外線通信規格(IrDA)に従って受信するための赤外線通信部20、操作部18からの信号を処理する操作処理部22、ハードディスク16に記憶された楽曲データから演奏楽曲のオーディオ信号(音響や音声に関する信号)を生成し、生成されたオーディオ信号およびマイクロフォン26から入力されたオーディオ信号を増幅してスピーカ28へ出力する音声制御部24、制御部12によってHDD16から取得された楽曲データ(演奏データ)に基づきカラオケ演奏を行うMIDI音源30、映像情報を一時的に記憶するビデオRAM32、映像データに基づく映像の再生を制御する映像再生部34、ビデオRAM32に記憶された映像情報および映像再生部34により再生される映像の表示部36での表示を制御する映像制御部38などを備えている。また、制御部12と音声制御部24とはUSB40によって接続されている。また、制御部12は、後述する入力受付処理およびメイン処理の各処理を実行する。
【0030】
なお、制御部12は、演奏データ取得手段に該当する。また、HDD16は演奏データ記憶手段に該当する。また、MIDI音源30はカラオケ演奏手段に該当する。
[音声制御部24の構成の説明]
カラオケ装置1が備える音声制御部24は、図2に示すように、I/F24b、ROM24c、RAM24d、CPU24e、I/F24f、を備えている。なお、これらI/F24b、ROM24c、RAM24d、CPU24eおよびI/F24fについては、バス24aによって互いに接続されている。また、I/F24bはUSB40を介して制御部12に接続されている。また、I/F24fはMIDI音源30に接続されている。
【0031】
なお、本実施形態におけるMIDIデータの転送速度は、VOL設定についてはMIDI規格によって約1msecに設定されており、VIB設定についてはMIDI音源30の仕様によって約3msecに設定されている。
【0032】
また、RAM24dは、制御部12によってHDD16から取得された演奏データを一時的に記憶しておき、編集作業を行うためのワークエリア24g、ワークエリア24gにて編集された演奏データを一時的に記憶しておき、「シリアル送信割込」によって演奏データを順に読み出すためのバッファエリア24h、有効なノートンオン信号を記憶可能なノートオン信号エリア24iを備えている。なお、演奏データについては、複数のMIDIトラックa〜nで構成されており(図3参照)、これら複数のMIDIトラックa〜nのうちの少なくとも一つはガイドメロディ用のトラックとして使用される。
【0033】
なお、ノートオン信号エリア24iが同時に記憶可能な有効なノートンオン信号の個数については、MIDI音源30における同時発音数に対応して64個に設定されている。
CPU24eは、エフェクト出力テーブルを記憶する(図13参照)。このエフェクト出力テーブルとは、ガイドメロディの音色の種別(VOL設定MIDIコマンドやVIB設定MIDIコマンドなど)とガイドメロディに関する設定内容を示すガイドメロディ設定情報(VOL設定MIDIコマンドやVIB設定MIDIコマンドなどに対応するステップ値)とを対応付けたテーブルを云う。なお、エフェクト出力テーブルは、特許請求の範囲における「設定情報対応テーブル」に該当する。
【0034】
また、CPU24eは、音色立ち上がりテーブルを記憶する(図18(c)参照)。この音色立ち上がりテーブルとは、音色の種別と影響度情報とを対応付けたテーブルを云う。なお、影響度情報とは、ノートオン信号の転送タイミングが遅れた際の音の立ち上がりへの影響度を示す情報を云う。なお、音色立ち上がりテーブルは、特許請求の範囲における「影響度対応テーブル」に該当する。
【0035】
また、CPU24eは、カラオケ演奏を行う予定の演奏データすべてを制御部12によってHDD16から取得してワークエリア24gへ一時的に記憶させ、そのワークエリア24gが記憶する演奏データから変更データを検出する機能を有する。
【0036】
また、CPU24eは、後述するメイン処理、演奏処理、送信対象トラック出力処理、およびノートオフチェック・エフェクトテーブルセット処理の各処理を実行することにより、次のような機能を有する。すなわち、CPU24eは、変更データが取得された場合には、その変更データが指示するガイドメロディの音色の種別に対応するガイドメロディ設定情報を、エフェクト出力テーブルを参照して特定する。さらに、CPU24eは、ワークエリア24gに記憶された演奏データから「データ挿入可能領域」を検出し、その検出したデータ挿入可能領域へ変更データおよびガイドメロディ設定情報を示す「設定データ」を挿入することによってワークエリア24gが記憶する演奏データを更新する。なお、ここで「データ挿入可能領域」とは、演奏データのうち変更データやガイドメロディ設定情報を示す設定データを挿入可能な領域を云う(図4参照)。さらに、CPU24eは、ワークエリア24gが記憶する演奏データを読み出し、その読み出した演奏データをバッファエリア24hへ一時的に記憶しておき、「シリアル送信割込」によって演奏データをバッファエリア24hから順に読み出してMIDI音源30へI/F24fを介して転送する。なお、音声制御部24のCPU24eによって演奏データがMIDI音源30へ転送された場合には、MIDI音源30が、その演奏データに基づいてカラオケ演奏を行う。
【0037】
なお、ワークエリア24gはバッファに該当する。また、音声制御部24のCPU24eは、設定情報対応テーブル記憶手段、変更データ取得手段、設定情報特定手段、データ更新手段およびデータ転送手段に該当する。
【0038】
[リモコン端末2の構成の説明]
リモコン端末2は、リモコン端末2全体の動作を制御する制御部52、カラオケ装置1に赤外線信号を赤外線通信規格(IrDA)に従って送信する赤外線通信部54、各種情報を記憶するメモリ56、表示部58の表示領域に沿って設置されるタッチパネルおよび複数のキー・スイッチからなる操作部60、操作部60からの信号を処理する操作処理部62、映像情報を一時的に記憶するビデオRAM64、ビデオRAM64に記憶された映像情報の表示部58での表示を制御する映像制御部66、ネットワーク100に接続された無線アクセスポイント110との間で無線LAN規格(例えば、IEEE802.11a/b/g規格,HomeRF規格,Bluetooth規格など)に従った無線通信を行うための無線LAN通信部68、などを備えている。
【0039】
[カラオケ装置1の制御部12の入力受付処理]
以下に、カラオケ装置1の制御部12により実行される入力受付処理の処理手順を図6のフローチャートに基づいて説明する。この入力受付処理は、カラオケ装置1が起動している間に繰り返し実行される。
【0040】
まず、ステップS110では、利用者が予約したカラオケ演奏曲の選曲情報を記憶するための選曲テーブルを初期化する(図13(b)参照)。
続くS120では、利用者によって操作部18を介して選曲情報の入力があったか否かを判断する。操作部18を介して選曲情報の入力がなかった場合には(S120:No)、再び本S120を繰り返し実行することにより、利用者によって操作部18を介して選曲情報の入力があるまで待機する。一方、操作部18を介して選曲情報の入力があった場合には(S120:Yes)S130へ移行する。
【0041】
S130では、上述の選曲テーブルの記憶内容が一杯であるか否かを判断する。上述の選曲テーブルの記憶内容が一杯である場合には(S130:Yes)、演奏が終了するなどにより選曲テーブルの記憶内容に空きスペースが生じるまでは新たな選曲情報は記憶できないため、再びS120に戻ってS120以降の処理を繰り返し実行する。一方、上述の選曲テーブルの記憶内容が一杯であると判断した場合には(S130:No)、S140へ移行する。
【0042】
S140では、先のS120にて操作部18を介して入力された選曲情報を選曲テーブルに登録する。そして、S120へ移行する。
[カラオケ装置1の制御部12のメイン処理]
以下に、カラオケ装置1の制御部12により実行されるメイン処理の処理手順を図7のフローチャートに基づいて説明する。このメイン処理は、カラオケ装置1が起動している間に繰り返し実行される。また、本メイン処理と上述の入力受付処理とは、制御部12においてマルチタスク処理によって並行して非同期で実行される。
【0043】
まず、ステップS210では、各種初期化処理を実行する。一例を挙げると、操作部18を入力待ちにするといった具合である。
続くS220では、選曲待ちの際にBGMとして演奏するためのBGMデータを、HDD16から読み出して音声制御部24にUSB40を介して送信する。
【0044】
続くS230では、先のS220にて音声制御部24に対して送信したBGMデータを再生する旨の指示を音声制御部24に送信する。
続くS240では、上述の入力受付処理のS140において選曲テーブルに選曲情報の入力が行われたか否かを判断する。選曲テーブルに選曲情報の入力が行われた場合には(S240:Yes)、後述するS260へ移行する。一方、選曲テーブルに選曲情報の入力が行われてはいない場合には(S240:No)、S250へ移行する。
【0045】
S250では、音声制御部24によるBGMデータの演奏が終了しているか否かを判断する。音声制御部24によるBGMデータの演奏が終了していない場合には(S250:No)、S240に戻る。一方、音声制御部24によるBGMデータの演奏が終了している場合には(S250:Yes)、選曲待ちの間に次のBGMデータを音声制御部24に送信して演奏させるため、S220へ移行する。
【0046】
さて、先のS240において選曲テーブルに選曲情報の入力が行われた場合へ移行するS260では、選曲テーブルに入力された選曲情報に基づいて楽曲の演奏を行うため、BGMデータの演奏を中止する旨の指示を音声制御部24に送信する。
【0047】
続くS270では、選曲テーブルの記憶領域における先頭部分が空いている状態であるか否かを判断する。選曲テーブルの記憶領域における先頭部分が空いている状態である場合には(S270:Yes)、選曲待ちであると判断し、その間BGMデータの演奏を行うためにS220へ移行する。一方、選曲テーブルの記憶領域における先頭部分が空いておらず選曲情報が登録されている場合には(S270:No)、S280へ移行する。
【0048】
S280では、選曲テーブルの記憶領域における先頭部分に登録された選曲情報が曲番号であるのか否かを判断する。選曲テーブルの記憶領域における先頭部分に登録された選曲情報が曲番号ではない場合には(S280:No)、S270へ移行する。一方、選曲テーブルの記憶領域における先頭部分に登録された選曲情報が曲番号であると判断された場合には(S280:Yes)、S290へ移行する。
【0049】
S290では、選曲テーブルの記憶領域における先頭部分に登録された選曲情報である曲番号に該当する演奏データをHDD16から読み出して音声制御部24に送信する。
続くS300では、ガイドメロディの設定を変更するか否かを判断する。なお、ガイドメロディの設定を変更する旨の指示については、操作部18やリモコン端末、外部のホストコンピュータなどを介して入力される。ガイドメロディの設定を変更しないと判断した場合には(S300:No)、S310を処理せずにS320へ移行する。一方、ガイドメロディの設定を変更すると判断した場合には(S300:Yes)、ガイドメロディを変更する旨を音声制御部24に送信してS320へ移行する。
【0050】
S320では、先のS290にて音声制御部24に送信した演奏データの演奏を開始するため、その旨を示す指示を音声制御部24に送信する。
続くS330では、選曲テーブルの記憶領域における先頭部分を初期化して空いている状態として他の記憶内容を順次繰り上げる。
【0051】
続くS340では、音声制御部24による演奏データの演奏が終了しているか否かを判断する。音声制御部24による演奏データの演奏が終了していない場合には(S340:No)、本S340を繰り返し実行することによりその演奏データの演奏が終了するまで待機する。一方、音声制御部24による演奏データの演奏が終了している場合には(S340:Yes)、次の演奏データを音声制御部24に送信して演奏させるため、S270へ移行する。
【0052】
[カラオケ装置1の音声制御部24のメイン処理]
以下に、カラオケ装置1の音声制御部24により実行されるメイン処理の処理手順を図8のフローチャートに基づいて説明する。
【0053】
このメイン処理は、カラオケ装置1が起動している間に繰り返し実行される。
まず、ステップS610では、制御部12から演奏データが送信されているか否かを判断する。制御部12から演奏データが送信されていると判断した場合には(S610:Yes)その演奏データを受信する。そして、複数のトラックで構成されるMIDI形式の演奏データ(図3(a)参照)をMIDI転送バイト列(図4参照)に変換してRAM24dのワークエリア24gに格納する。
【0054】
一方、制御部12から演奏データが送信されていないと判断した場合には(S610:No)、S620へ移行する。
S620では、制御部12からガイドメロディを変更する旨の指示が送信されているか否かを判断する。制御部12からガイドメロディを変更する旨の指示が送信されていると判断した場合には(S620:Yes)、その指示を受信してRAM24dのワークエリア24gに格納する。一方、制御部12からガイドメロディを変更する旨の指示が送信されていないと判断した場合には(S620:No)、S630へ移行する。
【0055】
S630では、制御部12から演奏データの演奏を開始する旨の指示が送信されているか否かを判断する。制御部12から演奏データの演奏を開始する旨の指示が送信されていないと判断した場合には(S630:No)、S610へ移行する。一方、制御部12から演奏データの演奏を開始する旨の指示が送信されていると判断した場合には(S630:Yes)、S640へ移行する。
【0056】
S640では、演奏データの受信が完了しているか否かを判断する。演奏データの受信が完了していないと判断した場合には(S640:No)、S610へ移行する。一方、演奏データの受信が完了していると判断した場合には(S640:Yes)、後述する演奏処理を実行する(S650)。そして、演奏処理が終了したらその旨を示す情報を制御部12に送信し、先のS625にてRAM24dのワークエリア24gに格納したガイドメロディを変更する旨の指示を消去する。そして、S610へ移行して以下のステップを繰り返し実行する。
【0057】
[カラオケ装置1の音声制御部24の演奏処理]
以下に、カラオケ装置1の音声制御部24により実行される演奏処理の処理手順を図9のフローチャート、図3および図4に基づいて説明する。なお、図3は、MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、(a)は通常演奏時を示し、(b)はガイドメロディ変更時(単純置き換え時)を示す。また、図4は、MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、ガイドメロディ変更時(遅延解消手法その1)を示す。この演奏処理は、音声制御部24のメイン処理において、S650へ移行した際に実行される。
【0058】
まず、ステップS710では、テンポ値より1ステップ当たりの時間を算出する。
続くS715では、「演奏前一括展開処理」を実行する。ここで「演奏前一括展開処理」とは、演奏予定の演奏データすべてをRAM24dのワークエリア24gに一旦格納し、ガイドメロディの設定を変更する旨の指示に従って、格納した演奏データへガイドメロディの設定を変更する旨の各種データを挿入することで更新する処理である。なお、演奏前一括展開処理については後述する。
【0059】
続くS720では、音源の設定やボリューム値などの演奏に関するパラメータなどについて初期化処理を実行する。
続くS725では、現在のステップ値を数値「0」とし、エフェクト出力テーブルより出力データを決定し(S730)、その決定したデータを出力する(S740)。
【0060】
続くS745では、送信対象トラックを次のトラックに設定する。
続くS750では、全てのトラックを送信対象トラックとしたか否かを判断する。全てのトラックを送信対象トラックとはしていないと判断した場合には(S750:No)、S740へ移行して以下の処理を繰り返し実行する。一方、全てのトラックを送信対象トラックとしたと判断した場合には(S750:Yes)、S755へ移行する。
【0061】
S755では、現在のステップ値に数値「1」を加算する。
S760では、1ステップ分の時間待機する。そして、S765へ移行する。
S765では、制御部12から演奏データの演奏を中止する旨の指示が送信されているか否かを判断する。制御部12から演奏データの演奏を中止する旨の指示が送信されていると判断した場合には(S765:Yes)本処理を終了する。一方、制御部12から演奏データの演奏を中止する旨の指示が送信されていないと判断した場合には(S765:No)、S770へ移行する。
【0062】
S770では、全てのトラックについて各トラックの終端まで到達しているか否かを判断する。全てのトラックについて各トラックの終端まで到達していないと判断した場合には(S770:No)、S730へ移行して以下の処理を繰り返し実行する。一方、全てのトラックについて各トラックの終端まで到達していると判断した場合には(S770:Yes)、本処理を終了する。
【0063】
[カラオケ装置1の音声制御部24の演奏前一括展開処理]
以下に、カラオケ装置1の音声制御部24により実行される演奏前一括展開処理の処理手順を図10のフローチャートに基づいて説明する。この演奏前一括展開処理とは、上述のように、演奏予定の演奏データすべてをRAM24dのワークエリア24gに一旦格納し、ガイドメロディの設定を変更する旨の指示に従って、格納した演奏データへガイドメロディの設定を変更する旨の各種データを挿入することで更新する処理であり、上述の音声制御部24の演奏処理において、S715へ移行した際に実行される。
【0064】
まず、S1705では、各トラック先頭のアドレスを、各トラック別に「ポインタ変数(現在の読み込み位置)」に格納する。なお、上述のテンポ値とは、BPM(Beat Per Minute)で表される数値である。また、上述のポインタ変数とは、全トラックにおいて、各トラック先頭のアドレスをトラック毎の読み出し位置として設定するための変数を云う。
【0065】
続くS1710では、現在のステップ値をゼロとし、送信対象トラックを第1トラックに設定し(S1715)、送信対象トラックの出力処理を実行する(S1720)。なお、この「送信対象トラックの出力処理」については後述する。
【0066】
続くS1725では、送信対象トラックを次のトラックに設定する。
続くS1730では、全てのトラックを送信対象トラックとしたか否かを判断する。全てのトラックを送信対象トラックとはしていないと判断した場合には(S1730:No)、S1720へ移行して以下の処理を繰り返し実行する。一方、全てのトラックを送信対象トラックとしたと判断した場合には(S1730:Yes)、S1735へ移行する。
【0067】
S1735では、エフェクト出力テーブル(図13(a)参照)を参照して、現在のステップ値と同一の値を有するデータが存在するか否かを判断する。現在のステップ値と同一の値を有するデータが存在する場合には(S1735:Yes)、当該データを読み出してRAM24dのワークエリア24gに記憶させ(S1740)、S1745に移行する。一方、現在のステップ値と同一の値を有するデータが存在しない場合には(S1735:No)、そのままS1745に移行する。
【0068】
S1745では、現在のステップ値に数値「1」を加算する。
続くS1750では、1ステップ分の時間待機する。
続くS1755では、制御部12から演奏データの演奏を中止する旨の指示が送信されているか否かを判断する。制御部12から演奏データの演奏を中止する旨の指示が送信されていると判断した場合には(S1755:Yes)本処理を終了する。一方、制御部12から演奏データの演奏を中止する旨の指示が送信されていないと判断した場合には(S1755:No)、S1760へ移行する。
【0069】
S1760では、全てのトラックについて各トラックの終端まで到達しているか否かを判断する。全てのトラックについて各トラックの終端まで到達していないと判断した場合には(S1760:No)、S1715へ移行して以下の処理を繰り返し実行する。一方、全てのトラックについて各トラックの終端まで到達していると判断した場合には(S1760:Yes)、本処理を終了する。
【0070】
[カラオケ装置1の音声制御部24の送信対象トラック出力処理]
以下に、カラオケ装置1の音声制御部24により実行される送信対象トラック出力処理の処理手順を図11のフローチャートに基づいて説明する。この送信対象トラック出力処理は、上述の音声制御部24の演奏前一括展開処理において、S1720へ移行した際に実行される。
【0071】
まず、ステップS805では、送信対象トラックにおいて、演奏がトラックの終端まで到達しているか否かを判断する。演奏がトラックの終端まで到達していると判断した場合には(S805:Yes)本処理を終了する。一方、演奏がトラックの終端まで到達していないと判断した場合には(S805:No)、S810へ移行する。
【0072】
S810では、現在の読み込み位置のデータ(現在位置データ)のデルタタイムを数値「1」減算する。
続くS815では、現在位置データのデルタタイムが数値「0」であるか否かを判断する。現在位置データのデルタタイムが数値「0」ではないと判断した場合には(S815:No)、本処理を終了する。一方、現在位置データのデルタタイムが数値「0」であると判断した場合には(S815:Yes)、S820へ移行する。
【0073】
S820では、当該トラックの属性がガイドメロディであるか否かを判断する。当該トラックの属性がガイドメロディではないと判断した場合には(S820:No)、現在の読込位置のデータをRAM24dのワークエリア24gに記憶させ(S825)、後述するS885へ移行する。一方、当該トラックの属性がガイドメロディであると判断した場合には(S820:Yes)、S830へ移行する。
【0074】
S830では、当該トラックにおける音色の変遷を調査する「音色先読み処理」を実行する。
続くS835では、当該トラックにおける音色がビブラフォンであるか否かを判断する。当該トラックにおける音色がビブラフォンではないと判断した場合には(S835:No)、S825へ移行する。一方、当該トラックにおける音色がビブラフォンであると判断した場合には(S835:Yes)、S840へ移行する。
【0075】
S840では、読み込んだデータがノートオン信号を示すデータであるか否かを判断する。読み込んだデータがノートオン信号を示すデータであると判断した場合には(S840:Yes)、該当ノートオン信号を、RAM24dのノートオン信号エリア24iが記憶するノートオンテーブルに追加し(S845)、S825へ移行する。一方、読み込んだデータがノートオン信号を示すデータではないと判断した場合には(S840:No)、S850へ移行する。なお、ノートオンテーブルとは、現在有効なガイドメロディのノートオン信号を記録するテーブルを云い、RAM24dのノートオン信号エリア24iに保存されている。
【0076】
S850では、読み込んだデータが、音色MAPまたは音色BANKの何れか一方を示すデータであるか否かを判断する。読み込んだデータが音色MAPまたは音色BANKの何れか一方を示すデータであると判断した場合には(S850:Yes)、現在位置のデータのパラメータを、指定値に置換してRAM24dのワークエリア24gに記憶させ(S855)、後述するS885へ移行する。一方、読み込んだデータが音色MAPまたは音色BANKの何れか一方を示すデータではないと判断した場合には(S850:No)、S860へ移行する。
【0077】
S860では、読み込んだデータが音色設定に関するデータであるか否かを判断する。読み込んだデータが音色設定に関するデータではないと判断した場合には(S860:No)、後述するS870へ移行する。一方、読み込んだデータが音色設定に関するデータであると判断した場合には(S860:Yes)、S861へ移行する。
【0078】
S861では、現在位置のデータのパラメータを指定値に置換してRAM24dのワークエリア24gに記憶させる。
続く862では、先に置換したボリューム設定値を出力したか否かを判断する。先に置換したボリューム設定値を出力したと判断した場合には(S862:Yes)、後述するS864へ移行する。一方、先に置換したボリューム設定値を出力していないと判断した場合には(S862:No)、ボリューム設定値を新たに指定値に設定してRAM24dのワークエリア24gに記憶させ(S863)、S864へ移行する。
【0079】
S864では、先に置換したビブラート設定値を出力したか否かを判断する。先に置換したビブラート設定値を出力したと判断した場合には(S864:Yes)、後述するS885へ移行する。一方、先に置換したビブラート設定値を出力していないと判断した場合には(S864:No)、ビブラート設定値を新たに指定値に設定してRAM24dのワークエリア24gに記憶させ(S865)、音色を変更した旨を内蔵するRAM等に記憶し(S866)、後述するS885へ移行する。
【0080】
さて、S870では、読み込んだデータがボリューム設定値またはビブラート設定値の何れか一方であるか否かを判断する。読み込んだデータがボリューム設定値またはビブラート設定値の何れか一方ではないと判断した場合には(S870:No)、読み込んだデータがノートオフ信号を示すデータであるか否かを判断する(S876)。読み込んだデータがノートオフ信号を示すデータであると判断した場合には(S876:Yes)、後述するノートオフチェック・エフェクトテーブルセット処理を実行し(S878)、後述するS880へ移行する。そして、現在のデータをRAM24dのワークエリア24gにそのまま記憶させ(S880)、後述するS885に移行する。一方、読み込んだデータがノートオフ信号を示すデータではないと判断した場合には(S876:No)、後述するノートオフチェック・エフェクトテーブルセット処理を実行せずにそのままS880へ移行し、現在のデータをRAM24dのワークエリア24gにそのまま記憶させる。そして、後述するS885に移行する。
【0081】
ところで、先のS870にて、読み込んだデータがボリューム設定値またはビブラート設定値の何れか一方であると判断した場合には(S870:Yes)、現在位置のデータのパラメータを、指定値に置換してRAM24dのワークエリア24gに記憶させ(S855)、該当する設定が置換済みである旨をRAM24dのワークエリア24gに記憶させる(S874)。そしてS885へ移行する。
【0082】
また、S885では、データを読み込む位置を1ステップ分進行させる。そしてS815へ移行して以下の処理を繰り返し実行する。
[カラオケ装置1の音声制御部24のノートオフチェック・エフェクトテーブルセット処理]
以下に、カラオケ装置1の音声制御部24により実行されるノートオフチェック・エフェクトテーブルセット処理の処理手順を図12のフローチャートに基づいて説明する。このノートオフチェック・エフェクトテーブルセット処理は、音声制御部24が実行する送信対象トラック出力処理において、S878へ移行した際に実行される。
【0083】
まず、ステップS1802では、該当トラックのノートオン信号と同一の信号が、RAM24dのノートオン信号エリア24iが記憶するノートオン信号テーブルに存在するか否かを判断する。該当トラックのノートオン信号と同一の信号がノートオン信号テーブルに存在する場合には(S1802:Yes)、そのまま本処理を終了する。一方、該当トラックのノートオン信号と同一の信号がノートオン信号テーブルに存在しない場合には(S1802:No)、S1804に移行する。
【0084】
S1804では、次のノートオン信号を検出するまで現在のトラックを検索する。
続くS1806では、先のS1804にてノートオン信号を検出するまでの間に、該当トラックにおいてビブラフォンへの音色の変更があったか否かを判断する。該当トラックにおいてビブラフォンへの音色の変更がなかった場合には(S1806:No)、そのまま本処理を終了する。一方、該当トラックにおいてビブラフォンへの音色の変更があった場合には(S1802:Yes)、S1808に移行する。
【0085】
S1808では、仮想ステップ値に現在のステップ値を設定する。
続くS1810では、エフェクト出力テーブル(図13(a)参照)のすべてのステップ値エリアを、未セット状態に初期化する。
【0086】
続くS1812では、仮想ステップ値に数値「1」を加算する。
続くS1814では、ガイドメロディのトラックにノートオン信号が出現したか否かを判断する。ガイドメロディのトラックにノートオン信号が出現していない場合には(S1814:No)、全てのトラックにおいてMIDIコマンド処理が存在しないか否かを判断する(S1816)。全てのトラックにおいてMIDIコマンド処理が存在する場合には(S1816:No)、S1812に戻ってS1812以下の処理を繰り返し実行し、全てのトラックにおいてMIDIコマンド処理が存在しない場合には(S1816:Yes)、エフェクト出力テーブルの最も上の未セットデータに仮想ステップ値を設定し(S1818)、S1812に戻ってS1812以下の処理を繰り返し実行する。
【0087】
一方、ガイドメロディのトラックにノートオン信号が出現している場合には(S1814:Yes)、エフェクト出力テーブルの全てのデータにステップ値が設定されたか否かを判断する(S1820)。エフェクト出力テーブルの全てのデータにステップ値が設定されている場合には(S1820:Yes)そのまま本処理を終了し、エフェクト出力テーブルの全てのデータにステップ値が設定されていない場合には(S1820:No)、S1822に移行する。
【0088】
S1822では、仮想ステップ値に現在のステップ値を設定する。
続くS1824では、エフェクト出力テーブルの全ステップ値エリアを、未セット状態に初期化する。
【0089】
続くS1826では、仮想ステップ値に数値「1」を加算する。
続くS1828では、ガイドメロディのトラックにノートオン信号が出現したか否かを判断する。ガイドメロディのトラックにノートオン信号が出現していない場合には(S1828:No)、遅延音色トラック以外の全てのトラックにおいてMIDIコマンド処理が存在しないか否かを判断する(S1830)。遅延音色トラック以外の全てのトラックにおいてMIDIコマンド処理が存在する場合には(S1830:No)、S1826に戻ってS1826以下の処理を繰り返し実行し、遅延音色トラック以外の全てのトラックにおいてMIDIコマンド処理が存在しない場合には(S1830:Yes)、遅延音色トラックのMIDIコマンドを1ステップ遅らせ(S1832)、続いてエフェクト出力テーブルの最も上の未セットデータに仮想ステップ値を設定し(S1834)、S1826に戻ってS1826以下の処理を繰り返し実行する。
【0090】
一方、ガイドメロディのトラックにノートオン信号が出現している場合には(S1828:Yes)、エフェクト出力テーブルの全てのデータにステップ値が設定されたか否かを判断する(S1836)。エフェクト出力テーブルの全てのデータにステップ値が設定されている場合には(S1836:Yes)そのまま本処理を終了し、エフェクト出力テーブルの全てのデータにステップ値が設定されていない場合には(S1836:No)、エフェクト出力テーブルの最も上の未セットデータから順に、直前のデータのステップ値に数値「1」を加算した値を設定する(S1838)。そして、本処理を終了する。
【0091】
[効果]
(1)このように第一実施形態のカラオケ装置1によれば、次のような効果を奏する。すなわち、従来のカラオケ装置においては、ガイドメロディの音色の種別を変更する旨の「変更データ」に対応するガイドメロディ設定情報については、本来演奏データには含まれないため(図3(a)参照)、これらのデータを含めて音声制御部24がMIDI音源30へMIDIデータを送信すると、例えばノートオン信号などの他の信号を示すデータを送信するタイミングが遅れてしまうおそれがある(図3(b)参照)。これに対して本実施形態のカラオケ装置1によれば、CPU24eが、メイン処理、演奏処理、送信対象トラック出力処理、およびノートオフチェック・エフェクトテーブルセット処理の各処理を実行することにより、ガイドメロディの音色の種別を変更する際にその音色の種別に対応するよう音響効果の各種設定を変更する場合には、音声制御部24のワークエリア24gが一時的に記憶する演奏データから「データ挿入可能領域」を検出し、その検出したデータ挿入可能領域へ変更データおよび設定データを挿入するので(図4参照)、例えばノートオン信号などの他の信号を示すデータを送信するタイミングを遅らせることなく、ガイドメロディの音色の種別を変更することができる。
【0092】
(2)また、第一実施形態のカラオケ装置1によれば、CPU24eが、「演奏処理」のサブルーチンである「演奏前一括展開処理」を実行することによって、カラオケ演奏を行う予定の演奏データすべてを制御部12によってHDD16から取得してワークエリア24gへ一時的に記憶させ、そのワークエリア24gが記憶する演奏データから変更データを検出する。このことにより、上述の変更データ検出処理の起動頻度を少なくでき、CPU24eにおける変更データ取得処理に関する部分の処理負荷を小さくできる。また、予約曲に対して上述の処理を実行すれば、その予約曲よりも以前に予約された演奏曲の演奏中に上述の処理を行うこともできる。ただし、カラオケ演奏を行う予定の演奏データすべてをワークエリア24gへ一時的に記憶させるため、ワークエリア24gの記憶領域の容量を大きくする必要がある。
【0093】
(3)また、第一実施形態のカラオケ装置1によれば、CPU24eが、「演奏処理」のサブルーチンである「ノートオフチェック・エフェクトテーブルセット処理」を実行することによって、演奏データのうちガイドメロディの有効なノートオン信号が存在しない領域を「データ挿入可能領域」として検出する。このことにより、ガイドメロディの和音を構成する全ての音のノートオン信号が無効となってから音色や音響設定を変更するので、例えばガイドメロディに和音が含まれる場合であっても、その和音の音色および音響設定が演奏中に変更されて違和感を与えてしまうといったことを防ぐことができる。
【0094】
(4)また、第一実施形態のカラオケ装置1によれば、CPU24eが、「演奏処理」のサブルーチンである「ノートオフチェック・エフェクトテーブルセット処理」を実行することによって、データ挿入可能領域へ変更データおよび設定データを挿入した場合に演奏データに含まれるノートオン信号のうちその転送タイミングが遅れるノートオン信号が存在する場合には、データ挿入可能領域以外の他のデータ挿入可能領域を演奏データから検出し、その検出した他のデータ挿入可能領域へ変更データおよび設定データの一部を挿入することによってワークエリア24gが記憶する演奏データを更新する。このように他のデータ挿入可能領域を検出して変更データおよび設定データの一部を挿入すれば、上述のようなデータ挿入可能領域への変更データなどの挿入時における演奏データに含まれるノートオン信号の転送タイミングの遅延を防ぐことができ、ノートオン信号の転送タイミングの遅延を原因とするカラオケ演奏の音質への影響を極力抑えることができる。
[第ニ実施形態]
上記第一実施形態では、CPU24eが、演奏処理のサブルーチンである「演奏前一括展開処理」を実行することによって、カラオケ演奏を行う予定の演奏データすべてをHDD16から取得してRAM24dのワークエリア24gへ一時的に記憶させ、そのワークエリア24gが記憶する演奏データから変更データを検出するが、これに対して第二実施形態では、CPU24eが、「演奏前一括展開処理」の代わりに「「演奏中逐次一括処理」(図14参照)を実行することによって、カラオケ演奏を行う予定の演奏データをHDD16から取得してRAM24dのワークエリア24gへ一時的に記憶させている途中に、そのワークエリア24gが記憶する演奏データから変更データを検出する。
【0095】
[カラオケ装置1の音声制御部24の演奏中逐次一括処理]
以下に、カラオケ装置1の音声制御部24により実行される演奏中逐次一括処理の処理手順を図14のフローチャートを参照して説明する。
【0096】
この演奏中逐次一括処理は、上述の音声制御部24の演奏処理において、S715へ移行した際に実行される。
まず、S910では、テンポ値より1ステップ当たりの時間を算出する。
【0097】
続くS915では、各トラック先頭のアドレスを、各トラック別に「ポインタ変数(現在の読み込み位置)」に格納する。
続くS920では、音源の設定やボリューム値などの演奏に関するパラメータなどについて初期化処理を実行する。
【0098】
続くS925では、現在のステップ値をゼロとし、送信対象トラックを第1トラックに設定し(S935)、送信対象トラックの出力処理を実行する(S940)。なお、この「送信対象トラックの出力処理」については、既に説明したのでここでは詳細な説明は省略する。
【0099】
続く945では、送信対象トラックを次のトラックに設定する。
続くS950では、全てのトラックを送信対象トラックとしたか否かを判断する。全てのトラックを送信対象トラックとはしていないと判断した場合には(S950:No)、S940へ移行して以下の処理を繰り返し実行する。一方、全てのトラックを送信対象トラックとしたと判断した場合には(S950:Yes)、S952へ移行する。
【0100】
S952では、エフェクト出力テーブル(図13(a)参照)を参照して、現在のステップ値と同一の値を有するデータが存在するか否かを判断する。現在のステップ値と同一の値を有するデータが存在する場合には(S952:Yes)、当該データを読み出してRAM24dのワークエリア24gに記憶させ(S954)、S955に移行する。一方、現在のステップ値と同一の値を有するデータが存在しない場合には(S954:No)、そのままS955に移行する。
【0101】
S955では、現在のステップ値に数値「1」を加算する。
続くS960では、1ステップ分の時間待機する。
続くS965は、制御部12から演奏データの演奏を中止する旨の指示が送信されているか否かを判断する。制御部12から演奏データの演奏を中止する旨の指示が送信されていると判断した場合には(S965:Yes)本処理を終了する。一方、制御部12から演奏データの演奏を中止する旨の指示が送信されていないと判断した場合には(S965:No)、S970へ移行する。
【0102】
S970では、全てのトラックについて各トラックの終端まで到達しているか否かを判断する。全てのトラックについて各トラックの終端まで到達していないと判断した場合には(S970:No)、S935へ移行して以下の処理を繰り返し実行する。一方、全てのトラックについて各トラックの終端まで到達していると判断した場合には(S970:Yes)、本処理を終了する。
【0103】
[効果]
このように第ニ実施形態によれば、CPU24eが、「演奏処理」のサブルーチンである「演奏中逐次一括処理」を実行することによって、カラオケ演奏を行う予定の演奏データをHDD16から取得してRAM24dのワークエリア24gへ一時的に記憶させている途中に、そのワークエリア24gが記憶する演奏データから変更データを検出する。このようにすれば、RAM24dのワークエリア24gの記憶領域の容量を小さくすることができる。ただし、変更データ検出処理の実行頻度が多くなり、上述のCPU24eにおける変更データ取得処理実行領域の処理負荷が大きくなる。
[第三実施形態]
第三実施形態では、CPU24eが、「演奏前一括展開処理」の代わりに「「演奏中逐次逐次処理」(図15参照)を実行することによって、ノートオン信号の転送タイミングを遅延させた場合に、その遅延させたノートオン信号とその転送タイミングが重複するノートンオン信号が存在する場合には、転送タイミングの遅延による影響が大きい方を優先するようにしている。
【0104】
[カラオケ装置1の音声制御部24の演奏中逐次逐次処理]
以下に、カラオケ装置1の音声制御部24により実行される演奏中逐次一括処理の処理手順を図14のフローチャートおよび図5を参照して説明する。なお、図5は、MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、ガイドメロディ変更時(遅延解消手法その2)を示す。
【0105】
この演奏中逐次逐次処理は、上述の音声制御部24の演奏処理において、S715へ移行した際に実行される。
まず、S1002では、テンポ値より1ステップ当たりの時間を算出する。
【0106】
続くS1004では、各トラック先頭のアドレスを、各トラック別に「ポインタ変数(現在の読み込み位置)」に格納する。
続くS1006では、音源の設定やボリューム値などの演奏に関するパラメータなどについて初期化処理を実行する。
【0107】
続くS1008では、現在のステップ値をゼロとする。
続くS1010では、エフェクトセットフラグ(図18(a)参照)を非セット状態に設定する。なお、エフェクトセットフラグについては、RAM24dのノートオン信号エリア24iに保存されている。
【0108】
続くS1012では、エフェクトセットフラグがセット状態であるか否かを判断する。
エフェクトセットフラグがセット状態ではない場合には(S1012:No)、S1026に移行する。一方、エフェクトセットフラグがセット状態である場合には(S1012:Yes)、S1014に移行する。
【0109】
S1014では、全てのトラックにおいてMIDIコマンド処理が存在しないか否かを判断する。全てのトラックにおいてMIDIコマンド処理が存在する場合には(S1014:No)、S1020に移行する。一方、全てのトラックにおいてMIDIコマンド処理が存在しない場合には(S1014:Yes)、S1015に移行する。
【0110】
S1015では、音色立ち上がりテーブル(図18(c)参照)を参照して全てのトラックの中に含まれる音色遅延トラックを特定する。
続くS1016では、遅延音色トラック以外の全てのトラックにおいてMIDIコマンド処理が存在しないか否かを判断する。遅延音色トラック以外の全てのトラックにおいてMIDIコマンド処理が存在しない場合には(S1016:Yes)、S1026に移行する。一方、遅延音色トラック以外の全てのトラックにおいてMIDIコマンド処理が存在する場合には(S1016:No)、遅延音色トラックのMIDIコマンドを1ステップ遅らせ(S1018)、S1020に移行する。
【0111】
S1020では、未送出のエフェクト出力データを1データ分出力し、送出済みとする。
続くS1022では、エフェクト出力データをすべて出力したか否かを判断する。エフェクト出力データをすべて出力していない場合には(S1022:No)、そのままS1026に移行する。一方、エフェクト出力データをすべて出力した場合には(S1022:Yes)、エフェクトフラグを非セット状態に設定し(S1024)、S1026に移行する。
【0112】
S1026では、送信対象トラックを第1トラックに設定する。
続くS1028では、送信対象トラックの出力処理(2)を実行する。なお、この「送信対象トラックの出力処理(2)」については、上述の「送信対象トラックの出力処理(1)」において、S878にて「ノートオフチェック・エフェクトテーブルセット処理」を実行する代わりにノートオフチェック処理(S879)を実行する点のみが異なっている(図16参照)。ノートオフチェック処理については後述する。
【0113】
続く1030では、送信対象トラックを次のトラックに設定する。
続くS1032では、全てのトラックを送信対象トラックとしたか否かを判断する。全てのトラックを送信対象トラックとはしていないと判断した場合には(S1032:No)、S1028へ移行して以下の処理を繰り返し実行する。一方、全てのトラックを送信対象トラックとしたと判断した場合には(S1032:Yes)、S1034へ移行する。
【0114】
S1034では、現在のステップ値に数値「1」を加算する。
続くS1036では、1ステップ分の時間待機する。
続くS1038は、制御部12から演奏データの演奏を中止する旨の指示が送信されているか否かを判断する。制御部12から演奏データの演奏を中止する旨の指示が送信されていると判断した場合には(S1038:Yes)本処理を終了する。一方、制御部12から演奏データの演奏を中止する旨の指示が送信されていないと判断した場合には(S1038:No)、S1040へ移行する。
【0115】
S1040では、全てのトラックについて各トラックの終端まで到達しているか否かを判断する。全てのトラックについて各トラックの終端まで到達していないと判断した場合には(S1040:No)、S935へ移行して以下の処理を繰り返し実行する。一方、全てのトラックについて各トラックの終端まで到達していると判断した場合には(S1040:Yes)、本処理を終了する。
【0116】
[カラオケ装置1の音声制御部24のノートオフチェック処理]
以下に、カラオケ装置1の音声制御部24により実行されるノートオフチェック処理の処理手順を図17のフローチャートに基づいて説明する。このノートオフチェック処理は、音声制御部24が実行する送信対象トラック出力処理(2)において、S879へ移行した際に実行される。
【0117】
まず、ステップS1110では、該当トラックのノートオン信号と同一の信号が、RAM24dのノートオン信号エリア24iが記憶するノートオン信号テーブルに存在するか否かを判断する。該当トラックのノートオン信号と同一の信号がノートオン信号テーブルに存在する場合には(S1110:Yes)、そのまま本処理を終了する。一方、該当トラックのノートオン信号と同一の信号がノートオン信号テーブルに存在しない場合には(S1110:No)、S1120に移行する。
【0118】
S1120では、次のノートオン信号を検出するまで現在のトラックを検索する。
続くS1130では、先のS1120にてノートオン信号を検出するまでの間に、該当トラックにおいてビブラフォンへの音色の変更があったか否かを判断する。該当トラックにおいてビブラフォンへの音色の変更がなかった場合には(S1130:No)、そのまま本処理を終了する。一方、該当トラックにおいてビブラフォンへの音色の変更があった場合には(S1130:Yes)、S1140に移行する。
【0119】
S1140では、エフェクトセットフラグをセット状態に設定する。
続くS1150では、エフェクト出力テーブルのすべてのステップ値エリアを未セット状態に初期化する(図18(b)参照)。そして、本処理を終了する。
【0120】
[効果]
このように第三実施形態によれば、CPU24eが、「演奏処理」のサブルーチンである「ノートオフチェック処理」を実行することによって、遅延ノートオン信号と重複ノートオン信号のうち遅延による音質への影響度が大きい方を優先してデータ挿入可能領域へ挿入するので(図5参照)、ノートオン信号の転送タイミングの遅延を原因とするカラオケ演奏の音質への影響を極力抑えることができる。
[他の実施形態]
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、以下のような様々な態様にて実施することが可能である。
【0121】
(1)上記第一実施形態では、CPU24eが、「演奏処理」のサブルーチンである「演奏前一括展開処理」を実行することによって、カラオケ演奏を行う予定の演奏データを制御部12によってHDD16から取得してワークエリア24gへ一時的に記憶させ、そのワークエリア24gが記憶する演奏データから変更データを検出するが、これには限られず、例えばカラオケ装置1が備える操作部18やリモコン端末2などから入力された変更データを取得するようにしてもよい。
【0122】
(2)上記実施形態では、演奏データのうちガイドメロディの有効なノートオン信号が存在しない領域を「データ挿入可能領域」として検出しているが、これには限られず、ガイドメロディのノートオフ信号とノートオン信号との間の領域を「データ挿入可能領域」として検出してもよい。
【図面の簡単な説明】
【0123】
【図1】カラオケシステムの全体構成を示すブロック図である。
【図2】カラオケシステムの音声制御部の構成を示すブロック図である。
【図3】MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、(a)は通常演奏時を示し、(b)はガイドメロディ変更時(単純置き換え時)を示す。
【図4】MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、ガイドメロディ変更時(遅延解消手法その1)を示す。
【図5】MIDIデータを構成する各トラックおよびMIDIデータ列を示す説明図であり、ガイドメロディ変更時(遅延解消手法その2)を示す。
【図6】カラオケ装置の制御部が実行する入力受付処理を示すフローチャートである。
【図7】カラオケ装置の制御部が実行するメイン処理を示すフローチャートである。
【図8】カラオケ装置の音声制御部が実行するメイン処理を示すフローチャートである。
【図9】カラオケ装置の音声制御部が実行する演奏処理を示すフローチャートである。
【図10】カラオケ装置の音声制御部が実行する演奏前一括展開処理を示すフローチャートである。
【図11】カラオケ装置の音声制御部が実行する送信対象トラック出力処理(1)を示すフローチャートである。
【図12】カラオケ装置の音声制御部が実行するノートオフチェックおよびエフェクトテーブルセット処理を示すフローチャートである。
【図13】(a)はエフェクト出力テーブルを示す説明図であり、(b)は選曲テーブルを示す説明図である。
【図14】カラオケ装置の音声制御部が実行する演奏処理(演奏中逐次一括処理)を示すフローチャートである。
【図15】カラオケ装置の音声制御部が実行する演奏処理(演奏中逐次逐次処理)を示すフローチャートである。
【図16】カラオケ装置の音声制御部が実行する送信対象トラック出力処理(2)を示すフローチャートである。
【図17】カラオケ装置の音声制御部が実行するノートオフチェック処理を示すフローチャートである。
【図18】(a)はエフェクトセットフラグを示す説明図であり、(b)はエフェクト出力テーブルを示す説明図であり、(c)は音色立ち上がりテーブルを示す説明図である。
【符号の説明】
【0124】
1…カラオケ装置、2…リモコン端末、12…制御部、14…インタフェース部、16…ハードディスク(HDD)、18…操作部、20…赤外線通信部、22…操作処理部、24…音声制御部、24a…バス、24b,24f…I/F、24c…ROM、24d…RAM、24e…CPU、24g…ワークエリア、24h…バッファエリア、24i…ノートオン信号エリア、26…マイクロフォン、28…スピーカ、30…MIDI音源、32,64…ビデオRAM、34…映像再生部、36…表示部、38…映像制御部、52…制御部、54…赤外線通信部、56…メモリ、58…表示部、60…操作部、62…操作処理部、66…映像制御部、68…無線LAN通信部、100…ネットワーク、110…無線アクセスポイント

【特許請求の範囲】
【請求項1】
音色が指定されたガイドメロディを含み、MIDIデータの形式で作成された演奏データを記憶する演奏データ記憶手段と、
前記演奏データを前記演奏データ記憶手段から取得可能な演奏データ取得手段と、
前記演奏データ取得手段によって取得された演奏データに基づいてカラオケ演奏を行うカラオケ演奏手段と、
を備えるカラオケ装置であって、
前記演奏データ取得手段によって取得された演奏データを一時的に記憶可能なバッファと、
前記ガイドメロディの音色の種別と前記ガイドメロディに関する設定内容を示すガイドメロディ設定情報とを対応付けた設定情報対応テーブルを記憶する設定情報対応テーブル記憶手段と、
前記ガイドメロディの音色の種別を変更する旨の変更データを取得可能な変更データ取得手段と、
前記変更データ取得手段によって変更データが取得された場合に、その変更データが指示するガイドメロディの音色の種別に対応するガイドメロディ設定情報を、前記設定情報対応テーブル記憶手段が記憶する前記設定情報対応テーブルを参照して特定する設定情報特定手段と、
前記変更データ取得手段によって変更データが取得された場合に、前記バッファに記憶された演奏データから前記変更データおよび前記ガイドメロディ設定情報を示す設定データを挿入可能な領域を検出し、その検出したデータ挿入可能領域へ前記変更データおよび前記設定情報特定手段によって特定された設定データを挿入することによって前記バッファが記憶する演奏データを更新するデータ更新手段と、
前記バッファが記憶する演奏データを読み出して前記カラオケ演奏手段に転送する演奏データ転送手段と、
を備え、
前記カラオケ演奏手段は、前記演奏データ転送手段によって転送された演奏データに基づいてカラオケ演奏を行うこと
を特徴とするカラオケ装置。
【請求項2】
請求項1に記載のカラオケ装置において、
前記変更データ取得手段は、前記演奏データ取得手段によって前記演奏データが前記演奏データ記憶手段から取得されて前記バッファへ記憶されたのちに、前記バッファに記憶された前記演奏データから前記変更データを検出することによって前記変更データを取得することを特徴とするカラオケ装置。
【請求項3】
請求項1または請求項2に記載のカラオケ装置において、
前記変更データ取得手段は、所定時間が経過するごとにその間に前記バッファに記憶された演奏データから前記変更データを検出することによって前記変更データを取得することを特徴とするカラオケ装置。
【請求項4】
請求項1〜請求項3の何れかに記載のカラオケ装置において、
前記データ更新手段は、前記演奏データのうち、前記ガイドメロディにおいて有効なノートオン信号が存在しない領域を前記データ挿入可能領域として検出することを特徴とするカラオケ装置。
【請求項5】
請求項1〜請求項4の何れかに記載のカラオケ装置において、
前記データ更新手段は、
前記データ挿入可能領域へ前記変更データおよび前記設定データを挿入した場合に前記演奏データに含まれるノートオン信号のうちその転送タイミングが遅れるノートオン信号が存在するか否かを判断し、存在する場合には前記データ挿入可能領域以外の他のデータ挿入可能領域を前記演奏データから検出し、その検出した前記他のデータ挿入可能領域へ前記変更データおよび前記設定データの一部を挿入することによって前記バッファが記憶する演奏データを更新すること
を特徴とするカラオケ装置。
【請求項6】
請求項1〜請求項5の何れかに記載のカラオケ装置において、
前記音色の種別とノートオン信号の転送タイミングが遅れた際の音の立ち上がりへの影響度を示す影響度情報とを対応付けた影響度対応テーブルを記憶する影響度対応テーブル記憶手段を備え、
前記データ更新手段は、
前記データ挿入可能領域へ前記変更データおよび前記設定データを挿入した場合に前記演奏データに含まれるノートオン信号のうちその転送タイミングが遅れる遅延ノートオン信号が存在する場合には前記遅延ノートオン信号とその転送タイミングが重複する重複ノートオン信号が存在するか否かを判断し、存在する場合には前記影響度対応テーブル記憶手段が記憶する前記影響度対応テーブルを参照して前記遅延ノートオン信号に対応する影響度情報および前記重複ノートオン信号に対応する影響度情報を特定し、その特定した前記遅延ノートオン信号に対応する影響度情報および前記重複ノートオン信号に対応する影響度情報に基づいて前記遅延ノートオン信号または前記重複ノートオン信号の何れが遅延による音の立ち上がりへの影響が大きい方を特定し、その特定したノートオン信号を優先して前記データ挿入可能領域へ挿入することよって前記バッファが記憶する演奏データを更新すること
を特徴とするカラオケ装置。
【請求項7】
請求項1〜請求項6の何れかに記載のカラオケ装置における設定情報特定手段およびデータ更新手段としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−270351(P2006−270351A)
【公開日】平成18年10月5日(2006.10.5)
【国際特許分類】
【出願番号】特願2005−83734(P2005−83734)
【出願日】平成17年3月23日(2005.3.23)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】