JPH11202870A - 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置 - Google Patents

波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置

Info

Publication number
JPH11202870A
JPH11202870A JP10013545A JP1354598A JPH11202870A JP H11202870 A JPH11202870 A JP H11202870A JP 10013545 A JP10013545 A JP 10013545A JP 1354598 A JP1354598 A JP 1354598A JP H11202870 A JPH11202870 A JP H11202870A
Authority
JP
Japan
Prior art keywords
channel
data
waveform
timing
buffer
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.)
Granted
Application number
JP10013545A
Other languages
English (en)
Other versions
JP3127873B2 (ja
Inventor
Tokiharu Andou
時暖 安藤
Takashi Suzuki
隆司 鈴木
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 JP10013545A priority Critical patent/JP3127873B2/ja
Priority to US09/222,753 priority patent/US6366971B1/en
Publication of JPH11202870A publication Critical patent/JPH11202870A/ja
Application granted granted Critical
Publication of JP3127873B2 publication Critical patent/JP3127873B2/ja
Priority to US09/948,157 priority patent/US6553436B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 波形サンプルデータの再生タイミングを高精
度に制御する。 【解決手段】 カウンタ38はDACサイクルを計数す
る。レジスタ40には、第xチャンネルの波形サンプル
データのDACサイクルを単位とする再生開始時刻を指
定する再生開始カウント値PSC[x]、再生停止時刻
を指定する再生終了カウント値PEC[x]が設定され
る。タイミング発生部39は、前記カウンタ38の計数
値と前記PSC[x]、PEC[x]とを比較し、一致
を検出したときに、再生指示フラグAPF[x]を
「1」にセットする。これにより、転送回路33は当該
チャンネルxの波形サンプルをミキサ34に出力し、チ
ャンネルxの波形の再生が開始される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、波形サンプルデ
ータからオーディオ信号を再生する波形再生方法、波形
再生装置、波形出力回路およびシーケンス再生装置に関
する。
【0002】
【従来の技術】パーソナルコンピュータなどにおいて
は、アナログデジタル変換器(A/D変換器、AD
C)、デジタルアナログ変換器(D/A変換器、DA
C)等を備えた符号化復号化回路(CODEC)と該C
ODECを駆動するためのCODECドライバソフトウ
エアとを備えることにより、波形サンプルデータ(WA
VEデータ)のモノラルあるいはステレオの記録再生を
行なうことができるようになされている。また、複数の
WAVEデータを、それぞれ時間軸上の任意の位置に配
置して再生するようにした波形編集ソフトウエアも知ら
れている。この場合には、複数のWAVEデータを同時
に再生することのできる専用のハードウエアが用意され
ている。
【0003】
【発明が解決しようとする課題】上述した従来の波形サ
ンプルデータの再生方法においては、CPUが波形再生
のトリガを発生するようになされているために、WAV
Eデータの再生開始のタイミングを高精度に制御するこ
とができなかった。また、再生終了のタイミングについ
ても、高い精度で決定することができなかった。マルチ
タスク処理においては、CPUは波形サンプルの送出や
WAVEデータの再生制御だけではなく、同時に実行す
べき他の処理を有している。したがって、波形サンプル
の送出等を実行すべきタイミングがきても直ちにその処
理を実行することができるとは限らない。このように、
CPUにWAVE再生の精密な時間制御を行なわせるこ
とには無理があった。特に、複数のWAVEデータを同
時に再生する場合において再生のタイミング制御の精度
が低いときには、各WAVEデータの再生タイミングが
ふらつくことにより波形相互間の干渉の状態が変化し、
再生する度に異なるように聞こえてしまうという問題点
があった。
【0004】そこで、本発明は、波形データの再生開
始、終了のタイミングを高精度に制御することのできる
波形再生方法、波形再生装置、波形出力回路およびシー
ケンス再生装置を提供することを目的としている。ま
た、複数のチャンネルの波形サンプルデータを同時に出
力する場合であっても、高品質の波形再生を行うことの
できる波形再生方法、波形再生装置、波形出力回路およ
びシーケンス再生装置を提供することを目的としてい
る。
【0005】
【課題を解決するための手段】上記目的を達成するため
に、本発明の波形再生方法は、中央処理装置の指示に応
じて波形データを再生する波形再生方法であって、A.
前記中央処理装置の指示に応じて、メモリに記憶された
波形データを、先頭より一部分ずつ、バスを介して順次
バッファメモリに転送するステップ、B.タイミングパ
ルスを計数するカウンタの計数値と前記中央処理装置に
より設定されたタイミングデータとの一致を検出したと
きに、タイミング信号を発生するステップ、および、
C.前記ステップBにより発生されたタイミング信号に
応じて、前記バッファメモリに記憶された波形データを
先頭より順次再生するステップを有するものである。こ
のような本発明の波形再生方法によれば、中央処理装置
の指示に応じて、正確なタイミングで波形データの再生
開始が可能となる。
【0006】また、本発明の波形再生装置は、装置全体
を制御する中央処理装置と、前記中央処理装置に接続さ
れた第1のバスと、前記第1のバスに接続され、複数の
波形データを記憶するメモリと、前記第1のバスとは独
立に設けられた第2のバスと、前記第2のバスに接続さ
れ、それぞれ、波形データの一部を記憶可能な複数チャ
ンネル分の記憶領域を有するバッファメモリと、前記中
央処理装置の指示に応じて、各チャンネルで再生する前
記波形データを先頭より順次、前記メモリから前記バッ
ファメモリの各チャンネルに対応した記憶領域に供給す
る供給手段と、前記中央処理装置により各チャンネルの
タイミングデータが設定されるレジスタと、タイミング
パルスを計数するカウンタと、該カウンタの計数値と前
記レジスタに設定されている前記タイミングデータに基
づいて、各チャンネルのタイミング信号を発生するタイ
ミング発生手段と、前記タイミング信号に応じて、前記
バッファメモリの当該チャンネルに対応した記憶領域か
ら波形データを読み出して再生する読出再生手段とを有
するものである。この波形再生装置によれば、装置全体
の制御を行う中央処理装置に指示に応じて、メモリに記
憶された複数の波形データを、カウンタの計数値に基づ
く正確なタイミングで同時再生することが可能となる。
【0007】さらに、本発明の波形出力回路は、バスに
接続された複数の波形データを記憶するメモリから波形
データを読み出して再生する波形出力回路であって、そ
れぞれ複数チャンネルの各チャンネル毎に波形データの
一部を記憶可能な複数の記憶領域を有するバッファメモ
リと、前記バスを介して、前記メモリから各チャンネル
で再生する前記波形データを先頭より順次、前記バッフ
ァメモリの各チャンネルに対応した記憶領域に供給する
供給手段と、タイミングデータを記憶するレジスタと、
タイミングパルスを計数するカウンタと、該カウンタの
計数値と前記レジスタに設定されている前記タイミング
データに基づいて各チャンネルのタイミング信号を発生
するタイミング発生手段と、前記タイミング信号に応じ
て、前記バッファメモリの当該チャンネルに対応した記
憶領域から波形データを読み出して再生する読出再生手
段とを有するものである。この波形出力回路によれば、
バスに接続されたメモリ上の波形データを、バスの使用
状況によらずに正確なタイミングで再生開始することが
できる。
【0008】さらにまた、本発明のシーケンス再生装置
は、n個(nは2以上の整数)のチャンネルを使用した
波形データのシーケンス再生装置であって、複数の波形
データを記憶するメモリと、前記複数の波形データの再
生タイミングを示す複数のイベントデータを順次記憶し
たシーケンスメモリと、nチャンネルに対応したn個の
記憶領域を有するバッファメモリと、前記シーケンスメ
モリに記憶されたイベントデータを、早いタイミングの
ものより順次n個のチャンネルのうちの開放チャンネル
に割り当てるチャンネル割当手段と、前記複数の波形デ
ータのうち、各チャンネルに割り当てられたイベントデ
ータにより指示される波形データを、その先頭部分より
一部分ずつ、順次対応するチャンネルの前記記憶領域に
供給する供給手段と、タイミングパルスを計数するカウ
ンタと、前記カウンタのカウント値に基づき、各チャン
ネルに割り当てられたイベントデータの再生タイミング
を検出する検出手段と、再生タイミングの検出に応じ
て、検出されたチャンネルの記憶領域に記憶された波形
データを順次読み出して再生する読出再生手段と、前記
読出再生手段による読み出しの終了したチャンネルを検
出し、該チャンネルを開放するチャンネル開放手段とを
有するものである。このシーケンス再生装置によれば、
複数n個のチャンネルの波形データを順次正確なタイミ
ングでシーケンス再生することが可能となる。
【0009】
【発明の実施の形態】図1は、本発明の波形再生方法が
適用された波形再生装置の一実施の形態である波形録音
再生装置の全体構成を示すブロック図である。この図に
おいて、10はこの波形再生装置全体の制御を行うため
の中央処理装置(CPU)、11は各種のプログラムや
定数データなどを記憶するROM、12は実行するプロ
グラムやデータが読み込まれるとともに各種バッファ領
域やワークエリアとして使用される第1のランダムアク
セスメモリ(RAM)、13は各種の情報を表示する表
示装置、14は該表示装置13をローカルバス18に接
続するためのインターフェース回路、15はユーザから
の各種の指示などを入力するためのキーボード、16は
該キーボード15をローカルバス18に接続するための
インターフェース回路、17は時間を計測したりCPU
10に対してタイマ割込をかけるタイマである。これら
CPU10、ROM11、第1のRAM12、インター
フェース回路14、15およびタイマ17は、ローカル
バス18に接続されている。
【0010】ここで、前記第1のRAM12上には、複
数チャンネルの波形サンプルデータが記憶されるバッフ
ァ領域(PCバッファ)が確保される。このPCバッフ
ァは、前記CPUのメモリアドレス空間上の任意の位置
に任意の大きさで設定することができる。なお、前記波
形サンプルデータは、1ワードが32ビットあるいは1
6ビット等いずれのタイプのデータであってもよいが、
ここでは、1ワードが16ビットの波形サンプルデータ
であるものとして説明する。
【0011】20はPCI(Peripheral Component Int
erconnect)バスであり、19は前記ローカルバス18
とPCIバス20とを接続するためのHOST−PCI
ブリッジ回路である。なお、PCIバスは64ビットに
拡張することができるが、ここでは32ビットのデータ
バス幅をもつものする。PCIバス20は、1つの32
ビットのデータバスをアドレス用およびデータ用に時分
割で使用する。例えばデータ転送時には、まず、アドレ
スを該データバスに送出して転送先を指定し、次に同バ
スを使用してデータ転送を実行する。
【0012】21は第2のランダムアクセスメモリ(R
AM)、22は該第2のRAM21を前記PCIバス2
0に接続するためのインターフェース回路である。ま
た、23は各種の波形サンプルデータやプログラムなど
が格納されるハードディスク装置、24は各種の波形サ
ンプルデータやプログラムなどを記録したCD−ROM
を駆動するCD−ROM装置、25はハードディスク装
置23やCD−ROM装置24などの外部記憶装置を接
続するためのSCSI(small computer systeminterfa
ce)インターフェース回路である。さらに、27はネッ
トワークインターフェース回路であり、電話回線や専用
線等を介して外部のネットワーク26と接続するための
回路である。なお、この図には示されていないが、MI
DI信号を入出力するための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が接続されている。ここで、前記H
OST−PCIブリッジ回路19、ネットワークインタ
ーフェース回路27、SCSIインターフェース回路2
5およびサウンド入出力ボード30は、いずれもバス・
マスターとなることができ、例えば前記HOST−PC
Iブリッジ回路19に設けられているバスアービターに
対してバス使用要求を出して、バス使用権を獲得した後
にPCIバス20を使用して当該データ転送を実行する
ことができる。
【0015】なお、バス構成は、前記図1に示した例に
限られることはない。例えば、図1におけるローカルバ
スを、CPU専用のバスと周辺I/O等を接続するため
のローカルPCIバスの2つのバスにより構成するな
ど、様々なバス構成とすることが出来る。また、図1に
おいては、前記ハードディスク装置23およびCD−R
OM装置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 Buffe
r)の2種類のバッファが設けられており、1チャンネ
ル当たり例えば1Kワード(=1024ワード)の容量
となされている。この例においては、再生16チャンネ
ル、録音4チャンネルの合計20チャンネルとされてお
り、各チャンネル毎に1Kワードの波形サンプルデータ
を格納することができるようになされている。また、3
3は前記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から入力されるオーディオ信号(音声信
号あるいは楽音信号)を所定のサンプリングレート(D
ACサイクル、例えば44.1KHz)でサンプリング
して所定ビット数(ここでは16ビット)の波形サンプ
ルデータに変換して、前記ミキサ34に出力する。ここ
では、4チャンネルの波形サンプルを入出力することが
できるように構成されている。D/A変換器37は、前
記ミキサ34から出力される4チャンネルの波形サンプ
ルデータをアナログ信号に変換して前記サウンドシステ
ム29に出力する。
【0019】前記ミキサ34では、サンプリング周期毎
に、第2の転送回路から16チャンネル、マルチDSP
35から16チャンネル、A/D変換器36から4チャ
ンネルの計36チャンネルの波形データを入力し、制御
データに含まれる各入力/出力毎に独立して設定された
レベルデータに基づいて20通りのミキシング処理を行
い、そのミキシング結果を第2の転送回路に4チャンネ
ル、マルチDSP35に16チャンネル、D/A変換器
37に4チャンネルの計20チャンネルの波形データと
してそれぞれ出力する。
【0020】ここで、第2の転送回路33、マルチDS
P35、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で音量制御してマルチDSP3
5に送り、マルチDSP35でコーラス効果や残響効果
のエフェクト処理を行った波形を再びミキサ34に入力
して、音量制御した後にD/A変換器37に出力する。
再生時の結線は、再生用の16チャンネルのそれぞれに
ついて独立に設定することができる。さらに他の例とし
て、A/D変換器から入力する波形データをマルチDS
P35に送ってエフェクトを付与してD/A変換器37
に出力するよう設定したり、再生チャンネルで再生した
PCバッファの波形データを、マルチDSPでイコライ
ザ処理等の処理を施した後、録音チャンネルで別領域の
PCバッファに記憶するよう設定することもできる。
【0022】なお、上述したようにサンプリング周期で
処理を行う、ミキサ34、DSP35、D/A変換器3
7等をディジタルオーディオ回路とよぶ。これらディジ
タルオーディオ回路に入力された波形データは、最終的
にはアナログ波形に変換されて、さらにスピーカ等で音
に変換されることとなる。
【0023】38は例えば32ビット構成とされたカウ
ンタであり、前記DACサイクルに等しい44.1KH
zのパルスを計数するように構成されている。したがっ
て、このカウンタ38はDACサイクルを単位として計
数した時刻データを出力する。39は前記カウンタ38
から出力される時刻データおよび後述するレジスタ40
に格納されている各種の指定時刻データとを比較結果に
基づいて前記第1の転送回路31あるいは第2の転送回
路33の動作を制御するタイミング発生部である。ま
た、40はレジスタであり、このサウンド入出力ボード
30における前記第1の転送回路31、第2の転送回路
33、カウンタ38、タイミング発生部39、DSP3
5、A/D変換器36およびD/A変換器37等に対す
る各種制御に必要な各種の制御データあるいは変数が前
記CPU10により設定されるようになされている。な
お、このレジスタ40に設定される各データの詳細につ
いては後述する。
【0024】さて、このように構成された波形録音再生
装置において、波形再生時には、前記第1のRAM12
上のPCバッファに格納されている各チャンネルの波形
サンプルデータを前記第1の転送回路31の制御のもと
に前記サウンド入出力ボード30内の前記第3のRAM
32のPバッファに32サンプル単位で順次転送し、前
記第2の転送回路33の制御のもとに該第3のRAM3
2から各発音チャンネルにつき各DACサイクル毎に1
波形サンプルデータずつ前記ミキサ34(及びマルチD
SP35)を介して前記D/A変換器37に出力して、
前記サウンドシステム29から当該オーディオ信号を出
力する。また、波形録音時には、前記マイクロフォン2
8から入力され前記A/D変換器36において波形サン
プルデータに変換されて(マルチDSP35を介して)
前記ミキサ34から出力されるオーディオ信号を前記第
2の転送回路33の制御のもとに前記第3のRAM32
中のRバッファに格納し、該第3のRAM中のRバッフ
ァ中に格納された波形サンプルデータを前記第1の転送
回路31の制御のもとに、前記第1のRAM12中のP
Cバッファに32サンプル単位で転送する。
【0025】この様子を図3を参照して説明する。図3
は、前記第1のRAM12に設けられたPCバッファ、
前記第3のRAM32に設けられたPバッファあるいは
Rバッファおよび前記ミキサ34の間を波形サンプルデ
ータが転送される様子を説明するための図であり、
(a)は再生時のデータの流れ、(b)は録音時のデー
タの流れを示す図である。前述したように、この実施の
形態においては、再生が16チャンネル、録音が4チャ
ンネルとされており、図示するようにチャンネル番号0
〜15までが再生チャンネル、チャンネル番号16〜1
9までが録音チャンネルとされている。前記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は、1DA
Cサイクルを2つに分割し、1DACサイクルの前半の
期間にPCバッファからの波形サンプルデータの読み出
しが必要であるか否かを判定する。そして、波形サンプ
ルデータの読み出しが必要な場合には、同DACサイク
ルの後半の期間に、バスアービターにPCIバス20の
使用要求を出力し、バスの使用権を獲得して、RAM1
2をアクセスし、転送ポインタ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上の他の波形データの再生に使用できるよう
にすることもできるし、あるいは、前記転送ポインタT
P[x]=SA[x]とセットして当該PCバッファに
格納されている波形データを繰り返し再生させることも
できる。
【0029】また、以下に示す方法を用いれば、1つの
再生チャンネルxの小容量のPCバッファ(例えば、4
K〜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上のP
Cバッファの転送ポインタTP[x]から順に書き込み
が行われる。そして、転送ポインタTP[x]は、1バ
ストランザクション毎に16アドレス(32ワード分)
ずつ増加される。
【0034】なお、この録音の場合にも、前述の場合と
同様に割り込み要求アドレスIA[x]を設定すること
により、録音の終わったPCバッファを順次開放するこ
と、あるいは、前記PCバッファを小容量のダブルバッ
ファとして使用して、入力する大容量の波形データをダ
イレクトにハードディスク装置等に録音することができ
る。
【0035】このように、この実施の形態においては、
バースト転送機能を有するPCIバス20に波形再生回
路となるサウンド入出力ボード30が接続されており、
前記第1の転送回路31が、PCバッファからの波形サ
ンプルの読み出しが必要となったときに、PCIバス2
0の使用権を獲得して当該波形サンプルを前記サウンド
入出力ボード30上に設けられた当該チャンネルのバッ
ファメモリに例えば32サンプルずつバースト転送して
いる。したがって、波形データの転送によるシステム全
体の動作効率の低下を防止すること、および、複数チャ
ンネルの波形データを同時に安定して再生することも可
能となる。
【0036】次に、このように構成された波形録音再生
装置の動作について、フローチャートを参照しながら説
明する。図4は、前記CPU10により実行されるメイ
ンルーチンの動作を示すフローチャートである。まず、
前記CPU10は、ステップS11において、各領域の
確保や、変数およびフラグの初期化等の初期設定処理を
実行する。次に、何らかの起動要因の発生を待つ(ステ
ップS12およびS13)。そして、起動要因が発生す
ると、ステップS14に進み、その起動要因が何である
かを判定する。
【0037】起動要因が、スイッチあるいはGUI画面
上の所定の領域に対するマウスのクリックなどのスイッ
チ操作であるときには、ステップS15に進み、該操作
されたスイッチに対応する処理を行う。ここで、波形再
生に対応するスイッチが操作されたときは、後述する波
形再生処理が行われることとなる。また、前記起動要因
が割り込みであるときには、ステップS16に進み、当
該割り込みに対応する処理が行われる。この割り込み処
理については、後述する。さらに、前記起動要因がスイ
ッチ操作でもなく、割り込みでもなく、終了指示でもな
いその他の処理であるときには、ステップS17に進
み、当該起動要因に対応する処理が行われる。さらにま
た、前記起動要因が終了指示であるときには、ステップ
S18に進み、メモリ領域の開放等の終了処理を実行す
る。
【0038】次に、本発明において実行される波形録音
再生処理について説明するが、その前に、前記図2に示
した前記レジスタ40中に格納されている各フラグおよ
び変数について一通り説明する。RFはランフラグ(Ru
n Flag)であり、このランフラグRFが「1」にセット
されているときに、前記カウンタ38はカウントを開始
し、RF=0のときにカウントを停止するようになされ
ている。また、前述のように、SA[x](Start Addr
ess)は第xチャンネルのPCバッファの先頭アドレ
ス、EA[x](End Address)は第xチャンネルのP
Cバッファの最終アドレス、IA[x](IRQ Addres
s)は第xチャンネルのPCバッファの割り込み要求ア
ドレス、TP[x](Transfer Pointer)は第xチャン
ネルのPCバッファの読み出し位置を示す転送ポインタ
である。SUS[x](Suspend Flag)は第1の転送回
路31によるそのチャンネルの転送が一時中断されてい
ることを示すサスペンドフラグである。
【0039】また、PSC[x](Playback Start Cou
nt)は第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](Au
dio Playback Pointer)は第xチャンネルのPバッファ
の読み出し位置を示す再生ポインタ、APF[x](Au
dio Playback Flag)は第xチャンネルの波形再生開始
/終了を指示する再生指示フラグである。
【0040】さらに、RSC[x](Recording Start
Count)は第xチャンネルのDACサイクルを単位とす
る録音開始時刻を指定する録音開始カウント値、REC
[x](Recording End Count)は第xチャンネルのD
ACサイクルを単位とする録音停止時刻を指定する録音
終了カウント値、TRP[x](Transfer Read Pointe
r)は第xチャンネルのRバッファの読み出し位置を示
す転送読み出しポインタ、TRF[x](Transfer Rea
d Flag)は第xチャンネルのRバッファからPCバッフ
ァへの転送の開始/終了を指示する転送指示フラグ、A
RP[x](Audio Rec Pointer)は第xチャンネルの
Rバッファの録音ポインタ、ARF[x](Audio Rec
Flag)は第xチャンネルの録音の開始/終了を指示する
録音指示フラグである。さらにまた、RPC(Recordin
g Pre Count)は、プリトリガー録音の場合に、何サン
プル前から録音を開始するかを指示する録音プリカウン
ト値、すなわちTRF[x]=1となった時のARP
[x]の値より、何サンプル前から転送を開始するかを
規定するデータであり、TRF[x]=1がセットされ
たタイミングにTRP[x]=ARP[x]−RPCを
転送開始アドレスとして第1の転送回路がPCバッファ
への転送を開始する。
【0041】録音を行いたい場合、操作者は、まず録音
準備の操作を行い、その後に録音開始の操作を行う。C
PU10は、前記録音準備の動作に応じて録音指示フラ
グ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に負担を掛けることはない。なお、操作者が録音開
始の指示を行うかわりに、入力波形のレベルに応じてC
PU10が録音開始の指示を発生するようにしても良
い。
【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上に
格納されている再生すべき波形データを指示するWAV
E指示データを受け取る。
【0046】次に、ステップS22に進み、前記ステッ
プS21において同時に再生することを指示されたWA
VEデータに応じて、発音チャンネルの割り当てを行
う。ここでは、前記発音チャンネルのうち現在発音され
ていないチャンネル、すなわち、第0チャンネル〜第1
5チャンネルのうちで、前記転送指示フラグTWF
[x]および再生指示フラグAPF[x]がともに
「0」であるチャンネルの中から発音すべきチャンネル
xを指定する。また、TWF[x]とAPF[x]がと
もに「0」であるチャンネルが無い場合には、再生用の
16個のチャンネルのうちの発音の一番短いチャンネル
や音量の一番小さいチャンネルを消音して、そのチャン
ネルを発音チャンネルxとして指定する。
【0047】続いて、ステップS23に進み、前記WA
VE指示データに含まれている当該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]として
は、当該波形再生指示に再生終了時刻情報が含まれてい
るときにはそれに対応する値を設定し、また、当該WA
VEデータを一通り再生する場合にはその波形サンプル
数を前記再生スタートカウント値PSC[x]に加算し
た値を設定する。ここでは、ランフラグがRF=1に設
定されており、カウンタ38が動作中であることとす
る。
【0049】以上が、波形再生指示がなされたときに前
記CPU10において実行される処理である。この処理
において、上述したように、割り当てられた発音チャン
ネルにそれぞれ対応するSA[x]、EA[x]、PS
C[x]およびPEC[x]が設定され、また、PCバ
ッファから前記Pバッファへの転送の開始を指示するT
WF[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に対応するP
Cバッファの転送ポインタTP[i]の示す記憶位置か
ら32サンプル分のWAVEデータを読み出し、バース
ト転送モードで前記第3のRAM32のiチャンネルに
対応するPバッファのポインタTWP[i]で示される
記憶位置に順次格納する。また、当該チャンネルが録音
チャンネルのときは、前記第3のRAM32のiチャン
ネルに対応するRバッファの転送読み出しポインタTR
P[x]から32サンプルの波形データを読み出し、バ
ースト転送モードで前記PCバッファの転送ポインタT
P[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】当該発音チャンネルに対応する再生指示A
PF[j]が「1」にセットされているときは、ステッ
プS53において、その発音チャンネルjに対応するP
バッファの再生ポインタAPP[j]を1つ進め、その
アドレスの波形サンプルデータ(WAVEデータ)を読
み出して、前記ミキサ34内の入力レジスタに出力し、
ステップS54に進む。一方、当該発音チャンネルに対
応するAPF[j]が「0」のときは、そのままステッ
プS54に進む。ここで、ポインタAPP[j]が対応
するPバッファの最終位置まで進行したら、APR
[j]は再び同Pバッファの先頭に戻される。そして、
ステップS54においてjをj+1にひとつ進め、上記
処理をjが16以上になるまで繰り返す(ステップS5
5)。
【0064】次に、第15チャンネルまでの処理が終了
し、前記ステップS55の判定結果がYESになると、
ステップS56に進み、当該録音チャンネルのオーディ
オデータの録音の開始/終了を指示する録音指示フラグ
ARF[j]が「1」であるか否かが判定される。この
フラグARF[x]は、CPU10により録音開始時刻
に先立って「1」に設定され、後述するタイミング発生
処理により録音停止時刻に「0」に設定されるフラグで
ある。
【0065】当該フラグARF[j]が「1」にセット
されている場合には、ステップS56の判定結果がYE
Sとなり、ステップ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が設けられている。したがって、このカウンタ3
8により約25時間を計数することができ、本発明のこ
の実施の形態においては、波形再生および録音の開始お
よび終了のタイミングをDACサイクルを単位とする時
間により制御するようにしている。すなわち、再生ある
いは録音の開始時刻および終了時刻をDACサイクルを
単位とする時刻データにより指定している。
【0069】前記タイミング発生部39は、前記カウン
タ38の計数値と前記CPU10により設定された当該
チャンネルの再生開始時刻を指定するDACサイクルを
単位とする再生開始カウント値PSC[x]、再生停止
時刻を指定するDACサイクルを単位とする再生終了カ
ウント値PEC[x]、録音開始時刻を指定するDAC
サイクルを単位とする録音開始カウント値RSC
[x]、録音停止時刻を指定するDACサイクルを単位
とする録音終了カウント値REC[x]とを比較判定
し、対応する再生指示フラグAPF[x]、あるいは、
転送指示フラグTRF[x]ないし録音指示フラグAR
F[x]をセットあるいはリセットする処理を実行する
ものである。すなわち、前記タイミング発生部39は、
まず、初期設定時に各チャンネルに対応するフラグAP
F[x]およびARF[x]を「0」にリセットする
(ステップS61)。そして、前記カウンタ38の計数
値と前記レジスタ40に設定された各チャンネルのPS
C[x]およびPEC[x]あるいはRSC[x]およ
びREC[x]とを比較し、カウンタ38の計数値と前
記各指定時刻との一致を検出する(ステップS62およ
びS63)。
【0070】そして、いずれかのチャンネルのPSC
[x]、PEC[x]、RSC[x]あるいはREC
[x]と前記カウンタ38の計数値との一致を検出した
場合には、ステップS64に進み、対応するフラグAP
F[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」とされ、RE
C[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の動作について説明する。CPU
10によりステップS24でWAVEデータの再生に使
用するチャンネルxのTWF[x]が1に設定される
と、第1の転送回路31は、ステップS32で該チャン
ネルxのフラグSUS[x]を「0」に設定する。転送
開始時にはxチャンネルのPバッファが空であり、転送
すべきデータが多いチャンネルとして、続くステップS
35ではそのチャンネルxを示すチャンネル番号がレジ
スタiに設定される。この状態で、ステップS43が繰
り返し実行されることにより、xチャンネルのPバッフ
ァには、アドレスSA[x]、EA[x]で示されるP
Cバッファに記憶されたWAVEデータの先頭部分の波
形が、DACサイクル毎に32サンプルずつ転送され
る。このようにして、xチャンネルのPバッファに波形
サンプルが準備された後、ステップS25で設定された
PSC[x]のタイミングが、タイミング発生部39の
ステップS63の処理で検出され、フラグAPF[x]
が「1」に設定される。
【0074】第2の転送回路33は、サンプル周期で実
行される転送2転送処理(図6(a))のステップS5
2においてAPF[x]が「1」に設定されたことを検
出し、Pバッファに準備された波形サンプルをポインタ
APP[x]を更新しながら読み出してミキサ34内の
入力レジスタに供給する。ミキサ34に供給された波形
サンプルは、DSP35により適宜エフェクトを付与さ
れた後、D/A変換器37に出力されサウンドシステム
29から出力される。このようにして第2の転送回路に
よってPバッファ上の波形サンプルが再生されている間
にも、第1の転送回路は並列に動作しており、再生によ
りxチャンネルのPバッファの空き領域が増加した場合
には、前記WAVEデータの前記先頭部分に続く後続波
形のサンプルをPCバッファからPバッファに順次転送
する。
【0075】さて、以上説明したのは、前記第1のRA
M12の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)「W
4レベル制御命令」、「W10レベル制御命令」等の各
WAVEデータの再生レベルを制御して当該WAVEデ
ータのフェードインやフェードアウト等を行う命令や
「W1効果制御命令」等の当該WAVEデータに対して
付加するエフェクト(例えば、リバーブ等)を制御する
波形制御命令がある。前記波形再生命令には、当該WA
VEデータの名称、記憶位置(アドレス)、サンプリン
グ周波数、その再生に要する時間等が含まれている。
【0078】図7の(b)に示すように、各WAVEデ
ータは例えば前記ハードディスク装置23に格納されて
おり、前記シーケンスデータの再生に必要とされるWA
VEデータが順次前記第1のRAM12に読み出されて
格納される。すなわち、当該シーケンスデータの再生に
必要とされるWAVEデータをすべてRAM12に転送
しておくのではなく、最初に必要とされる所定数のWA
VEデータを前記RAM12に転送しておき、1つのW
AVEデータの再生が終了した後、次に再生されるWA
VEデータを前記RAM12にロードするようにしてい
る。
【0079】このようなシーケンスデータの再生を行う
ときの動作について、図8および図9に示すフローチャ
ートを参照して説明する。図8に示すのは、前記メイン
プログラム(図4)において、シーケンス再生指示イベ
ントが発生したときに前記ステップS15のスイッチ操
作に対応する処理として実行されるシーケンス再生指示
イベント処理のフローチャートであり、この処理は前記
CPU10により実行される。
【0080】シーケンス再生指示イベントが発生する
と、CPU10は、ステップS71において当該シーケ
ンス再生指示イベントに含まれている再生すべきシーケ
ンスに対応するシーケンス指示データを受け取る。そし
て、前記ランフラグRFを「0」に初期化する(S7
2)。これにより、前記カウンタ38が停止される。続
いて、ステップS73に進み、前記ステップS71にお
いて受け取ったシーケンス指示データにより指定された
シーケンスデータを解析し、当該シーケンスデータの再
生に必要とされる最大チャンネル数(最大トラック数)
nを算出し、該最大トラック数nに対応する発音チャン
ネルを割り当てる。ここで、前記第1のRAM12上の
PCバッファ領域に前記n個のチャンネルのWAVEデ
ータを格納する領域を確保する。
【0081】次に、ステップS74において、当該シー
ケンスデータにおいて再生されるはじめからn個のWA
VEデータを前記ハードディスク装置23から読み出し
て前記第1のRAM12上のPCバッファの前記ステッ
プS73において確保された領域にロードする。そし
て、ステップS75において、該n個のチャンネルにR
AM12上の前記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のRA
M12中に格納されている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のRAM
12上のPCバッファからそれぞれ対応するWAVEデ
ータが前記第3のRAM32上のPバッファに転送さ
れ、WAVEデータの再生が進行するが、前記PCバッ
ファ上のデータの転送ポインタTP[x]が前記割り込
み要求アドレスIA[x]に達したときに、前述したよ
うにチャンネル割り込みが発生する。すなわち、このチ
ャンネル割り込みは当該チャンネルのPCバッファの最
後まで読み出したときに発生するため当該WAVEデー
タがすべて前記当該Pバッファに転送されたことを示し
ており、次に再生すべきWAVEデータを前記第1のR
AM12の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に代入し(S8
2)、当該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データの先頭波形をP
CバッファからPバッファに順次転送する。そして、対
応する再生開始カウント値PSC[x]および再生停止
カウント値PEC[x]をセットする(S86)。以上
のように、チャンネル割り込みが発生したときに、次に
再生されるデータを前記PCバッファに転送し、対応す
る波形再生のための準備処理が実行される。このように
して準備されたkチャンネルのWAVEデータは、図8
のシーケンスの準備処理で説明したn個のWAVEデー
タと同様の方法で、PSC[k]からPEC[k]のタ
イミングに再生される。
【0089】次に、前記ステップS78(図8)におけ
るその他割り込み設定に対応する制御割り込み処理につ
いて、図9の(b)に示すフローチャートを参照して説
明する。前記カウンタ38の計数値が前記ステップS7
8によりレジスタに設定されたカウント値となり前記制
御割り込みが発生されると、前記CPU10は、まず、
このタイミングの制御命令(前記図7の(a)に示す例
では「W4レベル制御命令」)に基づく制御処理を実行
する。これは、例えば、当該制御命令に対応するレベル
制御データ等を前記レジスタ40に書き込むことにより
実行され、ミキサ34における当該チャンネルのレベル
が制御される。また、効果制御命令の場合は、対応する
DSP制御パラメータ等が前記レジスタ40に書き込ま
れ、DSPで行われているエフェクト処理の内容が制御
される。
【0090】次に、前記CPU10は、ステップS92
に進み、前記シーケンスデータ中に次の制御命令がある
か否かをサーチする。そして、制御命令が存在しなかっ
たときには、そのまま、この制御割り込み処理を終了す
る。一方、前記ステップS92の結果、次の制御命令が
見つかったときは、その制御命令のタイミング情報、す
なわち、その制御命令が実行されるタイミングを示すカ
ウント値を前記時間データに基づいて算出し、それを前
記レジスタに設定する(S93)。そして、この制御割
り込み処理を終了する。これにより、次の制御命令のタ
イミングになったときに、再び制御割り込み処理が実行
されることとなる。このようにして、シーケンスデータ
に基づく、ハードディスク装置23に記憶された複数W
AVEデータのそれぞれ指定タイミングでの再生、およ
び、各指定タイミングでのレベル制御、効果制御が行わ
れる。
【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】さらに、本発明においては、前記CPU1
0により波形サンプルデータをソフトウエアにより生成
するいわゆるソフトウエア音源を用いて生成した波形サ
ンプルデータを再生することも可能である。この場合に
は、図示しないMIDIインターフェース等を通じて入
力されたMIDIデータに基づいて前記CPU10によ
り例えば16チャンネル分の楽音波形サンプルを演算生
成し、該演算生成した楽音波形サンプルを前記第1のR
AM12上の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バ
ッファを設けるようにしても良い。要するに、前記CP
U10のメモリ空間上に、前記PCバッファが配置され
ていればよい。さらにまた、上述した実施の形態におい
ては、前記サウンド入出力ボード30上にA/D変換器
36およびD/A変換器37を設けているが、これらの
回路をサウンド入出力ボード上に設けず、USB(Univ
esal Serial Bus)あるいはIEEE1394等のシリ
アルインターフェースを介してデジタルオーディオ機器
等に接続するようにしても良い。この場合には、デジタ
ルデータで入出力を行うことができ、ノイズ等の混入を
防止することができる。
【0097】さらにまた、上述した実施の形態において
は、前記カウンタ38がDACサイクルを計数する32
ビット構成のものである場合について説明したが、これ
に限られることはない。例えば、カウンタのビット数は
これに限られることはなく、また、カウンタによりDA
Cサイクルの1/2あるいは1/4の周期を有するパル
スを計数するようにして、計数する時刻データの分解能
をより向上させるようにしてもよい。さらにまた、前述
したPバッファ、Rバッファのサイズ、再生および録音
のチャンネル数、ミキサのチャンネル数、波形サンプル
データのビット数等は、いずれも、上述した実施の形態
に記載した数値に限られることはなく、それぞれ、任意
の値に変更することが可能である。さらにまた、上述し
た実施の形態においては、前記サウンド入出力ボード3
0がPCIバスに接続されているものとして説明した
が、これに限られることはない。
【0098】
【発明の効果】以上説明したように、本発明の波形再生
方法、波形再生装置、波形出力回路およびシーケンス再
生装置によれば、DACサイクルを単位とする時刻デー
タに基づいて波形の再生の開始、終了のタイミングを制
御することができるため、高精度のタイミング制御が可
能となる。また、再生の制御をCPUが直接に行ってい
ないため、CPUの処理の実行状況に応じて、波形再生
のタイミングが変動することがなく、高精度の波形再生
を行うことが可能となる。これにより、複数のチャンネ
ルの波形再生を行うときであっても、波形相互間の干渉
を防止することが可能となる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態である波形録音再生装
置における一実施の形態の構成を示すブロック図であ
る。
【図2】 図1に示した実施の形態におけるサウンド入
出力ボードの構成例を示すブロック図である。
【図3】 図1に示した実施の形態におけるデータの流
れを説明するための図である。
【図4】 本発明の一実施の形態である波形録音再生装
置におけるメインルーチンのフローチャートである。
【図5】 本発明の一実施の形態である波形録音再生装
置における再生指示イベント処理および第1の転送回路
の動作を説明するためのフローチャートである。
【図6】 本発明の一実施の形態である波形録音再生装
置における第2の転送回路の動作およびタイミング発生
処理を説明するためのフローチャートである。
【図7】 本発明の一実施の形態である波形録音再生装
置におけるシーケンスデータおよび第1のRAMにおけ
る記憶領域の使用例を説明するための図である。
【図8】 本発明の一実施の形態である波形録音再生装
置におけるシーケンス再生指示イベント処理を説明する
ためのフローチャートである。
【図9】 本発明の一実施の形態である波形録音再生装
置におけるチャンネル割込処理および制御割込処理を説
明するためのフローチャートである。
【符号の説明】
10 CPU、11 ROM、12、21、32 RA
M、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 (4)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置の指示に応じて波形デー
    タを再生する波形再生方法であって、 A.前記中央処理装置の指示に応じて、メモリに記憶さ
    れた波形データを、先頭より一部分ずつ、バスを介して
    順次バッファメモリに転送するステップ、 B.タイミングパルスを計数するカウンタの計数値と前
    記中央処理装置により設定されたタイミングデータとの
    一致を検出したときに、タイミング信号を発生するステ
    ップ、および、 C.前記ステップBにより発生されたタイミング信号に
    応じて、前記バッファメモリに記憶された波形データを
    先頭より順次再生するステップ を有することを特徴とする波形再生方法。
  2. 【請求項2】 装置全体を制御する中央処理装置と、 前記中央処理装置に接続された第1のバスと、 前記第1のバスに接続され、複数の波形データを記憶す
    るメモリと、 前記第1のバスとは独立に設けられた第2のバスと、 前記第2のバスに接続され、それぞれ、波形データの一
    部を記憶可能な複数チャンネル分の記憶領域を有するバ
    ッファメモリと、 前記中央処理装置の指示に応じて、各チャンネルで再生
    する前記波形データを先頭より順次、前記メモリから前
    記バッファメモリの各チャンネルに対応した記憶領域に
    供給する供給手段と、 前記中央処理装置により各チャンネルのタイミングデー
    タが設定されるレジスタと、 タイミングパルスを計数するカウンタと、 該カウンタの計数値と前記レジスタに設定されている前
    記タイミングデータに基づいて、各チャンネルのタイミ
    ング信号を発生するタイミング発生手段と、 前記タイミング信号に応じて、前記バッファメモリの当
    該チャンネルに対応した記憶領域から波形データを読み
    出して再生する読出再生手段とを有することを特徴とす
    る波形再生装置。
  3. 【請求項3】 バスに接続された複数の波形データを
    記憶するメモリから波形データを読み出して再生する波
    形出力回路であって、 それぞれ複数チャンネルの各チャンネル毎に波形データ
    の一部を記憶可能な複数の記憶領域を有するバッファメ
    モリと、 前記バスを介して、前記メモリから各チャンネルで再生
    する前記波形データを先頭より順次、前記バッファメモ
    リの各チャンネルに対応した記憶領域に供給する供給手
    段と、 タイミングデータを記憶するレジスタと、 タイミングパルスを計数するカウンタと、 該カウンタの計数値と前記レジスタに設定されている前
    記タイミングデータに基づいて各チャンネルのタイミン
    グ信号を発生するタイミング発生手段と、 前記タイミング信号に応じて、前記バッファメモリの当
    該チャンネルに対応した記憶領域から波形データを読み
    出して再生する読出再生手段とを有することを特徴とす
    る波形出力回路。
  4. 【請求項4】 n個(nは整数)のチャンネルを使用
    した波形データのシーケンス再生装置であって、 複数の波形データを記憶するメモリと、 前記複数の波形データの再生タイミングを示す複数のイ
    ベントデータを順次記憶したシーケンスメモリと、 nチャンネルに対応したn個の記憶領域を有するバッフ
    ァメモリと、 前記シーケンスメモリに記憶されたイベントデータを、
    早いタイミングのものより順次n個のチャンネルのうち
    の開放チャンネルに割り当てるチャンネル割当手段と、 前記複数の波形データのうち、各チャンネルに割り当て
    られたイベントデータにより指示される波形データを、
    その先頭部分より一部分ずつ、順次対応するチャンネル
    の前記記憶領域に供給する供給手段と、 タイミングパルスを計数するカウンタと、 前記カウンタのカウント値に基づき、各チャンネルに割
    り当てられたイベントデータの再生タイミングを検出す
    る検出手段と、 再生タイミングの検出に応じて、検出されたチャンネル
    の記憶領域に記憶された波形データを順次読み出して再
    生する読出再生手段と、 前記読出再生手段による読み出しの終了したチャンネル
    を検出し、該チャンネルを開放するチャンネル開放手段
    とを有することを特徴とするシーケンス再生装置。
JP10013545A 1998-01-09 1998-01-09 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置 Expired - Fee Related JP3127873B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10013545A JP3127873B2 (ja) 1998-01-09 1998-01-09 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置
US09/222,753 US6366971B1 (en) 1998-01-09 1998-12-29 Audio system for playback of waveform sample data
US09/948,157 US6553436B2 (en) 1998-01-09 2001-09-06 Apparatus and method for playback of waveform sample data and sequence playback of waveform sample data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10013545A JP3127873B2 (ja) 1998-01-09 1998-01-09 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置

Publications (2)

Publication Number Publication Date
JPH11202870A true JPH11202870A (ja) 1999-07-30
JP3127873B2 JP3127873B2 (ja) 2001-01-29

Family

ID=11836137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10013545A Expired - Fee Related JP3127873B2 (ja) 1998-01-09 1998-01-09 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置

Country Status (1)

Country Link
JP (1) JP3127873B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904406B2 (en) * 1999-12-22 2005-06-07 Nec Corporation Audio playback/recording apparatus having multiple decoders in ROM
US7236599B1 (en) 2000-05-22 2007-06-26 Intel Corporation Generating separate analog audio programs from a digital link

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904406B2 (en) * 1999-12-22 2005-06-07 Nec Corporation Audio playback/recording apparatus having multiple decoders in ROM
US7236599B1 (en) 2000-05-22 2007-06-26 Intel Corporation Generating separate analog audio programs from a digital link

Also Published As

Publication number Publication date
JP3127873B2 (ja) 2001-01-29

Similar Documents

Publication Publication Date Title
JP3161561B2 (ja) マルチメディア・システム
US6553436B2 (en) Apparatus and method for playback of waveform sample data and sequence playback of waveform sample data
JP2692768B2 (ja) ディジタル・オーディオ及びmidi合成音楽を同時に出力する方法及び装置
JP5614420B2 (ja) 楽音発生装置、電子楽器、プログラム及び楽音発生方法
JP3637578B2 (ja) 楽音生成方法
JPH0922287A (ja) 楽音波形生成方法
JP3163984B2 (ja) 楽音発生装置
US5321198A (en) Tone signal generator utilizing ancillary memories for electronic musical instrument
JP3127873B2 (ja) 波形再生方法、波形再生装置、波形出力回路およびシーケンス再生装置
JP3235557B2 (ja) 波形再生装置、波形録音再生装置、波形出力回路、波形入出力回路、波形再生方法および波形録音再生方法
JPH07121181A (ja) 音声情報処理装置
JP4120979B2 (ja) 波形再生装置
JP3637577B2 (ja) 楽音生成方法
JP2000163057A (ja) 音声割当装置及び音声割当方法並びに音声割当処理のプログ ラムを記録した記録媒体
JP3003559B2 (ja) 楽音生成方法
JP3152156B2 (ja) 楽音発生システム、楽音発生装置および楽音発生方法
CA2118465C (en) Interrupt information generating apparatus and speech information processing apparatus
JP2000242265A (ja) 自動演奏装置
JP6531432B2 (ja) プログラム、音源装置及び音響信号生成装置
JP2576615B2 (ja) 処理装置
US6414232B2 (en) Tone generation method and apparatus based on software
JP3740717B2 (ja) 音源装置及び楽音生成方法
JPH1031486A (ja) 演奏データ記憶再生方法および装置
JP3518357B2 (ja) 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2576323B2 (ja) 演奏記録再生装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001010

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

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20081110

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081110

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091110

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101110

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111110

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121110

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20131110

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees