JPH11126070A - 楽音生成方法 - Google Patents

楽音生成方法

Info

Publication number
JPH11126070A
JPH11126070A JP9305023A JP30502397A JPH11126070A JP H11126070 A JPH11126070 A JP H11126070A JP 9305023 A JP9305023 A JP 9305023A JP 30502397 A JP30502397 A JP 30502397A JP H11126070 A JPH11126070 A JP H11126070A
Authority
JP
Japan
Prior art keywords
sound source
tone
waveform
processing
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.)
Granted
Application number
JP9305023A
Other languages
English (en)
Other versions
JP3637578B2 (ja
Inventor
Genichi Tamura
元一 田邑
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 JP30502397A priority Critical patent/JP3637578B2/ja
Priority to US09/174,942 priority patent/US5942707A/en
Publication of JPH11126070A publication Critical patent/JPH11126070A/ja
Application granted granted Critical
Publication of JP3637578B2 publication Critical patent/JP3637578B2/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
    • 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/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/04Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
    • G10H1/053Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
    • G10H1/057Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by envelope-forming circuits
    • G10H1/0575Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only by envelope-forming circuits using a data store from which the envelope is synthesized
    • 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/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • G10H1/187Channel-assigning means for polyphonic instruments using multiplexed channel processors
    • 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
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/046File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
    • G10H2240/056MIDI or other note-oriented file format

Abstract

(57)【要約】 【課題】MIDI入力が集中しても波形生成処理におけ
る発音数に影響を与えないようにする。 【解決手段】集中して入力されたMIDI入力M1〜M
3に対応するエンベロープ波形生成処理および音源ドラ
イバ処理は、処理a〜処理gの7回の処理に分散して行
われ、生成されたエンベロープ波形データはEバッファ
メモリに、発生された音源パラメータはPバッファに格
納される。そして、発音タイミングとなったときに、P
バッファ内の音源パラメータに基づいて波形生成処理B
として楽音波形が生成され、生成されているエンベロー
プ波形データにより音量制御等が行われる。エンベロー
プ波形生成処理および音源ドライバ処理は分散・先行し
て行われるため、その処理量Jd1〜JD4は急激に増
加することがなく、波形生成処理の負荷が軽減されると
共に、波形生成処理に十分な処理量を割り当てることが
できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サに楽音生成処理プログラムを実行させることにより音
源波形を生成する場合に好適な楽音波形生成方法に関す
るものである。
【0002】
【従来の技術】従来の楽音生成装置は、通常、楽譜通り
のタイミングでMIDI(Musical Instrument Digital
Interface)イベントを送出するプレーヤ(自動演奏プ
ログラム)、MIDIイベントが入力される毎に入力さ
れたMIDIイベントに応じた音源パラメータを発生す
る音源ドライバ、発生された音源パラメータに基づいて
エンベロープ波形および楽音波形を生成する音源から構
成されている。なお音源ドライバは、入力されたMID
Iイベントに応じて、チャンネルアサイン、音源パラメ
ータ変換等の音源ドライバ処理を実行し、当該イベント
に割り当てられたチャンネルに、変換した音源パラメー
タと発音開始指示(ノートオン)を供給する。音源は、
専用のLSI(Large Scale Integrated circuit)やD
SP(Digital Signal Processor)等のハードウェアで
構成(ハードウェア音源)されたり、楽音生成処理手順
を記述したプログラムをCPUに実行させるソフトウェ
ア音源により構成されている。
【0003】このように楽音生成装置は、プレーヤ、音
源ドライバ、音源により構成されているが、これらの処
理負荷は一定ではなく大きく変動しているのが一般的で
ある。たとえば、MIDIイベントが多いときにはプレ
ーヤおよび音源ドライバで処理すべき負荷が大きくな
る。特に、音源ドライバでは、ノートオンイベントが多
いときに処理負荷が大きくなる。これは、ノートオンイ
ベント時では、空きチャンネルをサーチして、ノートオ
ンされた楽音を発生するチャンネルの発音割当処理が行
われるが、この際に行われるサーチ処理およびトランケ
ート処理は時間のかかる負荷の大きい処理であるからで
ある。さらに、ノートオンイベント時には、キータッチ
に応じた音色設定処理等も行われる。このように、ノー
トオンイベントが多いときには音源ドライバ処理の負荷
が大きくなる。また、音源がソフトウェア音源で構成さ
れている場合には、同時発音数が多いときに音源におけ
るエンベロープ波形生成処理および波形生成処理の負荷
が大きくなる。
【0004】ここで、プレーヤ、音源ドライバ、および
音源における処理のタイミングチャートを例示して具体
的に説明する。図9は楽音生成装置の各処理タイミング
を示すタイミングチャートの例であり、MIDI入力と
記されているM1〜M4はMIDIイベントであり下向
きの矢印で示すタイミングで入力されている。このMI
DIイベントは、たとえば、プレーヤがMIDIファイ
ル等を読み出して楽譜通りのタイミングで送出したMI
DIイベントである。このMIDIイベントM1〜M4
が受信される毎にMIDI処理を起動する優先度の高い
割り込みが発生し、起動されたMIDI処理においてM
IDIイベントM1〜M4は、受信された時刻と共に入
力バッファに格納される。
【0005】音源ドライバと記されている処理a,b
は、入力バッファに格納されたMIDIイベントを音源
ドライバが受け取り、該MIDIイベントに応じてチャ
ンネルアサイン、音源パラメータの発生等を行う。ここ
で発生された音源パラメータは音源パラメータバッファ
に格納される。また、波形生成と記されている処理A,
B,・・・,Eは、時刻t1,t2,・・・,t5,・
・の一定周期で起動されて音源で実行されるエンベロー
プ波形生成処理および波形生成処理の実行されるタイミ
ングであり、音源パラメータバッファから読み出された
音源パラメータに基づいて楽音波形サンプルを生成して
いる。ここで、エンベロープ波形を音源において生成し
ているのは、エンベロープの各ステート毎の値は、MI
DIデータと同様に抽象度の高い情報であるため、これ
をパラメータの連続量に変換しながら波形計算を行って
いるからである。
【0006】なお、一定周期の単位を1フレームとして
いる。この波形生成処理では、たとえば、時刻t1から
時刻t2のフレームにおいて発生された音源パラメータ
による音源制御が、次のフレームである時刻t2から時
刻t3のフレームにおいて実行され、該次のフレームで
は、まず、該音源制御に応じたエンベロープ波形が生成
され、さらに、そのエンベロープ波形により音量やピッ
チの制御されかつ該音源制御に応じた楽音波形サンプル
が、1フレーム周期に対応するサンプル数分生成され
る。生成された各発音チャンネルの楽音波形サンプルは
累算され、その結果得られた1フレーム分の楽音波形サ
ンプルが、DAC(デジタル・アナログコンバータ)等
で構成される再生デバイスに再生予約される。
【0007】さらに、波形再生と記されているのは、再
生デバイスが出力バッファからサンプリング周期毎に楽
音波形サンプルを1サンプルづつ読み出して再生するタ
イミングを示している。たとえば、時刻t2から時刻t
3のフレームにおいて波形生成された楽音波形サンプル
は、次のフレームである時刻t3から時刻t4のフレー
ムにおいて再生される。従って、MIDIイベントが入
力されてから実際に発音されるまでの発音遅れ時間Δt
は最短で2フレーム後となり、次のフレームで再生する
エンベロープ波形および楽音波形を、現時点のフレーム
の期間内に生成し終えるようにしなければならない。な
お、1フレームは数msecの周期とされている。
【0008】
【発明が解決しようとする課題】ところで、一般に音源
ドライバはCPUに音源ドライバプログラムを実行させ
ることにより実現されており、音源ドライバ処理は、基
本的にノートオンイベント,ノートオフイベント,プロ
グラムチェンジ等のイベント発生時に起動される。この
ため、図9にイベントM1〜M3として示すようにイベ
ントが同時刻に集中して入力されると、音源ドライバ処
理が急激に増加する。従って、イベントの集中時には、
音源ドライバ処理を実行するCPUに大きな負担がかか
り、同時にCPUが実行している自動演奏プログラム、
ゲームプログラム、あるいは、画像処理等の実行を行え
なくなるおそれが生じる。特に、音源がソフトウェア音
源で構成されており、ソフトウェア音源で演算すべき発
音数が多いときには、生成する楽音波形サンプル数が増
加するためソフトウェア音源の負荷が多いことは当然で
あるが、発音数が多いことからイベントの発生も多く、
音源ドライバおよびプレーヤで処理すべき負荷が大きく
なることになる。従って、ソフトウェア音源において演
算すべき発音数が多い時には、他の楽音生成のための処
理も増加し演算可能な発音数が低下してしまうおそれが
あった。
【0009】たとえば、ソフトウェア音源において通常
32音発音可能な場合でも、ノートオンイベントが集中
して発生した際には、音源ドライバで実行されるノート
オンイベント処理のためにCPUの演算能力の大部分が
費やされるようになり(図9MIDI入力および音源ド
ライバの処理タイミング参照)、ソフトウェア音源に割
り当てられるCPUの演算能力が減少し、32音の楽音
波形およびエンベロープ波形をソフトウェア音源で生成
することができなくなる。
【0010】これを解決するために、CPUに余裕のあ
るときに音源ドライバの生成した音源パラメータに基づ
いて、発音タイミングより事前に楽音波形を音源におい
て先行生成しておき、生成した音源波形を波形バッファ
に記憶しておくようにすることが考えられる。そして、
発音タイミング時に波形バッファから音源波形を読み出
して発音するようにする方法が提案されている。しかし
ながらこの方法では、先行生成した音源波形を記憶する
ために大容量の波形バッファが必要になる。また、曲デ
ータの演奏途中において音量制御、パン制御、効果制御
等の操作が行われた際には、すでに先行生成された楽音
波形の各パートの楽音波形が合成されていることから、
楽音波形を修正するのが困難となる。修正するには、た
とえば16パートの各パート別に独立して波形バッファ
に記憶させなければならず、さらに多くの波形バッファ
が必要となる。
【0011】また、音源ドライバ処理においては発音チ
ャンネル割当処理が行われるが、通常、発音チャンネル
割当を行うには、各チャンネルのエンベロープのレベル
状態を検出してエンベロープレベルが小さい発音の進行
したチャンネルをトランケート処理するようにしてい
る。しかしながら、エンベロープ波形は音源処理におい
て生成されるため、音源ドライバ処理時には生成されて
おらず、エンベロープ波形の状態を利用して発音チャン
ネル割当処理を行うことができないという問題点があっ
た。そこで、本発明はノートオンイベントのようなCP
U負荷が急激に増加するイベントが集中して発生して
も、演算可能な発音数が低下することがないと共に、各
パート別に音量制御可能であって、エンベロープ波形の
状態を検出して発音チャンネル割当を行うことのできる
楽音生成方法を提供することを目的としている。
【0012】
【課題を解決するための手段】前記目的を解決するため
に、本発明の楽音生成方法は、複数の楽音データを対応
するタイミングデータと共に第1記憶手段に記憶する第
1のステップと、前記第1記憶手段に記憶された楽音デ
ータを読み出して、該楽音データに対応する楽音波形を
生成するための音源パラメータを生成し、該音源パラメ
ータを対応するタイミングデータと共に第2記憶手段に
記憶する第2のステップと、前記第2記憶手段に記憶さ
れた前記音源パラメータと対応するタイミングデータに
基づいてエンベロープ波形を生成し、生成された前記エ
ンベロープ波形を第3記憶手段に記憶する第3のステッ
プと、前記第2記憶手段に記憶された前記音源パラメー
タと対応するタイミングデータと、前記第3の記憶手段
に記憶された前記エンベロープ波形に基づいて前記楽音
波形を生成し、生成された前記楽音波形を第4記憶手段
に記憶する第4のステップと、前記第4記憶手段に記憶
されている楽音波形を順次再生する第5のステップと、
前記第5のステップにおける再生の進行に応じて第1の
タイミングを発生し、該第1のタイミングで前記第4の
ステップを起動する第6のステップと、前記タイミング
データの示すタイミングとは独立した所定の周期で第2
のタイミングを発生し、該第2のタイミングで前記第2
のステップないし第3のステップを起動する第7のステ
ップとを備えている。このような楽音生成方法によれ
ば、楽音データの演奏されるタイミングとは独立したタ
イミングで楽音データに応じた音源パラメータに基づい
たエンベロープ波形の形成が行われるので、演奏データ
のタイミングが密であってもそのために音源パラメータ
の生成処理やエンベロープ波形の形成のためにプロセッ
サの能力が消費され、波形生成の処理が厳しくなること
がない。
【0013】また、前記楽音生成方法における前記楽音
生成方法は、複数発音チャンネル分の楽音波形を生成す
る楽音生成方法であり、前記第3のステップは、複数チ
ャンネル分の前記エンベロープ波形を生成し、前記第2
のステップは、該複数チャンネル分の前記エンベロープ
波形に基づいて発音チャンネル割り当てを行うと共に、
割り当てた発音チャンネルの楽音パラメータを生成する
ようにしてもよい。このような楽音生成方法によれば、
複数発音チャンネルの楽音を生成する場合に、かく発音
チャンネルの音量データに基づいて発音チャンネル割り
当てを行いつつ、音源パラメータの生成処理を分散的に
行うことができる。
【0014】さらに、前記楽音生成方法において、前記
第4のステップが起動されたときに、前記第1記憶手段
に記憶された前記楽音データのうち、前記楽音波形の生
成範囲に含まれるタイミングデータに対応した楽音デー
タの音源パラメータがおよび同生成範囲のエンベロープ
波形が生成済みであるか否かを判定し、生成済みでない
場合には未生成の音源パラメータおよびエンベロープ波
形を発生してから楽音波形を生成するようにしてもよ
い。このような楽音生成方法によれば、分散処理による
音源パラメータの生成ないしエンベロープ波形の生成が
完了しないまま楽音生成のタイミングになった場合で
も、その完了していない処理を先に終えてから楽音生成
を行うので、生成する楽音に悪影響を与えないようにな
る。また、その場合にも一部の音源パラメータは分散的
に処理されるようになる。
【0015】上記の本発明によれば、受け取った楽音デ
ータをバッファに記憶しておき、音源ドライバがバッフ
ァに記憶された楽音データを非同期で分散処理すること
により音源パラメータを発生すると共に、楽音データに
応じたエンベロープ波形を先行して生成するようにして
いる。従って、イベントが集中して発生しても、音源ド
ライバの処理は分散して実行されるため、CPU負荷が
急激に増加することがなく、さらに、エンベロープ波形
の生成処理が発音タイミングより先行して実行されてい
ることから、音源処理の負荷を軽くすることができる。
したがって、一時的な処理の集中による発音数の減少を
防止することができる。
【0016】また、エンベロープ波形を先行して生成し
ているため、音源ドライバ処理において、生成されたエ
ンベロープ波形のレベル状態を検出することが可能とな
り、各チャンネルのエンベロープ波形のレベルをみる発
音チャンネル割当処理を行うことができるようになる。
さらにまた、音源ドライバ処理およびエンベロープ波形
生成処理までを先行して実行し、波形生成は発音タイミ
ングになったときに実行するようにしているので、生成
される楽音に対し、パート別の音量制御やパン制御等の
処理をリアルタイムで行うことができる。
【0017】
【発明の実施の形態】本発明の楽音生成方法を実行する
ことのできる処理装置の構成例を図1に示す。ただし、
図1に示す処理装置は、パソコン、ワークステーション
等の汎用の処理装置と同等であり、それらの上で本発明
の楽音発生方法を実施することができる。この図におい
て、1はアプリケーションプログラム等を実行してファ
イルから読み出した演奏データに基づいて自動演奏を行
うための各種演算処理を行うマイクロプロセッサ(CP
U)、2はCPU1の動作プログラムやプリセット音色
データ等が記憶されているリードオンリメモリ(RO
M)、3はCPU1のワークメモリエリアや入力バッフ
ァエリア(Mバッファ)、音源パラメータエリア(Pバ
ッファ)、パート設定データエリア、音源レジスタエリ
ア、出力バッファエリア等の記憶エリアを有するランダ
ムアクセスメモリ(RAM)、4は時刻を指示すると共
に、タイマ割り込み処理のタイミングをCPU1に指示
するタイマ、5はMIDIイベントが入力されると共
に、生成されたMIDIイベントを出力するMIDIイ
ンターフェースである。
【0018】6は楽音波形サンプルを生成するために使
用する楽音波形データ等やオペレーションシステム(O
S)、本発明の楽音生成方法にかかるプログラムや各種
アプリケーションプログラム等が格納されるハードディ
スクであり、CPU1による実行時に楽音生成方法にか
かるプログラムはRAM3にロードされる。7は楽音波
形サンプルを生成するために使用する楽音波形データ等
やOS、各種アプリケーションプログラム等が格納され
る光ディスクやハードディスク等の差し替え可能な記憶
媒体がセットされるリムーバブルディスク、8はユーザ
が楽音生成装置と対話するためのディスプレイ(モニ
タ)、9は英字、かな、数字、記号などのキーを備える
いわゆるパソコン用のキーボードおよびポインティング
デバイスの一種であるマウス、10はDSP等が搭載さ
れたサウンドボード等のハードウェア音源であり、ソフ
トウェア音源を有している場合は、必ずしも必要なもの
ではない。11はデータのやりとりを行うCPUバスで
ある。なお、プログラムは、図示しないネットワークイ
ンターフェースを介して、外部のネットワークからダウ
ンロードすることもできる。
【0019】前記したようにRAM3は種々のデータが
記憶されるエリアを有しているが、そのエリアの内容の
例を図2(a)に、そのうちのPバッファエリアの内容
の例を図2(b)に、そのうちのMバッファの内容の例
を図2(c)に示す。図2(a)に示すようにRAM3
には、Mバッファ、Pバッファ、パート設定データ、音
源レジスタ、Eメモリバッファ、音源ワークエリアの各
エリアが設定されている。ただし、出力バッファのエリ
アは示されていないが、必ずしもRAM3に設定される
必要はなく、ハードディスク6やリムーバブルディスク
7に出力バッファのエリアを設定するようにしてもよ
い。
【0020】Mバッファには、ハードディスク6やリム
ーバブルディスク7に格納されているMIDIファイル
から読み出されたMIDIのフォームの曲データや、M
IDIインターフェース5を介して入力されるノートオ
ン、ノートオフやプログラムチェンジ等の各種MIDI
イベントが、その受信時刻と共に書き込まれる。受信時
刻はタイマ4の値を用いることができる。イベントが書
き込まれたMバッファの状態を図2(c)に示している
が、デュレーションと受信されたMIDIイベントが組
として書き込まれている。このデュレーションはその直
前に受信されたMIDIイベントの受信時刻と、今回受
信されたMIDIイベントの受信時刻との時間間隔を示
している。なお、この図に示す例では、データ数を示す
位置にデータ数が「2」と示されており、デュレーショ
ンとイベントとの組が2組分Mバッファに格納されてい
ることが示されている。
【0021】また、Mバッファはリングバッファとして
使用されており、その読出ポインタのアドレスと書込ポ
インタのアドレスとがMバッファ内の所定位置に格納さ
れている。これにより、音源ドライバがMバッファの読
出ポインタの位置から、音源ドライバ処理が未完のイベ
ントデータを読み出して、音源ドライバ処理を実行でき
るようになる。すなわち、Mバッファの読出ポインタア
ドレスを読み出して、Mバッファの当該アドレス位置か
らデュレーションとイベントの組のデータを読み出し
て、そのイベントデータに応じた音源パラメータを発生
する音源ドライバ処理を実行することができる。さら
に、受信したMIDIイベントをMバッファに書き込む
MIDI入力処理時には、Mバッファの書込ポインタア
ドレスを読み出して、Mバッファの当該アドレス位置か
らデュレーションとイベントの組のデータを書き込むよ
うにすればよい。
【0022】Pバッファには、音源ドライバ処理により
発生された音源パラメータがデュレーションデータと組
とされて格納されている。このPバッファの状態を図2
(b)に示しているが、このデュレーションの値はMバ
ッファに格納されていた時に音源ドライバ処理が行われ
たイベントと組とされていたデュレーションと同じ値で
ある。なお、この図に示す例では、データ数を示す位置
にデータ数が「3」と示されており、デュレーションと
イベントとの組が3組分Pバッファに格納されているこ
とが示されている。また、Pバッファもリングバッファ
として使用されており、その読出ポインタのアドレスと
書込ポインタのアドレスとがPバッファ内の所定位置に
格納されている。これにより、発音タイミングとなった
か否かを読出ポインタ位置のデュレーションをみて判定
し、発音タイミングとなったときに、当該音源パラメー
タを音源レジスタに送ることができ、音源ドライバ処理
で発生された音源パラメータのPバッファへの格納は、
書込ポインタ位置から書き込むことにより行えるように
なる。
【0023】また、パート設定データエリアには、パー
ト別の音色選択データ、音量データ、定位位置(パン)
データ等が格納されている。発音開始時には、該音色選
択データで指定された音色データ(図示せず)に基づい
て楽音生成に使用する波形データ(図示せず)のアドレ
スパラメータや音量エンベロープの各種EGパラメータ
等が生成されると共に、該音量データや該定位位置デー
タに基づいて音量パラメータが生成される。これらのパ
ラメータは、これから発音を開始するチャンネルに対応
した音源レジスタエリアの記憶領域に格納される。さら
にまた、音源ワークエリアには、CPU1が楽音波形生
成処理を実行する際に、発音チャンネルの波形生成演算
に用いる各種レジスタ値等が格納される。
【0024】次に、本発明の楽音生成方法を図3に示す
タイミングチャートに基づいて、図1に示す構成の処理
装置が実行する場合の説明を行う。なお、図3(a)は
MIDI入力処理、エンベロープ波形生成処理と音源ド
ライバ処理、波形生成処理、波形再生処理のタイミング
を示しており、図3(b)はMIDI入力に応じた従来
と本発明における音源ドライバ処理量、および、波形生
成処理量の変化を示している。まず、図3(a)のMI
DI入力に示すように時刻t1から時刻t2までのフレ
ームの期間内において、集中したMIDIイベントM
1,M2,M3が連続して受信されたとする。このMI
DIイベントM1,M2,M3は、順次受信時刻に応じ
たデュレーションと組とされてMバッファに書き込まれ
る。
【0025】そして、図3(a)に示すように時刻t2
から始まる次のフレーム以降の期間において、音源ドラ
イバ処理a〜gにおいてMバッファからデュレーション
とMIDIイベントの組からなるデータが読み出されて
イベントに応じた音源ドライバ処理、およびエンベロー
プ波形生成処理が分散して実行される。図示する例で
は、MIDIイベントM1,M2,M3に対応した音源
ドライバ処理、およびエンベロープ波形生成処理は、処
理aないし処理gの7回に分散されて実行される。この
際、エンベロープ波形生成処理が優先して実行され、生
成されたエンベロープ波形データはEメモリバッファに
格納されるようになる。そして、所定時間分のエンベロ
ープ波形が生成されてから、音源ドライバ処理が行われ
る。
【0026】また音源ドライバ処理では、イベントがノ
ートオンイベントの際に発音チャンネル割当処理が行わ
れるが、この発音チャンネル割当処理ではEメモリバッ
ファに格納されている各チャンネルのエンベロープ波形
のレベルを比較して消音すべきチャンネルを決定するこ
とによりトランケート処理を行う。さらに、音源ドライ
バ処理では、イベントに応じた音源パラメータが発生さ
れてデュレーションデータと共にPバッファに書き込ま
れるようになる。そして、波形生成処理で生成する楽音
波形サンプルの時刻がPバッファに格納された音源パラ
メータと組とされているデュレーションの時刻に達した
ときに、Pバッファから音源レジスタに当該音源パラメ
ータが送られ、その音源パラメータに基づいて音源にお
いて楽音波形生成処理が実行される。図示する例では、
時刻tn−1から始まるフレームの期間内において、実
行される楽音波形生成処理Bにおいて、MIDIイベン
トM1,M2,M3に応じて生成されPバッファに記憶
されている音源パラメータが、それぞれ対応するデュレ
ーションで指定される時刻位置で音源レジスタに導入さ
れ、そのタイミングで変化する音源レジスタの内容およ
びEメモリバッファに格納されたエンベロープ波形デー
タに応じて楽音波形サンプルが生成される。各波形生成
処理A、B・・・の終わりには、生成した1フレーム分
の複数楽音波形サンプルを収納した出力バッファが再生
デバイスに再生予約される。
【0027】そして、時刻tnから始まる次のフレーム
において、サンプリング周期毎に1サンプルづつ出力バ
ッファから読み出され、DACでアナログの楽音波形と
されて発音される波形再生処理が行われるようになる。
従って、この際の制御遅れ時間Δtは時刻t1と時刻t
nとの時間間隔となる。たとえば、制御遅れ時間Δtは
1sec程度とすることができる。なお、1フレームは
数msecの周期とされている。また、時刻t3から時
刻t4までのフレームの期間中において、MIDIイベ
ントM4が入力されているが、この場合も同様にMID
IイベントM4は受信時刻に応じたデュレーションと組
とされてMバッファに書き込まれる。
【0028】そして、図3(a)の音源ドライバの処理
として示すように時刻t4から始まる次のフレーム以降
の期間において、MバッファからデュレーションとMI
DIイベントの組からなるデータが読み出されて、エン
ベロープ波形データが生成されると共に、発音チャンネ
ル割当処理や音源パラメータ発生処理等のイベントに応
じた音源ドライバ処理が分散して実行される。図示する
例では、MIDIイベントM4に対応したエンベロープ
波形生成処理および音源ドライバ処理は、処理h,iの
2回に分散されて実行されて、処理が実行される毎に生
成されたエンベロープ波形データはEメモリバッファ
に、発生された音源パラメータはPバッファに書き込ま
れるようになる。そして、波形生成処理で生成する楽音
波形サンプルの時刻がPバッファに格納された音源パラ
メータと組とされているデュレーションの時刻に達した
ときに、Pバッファから音源レジスタに当該音源パラメ
ータが送られ、音源パラメータに基づいて楽音波形生成
処理が音源で実行される。この結果、生成処理Cでは、
時刻tn+1から始まるフレームの途中で、MIDIイ
ベントM4に対応して変化をする楽音波形サンプルが生
成され、再生デバイスに再生予約される。
【0029】ところで、従来の楽音生成方法ではMID
Iイベントが入力されると、リアルタイムで音源ドライ
バ処理が実行されるため、MIDIイベントが集中して
入力された際に音源ドライバ処理の負荷が急激に増加す
るようになる。この様子を図3(b)に示すが、MID
IイベントM1,M2,M3が集中して入力されたとき
の音源ドライバ処理量は、急激に負荷が増加することが
破線で示されている音源ドライバ処理量Jd’1とな
る。また、MIDIイベントM4が入力されたときの音
源ドライバ処理量は、瞬間的に負荷が増加することが破
線で示されている音源ドライバ処理量Jd’2となる。
【0030】このように、従来では音源ドライバの処理
量が急激に増大するために、音源に割り当てられる処理
量が減少し発音数に影響を与えるが、本発明の楽音生成
方法では、音源ドライバ処理は分散して実行されるた
め、その音源ドライバ処理量は、図3(b)に示すよう
に少量づつ分散された処理量Jd1から処理量Jd6と
なる。さらに、処理量Jd1から処理量Jd6には、従
来、音源において処理されていたエンベロープ波形処理
の処理量が含まれており、エンベロープ波形生成処理が
音源ドライバ処理と同様に分散されて音源処理に先行し
て実行されるため、音源処理の負荷が軽減されて発音数
が減少するおそれを極力防止することができるようにな
る。
【0031】このように本発明の楽音生成方法におい
て、MIDIイベントM1,M2,M3が集中して入力
されたときは、図3(b)に示す処理量Jd1から処理
量Jd4の少量づつ分散されたエンベロープ波形生成処
理量を含む音源ドライバ処理量となり、音源ドライバ処
理量が急激に増加しないことからイベントが集中して入
力されても、音源処理には十分な処理量が割り当てられ
ると共に、先行して実行されるエンベロープ波形生成処
理の分音源処理が軽減されるので、発音数に影響を与え
ないことが理解される。また、MIDIイベントM4が
入力されたときは、図3(b)に示すように少量づつ分
散されたエンベロープ波形処理および音源ドライバ処理
の処理量Jd5、Jd6となり、この処理量Jd5、J
d6は急激に増加せず発音数に影響を与えない。なお、
音源で実行される波形生成の処理量Jwは、発音数に応
じて変動するが、音の持続性から急激に変動することは
なく、その処理量は大きいが図3(b)に示すように緩
やかに変動するようになる。
【0032】次に、本発明の楽音生成方法が自動演奏の
アプリケーションソフト(音楽ソフト)として、図1に
示す処理装置で実行される場合のフローチャートを図4
に示す。音楽ソフト処理が起動されると、まず、ステッ
プS1において各種レジスタのクリアや、表示器8に表
示する画面の準備処理などの初期設定が行われる。つい
で、ステップS2において起動要因が存在するか否かの
チェックが行われる。起動要因としては、(1)再生中
の曲データのイベントタイミングとなったこと、(2)
MIDIイベントが入力されたタイミングであること、
(3)CPU1の能力に余裕ができたこと(空き時間)
が検出された、あるいは、一定期間、例えば1フレーム
分の時間の経過がソフトウェアタイマにより検出された
こと、(4)1フレームが終了したタイミングであるこ
と、(5)曲データの再生ボタンのダブルクリック、パ
ート音量制御操作のされたタイミングであること、
(6)終了ボタンがダブルクリックされたタイミングで
あることの6通りの要因が存在している。なお、起動要
因(3)において、「空き時間の検出」の方法を採用す
れば、CPU1の負荷が重くないときに音源ドライバ処
理を分散して実行することができる。また、「一定期間
の経過検出」の方法を採用すれば、音源ドライバ処理を
一定期間を単位として分散することができる。該一定期
間の長さをパラメータで変化すれば、処理の分散の程度
を制御することができる。
【0033】そこで、ステップS2において前記6通り
のうちの1つでも起動要因があるか否かがステップS3
で判定され、起動要因が発生していることが検出された
ときにはステップS4に進み、起動要因が1つも検出さ
れないときにはステップS2に戻って、起動要因の発生
を待つようになる。ステップS4では、前記起動要因
(1)が検出されたときに、ステップS5にて自動演奏
処理が実行されて、ステップS2に戻る。この自動演奏
処理では、MIDIファイルから読み出された曲データ
に応じて楽譜通りのタイミングでMIDIのフォームの
イベントを発生する処理が行われる。なお、起動要因
(1)に応じて発生したMIDIフォームのイベント
も、入力イベントとして起動要因(2)の要因となる。
【0034】また、前記要因(2)が検出されたとき
は、ステップS4からステップS6に進みMIDI入力
処理が行われ、ステップS2に戻る。このMIDI入力
処理のフローチャートを図5に示すが、MIDI入力処
理が起動されるとステップS21にて発生されたMID
Iイベントが受け取られる。ついで、ステップS22に
て受け取ったMIDIイベントを、受信時刻と共にMバ
ッファに書き込む処理が行われる。これにより、入力さ
れたMIDIイベントは順次Mバッファに書き込まれて
いくようになる。
【0035】さらに、起動要因(3)が検出されたとき
には、ステップS4からステップS7に進み音源ドライ
バ処理1が実行され、ステップS2に戻る。この音源ド
ライバ処理1のフローチャートを図6に示すが、音源ド
ライバ処理1が起動されると、ステップS31にてMバ
ッファ内に音源ドライバ処理が終了していない未完のイ
ベントがあるか否かが判定される。ここで、音源ドライ
バ処理が未完のイベントが検出されると、ステップS3
2に分岐してエンベロープ(EG)波形が所定時間分作
成されているか否かが判定される。そして、EG波形の
作成が未完と検出されると、ステップS34に進んで所
定サンプル数分のEG波形を生成するEG波形生成処理
が実行され、生成されたEG波形サンプルが図2(a)
に示すEメモリバッファに格納される。
【0036】また、ステップS34のエンベロープを生
成する処理が複数回実行されてEG波形の作成が完了し
ていると検出された場合は、ステップS33に分岐して
所定演算量の部分的な音源ドライバ処理が行われる。さ
らに、ステップS31にてMバッファ内に音源ドライバ
処理が終了していない未完のイベントがないと検出され
た場合には、ステップS35に進んでEG波形が所定時
間分作成されているか否かが判定される。そして、EG
波形の作成が未完と検出されると、ステップS34に分
岐して所定サンプル数分のEG波形を生成するEG波形
生成処理が実行され、生成されたEG波形サンプルが図
2(a)に示すEメモリバッファに格納される。また、
EG波形の作成が完了している場合には、音源ドライバ
処理1は終了する。
【0037】このような音源ドライバ処理1は、空き時
間あるいは1フレーム以上の所定周期のタイミングとな
る毎(起動要因(3))に起動されて、EG波形は所定
サンプル数分だけ生成され、音源パラメータは部分的に
だけ発生されるため、図3(b)に示すように、音源ド
ライバ処理量JD1〜JD6は少量づつの処理量となる
のである。なお、音源ドライバ1の処理では先行して所
定時間分のEG波形を作成しておくようにしているが、
この所定時間は調節可能である。すなわち、リアルタイ
ム性を重視する場合には、Eバッファメモリのエリアを
小さくして短い時間分のEG波形を作成するようにすれ
ばよく、CPU1の負荷を分散させて安定な動作を重視
する場合には、Eバッファメモリのエリアを大きくして
長い時間分のEG波形を作成するようにすればよい。
【0038】また、音源ドライバ処理1の際の未完のイ
ベントの検出は、前記図2(c)に示すMバッファ内の
格納データ数が1以上であることを検出すればよい。す
なわち、格納データ数が書かかれている部分をアクセス
することにより未完のイベントの有無を検出することが
でき、未完のイベントがあるときは、その読出ポインタ
位置からデータを読み出してエンベロープ波形生成処理
あるいは音源パラメータ発生処理を行えばよい。なお、
Mバッファに表示された格納データ数は音源ドライバ処
理が終了していない未完のデータ数であり、このデータ
数は書込ポインタと読出ポインタとの間のデータ数に相
当し、イベントの音源ドライバ処理が終了する毎に読出
ポインタは次のイベントのデュレーションのアドレス位
置に移動されて、データ数は「1」だけデクリメントさ
れる。
【0039】次に、ステップS33にて行われる音源ド
ライバ処理の一例としてイベントがノートオンの際に行
われる音源ドライバ処理(ノートオン)のフローチャー
トを図7に示す。音源ドライバ処理(ノートオン)が起
動されると、ステップS41にて発音開始の準備を行う
ためにイベント中に含まれているパートナンバ情報、ノ
ートコード情報、および、ベロシティ情報を受け取る。
ついで、ステップS42にて発音すべきチャンネルの発
音割当がEGレベルを比較することで行われる。このE
Gレベル比較は、各チャンネルのエンベロープデータを
比較することで行われ、もっともエンベロープが進行し
ていてそのレベルが小さいチャンネルがトランケートさ
れる。この処理のために、EG波形生成処理が音源ドラ
イバ処理に優先して実行されるのである。ただし、ベー
ス音の音色選択データが設定されているパートについて
はEGレベル比較処理の対象とせず最後まで発音させる
のが好適である。
【0040】ついで、ステップS43にて指定パートの
音色に従って、音源パラメータを発生すると共に、発生
された音源パラメータをPバッファに書き込む処理が行
われる。なお、図7に示す例ではステップS42及びス
テップS43の処理を、1回の音源ドライバ処理(ノー
トオン)で実行するようにしているが、1回の音源ドラ
イバ処理(ノートオン)において、ステップS42の処
理あるいはステップS43の処理のいずれかの処理を行
うようにして、2回の音源ドライバ処理(ノートオン)
で2つの処理を行うようにしてもよい。また、ステップ
S43において発生する全音源パラメータの1/nづつ
を、1回毎の音源ドライバ処理(ノートオン)において
発生するようにしてもよい。
【0041】図4に示すフローチャートに戻り、前記起
動要因(4)が検出されたときは、ステップS4からス
テップS8に進み楽音波形サンプルを生成する音源エン
ジン処理が行われステップS2に戻る。この音源エンジ
ン処理のフローチャートを図8(a)に示すが、各フレ
ームの開始時に音源エンジン処理が起動され、ステップ
S51にてPバッファから読み出された音源パラメータ
の再生が行われ、発音タイミングが到来した音源パラメ
ータが、Pバッファから音源レジスタに送られる。つい
で、ステップS52にて、波形生成すべき楽音波形のフ
レーム(現フレーム)の時刻範囲に関し、Mバッファに
格納されているイベントの音源ドライバ処理およびエン
ベロープ波形生成処理が未完か否かが判定される。これ
は、エンベロープ波形生成処理および音源ドライバ処理
が分散して行われるため、発音タイミングに達している
にもかかわらず、波形生成に必要なすべてのエンベロー
プ波形あるいは音源パラメータが得られていないことを
検出するために行われる。
【0042】ここで、当該イベントに対する音源ドライ
バ処理が未完と検出された場合は、ステップS53に分
岐して前記時刻範囲で未生成のエンベロープ波形の生
成、あるいは、前記時刻範囲で未完のイベントに対応す
る音源パラメータを発生するための音源ドライバ処理2
が行われ、エンベロープ波形が生成された場合はEバッ
ファメモリに格納され、音源パラメータが発生された場
合は音源レジスタに送られる。これにより、楽音波形を
生成するためのすべてのエンベロープ波形および音源パ
ラメータが用意されたことになる。また、エンベロープ
波形生成処理および音源ドライバ処理が未完のイベント
はないと検出されたときは、ステップS53の処理はス
キップされる。そして、ステップS54にてEバッファ
メモリに記憶されているエンベロープ波形により音量や
ピッチが制御され、かつ、音源レジスタに格納されてい
る音源パラメータに応じた楽音波形サンプルが1フレー
ム周期に対応するサンプル数分形成され、それらを複数
チャンネル分混合した1フレーム分の楽音波形サンプル
が出力バッファに格納される。ついで、ステップS55
にて出力バッファに格納されている各チャンネルの楽音
波形サンプルが足し込まれた楽音波形サンプルに、エフ
ェクト処理が施されて再度出力バッファに格納される。
そして、ステップS56にて出力バッファの楽音波形サ
ンプルが再生デバイスに再生予約される。これにより、
次フレームにおいてサンプリング周期毎に出力バッファ
から1サンプルづつ読み出されて、DAC等の再生デバ
イスによりアナログの楽音信号に変換されて発音される
ようになる。
【0043】図4に示すフローチャートに戻り、前記起
動要因(5)が検出されたときは、ステップS4からス
テップS9に進みその他の処理が行われステップS2に
戻る。その他の処理としては、曲データの再生ボタンが
ダブルクリックされて再生が指示されたときに行われる
再生処理、あるいは、パート別の音量を設定する操作子
が操作されてパート別音量設定が行われたとき行われる
パート音量制御処理等がある。再生処理は、曲データの
再生ボタンがダブルクリックされて再生が指示されたと
きに起動され、指定された曲データをハードディスク6
やリムーバブルディスク7等に記憶されているMIDI
ファイルにアクセスして得る処理等の、再生にかかる処
理が行われ、前記ステップS5に関して説明された自動
演奏がスタートされる。また、パート別の音量を設定す
る操作子が操作された時は、図8(b)に示すフローチ
ャートのパート音量制御処理が起動されて、パート別の
音量制御処理が実行される。
【0044】図8(b)に示すフローチャートにおい
て、パート音量制御処理が起動されると、ステップS6
1にて音量操作されたパートのパートナンバと、そのパ
ートに設定された音量データを受け取る。ついで、ステ
ップS62にて音量操作された指定パートの音量の設定
データが、ユーザが操作した操作子の操作量に応じて書
き換えられる。この設定データは、前記図2(a)に示
すRAM3のパート設定データエリアに格納されてい
る。続いて、ステップS63にて指定パートの発音中あ
るいは待機中のチャンネルがあるか否かが判定される。
ここで、発音中のチャンネル、あるいは、まだPバッフ
ァに音源パラメータが格納されている待機中のチャンネ
ルが検出されたときは、ステップS64に進む。
【0045】このステップS64にて、発音中のチャン
ネルが検出されたときは、音源レジスタ内の検出された
チャンネルに対応する音量データが操作子の操作量に応
じて書き換えられる。また、待機中のチャンネルが検出
されたときには、Pバッファ内の検出されたチャンネル
に対応する音量データが操作子の操作量に応じて書き換
えられる。なお、指定されたパートの発音中あるいは待
機中のチャンネルが検出されないときは、ステップS6
4の処理はスキップされる。なお、図3(a)に示す時
間Δtが1sec以内に設定されているときは、待機中
のチャンネルの音量データの書き換えを行わず、Δtが
1secを越えて設定されているときだけ音量データの
書き換えを行うようにしてもよい。その場合、新たに設
定された音量データは、その後に発生するMIDIイベ
ントのみに対して作用する。このように、エンベロープ
波形および音源パラメータを発音タイミングより先行し
て分散生成するようにしても、楽音波形は発音タイミン
グとなるまで生成しないためパート別の音量制御をリア
ルタイムで行うことができる。
【0046】図4に示すフローチャートに戻って起動要
因(6)が検出されたときは、ステップS4からステッ
プS10に進み、音源ソフト処理を終了させるための関
連する画面の表示を消去する等の所定の終了処理が行わ
れ、音楽ソフト処理が終了される。なお、前記起動要因
において、起動要因(1)および(2)の優先度が一番
高く、ついで起動要因(4)の優先度とされ、ついで起
動要因(5)の優先度が高く、最も優先度の低い起動要
因は起動要因(3)および(6)とされる。
【0047】以上の説明では、MバッファはRAM3に
設定されていたが、必ずしもRAM3に設定することな
く、すでにハードディスク6やリムーバブルディスク7
に記憶されている再生中の曲データ上の、再生位置の少
し先の領域をMバッファと見なすようにしてもよい。ま
た、Pバッファに格納されている音源パラメータは、組
とされたデュレーションの時刻に達したときに音源レジ
スタに転送されたが、デュレーションの時刻に達したと
きに音源がPバッファ上の音源パラメータに基づいて楽
音波形サンプルを生成することにより、Pバッファを音
源レジスタとして使用するようにしてもよい。
【0048】なお、エンベロープ波形データは、楽音波
形サンプルの8サンプルに1回更新されるようにした
が、本発明はこれに限ることはなく、16サンプル、3
2サンプル等の任意の数のサンプル毎に1回更新される
ようにしてもよい。このサンプル数が多くなるにつれて
エンベロープ波形生成処理の負荷は軽くなる。また、図
3に示す「制御遅れ時間Δt」は、時間フレーム単位の
遅れではなく「aフレーム(aは0を含む正の整数)と
3分の2」等の遅れでもよい。さらに、以上の説明では
楽音データはMIDIフォームで表されるとしたが、こ
れに限らず楽音の発生/停止、音色、音量等を指示する
ことのできるデータであればいかなるデータで楽音デー
タを表わすようにしてもよい。
【0049】さらに、本発明においては、音源エンジン
を起動する楽音生成タイミングとして起動要因(4)1
フレーム毎の例が示されているが、1フレーム毎に限る
ことはなく2フレームに1回とか1フレームに3回とか
としてもよい。さらにまた、音源エンジンが1回起動さ
れる毎に生成する楽音波形データの量も、1フレーム分
に限ることはない。つまり固定した時間長のフレームを
単位とした動作を、必ずしも行う必要はない。
【0050】さらにまた、本発明においては、音源エン
ジンが起動されたとき、まずステップS52で音源パラ
メータの生成が完了しているか否か判定して生成できて
いない音源パラメータを生成するようにしていたが、こ
の処理を省略するようにしてもよい。その場合、該起動
の時点で生成されていた音源パラメータだけが楽音生成
に使用され、未生成の音源パラメータは無視される。音
源パラメータが分散生成できないのは全体として処理が
重くなっている場合であり、この省略により処理の削減
を図ることができる。さらにまた、本発明の楽音生成方
法を、Windows (米マイクロソフト社のパソコン用O
S)やその他のオペレーティングシステムの動作する汎
用コンピュータ上で、1つのアプリケーションプログラ
ムとして、ゲームソフトやカラオケソフト等の他のアプ
リケーションプログラムと並列実行させてもよい。
【0051】
【発明の効果】本発明は以上のように構成されているの
で、受け取ったMIDIのフォームとされた楽音データ
をバッファに記憶しておき、音源ドライバがバッファに
記憶された楽音データを非同期で分散処理することによ
り音源パラメータを発生すると共に、楽音データに応じ
たエンベロープ波形を先行して生成するようにしてい
る。従って、イベントが集中して発生しても、音源ドラ
イバの処理は分散して実行されるため、CPU負荷が急
激に増加することがなく、さらに、エンベロープ波形の
生成処理が発音タイミングより先行して実行されている
ことから、音源処理の負荷を軽くすることができる。し
たがって、一時的な処理の集中による発音数の減少を防
止することができる。
【0052】また、エンベロープ波形を先行して生成し
ているため、音源ドライバ処理において、生成されたエ
ンベロープ波形のレベル状態を検出することが可能とな
り、各チャンネルのエンベロープ波形のレベルをみる発
音チャンネル割当処理を行うことができるようになる。
さらにまた、音源ドライバ処理およびエンベロープ波形
生成処理までを先行して実行し、波形生成は発音タイミ
ングになったときに実行するようにしているので、生成
される楽音に対し、パート別の音量制御やパン制御等の
処理をリアルタイムで行うことができる。
【図面の簡単な説明】
【図1】 本発明の楽音生成方法が実行される処理装置
の構成例を示すブロック図である。
【図2】 本発明のRAM上に設定された各種バッファ
エリアを示す図である。
【図3】 本発明の楽音生成方法の各処理を行うタイミ
ングを示すタイミングチャート、および、本発明と従来
の音源ドライバ処理量と波形生成処理量の変動を示す図
である。
【図4】 本発明の楽音生成方法における音楽ソフト処
理のフローチャートである。
【図5】 本発明の楽音生成方法におけるMIDI入力
処理のフローチャートである。
【図6】 本発明の楽音生成方法における音源ドライバ
処理1のフローチャートである。
【図7】 本発明の楽音生成方法における音源ドライバ
処理(ノートオン)のフローチャートである。
【図8】 本発明の楽音生成方法における音源エンジン
処理、および、パート音量制御処理のフローチャートで
ある。
【図9】 従来の楽音生成装置におけるタイミングチャ
ートを示す図である。
【符号の説明】
1 CPU、2 ROM、3 RAM、4 タイマ、5
MIDIインターフェース、6 ハードディスク、7
リムーバブルディスク、8 表示器、9 キーボード
&マウス、10 音源、11 CPUバス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数の楽音データを対応するタイミン
    グデータと共に第1記憶手段に記憶する第1のステップ
    と、 前記第1記憶手段に記憶された楽音データを読み出し
    て、該楽音データに対応する楽音波形を生成するための
    音源パラメータを生成し、該音源パラメータを対応する
    タイミングデータと共に第2記憶手段に記憶する第2の
    ステップと、 前記第2記憶手段に記憶された前記音源パラメータと対
    応するタイミングデータに基づいてエンベロープ波形を
    生成し、生成された前記エンベロープ波形を第3記憶手
    段に記憶する第3のステップと、 前記第2記憶手段に記憶された前記音源パラメータと対
    応するタイミングデータと、前記第3の記憶手段に記憶
    された前記エンベロープ波形に基づいて前記楽音波形を
    生成し、生成された前記楽音波形を第4記憶手段に記憶
    する第4のステップと、 前記第4記憶手段に記憶されている楽音波形を順次再生
    する第5のステップと、 前記第5のステップにおける再生の進行に応じて第1の
    タイミングを発生し、該第1のタイミングで前記第4の
    ステップを起動する第6のステップと、 前記タイミングデータの示すタイミングとは独立した所
    定の周期で第2のタイミングを発生し、該第2のタイミ
    ングで前記第2のステップないし第3のステップを起動
    する第7のステップと、 を備えていることを特徴とする楽音生成方法。
  2. 【請求項2】 前記楽音生成方法は、複数発音チャン
    ネル分の楽音波形を生成する楽音生成方法であり、 前記第3のステップは、複数チャンネル分の前記エンベ
    ロープ波形を生成し、 前記第2のステップは、該複数チャンネル分の前記エン
    ベロープ波形に基づいて発音チャンネル割り当てを行う
    と共に、割り当てた発音チャンネルの楽音パラメータを
    生成していることを特徴とする請求項1記載の楽音生成
    方法。
  3. 【請求項3】 前記第4のステップが起動されたとき
    に、前記第1記憶手段に記憶された前記楽音データのう
    ち、前記楽音波形の生成範囲に含まれるタイミングデー
    タに対応した楽音データの音源パラメータがおよび同生
    成範囲のエンベロープ波形が生成済みであるか否かを判
    定し、生成済みでない場合には未生成の音源パラメータ
    およびエンベロープ波形を発生してから楽音波形を生成
    するようにしたことを特徴とする請求項1記載の楽音生
    成方法。
JP30502397A 1997-10-21 1997-10-21 楽音生成方法 Expired - Fee Related JP3637578B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30502397A JP3637578B2 (ja) 1997-10-21 1997-10-21 楽音生成方法
US09/174,942 US5942707A (en) 1997-10-21 1998-10-19 Tone generation method with envelope computation separate from waveform synthesis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30502397A JP3637578B2 (ja) 1997-10-21 1997-10-21 楽音生成方法

Publications (2)

Publication Number Publication Date
JPH11126070A true JPH11126070A (ja) 1999-05-11
JP3637578B2 JP3637578B2 (ja) 2005-04-13

Family

ID=17940168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30502397A Expired - Fee Related JP3637578B2 (ja) 1997-10-21 1997-10-21 楽音生成方法

Country Status (2)

Country Link
US (1) US5942707A (ja)
JP (1) JP3637578B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100829295B1 (ko) * 2001-01-31 2008-05-13 야마하 가부시키가이샤 기억매체, 음악 게임 처리 방법, 음악 게임용 처리 프로그램을 기억하기 위한 컴퓨터로 독출가능한 기억매체, 음악 게임 장치 및 휴대통신단말
JP2008233827A (ja) * 2007-03-23 2008-10-02 Yamaha Corp 楽器の制御装置
JP2010522364A (ja) * 2007-03-22 2010-07-01 クゥアルコム・インコーポレイテッド 楽器用デジタルインターフェース(midi)ファイルを処理するためのパイプライン技法
JP2010522362A (ja) * 2007-03-22 2010-07-01 クゥアルコム・インコーポレイテッド オーディオ・デバイスにおける参照波形の検索のための帯域幅制御

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3596263B2 (ja) * 1997-12-10 2004-12-02 ヤマハ株式会社 データ処理装置およびデータ処理方法
JP4240575B2 (ja) * 1998-05-15 2009-03-18 ヤマハ株式会社 楽音合成方法、記録媒体および楽音合成装置
US7376475B2 (en) * 2001-03-05 2008-05-20 Microsoft Corporation Audio buffer configuration
US7386356B2 (en) * 2001-03-05 2008-06-10 Microsoft Corporation Dynamic audio buffer creation
US7107110B2 (en) * 2001-03-05 2006-09-12 Microsoft Corporation Audio buffers with audio effects
US7126051B2 (en) * 2001-03-05 2006-10-24 Microsoft Corporation Audio wave data playback in an audio generation system
US7162314B2 (en) * 2001-03-05 2007-01-09 Microsoft Corporation Scripting solution for interactive audio generation
US7089068B2 (en) * 2001-03-07 2006-08-08 Microsoft Corporation Synthesizer multi-bus component
US7305273B2 (en) * 2001-03-07 2007-12-04 Microsoft Corporation Audio generation system manager
US6970822B2 (en) * 2001-03-07 2005-11-29 Microsoft Corporation Accessing audio processing components in an audio generation system
US6806412B2 (en) * 2001-03-07 2004-10-19 Microsoft Corporation Dynamic channel allocation in a synthesizer component
JP2006030517A (ja) * 2004-07-15 2006-02-02 Yamaha Corp 発音割当装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596159A (en) * 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100829295B1 (ko) * 2001-01-31 2008-05-13 야마하 가부시키가이샤 기억매체, 음악 게임 처리 방법, 음악 게임용 처리 프로그램을 기억하기 위한 컴퓨터로 독출가능한 기억매체, 음악 게임 장치 및 휴대통신단말
JP2010522364A (ja) * 2007-03-22 2010-07-01 クゥアルコム・インコーポレイテッド 楽器用デジタルインターフェース(midi)ファイルを処理するためのパイプライン技法
JP2010522362A (ja) * 2007-03-22 2010-07-01 クゥアルコム・インコーポレイテッド オーディオ・デバイスにおける参照波形の検索のための帯域幅制御
JP2008233827A (ja) * 2007-03-23 2008-10-02 Yamaha Corp 楽器の制御装置

Also Published As

Publication number Publication date
US5942707A (en) 1999-08-24
JP3637578B2 (ja) 2005-04-13

Similar Documents

Publication Publication Date Title
JPH11126070A (ja) 楽音生成方法
US6140566A (en) Music tone generating method by waveform synthesis with advance parameter computation
JPH1165558A (ja) パラメータ表示装置および楽音合成装置
JP3293434B2 (ja) 楽音発生方法
JP3293474B2 (ja) 楽音発生方法
JPH0922287A (ja) 楽音波形生成方法
JP3221314B2 (ja) 楽音合成装置及び方法
JP3637577B2 (ja) 楽音生成方法
JP2894234B2 (ja) 波形データの音域割当装置
US6040516A (en) Tone generation system using computer software and storage medium storing the computer software
JPH07121181A (ja) 音声情報処理装置
US6169243B1 (en) Automatic performance apparatus with quick start by accelerated loading of setting data
JP2000081883A (ja) 音楽処理手段の設定方法、波形デ―タ生成手段の設定方法、楽音生成方法、および、プログラムが記録された記録媒体
JP3799711B2 (ja) 楽音発生方法および楽音発生装置
JP4096952B2 (ja) 楽音発生装置
JPH11202866A (ja) 楽音発生方法および楽音発生装置
JP3003559B2 (ja) 楽音生成方法
JP2641851B2 (ja) 自動演奏装置
JP3409642B2 (ja) 自動演奏装置、自動演奏データ処理方法及び電子的情報記憶媒体
JP3632744B2 (ja) 音生成方法
JP3257400B2 (ja) エフェクト装置
JP3740717B2 (ja) 音源装置及び楽音生成方法
JP3716701B2 (ja) 発音チャンネル割り当て方法及び装置
JP3627590B2 (ja) 音生成方法
JP2583377B2 (ja) 自動演奏装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041228

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100121

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110121

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120121

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130121

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees