JP2924745B2 - 楽音発生装置及び方法 - Google Patents

楽音発生装置及び方法

Info

Publication number
JP2924745B2
JP2924745B2 JP7297871A JP29787195A JP2924745B2 JP 2924745 B2 JP2924745 B2 JP 2924745B2 JP 7297871 A JP7297871 A JP 7297871A JP 29787195 A JP29787195 A JP 29787195A JP 2924745 B2 JP2924745 B2 JP 2924745B2
Authority
JP
Japan
Prior art keywords
processing
tone
cpu
musical
tone generation
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
JP7297871A
Other languages
English (en)
Other versions
JPH09114457A (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 JP7297871A priority Critical patent/JP2924745B2/ja
Priority to TW084111205A priority patent/TW279953B/zh
Priority to US08/731,414 priority patent/US5728961A/en
Priority to EP96116507A priority patent/EP0769773B1/en
Priority to DE69618738T priority patent/DE69618738T2/de
Publication of JPH09114457A publication Critical patent/JPH09114457A/ja
Application granted granted Critical
Publication of JP2924745B2 publication Critical patent/JP2924745B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • G10H7/006Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof using two or more algorithms of different types to generate tones, e.g. according to tone color or to processor workload

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Numerical Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、楽音を生成する
技術分野に属し、特に、楽音生成処理に使用する演算処
理手段の演算能力に応じて、楽音生成処理の内容を制御
できるようにしたものに関する。
【0002】
【従来の技術】今日の電子楽器では、波形の生成処理
や、生成した波形にエフェクトを付加する処理等(本明
細書では、これらの処理のことを楽音生成処理と呼ぶ)
を記述したプログラムを、マイクロプロセッサに実行さ
せることが広く普及している。そうしたマイクロプロセ
ッサとしては、音源LSIやDSP(ディジタルシグナ
ルプロセッサ)のような専用LSIが設けることが長ら
く一般的であった。しかし、近年のCPUの演算能力の
向上に伴って、専用LSIを設けるかわりに、汎用コン
ピュータのCPUや、電子楽器に搭載したCPUに楽音
生成処理プログラムを実行させるようにしたものも登場
している。そうした楽音発生装置や楽音発生方法のこと
を、ここではCPU音源またはソフトウェア音源と呼ぶ
ことにする。この種のソフトウェア音源において、波形
生成演算の方式には、1回の生成演算で1サンプルのデ
ータしか生成しない方式と、1回の生成演算によって複
数サンプルのデータを一気に生成する方式とがあるが、
後者の方式の方が、メモリ上のデータのアクセス効率が
上がり、演算が高速化される、という利点を有してい
る。また、この種のソフトウェア音源における複数チャ
ンネルについての楽音波形データの生成方式には、所定
数のチャンネルについて絶えず生成演算を行う方式と、
現在発音しているチャンネルについてのみ波形生成演算
を行う方式とがあるが、後者の方式の方が、CPUの演
算量を最小限に抑えることができる、という利点を有し
ている。
【0003】
【発明が解決しようとする課題】ところで、ソフトウェ
ア音源の場合には、用意された所定の楽音生成処理プロ
グラムが、常に同一の演算能力を有するCPUによって
実行されるとは限らない。すなわち、汎用コンピュータ
を用いる場合には、互換性がある(演算セットが共通で
ある)限り、どのコンピュータを用いることもできる
が、そのコンピュータの開発時期や機種によって、搭載
されているCPUの演算能力は様々である。他方、電子
楽器に搭載したCPUに実行させる場合には、1つの機
種の電子楽器毎に楽音生成処理プログラムを作成するよ
うにすれば、そのプログラムが演算能力の異なるCPU
によって実行されることはない。しかし、実際には、コ
スト上の問題から、同一内容のプログラムを書き込んだ
マスクROMを、複数の機種の電子楽器のために共通し
て用いることが多い。そして、それらの複数の機種の電
子楽器に搭載されているCPUの演算能力がすべて同一
である保証はないので、やはり、同一内容のプログラム
が演算能力の異なるCPUによって実行される可能性が
ある。
【0004】そして、このように、同一内容の楽音生成
処理プログラムを、演算能力の異なるCPUによって実
行させることには、様々な問題がある。例えば、或る動
作クロックのCPUを基準にして作成した楽音生成処理
プログラムを、それよりも動作クロックの遅いCPUに
実行させた場合には、楽音の同時発音数が少なくなって
しまうことにより、演奏上支障が生じることがある。す
なわち、前述した、現在発音しているチャンネルについ
てのみ波形生成演算を行う方式において、そのような問
題が起こり得る。また逆に、或る動作クロックのCPU
を基準にして作成した楽音生成処理プログラムを、それ
よりも動作クロックの速いCPUに実行させた場合に
は、そのCPUの高い演算能力を十分に活かして楽音を
生成することができない。
【0005】また、楽音生成処理プログラムを構成する
命令のうち、どの種類の命令を高速で実行できるかは、
CPUのタイプによって異なっている。例えば、数値演
算プロッセッサを内蔵したタイプのCPUは、浮動小数
点演算の演算命令を高速で実行できるが、数値演算プロ
ッセッサを内蔵していないタイプのCPUでは、そうし
た演算命令の実行速度が遅い。そのため、或るタイプの
CPUを高速に動作させるのに適した命令で構成された
楽音生成処理プログラムを、別のタイプのCPUに実行
させた場合には、楽音の生成に極端に時間を要してしま
うことにより、やはり演奏上支障が生じることがある。
【0006】この発明は上述の点に鑑みてなされたもの
で、楽音生成処理に使用するCPUの演算能力にとって
最も適切な内容の処理を実行させて、可能な範囲で最大
限に質の高い楽音を生成することができるようにした楽
音発生装置及び方法を提供しようとするものである。
尚、本明細書では、CPUのような演算処理手段の演算
能力を決定づける要因(例えば、上述した動作クロック
と数値演算プロッセッサの内蔵の有無とのほかに、命令
キャッシュメモリの内蔵の有無や、データキャッシュメ
モリの内蔵の有無等が考えられる)のことを、演算処理
手段の性能(または演算特性)と呼ぶことにする。
【0007】
【課題を解決するための手段】第1の観点に従えば、こ
の発明に係る楽音発生装置は、楽音生成処理に使用しよ
うとする演算処理手段の性能を検出する検出手段と、前
記検出手段の検出結果に応じて、前記演算処理手段に実
行させるべき楽音生成処理の内容を制御する制御手段と
を具え、前記制御手段によって制御された内容の楽音生
成処理を前記演算処理手段に実行させるようにしたこと
を特徴としている。
【0008】この楽音発生装置によれば、楽音生成処理
の実行に先立って、楽音生成処理に使用しようとする演
算処理手段の性能が検出手段によって検出され、その検
出結果に応じて、当該演算処理手段に実行させるべき楽
音生成処理の内容が制御手段によって制御される。そし
て、楽音生成処理を実行する段階では、このように制御
された内容の楽音生成処理を当該演算処理手段が実行す
ることにより、楽音が生成される。このように、使用し
ようとする演算処理手段の性能に応じて制御した内容の
楽音生成処理を実行させるので、それぞれの演算処理手
段にとって最適な内容の処理を実行させて、可能な範囲
で最大限に質の高い楽音を生成することができるように
なる。
【0009】尚、一例として、制御手段は、検出手段に
よって検出された性能が一定程度に満たない場合には、
楽音生成処理を低いグレードに設定する制御と、楽音生
成処理の中の一部の処理を省略する制御との少なくとも
一方を行なうものであることが好ましい。そうすること
により、演算能力の低い(例えば動作クロックの遅い)
演算処理手段を使用する場合でも、1つの発音チャンネ
ルでの処理に要する時間が短縮されるようになるので、
十分な同時発音数を確保することができるようになる。
また、別の一例として、制御手段は、検出手段の検出結
果に応じて、楽音生成処理プログラムを構成する命令と
して異なる種類の命令を用いるような制御を行なうもの
であることが好ましい。そうすることにより、使用する
演算処理手段の性能(例えば特定の数値演算プロッセッ
サを内蔵しているか否か)に応じて、それぞれの演算処
理手段の高速動作のために最適な種類の命令を用いて高
速に処理を実行させることができるようになる。
【0010】第2の観点に従えば、この発明に係る楽音
発生装置は、楽音生成処理に使用しようとする演算処理
手段の性能を検出する検出手段と、前記演算処理手段に
実行させるべき楽音生成処理の内容を制御する制御デー
タを入力するための操作子手段と、前記検出手段の検出
結果に応じて、前記操作子手段で入力可能な制御データ
の範囲を限定する限定手段とを具え、前記操作子手段で
入力された制御データに従う内容の楽音生成処理を前記
演算処理手段に実行させるようにしたことを特徴として
いる。
【0011】この楽音発生装置においても、前述と同様
に、楽音生成処理の実行に先立って、楽音生成処理に使
用しようとする演算処理手段の性能が検出手段によって
検出される。但し、この楽音発生装置には、楽音生成処
理の内容を制御する制御データを入力するための操作子
手段が具えられており、その操作子手段で入力可能な範
囲が、検出結果に応じて限定手段によって限定される。
そして、楽音生成処理を実行する段階では、このように
限定された範囲内で操作子手段を用いて入力された制御
データに従う内容の楽音生成処理を当該演算処理手段が
実行することにより、楽音が生成される。このように、
使用しようとする演算処理手段の性能に応じて制御デー
タの入力可能範囲を限定し、その範囲内で入力された制
御データに従う内容の楽音生成処理を実行させるので、
操作子手段を用いた制御データの入力に基づき、それぞ
れの演算処理手段にとって最適な内容の処理を実行させ
て、可能な範囲で最大限に質の高い楽音を生成すること
ができるようになる。
【0012】第3の観点に従えば、この発明に係る楽音
発生装置は、楽音生成処理を記述したプログラムに従っ
て楽音生成を実行するための汎用の演算処理手段と、前
記演算処理手段の性能を検出する検出手段と、前記検出
手段の検出結果に応じて、前記演算処理手段が前記プロ
グラムに従って実際に実行する楽音生成処理の内容を制
御する制御手段とを具えたことを特徴としている。
【0013】この楽音発生装置によれば、楽音生成処理
の実行に先立って、楽音生成処理プログラムを実行する
ための汎用の演算処理手段の性能が検出手段によって検
出され、その検出結果に応じて、演算処理手段が楽音生
成処理プログラムに従って実際に実行する楽音生成処理
の内容が制御手段によって制御される。そして、このよ
うに制御された内容の楽音生成処理を当該演算処理手段
が実行することにより、楽音が生成される。これによ
り、その汎用の演算処理手段の性能にとって最適な内容
の処理を実行させて、可能な範囲で最大限に質の高い楽
音を生成することができるようになる。
【0014】さらに、この発明に係る楽音発生方法は、
汎用の演算処理手段の性能を検出するための処理を、該
演算処理手段に実行させる第1のステップと、前記演算
処理手段に実行させようとする楽音生成処理の内容を前
記第1のステップの検出結果に応じて制御する処理を、
該演算処理手段に実行させる第2のステップと、前記第
2のステップで制御された内容の楽音生成処理を、前記
演算処理手段に実行させる第3のステップとから成るこ
とを特徴としている。
【0015】この楽音発生方法によれば、楽音生成処理
の実行に先立って、汎用の演算処理手段の性能を検出す
るための処理をその演算処理手段が実行し、その検出結
果に応じて、その演算処理手段に実行させようとする楽
音生成処理の内容を制御する処理をその演算処理手段が
実行する。そして、このように制御された内容の楽音生
成処理を当該演算処理手段が実行することにより、楽音
が生成される。これにより、その演算処理手段の性能に
とって最適な内容の処理を実行させて、可能な範囲で最
大限に質の高い楽音を生成することができるようにな
る。
【0016】
【発明の実施の形態】以下、添付図面を参照してこの発
明の実施の形態を詳細に説明する。図1は、この発明を
採用したソフトウェア音源方式のコンピュータミュージ
ックシステムの全体構成ブロック図である。このコンピ
ュータミュージックシステムでは、パーソナルコンピュ
ータのCPU3が、楽音生成処理を実行する。CPU3
には、MIDIのインターフェース1,タイマ2,RO
M(リードオンリーメモリ)4,RAM(ランダムアク
セスメモリ)5,マウス7,キーボード8,ディスプレ
イ9,ハードディスク装置10,及びDMA(ダイレク
トメモリアクセス)回路11が、データ及びアドレスバ
ス6を介して接続されている。MIDI1には、図示し
ないシーケンサ等から、MIDI形式の演奏情報が供給
される。ハードディスク装置10には、CPU3に実行
させるプログラム(楽音生成処理プログラムを含む)が
記録されるとともに、それぞれ1又は複数周期から成る
複数種類の音色の波形データ(例えば、PCM(パルス
コードモジュレーション)方式の波形データ等)が記録
されている。
【0017】DMA回路11は、CPU3が楽音生成処
理を実行することによって生成された楽音データを、ダ
イレクトメモリアクセス方式でRAM4から読み出して
D/A変換器12に送る処理(再生処理)を実行するも
のである。DMA回路11は、この再生処理を、D/A
(ディジタル/アナログ)変換器12のサンプリング周
波数(一例として48kHz)に合わせたタイミング
で、且つ、所定サンプル数(一例として128サンプ
ル)の楽音データを単位として1単位分の楽音データ毎
に実行する。D/A変換器12でアナログ変換された楽
音データは、サウンドシステム13に送られて、該シス
テム13から音響的に発音される。
【0018】図2は、ソフトウェア音源の基本原理を示
した図である。CPU3は、所定の時間長の区間を単位
として、各区間内にMIDI1を介して受信した演奏情
報に基づき、それぞれ当該区間の次の区間内に楽音生成
処理を実行する。(例えば、時刻T1からT2までの区
間に受信した演奏情報に基づき、時刻T2からT3まで
の区間に楽音生成処理を実行する。)(但し、例えば、
連続する複数の区間内に入力した演奏情報に基づく楽音
生成処理を、その後のいずれかの1つの区間においてま
とめて実行するようにしてもよく、更に、連続する幾つ
の区間内に入力した演奏情報に基づく楽音生成処理をま
とめて実行させるかを、時間の経過に伴って変化させる
ようにしてもよい。)こうしてCPU3が各区間内に生
成した楽音データに対して、当該区間の次の区間の全域
に亘って、DMA回路11によって再生処理が実行され
る。(例えば、時刻T2からT3までの区間内に生成し
た楽音データに対して、時刻T3からT4までの区間の
全域に亘って再生処理が実行される。)
【0019】したがって、1区間の長さは、D/A変換
器12のサンプリング周期とDMA回路11が1単位と
するサンプル数との積であり、前述の例では128÷4
8000≒0.0027秒となる。そして、DMA回路
11による再生処理は、楽音を切れ目なく発音させるた
めに途切れることなく連続して実行する必要があるの
で、CPU3は、DMA回路11が各区間で再生処理を
実行する1単位分の楽音データを、必ずその直前の区間
内に生成し終えておく必要がある。
【0020】しかし、ソフトウェア音源においては、楽
音生成処理を実行させるべきCPUの演算能力は様々で
あり、したがって、すべてのCPUに同一内容の楽音生
成処理を実行させたのでは、十分な発音チャンネル数の
楽音を1区間内に生成することができなかったり、楽音
の生成に要する時間が1区間の長さを越えてしまったり
することがあるという特徴を有している。このコンピュ
ータミュージックシステムは、こうしたソフトウェア音
源の特徴に鑑み、それぞれのCPUの演算能力にとって
最も適切な内容の楽音生成処理を実行させることができ
るようにしたものである。次に、このコンピュータミュ
ージックシステムの動作例を、図3以下を参照して説明
することにする。
【0021】図は、CPU3の実行するメインルーチ
ンを示すフローチャートである。最初に、楽音生成処理
を実行させるべきCPU(ここではCPU3)の性能と
して、動作クロックとタイプとを検出する(ステップS
1)。動作クロックを検出するには、実際に動作クロッ
クをカウントするようにすればよい。タイプを検出する
には、一例として、既存のテストプログラムを実行する
ようにすればよい。具体的には、米国インテル社製の各
CPUのタイプを検出するためのものとして、割込み命
令等によって格納されるフラグの設定の相違を利用する
ことにより、32ビットのCPUを、「8086」や
「80286」(いずれも米国インテル社の商標)のよ
うな16ビットのCPUから識別するようにしたテスト
プログラムが知られており、また、EFLAGレジスタ
の値の相違を利用することにより、32ビットのCPU
のうちの「80486」や「Pentium」(いずれ
も米国インテル社の商標)を「80386」(米国イン
テル社の商標)から識別するようにしたテストプログラ
ムが知られている。また、上記「Pentium」は浮
動小数点演算用の数値演算プロッセッサを内蔵している
が、「80486」(米国インテル社の商標)はそうし
た数値演算プロッセッサを内蔵していないので、FNI
NIT命令を使ってステータス・レジスタと制御ワード
レジスタに書込みを行ない、そこから正しい値を読み戻
せるか否かに基づいてこの両者を識別するようにしたテ
ストプログラムが知られている。
【0022】しかし、こうしたテストプログラムを実行
するかわりに、CPUがアクセス可能な特定の記憶領域
に、当該CPUの動作クロックとタイプとを示すデータ
を予め書き込んでおき、ステップS1において、そのデ
ータを読み出すようにしてもよい。
【0023】動作クロックとタイプとを検出し終える
と、動作クロックを示すデータ,タイプを示すデータを
それぞれレジスタOC,PTに格納するとともに、それ
らのデータの組み合わせに応じて、楽音生成処理の内容
を制御する制御データの選択可能範囲を限定する限定デ
ータを設定し、該限定データをレジスタPSELに格納
する(ステップS2)。この限定データは、概括的に
は、動作クロックやタイプによって決定づけられるCP
U3の演算能力が一定以上である場合には、予定された
選択可能範囲内で全ての制御データを選択することを許
容するように設定され、CPU3の演算能力が一定未満
である場合には、上記選択可能範囲のうちグレードの低
い一部の制御データしか選択できないような限定を行な
うように設定される。限定データの具体的内容について
は、制御データの内容と併せて、ステップS4において
説明することにする。
【0024】ステップS2を終えると、所定の初期設定
(ステップS3)の後、ディスプレイ9に、図に示す
ようなパネルを表示する(ステップS4)。同図におい
て、パネル上部の画面選択スイッチは、楽音生成処理の
内容を制御する制御データとしての複数種類のパラメー
タ群(例えば、原波形データを読み出す際のサンプリン
グ周波数を制御するためのパラメータ群、読み出した原
波形データのサンプル間補間を行なう処理を制御するた
めのパラメータ群、生成した波形データにリバーブやコ
ーラスのようなエフェクトを付加する処理を制御するた
めのパラメータ群等)のうちの所望の1種類のパラメー
タ群を選択するためのアイコンであり、この画面選択ス
イッチによって選択された1種類のパラメータ群が、パ
ネル中央のパラメータ表示部に表示される。パネル下部
に「CURSOR」と表示されたカーソルスイッチは、
パラメータ表示部に表示された1種類のパラメータ群の
中の任意の1つのパラメータ(例えば、補間処理を制御
するための、「補間なし」,「2点補間」,「4点補
間」の3通りのパラメータから成るパラメータ群のうち
の任意の1つのパラメータ)にカーソルを移動させるこ
とによってそのパラメータを選択するためのアイコンで
ある。カーソルスイッチの右側に「VALUE」と表示
されたバリュースイッチは、パラメータ表示部に表示さ
れた数値を増減させることによって各種データの値を設
定するためのアイコンである。
【0025】ユーザーは、マウス7を用いてこれらのス
イッチを任意に操作することによって、各種の制御デー
タを選択的に入力することができる。但し、これらのス
イッチで選択可能な範囲は、レジスタPSEL内の限定
データによって限定されている。例えば、波形データの
読出しサンプリング周波数を制御するパラメータ群に、
「12kHz」,「24kHz」,「48kHz」の3
通りのパラメータが予め含まれているとすれば、画面選
択スイッチでそのパラメータ群をパラメータ表示部に表
示させた場合、CPU3の動作クロックの速さが一定以
上であれば、3通りのパラメータが全て表示される(す
なわちいずれも選択可能である)が、CPU3の動作ク
ロックの速さが一定未満であれば、「12kHz」,
「24kHz」の2通りのパラメータしか表示されない
か、または3通りのパラメータが表示されるが「48k
Hz」は選択できないように限定されており、CPU3
の動作クロックが更に遅ければ、「12kHz」のパラ
メータしか表示されないか、または3通りのパラメータ
が表示されるが「24kHz」,「48kHz」は選択
できないように限定されている。
【0026】また例えば、補間処理を制御するパラメー
タ群を画面選択スイッチでパラメータ表示部に表示させ
た場合、CPU3の動作クロックの速さが一定以上であ
れば、「補間なし」,「2点補間」,「4点補間」の3
通りのパラメータが全て表示されるが、CPU3の動作
クロックの速さが一定未満であれば、「補間なし」,
「2点補間」の2通りのパラメータしか表示されない
か、または3通りのパラメータが表示されるが「4点補
間」は選択できないように限定されている。(尚、CP
U3の動作クロックが遅い場合でも、補間処理は、「補
間なし」しか選択できなくするのではなく、「2点補
間」を選択できるようにしておくことが望ましい。)
【0027】また例えば、リバーブを付加するエフェク
ト処理を制御するパラメータ群に、「オフ」,「簡易リ
バーブ」(所定のアルゴリズムのうちの一部を省略した
低いグレードのリバーブ),「標準リバーブ」(所定の
アルゴリズムを全て実行する高いグレードのリバーブ)
の3通りのパラメータが予め含まれているとすれば、画
面選択スイッチでパラメータ表示部に表示させた場合、
CPU3が浮動小数点演算用の数値演算プロッセッサを
内蔵していないタイプのものであれば、そのパラメータ
群がまったく画面選択スイッチに表示されないか、また
は表示されるが「オフ」以外は選択できないように限定
されている。また、CPU3が浮動小数点演算用の数値
演算プロッセッサを内蔵しているタイプのものであって
も、CPU3の動作クロックの速さが一定以上であれ
ば、3通りのパラメータが全て表示されるが、CPU3
の動作クロックの速さが一定未満であれば、「オフ」,
「簡易リバーブ」の2通りのパラメータしか表示されな
いか、または3通りのパラメータが表示されるが「標準
リバーブ」は選択できないように限定されている。
(尚、リバーブの有無は、聴感上の影響が大きいので、
CPU3の動作クロックが遅い場合でも、「オフ」しか
選択できなくするのではなく、「簡易リバーブ」を選択
できるようにしておくことが望ましい。)
【0028】ステップS4に続くステップS5では、下
記の各起動要因の発生をチェックする。 起動要因1:RAM5内の入力バッファに新たな受信デ
ータの書込みがあったこと 起動要因2:DMA回路11からの割込みによって楽音
生成処理の実行の要求が発生したこと 起動要因3:その他の要求(ディスプレイ9上のパネル
の入力イベントや、キーボード8のコマンド入力イベン
ト(メインルーチン終了コマンドを除く)が発生したこ
と 起動要因4:キーボード8のメインルーチン終了コマン
ドの入力イベントが発生したこと
【0029】上記起動要因1の受信データの書込みは、
MIDI1を介して演奏情報を受信する毎に、図5に示
すような「最優先の割込み処理」を実行することによっ
て行なわれる。この割込み処理では、演奏情報を受信す
ると、受信データを取り込み(ステップS11)、取り
込んだ受信データを、現在の時刻を示す時刻データとと
もにRAM4内の入力バッファに書き込む(ステップS
12)。時刻データを書き込む理由は、入力バッファへ
の受信データの書込みは、演奏情報を受信する毎に直ち
に行なうが、入力バッファに書き込んだ受信データに基
づく楽音生成処理は直ちに実行されるわけではない(図
2に示したように、当該区間の次の区間以降に実行され
る)ので、いつ受信したものであるかを識別できるよう
にしておくことにある。図6は、入力バッファの記憶領
域の一例を示す。この例では、受信データを1件毎に時
刻データとともに書き込む領域である「ID1」,「I
D2」,「ID3」…と、受信データの件数を書き込む
領域である「イベント数」とが設けられている。
【0030】図4に戻り、ステップS5に続くステップ
S6では、上記起動要因が発生したか否かを判断する。
ノーであれば、ステップS5に戻り、起動要因が発生す
るまでステップS5及びS6の処理を繰り返す。そして
いずれかの起動要因が発生すると、ステップS6でイエ
スとなってステップS7に進む。
【0031】ステップS7では、いずれの起動要因が発
生したのかを判定する。起動要因1が発生していれば、
MIDI処理を実行し(ステップS8)、チャンネルナ
ンバー1〜16のうちのどのMIDIチャンネルについ
ての演奏情報を受信したのかを、ディスプレイ9上のパ
ネル左部のMIDI MONITOR(図3)に表示す
る(ステップS9)。そしてステップS5に戻り、ステ
ップS5以下の処理を繰り返す。
【0032】ステップS8で実行するMIDI処理に
は、例えば、ノートオン信号に基づくノートオンイベン
ト処理や、ノートオフ信号に基づくノートオフイベント
処理等が含まれる。図7は、ノートオンイベント処理の
一例を示すフローチャートである。最初に、ノートナン
バ,ベロシティ,当該MIDIチャンネルを受信するパ
ートに対応する音色を示すデータ,時刻データを読み出
して、それぞれ所定のレジスタNN,VEL,t,TM
に格納する(ステップS21)。続いて、発音チャンネ
ルの割当て処理を行ない、割り当てたチャンネルの番号
をレジスタiに格納する(ステップS22)。続いて、
レジスタt内のデータに基づき、当該パートに対応する
音色の音色データをRAM4内の音色データ記憶領域か
ら読み出し、その音色データを、レジスタNN,VEL
内のデータに応じて加工する(ステップS23)。図8
は、ハードディスク装置10から読み出されてRAM4
の音色データ記憶領域に書き込まれた音色データの内容
の一例を示す。この例では、各音色データ「PD1」,
「PD2」…には、各音域の波形を指定するデータと、
エンベロープを制御するデータと、タッチに応じて音
量,音色,音高等を制御するデータと、その他のデータ
とが含まれている。続いて、加工した音色データ(ピッ
チを指定するデータ(周波数ナンバ)を含む)を、ノー
トオン信号及びレジスタTM内の時刻データとともに、
レジスタi内の番号の発音チャンネル用の音源レジスタ
に書き込む(ステップS24)。そしてリターンする。
図9は、音源レジスタの記憶領域の一例を示す。この例
では、32の発音チャンネル(1ch〜32ch)用の
音源レジスタが用意されており、各音源レジスタに、ノ
ートナンバと、波形指定データと、エンベロープ制御デ
ータと、ノートオン信号と、時刻データと、その他デー
タとを書き込む領域が設けられるとともに、ワークエリ
アが設けられている。その他のデータには、ディスプレ
イ9上のパネルを用いて選択されたエフェクトのアルゴ
リズムを示すデータ等が含まれる。
【0033】図4のステップS7に戻り、起動要因2が
発生していれば、後述する「音源処理」を実行し(ステ
ップS10)、それから、CPU3の演算能力と、生成
した楽音の音量レベルとを、ディスプレイ9上のパネル
右部(それぞれ「CPU」,「LEVEL」と表示)に
グラフィック表示する(ステップS11)。なお、ここ
で表示するCPUの演算能力とは、該CPUの全演算能
力に対する、ソフトウェア音源の楽音生成処理に費やさ
れた演算能力の割合を示すものである。その後、ステッ
プS5に戻り、ステップS5以下の処理を繰り返す。
【0034】他方、起動要因3が発生していれば、その
他の処理(ディスプレイ9上のパネルの入力イベント処
理や、キーボード8からのコマンド入力イベント処理
等)を実行し(ステップS12)、それぞれの処理に応
じた表示をディスプレイ9上のパネルに行なう(ステッ
プS13)。それから、ステップS5に戻り、ステップ
S5以下の処理を繰り返す。
【0035】図10は、その他の処理のうち、ディスプ
レイ9上のパネルの入力イベント処理の一例を示すフロ
ーチャートである。最初に、入力の内容を判定する(ス
テップS31)。続いて、いずれのスイッチの入力イベ
ントがあったのかを判定する(ステップS32)。画面
選択スイッチの入力イベントがあったのであれば、当該
スイッチで選択された種類のパラメータ群を、パラメー
タ表示部に表示する(ステップS33)。そしてリター
ンする。他方、カーソルスイッチの入力イベントがあっ
たのであれば、当該スイッチの操作に従い、パラメータ
表示部に表示されたパラメータ群の中の1つのパラメー
タを選択する(ステップS34)。そしてリターンす
る。他方、バリュースイッチの入力イベントがあったの
であれば、当該スイッチの操作に従い、各種データの値
を設定する(ステップS35)。そしてリターンする。
尚、図4のステップS4において説明したように、この
イベント処理において、パラメータ表示部に表示される
パラメータ群や、パラメータ表示部に表示されたパラメ
ータ群のうち選択可能なパラメータの範囲は、レジスタ
PSEL内の限定データによって限定されることがあ
る。
【0036】図4のステップS7に戻り、起動要因4が
発生していれば、メインルーチンを終了させるための所
定の処理を実行し(ステップS14)、ディスプレイ9
からパネルを消去する(ステップS15)。そしてリタ
ーンする。尚、ステップS7において、起動要因1乃至
4のうちの2以上の起動要因が発生していると判定され
た場合には、起動要因1,2,3,4の優先順位で、ス
テップS7以下の処理を実行するものとする。
【0037】次に、「音源処理」の例を、図11以下を
参照して説明する。図11の例では、最初に、波形デー
タの読出しサンプリング周波数を制御する制御データと
して、「12kHz」,「24kHz」,「48kH
z」のうちのいずれがパネルの操作によって入力されて
いるかを判定する(ステップS41)。「12kHz」
が入力されていれば、所定の準備処理(発音チャンネル
数の決定や、波形生成処理の演算順序の決定や、RAM
5内の出力バッファの準備等)をそれに応じて実行し
(ステップS42)、12kHzの読出しサンプリング
周波数で波形生成処理を実行する(ステップS43)。
【0038】波形生成処理は、一例として、以下の一連
の処理から成っている。 (1)ハードディスク装置10から読み出してRAM5
内の波形データ記憶領域に書き込んだ原波形データを、
読出しサンプリング周波数に従うピッチで周波数ナンバ
を累算した読出しアドレス信号の整数部に応じてRAM
5から読み出す処理 (2)読み出した波形データを、前記アドレス信号の小
数部に応じて補間する処理 (3)前記補間処理で得られた波形データの周波数特性
を制御するディジタルフィルタ処理 (4)前記フィルタ処理後の波形データに音量エンベロ
ープデータを乗算する音量制御処理 (5)上記(1)乃至(4)の処理によって生成した各
発音チャンネルの楽音波形データをミキシングする処理 波形生成処理が完了すると、楽音生成した波形データを
RAM5内の出力バッファに書き込んで、当該区間の次
の区間で再生処理を実行する対象としてDMA回路11
に予約する(ステップS44)。図14は、出力バッフ
ァの記憶領域を示す。128サンプルの楽音波形データ
(SD1〜SD128)を1サンプル分ずつ記憶する領
域が設けられている。
【0039】他方、ステップS41において、「24k
Hz」が入力されていると判定されれば、上記所定の準
備処理をそれに応じて実行し(ステップS45)、24
kHzの読出しサンプリング周波数で波形生成処理を実
行し(ステップS46)、再生予約処理を実行する(ス
テップS47)。他方、ステップS41において、「4
8kHz」が入力されていると判定されれば、上記所定
の準備処理をそれに応じて実行し(ステップS48)、
48kHzの読出しサンプリング周波数で波形生成処理
を実行し(ステップS49)、再生予約処理を実行する
(ステップS50)。
【0040】図12の例では、最初に、補間処理を制御
する制御データとして、「補間なし」,「2点補間」,
「4点補間」のうちのいずれがパネルの操作によって入
力されているかを判定する(ステップS51)。「補間
なし」が入力されていれば、上記所定の準備処理をそれ
に応じて実行する。(ステップS52)ここでは、準備
処理の一部として、波形生成処理の演算順序の決定にお
いて、補間処理を省略するような決定を行なう。続い
て、このように補間処理を省略した波形生成処理を実行
し(ステップS53)、再生予約処理を実行する(ステ
ップS54)。他方、「2点補間」が入力されていれ
ば、上記所定の準備処理をそれに応じて実行する(ステ
ップS55)。ここでは、準備処理の一部として、波形
生成処理の演算順序の決定において、2点補間の補間処
理を行なうような決定を行なう。続いて、このように2
点補間の補間処理を含んだ波形生成処理を実行し(ステ
ップS56)、再生予約処理を実行する(ステップS5
7)。他方、「4点補間」が入力されていれば、上記所
定の準備処理をそれに応じて実行する(ステップS5
8)。ここでは、準備処理の一部として、波形生成処理
の演算順序の決定において、4点補間の補間処理を行な
うような決定を行なう。続いて、このように4点補間の
補間処理を含んだ波形生成処理を実行し(ステップS5
9)、再生予約処理を実行する(ステップS60)。
【0041】このように、図11及び12の例では、レ
ジスタPSEL内の限定データによって限定された範囲
内で、パネルを用いて入力された制御データによって制
御された内容の楽音生成処理が実行される。そして、動
作クロックが遅い場合には、読出しサンプリング周波数
が低い周波数に限定されることにより、動作クロックの
遅いCPUを用いた場合でも、十分な同時発音数を確保
することができるようになる。尚、これらの例では、便
宜上、それぞれ1種類の制御データのみを判定している
が、実際には、パネルを用いて入力された複数種類の制
御データを判定し、それらに従う内容の波形生成処理を
実行するようにしてよいことはもちろんである。
【0042】次に、図13の例では、最初に、レジスタ
PTに格納したタイプを示すデータに基づき、CPU3
が浮動小数点演算用の数値演算プロッセッサを内蔵した
タイプのものであるか否かを判断する(ステップS6
1)。ノーであれば、上記所定の準備処理をそれに応じ
て実行する(ステップS62)。ここでは、準備処理の
一部として、整数演算命令で構成されたプログラムを実
行する準備を行なう。そして、この整数演算命令で構成
された波形生成処理プログラムを実行することにより波
形を生成し(ステップS63)、再生予約処理(ステッ
プS64)を実行する。そしてリターンする。
【0043】他方、ステップS61でイエスと判断され
れば、レジスタOCに格納した動作クロックを示すデー
タに基づき、CPU3の動作クロックの速さが一定以上
であるか否かを判断する(ステップS65)。動作クロ
ックの速さが一定未満であれば、上記所定の準備処理を
それに応じて実行する(ステップS66)。ここでは、
準備処理の一部として、浮動小数点演算命令で構成され
たプログラムを実行する準備を行ない、且つ、波形生成
処理の演算順序の決定において、ディジタルフィルタ処
理を省略するような決定を行なう。続いて、この浮動小
数点演算命令で構成された波形生成処理プログラムを、
ディジタルフィルタ処理を省略して実行することによ
り、波形を生成する(ステップS67)。そしてステッ
プS70に進む。他方、ステップS65で動作クロック
の速さが一定以上であると判断されれば、上記所定の準
備処理をそれに応じて実行する(ステップS68)。こ
こでは、準備処理の一部として、浮動小数点演算命令で
構成されたプログラムを実行する準備を行なうが、ディ
ジタルフィルタ処理を省略する決定は行なわない。続い
て、この浮動小数点演算命令で構成された波形生成処理
プログラムを実行することによって波形を生成する(ス
テップS69)。そしてステップS70に進む。
【0044】ステップS70では、リバーブを制御する
制御データとして、「オフ」,「簡易リバーブ」,「標
準リバーブ」のうちのいずれがパネルの操作によって入
力されているかを判定する。「オフ」が入力されていれ
ば、そのまま再生予約処理を実行する(ステップS7
3)。他方、「簡易リバーブ」が入力されていれば、浮
動小数点演算命令で構成されたエフェクトプログラムを
アルゴリズムを一部省略して実行することによって低い
グレードの簡易リバーブを波形に付加し(ステップS7
1)、その後再生予約処理(ステップS73)を実行す
る。他方、「標準リバーブ」が入力されていれば、浮動
小数点演算命令で構成されたエフェクトプログラムをア
ルゴリズムを省略することなく実行することによって高
いグレードの標準リバーブを波形に付加し(ステップS
72)、その後再生予約処理(ステップS73)を実行
する。そしてリターンする。
【0045】このように、図13の例では、レジスタP
T及びOC内の数値演算プロッセッサの内蔵の有無を示
すデータ及び動作クロックを示すデータと、レジスタP
SEL内の限定データにより限定された範囲内で入力さ
れた制御データとの双方の組み合わせによって制御され
た内容の楽音生成処理が実行される。そして、楽音生成
処理プログラムを構成する命令として、CPUのタイプ
に応じて異なる種類の命令を用いるような制御を行なう
ことにより、それぞれのCPUの高速動作のために最適
な種類の命令を用いて高速に処理を実行させることがで
きる。なお、浮動小数点演算用の数値演算プロセッサを
内蔵しないCPUで、リバーブ処理が選択不能になって
いる理由は、リバーブ処理では浮動小数点の乗算処理を
高速に行うことが必要であるからである。
【0046】以上のように、このソフトウェア音源で
は、楽音生成処理に使用しようとするCPUの演算能力
に応じて制御した内容の楽音生成処理をそのCPUに実
行させることができる。したがって、それぞれのCPU
の演算能力にとって最適な内容で楽音生成処理を実行さ
せて、常に可能な範囲で最大限に質の高い楽音を生成す
ることができるようになる。なお、上述した実施の形態
において、図2に示したタイミング関係は、本発明の特
徴を損なわない限り、任意に変更してもよい。また、時
刻T1,T2,…等の区間の区切り方も任意であってよ
く、更に、起動要因2の発生タイミングがそれらの時刻
に一致する必要もない。
【0047】また、上述した実施の形態では、CPUの
演算能力を決定づける要因である性能として、動作クロ
ックやタイプ(数値演算プロッセッサの内蔵の有無等)
を検出しているが、これらに加え、またはこれらに変え
て、命令キャッシュメモリの内蔵の有無や、データキャ
ッシュメモリの内蔵の有無等を検出するようにしてもよ
い。また、上述した実施の形態では、CPUの性能を検
出し、その検出結果に応じて楽音生成処理の内容を制御
している。しかし、このようにCPUの性能を検出する
かわりに、浮動小数点演算の演算能力をテストするため
のベンチマークテストプログラムや整数演算の演算能力
をテストするためのベンチマークテストプログラムをC
PUに実行させることにより、CPUの演算能力を実際
に確認し、その確認結果に応じて楽音生成処理の内容を
制御するようにしてもよい。
【0048】また、上述した実施の形態では、楽音生成
処理の内容として、原波形データの読出しサンプリング
周波数や、補間処理や、ディジタルフィルタ処理や、リ
バーブを制御しているが、その他の処理を制御するよう
にしてもよい。また、上述した実施の形態では、読出し
サンプリング周波数や補間処理については、レジスタP
SEL内の限定データにより限定された範囲内でパネル
を用いて入力した制御データによって選択的に制御を行
ない、ディジタルフィルタ処理については、レジスタO
C内の動作クロックを示すデータに基づいて一義的に制
御を行ない、リバーブについては、レジスタPT内のタ
イプを示すデータとパネルを用いて入力した制御データ
との双方によって制御を行なっている。しかし、読出し
サンプリング周波数や補間処理についても、レジスタP
TまたはOC内のデータに基づいて一義的に制御を行な
ったり、レジスタPTまたはOC内のデータとパネルを
用いて入力した制御データとの双方によって制御を行な
ったりしてよく、ディジタルフィルタ処理についても、
パネルを用いて入力した制御データによって選択的に制
御を行なったり、レジスタPTまたはOC内のデータと
パネルを用いて入力した制御データとの双方によって制
御を行なったりしてよく、リバーブについても、レジス
タPTまたはOC内のデータのみに基づいて一義的に制
御を行なったり、パネルを用いて入力した制御データの
みによって選択的に制御を行なったりしてよい。また、
共通のCPUを用いて上述のような楽音生成処理プログ
ラムと同時にその他のアプリケーションソフトウェアプ
ログラム(例えばカラオケソフト、ゲームソフト、自動
演奏のシーケンサソフトなど)を動作させるようにして
もよく、その場合は、同時に動作される該アプリケーシ
ョンプログラムのCPU負荷量も考慮に入れて、上記制
御データを設定するようにするとよい。
【0049】また、上述した実施の形態では、メインル
ーチンをスタートすると直ちにCPUの性能を検出して
いるが、適宜のタイミング(例えば、キーボード8から
性能の検出コマンドの入力があったとき)に性能の検出
を行なうようにしてもよい。また、上述した実施の形態
では、パーソナルコンピュータを用いたソフトウェア音
源にこの発明を適用しているが、パーソナルコンピュー
タ以外の汎用コンピュータを用いたソフトウェア音源
や、電子楽器に搭載したCPUに楽音生成処理を実行さ
せるソフトウェア音源にこの発明を適用してもよい。
【0050】また、上述した実施の形態では、ソフトウ
ェア音源にこの発明を適用しているが、本発明の実施は
これに限らない。同一内容の楽音発生処理プログラムが
演算能力の異なる演算処理手段によって実行される可能
性は、プログラムを変更可能なDSP(ディジタルシグ
ナルプロセッサ)を搭載した複数の機種の楽音発生装置
の間で、該DSPに実行させる楽音発生処理プログラム
を共通化するような場合にも存在する。したがって、こ
うしたDSPを搭載した楽音発生装置においてこの発明
を適用するようにしてもよい。
【0051】最後に、本明細書において示されている発
明及びその実施態様の幾つかを以下に列挙する。 (1) 楽音生成処理に使用しようとする演算処理手段
の性能を検出する検出手段と、前記検出手段の検出結果
に応じて、前記演算処理手段に実行させるべき楽音生成
処理の内容を制御する制御手段とを具え、前記制御手段
によって制御された内容の楽音生成処理を前記演算処理
手段に実行させるようにした楽音発生装置。 (2) 前記制御手段は、前記検出手段によって検出さ
れた性能が一定程度に満たない場合には、楽音生成処理
を低いグレードに設定する制御と、楽音生成処理の中の
一部の処理を省略する制御との少なくとも一方を行なう
ものである前記(1)項に記載の楽音発生装置。 (3) 前記制御手段は、前記検出手段の検出結果に応
じて、楽音生成処理プログラムを構成する命令として異
なる種類の命令を用いるような制御を行なうものである
前記(1)項に記載の楽音発生装置。 (4) 楽音生成処理に使用しようとする演算処理手段
の性能を検出する検出手段と、前記演算処理手段に実行
させるべき楽音生成処理の内容を制御する制御データを
入力するための操作子手段と、前記検出手段の検出結果
に応じて、前記操作子手段で入力可能な制御データの範
囲を限定する限定手段とを具え、前記操作子手段で入力
された制御データに従う内容の楽音生成処理を前記演算
処理手段に実行させるようにした楽音発生装置。 (5) 楽音生成処理を記述したプログラムに従って楽
音生成を実行するための汎用の演算処理手段と、前記演
算処理手段の性能を検出する検出手段と、前記検出手段
の検出結果に応じて、前記演算処理手段が前記プログラ
ムに従って実際に実行する楽音生成処理の内容を制御す
る制御手段とを具えた楽音発生装置。 (6) 前記検出手段は、前記演算処理手段の動作クロ
ックを検出するものである前記(1)乃至(5)項のい
ずれかに記載の楽音発生装置。 (7) 前記検出手段は、前記演算処理手段のタイプを
検出するものである前記(1)乃至(5)項のいずれか
に記載の楽音発生装置。 (8) 前記検出手段は、既存のテストプログラムを前
記演算処理手段が実行することから成るものである前記
(1)乃至(5)項及び(7)項のいずれかに記載の楽
音発生装置。 (9) 前記検出手段は、所定の記憶領域に予め書き込
まれた性能を示すデータを前記演算処理手段が読み出す
ことから成るものである前記(1)乃至(7)項のいず
れかに記載の楽音発生装置。 (10) 前記検出手段は、前記演算処理手段が、所定
の種類の演算命令を高速に実行するための数値演算プロ
ッセッサを内蔵したタイプのものであるか否かを検出す
るものである前記(7)乃至(9)項のいずれかに記載
の楽音発生装置。
【0052】(11) 前記制御手段は、波形データを
読み出す際のサンプリング周波数を制御するものである
前記(1)乃至(3)項,(5)項,及び(6)乃至
(10)項のいずれかに記載の楽音発生装置。 (12) 前記制御手段は、補間処理を制御するもので
ある前記(1)乃至(3)項,(5)項,及び(6)乃
至(11)項のいずれかに記載の楽音発生装置。 (13) 前記制御手段は、ディジタルフィルタ処理を
制御するものである前記(1)乃至(3)項,(5)
項,及び(6)乃至(11)項のいずれかに記載の楽音
発生装置。 (14) 前記制御手段は、エフェクト処理を制御する
ものである前記(1)乃至(3)項,(5)項,及び
(6)乃至(13)項のいずれかに記載の楽音発生装
置。 (15) 前記制御手段は、リバーブの実行の有無とそ
のグレードとを制御するものである前記(14)項に記
載の楽音発生装置。 (16) 前記制御手段は、前記演算処理手段の動作ク
ロックに基づいて制御を行なうものである前記(12)
乃至(15)項のいずれかに記載の楽音発生装置。 (17) 前記制御手段は、前記演算処理手段が浮動小
数点演算用の数値演算プロッセッサを内蔵したタイプの
ものであるか否かに基づいて制御を行なうものである前
記(1)乃至(3)項,(5)項,及び(6)乃至(1
6)項のいずれかに記載の楽音発生装置。
【0053】(18) 前記限定手段は、検出された性
能が一定程度以上である場合には、予定された選択可能
範囲内で全ての制御データを選択することを許容し、該
性能が一定程度未満である場合には、前記選択可能範囲
のうちグレードの低い一部の制御データしか選択できな
いような限定を行なうものである前記(4)項及び
(6)乃至(10)項のいずれかに記載の楽音発生装
置。 (19) 前記限定手段は、波形データを読み出す際の
サンプリング周波数を制御する制御データの選択可能範
囲を限定するものである前記(4)項及び(6)乃至
(10)項及び(18)項のいずれかに記載の楽音発生
装置。 (20) 前記限定手段は、補間処理を制御する制御デ
ータの選択可能範囲を限定するものである前記(4)
項,(6)乃至(10)項,(18)項及び(19)項
のいずれかに記載の楽音発生装置。 (21) 前記限定手段は、エフェクト処理を制御する
制御データの選択可能範囲を限定するものである前記
(4)項及び(6)乃至(10)項及び(18)乃至
(20)項のいずれかに記載の楽音発生装置。 (22) 前記限定手段は、リバーブの実行の有無とそ
のグレードとを制御する制御データの選択可能範囲を限
定するものである前記(21)項に記載の楽音発生装
置。 (23) 汎用の演算処理手段の性能を検出するための
処理を、該演算処理手段に実行させる第1のステップ
と、前記演算処理手段に実行させようとする楽音生成処
理の内容を前記第1のステップの検出結果に応じて制御
する処理を、該演算処理手段に実行させる第2のステッ
プと、前記第2のステップで制御された内容の楽音生成
処理を、前記演算処理手段に実行させる第3のステップ
とから成る楽音発生方法。
【0054】
【発明の効果】以上のように、この発明によれば、ソフ
トウェア音源方式の楽音生成装置や、プログラムを変更
可能なDSPを搭載した楽音生成装置のように、楽音生
成処理が常に同一の演算能力を有する演算処理手段によ
って実行されるとは限らない楽音生成装置であっても、
楽音生成処理に使用する演算処理手段の性能に応じて制
御した内容の楽音生成処理をその演算処理手段に実行さ
せることができる。したがって、例えば、演算能力の低
い演算処理手段を使用した場合でも十分な同時発音数を
確保したり、あるいは、楽音生成処理プログラムを構成
する命令として、それぞれの演算処理手段の高速動作の
ために最適な種類の命令を用いて高速に処理を実行させ
たりすることができる。このように、それぞれの演算処
理手段の演算能力にとって最適な内容で楽音生成処理を
実行させて、常に可能な範囲で最大限に質の高い楽音を
生成することができるようになる。
【図面の簡単な説明】
【図1】この発明を採用したコンピュータミュージック
システムの全体構成ブロック図
【図2】ソフトウェア音源の基本原理を示した図
【図3】 ディスプレイに表示されるパネルを示す図
【図4】 CPUの実行するメインルーチンを示すフロ
ーチャート
【図5】CPUの実行する割込み処理を示すフローチャ
ート
【図6】入力バッファの記憶領域の一例を示す図
【図7】CPUの実行するノートオンイベント処理を示
すフローチャート
【図8】音色データの内容の一例を示す図
【図9】音源レジスタの記憶領域の一例を示す図
【図10】CPUの実行するパネル入力イベント音源処
理を示すフローチャート
【図11】CPUの実行する音源処理を示すフローチャ
ート
【図12】CPUの実行する音源処理の別の例を示すフ
ローチャート
【図13】CPUの実行する音源処理の別の例を示すフ
ローチャート
【図14】出力バッファの記憶領域の一例を示す図
【符号の説明】
1 MIDI 2 タイマ 3 CPU 4 ROM 5 RAM 6 データ及びアドレスバス 7 マウス 8 キーボード 9 ディスプレイ 10 ハードディスク装置 11 DMA回路 12 D/A変換器 13 サウンドシステム
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G10H 7/00 521K (58)調査した分野(Int.Cl.6,DB名) G10H 1/02 G10H 1/00 G10H 1/12 G10H 1/18 101 G10H 7/02

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数発音チャンネルの楽音を生成する
    音生成処理に使用しようとするCPUの性能を検出する
    検出手段と、 前記検出手段の検出結果に応じて、前記CPUに実行さ
    せるべき楽音生成処理の内容を制御する制御手段とを具
    え、前記制御手段によって制御された内容の楽音生成処
    理を前記CPUに実行させるようにした楽音発生装置
    あって、 前記制御手段は、前記検出手段の検出結果により前記C
    PUの性能が低いことが検出された場合、前記楽音生成
    処理を低いグレードに設定する制御と前記楽音生成処理
    の一部を省略する制御との少なくとも一方を実行するこ
    とにより、前記楽音生成処理の各発音チャンネル当りの
    処理時間を短縮して、前記低グレード化および/または
    前記省略の制御を実行しない場合に比して同時発音数を
    増加させることを特徴とする楽音発生装置
  2. 【請求項2】 前記制御手段が制御する楽音生成処理の
    内容は、補間処理、ディジタルフィルタ処理、エフェク
    ト処理の少なくとも1つであることを特徴とする請求項
    記載の楽音発生装置。
  3. 【請求項3】 楽音生成処理に使用しようとするCPU
    の性能を検出する検出手段と、 前記CPUに実行させるべき楽音生成処理の内容を制御
    する制御データを入力するための操作子手段と、 前記検出手段の検出結果に応じて、前記操作子手段で入
    力可能な制御データの範囲を限定する限定手段とを具
    え、前記操作子手段で入力された制御データに従う内容
    の楽音生成処理を前記CPUに実行させるようにした楽
    音発生装置。
  4. 【請求項4】 前記制御データは、前記楽音生成処理に
    おける補間処理、エフェクト処理の少なくとも1つの態
    様を制御するものであることを特徴とする請求項3記載
    の楽音発生装置
  5. 【請求項5】 前記制御データは、前記楽音生成処理で
    生成される楽音のサンプリング周波数を制御するもので
    あることを特徴とする請求項3記載の楽 音発生装置
  6. 【請求項6】 前記CPUは、前記楽音生成処理を記述
    したプログラムに従って楽音生成を実行するものである
    請求項1乃至5のいずれかに記載の楽音発生装置。
  7. 【請求項7】 複数発音チャンネルの楽音を生成する楽
    音生成処理に使用しようとするCPUの性能を検出する
    第1ステップと、 前記第1ステップの検出結果に応じて、前記CPUに実
    行させるべき楽音生成処理の内容を制御する第2ステッ
    プと、 前記第2ステップで制御された内容の楽音生成処理を前
    記CPUに実行させる第3ステップとから成る楽音発生
    方法であって、 前記検出結果により前記CPUの性能が低いことが検出
    された場合、前記第2ステップが、前記楽音生成処理を
    低いグレードに設定する制御と前記楽音生成処理の一部
    を省略する制御との少なくとも一方を実行することによ
    り、前記楽音生成処理の各発音チャンネル当りの処理時
    間を短縮して、前記低グレード化および/または前記省
    略の制御を実行しない場合に比して同時発音数を増加さ
    せることを特徴とする楽音発生方法。
  8. 【請求項8】 前記第2ステップで制御される楽音生成
    処理の内容は、補間処理、ディジタルフィルタ処理、エ
    フェクト処理の少なくとも1つであることを特徴とする
    請求項7記載の楽音発生方法。
  9. 【請求項9】 楽音生成処理に使用しようとするCPU
    の性能を検出する第1ステップと、 前記CPUに実行させるべき楽音生成処理の内容を制御
    する制御データを入力する第2ステップであって、前記
    第1ステップの検出結果に応じて、入力可能な制御デー
    タの範囲を限定するものと、 前記第2ステップで入力された制御データに基づく楽音
    生成処理を前記CPUに実行させる第3ステップとから
    成る楽音発生方法。
  10. 【請求項10】 前記検出結果に応じて入力可能な範囲
    が限定される前 記制御データは、前記楽音生成処理にお
    ける補間処理、エフェクト処理の少なくとも1つの態様
    を制御するものであることを特徴とする請求項9記載の
    楽音発生方法。
  11. 【請求項11】 前記検出結果に応じて入力可能な範囲
    が限定される前記制御データは、前記楽音生成処理で生
    成される楽音のサンプリング周波数を制御するものであ
    ることを特徴とする請求項9記載の楽音発生方法。
  12. 【請求項12】 前記CPUは、前記楽音生成処理を記
    述したプログラムに従って楽音生成を実行するものであ
    る請求項7乃至11のいずれかに記載の楽音発生方法。
  13. 【請求項13】 前記楽音生成処理に使用しようとする
    CPUの性能を検出する第1ステップを前記CPUに実
    行させる請求項7乃至12のいずれかに記載の楽音発生
    方法。
JP7297871A 1995-10-20 1995-10-20 楽音発生装置及び方法 Expired - Fee Related JP2924745B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP7297871A JP2924745B2 (ja) 1995-10-20 1995-10-20 楽音発生装置及び方法
TW084111205A TW279953B (en) 1995-10-20 1995-10-23 Music generator and method
US08/731,414 US5728961A (en) 1995-10-20 1996-10-15 Method and device for executing tone generating processing depending on a computing capability of a processor used
EP96116507A EP0769773B1 (en) 1995-10-20 1996-10-15 Tone generating method and device
DE69618738T DE69618738T2 (de) 1995-10-20 1996-10-15 Verfahren und Vorrichtung zur Tonerzeugung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7297871A JP2924745B2 (ja) 1995-10-20 1995-10-20 楽音発生装置及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP01989099A Division JP3627557B2 (ja) 1999-01-28 1999-01-28 楽音発生装置及び方法

Publications (2)

Publication Number Publication Date
JPH09114457A JPH09114457A (ja) 1997-05-02
JP2924745B2 true JP2924745B2 (ja) 1999-07-26

Family

ID=17852211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7297871A Expired - Fee Related JP2924745B2 (ja) 1995-10-20 1995-10-20 楽音発生装置及び方法

Country Status (5)

Country Link
US (1) US5728961A (ja)
EP (1) EP0769773B1 (ja)
JP (1) JP2924745B2 (ja)
DE (1) DE69618738T2 (ja)
TW (1) TW279953B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209096B1 (en) * 1996-07-02 2001-03-27 Yamaha Corporation Method and device for storing main information with associated additional information incorporated therein
US6758755B2 (en) 1996-11-14 2004-07-06 Arcade Planet, Inc. Prize redemption system for games executed over a wide area network
JP4240575B2 (ja) 1998-05-15 2009-03-18 ヤマハ株式会社 楽音合成方法、記録媒体および楽音合成装置
JP2000181460A (ja) * 1998-12-17 2000-06-30 Sony Computer Entertainment Inc 楽音生成装置および方法、並びに提供媒体
JP3551065B2 (ja) * 1999-03-01 2004-08-04 ヤマハ株式会社 データ設定装置
KR100549518B1 (ko) * 2000-04-03 2006-02-03 야마하 가부시키가이샤 휴대기기, 그 휴대기기의 음량보상방법, 및 기억매체
JP3781171B2 (ja) * 2000-06-22 2006-05-31 ヤマハ株式会社 楽音発生方法
US7247787B2 (en) * 2003-03-24 2007-07-24 Yamaha Corporation Electronic musical instrument
JP4400363B2 (ja) * 2004-08-05 2010-01-20 ヤマハ株式会社 音源システム、楽曲ファイルを記録したコンピュータ読み取り可能な記録媒体及び楽曲ファイル作成ツール
WO2007023456A2 (en) * 2005-08-22 2007-03-01 Nxp B.V. Microcontroller waveform generation
US20080163744A1 (en) * 2007-01-09 2008-07-10 Yamaha Corporation Musical sound generator
US9973868B2 (en) * 2016-10-05 2018-05-15 Tymphany Hk Ltd. Method for estimating the battery life of battery-powered audio systems by means of an amplitude modulated broadband audio signal

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119710A (en) * 1986-03-09 1992-06-09 Nippon Gakki Seizo Kabushiki Kaisha Musical tone generator
JP2565555B2 (ja) * 1988-11-07 1996-12-18 株式会社河合楽器製作所 電子楽器の系列累算処理装置
US5020410A (en) * 1988-11-24 1991-06-04 Casio Computer Co., Ltd. Sound generation package and an electronic musical instrument connectable thereto
US5319151A (en) * 1988-12-29 1994-06-07 Casio Computer Co., Ltd. Data processing apparatus outputting waveform data in a certain interval
JP2500489B2 (ja) * 1991-08-30 1996-05-29 ヤマハ株式会社 電子楽器
JP2722907B2 (ja) * 1991-12-13 1998-03-09 ヤマハ株式会社 波形発生装置
JPH07146679A (ja) * 1992-11-13 1995-06-06 Internatl Business Mach Corp <Ibm> 音声データを変換する方法及びシステム
US5376752A (en) * 1993-02-10 1994-12-27 Korg, Inc. Open architecture music synthesizer with dynamic voice allocation
DE69517896T2 (de) * 1994-09-13 2001-03-15 Yamaha Corp., Hamamatsu Elektronisches Musikinstrument und Vorrichtung zum Hinzufügen von Klangeffekten zum Tonsignal
JP2812222B2 (ja) * 1994-10-31 1998-10-22 ヤマハ株式会社 電子楽器および音源手段の置き換え方法

Also Published As

Publication number Publication date
DE69618738D1 (de) 2002-03-14
JPH09114457A (ja) 1997-05-02
TW279953B (en) 1996-07-01
EP0769773B1 (en) 2002-01-23
DE69618738T2 (de) 2002-10-17
EP0769773A1 (en) 1997-04-23
US5728961A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
US5319151A (en) Data processing apparatus outputting waveform data in a certain interval
JPH0997064A (ja) 自動演奏データ処理装置
JP2924745B2 (ja) 楽音発生装置及び方法
JP3293434B2 (ja) 楽音発生方法
JP3226011B2 (ja) 歌詞表示装置
JP3293474B2 (ja) 楽音発生方法
US6770806B2 (en) Tone signal processing apparatus with intermittent clock supply
JP3152198B2 (ja) 楽音発生方法および楽音発生装置
US6169243B1 (en) Automatic performance apparatus with quick start by accelerated loading of setting data
US6040516A (en) Tone generation system using computer software and storage medium storing the computer software
JP2901143B2 (ja) 楽音生成装置
JP3627557B2 (ja) 楽音発生装置及び方法
JP4096952B2 (ja) 楽音発生装置
JP3637577B2 (ja) 楽音生成方法
JP3409642B2 (ja) 自動演奏装置、自動演奏データ処理方法及び電子的情報記憶媒体
JP3003559B2 (ja) 楽音生成方法
JP3141789B2 (ja) コンピュータソフトウェアを用いた音源システム
JP3705203B2 (ja) 楽音発生方法
JP3740717B2 (ja) 音源装置及び楽音生成方法
JP3050779B2 (ja) 信号処理装置
JP3632744B2 (ja) 音生成方法
JP3603638B2 (ja) 楽音発生方法
JPH0997067A (ja) 楽音発生方法および楽音発生装置
JP3603849B2 (ja) 楽音発生方法
JPH10124050A (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: 20090507

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100507

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110507

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130507

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20140507

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees