JP2002287757A - Sound data transfer method and sound data transfer apparatus, and program - Google Patents

Sound data transfer method and sound data transfer apparatus, and program

Info

Publication number
JP2002287757A
JP2002287757A JP2001086166A JP2001086166A JP2002287757A JP 2002287757 A JP2002287757 A JP 2002287757A JP 2001086166 A JP2001086166 A JP 2001086166A JP 2001086166 A JP2001086166 A JP 2001086166A JP 2002287757 A JP2002287757 A JP 2002287757A
Authority
JP
Japan
Prior art keywords
data
waveform
sound data
vector
sound
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
JP2001086166A
Other languages
Japanese (ja)
Other versions
JP2002287757A5 (en
JP3630107B2 (en
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 JP2001086166A priority Critical patent/JP3630107B2/en
Priority to US10/098,670 priority patent/US6576827B2/en
Priority to TW091104809A priority patent/TWI228704B/en
Priority to EP09180304A priority patent/EP2175440A3/en
Priority to EP02005887.1A priority patent/EP1260964B1/en
Priority to SG200201610A priority patent/SG102667A1/en
Priority to CN2006100735605A priority patent/CN1838234B/en
Priority to CNB021080259A priority patent/CN1258751C/en
Publication of JP2002287757A publication Critical patent/JP2002287757A/en
Priority to HK02109273.7A priority patent/HK1048011B/en
Application granted granted Critical
Publication of JP3630107B2 publication Critical patent/JP3630107B2/en
Publication of JP2002287757A5 publication Critical patent/JP2002287757A5/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a method and a device for sound data transfer and a program, which have a high use efficiency of a RAM and can generate a musical sound signal in real time, in spite of using a hard disk or the like. SOLUTION: When program change of playing data is supplied, candidates of sound data in an attack part corresponding to this program change are forecasted and read out (step S30). When note-on is next supplied and waveform synthesis in the attack part is started, candidates of sound data in a following body part are forecasted and read out (S31). Sound data which will be used next is successively forecasted and is read into a cache memory in advance in this manner when sound data concerned with present waveform synthesis is settled. Consequently, waveform synthesis can be quickly executed when sound data is actually settled.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、ハードディスク
等、比較的低速な記憶媒体からの波形データの読み出し
等に基づき、楽音あるいは音声若しくはその他任意の音
の波形を生成する音データ転送方法、音データ転送装置
およびプログラムに関し、特に、演奏者により行われた
自然楽器固有の各種奏法若しくはアーティキュレーショ
ンによる音色変化を忠実に表現した波形を生成するもの
に関する。この発明は、電子楽器は勿論のこと、自動演
奏装置、コンピュータ、電子ゲーム装置その他のマルチ
メディア機器等、楽音あるいは音声若しくはその他任意
の音を発生する機能を有するあらゆる分野の機器若しく
は装置または方法において広範囲に応用できるものであ
る。なお、この明細書において、楽音波形という場合、
音楽的な音の波形に限るものではなく、音声あるいはそ
の他任意の音の波形を含んでいてもよい意味合いで用い
るものとする。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a sound data transfer method for generating a waveform of a musical tone, voice, or any other sound based on reading of waveform data from a relatively low-speed storage medium such as a hard disk, and the like. The present invention relates to a transfer device and a program, and more particularly to a transfer device and a program for generating a waveform that faithfully expresses a timbre change caused by various playing techniques or articulations performed by a player. The present invention is applicable to not only electronic musical instruments but also apparatuses, apparatuses, or methods in all fields having a function of generating musical sounds, voices, or other arbitrary sounds, such as automatic performance devices, computers, electronic game devices, and other multimedia devices. It can be widely applied. In this specification, when referring to a musical sound waveform,
The waveform is not limited to a musical sound waveform, but may be a sound or any other sound waveform.

【0002】[0002]

【従来の技術】波形メモリにおいて、PCM(パルス符
号変調)あるいはDPCM(差分PCM)又はADPC
M(適応差分PCM)等の任意の符号化方式で符号化し
た波形データ(つまり波形サンプルデータ)を記憶して
おき、これを所望の音楽ピッチに対応して読み出すこと
により、楽音波形を形成するようにした、いわゆる「波
形メモリ読み出し」技術は既に公知であり、また、様々
なタイプの「波形メモリ読み出し方式」技術が知られて
いる。従来知られた「波形メモリ読み出し方式」技術の
ほとんどは、発音開始から終了までの1つの音の波形を
発生するためのものである。一例として、発音開始から
終了までの1音の全波形の波形データを記憶する方式が
ある。また、別の例として、変化の複雑なアタック部な
どについてはその全波形の波形データを記憶し、変化の
あまりないサステイン部などについては所定のループ波
形を記憶する方式がある。なお、本明細書において、
「ループ波形」とは繰り返し読出し(ループ読出し)さ
れる波形という意味で用いるものとする。
2. Description of the Related Art PCM (pulse code modulation), DPCM (differential PCM) or ADPC
M (adaptive differential PCM) or the like, waveform data (that is, waveform sample data) encoded by an arbitrary encoding method is stored and read out in correspondence with a desired music pitch to form a musical tone waveform. The so-called "waveform memory readout" technique is already known, and various types of "waveform memory readout technique" are known. Most of the conventionally known "waveform memory reading method" techniques generate a waveform of one sound from the start to the end of sounding. As an example, there is a method of storing waveform data of the entire waveform of one sound from the start to the end of sounding. As another example, there is a method of storing waveform data of all the waveforms of an attack portion having a complicated change and the like, and storing a predetermined loop waveform for a sustain portion having little change. In this specification,
The “loop waveform” is used to mean a waveform that is repeatedly read (loop read).

【0003】波形データを記憶するための手段として
は、ROM、RAM、ハードディスク、CD−ROM等
が知られている。ハードディスク、CD−ROM等は単
位記憶容量あたりの単価が安価であり大容量のデータ記
憶に適している。しかし、ハードディスク等はアクセス
時間が遅く、かつ一定していないため、楽音信号を出力
するタイミングで必要な波形データを即座に読み出すこ
とは不可能である。このため、以下のように様々な技術
が提案されている。まず、特開平6−308964号公
報においては、ハードディスク等に記憶した複数の波形
データの先頭部分を予めRAMに転送しておく技術が開
示されている。すなわち、発音指示が供給されると、ハ
ードディスク等の当該波形データの後続部分の読み出し
が開始されるとともに予めRAMに記憶された先頭部分
が再生される。そして、先頭部分の再生が終了した後
に、後続部分の波形データが再生されるのである。
[0003] As means for storing waveform data, ROM, RAM, hard disk, CD-ROM and the like are known. Hard disks, CD-ROMs, and the like are inexpensive per unit storage capacity and are suitable for large-capacity data storage. However, since the access time of a hard disk or the like is slow and not constant, it is impossible to immediately read necessary waveform data at the timing of outputting a tone signal. For this reason, various techniques have been proposed as follows. First, Japanese Patent Laying-Open No. 6-308964 discloses a technique in which head portions of a plurality of waveform data stored in a hard disk or the like are transferred to a RAM in advance. That is, when the sounding instruction is supplied, the reading of the subsequent portion of the waveform data from the hard disk or the like is started, and the leading portion stored in the RAM in advance is reproduced. Then, after the reproduction of the head portion is completed, the waveform data of the subsequent portion is reproduced.

【0004】また、特開昭63−181188号公報に
おいては、順次発音すべき波形データがシーケンスデー
タとして予め定義されている場合に、各波形データを順
次読み出しながら再生する技術が開示されている。この
技術においては、各波形データの読出しを開始する時刻
が発音タイミングよりも早くなるように、シーケンスタ
イミングに対応して予め定められる。
Japanese Patent Application Laid-Open No. 63-181188 discloses a technique in which, when waveform data to be sequentially emitted is defined in advance as sequence data, each waveform data is reproduced while sequentially reading the data. In this technique, the time at which the reading of each waveform data is started is determined in advance in accordance with the sequence timing such that the time at which reading of each waveform data is started is earlier than the sounding timing.

【0005】[0005]

【発明が解決しようとする課題】しかし、特開平6−3
08964号公報に係る技術によれば、予め全ての波形
データの先頭部分を予めRAMに転送しておく必要があ
るため、RAMの使用効率が低くなるという問題があっ
た。また、特開昭63−181188号公報に係る技術
は、ノンリアルタイムで楽音信号を生成することを前提
としており、シーケンスデータがリアルタイムで供給さ
れる場合において適用することは不可能である。本発明
は上述した事情に鑑みてなされたものであり、RAMの
使用効率が高く、しかもハードディスク等を用いながら
もリアルタイムに楽音信号を生成することができる音デ
ータ転送方法、音データ転送装置およびプログラムを提
供することを目的としている。
However, Japanese Patent Laid-Open No. 6-3 / 1994
According to the technique disclosed in Japanese Patent Application Laid-Open No. 08964, there is a problem that the use efficiency of the RAM is reduced because the leading portion of all the waveform data must be transferred to the RAM in advance. The technique disclosed in Japanese Patent Application Laid-Open No. 63-181188 is based on the premise that a tone signal is generated in non-real time, and cannot be applied when sequence data is supplied in real time. The present invention has been made in view of the above circumstances, and has a high use efficiency of a RAM, and a sound data transfer method, a sound data transfer apparatus, and a program capable of generating a tone signal in real time while using a hard disk or the like. It is intended to provide.

【0006】[0006]

【課題を解決するための手段】上記課題を解決するため
本発明にあっては、下記構成を具備することを特徴とす
る。なお、括弧内は例示である。請求項1記載の構成に
あっては、楽音波形の音データ(ベクトルデータ)を記
憶する低速記憶装置(ハードディスク109)と、該音
データをキャッシングする高速記憶装置(キャッシュメ
モリ44)とを用いて、前記低速記憶装置に記憶された
音データのうちの一部を前記高速記憶装置に転送する音
データ転送方法であって、前記高速記憶装置に転送され
るべき音データに係る音色指定(プログラムチェンジ)
を受信する音色指定受信過程と、該受信した音色指定に
基づいて、後に指定される音データの候補を予測する音
データ予測過程(ステップS30)と、該予測した音デ
ータの候補を前記低速記憶装置から前記高速記憶装置に
転送する過程(ステップS43)とを有することを特徴
とする。さらに、請求項2記載の構成にあっては、請求
項1記載の音データ転送方法において、前記低速記憶装
置に記憶されている音データは発音開始部(アタック
部)に対応する第1音データと発音開始部以外の部分に
対応する第2音データ(ボディ部のベクトルデータ)と
を含み、前記音色指定に応じて予測される音データは該
第1音データであり、何れかの第1音データの指定を受
信する第1音データ指定受信過程と、該第1音データの
指定に基づいて、後に指定される第2音データの候補を
予測する第2音データ予測過程(ステップS30)と、
該予測した第2音データを前記低速記憶装置から前記高
速記憶装置に転送する過程(ステップS43)とをさら
に有することを特徴とする。さらに、請求項3記載の構
成にあっては、請求項2記載の音データ転送方法におい
て、前記低速記憶装置に記憶されている音データは、前
記第1および第2音データ以降に用いられる第3音デー
タ(リリース部またはジョイント部)をさらに含み、何
れかの第2音データの指定を受信する第2音データ指定
受信過程と、該第2音データの指定に基づいて、後に指
定される第3音データの候補を予測する第3音データ予
測過程(ステップS33)と、該予測した第3音データ
を前記低速記憶装置から前記高速記憶装置に転送する過
程(ステップS43)とをさらに有することを特徴とす
る。さらに、請求項4記載の構成にあっては、請求項1
乃至3の何れかに記載の音データ転送方法において、前
記何れかの音データの指定を受信すると、前記高速記憶
装置に記憶され、かつ、予測が外れた音データの候補に
対して、解放が可能である旨を示す識別情報を付与する
(メンバdwStatusを‘USED’に設定する)過程をさらに
有することを特徴とする。さらに、請求項5記載の構成
にあっては、請求項1乃至4の何れかに記載の音データ
転送方法において、前記音色指定受信過程の前に、各音
色毎に基本的音データ(代替ページ)を予め前記高速記
憶装置に転送する過程をさらに有し、前記第1,第2ま
たは第3音データ指定受信過程において指定された音デ
ータが前記高速記憶装置に転送されていなかった場合に
は、該指定された音データに代えて、前記基本的音デー
タを用いることを特徴とする。また、請求項6記載の構
成にあっては、請求項1ないし5の何れかに記載の方法
を実行することを特徴とする。また、請求項7記載の構
成にあっては、請求項1ないし5の何れかに記載の方法
を実行することを特徴とする。
Means for Solving the Problems In order to solve the above problems, the present invention is characterized by having the following constitution. Note that the contents in parentheses are examples. In the configuration according to the first aspect, a low-speed storage device (hard disk 109) for storing musical sound waveform sound data (vector data) and a high-speed storage device (cache memory 44) for caching the sound data are used. A sound data transfer method for transferring a part of sound data stored in the low-speed storage device to the high-speed storage device, wherein a tone color designation (program change) related to the sound data to be transferred to the high-speed storage device is provided. )
, A sound data predicting step of predicting a sound data candidate to be specified later based on the received sound color specification (step S30), and storing the predicted sound data candidate at the low speed. Transferring from the device to the high-speed storage device (step S43). In the sound data transfer method according to the second aspect, the sound data stored in the low-speed storage device may be a first sound data corresponding to a sound generation start unit (attack unit). And second sound data (vector data of the body part) corresponding to a portion other than the sound generation start portion, and the sound data predicted according to the tone color designation is the first sound data. A first sound data designation receiving step of receiving designation of sound data, and a second sound data prediction step of predicting a second sound data candidate to be designated later based on the designation of the first sound data (step S30) When,
Transferring the predicted second sound data from the low-speed storage device to the high-speed storage device (step S43). Further, in the configuration according to claim 3, in the sound data transfer method according to claim 2, the sound data stored in the low-speed storage device is used after the first and second sound data. A second sound data designation receiving step of further including three sound data (a release portion or a joint portion) for receiving designation of any of the second sound data, and later designated based on the designation of the second sound data. A third sound data prediction step of predicting third sound data candidates (step S33); and a step of transferring the predicted third sound data from the low-speed storage device to the high-speed storage device (step S43). It is characterized by the following. Further, in the configuration of claim 4, claim 1
4. In the sound data transfer method according to any one of the above-described items, when the designation of any one of the sound data is received, the release of the sound data candidates that are stored in the high-speed storage device and that are not predicted is released. The method further comprises the step of adding identification information indicating that the process is possible (setting the member dwStatus to 'USED'). According to a fifth aspect of the present invention, in the sound data transfer method according to any one of the first to fourth aspects, the basic sound data (alternate page) is provided for each tone before the tone designation receiving step. ) Is transferred to the high-speed storage device in advance, and if the sound data designated in the first, second, or third sound data designation receiving step has not been transferred to the high-speed storage device, The basic sound data is used in place of the designated sound data. According to a sixth aspect of the present invention, the method according to any one of the first to fifth aspects is performed. According to a seventh aspect of the present invention, the method according to any one of the first to fifth aspects is performed.

【0007】[0007]

【発明の実施の形態】1.実施形態のハードウエア構成 以下、この発明の一実施形態を添付図面に従って詳細に
説明する。図1は、この発明に係る波形生成装置のハー
ドウエア構成例を示すブロック図である。ここに示され
たハードウエア構成例はコンピュータを用いて構成され
ており、そこにおいて、波形生成処理は、コンピュータ
がこの発明に係る波形生成処理を実現する所定のプログ
ラム(ソフトウエア)を実行することにより実施され
る。勿論、この波形生成処理はコンピュータソフトウエ
アの形態に限らず、DSP(ディジタル・シグナル・プ
ロセッサ)によって処理されるマイクロプログラムの形
態でも実施可能であり、また、この種のプログラムの形
態に限らず、ディスクリート回路又は集積回路若しくは
大規模集積回路等を含んで構成された専用ハードウエア
装置の形態で実施してもよい。また、この波形生成装置
は、電子楽器あるいはカラオケ装置又は電子ゲーム装置
又はその他のマルチメディア機器又はパーソナルコンピ
ュータ等、任意の製品応用形態をとっていてよい。
BEST MODE FOR CARRYING OUT THE INVENTION 1. Hardware Configuration of Embodiment Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. FIG. 1 is a block diagram showing an example of a hardware configuration of a waveform generation device according to the present invention. The hardware configuration example shown here is configured using a computer, and in the waveform generation processing, the computer executes a predetermined program (software) that implements the waveform generation processing according to the present invention. It is implemented by. Of course, this waveform generation processing is not limited to the form of computer software, but can also be carried out in the form of a microprogram processed by a DSP (digital signal processor). The present invention may be implemented in the form of a dedicated hardware device including a discrete circuit or an integrated circuit or a large-scale integrated circuit. Further, the waveform generating device may take any product application form such as an electronic musical instrument, a karaoke device, an electronic game device, other multimedia devices, or a personal computer.

【0008】図1に示されたハードウエア構成例におい
ては、コンピュータのメイン制御部としてのCPU10
1に対して、バスラインBL(データあるいはアドレス
バス等)を介してリードオンリメモリ(ROM)10
2、ランダムアクセスメモリ(RAM)103、パネル
スイッチ104、パネル表示器105、ドライブ10
6、波形取込部107、波形出力部108、ハードディ
スク109、通信インタフェース111がそれぞれ接続
されている。CPU101は、後述する「波形データベ
ース作成」や「制作したデータベースに基づく楽音合成
(ソフトウエア音源)」等の処理を、所定のプログラム
に基づいて実行する。これらのプログラムは、通信イン
タフェース111を介したネットワークあるいはドライ
ブ106に装着されたCDやMO等の外部記憶メディア
106A等から供給されてハードディスク109に記憶
される。そして、実行時にハードディスク109からR
AM103にロードされる。あるいは、ROM102に
プログラムが記録されていてもよい。ROM102は、
CPU101により実行あるいは参照される各種プログ
ラムや各種データ等を格納するものである。RAM10
3は、演奏に関する各種情報やCPU101がプログラ
ムを実行する際に発生する各種データを一時的に記憶す
るワーキングメモリとして、あるいは現在実行中のプロ
グラムやそれに関連するデータを記憶するメモリとして
使用される。RAM103の所定のアドレス領域がそれ
ぞれの機能に割り当てられ、レジスタやフラグ、テーブ
ル、メモリなどとして利用される。パネルスイッチ10
4は、楽音をサンプリングする指示やサンプリングされ
た波形データ等のエディットや各種情報の入力等を行う
ための各種の操作子を含んで構成される。例えば、数値
データ入力用のテンキーや文字データ入力用のキーボー
ド、あるいはパネルスイッチ等である。この他にも音
高、音色、効果等を選択・設定・制御するための各種操
作子を含んでいてよい。パネル表示器105は、パネル
スイッチ104により入力された各種情報やサンプリン
グされた波形データ等を表示する、例えば液晶表示パネ
ル(LCD)やCRT等のディスプレイである。
In the example of the hardware configuration shown in FIG. 1, a CPU 10 as a main control unit of a computer is used.
1, a read-only memory (ROM) 10 via a bus line BL (data or address bus, etc.).
2. Random access memory (RAM) 103, panel switch 104, panel display 105, drive 10
6. The waveform acquisition unit 107, the waveform output unit 108, the hard disk 109, and the communication interface 111 are connected to each other. The CPU 101 executes processes such as “creation of a waveform database” and “sound synthesis (software sound source) based on the created database”, which will be described later, based on a predetermined program. These programs are supplied from a network via the communication interface 111 or an external storage medium 106A such as a CD or MO mounted on the drive 106 and stored in the hard disk 109. Then, at the time of execution, R
Loaded to AM103. Alternatively, the program may be stored in the ROM 102. ROM 102 is
It stores various programs and various data executed or referred to by the CPU 101. RAM10
Numeral 3 is used as a working memory for temporarily storing various information relating to the performance and various data generated when the CPU 101 executes the program, or as a memory for storing the program currently being executed and data related thereto. A predetermined address area of the RAM 103 is assigned to each function and used as a register, a flag, a table, a memory, and the like. Panel switch 10
Reference numeral 4 denotes various controls for editing a musical tone, editing sampled waveform data, inputting various information, and the like. For example, a numeric keypad for inputting numerical data, a keyboard for inputting character data, a panel switch, or the like. In addition, various controls for selecting, setting, and controlling a pitch, a tone, an effect, and the like may be included. The panel display 105 is a display such as a liquid crystal display panel (LCD) or a CRT that displays various information input by the panel switch 104, sampled waveform data, and the like.

【0009】波形取込部107はA/D変換器を内蔵
し、外部波形入力(例えば、マイクロフォンなどからの
入力)されたアナログ楽音信号をデジタルデータに変換
(サンプリング)してRAM103あるいはハードディ
スク109に該デジタル波形データをオリジナル波形デ
ータ(生成すべき波形データの素材となる波形データ)
として取り込むものである。CPU101によって実行
する「波形データベース作成」処理では、上記取り込ん
だオリジナル波形データを基にして本発明に従う「波形
データベース」の作成を行う。また、CPU101によ
って実行する「データベースに基づく楽音合成」処理で
は、上記「波形データベース」を使用して演奏情報に応
じた任意の楽音信号の波形データを生成する。勿論、複
数の楽音信号の同時発生が可能である。生成された楽音
信号の波形データはバスラインBLを介して波形出力部
108に与えられ、適宜バッファ記憶される。波形出力
部108ではバッファ記憶された波形データを所定の出
力サンプリング周波数にしたがって出力し、これをD/
A変換してサウンドシステム108Aに送出する。こう
して、波形出力部108から出力された楽音信号は、サ
ウンドシステム108Aを介して発音される。ハードデ
ィスク109は、波形データや奏法に応じた波形を合成
するためのデータ(後述する奏法テーブル、コードブッ
ク等のデータ)、各種音色パラメータ等からなる音色デ
ータなどのような演奏に関する複数種類のデータを記憶
したり、前記CPU101が実行する各種プログラム等
の制御に関するデータを記憶したりするものである。
The waveform acquisition unit 107 has a built-in A / D converter, converts (samples) an analog musical tone signal input from an external waveform (for example, input from a microphone or the like) to digital data, and stores the converted digital tone signal in the RAM 103 or the hard disk 109. The digital waveform data is converted to original waveform data (waveform data that is the material of the waveform data to be generated)
It is taken as. In the “waveform database creation” process executed by the CPU 101, a “waveform database” according to the present invention is created based on the fetched original waveform data. In the "sound synthesis based on database" process executed by the CPU 101, waveform data of an arbitrary tone signal corresponding to performance information is generated using the "waveform database". Of course, simultaneous generation of a plurality of tone signals is possible. The waveform data of the generated tone signal is supplied to the waveform output unit 108 via the bus line BL, and is appropriately buffer-stored. The waveform output unit 108 outputs the buffered waveform data according to a predetermined output sampling frequency,
A converted and sent to the sound system 108A. Thus, the tone signal output from the waveform output unit 108 is generated via the sound system 108A. The hard disk 109 stores a plurality of types of data related to performance, such as waveform data, data for synthesizing a waveform according to a playing style (data of a playing style table, a code book, etc., which will be described later), and tone data including various tone parameters. The CPU 101 stores data relating to control of various programs executed by the CPU 101 and the like.

【0010】ドライブ106は、波形データや奏法に応
じた波形を合成するためのデータ(後述する奏法テーブ
ル、コードブック等の各種データ)、多種多様な音色パ
ラメータ等からなる音色データなどのような演奏に関す
る複数種類のデータを記憶したり、前記CPU101が
実行する各種プログラム等の制御に関するデータを記憶
したりするための着脱可能なディスク(外部記憶メディ
ア106A)をドライブするものである。なお、前記ド
ライブ106によりドライブされる外部記憶メディア1
06Aはフロッピー(登録商標)ディスク(FD)の他
に、コンパクトディスク(CD−ROM・CD−RA
M)、光磁気ディスク(MO)、あるいはDVD(Di
gital Versatile Diskの略)等の
着脱自在な様々な形態の記憶メディアであってよい。制
御プログラムを記憶した外部記憶メディア106Aをド
ライブ106にセットし、その内容(制御プログラム)
をハードディスク109に落とさずに、RAM103に
直接ロードしてもよい。なお、外部記憶メディア106
Aを用いて、あるいはネットワークを介して制御プログ
ラムを提供するやり方は、制御プログラムの追加やバー
ジョンアップ等を容易に行うことができるので好都合で
ある。
The drive 106 includes performance data such as waveform data and data for synthesizing a waveform corresponding to a playing style (various data such as a playing style table and a code book to be described later), and timbre data including various timbre parameters. It drives a removable disk (external storage medium 106A) for storing a plurality of types of data related to the above, and storing data related to control of various programs executed by the CPU 101 and the like. The external storage medium 1 driven by the drive 106
06A is a compact disk (CD-ROM / CD-RA) in addition to a floppy (registered trademark) disk (FD).
M), magneto-optical disk (MO), or DVD (Di)
The storage medium may be various types of removable storage media such as a digital versatile disk. The external storage medium 106A storing the control program is set in the drive 106, and its contents (control program)
May be directly loaded into the RAM 103 without dropping it on the hard disk 109. The external storage medium 106
The method of providing the control program using A or via a network is convenient because the control program can be easily added or upgraded.

【0011】通信インタフェース111は、例えばLA
Nやインターネット、電話回線等の通信ネットワーク
(図示せず)に接続されており、該通信ネットワークを
介して、サーバコンピュータ等(図示せず)と接続さ
れ、当該サーバコンピュータ等から制御プログラムや各
種データあるいは演奏情報などを波形生成装置側に取り
込むためのものである。すなわち、ROM102やハー
ドディスク109に制御プログラムや各種データが記憶
されていない場合に、サーバコンピュータから制御プロ
グラムや各種データをダウンロードするために用いられ
る。クライアントとなる波形生成装置は、通信インタフ
ェース111を介してサーバコンピュータへと制御プロ
グラムや各種データのダウンロードを要求するコマンド
を送信する。サーバコンピュータは、このコマンドを受
け、要求された制御プログラムやデータなどを通信イン
タフェース111を介してハードディスク109に蓄積
することにより、ダウンロードが完了する。更に、MI
DIインタフェースを含み、MIDIの演奏情報を受け
取るようにしてもよいのは勿論である。また、音楽演奏
用キーボードや演奏操作機器をバスラインBLに接続
し、リアルタイム演奏によって演奏情報を供給するよう
にしてもよいのは言うまでもない。勿論、所望の音楽曲
の演奏情報を記憶した外部記憶メディア106Aを使用
して、演奏情報を供給するようにしてもよい。
The communication interface 111 is, for example, LA
N, the Internet, a telephone line, or other communication network (not shown), and connected to a server computer or the like (not shown) via the communication network. Alternatively, it is for taking performance information and the like into the waveform generating device side. That is, when the control program and various data are not stored in the ROM 102 or the hard disk 109, the control program and various data are used for downloading from the server computer. The waveform generation device serving as a client transmits a control program and a command for requesting download of various data to the server computer via the communication interface 111. The server computer receives the command and stores the requested control program, data, and the like in the hard disk 109 via the communication interface 111, thereby completing the download. Furthermore, MI
Of course, a MIDI interface may be included to receive MIDI performance information. Needless to say, a music performance keyboard or performance operation device may be connected to the bus line BL to supply performance information by real-time performance. Of course, the performance information may be supplied using the external storage medium 106A storing the performance information of the desired music piece.

【0012】2.波形データベース作成処理 2.1.処理の概要 図2は、上述した波形生成装置において実行される「波
形データベース作成処理」の一実施形態を示すフローチ
ャートである。当該処理は、いろいろな奏法(若しくは
アーティキュレーション)に対応するために、いろいろ
な奏法(若しくはアーティキュレーション)で演奏され
た演奏音の波形を素材としてベクトルデータを作成する
ための処理である。ステップS1では、後述する奏法テ
ーブル及びコードブックを記憶するためのデータベース
を準備する。このデータベースとなる媒体としては、例
えばハードディスク109を使用する。そして、様々な
自然楽器の様々な演奏態様による波形データを収集する
(ステップS2)。すなわち、様々な自然楽器の様々な
実際の演奏音を外部波形入力(例えば、マイクロフォン
等)から波形取込部107を介して取り込み、それらの
演奏音の波形データ(オリジナル波形データ)をハード
ディスク109の所定のエリアに記憶する。この際に取
り込む演奏音の波形データは演奏全体の波形データであ
ってもよいし、あるフレーズ、あるいは1音、あるいは
アタック部やリリース部といった特徴のある演奏の一部
の波形データだけであってもよい。
2. Waveform database creation processing 2.1. FIG. 2 is a flowchart showing one embodiment of a “waveform database creation process” executed in the above-described waveform generation device. This process is a process for creating vector data using waveforms of performance sounds performed in various playing styles (or articulations) as materials in order to support various playing styles (or articulations). In step S1, a database for storing a rendition style table and a code book to be described later is prepared. As the medium serving as the database, for example, the hard disk 109 is used. Then, waveform data of various performance modes of various natural musical instruments are collected (step S2). That is, various actual performance sounds of various natural musical instruments are captured from an external waveform input (for example, a microphone or the like) via the waveform capturing unit 107, and the waveform data (original waveform data) of the performance sounds is stored in the hard disk 109. It is stored in a predetermined area. The waveform data of the performance sound taken in at this time may be the waveform data of the entire performance, or only a certain phrase, a single sound, or only a part of the performance data having a characteristic feature such as an attack portion and a release portion. Is also good.

【0013】次に、こうして得られた自然楽器固有の様
々な演奏態様による演奏音の波形データを特徴的な部分
毎に切り分けて、チューニング及びファイル名付けする
(ステップS3)。すなわち、取り込んだオリジナル波
形データを波形形状の変化を代表する一部の波形(例え
ば、アタック部波形、ボディ部波形、リリース部波形、
ジョイント部波形等)毎に分離して(切り分け)、分
離した1周期乃至複数周期の波形データがそれぞれいか
なるピッチであるかを判定し(チューニング)、さら
にそれぞれ分離した波形データに対してファイル名を付
与する(ファイル名付け)。ただし、アタック部分や
リリース部分といった演奏の一部の波形データを取り込
んでいる場合には、このような波形の分離(切り分
け)を省略できる。次に、周波数分析による成分分離を
行う(ステップS4)。すなわち、ステップS3で分離
生成された一部の波形データをFFT(高速フーリエ変
換)分析して複数成分に分離し(この実施形態では、調
和成分と調和外成分に分離する)、さらに各成分(調和
成分、調和外成分等)から波形、ピッチ、振幅の各要素
毎の特徴抽出、つまり特徴分離を行う(ただし、調和成
分と調和外成分に分離する場合、調和外成分はピッチを
持たないものであることから調和外成分についてのピッ
チ分離は行わなくてよい)。例えば「波形」(Timbre)
要素は、ピッチと振幅をノーマライズした波形形状のみ
特徴を抽出したものである。「ピッチ」(Pitch)要素
は、基準ピッチに対するピッチ変動特性を抽出したもの
である。「振幅」(Amplitude)要素は、振幅エンベロ
ープ特性を抽出したものである。
Next, the obtained waveform data of the performance sound in various performance modes unique to the natural musical instrument is divided into characteristic portions, and tuning and file naming are performed (step S3). That is, the acquired original waveform data is converted into a partial waveform (for example, an attack portion waveform, a body portion waveform, a release portion waveform,
(For example, joint part waveforms)) (separation), determine the pitch of the separated waveform data of one or more cycles (tuning), and further assign a file name to the separated waveform data. Assign (file naming). However, when waveform data of a part of a performance such as an attack portion and a release portion is captured, such separation (separation) of the waveform can be omitted. Next, component separation is performed by frequency analysis (step S4). That is, a part of the waveform data separated and generated in step S3 is subjected to FFT (Fast Fourier Transform) analysis and separated into a plurality of components (in this embodiment, separated into a harmonic component and a non-harmonic component). Performs feature extraction for each element of waveform, pitch, and amplitude from harmonic components, non-harmonic components, etc., that is, feature separation (however, when separated into harmonic components and non-harmonic components, non-harmonic components have no pitch) Therefore, it is not necessary to perform pitch separation for nonharmonic components). For example, "waveform" (Timbre)
The elements are obtained by extracting features only in a waveform shape in which pitch and amplitude are normalized. The “pitch” (Pitch) element is obtained by extracting pitch fluctuation characteristics with respect to a reference pitch. The “amplitude” (Amplitude) element is obtained by extracting an amplitude envelope characteristic.

【0014】ステップS5では、ベクトルデータの作成
が行われる。すなわち、分離された各成分(調和成分、
調和外成分等)の波形(Timbre)やピッチ(Pitch)や
振幅(Amplitude)の各要素毎に複数のサンプル値を分
散的に又は必要に応じて連続的に抽出し、当該サンプル
値列に対して各々異なったベクトルID(識別情報)を
付与して、サンプル値の時刻位置のデータとともにコー
ドブックに記憶する(以下、このようなサンプルデータ
をベクトルデータと呼ぶ)。この実施形態では、調和成
分の波形(Timbre)要素のベクトルデータ、ピッチ(Pi
tch)要素のベクトルデータ、振幅(Amplitude)要素の
ベクトルデータと、調和外成分の波形(Timbre)要素の
ベクトルデータ、振幅(Amplitude)要素のベクトルデ
ータとがそれぞれ作成される。このように、これらの各
成分要素毎のベクトルデータは、時間軸の進行に伴い変
化しうるデータである。次に、奏法モジュールのデータ
(詳しい内容については後述する)を作成して奏法モジ
ュールを奏法テーブルに記憶する。こうして作成された
奏法モジュール及びベクトルデータは、データベースに
おける奏法テーブル及びコードブックへ書き込まれ(ス
テップS6)、データベースへのデータ蓄積がはかられ
る。上述したように、ベクトルデータは取り込んだオリ
ジナル波形データそのままではなく取り込んだオリジナ
ル波形の形状を代表する波形を各要素毎に分離したデー
タであって、このベクトルデータは各々が最終的には奏
法モジュールの単位となるデータである。このように、
コードブックには抽出した波形形状の変化を代表する一
部の波形データを圧縮した形で記憶する。一方、奏法テ
ーブルには、奏法モジュールのデータ(つまり、圧縮さ
れた形で記憶されたベクトルデータを元の波形形状の波
形データに戻すために必要な各種のデータや、コードブ
ックに記憶されたベクトルデータを指定するためのID
データ)などが記憶される(詳しくは後述する)。
In step S5, vector data is created. That is, each separated component (harmonic component,
Extract multiple sample values for each element of the waveform (Timbre), pitch (Pitch), and amplitude (Amplitude) of the non-harmonic component etc. in a dispersed manner or continuously as necessary, and extract the sample value sequence. Then, different vector IDs (identification information) are given and stored in the code book together with the data of the time position of the sample value (hereinafter, such sample data is referred to as vector data). In this embodiment, the vector data and the pitch (Pi) of the waveform (Timbre) element of the harmonic component
The vector data of the (tch) element, the vector data of the amplitude (Amplitude) element, the vector data of the non-harmonic component waveform (Timbre) element, and the vector data of the amplitude (Amplitude) element are respectively created. Thus, the vector data for each of these component elements is data that can change as the time axis progresses. Next, data of the performance style module (details will be described later) is created, and the performance style module is stored in the performance style table. The rendition style module and vector data thus created are written in the rendition style table and codebook in the database (step S6), and the data is stored in the database. As described above, the vector data is not the captured original waveform data as it is, but is data obtained by separating a waveform representing the shape of the captured original waveform for each element. Is the unit of data. in this way,
In the code book, a part of the extracted waveform data representing the change of the waveform shape is stored in a compressed form. On the other hand, the rendition style table stores various rendition style data (that is, various kinds of data necessary for returning vector data stored in a compressed form to waveform data of an original waveform shape, and vector data stored in a code book). ID for specifying data
Data) is stored (details will be described later).

【0015】上述した特徴分離(ステップS4参照)の
際に、振幅、ピッチ、波形要素の他に時間を要素として
特徴抽出を行う(以下、抽出された時間要素のベクトル
データのことを「タイムベクトルデータ」と呼ぶ)。こ
の時間要素については、分離生成された一部の波形デー
タの時間区間におけるオリジナル波形データの時間長を
そのまま用いる。従って、当該時間区間のオリジナルの
時間長(可変値である)を比「1」で示すこととすれ
ば、当該「波形データベース作成処理」時においてこの
時間長をあえて分析・測定する必要はない。その場合、
時間要素についてのデータ(すなわち、「タイムベクト
ルデータ」)はどの時間区間でも同じ値“1”であるか
ら、これをコードブックにあえて記憶しておかなくても
よい。勿論、これに限らず、この実際の時間長を分析・
測定し、これを「タイムベクトルデータ」としてコード
ブックに記憶するようにする変形例も実施可能である。
At the time of the above-described feature separation (see step S4), feature extraction is performed using time as an element in addition to amplitude, pitch, and waveform elements. Data)). For this time element, the time length of the original waveform data in the time section of some of the separated and generated waveform data is used as it is. Therefore, if the original time length (variable value) of the time section is indicated by the ratio “1”, it is not necessary to analyze and measure this time length during the “waveform database creation processing”. In that case,
Since the data of the time element (ie, “time vector data”) has the same value “1” in any time section, it is not necessary to store this in the codebook. Of course, not limited to this,
A modified example in which the measurement is performed and this is stored in the code book as “time vector data” is also possible.

【0016】そして、データベース作成が充分に行われ
たか否かを判定する(ステップS7)。すなわち、外部
波形入力から得られた様々な自然楽器の様々な演奏態様
による演奏音のオリジナル波形データの収集を充分に行
って、様々な奏法モジュールのデータ及びベクトルデー
タを充分に得たか否かを判定する。この判定は自動判定
に限らず、ユーザによるスイッチ入力操作に基づく処理
続行可否指示に従って行うようにしてもよい。オリジナ
ル波形データの収集とそれに基づくベクトルデータの作
成が充分に行われたと判定されたならば(ステップS7
のYES)、当該処理を終了する。引き続き、オリジナ
ル波形データの収集とそれに基づくベクトルデータの作
成を行う場合(ステップS7のNO)、ステップS2の
処理へ戻り、上述した各処理(ステップS2〜ステップ
S7)を繰り返し実行する。上記「ベクトルデータの作
成が充分に行われたか否か」の判定(ステップS7)
は、「作成したベクトルデータを実際に使用して楽音を
生成してみる」ことにより行われてもよい。すなわち、
ステップS7で一旦「ベクトルデータを充分作成した」
(ステップS7のYES)と判断して図2に示すフロー
を抜けた後に、「その作成したベクトルデータを使用し
て楽音を再生してみたら満足できなかったので、再びス
テップS2以降の処理を行ってベクトルデータを追加す
る」というような処理を行ってもよい。つまり、「ベク
トルデータを作成してデータベースに追加する」という
処理は、必要に応じて随時行われる。なお、上述の「波
形データベース作成処理」において、奏法モジュールを
任意に追加・削除したり、あるいは奏法モジュールのデ
ータ等の編集を行うことができるようにしてもよい。
Then, it is determined whether the database has been sufficiently created (step S7). That is, it is determined whether or not the original waveform data of the performance sounds of various natural musical instruments obtained from the external waveform input in various performance modes has been sufficiently collected to sufficiently obtain the data and vector data of various performance style modules. judge. This determination is not limited to the automatic determination, and may be performed in accordance with a processing continuation availability instruction based on a user's switch input operation. If it is determined that the collection of the original waveform data and the creation of the vector data based on the original data have been sufficiently performed (Step S7)
YES), the process ends. Subsequently, when the original waveform data is collected and the vector data is created based on the original data (NO in step S7), the process returns to step S2, and the above-described processes (steps S2 to S7) are repeatedly executed. Judgment of "whether or not vector data has been sufficiently created" (step S7)
May be performed by "creating a musical tone by actually using the created vector data". That is,
In step S7, "vector data has been sufficiently created"
After deciding (YES in step S7) and exiting the flow shown in FIG. 2, "playing a tone using the created vector data was not satisfactory. And add vector data ". That is, the process of “creating vector data and adding it to the database” is performed as needed. In the above-mentioned "waveform database creation processing", a rendition style module may be arbitrarily added / deleted, or data of the rendition style module may be edited.

【0017】2.2.奏法モジュールのデータ構成 ここで、奏法モジュールのデータについて具体的に説明
する。奏法モジュールはハードディスク109上にデー
タベース化されて構成される奏法テーブルに記憶され、
1つの奏法モジュールは「奏法ID」と「奏法パラメー
タ」の組み合わせによって指定することができるように
なっている。「奏法ID」は、その中に楽器情報及びモ
ジュールパーツ名を含む。例えば、「奏法ID」は次の
ように定義される。例えば、1つの「奏法ID」が32
ビット(第0〜31ビット)列で表現されているとする
と、そのうちの6ビットを使用して楽器情報を表現す
る。例えば、当該6ビット列が「000000」であれ
ばAltoSax(アルト・サックス)を示し、「00100
0」であればViolin(バイオリン)を示す楽器情報であ
る。この楽器情報は前記6ビット列のうち上位3ビット
列を楽器種類の大分類に使用し、下位3ビット列を楽器
種類の小分類のために使用するなどしてよい。また、3
2ビット列の別の6ビットを使用してモジュールパーツ
名を表現する。例えば、当該6ビット列が「00000
0」であればNormalAttack、「000001」であれば
BendAttack、「000010」であればGraceNoteAttac
k、「001000」であればNormalShortBody、「00
1001」であればVibBody、「001010」であれ
ばNormalLongBody、「010000」であればNormalRe
lease、「011000」であればNormalJoint、「01
1001」であればGraceNoteJointを示すモジュールパ
ーツ名である。勿論、上述した構成に限られないことは
言うまでもない。
2.2. Data Configuration of Performance Style Module Here, the data of the performance style module will be specifically described. The rendition style module is stored in a rendition style table configured as a database on the hard disk 109,
One rendition style module can be designated by a combination of “reproduction style ID” and “reproduction style parameter”. The “playing style ID” includes instrument information and module part names therein. For example, “performance style ID” is defined as follows. For example, one “playing style ID” is 32
If it is represented by a sequence of bits (0th to 31st bits), the musical instrument information is represented using 6 bits. For example, if the 6-bit string is “000000”, it indicates AltoSax, and “00100
If it is "0", it is instrument information indicating Violin (violin). The musical instrument information may use, for example, the upper 3 bit strings of the 6-bit string for the large classification of the instrument type, and the lower 3 bit strings for the small classification of the instrument type. Also, 3
The module part name is expressed using another 6 bits of the 2-bit string. For example, if the 6-bit string is “00000”
If "0", NormalAttack, if "000001",
BendAttack, GraceNoteAttac if "000010"
k, if “001000”, NormalShortBody, “00
1001 ”, VibBody,“ 001010 ”, NormalLongBody,“ 010000 ”, NormalRe
lease, if "011000", NormalJoint, "01
“1001” is a module part name indicating GraceNoteJoint. Of course, it is needless to say that the configuration is not limited to the above.

【0018】上述したように、個々の奏法モジュール
は、上記「奏法ID」と「奏法パラメータ」との組み合
わせで特定される。すなわち、「奏法ID」に応じて所
定の奏法モジュールが特定され、その内容が「奏法パラ
メータ」に応じて可変設定される。この「奏法パラメー
タ」は該奏法モジュールに対応する波形データを特徴付
ける、若しくは制御するパラメータであり、各奏法モジ
ュール毎に所定の種類の「奏法パラメータ」が存在して
いる。例えば、AltoSax [NormalAttack]モジュールの場
合にはAttack直後の絶対音高やAttack直後の音量などの
種類の奏法パラメータが与えられてよいし、AltoSax [B
endUpAttack]モジュールの場合にはBendUpAttack終了時
の絶対音高、BendUpAttack時のBend深さの初期値、Bend
UpAttack開始(ノートオンタイミング)〜終了までの時
間、Attack直後の音量、あるいはBendUpAttack中のデフ
ォルトのカーブの時間的な伸縮などの種類の奏法パラメ
ータが与えられてよい。また、AltoSax [NormalShortBo
dy]モジュールの場合には当該モジュールの絶対音高、N
ormalShortBodyの終了時刻−開始時刻、NormalShortBod
y開始時のダイナミクス、NormalShortBody終了時のダイ
ナミクスなどの種類の奏法パラメータが与えられてよ
い。なお、奏法モジュールには、「奏法パラメータ」の
採りうる全ての値に対応するデータ(後述する要素デー
タ)を必ずしも有しない。「奏法パラメータ」の飛び飛
びの一部の値だけに応じたデータを記憶している場合も
ある。すなわち、例えばAltoSax [NormalAttack]モジュ
ールの場合、Attack直後の絶対音高やAttack直後の音量
の全ての値ではなく、一部のデータだけに対応したデー
タを記憶していてもよい。このように、奏法モジュール
を「奏法ID」と「奏法パラメータ」で指定できるよう
にすることで、例えばAltoSax [NormalAttack]であれば
アルトサックスのノーマルアタック部を示す複数データ
(後述する要素データ)の中から所望の奏法パラメータ
に応じたデータを指定することができるし、Violin[Ben
dAttack]であればバイオリンのベンドアタック部を示す
複数データ(後述する要素データ)の中から所望の奏法
パラメータに応じたデータを指定することができる。
As described above, each performance style module is specified by a combination of the above-mentioned "performance style ID" and "performance style parameter". That is, a predetermined performance style module is specified according to the “performance style ID”, and the content thereof is variably set according to the “performance style parameter”. The “reproduction style parameters” are parameters for characterizing or controlling the waveform data corresponding to the rendition style module, and a predetermined type of “reproduction style parameter” exists for each rendition style module. For example, in the case of the AltoSax [NormalAttack] module, types of playing style parameters such as an absolute pitch immediately after Attack and a volume immediately after Attack may be given, and an AltoSax [B
endUpAttack] module, the absolute pitch at the end of BendUpAttack, the initial value of Bend depth at BendUpAttack, Bend
A performance style parameter such as the time from the start (note-on timing) to the end of the UpAttack, the volume immediately after the Attack, or the temporal expansion and contraction of the default curve during the BendUpAttack may be given. Also, AltoSax [NormalShortBo
dy] module, the absolute pitch of the module, N
normalShortBody end time-start time, NormalShortBod
Types of performance parameters such as the dynamics at the start of y and the dynamics at the end of NormalShortBody may be given. Note that the performance style module does not necessarily have data (element data described later) corresponding to all possible values of the “performance style parameter”. In some cases, data corresponding to only some of the discrete values of the "reproduction parameter" may be stored. That is, for example, in the case of the AltoSax [NormalAttack] module, data corresponding to only some data may be stored instead of all values of the absolute pitch immediately after Attack or the volume immediately after Attack. As described above, by enabling the performance style module to be designated by the “performance style ID” and the “performance style parameter”, for example, in the case of AltoSax [NormalAttack], a plurality of data (element data described later) indicating the normal attack part of the alto saxophone is displayed. Data can be specified according to the desired playing style parameters from among them, and Violin [Ben
dAttack], it is possible to specify data corresponding to a desired playing style parameter from a plurality of data (element data described later) indicating a bent attack portion of the violin.

【0019】2.3.奏法テーブルのデータ構成 奏法テーブルにおいては、個々の奏法モジュールにつ
き、当該奏法モジュールに対応する波形を生成するため
に必要なデータ、例えば各成分要素毎のベクトルデータ
(波形要素、ピッチ要素(ピッチエンベロープ)、振幅
要素(振幅エンベロープ)等)を指定するためのベクト
ルIDや代表点値列(複数サンプル列の中の補正のため
の代表的サンプル点を指示するデータ)あるいは各成分
要素毎のベクトルデータ(波形要素、ピッチ要素(ピッ
チエンベロープ)、振幅要素(振幅エンベロープ))の
開始時間位置や終了時間位置などの情報等を記憶してい
る。つまり、ベクトルデータという圧縮された形でデー
タベースに記憶されている波形から通常形状の波形を再
生するために必要な各種のデータを記憶している(以
下、このようなデータを「要素データ」とも呼ぶ)。奏
法テーブルにおいて、1つの奏法モジュールに対応して
記憶する具体的なデータの一例をAltoSax [NormalAttac
k]モジュールの場合について説明すると、次の通りであ
る。 データ1:奏法モジュールのサンプル長。 データ2:ノートオンタイミングの位置。 データ3:調和成分の振幅(Amplitude)要素のベクト
ルIDと代表点値列。 データ4:調和成分のピッチ(Pitch)要素のベクトル
IDと代表点値列。 データ5:調和成分の波形(Timbre)要素のベクトルI
D。 データ6:調和外成分の振幅(Amplitude)要素のベク
トルIDと代表点値列。 データ7:調和外成分の波形(Timbre)要素のベクトル
ID。 データ8:調和成分の波形(Timbre)要素の塊部の開始
位置。 データ9:調和成分の波形(Timbre)要素の塊部の終了
位置(調和成分の波形(Timbre)要素のループ部の開始
位置)。 データ10:調和外成分の波形(Timbre)要素の塊部の
開始位置。 データ11:調和外成分の波形(Timbre)要素の塊部の
終了位置(調和外成分の波形(Timbre)要素のループ部
の開始位置)。 データ12:調和外成分の波形(Timbre)要素のループ
部の終了位置。
2.3. Data structure of the rendition style table In the rendition style table, for each rendition style module, data necessary for generating a waveform corresponding to the rendition style module, for example, vector data for each component element (waveform element, pitch element (pitch envelope)) , An amplitude element (amplitude envelope, etc.), a representative point value sequence (data indicating representative sample points for correction in a plurality of sample sequences) or vector data for each component element ( Information such as a start time position and an end time position of a waveform element, a pitch element (pitch envelope), and an amplitude element (amplitude envelope) is stored. That is, it stores various data necessary for reproducing a waveform of a normal shape from a waveform stored in the database in a compressed form called vector data (hereinafter, such data is also referred to as “element data”). Call). In the rendition style table, an example of specific data stored corresponding to one rendition style module is AltoSax [NormalAttac
The case of the [k] module will be described as follows. Data 1: Sample length of playing style module. Data 2: Note-on timing position. Data 3: Vector ID and representative point value sequence of the amplitude element of the harmonic component. Data 4: Vector ID of a pitch element (Pitch) of a harmonic component and a representative point value sequence. Data 5: Harmonic component waveform (Timbre) element vector I
D. Data 6: A vector ID of a non-harmonic component amplitude element and a representative point value sequence. Data 7: Vector ID of waveform (Timbre) element of nonharmonic component. Data 8: Start position of the lump of the harmonic component waveform (Timbre) element. Data 9: The end position of the block of the harmonic component waveform (Timbre) element (the start position of the loop portion of the harmonic component waveform (Timbre) element). Data 10: Starting position of the lump of the waveform element (Timbre) of the nonharmonic component. Data 11: the end position of the lump of the non-harmonic component waveform (Timbre) element (the start position of the loop part of the non-harmonic component waveform (Timbre) element). Data 12: end position of loop part of waveform (Timbre) element of nonharmonic component.

【0020】上記データ1〜12について、図3を参照
して説明する。図3は、当該奏法モジュールに対応する
実波形区間を構成する各成分及び要素の一例を模式的に
示す図であり、上から当該区間における調和成分の振幅
(Amplitude)要素、調和成分のピッチ(Pitch)要素、
調和成分の波形(Timbre)要素、調和外成分の振幅(Am
plitude)要素、調和外成分の波形(Timbre)要素の一
例を示す。なお、図に示している数字は上記各データの
番号に対応するように付してある。1は、当該奏法モジ
ュールに該当する波形のサンプル長(波形区間長)であ
る。例えば、当該奏法モジュールの基となったオリジナ
ル波形データの全体の時間長さに対応している。2はノ
ートオンタイミングの位置であり、当該奏法モジュール
のどの時間位置にも可変に設定することが可能である。
原則的には、このノートオンタイミングの位置から当該
波形に従った演奏音の発音が開始されるが、ベンドアタ
ックなどの奏法によってはノートオンタイミングよりも
波形成分の立ち上がり開始時点が先行する場合がある。
The data 1 to 12 will be described with reference to FIG. FIG. 3 is a diagram schematically illustrating an example of each component and an element constituting an actual waveform section corresponding to the rendition style module. Pitch) element,
Harmonic component waveform (Timbre) element, non-harmonic component amplitude (Am
3 shows an example of a (plitter) element and a waveform (Timbre) element of a non-harmonic component. It is to be noted that the numbers shown in the figure are attached so as to correspond to the numbers of the respective data. 1 is a sample length (waveform section length) of a waveform corresponding to the rendition style module. For example, it corresponds to the entire time length of the original waveform data on which the performance style module is based. Reference numeral 2 denotes a note-on timing position, which can be variably set at any time position of the performance style module.
In principle, the sound of the performance sound starts in accordance with the waveform from the position of the note-on timing.However, depending on the playing technique such as a bend attack, the rising start point of the waveform component may precede the note-on timing. is there.

【0021】3は、コードブックに記憶された調和成分
の振幅(Amplitude)要素のベクトルデータを指し示す
ためのベクトルID及び代表点値列を示す(図におい
て、黒く塗りつぶした正方形で示す2点が代表点を示
す)。4は、調和成分のピッチ(Pitch)要素のベクト
ルデータを指し示すためのベクトルID及び代表点値列
を示す。6は、調和外成分の振幅(Amplitude)要素の
ベクトルデータを指し示すためのベクトルID及び代表
点値列を示す。代表点値列データはベクトルIDによっ
て指示されるベクトルデータ(複数サンプル列からな
る)を変更制御するためのデータであり、代表的サンプ
ル点のいくつかを指示(特定)するものである。特定さ
れた代表的サンプル点に関してその時間位置(横軸)と
レベル軸(縦軸)を変更若しくは補正することにより、
他の残りのサンプル点も連動して変更し、もってベクト
ルの形状を変更する。例えば、そのサンプル数より少な
い数の分散的サンプルを示すデータであるが、勿論これ
に限らず、代表点値列データはサンプルとサンプルの間
の中間位置のデータであってもよいし、あるいは所定の
範囲(連続的な複数サンプル)にわたるデータであって
もよい。また、サンプル値そのものでなく、差分や乗数
等のデータであってもよい。この代表点を横軸及び/又
は縦軸(時間軸)に移動することによって、各ベクトル
データの形状を変えることができる。つまり、エンベロ
ープ波形の形状を変えることができる。
Reference numeral 3 denotes a vector ID and a representative point value sequence for indicating the vector data of the amplitude element of the harmonic component stored in the codebook (in the figure, two points indicated by black squares are representative). Point). Reference numeral 4 denotes a vector ID and a representative point value sequence for indicating vector data of a pitch element of the harmonic component. Reference numeral 6 denotes a vector ID and a representative point value sequence for indicating vector data of an amplitude (Amplitude) element of a nonharmonic component. The representative point value sequence data is data for changing and controlling the vector data (composed of a plurality of sample sequences) indicated by the vector ID, and indicates (specifies) some representative sample points. By changing or correcting the time position (horizontal axis) and the level axis (vertical axis) of the identified representative sample point,
The other remaining sample points are also changed in conjunction, thereby changing the shape of the vector. For example, the data is data indicating a smaller number of dispersed samples than the number of samples. Of course, the data is not limited thereto, and the representative point value sequence data may be data at an intermediate position between the samples, or (A plurality of continuous samples). Further, data such as a difference and a multiplier may be used instead of the sample value itself. By moving the representative point on the horizontal axis and / or the vertical axis (time axis), the shape of each vector data can be changed. That is, the shape of the envelope waveform can be changed.

【0022】5は、調和成分の波形(Timbre)要素のベ
クトルデータを指し示すためのベクトルIDである。7
は、調和外成分の波形(Timbre)要素のベクトルデータ
を指し示すためのベクトルIDである。8は、調和成分
の波形(Timbre)要素の波形の塊部の開始位置である。
9は、調和成分の波形(Timbre)要素の波形の塊部の終
了位置(あるいは、調和成分の波形(Timbre)要素の波
形のループ部の開始位置)である。すなわち、8から開
始する三角形は特徴のある波形形状が連続的に記憶され
ているノンループ波形の部分を示し、その後に続く9か
ら開始する長方形は繰り返し読み出しすることのできる
ループ波形の部分を示す。ノンループ波形は、奏法(若
しくはアーティキュレーション)等の特徴を有する高品
質な波形である。ループ波形は、1周期または適当な複
数周期分の波形からなる比較的単調な音部分の単位波形
である。10は、調和外成分の波形(Timbre)要素の波
形の塊部の開始位置である。11は、調和外成分の波形
(Timbre)要素の波形の塊部の終了位置(あるいは、調
和外成分の波形(Timbre)要素の波形のループ部の開始
位置)である。12は、調和外成分の波形(Timbre)要
素の波形のループ部の終了位置である。上記データ3〜
データ7は各成分要素毎にコードブックに記憶されてい
るベクトルデータを指し示すための識別情報のデータで
あり、上記データ2及びデータ8〜データ12はベクト
ルデータから元の(分離前の)波形を組み立てるための
時間情報のデータである。
Reference numeral 5 denotes a vector ID for pointing the vector data of the waveform (Timbre) element of the harmonic component. 7
Is a vector ID for indicating vector data of a waveform (Timbre) element of a non-harmonic component. Numeral 8 is the start position of the block of the waveform of the waveform (Timbre) element of the harmonic component.
Reference numeral 9 denotes the end position of the block of the waveform of the harmonic component waveform (Timbre) element (or the start position of the loop portion of the waveform of the harmonic component waveform (Timbre) element). That is, a triangle starting from 8 indicates a non-loop waveform portion in which characteristic waveform shapes are continuously stored, and a subsequent rectangle starting from 9 indicates a loop waveform portion that can be repeatedly read. The non-loop waveform is a high-quality waveform having characteristics such as a rendition style (or articulation). The loop waveform is a unit waveform of a relatively monotonous sound portion consisting of a waveform for one cycle or an appropriate plurality of cycles. Numeral 10 is the start position of the block of the waveform of the non-harmonic component (Timbre) element. Numeral 11 denotes the end position of the lump of the waveform of the non-harmonic component (Timbre) element (or the start position of the loop part of the waveform of the non-harmonic component waveform (Timbre) element). Reference numeral 12 denotes the end position of the loop portion of the waveform of the non-harmonic component (Timbre) element. The above data 3 ~
Data 7 is data of identification information for indicating vector data stored in a code book for each component element. Data 2 and data 8 to data 12 represent original (before separation) waveforms from vector data. Time information data for assembling.

【0023】このように、奏法モジュールのデータはベ
クトルデータを指し示すためのデータと時間情報のデー
タとから構成される。このような奏法テーブルに記憶さ
れている奏法モジュールのデータを使用することによ
り、コードブックに記憶されている波形の素材(ベクト
ルデータ)を使って、波形を自由に組み立てることがで
きることになる。つまり、奏法モジュールは、奏法(若
しくはアーティキュレーション)に応じて生成する波形
の挙動を表すデータである。なお、奏法モジュールのデ
ータの種類や数は各奏法モジュール毎に異なっていてよ
い。また、上述したデータ以外にも他の情報等を具えて
いてよい。例えば、波形の時間軸を伸長/圧縮制御する
ためのデータなどを持っていてもよい。
As described above, the data of the rendition style module is composed of the data for indicating the vector data and the data of the time information. By using the data of the rendition style module stored in such a rendition style table, it is possible to freely assemble the waveform using the waveform material (vector data) stored in the code book. That is, the rendition style module is data representing the behavior of a waveform generated according to the rendition style (or articulation). Note that the type and number of data of the performance style modules may be different for each performance style module. Further, other information may be provided in addition to the data described above. For example, it may have data for controlling the expansion / compression of the time axis of the waveform.

【0024】また、上述の例では説明を理解しやすくす
るために、1つの奏法モジュールが調和成分の各要素
(波形、ピッチ、振幅)及び調和外成分の各要素(波
形、振幅)の全てを具備している例について説明した
が、これに限らず、奏法モジュールが調和成分の各要素
(波形、ピッチ、振幅)や調和外成分の各要素(波形、
振幅)の1つからなっていてもよいのは勿論である。例
えば、奏法モジュールが調和成分の波形(Timbre)要
素、調和成分のピッチ(Pitch)要素、調和成分の振幅
(Amplitude)要素、調和外成分の波形(Timbre)要
素、調和外成分の振幅(Amplitude)要素のいずれか1
つの要素からなっていてもよい。こうすると、各成分毎
に奏法モジュールを自由に組み合わせて使用することが
できることになり好ましい。
In the above-described example, in order to make the description easy to understand, one rendition style module uses all the elements (waveform, pitch, amplitude) of the harmonic component and all the elements (waveform, amplitude) of the nonharmonic component. Although the example provided is described, the present invention is not limited to this.
Amplitude). For example, the playing style module includes a harmonic component waveform (Timbre) element, a harmonic component pitch (Pitch) element, a harmonic component amplitude (Amplitude) element, a non-harmonic component waveform (Timbre) element, and a non-harmonic component amplitude (Amplitude). One of the elements
It may consist of three elements. This is preferable because the rendition style modules can be freely combined and used for each component.

【0025】このように、様々な自然楽器の様々な演奏
態様による演奏音の波形データを全波形データで持つの
ではなく、波形形状の変化に必要な一部の波形(例え
ば、アタック部波形、ボディ部波形、リリース部波形、
ジョイント部波形等)のみを抽出し、さらに成分、要
素、代表点といった階層的な圧縮手法を用いて、データ
圧縮された形で波形データをハードディスク109に記
憶することから、波形データを記憶するために必要なハ
ードディスク109の記憶容量を削減することができる
ようになっている。
As described above, the waveform data of the performance sounds of various natural musical instruments in various performance modes are not included in the entire waveform data, but some of the waveforms required for changing the waveform shape (for example, an attack portion waveform, Body part waveform, release part waveform,
Waveform data is stored in the hard disk 109 in a compressed form using a hierarchical compression method such as components, elements, and representative points. The required storage capacity of the hard disk 109 can be reduced.

【0026】3.波形合成処理 図1に示す波形生成装置において、波形の合成はコンピ
ュータがこの発明に係る波形合成処理を実現する所定の
プログラム(ソフトウエア)を実行することにより実施
される。図4は、前記波形合成処理を実現する所定のプ
ログラム(「データベースに基づく楽音合成処理」)の
フローチャートの一実施形態を示したものである。但
し、本実施形態においては、プログラムによって実現さ
れる様々な機能は相互に独立しているため、図5に示す
機能ブロック図に基づいて動作を説明する。また、この
種のプログラムの形態に限らず、波形合成処理を専用ハ
ードウエア装置の形態で実施するようにしてもよい。こ
の場合、図5は、図4と同様の波形合成処理を専用ハー
ドウエア装置の形態で構成した場合のブロック図にな
る。そこで、以降は、主に、図5に従って説明し、図4
については対応するステップを括弧書きして示す。
3. Waveform Synthesis Process In the waveform generation device shown in FIG. 1, the synthesis of the waveform is performed by a computer executing a predetermined program (software) for realizing the waveform synthesis process according to the present invention. FIG. 4 shows an embodiment of a flowchart of a predetermined program for realizing the waveform synthesizing process ("musical tone synthesizing process based on database"). However, in the present embodiment, since various functions realized by the program are mutually independent, the operation will be described based on the functional block diagram shown in FIG. Also, the waveform synthesis processing is not limited to this type of program, and may be performed in the form of a dedicated hardware device. In this case, FIG. 5 is a block diagram in the case where the same waveform synthesis processing as in FIG. 4 is configured in the form of a dedicated hardware device. Therefore, hereinafter, the description will be mainly made with reference to FIG.
For, the corresponding steps are shown in parentheses.

【0027】3.1.曲データ再生部101A 曲データ再生部101Aは、奏法記号付き曲データの再
生処理を行う(ステップS11)。最初に、曲データ再
生部101Aは奏法記号付き曲データ(演奏情報)を受
信する。通常の楽譜には、そのままではMIDIデータ
とならないような強弱記号(クレッシェンドやデクレッ
シェンド等)、テンポ記号(アレグロやリタルダンド
等)、スラー記号、テヌート記号、アクセント記号等の
音楽記号が付されている。そこで、これらの記号を「奏
法記号」としてデータ化して、この「奏法記号」を含む
MIDI曲データが「奏法記号付き曲データ」である。
「奏法記号」は、チャートIDとチャートパラメータと
から構成する。チャートIDは楽譜に記載される音楽記
号を示すIDであり、チャートパラメータはチャートI
Dで示される音楽記号の内容の程度を示すパラメータで
ある。例えば、チャートIDが“ビブラート”を示す場
合にはビブラートの速さや深さ等がチャートパラメータ
として付与され、チャートIDが“クレッシェンド”を
示す場合にはクレッシェンドのスタート時の音量、クレ
シェンドのエンド時の音量、音量変化する時間長等がチ
ャートパラメータとして付与される。
3.1. Music Data Reproduction Unit 101A The music data reproduction unit 101A performs reproduction processing of music data with performance style symbols (step S11). First, the music data reproduction unit 101A receives music data with performance symbols (performance information). Musical symbols such as dynamic symbols (crescendo, decrescendo, etc.), tempo symbols (allegro, ritardand, etc.), slur symbols, tenuto symbols, accent symbols, etc., which do not directly become MIDI data, are attached to ordinary music scores. . Therefore, these symbols are converted into data as “performance symbols”, and MIDI music data including the “performance symbols” is “music data with performance symbols”.
The “rendering style symbol” includes a chart ID and a chart parameter. The chart ID is an ID indicating a music symbol described in the musical score, and the chart parameter is a chart I.
A parameter indicating the degree of the content of the music symbol indicated by D. For example, when the chart ID indicates “vibrato”, the speed or depth of the vibrato is given as a chart parameter, and when the chart ID indicates “crescendo”, the volume at the start of the crescendo and the end at the end of the crescendo. The volume, the length of time during which the volume changes, and the like are given as chart parameters.

【0028】3.2.楽譜解釈部101B 楽譜解釈部(プレーヤー)101Bでは、楽譜解釈処理
を行う(ステップS12)。具体的には、曲データに含
まれるMIDIデータと上述した「奏法記号」(チャー
トIDとチャートパラメータ)を奏法指定情報(奏法I
Dと奏法パラメータ)に変換し、時刻情報とともに奏法
合成部(アーティキュレーター)101Cに出力する。
一般的に、同じ音楽記号でも演奏家により記号の解釈が
異なって、演奏家毎に異なった演奏方法(すなわち、奏
法若しくはアーティキュレーション)で演奏が行われる
ことがある。あるいは、音符の並び方等によっても、演
奏家毎に異なった演奏方法で演奏が行われることもあ
る。そこで、そのような楽譜上の記号(音楽記号や音符
の並び方等)を解釈する知識をエキスパートシステム化
したものが楽譜解釈部101Bである。
3.2. Music score interpretation unit 101B The music score interpretation unit (player) 101B performs a music score interpretation process (step S12). More specifically, the MIDI data included in the music data and the above-described “reproduction style symbol” (chart ID and chart parameter) are stored in the rendition style specification information (reproduction style I).
D and performance parameter) and outputs it to the performance synthesis section (articulator) 101C together with the time information.
In general, even for the same musical symbol, the interpretation of the symbol differs depending on the performer, and a performance may be performed in a different play style (that is, a playing style or articulation) for each performer. Alternatively, a performance may be performed in a different performance method for each musician depending on the arrangement of notes and the like. Thus, the score interpreting unit 101B is a system in which knowledge for interpreting such symbols (music symbols, arrangement of musical notes, and the like) on the score is converted into an expert system.

【0029】楽譜解釈部101Bにおける楽譜上の記号
を解釈する際の基準の一例としては、以下のようなもの
がある。例えば、ビブラートは8分音符以上でないとか
けられない。スタッカートでは自然にダイナミクスが大
きくなる。テヌート度で音符の減衰率が決まる。レガー
トは1音中で減衰しない。8分音符ビブラートのスピー
ドは音価でほぼ決まる。音高によってダイナミクスは異
なる。更には、1フレーズ内の音高の上昇又は下降によ
るダイナミクスの変化、減衰ダイナミクスはdbリニ
ア、テヌートやスタッカート等に応じた音符の長さの変
化、アタック部のベンドアップの記号に応じたベンドア
ップの幅とカーブ、といったような各種の解釈基準があ
る。楽譜解釈部101Bはこのような基準に従って解釈
を楽譜に対して行うことにより、楽譜を演奏データに変
換する。更に、楽譜解釈部101Bは、ユーザからのプ
レーヤー指定、すなわちユーザにより誰の演奏か(奏法
か)の指定に応じて上述の楽譜解釈処理を行う。楽譜解
釈部101Bは、このプレーヤー指定に応じて楽譜の解
釈方法を異ならせて楽譜を解釈する。例えば、この複数
プレーヤーに対応した異なる楽譜解釈方法はデータベー
スに蓄積されており、楽譜解釈部101Bはユーザから
のプレーヤー指定に応じて選択的に楽譜解釈方法を異な
らせて楽譜の解釈を行う。
The following are examples of criteria for interpreting symbols on a musical score in the musical score interpretation unit 101B. For example, vibrato can only be played with eighth notes or more. In staccato, the dynamics naturally increase. The note attenuation rate is determined by the degree of tenuto. Legato does not decay in one note. The eighth note vibrato speed is largely determined by the note value. The dynamics differ depending on the pitch. Furthermore, changes in dynamics due to the rise or fall of the pitch in one phrase, attenuation dynamics: db linear, change in note length according to tenuto or staccato, etc. There are various interpretation criteria, such as width and curve. The musical score interpretation unit 101B converts the musical score into performance data by interpreting the musical score according to such criteria. Further, the musical score interpretation unit 101B performs the above-described musical score interpretation processing in accordance with the player's designation from the user, that is, the user's designation of the performance (performance style). The score interpretation unit 101B interprets the score by changing the interpretation method of the score according to the player's designation. For example, different musical score interpretation methods corresponding to the plurality of players are stored in a database, and the musical score interpretation unit 101B selectively interprets the musical score by changing the musical score interpretation method according to the player's designation from the user.

【0030】なお、楽譜の解釈結果を示すデータを予め
含むように曲データ(演奏情報)を構成してもよい。そ
のような予め楽譜を解釈した結果のデータを含む曲デー
タを入力した場合には、上述した処理を行う必要がない
ことは言うまでもない。また、楽譜解釈部101B(ス
テップS12)における楽譜の解釈処理は全自動で行う
ようにしてもよいし、ユーザによる人為的入力操作を適
宜介在させて行うようにしてもよい。
The music data (performance information) may be configured to include data indicating the interpretation result of the musical score in advance. Needless to say, when the music data including the data as a result of the interpretation of the musical score is input, the above-described processing is not required. Further, the interpretation process of the score in the score interpretation unit 101B (step S12) may be performed fully automatically, or may be performed with an artificial input operation by the user as appropriate.

【0031】ここで、楽譜解釈部101Bにおいて作成
される演奏データの内容を図21を参照し説明する。演
奏データは、通常のSMF(スタンダードMIDIフォ
ーマット)と同様に、ヘッダと複数のトラックとから構
成されている。各トラックには、プログラムチェンジお
よびイベントデータ(ノートオン、ノートオフ等)が含
まれているが、本実施形態においては、アタック部、ボ
ディ部、ジョイント部およびリリース部のモジュールを
指定するモジュール指定部(奏法IDと奏法パラメータ
を含む奏法指定情報)が含まれている。これらモジュー
ル指定部は、実際には未定義のシステム・エクスクルー
シブ・メッセージやメタイベント、14ビットのコント
ロールチェンジ等が用いられる。さらに、各トラックに
は、これらイベントデータまたはモジュール指定部間の
時間差を指定する時間差データが含まれている。
Here, the contents of the performance data created in the musical score interpretation section 101B will be described with reference to FIG. The performance data is composed of a header and a plurality of tracks, similarly to a normal SMF (standard MIDI format). Each track includes program change and event data (note-on, note-off, etc.). In the present embodiment, a module specifying unit for specifying an attack unit, a body unit, a joint unit, and a release unit. (Reproduction style designation information including a rendition style ID and a rendition style parameter) is included. These module designation units actually use undefined system exclusive messages, meta events, 14-bit control changes, and the like. Further, each track includes these event data or time difference data for specifying a time difference between the module specifying units.

【0032】ここで、各トラックに音色を指定するプロ
グラムチェンジ、すなわち新しいデータベース(奏法テ
ーブル+コードブック)を指定するプログラムチェンジ
が含まれていた場合には、楽譜解釈部101Bは該プロ
グラムチェンジを予測データとして波形合成部101D
に供給する。これは、波形合成部101Dは、次に使用
されるベクトルデータを予測してコードブックから読み
出すため、予測範囲をある程度絞りこむためにプログラ
ムチェンジを特定したものである(詳細は後述する)。
なお、予測データには、他の種々のデータも含まれる。
楽譜解釈部101Bにおいては曲データに基づいて、
「その後の奏法指定を示すデータ」が予測データとして
波形合成部101Dに供給される。その予測データの一
つとして上記プログラムチェンジが含まれるのである。
If each track contains a program change that specifies a tone, that is, a program change that specifies a new database (reproduction style table + codebook), the musical score interpretation unit 101B predicts the program change. Waveform synthesis unit 101D as data
To supply. This is because the waveform synthesis unit 101D specifies a program change in order to narrow down the prediction range to some extent in order to predict the vector data to be used next and read it from the codebook (details will be described later).
Note that the prediction data includes various other data.
In the music score interpretation unit 101B, based on the music data,
"Data indicating subsequent performance style designation" is supplied to waveform synthesizing section 101D as prediction data. The program change is included as one of the prediction data.

【0033】3.3.奏法合成部101C 奏法合成部(アーティキュレーター)101Cは楽譜解
釈部(プレーヤー)101Bにより変換された奏法指定
(奏法ID+奏法パラメータ)に基づいて奏法テーブル
を参照して、奏法指定(奏法ID+奏法パラメータ)に
応じたパケットストリーム(あるいはベクトルストリー
ムとも呼ぶ)及び奏法パラメータに応じた該ストリーム
に関するベクトルパラメータを生成し、波形合成部10
1Dに供給する(ステップS13)。パケットストリー
ムとして波形合成部101Dに供給されるデータは、ピ
ッチ(Pitch)要素及び振幅(Amplitude)要素に関して
はパケットの時刻情報、ベクトルID、代表点値列など
であり、波形(Timbre)要素に関してはベクトルID、
時刻情報などである(詳しくは後述する)。
3.3. The rendition style synthesizing section (articulator) 101C refers to the rendition style table based on the rendition style specification (reproduction style ID + reproduction style parameter) converted by the score interpretation section (player) 101B, and specifies the rendition style (reproduction style ID + reproduction style parameter). And a vector parameter related to the stream corresponding to the rendition style parameter.
1D (step S13). The data supplied to the waveform synthesizing unit 101D as a packet stream includes packet time information, a vector ID, a representative point value sequence, etc. for a pitch (Pitch) element and an amplitude (Amplitude) element, and data for a waveform (Timbre) element. Vector ID,
Time information and the like (details will be described later).

【0034】次に、波形合成部101Dはパケットスト
リームに応じてコードブックからベクトルデータを取り
出し、該ベクトルデータをベクトルパラメータに応じて
変形し、変形したベクトルデータに基づいて波形を合成
する(ステップS14)。それから、他パートの波形生
成処理を行う(ステップS15)。ここで、他パートと
は、複数の演奏パートのうち奏法合成処理を行わない、
通常の楽音波形合成処理が適用される演奏パートであ
る。例えば、これらの他のパートは通常の波形メモリ音
源方式で楽音生成を行う。この「他パートの波形生成処
理」は、専用のハードウエア音源(外部の音源ユニット
やコンピュータに装着可能な音源カード)に行わせても
よい。説明を簡略化するために、この実施形態では奏法
(若しくはアーティキュレーション)に応じた楽音生成
を行うのは1パートのみの場合とする。勿論、複数パー
トで奏法再生してもよい。
Next, the waveform synthesizing unit 101D extracts vector data from the codebook according to the packet stream, modifies the vector data according to the vector parameters, and synthesizes a waveform based on the deformed vector data (step S14). ). Then, a waveform generation process for another part is performed (step S15). Here, the other part means that the performance synthesis processing is not performed among the plurality of performance parts.
This is a performance part to which normal tone waveform synthesis processing is applied. For example, these other parts generate musical tones using a normal waveform memory sound source system. This “other part waveform generation processing” may be performed by a dedicated hardware sound source (an external sound source unit or a sound source card attachable to a computer). For simplicity of explanation, in this embodiment, it is assumed that a musical tone is generated in accordance with a playing style (or articulation) for only one part. Of course, the playing style may be reproduced in a plurality of parts.

【0035】図6は、上述した奏法合成部101Cにお
ける奏法合成処理の流れを説明するためのブロック図で
ある。ただし、図6では奏法モジュールとコードブック
が別々に記憶されているように図示したが、実際には両
方ともハードディスク109のデータベース内に記憶さ
れている。奏法合成部101Cは、楽譜解釈部101B
からの奏法指定(奏法ID+奏法パラメータ)と時刻情
報のデータに基づいて、波形合成部101Dに供給する
各種パケットストリームを作成する。奏法合成部101
Cで各音色毎に使用している奏法モジュールは固定的で
はなく、ユーザが新たに奏法モジュールを使用中の奏法
モジュールに追加したり、使用している奏法モジュール
の一部の奏法モジュールの使用を中止したりすることが
できる。また、奏法合成部101Cでは、選択された要
素データと奏法パラメータの値との間のズレ分を補正す
るための補正情報を作成する処理や、前後の奏法モジュ
ールの波形特性を滑らかに接続する接続部の平滑化など
の処理も行う(詳しくは後述する)。なお、標準的には
楽譜解釈部101Bから奏法合成部101Cに対してデ
ータが与えられるがそれに限らず、前述のとおり、楽譜
解釈部101Bにより既に解釈の終わっている奏法指定
付き曲データ乃至人間が楽譜の解釈をして奏法IDや奏
法パラメータを付与した奏法指定付き曲データを用意し
て、それを再生したデータを奏法合成部101Cに供給
するようにしてもよい。
FIG. 6 is a block diagram for explaining the flow of the rendition style synthesizing process in the rendition style synthesizing section 101C. Although FIG. 6 shows that the rendition style module and the code book are separately stored, actually both are stored in the database of the hard disk 109. The rendition style synthesizing unit 101C includes a musical score interpretation unit 101B.
A variety of packet streams to be supplied to the waveform synthesizing unit 101D are created based on the performance style designation (performance style ID + performance style parameter) and time information data. Performance synthesis section 101
The playing style module used for each tone in C is not fixed, and the user may add a new playing style module to the currently used playing style module or use a part of the used playing style module. Can be stopped. Also, the rendition style synthesizing unit 101C performs processing for creating correction information for correcting a deviation between the selected element data and the rendition style parameter value, and connection for smoothly connecting waveform characteristics of the preceding and following rendition style modules. Processing such as smoothing of the section is also performed (details will be described later). Note that data is normally given from the score interpretation unit 101B to the rendition style synthesizing unit 101C, but the present invention is not limited to this. The music score may be interpreted to prepare music data with performance style designation to which the performance style ID and the performance parameter are added, and the reproduced data may be supplied to the performance style synthesis unit 101C.

【0036】図7は、奏法合成処理の一実施形態を詳細
に示したフローチャートである。奏法合成部101C
は、奏法ID及び奏法パラメータに応じて奏法テーブル
から奏法モジュールの選択を行う(ステップS21)。
すなわち、楽譜解釈部101Bから送信された奏法ID
(楽器情報+モジュールパーツ名)と奏法パラメータに
応じて1つの奏法モジュールを選択する。この際に、楽
譜解釈部101Bは楽譜を解釈する前に楽器情報の示す
音色に対応してどのようなモジュールパーツが奏法テー
ブルに存在するかを予めデータベースをチェックして確
認し、存在しているパーツの範囲で奏法IDを指定す
る。なお、存在しないパーツが指定された場合には、そ
の代わりに類似の特性を有する奏法IDが選択されるよ
うにしてもよい。次に、該指定された奏法IDと奏法パ
ラメータに応じて複数の要素データを選択する(ステッ
プS22)。すなわち、指定された奏法IDと奏法パラ
メータとにより奏法テーブルを参照することにより、奏
法モジュールを特定し、該モジュールから該奏法パラメ
ータに対応した複数の要素データを選択する。この際
に、奏法モジュール中に奏法パラメータに完全一致する
要素データが存在しない場合には、その値に近い奏法パ
ラメータに対応した要素データが選択される。
FIG. 7 is a flowchart showing one embodiment of the rendition style synthesizing process in detail. Performance synthesis section 101C
Selects a rendition style module from the rendition style table according to the rendition style ID and the rendition style parameter (step S21).
That is, the rendition style ID transmitted from the score interpretation unit 101B.
One playing style module is selected according to (instrument information + module part name) and playing style parameters. At this time, before interpreting the score, the score interpreting unit 101B checks the database to check in advance what kind of module parts are present in the rendition style table corresponding to the tone indicated by the instrument information, and exists. Designate a rendition style ID within the range of parts. When a non-existent part is designated, a rendition style ID having similar characteristics may be selected instead. Next, a plurality of element data are selected according to the specified rendition style ID and rendition style parameter (step S22). That is, by referring to the rendition style table based on the specified rendition style ID and rendition style parameter, the rendition style module is specified, and a plurality of element data corresponding to the rendition style parameter is selected from the module. At this time, if there is no element data that completely matches the rendition style parameter in the rendition style module, the element data corresponding to the rendition style parameter close to the value is selected.

【0037】次に、時刻情報に応じて要素データ中の各
位置の時刻を算出する(ステップS23)。すなわち、
各要素データを、時刻情報に基づいて絶対的な時間位置
に配置する。具体的には、時刻情報に基づいて、各相対
的な時間位置を示す要素データから対応する絶対時間を
算出する。こうして、各要素データのタイミングを決定
する(図3参照)。そして、奏法パラメータに応じて各
要素データの値を補正する(ステップS24)。すなわ
ち、選択された要素データと奏法パラメータの値との間
のずれ分を補正する。例えば、楽譜解釈部101Bから
送信されたAltoSax [NormalAttack]モジュールのAttack
直後の音量(奏法パラメータ)が「95」であり、奏法
テーブルに存在するAltoSax [NormalAttack]モジュール
のAttack直後の音量が「100」である場合、奏法合成
部101CはAttack直後の音量が「100」であるAlto
Sax [NormalAttack]モジュールの要素データを選択す
る。しかし、このままではAttack直後の音量が「10
0」のままであることから、選択された要素データの代
表点に対して補正を行うことによってAttack直後の音量
を「95」に補正する。このように、選択された要素デ
ータの値を送信された奏法パラメータの値に近づけるよ
うにして補正を行う。また、設定されているマイクロチ
ューニング(楽器の調律)の値に応じた補正や楽器の音
量変化特性に応じた音量の補正等も行う。これらの補正
は各要素データの代表点値を変化することにより行わ
れ、代表点値を大きく変化することもある。すなわち、
補正を行うのに必要十分なデータが代表点であり、この
代表点をコントロールすることによって各種の補正を行
う。
Next, the time at each position in the element data is calculated according to the time information (step S23). That is,
Each element data is arranged at an absolute time position based on the time information. Specifically, based on the time information, a corresponding absolute time is calculated from the element data indicating each relative time position. Thus, the timing of each element data is determined (see FIG. 3). Then, the value of each element data is corrected according to the performance style parameter (step S24). That is, the deviation between the selected element data and the value of the rendition style parameter is corrected. For example, the Attack of the AltoSax [NormalAttack] module transmitted from the score interpretation unit 101B
When the volume immediately after the attack (reproduction style parameter) is “95” and the volume immediately after the Attack of the AltoSax [NormalAttack] module existing in the performance style table is “100”, the volume immediately after the Attack is set to “100” by the rendition style synthesis unit 101C. Alto
Sax Select element data of [NormalAttack] module. However, in this state, the volume immediately after Attack is "10
Since the value remains “0”, the volume immediately after Attack is corrected to “95” by performing correction on the representative point of the selected element data. As described above, the correction is performed so that the value of the selected element data is closer to the value of the transmitted performance parameter. Further, correction is performed according to the set value of the micro-tuning (tuning of the musical instrument), and the volume is corrected according to the volume change characteristic of the musical instrument. These corrections are performed by changing the representative point value of each element data, and the representative point value may change greatly. That is,
The data necessary and sufficient for the correction is the representative point, and various corrections are performed by controlling the representative point.

【0038】なお、上記ステップS23では、上記奏法
パラメータのような補正情報によって、上記時刻情報が
示す時間位置を補正するようにしてもよい。例えば、演
奏データに基づいて得られる時間位置と上記時刻情報が
示す時間位置とが一致しない場合に、演奏データに基づ
いて得られる時間位置に近い時間位置を示す時刻情報を
選択して、そこで取得した時刻位置情報を演奏データに
応じて補正することで、演奏データの意図する時刻位置
情報を得ることができる。また、演奏データがタッチや
ベロシティのような可変制御ファクタを含む場合は、そ
の可変制御ファクタに応じて時刻位置情報を補正するこ
とで、演奏データに応じた時刻位置情報の可変制御を行
うことができる。補正情報は、このような時刻位置補正
を行うための情報を含む。
In step S23, the time position indicated by the time information may be corrected using correction information such as the performance style parameter. For example, when the time position obtained based on the performance data does not match the time position indicated by the time information, time information indicating a time position close to the time position obtained based on the performance data is selected and acquired there. By correcting the obtained time position information according to the performance data, the time position information intended by the performance data can be obtained. When the performance data includes a variable control factor such as touch or velocity, the time position information can be variably controlled by correcting the time position information according to the variable control factor. it can. The correction information includes information for performing such time position correction.

【0039】更に、各要素データを調整して隣り合う奏
法モジュールの接続部を平滑化するためにリンク処理を
行う(ステップS25)。すなわち、前後の奏法モジュ
ールにおける接続部の代表点を互いに接近させて接続す
ることによって、前後の奏法モジュールの波形特性が滑
らかになるようにする。このような接続若しくはリンク
処理は、調和成分の波形(Timbre)、振幅(Amplitud
e)、ピッチ(Pitch)等の各要素毎に、あるいは調和外
成分の波形(Timbre)、振幅(Amplitude)の各要素毎
に、別々に行われる。
Further, a link process is performed to adjust each element data and smooth the connection between adjacent performance style modules (step S25). That is, by connecting the representative points of the connection portions in the front and rear performance style modules close to each other, the waveform characteristics of the front and rear performance style modules are made smooth. Such connection or link processing includes a harmonic component waveform (Timbre) and amplitude (Amplitud).
e), each of the elements such as pitch, or each of the non-harmonic component waveforms (Timbre) and amplitude (Amplitude).

【0040】この際、前の奏法モジュールの「リンク開
始点」から、後の奏法モジュールの「リンク終了点」ま
での範囲で調整を行う。すなわち、「リンク開始点」か
ら「リンク終了点」の範囲内にある代表点を「歩みより
率」に基づいて調整する。この「歩みより率」は、前の
奏法モジュールと後の奏法モジュールからそれぞれどれ
だけ歩み寄ったところで接続するかを制御するためのパ
ラメータであり、後述するように前後の奏法モジュール
の組み合わせに従って決定される。また、前後の奏法モ
ジュールを接続した際に、波形の接続がうまく行かない
場合には、前後いずれかの奏法モジュールでその波形特
性のベクトルIDを間引くことにより接続を滑らかにす
る。この間引きを実現するために、「奏法モジュール組
み合わせテーブル」と、これから参照される「間引き実
行パラメータ範囲テーブル」と、さらにこれから参照さ
れる「間引き時間テーブル」を用意する。
At this time, the adjustment is performed in the range from the “link start point” of the preceding rendition style module to the “link end point” of the subsequent rendition style module. That is, the representative point within the range from the "link start point" to the "link end point" is adjusted based on the "rate from step". The “rate from step” is a parameter for controlling how far the connection is made from the preceding and later playing style modules, and is determined according to the combination of the preceding and following playing style modules as described later. . If the connection of the waveforms is not successful when the preceding and following rendition style modules are connected, the connection is smoothed by thinning out the vector ID of the waveform characteristic in one of the front and rear rendition style modules. In order to realize this thinning, a "performance style module combination table", a "thinning execution parameter range table" to be referred to hereafter, and a "thinning time table" to be referred to hereafter are prepared.

【0041】この他にも、以下のような楽譜解釈部10
1Bにおけるリンク処理により波形特性を滑らかに接続
することができる。例えば、奏法モジュールとは関係な
く、奏法パラメータ(ダイナミクス値、ピッチパラメー
タ値等)の不連続部分を滑らかに接続する。あるいは、
ビブラートからリリースへと移行する場合にビブラート
を早めに減少させることにより、滑らかに接続する。
In addition to the above, the score interpreting section 10 as follows.
Waveform characteristics can be smoothly connected by the link processing in 1B. For example, discontinuous portions of performance style parameters (dynamic values, pitch parameter values, etc.) are connected smoothly regardless of the performance style module. Or,
Make a smooth connection by reducing vibrato early when going from vibrato to release.

【0042】ここで、上述のリンク処理について詳しく
説明する。すなわち、前後の奏法モジュールの接続部を
平滑化する(ステップS25参照)ための各要素データ
の調整について簡単に説明する。まず、図8を用いて奏
法モジュールが振幅(Amplitude)要素又はピッチ(Pit
ch)要素と対応する場合のリンク処理について説明す
る。
Here, the above link processing will be described in detail. That is, adjustment of each element data for smoothing the connection part of the preceding and succeeding rendition style modules (see step S25) will be briefly described. First, referring to FIG. 8, the playing style module determines whether an amplitude element or a pitch (Pit
A description will be given of the link processing in the case of corresponding to the (ch) element.

【0043】前の奏法モジュールと後の奏法モジュール
との接続部における代表点の値の不連続により両者間の
接続点に段差が生じている場合、まずダイナミクス接続
点(Amplitudeの場合)あるいはピッチ接続点(Pitchの
場合)の目標値を、前後どちらの奏法モジュール側の値
により近づけるかという指標の「歩みより率」を決定す
る。本実施形態では「歩みより率」が図示のようなテー
ブルによって与えられるとする。例えば前の奏法モジュ
ールのベクトルIDが「3」であり、後の奏法モジュー
ルのベクトルIDが「7」である場合の「歩みより率」
はテーブルから「30」と決定される。こうして決定され
た「歩みより率」により前の奏法モジュールの「リンク
開始点」から「奏法モジュールの終了点」まで、徐々に
目標値に向けてエンベロープ形状を変形する。また、後
の奏法モジュールの「リンク終了点」から「奏法モジュ
ール開始点」まで、徐々に目標値に向けてエンベロープ
形状を変形する。例えば「歩みより率」が「30」と決
定された場合、前の奏法モジュールに対する目標値は
「30」であり、前の奏法モジュールは後の奏法モジュ
ール側に「30」%歩みよりを行う(本実施形態では、
前の奏法モジュールにおける最後の代表点が下方に「3
0」%歩みよりする)。
If there is a step at the connection point between the preceding performance module and the subsequent performance module due to discontinuity in the value of the representative point at the connection point, first, a dynamics connection point (in the case of Amplitude) or a pitch connection The “rate from step” of the index for determining whether the target value of the point (in the case of Pitch) is closer to the value of the performance module before or after the pitch is determined. In the present embodiment, it is assumed that the “rate from step” is given by a table as shown. For example, the “rate from step” when the vector ID of the previous performance module is “3” and the vector ID of the subsequent performance module is “7”
Is determined as “30” from the table. The envelope shape is gradually deformed toward the target value from the “link start point” of the previous rendition style module to the “end point of the rendition style module” according to the “rate from step” thus determined. In addition, the envelope shape is gradually changed from the “link end point” of the later performance style module to the “reproduction style module start point” toward the target value. For example, if the “rate from step” is determined to be “30”, the target value for the previous rendition style module is “30”, and the previous rendition style module performs “30”% step forward on the subsequent rendition style module side ( In this embodiment,
The last representative point in the previous playing style module is "3
0 "% step).

【0044】一方、後の奏法モジュールは前の奏法モジ
ュール側に「70」(100−30)%歩みよりを行う
(本実施形態では、後の奏法モジュールにおける最初の
代表点が上方に「70」%歩みよりする)。また、リン
ク開始点からリンク終了点までに存在する前後の奏法モ
ジュールの複数代表点が上記歩みよりに伴って各々上下
に歩みよりを行う。このように、歩みよりは前後する奏
法モジュールの複数の代表点で行われる。なお、リンク
開始点とリンク終了点は適宜定めてよいが、リンク開始
点やリンク終了点を所望の代表点と同一の点に設定する
と、図に示したようなリンク開始点やリンク終了点にお
けるエンベロープ形状の折れ曲がりがなくなるので望ま
しい。勿論、リンク開始点やリンク終了点を所望の代表
点と同一の点に設定していない場合でも、エンベロープ
形状に折れ曲がりが生じないように歩みよりを行うよう
にしてよいことは言うまでもない。
On the other hand, the subsequent rendition style module performs "70" (100-30)% steps ahead of the previous rendition style module (in the present embodiment, the first representative point in the rear rendition style module is "70" upward). % Step). In addition, a plurality of representative points of the rendition style modules existing before and after the link start point to the link end point perform up and down steps along with the above steps. In this way, the performance is performed at a plurality of representative points of the rendition style module before and after the step. Note that the link start point and the link end point may be appropriately determined. However, if the link start point and the link end point are set to the same point as the desired representative point, the link start point and the link end point as shown in FIG. This is desirable because the envelope shape does not bend. Of course, even when the link start point and the link end point are not set to the same point as the desired representative point, it is needless to say that the step may be performed so that the envelope shape is not bent.

【0045】なお、「歩みより率」の決定は上述した例
に限られるものではない。例えば、接続点の前後で指定
された奏法パラメータに基づいて決定してもよい。また
は、奏法IDや奏法パラメータになる前の演奏データに
基づいて決定してもよい。あるいは、それらのデータの
組み合わせに基づいて決定してもよい。また、上述の例
では「歩みより率」により歩みよりする代表点は1つで
あり、その他の代表点はその歩みよりに伴って適量だけ
歩みよりするようにしたが、複数の代表点各々について
別々に「歩みより率」を決定し、それに従って複数の代
表点を各々「歩みより率」分だけ歩みよりするようにし
てもよい。
It should be noted that the determination of the "rate from step" is not limited to the above example. For example, it may be determined based on performance style parameters specified before and after the connection point. Alternatively, the determination may be made based on the performance data before the performance style ID or the performance style parameters. Or you may determine based on the combination of those data. Also, in the above example, the number of representative points to be taken from the step based on the “rate from the step” is one, and the other representative points are to be taken a proper amount along the step. The “ratio from step” may be determined separately, and a plurality of representative points may be respectively deviated from the step by the “ratio than step”.

【0046】次に、奏法モジュールが波形(Timbre)要
素である場合のリンク処理について説明する。図9〜図
12は、奏法モジュールが波形(Timbre)要素である場
合のリンク処理を説明するための概念図である。図9は
アタック部波形とボディ部波形とを接続した場合の波形
の間引きを説明するための概念図であり、図10はボデ
ィ部波形とリリース部波形とを接続した場合における波
形の間引きを説明するための概念図である。図9では、
ボディ部波形は5つのループ波形L1〜L5からなり、
各々所定の時間範囲でループ再生されるものとする。同
様に、図10のボディ部波形は6つのループ波形L1´
〜L6´からなるものとする。
Next, the link processing in the case where the rendition style module is a waveform (Timbre) element will be described. FIG. 9 to FIG. 12 are conceptual diagrams for explaining the link processing when the rendition style module is a waveform (Timbre) element. FIG. 9 is a conceptual diagram for explaining thinning of a waveform when an attack part waveform and a body part waveform are connected, and FIG. 10 is an explanatory view of a waveform thinning when a body part waveform and a release part waveform are connected. It is a conceptual diagram for performing. In FIG.
The body part waveform is composed of five loop waveforms L1 to L5,
It is assumed that loop playback is performed in a predetermined time range. Similarly, the body part waveform of FIG. 10 has six loop waveforms L1 '.
~ L6 '.

【0047】波形に関する要素データの調整(つまり、
波形のリンク処理)の方法には種々あるが、その一例と
して、例えばアタック部あるいはジョイント部の奏法モ
ジュールとボディ部の奏法モジュールとの接続(あるい
は、ボディ部の奏法モジュールとリリース部あるいはジ
ョイント部の奏法モジュールとの接続)において、波形
の部分的間引きにより滑らかに接続する方法を提案す
る。波形と波形とを接続する際に、クロスフェード合成
することはよく知られている。しかし、図9の例の場合
のように、接続時点から最初のループ波形L1の開始位
置までの時間tが短い場合、短い時間t内で急なクロス
フェード合成をしなければならなくなる。そのような急
なクロスフェード波形合成、つまり接続する波形と波形
との間の時間が非常に接近している場合に当該波形間で
クロスフェード波形合成を行うと、それに伴って大きな
ノイズを発生する波形を生ずることになり、好ましくな
い。
Adjustment of the element data relating to the waveform (that is,
There are various methods for linking waveforms). One example is the connection between the playing style module of the attack part or the joint part and the playing style module of the body part (or the playing style module of the body part and the release part or the joint part). We propose a method for smooth connection by partially thinning out waveforms. It is well known that cross-fade synthesis is performed when connecting waveforms. However, when the time t from the connection time to the start position of the first loop waveform L1 is short, as in the case of the example of FIG. 9, a sudden crossfade synthesis must be performed within the short time t. When such a steep cross-fade waveform synthesis, that is, when a time between a connected waveform and a waveform is very close, a cross-fade waveform synthesis is performed between the waveforms, a large noise is generated accordingly. A waveform is generated, which is not preferable.

【0048】そこで、波形の一部を間引き(削除)して
接続する波形と波形との時間間隔を広げることにより、
急なクロスフェード波形合成を行わないようにする。こ
の場合に、アタック部やリリース部あるいはジョイント
部における波形は1つの塊であって、波形を間引くこと
ができないので、この場合はボディ部側のループ波形の
間引きを行う。図9及び図10では、黒く塗りつぶした
長方形で示したループ波形L1、L6´を間引きする。
例えば、図9では接続時点からの時間差が比較的長い2
番目のループ波形L2とアタック部波形の末尾波形とを
クロスフェード合成し、最初のループ波形L1は使用し
ない。同様に、図10ではループ波形L5´とリリース
部波形との間でクロスフェード合成を行い、波形L6´
は使用しない。なお、ジョイント部とは音と音の間(又
は音部分と音部分の間)を任意の奏法でつなぐ波形区間
のことである。
Therefore, by thinning (deleting) a part of the waveform and widening the time interval between the connected waveforms,
Avoid steep crossfade waveform synthesis. In this case, the waveform in the attack portion, the release portion, or the joint portion is one lump, and the waveform cannot be thinned out. In this case, the loop waveform on the body portion side is thinned out. In FIGS. 9 and 10, the loop waveforms L1 and L6 'indicated by black rectangles are thinned out.
For example, in FIG. 9, the time difference from the connection time is relatively long.
Cross-fade synthesis is performed between the second loop waveform L2 and the tail waveform of the attack portion waveform, and the first loop waveform L1 is not used. Similarly, in FIG. 10, crossfade synthesis is performed between the loop waveform L5 'and the release portion waveform, and the waveform L6'
Is not used. It should be noted that the joint portion is a waveform section that connects between sounds (or between sound portions) by an arbitrary playing style.

【0049】また、アタック部の奏法モジュールとリリ
ース部あるいはジョイント部の奏法モジュールとの接続
を波形間引きにより滑らかにする。図11及び図12
は、アタック部波形とリリース部波形とを接続する場合
における波形の間引きを説明するための概念図である。
この場合には、アタック部あるいはリリース部等の奏法
モジュールが波形間引きできる場合とできない場合とが
ある。アタック部の奏法モジュールが波形間引きできる
例としてはベンドアタック部(後半にいくつかのループ
波形を持つ)がある。また、前半にいくつかのループ波
形を持つリリース部の場合も波形間引きが行える。この
ように、波形間引きできる側の奏法モジュールを波形間
引きする。例えば、ベンドアタック部とリリース部とを
接続する場合には、図11に示すようにベンドアタック
部側のループ波形を間引きする(図11では、ベンドア
タック部側の黒く塗りつぶした長方形で示したループ波
形を1つ間引きする)。また、ノーマルアタック部とル
ープ波形を有するリリース部とを接続する場合には図1
2に示すようにリリース部側のループ波形を間引きする
(図12では、リリース部側の黒く塗りつぶした長方形
で示したループ波形を1つ間引きする)。なお、間引く
対象とするループ波形は奏法モジュールと奏法モジュー
ルとの接続部に最も近いループ波形(先頭あるいは最後
に位置するループ波形)とすることに限らず、複数ルー
プ波形から所定の優先順位に従って間引く対象とするル
ープ波形を特定するようにしてもよい。
Further, the connection between the rendition style module in the attack section and the rendition style module in the release section or the joint section is smoothed by waveform thinning. 11 and 12
FIG. 3 is a conceptual diagram for explaining waveform thinning in a case where an attack part waveform and a release part waveform are connected.
In this case, there are cases where the rendition style module such as the attack unit or the release unit can thin out the waveform, and cases where it cannot. An example in which the rendition style module of the attack section can thin out the waveform is a bend attack section (having several loop waveforms in the latter half). Also, in the case of a release section having several loop waveforms in the first half, waveform thinning can be performed. In this manner, the waveform of the rendition style module on which the waveform can be thinned is thinned. For example, when connecting the bend attack part and the release part, the loop waveform on the bend attack part side is thinned out as shown in FIG. One waveform is thinned out). When connecting a normal attack section and a release section having a loop waveform, FIG.
As shown in FIG. 2, the loop waveform on the release section side is thinned out (in FIG. 12, one loop waveform shown by a black rectangle on the release section side is thinned out). The loop waveform to be thinned is not limited to the loop waveform closest to the connection between the rendition style module and the rendition style module (the first or last loop waveform). The target loop waveform may be specified.

【0050】このように、ある奏法モジュールの組み合
わせにおいて、ある奏法パラメータの範囲で接続がうま
く行かない場合に波形を間引くが、これを実現するため
に、例えば「奏法モジュール組み合わせテーブル」と、
これから参照される「間引き実行パラメータ範囲テーブ
ル」と、更にこれから参照される「間引き時間テーブ
ル」を用意する。「奏法モジュール組み合わせテーブ
ル」は、接続する前後の奏法モジュールの組み合わせに
より所定のパラメータを決定するためのテーブルであ
る。「間引き実行パラメータ範囲テーブル」は、上記パ
ラメータ毎に間引きを行う時間の範囲を決定するための
テーブルである。「間引き時間テーブル」は、間引き時
間を決定するためのテーブルである。接続時点と最初の
(又は最後の)ループ波形L1(又はL6´)との時間
差(図9〜図12に示す時間t)が基準の間引き時間よ
り短い場合に、該ループ波形を間引く。
As described above, in a certain combination of performance style modules, waveforms are thinned out when connection is not successful within a certain performance style parameter range. To realize this, for example, a “performance style module combination table”
A “thinning execution parameter range table” to be referred to hereafter and a “thinning time table” to be referred to hereafter are prepared. The “performance style module combination table” is a table for determining a predetermined parameter based on a combination of performance style modules before and after connection. The “thinning execution parameter range table” is a table for determining a time range in which thinning is performed for each parameter. The “thinning time table” is a table for determining a thinning time. When the time difference (time t shown in FIGS. 9 to 12) between the connection time and the first (or last) loop waveform L1 (or L6 ′) is shorter than the reference thinning time, the loop waveform is thinned.

【0051】さらに、奏法モジュールのサンプル長が短
く、当該奏法モジュールの後に続く奏法モジュールが開
始されるよりも前に終了してしまう場合の波形接続につ
いて図13を用いて説明する。ただし、図13では、図
の左側から右側に時系列にA.Sax[BendUpAttack]、A.Sax
[NormalShortBody]、A.Sax[VibratoBody]、A.Sax[Norma
lRelease]の4つの奏法モジュールで波形(Timbre)要
素のパケットストリームを形成している場合について説
明する。各奏法モジュールのサンプル長(区間長)は、
“length”で示す長さで表せられる。図13において、
最上段に記載されている「ノートオン」と「ノートオ
フ」は、MIDIデータのイベントタイミングである。
また、中段に記載されているA.Sax[BendUpAttack]等は
それぞれ奏法IDの発生タイミングであり、note、dyna
mics、depth等はそれぞれ奏法パラメータの発生タイミ
ングを示す。
Further, a description will be given of the waveform connection in the case where the sample length of the rendition style module is short and ends before the rendition style module following the rendition style module starts. However, in FIG. 13, A.Sax [BendUpAttack], A.Sax
[NormalShortBody], A.Sax [VibratoBody], A.Sax [Norma
[Release], a packet stream of a waveform (Timbre) element is formed. The sample length (section length) of each playing style module is
It can be represented by the length indicated by “length”. In FIG.
“Note on” and “note off” described at the top are event timings of MIDI data.
A.Sax [BendUpAttack] and the like described in the middle row are the timings at which the rendition style IDs are generated.
mics, depth, and the like each indicate the timing of generation of the performance style parameter.

【0052】A.Sax [BendUpAttack]モジュールは、時刻
t0から開始される。また、時刻t1は当該モジュール
内のノートオンのタイミングであり、指示されたノート
オンタイミングにあわせる。また、当該モジュールのパ
ケットストリームの内容は、上記note、dynamics、dept
h等の奏法パラメータに基づいて制御される。A.Sax[Nor
malShortBody]モジュールは、アタックモジュール直後
の時刻t2から開始される。時刻t3は、接続部におい
て、その途中からビブラート奏法がスタートしているタ
イミングである。このタイミングは、例えば、曲データ
に付与されたビブラート記号の開始タイミングに基づい
て決定される。時刻t5は、A.Sax[NormalRelease] モ
ジュール内のノートオフタイミングであり、指示された
ノートオフタイミングにあわせる。A.Sax[NormalReleas
e]モジュールの始まりの時刻t4はそれに応じて特定さ
れる。
The A.Sax [BendUpAttack] module starts at time t0. Time t1 is a note-on timing in the module, and is adjusted to the designated note-on timing. In addition, the contents of the packet stream of the relevant module are the above notes, dynamics, dept
It is controlled based on performance parameters such as h. A.Sax [Nor
malShortBody] module is started at time t2 immediately after the attack module. Time t3 is a timing at which the vibrato performance starts in the middle of the connection. This timing is determined based on, for example, the start timing of the vibrato symbol added to the music data. Time t5 is a note-off timing in the A.Sax [NormalRelease] module, and is adjusted to the specified note-off timing. A.Sax [NormalReleas
e] The start time t4 of the module is specified accordingly.

【0053】すなわち、時刻t1においてノートオンさ
れ、時刻t5においてノートオフされることから、実際
に当該パケットストリームから生成される波形に従って
発音される時間は時刻t1から時刻t5までの時間であ
る。このようなパケットストリームの場合に、時刻t2
から時刻t4までの時間長と、その間のA.Sax[NormalRe
lease] モジュールとA.Sax[VibratoBody] モジュールの
各サンプル長lengthの合計が合わないことが多く、適切
に対処する必要が生ずる。このような場合、同じ奏法モ
ジュールを繰り返すことによってサンプル長lengthの合
計を前記時間長にあわせるか、奏法モジュールのサンプ
ル長を可変して前記時間長に合わせるか、あるいは前記
両方を組み合わせて用いて前記時間長を合わせる。この
ようにして、各モジュール間で調節して波形接続を行う
ようになっている。上述の例では、A.Sax[NormalShortB
ody]モジュールを繰り返すことにより、その後に続くA.
Sax[VibratoBody] モジュールと波形接続を行ってい
る。同様に、A.Sax[VibratoBody] モジュールを繰り返
すことにより、その後に続くA.Sax[NormalRelease]モジ
ュールとの波形接続を行っている。
That is, since the note-on is performed at time t1 and the note-off is performed at time t5, the time during which the sound is actually generated according to the waveform generated from the packet stream is the time from time t1 to time t5. In the case of such a packet stream, at time t2
Time from time t4 to A.Sax [NormalRe
In many cases, the sum of the sample lengths of the [lease] module and the A.Sax [VibratoBody] module does not match, and it is necessary to take appropriate measures. In such a case, the total of the sample length length is adjusted to the time length by repeating the same rendition style module, or the sample length of the rendition style module is adjusted to the time length, or the both are used in combination. Adjust the length of time. In this way, the waveform connection is performed by adjusting between the modules. In the above example, A.Sax [NormalShortB
ody] module, so that A.
Wave connection with Sax [VibratoBody] module. Similarly, by repeating the A.Sax [VibratoBody] module, the waveform connection with the subsequent A.Sax [NormalRelease] module is performed.

【0054】上記のように、奏法モジュールを複数回繰
り返して波形接続を行う場合、複数繰り返す側の奏法モ
ジュールの時間長を可変する。この時間長の可変制御
は、上述した例ではA.Sax[NormalShortBody]モジュール
あるいはA.Sax[VibratoBody]モジュールにおける代表点
を移動することによってなされる。すなわち、A.Sax[No
rmalShortBody]モジュールあるいはA.Sax[VibratoBody]
モジュールを構成する複数のループ波形間のクロスフ
ェード接続の時間を変化するなどの適宜の方法によって
実現する。ループ波形の場合は、ループ回数乃至ループ
継続時間を可変することによって、比較的簡単に、ルー
プ再生波形全体の時間長を可変制御することができる。
一方、ノンループ波形の場合は、時間軸上におけるその
存在長を可変制御することはそれほど簡単ではない。従
って、上記のように、ノンループ波形とループ波形とか
らなる一連の音の波形において、ループ読出区間の波形
データの時間軸を伸縮可変制御することで全体の発音時
間長を可変制御するように工夫することは、時間伸縮制
御を容易にするので極めて好ましい。そのために、特開
平10‐307586号で本出願人が先に提案した「Ti
me Stretch & Compress」制御(略して「TSC制
御」)を用いるとよい。特に、特殊な奏法に対応するノ
ンループ波形において時間軸の長さを可変するために、
上記「TSC制御」は好ましく応用できる。
As described above, when performing the waveform connection by repeating the rendition style module a plurality of times, the time length of the rendition style module on the repetition side is varied. The variable control of the time length is performed by moving the representative point in the A.Sax [NormalShortBody] module or the A.Sax [VibratoBody] module in the example described above. That is, A.Sax [No
rmalShortBody] module or A.Sax [VibratoBody]
This is realized by an appropriate method such as changing the time of cross-fade connection between a plurality of loop waveforms constituting a module. In the case of a loop waveform, the time length of the entire loop reproduction waveform can be relatively easily controlled by varying the number of loops or the loop duration.
On the other hand, in the case of a non-loop waveform, it is not so easy to variably control its existence length on the time axis. Therefore, as described above, in a series of sound waveforms composed of a non-loop waveform and a loop waveform, the entire sounding time length is variably controlled by variably controlling the time axis of the waveform data in the loop readout section. It is very preferable to perform time expansion / contraction control. For this purpose, in the Japanese Patent Application Laid-Open No. 10-307586, "Ti
It is preferable to use “me Stretch & Compress” control (abbreviated as “TSC control”). In particular, in order to vary the length of the time axis in non-loop waveforms corresponding to special playing styles,
The above “TSC control” can be preferably applied.

【0055】このようにして作成されるパケットストリ
ームの一例を概念的に示すと、図14のようである。図
14では、上から順に調和成分の振幅(Amplitude)要
素、ピッチ(Pitch)要素、波形(Timbre)要素、調和
外成分の振幅(Amplitude)要素、波形(Timbre)要素
における各パケットストリームを示す。また、調和成分
の振幅(Amplitude)要素、ピッチ(Pitch)要素、調和
外成分の振幅(Amplitude)要素において、黒く塗りつ
ぶした正方形は代表点であり、これらを結ぶ曲線はパケ
ットストリームの中のパケットに含まれるベクトルID
で示されたベクトルの形状を示す。調和成分の波形(Ti
mbre)要素、調和外成分の波形(Timbre)要素におい
て、白抜きの長方形Lはループ波形を示すものであり、
その他の長方形NLはノンループ波形を示すものであ
る。なお、ノンループ波形のうち、斜線を引いたものは
特に特徴のあるノンループ波形を示すものである。さら
に、この実施形態では、NormalAttackモジュールにおけ
る調和成分と調和外成分の波形(Timbre)要素をそれぞ
れ2個のベクトルで構成し、調和成分の振幅(Amplitud
e)要素とピッチ(Pitch)要素及び調和外成分の振幅
(Amplitude)要素をそれぞれ1個のベクトルで構成し
ている。
FIG. 14 conceptually shows an example of the packet stream created in this way. FIG. 14 shows the packet streams in the amplitude (Amplitude) element of the harmonic component, the pitch (Pitch) element, the waveform (Timbre) element, the amplitude (Amplitude) element of the non-harmonic component, and the waveform (Timbre) element in order from the top. In the amplitude (Amplitude) element, the pitch (Pitch) element, and the amplitude (Amplitude) element of the nonharmonic component, the black squares are representative points, and the curve connecting these is the packet in the packet stream. Included vector ID
Shows the shape of the vector indicated by. Harmonic component waveform (Ti
In the mbre) element and the non-harmonic component waveform (Timbre) element, an outlined rectangle L indicates a loop waveform,
Other rectangles NL indicate non-loop waveforms. It should be noted that, among the non-loop waveforms, those shaded with oblique lines indicate non-loop waveforms that are particularly characteristic. Furthermore, in this embodiment, the waveform (Timbre) elements of the harmonic component and the non-harmonic component in the NormalAttack module are each composed of two vectors, and the amplitude (Amplitud) of the harmonic component is used.
e) The element, the pitch element, and the amplitude element of the out-of-harmonic component are each composed of one vector.

【0056】本実施形態では、調和成分、調和外成分と
も、波形(Timbre)要素がノンループ波形となっている
部分については、振幅(Amplitude)要素及びピッチ(P
itch)要素がベクトルを持たないようになっている。し
かしながら、波形(Timbre)要素がノンループ波形であ
るところでも、振幅(Amplitude)要素、ピッチ(Pitc
h)要素のベクトルを持ち生成波形を制御するようにし
てもよい。VibratoBodyモジュールでは、調和成分の波
形(Timbre)要素を5個のベクトルで構成し、調和成分
の振幅(Amplitude)要素とピッチ(Pitch)要素及び調
和外成分の波形(Timbre)要素と振幅(Amplitude)要
素をそれぞれ1個のベクトルで構成している。ここで、
VibratoBodyモジュールは3回繰り返されているが、各
繰り返し毎に各ベクトルの形状が異なっていることに注
意してほしい。これは各繰り返し毎に異なる奏法パラメ
ータが指定されたからである。異なる奏法パラメータに
応じて異なる要素データが選択されたり、異なる奏法パ
ラメータに応じて異なるレベル制御、時間軸制御が行わ
れたりする。NormalJointモジュールでは、調和成分と
調和外成分の波形(Timbre)要素をそれぞれ3個のベク
トルで構成し、調和成分の振幅(Amplitude)要素とピ
ッチ(Pitch)要素及び調和外成分の振幅(Amplitude)
要素をそれぞれ2個のベクトルで構成している。なお、
NormalBodyモジュールの説明は省略する。
In this embodiment, for both the harmonic component and the non-harmonic component, the amplitude (Amplitude) element and the pitch (P
itch) The element has no vector. However, even when the waveform (Timbre) element is a non-loop waveform, the amplitude (Amplitude) element and the pitch (Pitc
h) The generated waveform may be controlled by having a vector of elements. In the VibratoBody module, the waveform (Timbre) element of the harmonic component is composed of five vectors, and the amplitude (Amplitude) and pitch (Pitch) elements of the harmonic component and the waveform (Timbre) element and the amplitude (Amplitude) of the nonharmonic component are used. Each element is composed of one vector. here,
Note that the VibratoBody module is repeated three times, but each iteration has a different shape for each vector. This is because different rendition style parameters are specified for each repetition. Different element data is selected according to different rendition style parameters, and different level control and time axis control are performed according to different rendition style parameters. In the NormalJoint module, the waveform (Timbre) elements of the harmonic component and the non-harmonic component are respectively composed of three vectors, and the amplitude (Amplitude) and pitch (Pitch) elements of the harmonic component and the amplitude (Amplitude) of the non-harmonic component
Each element is composed of two vectors. In addition,
The description of the NormalBody module is omitted.

【0057】奏法合成部101Cは、上述したようにパ
ケットストリームを各成分(調和成分及び調和外成分)
毎に生成する。これらのパケットストリームは複数個の
パケットで構成されてなり、1個1個のパケットはベク
トルIDとパケットの時刻情報とを具える。それに加え
て、調和成分の振幅(Amplitude)要素、ピッチ(Pitc
h)要素、調和外成分の振幅(Amplitude)要素の場合に
は各代表点の確定値などを具える。勿論、これに限られ
るものではなく、ベクトルIDとパケットの時刻情報に
加えて他の情報を具えていてよい。このような1つ1つ
のパケットの内容に従って、各成分毎にパケットストリ
ームが構成されている。このように、パケットストリー
ムには複数のパケット及びその各パケットの時刻情報
(開始時刻)が含まれる。なお、楽器の種類等によって
パケットストリームの数が異なっていてよいことは言う
までもない。
As described above, the rendition style synthesizing section 101C converts the packet stream into each component (harmonic component and non-harmonic component).
Generated every time. Each of these packet streams is composed of a plurality of packets, and each packet has a vector ID and time information of the packet. In addition, the amplitude (Amplitude) element and pitch (Pitc
h) In the case of an element or an amplitude element of a non-harmonic component, a definite value of each representative point is provided. Of course, the present invention is not limited to this, and other information may be provided in addition to the vector ID and the packet time information. A packet stream is formed for each component according to the content of each such packet. As described above, the packet stream includes a plurality of packets and time information (start time) of each packet. It goes without saying that the number of packet streams may differ depending on the type of musical instrument and the like.

【0058】3.4.波形合成部101D 3.4.1.波形合成部101Dの全般動作 波形合成部101Dは、奏法合成部101Cから供給さ
れる各成分毎のパケットストリーム(ベクトルID、時
刻情報、補正情報等を含む複数のパケットの列)に基づ
いて波形を合成する。図15は、波形合成部101Dに
おける動作を説明するために全体構成を示した概念図で
ある。図16〜図19,図22,図23は、波形合成部
101Dにおける各動作を詳細に説明するための図面で
ある。図16は、波形合成の全体の流れを簡単に示すブ
ロック図である。図17は、ベクトルローダを説明する
ためのブロック図である。図18は、ベクトルオペレー
タを説明するためのブロック図である。図19は、ベク
トルデコーダを説明するためのブロック図である。図2
2は、奏法合成部101Cから波形合成部101Dに各
パケットが供給されるタイミングを示す図であり、図2
3はキャッシュ制御部40を説明するためのブロック図
である。
3.4. Waveform synthesis section 101D 3.4.1. General Operation of Waveform Synthesizing Unit 101D The waveform synthesizing unit 101D converts a waveform based on a packet stream (a sequence of a plurality of packets including vector ID, time information, correction information, and the like) for each component supplied from the rendition style synthesizing unit 101C. Combine. FIG. 15 is a conceptual diagram showing the overall configuration for explaining the operation in waveform synthesizing section 101D. FIG. 16 to FIG. 19, FIG. 22, and FIG. 23 are drawings for describing each operation in the waveform synthesis unit 101D in detail. FIG. 16 is a block diagram simply showing the overall flow of the waveform synthesis. FIG. 17 is a block diagram for explaining the vector loader. FIG. 18 is a block diagram for explaining a vector operator. FIG. 19 is a block diagram for explaining a vector decoder. FIG.
FIG. 2 shows the timing at which each packet is supplied from the rendition style synthesizing unit 101C to the waveform synthesizing unit 101D.
3 is a block diagram for explaining the cache control unit 40.

【0059】図15において、奏法合成部(アーティキ
ュレーター)101Cで作成された各成分要素毎のパケ
ットストリームは、波形合成部101Dにおける各成分
要素毎に対応して設けられる所定のパケットキューバッ
ファ21〜25に順次にパケット入力(つまり、パケッ
ト単位での入力)される。入力されたパケットはパケッ
トキューバッファ21〜25に蓄積され、順次所定の順
番でベクトルローダ20に送られる。ベクトルローダ2
0ではパケット内のベクトルIDを参照して、当該ベク
トルIDに対応するオリジナルのベクトルデータをキャ
ッシュ制御部40を介してコードブック26から読出し
(ロード)する。読出しされたベクトルデータは、各成
分要素毎に対応して設けられる所定のベクトルデコーダ
31〜35へ送られ、ベクトルデコーダ31〜35で各
成分要素毎の波形が生成される。
In FIG. 15, the packet stream for each component element created by the rendition style synthesizing section (articulator) 101C is provided in predetermined packet queue buffers 21 to 21 provided corresponding to each component element in the waveform synthesizing section 101D. The packets are sequentially input to the P.25 (that is, input in packet units). The input packets are accumulated in the packet queue buffers 21 to 25 and are sequentially sent to the vector loader 20 in a predetermined order. Vector loader 2
At 0, the original vector data corresponding to the vector ID is read out (loaded) from the code book 26 via the cache control unit 40 with reference to the vector ID in the packet. The read vector data is sent to predetermined vector decoders 31 to 35 provided for each component element, and the vector decoders 31 to 35 generate a waveform for each component element.

【0060】さらに、ベクトルデコーダ31〜35で
は、生成された各成分要素毎の波形を各ベクトルデコー
ダ31〜35間で同期しながら各成分毎(調和成分及び
調和外成分)の波形を生成する。こうして生成された各
成分毎の波形は、ミキサ38に送られる。奏法合成部
(アーティキュレーター)101Cでは、パケットキュ
ーバッファ21〜25に対してパケットを入力する他、
ストリーム管理(個々のベクトルデータの生成や削除あ
るいはベクトルデータ間の接続に関する管理)や再生コ
ントロール(所望の波形生成の実行あるいは生成された
所望の波形の再生/停止などのコントロール)などの各
種の制御を波形合成部101Dに対して実行する。
Further, the vector decoders 31 to 35 generate the waveforms for each component (harmonic component and non-harmonic component) while synchronizing the generated waveform for each component element among the vector decoders 31 to 35. The thus generated waveform for each component is sent to the mixer 38. The rendition style synthesizing section (articulator) 101C inputs packets to the packet queue buffers 21 to 25,
Various controls such as stream management (management of individual vector data generation or deletion or connection between vector data) and playback control (control of execution of desired waveform generation or playback / stop of generated desired waveform) Is performed on the waveform synthesis unit 101D.

【0061】上述したように、ベクトルローダ20には
パケットキューバッファ21に蓄積されたパケットスト
リームを構成するパケットを順次に入力され、ベクトル
ローダ20は各パケット内のベクトルIDに基づいて、
キャッシュ制御部40を介してコードブック26から当
該ベクトルIDに対応するベクトルデータを読み出し、
読み出したベクトルデータをベクトルデコーダ31に送
る(図16参照)。この際に、読み出した各パケット内
に補正情報(例えば、代表点に関する補正情報)が付さ
れている場合がある。このような場合、ベクトルローダ
20では読み出したオリジナルのベクトルデータを補正
情報に従って変形し、変形したベクトルデータ(これを
オリジナルのベクトルデータと区別するためにベクトル
情報データと呼ぶ)を情報として持つパケット(これを
奏法合成部101Cから入力されたパケットと区別する
ためにベクトルパケットと呼ぶ)をベクトルデコーダ3
1〜35へ出力する。このように、ベクトルローダ20
は奏法合成部(アーティキュレーター)101Cから入
力されたパケットのベクトルIDに基づきオリジナルの
ベクトルデータをコードブック26から読出し、必要に
応じて補正情報でベクトルデータの補正を行った上でベ
クトルデコーダ31〜35にベクトルパケットを渡す
(図17参照)。上述したようなベクトルデータの代表
点に関する補正情報には、例えば乱数に基づいて時刻情
報をずらすための補正情報等いろいろな補正情報があり
うる。
As described above, the packets constituting the packet stream stored in the packet queue buffer 21 are sequentially input to the vector loader 20, and the vector loader 20 performs the processing based on the vector ID in each packet.
The vector data corresponding to the vector ID is read from the code book 26 via the cache control unit 40,
The read vector data is sent to the vector decoder 31 (see FIG. 16). At this time, correction information (for example, correction information on a representative point) may be added to each read packet. In such a case, the vector loader 20 deforms the read original vector data in accordance with the correction information, and generates a packet (hereinafter, referred to as vector information data to distinguish this from the original vector data) as information. This is called a vector packet to distinguish it from the packet input from the rendition style synthesizing unit 101C).
Output to 1 to 35. Thus, the vector loader 20
Reads the original vector data from the codebook 26 based on the vector ID of the packet input from the rendition style synthesizing section (articulator) 101C, corrects the vector data with the correction information as needed, and then performs the vector decoder 31- The vector packet is passed to 35 (see FIG. 17). The correction information on the representative point of the vector data as described above may include various correction information such as correction information for shifting time information based on a random number.

【0062】図18に示すように、ベクトルデコーダ3
1〜35は入力されたベクトルパケットを処理するため
のベクトルオペレータの生成や破棄、ベクトルオペレー
タ間の接続・同期管理、時刻管理、他ベクトルIDスト
リームからの入力のベクトルオペレータ毎のパラメータ
への変換設定などの各種のオペレータ動作管理を行うも
のである。ベクトルオペレータ36及び37では、ベク
トル情報データの読み出し、あるいはベクトル情報デー
タの読み出し位置制御(Speed入力)やゲイン制御(Gai
n入力)などが行われる。このベクトルオペレータ36
及び37に設定される各種のパラメータは、ベクトルデ
コーダ31〜35で管理される。各成分要素毎に対応す
るようにベクトルデコーダ31〜35が設けられてお
り、当該ベクトルデコーダ31〜35がベクトルパケッ
ト内のベクトル情報データを読み出して所望の波形の時
系列的生成を行う。
As shown in FIG. 18, the vector decoder 3
Reference numerals 1 to 35 denote generation and discard of vector operators for processing input vector packets, connection / synchronization management between vector operators, time management, and conversion setting of input from other vector ID streams into parameters for each vector operator. And various other types of operator operation management. The vector operators 36 and 37 read the vector information data, or control the read position of the vector information data (Speed input) or the gain control (Gai
n input) is performed. This vector operator 36
And 37 are managed by the vector decoders 31 to 35. Vector decoders 31 to 35 are provided so as to correspond to the respective component elements. The vector decoders 31 to 35 read out the vector information data in the vector packet and generate a desired waveform in time series.

【0063】例えば、図19に示すように、ベクトルデ
コーダ31は調和成分の振幅(Amplitude)要素のエン
ベロープ波形を生成し、ベクトルデコーダ32は調和成
分のピッチ(Pitch)要素のエンベロープ波形を生成
し、ベクトルデコーダ33は調和成分の波形(Timbre)
要素の波形を生成し、ベクトルデコーダ34は調和外成
分の振幅(Amplitude)要素のエンベロープ波形を生成
し、ベクトルデコーダ35は調和外成分の波形(Timbr
e)要素のエンベロープ波形を生成する。ベクトルデコ
ーダ33は、ベクトルデコーダ31及び32で生成され
た調和成分の振幅(Amplitude)要素のエンベロープ波
形と調和成分のピッチ(Pitch)要素のエンベロープ波
形を付与した調和成分の波形を生成してミキサ38へ出
力する。すなわち、ベクトルデコーダ33に対して、調
和成分の振幅(Amplitude)要素のエンベロープ波形を
ゲイン制御(Gain入力)を行うためのベクトルオペレー
タとして、調和成分のピッチ(Pitch)要素のエンベロ
ープ波形をベクトル情報データの読み出し位置制御(Sp
eed入力)を行うためのベクトルオペレータとして入力
する。また、ベクトルデコーダ35では、ベクトルデコ
ーダ34で生成された調和外成分の振幅(Amplitude)
要素のエンベロープ波形を付与した調和外成分の波形を
生成してミキサ38へ出力する。すなわち、ベクトルデ
コーダ35に対しては、調和外成分の振幅(Amplitud
e)要素のエンベロープ波形をゲイン制御(Gain入力)
を行うための制御命令として入力する。
For example, as shown in FIG. 19, the vector decoder 31 generates an envelope waveform of the amplitude component of the harmonic component, the vector decoder 32 generates an envelope waveform of the pitch component of the harmonic component, The vector decoder 33 generates a harmonic component waveform (Timbre).
The vector decoder 34 generates an envelope waveform of the amplitude component of the non-harmonic component (Amplitude), and the vector decoder 35 generates a waveform of the non-harmonic component (Timbr
e) Generate an envelope waveform for the element. The vector decoder 33 generates a harmonic component waveform to which the envelope waveform of the amplitude component of the harmonic component and the envelope waveform of the pitch component of the harmonic component generated by the vector decoders 31 and 32 are added, and a mixer 38. Output to That is, as a vector operator for performing gain control (Gain input) on the envelope waveform of the amplitude component (Amplitude) element of the harmonic component, the vector waveform of the envelope waveform of the pitch element (Pitch) of the harmonic component is given to the vector information data. Read position control (Sp
eed input) as a vector operator. In the vector decoder 35, the amplitude (Amplitude) of the nonharmonic component generated by the vector decoder 34 is used.
The waveform of the non-harmonic component to which the envelope waveform of the element is added is generated and output to the mixer 38. That is, for the vector decoder 35, the amplitude (Amplitud
e) Gain control of element envelope waveform (Gain input)
Is input as a control command for performing

【0064】さらに、各成分、要素における波形の時系
列的生成の際には、各ベクトルデコーダ31〜35間で
波形の同期を行いながら波形生成が行われる。例えば、
波形(Timbre)要素のベクトルパケットと振幅(Amplit
ude)要素のベクトルパケットを入力した場合、波形(T
imbre)要素のベクトルパケットに基づく波形合生成の
時間を基準として、それに同期して振幅(Amplitude)
要素のベクトルパケットに基づく振幅波形を生成する。
該振幅波形により、波形(Timbre)要素のベクトルパケ
ットに基づいて生成される波形の振幅が制御される。波
形(Timbre)要素のベクトルパケットとピッチ(Pitc
h)要素のベクトルパケットを入力した場合、波形(Tim
bre)要素のベクトルパケットに基づく波形生成の時間
を基準として、それに同期してピッチ(Pitch)要素の
ベクトルパケットに基づくピッチ波形を合成する。
Further, when the waveforms of the components and elements are generated in time series, the waveforms are generated while synchronizing the waveforms among the vector decoders 31 to 35. For example,
Vector packet and amplitude (Amplit) of waveform (Timbre) element
If a vector packet of ude) element is input, the waveform (T
imbre) The amplitude (Amplitude) is synchronized with the time of generating the waveform combination based on the vector packet of the element.
Generate an amplitude waveform based on the element's vector packet.
The amplitude of the waveform generated based on the vector packet of the waveform (Timbre) element is controlled by the amplitude waveform. Waveform (Timbre) element vector packet and pitch (Pitc
h) When a vector packet of elements is input, the waveform (Tim
bre) A pitch waveform based on a pitch (Pitch) element vector packet is synthesized in synchronization with the waveform generation time based on the vector packet of the element.

【0065】該ピッチ波形により、波形(Timbre)要素
のベクトルパケットに基づいて生成される波形のピッチ
が制御される。調和成分の波形(Timbre)要素のベクト
ルパケットと調和外成分の波形(Timbre)要素のベクト
ルパケットを入力する場合、調和成分の波形(Timbre)
要素のベクトルパケットに基づく調和成分合成の時間を
基準として、それに同期して調和外成分の波形(Timbr
e)要素のベクトルパケットに基づく調和外成分が合成
される。合成された調和成分と調和外成分の波形を混合
することにより、所望の楽音波形を生成する。なお、こ
の実施形態において、調和成分と調和外成分の同期また
は非同期を選択できるように構成し、同期が選択された
場合にのみにおいて、上述の調和成分の波形(Timbre)
要素のベクトルパケットに基づいて生成される調和成分
の波形合成の時間を基準として、それに同期して調和外
成分の波形(Timbre)要素のベクトルパケットに基づい
て生成される調和外成分の波形を合成するようにしても
よい。
The pitch of the waveform generated based on the vector packet of the waveform (Timbre) element is controlled by the pitch waveform. When the vector packet of the harmonic component waveform (Timbre) element and the vector packet of the non-harmonic component waveform (Timbre) element are input, the harmonic component waveform (Timbre)
Based on the time of harmonic component synthesis based on the element vector packet, the waveform of the non-harmonic component (Timbr
e) Out-of-harmonic components based on vector packets of elements are synthesized. By mixing the waveforms of the synthesized harmonic component and the non-harmonic component, a desired musical sound waveform is generated. In this embodiment, the harmonic component and the non-harmonic component are configured to be able to select synchronous or asynchronous, and only when synchronous is selected, the waveform of the above-described harmonic component (Timbre)
Based on the time of the waveform synthesis of the harmonic component generated based on the vector packet of the element, the waveform of the non-harmonic component generated based on the vector packet of the non-harmonic component (Timbre) element is synthesized in synchronization with the time. You may make it.

【0066】上述したように、パケットストリームは複
数パケット列で構成されており、ベクトルバケットのパ
ケットストリームの場合、各パケットには各々ベクトル
データが含まれている。すなわち、パケットストリーム
とはベクトルデータが時間方向に並んだものであり、振
幅(Amplitude)要素のベクトルデータもピッチ(Pitc
h)要素のベクトルデータも波形(Timbre)要素のベク
トルデータもデータ構造や意味は違うが、ベクトルオペ
レータ36及び37から見た場合は基本的に同じもので
ある。
As described above, the packet stream is composed of a plurality of packet sequences, and in the case of a vector bucket packet stream, each packet contains vector data. That is, the packet stream is a vector data in which vector data is arranged in the time direction, and the vector data of the amplitude element is also pitch (Pitc).
h) The vector data of the element and the vector data of the waveform (Timbre) element have different data structures and meanings, but are basically the same when viewed from the vector operators 36 and 37.

【0067】3.4.2.ベクトルデータの構造 図20は、ベクトルデータのデータ構造の一実施形態を
概念的に示す概念図である。例えば、ベクトルデータの
読み出し位置の単位は[SEC]で、読み出し速度を等速と
した場合、ベクトルデータ上での1サンプルは出力波形
の1サンプルと一致する。また、読み出し速度の単位は
1/1200[cent](=2のn乗)で、指数nが0だと
等速、1.0だと2倍(例えば、波形(Timbre)要素の場
合には1オクターブ上がる)、-1.0だと0.5倍(例え
ば、波形(Timbre)要素の場合には1オクターブ下が
る)となる(図20の上段図参照)。また、コードブッ
ク26には実際のベクトルデータが格納される。例え
ば、振幅(Amplitude)要素のベクトルデータあるいは
ピッチ(Pitch)要素のベクトルデータはVECTORPOINT構
造体の配列と、代表点データとからなっている。
3.4.2. Structure of Vector Data FIG. 20 is a conceptual diagram conceptually showing an embodiment of a data structure of vector data. For example, when the unit of the reading position of the vector data is [SEC] and the reading speed is constant, one sample on the vector data coincides with one sample of the output waveform. Also, the unit of the reading speed is 1/1200 [cent] (= 2 to the nth power). If it is -1.0, it becomes 0.5 times (for example, in the case of a waveform (Timbre) element, it becomes one octave lower) (see the upper diagram in FIG. 20). The codebook 26 stores actual vector data. For example, vector data of an amplitude element or vector data of a pitch element include an array of VECTORPOINT structures and representative point data.

【0068】VECTORPOINT構造体の配列には各点のサン
プル位置と値が順番に入っており、例えば振幅(Amplit
ude)要素のベクトルデータの値は[db]単位であり、ピ
ッチ(Pitch)要素のベクトルデータの値はMIDIのノー
トナンバ0を0.0としたときの1/1200[cent]単位であ
る。また、代表点データはDWORD型の配列で、代表点と
なるVECTORPOINT構造体の配列のインデックス番号が格
納されている(図20の下段図参照)。勿論、上述した
例に限られるものでないことは言うまでもない。
In the array of the VECTORPOINT structure, sample positions and values of respective points are sequentially entered.
The value of the vector data of the ude) element is in units of [db], and the value of the vector data of the pitch element is in units of 1/1200 [cent] when the MIDI note number 0 is 0.0. The representative point data is a DWORD type array, and stores the index number of the array of the VECTORPOINT structure serving as the representative point (see the lower part of FIG. 20). Of course, it is needless to say that the present invention is not limited to the above example.

【0069】3.4.3.キャッシュ制御部40の詳細 (1)キャッシュ制御部40の全体構成 次に、キャッシュ制御部40の全体構成を図23を参照
し説明するが、このキャッシュ制御部40を設けた意義
について説明しておく。コードブック26はハードディ
スク109内に格納されているため、ベクトルデコーダ
31〜35が必要とするベクトルデータはハードディス
ク109から読み出されることになる。しかし、ハード
ディスク等はアクセス時間が遅く、かつ一定していない
ため、ベクトルデコーダ31〜35が当該ベクトルデー
タを加工するタイミングで即座に読み出すことは不可能
である。そこで、本実施形態においては、波形合成部1
01D内にキャッシュ制御部40を設け、将来使用され
る(または使用が予測されている)ベクトルデータを予
めキャッシュメモリにロードすることとしている。
3.4.3. Details of Cache Control Unit 40 (1) Overall Configuration of Cache Control Unit 40 Next, the overall configuration of the cache control unit 40 will be described with reference to FIG. . Since the code book 26 is stored in the hard disk 109, vector data required by the vector decoders 31 to 35 is read from the hard disk 109. However, since the access time of a hard disk or the like is slow and not constant, it is impossible to immediately read the vector data at the timing when the vector decoders 31 to 35 process the vector data. Therefore, in the present embodiment, the waveform synthesizing unit 1
A cache control unit 40 is provided in 01D, and vector data to be used in the future (or predicted to be used) is pre-loaded into the cache memory.

【0070】図23において42は先読みプリフェッチ
部であり、奏法合成部101Cから波形合成部101D
に供給されるパケットからベクトルIDを抽出し、コー
ドブック26からこのベクトルIDに係るベクトルデー
タをプリフェッチ(先読み)するようにハードディスク
109に読み出し制御を行う。上述したように、これら
パケットはパケットキューバッファ21〜25内のパケ
ットストリームを構成し、やがてベクトルローダ20に
よって読み出されることになるが、これと並行してプリ
フェッチ処理が行われることになる。
In FIG. 23, reference numeral 42 denotes a look-ahead prefetch unit, which includes a rendition style synthesizing unit 101C to a waveform synthesizing unit 101D.
, A vector ID is extracted from the packet supplied to the hard disk 109, and read control is performed on the hard disk 109 so as to prefetch (prefetch) the vector data corresponding to the vector ID from the codebook 26. As described above, these packets constitute a packet stream in the packet queue buffers 21 to 25, and are read out by the vector loader 20 at a later time. Prefetch processing is performed in parallel with this.

【0071】41は予測制御部であり、楽譜解釈部10
1Bから供給される予測データ(プログラムチェンジ
等)と、先読みプリフェッチ部42から供給される予測
条件とに基づいて、将来使用される可能性の高いベクト
ルデータを予測し、予測したベクトルデータに係るベク
トルIDを先読みプリフェッチ部42に供給する。ここ
で、「予測条件」とは、使用されることが確定した(す
なわち奏法合成部101Cから供給された)ベクトルI
D等である。このように、先読みプリフェッチ部42に
おいては、奏法合成部101Cおよび予測制御部41の
双方からベクトルIDが供給される。そして、先読みプ
リフェッチ部42は、使用されることが確定しているベ
クトルデータのロード(すなわち奏法合成部101Cか
ら指定されたベクトルデータのロード)を優先しつつ、
双方のベクトルIDに係るベクトルデータについてプリ
フェッチ処理を行う。以下、使用されることが確定して
いるベクトルデータのロードを「指定ロード」と呼び、
使用されることが確定していない(単に予測されたのみ
の)ベクトルデータのロードを「予測ロード」と呼ぶ。
44はキャッシュメモリであり、プリフェッチされたベ
クトルデータを格納する。43は読出し制御部であり、
ベクトルローダ20からベクトルIDを受信すると、こ
のベクトルIDに対応するベクトルデータを主としてキ
ャッシュメモリ44から読出し、ベクトルローダ20に
供給する。45は時刻管理部であり、プリフェッチ等の
タイミング制御を行う。
Reference numeral 41 denotes a prediction control unit, and the score interpretation unit 10
1B, and predicts vector data likely to be used in the future based on the prediction data (such as a program change) supplied from the prefetch unit 42 and the prediction conditions supplied from the prefetching prefetch unit 42. The ID is supplied to the prefetch prefetch unit 42. Here, the “prediction condition” refers to the vector I determined to be used (that is, supplied from the rendition style synthesizing unit 101C).
D and the like. Thus, in the prefetching prefetch unit 42, the vector ID is supplied from both the rendition style synthesizing unit 101C and the prediction control unit 41. Then, the prefetching prefetch unit 42 gives priority to loading of vector data determined to be used (that is, loading of vector data designated by the rendition style synthesizing unit 101C),
Prefetch processing is performed on vector data related to both vector IDs. Hereinafter, the loading of vector data that is determined to be used is referred to as “designated loading”,
Loading vector data that has not been determined to be used (just predicted) is referred to as “prediction loading”.
A cache memory 44 stores prefetched vector data. 43 is a read control unit,
When receiving the vector ID from the vector loader 20, the vector data corresponding to the vector ID is mainly read from the cache memory 44 and supplied to the vector loader 20. A time management unit 45 controls timing such as prefetch.

【0072】(2)予測制御部41の動作 次に、予測制御部41における処理内容を図24の状態
遷移図を参照し説明する。この予測制御部41の状態
は、ベクトルデコーダ31〜35において波形合成が行
われているか否か、および合成が行われている場合には
どのモジュールに係るものかに応じて決定される。初期
状態においては、ベクトルデコーダ31〜35において
何ら波形合成が行われていないため、予測制御部41に
おいてはステップS30の処理が行われる。ここでは、
アタック部のベクトルデータの候補が予測され、予測さ
れたベクトルIDが先読みプリフェッチ部42に逐次供
給される。但し、ステップS30においては、楽譜解釈
部101Bから予測データとして「プログラムチェン
ジ」が供給されていない限り、アタック部の予測は実行
されない。プログラムチェンジが未定であれば、指定さ
れる可能性のあるアタック部のベクトルデータは膨大な
数になるからである。従って、初期状態においては、楽
譜解釈部101Bからプログラムチェンジが供給される
と、直ちに該プログラムチェンジに応じたアタック部の
ベクトルデータの予測ロードが開始されることになる。
(2) Operation of Prediction Control Unit 41 Next, the processing contents of the prediction control unit 41 will be described with reference to the state transition diagram of FIG. The state of the prediction control unit 41 is determined depending on whether or not the waveform synthesis is performed in the vector decoders 31 to 35 and, if the synthesis is performed, which module is involved. In the initial state, since no waveform synthesis is performed in the vector decoders 31 to 35, the process of step S30 is performed in the prediction control unit 41. here,
The vector data candidates of the attack unit are predicted, and the predicted vector IDs are sequentially supplied to the prefetching prefetch unit 42. However, in step S30, the prediction of the attack portion is not executed unless “program change” is supplied as the prediction data from the musical score interpretation unit 101B. This is because if the program change is undecided, the vector data of the attack portion that may be specified will be enormous. Therefore, in the initial state, when a program change is supplied from the musical score interpretation unit 101B, the predictive loading of the attack section vector data according to the program change is started immediately.

【0073】例えば、該プログラムチェンジとして「ピ
アノ」が指定され、「ピアノ」に係るアタック部のベク
トルデータが100種類あれば、100種類のベクトル
データの予測ロードが開始されることになる。アタック
部に係るパケットが確定されると、やがてベクトルロー
ダ20およびベクトルデコーダ31〜35においてアタ
ック部の波形合成処理が開始される。その際、予測制御
部41の状態はステップS31に遷移する。
For example, if "piano" is designated as the program change, and if there are 100 types of vector data of the attack portion relating to "piano", the predictive loading of 100 types of vector data is started. When the packet related to the attack section is determined, the vector loader 20 and the vector decoders 31 to 35 will start the waveform synthesis processing of the attack section. At that time, the state of the prediction control unit 41 transitions to step S31.

【0074】ステップS31においては、確定されてい
るアタック部のベクトルIDに基づいて、ボディ部のベ
クトルデータの候補について予測ロードが行われる。す
なわち、アタック部のピッチは既知であるから、候補と
なるベクトルデータはアタック部と同一のピッチに対応
するものに限られる。さらに、確定されているアタック
部のエンベロープ波形等に対応して、これに繋がる可能
性があるボディ部のベクトルデータは、さらに限定され
る。ステップS31においては、このような条件に応じ
て絞りこまれた候補が予測ロードされるのである。ここ
で、ボディ部に係るパケットが実際に奏法合成部101
Cから供給され、当該ボディ部のパケットが確定される
と、予測制御部41の状態はステップS33に遷移す
る。
In step S31, predictive loading is performed on the vector data candidates of the body part based on the determined attack part vector ID. That is, since the pitch of the attack portion is known, the candidate vector data is limited to those corresponding to the same pitch as the attack portion. Further, the vector data of the body part that may be connected to the determined envelope waveform of the attack part is further limited. In step S31, candidates narrowed down according to such conditions are predicted and loaded. Here, the packet related to the body part is actually
When the packet of the body part is supplied from C and is determined, the state of the prediction control unit 41 transitions to step S33.

【0075】ステップS33においては、確定されてい
るボディ部のベクトルIDに基づいて、次のベクトルデ
ータの候補について予測ロードが行われる。上述したよ
うに、ボディ部に繋がるモジュールは、他のボディ部、
ジョイント部あるいはリリース部のうち何れかである。
従って、予測制御部41においては、これらのベクトル
データが予測ロードされる。なお、予測ロードされるベ
クトルデータの候補は、確定されたボディ部のピッチや
エンベロープ波形等に応じて絞りこまれることはステッ
プS31と同様である。
In step S33, prediction loading is performed for the next vector data candidate based on the determined vector ID of the body part. As mentioned above, the module connected to the body part is the other body part,
Either a joint part or a release part.
Therefore, the prediction control section 41 predictively loads these vector data. It should be noted that the vector data candidates to be predicted loaded are narrowed down in accordance with the determined pitch of the body part, the envelope waveform, and the like, as in step S31.

【0076】ステップS33の実行中に実際に奏法合成
部101Cからパケットが供給されると、当該パケット
に応じて予測制御部41の状態が遷移する。まず、供給
されたパケットがボディ部のパケットであった場合に
は、状態はステップS33に留まり、再び当該ボディ部
に基づいて、他のボディ部、ジョイント部あるいはリリ
ース部の予測ロードが実行される。また、供給されたパ
ケットがジョイント部のパケットであった場合には、予
測制御部41の状態はステップS32に遷移する。
When a packet is actually supplied from the rendition style synthesizing unit 101C during the execution of step S33, the state of the prediction control unit 41 changes according to the packet. First, if the supplied packet is a packet of the body part, the state remains at step S33, and the prediction load of another body part, joint part or release part is executed again based on the body part. . If the supplied packet is a packet of the joint unit, the state of the prediction control unit 41 transitions to step S32.

【0077】ステップS32においては、ボディ部のベ
クトルデータの候補が予測ロードされる。ここで、予測
ロードされるベクトルデータの候補は、確定されている
ジョイント部に繋がる可能性のあるボディ部のベクトル
データに絞りこまれる。ここで、奏法合成部101Cか
ら次のボディ部に係るパケットが供給されると、予測制
御部41の状態は再びステップS33に戻り、他のボデ
ィ部、ジョイント部あるいはリリース部のベクトルデー
タが予測ロードされる。ここで、奏法合成部101Cか
らリリース部のパケットが供給されると、予測制御部4
1の状態はステップS30に遷移する。
In step S32, vector data candidates of the body part are predicted and loaded. Here, the candidates for the vector data to be predicted loaded are narrowed down to the vector data of the body part which may be connected to the determined joint part. Here, when the packet relating to the next body part is supplied from the rendition style synthesizing part 101C, the state of the prediction control part 41 returns to step S33 again, and the vector data of another body part, joint part or release part is loaded with the prediction load. Is done. Here, when the packet of the release unit is supplied from the rendition style synthesizing unit 101C, the prediction control unit 4
The state of 1 makes a transition to step S30.

【0078】ステップS30においては、上述したよう
に、アタック部のベクトルデータの候補が予測ロードさ
れる。但し、その直前のリリース部のピッチが既に確定
されているならば、次に来るアタック部のピッチはあま
り大きく外れない可能性が高い。従って、リリース部の
合成中において、予測ロードされるアタック部のベクト
ルデータは、当該リリース部のピッチの周辺(例えば±
1オクターブの範囲)に対応するものに限定してもよ
い。
In step S30, as described above, candidates for the vector data of the attack portion are predicted and loaded. However, if the pitch of the immediately preceding release portion has already been determined, it is highly possible that the pitch of the next attack portion does not deviate so much. Therefore, during the synthesis of the release portion, the vector data of the attack portion to be predicted and loaded is located around the pitch of the release portion (for example, ±
(Corresponding to one octave).

【0079】(3)先読みプリフェッチ部42の動作 (3.1)ロード処理(図25) 次に、先読みプリフェッチ部42の動作を説明する。ま
ず、先読みプリフェッチ部42においては、所定周期毎
に図25に示すロード処理が実行される。図において処
理がステップS41に進むと、未だ実行されていない指
定ロード要求を受けているか否かが判定される。ここで
「YES」と判定されると、処理はステップS42に進
み、要求を受けたベクトルデータの指定ロードが実行さ
れる。これにより、暫くの読出し時間が経過すると、ハ
ードディスク109からこれらベクトルデータが読出さ
れキャッシュメモリ44に格納されることになる。
(3) Operation of Prefetch Prefetch Unit 42 (3.1) Load Processing (FIG. 25) Next, the operation of the prefetch prefetch unit 42 will be described. First, in the prefetch prefetch unit 42, a load process shown in FIG. 25 is executed at predetermined intervals. In the figure, when the process proceeds to step S41, it is determined whether or not a designated load request that has not been executed has been received. If "YES" is determined here, the process proceeds to step S42, and the designated load of the requested vector data is executed. As a result, after a while, the vector data is read from the hard disk 109 and stored in the cache memory 44.

【0080】一方、ステップS41において「NO」と
判定されると、処理はステップS43に進み、予測ロー
ドが実行される。すなわち、予測ロード要求のあったベ
クトルデータのうち、キャッシュメモリ44内への読出
し指令が行われているもの(既にキャッシュメモリ44
内にロードされているものと、他のロード要求に応じて
ロードが予定されているもの)と、未だハードディスク
109に読出し指令が行われていないものとが検出さ
れ、後者のみについてハードディスク109に読出し指
令が供給される。なお、予測ロードされるベクトルデー
タが多い場合には、予測ロードの途中で再び本ルーチン
が呼び出される場合もある。かかる場合にも、要求され
た指定ロードが存在する限りは、当該予測ロードが中断
され、ステップS42を介して指定ロードが実行される
ことになる。このように、先読みプリフェッチ部42に
おいては、予測ロードよりも指定ロードの方が優先的に
実行される。
On the other hand, if "NO" is determined in the step S41, the process proceeds to a step S43 to execute a prediction load. In other words, of the vector data for which a prediction load request has been issued, the vector data for which a read command has been issued to the cache memory 44 (already the cache memory 44).
, And those which are scheduled to be loaded in response to another load request) and those for which a read command has not yet been issued to the hard disk 109, and only the latter is read to the hard disk 109. Commands are supplied. If there is a large amount of vector data to be predicted loaded, this routine may be called again during the predicted loading. In such a case as well, as long as the requested designated load exists, the predicted load is interrupted, and the designated load is executed via step S42. As described above, in the prefetch prefetch unit 42, the designated load is executed with higher priority than the predicted load.

【0081】(3.2)パケット受信処理(図26) また、先読みプリフェッチ部42においては、奏法合成
部101Cからパケットが供給される毎に図25に示す
パケット受信処理が実行される。図において処理がステ
ップS51に進むと、供給されたパケットからベクトル
IDが抽出され、該ベクトルIDに対応するベクトルデ
ータがヒットしているか否かが判定される。ここで、
「ヒットした場合」とは、(1)既にキャッシュメモリ4
4内に予測ロードされたベクトルデータのうち何れかが
的中した場合、(2)未だキャッシュメモリ44にロード
されいないが、当該ベクトルデータの予測ロードが予定
されていた場合、(3)過去にロードされ使用済みになっ
た(USED状態の)ベクトルデータがそのまま使用できる
場合、のうち何れかである。
(3.2) Packet Receiving Process (FIG. 26) The prefetching prefetch unit 42 executes the packet receiving process shown in FIG. 25 every time a packet is supplied from the rendition style synthesizing unit 101C. In the figure, when the process proceeds to step S51, a vector ID is extracted from the supplied packet, and it is determined whether or not vector data corresponding to the vector ID is hit. here,
"If hit" means (1) the cache memory 4
If any of the vector data predicted and loaded in 4 hits, (2) if the vector data has not yet been loaded into the cache memory 44, but if the predicted load of the vector data is scheduled, (3) Either the loaded and used (USED state) vector data can be used as it is.

【0082】なお、本実施形態においては、使用済みの
ベクトルデータは直ちに解放されるのではなく、「USED
状態」のベクトルデータとして一応キャッシュメモリ4
4内に残される。そして、他のベクトルデータを記憶す
る記憶容量が足りなくなった場合等において、USED状態
のベクトルデータの領域が解放され、新たなベクトルデ
ータが記憶されるのである。なお、その詳細については
後述する。
In the present embodiment, the used vector data is not immediately released, but is used in the "USED
Cache memory 4 for the time being as vector data of "state"
4 is left. When the storage capacity for storing other vector data becomes insufficient, the area of the vector data in the USED state is released, and new vector data is stored. The details will be described later.

【0083】さて、ヒットするベクトルデータが存在し
なかった場合は、ステップS51において「NO」と判
定され、処理はステップS53に進む。ここでは、上記
パケットに含まれていたベクトルIDについて、指定ロ
ード要求が発生する。従って、次に上述したパケット受
信処理(図26)が実行される際に、該ベクトルデータ
が指定ロードされることになる。
When there is no hit vector data, "NO" is determined in the step S51, and the process proceeds to a step S53. Here, a designated load request is generated for the vector ID included in the packet. Therefore, the next time the above-described packet reception processing (FIG. 26) is executed, the vector data is specified and loaded.

【0084】一方、ヒットしたベクトルデータが存在す
る場合は「YES」と判定され処理はステップS52に
進む。ここでは、該ベクトルデータに係る予測ロードが
完了していなければ、該予測ロード要求が指定ロード要
求に変更される。これは、その後にパケット受信処理が
実行される際、優先的にロードされるからである。次
に、処理がステップS54に進むと、奏法合成部101
Cに対して、指定ロード要求されたベクトルデータのハ
ンドルが返される。このハンドルは、ベクトルデータに
対して一意に対応するものである。仮に指定ロード要求
されたベクトルデータが既にキャッシュメモリ44に格
納されていればそのベクトルデータのハンドルが返さ
れ、格納されていなければ、新たなハンドルが生成され
奏法合成部101Cに返されることになる。
On the other hand, if there is hit vector data, "YES" is determined and the process proceeds to step S52. Here, if the predicted load for the vector data has not been completed, the predicted load request is changed to a designated load request. This is because the packet is preferentially loaded when the packet receiving process is performed thereafter. Next, when the process proceeds to step S54, the rendition style synthesizing unit 101
For C, the handle of the vector data requested to be specified is returned. This handle uniquely corresponds to the vector data. If the vector data requested to be specified is already stored in the cache memory 44, the handle of the vector data is returned. Otherwise, a new handle is generated and returned to the rendition style synthesis unit 101C. .

【0085】次に、処理がステップS55に進むと、先
に発生した予測ロード要求のうち外れたものがキャンセ
ルされる。ここで、「キャンセル」の具体的内容につい
ては後述する。次に、処理がステップS56に進むと、
予測制御部41における予測条件が変更される。すなわ
ち、奏法合成部101Cから供給されたパケットに応じ
て、図24の各状態における予測ロードの候補が絞りこ
まれ、あるいは予測制御部41における状態が遷移され
る。
Next, when the processing proceeds to step S55, any of the predicted load requests generated earlier that have been missed are canceled. Here, the specific contents of “cancel” will be described later. Next, when the process proceeds to step S56,
The prediction condition in the prediction control unit 41 is changed. That is, according to the packet supplied from the rendition style synthesizing unit 101C, the candidates for the prediction load in each state in FIG.

【0086】このパケット受信処理は、奏法合成部10
1C側から見れば図28に示す「GetVector指令」にな
る。すなわち、奏法合成部101Cが波形合成部101
Dに対してパケットを供給する動作は、該パケットに含
まれるベクトルIDに基づいて「ベクトルデータを得
よ」という意味のGetVector指令を送信することに他な
らない。このベクトルデータは後にベクトルローダ20
において読み出されるまでに準備しなければならない
が、その時点において多数のベクトルデータの中から所
要のベクトルデータを特定するためにハンドルが必要な
のである。
This packet reception processing is performed by the
From the 1C side, the “GetVector command” shown in FIG. 28 is obtained. That is, the rendition style synthesizing unit 101C is
The operation of supplying a packet to D is nothing less than transmitting a GetVector command meaning "Get vector data" based on the vector ID included in the packet. This vector data is later stored in the vector loader 20.
Must be prepared before the data is read out, but at that time, a handle is required to specify required vector data from a large number of vector data.

【0087】(4)キャッシュメモリ44内のデータ構
造 (4.1)キャッシュページ(図27) キャッシュメモリ44に格納されるベクトルデータのう
ち同時に使用されるものは、パッキングされ、1ファイ
ル(あるいはベクトルデータの総数以下の複数ファイ
ル)に変換される。この変換は、ユーザの指示あるいは
作成された曲データに応じて、演奏に先立って自動的に
実行される。その例を図27に示す。図において、コー
ドブック26から読み出されるベクトルデータのうち指
定ロードされるものは、時刻情報が含まれている。従っ
て、同時に使用される複数のベクトルデータを抽出する
ことができる。コードブック26から読み出された各ベ
クトルデータは個々にヘッダを有している。同時に使用
されるベクトルデータは、例えば1つのファイルにまと
められ、このファイルに対して共通のヘッダが付与され
る。これにより、ベクトルローダ20が各ベクトルデー
タにアクセスする時間を短縮することができる。
(4) Data structure in the cache memory 44 (4.1) Cache page (FIG. 27) Of the vector data stored in the cache memory 44, those used simultaneously are packed and packed into one file (or vector). Is converted to multiple files of less than the total number of data). This conversion is automatically executed prior to the performance in accordance with a user's instruction or created music data. An example is shown in FIG. In the figure, of the vector data read out from the codebook 26, the one that is designated and loaded includes time information. Therefore, a plurality of vector data used simultaneously can be extracted. Each vector data read from the code book 26 individually has a header. Vector data used at the same time is put together in, for example, one file, and a common header is given to this file. As a result, the time for the vector loader 20 to access each vector data can be reduced.

【0088】このファイルのヘッダには、以下のような
情報が記憶される。 データID:ここには、ファイルの種類を識別する4バイ
トの識別文字「PACK」が記憶される。 Data Size:ファイルのデータサイズを示す VQ Type:記憶されているベクトルデータの種別を示
す。 Version:ファイルフォーマットのバージョンを示す。 なお、パッキングされる前のベクトルデータについても
同様のヘッダが設けられているが、データIDは「PACK」
ではなく、個々のベクトルデータの種別を識別するデー
タIDが付与される。
The following information is stored in the header of this file. Data ID: A 4-byte identification character “PACK” that identifies the type of file is stored here. Data Size: Indicates the data size of the file. VQ Type: Indicates the type of the stored vector data. Version: Indicates the version of the file format. A similar header is provided for vector data before packing, but the data ID is “PACK”.
Instead, a data ID for identifying the type of each vector data is assigned.

【0089】本実施形態の波形生成装置は、パーソナル
コンピュータ上のアプリケーションプログラムによって
実現されており、そのキャッシュはシステムメモリ上に
存在する。ベクトルデータをキャッシュに記憶する場
合、一つのベクトルデータ単位(サイズが不均一)で制
御するのではなく、所定サイズのキャッシュページを単
位としてキャッシュ制御が行われる。つまり、一つのキ
ャッシュデータは複数のキャッシュページに分割され、
キャッシュページ単位でキャッシュに記憶され管理され
る。また、システムメモリには、各キャッシュページに
対応するキャッシュ管理データ(ページヘッダ)が記憶
されている。なお、ハードディスクへのデータ記憶は、
通常、固定サイズのクラスタ単位で行われているので、
キャッシュページのサイズは、そのサイズと同じか、あ
るいはその整数倍にするとよい。ベクトルデータの容量
等を考慮すると、キャッシュページのサイズは1k〜1
0kバイトにすることが好適である。
The waveform generating apparatus of this embodiment is realized by an application program on a personal computer, and its cache exists on a system memory. When vector data is stored in a cache, cache control is performed in units of a cache page of a predetermined size, instead of in units of one vector data (uneven size). In other words, one cache data is divided into multiple cache pages,
It is stored and managed in the cache on a cache page basis. The system memory stores cache management data (page header) corresponding to each cache page. The data storage on the hard disk is
Usually, this is done in fixed-size cluster units,
The size of the cache page may be equal to or an integer multiple of that size. Considering the capacity of vector data, the size of a cache page is 1 k to 1
Preferably, it is 0 kbytes.

【0090】(4.2)ページヘッダのデータ構造 次に、各キャッシュページに付与されているヘッダのデ
ータ構造について説明する。各ヘッダは、「VDDLCSPAG
E」なる構造体によって構成されており、該構造体のメ
ンバは以下の通りである。 dwPage:当該キャッシュページに対して一意に付与され
るページ番号である。 dwID:このキャッシュページに含まれるベクトルデータ
のベクトルIDである。 dwSize: このキャッシュページのデータサイズである。 dwCount:プリフェッチ回数を示す。このメンバdwCount
は、指定ロードによってプリフェッチされる毎に「1」
づつインクリメントされ、ベクトルローダ20によって
読み出される毎に「1」づつデクリメントされる。 dwStatus: 当該キャッシュページの状態を示す。キャッ
シュページの状態は、FREE,ALLOCATED,USED,FILLE
D,LOCKEDのうち何れかである。 lpBuf: 当該キャッシュページにおけるベクトルデータ
の実体(ヘッダ以外の部分)の先頭アドレスを指標する
ポインタである。 lpForward/lpBackward:本実施形態においては、複数
のVDDLCSPAGE構造体によって双方向リンクドリストが形
成される。メンバlpForwardは、リンクの前方向に存在
する他のVDDLCSPAGE構造体へのポインタであり、メンバ
lpBackward:は、リンクの後方向に存在する他のVDDLCS
PAGE構造体へのポインタである。 lpNext: 上述したように、波形生成装置を専用のハード
ウエア上で実現する場合等においては、同時の使用され
る複数のベクトルデータが複数のキャッシュページに分
割される。これら複数のキャッシュページは「グルー
プ」を構成しており、メンバlpNextは同一グループに属
する他のVDDLCSPAGE構造体を順次指標してゆくポインタ
である。
(4.2) Data Structure of Page Header Next, the data structure of the header added to each cache page will be described. Each header is “VDDLCSPAG
The member of the structure is as follows. dwPage: a page number uniquely assigned to the cache page. dwID: Vector ID of vector data included in this cache page. dwSize: The data size of this cache page. dwCount: Indicates the number of prefetches. This member dwCount
Is "1" each time it is prefetched by the specified load
It is incremented by one, and is decremented by "1" each time it is read by the vector loader 20. dwStatus: Indicates the status of the cache page. Cache page status is FREE, ALLOCATED, USED, FILLE
Either D or LOCKED. lpBuf: A pointer indicating the start address of the entity of vector data (other than the header) in the cache page. lpForward / lpBackward: In the present embodiment, a plurality of VDDLCSPAGE structures form a bidirectional linked list. The member lpForward is a pointer to another VDDLCSPAGE structure existing in the forward direction of the link.
lpBackward: is another VDDLCS that exists in the backward direction of the link
Pointer to a PAGE structure. lpNext: As described above, in a case where the waveform generating apparatus is realized on dedicated hardware, a plurality of vector data used simultaneously is divided into a plurality of cache pages. These plurality of cache pages constitute a “group”, and the member lpNext is a pointer that sequentially points to another VDDLCSPAGE structure belonging to the same group.

【0091】ここで、上記メンバdwCountの役割につい
て述べておく。例えば、一連のパケットストリームにお
いて、同一のベクトルデータが2回使用されるならば、
該ベクトルデータについて2回の指定ロード要求が発生
することになる。しかし、ベクトルローダ20によって
1回目に読出された際に該キャッシュページをUSED状態
に設定してしまうと、2回目の読出しができなくなる。
そこで、該キャッシュページがあと何回読み出されるの
かをカウントすることにより、かかる不具合を防止した
ものである。ところで、ベクトルデータが複数回用いら
れる場合としては、同一のイベントデータに対する波形
合成処理において同一のベクトルデータが複数回用いら
れる場合と、複数のイベントデータに対する波形合成処
理において同一のベクトルデータが複数回用いられる場
合とが考えられる。本実施形態においては、何れの場合
においてもメンバdwCountによって残りの使用回数が判
別されるから、キャッシュメモリ44内のキャッシュペ
ージに対して統一的な取扱が可能になる。
Here, the role of the member dwCount will be described. For example, if the same vector data is used twice in a series of packet streams,
Two designated load requests are generated for the vector data. However, if the cache page is set to the USED state at the time of the first reading by the vector loader 20, the second reading cannot be performed.
Therefore, this problem is prevented by counting how many times the cache page is read. By the way, when the vector data is used a plurality of times, the same vector data is used a plurality of times in the waveform synthesis processing for the same event data, and the same vector data is used a plurality of times in the waveform synthesis processing for the plurality of event data. It is considered that it is used. In this embodiment, in any case, the remaining number of uses is determined by the member dwCount, so that the cache pages in the cache memory 44 can be handled uniformly.

【0092】(4.3)ページヘッダのリンク構造(図
29) 次に、ポインタlpForwardとポインタlpBackwardによっ
て実現される双方向リンクドリストの構造を図29に示
す。本実施形態においては、データの並べ替えや、追加
/削除を自由にかつ高速に実行するため、図示のような
リスト構造を採用した。図においてA−1は双方向リン
クドリストの先頭に位置するページヘッダであり、その
先頭は所定のポインタlpTopによって指標され、末尾は
ポインタlpTailによって指標されている。A−2,A−
3はページヘッダA−1と同一のグループに属するペー
ジヘッダである。すなわち、この「グループ」は、一つ
のファイルが分割されて形成された個々のキャッシュペ
ージのデータに相当する。ページヘッダA−2の先頭ア
ドレスはページヘッダA−1のメンバlpNextによって指
標され、ページヘッダA−3の先頭アドレスはページヘ
ッダA−2のメンバlpNextによって指標されている。
(4.3) Link Structure of Page Header (FIG. 29) Next, FIG. 29 shows the structure of a bidirectional linked list realized by the pointer lpForward and the pointer lpBackward. In the present embodiment, a list structure as shown in the figure is adopted in order to freely rearrange and add / delete data at high speed. In the figure, A-1 is a page header located at the head of the bidirectional linked list, the head of which is indicated by a predetermined pointer lpTop, and the end of which is indicated by a pointer lpTail. A-2, A-
Reference numeral 3 denotes a page header belonging to the same group as the page header A-1. That is, the “group” corresponds to data of each cache page formed by dividing one file. The start address of the page header A-2 is indicated by the member lpNext of the page header A-1, and the start address of the page header A-3 is indicated by the member lpNext of the page header A-2.

【0093】また、B−1はページヘッダA−1の次段
にリンクされているページヘッダであり、ページヘッダ
B−1の先頭アドレスはページヘッダA−1のメンバlp
Forwardによって指標されている。そして、このページ
ヘッダB−1のメンバlpNextによって、同一グループに
属するページヘッダB−2の先頭アドレスが指標されて
いる。また、ページヘッダB−1のメンバlpForwardに
よって、次段にリンクされているページヘッダC−1の
先頭アドレスが指標され、ページヘッダC−1,C−2
のメンバlpNextによって、各々ページヘッダC−2,C
−3の先頭アドレスが指標されている。ここで、FREE状
態のキャッシュページも1グループを構成するため、例
えばグループA,BはFILLED状態、グループCはFREE状
態に設定される。新しいベクトルデータをキャッシング
しようとするときは、FREE状態あるいはUSED状態のグル
ープからキャッシュページが取得され、そのキャッシュ
ページが新たなベクトルデータのキャッシュページに設
定されることになる。
B-1 is a page header linked to the next stage of the page header A-1. The head address of the page header B-1 is a member lp of the page header A-1.
Indexed by Forward. The head address of the page header B-2 belonging to the same group is indicated by the member lpNext of the page header B-1. The head address of the page header C-1 linked to the next stage is indexed by the member lpForward of the page header B-1, and the page headers C-1, C-2
Page headers C-2 and C-2 respectively by the member lpNext of
The start address of -3 is indicated. Here, since the FREE cache pages also constitute one group, for example, the groups A and B are set to the FILLED state, and the group C is set to the FREE state. When caching new vector data, a cache page is obtained from the group in the FREE state or the USED state, and the cache page is set as the cache page of the new vector data.

【0094】また、システムメモリ上に新たなキャッシ
ュページおよび対応するページヘッダを作成し、これを
新たなベクトルデータのキャッシュページにしてもよ
い。但し、その場合には、キャッシュページの総量を指
定値に制限し、メモリ資源を消費しすぎないようにして
おくと好適である。この指定値は、システムメモリ量に
応じて自動設定してもよく、ユーザが手動設定してもよ
い。また、FREE状態のグループのメモリ量としてある一
定値を常に確保するように制御すると、新たなベクトル
データのキャッシュページへの割当を高速化することが
できる。
Further, a new cache page and a corresponding page header may be created on the system memory, and this may be used as a new vector data cache page. However, in that case, it is preferable to limit the total amount of cache pages to a specified value so as not to consume too much memory resources. This designated value may be automatically set according to the system memory amount, or may be manually set by the user. In addition, if control is performed so that a certain fixed value is always secured as the memory capacity of the group in the FREE state, the allocation of new vector data to the cache page can be speeded up.

【0095】図29の双方向リンクドリストによれば、
メンバlpForwardを参照してゆくことにより、リストを
構成する各グループの先頭のページヘッダA−1,B−
1,C−1を順番に辿ることができる。また、メンバlp
Backwardを参照してゆくことにより、該双方向リンクド
リストを逆方向に辿ることができる。従って、あるベク
トルデータがキャッシュされているか否かを調査する場
合は、リストを構成する先頭のページヘッダを順次辿っ
てゆき、ページヘッダ内のメンバdwIDが該ベクトルデー
タと同一のベクトルIDと一致するか否かを判定してゆ
くとよい。もし一致するものが存在すれば、そのページ
ヘッダに係るキャッシュページが、該ベクトルデータを
キャッシングしているグループの先頭のキャッシュペー
ジになる。なお、同時に使用される全ベクトルデータが
必ず1ページに格納される場合には、上記双方向リンク
ドリストはページヘッダA−1,B−1,C−1のみに
よって構成されることになり、これらページヘッダのメ
ンバlpNextには、ヌルデータが格納されることになる。
According to the bidirectional linked list in FIG. 29,
By referring to the member lpForward, the first page headers A-1 and B- of each group constituting the list are displayed.
1, C-1 can be traced in order. Also, member lp
By referring to Backward, the bidirectional linked list can be traced in the reverse direction. Therefore, when investigating whether or not certain vector data is cached, the first page header constituting the list is sequentially traced, and the member dwID in the page header matches the same vector ID as the vector data. It is good to judge whether or not. If there is a match, the cache page related to the page header becomes the first cache page of the group caching the vector data. If all vector data used at the same time is always stored in one page, the bidirectional linked list includes only page headers A-1, B-1, and C-1. Null data is stored in the lpNext member of these page headers.

【0096】なお、上記メンバdwStatusで示される各状
態を重要度順に配列すると、「LOCKED≧FILLED>ALLOCA
TED>USED>FREE」の順になる。そこで、この重要度順
でキャッシュページの順序を設定しておけば、新たなベ
クトルデータに対するキャッシュページの割当を高速化
することができる。さらに、メンバdwCountの値をその
まま重要度に反映させてもよい。すなわち、メンバdwCo
untが大きいほど重要度を高くするとよい。また、USED
状態のキャッシュページ間では、先にUSED状態に遷移し
たものの重要度がより低くなるように設定しておくと好
適である。
When the states indicated by the member dwStatus are arranged in the order of importance, "LOCKED ≧ FILLED> ALLOCA
TED>USED> FREE. Therefore, if the order of the cache pages is set in this order of importance, the allocation of cache pages to new vector data can be speeded up. Further, the value of the member dwCount may be directly reflected in the importance. That is, member dwCo
The larger the unt, the higher the importance. USED
Between the cache pages in the state, it is preferable to set so that the transition to the USED state first becomes less important.

【0097】(5)読出し制御部43における動作 次に、読出し制御部43の動作を再び図28を参照し説
明する。ベクトルローダ20においては、パケットスト
リームの内容すなわち各パケット内のベクトルIDに基
づいて、キャッシュメモリ44を読み出すように読出し
制御部43にコマンドが送信される。このコマンドをLo
ckVector指令と呼ぶ。このLockVector指令には、先にGe
tVector指令に応じて返したハンドルが付随されてい
る。通常の動作状態であれば、該ベクトルデータはキャ
ッシュメモリ44内に格納されている筈であるから、該
ベクトルデータに係るキャッシュページの先頭アドレス
のポインタがベクトルローダ20に返される。
(5) Operation in Read Control Unit 43 Next, the operation of the read control unit 43 will be described with reference to FIG. 28 again. In the vector loader 20, a command is transmitted to the read control unit 43 to read the cache memory 44 based on the contents of the packet stream, that is, the vector ID in each packet. Change this command to Lo
Called the ckVector command. This LockVector directive includes Ge
The handle returned in response to the tVector command is attached. In a normal operation state, the vector data should have been stored in the cache memory 44. Therefore, the pointer of the head address of the cache page related to the vector data is returned to the vector loader 20.

【0098】これにより、ベクトルローダ20およびベ
クトルデコーダ31〜35によって、キャッシュメモリ
44の内容が適宜読み出され、波形合成処理が実行され
る。このように、ベクトルローダ20等によって読み出
され得るキャッシュページは、LOCKED状態(詳細は後述
する)に設定され、他の処理によって内容が改変されな
いよう設定されている。
As a result, the contents of the cache memory 44 are appropriately read out by the vector loader 20 and the vector decoders 31 to 35, and the waveform synthesizing process is executed. As described above, the cache page that can be read by the vector loader 20 or the like is set to the LOCKED state (details will be described later), and the content is set so as not to be altered by other processing.

【0099】ところで、状況によっては、ベクトルロー
ダ20からLockVector指令を受信した際にキャッシュメ
モリ44上に必要なベクトルデータが未だロードされて
いない場合がある。特に本実施形態の波形生成装置をパ
ーソナルコンピュータのアプリケーションプログラムに
よって実現した場合には、パーソナルコンピュータのオ
ペレーティングシステムの都合によって比較的長時間ハ
ードディスク109が占有されることがあり、かかる状
況がしばしば発生し得る。この場合には、波形生成装置
の動作モードによって異なる処理が実行される。
Incidentally, depending on the situation, when the LockVector command is received from the vector loader 20, the required vector data may not be loaded on the cache memory 44 yet. In particular, when the waveform generating apparatus of the present embodiment is realized by an application program of a personal computer, the hard disk 109 may be occupied for a relatively long time due to the operating system of the personal computer, and such a situation may often occur. . In this case, different processing is executed depending on the operation mode of the waveform generation device.

【0100】まず、ノンリアルタイムで波形合成を行っ
ている場合は、指定されたベクトルデータがロードされ
るまで以降の処理を停止することが好適である。そこ
で、読出し制御部43においては、ハードディスク10
9に対する同期読出しが実行される。この同期読出し
は、所望のデータが読み出されるまで他の処理を行わな
いことを意味する。
First, when waveform synthesis is performed in non-real time, it is preferable to stop the subsequent processing until the designated vector data is loaded. Therefore, in the read control unit 43, the hard disk 10
9 is executed synchronously. This synchronous reading means that no other processing is performed until the desired data is read.

【0101】一方、波形生成装置がリアルタイムで動作
している場合には、同期読出しを実行することは楽音が
途切れることになりかねないため、代替ページのポイン
タがベクトルローダ20に返される。本実施形態におい
ては、様々な音色変化を忠実に表現するために多種類の
ベクトルデータを用いているが、プログラムチェンジで
選択された音色について、奏法表現等を伴わない基本的
な発音を行うためのベクトルに限定すれば、その容量は
あまり大きくない。そのようなベクトル(複数)が、そ
の音色のデフォルトのベクトルとして予めRAM103
内に格納されており、キャッシュメモリ44内に準備で
きなかったベクトルデータの代替として用いられる。
On the other hand, when the waveform generating apparatus is operating in real time, executing the synchronous readout may result in interruption of the musical sound. Therefore, the pointer of the substitute page is returned to the vector loader 20. In the present embodiment, various types of vector data are used to faithfully represent various timbre changes. If the vector is limited, the capacity is not so large. Such a vector (plural) is stored in the RAM 103 in advance as a default vector of the tone color.
And is used as a substitute for vector data that could not be prepared in the cache memory 44.

【0102】なお、リアルタイム合成を行う場合であっ
ても、波形合成処理S14(波形合成部101D)にお
ける時間遅延が充分確保されており、その範囲内で必要
なベクトルのロードおよび波形合成が可能な場合は、ノ
ンリアルタイムで波形合成を行う場合と同様に、必要な
ベクトルデータがロードされていないことが判明した段
階で、該ベクトルデータを緊急に読み出して波形合成を
行うことができる。ベクトルローダ20およびベクトル
デコーダ31〜35による使用が終了したキャッシュペ
ージについては、ベクトルローダ20から読出し制御部
43にハンドルを伴ったRelease指令が供給される。こ
のRelease指令が供給されると、該キャッシュページのL
OCKED状態が解消され、ハンドルが解放される。
Even in the case of performing real-time synthesis, a sufficient time delay is ensured in the waveform synthesis processing S14 (waveform synthesis unit 101D), and necessary vector loading and waveform synthesis can be performed within the range. In this case, as in the case of performing non-real-time waveform synthesis, when it is determined that necessary vector data has not been loaded, the vector data can be urgently read to perform waveform synthesis. For the cache page that has been used by the vector loader 20 and the vector decoders 31 to 35, a release command with a handle is supplied from the vector loader 20 to the read control unit 43. When this release command is supplied, the L of the cache page is
The OCKED state is released and the handle is released.

【0103】(6)キャッシュページに対する状態遷移
動作 次に、図30の状態遷移図を参照し、各キャッシュペー
ジの状態を遷移させてゆく動作について説明する。ま
ず、初期状態においては、全キャッシュページはFREE状
態(S61)に設定される。すなわち該キャッシュペー
ジのヘッダのメンバdwStatusが‘FREE’に設定される。
これは、未使用状態であって、内容が保証されていない
ことを意味する。このキャッシュページに対して、ベク
トルデータのロードが行われる場合は、該キャッシュペ
ージがALLOCATED状態(S62)に設定される。ALLOCAT
ED状態は、未だデータの格納は完了していないが、コー
ドブック26からのデータ読出しのために予約されてい
ることを意味する。その際、メンバdwCountに「1」が
格納される。
(6) State Transition Operation for Cache Pages Next, with reference to the state transition diagram of FIG. 30, an operation of transitioning the state of each cache page will be described. First, in the initial state, all cache pages are set to the FREE state (S61). That is, the member dwStatus of the header of the cache page is set to 'FREE'.
This means that the contents are unused and the contents are not guaranteed. When vector data is loaded into this cache page, the cache page is set to the ALLOCATED state (S62). ALLOCAT
The ED state means that data storage has not been completed yet, but is reserved for reading data from the codebook 26. At this time, “1” is stored in the member dwCount.

【0104】その後、ベクトルデータが該ページに格納
されると、キャッシュページの状態はFILLED状態に遷移
する。ALLOCATED状態またはFILLED状態において、同一
のベクトルデータについて再び指定ロード要求が発生す
ると、その度にメンバdwCountが「1」づつインクリメ
ントされる。また、ALLOCATED状態またはFILLED状態に
おいて、予測ロード要求がキャンセルされると(ロード
処理(図25)のステップS55)、メンバdwCountが
「1」づつデクリメントされる。そして、これらの状態
においてメンバdwCountの値が「0」になると、該キャ
ッシュページはUSED状態(S63)に設定される。
Thereafter, when the vector data is stored in the page, the state of the cache page transits to the FILLED state. In the ALLOCATED state or the FILLED state, when a designated load request is issued again for the same vector data, the member dwCount is incremented by "1" each time. When the predicted load request is canceled in the ALLOCATED state or the FILLED state (step S55 of the load processing (FIG. 25)), the member dwCount is decremented by "1". When the value of the member dwCount becomes "0" in these states, the cache page is set to the USED state (S63).

【0105】キャッシュページがFILLED状態に遷移した
後、ベクトルローダ20からLockVector指令が供給され
ると、該キャッシュページがLOCKED状態(S65)に設
定される。そして、ベクトルローダ20およびベクトル
デコーダ31〜35による当該キャッシュページの使用
が終了しRelease指令が供給されると、LOCKED状態が解
消され(UnLockされ)、該キャッシュページが再びFILL
ED状態(S64)に設定される。その際、該キャッシュ
ページのメンバdwCountが「1」だけデクリメントされ
る。その際、メンバdwCountが「0」になった場合に
は、該キャッシュページの状態は直ちにUSED状態(S6
3)に設定される。
After the cache page transits to the FILLED state, when a LockVector command is supplied from the vector loader 20, the cache page is set to the LOCKED state (S65). When the use of the cache page by the vector loader 20 and the vector decoders 31 to 35 is completed and a Release command is supplied, the LOCKED state is canceled (UnLocked) and the cache page is filled again.
The state is set to the ED state (S64). At this time, the member dwCount of the cache page is decremented by “1”. At this time, if the member dwCount becomes “0”, the state of the cache page is immediately changed to the USED state (S6).
Set to 3).

【0106】また、キャッシュページがUSED状態に設定
された後、該キャッシュページに対して再び予測ロード
要求または指定ロード要求(プリフェッチ)が発生する
と、該キャッシュページは再びFILLED状態に戻される。
以上のような処理が続行すると、やがてキャッシュメモ
リ44内にUSED状態のキャッシュページが増加してゆ
き、FREE状態のキャッシュページが減少してゆく。そし
て、FREE状態のキャッシュページが無くなった後に、新
たなベクトルデータについてプリフェッチが発生する
と、USED状態であるキャッシュページのうち最も古くUS
ED状態になったものから順にキャンセル(SwapOut)さ
れ、FREE状態(S61)に戻される。そして、このFREE
状態に戻されたキャッシュページが、上記新たなベクト
ルデータのロードのためにALLOCATED状態に設定され
る。
After the cache page is set to the USED state, when a predicted load request or a designated load request (prefetch) is generated again for the cache page, the cache page is returned to the FILLED state again.
As the above processing continues, the number of cache pages in the USED state increases in the cache memory 44 and the number of cache pages in the FREE state gradually decreases. Then, when the prefetch of new vector data occurs after the cache page in the FREE state disappears, the oldest US page in the cache page in the USED state
Cancellation (SwapOut) is performed in order from the ED state, and the state is returned to the FREE state (S61). And this FREE
The cache page returned to the state is set to the ALLOCATED state for loading the new vector data.

【0107】ここで、USED状態であるキャッシュページ
のうち最も古いものを速やかに特定する方法として、先
に図29において説明した双方向リンクドリストを用い
るとよい。すなわち、何れかのキャッシュページがUSED
状態に設定されると、リンクドリストの先頭に該キャッ
シュページを追加し、FREE状態のキャッシュページが不
足する場合には、リンクドリストの末尾のキャッシュペ
ージから順次リンクドリストから外し、FREE状態に変更
してゆくとよい。
Here, as a method for quickly specifying the oldest cache page in the USED state, the bidirectional linked list described above with reference to FIG. 29 may be used. That is, any cache page is USED
When set to the state, the cache page is added to the head of the linked list, and if there are not enough free cache pages, the cache pages at the end of the linked list are sequentially removed from the linked list, and It is good to change to.

【0108】(7)時刻管理部45 時刻管理部45は波形合成部101D全体のタイミング
を制御する。ここで、本実施形態におけるタイミング制
御の概要を図31を参照し説明する。図において、時刻
t30に再生開始が指示された(例えばユーザにより再生
ボタンが押下された)こととし、実際に楽音出力が開始
される時刻をt40とする。この時刻t30からt40に至る
までの時間をレーテンシβと呼ぶ。レーテンシβは、例
えば2000msec程度に設定されるが、特に設定しなく
てもよい。
(7) Time Management Unit 45 The time management unit 45 controls the timing of the entire waveform synthesizing unit 101D. Here, the outline of the timing control in the present embodiment will be described with reference to FIG. In the figure, it is assumed that the reproduction start is instructed at time t30 (for example, the reproduction button is pressed by the user), and the time at which the musical sound output is actually started is t40. The time from time t30 to t40 is called latency β. The latency β is set, for example, to about 2000 msec, but need not be set.

【0109】再生開始が指示されると、CPU101に
おいて再生スレッドが所定時間毎に生成される。この再
生スレッドにおいては曲データが読み出され、その内容
に応じてハードディスク109等に対するプリフェッチ
処理が実行される。ある曲データが読み出される時刻t
32から実際の発音開始時刻t40までの時間を先送り時間
γと呼ぶ。先送り時間γの基準値は例えば4000msec
程度にしておき、処理状況に応じて1000〜10000mse
c程度の範囲で伸縮できるようにしておくとよい。
When a reproduction start is instructed, a reproduction thread is generated in the CPU 101 at predetermined time intervals. In the reproduction thread, music data is read, and a prefetch process is performed on the hard disk 109 or the like according to the content. Time t at which certain song data is read
The time from 32 to the actual sounding start time t40 is called the advance time γ. The reference value of the advance time γ is, for example, 4000 msec.
About 1000 to 10,000 msec depending on the processing situation.
It is preferable to be able to expand and contract within a range of about c.

【0110】このように、先送り時間γをある程度確保
しておくことにより、再生スレッドを断続的に発生させ
曲データの読出しを断続的に(ある程度づつまとめて)
行うことが可能になる。再生スレッドが発生する間隔を
再生スレッド発生間隔εと呼ぶ。再生スレッド発生間隔
εの基準値は例えば20msecにしておき、処理状況
に応じて5〜100msec程度の範囲で伸縮できるよ
うにしておくとよい。
As described above, by securing the advance time γ to some extent, the reproduction thread is generated intermittently, and the reading of the music data is performed intermittently (to some extent collectively).
It is possible to do. The interval at which a playback thread occurs is called a playback thread occurrence interval ε. The reference value of the reproduction thread generation interval ε may be set to, for example, 20 msec, and may be expanded or contracted in a range of about 5 to 100 msec according to the processing situation.

【0111】時刻t32に曲データが読み出されると、上
述したようにステップS11において曲データの一部が
取り出され、ステップS12において楽譜が解釈され、
しかる後にステップS13において奏法合成が実行され
る。この結果、時刻t34においてベクトルデータのプリ
フェッチが行われる。プリフェッチ時刻t34から発音開
始時刻t40までの時間をプリフェッチ時間αと呼ぶ。
When the music data is read out at time t32, part of the music data is extracted in step S11 as described above, and the score is interpreted in step S12.
Thereafter, in step S13, the rendition style synthesis is executed. As a result, vector data is prefetched at time t34. The time from the prefetch time t34 to the sound generation start time t40 is called a prefetch time α.

【0112】ハードディスク109から読み出されたベ
クトルデータは、やがてキャッシュメモリ44に書き込
まれる。その後、時刻t36において、ベクトルローダ2
0によって読出し制御部43を介してキャッシュメモリ
44から該ベクトルデータが読み出され、波形合成が開
始される。この波形合成開始時刻t36から発音開始時刻
t40までの時間を出力レーテンシδと呼ぶ。出力レーテ
ンシδの基準値は例えば300msec程度にしてお
き、処理状況に応じて10〜1000msec程度の範
囲で伸縮できるようにしておくとよい。
The vector data read from the hard disk 109 is written to the cache memory 44 soon. Thereafter, at time t36, the vector loader 2
When 0, the vector data is read from the cache memory 44 via the read control unit 43, and the waveform synthesis is started. The time from the waveform synthesis start time t36 to the tone generation start time t40 is called an output latency δ. The reference value of the output latency δ may be set to, for example, about 300 msec, and may be expanded or contracted in a range of about 10 to 1000 msec according to the processing situation.

【0113】なお、かかる波形合成処理についても、再
生スレッドの場合と同様に、ある程度の時間範囲をまと
めて断続的に実行すると好適である。この波形合成処理
の起動頻度間隔の基準値は例えば50msecにしてお
き、処理状況に応じて10〜500msec程度の範囲
で伸縮できるようにしておくとよい。
It is preferable that the waveform synthesizing process is performed intermittently in a certain time range as in the case of the reproduction thread. The reference value of the activation frequency interval of the waveform synthesizing process is set to, for example, 50 msec, and may be expanded or contracted in a range of about 10 to 500 msec according to the processing status.

【0114】図31から明らかなように、先送り時間
γ、プリフェッチ時間αおよび出力レーテンシδには、
「γ>α>δ」の関係がある。ここで、プリフェッチ時
刻t34から波形合成開始時刻t36までの時間間隔「α−
δ」は、ハードディスク109からベクトルデータをロ
ードできる程度に設定しておく必要がある。ベクトルデ
ータのロード量のピーク値が高い場合には、この時間間
隔「α−δ」を長くすることにより、ノイズの発生等を
防止することができる。
As apparent from FIG. 31, the advance time γ, the prefetch time α, and the output latency δ include:
There is a relationship of “γ>α> δ”. Here, the time interval from the prefetch time t34 to the waveform synthesis start time t36 "α-
δ ”needs to be set to such an extent that vector data can be loaded from the hard disk 109. When the peak value of the load amount of the vector data is high, generation of noise or the like can be prevented by increasing the time interval “α−δ”.

【0115】4.変形例 本発明は上述した実施形態に限定されるものではなく、
例えば以下のように種々の変形が可能である。 (1)上述したような波形生成装置を電子楽器に用いた
場合、電子楽器は鍵盤楽器の形態に限らず、弦楽器や管
楽器、あるいは打楽器等どのようなタイプの形態でもよ
い。また、その場合に、曲データ再生部101A、楽譜
解釈部101B、奏法合成部101C、波形合成部10
1D等を1つの電子楽器本体内に内蔵したものに限ら
ず、それぞれが別々に構成され、MIDIインタフェー
スや各種ネットワーク等の通信手段を用いて各構成部を
接続するように構成されたものにも同様に適用できるこ
とはいうまでもない。また、パソコンとアプリケーショ
ンソフトウェアという構成であってもよく、この場合処
理プログラムを磁気ディスク、光ディスクあるいは半導
体メモリ等の記録媒体に格納して供給したり、ネットワ
ークを介して供給するものであってもよい。さらに、自
動演奏ピアノのような自動演奏装置などにも適用してよ
い。
4. Modifications The present invention is not limited to the embodiments described above,
For example, various modifications are possible as follows. (1) When the above-described waveform generating apparatus is used for an electronic musical instrument, the electronic musical instrument is not limited to a keyboard instrument, but may be a string instrument, a wind instrument, or a percussion instrument. In this case, the music data reproducing unit 101A, the musical score interpreting unit 101B, the playing style synthesizing unit 101C, the waveform synthesizing unit 10
It is not limited to the one in which the 1D or the like is built in one electronic musical instrument main body, but also the one in which each is separately configured and configured to connect each component using communication means such as a MIDI interface or various networks. It goes without saying that the same can be applied. Further, the configuration may be a configuration of a personal computer and application software. In this case, the processing program may be stored and supplied to a recording medium such as a magnetic disk, an optical disk, or a semiconductor memory, or may be supplied via a network. . Further, the present invention may be applied to an automatic performance device such as an automatic performance piano.

【0116】(2)上記実施形態においては、一つのキ
ャッシュページに複数のベクトルデータを格納したが、
一つのキャッシュページに一つのベクトルデータを格納
するようにしても良いことは言うまでもない。
(2) In the above embodiment, a plurality of vector data are stored in one cache page.
It goes without saying that one vector page data may be stored in one cache page.

【0117】(3)上記実施形態においては、キャッシ
ュページのヘッダのメンバdwCountをインクリメントあ
るいはデクリメントすることによって、USED状態に遷移
させるものを判定した。しかし、かかる方法では、未使
用状態のキャッシュページが増大した時にキャッシュメ
モリ44が容量不足になる可能性がある。かかる場合に
は、FILLED状態であるキャッシュページに対して「優先
度」を定義し、優先度の低いFILLED状態のキャッシュペ
ージを順次USED状態そしてFREE状態に遷移させてもよ
い。この場合、FREE状態に遷移させたキャッシュページ
に対してベクトルローダ20からLockVector指令を受信
すると、上述した代替ページが使用されることになる。
「優先度」の具体例としては、メンバdwCountの値をそ
のまま用いてもよい(値が大きいほど優先度が高いこと
とする)。また、過去に当該キャッシュページが使用さ
れた回数、メンバdwCountの最大値(過去の履歴上での
最大値)を加味してもよい。
(3) In the above embodiment, it is determined that a transition to the USED state is made by incrementing or decrementing the member dwCount of the header of the cache page. However, in this method, when the number of unused cache pages increases, the capacity of the cache memory 44 may become insufficient. In such a case, “priority” may be defined for the cache page in the FILLED state, and the cache page in the FILLED state having a lower priority may be sequentially shifted to the USED state and the FREE state. In this case, when the LockVector command is received from the vector loader 20 for the cache page that has transitioned to the FREE state, the above-described alternative page is used.
As a specific example of “priority”, the value of the member dwCount may be used as it is (the higher the value, the higher the priority). Further, the number of times the cache page has been used in the past and the maximum value of the member dwCount (the maximum value in the past history) may be added.

【0118】(4)上記実施形態においては、USED状態
であるキャッシュページを双方向リンクドリストによっ
て結合し、FREE状態のキャッシュページが不足する場合
には、リンクドリストの末尾のキャッシュページから
(最も古いものから)順次外してゆき、FREE状態に変更
した。しかし、FREE状態に遷移させる順序はこれに限定
されるものではない。例えば、使用された累積回数の多
いキャッシュページ、メンバdwCountの履歴上の最大値
の大きいキャッシュページ、あるいは各モジュールの先
頭部分において使用されるベクトルデータについては、
なるべくFREE状態に遷移しないように、換言すればキャ
ッシュメモリ44内に優先的に残すように設定してもよ
い。また、実際に使用された使用済みのベクトルデータ
を、実際には使用されなかった(予測が外れた)ベクト
ルデータよりも優先的に残すようにしてもよい。
(4) In the above embodiment, the cache pages in the USED state are linked by the bidirectional linked list, and when the cache pages in the FREE state run short, the cache page at the end of the linked list is deleted from the I removed them sequentially (from the oldest one) and changed them to FREE status. However, the order of transition to the FREE state is not limited to this. For example, for a cache page with a large cumulative number of times used, a cache page with a large maximum value in the history of the member dwCount, or vector data used at the beginning of each module,
It may be set so as not to transition to the FREE state as much as possible, in other words, to preferentially leave in the cache memory 44. Alternatively, the used vector data that has been actually used may be preferentially left over the vector data that has not been actually used (the prediction is incorrect).

【0119】また、モジュールの先頭部分で使用される
ベクトルデータを優先的に残しておくことにより、ハー
ドディスク109の動作に対する余裕が大きくなり、代
替ページを使わざるを得なくなるような事態を減らすこ
とができる。具体的には、優先的に残すべきキャッシュ
ページをUSED状態に遷移させる時は当該キャッシュペー
ジをリンクドリストの先頭に追加し、それ以外のキャッ
シュページをUSED状態に遷移させる時は該キャッシュペ
ージをリンクドリストの中間部分に挿入するようにする
とよい。
Also, by leaving the vector data used at the head of the module preferentially, the margin for the operation of the hard disk 109 is increased and it is possible to reduce the situation where the substitute page must be used. it can. Specifically, when a cache page to be preferentially left is shifted to the USED state, the cache page is added to the head of the linked list, and when the other cache pages are shifted to the USED state, the cache page is changed. It is good to insert in the middle part of a linked list.

【0120】(5)上記実施形態においては、音データ
の具体例としてベクトルデータを用いた例を示したが、
該音データはベクトルデータに限定されるものではな
く、楽音波形を規定する種々の波形データあるいはパラ
メータを音データとして用いてもよいことは言うまでも
ない。
(5) In the above embodiment, an example using vector data has been described as a specific example of sound data.
The sound data is not limited to vector data, and it goes without saying that various waveform data or parameters defining the musical tone waveform may be used as sound data.

【0121】(6)上記実施形態においては、図15な
いし図23において説明したように、奏法合成部101
Cからのパケットストリームが先読みプリフェッチ部4
2に直接入力された。しかし、かかる動作に代えて、一
旦パケットキューバッファ21〜25に書き込まれたパ
ケットストリームを先読みプリフェッチ部42が読み出
すようにしてもよい。その場合、先読みプリフェッチ部
42は、ベクトルローダ20がパケットキューバッファ
に記憶されたパケットを読み出して処理するタイミング
よりも所定時間前のタイミングで、同パケットキューバ
ッファから同パケットを読み出して処理することが好適
である。
(6) In the above embodiment, as described with reference to FIGS.
The packet stream from C is a prefetch prefetch unit 4
2 was directly entered. However, instead of such an operation, the prefetching prefetch unit 42 may read out the packet stream once written in the packet queue buffers 21 to 25. In this case, the prefetching prefetch unit 42 may read the packet from the packet queue buffer and process the packet at a predetermined time before the timing at which the vector loader 20 reads and processes the packet stored in the packet queue buffer. It is suitable.

【0122】[0122]

【発明の効果】以上説明したように本発明によれば、音
色指定あるいは第1〜第3音データ指定を受信すると、
それ以降に指定される音データの候補を予測して予め低
速記憶装置から高速記憶装置に転送するから、低速記憶
装置に大量の音データを蓄積しつつ第1〜第3音データ
指定に対して迅速に対応することができる。これによ
り、表情豊かな波形合成を行うための音データをリアル
タイムで再生することができる。
As described above, according to the present invention, when the tone color designation or the first to third tone data designations are received,
Since the sound data candidates specified thereafter are predicted and transferred in advance from the low-speed storage device to the high-speed storage device, a large amount of sound data is stored in the low-speed storage device while the first to third sound data are specified. Can respond quickly. Thus, sound data for performing expressive waveform synthesis can be reproduced in real time.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 この発明に係る波形生成装置のハードウエア
構成例を示すブロック図。
FIG. 1 is a block diagram showing an example of a hardware configuration of a waveform generation device according to the present invention.

【図2】 波形生成装置において実行される「波形デー
タベース作成処理」の一実施形態を示すフローチャー
ト。
FIG. 2 is a flowchart illustrating one embodiment of a “waveform database creation process” executed in the waveform generation device.

【図3】 奏法モジュールに対応する実波形区間を構成
する各成分及び要素の一例を模式的に示す図。
FIG. 3 is a diagram schematically showing an example of each component and element constituting an actual waveform section corresponding to a rendition style module.

【図4】 「データベースに基づく楽音合成処理」の一
実施形態を示すフローチャート。
FIG. 4 is a flowchart showing an embodiment of “musical sound synthesis processing based on a database”.

【図5】 図4と同様の波形合成処理を専用ハードウエ
アの形態で構成した場合の一実施形態を示すブロック
図。
FIG. 5 is a block diagram showing an embodiment in which the same waveform synthesis processing as in FIG. 4 is configured in the form of dedicated hardware.

【図6】 上述した奏法合成部における奏法合成処理の
流れを説明するためのブロック図。
FIG. 6 is a block diagram for explaining a flow of a rendition style synthesis process in the rendition style synthesis section described above.

【図7】 奏法合成部で行われる奏法合成処理の一実施
形態を詳細に示したフローチャート。
FIG. 7 is a flowchart showing in detail one embodiment of a rendition style synthesizing process performed by the rendition style synthesizing unit.

【図8】 奏法モジュールが振幅要素又はピッチ要素に
対応する場合におけるリンク処理を説明するための概念
図。
FIG. 8 is a conceptual diagram for explaining link processing in a case where a rendition style module corresponds to an amplitude element or a pitch element.

【図9】 アタック波形とボディ波形とを接続した場合
の波形の間引きを説明するための概念図。
FIG. 9 is a conceptual diagram for explaining thinning of a waveform when an attack waveform and a body waveform are connected.

【図10】 ボディ波形とリリース波形とを接続した場
合の波形の間引きを説明するための概念図。
FIG. 10 is a conceptual diagram illustrating thinning out of a waveform when a body waveform and a release waveform are connected.

【図11】 ベンドアタック波形とリリース波形とを接
続した場合の波形の間引きを説明するための概念図。
FIG. 11 is a conceptual diagram for explaining waveform thinning when a bend attack waveform and a release waveform are connected.

【図12】 ノーマルアタック波形とループ部を有する
リリース波形とを接続した場合の波形の間引きを説明す
るための概念図。
FIG. 12 is a conceptual diagram for explaining thinning out of a waveform when a normal attack waveform and a release waveform having a loop portion are connected.

【図13】 後に続く奏法モジュールが開始されるより
も前の奏法モジュールが終了してしまう場合の波形接続
について説明するための概念図。
FIG. 13 is a conceptual diagram for explaining a waveform connection in a case where a rendition style module before a subsequent rendition style module is started ends.

【図14】 奏法合成部で生成されるパケットストリー
ムを説明するための概念図。
FIG. 14 is a conceptual diagram for explaining a packet stream generated by a rendition style synthesizing unit.

【図15】 波形合成部における動作を説明するために
全体構成の一実施形態を示した概念図。
FIG. 15 is a conceptual diagram showing an embodiment of the overall configuration for explaining the operation of the waveform synthesizing unit.

【図16】 波形合成の全体の流れを簡単に示すブロッ
ク図。
FIG. 16 is a block diagram simply showing the overall flow of waveform synthesis.

【図17】 ベクトルローダを説明するためのブロック
図。
FIG. 17 is a block diagram illustrating a vector loader.

【図18】 ベクトルオペレータを説明するためのブロ
ック図。
FIG. 18 is a block diagram for explaining a vector operator.

【図19】 ベクトルレコーダを説明するためのブロッ
ク図。
FIG. 19 is a block diagram for explaining a vector recorder.

【図20】 ベクトルデータのデータ構造の一実施形態
を概念的に示す概念図。
FIG. 20 is a conceptual diagram conceptually showing one embodiment of a data structure of vector data.

【図21】 楽譜解釈部101Bにおいて作成される演
奏データの内容を示す図。
FIG. 21 is a diagram showing the contents of performance data created by a music score interpretation unit 101B.

【図22】 奏法合成部101Cから波形合成部101
Dに各パケットが供給されるタイミングを示す図。
FIG. 22 shows a rendition style synthesis section 101C to a waveform synthesis section 101.
The figure which shows the timing at which each packet is supplied to D.

【図23】 キャッシュ制御部40の全体構成を示すブ
ロック図。
FIG. 23 is a block diagram showing the overall configuration of a cache control unit 40.

【図24】 予測制御部41の予測動作の状態遷移図。FIG. 24 is a state transition diagram of a prediction operation of the prediction control unit 41.

【図25】 先読みプリフェッチ部42において実行さ
れるロード処理のフローチャート。
FIG. 25 is a flowchart of a load process executed in a prefetch prefetch unit.

【図26】 先読みプリフェッチ部42において実行さ
れるパケット受信処理のフローチャート。
FIG. 26 is a flowchart of a packet receiving process executed in the prefetch prefetch unit.

【図27】 キャッシュページの構成方法を示す動作説
明図。
FIG. 27 is an operation explanatory view showing a method of configuring a cache page.

【図28】 奏法合成部101Cおよび波形合成部10
1D間のシグナルフロー図。
FIG. 28 is a rendition style synthesizing unit 101C and a waveform synthesizing unit 10.
Signal flow diagram during 1D.

【図29】 キャッシュメモリ44内におけるページヘ
ッダのリンク構造を示す図。
FIG. 29 is a diagram showing a link structure of a page header in the cache memory 44.

【図30】 キャッシュメモリ44内における各ページ
の状態遷移図。
30 is a state transition diagram of each page in the cache memory 44. FIG.

【図31】 上記実施形態のタイミング制御の概要を示
すタイミングチャート。
FIG. 31 is a timing chart showing an outline of the timing control of the embodiment.

【符号の説明】[Explanation of symbols]

1〜12……データ、20……ベクトルローダ、21〜
25……パケットキューバッファ、26……コードブッ
ク、31〜35……ベクトルデコーダ、36,37……
ベクトルオペレータ、38……ミキサ、40……キャッ
シュ制御部、41……予測制御部、42……先読みプリ
フェッチ部、43……読出し制御部、44……キャッシ
ュメモリ(高速記憶装置)、45……時刻管理部、50
……アタック部奏法モジュール、101……CPU、1
01A……曲データ再生部、101B……楽譜解釈部、
101C……奏法合成部、101D……波形合成部、1
02……ROM、103……RAM、104……パネル
スイッチ、105……パネル表示器、106……ドライ
ブ、106……前記ドライブ、106A……外部記憶メ
ディア、107……波形取込部、108……波形出力
部、108A……サウンドシステム、109……ハード
ディスク(低速記憶装置)、111……通信インタフェ
ース。
1 to 12 data, 20 vector loaders, 21 to
25 packet queue buffer, 26 codebook, 31-35 vector decoder, 36, 37
Vector operator, 38, mixer, 40, cache control unit, 41, prediction control unit, 42, prefetch prefetch unit, 43, read control unit, 44, cache memory (high-speed storage device), 45. Time management unit, 50
… Attack part playing style module, 101… CPU, 1
01A: music data reproducing unit; 101B: music score interpreting unit
101C ... rendition style synthesis unit, 101D ... waveform synthesis unit, 1
02 ROM, 103 RAM, 104 panel switch, 105 panel display, 106 drive, 106 drive, 106A external storage medium, 107 waveform capture unit, 108 ... Waveform output unit, 108A sound system, 109 hard disk (low-speed storage device), 111 communication interface.

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 楽音波形の音データを記憶する低速記憶
装置と、該音データをキャッシングする高速記憶装置と
を用いて、前記低速記憶装置に記憶された音データのう
ちの一部を前記高速記憶装置に転送する音データ転送方
法であって、 前記高速記憶装置に転送されるべき音データに係る音色
指定を受信する音色指定受信過程と、 該受信した音色指定に基づいて、後に指定される音デー
タの候補を予測する音データ予測過程と、 該予測した音データの候補を前記低速記憶装置から前記
高速記憶装置に転送する過程とを有することを特徴とす
る音データ転送方法。
1. Using a low-speed storage device for storing musical sound waveform sound data and a high-speed storage device for caching the sound data, a part of the sound data stored in the low-speed storage device is stored in the high-speed storage device. A sound data transfer method for transferring to a storage device, wherein a sound color specification receiving step of receiving a sound color specification relating to the sound data to be transferred to the high-speed storage device; A sound data transfer method, comprising: a sound data prediction step of predicting sound data candidates; and a step of transferring the predicted sound data candidates from the low-speed storage device to the high-speed storage device.
【請求項2】 前記低速記憶装置に記憶されている音デ
ータは発音開始部に対応する第1音データと発音開始部
以外の部分に対応する第2音データとを含み、前記音色
指定に応じて予測される音データは該第1音データであ
り、 何れかの第1音データの指定を受信する第1音データ指
定受信過程と、 該第1音データの指定に基づいて、後に指定される第2
音データの候補を予測する第2音データ予測過程と、 該予測した第2音データを前記低速記憶装置から前記高
速記憶装置に転送する過程とをさらに有することを特徴
とする請求項1記載の音データ転送方法。
2. The sound data stored in the low-speed storage device includes first sound data corresponding to a sound generation start portion and second sound data corresponding to a portion other than the sound generation start portion. The sound data predicted is the first sound data, a first sound data specification receiving step of receiving the specification of any of the first sound data, and a later specified sound data based on the specification of the first sound data. Second
The method according to claim 1, further comprising: a second sound data prediction step of predicting sound data candidates; and a step of transferring the predicted second sound data from the low-speed storage device to the high-speed storage device. Sound data transfer method.
【請求項3】 前記低速記憶装置に記憶されている音デ
ータは、前記第1および第2音データ以降に用いられる
第3音データをさらに含み、 何れかの第2音データの指定を受信する第2音データ指
定受信過程と、 該第2音データの指定に基づいて、後に指定される第3
音データの候補を予測する第3音データ予測過程と、 該予測した第3音データを前記低速記憶装置から前記高
速記憶装置に転送する過程とをさらに有することを特徴
とする請求項2記載の音データ転送方法。
3. The sound data stored in the low-speed storage device further includes third sound data used after the first and second sound data, and receives designation of any one of the second sound data. A second sound data designation receiving step, and a third designation specified later based on the designation of the second sound data
The method according to claim 2, further comprising: a third sound data prediction step of predicting sound data candidates; and a step of transferring the predicted third sound data from the low-speed storage device to the high-speed storage device. Sound data transfer method.
【請求項4】 前記何れかの音データの指定を受信する
と、前記高速記憶装置に記憶され、かつ、予測が外れた
音データの候補に対して、解放が可能である旨を示す識
別情報を付与する過程をさらに有することを特徴とする
請求項1乃至3の何れかに記載の音データ転送方法。
4. Receiving the designation of any one of the sound data, the identification information stored in the high-speed storage device and indicating that release of the sound data candidate that is not predicted is possible is possible. 4. The sound data transfer method according to claim 1, further comprising a step of providing.
【請求項5】 前記音色指定受信過程の前に、各音色毎
に基本的音データを予め前記高速記憶装置に転送する過
程をさらに有し、 前記第1,第2または第3音データ指定受信過程におい
て指定された音データが前記高速記憶装置に転送されて
いなかった場合には、該指定された音データに代えて、
前記基本的音データを用いることを特徴とする請求項1
乃至4の何れかに記載の音データ転送方法。
5. The method according to claim 1, further comprising: before the tone color designation receiving step, transferring basic tone data for each tone color to the high-speed storage device in advance, wherein the first, second or third tone data designation reception is performed. If the designated sound data is not transferred to the high-speed storage device in the process, instead of the designated sound data,
2. The method according to claim 1, wherein the basic sound data is used.
5. The sound data transfer method according to any one of claims 1 to 4.
【請求項6】 請求項1ないし5の何れかに記載の方法
を実行することを特徴とする音データ転送装置。
6. A sound data transfer apparatus for performing the method according to claim 1.
【請求項7】 請求項1ないし5の何れかに記載の方法
を実行することを特徴とするプログラム。
7. A program for executing the method according to claim 1. Description:
JP2001086166A 2001-03-23 2001-03-23 SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM Expired - Fee Related JP3630107B2 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2001086166A JP3630107B2 (en) 2001-03-23 2001-03-23 SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
US10/098,670 US6576827B2 (en) 2001-03-23 2002-03-14 Music sound synthesis with waveform caching by prediction
TW091104809A TWI228704B (en) 2001-03-23 2002-03-14 Music sound synthesis with waveform caching by prediction
EP09180304A EP2175440A3 (en) 2001-03-23 2002-03-14 Music sound synthesis with waveform changing by prediction
EP02005887.1A EP1260964B1 (en) 2001-03-23 2002-03-14 Music sound synthesis with waveform caching by prediction
SG200201610A SG102667A1 (en) 2001-03-23 2002-03-19 Music sound synthesis with waveform caching by prediction
CN2006100735605A CN1838234B (en) 2001-03-23 2002-03-22 Music tone composing method and device
CNB021080259A CN1258751C (en) 2001-03-23 2002-03-22 Music mixing method by waved high speed fubber with pre-measurement
HK02109273.7A HK1048011B (en) 2001-03-23 2002-12-21 Method and apparatus for synthesizing musical tone

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001086166A JP3630107B2 (en) 2001-03-23 2001-03-23 SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM

Publications (3)

Publication Number Publication Date
JP2002287757A true JP2002287757A (en) 2002-10-04
JP3630107B2 JP3630107B2 (en) 2005-03-16
JP2002287757A5 JP2002287757A5 (en) 2005-07-07

Family

ID=18941583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001086166A Expired - Fee Related JP3630107B2 (en) 2001-03-23 2001-03-23 SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP3630107B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174286A (en) * 2003-10-31 2005-06-30 Lucent Technol Inc Memory management system having linked list processor
JP2012118746A (en) * 2010-11-30 2012-06-21 Fuji Xerox Co Ltd Print document processing system, cache apparatus, and program
JP2017054076A (en) * 2015-09-11 2017-03-16 カシオ計算機株式会社 Waveform writing device, method, program, and electronic musical instrument
CN111739492A (en) * 2020-06-18 2020-10-02 南京邮电大学 Music melody generation method based on pitch contour curve

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174286A (en) * 2003-10-31 2005-06-30 Lucent Technol Inc Memory management system having linked list processor
JP4516395B2 (en) * 2003-10-31 2010-08-04 アルカテル−ルーセント ユーエスエー インコーポレーテッド Memory management system with link list processor
JP2012118746A (en) * 2010-11-30 2012-06-21 Fuji Xerox Co Ltd Print document processing system, cache apparatus, and program
JP2017054076A (en) * 2015-09-11 2017-03-16 カシオ計算機株式会社 Waveform writing device, method, program, and electronic musical instrument
CN111739492A (en) * 2020-06-18 2020-10-02 南京邮电大学 Music melody generation method based on pitch contour curve
CN111739492B (en) * 2020-06-18 2023-07-11 南京邮电大学 Music melody generation method based on pitch contour curve

Also Published As

Publication number Publication date
JP3630107B2 (en) 2005-03-16

Similar Documents

Publication Publication Date Title
US6576827B2 (en) Music sound synthesis with waveform caching by prediction
US7259315B2 (en) Waveform production method and apparatus
JP2001100760A (en) Method and device for waveform generation
JP3601371B2 (en) Waveform generation method and apparatus
JP3654079B2 (en) Waveform generation method and apparatus
JP3654083B2 (en) Waveform generation method and apparatus
JP3654080B2 (en) Waveform generation method and apparatus
JP3654082B2 (en) Waveform generation method and apparatus
JP3654084B2 (en) Waveform generation method and apparatus
JP3630107B2 (en) SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
JP3630106B2 (en) SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
JP3674526B2 (en) Waveform synthesis method, sound data transfer device, and program
JP3649141B2 (en) SOUND DATA TRANSFER METHOD, SOUND DATA TRANSFER DEVICE, AND PROGRAM
JP3674527B2 (en) Waveform generation method and apparatus
JP4007374B2 (en) Waveform generation method and apparatus
JP3933161B2 (en) Waveform generation method and apparatus
JP3829732B2 (en) Waveform generating apparatus and method
JP3933162B2 (en) Waveform generation method and apparatus
JP3829707B2 (en) Waveform generating apparatus and method
JP3778036B2 (en) Waveform generating apparatus and method
JP3829733B2 (en) Waveform generating apparatus and method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041207

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121224

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees