JP3740717B2 - Tone generator and musical sound generation method - Google Patents
Tone generator and musical sound generation method Download PDFInfo
- Publication number
- JP3740717B2 JP3740717B2 JP22104995A JP22104995A JP3740717B2 JP 3740717 B2 JP3740717 B2 JP 3740717B2 JP 22104995 A JP22104995 A JP 22104995A JP 22104995 A JP22104995 A JP 22104995A JP 3740717 B2 JP3740717 B2 JP 3740717B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- clock
- musical
- tone
- frequency
- 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
Links
- 238000000034 method Methods 0.000 title claims description 98
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000005236 sound signal Effects 0.000 claims description 24
- 238000005070 sampling Methods 0.000 claims description 13
- 239000000872 buffer Substances 0.000 description 25
- 230000000694 effects Effects 0.000 description 23
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 22
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000005855 radiation Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- RRLHMJHRFMHVNM-BQVXCWBNSA-N [(2s,3r,6r)-6-[5-[5-hydroxy-3-(4-hydroxyphenyl)-4-oxochromen-7-yl]oxypentoxy]-2-methyl-3,6-dihydro-2h-pyran-3-yl] acetate Chemical compound C1=C[C@@H](OC(C)=O)[C@H](C)O[C@H]1OCCCCCOC1=CC(O)=C2C(=O)C(C=3C=CC(O)=CC=3)=COC2=C1 RRLHMJHRFMHVNM-BQVXCWBNSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【発明の属する技術分野】
この発明は、楽音信号を生成する技術分野に属し、特に、消費電力を節減するパワーマネージメント機構を具えたものに関する。
【0002】
【従来の技術】
今日の電子楽器には、楽音信号を生成する処理(例えばPCM(パルス符号変調)方式による処理やFM(周波数変調)方式による処理等)を実行する専用のLSI回路である音源LSIが、広く採用されている。
こうした音源LSIには、消費電力を制御する手段は備えられておらず、したがって、消費電力は常に一定であった。
【0003】
【発明が解決しようとする課題】
電子楽器には、例えばポータブルキーボード等のように、携帯を可能にするために電源として乾電池を使用するものも少なくない。こうした電子楽器では、消費電力を極力節減することが、長時間の演奏を可能にするために重要な課題である。
しかし、従来の音源LSIでは、消費電力が一定であるため、非発音時に音源LSI自体をオフにするくらいしか、節電のための手段が存在しなかった。
この発明は上述の点に鑑みてなされたもので、消費電力を節減することにより、特に乾電池を電源とする電子楽器の長時間の演奏を可能にする音源装置及び楽音生成方法を提供しようとするものである。
【0004】
【課題を解決するための手段】
この発明に係る音源装置は、供給するクロック信号の周波数を制御可能なクロック信号供給手段と、入力した演奏情報に応じて前記クロック信号の周波数を制御するクロック制御手段と、前記クロック制御手段によって制御された前記クロック信号を基本クロックとして、前記演奏情報に基づいて、所定の時間長の区間を単位として各区間に対応する複数サンプルの楽音信号を、該所定の時間長毎に設定される演算機会毎にそれぞれまとめて生成処理するCPUと、前記CPUで生成された複数サンプルの楽音信号を一時記憶し、これを再生サンプリング周波数に合わせて1サンプルづつ順次出力することにより、連続する複数の区間の楽音を再生する手段とを具え、前記クロック制御手段は、前記各区間毎に、前記CPUによる処理が開始される前に前記クロック信号を制御するものであることを特徴としている。
【0005】
演奏情報を入力すると、その演奏情報に応じて、クロック制御手段が、クロック信号供給手段から供給されるクロック信号の周波数を制御する。CPUでは、この制御されたクロック信号を基本クロックとして、演奏情報に基づいて、所定の時間長の区間を単位として各区間に対応する複数サンプルの楽音信号を、該所定の時間長毎に設定される演算機会毎にそれぞれまとめて生成処理する。該CPUで生成された複数サンプルの楽音信号が一時記憶され、再生サンプリング周波数に合わせて1サンプルづつ順次出力されることにより、連続する複数の区間の楽音が再生される。
【0006】
この発明に係る楽音生成方法は、演奏情報を入力する第1のステップと、前記演奏情報に応じて、楽音信号を生成する際の基本クロックの周波数を制御する第2のステップと、前記第2のステップで制御した基本クロックに従って動作するCPUにより、前記演奏情報に基づいて、所定の時間長の区間を単位として各区間に対応する複数サンプルの楽音信号を、該所定の時間長毎に設定される演算機会毎にそれぞれまとめて生成処理する第3のステップと、前記第3のステップで生成された複数サンプルの楽音信号を一時記憶し、これを再生サンプリング周波数に合わせて1サンプルづつ順次出力することにより、連続する複数の区間の楽音を再生する第4のステップとから成り、前記第2のステップは、前記各区間毎に、前記第3のステップによる処理が開始される前に前記クロック信号を制御するものであることを特徴としている。
【0007】
このように、入力した演奏情報に応じて基本クロックが制御されるが、基本クロックの周波数が低くなれば、処理速度は低下する反面、消費電力が少なくなる。したがって、音源装置の消費電力が節減される。
【0008】
尚、具体的には、入力した演奏情報に基づいて、同時に生成すべき楽音数を求め、該楽音数に応じて基本クロックを制御する(楽音数が多いときは周波数を高くし、楽音数が少ないときは周波数を低くする)ようにするか、または、入力した演奏情報に基づいて、実行すべき生成処理の演算量を算出し、該演算量に応じて基本クロックを制御する(演算量が多いときは周波数を高くし、演算量が少ないときは周波数を低くする)ようにすることが好適である。
【0009】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
以下の説明では、ハードウェアとしての音源LSIに替えて、楽音信号の生成処理を記述したコンピュータプログラムをCPU(セントラルプロセッシングユニット)に実行させることによって楽音信号を生成するようにしたものにこの発明を適用している。このような音源装置や楽音生成方法のことを、ここではCPU音源あるいはソフト音源と呼ぶことにする。
【0010】
図1は、この発明を適用したソフト音源を搭載した電子楽器の全体構成ブロック図である。この電子楽器は、演奏者の演奏に応じたMIDI(MusicalInstrument Digital Interface)楽器からの演奏情報に基づき、同時に生成すべき楽音数に応じた発音チャンネル数での楽音信号生成処理(及び生成した楽音信号に効果を付与するエフェクト処理)をパーソナルコンピュータのCPUに実行させるコンピュータミュージックシステムである。
【0011】
CPU1には、MIDI楽器の接続されるMIDIのインターフェース2,ROM(リードオンリーメモリ)3,RAM(ランダムアクセスメモリ)4,タイマ5,クロックコントロールレジスタ6,キーボード7,ディスプレイ8,ハードディスク装置9,及びDMA(ダイレクトメモリアクセス)回路10が、データ及びアドレスバス11を介して接続されている。また、このパーソナルコンピュータはポータブル式であり、電源である乾電池12から各ブロックに電力が供給されている。
【0012】
ハードディスク装置9には、演奏情報に応じて加工すべき音色データ(例えば、PCM方式で記録した波形データ等)が記録されている。
RAM4には、生成されて効果を付与された楽音信号を一時的に記憶させるための記憶領域等が設けられている。
【0013】
DMA回路10は、RAM4に一時記憶された楽音信号を、D/A(ディジタル/アナログ)変換器13の再生サンプリング周波数に合わせてダイレクトメモリアクセス方式で1サンプルずつ順次RAM4から読み出してD/A変換器13に送る再生処理を実行するものである。D/A変換器13の再生サンプリング周波数は、上記基本クロックとは別の、周波数を固定したクロック信号に同期している(以下では、この再生サンプリング周波数を48kHzであるとする)。DMA回路10は、一例として、128サンプルの楽音信号を単位としてこの再生処理を実行する。DMA回路10は、各単位の楽音信号に対する再生処理を開始する毎に、所定のフラグを立てるようになっている。
D/A変換器13でアナログ信号に変換された楽音信号は、サウンドシステム14に供給されて音響的に発音される。
【0014】
クロックコントロールレジスタ6には、CPU1が幾通りかの値のデータを書き込むことができる。図示しない水晶発振器から発生した一定周波数の信号を分周する分周器(図示せず)は、このレジスタ6に書き込まれたデータの値に応じて、60MHz,30MHzまたは15MHzのうちのいずれかの周波数のクロック信号を基本クロックとして各ブロックに供給するか、あるいはクロック信号を各ブロックに供給しない状態(スリープモードと呼ぶ)になる。すなわち、CPU1をはじめとする各ブロックの基本クロックは、60MHz,30MHz,15MHzまたはスリープモードの4通りに制御可能であり、CPU1によってそのいずれかの周波数に制御される。尚、スリープモード中に演奏者が新たにMIDI楽器2のパネルスイッチ等を操作した場合にも、スリープモードが解除されてクロック信号の周波数が15MHzに設定されるようになっている。
【0015】
図2は、基本クロックの周波数と、CPU1の消費電力との関係の一例を示したものである。この例では、周波数が低くなると、それにほぼ比例して消費電力も小さくなっている。また、スリープモードでは、消費電力が著しく小さくなっている。
【0016】
図3は、ソフト音源の基本原理を示した図である。CPU1は、所定の時間長の区間を単位として、各区間内に入力したMIDI2からの演奏情報に基づき、それぞれ当該区間の次の区間に、楽音信号生成処理(及びエフェクト処理)を実行する。DMA回路10は、こうして各区間毎に生成された楽音信号を単位として、それぞれ当該区間の次の区間に再生処理を実行する。(例えば、時刻T1からT2までの区間に入力した演奏情報に基づき、時刻T2からT3までの区間に楽音信号生成処理を実行し、時刻T3からT4までの区間に再生処理を実行する。)したがって、1区間の長さは、DMA回路10が再生処理の1単位とするサンプル数と再生サンプリング周期との積であり、前述の例では128÷48000≒0.0027秒となる。
【0017】
そして、再生処理は、楽音を切れ目なく発音させるために各区間毎に途切れることなく連続して実行する必要があるので、CPU1は、DMA回路10が各区間で再生処理を実行する楽音信号(前述の例では128サンプルの楽音信号)については、必ずその直前の区間内に生成を完了している必要がある。しかし、入力する演奏情報の内容や演奏情報の入力頻度は、演奏の進行に伴って時間的に変化していくので、1区間内に同時に生成すべき楽音数や、1区間内に実行すべき生成処理の演算量は、一定ではなく、むしろ区間毎に大きく変動するという特徴を有している。
【0018】
以上がソフト音源の基本原理であるが、周波数を制御可能な基本クロックで動作するCPUでは、同時に生成すべき楽音数が少ない区間や実行すべき生成処理の演算量が少ない区間では、それらが多い区間よりも基本クロックの周波数を低くすることによって処理速度を遅くしても、当該区間内に生成処理を完了させることが可能である。そして、基本クロックの周波数を低くした区間では、基本クロックの周波数が高い区間よりも消費電力が少なくなる(図2参照)。この電子楽器は、こうした基本クロックの制御による消費電力の節減を図りつつ、楽音信号生成処理を実行するものである。
次に、この楽音信号生成処理の一例を、図4以下を参照して説明することにする。
【0019】
図4は、CPU1の実行するメインルーチンを示すフローチャートである。メインルーチンでは、所定の初期設定(ステップS1)の後、RAM4内の入力バッファに受信データが記憶されているか否かを判断し(ステップS2)、記憶されていれば、受信データ処理を実行する(ステップS3)。受信データ処理には、例えば、MIDI2からのノートオン信号に基づくノートオンイベント処理や、MIDI2からのノートオフ信号に基づくノートオフイベント処理等が含まれる。
【0020】
続いて、キーボード7の操作に基づくパネルスイッチの操作イベントの有無を判断し(ステップS4)、操作イベントがあれば、パネルスイッチイベント処理を実行する(ステップS5)。パネルスイッチイベント処理には、例えば、音色選択スイッチの操作に基づく音色選択処理や、エフェクトスイッチの操作に基づく効果選択処理等が含まれる。
続いて、楽音信号を生成する「音源処理」(ステップS6)と、その他の処理(ステップS7)とを実行し、以下、ステップS2乃至ステップS7の処理を繰り返す。
【0021】
ステップS3の受信データ処理は、MIDI2からの受信データが入力バッファに書き込まれたことを条件としてステップS2でイエスと判断されて開始されるが、この書込みは、MIDI2からの受信データが発生する都度に、図5に示す「最優先の割込み処理」を実行することによって行なわれる。この割込み処理では、受信データが発生すると、最初のステップS11で、CPU1の基本クロックがスリープモードか否かを判断する。スリープモードであれば、ステップS12に進み、クロックコントロールレジスタ6に所定の値のデータを書き込むことによって基本クロックの周波数を15MHzに設定した後、ステップS13に進む。他方、スリープモードでなければ、ステップS11からそのままステップS13に進む。
【0022】
ステップS13では、当該受信データを取り込む。続くステップS14では、取り込んだ受信データを、現在の時刻を示す時刻データとともにRAM4内の入力バッファに書き込む。時刻データを書き込む理由は、受信データの入力バッファへの書込みは、受信データが発生する都度直ちに行なうが、入力バッファに書き込んだ受信データに対するメインルーチンでの処理は、直ちに実行するわけではないので、いつ発生した受信データかを識別できるようにしておくことにある。図6は、入力バッファの記憶領域の一例を示す。この例では、受信データを1件毎に時刻データとともに書き込む領域である「データ1」,「データ2」,「データ3」…と、受信データの件数を書き込む領域である「イベント数」とが設けられている。
続くステップS15乃至ステップS17では、基本クロックの周波数の見直しのための処理を実行するが、この処理の説明は、「音源処理」の説明の後に行なうことにする。
【0023】
次に、受信データ処理のうちのノートオンイベント処理の一例を、図7に示す。この処理では、最初のステップS21で、入力バッファから、ノートナンバ,ベロシティ及び音色パートを示すデータと時刻データとを読み出してそれぞれ所定のレジスタに格納する。続くステップS22では、上記ノートナンバに対応する楽音信号を発生すべき発音チャンネルの割当てを行なう。続くステップS23では、パネルスイッチイベント処理(図4のステップS5)のうちの音色選択処理によって上記音色パートについて選択された音色データをRAM4から読み出し、その音色データを上記ノートナンバ及びベロシティに応じて加工する。図8は、ハードディスク装置9から読み出されてRAM4の音色データ領域に記憶された音色データの内容の一例を示す。この例では、音色データには、所定音域毎の複数周期分の波形データ,エンベロープを制御するデータ,タッチを制御するデータ及びその他のデータが含まれている。
【0024】
続くステップS24では、加工した音色データ(楽音生成アルゴリズムを示すデータ及びピッチを制御するデータを含む)を、時刻データとともにRAM4内の当該発音チャンネル用の音源レジスタに書き込み、最後にステップS25で、ノートオンを示すデータを当該音源レジスタに書き込む。そしてリターンする。図9は、音源レジスタの記憶領域の一例を示す。この例では、32チャンネル分の音源レジスタが用意されており、各音源レジスタに、ノートナンバ,波形データ,エンベロープ制御データ、ノートオン,時刻データ及びその他のデータを書き込む領域と、ワーキングエリアとが設けられている。その他のデータには、パネルスイッチイベント処理で選択されたエフェクトのアルゴリズムを示すデータ等が含まれる。
【0025】
次に、「音源処理」(図4のステップS6)の一例を、図10に示す。この処理では、最初のステップS31で、各発音チャンネル用の音源レジスタ(図9参照)の記憶内容をチェックし、続くステップS32で、いずれかの発音チャンネル用の音源レジスタに新規の書込みがあったか否かを判断する。ノートオンイベント処理(図7)等が実行されたことによって新規の書込みが行なわれた音源レジスタがあれば、ステップS33に進み、その音源レジスタ内のデータを、現在の区間の次の区間での楽音信号生成処理及びエフェクト処理の対象として予約する。そしてステップS34に進む。他方、新規の書込みがなければ、ステップS32からそのままステップS34に進む。
【0026】
ステップS34では、DMA回路10が128サンプル分の楽音信号に対する再生処理を開始する毎(すなわち、各区間からその次の区間に移行した毎)に立てる前述のフラグをチェックする。続いてステップS35では、フラグが立っているか否か(すなわち、新たな区間に移行したか否か)を判断する。
【0027】
フラグが立っていなければ、そのままリターンし、フラグが立つまで、メインルーチンのステップS7,S2乃至S5の処理(図4)と「音源処理」のステップS31乃至S35の処理とを繰り返す。フラグが立つと、ステップS35からステップS36に進み、ステップS33で当該区間での楽音信号生成処理の対象として予約した各発音チャンネルのデータから、当該区間において実行すべき楽音信号生成処理及びエフェクト処理等の内容(発音チャンネル数や、各処理の順序や、各処理の演算内容等)を確定するとともに、入力バッファに書き込まれている受信データ(すなわち、当該の区間の次の区間で楽音信号生成処理及びエフェクト処理等を実行するためのデータ)から、当該区間において実行すべきイベント処理等の内容を確定する。
【0028】
続くステップS37では、ステップS36で確定した処理内容から、当該区間における楽音信号生成処理,エフェクト処理及びイベント処理等に要する全演算量を算出する。この全演算量は、一例として、確定した内容の処理を周波数60MHzの基本クロックで完了するのに要する時間で表現するものとする。そして、この全演算量と、1区間の長さ(前述のように約0.0027秒)とから、確定した内容の処理を1区間内に完了するのに必要な基本クロックの最低周波数を前述の15,30,60MHzの中から選択し、その周波数に対応する値のデータをクロックコントロールレジスタ6に書き込む。(すなわち、全演算量が1区間の長さの半分を越えていれば60MHzを選択し、全演算量が1区間の長さの半分以下であれば30MHzを選択し、全演算量が1区間の長さの4分の1以下であれば15MHzを選択する。)これにより、CPU1をはじめとする各ブロックの基本クロックが、当該最低周波数に設定される。尚、楽音信号生成処理,エフェクト処理及びイベント処理等を実行すべきデータが全く存在しない区間では、スリープモードに対応する値のデータをレジスタ6に書き込むことにより、スリープモードに設定するものとする。
【0029】
ここで、楽音信号生成処理,エフェクト処理及びイベント処理に要するそれぞれの演算量を算出するにあたって考慮すべき要素をいくつか列挙すると、次のとおりである。
楽音信号生成処理においては、発音チャンネル数が多いほど演算量も多くなることはもちろんであるが、各発音チャンネルにおける楽音信号生成アルゴリズムの相違や演算精度の相違によっても、演算量が異なってくる。また、この電子楽器では再生サンプリング周波数は各発音チャンネルともに48kHzに固定されているが、再生サンプリング周波数が可変にした場合には、再生サンプリング周波数の高さに応じて演算量が異なってくる。
【0030】
エフェクト処理においては、エフェクトのアルゴリズムの相違や、演算グレードの相違によって演算量が異なってくる。
イベント処理においては、イベント数が多いほど演算量も多くなることはもちろんであるが、イベントの種類の相違によっても演算量が異なっており、最も演算量が多いのはノートオンイベント処理である。
【0031】
ステップS37に続くステップS38では、ステップS33で演算の対象として予約したデータに対して楽音信号生成処理を実行することにより、当該区間分の128サンプルの楽音信号を生成する。楽音信号生成処理は、一例として、各発音チャンネルで、原波形を生成する処理と、生成した原波形に対してフィルタ演算を行なう音色処理と、音色処理を施した波形に対する音量制御処理とを時分割に実行し、これによって得られた各発音チャンネルの波形を、所望の比率で累算するものである。この楽音信号生成処理が、ステップS37で設定された周波数の基本クロックで実行されるので、全演算量が少ない区間では周波数が低く設定されることによって消費電力が節減される。
【0032】
続くステップS39では、ステップS38で生成した楽音信号に対し、エフェクト処理を実行することによって効果を付与する。このエフェクト処理も、ステップS37で設定された周波数の基本クロックで実行されるので、全演算量が少ない区間では周波数が低く設定されることによって消費電力が節減される。
【0033】
最後のステップS40では、ステップS39でエフェクト処理を施した楽音信号を、RAM4内の出力バッファに書き込んで、当該区間の次の区間で再生処理を実行する対象としてDMA回路10に予約する。そしてリターンする。この楽音信号に対して、当該区間の次の区間に、DMA回路10によって前述のような再生処理が実行されることになる。図11は、出力バッファの記憶領域を示す。128サンプルのそれぞれの楽音信号を記憶する領域が設けられている。尚、出力バッファは2系統設けられており、CPU1は、各区間毎に互い違いに1系統ずつに楽音信号を書き込み、DMA回路10は、各区間毎に、CPU1が書込みを行なっていないほうの出力バッファ(すなわちCPU1が当該区間の直前の区間に楽音信号を書き込んだ出力バッファ)から楽音信号を読み出して再生処理を実行するようになっている。
【0034】
「音源処理」を終了すると、メインルーチンのステップS7,S2乃至S5の処理(図4)と「音源処理」のステップS31乃至S35の処理とを繰り返す。その際、その他の処理(図4のステップS7),受信データ処理(同図のステップS3)及びパネルスイッチイベント処理(同図のステップS5)が、「音源処理」のステップS37で設定された周波数の基本クロックで実行されるので、全演算量が少ない区間では周波数が低く設定されることによって消費電力が節減される。
【0035】
そして、再び新たな区間に移行すると、「音源処理」のステップS35から再びステップS36以下に進み、新たな区間での基本クロックの周波数を設定し、その周波数の基本クロックで該区間における楽音信号生成処理,エフェクト処理及びイベント処理等を実行する。以下、こうした処理を繰り返すことにより、各区間毎に基本クロックを制御しながら楽音信号を生成していく。
【0036】
尚、「音源処理」のステップS37で基本クロックの周波数を設定した後でも、当該区間内に新たにMIDI2からの受信データが発生した場合には、実行中の処理を中断して、前述の「最優先の割込み処理」(図5)を実行することになる。ところが、この割込み処理によって入力バッファに受信データが書き込まれることにより、当該区間内に新たに受信データ処理(図4のステップS3)等を実行しなければならなくなるので、当該区間において実行すべきイベント処理等の内容が、「音源処理」のステップS36で確定した内容よりも多くなってしまう。こうした場合に基本クロックの周波数をステップS37で設定したままにしておくと、当該区間において実行すべき処理を、当該区間内に完了できなくなることがある。
【0037】
そこで、「最優先の割込み処理」(図5)では、ステップS15で、この新たな受信データに対して当該区間において実行すべきイベント処理等の演算量を算出する。そして、「音源処理」のステップ37で算出した全演算量のうちまだ処理していない演算量にこの新たな演算量を加えた合計と、当該区間の残り時間とから、当該区間において実行すべき処理を残り時間内に完了するのに必要な基本クロックの最低周波数を、15,30,60MHzの中から求める。続くステップS16では、ステップS15で求めた周波数が、現在の周波数(すなわち、当該区間に「音源処理」のステップ37で設定した周波数)よりも高いか否かを判断する。
【0038】
高ければ、ステップS17に進み、ステップS15で求めた周波数に対応する値のデータをクロックコントロールレジスタ6に書き込むことにより、基本クロックをこの新たな周波数に設定し直す。そしてリターンする。他方、現在の周波数よりも高くなければ、ステップS16からそのままリターンする。こうした基本クロックの周波数の見直しを行なうことにより、基本クロックの周波数の設定があった後に新たな受信データが発生した場合にも、当該区間において実行すべき処理を、当該区間内に完了できるようになる。
【0039】
「音源処理」のステップS37で基本クロックの周波数を設定した後に、当該区間内に新たな受信データが発生しない場合でも、CPU1は、各区間毎に、区間の開始後所定の時間が経過したときに、図12に示すような割込み処理を実行する。(受信データの発生があった場合には、受信データを直ちに入力する必要があるので、この割込み処理よりも「最優先の割込み処理」のほうを優先して実行する。)すなわち、最初にステップ41で、「音源処理」のステップ37で算出した全演算量のうちまだ処理していない演算量と、当該区間の残り時間とから、当該区間において実行すべき処理を残り時間内に完了するのに必要な基本クロックの最低周波数を、15,30,60MHzの中から求める。続くステップS42では、ステップS41で求めた周波数が、現在の周波数(すなわち、当該区間に「音源処理」のステップ37で設定した周波数)よりも高いか否かを判断する。
【0040】
高ければ、ステップS43に進み、ステップS41で求めた周波数に対応する値のデータをクロックコントロールレジスタ6に書き込むことにより、基本クロックをこの新たな周波数に設定し直す。そしてリターンする。他方、現在の周波数よりも高くなければ、ステップS42からそのままリターンする。
【0041】
この割込み処理によって周波数の見直しを行なう理由は、新たな受信データの発生がない場合でも、何らかの事情(例えば、CPU1が図4のメインルーチンと並行して別の処理を実行しており、その別の処理に予想外に時間を要したこと等)によって、最初に設定した周波数の基本クロックでは間に合わなくなることがないとはいえないので、区間の途中で必ず周波数の見直しをするのが望ましいと考えたことにある。
【0042】
このように、この電子楽器では、実行すべき処理に要する演算量に応じて基本クロックを制御することにより、消費電力が節減されるので、電源である乾電池を交換することなく演奏を行なえる時間が従来よりも延長されるようになる。また、このように基本クロックを制御することにより、演算量が少ない区間では基本クロックの低下により電磁波の輻射が減少するようになるので、電磁波の不要な輻射の抑制を図ることもできるようになる。
【0043】
尚、この発明は、上述のように乾電池等のバッテリーを内蔵した電子楽器に適用した場合に特に有効であるが、これに限らず、過程用コンセントから電力を供給するようにした電子楽器にこの発明を適用してもよい。そうした場合にも、やはり消費電力の節減や電磁波の不要な輻射の抑制を図ることができる。
【0044】
また、この実施の形態では、メインルーチンの処理を、図3を用いて説明したようなタイミングに従って実行している。しかし、これに限らず、必要に応じて、適宜のタイミングでこの処理を実行するようにしてよい。すなわち、例えば「音源処理」の楽音信号生成処理を、新たな区間への移行のタイミングで開始するかわりに、各区間において生成した128サンプルの楽音信号のうちDMA回路10に渡された残りのサンプル数が所定数以下になったことを検出し、その検出のタイミングで楽音信号生成処理を開始するようにしてもよい。あるいは、一定時間毎に出力バッファの空き状態をチェックすることにより、出力バッファの所定以上の領域が空いたことを検出し、その検出のタイミングで楽音信号生成処理を開始するようにしてもよい。また例えば、受信データ処理の実行により音源レジスタにデータが書き込まれることによって「音源処理」のステップS32でイエスと判断される毎に、直ちにそのデータについて楽音信号生成処理を実行するようにしてもよい。
【0045】
また、この実施の形態では、2系統の出力バッファを設け、一方の出力バッファにCPUが楽音信号を書き込む区間では、DMA回路がもう一方の出力バッファから楽音信号を読み出すようにしている。しかし、これに限らず、出力バッファを1系統だけ設けるようにしてもよい。その場合には、CPUが、生成した楽音信号の書込みポインタ位置への書込みを先行して行ない、DMA回路が、1サンプリング周期毎に進行する読出しポインタを発生することにより、書き込まれた楽音信号を読み出すようにすればよい。また逆に、3系統以上の出力バッファを設けるようにしてもよい。そうした場合には、CPUは、DMA回路が楽音信号に対する再生処理を実行する区間よりも2区間以上先行して、当該楽音信号を生成して出力バッファに書き込んでおくことができるようになる。
【0046】
そして、いずれの場合においても、基本クロックの制御は、楽音信号生成処理の開始時点に行なうようにするとよい。また、いずれの場合においても、基本クロックの見直しを、受信データの入力バッファへの書込みの際に行なったり、楽音信号生成処理の途中に行なったり、楽音信号生成処理とは関係なく所定の時間に行なったりするとよい。
【0047】
また、この実施の形態では、基本クロックを60MHz,30MHz,15MHzまたはスリープモードの4通りに制御可能なソフト音源にこの発明を適用している。しかし、これに限らず、基本クロックを他の適宜の周波数に制御可能なソフト音源にこの発明を適用してよいことはもちろんである。
【0048】
また、この実施の形態では、MIDIからの受信データに基づき、実行すべき処理に要する演算量を算出し、この演算量に応じて基本クロックの制御を行なっている。しかし、これに限らず、例えば、MIDIからの受信データに基づき、同時に生成すべき楽音数を求め、この楽音数に応じて基本クロックを制御するようにしてもよい。更に一般的にいえば、基本クロックの周波数を固定するのではなく、MIDIからの受信データに応じて、基本クロックの周波数の制御を行なうようになっていればよい。
【0049】
また、この発明は、電子楽器としての専用機器の制御CPUにより実行される、ROMに記憶されたファクトリーセットのプログラムで実施してもよいし、あるいは、ウィンドウズ等のオペレーティングシステムが動作する汎用のパーソナルコンピュータにより実行される、フロッピーディスクやCD−ROM等に記憶されたソフトウェアに適用してもよい。
【0050】
また、この実施の形態では、ソフト音源にこの発明を適用しているが、これに限らず、他の音源装置にもこの発明を適用してよいことはもちろんである。
【0051】
【発明の効果】
以上のように、この発明によれば、入力した演奏情報に応じて基本クロックを制御することにより、音源の消費電力を節減することができるという優れた効果を奏する。
したがって、特に、携帯を可能にするために電源として乾電池を使用した電子楽器の音源にこの発明を適用すれば、乾電池を交換することなく長時間の演奏を行なうことができるようになるので、そうした電子楽器の使用性の向上を図ることができる。
更に、このように基本クロックを制御することにより、電磁波の不要な輻射の抑制を図ることができるという効果をも併せて奏する。
【図面の簡単な説明】
【図1】この発明を採用した電子楽器の全体構成ブロック図。
【図2】基本クロックの周波数と、CPUの消費電力との関係の一例を示す図。
【図3】ソフト音源の基本原理を示す図。
【図4】CPUの実行するメインルーチンを示すフローチャート。
【図5】CPUの実行する割込み処理を示すフローチャート。
【図6】入力バッファの記憶領域の一例を示す図。
【図7】CPUの実行するノートオンイベント処理を示すフローチャート。
【図8】音色データの内容の一例を示す図。
【図9】音源レジスタの記憶領域の一例を示す図。
【図10】CPUの実行する音源処理を示すフローチャート。
【図11】出力バッファの記憶領域の一例を示す図。
【図12】CPUの実行する割込み処理を示すフローチャート。
【符号の説明】
1 CPU
2 MIDI
3 ROM
4 RAM
5 タイマ
6 クロックコントロールレジスタ
7 キーボード
8 ディスプレイ
9 ハードディスク装置
10 DMA回路
11 データ及びアドレスバス
12 乾電池
13 D/A変換器
14 サウンドシステム[0001]
BACKGROUND OF THE INVENTION
The present invention belongs to the technical field of generating musical tone signals, and particularly relates to a device having a power management mechanism for reducing power consumption.
[0002]
[Prior art]
In today's electronic musical instruments, a sound source LSI, which is a dedicated LSI circuit that performs processing for generating musical tone signals (for example, processing using a PCM (pulse code modulation) method or processing using an FM (frequency modulation) method)), is widely used. Has been.
Such a sound source LSI is not provided with a means for controlling power consumption, and therefore the power consumption is always constant.
[0003]
[Problems to be solved by the invention]
Many electronic musical instruments, such as a portable keyboard, use a dry battery as a power source to enable portability. In such electronic musical instruments, reducing power consumption as much as possible is an important issue in order to enable long-time performance.
However, since the power consumption of the conventional tone generator LSI is constant, there is only a means for saving power so as to turn off the tone generator LSI itself when no sound is produced.
The present invention has been made in view of the above points, and intends to provide a sound source device and a musical sound generation method that enables long-time performance of an electronic musical instrument that uses a dry battery as a power source by reducing power consumption. Is.
[0004]
[Means for Solving the Problems]
The tone generator according to the present invention is controlled by the clock signal supply means capable of controlling the frequency of the clock signal to be supplied, the clock control means for controlling the frequency of the clock signal in accordance with the inputted performance information, and the clock control means. Based on the performance information, each section with a predetermined time length as a unit, with the generated clock signal as a basic clock Corresponding to A CPU for generating and processing a plurality of sampled tone signals for each calculation opportunity set for each predetermined time length, and a plurality of sampled tone signals generated by the CPU are temporarily stored and reproduced for sampling. Output one sample at a time according to the frequency By playing the music of multiple consecutive sections The clock control means controls the clock signal for each section before the processing by the CPU is started.
[0005]
When the performance information is input, the clock control means controls the frequency of the clock signal supplied from the clock signal supply means according to the performance information. In the CPU, this controlled clock signal is used as a basic clock, and each section is set in units of a predetermined time length based on performance information. Corresponding to A plurality of samples of tone signals are generated and processed together for each calculation opportunity set for each predetermined time length. Musical sound signals of a plurality of samples generated by the CPU are temporarily stored and sequentially output one sample at a time according to the reproduction sampling frequency. As a result, musical sounds of multiple consecutive sections are played back .
[0006]
The musical sound generation method according to the present invention includes a first step of inputting performance information, a second step of controlling a frequency of a basic clock when generating a musical sound signal according to the performance information, and the second step. Each section with a predetermined time length as a unit based on the performance information by the CPU operating according to the basic clock controlled in the step Corresponding to A third step of generating and processing a plurality of samples of tone signals for each calculation opportunity set for each predetermined time length, and temporarily storing the plurality of samples of tone signals generated in the third step This is sequentially output one sample at a time according to the playback sampling frequency. By playing the music of multiple consecutive sections The fourth step is characterized in that the second step controls the clock signal for each section before the processing in the third step is started.
[0007]
As described above, the basic clock is controlled in accordance with the input performance information. However, if the frequency of the basic clock is lowered, the processing speed is lowered but the power consumption is reduced. Therefore, power consumption of the sound source device is reduced.
[0008]
Specifically, the number of musical tones to be generated at the same time is obtained based on the inputted performance information, and the basic clock is controlled according to the number of musical tones (when there are many musical tones, the frequency is increased and the number of musical tones is If the number is small, the frequency is lowered), or the calculation amount of the generation process to be executed is calculated based on the input performance information, and the basic clock is controlled according to the calculation amount (the calculation amount is It is preferable to increase the frequency when the number is large, and decrease the frequency when the amount of calculation is small.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
In the following description, the present invention is applied to a configuration in which a musical sound signal is generated by causing a CPU (Central Processing Unit) to execute a computer program describing a musical sound signal generation process instead of a sound source LSI as hardware. Applicable. Such a sound source device or musical tone generation method is referred to as a CPU sound source or a software sound source here.
[0010]
FIG. 1 is a block diagram showing the overall configuration of an electronic musical instrument equipped with a soft sound source to which the present invention is applied. This electronic musical instrument is based on performance information from a MIDI (Musical Instrument Digital Interface) musical instrument according to the performance of the performer, and a musical tone signal generation process (and generated musical tone signal) with the number of tone generation channels corresponding to the number of musical tones to be generated simultaneously. This is a computer music system that causes a CPU of a personal computer to execute an effect process for providing an effect to the personal computer.
[0011]
The
[0012]
The hard disk device 9 records timbre data (for example, waveform data recorded by the PCM method) to be processed according to performance information.
The
[0013]
The
The musical sound signal converted into an analog signal by the D /
[0014]
The
[0015]
FIG. 2 shows an example of the relationship between the frequency of the basic clock and the power consumption of the
[0016]
FIG. 3 is a diagram showing the basic principle of the soft sound source. The
[0017]
Since the reproduction process needs to be executed continuously without interruption for each section in order to sound the musical tone without breaks, the
[0018]
The above is the basic principle of the soft sound source, but in a CPU that operates with a basic clock that can control the frequency, there are many in a section where the number of musical sounds to be generated simultaneously is small or a calculation amount of generation processing to be performed is small. Even if the processing speed is slowed by lowering the frequency of the basic clock than the interval, the generation process can be completed within the interval. In the section where the frequency of the basic clock is lowered, the power consumption is smaller than in the section where the frequency of the basic clock is high (see FIG. 2). This electronic musical instrument performs a musical tone signal generation process while saving power consumption by controlling the basic clock.
Next, an example of the tone signal generation process will be described with reference to FIG.
[0019]
FIG. 4 is a flowchart showing a main routine executed by the
[0020]
Subsequently, the presence / absence of an operation event of the panel switch based on the operation of the keyboard 7 is determined (step S4). If there is an operation event, panel switch event processing is executed (step S5). The panel switch event process includes, for example, a timbre selection process based on the operation of the timbre selection switch, an effect selection process based on the operation of the effect switch, and the like.
Subsequently, “sound source processing” (step S6) for generating a musical sound signal and other processing (step S7) are executed, and thereafter, the processing of steps S2 to S7 is repeated.
[0021]
The reception data processing in step S3 is started when the reception data from MIDI2 is determined to be yes in step S2 on condition that the reception data from MIDI2 is written in the input buffer. This writing is performed each time reception data from MIDI2 is generated. In addition, the "highest priority interrupt process" shown in FIG. 5 is executed. In this interrupt process, when reception data is generated, it is determined in a first step S11 whether or not the basic clock of the
[0022]
In step S13, the received data is captured. In the subsequent step S14, the received reception data is written into the input buffer in the
In subsequent steps S15 to S17, a process for reviewing the frequency of the basic clock is executed. This process will be described after the description of the “sound source process”.
[0023]
Next, an example of the note-on event process in the received data process is shown in FIG. In this process, in the first step S21, data indicating the note number, velocity and timbre part and time data are read from the input buffer and stored in predetermined registers, respectively. In the subsequent step S22, a sound generation channel for generating a musical tone signal corresponding to the note number is assigned. In the subsequent step S23, the timbre data selected for the timbre part by the timbre selection process in the panel switch event process (step S5 in FIG. 4) is read from the
[0024]
In the subsequent step S24, the processed timbre data (including data indicating the tone generation algorithm and the data for controlling the pitch) is written into the tone generator register for the tone generation channel in the
[0025]
Next, an example of “sound source processing” (step S6 in FIG. 4) is shown in FIG. In this process, the stored contents of the tone generator registers (see FIG. 9) for each tone generation channel are checked in the first step S31, and whether or not a new write has been made to any tone generator register for any tone generation channel in the subsequent step S32. Determine whether. If there is a sound source register that has been newly written due to the execution of the note-on event processing (FIG. 7) or the like, the process proceeds to step S33, and the data in the sound source register is stored in the next section of the current section. Reserve as a target for musical tone signal generation processing and effect processing. Then, the process proceeds to step S34. On the other hand, if there is no new writing, the process proceeds from step S32 to step S34 as it is.
[0026]
In step S34, the above-described flag to be set is checked every time the
[0027]
If the flag is not set, the process returns as it is, and the processes of steps S7, S2 to S5 (FIG. 4) of the main routine and the processes of steps S31 to S35 of the “sound source process” are repeated until the flag is set. When the flag is set, the process proceeds from step S35 to step S36, and the tone signal generation process and the effect process to be executed in the section from the sound channel data reserved as the target of the tone signal generation process in the section in step S33. (The number of sound generation channels, the order of each process, the calculation contents of each process, etc.) and the received data written in the input buffer (that is, the tone signal generation process in the next section of the section) And data for executing the effect processing and the like), the contents of the event processing and the like to be executed in the section are determined.
[0028]
In the subsequent step S37, the total calculation amount required for the musical tone signal generation process, the effect process, the event process, and the like in the section is calculated from the processing content determined in step S36. As an example, this total calculation amount is expressed by the time required to complete the processing of the determined content with the basic clock having a frequency of 60 MHz. Then, based on the total amount of calculation and the length of one section (about 0.0027 seconds as described above), the minimum frequency of the basic clock necessary for completing the processing of the determined content within one section is described above. 15, 30, and 60 MHz, and data of a value corresponding to the frequency is written to the
[0029]
Here, a number of elements that should be taken into account in calculating the calculation amounts required for the tone signal generation process, the effect process, and the event process are listed as follows.
In the musical tone signal generation processing, the amount of calculation increases as the number of sound generation channels increases, but the amount of calculation varies depending on the difference in the musical sound signal generation algorithm and the calculation accuracy in each sound generation channel. In this electronic musical instrument, the reproduction sampling frequency is fixed to 48 kHz for each sound generation channel. However, when the reproduction sampling frequency is made variable, the amount of calculation varies depending on the height of the reproduction sampling frequency.
[0030]
In the effect processing, the amount of calculation varies depending on the effect algorithm and the calculation grade.
In event processing, the amount of computation increases as the number of events increases, but the amount of computation varies depending on the type of event, and note-on event processing has the largest amount of computation.
[0031]
In step S38 following step S37, a musical sound signal generation process is performed on the data reserved as a calculation target in step S33, thereby generating a musical sound signal of 128 samples corresponding to the section. As an example, the tone signal generation process includes a process for generating an original waveform in each sound generation channel, a timbre process for performing a filter operation on the generated original waveform, and a volume control process for the waveform subjected to the timbre process. This is executed for division, and the waveform of each tone generation channel obtained by this division is accumulated at a desired ratio. Since this musical tone signal generation process is executed with the basic clock having the frequency set in step S37, the power consumption is reduced by setting the frequency low in the interval where the total calculation amount is small.
[0032]
In the subsequent step S39, an effect is imparted to the musical sound signal generated in step S38 by executing effect processing. Since this effect processing is also executed with the basic clock of the frequency set in step S37, the power consumption is reduced by setting the frequency low in a section where the total calculation amount is small.
[0033]
In the last step S40, the musical sound signal subjected to the effect processing in step S39 is written in the output buffer in the
[0034]
When the “sound source process” is completed, the processes of steps S7 and S2 to S5 (FIG. 4) of the main routine and the processes of steps S31 to S35 of the “sound source process” are repeated. At that time, other processing (step S7 in FIG. 4), reception data processing (step S3 in FIG. 4), and panel switch event processing (step S5 in FIG. 4) are the frequencies set in step S37 of “sound source processing”. Therefore, the power consumption is reduced by setting the frequency low in the interval where the total calculation amount is small.
[0035]
Then, when the transition is made to a new section again, the process proceeds from step S35 of “sound source processing” to step S36 and subsequent steps again, the frequency of the basic clock in the new section is set, and the tone signal generation in that section is performed with the basic clock of that frequency. Processing, effect processing, event processing, etc. are executed. Hereinafter, by repeating such processing, a tone signal is generated while controlling the basic clock for each section.
[0036]
Even if the frequency of the basic clock is set in step S37 of the “sound source processing”, if new reception data from
[0037]
Therefore, in the “highest priority interrupt processing” (FIG. 5), in step S15, the amount of calculation for event processing or the like to be executed in this section is calculated for this new received data. Then, the total of the calculation amounts calculated in step 37 of “sound source processing” plus the new calculation amount added to the calculation amount not yet processed and the remaining time of the interval should be executed in the interval. The minimum frequency of the basic clock necessary to complete the processing within the remaining time is obtained from 15, 30, and 60 MHz. In subsequent step S16, it is determined whether or not the frequency obtained in step S15 is higher than the current frequency (that is, the frequency set in step 37 of “sound source processing” in the section).
[0038]
If it is higher, the process proceeds to step S17, and data of a value corresponding to the frequency obtained in step S15 is written into the clock control register 6 to reset the basic clock to this new frequency. Then return. On the other hand, if it is not higher than the current frequency, the process directly returns from step S16. By reviewing the frequency of the basic clock, even if new received data is generated after the frequency of the basic clock is set, the processing to be executed in the section can be completed within the section. Become.
[0039]
Even when no new reception data is generated in the section after the frequency of the basic clock is set in step S37 of the “sound source processing”, the
[0040]
If it is higher, the process proceeds to step S43, and data of a value corresponding to the frequency obtained in step S41 is written in the clock control register 6 to reset the basic clock to this new frequency. Then return. On the other hand, if it is not higher than the current frequency, the process directly returns from step S42.
[0041]
The reason for revising the frequency by this interrupt process is that even if no new received data is generated, for some reason (for example, the
[0042]
In this way, in this electronic musical instrument, the power consumption is reduced by controlling the basic clock according to the amount of computation required for the processing to be executed, so that the time that can be played without replacing the dry battery as the power source Will become longer than before. In addition, by controlling the basic clock in this way, radiation of electromagnetic waves is reduced due to a decrease in the basic clock in a section where the amount of computation is small, so that unnecessary radiation of electromagnetic waves can be suppressed. .
[0043]
The present invention is particularly effective when applied to an electronic musical instrument having a built-in battery such as a dry battery as described above. However, the present invention is not limited to this, and the present invention is not limited to this. The invention may be applied. Even in such a case, power consumption can be reduced and unnecessary radiation of electromagnetic waves can be suppressed.
[0044]
In this embodiment, the processing of the main routine is executed according to the timing described with reference to FIG. However, the present invention is not limited to this, and this processing may be executed at an appropriate timing as necessary. That is, for example, instead of starting the tone signal generation process of “sound source processing” at the timing of transition to a new section, the remaining samples passed to the
[0045]
In this embodiment, two output buffers are provided, and the DMA circuit reads the musical sound signal from the other output buffer in a section in which the CPU writes the musical sound signal in one output buffer. However, the present invention is not limited to this, and only one output buffer may be provided. In that case, the CPU first writes the generated tone signal to the write pointer position, and the DMA circuit generates a read pointer that progresses every sampling period, thereby generating the written tone signal. What is necessary is just to read. Conversely, three or more output buffers may be provided. In such a case, the CPU can generate the musical tone signal and write it in the output buffer at least two intervals before the interval in which the DMA circuit executes the reproduction processing for the musical tone signal.
[0046]
In any case, the control of the basic clock is preferably performed at the start of the musical tone signal generation process. In any case, the basic clock is reviewed when the received data is written to the input buffer, or in the middle of the tone signal generation process, or at a predetermined time regardless of the tone signal generation process. You can do it.
[0047]
In this embodiment, the present invention is applied to a soft sound source that can control the basic clock in four ways of 60 MHz, 30 MHz, 15 MHz, or sleep mode. However, the present invention is not limited to this, and it goes without saying that the present invention may be applied to a soft sound source that can control the basic clock to another appropriate frequency.
[0048]
In this embodiment, the calculation amount required for processing to be executed is calculated based on the received data from MIDI, and the basic clock is controlled according to the calculation amount. However, the present invention is not limited to this, and for example, the number of musical tones to be generated simultaneously may be obtained based on received data from MIDI, and the basic clock may be controlled in accordance with the number of musical tones. More generally speaking, instead of fixing the frequency of the basic clock, it is only necessary to control the frequency of the basic clock in accordance with received data from MIDI.
[0049]
The present invention may be implemented by a factory set program stored in a ROM, which is executed by a control CPU of a dedicated device as an electronic musical instrument, or a general-purpose personal computer that operates an operating system such as Windows. You may apply to the software memorize | stored in the floppy disk, CD-ROM, etc. which are performed with a computer.
[0050]
In this embodiment, the present invention is applied to the soft sound source. However, the present invention is not limited to this, and the present invention may be applied to other sound source devices.
[0051]
【The invention's effect】
As described above, according to the present invention, there is an excellent effect that the power consumption of the sound source can be reduced by controlling the basic clock according to the input performance information.
Therefore, in particular, if the present invention is applied to a sound source of an electronic musical instrument that uses a dry battery as a power source to enable portability, it will be possible to perform for a long time without replacing the dry battery. Usability of electronic musical instruments can be improved.
Furthermore, by controlling the basic clock in this way, there is also an effect that unnecessary radiation of electromagnetic waves can be suppressed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the overall configuration of an electronic musical instrument that employs the present invention.
FIG. 2 is a diagram illustrating an example of a relationship between a frequency of a basic clock and power consumption of a CPU.
FIG. 3 is a diagram showing a basic principle of a soft sound source.
FIG. 4 is a flowchart showing a main routine executed by a CPU.
FIG. 5 is a flowchart showing interrupt processing executed by a CPU.
FIG. 6 is a diagram showing an example of a storage area of an input buffer.
FIG. 7 is a flowchart showing note-on event processing executed by a CPU.
FIG. 8 is a diagram showing an example of the contents of timbre data.
FIG. 9 is a diagram showing an example of a storage area of a sound source register.
FIG. 10 is a flowchart showing sound source processing executed by a CPU.
FIG. 11 is a diagram illustrating an example of a storage area of an output buffer.
FIG. 12 is a flowchart showing interrupt processing executed by a CPU.
[Explanation of symbols]
1 CPU
2 MIDI
3 ROM
4 RAM
5 Timer
6 Clock control register
7 Keyboard
8 display
9 Hard disk device
10 DMA circuit
11 Data and address bus
12 batteries
13 D / A converter
14 Sound system
Claims (8)
入力した演奏情報に応じて前記クロック信号の周波数を制御するクロック制御手段と、
前記クロック制御手段によって制御された前記クロック信号を基本クロックとして、前記演奏情報に基づいて、所定の時間長の区間を単位として各区間に対応する複数サンプルの楽音信号を、該所定の時間長毎に設定される演算機会毎にそれぞれまとめて生成処理するCPUと、
前記CPUで生成された複数サンプルの楽音信号を一時記憶し、これを再生サンプリング周波数に合わせて1サンプルづつ順次出力することにより、連続する複数の区間の楽音を再生する手段と
を具え、前記クロック制御手段は、前記各区間毎に、前記CPUによる処理が開始される前に前記クロック信号を制御するものである音源装置。Clock signal supply means capable of controlling the frequency of the clock signal to be supplied;
Clock control means for controlling the frequency of the clock signal in accordance with the input performance information;
Using the clock signal controlled by the clock control means as a basic clock, based on the performance information, a musical sound signal of a plurality of samples corresponding to each section with a section of a predetermined time length as a unit, for each predetermined time length. A CPU that performs generation processing for each calculation opportunity set to
The temporarily stores the tone signal of a plurality samples generated by a CPU, a by which the output 1 sample at a time sequentially in accordance with the reproduction sampling frequency, and means for reproducing the tone of a plurality of successive intervals, the clock The sound source device for controlling the clock signal before the processing by the CPU is started for each section.
前記楽音生成手段は、前記楽音数に応じた発音チャンネル数で楽音信号を生成するものである請求項1に記載の音源装置。The clock control means obtains the number of musical tones to be generated simultaneously based on the performance information, and controls the clock signal according to the number of musical tones,
2. The tone generator according to claim 1, wherein the tone generation means generates a tone signal with the number of sound generation channels corresponding to the number of tones.
前記演奏情報に応じて、楽音信号を生成する際の基本クロックの周波数を制御する第2のステップと、
前記第2のステップで制御した基本クロックに従って動作するCPUにより、前記演奏情報に基づいて、所定の時間長の区間を単位として各区間に対応する複数サンプルの楽音信号を、該所定の時間長毎に設定される演算機会毎にそれぞれまとめて生成処理する第3のステップと、
前記第3のステップで生成された複数サンプルの楽音信号を一時記憶し、これを再生サンプリング周波数に合わせて1サンプルづつ順次出力することにより、連続する複数の区間の楽音を再生する第4のステップと
から成り、前記第2のステップは、前記各区間毎に、前記第3のステップによる処理が開始される前に前記クロック信号を制御するものである楽音生成方法。A first step of inputting performance information;
A second step of controlling a frequency of a basic clock when generating a musical sound signal in accordance with the performance information;
Based on the performance information, the CPU operating in accordance with the basic clock controlled in the second step generates a plurality of samples of tone signals corresponding to each section in units of the predetermined time length. A third step of generating and processing together for each calculation opportunity set in
A fourth step of reproducing the musical sounds of a plurality of consecutive sections by temporarily storing the musical sound signals of the plurality of samples generated in the third step and sequentially outputting them one by one according to the reproduction sampling frequency. And the second step controls the clock signal for each section before the processing in the third step is started.
前記第3のステップでは、前記楽音数に応じた発音チャンネル数で楽音信号を生成する請求項5に記載の楽音生成方法。In the second step, the number of musical tones to be generated simultaneously is obtained based on the performance information, the basic clock is controlled according to the number of musical tones,
6. The tone generation method according to claim 5, wherein in the third step, a tone signal is generated with the number of sound generation channels corresponding to the number of tone.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22104995A JP3740717B2 (en) | 1995-08-07 | 1995-08-07 | Tone generator and musical sound generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22104995A JP3740717B2 (en) | 1995-08-07 | 1995-08-07 | Tone generator and musical sound generation method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005095679A Division JP4063286B2 (en) | 2005-03-29 | 2005-03-29 | Sound generator |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0950279A JPH0950279A (en) | 1997-02-18 |
JP3740717B2 true JP3740717B2 (en) | 2006-02-01 |
Family
ID=16760700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22104995A Expired - Fee Related JP3740717B2 (en) | 1995-08-07 | 1995-08-07 | Tone generator and musical sound generation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3740717B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005274782A (en) * | 2004-03-23 | 2005-10-06 | Kawai Musical Instr Mfg Co Ltd | Electronic musical sound generator |
JP4528027B2 (en) * | 2004-05-11 | 2010-08-18 | 株式会社バンダイナムコゲームス | Image generation program, information storage medium, and image generation system |
-
1995
- 1995-08-07 JP JP22104995A patent/JP3740717B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0950279A (en) | 1997-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9613635B2 (en) | Automated performance technology using audio waveform data | |
JPH0997064A (en) | Automatic musical performance data processor | |
JPH09114462A (en) | Musical sound generating method | |
JP3562333B2 (en) | Performance information conversion device, performance information conversion method, and recording medium storing performance information conversion control program | |
JP2896716B2 (en) | Automatic performance device | |
JPH11126070A (en) | Musical sound generating method | |
JP2924745B2 (en) | Musical sound generating apparatus and method | |
JPH0922287A (en) | Musical sound waveform generating method | |
JP3740717B2 (en) | Tone generator and musical sound generation method | |
JP3661556B2 (en) | Music signal processor | |
JPH01319793A (en) | Interruption processing control part for play information processor | |
JP4063286B2 (en) | Sound generator | |
JPH07121181A (en) | Sound information processor | |
JP3658826B2 (en) | Music generation method | |
JP3019755B2 (en) | Music sound generation method and music sound generation device | |
JPH11288285A (en) | Method and device for generating musical sound | |
JP3003559B2 (en) | Music generation method | |
JP3210582B2 (en) | Automatic performance device and electronic musical instrument equipped with the automatic performance device | |
JP3164096B2 (en) | Musical sound generating method and apparatus | |
JP2601039B2 (en) | Electronic musical instrument | |
JP4096952B2 (en) | Music generator | |
JPH10207465A (en) | Method of generating musical sound and device therefor | |
JP3407563B2 (en) | Automatic performance device and automatic performance method | |
JP3627557B2 (en) | Musical sound generating apparatus and method | |
JP3843997B2 (en) | Music generator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041019 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050329 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050426 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050624 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050818 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050825 |
|
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: 20051018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051031 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101118 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111118 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121118 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131118 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |