JP6264660B2 - 音源制御装置、カラオケ装置、音源制御プログラム - Google Patents

音源制御装置、カラオケ装置、音源制御プログラム Download PDF

Info

Publication number
JP6264660B2
JP6264660B2 JP2014193097A JP2014193097A JP6264660B2 JP 6264660 B2 JP6264660 B2 JP 6264660B2 JP 2014193097 A JP2014193097 A JP 2014193097A JP 2014193097 A JP2014193097 A JP 2014193097A JP 6264660 B2 JP6264660 B2 JP 6264660B2
Authority
JP
Japan
Prior art keywords
synthesizer
data
sound source
music
waveform data
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.)
Active
Application number
JP2014193097A
Other languages
English (en)
Other versions
JP2016066391A (ja
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2014193097A priority Critical patent/JP6264660B2/ja
Publication of JP2016066391A publication Critical patent/JP2016066391A/ja
Application granted granted Critical
Publication of JP6264660B2 publication Critical patent/JP6264660B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、MIDI(Musical Instrument Digital Interface)を用いた音源制御装置、その音源制御装置を用いたカラオケ装置、及びその音源制御装置に用いる音源制御プログラムに関する。
従来から、カラオケ装置などの音源制御装置には、例えば、外部音源サーバが提供する音源部(以下、「外部音源部」と称する。)の機能が利用可能である場合に、内部の音源制御部(以下、「内部音源部」と称する。)が、MIDIデータに従った発音に、内部音源部が有する発音チャンネル及び外部音源部が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、内部音源部が有する発音チャンネルを割り当てた場合には、MIDIデータに割り当てた発音チャンネルの識別情報を付して外部音源サーバに送信することにより、外部音源部の、その識別情報が示す発音チャンネルにおいて、送信したMIDIデータに従った波形データの生成を行わせることにより、外部音源部においても内部音源部と同様の波形データの生成を行えるようにしたシンセサイザを用いたものが知られている。
特開2009−25498号公報
ところで、近年のカラオケ装置に搭載する音源は、物体として存在する音源(例えば、ギター等)を用いたハード音源からソフト音源に推移しつつある。この際、ソフト音源の構成は、エンジン部と波形データ部とに大分けることができる。
この波形データ部とは、実際にある程度の区間(レイヤ)毎ではあるが、音程やベロシティ(音の強弱)毎に楽器を弾いて録音したデータを加工して搭載する音色となるものである。
高品質なソフト音源を搭載する場合、波形データは1000以上の音色として構成される。このため、全ての音色に対する波形データを記憶するために必要な容量も数十GBとなってしまう。
ここで、上述した容量の問題に加え、同じ音符が連続して指定されても異なる波形を出力するランダマイザ機能や、例えば、カラオケ装置における利用者が任意で設定するキーコントロールを考慮すると、予め使用する波形データを特定することは非常に困難である。
したがって、メモリ容量が十分に搭載されていないと、オンメモリ上で動作させることは現実に厳しいという問題が生じていた。また、使用する波形データを、その都度読み出して使用することも、シリアルATA(SATA)性能や、環境温度などによって読み出し完了迄に予期せぬ時間を待たされてしまい、発音が途切れてしまうという問題も生じていた。
本発明の目的は、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することができる音源制御装置、カラオケ装置、音源制御プログラムを提供することにある。
上記目的を達成するために、第1の発明の音源制御装置は、MIDIコマンドを受信してリングバッファに前記MIDIコマンドを格納させる受信部と、前記MIDIコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第1シンセサイザと、前記受信部から前記MIDIコマンドを受信するとともに、前記楽曲演奏用の波形データの読み出しを指示する第2シンセサイザと、前記波形データを格納するためのキャッシュ領域と、前記第2シンセサイザによる読み出し指示により記憶手段に記憶した前記波形データを読み出し、読み出された前記波形データを前記キャッシュ領域へと順次格納させる波形読出スレッドと、を備え、前記第1シンセサイザは、前記リングバッファによって定められた所定数の遅延サンプル分前の前記MIDIコマンドを順次読み出すとともに、前記キャッシュ領域から前記波形データを読み出して楽曲演奏用のPCMデータを生成してPCMデータ生成部へ返信し、前記PCMデータ生成部は、前記所定数の前記遅延サンプル分前のPCMデータを生成する指示を前記第1シンセサイザへ送信し、前記第1シンセサイザによる前記PCMデータの外部シーケンサに対する返信を前記楽曲演奏の進行に間に合うよう制御することを特徴とする。
第1発明の音源制御装置は、内部に第1シンセサイザと第2シンセサイザの2つを有している。第1シンセサイザは、通常のシンセサイザの機能としてリングバッファから受信したMIDIコマンドに基づいて、そのMIDIコマンドに対応した音源の波形データにより楽曲演奏用の楽音信号を合成する。第2シンセサイザは、第1シンセサイザよりも先にMIDIコマンドを受信するとともに、通常のシンセサイザ機能に対して、デジタルシグナルプロセッサ(digital signal pocessor:DSP)によるデジタル信号処理(DSP処理)は実行せず、第1シンセサイザで読み出すための楽曲演奏用の波形データをキャッシュ領域に格納する指示を波形読出スレッドへ出力している。
また、音源制御装置は、第2シンセサイザによる読み出し指示によりHDD等の記憶手段に記憶した波形データを読み出すとともに、その読み出した波形データをキャッシュ領域へと順次格納させる波形読出スレッドを備える。
ここで、第1シンセサイザは、リングバッファによって定められた前記所定数の前記遅延サンプル分前のMIDIコマンドを順次読み出すとともに、キャッシュ領域から波形データを読み出して楽曲演奏用のPCMデータを生成してPCMデータ生成部へと返信する。
すなわち、第1シンセサイザよりも先に第2シンセサイザを用いて波形読出スレッドに対して読み出し指示が出されたことを契機として、HDD等の記憶手段に記憶した波形データをキャッシュ領域に格納しておけば、第1シンセサイザによってキャッシュ領域から素早く波形データの読み出しを行うことができる。
外部シーケンサは、ミュージックシーケンサーであって、MIDIコマンドを再生することで自動演奏を行うことを目的とした装置であって、例えば、カラオケ装置等の音源再生装置に設けられている。
この外部シーケンサは、本発明の音源制御回路の外側にあって、本発明の音源制御回路を構成するものではない。すなわち、外部シーケンサと音源制御回路とは、音源再生装置の内部において回路で通信を行う。
したがって、外部シーケンサは、PCMデータ生成指示を、第1シンセサイザが実際に波形データを使用するまでの間に第2シンセサイザへ送信すれば、第1シンセサイザによるPCMデータの返信を楽曲演奏の進行に間に合うように制御することができる。
このように、第1発明の音源制御装置によれば、第2シンセサイザは第1シンセサイザよりも先に受信したMIDIコマンドの先読みを行って波形データをキャッシュ領域に格納し、第1シンセサイザは、その先読みによって格納した波形データをキャッシュ領域から読み出してMIDIコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成する。
これにより、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することが可能となる。
第2発明のカラオケ装置は、このような音源制御装置と、前記PCMデータ生成部の制御に基づき前記第1シンセサイザにより生成された前記PCMデータを用いて生成された前記楽曲演奏用のPCMデータの演奏進行で、楽曲の再生と、歌詞テロップの色変えと、を行う楽曲再生手段と、を備えることを特徴とする。
これにより、同音連打時の表現を豊かにするためのランダマイザ機能を備えたり、例えば、キーコントロール用の音色に対応した波形データを備えることによりメモリ容量が増えたとしても、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏が行えるカラオケ装置を提供することが可能となる。
さらに、第3発明の音源制御プログラムによれば、MIDIコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第1シンセサイザと、楽曲演奏進行よりも早く前記波形データの読み出しを行うための第2シンセサイザと、を有し、音源の制御を行う音源制御装置に対し、前記MIDIコマンドを受信してリングバッファにMIDIコマンドを格納させる受信手順と、前記受信手順での前記MIDIコマンドの受信後、前記第2シンセサイザに対し駆動指示を送信する制御手順と、前記駆動指示に対応し、前記受信手順で受信した前記MIDIコマンドに応じて、第2シンセサイザにより、前記楽曲演奏用の波形データの読み出しを指示する読出指示手順と、前記読出指示手順に基づき、記憶手段から前記波形データを読み出し、キャッシュ領域へと順次格納させる格納手順と、前記第1シンセサイザにより、前記リングバッファによって定められた前記所定数の前記遅延サンプル分前の前記MIDIコマンドを順次読み出す読出手順と、前記第1シンセサイザにより、前記格納手順で前記キャッシュ領域に格納された前記波形データを読み出して、楽曲演奏用のPCMデータを生成するデータ生成手順と、を実行することができる。なお、リングバッファによって定められた遅延サンプルの数は、カラオケ装置の初期化時に、その所定数を設定することで、決定してもよい。
本発明によれば、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することができる。
本発明に係る音源制御装置を用いたカラオケ装置の主要構成を示す説明図である。 本発明に係る音源制御装置を用いたカラオケ装置に係る制御装置を示し、(A)は制御装置の前面パネルの説明図、(B)は制御装置の背面パネルの説明図である。 本発明に係る音源制御装置を用いたカラオケ装置に係る制御装置の制御系の主要構成を示す機能ブロック図である。 本発明に係る楽曲データのデータフォーマットの説明図で、(A)はサーバから制御装置に送信される曲データの主要構成を示す説明図、(B)は曲カウントデータを付加した曲データの主要構成を示す説明図、(C)は楽曲データに含まれるMIDIデータの演奏部分の構成を示す説明図である。 本発明の音源制御装置に係る機能ブロック図である。 本発明の音源制御装置における処理ルーチンをMIDIデータごとに時系列で示した説明図である。 本発明の音源制御装置における外部シーケンサの処理ルーチンのフロー図である。
以下、本発明の一実施の形態について、図面を参照しつつ説明する。本実施形態では、音源制御装置の一例としてのカラオケ装置に本発明を適用した場合を例にとって説明する。
<主要構成>
図1に示すように、カラオケ装置10には、歌詞を示す歌詞テロップ、歌詞テロップの背景に表示する背景映像、選曲番号を示す映像などを表示画面に表示するモニタテレビ(以下、単に「モニタ」と略称する)11と、歌唱者用のモニタ12と、一つ以上の楽器音により構成されるカラオケ用の楽曲(以下、適宜「曲」とも略称する)の選曲、及び曲の再生の予約などの選曲制御、選曲された曲の送信要求を示すリクエスト信号のサーバへの送信、及びリクエスト信号により示される曲に対応する曲データ(カラオケ楽曲データ)の受信などの通信制御、受信された曲データに含まれる楽音種類指定情報たるMIDIデータを受信する制御装置(コマンダ)20と、を備える。
さらに、カラオケ装置10には、この例では、マイクロフォン13,14から入力される音声信号及び曲の再生信号のミキシング、音声と曲との音量バランス、エコー調整、ディレイ調整、ミキシング信号の増幅、再生される曲の音程制御(キーコントロール)、高音・低音の制御(トーンコントロール)などを行うアンプ15と、このアンプ15から出力される増幅信号を音として再生するフロアータイプの1組のスピーカ16と、天井吊下げ用の1組のスピーカ17と、制御装置20を遠隔操作するリモコン60と、を備える。
<制御装置の概略>
上記制御装置20の装備について図2を参照して説明する。図2(A)に示すように、制御装置20の前面パネルには、選曲する曲の選曲番号の入力などを行うための0〜9のボタンからなるテンキー21と、選曲を確定するための選曲ボタン22とが設けられており、テンキー21の上には、選曲された曲の選曲番号を6桁の数字でLED表示する選曲番号表示体23が設けられている。
また、選曲番号表示体23の左には、再生が予約されている曲の数をLED表示する予約曲数表示体24が設けられており、その下には、予約の取り消を行うための取り消しボタン25と、演奏を停止させる演奏停止ボタン26と、歌っている途中で最初から歌い直すための歌い直しボタン27と、予約曲の間に割り込んで予約するための割り込みボタン28とが設けられている。さらに、前面パネルの左上には、リモコン60から送信される光信号を受光する受光部38が設けられており、左下には、制御装置20の電源を立ち上げる電源ボタン39が設けられている。
また、テンキー21の右には、再生する曲のキーを低くコントロールするためのフラットキー29と、再生する曲のキーを標準にコントロールするための標準キー30と、再生する曲のキーを高くコントロールするためのシャープキー31とが設けられており、それらキーの下には、ボーカルのメロディーラインの音量を設定するボーカルボタン32と、2コーラス目までを再生する2コーラスカットボタン33と、曲の後奏部分をカットする後奏カットボタン34とが設けられている。さらに、それらボタンの下には、カラオケとBGM用とを切り替えるカラオケ切替ボタン35と、LAN回線18(図1参照)を介して入力されるデータを曲データから有線放送、テレビ放送などに切り替える入力切替ボタン36と、モニタ11,12の表示をカラオケボックスなどが提供しているサービス情報の表示に切り替えるサービスボタン37とが設けられている。
また、図2(B)に示すように、制御装置20の背面パネルには、LAN回線18を接続する通信端子40が設けられている。この通信端子40の右方には、アンプ15の音声入力端子(図示省略)と接続される音声出力端子41と、モニタ11の映像入力端子(図示省略)と接続される映像出力端子42と、モニタ12の映像入力端子(図示省略)と接続される映像出力端子43とが設けられている。
<制御系>
次に、制御装置20の制御系の構成について図3を参照して説明する。図3において、制御装置20には、各種制御をプログラムにしたがって実行するCPU44が備えられている。CPU44には、後述するMIDIデータに対応した波形データを記憶した大容量記憶媒体としてのHDD45と、リモコン60から送信されるデータ、選曲された曲の選曲番号を示す選曲番号データ、予約された曲の選曲番号データなどを一時保存するためのRAM46と、CPU44により実行されるプログラムなどが記憶されたROM47とが接続されている。
また、CPU44には、モニタ11,12の表示画面に歌詞テロップや各種メッセージ映像を表示するための文字映像データが記憶されたビデオRAM(V−RAM)48と、サーバ58から送信される楽曲データ100(後述の図4参照)を受信するための受信部としてのLANボード50と、このLANボード50により受信された楽曲データ100からMIDIコマンドを一時保存するためのリングバッファ領域及び波形データのキャッシュ領域として機能するRAM49と、が接続されている。なお、RAM49は、リングバッファ領域と波形データのキャッシュ領域とで別々に設けてもよい。
さらに、CPU44には、RAM49から読み出された楽曲データ100に含まれるMIDIデータ110(後述の図4参照)を入力するとともに、その入力されたMIDIデータ110により指定される音源から音源信号を出力するMIDI音源ボード51が接続されている。また、CPU44には、上記出力された音源信号を入力してアンプ15により増幅可能な信号に変換する音声制御回路52と、楽曲データ100に含まれるジャンルデータ150(後述の図4参照)により特定されるジャンルの背景映像を示す背景映像データを読み出すCD−ROMプレーヤ53と、が接続されている。
また、CPU44には、CD−ROMプレーヤ53から読み出された背景映像データ、及びRAM49から読み出された楽曲データ100に含まれる歌詞テロップデータ140(後述の図4参照)を入力し、モニタ11の表示画面に表示される背景映像中に歌詞テロップがスーパーインポーズされた映像を作成したり、曲の進行にしたがって歌詞テロップの色を変えたりする映像制御を行う映像制御回路54が接続されている。
さらに、CPU44には、受光部38により受光された光信号をデジタル信号に変換する変換回路55と、制御装置20の前面パネルに設けられた各種ボタン及びキー(前述のテンキー21、選曲ボタン22等)を押したときに点灯するLED(前述の選曲番号表示体23、予約曲数表示体24等)と、上記LEDへ表示信号を出力する表示回路56と、上記各種ボタン及びキーを押したときに発生するスイッチング信号を入力する入力回路57とが接続されている。
<曲データ>
曲データの主要構成について図4(A)及び図4(B)を参照して説明する。楽曲データ100は、曲の演奏部分を示すMIDIデータ110、歌詞テロップ(字幕)を示す歌詞テロップデータ140、及び曲のジャンルを示すジャンルデータ150などから構成されている。MIDIデータ110の先頭には、図4(B)に示すように、曲の始まりをカウントするための曲カウントデータ120を付加することができる。曲カウントデータ120としては、例えば、ドラムの音を出すためのMIDI音源を指定するMIDIデータ♯1(後述の図4(C)参照)が用いられる。
MIDIデータ110の構成について図4(C)を参照して説明する。図4(C)に示すように、MIDIデータ110は、この例では、図4(C)に示すように、電子ドラムの音源を指定するMIDIデータ♯1、キーボードの音源を指定するMIDIデータ♯2、エレキベースギターの音源を指定するMIDIデータ♯3、エレキギターの音源を指定するMIDIデータ♯4、音源から音源信号を出力させることを指定するノートONデータ112、音の強さ(音源信号の出力レベルであるベロシティ)を指定するレベルデータ114、及び音源から音源信号を出力させないことを指定するノートOFFデータ116などのデータから構成されており、曲データ(原曲)を演奏するときの音高キー(原曲キー)も、曲データの製作時に決められている。
CPU44は、MIDI音源ボード51に制御信号を出力し、MIDIデータに対応した音源信号を、MIDI音源ボード51から出力させる。MIDI音源ボード51から出力される音源信号は、音声制御回路52へ出力されるとともに、アンプ15により増幅可能な音楽信号に変換され、この変換された音楽信号は、音声出力端子41からアンプ15へ出力される。
また、マイクロフォン13,14から入力された音声信号は、アンプ15に内蔵されたミキシング回路19において音楽信号とミキシングされる。
そのミキシングされた音声信号と音楽信号とのミキシング信号は、アンプ15に内蔵された図示しない増幅回路により増幅された後に、スピーカ16及びスピーカ17に出力され、これらスピーカ16及びスピーカ17から発音される。
<本実施形態の特徴>
以上の基本構成において、本実施形態の特徴は、カラオケ装置10での曲の演奏時において、特に、MIDIコマンドに基づいてスピーカ16,17から発音(音声出力)する際、限られたメモリリソースで大容量の波形データを扱うことを可能とするとともに、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することにある。以下、その詳細を順を追って説明する。
図5において、カラオケ装置10に搭載した音源制御回路70は、内部に第1シンセサイザ71と第2シンセサイザ72の2つを有している。第1シンセサイザ71は、通常のシンセサイザの機能としてリングバッファ49Aから受信したMIDIコマンドに基づいて、そのMIDIコマンドに対応した音源の波形データにより楽曲演奏用の楽音信号を合成する。第2シンセサイザ72は、第1シンセサイザ71よりも先にMIDIコマンドを受信するとともに、通常のシンセサイザ機能に対してDSP処理は実行せず、第1シンセサイザ71で読み出すための楽曲演奏用の波形データをキャッシュ領域49Bに格納するようになっている。
なお、リングバッファ49Aとキャッシュ領域49Bとは、RAM49の一部領域をリングバッファ領域及び波形データのキャッシュ領域としたものである。
また、音源制御回路70は、第2シンセサイザ72による読み出し指示によりHDD45に記憶した波形データを読み出すとともに、その読み出した波形データをキャッシュ領域49Bへと順次格納させる波形読出スレッド73を備える。
ここで、第1シンセサイザ71は、リングバッファ49Aによって定められた所定数の遅延サンプル分前のMIDIコマンドを順次読み出すとともに、キャッシュ領域49Bから波形データを読み出して楽曲演奏用のPCMデータを生成してPCMデータ生成部74へと返信する。
すなわち、第1シンセサイザ71よりも先に第2シンセサイザ72を用いて波形読出スレッド73に対して読み出し指示が出されたことを契機として、HDD45に記憶した波形データをキャッシュ領域49Bに格納しておけば第1シンセサイザ71によってキャッシュ領域49Bから素早く波形データの読み出しを行うことができる。
したがって、外部シーケンサはPCMデータ生成部74に対するPCMデータ生成指示を、第1シンセサイザが実際に波形データを使用する迄に第2シンセサイザ72へ送信すれば、第1シンセサイザ71によるPCMデータの返信を外部シーケンサが制御する楽曲演奏の進行に間に合うように制御することができる。
もし、第1シンセサイザが使用する予定の波形データがキャッシュ領域へ格納されていない場合は、該当ノートは発音しない。また、すでに発音中の場合は消音する処理(ノートオフ)を行うことで、演奏と異なる音が継続してしまうことはない。
この際、CPU44は、楽曲演奏用のPCMデータの演奏進行に同期して、歌唱すべきタイミングで歌詞テロップの色変えを行なう指示を、歌詞映像を表示するためのモニタ11,12に与える。
以下、図5に基づいて、外部シーケンサ59から送信されたMIDIデータをCPU44で処理する場合の再生処理ルーチンを説明する。なお、図5においては、以下に示す処理1〜処理16までの手順を丸付き数字で示すとともに、概略の処理名を付している。
外部シーケンサ59は、ミュージックシーケンサーであって、MIDIコマンドを再生することで自動演奏を行うことを目的とした装置であって、例えば、カラオケ装置10に設けられている。
この外部シーケンサ59は、本実施の形態の音源制御回路70の外側にあり、音源制御回路70とは、カラオケ装置10の内部において回路で通信を行う。
したがって、外部シーケンサ59は、PCMデータ生成指示を、第1シンセサイザ71が実際に波形データを使用するまでの間に第2シンセサイザ72へ送信すれば、第1シンセサイザ71によるPCMデータの返信を楽曲演奏の進行に間に合うように制御することができる。
処理1:CPU44によって制御される外部シーケンサ59はMIDI楽曲データを楽曲の進行に応じて音源制御回路70へ送信する。
処理2:CPU44は、音源制御回路70側が、MIDIコマンドを受信すると、そのMIDIコマンドを、MIDIコマンド受信部50からリングバッファ49Aに送信して格納させるとともに、第2シンセサイザ72に送信する。
処理3:CPU44は、第2シンセサイザ72がMIDIコマンドを受信すると、第2シンセサイザ72から受信に関する応答信号をMIDIコマンド受信部50に送信させる。
処理4:CPU44は、MIDIコマンド受信部50が応答を受信すると、MIDIコマンド受信部50から外部シーケンサ59に応答を返す。なお、この応答は、一つのMIDIデータに対して行われる、
処理5:CPU44は、外部シーケンサ59からPCM生成指示が出力されると、そのPCM生成指示をPCMデータ生成部74に送信する。
処理6:CPU44は、PCMデータ生成部74がPCM生成指示を受信すると、PCMデータ生成部74から駆動指示信号を第1シンセサイザ71及び第2シンセサイザ72に出力させる。
処理7:CPU44は、第2シンセサイザ72がPCMデータ生成部74から駆動指示信号を受信すると、第2シンセサイザ72から波形データ読出指示信号を波形読出スレッド73に出力させる。
処理8:CPU44は、波形読出スレッド73が波形データ読出指示信号を受信すると、HDD45に波形読み出し信号を出力させる。
処理9:CPU44は、HDD45が波形データ読出指示信号を受信すると、キャッシュ領域49Bに、例えば、MIDIデータ♯1〜♯4の各々に対応するMIDIコマンドの波形データ(例えば、波形データA,波形データB・・・波形データn)を格納する。ここで、キャッシュ領域49Bは、例えば、RAM49のうちキャッシュ領域49Bとして割り当てた容量(例えば、100MB)は外部から指定・変更可能であるが、CPU44は、容量がいっぱいになった場合には、古い順のデータ波形から順次消去する。なお、一度読み出した波形データは消去されない限り、再利用可能である。
処理10:CPU44は、第1シンセサイザ71からリングバッファ49AにMIDIコマンドの取出要求を出力させる。
処理11:CPU44は、リングバッファ49Aが取出要求を受信すると、所定の数(例えば、譜面の1音符に対応したMIDIデータ♯1〜♯4)のMIDIコマンドを取り出して第1シンセサイザ71に出力させる。
処理12:CPU44は、MIDIコマンドを受信すると、第1シンセサイザ71からキャッシュ領域49Bに波形データ読出要求を出力させる。
処理13:CPU344は、キャッシュ領域49Bが波形データ読出要求を受信すると、キャッシュ領域49BからMIDIコマンドに対応した波形データを第1シンセサイザ71に出力させる。
処理14:CPU44は、第1シンセサイザ71がキャッシュ領域49Bから波形データを受信すると、DSP処理を行わせる。
処理15:CPU44は、第1シンセサイザ71がDSP処理を行うと、PCMデータ生成部74にPCMデータを出力する。
処理16:CPU44は、PCMデータ生成部74がPCMデータを受信すると、PCMデータを生成するとともに、外部シーケンサ59に出力する。
すなわち、図6に示すように、外部シーケンサ59からのMIDI送信(例えば、MIDI送信 A)に対して、音楽データとなるPCMデータ生成部74からの回答(例えば、PCM A)の関係となる。
そして、MIDI Aに対するPCM Aは、所定数の遅延サンプル分前のMIDI送信のMIDIデータ Aが反映される。
したがって、最初のMIDIイベントの内容が反映されたPCMデータが取得できるのが、所定数の遅延サンプル分後のPCMデータとなる。
なお、HDD45の読み出し時間を考慮し、外部シーケンサ59は所定数の遅延サンプル分の実時間(遅延時間)を遅らせてPCMデータを取得する。また、図6において、PCMデータに対する最初の3つの回答は、ここでは無効データとして処理する。具体的な処理の一例としては、PCMデータ生成部が所定数の遅延サンプル分は無音データを出力する。もしくは、PCMデータ生成部が音声制御回路52に対して、所定数の遅延サンプルの期間のPCMデータを出力しない指示を行うことで、無効データは外部に出力させないようにしてもよい。これにより、曲の演奏開始直後に無効データによる雑音が出力されることもない。
次に、外部シーケンサ59の処理ルーチンを図7に基づいて説明する。
(ステップS1)
ステップS1において、外部シーケンサ59は、音源制御回路70に対して初期化信号を出力したうえで、CPU44から楽曲演奏の演奏要求を受信したか否かを判定する。外部シーケンサ59は、CPU44から楽曲演奏の演奏要求を受信した場合(Yes)には、ステップS2へと移行する。外部シーケンサ59は、CPU44からから楽曲演奏の演奏要求を受信したと判定しなかった(No)場合には、引き続きこのルーチンを監視する。
(ステップS2)
ステップS2において、外部シーケンサ59は、HDD45から楽曲演奏の対象となっているMIDIデータを受信して、順次、MIDIコマンドを音源制御回路70に送信し(処理1に相当)、ステップS3に移行する。
(ステップS3)
ステップS3において、外部シーケンサ59は、音源制御回路70にPCMデータの生成指示を送信し(処理5に相当)、ステップS4に移行する。
(ステップS4)
ステップS4において、外部シーケンサ59は、音源制御回路70からPCMデータ受信し(処理16に相当)、ステップS5に移行する。
(ステップS5)
ステップS5において、外部シーケンサ59は、PCMデータを再生し、ステップS6に移行する。
(ステップS6)
ステップS6において、外部シーケンサ59は、楽曲演奏、すなわち、ステップS1でHDD45から受信した1楽曲分のMIDIデータに対するPCMデータの再生が終了したか否かを判定する。外部シーケンサ59は、1楽曲分のMIDIデータに対するPCMデータの再生が終了した場合(Yes)には、ステップS7へと移行する。外部シーケンサ59は、1楽曲分のMIDIデータに対するPCMデータの再生が終了したと判定しなかった(No)場合には、ステップS2へとループし、以降、1楽曲分のMIDIデータに対するPCMデータの再生が終了するまで、ステップS2からステップS6までのルーチンを繰り返す。
(ステップS7)
ステップS7において、外部シーケンサ59は、音源制御回路70に対して終了信号を出力し、このルーチンを終了する。
このように、音源制御回路70は、第2シンセサイザ72が第1シンセサイザ71よりも先に受信したMIDIコマンドの先読みを行って波形データをキャッシュ領域49Bに格納させ、第1シンセサイザ71は、その先読みによって格納した波形データをキャッシュ領域49Bから読み出してリングバッファ49Aから読み出したMIDIコマンドに基づいて楽曲演奏用の楽音信号(PCMデータ)を合成する。
これにより、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することが可能となる。
また、このような音源制御回路70を備えたカラオケ装置10では、第1シンセサイザ71により生成されたPCMデータを用いて生成された楽曲演奏用のPCMデータの演奏進行で、楽曲の再生と、歌詞テロップの色変えと、を行うことができる。
これにより、通常の(音符通りの)音色に対応した波形データに加え、同音連打時の表現を豊かにするためのランダマイザ機能を備えたり、例えば、キーコントロール用の音色に対応した波形データを備えることによりメモリ容量が増えたとしても、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することが可能となる。
なお、第1シンセサイザ71が使用する予定の波形データがキャッシュ領域49Bへ格納されていない場合は、該当ノートは発音しない。また、すでに発音中の場合は消音する処理(ノートオフ)を行うことで、演奏と異なる音が継続してしまうことはない。
ここで、ROM47には、上述したように、MIDIコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第1シンセサイザ71と、楽曲演奏進行よりも早く波形データの読み出しを行うための第2シンセサイザ72と、を有し、音源の制御を行う音源制御回路70に対し、MIDIコマンドを受信してリングバッファ49AにMIDIコマンドを格納させる受信手順(処理2)と、この受信手順でのMIDIコマンドの受信後、第2シンセサイザ72に対し駆動指示を送信する制御手順(処理6)と、この駆動指示に対応し、受信手順で受信したMIDIコマンドに応じて、第2シンセサイザ72により、楽曲演奏用の波形データの読み出しを指示する読出指示手順(処理7)と、読出指示手順に基づき、HDD45から波形データを読み出し、キャッシュ領域49Bへと順次格納させる格納手順(処理9)と、第1シンセサイザ71により、リングバッファ49Aによって定められた所定数の遅延サンプル分前のMIDIコマンドを順次読み出す読出手順(処理11)と、第1シンセサイザ71により、格納手順でキャッシュ領域49Bに格納された波形データを読み出して、楽曲演奏用のPCMデータを生成するデータ生成手順(処理12〜15)と、をCPU44で実行するための音源制御プログラムが格納されている。
このように、カラオケ装置10は音源制御回路70を備え、この音源制御回路70は、通常の第1シンセサイザ71と、DSP処理を実施しない先読み用の第2シンセサイザ72とを内部に有している。
そして、MIDIコマンドを記憶するリングバッファ49Aと、第1シンセサイザ71によるDSP処理に先んじてMIDIコマンドに対応した波形データA〜nを格納するキャッシュ領域49Bとを備え、第1シンセサイザ71によるレイテンシー(遅延時間)に先駆けて波形データを先読みする時間を予め設定する。
なお、その設定した時間で波形データの読み込みが間に合わない場合には、破棄する。すなわち、発音中の波形データの読み込みが間に合わなかった場合は、発音をやめ、この後、途中から復帰させることはしないようにしてもよい。
そして、リングバッファ49Aに格納したMIDIコマンドは、第1シンセサイザ71によりレイテンシーの後(処理サンプル数)にリングバッファ49AからMIDIコマンドを取り出し、キャッシュ領域49Bから読み出した波形データとでDSP処理を実行する。
なお、リングバッファ49Aによって定められた遅延サンプルの数は、本実施例では3として説明した。しかし、ユーザにおいては、HDD45の読み出し性能を予め特定できない場合がある。このため、HDD45の設置後に、HDD45の読み出し時間に、波形データの読み込みが間に合わなく、発音の途切れ等を、音源制御回路70からの出力信号としてスピーカ16から検出することとなる。このため、遅延サンプル数の変更(当初の数値から大きくする方向)する入力手段(例えば、入力回路57)を備え、前記発音の途切れを検出した場合には、カラオケ装置10の初期化時にCPU44からの指示でその所定数を発音の途切れを検出したときの遅延サンプル数より大きい値に設定することで、決定してもよい。
10 カラオケ装置
44 CPU(楽曲再生手段)
45 HDD(記憶手段)
49A リングバッファ
49B キャッシュ領域
50 LANボード(受信部)
70 音源制御回路
71 第1シンセサイザ
72 第2シンセサイザ
73 波形読出スレッド
74 PCMデータ生成部

Claims (6)

  1. MIDIコマンドを受信してリングバッファにMIDIコマンドを格納させる受信部と、
    前記MIDIコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第1シンセサイザと、
    前記受信部から前記MIDIコマンドを受信するとともに、前記楽曲演奏用の波形データの読み出しを指示する第2シンセサイザと、
    前記波形データを格納するためのキャッシュ領域と、
    前記第2シンセサイザによる読み出し指示により記憶手段に記憶した前記波形データを読み出し、読み出された前記波形データを前記キャッシュ領域へと順次格納させる波形読出スレッドと、
    を備え、
    前記第1シンセサイザは、
    前記リングバッファによって定められた所定数の遅延サンプル分前の前記MIDIコマンドを順次読み出すとともに、前記キャッシュ領域から前記波形データを読み出して楽曲演奏用のPCMデータを生成してPCMデータ生成部へ返信し、
    前記PCMデータ生成部は、
    前記所定数の前記遅延サンプル分前のPCMデータを生成する指示を前記第1シンセサイザへ送信し、前記第1シンセサイザによる前記PCMデータの外部シーケンサに対する返信を前記楽曲演奏の進行に間に合うよう制御する
    ことを特徴とする音源制御装置。
  2. 請求項1記載の音源制御装置と、
    前記音源制御装置の前記PCMデータ生成部の制御に基づき前記第1シンセサイザにより生成された前記PCMデータを用いて生成された前記楽曲演奏用のPCMデータの演奏進行で、楽曲の再生と、歌詞テロップの色変えと、を行う楽曲再生手段と、
    を備えることを特徴とするカラオケ装置。
  3. 請求項2記載のカラオケ装置において、
    前記所定数の前記遅延サンプル分前のPCMデータは、無音データとすること
    を特徴とするカラオケ装置。
  4. 請求項2記載のカラオケ装置において、
    前記PCMデータ生成部は、
    前記所定数の前記遅延サンプル分前のPCMデータを出力する期間は、前記楽曲再生手段に対し再生を行わない指示を与えることを特徴とするカラオケ装置。
  5. 請求項2乃至請求項4のいずれか1項記載のカラオケ装置において、
    前記カラオケ装置は、更に所定数の遅延サンプル数を設定する入力手段を備え、
    前記楽曲再生手段が音の途切れを検出した場合には、音の途切れを検出した時点の前記遅延サンプルの数よりも多い数に前記遅延サンプルの数を設定することを特徴とするカラオケ装置。
  6. MIDIコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第1シンセサイザと、楽曲演奏進行よりも早く前記波形データの読み出しを行うための第2シンセサイザと、を有し、音源の制御を行う音源制御装置に対し、
    MIDIコマンドを受信してリングバッファにMIDIコマンドを格納させる受信手順と、
    前記受信手順での前記MIDIコマンドの受信後、前記第2シンセサイザに対し駆動指示を送信する制御手順と、
    前記駆動指示に対応し、前記受信手順で受信した前記MIDIコマンドに応じて、第2シンセサイザにより、前記楽曲演奏用の波形データの読み出しを指示する読出指示手順と、
    前記読出指示手順に基づき、記憶手段から前記波形データを読み出し、キャッシュ領域へと順次格納させる格納手順と、
    前記第1シンセサイザにより、前記リングバッファによって定められた所定数の遅延サンプル分前の前記MIDIコマンドを順次読み出す読出手順と、
    前記第1シンセサイザにより、前記格納手順で前記キャッシュ領域に格納された前記波形データを読み出して、楽曲演奏用のPCMデータを生成するデータ生成手順と、
    を実行させるための、音源制御プログラム。
JP2014193097A 2014-09-22 2014-09-22 音源制御装置、カラオケ装置、音源制御プログラム Active JP6264660B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014193097A JP6264660B2 (ja) 2014-09-22 2014-09-22 音源制御装置、カラオケ装置、音源制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014193097A JP6264660B2 (ja) 2014-09-22 2014-09-22 音源制御装置、カラオケ装置、音源制御プログラム

Publications (2)

Publication Number Publication Date
JP2016066391A JP2016066391A (ja) 2016-04-28
JP6264660B2 true JP6264660B2 (ja) 2018-01-24

Family

ID=55805651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014193097A Active JP6264660B2 (ja) 2014-09-22 2014-09-22 音源制御装置、カラオケ装置、音源制御プログラム

Country Status (1)

Country Link
JP (1) JP6264660B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4061670B2 (ja) * 1997-05-23 2008-03-19 ブラザー工業株式会社 映像再生装置
JP2004093732A (ja) * 2002-08-30 2004-03-25 Casio Comput Co Ltd 楽音発生装置及び楽音発生処理のプログラム
JP4933910B2 (ja) * 2007-01-30 2012-05-16 株式会社エクシング カラオケ装置

Also Published As

Publication number Publication date
JP2016066391A (ja) 2016-04-28

Similar Documents

Publication Publication Date Title
JPH06274188A (ja) カラオケ装置
JPH06268774A (ja) カラオケ制御装置
JP6729052B2 (ja) 演奏指示装置、演奏指示プログラム、および演奏指示方法
JP2008286946A (ja) データ再生装置、データ再生方法およびプログラム
JP4175337B2 (ja) カラオケ装置
JP5897805B2 (ja) 楽音制御装置
JP4259533B2 (ja) 演奏システム、このシステムに用いるコントローラ、およびプログラム
JP2008191680A (ja) 楽音生成装置及びプログラム
JP6264660B2 (ja) 音源制御装置、カラオケ装置、音源制御プログラム
US10805475B2 (en) Resonance sound signal generation device, resonance sound signal generation method, non-transitory computer readable medium storing resonance sound signal generation program and electronic musical apparatus
JP5397637B2 (ja) カラオケ装置
JP5754404B2 (ja) Midi演奏装置
JP7312683B2 (ja) カラオケ装置
JP5413749B2 (ja) 楽音演奏装置
JP5321653B2 (ja) 楽音演奏装置
JP4978176B2 (ja) 演奏装置、演奏実現方法およびプログラム
JP6645269B2 (ja) 楽曲演奏装置及び楽曲演奏用プログラム
JP2007178890A (ja) 自動演奏装置
JP2003050591A (ja) 演奏出力装置
JP2017015957A (ja) 演奏記録装置およびプログラム
JP6427447B2 (ja) カラオケ装置
JP6610211B2 (ja) 楽曲演奏装置及び楽曲演奏用プログラム
JP6558077B2 (ja) 楽曲演奏装置及び楽曲演奏用プログラム
WO2010119541A1 (ja) 音発生装置、音発生方法、音発生プログラム、及び記録媒体
JP3551441B2 (ja) カラオケ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171124

R150 Certificate of patent or registration of utility model

Ref document number: 6264660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150