JP3164096B2 - 楽音発生方法及び装置 - Google Patents
楽音発生方法及び装置Info
- Publication number
- JP3164096B2 JP3164096B2 JP02062899A JP2062899A JP3164096B2 JP 3164096 B2 JP3164096 B2 JP 3164096B2 JP 02062899 A JP02062899 A JP 02062899A JP 2062899 A JP2062899 A JP 2062899A JP 3164096 B2 JP3164096 B2 JP 3164096B2
- Authority
- JP
- Japan
- Prior art keywords
- selection information
- processing
- tone
- cpu
- musical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
理装置)やDSP(ディジタル信号処理装置)などのプ
ログラマブルな演算装置上で楽音生成プログラムを実行
することにより楽音波形を生成する楽音発生方法に関
し、さらに、同楽音生成プログラムを実行することによ
って楽音波形を生成する楽音発生装置に関する。
を生成する楽音生成プログラムでは、サンプリング周波
数や最大発音数および各楽音の処理内容は、どのような
楽音を生成する場合、また、他の処理がどのような状況
であっても、予め設定されている条件で処理されてい
た。
式では、(1)楽音生成演算が固定であるため、場合に
よっては必要以上の処理が行われていたり、必要な処理
が含まれていなかったりという不都合があった。すなわ
ち、楽音の種類によっては、楽音波形のピッチ変換が必
要な場合と不要な場合があり、LFO(低周波発振器)
による変調が必要な場合と不要な場合があり、ディジタ
ルフィルタによる音色加工が必要な場合と不要な場合が
あり、エフェクトが必要な場合と不要な場合がある。し
かし、従来の音源では、各回路が固定された処理を行っ
ているので、新たな処理の追加、不要な処理の削除は、
実現が難しく、実現のためには複雑な回路を付与する必
要があった。
合、CPUの演算量は、発音中のチャンネル数や楽音生
成演算の内容に応じてダイナミックに変動する。汎用コ
ンピュータで他のアプリケーションプログラム(以下、
「アプリケーション」という。)と並行してソフトウェ
ア音源プログラム(以下、「ソフト音源」という。)を
実行する場合、このソフト音源の処理量の変動(特に演
算量の増加)により、他のアプリケーションの動作が不
安定になることがあった。
のできる演算量は、上記のように並行しているアプリケ
ーションの数や種類のほか、それを実行する演算装置の
演算能力により制限を受ける。割り当てられる演算量が
厳しく制限される場合でも、従来のソフトウェア音源プ
ログラムでは、生成演算が固定的に決定されていたた
め、ユーザが、生成演算クォリティを落としても発音数
を増やしたい場合や、発音数は少なくてもよいので高い
クォリティで生成演算したい場合等の選択を行うことが
できなかった。
行して動作しているアプリケーションの内容などに基づ
いて楽音波形生成演算の内容を変更する楽音生成方法お
よび楽音生成装置を提供することを目的とする。
生方法は、プログラムに従って動作するCPUが、演奏
情報を受信するとともに選択情報を受信し、前記演奏情
報に基づく演算処理によって楽音を生成するとともに、
前記選択情報に応じて該生成する楽音に処理内容および
演算量の異なる特性制御処理を施し、前記選択情報の内
容および前記CPUによる前記演算処理の演算量を表示
可能にするとともに、任意に設定される前記選択情報を
前記CPUが受信することを特徴とするものである。ま
た、この発明に係る楽音発生方法は、プログラムに従っ
て動作するCPUが、演奏情報を受信するとともに選択
情報を受信し、前記演奏情報に基づく演算処理によって
楽音を生成するとともに、前記選択情報に応じて該生成
する楽音に処理内容および演算量の異なる特性制御処理
を施し、前記選択情報の内容および楽音数を表示可能に
するとともに、任意に設定される前記選択情報を前記C
PUが受信することを特徴とするものである。
ラムに従って動作するCPUであって、演奏情報を受信
可能にするとともに選択情報を受信可能とし、前記演奏
情報に基づいて、楽音生成演算処理を実行するととも
に、前記選択情報に応じて、該楽音生成演算処理で生成
する楽音に処理内容および演算量の異なる特性制御処理
を施すものと、前記選択情報の内容および前記CPUに
よる前記楽音生成演算処理の演算量を表示する表示手段
と、前記選択情報を任意に設定する設定手段とを備え、
前記設定手段で設定された前記選択情報を前記CPUが
受信することを特徴とする。また、この発明に係る楽音
発生装置は、プログラムに従って動作するCPUであっ
て、演奏情報を受信可能にするとともに選択情報を受信
可能とし、前記演奏情報に基づいて、楽音生成演算処理
を実行するとともに、前記選択情報に応じて、該楽音生
成演算処理で生成する楽音に処理内容および演算量の異
なる特性制御処理を施すものと、前記選択情報の内容お
よび楽音数を表示する表示手段と、前記選択情報を任意
に設定する設定手段とを備え、前記設定手段で設定され
た前記選択情報を前記CPUが受信することを特徴とす
る。
作するCPUにより、演奏情報の受信と選択情報の受信
が行なわれ、かつ、受信した演奏情報に基づく楽音生成
処理が行なわれ、さらに、該楽音に対する処理内容およ
び演算量の異なる特性制御処理が選択情報に応じて施さ
れる。また、選択情報の内容とCPUの動作状態が表示
可能であり、さらに、選択情報を演奏者が任意に設定す
ることができる。従って、生成しようとする楽音の目的
や演奏形態に適合させて、楽音制御の内容を変更した
り、特定の楽音制御をやめることで処理量を軽減し、そ
の分発音数を増加させたり、他の目的にCPUパワーを
まわしたりすることができる。これによって、例えば、
コンピュータを用いたソフト音源を実施する場合、コン
ピュータ装置のCPUパワーを有効に活用することがで
きる。
は、演算処理の演算量および楽音数の少なくとも一方で
ある。また、一例として、選択情報は、(1)LFO
(低周波発振器)のオン・オフ、(2)補間のオン・オ
フおよび/または補間の種類、(3)フィルタのオン・
オフおよび/またはフィルタの種類、(4)エフェクト
のオン・オフおよび/またはエフェクトの種類、(5)
サンプリング周波数、のうちの少なくとも1つについて
の選択情報である。
実施形態について説明する。図1はこの発明の一実施例
に係るソフト音源プログラムが実行されるマイクロコン
ピュータ装置の構成を示す図である。CPU10にはバ
スを介してROM11,RAM12,ハードディスク装
置13,CD−ROM装置14,MIDIインタフェー
ス15,キーボード16,ディスプレイ17,DMA1
8およびタイマ21が接続されている。ROM11はこ
のマイコン装置の動作に必須の基本プログラムなどが記
憶されている。RAM12は実行するプログラムやデー
タを読み込むとともにプログラム処理中に発生したデー
タを記憶するメモリである。ハードディスク装置13に
は、各種のアプリケーションなどが記憶されている。C
D−ROM装置14には、各種のデータやプログラムを
記憶したCD−ROMがセットされる。後述するソフト
音源もCD−ROMから供給されるものである。ハード
ディスク装置13やCD−ROMに記憶されているプロ
グラムは実行されるときRAM12に読み出される。M
IDIインタフェース15は、外部接続されるMIDI
キーボードなどの演奏装置との間で演奏データや制御信
号の送受信を行う。キーボード16,ディスプレイ17
としては、通常のパーソナルコンピュータに一般的なキ
ーボードやモニタが接続される。DMA(Direct
Memory Access Controlle
r)18はCPU10を介さずにRAM12から波形デ
ータを読み出してDAC19に出力する回路である。D
AC19は、この波形データをアナログの楽音信号に変
換してサウンドシステム20に出力する。サウンドシス
テム20はこの楽音信号を増幅して外部出力する。な
お、タイマ21は一定時間毎にCPU10に対して割り
込みをかけるとともに、DMA18にサンプリングクロ
ックを供給するタイマである。
されるソフト音源の時間的な処理の流れを説明する図で
ある。このソフト音源は48kHzのサンプリング周波
数で楽音波形データを生成するが、その楽音波形データ
生成処理を128サンプル(1フレーム)毎に行う。あ
るフレームのタイムスロットに演奏入力があると、次の
フレームでその演奏入力に対応する楽音波形データの算
出処理を行い、さらに次のフレームでこの楽音波形デー
タを48kHzの周期毎に1サンプルずつ読み出して楽
音信号を形成する。したがって、演奏入力があってから
実際に楽音が発音されるまで(または楽音が消音される
まで)は約2フレームの時間ずれが生じることになる
が、1フレームが128サンプル(約2.67ミリ秒)
であるため、その時間ずれはわずかである。なお、本実
施態様では、RAM12上に用意された波形テーブルに
記憶された波形サンプルに基づいて楽音を生成するいわ
ゆるテーブルルックアップ方式の楽音生成を行うソフト
音源を説明する。
2に設定される記憶エリアを説明する図である。同図
(A)は入力バッファを示す図である。この入力バッフ
ァには、MIDIインタフェース15から演奏入力があ
ったとき、その演奏入力の内容とその発生時刻を記憶す
るバッファである。このバッファの内容は、後述するM
IDI処理で読み出され、対応する処理が実行される。
図、同図(C)は出力バッファOBを示す図である。両
バッファとも128サンプル分の波形データ記憶エリア
(SD1〜SD128、OD1〜OD128)を備えて
いる。出力バッファOBは32チャンネルの発音チャン
ネルの楽音波形データを順次加算合成した波形データを
記憶する。波形データの演算は、1つのチャンネル毎に
1フレーム時間分の128サンプルを演算し、これを3
2チャンネル分(発音しているチャンネル分)繰り返す
という手順で行われるが、1つのチャンネルの波形デー
タを記憶するのがサンプルバッファWBであり、1つの
チャンネルの波形データが演算されるごとにこの波形デ
ータをサンプルタイミング毎に累算してゆくのが出力バ
ッファOBである。また、後述する他の実施態様では、
選択可能な3つの等価サンプリング周波数(12kH
z,24kHz,48kHz)に対応して3つの出力バ
ッファOB0,OB1,OB2が存在する。
この音色データレジスタには、各MIDIチャンネル
(演奏パート)で生成される楽音波形を決定するデータ
が記憶されている。音色データとしては、各音色の各音
域毎に素材とする波形テーブルを指定する各音域波形指
定データ,EG制御データ,タッチ制御データなどがあ
る。
源レジスタには、各発音チャンネル別に該発音チャンネ
ルで生成される楽音波形を決定するデータが記憶され
る。データとしてはノートナンバ,いずれか1つの波形
テーブルのアドレスを示す波形指定アドレス(アタック
スタートアドレスAS,アタックエンドアドレスAE,
ループスタートアドレスLS,ループエンドアドレスL
E)、フィルタ制御データ、EG制御データ、ノートオ
ンデータ、タイミングデータ、などが記憶される。
ィスプレイ17に表示される制御パネル画面を示す図で
ある。この画面はディスプレイ17の画面の一部にいわ
ゆるウィンドゥ表示される。制御パネル画面にはMID
Iモニタ31、LFOオン/オフ表示部33,補間(I
NT)設定表示部34,ディジタルフィルタ(DCF)
設定表示部35,エフェクト(EFT)設定表示部3
6,サンプリング周波数(GSR)設定表示部37,最
大発音数(MPF)設定表示部38,現在発音数表示部
39,デューティ比表示部40,発音レベル表示部41
の各種表示部が設けられるほか、カーソル(CURSO
R)キー42,バリュー(VALUE)スイッチ43,
デューティ比(DUTY)スイッチ44およびリセット
(RESET)スイッチ45の各種キースイッチが表示
される。なお、背景色が濃くなっている部分32は、そ
の位置にカーソルがあることを示している。
にデータの入出力があったとき、そのチャンネルに対応
するランプ部が点灯するモニタである。LFOは楽音に
ビブラートのようなうねり効果を生じさせるための低周
波発信器である。この表示部33に、カーソルキー42
を用いてカーソル32を移動させ、バリュースイッチ4
3を操作することによってこのLFOのオン/オフを切
り換えることができる。他の表示部34〜38に関して
も設定内容の切換方式は同様である。補間設定表示部3
4は、RAM12の波形テーブルの波形データの周波数
を生成する楽音の周波数に合わせてシフトする場合に生
じるアドレスに小数部に対応したサンプルを得るため、
それを何点補間するかを設定する表示部である。3次関
数を用いる4点補間、1次関数を用いる2点補間、およ
び、打楽器音など周波数シフトする必要のない楽音に対
して設定される補間なしのいずれかを選択することがで
きる。
ィジタルフィルタとして2次フィルタを用いるか1次フ
ィルタを用いるかまたは音色フィルタを用いないかのい
ずれかを選択するための設定表示部である。エフェクト
設定表示部36は、リバーブまたはローパスフィルタ
(LPF)のエフェクトをオン/オフするための設定表
示部である。以上の設定表示部は、CPU10の音源処
理動作の処理内容を設定するための設定表示部である。
は、図11で後述する他の適用例に関する表示であり、
このソフト音源で楽音波形データの演算を行う等価サン
プリング周波数(通常は48kHz)を粗くしたい場合
に設定変更される。48kHz以外に24kHz,12
kHzのサンプリング周波数を設定することができる。
さらに、最大発音数設定表示部38は、32音までの同
時発音が可能なこのソフト音源を、CPU10に対する
負担を事前に軽減しておくため、最大発音数を32未満
に抑える場合の最大発音数の表示である。その場合に、
この最大発音数設定表示部38に表示される数値を変更
(1〜32)することにより、最大発音数をその値まで
にすることができる。
が形成している楽音数である現在発音数を表示する。デ
ューティ比表示部40はCPU10の全能力のうち、こ
のソフト音源が占有している能力の割合を表示する。能
力は棒グラフ40aとして表示される。また、デューテ
ィ比スイッチ44を操作することにより、このソフト音
源が占有するCPU10の能力のデューティ比の上限を
示すデータDRを設定することができ、設定されたデュ
ーティ比はこのデューティ比表示部40に点線40bと
して表示される。また、発音レベル表示部41は、現在
の楽音信号の発音レベルを棒グラフ41aで示す表示部
である。
クロコンピュータ装置におけるソフト音源の動作を説明
する。図5(A)はメインルーチンを示すフローチャー
トである。プログラムが起動されると、まず、レジスタ
エリアの確保などの初期設定を実行したのち(S1)、
図4に示す画面を準備する。そして何らかの起動要因
(トリガ)があるまでS3,S4で待機する。起動要因
が発生した場合には、その起動要因をS5で判断して対
応する処理動作を実行する。起動要因としては、入力バ
ッファにMIDIデータが書き込まれた場合のMIDI
処理(S6)、1フレームに対応する時間毎に実行され
る音源処理(S8)、その他スイッチイベントがあった
ときに実行されるその他処理(S10)、および、終了
コマンドが入力された場合の終了処理(S12)があ
る。終了処理は設定データの退避やレジスタのクリアな
どの処理であり、こののち、図4の画面を消去して(S
13)、動作を終える。また、MIDI処理(S6)が
行われたときは、MIDIモニタ31のそのMIDIデ
ータを受信したチャンネルの表示器を点灯する(S
7)。その他処理としては各種のパネル入力やコマンド
入力に対応する処理があり、その一部は図10で説明す
る。この処理ののち、この処理に対応する表示変更処理
を実行する(S11)。音源処理(S8)は、タイマ2
1が128サンプルクロックをカウントしたことによる
割り込みまたはDMA18からのトリガ等によって図2
における読出再生が次のフレームにち進行したのを検出
して実行されるものであるが、図7,図8で詳細に説明
する。また、デューティ比・発音数表示処理(P表示処
理:S9)は図9で説明する。ここで、図7,図8は、
ディスプレイ17の制御画面で、LFOのオン/オフ,
補間設定,ディジタルフィルタ設定,エフェクト設定が
できるようにした場合例(第1実施態様)である。一
方、図11は、ディスプレイ17の制御画面で、サンプ
リング周波数の設定ができるようにした例(第2実施態
様)である。本明細書では、この他に、同制御画面にお
いて最大発音数を設定できるようにした場合の例(第3
実施態様)についても簡単に説明する。
明する。この割込処理は最優先の割込処理動作である。
MIDIインタフェース15からMIDIデータを受信
すると(S15)、該受信したMIDIデータととも
に、その受信時刻データを入力バッファに書き込む(S
16)。MIDI処理(S6:図6参照)は、入力バッ
ファにMIDIデータが書き込まれていることを検出し
て起動する。MIDI処理では検出されたMIDIデー
タに対応した処理が行われる。
オンイベント処理動作を示す図である。この処理動作
は、入力バッファにノートオンイベントデータが書き込
まれていたときに実行される動作である。まず、そのノ
ートオンイベントデータのノートナンバ,ベロシティデ
ータ,パート別音色および発生時刻をそれぞれNN,V
EL,t,TMレジスタに記憶する(S20)。次に、
32チャンネルの発音チャンネルのなかからこのノート
オンに係る楽音を発音する発音チャンネルを割り当てi
に記憶する(S21)。このノートオンに係る音色デー
タTP(t)をNN,VELに応じて加工し(S2
2)、加工された音色データをノートオンを示すデー
タ,TMととともにiチャンネルの音源レジスタに書き
込む(S23)。
される音源処理を示すフローチャートである。まず、こ
の音源処理動作の打ち切り時刻を算出する(S30)。
打ち切り時刻は、このソフト音源処理にCPU10を占
有できるデューティー比に基づいて算出され、楽音波形
の形成(音源処理)に割くことができる時間を算出する
処理である。すなわち、この音源処理動作では、32個
の各発音チャンネルについて1フレーム(128サンプ
ル)分の波形データを算出するが、演算途中でもCPU
10の占有可能時間に達するとこの処理動作は強制的に
終了する。途中で打ち切られた場合、一部のチャンネル
については波形データを算出できないが、この場合に
は、そのチャンネルの楽音はフォースダンプ(強制的に
信号レベルを急速に減衰させて消音する動作)される。
打ち切り時刻TL(タイムリミット)は、 TL=ST+FL×DR−US−AS ST:現再生フレームのスタート時刻 FL:フレーム時間長(1フレーム全体の長さ) DR:デューティ比 US:打ち切り処理時間(打ち切り処理(フォースダン
プ)に要する時間) AS:後処理時間(生成された複数チャンネル分の波形
にリバーブ,LPF等の処理をしてDMAに再生予約
し、音源処理を終えるまでの処理(後処理)に要する時
間))で計算される。
ムの音源処理中で実行される各チャンネルの楽音生成処
理をいつまで続けて良いかを示すデータである。この式
は、現フレームの開始時刻(ST)から終了時刻(ST
+FL)のうち、最初のデューティ比DRに応じた割合
の時間を音源処理に使用可能とし、残りの時間でソフト
音源のその他の処理や、その他のアプリケーションの処
理を行えるようにした場合である。ここで、ディーティ
比DRは、デューティ比スイッチ44により設定されて
いる。なお、この式では、打ち切り処理時間US,後処
理時間ASを考慮に入れて、精密にタイムリミットを計
算しているが、その演算は省略してもよい。
ャンネル制御とは、上述したように、演算順が下位のチ
ャンネルほど打ち切られる可能性が高いため、優先度の
高いチャンネル(消音されては困るチャンネル)から先
に演算するように32チャンネルの演算順序を設定する
処理である。優先度の高いチャンネルとは、発音レベル
の高いチャンネル、発音開始からの時間が短いチャンネ
ルなどであり、優先度の低いチャンネルは、発音してい
ないチャンネルを除けば、発音レベルの低いチャンネル
が最も優先順位が低い。チャンネル制御ののち、出力バ
ッファOBをクリアするとともに演算順位を示すポイン
タiに1をセットする(S32)。こののち、各発音チ
ャンネルの波形データ演算処理(S33〜S44)を実
行する。
レジスタにアドレスを設定して、該チャンネルのデータ
を読み出し可能にするなどの波形データ演算準備処理を
実行する(S33)。つぎに、LFO制御フラグCD1
を判断する(S34)。CD1=1であれば、LFO処
理(S35)を実行する。LFO処理とは、ノートナン
バに対応したFナンバをLFO波形で周波数変調する処
理(ビブラート処理)である。LFOの周波数は楽音周
波数に比べて低く、また、1フレームが短い(128サ
ンプル)ため、1フレームに一つの値でよい。もし、必
要がない場合にはS34から直接S36に進む。S36
では指定された波形テーブルからの波形読出および補間
処理を実行する。Fナンバは、該ノートナンバの楽音を
生成するため指定された波形テーブルをどの速さで読め
ばいいかを指定するデータであり、一般に整数部と小数
部とからなる。
・補間処理動作を説明する。この動作では、そのときi
で指定されているチャンネルの波形データを1フレーム
(128サンプル)分演算する。まず、サンプル数カウ
ンタSに1をセットする(S50)。つぎに、補間方式
レジスタCD2を参照して補間方式を判定する(S5
1)。ここで、CD2=0の場合は補間なし(ピッチ変
換のないドラム音などを再生する場合)である。CD2
=1の場合には2点補間(ラフな補間で済ませる場
合)、CD3=2の場合には4点補間(折り返しの目立
つデリケートな音の場合)である。
アドレス(この場合、処理チャンネルの前のフレームの
波形読み出しで最後に生成したアドレス)にFナンバを
加算してアドレスの更新を行う(S52)。このように
して更新されたアドレスで指定された波形テーブルの波
形サンプルを読み出しRDレジスタにセットする(S5
3)。RDの内容をサンプルバッファSD(S)にセッ
トする(S54)。この動作をS=1からS=128に
なるまで繰り返し実行する(S55,S56)。128
回の処理が完了すれば音源処理動作(図7)に戻る。こ
の場合、Fナンバの小数部により生じたアドレスの小数
部は無視されているので、このことにより折り返しノイ
ズを生じる。また、Fナンバに小数部がなければこの問
題は発生しない。
ず、直前の演算のアドレスにFナンバを加算してアドレ
スの更新を行う(S57)。このとき、整数部と小数部
からなるアドレスが生成されるため、指定された波形テ
ーブルからこのアドレスを挟む2サンプル(整数部のア
ドレスで指定されるサンプルと整数部+1のアドレスで
指定されるサンプル)の波形データを読み出す(S5
8)。これら2サンプルのデータを小数部の値で直線補
間し、その値をIDレジスタにセットする(S59)。
IDの内容をサンプルバッファSD(S)にセットする
(S60)。この動作をS=1からS=128になるま
で繰り返し実行する(S61,S62)。128回の処
理が完了すれば音源処理動作(図7)に戻る。
ず、直前の演算のアドレスにFナンバを加算してアドレ
スの更新を行う(S63)。このとき、整数部と小数部
からなるアドレスが生成されるため、指定された波形テ
ーブルからこのアドレスを挟む4サンプル(整数部−
1,整数,整数部+1,整数部+2のアドレスで指定さ
れるサンプル)の波形データを読み出す(S64)。こ
れら4サンプルのデータを通る3次曲線についてその曲
線上の小数部に対応する点の値を求め、その値をIDレ
ジスタにセットする(S65)。IDの内容をサンプル
バッファSD(S)にセットする(S66)。この動作
をS=1からS=128になるまで繰り返し実行する
(S67,S68)。128回の処理が完了すれば音源
処理動作(図7)に戻る。
ち、フィルタ制御レジスタCD3を参照する(S3
6)。CD3=0の場合にはディジタルフィルタ処理を
行わないでそのまま音量制御・累算処理(S40)に進
む。また、CD3=1の場合には、サンプルバッファW
B (SD(1) 〜SD(128))の値にフィルタ制御データに
応じた周波数特性を有する一次フィルタ処理を施す(S
38)。また、CD3=2の場合には、サンプルバッフ
ァWBの値にフィルタ制御データに応じた周波数特性を
有する二次フィルタ処理を施す(S39)。こののち音
量制御・累算処理動作に進む(S40)。
(1) 〜SD(128))の値に振幅EGおよびチャンネル音量
パラメータに基づいて楽音の立ち上がりから立ち下がり
にいたる音量時間変化を付与する音量制御を施す。な
お、振幅EGは一般的に緩やかな曲線であるため、12
8サンプルあたり1つのEG値でよい。このレベル制御
されたサンプルバッファWBの値を出力バッファOB
(OD(1) 〜OD(128))の対応するサンプルに足し込
む。この加算動作が各i番目の演算順序を持つチャンネ
ルについて順次繰り返し実行されることにより、出力バ
ッファにはそれまでに生成した全チャンネルの楽音波形
データの累算値が記録されることになる。
か否かを判断する(S41)。打ち切り時刻になった場
合には、打ち切り処理を実行する(S43)。打ち切り
処理では、その時点までに波形データを演算できなかっ
たチャンネルの楽音波形をフォースダンプするためのダ
ンプ波形を生成し、出力バッファに足し込む。打ち切り
時間になっていなければ発音中の全チャンネルについて
処理を終了したかを判定する(S42)。すなわち、発
音可能チャンネル数が32チャンネルであっても現在発
音中のチャンネルがそれ以下であれば発音中のチャンネ
ルに関する生成処理が終了すればS42の判断でS45
以下に進む。まだ発音中の全チャンネルに関する処理が
終了していなければ、演算順序を示すiに1を加算して
(S44)、S33に戻る。
は、打ち切り処理が行われた場合にはS45に進行す
る。S45ではエフェクト制御レジスタCD4を参照す
る。CD4=0であればエフェクトをかけないためその
ままS48に進む。CD=1であれば出力バッファOB
の128サンプルの高域をカットするローパスフィルタ
LPFをかけるためS46でローパスフィルタ演算を施
したのちS48に進む。また、CD4=2の場合には出
力バッファOBの128サンプルに残響を付与するリバ
ーブ処理をかけるためリバーブ演算を施したのち(S4
7)、S48に進む。S48では作成し出力バッファO
Bに記憶されている波形データを再生部に再生予約す
る。この再生予約は、RAM内の記憶アドレスをDMA
に通知する処理である。
(P表示処理)を示すフローチャートである。まず、S
71でソフト音源全体または音源処理に費やされたCP
U時間を算出する。算出された時間のCPU10の全体
演算時間に対する比を算出し、これをCPU占有率表示
部40に棒グラフで表示する(S72)。次に発音数i
を現在発音数表示部39に表示する(S73)。
ベント処理ルーチンを示すフローチャートである。同図
(A)は、スイッチオンイベント処理ルーチンを示して
いる。表示ウィンドゥ30に表示されているスイッチ4
3がオンされた場合には、オンされたスイッチに応じて
現在のカーソル32の位置に対応するデータCDxの値
を設定する(S74)。このデータCDxは上記音源処
理動作で利用される。
は、カーソルキー42の操作に応じて、図4に示される
制御画面上のLFOオン/オフ表示部33,補間設定表
示部34,ディジタルフィルタ設定表示部35,エフェ
クト設定表示部36のいずれかの位置に移動可能であ
る。バリュースイッチ43の操作に応じて、カーソル3
2の位置に対応したデータ、すなわち、LFOオン/オ
フ表示部33ではデータCD1,補間設定表示部34で
はデータCD2,ディジタルフィルタ設定表示部35で
はデータCD3,エフェクト設定表示部36ではデータ
CD4の値が、それぞれ、設定変更される。同図(B)
はデューティ比スイッチオンイベント処理動作を示すフ
ローチャートである。デューティー比スイッチ44がオ
ンされると、オンされたスイッチに応じてデータDRを
増減するとともに、CPU占有率表示部40の点線40
bをこれに応じて表示変更する(S75)。
ーチャートである。このフローチャートは、上記音源処
理の他の例(第2実施態様)である。まず、この音源処
理動作の打ち切り時刻を算出する(S81)。打ち切り
時刻TL(タイムリミット)は、図7の場合と同様に、 TL=ST+FL×DR−US−AS ST:現再生フレームのスタート時刻 FL:フレーム時間長(1フレーム全体の長さ) DR:デューティ比 US:打ち切り処理時間(打ち切り処理(フォースダン
プ)に要する時間) AS:後処理時間(他の処理に制御を渡すために要する
時間)で計算される。
ャンネル制御とは、優先度の高いチャンネルから先に演
算するように32チャンネルの演算順序を設定する処理
である。こののち、3つの独立した出力バッファOB
1,OB2,OB3をクリアするとともに、演算順を示
すポインタiに1をセットして(S83)、波形データ
演算処理(S84〜S92)を実行する。
アドレスを設定するなどの波形データ演算準備処理を実
行する(S84)。つぎに、サンプリング周波数制御レ
ジスタCD5を判断する(S85)。CD5=2であれ
ば、1フレーム(128サンプル)の波形データをその
まま形成するためS88に進んで、128サンプル分の
波形データ演算処理を行い、OB2に加算する。CD5
=1であれば、1フレームを半分の精度(2倍周期のサ
ンプリングクロック:64サンプル)で形成するため、
S87に進んで、64サンプル分の波形データの演算処
理を行い、OB1に加算する。また、CD5=0であれ
ば、1フレームを1/4の精度(4倍周期のサンプリン
グクロック:32サンプル)で形成するため、S86に
進んで、32サンプル分の波形データの演算処理を行
い、OB0に加算する。
ル独立のデータCD5(i)として、各チャンネルの発
音時にそれぞれの発音する楽音の音楽パートに応じて設
定されるようにしてもよいし、逆に、ソフト音源全体と
して1つの値CD5を用いるようにしてもよい。例え
ば、1つの値にする場合、図4の制御画面中のサンプリ
ング周波数設定表示部37にカーソルを置いてバリュー
スイッチ43を操作して設定する。設定された1つのデ
ータCD5に応じて、S85における分岐が行われ、対
応する処理が行われる。
音楽パートとしての各MIDIチャンネルの毎にデータ
CD5を設定する。すなわち、演奏に先立って演奏者
は、1から16のMIDIチャンネルを指定し、対応す
る各パート毎のデータCD51〜CD516の値を設定す
る。そして、ノートオンイベントが入力して図6のノー
トオンイベント処理の実行時に、ステップS23で実行
されるichの音源レジスタの書込処理において、イベ
ントの送られたパートtに応じた同チャンネルのデータ
CD5(i)を音源レジスタ内に設定すればよい。すな
わち、パートtに設定されたデータCD5tを、割り当
てられた発音チャンネルiの音源レジスタのデータCD
5(i)として設定する。以上の処理により、各発音チ
ャンネルi毎にデータCD5(i)が設定され、それに
基づいてステップS85の分岐が各発音チャンネル毎に
独立に行われる。
特性について述べる。図11の音源処理において、S8
5の分岐により、各発音チャンネルで1フレーム分の波
形として生成する波形サンプル数が変化する。各発音チ
ャンネルで1フレーム分として生成するサンプル数が多
いほど、そのチャンネルの処理に時間がかかる。すなわ
ち、生成サンプル数と処理時間には相関関係がある。本
実施態様では、1秒間に生成するフレーム数は固定(4
8k/128=375フレーム)であり、フレーム毎の
生成サンプル数の変化は1秒当たりの生成サンプル数
(等価サンプリング周波数と呼ぶ)の変化に相当する。
等価サンプリング周波数は生成する楽音の実質的なサン
プリング周波数に相当し、サンプリングの定理によれば
生成する楽音は等価サンプリング周波数の半分以下の周
波数成分を有する。すなわち、等価サンプリング周波数
が高いほど、生成する楽音のクォリティ(音質)は高
い。それぞれ、等価サンプリング周波数は、48kHz
(CD5=2)、24kHz(CD5=1)、12kH
z(CD5=0)である。
か否かを判断する(S89)。打ち切り時刻になった場
合には、打ち切り処理を実行する(S91)。打ち切り
処理は、波形データを演算できなかったチャンネルの楽
音波形をフォースダンプするための波形を生成し、出力
バッファに足し込む処理である。打ち切り時間になって
いなければ発音中の全チャンネルについて処理を終了し
たかを判定する(S90)。まだ発音中の全チャンネル
に関する処理が終了していなければ、iに1を加算して
(S92)、S84に戻る。
は、打ち切り処理が行われた場合にはS93に進む。S
93では、出力バッファOB0の内容を4倍オーバーサ
ンプリングすることにより128サンプル化してOB2
に足し込むとともに、出力バッファOB1の内容を2倍
オーバーサンプリングすることにより128サンプル化
してOB2に足し込む。こののち、バッファOB2に記
憶されている波形データに対してリバーブ処理を施し
(S94)、リバーブ効果の付与された出力バッファO
B2の波形データを再生部に再生予約する(S95)。
以上の動作により、CD5の設定によりサンプリング周
波数を変更して楽音波形を生成することができ、CPU
10の能力に合わせた楽音波形の生成が可能になる。
の最大発音数をデータCD6として32以下の数値に予
め制限して設定しておき、図7のS41の打ち切りの判
断を、現在の発音数がこの制限して設定された発音数に
達したか否かによって行うように変更してもよい。すな
わち、本実施態様では、図4の最大発音数設定部38に
より、最大発音数CD6を演奏者が設定し、ソフト音源
は、その設定されたCD6を最大発音数として、それ以
下の同時発音数で楽音生成を行う。この場合には、発音
数でCPU10の占有率(デューティ比)を制限するこ
とができる。
る。上記第1実施態様および第2実施態様では、演奏者
の設定したデューティ比DRにより、CPUの有する演
算能力のうちのソフト音源の処理に使用してよい能力の
割合の上限を制御している。一方、上記第3実施態様で
は、演奏者の設定した最大発音数CD6により、ソフト
音源で生成する楽音の最大数が制限される。いずれの実
施態様においても、ソフト音源で生成する楽音数が変化
するのであるが、その変化は波形を生成する音源処理S
8の内部だけであり、外部のプログラム、例えば、発音
割当処理等ではその情報が生かされていない。
の可変な音源の、ノートオンイベント処理を実行する際
に現在の同時発音数に応じて発音割当処理S21の割り
当ての態様を変化させる。すなわち、ノートオンイベン
ト処理のステップS21において、まず、データDRに
応じたCPU演算能力を換算した同時発音数、ないし、
データCD6を受け取り、受け取ったデータを最大発音
数MPとして発音割り当てを行う。音源レジスタで現在
発音中とされているチャンネルの数PNが、データ(M
P−1)以下のときは、空いているチャンネルを割り当
てチャンネルにするし、データMPより大きいときはそ
の中からオーバーする分(PN−MP+1)個の消音チ
ャンネルを決定して消音指示を当該チャンネルに書き込
むとともに、1つの空きチャンネルを確保して、それを
割り当てチャンネルとする。この処理では、現在の発音
数に応じて発音割り当てを行っているので、発音を沢山
割り当て過ぎてノイズが生じたり、少なく割り当てて折
角の発音可能能力を活かし切れなかったりということを
防止できる。音源の同時発音数は、音色の切替えによっ
て各チャンネル当たりの処理量が変化したり、演奏中に
データDR,CD6を変化させたりすると、時間の経過
でどんどん変化していくが、上述したように、ノートオ
ンイベント等で発音割り当てを行うときに音源からの同
時発音数を得るようにしておけば、それにも対応可能で
ある。なお、この方式は、ソフト音源に限らず、状況に
応じて最大発音数が変化する全ての音源に適用可能であ
る。
について、ディジタルフィルタDCFのオン/オフ設定
を行うようにしているが、音色パート別、各発音チャン
ネル別に設定を行うようにしてもよい。すなわち、各音
色パート別,各発音チャンネルi別にディジタルフィル
タ設定レジスタCD3(i)を設け、各音色パート,発
音チャンネルの設定モードの中でこれをオン/オフ設定
できるようにしてもよい。上記音源処理(図7)では発
音チャンネル別に分岐処理S37を行っているため、こ
れに対応する処理は容易である。また、その他のデータ
CD1,CD2等についても同様に、音色パート別,各
発音チャンネル別に設定できるようにしてもよい。
常、ピッチ変換の必要がないため、CD2=0(補間な
し)を設定するが、他の楽器に対してチューニングした
い場合には、CD2=1としてピッチ制御をするように
してもよい。本実施態様では、MIDIイベント処理を
デューティ比制御の計算にいれていないが、このMID
Iイベント処理もソフト音源が側の動作としてデューテ
ィ比制御の計算にいれるようにしてもよい。
動する場合があるので、見やすくするために表示のスム
ージングを行ってもよい。外部からのMIDI受信に限
らず、コンピュータ自信の実行する自動演奏プログラム
で再生されたMIDIイベントやゲームソフト等で発生
する発音指示等をソフト音源の演奏入力としてもよい。
また、本発明のソフト音源は、上記実施態様で説明した
ように、Windows等のOSが搭載された汎用のコ
ンピュータで実行してもよいが、これに限らず、鍵盤等
の演奏操作子を備えた電子楽器や演奏操作子を備えない
音源モジュール等の内部にある制御用CPUに実行させ
るようにしてもよい。この場合、従来電子回路で構成し
ていた音源部を縮小または省略することができる。ま
た、ハードの音源部とこのソフト音源を併用してもよ
い。
CD4の値に応じて、エフェクト無し,ローパスフィル
タ,リバーブ処理の3つの中から1つを選択するように
なっている。すなわち、ローパスフィルタ,リバーブ処
理という、効果の内容が異なるエフェクトを選択的に付
与できるようになっている。または、処理に必要な演算
量が異なるエフェクトの選択と見ることもできる。この
エフェクトの選択に関しては、さらに、上記実施態様以
外の態様が考えられる。例えば、同一種類のエフェクト
であるが、エフェクトの処理のグレード、および、処理
に必要な演算量の異なる複数のエフェクトプログラムか
ら1つを選択するようにしてもよい。すなわち、エフェ
クトのグレードを上げれば、その分、他に回せる演算量
が減り、同時に生成できるチャンネル数の減少を引き起
こす。演奏者はCD4を設定することにより、演奏曲等
に応じて同時発音数とエフェクトグレードのバランスを
とることができる。
処理の流れは、1つの例であり、フレームのサイズや、
演奏入力、生成演算、読出再生の時間的な相互関係はこ
の図に限定されない。例えば、演奏入力、生成演算、読
出再生のそれぞれの時間フレームの時間切り替わり位置
が異なるようにしてもよい。さらに、1フレームの時間
間隔が固定長になっているが、これを毎フレームに異な
る長さになるようにしてもよい。ただし、1回の音源処
理で、時間方向に複数の波形サンプルを生成するという
点は、本願発明の実施態様の特徴である。
ラムに従って動作するCPUにより、演奏情報の受信と
選択情報の受信が行なわれ、かつ、受信した演奏情報に
基づく楽音生成処理が行なわれ、さらに、該楽音に対す
る処理内容および演算量の異なる特性制御処理が選択情
報に応じて施され、また、選択情報の内容とCPUの動
作状態が表示可能であり、さらに、選択情報を演奏者が
任意に設定することができるものであり、従って、生成
しようとする楽音の目的や演奏形態に適合させて、楽音
制御の内容を変更したり、特定の楽音制御をやめること
で処理量を軽減し、その分発音数を増加させたり、他の
目的にCPUのパワーをまわしたりすることが容易に行
なうことができ、これによって、CPU資源を有効に活
用することができる。
装置のブロック図。
ト音源の楽音生成処理の時間的流れを説明する図。
モリエリアを説明する図。
図。
ト。
ャート。
Claims (7)
- 【請求項1】 プログラムに従って動作するCPUが、
演奏情報を受信するとともに選択情報を受信し、前記演
奏情報に基づく演算処理によって楽音を生成するととも
に、前記選択情報に応じて該生成する楽音に処理内容お
よび演算量の異なる特性制御処理を施し、 前記選択情報の内容および前記CPUによる前記演算処
理の演算量を表示可能にするとともに、任意に設定され
る前記選択情報を前記CPUが受信することを特徴とす
る楽音発生方法。 - 【請求項2】 プログラムに従って動作するCPUが、
演奏情報を受信するとともに選択情報を受信し、前記演
奏情報に基づく演算処理によって楽音を生成するととも
に、前記選択情報に応じて該生成する楽音に処理内容お
よび演算量の異なる特性制御処理を施し、 前記選択情報の内容および楽音数を表示可能にするとと
もに、任意に設定される前記選択情報を前記CPUが受
信することを特徴とする 楽音発生方法。 - 【請求項3】 前記選択情報は、 (1)低周波発振器のオン・オフ、 (2)補間のオン・オフおよび/または補間の種類、 (3)フィルタのオン・オフおよび/またはフィルタの
種類、 (4)エフェクトのオン・オフおよび/またはエフェク
トの種類、 (5)サンプリング周波数のうちの少なくとも1つにつ
いての選択情報である請求項1または2に記載の楽音生
成方法。 - 【請求項4】 プログラムに従って動作するCPUであ
って、演奏情報を受信可能にするとともに選択情報を受
信可能とし、前記演奏情報に基づいて、楽音生成演算処
理を実行するとともに、前記選択情報に応じて、該楽音
生成演算処理で生成する楽音に処理内容および演算量の
異なる特性制御処理を施すものと、 前記選択情報の内容および前記CPUによる前記楽音生
成演算処理の演算量を表示する表示手段と、 前記選択情報を任意に設定する設定手段とを備え、前記
設定手段で設定された前記選択情報を前記CPUが受信
することを特徴とする楽音発生装置。 - 【請求項5】 プログラムに従って動作するCPUであ
って、演奏情報を受信可能にするとともに選択情報を受
信可能とし、前記演奏情報に基づいて、楽音生成演算処
理を実行するとともに、前記選択情報に応じて、該楽音
生成演算処理で生成する楽音に処理内容および演算量の
異なる特性制御処理を施すものと、 前記選択情報の内容および楽音数を表示する表示手段
と、 前記選択情報を任意に設定する設定手段とを備え、前記
設定手段で設定された前記選択情報を前記CPUが受信
することを特徴とする楽音発生装置。 - 【請求項6】 前記選択情報は、 (1)低周波発振器のオン・オフ、 (2)補間のオン・オフおよび/または補間の種類、 (3)フィルタのオン・オフおよび/またはフィルタの
種類、 (4)エフェクトのオン・オフおよび/またはエフェク
トの種類、 (5)サンプリング周波数のうちの少なくとも1つにつ
いての選択情報である請求項4または5に記載の楽音生
成装置。 - 【請求項7】 前記CPUは、所定周期毎に楽音の複数
サンプルを一括して生成することを特徴とする請求項1
乃至6のいずれかに記載の楽音生成方法または装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02062899A JP3164096B2 (ja) | 1995-10-02 | 1999-01-28 | 楽音発生方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02062899A JP3164096B2 (ja) | 1995-10-02 | 1999-01-28 | 楽音発生方法及び装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7254366A Division JP3019755B2 (ja) | 1995-09-29 | 1995-10-02 | 楽音発生方法および楽音発生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11282467A JPH11282467A (ja) | 1999-10-15 |
JP3164096B2 true JP3164096B2 (ja) | 2001-05-08 |
Family
ID=12032513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02062899A Expired - Lifetime JP3164096B2 (ja) | 1995-10-02 | 1999-01-28 | 楽音発生方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3164096B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6693372B2 (ja) * | 2016-09-28 | 2020-05-13 | カシオ計算機株式会社 | 電子楽器、電子楽器の制御方法、及びプログラム |
JP7159583B2 (ja) * | 2018-03-26 | 2022-10-25 | カシオ計算機株式会社 | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
-
1999
- 1999-01-28 JP JP02062899A patent/JP3164096B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11282467A (ja) | 1999-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2866223B1 (en) | Automated music performance time stretch using audio waveform data | |
JP3293434B2 (ja) | 楽音発生方法 | |
KR100402364B1 (ko) | 악음발생장치, 악음발생방법 및 기억매체 | |
US5371315A (en) | Waveform signal generating apparatus and method for waveform editing system | |
US5123322A (en) | Musical tone generating apparatus for electronic musical instrument | |
JP3008922B2 (ja) | 楽音発生装置および楽音発生方法 | |
JPH0922287A (ja) | 楽音波形生成方法 | |
JPH11288285A (ja) | 楽音発生方法及び装置 | |
JP3019755B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP3164096B2 (ja) | 楽音発生方法及び装置 | |
CA2134308C (en) | Audio synthesizer time-sharing its first memory unit between two processors | |
JPH10307586A (ja) | 楽音発生装置および方法 | |
JP3658826B2 (ja) | 楽音生成方法 | |
JP4096952B2 (ja) | 楽音発生装置 | |
JP3341777B2 (ja) | 効果付与装置 | |
JP3000894B2 (ja) | 楽音発生方法 | |
JP3740717B2 (ja) | 音源装置及び楽音生成方法 | |
JP3095018B2 (ja) | 楽音発生装置 | |
JP3723973B2 (ja) | 音源装置 | |
JP2956552B2 (ja) | 楽音発生方法および装置 | |
JP2972364B2 (ja) | 音楽的情報処理装置及び音楽的情報処理方法 | |
JP3705203B2 (ja) | 楽音発生方法 | |
JPH1097258A (ja) | 波形メモリ音源装置および楽音発生装置 | |
JP3627557B2 (ja) | 楽音発生装置及び方法 | |
JP2019168645A (ja) | 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20090302 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090302 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100302 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120302 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140302 Year of fee payment: 13 |
|
EXPY | Cancellation because of completion of term |