JP3637578B2 - 楽音生成方法 - Google Patents

楽音生成方法 Download PDF

Info

Publication number
JP3637578B2
JP3637578B2 JP30502397A JP30502397A JP3637578B2 JP 3637578 B2 JP3637578 B2 JP 3637578B2 JP 30502397 A JP30502397 A JP 30502397A JP 30502397 A JP30502397 A JP 30502397A JP 3637578 B2 JP3637578 B2 JP 3637578B2
Authority
JP
Japan
Prior art keywords
sound source
sound
waveform
timing
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 - Fee Related
Application number
JP30502397A
Other languages
English (en)
Other versions
JPH11126070A (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 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

Images

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

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)イベントを送出するプレーヤ(自動演奏プログラム)、MIDIイベントが入力される毎に入力されたMIDIイベントに応じた音源パラメータを発生する音源ドライバ、発生された音源パラメータに基づいてエンベロープ波形および楽音波形を生成する音源から構成されている。なお音源ドライバは、入力されたMIDIイベントに応じて、チャンネルアサイン、音源パラメータ変換等の音源ドライバ処理を実行し、当該イベントに割り当てられたチャンネルに、変換した音源パラメータと発音開始指示(ノートオン)を供給する。
音源は、専用のLSI(Large Scale Integrated circuit)やDSP(Digital Signal Processor)等のハードウェアで構成(ハードウェア音源)されたり、楽音生成処理手順を記述したプログラムをCPUに実行させるソフトウェア音源により構成されている。
【0003】
このように楽音生成装置は、プレーヤ、音源ドライバ、音源により構成されているが、これらの処理負荷は一定ではなく大きく変動しているのが一般的である。
たとえば、MIDIイベントが多いときにはプレーヤおよび音源ドライバで処理すべき負荷が大きくなる。特に、音源ドライバでは、ノートオンイベントが多いときに処理負荷が大きくなる。これは、ノートオンイベント時では、空きチャンネルをサーチして、ノートオンされた楽音を発生するチャンネルの発音割当処理が行われるが、この際に行われるサーチ処理およびトランケート処理は時間のかかる負荷の大きい処理であるからである。さらに、ノートオンイベント時には、キータッチに応じた音色設定処理等も行われる。このように、ノートオンイベントが多いときには音源ドライバ処理の負荷が大きくなる。
また、音源がソフトウェア音源で構成されている場合には、同時発音数が多いときに音源におけるエンベロープ波形生成処理および波形生成処理の負荷が大きくなる。
【0004】
ここで、プレーヤ、音源ドライバ、および音源における処理のタイミングチャートを例示して具体的に説明する。図9は楽音生成装置の各処理タイミングを示すタイミングチャートの例であり、MIDI入力と記されているM1〜M4はMIDIイベントであり下向きの矢印で示すタイミングで入力されている。このMIDIイベントは、たとえば、プレーヤがMIDIファイル等を読み出して楽譜通りのタイミングで送出したMIDIイベントである。このMIDIイベントM1〜M4が受信される毎にMIDI処理を起動する優先度の高い割り込みが発生し、起動されたMIDI処理においてMIDIイベントM1〜M4は、受信された時刻と共に入力バッファに格納される。
【0005】
音源ドライバと記されている処理a,bは、入力バッファに格納されたMIDIイベントを音源ドライバが受け取り、該MIDIイベントに応じてチャンネルアサイン、音源パラメータの発生等を行う。ここで発生された音源パラメータは音源パラメータバッファに格納される。
また、波形生成と記されている処理A,B,・・・,Eは、時刻t1,t2,・・・,t5,・・の一定周期で起動されて音源で実行されるエンベロープ波形生成処理および波形生成処理の実行されるタイミングであり、音源パラメータバッファから読み出された音源パラメータに基づいて楽音波形サンプルを生成している。ここで、エンベロープ波形を音源において生成しているのは、エンベロープの各ステート毎の値は、MIDIデータと同様に抽象度の高い情報であるため、これをパラメータの連続量に変換しながら波形計算を行っているからである。
【0006】
なお、一定周期の単位を1フレームとしている。この波形生成処理では、たとえば、時刻t1から時刻t2のフレームにおいて発生された音源パラメータによる音源制御が、次のフレームである時刻t2から時刻t3のフレームにおいて実行され、該次のフレームでは、まず、該音源制御に応じたエンベロープ波形が生成され、さらに、そのエンベロープ波形により音量やピッチの制御されかつ該音源制御に応じた楽音波形サンプルが、1フレーム周期に対応するサンプル数分生成される。生成された各発音チャンネルの楽音波形サンプルは累算され、その結果得られた1フレーム分の楽音波形サンプルが、DAC(デジタル・アナログコンバータ)等で構成される再生デバイスに再生予約される。
【0007】
さらに、波形再生と記されているのは、再生デバイスが出力バッファからサンプリング周期毎に楽音波形サンプルを1サンプルづつ読み出して再生するタイミングを示している。たとえば、時刻t2から時刻t3のフレームにおいて波形生成された楽音波形サンプルは、次のフレームである時刻t3から時刻t4のフレームにおいて再生される。
従って、MIDIイベントが入力されてから実際に発音されるまでの発音遅れ時間Δtは最短で2フレーム後となり、次のフレームで再生するエンベロープ波形および楽音波形を、現時点のフレームの期間内に生成し終えるようにしなければならない。なお、1フレームは数msecの周期とされている。
【0008】
【発明が解決しようとする課題】
ところで、一般に音源ドライバはCPUに音源ドライバプログラムを実行させることにより実現されており、音源ドライバ処理は、基本的にノートオンイベント,ノートオフイベント,プログラムチェンジ等のイベント発生時に起動される。このため、図9にイベントM1〜M3として示すようにイベントが同時刻に集中して入力されると、音源ドライバ処理が急激に増加する。従って、イベントの集中時には、音源ドライバ処理を実行するCPUに大きな負担がかかり、同時にCPUが実行している自動演奏プログラム、ゲームプログラム、あるいは、画像処理等の実行を行えなくなるおそれが生じる。
特に、音源がソフトウェア音源で構成されており、ソフトウェア音源で演算すべき発音数が多いときには、生成する楽音波形サンプル数が増加するためソフトウェア音源の負荷が多いことは当然であるが、発音数が多いことからイベントの発生も多く、音源ドライバおよびプレーヤで処理すべき負荷が大きくなることになる。従って、ソフトウェア音源において演算すべき発音数が多い時には、他の楽音生成のための処理も増加し演算可能な発音数が低下してしまうおそれがあった。
【0009】
たとえば、ソフトウェア音源において通常32音発音可能な場合でも、ノートオンイベントが集中して発生した際には、音源ドライバで実行されるノートオンイベント処理のためにCPUの演算能力の大部分が費やされるようになり(図9MIDI入力および音源ドライバの処理タイミング参照)、ソフトウェア音源に割り当てられるCPUの演算能力が減少し、32音の楽音波形およびエンベロープ波形をソフトウェア音源で生成することができなくなる。
【0010】
これを解決するために、CPUに余裕のあるときに音源ドライバの生成した音源パラメータに基づいて、発音タイミングより事前に楽音波形を音源において先行生成しておき、生成した音源波形を波形バッファに記憶しておくようにすることが考えられる。そして、発音タイミング時に波形バッファから音源波形を読み出して発音するようにする方法が提案されている。
しかしながらこの方法では、先行生成した音源波形を記憶するために大容量の波形バッファが必要になる。また、曲データの演奏途中において音量制御、パン制御、効果制御等の操作が行われた際には、すでに先行生成された楽音波形の各パートの楽音波形が合成されていることから、楽音波形を修正するのが困難となる。修正するには、たとえば16パートの各パート別に独立して波形バッファに記憶させなければならず、さらに多くの波形バッファが必要となる。
【0011】
また、音源ドライバ処理においては発音チャンネル割当処理が行われるが、通常、発音チャンネル割当を行うには、各チャンネルのエンベロープのレベル状態を検出してエンベロープレベルが小さい発音の進行したチャンネルをトランケート処理するようにしている。しかしながら、エンベロープ波形は音源処理において生成されるため、音源ドライバ処理時には生成されておらず、エンベロープ波形の状態を利用して発音チャンネル割当処理を行うことができないという問題点があった。
そこで、本発明はノートオンイベントのようなCPU負荷が急激に増加するイベントが集中して発生しても、演算可能な発音数が低下することがないと共に、各パート別に音量制御可能であって、エンベロープ波形の状態を検出して発音チャンネル割当を行うことのできる楽音生成方法を提供することを目的としている。
【0012】
【課題を解決するための手段】
前記目的を解決するために、本発明の楽音生成方法は、複数の楽音データを対応するタイミングデータと共に第1記憶手段に記憶する第1のステップと、前記第1記憶手段に記憶された楽音データを読み出して、該楽音データに対応する楽音波形を生成するための音源パラメータを生成し、該音源パラメータを対応するタイミングデータと共に第2記憶手段に記憶する第2のステップと、前記第2記憶手段に記憶される前記音源パラメータと対応するタイミングデータに基づいてエンベロープ波形を生成し、生成された前記エンベロープ波形を第3記憶手段に記憶する第3のステップと、前記第2記憶手段に記憶された前記音源パラメータと対応するタイミングデータと、前記第3の記憶手段に記憶された前記エンベロープ波形に基づいて前記楽音波形を生成し、生成された前記楽音波形を第4記憶手段に記憶する第4のステップと、前記第4記憶手段に記憶されている楽音波形を順次再生する第5のステップと、前記タイミングデータに基づく発音タイミングに先行し、かつ該発音タイミングに応じて第1のタイミングを発生し、該第1のタイミングで前記第4のステップを起動する第6のステップと、前記発音タイミングに先行し、かつ該発音タイミングとは独立した第2のタイミングを発生し、該第2のタイミングで前記第2のステップないし第3のステップを起動する第7のステップとを備え、前記第2のタイミングを前記第1のタイミングに先行して発生するようにしている。
このような楽音生成方法によれば、楽音データの演奏されるタイミングとは独立したタイミングで楽音データに応じた音源パラメータに基づいたエンベロープ波形の形成が行われるので、演奏データのタイミングが密であってもそのために音源パラメータの生成処理やエンベロープ波形の形成のためにプロセッサの能力が消費され、波形生成の処理が厳しくなることがない。
【0013】
また、前記楽音生成方法における前記楽音生成方法は、複数発音チャンネル分の楽音波形を生成する楽音生成方法であり、前記第3のステップは、複数チャンネル分の前記エンベロープ波形を生成し、前記第2のステップは、該複数チャンネル分の前記エンベロープ波形に基づいて発音チャンネル割り当てを行うと共に、割り当てた発音チャンネルの楽音パラメータを生成するようにしてもよい。
このような楽音生成方法によれば、複数発音チャンネルの楽音を生成する場合に、かく発音チャンネルの音量データに基づいて発音チャンネル割り当てを行いつつ、音源パラメータの生成処理を分散的に行うことができる。
【0014】
さらに、前記楽音生成方法において、前記第4のステップが起動されたときに、前記第1記憶手段に記憶された前記楽音データのうち、前記楽音波形の生成範囲に含まれるタイミングデータに対応した楽音データの音源パラメータがおよび同生成範囲のエンベロープ波形が生成済みであるか否かを判定し、生成済みでない場合には未生成の音源パラメータおよびエンベロープ波形を発生してから楽音波形を生成するようにしてもよい。
このような楽音生成方法によれば、分散処理による音源パラメータの生成ないしエンベロープ波形の生成が完了しないまま楽音生成のタイミングになった場合でも、その完了していない処理を先に終えてから楽音生成を行うので、生成する楽音に悪影響を与えないようになる。また、その場合にも一部の音源パラメータは分散的に処理されるようになる。
【0015】
上記の本発明によれば、受け取った楽音データをバッファに記憶しておき、音源ドライバがバッファに記憶された楽音データを非同期で分散処理することにより音源パラメータを発生すると共に、楽音データに応じたエンベロープ波形を先行して生成するようにしている。従って、イベントが集中して発生しても、音源ドライバの処理は分散して実行されるため、CPU負荷が急激に増加することがなく、さらに、エンベロープ波形の生成処理が発音タイミングより先行して実行されていることから、音源処理の負荷を軽くすることができる。したがって、一時的な処理の集中による発音数の減少を防止することができる。
【0016】
また、エンベロープ波形を先行して生成しているため、音源ドライバ処理において、生成されたエンベロープ波形のレベル状態を検出することが可能となり、各チャンネルのエンベロープ波形のレベルをみる発音チャンネル割当処理を行うことができるようになる。
さらにまた、音源ドライバ処理およびエンベロープ波形生成処理までを先行して実行し、波形生成は発音タイミングになったときに実行するようにしているので、生成される楽音に対し、パート別の音量制御やパン制御等の処理をリアルタイムで行うことができる。
【0017】
【発明の実施の形態】
本発明の楽音生成方法を実行することのできる処理装置の構成例を図1に示す。ただし、図1に示す処理装置は、パソコン、ワークステーション等の汎用の処理装置と同等であり、それらの上で本発明の楽音発生方法を実施することができる。
この図において、1はアプリケーションプログラム等を実行してファイルから読み出した演奏データに基づいて自動演奏を行うための各種演算処理を行うマイクロプロセッサ(CPU)、2はCPU1の動作プログラムやプリセット音色データ等が記憶されているリードオンリメモリ(ROM)、3はCPU1のワークメモリエリアや入力バッファエリア(Mバッファ)、音源パラメータエリア(Pバッファ)、パート設定データエリア、音源レジスタエリア、出力バッファエリア等の記憶エリアを有するランダムアクセスメモリ(RAM)、4は時刻を指示すると共に、タイマ割り込み処理のタイミングをCPU1に指示するタイマ、5はMIDIイベントが入力されると共に、生成されたMIDIイベントを出力するMIDIインターフェースである。
【0018】
6は楽音波形サンプルを生成するために使用する楽音波形データ等やオペレーションシステム(OS)、本発明の楽音生成方法にかかるプログラムや各種アプリケーションプログラム等が格納されるハードディスクであり、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のフォームの曲データや、MIDIインターフェース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)のMIDI入力に示すように時刻t1から時刻t2までのフレームの期間内において、集中したMIDIイベントM1,M2,M3が連続して受信されたとする。このMIDIイベント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と時刻tnとの時間間隔となる。たとえば、制御遅れ時間Δtは1sec程度とすることができる。なお、1フレームは数msecの周期とされている。
また、時刻t3から時刻t4までのフレームの期間中において、MIDIイベントM4が入力されているが、この場合も同様にMIDIイベントM4は受信時刻に応じたデュレーションと組とされてMバッファに書き込まれる。
【0028】
そして、図3(a)の音源ドライバの処理として示すように時刻t4から始まる次のフレーム以降の期間において、MバッファからデュレーションとMIDIイベントの組からなるデータが読み出されて、エンベロープ波形データが生成されると共に、発音チャンネル割当処理や音源パラメータ発生処理等のイベントに応じた音源ドライバ処理が分散して実行される。図示する例では、MIDIイベントM4に対応したエンベロープ波形生成処理および音源ドライバ処理は、処理h,iの2回に分散されて実行されて、処理が実行される毎に生成されたエンベロープ波形データはEメモリバッファに、発生された音源パラメータはPバッファに書き込まれるようになる。そして、波形生成処理で生成する楽音波形サンプルの時刻がPバッファに格納された音源パラメータと組とされているデュレーションの時刻に達したときに、Pバッファから音源レジスタに当該音源パラメータが送られ、音源パラメータに基づいて楽音波形生成処理が音源で実行される。この結果、生成処理Cでは、時刻tn+1から始まるフレームの途中で、MIDIイベントM4に対応して変化をする楽音波形サンプルが生成され、再生デバイスに再生予約される。
【0029】
ところで、従来の楽音生成方法ではMIDIイベントが入力されると、リアルタイムで音源ドライバ処理が実行されるため、MIDIイベントが集中して入力された際に音源ドライバ処理の負荷が急激に増加するようになる。この様子を図3(b)に示すが、MIDIイベント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、Jd6は急激に増加せず発音数に影響を与えない。
なお、音源で実行される波形生成の処理量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にて発生されたMIDIイベントが受け取られる。ついで、ステップS22にて受け取ったMIDIイベントを、受信時刻と共にMバッファに書き込む処理が行われる。これにより、入力されたMIDIイベントは順次Mバッファに書き込まれていくようになる。
【0035】
さらに、起動要因(3)が検出されたときには、ステップS4からステップS7に進み音源ドライバ処理1が実行され、ステップS2に戻る。この音源ドライバ処理1のフローチャートを図6に示すが、音源ドライバ処理1が起動されると、ステップS31にてMバッファ内に音源ドライバ処理が終了していない未完のイベントがあるか否かが判定される。ここで、音源ドライバ処理が未完のイベントが検出されると、ステップS32に分岐してエンベロープ(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レベルを比較することで行われる。このEGレベル比較は、各チャンネルのエンベロープデータを比較することで行われ、もっともエンベロープが進行していてそのレベルが小さいチャンネルがトランケートされる。この処理のために、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)に示すフローチャートにおいて、パート音量制御処理が起動されると、ステップS61にて音量操作されたパートのパートナンバと、そのパートに設定された音量データを受け取る。ついで、ステップS62にて音量操作された指定パートの音量の設定データが、ユーザが操作した操作子の操作量に応じて書き換えられる。この設定データは、前記図2(a)に示すRAM3のパート設定データエリアに格納されている。続いて、ステップS63にて指定パートの発音中あるいは待機中のチャンネルがあるか否かが判定される。ここで、発音中のチャンネル、あるいは、まだPバッファに音源パラメータが格納されている待機中のチャンネルが検出されたときは、ステップS64に進む。
【0045】
このステップS64にて、発音中のチャンネルが検出されたときは、音源レジスタ内の検出されたチャンネルに対応する音量データが操作子の操作量に応じて書き換えられる。また、待機中のチャンネルが検出されたときには、Pバッファ内の検出されたチャンネルに対応する音量データが操作子の操作量に応じて書き換えられる。なお、指定されたパートの発音中あるいは待機中のチャンネルが検出されないときは、ステップS64の処理はスキップされる。
なお、図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サンプル、32サンプル等の任意の数のサンプル毎に1回更新されるようにしてもよい。このサンプル数が多くなるにつれてエンベロープ波形生成処理の負荷は軽くなる。
また、図3に示す「制御遅れ時間Δt」は、時間フレーム単位の遅れではなく「aフレーム(aは0を含む正の整数)と3分の2」等の遅れでもよい。
さらに、以上の説明では楽音データはMIDIフォームで表されるとしたが、これに限らず楽音の発生/停止、音色、音量等を指示することのできるデータであればいかなるデータで楽音データを表わすようにしてもよい。
【0049】
さらに、本発明においては、音源エンジンを起動する楽音生成タイミングとして起動要因(4)1フレーム毎の例が示されているが、1フレーム毎に限ることはなく2フレームに1回とか1フレームに3回とかとしてもよい。さらにまた、音源エンジンが1回起動される毎に生成する楽音波形データの量も、1フレーム分に限ることはない。つまり固定した時間長のフレームを単位とした動作を、必ずしも行う必要はない。
【0050】
さらにまた、本発明においては、音源エンジンが起動されたとき、まずステップS52で音源パラメータの生成が完了しているか否か判定して生成できていない音源パラメータを生成するようにしていたが、この処理を省略するようにしてもよい。その場合、該起動の時点で生成されていた音源パラメータだけが楽音生成に使用され、未生成の音源パラメータは無視される。音源パラメータが分散生成できないのは全体として処理が重くなっている場合であり、この省略により処理の削減を図ることができる。
さらにまた、本発明の楽音生成方法を、Windows (米マイクロソフト社のパソコン用OS)やその他のオペレーティングシステムの動作する汎用コンピュータ上で、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記憶手段に記憶された楽音データを読み出して、該楽音データに対応する楽音波形を生成するための音源パラメータを生成し、該音源パラメータを対応するタイミングデータと共に第2記憶手段に記憶する第2のステップと、
    前記第2記憶手段に記憶される前記音源パラメータと対応するタイミングデータに基づいてエンベロープ波形を生成し、生成された前記エンベロープ波形を第3記憶手段に記憶する第3のステップと、
    前記第2記憶手段に記憶された前記音源パラメータと対応するタイミングデータと、前記第3の記憶手段に記憶された前記エンベロープ波形に基づいて前記楽音波形を生成し、生成された前記楽音波形を第4記憶手段に記憶する第4のステップと、
    前記第4記憶手段に記憶されている楽音波形を順次再生する第5のステップと、
    前記タイミングデータに基づく発音タイミングに先行し、かつ該発音タイミングに応じて第1のタイミングを発生し、該第1のタイミングで前記第4のステップを起動する第6のステップと、
    前記発音タイミングに先行し、かつ該発音タイミングとは独立した第2のタイミングを発生し、該第2のタイミングで前記第2のステップないし第3のステップを起動する第7のステップとを備え
    前記第2のタイミングを前記第1のタイミングに先行して発生するようにしたことを特徴とする楽音生成方法。
  2. 前記楽音生成方法は、複数発音チャンネル分の楽音波形を生成する楽音生成方法であり、
    前記第3のステップは、複数チャンネル分の前記エンベロープ波形を生成し、
    前記第2のステップは、該複数チャンネル分の前記エンベロープ波形に基づいて発音チャンネル割り当てを行うと共に、割り当てた発音チャンネルの楽音パラメータを生成していることを特徴とする請求項1記載の楽音生成方法。
  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 JPH11126070A (ja) 1999-05-11
JP3637578B2 true 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)

Families Citing this family (16)

* 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 ヤマハ株式会社 楽音合成方法、記録媒体および楽音合成装置
JP4166438B2 (ja) * 2001-01-31 2008-10-15 ヤマハ株式会社 音楽ゲーム装置
US7162314B2 (en) * 2001-03-05 2007-01-09 Microsoft Corporation Scripting solution for interactive audio generation
US7107110B2 (en) * 2001-03-05 2006-09-12 Microsoft Corporation Audio buffers with audio effects
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
US7126051B2 (en) * 2001-03-05 2006-10-24 Microsoft Corporation Audio wave data playback in an audio generation system
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
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
JP2006030517A (ja) * 2004-07-15 2006-02-02 Yamaha Corp 発音割当装置
US7807915B2 (en) * 2007-03-22 2010-10-05 Qualcomm Incorporated Bandwidth control for retrieval of reference waveforms in an audio device
US7663046B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Pipeline techniques for processing musical instrument digital interface (MIDI) files
JP5062401B2 (ja) * 2007-03-23 2012-10-31 ヤマハ株式会社 楽器の制御装置

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

Also Published As

Publication number Publication date
JPH11126070A (ja) 1999-05-11
US5942707A (en) 1999-08-24

Similar Documents

Publication Publication Date Title
JP3637578B2 (ja) 楽音生成方法
JP3812328B2 (ja) 自動伴奏パターン発生装置及び方法
US6140566A (en) Music tone generating method by waveform synthesis with advance parameter computation
JPH1165558A (ja) パラメータ表示装置および楽音合成装置
JP3293474B2 (ja) 楽音発生方法
JPH09114462A (ja) 楽音発生方法
JP3637577B2 (ja) 楽音生成方法
JPH0922287A (ja) 楽音波形生成方法
JPH09114457A (ja) 楽音発生装置及び方法
JP2894234B2 (ja) 波形データの音域割当装置
JP6455189B2 (ja) 波形読み込み装置、方法、プログラム、および電子楽器
US6040516A (en) Tone generation system using computer software and storage medium storing the computer software
JPH07121181A (ja) 音声情報処理装置
JP3003559B2 (ja) 楽音生成方法
JP3799711B2 (ja) 楽音発生方法および楽音発生装置
JP2000081883A (ja) 音楽処理手段の設定方法、波形デ―タ生成手段の設定方法、楽音生成方法、および、プログラムが記録された記録媒体
JP4096952B2 (ja) 楽音発生装置
JP3409642B2 (ja) 自動演奏装置、自動演奏データ処理方法及び電子的情報記憶媒体
JPH11202866A (ja) 楽音発生方法および楽音発生装置
JP3632744B2 (ja) 音生成方法
JP2641851B2 (ja) 自動演奏装置
JP3050779B2 (ja) 信号処理装置
JPH09319373A (ja) 楽音形成装置
JP7124370B2 (ja) 電子楽器、方法及びプログラム
JP3627590B2 (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