[go: up one dir, main page]

JP2000276149A - Method and device for generating music sound and recording medium - Google Patents

Method and device for generating music sound and recording medium

Info

Publication number
JP2000276149A
JP2000276149A JP11080485A JP8048599A JP2000276149A JP 2000276149 A JP2000276149 A JP 2000276149A JP 11080485 A JP11080485 A JP 11080485A JP 8048599 A JP8048599 A JP 8048599A JP 2000276149 A JP2000276149 A JP 2000276149A
Authority
JP
Japan
Prior art keywords
waveform data
performance
performance information
gwp
delay time
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
JP11080485A
Other languages
Japanese (ja)
Other versions
JP3551818B2 (en
Inventor
Takaaki Muto
孝明 武藤
Koichi Kozuki
宏一 神月
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 JP08048599A priority Critical patent/JP3551818B2/en
Publication of JP2000276149A publication Critical patent/JP2000276149A/en
Application granted granted Critical
Publication of JP3551818B2 publication Critical patent/JP3551818B2/en
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 generating music sound and a recording medium, by which a proper delay time is set in accordance with the state of performance information. SOLUTION: A sounding delay time is set at every part of performance information. Then the sounding delay time is set to be short in the part concerning manual performance (for example, a 'saxophone' in the part 3) and natural performance is made possible by a user. In the meantime, the sounding delay time is set to be long concerning the part with respect to automatic performance (the one except the part 3) and waveform data to be required later is previously generated over a comparatively long range so that the increase of a temporary processing load is treated.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、いわゆるソフトウ
エア音源に用いて好適な楽音生成方法、楽音生成装置お
よび記録媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a musical sound generating method, a musical sound generating apparatus, and a recording medium suitable for use as a so-called software sound source.

【0002】[0002]

【従来の技術】近年、汎用パーソナルコンピュータ等を
用いて楽音波形を合成する、いわゆるソフトウエア音源
が実用化されている。ソフトウエア音源においても、ハ
ードウエアの音源装置と同様に複数パートの楽音波形を
生成することによってアンサンブルを行うことが可能で
ある。一方、汎用パーソナルコンピュータは楽音波形の
生成以外にも各種の処理を行う必要があるため、完全に
リアルタイムに楽音波形を生成することは困難である。
また、CPUの処理能力を有効に活用するためには、あ
る程度まとまった範囲の楽音波形を一度に生成する方が
有利な場合も多い。
2. Description of the Related Art In recent years, a so-called software sound source for synthesizing a musical tone waveform using a general-purpose personal computer or the like has been put to practical use. In the case of a software sound source, it is possible to perform an ensemble by generating a musical sound waveform of a plurality of parts in the same manner as a hardware sound source device. On the other hand, a general-purpose personal computer needs to perform various processes in addition to generating a musical tone waveform, and it is difficult to generate a musical tone waveform completely in real time.
Also, in order to effectively utilize the processing capacity of the CPU, it is often advantageous to generate a musical tone waveform within a certain range at once.

【0003】そこで、ソフトウエア音源においては、演
奏情報に基づいて将来発音されるべき波形データを先に
生成してバッファに記憶し、その後はサンプリング周期
毎にこのバッファを読出して波形データを再生すること
が一般的である。そして、未だ再生されていない部分の
波形データが所定量未満になると、残りの演奏情報に基
づいて、続きの波形データが生成されバッファに書込ま
れる。従って、演奏情報がソフトウエア音源に供給され
てから実際に発音が行われるまで、ある程度の遅延時間
を要することになる。この遅延時間をレーテンシーとい
う。
Therefore, in a software tone generator, waveform data to be generated in the future is generated first based on performance information and stored in a buffer, and thereafter, the buffer is read out at each sampling period to reproduce the waveform data. That is common. Then, when the waveform data of a portion that has not been reproduced yet becomes less than a predetermined amount, the subsequent waveform data is generated based on the remaining performance information and written into the buffer. Therefore, a certain delay time is required from when the performance information is supplied to the software sound source to when the sound is actually generated. This delay time is called latency.

【0004】ソフトウエア音源に供給される演奏情報と
しては、予めファイル等に記憶された演奏情報と、外部
の演奏操作子等からリアルタイムに入力される演奏情報
とが考えられる。前者の場合においては、予め充分な長
さのレーテンシーを設定しておいて差し支えない。しか
し、後者の場合においてレーテンシーが長すぎると、ユ
ーザによる演奏操作子の操作と実際の発音との間のタイ
ムラグが目立ち、演奏に支障を来すことになる。一方、
レーテンシーをあまり短くすると、波形生成処理が間に
合わず発音が途切れるような不具合が頻発する。このよ
うに、演奏操作子等からリアルタイムに演奏情報を入力
する場合には、再生に支障を来さない範囲でなるべくレ
ーテンシーを短くする必要がある。
The performance information supplied to the software sound source may be performance information stored in a file or the like in advance, and performance information input in real time from an external performance operator or the like. In the former case, a sufficient length of latency may be set in advance. However, in the latter case, if the latency is too long, a time lag between the operation of the performance operator by the user and the actual sound generation becomes noticeable, which hinders the performance. on the other hand,
If the latency is too short, a problem often occurs such that the waveform generation processing cannot be performed in time and the sound is interrupted. As described above, when performance information is input in real time from a performance operator or the like, it is necessary to reduce the latency as much as possible within a range that does not hinder reproduction.

【0005】[0005]

【発明が解決しようとする課題】ところで、ソフトウエ
ア音源に対して、予めファイル等に記憶された演奏情報
と外部の演奏操作子等からリアルタイムに入力される演
奏情報との双方を提供する場合、すなわち自動演奏とマ
ニュアル演奏とのアンサンブルを行う場合がある。かか
る場合、従来のソフトウエア音源においてはレーテンシ
ーが一律に設定されていたため、このレーテンシーを充
分に短くすることが困難であった。
By the way, in the case where both the performance information stored in a file or the like in advance and the performance information input in real time from an external performance operator or the like are provided to the software sound source, That is, an ensemble of an automatic performance and a manual performance may be performed. In such a case, since the latency is set uniformly in the conventional software sound source, it has been difficult to sufficiently reduce the latency.

【0006】これは、自動演奏およびマニュアル演奏の
波形生成処理がある短い時間に集中してCPUの処理能
力を超えた場合、上述したように音が途切れる等の不具
合が発生するからである。この発明は上述した事情に鑑
みてなされたものであり、演奏情報の態様に応じて適切
な遅延時間を設定できる楽音生成方法、楽音生成装置お
よび記録媒体を提供することを目的としている。
This is because, when the waveform generation processing of the automatic performance and the manual performance is concentrated in a short period of time and exceeds the processing capability of the CPU, a problem such as interruption of sound occurs as described above. The present invention has been made in view of the above circumstances, and has as its object to provide a musical sound generation method, a musical sound generation device, and a recording medium that can set an appropriate delay time according to the form of performance information.

【0007】[0007]

【課題を解決するための手段】上記課題を解決するため
請求項1記載の構成にあっては、複数パートの演奏情報
に基づいて前記各パートの楽音信号を出力する楽音生成
方法において、前記各パートの演奏情報が提供されてか
ら前記各パートの楽音信号を出力する迄の遅延時間を、
前記パートに応じて相違させることを特徴とする。ま
た、請求項2記載の構成にあっては、演奏情報に基づい
て楽音信号を出力する楽音生成方法において、前記演奏
情報が提供されてから前記楽音信号を出力する迄の遅延
時間を、前記演奏情報が自動演奏に係る演奏情報である
かマニュアル演奏に係る演奏情報であるかに応じて設定
することを特徴とする。また、請求項3記載の構成にあ
っては、請求項1または2記載の方法を実行することを
特徴とする。また、請求項4記載の構成にあっては、請
求項1または2記載の方法を実行するプログラムを記録
したことを特徴とする。
According to a first aspect of the present invention, there is provided a tone generating method for outputting a tone signal of each part based on performance information of a plurality of parts. The delay time from when the performance information of a part is provided to when the tone signal of each part is output,
It is characterized in that it differs depending on the part. In the musical tone generating method for outputting a musical tone signal based on performance information, the delay time from when the musical performance information is provided to when the musical tone signal is output may be set to be equal to the performance time. It is characterized in that the information is set according to whether the information is performance information relating to automatic performance or performance information relating to manual performance. According to a third aspect of the present invention, the method according to the first or second aspect is performed. According to a fourth aspect of the present invention, a program for executing the method of the first or second aspect is recorded.

【0008】[0008]

【発明の実施の形態】1.実施形態の構成 本発明の一実施形態の楽音合成システムのハードウエア
構成を図1を参照し説明する。なお、本実施形態は、汎
用パーソナルコンピュータ上で実現されているものであ
る。図において21はCPUであり、後述する制御プロ
グラムに従って、CPUバス20を介して各部を制御す
る。22はROMであり、イニシャルプログラムローダ
等が格納されている。23はRAMであり、後述する各
種のプログラムやデータがロードされ、CPU21によ
ってアクセスされる。24はタイマであり、所定時間毎
にCPU21に対する割込みを発生させる。
BEST MODE FOR CARRYING OUT THE INVENTION Configuration of Embodiment A hardware configuration of a tone synthesis system according to an embodiment of the present invention will be described with reference to FIG. Note that the present embodiment is realized on a general-purpose personal computer. In the figure, reference numeral 21 denotes a CPU, which controls each unit via the CPU bus 20 according to a control program described later. A ROM 22 stores an initial program loader and the like. A RAM 23 is loaded with various programs and data described later, and is accessed by the CPU 21. Reference numeral 24 denotes a timer which generates an interrupt to the CPU 21 at predetermined time intervals.

【0009】25はMIDIインターフェースであり、
外部のMIDI機器(図示せず)との間でMIDI信号
のやりとりを行う。26はハードディスクであり、オペ
レーティングシステム、各種ドライバ、各種アプリケー
ションプログラム、演奏情報等が記憶されている。27
はリムーバブルディスクであり、CD−ROM、MOド
ライブ等が設けられ、ハードディスク26と同様の情報
が記憶される。
Reference numeral 25 denotes a MIDI interface,
MIDI signals are exchanged with an external MIDI device (not shown). A hard disk 26 stores an operating system, various drivers, various application programs, performance information, and the like. 27
Denotes a removable disk, which is provided with a CD-ROM, an MO drive, etc., and stores the same information as the hard disk 26.

【0010】28は表示器であり、CRTあるいは液晶
ディスプレイ等によって構成され、ユーザに対して種々
の情報を表示する。29はキーボード&マウスであり、
ユーザの操作によってCPU21に対して各種の情報を
入力する。30は波形インターフェースであり、アナロ
グ信号波形の入出力を行う。
Reference numeral 28 denotes a display, which is constituted by a CRT, a liquid crystal display, or the like, and displays various information to a user. 29 is a keyboard & mouse,
Various information is input to the CPU 21 by a user operation. Reference numeral 30 denotes a waveform interface for inputting / outputting an analog signal waveform.

【0011】ここで、波形インターフェース30および
RAM23の詳細を図2を参照し説明する。図において
31はADコンバータであり、入力されたアナログ信号
をデジタル信号に変換する。33はサンプリングクロッ
ク発生器であり、所定のサンプリング周波数のクロック
信号を発生する。32は第1DMAコントローラであ
り、このクロック信号に同期してADコンバータ31の
出力信号をサンプリングし、RAM23内の指定箇所に
該サンプリング結果をダイレクトメモリアクセスにより
転送する。
Here, details of the waveform interface 30 and the RAM 23 will be described with reference to FIG. In the figure, reference numeral 31 denotes an AD converter, which converts an input analog signal into a digital signal. A sampling clock generator 33 generates a clock signal having a predetermined sampling frequency. A first DMA controller 32 samples the output signal of the AD converter 31 in synchronization with the clock signal, and transfers the sampling result to a designated location in the RAM 23 by direct memory access.

【0012】34は第2DMAコントローラであり、サ
ンプリングクロック発生器33から出力されるサンプリ
ングクロック信号に同期して、RAM23に記憶された
デジタル波形データをダイレクトメモリアクセスによっ
て読出す。35はDAコンバータであり、読出されたデ
ジタル波形データをアナログ信号に変換し出力する。
A second DMA controller 34 reads digital waveform data stored in the RAM 23 by direct memory access in synchronization with a sampling clock signal output from the sampling clock generator 33. A DA converter 35 converts the read digital waveform data into an analog signal and outputs the analog signal.

【0013】また、RAM23において、36は波形テ
ーブル領域であり、各種の波形データの雛形を格納す
る。37は入力バッファ領域であり、CPU21によっ
てMIDIイベントが一時的に書込まれる。また、38
は出力バッファ領域であり、第2DMAコントローラ3
4によって読み出される波形データが格納される。出力
バッファ領域38はリングバッファになっており、その
読出しアドレスは循環的にインクリメントされる読出し
ポインタによって決定される。なお、図示はしないが、
RAM23には、第1DMAコントローラ32によって
波形データを書込むための録音バッファ領域も設けられ
ている。
In the RAM 23, a waveform table area 36 stores various waveform data templates. Reference numeral 37 denotes an input buffer area in which a MIDI event is temporarily written by the CPU 21. Also, 38
Is an output buffer area, and the second DMA controller 3
4 is stored. The output buffer area 38 is a ring buffer, the read address of which is determined by a cyclically incremented read pointer. Although not shown,
The RAM 23 is also provided with a recording buffer area for writing the waveform data by the first DMA controller 32.

【0014】2.実施形態の動作 2.1.MIDIイベントを発生させる処理 本実施形態の楽音合成システムにおいては、MIDIイ
ンターフェース25を介してMIDI信号が供給される
と、その度にMIDIイベントが発生する。また、ハー
ドディスク26あるいはリムーバブルディスク27等に
予め記憶された演奏情報に基づいて、時間の経過ととも
にMIDI_Outメッセージが発生される。本明細書では、
何れも統一してMIDIイベントとして取扱い、該MI
DIイベントに基づいて後述する各種の処理が行われ
る。なお、後者の処理については、例えば本出願人によ
る特願平10−133761号に詳述されている。
2. Operation of Embodiment 2.1. Process for Generating MIDI Event In the tone synthesis system of this embodiment, a MIDI event is generated each time a MIDI signal is supplied via the MIDI interface 25. In addition, a MIDI_Out message is generated as time passes based on performance information stored in the hard disk 26 or the removable disk 27 or the like in advance. In this specification,
All of them are handled as MIDI events,
Various processes described later are performed based on the DI event. The latter processing is described in detail in, for example, Japanese Patent Application No. 10-133761 filed by the present applicant.

【0015】2.2.パート毎の発音遅れ時間の設定 MIDIイベントに対する処理が行われる前に、各パー
ト毎に発音遅れ時間(レーテンシー)が予め設定され
る。その設定例を図4に示す。図において「パート音
色」の欄は、パート番号と、対応する音色名とを示す。
また、「音源M」の欄は、該パートに使用されるソフト
ウエア音源モジュールを示す。
2.2. Setting of sound delay time for each part Before processing for a MIDI event is performed, a sound delay time (latency) is set in advance for each part. FIG. 4 shows an example of the setting. In the figure, the column of “part timbre” shows a part number and a corresponding timbre name.
Further, the column of “sound source M” indicates a software sound source module used for the part.

【0016】ここではTG1はPCM音源、TG2は物
理モデル音源、TG3はFM音源である。次に、「発音
遅れ時間」の欄には、遅れ時間に応じて分類したパート
のグループ(A,B,C)と、各グループにおける遅れ
時間(10msec,450msec,800mse
c)を示す。何れのパートを何れのグループに割り当て
るかについては、ユーザが任意に設定できる。但し、一
般的にはマニュアル演奏に係るパートを、最も発音遅れ
時間の短いグループAに割り当てることが好適である。
Here, TG1 is a PCM sound source, TG2 is a physical model sound source, and TG3 is an FM sound source. Next, in the column of "sound generation delay time", the group of parts (A, B, C) classified according to the delay time, and the delay time (10 msec, 450 msec, 800 msec) in each group.
c) is shown. The user can arbitrarily set which part is to be assigned to which group. However, it is generally preferable to assign a part related to the manual performance to the group A having the shortest sound generation delay time.

【0017】上記例にあっては、パート3の「サック
ス」のみがグループAに分類されている。これは、パー
ト3のMIDIイベントはMIDIインターフェース2
5を介してリアルタイムに発生することとし、他のパー
トについてはハードディスク26あるいはリムーバブル
ディスク27等に予め記憶された演奏情報に基づいてM
IDIイベントが発生することを想定しているものであ
る。
In the above example, only the "saxes" of part 3 are classified into group A. This is because the MIDI event of Part 3 is MIDI interface 2
5, and the other parts are recorded on the basis of performance information stored in advance on the hard disk 26 or the removable disk 27 or the like.
It is assumed that an IDI event will occur.

【0018】図4における全てのパートは、ハードディ
スク26等に予め記憶された演奏情報に基づいて自動演
奏を行うことが可能になっている。但し、何れか一また
は複数のパートは自動演奏をオフにしておき、MIDI
インターフェース25を介してユーザがマニュアル演奏
を行えるようにすることができる。自動演奏のオン/オ
フ状態の設定を図4の最右欄に示す。上述したように、
パート3の「サックス」はマニュアル演奏されることを
想定しているため、該パートについてのみ自動演奏がオ
フに設定されている。この図4に示す設定状態は、RA
M23内の所定の領域に格納される。
All parts in FIG. 4 can perform automatic performance based on performance information stored in advance on the hard disk 26 or the like. However, for one or more parts, turn off the automatic performance and MIDI
The user can perform a manual performance via the interface 25. The setting of the on / off state of the automatic performance is shown in the rightmost column of FIG. As mentioned above,
Since the "sax" of part 3 is assumed to be played manually, the automatic performance is turned off only for that part. The setting state shown in FIG.
It is stored in a predetermined area in M23.

【0019】2.3.MIDIイベント処理 上記MIDIイベントが発生すると、図5に示すMID
Iイベント処理ルーチンが起動される。図において処理
がステップSP10に進むと、発生したMIDIイベン
トがRAM23内の所定領域に取り込まれる。次に、処
理がステップSP11に進むと、該MIDIイベントは
グループA,B,Cの何れに属するかが判定される。
2.3. MIDI event processing When the above MIDI event occurs, the MID shown in FIG.
The I event processing routine is started. In the figure, when the process proceeds to step SP10, the generated MIDI event is taken into a predetermined area in the RAM 23. Next, when the process proceeds to step SP11, it is determined which of the groups A, B and C the MIDI event belongs to.

【0020】ここで、グループAに属するものと判定さ
れると、処理はステップSP12に進み、該MIDIイ
ベントが発生タイミングを示すタイミング情報とともに
入力バッファ領域37内の所定領域(入力バッファ
(A))に書込まれる。同様に、グループBまたはCに属
するものと判定された場合は、処理はそれぞれステップ
SP12またはSP13に進み、対応する入力バッファ
(B)または(C)に該MIDIイベントがタイミング情報
とともに書込まれる。
If it is determined that the MIDI event belongs to the group A, the process proceeds to step SP12, and a predetermined area (input buffer area) in the input buffer area 37 together with timing information indicating the timing at which the MIDI event occurs.
(A)). Similarly, if it is determined that the input buffer belongs to the group B or C, the process proceeds to step SP12 or SP13, respectively, and the corresponding input buffer
The MIDI event is written in (B) or (C) together with the timing information.

【0021】ここで、入力バッファ(A),(B)および
(C)のメモリマップを図6に示す。入力バッファ(A),
(B)および(C)は、それぞれ独立したリングバッファと
して使用される。図において書込みポインタWP(A),WP
(B)およびWP(C)は、各々入力バッファ(A),(B)および
(C)内における書込みアドレスを指標しており、MID
Iイベントが書込まれる毎に対応するバッファ内で循環
的にインクリメントされる。
Here, input buffers (A), (B) and
FIG. 6 shows the memory map of FIG. Input buffer (A),
(B) and (C) are used as independent ring buffers. In the figure, the write pointers WP (A), WP
(B) and WP (C) are input buffers (A), (B) and
Indicate the write address in (C), MID
Each time an I-event is written, it is cyclically incremented in the corresponding buffer.

【0022】2.4.生成トリガイベント処理 本実施形態においては、所定の波形生成周期毎に生成ト
リガイベント(割込み)が発生し、図7に示す生成トリ
ガイベント処理ルーチンが起動される。図において処理
がステップSP20に進むと、グループAにおける波形
データの生成範囲が決定される。この生成範囲は、次の
生成トリガイベントが発生するまで波形データを充分に
提供できるように決定される。
2.4. Generation Trigger Event Processing In this embodiment, a generation trigger event (interrupt) is generated at each predetermined waveform generation period, and the generation trigger event processing routine shown in FIG. 7 is started. In the figure, when the process proceeds to step SP20, the generation range of the waveform data in group A is determined. The generation range is determined so that sufficient waveform data can be provided until the next generation trigger event occurs.

【0023】次に、処理がステップSP21に進むと、
この生成範囲におけるMIDIイベントが入力バッファ
(A)から取り込まれる。次に処理がステップSP22に
進むと、該MIDIイベントおよびタイミング情報に基
づいて、この範囲における波形データが生成され、出力
バッファ領域38に書込まれる。
Next, when the process proceeds to step SP21,
MIDI event in this generation range is input buffer
(A). Next, when the process proceeds to step SP22, waveform data in this range is generated based on the MIDI event and the timing information, and written into the output buffer area 38.

【0024】ここで、出力バッファ領域38のメモリマ
ップを図3に示す。図において書込みポインタGWP(A),
GWP(B)およびGWP(C)は、各々グループA,B,Cの楽音
波形生成処理で生成された波形データの書込みアドレス
を指標し、書込みポインタGWP(E)はこれらグループA,
B,Cの波形データにエフェクト処理を施した波形デー
タの書込みアドレスを指標する。
Here, a memory map of the output buffer area 38 is shown in FIG. In the figure, the write pointer GWP (A),
GWP (B) and GWP (C) indicate the write addresses of the waveform data generated in the musical tone waveform generation process of groups A, B, and C, respectively, and the write pointer GWP (E) indicates the group A, B, and C.
The write address of the waveform data obtained by applying the effect processing to the B and C waveform data is indexed.

【0025】図において、領域101にはグループCで
生成された波形データが、領域102にはグループB,
Cで生成された波形データの混合波形データが、また、
領域103にはグループA,B,Cで生成された波形デ
ータの混合波形データがそれぞれ記憶されている。ま
た、領域103に記憶された波形データのうち書込みポ
インタGWP(E)と読出しポインタRPに挟まれた領域の波
形データはエフェクト処理済みの波形データである。
In the figure, an area 101 contains waveform data generated in group C, and an area 102 contains groups B,
The mixed waveform data of the waveform data generated in C is
The area 103 stores the mixed waveform data of the waveform data generated in the groups A, B, and C, respectively. Further, among the waveform data stored in the area 103, the waveform data in the area between the write pointer GWP (E) and the read pointer RP is the waveform data on which the effect processing has been performed.

【0026】なお、書込みポインタGWP(A),GWP(B)およ
びGWP(C)は本来は各パート毎に設けられるものである
が、図3においては説明の簡素化のために、グループ
A,B,Cの各々について1パートづつ(合計3パー
ト)割り当てられていることとしている。GRP(A),GRP
(B)およびGRP(C)は各目標ポインタであり、読出しポイ
ンタRPとの差はグループA,B,Cにおける発音遅れ
時間に応じて決定される。また、目標ポインタGRP(A),
GRP(B)およびGRP(C)と、対応する書込みポインタGWP
(A),GWP(B)およびGWP(C)との差は、各グループの楽音
波形生成処理の遅れ具合を表す。
The write pointers GWP (A), GWP (B) and GWP (C) are originally provided for each part, but in FIG. It is assumed that one part is assigned to each of B and C (three parts in total). GRP (A), GRP
(B) and GRP (C) are each target pointer, and the difference from the read pointer RP is determined according to the sound generation delay time in the groups A, B and C. In addition, the target pointer GRP (A),
GRP (B) and GRP (C) and corresponding write pointer GWP
The difference between (A), GWP (B) and GWP (C) represents the degree of delay in the tone waveform generation processing of each group.

【0027】書込みポインタGWP(A),GWP(B)およびGWP
(C)のうち最も進んだ書込みポインタに関しては、その
ポインタが示す位置に生成された波形データがそのまま
書込まれ、それ以外の書込みポインタに関しては、生成
された波形データを、これから書込もうとする位置に記
憶されている波形データに足しこむ形で書込むようにな
っている。
Write pointers GWP (A), GWP (B) and GWP
For the most advanced write pointer of (C), the generated waveform data is written as it is at the position indicated by that pointer, and for the other write pointers, the generated waveform data is written in the future. In this case, the waveform data is written into the waveform data stored at the position where the data is to be added.

【0028】そして、目標ポインタGRP(A),GRP(B)およ
びGRP(C)と、読出しポインタRPとは、サンプリング周
期毎に1アドレス(波形データの1サンプルに相当する
量)づつ進行する。その処理については後述するが、図
3においてはその進行方向を矢印で示しておく。
The target pointers GRP (A), GRP (B) and GRP (C) and the read pointer RP advance by one address (an amount corresponding to one sample of waveform data) for each sampling cycle. Although the processing will be described later, the traveling direction is indicated by an arrow in FIG.

【0029】これら書込み、読出しおよび目標ポインタ
は出力バッファ領域38全体の中で循環的にインクリメ
ントされる。すなわち、各ポインタは、出力バッファ領
域38の最終アドレスに達した後は出力バッファ領域3
8の先頭アドレスに戻ることになる。従って、先のステ
ップSP22において生成された波形データは、図上で
書込みポインタGWP(A)の先の領域(図3の書込みポイン
タGWP(A)から下方向の領域)に書込まれる。
These write, read and target pointers are cyclically incremented throughout the output buffer area 38. That is, after reaching the final address of the output buffer area 38, each pointer
8 will be returned to the top address. Therefore, the waveform data generated in the previous step SP22 is written in the area beyond the write pointer GWP (A) in the figure (the area below the write pointer GWP (A) in FIG. 3).

【0030】すなわち、生成された波形データは、GWP
(A)の先の領域に新たに書込まれるか、既に書込まれた
内容に足し込まれる。そして、波形データが書込まれた
最終位置に書込みポインタGWP(A)が移動される(書込み
ポインタGWP(A)が下方向に移動する)。
That is, the generated waveform data is GWP
The data is newly written in the area ahead of (A) or added to the contents already written. Then, the write pointer GWP (A) is moved to the final position where the waveform data has been written (the write pointer GWP (A) moves downward).

【0031】図7に戻り、処理がステップSP23に進
むと、先にグループAについて決定された波形データの
生成範囲と同一の範囲について、グループBおよびCの
波形データが既に生成されているか否かが判定される。
ここで「NO」と判定されると、処理はステップSP2
4に進み、タイミング情報に基づいて該範囲におけるグ
ループBおよびCのMIDIイベントが取り込まれる。
Referring back to FIG. 7, when the process proceeds to step SP23, it is determined whether the waveform data of groups B and C have already been generated in the same range as the generation range of the waveform data previously determined for group A. Is determined.
If “NO” is determined here, the process proceeds to step SP2
Proceeding to 4, the MIDI events of the groups B and C in the range are fetched based on the timing information.

【0032】次に処理がステップSP25に進むと、取
り込まれたMIDIイベントに基づいて、グループBお
よびCに係る波形データが各々生成され、上記書込みポ
インタGWP(B)およびGWP(C)の先の領域に各々書込まれる
(または足し込まれる)とともに、書込まれた最終位置
に書込みポインタGWP(B)およびGWP(C)が変更される。な
お、該生成範囲におけるグループBおよびCの波形デー
タが既に生成されている場合は、上記ステップSP2
4,SP25はスキップされる。
Next, when the process proceeds to step SP25, waveform data relating to groups B and C are respectively generated based on the fetched MIDI event, and the waveform data ahead of the write pointers GWP (B) and GWP (C) are generated. The write pointers GWP (B) and GWP (C) are changed to the final positions where the data is written (or added) to the respective areas. If the waveform data of the groups B and C in the generation range has already been generated, the above-described step SP2
4, SP25 is skipped.

【0033】図3に見られるように、通常は書込みポイ
ンタGWP(B)およびGWP(C)は書込みポインタGWP(A)よりも
相当に進んでいるため、ステップSP23の判定は殆ど
の場合「YES」になる。ソフトウエア音源以外の処理
で負荷が大きくなった等の理由でグループBおよび/ま
たはCの楽音波形生成処理が遅れて書込みポインタGWP
(B),GWP(C)の位置が書込みポインタGWP(A)の位置と等し
くなった場合にのみ、ステップSP23で「NO」と判
定されることになる。
As can be seen from FIG. 3, since the write pointers GWP (B) and GWP (C) normally advance considerably beyond the write pointer GWP (A), the determination in step SP23 is almost always "YES". "become. The processing for generating the musical sound waveforms of groups B and / or C is delayed due to an increase in the load due to processing other than the software sound source.
Only when the positions of (B) and GWP (C) are equal to the position of the write pointer GWP (A), "NO" is determined in step SP23.

【0034】次に、処理がステップSP26に進むと、
グループA,B,Cで生成された波形データの混合波形
データに対してエフェクト処理が施される。具体的に
は、図3に示す書込みポインタGWP(A)とGWP(E)に挟まれ
た領域の波形データが読み出される。
Next, when the process proceeds to step SP26,
An effect process is performed on the mixed waveform data of the waveform data generated in groups A, B, and C. Specifically, the waveform data in the area between the write pointers GWP (A) and GWP (E) shown in FIG. 3 is read.

【0035】そして、読み出された各グループの波形デ
ータに対してエフェクト処理が施され、その結果得られ
た波形データが同領域に再び書込まれる。次に、処理が
ステップSP27に進むと、書込みポインタGWP(E)の位
置が書込みポインタGWP(A)と同一の位置に変更される。
Then, effect processing is performed on the read waveform data of each group, and the resulting waveform data is written again in the same area. Next, when the process proceeds to step SP27, the position of the write pointer GWP (E) is changed to the same position as the write pointer GWP (A).

【0036】次に、処理がステップSP28に進むと、
生成トリガイベント処理ルーチン(図7)に対して割当
てられた時間に余裕があるか否かが判定される。時間余
裕がある場合は処理はステップSP29に進み、グルー
プBおよびCに係る波形データが該時間余裕に応じて生
成される。具体的にはステップSP29においては、図
9におけるサブルーチンが呼び出される。
Next, when the process proceeds to step SP28,
It is determined whether the time allocated to the generation trigger event processing routine (FIG. 7) has a margin. If there is enough time, the process proceeds to step SP29, and waveform data relating to groups B and C are generated according to the time allowance. Specifically, in step SP29, the subroutine in FIG. 9 is called.

【0037】図9において処理がステップSP50に進
むと、グループBおよびCにおける生成範囲が上記時間
余裕に応じて決定される。ここでは、グループBまたは
Cの波形生成処理の遅れを解消するように、それぞれ、
時間余裕が許す範囲内で生成範囲が決定される。すなわ
ち、当該グループの遅れが大きい場合には、より大きな
生成範囲が指定される。
In FIG. 9, when the process proceeds to step SP50, the generation ranges of the groups B and C are determined according to the time margin. Here, to eliminate the delay in the waveform generation processing of group B or C, respectively,
The generation range is determined within the range allowed by the time margin. That is, when the delay of the group is large, a larger generation range is designated.

【0038】次に処理がステップSP51に進むと、タ
イミング情報に基づいてグループBの生成範囲における
MIDIイベントが入力バッファ領域37の入力バッフ
ァ(B)から取り込まれる。次に、処理がステップSP5
2に進むと、取り込まれたMIDIイベントに基づい
て、該生成範囲におけるグループBの波形データが生成
される。生成された波形データは出力バッファ領域38
の書込みポインタGWP(B)の先の領域に書込まれ(新規に
書込まれ、または足し込まれ)、書込んだ最終位置に書
込みポインタGWP(B)が更新される。
Next, when the process proceeds to step SP51, a MIDI event in the generation range of the group B is fetched from the input buffer (B) of the input buffer area 37 based on the timing information. Next, the process proceeds to step SP5.
In step 2, waveform data of group B in the generation range is generated based on the received MIDI event. The generated waveform data is stored in the output buffer area 38.
Is written (newly written or added) in the area ahead of the write pointer GWP (B), and the write pointer GWP (B) is updated to the last written position.

【0039】次に処理がステップSP53に進むと、タ
イミング情報に基づいてグループCの生成範囲における
MIDIイベントが入力バッファ領域37の入力バッフ
ァ(C)から取り込まれる。次に、処理がステップSP5
4に進むと、取り込まれたMIDIイベントに基づい
て、該生成範囲におけるグループCの波形データが生成
される。生成された波形データは出力バッファ領域38
の書込みポインタGWP(C)の先の領域に書込まれ(新規に
書込まれ、または足し込まれ)、書込んだ最終位置に書
込みポインタGWP(B)が更新される。
Next, when the process proceeds to step SP53, the MIDI event in the generation range of the group C is fetched from the input buffer (C) of the input buffer area 37 based on the timing information. Next, the process proceeds to step SP5.
In step 4, waveform data of group C in the generation range is generated based on the received MIDI event. The generated waveform data is stored in the output buffer area 38.
Is written (newly written or added) in the area ahead of the write pointer GWP (C), and the write pointer GWP (B) is updated to the final position where the writing was performed.

【0040】2.5.DMA処理 サンプリングクロック発生器33がサンプリング周期で
クロックを発生すると、このクロック毎にDMA割込み
が発生し、図8に示すDMA処理ルーチンが呼び出され
る。図において処理がステップSP40に進むと、読出
しポインタRPが「1」だけインクリメントされる。但
し、読出しポインタRPが既に出力バッファ領域38の
終端アドレスに達していた場合は、読出しポインタRP
は出力バッファ領域38の先頭アドレスに設定される。
2.5. DMA Processing When the sampling clock generator 33 generates a clock at a sampling cycle, a DMA interrupt is generated for each clock, and the DMA processing routine shown in FIG. 8 is called. In the figure, when the process proceeds to step SP40, the read pointer RP is incremented by "1". However, if the read pointer RP has already reached the end address of the output buffer area 38, the read pointer RP
Is set to the head address of the output buffer area 38.

【0041】すなわち、出力バッファ領域38の先頭ア
ドレスを「0」としたとき、読出しポインタRPは、
「現在のRPに「1」を加えた結果を出力バッファ領域
38の大きさ(SIZE)で除算した余り」に設定される。次
に処理がステップSP41に進むと、更新後の読出しポ
インタRPによって指標されたワードが出力バッファ領
域38から読み出され、第2DMAコントローラ34を
介してDAコンバータ35に供給され、図示せぬサウン
ドシステムを介して発音される。
That is, when the head address of the output buffer area 38 is set to “0”, the read pointer RP becomes
It is set to “the remainder obtained by dividing the result of adding“ 1 ”to the current RP by the size (SIZE) of the output buffer area 38”. Next, when the process proceeds to step SP41, the word indicated by the updated read pointer RP is read from the output buffer area 38 and supplied to the DA converter 35 via the second DMA controller 34, and the sound system (not shown) Pronounced via

【0042】3.実施形態の効果 上記生成トリガイベント処理においては生成トリガイベ
ント処理に対する時間余裕がある場合はステップSP2
9において比較的長い範囲のグループBおよびCの波形
データが生成される。従って、グループAに係る波形デ
ータが生成される際には、殆どの場合において同一範囲
のグループBおよびCの波形データは生成済みであり、
ステップSP23においては「YES」と判定される。
3. Effect of Embodiment In the above generation trigger event processing, if there is enough time for the generation trigger event processing, step SP2
At 9, a relatively long range of group B and C waveform data is generated. Therefore, when the waveform data of the group A is generated, the waveform data of the groups B and C in the same range have already been generated in most cases.
In step SP23, "YES" is determined.

【0043】換言すれば、グループBおよびCに係る波
形データは時間余裕があれば事前に生成されるから、グ
ループAの波形データの作成のために多量の処理が必要
となる生成範囲が一時的に存在したとしても、同範囲に
おけるグループBまたはCの波形データは事前に作成さ
れている可能性が高くなり、楽音が途切れるような不具
合を未然に防止することができる。
In other words, the waveform data for groups B and C are generated in advance if there is enough time, so that the generation range in which a large amount of processing is required to generate the waveform data for group A is temporarily limited. , The waveform data of group B or C in the same range is more likely to have been created in advance, and it is possible to prevent such a problem that the musical sound is interrupted.

【0044】4.変形例 本発明は上述した実施形態に限定されるものではなく、
例えば以下のように種々の変形が可能である。 (1)上記実施形態においては、楽音合成システムのプ
ログラムは全てパーソナルコンピュータにインストール
されていることを前提として説明したが、これらのプロ
グラムをCD−ROM、フロッピーディスク等の記録媒
体に格納して頒布してもよいし、或いは、無線やネット
ワーク等を介して各コンピュータに配信してもよい。
4. Modifications The present invention is not limited to the embodiments described above,
For example, various modifications are possible as follows. (1) In the above embodiment, the description has been made on the assumption that all the programs of the tone synthesis system are installed in a personal computer. However, these programs are stored in a recording medium such as a CD-ROM or a floppy disk and distributed. Or may be distributed to each computer via wireless or network.

【0045】(2)上記実施形態においては、最も発音
遅れ時間の短いグループ(グループA)に割り当てるパ
ートをユーザが決定した。しかし、図4に示すように、
自動演奏を行うことが可能な複数のパートのうち何れか
のパートがオフにされる場合は、当該パートについてマ
ニュアル演奏が行われる可能性が高い。そこで、自動演
奏をオフにしたパートを自動的にグループAに割り当て
るようにしてもよい。
(2) In the above embodiment, the user determines the part to be assigned to the group (group A) with the shortest sound generation delay time. However, as shown in FIG.
When any one of a plurality of parts capable of performing an automatic performance is turned off, there is a high possibility that a manual performance will be performed on that part. Therefore, a part for which automatic performance is turned off may be automatically assigned to group A.

【0046】[0046]

【発明の効果】以上説明したようにこの発明によれば、
演奏情報が提供されてから楽音信号を出力する迄の遅延
時間を、演奏情報のパートに応じて、あるいは、自動演
奏であるかマニュアル演奏であるかに応じて設定するか
ら、演奏情報の態様に応じて適切な遅延時間を設定でき
る。
As explained above, according to the present invention,
Since the delay time from when the performance information is provided to when the musical tone signal is output is set according to the part of the performance information, or whether it is an automatic performance or a manual performance, the form of the performance information is An appropriate delay time can be set accordingly.

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

【図1】 本発明の一実施形態の楽音合成システムのブ
ロック図である。
FIG. 1 is a block diagram of a musical sound synthesis system according to an embodiment of the present invention.

【図2】 RAM23および波形インターフェース30
の詳細ブロック図である。
FIG. 2 shows a RAM 23 and a waveform interface 30.
It is a detailed block diagram of.

【図3】 出力バッファ領域38のメモリマップであ
る。
FIG. 3 is a memory map of an output buffer area 38;

【図4】 各パートの遅延時間等の設定状態を示す図で
ある。
FIG. 4 is a diagram showing a setting state of a delay time and the like of each part.

【図5】 MIDIイベント処理ルーチンのフローチャ
ートである。
FIG. 5 is a flowchart of a MIDI event processing routine.

【図6】 入力バッファ領域37のメモリマップであ
る。
FIG. 6 is a memory map of an input buffer area 37;

【図7】 生成トリガイベント処理ルーチンのフローチ
ャートである。
FIG. 7 is a flowchart of a generation trigger event processing routine.

【図8】 DMA処理ルーチンのフローチャートであ
る。
FIG. 8 is a flowchart of a DMA processing routine.

【図9】 生成トリガイベント処理ルーチンのサブルー
チンのフローチャートである。
FIG. 9 is a flowchart of a subroutine of a generation trigger event processing routine.

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

20……CPUバス、21……CPU、22……RO
M、23……RAM、24……タイマ、25……MID
Iインターフェース、26……ハードディスク、27…
…リムーバブルディスク、28……表示器、29……キ
ーボード&マウス、30……波形インターフェース、3
1……ADコンバータ、32……第1DMAコントロー
ラ、33……サンプリングクロック発生器、34……第
2DMAコントローラ、35……DAコンバータ、36
……波形テーブル領域、37……入力バッファ領域、3
8……出力バッファ領域。
20 CPU bus 21 CPU 22 RO
M, 23 RAM, 24 Timer 25 MID
I interface, 26 ... Hard disk, 27 ...
... Removable disk, 28 ... Display, 29 ... Keyboard & mouse, 30 ... Waveform interface, 3
1 AD converter, 32 First DMA controller, 33 Sampling clock generator, 34 Second DMA controller, 35 DA converter, 36
...... Waveform table area 37 Input buffer area 3
8 ... output buffer area.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 複数パートの演奏情報に基づいて前記各
パートの楽音信号を出力する楽音生成方法において、 前記各パートの演奏情報が提供されてから前記各パート
の楽音信号を出力する迄の遅延時間を、前記パートに応
じて相違させることを特徴とする楽音生成方法。
1. A tone generating method for outputting a tone signal of each part based on performance information of a plurality of parts, wherein a delay from when the performance information of each part is provided to when a tone signal of each part is output. A tone generation method, wherein the time is made different depending on the part.
【請求項2】 演奏情報に基づいて楽音信号を出力する
楽音生成方法において、 前記演奏情報が提供されてから前記楽音信号を出力する
迄の遅延時間を、前記演奏情報が自動演奏に係る演奏情
報であるかマニュアル演奏に係る演奏情報であるかに応
じて設定することを特徴とする楽音生成方法。
2. A tone generating method for outputting a tone signal based on performance information, wherein a delay time from when the performance information is provided to when the tone signal is output is determined, wherein the performance information relates to automatic performance. Or the performance information relating to manual performance.
【請求項3】 請求項1または2記載の方法を実行する
ことを特徴とする楽音生成装置。
3. A musical sound generating apparatus for executing the method according to claim 1.
【請求項4】 請求項1または2記載の方法を実行する
プログラムを記録したことを特徴とする記録媒体。
4. A recording medium on which a program for executing the method according to claim 1 or 2 is recorded.
JP08048599A 1999-03-24 1999-03-24 Music sound generation method and music sound generation device Expired - Fee Related JP3551818B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08048599A JP3551818B2 (en) 1999-03-24 1999-03-24 Music sound generation method and music sound generation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08048599A JP3551818B2 (en) 1999-03-24 1999-03-24 Music sound generation method and music sound generation device

Publications (2)

Publication Number Publication Date
JP2000276149A true JP2000276149A (en) 2000-10-06
JP3551818B2 JP3551818B2 (en) 2004-08-11

Family

ID=13719601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08048599A Expired - Fee Related JP3551818B2 (en) 1999-03-24 1999-03-24 Music sound generation method and music sound generation device

Country Status (1)

Country Link
JP (1) JP3551818B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008149675A1 (en) * 2007-06-05 2008-12-11 Advantest Corporation Waveform generation device, waveform generation method, and program
US10559290B2 (en) 2018-03-22 2020-02-11 Casio Computer Co., Ltd. Electronic musical instrument, method, and storage medium
JP2022140812A (en) * 2018-03-22 2022-09-27 カシオ計算機株式会社 Electronic musical instrument, method and program

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008149675A1 (en) * 2007-06-05 2008-12-11 Advantest Corporation Waveform generation device, waveform generation method, and program
JPWO2008149675A1 (en) * 2007-06-05 2010-08-26 株式会社アドバンテスト Waveform generator, waveform generation method, and program
US7999578B2 (en) 2007-06-05 2011-08-16 Advantest Corporation Waveform generation device, waveform generation method, and computer readable medium
US10559290B2 (en) 2018-03-22 2020-02-11 Casio Computer Co., Ltd. Electronic musical instrument, method, and storage medium
JP2022140812A (en) * 2018-03-22 2022-09-27 カシオ計算機株式会社 Electronic musical instrument, method and program
JP7332002B2 (en) 2018-03-22 2023-08-23 カシオ計算機株式会社 Electronic musical instrument, method and program

Also Published As

Publication number Publication date
JP3551818B2 (en) 2004-08-11

Similar Documents

Publication Publication Date Title
JP6988343B2 (en) Singing voice editing support method and singing voice editing support device
JPH06308964A (en) Musical tone forming device
JP2019066648A (en) Method for assisting in editing singing voice and device for assisting in editing singing voice
KR100372311B1 (en) Electronic musical instrument
JP4561636B2 (en) Musical sound synthesizer and program
TW300298B (en)
JP3840851B2 (en) Recording medium and tone signal generation method
JP2007316269A (en) Musical sound synthesizer and program
JP3551818B2 (en) Music sound generation method and music sound generation device
JP3991458B2 (en) Musical sound data processing apparatus and computer system
CN103531193A (en) Musical sound generation device and musical sound generation method
JP3855711B2 (en) Digital signal processor for sound waveform data
JPH07121181A (en) Sound information processor
JP3637577B2 (en) Music generation method
JP3978928B2 (en) Music generator
JP5534389B2 (en) Music generator
JP3781171B2 (en) Music generation method
JP3799711B2 (en) Musical sound generation method and musical sound generator
JP3223757B2 (en) Musical sound wave generation method
JP3659002B2 (en) Musical sound data processing apparatus and computer system
JP3460524B2 (en) Music data processing method, processed music data reproduction method, and storage medium
JP2000122668A (en) Digtal sound data processor, and computor system
JP3855710B2 (en) Digital signal processor for sound waveform data
JP4645597B2 (en) Musical sound synthesis method, recording medium, and musical sound synthesizer
JP3518357B2 (en) Music generating method, musical sound generating apparatus and computer readable recording medium storing musical sound generating processing program

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040305

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040419

R150 Certificate of patent (=grant) 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 (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090514

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100514

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110514

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140514

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees