JPH11249659A - 楽音発生装置および楽音発生方法 - Google Patents

楽音発生装置および楽音発生方法

Info

Publication number
JPH11249659A
JPH11249659A JP10363578A JP36357898A JPH11249659A JP H11249659 A JPH11249659 A JP H11249659A JP 10363578 A JP10363578 A JP 10363578A JP 36357898 A JP36357898 A JP 36357898A JP H11249659 A JPH11249659 A JP H11249659A
Authority
JP
Japan
Prior art keywords
waveform
tone
cpu
musical
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10363578A
Other languages
English (en)
Other versions
JP3104697B2 (ja
Inventor
Masatada Wachi
正忠 和智
Hideo Yamada
秀夫 山田
Masashi Hirano
正志 平野
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 JP10363578A priority Critical patent/JP3104697B2/ja
Publication of JPH11249659A publication Critical patent/JPH11249659A/ja
Application granted granted Critical
Publication of JP3104697B2 publication Critical patent/JP3104697B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 装置構成が異なってしまっても、その構成に
おいて最適なサンプリング周波数を設定する。 【解決手段】 所定のサンプリング周波数にて生成した
波形データに基づいて楽音を発生する楽音発生装置にお
いて、CPU10およびコプロセッサ17は、1サンプ
ルあたりに必要な波形サンプルのデータを所定の方式で
演算して求め、この際の演算処理に要した時間から逆
に、サンプリング周波数を設定する。また、CPU10
は、演算処理に要した時間により設定されるサンプリン
グ周波数では、十分な楽音品質が得られない場合、楽音
の発生方式を、よりCPU負担の少ない方式に変更す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、例えば、電子ゲ
ーム機器や、通信カラオケ装置、パソコン等のように、
CPUを用いた応用システムに用いて好適な楽音発生装
置に関し、特に、楽音の発生を指示するデータに基づき
多様な楽音を合成する楽音発生装置および楽音発生方法
に関する。
【0002】
【従来の技術】従来、パソコンなどで楽音を発生しよう
とする場合には、専用の音源デバイスや、音源ボードな
どの専用のハードウェアを組み込み、これらを制御する
ことで、所定の楽音を発生するようになっていた。が、
近年、パソコンの性能、特にCPUの性能が著しく向上
したので、音源ボード等の専用ハードウェアで実行すべ
き処理をもCPUが実行することにより、楽音を発生す
るようことが行なわれつつある。このような楽音発生
は、CPUが専用のソフトウェア(プログラム)にした
がって楽音波形の(サンプリング)データを演算して求
めることから、ソフトウェア音源とも呼ばれ、従来の、
専用のハードウェアを用いて楽音を発生するハードウェ
ア音源と区別される。
【0003】
【発明が解決しようとする課題】しかしながら、ソフト
ウェア音源により発生される楽音の品質は、演算処理を
担うCPUの性能に大きく依存する。すなわち、CPU
の性能が高い場合には、波形データ(サンプリングデー
タ)を求める演算処理を高速で実行できるため、サンプ
リング周波数をより高くして、品質の高い楽音を発生す
ることが可能である。しかし、CPUの性能が低い場合
には、高速な演算処理が困難となるため、サンプリング
周波数を低くしなければならず、このため、楽音の品質
が低くならざるを得ない。
【0004】一方、パソコン等のように、CPUを用い
た応用システムでは、CPUの性能や、オプション品等
の装着状態が千差万別である(通常、オプション品と
は、広義にはハードディスクや、ビデオカードなども含
むが、ここでは、楽音の発生に何らかの形で寄与するも
のをいう)。すなわち、CPUの性能は、個々のシステ
ムに応じて異なることを念頭に置かなければならない。
さらに、楽音発生のためのアプリケーションプログラム
と、それ以外のアプリケーションプログラムとを複数同
時起動するような場合、楽音発生のためのプログラムの
実行に割り当てられるCPUの負担は、他のプログラム
の起動状況やタスクの状態等によって変動することがあ
る。すなわち、全く同一のシステム環境ですら、楽音発
生のプログラムから見れば、CPUの性能が見掛け上、
変動することがあり得るのである。したがって、ユーザ
は、ソフトウェア音源により楽音を発生する場合にあっ
ては、環境が変わる毎に、楽音発生のための基本的な事
項を再設定しなければならず、非常に煩雑である、とい
う問題があった。しかも、かかるシステムで、設定事項
で定められる条件で楽音発生が可能であるか否かは、実
際に発音させて、音飛び、音欠け等の不都合が発生する
か否かではじめて判明する。すなわち、設定事項が、そ
のシステムにおいて適切であるかどうかは、実際に発音
させるまで判明しない、という問題がある。
【0005】本発明は、上述した問題に鑑みてなされた
もので、その目的とするところは、装置構成等に変動が
あっても、その構成において、適切な品質を確保した上
で多様な楽音を発生することが可能な楽音発生装置およ
び楽音発生方法を提供することにある。
【0006】
【課題を解決するための手段】上述した問題を解決する
ために請求項1に記載の発明にあっては、楽音発生方法
であって、プログラムにしたがって動作する演算処理手
段の性能を検出する第1ステップと、前記第1ステップ
の検出結果に基づいてサンプリング周波数制御データを
生成する第2ステップと、前記サンプリング周波数制御
データに応じたサンプリング周波数で楽音を生成する楽
音生成処理を、前記演算処理手段に実行させる第3ステ
ップとから成ることを特徴とする。請求項2に記載の発
明にあっては、プログラムにしたがって動作する演算処
理手段を用いて楽音を発生する楽音発生装置において、
前記演算処理手段の性能を検出する検出手段と、前記検
出手段の検出結果に基づいてサンプリング周波数制御デ
ータを生成するサンプリング周波数決定手段と、前記サ
ンプリング周波数制御データに応じたサンプリング周波
数で楽音を生成する楽音生成処理を、前記演算処理手段
に実行させる制御手段とを具備することを特徴とする。
請求項3に記載の発明にあっては、請求項2に記載の楽
音発生装置において、前記検出手段は、前記演算処理手
段で所定の楽音波形を生成するのに要した時間を計測す
ることにより前記演算処理手段の性能を検出するもので
あることを特徴とする。請求項4に記載の発明にあって
は、請求項3記載の楽音発生装置において、前記サンプ
リング周波数決定手段は、予め段階的に設定された複数
のサンプリング周波数のうち、前記検出手段により計測
された時間に基づいて求めたサンプリング周波数よりも
低いものであって、最も高いものを決定することを特徴
とする。請求項5に記載の発明にあっては、請求項2記
載の楽音発生装置において、前記サンプリング周波数決
定手段により決定されたサンプリング周波数が所定のサ
ンプリング周波数よりも低い場合には、前記演算処理手
段の演算処理を変更してサンプリングデータを生成する
ようにしたことを特徴とする。請求項6に記載の発明に
あっては、請求項5記載の楽音発生装置において、前記
サンプリング周波数決定手段により決定されたサンプリ
ング周波数が所定のサンプリング周波数よりも低い場合
には、予め記憶した楽音波形のサンプリングデータの読
み出しにより楽音を発生することを特徴とする。請求項
7に記載の発明にあっては、プログラムにしたがって動
作する演算処理手段を用いて楽音を発生する楽音発生装
置において、前記演算処理手段は、記憶手段に記憶され
た楽音波形を読み出すことにより楽音を発生する波形記
憶方式を少なくとも含む複数の方式で楽音を発生可能で
あって、前記波形メモリ方式で楽音を発生する場合に
は、前記波形メモリ方式以外の方式で楽音波形を発生す
るとともに、該発生された楽音波形を前記記憶手段に記
憶するようにしたことを特徴とする。請求項8に記載の
発明にあっては、プログラムにしたがって動作する演算
処理手段を用いて楽音を発生する楽音発生装置におい
て、前記演算処理手段で楽音発生プログラムと並行して
他のプログラムを実行するとともに、前記他のプログラ
ムに応じて前記楽音発生プログラムを制御するようにし
たことを特徴とする。
【0007】(作用)請求項3に記載の発明のように、
検出手段は、所定の楽音波形を生成するのに要する時間
を計測して、サンプリング周波数決定手段が、この時間
に基づいて、サンプリングデータのサンプリング周波数
を決定する。このため、システム構成に適切なサンプリ
ング周波数にて楽音発生を行なうことが可能となる。一
般に、サンプリング周波数が無段階であると、そのため
の構成が複雑化しやすいが、請求項4に記載の発明によ
れば、サンプリング周波数決定手段により決定され得る
サンプリング周波数は、予め設定された複数のものに限
定されるため、構成が複雑化する不都合が回避される。
請求項5に記載の発明によれば、サンプリング周波数決
定手段により決定されるサンプリング周波数が所定のサ
ンプリング周波数よりも低い場合には、演奏情報に基づ
いて楽音波形のデータを所定のサンプリング周波数にて
生成することによっては発生楽音の品質が保てないと判
断され、演算処理が変更される。この場合、請求項6に
記載の発明のように、ロードしておいたサンプリングデ
ータを読み出すようにして、演算処理の負荷を減らすこ
とが望ましい。
【0008】
【発明の実施の形態】1:構成 以下、本発明の最適な実施形態について図面を参照して
説明する。図1は、本発明が適用される楽音発生装置の
構成を示すブロック図である。この図において、符号1
0はCPUであり、ROM11に記憶された基本プログ
ラムに基づいて、(データ)バス12を介して各部を制
御するようになっている。符号13はRAMであり、後
述する各種レジスタやフラグを設定したり、各種データ
を一時的に記憶する。符号14はマルチI/Oポートで
あり、例えばMIDI情報を入出力したり、図示しない
鍵盤による操作情報KBDなどを入力したり、また、図
示しない各種のインターフェイス(I/F)を介し各種
の情報を入力する。すなわち、マルチI/Oポート14
は、発生すべき楽音を規定する演奏情報を、MIDI情
報や、操作情報KBDとして入力する。なお、本実施形
態では、演奏情報が自動演奏により発生する場合も想定
している。この場合の自動演奏とは、所定の自動演奏プ
ログラムを実行することにより、演奏情報が時系列的に
発生する場合をいい、換言すれば、図1の構成が、自動
演奏プログラムの実行により、楽音発生装置としてのみ
ならず、いわばシーケンサとしても働く場合をいう。ま
た、I/Fの種類としては、シリアルや、パラレル、R
S−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を介
さずに直接行なう。なお、近年においてコプロセッサ1
7、タイマ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については、装着されない場合、RAM
13の領域の一部がRAM24として割り当てられ、ま
た、波形メモリ25については、音源デバイス22がF
M合成方式など純粋な演算のみにより波形データを生成
する方式により楽音を発生するものであれば、あえて装
着する必要はない。
【0013】このため、CPU10は、何らかの形でこ
のようなオプション品が搭載・装着されているか否かを
知る必要があるが、本実施形態では、例えば、次のよう
な方法により構成部品の有無を知るようになっている。 構成部品を設ける場合に、接続するアドレスを予め決
めておき、CPU10が、例えば起動直後や、リセット
直後に、にかかるアドレスをアクセスする。この際、C
PU10は、しかるべきデータが読み出された場合に、
構成部品が搭載されていると判断する。 構成部品の搭載を示すジャンパスイッチを設けてお
き、構成部品を搭載した場合に、当該ジャンパスイッチ
をオンとしてCPU10に搭載状態を知らせる。 パソコンであれば、コンフィグレーションファイルに
よって構成部品をデバイスドライバという形で登録し、
あるいはバッチファイルで登録し、認識させる。
【0014】なお、図1に示す構成においては、オプシ
ョン品のすべてがデータバスに接続された状態となって
いるが、接続されるバスはこれに限られない。例えば、
各種シリアル/パラレルのインターフェイスを介してC
PU10とデータの授受を行なうようにしても良い。す
なわち、オプション品はなんらかの形で、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では、バス1
2から供給されるようになっているが、DSP17や音
源デバイス22が拡張ボードやソケット等に挿入される
場合には、DSP17や音源デバイス22の出力がバス
12を介さないで、直接、あるいは拡張インターフェイ
ス等を介して供給されるようになっている。
【0015】また、図3に示すように、音源デバイス2
2や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は、波形メモリ2
5、さらにD/Aコンバータも含めて1チップに集積化
されたり、あるいは基板モジュール化される(図4
(a)参照)場合もあり得る。同様に、DSP17もR
AM24、さらにD/Aコンバータも含めて1チップに
集積化される場合もあり得る(図4(b)参照)。
【0017】このように、図1〜図3に示した構成は、
あくまでもシステム構成の一例であり、各構成要素間が
どのように接続されかは、そのシステムに依存する。ま
た、最近では、図1に示した構成要素が2つ以上集積化
され、見掛け上、一体となって構成される場合もあり、
外観により構成要素をブロック化するのは、あまり意味
を持たないことである。
【0018】1−1:動作モード 次に、本実施形態の動作モードについて説明する。本実
施形態にかかる楽音発生装置の動作モードは、図5に示
すように、発音方式を指定するものと、発音の割当方式
を指定するものの2つに大別され、さらに、それぞれ種
々のモードに細分化される。そこで、まず、発音方式を
指定するモードについて説明する。
【0019】1−1−1:発音方式の指定 本実施形態では、演奏情報により楽音の波形データを生
成・作成し、これをアナログ変換することよって、発音
を行なうようになっている。かかる波形データの作成・
生成は、種々の方式によって実行される。このため、発
音方式を指定するモードによって、どの発音方式により
波形データを生成・作成するかを定めるようにしてい
る。なお、本実施形態の発音方式は、CPU合成モード
と各種音源デバイス使用モードとの2つのモードを想定
している。
【0020】 CPU合成モード CPU合成モードとは、楽音合成のための専用のハード
ウェアを用いることなく、CPU10のみにより、ある
いは、搭載されていればコプロセッサ17と併せて波形
データを生成・作成することを指定するモードである。
このCPU合成モードは、さらに、次の4つのモードに
大別される。なお、求められた所望の波形データは、D
/Aコンバータ23によりアナログ信号に変換されて、
発音するようになっている。 ・FMモード このFMモードは、いわゆるFM音源を用いて発音を行
なうモードである。すなわち、所望の波形データは、C
PU10等(コプロセッサ17が装着されているう場合
には、コプロセッサ17も併用する意)のリアルタイム
演算により、基本となる正弦波をFM変調させて求めら
れる。 ・高調波合成モード この高調波合成モードは、基本波と、当該基本波の高調
波とを順次合成することにより発音を行なうモードであ
る。すなわち、所望の波形データは、CPU10等のリ
アルタイム演算により、基本波と、その第n次高調波と
を順次求めて加算することにより求められる。 ・波形メモリ読出モード この波形メモリ読出モードは、いわゆる波形メモリ読み
出し方式により発音を行なうモードである。すなわち、
CPU10等は、まず、楽音発生に先だって、発生すべ
き音色の基本波形を示す波形データを複数、RAM20
等上にロードしておき、次に、楽音発生の指示があった
ならば、指定された音色の波形データを、指定された音
高になるように、アドレス操作して読み出すとともに、
指定された音の大きさとなるように、演算処理して求め
る。なお、波形メモリ読出モードでは、主に、RAM
(ROM)からの波形読み出し処理であるため、比較的
性能が低いCPU等でも楽音発生することが可能であ
る。すなわち、上記FMモードや高調波合成モードの演
算処理よりもCPU10の負荷が軽くて済む。しかし、
RAMを波形メモリとして使用しなければならないた
め、必然的にRAM13、20により構成されるメモリ
領域を圧迫する。あるいは多くの容量を必要とする。こ
のため、装備されたRAMの総容量や、CPUのアドレ
ス領域の程度によっては、なるべくならば、波形メモリ
読出モードは使用したくない、という背景がある。 ・物理モデリング合成モード この物理モデリング合成モードは、楽器における発音メ
カニズム、特に空気の流れを電気的モデルによりシミュ
レートして、楽音を合成するモードである。すなわち、
所望の波形データは、CPU10等によって構築された
電気的モデルによりリアルタイム演算で求められる。な
お、かかるモデルによる楽音合成アルゴリズムについて
は、例えば、特開昭63−40199号公報などに開示
されている。
【0021】 各種音源デバイス使用モード 各種音源デバイス使用モードとは、楽音合成のための特
別なハードウェア、例えば音源デバイス22などを用い
て発音処理を行なうことを指定するモードである。この
ため、各種音源デバイス使用モードは、対応するハード
ウェアたる音源デバイス22の搭載を前提としている。
なお、音源デバイス22等は、波形データを、上述のF
Mモードや波形メモリ読出モードなどにより作成・生成
する。ただし、音源デバイス22等がいかなる方式によ
って波形データを作成・生成するについては、音源デバ
イス22等の固有の問題であり、本願は、音源デバイス
22等の発音方式までも制御するものではないので、そ
の説明については省略する。
【0022】1−1−2:割当方式の指定 さて、本実施形態は、CPU合成モードあるいは各種音
源デバイス使用モードのいずれのモードにおいても、波
形合成(発音)のためのチャンネルを複数有し、1つの
音色を生成するために1つのチャンネルを割り当てて、
各チャンネルで音色を生成することによって、複数音色
を同時に発音することができるようになっている。ま
た、本実施形態では、CPU10によっても、音源デバ
イス22によっても波形合成することができるから、あ
る音色の発音指示があった場合に、どちらで波形合成す
るかが重要な問題となる。そこで、この割当方式の指定
するモードによって、発音指示があった場合に、どちら
で波形合成するかを定めるようにしている。 ・CPU優先モード このCPU優先モードは、波形合成をCPU合成モード
により優先的に行なうモードである。ただし、CPU1
0等の能力が低いと、波形合成できるチャンネル数が限
られることから、CPU10等の処理能力を超える分の
波形合成については、各種音源デバイス使用モードによ
り行なわれる。 ・各種音源デバイス優先モード この各種音源デバイス優先モードは、波形合成を各種音
源デバイス使用モードにより優先的に行なうモードであ
る。ただし、各種音源デバイス22等の能力が低いと、
波形合成できるチャンネル数が限られることから、各種
音源デバイス22等の処理能力を超える分の波形合成に
ついては、CPU合成モードにより行なわれる。 ・手動設定モード この手動モードは、波形合成をどの発音方式のモードに
より行なうかを、さらに、CPU合成モードである場合
には、どのモードにより波形合成すべきかを、ユーザに
よって手動で指定するモードである。 ・強制設定モード この強制設定モードは、波形合成をどのモードにより行
なうかを、例えば、同時起動する他のアプリケーション
プログラム等によってそれぞれユーザの意思とは関係な
く指定されるモードである。
【0023】1−2:RAMの状態 次に、RAM13(20)におけるメモリマップについ
て説明する。本発明に適用される楽音発生装置の構成
は、図1に示すように、一般的なパソコンと大差はな
い。逆に言えば、一般的なパソコンが、(後述する動作
を実行することが前提となるが)そのまま楽音合成装置
に成り得るのである。したがって、この楽音合成装置に
おけるRAM13(20)のメモリ内容も、一般的なパ
ソコンのそれと大差はない。すなわち、RAM13(2
0)は、図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では、フラグSE
TFLGが「1」であるか否かが判別される。ここで、
フラグSETFLGは、初期状態では「0」であり、後
述するステップSa21によりサンプリング周波数fs
が設定された場合、あるいは波形予備演算モードで波形
メモリ読出モードが指定される場合には「1」となるも
のである。かかるフラグSETFLGが「1」であれ
ば、処理手順が次のステップSa4に進む一方、「0」
であれば、ステップSa5にスキップする。
【0032】なお、この波形合成プログラムが、図7に
示すループ処理において初めて実行される場合、フラグ
SETFLGは「0」であるので、処理手順は無条件に
ステップSa5にスキップするが、説明の便宜上、ステ
ップSa4の処理についても説明する。ステップSa4
では、発音をすべてCPU合成モードにより行なうか否
かが判別される。あるいは、ステップSa1におけるハ
ードウエア構成のチェックにより、各種音源デバイスが
認識されたか否かを判別するとしても良い。要は、各種
音源デバイスを用いて波形合成を行なう可能性があれ
ば、判別結果を「No」とする条件分岐が行なわれる。
【0033】ステップSa5では、フラグENBLFL
Gが「1」でないか否かにより、非動作可能状態である
か否かが判別される。ここで、非動作可能状態とは、換
言すれば、サンプリング周波数fsが設定されておら
ず、あるいは波形予備演算モードが指定されないで、C
PU合成モードによる発音処理の準備が整っていない状
態をいう。なお、この波形合成プログラムが、図7に示
すループ処理において初めて実行される場合、フラグE
NBLFLGは「0」であるので、すなわち非動作可能
状態であるので、処理手順がステップSa11に分岐す
るが、説明の便宜上、先に、フラグENBLFLGが
「1」である動作可能状態である場合について説明す
る。この動作可能状態とは、逆説的に、CPUによる波
形合成処理の準備がすでに整っている状態をいう。この
状態となっている場合、手順はステップSa6に進んで
発音情報処理が行なわれ、次に、ステップSa7におい
てCPU波形発生コマンドの有無が判別される。ここ
で、CPU波形発生コマンドとは、CPU合成モードに
おいて、発音開始を指示するキーオンが、鍵盤情報KB
Dや、MIDI情報、各種I/Fを介した演奏情報等に
より発生したことをいう。そして、ステップSa7にお
いてCPU波形発生コマンドが検出されると、当該コマ
ンドに応じた処理がステップSa8において行なわれ
る。すなわち、当該コマンドを満足させる波形データ
が、CPU合成モードのうちいずれかのモードにより指
定された方式で生成され、バス12を介してD/Aコン
バータ23に供給される。これにより、当該波形データ
に基づく発音が行なわれることとなる。なお、CPU波
形発生コマンドには、広義には、消音を指示するキーオ
フなども含むが、これらは、コマンドに応じて、リリー
ス波形を生成させたり、波形データの生成を終了するな
ど、発音の終了に関する処理をすれば良いが、ここでは
説明を省略する。また、ステップSa7において、CP
U波形発生コマンドが検出されなければ、なにも処理を
行なう必要はないので、ステップSa8の発音演算処理
がスキップされる。ステップSa9では、この波形合成
プログラムを終了する旨の操作がユーザ等により指定さ
れたか否かが判別される。もし、指定されていないので
あれば、来たるべき次のCPU波形発生コマンドの発生
に備えるため、直ちに手順が戻る(リターンする)一
方、指定されているのであれば、プログラム終了するた
めの処理が行なわれて、例えばステップSa10におい
てフラグSETFLGを「0」にクリアする処理が実行
されて、この波形合成プログラムが終了する。
【0034】さて、この波形合成プログラムが、図7に
示すループ処理において初めて実行される場合、フラグ
ENBLFLGは「0」であるので、ステップSa11
において、動作モードが優先モードすなわちCPU優先
モードあるいは各種音源デバイス優先モードであるかが
否かが判別される。もし、動作モードが手動モードある
いは強制モードである場合、この判別結果は「No」と
なって、処理手順がステップSa12に進み、フラグE
NBLFLG、フラグDACENBL、およびフラグS
ETFLGにそれぞれ「1」がセットされて、処理手順
が戻る。ここで、フラグDACENBLは、「1」にな
ると、D/Aコンバータ23の出力動作を許可するもの
である。したがって、次回、この波形合成プログラムが
実行されて、各種音源デバイスが使用される場合には、
ステップSa3の判別結果が「Yes」、Sa4の判別
結果が「No」となるので、図11に示す処理が実行さ
れ、また、CPUのみによる波形合成を行なう場合に
は、ステップSa6〜Sa10の処理が実行されること
となる。
【0035】一方、ステップSa11において、動作モ
ードが優先モードである場合、処理手順は、図9に示す
ステップSa13に進む。なお、ステップSa13〜S
a27の処理は、この波形合成プログラムが初回に起動
されたときに実行される可能性があり、CPUにより波
形合成を行なう場合に、そのサンプリング周波数fsを
設定する処理である。まず、ステップSa13では、確
認的にフラグENBLFLGが「0」に、フラグBUS
Yが「1」に、フラグDACENBLが「0」に、それ
ぞれセットされる。ここで、フラグBUSYとは、後述
するタイマー処理においてアップカウントを許可するも
のである。また、フラグDACENBLを「0」にセッ
トするのは、後述する波形サンプル発生演算において、
D/Aコンバータ23の出力動作を禁止して、当該波形
サンプルに基づく発音を防止するためである。ステップ
Sa13の後には、ステップSa14において、レジス
タSCOUNTおよびレジスタTCOUNTがそれぞれ
「0」にリセットされる。ここで、レジスタSCOUN
Tの内容は、次の波形サンプル発生演算の処理回数を示
し、また、レジスタTCOUNTは、フラグBUSYが
「1」であるときに、後述するタイマー処理により
「1」ずつインクリメントされるものであるため、その
内容は、波形サンプル発生演算をm回だけ発生するのに
要した時間内において、タイマー処理の起動回数を示す
ことになる。
【0036】次に、ステップSa15においては、所定
の波形サンプル発生演算処理が実行されて1サンプルあ
たりに必要な波形サンプル(データ)が生成される。な
お、このステップSa15の詳細処理については後述す
る。そして、ステップSa16では、波形サンプル発生
演算処理が1回実行されたことに対応してレジスタSC
OUNTが「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」以下の係数である。また、前述のように、TCO
UNTは、波形サンプル発生演算をm回だけ実行するの
に要した時間内におけるタイマー処理の起動回数を示
し、Ttは、タイマー処理の起動周期であるから、TC
OUNTとTtとの積は、波形サンプル発生演算をm回
だけ実行するのに要した時間を示すことになる。結局、
式(1)により求められる周波数Fsは、波形サンプル
の発生周波数であって、定数marginにより、その
ハードウェア構成の処理能力を考慮した周波数を示すこ
とになる。
【0038】そして、ステップSa20では、求められ
た周波数Fsが「32kHz」以上であるか否かが判別
される。なお、この「32kHz」という値は、発生す
る楽音の品質が最低限確保できるか否かを念頭において
設定されている。したがって、この判別結果が「Ye
s」であるならば、本実施形態のCPU能力によって
は、最低限以上の楽音品質を確保できると判断し、手順
がステップSa21に進む。このステップSa21にお
いては、「32kHz」、「44.1kHz」、「48
kHz」、「50kHz」のうち、求めた周波数Fsに
対し内輪で最も近い周波数が、本実施形態におけるサン
プリング周波数fsとして設定される。例えば、求めた
周波数Fsが「47kHz」であるならば、サンプリン
グ周波数fsは、当該周波数「47kHz」よりも低い
もののうち、最も高い「44.1kHz」に設定され
る。なお、内輪とした理由は、処理能力以上にサンプリ
ング周波数を高く設定したのでは、定数marginを
用いて余裕を持たせた意味がなくなるからである。
【0039】ステップSa21の後には、ステップSa
22において、フラグDACENBL、フラグENBL
FLG、およびフラグSETFLGがそれぞれ「1」に
セットされて手順が戻る。これにより、D/Aコンバー
タ23の出力動作が許可され、そして、動作可能状態と
され、さらに、サンプリング周波数fsがすでに設定さ
れたことが示されるようになる。なお、このようにして
動作可能状態となる結果、次回、波形合成プログラムが
実行されると、各種音源デバイスを用いて波形合成する
のであれば、ステップSa4の判別結果は「No」とな
って、図11に示す処理によって発音処理が実行され、
また、それ以外の、CPU10等のみ用いて波形合成す
るのであれば、ステップSa4の判別結果は「Ye
s」、ステップSa5の判別結果は「No」となってと
なって、ステップSa6〜Sa8により発音処理が実行
されることとなる。
【0040】一方、図10においてステップSa20の
判別結果が「No」であるならば、本実施形態のCPU
10等の処理能力によっては、最低限の楽音品質を確保
できないと判断し、手順がステップSa23に分岐す
る。ステップSa23では、最低限の楽音品質を確保で
きない旨がアラーム等によりユーザに告知されるととも
に、波形予備演算モードの指定イベントがチェックされ
る。ここで、波形予備演算モードとは、本来的には、動
作モードがCPU合成モードのうちの波形メモリ読出モ
ード以外のモードが指定されていたが、指定されたモー
ドでは、最低限の楽音品質を確保できないので、動作モ
ードを波形読出モードに切り換えることを指示するモー
ドをいう。
【0041】ステップSa24では、この波形予備演算
モードが指定されたか否かが判断される。指定されたな
らば、ステップSa25において、指定された演算モー
ドの演算により波形サンプルを求めてRAM13(2
0)に予め記憶するとともに、実際に発音を実行する場
合には、記憶した波形サンプルをサンプリング周波数
「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の出力動作が許可される。この後ステップSa2
9において、プログラム終了の指示がされているか否か
が判別され、されていれば、ステップ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において、波形デー
タが各種インターフェイスを介して転送されたか否かが
判別される。もし、受信されたのならば、ステップSb
2、3において、当該波形データは、MIDIサンプル
ダンプと同様に、RAM13(20)の領域WAVEに
転送される。また、ステップSb1およびSb4の判別
結果がいずれも「No」である場合、ステップSb5に
おいて、ストレージユニット15に対する読取イベン
ト、すなわち、何らかのデータを読み出すリクエストが
発生したか否かが検出される。発生していないのであれ
ば、以降は何ら処理を行なう必要はないので、この波形
サンプルロード処理は直ちに終了して、手順が戻る。一
方、読取イベントが発生したのであれば、そのイベント
によりストレージユニット15から読み出されるデータ
がステップSb6においてチェックされる。そして、ス
テップSb7において、読み出されたデータが波形デー
タであるか否かが判別される。そして、波形データでな
い場合には、以降は何ら処理を行なう必要はないので、
この波形サンプルロード処理は直ちに終了して、手順が
戻る一方、波形データである場合には、ステップSb8
において、読み出された波形データをRAM13(2
0)の領域WAVEに転送する波形データ読出転送処理
が実行される。そして、ステップSb9の判別によっ
て、すべてのデータの転送が完了するまで、ステップS
b8の転送処理が連続して実行される。そして、すべて
のデータの転送が完了すると、ステップSb9の判別結
果は「Yes」となって、手順は戻る。
【0046】このように、波形サンプルロード処理で
は、波形メモリ読出モードにおいて用いるサンプリング
データ(波形データ)が受信・読出されると、そのすべ
てがRAM13(20)の領域WAVEに転送されるよ
うになっている。そして、CPU10等が、転送された
サンプリングデータを、波形メモリ読出モードにて処理
することにより、波形合成が行なわれる。上記したよう
に、RAM13(20)等にロードされた波形を、例え
ば、音源デバイス22により発音するには、音源デバイ
ス22に付随する波形メモリ25をRAMとして用い、
ここにロードされた波形を再転送しなければならない。
したがって、従来の音源デバイス等のハードウェアに依
存した楽音発生装置では、当該ハードウェア側に、ロー
ドされた波形を受け取るためのRAM等の一時記憶手段
が必要であり、また、CPU側には、RAM13(2
0)等からの波形データ転送処理が必要であった。しか
し、本実施形態によれば、サンプリングデータをCPU
10が統括するRAM13(20)にロードして、ロー
ドしたデータにより発音を行なうので、専用ハードウェ
ア側にサンプリングデータを一時記憶する手段を設ける
ことも、CPU側でロードした波形データをさらにハー
ドウエア側に再転送する処理も不要とすることができ
る。したがって、システムのコスト削減や、波形データ
のロードが終了した時点から実際に発音可能状態となる
までの時間の短縮化を図ることができる。
【0047】2−1−2:波形サンプル発生演算 次に、上述したステップSa15(図9参照)において
実行される波形サンプル処理について説明する。この波
形サンプル発生演算処理では、まず、図13に示すステ
ップSc1において、コプロセッサ17の有無が検出さ
れる。本実施形態では有であるが、コプロセッサ17は
オプション品なので無の場合もあり得る。なお、CPU
10がコプロセッサ17に相当する演算ユニットを内蔵
する場合には、特にコプロセッサ有無の検出判断処理は
必要でなく、常に、コプロセッサ併用として処理を行な
うようにしても良い。また、有であれば、ステップSc
2において、CPU10とコプロセッサ17との併用に
よる波形サンプル演算処理が実行される一方、無であれ
ば、ステップSc3において、CPU10のみによる波
形サンプル演算処理が実行される。そして、ステップS
c2あるいは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サ
ンプルにおいて必要な数だけの波形サンプルが、CPU
10の高調波合成方式により演算されて求められる。す
なわち、複数発音を行なう場合には、高調波合成モード
で波形合成すべき発音数分だけの波形サンプルが求めら
れる。この場合、CPU10は、各音の音高を低いピッ
チから高いピッチまでの種々の組み合わせて演算を行な
ったり、負荷を最も高くした状態で演算を行なう点は、
FMモードと同様である。
【0051】そして、ステップSd5において高調波合
成モードでないと判別されれば、ステップSd7におい
て、さらに、動作モードがCPU合成モードのうち物理
モデリング合成モードであるかが否かが判別される。物
理モデリング合成モードであれば、ステップSd8にお
いて、1サンプルにおいて必要な数だけの波形サンプル
が、CPU10によって物理モデルが構築されて求めら
れる。すなわち、複数発音を行なう場合には、物理モデ
リング合成モードで波形合成すべき発音数分だけの波形
サンプルが求められる。なお、ステップSd7におい
て、物理モデリング合成モードでないと判別されれば、
動作モードが本実施形態での想定範囲外なので、ステッ
プSd9においてその旨を知らせるアラーム処理及びそ
の他の適切な処理が行なわれる。そして、ステップSd
2、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】なお、発音条件としては、このほかに、次
のようなものが考えられる。検出されたイベントに係
る演奏情報の音高が所定値以上であるか?(以下である
か?)検出されたイベントに係る演奏情報のうち音色
を指定する値が所定値以上であるか?(以下であるか
?)検出されたイベントに係る演奏情報のうち演奏パ
ートを指定する値が所定値以上であるか?(以下である
か?)検出されたイベントに対応するMIDI−CH
等が所定値以上であるか?(以下か?)など、何らかの
の演奏情報を示す値が所定値以上であるか(以下である
か)を基準とする発音条件が考えられる。また、各種音
源デバイスが、ある特定の音色を、FMモードや高調波
合成モード等の演算により波形サンプルを生成して合成
するように指定された場合には、この発音条件を満たさ
ないとする構成としても良い(この構成については、別
実施形態として後述する)。
【0058】さて、このような発音条件を満たしている
と判別されると、ステップSe4において、当該イベン
ト(キーオン)による発音を行なうためのチャンネル
が、現時点において各種音源デバイスで発音していない
チャンネル(空きチャンネル)の中から1つ割り当てる
発音割当処理が実行される。そして、ステップSe5に
おいて、割り当てられたチャンネルで、当該イベントに
対応する楽音の発生を選択されたハードウェア(各種音
源デバイス)で実際に行なう処理である、選択指定ハー
ドウェアでの発音処理が実行される。
【0059】一方、ステップSe3において発音条件を
満たしていないと判別されると、ステップSe6におい
て、さらにフラグENBLFLGが「1」であるか否か
が判別される。この時点において、フラグENBLFL
Gが「1」であるということは、上述したステップSa
13〜Sa25の処理が行なわれた後であり、CPU合
成モードにおいて発音する場合のサンプリング周波数f
sがすでに設定されている状態を示す。すなわち、CP
U合成モードにより発音が可能である状態を示す。した
がって、フラグENBLFLGが「1」であるために、
ステップSe6の判別結果が「Yes」となる場合、ス
テップSe7において、各種音源デバイスの発音条件を
満足しないイベントに対応する発音がCPU合成モード
により行なうように割り当てるCPU発音割当処理が実
行される。このCPU発音割当処理について詳細には、
当該イベントに対応した波形サンプルを演算生成するた
めの楽音波形発生割当コマンドを発生させる。かかる楽
音波形発生割当コマンドは、CPUが実行すべき楽音の
演算方法(CPU合成モードのいずれかのモード)、生
成すべき音色、音高、タッチ、音量、割当チャンネルな
どの情報のほかに、キーオン、キーオフなどの発音指示
をも含んだものである。そして、このコマンドが有効で
ある期間において、CPU10等は、後述するように、
ステップSe10において、当該割当コマンドに対応す
る波形サンプルを生成する発音演算処理を実行する。な
お、楽音波形発生割当コマンドは、楽音サンプルを割込
処理により生成するような場合にあっては、割込処理の
起動・終了情報をも含んだものとなる。
【0060】一方、ステップSe6において、フラグE
NBLFLGが「0」であるということは、CPU合成
モードにより発音が可能でない状態を示す。したがっ
て、この場合、ステップSe8において、各種音源デバ
イスに対してトランケート処理、詳細には、各種音源デ
バイスにおいて、発音が最も進行しているチャンネル、
あるいは、発音開始が早くかつ最も音量が小さいチャン
ネルによる楽音を消音させて、強制的に空きチャンネル
をつくる処理が行なわれる。なお、このトランケート処
理は、ステップSe4の発音割当処理に含ませることも
可能である。そして、ステップSe4において、当該イ
ベントが、消音させたチャンネルに割り当てられて、後
は同様にステップSd4において、割り当てられたチャ
ンネルにより、当該イベントに対応する楽音の発生が各
種音源デバイスにより行なわれる。なお、複数の音源デ
バイスが装着されるときは、ある音色を発音させるの
に、異なる音源デバイスのチャンネルをそれぞれ割当て
る場合もあり得る。
【0061】ところで、ステップSe2において、各種
音源デバイス優先モードでないと判別される場合、例え
ば、CPU優先モードである場合や、CPU合成モード
と各種音源デバイス使用モードとを併用することを指定
した手動モードである場合には、処理手順が図16にお
けるステップSe11に分岐する。このステップSe1
1では、現時点におけるCPU10等による発音状態
や、イベントに対応する演奏情報等が、CPU等の発音
条件に収まっているか否かが判別される。ここでの発音
条件とは、各種音源デバイスの発音条件(ステップSe
3参照)と同様に色々考えられるが、本実施形態では、
現時点においてCPU等により波形合成すべき(音色)
数が、CPU合成モードにより同時発音可能な発音数以
内であるかを条件とする。すなわち、ステップSe11
では、現時点においてCPU10等により発音中のチャ
ンネル(CH)数がCPU10等による同時発音可能な
チャンネル数以下であるか否かが判別される。
【0062】そして、このような発音条件を満たしてい
ると判別されると、ステップSe12において、さらに
フラグENBLFLGが「1」であるか否かが判別され
る。フラグENBLFLGが「1」であるということ
は、上述したように、CPU合成モードにより発音が可
能である状態を示すので、ステップSe13において、
CPU10等により行なうべき波形合成を、CPU10
等により行なうように発音割当処理が行なわれて、処理
手順は図15におけるステップSe9に進む。なお、ス
テップSe13におけるCPU発音割当処理の詳細につ
いては、すでに述べたステップSe7と同様なので、説
明を省略する。
【0063】一方、ステップSe11において、CPU
10等の発音条件が満たされないと判別された場合、あ
るいは、ステップ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:タイマー処理 次にタイマー処理について説明する。このタイマー処理
は、前述の波形合成プログラムの実行中に、所定周期T
t毎に実行される割込処理である。図17は、かかるタ
イマー処理の手順を示すフローチャートである。まず、
ステップSf1において、フラグBUSYが「1」であ
って、アップカウントが許可されているか否かが判別さ
れる。この判別結果が「No」であれば、手順はステッ
プSf3にスキップし、「Yes」であれば、ステップ
Sf2においてレジスタTCOUNTが「1」だけイン
クリメントされる。そして、ステップSf3では、他の
タイマー処理が実行されて、このルーチンは終了する。
このように、タイマー処理では、フラグBUSYが
「1」であれば、起動される毎に、レジスタTCOUN
Tが「1」だけインクリメントされる。フラグBUSY
が「1」となるのは、ステップSa9〜Sa11のルー
プ処理が実行されている期間に限られるから(ステップ
Sa7、Sa12)、結局、レジスタTCOUNTの内
容は、前述のように、当該ループ処理により波形データ
をmサンプル分だけ演算・読出するのに要した期間内
に、タイマー処理が何回起動されたかを示すことにな
り、その際に要する経過時間は、TCOUNTとTtと
の積により表わされることになる。
【0067】2−1−5:本実施形態での具体的動作 図1に示した構成は、オプション品のすべて、すなわ
ち、コプロセッサ17、DSP21および音源デバイス
22のすべてを搭載している構成である。したがって、
この構成では、発音方式の指定、割当の方式についてす
べての動作モードが使用可能である。この際、動作モー
ドが各種音源デバイス優先モードである場合、各種音源
デバイスの処理能力を上回る分の処理がCPU側に割り
当てられて、CPU等がこれを処理するので、楽音発生
専用ハードウェアたる各種音源デバイスの性能を超える
楽音発生ができ、このため多様な音色を発生することが
できるのである。さらに、本構成では、動作モードがC
PU優先モードである場合にも、多様な音色を発生する
ことができる。しかも、サンプリング周波数fsは、シ
ステムの構成に応じて最適に設定されるので(ステップ
Sa21)、楽音の品質が劣化するということもない。
【0068】3:他の構成における具体的動作 本実施形態では、図1(図2)に示すフルオプションの
構成を前提として説明したが、パソコンや電子楽器のよ
うなCPUを用いたシステムのハードウェア構成は、オ
プション品の有無により千差万別である。また、上述し
た波形合成プログラムも、ハードウェア構成により指定
可能な動作モードが異なる。そこで、図1に示す以外の
構成では、波形合成プログラムがいかに動作するかにつ
いて、具体構成を挙げて簡単に説明する。
【0069】3−1:オプションなし 図21に示すハードウェア構成は、図1に示す構成にお
けるオプション品のすべて、すなわち、コプロセッサ1
7、DSP21および音源デバイス22のすべてを搭載
していない構成である。したがって、この構成では、ス
テップSa4(図8参照)の判別結果が「Yes」とな
るため、各種音源デバイス使用モードは使用できず、C
PU合成モードが使用可能である。しかし、コプロセッ
サ17もDSP21も搭載されていないので、CPU1
0単体の処理能力が極めて高くないと、波形データのリ
アルタイム演算が困難となる。このため、実際には、C
PU合成モードのうちの波形メモリ読出モードのみが使
用可能という場合もあり得る。
【0070】3−2:コプロセッサのみ搭載 図22に示すハードウェア構成は、図1に示す構成にお
けるオプション品のうち、コプロセッサ17のみを搭載
した構成である。したがって、この構成でも、ステップ
Sa4(図8参照)の判別結果が「Yes」となるた
め、各種音源デバイス使用モードは使用できず、CPU
合成モードのみが使用可能である。ただ、コプロセッサ
17が搭載されているので、実数演算処理を高速に行な
うことが可能であるため、CPU合成モードの全モード
が使用可能となる。なお、この構成では、コプロセッサ
17が搭載されているので、発音演算処理(ステップS
a9)および波形サンプル発生演算(ステップSa1
5)は、コプロセッサ併用により行なわれる。
【0071】3−3:コプロセッサ、DSP搭載(波形
メモリ等なし) 図23に示すハードウェア構成は、図1に示す構成にお
けるオプション品のうち、コプロセッサ17およびDS
P21を搭載した構成であり、DSP21は、波形デー
タの高速演算を目的としている。ここで、DSP21が
各種音源デバイスに属すると考える立場をとると、2回
目以降の起動ではステップSa4の判別結果が「No」
となるため、各種音源デバイス使用モードが使用でき
る。ただし、DSP21は演算を行なうことを目的とし
ているから、波形メモリ読出方式ではなく、各種の演算
により波形データを生成することになる。また、割当に
よってはCPU合成モードも可能であるが、この構成で
は、波形データの演算については可能であるが、DMA
C19およびRAM20を有しないため、CPU合成モ
ードのうち、波形メモリ読出モードは使用できず、波形
データをリアルタイムに演算するFMモード、高調波合
成モード、および物理モデリング合成モードが使用可能
となる。なお、この構成についても、コプロセッサ17
が搭載されているので、発音演算処理(ステップSa
9)および波形サンプル発生演算(ステップSa15)
は、コプロセッサ併用により行なわれる。
【0072】3−4:音源デバイスのみ 図24に示すハードウェア構成は、図1に示す構成にお
けるオプション品のうち、音源デバイスのみを搭載した
構成である。したがって、この構成では、2回目以降の
起動ではステップSa4(図8参照)の判別結果が「N
o」となるため、各種音源デバイス使用モードが使用可
能である。また、割当によってはCPU合成モードも可
能であるが、この構成では、波形データの演算について
は可能であるが、DMAC19およびRAM20を有し
ないため、波形メモリ読出モードが使用できないという
場合もあり得る。また、コプロセッサ17も搭載されて
いないので、CPU10単体の処理能力が極めて高くな
いと、波形データのリアルタイム演算が困難である。こ
のため、実際には、CPU合成モードの全モードが使用
不可能となる場合もあり得る。
【0073】4:他の実施形態 次に、上述した実施形態とは別の実施形態について説明
する。 4−1:第2実施形態 まず、第2実施形態について説明する。一般に、リズム
系や、ドラム系のような撥音系の波形データを、FMや
高調波合成等による演算によって求めても、雰囲気ある
楽音の再生は困難とされる。このため、音源デバイス2
2が備えられている場合であって、その音源デバイス2
2が波形メモリ読出方式以外のFM方式等により楽音の
波形データを演算して求める構成である場合、当該音源
デバイス22によって、撥音系の楽音を再生するのは適
切とは言えない。また、このような音源デバイス22が
備えられているので、CPU10等があえて波形メモリ
読出モード以外の演算モードにより波形データを演算し
て求める必要性は乏しい。さらに、CPU10等にとっ
てみれば、波形合成以外の処理をする必要もあることか
ら、特にCPU10等の性能が低い場合には、なるべく
なら、波形合成プログラムの実行に伴う負荷を減らした
いという事情もある。したがって、このような場合、C
PU10等が、音源デバイス22にとって不向きである
撥音系の波形データを波形メモリ読出モードによって生
成する一方、各種音源デバイスたる音源デバイス22が
それ以外の楽音の波形データを演算によって生成するよ
うにすれば、CPU10等の側にとってみれば負荷を最
小限とすることができるし、音源デバイス22にとって
みれば不得意な発音をしなくて済み、両者にとって都合
が良い。さらに、再生楽音の品質を高く保てるという利
点もある。この第2実施形態の目的は、まさにこの点に
ある。
【0074】第2実施形態は、構成的には、図1、図2
4に示すように、音源デバイス22の装着を前提とす
る。また、その波形合成プログラムについては、選択さ
れたハードウェアを含む発音処理(図15および16参
照)を、図18に示す処理に差し替えた処理を行なうも
のである。すなわち、上述したステップSa34(図1
1参照)において実行される、選択されたハードウェア
を含む発音処理については、図18に示す処理が行なわ
れる。このため、差し替える処理については説明し、他
の事項については重複するのでその説明を省略する。
【0075】この実施形態において、波形合成プログラ
ムの処理手順が、ステップSa34に進むと、図18に
示すような、選択されたハードウェアを含む発音処理が
実行される。まず、ステップSg1では、ステップSe
1と同様に、イベント検出管理が行なわれる。次に、ス
テップSg2では、発音指定システムチェックが行なわ
れる。すなわち、発音すべき音色のそれぞれについて、
CPU10等側で処理するか、あるいは各種音源デバイ
ス側で処理するか、を割り当てる。ここで、かかる割当
を何を基準にして行なうかについて説明する。一般に、
音源デバイスは、それ固有の音色配列を有しているた
め、音色番号を定めれば発音すべき音色は一意に決ま
る。したがって、撥音系の楽音が属する音色番号を予め
ピックアップしておき、イベントの検出された楽音の音
色番号が、ピックアップされた音色番号に属する場合に
は、CPU10等側で処理すべしと設定し、それ以外の
場合には、各種音源デバイスたる音源デバイス22等側
で処理すべしと設定される。
【0076】なお、本実施形態では、割当の基準を音色
番号に拘泥すべきではなく、例えば、手動モードによっ
て、ある音色についてはCPU側、またある音色につい
ては各種音源側というように、音色毎に処理側をそれぞ
れ設定しておくようにしても良い。また、第1実施形態
のように、同時発音可能なチャンネル数により割り当て
るようにしても良い。さらに、強制モードによって、他
に実行しているプログラムにより強制的に割り当てるこ
ととしても良い。
【0077】さて、各種音源デバイス側に割り当てられ
た音色については、ステップSg3において、ステップ
Se4(図15参照)と同様に、発音割当処理が行なわ
れて、各種音源デバイス側に空きチャンネルが設けられ
る。そして、ステップSg6において、検出されたイベ
ントに対応する波形サンプルが、空きチャンネルにより
実際に生成される。この場合の生成方法は、FMや高調
波合成、物理モデリング合成のみならず、波形メモリ2
5の波形データを読み出すPCM、波形メモリ読出な
ど、装着される音源デバイス22の特性に依存した種々
の方式が考えられる。
【0078】一方、CPU側に割り当てられた音色につ
いては、ステップSg5において、ステップSe7(図
15参照)と同様に、CPU発音割当処理が行なわれ
て、検出されたイベントに対応するCPU波形発生割当
コマンドが生成される。そして、かかるCPU波形発生
割当コマンドが有の場合には、ステップSg6の判別結
果が「Yes」となって、ステップSg7の発音演算処
理が、当該割当コマンドに対応して波形サンプルを生成
する発音演算処理が実行される。なお、この発音演算処
理は、上述のようにCPU等の負担を減らす趣旨から、
波形メモリ読出モードにより行なわれる。一方、CPU
波形発生割当コマンドが無の場合には、ステップSg6
の判別結果が「No」となって、手順が戻る。
【0079】この第2実施形態によれば、ある音色をC
PU側に、また、ある音色については各種音源デバイス
側に、それぞれ任意に処理を割り当てることができるの
で、CPUおよび各種音源デバイスの処理負担を適切に
分けることができ、さらに、再生楽音の品質を維持した
まま、多様化を図ることができる。
【0080】4−2:第3実施形態 次に、第3実施形態について説明する。上述した第1実
施形態および第2実施形態では、1つの音色に関する発
音処理を、CPU側あるいは各種音源デバイス側のいず
れかのチャンネルにより行なう構成であったが、ある音
色に関する発音処理を、CPU側および各種音源デバイ
ス側の双方のチャンネルにより行なう構成であっても良
い。特にこの場合、CPU側では高調波合成により、ま
た、各種音源デバイス側では高調波合成以外の例えばF
M合成により、それぞれ波形データを演算して求めるよ
うにすれば、同じ音色を生成するにも、異なる演算方法
で求められるので、結果として異なった音色で発音され
ることになる。このため、音色の多様化に大きく寄与す
ることが考えられる。この第3実施形態の目的は、まさ
にこの点にある。
【0081】第3実施形態は、第2実施形態と同様に、
構成的には、図1、図24に示すように、音源デバイス
22の装着を前提とする。また、その波形合成プログラ
ムについては、選択されたハードウェアを含む発音処理
(図15および16参照)を、図19に示す処理に差し
替えた処理を行なうものである。すなわち、上述したス
テップSa34(図11参照)において実行される、選
択されたハードウェアを含む発音処理については、図1
9に示す処理が行なわれる。このため、差し替える処理
については説明し、他の事項については重複するのでそ
の説明を省略する。
【0082】この実施形態において、波形合成プログラ
ムの処理手順が、ステップSa34に進むと、図19に
示すような、選択されたハードウェアを含む発音処理が
実行される。まず、ステップSh1では、ステップSe
1、Sg1と同様に、イベント検出管理が行なわれる。
次に、ステップSh2では、発音指定システムチェック
が行なわれる。すなわち、発音すべき音色のそれぞれに
ついて、CPU10等側で処理するか、各種音源デバイ
ス側で処理するか、あるいは双方で処理するかを割り当
てる。ここで、割当の基準は、第2実施形態と同様に、
音色番号や、同時発音可能なチャンネル数、手動モード
による設定や、強制モードによる設定など種々考えられ
る。
【0083】さて、各種音源デバイス側に割り当てられ
た音色については、ステップSh3において、ステップ
Se4(図15参照)と同様に、発音割当処理が行なわ
れて、各種音源デバイス側に空きチャンネルが設けられ
る。そして、ステップSh4において、検出されたイベ
ントに対応する波形サンプルが、空きチャンネルにより
実際に生成される。この場合の生成方法は、FMや高調
波合成、物理モデリング合成のみならず、波形メモリ2
5の波形データを読み出すPCM、波形メモリ読出な
ど、装着される音源デバイス22の特性に依存した種々
の方式が考えられる。一方、CPU側に割り当てられた
音色については、ステップSh5において、CPU発音
割当処理が行なわれて、検出されたイベントに対応する
CPU波形発生割当コマンドが生成される。この場合の
CPU波形発生割当コマンドには、演算方式を指定する
情報も含まれる。また、各種音源デバイス側およびCP
U側の双方に割り当てられた音色については、各種音源
デバイス側では、ステップSh3およびSh4の処理が
行なわれ、CPU側では、ステップSh5の処理が行な
われる。すなわち、双方並列して行なわれる。
【0084】そして、かかるCPU波形発生割当コマン
ドが有の場合には、ステップSh6の判別結果が「Ye
s」となって、ステップ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、S
g1と同様に、イベント検出管理が行なわれる。次に、
ステップSi1では、発音割当処理が行なわれて、各種
音源デバイス側に空きチャンネルが設けられる。そし
て、ステップSi2において、検出されたイベントに対
応する波形サンプルが、空きチャンネルにより実際に生
成される。この場合の生成方法は、FMや高調波合成、
物理モデリング合成のみならず、波形メモリ25の波形
データを読み出すPCM、波形メモリ読出など、装着さ
れる音源デバイス22の特性に依存した種々の方式が考
えられる。この後、処理手順は戻る。
【0089】この第4実施形態によれば、各種音源デバ
イスが搭載されていて、当該各種音源デバイスに割り当
てられるイベントが検出されれば、その処理を当該各種
音源デバイスに行なわせることができる。
【0090】4−4:その他 上述した実施形態では、オプション品の例として、コプ
ロセッサ17や、DSP21、音源デバイス22等を例
としたが、本願はこれらに限られない。また、本願構成
は、パソコンや、電子楽器や、ゲーム機などのようにC
PUを用いた応用システムであって、楽音を発生させる
ものすべてに適用可能である。
【0091】
【発明の効果】以上説明した本発明によれば、次のよう
な効果がある。装置構成において最適なサンプリング周
波数にて楽音発生を行なうことが可能となる(請求項
3)。楽音波形のサンプリングデータを生成するための
構成を簡略化することが可能となる(請求項4)。装置
構成の性能が低い場合においても、発生楽音の品質を確
保することが可能となる(請求項5、6)。
【図面の簡単な説明】
【図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 (8)

    【特許請求の範囲】
  1. 【請求項1】 プログラムにしたがって動作する演算処
    理手段の性能を検出する第1ステップと、 前記第1ステップの検出結果に基づいてサンプリング周
    波数制御データを生成する第2ステップと、 前記サンプリング周波数制御データに応じたサンプリン
    グ周波数で楽音を生成する楽音生成処理を、前記演算処
    理手段に実行させる第3ステップとから成る楽音発生方
    法。
  2. 【請求項2】 プログラムにしたがって動作する演算処
    理手段を用いて楽音を発生する楽音発生装置において、 前記演算処理手段の性能を検出する検出手段と、 前記検出手段の検出結果に基づいてサンプリング周波数
    制御データを生成するサンプリング周波数決定手段と、 前記サンプリング周波数制御データに応じたサンプリン
    グ周波数で楽音を生成する楽音生成処理を、前記演算処
    理手段に実行させる制御手段とを具備することを特徴と
    する楽音発生装置。
  3. 【請求項3】 前記検出手段は、前記演算処理手段で所
    定の楽音波形を生成するのに要した時間を計測すること
    により前記演算処理手段の性能を検出するものであるこ
    とを特徴とする請求項2に記載の楽音発生装置。
  4. 【請求項4】 前記サンプリング周波数決定手段は、予
    め段階的に設定された複数のサンプリング周波数のう
    ち、前記検出手段により計測された時間に基づいて求め
    たサンプリング周波数よりも低いものであって、最も高
    いものを決定することを特徴とする請求項3記載の楽音
    発生装置。
  5. 【請求項5】 前記サンプリング周波数決定手段により
    決定されたサンプリング周波数が所定のサンプリング周
    波数よりも低い場合には、前記演算処理手段の演算処理
    を変更してサンプリングデータを生成するようにしたこ
    とを特徴とする請求項2記載の楽音発生装置。
  6. 【請求項6】 前記サンプリング周波数決定手段により
    決定されたサンプリング周波数が所定のサンプリング周
    波数よりも低い場合には、予め記憶した楽音波形のサン
    プリングデータの読み出しにより楽音を発生することを
    特徴とする請求項5記載の楽音発生装置。
  7. 【請求項7】 プログラムにしたがって動作する演算処
    理手段を用いて楽音を発生する楽音発生装置において、 前記演算処理手段は、記憶手段に記憶された楽音波形を
    読み出すことにより楽音を発生する波形記憶方式を少な
    くとも含む複数の方式で楽音を発生可能であって、前記
    波形メモリ方式で楽音を発生する場合には、前記波形メ
    モリ方式以外の方式で楽音波形を発生するとともに、該
    発生された楽音波形を前記記憶手段に記憶するようにし
    たことを特徴とする楽音発生装置。
  8. 【請求項8】 プログラムにしたがって動作する演算処
    理手段を用いて楽音を発生する楽音発生装置において、 前記演算処理手段で楽音発生プログラムと並行して他の
    プログラムを実行するとともに、前記他のプログラムに
    応じて前記楽音発生プログラムを制御するようにしたこ
    とを特徴とする楽音発生装置。
JP10363578A 1995-06-06 1998-12-21 楽音発生装置および楽音発生方法 Expired - Fee Related JP3104697B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (3)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP7253493A Division JP2998612B2 (ja) 1995-06-06 1995-09-29 楽音発生装置

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JPH11249659A true JPH11249659A (ja) 1999-09-17
JP3104697B2 JP3104697B2 (ja) 2000-10-30

Family

ID=26472313

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP3104697B2 (ja)

Also Published As

Publication number Publication date
JP3104697B2 (ja) 2000-10-30

Similar Documents

Publication Publication Date Title
JP2998612B2 (ja) 楽音発生装置
US5703310A (en) Automatic performance data processing system with judging CPU operation-capacity
JP6443772B2 (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JP4025501B2 (ja) 楽音発生装置
JP3104697B2 (ja) 楽音発生装置および楽音発生方法
JP3169003B2 (ja) 楽音発生装置
JP3716710B2 (ja) 楽音発生装置
JP2705395B2 (ja) 電子楽器
JP3152198B2 (ja) 楽音発生方法および楽音発生装置
JPH06186972A (ja) 楽音処理装置
JPH08314450A (ja) ミュージックシステムおよび電子楽器
JP3765152B2 (ja) 楽音合成装置
JP7159583B2 (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JP2687810B2 (ja) 電子楽器
JP3257400B2 (ja) エフェクト装置
JP2001282243A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JP3011064B2 (ja) 楽音処理装置
CN1241767A (zh) 具有软件和硬件声源的计算机化的音乐系统
JP2001282241A (ja) 電子楽音発生装置、電子楽音発生方法及び記録媒体
JP2019032566A (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器
JPH08152885A (ja) 音源装置
JP2003280654A (ja) エンベロープ制御装置およびエンベロープ制御方法
JPH0816164A (ja) 発音命令生成装置
JPH07121180A (ja) 自動伴奏装置
JP2005099857A (ja) 楽音発生装置

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20070901

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080901

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees