JP4063286B2 - 音源装置 - Google Patents

音源装置 Download PDF

Info

Publication number
JP4063286B2
JP4063286B2 JP2005095679A JP2005095679A JP4063286B2 JP 4063286 B2 JP4063286 B2 JP 4063286B2 JP 2005095679 A JP2005095679 A JP 2005095679A JP 2005095679 A JP2005095679 A JP 2005095679A JP 4063286 B2 JP4063286 B2 JP 4063286B2
Authority
JP
Japan
Prior art keywords
processing
section
frequency
data
musical
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 - Lifetime
Application number
JP2005095679A
Other languages
English (en)
Other versions
JP2005234597A (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.)
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 JP2005095679A priority Critical patent/JP4063286B2/ja
Publication of JP2005234597A publication Critical patent/JP2005234597A/ja
Application granted granted Critical
Publication of JP4063286B2 publication Critical patent/JP4063286B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

この発明は、楽音信号を生成する技術分野に属する。
今日の電子楽器には、楽音信号を生成する処理(例えばPCM(パルス符号変調)方式による処理やFM(周波数変調)方式による処理等)を実行する専用のLSI回路である音源LSIが、広く採用されている。
こうした音源LSIには、消費電力を制御する手段は備えられておらず、したがって、消費電力は常に一定であった。
電子楽器には、例えばポータブルキーボード等のように、携帯を可能にするために電源として乾電池を使用するものも少なくない。こうした電子楽器では、消費電力を極力節減することが、長時間の演奏を可能にするために重要な課題である。
しかし、従来の音源LSIでは、消費電力が一定であるため、非発音時に音源LSI自体をオフにするくらいしか、節電のための手段が存在しなかった。
この発明は上述の点に鑑みてなされたもので、簡単化された構成からなる音源装置を提供しようとするものである。
この発明に係る音源装置は、複数サンプルの記憶位置を有し、書込みポインタによって書込みアドレス位置が指定され、読出しポインタによって読出しアドレス位置が指定され、書込みが読出しに先行する1つの出力バッファと、入力した演奏情報に基づいて、所定時間間隔で、該演奏情報によって指示される楽音の所定の再生サンプリング周期に従う時系列的な複数サンプルの楽音信号を、該再生サンプリング周期よりも高速のクロックに従い、まとめて生成処理し、生成した複数サンプルの楽音信号を、該複数サンプルの楽音信号の時系列順で進行する書込みポインタに従い、前記出力バッファに書き込む楽音生成手段と、前記出力バッファに書き込まれた複数サンプルの楽音信号を、1再生サンプリング周期毎に進行する前記読出しポインタによって1サンプルづつ順次読み出して再生する再生手段とを具えたことを特徴としている。
このように、複数サンプルの記憶位置を有し、書込みポインタによって書込みアドレス位置が指定され、読出しポインタによって読出しアドレス位置が指定され、書込みが読出しに先行する1つの出力バッファと、入力した演奏情報に基づいて、所定時間間隔で、該演奏情報によって指示される楽音の所定の再生サンプリング周期に従う時系列的な複数サンプルの楽音信号を、該再生サンプリング周期よりも高速のクロックに従い、まとめて生成処理し、生成した複数サンプルの楽音信号を、該複数サンプルの楽音信号の時系列順で進行する書込みポインタに従い、前記出力バッファに書き込む楽音生成手段と、前記出力バッファに書き込まれた複数サンプルの楽音信号を、1再生サンプリング周期毎に進行する前記読出しポインタによって1サンプルづつ順次読み出して再生する再生手段とを具えた構成により、演奏情報によって指示される楽音の時系列的な複数サンプルの楽音信号をまとめて生成して出力バッファに書き込むことで効率的な楽音生成処理を行うことができ、また、書込みが読出しに先行するようにした1つの出力バッファを使用することで、簡単化された構成の音源装置を提供することができる。
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
以下の説明では、ハードウェアとしての音源LSIに替えて、楽音信号の生成処理を記述したコンピュータプログラムをCPU(セントラルプロセッシングユニット)に実行させることによって楽音信号を生成するようにしたものにこの発明を適用している。このような音源装置や楽音生成方法のことを、ここではCPU音源あるいはソフト音源と呼ぶことにする。
図1は、この発明を適用したソフト音源を搭載した電子楽器の全体構成ブロック図である。この電子楽器は、演奏者の演奏に応じたMIDI(Musical Instrument Digital Interface)楽器からの演奏情報に基づき、同時に生成すべき楽音数に応じた発音チャンネル数での楽音信号生成処理(及び生成した楽音信号に効果を付与するエフェクト処理)をパーソナルコンピュータのCPUに実行させるコンピュータミュージックシステムである。
CPU1には、MIDI楽器の接続されるMIDIのインターフェース2,ROM(リードオンリーメモリ)3,RAM(ランダムアクセスメモリ)4,タイマ5,クロックコントロールレジスタ6,キーボード7,ディスプレイ8,ハードディスク装置9,及びDMA(ダイレクトメモリアクセス)回路10が、データ及びアドレスバス11を介して接続されている。また、このパーソナルコンピュータはポータブル式であり、電源である乾電池12から各ブロックに電力が供給されている。
ハードディスク装置9には、演奏情報に応じて加工すべき音色データ(例えば、PCM方式で記録した波形データ等)が記録されている。
RAM4には、生成されて効果を付与された楽音信号を一時的に記憶させるための記憶領域等が設けられている。
DMA回路10は、RAM4に一時記憶された楽音信号を、D/A(ディジタル/アナログ)変換器13の再生サンプリング周波数に合わせてダイレクトメモリアクセス方式で1サンプルずつ順次RAM4から読み出してD/A変換器13に送る再生処理を実行するものである。D/A変換器13の再生サンプリング周波数は、上記基本クロックとは別の、周波数を固定したクロック信号に同期している(以下では、この再生サンプリング周波数を48kHzであるとする)。DMA回路10は、一例として、128サンプルの楽音信号を単位としてこの再生処理を実行する。DMA回路10は、各単位の楽音信号に対する再生処理を開始する毎に、所定のフラグを立てるようになっている。
D/A変換器13でアナログ信号に変換された楽音信号は、サウンドシステム14に供給されて音響的に発音される。
クロックコントロールレジスタ6には、CPU1が幾通りかの値のデータを書き込むことができる。図示しない水晶発振器から発生した一定周波数の信号を分周する分周器(図示せず)は、このレジスタ6に書き込まれたデータの値に応じて、60MHz,30MHzまたは15MHzのうちのいずれかの周波数のクロック信号を基本クロックとして各ブロックに供給するか、あるいはクロック信号を各ブロックに供給しない状態(スリープモードと呼ぶ)になる。すなわち、CPU1をはじめとする各ブロックの基本クロックは、60MHz,30MHz,15MHzまたはスリープモードの4通りに制御可能であり、CPU1によってそのいずれかの周波数に制御される。尚、スリープモード中に演奏者が新たにMIDI楽器2のパネルスイッチ等を操作した場合にも、スリープモードが解除されてクロック信号の周波数が15MHzに設定されるようになっている。
図2は、基本クロックの周波数と、CPU1の消費電力との関係の一例を示したものである。この例では、周波数が低くなると、それにほぼ比例して消費電力も小さくなっている。また、スリープモードでは、消費電力が著しく小さくなっている。
図3は、ソフト音源の基本原理を示した図である。CPU1は、所定の時間長の区間を単位として、各区間内に入力したMIDI2からの演奏情報に基づき、それぞれ当該区間の次の区間に、楽音信号生成処理(及びエフェクト処理)を実行する。DMA回路10は、こうして各区間毎に生成された楽音信号を単位として、それぞれ当該区間の次の区間に再生処理を実行する。(例えば、時刻T1からT2までの区間に入力した演奏情報に基づき、時刻T2からT3までの区間に楽音信号生成処理を実行し、時刻T3からT4までの区間に再生処理を実行する。)したがって、1区間の長さは、DMA回路10が再生処理の1単位とするサンプル数と再生サンプリング周期との積であり、前述の例では128÷48000≒0.0027秒となる。
そして、再生処理は、楽音を切れ目なく発音させるために各区間毎に途切れることなく連続して実行する必要があるので、CPU1は、DMA回路10が各区間で再生処理を実行する楽音信号(前述の例では128サンプルの楽音信号)については、必ずその直前の区間内に生成を完了している必要がある。しかし、入力する演奏情報の内容や演奏情報の入力頻度は、演奏の進行に伴って時間的に変化していくので、1区間内に同時に生成すべき楽音数や、1区間内に実行すべき生成処理の演算量は、一定ではなく、むしろ区間毎に大きく変動するという特徴を有している。
以上がソフト音源の基本原理であるが、周波数を制御可能な基本クロックで動作するCPUでは、同時に生成すべき楽音数が少ない区間や実行すべき生成処理の演算量が少ない区間では、それらが多い区間よりも基本クロックの周波数を低くすることによって処理速度を遅くしても、当該区間内に生成処理を完了させることが可能である。そして、基本クロックの周波数を低くした区間では、基本クロックの周波数が高い区間よりも消費電力が少なくなる(図2参照)。この電子楽器は、こうした基本クロックの制御による消費電力の節減を図りつつ、楽音信号生成処理を実行するものである。
次に、この楽音信号生成処理の一例を、図4以下を参照して説明することにする。
図4は、CPU1の実行するメインルーチンを示すフローチャートである。メインルーチンでは、所定の初期設定(ステップS1)の後、RAM4内の入力バッファに受信データが記憶されているか否かを判断し(ステップS2)、記憶されていれば、受信データ処理を実行する(ステップS3)。受信データ処理には、例えば、MIDI2からのノートオン信号に基づくノートオンイベント処理や、MIDI2からのノートオフ信号に基づくノートオフイベント処理等が含まれる。
続いて、キーボード7の操作に基づくパネルスイッチの操作イベントの有無を判断し(ステップS4)、操作イベントがあれば、パネルスイッチイベント処理を実行する(ステップS5)。パネルスイッチイベント処理には、例えば、音色選択スイッチの操作に基づく音色選択処理や、エフェクトスイッチの操作に基づく効果選択処理等が含まれる。
続いて、楽音信号を生成する「音源処理」(ステップS6)と、その他の処理(ステップS7)とを実行し、以下、ステップS2乃至ステップS7の処理を繰り返す。
ステップS3の受信データ処理は、MIDI2からの受信データが入力バッファに書き込まれたことを条件としてステップS2でイエスと判断されて開始されるが、この書込みは、MIDI2からの受信データが発生する都度に、図5に示す「最優先の割込み処理」を実行することによって行なわれる。この割込み処理では、受信データが発生すると、最初のステップS11で、CPU1の基本クロックがスリープモードか否かを判断する。スリープモードであれば、ステップS12に進み、クロックコントロールレジスタ6に所定の値のデータを書き込むことによって基本クロックの周波数を15MHzに設定した後、ステップS13に進む。他方、スリープモードでなければ、ステップS11からそのままステップS13に進む。
ステップS13では、当該受信データを取り込む。続くステップS14では、取り込んだ受信データを、現在の時刻を示す時刻データとともにRAM4内の入力バッファに書き込む。時刻データを書き込む理由は、受信データの入力バッファへの書込みは、受信データが発生する都度直ちに行なうが、入力バッファに書き込んだ受信データに対するメインルーチンでの処理は、直ちに実行するわけではないので、いつ発生した受信データかを識別できるようにしておくことにある。図6は、入力バッファの記憶領域の一例を示す。この例では、受信データを1件毎に時刻データとともに書き込む領域である「データ1」,「データ2」,「データ3」…と、受信データの件数を書き込む領域である「イベント数」とが設けられている。
続くステップS15乃至ステップS17では、基本クロックの周波数の見直しのための処理を実行するが、この処理の説明は、「音源処理」の説明の後に行なうことにする。
次に、受信データ処理のうちのノートオンイベント処理の一例を、図7に示す。この処理では、最初のステップS21で、入力バッファから、ノートナンバ,ベロシティ及び音色パートを示すデータと時刻データとを読み出してそれぞれ所定のレジスタに格納する。続くステップS22では、上記ノートナンバに対応する楽音信号を発生すべき発音チャンネルの割当てを行なう。続くステップS23では、パネルスイッチイベント処理(図4のステップS5)のうちの音色選択処理によって上記音色パートについて選択された音色データをRAM4から読み出し、その音色データを上記ノートナンバ及びベロシティに応じて加工する。図8は、ハードディスク装置9から読み出されてRAM4の音色データ領域に記憶された音色データの内容の一例を示す。この例では、音色データには、所定音域毎の複数周期分の波形データ,エンベロープを制御するデータ,タッチを制御するデータ及びその他のデータが含まれている。
続くステップS24では、加工した音色データ(楽音生成アルゴリズムを示すデータ及びピッチを制御するデータを含む)を、時刻データとともにRAM4内の当該発音チャンネル用の音源レジスタに書き込み、最後にステップS25で、ノートオンを示すデータを当該音源レジスタに書き込む。そしてリターンする。図9は、音源レジスタの記憶領域の一例を示す。この例では、32チャンネル分の音源レジスタが用意されており、各音源レジスタに、ノートナンバ,波形データ,エンベロープ制御データ、ノートオン,時刻データ及びその他のデータを書き込む領域と、ワーキングエリアとが設けられている。その他のデータには、パネルスイッチイベント処理で選択されたエフェクトのアルゴリズムを示すデータ等が含まれる。
次に、「音源処理」(図4のステップS6)の一例を、図10に示す。この処理では、最初のステップS31で、各発音チャンネル用の音源レジスタ(図9参照)の記憶内容をチェックし、続くステップS32で、いずれかの発音チャンネル用の音源レジスタに新規の書込みがあったか否かを判断する。ノートオンイベント処理(図7)等が実行されたことによって新規の書込みが行なわれた音源レジスタがあれば、ステップS33に進み、その音源レジスタ内のデータを、現在の区間の次の区間での楽音信号生成処理及びエフェクト処理の対象として予約する。そしてステップS34に進む。他方、新規の書込みがなければ、ステップS32からそのままステップS34に進む。
ステップS34では、DMA回路10が128サンプル分の楽音信号に対する再生処理を開始する毎(すなわち、各区間からその次の区間に移行した毎)に立てる前述のフラグをチェックする。続いてステップS35では、フラグが立っているか否か(すなわち、新たな区間に移行したか否か)を判断する。
フラグが立っていなければ、そのままリターンし、フラグが立つまで、メインルーチンのステップS7,S2乃至S5の処理(図4)と「音源処理」のステップS31乃至S35の処理とを繰り返す。フラグが立つと、ステップS35からステップS36に進み、ステップS33で当該区間での楽音信号生成処理の対象として予約した各発音チャンネルのデータから、当該区間において実行すべき楽音信号生成処理及びエフェクト処理等の内容(発音チャンネル数や、各処理の順序や、各処理の演算内容等)を確定するとともに、入力バッファに書き込まれている受信データ(すなわち、当該の区間の次の区間で楽音信号生成処理及びエフェクト処理等を実行するためのデータ)から、当該区間において実行すべきイベント処理等の内容を確定する。
続くステップS37では、ステップS36で確定した処理内容から、当該区間における楽音信号生成処理,エフェクト処理及びイベント処理等に要する全演算量を算出する。この全演算量は、一例として、確定した内容の処理を周波数60MHzの基本クロックで完了するのに要する時間で表現するものとする。そして、この全演算量と、1区間の長さ(前述のように約0.0027秒)とから、確定した内容の処理を1区間内に完了するのに必要な基本クロックの最低周波数を前述の15,30,60MHzの中から選択し、その周波数に対応する値のデータをクロックコントロールレジスタ6に書き込む。(すなわち、全演算量が1区間の長さの半分を越えていれば60MHzを選択し、全演算量が1区間の長さの半分以下であれば30MHzを選択し、全演算量が1区間の長さの4分の1以下であれば15MHzを選択する。)これにより、CPU1をはじめとする各ブロックの基本クロックが、当該最低周波数に設定される。尚、楽音信号生成処理,エフェクト処理及びイベント処理等を実行すべきデータが全く存在しない区間では、スリープモードに対応する値のデータをレジスタ6に書き込むことにより、スリープモードに設定するものとする。
ここで、楽音信号生成処理,エフェクト処理及びイベント処理に要するそれぞれの演算量を算出するにあたって考慮すべき要素をいくつか列挙すると、次のとおりである。
楽音信号生成処理においては、発音チャンネル数が多いほど演算量も多くなることはもちろんであるが、各発音チャンネルにおける楽音信号生成アルゴリズムの相違や演算精度の相違によっても、演算量が異なってくる。また、この電子楽器では再生サンプリング周波数は各発音チャンネルともに48kHzに固定されているが、再生サンプリング周波数が可変にした場合には、再生サンプリング周波数の高さに応じて演算量が異なってくる。
エフェクト処理においては、エフェクトのアルゴリズムの相違や、演算グレードの相違によって演算量が異なってくる。
イベント処理においては、イベント数が多いほど演算量も多くなることはもちろんであるが、イベントの種類の相違によっても演算量が異なっており、最も演算量が多いのはノートオンイベント処理である。
ステップS37に続くステップS38では、ステップS33で演算の対象として予約したデータに対して楽音信号生成処理を実行することにより、当該区間分の128サンプルの楽音信号を生成する。楽音信号生成処理は、一例として、各発音チャンネルで、原波形を生成する処理と、生成した原波形に対してフィルタ演算を行なう音色処理と、音色処理を施した波形に対する音量制御処理とを時分割に実行し、これによって得られた各発音チャンネルの波形を、所望の比率で累算するものである。この楽音信号生成処理が、ステップS37で設定された周波数の基本クロックで実行されるので、全演算量が少ない区間では周波数が低く設定されることによって消費電力が節減される。
続くステップS39では、ステップS38で生成した楽音信号に対し、エフェクト処理を実行することによって効果を付与する。このエフェクト処理も、ステップS37で設定された周波数の基本クロックで実行されるので、全演算量が少ない区間では周波数が低く設定されることによって消費電力が節減される。
最後のステップS40では、ステップS39でエフェクト処理を施した楽音信号を、CPU1の制御により生成される複数サンプルの楽音信号の時系列順で進行する書込みアドレス(書込みポインタ)に従い、RAM4内の出力バッファに書き込んで、当該区間の次の区間で再生処理を実行する対象としてDMA回路10に予約する。そしてリターンする。この楽音信号に対して、当該区間の次の区間に、DMA回路10によって前述のような再生処理が実行されることになる。図11は、出力バッファの記憶領域を示す。128サンプルのそれぞれの楽音信号を記憶する領域が設けられている。尚、出力バッファは2系統設けられており、CPU1は、各区間毎に互い違いに1系統ずつに楽音信号を書き込むように前記書込みアドレス(書込みポインタ)を生成し、DMA回路10は、各区間毎に、CPU1が書込みを行なっていないほうの出力バッファ(すなわちCPU1が当該区間の直前の区間に楽音信号を書き込んだ出力バッファ)から楽音信号を読み出すように、1再生サンプリング周期毎に進行する読出しアドレス(読出しポインタ)を生成して再生処理を実行するようになっている。
「音源処理」を終了すると、メインルーチンのステップS7,S2乃至S5の処理(図4)と「音源処理」のステップS31乃至S35の処理とを繰り返す。その際、その他の処理(図4のステップS7),受信データ処理(同図のステップS3)及びパネルスイッチイベント処理(同図のステップS5)が、「音源処理」のステップS37で設定された周波数の基本クロックで実行されるので、全演算量が少ない区間では周波数が低く設定されることによって消費電力が節減される。
そして、再び新たな区間に移行すると、「音源処理」のステップS35から再びステップS36以下に進み、新たな区間での基本クロックの周波数を設定し、その周波数の基本クロックで該区間における楽音信号生成処理,エフェクト処理及びイベント処理等を実行する。以下、こうした処理を繰り返すことにより、各区間毎に基本クロックを制御しながら楽音信号を生成していく。
尚、「音源処理」のステップS37で基本クロックの周波数を設定した後でも、当該区間内に新たにMIDI2からの受信データが発生した場合には、実行中の処理を中断して、前述の「最優先の割込み処理」(図5)を実行することになる。ところが、この割込み処理によって入力バッファに受信データが書き込まれることにより、当該区間内に新たに受信データ処理(図4のステップS3)等を実行しなければならなくなるので、当該区間において実行すべきイベント処理等の内容が、「音源処理」のステップS36で確定した内容よりも多くなってしまう。こうした場合に基本クロックの周波数をステップS37で設定したままにしておくと、当該区間において実行すべき処理を、当該区間内に完了できなくなることがある。
そこで、「最優先の割込み処理」(図5)では、ステップS15で、この新たな受信データに対して当該区間において実行すべきイベント処理等の演算量を算出する。そして、「音源処理」のステップ37で算出した全演算量のうちまだ処理していない演算量にこの新たな演算量を加えた合計と、当該区間の残り時間とから、当該区間において実行すべき処理を残り時間内に完了するのに必要な基本クロックの最低周波数を、15,30,60MHzの中から求める。続くステップS16では、ステップS15で求めた周波数が、現在の周波数(すなわち、当該区間に「音源処理」のステップ37で設定した周波数)よりも高いか否かを判断する。
高ければ、ステップS17に進み、ステップS15で求めた周波数に対応する値のデータをクロックコントロールレジスタ6に書き込むことにより、基本クロックをこの新たな周波数に設定し直す。そしてリターンする。他方、現在の周波数よりも高くなければ、ステップS16からそのままリターンする。こうした基本クロックの周波数の見直しを行なうことにより、基本クロックの周波数の設定があった後に新たな受信データが発生した場合にも、当該区間において実行すべき処理を、当該区間内に完了できるようになる。
「音源処理」のステップS37で基本クロックの周波数を設定した後に、当該区間内に新たな受信データが発生しない場合でも、CPU1は、各区間毎に、区間の開始後所定の時間が経過したときに、図12に示すような割込み処理を実行する。(受信データの発生があった場合には、受信データを直ちに入力する必要があるので、この割込み処理よりも「最優先の割込み処理」のほうを優先して実行する。)すなわち、最初にステップ41で、「音源処理」のステップ37で算出した全演算量のうちまだ処理していない演算量と、当該区間の残り時間とから、当該区間において実行すべき処理を残り時間内に完了するのに必要な基本クロックの最低周波数を、15,30,60MHzの中から求める。続くステップS42では、ステップS41で求めた周波数が、現在の周波数(すなわち、当該区間に「音源処理」のステップ37で設定した周波数)よりも高いか否かを判断する。
高ければ、ステップS43に進み、ステップS41で求めた周波数に対応する値のデータをクロックコントロールレジスタ6に書き込むことにより、基本クロックをこの新たな周波数に設定し直す。そしてリターンする。他方、現在の周波数よりも高くなければ、ステップS42からそのままリターンする。
この割込み処理によって周波数の見直しを行なう理由は、新たな受信データの発生がない場合でも、何らかの事情(例えば、CPU1が図4のメインルーチンと並行して別の処理を実行しており、その別の処理に予想外に時間を要したこと等)によって、最初に設定した周波数の基本クロックでは間に合わなくなることがないとはいえないので、区間の途中で必ず周波数の見直しをするのが望ましいと考えたことにある。
このように、この電子楽器では、実行すべき処理に要する演算量に応じて基本クロックを制御することにより、消費電力が節減されるので、電源である乾電池を交換することなく演奏を行なえる時間が従来よりも延長されるようになる。また、このように基本クロックを制御することにより、演算量が少ない区間では基本クロックの低下により電磁波の輻射が減少するようになるので、電磁波の不要な輻射の抑制を図ることもできるようになる。
尚、この発明は、上述のように乾電池等のバッテリーを内蔵した電子楽器に適用した場合に特に有効であるが、これに限らず、家庭用コンセントから電力を供給するようにした電子楽器にこの発明を適用してもよい。そうした場合にも、やはり消費電力の節減や電磁波の不要な輻射の抑制を図ることができる。
また、この実施の形態では、メインルーチンの処理を、図3を用いて説明したようなタイミングに従って実行している。しかし、これに限らず、必要に応じて、適宜のタイミングでこの処理を実行するようにしてよい。すなわち、例えば「音源処理」の楽音信号生成処理を、新たな区間への移行のタイミングで開始するかわりに、各区間において生成した128サンプルの楽音信号のうちDMA回路10に渡された残りのサンプル数が所定数以下になったことを検出し、その検出のタイミングで楽音信号生成処理を開始するようにしてもよい。あるいは、一定時間毎に出力バッファの空き状態をチェックすることにより、出力バッファの所定以上の領域が空いたことを検出し、その検出のタイミングで楽音信号生成処理を開始するようにしてもよい。また例えば、受信データ処理の実行により音源レジスタにデータが書き込まれることによって「音源処理」のステップS32でイエスと判断される毎に、直ちにそのデータについて楽音信号生成処理を実行するようにしてもよい。
また、この実施の形態では、2系統の出力バッファを設け、一方の出力バッファにCPUが楽音信号を書き込む区間では、DMA回路がもう一方の出力バッファから楽音信号を読み出すようにしている。しかし、これに限らず、出力バッファを1系統だけ設けるようにしてもよい。その場合には、CPUが、生成した楽音信号の書込みポインタ(書込みアドレス)位置への書込みを該アドレス位置からの読出しに先行して行なうように前記書込みポインタを生成し、DMA回路が、1再生サンプリング周期毎に進行する前記読出しポインタを発生することにより、書き込まれた楽音信号を読み出すようにすればよい。また逆に、3系統以上の出力バッファを設けるようにしてもよい。そうした場合には、CPUは、DMA回路が楽音信号に対する再生処理を実行する区間よりも2区間以上先行して、当該楽音信号を生成して出力バッファに書き込んでおくことができるようになる。

