JP3991458B2 - 楽音データ処理装置およびコンピュータシステム - Google Patents

楽音データ処理装置およびコンピュータシステム Download PDF

Info

Publication number
JP3991458B2
JP3991458B2 JP21818798A JP21818798A JP3991458B2 JP 3991458 B2 JP3991458 B2 JP 3991458B2 JP 21818798 A JP21818798 A JP 21818798A JP 21818798 A JP21818798 A JP 21818798A JP 3991458 B2 JP3991458 B2 JP 3991458B2
Authority
JP
Japan
Prior art keywords
sampling rate
data
processing
musical sound
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
Application number
JP21818798A
Other languages
English (en)
Other versions
JP2000047663A (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 JP21818798A priority Critical patent/JP3991458B2/ja
Priority to TW088112311A priority patent/TW454164B/zh
Priority to US09/362,941 priority patent/US7039477B1/en
Publication of JP2000047663A publication Critical patent/JP2000047663A/ja
Application granted granted Critical
Publication of JP3991458B2 publication Critical patent/JP3991458B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0091Means for obtaining special acoustic effects
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/031Use of cache memory for electrophonic musical instrument processes, e.g. for improving processing capabilities or solving interfacing problems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、処理負荷を軽減するのに好適な楽音データ処理装置およびコンピュータシステムに関する。
【0002】
【従来の技術】
近年のパーソナルコンピュータでは、音源LSIを搭載して各種のサウンド処理を行うものが多い。音源LSIの代表的な処理としては、制御データと波形データとに基づいて楽音データを再生する再生処理がある。波形データは楽器の演奏音を所定のレートでサンプリングして得られたものであり、制御データは、音色、再生ピッチおよび音量等を指示する。サウンド処理機能を有するパーソナルコンピュータは、通常、装置全体をOSに従って制御するCPU、音源LSI、制御データおよび波形データあるいは他のアプリケーションプログラムを格納するメインメモリ、各構成部分を接続しデータの授受を行うためのバス等から構成されている。
【0003】
音源LSIは、処理を行うために必要なデータをメインメモリからバスを介して取得しなければならないが、バスを長時間占有すると、他のアプリケーションがバスを使用する時間が短くなる。この結果、コンピュータシステム全体としてみると、円滑な動作に支障をきたすことになる。このため、音源LSIは出力サンプリング周波数(DACレート)を48KHzで256サンプル出力するのに要する時間(5.3ms)を1フレーム(FRAME)とするフレーム単位で一括して楽音データを生成しており、コンピュータシステムは1フレームの処理に必要なデータを一括してメインメモリから音源LSIにバースト転送している。
【0004】
図5は従来の音源LSIにおける主要部の機能ブロック図である。なお、この例では、複数の音色が同時発音可能であるものとし、各音色に対応する処理をチャンネル(ch)と呼ぶことにする。
この音源LSIに入力される波形データWDのサンプリングレートには、44.1KHz,22.05KHz,11.025KHz,8KHzといったように各種のものがあるが、ピッチ処理PTでは、波形データWDにピッチ変換を施して、出力サンプリングレート(48KHz)に対応する波形データWD'を生成している。この際、サンプリングレート変換とピッチシフトとを同時に行っている。例えば、あるチャンネルの波形データWDにおいて、そのサンプリングレートが8KHzであり、それをピッチシフトなしで再生する場合は、1フレーム当たり約44サンプルの波形データWDが転送されることになるが、ピッチ処理PTではピッチ変換によってそのサンプル数を256に変換している。
【0005】
次に、フィルタ処理FILにおいて波形データWD'に2次のIIRフィルタ処理を施した後、その出力データにアンプ処理AMPを施して音量を調整する。次に、ミキサ処理MIXにおいて、生成された楽音データを内部バッファに格納する。
以上の処理において、まず、チャンネルch1の256サンプルを作成する。次にチャンネルch2について同様に256サンプルを作成しチャンネルch1の256サンプルと対応したサンプル同士加算して累算された256サンプルを得る。このような処理を複数チャンネル分繰り返し、最終的に複数チャンネル分を累算した256サンプルを得る。上記処理は各フレームで繰り返し行われる。これにより、複数チャンネルの楽音データを累算し、複数同時発音を可能としている。
【0006】
このように従来の音源LSIにおいては、フィルタ処理FILやアンプ処理AMP等の内部処理を実行するに先だって、ピッチ処理PTにより、1フレーム当たりのサンプル数を出力サンプリングレートに対応するサンプル数に変換し、内部処理を出力サンプリングレートで実行するようにしていた。
【0007】
【発明が解決しようとする課題】
ところで、1フレーム期間に処理すべきサンプル数が増加すると、音源LSIの処理負荷はそれだげ重くなる。上述した従来の音源LSIでは、波形データWDのサンプリングレートを出力サンプリングレートまで上げて、サンプリングレートを揃えた後に内部処理を実行するので、音源LSIの処理負荷が重くなっていた。
【0008】
一方、コンピュータシステムで行われるサウンド処理では、臨場感に溢れる音響を実現するために、いわゆる3Dサウンドポジショニング処理が行われることがある。この処理は、音源から左右の耳までの頭部伝達関数HRTF(Head Related Trausfer Function)を、音源の座標と対応付けて予め測定しておき、音源の座標が変化するのに応じて、頭部伝達関数HRTFの係数(以下、HRTF係数と呼ぶ)を動的に変化させるものである。これにより、例えば、ゲームソフトにおいて、飛行機が左から右に飛び去っていくようなシーンで、効果音の音源位置を左から右に移動させることが可能となる。このため、3Dサウンドポジショニング処理を音源LSIで実行したいといった要求がある。また、リバーブやコーラスあるいはバリエーションといった音響効果を付与するエフェクト処理を音源LSIで実行したいといった要求がある。
【0009】
しかしながら、3Dサウンドポジショニング処理やエフェクト処理を音源LSIに取り込むと、音源LSIの処理負荷がさらに増大することになり、それに対応すると著しくコストがアップしていた。そこで、従来のコンピュータシステムでは3Dサウンドポジショニング処理やエフェクト処理といった処理負荷が重いものは、CPUで実行していた。
【0010】
ここで、音源LSIの処理負荷を軽減するために、波形データWDに対してフィルタ処理FILやアンプ処理AMP等を直接施し、最後にピッチ処理PTを実行して、波形データWDのサンプリングレートを出力サンプリングレートまで上げることも考えられる。
しかしながら、この場合には、フィルタ処理FILに用いる係数データの組を波形データWDのサンプリングレートの種類だけ予め用意しておき、入力される波形データWDに応じてこれを切り換える必要がある。また、3Dポジショニング処理やエフェクト処理といった新しい機能を音源LSIに取り込むものとすれば、予め用意する係数データが更に増加するといった問題がある。
【0011】
本発明は、上述した事情に鑑みてなされたものであり、処理負荷を軽減しつつ、性能の向上を図った楽音データ処理装置およびコンピュータシステムを提供することを目的とする。
【0012】
【課題を解決するための手段】
上記課題を解決するため請求項1に記載の発明にあっては、波形データに基づいて楽音データを生成する楽音データ処理装置において、前記波形データのサンプリングレートを、予め用意された複数の内部サンプリングレートの中から選択したサンプリングレートに変換する第1のサンプリングレート変換手段と、この第1のサンプリングレート変換手段の出力データに対して演算処理を実行する演算手段と、この演算手段の出力データを前記第1のサンプリングレート変換手段により変換されたサンプリングレートよりも高いサンプリングレートに変換して楽音データを生成する第2のサンプリングレート変換手段とを備え、前記第1のサンプリングレート変換手段は、前記波形データのサンプリングレートと予め用意された複数のサンプリングレートとを比較し、その比較結果に基づいて、前記波形データのサンプリングレートよりも高く、且つ最も近い内部サンプリングレートに従って前記波形データを変換することを特徴とする。
【0014】
また、請求項に記載の発明にあっては、記憶装置に記憶された波形データに基づいて、楽音データを出力サンプリングレートとは非同期に一括して生成する楽音データ処理装置であって、前記記憶装置から一括して読み出された前記波形データを記憶する入力バッファ手段と、前記入力バッファ手段から前記波形データを読み出して前記第1のサンプリングレート変換手段に供給する第1の読出手段と、前記第2のサンプリングレート変換手段の出力データを記憶する出力バッファ手段と、前記出力バッファ手段から前記出力サンプリングレートに従って楽音データを読み出す第2の読出手段とを備えることを特徴とする。
【0015】
また、請求項に記載の発明にあっては、複数チャンネルの波形データに基づいて、同時に複数音の発音を指示する楽音データを生成する楽音データ処理装置であって、前記第2のサンプリングレート変換手段によって各チャンネルの楽音データが生成されるたびに前記出力バッファ手段に記憶されている前記楽音データを読み出し、読み出した楽音データと新たに生成された楽音データとを累算して、累算結果によって前記出力バッファ手段の記憶内容を更新する累算手段をさらに備えることを特徴とする。
【0016】
また、請求項に記載の発明にあっては、前記楽音データ処理装置を実施するコンピュータシステムであって、前記記憶装置はコンピュータシステムのメインメモリであることを特徴とする。
【0017】
【発明の実施の形態】
1.コンピュータシステムの全体構成
以下、図面を参照しつつ、本発明に係わる一実施形態であるコンピュータシステムの構成を説明する。図1は本実施形態に係わるコンピュータシステムのブロック図である。
【0018】
図において、CPU20は、バス60を介して各構成部分に接続されており、コンピュータシステムA全体を制御する。RAM30はメインメモリに相当する読み書き可能なメモリであって、CPU20の作業領域として機能する。また、ROM40は読出専用のメモリであって、そこにはブートプログラム等が格納されている。また、ハードディスク50は、二次記憶装置に相当し、そこにはアプリケーションプログラムやデバイスドライバDDやマイクロプログラムMP等のプログラム、および制御データCDや波形データWDといった各種のデータが格納されている。そして、これらのプログラムやデータは必要に応じてRAM30にロードされるようになっている。
【0019】
ここで、制御データCDは、音色情報(当該音色に対応する波形データWDが格納されているアドレス)、ピッチ情報、音量情報の他、対応する波形データWDのサンプリングレートを指示するサンプリングレート情報が含まれている。また、波形データWDは、例えば、ギターやピアノといった各種の音色に対応する楽器によって実際に発音させた楽音等をサンプリングして得られたデータである。各種の波形データWDが記憶されるRAM30の記憶領域は周知のウエーブテーブルを構成している。
【0020】
また、OSの起動時にデバイスドライバDD、マイクロプログラムMP、および波形データWD等がバス60を介してRAM30に転送されるとともに、上位のアプリケーションによって指示される制御データCDが必要に応じてRAM30に転送される。また、RAM30に格納されたマイクロプログラムMPは音源LSI10に転送される。バス60としては、大量のデータを高速転送できるものであればその種類は問わないが、この例にあっては、バースト転送モードを備えたPCIバス(Peripheral Component Interconnect Bus)を用いるものとする。
【0021】
ここで、波形データWDは、ハードディスク50に格納されているデータの中から使用頻度の高い音色に対応するものが選択されRAM30に記憶され、必要に応じてRAM30とハードディスク50との間で波形データWDのやり取りが行われる。また、RAM30において、波形データWDは物理アドレスが連続する連続直線領域に格納されるようになっている。物理アドレスが不連続であると、論理アドレスから物理アドレスを算出する必要があるため、これを回避してOSの負荷を軽減するためである。
【0022】
2.音源ボードの構成
次に、図1に示す音源ボード100は、図示せぬ拡張スロットに装着されるようになっており、そこには、再生楽音データSDを生成する音源LSI10と再生楽音データSDをアナログ信号に変換して再生楽音信号Sを出力するDAC(Digital/Analog Converter)16が設けられている。再生楽音データSDを再生する処理は、フレームと呼ばれる一定のサンプリング数単位で一括して行われるようになっており、この例では、再生楽音データSDを出力サンプリングレート(48KHz)で256サンプルだけ出力する期間(5.3ms)を1フレームとし、これをさらに4分割したサブフレーム単位で音源LSI10は一括処理を行っている。また、音源LSI10は複数音(例えば64チャンネル)を同時発音する再生楽音データSDを再生できるようになっている。
【0023】
あるサブフレームの再生楽音データSDを得るに当たって、音源LSI10は、まず、出力サンプリングレートに換算してサブフレーム分のサンプルを再生するのに必要な波形データWDをPCIバス60を介してRAM30から一括して取り込む。例えば、Nチャンネルの同時発音を行うものとすれば、波形データWD1〜WDNが取り込まれる。各チャンネルのサンプル数は、波形データWD1〜WDNの各サンプリングレートに応じて異なる。例えば、波形データWD1のサンプリングレートが8KHzであり、ピッチシフトなしで再生するとすれば、サブフレーム当たりのサンプル数は8となるので、8個の波形データWD1が取り込まれることになる。
【0024】
この取り込みは、先頭アドレスとサンプル数とを指定することでバースト転送により行われる。すなわち、RAM30の波形データWD内の所定の連続領域が切り出されて音源LSIに一括して転送されることになる。音源LSIは取り込まれたサンプルに基づきチャンネルch1の64サンプル(1サブフレームに相当)を作成する。次にチャンネルch2について同様に64サンプルを作成しチャンネルch1の64サンプルと対応したサンプル同士加算して累算された64サンプルを得る。このような処理をNチャンネル分繰り返し、最終的にNチャンネル分を累算した64サンプルを得る。上記処理は各サブフレームで繰り返し行われるが、あるサブフレームで生成された64サンプルは次のフレームで出力サンプリングレートに従ってDAC16へ転送される。
【0025】
2−1:音源LSI
音源LSI10は、制御部11、PCIバスインターフェース12、入力バッファ13、演算部14および出力バッファ15から構成される。まず、制御部11はRAM30から転送されるマイクロプログラムMPをその内部に設けられたメモリ(図示略)に記憶し、マイクロプログラムMPに従って音源LSI10の各部を制御する命令iを発行する。次に、PCIバスインターフェース12は、バスマスタ機能を有している。このため、音源LSI10は、CPU20を介することなくRAM30から制御データCDや波形データWD等を直接読み出すことが可能である。
【0026】
2−1−1:入力バッファ
次に、入力バッファ13は、PCIバスインターフェース12を介してバースト転送される波形データWDを一旦記憶する。この入力バッファ13は2個のバッファ131,132から構成されており、一方にデータを書き込んでいる期間に他方からデータを出力するダブルバッファとして構成されている。ここで、制御部11は、制御データCDの音色情報に基づいてこれに対応する波形データWDの種類を特定する。例えば、制御データCDの音色情報がバイオリンを指示するのであれば、バイオリンの波形データWDが特定される。
【0027】
2−1−2:演算部
次に、演算部14は、チャンネル毎に各種の演算をマイクロプログラムMPに従って時分割で実行できるように構成されており、その内部にはLch用バッファ141、Rch用バッファ142、および第1〜第3のエフェクトバッファ143〜145を備えている。ここで、Lch用バッファ141とRch用バッファ142は、ステレオ形式の楽音データを再生する場合に用いられ、また、第1〜第3のエフェクトバッファ143〜145は、後述するポスト処理POSTの一部であるエフェクト処理EFを実行する場合に使用される。なお、この例では、リバーブ、コーラス、バリエーションといった3種類のエフェクト処理EFを実行するため、エフェクト処理用に3個のバッファを用意したが、4種類以上のエフェクト処理EFを行うのであれば、その種類に応じた数のバッファを用意すれば良い。
この演算部14の演算処理には、ピッチ処理PT、フィルタ処理FIL、アンプ処理AMP、ミキサ処理MIX、およびポスト処理POSTがある。ここでは、各処理を機能モジュールとして捉え、図2に示す機能ブロック図を参照しつつ、演算部14を説明する。
【0028】
2−1−2−1:ピッチ処理
まず、ピッチ処理PTでは、制御データCDのサンプリングレート情報及びピッチ情報に基づいて、波形データWDにピッチ変換を施して、そのサンプリングレートを予め定められた複数の内部サンプリングレートから選択したものに変換して、波形データWD'を生成する処理が実行される。この場合、内部サンプリングレートとしては各種のものが考えられるが、この例にあっては、48KHz,42KHz,36KHz,30KHz,24KHzが用意されている。内部サンプリングレートの選択は、サンプリングレート情報と各内部サンプリングレートを比較し、その比較結果に基づいて、サンプリングレート情報より高く、且つ、最も近い内部サンプリングレートが選択されるようになっている。
【0029】
具体的には、サンプリングレート情報が示す波形データWDのサンプリングレートをFsとしたとき、以下のように内部サンプリングレートが選択される。
▲1▼Fs≦24KHzであるならば、内部サンプリングレートは24KHzとなる。
▲2▼24KHz<Fs≦30KHzであるならば、内部サンプリングレートは30KHzとなる。
▲3▼30KHz<Fs≦36KHzであるならば、内部サンプリングレートは36KHzとなる。
▲4▼36KHz<Fs≦42KHzであるならば、内部サンプリングレートは42KHzとなる。
▲5▼42KHz<Fs≦48KHzであるならば、内部サンプリングレートは48KHzとなる。
【0030】
サンプリングレート情報より高い内部サンプリングレートを選択するようにしたのは、低い内部サンプリングレートを選択すると、ピッチ変換を行う際に波形データWDのサンプルを間引くことにより、波形データWDが本来有している情報が失われてしまい、再生楽音データSDの品質が劣化してしまうが、高い内部サンプリングレートを選択すれば、そのようなことがなく、波形データWDが本来有するすべての情報をピッチ変換後の波形データWD'に承継させることができるからである。
【0031】
また、最も近い内部サンプリングレートを選択するようにしたのは、以下の理由による。上述したように再生楽音データSDの品質に鑑みると、内部サンプリングレートはサンプリングレート情報に比較して高く設定する必要があるが、サンプリングレートを上げると、サブフレーム期間中に処理するサンプル数が増加し、音源LSI10の処理負荷が重くなる。このため、音源LSI10の処理負荷を軽減するためには、できる限り低い内部サンプリングレートに変換する必要がある。そこで、最も近い内部サンプリングレートを選択したのである。
【0032】
このように、サンプリングレート情報より高く、且つ、最も近い内部サンプリングレートを選択するようにしたので、再生楽音データSDの品質を損なうことなく、音源LSI10の処理負荷を軽減することが可能となる。
【0033】
2−1−2−2:フィルタ処理
次に、フィルタ処理FILには、2次のIIRフィルタ処理IIRと、3Dサウンドポジショニングを行うための頭部伝達関数を計算する頭部伝達関数処理HRTFとがある。ここで、IIRフィルタ処理IIRは、音源LSI10をシンセサイザーとして用いる場合などに微妙な音色変調効果を与えるために用いるもので、フィルタの係数データが時間とともに動的変化するようになっている。
【0034】
また、3Dサウンドポジショニングにおいては、仮想音源から左右の耳までの頭部伝達関数を、音源の座標と対応付けて予め測定しておき、仮想音源の座標が変化するのに応じて、頭部伝達関数の係数を動的に変化させることが行われる。この場合、頭部伝達関数処理HRTFは、図3に示すようなFIRフィルタと等価である。この図においてh0〜hk-1は、HTRF係数であって仮想音源の座標によって動的に変化する。
【0035】
そこで、フィルタ処理FILにおいては、IIRフィルタ処理IIRおよび頭部伝達関数処理HRTFを実行するために必要な係数データを予め格納しておいた内部メモリから係数データを読み出し、これに基づいて演算を実行する。ここで、上述したピッチ処理PTを行わずに、波形データWDにフィルタ処理FILを直接実行するものとすれば、波形データWDが取り得るサンプリングレートの種類に応じた係数データを内部メモリに格納する必要があるため、大容量の内部メモリが必要となる。しかしながら、この例にあっては、ピッチ変換によって5種類の内部サンプリングレートのうちいずれかに変換されるから、係数データとしては、各内部サンプリングレートに対応して5組を用意しておけば足りる。
【0036】
2−1−2−3:アンプ処理
次に、アンプ処理AMPは、制御データCDの音量情報に基づいて、フィルタ処理FILが施された波形データWD'に対して音量情報に対応する係数を乗算して、音量が調整された波形データWD'を生成する。
【0037】
2−1−2−4:ミキサ処理
次に、ミキサ処理MIXでは、ピッチ処理PT、フィルタ処理FIL、およびアンプ処理AMPによって生成された各チャンネルの楽音データをLch用バッファ141、Rch用バッファ142、および第1〜第3のエフェクトバッファ143〜145に振り分けて格納している。各バッファに楽音データを格納する際には、そこに格納されている楽音データを読み出して、新たに生成された楽音データと加算して格納している。
【0038】
例えば、チャンネルch1〜ch5の楽音データにコーラス効果を付与するものとし、このために第1のエフェクトバッファ143を使用し、内部処理は36KHzの内部サンプリングレート(サブフレーム当たり48サンプル)に従って動作する場合を考える。この場合には、まず、チャンネルch1の48サンプルが生成され第1のエフェクトバッファ143に格納される。次に、チャンネルch2の48サンプルが順次生成されると、これに同期してチャンネルch1の48サンプルを順次読み出し、チャンネルch2とチャンネルch1の48サンプルを加算して、再び第1のエフェクトバッファ143に格納する。これをチャンネルch5まで繰り返すことによって、チャンネルch1〜ch5の楽音データが累算される。
【0039】
ただし、ミキサ処理MIXの累算は、同じ内部サンプリングレートのチャンネル間でのみ行われ、異なる内部サンプリングレート間では行われない。異なる内部サンプリングレート間の楽音データの合成は、後述するようにポスト処理POST中の周波数変換処理FSCが行われた後、出力バッファに書き込む際に実行される。
【0040】
2−1−2−5:ポスト処理
次に、ポスト処理POSTでは、クロストークキャンセル処理XTC、エフェクト処理EF、および周波数変換処理FSCが行われる。
このクロストークキャンセル処理XTCは、3Dサウンドポジショニング処理の一部であって、フィルタ処理FILで説明した頭部伝達関数処理HTRFと対の関係にある。頭部伝達関数処理HTRFによって生成される波形データは、左右の耳に直接入力されることを前提としている。したがって、ヘッドホンのように発音手段が左右の耳に近接しており、一方の発音手段からの発音が、片方の耳だけで聞かれる場合は問題ないが、LチャンネルとRチャンネルのスピーカを視聴者の前方に設置すると、片方のスピーカの発音によって、両方の耳に音が入力されてしまいクロストークが生じる。クロストークキャンセル処理XTCは、Lch用バッファ141とRch用バッファ142に各々格納された楽音データに基づいて、クロストークを聴感上なくすように補正を施す処理である。
【0041】
また、エフェクト処理EFは、リバーブ、コーラス、バリエーションといった音響効果を付与する処理であって、エフェクト処理用に用意した第1〜第3のエフェクトバッファ143〜144に格納された楽音データに基づいて実行される。なお、リバーブ処理においては、比較的長い遅延を使ったオールパスフィルタ処理、込むフィルタ処理等が行われる。その際、エフェクトバッファに格納した楽音データを一旦RAM30に転送し、しかるべき遅延時間の後に再度取り込むことにより、音源LSI10のコストを更に下げることが可能となる。
【0042】
ところで、この例における内部サンプリングレートは、ピッチ処理PTによって、48KHz,42KHz,36KHz,30KHz,または24KHzのうちの一つに選択されることは、上述した通りである。一方、ミキサ処理MIXによって累算された楽音データは、ある内部サンプリングレートにおける楽音データについて実行される。したがって、異なる内部サンプリングレートの楽音データ間でデータを合成するためには、サンプリングレートを揃える必要がある。周波数変換処理FSCはこのために行われる処理であって、そこでは、楽音データの合成を行うために、各種の内部サンプリングレートで生成された楽音データを一定のサンプリングレートの楽音データに周波数変換している。この場合、出力サンプリングレートと異なるサンプリングレートに変換すると、再度、出力サンプリングレートに変換する必要があるため、この例にあっては、各内部サンプリングレートを出力サンプリングレート(48KHz)に変換している。ただし、内部サンプリングレートが出力サンプリングレートに一致する場合には、周波数変換処理を実行しない。
【0043】
2−1−3:出力バッファ
次に、出力バッファ15は、第1のLchバッファ151,第1のRchバッファ152,第2のLchバッファ153,第2のRchバッファ154から構成されている。第1のL,Rchバッファ151,152に再生楽音データSDを書き込んでいる期間に第2のL,Rchバッファ153,154から再生楽音データSDを出力する。また、その逆に第2のL,Rchバッファ153,154に再生楽音データSDを書き込んでいる期間に第1のL,Rchバッファ151,152から再生楽音データSDを出力する。ここで、出力バッファ15に楽音データを書き込む際には、書込を行うバッファから、そこに格納されている楽音データを読み出し、読み出された楽音データと生成された楽音データとを加算して当該バッファに書き込むことによって累算を行っている。
【0044】
この場合、上述した周波数変換処理FSCによって、内部バッファから読み出される楽音データの内部サンプリングレートは出力サンプリングレートに変換されているので、出力バッファ15には出力サンプリングレートに変換された再生楽音データSDが格納されていく。そして、出力バッファ15からは、出力サンプリングレート(48KHz)に従って再生楽音データSDが読み出されると、再生楽音データSDは、DAC16によってデジタル信号からアナログ信号に変換され再生楽音信号Sとして外部に出力される。
【0045】
3.実施形態の動作例
次に、図面を参照しつつ、本実施形態に係わるコンピュータシステムAにおける再生楽音データSDを生成する動作例を説明する。
図4は、音源LSIの動作チャネルのフローを示す説明図である。なお、この例にあっては、チャンネルch1〜chK+2を3Dサウンドポジショニング用に使用し、チャンネルchK+3〜chNを波形データWDの再生処理に用いるものとする。
まず、上位アプリケーションからの発音指令に従って、デバイスドライバDDが制御データCDを音源LSI10の制御部11に渡すと、制御データCDの音色情報に基づいて転送すべきデータが特定される。制御部11がPCIバスインターフェース12に対して転送データを指示すると、PCIバスインターフェース12はバスマスタとして機能し、RAM30から当該データを読み出して、入力バッファ13にバースト転送する。
【0046】
ここでは、チャンネルch1〜chKが24KHz以下のサンプリングレートでサンプリングされた波形データWD1〜WDK、チャンネルchK+1,chK+2が48KHzでサンプリングされた波形データWDK+1,WDK+2、チャンネルchK+3〜chNが33.075KHzでサンプリングされた波形データWDK+3〜WDNを各々対象として処理を行うものとする。
【0047】
まず、ステップS1〜SKでは、24KHz以下の波形データWD1〜WDKを処理対象とするので、ピッチ処理PTによってピッチ変換が行われる。図に示すようにチャンネルch1は8KHz、チャンネルch2は11.025KHz、チャンネルchKは22.05KHzのサンプリングレートを有するが、ピッチ処理PTによって、内部サンプリングレートが24KHzに統一されることになる。
【0048】
この後、頭部伝達関数処理HRTF、アンプ処理AMP、およびミキサ処理MIXが実行される。このミキサ処理MIXでは、Lch用バッファ141およびRch用バッファ142を用いて楽音データの累算が行われる。ここで、アンプ処理AMPがなされた各チャンネルの楽音データをSD1〜SDNで表すものとすれば、ステップS1のミキサ処理MIXではSD1+SD2を行い、ステップSKのミキサ処理MIXでは、ステップSK-1までに累算されたSD1+SD2+…SDK-1とSDKとを加算する処理が行われる。このように累算を行うことができるのは、ピッチ処理PTによって、内部サンプリングレートを24KHzに統一しているからである。こうして、24KHzの内部サンプリングレートで行われる処理が終了すると、周波数変換処理FSCを実行して、Lch用バッファ141およびRch用バッファ142に格納されている楽音データのサンプリングレートを出力サンプリングレートに変換し、これらを出力バッファ15に転送する(ステップSK+1)。
【0049】
次に、ステップSK+2,SK+3においては、チャンネルchK+1,chK+2を処理するが、これらのチャンネルは、48KHzでサンプリングされた波形データWDK+1,WDK+2を対象とする。このため、周波数変換処理FSCは省略され、ピッチシフトに伴うピッチ処理PTと頭部伝達関数処理HRTF、アンプ処理AMP、およびミキサ処理MIXのみが行われる。なお、この場合には、出力サンプリングレートに従って内部処理が行われるので、ミキサ処理MIXでは、出力バッファ15に格納されている楽音データとの間で累算を行う。ここで、演算部14が第1のL,Rchバッファ151,152にアクセスするものとすれば、ステップSK+4で行われるクロストークキャンセル処理XTCは、第1のL,Rchバッファ151,152に格納されている楽音データに基づいて行われ、その処理結果が再び第1のL,Rchバッファ151,152に格納される。
【0050】
3Dサウンドポジショニングに関する処理が終了すると、ステップSK+5に進む。ステップSK+5〜ステップSN+4では、チャンネルchK+3〜chNに関する処理が行われる。これらのチャンネルは、33.075KHzでサンプリングされた波形データWDK+3〜WDNを処理対象とするので、まず、ピッチ処理PTにおいて内部サンプリングレートが36KHzに設定される。この後、IIRフィルタ処理IIR、アンプ処理AMPおよびミキサ処理MIXが実行され、これに続いてエフェクト処理EFが実行される(ステップSN+3)。
【0051】
こうして、チャンネルchK+3〜chNの楽音データが合成され1サブフレーム当たり48サンプルのデータが生成されると、出力バッファ15に当該データを足し込むために、周波数変換処理FSCを実行する(ステップSN+4)。ここでは、内部サンプリングレートに従って得られた48サンプルのデータを64サンプルに変換する。これにより、生成された再生楽音データSDのサンプリングレートを出力バッファ16に格納されているデータのサンプリングレートと一致させることができる。これを出力バッファ15に足し込むことにより、内部サンプリングレートの異なる再生楽音データSDを合成することができる。
この結果、出力バッファ15の内部に、3Dサウンドポジショニング処理(内部サンプリングレート24KHz,48KHz)とエフェクト処理(内部サンプリングレート36KHz)が付与された再生楽音データSDが生成される。
【0052】
以上の動作例において、ステップS1〜SKでは24KHz、ステップSK+2,SK+3では48KHz、ステップSK+5〜ステップSN+3では36KHzといったように複数の内部サンプリングレートで各チャンネルの処理が行われるが、内部サンプリングレートが出力サンプリングレートと一致する場合を除いて(SK+2,SK+3)、周波数変換処理FSCを行うようにしたので、異なる内部サンプリングレートの処理結果を累算することができる。また、この例では、同一の内部サンプリングレートとなるステップが連続するように各チャンネルの処理順序を設定したので、周波数変換処理FSCの回数を最小にすることができる。
【0053】
4.実施形態の効果
上述したように本実施形態によれば、ピッチ処理PTによって、サンプリングレート情報よりも高い内部サンプリングレートを選択するようにしたので、波形データWDが本来有するすべての情報をピッチ変換後の波形データWD'に承継させ、高品質の再生楽音データを得ることができる。
また、最も近い内部サンプリングレートを選択するようにしたので、サブフレーム期間中に処理するサンプル数を削減して音源LSI10の処理負荷を軽減することができる。
さらに、周波数変換処理FSCによって、内部サンプリングレートを出力サンプリングレートに変換するようにしたので、複数の内部サンプリングレートで音源LSI10の内部処理を実行することができる。
この結果、従来のLSIと同一規模の音源LSI10で、例えば、3Dサウンドポジショニング処理やエフェクト処理を内部に取り込むことができ、音源LSI10の性能を向上させることが可能となる。
【0054】
【発明の効果】
上述したように本発明に係る発明特定事項によれば、楽音データを生成するのに、処理負荷を軽減しつつ、高度な演算処理を実行できる楽音データ処理装置およびコンピュータシステムを提供することができる。
【図面の簡単な説明】
【図1】 本発明の一本実施形態に係わるコンピュータシステムのブロック図である。
【図2】 同実施形態に係わる演算部の機能ブロック図である。
【図3】 同実施形態に係わる頭部伝達関数処理と等価なFIRフィルタのブロック図である。
【図4】 同実施形態に係わる音源LSIの動作チャネルのフローを示す説明図である。
【図5】 従来の音源LSIの主要部の機能ブロック図である。
【符号の説明】
10…音源LSI(楽音データ処理装置)、14…演算部(演算手段)、30…RAM(記憶装置)、WD…波形データ、SD…再生楽音データ(楽音データ)、PT…ピッチ処理(第1のサンプリングレート変換手段)、FSC…周波数変換処理(第2のサンプリングレート変換手段)、A…コンピュータシステム。

Claims (4)

  1. 波形データに基づいて楽音データを生成する楽音データ処理装置において、
    前記波形データのサンプリングレートを、予め用意された複数の内部サンプリングレートの中から選択したサンプリングレートに変換する第1のサンプリングレート変換手段と、
    この第1のサンプリングレート変換手段の出力データに対して演算処理を実行する演算手段と、
    この演算手段の出力データを前記第1のサンプリングレート変換手段により変換されたサンプリングレートよりも高いサンプリングレートに変換して楽音データを生成する第2のサンプリングレート変換手段と
    を備え
    前記第1のサンプリングレート変換手段は、
    前記波形データのサンプリングレートと予め用意された複数のサンプリングレートとを比較し、その比較結果に基づいて、前記波形データのサンプリングレートよりも高く、且つ最も近い内部サンプリングレートに従って前記波形データを変換する
    ことを特徴とする楽音データ処理装置。
  2. 記憶装置に記憶された波形データに基づいて、楽音データを出力サンプリングレートとは非同期に一括して生成する楽音データ処理装置であって、
    前記記憶装置から一括して読み出された前記波形データを記憶する入力バッファ手段と、
    前記入力バッファ手段から前記波形データを読み出して前記第1のサンプリングレート変換手段に供給する第1の読出手段と、
    前記第2のサンプリングレート変換手段の出力データを記憶する出力バッファ手段と、前記出力バッファ手段から前記出力サンプリングレートに従って楽音データを読み出す第2の読出手段と
    を備えることを特徴とする請求項1に記載の楽音データ処理装置。
  3. 複数チャンネルの波形データに基づいて、同時に複数音の発音を指示する楽音データを生成する請求項に記載の楽音データ処理装置であって、
    前記第2のサンプリングレート変換手段によって各チャンネルの楽音データが生成されるたびに前記出力バッファ手段に記憶されている前記楽音データを読み出し、読み出した楽音データと新たに生成された楽音データとを累算して、累算結果によって前記出力バッファ手段の記憶内容を更新する累算手段をさらに備えることを特徴とする楽音データ処理装置。
  4. 請求項またはに記載の楽音データ処理装置を実施するコンピュータシステムであって、前記記憶装置はコンピュータシステムのメインメモリであることを特徴とするコンピュータシステム。
JP21818798A 1998-07-31 1998-07-31 楽音データ処理装置およびコンピュータシステム Expired - Fee Related JP3991458B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP21818798A JP3991458B2 (ja) 1998-07-31 1998-07-31 楽音データ処理装置およびコンピュータシステム
TW088112311A TW454164B (en) 1998-07-31 1999-07-20 Musical tone data processor and computer system
US09/362,941 US7039477B1 (en) 1998-07-31 1999-07-28 Device and method for processing tone data by controlling sampling rate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21818798A JP3991458B2 (ja) 1998-07-31 1998-07-31 楽音データ処理装置およびコンピュータシステム

Publications (2)

Publication Number Publication Date
JP2000047663A JP2000047663A (ja) 2000-02-18
JP3991458B2 true JP3991458B2 (ja) 2007-10-17

Family

ID=16715987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21818798A Expired - Fee Related JP3991458B2 (ja) 1998-07-31 1998-07-31 楽音データ処理装置およびコンピュータシステム

Country Status (3)

Country Link
US (1) US7039477B1 (ja)
JP (1) JP3991458B2 (ja)
TW (1) TW454164B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030079000A1 (en) * 2001-10-19 2003-04-24 Chamberlain Robert L. Methods and apparatus for configuring multiple logical networks of devices on a single physical network
JP4207832B2 (ja) * 2004-04-16 2009-01-14 船井電機株式会社 デジタルデータ再生装置
US7672742B2 (en) * 2005-02-16 2010-03-02 Adaptec, Inc. Method and system for reducing audio latency
JP4778872B2 (ja) * 2005-10-20 2011-09-21 パナソニック株式会社 楽音出力装置
US7813823B2 (en) * 2006-01-17 2010-10-12 Sigmatel, Inc. Computer audio system and method
US9009032B2 (en) * 2006-11-09 2015-04-14 Broadcom Corporation Method and system for performing sample rate conversion
JP2008250992A (ja) * 2007-03-07 2008-10-16 Sanyo Electric Co Ltd 音データ処理装置
JP4475323B2 (ja) * 2007-12-14 2010-06-09 カシオ計算機株式会社 楽音発生装置、及びプログラム
JPWO2010010646A1 (ja) * 2008-07-24 2012-01-05 パナソニック株式会社 アクセスモジュール、記憶モジュール、楽音生成システム、及びデータ書き込みモジュール

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127306A (en) * 1989-01-19 1992-07-07 Casio Computer Co., Ltd. Apparatus for applying panning effects to musical tone signals and for periodically moving a location of sound image
JP2705395B2 (ja) * 1991-10-07 1998-01-28 ヤマハ株式会社 電子楽器
US5525748A (en) * 1992-03-10 1996-06-11 Yamaha Corporation Tone data recording and reproducing device
JP3482685B2 (ja) * 1993-05-25 2003-12-22 ヤマハ株式会社 電子楽器の音源装置
EP0750290B1 (en) * 1995-06-19 2002-09-25 Yamaha Corporation Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions

Also Published As

Publication number Publication date
TW454164B (en) 2001-09-11
JP2000047663A (ja) 2000-02-18
US7039477B1 (en) 2006-05-02

Similar Documents

Publication Publication Date Title
CN108242231A (zh) 乐音生成装置、电子乐器、乐音生成方法以及存储介质
CN108242232A (zh) 乐音生成装置、电子乐器、乐音生成方法以及存储介质
JP2007534214A (ja) 多様なサンプルレートでの畳込みを用いてオーディオパフォーマンスを合成する方法、機器、およびシステム
JP3991458B2 (ja) 楽音データ処理装置およびコンピュータシステム
JP2000099061A (ja) 効果音付加装置
JP3482685B2 (ja) 電子楽器の音源装置
WO2007139034A1 (ja) 楽音合成装置及び方法
JP3855711B2 (ja) 音波形データ用ディジタル信号処理装置
JPH07121181A (ja) 音声情報処理装置
JP4042229B2 (ja) ディジタルフィルタ処理方法、ディジタルフィルタ装置、記録媒体および音像定位装置
KR200447608Y1 (ko) 디에스피를 이용한 가라오케용 고음질 멀티채널 오디오 시스템
JP3978928B2 (ja) 楽音生成装置
JP3991475B2 (ja) 音声データ処理装置およびコンピュータシステム
JP3659002B2 (ja) 楽音データ処理装置およびコンピュータシステム
JPH04168492A (ja) 楽音再生装置
JP7159583B2 (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JP4361628B2 (ja) オーディオ信号生成装置
JP3714397B2 (ja) 波形データ処理装置及び波形データ処理方法
JP3363667B2 (ja) カラオケ装置
JP3855710B2 (ja) 音波形データ用ディジタル信号処理装置
JP3924909B2 (ja) 電子演奏装置
JPH02135564A (ja) データ処理装置
JP2950456B2 (ja) 電子楽器
JP2000122668A (ja) デジタル音声データ処理装置およびコンピュータシステム
JP2956552B2 (ja) 楽音発生方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070423

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070716

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees