JP3658826B2 - 楽音生成方法 - Google Patents
楽音生成方法 Download PDFInfo
- Publication number
- JP3658826B2 JP3658826B2 JP34904495A JP34904495A JP3658826B2 JP 3658826 B2 JP3658826 B2 JP 3658826B2 JP 34904495 A JP34904495 A JP 34904495A JP 34904495 A JP34904495 A JP 34904495A JP 3658826 B2 JP3658826 B2 JP 3658826B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- data
- calculation
- sampling frequency
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/002—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof
- G10H7/006—Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions, e.g. programs, to control the sequence thereof using two or more algorithms of different types to generate tones, e.g. according to tone color or to processor workload
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/621—Waveform interpolation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/631—Waveform resampling, i.e. sample rate conversion or sample depth conversion
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/635—Waveform resolution or sound quality selection, e.g. selection of high or low sampling rates, lossless, lossy or lossier compression algorithms
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、CPUやDSP(Digital Signal Processor)などのプログラマブルな演算処理装置を用いて演算により楽音波形サンプルを生成する楽音生成方法に関する。
【0002】
【従来の技術】
従来より、CPUやDSPなどの演算処理装置を用いて楽音波形サンプルを波形生成演算により生成するようにした音源装置や、あるいは、楽音波形を生成する楽音生成プログラムを用いてパーソナルコンピュータなどの汎用コンピュータ上で特別のハードウエアを使用することなく楽音を生成することが行なわれている。
【0003】
楽音を発生させるためには、サンプリング周期、すなわち、DAC(Digital Analog Converter)における変換タイミング毎に演算生成した波形サンプルをDACに供給することが必要であり、このために演算処理装置(以下、単に「CPU」という)における演算量は非常に大きいものとなっている。すなわち、CPUは、楽音を演算生成するために、入力されるMIDIイベントなどの演奏情報から楽音制御情報を生成する処理および波形生成処理を実行しなければならない。
【0004】
この波形生成処理は、波形メモリ方式の音源の場合を例にとれば、演奏情報から生成された楽音制御情報に基づいて、各発音チャンネル毎に、LFO(Low Frequency Oscillator)、フィルタEGおよび音量EGなどの波形演算を実行し、対応する波形メモリ(波形テーブル)から波形データを読み出し、該読み出した波形データに対して補間演算を行い、その結果得られた波形データに対して各種EG波形のサンプルを乗算して当該発音チャンネル分の波形データを演算生成し、これを全発音チャンネルについて繰り返し実行して各発音チャンネル分の波形サンプルデータを累算することにより1サンプリングタイミングに対応する楽音波形データの生成を行っている。
【0005】
【発明が解決しようとする課題】
上述したように、楽音波形サンプルを演算生成するためにCPUにおいて実行される演算量は非常に大きいものである。また、この演算量は、発音中のチャンネル数や楽音生成演算の内容によってダイナミックに変動するものである。
このようにCPUの処理負担が大きいために、発音可能チャンネル数を多くすることができない、あるいは、汎用コンピュータで他のアプリケーションプログラムと並行してソフトウエア音源プログラム(以下、「ソフト音源」という。)を実行する場合、このソフト音源の処理量の変動(特に演算量の増加)により、他のアプリケーションの動作が不安定になることがあった。
【0006】
また、ソフト音源の処理に割り当てることのできる演算量は、上記のように並行しているアプリケーションの数や種類のほか、それを実行する演算装置の演算能力により制限を受ける。割り当てられる演算量が厳しく制限される場合でも、従来のソフトウエア音源プログラムでは、生成演算が固定的に決定されていたため、ユーザが、生成演算クォリティを落としても発音数を増やしたい場合や、発音数は少なくてもよいので高いクォリティで生成演算したい場合等の選択を行うことができなかった。
【0007】
そこで、このようなCPUの処理負担を軽減するために、楽音のサンプリング周波数を低下させることが考えられる。楽音のサンプリング周波数を低下させることにより、波形生成演算の回数を減少させることができ、CPUの処理負荷を軽減することが可能となる。
【0008】
一般に、楽音のサンプリング周波数を低下させると生成された楽音が含有することのできる周波数帯域の上限周波数も低下する。すなわち、図9の(a)に示すように、サンプリング周波数がfsの場合にはfs/2を上限周波数とする周波数帯域(図の実線)を有する楽音とすることができるが、サンプリング周波数をfx(fx<fs)とすると、上限周波数がfx/2まで周波数帯域(図の点線)を有する楽音となる。
したがって、高い周波数成分を有するシンバルやスネアドラムの響き線のような楽音を発生させる場合に、低いサンプリング周波数を使用するときには、高音域のエネルギーが少なくなり、エネルギーバランスの悪い楽音となってしまうという問題点があった。
【0009】
そこで、本発明は、楽音波形生成演算におけるCPUの処理負担を軽減するためにサンプリングレートを低下させたときにおいても、高音側のエネルギーを低下させないようにすることを目的としている。
また、高音が強調された楽音を演算生成する楽音生成方法を提供することを目的としている。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明の楽音生成方法は、演算処理装置による演算により楽音波形サンプルを生成する楽音生成方法において、生成する楽音のサンプリング周波数を予め設定されている第1のサンプリング周波数よりも低い第2のサンプリング周波数に変更設定する第1のステップと、前記第1のステップにより前記第2のサンプリング周波数に設定されたときは、波形テーブルから読み出される波形データを、前記第1のサンプリング周波数を用いる場合よりも精度の低い補間方法により補間する第2のステップとを含むようにしたものである。そして、前記第2のステップは特定の音色を生成するときにのみ実行されるものである。
【0012】
【発明の実施の形態】
図1に本発明の楽音生成方法が実行される楽音生成装置の一実施例の構成を示す。この図において、10は楽音波形サンプルの生成や各種アプリケーションプログラムなどを実行する中央処理装置(CPU)、11はプリセット音色データなどが記憶されているROM、12は実行するプログラムやデータが読み込まれるとともにワークエリアや各種バッファ領域として使用されるRAM、13は各種のアプリケーションプログラムなどが記憶されているハードディスク装置、14は各種のデータやプログラムなどを記憶したCD−ROMを駆動するCD−ROM装置、15は外部接続されるMIDIキーボードなどの演奏装置との間で演奏データや制御信号の送受信を行うためのMIDIインタフェース、16および17は、それぞれ、パーソナルコンピュータに一般的なキーボードおよびディスプレイ装置である。
【0013】
18はCPU10を介さずにRAM12内の出力バッファ領域からサンプリング周期毎に波形サンプルデータを読み出してDAC19に出力するDMA制御回路(Direct Memory Access Controller )、19はこの波形データをアナログの楽音信号に変換してサウンドシステム20に出力するDAC、20はこの楽音信号を増幅して外部出力するサウンドシステムである。また、21は所定時間毎にCPU10に対して割込をかけるとともに、DMA制御回路18にサンプリングクロックを供給するタイマである。そして、これら各構成要素10〜18はバスを介して相互に接続されている。以上の構成は、通常のパーソナルコンピュータやワークステーションなどと同等であり、それらの上で本発明の楽音生成方法を実行することができる。
【0014】
図2は、このような楽音生成装置上で実行される本発明の楽音生成方法の一実施の形態であるソフト音源における処理の時間的な流れを説明する図である。このソフト音源は、通常時には例えば48kHzのサンプリング周波数(レート)で楽音波形データを発生するが、その楽音波形データ生成処理は例えば128サンプル(1フレーム)時間毎に行うようになされている。そして、あるフレームに対応するタイムスロットに演奏入力があると、次のフレームでその演奏入力に対応する楽音波形データの算出処理を行い、さらに次のフレームでこの楽音波形データを48kHzの周期毎に1サンプルずつ読み出して楽音信号を形成する。したがって、演奏入力があってから実際に楽音が発音されるまで(または楽音が消音されるまで)は約2フレームの時間ずれが生じることになるが、1フレームが128サンプル(約2.67ミリ秒)であるため、その時間ずれはわずかである。なお、この1フレームのサンプル数は任意に設定することができるが、サンプル数を大きくすると発音に遅れが生じ、小さくすると時間的マージンが減少して一時的な演算量の増加時に応答が悪くなることがある。
【0015】
なお、本実施の形態では、RAM12上に用意された波形テーブルに記憶された波形サンプルに基づいて楽音を生成するいわゆるテーブルルックアップ方式の楽音生成を行うものとして説明する。また、このソフト音源は最大で32チャンネルの楽音発生チャンネルを有しているものとする。
【0016】
図3は前記ソフト音源の動作時にRAM12に設定される記憶エリアを説明する図である。同図(A)は入力バッファを示しており、この入力バッファは、MIDIインタフェース15から演奏入力があったとき、その演奏入力の内容とその発生時刻を記憶するバッファである。このバッファの内容は、後述するMIDI処理で読み出され、対応する処理が実行される。
【0017】
同図(B)はサンプルバッファWB、同図(C)は出力バッファOBを示している。両バッファとも、128サンプル分の波形データ記憶エリア(SD1〜SD128、OD1〜OD128)を備えている。出力バッファOBは32チャンネルの発音チャンネルの楽音波形データを順次加算合成した波形データを記憶する。波形データ生成演算は、1つのチャンネル毎に1フレーム時間分の128サンプルを演算し、これを最大32チャンネル分(発音しているチャンネル分)繰り返すという手順で行われるが、1つのチャンネルの波形データを記憶するのがサンプルバッファWBであり、1つのチャンネルの波形データが演算される毎にこの波形データをサンプルタイミング毎に累算してゆくのが出力バッファOBである。
【0018】
同図(D)は音色データレジスタである。この音色データレジスタは、各MIDIチャンネル(演奏パート)で生成される楽音波形を決定する音色データを記憶するレジスタであり、この音色データとしては、各音色の各音域毎に素材とする波形テーブルを指定する波形指定データ、EG制御データ、補間制御データ(CD2)などが記憶される。
【0019】
同図(E)は音源レジスタである。この音源レジスタには、各発音チャンネル別に該発音チャンネルで生成される楽音波形を決定するためのデータが記憶される。このデータとしてはノートナンバ、いずれか1つの波形テーブルのアドレスを示す波形指定アドレス(アタックスタートアドレスAS、アタックエンドアドレスAE、ループスタートアドレスLS、ループエンドアドレスLE)、フィルタ制御データ、EG制御データ、ノートオンデータ、補間制御データ(CD2)などが記憶される。
【0020】
前述したように、本発明のソフトウエア音源は、通常時には48kHzのサンプリング周波数fsで楽音を生成するようになされているが、CPUの負荷を軽減するために48kHzよりも低いサンプリング周波数で楽音を生成するように操作者がサンプリング周波数を任意に設定変更することができるようになされている。そして、操作者がサンプリング周波数を低い周波数fx(fx<fs)に設定したときは、図9の(a)について説明したように発生される楽音の周波数帯域がfx/2よりも低い周波数帯域となってしまい、シンバルやスネアドラムの響き線などの楽音は高音域が減衰したエネルギーバランスの悪い楽音となってしまうのであるが、本発明においては、このような楽音については補間演算を実行しないようにすることによって、エネルギーバランスのくずれを防止するようにしている。
【0021】
すなわち、サンプリング周波数をfsからfxに低下させたときに波形データの中間点に位置するデータを補間計算により算出しないようにしたときには、該補間演算をしないことにより発生する誤差に起因するノイズが発生する。この誤差は、単位時間当たりの振幅変動量が大きい高い周波数の信号において多くなるため、高い周波数域に多くのノイズ成分が発生することとなる。このノイズ成分は、図9の(b)および(c)に斜線で示すように、いわゆる折り返し雑音となる。生成する楽音が図9の(b)に示すような低音域に大きなエネルギーを有しているが高音域のエネルギーは小さい楽音、例えば、打楽器でも低音部の多い打楽器などであるときには、図9の(b)に斜線で示すような折り返しノイズとなるが、この場合は高音域のエネルギー量は多くないため、この折り返しノイズによる影響は大きくない。一方、図9の(c)に示すような高音域に大きなエネルギーを有する楽音、例えば、シンバルやスネアドラムの響き線などのノイズ的な高音部を有する楽音の場合には、折り返しノイズ成分が大きくなり、これにより高音域のエネルギーが強調されて、サンプリング周波数を低下させたことによるエネルギーバランスのくずれを補うことが可能となる。
【0022】
また、補間演算をしないのであるからそのための演算量を減少させることもでき、CPUの処理負担をより一層軽減することが可能となる。
【0023】
次に、フローチャートを参照して本発明のソフト音源の動作を説明する。
図4(a)はメインルーチンを示すフローチャートである。プログラムが起動されると、まず、レジスタエリアの確保などの初期設定を実行(S1)したのち、何らかの起動要因(トリガ)があるまで、S2、S3で待機する。起動要因が発生した場合には、その起動要因をS4で判断して対応する処理動作を実行する。起動要因としては、(1)入力バッファにMIDIデータが書き込まれた場合、(2)1フレームに対応する時間毎に発生されるタイマ21などからの割込、(3)その他パネルやウインドウ画面からのスイッチイベントの発生、および、(4)終了コマンドの入力の4種類の要因があり、それぞれの要因に応じて、MIDI処理(S5)、音源処理(S6)、その他処理(S7)、および終了処理(S8)が実行される。
【0024】
終了処理S8は設定データの退避やレジスタのクリアなどの処理であり、この処理が終了したのち動作を終える。その他処理S7は、各種のパネル入力やコマンド入力に対応する処理であり、パネルあるいはウインドウ画面からサンプリングレート設定変更コマンドが入力された場合に実行されるサンプリングレート変更設定イベント処理もこのなかで実行される。このサンプリングレート変更設定イベント処理については、図8を参照して後述する。音源処理(S6)は、タイマ21から128サンプルクロックをカウントしたことにより発生される割り込みまたはDMA制御回路18からのトリガ等によって図2における読み出し再生が次のフレームに進行したのを検出して実行される処理である。
【0025】
図4の(b)は最優先の割込処理として実行されるMIDI割込処理のフローチャートである。この割込処理はMIDIインタフェース15からMIDIデータを受信したときに起動されるものであり、当該MIDIデータを取り込み(S10)、該受信したMIDIデータとともにその受信時刻データを図3の(A)に示した入力バッファに書き込む(S11)。
【0026】
MIDI処理(S5)は、前記入力バッファにMIDIデータが書き込まれていることが検出されたときに起動され、書き込まれたMIDIデータに対応した処理が行われる。
図5は、MIDI処理の1つであるノートオンイベント処理における動作を示す図である。この処理は、入力バッファにノートオンイベントデータが書き込まれていたときに実行される。まず、そのノートオンイベントデータのノートナンバ、ベロシティデータ、パート別音色をそれぞれNN、VEL、tレジスタに記憶する(S20)。次に、32チャンネルの発音チャンネルのなかからこのノートオンにかかる楽音を発音する発音チャンネルを割り当てiに記憶する(S21)。このノートオンにかかる音色データTP(t)をNN、VELに応じて加工する(S22)。次に、Fナンバ(FN)をサンプリングレートに応じて加工し(S23)、加工された音色データ(FNを含む)をノートオンを示すデータとともにiチャンネルの音源レジスタに書き込む(S24)。
【0027】
Fナンバ(FN)は、当該ノートナンバの楽音を生成するために波形テーブルからサンプリング周期毎に読み出す波形データの進み量を指定するデータであり、サンプリング周波数を基準となるサンプリング周波数fs(この例においては48kHz)から他の周波数fxに変更させたときには、指定されたピッチの楽音を発生させるためにこのFナンバを変更することが必要となる。例えば、48kHzのサンプリング周波数を半減させて24kHzにしたときには、Fナンバ、すなわち、波形テーブルから読み出す波形データの進み量を当初の2倍にする必要がある。したがって、S23において、基準となるサンプリング周波数をfs、使用するサンプリング周波数をfxとしたときに、FナンバをFN’=(fs/fx)・FNに変更する処理を実行する。
【0028】
図6は1フレーム時間に対応する周期で起動される音源処理S6を示すフローチャートである。まず、出力バッファOBをクリアするとともに演算順位を示すポインタiに1をセットする(S30)。次に、iチャンネルの波形データ演算処理(S31)を実行する。このiチャンネルの波形データ演算処理の詳細については図7を参照して後述する。このiチャンネルの波形データ演算処理(S31)が終わったら、全チャンネルについての波形データ演算が終了した否かを判定し(S32)、終了していないときは、iをi+1にインクリメントして(S34)、新たなiチャンネルの波形データ演算処理(S31)を実行する。また、全チャンネル分の波形データ演算が終了したときには、出力バッファOB中に生成された波形データの再生を再生部(DMA制御回路18)に再生予約する(S33)。この再生予約は、RAM12内の記憶アドレスをDMA制御回路18に通知することにより行なわれる。
【0029】
図7に前記iチャンネルの波形データ演算処理(S31)のフローチャートを示す。この処理は、iで指定されているチャンネルの波形データを1フレーム(128サンプル)分まとめて演算生成する処理である。まず、サンプル数カウンタsに1をセットする(S40)。次に、サンプリングレート変更データCD1を参照して、サンプリングレートが変更されているか否かを判定する(S41)。ここで、CD1=0のときはサンプリングレートの変更がなく、デフォルトの48kHzのサンプリング周波数が使用されることを示しており、また、CD=1のときは48kHzよりも低いサンプリング周波数にレートダウンされていることを示している。
【0030】
CD1=0でレートダウンされているときは、補間制御データCD2を参照して、この発音チャンネルは補間なしのチャンネルであるのか、あるいは補間を実行するチャンネルであるのかを判定する(S42)。ここで、CD2=1の場合はこのチャンネルは補間を省略するチャンネルであることを示しており、CD=0の場合は補間を行うチャンネルであることを示している。通常は、ピッチ変換のないドラム音などのノイズ系の楽音を発生する発音チャンネルについては、補間を省略するようにし、音階音を発生する発音チャンネルについては補間を行なうようにするのが望ましい。
【0031】
この判定の結果、補間省略(CD2=1)である場合は、直前の演算のアドレス(この処理チャンネルの前のフレームにおける波形読出で最後に生成したアドレス)にFナンバ(前述したS23において加工されたFナンバ)を加算してアドレスの更新を行う(S43)。このようにして更新されたアドレスの整数部で指定された波形テーブルから波形サンプルを読み出し、サンプルバッファSD(s)にセットする(S44)。この動作をs=1からs=128になるまで繰り返し実行して(S45、S46)、128回の処理が完了すれば音量制御・累算処理(S52)を実行し、音源処理(図6)に戻る。
【0032】
この場合は、補間を省略してアドレスの小数部は無視しているので、折り返しノイズが生じることとなる。前述したように、このノイズ成分により高音域が強調され、エネルギーバランスの良い楽音を生成することが可能となる。
【0033】
また、サンプリングレート変更データCD1=0でサンプリングレートが変更されておらずデフォルトの48kHzのサンプリング周波数で動作するとき(S41の判定結果がYES)、および、補間制御データCD2=0でレート変更時であっても補間を行う発音チャンネルである場合(S42の判定結果がYES)には、直前のアドレスにFナンバを加算してアドレスの更新を行う(S47)。
【0034】
このとき、通常は整数部と小数部とからなるアドレスが生成されるため、指定された波形テーブルからこのアドレスを含む2サンプル(整数部のアドレスで指定されるサンプルと整数部+1のアドレスで指定されるサンプル)の波形データを読み出す(S48)。これら2サンプルのデータを前記小数部の値で直線補間し、その値をサンプルバッファSD(s)にセットする(S49)。この動作をs=1からs=128になるまで繰り返し実行し(S50、S51)、128回の処理が完了すれば音量制御・累算処理(S52)を実行し、音源処理(図6)に戻る。
この場合は、アドレスの小数部を用いて一次補間を行っているため、折り返しノイズは発生しない。
【0035】
音量制御・累算処理(S52)においては、サンプルバッファWB(SD(1)〜SD(128))の値に振幅EGおよびチャンネル音量パラメータに基づいて楽音の立ち上がりから立ち下がりに至る音量時間変化を付与する音量制御を施す。なお、振幅EGは一般的に緩やかな曲線であるため、128サンプル当たり1つのEG値でよい。このレベル制御されたサンプルバッファWBの値を出力バッファOB(OD(1)〜OD(128))の対応するサンプルに足し込む。この加算動作がi番目の演算順序を持つチャンネルについて順次繰り返し実行されることにより、出力バッファOBにはそれまでに生成した全チャンネルの楽音波形データの累算値が記憶されることとなる。
【0036】
次に、前記メインルーチン(図4)において、パネルあるいはウインドウ画面からサンプリングレート設定変更コマンドが入力されたときに実行されるサンプリングレート設定変更イベント処理の詳細について、図8を参照して説明する。サンプリングレート設定変更コマンドが入力されたとき、操作者により設定されたサンプリングレートが48kHzであるか否かが判定される(S60)。サンプリングレートとして48kHzが設定されたときはサンプリングレート変更データCD1に0をセットし(S61)、48kHzよりも低いサンプリング周波数が設定されたときはCD1に1をセットする(S62)。そして、設定されたサンプリング周波数に対応したデータをタイマ21、DMA制御回路18あるいはDAC19にセットして(S63)、このサンプリングレート設定変更イベント処理を終了する。
【0037】
これにより、タイマ21からCPU10に対して発生されるタイマ割込の周期は、設定されたサンプリング周波数に対応する周期となる。また、DMA制御回路18には設定されたサンプリング周波数に対応するサンプリングクロックが供給されることとなる。したがって、CPU10においては設定されたサンプリング周波数に対応する時間間隔で波形生成演算が実行されるようになり、また、DAC19には設定されたサンプリング周期毎に楽音波形サンプルが供給されて楽音が出力されることとなる。
【0038】
すなわち、通常時は波形生成演算が起動される周期は、fs=48kHzとして、128×(1/48kHz)≒2.67(ミリ秒)であるが、サンプリング周波数がfx(<fs)のときは、128×(1/fx)>2.67ミリ秒となり、CPUの処理負担が軽減する。例えば、サンプリング周波数を24kHzに設定したときは、波形生成演算が起動される周期は、サンプリング周波数が48kHzの場合の2倍の約5.33ミリ秒となり、CPU10における処理負担が軽減される。
【0039】
また、上述の場合は、一度の波形生成演算において128サンプルの波形サンプルを演算生成しているが、これとは逆に、波形生成演算の起動周期は48kHzの場合と同一とし、一度の波形生成演算において演算生成する波形サンプルの数を減少させるようにしてもよい。この場合にも、1度の波形生成演算に要する時間が短縮されるため、CPU10の処理負荷を同様に減少させることができる。
【0040】
さらにまた、上述した実施の形態においては、サンプリングレートを低下させないときに線形補間を行ない、サンプリングレートを低下させたときに補間を行なわないようにしているが、サンプリングレートを低下させたときに補間演算の精度を下げるようにすることにより、同様の効果を得ることができる。すなわち、サンプリングレートが高い通常時には3次関数を用いる4点補間などの高精度の補間演算を行なうようにし、サンプリングレートを低下させたときには1次関数を用いる2点補間などのそれよりも精度の低い補間演算を行なうようにしても、前述した実施の形態の場合と同様の効果を得ることができる。
【0041】
さらにまた、補間演算を省略することによって前述のように高音域のエネルギーが強調されることはサンプリングレートに関係なく、一般的に言えることである。したがって、サンプリングレートの遅速にかかわらず、補間演算を省略するようにしてもよい。このようにすれば、補間演算に要する処理負担を軽減することが可能となるばかりでなく、リズム音などノイズ成分の多い音色に対して、高音域をより強調することが可能となる。
【0042】
なお、上述した実施形態においては、操作者の設定により、サンプリングレートの設定変更を行なうようにしていたが、これに限られることはなく、CPUの演算処理能力あるいは負荷状態に応じて最適なサンプリングレートを自動的に設定するようにしても良い。
【0043】
【発明の効果】
本発明によれば、サンプリング周波数を低くすること、および、補間演算を簡略化することの両面から、波形生成に要する演算量を低減することが可能になるとともに、エネルギーバランスのよい楽音を生成することが可能となる。
また、高音域を強調した楽音を演算生成することが可能となる。
【図面の簡単な説明】
【図1】 本発明の楽音生成方法を実行するための装置の一構成例を示す図である。
【図2】 本発明の楽音生成方法における処理の時間的な流れを説明するための図である。
【図3】 本発明の楽音生成方法において使用される記憶エリアを示す図である。
【図4】 本発明の楽音生成方法における処理のフローチャートである。
【図5】 本発明におけるノートオンイベント処理のフローチャートである。
【図6】 本発明における音源処理のフローチャートである。
【図7】 本発明における波形データ生成演算のフローチャートである。
【図8】 本発明におけるサンプリングレート変更イベント処理のフローチャートである。
【図9】 サンプリングレートの変更について説明するための図である。
【符号の説明】
10 CPU、11 ROM、12 RAM、13 ハードディスク装置、14 CD−ROM装置、15 MIDIインターフェース、16 ディスプレイ、17 キーボード、18 DMA制御回路、19 DAC、20 サウンドシステム、21 タイマ
Claims (2)
- 演算処理装置による演算により楽音波形サンプルを生成する楽音生成方法において、
生成する楽音のサンプリング周波数を予め設定されている第1のサンプリング周波数よりも低い第2のサンプリング周波数に変更設定する第1のステップと、
前記第1のステップにより前記第2のサンプリング周波数に設定されたときは、波形テーブルから読み出される波形データを、前記第1のサンプリング周波数を用いる場合よりも精度の低い補間方法により補間する第2のステップと
を含むことを特徴とする楽音生成方法。 - 特定の音色を生成するときにのみ、前記第2のステップを実行するようにしたことを特徴とする前記請求項1記載の楽音生成方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP34904495A JP3658826B2 (ja) | 1995-12-21 | 1995-12-21 | 楽音生成方法 |
| TW085100252A TW372310B (en) | 1995-12-21 | 1996-01-10 | Music generation method |
| US08/768,984 US5850049A (en) | 1995-12-21 | 1996-12-17 | Musical tone-generating method and apparatus using data interpolation |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP34904495A JP3658826B2 (ja) | 1995-12-21 | 1995-12-21 | 楽音生成方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09179561A JPH09179561A (ja) | 1997-07-11 |
| JP3658826B2 true JP3658826B2 (ja) | 2005-06-08 |
Family
ID=18401117
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP34904495A Expired - Lifetime JP3658826B2 (ja) | 1995-12-21 | 1995-12-21 | 楽音生成方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5850049A (ja) |
| JP (1) | JP3658826B2 (ja) |
| TW (1) | TW372310B (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2817745B1 (fr) * | 2000-12-08 | 2003-03-28 | Oreal | Nuancier et procede de fabrication |
| JP3649197B2 (ja) * | 2002-02-13 | 2005-05-18 | ヤマハ株式会社 | 楽音生成装置および楽音生成方法 |
| DE60320889D1 (de) * | 2002-04-26 | 2008-06-26 | Yamaha Corp | System und Verfahren zur Verarbeitung von Daten in einem Datenstrom |
| US7038119B2 (en) * | 2003-07-18 | 2006-05-02 | Telefonaktiebolaget L M Ericsson (Publ) | Dynamic control of processing load in a wavetable synthesizer |
| DE102009014655A1 (de) * | 2009-03-25 | 2010-10-07 | Schippmann, Carsten, Dipl.-Ing. | Verfahren zur Interpolation von MIDI Daten |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4602545A (en) * | 1985-01-24 | 1986-07-29 | Cbs Inc. | Digital signal generator for musical notes |
| US4649787A (en) * | 1985-08-15 | 1987-03-17 | Kawai Musical Instrument Mfg. Co., Ltd. | Ensemble tone generation in a musical instrument |
| JPH0650432B2 (ja) * | 1986-06-13 | 1994-06-29 | ヤマハ株式会社 | 楽音信号発生装置 |
| JP2970907B2 (ja) * | 1988-04-13 | 1999-11-02 | 株式会社ナムコ | Pcmにおけるアナログ信号合成装置 |
| JP2766662B2 (ja) * | 1989-03-15 | 1998-06-18 | 株式会社河合楽器製作所 | 楽音発生装置の波形データ読み出し装置及び波形データ読み出し方法 |
| US5218155A (en) * | 1990-03-30 | 1993-06-08 | Kabushiki Kaisha Kawai Gakki Seisakusho | Tone signal processing apparatus for PCM waveform interpolation and filtering |
| JP2623942B2 (ja) * | 1990-09-05 | 1997-06-25 | ヤマハ株式会社 | 楽音信号発生装置 |
| JP2682257B2 (ja) * | 1991-03-29 | 1997-11-26 | ヤマハ株式会社 | 楽音合成装置 |
| JP2722907B2 (ja) * | 1991-12-13 | 1998-03-09 | ヤマハ株式会社 | 波形発生装置 |
| US5524074A (en) * | 1992-06-29 | 1996-06-04 | E-Mu Systems, Inc. | Digital signal processor for adding harmonic content to digital audio signals |
| JP2833403B2 (ja) * | 1993-03-26 | 1998-12-09 | ヤマハ株式会社 | 電子楽器の音源装置 |
| US5559298A (en) * | 1993-10-13 | 1996-09-24 | Kabushiki Kaisha Kawai Gakki Seisakusho | Waveform read-out system for an electronic musical instrument |
| JP2762926B2 (ja) * | 1994-05-10 | 1998-06-11 | ヤマハ株式会社 | 楽音生成装置 |
| US5684260A (en) * | 1994-09-09 | 1997-11-04 | Texas Instruments Incorporated | Apparatus and method for generation and synthesis of audio |
-
1995
- 1995-12-21 JP JP34904495A patent/JP3658826B2/ja not_active Expired - Lifetime
-
1996
- 1996-01-10 TW TW085100252A patent/TW372310B/zh active
- 1996-12-17 US US08/768,984 patent/US5850049A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5850049A (en) | 1998-12-15 |
| JPH09179561A (ja) | 1997-07-11 |
| TW372310B (en) | 1999-10-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2866223B1 (en) | Automated music performance time stretch using audio waveform data | |
| CN1591564B (zh) | 形成乐音波形的方法和装置 | |
| US6326537B1 (en) | Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency | |
| JP3293474B2 (ja) | 楽音発生方法 | |
| JP3658826B2 (ja) | 楽音生成方法 | |
| US5428183A (en) | Tone signal generating apparatus for performing a timbre change by storing a full frequency band in a wave memory | |
| EP0376342B1 (en) | Data processing apparatus for electronic musical instruments | |
| JP3019755B2 (ja) | 楽音発生方法および楽音発生装置 | |
| JPH11288285A (ja) | 楽音発生方法及び装置 | |
| JP3000894B2 (ja) | 楽音発生方法 | |
| JP5029898B2 (ja) | 音源装置および音源処理プログラム | |
| JP2576616B2 (ja) | 処理装置 | |
| JP3740717B2 (ja) | 音源装置及び楽音生成方法 | |
| JP2576614B2 (ja) | 処理装置 | |
| JP3693045B2 (ja) | 楽音発生装置 | |
| JP3603638B2 (ja) | 楽音発生方法 | |
| JP3164096B2 (ja) | 楽音発生方法及び装置 | |
| JP3693046B2 (ja) | 楽音発生装置 | |
| JP3714397B2 (ja) | 波形データ処理装置及び波形データ処理方法 | |
| JP4096952B2 (ja) | 楽音発生装置 | |
| US5895879A (en) | Musical tone-generating method and apparatus capable of approximating envelope characteristic of a waveform of a musical tone by a polygonal line | |
| JP3632744B2 (ja) | 音生成方法 | |
| JP3603849B2 (ja) | 楽音発生方法 | |
| JP3832382B2 (ja) | 楽音生成装置及びプログラム | |
| JPH0320797A (ja) | サンプリング装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040913 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040921 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041122 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041210 |
|
| 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: 20050222 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050307 |
|
| 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: 20090325 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090325 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100325 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110325 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120325 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130325 Year of fee payment: 8 |