そして、いずれの場合においても、基本クロックの制御は、楽音信号生成処理の開始時点に行なうようにするとよい。また、いずれの場合においても、基本クロックの見直しを、受信データの入力バッファへの書込みの際に行なったり、楽音信号生成処理の途中に行なったり、楽音信号生成処理とは関係なく所定の時間に行なったりするとよい。
また、この実施の形態では、基本クロックを60MHz,30MHz,15MHzまたはスリープモードの4通りに制御可能なソフト音源にこの発明を適用している。しかし、これに限らず、基本クロックを他の適宜の周波数に制御可能なソフト音源にこの発明を適用してよいことはもちろんである。
また、この実施の形態では、MIDIからの受信データに基づき、実行すべき処理に要する演算量を算出し、この演算量に応じて基本クロックの制御を行なっている。しかし、これに限らず、例えば、MIDIからの受信データに基づき、同時に生成すべき楽音数を求め、この楽音数に応じて基本クロックを制御するようにしてもよい。更に一般的にいえば、基本クロックの周波数を固定するのではなく、MIDIからの受信データに応じて、基本クロックの周波数の制御を行なうようになっていればよい。
また、この発明は、電子楽器としての専用機器の制御CPUにより実行される、ROMに記憶されたファクトリーセットのプログラムで実施してもよいし、あるいは、ウィンドウズ等のオペレーティングシステムが動作する汎用のパーソナルコンピュータにより実行される、フロッピーディスクやCD−ROM等に記憶されたソフトウェアに適用してもよい。
また、この実施の形態では、ソフト音源にこの発明を適用しているが、これに限らず、他の音源装置にもこの発明を適用してよいことはもちろんである。
この発明を採用した電子楽器の全体構成ブロック図。 基本クロックの周波数と、CPUの消費電力との関係の一例を示す図。 ソフト音源の基本原理を示す図。 CPUの実行するメインルーチンを示すフローチャート。 CPUの実行する割込み処理を示すフローチャート。 入力バッファの記憶領域の一例を示す図。 CPUの実行するノートオンイベント処理を示すフローチャート。 音色データの内容の一例を示す図。 音源レジスタの記憶領域の一例を示す図。 CPUの実行する音源処理を示すフローチャート。 出力バッファの記憶領域の一例を示す図。 CPUの実行する割込み処理を示すフローチャート。
符号の説明
1 CPU
2 MIDI
3 ROM
4 RAM
5 タイマ
6 クロックコントロールレジスタ
7 キーボード
8 ディスプレイ
9 ハードディスク装置
10 DMA回路
11 データ及びアドレスバス
12 乾電池
13 D/A変換器
14 サウンドシステム

Claims (1)

  1. 複数サンプルの記憶位置を有し、書込みポインタによって書込みアドレス位置が指定され、読出しポインタによって読出しアドレス位置が指定され、書込みが読出しに先行する1つの出力バッファと、
    入力した演奏情報に基づいて、所定時間間隔で、該演奏情報によって指示される楽音の所定の再生サンプリング周期に従う時系列的な複数サンプルの楽音信号を、該再生サンプリング周期よりも高速のクロックに従い、まとめて生成処理し、生成した複数サンプルの楽音信号を、該複数サンプルの楽音信号の時系列順で進行する書込みポインタに従い、前記出力バッファに書き込む楽音生成手段と、
    前記出力バッファに書き込まれた複数サンプルの楽音信号を、1再生サンプリング周期毎に進行する前記読出しポインタによって1サンプルづつ順次読み出して再生する再生手段と
    を具えた音源装置。
JP2005095679A 2005-03-29 2005-03-29 音源装置 Expired - Lifetime JP4063286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005095679A JP4063286B2 (ja) 2005-03-29 2005-03-29 音源装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005095679A JP4063286B2 (ja) 2005-03-29 2005-03-29 音源装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP22104995A Division JP3740717B2 (ja) 1995-08-07 1995-08-07 音源装置及び楽音生成方法

Publications (2)

Publication Number Publication Date
JP2005234597A JP2005234597A (ja) 2005-09-02
JP4063286B2 true JP4063286B2 (ja) 2008-03-19

Family

ID=35017529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005095679A Expired - Lifetime JP4063286B2 (ja) 2005-03-29 2005-03-29 音源装置

Country Status (1)

Country Link
JP (1) JP4063286B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4778872B2 (ja) * 2005-10-20 2011-09-21 パナソニック株式会社 楽音出力装置

Also Published As

Publication number Publication date
JP2005234597A (ja) 2005-09-02

Similar Documents

Publication Publication Date Title
JP3198890B2 (ja) 自動演奏データ処理装置
US9202452B2 (en) Musical sound generation device, storage medium, and musical sound generation method
JP3293474B2 (ja) 楽音発生方法
JP2924745B2 (ja) 楽音発生装置及び方法
JPH0922287A (ja) 楽音波形生成方法
JP4063286B2 (ja) 音源装置
JP3221314B2 (ja) 楽音合成装置及び方法
JP3740717B2 (ja) 音源装置及び楽音生成方法
US6770806B2 (en) Tone signal processing apparatus with intermittent clock supply
JPH0766265B2 (ja) 演奏情報処理装置の割込処理制御部
JP3918817B2 (ja) 楽音生成装置
US11042380B2 (en) Apparatus, method and computer program for processing instruction
JP3658826B2 (ja) 楽音生成方法
JP3791162B2 (ja) 信号処理装置
JP3003559B2 (ja) 楽音生成方法
JPH09297579A (ja) 楽音合成装置
JP3843996B2 (ja) 信号処理装置
JPH0997067A (ja) 楽音発生方法および楽音発生装置
JP3693045B2 (ja) 楽音発生装置
JP3693046B2 (ja) 楽音発生装置
JP3627557B2 (ja) 楽音発生装置及び方法
JP3843997B2 (ja) 楽音発生装置
USRE40364E1 (en) Tone signal processing apparatus with intermittent clock supply
JP2576323B2 (ja) 演奏記録再生装置
JP2001265351A (ja) 波形データ処理装置及び波形データ処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070409

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: 20071211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140111

Year of fee payment: 6

EXPY Cancellation because of completion of term