JP4720893B2 - Karaoke equipment - Google Patents

Karaoke equipment Download PDF

Info

Publication number
JP4720893B2
JP4720893B2 JP2008265782A JP2008265782A JP4720893B2 JP 4720893 B2 JP4720893 B2 JP 4720893B2 JP 2008265782 A JP2008265782 A JP 2008265782A JP 2008265782 A JP2008265782 A JP 2008265782A JP 4720893 B2 JP4720893 B2 JP 4720893B2
Authority
JP
Japan
Prior art keywords
task
sequencer
priority
sub
program
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
Application number
JP2008265782A
Other languages
Japanese (ja)
Other versions
JP2009048207A (en
Inventor
幸生 多田
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/en
Publication of JP2009048207A publication Critical patent/JP2009048207A/en
Application granted granted Critical
Publication of JP4720893B2 publication Critical patent/JP4720893B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

この発明は、複数の楽曲演奏をマルチタスク処理で行うカラオケ装置に関する。   The present invention relates to a karaoke apparatus that performs a plurality of music performances by multitask processing.

従来より、カラオケ演奏処理をコンピュータによって制御するカラオケ装置が知られている。例えば、MIDI(Musical Instrument Digital Interface)規格に基づいて作成されたの曲データに基づいて楽曲を演奏するカラオケ装置が広く知られている。このようなコンピュータによって制御を行うカラオケ装置においては、複数の処理を並行して行う、いわゆるマルチタスク処理が行われている。例えば、曲データに基づいて楽曲を演奏する処理と、ディスプレイに歌詞を表示して曲の進行に伴って色替えをする処理を同時に行う。また、楽曲演奏と歌詞表示とを同時に行う通常のカラオケ演奏とあわせて、次に演奏すべき曲を確認するための演奏を行う場合にも、複数の演奏処理が同時に行われている。   Conventionally, a karaoke apparatus that controls karaoke performance processing by a computer is known. For example, karaoke apparatuses that perform music based on music data created based on the MIDI (Musical Instrument Digital Interface) standard are widely known. In such a karaoke apparatus that is controlled by a computer, so-called multitask processing, in which a plurality of processes are performed in parallel, is performed. For example, a process of playing a song based on song data and a process of changing the color as the song progresses by displaying lyrics on the display are performed simultaneously. In addition, when performing a performance for confirming a song to be performed next, in addition to a normal karaoke performance in which the music performance and the lyrics display are performed at the same time, a plurality of performance processes are performed simultaneously.

ところで、このようなマルチタスク処理を一つのCPUで行う場合には、複数に時分割して行うので、ある処理が非常に重い場合には、他の処理がどんどん遅れていくという不都合が生じることがある。例えば、通常のカラオケ演奏と次曲を確認する演奏とを同時に行う場合に、次曲確認演奏の処理が重いと、通常のカラオケ演奏まで遅れてしまう。このように、楽曲の演奏を行うカラオケ装置においては、楽曲演奏処理に遅れが生じた場合には、不自然な演奏となってしまい、利用者に違和感を与えてしまう場合があった。   By the way, when such multitask processing is performed by a single CPU, it is performed in a time-sharing manner into a plurality of times, so that when a certain processing is very heavy, other processing is delayed. There is. For example, when performing a normal karaoke performance and a performance for confirming the next song at the same time, if the processing of the next song confirmation performance is heavy, the normal karaoke performance is delayed. As described above, in a karaoke apparatus that performs music performance, if there is a delay in the music performance processing, the performance becomes unnatural and may give the user a sense of discomfort.

本発明は上述した課題を解決するためになされたものであり、マルチタスク処理を行うカラオケ装置において、利用者に違和感を与えないカラオケ装置を提供することを目的としている。   The present invention has been made to solve the above-described problem, and an object of the present invention is to provide a karaoke apparatus that does not give a sense of incongruity to a user in a karaoke apparatus that performs multitask processing.

上述した課題を解決するために、請求項1に記載の発明は、複数のタスクをマルチタスク処理で行うカラオケ装置であって、メイン音源において楽曲を生成するためのメインシーケンサプログラムと、サブ音源において楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、前記アプリケーションプログラムに基づくタスク、前記メインシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われるメインシーケンサタスク、及び前記サブシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われないサブシーケンサタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段とを備えることを特徴とする。
また、請求項2に記載の発明は、メイン音源においてカラオケ演奏としての楽曲を生成するためのメインシーケンサプログラムと、サブ音源において前記メインシーケンサタスクで生成される楽曲の次の楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、前記アプリケーションプログラムに基づくタスク、前記メインシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われるメインシーケンサタスク、及び前記サブシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われないサブシーケンサタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段とを備えることを特徴とする。
In order to solve the above-described problem, the invention described in claim 1 is a karaoke apparatus that performs a plurality of tasks by multitask processing, and a main sequencer program for generating music in a main sound source and a sub sound source a sub sequencer program for generating music, a program storage means for storing an application program other than the main sequencer program and the sub-sequence program, a task based on the application program, task der based on the main sequencer program It is performed in synchronization with the task based on the main sequencer task, and the application program What tasks der based on the sub-sequence program is performed in synchronism with the task based on the application program There About sub sequencer task, the task information storage means for storing task information including time information indicating a time corresponding to the processing information and the task to instruct the contents of each task, the processing information in the task information And task execution means for performing a plurality of tasks simultaneously with reference to time information, and priority of the task performed in the task execution means so that the priority of the main sequencer task is higher than the priority of the sub-sequencer task. When the task is performed by the priority setting means for setting the degree and the task execution means, the task set to a priority lower than the task by the priority setting means is ready to be executed. Sometimes, the task execution means continuously performs the task, and the task execution means When the task set by the priority setting means becomes a state that can be executed by the priority setting means, the task being executed by the task execution means is interrupted, And control means for controlling to perform a task set to a high priority.
The invention according to claim 2 is a main sequencer program for generating a tune as a karaoke performance in a main sound source, and a tune for generating a tune next to the tune generated by the main sequencer task in a sub sound source. a sub-sequence program, the program storage means for storing an application program other than the main sequencer program and the sub-sequence program, a task based on the application program, the task based on said I task der based on the main sequencer program application program synchronization with the main sequencer task is performed, and not performed in synchronization with the task based on said I task der based on sub-sequence program application program Sabushike About Satasu click, and task information storage means for storing task information including time information indicating a time corresponding to the processing information and the task to instruct the contents of each task, the processing information and time information in the task information The task execution means for performing a plurality of tasks simultaneously with reference to the above, and the priority of the task performed in the task execution means is set so that the priority of the main sequencer task is higher than the priority of the sub-sequencer task When the task set by the priority setting means and the task execution means is in a state where the task set by the priority setting means has a lower priority than the task, the task can be executed. The task being executed by the task execution means is continuously performed, and the task is being executed by the task execution means. When the task set by the priority setting means has a higher priority than the task, the task executed by the task execution means is interrupted and the higher priority is set. And a control means for controlling to perform the set task.

本発明によれば、マルチタスク処理を行うカラオケ装置において、利用者に違和感を与えない処理を行うことができるようになる。   According to the present invention, in a karaoke apparatus that performs multitask processing, it is possible to perform processing that does not give the user a sense of incongruity.

以下、図面を参照しながら、本発明の実施の形態について説明する。
1.実施形態の構成
(1)全体構成
図1は、実施形態の構成を示すブロック図である。本実施形態にかかるカラオケ装置100は、通常のカラオケ演奏を行うことができる他、次に演奏する曲を確認できるように構成されており、CPU101、ROM102、RAM103、ハードディスクドライブ104、表示制御部105、ディスプレイ106、メイン音源107、サブ音源108、パネルインターフェイス109、パネル110、スピーカ120、およびヘッドフォン130を備えている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
1. Configuration of Embodiment (1) Overall Configuration FIG. 1 is a block diagram illustrating a configuration of an embodiment. The karaoke apparatus 100 according to the present embodiment is configured to be able to perform a normal karaoke performance and to confirm a song to be played next, and includes a CPU 101, a ROM 102, a RAM 103, a hard disk drive 104, and a display control unit 105. , A display 106, a main sound source 107, a sub sound source 108, a panel interface 109, a panel 110, a speaker 120, and a headphone 130.

CPU101は、ROM102に記憶された各種プログラムに従って、バスを介して接続された各部の制御を行う。ROM102には、オペレーティングシステム(OS)の他、曲データに基づいてカラオケ演奏を行うためのシーケンサプログラム等の各種アプリケーションプログラムが記憶されている。このような各種プログラムについては、実施形態の動作において後に詳しく説明する。RAM103は、データを一時的に記憶するために用いるメモリであり、後に説明するように、リクエスト曲番号を記憶したり、リクエストされた曲データなどを記憶するために用いられる。HDD104は、大容量の記憶媒体であり、リクエスト可能な曲データが大量に記憶されている。表示制御部105は、ディスプレイ106における表示を制御するものであり、ディスプレイ106には、例えばCRT(Cathode Ray Tube)ディスプレイなどが用いられる。   The CPU 101 controls each unit connected via the bus according to various programs stored in the ROM 102. In addition to an operating system (OS), the ROM 102 stores various application programs such as a sequencer program for performing karaoke performance based on song data. Such various programs will be described in detail later in the operation of the embodiment. The RAM 103 is a memory used for temporarily storing data, and is used for storing a requested song number, requested song data, and the like, as will be described later. The HDD 104 is a large-capacity storage medium and stores a large amount of music data that can be requested. The display control unit 105 controls display on the display 106, and for example, a CRT (Cathode Ray Tube) display or the like is used as the display 106.

本実施形態では、カラオケ装置100は、メイン音源107とサブ音源108との2つの音源を備えている。メイン音源107は、通常のカラオケ演奏に対応する楽曲を生成してスピーカ120に出力し、サブ音源108は、次曲確認用演奏に対応する楽曲を生成してヘッドフォン130に出力する。パネルインターフェイス109は、パネル100とのインターフェイスであり、パネル110は、以下に説明する表示部や各種キーを備えている。   In the present embodiment, the karaoke apparatus 100 includes two sound sources, a main sound source 107 and a sub sound source 108. The main sound source 107 generates music corresponding to the normal karaoke performance and outputs it to the speaker 120, and the sub sound source 108 generates music corresponding to the performance for confirming the next music and outputs it to the headphones 130. The panel interface 109 is an interface with the panel 100, and the panel 110 includes a display unit and various keys described below.

(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によって認識されるようになっている。
(2) Configuration of Panel 110 FIG. 2 is a diagram illustrating an external configuration of the panel 110. The panel 110 includes an LED display unit 111, a numeric keypad 112, a set key 113, a start key 114, and a next song confirmation key 114. The LED display unit 111 is configured to include a 7-segment LED (Light Emitting Diode), and can display the number of reserved songs, the number of a song that is being requested, the number of a song that is being played, and the like. The numeric keypad 112 is a key for inputting the music number, and the set key 113 is a key for confirming the music number input by the numeric keypad 112. The start key 114 is a key for instructing the start of performance. When the start key 114 is operated, display of background video and lyrics is started on the display 106, and music corresponding to the karaoke performance is output on the speaker 120. Start. The next song confirmation key 115 is a key for instructing confirmation of the next requested song of the song output from the speaker 120. When the next song confirmation key 115 is operated, the headphone 130 corresponds to the performance of the next song. The music output starts. The operation of each of these keys is sequentially detected and recognized by the CPU 101 via the panel interface.

(3)RAM103に記憶するデータ構成
次に、RAM103に記憶されるデータ構成について説明する。本実施形態では、RAM103には、図3に示すリクエストキューエリアと、図4に示す曲データ記憶エリアAおよび曲データ記憶エリアBとが設定される。リクエストキューエリアは、リングバッファ状に使用される。テンキー112によって入力されセットキー113によって確定された曲番号が、一定の方向に順次記憶され、記憶された順に読み出される。そして、読み出された曲番号にかかるリクエスト曲の演奏準備が完了すると、新たな曲番号を書き込むことができるようになる。
(3) Data configuration stored in RAM 103 Next, the data configuration stored in the RAM 103 will be described. In the present embodiment, the request queue area shown in FIG. 3 and the music data storage area A and music data storage area B shown in FIG. 4 are set in the RAM 103. The request queue area is used as a ring buffer. The music numbers input by the ten key 112 and confirmed by the set key 113 are sequentially stored in a certain direction and read out in the stored order. Then, when the performance preparation for the requested song related to the read song number is completed, a new song number can be written.

図4に示す曲データ記憶エリアAおよびBは、リクエスト曲の演奏準備に用いられるエリアである。リクエストキューエリアから読み出されたリクエスト曲番号に対応した曲データはHDD104から読み出されて、いずれかのエリアに展開される。カラオケ装置100は、メイン音源107およびサブ音源108の2種類の音源を備えており、同時に楽音信号生成を行う場合がある。本実施形態では、曲データを展開するエリアを2つ設けており、それぞれのエリアは、メイン音源107あるいはサブ音源108のいずれか一方における楽曲生成処理に使用される。本実施形態で用いる曲データは、MIDI規格に基づいて作成されており、各演奏処理内容を示すイベントデータと、各イベントデータの実行を開始するタイミングの時間間隔を示すΔtデータとを備えている。なお、本実施形態では、4分音符の符長を24分割したクロック(MIDIタイミングクロック)数を用いてΔtを表している。   The song data storage areas A and B shown in FIG. 4 are areas used for preparation for performance of the requested song. The music data corresponding to the requested music number read from the request queue area is read from the HDD 104 and expanded in any area. The karaoke apparatus 100 includes two types of sound sources, a main sound source 107 and a sub sound source 108, and may generate a musical sound signal at the same time. In this embodiment, two areas for developing music data are provided, and each area is used for music generation processing in either the main sound source 107 or the sub sound source 108. The song data used in the present embodiment is created based on the MIDI standard, and includes event data indicating the contents of each performance process and Δt data indicating a time interval at which execution of each event data is started. . In this embodiment, Δt is expressed using the number of clocks (MIDI timing clocks) obtained by dividing the note length of a quarter note by 24.

2.実施形態の動作
次に、上記構成を備える実施形態の動作について説明する。
2−1.マルチタスク処理の概要
まず、本実施形態においてCPU101によって実行される各種プログラムについて説明する。図5は、プログラム構成を説明する概念図である。図5に示すように、本実施形態では、オペレーティングシステム(OS)、メインシーケンサプログラムと、サブシーケンサプログラムと、および、その他のアプリケーションプログラムを備えている。OSは、実時間処理を伴うマルチタスク処理を行うことができるオペレーティングシステムであり、例えばパネル110の各種キー操作の検出や、RAM103の管理など基本的動作を行うためのプログラムである。さらに、マルチタスク処理においては、各アプリケーションプログラムに基づく処理(タスク)毎に優先度を設定して、優先度に応じてCPU101の時分割処理を制御することができるようになっている。
2. Next, the operation of the embodiment having the above-described configuration will be described.
2-1. Overview of Multitask Processing First, various programs executed by the CPU 101 in this embodiment will be described. FIG. 5 is a conceptual diagram illustrating the program configuration. As shown in FIG. 5, the present embodiment includes an operating system (OS), a main sequencer program, a sub sequencer program, and other application programs. The OS is an operating system capable of performing multitask processing with real-time processing, and is a program for performing basic operations such as detection of various key operations on the panel 110 and management of the RAM 103, for example. Furthermore, in multitask processing, a priority is set for each process (task) based on each application program, and the time division processing of the CPU 101 can be controlled according to the priority.

メインシーケンサプログラムは、メイン音源107において楽曲を生成するためのアプリケーションプログラムであり、メインシーケンサプログラムに基づく処理(メインシーケンサタスク)は優先度の高いタスクとして設定される。サブシーケンサプログラムは、サブ音源108において楽曲を生成するためのアプリケーションプログラムであり、サブシーケンサプログラムに基づく処理(サブシーケンサタスク)は優先度の低いタスクとして設定される。その他のアプリケーションプログラムには、例えばディスプレイ106に歌詞を表示させるためのプログラムなどが含まれる。   The main sequencer program is an application program for generating music in the main sound source 107, and processing based on the main sequencer program (main sequencer task) is set as a task with high priority. The sub-sequencer program is an application program for generating music in the sub sound source 108, and processing based on the sub-sequencer program (sub-sequencer task) is set as a low priority task. Other application programs include, for example, a program for displaying lyrics on the display 106.

ここで、図6は、本実施形態におけるタスクの状態遷移を示す図である。演奏を行わない状態(演奏準備が行われていない状態)では、タスクは「未登録状態」となっている。RAM103への曲データ展開などの演奏準備が行われ、演奏を開始すると、生成されたタスクは、まず「休止状態」となる。休止状態は、タスクの実行を行うべきタイミングではない状態を示している。なお、タスクを実行すべきタイミングは、曲データ中のΔtによって決定される。   Here, FIG. 6 is a diagram illustrating task state transition in the present embodiment. In a state where performance is not performed (state where performance preparation is not performed), the task is in an “unregistered state”. When performance preparation such as development of music data in the RAM 103 is performed and the performance is started, the generated task is first put into a “pause state”. The hibernation state indicates a state that is not the timing at which the task should be executed. Note that the timing for executing the task is determined by Δt in the music data.

タスクを実行すべきタイミングになると、タスクが起動して「実行可能状態」に遷移する。実行可能状態となったタスクは、優先度に従って処理が開始され、「実行状態」に遷移する。タスクが実行状態である場合であっても、より優先度の高い他タスクが実行可能状態になった場合には処理が中断されて「待ち状態」へと遷移し、処理を再開する際に再度「実行可能状態」に遷移する。実行状態は、タスクの実行が終了すると休止状態に遷移し、次のタスク実行タイミングまで待機する。そして、演奏が終了した場合は、休止状態のタスクを削除して未登録状態に遷移する。   When it is time to execute the task, the task starts and transitions to an “executable state”. The task in the executable state starts processing according to the priority, and transitions to the “execution state”. Even if the task is in the running state, if another task with a higher priority becomes ready to run, the process is interrupted and transitions to the `` waiting state '', and again when the process is resumed Transition to “executable state”. The execution state transitions to a dormant state when task execution is completed, and waits until the next task execution timing. When the performance is finished, the task in the dormant state is deleted and the state is changed to the unregistered state.

ところで、複数のタスクが登録されている場合に、いずれのタスクをCPU101が実行するかについては、例えば図7に示すようなタスク管理テーブルを用いて管理されている。タスク管理テーブルでは、各タスクを識別する「タスクID」毎に、当該タスクの優先度を示す「優先度」、当該タスクを実行するためのプログラムを識別する「プログラム」、当該タスクの実行状態を示す「状態フラグ」などの情報を管理している。「プログラム」は、ROM102上の読み出しアドレスなどで特定されている。   Incidentally, when a plurality of tasks are registered, which task the CPU 101 executes is managed using, for example, a task management table as shown in FIG. In the task management table, for each “task ID” identifying each task, “priority” indicating the priority of the task, “program” identifying the program for executing the task, and the execution state of the task. Information such as “status flag” is managed. The “program” is specified by a read address on the ROM 102.

ここで、図8および図9を参照しながら、本実施形態におけるマルチタスク処理の概要について説明する。まず、図8は、優先度の低いサブシーケンサタスクが実行状態である場合に、優先度の高いメインシーケンサタスクが実行可能状態になった場合の動作を示している。サブシーケンサタスクが実行状態である場合にメインシーケンサタスクが休止状態から実行可能状態に遷移すると、優先度の低いサブシーケンサタスクは中断されて待ち状態に遷移する。これに対して、優先度の高いメインシーケンサタスクは、実行可能状態になるとすぐに処理が開始されて実行状態に遷移する。そして、メインシーケンサタスクの処理が終了すると、休止状態に遷移する。メインシーケンサタスクが終了すると、サブシーケンサタスクは実行可能状態に再度遷移して、処理を再開し、実行状態に遷移する。このように、優先度の高いタスクは、優先度の低いタスクに対して割り込みを行うことができる。   Here, an overview of multitask processing in the present embodiment will be described with reference to FIGS. 8 and 9. First, FIG. 8 shows an operation when a main sequencer task with a high priority is in an executable state when a sub-sequencer task with a low priority is in an execution state. If the main sequencer task changes from the sleep state to the executable state when the sub sequencer task is in the execution state, the sub sequencer task with the lower priority is interrupted and changes to the wait state. On the other hand, the main sequencer task having a high priority starts processing as soon as it enters the executable state and transitions to the running state. Then, when the processing of the main sequencer task is completed, the state transits to the sleep state. When the main sequencer task ends, the sub sequencer task transitions again to the executable state, resumes processing, and transitions to the execution state. In this way, a task with a high priority can interrupt a task with a low priority.

次に図9は、優先度の高いメインシーケンサタスクが実行状態である場合に、優先度の低いサブシーケンサタスクが実行可能状態になった場合の動作を示している。ここでは、メインシーケンサタスクが実行状態である場合に、サブシーケンサタスクが休止状態から実行可能状態に遷移しても、メインシーケンサタスクの方が優先度が高いので、メインシーケンサタスクは中断されない。従って、サブシーケンサタスクは実行可能状態のまま待機し、メインシーケンサタスクの処理が終了してから実行状態に遷移する。このように、優先度の低いタスクは、優先度の高いタスクに対して割り込みを行うことができない。   Next, FIG. 9 shows an operation when a sub sequencer task with a low priority is in an executable state when a main sequencer task with a high priority is in an execution state. Here, when the main sequencer task is in the execution state, even if the sub-sequencer task transitions from the sleep state to the executable state, the main sequencer task has a higher priority, so the main sequencer task is not interrupted. Therefore, the sub-sequencer task waits in the executable state, and transitions to the execution state after the processing of the main sequencer task is completed. As described above, a task having a low priority cannot interrupt a task having a high priority.

以下フローチャートを参照しながら説明する各動作は、上述した優先度に基づいたOSの制御を利用して、通常のカラオケ演奏であるメインシーケンサタスクと、次曲確認用の演奏であるサブシーケンサタスクとを実行する場合の動作を示すものである。   Each operation described below with reference to the flowchart uses the above-described priority-based control of the OS to perform a main sequencer task that is a normal karaoke performance and a sub sequencer task that is a performance for confirming the next song. It shows the operation when executing.

2−2.実施形態の動作を示すフローチャート
次に、図10から図13に示すフローチャートを参照しながら、本実施形態の動作について説明する。
2-2. Flowchart Showing Operation of Embodiment Next, the operation of this embodiment will be described with reference to the flowcharts shown in FIGS.

(1)メインルーチン
図10は、OSに基づいて行われる本実施形態のメインルーチンにかかる処理を示している。カラオケ装置100に電源が投入されると、CPU101は、まず初期設定を行う(S101)。初期設定においては、RAM103における各種エリアやテーブルの初期化などを行う。初期設定が終了すると、次にパネル110における各種キーの状態に基づくパネル処理を行う(S102)。パネル処理においては、LED表示部110における状態表示を行う処理の他、テンキー112、セットキー113、スタートキー114、および次曲確認キー115の操作に基づく処理などを行う。例えば、テンキー112の操作において入力され、セットキー113の操作において確定されたリクエスト曲番号を、上述のRAM103上のリクエストキューエリアに順次記憶する。そして、曲データ記憶エリアAあるいはBのうちいずれか一方のエリアに記憶された曲データが書き換え可能となった場合には、リクエストキューエリアに記憶されている曲番号のうち最も古くキューイングされた曲番号に対応した曲データをHDD104から読み出して、当該曲データ記憶エリアに展開する。そして、展開した曲データに対応したキューイングエリアの曲番号は削除され、次に確定したリクエスト曲番号を記憶する。また、パネル処理においては、このようなキュー管理の他、スタートキー114あるいは次曲確認キー115の操作に基づく演奏準備処理も行う。演奏準備処理については、図11を参照しながら、後に説明する。
(1) Main Routine FIG. 10 shows processing related to the main routine of the present embodiment performed based on the OS. When the karaoke apparatus 100 is turned on, the CPU 101 first performs an initial setting (S101). In the initial setting, various areas and tables in the RAM 103 are initialized. When the initial setting is completed, panel processing based on the state of various keys on the panel 110 is performed (S102). In the panel processing, processing based on the operation of the numeric keypad 112, the set key 113, the start key 114, and the next music confirmation key 115 is performed in addition to processing for displaying the status on the LED display unit 110. For example, the request music number input by the operation of the ten key 112 and confirmed by the operation of the set key 113 is sequentially stored in the request queue area on the RAM 103 described above. When the song data stored in either one of the song data storage areas A and B becomes rewritable, the oldest queued song number stored in the request queue area is stored. The song data corresponding to the song number is read from the HDD 104 and developed in the song data storage area. Then, the music number in the queuing area corresponding to the developed music data is deleted, and the next requested music number is stored. In the panel processing, in addition to such cue management, performance preparation processing based on the operation of the start key 114 or the next music confirmation key 115 is also performed. The performance preparation process will be described later with reference to FIG.

パネル処理を終了すると、タスク管理処理を行う(S103)。タスク管理処理とは、優先度に基づいて各タスクの状態を遷移させる処理であり、タスク管理処理は、図12を用いて後に詳しく説明する。タスク管理処理を終了すると、CPU101はその他処理を行い(S104)、処理をステップS102に移行させて再びパネル処理を行う。ステップS102〜S104の処理は、カラオケ装置100の電源が遮断されるまで繰り返し実行され、これにより適宜キー状態が認識され、タスク管理が行われることによってマルチタスク処理が行われる。   When the panel processing ends, task management processing is performed (S103). The task management process is a process for changing the state of each task based on the priority, and the task management process will be described in detail later with reference to FIG. When the task management process ends, the CPU 101 performs other processes (S104), shifts the process to step S102, and performs the panel process again. The processes of steps S102 to S104 are repeatedly executed until the power of the karaoke apparatus 100 is turned off, whereby the key state is recognized as appropriate, and task management is performed to perform multitask processing.

(2)演奏準備処理
次に、図11は、メインシーケンサあるいはサブシーケンサにおける演奏開始が指示された場合の演奏準備処理を示すフローチャートである。なお、メインシーケンサによる演奏は、例えばスタートキー114が操作された場合や、先にキューイングされていた曲の演奏が終了した後に開始される。サブシーケンサによる演奏は、次曲確認キー115が操作された場合に開始される。
(2) Performance Preparation Processing Next, FIG. 11 is a flowchart showing performance preparation processing when an instruction to start performance in the main sequencer or sub-sequencer is given. The performance by the main sequencer is started, for example, when the start key 114 is operated or after the performance of the previously queued music is finished. The performance by the sub-sequencer is started when the next music confirmation key 115 is operated.

以下、メインシーケンサの演奏準備処理を例として図11に示すフローチャートの説明を行う。演奏準備処理を開始すると、CPU101は、メインシーケンサタスクが未登録状態であるか否かを判別し(S201)、未登録状態ではないと判別した場合は、タスクが登録されてOSによって管理されている状態であると判別できるので、処理をメインルーチンに戻す。   In the following, the flowchart shown in FIG. 11 will be described taking the performance preparation processing of the main sequencer as an example. When the performance preparation process is started, the CPU 101 determines whether or not the main sequencer task is in an unregistered state (S201). If it is determined that the main sequencer task is not in an unregistered state, the task is registered and managed by the OS. Therefore, the process returns to the main routine.

ステップS201の判別において、メインシーケンサタスクが未登録状態であると判別した場合は(S201;YES)、タスク管理テーブルの設定を行う(S202)。演奏準備処理がメインシーケンサタスクであれば、優先度を高く設定して、メインシーケンサプログラムの読み出しアドレスを指定する(図7参照)。タスク管理テーブルの設定が終了すると、次に、メインシーケンサによって演奏する曲データを読み出すRAM103のアドレスをポインタMpにセットする(S203)。曲データはキューイング順に読み出されてRAM103上の曲データ記憶エリアAおよびBに交互に展開されており、メインシーケンサによって読み出すべき曲データが記憶されているアドレスを特定する必要がある。また、イベントデータは時間の経過に伴って順次実行されていくように構成されているので、次のタイミングにおいて実行するイベントデータが記憶されたアドレスも特定する必要がある。そこで本実施形態では、次に実行すべきイベントデータの記憶されたアドレスを示す変数であるポインタMpを用いて、イベントデータの実行を行う毎にポインタMpの値を更新するものとする。よし詳しくは、図12を参照しながら後に説明する。   If it is determined in step S201 that the main sequencer task is unregistered (S201; YES), the task management table is set (S202). If the performance preparation process is the main sequencer task, the priority is set high and the read address of the main sequencer program is designated (see FIG. 7). When the setting of the task management table is completed, the address of the RAM 103 from which music data to be played by the main sequencer is read is set in the pointer Mp (S203). The song data is read in the queuing order and is alternately developed in the song data storage areas A and B on the RAM 103, and it is necessary to specify the address where the song data to be read is stored by the main sequencer. In addition, since the event data is configured to be sequentially executed as time elapses, it is necessary to specify an address at which event data to be executed at the next timing is stored. Therefore, in this embodiment, the value of the pointer Mp is updated every time the event data is executed using the pointer Mp that is a variable indicating the address where the event data to be executed next is stored. The details will be described later with reference to FIG.

ポインタMpのセットが完了すると、次に、メインシーケンサタスクの状態を休止状態から実行可能状態に遷移させるタイミングをカウントするためのカウンタMcに、最初のイベントデータを実行するまでのΔtをセットする。本実施形態では、このカウンタMcの値をMIDIタイミングクロックに基づいてダウンカウントすることによって、時間の経過を判別できるようになっている。より詳しくは、図12を参照しながら後に説明する。なお、サブシーケンサであれば、上述の各変数はポインタSp、カウンタScとなる。   When the setting of the pointer Mp is completed, next, Δt until the first event data is executed is set in the counter Mc for counting the timing of transitioning the state of the main sequencer task from the sleep state to the executable state. In the present embodiment, the elapsed time can be determined by down-counting the value of the counter Mc based on the MIDI timing clock. More details will be described later with reference to FIG. In the case of a sub-sequencer, the above-described variables are a pointer Sp and a counter Sc.

(3)割り込み処理
本実施形態においては、メインシーケンサおよびサブシーケンサは、MIDIタイミングクロック毎に割り込み処理を行うことによって、所定のタイミングにおいて楽音生成処理を実行できるようになっている。MIDIタイミングクロックは、4分音符の符長を24分割したものであるので、割り込み時間間隔は曲のテンポによって異なる。テンポは、曲データによって指定されているが、図示せぬテンポ変更キーの操作によって変更することも可能である。テンポは曲毎に異なるので、メインシーケンサによって演奏する曲とサブシーケンサによって演奏する曲のテンポが異なる場合がある。そこで、本実施形態では、メインシーケンサのテンポに基づく割り込みと、サブシーケンサのテンポに基づく割り込みとをそれぞれ行っているものとし、以下、メインシーケンサのテンポに基づく割り込みを例として説明する。
(3) Interrupt processing In the present embodiment, the main sequencer and the sub-sequencer can execute a musical tone generation process at a predetermined timing by performing an interrupt process for each MIDI timing clock. Since the MIDI timing clock is a quarter note divided by 24, the interrupt time interval differs depending on the tempo of the song. The tempo is specified by the music data, but can be changed by operating a tempo change key (not shown). Since the tempo differs for each song, the tempo of the song played by the main sequencer and the song played by the sub sequencer may be different. Therefore, in the present embodiment, it is assumed that an interrupt based on the tempo of the main sequencer and an interrupt based on the tempo of the sub sequencer are performed, respectively. Hereinafter, an interrupt based on the tempo of the main sequencer will be described as an example.

図12は、割り込み処理の内容を示すフローチャートである。割り込み処理が起動すると、CPU101は、まずメインシーケンサタスクが休止状態であるか否かを判別する(S301)。ここで、休止状態ではないと判別した場合は(S301;NO)、すでにタスクが起動しており、タスクを実行可能状態に遷移させる処理を行う必要がないので、処理をメインルーチンに戻す。一方、ステップS301の判別において、タスクが休止状態であると判別した場合は(S301;YES)、カウンタMc=0であるか否か、すなわち、イベントデータを実行すべきタイミングであるか否かを判別する(S302)。   FIG. 12 is a flowchart showing the contents of the interrupt process. When the interrupt process is activated, the CPU 101 first determines whether or not the main sequencer task is in a dormant state (S301). If it is determined that the task is not in the dormant state (S301; NO), the task has already started and there is no need to perform a process for transitioning the task to the executable state, so the process returns to the main routine. On the other hand, if it is determined in step S301 that the task is in the dormant state (S301; YES), whether or not the counter Mc = 0, that is, whether or not the event data should be executed is determined. A determination is made (S302).

ステップS302の判別において、Mc≠0と判別した場合は(S302;NO)、Mc=Mc−1を実行してカウンタMcの値を1ダウンカウントする(S303)。先に説明したように、演奏準備処理においてカウンタMcには、最初のイベントデータまでのΔtがセットされており、割り込み処理は1MIDIタイミングクロック毎に起動されるので、ステップS303によるダウンカウントにより経過時間を認識できるようになっている。   If it is determined in step S302 that Mc ≠ 0 (S302; NO), Mc = Mc-1 is executed and the value of the counter Mc is counted down by 1 (S303). As described above, since Δt up to the first event data is set in the counter Mc in the performance preparation process, and the interrupt process is started every 1 MIDI timing clock, the elapsed time is counted by the down-count in step S303. Can be recognized.

一方、ステップS302の判別において、Mc=0であると判別した場合は(S201;YES)、Δtが経過したと判別できので、次にメインシーケンサタスクを実行可能状態に遷移させる(S304)。このステップにおいて実行可能状態となったタスクは、後に説明するタスク管理処理(図13)において、優先度に従って実行状態に遷移するようになる。タスクを実行可能状態に遷移させると、次にイベントデータを実行すべきタイミングまでのΔtをカウンタMcにセットし(S305)、次に実行すべきイベントデータの読み出しアドレスをポインタMpにセットして(S306)、処理をメインルーチンに戻す。図12に示した割り込み処理は、MIDIタイミングクロック毎に起動されるが、カウンタのダウンカウント処理(S303)は、タスクが休止状態である場合にのみ実行されるので、タスクが実行状態である場合や実行可能状態や待ち状態としてとして待機している場合にはカウントは進まないようになっている。   On the other hand, if it is determined in step S302 that Mc = 0 (S201; YES), it can be determined that Δt has elapsed, and the main sequencer task is then transitioned to an executable state (S304). The task that is in an executable state in this step transitions to an execution state according to priority in a task management process (FIG. 13) described later. When the task is changed to an executable state, Δt until the next timing at which event data should be executed is set in the counter Mc (S305), and the read address of event data to be executed next is set in the pointer Mp ( (S306) The process is returned to the main routine. The interrupt process shown in FIG. 12 is started every MIDI timing clock, but the counter down-count process (S303) is executed only when the task is in the dormant state, so the task is in the execution state. In addition, the count is not advanced when waiting as an executable state or a wait state.

(4)タスク管理処理
次に図13を参照しながら、タスク管理処理(図10:103)の詳細について説明する。タスク管理処理が開始すると、CPU101は、実行状態のタスクがあるか否かを判別する(S401)。登録されている各タスクの状態は、図7に示したタスク管理テーブル中のタスク状態フラグを参照することによって認識することができる。ステップS401の判別において、実行状態のタスクがないと判別した場合は(S401;NO)、次に、実行可能状態のタスクがあるか否かを判別し(S402)、実行可能状態のタスクもないと判別した場合は(S402;NO)、タスク管理処理において状態遷移させるべきタスクは存在しないと判別できるので、処理をそのままメインルーチンに戻す。ステップS402の判別において、実行可能状態のタスクがあると判別した場合は(S402;YES)、次に、実行可能状態タスクが複数であるか否かを判別し(S403)、複数ではないと判別した場合は(S403;NO)、一つのタスクのみが実行可能状態であり、優先度を考慮する必要がないので、当該タスクを実行状態に遷移させて(S404)、処理をメインルーチンに戻す。
(4) Task Management Processing Next, details of the task management processing (FIG. 10: 103) will be described with reference to FIG. When the task management process is started, the CPU 101 determines whether there is a task in an execution state (S401). The status of each registered task can be recognized by referring to the task status flag in the task management table shown in FIG. If it is determined in step S401 that there is no task in the execution state (S401; NO), it is then determined whether there is a task in the executable state (S402), and there is no task in the executable state. (S402; NO), since it can be determined that there is no task whose state should be changed in the task management process, the process is directly returned to the main routine. If it is determined in step S402 that there is a task in an executable state (S402; YES), it is then determined whether there are a plurality of executable tasks (S403). In such a case (S403; NO), only one task is in an executable state and there is no need to consider the priority. Therefore, the task is shifted to the execution state (S404), and the process returns to the main routine.

一方、ステップS403の判別において、実行可能状態のタスクが複数であると判別した場合には(S403;YES)、優先度の最も高いタスクを実行状態に遷移させて(S405)、処理をメインルーチンに戻す。次に、ステップS401の判別において実行状態のタスクがあると判別した場合(S401;YES)について説明する。CPU101は、まず、実行可能状態の他タスクがあるか否かを判別し(S406)、実行可能状態の他タスクが無いと判別した場合は(S406;NO)、次に、実行状態であるタスクを終了するか否かを判別する(S407)。ここでは、図示せぬ終了キーが操作された場合や、演奏終了を示すイベントデータが実行された場合に、タスク終了と判別する。   On the other hand, if it is determined in step S403 that there are a plurality of tasks in the executable state (S403; YES), the task having the highest priority is shifted to the execution state (S405), and the process is performed in the main routine. Return to. Next, a case where it is determined in step S401 that there is a task in an execution state (S401; YES) will be described. The CPU 101 first determines whether there are other tasks in the executable state (S406). If it is determined that there are no other tasks in the executable state (S406; NO), then the task in the execution state is next. It is determined whether or not to end (S407). Here, it is determined that the task is ended when an end key (not shown) is operated or when event data indicating the end of performance is executed.

ステップS407の判別において、実行状態のタスクを終了すべきではないと判別した場合は(S407;NO)、タスク管理処理において状態遷移させるべきタスクは存在しないと判別できるので、処理をそのままメインルーチンに戻す。一方、ステップS407の判別において、実行状態のタスクを終了すべきであると判別した場合には(S407;YES)、当該タスクを休止状態に遷移させ(S408)、次に、待ち状態となっている他タスクがあるか否かを判別する(S409)。ステップS409の判別において、待ち状態の他タスクがないと判別した場合には(S409;NO)、状態遷移させるべきタスクがないのでメインルーチンに処理を戻すが、待ち状態のタスクがあると判別した場合は(S409;YES)、当該タスクを実行可能状態に遷移させてから(S410)、処理をメインルーチンに戻す。   If it is determined in step S407 that the task in the execution state should not be terminated (S407; NO), it can be determined that there is no task whose state should be changed in the task management process, so that the process is directly transferred to the main routine. return. On the other hand, if it is determined in step S407 that the task in the execution state should be terminated (S407; YES), the task is transitioned to the dormant state (S408), and then enters a wait state. It is determined whether there are other tasks that are present (S409). If it is determined in step S409 that there is no other task in the waiting state (S409; NO), the process is returned to the main routine because there is no task to be changed in state, but it is determined that there is a task in the waiting state. In this case (S409; YES), the task is changed to an executable state (S410), and the process is returned to the main routine.

ところで、ステップS406の判別において、実行可能状態の他タスクがあると判別した場合は(S406;YES)、次に、当該実行可能状態タスクが実行状態タスクよりも優先度が高いか否かを判別する(S411)。ここで、実行可能状態タスクが実行状態タスクよりも優先度が低いと判別した場合は(S411;NO)、実行状態タスクの実行を継続すべきであり、遷移させるべきタスクがないと判別できるので、メインルーチンに処理を戻す。一方、ステップS411の判別において、行可能状態タスクが実行状態タスクよりも優先度が高いと判別した場合は(S411;YES)、実行状態のタスクを中断して(S412)、待ち状態に遷移させる(S413)。そして、実行可能状態の他タスクを実行状態に遷移させ(S414)、処理をメインルーチンに戻す。   By the way, if it is determined in step S406 that there is another task in the executable state (S406; YES), then it is determined whether the executable state task has a higher priority than the execution state task. (S411). Here, if it is determined that the executable state task has a lower priority than the execution state task (S411; NO), the execution of the execution state task should be continued, and it can be determined that there is no task to be changed. Return processing to the main routine. On the other hand, if it is determined in step S411 that the ready state task has a higher priority than the execution state task (S411; YES), the execution state task is interrupted (S412), and a transition is made to the wait state. (S413). Then, another task in the executable state is shifted to the execution state (S414), and the process returns to the main routine.

2−3.実施形態の具体的動作
次に、図10〜図13に示した処理を循環することによって、行われる実施形態の具体的動作について図14に示すタイムチャートを参照しながら説明する。図14に示すタイムチャートは、曲データによって指示される状態と、上記実施形態における状態と、従来技術における状態とを比較してたものである。曲データが指示する状態とは、当該曲データによる楽音生成処理を単独で行った場合のタイムチャートである。図14においては、メインシーケンサおよびサブシーケンサのそれぞれによって読み出される曲データについてそれぞれ図示している。
2-3. Specific Operation of Embodiment Next, the specific operation of the embodiment performed by circulating the processing shown in FIGS. 10 to 13 will be described with reference to the time chart shown in FIG. The time chart shown in FIG. 14 is a comparison between the state indicated by the song data, the state in the above embodiment, and the state in the prior art. The state indicated by the song data is a time chart in the case where the tone generation process using the song data is performed independently. In FIG. 14, music data read by each of the main sequencer and the sub-sequencer are shown.

上記実施形態においては、メインシーケンサタスクの優先度はサブシーケンサタスクの優先度よりも高いので、例えばイベントIm1にかかるタスクが実行状態であるときに、イベントIs1にかかるタスクが実行可能状態に遷移しても、処理は中断されず、イベントIm1にかかるタスクが終了してからイベントIS1にかかるタスクが実行状態になる。そして、サブシーケンサタスク(イベントIs1にかかるタスク)が実行状態であっても、優先度の高いメインシーケンサタスク(イベントIm2にかかるタスク)が実行可能状態となった場合には、サブシーケンサタスクを中断して待ち状態とし、先にメインシーケンサタスクを実行状態とするので、イベントIm2は曲データが指示するタイミング通りに実行されることになる。   In the above embodiment, since the priority of the main sequencer task is higher than the priority of the sub sequencer task, for example, when the task related to the event Im1 is in the execution state, the task related to the event Is1 transitions to the executable state. However, the processing is not interrupted, and the task related to the event IS1 becomes the execution state after the task related to the event Im1 is completed. Even if the sub-sequencer task (task related to event Is1) is in the execution state, if the main sequencer task (task related to event Im2) with a high priority becomes executable, the sub-sequencer task is suspended. Since the main sequencer task is executed first, the event Im2 is executed according to the timing indicated by the song data.

これに対して従来技術における状態では、優先度に応じた処理を行うことはできないので、タスクが重複する場合には、先に実行可能状態となったタスクが終了してから、後に実行可能状態となったタスク(イベントIs1)が実行状態になる。そして、先に実行状態であったサブシーケンサタスク(イベントIs1にかかるタスク)が終了してから、後に実行可能状態となったメインシーケンサタスク(イベントIm2にかかるタスク)が実行可能状態になるので、図14に示すように、イベントIm2は曲データが指示するタイミングよりも遅れて実行されるようになる。曲データが指示するイベント間のΔtは、イベントが実行されてからの時間間隔であるから、あるイベントの実行が遅れるに従って、次のイベントの実行も遅れていくようになる。   On the other hand, in the state of the prior art, processing according to priority cannot be performed. Therefore, when tasks overlap, the task that can be executed first ends, and then it can be executed later. The task that has become (event Is1) becomes an execution state. Then, after the sub-sequencer task (task related to event Is1) that was in the execution state first ends, the main sequencer task (task related to event Im2) that became executable later becomes the executable state. As shown in FIG. 14, the event Im2 is executed later than the timing indicated by the song data. Since Δt between events indicated by the song data is a time interval after the event is executed, the execution of the next event is delayed as the execution of a certain event is delayed.

このように、従来技術においては、メインシーケンサタスクによる実行およびサブシーケンサタスクによる実行は、いずれもが遅延していく場合が生じやすいのに比べ、本実施形態においては、サブシーケンサタスクによる実行のみが遅延していくようになる。本実施形態では、メインシーケンサタスクによって生成される楽曲は、カラオケ演奏としてスピーカ120から出力される演奏となり、ディスプレイ106に表示される歌詞および歌詞の色替えと同期するものであるから、多少の遅延でも使用者に違和感を与える。これに対してサブシーケンサタスクによる楽音信号生成は、次曲確認のためにヘッドフォン130で聴くための演奏であり、演奏が遅延していっても、それほど違和感は与えない。   Thus, in the prior art, execution by the main sequencer task and execution by the sub-sequencer task are likely to be delayed, but in this embodiment, only execution by the sub-sequencer task is performed. It will be delayed. In the present embodiment, the music generated by the main sequencer task is a performance output from the speaker 120 as a karaoke performance, and is synchronized with the lyrics displayed on the display 106 and the color change of the lyrics. But it gives the user a sense of discomfort. On the other hand, the tone signal generation by the sub-sequencer task is a performance for listening to the headphones 130 for confirmation of the next song, and even if the performance is delayed, there is no sense of incongruity.

3.変形例
なお、本発明は既述した実施形態に限定されるものではなく、以下のような各種の変形が可能である。
3. Modifications The present invention is not limited to the above-described embodiments, and various modifications as described below are possible.

上記実施形態においては、優先度を「高」と「低」との2段階を用いて説明したが、優先度の段階はさらに細分化して設定できるようにしてもよい。例えば、優先度を示す数値を1〜10などと設定できるようにして、数値の小さいタスクを数値の大きなタスクよりも優先して実行するようにしてもよい。また、上記実施形態では、メインシーケンサとサブシーケンサの2種類のタスクを用いて説明したが、時間情報を参照して行う処理であればどのような処理でもよく、マルチタスクは上述の2種類に限定されるものではなく、例えば歌詞の色替え処理や、楽音に効果を付与するエフェクト処理など他の処理であっても構わない。   In the above embodiment, the priority has been described using two levels of “high” and “low”, but the priority level may be further subdivided and set. For example, a numerical value indicating the priority may be set to 1 to 10 or the like, and a task with a small numerical value may be executed in preference to a task with a large numerical value. In the above embodiment, the two types of tasks, the main sequencer and the sub sequencer, have been described. However, any processing can be performed as long as the time information is referred to, and the multitask can be divided into the above two types. The present invention is not limited, and other processes such as, for example, a color change process for lyrics and an effect process for giving an effect to a musical sound may be used.

上記実施形態においては、カラオケ装置100は2つの音源(メイン音源107、サブ音源108)を備えるものとして説明したが、1つの音源をメインシーケンサとサブシーケンサで共有するように構成しても構わないし、3つ以上の音源を備えていても構わない。   In the above embodiment, the karaoke apparatus 100 has been described as including two sound sources (the main sound source 107 and the sub sound source 108). However, one sound source may be shared by the main sequencer and the sub sequencer. Three or more sound sources may be provided.

各タスクの優先度を決定する手段は、予め重い処理となることが予想されているものの優先度を高く設定するように決定されていても構わない。上記実施形態においては、メインシーケンサタスクは、ディスプレイ106に歌詞や背景映像を表示させる処理と同期して行わなければならないので、予め優先度を高く設定している。上記実施形態においては、説明を省略しているが、曲データ中には、イベントデータやΔtデータと対応して歌詞表示を指示するデータも含まれているものとする。なお、曲データ中のイベントデータは、上記実施形態のようにMIDI規格に基づいて作成されたものに限らず、楽曲演奏処理内容をデジタルデータによって指示することができればどのような規格であってもよい。イベントデータが指示する楽曲演奏処理内容には、発音や消音のような基本的な処理の他、残響音やバックコーラスなどの効果を付与する処理があってもよい。このような効果処理が多いほど、重い処理となると判断するようにしてもよい。   The means for determining the priority of each task may be determined so as to set a high priority even though it is expected to be a heavy process in advance. In the above embodiment, the main sequencer task has to be performed in synchronization with the process of displaying the lyrics and the background video on the display 106, so the priority is set high in advance. In the above embodiment, the description is omitted, but it is assumed that the song data also includes data instructing display of lyrics corresponding to the event data and Δt data. The event data in the music data is not limited to those created based on the MIDI standard as in the above embodiment, and any standard can be used as long as the music performance processing content can be instructed by digital data. Good. The music performance processing content instructed by the event data may include basic processing such as sound generation and muting, and processing for imparting effects such as reverberation and back chorus. It may be determined that the greater the number of such effect processes, the heavier the process.

また、イベント間の時間間隔を示すΔtデータは、上記実施形態のようにMIDIタイミングクロックを用いて記述することに限らず、他のクロック数を用いても構わないし、絶対時間を用いても構わない。あるいは、曲データ中に優先度を指定するデータを記述してもよいし、曲のテンポに応じて決定するようにしてもよい。上述のように、MIDIタイミングクロック間の時間間隔(割り込み時間間隔)はテンポに応じて異なるので、テンポの速い曲は単位時間あたりの割り込み回数が多くなり、テンポの遅い曲は単位時間あたりの割り込み回数が少なくなるからである。また、演奏が開始してからユーザ操作によって優先度を変更できるようにしてもよい。   In addition, the Δt data indicating the time interval between events is not limited to being described using the MIDI timing clock as in the above-described embodiment, and other clock numbers may be used or absolute time may be used. Absent. Alternatively, data specifying the priority may be described in the music data, or may be determined according to the music tempo. As described above, since the time interval (interrupt time interval) between MIDI timing clocks differs depending on the tempo, songs with a fast tempo have more interrupts per unit time, and songs with a slow tempo have an interrupt per unit time. This is because the number of times decreases. Further, the priority may be changed by a user operation after the performance is started.

上記実施形態のように1台のカラオケ装置における処理に限らず、例えば複数のカラオケ制御装置を用いて複数のカラオケ装置を制御するような場合でも、本発明は適用可能である。例えば、1台のサーバをコントロールルームに設置して、演奏用端末装置を各部屋に設置するカラオケボックスシステムにおいて、テンポの早い曲を演奏する端末用タスクの優先度を高くして、テンポの遅い曲を演奏する端末用タスクの優先度を低くするようにしてもよい。   The present invention is applicable not only to the processing in one karaoke apparatus as in the above embodiment, but also to controlling a plurality of karaoke apparatuses using a plurality of karaoke control apparatuses, for example. For example, in a karaoke box system in which one server is installed in a control room and a performance terminal device is installed in each room, the priority of a terminal task for playing a song with a fast tempo is increased and the tempo is slow. You may make it lower the priority of the task for terminals which plays music.

実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of embodiment. パネルの外観構成を示す図である。It is a figure which shows the external appearance structure of a panel. リクエストキューエリアを説明する図である。It is a figure explaining a request queue area. 曲データ記憶エリアを説明する図である。It is a figure explaining a music data storage area. プログラムの構成を示す図である。It is a figure which shows the structure of a program. タスクの状態遷移を説明する図である。It is a figure explaining the state transition of a task. タスク制御テーブルを説明する図である。It is a figure explaining a task control table. マルチタスク処理を説明する図である(その1)。It is a figure explaining multitask processing (the 1). マルチタスク処理を説明する図である(その2)。It is a figure explaining multitask processing (the 2). 実施形態の動作を示すフローチャートである(メインルーチン)。It is a flowchart which shows operation | movement of embodiment (main routine). 実施形態の動作を示すフローチャートである(演奏準備処理)。It is a flowchart which shows operation | movement of embodiment (performance preparation processing). 実施形態の動作を示すフローチャートである(割り込み処理)。It is a flowchart which shows operation | movement of embodiment (interrupt processing). 実施形態の動作を示すフローチャートである(タスク管理処理)。It is a flowchart which shows operation | movement of embodiment (task management process). 実施形態の動作を従来技術と比較して示すタイムチャートである。It is a time chart which shows operation | movement of embodiment compared with a prior art.

符号の説明Explanation of symbols

100…カラオケ装置、101…CPU、102…ROM、103…RAM、104…HDD、105…表示制御部、106…ディスプレイ、107…メイン音源、108…サブ音源、109…パネルインターフェイス、110…パネル、111…LED表示部、112…テンキー、113…セットキー、114…スタートキー、115…次曲確認キー。 DESCRIPTION OF SYMBOLS 100 ... Karaoke apparatus, 101 ... CPU, 102 ... ROM, 103 ... RAM, 104 ... HDD, 105 ... Display control part, 106 ... Display, 107 ... Main sound source, 108 ... Sub sound source, 109 ... Panel interface, 110 ... Panel, 111 ... LED display section, 112 ... numeric keypad, 113 ... set key, 114 ... start key, 115 ... next song confirmation key.

Claims (2)

複数のタスクをマルチタスク処理で行うカラオケ装置であって、
メイン音源において楽曲を生成するためのメインシーケンサプログラムと、サブ音源において楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、
前記アプリケーションプログラムに基づくタスク、前記メインシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われるメインシーケンサタスク、及び前記サブシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われないサブシーケンサタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、
前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、
前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、
前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段と
を備えることを特徴とするカラオケ装置。
A karaoke apparatus that performs a plurality of tasks by multitask processing,
A main sequencer program for generating music in the main sound source, a sub-sequencer program for generating music in the sub-sound source, and a program storage means for storing application programs other than the main sequencer program and the sub-sequencer program;
Tasks based on the application program, the main sequencer task is performed in synchronism with the task based on the I task der application program based on the main sequencer program and the application program What tasks der based on the sub-sequence program about sub sequencer task not performed in synchronization with the task-based, and task information storage means for storing task information including time information indicating a time corresponding to the processing information and the task to instruct the content of each of the tasks ,
Task execution means for simultaneously performing a plurality of tasks while referring to processing information and time information in the task information;
Priority setting means for setting the priority of the task performed in the task execution means so that the priority of the main sequencer task is higher than the priority of the sub-sequencer task;
When the task is executed by the task execution unit, the task execution unit performs when the task set by the priority setting unit has a lower priority than the task. When the task is continuously performed and the task is performed by the task execution unit, when the task set to a higher priority than the task by the priority setting unit becomes executable, A karaoke apparatus comprising: control means for controlling the task set by the task execution means to be interrupted and to perform the task set at the high priority.
メイン音源においてカラオケ演奏としての楽曲を生成するためのメインシーケンサプログラムと、サブ音源において前記メインシーケンサタスクで生成される楽曲の次の楽曲を生成するためのサブシーケンサプログラムと、前記メインシーケンサプログラム及びサブシーケンサプログラム以外のアプリケーションプログラムとを記憶するプログラム記憶手段と、
前記アプリケーションプログラムに基づくタスク、前記メインシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われるメインシーケンサタスク、及び前記サブシーケンサプログラムに基づくタスクであって前記アプリケーションプログラムに基づくタスクと同期して行われないサブシーケンサタスクについて、各々のタスクの内容を指示する処理情報及び当該タスクに対応する時間を指示する時間情報を含むタスク情報を記憶するタスク情報記憶手段と、
前記タスク情報中の処理情報及び時間情報を参照しながら同時に複数のタスクを行うタスク実行手段と、
前記メインシーケンサタスクの優先度を前記サブシーケンサタスクの優先度よりも高くするよう、前記タスク実行手段において行われる前記タスクの優先度を設定する優先度設定手段と、
前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも低い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを継続して行わせ、前記タスク実行手段によりタスクが行われている場合に、前記優先度設定手段によって当該タスクよりも高い優先度に設定されたタスクが実行可能な状態になったときには、前記タスク実行手段が行っているタスクを中断させて、当該高い優先度に設定されたタスクを行わせるよう制御する制御手段と
を備えることを特徴とするカラオケ装置。
A main sequencer program for generating music as karaoke performance in the main sound source, a sub-sequencer program for generating music next to the music generated by the main sequencer task in the sub sound source, the main sequencer program, and the sub Program storage means for storing application programs other than the sequencer program;
Tasks based on the application program, the main sequencer task is performed in synchronism with the task based on the I task der application program based on the main sequencer program and the application program What tasks der based on the sub-sequence program about sub sequencer task not performed in synchronization with the task-based, and task information storage means for storing task information including time information indicating a time corresponding to the processing information and the task to instruct the content of each of the tasks ,
Task execution means for simultaneously performing a plurality of tasks while referring to processing information and time information in the task information;
Priority setting means for setting the priority of the task performed in the task execution means so that the priority of the main sequencer task is higher than the priority of the sub-sequencer task;
When the task is executed by the task execution unit, the task execution unit performs when the task set by the priority setting unit has a lower priority than the task. When the task is continuously performed and the task is performed by the task execution unit, when the task set to a higher priority than the task by the priority setting unit becomes executable, A karaoke apparatus comprising: control means for controlling the task set by the task execution means to be interrupted and to perform the task set at the high priority.
JP2008265782A 2008-10-14 2008-10-14 Karaoke equipment Expired - Fee Related JP4720893B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008265782A JP4720893B2 (en) 2008-10-14 2008-10-14 Karaoke equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008265782A JP4720893B2 (en) 2008-10-14 2008-10-14 Karaoke equipment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP01902299A Division JP4477159B2 (en) 1999-01-27 1999-01-27 Karaoke equipment

Publications (2)

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

Family

ID=40500407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008265782A Expired - Fee Related JP4720893B2 (en) 2008-10-14 2008-10-14 Karaoke equipment

Country Status (1)

Country Link
JP (1) JP4720893B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10507543A (en) * 1994-10-12 1998-07-21 テクニカル・メインテナンス・コーポレイシヨン Communication method for intelligent digital audiovisual playback system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2936872B2 (en) * 1992-03-04 1999-08-23 ヤマハ株式会社 Music control device
JPH05333889A (en) * 1992-05-29 1993-12-17 Victor Co Of Japan Ltd Multiple karaoke system
JP2751135B2 (en) * 1993-06-30 1998-05-18 日本コロムビア株式会社 Karaoke system
JPH0728484A (en) * 1993-07-07 1995-01-31 Sony Corp Remote controller for karaoke (orchestration without lyrics) with introduction playing function
JP3324837B2 (en) * 1993-09-08 2002-09-17 ブラザー工業株式会社 Singing sound generator and singing operation unit
JP3596048B2 (en) * 1994-09-27 2004-12-02 ヤマハ株式会社 Automatic accompaniment device
JPH08320694A (en) * 1995-05-26 1996-12-03 Ekushingu:Kk Musical sound reproducing device
FR2753868A1 (en) * 1996-09-25 1998-03-27 Technical Maintenance Corp METHOD FOR SELECTING A RECORDING ON AN AUDIOVISUAL DIGITAL REPRODUCTION SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD
JPH10319977A (en) * 1997-05-15 1998-12-04 Daiichi Kosho:Kk Karaoke (sign-along machine) playing device and portable test hearing terminal for karaoke
JPH10187177A (en) * 1997-10-30 1998-07-14 Yamaha Corp Lyrics display device for karaoke

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10507543A (en) * 1994-10-12 1998-07-21 テクニカル・メインテナンス・コーポレイシヨン Communication method for intelligent digital audiovisual playback system

Also Published As

Publication number Publication date
JP2009048207A (en) 2009-03-05

Similar Documents

Publication Publication Date Title
JP3198890B2 (en) Automatic performance data processor
EP3379526B1 (en) Musical sound generation device, musical sound generation method and electronic instrument
CN105590620B (en) Processing device, processing method, and electronic musical instrument
JP2015081927A (en) Electronic music instrument, program and sound production pitch selection method
EP3550555A1 (en) Electronic musical instrument, method, and storage medium
JPH09325778A (en) Music sound generating method
JP3922224B2 (en) Automatic performance device and program
JP5915420B2 (en) Musical sound generating device, musical sound generating method, electronic musical instrument and program
JP5375868B2 (en) Playback method switching device, playback method switching method, and program
JP4720893B2 (en) Karaoke equipment
JP4477159B2 (en) Karaoke equipment
JP6455189B2 (en) Waveform reading apparatus, method, program, and electronic musical instrument
JPH09204177A (en) Device and method for musical sound generation
JP4096952B2 (en) Music generator
JP3725247B2 (en) Music generation processing method
JP6357772B2 (en) Electronic musical instrument, program and pronunciation pitch selection method
JP4241833B2 (en) Automatic performance device and program
JP4572980B2 (en) Automatic performance device and program
JPH11126069A (en) Musical sound generating method
JP2006030841A (en) Operation input device
JP6606839B2 (en) Waveform writing apparatus, method, program, and electronic musical instrument
JP3705203B2 (en) Music generation method
JP5652356B2 (en) Sound source control device and sound source control program
JP6464824B2 (en) Music performance device and music performance program
JP5445802B2 (en) Karaoke remote control device and program for karaoke remote control device

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