JP3659002B2 - 楽音データ処理装置およびコンピュータシステム - Google Patents
楽音データ処理装置およびコンピュータシステム Download PDFInfo
- Publication number
- JP3659002B2 JP3659002B2 JP17644298A JP17644298A JP3659002B2 JP 3659002 B2 JP3659002 B2 JP 3659002B2 JP 17644298 A JP17644298 A JP 17644298A JP 17644298 A JP17644298 A JP 17644298A JP 3659002 B2 JP3659002 B2 JP 3659002B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- sample data
- pitch
- unit
- waveform data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、波形データとピッチ情報に基づいて楽音データを生成するのに好適な楽音データ処理装置およびコンピュータシステムに関する。
【0002】
【従来の技術】
近年のパーソナルコンピュータでは、音源LSIを搭載して各種のサウンド処理を行うものが多い。ウェーブテーブル方式で楽音データを再生する音源LSIでは、音色、ピッチあるいは音量といった発音を指示する制御データとウェーブテーブルの波形データとに基づいて楽音データを再生する処理が行われる。この波形データは、実際に楽器を一定のピッチで演奏した際に得られる楽音信号等をサンプリングして得られるデータであり、ウェーブテーブルとしてのメモリ等に記憶されている。
【0003】
パーソナルコンピュータは、装置全体をOSに従って制御するCPU、例えばマイクロプログラムにより動作が規定される音源LSI、制御データや波形データを格納するメインメモリ等をハードウエアとして備える。また、ソフトウエアとして、上記OSおよび音源LSIを制御するとともにメインメモリに対して各種データの書込読出を制御するデバイスドライバ(DD:Device Driver)等を備える。
このようなパーソナルコンピュータの音源LSIは、音源LSIまたは音源ボードとしては波形データ(ROMまたはRAM)を持たずに、メインメモリに記憶したウエーブテーブル(波形データ)を利用して楽音データを再生することにより音源自体のコストおよびシステム全体のコストを削減している。
【0004】
また、このような音源LSIは、入力バッファ、補間部、演算部、および出力バッファから構成される。入力バッファはメインメモリからバスを介して転送される波形データを一旦記憶する。補間部は、制御データが指示するピッチ情報に基づいて、転送された波形データから演算に必要な補間波形データを生成する。例えば、ピッチ情報が原波形に対して1.3オクターブ(約2.5倍の周波数に対応)高いピッチを指示するものとすれば、補間部は、図12に示すように、波形データの黒丸印のサンプルから補間波形データを生成する。また、演算部は、制御データの指示する音量情報等に基づいて、補間波形データに演算を施し再生楽音データを生成する。出力バッファは、再生楽音データを一旦記憶し、出力サンプリング周波数に従って再生楽音データをDACに出力する。
【0005】
この音源LSIによる処理は、例えば、出力サンプリング周波数(DACレート)を48KHzとした場合に256サンプル出力するのに要する時間(5.3ms)を1フレーム(FRAME)とするフレーム単位で実行することが考えられる。ここで、出力バッファの容量は、256×2サンプル分の容量となる。一方、入力バッファの容量は、256サンプル分の再生楽音データを得るのに必要な容量となる。
すなわち、あるフレームにおいて、DACレートとは非同期(高速)に、最終的な256サンプルを作成するために必要な個数の連続した波形データをメインメモリから入力バッファに一括して取り込む。そして、256サンプル分の再生楽音波形データを形成して出力バッファに書き込む。この出力バッファに書き込まれた256サンプルを次フレームにおいてDACレートで読み出すような処理を行う。
【0006】
【発明が解決しようとする課題】
ところで、図12の例のように、ピッチを1.3オクターブ上げる場合、図中、波形データの白丸印で示すサンプルは補間波形データの生成には利用されない。このような利用されないサンプル数はピッチを上げる比率に連動して多くなる。しかしながら、共有バス(例えばPCIバス)を介してメインメモリに記憶された波形データを取り込んで再生楽音データを生成する構成の音源LSIでは、共有バスの使用効率を上げるという観点で、バースト転送モード等を使用して、メインメモリの連続したアドレス領域に記憶された波形データを一括して取り込むのが効率的であり、このようなバースト転送による波形データ取り込みでは、上記のような補間波形データの生成に不必要なサンプルも取り込まざるを得ない。バースト転送により一括して取り込まれるサンプルの量は入力バッファの容量で規定される。よって、入力バッファの容量が2Kバイトであり、出力バッファの容量が256バイトであるならば、バースト転送で一括して取り込めるサンプル数は2Kバイトで規定され、その結果として、再生楽音データの対応周波数範囲は8倍(3オクターブ)に制限される。
このようなピッチアップの上限が規定される不都合を解消する方法として、まず第1に、入力バッファの容量を大きくして一括して取り込めるサンプル数を多くすることが考えられるが、この方法は音源LSIのコストアップを招くという問題がある。第2の方法として、1フレーム(この例では256サンプル時間)を短縮することが考えられるが、この方法は出力バッファの容量も若干小さくできるという2次的な効果も期待できるものの音源LSIがバースト転送を要求する頻度が増えるために共有バスを占有する時間が多くなり、パーソナルコンピュータが(楽音発生と並行して)実行する他の処理が著しく制限されるという問題がある。第3の方法として、バースト転送モードを使用しないで必要な補間波形データの生成に必要なサンプルのみをアクセスして取り込むことも考えられるが、上記第2の方法の同様の理由により問題外である。
【0007】
本発明は上述した問題点に鑑みてなされたものであり、入力バッファの容量を削減しつつ、再生処理における対応周波数範囲を拡大する楽音データ処理装置およびコンピュータシステムを提供するものである。
【0008】
【課題を解決するための手段】
上記課題を解決するため請求項1に記載の発明にあっては、所定のオリジナル波形サンプルデータおよびこのオリジナル波形サンプルデータを一定の規則に従って間引いた間引波形サンプルデータをそれぞれ連続領域に記憶する外部記憶装置とは、バスを介して接続される楽音データ処理装置であって、再生ピッチを指示するピッチ情報が相対的に低いピッチを示しているときは前記オリジナル波形サンプルデータを、前記ピッチ情報が相対的に高いピッチを示しているときは間引波形サンプルデータを、前記ピッチ情報に基づくサンプルデータ数だけ、前記外部記憶装置から前記バスを介して一括して読み出す第1の読出部と、前記第1の読出部から読み出されたサンプルデータを記憶する入力バッファ部と、前記ピッチ情報に基づいて、前記入力バッファ部に記憶された複数のサンプルデータを読み出す第2の読出部と、予め定められた単位時間に一定レートで出力されるサンプル数に対応する楽音データを、前記ピッチ情報および前記第2の読出部から読み出された複数のサンプルデータから補間演算により、前記一定レートとは非同期に一括して生成する楽音データ生成部と、前記楽音データ生成部によって一括生成された楽音データを記憶する出力バッファ部と、この出力バッファ部に記憶された楽音データを前記一定レートで読み出す第3の読出部とを備えることを特徴とする。
【0014】
また、請求項2記載の発明にあっては、前記外部記憶装置は、所定のオリジナル波形サンプルデータおよびこのオリジナル波形サンプルデータを一定の規則に従って間引いた間引波形サンプルデータの他に、オリジナル波形サンプルデータおよび間引波形サンプルデータのそれぞれに対応してループ再生情報を記憶し、前記第1の読出部は、サンプルデータとこれに対応する前記ループ再生情報とを読み出し、前記楽音データ生成部は、前記ループ再生情報に従い、ループ再生を行うことを特徴とする。
【0015】
また、請求項3記載の発明にあっては、所定のオリジナル波形サンプルデータおよびこのオリジナル波形サンプルデータを一定の規則に従って間引いた間引波形サンプルデータをそれぞれ連続領域に記憶する記憶装置と、前記記憶装置とは、バスを介して接続されるとともに、再生ピッチを指示するピッチ情報が相対的に低いピッチを示しているときは前記オリジナル波形サンプルデータを、前記ピッチ情報が相対的に高いピッチを示しているときは間引波形サンプルデータを、前記ピッチ情報に基づくサンプルデータ数だけ、前記外部記憶装置から前記バスを介して一括して読み出す第1の読出部と、前記第1の読出部から読み出されたサンプルデータを記憶する入力バッファ部と、前記ピッチ情報に基づいて、前記入力バッファ部に記憶された複数のサンプルデータを読み出す第2の読出部と、予め定められた単位時間に一定レートで出力されるサンプル数に対応する楽音データを、前記ピッチ情報および前記第2の読出部から読み出された複数のサンプルデータから補間演算により、前記一定レートとは非同期に一括して生成する楽音データ生成部と、前記楽音データ生成部によって一括生成された楽音データを記憶する出力バッファ部と、この出力バッファ部に記憶された楽音データを前記一定レートで読み出す第3の読出部とを備えることを特徴とする。
【0016】
また、請求項4記載の発明にあっては、楽音データ処理装置を実施するコンピュータシステムであって、前記記憶装置はコンピュータシステムのメインメモリであり、前記オリジナル波形サンプルデータを間引いて間引波形サンプルデータを作成する処理および作成した間引波形サンプルデータを前記記憶装置に記憶する処理は所定のソフトウエアによってコンピュータシステムのCPUが行う処理であることを特徴とする。
【0025】
【発明の実施の形態】
A.第1実施形態
1.第1実施形態の構成
以下、図面を参照しつつ、本発明に係わる一実施形態であるコンピュータシステムの構成を説明する。図1は本実施形態に係わるコンピュータシステムのブロック図である。
図において、CPU20は、バス60を介して各構成部分に接続されており、コンピュータシステムA全体を制御する。RAM30はメインメモリに相当する読み書き可能なメモリであって、CPU20の作業領域として機能する。また、ROM40は読出専用のメモリであって、そこにはブートプログラム等が格納されている。また、ハードディスク50は、二次記憶装置に相当し、そこにはアプリケーションプログラムやデバイスドライバDDやマイクロプログラムMP等のプログラム、および制御データCDや波形データWDといった各種のデータが格納されており、必要に応じてプログラムやデータがRAM30にロードされるようになっている。ここで、制御データCDは、音色情報(当該音色に対応する波形データWDが格納されているアドレス)、ピッチ情報および音量情報等を指示する。ここで、波形データWDは、例えば、ギターやピアノといった各種の音色に対応した楽器によって実際に発音させた楽音等をサンプリングして得られたデータである。
また、ピッチ情報は、波形データWDのオリジナルのピッチ、波形データWDのサンプリング時のサンプリング周波数、所望する再生楽音データSDのピッチおよび出力サンプリング周波数(DACレート)によって決定する小数部を含む実数値で表される。例えば、波形データWDのサンプリング時のサンプリング周波数と出力サンプリング周波数(DACレート)とが等しい(48kHz)と仮定すると、所望する再生楽音データSDのピッチが波形データWDのオリジナルのピッチと等しい場合にはピッチ情報は1となり、所望する再生楽音データSDのピッチが波形データWDのオリジナルのピッチの1オクターブ上の場合にはピッチ情報は2となる。
【0026】
また、OSの起動時にデバイスドライバDD、マイクロプログラムMP、および波形データWD等がバス60を介してRAM30に転送されるとともに、上位のアプリケーションによって指示される制御データCDが必要に応じてRAM30に転送される。また、RAM30に格納されたマイクロプログラムMPは音源LSI10に転送されるようになっている。バス60としては、大量のデータを高速転送できるものであればその種類は問わないが、この例にあっては、バースト転送モードを備えたPCIバス(Peripheral Component Interconnect Bus)を用いるものとする。
【0027】
ここで、RAM30に記憶される波形データWDは、ハードディスク50に格納されている全てが記憶されるのではなく、使用頻度の高い音色に対応するものが記憶され、必要に応じてRAM30とハードディスク50との間で波形データWDのやり取りが行われる。また、デバイスドライバDDは、起動時および波形データWDの交換時に、ハードディスク50から転送される波形データWDに基づいて、1オクターブ単位でサンプルを1/2に間引いた間引波形データWD1,WD2,WD3…を生成し、これをRAM30に格納する。図2は、間引波形データWD1,WD2,WD3と波形データWDとの関係を示したものである。この場合、一定のピッチ情報および出力サンプリング周波数(48KHz)で各間引波形データWD1,WD2,WD3を再生したとすると、波形データWDの音程に対して各間引波形データWD1,WD2,WD3の音程は、各々1オクターブ、2オクターブ、3オクターブ高くなる。また、波形データWDに対して各間引波形データWD1,WD2,WD3…のデータ量は、1/2,1/4,1/8…となる。
【0028】
ところで、楽器を演奏した際に得られる波形は、図3(a)に示すように演奏開始から一定期間は複雑な形状をしているが(期間Ta)、それ以降は安定した形状を示すことが多い(期間Tb)。このため、同一音色の波形データWDを長時間再生する場合には、期間Taの波形WAを再生した後、期間Tbの波形WBを再生し、これに引き続いて期間Tbの波形WBを繰り返し再生するようにしている。これにより、波形データWDのデータ量を削減できる。なお、以下の説明では、波形WBの開始を「ループスタート」と呼び、波形WBの終了を「ループエンド」と呼ぶことにする。
【0029】
ここで、図3(b)はループスタート近傍における波形データWDのサンプリングの様子を示したものであり、同図(c)はループエンド近傍における波形データWDのサンプリングの様子を示したものである。上述したように、波形WBを繰り返し再生する場合には、ループスタートとループエンドとを滑らかに接続する必要がある。そこで、この例にあっては、波形データWDを再生するためのパラメータとして、各波形データWD毎にループスタートアドレスLSAとループエンドアドレスLEAとを予め設定しておき、これらのパラメータを用いてループ再生を行うようにしている。ここで、ループスタートアドレスLSAとループエンドアドレスLEAは、波形データWDの最後から途中に戻って再生する際に用いる接続情報として機能する。ループスタートアドレスLSAとループエンドアドレスLEAは、ループスタート,ループエンドに各々対応するアドレスであり、それらの値は小数点を含むものとして与えられる。例えば、図3(b)においてサンプリングポイントSP1,SP2のアドレス値が各々「10」,「11」であれば、ループスタートアドレスLSAの値は「10.6」となる。
【0030】
この例では、波形データWDに基づいて各間引波形データWD1,WD2,WD3…を生成するので、間引波形データWD1,WD2,WD3…に対応するループスタートアドレスLSA1,LSA2,LSA3…とループエンドアドレスLEA1,LEA2,LEA3…とを各々生成する必要がある。このため、デバイスドライバDDは、各間引波形データWD1,WD2,WD3…をRAM30に展開する際に、LSA,LEAに1/2,1/4,1/8…を各々乗算してLSA1,LSA2,LSA3…およびLEA1,LEA2,LEA3…を各々生成し、各間引波形データWD1,WD2,WD3…と対応づけてRAM30に格納している。ここで、LSA1,LSA2,LSA3…およびLEA1,LEA2,LEA3…は、ループエンドからループスタートに戻り間引波形データWD1,WD2,WD3…を接続する際に用いられる変換接続情報として機能する。
【0031】
この場合の演算は、1/2nをLSA,LEAに乗算すれば足りるので、LSA,LEAをビットシフトすることによって、LSA1,LSA2,LSA3…およびLEA1,LEA2,LEA3…を簡単に生成することができる。換言すれば、LSA1,LSA2,LSA3…およびLEA1,LEA2,LEA3…を算出し易いように、間引波形データWD1,WD2,WD3…の間引率1/2,1/4,1/8…を定めている。
【0032】
次に、図1に示す音源ボード100は、図示せぬ拡張スロットに装着されるようになっており、そこには、再生楽音データSDを生成する音源LSI10と再生楽音データSDをアナログ信号に変換して再生楽音信号Sを出力するDAC(Digital/Analog Converter)17が設けられている。ここで、再生楽音データSDを再生する処理は、フレームと呼ばれる一定のサンプリング数単位で一括して行われるようになっており、この例では、再生楽音データSDを出力サンプリング周波数(48KHz)で256サンプルだけ出力する期間(5.3ms)を1フレームとしている。
またこの例では音源LSIは複数音(例えば64チャンネル)の再生楽音データSDを同時に再生できるようになっている。
あるフレーム(256サンプル分)の再生楽音データを得るに当たって、まず、音源LSI10は第1チャンネルの256サンプルを再生するのに必要な波形データWDのサンプルをPCIバス60を介してRAM30から取り込む。必要な波形データWDは音色情報により決定され、必要なサンプル数はピッチ情報により決定される。この取り込みは、先頭アドレスとサンプル数とを指定することでバースト転送により行われる。すなわち、RAM30の波形データWD内の所定の連続領域が切り出されて音源LSIに一括して転送されることになる。音源LSIは取り込まれたサンプルに基づき第1チャンネルの256サンプルを作成する。次に第2チャンネルについて同様に256サンプルを作成し第1チャンネルの256サンプルと対応したサンプル同士加算して累算された256サンプルを得る。このような処理を64チャンネル分繰り返し、最終的に64チャンネル分を累算した256サンプルを得る。上記処理は各フレームで繰り返し行われるが、あるフレームで生成された256サンプルは次のフレームでサンプリング周波数に従いDAC17へ転送される。なお、256サンプル分を貯えるバッファはダブルバッファ構成を採り、一方累算・書込みに使用された他方はDACへの読み出しに使われ、フレーム単位でそれぞれの役割が切り換わる。
【0033】
音源LSI10は、制御部11、PCIバスインターフェース12、入力バッファ13、補間部14、演算部15および出力バッファ16から構成される。まず、制御部11はRAM30から転送されるマイクロプログラムMPをその内部に設けられたメモリ(図示略)に記憶し、マイクロプログラムMPに従って音源LSI10の各部を制御する命令iを発行する。次に、PCIバスインターフェース12は、バスマスタ機能を有している。このため、音源LSI10は、CPU20を介することなくRAM30から制御データCDや波形データWD等を直接読み出すことが可能である。
【0034】
次に、入力バッファ13は、PCIバスインターフェース12を介してバースト転送される波形データWDや各間引波形データWD1,WD2,WD3…を一旦記憶する。この入力バッファ13は2個のバッファ131,132から構成されており、一方にデータを書き込んでいる期間に他方からデータを出力するように構成されている。また、補間部14は波形データWDまたは各間引波形データWD1,WD2,WD3…に補間処理を施して補間波形データWD'を生成する。ところで、音源LSI10のピッチアップ能力の限度は、入力バッファ13と出力バッファ16の記憶容量によって定まるが、この例では、約2倍の周波数範囲(1オクターブ)に対応できるように入力バッファ13と出力バッファ16の容量を規定している。
【0035】
ここで、制御部11は、制御データCDの音色情報に基づいてこれに対応する波形データWDの種類を特定するとともに、ピッチ情報に基づいて転送すべきデータを特定する。制御データCDの音色情報がバイオリンを指示するとともにそのピッチ情報が2.3オクターブアップを指示するのであれば、バイオリンの間引波形データWD2が特定される。この場合、間引波形データWD2は、波形データWDに対して2オクターブ上の音程に対応するものである。これに対してピッチ情報の指示は2.3オクターブアップを指示しているので0.3オクターブ足らないことになるが、音源LSI10内の補間を含むピッチシフト処理で実現される。
【0036】
すなわち、制御部11は、制御データCDの指示するピッチ情報が、波形データWDの音程に対して、音源LSI10のピッチアップ能力を越える場合には、音源LSI10のピッチアップ能力以内に収まるように最小の間引率を決定する。この例では、音源LSI10のピッチアップ能力は1オクターブであるから、制御部11は波形データWDや各間引波形データWD1,WD2,WD3…の中からピッチ情報の整数部に対応するものを特定し、これを入力バッファ13に転送するようにPCIバスインターフェース12に対して命令iを発行している。この意味において、制御部11は、ピッチ情報に基づいてRAM30に記憶されている複数の間引波形データWD1,WD2,WD3…の中から補間の対象となる間引波形データを特定し、これを読み出す読出部として機能する。
これにより、原波形の音程よりも高い音程の再生楽音信号Sを再生する場合、入力バッファ13に転送するデータ量を削減して、バス60を占有する時間を短時間にすることができる。また、入力バッファ13のチップサイズを縮小し、しかも再生楽音データSDの周波数範囲を拡大することが可能となる。
【0037】
次に、演算部15は、制御データCDの音量情報等に基づきマイクロプログラムMPのフィルタ処理命令に従って、補間波形データWD'に演算処理を施し再生楽音データSDを生成する。この場合、フィルタ処理は、例えば、微妙な音色変調処理やリバーブやコーラスといった音響効果を与える処理であり、これにより、多彩な再生楽音データSDを再生することが可能となる。
【0038】
次に、出力バッファ16は、入力バッファ13と同様に2個のバッファ161,162から構成されており、一方に再生楽音データSDをチャネル間の累積を行いつつ書き込んでいる期間に他方から再生楽音データSDを出力するように構成されている。この場合、出力バッファ16からは、出力サンプリング周波数(48KHz)に従って再生楽音データSDが読み出されるようになっている。
こうして読み出された再生楽音データSDは、DAC17によってデジタル信号からアナログ信号に変換され再生楽音信号Sとして外部に出力される。
【0039】
2.第1実施形態の動作
次に、図面を参照しつつ、本実施形態に係わるコンピュータシステムAにおける楽音信号の再生処理に係わる動作を説明する。図4は楽音信号の再生処理動作を示すフローチャートである。
まず、デバイスドライバDDは、波形データWDに基づいて間引波形データWD1,WD2,WD3…を生成し、これらをRAM30に格納する(ステップS1)。この際、波形データWDのループスタートアドレスLSAとループエンドアドレスLEAに基づいて、間引波形データWD1,WD2,WD3…のループスタートアドレスLSA1,LSA2,LSA3…とループエンドアドレスLEA1,LEA2,LEA3…とを各々生成し、RAM30に格納する(ステップS2)。例えば、RAM30の内容は、図5に示すように、ギターやバイオリンといった各種の音色に応じてデータが格納される。
【0040】
次に、上位のアプリケーションか発音指令があり、デバイスドライバDDが制御データCDを音源LSI10の制御部11に渡すと、制御データCDの音色情報とピッチ情報に基づいて転送すべきデータが特定される。制御部11がPCIバスインターフェース12に対して転送データを指示すると、PCIバスインターフェース12はバスマスタとして機能し、RAM30から当該データを読み出す(ステップS3)。例えば、音色情報がギターを指示し、ピッチ情報が1.3オクターブアップを指示するのであれば、図5に示すRAM30から、1オクターブアップに対応するWD1,LSA1,LEA1が読み出されることになる。なお、WD1中の転送されるサンプル数は、音源LSI10内にて行う0.3オクターブ分のピッチアップ処理に必要なサンプル数となる。
【0041】
次に、ピッチ情報に従い入力バッファ13からデータが読み出されると、補間部14は補間処理を施して補間波形データWD’を生成する(ステップS4)。ここでは、ピッチ情報が1.3オクターブ(2.5倍)を指示する場合を一例として説明する。
【0042】
図6は、通常処理における補間動作を示す概念図である。この例では、波形データWDを1/2に間引いた間引波形データWD1が入力バッファ13に格納され、この1/2間引波形データWD1を間引きなしの波形データWDと同様に再生すれば1オクターブ分のピッチシフトが実現される。したがって、音源LSI10では0.3オクターブのピッチアップを行うことになる。この0.3オクターブ分のピッチアップ処理は、原理的には、入力バッファに記憶されたサンプルを間引きつつ出力バッファに格納される256サンプルを作成することにより実現されるが、この実施例では折り返しノイズを低減するために補間演算を行っている。この場合、補間部14は隣接する2個のサンプルに基づき直線補間を行って補間波形WD’を生成する。例えば、d2’を生成する場合には、0.25d2+0.75d3を演算する。この場合の補間係数0.25、0.75は、ピッチ情報に基づいて算出される。通常(例えば、波形データWDのサンプリング時のサンプリング周波数と出力サンプリング周波数とが等しいようなケース)、1オクターブアップを示すピッチ情報は実数値2の値をとり、1.3オクターブアップを示すピッチ情報は実数値2.5の値をとる。上記のとおり、1オクターブのアップ分については、「間引波形データの利用」という形態をとるので、ピッチ情報の2.5という数値は1.5に補正されこの1.5を累算していった結果の小数部が上記補間係数として使われる。
【0043】
なお、前述のとおり、ループスタートアドレスLSAとループエンドアドレスLEAはループエンドからループスタートに戻ったときにそのつなぎ目が綺麗に繋がるようにそのアドレスが決められている。ところが、この例では波形データWDに対して、一様に間引き処理を行い、間引き波形データWD1、WD2、…、を用意するようにしているので、ループスタートアドレスLSA近傍のサンプルおよびループエンドアドレスLEA近傍のサンプルが、間引かれていたり、間引かれないでいたりする場合が生じるので、必ずしもループの繋がりが綺麗になるとは限らない。それを解決するためにはループ付近の補間を2点(直線補間)以上の多点補間とすること等が考えられる。
【0044】
次に、演算部15は補間波形データWD'に対して音色変調、音量付与、効果付与等の演算処理を実行して再生楽音データSDを生成しこれをチャネル間の累算を行いつつ出力バッファ16に格納する(ステップS5)。この後、出力サンプリング周波数に従って出力バッファ16から再生楽音データSDが読み出されると、DAC17によって再生楽音信号SDに変換され、外部機器に出力される(ステップS6)。
【0045】
このように第1実施形態によれば、波形データWDをRAM30に記憶するに際して、デバイスドライバDD(ソフトウエア)によって間引波形データWD1,WD2,WD3…を生成しこれをRAM30に記憶しておき、ピッチ情報に基づいて必要なデータを音源LSI10に転送するようにしたので、入力バッファ13のデータ容量を削減しつつ、再生楽音データSDの周波数範囲を拡大することが可能となる。
【0046】
B.第2実施形態
上述した第1実施形態においては、RAM30に間引波形データWD1,WD2,WD3…を記憶するので、それらの記憶領域をRAM30内に確保する必要がある。このため、RAM30の記憶容量が増大する。そこで、第2実施形態に係わるコンピュータシステムAでは、RAM30の記憶容量を増大させることなく、再生処理における対応周波数範囲を拡大することを目的としている。
【0047】
1.第2実施形態の構成
図7は、第2実施形態に係わるコンピュータシステムA’のブロック図である。このコンピュータシステムA’は、PCIバスインターフェース12と入力バッファ13との間に間引部12’を設けた点を除いて、図1に示す第1実施形態のコンピュータシステムAと同様である。なお、この例の入力バッファ13は、ライトイネーブル端子を備えており、そこに供給されるライトイネーブル信号WEがハイレベルになると書込可能状態となり、一方、ローレベルになると書込不能状態になるものとする。
【0048】
この間引部12’は、入力バッファ13に供給するライトイネーブル信号WEについて各種のパターンを格納したテーブルTBLを備えている。そして、制御データCDのピッチ情報の整数部に基づいて間引きのパターンを決定し、それに従って波形データWDを間引くように構成されている。具体的には、波形データWDと選択されたライトイネーブル信号WEを入力バッファ13に供給する。なお、以下の説明では、間引きを行わない場合のライトイネーブル信号WEをWE0、1/2に間引く場合をWE1、1/4に間引く場合をWE2と表すことにする。
【0049】
ここで、図8を参照してライトイネーブル信号WEの生成動作を説明する。なお、入力バッファ13はライトイネーブル信号WEがハイレベルのとき書込可能となり、ローレベルのとき書込不能となる。まず、間引部12’は、ピッチ情報の整数部に応じてテーブルTBLのどの記憶領域からライトイネーブル信号WEを読み出すかを決定する。この場合、ピッチアップが1オクターブ未満であればWE0を、1オクターブ以上2オクターブ未満であればWE1を、2オクターブ以上3オクターブ未満であればWE3を読み出す。例えば、ピッチ情報が1.3オクターブアップを指示するのであれば、WE1が選択されるので1/2の割合で波形データWDが間引かれ、入力バッファ13には図2に示す間引波形データWD1が記憶される。したがって、RAM30には波形データWDのみを記憶しておけば足り、間引波形データWD1,WD2,WD3…は、必要に応じて間引部12’によって生成される。この結果、RAM30の記憶容量を削減することが可能となる。
【0050】
ところで、上述した第1実施形態では、ループ処理を可能にするため、RAM30に間引波形データWD1,WD2,WD3…のループスタートアドレスLSA1,LSA2,LSA3…とループエンドアドレスLEA1,LEA2,LEA3…とを予め生成し格納していた。一方、この例では、RAM30には波形データWD、ループスタートアドレスLSAおよびループエンドアドレスLEAのみを記憶する。このため、間引部12’は波形データWDに対応するループスタートアドレLSAとループエンドアドレスLEAに基づいて、LSA1,LSA2,LSA3…およびLEA1,LEA2,LEA3…の中から必要とされるアドレスを生成する。なお、ループスタートアドレLSAとループエンドアドレスLEAは、PCIバスインターフェース12の内部に設けられたレジスタに書き込まれるようになっている。
【0051】
例えば、上述した例のように間引波形データWD1を入力バッファ13に記憶する場合には、LSAとLEAをPCIバスインターフェース12から読み出し、これらをビットシフトすることによってLSA1とLEA1を生成し、これらを補間部14に渡している。なお、補間部14、演算部15、出力バッファ16およびDAC17の構成は、第1実施形態と各々同一あるので、ここでは説明を省略する。
【0052】
2.第2実施形態の動作
次に、第2実施形態に係わるコンピュータシステムA’における楽音信号の再生処理に係わる動作を説明する。図9は楽音信号の再生処理動作を示すフローチャートである。
【0053】
まず、制御部11は、制御データCDのピッチ情報に基づいて、ピッチ変換処理が音源LSI10のピッチアップ能力を越えるか否かを判定する(ステップS10)。この例のピッチアップ能力は1オクターブであるから、ピッチ情報が1オクターブアップを越えると、YESと判定され、ステップS11に進む。制御部11は、音源LSI10のピッチアップ能力以内に収まるように最小の間引率を設定すると(ステップS11)、設定した間引率に従って、テーブルTBLからライトイネーブル信号WEを読み出す(ステップS12)。これにより、波形データWDが所定の間引率で間引かれ、間引波形データWD1,WD2,WD3…が入力バッファ13に格納されることになる。したがって、RAM30に間引波形データWD1,WD2,WD3…を予め生成し記憶する必要がない。
【0054】
ところで、制御部11が音源LSI10のピッチアップ能力以内に収まるように最小の間引率を設定するのは、間引に伴う折り返し歪みを低減するためである。例えば、ピッチ情報が0.6オクターブアップ(1.5倍の周波数に相当)である場合を考えると、波形データWD、間引波形データWD1、および補間波形データWD'は、図10に示す関係がある。図示するように、補間波形データWD'を構成する各サンプリングデータは、波形データWDの方が間引波形データWD1より近い位置にある。例えば、補間波形データd'は波形データdそのものであるが、仮に、間引波形データWD1から補間波形データd'を算出する場合には、d2およびd3から算出する必要がある。このように、サンプリング位置が離れたデータから補間を行うと、誤差が生じ、これに起因して折り返し歪みが大きくなる。しかしながら、本実施形態では、音源LSI10のピッチアップ能力以内に収まるように最小の間引率を設定するので、折り返し歪みを抑圧することができる。
【0055】
また、ピッチ情報の指示する値が大きくなると、サンプリング位置が離れたデータから補間を行う必要があるため、折り返し歪みが大きくなる。例えば、ピッチ情報が1.3オクターブアップを示す場合において、波形データWD、間引波形データWD1および補間波形データWD'の関係は、図11に示すものとなる。図11において斜線部は信号成分SSである。この場合、補間波形データWD'の信号成分SSと折り返し成分NSは近接する。このため、DAC17の出力フィルタを折り返し成分NSが通過してしまい再生楽音信号SのS/N比を劣化させることも想定される。しかしながら、実際には、波形データWDにおいて、幅広い音域にわたって共通の波形データWDが使われるような音色では、サンプリング周波数fsに対する信号成分SSの周波数は十分離れるように設定されている。このため、補間波形データWD'の折り返し成分NSによって、再生楽音信号SのS/N比はほとんど劣化せず実用上問題とならない。
【0056】
次に、ピッチ変換処理が音源LSI10のピッチアップ能力以内であるならば、ステップS10の判定結果は、NOとなる。この場合には、ライトイネーブル信号WEは、常にハイレベルとなる(図8のWE0を参照)。したがって、波形データWDがそのまま入力バッファ13に書き込まれる。
【0057】
こうして、入力バッファ13に波形データWDや間引波形データWD1,WD2,WD3…が格納されると、補間部14はピッチ情報に基づいて補間処理を実行する(ステップS14)。補間部14の動作は第1実施形態と同様である。
【0058】
この後、演算部15が演算処理を実行して再生楽音データSDをチャネル間の累算を行いつつ出力バッファ16に格納すると(ステップS15)、出力バッファ16は再生楽音データSDをバッファリングして出力する。これを、DAC17を介してアナログ信号に変換することにより、再生楽音信号Sが生成される(ステップS16)
【0059】
このように第2実施形態によれば、波形データWDをRAM30から読み出す際にピッチ情報に基づいて波形データWDを間引いたので、予め間引波形データWD1,WD2,WD3…を生成しこれをRAM30に記憶する必要がない。このため、RAM30の記憶容量を削減しつつ、再生楽音データSDの周波数範囲を拡大することが可能となる。
【0060】
C.変形例
以上、本発明に係わる実施形態を説明したが、本発明は上述した実施形態に限定されるものではなく、以下に述べる各種の変形が可能である。
▲1▼上述した実施形態においては、音源LSI10のピッチアップ能力は1オクターブとして説明したが、2オクターブであってもよい。この場合には、間引波形データとして、WD2,WD3,…をRAM30に予め格納するか(第1実施形態に対応)、波形データWDの転送時に間引いてこれらを生成すればよい(第2実施形態に対応)。
【0061】
▲2▼上述した実施形態において、補間部14の補間処理は2つのサンプリングデータから直線補間を行ったが、本発明はこれに限定されるものではなく、3つ以上のサンプリングデータに重み付け係数を各々乗算しこれらを加算して補間波形データWD'を生成するようにしてもよい。この場合には、より誤差の少ない補間波形データWD'を生成することができ、再生楽音データSDの品質を向上させることができる。
【0062】
▲3▼上述した実施形態においては、間引波形データWD1,WD2,WD3…は、波形データWDを1/2nに間引くことにより生成したが、本発明はこれに限定されるものではなく、間引率の設定に制限がないことは勿論である。特に、第2実施形態のように波形データWDを転送する際に間引部12’で間引く場合には、予めピッチ情報の指示する値と対応づけてライトイネーブル信号WEをテーブルTBLに格納しておくことにより、補間波形データWD'を構成するデータのサンプリング位置に近いデータを入力バッファ13に格納することができる。例えば、「1,0,1,1,0」を繰り返すパターンをテーブルTBLに格納しておき、ピッチ情報が1.3オクターブアップを指示する場合には、これを読み出してライトイネーブル信号WEを生成することによって、図12に示す黒丸印のサンプリングデータのみを入力バッファ13に格納するようにしてもよい。
【0063】
【発明の効果】
上述したように本発明に係る発明特定事項によれば、第1のバッファの記憶容量を削減しつつ、楽音データの周波数範囲を拡大することが可能となる。また、間引部は、ピッチ情報に従って波形データを間引くから、予め記憶部に間引波形データを記憶しておく必要がなく、記憶部の記憶容量を削減することができる。
【図面の簡単な説明】
【図1】 本発明の第1実施形態に係わるコンピュータシステムのブロック図である。
【図2】 同実施形態に係わる間引波形データと波形データとの関係を示した概念図である。
【図3】 同実施形態に係わるループスタートおよびループエンドを説明するための概念図である。
【図4】 同実施形態に係わる楽音信号の再生処理動作を示すフローチャートである。
【図5】 同実施形態に係わるRAMの記憶内容を示す図である。
【図6】 同実施形態に係わる通常処理における補間動作を示す概念図である。
【図7】 本発明の第2実施形態に係わるコンピュータシステムのブロック図である。
【図8】 同実施形態に係わるライトイネーブル信号の生成動作を説明するための概念図である。
【図9】 同実施形態に係わる楽音信号の再生処理動作を示すフローチャートである。
【図10】 同実施形態において、波形データ、間引波形データ、および補間波形データの関係の一例を示す概念図である。
【図11】 同実施形態に係わる波形データ、間引波形データ、および補間波形データの関係の一例を示す概念図である。
【図12】 従来の補間動作を説明するための図である。
【符号の説明】
11…制御部(第1の読出部、第2の読出部、第3の読出部)、12’…間引部、13…入力バッファ(入力バッファ部)、14…補間部、15…演算部(楽音データ生成部)、16…出力バッファ(出力バッファ部)、30…RAM(記憶装置)、50…ハードディスク(外部記憶装置)、SD…再生楽音データ(楽音データ)、WD…波形データ(オリジナル波形サンプルデータ)、WD1,WD2,WD3…間引波形データ(間引波形サンプルデータ)、LSA…ループスタートアドレス(ループ再生情報)、LEA…ループエンドアドレス(ループ再生情報)、LSA1,LSA2,LSA3…ループスタートアドレス(変換ループ再生情報)、LEA1,LEA2,LEA3…ループエンドアドレス(変換ループ再生情報)、A,A’…コンピュータシステム。
Claims (4)
- 所定のオリジナル波形サンプルデータおよびこのオリジナル波形サンプルデータを一定の規則に従って間引いた間引波形サンプルデータをそれぞれ連続領域に記憶する外部記憶装置とは、バスを介して接続される楽音データ処理装置であって、
再生ピッチを指示するピッチ情報が相対的に低いピッチを示しているときは前記オリジナル波形サンプルデータを、前記ピッチ情報が相対的に高いピッチを示しているときは間引波形サンプルデータを、前記ピッチ情報に基づくサンプルデータ数だけ、前記外部記憶装置から前記バスを介して一括して読み出す第1の読出部と、
前記第1の読出部から読み出されたサンプルデータを記憶する入力バッファ部と、
前記ピッチ情報に基づいて、前記入力バッファ部に記憶された複数のサンプルデータを読み出す第2の読出部と、
予め定められた単位時間に一定レートで出力されるサンプル数に対応する楽音データを、前記ピッチ情報および前記第2の読出部から読み出された複数のサンプルデータから補間演算により、前記一定レートとは非同期に一括して生成する楽音データ生成部と、
前記楽音データ生成部によって一括生成された楽音データを記憶する出力バッファ部と、
この出力バッファ部に記憶された楽音データを前記一定レートで読み出す第3の読出部と
を備えることを特徴とする楽音データ処理装置。 - 前記外部記憶装置は、所定のオリジナル波形サンプルデータおよびこのオリジナル波形サンプルデータを一定の規則に従って間引いた間引波形サンプルデータの他に、オリジナル波形サンプルデータおよび間引波形サンプルデータのそれぞれに対応してループ再生情報を記憶し、
前記第1の読出部は、サンプルデータとこれに対応する前記ループ再生情報とを読み出し、
前記楽音データ生成部は、前記ループ再生情報に従い、ループ再生を行う
ことを特徴とする請求項1に記載の楽音データ処理装置。 - 所定のオリジナル波形サンプルデータおよびこのオリジナル波形サンプルデータを一定の規則に従って間引いた間引波形サンプルデータをそれぞれ連続領域に記憶する記憶装置と、
前記記憶装置とは、バスを介して接続されるとともに、再生ピッチを指示するピッチ情報が相対的に低いピッチを示しているときは前記オリジナル波形サンプルデータを、前記ピッチ情報が相対的に高いピッチを示しているときは間引波形サンプルデータを、前記ピッチ情報に基づくサンプルデータ数だけ、前記外部記憶装置から前記バスを介して一括して読み出す第1の読出部と、
前記第1の読出部から読み出されたサンプルデータを記憶する入力バッファ部と、
前記ピッチ情報に基づいて、前記入力バッファ部に記憶された複数のサンプルデータを読み出す第2の読出部と、
予め定められた単位時間に一定レートで出力されるサンプル数に対応する楽音データを、前記ピッチ情報および前記第2の読出部から読み出された複数のサンプルデータから補間演算により、前記一定レートとは非同期に一括して生成する楽音データ生成部と、
前記楽音データ生成部によって一括生成された楽音データを記憶する出力バッファ部と、
この出力バッファ部に記憶された楽音データを前記一定レートで読み出す第3の読出部と
を備えることを特徴とする楽音データ処理装置。 - 請求項2の楽音データ処理装置を実施するコンピュータシステムであって、
前記記憶装置はコンピュータシステムのメインメモリであり、前記オリジナル波形サンプルデータを間引いて間引波形サンプルデータを作成する処理および作成した間引波形サンプルデータを前記記憶装置に記憶する処理は所定のソフトウエアによってコンピュータシステムのCPUが行う処理である
ことを特徴とするコンピュータシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17644298A JP3659002B2 (ja) | 1998-06-23 | 1998-06-23 | 楽音データ処理装置およびコンピュータシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17644298A JP3659002B2 (ja) | 1998-06-23 | 1998-06-23 | 楽音データ処理装置およびコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000010566A JP2000010566A (ja) | 2000-01-14 |
JP3659002B2 true JP3659002B2 (ja) | 2005-06-15 |
Family
ID=16013785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17644298A Expired - Fee Related JP3659002B2 (ja) | 1998-06-23 | 1998-06-23 | 楽音データ処理装置およびコンピュータシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3659002B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6600479B1 (en) | 2000-07-28 | 2003-07-29 | Hewlett-Packard Development Company, L.P. | Input device with cable storage |
-
1998
- 1998-06-23 JP JP17644298A patent/JP3659002B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000010566A (ja) | 2000-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5689080A (en) | Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory which minimizes audio infidelity due to wavetable data access latency | |
US5717154A (en) | Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity | |
JPH06308964A (ja) | 楽音形成装置 | |
US6137046A (en) | Tone generator device using waveform data memory provided separately therefrom | |
JP5789993B2 (ja) | 楽音信号発生装置 | |
US5809342A (en) | Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory | |
JP3991458B2 (ja) | 楽音データ処理装置およびコンピュータシステム | |
JP3840851B2 (ja) | 記録媒体および楽音信号生成方法 | |
JP3482685B2 (ja) | 電子楽器の音源装置 | |
WO2007139034A1 (ja) | 楽音合成装置及び方法 | |
JP3659002B2 (ja) | 楽音データ処理装置およびコンピュータシステム | |
JP3855711B2 (ja) | 音波形データ用ディジタル信号処理装置 | |
US5298672A (en) | Electronic musical instrument with memory read sequence control | |
JP3978928B2 (ja) | 楽音生成装置 | |
JP3855710B2 (ja) | 音波形データ用ディジタル信号処理装置 | |
JP3714397B2 (ja) | 波形データ処理装置及び波形データ処理方法 | |
JP2000122668A (ja) | デジタル音声データ処理装置およびコンピュータシステム | |
JP2000276149A (ja) | 楽音生成方法、楽音生成装置および記録媒体 | |
JP3508509B2 (ja) | 音源装置 | |
JP3039468B2 (ja) | カラオケ装置 | |
JP2000221971A (ja) | 奏法対応入力システム及びその記録媒体 | |
JPH02135564A (ja) | データ処理装置 | |
JPS6335994B2 (ja) | ||
JPH02179698A (ja) | 処理装置 | |
JP2897614B2 (ja) | カラオケ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050125 |
|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140325 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |