JP4120979B2 - 波形再生装置 - Google Patents
波形再生装置 Download PDFInfo
- Publication number
- JP4120979B2 JP4120979B2 JP2001213754A JP2001213754A JP4120979B2 JP 4120979 B2 JP4120979 B2 JP 4120979B2 JP 2001213754 A JP2001213754 A JP 2001213754A JP 2001213754 A JP2001213754 A JP 2001213754A JP 4120979 B2 JP4120979 B2 JP 4120979B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- waveform
- reproduction
- memory
- transfer
- 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
Description
【発明の属する技術分野】
この発明は、波形サンプルデータからオーディオ信号を再生する波形再生装置に関する。
【0002】
【従来の技術】
パーソナルコンピュータなどにおいては、アナログデジタル変換器(A/D変換器、ADC)、デジタルアナログ変換器(D/A変換器、DAC)等を備えた符号化復号化回路(CODEC)と該CODECを駆動するためのCODECドライバソフトウエアとを備えることにより、波形サンプルデータ(WAVEデータ)のモノラルあるいはステレオの記録再生を行なうことができるようになされている。
従来のこのようなCODECとCODECドライバによるWAVEデータの再生方式においては、各サンプリング周期(DACサイクル、例えば、44.1KHz)毎にバスを占有して、1サンプルのWAVEデータをCODECに転送することが行なわれている。また、録音を行うときにも同様に、各サンプリング周期毎に1波形サンプルデータの転送が行われている。
【0003】
【発明が解決しようとする課題】
上述した従来の波形サンプルデータの録音再生方法においては、各サンプリング周期毎にバスを使用して波形サンプルデータを転送しているため、バスの使用権の切り替えが頻繁に発生し、システム全体の動作効率が低下する原因となっていた。
また、録音再生することのできるチャンネル数も、モノラルまたはLとRがインターリーブされたステレオに限られており、独立した複数チャンネル(複数トラック)の録音再生を行うことができなかった。かりに、独立した2チャンネルの録音再生を行う場合には、2個の独立したDMAチャンネルを必要としていた。
【0004】
そこで、本発明は、波形サンプルデータを再生する場合に、システムの動作効率を低下させることなく波形サンプルデータを再生することのできる波形再生装置を提供することを目的としている。
また、複数トラックを独立して同時に再生することのできる波形再生装置を提供することを目的としている。
【0005】
【課題を解決するための手段】
上記目的を達成するために、本発明の波形再生装置は、装置全体の制御を行う中央処理装置と、シーケンスデータに基づく波形再生に使用される複数の波形データを記憶する第1のメモリと、複数の波形データを記憶することのできる第2のメモリと、前記第2のメモリから波形データを読み出し、該読み出した波形データを再生する波形出力回路とを有する波形再生装置であって、前記シーケンスデータは、各波形データに対する再生命令と該再生命令を発するタイミングを示す時間データとを含んでおり、前記中央処理装置は、シーケンス再生指示に応答して、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて最初に再生される所定数の波形データを前記第1のメモリから読み出して前記第2のメモリに記憶するとともに、該記憶された所定数の波形データの前記第2のメモリにおける記憶アドレスとその再生開始のタイミングとを、各該波形データに対する再生命令と該再生命令に対応する時間データに基づいて前記波形出力回路に設定し、前記波形出力回路は、設定された各記憶アドレスの波形データを前記第2のメモリから読み出して、対応する再生開始のタイミングからその再生を開始し、前記中央処理装置は、前記第2のメモリに記憶された波形データ中のいずれかの波形データについて前記波形出力回路による読み出しが終了したとき、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて次に再生される波形データを前記第1のメモリから読み出して前記第2のメモリに記憶するとともに、該記憶された波形データの第2のメモリにおける記憶アドレスとその再生開始のタイミングとを、該波形データに対する再生命令と該再生命令に対応する時間データに基づいて前記波形出力回路に設定するようになされているものである。
これにより、波形データの再生終了時に次の波形の読み込みを開始するようにしているため、メモリへの読み込みから再生タイミングまでに時間的な余裕ができ、安定な動作をさせることができる。また、波形読み込みのトリガを発生する処理が単純なものとなり、システムの動作効率を低下することなくシーケンスデータを再生することができる。
【0007】
また、本発明の他の波形再生装置は、装置全体の制御を行う中央処理装置と、シーケンスデータに基づく波形再生に使用される複数の波形データを記憶する第1のメモリと、複数の波形データを記憶することのできる第2のメモリと、複数チャンネルの各チャンネル毎に複数サンプルの波形データを記憶するバッファメモリと、サンプリング周期毎に複数チャンネルの波形データが入力されるディジタルオーディオ回路と、前記バッファメモリに所定量の空きが生じたときに、前記第2のメモリに記憶された波形データを所定の複数サンプルを単位として前記バッファメモリに転送する第1の転送回路と、前記バッファメモリに記憶された複数チャンネルの波形データを、各サンプリング周期ごとに1サンプルずつ読み出して前記ディジタルオーディオ回路に転送する第2の転送回路とを有する波形再生装置であって、前記シーケンスデータは、各波形データに対する再生命令と該再生命令を発するタイミングを示す時間データとを含んでおり、前記中央処理装置は、シーケンス再生指示に応答して、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて最初に再生される所定数の波形データを前記第1のメモリから読み出して前記第2のメモリに記憶し、前記第1の転送回路に対して該第2のメモリに記憶された前記所定数の波形データを前記バッファメモリへ転送することを指示するとともに、前記第2の転送回路に対して、前記バッファメモリから各波形データを読み出して前記ディジタルオーディオ回路に転送することを開始するタイミングを前記波形データに対する再生命令とそれに対応する前記時間データに基づいて設定し、前記第2のメモリに記憶された波形データ中のいずれかの波形データについて前記第1の転送回路による転送が終了したとき、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて次に再生される波形データを前記第1のメモリから読み出して前記第2のメモリに記憶し、前記第1の転送回路に対して該波形データを前記バッファメモリへ転送することを指示するとともに、前記第2の転送回路に対して、前記バッファメモリから各波形データを読み出して前記ディジタルオーディオ回路に転送することを開始するタイミングを前記波形データに対する再生命令とそれに対応する前記時間データに基づいて設定するようになされているものである。
これにより、順次再生が終了したところへ次の波形の再生を設定することができるため処理が単純となり、また、その処理が多少遅れても再生のタイミングには影響をおよぼすことがない。したがって、システムの動作効率を低下することなく、安定した動作を行う波形再生装置を提供することができる。
【0008】
さらにまた、前記シーケンスデータは前記ディジタルオーディオ回路の制御命令を含んでおり、前記ディジタルオーディオ回路は、制御命令に対応する前記時間データにより指示されるタイミングで該制御命令に基づいて制御されるようになされているものである。
これにより、ディジタルオーディオ回路において、再生される波形に対する音量、効果などの制御を再生される波形に同期したタイミングで行うことが可能となる。
【0009】
【発明の実施の形態】
図1は、本発明の波形再生装置の一実施の形態である波形録音再生装置の全体構成を示すブロック図である。この図において、10はこの波形再生装置全体の制御を行うための中央処理装置(CPU)、11は各種のプログラムや定数データなどを記憶するROM、12は実行するプログラムやデータが読み込まれるとともに各種バッファ領域やワークエリアとして使用される第1のランダムアクセスメモリ(RAM)、13は各種の情報を表示する表示装置、14は該表示装置13をローカルバス18に接続するためのインターフェース回路、15はユーザからの各種の指示などを入力するためのキーボード、16は該キーボード15をローカルバス18に接続するためのインターフェース回路、17は時間を計測したりCPU10に対してタイマ割込をかけるタイマである。これらCPU10、ROM11、第1のRAM12、インターフェース回路14、16およびタイマ17は、ローカルバス18に接続されている。
【0010】
ここで、前記第1のRAM12上には、複数チャンネルの波形サンプルデータが記憶されるバッファ領域(PCバッファ)が確保される。このPCバッファは、前記CPUのメモリアドレス空間上の任意の位置に任意の大きさで設定することができる。なお、前記波形サンプルデータは、1ワードが32ビットあるいは16ビット等いずれのタイプのデータであってもよいが、ここでは、1ワードが16ビットの波形サンプルデータであるものとして説明する。
【0011】
20はPCI(Peripheral Component Interconnect)バスであり、19は前記ローカルバス18とPCIバス20とを接続するためのHOST−PCIブリッジ回路である。なお、PCIバスは64ビットに拡張することができるが、ここでは32ビットのデータバス幅をもつものとする。PCIバス20は、1つの32ビットのデータバスをアドレス用およびデータ用に時分割で使用する。例えばデータ転送時には、まず、アドレスを該データバスに送出して転送先を指定し、次に同バスを使用してデータ転送を実行する。
【0012】
21は第2のランダムアクセスメモリ(RAM)、22は該第2のRAM21を前記PCIバス20に接続するためのインターフェース回路である。また、23は各種の波形サンプルデータやプログラムなどが格納されるハードディスク装置、24は各種の波形サンプルデータやプログラムなどを記録したCD−ROMを駆動するCD−ROM装置、25はハードディスク装置23やCD−ROM装置24などの外部記憶装置を接続するためのSCSI(small computer system interface)インターフェース回路である。さらに、27はネットワークインターフェース回路であり、電話回線や専用線等を介して外部のネットワーク26と接続するための回路である。なお、この図には示されていないが、MIDI信号を入出力するためのMIDIインターフェース等を設けても良い。
【0013】
30は、前記第1のRAM12中のPCバッファに記憶されている波形サンプルデータを読み出し、該読み出された波形サンプルデータに対して必要に応じてエフェクト付与などの加工を施してサウンドシステム29に出力し、また、オーディオ入力端子からマイクロフォン28等を介して入力されるオーディオ信号を波形サンプルデータに変換して、前記第1のRAM12中のPCバッファに格納する波形入出力回路(サウンド入出力ボード)であり、28は前記サウンド入出力ボード30に設けられたサウンド入力端子に接続されたマイクロフォン、29は前記サウンド入出力ボード30から出力されるオーディオ信号を増幅して放音するサウンドシステムである。なお、このサウンド入出力ボード30の内部構成については後述する。
【0014】
図示するように、前記PCIバス20には、前記HOST−PCIブリッジ回路19、インターフェース回路22、ネットワークインターフェース回路27、SCSIインターフェース回路25およびサウンド入出力ボード30が接続されている。ここで、前記HOST−PCIブリッジ回路19、ネットワークインターフェース回路27、SCSIインターフェース回路25およびサウンド入出力ボード30は、いずれもバス・マスターとなることができ、例えば前記HOST−PCIブリッジ回路19に設けられているバスアービターに対してバス使用要求を出して、バス使用権を獲得した後にPCIバス20を使用して当該データ転送を実行することができる。
【0015】
なお、バス構成は、前記図1に示した例に限られることはない。例えば、図1におけるローカルバスを、CPU専用のバスと周辺I/O等を接続するためのローカルPCIバスの2つのバスにより構成するなど、様々なバス構成とすることが出来る。
また、図1においては、前記ハードディスク装置23およびCD−ROM装置24はPCIバス20に接続されているものとしたが、前記ローカルバス18にSCSIインターフェース回路を接続し、これにハードディスク装置やCD−ROM装置あるいはDVD装置などの外部記憶装置を接続するようにしても良い。
【0016】
次に、前記サウンド入出力ボード30の内部構成について説明する。図2は、前記サウンド入出力ボード30の一構成例を示すブロック図である。この図において、31は前記PCIバス20に接続された第1の転送回路、32はバッファメモリとして使用される第3のランダムアクセスメモリ(RAM3)であり、この第3のRAM32には再生バッファ(Pバッファ:Play Buffer)と録音バッファ(Rバッファ:Record Buffer)の2種類のバッファが設けられており、1チャンネル当たり例えば1Kワード(=1024ワード)の容量となされている。この例においては、再生16チャンネル、録音4チャンネルの合計20チャンネルとされており、各チャンネル毎に1Kワードの波形サンプルデータを格納することができるようになされている。また、33は前記PバッファおよびRバッファとミキサ34との間のデータ転送を実行する第2の転送回路である。後述するように、RAM32へのアクセスはサンプリング周期(DACサイクル)の2分の1の期間を単位として時分割多重化されており、各DACサイクルの前半を第2の転送回路33が、また、後半を第1の転送回路31がそれぞれ使用してアクセスを行っている。
【0017】
34はミキサ、35は信号処理プロセッサ(DSP:Digital Signal Processor)、36はA/D変換器、37はD/A変換器である。ミキサ34は例えば入力36チャンネル、出力24チャンネルの構成とされており、前記マイクロフォン28から入力され前記A/D変換器36においてデジタルデータに変換された波形サンプルデータ、前記第2の転送回路33により転送される前記Pバッファからの波形サンプルデータおよび前記DSP35において処理された波形サンプルデータを入力とし、前記CPU10から供給される制御データに基づいてミキシング動作を行って、前記第2の転送回路33を介して前記Rバッファ、前記DSP35あるいは前記D/A変換器37に出力する。
【0018】
DSP35は、前記ミキサ34から入力される16チャンネルの波形サンプルに対し所定のエフェクト付加や補間演算等の各種の処理を実行し、処理結果の16チャンネルの波形サンプルを前記ミキサ34に出力する。なお、このDSP35は1DACサイクル期間に複数種類の信号処理、例えば補間演算、各種のエフェクト処理等を実行することのできるマルチ(プログラム)DSPとされている。
A/D変換器36は前記マイクロフォン28から入力されるオーディオ信号(音声信号あるいは楽音信号)を所定のサンプリングレート(DACサイクル、例えば44.1KHz)でサンプリングして所定ビット数(ここでは16ビット)の波形サンプルデータに変換して、前記ミキサ34に出力する。ここでは、4チャンネルの波形サンプルを入出力することができるように構成されている。
D/A変換器37は、前記ミキサ34から出力される4チャンネルの波形サンプルデータをアナログ信号に変換して前記サウンドシステム29に出力する。
【0019】
前記ミキサ34では、サンプリング周期毎に、第2の転送回路から16チャンネル、マルチDSP35から16チャンネル、A/D変換器36から4チャンネルの計36チャンネルの波形データを入力し、制御データに含まれる各入力/出力毎に独立して設定されたレベルデータに基づいて20通りのミキシング処理を行い、そのミキシング結果を第2の転送回路に4チャンネル、マルチDSP35に16チャンネル、D/A変換器37に4チャンネルの計24チャンネルの波形データとしてそれぞれ出力する。
【0020】
ここで、第2の転送回路33、マルチDSP35、A/D変換器36、D/A変換器37をどのように接続するかを、前記レベルデータにより設定することができる。例えば、外部マイクロフォン28から入力する波形データをPCバッファに録音したいときは、各DACサイクル毎に、A/D変換器36から入力する波形データをミキサ34で音量制御してマルチDSP35に送り、マルチDSP35でイコライザ処理やコンプレッサ処理を行った波形データを再びミキサ34に入力して音量制御した後に、ミキサ34内の転送回路2への送出レジスタ(図示せず)に記憶させる。また、録音時の結線は、録音用の4チャンネルのそれぞれについて独立して設定できる。
【0021】
また、PCバッファの波形データを再生したいときには、各DACサイクル毎に、転送回路2からミキサ34内の入力レジスタ(図示せず)に出力される波形データをミキサ34で音量制御してマルチDSP35に送り、マルチDSP35でコーラス効果や残響効果のエフェクト処理を行った波形を再びミキサ34に入力して、音量制御した後にD/A変換器37に出力する。再生時の結線は、再生用の16チャンネルのそれぞれについて独立に設定することができる。
さらに他の例として、A/D変換器から入力する波形データをマルチDSP35に送ってエフェクトを付与してD/A変換器37に出力するよう設定したり、再生チャンネルで再生したPCバッファの波形データを、マルチDSPでイコライザ処理等の処理を施した後、録音チャンネルで別領域のPCバッファに記憶するよう設定することもできる。
【0022】
なお、上述したようにサンプリング周期で処理を行う、ミキサ34、DSP35、D/A変換器37等をディジタルオーディオ回路とよぶ。これらディジタルオーディオ回路に入力された波形データは、最終的にはアナログ波形に変換されて、さらにスピーカ等で音に変換されることとなる。
【0023】
38は例えば32ビット構成とされたカウンタであり、前記DACサイクルに等しい44.1KHzのパルスを計数するように構成されている。したがって、このカウンタ38はDACサイクルを単位として計数した時刻データを出力する。39は前記カウンタ38から出力される時刻データおよび後述するレジスタ40に格納されている各種の指定時刻データとの比較結果に基づいて前記第1の転送回路31あるいは第2の転送回路33の動作を制御するタイミング発生部である。
また、40はレジスタであり、このサウンド入出力ボード30における前記第1の転送回路31、第2の転送回路33、カウンタ38、タイミング発生部39、DSP35、A/D変換器36およびD/A変換器37等に対する各種制御に必要な各種の制御データあるいは変数が前記CPU10により設定されるようになされている。なお、このレジスタ40に設定される各データの詳細については後述する。
【0024】
さて、このように構成された波形録音再生装置において、波形再生時には、前記第1のRAM12上のPCバッファに格納されている各チャンネルの波形サンプルデータを前記第1の転送回路31の制御のもとに前記サウンド入出力ボード30内の前記第3のRAM32のPバッファに32サンプル単位で順次転送し、前記第2の転送回路33の制御のもとに該第3のRAM32から各発音チャンネルにつき各DACサイクル毎に1波形サンプルデータずつ前記ミキサ34(及びマルチDSP35)を介して前記D/A変換器37に出力して、前記サウンドシステム29から当該オーディオ信号を出力する。また、波形録音時には、前記マイクロフォン28から入力され前記A/D変換器36において波形サンプルデータに変換されて(マルチDSP35を介して)前記ミキサ34から出力されるオーディオ信号を前記第2の転送回路33の制御のもとに前記第3のRAM32中のRバッファに格納し、該第3のRAM中のRバッファ中に格納された波形サンプルデータを前記第1の転送回路31の制御のもとに、前記第1のRAM12中のPCバッファに32サンプル単位で転送する。
【0025】
この様子を図3を参照して説明する。図3は、前記第1のRAM12に設けられたPCバッファ、前記第3のRAM32に設けられたPバッファあるいはRバッファおよび前記ミキサ34の間を波形サンプルデータが転送される様子を説明するための図であり、(a)は再生時のデータの流れ、(b)は録音時のデータの流れを示す図である。前述したように、この実施の形態においては、再生が16チャンネル、録音が4チャンネルとされており、図示するようにチャンネル番号0〜15までが再生チャンネル、チャンネル番号16〜19までが録音チャンネルとされている。前記Pバッファおよび前記Rバッファは各再生チャンネル、各録音チャンネルに対応して互いに独立して設けられており、それぞれ波形データを記憶するリングバッファとし循環的に使用される。
【0026】
図3の(a)は、前記チャンネル番号0〜15の再生データの流れを示すもので、ここには1つのチャンネルxについてのみ図示してある。図示するように、前記第1のRAM12中に設けられた第xチャンネル(x=0,1,…,15)に対応するPCバッファ領域は開始アドレスSA[x]と終了アドレスEA[x]とにより規定されており、TP[x]は、該PCバッファ領域の読み出し位置を示す転送ポインタである。
【0027】
前記サウンド入出力ボード30は、1DACサイクルを2つに分割し、1DACサイクルの前半の期間にPCバッファからの波形サンプルデータの読み出しが必要であるか否かを判定する。そして、波形サンプルデータの読み出しが必要な場合には、同DACサイクルの後半の期間に、バスアービターにPCIバス20の使用要求を出力し、バスの使用権を獲得して、RAM12をアクセスし、転送ポインタTP[x]により指定されたアドレスから連続する32ワードのデータを読み出し、Pバッファにバースト転送する。このとき、前記転送ポインタTP[x]は、1バストランザクション毎に16アドレス(32ワード分)だけ増加される。また、前記PCバッファは32ビットアドレス境界でアクセスされることとなる。ここで、バースト転送とは、最初にアドレスをデータバスに1回だけ出力し、次に複数のデータを連続的に転送する転送方法である。バースト転送では、1データ毎にアドレスを指定する必要がないため、メモリ上の指定したアドレスの位置から連続する複数アドレス分のデータをまとめて高速転送することができる。例えば、PCIバスの動作クロックを33MHzとすると、1DACサイクルで32サンプルのバースト転送を行う場合には、バスの転送能力の0.1%程度が使用される。一方、32サンプルをバースト転送を行わずに転送した場合には、その約4倍弱の転送時間を要する。
【0028】
また、前記開始アドレスSA[x]と終了アドレスEA[x]の間には割り込み要求アドレスIA[x]を設定することができるようになされており、前記転送ポインタTP[x]がこの割り込み要求アドレスIA[x]に達したときに、前記CPU10に対して割り込み要求を発生するようになされている。
したがって、この割り込み要求アドレスIA[x]=終了アドレスEA[x]に設定しておけば、CPUは、当該割り込みにより当該PCバッファのデータの転送完了を検出することができ、その時点でそのPCバッファを開放してRAM12上の他の波形データの再生に使用できるようにすることもできるし、あるいは、前記転送ポインタTP[x]=SA[x]とセットして当該PCバッファに格納されている波形データを繰り返し再生させることもできる。
【0029】
また、以下に示す方法を用いれば、1つの再生チャンネルxの小容量のPCバッファ(例えば、4K〜64Kワード)を使用して、前記ハードディスク装置23あるいは前記CD−ROM装置24等の外部記憶装置に記憶されている大容量の波形データ(例えば数百K〜数十Mワード)を、順次読み出しながらダイレクト再生することができる。
【0030】
まず、前記外部記憶装置に記憶された波形データの1つが再生指示されると、CPUは、その先頭部分の波形データをPCバッファ[x]に転送する。そして、前記IA[x]を前記SA[x]と前記EA[x]の中間の値に設定して同PCバッファの再生を開始する。やがてTP[x]がIA[x]に達して割り込みが発生したら、CPUは、IA[x]=EA[x]に設定するとともに、前記外部記憶装置から続きの波形データを読み出し、同PCバッファ[x]の前記開始アドレスSA[x]からその容量の1/2だけ格納する。さらに、TP[x]がIA[x]に達して割り込みが発生したら、CPUは、TP[x]=SA[x]かつIA[x]に前記中間の値を設定するとともに、前記外部記憶装置から続きの波形データを読み出し、同PCバッファ[x]の後半の1/2に格納する。以後、上述した前記中間の値に設定されたIA[x]での割り込みの処理と、EA[x]に設定されたIA[x]での割り込みの処理を交互に繰り返して、前記外部記憶装置の指定された波形データの再生を最後まで行う。
なお、CPUは、上述したPCバッファ[x]の半分の量の波形データの転送を、CPUの内蔵するダイレクトメモリアクセスコントローラDMACで行ってもよいし、またその際にバースト転送を使用してもよい。
【0031】
さて、前記第1のRAM12上のPCバッファの転送ポインタTP[x]から読み出され、バースト転送された32ワードの波形サンプルデータは、前記第3のRAM32上のxチャンネルのPバッファの転送書き込みポインタTWP[x]で示されるアドレスから順に書き込まれる。前述のように、このPバッファは例えば各チャンネル1Kワードの大きさとされている。バースト転送毎に、TWP[x]は32アドレスずつ進む。
このPバッファのデータの読み出しは、前記第2の転送回路33によりDACサイクルの前半に実行される。第2の転送回路33は、前記Pバッファのオーディオ再生ポインタAPP[x]により示されるアドレスから1DACサイクル毎に1サンプルの波形サンプルデータを読み出し、前記ミキサ34に転送する。なお、後述するように、この読み出しを開始/終了するタイミングは、前記タイミング発生部39により制御される。
【0032】
一方、前記図3の(b)は録音チャンネルにおけるデータの流れを示す図である。前記マイクロフォン28から入力され、前記A/D変換器36においてデジタルデータに変換されたオーディオデータは、必要に応じて前記DSP35において所定の信号処理を施された後、前記ミキサ34から出力される。前記第2の転送回路33は前記ミキサ34からDACサイクル毎に出力される波形サンプルデータをDACサイクルの前半に前記第3のRAM32中に設けられたxチャンネル(x=16,…,19)のRバッファのオーディオ録音ポインタARP[x]により指定されるアドレスに書き込む。このオーディオ録音ポインタはDACサイクル毎に順次インクリメントされる。なお、このRバッファのサイズも、前記Pバッファと同様に各チャンネル1Kワードとされている。
【0033】
このRバッファに波形サンプルデータが所定量書き込まれると、DACサイクルの後半において、前記第1の転送回路31がバス・マスターとなり、この波形サンプルデータを前記第1RAM中のPCバッファに32ワードずつバースト転送により書き込む。このとき、前記Rバッファの転送読み出しポインタTRP[x]を先頭アドレスとする32ワードの波形サンプルデータが順次読み出され、前記第1のRAM12上のPCバッファの転送ポインタTP[x]から順に書き込みが行われる。そして、転送ポインタTP[x]は、1バストランザクション毎に16アドレス(32ワード分)ずつ増加される。
【0034】
なお、この録音の場合にも、前述の場合と同様に割り込み要求アドレスIA[x]を設定することにより、録音の終わったPCバッファを順次開放すること、あるいは、前記PCバッファを小容量のダブルバッファとして使用して、入力する大容量の波形データをダイレクトにハードディスク装置等に録音することができる。
【0035】
このように、本発明においては、バースト転送機能を有するPCIバス20に波形再生回路となるサウンド入出力ボード30が接続されており、前記第1の転送回路31が、PCバッファからの波形サンプルの読み出しが必要となったときに、PCIバス20の使用権を獲得して当該波形サンプルを前記サウンド入出力ボード30上に設けられた当該チャンネルのバッファメモリに例えば32サンプルずつバースト転送している。したがって、波形データの転送によるシステム全体の動作効率の低下を防止することが可能となり、また、複数チャンネルの波形データを同時に安定して再生することが可能となる。
【0036】
次に、このように構成された波形録音再生装置の動作について、フローチャートを参照しながら詳細に説明する。
図4は、前記CPU10により実行されるメインルーチンの動作を示すフローチャートである。
まず、前記CPU10は、ステップS11において、各領域の確保や、変数およびフラグの初期化等の初期設定処理を実行する。次に、何らかの起動要因の発生を待つ(ステップS12およびS13)。そして、起動要因が発生すると、ステップS14に進み、その起動要因が何であるかを判定する。
【0037】
起動要因が、スイッチあるいはGUI画面上の所定の領域に対するマウスのクリックなどのスイッチ操作であるときには、ステップS15に進み、該操作されたスイッチに対応する処理を行う。ここで、波形再生に対応するスイッチが操作されたときは、後述する波形再生処理が行われることとなる。
また、前記起動要因が割り込みであるときには、ステップS16に進み、当該割り込みに対応する処理が行われる。この割り込み処理については、後述する。
さらに、前記起動要因がスイッチ操作でもなく、割り込みでもなく、終了指示でもないその他の処理であるときには、ステップS17に進み、当該起動要因に対応する処理が行われる。
さらにまた、前記起動要因が終了指示であるときには、ステップS18に進み、メモリ領域の開放等の終了処理を実行する。
【0038】
次に、本発明において実行される波形録音再生処理について説明するが、その前に、前記図2に示した前記レジスタ40中に格納されている各フラグおよび変数について一通り説明する。
RFはランフラグ(Run Flag)であり、このランフラグRFが「1」にセットされているときに、前記カウンタ38はカウントを開始し、RF=0のときにカウントを停止するようになされている。
また、前述のように、SA[x](Start Address)は第xチャンネルのPCバッファの先頭アドレス、EA[x](End Address)は第xチャンネルのPCバッファの最終アドレス、IA[x](IRQ Address)は第xチャンネルのPCバッファの割り込み要求アドレス、TP[x](Transfer Pointer)は第xチャンネルのPCバッファの読み出し位置を示す転送ポインタである。
SUS[x](Suspend Flag)は第1の転送回路31によるそのチャンネルの転送が一時中断されていることを示すサスペンドフラグである。
【0039】
また、PSC[x](Playback Start Count)は第xチャンネルのDACサイクルを単位とする再生開始時刻を示す再生開始カウント値、PEC[x](Playback End Count)は第xチャンネルのDACサイクルを単位とする再生停止時刻を示す再生終了カウント値、TWP[x](Transfer Write Pointer)は第xチャンネルのPバッファの書込位置を示す転送書き込みポインタ、TWF[x](Transfer Write Flag)は第xチャンネルのPCバッファからPバッファへの転送の開始/終了を指示する転送指示フラグ、APP[x](Audio Playback Pointer)は第xチャンネルのPバッファの読み出し位置を示す再生ポインタ、APF[x](Audio Playback Flag)は第xチャンネルの波形再生開始/終了を指示する再生指示フラグである。
【0040】
さらに、RSC[x](Recording Start Count)は第xチャンネルのDACサイクルを単位とする録音開始時刻を指定する録音開始カウント値、REC[x](Recording End Count)は第xチャンネルのDACサイクルを単位とする録音停止時刻を指定する録音終了カウント値、TRP[x](Transfer Read Pointer)は第xチャンネルのRバッファの読み出し位置を示す転送読み出しポインタ、TRF[x](Transfer Read Flag)は第xチャンネルのRバッファからPCバッファへの転送の開始/終了を指示する転送指示フラグ、ARP[x](Audio Rec Pointer)は第xチャンネルのRバッファの録音ポインタ、ARF[x](Audio Rec Flag)は第xチャンネルの録音の開始/終了を指示する録音指示フラグである。さらにまた、RPC(Recording Pre Count)は、プリトリガー録音の場合に、何サンプル前から録音を開始するかを指示する録音プリカウント値、すなわちTRF[x]=1となった時のARP[x]の値より、何サンプル前から転送を開始するかを規定するデータであり、TRF[x]=1がセットされたタイミングにTRP[x]=ARP[x]−RPCを転送開始アドレスとして第1の転送回路がPCバッファへの転送を開始する。
【0041】
録音を行いたい場合、操作者は、まず録音準備の操作を行い、その後に録音開始の操作を行う。CPU10は、前記録音準備の動作に応じて録音指示フラグARF[x]を1にセットし、その後の前記録音開始の指示に応じてTRF[x]を1にセットする。ARF[x]のセットに応じて、まず、第2の転送回路33による前記ミキサ34から出力される波形データのRバッファへの書込みがスタートし、その後にTRF[x]のセットに応じて、第1の転送回路によるRバッファの波形データのPCバッファへの転送がスタートする。入力波形データのRバッファへの書き込みは前記TRF[x]を1にセットするタイミングに先立って行われているので、上記転送開始アドレスによって、録音開始の指示時のサンプルよりRPCの示すサンプル数だけ前のサンプルから波形データをPCバッファに転送することができる。
【0042】
このように、本実施の形態によれば、波形データの録音バッファからPCバッファへの転送を、任意のタイミングで開始することができる。しかも、録音開始の指示がなされるまで入力波形はRバッファに書き込まれるだけであるので、指示待ちの状態でPCIバス20に負担を掛けることはない。なお、操作者が録音開始の指示を行うかわりに、入力波形のレベルに応じてCPU10が録音開始の指示を発生するようにしても良い。
【0043】
さて、この波形録音再生装置における波形再生処理には、(1)前記第1のRAM12上に格納されている波形サンプルデータを再生する場合、(2)シーケンス再生、すなわち、各チャンネルの波形サンプルデータを再生する時間等を記述したシーケンスデータに基づいて波形再生を行う場合、(3)上述したようなハードディスクに記憶されている波形をダイレクトに再生する場合等各種の場合がある。
【0044】
はじめに、前記(1)の第1のRAM12上に格納されている波形サンプルデータ(WAVEデータ)を再生する場合について説明する。
図5の(a)は、前記(1)のWAVEデータの再生指示が行われたときに前記CPU10により実行される動作を説明するためのフローチャートである。この処理は、前記図4においてはステップS15のスイッチ処理の中に含まれている。
【0045】
操作者が波形再生を指示するスイッチの操作あるいはGUI画面上のボタンに対するマウス等のクリックにより波形再生指示を行うと、この図5の(a)の処理が開始される。まず、ステップS21において、当該再生指示に含まれている前記第1のRAM12上に格納されている再生すべき波形データを指示するWAVE指示データを受け取る。
【0046】
次に、ステップS22に進み、前記ステップS21において同時に再生することを指示されたWAVEデータに応じて、発音チャンネルの割り当てを行う。ここでは、前記発音チャンネルのうち現在発音されていないチャンネル、すなわち、第0チャンネル〜第15チャンネルのうちで、前記転送指示フラグTWF[x]および再生指示フラグAPF[x]がともに「0」であるチャンネルの中から発音すべきチャンネルxを指定する。また、TWF[x]とAPF[x]がともに「0」であるチャンネルが無い場合には、再生用の16個のチャンネルのうちの発音の一番短いチャンネルや音量の一番小さいチャンネルを消音して、そのチャンネルを発音チャンネルxとして指定する。
【0047】
続いて、ステップS23に進み、前記WAVE指示データに含まれている当該WAVEデータに対応する前記PCバッファの先頭アドレスおよび最終アドレスを、指定した発音チャンネルxの先頭アドレスSA[x]および最終アドレスEA[x]として、前記レジスタ40に設定する。
次に、ステップS24に進み、前記レジスタ40の当該発音チャンネルxに対応する転送指示フラグTWF[x]を「1」にセットする。このとき、当該チャンネルxの転送書き込みポインタTWP[x]および再生ポインタAPP[x]は初期化される。なお、このTWF[x]を「1」にセットすることにより、後述するように、指定されたWAVEデータの第1の転送回路31による前記Pバッファへの転送(プリロード)が開始されることとなる。
【0048】
続いて、ステップS25に進み、当該発音チャンネルに対応するDACサイクルを単位とする再生開始時刻を示す再生スタートカウント値PSC[x]およびDACサイクルを単位とする再生停止時刻を示す再生終了カウント値PEC[x]を前記レジスタ40に設定する。例えば、直ちに再生を開始させる場合には、前記タイマ17における現在時刻データをもとにDACサイクルを単位とする現在時刻データを算出し、その値を前記再生スタートカウント値PSC[x]として設定する。また、前記再生終了カウント値PEC[x]としては、当該波形再生指示に再生終了時刻情報が含まれているときにはそれに対応する値を設定し、また、当該WAVEデータを一通り再生する場合にはその波形サンプル数を前記再生スタートカウント値PSC[x]に加算した値を設定する。ここでは、ランフラグがRF=1に設定されており、カウンタ38が動作中であることとする。
【0049】
以上が、波形再生指示がなされたときに前記CPU10において実行される処理である。この処理において、上述したように、割り当てられた発音チャンネルにそれぞれ対応するSA[x]、EA[x]、PSC[x]およびPEC[x]が設定され、また、PCバッファから前記Pバッファへの転送の開始を指示するTWF[x]が「1」にセットされることとなる。実際の再生処理は、次に説明する第1の転送回路31および第2の転送回路33による処理により実行される。
【0050】
図5の(b)は、前記第1の転送回路31において実行される転送準備処理のフローチャートである。この転送準備処理は1DACサイクルを2つに分割した前半部分において1回どおり実行される。
まず、ステップS31において、前記転送指示フラグTWF[x]あるいは前記転送指示フラグTRF[x]について、「1」にセットされているものがあるか否かを判定する。ここで、全チャンネルについてフラグTWF[x]およびTRF[x]がセットされていないときには、転送は指示されていないのであるから、この転送準備処理は終了される(S31の判定結果がYESのとき)。
一方、フラグTWF[x]あるいはTRF[x]のいずれかが「1」にセットされている場合、すなわち、転送が指示されているチャンネルがあるときには、ステップS32に進む。
【0051】
ステップS32において、TWF[x]あるいはTRF[x]が「1」にセットされているチャンネルについて、サスペンドフラグSUS[x]が「1」にセットされており、かつ、転送すべきデータが128ワード以上あるチャンネルをサーチする。ここで、サスペンドフラグSUS[x]は、キャッチアップ防止のために当該チャンネルのWAVEデータの転送を一時中断するためのフラグであり、当該チャンネルが発音チャンネルであるときにはWAVEデータが書き込まれる前記Pバッファの空き容量が一度のバースト転送により転送されるデータ量(この実施の形態においては32ワード)よりも少なくなったときに、また、当該チャンネルが録音チャンネルであるときには前記Rバッファに貯えられている波形サンプルが32ワードよりも少なくなったときにセットされる。すなわち、このSUS[x]フラグが「1」にセットされているときにはそのチャンネルの転送は中断されている。
【0052】
SUS[x]フラグが「1」にセットされており、転送すべきデータが128ワード以上あるチャンネルが見つかったときは、ステップS34において、このチャンネルのSUS[x]フラグを「0」にリセットする。ここで、「転送すべきデータ」は、当該チャンネルが発音チャンネルであるときには前記Pバッファの空き容量を指し、当該チャンネルが録音チャンネルであるときには前記Rバッファに貯えられた波形サンプルの量を指す。
このように、前記ステップS32〜S34により、SUS[x]フラグが「1」にセットされているチャンネルのうちの転送すべきデータが128ワード以上あるチャンネルについて、SUS[x]フラグを「0」にリセットして、その転送の中断状態を解除する処理が行われている。
【0053】
続いて、ステップS35に進み、前記フラグTWF[x]あるいはTRF[x]が「1」にセットされており、かつ、SUS[x]フラグが「0」であるチャンネルについて、その転送すべきデータが一番多いチャンネルをサーチし、そのチャンネルの番号xを今回の転送処理において転送対象となるチャンネルの番号を指定するレジスタiにセットする。
以上が前記第1の転送回路31において実行される転送準備処理のフローチャートである。すなわち、DACサイクルの前半部分において実行される転送準備処理において、転送を行うチャンネルが決定され、レジスタiにそのチャンネルの番号がセットされる。
【0054】
なお、上記ステップS35においては、転送すべきデータが最も多いチャンネルを次の転送処理の対象チャンネルとしているが、これ以外の方法により転送を行うチャンネルを決定することもできる。たとえば、フラグTWF[x]あるいはTRF[x]が「1」であり、かつ、SUS[x]フラグが「0」であるチャンネルを順に転送対象チャンネルとして、前記レジスタiにセットするようにしてもよい。ただし、第2の転送回路33にチャンネル別のアドレスカウンタや補間回路を付加してサンプリングレートが異なる波形サンプルを同時に録音再生できるように構成した場合には、サンプリングレートに応じて転送すべきデータの変化速度が異なるため、このような場合には、前述した転送すべきデータを参照して転送を実行するチャンネルを決定する方法の方が望ましい。
【0055】
次に、前記第1の転送回路31において実行される転送処理について、図5の(c)に示すフローチャートを参照して説明する。この転送処理は1DACサイクルを2つに分割した後半部分において実行される。
この転送処理においては、まず、ステップS41において、転送すべきチャンネルの有無が調査される。これは、前記レジスタiに有意のデータがセットされているか否かにより判定される。この判定の結果、チャンネル番号がセットされていないときには、転送すべきチャンネルがないので、この転送処理は終了される。
【0056】
前記レジスタiに前記転送準備処理においてチャンネル番号が書き込まれているときは、ステップS41の判定結果がNOとなり、ステップS42に進み、PCIバス20が獲得される。すなわち、前記第1の転送回路31は、バスアービタに対しPCIバスの使用権を要求し、その使用権を獲得する。
PCIバスの使用権を獲得した後、ステップS43に進み、チャンネルiの32サンプルのWAVEデータの転送を行う。すなわち、前記第1の転送回路31がバス・マスターとなり、当該チャンネルiが発音チャンネルの時は、前記第1のRAM12上の当該発音チャンネルiに対応するPCバッファの転送ポインタTP[i]の示す記憶位置から32サンプル分のWAVEデータを読み出し、バースト転送モードで前記第3のRAM32のiチャンネルに対応するPバッファのポインタTWP[i]で示される記憶位置に順次格納する。また、当該チャンネルが録音チャンネルのときは、前記第3のRAM32のiチャンネルに対応するRバッファの転送読み出しポインタTRP[x]から32サンプルの波形データを読み出し、バースト転送モードで前記PCバッファの転送ポインタTP[i]の示す記憶位置から順次格納する。
【0057】
ステップS43では前記バースト転送の後、転送に使用した転送ポインタTP[i]を16アドレス(32サンプルに対応)進めるとともに、転送に使用した転送書き込みポインタTWP[i]ないし転送読み出しポインタTRP[i]を32アドレス進める。また、ポインタTWP[i]ないしTRP[i]がそれぞれ対応するPバッファないしRバッファの最終アドレスまで進行した場合には、第1の転送回路31は、該ポインタTWP[i]ないしTRP[i]を対応するPバッファないしRバッファの先頭アドレスに戻すように制御する。
この転送が終了したら、ステップS44に進み、前記PCIバス20を開放する。
【0058】
次に、ステップS45に進み、当該チャンネル(iチャンネル)の転送すべきデータ量が32サンプル以下であるか否かを判定する。すなわち、このiチャンネルが発音チャンネルであるときは前記Pバッファの空き容量が32サンプル以下であるか否かを判定し、録音チャンネルであるときは前記Rバッファに貯えられているサンプルが32サンプル以下であるか否かについて判定する。この判定の結果がYESのときは、次に転送を行ったときにキャッチアップが発生するため、当該チャンネルに対応するサスペンドフラグSUS[i]を「1」にセットし、このチャンネルの転送を中断させる(ステップS46)。
【0059】
以上が、第1の転送回路31により実行される1回の転送処理の内容である。
すなわち、1DACサイクル内に前記図5の(b)に示した転送準備処理と、前記図5の(c)に示した転送処理とが各1回ずつ実行されており、1DACサイクル当たり1つのチャンネルの32サンプルのWAVEデータの転送が実行される。このようにして、発音チャンネルについては、前記第3のRAM32上のPバッファに、そのPバッファの空き容量が32サンプル以下になるまで、各発音チャンネルのWAVEデータが順次格納されていく。また、録音チャンネルについては、前記Rバッファ上に貯えられた波形サンプルが、前記Rバッファの残りが32サンプル以下になるまで、前記PCバッファに順次転送される。
【0060】
上に説明した第1の転送回路31によるデータ転送では、図5(b)のステップS35で1つのチャンネル番号xだけをレジスタiに設定し、図5(c)のステップS43で設定された1つのチャンネルの転送を行うようになっていた。ステップS35で1チャンネルだけを設定するのではなく、転送すべきデータが2番目、3番目…に多いチャンネルも含めて、n個(例えば5個)のレジスタi1〜inに最大n個までのチャンネル番号を設定し、ステップS43で指定された最大n個のチャンネルのデータ転送をまとめて転送するようにしてもよい。その場合、特に転送の遅れたチャンネルがある場合にn個のレジスタの中の複数個に同一のチャンネルを登録し、そのチャンネルについて一度に64サンプル、96サンプル等のデータ転送をするようにしてもよい。
【0061】
次に、前記第2の転送回路33により実行される、発音チャンネルについての前記Pバッファから前記ミキサ34へのWAVEデータの転送処理および録音チャンネルについての前記ミキサ34から前記Rバッファへの転送処理について、図6の(a)に示すフローチャートを参照して説明する。この処理も各DACサイクルの前半期間に1回どおり実行される。
【0062】
前記第2の転送回路33は、まず、ステップS51において、チャンネル番号を格納するレジスタjに初期値「0」をセットする。前述したように、第0チャンネル〜第15チャンネルは発音チャンネルとされており、第16チャンネル〜第19チャンネルは録音チャンネルとされている。したがって、0≦j≦15のときは当該チャンネルは発音チャンネルであり、16≦j≦19のときは当該チャンネルは録音チャンネルである。
続いて、ステップS52において、レジスタjに設定されているチャンネルに対応する波形再生の開始/終了を指示する再生指示フラグAPF[j]が「1」にセットされているか否かを判定する。この再生指示フラグAPF[x]は、後述するタイミング発生処理において当該発音チャンネルに対応する発音開始時刻に「1」に設定され、発音終了時刻に「0」に設定されるフラグである。
【0063】
当該発音チャンネルに対応する再生指示フラグAPF[j]が「1」にセットされているときは、ステップS53において、その発音チャンネルjに対応するPバッファの再生ポインタAPP[j]を1つ進め、そのアドレスの波形サンプルデータ(WAVEデータ)を読み出して、前記ミキサ34内の入力レジスタに出力し、ステップS54に進む。
一方、当該発音チャンネルに対応するAPF[j]が「0」のときは、そのままステップS54に進む。ここで、ポインタAPP[j]が対応するPバッファの最終位置まで進行したら、APP[j]は再び同Pバッファの先頭に戻される。
そして、ステップS54においてjをj+1にひとつ進め、上記処理をjが16以上になるまで繰り返す(ステップS55)。
【0064】
次に、第15チャンネルまでの処理が終了し、前記ステップS55の判定結果がYESになると、ステップS56に進み、当該録音チャンネルのオーディオデータの録音の開始/終了を指示する録音指示フラグARF[j]が「1」であるか否かが判定される。このフラグARF[x]は、CPU10により録音開始時刻に先立って「1」に設定され、後述するタイミング発生処理により録音停止時刻に「0」に設定されるフラグである。
【0065】
当該フラグARF[j]が「1」にセットされている場合には、ステップS56の判定結果がYESとなり、ステップS57に進む。ステップS57においては、当該録音チャンネルのRバッファの録音ポインタARP[j]を1つ進め、前記A/D変換器36から取り込まれ前記ミキサ34内の出力レジスタに記憶されている波形サンプルデータを取り出して、ARP[j]の示すアドレスに書き込む。ここで、ポインタARP[j]が対応するRバッファの最終位置まで進行したら、ARP[j]は再び同Rバッファの先頭に戻される。また、ARF[j]が「0」の録音チャンネルについては、なにも行わない。
そして、ステップS58に進み、jをひとつだけ進め、j=19になるまで、上記ステップS56〜S58を繰り返し(ステップS59)、このDACサイクルにおける第2の転送回路33の転送処理を終了する。
【0066】
このように、第2の転送回路33においては、各DACサイクル毎に、全発音チャンネル(第0チャンネル〜第15チャンネルの16チャンネル)について、発音開始指示がなされているか否かを判定し、発音開始指示がなされている発音チャンネルについては、当該Pバッファから1波形サンプルデータを読み出して前記ミキサ34に出力する動作を行い、一方、全録音チャンネル(第16チャンネル〜第19チャンネルの4チャンネル)について、録音開始指示がなされている録音チャンネルについて前記ミキサ34を介して前記A/D変換器36によりA/D変換された波形サンプルデータを前記Rバッファに書き込んでいる。
【0067】
次に、前記再生指示フラグAPF[x]、あるいは、転送指示フラグTRF[x]ないし録音指示フラグARF[x]を指定されたタイミングでセットあるいはリセットするタイミング発生処理について、図6の(b)に示すフローチャートを参照して説明する。このタイミング発生処理は、前記タイミング発生部39により常時実行されている処理である。
【0068】
前述したように、本発明のこの実施の形態においては、DACサイクル(この実施の形態においては44.1KHz)をカウントする32ビットのカウンタ38が設けられている。したがって、このカウンタ38により約25時間を計数することができ、本発明のこの実施の形態においては、波形再生および録音の開始および終了のタイミングをDACサイクルを単位とする時間により制御するようにしている。すなわち、再生あるいは録音の開始時刻および終了時刻をDACサイクルを単位とする時刻データにより指定している。
【0069】
前記タイミング発生部39は、前記カウンタ38の計数値と前記CPU10により設定された当該チャンネルの再生開始時刻を指定するDACサイクルを単位とする再生開始カウント値PSC[x]、再生停止時刻を指定するDACサイクルを単位とする再生終了カウント値PEC[x]、録音開始時刻を指定するDACサイクルを単位とする録音開始カウント値RSC[x]、録音停止時刻を指定するDACサイクルを単位とする録音終了カウント値REC[x]とを比較判定し、対応する再生指示フラグAPF[x]、あるいは、転送指示フラグTRF[x]ないし録音指示フラグARF[x]をセットあるいはリセットする処理を実行するものである。
すなわち、前記タイミング発生部39は、まず、初期設定時に各チャンネルに対応するフラグAPF[x]およびARF[x]を「0」にリセットする(ステップS61)。
そして、前記カウンタ38の計数値と前記レジスタ40に設定された各チャンネルのPSC[x]およびPEC[x]あるいはRSC[x]およびREC[x]とを比較し、カウンタ38の計数値と前記各指定時刻との一致を検出する(ステップS62およびS63)。
【0070】
そして、いずれかのチャンネルのPSC[x]、PEC[x]、RSC[x]あるいはREC[x]と前記カウンタ38の計数値との一致を検出した場合には、ステップS64に進み、対応するフラグAPF[x]、あるいは、TRF[x]ないしARF[x]を制御する。すなわち、あるチャンネルのPSC[x]が前記カウンタ38の計数値と一致する場合には、当該チャンネルのフラグAPF[x]を「1」にセットし、PEC[x]が一致するときには、当該チャンネルのフラグAPF[x]を「0」にリセットする。また、あるチャンネルのRSC[x]が前記カウンタ38の計数値と一致したときには、該チャンネルのフラグTRF[x]を「1」にセットし、REC[x]が一致したときには、当該フラグARF[x]を「0」にリセットする。
【0071】
これにより、当該チャンネルのPSC[x]により指定された時刻からPEC[x]により指定された時刻までの時間だけ当該チャンネルの再生を指示するフラグAPF[x]が「1」とされる。また、当該チャンネルのRSC[x]により指定された時刻に転送を指示するフラグTRF[x]が「1」とされ、REC[x]により指定された時刻に録音を指示するフラグARF[x]が「0」とされる。この結果、前記図6の(a)に示した第2の転送回路33による転送処理により、当該発音チャンネルの波形サンプルデータのミキサ34への送出、あるいは、当該録音チャンネルのA/D変換された波形サンプルデータの読み込みが実行されるようになる。なお、PEC[x]とREC[x]に関して、それぞれ、指定時刻の検出時にCPU10に対して割り込みを発生するようにしてもよい。CPU10は、PEC[x]による割り込みに応じて再生の終了したチャンネルを次の再生のために開放し、REC[x]による割り込みに応じて録音の終了したチャンネルを次の録音のために開放する。
【0072】
このように、この実施の形態においては、前記中央処理装置により各チャンネルのタイミングデータが設定されるレジスタと、タイミングパルスを計数するカウンタと、該カウンタの計数値と前記レジスタに設定されている前記タイミングデータに基づいて各チャンネルのタイミング信号を発生するタイミング発生手段とを設け、前記タイミング信号に応じて前記バッファメモリの当該チャンネルに対応した記憶領域から波形データを読み出して再生しているので、前記メモリに記憶された複数の波形データを正確なタイミングで同時再生するという課題も解決することができる。
【0073】
次に、CPU10で図5(a)の再生指示イベント処理が実行された場合の、第1の転送回路31と第2の転送回路33の動作について説明する。
CPU10によりステップS24でWAVEデータの再生に使用するチャンネルxのTWF[x]が1に設定されると、第1の転送回路31は、ステップS32で該チャンネルxのフラグSUS[x]を「0」に設定する。転送開始時にはxチャンネルのPバッファが空であり、転送すべきデータが多いチャンネルとして、続くステップS35ではそのチャンネルxを示すチャンネル番号がレジスタiに設定される。この状態で、ステップS43が繰り返し実行されることにより、xチャンネルのPバッファには、アドレスSA[x]、EA[x]で示されるPCバッファに記憶されたWAVEデータの先頭部分の波形が、DACサイクル毎に32サンプルずつ転送される。
このようにして、xチャンネルのPバッファに波形サンプルが準備された後、ステップS25で設定されたPSC[x]のタイミングが、タイミング発生部39のステップS63の処理で検出され、フラグAPF[x]が「1」に設定される。
【0074】
第2の転送回路33は、サンプル周期で実行される転送2転送処理(図6(a))のステップS52においてAPF[x]が「1」に設定されたことを検出し、Pバッファに準備された波形サンプルをポインタAPP[x]を更新しながら読み出してミキサ34内の入力レジスタに供給する。ミキサ34に供給された波形サンプルは、DSP35により適宜エフェクトを付与された後、D/A変換器37に出力されサウンドシステム29から出力される。
このようにして第2の転送回路によってPバッファ上の波形サンプルが再生されている間にも、第1の転送回路は並列に動作しており、再生によりxチャンネルのPバッファの空き領域が増加した場合には、前記WAVEデータの前記先頭部分に続く後続波形のサンプルをPCバッファからPバッファに順次転送する。
【0075】
さて、以上説明したのは、前記第1のRAM12のPCバッファに格納されている1つのチャンネルの波形サンプルの波形再生動作、および、マイクロフォン28等から入力され前記A/D変換器36においてA/D変換された波形サンプルデータの読み込み動作であるが、前述したように、この波形録音再生装置においては、シーケンス再生を実行することができる。次に、このようなシーケンス再生時の動作について説明する。
【0076】
図7の(a)は、シーケンス再生を行うときに使用されるシーケンスデータの一例を示す図である。この図に示すように、シーケンスデータは、(1)当該データの名称、データ種類、データサイズ、時刻単位等を格納したヘッダ部、(2)初期設定等に用いられる初期データ、(3)スタートコード、(4)時間データおよびWAVEデータに対する命令(再生命令あるいは制御命令)、(5)エンドコードにより構成されている。ここで、前記(4)の時間データはそれに後続するWAVEデータに対する命令を発するタイミングを動作開始時あるいは前の命令からの相対時間データ(例えば、DACサイクルを単位とする時間データ)により示したものである。
【0077】
ここで、図7の(a)に示した例においては、前記WAVEデータに対する命令として、(1)「W1再生命令」、「W3再生命令」等の各WAVEデータの再生を開始する波形再生命令、および(2)「W4レベル制御命令」、「W10レベル制御命令」等の各WAVEデータの再生レベルを制御して当該WAVEデータのフェードインやフェードアウト等を行う命令や「W1効果制御命令」等の当該WAVEデータに対して付加するエフェクト(例えば、リバーブ等)を制御する波形制御命令がある。前記波形再生命令には、当該WAVEデータの名称、記憶位置(アドレス)、サンプリング周波数、その再生に要する時間等が含まれている。
【0078】
図7の(b)に示すように、各WAVEデータは例えば前記ハードディスク装置23に格納されており、前記シーケンスデータの再生に必要とされるWAVEデータが順次前記第1のRAM12に読み出されて格納される。すなわち、当該シーケンスデータの再生に必要とされるWAVEデータをすべてRAM12に転送しておくのではなく、最初に必要とされる所定数のWAVEデータを前記RAM12に転送しておき、1つのWAVEデータの再生が終了した後、次に再生されるWAVEデータを前記RAM12にロードするようにしている。
【0079】
このようなシーケンスデータの再生を行うときの動作について、図8および図9に示すフローチャートを参照して説明する。
図8に示すのは、前記メインプログラム(図4)において、シーケンス再生指示イベントが発生したときに前記ステップS15のスイッチ操作に対応する処理として実行されるシーケンス再生指示イベント処理のフローチャートであり、この処理は前記CPU10により実行される。
【0080】
シーケンス再生指示イベントが発生すると、CPU10は、ステップS71において当該シーケンス再生指示イベントに含まれている再生すべきシーケンスに対応するシーケンス指示データを受け取る。
そして、前記ランフラグRFを「0」に初期化する(S72)。これにより、前記カウンタ38が停止される。
続いて、ステップS73に進み、前記ステップS71において受け取ったシーケンス指示データにより指定されたシーケンスデータを解析し、当該シーケンスデータの再生に必要とされる最大チャンネル数(最大トラック数)nを算出し、該最大トラック数nに対応する発音チャンネルを割り当てる。ここで、前記第1のRAM12上のPCバッファ領域に前記n個のチャンネルのWAVEデータを格納する領域を確保する。
【0081】
次に、ステップS74において、当該シーケンスデータにおいて再生されるはじめからn個のWAVEデータを前記ハードディスク装置23から読み出して前記第1のRAM12上のPCバッファの前記ステップS73において確保された領域にロードする。
そして、ステップS75において、該n個のチャンネルにRAM12上の前記n個のWAVEデータの記憶位置にそれぞれ対応する開始アドレスSA[x]、終了アドレスEA[x]を前記レジスタ40に設定するとともに、前記終了アドレスEA[x]と同一のアドレスに割り込み要求アドレスIA[x]を設定する(IA[x]=EA[x])。
【0082】
次に、前記n個のチャンネルの転送開始フラグTWF[x]を「1」に設定し(S76)、各n個のチャンネルの再生開始カウント値PSC[x]および再生停止カウント値PEC[x]を前記シーケンスデータを解析して得た値に設定する(S78)。すなわち、前記時間データおよび前記波形再生命令に含まれている当該WAVEデータの再生時間長(あるいは波形サンプル数)から、当該再生開始カウント値PSC[x]および再生停止カウント値PEC[x]を算出して、前記レジスタ40に設定する。TWF[x]が1に設定されたチャンネルでは、第1の転送回路で図5(b)、(c)の処理が実行されることにより、同チャンネルで再生すべきWAVEデータの先頭波形がPCバッファからPバッファに順次転送される。
【0083】
そして、ステップS78において、前記波形制御命令すなわちレベル制御命令や効果制御命令の実行されるタイミングを前記シーケンスデータ中の時間データから算出して、そのタイミングで割り込み(制御割り込み)が発生されるように該タイミングに対応するカウント値をレジスタに設定する。ここでは、まず、最初の制御命令(図7の(a)に示した例においては「W4レベル制御命令」)に対応するカウント値を設定する。
次に、ステップS79に進み、前記カウンタ38をリセットするとともに、前記ランフラグRFを「1」にセットして、該カウンタ38のカウントを開始させる。前述のように、カウンタ38はDACサイクルに対応したパルスを計数するため、これにより、DACサイクルのカウントが「0」から開始される。
【0084】
このように、前記シーケンス再生指示に基づいて、CPU10は当該シーケンスの再生に必要な準備処理を実行し、再生を開始する。
その後、第1のRAM12中に格納されているn個のWAVEデータの再生が前述した場合と同様に順次開始される。すなわち、タイミング発生部39のステップS63でPSC[x]のタイミングが検出されると、同チャンネルのAPF[x]が1に設定され、図6(a)で説明したような第2の転送回路33による同チャンネルのPバッファの再生が開始される。該再生によりPバッファに空きが生じたら、第1の転送回路31の図5(b)、(c)の処理により、同チャンネルの再生の終わった先頭波形に続くWAVEデータの後続波形がPCバッファからPバッファに順次補給される。第2の転送回路33による上記再生は、タイミング発生部39で同チャンネルのPEC[x]のタイミングが検出されるまで継続される。
【0085】
さて、このようにして、前記第1のRAM12上のPCバッファからそれぞれ対応するWAVEデータが前記第3のRAM32上のPバッファに転送され、WAVEデータの再生が進行するが、前記PCバッファ上のデータの転送ポインタTP[x]が前記割り込み要求アドレスIA[x]に達したときに、前述したようにチャンネル割り込みが発生する。すなわち、このチャンネル割り込みは当該チャンネルのPCバッファの最後まで読み出したときに発生するため当該WAVEデータがすべて前記当該Pバッファに転送されたことを示しており、次に再生すべきWAVEデータを前記第1のRAM12のPCバッファにロードすることができる。このロード処理はチャンネル割り込み処理ルーチンにより実行される。
【0086】
図9の(a)は、このチャンネル割り込み処理ルーチンの動作を説明するフローチャートである。前述のように第1のRAM12内のPCバッファにおける当該チャンネルのWAVEデータがすべて前記第3のRAM32内のPバッファに転送され、チャンネル割り込みが発生すると、ステップS81において、ハードディスク装置23からPCバッファに既にロードされているWAVEデータの次にロードすべきWAVEデータがあるか否かが判定される。この判定の結果、シーケンスデータで発音指示されるWAVEデータが既に全部PCバッファにロードされ、ハードディスク装置23にはもう転送すべきデータが無い場合には、ステップS87に進み、現在再生中の発音チャンネルがあるか否かを判定する。この結果、現在波形再生中の発音チャンネルがないときには、すべてのWAVEデータの再生が終了したのであるから、前記ランフラグRFを「0」にリセットし、このシーケンス再生処理を終了する。また、再生中の発音チャンネルがあるときには、そのまま、このチャンネル割り込み処理を終了する。
【0087】
一方、再生すべきWAVEデータが残っており前記ステップS81の判定結果がYESとなったときは、そのチャンネル番号を変数kに代入し(S82)、当該WAVEデータをハードディスク装置23から読み出して前記第1のRAM12中の空き領域にロードする(S83)。
そして、ステップS84に進み、前記ステップS83において当該WAVEデータを格納した領域を、kチャンネルの新たなPCバッファとして、対応する先頭アドレスSA[k]、終了アドレスEA[k]および割り込み要求アドレスIA[k](=EA[k])を前記レジスタ40に設定する。
【0088】
次に、対応する転送開始フラグTWF[k]を「1」にセットし(S85)、それに応じて、第1の転送回路31は該WAVEデータの先頭波形をPCバッファからPバッファに順次転送する。そして、対応する再生開始カウント値PSC[x]および再生停止カウント値PEC[x]をセットする(S86)。
以上のように、チャンネル割り込みが発生したときに、次に再生されるデータを前記PCバッファに転送し、対応する波形再生のための準備処理が実行される。このようにして準備されたkチャンネルのWAVEデータは、図8のシーケンスの準備処理で説明したn個のWAVEデータと同様の方法で、PSC[k]からPEC[k]のタイミングに再生される。
【0089】
次に、前記ステップS78(図8)におけるその他割り込み設定に対応する制御割り込み処理について、図9の(b)に示すフローチャートを参照して説明する。
前記カウンタ38の計数値が前記ステップS78によりレジスタに設定されたカウント値となり前記制御割り込みが発生されると、前記CPU10は、まず、このタイミングの制御命令(前記図7の(a)に示す例では「W4レベル制御命令」)に基づく制御処理を実行する。これは、例えば、当該制御命令に対応するレベル制御データ等を前記レジスタ40に書き込むことにより実行され、ミキサ34における当該チャンネルのレベルが制御される。また、効果制御命令の場合は、対応するDSP制御パラメータ等が前記レジスタ40に書き込まれ、DSPで行われているエフェクト処理の内容が制御される。
【0090】
次に、前記CPU10は、ステップS92に進み、前記シーケンスデータ中に次の制御命令があるか否かをサーチする。そして、制御命令が存在しなかったときには、そのまま、この制御割り込み処理を終了する。
一方、前記ステップS92の結果、次の制御命令が見つかったときは、その制御命令のタイミング情報、すなわち、その制御命令が実行されるタイミングを示すカウント値を前記時間データに基づいて算出し、それを前記レジスタに設定する(S93)。そして、この制御割り込み処理を終了する。これにより、次の制御命令のタイミングになったときに、再び制御割り込み処理が実行されることとなる。
このようにして、シーケンスデータに基づく、ハードディスク装置23に記憶された複数WAVEデータのそれぞれ指定タイミングでの再生、および、各指定タイミングでのレベル制御、効果制御が行われる。
【0091】
さて、以上では、(1)第1のRAM12上のPCバッファに格納されているWAVEデータを再生する場合、および、(2)シーケンス再生を行う場合について説明した。次に、(3)ハードディスク等に記憶されている波形をダイレクトに再生するダイレクト再生について説明する。
【0092】
前記ハードディスク装置23あるいはCD−ROM装置24等の外部記憶装置に格納されている長時間のWAVEデータを順次読み込みながら再生するダイレクト再生の場合には、前述したように、前記割り込み要求アドレスIA[x]をPCバッファの中間位置および最終位置に繰り返し設定する。そして、当該割り込み処理ルーチンにおいて前記外部記憶装置から当該波形サンプルデータをPCバッファに順次読み込むようにすることにより、前記第1のRAM12上のPCバッファをダブルバッファとして使用し、長時間のWAVEデータを順次再生することができる。
また、前記ネットワークインターフェース回路27を介して前記ネットワーク26からWAVEデータを受信しつつ、再生することも可能である。この場合にも、前記ダイレクト再生の場合と同様に、前記PCバッファをダブルバッファとして使用する。
【0093】
さらに、本発明においては、前記CPU10により波形サンプルデータをソフトウエアにより生成するいわゆるソフトウエア音源を用いて生成した波形サンプルデータを再生することも可能である。この場合には、図示しないMIDIインターフェース等を通じて入力されたMIDIデータに基づいて前記CPU10により例えば16チャンネル分の楽音波形サンプルを演算生成し、該演算生成した楽音波形サンプルを前記第1のRAM12上のPCバッファに書き込むようにする。そして、前述した実施の形態の場合と同様にして、このPCバッファに書き込まれた波形サンプルデータを再生する。この方法によれば、前記DSP35により生成した楽音に対するエフェクト付与等を行うことができ、前記CPU10により生成した楽音に対するエフェクト処理まで実行する通常のソフトウエア音源の場合に比較してCPU10の処理負荷を少なくすることが可能となる。
【0094】
なお、上述した実施の形態においては、各DACサイクルに1チャンネルの32サンプルをバースト転送するようになっていたが、各DACサイクル毎に最大nチャンネル分バースト転送するようにしてもよいし、また、各チャンネルで異なるサンプル数分をバースト転送するようにしてもよい。このように変更すれば、バスを長く占有してしまうものの、第1の転送回路による転送はより安定する。
また、上述した実施の形態では、1度のバースト転送は32サンプル固定であったが、バースト転送するサンプル数を各チャンネルの空き容量に応じて、空き容量の多い場合には48サンプル、さらに多い場合には64サンプルのように、変更してもよい。このように変更すれば、第1の転送回路の転送遅れが生じる可能性が下がり、転送の安定性が向上する。
【0095】
さらに、上述した実施の形態では、バッファメモリのサイズは1Kワード固定であったが、この容量を自由に設定できるようにしてもよい。容量を大きくすれば再生の安定度が向上するし、小さくすれば回路構成が簡単になる。また、各チャンネル毎に異なる容量が設定できるようにしてもよい。その場合、安定して再生したいチャンネルのバッファメモリを、大きな容量に設定すればよい。
さらにまた、上述した実施の形態においては、シーケンス再生のときにnこの波形データをハードディスク装置からメモリにロードするようになっていたが、この部分に関してはいろいろな変更を行うことができる。例えば、メモリ上で波形データの記憶に使用する容量の上限を設け、シーケンスで再生する複数の波形データを、先に再生されるものからその上限に達するまで順次メモリにロードするようにしてもよい。あるいは、シーケンスで現在再生中の位置から所定時間分先(未来)の位置で再生される波形データまでをメモリにロードするようにしてもよい。
【0096】
さらにまた、上述した実施の形態においては、確保するチャンネル数とロードする波形データの数がともにn個で共通になっていたが、互いに異なる個数であってもよい。
さらにまた、上述した実施の形態においては、シーケンス再生を開始する際に必要なチャンネル数を検出して使用するチャンネル数nを決定したが、このnを予めシーケンスデータ毎に指定しておいたり、手動でnを設定するようにしてもよい。
さらにまた、上述した実施の形態においては、前記PCバッファを第1のRAM12上に設けるものとして説明したが、これに限られることはなく、前記第2のRAM21上にPCバッファを設けるようにしても良い。要するに、前記CPU10のメモリ空間上に、前記PCバッファが配置されていればよい。
さらにまた、上述した実施の形態においては、前記サウンド入出力ボード30上にA/D変換器36およびD/A変換器37を設けているが、これらの回路をサウンド入出力ボード上に設けず、USB(Univesal Serial Bus)あるいはIEEE1394等のシリアルインターフェースを介してデジタルオーディオ機器等に接続するようにしても良い。この場合には、デジタルデータで入出力を行うことができ、ノイズ等の混入を防止することができる。
【0097】
さらにまた、前述したPバッファ、Rバッファのサイズ、再生および録音のチャンネル数、ミキサのチャンネル数、波形サンプルデータのビット数等は、いずれも、上述した実施の形態に記載した数値に限られることはなく、それぞれ、任意の値に変更することが可能である。
さらにまた、上述した実施の形態においては、前記サウンド入出力ボード30がPCIバスに接続されているものとして説明したが、これに限られることはなく、バースト転送を行うことのできる高速バスであれば、全く同様に適用することができる。
【0098】
【発明の効果】
以上説明したように、本発明の波形再生装置によれば、PCIバス等の高速バスの有するバースト転送機能を有効に使用して波形サンプルデータの入出力を行っているので、波形再生に要するCPUの負荷を軽減することができる。また、複数チャンネルの波形サンプルデータの出力が可能であるため、高品質の波形再生を行うことが可能となる。
さらに、シーケンスデータの再生時などに、波形データの再生終了時に次の波形の読み込みを開始しているため、メモリへの読み込みから再生タイミングまでに時間的な余裕ができ、安定した動作を行うことができるとともに、波形読み込みのトリガを発生する処理が単純となる。そして、その処理が多少遅れたとしても、再生のタイミングには影響を及ぼすことがない。したがって、システムの動作効率を低下することなく、安定した動作を行うことができる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態である波形録音再生装置における一実施の形態の構成を示すブロック図である。
【図2】 図1に示した実施の形態におけるサウンド入出力ボードの構成例を示すブロック図である。
【図3】 図1に示した実施の形態におけるデータの流れを説明するための図である。
【図4】 本発明の一実施の形態である波形録音再生装置におけるメインルーチンのフローチャートである。
【図5】 本発明の一実施の形態である波形録音再生装置における再生指示イベント処理および第1の転送回路の動作を説明するためのフローチャートである。
【図6】 本発明の一実施の形態である波形録音再生装置における第2の転送回路の動作およびタイミング発生処理を説明するためのフローチャートである。
【図7】 本発明の一実施の形態である波形録音再生装置におけるシーケンスデータおよび第1のRAMにおける記憶領域の使用例を説明するための図である。
【図8】 本発明の一実施の形態である波形録音再生装置におけるシーケンス再生指示イベント処理を説明するためのフローチャートである。
【図9】 本発明の一実施の形態である波形録音再生装置におけるチャンネル割込処理および制御割込処理を説明するためのフローチャートである。
【符号の説明】
10 CPU、11 ROM、12、21、32 RAM、13 表示器、14、16、22 インターフェース回路、15 キーボード、17 タイマ、18 ローカルバス、19 HOST−PCIブリッジ回路、20 PCIバス、23 ハードディスク装置、24 CD−ROM装置、25 SCSIインターフェース回路、26 ネットワーク、27 ネットワークインターフェース回路、28 マイクロフォン、29 サウンドシステム、30 サウンド入出力ボード、31、33 転送回路、34 ミキサ、35 DSP、36 A/D変換器、37 D/A変換器、38 カウンタ、39 タイミング発生部、40 レジスタ
Claims (3)
- 装置全体の制御を行う中央処理装置と、
シーケンスデータに基づく波形再生に使用される複数の波形データを記憶する第1のメモリと、
複数の波形データを記憶することのできる第2のメモリと、
前記第2のメモリから波形データを読み出し、該読み出した波形データを再生する波形出力回路とを有する波形再生装置であって、
前記シーケンスデータは、各波形データに対する再生命令と該再生命令を発するタイミングを示す時間データとを含んでおり、
前記中央処理装置は、シーケンス再生指示に応答して、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて最初に再生される所定数の波形データを前記第1のメモリから読み出して前記第2のメモリに記憶するとともに、該記憶された所定数の波形データの前記第2のメモリにおける記憶アドレスとその再生開始のタイミングとを、各該波形データに対する再生命令と該再生命令に対応する時間データに基づいて前記波形出力回路に設定し、
前記波形出力回路は、設定された各記憶アドレスの波形データを前記第2のメモリから読み出して、対応する再生開始のタイミングからその再生を開始し、
前記中央処理装置は、前記第2のメモリに記憶された波形データ中のいずれかの波形データについて前記波形出力回路による読み出しが終了したとき、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて次に再生される波形データを前記第1のメモリから読み出して前記第2のメモリに記憶するとともに、該記憶された波形データの第2のメモリにおける記憶アドレスとその再生開始のタイミングとを、該波形データに対する再生命令と該再生命令に対応する時間データに基づいて前記波形出力回路に設定することを特徴とする波形再生装置。 - 装置全体の制御を行う中央処理装置と、
シーケンスデータに基づく波形再生に使用される複数の波形データを記憶する第1のメモリと、
複数の波形データを記憶することのできる第2のメモリと、
複数チャンネルの各チャンネル毎に複数サンプルの波形データを記憶するバッファメモリと、
サンプリング周期毎に複数チャンネルの波形データが入力されるディジタルオーディオ回路と、
前記バッファメモリに所定量の空きが生じたときに、前記第2のメモリに記憶された波形データを所定の複数サンプルを単位として前記バッファメモリに転送する第1の転送回路と、
前記バッファメモリに記憶された複数チャンネルの波形データを、各サンプリング周期ごとに1サンプルずつ読み出して前記ディジタルオーディオ回路に転送する第2の転送回路とを有する波形再生装置であって、
前記シーケンスデータは、各波形データに対する再生命令と該再生命令を発するタイミングを示す時間データとを含んでおり、
前記中央処理装置は、
シーケンス再生指示に応答して、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて最初に再生される所定数の波形データを前記第1のメモリから読み出して前記第2のメモリに記憶し、前記第1の転送回路に対して該第2のメモリに記憶された前記所定数の波形データを前記バッファメモリへ転送することを指示するとともに、前記第2の転送回路に対して、前記バッファメモリから各波形データを読み出して前記ディジタルオーディオ回路に転送することを開始するタイミングを前記波形データに対する再生命令とそれに対応する前記時間データに基づいて設定し、
前記第2のメモリに記憶された波形データ中のいずれかの波形データについて前記第1の転送回路による転送が終了したとき、前記シーケンスデータに含まれる前記再生命令と前記時間データに応じて次に再生される波形データを前記第1のメモリから読み出して前記第2のメモリに記憶し、前記第1の転送回路に対して該波形データを前記バッファメモリへ転送することを指示するとともに、前記第2の転送回路に対して、前記バッファメモリから各波形データを読み出して前記ディジタルオーディオ回路に転送することを開始するタイミングを前記波形データに対する再生命令とそれに対応する前記時間データに基づいて設定することを特徴とする波形再生装置。 - 前記シーケンスデータは前記ディジタルオーディオ回路の制御命令を含んでおり、前記ディジタルオーディオ回路は、制御命令に対応する前記時間データにより指示されるタイミングで該制御命令に基づいて制御されることを特徴とする請求項2記載の波形再生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001213754A JP4120979B2 (ja) | 2001-07-13 | 2001-07-13 | 波形再生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001213754A JP4120979B2 (ja) | 2001-07-13 | 2001-07-13 | 波形再生装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01354498A Division JP3235557B2 (ja) | 1998-01-09 | 1998-01-09 | 波形再生装置、波形録音再生装置、波形出力回路、波形入出力回路、波形再生方法および波形録音再生方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002062896A JP2002062896A (ja) | 2002-02-28 |
JP4120979B2 true JP4120979B2 (ja) | 2008-07-16 |
Family
ID=19048686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001213754A Expired - Fee Related JP4120979B2 (ja) | 2001-07-13 | 2001-07-13 | 波形再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4120979B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100664961B1 (ko) * | 2005-09-29 | 2007-01-04 | 삼성전자주식회사 | 다중 음향 출력을 지원하는 모바일 기기 |
-
2001
- 2001-07-13 JP JP2001213754A patent/JP4120979B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002062896A (ja) | 2002-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3149093B2 (ja) | 自動演奏装置 | |
US6553436B2 (en) | Apparatus and method for playback of waveform sample data and sequence playback of waveform sample data | |
JPH11126070A (ja) | 楽音生成方法 | |
JP3163984B2 (ja) | 楽音発生装置 | |
JPH0922287A (ja) | 楽音波形生成方法 | |
JP2684899B2 (ja) | 電子楽器用音源装置 | |
JPH04339000A (ja) | 音楽再生装置 | |
JP4120979B2 (ja) | 波形再生装置 | |
JP3127873B2 (ja) | 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置 | |
JPH07121181A (ja) | 音声情報処理装置 | |
JP3235557B2 (ja) | 波形再生装置、波形録音再生装置、波形出力回路、波形入出力回路、波形再生方法および波形録音再生方法 | |
JPH1115481A (ja) | カラオケ装置 | |
JP2000242265A (ja) | 自動演奏装置 | |
JPH11126069A (ja) | 楽音生成方法 | |
JP3518357B2 (ja) | 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3407625B2 (ja) | 自動演奏装置、自動演奏方法及びプログラムを記録した媒体 | |
JP4134624B2 (ja) | 再生制御情報作成装置とプログラム | |
JP2956550B2 (ja) | 楽音発生装置および楽音発生方法 | |
JP3740717B2 (ja) | 音源装置及び楽音生成方法 | |
JP2576323B2 (ja) | 演奏記録再生装置 | |
JPH09134177A (ja) | 電子楽器用音源装置 | |
JPH07199927A (ja) | 自動演奏装置 | |
JP2933204B2 (ja) | スクラッチ動作可能な楽音発生装置 | |
JP3178176B2 (ja) | 自動伴奏装置 | |
JPH1031486A (ja) | 演奏データ記憶再生方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040318 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080317 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080422 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110509 Year of fee payment: 3 |
|
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: 20130509 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140509 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |