JP3716710B2 - Music generator - Google Patents

Music generator Download PDF

Info

Publication number
JP3716710B2
JP3716710B2 JP2000180368A JP2000180368A JP3716710B2 JP 3716710 B2 JP3716710 B2 JP 3716710B2 JP 2000180368 A JP2000180368 A JP 2000180368A JP 2000180368 A JP2000180368 A JP 2000180368A JP 3716710 B2 JP3716710 B2 JP 3716710B2
Authority
JP
Japan
Prior art keywords
waveform
cpu
sound
mode
sound source
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 - Fee Related
Application number
JP2000180368A
Other languages
Japanese (ja)
Other versions
JP2001034271A (en
Inventor
正忠 和智
秀夫 山田
正志 平野
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 JP2000180368A priority Critical patent/JP3716710B2/en
Publication of JP2001034271A publication Critical patent/JP2001034271A/en
Application granted granted Critical
Publication of JP3716710B2 publication Critical patent/JP3716710B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、例えば、電子ゲーム機器や、通信カラオケ装置、パソコン等のように、CPUを用いた応用システムに用いて好適な楽音発生装置に関し、特に、楽音の発生を指示するデータに基づき多様な楽音を合成する楽音発生装置および楽音発生方法に関する。
【0002】
【従来の技術】
従来、パソコンなどで楽音を発生しようとする場合には、専用の音源デバイスや、音源ボードなどの専用のハードウェアを組み込み、これらを制御することで、所定の楽音を発生するようになっていた。が、近年、パソコンの性能、特にCPUの性能が著しく向上したので、音源ボード等の専用ハードウェアで実行すべき処理をもCPUが実行することにより、楽音を発生するようことが行なわれつつある。
このような楽音発生は、CPUが専用のソフトウェア(プログラム)にしたがって楽音波形の(サンプリング)データを演算して求めることから、ソフトウェア音源とも呼ばれ、従来の、専用のハードウェアを用いて楽音を発生するハードウェア音源と区別される。
【0003】
【発明が解決しようとする課題】
しかしながら、ソフトウェア音源により発生される楽音の品質は、演算処理を担うCPUの性能に大きく依存する。すなわち、CPUの性能が高い場合には、波形データ(サンプリングデータ)を求める演算処理を高速で実行できるため、サンプリング周波数をより高くして、品質の高い楽音を発生することが可能である。しかし、CPUの性能が低い場合には、高速な演算処理が困難となるため、サンプリング周波数を低くしなければならず、このため、楽音の品質が低くならざるを得ない。
【0004】
一方、パソコン等のように、CPUを用いた応用システムでは、CPUの性能や、オプション品等の装着状態が千差万別である(通常、オプション品とは、広義にはハードディスクや、ビデオカードなども含むが、ここでは、楽音の発生に何らかの形で寄与するものをいう)。すなわち、CPUの性能は、個々のシステムに応じて異なることを念頭に置かなければならない。
さらに、楽音発生のためのアプリケーションプログラムと、それ以外のアプリケーションプログラムとを複数同時起動するような場合、楽音発生のためのプログラムの実行に割り当てられるCPUの負担は、他のプログラムの起動状況やタスクの状態等によって変動することがある。すなわち、全く同一のシステム環境ですら、楽音発生のプログラムから見れば、CPUの性能が見掛け上、変動することがあり得るのである。
したがって、ユーザは、ソフトウェア音源により楽音を発生する場合にあっては、環境が変わる毎に、楽音発生のための基本的な事項を再設定しなければならず、非常に煩雑である、という問題があった。しかも、かかるシステムで、設定事項で定められる条件で楽音発生が可能であるか否かは、実際に発音させて、音飛び、音欠け等の不都合が発生するか否かではじめて判明する。すなわち、設定事項が、そのシステムにおいて適切であるかどうかは、実際に発音させるまで判明しない、という問題がある。
【0005】
本発明は、上述した問題に鑑みてなされたもので、その目的とするところは、装置構成等に変動があっても、その構成において、適切な品質を確保した上で多様な楽音を発生することが可能な楽音発生装置および楽音発生方法を提供することにある。
【0006】
【課題を解決するための手段】
上述した問題を解決するために発明は、楽音波形を記憶する記憶手段と、前記記憶手段に記憶された楽音波形を読み出すことにより楽音を発生する波形メモリ方式を含む複数の発音方式で楽音を発生することが可能な演算処理手段と、前記波形メモリ方式以外の発音方式が指定された場合に、指定された方式における当該楽音発生装置の処理能力を反映した周波数を算出する算出手段とを有し、前記算出手段により算出された周波数が所定の周波数以下であると判断された場合には、前記演算処理手段が、発音方式を波形メモリ方式に切り換えることを特徴とする楽音発生装置を提供する
【0007】
好ましい態様において、この楽音発生装置は、前記算出手段により算出された周波数が所定の周波数以下であると判断された場合、かつ、前記算出手段により算出された周波数が所定の周波数以下であると判断されたときには発音方式を波形メモリ方式に切り換える旨が指示された場合、前記記憶手段が、波形メモリ方式以外の方式で生成した楽音波形を記憶してもよい。
【0008】
【発明の実施の形態】
1:構成
以下、本発明の最適な実施形態について図面を参照して説明する。図1は、本発明が適用される楽音発生装置の構成を示すブロック図である。
この図において、符号10はCPUであり、ROM11に記憶された基本プログラムに基づいて、(データ)バス12を介して各部を制御するようになっている。符号13はRAMであり、後述する各種レジスタやフラグを設定したり、各種データを一時的に記憶する。符号14はマルチI/Oポートであり、例えばMIDI情報を入出力したり、図示しない鍵盤による操作情報KBDなどを入力したり、また、図示しない各種のインターフェイス(I/F)を介し各種の情報を入力する。すなわち、マルチI/Oポート14は、発生すべき楽音を規定する演奏情報を、MIDI情報や、操作情報KBDとして入力する。なお、本実施形態では、演奏情報が自動演奏により発生する場合も想定している。この場合の自動演奏とは、所定の自動演奏プログラムを実行することにより、演奏情報が時系列的に発生する場合をいい、換言すれば、図1の構成が、自動演奏プログラムの実行により、楽音発生装置としてのみならず、いわばシーケンサとしても働く場合をいう。また、I/Fの種類としては、シリアルや、パラレル、RS−232C、RS−422など考えられ、特に、RS−232Cの場合には、図示しないモデムにより電話回線にも接続され、ホスト局と通信も行なう。
したがって、演奏情報の発生源は、鍵盤操作による場合は当該鍵盤であり、MIDI情報等による場合は各種I/Fを介して接続された外部機器であり、また、自動演奏により場合は自動演奏プログラムを実行するCPU10である。
符号15はストレージユニットであり、FD(フロッピィ・ディスクドライブ)やHD(ハード・ディスクドライブ)、CD−ROMドライブ等の記憶装置から構成され、各種アプリケーションプログラムやデータ等を保存する。符号16はディスプレイであり、CRTや液晶パネル等により構成され、CPU10の制御の下、各種表示を行なう。
【0009】
次に、符号17はコプロセッサであり、浮動小数点演算に関する処理等をCPU10に肩代わりして行なう。なお、その他の処理についてはCPU10が行なう。符号18はタイマであり、後述するタイマー処理において時間の計測等を行なう。符号19はDMAC(ダイレクト・メモリ・アクセス・コントローラ)であり、RAM20におけるデータ転送を、CPU10を介さずに直接行なう。なお、近年においてコプロセッサ17、タイマ18およびDMAC19は、CPU10とともに1チップ化される場合もあるが、本構成においては、便宜上、CPU10とは別体構成として説明することとする。
RAM20は、符号13と同様であり、ハードウェア的には両者に差はないが、RAM13がプログラム実行に使用されるワークメモリとして働くのに対し、このRAM20は、所定の条件下において、展開された波形データを一時的に記憶する波形メモリとして働く。
【0010】
符号21はDSPであり、楽音合成の演算処理を行なう専用のプロセッサである。符号22は音源デバイスであり、種々の命令の下、楽音信号を合成する。符号23はD/Aコンバータであり、後述するフラグDACENBLが立ち上がる(「1」になる)ことにより、その出力動作が許可される。
なお、D/Aコンバータ23の入力段には、図では省略したが、FIFO形式のデータバッファが設けられており、バッファリングされたデータが、後述するステップSa21により設定されたサンプリング周波数fsで読み出されるようになっている。また、D/Aコンバータ23の出力段には、図では省略したが、高調波を除去するためのLPF(ローパスフィルタ)が設けられ、そのカットオフ周波数は、設定されたサンプリング周波数fsの略半分に設定されるようになっている。そして、このLPFの出力こそが楽音発生装置による楽音信号として出力され、アンプやスピーカ等からなるサウンドシステムにより発音するようになっている。
【0011】
さて、符号24は、符号13、20と同様なRAMであり、ハードウェア的には両者に差はないが、このRAM24は、DSP17の演算処理に使用されるワークメモリとして働く。符号25は波形メモリであり、音源デバイス22が波形メモリ読出方式により楽音を発生する場合、基本的な音色の波形データを複数記憶する。なお、波形メモリ25とRAM20とは、波形メモリ25については、その記憶内容が主に音源デバイス22で使用され、ROMまたは(ドータ)ボードで提供されるのに対し、RAM20については、その記憶内容が主にCPU10で使用される点で、そのニュアンスを若干異にする。
【0012】
かかる構成のうち、コプロセッサ17や、DSP21、音源デバイス22、RAM24、波形メモリ25などは、通常、オプション品として設定される。すなわち、これらは任意的に設けられるものである。特に、RAM24については、装着されない場合、RAM13の領域の一部がRAM24として割り当てられ、また、波形メモリ25については、音源デバイス22がFM合成方式など純粋な演算のみにより波形データを生成する方式により楽音を発生するものであれば、あえて装着する必要はない。
【0013】
このため、CPU10は、何らかの形でこのようなオプション品が搭載・装着されているか否かを知る必要があるが、本実施形態では、例えば、次のような方法により構成部品の有無を知るようになっている。
▲1▼構成部品を設ける場合に、接続するアドレスを予め決めておき、CPU10が、例えば起動直後や、リセット直後に、にかかるアドレスをアクセスする。この際、CPU10は、しかるべきデータが読み出された場合に、構成部品が搭載されていると判断する。
▲2▼構成部品の搭載を示すジャンパスイッチを設けておき、構成部品を搭載した場合に、当該ジャンパスイッチをオンとしてCPU10に搭載状態を知らせる。
▲3▼パソコンであれば、コンフィグレーションファイルによって構成部品をデバイスドライバという形で登録し、あるいはバッチファイルで登録し、認識させる。
【0014】
なお、図1に示す構成においては、オプション品のすべてがデータバスに接続された状態となっているが、接続されるバスはこれに限られない。例えば、各種シリアル/パラレルのインターフェイスを介してCPU10とデータの授受を行なうようにしても良い。すなわち、オプション品はなんらかの形で、CPU10とのデータの授受を行なえれば、その接続形態は問われない。
例えば、音源デバイス22は、実際には図2に示すように、音源ボード41として、いわゆる一種の拡張ボードとして提供される場合があり、この場合には、メインボード(マザーボード)上のスロットに挿入されて、CPU10とは、バス12、I/Fコントローラ26、拡張(ボード)インターフェイス27を介してデータの授受を行なう。さらに、この場合、波形メモリ25は、音源ボード41に設けられる専用のソケットに任意的に装着されることもある。また、この場合、拡張インターフェイス27側に独自のD/Aコンバータ28が設けられることもある。
一方、音源デバイス22は、LSIチップ単体や、あるいは別途基板に搭載される形等で提供される場合もあり、この場合には、メインボードあるいは拡張ボード上に予め設けられた専用ソケットに挿入されて、CPU10とは、直接、あるいは拡張インターフェイス等を介して接続しても良い。
同様に、DSP17も、拡張ボードとして提供される場合には、図2に示すように、DSPボード42として、一種の拡張ボードとして提供される場合があり、この場合には、メインボード上のスロットに挿入されて、CPU10とは、拡張インターフェイス27等を介してデータの授受を行なう。また、DSP17はLSIチップ単体で供給される場合もある点で音源デバイス22と同様である。さて、D/Aコンバータ23への入力データは、図1では、バス12から供給されるようになっているが、DSP17や音源デバイス22が拡張ボードやソケット等に挿入される場合には、DSP17や音源デバイス22の出力がバス12を介さないで、直接、あるいは拡張インターフェイス等を介して供給されるようになっている。
【0015】
また、図3に示すように、音源デバイス22やDSP17からなる音源システム32を、データバス12を介さずにCPUシステム30とデータの授受を直接行なうローカルバス等と接続する構成としても良い。ここで、CPUシステム30とは、CPU10を含んだROM11、RAM13などの標準システムをいい、周辺装置群31とは、それ以外のマルチI/Oポート14や、ストレージユニット15、各種のインターフェイス、操作子等を総称する。また、音源システム32は、狭義には音源デバイス22やDSP17をいうが、広義には、CPUシステム30以外で楽音発生に何らかの形で寄与する構成要素をいう。ここで、音源システム32は、CPUシステム30と一体化して搭載される構成としても、分離可能な構成としてもどちらでも良い。
くわえて、接続のためのインターフェイスをCPU側が持つか、音源側が持つかは、システムに応じて適切に定めればよい。
さらにローカルバスだけではなく、例えばMIDIや、RS−S3SC/422、IEEE P−1394(IEEEに提出された符号1394の規格)、SCSIなどの各種インターフェイス/プロトコルを用いても良い。また、電話回線等の各種通信回線を介して、データの授受を行なうことも考えられる。
【0016】
一方、音源デバイス22は、波形メモリ25、さらにD/Aコンバータも含めて1チップに集積化されたり、あるいは基板モジュール化される(図4(a)参照)場合もあり得る。同様に、DSP17もRAM24、さらにD/Aコンバータも含めて1チップに集積化される場合もあり得る(図4(b)参照)。
【0017】
このように、図1〜図3に示した構成は、あくまでもシステム構成の一例であり、各構成要素間がどのように接続されかは、そのシステムに依存する。また、最近では、図1に示した構成要素が2つ以上集積化され、見掛け上、一体となって構成される場合もあり、外観により構成要素をブロック化するのは、あまり意味を持たないことである。
【0018】
1−1:動作モード
次に、本実施形態の動作モードについて説明する。本実施形態にかかる楽音発生装置の動作モードは、図5に示すように、発音方式を指定するものと、発音の割当方式を指定するものの2つに大別され、さらに、それぞれ種々のモードに細分化される。そこで、まず、発音方式を指定するモードについて説明する。
【0019】
1−1−1:発音方式の指定
本実施形態では、演奏情報により楽音の波形データを生成・作成し、これをアナログ変換することよって、発音を行なうようになっている。かかる波形データの作成・生成は、種々の方式によって実行される。
このため、発音方式を指定するモードによって、どの発音方式により波形データを生成・作成するかを定めるようにしている。
なお、本実施形態の発音方式は、CPU合成モードと各種音源デバイス使用モードとの2つのモードを想定している。
【0020】
▲1▼ CPU合成モード
CPU合成モードとは、楽音合成のための専用のハードウェアを用いることなく、CPU10のみにより、あるいは、搭載されていればコプロセッサ17と併せて波形データを生成・作成することを指定するモードである。このCPU合成モードは、さらに、次の4つのモードに大別される。なお、求められた所望の波形データは、D/Aコンバータ23によりアナログ信号に変換されて、発音するようになっている。
・FMモード
このFMモードは、いわゆるFM音源を用いて発音を行なうモードである。すなわち、所望の波形データは、CPU10等(コプロセッサ17が装着されているう場合には、コプロセッサ17も併用する意)のリアルタイム演算により、基本となる正弦波をFM変調させて求められる。
・高調波合成モード
この高調波合成モードは、基本波と、当該基本波の高調波とを順次合成することにより発音を行なうモードである。すなわち、所望の波形データは、CPU10等のリアルタイム演算により、基本波と、その第n次高調波とを順次求めて加算することにより求められる。
・波形メモリ読出モード
この波形メモリ読出モードは、いわゆる波形メモリ読み出し方式により発音を行なうモードである。すなわち、CPU10等は、まず、楽音発生に先だって、発生すべき音色の基本波形を示す波形データを複数、RAM20等上にロードしておき、次に、楽音発生の指示があったならば、指定された音色の波形データを、指定された音高になるように、アドレス操作して読み出すとともに、指定された音の大きさとなるように、演算処理して求める。
なお、波形メモリ読出モードでは、主に、RAM(ROM)からの波形読み出し処理であるため、比較的性能が低いCPU等でも楽音発生することが可能である。すなわち、上記FMモードや高調波合成モードの演算処理よりもCPU10の負荷が軽くて済む。しかし、RAMを波形メモリとして使用しなければならないため、必然的にRAM13、20により構成されるメモリ領域を圧迫する。あるいは多くの容量を必要とする。このため、装備されたRAMの総容量や、CPUのアドレス領域の程度によっては、なるべくならば、波形メモリ読出モードは使用したくない、という背景がある。
・物理モデリング合成モード
この物理モデリング合成モードは、楽器における発音メカニズム、特に空気の流れを電気的モデルによりシミュレートして、楽音を合成するモードである。すなわち、所望の波形データは、CPU10等によって構築された電気的モデルによりリアルタイム演算で求められる。なお、かかるモデルによる楽音合成アルゴリズムについては、例えば、特開昭63−40199号公報などに開示されている。
【0021】
▲2▼ 各種音源デバイス使用モード
各種音源デバイス使用モードとは、楽音合成のための特別なハードウェア、例えば音源デバイス22などを用いて発音処理を行なうことを指定するモードである。このため、各種音源デバイス使用モードは、対応するハードウェアたる音源デバイス22の搭載を前提としている。
なお、音源デバイス22等は、波形データを、上述のFMモードや波形メモリ読出モードなどにより作成・生成する。ただし、音源デバイス22等がいかなる方式によって波形データを作成・生成するについては、音源デバイス22等の固有の問題であり、本願は、音源デバイス22等の発音方式までも制御するものではないので、その説明については省略する。
【0022】
1−1−2:割当方式の指定
さて、本実施形態は、CPU合成モードあるいは各種音源デバイス使用モードのいずれのモードにおいても、波形合成(発音)のためのチャンネルを複数有し、1つの音色を生成するために1つのチャンネルを割り当てて、各チャンネルで音色を生成することによって、複数音色を同時に発音することができるようになっている。
また、本実施形態では、CPU10によっても、音源デバイス22によっても波形合成することができるから、ある音色の発音指示があった場合に、どちらで波形合成するかが重要な問題となる。
そこで、この割当方式の指定するモードによって、発音指示があった場合に、どちらで波形合成するかを定めるようにしている。
・CPU優先モード
このCPU優先モードは、波形合成をCPU合成モードにより優先的に行なうモードである。ただし、CPU10等の能力が低いと、波形合成できるチャンネル数が限られることから、CPU10等の処理能力を超える分の波形合成については、各種音源デバイス使用モードにより行なわれる。
・各種音源デバイス優先モード
この各種音源デバイス優先モードは、波形合成を各種音源デバイス使用モードにより優先的に行なうモードである。ただし、各種音源デバイス22等の能力が低いと、波形合成できるチャンネル数が限られることから、各種音源デバイス22等の処理能力を超える分の波形合成については、CPU合成モードにより行なわれる。
・手動設定モード
この手動モードは、波形合成をどの発音方式のモードにより行なうかを、さらに、CPU合成モードである場合には、どのモードにより波形合成すべきかを、ユーザによって手動で指定するモードである。
・強制設定モード
この強制設定モードは、波形合成をどのモードにより行なうかを、例えば、同時起動する他のアプリケーションプログラム等によってそれぞれユーザの意思とは関係なく指定されるモードである。
【0023】
1−2:RAMの状態
次に、RAM13(20)におけるメモリマップについて説明する。本発明に適用される楽音発生装置の構成は、図1に示すように、一般的なパソコンと大差はない。逆に言えば、一般的なパソコンが、(後述する動作を実行することが前提となるが)そのまま楽音合成装置に成り得るのである。
したがって、この楽音合成装置におけるRAM13(20)のメモリ内容も、一般的なパソコンのそれと大差はない。すなわち、RAM13(20)は、図6に示すような領域に分けられる。この図において、OS領域は、パソコンと同等のオペレーティングシステムが占有する領域であり、波形合成プログラム領域とは、楽音発生を行なって楽音波形を合成するための波形合成プログラムが占有する領域であり、アプリケーションプログラム領域(1)〜(n)は、それぞれ波形合成プログラム以外のアプリケーションプログラムが占有する領域であり、同時起動された分、領域が発生する。また、各種データ領域は、演奏曲のデータ等が記憶される領域であり、領域WAVEは、波形メモリ読み出し方式により発音を行なう場合に、波形データが複数ロードされる領域である。
【0024】
2:動作
次に、本実施形態に係る楽音発生装置の動作について説明する。この楽音合成装置による楽音の発生は、パソコンのアプリケーションプログラムである波形合成プログラムを実行することにより行なわれる。あるいは、この波形合成プログラムをOSの一部として組み込んで、起動すると自動的に常駐すること等により行なわれる。
ここで、一連の処理過程において、波形合成プログラムがどの位置・地位で実行されるかは、OSの設定環境や、ユーザの操作設定、同時起動するアプリケーションプログラムの数、動作状況などによって異なるが、ここでは説明の便宜上、波形合成プログラムが、同時起動するアプリケーションプログラム(1)と(n)との間で実行されるものとする。
【0025】
まず、この楽音発生装置の電源が投入あるいはリセットされると、図7に示すCPUシステム処理が実行され、そのステップS1において、各種レジスタやフラグのセット、リセット等の初期設定処理が実行され、次に、ステップS2において、OSのシステム管理処理が実行される。そして、ステップS3〜S5までの各ステップにおいて、アプリケーションプログラム(1)、波形合成プログラム、およびアプリケーションプログラム(n)がそれぞれ実行される。ここで、波形合成プログラムは、詳細については後述するが、初回に実行される場合を除き、1回起動する毎に、楽音の波形データが1サンプル分だけ生成される処理である。また、アプリケーションプログラム(1)や(n)は、波形合成プログラム以外の処理であり、それは、波形合成プログラムに関与する処理であっても、全く別の処理であっても良い。ステップS5の処理の後、処理手順は、ステップS2に再び戻る。
【0026】
以降、起動しているアプリケーションプログラムに変更なければ、ステップS2〜S5のループ処理が繰り返し実行される。
また、起動しているアプリケーションプログラムが変更があれば、その変更がステップS2におけるシステム管理処理により検出される。そして、その変更が終了であれば、当該アプリケーションプログラムを実行するステップが通過する一方、変更が開始であれば、当該アプリケーションプログラムを実行するステップがループ処理内に新たに追加される形でループ処理が繰り返し実行される。
【0027】
したがって、ループ処理の実行周期は、他のアプリケーションプログラムの起動状態やシステムの状況等により変化する。一方、起動しているアプリケーションプログラムの変更に拘わらず、ループ処理が1巡する毎に楽音の波形データが1サンプルだけ生成され、ループ処理の繰り返し実行により楽音の波形データが連続的に生成される。このため、生成される楽音の波形データを単純にアナログ変換すると、サンプリング周期が一定しない状況下であるため、発生楽音にジッタが生じてしまう。そこで、前述したように図示はしないが、D/Aコンバータ23の前段にデータバッファを設けて、生成した楽音の波形データを、一旦蓄えた後、サンプリング周期fsで読み出す構成としたのである。
【0028】
なお、楽音発生装置による楽音発生が固定プログラムで実行される場合、具体的には、楽音発生装置がパソコンではなく、電子楽器単体あるいは音源モジュール、その他楽音発生機能を含む所定の機能を持ったシステムとして動作するような場合には、ループ処理の実行周期を変動しないように構成することが可能となり、このような場合、ループ処理は一定間隔で実行される。この間隔を、設定されるサンプリング周波数fsの逆数であるサンプリング周期に一致させれば、データバッファは不要となるので都合が良い。
【0029】
2−1:波形合成プログラム
次に、図7におけるステップS4で実行される波形合成プログラムについて図8〜図11を参照して説明する。この波形合成プログラムは、所定の操作によりストレージユニット15からロードされることにより実行される。
【0030】
まず、図8に示すステップSa1では、楽音発生における動作モードの設定と、実行時のハードウェア構成とがチェックされる。ハードウェア構成については、上述した方法等によりオプション品が搭載されているか否かがチェックされる。また、動作モードの設定については、図5に示すように、発音方式の指定と割当方式の指定との双方が設定される。
なお、動作モードの設定については、この波形合成プログラムの実行前に、他のアプリーケーションプログラムが実行されていれば、当該プログラムの実行によって強制モードに設定される場合もあるし、また、発音方式をどのモードにするか、割当方式をどのモードにするかを、ユーザに入力画面を表示して、この入力により設定される場合もある。さらに、ハードウェア構成のチェックにより、各種音源デバイスが認識されたならば、自動的に、CPU優先モードあるいは各種音源デバイス優先モードに設定するとしても良い。すなわち、ステップSa1における動作モードの設定とは、この波形合成プログラムを起動するにあたり、動作モードを確認的に認識するための処理である。
【0031】
次に、ステップSa2では、波形サンプルロード処理が実行される。かかる波形サンプルロード処理は、詳細については後述するが、波形メモリ読出により波形サンプルを用いる場合、その波形サンプルデータをRAM13(20)における領域WAVEに転送する処理である。
この後、ステップSa3では、フラグSETFLGが「1」であるか否かが判別される。ここで、フラグSETFLGは、初期状態では「0」であり、後述するステップSa21によりサンプリング周波数fsが設定された場合、あるいは波形予備演算モードで波形メモリ読出モードが指定される場合には「1」となるものである。かかるフラグSETFLGが「1」であれば、処理手順が次のステップSa4に進む一方、「0」であれば、ステップSa5にスキップする。
【0032】
なお、この波形合成プログラムが、図7に示すループ処理において初めて実行される場合、フラグSETFLGは「0」であるので、処理手順は無条件にステップSa5にスキップするが、説明の便宜上、ステップSa4の処理についても説明する。
ステップSa4では、発音をすべてCPU合成モードにより行なうか否かが判別される。あるいは、ステップSa1におけるハードウエア構成のチェックにより、各種音源デバイスが認識されたか否かを判別するとしても良い。要は、各種音源デバイスを用いて波形合成を行なう可能性があれば、判別結果を「No」とする条件分岐が行なわれる。
【0033】
ステップSa5では、フラグENBLFLGが「1」でないか否かにより、非動作可能状態であるか否かが判別される。ここで、非動作可能状態とは、換言すれば、サンプリング周波数fsが設定されておらず、あるいは波形予備演算モードが指定されないで、CPU合成モードによる発音処理の準備が整っていない状態をいう。
なお、この波形合成プログラムが、図7に示すループ処理において初めて実行される場合、フラグENBLFLGは「0」であるので、すなわち非動作可能状態であるので、処理手順がステップSa11に分岐するが、説明の便宜上、先に、フラグENBLFLGが「1」である動作可能状態である場合について説明する。この動作可能状態とは、逆説的に、CPUによる波形合成処理の準備がすでに整っている状態をいう。この状態となっている場合、手順はステップSa6に進んで発音情報処理が行なわれ、次に、ステップSa7においてCPU波形発生コマンドの有無が判別される。ここで、CPU波形発生コマンドとは、CPU合成モードにおいて、発音開始を指示するキーオンが、鍵盤情報KBDや、MIDI情報、各種I/Fを介した演奏情報等により発生したことをいう。
そして、ステップSa7においてCPU波形発生コマンドが検出されると、当該コマンドに応じた処理がステップSa8において行なわれる。すなわち、当該コマンドを満足させる波形データが、CPU合成モードのうちいずれかのモードにより指定された方式で生成され、バス12を介してD/Aコンバータ23に供給される。これにより、当該波形データに基づく発音が行なわれることとなる。なお、CPU波形発生コマンドには、広義には、消音を指示するキーオフなども含むが、これらは、コマンドに応じて、リリース波形を生成させたり、波形データの生成を終了するなど、発音の終了に関する処理をすれば良いが、ここでは説明を省略する。
また、ステップSa7において、CPU波形発生コマンドが検出されなければ、なにも処理を行なう必要はないので、ステップSa8の発音演算処理がスキップされる。
ステップSa9では、この波形合成プログラムを終了する旨の操作がユーザ等により指定されたか否かが判別される。もし、指定されていないのであれば、来たるべき次のCPU波形発生コマンドの発生に備えるため、直ちに手順が戻る(リターンする)一方、指定されているのであれば、プログラム終了するための処理が行なわれて、例えばステップSa10においてフラグSETFLGを「0」にクリアする処理が実行されて、この波形合成プログラムが終了する。
【0034】
さて、この波形合成プログラムが、図7に示すループ処理において初めて実行される場合、フラグENBLFLGは「0」であるので、ステップSa11において、動作モードが優先モードすなわちCPU優先モードあるいは各種音源デバイス優先モードであるかが否かが判別される。
もし、動作モードが手動モードあるいは強制モードである場合、この判別結果は「No」となって、処理手順がステップSa12に進み、フラグENBLFLG、フラグDACENBL、およびフラグSETFLGにそれぞれ「1」がセットされて、処理手順が戻る。ここで、フラグDACENBLは、「1」になると、D/Aコンバータ23の出力動作を許可するものである。したがって、次回、この波形合成プログラムが実行されて、各種音源デバイスが使用される場合には、ステップSa3の判別結果が「Yes」、Sa4の判別結果が「No」となるので、図11に示す処理が実行され、また、CPUのみによる波形合成を行なう場合には、ステップSa6〜Sa10の処理が実行されることとなる。
【0035】
一方、ステップSa11において、動作モードが優先モードである場合、処理手順は、図9に示すステップSa13に進む。なお、ステップSa13〜Sa27の処理は、この波形合成プログラムが初回に起動されたときに実行される可能性があり、CPUにより波形合成を行なう場合に、そのサンプリング周波数fsを設定する処理である。
まず、ステップSa13では、確認的にフラグENBLFLGが「0」に、フラグBUSYが「1」に、フラグDACENBLが「0」に、それぞれセットされる。ここで、フラグBUSYとは、後述するタイマー処理においてアップカウントを許可するものである。また、フラグDACENBLを「0」にセットするのは、後述する波形サンプル発生演算において、D/Aコンバータ23の出力動作を禁止して、当該波形サンプルに基づく発音を防止するためである。
ステップSa13の後には、ステップSa14において、レジスタSCOUNTおよびレジスタTCOUNTがそれぞれ「0」にリセットされる。ここで、レジスタSCOUNTの内容は、次の波形サンプル発生演算の処理回数を示し、また、レジスタTCOUNTは、フラグBUSYが「1」であるときに、後述するタイマー処理により「1」ずつインクリメントされるものであるため、その内容は、波形サンプル発生演算をm回だけ発生するのに要した時間内において、タイマー処理の起動回数を示すことになる。
【0036】
次に、ステップSa15においては、所定の波形サンプル発生演算処理が実行されて1サンプルあたりに必要な波形サンプル(データ)が生成される。なお、このステップSa15の詳細処理については後述する。そして、ステップSa16では、波形サンプル発生演算処理が1回実行されたことに対応してレジスタSCOUNTが「1」だけインクリメントされる。そして、ステップSa17においてレジスタSCOUNTが「m」となったか否かが判別され、判別結果が「No」であれば、手順がステップSa15に戻る一方、判別結果が「Yes」であれば、手順が図10に示すステップSa13に進む。これにより、波形サンプル発生演算の処理回数がm回となるまで、ステップSa15、16の処理が繰り返し行なわれることとなる。
【0037】
次に図10に示すステップSa18においては、フラグBUSYが「0」にセットされて、タイマーのアップカウントが禁止される(タイマーストップ処理)。そして、次のステップSa19では、次式(1)により周波数Fsが求められる。
Fs=(m・margin)/(TCOUNT・Tt)……(1)
この式において、marginは、CPU10等の処理能力を考慮して、演算処理に余裕を持たせるための「1」以下の係数である。また、前述のように、TCOUNTは、波形サンプル発生演算をm回だけ実行するのに要した時間内におけるタイマー処理の起動回数を示し、Ttは、タイマー処理の起動周期であるから、TCOUNTとTtとの積は、波形サンプル発生演算をm回だけ実行するのに要した時間を示すことになる。
結局、式(1)により求められる周波数Fsは、波形サンプルの発生周波数であって、定数marginにより、そのハードウェア構成の処理能力を考慮した周波数を示すことになる。
【0038】
そして、ステップSa20では、求められた周波数Fsが「32kHz」以上であるか否かが判別される。なお、この「32kHz」という値は、発生する楽音の品質が最低限確保できるか否かを念頭において設定されている。したがって、この判別結果が「Yes」であるならば、本実施形態のCPU能力によっては、最低限以上の楽音品質を確保できると判断し、手順がステップSa21に進む。このステップSa21においては、「32kHz」、「44.1kHz」、「48kHz」、「50kHz」のうち、求めた周波数Fsに対し内輪で最も近い周波数が、本実施形態におけるサンプリング周波数fsとして設定される。例えば、求めた周波数Fsが「47kHz」であるならば、サンプリング周波数fsは、当該周波数「47kHz」よりも低いもののうち、最も高い「44.1kHz」に設定される。なお、内輪とした理由は、処理能力以上にサンプリング周波数を高く設定したのでは、定数marginを用いて余裕を持たせた意味がなくなるからである。
【0039】
ステップSa21の後には、ステップSa22において、フラグDACENBL、フラグENBLFLG、およびフラグSETFLGがそれぞれ「1」にセットされて手順が戻る。これにより、D/Aコンバータ23の出力動作が許可され、そして、動作可能状態とされ、さらに、サンプリング周波数fsがすでに設定されたことが示されるようになる。
なお、このようにして動作可能状態となる結果、次回、波形合成プログラムが実行されると、各種音源デバイスを用いて波形合成するのであれば、ステップSa4の判別結果は「No」となって、図11に示す処理によって発音処理が実行され、また、それ以外の、CPU10等のみ用いて波形合成するのであれば、ステップSa4の判別結果は「Yes」、ステップSa5の判別結果は「No」となってとなって、ステップSa6〜Sa8により発音処理が実行されることとなる。
【0040】
一方、図10においてステップSa20の判別結果が「No」であるならば、本実施形態のCPU10等の処理能力によっては、最低限の楽音品質を確保できないと判断し、手順がステップSa23に分岐する。ステップSa23では、最低限の楽音品質を確保できない旨がアラーム等によりユーザに告知されるとともに、波形予備演算モードの指定イベントがチェックされる。ここで、波形予備演算モードとは、本来的には、動作モードがCPU合成モードのうちの波形メモリ読出モード以外のモードが指定されていたが、指定されたモードでは、最低限の楽音品質を確保できないので、動作モードを波形読出モードに切り換えることを指示するモードをいう。
【0041】
ステップSa24では、この波形予備演算モードが指定されたか否かが判断される。指定されたならば、ステップSa25において、指定された演算モード(CPU合成モードのうち波形メモリ読出モード以外のモードであって、指定されたモード)の演算により波形サンプルを求めてRAM13(20)に予め記憶するとともに、実際に発音を実行する場合には、記憶した波形サンプルをサンプリング周波数「32kHz」で読み出すことにより、発音を行うモードが自動的に指定される。これにより、実質的に波形メモリ読出モードによる波形合成が行われることになるので、低い性能のCPUでも最低限の品質を発生楽音に確保することができる。
この後、ステップSa22の処理が実行されて、動作可能状態等に設定された後、手順が戻る。
一方、ステップSa24において波形予備演算モードが指定されないと、手順がステップSa26に進み、波形合成プログラムの終了が指令されたか否かが判別される。指令されたならば、プログラム終了するための処理が行われて、例えばステップSa27においてフラグSETFLGを「0」にクリアする処理が実行されて、この波形合成プログラムが終了する。
これにより、求めた周波数Fsが「32kHz」よりも低ければ、ステップSa23、24、26により、波形予備演算処理モードが指定されるか、あるいは、プログラムを終了する旨の指令等の操作がされない限り、アラームが鳴り続けるようになっている。
【0042】
こうして、CPU10等による波形合成が行なわれる場合には、サンプリング周波数fsが、当該CPUの性能に対し最適化されて設定される。しかも、この場合、当該CPU等の性能が低い場合には、CPUへの負担を減らした波形メモリ読出方式により楽音合成を行なうように設定される。
【0043】
ところで、図8におけるステップSa4において、各種音源デバイスを用いて波形合成を行なう可能性があると判別されると、手順が図11に示すステップSa28に進行する。ステップSa28では、フラグDACENBLに「1」がセットされ、D/Aコンバータ23の出力動作が許可される。この後ステップSa29において、プログラム終了の指示がされているか否かが判別され、されていれば、ステップSa30において、プログラム終了するための処理が行なわれて、例えばステップSa31においてフラグSETFLGを「0」にクリアする処理が実行されて、この波形合成プログラムが終了する。一方、ステップSa29において、プログラム終了の指示がされていないと判別されれば、ステップSa32において、さらに、動作モードが各種音源デバイス使用モードであるか否かが判別され、されていなければ手順が戻る。
【0044】
また、ステップSa32において、動作モードが各種音源デバイス使用モードであると判別されると、さらに、ステップSa33において、選択された動作モードに対応するハードウェアが存在するかが判別される。ここで、「選択」には、ステップSa1におけるハードウェアチェックにより認識、という意味も含む(図においてカッコ書の意味)。存在すれば、ステップSa34において選択されたモードに対応するハードウェアを含む発音処理が実行される一方、存在しなければ、ステップSa35においてその旨を示すアラームを発生させる処理と、現時点におけるハードウェア環境での発音処理が行なわれる。そして、ステップSa34あるいはSa35の処理の後に、手順は戻る。
なお、選択されたハードウェアを含む発音処理の詳細については、後述する。
【0045】
2−1−1:波形サンプルロード処理
ここで、上述したステップSa2(図8参照)において実行される波形サンプルロード処理について説明する。この波形サンプルロード処理では、まず、図12に示すステップSb1において、MIDIサンプルダンプがマルチI/Oポート14により受信されたか否かが判別される。ここで、MIDIサンプルダンプとは、MIDI規格におけるサンプリングデータのことであり、波形メモリ読出モードで使用されるものである。
もし、受信されたならば、ステップSb2において、受信されたデータがRAM13(20)の領域WAVEに転送されるサンプル受信処理が実行される。そして、ステップSb3の判別によって、すべてのデータの受信が完了するまで、ステップSb2のサンプル受信処理が連続して実行される。そして、すべてのデータの受信が完了すると、ステップSb3の判別結果は「Yes」となって、手順は戻る。
一方、ステップSb1の判別結果が「No」である場合、今度は、ステップSb4において、波形データが各種インターフェイスを介して転送されたか否かが判別される。もし、受信されたのならば、ステップSb2、3において、当該波形データは、MIDIサンプルダンプと同様に、RAM13(20)の領域WAVEに転送される。
また、ステップSb1およびSb4の判別結果がいずれも「No」である場合、ステップSb5において、ストレージユニット15に対する読取イベント、すなわち、何らかのデータを読み出すリクエストが発生したか否かが検出される。発生していないのであれば、以降は何ら処理を行なう必要はないので、この波形サンプルロード処理は直ちに終了して、手順が戻る。一方、読取イベントが発生したのであれば、そのイベントによりストレージユニット15から読み出されるデータがステップSb6においてチェックされる。そして、ステップSb7において、読み出されたデータが波形データであるか否かが判別される。
そして、波形データでない場合には、以降は何ら処理を行なう必要はないので、この波形サンプルロード処理は直ちに終了して、手順が戻る一方、波形データである場合には、ステップSb8において、読み出された波形データをRAM13(20)の領域WAVEに転送する波形データ読出転送処理が実行される。そして、ステップSb9の判別によって、すべてのデータの転送が完了するまで、ステップSb8の転送処理が連続して実行される。そして、すべてのデータの転送が完了すると、ステップSb9の判別結果は「Yes」となって、手順は戻る。
【0046】
このように、波形サンプルロード処理では、波形メモリ読出モードにおいて用いるサンプリングデータ(波形データ)が受信・読出されると、そのすべてがRAM13(20)の領域WAVEに転送されるようになっている。そして、CPU10等が、転送されたサンプリングデータを、波形メモリ読出モードにて処理することにより、波形合成が行なわれる。
上記したように、RAM13(20)等にロードされた波形を、例えば、音源デバイス22により発音するには、音源デバイス22に付随する波形メモリ25をRAMとして用い、ここにロードされた波形を再転送しなければならない。したがって、従来の音源デバイス等のハードウェアに依存した楽音発生装置では、当該ハードウェア側に、ロードされた波形を受け取るためのRAM等の一時記憶手段が必要であり、また、CPU側には、RAM13(20)等からの波形データ転送処理が必要であった。
しかし、本実施形態によれば、サンプリングデータをCPU10が統括するRAM13(20)にロードして、ロードしたデータにより発音を行なうので、専用ハードウェア側にサンプリングデータを一時記憶する手段を設けることも、CPU側でロードした波形データをさらにハードウエア側に再転送する処理も不要とすることができる。
したがって、システムのコスト削減や、波形データのロードが終了した時点から実際に発音可能状態となるまでの時間の短縮化を図ることができる。
【0047】
2−1−2:波形サンプル発生演算
次に、上述したステップSa15(図9参照)において実行される波形サンプル処理について説明する。この波形サンプル発生演算処理では、まず、図13に示すステップSc1において、コプロセッサ17の有無が検出される。本実施形態では有であるが、コプロセッサ17はオプション品なので無の場合もあり得る。なお、CPU10がコプロセッサ17に相当する演算ユニットを内蔵する場合には、特にコプロセッサ有無の検出判断処理は必要でなく、常に、コプロセッサ併用として処理を行なうようにしても良い。また、有であれば、ステップSc2において、CPU10とコプロセッサ17との併用による波形サンプル演算処理が実行される一方、無であれば、ステップSc3において、CPU10のみによる波形サンプル演算処理が実行される。そして、ステップSc2あるいはSc3の処理の後に、手順は戻る。
ここで、ステップSc2およびSc3の処理においては、コプロセッサ17を併用して演算処理を行なうか否かの点でのみ相違し、波形サンプル演算処理そのものについては同じである。そこで、ステップSc2およびSc3の処理については、ステップSc3の場合を例にとって説明する。
【0048】
2−1−2−1:CPUのみによる波形サンプル演算処理
まず、図14に示すステップSd1では、動作モードがCPU合成モードのうちのFMモードあるかが否かが判別される。FMモードであれば、ステップSd2において、1サンプルにおいて必要なチャンネル数だけの波形サンプルが、CPU10のFM合成方式により演算されて求められる。すなわち、複数発音を行なう場合には、FMモードで波形合成すべき発音数分だけの波形サンプルが求められる。
この場合、CPU10は、各音の音高を低いピッチから高いピッチまでの種々の組み合わせて演算を行なったり、発音処理と同時に行なう他の処理(例えばグラフィック処理等)を行なって、負荷を最も高くした状態で演算を行なう。
【0049】
また、ステップSd1において、FMモードでないと判別されれば、ステップSd3において、さらに、動作モードがCPU合成モードのうちの波形メモリ読出モードであるかが否かが判別される。波形メモリ読出モードであれば、1サンプルにおいて必要な数だけの波形データが、波形メモリより読み出される。すなわち、複数発音を行なう場合には、波形メモリ読出モードで波形合成すべき発音数分だけの波形データの読み出しが行なわれる。
なお、この波形メモリ読出モードでのデータ転送は、CPU10ではなくDMAC19により行なわれる。また、この際に読み出される波形データは、RAM13(20)の領域WAVE(図6参照)にロードされているもの、あるいはROM11に格納されているものである。
【0050】
さらに、ステップSd3において波形メモリ読出モードでないと判別されれば、ステップSd5において、さらに、動作モードがCPU合成モードのうちの高調波合成モードであるかが否かが判別される。高調波合成モードであれば、ステップSd6において、1サンプルにおいて必要な数だけの波形サンプルが、CPU10の高調波合成方式により演算されて求められる。すなわち、複数発音を行なう場合には、高調波合成モードで波形合成すべき発音数分だけの波形サンプルが求められる。
この場合、CPU10は、各音の音高を低いピッチから高いピッチまでの種々の組み合わせて演算を行なったり、負荷を最も高くした状態で演算を行なう点は、FMモードと同様である。
【0051】
そして、ステップSd5において高調波合成モードでないと判別されれば、ステップSd7において、さらに、動作モードがCPU合成モードのうち物理モデリング合成モードであるかが否かが判別される。物理モデリング合成モードであれば、ステップSd8において、1サンプルにおいて必要な数だけの波形サンプルが、CPU10によって物理モデルが構築されて求められる。すなわち、複数発音を行なう場合には、物理モデリング合成モードで波形合成すべき発音数分だけの波形サンプルが求められる。
なお、ステップSd7において、物理モデリング合成モードでないと判別されれば、動作モードが本実施形態での想定範囲外なので、ステップSd9においてその旨を知らせるアラーム処理及びその他の適切な処理が行なわれる。
そして、ステップSd2、4、6、8あるいは9の処理の後には、手順が戻り、次のステップSa16(図9参照)の処理が実行される。
【0052】
2−1−2−2:コプロセッサ併用による波形サンプル演算処理 図13におけるステップSc12のコプロセッサ併用による波形サンプル演算処理については、図14の各演算処理が、CPU10とともにコプロセッサ17の併用によって行なわれ、演算処理の高速化が図られる。ただし、基本的な演算の手順等はCPUのみによる波形サンプル演算処理で行なう内容と実質的に同等である。このため、詳細な説明については省略する。
【0053】
このように、ステップSa15における波形サンプル発生演算においては、発生楽音の品質に最も影響を与える処理が、CPU合成モードの各モードに対応して行なわれる。すなわち、FMモード、高調波合成モード、および物理モデリング合成モードにおいては、同時発音数と、波形データの演算に要する時間とが主に処理時間に影響を与える因子となるため、その演算能力を見極めるべく、1サンプルあたりの波形データを実際の演算処理により求めるのである。そして、この演算処理を、ステップSa15〜Sa17の処理によりmサンプル分行ない、さらに後述のタイマー処理に基づいてmサンプル分の演算処理に要した時間を求め、この結果にしたがって逆に、本構成の処理能力に対して最適なサンプリング周波数fsをステップSa21により設定しているのである。
同様に、波形メモリ読出モードにおいては、同時発音数が処理時間に影響を与える因子となるため、その読出能力を見極めるべく、1サンプルあたりの波形データの読み出しを実際に行なうのである。そして、この読み出しを、ステップSa15〜Sa17の処理によりmサンプル分行ない、さらに後述のタイマー処理に基づいてmサンプルの読み出しに要した時間を求め、この結果にしたがって逆に、本構成の読出能力に対して最適なサンプリング周波数fsをステップSa21により設定しているのである。
【0054】
2−1−3:選択されたハードウェアを含む発音処理
次に、上述したステップSa34(図11参照)において実行される、選択されたハードウェアを含む発音処理について説明する。この発音処理は、全チャンネルの発音をCPU合成モードのみにより行なう場合以外に実行される処理であって、各種音源デバイスによる発音を何らかの形で行なう場合に、(割当)動作モードに応じた発音を行なうための処理である。
この発音処理では、まず、図15におけるステップSe1において、イベント検出管理が行なわれる。ここで、イベントとは、発音開始を指示するキーオンが、鍵盤情報KBDや、MIDI情報、各種I/Fを介した演奏情報等により発生したことをいい、ここでは、前述のCPU波形発生コマンドと異なり、CPU合成モードに限られず、各種音源デバイス使用モードのものも含める。したがって、このイベントが検出されたということは、キーオンの発生を意味するから、以下に示すように、発音に向けた処理が行なわれることとなる。
【0055】
まず、ステップSe2では、動作モードが各種音源デバイス優先モードであるか否かが判別される。この判別結果が「No」であるならば、処理手順が後述するステップSe11に分岐する一方、「Yes」であるならば、処理手順は次のステップSe3に進む。
【0056】
ステップSe3では、現時点における各種音源デバイスの発音状態や、イベントに対応する演奏情報等が、各種音源デバイスの発音条件に収まっているか否かが判別される。ここで、発音条件とは、色々考えられるが、本実施形態では、現時点において各種音源デバイスにより波形合成すべき(音色)数が、各種音源デバイス使用モードにより同時発音可能な発音数以内であるかを条件とする。すなわち、ステップSe3では、現時点において各種音源デバイスにより発音中のチャンネル(CH)数が各種音源デバイスにより同時発音可能なチャンネル数以下であるか否かが判別される。
【0057】
なお、発音条件としては、このほかに、次のようなものが考えられる。▲1▼検出されたイベントに係る演奏情報の音高が所定値以上であるか?(以下であるか?)▲2▼検出されたイベントに係る演奏情報のうち音色を指定する値が所定値以上であるか?(以下であるか?)▲3▼検出されたイベントに係る演奏情報のうち演奏パートを指定する値が所定値以上であるか?(以下であるか?)▲4▼検出されたイベントに対応するMIDI−CH等が所定値以上であるか?(以下か?)など、何らかのの演奏情報を示す値が所定値以上であるか(以下であるか)を基準とする発音条件が考えられる。
また、各種音源デバイスが、ある特定の音色を、FMモードや高調波合成モード等の演算により波形サンプルを生成して合成するように指定された場合には、この発音条件を満たさないとする構成としても良い(この構成については、別実施形態として後述する)。
【0058】
さて、このような発音条件を満たしていると判別されると、ステップSe4において、当該イベント(キーオン)による発音を行なうためのチャンネルが、現時点において各種音源デバイスで発音していないチャンネル(空きチャンネル)の中から1つ割り当てる発音割当処理が実行される。そして、ステップSe5において、割り当てられたチャンネルで、当該イベントに対応する楽音の発生を選択されたハードウェア(各種音源デバイス)で実際に行なう処理である、選択指定ハードウェアでの発音処理が実行される。
【0059】
一方、ステップSe3において発音条件を満たしていないと判別されると、ステップSe6において、さらにフラグENBLFLGが「1」であるか否かが判別される。この時点において、フラグENBLFLGが「1」であるということは、上述したステップSa13〜Sa25の処理が行なわれた後であり、CPU合成モードにおいて発音する場合のサンプリング周波数fsがすでに設定されている状態を示す。すなわち、CPU合成モードにより発音が可能である状態を示す。したがって、フラグENBLFLGが「1」であるために、ステップSe6の判別結果が「Yes」となる場合、ステップSe7において、各種音源デバイスの発音条件を満足しないイベントに対応する発音がCPU合成モードにより行なうように割り当てるCPU発音割当処理が実行される。
このCPU発音割当処理について詳細には、当該イベントに対応した波形サンプルを演算生成するための楽音波形発生割当コマンドを発生させる。かかる楽音波形発生割当コマンドは、CPUが実行すべき楽音の演算方法(CPU合成モードのいずれかのモード)、生成すべき音色、音高、タッチ、音量、割当チャンネルなどの情報のほかに、キーオン、キーオフなどの発音指示をも含んだものである。そして、このコマンドが有効である期間において、CPU10等は、後述するように、ステップSe10において、当該割当コマンドに対応する波形サンプルを生成する発音演算処理を実行する。
なお、楽音波形発生割当コマンドは、楽音サンプルを割込処理により生成するような場合にあっては、割込処理の起動・終了情報をも含んだものとなる。
【0060】
一方、ステップSe6において、フラグENBLFLGが「0」であるということは、CPU合成モードにより発音が可能でない状態を示す。したがって、この場合、ステップSe8において、各種音源デバイスに対してトランケート処理、詳細には、各種音源デバイスにおいて、発音が最も進行しているチャンネル、あるいは、発音開始が早くかつ最も音量が小さいチャンネルによる楽音を消音させて、強制的に空きチャンネルをつくる処理が行なわれる。なお、このトランケート処理は、ステップSe4の発音割当処理に含ませることも可能である。
そして、ステップSe4において、当該イベントが、消音させたチャンネルに割り当てられて、後は同様にステップSd4において、割り当てられたチャンネルにより、当該イベントに対応する楽音の発生が各種音源デバイスにより行なわれる。
なお、複数の音源デバイスが装着されるときは、ある音色を発音させるのに、異なる音源デバイスのチャンネルをそれぞれ割当てる場合もあり得る。
【0061】
ところで、ステップSe2において、各種音源デバイス優先モードでないと判別される場合、例えば、CPU優先モードである場合や、CPU合成モードと各種音源デバイス使用モードとを併用することを指定した手動モードである場合には、処理手順が図16におけるステップSe11に分岐する。
このステップSe11では、現時点におけるCPU10等による発音状態や、イベントに対応する演奏情報等が、CPU等の発音条件に収まっているか否かが判別される。ここでの発音条件とは、各種音源デバイスの発音条件(ステップSe3参照)と同様に色々考えられるが、本実施形態では、現時点においてCPU等により波形合成すべき(音色)数が、CPU合成モードにより同時発音可能な発音数以内であるかを条件とする。すなわち、ステップSe11では、現時点においてCPU10等により発音中のチャンネル(CH)数がCPU10等による同時発音可能なチャンネル数以下であるか否かが判別される。
【0062】
そして、このような発音条件を満たしていると判別されると、ステップSe12において、さらにフラグENBLFLGが「1」であるか否かが判別される。フラグENBLFLGが「1」であるということは、上述したように、CPU合成モードにより発音が可能である状態を示すので、ステップSe13において、CPU10等により行なうべき波形合成を、CPU10等により行なうように発音割当処理が行なわれて、処理手順は図15におけるステップSe9に進む。なお、ステップSe13におけるCPU発音割当処理の詳細については、すでに述べたステップSe7と同様なので、説明を省略する。
【0063】
一方、ステップSe11において、CPU10等の発音条件が満たされないと判別された場合、あるいは、ステップSe12において、CPU10等が発音可能状態でないと判別された場合には、当該イベントに対応する処理を各種音源デバイスで実行すべく、ステップSe14において、ステップSe4と同様に、各種音源デバイスに対して発音割当処理が実行される。そして、ステップSe15において、ステップSe5と同様に、選択指定ハードウェアでの発音処理が実行される。
【0064】
また、ステップSe7あるいはSe13によるCPU発音割当処理後、次のステップSe9および10により行なわれる。すなわち、ステップSe9においては、CPU発音割当処理によるCPU波形発生割当コマンドの有無が判別され、無の場合には直ちに処理手順が戻る一方、有の場合にはステップSe10において、当該CPU波形発生割当コマンドにしたがって波形サンプルを演算して求める処理が実行される。
【0065】
このように、各種音源デバイス優先モードである場合に、各種音源デバイスの発音条件を満たす分の発音処理がステップSe5にて各種音源デバイスにより行なわれる一方、満たさない分の発音処理がステップSe10にてCPU10等により行なわれることとなる。
反対に、各種音源デバイス優先モードでない場合には、CPU10等の発音条件を満たす分の発音処理がステップSe10にてCPU10等により行なわれる一方、満たさない分の発音処理がステップSe15にて各種音源デバイスにより行なわれることとなる。
すなわち、選択されたハードウェアでの発音処理においては、各種音源デバイス使用モードにおいて指定されるハードウェアの処理能力を超える場合に、その超えた分について、上述したCPU合成モードにより発音が行なわれるので、ハードウェアを増設することなく、当該ハードウェアにおける同時発音可能な発音数以上の発音が容易に行なうのが可能となる。
【0066】
2−1−4:タイマー処理
次にタイマー処理について説明する。このタイマー処理は、前述の波形合成プログラムの実行中に、所定周期Tt毎に実行される割込処理である。図17は、かかるタイマー処理の手順を示すフローチャートである。
まず、ステップSf1において、フラグBUSYが「1」であって、アップカウントが許可されているか否かが判別される。この判別結果が「No」であれば、手順はステップSf3にスキップし、「Yes」であれば、ステップSf2においてレジスタTCOUNTが「1」だけインクリメントされる。そして、ステップSf3では、他のタイマー処理が実行されて、このルーチンは終了する。
このように、タイマー処理では、フラグBUSYが「1」であれば、起動される毎に、レジスタTCOUNTが「1」だけインクリメントされる。フラグBUSYが「1」となるのは、ステップSa9〜Sa11のループ処理が実行されている期間に限られるから(ステップSa7、Sa12)、結局、レジスタTCOUNTの内容は、前述のように、当該ループ処理により波形データをmサンプル分だけ演算・読出するのに要した期間内に、タイマー処理が何回起動されたかを示すことになり、その際に要する経過時間は、TCOUNTとTtとの積により表わされることになる。
【0067】
2−1−5:本実施形態での具体的動作
図1に示した構成は、オプション品のすべて、すなわち、コプロセッサ17、DSP21および音源デバイス22のすべてを搭載している構成である。
したがって、この構成では、発音方式の指定、割当の方式についてすべての動作モードが使用可能である。この際、動作モードが各種音源デバイス優先モードである場合、各種音源デバイスの処理能力を上回る分の処理がCPU側に割り当てられて、CPU等がこれを処理するので、楽音発生専用ハードウェアたる各種音源デバイスの性能を超える楽音発生ができ、このため多様な音色を発生することができるのである。
さらに、本構成では、動作モードがCPU優先モードである場合にも、多様な音色を発生することができる。
しかも、サンプリング周波数fsは、システムの構成に応じて最適に設定されるので(ステップSa21)、楽音の品質が劣化するということもない。
【0068】
3:他の構成における具体的動作
本実施形態では、図1(図2)に示すフルオプションの構成を前提として説明したが、パソコンや電子楽器のようなCPUを用いたシステムのハードウェア構成は、オプション品の有無により千差万別である。また、上述した波形合成プログラムも、ハードウェア構成により指定可能な動作モードが異なる。そこで、図1に示す以外の構成では、波形合成プログラムがいかに動作するかについて、具体構成を挙げて簡単に説明する。
【0069】
3−1:オプションなし
図21に示すハードウェア構成は、図1に示す構成におけるオプション品のすべて、すなわち、コプロセッサ17、DSP21および音源デバイス22のすべてを搭載していない構成である。
したがって、この構成では、ステップSa4(図8参照)の判別結果が「Yes」となるため、各種音源デバイス使用モードは使用できず、CPU合成モードが使用可能である。しかし、コプロセッサ17もDSP21も搭載されていないので、CPU10単体の処理能力が極めて高くないと、波形データのリアルタイム演算が困難となる。このため、実際には、CPU合成モードのうちの波形メモリ読出モードのみが使用可能という場合もあり得る。
【0070】
3−2:コプロセッサのみ搭載
図22に示すハードウェア構成は、図1に示す構成におけるオプション品のうち、コプロセッサ17のみを搭載した構成である。
したがって、この構成でも、ステップSa4(図8参照)の判別結果が「Yes」となるため、各種音源デバイス使用モードは使用できず、CPU合成モードのみが使用可能である。ただ、コプロセッサ17が搭載されているので、実数演算処理を高速に行なうことが可能であるため、CPU合成モードの全モードが使用可能となる。
なお、この構成では、コプロセッサ17が搭載されているので、発音演算処理(ステップSa9)および波形サンプル発生演算(ステップSa15)は、コプロセッサ併用により行なわれる。
【0071】
3−3:コプロセッサ、DSP搭載(波形メモリ等なし)
図23に示すハードウェア構成は、図1に示す構成におけるオプション品のうち、コプロセッサ17およびDSP21を搭載した構成であり、DSP21は、波形データの高速演算を目的としている。
ここで、DSP21が各種音源デバイスに属すると考える立場をとると、2回目以降の起動ではステップSa4の判別結果が「No」となるため、各種音源デバイス使用モードが使用できる。ただし、DSP21は演算を行なうことを目的としているから、波形メモリ読出方式ではなく、各種の演算により波形データを生成することになる。
また、割当によってはCPU合成モードも可能であるが、この構成では、波形データの演算については可能であるが、DMAC19およびRAM20を有しないため、CPU合成モードのうち、波形メモリ読出モードは使用できず、波形データをリアルタイムに演算するFMモード、高調波合成モード、および物理モデリング合成モードが使用可能となる。
なお、この構成についても、コプロセッサ17が搭載されているので、発音演算処理(ステップSa9)および波形サンプル発生演算(ステップSa15)は、コプロセッサ併用により行なわれる。
【0072】
3−4:音源デバイスのみ
図24に示すハードウェア構成は、図1に示す構成におけるオプション品のうち、音源デバイスのみを搭載した構成である。
したがって、この構成では、2回目以降の起動ではステップSa4(図8参照)の判別結果が「No」となるため、各種音源デバイス使用モードが使用可能である。
また、割当によってはCPU合成モードも可能であるが、この構成では、波形データの演算については可能であるが、DMAC19およびRAM20を有しないため、波形メモリ読出モードが使用できないという場合もあり得る。また、コプロセッサ17も搭載されていないので、CPU10単体の処理能力が極めて高くないと、波形データのリアルタイム演算が困難である。このため、実際には、CPU合成モードの全モードが使用不可能となる場合もあり得る。
【0073】
4:他の実施形態
次に、上述した実施形態とは別の実施形態について説明する。
4−1:第2実施形態
まず、第2実施形態について説明する。
一般に、リズム系や、ドラム系のような撥音系の波形データを、FMや高調波合成等による演算によって求めても、雰囲気ある楽音の再生は困難とされる。
このため、音源デバイス22が備えられている場合であって、その音源デバイス22が波形メモリ読出方式以外のFM方式等により楽音の波形データを演算して求める構成である場合、当該音源デバイス22によって、撥音系の楽音を再生するのは適切とは言えない。また、このような音源デバイス22が備えられているので、CPU10等があえて波形メモリ読出モード以外の演算モードにより波形データを演算して求める必要性は乏しい。さらに、CPU10等にとってみれば、波形合成以外の処理をする必要もあることから、特にCPU10等の性能が低い場合には、なるべくなら、波形合成プログラムの実行に伴う負荷を減らしたいという事情もある。
したがって、このような場合、CPU10等が、音源デバイス22にとって不向きである撥音系の波形データを波形メモリ読出モードによって生成する一方、各種音源デバイスたる音源デバイス22がそれ以外の楽音の波形データを演算によって生成するようにすれば、CPU10等の側にとってみれば負荷を最小限とすることができるし、音源デバイス22にとってみれば不得意な発音をしなくて済み、両者にとって都合が良い。さらに、再生楽音の品質を高く保てるという利点もある。
この第2実施形態の目的は、まさにこの点にある。
【0074】
第2実施形態は、構成的には、図1、図24に示すように、音源デバイス22の装着を前提とする。また、その波形合成プログラムについては、選択されたハードウェアを含む発音処理(図15および16参照)を、図18に示す処理に差し替えた処理を行なうものである。すなわち、上述したステップSa34(図11参照)において実行される、選択されたハードウェアを含む発音処理については、図18に示す処理が行なわれる。このため、差し替える処理については説明し、他の事項については重複するのでその説明を省略する。
【0075】
この実施形態において、波形合成プログラムの処理手順が、ステップSa34に進むと、図18に示すような、選択されたハードウェアを含む発音処理が実行される。まず、ステップSg1では、ステップSe1と同様に、イベント検出管理が行なわれる。
次に、ステップSg2では、発音指定システムチェックが行なわれる。すなわち、発音すべき音色のそれぞれについて、CPU10等側で処理するか、あるいは各種音源デバイス側で処理するか、を割り当てる。ここで、かかる割当を何を基準にして行なうかについて説明する。
一般に、音源デバイスは、それ固有の音色配列を有しているため、音色番号を定めれば発音すべき音色は一意に決まる。したがって、撥音系の楽音が属する音色番号を予めピックアップしておき、イベントの検出された楽音の音色番号が、ピックアップされた音色番号に属する場合には、CPU10等側で処理すべしと設定し、それ以外の場合には、各種音源デバイスたる音源デバイス22等側で処理すべしと設定される。
【0076】
なお、本実施形態では、割当の基準を音色番号に拘泥すべきではなく、例えば、手動モードによって、ある音色についてはCPU側、またある音色については各種音源側というように、音色毎に処理側をそれぞれ設定しておくようにしても良い。また、第1実施形態のように、同時発音可能なチャンネル数により割り当てるようにしても良い。さらに、強制モードによって、他に実行しているプログラムにより強制的に割り当てることとしても良い。
【0077】
さて、各種音源デバイス側に割り当てられた音色については、ステップSg3において、ステップSe4(図15参照)と同様に、発音割当処理が行なわれて、各種音源デバイス側に空きチャンネルが設けられる。そして、ステップSg6において、検出されたイベントに対応する波形サンプルが、空きチャンネルにより実際に生成される。この場合の生成方法は、FMや高調波合成、物理モデリング合成のみならず、波形メモリ25の波形データを読み出すPCM、波形メモリ読出など、装着される音源デバイス22の特性に依存した種々の方式が考えられる。
【0078】
一方、CPU側に割り当てられた音色については、ステップSg5において、ステップSe7(図15参照)と同様に、CPU発音割当処理が行なわれて、検出されたイベントに対応するCPU波形発生割当コマンドが生成される。そして、かかるCPU波形発生割当コマンドが有の場合には、ステップSg6の判別結果が「Yes」となって、ステップSg7の発音演算処理が、当該割当コマンドに対応して波形サンプルを生成する発音演算処理が実行される。なお、この発音演算処理は、上述のようにCPU等の負担を減らす趣旨から、波形メモリ読出モードにより行なわれる。一方、CPU波形発生割当コマンドが無の場合には、ステップSg6の判別結果が「No」となって、手順が戻る。
【0079】
この第2実施形態によれば、ある音色をCPU側に、また、ある音色については各種音源デバイス側に、それぞれ任意に処理を割り当てることができるので、CPUおよび各種音源デバイスの処理負担を適切に分けることができ、さらに、再生楽音の品質を維持したまま、多様化を図ることができる。
【0080】
4−2:第3実施形態
次に、第3実施形態について説明する。上述した第1実施形態および第2実施形態では、1つの音色に関する発音処理を、CPU側あるいは各種音源デバイス側のいずれかのチャンネルにより行なう構成であったが、ある音色に関する発音処理を、CPU側および各種音源デバイス側の双方のチャンネルにより行なう構成であっても良い。特にこの場合、CPU側では高調波合成により、また、各種音源デバイス側では高調波合成以外の例えばFM合成により、それぞれ波形データを演算して求めるようにすれば、同じ音色を生成するにも、異なる演算方法で求められるので、結果として異なった音色で発音されることになる。このため、音色の多様化に大きく寄与することが考えられる。
この第3実施形態の目的は、まさにこの点にある。
【0081】
第3実施形態は、第2実施形態と同様に、構成的には、図1、図24に示すように、音源デバイス22の装着を前提とする。また、その波形合成プログラムについては、選択されたハードウェアを含む発音処理(図15および16参照)を、図19に示す処理に差し替えた処理を行なうものである。すなわち、上述したステップSa34(図11参照)において実行される、選択されたハードウェアを含む発音処理については、図19に示す処理が行なわれる。このため、差し替える処理については説明し、他の事項については重複するのでその説明を省略する。
【0082】
この実施形態において、波形合成プログラムの処理手順が、ステップSa34に進むと、図19に示すような、選択されたハードウェアを含む発音処理が実行される。まず、ステップSh1では、ステップSe1、Sg1と同様に、イベント検出管理が行なわれる。
次に、ステップSh2では、発音指定システムチェックが行なわれる。すなわち、発音すべき音色のそれぞれについて、CPU10等側で処理するか、各種音源デバイス側で処理するか、あるいは双方で処理するかを割り当てる。ここで、割当の基準は、第2実施形態と同様に、音色番号や、同時発音可能なチャンネル数、手動モードによる設定や、強制モードによる設定など種々考えられる。
【0083】
さて、各種音源デバイス側に割り当てられた音色については、ステップSh3において、ステップSe4(図15参照)と同様に、発音割当処理が行なわれて、各種音源デバイス側に空きチャンネルが設けられる。そして、ステップSh4において、検出されたイベントに対応する波形サンプルが、空きチャンネルにより実際に生成される。この場合の生成方法は、FMや高調波合成、物理モデリング合成のみならず、波形メモリ25の波形データを読み出すPCM、波形メモリ読出など、装着される音源デバイス22の特性に依存した種々の方式が考えられる。
一方、CPU側に割り当てられた音色については、ステップSh5において、CPU発音割当処理が行なわれて、検出されたイベントに対応するCPU波形発生割当コマンドが生成される。この場合のCPU波形発生割当コマンドには、演算方式を指定する情報も含まれる。
また、各種音源デバイス側およびCPU側の双方に割り当てられた音色については、各種音源デバイス側では、ステップSh3およびSh4の処理が行なわれ、CPU側では、ステップSh5の処理が行なわれる。すなわち、双方並列して行なわれる。
【0084】
そして、かかるCPU波形発生割当コマンドが有の場合には、ステップSh6の判別結果が「Yes」となって、ステップSh7の発音演算処理が、当該割当コマンドに対応して波形サンプルを生成する発音演算処理が実行される。なお、この場合の発音演算処理は、第2実施形態の発音演算処理とは異なり、波形メモリ読出のみならずFMや高調波合成、物理モデリング合成など種々の方式が考えられる。一方、CPU波形発生割当コマンドが無の場合には、ステップSg6の判別結果が「No」となって、手順が戻る。
【0085】
この第3実施形態では、ある音色をCPU側と各種音源デバイス側とで、両者に割り当てられることができるので、データ的には1つの音色が、実質的に異なる2つの音色で発生することができる。したがって、第3実施形態によれば、この意味で発生楽音の多様化を図ることができる。
【0086】
4−3:第4実施形態
次に、第4実施形態について説明する。上述した実施形態では、いずれも、発音割当の方式なる動作モードについて規定していたが、本願はこれに限られず、もっとシンプルに、各種音源デバイスが搭載されていて、当該各種音源デバイスに割り当てられるイベントが検出されれば、その処理を各種音源デバイスに行なわせる構成としても良い。その場合の構成がまさにこの第4実施形態である。
【0087】
第4実施形態は、第2および第3実施形態と同様に、構成的には、図1、図24に示すように、音源デバイス22の装着を前提とする。また、その波形合成プログラムについては、選択されたハードウェアを含む発音処理(図15および16参照)を、図20に示す処理に差し替えた処理を行なうものである。すなわち、上述したステップSa34(図11参照)において実行される、選択されたハードウェアを含む発音処理については、図20に示す処理が行なわれる。このため、差し替える処理については説明し、他の事項については重複するのでその説明を省略する。
【0088】
この実施形態において、波形合成プログラムの処理手順が、ステップSa34に進むと、図20に示すような、選択されたハードウェアを含む発音処理が実行される。まず、図示しないが、ステップSe1、Sg1と同様に、イベント検出管理が行なわれる。
次に、ステップSi1では、発音割当処理が行なわれて、各種音源デバイス側に空きチャンネルが設けられる。そして、ステップSi2において、検出されたイベントに対応する波形サンプルが、空きチャンネルにより実際に生成される。この場合の生成方法は、FMや高調波合成、物理モデリング合成のみならず、波形メモリ25の波形データを読み出すPCM、波形メモリ読出など、装着される音源デバイス22の特性に依存した種々の方式が考えられる。この後、処理手順は戻る。
【0089】
この第4実施形態によれば、各種音源デバイスが搭載されていて、当該各種音源デバイスに割り当てられるイベントが検出されれば、その処理を当該各種音源デバイスに行なわせることができる。
【0090】
4−4:その他
上述した実施形態では、オプション品の例として、コプロセッサ17や、DSP21、音源デバイス22等を例としたが、本願はこれらに限られない。
また、本願構成は、パソコンや、電子楽器や、ゲーム機などのようにCPUを用いた応用システムであって、楽音を発生させるものすべてに適用可能である。
【0091】
【発明の効果】
以上説明した本発明によれば、次のような効果がある。
装置構成において最適なサンプリング周波数にて楽音発生を行なうことが可能となる。
楽音波形のサンプリングデータを生成するための構成を簡略化することが可能となる。
装置構成の性能が低い場合においても、発生楽音の品質を確保することが可能となる。
【図面の簡単な説明】
【図1】 本発明が適用される構成を示すブロック図である。
【図2】 同構成におけるバス回りの変形例を示すブロック図である。
【図3】 同構成におけるバス回りの変形例を示すブロック図である。
【図4】 (a)は、同構成における音源デバイス周辺を集積化した場合の構成を示すブロック図であり、(b)は、同構成におけるDSP周辺を集積化した場合の構成を示すブロック図である。
【図5】 この発明による第1実施形態の動作モードを説明するための図である。
【図6】 同実施形態におけるRAMのメモリマップを示す図である。
【図7】 同実施形態における処理全体の概観を示すフローチャートである。
【図8】 同実施形態により実行される波形合成プログラムの手順を示すフローチャートである。
【図9】 同実施形態により実行される波形合成プログラムの手順を示すフローチャートである。
【図10】 同実施形態により実行される波形合成プログラムの手順を示すフローチャートである。
【図11】 同実施形態により実行される波形合成プログラムの手順を示すフローチャートである。
【図12】 波形合成プログラムにおける波形サンプルロード処理の手順を示すフローチャートである。
【図13】 波形合成プログラムにおける波形サンプル発生演算の手順を示すフローチャートである。
【図14】 波形合成プログラムにおけるCPUによる波形サンプル演算処理の手順を示すフローチャートである。
【図15】 波形合成プログラムにおける選択されたハードウェアを含む発音処理の手順を示すフローチャートである。
【図16】 波形合成プログラムにおける選択されたハードウェアを含む発音処理の手順を示すフローチャートである。
【図17】 波形合成プログラムにおけるタイマー処理の手順を示すフローチャートである。
【図18】 本発明の第2実施形態における、選択されたハードウェアを含む発音処理の手順を示すフローチャートである。
【図19】 本発明の第3実施形態における、選択されたハードウェアを含む発音処理の手順を示すフローチャートである。
【図20】 本発明の第4実施形態における、選択されたハードウェアを含む発音処理の手順を示すフローチャートである。
【図21】 本発明が適用される構成の一例を示すブロック図である。
【図22】 本発明が適用される構成の一例を示すブロック図である。
【図23】 本発明が適用される構成の一例を示すブロック図である。
【図24】 本発明が適用される構成の一例を示すブロック図である。
【符号の説明】
10……CPU(演算処理手段、検出手段、制御手段、サンプリング周波数決定手段)、17……コプロセッサ、22……音源デバイス
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a musical sound generator suitable for use in an application system using a CPU, such as an electronic game device, a communication karaoke device, a personal computer, and the like, and in particular, based on data instructing the generation of musical sounds. The present invention relates to a musical sound generating apparatus and a musical sound generating method for synthesizing musical sounds.
[0002]
[Prior art]
Conventionally, when a musical tone is to be generated on a personal computer or the like, a dedicated tone generator device or a dedicated hardware such as a tone generator board is incorporated and controlled to generate a predetermined tone. . However, in recent years, the performance of personal computers, in particular the performance of CPUs, has improved significantly, so that the CPU also performs processing that should be executed by dedicated hardware such as a tone generator board, so that musical sounds are being generated. .
This kind of musical sound generation is also called a software sound source because the CPU calculates and obtains musical sound waveform (sampling) data according to dedicated software (program), and the musical sound is generated using conventional dedicated hardware. Distinguished from the generated hardware sound source.
[0003]
[Problems to be solved by the invention]
However, the quality of the musical sound generated by the software sound source greatly depends on the performance of the CPU responsible for the arithmetic processing. That is, when the performance of the CPU is high, calculation processing for obtaining waveform data (sampling data) can be executed at high speed, so that it is possible to generate a high-quality musical tone by increasing the sampling frequency. However, when the performance of the CPU is low, it is difficult to perform high-speed arithmetic processing, so the sampling frequency must be lowered, and for this reason, the quality of the musical tone must be lowered.
[0004]
On the other hand, in an application system using a CPU, such as a personal computer, the performance of the CPU and the mounting state of optional products are various (usually, optional products are broadly defined as hard disks, video cards, etc. Etc., but here it means something that contributes to the generation of musical sounds). That is, it must be kept in mind that the performance of the CPU varies depending on the individual system.
Furthermore, when a plurality of application programs for generating musical sounds and other application programs are simultaneously started, the CPU load assigned to the execution of the program for generating musical sounds depends on the activation status and tasks of other programs. It may vary depending on the state of the. In other words, even in the same system environment, the performance of the CPU may seem to fluctuate when viewed from a program for generating musical sounds.
Therefore, when a user generates a musical sound by using a software sound source, the basic matter for generating a musical sound must be reset every time the environment changes, which is very complicated. was there. Moreover, in such a system, whether or not a musical sound can be generated under the conditions determined by the setting items is determined only by whether or not inconveniences such as skipping and lack of sound occur by actually sounding. In other words, there is a problem that whether or not the setting items are appropriate in the system is not known until the sound is actually generated.
[0005]
The present invention has been made in view of the above-described problems. The object of the present invention is to generate various musical tones while ensuring appropriate quality in the configuration even if the device configuration varies. An object is to provide a musical sound generating apparatus and a musical sound generating method.
[0006]
[Means for Solving the Problems]
To solve the above problems Book The invention A storage means for storing a musical sound waveform; an arithmetic processing means capable of generating a musical sound by a plurality of sound generation methods including a waveform memory method for generating a musical sound by reading a musical sound waveform stored in the storage means; A calculation unit that calculates a frequency reflecting the processing capability of the musical tone generator in the specified method when a sound generation method other than the waveform memory method is specified, and the frequency calculated by the calculation unit is a predetermined frequency If the frequency is determined to be equal to or less than the frequency, the arithmetic processing means switches the sound generation method to the waveform memory method. .
[0007]
In a preferred embodiment, the musical sound generator includes: When it is determined that the frequency calculated by the calculating unit is equal to or lower than the predetermined frequency, and when the frequency calculated by the calculating unit is determined to be lower than the predetermined frequency, the sound generation method is changed to the waveform memory method. When instructed to switch, The storage means may store a musical sound waveform generated by a method other than the waveform memory method.
[0008]
DETAILED DESCRIPTION OF THE INVENTION
1: Configuration
DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, exemplary embodiments of the invention will be described with reference to the drawings. FIG. 1 is a block diagram showing the configuration of a musical tone generator to which the present invention is applied.
In this figure, reference numeral 10 denotes a CPU, which controls each unit via a (data) bus 12 based on a basic program stored in a ROM 11. Reference numeral 13 denotes a RAM which sets various registers and flags to be described later and temporarily stores various data. Reference numeral 14 denotes a multi I / O port, for example, for inputting / outputting MIDI information, inputting operation information KBD by a keyboard (not shown), and various information via various interfaces (I / F) (not shown). Enter. That is, the multi I / O port 14 inputs performance information that defines a musical tone to be generated as MIDI information or operation information KBD. In the present embodiment, it is assumed that performance information is generated by automatic performance. The automatic performance in this case refers to a case where performance information is generated in time series by executing a predetermined automatic performance program. In other words, the configuration of FIG. It means not only a generator but also a so-called sequencer. The I / F type may be serial, parallel, RS-232C, RS-422, etc. In particular, in the case of RS-232C, it is also connected to a telephone line by a modem (not shown) Also communicate.
Therefore, the generation source of performance information is the keyboard when the keyboard operation is performed, the external device connected through various I / Fs when MIDI information is used, and the automatic performance program when the performance is automatic. CPU10 which performs.
Reference numeral 15 denotes a storage unit, which includes a storage device such as an FD (floppy disk drive), an HD (hard disk drive), and a CD-ROM drive, and stores various application programs and data. Reference numeral 16 denotes a display, which is composed of a CRT, a liquid crystal panel, or the like, and performs various displays under the control of the CPU 10.
[0009]
Next, reference numeral 17 denotes a coprocessor, which performs processing relating to floating point arithmetic on behalf of the CPU 10. The CPU 10 performs other processing. Reference numeral 18 denotes a timer, which measures time in timer processing to be described later. Reference numeral 19 denotes a DMAC (direct memory access controller), which directly transfers data in the RAM 20 without using the CPU 10. In recent years, the coprocessor 17, the timer 18, and the DMAC 19 may be integrated into one chip together with the CPU 10. However, in this configuration, for the sake of convenience, the configuration will be described separately from the CPU 10.
The RAM 20 is the same as the reference numeral 13 and there is no difference in hardware, but the RAM 13 functions as a work memory used for program execution, whereas the RAM 20 is expanded under predetermined conditions. It functions as a waveform memory that temporarily stores the waveform data.
[0010]
Reference numeral 21 denotes a DSP, which is a dedicated processor for performing musical tone synthesis processing. Reference numeral 22 denotes a sound source device that synthesizes a musical tone signal under various commands. Reference numeral 23 denotes a D / A converter. When a later-described flag DACENBL rises (becomes “1”), its output operation is permitted.
Although not shown in the figure, a FIFO-format data buffer is provided at the input stage of the D / A converter 23, and the buffered data is read at the sampling frequency fs set in step Sa21 described later. It is supposed to be. Although not shown in the figure, an LPF (low-pass filter) for removing harmonics is provided at the output stage of the D / A converter 23, and the cut-off frequency is substantially half of the set sampling frequency fs. Is set to. The output of the LPF is output as a musical sound signal from the musical sound generator, and is generated by a sound system including an amplifier and a speaker.
[0011]
Reference numeral 24 is a RAM similar to the reference numerals 13 and 20, and there is no difference in hardware, but the RAM 24 functions as a work memory used for the arithmetic processing of the DSP 17. Reference numeral 25 denotes a waveform memory, which stores a plurality of basic tone color waveform data when the tone generator 22 generates a musical tone by the waveform memory reading method. The waveform memory 25 and the RAM 20 are stored in the waveform memory 25 mainly by the sound source device 22 and provided by the ROM or (daughter) board, whereas in the RAM 20, the stored contents are stored. However, the nuance is slightly different in that it is mainly used by the CPU 10.
[0012]
Among such configurations, the coprocessor 17, the DSP 21, the sound source device 22, the RAM 24, the waveform memory 25, and the like are normally set as optional products. That is, these are provided arbitrarily. In particular, when the RAM 24 is not mounted, a part of the area of the RAM 13 is allocated as the RAM 24, and for the waveform memory 25, the sound source device 22 generates a waveform data only by a pure calculation such as an FM synthesis method. If it generates music, you do n’t have to wear it.
[0013]
For this reason, the CPU 10 needs to know whether or not such an optional product is mounted / mounted in some form, but in this embodiment, for example, the presence / absence of a component is known by the following method, for example. It has become.
{Circle around (1)} When a component is provided, an address to be connected is determined in advance, and the CPU 10 accesses the address relating to, for example, immediately after startup or immediately after reset. At this time, the CPU 10 determines that the component is mounted when appropriate data is read.
{Circle around (2)} A jumper switch indicating mounting of a component is provided, and when the component is mounted, the jumper switch is turned on to notify the CPU 10 of the mounting state.
(3) If it is a personal computer, the component is registered in the form of a device driver by a configuration file or registered by a batch file to be recognized.
[0014]
In the configuration shown in FIG. 1, all of the optional products are connected to the data bus, but the connected bus is not limited to this. For example, data may be exchanged with the CPU 10 via various serial / parallel interfaces. That is, the connection form of the optional product is not limited as long as data can be exchanged with the CPU 10 in some form.
For example, as shown in FIG. 2, the sound source device 22 may actually be provided as a so-called extension board as a sound source board 41. In this case, the sound source device 22 is inserted into a slot on the main board (motherboard). The CPU 10 exchanges data via the bus 12, the I / F controller 26, and the expansion (board) interface 27. Furthermore, in this case, the waveform memory 25 may be optionally attached to a dedicated socket provided on the sound source board 41. In this case, a unique D / A converter 28 may be provided on the extended interface 27 side.
On the other hand, the sound source device 22 may be provided as an LSI chip alone or separately mounted on a substrate. In this case, the sound source device 22 is inserted into a dedicated socket provided in advance on the main board or the expansion board. The CPU 10 may be connected directly or via an expansion interface.
Similarly, when the DSP 17 is provided as an expansion board, it may be provided as a kind of expansion board as the DSP board 42 as shown in FIG. 2, and in this case, the slot on the main board may be provided. The CPU 10 exchanges data with the extended interface 27 and the like. The DSP 17 is the same as the sound source device 22 in that it may be supplied as an LSI chip alone. The input data to the D / A converter 23 is supplied from the bus 12 in FIG. 1, but when the DSP 17 or the sound source device 22 is inserted into an expansion board or a socket, the DSP 17 In addition, the output of the sound source device 22 is supplied directly or via an expansion interface without passing through the bus 12.
[0015]
As shown in FIG. 3, the sound source system 32 including the sound source device 22 and the DSP 17 may be connected to a local bus or the like that directly exchanges data with the CPU system 30 without using the data bus 12. Here, the CPU system 30 refers to a standard system such as the ROM 11 and the RAM 13 including the CPU 10, and the peripheral device group 31 refers to the other multi I / O ports 14, the storage unit 15, various interfaces, and operations. A child is named generically. The sound source system 32 refers to the sound source device 22 and the DSP 17 in a narrow sense, but refers to components that contribute in some way to the generation of musical sounds other than the CPU system 30 in a broad sense. Here, the sound source system 32 may be either configured to be integrated with the CPU system 30 or may be separable.
In addition, whether the CPU side or the sound source side has an interface for connection may be appropriately determined according to the system.
Further, not only the local bus but also various interfaces / protocols such as MIDI, RS-S3SC / 422, IEEE P-1394 (standard of the code 1394 submitted to IEEE), and SCSI may be used. It is also conceivable to exchange data via various communication lines such as telephone lines.
[0016]
On the other hand, the sound source device 22 may be integrated on one chip including the waveform memory 25 and the D / A converter, or may be formed as a substrate module (see FIG. 4A). Similarly, the DSP 17 may be integrated on one chip including the RAM 24 and the D / A converter (see FIG. 4B).
[0017]
As described above, the configuration illustrated in FIGS. 1 to 3 is merely an example of the system configuration, and how each component is connected depends on the system. Recently, two or more of the components shown in FIG. 1 are integrated, and in some cases, it may be configured integrally. It is not meaningful to block the components by appearance. That is.
[0018]
1-1: Operation mode
Next, the operation mode of this embodiment will be described. As shown in FIG. 5, the operation mode of the musical tone generating apparatus according to the present embodiment is roughly divided into two modes, that is, a method for designating a sound generation method and a method for designating a sound allocation method. Subdivided. First, a mode for designating a sound generation method will be described.
[0019]
1-1-1: Specifying the pronunciation method
In the present embodiment, tone data is generated by generating / creating musical tone waveform data based on performance information and converting it to analog. Creation / generation of such waveform data is executed by various methods.
For this reason, the sound generation method is used to determine which sound generation method is used to generate / create the waveform data.
Note that the sound generation method of the present embodiment assumes two modes: a CPU synthesis mode and various sound source device use modes.
[0020]
(1) CPU composition mode
The CPU synthesis mode is a mode for designating generation / creation of waveform data only by the CPU 10 or in combination with the coprocessor 17 if installed without using dedicated hardware for tone synthesis. is there. The CPU composition mode is further roughly divided into the following four modes. The desired waveform data thus obtained is converted into an analog signal by the D / A converter 23 to generate a sound.
・ FM mode
This FM mode is a mode in which sound generation is performed using a so-called FM sound source. That is, the desired waveform data is obtained by FM-modulating a basic sine wave by real-time calculation of the CPU 10 or the like (when the coprocessor 17 is attached, the coprocessor 17 is also used).
・ Harmonic synthesis mode
This harmonic synthesis mode is a mode in which sound is produced by sequentially synthesizing a fundamental wave and harmonics of the fundamental wave. That is, the desired waveform data is obtained by sequentially obtaining and adding the fundamental wave and its n-th harmonic by real-time calculation by the CPU 10 or the like.
・ Waveform memory read mode
This waveform memory reading mode is a mode in which sound is generated by a so-called waveform memory reading method. That is, the CPU 10 or the like first loads a plurality of waveform data indicating the basic waveform of the timbre to be generated on the RAM 20 or the like prior to the generation of the musical tone, and then designates if the musical tone generation is instructed. The waveform data of the specified tone color is read out by addressing so as to obtain a designated pitch, and is calculated and processed so as to obtain the designated sound volume.
In the waveform memory reading mode, since the waveform reading process is mainly performed from the RAM (ROM), it is possible to generate a musical tone even with a CPU having a relatively low performance. That is, the load on the CPU 10 can be lighter than the calculation processing in the FM mode or the harmonic synthesis mode. However, since the RAM must be used as a waveform memory, the memory area constituted by the RAMs 13 and 20 is inevitably compressed. Or a lot of capacity is required. For this reason, depending on the total capacity of the installed RAM and the extent of the address area of the CPU, there is a background that the waveform memory read mode should not be used if possible.
・ Physical modeling synthesis mode
This physical modeling synthesis mode is a mode for synthesizing musical sounds by simulating a sound generation mechanism in an instrument, in particular, an air flow by an electrical model. That is, the desired waveform data is obtained by real-time calculation using an electrical model constructed by the CPU 10 or the like. Note that the tone synthesis algorithm based on such a model is disclosed in, for example, Japanese Patent Laid-Open No. 63-40199.
[0021]
▲ 2 ▼ Various sound source device use modes
The various sound source device use modes are modes in which sound generation processing is specified using special hardware for tone synthesis, such as the sound source device 22. For this reason, the various sound source device use modes are premised on the installation of the sound source device 22 as the corresponding hardware.
The sound source device 22 and the like create and generate waveform data in the above-described FM mode, waveform memory reading mode, and the like. However, the generation and generation of waveform data by the sound source device 22 or the like is a problem inherent to the sound source device 22 or the like, and the present application does not control the sound generation method of the sound source device 22 or the like. The description is omitted.
[0022]
1-1-2: Assignment method designation
The present embodiment has a plurality of channels for waveform synthesis (sound generation) in either the CPU synthesis mode or the various sound source device use modes, and one channel is assigned to generate one tone. By generating timbres in each channel, a plurality of timbres can be generated simultaneously.
Further, in this embodiment, the waveform synthesis can be performed by both the CPU 10 and the sound source device 22, and therefore, when a tone generation instruction for a certain tone color is given, it is an important issue as to which waveform synthesis is performed.
Therefore, in accordance with the mode specified by this allocation method, it is determined which waveform is synthesized when a sound generation instruction is given.
CPU priority mode
This CPU priority mode is a mode in which waveform synthesis is preferentially performed by the CPU synthesis mode. However, if the capability of the CPU 10 or the like is low, the number of channels that can be synthesized is limited. Therefore, waveform synthesis that exceeds the processing capability of the CPU 10 or the like is performed in various tone generator device use modes.
・ Various sound source device priority modes
The various sound source device priority modes are modes in which waveform synthesis is preferentially performed according to various sound source device use modes. However, if the capabilities of the various tone generator devices 22 and the like are low, the number of channels that can be waveform-synthesized is limited. Therefore, waveform synthesis that exceeds the processing capability of the various tone generator devices 22 and the like is performed in the CPU synthesis mode.
・ Manual setting mode
This manual mode is a mode in which the user manually designates the sound generation mode in which waveform synthesis is performed, and, in the case of the CPU synthesis mode, which mode the waveform synthesis is to be performed in.
・ Forced setting mode
This forced setting mode is a mode in which the waveform synthesis mode is specified by, for example, other application programs that are simultaneously started regardless of the user's intention.
[0023]
1-2: RAM status
Next, a memory map in the RAM 13 (20) will be described. As shown in FIG. 1, the configuration of the musical tone generator applied to the present invention is not much different from a general personal computer. In other words, a general personal computer can become a musical sound synthesizer as it is (although it is premised on performing an operation described later).
Therefore, the memory content of the RAM 13 (20) in this musical tone synthesizer is not much different from that of a general personal computer. That is, the RAM 13 (20) is divided into areas as shown in FIG. In this figure, the OS area is an area occupied by an operating system equivalent to a personal computer, and the waveform synthesis program area is an area occupied by a waveform synthesis program for generating musical sounds and synthesizing musical sound waveforms. The application program areas (1) to (n) are areas occupied by application programs other than the waveform synthesis program, and areas are generated by the simultaneous activation. The various data areas are areas for storing performance music data and the like, and the area WAVE is an area into which a plurality of waveform data is loaded when sound generation is performed by the waveform memory reading method.
[0024]
2: Operation
Next, the operation of the tone generator according to this embodiment will be described. Generation of musical sounds by this musical sound synthesizer is performed by executing a waveform synthesis program that is an application program of a personal computer. Alternatively, this waveform synthesis program is incorporated as a part of the OS and is automatically resident when activated.
Here, in which position and position the waveform synthesis program is executed in a series of processing steps depends on the setting environment of the OS, the user operation settings, the number of application programs to be started simultaneously, the operation status, etc. Here, for convenience of explanation, it is assumed that the waveform synthesis program is executed between the application programs (1) and (n) that are started simultaneously.
[0025]
First, when the power of the musical tone generator is turned on or reset, the CPU system processing shown in FIG. 7 is executed. In step S1, initial setting processing such as setting and resetting various registers and flags is executed. In step S2, OS system management processing is executed. In each step from step S3 to step S5, the application program (1), the waveform synthesis program, and the application program (n) are executed. Here, the waveform synthesis program will be described in detail later, but is a process in which only one sample of musical tone waveform data is generated every time it is activated, except when it is executed for the first time. The application programs (1) and (n) are processes other than the waveform synthesis program, which may be processes related to the waveform synthesis program or may be completely different processes. After the process of step S5, the processing procedure returns to step S2.
[0026]
Thereafter, if the application program is not changed to a running application program, the loop processing of steps S2 to S5 is repeatedly executed.
If there is a change in the activated application program, the change is detected by the system management process in step S2. If the change is completed, the step of executing the application program passes. If the change is started, the step of executing the application program is newly added to the loop process. Is repeatedly executed.
[0027]
Therefore, the execution cycle of the loop process changes depending on the activation state of other application programs, the system status, and the like. On the other hand, regardless of the change of the activated application program, only one sample of tone waveform data is generated every time the loop processing is completed, and tone waveform data is continuously generated by repeatedly executing the loop processing. . For this reason, if the waveform data of the generated musical tone is simply converted into analog data, the generated musical tone will be jittered because the sampling period is not constant. Therefore, as described above, although not shown, a data buffer is provided in the preceding stage of the D / A converter 23, and the waveform data of the generated musical sound is temporarily stored and then read out at the sampling period fs.
[0028]
When musical tone generation by the musical tone generator is executed by a fixed program, specifically, the musical tone generator is not a personal computer, but a system having a predetermined function including an electronic musical instrument alone or a sound module and other musical tone generation functions. In such a case, it is possible to configure the execution period of the loop process so as not to fluctuate. In such a case, the loop process is executed at a constant interval. If this interval is made to coincide with the sampling period which is the reciprocal of the set sampling frequency fs, it is convenient because the data buffer becomes unnecessary.
[0029]
2-1: Waveform synthesis program
Next, the waveform synthesis program executed in step S4 in FIG. 7 will be described with reference to FIGS. This waveform synthesis program is executed by being loaded from the storage unit 15 by a predetermined operation.
[0030]
First, in step Sa1 shown in FIG. 8, the setting of the operation mode for generating a musical sound and the hardware configuration at the time of execution are checked. As for the hardware configuration, it is checked whether or not an optional product is installed by the method described above. As for the setting of the operation mode, as shown in FIG. 5, both the sound generation method designation and the assignment method designation are set.
Regarding the setting of the operation mode, if another application program is executed before the execution of this waveform synthesis program, it may be set to the forced mode by the execution of the program. In some cases, an input screen is displayed to the user to determine which mode is to be set and which mode is to be assigned to the allocation method. Furthermore, if various sound source devices are recognized by checking the hardware configuration, the CPU priority mode or the various sound source device priority modes may be automatically set. That is, the setting of the operation mode in step Sa1 is a process for confirming the operation mode when starting this waveform synthesis program.
[0031]
Next, in step Sa2, a waveform sample loading process is executed. The waveform sample loading process, which will be described in detail later, is a process of transferring the waveform sample data to the area WAVE in the RAM 13 (20) when using the waveform sample by reading the waveform memory.
Thereafter, in step Sa3, it is determined whether or not the flag SETFLG is “1”. Here, the flag SETFLG is “0” in the initial state, and “1” when the sampling frequency fs is set in step Sa21 described later, or when the waveform memory read mode is designated in the waveform preliminary calculation mode. It will be. If the flag SETFLG is “1”, the process proceeds to the next step Sa4, while if it is “0”, the process skips to step Sa5.
[0032]
When this waveform synthesis program is executed for the first time in the loop processing shown in FIG. 7, since the flag SETFLG is “0”, the processing procedure is unconditionally skipped to step Sa5. However, for convenience of explanation, step Sa4 is performed. This process will also be described.
In step Sa4, it is determined whether or not all sound generation is performed in the CPU composition mode. Alternatively, it may be determined whether various sound source devices are recognized by checking the hardware configuration in step Sa1. In short, if there is a possibility of performing waveform synthesis using various sound source devices, a conditional branch with a determination result of “No” is performed.
[0033]
In step Sa5, it is determined whether or not the non-operational state is possible depending on whether or not the flag ENBLFLG is “1”. Here, the non-operable state means, in other words, a state where the sampling frequency fs is not set or the waveform preliminary calculation mode is not specified and the sound generation process is not ready in the CPU synthesis mode.
When this waveform synthesis program is executed for the first time in the loop processing shown in FIG. 7, since the flag ENBLFLG is “0”, that is, in a non-operable state, the processing procedure branches to step Sa11. For convenience of explanation, a case where the flag ENBLFLG is “1” and is in an operable state will be described first. This operable state is, paradoxically, a state where the preparation for waveform synthesis processing by the CPU is already ready. In this state, the procedure proceeds to step Sa6 to perform sound generation information processing, and then in step Sa7, it is determined whether or not a CPU waveform generation command is present. Here, the CPU waveform generation command means that in the CPU composition mode, a key-on for instructing the start of sounding is generated by keyboard information KBD, MIDI information, performance information via various I / Fs, and the like.
When a CPU waveform generation command is detected in step Sa7, processing corresponding to the command is performed in step Sa8. That is, waveform data that satisfies the command is generated by a method designated by any one of the CPU synthesis modes, and is supplied to the D / A converter 23 via the bus 12. As a result, sound generation based on the waveform data is performed. Note that the CPU waveform generation command includes key-off for instructing mute in a broad sense, but these end the sound generation by generating a release waveform or ending generation of waveform data according to the command. However, the description is omitted here.
If no CPU waveform generation command is detected in step Sa7, no processing is required, so that the sound generation calculation process in step Sa8 is skipped.
In step Sa9, it is determined whether or not an operation for ending the waveform synthesis program has been designated by the user or the like. If it is not specified, the procedure immediately returns (returns) to prepare for generation of the next CPU waveform generation command to come. On the other hand, if it is specified, processing for terminating the program is performed. For example, in step Sa10, a process of clearing the flag SETFLG to “0” is executed, and this waveform synthesis program is terminated.
[0034]
When this waveform synthesis program is executed for the first time in the loop processing shown in FIG. 7, since the flag ENBLFLG is “0”, in step Sa11, the operation mode is the priority mode, that is, the CPU priority mode or various tone generator device priority modes. It is determined whether or not.
If the operation mode is the manual mode or the forced mode, the determination result is “No”, the processing procedure proceeds to step Sa12, and “1” is set to each of the flag ENBLFLG, the flag DACENBL, and the flag SETFLG. The processing procedure returns. Here, when the flag DACENBL becomes “1”, the output operation of the D / A converter 23 is permitted. Therefore, when this waveform synthesis program is executed next time and various sound source devices are used, the determination result of step Sa3 is “Yes” and the determination result of Sa4 is “No”, which is shown in FIG. When the process is executed and the waveform synthesis is performed only by the CPU, the processes of steps Sa6 to Sa10 are executed.
[0035]
On the other hand, when the operation mode is the priority mode in step Sa11, the processing procedure proceeds to step Sa13 shown in FIG. Note that the processing of steps Sa13 to Sa27 may be executed when this waveform synthesis program is started for the first time, and is processing for setting the sampling frequency fs when waveform synthesis is performed by the CPU.
First, in step Sa13, the flag ENBLFLG is set to “0”, the flag BUSY is set to “1”, and the flag DACENBL is set to “0” for confirmation. Here, the flag BUSY permits up-counting in a timer process described later. The reason why the flag DACENBL is set to “0” is to prevent the sound generation based on the waveform sample by prohibiting the output operation of the D / A converter 23 in the waveform sample generation calculation described later.
After step Sa13, in step Sa14, the register SCOUNT and the register TCOUNT are each reset to “0”. Here, the content of the register SCOUNT indicates the number of times of processing of the next waveform sample generation calculation, and the register TCOUNT is incremented by “1” by a timer process described later when the flag BUSY is “1”. Therefore, the content indicates the number of times the timer process is started within the time required to generate the waveform sample generation calculation only m times.
[0036]
Next, in step Sa15, a predetermined waveform sample generation calculation process is executed to generate necessary waveform samples (data) per sample. The detailed process of step Sa15 will be described later. In step Sa16, the register SCOUNT is incremented by “1” in response to the waveform sample generation calculation process being executed once. Then, in step Sa17, it is determined whether or not the register SCOUNT is “m”. If the determination result is “No”, the procedure returns to step Sa15. If the determination result is “Yes”, the procedure is Control proceeds to step Sa13 shown in FIG. As a result, the processes of steps Sa15 and 16 are repeated until the number of waveform sample generation calculations is m.
[0037]
Next, in step Sa18 shown in FIG. 10, the flag BUSY is set to “0”, and timer up-counting is prohibited (timer stop processing). In the next step Sa19, the frequency Fs is obtained by the following equation (1).
Fs = (m · margin) / (TCOUNT · Tt) (1)
In this expression, margin is a coefficient of “1” or less for giving a margin to the arithmetic processing in consideration of the processing capability of the CPU 10 or the like. Further, as described above, TCOUNT indicates the number of times the timer processing is started within the time required to execute the waveform sample generation calculation m times, and Tt is the timer processing start cycle, so that TCOUNT and Tt The product of and indicates the time required to execute the waveform sample generation calculation only m times.
Eventually, the frequency Fs obtained by the equation (1) is a waveform sample generation frequency, and indicates a frequency in consideration of the processing capability of the hardware configuration by a constant margin.
[0038]
In step Sa20, it is determined whether or not the obtained frequency Fs is “32 kHz” or more. The value of “32 kHz” is set in consideration of whether or not the quality of the generated musical sound can be secured at a minimum. Therefore, if the determination result is “Yes”, it is determined that a musical tone quality exceeding the minimum can be ensured depending on the CPU capability of the present embodiment, and the procedure proceeds to step Sa21. In this step Sa21, among “32 kHz”, “44.1 kHz”, “48 kHz”, and “50 kHz”, the frequency closest to the obtained frequency Fs in the inner ring is set as the sampling frequency fs in the present embodiment. . For example, if the obtained frequency Fs is “47 kHz”, the sampling frequency fs is set to the highest “44.1 kHz” among those lower than the frequency “47 kHz”. The reason why the inner ring is used is that if the sampling frequency is set higher than the processing capacity, there is no point in providing a margin using the constant margin.
[0039]
After step Sa21, in step Sa22, the flag DACENBL, the flag ENBLFLG, and the flag SETFLG are set to “1”, and the procedure returns. As a result, the output operation of the D / A converter 23 is permitted, and the D / A converter 23 is enabled, and further, it is indicated that the sampling frequency fs has already been set.
As a result of being in an operable state in this way, the next time the waveform synthesis program is executed, if the waveform synthesis is performed using various sound source devices, the determination result in step Sa4 is “No”. If the sound generation process is executed by the process shown in FIG. 11 and the waveform synthesis is performed using only the CPU 10 or the like, the determination result in step Sa4 is “Yes”, and the determination result in step Sa5 is “No”. Thus, the sound generation process is executed in steps Sa6 to Sa8.
[0040]
On the other hand, if the determination result in step Sa20 in FIG. 10 is “No”, it is determined that the minimum tone quality cannot be ensured depending on the processing capability of the CPU 10 or the like of this embodiment, and the procedure branches to step Sa23. . In step Sa23, the user is notified by an alarm or the like that the minimum tone quality cannot be secured, and the designated event in the waveform preliminary calculation mode is checked. Here, in the waveform preliminary calculation mode, a mode other than the waveform memory read mode in the CPU synthesis mode is originally designated as the operation mode. However, in the designated mode, the minimum tone quality is set. This is a mode for instructing to switch the operation mode to the waveform reading mode because it cannot be secured.
[0041]
In step Sa24, it is determined whether or not this waveform preliminary calculation mode is designated. If specified, in step Sa25, the specified calculation mode (A mode other than the waveform memory read mode in the CPU synthesis mode and the designated mode) The waveform sample is obtained by the above calculation and stored in the RAM 13 (20) in advance, and when the sound is actually executed, the stored sound sample is read at the sampling frequency “32 kHz” to automatically select the sound generation mode. Specified. As a result, the waveform synthesis is substantially performed in the waveform memory reading mode, so that a minimum quality can be ensured in the generated musical tone even with a low performance CPU.
Thereafter, the process of step Sa22 is executed and set to an operable state or the like, and then the procedure returns.
On the other hand, if the waveform preliminary calculation mode is not designated in step Sa24, the procedure proceeds to step Sa26, and it is determined whether or not the end of the waveform synthesis program has been commanded. If instructed, processing for terminating the program is performed, for example, processing for clearing the flag SETFLG to “0” is performed in step Sa27, and this waveform synthesis program is terminated.
As a result, if the obtained frequency Fs is lower than “32 kHz”, the waveform preliminary calculation processing mode is designated in steps Sa23, 24, and 26, or an operation such as a command to end the program is not performed. The alarm will continue to sound.
[0042]
Thus, when waveform synthesis is performed by the CPU 10 or the like, the sampling frequency fs is set to be optimized for the performance of the CPU. In addition, in this case, when the performance of the CPU or the like is low, the tone synthesis is set to be performed by the waveform memory reading method that reduces the burden on the CPU.
[0043]
By the way, if it is determined in step Sa4 in FIG. 8 that there is a possibility of performing waveform synthesis using various sound source devices, the procedure proceeds to step Sa28 shown in FIG. In step Sa28, “1” is set to the flag DACENBL, and the output operation of the D / A converter 23 is permitted. Thereafter, in step Sa29, it is determined whether or not an instruction to end the program has been issued. If so, processing for ending the program is performed in step Sa30. For example, the flag SETFLG is set to "0" in step Sa31. The process of clearing is executed, and this waveform synthesis program ends. On the other hand, if it is determined in step Sa29 that an instruction to end the program has not been given, it is further determined in step Sa32 whether or not the operation mode is various sound source device use modes. If not, the procedure returns. .
[0044]
If it is determined in step Sa32 that the operation mode is the various sound source device use mode, it is further determined in step Sa33 whether hardware corresponding to the selected operation mode exists. Here, “selection” includes the meaning of recognition by hardware check in step Sa1 (meaning parentheses in the figure). If it exists, a sound generation process including hardware corresponding to the mode selected in step Sa34 is executed. If not, a sound generation process indicating that in step Sa35 is generated, and the current hardware environment The pronunciation process is performed. And a procedure returns after the process of step Sa34 or Sa35.
The details of the sound generation process including the selected hardware will be described later.
[0045]
2-1-1: Waveform sample loading process
Here, the waveform sample loading process executed in step Sa2 (see FIG. 8) described above will be described. In this waveform sample loading process, first, it is determined whether or not a MIDI sample dump is received by the multi I / O port 14 in step Sb1 shown in FIG. Here, the MIDI sample dump is sampling data in the MIDI standard and is used in the waveform memory read mode.
If received, in step Sb2, a sample reception process is performed in which the received data is transferred to the area WAVE of the RAM 13 (20). Then, according to the determination in step Sb3, the sample reception process in step Sb2 is continuously executed until reception of all data is completed. When reception of all data is completed, the determination result in step Sb3 is “Yes”, and the procedure returns.
On the other hand, if the determination result in step Sb1 is “No”, it is determined in step Sb4 whether or not the waveform data has been transferred through various interfaces. If received, in steps Sb2 and S3, the waveform data is transferred to the area WAVE of the RAM 13 (20) in the same manner as the MIDI sample dump.
If the determination results in steps Sb1 and Sb4 are both “No”, it is detected in step Sb5 whether a read event for the storage unit 15, that is, a request to read some data has occurred. If it has not occurred, there is no need to perform any further processing, so this waveform sample loading processing is immediately terminated and the procedure returns. On the other hand, if a read event has occurred, the data read from the storage unit 15 by the event is checked in step Sb6. In step Sb7, it is determined whether or not the read data is waveform data.
If it is not waveform data, it is not necessary to perform any subsequent processing. Therefore, the waveform sample loading process is immediately terminated and the procedure returns. On the other hand, if it is waveform data, the data is read in step Sb8. Waveform data read / transfer processing for transferring the waveform data thus transferred to the area WAVE of the RAM 13 (20) is executed. Then, according to the determination in step Sb9, the transfer process in step Sb8 is continuously executed until the transfer of all data is completed. When the transfer of all data is completed, the determination result in step Sb9 is “Yes”, and the procedure returns.
[0046]
Thus, in the waveform sample loading process, when sampling data (waveform data) used in the waveform memory reading mode is received and read, all of the data is transferred to the area WAVE of the RAM 13 (20). Then, the CPU 10 or the like processes the transferred sampling data in the waveform memory read mode, thereby performing waveform synthesis.
As described above, for example, in order to sound the waveform loaded in the RAM 13 (20) or the like by the sound source device 22, the waveform memory 25 attached to the sound source device 22 is used as the RAM, and the waveform loaded here is reproduced. Must be transferred. Therefore, in a musical tone generator that depends on hardware such as a conventional tone generator device, a temporary storage means such as a RAM for receiving the loaded waveform is required on the hardware side, and on the CPU side, Waveform data transfer processing from the RAM 13 (20) or the like is necessary.
However, according to the present embodiment, the sampling data is loaded into the RAM 13 (20) supervised by the CPU 10, and the sound is generated by the loaded data. Therefore, means for temporarily storing the sampling data may be provided on the dedicated hardware side. Further, it is possible to eliminate the process of re-transferring the waveform data loaded on the CPU side to the hardware side.
Therefore, the cost of the system can be reduced, and the time from when the waveform data loading is completed until the sound can actually be generated can be shortened.
[0047]
2-1-2: Waveform sample generation calculation
Next, the waveform sample process executed in step Sa15 (see FIG. 9) described above will be described. In this waveform sample generation calculation process, first, in step Sc1 shown in FIG. 13, the presence or absence of the coprocessor 17 is detected. Although it is present in this embodiment, since the coprocessor 17 is an optional product, it may not be provided. When the CPU 10 includes an arithmetic unit corresponding to the coprocessor 17, detection processing for detecting the presence or absence of the coprocessor is not particularly necessary, and the processing may always be performed in combination with the coprocessor. On the other hand, if it is present, waveform sample calculation processing by the combined use of the CPU 10 and the coprocessor 17 is executed in step Sc2, while if not, waveform sample calculation processing by only the CPU 10 is executed in step Sc3. . And a procedure returns after the process of step Sc2 or Sc3.
Here, the processes of steps Sc2 and Sc3 differ only in whether or not the arithmetic processing is performed using the coprocessor 17, and the waveform sample arithmetic processing itself is the same. Therefore, the processes of steps Sc2 and Sc3 will be described by taking the case of step Sc3 as an example.
[0048]
2-2-1: Waveform sample calculation processing only by CPU
First, in step Sd1 shown in FIG. 14, it is determined whether or not the operation mode is the FM mode of the CPU synthesis mode. In the FM mode, in step Sd2, as many waveform samples as the number of channels necessary for one sample are calculated and obtained by the FM synthesis method of the CPU 10. That is, in the case of performing a plurality of pronunciations, as many waveform samples as the number of pronunciations to be synthesized in the FM mode are obtained.
In this case, the CPU 10 performs the calculation by combining various pitches of each sound from a low pitch to a high pitch, or performs other processing (for example, graphic processing, etc.) performed simultaneously with the sound generation processing, thereby increasing the load most. The calculation is performed in the state.
[0049]
If it is determined in step Sd1 that the mode is not FM mode, it is further determined in step Sd3 whether or not the operation mode is the waveform memory reading mode in the CPU synthesis mode. In the waveform memory read mode, as many waveform data as necessary for one sample are read from the waveform memory. That is, in the case of performing a plurality of pronunciations, the waveform data corresponding to the number of pronunciations to be synthesized is read out in the waveform memory readout mode.
Note that data transfer in this waveform memory read mode is performed by the DMAC 19 instead of the CPU 10. Further, the waveform data read at this time is either loaded into the area WAVE (see FIG. 6) of the RAM 13 (20) or stored in the ROM 11.
[0050]
Further, if it is determined in step Sd3 that the mode is not the waveform memory read mode, it is further determined in step Sd5 whether or not the operation mode is the harmonic synthesis mode of the CPU synthesis mode. In the harmonic synthesis mode, in step Sd6, a necessary number of waveform samples in one sample are calculated and obtained by the harmonic synthesis method of the CPU 10. That is, in the case of performing a plurality of sound generations, waveform samples corresponding to the number of sound generations to be synthesized in the harmonic synthesis mode are obtained.
In this case, the CPU 10 performs the calculation by combining various pitches of each sound from a low pitch to a high pitch, or performs the calculation with the highest load as in the FM mode.
[0051]
If it is determined in step Sd5 that the mode is not the harmonic synthesis mode, it is further determined in step Sd7 whether or not the operation mode is the physical modeling synthesis mode in the CPU synthesis mode. In the physical modeling synthesis mode, in step Sd8, a necessary number of waveform samples in one sample are obtained by constructing a physical model by the CPU 10. That is, in the case of performing a plurality of pronunciations, waveform samples corresponding to the number of pronunciations to be synthesized in the physical modeling synthesis mode are obtained.
If it is determined in step Sd7 that the current mode is not the physical modeling synthesis mode, the operation mode is outside the assumed range in the present embodiment, and therefore alarm processing and other appropriate processing are performed in step Sd9.
Then, after the process of step Sd2, 4, 6, 8 or 9, the procedure returns and the process of the next step Sa16 (see FIG. 9) is executed.
[0052]
2-1-2-2: Waveform Sample Calculation Processing Using Coprocessor Together With the waveform sample calculation processing using the coprocessor in step Sc12 in FIG. 13, each calculation processing in FIG. This speeds up the arithmetic processing. However, the basic calculation procedure and the like are substantially the same as the contents performed in the waveform sample calculation processing by only the CPU. For this reason, detailed description is omitted.
[0053]
In this way, in the waveform sample generation calculation in step Sa15, the processing that most affects the quality of the generated musical sound is performed corresponding to each mode of the CPU synthesis mode. That is, in the FM mode, the harmonic synthesis mode, and the physical modeling synthesis mode, the number of simultaneous sounds and the time required to calculate the waveform data are factors that mainly affect the processing time. Therefore, the waveform data per sample is obtained by actual calculation processing. Then, this calculation process is performed for m samples by the processes of steps Sa15 to Sa17, and the time required for the calculation process for m samples is obtained based on the timer process described later. The optimum sampling frequency fs for the processing capability is set in step Sa21.
Similarly, in the waveform memory reading mode, the number of simultaneous sounds is a factor that affects the processing time, so that waveform data per sample is actually read in order to determine its reading ability. Then, this reading is performed for m samples by the processing of steps Sa15 to Sa17, and the time required for reading m samples is obtained based on the timer processing described later. On the other hand, the optimum sampling frequency fs is set in step Sa21.
[0054]
2-1-3: Sound generation processing including selected hardware
Next, the sound generation process including the selected hardware executed in step Sa34 (see FIG. 11) described above will be described. This sound generation process is executed in addition to the case where all channels are sounded only in the CPU synthesis mode. When sounding by various sound source devices is performed in some form, the sound corresponding to the (allocation) operation mode is generated. It is a process for performing.
In this sound generation process, event detection management is first performed in step Se1 in FIG. Here, an event means that a key-on for instructing the start of sounding is generated by keyboard information KBD, MIDI information, performance information via various I / Fs, and the like. Unlike the CPU synthesis mode, various sound source device use modes are also included. Therefore, the detection of this event means the occurrence of a key-on, so that a process for sound generation is performed as shown below.
[0055]
First, in step Se2, it is determined whether or not the operation mode is various sound source device priority modes. If the determination result is “No”, the processing procedure branches to Step Se11 described later, while if “Yes”, the processing procedure proceeds to the next Step Se3.
[0056]
In Step Se3, it is determined whether or not the sound generation state of the various sound source devices at the present time, the performance information corresponding to the event, and the like are within the sound generation conditions of the various sound source devices. Here, various sound generation conditions can be considered. In the present embodiment, whether the number of tone generations (tone colors) to be synthesized by various sound source devices is within the number of sound generations that can be simultaneously generated in various sound source device use modes. As a condition. That is, in step Se3, it is determined whether or not the number of channels (CH) that are currently sounding by various sound source devices is equal to or less than the number of channels that can be simultaneously sounded by various sound source devices.
[0057]
In addition to the above, the following pronunciation conditions can be considered. (1) Is the pitch of the performance information related to the detected event equal to or higher than a predetermined value? (2) Is the value for designating the timbre of the performance information related to the detected event greater than or equal to a predetermined value? (3) Is the value specifying the performance part of the performance information related to the detected event equal to or greater than a predetermined value? (4) Is the MIDI-CH corresponding to the detected event equal to or greater than a predetermined value? A sound generation condition based on whether a value indicating some performance information is equal to or greater than a predetermined value (whether it is below) such as (is it below)?
In addition, when various sound source devices are designated to generate and synthesize a specific timbre by calculation such as FM mode and harmonic synthesis mode, the sound generation condition is not satisfied. (This configuration will be described later as another embodiment).
[0058]
When it is determined that such a sound generation condition is satisfied, in Step Se4, a channel for sound generation by the event (key-on) is a channel that is not currently sounded by various sound source devices (empty channel). A sound assignment process for assigning one of these is executed. Then, in step Se5, a sound generation process is performed on the selected designated hardware, which is a process of actually performing generation of a musical sound corresponding to the event by the selected hardware (various sound source devices) in the assigned channel. The
[0059]
On the other hand, if it is determined in step Se3 that the sound generation condition is not satisfied, it is further determined in step Se6 whether or not the flag ENBLFLG is “1”. At this time, the flag ENBLFLG is “1” after the above-described processing of steps Sa13 to Sa25 is performed, and the sampling frequency fs for sound generation in the CPU synthesis mode is already set. Indicates. That is, it shows a state where sound generation is possible in the CPU composition mode. Therefore, when the flag ENBLFLG is “1” and the determination result in step Se6 is “Yes”, in step Se7, sound generation corresponding to an event that does not satisfy the sound generation conditions of various sound source devices is performed in the CPU composition mode. CPU sound assignment processing is executed as described above.
More specifically, the CPU sound generation assignment processing generates a musical sound waveform generation assignment command for calculating and generating a waveform sample corresponding to the event. The musical sound waveform generation assignment command includes a key-on in addition to information such as a musical sound calculation method to be executed by the CPU (any mode of the CPU synthesis mode), a tone color to be generated, a pitch, a touch, a volume, and an assigned channel. It also includes pronunciation instructions such as key-off. Then, during a period in which this command is valid, the CPU 10 and the like execute a sound generation calculation process for generating a waveform sample corresponding to the allocation command, as will be described later.
Note that the musical sound waveform generation assignment command includes the start / end information of the interrupt process when the musical sound sample is generated by the interrupt process.
[0060]
On the other hand, in step Se6, the flag ENBLFLG being “0” indicates a state in which sound generation is not possible in the CPU composition mode. Therefore, in this case, in Step Se8, truncation processing is performed on various sound source devices, and more specifically, the musical sound generated by the channel in which sound generation is most advanced in the various sound source devices, or the channel in which sound generation starts quickly and has the lowest volume. A process for forcibly creating an empty channel is performed. This truncation process can also be included in the sound generation assignment process in step Se4.
In step Se4, the event is assigned to the muted channel, and in the same manner, in step Sd4, musical sound corresponding to the event is generated by various sound source devices by the assigned channel.
When a plurality of sound source devices are attached, different sound source device channels may be assigned to generate a certain tone color.
[0061]
By the way, if it is determined in step Se2 that the mode is not the various sound source device priority modes, for example, the CPU priority mode, or the manual mode in which the CPU synthesis mode and the various sound source device use modes are specified. The processing procedure branches to step Se11 in FIG.
In step Se11, it is determined whether or not the current sounding state by the CPU 10 or the like, the performance information corresponding to the event, etc. are within the sounding conditions of the CPU or the like. The sound generation conditions here can be considered in the same manner as the sound generation conditions of various sound source devices (see step Se3). However, in this embodiment, the number of tones (tone colors) to be synthesized by the CPU or the like at this time is the CPU synthesis mode. The condition is that the number of pronunciations that can be pronounced simultaneously is within the range. That is, in step Se11, it is determined whether or not the number of channels (CH) that are currently sounding by the CPU 10 or the like is equal to or less than the number of channels that can be sounded simultaneously by the CPU 10 or the like.
[0062]
If it is determined that such a sound generation condition is satisfied, it is further determined in step Se12 whether or not the flag ENBLFLG is “1”. When the flag ENBLFLG is “1”, as described above, indicates a state in which sound generation is possible in the CPU synthesis mode. Therefore, in step Se13, the waveform synthesis to be performed by the CPU 10 or the like is performed by the CPU 10 or the like. The pronunciation assignment processing is performed, and the processing procedure proceeds to step Se9 in FIG. Note that the details of the CPU sound assignment processing in step Se13 are the same as those in step Se7 already described, and thus the description thereof is omitted.
[0063]
On the other hand, if it is determined in step Se11 that the sound generation condition of the CPU 10 or the like is not satisfied, or if it is determined in step Se12 that the CPU 10 or the like is not in a soundable state, the processing corresponding to the event is performed with various sound sources. In order to be executed by the device, in step Se14, as in step Se4, sound generation assignment processing is executed for various sound source devices. In step Se15, as in step Se5, the sound generation process using the selection / designated hardware is executed.
[0064]
Further, after the CPU sound generation assignment process in step Se7 or Se13, the next steps Se9 and 10 are performed. That is, in step Se9, the presence / absence of a CPU waveform generation / assignment command by the CPU sound generation assignment process is determined, and if not, the processing procedure immediately returns, whereas if present, the CPU waveform generation / assignment command is returned in step Se10. The processing for calculating and obtaining the waveform sample is executed according to the above.
[0065]
As described above, in the various sound source device priority modes, the sound generation processing corresponding to the sound generation conditions of the various sound source devices is performed by the various sound source devices in step Se5, while the sound generation processing corresponding to the unsatisfied sound generation device is performed in step Se10. This is performed by the CPU 10 or the like.
On the other hand, if the sound source device priority mode is not set, the sound generation process corresponding to the sound generation condition of the CPU 10 or the like is performed by the CPU 10 or the like in step Se10, while the sound generation process for the unsatisfied sound condition is performed in step Se15. Will be performed.
That is, in the sound generation process in the selected hardware, if the hardware processing capacity specified in the various sound source device use modes is exceeded, sound generation is performed in the CPU composition mode described above for the excess. Therefore, it is possible to easily generate more sounds than the number of simultaneously soundable sounds in the hardware without adding hardware.
[0066]
2-1-4: Timer processing
Next, the timer process will be described. This timer process is an interrupt process executed every predetermined period Tt during the execution of the above-described waveform synthesis program. FIG. 17 is a flowchart showing the procedure of the timer process.
First, in step Sf1, it is determined whether or not the flag BUSY is “1” and the up-count is permitted. If the determination result is “No”, the procedure skips to step Sf3, and if “Yes”, the register TCOUNT is incremented by “1” in step Sf2. In step Sf3, another timer process is executed, and this routine ends.
Thus, in the timer process, if the flag BUSY is “1”, the register TCOUNT is incremented by “1” every time it is activated. The flag BUSY is set to “1” only during the period in which the loop processing of steps Sa9 to Sa11 is executed (steps Sa7 and Sa12). This indicates how many times the timer process has been started within the period required to calculate and read the waveform data by m samples, and the elapsed time required at that time depends on the product of TCOUNT and Tt. Will be represented.
[0067]
2-1-5: Specific operation in this embodiment
The configuration shown in FIG. 1 is a configuration in which all of the optional products, that is, all of the coprocessor 17, the DSP 21, and the sound source device 22 are mounted.
Therefore, in this configuration, all operation modes can be used for the sound generation method designation and assignment method. At this time, if the operation mode is the various tone generator device priority modes, processing exceeding the processing capability of the various tone generator devices is assigned to the CPU side, and the CPU or the like processes this. It is possible to generate musical sounds that exceed the performance of the sound source device, and thus generate various timbres.
Furthermore, in this configuration, various timbres can be generated even when the operation mode is the CPU priority mode.
In addition, since the sampling frequency fs is optimally set according to the system configuration (step Sa21), the quality of the musical sound does not deteriorate.
[0068]
3: Specific operation in other configurations
Although the present embodiment has been described on the assumption of the configuration of the full option shown in FIG. 1 (FIG. 2), the hardware configuration of a system using a CPU such as a personal computer or an electronic musical instrument depends on the presence or absence of optional products. It is another. The waveform synthesis program described above also has different operation modes that can be specified depending on the hardware configuration. Therefore, in the configuration other than that shown in FIG. 1, how the waveform synthesis program operates will be briefly described with a specific configuration.
[0069]
3-1: No option
The hardware configuration illustrated in FIG. 21 is a configuration in which all of the optional products in the configuration illustrated in FIG. 1, that is, all of the coprocessor 17, the DSP 21, and the sound source device 22 are not mounted.
Therefore, in this configuration, since the determination result in step Sa4 (see FIG. 8) is “Yes”, the various sound source device use modes cannot be used, and the CPU composition mode can be used. However, since neither the coprocessor 17 nor the DSP 21 is mounted, real-time calculation of waveform data becomes difficult unless the processing capability of the CPU 10 alone is extremely high. For this reason, in reality, only the waveform memory reading mode in the CPU synthesis mode may be usable.
[0070]
3-2: Only coprocessor installed
The hardware configuration shown in FIG. 22 is a configuration in which only the coprocessor 17 is mounted among the optional products in the configuration shown in FIG.
Therefore, even in this configuration, since the determination result in step Sa4 (see FIG. 8) is “Yes”, the various sound source device use modes cannot be used, and only the CPU synthesis mode can be used. However, since the coprocessor 17 is mounted, real number arithmetic processing can be performed at a high speed, so that all modes of the CPU synthesis mode can be used.
In this configuration, since the coprocessor 17 is mounted, the sound generation calculation process (step Sa9) and the waveform sample generation calculation (step Sa15) are performed in combination with the coprocessor.
[0071]
3-3: Coprocessor and DSP installed (no waveform memory etc.)
The hardware configuration shown in FIG. 23 is a configuration in which the coprocessor 17 and the DSP 21 are mounted among the optional products in the configuration shown in FIG. 1, and the DSP 21 is intended for high-speed calculation of waveform data.
Here, taking the standpoint that the DSP 21 belongs to various sound source devices, the determination result of step Sa4 is “No” in the second and subsequent activations, and therefore various sound source device use modes can be used. However, since the DSP 21 is intended to perform calculations, the waveform data is generated by various calculations rather than the waveform memory reading method.
Depending on the allocation, a CPU synthesis mode is also possible, but with this configuration, waveform data can be calculated, but since the DMAC 19 and RAM 20 are not provided, the waveform memory read mode can be used in the CPU synthesis mode. First, an FM mode, a harmonic synthesis mode, and a physical modeling synthesis mode that calculate waveform data in real time can be used.
In this configuration as well, since the coprocessor 17 is mounted, the sound generation calculation process (step Sa9) and the waveform sample generation calculation (step Sa15) are performed in combination with the coprocessor.
[0072]
3-4: Sound source device only
The hardware configuration shown in FIG. 24 is a configuration in which only the sound source device is mounted among the optional products in the configuration shown in FIG.
Therefore, in this configuration, since the determination result in step Sa4 (see FIG. 8) is “No” in the second and subsequent activations, various sound source device use modes can be used.
Depending on the assignment, a CPU synthesis mode is also possible. In this configuration, waveform data can be calculated, but the waveform memory read mode cannot be used because the DMAC 19 and the RAM 20 are not provided. In addition, since the coprocessor 17 is not installed, real-time calculation of waveform data is difficult unless the processing capability of the CPU 10 alone is extremely high. For this reason, in practice, all the CPU synthesis modes may be disabled.
[0073]
4: Other embodiments
Next, an embodiment different from the above-described embodiment will be described.
4-1: Second embodiment
First, a second embodiment will be described.
In general, even when sound-repellent waveform data such as a rhythm system or a drum system is obtained by calculation using FM, harmonic synthesis, or the like, it is difficult to reproduce atmospheric musical sounds.
For this reason, when the sound source device 22 is provided and the sound source device 22 is configured to calculate and obtain musical tone waveform data by an FM method other than the waveform memory reading method, the sound source device 22 It is not appropriate to play sound repellent music. In addition, since such a sound source device 22 is provided, there is little need for the CPU 10 or the like to calculate and obtain waveform data in an operation mode other than the waveform memory read mode. Furthermore, since it is necessary for the CPU 10 and the like to perform processing other than waveform synthesis, there is a situation where it is desirable to reduce the load associated with the execution of the waveform synthesis program, particularly when the performance of the CPU 10 or the like is low. .
Therefore, in such a case, the CPU 10 or the like generates sound-repellent waveform data unsuitable for the sound source device 22 in the waveform memory read mode, while the sound source device 22 as various sound source devices calculates the waveform data of other musical sounds. Therefore, it is possible to minimize the load for the CPU 10 and the like, and it is unnecessary for the sound source device 22 to produce a poor sound, which is convenient for both. Furthermore, there is an advantage that the quality of the reproduced musical sound can be kept high.
The purpose of this second embodiment is exactly this point.
[0074]
The second embodiment is structurally premised on the mounting of the sound source device 22 as shown in FIGS. Further, with respect to the waveform synthesis program, the sound generation process (see FIGS. 15 and 16) including the selected hardware is replaced with the process shown in FIG. That is, for the sound generation process including the selected hardware executed in step Sa34 (see FIG. 11) described above, the process shown in FIG. 18 is performed. For this reason, the replacement process will be described, and other items will be duplicated and will not be described.
[0075]
In this embodiment, when the processing procedure of the waveform synthesis program proceeds to step Sa34, a sound generation process including the selected hardware as shown in FIG. 18 is executed. First, in step Sg1, event detection management is performed as in step Se1.
Next, in step Sg2, a sound generation designation system check is performed. That is, for each timbre to be generated, it is assigned whether to process on the CPU 10 side or on the various sound source device sides. Here, what is the basis for such allocation will be described.
In general, since a sound source device has a unique tone color arrangement, the tone color to be generated is uniquely determined by determining the tone color number. Therefore, if the tone number of the musical tone to which the event is detected belongs to the picked tone number in advance, the CPU 10 or the like is set to process the tone number to which the tone-repellent tone belongs. In other cases, the processing is set to be performed by the sound source device 22 or the like as various sound source devices.
[0076]
In the present embodiment, the allocation standard should not be limited to the timbre number. For example, depending on the manual mode, the processing side for each timbre, such as the CPU side for a certain timbre and the various sound source sides for a certain timbre, May be set respectively. Further, as in the first embodiment, the number of channels that can be simultaneously generated may be assigned. Furthermore, it may be forcibly assigned by a program that is being executed by the forced mode.
[0077]
Now, in step Sg3, as in step Se4 (see FIG. 15), tone assignment processing is performed on the timbres assigned to the various sound source devices, and empty channels are provided on the various sound source devices. In step Sg6, a waveform sample corresponding to the detected event is actually generated by the empty channel. The generation method in this case includes not only FM, harmonic synthesis, and physical modeling synthesis, but also various methods depending on the characteristics of the sound source device 22 to be mounted, such as PCM for reading waveform data in the waveform memory 25 and waveform memory reading. Conceivable.
[0078]
On the other hand, with respect to the timbre assigned to the CPU side, CPU sound generation assignment processing is performed in step Sg5 as in step Se7 (see FIG. 15), and a CPU waveform generation assignment command corresponding to the detected event is generated. Is done. When such a CPU waveform generation assignment command is present, the determination result in step Sg6 is “Yes”, and the sound generation calculation process in step Sg7 generates a sound sample corresponding to the assignment command. Processing is executed. This sound generation calculation process is performed in the waveform memory reading mode in order to reduce the burden on the CPU and the like as described above. On the other hand, if there is no CPU waveform generation assignment command, the determination result in step Sg6 is “No”, and the procedure returns.
[0079]
According to the second embodiment, a certain tone color can be arbitrarily assigned to the CPU side, and a certain tone color can be arbitrarily assigned to the various sound source devices side. Furthermore, it is possible to diversify while maintaining the quality of the reproduced musical sound.
[0080]
4-2: Third embodiment
Next, a third embodiment will be described. In the first embodiment and the second embodiment described above, sound generation processing related to one tone color is performed by any channel on the CPU side or various sound source device sides, but sound generation processing related to a certain tone color is performed on the CPU side. Alternatively, the configuration may be performed using both channels on the various sound source devices. In particular, in this case, if the waveform data is calculated and obtained by harmonic synthesis on the CPU side and FM synthesis other than the harmonic synthesis on the various sound source devices side, the same timbre can be generated. Since it is calculated | required with a different calculation method, as a result, it will sound with a different tone. For this reason, it is conceivable that it greatly contributes to diversification of timbres.
The purpose of the third embodiment is exactly this point.
[0081]
Similar to the second embodiment, the third embodiment is premised on the mounting of the sound source device 22 as shown in FIGS. For the waveform synthesis program, the sound generation process (see FIGS. 15 and 16) including the selected hardware is replaced with the process shown in FIG. That is, for the sound generation process including the selected hardware executed in step Sa34 (see FIG. 11) described above, the process shown in FIG. 19 is performed. For this reason, the replacement process will be described, and other items will be duplicated and will not be described.
[0082]
In this embodiment, when the processing procedure of the waveform synthesis program proceeds to step Sa34, a sound generation process including the selected hardware as shown in FIG. 19 is executed. First, in step Sh1, event detection management is performed as in steps Se1 and Sg1.
Next, in step Sh2, a sound generation designation system check is performed. That is, for each timbre to be generated, it is assigned whether to be processed on the CPU 10 or the like side, on the various sound source device sides, or on both sides. Here, as in the second embodiment, various allocation standards are conceivable, such as a timbre number, the number of channels capable of simultaneous sound generation, setting in a manual mode, and setting in a forced mode.
[0083]
As for the timbres assigned to the various tone generator devices, in step Sh3, as in step Se4 (see FIG. 15), a sound generation assignment process is performed to provide an empty channel on the various tone generator devices. In step Sh4, a waveform sample corresponding to the detected event is actually generated by the empty channel. The generation method in this case includes not only FM, harmonic synthesis, and physical modeling synthesis, but also various methods depending on the characteristics of the sound source device 22 to be mounted, such as PCM for reading waveform data in the waveform memory 25 and waveform memory reading. Conceivable.
On the other hand, for the timbre assigned to the CPU side, CPU sound generation assignment processing is performed in step Sh5, and a CPU waveform generation assignment command corresponding to the detected event is generated. The CPU waveform generation assignment command in this case also includes information for designating the calculation method.
As for the timbres assigned to both the various sound source devices and the CPU, the processes of steps Sh3 and Sh4 are performed on the various sound generator devices, and the process of step Sh5 is performed on the CPU. That is, both are performed in parallel.
[0084]
When such a CPU waveform generation assignment command is present, the determination result in step Sh6 is “Yes”, and the sound generation calculation process in step Sh7 generates a sound sample corresponding to the assignment command. Processing is executed. Note that the sound generation calculation processing in this case is different from the sound generation calculation processing of the second embodiment, and various methods such as FM, harmonic synthesis, and physical modeling synthesis are conceivable as well as waveform memory reading. On the other hand, if there is no CPU waveform generation assignment command, the determination result in step Sg6 is “No”, and the procedure returns.
[0085]
In the third embodiment, since a certain timbre can be assigned to both the CPU side and the various sound source device sides, one timbre is generated by two substantially different timbres in terms of data. it can. Therefore, according to the third embodiment, it is possible to diversify generated musical sounds in this sense.
[0086]
4-3: Fourth embodiment
Next, a fourth embodiment will be described. In each of the embodiments described above, the operation mode as the sound generation assignment method is specified. However, the present application is not limited to this, and various sound source devices are mounted and assigned to the various sound source devices. If an event is detected, the processing may be performed by various sound source devices. The configuration in that case is exactly this fourth embodiment.
[0087]
Similar to the second and third embodiments, the fourth embodiment is premised on the mounting of the sound source device 22 as shown in FIGS. Further, with respect to the waveform synthesis program, the sound generation process (see FIGS. 15 and 16) including the selected hardware is replaced with the process shown in FIG. That is, for the sound generation process including the selected hardware executed in step Sa34 (see FIG. 11) described above, the process shown in FIG. 20 is performed. For this reason, the replacement process will be described, and other items will be duplicated and will not be described.
[0088]
In this embodiment, when the processing procedure of the waveform synthesis program proceeds to step Sa34, a sound generation process including the selected hardware as shown in FIG. 20 is executed. First, although not shown, event detection management is performed as in steps Se1 and Sg1.
Next, in step Si1, a sound generation assignment process is performed, and an empty channel is provided on the various sound source devices. In step Si2, a waveform sample corresponding to the detected event is actually generated by the empty channel. The generation method in this case includes not only FM, harmonic synthesis, and physical modeling synthesis, but also various methods depending on the characteristics of the sound source device 22 to be mounted, such as PCM for reading waveform data in the waveform memory 25 and waveform memory reading. Conceivable. Thereafter, the processing procedure returns.
[0089]
According to the fourth embodiment, when various sound source devices are mounted and an event assigned to the various sound source devices is detected, the processing can be performed by the various sound source devices.
[0090]
4-4: Other
In the above-described embodiment, the coprocessor 17, the DSP 21, the sound source device 22, and the like are taken as examples of optional products, but the present application is not limited to these.
The configuration of the present application can be applied to any application system using a CPU, such as a personal computer, an electronic musical instrument, or a game machine, which generates musical sounds.
[0091]
【The invention's effect】
The present invention described above has the following effects.
Musical tone can be generated at an optimum sampling frequency in the apparatus configuration.
It is possible to simplify the configuration for generating musical sound waveform sampling data.
Even when the performance of the device configuration is low, the quality of the generated musical sound can be ensured.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration to which the present invention is applied.
FIG. 2 is a block diagram showing a modified example around the bus in the same configuration.
FIG. 3 is a block diagram showing a modified example around the bus in the same configuration.
4A is a block diagram showing a configuration when sound source device peripherals in the same configuration are integrated, and FIG. 4B is a block diagram showing a configuration when DSP peripherals in the same configuration are integrated. It is.
FIG. 5 is a diagram for explaining an operation mode of the first embodiment according to the present invention.
FIG. 6 is a diagram showing a memory map of a RAM in the same embodiment.
FIG. 7 is a flowchart showing an overview of the entire process in the embodiment.
FIG. 8 is a flowchart showing a procedure of a waveform synthesis program executed according to the embodiment.
FIG. 9 is a flowchart showing a procedure of a waveform synthesis program executed according to the embodiment.
FIG. 10 is a flowchart showing a procedure of a waveform synthesis program executed according to the embodiment.
FIG. 11 is a flowchart showing a procedure of a waveform synthesis program executed according to the embodiment.
FIG. 12 is a flowchart showing a procedure of waveform sample loading processing in the waveform synthesis program.
FIG. 13 is a flowchart showing the procedure of waveform sample generation calculation in the waveform synthesis program.
FIG. 14 is a flowchart showing a procedure of waveform sample calculation processing by the CPU in the waveform synthesis program.
FIG. 15 is a flowchart showing a procedure of sound generation processing including selected hardware in a waveform synthesis program.
FIG. 16 is a flowchart showing a sound generation process including selected hardware in the waveform synthesis program;
FIG. 17 is a flowchart showing a timer processing procedure in the waveform synthesis program;
FIG. 18 is a flowchart showing a procedure of sound generation processing including selected hardware in the second embodiment of the present invention.
FIG. 19 is a flowchart showing a procedure of sound generation processing including selected hardware in the third embodiment of the present invention.
FIG. 20 is a flowchart illustrating a sound generation process including selected hardware in the fourth embodiment of the present invention.
FIG. 21 is a block diagram illustrating an example of a configuration to which the present invention is applied.
FIG. 22 is a block diagram showing an example of a configuration to which the present invention is applied.
FIG. 23 is a block diagram illustrating an example of a configuration to which the present invention is applied.
FIG. 24 is a block diagram showing an example of a configuration to which the present invention is applied.
[Explanation of symbols]
10 ... CPU (arithmetic processing means, detection means, control means, sampling frequency determining means), 17 ... coprocessor, 22 ... sound source device

Claims (2)

楽音発生装置であって、
楽音波形を記憶する記憶手段と、
前記記憶手段に記憶された楽音波形を読み出すことにより楽音を発生する波形メモリ方式を含む複数の発音方式で楽音を発生することが可能な演算処理手段と、
前記波形メモリ方式以外の発音方式が指定された場合に、指定された方式における当該楽音発生装置の処理能力を反映した周波数を算出する算出手段と、
を有し、
前記算出手段により算出された周波数が所定の周波数以下であると判断された場合には、前記演算処理手段が、発音方式を波形メモリ方式に切り換える
ことを特徴とする楽音発生装置。
A musical sound generator,
Storage means for storing musical sound waveform;
Arithmetic processing means capable of generating a musical sound by a plurality of sound generation methods including a waveform memory method for generating a musical sound by reading out a musical sound waveform stored in the storage means;
When a sound generation method other than the waveform memory method is designated, calculation means for calculating a frequency reflecting the processing capability of the musical sound generating device in the designated method;
Have
An apparatus for generating a musical sound , wherein, when it is determined that the frequency calculated by the calculating means is equal to or lower than a predetermined frequency, the arithmetic processing means switches the sound generation method to a waveform memory method .
前記算出手段により算出された周波数が所定の周波数以下であると判断された場合、かつ、前記算出手段により算出された周波数が所定の周波数以下であると判断されたときには発音方式を波形メモリ方式に切り換える旨が指示された場合、前記記憶手段が、波形メモリ方式以外の方式で生成した楽音波形を記憶することを特徴とする請求項1記載の楽音発生装置。 When it is determined that the frequency calculated by the calculating unit is equal to or lower than a predetermined frequency, and when the frequency calculated by the calculating unit is determined to be equal to or lower than the predetermined frequency, the sound generation method is changed to the waveform memory method. 2. A musical sound generating apparatus according to claim 1 , wherein , when switching is instructed, the storage means stores a musical sound waveform generated by a method other than a waveform memory method.
JP2000180368A 1995-06-06 2000-06-15 Music generator Expired - Fee Related JP3716710B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000180368A JP3716710B2 (en) 1995-06-06 2000-06-15 Music generator

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7-139526 1995-06-06
JP13952695 1995-06-06
JP2000180368A JP3716710B2 (en) 1995-06-06 2000-06-15 Music generator

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP10363578A Division JP3104697B2 (en) 1995-06-06 1998-12-21 Music sound generating apparatus and music sound generating method

Publications (2)

Publication Number Publication Date
JP2001034271A JP2001034271A (en) 2001-02-09
JP3716710B2 true JP3716710B2 (en) 2005-11-16

Family

ID=15247344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000180368A Expired - Fee Related JP3716710B2 (en) 1995-06-06 2000-06-15 Music generator

Country Status (1)

Country Link
JP (1) JP3716710B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112353676B (en) * 2020-09-22 2023-05-23 未来穿戴技术有限公司 Vibration massage method and device, massage equipment and storage medium

Also Published As

Publication number Publication date
JP2001034271A (en) 2001-02-09

Similar Documents

Publication Publication Date Title
JP2998612B2 (en) Music generator
US5376750A (en) Electronic musical instrument having working RAM controlled by plural CPUs
JPH05143065A (en) Electronic musical instrument
JP3716710B2 (en) Music generator
JP2705395B2 (en) Electronic musical instrument
JP3169003B2 (en) Music generator
JP3104697B2 (en) Music sound generating apparatus and music sound generating method
JP3152198B2 (en) Music sound generation method and music sound generation device
JPH08314450A (en) Music system and electronic musical instrument
JP3257400B2 (en) Effect device
JP3125984B2 (en) Method for standardizing tone parameters and tone synthesis algorithm in tone synthesizer
JP3039468B2 (en) Karaoke equipment
JP3870964B2 (en) Music signal generation method, music signal generation device, and medium recording program
JP2897614B2 (en) Karaoke equipment
JPH09297579A (en) Musical sound synthesizer
JP2001282243A (en) Electronic musical tone generator, electronic musical tone generating method and recording medium
JP2004279750A (en) Device and program for musical sound generation
JP2596303B2 (en) Electronic musical instrument
CN1192350C (en) Computerized music system having software and hardware sound sources
JP3322279B2 (en) Karaoke equipment
JP2001282241A (en) Electronic musical tone generator, electronic musical tone generating method and recording medium
JPH05265458A (en) Electronic musical instrument
JP2008097022A (en) Musical sound generator
JPH06259075A (en) Electronic musical instrument
JPH0816164A (en) Sound generation instruction generating device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050322

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050516

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050822

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100909

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110909

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120909

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees