JP2002006844A - 楽音発生方法 - Google Patents

楽音発生方法

Info

Publication number
JP2002006844A
JP2002006844A JP2000187176A JP2000187176A JP2002006844A JP 2002006844 A JP2002006844 A JP 2002006844A JP 2000187176 A JP2000187176 A JP 2000187176A JP 2000187176 A JP2000187176 A JP 2000187176A JP 2002006844 A JP2002006844 A JP 2002006844A
Authority
JP
Japan
Prior art keywords
waveform data
musical tone
waveform
musical
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000187176A
Other languages
English (en)
Other versions
JP3781171B2 (ja
Inventor
Tadahiko Iketani
忠彦 池谷
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 JP2000187176A priority Critical patent/JP3781171B2/ja
Priority to US09/887,406 priority patent/US6414232B2/en
Publication of JP2002006844A publication Critical patent/JP2002006844A/ja
Application granted granted Critical
Publication of JP3781171B2 publication Critical patent/JP3781171B2/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/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • G10H1/185Channel-assigning means for polyphonic instruments associated with key multiplexing
    • G10H1/186Microprocessor-controlled keyboard and assigning means
    • 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
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/155Musical effects
    • G10H2210/245Ensemble, i.e. adding one or more voices, also instrumental voices
    • G10H2210/251Chorus, i.e. automatic generation of two or more extra voices added to the melody, e.g. by a chorus effect processor or multiple voice harmonizer, to produce a chorus or unison effect, wherein individual sounds from multiple sources with roughly the same timbre converge and are perceived as one
    • 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
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/155Musical effects
    • G10H2210/265Acoustic effect simulation, i.e. volume, spatial, resonance or reverberation effects added to a musical sound, usually by appropriate filtering or delays
    • G10H2210/281Reverberation or echo
    • 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/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/201Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
    • G10H2240/275Musical interface to a personal computer PCI bus, "peripheral component interconnect bus"
    • 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/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/291SCSI, i.e. Small Computer System 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
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/311MIDI transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】演算処理装置上で所定のソフトウエアを実行す
ることにより楽音を生成する際、演算処理装置の負荷が
増大したなどの理由で波形生成ができなかったときで
も、波形出力をとぎれさせ、あるいはノイズを発生する
ようなことのない楽音発生方法を提供することを目的と
する。 【解決手段】楽音発生指示を受け取り、受け取った楽音
発生指示に基づいて演算処理手段で波形生成ソフトウェ
アを実行することにより、複数チャンネルで楽音波形デ
ータをそれぞれ生成し、該複数チャンネルで生成された
楽音波形データを加算して1トラックの楽音波形データ
として出力する。このとき、現時点より後に出力される
予定の複数チャンネル分の楽音波形データを先行生成す
るとともに、該複数チャンネルで生成された楽音波形デ
ータを加算して1トラックの楽音波形データとしてバッ
ファ記憶手段に記憶しておく。波形生成できない事態が
発生した場合、その時点でバッファ記憶手段に先行生成
されている楽音波形データを出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、演算処理装置上
で所定のソフトウエアを実行することにより楽音を生成
する楽音発生方法に関する。
【0002】
【従来の技術】従来より、CPUなどの汎用の演算処理
装置上で所定のソフトウエアを実行することにより楽音
を生成する楽音発生方法が知られている。これは、いわ
ゆるソフトウエア音源あるいはソフト音源と呼ばれる方
式のものである。ソフト音源では、所定時間ごとに生成
プログラムを実行し、与えられた楽音制御データに基づ
いた複数チャンネル分の楽音を生成する。
【0003】
【発明が解決しようとする課題】ところで、ソフト音源
を実現するリアルタイムシステムでは、プロセッサの負
荷が増大したなどの理由で波形生成ができなくなった場
合に、音がとぎれる、あるいはノイズを発生する、とい
う問題点がある。
【0004】また、プロセッサの負荷が増大したなどの
理由で、演奏データが発生あるいは入力したタイミング
で当該演奏データの処理ができなかった場合、当該演奏
データは処理されないで済まされてしまうか、あるいは
後で処理を行なった場合に不自然な楽音制御になってし
まう、という問題点があった。
【0005】この発明は、上述の従来技術における問題
点に鑑み、プロセッサの負荷が増大したなどの理由で波
形生成ができなかったときでも、波形出力をとぎれさ
せ、あるいはノイズを発生するようなことのない楽音発
生方法を提供することを目的とする。
【0006】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、ソフトウェアを実行する演
算処理手段と、前記演算処理手段で実行するための波形
生成ソフトウェアを格納した記憶手段と、前記波形生成
ソフトウェアを実行することにより生成された波形デー
タを記憶するバッファ記憶手段とを備えた装置による楽
音発生方法であって、楽音発生指示を受け取るステップ
と、受け取った楽音発生指示に基づいて前記演算処理手
段で前記波形生成ソフトウェアを実行することにより、
楽音波形データを生成出力するとともに、現時点より後
に出力される予定の楽音波形データを先行生成するステ
ップと、前記先行生成された楽音波形データをバッファ
記憶手段に記憶するステップと、波形生成できない事態
が発生した場合、その時点で前記バッファ記憶手段に先
行生成されている楽音波形データを出力するステップ
と、前記楽音発生指示に基づく楽音波形データの先行生
成処理ができない事態が発生した場合に、その楽音発生
指示を待機しておくステップと、後に処理可能になった
ときに、前記待機してある楽音発生指示に基づく楽音波
形データの生成処理を行なうステップとを備えたことを
特徴とする。
【0007】請求項2に係る発明は、ソフトウェアを実
行する演算処理手段と、前記演算処理手段で実行するた
めの波形生成ソフトウェアを格納した記憶手段と、前記
波形生成ソフトウェアを実行することにより生成された
波形データを記憶するバッファ記憶手段とを備えた装置
による楽音発生方法であって、楽音発生指示を受け取る
ステップと、受け取った楽音発生指示に基づいて前記演
算処理手段で前記波形生成ソフトウェアを実行すること
により、楽音波形データを生成出力するとともに、現時
点より後に出力される予定の楽音波形データを先行生成
するステップと、前記先行生成された楽音波形データを
バッファ記憶手段に記憶するステップと、受け取った楽
音発生指示に基づいて現時点およびそれ以降の楽音波形
データを生成し、先行生成されバッファに記憶されてい
る楽音波形データに、生成した楽音波形データを足し込
むステップとを備えたことを特徴とする。
【0008】請求項3に係る発明は、ソフトウェアを実
行する演算処理手段と、前記演算処理手段で実行するた
めの波形生成ソフトウェアを格納した記憶手段と、前記
波形生成ソフトウェアを実行することにより生成された
波形データを記憶するバッファ記憶手段とを備えた装置
による楽音発生方法であって、楽音発生指示を受け取る
ステップと、受け取った楽音発生指示に基づいて前記演
算処理手段で前記波形生成ソフトウェアを実行すること
により、複数チャンネルで楽音波形データをそれぞれ生
成し、該複数チャンネルで生成された複数の楽音波形デ
ータをトラック単位でミキシングして、複数トラックの
楽音波形データとして出力するステップと、現時点より
後に出力される予定の複数チャンネル分の楽音波形デー
タを先行生成するとともに、該複数チャンネルで生成さ
れた複数の楽音波形データをトラック単位でミキシング
して、複数トラックの楽音波形データとしてバッファ記
憶手段に記憶するステップと、波形生成できない事態が
発生した場合、その時点で前記バッファ記憶手段に先行
生成されている楽音波形データを出力するステップとを
備えたことを特徴とする。
【0009】請求項4に係る発明は、請求項3に記載の
楽音発生方法において、さらにトラック制御データを受
け取るステップを備え、該トラック制御データに基づい
て、前記バッファ記憶手段に記憶された各トラックの楽
音波形データを制御して出力することを特徴とする。
【0010】請求項5に係る発明は、請求項3に記載の
楽音発生方法において、前記楽音波形データを先行生成
するステップは、過去に受け取った楽音発生開始指示に
基づいて楽音波形データを先行生成していることを特徴
とする。
【0011】請求項6に係る発明は、請求項3に記載の
楽音発生方法において、前記楽音波形データを先行生成
するステップは、自動演奏の曲データに基づいて楽音波
形データを先行生成していることを特徴とする。
【0012】請求項7に係る発明は、請求項1から3の
何れか1つに記載の楽音発生方法において、前記波形生
成ソフトウェアによる楽音生成の際、現時刻と楽音発生
開始時刻とを比較し、現時刻の発生開始時刻からの遅れ
が所定値より小さい場合は立ち上がり部から開始する楽
音波形データを生成し、前記遅れが所定値より大きい場
合は持続部から開始する楽音波形データを生成すること
を特徴とする。
【0013】本発明に係る楽音発生方法を適用すること
により、ソフトウェアを実行する演算処理手段と、前記
演算処理手段で実行するための波形生成ソフトウェアを
格納した記憶手段と、楽音発生指示を受け取る手段と、
受け取った楽音発生指示に基づいて前記演算処理手段で
前記波形生成ソフトウェアを実行することにより、楽音
波形データを生成出力するとともに、現時点より後に出
力される予定の楽音波形データを先行生成する手段と、
前記先行生成された楽音波形データを記憶するバッファ
記憶手段と、波形生成できない事態が発生した場合、そ
の時点で前記バッファ記憶手段に先行生成されている楽
音波形データを出力する手段とを備えたことを特徴とす
る楽音発生装置が得られる。
【0014】また、ソフトウェアを実行する演算処理手
段と、前記演算処理手段で実行するための波形生成ソフ
トウェアを格納した記憶手段と、楽音発生指示を受け取
る手段と、受け取った楽音発生指示に基づいて前記演算
処理手段で前記波形生成ソフトウェアを実行することに
より、複数チャンネルで楽音波形データをそれぞれ生成
し、該複数チャンネルで生成された楽音波形データを加
算して1トラックの楽音波形データとして出力する手段
と、現時点より後に出力される予定の複数チャンネル分
の楽音波形データを先行生成するとともに、該複数チャ
ンネルで生成された楽音波形データを加算して1トラッ
クの楽音波形データとしてバッファ記憶手段に記憶する
手段と、波形生成できない事態が発生した場合、その時
点で前記バッファ記憶手段に先行生成されている楽音波
形データを出力する手段とを備えたことを特徴とする楽
音発生装置が得られる。
【0015】また、さらに前記楽音発生指示に基づく楽
音波形データの先行生成処理ができない事態が発生した
場合に、その楽音発生指示を待機しておく手段と、後に
処理可能になったときに、前記待機してある楽音発生指
示に基づく楽音波形データの生成処理を行なう手段とを
備えたことを特徴とする楽音発生装置が得られる。
【0016】さらに、前記波形生成ソフトウェアによる
楽音生成の際、現時刻と楽音発生開始時刻とを比較し、
現時刻の発生開始時刻からの遅れが所定値より小さい場
合は立ち上がり部から開始する楽音波形データを生成
し、前記遅れが所定値より大きい場合は持続部から開始
する楽音波形データを生成することを特徴とする楽音発
生装置が得られる。
【0017】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0018】図1は、この発明に係る楽音発生方法を適
用した電子楽器の構成を示す。この電子楽器は、中央処
理装置(CPU)101、タイマ102、HOST(ホ
スト)−PCI(Peripheral Component Interconnec
t)ブリッジ103、リードオンリメモリ(ROM)1
04、ランダムアクセスメモリ(RAM)105、表示
用入出力(I/O)インタフェース106、表示器10
7、キーボードI/Oインターフェース108、キーボ
ード109、ローカルバス110、PCIバス111、
ネットワークI/Oインターフェース112、SCSI
(Small ComputerSystem Interface)114、ハードデ
ィスク115、MIDI(Musical Instruments Digita
l Interface)入出力インターフェース116、および
音声入出力ボード120を備えている。
【0019】CPU101は、この装置全体の動作を制
御する。タイマ102は、所定時間間隔でタイマ割り込
み信号を発生するためのタイマである。ホスト−PCI
ブリッジ103は、CPUやメモリを接続するローカル
バス110と周辺機器を接続するためのPCIバス11
1との間で各種信号の授受を制御する。ROM104
は、BIOS(BASIC INPUT/OUTPUT SYSTEM)などを格納
した記憶装置である。RAM105は、CPU101が
実行するプログラムをロードしたり各種バッファ領域を
確保する記憶領域である。RAM105には、再生用バ
ッファであるPCバッファ(後に詳述する)などが設け
られる。表示器107は、インターフェース106を介
して受け取った各種のデータを表示する。キーボード1
09は、インターフェース108を介して各種の情報を
入力するために用いるタイピングキーボードである。ユ
ーザは、キーボード109および表示器107を用いて
この装置に対し各種の設定操作や指示操作を行なうこと
ができる。ローカルバス110は、CPUの専用バスと
周辺I/Oなどを接続するためのローカルPCIバスと
の2つのバスにより構成するようにしてもよい。
【0020】PCIバス111には、各種の周辺機器が
接続される。ネットワークI/Oカード112を介して
外部のネットワーク113に接続することができる。ま
た、SCSI114を介してハードディスク115が接
続されている。音声入出力ボード120は、転送回路1
21、RAM122、転送回路123、ミキサ124、
マルチDSP(デジタルシグナルプロセッサ)125、
アナログ/デジタル(A/D)変換器126、デジタル
/アナログ(D/A)変換器128、タイミング発生器
130、カウンタ131、およびレジスタ群132を備
えている。なお、図1に図示しているように、RAM1
05をRAM1と、転送回路121を転送回路1と、R
AM122をRAM2と、転送回路123を転送回路2
と、それぞれ、呼ぶものとする。
【0021】転送回路1は、PCIバス111をいわゆ
るバースト的に使って複数サンプルを一辺に高速にRA
M2に転送するための回路である。RAM2は、再生用
バッファであるPバッファ、および録音用バッファであ
るRバッファを含む。これらのバッファは、複数設定さ
れている再生トラック(本例では4トラック)の各トラ
ックに対応して設けられている。1トラックのPバッフ
ァは、2個のバッファからなり、いわゆるダブルバッフ
ァ的になっている。トラックごとに、一方のバッファが
空いたとき転送回路1を経由して該バッファへのサンプ
ルの転送を開始し、そのとき他方のバッファは転送回路
2を経由してサンプル出力用に用いる。転送回路2によ
るサンプルの出力は、サンプリング周期ごとに継続的に
行なわれる。転送回路2は、RAM2のPバッファから
サンプルをミキサ124に転送し、あるいはミキサ12
4から出力された録音用のサンプルをRAM2のRバッ
ファに転送する機能を有する。該録音用サンプルのRバ
ッファへの転送も、サンプリング周期毎に行なわれる。
RAM2は、転送回路1と転送回路2により、時分割ア
クセスされる。1DACサイクル(例えば、44.1kHz)
を半分に分けて、その前半を転送回路1が使用し、後半
を転送回路2が使用する。
【0022】なお、RAM2上にある再生用のPバッフ
ァおよび録音用のRバッファに対する転送回路1のアク
セスは、CPU101のアクセスより優先度が高い。す
なわち、転送回路1がアクセスをしようとしたときにC
PU101がアクセスをしていたら、該CPU101の
アクセスが中断され、転送回路1によるアクセスが先に
行なわれる。ただし、転送回路1による転送動作は1D
ACの半分の期間は必ず休みになるので、CPU101
は最悪でも残りの期間を使用してアクセスすることがで
きる。
【0023】転送回路1および転送回路2は、タイミン
グ発生器130から出力されるタイミング信号に応じて
転送を実行する。タイミング発生器130は、カウンタ
131から出力されるカウント出力に応じてタイミング
信号を発生する。レジスタ群132は、転送アドレスな
どの各種データを保持するレジスタから構成されてい
る。
【0024】ミキサ124は、36系統の入力端子と2
4系統の出力端子を備え、それぞれの入力を適宜ミキシ
ングして、それぞれの出力端子に出力することができ
る。どの入力を用いてどの出力端子の出力信号を生成す
るかは、CPU101から指示することができる。マル
チDSP125は、複数のマイクロプログラムが動作す
るようになっており、楽音波形サンプルに対してエフェ
クト付与などの処理を行なう。A/D変換器126に
は、外部マイク127が接続される。A/D変換器12
6は、外部音を入力しアナログ/デジタル変換してミキ
サ124に出力する。ミキサ124からD/A変換器1
28に出力された楽音波形は、デジタルアナログ変換さ
れてサウンドシステム129により放音される。転送回
路2以降のミキサ124側の各部は、サンプリング周期
ごとの処理で動作する。
【0025】なお、本例では、CPU101は16チャ
ンネル分の楽音波形生成を行ない、それら16チャンネ
ル分の楽音波形データをRAM1上で4トラックにまと
め、その4トラック分の楽音波形データを転送回路1経
由でRAM2に転送する。具体的には、RAM1上に4
つのトラックに対応してPCバッファを設けてあり、1
6チャンネル分の楽音波形データを4つの各トラックの
PCバッファにまとめる。各トラックのPCバッファの
楽音波形データを、転送回路1経由でRAM2上の4つ
の各トラック対応のPバッファに転送する。4つの各ト
ラック対応のPバッファの楽音波形データを転送回路2
経由でミキサ124に入力する。ミキサ124は、転送
回路2から16系統入力可能であるが、ここでは4系統
のみ使用することになる。
【0026】図10に、ミキサ124とDSP125に
よるミキサ/エフェクト設定の一例を示す。PCB10
01〜1004は、RAM1上に設けられた4トラック
のPCバッファを示す。各PCバッファ1001〜10
04の楽音波形信号は、(転送回路1、RAM2上のP
バッファ、および転送回路2経由で)ミキサ124に入
力する。1011〜1013は、ミキサ124に設定さ
れている3つの個別のミキサである。コーラスエフェク
ト1021およびリバーブエフェクト1022は、DS
P125で実現されているエフェクト付与回路である。
DAC1031は、D/A変換器128に相当する。本
実施の形態では、ミキサの出力チャンネル数が充分ある
ので、各ラインはステレオ信号としてL/R別に処理す
ることができる。
【0027】各レジスタその他について簡単に説明す
る。なお、以下のレジスタで添字xを使っているもの
(すなわち[x]が付いているもの)は、そのxはトラ
ック番号を示すものとする。 (a)SA[x]:RAM1上に設けられる再生バッフ
ァであるPCバッファのスタートアドレスを格納するレ
ジスタである。 (b)EA[x]:RAM1上に設けられる再生バッフ
ァであるPCバッファのエンドアドレスを格納するレジ
スタである。 (c)TP[x]:PCバッファ上の波形データを読み
出してRAM2上のPバッファに転送するときの、PC
バッファ読み出しアドレスを格納するレジスタ(アドレ
スカウンタ)である。 (d)TWP[x]:PCバッファ上の波形データを読
み出してRAM2上のPバッファに転送するときの、P
バッファ書き込みアドレスを格納するレジスタ(アドレ
スカウンタ)である。 (e)APP[x]:サンプリング周期でPバッファ上
の波形データを読み出してミキサ124に出力するとき
の読み出しアドレスを格納するレジスタ(読み出しカウ
ンタ)である。 (f)ミキサデータ:ミキサ124に設定するデータで
ある。16トラックのミキシング比、A/D変換器12
6から入力する4トラックのミキシング比、DSP12
5から入力する16トラックのミキシング比などを規定
する。 (g)DSPデータ:DSP125に設定するデータで
ある。DSPで実行するマイクロプログラムや入出力関
係などを規定する。
【0028】なお、上記レジスタ類などの記号は、その
記憶領域そのものを示すとともに、その記憶領域に記憶
されたデータをも示すものとする。例えば、SA[x]
は、スタートアドレスを格納するレジスタを示すととも
に、該レジスタに格納されているスタートアドレスのデ
ータをも示すものとする。
【0029】図2に、再生用バッファの構成およびデー
タの流れを示す。上述したように、再生用バッファとし
て、RAM1上に4つのトラックに対応するPCバッフ
ァを設け、RAM2上に4つのトラックに対応するPバ
ッファを設けている。1トラック分(x=0,1,2,
3としてxトラック)のバッファの利用方法について説
明する。RAM1上のPCバッファは、スタートアドレ
スSA[x]からエンドアドレスEA[x]の範囲とな
る。スタートアドレスSA[x]とエンドアドレスEA
[x]は、CPU101から指定することが可能であ
り、したがってRAM1上の任意の位置にPCバッファ
を置くことができる。そのサイズも任意である。CPU
101は、このPCバッファ上に波形データを先行生成
する。PCバッファには、時間フレームで複数フレーム
分の波形データが先行生成される。TP[x]は、PC
バッファ上で、転送回路1がRAM2上のPバッファへ
と転送開始するアドレスを示す。
【0030】PCバッファのTP[x]位置から転送さ
れたデータは、Pバッファの書き込みアドレスTWP
[x]に書き込まれる。RAM2上のPバッファは、波
形データの128サンプル(ただし、バッファのサイズ
は任意)を格納するバッファを2個つなげた形になって
いる。Pバッファの波形データは、読み出しアドレスA
PP[x]から読み出され、ミキサ124に出力され
る。Pバッファのまん中と末尾には割込み位置が設定さ
れている。サンプリング周期ごとに読み出しアドレスA
PP[x]を進めながら波形サンプルを読み出していく
とき、当該読み出しアドレスAPP[x]が、この割込
み位置に至ったとき、いま読み出していたPバッファの
うちの半分が空になったということだから、波形生成の
トリガになるハード割込が発生する。このハード割込を
契機として、CPU101は、いま空になったPバッフ
ァのうちの半分に、次に再生すべきPCバッファの所定
の楽音波形データを転送する。
【0031】なお、リアルタイム演奏に使用できるため
には、演奏から楽音出力までの時間を10msec程度に抑え
ないといけない。サンプリング周波数44.1kHzの場合、1
0msecは441サンプルに相当する。ソフト音源では、
大体、2フレーム程度の時間遅れが発生する。そこで、
本実施の形態では、例えば、1フレームを128サンプ
ルとする。つまり、Pバッファのサイズは、128サン
プル×2=256サンプルである。
【0032】PCバッファには、先行して生成される楽
音波形が記憶される。先行して記憶できる楽音波形のサ
ンプル数が多いほど、ソフト音源のノイズ防止効果が大
になる。本実施の形態では、PCバッファのサイズを、
例えば、64フレーム分=128サンプル×64=8k
サンプル分とする。
【0033】図3は、CPU101の制御プログラムの
うちソフト音源に係るメインルーチンの処理手順を示
す。このメインルーチンは、ソフト音源のドライバとし
てオペレーティングシステムに登録されているものであ
る。ソフト音源を使用した楽音生成を行う際には、まず
このドライバ、すなわち図3の処理を起動し、ソフト音
源に係るAPIを有効にしておく。
【0034】図3において、ステップ301で、各種の
初期設定を行う。この初期設定で、上述のPCバッファ
およびPバッファをゼロクリアする。次に、ステップ3
02で何らかの起動要因があるか否かチェックし、ステ
ップ303で起動要因があればステップ304に進む。
起動要因がなければ再びステップ302に戻る。ステッ
プ302〜304の起動要因の受付が、ソフト音源に係
るAPIに対する指示受付に相当する。
【0035】ステップ304では、発生している起動要
因の種類を判別しそれぞれの処理に分岐する。起動要因
としては、MIDIデータを受信したとき(MIDI
−I/O割り込み)、RAM1上のMIDIデータを
格納するバッファ(以下、Mバッファと呼ぶ)にMID
Iデータがあるとき、1フレーム分(128サンプ
ル)の楽音生成処理が終了(すなわち、Pバッファの2
つのバッファのうちの1つについて波形データの読み出
し再生が終わった)したとき(Pバッファ割り込み)、
空き時間があるとき、何らかのスイッチ操作があっ
た場合などその他の場合、終了ボタンがクリックされ
たときがある。以下、これらの起動要因ごとに実行する
処理を説明する。
【0036】起動要因がMIDIインタフェース11
6を介してMIDIデータを受信した場合のときは、ス
テップ305のMIDI受信イベント処理を行い、その
後再びステップ302に戻る。MIDIデータの受信お
よびステップ305のMIDI受信イベント処理が、演
奏入力の受付に相当する。ステップ304で起動要因が
MバッファにMIDIデータがある場合のときは、ス
テップ306のMIDI制御イベント処理を行い、その
後再びステップ302に戻る。
【0037】ステップ302で起動要因がフレーム割
り込み(1フレーム再生完了)であるときは、ステップ
307の楽音生成処理を行い、その後再びステップ30
2に戻る。フレーム割り込みは、音源ボードが1フレー
ム再生完了する毎に発生するハードウェア割り込みであ
る。楽音生成処理では、一度に1フレーム分の波形デー
タ(Pバッファの大きさの半分に相当する数の波形サン
プル)を生成し、PCバッファに書き込む。
【0038】ステップ304で起動要因が空き時間あ
りであるとき(実行すべき処理がないとき)は、ステッ
プ308で空き時間処理を行い、その後再びステップ3
02に戻る。ステップ304で起動要因がスイッチ操
作などのその他の場合は、ステップ309でその他の処
理を行い、再びステップ302に戻る。ステップ304
で起動要因がソフト音源の終了要求であったときは、
ステップ310で終了処理を行った後、処理を終了す
る。
【0039】なお、上述した〜の起動要因は、>
>>>>の優先度を設定している。
【0040】図4は、図3のステップ305のMIDI
受信イベント処理の処理手順を示す。MIDI受信イベ
ント処理では、ステップ401でMIDIインタフェー
ス116からイベントデータEDを取り出し、ステップ
402でRAM1上のMバッファにイベントデータED
と受信時刻JTを書き込み、処理を終了する。
【0041】図5は、図3のステップ306のMIDI
制御イベント処理の処理手順を示す。MIDI制御イベ
ント処理では、まずステップ501でMバッファよりイ
ベントデータEDと受信時刻JTを取り出し、ステップ
502でイベントデータEDのデータ種別に応じて分岐
する。イベントデータEDがノートオンであったとき
は、ステップ503でノートオン処理を行う。イベント
データEDがノートオフであったときは、ステップ50
4でノートオフ処理を行う。イベントデータEDがトラ
ックのレベルデータであったときは、ステップ505で
トラックレベル制御処理を行う。イベントデータEDが
エフェクトレベルデータであったときは、ステップ50
6でエフェクトレベル制御処理を行う。イベントデータ
EDがピッチベンドデータであったときは、ステップ5
07でピッチベンド制御処理を行う。イベントデータE
Dがその他のデータであったときは、ステップ508で
その他の制御処理を行う。ステップ503〜508の各
処理の後、処理を終了する。
【0042】上述のステップ503〜507の処理は、
以下の3つのタイプに分けることができる。タイプ1の
処理は、ノートオン処理である。タイプ1の処理では、
PCバッファ上に先行生成されている楽音波形データ
に、新たに発音開始する楽音波形を追加する。タイプ2
は、ノートオフ処理、ピッチベンドレベル制御処理、お
よびビブラートレベル処理(その他制御処理508中)
である。タイプ2の処理では、先行生成されている楽音
波形を破棄し、生成し直す。タイプ3の処理は、トラッ
クレベル制御処理、エフェクトレベル制御処理、および
エフェクト切り替え処理(その他制御処理508中)で
ある。タイプ3の処理では、先行生成されている楽音波
形自体は何の変更も加える必要がない。ミキサ124に
設定する混合比を変更することにより、トラック別の音
量やエフェクトレベルを制御することができる(これら
を制御するための制御データが「トラック制御データ」
である)。DSP125のプログラムを変更すること
で、エフェクトの切り替えができる。
【0043】図6は、図5のステップ503のノートオ
ン処理の処理手順を示す。ノートオン処理に入ってきた
ときは、Mバッファより取り出したイベントデータED
とその受信時刻JTは分かっている。まずステップ60
1で、発音チャンネルの割り当てを行う。次にステップ
602で、現在時刻GTと先行時刻STとを比較し、先
行時刻STの方が時刻が進んでいるときはステップ60
5に進み、そうでないとき(作り置きしてある波形デー
タがないとき)はステップ603に進む。先行時刻ST
とは、PCバッファ上に先行生成してある波形データに
ついて、いつの時点まで先行生成してあるかを示すデー
タである。
【0044】現在時刻GTより先行時刻STがあとのと
きは、先行生成してあるデータがあるということだか
ら、ステップ605で、当該ノートオンの前のノートオ
ンが来ていて先行生成してある波形にさらに後追いの波
形を追加中か否か(すなわち、該前のノートオンに応じ
て今回割り当てたのとは別の発音チャンネルに関して既
にステップ606,607が実行され、波形の追加が実
行中であるか否か)判定する。これは、いったん追加を
始めたらそれを続けないと音が連続しないので、そちら
を優先して実行するための判別処理である。追加中であ
るときは、ステップ608で、イベントデータEDと受
信時刻JTと発音割り当てしたチャンネル番号とをTバ
ッファに格納し、追加発音開始待ちに設定する。これ
は、先に追加実行中の波形を処理しなくてはいけないか
らである。なお、Tバッファとは、追加発音開始待ち状
態のデータを格納しておくRAM1上のバッファであ
る。ステップ608の後、処理を終了する。
【0045】ステップ605で追加中でないときは、ス
テップ606で、今回のノートオンの波形を追加する。
すなわち、発音割り当てしたチャンネルの発音制御レジ
スタに、立ち上がりからの発音制御データの設定(時間
遅れが小のとき)、または持続部以降の発音制御データ
の設定(時間遅れが大のとき)を行う。次にステップ6
07で、そのチャンネルに追加の発音開始を指示する。
このとき、追加時刻TTには現在時刻GTをセットし、
レジスタkにチャンネル番号をセットする。追加時刻T
Tとは、先行生成してある波形データに対して新たな波
形を追加開始する時点を示すデータである。kはチャン
ネル番号を格納するワークレジスタである。ステップ6
07の後、処理を終了する。
【0046】ステップ602で先行生成してある波形デ
ータがないときは、ステップ603で、今回のノートオ
ンの波形を追加する。すなわち、発音割り当てしたチャ
ンネルの発音制御レジスタに、立ち上がりからの発音制
御データの設定(時間遅れが小のとき)、または持続部
以降の発音制御データの設定(時間遅れが大のとき)を
行う。次にステップ604で、割り当てたチャンネルに
通常の発音開始を指示し、処理を終了する。
【0047】なお、発音割り当てしたチャンネルの発音
制御レジスタに発音制御データを設定する場合の時間遅
れの判定は、現在時刻GTと受信時刻JT(発音開始す
べき時刻といってもよい)とを比較し、例えば受信時点
から100msec程度以上遅れたら時間遅れ大とし、そうで
なければ小とする、などの方式を採ればよい。
【0048】図7は、図5のステップ504のノートオ
フ処理の処理手順を示す。ステップ701で、発音中の
チャンネルからノートオフすべきチャンネルを検出す
る。ステップ702でノートオフすべきチャンネルが有
るか否か判定し、無かったときは、入力したノートオフ
を無視して処理を終了する。有ったときは、ステップ7
03で、そのチャンネルの発音制御レジスタにノートオ
フを書き込む。次にステップ704で、現在時刻GTと
先行時刻STとを比較する。先行して生成してある波形
データがあるときは、その先行生成波形についても当該
チャンネルをノートオフした波形に変更しなければなら
ないので、ステップ705で当該チャンネルの波形を足
し込んであったトラックのPCバッファの現在時刻GT
+1以降の波形をキャンセルし、波形の再形成を指示し
て処理を終了する。ステップ704で先行生成している
波形がないときは、そのまま処理を終了する。
【0049】図8は、図3のステップ308の空き時間
処理の処理手順を示す。まずステップ801で、追加が
あるか否か(すなわち、図6のステップ607の指示が
あるか否か)判定する。追加があるときは、ステップ8
02で追加時刻TTに1加算する。次にステップ803
で、追加するチャンネルであるkチャンネルの時刻TT
の楽音波形を生成し、ステップ804で、そのチャンネ
ルの楽音波形を足し込むべきトラックのPCバッファの
時刻TTの位置に足し込む。ステップ805で、追加時
刻TTと先行時刻STとが一致しているか否か判定し、
一致しているときは以降の波形生成の必要がないので、
ステップ806で、Tバッファを参照して追加発音開始
待ち(ステップ608で設定)があるか否か判定する。
【0050】ステップ806で追加発音開始待ちがある
ときは、ステップ807で、追加待ちのイベントデータ
EDと現在時刻GTとチャンネル番号とをTバッファか
ら取り出し、現在時刻GTを追加時刻TTに、チャンネ
ル番号をレジスタkに、それぞれセットする。追加発音
待ちがないときは、次回のステップ801で「追加な
し」と判断されるように設定を行ない、ステップ809
へ進む。ステップ807の後、ステップ808で、kチ
ャンネルの発音制御レジスタに、立ち上がりからの発音
制御データの設定(時間遅れ小のとき)、または持続部
以降の発音制御データの設定(時間遅れ大のとき)の処
理を行う。次にステップ809で、空き時間があるか否
か判定し、空き時間があるときはステップ801に戻っ
て、空き時間処理を継続する。空き時間がないときは、
そのまま処理を終了する。
【0051】ステップ801で追加がないときは、ステ
ップ811で、ノートオフでのキャンセル指示(ステッ
プ705の指示)があるか否か判定する。キャンセルが
あるときは、ステップ812で、キャンセルされたトラ
ックに対応する複数チャンネルの波形を再形成し、同ト
ラックのPCバッファに書き込む。この処理は、追加と
同様に複数回の処理で行う。ステップ812の後、ステ
ップ809に進む。
【0052】ステップ811でキャンセルがないとき
は、ステップ813で、先行時刻ST(現在作成中の時
刻)までの全発音チャンネルの波形データが生成済か否
か判定する。生成済であるときは、ステップ814で、
PCバッファに空きがあるか否か判定し、空きがないと
きは処理を終了する。PCバッファに空きがあるとき
は、ステップ815で先行時刻STに1加算し、ステッ
プ816で先行時刻STの曲データを再生する。これは
イベントデータEDが再生された場合は対応する制御処
理を実行するものであり、自動演奏を再生する処理であ
る。例えば、ノートオンのイベントが再生されたら、発
音チャンネルを割り当て、割り当てたチャンネルの発音
制御レジスタに該ノートオンに応じた楽音の発音制御デ
ータを設定し、発音開始を指示する。また、ノートオフ
イベントが再生されたら、対応する楽音を生成中の発音
チャンネルを検出して、検出されたチャンネルの発音制
御レジスタにノートオフを書き込む。次にステップ81
7で先行時刻STの全トラックのPCバッファをクリア
する。これは今から作る波形を書き込むためのバッファ
を全部ゼロクリアする処理である。ステップ817の
後、ステップ818に進む。ステップ813で先行時刻
STの全発音チャンネル生成済でないときは、ステップ
818に進む。
【0053】ステップ818でレジスタjに未生成のチ
ャンネル番号をセットし、ステップ819でjチャンネ
ルの楽音波形を生成する。次にステップ820で、生成
した楽音波形を、当該チャンネルの波形を足し込むべき
トラックのPCバッファの先行時刻STの位置に足し込
み、ステップ809に進む。
【0054】図9は、図3のステップ307の楽音生成
処理の処理手順を示す。まずステップ901で、現在時
刻GTに1加算する。次にステップ902で、現在時刻
GTと先行時刻STとを比較する。現在時刻GTが先行
時刻STより進んでいるとき、すなわち先行波形が全く
できていないときは、ステップ903で先行時刻STに
現在時刻GTをセットし、ステップ912で先行時刻S
Tの曲データを再生し、ステップ904で全トラックの
PCバッファの先行時刻STの位置をゼロクリアし、ス
テップ905に進む。なお、ステップ912は、ステッ
プ816と同様の処理である。ステップ902で現在時
刻GTと先行時刻STとが一致しているときは、そのま
まステップ905に進む。
【0055】ステップ902で現在時刻GTより先行時
刻STが進んでいるときは、先行して波形が作ってある
ということだから、ステップ910に進み、追加キャン
セル(図7のステップ705の指示)があるか否か判定
する。追加キャンセルがあれば、先行時刻STは進んで
いるが、まだ手直しが必要ということであるから、手直
し分を作るためステップ905に進む。ステップ910
で追加キャンセルがなければ、先行波形は完成されてい
るということだから、そのまま再生するためステップ9
11に進む。
【0056】ステップ905では、波形データを先行生
成する時間があるか否か判定する。生成する時間がある
ときは、ステップ906で、現在時刻GTの全発音チャ
ンネル生成済か否か判定する。ステップ905で生成時
間がないとき、またはステップ906で現在時刻GTの
全発音チャンネルが生成済であったときは、ステップ9
11に進み、現在時刻GTの全トラックのPCバッファ
の再生許可を行ない、処理を終了する。ステップ906
で現在時刻GTの全発音チャンネル生成済でないとき
は、ステップ907でレジスタiに未生成のチャンネル
番号をセットし、ステップ908でiチャンネルの楽音
波形を生成し、ステップ909で生成した楽音波形をそ
のチャンネルの波形を足し込むべきPCバッファの現在
時刻GTの位置に足し込み、ステップ905に戻る。ス
テップ911の再生許可により、PCバッファの現在時
刻GTの波形データが空になったPバッファに転送され
次の再生に用いられる。
【0057】上記実施の形態において、曲データに基づ
く自動演奏は、図8のステップ816に示されている。
一方、図6および図7には、リアルタイムに入力するM
IDIデータに基づくノートオン/ノートオフ処理が示
されている。図9のステップ905〜909の処理、図
8のステップ812、ステップ803〜804、ステッ
プ818〜820の処理は、それぞれ、それらのノート
オン等のイベントに応じて発音制御レジスタに設定され
た発音チャンネルの発音制御データに基づいて、対応す
る楽音波形データを形成する処理である。
【0058】上記実施の形態では、空き時間処理で先行
して波形生成を行ない、Pバッファのうちの半分のバッ
ファが空になったときに先行生成してある波形を楽音生
成処理でPバッファに転送し、再生することができる。
この際、例えば空き時間処理では空き時間が足りなくて
も必要なチャンネルの波形生成ができない事態が発生し
ても、処理できる限りのチャンネルについては波形生成
してPCバッファに足し込むので、その時点で先行生成
してある波形データで再生される。したがって、波形生
成ができなくなっても、音が途切れるあるいはノイズを
発生すると言うことはない。また、既に先行生成されて
いる波形に対して、追加の発音制御データが発生した場
合、その追加分について波形生成して既に先行生成され
ている波形に足し込むので、追加の発音も適正に処理さ
れる。
【0059】さらに、例えば追加が指示されているとき
にさらに次の追加が来たときなど、ノートオンの処理が
できない事態が発生した場合は、その時刻とノートオン
を追加発音開始待ちとしてTバッファに格納して待機し
ておき、後に処理可能になったときに、そのノートオン
を処理する。したがって、ノートオンの処理ができない
事態が発生した場合でも、後でできる限りの追加分の処
理が為される。
【0060】また、発音開始指示においては楽音の発生
開始すべき時刻からの遅れを検出し、遅れが小さい場合
は立ち上がり部から開始する楽音を生成し、遅れが大き
い場合は持続部から開始する楽音を生成しているので、
不自然な楽音にならない。
【0061】
【発明の効果】以上説明したように、この発明によれ
ば、空き時間などに先行して波形生成を行ない、波形生
成できない事態が発生した場合に、その時点で先行生成
してある波形データを出力するので、リアルタイムシス
テムでプロセッサの負荷が増大したなどの理由で波形生
成ができなくなった場合に、音がとぎれる、あるいはノ
イズを発生するといった不自然な楽音制御を抑えること
ができる。また、受け付けた楽音発生指示に対して楽音
生成処理ができない事態が発生した場合、その楽音発生
指示を待機しておき、後に処理可能になったときに処理
するようにしているので、後でできる限りの追加分の処
理が実行され、楽音発生指示を捨ててしまうことを極力
なくすことができる。さらに、楽音発生開始すべき時刻
からの遅れを検出し、遅れが小さいときは立ち上がり部
から開始する楽音を生成し、遅れが大きいときは持続部
から開始する楽音を生成するので、不自然な楽音になら
ないという効果がある。
【図面の簡単な説明】
【図1】この発明に係る楽音発生方法を適用した電子楽
器の構成図
【図2】再生用バッファの構成およびデータの流れを示
す図
【図3】ソフト音源に係るメインルーチンの処理手順を
示すフローチャート図
【図4】MIDI受信イベント処理の処理手順を示すフ
ローチャート図
【図5】MIDI制御イベント処理の処理手順を示すフ
ローチャート図
【図6】ノートオン処理の処理手順を示すフローチャー
ト図
【図7】ノートオフ処理の処理手順を示すフローチャー
ト図
【図8】空き時間処理の処理手順を示すフローチャート
【図9】楽音生成処理の処理手順を示すフローチャート
【図10】ミキサ/エフェクト設定の一例を示す図
【符号の説明】
101…CPU(中央処理装置)、102…タイマ、1
03…、HOST(ホスト)−PCI(Peripheral Com
ponent Interconnect)ブリッジ、104…リードオン
リメモリ、105…ランダムアクセスメモリ(RA
M)、106…表示用入出力(I/O)インタフェー
ス、107…表示器、108…キーボードI/Oインタ
ーフェース、109…キーボード、110…ローカルバ
ス、111…PCIバス、112…ネットワークI/O
インターフェース、114…SCSI(Small Computer
System Interface)、115…ハードディスク、11
6…MIDIインターフェース。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】ソフトウェアを実行する演算処理手段と、
    前記演算処理手段で実行するための波形生成ソフトウェ
    アを格納した記憶手段と、前記波形生成ソフトウェアを
    実行することにより生成された波形データを記憶するバ
    ッファ記憶手段とを備えた装置による楽音発生方法であ
    って、 楽音発生指示を受け取るステップと、 受け取った楽音発生指示に基づいて前記演算処理手段で
    前記波形生成ソフトウェアを実行することにより、楽音
    波形データを生成出力するとともに、現時点より後に出
    力される予定の楽音波形データを先行生成するステップ
    と、 前記先行生成された楽音波形データをバッファ記憶手段
    に記憶するステップと、 波形生成できない事態が発生した場合、その時点で前記
    バッファ記憶手段に先行生成されている楽音波形データ
    を出力するステップと、 前記楽音発生指示に基づく楽音波形データの先行生成処
    理ができない事態が発生した場合に、その楽音発生指示
    を待機しておくステップと、 後に処理可能になったときに、前記待機してある楽音発
    生指示に基づく楽音波形データの生成処理を行なうステ
    ップとを備えたことを特徴とする楽音発生方法。
  2. 【請求項2】ソフトウェアを実行する演算処理手段と、
    前記演算処理手段で実行するための波形生成ソフトウェ
    アを格納した記憶手段と、前記波形生成ソフトウェアを
    実行することにより生成された波形データを記憶するバ
    ッファ記憶手段とを備えた装置による楽音発生方法であ
    って、 楽音発生指示を受け取るステップと、 受け取った楽音発生指示に基づいて前記演算処理手段で
    前記波形生成ソフトウェアを実行することにより、楽音
    波形データを生成出力するとともに、現時点より後に出
    力される予定の楽音波形データを先行生成するステップ
    と、 前記先行生成された楽音波形データをバッファ記憶手段
    に記憶するステップと、 受け取った楽音発生指示に基づいて現時点およびそれ以
    降の楽音波形データを生成し、先行生成されバッファに
    記憶されている楽音波形データに、生成した楽音波形デ
    ータを足し込むステップとを備えたことを特徴とする楽
    音発生方法。
  3. 【請求項3】ソフトウェアを実行する演算処理手段と、
    前記演算処理手段で実行するための波形生成ソフトウェ
    アを格納した記憶手段と、前記波形生成ソフトウェアを
    実行することにより生成された波形データを記憶するバ
    ッファ記憶手段とを備えた装置による楽音発生方法であ
    って、 楽音発生指示を受け取るステップと、 受け取った楽音発生指示に基づいて前記演算処理手段で
    前記波形生成ソフトウェアを実行することにより、複数
    チャンネルで楽音波形データをそれぞれ生成し、該複数
    チャンネルで生成された複数の楽音波形データをトラッ
    ク単位でミキシングして、複数トラックの楽音波形デー
    タとして出力するステップと、 現時点より後に出力される予定の複数チャンネル分の楽
    音波形データを先行生成するとともに、該複数チャンネ
    ルで生成された複数の楽音波形データをトラック単位で
    ミキシングして、複数トラックの楽音波形データとして
    バッファ記憶手段に記憶するステップと、 波形生成できない事態が発生した場合、その時点で前記
    バッファ記憶手段に先行生成されている楽音波形データ
    を出力するステップとを備えたことを特徴とする楽音発
    生方法。
  4. 【請求項4】請求項3に記載の楽音発生方法において、 さらにトラック制御データを受け取るステップを備え、
    該トラック制御データに基づいて、前記バッファ記憶手
    段に記憶された各トラックの楽音波形データを制御して
    出力することを特徴とする楽音発生方法。
  5. 【請求項5】請求項3に記載の楽音発生方法において、 前記楽音波形データを先行生成するステップは、過去に
    受け取った楽音発生開始指示に基づいて楽音波形データ
    を先行生成していることを特徴とする楽音発生方法。
  6. 【請求項6】請求項3に記載の楽音発生方法において、 前記楽音波形データを先行生成するステップは、自動演
    奏の曲データに基づいて楽音波形データを先行生成して
    いることを特徴とする楽音発生方法。
  7. 【請求項7】請求項1から3の何れか1つに記載の楽音
    発生方法において、 前記波形生成ソフトウェアによる楽音生成の際、現時刻
    と楽音発生開始時刻とを比較し、現時刻の発生開始時刻
    からの遅れが所定値より小さい場合は立ち上がり部から
    開始する楽音波形データを生成し、前記遅れが所定値よ
    り大きい場合は持続部から開始する楽音波形データを生
    成することを特徴とする楽音発生方法。
JP2000187176A 2000-06-22 2000-06-22 楽音発生方法 Expired - Fee Related JP3781171B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000187176A JP3781171B2 (ja) 2000-06-22 2000-06-22 楽音発生方法
US09/887,406 US6414232B2 (en) 2000-06-22 2001-06-21 Tone generation method and apparatus based on software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000187176A JP3781171B2 (ja) 2000-06-22 2000-06-22 楽音発生方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005195599A Division JP2005292858A (ja) 2005-07-04 2005-07-04 楽音発生方法及び装置

Publications (2)

Publication Number Publication Date
JP2002006844A true JP2002006844A (ja) 2002-01-11
JP3781171B2 JP3781171B2 (ja) 2006-05-31

Family

ID=18687199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000187176A Expired - Fee Related JP3781171B2 (ja) 2000-06-22 2000-06-22 楽音発生方法

Country Status (2)

Country Link
US (1) US6414232B2 (ja)
JP (1) JP3781171B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006030517A (ja) * 2004-07-15 2006-02-02 Yamaha Corp 発音割当装置
US7326847B1 (en) * 2004-11-30 2008-02-05 Mediatek Incorporation Methods and systems for dynamic channel allocation
US7420115B2 (en) * 2004-12-28 2008-09-02 Yamaha Corporation Memory access controller for musical sound generating system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0743631B1 (en) * 1995-05-19 2002-03-06 Yamaha Corporation Tone generating method and device
JP3267106B2 (ja) 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
JP2924745B2 (ja) * 1995-10-20 1999-07-26 ヤマハ株式会社 楽音発生装置及び方法
JP2962217B2 (ja) 1995-11-22 1999-10-12 ヤマハ株式会社 楽音生成装置及び方法
JP2904088B2 (ja) * 1995-12-21 1999-06-14 ヤマハ株式会社 楽音生成方法および装置
JP3293474B2 (ja) 1996-06-06 2002-06-17 ヤマハ株式会社 楽音発生方法
SG67993A1 (en) * 1996-08-30 1999-10-19 Yamaha Corp Sound source system based on computer software and method of generating acoustic waveform data
US5913258A (en) * 1997-03-11 1999-06-15 Yamaha Corporation Music tone generating method by waveform synthesis with advance parameter computation

Also Published As

Publication number Publication date
US20010054348A1 (en) 2001-12-27
JP3781171B2 (ja) 2006-05-31
US6414232B2 (en) 2002-07-02

Similar Documents

Publication Publication Date Title
JP3149093B2 (ja) 自動演奏装置
US6366971B1 (en) Audio system for playback of waveform sample data
JP3293434B2 (ja) 楽音発生方法
JP2001005459A (ja) 楽音合成装置及び方法
JP3781171B2 (ja) 楽音発生方法
JPH09244650A (ja) 楽音合成装置及び方法
JP3152198B2 (ja) 楽音発生方法および楽音発生装置
JPH07121181A (ja) 音声情報処理装置
JP3572847B2 (ja) コンピュータソフトウェアを用いた音源システム及び方法
JP4096952B2 (ja) 楽音発生装置
JP3978928B2 (ja) 楽音生成装置
JP2005292858A (ja) 楽音発生方法及び装置
JPH07325581A (ja) 楽音発生装置
JPH10207465A (ja) 楽音発生方法および楽音発生装置
JP3036417B2 (ja) 信号処理装置
JP3991475B2 (ja) 音声データ処理装置およびコンピュータシステム
JPH02135564A (ja) データ処理装置
JPH10312189A (ja) 楽音発生方法
JP3060920B2 (ja) ディジタル信号処理装置
JP3705203B2 (ja) 楽音発生方法
JP2004157350A (ja) 演奏情報処理方法、演奏情報処理装置およびプログラム
JP2000122668A (ja) デジタル音声データ処理装置およびコンピュータシステム
JPH06259249A (ja) 信号処理装置
JP4096405B2 (ja) カラオケ装置
JPH0981134A (ja) 信号処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060301

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees