JP2003330469A - 楽音生成装置及びプログラム - Google Patents

楽音生成装置及びプログラム

Info

Publication number
JP2003330469A
JP2003330469A JP2002133981A JP2002133981A JP2003330469A JP 2003330469 A JP2003330469 A JP 2003330469A JP 2002133981 A JP2002133981 A JP 2002133981A JP 2002133981 A JP2002133981 A JP 2002133981A JP 2003330469 A JP2003330469 A JP 2003330469A
Authority
JP
Japan
Prior art keywords
waveform
data
sample
tone
read
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
JP2002133981A
Other languages
English (en)
Other versions
JP3832383B2 (ja
Inventor
Hiroshi Owaki
浩 大脇
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 JP2002133981A priority Critical patent/JP3832383B2/ja
Publication of JP2003330469A publication Critical patent/JP2003330469A/ja
Application granted granted Critical
Publication of JP3832383B2 publication Critical patent/JP3832383B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 楽音の生成を効率的に行うことができるよう
にする。 【解決手段】 波形の複数サンプル値を記憶する外部記
憶手段から所定の内部記憶手段に対して複数サンプル値
をまとめて転送する。波形メモリ読出手段は、内部記憶
手段から連続して読み出すべき複数サンプル値に対応す
る読み出しアドレスを予め算出し記憶する。この波形メ
モリ読出手段による読み出しアドレス算出対象の複数サ
ンプル値は、予め波形の複数サンプル値を記憶する外部
記憶手段から所定の内部記憶手段に対してまとめて転送
されている。したがって、外部記憶装置から1回1回対
象とするサンプル値の取り込みを行う必要がないので、
楽音生成処理時における演算処理手段にかかる処理負荷
を低減することができ、楽音の生成を効率的に行うこと
ができるようになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、CPUのような
汎用の演算処理手段によって楽音生成を行う楽音生成装
置及びプログラムに関する。特に、楽音生成処理時にお
ける演算処理手段にかかる処理負荷を低減することによ
り、楽音の生成を効率的に行うことのできるようにした
楽音生成装置及びプログラムに関するものである。
【0002】
【従来の技術】最近では、CPUのような汎用の演算処
理手段の演算能力の向上に伴って、汎用コンピュータや
専用の楽音発生装置などに搭載されるCPUに所定の楽
音生成処理を実行させることによって楽音生成を行うこ
とのできる楽音生成装置(つまりソフト音源)が知られ
ている。すなわち、CPUに楽音生成処理のためのアプ
リケーションプログラムを実行させて、該アプリケーシ
ョンプログラムに基づき楽音を生成する。こうした楽音
生成装置においては、所定の1サンプリング周期(つま
り、デジタル・アナログ変換器の変換タイミング)毎に
各チャンネルの楽音波形サンプルデータを発音チャンネ
ル分演算生成することによって楽音を生成する。したが
って、CPUは各発音チャンネルの処理を行う場合、ま
ず、前回の当該発音チャンネルの演算に用いた各種レジ
スタ値(例えば、各種制御パラメータなど)をメモリか
らCPUのレジスタに読み出す等の準備処理が行われ
る。また、当該発音チャンネルの楽音生成処理後には次
回の処理のため、前記レジスタ値をメモリに書き込む必
要がある。すなわち、各発音チャンネルの楽音波形サン
プルデータを1サンプルずつ生成するようにしていたた
めに、楽音を生成する楽音生成処理以外の準備処理に多
くのCPUの演算時間が費やされてしまい(つまり、C
PUのオーバヘッドが大きくなる)、それに伴って演算
効率が悪くなって応答や楽音生成処理が遅くなることが
生じていた。
【0003】そこで、こうしたソフト音源での楽音生成
処理を高速に行うために、CPUのオーバヘッドを小さ
くすることのできる楽音生成方法が本出願人により既に
出願済みである(特開平9−044160号参照)。この楽音
生成方法を適用した従来の楽音生成装置で実行する楽音
生成処理概要について、図13を用いて簡単に説明す
る。図13は、従来の楽音生成装置の楽音生成処理概要
を説明するための概念図である。ただし、この図13で
は、所定の音色が割り当てられた発音チャンネルCh1
(例えばピアノ音色である1ボイス)〜発音チャンネル
Ch8(例えばドラム音色である1ボイス)毎に64サ
ンプル分の楽音波形サンプルデータを生成し(これをフ
レーム処理と呼ぶ)、該生成した各発音チャンネル毎の
64サンプル分の楽音波形サンプルデータに基づき全発
音チャンネル分の楽音生成処理を実行する楽音生成装置
を示している。
【0004】まず、各フレーム処理1〜フレーム処理3
において、発音を割り当てられている各発音チャンネル
毎(ここでは、Ch1〜Ch8までの8チャンネル分)
に、所定のサンプリング周期に従って波形メモリから読
み出した1乃至複数の原波形データ(サンプル波形とも
呼ぶ)に基づき複数の楽音波形サンプルデータを生成す
る(楽音波形サンプルの生成)。すなわち、所定のサ
ンプリング周期(例えば、デジタル・アナログ変換器の
変換タイミングなど)に対応する周波数ナンバをサンプ
リング周期毎に累算することによって算出される累算F
ナンバ(整数部と小数部とを含むアドレスであって、読
み出しアドレスとも呼ぶ)の整数部に応じて、所定の波
形メモリに記憶されている原波形データを読み出す。そ
して、波形メモリから前記読み出しアドレスの整数部に
応じて読み出した原波形データを前記読み出しアドレス
の小数部に応じて補間し、該補間処理で得られた波形デ
ータに対してフィルタ制御や振幅制御などの各種制御を
施すことによって1サンプル分の楽音波形サンプルデー
タを生成する。これを各発音チャンネル毎に複数サンプ
ル分繰り返し、各発音チャンネルにおいて複数の楽音波
形サンプルデータ、例えば64サンプル分の楽音波形サ
ンプルデータをまとめて生成する。次に、生成した複数
の楽音波形サンプルデータの1つ1つについて、Ch1
〜Ch8までの全ての発音チャンネル分累算する(C
h1〜Ch8の累算)。すなわち、生成された各発音チ
ャンネル毎の複数楽音波形サンプルデータを全発音チャ
ンネルにわたって累算し、該累算した結果の複数の累算
サンプルデータを出力バッファ(ただし、図13では出
力バッファA及び出力バッファBのダブルバッファ構成
のものを示した)に書き込む。つまり、波形合成を行
う。そして、出力バッファに書き込んだ累算サンプルデ
ータに基づき楽音波形の生成を行う(出力バッファか
らの読み出し)。すなわち、出力バッファに記憶された
複数の累算サンプルデータを、上記サンプリング周期毎
に1サンプルずつ順次に読み出すことによって、各フレ
ーム処理において全発音チャンネル分を合成した楽音波
形を複数サンプル生成する。
【0005】上述したように、従来の楽音生成装置では
各発音チャンネルの楽音波形サンプルデータを演算する
際に複数サンプル分をまとめて生成する(楽音波形サ
ンプルの生成参照)。こうした場合には、複数の楽音波
形サンプルデータの演算について1回だけ各発音チャン
ネルに対する準備処理を行えばよい。すなわち、各チャ
ンネル毎に適用すべき各種制御パラメータ(例えばフィ
ルタ制御や振幅エンベロープ制御)の切替などの準備処
理を楽音波形サンプルデータを1サンプル生成する度に
行わずにすむ。したがって、準備処理の回数を減らすこ
とができることから、それに伴いCPUのオーバヘッド
を小さくすることができるようになっている。
【0006】また、上述したようなCPUに楽音生成処
理のためのアプリケーションプログラムを実行させて楽
音を生成するソフト音源を適用した楽音生成装置におい
て、プログラムカウンタを1つずつインクリメントし
て、その進行に従って楽音生成処理のための各命令が実
行されていくようにすると、プログラムが高速に実行さ
れて効率的に楽音生成処理を行うことができる。他方、
プログラム内に分岐命令がある場合には、プログラムカ
ウンタをその分岐先のアドレスに一旦ジャンプさせ、そ
の分岐処理が終わるとプログラムカウンタを分岐前の元
の値に戻さなくてはならない。こうしたプログラムカウ
ンタを前後に飛ばす処理を行うと、その分だけプログラ
ムの実行は遅くなる。さらに、CPUがパイプライン処
理によりプログラムにおける各命令を処理しているよう
な場合には、こうした非効率の度合いがより大きくなる
ことが知られている。
【0007】
【発明が解決しようとする課題】ところで、上述したよ
うな従来の楽音生成装置では各発音チャンネルの楽音波
形サンプルデータを複数サンプル分まとめて生成する際
に、波形メモリから原波形データを読み出すための読み
出しアドレスが波形メモリにおける当該原波形データの
終端の波形メモリアドレス(これをエンドポイントと呼
ぶ)を超えているか否かの判定(終端チェック処理)を
1回1回の原波形データの読み出し毎に(つまり、1サ
ンプル分の楽音波形サンプルデータ生成毎に)行ってい
る。すなわち、波形メモリから原波形データを読み出す
際において、読み出しアドレスが読み出すべき原波形デ
ータのアドレス範囲を超えている場合には、原波形デー
タをループ読み出しするために波形メモリにおける原波
形データの最初の波形メモリアドレス(これをループポ
イントと呼ぶ)から読み出しを行わなければならない。
そのために、1回1回の原波形データの読み出し毎に該
読み出しアドレスが波形メモリにおける当該原波形デー
タの終端の波形メモリアドレスを超えているか否かの判
定を行っている。また、CPUに楽音生成処理のための
アプリケーションプログラムを実行させて楽音を生成す
る場合、CPUはCPU外部の所定の記憶装置に記憶さ
れた原波形データをCPU内部の内部メモリに取り込ん
で、該内部メモリに記憶された原波形データに基づき楽
音波形サンプルデータを生成している。しかし、CPU
外部の記憶装置から原波形データを内部メモリに取り込
む際に、1回1回対象とする原波形データのみを取り込
んでいたためにプログラムの実行が遅くなる、つまりC
PUのオーバヘッドが大きく演算効率が悪くなってしま
うことから、応答や楽音生成処理が遅く不都合である、
という問題点があった。
【0008】本発明は上述の点に鑑みてなされたもの
で、CPU外部の記憶装置から原波形データを内部メモ
リに取り込む際に、1回1回対象とする原波形データの
みを取り込むのではなく、所定範囲毎にまとめて複数の
原波形データを取り込むことによって、CPUのオーバ
ヘッドが小さく、楽音生成処理を効率よく実行すること
ができるようにした楽音生成装置及びプログラムを提供
することを目的とする。
【0009】
【課題を解決するための手段】本発明に係る楽音生成装
置は、波形の複数サンプル値を記憶する外部記憶手段
と、前記外部記憶手段から所定の内部記憶手段に対して
複数サンプル値をまとめて転送する転送手段と、前記内
部記憶手段から連続して読み出すべき複数サンプル値に
対応する読み出しアドレスを予め算出し記憶する波形メ
モリ読出手段と、前記波形メモリ読出手段により記憶さ
れた複数の読み出しアドレスに対応する波形サンプルを
連続的に生成し、該生成した波形サンプルを予め決めら
れたサンプリング周期に従う再生レートに応じてアナロ
グ信号に変換する波形生成手段とを具備するものであ
る。
【0010】この発明によると、波形の複数サンプル値
を記憶する外部記憶手段から所定の内部記憶手段に対し
て複数サンプル値をまとめて転送するようにしたことか
ら、楽音生成処理時における演算処理手段にかかる処理
負荷を低減することができ、楽音の生成を効率的に行う
ことができるようになる。すなわち、波形生成手段は、
波形メモリ読出手段により記憶された複数の読み出しア
ドレスに対応する波形サンプルを連続的に生成し、該生
成した波形サンプルを予め決められたサンプリング周期
に従う再生レートに応じてアナログ信号に変換すること
で楽音を生成する。波形メモリ読出手段は、前記内部記
憶手段から連続して読み出すべき複数サンプル値に対応
する読み出しアドレスを予め算出し記憶する。この波形
メモリ読出手段による読み出しアドレス算出対象の複数
サンプル値は、転送手段により予め波形の複数サンプル
値を記憶する外部記憶手段から所定の内部記憶手段に対
してまとめて転送されている。このように、予め必要な
複数サンプル値を外部記憶手段から内部記憶手段にまと
めて転送しておくことによって、外部記憶手段から1回
1回対象とするサンプル値の取り込みを行う必要がな
い。したがって、CPUのオーバヘッドをより小さくす
ることができ、楽音生成処理を効率よく実行することが
できるようになる。
【0011】本発明は、装置の発明として構成し、実施
することができるのみならず、方法の発明として構成し
実施することができる。また、本発明は、コンピュータ
またはDSP等のプロセッサのプログラムの形態で実施
することができるし、そのようなプログラムを記憶した
記憶媒体の形態で実施することもできる。
【0012】
【発明の実施の形態】以下、添付図面を参照してこの発
明の実施の形態を詳細に説明する。
【0013】図1は、この発明に係る楽音生成装置の全
体構成の一実施例を示すハード構成ブロック図である。
ここに示された楽音生成装置のハードウエア構成例はコ
ンピュータを用いて構成されており、そこにおいて、各
発音チャンネル毎に所定サンプル数の楽音波形サンプル
データを生成するための「楽音波形サンプル生成処理」
(後述する図7及び図8参照)等の各種制御処理は、コ
ンピュータが各種制御処理を実現する所定の制御プログ
ラムを含むソフトウエアを実行することにより実施され
る。勿論、これらの各種制御処理はコンピュータソフト
ウエアの形態に限らず、DSPによって処理されるマイ
クロプログラムの形態でも実施可能であり、また、この
種のプログラムの形態に限らず、ディスクリート回路又
は集積回路若しくは大規模集積回路等を含んで構成され
た専用ハードウエア装置の形態で実施してもよい。な
お、本発明に係る楽音生成装置は、パーソナルコンピュ
ータは言うに及ばず、電子楽器やカラオケ装置又は電子
ゲーム装置、あるいは携帯電話やPDA(Personal Dat
a(Digital) Assistants)などのマルチメディア機器
等、任意の製品応用形態をとっているものであってもよ
い。
【0014】本実施例に示す楽音生成装置は、マイクロ
プロセッサユニット(CPU)1、タイマ2、リードオ
ンリメモリ(ROM)3、ランダムアクセスメモリ(R
AM)4からなるマイクロコンピュータによって制御さ
れるようになっている。CPU1は、この楽音生成装置
全体の動作を制御するものである。このCPU1に対し
て、データ及びアドレスバス1Dを介してROM3、R
AM4、MIDIインタフェース(I/F)5、操作子6、デ
ィスプレイ7、外部記憶装置8、DMA(Direct Memor
y Access)コントローラ9がそれぞれ接続されている。
更に、CPU1には、タイマ割込み処理(インタラプト
処理)における割込み時間や各種時間を計時するタイマ
2が接続されている。例えば、タイマ2はクロックパル
スを発生し、発生したクロックパルスをCPU1に対し
て処理タイミング命令として与えたり、あるいはCPU
1に対してインタラプト命令として与える。CPU1
は、これらの命令に従って「楽音波形サンプル生成処
理」等の各種処理を実行する。
【0015】ROM3は、CPU1により実行あるいは
参照されるソフト音源を実現するためのアプリケーショ
ンプログラムなどの各種制御プログラム、プリセットさ
れた音色データや原波形データ(この実施例では、一例
として圧縮されたDPCM波形とする)等の各種データ
を格納するものである。RAM4は、CPU1が所定の
プログラムを実行する際に発生する各種データなどを一
時的に記憶するワーキングエリア、あるいは現在実行中
の制御プログラムやそれに関連するデータを記憶するメ
モリ等として使用される。RAM4の所定のアドレス領
域がそれぞれの機能に割り当てられ、レジスタやフラ
グ、テーブル、メモリなどとして利用される。この実施
例では、例えば音色データエリア、入力バッファエリ
ア、チャンネルレジスタエリア、出力バッファエリア、
サンプル情報バッファエリア等のそれぞれの記憶エリア
に所定のデータが記憶される。こうした記憶エリアの詳
細な説明については後述することから、ここでの説明を
省略する。また、これらの記憶エリア以外に、RAM4
の所定幅のメモリ領域を予めループバッファ(すなわ
ち、所定メモリ範囲のバッファエリアを超えてデータが
書き込まれようとした場合に、バッファエリアを超えて
書き込もうとしたデータを自動的に該バッファエリアの
先頭から書き込むバッファ)として使用するようにセッ
トしておく。この実施例に示す楽音生成装置では、複数
楽音波形サンプルデータ生成の際に必要な原波形データ
(DPCM波形)をROM3あるいはRAM4などに構
成された波形メモリから読み出し、該読み出した原波形
データ(DPCM波形)をPCM化したPCMサンプル
波形をループバッファに順次に記憶する。そして、この
ループバッファに記憶されたPCMサンプル波形に基づ
き波形補間を行って複数の楽音波形サンプルデータを生
成するようにしている(詳しくは後述する)。
【0016】MIDIインタフェース(I/F)5は、当該楽
音生成装置に接続された外部のMIDI機器(図示せず)か
らMIDI規格の楽音データ(つまりMIDIデータ)を当該楽
音生成装置へ入力したり、あるいは当該楽音生成装置か
らMIDIデータを外部のMIDI機器へ出力するためのインタ
フェースである。外部のMIDI機器としてはユーザの操作
に応じてMIDIデータを発生するMIDIキーボードや一連の
MIDIデータを順次に送信するシーケンサ、あるいはMIDI
データに基づいて楽音を発生する外部音源モジュールや
電子楽器など、各種MIDI機器であればどのようなもので
あってもよい。こうしたMIDIインタフェース5は専用の
MIDIインタフェースを用いるものに限らず、RS-232C、U
SB(ユニバーサル・シリアル・バス)、IEEE1394(アイ
トリプルイー1394)等の汎用のインタフェースを用いて
MIDIインタフェース5を構成するようにしてよい。そう
した場合、MIDIデータ以外のデータをも同時に送受信す
るようにしてもよい。MIDIインタフェース5として上記
したような汎用のインタフェースを用いる場合には、外
部のMIDI機器はMIDIデータ以外のデータも送受信できる
ようにしてよい。勿論、楽音生成装置と外部のMIDI機器
との間で送受信するデータに関するデータフォーマット
はMIDI形式のデータに限らず、他の形式であってもよ
く、その場合はMIDIインタフェース5と外部のMIDI機器
はそれにあった構成とする。
【0017】操作子6は、操作子の操作状態を検出し、
その操作状態に応じたスイッチ情報をデータ及びアドレ
スバス1Dを介してCPU1に出力する。操作状態を検
出する対象の操作子としては、例えば音高、音色、効果
等を選択・設定・制御するために用いる数値データ入力
用のテンキーや文字データ入力用のキーボード、あるい
はディスプレイ7に表示される所定のポインティングデ
バイスを操作するために用いるマウスなどの各種操作子
がある。ディスプレイ7は例えば液晶表示パネル(LC
D)やCRT等から構成され、ROM3あるいはRAM
4などに記憶されている音色データや原波形データなど
を所定の表示態様で表示するのは勿論のこと、それ以外
にもCPU1の制御状態などを表示することができる。
外部記憶装置8は、ソフト音源を実現するためのアプリ
ケーションプログラムなどの各種制御プログラム、プリ
セットされた音色データや原波形データ等の各種データ
などを記憶するものである。例えば、前記ROM3に制
御プログラムが記憶されていない場合、この外部記憶装
置8(例えばハードディスク)に制御プログラムを記憶
させておき、それをRAM4に読み込むことにより、R
OM3に制御プログラムを記憶している場合と同様の動
作をCPU1にさせることができる。このようにする
と、制御プログラムの追加やバージョンアップ等が容易
に行える。なお、外部記憶装置8はハードディスク(H
D)に限られず、フレキシブルディスク(FD)、コンパ
クトディスク(CD‐ROM・CD‐RW)、光磁気ディスク(M
O)、あるいはDVD(Digital Versatile Disk)等の着脱
自在な様々な形態の外部記憶媒体を利用する記憶装置で
あればどのようなものであってもよい。半導体メモリな
どであってもよい。
【0018】DMAコントローラ9は、複数の楽音波形
サンプルデータを生成する際に必要とされる原波形デー
タを、ROM3あるいはRAM4などに構成される波形
メモリから1乃至複数分まとめてDMA方式(ダイレク
トメモリアクセス方式)で読み出し、CPU1内部にあ
る内部RAM(内部メモリ)1aに供給するためのもの
である。すなわち、DMAコントローラ9は楽音波形サ
ンプルデータ生成時において、デジタル・アナログ変換
器(DAC)9Aのサンプリング周波数(例えば48k
Hz)に合わせたタイミングで、かつ、所定の複数サン
プル数(一例として64サンプル)分を1単位として該
1単位分の楽音波形サンプルデータを生成するのに必要
な原波形データをROM3あるいはRAM4から読み出
す。こうしたDMAコントローラ9による原波形データ
の読み出しについては、後述する(後述の図11参
照)。デジタル・アナログ変換器(DAC)9Aは、所
定のサンプリング周期毎に出力バッファから読み出した
累算サンプルデータを、アナログ信号に変換するもので
ある。このデジタル・アナログ変換器(DAC)9Aで
アナログ変換された累算サンプルデータはアンプやスピ
ーカなどを含むサウンドシステム9Bに送られて、該サ
ウンドシステム9Bから音響的に発音されるようになっ
ている。
【0019】なお、上述したような楽音生成装置は操作
子6やディスプレイ7などを1つの装置本体に内蔵した
ものに限らず、それぞれが別々に構成され、MIDIインタ
フェースや各種ネットワーク等の通信手段を用いて各装
置を接続するように構成されたものであってもよいこと
は言うまでもない。
【0020】上述したように、図1に示した楽音生成装
置におけるRAM4は各種データを記憶するための記憶
エリアを有している。そこで、その内の音色データを記
憶する音色データエリアを図2に、入力バッファを記憶
する入力バッファエリアを図4に、チャンネルレジスタ
を記憶するャンネルレジスタエリアを図5に、出力バッ
ファを記憶する出力バッファエリアを図6にそれぞれ示
す。ただし、説明の便宜上、サンプル情報バッファエリ
アについては後述する(後述の図9参照)。
【0021】図2は、RAM4上の音色データエリアの
一実施例を示す概念図である。この図2に示す音色デー
タエリアにおいて、PD1、PD2、・・・、PD16
は16種類分の音色データであり、それぞれの音色デー
タは各音域に対応する原波形データを指定するデータ
(つまり各音域波形指定)、ビブラート等をかける時に
使用するLFO(Low Frequency Oscillator)制御用の
オリジナルデータ、振幅を制御するエンベロープの発生
(AEG)制御用のオリジナルデータ、その他のオリジ
ナルデータからなっている。ソフト音源が使用する発音
用のデータは、発音指示時のタッチデータや音高データ
等に応じてこれらのオリジナルデータに加工を施すこと
により生成される。また、WD1、WD2、・・・、W
DnはROM3や外部記憶装置8から読み出してRAM
4の当該エリアに書き込んだ複数のサンプル波形からな
るオリジナル波形データであり、入力される音高データ
に応じて、PD1、PD2、・・・、PD16の音色デ
ータにおける各音域波形指定データによりいずれかのオ
リジナル波形データが指定される。すなわち、WD1、
WD2、・・・、WDnは、各々が波形メモリを構成す
る1音色毎の原波形データである。
【0022】ここで、ROM3やRAM4(あるいは外
部記憶装置8など)に構成される波形メモリに記憶され
るオリジナル波形データ(原波形データ)について、図
3を用いて説明する。図3は、オリジナル波形データの
データ構成を説明するための概念図である。ただし、こ
の図3に示す実施例では所定の1音色分の連続するオリ
ジナルのアナログ波形を8000サンプルに分け、各サ
ンプル毎に差分値を記憶するDPCM波形のような波形
サンプルデータ方式のものを示した。
【0023】この図3(a)及び図3(b)に示した各
図から理解できるように、波形メモリに記憶されるオリ
ジナル波形データは所定のサンプリング周波数に伴うサ
ンプリング周期毎に各時点における波形メモリ値(ここ
では、1つ前の波形の振幅値と当該波形の振幅値との差
分値)を記憶するものであり、各波形メモリ値に対して
は各々のサンプル波形を記憶した波形メモリ位置、つま
り波形メモリにおける所定の記憶領域のアドレス番号
(波形メモリアドレス)が付される。ただし、この実施
例では処理の都合上、波形メモリアドレス「‐1」の波
形メモリ値を特別なものとして「0」固定としている。
すなわち、波形メモリアドレス「‐1」である1番目の
サンプル波形は振幅「0」の特別な波形である。また、
オリジナル波形データをDPCM波形として構成した場
合、各サンプル波形の波形メモリ値には1つ前のサンプ
ル波形との差分値が設定されている。オリジナルのアナ
ログ波形が図3(b)に示す曲線のような波形である場
合、1番目のサンプル波形(振幅「0」)と2番目のサ
ンプル波形との差分が「Δ0」、2番目のサンプル波形
と3番目のサンプル波形との差分が「Δ1」、3番目の
サンプル波形と4番目のサンプル波形との差分が「Δ
2」、4番目のサンプル波形と5番目のサンプル波形と
の差分が「Δ3」であることから、図3(a)に示すよ
うな波形メモリ値を各波形メモリアドレス毎にそれぞれ
持っている原波形データが記憶されることになる。
【0024】このような波形メモリを利用して楽音波形
サンプルデータを生成する場合には、該記憶した波形メ
モリ値を所定のサンプリング周期で周波数ナンバを累算
することにより算出される累算Fナンバ(読み出しアド
レス)の整数部に対応する波形メモリアドレスの波形メ
モリ値を取り出し、それらを順次に加算してサンプル波
形の振幅とする。すなわち、各サンプル波形の波形メモ
リ値には1つ前のサンプル波形との差分値が設定されて
いることから、当該サンプル波形を求める場合には1つ
前の波形に対して差分値を加算する。例えば、波形メモ
リアドレス「‐1」である1番目のサンプル波形は振幅
「0」の波形である。次に、波形メモリアドレス「0」
である2番目のサンプル波形の波形メモリ値は「Δ0」
であることから、2番目のサンプル波形は振幅「0」の
波形に対して、アドレス「0」で示される先の記憶領域
に記憶された波形メモリ値「Δ0」を加算した振幅「0
+Δ0」の波形である。これを続けていくと、例えば波
形メモリアドレス「3」である5番目のサンプル波形
は、4番目のサンプル波形の振幅(0+Δ0+Δ1+Δ
2)に波形メモリ値「Δ3」を加算した振幅「0+Δ0
+Δ1+Δ2+Δ3」の波形となる。なお、上述したよ
うに、この実施例では波形メモリアドレス「‐1」に波
形メモリ値「0」を定義している。一般的に波形メモリ
アドレスは「0」以上の整数値で表わすようにすること
が多いが、この実施例では波形メモリアドレスの開始位
置を「‐1」から始まるものとして、オリジナル波形全
体を波形メモリアドレス上で便宜的にシフトすることに
よって、後述する「楽音波形サンプル生成処理」(図7
及び図8参照)を単純化することができるようにしてい
る。このようなプログラムの単純化によって、「楽音波
形サンプル生成処理」を少しでも速く実行することがで
きるようになり、効率的に楽音を生成することができる
ようにもしている。
【0025】RAM4の記憶エリアの説明に戻って、図
4はRAM4上の入力バッファエリアの一実施例を示す
概念図である。この図4に示す入力バッファエリアには
MIDIインターフェース5を介して入力されるノートオ
ン、ノートオフなどの各種イベントに対応するMIDIイベ
ントデータID1、ID2、ID3、・・・が読み出さ
れることにより、そのイベント処理が楽音生成装置内に
おいて実行される。このMIDIイベントデータID1、I
D2、ID3、・・・はMIDIイベントのデータ内容(例
えばデータ1内容)と、そのデータの発生時刻(例えば
データ1発生時刻)とにより構成される。この発生時刻
はMIDIイベントデータ受信時にタイマ2の現在時刻を取
り込むことにより知ることができる。
【0026】図5は、RAM4上のチャンネルレジスタ
エリアの一実施例を示す概念図である。この図5に示す
チャンネルレジスタエリアは、それぞれ互いに独立した
複数の楽音の生成を制御するためのデータを記憶するチ
ャンネル(Ch)レジスタとして使用され、この例では
1Ch、2Ch、・・・、8Chの8チャンネル分のエ
リアが用意されている。各チャンネルのエリアはノート
ナンバ、波形指定データ、LFO制御データ、振幅エン
ベロープ(AEG)制御データ、ノートオンデータ、そ
の他のデータ、及びCPU1がプログラム実行時に使用
するワークエリアからなっている。この波形指定デー
タ、LFO制御データ、AEG制御データは前記した各
オリジナルデータに加工が施された発音用のデータであ
る。
【0027】図6は、RAM4上の出力バッファエリア
の一実施例を示す概念図である。この図6に示すエリア
は複数の出力バッファ用のエリアであり、この実施例で
は出力バッファAと出力バッファBとが順次交代して発
音波形生成用の出力バッファとして使用されている。こ
の出力バッファは、所定の演算処理(図示せず)により
生成された各発音チャンネルの累算サンプルデータSD
1、SD2、SD3、・・・が生成される毎にチャンネ
ル累算され格納される。出力バッファのいずれかが発音
波形生成用の出力バッファとして指定され、波形生成演
算に使用される(図13のCh1〜Ch8の累算及び
出力バッファからの読み出し参照)。この出力バッフ
ァは2つ以上用意される。最も簡単な構成としては出力
バッファを2個とし、片方に格納されているデータをD
MA9に渡して再生している間に、もう片方に演算した
次の累算サンプルデータを格納するダブルバッファ構成
とすることができる。なお、出力バッファのサイズは、
100ワード、500ワード、1Kワード、5Kワード
等任意に設定することができるが、サイズを大きくする
と発音に遅れを生じ、サイズを小さくすると時間的マー
ジンが減少し、一時的な演算量の増加時に応答が悪くな
ることになる。そこで、リアルタイム性が要求されな
い、例えばシーケンサ演奏等の場合は、演奏タイミング
を前にずらすことにより発音遅れを吸収できるため、出
力バッファのサイズを大きくすることができる。一方、
リアルタイムの演奏が必要とされる、例えば鍵盤演奏等
の場合は、発音遅れを防止するため、バッファサイズは
100〜200ワードとするとよい。以上は、再生のサ
ンプリング周波数が40kHz〜50kHzの場合であ
り、サンプリング周波数を低く設定する場合は、発音遅
れを防止するためにもっと小さいサイズにする必要があ
る。
【0028】図1に示す本発明に係る楽音生成装置で
は、図13に示した従来の楽音生成処理で実行している
処理手順と同様の処理手順に従って楽音を生成する。す
なわち、所定のサンプリング周期に従って波形メモリか
ら読み出した1乃至複数の原波形データに基づいて各発
音チャンネル毎に複数の楽音波形サンプルデータを生成
し(図13の楽音波形サンプルの生成参照)、該生成
した複数楽音波形サンプルデータの1つ1つについて全
ての発音チャンネル分を累算した結果の複数の累算サン
プルデータを出力バッファに書き込み(図13のCh
1〜Ch8の累算参照)、該出力バッファに書き込んだ
累算サンプルデータに基づいて楽音波形の生成を行う
(図13の出力バッファからの読み出し参照)。ただ
し、既に説明したように、上記の各発音チャンネル毎に
複数の楽音波形サンプルデータを生成する際に(楽音
波形サンプルの生成)、読み出しアドレスが波形メモリ
における当該原波形データの終端側アドレスを超えてい
るか否かを判定する終端チェック処理を1回1回の原波
形データの読み出し毎に行うとCPUのオーバヘッドが
大きくなり都合が悪い。そこで、図1に示す楽音生成装
置では楽音波形サンプルの生成時において、複数の楽
音波形サンプルデータをまとめて生成するために必要な
原波形データを、所定のサンプリング周期に応じて算出
される読み出しアドレスに従って波形メモリから読み出
す際に1回1回の読み出し毎に終端チェック処理を行う
ことがないように、所定のループバッファを用いて楽音
波形サンプルデータを生成する。こうすることにより、
CPUのオーバヘッドをより小さくすることができるよ
うにしている。
【0029】そこで、上述したループバッファを用いて
楽音波形サンプルデータを生成する処理、つまり1回1
回の読み出し毎に終端チェック処理を行うことなしに波
形メモリから原波形データを読み出すことができ、効率
的に各発音チャンネル毎に複数の楽音波形サンプルデー
タを生成することのできる「楽音波形サンプル生成処
理」について、図7及び図8を用いて説明する。図7は
「楽音波形サンプル生成処理」における前半部分の処理
の一実施例を示すフローチャートであり、図8は「楽音
波形サンプル生成処理」における後半部分の処理の一実
施例を示すフローチャートである。すなわち、図7に示
した前半処理に引き続き、図8に示した後半処理が実行
される。以下、図7及び図8に示した各々のフローチャ
ートに従って、当該「楽音波形サンプル生成処理」の動
作について説明する。ただし、ここでは各フレーム処理
において、各発音チャンネル毎に64サンプル分の楽音
波形サンプルデータを生成する場合を例にして説明す
る。
【0030】まず、図7に示したフローチャートに従っ
て、「楽音波形サンプル生成処理」における前半部分の
処理動作について説明する。ステップS1では、ループ
カウンタを「0」にセットする。このループカウンタ
は、各発音チャンネル毎に生成する楽音波形サンプルデ
ータの数だけカウントされる変数である。すなわち、楽
音波形サンプルデータを生成するタイミングである所定
のサンプリング周期毎に「1」ずつ加算されるようにし
てカウントされる。この実施例においては各フレーム処
理において、各発音チャンネル毎に64サンプル分の楽
音波形サンプルデータを生成するようにしたことから、
該ループカウンタはサンプリング周期に従って「0」〜
「63」までの64サンプル分の値を取り得る。ステッ
プS2では、累算Fナンバの算出を行う。累算Fナンバ
は、所定のサンプリング周期に従う周波数ナンバ(Fナ
ンバ)をループカウンタのカウント進行に応じて、つま
りサンプリング周期毎に順次に加算することによって算
出する。例えば、Fナンバが「2.4」である場合、累算
Fナンバはループカウンタの進行に応じて「0.0」「2.
4」「4.8」「7.2」・・・のように順次算出される。こ
の累算Fナンバの整数部は波形メモリアドレスに対応す
るものであることから、この累算Fナンバの整数部に対
応する波形メモリアドレスを持つ原波形データを波形メ
モリから読み出すことができるようになっている。こう
して算出される累算Fナンバに基づき補間係数を求め、
求めた補間係数を上記ループカウンタと共にサンプル情
報バッファ(後述する図9参照)に保存する(ステップ
S3)。補間係数は累算Fナンバの小数部であって、後
述する波形補間処理(図8のステップS24参照)実行
時に用いられる。例えば、累算Fナンバが「2.4」であ
る場合には補間係数は「0.4」となるし、累算Fナンバ
が「4.8」である場合には補間係数は「0.8」となる。
【0031】ステップS4では、波形メモリアドレス増
分値を算出してサンプル情報バッファに保存する。すな
わち、上記ステップS2において算出した累算Fナンバ
に対応する楽音波形サンプルデータを生成するために
は、該累算Fナンバに近い前後の波形メモリアドレスの
原波形データを波形メモリから読み出して波形補間を行
うことが必要である。そこで、こうした楽音波形サンプ
ルデータを生成するための累算Fナンバに対応する波形
メモリアドレスを増分値でサンプル情報バッファに保存
する。例えば、累算Fナンバが「4.8」と算出されてお
り、その1つ前の累算Fナンバが「2.4」であった場合
には、該波形メモリアドレス増分値を「2」(つまり、
[累算Fナンバ「4.8」の整数部である「4」]−[1つ前
の累算Fナンバ「2.4」の整数部である「2」])に決定
する。そして、後述するように、該波形メモリアドレス
増分値「2」に従ってループバッファに記憶された原波
形データをデコードしたPCMサンプル波形を読み出す
ためのアドレスを求め、これに基づいて波形補間に必要
なPCMサンプル波形をループバッファから読み出し、
読み出したPCMサンプル波形に基づき波形補間を行う
ことにより各累算Fナンバに対応する楽音波形サンプル
データを生成する(後述する図8のステップS22〜ス
テップS24参照)。
【0032】ステップS5では、ループカウンタに
「1」を加算する。ステップS6では、ループカウンタ
が63より大きい値であるか否かを判定する。ループカ
ウンタが63より大きい値でない場合、つまりループカ
ウンタが63以下である場合には(ステップS6のN
O)、ステップS2の処理に戻って上記ステップS2〜
ステップS6までの処理を繰り返し実行する。他方、ル
ープカウンタが63より大きい値である場合、つまりル
ープカウンタが64となった場合には(ステップS6の
YES)、ステップS7の処理へ行く。このように上記
したステップS2〜ステップS6までの処理を繰り返し
実行することで、64サンプル分の楽音波形サンプルデ
ータを生成するために必要なサンプル情報バッファをR
AM4上に順次に生成していくようになっている。すな
わち、波形補間係数と波形取得サンプル位置(波形メモ
リアドレス増分値)とを64サンプル分取得する。
【0033】ここで、上記ステップS2〜ステップS6
までの処理を繰り返すことによって、RAM4上に生成
されるサンプル情報バッファエリアについて、図9を用
いて説明する。図9は、RAM4上のサンプル情報バッ
ファエリアの一実施例を示す概念図である。
【0034】この図9から理解できるように、各発音チ
ャンネル毎に生成されるサンプル情報バッファ(エリ
ア)は、ループカウンタ「0」から「63」までの64
サンプルそれぞれの各サンプル位置に応じて、上記ステ
ップS3で算出した補間係数(つまり、累算Fナンバの
小数部)と上記ステップS4で決定した波形メモリアド
レス増分値とを記憶する。ここでは、ループカウンタが
1増える毎に、累算Fナンバが「2.4」ずつ増加してい
る場合に記憶される各データ内容を例に示した。ループ
カウンタの増加に伴い、累算Fナンバは「0.0」「2.4」
「4.8」「7.2」…「151.2」となり、累算Fナンバの小
数部が補間係数であることから、この場合における補間
係数は「0.0」「0.4」「0.8」「0.2」…「0.2」とな
る。波形取得サンプル位置(波形メモリアドレス増分
値)は1つ前の累算Fナンバの整数部と該累算Fナンバ
の整数部との増加分であることから、この場合における
波形メモリアドレス増分値は「0」「2(2-0)」「2(4-
2)」「3(7−4)」…「3(151−148)」となる。
【0035】なお、上述した「楽音波形サンプル生成処
理」においては算出した累算Fナンバをサンプル情報バ
ッファに記憶することなく、累算Fナンバの小数部のみ
を補間係数として(ステップS3参照)、累算Fナンバ
の整数部の増分値を波形メモリアドレス増分値として
(ステップS4参照)記憶するようにしたが、こうした
補間係数や波形メモリアドレス増分値を記憶する代わり
に、累算Fナンバのみをそのまま記憶するようにしても
よい。ただし、そうした場合には、該累算Fナンバから
小数部や整数部のみを取りだし、小数部を補間係数とし
て補間処理を行ったり、整数部から波形メモリアドレス
増分値を算出する必要があることは言うまでもない。勿
論、補間係数や波形メモリアドレス増分値と共に累算F
ナンバを記憶しておくようにしてもよい。
【0036】図7に示すフローチャートの説明に戻っ
て、ステップS7では各チャンネル毎において64サン
プル分の楽音波形サンプルデータを取り出す処理(つま
り1回のフレーム処理)で処理する範囲の終端側アドレ
ス(これをフレーム処理のエンドポイントと呼び、pE
と略示する)を取得する。例えば、上述した図9に示す
ようなサンプル情報が生成される場合においては、今回
のフレーム処理範囲は累算Fナンバ「0.0」〜「151.2」
の範囲であり、該フレーム処理のエンドポイントとして
は累算Fナンバの整数部「151」が取得されることに
なる。ステップS8では、当該フレーム処理が最初のフ
レーム処理であるか否かを判定する。すなわち、今回の
各チャンネル毎において64サンプル分の楽音波形サン
プルデータを取り出す処理(フレーム処理)が、第1回
目の64サンプル分を取り出す処理であるか否かを判定
する。当該処理が最初のフレーム処理であると判定され
た場合には(ステップS8のYES)、当該フレーム処
理で処理する範囲のうちの始端側アドレス(これをスタ
ートポイントと呼び、pSと略示する)として1音色の
波形メモリの始端側アドレス(これを1音色の波形RO
Mのスタートポイントと呼び、rSと略示する)を設定
し(ステップS9)、ステップS15の処理へジャンプ
する。
【0037】一方、当該フレーム処理が最初のフレーム
処理であると判定されなかった場合、つまり2回目以降
のフレーム処理であると判定された場合には(ステップ
S8のNO)、1つ前のフレーム処理の終端側アドレス
(これを前フレーム処理のエンドポイントと呼び、pE
´と略示する)と今回のフレーム処理のエンドポイント
(pE)とが同じ位置であるか否かを判定する(ステッ
プS10)。前フレーム処理のエンドポイント(pE
´)と今回のフレーム処理のエンドポイント(pE)と
が同じ位置であると判定された場合には(ステップS1
0のYES)、現在の波形読み出しアドレス(つまり累
算Fナンバ)を次の64ポイント生成のために保存し
(ステップS11)、後述の図8に示すフローチャート
に示すステップS24の処理へジャンプする。1つ前の
フレーム処理のエンドポイント(pE´)と今回のフレ
ーム処理の範囲のエンドポイント(pE)とが同じ位置
であると判定されなかった場合には(ステップS10の
NO)、フレーム処理のスタートポイント(pS)とし
て前のフレーム処理のエンドポイント(pE´)に
「1」を加算したものを設定する(ステップS12)。
【0038】ステップS13では、上記ステップS12
において設定されたフレーム処理のスタートポイント
(pS)が1音色の波形ROMのスタートポイント(r
S)よりも大きい値であるか否かを判定する。フレーム
処理のスタートポイント(pS)が1音色の波形ROM
のスタートポイント(rS)よりも大きい値であると判
定された場合には(ステップS13のYES)、新たな
フレーム処理の範囲のスタートポイント(pS)として
フレーム処理のスタートポイント(pS)から1音色の
波形ROMのアドレス幅(これをwLEと略示する)を
減算したものを再設定すると共に、新たなフレーム処理
の範囲のエンドポイント(pE)として現在のフレーム
処理のエンドポイント(pE)から1音色の波形ROM
のアドレス幅(wLE)を減算したものを再設定する
(ステップS14)。前記1音色の波形ROMのアドレ
ス幅(wLE)は、1音色の波形ROMの終端側アドレ
ス(これを1音色の波形ROMのエンドポイントと呼
び、rEと略示する)から1音色の波形ROMにおいて
ループ読み出しを行うアドレス(これをループポイント
と呼び、rLと略示する)を減算することにより求めら
れるアドレス幅である。ステップS15では、フレーム
処理の中のループポイントからエンドポイント間の処理
回数(これをLTと略示する)を「−1」に初期化す
る。このステップS15の処理までが前半部分の処理で
あり、該処理を終了すると図8に示す後半部分の処理が
引き続いて実行される。
【0039】図8に示すフローチャートにおいて、ステ
ップS16ではフレーム処理のエンドポイント(pE)
が1音色の波形ROMのエンドポイント(rE)よりも
大きいか否かを判定する。フレーム処理のエンドポイン
ト(pE)が1音色の波形ROMのエンドポイント(r
E)よりも大きいと判定された場合には(ステップS1
6のYES)、新たなフレーム処理のエンドポイント
(pE)として現在のフレーム処理のエンドポイント
(pE)から1音色の波形ROMのループアドレス幅
(wLE)を減算したものを再設定すると共に、フレー
ム処理の中のループポイントからエンドポイント間の処
理回数(LT)に「1」を加算する(ステップS1
7)。そして、所定のフラグに「1」をセットして(ス
テップS18)、上記ステップS16の処理に戻る。他
方、フレーム処理のエンドポイント(pE)が1音色の
波形ROMのエンドポイント(rE)よりも大きいと判
定されなかった場合には(ステップS16のNO)、フ
レーム処理の中のループポイントからエンドポイント間
の処理回数(LT)が「0」より小さいか否かを判定す
る(ステップS19)。フレーム処理の中のループポイ
ントからエンドポイント間の処理回数(LT)が「0」
より小さいと判定された場合には(ステップS19のY
ES)、フレーム処理の中のループポイントからエンド
ポイント間の処理回数(LT)に対して「0」をセット
する(ステップS20)。ステップS21では、波形メ
モリアドレスを次の64サンプル生成のために保存す
る。上記ステップS7〜ステップS20までの処理によ
って、当該フレーム処理のスタートポイント(pS)と
エンドポイント(pE)の再設定が行われる。すなわ
ち、後述するステップS22で実行する条件分岐を含ま
ない複数回のROM波形PCM化のループによるバッチ
処理において、ループバッファを用いて楽音波形サンプ
ルデータを生成することに伴う処理を実行する。
【0040】ステップS22では、条件分岐を含まない
複数回のROM波形PCM化のループによるバッチ処理
を行う。すなわち、このステップS22の処理は、波形
メモリから1サンプルずつ原波形データ(DPCM波
形)を読み出して、該原波形データをPCM化したPC
Mサンプル波形をループバッファに書き込む処理であ
る。これについては後述の図10を用いて説明すること
から、ここでの説明を省略する。ステップS23では、
波形補間に使用するPCMサンプル波形を取得する。す
なわち、サンプル情報バッファに記憶した波形メモリア
ドレス増分値に従って波形メモリアドレスを再計算し、
該再計算した波形メモリアドレスに基づきループバッフ
ァから波形補間に必要な分のPCMサンプル波形を読み
出す。この必要な分のPCMサンプル波形の取りだしの
際に、上記ステップS7〜ステップS20までの処理に
よって再設定した当該フレーム処理のスタートポイント
(pS)とエンドポイント(pE)を用いる。ステップ
S24では、読み出したPCMサンプル波形に基づき波
形補間を実行する。これにより、64サンプル分の楽音
波形サンプルデータを生成する。例えば、波形メモリア
ドレスが「7」と再計算された場合は、波形補間で使用
するPCMサンプルを取り出すべき波形メモリアドレス
を「6」と「7」に決定する。そして、波形メモリアド
レス「6」と「7」に対応するPCMサンプル波形をル
ープバッファから読み出し、これに基づいて楽音波形サ
ンプルデータを生成する。ステップS25では、次のフ
レーム処理に具えて所定のフラグをリセットしておく。
【0041】上述したように、波形メモリに記憶されて
いる原波形データがDPCM波形であるような場合、波
形メモリ値には1つ前のサンプル波形との差分値が設定
される(図3参照)。そこで、PCMサンプル波形をル
ープバッファに書き込む際には(ステップS22参
照)、2以上のPCMサンプル波形をループバッファに
書き込む場合がある。すなわち、原波形データがDPC
Mである場合には、波形メモリに記憶されている波形メ
モリ値として1つ前のPCMサンプル波形との差分値が
設定されていることから、所定位置の当該PCMサンプ
ル波形は1つ前のPCMサンプル波形に差分値を加算し
て分かる。したがって、1つ前のPCMサンプル波形が
分からないと当該位置のPCMサンプル波形も分からな
い。そこで、こうしたことを避けるために、PCMサン
プル波形をループバッファに書き込む際には、1つのル
ープカウンタに対して2以上のPCMサンプル波形をル
ープバッファに書き込むことがある。例えば、図9に示
したサンプル情報バッファにおいて、ループカウンタ
「3」に対応するPCMサンプル波形をループバッファ
に書き込む際には、「5」「6」「7」の3つのPCM
サンプル波形が書き込まれる。これは、ループカウンタ
「3」時における累算Fナンバ「7.2」に対応するPC
Mサンプル波形を波形補間で生成するには、波形サンプ
ル位置「6」と波形サンプル位置「7」の2つのPCM
サンプル波形があればよいのだが、波形サンプル位置
「6」のPCMサンプル波形は波形サンプル位置「5」
のPCMサンプル波形がないと生成することができな
い。該ループカウンタ「3」より1つ前のループカウン
タ「2」までにおいては、波形サンプル位置「‐1」〜
「4」までのPCMサンプル波形を生成するように読み
出しサンプルに記憶されている。そこで、ループカウン
タ「3」に対応するPCMサンプル波形として、波形サ
ンプル位置「5」を加えた「5」「6」「7」の3つの
波形メモリアドレスに対応するPCMサンプル波形が生
成されることになる。
【0042】ここで、上記ステップS22に示した条件
分岐を含まない複数回のROM波形PCM化のループに
よるバッチ処理について、具体例を用いて説明する。こ
の複数回のROM波形PCM化のループによるバッチ処
理は、波形メモリ(波形ROM)から1サンプルずつ原
波形データ(DPCM波形)を読み出して、該原波形デ
ータをPCM化した波形、つまりDPCM波形をデコー
ドした結果のPCMサンプル波形をループバッファに順
次に書き込む処理である。該処理では、波形メモリから
1サンプルずつ原波形データを読み出す際に、当該フレ
ーム処理の範囲が1音色の波形ROMにおける原波形デ
ータの範囲を超えて読み出しを行うものであるか否かに
よって、波形メモリからの原波形データの読み出し方が
異なるようにしている。つまり、1回のフレーム処理に
おいて複数の楽音波形サンプルデータを生成するために
必要とする原波形データの範囲と1音色の波形ROMに
おける原波形データの範囲によって、波形メモリからの
原波形データの読み出し方を異ならせる。そこで、こう
した条件分岐を含まない複数回のROM波形PCM化の
ループによるバッチ処理において、フレーム処理の範囲
と1音色の波形ROMにおける原波形データの範囲との
比較に応じて、どのように波形メモリからの原波形デー
タの読み出し方を異ならせているかについて、図10を
用いて説明する。図10は、条件分岐を含まない複数回
のROM波形PCM化のループによるバッチ処理につい
て説明するための概念図である。この図10に示す各図
では上から順に、1音色の波形ROMにおける原波形デ
ータの範囲、1回のフレーム処理において複数の楽音波
形サンプルデータを生成するために必要とする原波形デ
ータの範囲、波形ROMからの原波形データの読み出し
方をそれぞれ示した。なお、ここでは説明を簡単にする
ために、1音色の波形ROMのスタートポイント(r
S)と1音色の波形ROMのループポイント(rL)と
を同じ波形メモリアドレスに設定したものについて説明
する。
【0043】まず、図10(a)は、1回のフレーム処
理の範囲のエンドポイント(pE)が1音色の波形RO
M範囲のエンドポイント(rE)を超えない場合に行わ
れる波形メモリからの原波形データの読み出し方につい
て説明するための概念図である。1回のフレーム処理の
範囲のエンドポイント(pE)が1音色の波形ROM範
囲のエンドポイント(rE)を超えない場合、上述した
「楽音波形サンプル生成処理」(図7及び図8参照)に
おいて所定のフラグが「0」にセットされる。すなわ
ち、この図10(a)に示す波形メモリからの原波形デ
ータの読み出し方は、前記所定のフラグが「0」である
場合に行われる。この場合には、図10(a)から理解
できるように、1回のフレーム処理の範囲のスタートポ
イント(pS)から1回のフレーム処理の範囲のエンド
ポイント(pE)までの該フレーム処理の範囲に従い、
1音色の波形ROMの範囲を超えることなく原波形デー
タが1サンプルずつ読み出される。そして、読み出され
た各々の原波形データはデコードされ、PCMサンプル
波形としてループバッファに書き込まれる。このよう
に、1回のフレーム処理の範囲のエンドポイント(p
E)が1音色の波形ROM範囲のエンドポイント(r
E)を超えない場合には、1音色の波形ROMから1サ
ンプルずつ原波形データを読み出す際に、1サンプル毎
に1音色の波形ROM範囲のエンドポイント(rE)を
超えたか否かの終端チェック処理を行わなくてよい。
【0044】図10(b)は、1回のフレーム処理の範
囲のスタートポイント(pS)が1音色の波形ROMの
エンドポイント(rE)以降の場合(つまり、前回のフ
レーム処理の範囲のエンドポイント(pE)と1音色の
波形ROMのエンドポイント(rE)とが等しい場合)
に行われる波形メモリからの原波形データの読み出し方
について説明するための概念図である。1回のフレーム
処理の範囲のスタートポイント(pS)が1音色の波形
ROMのエンドポイント(rE)以降の場合、上述した
「楽音波形サンプル生成処理」(図7及び図8参照)に
おいて所定のフラグが「0」にセットされる。すなわ
ち、この図10(b)に示す波形メモリからの原波形デ
ータの読み出し方は上記図10(a)に示した読み出し
方と同様に、前記所定のフラグが「0」である場合に行
われる。ただし、この場合には、上述した図10(a)
に示した場合と異なり、フレーム処理の範囲のスタート
ポイント(pS)とエンドポイント(pE)とが再設定
されている(上述した図7のステップS14参照)。こ
の場合には、図10(b)から理解できるように、再設
定された1回のフレーム処理の範囲のスタートポイント
(pS)から1回のフレーム処理の範囲のエンドポイン
ト(pE)までの該フレーム処理の範囲に従い、1音色
の波形ROMの範囲を超えることなく原波形データが1
サンプルずつ読み出される。そして、読み出された各々
の原波形データはデコードされ、PCMサンプル波形と
してループバッファに書き込まれる。このように、1回
のフレーム処理の範囲のスタートポイント(pS)が1
音色の波形ROMのエンドポイント(rE)以降の場合
においても、1音色の波形ROMから1サンプルずつ原
波形データを読み出す際に、1サンプル毎に1音色の波
形ROM範囲のエンドポイント(rE)を超えたか否か
の終端チェック処理を行わなくてよい。
【0045】図10(c)は、1回のフレーム処理の範
囲のエンドポイント(pE)が1音色の波形ROM範囲
のエンドポイント(rE)を1回だけ超えた場合に行わ
れる波形メモリからの原波形データの読み出し方につい
て説明するための概念図である。1回のフレーム処理の
範囲のエンドポイント(pE)が1音色の波形ROM範
囲のエンドポイント(rE)を1回だけ超えた場合、上
述した「楽音波形サンプル生成処理」において所定のフ
ラグが「1」にセットされる。また、フレーム処理の中
のループポイントからエンドポイント間の処理回数(L
T)に「0」がセットされる。すなわち、この図10
(c)に示す波形メモリからの原波形データの読み出し
方は、前記所定のフラグが「1」であり、かつ、フレー
ム処理の中のループポイントからエンドポイント間の処
理回数(LT)が「0」である場合に行われる。この場
合には、フレーム処理の範囲のエンドポイント(pE)
が再設定されている(上述した図8のステップS17及
びステップS18参照)。
【0046】この場合には、図10(c)から理解でき
るように、まず1回のフレーム処理の範囲のスタートポ
イント(pS)から1音色の波形ROM範囲のエンドポ
イント(rE)まで、1音色の波形ROMの範囲から原
波形データが1サンプルずつ読み出される。そして、原
波形データを複数サンプル分(rE―pS+1)読み出
したとカウントすると、1音色の波形ROM範囲のスタ
ートポイント(rS)まで戻って、更にそこから再設定
した1回のフレーム処理の範囲のエンドポイント(p
E)まで原波形データを1サンプルずつ読み出す。そし
て、読み出された各々の原波形データはデコードされ、
PCMサンプル波形としてループバッファに書き込まれ
る。このように、1回のフレーム処理の範囲のエンドポ
イント(pE)が1音色の波形ROM範囲のエンドポイ
ント(rE)を1回だけ超えた場合には、1音色の波形
ROMから1サンプルずつ原波形データを読み出す際に
読み出した原波形データの数をカウントし、該カウント
によって自動的に1音色の波形ROM範囲のスタートポ
イント(rS)まで戻って原波形データの読み出しを続
けることから、1サンプル毎に1音色の波形ROM範囲
のエンドポイント(rE)を超えたか否かの終端チェッ
ク処理を行わなくてよい。
【0047】図10(d)は、上記した図10(c)と
同様に、1回のフレーム処理の範囲のエンドポイント
(pE)が1音色の波形ROM範囲のエンドポイント
(rE)を超えた場合であるが、超えた回数が2回以上
である場合に行われる波形メモリからの原波形データの
読み出し方について説明するための概念図である。1回
のフレーム処理の範囲のエンドポイント(pE)が1音
色の波形ROM範囲のエンドポイント(rE)を2回以
上超えた場合には、上述した「楽音波形サンプル生成処
理」において所定のフラグが「1」にセットされ、フレ
ーム処理の中のループポイントからエンドポイント間の
処理回数(LT)に「超えた回数(例えば2回超えたな
らば2)」がセットされる。すなわち、この図10
(d)に示す波形メモリからの原波形データの読み出し
方は、前記所定のフラグが「1」であり、かつ、フレー
ム処理の中のループポイントからエンドポイント間の処
理回数(LT)が「1」以上である場合に行われる。こ
の場合にも、フレーム処理の範囲のエンドポイント(p
E)が再設定されている(上述した図8のステップS1
7及びステップS18参照)。
【0048】この場合には、図10(d)から理解でき
るように、まず1回のフレーム処理の範囲のスタートポ
イント(pS)から1音色の波形ROM範囲のエンドポ
イント(rE)まで、1音色の波形ROMの範囲から原
波形データが1サンプルずつ読み出される。そして、原
波形データを複数サンプル分(rE―pS+1)読み出
したとカウントすると、1音色の波形ROM範囲のスタ
ートポイント(rS)まで戻って、そこから1音色の波
形ROM範囲のエンドポイント(rE)まで原波形デー
タを1サンプルずつ読み出す(1回目のループ読み出
し)。1音色の波形ROM範囲全体分の原波形データを
読み出すと、また1音色の波形ROM範囲のスタートポ
イント(rS)まで戻って、更にそこから再設定した1
回のフレーム処理の範囲のエンドポイント(pE)まで
原波形データを1サンプルずつ読み出す。そして、読み
出された各々の原波形データはデコードされ、PCMサ
ンプル波形としてループバッファに書き込まれる。上記
1音色の波形ROM範囲全体分の原波形データの読み出
しは、フレーム処理の中のループポイントからエンドポ
イント間の処理回数(LT)に応じた回数だけ行われ
る。例えば、フレーム処理の中のループポイントからエ
ンドポイント間の処理回数(LT)が「1」である場合
には1音色の波形ROM範囲全体分の原波形データの読
み出しを1回だけ行うし、フレーム処理の中のループポ
イントからエンドポイント間の処理回数(LT)が
「2」である場合には1音色の波形ROM範囲全体分の
原波形データの読み出しを2回行う(つまり2回ループ
する)。このように、1回のフレーム処理の範囲のエン
ドポイント(pE)が1音色の波形ROM範囲のエンド
ポイント(rE)を複数回超えた場合には、1音色の波
形ROMから1サンプルずつ原波形データを読み出す際
に読み出した原波形データの数をカウントし、該カウン
トによって1音色の波形ROM範囲のスタートポイント
(rS)まで戻り、1音色の波形ROM範囲全体分の原
波形データの読み出しを自動的に複数回続ける。したが
って、この場合にも1サンプル毎に1音色の波形ROM
範囲のエンドポイント(rE)を超えたか否かの終端チ
ェック処理を行わなくてよい。
【0049】上述したように、図1に示す楽音生成装置
においては、生成したサンプル情報バッファに基づき波
形メモリから原波形データを読み出して補間処理を行う
ことで、各フレーム毎に複数の楽音波形サンプルデータ
を生成する。こうした楽音波形サンプルデータを生成す
る際において、CPU1は波形メモリから該当する原波
形データを読み出して内部メモリ1aに記憶し、該内部
メモリ1aに記憶した原波形データを用いて楽音波形サ
ンプルデータの生成を行う。しかし、CPU1による内
部メモリ1aからの原波形データ読み出しによる楽音波
形サンプルデータ生成処理の処理時間に比べて、波形メ
モリから内部メモリ1aへの原波形データの転送時間が
遅いと、CPU1では原波形データの転送が終わるまで
楽音波形サンプルデータ生成処理の実行を中断すること
から、その分だけ処理時間が長くなる。また、原波形デ
ータをサンプル情報バッファ内容に従って1つ1つ転送
していたので、こうしたことによっても転送時間がかか
り、その分だけ処理時間が長くなる。そこで、図1に示
す楽音生成装置では、DMAコントローラ9を用いて、
ダイレクトメモリアクセス方式によって、複数楽音波形
サンプルデータ生成分に必要な原波形データを波形メモ
リから一括して内部メモリ1aに書き込む。すなわち、
前もって複数楽音波形サンプルデータを生成する分の原
波形データを波形メモリから読み出しておいて、内部メ
モリ1aに記憶しておく。
【0050】そこで、こうしたDMAコントローラ9を
用いた波形メモリから内部メモリ1aへの原波形データ
の転送処理について、図11を用いて説明する。図11
は、DMAコントローラ9を用いた原波形データの転送
処理の一実施例を示すフローチャートである。
【0051】ステップS31では、転送回数カウンタが
0より大きいか否かを判定する。上記転送回数カウンタ
は、上述した図7及び図8のステップS7からステップ
S18までが実行されることにより設定される変数であ
る。例えば、1回のフレーム処理時におけるフレーム処
理の範囲が上述した図10の各図に示したような範囲で
ある場合の転送回数をそれぞれ示すと、図10(a)の
場合は「1」、図10(b)の場合は「1」、図10
(c)の場合は「2」、図10(d)の場合は「3」と
それぞれ設定されることになる。こうして設定される転
送回数カウンタが0以下である場合には(ステップS3
1のNO)、当該原波形データの転送処理を終了する。
他方、転送回数カウンタが0より大きい場合には(ステ
ップS31のYES)、転送回数カウンタから1を減算
する(ステップS32)。そして、転送始端と転送長と
を求め、DMA方式により該転送始端と転送長とで決ま
る範囲の原波形データを波形メモリから読み出して内部
メモリ1aに転送する(ステップS33)。転送始端は
転送開始位置であり、転送長は転送する範囲である。上
記ステップS33におけるデータ転送が終了すると(ス
テップS34)、ステップS31の処理に戻って上記ス
テップS31〜ステップS34までの処理を繰り返し実
行する。これにより、PCMサンプル波形の基となる全
ての原波形データ(つまり、1回のフレーム処理時にお
けるフレーム処理の範囲で用いる全ての原波形データの
全て)を予め波形メモリから内部メモリ1aへと転送し
ておくことができることから、ループバッファにPCM
サンプル波形を書き込む際に基となる原波形データを内
部メモリ1aから読み出すことができ、処理を速く実行
することができるようになる。
【0052】ここで、上記原波形データの転送処理を実
行することによる楽音波形サンプルデータ生成時間の短
縮について、図12を用いて簡単に説明する。図12
は、上記原波形データの転送処理の実行に伴う楽音波形
サンプルデータ生成時間の短縮について説明するための
概念図である。図12の上段に従来の原波形データ読み
出し処理を用いた場合における楽音波形サンプルデータ
生成時間を示し、図12の下段に上記原波形データの転
送処理を用いた場合における楽音波形サンプルデータ生
成時間を示した。
【0053】従来の原波形データの読み出し処理、つま
りサンプル情報バッファに基づく原波形データの読み出
しを波形メモリから1つずつ実行する処理では、楽音波
形サンプル生成処理と原波形データの読み出し処理とを
同時並行的に実行することができない。そのために、図
12上段に示した図から理解できるように、波形メモリ
から内部メモリ1aに原波形データを転送するメモリ転
送に相当する外部メモリアクセス時間と複数の楽音波形
サンプルデータを生成するのに係る純処理時間とが時間
的に交互に連続するようにしか処理を実行することがで
きない。他方、上述の図11に示したような原波形デー
タの転送処理、つまりDMAコントローラ9により複数
楽音波形サンプルデータ生成分に必要な原波形データを
波形メモリから一括して内部メモリ1aに書き込むよう
にすると、CPU1とDMAコントローラ9とがそれぞ
れ内部メモリ1aからの原波形データ読み出しによる楽
音波形サンプルデータの生成と、波形メモリから内部波
形メモリ1aへの原波形データの書き込み(転送)とを
それぞれ実行することができるようになる。
【0054】そのため、図12下段に示した図から理解
できるように、波形メモリから内部メモリ1aに原波形
データを転送するメモリ転送に相当する外部メモリアク
セス時間と複数の楽音波形サンプルデータを生成するの
に係る純処理時間とを同時刻に重ねることができる。例
えば、CPU1においてフレーム処理1の複数楽音波形
サンプルデータ生成を内部メモリ1aに記憶された原波
形データに基づき実行している最中に、DMAコントロ
ーラ19ではフレーム処理1に続くフレーム処理2の複
数楽音波形サンプルデータを生成するために必要とされ
る原波形データを波形メモリから内部波形メモリ1aへ
転送する。こうすると、CPU1によるDMAコントロ
ーラ9を用いた原波形データの転送のためのメモリ転送
の準備に係る時間を考慮したとしても、従来と比較して
楽音波形サンプルデータ生成のための時間が短くなる。
この図12に示す例においては、Δt分だけ実行時間の
短縮化が計れていることになる。
【0055】なお、上述した実施例において、波形メモ
リに記憶する原波形データとしてDPCM波形を用いた
例を示したがこれに限らない。例えば、原波形データと
してADPCM波形を用いてもよいし、PCMサンプル
波形そのものを用いるようにしてもよい。また、MP3
(MPEG layer3)波形やAAC(Advanced Audio Codin
g)波形やWMA(Windows(登録商標) Media Audio)
波形など、あらゆる符号化波形を用いるようにしてもよ
い。PCMサンプル波形そのものを用いる場合には、補
間処理の際に必要な前後の原波形データ以外の他の原波
形データを読み出す必要がないことは言うまでもない。
【0056】
【発明の効果】本発明によれば、CPU外部の記憶装置
から原波形データを内部メモリに取り込む際に、1回1
回対象とする原波形データのみを取り込むのではなく、
所定範囲毎にまとめて複数の原波形データを取り込むよ
うにしたことから、CPUのオーバヘッドをより小さく
することができ、楽音生成処理を効率よく実行すること
ができるようになる、という効果が得られる。
【図面の簡単な説明】
【図1】 この発明に係る楽音生成装置の全体構成の一
実施例を示すハード構成ブロック図である。
【図2】 RAM上の音色データエリアの一実施例を示
す概念図である。
【図3】 オリジナル波形データのデータ構成を説明す
るための概念図である。
【図4】 RAM上の入力バッファエリアの一実施例を
示す概念図である。
【図5】 RAM上のチャンネルレジスタの一実施例を
示す概念図である。
【図6】 RAM上の出力バッファエリアの一実施例を
示す概念図である。
【図7】 楽音波形サンプル生成処理における前半部分
の処理の一実施例を示すフローチャートである。
【図8】 楽音波形サンプル生成処理における後半部分
の処理の一実施例を示すフローチャートである。
【図9】 RAM上のサンプル情報バッファエリアの一
実施例を示す概念図である。
【図10】 条件分岐を含まない複数回のDPCM波形
の読み出しについて場合を分けて説明するための概念図
である。
【図11】 DMAコントローラを用いた原波形データ
の転送処理の一実施例を示すフローチャートである。
【図12】 上記原波形データの転送処理の実行に伴う
楽音波形サンプルデータ生成時間の短縮について説明す
るための概念図である。
【図13】 従来の楽音生成装置の楽音生成処理概要を
説明するための概念図である。
【符号の説明】
1…CPU、1a…内部RAM(内部メモリ)、2…タ
イマ、3…ROM、4…RAM、5…MIDIインタフ
ェース、6…操作子、7…ディスプレイ、8…外部記憶
装置、9…DMAコントローラ、9A…デジタル・アナ
ログ変換器(DAC)、9B…サウンドシステム、1D
…通信バス

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 波形の複数サンプル値を記憶する外部記
    憶手段と、 前記外部記憶手段から所定の内部記憶手段に対して複数
    サンプル値をまとめて転送する転送手段と、 前記内部記憶手段から連続して読み出すべき複数サンプ
    ル値に対応する読み出しアドレスを予め算出し記憶する
    波形メモリ読出手段と、 前記波形メモリ読出手段により記憶された複数の読み出
    しアドレスに対応する波形サンプルを連続的に生成し、
    該生成した波形サンプルを予め決められたサンプリング
    周期に従う再生レートに応じてアナログ信号に変換する
    波形生成手段とを具備する楽音生成方法。
  2. 【請求項2】 前記転送手段による複数サンプル値の転
    送と、前記波形生成手段によるアナログ信号への変換と
    は並行して行われることを特徴とする請求項1に記載の
    楽音生成装置。
  3. 【請求項3】 前記読み出しアドレスが前記内部記憶手
    段に記憶された複数サンプル値のそれぞれに付されたア
    ドレスのうちの終端アドレスを超えた場合に、前記内部
    記憶手段に記憶された複数サンプル値のそれぞれに付さ
    れたアドレスのうちの先端アドレスに戻って、複数サン
    プル値に対応する読み出しアドレスを算出することを特
    徴とする請求項1に記載の楽音生成装置。
  4. 【請求項4】 コンピュータに、 波形の複数サンプル値を記憶する外部記憶手段から所定
    の内部記憶手段に対して、複数サンプル値をまとめて転
    送する手順と、 前記内部記憶手段から連続して読み出すべき複数サンプ
    ル値に対応する読み出しアドレスを予め算出し記憶する
    手順と、 前記記憶された複数の読み出しアドレスに対応する波形
    サンプルを連続的に生成し、該生成した波形サンプルを
    予め決められたサンプリング周期に従う再生レートに応
    じてアナログ信号に変換する手順とを実行させるための
    プログラム。
JP2002133981A 2002-05-09 2002-05-09 楽音生成装置及びプログラム Expired - Fee Related JP3832383B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002133981A JP3832383B2 (ja) 2002-05-09 2002-05-09 楽音生成装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002133981A JP3832383B2 (ja) 2002-05-09 2002-05-09 楽音生成装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2003330469A true JP2003330469A (ja) 2003-11-19
JP3832383B2 JP3832383B2 (ja) 2006-10-11

Family

ID=29696776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002133981A Expired - Fee Related JP3832383B2 (ja) 2002-05-09 2002-05-09 楽音生成装置及びプログラム

Country Status (1)

Country Link
JP (1) JP3832383B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152512A (ja) * 2008-12-24 2010-07-08 Renesas Electronics Corp オーディオ再生装置、およびオーディオ再生方法
JP2013186368A (ja) * 2012-03-09 2013-09-19 Casio Comput Co Ltd 楽音発生装置、プログラム及び楽音発生方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010152512A (ja) * 2008-12-24 2010-07-08 Renesas Electronics Corp オーディオ再生装置、およびオーディオ再生方法
JP2013186368A (ja) * 2012-03-09 2013-09-19 Casio Comput Co Ltd 楽音発生装置、プログラム及び楽音発生方法
US8962965B2 (en) 2012-03-09 2015-02-24 Casio Computer Co., Ltd. Musical sound generation device, storage medium, and musical sound generation method
US9202452B2 (en) 2012-03-09 2015-12-01 Casio Computer Co., Ltd. Musical sound generation device, storage medium, and musical sound generation method

Also Published As

Publication number Publication date
JP3832383B2 (ja) 2006-10-11

Similar Documents

Publication Publication Date Title
JP5614420B2 (ja) 楽音発生装置、電子楽器、プログラム及び楽音発生方法
JP6019803B2 (ja) 自動演奏装置及びプログラム
US6969796B2 (en) Automatic music performing apparatus and automatic music performance processing program
JP5915420B2 (ja) 楽音発生装置、楽音発生方法、電子楽器及びプログラム
JP2003330469A (ja) 楽音生成装置及びプログラム
JPH07121181A (ja) 音声情報処理装置
JP2001255876A (ja) 時間軸方向における楽音波形信号の伸縮方法
JP2003330468A (ja) 楽音生成装置及びプログラム
JP3658826B2 (ja) 楽音生成方法
US6314403B1 (en) Apparatus and method for generating a special effect on a digital signal
JP2797142B2 (ja) 電子楽器用処理装置
JP6350692B2 (ja) 音響信号発生装置
JP6528752B2 (ja) 楽音再生装置、楽音再生方法、プログラムおよび電子楽器
JP3152156B2 (ja) 楽音発生システム、楽音発生装置および楽音発生方法
JP3137043B2 (ja) 波形メモリ音源装置および楽音発生装置
JP3740717B2 (ja) 音源装置及び楽音生成方法
JP3723973B2 (ja) 音源装置
JP3610759B2 (ja) ディジタル信号処理装置
JPH096364A (ja) 楽音発生方法
JP3693045B2 (ja) 楽音発生装置
JP2001092450A (ja) オーディオ・ファイルの生成処理方法
JP3148803B2 (ja) 音源装置
JP3651675B2 (ja) 電子楽器
JP2956552B2 (ja) 楽音発生方法および装置
JPH09269774A (ja) 楽音発生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060710

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees