JPH10111688A - 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 - Google Patents

楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体

Info

Publication number
JPH10111688A
JPH10111688A JP9223035A JP22303597A JPH10111688A JP H10111688 A JPH10111688 A JP H10111688A JP 9223035 A JP9223035 A JP 9223035A JP 22303597 A JP22303597 A JP 22303597A JP H10111688 A JPH10111688 A JP H10111688A
Authority
JP
Japan
Prior art keywords
waveform
processing
buffer
samples
effect
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
JP9223035A
Other languages
English (en)
Other versions
JP3852634B2 (ja
Inventor
Genichi Tamura
元一 田邑
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 JP22303597A priority Critical patent/JP3852634B2/ja
Publication of JPH10111688A publication Critical patent/JPH10111688A/ja
Application granted granted Critical
Publication of JP3852634B2 publication Critical patent/JP3852634B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】演算処理装置上で所定の楽音生成ソフトウェア
を実行することにより楽音を生成するソフト音源におい
て、効果付与処理の計算順序を動的に変更できるように
すること、および、波形生成処理時、特に効果付与の計
算処理時にキャッシュミスが起こりにくく効率良く計算
処理できるようにすることを目的とする。 【解決手段】波形生成用バッファ上で行なう波形生成処
理の単位をキャッシュメモリのラインサイズまたはその
所定整数倍のサイズとし、キャッシュミスを起こりにく
くする。エフェクト対応に設けられた複数の波形生成用
バッファの構成を同一とし、エフェクト処理は対応する
バッファ上で行なうとともに、add処理でどのバッフ
ァからどのバッファへでも累算できるようにし、ユーザ
が任意にソフトエフェクタのアルゴリズムを指定して
も、該アルゴリズムに応じてエフェクト処理とadd処
理の順序を入れ替えるだけでよくなるようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、演算処理装置上
で所定の楽音生成ソフトウェアを実行することにより楽
音を生成する楽音発生装置および楽音発生方法、並びに
該方法に係るプログラムを記憶した記憶媒体に関する。
【0002】
【従来の技術】従来より、CPUなどの汎用の演算処理
装置上で所定の楽音生成ソフトウェアを実行することに
より楽音を生成する楽音発生装置が知られている。これ
は、いわゆるソフトウェア音源あるいはソフト音源と呼
ばれる方式のものである。ソフト音源においても、やは
りソフトウェア(ソフトエフェクタ)を用いて、生成し
た楽音に残響効果(リバーブ)などの効果(エフェク
ト)付与処理を施して出力するものがある。近年では、
ソフト音源においても高機能化が求められ、多種多様な
効果付与を施したいという要求がある。
【0003】ソフト音源においては、ソフトウェアで楽
音を生成する際に複数サンプルをまとめて生成するた
め、波形生成用バッファ領域が設けられる。図3(b)
は、そのような波形生成用バッファ領域の例を示す。図
3(b)において、1,2,…,128は128組の波
形サンプル(時間的な順序で並んでいる時系列データで
ある)格納領域である。1組の波形サンプル格納領域
は、DryL,DryR,Revからなる。DryLは
ステレオ左側のリバーブをつけない波形サンプルの格納
領域、DryRはステレオ右側のリバーブをつけない波
形サンプルの格納領域、Revはリバーブへの入力とす
るための波形サンプルの格納領域である。要するに、
(DryL,DryR,Rev)を1単位としてインタ
ーリーブ形式で波形サンプルを持つようにしていた。こ
れは、波形計算部分で、各チャンネルの出力データを書
き出す際にこのような順番に並んでいると都合が良かっ
たためである。
【0004】ソフト音源では、例えば、所定の時間間隔
であるフレームごとに、楽音生成すべき全チャンネルの
1フレーム分の波形サンプル(128サンプル)を生成
し図3(b)の波形生成用バッファに累算して発音する
波形データを算出する。始めに第1チャンネルの128
サンプルを生成し重み付け(各サンプルのDryL,D
ryR,Revの各値にそれぞれ所定の係数を乗算する
こと)して図3(b)の波形生成用バッファに格納し、
次に第2チャンネルの128サンプルを生成し重み付け
して図3(b)の波形生成用バッファに累算し、次に第
3チャンネルの128サンプルを生成し重み付けして図
3(b)の波形生成用バッファに累算し、…という具合
である。これにより、発音すべきチャンネルの波形サン
プルの累算結果が128サンプル分得られる。生成した
波形データは、例えばDMAC(ダイレクトメモリアク
セスコントローラ)に指示してサウンドI/O(楽音波
形データの入出力を実行するコーデック(CODEC)
と呼ばれるLSI)に渡し、サウンドI/Oがディジタ
ルアナログ(D/A)変換してサウンドシステムにより
放音する。
【0005】
【発明が解決しようとする課題】ところで、ソフト音源
でも多様な効果付与を実現したいという要求はあるが、
通常、複数の効果付与処理を行なう場合の計算順序(い
わばソフトエフェクタの結線関係)は動的に変更できる
ものではないという不具合がある。
【0006】また、ソフト音源に用いる演算処理装置に
は内部または外部にキャッシュメモリを備えたものも用
いられるが、図3(b)のような波形生成用バッファの
データ構造だと、波形生成処理時、特にソフトエフェク
タによる計算処理時にキャッシュミスが起こりやすいと
いう不具合がある。例えば、図3(b)の例では、リバ
ーブ付与の計算を行なうソフトエフェクタはインターリ
ーブ形式で飛び飛びに格納されている128サンプル分
のRevを取り出して計算処理することになり、キャッ
シュミスが起こりやすい。付与する効果がリバーブだけ
の場合はそれ程のオーバヘッドは生じないが、付与する
効果が増えると、特にキャッシュミスが起こりやすくな
る。例えば、3種類(リバーブ、コーラス、バリエーシ
ョン)の効果付与で出力が7系統の場合、図3(b)の
データ構造を拡張して(DryL,DryR,Rev,
ChorusL,ChorusR,Variation
L,VariationR)を1単位として128サン
プル分並べた波形生成用バッファを用いることにする
と、エフェクタは、 VariationL,VariationRを12
8サンプル分まとめてバリエーションの計算処理を実行 ChorusL,ChorusRを128サンプル分
まとめてコーラスの計算処理を実行 Revを128サンプル分まとめてリバーブの計算処
理を実行 という順序で計算するため、波形生成用バッファ領域上
の飛び飛びのデータ領域を頻繁に行ったり来たりしてア
クセスしなければならず、頻繁にキャッシュミスが起こ
り大変効率が悪い。
【0007】この発明は、ソフト音源において、効果付
与処理の計算順序を動的に変更できるようにした楽音発
生装置および楽音発生方法、並びに該方法に係るプログ
ラムを記憶した記憶媒体を提供することを目的とする。
また、ソフト音源において、波形生成処理時、特に効果
付与の計算処理時にキャッシュミスが起こりにくく効率
良く計算処理できるようにした楽音発生装置および楽音
発生方法、並びに該方法に係るプログラムを記憶した記
憶媒体を提供することを目的とする。
【0008】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る楽音発生装置は、各種のソフトウェ
アを実行可能な演算処理装置と、前記演算処理装置の内
部または外部に設けられたキャッシュメモリと、前記演
算処理装置が実行する波形生成ソフトウェアを格納した
記憶装置と、前記演算処理装置で前記波形生成ソフトウ
ェアを実行することにより所定時間長さの時間フレーム
で再生すべき複数の波形サンプルを一括して生成する際
に、ワーキング領域として使用する波形生成用バッファ
であって、波形生成処理が終了したときは最終的に生成
された波形サンプルが設定される波形生成用バッファと
を備えるとともに、前記波形生成ソフトウェアは、所定
量の波形サンプル(nサンプル)を生成する波形生成処
理を含み、該処理を所定回数(m回)繰り返すことで、
前記波形生成用バッファに1フレーム分の波形サンプル
を生成するものであり、前記所定量の波形サンプルの前
記波形生成用バッファ上の長さを前記キャッシュメモリ
のラインサイズまたはその所定整数倍のサイズとするこ
とを特徴とする。波形生成処理は、エフェクト付与処理
も含む。後述する発明の実施の形態では、各チャンネル
のnサンプル分の波形生成処理を発音チャンネル数分行
ない、それをm回繰り返すことで1フレーム分の波形サ
ンプルを生成する例と、nサンプル分のエフェクトの処
理を複数エフェクトについて行ない、それをm回繰り返
すことで1フレーム分のエフェクト処理を行なう例を示
してある。
【0009】請求項2に係る楽音発生装置は、各種のソ
フトウェアを実行可能な演算処理装置と、前記演算処理
装置の内部または外部に設けられたキャッシュメモリ
と、生成された複数波形サンプルを記憶する波形バッフ
ァであって、該波形バッファは複数のエフェクト対応に
複数設けられているものと、複数のエフェクト処理ソフ
トウェアを格納した記憶装置であって、各エフェクト処
理ソフトウェアは、対応する波形バッファの複数波形サ
ンプルに対して所定のエフェクト処理を施し、処理後の
波形サンプルを対応する波形バッファに書き込むもので
あるものと、前記波形バッファのうちの任意の1つの波
形サンプルに所定のレベル制御を施して別の任意の波形
バッファに記憶された波形サンプルに足して再び同記憶
位置に書き込むadd処理ソフトウェアを格納した記憶
装置と、各波形バッファ上で実行される各波形バッファ
に対応する前記エフェクト処理、および任意の2つの波
形バッファ間で実行される前記add処理に関して、所
望のエフェクトアルゴリズムに応じて、エフェクト処理
とadd処理の処理順序を指定し、該add処理で加算
する波形バッファと加算される波形バッファを指定する
手段とを備えたことを特徴とする。
【0010】請求項3に係る楽音発生装置は、各種のソ
フトウェアを実行可能な演算処理装置と、生成された複
数波形サンプルを記憶する波形バッファであって、該波
形バッファは複数のエフェクト対応に複数設けられると
ともに、各波形バッファの構成は同一であるものと、複
数のエフェクト処理ソフトウェアを格納した記憶装置で
あって、各エフェクト処理ソフトウェアは、対応する波
形バッファの複数波形サンプルに対して所定のエフェク
ト処理を施し、処理後の波形サンプルを対応する波形バ
ッファに書き込むものであるものと、前記波形バッファ
のうちの任意の1つの波形サンプルに所定のレベル制御
を施して別の任意の波形バッファに記憶された波形サン
プルに足して再び同記憶位置に書き込むadd処理ソフ
トウェアを格納した記憶装置と、ユーザが前記複数エフ
ェクト間の結線状態を示すアルゴリズムを指定するため
の指定手段と、各波形バッファ上で実行される各波形バ
ッファに対応する前記エフェクト処理、および任意の2
つの波形バッファ間で実行される前記add処理に関し
て、前記指定手段で指定されたアルゴリズムに応じて、
複数エフェクト処理および複数add処理の処理順序を
変更するとともに、各add処理で加算する波形バッフ
ァと加算される波形バッファを設定する設定手段とを備
えたことを特徴とする。
【0011】請求項4に係る発明は、キャッシュメモリ
を備えた処理装置で実行され、複数チャンネル分の楽音
を発生可能な楽音発生方法であって、演奏情報を供給す
るステップと、所定時間間隔でタイミング信号を発生す
るステップと、前記タイミング信号の発生ごとに、前記
演奏情報に応じた複数チャンネル分の波形データを、連
続する複数サンプル分、生成して出力する生成ステップ
と、生成された波形データを、サンプリング周期ごとに
1サンプルずつディジタルアナログ変換器に供給し、ア
ナログ波形に変換するステップとを備えるとともに、前
記生成ステップでは、処理装置のキャッシングの単位に
対応した所定数のサンプルの生成を複数チャンネル分実
行し、それを複数回繰り返すことで前記連続する複数サ
ンプル分の波形データを生成することを特徴とする。
【0012】請求項5に係る発明は、キャッシュメモリ
を備えた処理装置で実行され、複数チャンネル分の楽音
を発生可能な楽音発生方法であって、演奏情報を供給す
るステップと、所定時間間隔でタイミング信号を発生す
るステップと、前記タイミング信号の発生ごとに、前記
演奏情報に応じた複数チャンネル分の波形データを、連
続する複数サンプル分生成し、さらに複数エフェクト処
理を施して出力する生成ステップと、出力された波形デ
ータを、サンプリング周期ごとに1サンプルずつディジ
タルアナログ変換器に供給し、アナログ波形に変換する
ステップとを備えるとともに、前記生成ステップでは、
処理装置のキャッシングの単位に対応した所定数のサン
プルを生成し、前記複数のエフェクト処理に対応した複
数バッファに出力する処理を複数チャンネル分実行し、
それを複数回繰り返すことで複数バッファ上に前記連続
する複数サンプル分の波形データを生成するとともに、
前記複数エフェクト処理では、それぞれ対応するバッフ
ァの波形データを入力として処理を行なうことを特徴と
する。
【0013】請求項6に係る発明は、キャッシュメモリ
を備えた処理装置で実行され、複数チャンネル分の楽音
を発生可能な楽音発生方法であって、演奏情報を供給す
るステップと、所定時間間隔でタイミング信号を発生す
るステップと、前記演奏情報に応じて、前記タイミング
信号の発生ごとに、処理装置のキャッシングの単位に対
応した所定数のサンプルを生成して複数のエフェクト処
理に対応した複数バッファに出力する処理を複数チャン
ネル分実行し、それを複数回繰り返すことで複数バッフ
ァ上に連続する複数サンプル分の波形データを生成する
生成ステップと、対応するバッファの複数波形サンプル
に対してエフェクト付与処理を施した後、処理後の波形
サンプルをそのバッファに書き込む、各バッファに対応
した複数のエフェクト処理と、任意の1つのバッファ上
の波形サンプルに所定のレベル制御を施して別の任意の
バッファに記憶された波形サンプルに足して再び同記憶
位置に書き込むadd処理とを、指定されたエフェクト
アルゴリズムに応じた処理順序で実行することにより、
エフェクト処理を施した波形データを生成出力するエフ
ェクト処理ステップと、該エフェクト処理ステップから
出力された波形データを、サンプリング周期ごとに1サ
ンプルずつディジタルアナログ変換器に供給し、アナロ
グ波形に変換するステップとを備えたことを特徴とす
る。
【0014】請求項7に係る発明は、キャッシュメモリ
を備えた処理装置で実行され、複数チャンネル分の楽音
を発生する楽音発生方法に係るプログラムを記憶した記
憶媒体であって、前記楽音発生方法に係るプログラム
は、演奏情報を供給するステップと、所定時間間隔でタ
イミング信号を発生するステップと、前記タイミング信
号の発生ごとに、前記演奏情報に応じた複数チャンネル
分の波形データを、連続する複数サンプル分、生成して
出力する生成ステップと、生成された波形データを、サ
ンプリング周期ごとに1サンプルずつディジタルアナロ
グ変換器に供給し、アナログ波形に変換するステップと
を備えるとともに、前記生成ステップでは、処理装置の
キャッシングの単位に対応した所定数のサンプルの生成
を複数チャンネル分実行し、それを複数回繰り返すこと
で前記連続する複数サンプル分の波形データを生成する
ことを特徴とする。
【0015】請求項8に係る発明は、キャッシュメモリ
を備えた処理装置で実行され、複数チャンネル分の楽音
を発生可能な楽音発生方法に係るプログラムを記憶した
記憶媒体であって、前記楽音発生方法に係るプログラム
は、演奏情報を供給するステップと、所定時間間隔でタ
イミング信号を発生するステップと、前記タイミング信
号の発生ごとに、前記演奏情報に応じた複数チャンネル
分の波形データを、連続する複数サンプル分生成し、さ
らに複数エフェクト処理を施して出力する生成ステップ
と、出力された波形データを、サンプリング周期ごとに
1サンプルずつディジタルアナログ変換器に供給し、ア
ナログ波形に変換するステップとを備えるとともに、前
記生成ステップでは、処理装置のキャッシングの単位に
対応した所定数のサンプルを生成し、前記複数のエフェ
クト処理に対応した複数バッファに出力する処理を複数
チャンネル分実行し、それを複数回繰り返すことで複数
バッファ上に前記連続する複数サンプル分の波形データ
を生成するとともに、前記複数エフェクト処理では、そ
れぞれ対応するバッファの波形データを入力として処理
を行なうことを特徴とする。
【0016】請求項9に係る発明は、キャッシュメモリ
を備えた処理装置で実行され、複数チャンネル分の楽音
を発生可能な楽音発生方法に係るプログラムを記憶した
記憶媒体であって、前記楽音発生方法に係るプログラム
は、演奏情報を供給するステップと、所定時間間隔でタ
イミング信号を発生するステップと、前記演奏情報に応
じて、前記タイミング信号の発生ごとに、処理装置のキ
ャッシングの単位に対応した所定数のサンプルを生成し
て複数のエフェクト処理に対応した複数バッファに出力
する処理を複数チャンネル分実行し、それを複数回繰り
返すことで複数バッファ上に連続する複数サンプル分の
波形データを生成する生成ステップと、対応するバッフ
ァの複数波形サンプルに対してエフェクト付与処理を施
した後、処理後の波形サンプルをそのバッファに書き込
む、各バッファに対応した複数のエフェクト処理と、任
意の1つのバッファ上の波形サンプルに所定のレベル制
御を施して別の任意のバッファに記憶された波形サンプ
ルに足して再び同記憶位置に書き込むadd処理とを、
指定されたエフェクトアルゴリズムに応じた処理順序で
実行することにより、エフェクト処理を施した波形デー
タを生成出力するエフェクト処理ステップと、該エフェ
クト処理ステップから出力された波形データを、サンプ
リング周期ごとに1サンプルずつディジタルアナログ変
換器に供給し、アナログ波形に変換するステップとを備
えたことを特徴とする。
【0017】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0018】図1は、この発明に係る楽音発生装置を適
用した電子楽器のブロック構成図を示す。この電子楽器
は、中央処理装置(CPU)101、リードオンリメモ
リ(ROM)102、ランダムアクセスメモリ(RA
M)103、ドライブ装置104、タイマ106、ネッ
トワーク入出力(I/O)インタフェース107、キー
ボード108、ディスプレイ109、ハードディスク1
10、サンプリングクロック(Fs)発生器111、サ
ウンドI/O112、DMA(ダイレクトメモリアクセ
ス)コントローラ114、サウンドシステム115、お
よびバスライン116を備えている。
【0019】CPU101は、この電子楽器全体の動作
を制御する。CPU101は、内部にキャッシュメモリ
117を備えたものである。キャッシュメモリ117の
キャッシュライン(キャッシュブロック)サイズは32
バイトである。すなわち、CPU101がROM102
やRAM103などから適当なアドレスのデータを読み
出した際には、そのアドレスを含む連続した32バイト
がキャッシュメモリ117の所定のキャッシュラインに
コピーされる。その後、この32バイトの何れかのデー
タに対する読み出しが発生したときには、ROM102
やRAM103から読み出す代わりに、当該キャッシュ
ラインのデータを供給する。キャッシュメモリ117の
アクセスは非常に高速に行なわれるので、データがキャ
ッシュメモリ117上にある間は、非常に高速に処理で
きる。なお、キャッシュメモリには、ライトスルー方式
とライトバック方式とがあるが、ここで用いたキャッシ
ュメモリ117はライトスルー方式とする。
【0020】ROM102は、CPU101が実行する
制御プログラム(ソフトエフェクタを含むソフト音源の
プログラムなど)や各種の定数データなどを格納する。
またROM102上には、CPU101がソフト音源の
プログラムを実行して楽音生成するときに使用する波形
データ(所定のレートでサンプリングされた波形サンプ
ルデータ)が用意されている。なお、制御プログラムや
各種定数データなど、および波形データは、ROM10
2でなく、RAM103上に用意したものを使用するこ
ともできる。この場合、制御プログラムなどのデータ
は、CD−ROMなどの外部記憶媒体やネットワークI
/O107から供給され、RAM103上に展開された
り、ハードディスク110に保存される。RAM103
には、各種のレジスタ、波形生成用バッファ、再生バッ
ファなどのワーク領域が設けられる。ドライブ装置10
4は、FD(フロッピーディスク)やフラッシュカード
などの外部記憶媒体105との間で各種データを入出力
するためのものである。ハードディスク110は、各種
データの記録用に用いる記憶装置である。
【0021】タイマ106は、CPU101に対して所
定間隔でタイマ割り込みを発生させるためのタイマクロ
ック信号を発生する。ネットワークI/Oインタフェー
ス107は、外部の公衆回線やLAN(ローカルエリア
ネットワーク)を介して各種データを授受するためのイ
ンタフェースである。キーボード108は、各種の情報
を入力するために用いるタイピングキーボードである。
ディスプレイ109は、各種の情報を表示するディスプ
レイである。ユーザは、キーボード108およびディス
プレイ109を用いてこの電子楽器に対する各種の設定
操作および指示操作を行なうことができる。
【0022】Fs発生器111は、サウンドI/O11
2に与える周波数Fsのサンプリングクロックを発生す
る。サウンドI/O112は、コーデック(CODE
C)と呼ばれるLSIからなる。サウンドI/O112
は、アナログディジタル(A/D)変換機能およびディ
ジタルアナログ(D/A)変換機能を備えており、A/
D入力端子には外部入力113からのアナログ楽音信号
が入力し、D/A出力端子にはサウンドシステム115
が接続される。サウンドI/O112は、内部に2つの
FIFO(First In First Out)方式のスタック領域を
備えている。一つはA/D入力端子経由で入力されたデ
ィジタル波形データを保持する入力FIFOであり、も
う一つはD/A出力端子経由で出力するディジタル波形
データを保持する出力FIFOである。
【0023】外部入力113からサウンドI/O112
のA/D入力端子に入力したアナログ楽音信号は、周波
数Fsのサンプリングクロックに応じてA/D変換さ
れ、(必要に応じてADPCM方式などで圧縮してもよ
い)入力FIFOへ書き込まれる。入力FIFOに波形
データが入っていると、サウンドI/O112は、DM
Aコントローラ114に対してその入力波形データを処
理する要求を出す。DMAコントローラ114は、その
処理要求に応じて、入力FIFOのデータをRAM10
3上の所定の領域(あらかじめ確保されている録音バッ
ファ領域)に転送する。このDMAコントローラ114
によるデータの転送は、DMAコントローラ114がサ
ンプリングクロックFsごとにCPU101に割り込み
(ハードウェア割り込み)をかけバスライン116を確
保して行なう。CPU101は、DMAコントローラ1
14によるバスライン116の確保を意識することはな
い。
【0024】一方、サウンドI/O112内の出力FI
FOに波形データが存在する場合、その出力FIFO内
の波形データは、サンプリングクロックFsごとにD/
A変換され、D/A出力端子経由でサウンドシステム1
15に送出され放音される。出力FIFOの波形データ
が出力されると、出力FIFOに空きができるので、サ
ウンドI/O112は、DMAコントローラ114に波
形データ取得の要求を出す。CPU101は、あらかじ
め出力したい波形データを生成してRAM103上の再
生バッファ(後述するPB0,PB1)に置いておき、
DMAコントローラ114にはその波形の再生要求を出
しておく。DMAコントローラ114は、サンプリング
クロックFsごとにCPU101に割り込みをかけてバ
スライン116を確保し、RAM103上の再生バッフ
ァの波形データをサウンドI/O112の出力FIFO
に転送する。このDMAコントローラ114による波形
データの転送は、CPU101が意識することはない。
出力FIFOに書き込まれた波形データは、上述したよ
うにサンプリングクロックFsごとにサウンドシステム
115へと送られて放音される。
【0025】ソフト音源はCPU101がROM102
の楽音生成ソフトウェアを実行することにより実現され
るが、該ソフト音源を利用する側から見ると、楽音生成
ソフトウェアをドライバとして登録しておき、該ドライ
バを起動した後、所定のソフト音源に係るAPI(Appl
ication Program Interface)に各種演奏入力を表わす
MIDI(Musical Instruments digital Interface)
イベントメッセージを出力して楽音生成に関する各種の
処理をソフト音源に行なせる、という手順になる。CP
U101は汎用の演算処理装置であり、該APIに対し
て演奏入力を与える処理、すなわちMIDIイベントを
該APIに出力する処理など、ソフト音源とは別の処理
も行なっている。CPU101が該APIに対して演奏
入力を与える処理とは、例えば、不図示の演奏操作子
(鍵盤など)の操作に応じてリアルタイムで発生する演
奏入力を該APIに出力したり、ネットワークI/O1
07を介してリアルタイムで入力したMIDIイベント
に応じた演奏入力を該APIに出力したり、RAM10
3上にMIDIイベントのシーケンスを用意しておき
(外部記憶媒体105やハードディスク110上にある
データを用いてもよいし、ネットワークI/O107を
介して入力したデータを用いてもよい)これを順次演奏
入力として該APIに出力したり、といった処理であ
る。
【0026】図2を参照して、ソフト音源の楽音生成原
理を説明する。図2において、S1〜S4の各区間は、
所定のサンプル数(2×128サンプル)分の再生を行
なう単位となる時間フレームを示す。「演奏入力」のラ
イン上に記載してある下向き矢印は、その時刻で演奏入
力があったことを示す。演奏入力とは、上述のソフト音
源に係るAPIに、ノートオン、ノートオフ、アフタタ
ッチ、プログラムチェンジなどの各種のMIDIイベン
トが入力されることである。図2の例では、フレームS
1で3つ、S2で2つ、S3で1つの演奏入力がそれぞ
れあったということである。ソフト音源は、複数チャン
ネル分の複数楽音を同時生成可能であり、RAM103
上に用意される複数チャンネル分のソフト音源レジスタ
で各楽音を制御するようになっている。ソフト音源は、
演奏入力としてノートオンイベントを入力したときは、
ソフト音源レジスタに関して発音割り当てを行ない、割
り当てたチャンネルに対応するソフト音源レジスタに該
チャンネルの発音を制御する各種のデータとノートオン
を書き込む。演奏入力としてノートオフイベントを入力
したときは、該当するチャンネルに対応するソフト音源
レジスタにノートオフを書き込む。ノートオンやノート
オフ以外の演奏入力(例えばアフタタッチの変更など)
についても同様に、該当するチャンネルに対応するソフ
ト音源レジスタに演奏入力に応じたデータを書き込む。
ある時間フレームでソフト音源レジスタに書込まれたデ
ータは、データの種類にかかわりなく、必ず次の時間フ
レームから波形生成演算に使用される。
【0027】図2の「CPUによる波形生成」の矩形2
01〜204は、CPU101により効果付与も含めた
波形生成演算を実行する区間を示す。この波形生成演算
では、ソフト音源レジスタに設定された複数チャンネル
分のデータに基づいて複数チャンネル分の楽音波形生成
を行なう。演奏入力に応じてソフト音源レジスタが書き
換えられ、一方、演奏入力のない期間は、ソフト音源レ
ジスタは過去に書込まれたデータを保持している。した
がって、各波形生成の区間201〜204では、直前あ
るいはさらに前のフレームで検出した演奏入力に応じた
波形生成演算を実行することになる。フレームが切り替
わるタイミングでフレーム割り込みが発生するので、各
フレームでの波形生成演算(後述の図7(a))はこの
フレーム割り込みを契機として実行される。
【0028】例えば、フレームS1で検出された3つの
演奏入力に対しては、次のフレームS2の先頭のフレー
ム割り込みを契機として区間202で波形生成演算を行
なう。CPU101は、この波形生成演算により、RA
M103上の波形生成用バッファに波形データ(複数チ
ャンネル分を累算したものであって、かつ効果も付与し
たもの)を生成する。生成した波形データはRAM10
3上の再生バッファ領域に書き込む。この再生バッファ
領域としては、連続したアドレスに用意された同じ大き
さの2つのバッファ領域PB0とPB1(2つをまとめ
てダブルバッファと呼ぶ)を用いる。再生バッファ領域
への書き込みは、後述する図7(a)のステップ707
で行なう。また、フレームごとにバッファPB0とPB
1とを交互に用いるようにする。例えば、フレームS1
の区間201で生成した波形データはRAM103上の
再生バッファ領域PB0に書き込み、フレームS2の区
間202で生成した波形データは再生バッファ領域PB
1に書き込み、フレームS3の区間203で生成した波
形データは再生バッファ領域PB0に書き込み、フレー
ムS4の区間204で生成した波形データは再生バッフ
ァ領域PB1に書き込み、…というように、交互にPB
0とPB1に波形データを書き込む。
【0029】再生バッファPB0およびPB1に書き込
んだ波形データの読み出し再生は、図2の「読み出し再
生」に示すように、フレーム割り込みを契機として、波
形生成したフレームの次のフレームの区間で行なう。す
なわち、フレームS1で生成しPB0に書き込んだ波形
データは次のフレームS2で、フレームS2で生成しP
B1に書き込んだ波形データは次のフレームS3で、フ
レームS3で生成しPB0に書き込んだ波形データは次
のフレームS4で、…というように、PB0とPB1の
波形データを交互に読み出し再生していく。読み出し再
生は、DMAコントローラ114が、サンプリングクロ
ックFsごとにCPU101に割り込みをかけて、RA
M103上の再生バッファ(PB0またはPB1の指定
された方)の波形データをサウンドI/O112の出力
FIFOに転送することにより行なう。フレーム割り込
みは、再生バッファPB0およびPB1をループ読み出
しする際のリターン発生時(すなわちPB1の再生終了
時)と、ループ読み出しの中間点通過時(すなわちPB
0の再生終了時)に発生する。フレーム割り込みは、サ
ウンドI/O112が発生するハードウェア割り込みで
あり、1フレーム再生完了の時点を示す。すなわち、サ
ウンドI/O112は、転送サンプル数(DMAC11
4によりPB0,PB1からサウンドI/Oの出力FI
FOに転送したサンプル数)をカウントし、再生バッフ
ァのサイズ(PB0,PB1を合せたサイズ)の半分の
数のサンプルの転送ごとにフレーム割り込みを発生す
る。
【0030】図3(a)は、CPU101が波形生成を
行なうときに使用する波形生成用バッファの構成例を示
す。波形生成用バッファは、mixA,mixB,mi
xC,mixDの4つからなる。mixAは、ドライ
(dry)用、すなわち効果を付けない波形データを設
定するバッファである。mixBは、リバーブ(re
v)用、すなわちリバーブ処理への入力となる波形デー
タを設定するバッファである。mixCは、コーラス
(cho)用、すなわちコーラス処理への入力となる波
形データを設定するバッファである。mixDは、バリ
エーション(var)用、すなわちバリエーション処理
への入力となる波形データを設定するバッファである。
mixA,mixB,mixC,mixDのそれぞれ
は、ステレオ左側(L側)波形サンプルの記憶領域とス
テレオ右側(R側)波形サンプルの記憶領域とを1組と
して、128組のサンプル(サンプル数では、2×12
8=256サンプル)の記憶領域からなる。L側波形サ
ンプルおよびR側波形サンプルは、それぞれ、16ビッ
ト(2バイト)サンプルである。mixA,mixB,
mixC,mixDのそれぞれは、先頭から順に32バ
イト単位(すなわち16サンプル分)でキャッシングさ
れるようにバウンダリ調整されている。
【0031】図4は、ソフト音源による楽音生成からチ
ャンネル累算までのアルゴリズムの例を示す。波形メモ
リ401は、所定のレートでサンプリングされた波形サ
ンプルデータを格納したメモリである。ここでは、RO
M102上に波形データが用意されているものとする。
ただし、RAM103上に用意した波形データを用いて
もよい。RAM103上の波形データは、ROM10
2、外部記憶媒体105、またはハードディスク110
から読み出したデータ、あるいはネットワークI/O1
07を介して入力したデータや、サウンドI/O112
により外部入力113をサンプリングして得た波形デー
タなどを用いてもよい。
【0032】ソフト音源は、まず必要なチャンネル数分
(最大チャンネル数はCPUの能力に応じて決めてお
く。ここでは最大32チャンネルとする。)の楽音生成
処理402を実行する。どのチャンネルからでも演算で
きるので、後着優先で演算処理したり、音量レベルが小
さくなったチャンネルは優先度を落としたりしてもよ
い。1チャンネル分の楽音生成は、波形読み出し&補間
処理411により波形メモリの波形データを読み出して
補間し、フィルタ412でフィルタリングし、フィルタ
412の出力を8系列に分けてそれぞれ乗算器413−
1から413−8により所定の係数を乗算する処理など
からなる。8系列の出力は、乗算器413−1でドライ
L(ステレオ左)用係数を乗算して得るドライL出力、
乗算器413−2でドライR(ステレオ右)用係数を乗
算して得るドライR出力、乗算器413−3でリバーブ
L用係数を乗算して得るリバーブL出力、乗算器413
−4でリバーブR用係数を乗算して得るリバーブR出
力、乗算器413−5でコーラスL用係数を乗算して得
るコーラスL出力、乗算器413−6でコーラスR用係
数を乗算して得るコーラスR出力、乗算器413−7で
バリエーションL用係数を乗算して得るバリエーション
L出力、および乗算器413−8でバリエーションR用
係数を乗算して得るバリエーションR出力である。各発
音チャンネルごとに得られるこれら8系列の出力は、ミ
キサ403−1から403−8により系列ごとにミキシ
ング(チャンネル累算)される。そして、インターリー
ブ処理404−1から404−4によりLとRでインタ
ーリーブして、405−1から405−4に示す図3
(a)の波形生成用バッファmixA,mixB,mi
xC,mixDに設定する。
【0033】ユーザは、キーボード108、ディスプレ
イ109を使用してエフェクトエディットコマンドを入
力することにより、図6(a)のメインフローのステッ
プ607においてエフェクトエディット処理プログラム
(図示せず)を実行し、ソフトエフェクタのアルゴリズ
ムやパラメータなどをエディット可能である。図5は、
ユーザのエディットにより設定されたソフトエフェクタ
のアルゴリズムの一例であり、図4の処理により波形生
成用バッファmixA,mixB,mixC,mixD
上に生成された波形データに複数の効果を施すようにな
っている。
【0034】ソフトエフェクトのアルゴリズムエディッ
トでは、例えば、ソフトエフェクタの処理のブロック数
(図5では3ブロック)、各ブロックの処理内容(図5
では、リバーブとコーラスとバリエーション)、複数ブ
ロック間の結線情報(図5では、5つのadd処理によ
る3つのブロック間の結線)などがユーザにより指定さ
れ、エフェクトエディット処理プログラムでは、指定さ
れた複数ブロックのエフェクトと複数のadd処理の処
理順序を、指定された結線が可能となるように自動決定
し、図5のアルゴリズムを有するエフェクト処理プログ
ラムを作成する。図5のアルゴリズムは、以下の〜
の手順の処理を表わしている。
【0035】501−4の波形生成用バッファmix
Dの波形データを読み出し、バリエーション処理507
を施して、結果をmixDに上書きする。
【0036】 add(mixD−>mixA) …図5の508 add(mixD−>mixB) …図5の502 add(mixD−>mixC) …図5の504 を実行する。addは、−>の前側に記載してあるバッ
ファの各サンプルに所定の係数を乗算して重み付けし、
−>の後側に記載してあるバッファの各サンプルに足し
込む処理である。add処理は、共通ルーチンを使用
し、重み付けの係数は、どの処理結果に重み付けしてど
こに足し込むかに応じてあらかじめ指定してあるものと
する。これらのadd処理508,502,504によ
り、バリエーション処理507を施した結果をそれぞれ
重み付けして、ドライ用バッファmixA、リバーブ用
バッファmixB、およびコーラス用バッファmixC
の波形データに加算する処理が実行されたことになる。
【0037】波形生成用バッファmixCの波形デー
タ(コーラス処理への入力用に用意した波形データに、
add処理504でバリエーション処理507を施した
波形データを重み付けして足し込んだデータ)を読み出
し、コーラス処理506を施して、結果をmixCに上
書きする。
【0038】 add(mixC−>mixA) …図5の509 add(mixC−>mixB) …図5の503 を実行する。これらのadd処理509,503によ
り、コーラス処理506を施した結果をそれぞれ重み付
けして、ドライ用バッファmixA、およびリバーブ用
バッファmixBの波形データに加算する処理が実行さ
れたことになる。
【0039】波形生成用バッファmixB(リバーブ
処理への入力用に用意した波形データに、add処理5
02でバリエーション処理507を施した波形データを
重み付けして足し込み、さらにadd処理503でコー
ラス処理506を施した波形データを重み付けして足し
込んだデータ)の波形データを読み出し、リバーブ処理
505を施して、結果をmixBに上書きする。
【0040】add(mixB−>mixA) …
図5の510 を実行する。このadd処理510により、リバーブ処
理505を施した結果を重み付けしてドライ用バッファ
mixAの波形データに加算する処理が実行されたこと
になる。結果として、mixAには、ドライ用の波形デ
ータにバリエーション、コーラス、およびリバーブを反
映させた波形データが設定されたことになる。
【0041】上述のリバーブ処理505、コーラス処理
506、およびバリエーション処理507は、それぞ
れ、mixB,mixC,mixDの波形データに効果
付与処理を施して上書きする処理であり、add処理5
02〜504,508〜510は共通ルーチンである。
したがって、これらの処理順序を適宜変更するだけで、
複数の効果付与の順序(ソフトエフェクタの結線関係)
を任意に変更可能である。共通ルーチンaddが使用で
きるのは、図3(a)に示すように、波形生成用バッフ
ァをエフェクトごとに独立とし、同じ構造にしたからで
ある。この発明の実施の形態では、ユーザのキーボード
108などを用いた指定により、ソフトエフェクタのア
ルゴリズムを任意に指定できるようになっている。
【0042】さらにこの発明の実施の形態では、図4お
よび図5のようなアルゴリズムで波形生成を実行する
際、キャッシュラインのサイズを単位として処理を行な
うことにより、キャッシュのヒット率を飛躍的に高め楽
音生成演算を高速化する。キャッシングによる処理の高
速化については、図7(a)および図7(b)で詳細に
説明する。
【0043】次に、図6(a)(b)および図7(a)
(b)のフローチャートを参照して、上述の電子楽器の
CPU101の処理手順を説明する。
【0044】図6(a)は、CPU101の制御プログ
ラムのうちソフト音源に係るメインルーチンの処理手順
を示す。このメインルーチンは、ソフト音源のドライバ
としてOS(Operating System)に登録されているもの
である。ソフト音源を使用した楽音生成を行なう際に
は、まずこのドライバ、すなわち図6(a)の処理を起
動し、ソフト音源に係るAPIを有効にしておく。図6
(a)において、ステップ601で各種の初期設定を行
なう。この初期設定で、再生バッファPB0,PB1を
0クリアするとともに、サウンドI/O112とDMA
C114に指示して図1および図2で説明した再生バッ
ファPB0とPB1とを交互に読み出し再生する処理を
開始しておく。次にステップ602で何らかの起動要因
があるか否かチェックし、ステップ603で起動要因が
あればステップ604に進む。起動要因がなければ再び
602に戻る。ステップ602〜604の起動要因の受
け付けが、ソフト音源に係るAPIに対する指示受け付
けに相当する。
【0045】ステップ604では発生している起動要因
の種類を判別しそれぞれの処理に分岐する。起動要因が
MIDIイベントの入力であったときは、ステップ60
5のMIDI処理を行ない、その後再びステップ602
に戻る。このMIDIイベントの入力とステップ605
のMIDI処理が、図2の演奏入力の受け付けに相当す
る。ステップ604で起動要因がフレーム割り込み(1
フレーム再生完了)であるときは、ステップ606の波
形生成処理を行ない、その後再びステップ602に戻
る。フレーム割り込みは、サウンドI/O112が1フ
レーム再生完了するごとに発生するハードウェア割り込
みである。ステップ606の波形生成処理が、図2の2
01〜204に示した波形生成演算を行なう処理であ
る。この波形生成処理では、一度に、1フレーム分の波
形データ(再生バッファPB0,PB1を合せた大きさ
の半分に相当する数の波形サンプル)を生成し、再生バ
ッファPB0またはPB1に交互に書き込む。ステップ
604で起動要因がその他の要求であるときは、ステッ
プ607で当該起動要因に応じた処理を行ない、その後
再びステップ602に戻る。特に、サウンドI/O11
2による外部入力113のサンプリングの指示、図5の
ようなソフトエフェクタのアルゴリズムの設定変更の指
示、図4の乗算器413−1〜413−8の係数(各系
列の信号送出レベルを規定する重み付け係数)の設定指
示、ソフトエフェクタで用いるadd処理の重み付け係
数の設定指示などの要求がなされたときには、ステップ
607のその他処理で対応する処理を行なう。ステップ
604で起動要因がソフト音源の終了要求であったとき
は、ステップ608で終了処理を行なった後、処理を終
了する。
【0046】図6(b)は、図6(a)のステップ60
5のMIDI処理のうちノートオンイベントを入力した
ときに実行されるノートオンイベント処理の手順を示
す。まずステップ611で、入力したノートオンイベン
トのMIDIチャンネル、ノートナンバ、およびベロシ
ティを、それぞれレジスタMC,NN,VEに設定す
る。次に、ステップ612で、発音チャンネル(第0〜
第31チャンネル)の割り当てを行なう。ステップ61
3で、割り当てた発音チャンネルのソフト音源レジスタ
に、発音に必要な情報(ノートナンバNNやベロシティ
VEなど)を設定する。さらにステップ614で、割り
当てた発音チャンネルのソフト音源レジスタにノートオ
ンを書き込んで発音開始指示を出し、処理を終了する。
【0047】図示しないが、ノートオフや他の演奏入力
などのMIDIイベント処理も同様である。すなわち、
ノートオフなら該当する発音チャンネルに対応するソフ
ト音源レジスタにノートオフを設定し、他の演奏入力な
ら該当する発音チャンネルに対応するソフト音源レジス
タに当該演奏入力に対応するデータを書き込む。
【0048】図7(a)は、図6(a)のステップ60
6の波形生成処理の手順を示す。この波形生成処理によ
り、図4および図5のようなアルゴリズムで楽音生成が
実行される。まずステップ701で、演算準備を行な
う。これは、ソフト音源レジスタを参照して波形生成演
算を行なうべきチャンネルを認識する処理、今回の波形
生成演算で生成した1フレーム分の波形は再生バッファ
PB0とPB1のどちらに設定すべきかを認識する処
理、波形生成用バッファmixA,mixB,mix
C,mixDの全領域の0クリアなどの演算準備であ
る。次に、ステップ702で、演算を行なう必要のある
全チャンネルに関して16サンプル(ステレオLおよび
Rの各サンプルを単位として数えると2×16=32サ
ンプル)分の波形発生演算を実行する。これは、図4の
アルゴリズムの処理を16サンプル分実行して、波形生
成用バッファmixA,mixB,mixC,mixD
のそれぞれに2×16サンプル波形生成する処理であ
る。
【0049】ステップ703では、1フレーム分の波形
サンプルが生成できたか否か、すなわち図3(a)の波
形生成用バッファmixA,mixB,mixC,mi
xD上にそれぞれ2×128サンプルが生成されたか否
かを判別する。1フレーム完了していなければ、ステッ
プ702に戻って、次の2×16サンプルを生成する。
ステップ702を繰り返すことにより、図3(a)の波
形生成用バッファmixA,mixB,mixC,mi
xDのそれぞれに関して、先頭から2×16サンプルず
つ波形サンプルを作り込んで行く。
【0050】ステップ703で図3(a)の波形生成用
バッファmixA,mixB,mixC,mixDに1
フレーム分の波形が生成できたら、ステップ704に進
む。ステップ704,705,706では、バリエーシ
ョン、コーラス、およびリバーブなどの効果付与処理を
行なう。これは、図5で説明したように、バリエーショ
ン処理、コーラス処理、およびリバーブ処理、並びにa
dd処理をユーザが指定したアルゴリズム(ソフトエフ
ェクタのアルゴリズムの設定変更の指示はステップ60
7のその他処理で行なわれる)の通りの順序で実行する
処理である。図示しないがステップ704,705,7
06のソフトエフェクタの処理も、ステップ702,7
03と同様、2×16サンプルごとに実行する。すなわ
ち、図3(a)の波形生成用バッファmixA,mix
B,mixC,mixDの先頭から2×16サンプル分
について図5のアルゴリズムの処理を実行し、次の2×
16サンプルについて図5の処理を実行し、…というよ
うに処理を進め、最終的に波形生成用バッファmixA
上に効果付与された2×128サンプルを得る。図5で
説明したバリエーション処理、コーラス処理、およびリ
バーブ処理、並びにadd処理は、2×16サンプル分
を対象とする処理とする。
【0051】なお、図7(a)には、図5で説明したa
dd処理が現れていないが、これは、ステップ704〜
706のエフェクトブロック処理に含まれているものと
する。つまり、ステップ704のバリエーション処理に
は前記との手順の処理が、ステップ705のコーラ
ス処理には前記との手順の処理が、ステップ706
のリバーブ処理には前記との手順の処理が、それぞ
れ含まれる。
【0052】なお、ステップ704,705,706の
各エフェクト処理は、2×16サンプルずつでなく、1
フレーム分を一気にまとめて実行してもよい。すなわ
ち、図5で説明したバリエーション処理、コーラス処
理、およびリバーブ処理、並びにadd処理のそれぞれ
は、1フレーム分を一気に行なう処理としてもよい。こ
の場合でも、1フレームの処理中ではキャッシュは16
サンプルごとに有効に働いている。このようにすれば、
各バッファ間にわたる処理ではヒット率が落ちる場合が
あると考えられるが、各エフェクト処理中で使用するレ
ジスタやバッファに関してはヒット率が上がる。発音チ
ャンネルの処理に比べて、エフェクトの処理は結果が得
られるまでの時間が長いので1フレーム分を一気に処理
していく方が効率が良い。また、1フレーム分一気にと
いっても、その中で局所的に16サンプル単位で処理を
行なえば効率的である。要するに、キャッシュミスを起
こりにくくするためには、連続したデータを短期間に連
続して処理するようにすればよい。
【0053】ソフトエフェクタ処理の後、ステップ70
7で、生成した1フレーム分の波形(すなわちmixA
上の2×128サンプル)を再生予約する。これは、m
ixAの波形サンプルを再生バッファPB0またはPB
1の一方(現在、再生に用いられていない方)にコピー
する処理である。既に、ステップ601で再生バッファ
PB0とPB1とを交互に読み出し再生する処理が開始
しているので、再生に用いられていない方に生成した波
形をコピーするだけで次のフレームで当該波形の発音が
実行される。
【0054】なお、この例では、波形生成用バッファm
ixAと再生バッファPB0,PB1とを別々に設けた
が、mixAを2面用意し、一方をPB0、他方をPB
1として兼用することもできる。この場合は、波形生成
処理を直接再生バッファ上で行なうことになるので、ス
テップ707の生成波形をコピーする処理は不要にな
り、処理速度がより向上する。
【0055】図7(b)は、図7(a)のステップ70
2の16サンプル(ステレオLおよびRのそれぞれのサ
ンプルを単位で数えれば2×16=32サンプル)分の
波形発生処理の手順を示す。まずステップ711で、第
1番目のチャンネルについて演算準備を行なう。図7
(a)のステップ701の演算準備により、波形演算処
理が必要なチャンネルおよびチャンネル間の優先度は求
められているので、優先度が最も高いチャンネルを第1
番目のチャンネルとする。次に、ステップ712〜71
8で当該チャンネルについて16サンプル分の波形生成
を行なう。
【0056】まずステップ712で、後の処理で用いる
エンベロープ値を求める。エンベロープ値は、例えばA
DSR(アタック、ディケイ、サスティン、リリース)
タイプのエンベロープ波形を出力するような演算型のエ
ンベロープ生成処理によって発生すればよい。ステップ
712で発生したエンベロープ値は、現在生成処理中の
16サンプルに対して共通に用いられる。ここで生成し
たエンベロープ値は、生成した1つの値を16サンプル
に共通に使用する。すなわち、波形の16サンプルごと
に1つのエンベロープ値が生成されるようになってい
る。次にステップ713でアドレス生成、波形読み出
し、および補間処理(図4の411)を16サンプル分
行ない、ステップ714でそれらのサンプルに対してフ
ィルタ処理(図4の412)を行なう。各サンプルは、
この段階では未だステレオLR別に分けておらずモノラ
ルである。
【0057】次にステップ715で、mixAの2×1
6サンプルを算出する。これは、図4において、フィル
タ処理412から出力された16サンプル(モノラル)
に対して以下の処理を行なうものである。まず、dry
L用重み付け係数(dryLの送出レベルを規定する係
数)とステップ712で求めたエンベロープ値とを加算
する。この係数とエンベロープ値は、ともにdB(デシ
ベル)スケール上の値であるので、加算がリニアスケー
ル上の乗算に相当する。その後、乗算器413−1で、
上記係数とエンベロープ値の加算結果を、フィルタ処理
412から出力された各波形サンプル値に対して指数変
換乗算する。これによりdry用のL側波形サンプルが
16サンプル得られたことになる。dry用のR側波形
サンプルも、上記係数をdryR用係数にして同様に求
める。以上のようにして求めたドライ用のLRの2×1
6=32サンプルの波形をmixAに累算する。
【0058】ステップ715と同様にして、ステップ7
16ではリバーブ用のLRの2×16=32サンプルの
波形をmixBに累算し、ステップ717ではコーラス
用のLRの2×16=32サンプルの波形をmixCに
累算し、ステップ718ではバリエーション用のLRの
2×16=32サンプルの波形をmixDに累算する。
もちろん重み付け係数は、ドライ用、リバーブ用、コー
ラス用、およびバリエーション用で異なるものを用い
る。
【0059】次に、ステップ719で、演算すべき残り
のチャンネルがあるか否か判別する。あれば、ステップ
720で次チャンネルの演算準備(優先度の高いチャン
ネルから先に演算するものとする)を行なった後、ステ
ップ712に戻る。これを繰り返して、演算すべき全チ
ャンネルについて、ステレオLおよびRのそれぞれで1
6サンプル分の波形生成を行なって波形生成用バッファ
mixA,mixB,mixC,mixDに累算する。
ステップ719で演算すべき残りのチャンネルがなけれ
ば、リターンする。
【0060】上述の図7(a)および図7(b)の波形
生成演算では、2×16サンプルを単位として効果付与
を含む波形生成(図4および図5の処理)を実行してい
る。16サンプルは32バイトであり、また図3(a)
の波形生成用バッファmixA,mixB,mixC,
mixDのそれぞれは先頭から順に32バイト単位でキ
ャッシングされるようにバウンダリ調整されている。し
たがって、例えばmixAの第1サンプル目をアクセス
したときには、キャッシュメモリ117に該第1サンプ
ル目を含む16サンプルがキャッシングされ、この16
サンプルについての処理中は、キャッシュメモリ117
上で波形生成処理が実行されるので、非常に高速に波形
生成できる。2×16サンプルであるから64バイト単
位であるが、隣り合う16サンプルずつは別のキャッシ
ュラインにキャッシングされるから、ここでは2つのキ
ャッシュラインが使用される。
【0061】特に、この例では複数種類の効果付与のア
ルゴリズムをユーザが任意に指定できるので、複数種類
の効果付与処理がいろいろな順序で行なわれることにな
るが、付与する効果の種類ごとに独立に波形生成用バッ
ファを設けているので、1つの効果付与処理を実行する
際には対応するバッファ上で処理を行なうことになる。
そのバッファは当該効果付与に使用する波形サンプルの
みからなる(すなわち当該効果処理に不要な波形サンプ
ルが間に挟まっているようなものでない)ので、キャッ
シュのヒット効率を飛躍的に高めることができキャッシ
ングの効果が高い。
【0062】次に、図7(c)のフローチャートを参照
して、再生時のDMAコントローラ114の処理を説明
する。再生時は、サウンドI/O112からサンプリン
グ周期ごとにサンプル要求割り込み(ハードウェア割り
込み)が発行される。これに応じて、DMAコントロー
ラ114は、図7(c)の処理を行なう。まずステップ
731で、再生バッファPB0,PB1の1サンプルを
サウンドI/O112の出力FIFOに送る。出力FI
FOに書き込まれた波形データは、図1で説明したよう
にサンプリング周期ごとにD/A変換されてサウンドシ
ステム115へと送られ放音される。なお、ステップ7
31で「DMAB」とあるのは再生バッファPB0,P
B1のことである。再生バッファPB0,PB1は、D
MAのバッファと見ることもできるのでDMABと記載
した。次に、ステップ732でポインタpをインクリメ
ントして処理を終了する。pは再生バッファPB0,P
B1から1サンプルを読み出すときのポインタである。
以上のようにして、ポインタpを進めながら、サンプリ
ング周期ごとに再生バッファPB0,PB1から1サン
プルをサウンドI/O112に渡す。
【0063】なお、ポインタpは1ずつインクリメント
していくことによりPB0の先頭のサンプルからPB1
の最後のサンプルまでを順次読み出すためのポインタで
あるが、PB1の最後のサンプルを読出した後はPB0
の先頭のサンプルを指すようにポインタ値を更新する必
要がある。この処理は、DMAコントローラ114が自
動的に行なうように設定されている。
【0064】なお、上記発明の実施の形態では、図7
(a)のステップ702,703および図7(b)から
分かるように、演算が必要な全チャンネルにわたって1
6サンプル分の波形生成処理を行なうループ処理を内側
のループで実行し、その16サンプル分の波形生成処理
を1フレーム完了まで外側のループで実行して、1フレ
ーム分の波形を生成しているが、これらのループ処理を
入れ替えてもよい。すなわち、内側のループで1つのチ
ャンネルに関する16サンプル分の波形生成を繰り返し
て1フレーム分波形生成し、これを外側のループで各チ
ャンネルに関して実行し、最終的な1フレーム分の波形
を生成するようにしてもよい。上記発明の実施の形態の
方式だと全チャンネルにわたる16サンプルずつ作成し
ていくのでキャッシュのヒット率が高いが、CPUの処
理能力が低いと、1フレーム時間内で1フレーム分の波
形生成が完了しない可能性がある。これに対して、上記
のループ処理を入れ替える方式であれば、優先度の高い
チャンネルは始めに1フレーム分作成されるので、もし
1フレーム時間内で全チャンネルの波形生成が完了しな
い場合でも優先度の高いチャンネルについては発音され
ることになる。なお、これらの方式を混在させて、所定
チャンネル数については前者の方式で、残りのチャンネ
ルについては後者の方式で、というようにしてもよい。
【0065】上記発明の実施の形態では、キャッシュメ
モリをライトスルー方式にしたが、ライトバック方式と
してもよい。ライトバック方式にした方が、キャッシュ
メモリ上で波形サンプルの更新が可能になるので、より
高速な波形生成処理が実現される。
【0066】なお、ユーザが複数エフェクト間の結線状
態だけでなく、複数エフェクトの数や内容を指定できる
ようにしてもよい。また、キャッシングの単位となるサ
ンプル数は各CPUごとに異なるので、波形生成の処理
単位もそれに応じて変更してよい。
【0067】また、波形生成用バッファの数は、上記発
明の実施の形態ではmixA〜mixDの4つであった
が、これは、その後段のエフェクトのブロック数が3で
あることに対応しており、エフェクトのブロック数に応
じて変更される。各エフェクトの入力用のバッファとd
ry用のバッファが必要なので、バッファの数はエフェ
クトのブロック数+1となる。
【0068】なお、上述した楽音生成方法を実現するた
めの各種関係情報や動作プログラムなどをハードディス
クなどの記憶装置に格納し、CPUがこれらをRAMに
読み出してから使用するように構成し、さらにCD−R
OM(コンパクトディスク−リード・オンリ・メモリ)
やフロッピーディスク、光磁気ディスクなどの可搬型の
記憶媒体に記憶されたデータをハードディスクなどの記
憶装置に転送できるように構成すれば、関係情報や動作
プログラムなどの追加(インストールなど)や更新(バ
ージョンアップなど)の際に便利である。もちろん、可
搬型の記憶媒体から直接RAMへデータを転送するよう
にしてもよい。
【0069】さらに、可搬型の記憶媒体経由ではなく、
通信インターフェース(ネットワークI/O)経由で、
ハードディスクなどの記憶装置上の関係情報や動作プロ
グラムなどを通信ネットワーク側からダウンロードする
ようにしてもよい。上記通信インターフェースは、LA
N(ローカルエリアネットワーク)やインターネット、
電話回線などの通信ネットワークに接続されており、当
該通信ネットワークを介してサーバコンピュータと接続
される。クライアントとなる本装置は、自装置が有する
記憶装置(ハードディスクなど)に関係情報や動作プロ
グラムなどが記憶されていない場合、上記通信インター
フェースおよび通信ネットワークを介してサーバコンピ
ュータへ、関係情報や動作プログラムなどを要求するコ
マンドを送信する。このコマンドを受け取ると、サーバ
コンピュータは、要求された関係情報や動作プログラム
などを、通信ネットワークを介して本装置へと配信す
る。そして、配信された関係情報や動作プログラムなど
を本装置が通信インターフェースを介して受信し、記憶
装置に蓄積することにより、ダウンロードが完了する。
【0070】また、本装置を、関係情報や動作プログラ
ムなどをインストールした市販のパーソナルコンピュー
タなどによって実現しても良い。もちろん、この場合に
も、関係情報や動作プログラムなどのデータの配布方法
としては、ROMなどの不揮発性メモリにあらかじめ格
納しておく方法、可搬型の記憶媒体に格納して配布する
方法、および通信インターフェース経由で配布する方法
などが適用可能である。
【0071】
【発明の効果】以上説明したように、請求項1に係る発
明によれば、ソフト音源において波形生成用バッファ上
で行なう波形生成処理の単位をキャッシュメモリのライ
ンサイズまたはその所定整数倍のサイズとしているた
め、キャッシュミスが起こりにくく高速な波形生成処理
が実現される。請求項2に係る発明によれば、各エフェ
クト処理に対応して波形バッファが用意されているの
で、複数エフェクト間の結線が容易に変更できるととも
に、各エフェクト処理におけるキャッシュのヒット率が
向上する。請求項3に係る発明によれば、エフェクト対
応に設けられた複数の波形生成用バッファの構成を同一
とし、エフェクト処理は対応するバッファ上で行なうと
ともに、add処理でどのバッファからどのバッファへ
でも累算できるようにしているので、ユーザが任意にソ
フトエフェクタのアルゴリズムを指定しても、該アルゴ
リズムに応じてエフェクト処理とadd処理の順序を入
れ替えるだけでよくなる。したがって、エフェクト付与
処理の計算順序がユーザの指定に応じて動的に変更でき
るようになる。請求項4に係る発明によれば、複数チャ
ンネル分の波形データを生成する際のキャッシュのヒッ
ト率が上がるので、波形生成の処理時間が短縮される。
請求項5に係る発明によれば、各発音チャンネルの波形
データを、複数バッファへ出力するところでの、キャッ
シュのヒット率が向上するので、波形生成の処理時間が
短縮される。請求項6に係る発明によれば、各エフェク
ト処理に対応して用意されたバッファ上で波形サンプル
生成とエフェクト付与(指定されたエフェクトアルゴリ
ズムに応じた処理順序でエフェクト処理とadd処理と
を行なうようにしている)を行なっているので、複数エ
フェクト間の結線が容易に変更できるとともに、各エフ
ェクト処理におけるキャッシュのヒット率が向上する。
請求項7〜9に係る発明によれば、複数チャンネル分の
波形データを生成する際のキャッシュのヒット率が上が
り波形生成の処理時間が短縮されるような楽音発生方法
が記憶媒体で提供されるという効果がある。
【図面の簡単な説明】
【図1】この発明に係る楽音発生装置を適用した電子楽
器のブロック構成図
【図2】ソフト音源の楽音生成原理を説明するための図
【図3】本発明に係る波形生成用バッファの構成例およ
び従来の波形生成用バッファの構成例を示す図
【図4】ソフト音源による楽音生成からチャンネル累算
までのアルゴリズムの例を示す図
【図5】波形データに複数の効果付与を施すソフトエフ
ェクタのアルゴリズムの例を示す図
【図6】メインルーチンおよびノートオンイベントルー
チンのフローチャート図
【図7】波形生成処理ルーチンおよび16サンプル分の
波形発生処理ルーチンのフローチャート図
【符号の説明】
101…中央処理装置(CPU)、102…リードオン
リメモリ(ROM)、103…ランダムアクセスメモリ
(RAM)、104…ドライブ装置、106…タイマ、
107…ネットワーク入出力(I/O)インタフェー
ス、108…キーボード、109…ディスプレイ、11
0…ハードディスク、111…サンプリングクロック
(Fs)発生器、112…サウンドI/O、114…D
MA(ダイレクトメモリアクセス)コントローラ、11
5…サウンドシステム、116…バスライン、117…
キャッシュメモリ、mixA,mixB,mixC,m
ixD…波形生成用バッファ。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】各種のソフトウェアを実行可能な演算処理
    装置と、 前記演算処理装置の内部または外部に設けられたキャッ
    シュメモリと、 前記演算処理装置が実行する波形生成ソフトウェアを格
    納した記憶装置と、 前記演算処理装置で前記波形生成ソフトウェアを実行す
    ることにより所定時間長さの時間フレームで再生すべき
    複数の波形サンプルを一括して生成する際に、ワーキン
    グ領域として使用する波形生成用バッファであって、波
    形生成処理が終了したときは最終的に生成された波形サ
    ンプルが設定される波形生成用バッファとを備えるとと
    もに、 前記波形生成ソフトウェアは、所定量の波形サンプル
    (nサンプル)を生成する波形生成処理を含み、該処理
    を所定回数(m回)繰り返すことで、前記波形生成用バ
    ッファに1フレーム分の波形サンプルを生成するもので
    あり、 前記所定量の波形サンプルの前記波形生成用バッファ上
    の長さを前記キャッシュメモリのラインサイズまたはそ
    の所定整数倍のサイズとすることを特徴とする楽音発生
    装置。
  2. 【請求項2】各種のソフトウェアを実行可能な演算処理
    装置と、 前記演算処理装置の内部または外部に設けられたキャッ
    シュメモリと、 生成された複数波形サンプルを記憶する波形バッファで
    あって、該波形バッファは複数のエフェクト対応に複数
    設けられているものと、 複数のエフェクト処理ソフトウェアを格納した記憶装置
    であって、各エフェクト処理ソフトウェアは、対応する
    波形バッファの複数波形サンプルに対して所定のエフェ
    クト処理を施し、処理後の波形サンプルを対応する波形
    バッファに書き込むものであるものと、 前記波形バッファのうちの任意の1つの波形サンプルに
    所定のレベル制御を施して別の任意の波形バッファに記
    憶された波形サンプルに足して再び同記憶位置に書き込
    むadd処理ソフトウェアを格納した記憶装置と、 各波形バッファ上で実行される各波形バッファに対応す
    る前記エフェクト処理、および任意の2つの波形バッフ
    ァ間で実行される前記add処理に関して、所望のエフ
    ェクトアルゴリズムに応じて、エフェクト処理とadd
    処理の処理順序を指定し、該add処理で加算する波形
    バッファと加算される波形バッファを指定する手段とを
    備えたことを特徴とする楽音発生装置。
  3. 【請求項3】各種のソフトウェアを実行可能な演算処理
    装置と、 生成された複数波形サンプルを記憶する波形バッファで
    あって、該波形バッファは複数のエフェクト対応に複数
    設けられるとともに、各波形バッファの構成は同一であ
    るものと、 複数のエフェクト処理ソフトウェアを格納した記憶装置
    であって、各エフェクト処理ソフトウェアは、対応する
    波形バッファの複数波形サンプルに対して所定のエフェ
    クト処理を施し、処理後の波形サンプルを対応する波形
    バッファに書き込むものであるものと、 前記波形バッファのうちの任意の1つの波形サンプルに
    所定のレベル制御を施して別の任意の波形バッファに記
    憶された波形サンプルに足して再び同記憶位置に書き込
    むadd処理ソフトウェアを格納した記憶装置と、 ユーザが前記複数エフェクト間の結線状態を示すアルゴ
    リズムを指定するための指定手段と、 各波形バッファ上で実行される各波形バッファに対応す
    る前記エフェクト処理、および任意の2つの波形バッフ
    ァ間で実行される前記add処理に関して、前記指定手
    段で指定されたアルゴリズムに応じて、複数エフェクト
    処理および複数add処理の処理順序を変更するととも
    に、各add処理で加算する波形バッファと加算される
    波形バッファを設定する設定手段とを備えたことを特徴
    とする楽音発生装置。
  4. 【請求項4】キャッシュメモリを備えた処理装置で実行
    され、複数チャンネル分の楽音を発生可能な楽音発生方
    法であって、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記タイミング信号の発生ごとに、前記演奏情報に応じ
    た複数チャンネル分の波形データを、連続する複数サン
    プル分、生成して出力する生成ステップと、 生成された波形データを、サンプリング周期ごとに1サ
    ンプルずつディジタルアナログ変換器に供給し、アナロ
    グ波形に変換するステップとを備えるとともに、 前記生成ステップでは、処理装置のキャッシングの単位
    に対応した所定数のサンプルの生成を複数チャンネル分
    実行し、それを複数回繰り返すことで前記連続する複数
    サンプル分の波形データを生成することを特徴とする楽
    音発生方法。
  5. 【請求項5】キャッシュメモリを備えた処理装置で実行
    され、複数チャンネル分の楽音を発生可能な楽音発生方
    法であって、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記タイミング信号の発生ごとに、前記演奏情報に応じ
    た複数チャンネル分の波形データを、連続する複数サン
    プル分生成し、さらに複数エフェクト処理を施して出力
    する生成ステップと、 出力された波形データを、サンプリング周期ごとに1サ
    ンプルずつディジタルアナログ変換器に供給し、アナロ
    グ波形に変換するステップとを備えるとともに、 前記生成ステップでは、処理装置のキャッシングの単位
    に対応した所定数のサンプルを生成し、前記複数のエフ
    ェクト処理に対応した複数バッファに出力する処理を複
    数チャンネル分実行し、それを複数回繰り返すことで複
    数バッファ上に前記連続する複数サンプル分の波形デー
    タを生成するとともに、前記複数エフェクト処理では、
    それぞれ対応するバッファの波形データを入力として処
    理を行なうことを特徴とする楽音発生方法。
  6. 【請求項6】キャッシュメモリを備えた処理装置で実行
    され、複数チャンネル分の楽音を発生可能な楽音発生方
    法であって、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記演奏情報に応じて、前記タイミング信号の発生ごと
    に、処理装置のキャッシングの単位に対応した所定数の
    サンプルを生成して複数のエフェクト処理に対応した複
    数バッファに出力する処理を複数チャンネル分実行し、
    それを複数回繰り返すことで複数バッファ上に連続する
    複数サンプル分の波形データを生成する生成ステップ
    と、 対応するバッファの複数波形サンプルに対してエフェク
    ト付与処理を施した後、処理後の波形サンプルをそのバ
    ッファに書き込む、各バッファに対応した複数のエフェ
    クト処理と、任意の1つのバッファ上の波形サンプルに
    所定のレベル制御を施して別の任意のバッファに記憶さ
    れた波形サンプルに足して再び同記憶位置に書き込むa
    dd処理とを、指定されたエフェクトアルゴリズムに応
    じた処理順序で実行することにより、エフェクト処理を
    施した波形データを生成出力するエフェクト処理ステッ
    プと、 該エフェクト処理ステップから出力された波形データ
    を、サンプリング周期ごとに1サンプルずつディジタル
    アナログ変換器に供給し、アナログ波形に変換するステ
    ップとを備えたことを特徴とする楽音発生方法。
  7. 【請求項7】キャッシュメモリを備えた処理装置で実行
    され、複数チャンネル分の楽音を発生する楽音発生方法
    に係るプログラムを記憶した記憶媒体であって、前記楽
    音発生方法に係るプログラムは、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記タイミング信号の発生ごとに、前記演奏情報に応じ
    た複数チャンネル分の波形データを、連続する複数サン
    プル分、生成して出力する生成ステップと、 生成された波形データを、サンプリング周期ごとに1サ
    ンプルずつディジタルアナログ変換器に供給し、アナロ
    グ波形に変換するステップとを備えるとともに、 前記生成ステップでは、処理装置のキャッシングの単位
    に対応した所定数のサンプルの生成を複数チャンネル分
    実行し、それを複数回繰り返すことで前記連続する複数
    サンプル分の波形データを生成することを特徴とする記
    憶媒体。
  8. 【請求項8】キャッシュメモリを備えた処理装置で実行
    され、複数チャンネル分の楽音を発生可能な楽音発生方
    法に係るプログラムを記憶した記憶媒体であって、前記
    楽音発生方法に係るプログラムは、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記タイミング信号の発生ごとに、前記演奏情報に応じ
    た複数チャンネル分の波形データを、連続する複数サン
    プル分生成し、さらに複数エフェクト処理を施して出力
    する生成ステップと、 出力された波形データを、サンプリング周期ごとに1サ
    ンプルずつディジタルアナログ変換器に供給し、アナロ
    グ波形に変換するステップとを備えるとともに、 前記生成ステップでは、処理装置のキャッシングの単位
    に対応した所定数のサンプルを生成し、前記複数のエフ
    ェクト処理に対応した複数バッファに出力する処理を複
    数チャンネル分実行し、それを複数回繰り返すことで複
    数バッファ上に前記連続する複数サンプル分の波形デー
    タを生成するとともに、前記複数エフェクト処理では、
    それぞれ対応するバッファの波形データを入力として処
    理を行なうことを特徴とする記憶媒体。
  9. 【請求項9】キャッシュメモリを備えた処理装置で実行
    され、複数チャンネル分の楽音を発生可能な楽音発生方
    法に係るプログラムを記憶した記憶媒体であって、前記
    楽音発生方法に係るプログラムは、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記演奏情報に応じて、前記タイミング信号の発生ごと
    に、処理装置のキャッシングの単位に対応した所定数の
    サンプルを生成して複数のエフェクト処理に対応した複
    数バッファに出力する処理を複数チャンネル分実行し、
    それを複数回繰り返すことで複数バッファ上に連続する
    複数サンプル分の波形データを生成する生成ステップ
    と、 対応するバッファの複数波形サンプルに対してエフェク
    ト付与処理を施した後、処理後の波形サンプルをそのバ
    ッファに書き込む、各バッファに対応した複数のエフェ
    クト処理と、任意の1つのバッファ上の波形サンプルに
    所定のレベル制御を施して別の任意のバッファに記憶さ
    れた波形サンプルに足して再び同記憶位置に書き込むa
    dd処理とを、指定されたエフェクトアルゴリズムに応
    じた処理順序で実行することにより、エフェクト処理を
    施した波形データを生成出力するエフェクト処理ステッ
    プと、 該エフェクト処理ステップから出力された波形データ
    を、サンプリング周期ごとに1サンプルずつディジタル
    アナログ変換器に供給し、アナログ波形に変換するステ
    ップとを備えたことを特徴とする記憶媒体。
JP22303597A 1996-08-09 1997-08-05 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体 Expired - Fee Related JP3852634B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22303597A JP3852634B2 (ja) 1996-08-09 1997-08-05 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP22780796 1996-08-09
JP8-227807 1996-08-09
JP22303597A JP3852634B2 (ja) 1996-08-09 1997-08-05 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006148637A Division JP4036233B2 (ja) 1996-08-09 2006-05-29 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体

Publications (2)

Publication Number Publication Date
JPH10111688A true JPH10111688A (ja) 1998-04-28
JP3852634B2 JP3852634B2 (ja) 2006-12-06

Family

ID=26525230

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22303597A Expired - Fee Related JP3852634B2 (ja) 1996-08-09 1997-08-05 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JP3852634B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076007A (ja) * 2009-10-01 2011-04-14 Yamaha Corp 楽音信号制御装置及びプログラム
JP2014038181A (ja) * 2012-08-15 2014-02-27 Korg Inc 楽音発生装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076007A (ja) * 2009-10-01 2011-04-14 Yamaha Corp 楽音信号制御装置及びプログラム
JP2014038181A (ja) * 2012-08-15 2014-02-27 Korg Inc 楽音発生装置

Also Published As

Publication number Publication date
JP3852634B2 (ja) 2006-12-06

Similar Documents

Publication Publication Date Title
EP1026662B1 (en) Software sound source
EP1580729B1 (en) Sound waveform synthesizer
US6180863B1 (en) Music apparatus integrating tone generators through sampling frequency conversion
EP1018724B1 (en) Computerized music apparatus processing waveform to create sound effect
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
JP4036233B2 (ja) 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体
US5714704A (en) Musical tone-generating method and apparatus and waveform-storing method and apparatus
JP3163984B2 (ja) 楽音発生装置
US5809342A (en) Computer system and method for generating delay-based audio effects in a wavetable music synthesizer which stores wavetable data in system memory
JP3852634B2 (ja) 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体
JP2002524805A (ja) 仮想キャッシュを備える音響生成集積回路
JPH07121181A (ja) 音声情報処理装置
JP2901143B2 (ja) 楽音生成装置
JP3285137B2 (ja) 楽音発生装置および楽音発生方法、並びに該方法に係るプログラムを記憶した記憶媒体
JP3275678B2 (ja) 楽音発生方法および装置
JP3246405B2 (ja) 楽音発生方法、楽音発生装置および楽音発生用プログラムを記録した記録媒体
JP3339372B2 (ja) 楽音発生装置および楽音発生方法を実現するためのプログラムを格納した記憶媒体
JP3137043B2 (ja) 波形メモリ音源装置および楽音発生装置
JP3723973B2 (ja) 音源装置
JP3148803B2 (ja) 音源装置
JP2709965B2 (ja) Bgm再生に用いる音楽伝送再生システム
JP2000122668A (ja) デジタル音声データ処理装置およびコンピュータシステム
JP2956552B2 (ja) 楽音発生方法および装置
JPH05249970A (ja) 電子楽器の効果付与装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060529

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060830

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20100915

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100915

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110915

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120915

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130915

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees