JP2904088B2 - 楽音生成方法および装置 - Google Patents

楽音生成方法および装置

Info

Publication number
JP2904088B2
JP2904088B2 JP7349046A JP34904695A JP2904088B2 JP 2904088 B2 JP2904088 B2 JP 2904088B2 JP 7349046 A JP7349046 A JP 7349046A JP 34904695 A JP34904695 A JP 34904695A JP 2904088 B2 JP2904088 B2 JP 2904088B2
Authority
JP
Japan
Prior art keywords
waveform
interrupt
generating
tone
generated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP7349046A
Other languages
English (en)
Other versions
JPH09179556A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=18401130&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2904088(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP7349046A priority Critical patent/JP2904088B2/ja
Priority to TW085100773A priority patent/TW282538B/zh
Priority to EP96120420A priority patent/EP0780827B1/en
Priority to DE69613950T priority patent/DE69613950T2/de
Priority to US08/770,357 priority patent/US5973251A/en
Priority to CNB961231416A priority patent/CN1141695C/zh
Publication of JPH09179556A publication Critical patent/JPH09179556A/ja
Publication of JP2904088B2 publication Critical patent/JP2904088B2/ja
Application granted granted Critical
Priority to US09/388,987 priority patent/US6040515A/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • 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
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、演算処理装置上に
おいて楽音生成プログラムを実行することにより楽音波
形を演算生成する楽音生成方法、および、該楽音生成方
法を利用した楽音生成装置に関する。
【0002】
【従来の技術】従来の楽音生成装置は、通常、MIDI
(Musical Instrument Digital Interface)、鍵盤ある
いはシーケンサなどからの演奏情報を入力する演奏入力
部、楽音波形を発生する音源部、入力された演奏情報に
応じて前記音源部を制御する中央処理装置(CPU)な
どから構成されていた。ここで、CPUは、入力された
演奏情報に応じて、チャンネルアサイン、パラメータ変
換などの音源ドライバ処理を実行し、音源部の割り当て
たチャンネルに変換したパラメータと発音開始指示(ノ
ートオン)を供給する。また、音源部は供給されたパラ
メータに基づいて楽音波形を生成するものであり、この
音源部としては電子回路などのハードウエアが採用され
ていた。このため、楽音生成装置は楽音を発生するため
の専用機器となってしまい、楽音を発生するときには専
用の楽音生成装置を準備することが必要であった。
【0003】そこで、これを解決するために、最近で
は、前記ハードウエア音源の動作をコンピュータプログ
ラムによる音源処理(ソフトウエア音源)に置き換え、
CPUにより演奏処理と音源処理とを実行させるように
した楽音生成方法が提案されている。ここで、演奏処理
とは、前述した音源ドライバ処理に相当する処理であっ
て、入力されたMIDIなどの演奏情報に基づき、生成
される楽音を制御するための制御情報を作成する処理で
ある。また、音源処理とは、前記演奏処理において作成
された制御情報に基づき楽音の波形サンプルデータを生
成する処理のことである。この楽音生成方法によれば、
専用の楽音生成装置を用いることなく、CPUとソフト
ウエアの他にはデジタルアナログ変換(DA変換)用の
チップを備えるだけで、楽音を発生させることが可能と
なる。
【0004】楽音を発生させるためには、サンプリング
周期、すなわち、デジタルアナログ変換器(DAC;Di
gtal Analog Converter )における変換タイミング毎に
波形サンプルをDACに供給することが必要である。そ
こで、上記した楽音生成方法においては、CPUは、通
常時は押鍵検出等の演奏処理を実行し、該演奏処理に対
して各サンプリング周期毎に音源処理を割り込み実行し
て、複数チャンネルの楽音の1サンプル分の波形データ
を演算生成した後、再び演奏処理に復帰するという動作
を行なうようになされていた。
【0005】
【発明が解決しようとする課題】しかしながら、上記し
た従来の楽音生成方法において、CPUは、各サンプリ
ング周期毎に各発音チャンネルの波形生成演算処理を行
うときに、まず、前回の当該発音チャンネルの演算に用
いた各種のデータをメモリからレジスタに復帰させるこ
と、および、当該波形生成演算終了後に次回の処理のた
めに前記レジスタの内容をメモリに退避することが必要
である。すなわち、各発音チャンネルの楽音波形サンプ
ルを1サンプルずつ演算生成するようにしていたため、
楽音の生成以外の準備処理などの多くの演算時間が費や
され、演算効率が悪くなり、応答や楽音生成処理が遅く
なるという問題点があった。本来の波形生成演算以外の
処理に多くの処理時間を必要としていた。
【0006】また、このようなソフトウエア音源に対し
てMIDIイベントなどの演奏情報を供給するMIDI
シーケンサやゲームソフトウエアなどのアプリケーショ
ンプログラムは、一般のOS(Operating System)の下
で動作するようになされている。例えば、そのシーケン
スソフトにより作成されたMIDIイベントで前述した
ソフトウエア音源を駆動しようとする場合には、まず、
そのOSを動作させないとそのシーケンスソフト自体を
実行することができないのであるが、そのようにする
と、該OSと同時にソフトウエア音源を安定に動作させ
ることが必要となる。したがって、前述したようなソフ
トウエア音源を一般のOSのもとで安定してリアルタイ
ム動作させることは困難である。
【0007】例えば、非完全マルチタスク方式(プリエ
ンプティブでないマルチタスク方式)のOSの制御下に
おいては、実行中のタスクがOSに制御を戻さない限り
他のタスクは実行されないため、当該ソフトウエア音源
が所定時間ごとに実行されないことがあり、楽音波形サ
ンプルをDACに1サンプリング周期毎に安定して出力
させることができない場合がある。
【0008】また、演奏情報(MIDIイベント)は、
演奏者の演奏操作やシーケンサでのイベントの再生によ
り発生し、該演奏情報が発生した場合には前記演奏処理
により処理される。つまり、演奏情報の発生した時点で
は、CPUは通常の音源処理に加えて演奏処理を実行し
なければならないため、非定期的に発生する演奏情報に
より演算量が一時的に増加することになる。しかしなが
ら、従来の楽音生成方法においてはこれに対応しておら
ず、音源処理は演奏情報のあるなしに関わらず定期的に
優先実行され、場合によっては演奏処理が遅れてしまう
ことがある。なお、このような演奏処理の遅れを防止す
るために、逆に演奏処理の優先度を上げることが考えら
れるが、このようにすると今度は、一時的に発音数が減
少したり、あるいは、楽音波形が途切れてしまうなど、
音源処理の動作が不安定になるという問題が発生するこ
とになる。このことは、リアルタイム演奏を行なうとき
に特に問題となる。
【0009】さらにまた、従来のソフトウエア音源にお
いては、ソフトウエア音源を使用するときには該ソフト
ウエア音源を使用するという設定を行なうことが必要で
あり、従来のハードウエア音源を使用するソフトウエア
をそのまま使用することにより、ソフトウエア音源を駆
動することはできなかった。
【0010】そこで、本発明は、波形生成演算を効率よ
く安定して実行することができる楽音生成方法および装
置を提供することを目的としている。また、処理量が増
加した場合でも、安定した音源処理を行うことを目的と
している。さらにまた、従来のハードウエア音源を使用
するソフトウエアをそのまま使用することができるソフ
トウエア音源を提供することを目的としている。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明の楽音生成方法は、所定のオペレーティング
システムが動作する演算処理装置において実行される楽
音生成方法であって、(1)アプリケーションプログラ
ムから演奏情報が出力されたときに発生される第1の割
込に応じて起動され、当該演奏情報に対応した発音制御
情報を生成する第1のステップ、(2)バッファに記憶
されている波形サンプル数の減少を検出したときに発生
される第2の割込により起動され、前記発音制御情報に
基づいて複数の波形サンプルを一括生成し、該生成され
た波形サンプルをバッファに記憶する第2のステップ、
および、(3)前記バッファに記憶された波形サンプル
を各サンプリング周期毎に1サンプルずつ読み出してデ
ジタルアナログ変換器に順次出力する第3のステップを
含む楽音生成方法である。
【0012】また、前記第1のステップおよび前記第2
のステップは、前記所定のオペレーティングシステムに
おける仮想デバイスドライバとされている楽音生成方法
である。さらにまた、前記第2の割込は、前記デジタル
アナログ変換器に送出された波形サンプル数が所定数に
達したことを検出したときに発生されるようになされて
いる楽音生成方法である。
【0013】さらにまた、本発明の楽音生成装置は、演
算処理装置と、所定のオペレーティングシステムおよび
アプリケーションプログラムが格納される記憶手段と、
演算生成された波形サンプルが記憶されるバッファメモ
リと、前記バッファメモリから前記波形サンプルを各サ
ンプリング周期毎に1サンプルずつ読み出して順次出力
する出力手段と、前記アプリケーションプログラムから
演奏情報が出力されたときに第1の割込を発生する第1
の割込発生手段と、前記バッファメモリに格納されてい
る波形データが減少したことを検出したときに第2の割
込を発生する第2の割込発生手段と、前記第1の割込の
発生に応じて動作し、前記アプリケーションプログラム
から出力された演奏情報に対応する発音制御情報を生成
する発音制御情報発生手段と、前記第2の割込の発生に
応じて動作し、前記発音制御情報に基づいて複数の波形
サンプルを一括生成して、該生成された複数の波形サン
プルを前記バッファメモリに記憶する楽音波形生成手段
とを有する楽音生成装置である。さらにまた、前記発音
制御情報発生手段と前記楽音波形生成手段は、前記所定
のオペレーティングシステムにおける仮想デバイスドラ
イバに含まれている楽音生成装置である。
【0014】
【発明の実施の形態】図1に本発明の楽音生成方法がそ
の上で実行される楽音発生装置の構成を示す。この図に
おいて、1はアプリケーションプログラムや楽音波形サ
ンプルの生成等の各種演算処理を行うマイクロプロセッ
サなどの中央処理装置(CPU)、2はプリセット音色
データ等が記憶されているリードオンリメモリ(RO
M)、3はCPU1のワークメモリエリアや音色データ
エリア、チャンネルレジスタエリア、出力バッファエリ
ア等の記憶エリアを有するランダムアクセスメモリ(R
AM)、4は時刻を指示すると共に、タイマ割り込み処
理のタイミングをCPU1に指示するタイマ、5はMI
DIイベントが入力されると共に、生成されたMIDI
イベントを出力するMIDIインターフェース、6は英
字、かな、数字、記号などのキーと備えるいわゆるパソ
コン用のキーボードである。
【0015】7はユーザが楽音発生装置と対話するため
のディスプレイ(モニタ)装置、8は楽音を発生するシ
ーケンサソフトやゲームソフトなどの各種アプリケーシ
ョンプログラムが格納されているとともに、楽音波形サ
ンプルを生成するために使用する波形データ等が記憶さ
れているハードディスク(HDD)、10は、RAM3
の一部のCPUにより指定されたエリア(DMAバッフ
ァ)に記憶されている楽音波形サンプルデータを、一定
のサンプリング周期(例えば、48kHz)毎にCPU
1を介することなく直接にサウンド入出力回路(COD
EC)11内のデジタルアナログ変換器(DAC)に供
給するためのダイレクトメモリアクセス制御回路(DM
AC;Direct Memory Access Controller)である。
【0016】11は、CODECと呼ばれるサウンド入
出力回路であり、その内部には、デジタルアナログ変換
器(DAC)、アナログデジタル変換器(ADC)、前
記ADCに接続された入力用の先入れ先出しバッファ
(FIFO)および前記DACに接続された出力用のF
IFOが設けられている。このサウンド入出力回路(C
ODEC)11は、サンプリングクロック発生器12か
ら入力される周波数Fsのサンプリングクロックに応じ
て前記ADCによりA/D変換された外部オーディオ信
号入力端子13からのオーディオ入力信号を前記入力用
のFIFOに取り込み、また、前記DMAC10から前
記出力用のFIFOに書き込まれた波形サンプルデータ
を該サンプリングクロックに応じて読み出して前記DA
Cに1サンプルずつ出力する。そして、前記入力用FI
FOにデータが存在するとき、および、前記出力用FI
FOに空があるときには、データ処理を要求する信号を
前記DMAC10に対して出力するように動作する。
【0017】12は前記サウンド入出力回路11に周波
数Fsのサンプリングクロックを発生するサンプリング
クロック発生回路、13は外部オーディオ信号入力回路
であり、その出力は前記サウンド入出力回路11内のA
DCに接続されている。また、14は前記サウンド入出
力回路11内のDACからの出力に接続されたサウンド
システムであり、DACから1サンプリング周期毎に出
力されるアナログ信号に変換された楽音信号を放音す
る。さらに、15はフロッピィディスクを駆動するため
のフロッピィディスク装置、16は前記各構成要素間の
データ転送を行なうためのバスである。なお、CD- R
OM駆動装置やMO駆動装置などの上記した以外の外部
記憶装置が接続されている場合もある。以上の構成はパ
ソコン、ワークステーション等と同等であり、それらの
上で本発明の楽音発生方法を実施することができる。
【0018】図2に上記図1に示した楽音生成装置にお
けるソフトウエアモジュール構成を示す。なお、この図
においては、オペレーティングシステムとしてWind
ows95(Windowsは米国Microsoft
社の登録商標)が使用されているものとして説明する。
このオペレーティングシステムによれば、各アプリケー
ションプログラムは当該OSに対応する仮想計算機(V
M:Virtual Machine環境のもとで実行される。このW
indows仮想マシン(以下 Windows VM
という)は、アプリケーションを実行するコンテキスト
のことを指し、VMコンテキストには、当該アプリケー
ションがアドレス指定可能なメモリマップ、ハードウエ
アレジスタの内容および当該アプリケーションに割り当
てられたWindowsリソースが含まれている。この
Windows VMには、MS−D0S VMとシ
ステムVMとの2種類がある。
【0019】この図において、20は上述したシステム
VMであり、30はMS−DOSVMであり、これらは
Ring3のコンポーネントとされている。図示するよ
うに、システムVM20上には、各アプリケーションプ
ログラム21、23および24が配置される。ここで、
21は32ビットコードで動作するWindows95
用のアプリケーションプログラム(Win32アプリケ
ーション)であり、例えばこの例では表計算用のプログ
ラム23がインストールされている。また、アドレス空
間22上には、Windows用のアプリケーションプ
ログラムであるシーケンサプログラム23およびワード
プロセッサソフト24が配置されている。さらに、シス
テムVM20上にはWindows用のシステムサービ
スコンポーネント25が配置されており、この中には各
種ドライバソフトウエア26およびハードI/Oレジス
タ27が含まれている。
【0020】また、MS−DOS VM30の中には、
例えば、MS−DOS用のゲームプログラム31などの
MS−DOS用のアプリケーションプログラムがインス
トールされており、また、MS−DOS用のドライバソ
フトウエア32およびハードI/O33などのMS−D
OS環境が準備されている。なお、このゲームプログラ
ム31は、MIDIを介して効果音などの楽音を発生す
るようになされているものとする。
【0021】また、Ring0には、図示するようにフ
ァイル管理システムなどを含むWindows95の基
本システム部40が配置されており、その中にはOSの
カーネル部41、仮想デバイスドライバ(VxD)部4
2および管理ソフトウエア47が含まれている。そし
て、前記仮想デバイスドライバ部42には43〜45で
示すn個のサポートルーチン1〜nおよびソフトウエア
音源サポートルーチン46などの複数の仮想デバイスド
ライバ(VxD)ルーチンが含まれている。これらVx
Dルーチンは、各種ソフトウエア割込およびハードウエ
ア割込に対応した各種のサービスを提供する32ビット
プロテクトモードのプログラムモジュールであり、プロ
セッサの特権レベルRing0で動作する。また、カー
ネル部41は各仮想マシンVMからの各種ソフトウエア
割込およびハードウエアからの各種ハードウエア割込に
応じて、対応する仮想デバイスドライバルーチンを動作
させるものである。
【0022】50は前述したサウンド入出力部(COD
EC)11やMIDIインタフェース5などの各種のハ
ードウエアであり、これらハードウエアからの割込は、
前記カーネル部41により受け付けられて、対応するサ
ポートルーチン43〜45あるいはソフトウエア音源サ
ポートルーチン46などのVxDにより当該処理が実行
されるようになされている。
【0023】仮想デバイスドライバ(VxD)は、通
常、パーソナルコンピュータに備えられているハードウ
エア資源を複数の仮想計算機(VM)で共用するために
設けられているものであり、いずれの(1あるいは複数
の)VMに当該ハードウエア資源を使用させるかを管理
する。そのために、VxDは各VMと実際のハードウエ
アとの間に挿入され、VM内のデバイスドライバがその
制御対象であるハードウエアのアドレスにアクセスする
のを検出して、ハードウエアへのアクセスの仲介に入
り、また、逆に、ハードウエアからの出力がある場合
は、対応するVMのデバイスドライバへの伝達を行なう
ものである。
【0024】前述したように、本発明においては仮想デ
バイスドライバ部42にソフトウエア音源サポートルー
チン46が配置されており、このソフトウエア音源サポ
ートルーチン46中には後述するMIDI処理ルーチン
と波形生成処理ルーチンが含まれている。本発明におけ
るこのVxDルーチン(ソフトウエア音源サポートルー
チン)46は、上述した仲介処理ではなく、実際には存
在しない音源ハードウエアのシミュレーション処理を行
なうようになされている。このようにすることにより、
VMからみてそのパーソナルコンピュータに実際にハー
ドウエア音源が備えられているのかどうかの区別が付か
ない状態にすることができる。すなわち、各VMにおい
ては、デバイスドライバを含めて、ハードウエア音源を
操作する場合と全く同じ状態でソフト音源を使用するこ
とができるようになる。
【0025】図3は、本発明の楽音生成方法を用いたソ
フトウエア音源における処理を説明するための図であ
る。このソフトウエア音源が起動されると、まず、ステ
ップS1においてRAM3上の各種バッファ領域の確
保、MIDI処理ルーチンおよび波形生成処理ルーチン
を含むソフト音源サポートルーチン46の仮想デバイス
ドライバ部42へのロード処理、DMAC10の転送処
理の設定、CODEC11などからのハードウエア割込
の設定などの各種初期設定処理が行なわれ、ステップS
2においてこのソフトウエア音源の表示画面が準備され
る。次に、ステップS3に進み、何らかの起動要因が発
生しているか否かがチェックされ、ステップS4におい
て起動要因の有無が判定されて、起動要因が発生してい
るときはステップS5に進み、発生していないときは前
記ステップS3に戻って、起動要因の発生を待つ。
【0026】起動要因が発生したときは、ステップS5
においてその起動要因が何であるのかが判定され、起動
要因に応じてそれぞれ対応する処理が実行される。起動
要因としては、(1)シーケンサソフトなどからのMI
DIイベントの発生、(2)1フレーム分の波形サンプ
ルの再生(DACへの出力)の完了、(3)パネル入力
やコマンド入力などの各種の要求、および、(4)終了
コマンド入力などによる終了要求がある。
【0027】後述するように、上記(1)のシーケンサ
ソフトなどからのMIDIイベントの発生はソフトウエ
ア割込として、また、上記(2)の1フレーム分の再生
完了はサウンド入出力回路11あるいはDMAC10に
より発生されるハードウエア割込として通知される。一
方、上記(3)の各種要求および(4)の終了コマンド
入力は、キーボード6や操作パネルあるいはディスプレ
イ7のウインドウ画面などからのユーザー操作により入
力されるものであり、前述したWindows用のシス
テムサービスコンポーネント25中のプログラムのサー
ビスを受けるものである。したがって、より深いレベル
の割込に応じて起動される上記(1)および(2)に対
応する各処理の方が、上記(3)および(4)に対応す
る各処理よりも優先して実行されることとなる。
【0028】さて、前記ステップS5による判定の結
果、(1)MIDIイベントの発生が起きたときは、S
10のMIDI処理(MIDI Interpreter処理)が実行さ
れる。このMIDI処理は仮想デバイスドライバとして
実行されるもので、この処理において、シーケンサソフ
ト、ゲームソフトなどの楽音を生成するアプリケーショ
ンプログラムから発生されるMIDIイベントに対応し
て、ノートオン、ノートオフ、プログラムチェンジ、コ
ントロールチェンジ、システムエクスクルーシブなどの
処理が行われる。
【0029】例えば、そのMIDIイベントがノートオ
ンイベントであるときは、新規な発音を、音源となる波
形生成処理の発音チャンネルに割り当て、該割り当てた
チャンネルに設定するための楽音制御データとノートオ
ンを用意する。すなわち、そのノートナンバNNおよび
ベロシティVELを取り込み、ノートナンバNNの発音
チャンネル(ch)の割り当てが行なわれる。この割り
当てられた発音チャンネルに対応するチャンネルレジス
タに、前記ノートオンイベントを受信したMIDIチャ
ンネルに対応した音色データを前記ノートナンバNNお
よびベロシティVELの値に応じて加工して得られる発
音用データが設定される。
【0030】また、入力されたMIDIイベントがノー
トオフイベントであるときは、そのノートオフイベント
のノートナンバNNで発音されている発音チャンネル
(ch)がサーチされて、対応する発音チャンネルのノ
ートオンフラグがリセットされる。上記のようにMID
I処理(S10)が実行された後は、ステップS11に
進み、ディスプレイ装置7にMIDIイベントが受信さ
れた旨の表示処理が実行され、再びステップS3に戻
り、次の起動要因の発生を待つ。
【0031】前記起動要因が(2)1フレーム分の波形
サンプルの再生完了であるときは、S20の波形生成処
理が実行される。この波形生成処理も前記MIDI処理
と同様に仮想デバイスドライバとして実行されるもので
ある。この処理はハードウエア音源の機能をシミュレー
トするものであり、前記MIDI処理において生成され
た発音制御情報に基づいて1フレーム期間分の楽音波形
サンプルをまとめて演算生成し、出力バッファに記憶す
る。
【0032】この波形生成処理(S20)が起動される
と、まず、演算順序の第1番目の発音チャンネル(c
h)の最初の楽音波形サンプルの演算準備が行なわれ
る。演算準備処理とは、前回の読み出しアドレス、各種
EG値、各種EGのステート(アタックやリリースなど
の状態)、LFO(Low Frequency Oscillator)値等の
データを、ただちに演算に使えるようにアクセス準備し
たりCPU1の内部レジスタにロードしたりする処理で
ある。次に、LFO、フィルタEG(FEG)、音量E
G(AEG)の波形計算を行ない、1フレーム時間分の
演算に必要なLFO波形、FEG波形、AEG波形のサ
ンプルを生成する。LFO波形はFナンバ、FEG波
形、AEG波形に加算され、各データを変調するために
用いられる。
【0033】次いで、前回の読み出しアドレスを初期値
としてFナンバを繰り返し加算し、1フレーム時間内の
各波形サンプルの読み出しアドレスを発生する。この読
み出しアドレスの整数部に基づいて音色データ内の波形
記憶領域より波形サンプルを読み出すとともに、この読
み出しアドレスの小数部に基づいて読み出された波形サ
ンプル間の補間を行ない、1フレーム時間内の全補間サ
ンプルを算出する。1フレーム時間が、例えば64サン
プル分の時間に相当する場合、64サンプル分まとめて
処理される。ここで、前記1フレーム時間に相当する複
数サンプル分の処理は、読み出しアドレスに基づく読み
出しから補間の処理までの処理を単位処理として、この
単位処理を繰り返して行なうようになっているため、読
み出しアドレスのCPUレジスタへの読み込みが全体と
して1回で済み、処理が高速化されている。
【0034】続いて、前記1フレーム時間分の補間サン
プルに対し、前記FEG波形に基づいて音色制御を行な
う音色フィルタ処理が行なわれ、次いで、フィルタ処理
済みの各サンプルに対し前記AEGおよび音量データに
基づく振幅制御処理が行われ、さらに、振幅制御処理さ
れた前記1フレーム時間分の楽音波形サンプルがそれぞ
れ出力バッファの対応するサンプルに足し込まれる累算
書込処理が実行される。この処理においては、前記1フ
レーム時間分の各波形サンプルについて、振幅制御処理
と出力バッファにおける対応サンプルへの足し込み処理
を連続して行うようになっているので、サンプルのCP
Uレジスタへの取り込み回数が少なくてすみ、処理速度
が向上している。
【0035】以上に示した1ch分の楽音波形サンプル
の演算準備〜演算処理を、演算順序2番目以降の発音チ
ャンネルについて順次実行する。このようにして発音波
形演算が終了したときには、出力バッファには、演算す
べき全発音チャンネルの生成された楽音波形サンプルを
累算した累算値が、1フレーム時間に対応するサンプル
数(例えば64サンプル)分記憶されている。
【0036】また、前記ステップS5において、起動要
因がその他の処理であると判定されたときは、ステップ
S30に進み、それに対応する処理が実行されることと
なる。このその他の処理としては、例えば、操作者によ
りなされたパネル要求やコマンド入力などに応答して、
このソフトウエア音源の発音チャンネル数、サンプリン
グ周波数の選択、出力バッファの容量(これは1フレー
ム時間の長さに相当する。)など各種の設定処理が実行
される。そして、その結果などがステップS31におい
て画面上に表示され、再び、ステップS3に戻る。
【0037】さらに、前記ステップS5の判定結果が終
了要求の入力であった場合は、ステップS40に進み、
終了処理を行なったのち、ステップS41においてこの
ソフト音源に対応する表示画面を消去して、再びステッ
プS3に戻る。
【0038】このようなソフトウエア音源を使用して楽
音を発生するときの信号データの流れを図4に基づいて
説明する。なお、この図においては、楽音を発生させる
ソフトウエアが前述した図2におけるシーケンサソフト
ウエア23であるものとし、該シーケンサソフトウエア
を使用してリアルタイム演奏を行なう場合を例にとって
説明する。このシーケンサソフトウエアは、鍵盤やMI
DIインタフェースなどからの演奏情報を入力し、演奏
入力があったときに対応するMIDIイベントを出力す
るものである。
【0039】まず、シーケンサソフトウエア23は発生
させる楽音に対応するMIDIイベントをドライバソフ
トウエア群26中のMIDIドライバに対して送る。こ
れは、当該VMの音源API(Application Programmin
g Interface )をコールしてソフトウエア割込を発生さ
せることにより実行される。次に、該MIDIドライバ
は、X音源APIを介して仮想デバイスドライバに対し
て該MIDIメッセージを転送する。これにより、仮想
デバイスドライバとしてロードされているMIDI処理
ルーチン(S10)が起動され、前述したように、当該
MIDIメッセージに対応する楽音制御データを生成し
て、当該発音チャンネルに対応する音源レジスタにセッ
トする。一方、1フレーム分の楽音再生が終了した時に
CODEC11からハードウエア割込が発生されると、
上述したように波形生成ルーチン(S20)が起動さ
れ、1フレーム分の波形サンプルデータの生成演算が実
行され、該生成された楽音波形サンプルが出力バッファ
に格納される。この出力バッファに格納された1フレー
ム分の波形サンプルデータは、DMAバッファに転送さ
れる。DMAバッファに格納された波形サンプルデータ
は、DMAC10の制御のもとに1サンプリング周期毎
に1波形サンプルずつ読み出されてDACに供給されて
アナログ信号に変換され、サウンドシステム14から楽
音として出力されることとなる。
【0040】また、MS−DOS VM30中のゲーム
ソフト31がMIDI対応音源を使用して楽音を発生さ
せる機能を有するプログラムである場合について説明す
る。まず、該ゲームソフト31は発生させる楽音に対応
するMIDIイベントをVM30内のMIDIドライバ
32に対して送出し、該MIDIドライバ32は対応す
るハードレジスタ33に対し、当該MIDIイベントを
書き込む。Ring3のプログラムからのハードウエア
レジスタに対する直接のアクセスに対してはトラップが
仕掛けられているために、このハードレジスタ33に対
する書き込みアクセスが検出されたときにソフトウエア
割込が発生して、制御がRing0に移り、そのトラッ
プ原因に対応した仮想デバイスドライバが起動される。
【0041】使用されているパーソナルコンピュータに
通常のハードウエア音源が装備されている場合には、そ
のハードウエア音源に対応する仮想デバイスドライバが
インストールされているおり、そのハードウエア音源用
の仮想デバイスドライバが起動される。なお、このよう
にハードウエア音源は仮想デバイスドライバを介して駆
動されるため、複数のVMによりこのハードウエア音源
を共用することが可能となる。
【0042】また、対応するハードウエア音源が装備さ
れていないときには、仮想デバイスドライバである本発
明のソフトウエア音源サポートルーチン46が起動さ
れ、MIDI処理ルーチン(S10)に当該MIDIイ
ベントが渡される。この後は前述の場合と同様にして、
楽音発生処理が行なわれることとなる。したがって、ア
プリケーションプログラムからみてハードウエア音源が
実装されている場合と全く同様に処理が行なわれ、なん
らプログラムなどの変更をすることなく、ソフトウエア
音源による処理を実行させることが可能となる。
【0043】図5および図6を用いて、前記ステップS
20の波形生成部において演算生成された楽音波形サン
プルがどのようにしてサンプリング周期毎にDACから
出力され楽音として放音されるかについて説明する。図
5において、10は前述したDMACであり、その内部
にはDMAバッファ60のデータ読み出しアドレスpを
指定するポインタレジスタ101が設けられている。1
1は前述したサウンド入出力回路(CODEC)であ
り、その内部には、DMAバッファから読み出された楽
音波形サンプルデータが格納される出力用のFIFOバ
ッファ111、DAC12、前記FIFOバッファ11
1に空き領域があることを検出する空検出手段113、
FIFOバッファ111からDAC112に転送された
波形サンプルデータの数が所定数になったことを検出
し、CPU1に対してハードウエア割込を出力する転送
数検出手段114が設けられている。なお、このほかに
も、図示していないが、外部オーディオ入力端子13か
らのオーディオ信号が入力される入力用FIFO、該入
力用FIFOの出力をアナログデジタル変換するADC
なども設けられている。
【0044】12は前述した周波数Fsのサンプリング
パルスを発生するサンプリングパルス発生器であり、そ
の出力は、前記FIFOバッファ111および前記転送
数検出手段114に供給されている。また、60は波形
生成部ステップS20により演算生成された楽音波形サ
ンプルが格納されるDMAバッファ(DMAB)であ
り、図示するように、例えばDMAB1とDMAB2の
2つのバッファから構成されている。各バッファDMA
B1およびDMAB2は、両方とも、1フレーム時間に
対応する数の楽音波形サンプルを格納することができる
容量を有しており、一方のDMAB(例えばDMAB
1)から波形サンプルが読み出されているときには、他
方のDMAB(例えばDMAB2)に波形生成部S20
において演算生成された波形サンプルが格納されるよう
に構成されている。なお、このDMABの数はこの例の
ように2個に限られることはなく、3個以上とすること
ができる。
【0045】46は仮想デバイスドライバとして配置さ
れているソフト音源サポートルーチンであり、前述した
ようにMIDI処理部(S10)と波形生成部(S2
0)とが含まれており、また、該波形生成部における波
形生成演算は、波形データメモリ(波形テーブル)70
に記憶されている波形データを用いて行われる。
【0046】前述したように、演奏処理を実行するアプ
リケーションプログラムからMIDIイベントが発生さ
れたとき、前述したようにしてソフトウエア割込が発生
して、仮想デバイスドライバであるソフト音源サポート
ルーチン46内のMIDI処理部(S10)が起動さ
れ、該MIDIイベントに対応した楽音制御パラメータ
が音源レジスタに格納される。一方、波形生成部(S2
0)はCODEC11からのハードウエア割込により起
動され、各発音チャンネルに対応する音源レジスタに格
納されている楽音制御パラメータに基づいて、複数の発
音チャンネル(例えば、最大32チャンネル)のそれぞ
れ1フレーム時間に対応する数の波形サンプルデータ
(例えば、64サンプル)をまとめて演算生成し、それ
らを累算して1フレーム時間分の楽音波形サンプルデー
タを出力バッファに生成する。この波形生成演算が終了
したときに、出力バッファに生成された波形サンプルデ
ータは、現在読み出しが行われていない方のDMAB6
0、図5に示した状態においては、DMAB2に転送さ
れる。
【0047】サウンド入出力回路(CODEC)11内
のFIFOバッファ111には、DMAB60から転送
された楽音波形データが格納されている。サンプリング
信号発生器12から周波数Fs(例えば、48kHz)
のサンプリング信号が発生される毎に、該FIFOバッ
ファ111に記憶されている楽音波形サンプルは1サン
プルずつ読み出され、DAC(デジタルアナログ変換
器)112に転送される。この転送された楽音波形サン
プルデータはDAC112においてアナログ電圧信号に
変換され、サウンドシステム14に送られて低域通過フ
ィルタを通過され、増幅器により増幅されてスピーカな
どから放音されることとなる。
【0048】また、前記サンプリング信号発生器12の
出力はデータ転送数検出手段114にも入力されてお
り、ここで前記FIFOバッファ111からDAC11
2に転送された波形サンプル数が計数される。そして、
該転送された波形サンプルデータの数が1フレーム時間
に相当する数であることが検出されたとき、該データ転
送数検出手段114からハードウエア割込がCPU1に
対して出力される。前述したように、この割込はRin
g0のカーネル部41において受け取られ、前記ソフト
音源サポートルーチン46内の波形生成部(S20)が
起動される。
【0049】また、前記FIFOバッファ111に接続
されている空き検出手段113によりFIFOバッファ
111内にデータを格納することができる空きが発生し
ていることが検出されたときは、該空き検出手段113
から、DMAC10にDMA要求信号DMAreqが発生され
る。
【0050】図6の(a)はDMAC10の動作を説明
するためのフローチャートである。前述したようにCO
DEC11内の空き検出手段113からDMAreqが出力さ
れたとき、DMAC10は、ステップS100に進み、
DMAB60のポインタレジスタ101の内容pが指す
アドレスに格納されている楽音波形サンプルデータを読
み出して、FIFOバッファ111に転送する。そし
て、ステップS110に進み、ポインタレジスタ101
の内容pをインクリメントして、このDMAreqに対応する
処理を終了する。このようにして、FIFOバッファ1
11に空きが生じる毎にDMAB60から楽音波形サン
プルデータがFIFOバッファ111に転送される。
【0051】図6の(b)に、前述したDMAB60の
一構成例を示す。この例においては、RAM3中のアド
レスbからアドレスb+n−1までのnワード分の領域
をDMAB60として使用している。そして、このDM
AB60の領域をn/2ワードずつに二分して、前記D
MAB1とDMAB2として使用している。例えば、図
の斜線で示した部分とそれ以外の部分とにDMAB領域
を2分して、DMAC10が図の斜線の部分(DMAB
1)から楽音波形データを読み出しているとき、アドレ
スaを先頭とするn/2ワード分の領域(DMAB2)
に生成された楽音波形データを格納するようにしてい
る。なお、該書込アドレスaあるいは読出アドレスpが
このDMAB60領域の最終アドレスb+n−1に達し
たときは、再び先頭アドレスbに戻るようになされてい
る。
【0052】前述したMIDI処理(S10)および波
形生成処理(S20)による処理のタイミングを図7の
(a)を参照して説明する。この図において横軸は時間
軸である。前述したように本発明においては波形生成演
算は1フレームを単位として実行されており、この図に
おいて、時刻taからtbまでの期間Ta、tb〜tc
の期間Tb、tc〜tdの期間Tcはいずれも1フレー
ム時間である。図の最上段に記載されているのは、シー
ケンスソフトなどのアプリケーションプログラムにより
発生されるMIDIイベントによるソフトウエア割込の
発生タイミングを示しており、期間Ta中の時刻t1お
よびt2、および、期間Tb中の時刻t3にMIDIイ
ベントによるソフトウエア割込が発生している例が示さ
れている。
【0053】図の次の段に記載されているのは、MID
I処理(S10)の実行されるタイミングであり、この
図に示すように、MIDIイベントによるソフトウエア
割込が発生される毎にこのMIDI処理が実行されてい
る。図の中段に示されている下向きの矢印は、前述した
CODEC11により発生されるハードウエア割込の発
生タイミングを示しており、図の最下段に記載されてい
るDMAC10により実行されるDMAB60からの波
形サンプルデータの読出再生周期(1フレーム)に同期
して時刻ta、tb、tc、tdに発生されている。こ
のハードウエア割込が発生すると図示するように波形生
成処理(S10)の実行が開始される。この各波形生成
処理において演算生成された楽音波形サンプルは該波形
生成演算の終了時に前述したDMABに転送される。ま
た、図において、波形生成演算開始直後の黒く塗ってあ
る部分は、ハードウエア割込直後における割込禁止期間
を表している。
【0054】なお、前記MIDIイベント発生によるソ
フトウエア割込と前記CODEC11からのハードウエ
ア割込とは、同じ優先順位の割込とされているので、一
方の割込に対応する処理(MIDI処理あるいは波形生
成処理)を実行中に次の割込が発生したときは、実行中
の処理を中断して、後に発生した割込に対応する処理が
実行されることとなる。例えば、この図において、時刻
taに発生したハードウエア割込に対応する波形生成処
理を実行している途中の時刻t1にソフトウエア割込が
発生して、当該MIDIイベントに対応するMIDI処
理が実行され、このMIDI処理が終了した後に、前記
波形生成処理の続きが実行される。また、時刻t3に発
生したソフトウエア割込に対応するMIDI処理を実行
中の時刻tcにCODEC11からのハードウエア割込
が発生して、該MIDI処理が中断されて当該波形生成
処理が実行され、この波形生成処理が終了した後に、再
び前記中断されていたMIDI処理が再開されている。
【0055】そして、期間Taに入力されたMIDIイ
ベントに対応する波形生成演算は期間Tbに実行され、
該波形生成された楽音波形サンプルは期間Tcに読出再
生される。このように、発生したMIDIイベントはほ
ぼ2フレーム時間遅れて放音されることとなる。したが
って、リアルタイム演奏をさせる場合には、DMABの
大きさを小さくして1フレーム時間の長さを短くするこ
とが望ましい。例えば、本実施例においては、1フレー
ム64サンプルとしている。また、自動演奏などを行わ
せるときには、後述するような楽音の途切れを防ぐため
に、DMABを大きくして1フレーム時間の長さを長く
することが望ましい。
【0056】上述したようにして1フレーム時間毎に対
応する波形生成演算が実行されるわけであるが、場合に
よってはそのフレーム時間内に波形生成演算が終了しな
いことがある。例えば、マルチメディアソフトなどのリ
アルタイム性を要求される処理を並行して実行している
場合には、そのためにCPUパワーが割かれてソフトウ
エア音源処理を実行するための時間が割り当てられない
ことがある。本発明においては、このような場合には演
算の終了しなかったフレーム時間については、波形の生
成をキャンセルしている。これにより、安定した状態で
次のフレーム時間に対応する波形生成を行うことが可能
となる。なお、一時的に楽音の発生が行われないことと
なるが、その時間は短い(例えば、サンプリング周波数
が48kHzで1フレーム64サンプルのときは、1フ
レーム時間は約1.3ミリ秒である。)ため、その影響
は小さいものである。
【0057】図7の(b)にこのように波形の生成をキ
ャンセルする場合の一例を示す。この例は、期間T4に
おいて入力されたMIDI演奏入力に対応する波形生成
演算が、前述したような理由により、期間T5からT7
の途中まで行われている場合を示している(図において
は、波形生成演算が連続して行なわれているかのように
記載されているが、実際には、他の処理に制御が奪われ
て、波形生成演算はとびとびに実行される)。したがっ
てこの例においては、期間T4に入力されたMIDIイ
ベントに対応する波形生成演算が行われている期間T5
からT7の波形データはキャンセルされ、対応する期間
T6〜T8の間のDMA出力は行われない。したがっ
て、期間T5およびT6に入力されたMIDIイベント
に対応する波形生成演算も実行されず、その次の期間T
7に入力されたMIDIイベントに対応する波形生成演
算からは通常通りに安定して波形生成されることとな
る。
【0058】次に、図8に本発明の変形例を示す。図8
の(a)は第1の変形例を示すもので、この例において
は、CODEC11から発生されるハードウエア割込
が、1フレームの再生が終了するタイミングよりもTi
時間だけ早く発生されるようにし、波形生成演算が開始
されたときに、まず、前回の波形生成演算で既に生成さ
れている波形サンプルデータをDMABに転送し、続い
て、次回の波形生成演算で転送すべき波形サンプルデー
タを生成するようにしたものである。波形生成演算はM
IDIイベントの数によりその演算所要時間が変動する
ために、このように早いタイミングでハードウエア割込
を発生させ、波形生成演算の開始時に前回の波形生成演
算により生成された波形サンプルをDMABに転送させ
ることにより、DMABへのデータ転送を安定して行う
ことができるようになる。なお、ハードウエア割込をT
i時間だけ早めることは、前述した転送数検出手段11
4において、転送された波形サンプルの数の計数値が図
7(a)の場合に比べてTi時間に相当する数だけ少な
い数のときに割込を発生させるようにすることにより行
うことができる。
【0059】図8の(b)は、他の変更例を示すもので
ある。この例においては、ソフトウエア割込の優先順位
をハードウエア割込よりも高い優先順位とした例であ
る。このようにソフトウエア割込の優先順位が高いため
に、図示するように、時刻t3において発生したソフト
ウエア割込に対応するMIDI処理を実行中の時刻tc
にCODEC11からハードウエア割込が発生しても、
該MIDI処理が終了してから対応する波形生成演算が
実行されることとなる。
【0060】なお、前述した実施の形態においては、C
ODEC11において転送数検出手段がデータ転送数を
計数してハードウエア割込を発生していたが、これに限
られることはなく、CPU1あるいはDMAC10がD
ACへのデータ転送数の検出を行うようにしてもよい。
【0061】また、前述した実施の形態においては、D
MAC10を設けてサウンド入出力回路(CODEC)
11中のFIFOバッファ111、ひいてはDAC11
2への波形サンプルデータの転送を行っていたが、これ
に限られることはなく、CODEC11が搭載されてい
るボードに接続されているバスが高速なもので、COD
EC11に対するデータ転送を高速に行なうことができ
る場合には、CPU1によりCODEC11へのデータ
転送を行うようにしてもよい。この場合には、CPUが
サンプリング周期毎に発生するハードウエア割込により
バッファに記憶された波形サンプルデータを1つずつD
ACに転送し、同時に転送し終えたサンプル数を計数す
る。そして、該計数結果が1フレーム分の転送の完了を
示したときに、波形生成演算を実行するためのソフトウ
エア割込を発生するように構成する。
【0062】さらにまた、前述した実施の形態において
はオペレーティングシステムとしてWindows95
を使用した場合を例にとって説明したが、これに限られ
ることはなく、WindowsNTあるいはMacO
S、UNIXなど他のOSの場合にも、本発明の楽音生
成方法を適用することは可能である。同様に、使用され
るCPUとしても、x86系のCPUに限らず、Pow
erPC(PowerPCはIBM社の商標)や他のR
ISCプロセッサなどを使用することができる。
【0063】さらにまた、楽音生成方法は上述した実施
の形態のような波形メモリ方式に限定されることはな
く、FM方式、物理モデル方式、ADPCM方式など、
どのような方式のものであってもよい。
【0064】
【発明の効果】本発明によれば、フレーム単位でまとめ
て楽音波形サンプルを演算生成しているので演算効率が
向上し、生成された楽音の質を向上することができると
ともに同時発音チャンネル数を増加することができるよ
うになる。また、仮想デバイスドライバはハードウエア
により近いレベルにあるため、割込の遅れが少なく、ま
た、32ビットコードで実行されるため、高速にMID
I処理および波形生成処理が実行され、波形生成演算を
安定して実行することが可能となり、さらに、複数のV
Mから共通に本発明のソフトウエア音源を利用すること
が可能となる。さらにまた、VM側からはハードウエア
音源を使用する場合と同じデバイスドライバを使用する
ことができ、ハードウエア音源とコンパチブルなソフト
ウエア音源を提供することができる。
【0065】さらにまた、DMABのサイズを任意に設
定することができるため、小さいサイズのバッファとす
ることができ、リアルタイム演奏の場合における発音の
遅れを小さくすることが可能となる。さらにまた、計算
が間に合わなかった時間フレームに関し、波形の生成を
キャンセルしているので、何らかの障害により動作が乱
された場合であっても、安定した動作状態に直ちに復帰
することができる。
【図面の簡単な説明】
【図1】 本発明の楽音生成装置の構成を示すブロック
である。
【図2】 本発明のソフトウエアモジュールの構成を示
す図である。
【図3】 本発明の楽音生成方法における処理を示す図
である。
【図4】 本発明における処理の流れを示す図である。
【図5】 生成された楽音波形データの流れを示す図で
ある。
【図6】 DMACにおける処理およびDMAバッファ
の構成例を示す図である。
【図7】 本発明における処理のタイミングを説明する
ための図である。
【図8】 本発明における処理の変形例を示すタイミン
グ図である。
【符号の説明】
1 CPU、2 ROM、3 RAM、4 タイマ、5
MIDI インターフェース、6 キーボード、7
ディスプレイ、8 ハードディスク装置、10DMA
C、11 サウンド入出力回路、12 サンプリング周
波数発生器、13 外部オーディオ入力端子、14 サ
ウンドシステム、15 フロッピィディスク装置、16
バス、60 DMAバッファ、101 ポインタレジ
スタ、111 FIFOバッファ、112 DAC、1
13 空検出手段、114 転送数検出手段

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 所定のオペレーティングシステムが動作
    する演算処理装置において実行される楽音生成方法であ
    って、次の(1)〜(3)のステップを含む楽音生成方
    法。 (1)アプリケーションプログラムから演奏情報が出力
    されたときに発生される第1の割込に応じて起動され、
    当該演奏情報に対応した発音制御情報を生成する第1の
    ステップ、 (2)バッファに記憶されている波形サンプル数の減少
    を検出したときに発生される第2の割込により起動さ
    れ、前記発音制御情報に基づいて複数の波形サンプルを
    一括生成し、該生成された波形サンプルをバッファに記
    憶する第2のステップ、 (3)前記バッファに記憶された波形サンプルを各サン
    プリング周期毎に1サンプルずつ読み出してデジタルア
    ナログ変換器に順次出力する第3のステップ、
  2. 【請求項2】 前記第1のステップおよび前記第2のス
    テップは、前記所定のオペレーティングシステムにおけ
    る仮想デバイスドライバとされていることを特徴とする
    前記請求項1記載の楽音生成方法。
  3. 【請求項3】 前記第2の割込は、前記デジタルアナロ
    グ変換器に送出された波形サンプル数が所定数に達した
    ことを検出したときに発生されるようになされているこ
    とを特徴とする前記請求項1記載の楽音生成方法。
  4. 【請求項4】 演算処理装置と、 所定のオペレーティングシステムおよびアプリケーショ
    ンプログラムが格納される記憶手段と、 演算生成された波形サンプルが記憶されるバッファメモ
    リと、 前記バッファメモリから前記波形サンプルを各サンプリ
    ング周期毎に1サンプルずつ読み出して順次出力する出
    力手段と、 前記アプリケーションプログラムから演奏情報が出力さ
    れたときに第1の割込を発生する第1の割込発生手段
    と、 前記バッファメモリに格納されている波形データが減少
    したことを検出したときに第2の割込を発生する第2の
    割込発生手段と、 前記第1の割込の発生に応じて動作し、前記アプリケー
    ションプログラムから出力された演奏情報に対応する発
    音制御情報を生成する発音制御情報発生手段と、 前記第2の割込の発生に応じて動作し、前記発音制御情
    報に基づいて複数の波形サンプルを一括生成して、該生
    成された複数の波形サンプルを前記バッファメモリに記
    憶する楽音波形生成手段とを有することを特徴とする楽
    音生成装置。
  5. 【請求項5】 前記発音制御情報発生手段と前記楽音波
    形生成手段は、前記所定のオペレーティングシステムに
    おける仮想デバイスドライバに含まれているであること
    を特徴とする前記請求項4記載の楽音生成装置。
JP7349046A 1995-12-21 1995-12-21 楽音生成方法および装置 Expired - Lifetime JP2904088B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP7349046A JP2904088B2 (ja) 1995-12-21 1995-12-21 楽音生成方法および装置
TW085100773A TW282538B (en) 1995-12-21 1996-01-23 Music sound forming method and device thereof
EP96120420A EP0780827B1 (en) 1995-12-21 1996-12-18 Method and device for generating a tone
DE69613950T DE69613950T2 (de) 1995-12-21 1996-12-18 Verfahren und Vorrichtung zur Tonerzeugung
US08/770,357 US5973251A (en) 1995-12-21 1996-12-20 Method and apparatus for generating a tone based on tone generating software
CNB961231416A CN1141695C (zh) 1995-12-21 1996-12-20 产生乐音的方法和装置
US09/388,987 US6040515A (en) 1995-12-21 1999-09-02 Method and device for generating a tone

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7349046A JP2904088B2 (ja) 1995-12-21 1995-12-21 楽音生成方法および装置

Publications (2)

Publication Number Publication Date
JPH09179556A JPH09179556A (ja) 1997-07-11
JP2904088B2 true JP2904088B2 (ja) 1999-06-14

Family

ID=18401130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7349046A Expired - Lifetime JP2904088B2 (ja) 1995-12-21 1995-12-21 楽音生成方法および装置

Country Status (6)

Country Link
US (2) US5973251A (ja)
EP (1) EP0780827B1 (ja)
JP (1) JP2904088B2 (ja)
CN (1) CN1141695C (ja)
DE (1) DE69613950T2 (ja)
TW (1) TW282538B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366971B1 (en) 1998-01-09 2002-04-02 Yamaha Corporation Audio system for playback of waveform sample data
JP3409686B2 (ja) * 1998-03-17 2003-05-26 ヤマハ株式会社 複数音源ドライバの制御方法、および、複数音源ドライバの制御用プログラムが記録された記録媒体、ならびに、複数生成プログラムの制御方法
US6463390B1 (en) * 1998-07-01 2002-10-08 Yamaha Corporation Setting method and device for waveform generator with a plurality of waveform generating modules
JP3975593B2 (ja) 1999-01-21 2007-09-12 株式会社ソニー・コンピュータエンタテインメント 再生音を発生する方法、再生音を発生する電子機器及びエンターテインメント・システム
AU760713B2 (en) * 1999-05-15 2003-05-22 Resource Consortium Limited Automatic broker tools and techniques
JP2001222281A (ja) 2000-02-09 2001-08-17 Yamaha Corp 携帯電話装置及び携帯電話装置の楽曲再生方法
JP3279304B2 (ja) * 2000-03-28 2002-04-30 ヤマハ株式会社 楽曲再生装置および楽曲再生機能を備える携帯電話装置
JP3781171B2 (ja) * 2000-06-22 2006-05-31 ヤマハ株式会社 楽音発生方法
US7274967B2 (en) * 2003-10-10 2007-09-25 Nokia Corporation Support of a wavetable based sound synthesis in a multiprocessor environment
US7437613B2 (en) * 2004-01-30 2008-10-14 Intel Corporation Protecting an operating system kernel from third party drivers
TWI252468B (en) * 2004-02-13 2006-04-01 Mediatek Inc Wavetable synthesis system with memory management according to data importance and method of the same
EP1580729B1 (en) * 2004-03-26 2008-02-13 Yamaha Corporation Sound waveform synthesizer
US7663051B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Audio processing hardware elements
US7678986B2 (en) * 2007-03-22 2010-03-16 Qualcomm Incorporated Musical instrument digital interface hardware instructions
JP5200554B2 (ja) * 2008-01-21 2013-06-05 ヤマハ株式会社 電子音楽装置及び音楽コンテンツ処理プログラム
US8781613B1 (en) * 2013-06-26 2014-07-15 Applifier Oy Audio apparatus for portable devices
CN107402596B (zh) * 2017-08-08 2020-03-24 电子科技大学 一种基于指令架构的任意波形发生器
CN107422780B (zh) * 2017-08-08 2020-01-17 电子科技大学 一种基于指令架构的任意波形发生器
CN107436618B (zh) * 2017-08-08 2019-12-27 电子科技大学 一种基于指令架构的任意波形发生器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0278438B1 (en) * 1987-02-06 1995-11-02 Yamaha Corporation Multi-recording apparatus of an electronic musical instrument
US5020410A (en) * 1988-11-24 1991-06-04 Casio Computer Co., Ltd. Sound generation package and an electronic musical instrument connectable thereto
US5121667A (en) * 1989-11-06 1992-06-16 Emery Christopher L Electronic musical instrument with multiple voices responsive to mutually exclusive ram memory segments
US5054360A (en) * 1990-11-01 1991-10-08 International Business Machines Corporation Method and apparatus for simultaneous output of digital audio and midi synthesized music
JP2743726B2 (ja) * 1992-07-07 1998-04-22 ヤマハ株式会社 電子楽器
US5345035A (en) * 1992-07-10 1994-09-06 Yamaha Corporation Musical tone generating apparatus
JPH07146679A (ja) * 1992-11-13 1995-06-06 Internatl Business Mach Corp <Ibm> 音声データを変換する方法及びシステム
US5717154A (en) * 1996-03-25 1998-02-10 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory employing a high priority I/O bus request mechanism for improved audio fidelity
US5763801A (en) * 1996-03-25 1998-06-09 Advanced Micro Devices, Inc. Computer system and method for performing wavetable music synthesis which stores wavetable data in system memory

Also Published As

Publication number Publication date
TW282538B (en) 1996-08-01
EP0780827A1 (en) 1997-06-25
CN1159637A (zh) 1997-09-17
CN1141695C (zh) 2004-03-10
DE69613950T2 (de) 2002-04-04
US5973251A (en) 1999-10-26
US6040515A (en) 2000-03-21
DE69613950D1 (de) 2001-08-23
JPH09179556A (ja) 1997-07-11
EP0780827B1 (en) 2001-07-18

Similar Documents

Publication Publication Date Title
JP2904088B2 (ja) 楽音生成方法および装置
US5703310A (en) Automatic performance data processing system with judging CPU operation-capacity
US5808221A (en) Software-based and hardware-based hybrid synthesizer
USRE37367E1 (en) Computerized music system having software and hardware sound sources
US5895877A (en) Tone generating method and device
US6711526B2 (en) Operating system-independent method and system of determining CPU utilization
US5913258A (en) Music tone generating method by waveform synthesis with advance parameter computation
JP3293474B2 (ja) 楽音発生方法
JP3672159B2 (ja) 音源システム
JP2924745B2 (ja) 楽音発生装置及び方法
JPH0922287A (ja) 楽音波形生成方法
JP2970526B2 (ja) コンピュータソフトウェアを用いた音源システム
KR100302626B1 (ko) 악음생성장치 및 방법
JP3152198B2 (ja) 楽音発生方法および楽音発生装置
US5945619A (en) Asynchronous computation of tone parameter with subsequent synchronous synthesis of tone waveform
JP3572847B2 (ja) コンピュータソフトウェアを用いた音源システム及び方法
JP3122661B2 (ja) 電子楽器
JPH11167517A (ja) 信号処理装置
JP3693046B2 (ja) 楽音発生装置
JP3134811B2 (ja) データ処理装置
US6826435B1 (en) Tone data processing device and method
JP4001053B2 (ja) 楽音情報処理システム、データ転送装置、メイン装置及びプログラム
JP2005234597A (ja) 音源装置
JPH09152869A (ja) 楽音発生方法および装置
JPH11288284A (ja) 楽音発生装置及び方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990223

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

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090326

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100326

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110326

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110326

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120326

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 15

EXPY Cancellation because of completion of term