JP2000155585A - 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体 - Google Patents

楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体

Info

Publication number
JP2000155585A
JP2000155585A JP10346632A JP34663298A JP2000155585A JP 2000155585 A JP2000155585 A JP 2000155585A JP 10346632 A JP10346632 A JP 10346632A JP 34663298 A JP34663298 A JP 34663298A JP 2000155585 A JP2000155585 A JP 2000155585A
Authority
JP
Japan
Prior art keywords
data
area
waveform data
areas
generating
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
JP10346632A
Other languages
English (en)
Other versions
JP3873160B2 (ja
Inventor
Naoyuki Komata
直幸 小股
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP34663298A priority Critical patent/JP3873160B2/ja
Publication of JP2000155585A publication Critical patent/JP2000155585A/ja
Application granted granted Critical
Publication of JP3873160B2 publication Critical patent/JP3873160B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】 楽音データの入力から発音までの遅延時間を
小さくして違和感を解消するとともに、音切れの発生を
防止する。 【解決手段】 CPU1は、ハードディスク12に格納
された楽音発生処理のプログラムに基づいて、生成した
波形データを記憶するメモリ7の所定のデータサイズの
エリアを、任意のデータサイズの複数のエリアに分割
し、MIDIインターフェース8を介して他の電子機器
13から入力される楽音データに応じて生成した波形デ
ータを、書き込みが指定されたエリアに書き込み、読み
出しが指定されたエリアから波形データを読み出して、
サウンドカード5を介して外部に出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、楽音発生装置及び
楽音発生処理のプログラムを記録した記録媒体に関す
る。
【0002】
【従来の技術】汎用のコンピュータ上でソフトウェアに
より構成された音源、いわゆるソフト音源は、外部の演
奏装置からMIDIデータ等で入力された楽音データに
基づいて、デジタル信号の波形データを生成して一定の
記憶容量をもつメモリに書き込み、これを読み出してD
/Aコンバータを介して外部のサウンドシステムに出力
して発音させている。この場合において、波形データは
メモリの一定の記憶容量のデータサイズ分だけ生成され
た後にD/A処理される。
【0003】
【発明が解決しようとする課題】ところが、波形データ
はメモリの一定の記憶容量のデータサイズ分だけ生成さ
れた後にD/A処理されるので、処理速度の遅いコンピ
ュータを用いた場合には、楽音データが入力された時か
ら波形データを生成してメモリに記憶し、実際に発音さ
せるまでに遅延時間が発生する。この遅延時間は、一度
に生成する波形データのデータサイズが大きいほど大き
くなり、同時に発音するチャンネルが多いほど大きくな
る。したがって、この遅延時間があまりに大きいと、楽
音データの入力から発音までに時間差がありすぎて違和
感を与えるという問題があった。一方、メモリの記憶容
量が小さすぎる場合には、一度に生成する波形データの
データサイズは小さくなるが、読み出す波形データのデ
ータサイズも小さくなるので、D/Aコンバータの所定
のサンプリング周期に対して読み出す波形データが足り
なくなって音切れが発生するという問題があった。本発
明の課題は、楽音データの入力から発音までの遅延時間
を小さくして違和感を解消するとともに、音切れの発生
を防止することである。
【0004】
【課題を解決するための手段】本発明による楽音発生装
置は、所定の記憶手段の所定のデータサイズのエリアを
任意のデータサイズの複数のエリアに分割するエリア分
割手段と、前記記憶手段の各エリアを指定するエリア指
定手段と、入力された楽音データに応じて波形データを
生成するデータ生成手段と、このデータ生成手段によっ
て生成された波形データを前記記憶手段における前記エ
リア指定手段によって書き込みが指定されたエリアに書
き込むデータ書込手段と、前記記憶手段において前記エ
リア指定手段によって読み出しが指定されたエリアから
記憶された波形データを読み出して出力するデータ読出
手段と、を備えた構成になっている。
【0005】本発明による記録媒体は、所定の記憶手段
の所定のデータサイズのエリアを任意のデータサイズの
複数のエリアに分割するエリア分割手順と、前記記憶手
段の各エリアを指定するエリア指定手順と、入力された
楽音データに応じて波形データを生成するデータ生成手
順と、このデータ生成手順によって生成された波形デー
タを前記記憶手段における前記エリア指定手順によって
書き込みが指定されたエリアに書き込むデータ書込手順
と、前記記憶手段において前記エリア指定手順によって
読み出しが指定されたエリアから記憶された波形データ
を読み出して出力するデータ読出手順と、を実行する楽
音発生処理のプログラムを記録している。
【0006】本発明によれば、入力される楽音データに
応じて生成した波形データを記憶する記憶手段の所定の
データサイズのエリアを、任意のデータサイズの複数の
エリアに分割し、生成した波形データを書き込みが指定
されたエリアに書き込み、読み出しが指定されたエリア
から波形データを読み出して出力する。
【0007】
【発明の実施の形態】
【0008】以下、本発明の実施形態における楽音発生
装置(コンピュータシステム)について、図を参照して
説明する。このコンピュータシステムには、種々のカー
ドすなわち回路基板を装着するスロットが設けられてお
り、後述するように、楽音発生のために必要な複数のカ
ードが接続されている。
【0009】図1は、実施形態における楽音発生装置の
システム構成を示すブロック図である。CPU1は、バ
ス2に接続されたビデオカード3、I/Oカード4、サ
ウンドカード5、ディスクコントローラ6、メモリ7、
MIDIインターフェース8との間において、コマンド
及びデータを授受して、この装置全体を制御する。
【0010】ビデオカード3は、ディスプレイ装置9に
接続され、CPU1の表示コマンドに応じて、楽音発生
の操作に必要なメニュー画面を表示する。このメニュー
画面には、動作モードを指定するためのアイコンが表示
される。I/Oカード4は、演奏操作に応じて音高その
他の楽音データを入力するキーボード10、及び、操作
に応じてアイコンを指定するマウス11に接続され、こ
れらの操作に応じたコマンド及びデータをCPU1に入
力する。サウンドカード5は、D/Aコンバータで構成
され、CPU1によってメモリ7から読み出されたデジ
タル信号の波形データを所定のサンプリング周期でアナ
ログ信号に変換(D/A処理)して、外部のサウンドシ
ステムに出力する。ディスクコントローラ6は、ハード
ディスク12を制御し、CPU1のプログラムロードコ
マンドに応じて、楽音発生処理のプログラムをメモリ7
のプログラムエリアにストアする。
【0011】MIDIインターフェース8は、楽音デー
タを生成する他の電子機器13に接続され、送信される
MIDIデータをCPU1に入力する。したがって、指
定するモードにより、キーボード10から入力される楽
音データに応じて波形データを生成することも、他の電
子機器13からのMIDIデータの楽音データに応じて
波形データを生成することも可能である。なお、図1に
は示さないが、現在時間を計測するための時間計測部が
バス2に接続されている。
【0012】メモリ7は、RAM等で構成され、プログ
ラムエリアの他に所定のデータサイズからなるデータエ
リアが設けられており、書き込みモードにおいて、CP
U1によって作成される波形データが書き込まれるとと
もに、読み出しモードにおいて、波形データが読み出さ
れてサウンドカード5に送出される。この場合におい
て、CPU1は、メモリ7のデータエリアを、任意のデ
ータサイズの複数のエリアに分割するエリア分割手段を
構成するとともに、その分割した各エリアを指定するエ
リア指定手段を構成する。例えば、図2及び図3に示す
ように、メモリ7のデータエリアを4つのエリアa、
b、c、dに分割して、指定したエリアに波形データを
書き込み、指定したエリアから波形データを読み出す。
【0013】図2は、書き込みモードにおける波形デー
タの書き込み処理時の推移を示している。(1)は、す
べてのエリアに波形データが書き込まれていない状態で
あり、指定するエリアすべてに波形データを書き込むこ
とができる。(2)は、エリアaに波形データが書き込
まれた状態である。(3)は、エリアa及びbに波形デ
ータが書き込まれた状態である。(4)は、エリアa、
b及びcに波形データが書き込まれた状態である。
(5)は、エリアaの波形データのA/D処理が終了
し、エリアb及びcに波形データが残っている状態であ
る。(6)は、エリアdに波形データが書き込まれた状
態である。(7)は、エリアbの波形データのA/D処
理が終了し、エリアc及びdに波形データが残っている
状態である。(8)は、エリアaに波形データが書き込
まれた状態である。
【0014】図3は、読み出しモードにおけるD/A処
理時の推移を示している。(1)は、初期状態である。
(2)は、エリアaの波形データがサウンドカードに転
送され、D/A処理を行っている状態である。(3)
は、エリアbの波形データのD/A処理待ちの状態であ
る。(4)は、エリアcの波形データのD/A処理待ち
の状態である。(5)は、エリアaの波形データのD/
A処理が終了し、エリアbの波形データのD/A処理を
行っている状態である。(6)は、エリアdの波形デー
タのD/A処理待ちの状態である。(7)は、エリアb
の波形データのD/A処理が終了し、エリアcの波形デ
ータのD/A処理を行っている状態である。(8)は、
エリアaの波形データのD/A処理待ちで、かつ、エリ
アcの波形データのD/A処理を行っている状態であ
る。
【0015】次に、図1に示した楽音発生装置の動作に
ついて、図4〜図12に示すCPU1による楽音発生処
理のフローチャートに基づいて説明する。なお、この処
理のために必要なレジスタ、フラグ、ポインタがメモリ
7に用意されている。
【0016】図4は、メインフローである。まず、イニ
シャライズを行って、メモリのデータエリア、レジス
タ、フラグ等をクリアし(ステップA1)、以下のルー
プ処理を繰り返す。モードが設定モードであるか生成モ
ードであるかを判別し(ステップA2)、設定モードで
ある場合には設定処理を実行し(ステップA3)、生成
モードである場合には生成処理を実行する(ステップA
4)。
【0017】図5〜図8は、メインフローにおける設定
処理のフローである。図5において、発音チャンネル数
であるポリ数が入力されたか否かを判別し(ステップB
1)、入力されたときは、レジスタPOLYに入力ポリ
数をストアする(ステップB2)。次に、MIDIイン
ターフェースからの楽音データの入力から、サウンドカ
ードへの波形データの出力までの遅延時間を設定するパ
ラメータの値「1」をレジスタPARAMにストアする
(ステップB3)。次に、POLYの値をインクリメン
トする(ステップB4)。
【0018】この実施形態においては、後述するよう
に、メモリの最適な分割を行うために、暫定的な分割を
行った後、所定音高による基準の波形データを生成して
分割したエリアに書き込み、その基準の波形データをサ
ウンドカードに出力して、システムの処理能力を計測す
る基準処理を行う。すなわち、データ生成処理速度を測
定して、そのデータ生成処理速度に応じたデータサイズ
の複数のエリアに分割する。その測定の安全率を高める
ために、上記ステップB4において、入力されたポリ数
より1つ多くして実際よりも厳しい条件で測定する。
【0019】次に、PARAMの値に応じて、分割した
各エリアのデータサイズ、分割エリア数、基準処理の基
準時間、基準処理の基準データサイズを設定するため
に、プログラム内の対応するテーブルTB[ ][PA
RAM]を参照して設定を行う。すなわち、PARAM
の値に応じてデータサイズ用のテーブルを参照して、各
エリアのデータサイズを設定し、レジスタSIZEにス
トアする(ステップB5)。PARAMの値に応じて分
割エリア数用のテーブルを参照して、分割エリア数を設
定し、レジスタNUMにストアする(ステップB6)。
PARAMの値に応じて基準時間用のテーブルを参照し
て、基準時間を設定し、レジスタBTIMEにストアす
る(ステップB7)。PARAMの値に応じて基準デー
タサイズ用のテーブルを参照して、基準データサイズを
設定し、レジスタBSIZEにストアする(ステップB
8)。そして、現在時間をレジスタSTARTにストア
する(ステップB9)。
【0020】ステップB1において、ポリ数が入力され
ない場合には、生成モードへのモード変更がなされたか
否かを判別し(ステップB10)、モード変更がされな
い場合は、ステップB1に移行してポリ数入力を判別す
る。モード変更がされたときは、生成モードへのモード
変更を行って(ステップB11)、このフローを終了し
てメインフローに戻る。
【0021】ステップB9において現在時間をストアし
た後は、図6のフローにおいて、チャンネル番号を示す
ポインタNを「0」にセットして(ステップB12)、
Nをインクリメントしながら、以下のループ処理を繰り
返す。すなわち、発音レジスタNOTE(N)に所定音
高をストアし(ステップB13)、Nをインクリメント
する(ステップB14)。次に、Nの値がPOLYにス
トアしたポリ数に達したか否かを判別する(ステップB
15)。ポリ数に達していない場合にはステップ13に
移行してループ処理を続行する。
【0022】ステップB15において、Nがポリ数に達
したときは、BSIZEのデータサイズをインクリメン
トするためのポインタAを「0」にセットし(ステップ
B16)、波形データを書き込むエリアを指定するポイ
ンタBを「0」にセットし(ステップB17)、波形デ
ータの書き込みごとにインクリメントするポインタCを
「0」にセットする(ステップB18)。
【0023】次に、NOTE(N)でNチャンネルの発
音処理を行い(ステップB19)、波形データのレジス
タWAVEに生成データをストアして累算(合成)する
(ステップB20)。次に、Nをインクリメントして
(ステップB21)、図7のフローにおいて、Nの値が
POLYの値に達したか否かを判別する(ステップB2
2)。POLYの値に達しない場合、すなわちPOLY
の値に対応するチャンネル数の発音処理が終了していな
い場合には、図6のステップB19に移行して、発音処
理を行う。そして、図7のステップB22においてNの
値がPOLYの値に達するまで、図6のステップB19
から図20のステップB22までのループ処理を繰り返
す。
【0024】図20のステップB22において、Nの数
がPOLYの数に達したときは、ポインタCをインクリ
メントし(ステップB23)、指定したエリアであるB
UFFER(B)にWAVEの波形データをストアする
(ステップB24)。次に、ポインタAをインクリメン
トして(ステップB25)、Aの値がBSIZEの値に
達したか否かを判別する(ステップB26)。この値に
達していない場合、すなわち基準処理の波形データがま
だ残っている場合には、WAVEを「0」にクリアして
(ステップB27)、Nを「0」にセットする(ステッ
プB28)。
【0025】次に、ポインタCの値がSIZEの値に達
したか否かを判別し(ステップB29)、この値にまだ
達していない場合、すなわちメモリの現在指定している
エリアにまだ波形データをストアするエリア(余裕)が
ある場合には、図6のステップB19に移行してNOT
E(N=0)でN(=0)チャンネルの発音処理を行
う。そして、図7のステップB29までのループ処理を
繰り返す。
【0026】ステップB29においてCの値がSIZE
の値に達した場合、すなわちポインタBで指定した番号
のエリアが一杯になった場合には、まだ残っている基準
処理の波形データをストアするために、Bをインクリメ
ントして次のエリアを指定する(ステップB30)。そ
して、Bの値がNUMの値すなわち分割エリア数に達し
たか否かを判別する(ステップB31)。この値に達し
ていない場合には、図6のステップB18に移行して、
Cを「0」にセットする。そして、図7のステップB2
9までのループ処理をCの値がSIZEの値に達するま
で繰り返し、Cの値がSIZEの値に達したときは、ス
テップB30においてBをインクリメントして、次のエ
リアを指定する。
【0027】図7のステップB26において、Aの値が
BSIZEの値に達した場合、すなわち基準処理に必要
な波形データの発音がすべて終了したときは、図8のフ
ローにおいて、レジスタENDに現在時間をストアする
(ステップB32)。そして、ENDの値からSTAR
Tの値を減算して、その値が基準時間BTIMEより大
きいか否かを判別する(ステップB33)。すなわち、
基準処理に必要な波形データの生成から発音に到るまで
の所要時間すなわちシステムの処理時間が基準時間より
大きいか否かを判別する。
【0028】この所要時間が基準時間より大きい場合に
は、実際の入力楽音データによる発音に音切れが発生す
ることになる。そこで、PARAMにストアした設定パ
ラメータが最大値MAXPARAMであるか否かを判別
する(ステップB34)。PARAMの値が最大値にな
っていない場合には、PARAMの値をインクリメント
して(ステップB35)、分割したエリアのデータサイ
ズを増加するような分割に変更する。そして、図5のス
テップB5に移行して、変更した分割に基づいて新たな
設定を行う。
【0029】図8のステップB34において、PARA
Mの値が最大値になっている場合には、PARAMの値
をインクリメントできないので、POLYの値が「1」
でないか否かを判別する(ステップB36)。この値が
「2」以上である場合には、POLYの値をデクリメン
トする(ステップB37)。すなわち、発音チャンネル
数を減らして、基準処理に必要な波形データのデータサ
イズを少なくする。そして、図5のステップB5に移行
して、少なくなった基準処理のデータサイズに基づいて
新たな設定を行う。
【0030】図8のステップB33において、所要時間
すなわちシステムの処理時間が基準時間以内になってい
る場合には、システムのデータ生成処理速度が充分であ
るので、実際の入力楽音データによる発音に音切れは発
生しない。したがって、POLYの値をデクリメントし
て(ステップB38)、初めに入力されたポリ数に戻
す。そして、設定モードから生成モードにモード変更を
行って(ステップB39)、このフローを終了してメイ
ンフローに戻る。
【0031】図8のステップB36において、POLY
の値が「1」である場合には、発音チャンネルが1つの
みで、かつ、分割するエリアのデータサイズが最大にな
っているので、システムのデータ生成処理速度が遅すぎ
て、実際の入力楽音データによる発音に音切れは回避す
ることができない。したがって、設定モードから生成モ
ードにモード変更を行って(ステップB39)、このフ
ローを終了してメインフローに戻る。
【0032】このように、入力される楽音データに応じ
て生成した波形データを記憶するメモリの所定のサイズ
のデータエリアを、任意のデータサイズの複数のエリア
に分割する際に、システムのデータ生成処理速度を測定
して、そのデータ生成処理速度に応じたデータサイズの
複数のエリアに分割する。
【0033】次に、メインフローのステップA4におけ
る生成処理について、図9〜図12のフローに基づいて
説明する。図9において、波形データを書き込むエリア
を指定するポインタBを「0」にセットし(ステップC
1)、波形データの書き込みごとにインクリメントする
ポインタCを「0」にセットする(ステップC2)。ま
た、発音チャンネルのポインタCHを「0(最初のチャ
ンネル)」にセットし、波形データをストアするレジス
タWAVEを「0」にクリアする(ステップC3)。次
に、分割したメモリの各エリア(0)〜(B)について
の書き込みフラグWF(0)〜(B)をすべて「1(書
き込み可能)」にセットする(ステップC4)。そし
て、すべてのチャンネルのオンフラグONF(0)〜
(POLEY)を「0(消音)」にリセットする(ステ
ップC5)。
【0034】この状態で、MIDI入力があった場合に
は、MIDIの楽音データに応じて波形データを生成し
て発音処理をすることになる。そして、モード変更がさ
れない限り、次のステップC6から図12のステップC
38のループ処理を繰り返し実行することになる。すな
わち、ポインタBで指定されるエリアのWF(B)が
「1」であるか否かを判別し(ステップC6)、このフ
ラグが「1」である場合には、ポインタCHで指定され
るONF(CH)が「1(発音)」であるか否かを判別
する(ステップC7)。このフラグが「1」である場合
には、NOTE(CH)による楽音生成処理を行って生
成データを得る(ステップC8)。一方このフラグが
「0」である場合には、生成データは「0」とする(ス
テップC9)。
【0035】次に、レジスタWAVEに生成データを累
算する(ステップC10)。この後、CHをインクリメ
ントして(ステップC11)、次のチャンネルを指定す
る。そして、CHの値がPOLYの値に達したか否かを
判別する(ステップC12)。この値に達しない場合に
は、ステップC7に移行して、ステップC12までのル
ープ処理を繰り返す。
【0036】ステップC12において、CHの値がPO
LYの値に達して、すべてのチャンネルについての波形
データの生成が終了して、レジスタWAVEにすべての
チャンネルの波形データが累算(合成)された場合に
は、図10のフローにおいて、WAVEの合成波形デー
タをポインタBで指定したエリアBUFFER(B)に
ストアする(ステップC13)。次に、WAVEを
「0」にクリアして(ステップC14)、CHを「0」
に戻して(ステップC15)、Cの値をインクリメント
する(ステップC16)。
【0037】そして、Cの値がエリアBUFFER
(B)のデータサイズSIZEに達したか否かを判別し
(ステップC17)、SIZEに達した場合には、エリ
アBUFFER(B)への書き込みがそれ以上できない
ので、WF(B)を「0(書き込み不可)」にリセット
する(ステップC18)。これは、図2のハッチングで
示す状態である。次に、Cを「0」にセットして(ステ
ップC19)、BUFFER(B)の内容すなわち波形
データをサウンドカードへ転送する(ステップC2
0)。これは、図3のハッチングで示す状態である。
【0038】次に、Bの値をインクリメントして(ステ
ップC21)、次のエリアを指定する。そして、Bの値
が最後のエリアであるNUMの値に達したか否かを判別
する(ステップC22)。NUMの値に達したときは、
Bの値を「0」にセットして(ステップC23)、最初
のエリアを指定する。この後、若しくはステップC22
において指定したエリアが最後のエリアでない場合、又
は、ステップC17において、Cの値がエリアBUFF
ER(B)のデータサイズSIZEに達せずに、まだこ
のエリアに波形データのストアが可能である場合には、
図11のフローにおいて、MIDI入力があるか否かを
判別する(ステップC24)。
【0039】MIDI入力があったときは、その楽音デ
ータがオンイベントであるか否かを判別する(ステップ
C25)。オンイベントである場合には、CHを「0
(最初のチャンネル)」にセットして(ステップC2
6)、そのチャンネルのONF(CH)が「0(消
音)」すなわち空きチャンネルであるか否かを判別する
(ステップC27)。ONF(CH)が「0」である場
合には、ONF(CH)を「1(発音)」にセットして
(ステップC28)、NOTE(CH)に入力された楽
音データの音高をストアする(ステップC29)。
【0040】ステップC27において、ONF(CH)
がすでに「1」になっている場合には、CHの値をイン
クリメントして(ステップC30)、次のチャンネルを
指定する。そして、CHの値がPOLYの値すなわち最
大チャンネル数に達したか否かを判別する(ステップC
31)。POLYの値に達していない場合には、ステッ
プC27に移行して、ONF(CH)が「0」であるか
否かを判別する。ステップC31において、CHの値が
POLYの値に達した場合には、ステップC24に移行
して、MIDI入力を判別する。
【0041】ステップC29において音高をストアした
後、又は、ステップC24においてMIDI入力がない
場合には、波形データを読み出すエリアを指定するポイ
ンタDを「0」にセットし(ステップC32)、WF
(D)が「0(読み出し可能)」であるか否かを判別す
る(ステップC33)。このフラグが「0」である場合
には、BUFFER(D)の波形データをサウンドカー
ドに転送してD/A処理をさせている状態であるので、
サウンドカードのD/A処理が終了したか否かを判別す
る(ステップC34)。
【0042】D/A処理が終了したときは、WF(D)
を「1(書き込み可能)」にセットして(ステップC3
5)、Dの値をインクリメントする(ステップC3
6)。図3の例では、(5)に示すように、エリアaの
D/A処理が終了して、エリアbを指定した状態であ
る。ステップC34において、D/A処理が終了してい
ない場合には、ステップC36に移行してDの値をイン
クリメントする。したがって、生成した波形データを書
き込みが指定されたエリアに書き込み、読み出しが指定
されたエリアから波形データを読み出して出力する。
【0043】ステップC33において、WF(D)が
「1」である場合には、Dの値をインクリメントして
(ステップC36)、Dの値がNUMの値に達したか否
かを判別する(ステップC37)。この値に達していな
い場合にはステップC33に移行して、新たに指定した
エリアのWF(D)が「0」であるかを判別する。Dの
値がNUMの値に達した場合には、モード変更か否かを
判別し(ステップC38)、モード変更である場合に
は、設定モードにモード変更して(ステップC39)、
このフローを終了してメインフローに戻る。モード変更
でない場合には、図9のステップC6に移行して、WF
(B)が「1(書き込み可能)」か否かを判別する。
【0044】ステップC25において入力された楽音デ
ータがオンイベントでなくオフイベントである場合に
は、図12のフローにおいて、CHを「0」にセットし
て(ステップC40)、ONF(CH)が「1(発
音)」であるか否かを判別する(ステップC41)。こ
のフラグが「1」である場合には、NOTE(CH)の
音高がオフイベントの音高と同じであるか否かを判別す
る(ステップC42)。音高が同じである場合には、O
NF(CH)を「0(消音)」にリセットする(ステッ
プC43)。そして、図11のステップC32に移行し
て、読み出しエリアを指定するポインタDを「0」にセ
ットする。
【0045】図12のステップC41においてONF
(CH)が「0(消音)」である場合、又は、ステップ
C42においてNOTE(CH)の音高がオフイベント
の音高と異なる場合には、CHの値をインクリメントす
る(ステップC44)。そして、CHの値がPOLYの
値に達したときは、図11のステップC32に移行し
て、読み出しエリアを指定するポインタDを「0」にセ
ットする。
【0046】このように、上記実施形態における楽音発
生装置においては、CPU1は、所定の記憶手段(メモ
リ7)の所定のデータサイズのエリアを任意のデータサ
イズの複数のエリアに分割するエリア分割手段と、前記
記憶手段の各エリアを指定するエリア指定手段と、入力
された楽音データに応じて波形データを生成するデータ
生成手段と、このデータ生成手段によって生成された波
形データを前記記憶手段における前記エリア指定手段に
よって書き込みが指定されたエリアに書き込むデータ書
込手段と、前記記憶手段において前記エリア指定手段に
よって読み出しが指定されたエリアから記憶された波形
データを読み出して出力するデータ読出手段と、を備え
た構成になっている。
【0047】上記構成により、入力される楽音データに
応じて生成した波形データを記憶する記憶手段の所定の
データサイズのエリアを、任意のデータサイズの複数の
エリアに分割し、生成した波形データを書き込みが指定
されたエリアに書き込み、読み出しが指定されたエリア
から波形データを読み出して出力する。したがって、作
成する波形データのデータサイズを任意に設定できるの
で、楽音データの入力から発音までの遅延時間を小さく
して違和感を解消するとともに、音切れの発生を防止す
る。
【0048】この場合において、前記エリア分割手段
は、前記データ生成手段のデータ生成処理速度を測定す
る速度測定手段を有し、当該データ生成処理速度に応じ
たデータサイズの複数のエリアに分割する。したがっ
て、使用するコンピュータの処理能力に応じて、作成す
る波形データのデータサイズを任意に設定できるので、
コンピュータの種類にかかわらず、楽音データの入力か
ら発音までの遅延時間を小さくして違和感を解消すると
ともに、音切れの発生を防止する。
【0049】あるいはこの場合において、前記エリア分
割手段は、同時に発音する発音チャンネル数を測定する
チャンネル測定手段を有し、当該測定した発音チャンネ
ル数に応じたデータサイズの複数のエリアに分割する。
したがって、発音チャンネル数に応じて、作成する波形
データのデータサイズを任意に設定できるので、使用す
る発音チャンネル数にかかわらず、楽音データの入力か
ら発音までの遅延時間を小さくして違和感を解消すると
ともに、音切れの発生を防止する。
【0050】また、前記楽音データの入力から当該楽音
データに対応する波形データの発音までの遅延時間を任
意に設定する遅延設定手段をさらに有し、前記エリア分
割手段は、前記遅延設定手段によって設定された遅延時
間に応じて記憶手段の所定のデータサイズのエリアを任
意のデータサイズの複数のエリアに分割する。したがっ
て、作成する波形データのデータサイズを設定した遅延
時間に応じて任意に設定できるので、楽音データの入力
形態によって作成する波形データのデータサイズを任意
に設定できるので、実情に適応した楽音発生ができる。
例えば、手動演奏による入力である場合には遅延時間を
小さくして違和感を解消するとともに、音切れの発生を
防止し、自動演奏による入力である場合には、発音チャ
ンネル数を増加する等の対応が可能になる。
【0051】なお、上記実施形態においては、楽音発生
装置内のハードディスク12に格納された楽音発生処理
のプログラムを記録した構成にしたが、フロッピーディ
スク、CD、MD等の外部記録媒体に楽音発生処理のプ
ログラムを記録し、汎用のコンピュータでこの記録媒体
のプログラムを読み出して実行させることによって、上
記発明を実現することができる。すなわち、所定の記憶
手段の所定のデータサイズのエリアを任意のデータサイ
ズの複数のエリアに分割するエリア分割手順と、前記記
憶手段の各エリアを指定するエリア指定手順と、入力さ
れた楽音データに応じて波形データを生成するデータ生
成手順と、このデータ生成手順によって生成された波形
データを前記記憶手段における前記エリア指定手順によ
って書き込みが指定されたエリアに書き込むデータ書込
手順と、前記記憶手段において前記エリア指定手順によ
って読み出しが指定されたエリアから記憶された波形デ
ータを読み出して出力するデータ読出手順と、を実行す
る楽音発生処理のプログラムを記録した記録媒体を構成
する。
【0052】そして、汎用のコンピュータにこの記録媒
体のプログラムを実行させ、入力される楽音データに応
じて生成した波形データを記憶する記憶手段の所定のデ
ータサイズのエリアを、任意のデータサイズの複数のエ
リアに分割し、生成した波形データを書き込みが指定さ
れたエリアに書き込み、読み出しが指定されたエリアか
ら波形データを読み出して出力する。したがって、作成
する波形データのデータサイズを任意に設定できるの
で、楽音データの入力から発音までの遅延時間を小さく
して違和感を解消するとともに、音切れの発生を防止す
る。
【0053】この場合において、前記エリア分割手順
は、前記データ生成手順のデータ生成処理速度を測定す
る速度測定手順を含み、当該データ生成処理速度に応じ
たデータサイズの複数のエリアに分割する。したがっ
て、使用するコンピュータの処理能力に応じて、作成す
る波形データのデータサイズを任意に設定できるので、
コンピュータの種類にかかわらず、楽音データの入力か
ら発音までの遅延時間を小さくして違和感を解消すると
ともに、音切れの発生を防止する。
【0054】あるいはこの場合において、前記エリア分
割手順は、同時に発音する発音チャンネル数を測定する
チャンネル測定手順を含み、当該測定した発音チャンネ
ル数に応じたデータサイズの複数のエリアに分割する。
したがって、発音チャンネル数に応じて、作成する波形
データのデータサイズを任意に設定できるので、選択す
る発音チャンネル数にかかわらず、楽音データの入力か
ら発音までの遅延時間を小さくして違和感を解消すると
ともに、音切れの発生を防止する。
【0055】また、前記楽音データの入力から当該楽音
データに対応する波形データの発音までの遅延時間を任
意に設定する遅延設定手順をさらに有し、前記エリア分
割手順は、前記遅延設定手順によって設定された遅延時
間に応じて記憶手段の所定のデータサイズのエリアを任
意のデータサイズの複数のエリアに分割する。したがっ
て、作成する波形データのデータサイズを設定した遅延
時間に応じて任意に設定できるので、楽音データの入力
形態によって作成する波形データのデータサイズを任意
に設定できるので、実情に適応した楽音発生ができる。
例えば、手動演奏による入力である場合には遅延時間を
小さくして違和感を解消するとともに、音切れの発生を
防止し、自動演奏による入力である場合には、発音チャ
ンネル数を増加する等の対応が可能になる。
【0056】
【発明の効果】本発明によれば、入力される楽音データ
に応じて生成した波形データを記憶する記憶手段の所定
のデータサイズのエリアを、任意のデータサイズの複数
のエリアに分割し、生成した波形データを書き込みが指
定されたエリアに書き込み、読み出しが指定されたエリ
アから波形データを読み出して出力する。したがって、
楽音データの入力から発音までの遅延時間を小さくして
違和感を解消するとともに、音切れの発生を防止する。
【図面の簡単な説明】
【図1】実施形態における楽音発生装置のシステム構成
を示すブロック図。
【図2】図1のメモリにおける波形データの推移の状態
を示す図。
【図3】図1のメモリにおける波形データの推移の状態
を示す図。
【図4】図1のCPUのメインフローチャート。
【図5】図4のメインフローチャートにおける設定処理
のフローチャート。
【図6】図5に続く設定処理のフローチャート。
【図7】図6に続く設定処理のフローチャート。
【図8】図7に続く設定処理のフローチャート。
【図9】図4のメインフローチャートにおける生成処理
のフローチャート。
【図10】図9に続く生成処理のフローチャート。
【図11】図10に続く生成処理のフローチャート。
【図12】図11に続く生成処理のフローチャート。
【符号の説明】
1 CPU 5 サウンドカード 7 メモリ 8 MIDIインターフェース 12 ハードディスク 13 他の電子機器

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 所定の記憶手段の所定のデータサイズの
    エリアを任意のデータサイズの複数のエリアに分割する
    エリア分割手段と、 前記記憶手段の各エリアを指定するエリア指定手段と、 入力された楽音データに応じて波形データを生成するデ
    ータ生成手段と、 このデータ生成手段によって生成された波形データを前
    記記憶手段における前記エリア指定手段によって書き込
    みが指定されたエリアに書き込むデータ書込手段と、 前記記憶手段において前記エリア指定手段によって読み
    出しが指定されたエリアから記憶された波形データを読
    み出して出力するデータ読出手段と、 を備えたことを特徴とする楽音発生装置。
  2. 【請求項2】 前記エリア分割手段は、前記データ生成
    手段のデータ生成処理速度を測定する速度測定手段を有
    し、当該データ生成処理速度に応じたデータサイズの複
    数のエリアに分割することを特徴とする請求項1に記載
    の楽音発生装置。
  3. 【請求項3】 前記エリア分割手段は、同時に発音する
    発音チャンネル数を測定するチャンネル測定手段を有
    し、当該測定した発音チャンネル数に応じたデータサイ
    ズの複数のエリアに分割することを特徴とする請求項1
    に記載の楽音発生装置。
  4. 【請求項4】 請求項1〜請求項3のいずれかの発明に
    おいて、前記楽音データの入力から当該楽音データに対
    応する波形データの発音までの遅延時間を任意に設定す
    る遅延設定手段をさらに有し、前記エリア分割手段は、
    前記遅延設定手段によって設定された遅延時間に応じて
    記憶手段の所定のデータサイズのエリアを任意のデータ
    サイズの複数のエリアに分割することを特徴とする楽音
    発生装置。
  5. 【請求項5】 所定の記憶手段の所定のデータサイズの
    エリアを任意のデータサイズの複数のエリアに分割する
    エリア分割手順と、 前記記憶手段の各エリアを指定するエリア指定手順と、 入力された楽音データに応じて波形データを生成するデ
    ータ生成手順と、 このデータ生成手順によって生成された波形データを前
    記記憶手段における前記エリア指定手順によって書き込
    みが指定されたエリアに書き込むデータ書込手順と、 前記記憶手段において前記エリア指定手順によって読み
    出しが指定されたエリアから記憶された波形データを読
    み出して出力するデータ読出手順と、 を実行する楽音発生処理のプログラムを記録した記録媒
    体。
  6. 【請求項6】 前記エリア分割手順は、前記データ生成
    手順のデータ生成処理速度を測定する速度測定手順を含
    み、当該データ生成処理速度に応じたデータサイズの複
    数のエリアに分割することを特徴とする請求項5に記載
    の楽音発生処理のプログラムを記録した記録媒体。
  7. 【請求項7】 前記エリア分割手順は、同時に発音する
    発音チャンネル数を測定するチャンネル測定手順を含
    み、当該測定した発音チャンネル数に応じたデータサイ
    ズの複数のエリアに分割することを特徴とする請求項5
    に記載の楽音発生処理のプログラムを記録した記録媒
    体。
  8. 【請求項8】 請求項5〜請求項7のいずれかの発明に
    おいて、プログラム内に、前記楽音データの入力から当
    該楽音データに対応する波形データの発音までの遅延時
    間を任意に設定する遅延設定手順をさらに有し、前記エ
    リア分割手順は、前記遅延設定手順によって設定された
    遅延時間に応じて記憶手段の所定のデータサイズのエリ
    アを任意のデータサイズの複数のエリアに分割すること
    を特徴とする楽音発生処理のプログラムを記録した記録
    媒体。
JP34663298A 1998-11-20 1998-11-20 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体 Expired - Fee Related JP3873160B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34663298A JP3873160B2 (ja) 1998-11-20 1998-11-20 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34663298A JP3873160B2 (ja) 1998-11-20 1998-11-20 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体

Publications (2)

Publication Number Publication Date
JP2000155585A true JP2000155585A (ja) 2000-06-06
JP3873160B2 JP3873160B2 (ja) 2007-01-24

Family

ID=18384766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34663298A Expired - Fee Related JP3873160B2 (ja) 1998-11-20 1998-11-20 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体

Country Status (1)

Country Link
JP (1) JP3873160B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011524574A (ja) * 2008-06-11 2011-09-01 クゥアルコム・インコーポレイテッド タスクロードを測定するための方法およびシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011524574A (ja) * 2008-06-11 2011-09-01 クゥアルコム・インコーポレイテッド タスクロードを測定するための方法およびシステム
US8594816B2 (en) 2008-06-11 2013-11-26 Qualcomm Incorporated Method and system for measuring task load

Also Published As

Publication number Publication date
JP3873160B2 (ja) 2007-01-24

Similar Documents

Publication Publication Date Title
JP4655812B2 (ja) 楽音発生装置、及びプログラム
JP5534388B2 (ja) 楽音生成装置
US20060137515A1 (en) Memory access controller for musical sound generating system
JP2904088B2 (ja) 楽音生成方法および装置
KR100402364B1 (ko) 악음발생장치, 악음발생방법 및 기억매체
US6473847B1 (en) Memory management method for use in computer system
JP3163984B2 (ja) 楽音発生装置
JPH0922287A (ja) 楽音波形生成方法
JP2000155585A (ja) 楽音発生装置及び楽音発生処理のプログラムを記録した記録 媒体
JP2010522359A (ja) 電子楽器デジタルインターフェースハードウェア命令セット
JP2000276172A (ja) 楽音生成装置および記憶媒体
CA2295600A1 (en) Tone generation device and method
JP2001265352A (ja) 楽音信号処理装置
JP5510813B2 (ja) 楽音生成装置
JP3572847B2 (ja) コンピュータソフトウェアを用いた音源システム及び方法
JPH11288285A (ja) 楽音発生方法及び装置
JP2004177981A (ja) 楽音生成装置
JP5510815B2 (ja) 楽音生成装置
JP5229990B2 (ja) 1チップ電子楽音発生器
JP3000894B2 (ja) 楽音発生方法
JP3723973B2 (ja) 音源装置
JP3137043B2 (ja) 波形メモリ音源装置および楽音発生装置
JP3164096B2 (ja) 楽音発生方法及び装置
JP3603638B2 (ja) 楽音発生方法
JP5229993B2 (ja) 1チップ電子楽音発生器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050530

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060202

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060901

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061009

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees