JP3716710B2 - 楽音発生装置 - Google Patents

楽音発生装置 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
English (en)
Other versions
JP2001034271A (ja
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/ja
Publication of JP2001034271A publication Critical patent/JP2001034271A/ja
Application granted granted Critical
Publication of JP3716710B2 publication Critical patent/JP3716710B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

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……音源デバイス

Claims (2)

  1. 楽音発生装置であって、
    楽音波形を記憶する記憶手段と、
    前記記憶手段に記憶された楽音波形を読み出すことにより楽音を発生する波形メモリ方式を含む複数の発音方式で楽音を発生することが可能な演算処理手段と、
    前記波形メモリ方式以外の発音方式が指定された場合に、指定された方式における当該楽音発生装置の処理能力を反映した周波数を算出する算出手段と、
    を有し、
    前記算出手段により算出された周波数が所定の周波数以下であると判断された場合には、前記演算処理手段が、発音方式を波形メモリ方式に切り換える
    ことを特徴とする楽音発生装置。
  2. 前記算出手段により算出された周波数が所定の周波数以下であると判断された場合、かつ、前記算出手段により算出された周波数が所定の周波数以下であると判断されたときには発音方式を波形メモリ方式に切り換える旨が指示された場合、前記記憶手段が、波形メモリ方式以外の方式で生成した楽音波形を記憶することを特徴とする請求項1記載の楽音発生装置。
JP2000180368A 1995-06-06 2000-06-15 楽音発生装置 Expired - Fee Related JP3716710B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000180368A JP3716710B2 (ja) 1995-06-06 2000-06-15 楽音発生装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP13952695 1995-06-06
JP7-139526 1995-06-06
JP2000180368A JP3716710B2 (ja) 1995-06-06 2000-06-15 楽音発生装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP10363578A Division JP3104697B2 (ja) 1995-06-06 1998-12-21 楽音発生装置および楽音発生方法

Publications (2)

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

Family

ID=15247344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000180368A Expired - Fee Related JP3716710B2 (ja) 1995-06-06 2000-06-15 楽音発生装置

Country Status (1)

Country Link
JP (1) JP3716710B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112353676B (zh) * 2020-09-22 2023-05-23 未来穿戴技术有限公司 振动按摩方法及装置、按摩设备、存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2998612B2 (ja) 楽音発生装置
US5376750A (en) Electronic musical instrument having working RAM controlled by plural CPUs
JPH05143065A (ja) 電子楽器
JP3716710B2 (ja) 楽音発生装置
JP2705395B2 (ja) 電子楽器
JP3169003B2 (ja) 楽音発生装置
JP3104697B2 (ja) 楽音発生装置および楽音発生方法
JP3152198B2 (ja) 楽音発生方法および楽音発生装置
JPH08314450A (ja) ミュージックシステムおよび電子楽器
JP3257400B2 (ja) エフェクト装置
JP3125984B2 (ja) 楽音合成装置において音色パラメータおよび楽音合成アルゴリズムを共通化する方法
JP3039468B2 (ja) カラオケ装置
JP3870964B2 (ja) 楽音信号生成方法、楽音信号生成装置及びプログラムを記録した媒体
JP2897614B2 (ja) カラオケ装置
JPH09297579A (ja) 楽音合成装置
JP2001282243A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JP2004279750A (ja) 楽音発生装置および楽音発生プログラム
JP2596303B2 (ja) 電子楽器
CN1192350C (zh) 乐器以及依演奏信息生成乐音的方法
JP3322279B2 (ja) カラオケ装置
JP2001282241A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JPH05265458A (ja) 電子楽器
JP2008097022A (ja) 楽音発生装置
JPH06259075A (ja) 電子楽器
JPH0816164A (ja) 発音命令生成装置

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