JP2009048207A - カラオケ装置 - Google Patents

カラオケ装置 Download PDF

Info

Publication number
JP2009048207A
JP2009048207A JP2008265782A JP2008265782A JP2009048207A JP 2009048207 A JP2009048207 A JP 2009048207A JP 2008265782 A JP2008265782 A JP 2008265782A JP 2008265782 A JP2008265782 A JP 2008265782A JP 2009048207 A JP2009048207 A JP 2009048207A
Authority
JP
Japan
Prior art keywords
task
sequencer
priority
sub
main
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.)
Granted
Application number
JP2008265782A
Other languages
English (en)
Other versions
JP4720893B2 (ja
Inventor
Yukio Tada
幸生 多田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2008265782A priority Critical patent/JP4720893B2/ja
Publication of JP2009048207A publication Critical patent/JP2009048207A/ja
Application granted granted Critical
Publication of JP4720893B2 publication Critical patent/JP4720893B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】マルチタスク処理を行うカラオケ装置において、利用者に違和感を与えない処理を行う。
【解決手段】メインシーケンサタスクの優先度はサブシーケンサタスクの優先度よりも高いので、メインシーケンサタスクが実行状態であるときに、サブシーケンサタスクが実行可能状態に遷移しても、処理は中断されず、メインシーケンサタスクが終了してからサブシーケンサタスクが実行状態になる。そして、サブシーケンサタスクが実行状態であっても、優先度の高いメインシーケンサタスクが実行可能状態となった場合には、サブシーケンサタスクを中断して待ち状態とし、先にメインシーケンサタスクを実行状態とするので、メインシーケンサタスクは曲データが指示するタイミング通りに実行されることになる。
【選択図】図8

Description

この発明は、複数の楽曲演奏をマルチタスク処理で行うカラオケ装置に関する。
従来より、カラオケ演奏処理をコンピュータによって制御するカラオケ装置が知られている。例えば、MIDI(Musical Instrument Digital Interface)規格に基づいて作成されたの曲データに基づいて楽曲を演奏するカラオケ装置が広く知られている。このようなコンピュータによって制御を行うカラオケ装置においては、複数の処理を並行して行う、いわゆるマルチタスク処理が行われている。例えば、曲データに基づいて楽曲を演奏する処理と、ディスプレイに歌詞を表示して曲の進行に伴って色替えをする処理を同時に行う。また、楽曲演奏と歌詞表示とを同時に行う通常のカラオケ演奏とあわせて、次に演奏すべき曲を確認するための演奏を行う場合にも、複数の演奏処理が同時に行われている。
ところで、このようなマルチタスク処理を一つのCPUで行う場合には、複数に時分割して行うので、ある処理が非常に重い場合には、他の処理がどんどん遅れていくという不都合が生じることがある。例えば、通常のカラオケ演奏と次曲を確認する演奏とを同時に行う場合に、次曲確認演奏の処理が重いと、通常のカラオケ演奏まで遅れてしまう。このように、楽曲の演奏を行うカラオケ装置においては、楽曲演奏処理に遅れが生じた場合には、不自然な演奏となってしまい、利用者に違和感を与えてしまう場合があった。
本発明は上述した課題を解決するためになされたものであり、マルチタスク処理を行うカラオケ装置において、利用者に違和感を与えないカラオケ装置を提供することを目的としている。
上述した課題を解決するために、請求項1に記載の発明は、複数のタスクをマルチタスク処理で行うカラオケ装置であって、メイン音源において楽曲を生成するためのメインシーケンサプログラムと、サブ音源において楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、前記メインシーケンサプログラムに基づくタスクであるメインシーケンサタスク、前記サブシーケンサプログラムに基づくタスクであるサブシーケンサタスク、及び前記アプリケーションプログラムに基づくタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段とを備えることを特徴とする。
また、請求項2に記載の発明は、メイン音源においてカラオケ演奏としての楽曲を生成するためのメインシーケンサプログラムと、サブ音源において前記メインシーケンサタスクで生成される楽曲の次の楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、前記メインシーケンサプログラムに基づくタスクであるメインシーケンサタスク、前記サブシーケンサプログラムに基づくタスクであるサブシーケンサタスク、及び前記アプリケーションプログラムに基づくタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段とを備えることを特徴とする。
本発明によれば、マルチタスク処理を行うカラオケ装置において、利用者に違和感を与えない処理を行うことができるようになる。
以下、図面を参照しながら、本発明の実施の形態について説明する。
1.実施形態の構成
(1)全体構成
図1は、実施形態の構成を示すブロック図である。本実施形態にかかるカラオケ装置100は、通常のカラオケ演奏を行うことができる他、次に演奏する曲を確認できるように構成されており、CPU101、ROM102、RAM103、ハードディスクドライブ104、表示制御部105、ディスプレイ106、メイン音源107、サブ音源108、パネルインターフェイス109、パネル110、スピーカ120、およびヘッドフォン130を備えている。
CPU101は、ROM102に記憶された各種プログラムに従って、バスを介して接続された各部の制御を行う。ROM102には、オペレーティングシステム(OS)の他、曲データに基づいてカラオケ演奏を行うためのシーケンサプログラム等の各種アプリケーションプログラムが記憶されている。このような各種プログラムについては、実施形態の動作において後に詳しく説明する。RAM103は、データを一時的に記憶するために用いるメモリであり、後に説明するように、リクエスト曲番号を記憶したり、リクエストされた曲データなどを記憶するために用いられる。HDD104は、大容量の記憶媒体であり、リクエスト可能な曲データが大量に記憶されている。表示制御部105は、ディスプレイ106における表示を制御するものであり、ディスプレイ106には、例えばCRT(Cathode Ray Tube)ディスプレイなどが用いられる。
本実施形態では、カラオケ装置100は、メイン音源107とサブ音源108との2つの音源を備えている。メイン音源107は、通常のカラオケ演奏に対応する楽曲を生成してスピーカ120に出力し、サブ音源108は、次曲確認用演奏に対応する楽曲を生成してヘッドフォン130に出力する。パネルインターフェイス109は、パネル100とのインターフェイスであり、パネル110は、以下に説明する表示部や各種キーを備えている。
(2)パネル110の構成
図2は、パネル110の外観構成を示す図である。パネル110は、LED表示部111、テンキー112、セットキー113、スタートキー114、および次曲確認キー114を備えて構成されている。LED表示部111は、7セグメントLED(Light Emitting Diode)を備えて構成されており、予約曲数や、リクエスト入力中の曲番号、演奏中の曲番号などを表示できるようになっている。テンキー112は、曲番号を入力するためのキーであり、セットキー113は、テンキー112によって入力された曲番号を確定するためのキーである。スタートキー114は、演奏のスタートを指示するキーであり、スタートキー114が操作されると、ディスプレイ106において背景映像および歌詞の表示が開始するとともに、スピーカ120においてカラオケ演奏に対応する楽曲の出力が開始する。次曲確認キー115は、スピーカ120から出力されている楽曲の次のリクエスト曲の確認を指示するキーであり、次曲確認キー115が操作されると、ヘッドフォン130において次曲の演奏に対応する楽曲の出力が開始する。これらの各キーの操作は逐次検出され、パネルインターフェイスを介してCPU101によって認識されるようになっている。
(3)RAM103に記憶するデータ構成
次に、RAM103に記憶されるデータ構成について説明する。本実施形態では、RAM103には、図3に示すリクエストキューエリアと、図4に示す曲データ記憶エリアAおよび曲データ記憶エリアBとが設定される。リクエストキューエリアは、リングバッファ状に使用される。テンキー112によって入力されセットキー113によって確定された曲番号が、一定の方向に順次記憶され、記憶された順に読み出される。そして、読み出された曲番号にかかるリクエスト曲の演奏準備が完了すると、新たな曲番号を書き込むことができるようになる。
図4に示す曲データ記憶エリアAおよびBは、リクエスト曲の演奏準備に用いられるエリアである。リクエストキューエリアから読み出されたリクエスト曲番号に対応した曲データはHDD104から読み出されて、いずれかのエリアに展開される。カラオケ装置100は、メイン音源107およびサブ音源108の2種類の音源を備えており、同時に楽音信号生成を行う場合がある。本実施形態では、曲データを展開するエリアを2つ設けており、それぞれのエリアは、メイン音源107あるいはサブ音源108のいずれか一方における楽曲生成処理に使用される。本実施形態で用いる曲データは、MIDI規格に基づいて作成されており、各演奏処理内容を示すイベントデータと、各イベントデータの実行を開始するタイミングの時間間隔を示すΔtデータとを備えている。なお、本実施形態では、4分音符の符長を24分割したクロック(MIDIタイミングクロック)数を用いてΔtを表している。
2.実施形態の動作
次に、上記構成を備える実施形態の動作について説明する。
2−1.マルチタスク処理の概要
まず、本実施形態においてCPU101によって実行される各種プログラムについて説明する。図5は、プログラム構成を説明する概念図である。図5に示すように、本実施形態では、オペレーティングシステム(OS)、メインシーケンサプログラムと、サブシーケンサプログラムと、および、その他のアプリケーションプログラムを備えている。OSは、実時間処理を伴うマルチタスク処理を行うことができるオペレーティングシステムであり、例えばパネル110の各種キー操作の検出や、RAM103の管理など基本的動作を行うためのプログラムである。さらに、マルチタスク処理においては、各アプリケーションプログラムに基づく処理(タスク)毎に優先度を設定して、優先度に応じてCPU101の時分割処理を制御することができるようになっている。
メインシーケンサプログラムは、メイン音源107において楽曲を生成するためのアプリケーションプログラムであり、メインシーケンサプログラムに基づく処理(メインシーケンサタスク)は優先度の高いタスクとして設定される。サブシーケンサプログラムは、サブ音源108において楽曲を生成するためのアプリケーションプログラムであり、サブシーケンサプログラムに基づく処理(サブシーケンサタスク)は優先度の低いタスクとして設定される。その他のアプリケーションプログラムには、例えばディスプレイ106に歌詞を表示させるためのプログラムなどが含まれる。
ここで、図6は、本実施形態におけるタスクの状態遷移を示す図である。演奏を行わない状態(演奏準備が行われていない状態)では、タスクは「未登録状態」となっている。RAM103への曲データ展開などの演奏準備が行われ、演奏を開始すると、生成されたタスクは、まず「休止状態」となる。休止状態は、タスクの実行を行うべきタイミングではない状態を示している。なお、タスクを実行すべきタイミングは、曲データ中のΔtによって決定される。
タスクを実行すべきタイミングになると、タスクが起動して「実行可能状態」に遷移する。実行可能状態となったタスクは、優先度に従って処理が開始され、「実行状態」に遷移する。タスクが実行状態である場合であっても、より優先度の高い他タスクが実行可能状態になった場合には処理が中断されて「待ち状態」へと遷移し、処理を再開する際に再度「実行可能状態」に遷移する。実行状態は、タスクの実行が終了すると休止状態に遷移し、次のタスク実行タイミングまで待機する。そして、演奏が終了した場合は、休止状態のタスクを削除して未登録状態に遷移する。
ところで、複数のタスクが登録されている場合に、いずれのタスクをCPU101が実行するかについては、例えば図7に示すようなタスク管理テーブルを用いて管理されている。タスク管理テーブルでは、各タスクを識別する「タスクID」毎に、当該タスクの優先度を示す「優先度」、当該タスクを実行するためのプログラムを識別する「プログラム」、当該タスクの実行状態を示す「状態フラグ」などの情報を管理している。「プログラム」は、ROM102上の読み出しアドレスなどで特定されている。
ここで、図8および図9を参照しながら、本実施形態におけるマルチタスク処理の概要について説明する。まず、図8は、優先度の低いサブシーケンサタスクが実行状態である場合に、優先度の高いメインシーケンサタスクが実行可能状態になった場合の動作を示している。サブシーケンサタスクが実行状態である場合にメインシーケンサタスクが休止状態から実行可能状態に遷移すると、優先度の低いサブシーケンサタスクは中断されて待ち状態に遷移する。これに対して、優先度の高いメインシーケンサタスクは、実行可能状態になるとすぐに処理が開始されて実行状態に遷移する。そして、メインシーケンサタスクの処理が終了すると、休止状態に遷移する。メインシーケンサタスクが終了すると、サブシーケンサタスクは実行可能状態に再度遷移して、処理を再開し、実行状態に遷移する。このように、優先度の高いタスクは、優先度の低いタスクに対して割り込みを行うことができる。
次に図9は、優先度の高いメインシーケンサタスクが実行状態である場合に、優先度の低いサブシーケンサタスクが実行可能状態になった場合の動作を示している。ここでは、メインシーケンサタスクが実行状態である場合に、サブシーケンサタスクが休止状態から実行可能状態に遷移しても、メインシーケンサタスクの方が優先度が高いので、メインシーケンサタスクは中断されない。従って、サブシーケンサタスクは実行可能状態のまま待機し、メインシーケンサタスクの処理が終了してから実行状態に遷移する。このように、優先度の低いタスクは、優先度の高いタスクに対して割り込みを行うことができない。
以下フローチャートを参照しながら説明する各動作は、上述した優先度に基づいたOSの制御を利用して、通常のカラオケ演奏であるメインシーケンサタスクと、次曲確認用の演奏であるサブシーケンサタスクとを実行する場合の動作を示すものである。
2−2.実施形態の動作を示すフローチャート
次に、図10から図13に示すフローチャートを参照しながら、本実施形態の動作について説明する。
(1)メインルーチン
図10は、OSに基づいて行われる本実施形態のメインルーチンにかかる処理を示している。カラオケ装置100に電源が投入されると、CPU101は、まず初期設定を行う(S101)。初期設定においては、RAM103における各種エリアやテーブルの初期化などを行う。初期設定が終了すると、次にパネル110における各種キーの状態に基づくパネル処理を行う(S102)。パネル処理においては、LED表示部110における状態表示を行う処理の他、テンキー112、セットキー113、スタートキー114、および次曲確認キー115の操作に基づく処理などを行う。例えば、テンキー112の操作において入力され、セットキー113の操作において確定されたリクエスト曲番号を、上述のRAM103上のリクエストキューエリアに順次記憶する。そして、曲データ記憶エリアAあるいはBのうちいずれか一方のエリアに記憶された曲データが書き換え可能となった場合には、リクエストキューエリアに記憶されている曲番号のうち最も古くキューイングされた曲番号に対応した曲データをHDD104から読み出して、当該曲データ記憶エリアに展開する。そして、展開した曲データに対応したキューイングエリアの曲番号は削除され、次に確定したリクエスト曲番号を記憶する。また、パネル処理においては、このようなキュー管理の他、スタートキー114あるいは次曲確認キー115の操作に基づく演奏準備処理も行う。演奏準備処理については、図11を参照しながら、後に説明する。
パネル処理を終了すると、タスク管理処理を行う(S103)。タスク管理処理とは、優先度に基づいて各タスクの状態を遷移させる処理であり、タスク管理処理は、図12を用いて後に詳しく説明する。タスク管理処理を終了すると、CPU101はその他処理を行い(S104)、処理をステップS102に移行させて再びパネル処理を行う。ステップS102〜S104の処理は、カラオケ装置100の電源が遮断されるまで繰り返し実行され、これにより適宜キー状態が認識され、タスク管理が行われることによってマルチタスク処理が行われる。
(2)演奏準備処理
次に、図11は、メインシーケンサあるいはサブシーケンサにおける演奏開始が指示された場合の演奏準備処理を示すフローチャートである。なお、メインシーケンサによる演奏は、例えばスタートキー114が操作された場合や、先にキューイングされていた曲の演奏が終了した後に開始される。サブシーケンサによる演奏は、次曲確認キー115が操作された場合に開始される。
以下、メインシーケンサの演奏準備処理を例として図11に示すフローチャートの説明を行う。演奏準備処理を開始すると、CPU101は、メインシーケンサタスクが未登録状態であるか否かを判別し(S201)、未登録状態ではないと判別した場合は、タスクが登録されてOSによって管理されている状態であると判別できるので、処理をメインルーチンに戻す。
ステップS201の判別において、メインシーケンサタスクが未登録状態であると判別した場合は(S201;YES)、タスク管理テーブルの設定を行う(S202)。演奏準備処理がメインシーケンサタスクであれば、優先度を高く設定して、メインシーケンサプログラムの読み出しアドレスを指定する(図7参照)。タスク管理テーブルの設定が終了すると、次に、メインシーケンサによって演奏する曲データを読み出すRAM103のアドレスをポインタMpにセットする(S203)。曲データはキューイング順に読み出されてRAM103上の曲データ記憶エリアAおよびBに交互に展開されており、メインシーケンサによって読み出すべき曲データが記憶されているアドレスを特定する必要がある。また、イベントデータは時間の経過に伴って順次実行されていくように構成されているので、次のタイミングにおいて実行するイベントデータが記憶されたアドレスも特定する必要がある。そこで本実施形態では、次に実行すべきイベントデータの記憶されたアドレスを示す変数であるポインタMpを用いて、イベントデータの実行を行う毎にポインタMpの値を更新するものとする。よし詳しくは、図12を参照しながら後に説明する。
ポインタMpのセットが完了すると、次に、メインシーケンサタスクの状態を休止状態から実行可能状態に遷移させるタイミングをカウントするためのカウンタMcに、最初のイベントデータを実行するまでのΔtをセットする。本実施形態では、このカウンタMcの値をMIDIタイミングクロックに基づいてダウンカウントすることによって、時間の経過を判別できるようになっている。より詳しくは、図12を参照しながら後に説明する。なお、サブシーケンサであれば、上述の各変数はポインタSp、カウンタScとなる。
(3)割り込み処理
本実施形態においては、メインシーケンサおよびサブシーケンサは、MIDIタイミングクロック毎に割り込み処理を行うことによって、所定のタイミングにおいて楽音生成処理を実行できるようになっている。MIDIタイミングクロックは、4分音符の符長を24分割したものであるので、割り込み時間間隔は曲のテンポによって異なる。テンポは、曲データによって指定されているが、図示せぬテンポ変更キーの操作によって変更することも可能である。テンポは曲毎に異なるので、メインシーケンサによって演奏する曲とサブシーケンサによって演奏する曲のテンポが異なる場合がある。そこで、本実施形態では、メインシーケンサのテンポに基づく割り込みと、サブシーケンサのテンポに基づく割り込みとをそれぞれ行っているものとし、以下、メインシーケンサのテンポに基づく割り込みを例として説明する。
図12は、割り込み処理の内容を示すフローチャートである。割り込み処理が起動すると、CPU101は、まずメインシーケンサタスクが休止状態であるか否かを判別する(S301)。ここで、休止状態ではないと判別した場合は(S301;NO)、すでにタスクが起動しており、タスクを実行可能状態に遷移させる処理を行う必要がないので、処理をメインルーチンに戻す。一方、ステップS301の判別において、タスクが休止状態であると判別した場合は(S301;YES)、カウンタMc=0であるか否か、すなわち、イベントデータを実行すべきタイミングであるか否かを判別する(S302)。
ステップS302の判別において、Mc≠0と判別した場合は(S302;NO)、Mc=Mc−1を実行してカウンタMcの値を1ダウンカウントする(S303)。先に説明したように、演奏準備処理においてカウンタMcには、最初のイベントデータまでのΔtがセットされており、割り込み処理は1MIDIタイミングクロック毎に起動されるので、ステップS303によるダウンカウントにより経過時間を認識できるようになっている。
一方、ステップS302の判別において、Mc=0であると判別した場合は(S201;YES)、Δtが経過したと判別できので、次にメインシーケンサタスクを実行可能状態に遷移させる(S304)。このステップにおいて実行可能状態となったタスクは、後に説明するタスク管理処理(図13)において、優先度に従って実行状態に遷移するようになる。タスクを実行可能状態に遷移させると、次にイベントデータを実行すべきタイミングまでのΔtをカウンタMcにセットし(S305)、次に実行すべきイベントデータの読み出しアドレスをポインタMpにセットして(S306)、処理をメインルーチンに戻す。図12に示した割り込み処理は、MIDIタイミングクロック毎に起動されるが、カウンタのダウンカウント処理(S303)は、タスクが休止状態である場合にのみ実行されるので、タスクが実行状態である場合や実行可能状態や待ち状態としてとして待機している場合にはカウントは進まないようになっている。
(4)タスク管理処理
次に図13を参照しながら、タスク管理処理(図10:103)の詳細について説明する。タスク管理処理が開始すると、CPU101は、実行状態のタスクがあるか否かを判別する(S401)。登録されている各タスクの状態は、図7に示したタスク管理テーブル中のタスク状態フラグを参照することによって認識することができる。ステップS401の判別において、実行状態のタスクがないと判別した場合は(S401;NO)、次に、実行可能状態のタスクがあるか否かを判別し(S402)、実行可能状態のタスクもないと判別した場合は(S402;NO)、タスク管理処理において状態遷移させるべきタスクは存在しないと判別できるので、処理をそのままメインルーチンに戻す。ステップS402の判別において、実行可能状態のタスクがあると判別した場合は(S402;YES)、次に、実行可能状態タスクが複数であるか否かを判別し(S403)、複数ではないと判別した場合は(S403;NO)、一つのタスクのみが実行可能状態であり、優先度を考慮する必要がないので、当該タスクを実行状態に遷移させて(S404)、処理をメインルーチンに戻す。
一方、ステップS403の判別において、実行可能状態のタスクが複数であると判別した場合には(S403;YES)、優先度の最も高いタスクを実行状態に遷移させて(S405)、処理をメインルーチンに戻す。次に、ステップS401の判別において実行状態のタスクがあると判別した場合(S401;YES)について説明する。CPU101は、まず、実行可能状態の他タスクがあるか否かを判別し(S406)、実行可能状態の他タスクが無いと判別した場合は(S406;NO)、次に、実行状態であるタスクを終了するか否かを判別する(S407)。ここでは、図示せぬ終了キーが操作された場合や、演奏終了を示すイベントデータが実行された場合に、タスク終了と判別する。
ステップS407の判別において、実行状態のタスクを終了すべきではないと判別した場合は(S407;NO)、タスク管理処理において状態遷移させるべきタスクは存在しないと判別できるので、処理をそのままメインルーチンに戻す。一方、ステップS407の判別において、実行状態のタスクを終了すべきであると判別した場合には(S407;YES)、当該タスクを休止状態に遷移させ(S408)、次に、待ち状態となっている他タスクがあるか否かを判別する(S409)。ステップS409の判別において、待ち状態の他タスクがないと判別した場合には(S409;NO)、状態遷移させるべきタスクがないのでメインルーチンに処理を戻すが、待ち状態のタスクがあると判別した場合は(S409;YES)、当該タスクを実行可能状態に遷移させてから(S410)、処理をメインルーチンに戻す。
ところで、ステップS406の判別において、実行可能状態の他タスクがあると判別した場合は(S406;YES)、次に、当該実行可能状態タスクが実行状態タスクよりも優先度が高いか否かを判別する(S411)。ここで、実行可能状態タスクが実行状態タスクよりも優先度が低いと判別した場合は(S411;NO)、実行状態タスクの実行を継続すべきであり、遷移させるべきタスクがないと判別できるので、メインルーチンに処理を戻す。一方、ステップS411の判別において、行可能状態タスクが実行状態タスクよりも優先度が高いと判別した場合は(S411;YES)、実行状態のタスクを中断して(S412)、待ち状態に遷移させる(S413)。そして、実行可能状態の他タスクを実行状態に遷移させ(S414)、処理をメインルーチンに戻す。
2−3.実施形態の具体的動作
次に、図10〜図13に示した処理を循環することによって、行われる実施形態の具体的動作について図14に示すタイムチャートを参照しながら説明する。図14に示すタイムチャートは、曲データによって指示される状態と、上記実施形態における状態と、従来技術における状態とを比較してたものである。曲データが指示する状態とは、当該曲データによる楽音生成処理を単独で行った場合のタイムチャートである。図14においては、メインシーケンサおよびサブシーケンサのそれぞれによって読み出される曲データについてそれぞれ図示している。
上記実施形態においては、メインシーケンサタスクの優先度はサブシーケンサタスクの優先度よりも高いので、例えばイベントIm1にかかるタスクが実行状態であるときに、イベントIs1にかかるタスクが実行可能状態に遷移しても、処理は中断されず、イベントIm1にかかるタスクが終了してからイベントIS1にかかるタスクが実行状態になる。そして、サブシーケンサタスク(イベントIs1にかかるタスク)が実行状態であっても、優先度の高いメインシーケンサタスク(イベントIm2にかかるタスク)が実行可能状態となった場合には、サブシーケンサタスクを中断して待ち状態とし、先にメインシーケンサタスクを実行状態とするので、イベントIm2は曲データが指示するタイミング通りに実行されることになる。
これに対して従来技術における状態では、優先度に応じた処理を行うことはできないので、タスクが重複する場合には、先に実行可能状態となったタスクが終了してから、後に実行可能状態となったタスク(イベントIs1)が実行状態になる。そして、先に実行状態であったサブシーケンサタスク(イベントIs1にかかるタスク)が終了してから、後に実行可能状態となったメインシーケンサタスク(イベントIm2にかかるタスク)が実行可能状態になるので、図14に示すように、イベントIm2は曲データが指示するタイミングよりも遅れて実行されるようになる。曲データが指示するイベント間のΔtは、イベントが実行されてからの時間間隔であるから、あるイベントの実行が遅れるに従って、次のイベントの実行も遅れていくようになる。
このように、従来技術においては、メインシーケンサタスクによる実行およびサブシーケンサタスクによる実行は、いずれもが遅延していく場合が生じやすいのに比べ、本実施形態においては、サブシーケンサタスクによる実行のみが遅延していくようになる。本実施形態では、メインシーケンサタスクによって生成される楽曲は、カラオケ演奏としてスピーカ120から出力される演奏となり、ディスプレイ106に表示される歌詞および歌詞の色替えと同期するものであるから、多少の遅延でも使用者に違和感を与える。これに対してサブシーケンサタスクによる楽音信号生成は、次曲確認のためにヘッドフォン130で聴くための演奏であり、演奏が遅延していっても、それほど違和感は与えない。
3.変形例
なお、本発明は既述した実施形態に限定されるものではなく、以下のような各種の変形が可能である。
上記実施形態においては、優先度を「高」と「低」との2段階を用いて説明したが、優先度の段階はさらに細分化して設定できるようにしてもよい。例えば、優先度を示す数値を1〜10などと設定できるようにして、数値の小さいタスクを数値の大きなタスクよりも優先して実行するようにしてもよい。また、上記実施形態では、メインシーケンサとサブシーケンサの2種類のタスクを用いて説明したが、時間情報を参照して行う処理であればどのような処理でもよく、マルチタスクは上述の2種類に限定されるものではなく、例えば歌詞の色替え処理や、楽音に効果を付与するエフェクト処理など他の処理であっても構わない。
上記実施形態においては、カラオケ装置100は2つの音源(メイン音源107、サブ音源108)を備えるものとして説明したが、1つの音源をメインシーケンサとサブシーケンサで共有するように構成しても構わないし、3つ以上の音源を備えていても構わない。
各タスクの優先度を決定する手段は、予め重い処理となることが予想されているものの優先度を高く設定するように決定されていても構わない。上記実施形態においては、メインシーケンサタスクは、ディスプレイ106に歌詞や背景映像を表示させる処理と同期して行わなければならないので、予め優先度を高く設定している。上記実施形態においては、説明を省略しているが、曲データ中には、イベントデータやΔtデータと対応して歌詞表示を指示するデータも含まれているものとする。なお、曲データ中のイベントデータは、上記実施形態のようにMIDI規格に基づいて作成されたものに限らず、楽曲演奏処理内容をデジタルデータによって指示することができればどのような規格であってもよい。イベントデータが指示する楽曲演奏処理内容には、発音や消音のような基本的な処理の他、残響音やバックコーラスなどの効果を付与する処理があってもよい。このような効果処理が多いほど、重い処理となると判断するようにしてもよい。
また、イベント間の時間間隔を示すΔtデータは、上記実施形態のようにMIDIタイミングクロックを用いて記述することに限らず、他のクロック数を用いても構わないし、絶対時間を用いても構わない。あるいは、曲データ中に優先度を指定するデータを記述してもよいし、曲のテンポに応じて決定するようにしてもよい。上述のように、MIDIタイミングクロック間の時間間隔(割り込み時間間隔)はテンポに応じて異なるので、テンポの速い曲は単位時間あたりの割り込み回数が多くなり、テンポの遅い曲は単位時間あたりの割り込み回数が少なくなるからである。また、演奏が開始してからユーザ操作によって優先度を変更できるようにしてもよい。
上記実施形態のように1台のカラオケ装置における処理に限らず、例えば複数のカラオケ制御装置を用いて複数のカラオケ装置を制御するような場合でも、本発明は適用可能である。例えば、1台のサーバをコントロールルームに設置して、演奏用端末装置を各部屋に設置するカラオケボックスシステムにおいて、テンポの早い曲を演奏する端末用タスクの優先度を高くして、テンポの遅い曲を演奏する端末用タスクの優先度を低くするようにしてもよい。
実施形態の構成を示すブロック図である。 パネルの外観構成を示す図である。 リクエストキューエリアを説明する図である。 曲データ記憶エリアを説明する図である。 プログラムの構成を示す図である。 タスクの状態遷移を説明する図である。 タスク制御テーブルを説明する図である。 マルチタスク処理を説明する図である(その1)。 マルチタスク処理を説明する図である(その2)。 実施形態の動作を示すフローチャートである(メインルーチン)。 実施形態の動作を示すフローチャートである(演奏準備処理)。 実施形態の動作を示すフローチャートである(割り込み処理)。 実施形態の動作を示すフローチャートである(タスク管理処理)。 実施形態の動作を従来技術と比較して示すタイムチャートである。
符号の説明
100…カラオケ装置、101…CPU、102…ROM、103…RAM、104…HDD、105…表示制御部、106…ディスプレイ、107…メイン音源、108…サブ音源、109…パネルインターフェイス、110…パネル、111…LED表示部、112…テンキー、113…セットキー、114…スタートキー、115…次曲確認キー。

Claims (2)

  1. 複数のタスクをマルチタスク処理で行うカラオケ装置であって、
    メイン音源において楽曲を生成するためのメインシーケンサプログラムと、サブ音源において楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、
    前記メインシーケンサプログラムに基づくタスクであるメインシーケンサタスク、前記サブシーケンサプログラムに基づくタスクであるサブシーケンサタスク、及び前記アプリケーションプログラムに基づくタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、
    前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、
    前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、
    前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段と
    を備えることを特徴とするカラオケ装置。
  2. メイン音源においてカラオケ演奏としての楽曲を生成するためのメインシーケンサプログラムと、サブ音源において前記メインシーケンサタスクで生成される楽曲の次の楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、
    前記メインシーケンサプログラムに基づくタスクであるメインシーケンサタスク、前記サブシーケンサプログラムに基づくタスクであるサブシーケンサタスク、及び前記アプリケーションプログラムに基づくタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、
    前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、
    前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、
    前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段と
    を備えることを特徴とするカラオケ装置。
JP2008265782A 2008-10-14 2008-10-14 カラオケ装置 Expired - Fee Related JP4720893B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008265782A JP4720893B2 (ja) 2008-10-14 2008-10-14 カラオケ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008265782A JP4720893B2 (ja) 2008-10-14 2008-10-14 カラオケ装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP01902299A Division JP4477159B2 (ja) 1999-01-27 1999-01-27 カラオケ装置

Publications (2)

Publication Number Publication Date
JP2009048207A true JP2009048207A (ja) 2009-03-05
JP4720893B2 JP4720893B2 (ja) 2011-07-13

Family

ID=40500407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008265782A Expired - Fee Related JP4720893B2 (ja) 2008-10-14 2008-10-14 カラオケ装置

Country Status (1)

Country Link
JP (1) JP4720893B2 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05249956A (ja) * 1992-03-04 1993-09-28 Yamaha Corp 電子楽器
JPH05333889A (ja) * 1992-05-29 1993-12-17 Victor Co Of Japan Ltd 集合型カラオケシステム
JPH0728484A (ja) * 1993-07-07 1995-01-31 Sony Corp イントロプレイ機能付きカラオケ用リモートコントローラ
JPH0777996A (ja) * 1993-09-08 1995-03-20 Brother Ind Ltd 歌唱用音響発生装置
JPH0792983A (ja) * 1993-06-30 1995-04-07 Nippon Columbia Co Ltd カラオケシステム
JPH0895566A (ja) * 1994-09-27 1996-04-12 Yamaha Corp 自動伴奏装置
JPH08320694A (ja) * 1995-05-26 1996-12-03 Ekushingu:Kk 楽音再生装置
JPH10187177A (ja) * 1997-10-30 1998-07-14 Yamaha Corp カラオケの歌詞表示装置
JPH10240207A (ja) * 1996-09-25 1998-09-11 Technical Maintenance Corp オーディオビジュアル再生デジタルシステムにおける記録の選択方法および該方法を実施するためのシステム
JPH10319977A (ja) * 1997-05-15 1998-12-04 Daiichi Kosho:Kk カラオケ演奏装置およびカラオケ用携帯型試聴端末

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE188793T1 (de) * 1994-10-12 2000-01-15 Touchtunes Music Corp Intelligentes system zur numerischen audio- visuellen reproduktion

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05249956A (ja) * 1992-03-04 1993-09-28 Yamaha Corp 電子楽器
JPH05333889A (ja) * 1992-05-29 1993-12-17 Victor Co Of Japan Ltd 集合型カラオケシステム
JPH0792983A (ja) * 1993-06-30 1995-04-07 Nippon Columbia Co Ltd カラオケシステム
JPH0728484A (ja) * 1993-07-07 1995-01-31 Sony Corp イントロプレイ機能付きカラオケ用リモートコントローラ
JPH0777996A (ja) * 1993-09-08 1995-03-20 Brother Ind Ltd 歌唱用音響発生装置
JPH0895566A (ja) * 1994-09-27 1996-04-12 Yamaha Corp 自動伴奏装置
JPH08320694A (ja) * 1995-05-26 1996-12-03 Ekushingu:Kk 楽音再生装置
JPH10240207A (ja) * 1996-09-25 1998-09-11 Technical Maintenance Corp オーディオビジュアル再生デジタルシステムにおける記録の選択方法および該方法を実施するためのシステム
JPH10319977A (ja) * 1997-05-15 1998-12-04 Daiichi Kosho:Kk カラオケ演奏装置およびカラオケ用携帯型試聴端末
JPH10187177A (ja) * 1997-10-30 1998-07-14 Yamaha Corp カラオケの歌詞表示装置

Also Published As

Publication number Publication date
JP4720893B2 (ja) 2011-07-13

Similar Documents

Publication Publication Date Title
JP3198890B2 (ja) 自動演奏データ処理装置
CN105590620B (zh) 处理装置、处理方法以及电子乐器
EP3379526A1 (en) Musical sound generation device, musical sound generation method and electronic instrument
JP2015081927A (ja) 電子楽器、プログラム及び発音音高選択方法
JP3922224B2 (ja) 自動演奏装置及びプログラム
JPH09325778A (ja) 楽音発生方法
JP5375868B2 (ja) 再生方法切替装置、再生方法切替方法及びプログラム
JP5915420B2 (ja) 楽音発生装置、楽音発生方法、電子楽器及びプログラム
JP4477159B2 (ja) カラオケ装置
JP4720893B2 (ja) カラオケ装置
JP2016142911A (ja) 波形読み込み装置、方法、プログラム、および電子楽器
JPH09204177A (ja) 楽音生成装置及び方法
JP4096952B2 (ja) 楽音発生装置
JP3725247B2 (ja) 楽音生成処理方法
JP4241833B2 (ja) 自動演奏装置及びプログラム
JP6357772B2 (ja) 電子楽器、プログラム及び発音音高選択方法
JP4572980B2 (ja) 自動演奏装置及びプログラム
JP6606839B2 (ja) 波形書き込み装置、方法、プログラム、および電子楽器
JP3705203B2 (ja) 楽音発生方法
JP5445802B2 (ja) カラオケリモコン装置及びカラオケリモコン装置用プログラム
JP5652356B2 (ja) 音源制御装置及び音源制御プログラム
JP6264660B2 (ja) 音源制御装置、カラオケ装置、音源制御プログラム
JP2009180891A (ja) 電子音楽装置及びプログラム
JP2012145932A (ja) 電子楽器
JP2005234597A (ja) 音源装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110321

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees