JPH09311681A - Musical sound producing and processing method - Google Patents

Musical sound producing and processing method

Info

Publication number
JPH09311681A
JPH09311681A JP8147820A JP14782096A JPH09311681A JP H09311681 A JPH09311681 A JP H09311681A JP 8147820 A JP8147820 A JP 8147820A JP 14782096 A JP14782096 A JP 14782096A JP H09311681 A JPH09311681 A JP H09311681A
Authority
JP
Japan
Prior art keywords
musical tone
musical
processing
control information
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
JP8147820A
Other languages
Japanese (ja)
Other versions
JP3725247B2 (en
Inventor
Tadashi Yamanaka
正 山中
Shinobu Katayama
忍 片山
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.)
Roland Corp
Original Assignee
Roland 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 Roland Corp filed Critical Roland Corp
Priority to JP14782096A priority Critical patent/JP3725247B2/en
Publication of JPH09311681A publication Critical patent/JPH09311681A/en
Application granted granted Critical
Publication of JP3725247B2 publication Critical patent/JP3725247B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To efficiently produce musical sound on a widely used computer in real time by carrying out a processing suitable for a widely used computer by carrying out respectively specified musical sound data producing processing and a musical sound data output processing. SOLUTION: At the time when musical sounds are produced in real time on a widely used computer, a program is so composed as to carry out processing suitable for a widely used computer. The program is composed of a control task, a sound source task, and an output task. In the musical sound producing processing, data of the musical sounds at a plurality of sampling times included in a prescribed period for respective prescribed periods longer than the sampling cycles produced collectively and processing to record while ordering time series is carried out. In the musical sound data output processing, the data at respective sampling times recorded by the sound data producing processing is successively read out following the time order for every sampling cycle and sent out.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、楽音生成処理方法
に関し、さらに詳細には、パーソナルコンピュータやワ
ークステーションなどの汎用のコンピュータ上でソフト
ウェアによりシンセサイザを構築するための楽音生成処
理方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a tone generation processing method, and more particularly to a tone generation processing method for constructing a synthesizer by software on a general-purpose computer such as a personal computer or a workstation.

【0002】[0002]

【発明の背景および発明が解決しようとする課題】従
来、楽音を生成するためには、楽音生成用の専用のハー
ドウェア、所謂、電子楽器を用いることが必要であっ
た。
BACKGROUND OF THE INVENTION Conventionally, in order to generate musical tones, it has been necessary to use dedicated hardware for generating musical tones, so-called electronic musical instruments.

【0003】しかしながら、近年、汎用のコンピュータ
に高性能のCPUおよびCPUが処理したデータをアナ
ログ信号として外部へ出力するためのD/A変換器(デ
ジタル−アナログ変換器)が搭載されるようになってき
たことに伴い、専用のハードウェアを用いることなし
に、汎用のコンピュータ上で楽音をリアルタイムに生成
することができる可能性が検討されてきている。
However, in recent years, a general-purpose computer has been equipped with a high-performance CPU and a D / A converter (digital-analog converter) for outputting data processed by the CPU as an analog signal to the outside. Accordingly, the possibility of generating musical sounds in real time on a general-purpose computer without using dedicated hardware has been studied.

【0004】具体的には、楽音のデータは正確にサンプ
リング周期毎にD/A変換器に出力しなければならない
ため、タイマに応じてサンプリング周期毎に楽音のデー
タを生成する処理を行うことが検討されている。
More specifically, since tone data must be accurately output to the D / A converter at each sampling period, a process for generating tone data at each sampling period in accordance with a timer may be performed. Are being considered.

【0005】この処理を実現するためには、サンプリン
グ周期毎に発生するタイマインタラプトに応じて、イン
タラプトルーチンの中で楽音のデータを生成する処理を
行うことが考えられるが、楽音のデータを生成する処理
は複雑であり、こうした複雑な処理をインタラプトルー
チンの中で行うのは困難であるという問題点が指摘され
ていた。
In order to realize this processing, it is conceivable to perform processing for generating musical tone data in an interrupt routine in response to a timer interrupt generated at each sampling period. It has been pointed out that the processing is complicated and it is difficult to perform such complicated processing in an interrupt routine.

【0006】あるいはまた、上記した処理を実現するた
めには、サンプリング周期毎に起動されるタスクで楽音
のデータを生成する処理を行うことも考えられるが、こ
れによると、サンプリング周期毎という複雑なタイミン
グでタスクを切り換える処理を行う必要があり、タスク
切り換えのためのオーバーヘッドが増大することにな
り、CPUが実際に処理することができる時間が短くな
ってしまうという問題点が指摘されていた。
Alternatively, in order to realize the above-described processing, it is conceivable to perform processing for generating musical tone data by a task started at each sampling cycle. It has been pointed out that it is necessary to perform a process of switching tasks at a timing, which increases the overhead for task switching and shortens the time during which the CPU can actually perform processing.

【0007】ところで、一般に、一つのソフトウェアを
様々な汎用のコンピュータで使用することが可能である
が、これら様々な汎用のコンピュータにそれぞれ搭載さ
れているCPUの能力は区々であり、低い能力のCPU
に合わせてソフトウェアを作成すると、能力の高いCP
Uが搭載されたコンピュータではCPUの能力を使いき
ることができないという問題点があった。
Generally, one piece of software can be used on various general-purpose computers. However, the capabilities of CPUs mounted on these various general-purpose computers are various and low-capacity. CPU
If you create software according to the
There is a problem in that the computer equipped with U cannot use up the capacity of the CPU.

【0008】また、汎用のコンピュータにおいては、複
数のソフトウェアを同時に実行させるという使用方法が
一般的に行われているが、楽音を生成する処理ととも
に、楽音を生成する処理以外の他の処理も同時に行う場
合には、他の処理の処理状況に応じてCPUの負荷は刻
々と変化することとなる。このため、CPUの負荷が最
も重い状態に合わせてソフトウェアを作成すると、負荷
が軽い場合にCPUの能力を使いきることができないと
いう問題点があった。
Further, in a general-purpose computer, a method of executing a plurality of pieces of software at the same time is generally used. In addition to the process of generating musical tones, other processes other than the process of generating musical tones are simultaneously performed. When the processing is performed, the load on the CPU changes every moment according to the processing status of other processing. For this reason, when software is created in accordance with the state where the load on the CPU is the heaviest, there is a problem that the capacity of the CPU cannot be used when the load is light.

【0009】さらに、一般に、CPUによる楽音を生成
する処理の少なくとも一部は、一定の時間間隔で繰り返
し行われることになるが、ノートオン(発音開始)/ノ
ートオフ(発音終了)を示す指示は、使用者(ユーザ
ー)の所望のタイミングに応じてこの繰り返し間隔とは
非同期で発生する。即ち、ノートオン/ノートオフを示
す指示に応じて楽音を生成する処理にデータを受け渡
し、データを受け渡された楽音を生成する処理において
は、受け渡されたデータに基づいて楽音を生成する処理
を行うこととなるが、ノートオン/ノートオフを示す指
示は上記繰り返し間隔とは非同期であるため、楽音を生
成する処理をしている最中に、ノートオン/ノートオフ
を示す指示に応じてデータを書き換えてしまったり、あ
るいはノートオン/ノートオフを示す指示に応じてデー
タを書き換えている最中に楽音を生成する処理を行う
と、生成中の楽音にノイズが生じるという問題点があ
り、データの受け渡し方法を改良する必要性が指摘され
ていた。
Further, generally, at least a part of the process of generating a musical tone by the CPU is repeatedly performed at a constant time interval, but an instruction indicating note-on (start of sounding) / note-off (end of sounding) is issued. , It occurs asynchronously with this repetition interval according to the desired timing of the user. That is, in the process of passing the data to the process of generating the musical tone in accordance with the instruction indicating the note-on / note-off, and in the process of generating the musical tone to which the data is passed, the process of generating the musical tone based on the passed data. However, since the instruction indicating note-on / note-off is asynchronous with the above-mentioned repetition interval, during the process of generating a musical sound, the instruction indicating note-on / note-off is issued in response to the instruction indicating note-on / note-off. If data is rewritten, or if a process of generating a musical tone is performed while rewriting the data in response to an instruction indicating note-on / note-off, there is a problem that noise is generated in the musical tone being generated. It was pointed out that there was a need to improve the data transfer method.

【0010】本発明は、上記したような種々の問題点に
鑑みてなされたものであり、その目的とするところは、
汎用のコンピュータに適した処理を行うことにより上記
した種々の問題点の解決を図り、汎用のコンピュータ上
で楽音をリアルタイムで効率的に生成することのできる
楽音生成処理方法を提供しようとするものである。
The present invention has been made in view of the above-mentioned various problems, and an object thereof is to:
By performing processing suitable for a general-purpose computer, it is intended to solve the various problems described above, and to provide a musical sound generation processing method capable of efficiently generating a musical sound on a general-purpose computer in real time. is there.

【0011】[0011]

【課題を解決するための手段】上記目的を達成するため
に、本発明による楽音生成処理方法は、サンプリング周
期よりも長い所定時間毎に、上記所定時間に含まれる複
数のサンプリング時点の楽音のデータを一度にまとめて
生成し、時間的な順序付けをして記憶する処理を行う楽
音データ生成処理と、上記楽音データ生成処理により記
憶した各サンプリング時点の楽音のデータを、サンプリ
ング周期毎に上記時間的な順序付けに従って順次読み出
して出力する処理を行う楽音データ出力処理とを行うよ
うにしたものである。
In order to achieve the above-mentioned object, the tone generation processing method according to the present invention is such that the tone data at a plurality of sampling points included in the above-mentioned predetermined time is provided at every predetermined time longer than the sampling period. To generate the sound data at once, and to store the music data in a time-ordered manner. Musical tone data output processing for sequentially reading and outputting according to such ordering.

【0012】ここで、上記楽音データ生成処理は、楽音
のデータを直接に扱う処理と、上記楽音のデータを直接
に扱う処理の処理態様を制御する制御量を求める処理と
を有し、上記制御量を求める処理は、上記所定時間毎に
1回だけ演算することにより上記所定時間後の次回の制
御量を求める第1の処理と、上記第1の処理により演算
された前回の制御量と次回の制御量との間を補間して各
サンプリング時点の制御量を求める第2の処理とを有
し、上記楽音のデータを直接に扱う処理は、上記第2の
処理により求められた各サンプリング時点の制御量に基
づいて各サンプリング時点の楽音のデータを処理するも
のとすることができる。
The tone data generation process includes a process for directly handling the tone data and a process for obtaining a control amount for controlling the processing mode of the process for directly handling the tone data. The process for obtaining the amount is the first process for obtaining the next control amount after the predetermined time by calculating only once at the predetermined time, and the previous control amount and the next time for the control amount calculated by the first process. And a second process for interpolating between the control amount and the control amount to obtain the control amount at each sampling time point. The process for directly handling the tone data is performed at each sampling time point obtained by the second process. The musical tone data at each sampling time can be processed based on the control amount.

【0013】また、上記第1の処理は、複数種類の制御
量の次回の値を個別に求め、上記個別に求めた値を合成
して上記次回の制御量を求め、上記第2の処理は、上記
第1の処理により合成された前回の制御量と次回の制御
量との間を補間するものとすることができる。
In the first process, the next values of the plurality of types of control amounts are individually obtained, the values obtained individually are combined to obtain the next control amount, and the second process is performed. It is possible to interpolate between the previous control amount and the next control amount synthesized by the first processing.

【0014】また、本発明による楽音生成処理方法は、
処理手段において予め設定された所定の態様で楽音を生
成する処理と、上記楽音を生成する処理を行った場合の
上記処理手段の負荷量を検出する処理と、上記検出する
処理により検出された負荷量に基づいて楽音の生成態様
を決定する処理とを行うようにしたものである。
The tone generation processing method according to the present invention is
A process of generating a musical sound in a predetermined mode set in advance in the processing means, a process of detecting a load amount of the processing device when the process of generating the musical sound is performed, and a load detected by the detecting process. The processing for determining the musical tone generation mode based on the amount is performed.

【0015】ここで、上記楽音の生成態様を決定する処
理は、上記処理手段による上記楽音を生成する処理の許
容負荷量と上記検出する処理により検出された上記処理
手段の負荷量とに基づいて、楽音の生成態様を決定する
ものとすることができる。
Here, the process for determining the musical tone generation mode is based on the allowable load amount of the process for generating the musical tone by the processing unit and the load amount of the processing unit detected by the detecting process. , The generation mode of the musical sound can be determined.

【0016】さらに、本発明による楽音生成処理方法
は、処理手段において所定の態様で楽音を生成する処理
と、上記楽音を生成する処理を行った場合の上記処理手
段の負荷量を自動的に刻々と検出する処理と、上記検出
する処理により検出された負荷量に基づいて楽音の生成
態様を自動的に刻々と変化させる処理と行うようにした
ものである。
Further, in the tone generation processing method according to the present invention, the processing means automatically generates the tone generation processing in a predetermined mode and the load amount of the processing means when the tone generation processing is performed. And a process of automatically changing the musical tone generation mode on the basis of the load amount detected by the above-mentioned detecting process.

【0017】ここで、上記検出する処理は、上記楽音を
生成する処理に費やされる時間を計測し、上記計測した
時間と上記楽音を生成する処理の実行時間間隔とに基づ
いて、上記負荷量を検出するものとすることができる。
Here, in the detecting process, the time spent for the process of generating the musical tone is measured, and the load amount is calculated based on the measured time and the execution time interval of the process of generating the musical tone. It can be detected.

【0018】また、上記楽音の生成態様を決定する処理
により決定される上記楽音の生成態様は、楽音の同時発
音数、効果付与手段の効果付与態様あるいはサンプリン
グ周波数の少なくともいずれか1つであるとすることが
できる。
The musical tone generation mode determined by the musical tone generation mode determination process is at least one of the number of simultaneous musical tones, the effect imparting mode of the effect imparting means, and the sampling frequency. can do.

【0019】また、上記楽音の生成態様を決定する処理
により決定される上記楽音の生成態様は、楽音の同時発
音数、効果付与手段の効果付与態様あるいはサンプリン
グ周波数の少なくともいずれか2つであり、使用者の指
示により上記楽音の生成態様のいずれかを優先させ、上
記楽音の生成態様を決定する処理は、優先されない上記
楽音の生成態様を上記検出する処理により検出された上
記負荷量に基づいて決定するものとすることができる。
The musical tone generation mode determined by the musical tone generation mode determination process is at least two of the number of simultaneous musical tone generation, the effect imparting mode of the effect imparting means, and the sampling frequency. The process of prioritizing any of the musical tone generation modes according to a user's instruction and determining the musical tone generation mode is based on the load amount detected by the process of detecting the non-priority musical tone generation mode. Can be decided.

【0020】さらに、本発明による楽音生成処理方法
は、外部からの楽音制御指示の受け取りに応じて楽音制
御情報を供給する処理と、上記供給する処理により新た
な楽音制御情報が供給された場合に、上記供給する処理
により前回供給された楽音制御情報を保持したまま新た
に供給された楽音制御情報を保持する処理と、上記供給
する処理とは独立したタイミングで、所定時間毎に楽音
制御情報に基づいて楽音を生成する処理であって、上記
保持する処理に対し、前回の生成する処理から今回の生
成する処理までの間に上記供給する処理により新たな楽
音制御情報が供給された場合には、上記保持する処理に
より保持されている新たな楽音制御情報に基づいて楽音
を生成するとともに、上記保持する処理に対し、前回の
生成する処理から今回の生成する処理までの間に上記供
給する処理により新たな楽音制御情報が供給されなかっ
た場合には、上記保持する処理により保持されている前
回供給された楽音制御情報に基づいて楽音を生成する処
理とを行うようにしたものである。
Further, the tone generation processing method according to the present invention includes a process of supplying tone control information in response to receipt of a tone control instruction from the outside, and a process of supplying new tone control information by the above-mentioned supplying process. , The process of holding the newly supplied musical tone control information while holding the musical tone control information supplied last time by the supplying process, and the process of supplying the musical tone control information independently at a predetermined time, to the musical tone control information. In the case where new musical tone control information is supplied by the above-mentioned supplying process between the previously generated process and the presently generated process, in the process of generating a musical sound based on , The musical tone is generated based on the new musical tone control information held by the holding process, and the holding process is changed from the previous generation process to the holding process. If new musical tone control information is not supplied by the above-mentioned supplying process before the process of generating the musical tone, the musical tone is generated based on the previously-supplied musical tone control information held by the holding process. The processing is performed.

【0021】ここで、上記保持する処理は、前回供給さ
れた楽音制御情報と新たに供給された楽音制御情報とを
保持する2つの記憶エリアのうちいずれを使用するかを
指し示すポインタと、上記供給する処理により新たな楽
音制御情報が供給されたことを示すフラグとを記憶し、
上記供給する処理により新たな楽音制御情報が供給され
た場合には、上記ポインタの内容に基づいて指定される
記憶エリアに、上記供給する処理により供給された新た
な楽音制御情報を記憶するとともに、上記フラグを上
げ、上記所定時間毎に上記フラグの内容を参照し、上記
フラグが新たな楽音制御情報が供給されたことを示す場
合には、上記フラグを降ろすとともに上記ポインタの内
容を書き換え、上記楽音を生成する処理は、上記ポイン
タの内容に基づいて指定される記憶エリアに記憶されて
いる楽音制御情報に基づいて楽音を生成するものとする
ことができる。
Here, in the holding process, a pointer indicating which of the two storage areas holding the previously supplied musical tone control information and the newly supplied musical tone control information is used, and the above-mentioned supplying And a flag indicating that new musical tone control information has been supplied by the processing
When new musical tone control information is supplied by the supplying process, the new musical tone control information supplied by the supplying process is stored in the storage area designated based on the content of the pointer, If the flag is raised and the contents of the flag are referred to every predetermined time, and if the flag indicates that new musical tone control information has been supplied, the flag is cleared and the contents of the pointer are rewritten, The process of generating a musical tone may be a process of generating a musical tone based on the musical tone control information stored in the storage area designated based on the content of the pointer.

【0022】なお、上記のように2つの記憶エリアを設
ける場合には、上記供給する処理により供給された新た
な楽音制御情報を記憶する記憶エリアと楽音を生成する
にあたり楽音制御情報が参照される記憶エリアとは互い
に排他的にする。即ち、上記のポインタとして、1つの
ポインタのみを設けるようにした場合には、このポイン
タの指し示す片方の記憶エリアに上記供給する処理によ
り供給された新たな楽音制御情報を記憶するとともに、
他方の記憶エリアに記憶された楽音制御情報に基づいて
楽音を生成する。あるいは、上記のポインタとして、上
記供給する処理により供給された新たな楽音制御情報を
記憶する記憶エリアを指し示すポインタと、楽音を生成
するにあたり楽音制御情報が参照される記憶エリアを指
し示すポインタとを別々に設けるようにした場合には、
これらのポインタの指し示す記憶エリアは互いに逆の記
憶エリアとする。
When the two storage areas are provided as described above, the storage area for storing the new musical tone control information supplied by the supply processing and the musical tone control information for generating the musical tone are referred to. Storage areas are mutually exclusive. That is, when only one pointer is provided as the above-mentioned pointer, the new musical tone control information supplied by the above-mentioned supply processing is stored in one storage area pointed to by this pointer, and
A tone is generated based on the tone control information stored in the other storage area. Alternatively, as the pointer, a pointer pointing to a storage area for storing the new musical tone control information supplied by the supplying process and a pointer pointing to a storage area to which the musical tone control information is referred in generating a musical tone are separately provided. If it is installed in
The storage areas indicated by these pointers are opposite storage areas.

【0023】[0023]

【発明の実施の形態】以下、添付の図面を参照しなが
ら、本発明の楽音生成処理方法の実施の形態を詳細に説
明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the musical sound generation processing method of the present invention will be described in detail below with reference to the accompanying drawings.

【0024】図1は、本発明の楽音生成処理方法による
プログラムを搭載可能な、典型的な汎用のコンピュータ
のハードウェア構成を示すブロック図である。
FIG. 1 is a block diagram showing a hardware configuration of a typical general-purpose computer capable of mounting a program according to the musical sound generation processing method of the present invention.

【0025】この図1に示す汎用のコンピュータは、極
めて一般的な構成を備えており、バス10を介して、C
PU12と、メモリ14と、ディスクコントローラ16
と、ビデオカード18と、I/Oカード20と、サウン
ドカード22とが接続されており、さらに、ディスクコ
ントローラ16にはハードディスク24が接続され、ビ
デオカード18にはディスプレイ装置26が接続され、
I/Oカード20にはキーボード28およびマウス30
が接続されている。そして、このコンピュータにおいて
は、サウンドカード22から楽音信号が出力される。
The general-purpose computer shown in FIG. 1 has an extremely general configuration, and a C
PU 12, memory 14, disk controller 16
, A video card 18, an I / O card 20, and a sound card 22 are connected, a hard disk 24 is connected to the disk controller 16, a display device 26 is connected to the video card 18,
The I / O card 20 has a keyboard 28 and a mouse 30.
Is connected. Then, in this computer, a sound signal is output from the sound card 22.

【0026】また、この汎用のコンピュータにおいて
は、本発明の楽音生成処理方法によるプログラムの他
に、シーケンサ(自動演奏)のプログラムも同時に起動
され、シーケンサのプログラムから本発明の楽音生成処
理方法によるプログラムへMIDI情報が引き渡され、
本発明の楽音生成処理方法によるプログラムにおいて
は、引き渡されたMIDI情報に応じて楽音信号を生成
して出力する。
In this general-purpose computer, in addition to the program by the tone generation processing method of the present invention, a sequencer (automatic performance) program is also started at the same time, and the program of the tone generation processing method of the present invention is executed from the sequencer program. MIDI information is passed to
In the program according to the tone generation processing method of the present invention, a tone signal is generated and output according to the delivered MIDI information.

【0027】図2は、本発明の楽音生成処理方法による
プログラムの全体構成を示し、制御タスク、音源タスク
および出力タスクより構成されている。
FIG. 2 shows the overall structure of a program according to the musical sound generation processing method of the present invention, which is composed of a control task, a sound source task and an output task.

【0028】即ち、制御タスクは制御プログラムを実行
し、シーケンサのプログラムとの間でMIDI情報のや
りとりを行うとともに、音源タスク側へイベントフラ
グ、発音パラメータ、定常処理パラメータ、エフェクト
パラメータを引き渡し、音源タスク側からボイス解放情
報を受け取る。
That is, the control task executes the control program, exchanges MIDI information with the program of the sequencer, and passes the event flag, the sound generation parameter, the steady processing parameter, and the effect parameter to the tone generator task side. Receives voice release information from the side.

【0029】音源タスクは、複数のボイス(楽音生成チ
ャンネル)ならびにエフェクトに関する処理を行い、ウ
ェーブバッファへ生成した楽音信号を記憶させて出力タ
スクへ引き渡す。即ち、複数のボイスのそれぞれの処理
を行い、後述する発音パラメータのエフェクト送り量に
応じて各ボイスの出力をエフェクトへ引き渡し、エフェ
クトを付加されていない各ボイスの出力とエフェクトを
付加された各ボイスの出力とを最終的にミキシングして
ウェーブバッファへ記憶し、出力タスクへ引き渡すこと
になる。
The tone generator task performs processing relating to a plurality of voices (tone generation channels) and effects, stores the tone signal generated in the wave buffer, and delivers it to the output task. That is, the processing of each of the plurality of voices is performed, the output of each voice is delivered to the effect according to the effect feed amount of the sounding parameter described later, and the output of each voice to which the effect is not added and each voice to which the effect is added. Will be finally mixed and stored in the wave buffer and delivered to the output task.

【0030】出力タスクにおいては、ウェーブバッファ
を用いてウェーブ出力処理を行い、外部へ楽音信号を出
力する。そして、出力タスクにおいて使用されたウェー
ブバッファは、音源タスク側へ戻される。
In the output task, wave output processing is performed using a wave buffer, and a tone signal is output to the outside. Then, the wave buffer used in the output task is returned to the sound source task.

【0031】上記したように、制御タスクと音源タスク
とがやりとりする情報には、イベントフラグ、発音パラ
メータ、定常処理パラメータ、エフェクトパラメータお
よびボイス解放情報がある。以下、これらの情報に関し
て説明する。
As described above, the information exchanged between the control task and the sound source task includes an event flag, a sounding parameter, a steady processing parameter, an effect parameter, and voice release information. Hereinafter, such information will be described.

【0032】(1)イベントフラグ イベントフラグはボイス数分用意されていて、音源タス
クは制御タスクからイベントフラグにより各ボイスの発
音開始および発音終了の情報(フラグ)を受ける。イベ
ントフラグは、制御タスクと音源タスクとの両方からア
クセス可能な共有メモリに記憶される。
(1) Event Flags Event flags are prepared for the number of voices, and the sound source task receives information (flags) indicating the start and end of sounding of each voice from the control task according to the event flags. The event flag is stored in a shared memory accessible from both the control task and the sound source task.

【0033】(2)発音パラメータ 後述するように、音源タスクは起動される度にイベント
フラグの内容をサーチし、発音開始フラグを見つける
と、発音パラメータに従って発音を開始するが、発音パ
ラメータには、ボイス毎に以下の(a)乃至(i)に示
す情報が含まれている。 (a)波形読み出し関係パラメータ(波形開始アドレ
ス、ループ関係アドレス、ピッチ) (b)ピッチLFO関係パラメータ(波形、周期、遅延
など) (c)フィルタLFO関係パラメータ(波形、周期、遅
延など) (d)アンプLFO関係パラメータ(波形、周期、遅延
など) (e)ピッチエンベロープ関係パラメータ(アタック、
ディケイ、サスティン、リリースなどの各時間やレベ
ル) (f)TVF(Time Variable Filt
er:時変フィルタ) エンベロープ関係パラ
メータ(アタック、ディケイ、サスティン、リリースな
どの各時間やレベル) (g)TVA(Time Variable Ampl
ifier:時変アンプ)エンベロープ関係パラメータ
(アタック、ディケイ、サスティン、リリースなどの各
時間やレベル) (h)パン (i)エフェクト送り量 これらの情報を含む発音パラメータは、制御タスクと音
源タスクとの両方からアクセス可能な共用メモリに記憶
される。そして、発音パラメータを記憶するメモリ空間
は、ボイス毎に2面づつ設けられている。即ち、音源タ
スクがイベントフラグに発音開始のフラグを見つける
と、音源タスクはこれ以後に音源タスクが参照するメモ
リ空間を今まで参照していた面からもう一つの面に切り
換えるとともに、今まで参照していた面を制御タスクに
渡す。従って、制御タスクは、同じボイス番号の発音パ
ラメータを設定する場合でも、音源タスクから渡された
現在処理中の面とは異なるもう一面の新しいメモリ空間
を用いることによって、音源タスク側で発音時に参照さ
れる現在処理中の面のパラメータエリアを壊すことなし
に、音源タスクへ発音パラメータの引き渡し行うことが
できる。逆に、制御タスク側で書き換えている途中のパ
ラメータエリアを音源タスクが参照するという事態の発
生を防ぐこともできる。
(2) Sound Generation Parameter As will be described later, the sound source task searches the contents of the event flag every time it is activated, and when the sound generation start flag is found, the sound generation task starts sounding according to the sound generation parameter. The information shown in (a) to (i) below is included for each voice. (A) Waveform reading related parameters (waveform start address, loop related address, pitch) (b) Pitch LFO related parameters (waveform, cycle, delay, etc.) (c) Filter LFO related parameters (waveform, cycle, delay, etc.) (d) ) Amplifier LFO related parameters (waveform, period, delay, etc.) (e) Pitch envelope related parameters (attack,
(Each time and level of decay, sustain, release, etc.) (f) TVF (Time Variable Filter)
er: time-varying filter) Envelope-related parameters (each time and level such as attack, decay, sustain, and release) (g) TVA (Time Variable Ampl)
ifier: time-varying amplifier) Envelope-related parameters (each time and level such as attack, decay, sustain, release, etc.) (h) pan (i) effect feed amount The sound generation parameters including these information are used for the control task and the sound source task. It is stored in a shared memory accessible from both. The memory space for storing the sound generation parameters is provided two by two for each voice. In other words, when the sound source task finds the sound generation start flag in the event flag, the sound source task switches the memory space referred to by the sound source task from the previously referenced surface to another surface, and also refers to the previous memory space. Hand over the face to the control task. Therefore, even when setting the sounding parameter of the same voice number, the control task refers to the sound source task side at the time of sound generation by using another new memory space different from the currently processed surface passed from the sound source task. The sound parameter can be transferred to the sound source task without breaking the parameter area of the currently processed surface. Conversely, it is possible to prevent the sound source task from referring to the parameter area being rewritten on the control task side.

【0034】(3)定常処理パラメータ 定常処理パラメータは、ボイス毎に以下の(a)乃至
(c)に示す情報が含まれている。 (a)ピッチオフセット (b)フィルタオフセット (c)アンプオフセット これらの定常処理パラメータは、制御タスクと音源タス
クとの両方からアクセス可能な共用メモリに記憶され、
ピッチベンダやホイルなどの操作子などから得られた情
報をサービスするためのものである。
(3) Steady Processing Parameter The steady processing parameter includes the following information (a) to (c) for each voice. (A) pitch offset (b) filter offset (c) amplifier offset These steady state processing parameters are stored in a shared memory accessible by both the control task and the sound source task,
It is for providing information obtained from operators such as pitch vendors and wheels.

【0035】これらの定常処理パラメータは、音源タス
クが起動される度に読み込まれ、発音中に音源タスク内
部で生成されるエンベロープやLFOなどと合成される
ことになり、こうして合成されたデータを発音サービス
パラメータと称する。
These steady process parameters are read every time the sound source task is activated, and are synthesized with the envelope, LFO, etc. generated inside the sound source task during sound generation, and the synthesized data is sounded. It is called a service parameter.

【0036】発音サービスパラメータは、波形読み出し
のピッチや、TVFのカットオフ周波数、TVAのアン
プリチュード(増幅度)を制御する。
The tone generation service parameters control the waveform reading pitch, the TVF cutoff frequency, and the TVA amplitude.

【0037】(4)エフェクトパラメータ エフェクトパラメータは、制御タスクと音源タスクとの
両方からアクセス可能な共用メモリに記憶されたエフェ
クト制御用の情報であり、エフェクトに渡される。この
エフェクトパラメータは、音源タスクが起動される度に
読み込まれ、前回読み込んだ内容と異なるパラメータが
あれば、それをエフェクトに反映することになる。
(4) Effect Parameter The effect parameter is information for effect control stored in the shared memory accessible from both the control task and the tone generator task, and is passed to the effect. This effect parameter is read each time the sound source task is started, and if there is a parameter different from the previously read content, the parameter is reflected in the effect.

【0038】なお、エフェクトパラメータは、エフェク
トの具体的内容によってパラメータが異なるものであ
り、エフェクトの具体的内容は本発明の要旨から外れる
ものであるので、その詳細な説明は省略する。
The effect parameters differ depending on the specific contents of the effect, and since the specific contents of the effect are outside the scope of the present invention, detailed description thereof will be omitted.

【0039】(5)ボイス開放情報 ボイス開放情報は、音源タスクから制御タスクへ返され
るものであり、発音が終了したボイスの番号を示す。な
お、各ボイスの発音終了は、TVAのエンベロープによ
り判断する。このボイス開放情報はメモリ空間を用いる
のではなく、イベントによって制御タスクへ渡される。
(5) Voice release information The voice release information is returned from the sound source task to the control task, and indicates the number of the voice whose sound has ended. The end of sound generation of each voice is determined based on the envelope of the TVA. This voice release information is passed to the control task by an event instead of using the memory space.

【0040】ここで、イベントフラグ、発音パラメー
タ、定常処理パラメータおよびエフェクトパラメータが
共有メモリを用いて受け渡しが行われるのに対して、ボ
イス開放情報がイベントで渡されるというタスク間の通
信方法の違いは、音源タスクはタイマにより起動される
ため、制御タスク側から非同期なイベント情報を受け取
ることができないためである。ところで、上記した制御
タスク、音源タスクおよび出力タスクには優先度(プラ
イオリティ:priority)が設けられていて、他
のタスクなどにより処理を中断されることが好ましくな
いタスクは、優先度を高くするようになされている。な
お、この実施の形態においては、出力タスクの優先度が
最も高く、次に音源タスクの優先度が高く、制御タスク
の優先度が最も低くなされている。
Here, while the event flag, the sound generation parameter, the steady processing parameter and the effect parameter are transferred using the shared memory, the difference in the communication method between the tasks is that the voice release information is transferred by the event. This is because the sound source task is activated by the timer, so asynchronous event information cannot be received from the control task side. By the way, the above-mentioned control task, sound source task and output task are provided with a priority (priority), and a task whose processing is not preferably interrupted by another task or the like has a higher priority. Has been made. In this embodiment, the output task has the highest priority, the sound source task has the second highest priority, and the control task has the lowest priority.

【0041】以下、図2および図3を参照しながら、制
御タスク、音源タスクおよび出力タスクを詳細に説明す
る。
The control task, the sound source task and the output task will be described in detail below with reference to FIGS. 2 and 3.

【0042】(1)制御タスク 制御タスクはMIDI情報を得て音源タスクを制御する
ものであり、シーケンサのプログラムからのMIDI情
報や音源タスクからのボイス解放情報を受け取ることに
より起動される。
(1) Control Task The control task is to obtain MIDI information and control the tone generator task, and is activated by receiving MIDI information from the sequencer program and voice release information from the tone generator task.

【0043】ここで、制御タスクは、各ボイスに関し
て、当該ボイスが発音中か空いているかを示すボイス情
報を常に管理しているものであり、MIDI情報として
ノートオンを受け取ると、ボイス情報を参照して適当な
空いているボイスを指定し、当該ボイスを用いて当該ノ
ートオンを発音するように、当該ボイスに対して当該ノ
ートオンに必要な発音パラメータを設定するとともにそ
の後にイベントフラグに発音開始を設定し、指定したボ
イスのボイス情報を更新する処理を行う。そして、音源
タスクにおいては、上記した制御タスクの処理に応じ
て、指定されたボイスで新たな発音を開始する。
Here, the control task constantly manages, for each voice, voice information indicating whether the voice is sounding or vacant. When receiving note-on as MIDI information, the control task refers to the voice information. Specify an appropriate empty voice, set the sounding parameters necessary for the note-on for the voice so that the note-on will be sounded using the voice, and then start sounding in the event flag. Is set, and the voice information of the specified voice is updated. Then, in the sound source task, a new sound is started with the designated voice according to the processing of the control task described above.

【0044】また、制御タスクは、MIDI情報として
ノートオンを受け取ったときに、ボイス情報を参照して
空きボイスが無い場合には、発音中のレベルが小さいボ
イスを選択したり、あるいは最も過去に発音開始された
ボイスを選択したりするなど所定の選択基準により不必
要と思われるボイスを選択し、当該ボイスを用いて当該
ノートオンを発音するように、当該ボイスに対して当該
ノートオンに必要な発音パラメータを設定するとともに
その後にイベントフラグに発音開始を設定する処理を行
う。そして、音源タスクにおいては、上記した制御タス
クの処理に応じて、すばやく選択されたボイスの現在の
発音をミュートしてから、選択されたボイスにより新た
な発音を開始する。
When the note-on is received as the MIDI information, the control task refers to the voice information and if there is no empty voice, selects the voice with a low sounding level or the earliest. Necessary for the note-on for the voice so that the note-on is selected by selecting a voice that seems unnecessary according to a predetermined selection criterion, such as selecting a voice that has started sounding, and using the voice to sound the note-on. The process of setting the sound generation parameter and setting the start of sound generation in the event flag after that. Then, in the sound source task, according to the processing of the control task, the current sound generation of the selected voice is muted quickly, and then a new sound generation is started by the selected voice.

【0045】上記したように、制御タスクにおいては、
MIDI情報としてノートオンを受け取ると、ボイスの
割り当て、所謂、アサイン処理を行うことになる。
As described above, in the control task,
When note-on is received as MIDI information, voice assignment, so-called assignment processing, is performed.

【0046】一方、制御タスクは、MIDI情報として
ノートオフを受け取ると、当該ノートオフに対応する発
音中のボイスに対して発音を終了するように、イベント
フラグに発音終了を設定する処理を行う。そして、音源
タスクにおいては、上記した制御タスクの処理に応じ
て、当該ノートオフに対応する発音中のボイスを消音す
る。
On the other hand, when receiving the note-off as MIDI information, the control task sets the event flag to end the sounding so as to end the sounding of the voice being sounded corresponding to the note-off. Then, in the sound source task, the currently sounding voice corresponding to the note-off is muted according to the processing of the control task described above.

【0047】なお、後述するように、音源タスク中のボ
イスの処理に関しては、発音していないボイスに対して
は行われない。従って、発音ボイス数に応じて、音源タ
スクの演算量が増減することになる。このため、本発明
においては、最大発音可能な発音数は、コンピュータの
能力に応じて予め設定できるとともに、適宜変更するこ
とができるようになされている。
As will be described later, the processing of voices during the tone generator task is not performed for voices that are not sounding. Therefore, the calculation amount of the sound source task increases or decreases according to the number of sounding voices. Therefore, in the present invention, the maximum number of sounds that can be generated can be set in advance according to the capability of the computer and can be changed as appropriate.

【0048】また、制御タスクは、MIDI情報として
定常処理パラメータ、エフェクトパラメータの値を変更
するメッセージを受け取ると、対応する定常処理パラメ
ータ、エフェクトパラメータを音源タスクに引き渡す処
理を行う。
When the control task receives a message for changing the values of the steady process parameter and the effect parameter as MIDI information, the control task performs a process of delivering the corresponding steady process parameter and effect parameter to the sound source task.

【0049】さらに、制御タスクは、音源タスクから制
御タスクへボイス解放情報が渡された場合には、渡され
たボイス解放情報に応じて指定したボイスのボイス情報
を更新する。
Furthermore, when the voice release information is passed from the sound source task to the control task, the control task updates the voice information of the specified voice according to the passed voice release information.

【0050】(2)音源タスク 音源タスクは10ms(ミリ秒)毎にタイマによって起
動され、10ms分の波形読み出し、TVF、TVA、
パン、エンベロープ、LFO、エフェクト処理をまとめ
てなるべく短時間で行う。上記したように、音源タスク
は10ms分の処理を行うものであるので、サンプリン
グ周波数を32KHzとすると、320サンプル分の処
理を行うことになる。
(2) Sound Source Task The sound source task is started by a timer every 10 ms (milliseconds), and waveform reading for 10 ms, TVF, TVA,
Perform pan, envelope, LFO, and effect processing collectively in as short a time as possible. As described above, since the sound source task performs processing for 10 ms, if the sampling frequency is set to 32 KHz, processing for 320 samples will be performed.

【0051】そして、音源タスクは起動される度にイベ
ントフラグの内容をサーチし、発音開始フラグを見つけ
ると、発音パラメータに従って発音を開始する。この際
に、発音パラメータを記憶するメモリ空間は、ボイス毎
に2面づつ設けられており、音源タスクがイベントフラ
グに発音開始のフラグを見つけると、音源タスクはこれ
以後に音源タスクが参照するメモリ空間を今まで参照し
ていた面からもう一つの面に切り換えるとともに、今ま
で参照していた面を制御タスクに渡す。従って、制御タ
スクは、同じボイス番号の発音パラメータを設定する場
合でも、音源タスクから渡された現在処理中の面とは異
なるもう一面の新しいメモリ空間を用いることによっ
て、音源タスク側で発音時に参照される現在処理中の面
のパラメータエリアを壊すことなしに、音源タスクへ発
音パラメータの引き渡し行うことができる。
Each time the sound source task is activated, it searches the contents of the event flag, and when it finds the sounding start flag, it starts sounding according to the sounding parameters. At this time, a memory space for storing sound generation parameters is provided for each voice in two planes. When the sound source task finds a sound generation start flag in the event flag, the sound source task refers to a memory to which the sound source task thereafter refers. The space is switched from the previously referenced surface to another surface, and the previously referenced surface is passed to the control task. Therefore, even when setting the sounding parameter of the same voice number, the control task refers to the sound source task side at the time of sound generation by using another new memory space different from the currently processed surface passed from the sound source task. The sound parameter can be transferred to the sound source task without breaking the parameter area of the currently processed surface.

【0052】ここで、各ボイスにおける処理を説明する
と、音源タスクにおいては、共有のメモリに記憶される
発音パラメータおよび定常処理パラメータは、音源タス
クが起動される度に取り込まれ、エンベロープやLFO
の演算およびそれに定常処理パラメータを反映し、発音
サービスパラメータを生成する演算を行う。こうして生
成された発音サービスパラメータにより、波形読み出し
のピッチや、TVFのカットオフ周波数、TVAのアン
プリチュード(増幅度)が制御され、発音パラメータの
エフェクト送り量に応じてボイスの出力をエフェクトへ
引き渡し、エフェクトを付加されていないボイスの出力
は発音パラメータのパンによりパンポットを制御されて
ステレオ出力される(図3(a))。
Here, the processing in each voice will be described. In the tone generator task, the tone generation parameters and the steady process parameters stored in the shared memory are fetched each time the tone generator task is activated, and the envelope and LFO are fetched.
And a calculation for generating a pronunciation service parameter by reflecting the steady processing parameter. The generated sound service parameter controls the waveform read pitch, the TVF cutoff frequency, and the TVA amplitude (amplification degree), and delivers the voice output to the effect according to the effect feed amount of the sound generation parameter. The output of the voice to which no effect is added is stereo output with the pan pot being controlled by the pan of the sound generation parameter (FIG. 3A).

【0053】そして、エフェクトパラメータによって制
御されたエフェクトを付加された各ボイスの出力とエフ
ェクトを付加されていない各ボイスの出力とが、ミキシ
ングされてステレオ出力され(図3(b))、最終的に
ウェーブバッファへ記憶されて出力タスクへ引き渡され
る。
Then, the output of each voice to which the effect controlled by the effect parameter is added and the output of each voice to which the effect is not added are mixed and stereo-outputted (FIG. 3 (b)). Stored in the wave buffer and delivered to the output task.

【0054】図4には、発音サービスパラメータの生成
の処理を示すフローチャートが示されており、最初のボ
イスからボイス毎に順次処理が行われる。
FIG. 4 is a flow chart showing the process of generating the pronunciation service parameter, and the process is sequentially performed for each voice from the first voice.

【0055】まず、イベントフラグが発音開始を示して
いるかチェックし(ステップS402)、イベントフラ
グが発音開始を示していない場合には、イベントフラグ
が発音終了を示しているかチェックする(ステップS4
04)。
First, it is checked whether the event flag indicates the start of sound generation (step S402). If the event flag does not indicate the start of sound generation, it is checked whether the event flag indicates the end of sound generation (step S4).
04).

【0056】ステップS404でイベントフラグが発音
終了を示していない場合には、発音中を示すフラグであ
るvoiceActiveに「1」がセットされてい
て、発音中であることを示しているかをチェックする
(ステップS406)。
If the event flag does not indicate the end of sound generation in step S404, it is checked whether voice active, which is a flag indicating that sound is being generated, is set to "1" to indicate that sound is being generated ( Step S406).

【0057】一方、ステップS404でイベントフラグ
が発音終了を示している場合には、それを受けてエンベ
ロープをリリース処理へ進め(ステップS408)、前
回処理の際の発音サービスパラメータの計算値n1をn
0にセット(ステップS410)した後に、エンベロー
プ、LFOおよび定常処理パラメータを反映させた演算
を行い発音サービスパラメータを生成して計算値n1に
セットする(ステップS412)。即ち、前回処理から
の10msの時間経過に応じてエンベロープ、LFOの
値を変化させ新たなエンベロープ、LFOおよび定常処
理パラメータを合成(加算あるいは乗算)して発音サー
ビスパラメータを生成する。なお、発音サービスパラメ
ータは、波形読み出しのピッチ、TVF、TVAそれぞ
れについて独立に演算する。
On the other hand, when the event flag indicates the end of sounding in step S404, the envelope is released in response to this (step S408), and the calculated value n1 of the sounding service parameter in the previous processing is set to n.
After being set to 0 (step S410), an operation reflecting the envelope, LFO, and steady processing parameter is performed to generate a pronunciation service parameter and set to the calculated value n1 (step S412). That is, the values of the envelope and LFO are changed in accordance with the elapse of 10 ms from the previous processing, and the new envelope, LFO, and steady processing parameters are combined (added or multiplied) to generate a sounding service parameter. Note that the tone generation service parameter is independently calculated for each of the waveform reading pitch, TVF, and TVA.

【0058】また、ステップS406でvoiceAc
tiveに「1」がセットされていて、発音中である場
合にも、前回処理の際の発音サービスパラメータの計算
値n1をn0にセット(ステップS410)した後に、
エンベロープ、LFOおよび定常処理パラメータを反映
させた演算を行い発音サービスパラメータを生成して計
算値n1にセットする(ステップS412)。なお、発
音サービスパラメータは、波形読み出しのピッチ、TV
F、TVAそれぞれについて独立に演算する。ところ
で、ステップS402でイベントフラグが発音開始であ
る場合には、制御タスク、音源タスクの使用する発音パ
ラメータエリアを示すポインタを、もう一面の発音パラ
メータエリアを示すものに更新し(ステップS41
4)、voiceActiveに「1」がセットされて
いて、発音中であることを示しているかをチェックする
(ステップS416)。
In step S406, voiceAc
Even when "1" is set in the "live" and the sound is being generated, after setting the calculated value n1 of the sound generation service parameter in the previous process to n0 (step S410),
An operation reflecting the envelope, LFO, and steady processing parameter is performed to generate a pronunciation service parameter and set to the calculated value n1 (step S412). Note that the sounding service parameters include the pitch for reading the waveform, the TV
F and TVA are calculated independently. By the way, in step S402, when the event flag indicates that the sounding is started, the pointers indicating the sounding parameter areas used by the control task and the sound source task are updated to indicate the sounding parameter areas on the other side (step S41).
4), it is checked whether "1" is set in voiceActive, indicating that sound is being generated (step S416).

【0059】ステップS416でvoiceActiv
eに「1」がセットされていて、発音中である場合に
は、現在発音中のボイスを急速にミュートしてから(ス
テップS418)、エンベロープ、LFOおよび定常処
理パラメータを反映させた演算を行い発音開始時の発音
サービスパラメータを生成して計算値n0にセットする
(ステップS420)。なお、発音サービスパラメータ
は、波形読み出しのピッチ、TVF、TVAそれぞれに
ついて独立に演算する。
In step S416, voiceActiv is set.
If e is set to "1" and the voice is being sounded, the currently sounding voice is rapidly muted (step S418), and then the operation in which the envelope, the LFO and the steady processing parameter are reflected is performed. A pronunciation service parameter at the start of pronunciation is generated and set to the calculated value n0 (step S420). Note that the tone generation service parameter is independently calculated for each of the waveform reading pitch, TVF, and TVA.

【0060】一方、ステップS416でvoiceAc
tiveに「1」がセットされておらず、発音中でない
場合には、そのままステップS420へ進み、エンベロ
ープ、LFOおよび定常処理パラメータを反映させた演
算を行い発音開始時の発音サービスパラメータを生成し
て計算値n0にセットする。
On the other hand, in step S416, voiceAc
If "1" is not set in the "live" and the sound is not being generated, the process proceeds to step S420 as it is, and an operation reflecting the envelope, the LFO and the steady processing parameter is performed to generate a sounding service parameter at the start of sounding. Set to the calculated value n0.

【0061】上記のようにして、ステップS420でエ
ンベロープ、LFOおよび定常処理パラメータを反映さ
せた演算を行い発音開始時の発音サービスパラメータを
生成して計算値n0にセットし、それからvoiceA
ctiveに「1」をセットして発音中であることを示
し(ステップS422)た後に、発音開始からの10m
sの時間経過に応じてエンベロープ、LFOおよび定常
処理パラメータを反映させた演算を行い発音サービスパ
ラメータを生成して計算値n1にセットする(ステップ
S412)。なお、発音サービスパラメータは、波形読
み出しのピッチ、TVF、TVAそれぞれについて独立
に演算する。
As described above, in step S420, the operation reflecting the envelope, the LFO, and the steady processing parameter is performed to generate the sounding service parameter at the start of sounding and set it to the calculated value n0, and then voiceA
After setting "1" to cactive to indicate that sound is being generated (step S422), 10 m from the start of sound generation
According to the passage of time of s, an operation reflecting the envelope, the LFO and the steady processing parameter is performed to generate a pronunciation service parameter and set it to the calculated value n1 (step S412). Note that the tone generation service parameter is independently calculated for each of the waveform reading pitch, TVF, and TVA.

【0062】そして、ステップS412でエンベロー
プ、LFOおよび定常処理パラメータを反映させた演算
を行い発音サービスパラメータを生成して計算値n1に
セットすると、必要に応じて補間処理を行う際に用いる
ために、今回の発音サービスパラメータの計算値n1と
前回の発音サービスパラメータの計算値n0との差分d
を求め(ステップS424)、TVAのエンベロープが
最後まで来ているかをチェックする(ステップS42
6)。
Then, in step S412, an operation reflecting the envelope, the LFO, and the steady processing parameter is performed to generate the pronunciation service parameter and set it to the calculated value n1, so that it is used when performing the interpolation processing as necessary. Difference d between the calculated value n1 of the current pronunciation service parameter and the calculated value n0 of the previous pronunciation service parameter
Is calculated (step S424), and it is checked whether the envelope of TVA has reached the end (step S42).
6).

【0063】ステップS426でTVAのエンベロープ
が最後まで来ていない場合には、そのままイベントフラ
グをクリアし(ステップS428)、ステップS426
でTVAのエンベロープが最後まで来ている場合には、
制御タスクにボイス解放情報を返し(ステップS43
0)、voiceActiveに「0」をセットして発
音中でないことを示してから(ステップS432)、イ
ベントフラグをクリアする(ステップS428)。
If the envelope of TVA has not reached the end in step S426, the event flag is cleared as it is (step S428), and step S426.
If the envelope of the TVA is at the end,
The voice release information is returned to the control task (step S43
0), "0" is set in voiceActive to indicate that no sound is being generated (step S432), and then the event flag is cleared (step S428).

【0064】また、ステップS406でvoiceAc
tiveに「1」がセットされておらず発音中でない場
合には、そのままイベントフラグをクリアする(ステッ
プS428)。
Also, in step S406, voiceAc
If "1" is not set in the "live" and no sound is being generated, the event flag is cleared as it is (step S428).

【0065】そして、イベントフラグをクリアすると
(ステップS428)、それから全ボイスの処理が終わ
ったかチェックする(ステップS434)。ステップS
434でのチェックにより全ボイスの処理が終わったな
らば、このフローチャートの処理を終了するが、ステッ
プS434でのチェックにより全ボイスの処理が終わっ
ていないならば、ステップS402へ戻り以降の処理を
繰り返して次のボイスの処理を行う。即ち、全ボイスの
処理が終わるまで、このフローチャートの処理を繰り返
すことになる。
When the event flag is cleared (step S428), it is then checked whether all voices have been processed (step S434). Step S
If the processing of all voices is completed by the check in 434, the processing of this flowchart is ended, but if the processing of all voices is not completed by the check in step S434, return to step S402 and repeat the subsequent processing. To process the next voice. That is, the processing of this flowchart is repeated until the processing of all voices is completed.

【0066】なお、発音サービスパラメータを受けて行
われる波形読み出し、TVF、TVA、パンおよびエフ
ェクトへの送り量の処理は、音源タスクが起動される度
にこれらの処理をまとめて10ms分行い、その後に、
エフェクト処理を10ms分まとめて行うものであり、
図5にはこの処理のフローチャートが示されている。即
ち、図5のフローチャートにおいては、最初のボイスか
らボイス毎に順次処理が行われる。
Note that the waveform reading, TVF, TVA, pan, and feed amount processing to the effect, which is performed in response to the tone generation service parameter, is performed for 10 ms in total each time the sound source task is activated, and thereafter. To
The effect processing is performed collectively for 10 ms.
FIG. 5 shows a flowchart of this process. That is, in the flowchart of FIG. 5, processing is sequentially performed for each voice from the first voice.

【0067】まず、voiceActiveに「1」が
セットされていて、発音中であることを示しているかを
チェックし(ステップS502)、ステップS502で
voiceActiveに「0」がセットされていて、
発音中でない場合には、全ボイスの処理が終わったかを
チェックするステップS514へジャンプして進み、次
のボイスの処理へ移る。つまり、このフローチャートに
おいては、発音されていないボイスの処理は行わないこ
とになる。
First, it is checked whether voiceActive is set to "1" to indicate that sound is being generated (step S502). In step S502, voiceActive is set to "0".
If no sound is being produced, the process jumps to step S514 to check whether all voices have been processed, and proceeds to the next voice. That is, in this flowchart, the processing of the unvoiced voice is not performed.

【0068】一方、ステップS502でvoiceAc
tiveに「1」がセットされていて、発音中である場
合には、発音サービスパラメータの示すピッチで発音す
るように波形読み出しを行う(ステップS504)。こ
こで、発音サービスパラメータは、図4に示すフローチ
ャートのステップS424で求めた差分dを用いて、必
要な精度まで直線補間される。即ち、サンプリング周波
数32KHzとすると、図4に示すフローチャートのス
テップS410あるいはステップS420で求めた計算
値n0にセットされた発音サービスパラメータとステッ
プS424で求めた差分dを用いて、 n0+d×k/320 なる演算を行い補間値とする。なお、320はサンプリ
ング周波数32KHz時の10ms分のサンプル数であ
り、kは320サンプルのうちの何番目のサンプルであ
るかを示しており、最初の処理では‘0’、以後処理の
度に‘1’、‘2’、・・・とされる値である。
On the other hand, in step S502, voiceAc
If "1" is set in the "live" and the sound is being generated, the waveform is read so that the sound is generated at the pitch indicated by the sound generation service parameter (step S504). Here, the pronunciation service parameters are linearly interpolated to the required accuracy using the difference d obtained in step S424 of the flowchart shown in FIG. That is, when the sampling frequency is 32 KHz, n0 + d × k / 320 is obtained by using the pronunciation service parameter set to the calculated value n0 calculated in step S410 or step S420 of the flowchart shown in FIG. 4 and the difference d calculated in step S424. Calculate the interpolation value. Note that 320 is the number of samples for 10 ms when the sampling frequency is 32 KHz, and k indicates the number of the sample among the 320 samples, which is' 0 'in the first processing, and' 1 ',' 2 ',...

【0069】次に、ステップS504の波形読み出しの
出力をTVFによりフィルタリングする(ステップS5
06)。ここで、TVFのカットオフ周波数は発音サー
ビスパラメータによって制御され、発音サービスパラメ
ータは、図4に示すフローチャートのステップS424
で求めた差分dを用いて、必要な精度に直線補間して用
いる。
Next, the output of the waveform read in step S504 is filtered by the TVF (step S5).
06). Here, the cutoff frequency of the TVF is controlled by the sounding service parameter, and the sounding service parameter is set in step S424 of the flowchart shown in FIG.
Using the difference d obtained in the above, linear interpolation is performed to the required accuracy and used.

【0070】さらに、ステップS506のフィルタリン
グされた出力のアンプリチュードを、TVAにより発音
サービスパラメータに従って制御する(ステップS50
8)。ここで、発音サービスパラメータは、図4に示す
フローチャートのステップS424で求めた差分dを用
いて、必要な精度に直線補間して用いる。
Further, the amplitude of the filtered output in step S506 is controlled by the TVA in accordance with the tone generation service parameter (step S50).
8). Here, the pronunciation service parameters are used by linearly interpolating to the required accuracy using the difference d obtained in step S424 of the flowchart shown in FIG.

【0071】さらに次に、発音パラメータによって、パ
ンおよびエフェクトへの送り量を制御するとともに図3
(b)に示される他のボイスの楽音信号との加算混合処
理を行い(ステップS510)、その後に、10ms分
の処理を終えたかチェックされ(ステップS512)、
10ms分の処理を終わっていなければ、ステップS5
04へ戻って次のサンプルに関してステップS504以
降の処理を行う。即ち、ステップS504乃至ステップ
S510の処理は、サンプル毎の処理であり、10ms
分のサンプル個数の処理が行われる。
Next, the amount of feed to the pan and the effect is controlled by the sound generation parameter, and as shown in FIG.
The addition and mixing processing with the tone signals of other voices shown in (b) is performed (step S510), and then it is checked whether the processing for 10 ms has been completed (step S512),
If processing for 10 ms has not been completed, step S5
Returning to step 04, the processing from step S504 is performed on the next sample. That is, the processing of steps S504 to S510 is processing for each sample and is 10 ms.
The processing for the number of samples per minute is performed.

【0072】一方、10ms分の処理を終わったなら
ば、全ボイスの処理が終わったかチェックする(ステッ
プS514)。このチェックにより、全ボイスの処理が
終わったならば、エフェクトの処理を10ms分まとめ
て行い(ステップS516)、上記した処理の行われた
10ms分の楽音信号を記憶したウェーブバッファを出
力タスクに渡し(ステップS518)、このフローチャ
ートの処理を終了する。ここで、上記した処理の行われ
た楽音信号を記憶したウェーブバッファを出力タスクに
渡すと同時に、新しいウェーブバッファを受け取り、新
しいウェーブバッファは、次回のステップS502乃至
ステップS516の処理に用いる。
On the other hand, when the processing for 10 ms is completed, it is checked whether the processing for all voices is completed (step S514). By this check, when the processing of all voices is completed, the effect processing is collectively performed for 10 ms (step S516), and the wave buffer storing the 10 ms of musical tone signals subjected to the above processing is passed to the output task. (Step S518), the process of this flowchart ends. Here, the wave buffer storing the tone signal subjected to the above-described processing is passed to the output task, and at the same time, a new wave buffer is received, and the new wave buffer is used for the processing of the next steps S502 to S516.

【0073】一方、ボイスの処理が終わっていないなら
ば、ステップS502へ戻り以降の処理を繰り返して次
のボイスの処理を行う。即ち、全ボイスの処理が終わる
まで、このフローチャートの処理を繰り返すことにな
る。
On the other hand, if the processing of the voice has not been completed, the process returns to step S502 and the subsequent processing is repeated to process the next voice. That is, the processing of this flowchart is repeated until the processing of all voices is completed.

【0074】(3)出力タスク 出力タスクは、音源タスクより受け取ったウェーブバッ
ファの記憶内容を、オーディオデータ出力デバイス(図
1に示すコンピュータにおいては、サウンドカード22
である。)にDMA転送する。このDMA転送は、オー
ディオデータ出力デバイスからの割り込みによって開始
される。
(3) Output Task The output task receives the contents stored in the wave buffer received from the sound source task from the audio data output device (the sound card 22 in the computer shown in FIG. 1).
It is. ) To perform a DMA transfer. This DMA transfer is started by an interrupt from the audio data output device.

【0075】ここで、サウンドカード22などのオーデ
ィオデータ出力デバイス(以下、「出力デバイス」と称
す。)は、出力するオーディオデータを一時記憶するた
めのバッファを内蔵しており、サンプリング周期毎に一
時記憶しているオーディオデータを1サンプリング分づ
つ出力する。そして、内蔵バッファに残っているオーデ
ィオデータが所定量より少なくなると出力タスクに割り
込みをかけ、この割り込みに応じて、出力タスクは出力
デバイスが必要とする所定サンプル分のオーディオデー
タを出力デバイスにDMA転送するものである。
Here, the audio data output device such as the sound card 22 (hereinafter referred to as “output device”) has a built-in buffer for temporarily storing the output audio data, and the buffer is temporarily provided at each sampling cycle. The stored audio data is output for each sampling. When the amount of audio data remaining in the internal buffer becomes smaller than a predetermined amount, the output task is interrupted, and in response to the interrupt, the output task DMA-transfers audio data of a predetermined sample required by the output device to the output device. Is what you do.

【0076】なお、上記した出力タスクへの割り込み
は、通常、約10ms程度の周期でかかる。
Incidentally, the interruption to the above-mentioned output task usually takes a cycle of about 10 ms.

【0077】即ち、図1に示すコンピュータにおいて
は、出力タスクは、サウンドカード22からの割り込み
と音源タスクからのウェーブバッファを受け取るときに
起動される。
That is, in the computer shown in FIG. 1, the output task is activated when the interrupt from the sound card 22 and the wave buffer from the sound source task are received.

【0078】そして、出力タスクは、音源タスクから1
0ms分のウェーブバッファを受け取ると、空いている
ウェーブバッファを音源タスクに返す。ウェーブバッフ
ァは4本以上あり、常に1つは出力タスクが出力デバイ
スに出力を行い、1つは音源タスクが処理に用い、残り
は空いているというローテーションを繰り返すようにな
されている。
Then, the output task is 1 from the sound source task.
When a wave buffer for 0 ms is received, an empty wave buffer is returned to the sound source task. There are four or more wave buffers, and one rotation is always performed by an output task for output to an output device, one is used by a sound source task for processing, and the rest are free rotations.

【0079】以上において説明したように、本発明によ
る楽音処理方法においては、エンベロープやLFOの演
算はサンプリング周波数よりも長い時間単位で定期的に
行い、その演算結果を用いる際には、所望の精度となる
ように当該演算結果を補間するようにしている。
As described above, in the tone processing method according to the present invention, the envelope and LFO calculations are periodically performed in a unit of time longer than the sampling frequency, and when the calculation result is used, the desired accuracy is obtained. The calculation result is interpolated so that

【0080】これによって、演算に複雑な条件判断を要
し、比較的演算ステップ数の多いエンベロープやLFO
の演算を軽減することが可能となる。
As a result, a complicated condition judgment is required for calculation, and an envelope or LFO having a relatively large number of calculation steps.
It is possible to reduce the calculation of.

【0081】具体的には、上記した処理においては、エ
ンベロープ、LFOおよび操作子などによって与えられ
るような情報を反映する演算は、音源タスクの処理中に
一度だけしか行われていない。つまり、音源タスクが1
0msに一度起動されるものとすれば、これらの演算は
10msに一度しか行われない。そして、こうした演算
結果を用いる箇所(波形読み出しピッチ、TVF、TV
Aなど)では、必要に応じて当該演算結果を補間して用
いている。
Specifically, in the above processing, the calculation reflecting the information given by the envelope, the LFO and the operator is performed only once during the processing of the sound source task. In other words, the sound source task is 1
Given that it is activated once every 0 ms, these operations are only done once every 10 ms. Then, a part using such a calculation result (waveform reading pitch, TVF, TV
In (A etc.), the calculation result is interpolated and used as necessary.

【0082】また、補間は、エンベロープ、LFO、操
作子などによって与えられる情報を合成した後に、その
合成値に対して行っているので、エンベロープ、LF
O、操作子などの各情報毎に補間を行う場合に比べて処
理量が低減されている。
Since the interpolation is performed on the combined value after combining the information given by the envelope, LFO, operator, etc., the envelope, LF
The amount of processing is reduced as compared with the case where interpolation is performed for each information such as O and operators.

【0083】また、本発明による楽音処理方法において
は、波形読み出し、補間、エンベロープ、エフェクトな
どそれぞれの演算を、サンプリング周波数間隔で処理す
るのではなくて、処理毎にまとめて長い時間スパンで処
理を行うようにしている。
Further, in the tone processing method according to the present invention, calculations such as waveform reading, interpolation, envelope, and effect are not processed at sampling frequency intervals, but are collectively processed in a long time span. I am trying to do it.

【0084】具体的には、10ms毎に波形を読み出し
て、10ms分まとめて処理するようにしている。この
ときに、他の処理に影響しないように、なるべく短時間
で処理を完了させるようにしている。
Specifically, the waveform is read out every 10 ms and processed for 10 ms collectively. At this time, the processing is completed in the shortest possible time so as not to affect other processing.

【0085】このように、ある一つの処理をまとめた時
間で行わせることによって、処理から処理へ移るための
オーバーヘッドを軽減させることができるようになる。
As described above, by performing a certain process in a lumped time, it becomes possible to reduce the overhead for shifting from one process to another.

【0086】また、処理自体を細かく分けることによ
り、処理ルーチンを小さく作り、それをループ処理する
ことによって、当該処理ルーチンがCPU上のキャッシ
ュメモリにのりやすくなり、高速に処理される可能性が
高くなるものである。
Further, by dividing the processing itself into smaller ones, the processing routines are made smaller, and by looping the processing routines, the processing routines easily fit in the cache memory on the CPU, and there is a high possibility that they will be processed at high speed. It will be.

【0087】さらに、処理毎に優先度をつけて、重要な
処理は他の処理に妨げられることなく、途切れることの
無く処理を行うようにしている。具体的には、出力タス
クの優先度が最も高く、次に音源タスクの優先度が高
く、制御タスクの優先度が最も低くなされており、出力
タスクが他の処理に妨げられることが無いようにしてい
る。このため、出力タスクにより発音中の楽音が、他の
処理により途切れることはない。
Furthermore, priority is given to each process so that important processes are not interrupted by other processes and are executed without interruption. Specifically, the output task has the highest priority, the sound source task has the next highest priority, and the control task has the lowest priority, so that the output task is not blocked by other processing. ing. Therefore, the musical tone being generated by the output task is not interrupted by other processing.

【0088】さらに、本発明による楽音処理方法におい
ては、発音しないボイスの処理を行わないようにした。
Further, in the tone processing method according to the present invention, the processing of voices which do not sound is not performed.

【0089】これによって、発音数が少ない場合はCP
U12の処理を軽減できる。即ち、プロセッサ資源を他
のプログラムに解放することができるようになる。
As a result, when the number of pronunciations is small, CP
The processing of U12 can be reduced. That is, the processor resources can be released to other programs.

【0090】さらに、本発明による楽音処理方法におい
ては、音源タスクとそれを制御する制御タスクとの通信
をメモリ空間を共有することで実現するようにしてい
る。
Further, in the tone processing method according to the present invention, the communication between the tone source task and the control task for controlling the tone source task is realized by sharing the memory space.

【0091】即ち、図6に示すように、音源タスクと制
御タスクとが共有するメモリ空間は2面(図6における
メモリ空間Aおよびメモリ空間B)設けられていて、そ
れらを交互に用いるようになされている。
That is, as shown in FIG. 6, the memory space shared by the sound source task and the control task is provided in two planes (memory space A and memory space B in FIG. 6), and these are used alternately. Has been done.

【0092】具体的には、制御タスク側は発音に必要な
パラメータをメモリ空間Aの発音パラメータエリアに用
意し、発音パラメータが用意できた旨をフラグを立てる
ことによって音源タスク側に知らせる。そして、音源タ
スク側においては、メモリ空間Aの発音パラメータエリ
アを取り込むと、もう一面(メモリ空間B)の発音パラ
メータエリアを制御タスク側に渡す。制御タスク側は、
新たに同じボイスで発音する場合には、新しく渡された
メモリ空間Bの発音パラメータエリアに対してパラメー
タを用意する。
Specifically, the control task side prepares parameters necessary for sound generation in the sound generation parameter area of the memory space A, and informs the sound source task side by setting a flag that the sound generation parameters have been prepared. When the sound source task side captures the sound generation parameter area in the memory space A, the sound generation parameter area on the other side (memory space B) is transferred to the control task side. The control task side
If a new voice is to be generated with the same voice, parameters are prepared for the newly provided voice parameter area of the memory space B.

【0093】これによって、音源タスク側が発音中で発
音パラメータを使用していても、制御タスク側はそれを
気にすることなく新しい発音パラメータを設定すること
ができる。
As a result, even if the sound source task side is using the sounding parameter while sounding, the control task side can set a new sounding parameter without being concerned about it.

【0094】なお、2面のメモリ空間の管理方法として
1つのポインタのみを設けるようにした場合には、制御
タスクはこのポインタの指し示す片方のメモリ空間に新
たなパラメータを記憶するとともに、音源タスクは他方
のメモリ空間に記憶されたパラメータを参照する。ある
いは、制御タスクがパラメータを書き込むメモリ空間を
指し示すポインタと、音源タスクがパラメータを参照す
るメモリ空間を指し示すポインタとを別々に設けるよう
にした場合には、これらのポインタの指し示すメモリ空
間を互いに逆とすればよい。
When only one pointer is provided as a method for managing the two-sided memory space, the control task stores a new parameter in one memory space pointed to by this pointer, and the sound source task Refer to the parameter stored in the other memory space. Alternatively, if a pointer pointing to a memory space in which the control task writes parameters and a pointer pointing to a memory space in which the tone generator task refers to parameters are provided separately, the memory spaces pointed to by these pointers are set to be opposite to each other. do it.

【0095】また、本発明による楽音処理方法において
は、CPU12の負荷の具合をみて、発音可能ボイス数
およびエフェクトの有無またはサンプリング周波数を決
定するようにしてもよい。これにより、CPU12の能
力に応じた楽音生成処理のための構成を構築できる。
Further, in the tone processing method according to the present invention, the number of soundable voices, the presence / absence of effects, or the sampling frequency may be determined depending on the load on the CPU 12. As a result, it is possible to construct a configuration for musical sound generation processing according to the capability of the CPU 12.

【0096】即ち、本発明の楽音生成処理方法によるプ
ログラムの起動時や、あるいは本発明の楽音生成処理方
法によるプログラムを実行している間の使用者により指
定される任意のタイミングで、適当な波形を所定のボイ
ス数発音してみて、音源タスクのCPU消費率を計測す
ることによって、発音可能ボイス数およびエフェクトの
有無またはサンプリング周波数を決定する。
That is, at the time of starting the program according to the tone generation processing method of the present invention, or at any timing specified by the user while the program according to the tone generation processing method of the present invention is being executed, an appropriate waveform is generated. By pronouncing a predetermined number of voices and measuring the CPU consumption rate of the sound source task to determine the number of voiceable voices and the presence or absence of effects or the sampling frequency.

【0097】なお、音源タスクのCPU消費率の計測に
は、内部タイマを用いればよい。この内部タイマは、ハ
ードウェアタイマからの割り込みによって、定期的(例
えば、1ms毎)にインクリメントされるだけのカウン
タである。
An internal timer may be used to measure the CPU consumption rate of the sound source task. This internal timer is a counter that is only incremented periodically (for example, every 1 ms) by an interrupt from the hardware timer.

【0098】音源タスクでは、タスクの開始時と終了時
に、即ち、発音処理の前と発音処理の終了時に内部タイ
マの値を読み出してその差を求めることによって、音源
タスクによる発音処理に消費された時間を算出できる。
ここで、音源タスクは10ms毎に呼ばれるので、その
うちどれくらいの時間を音源タスクの処理が消費してい
るかが、音源タスクのCPU消費率となる。
In the sound source task, at the start and end of the task, that is, before the sounding process and at the end of the sounding process, the value of the internal timer is read and the difference between them is obtained, so that it is consumed in the sounding process by the sound source task. Time can be calculated.
Since the sound source task is called every 10 ms, the CPU consumption rate of the sound source task is determined by how much time the processing of the sound source task consumes.

【0099】音源タスクのCPU消費率をどのくらい許
すか予め決めておいたり、あるいはユーザーが任意に設
定できるようにしておく。実際に計測されたCPU消費
率と許容されるCPU消費率との比較結果に応じて、発
音可能ボイス数およびエフェクトの有無またはサンプリ
ング周波数を決定することになる。
It is determined in advance how much the CPU consumption rate of the sound source task is allowed, or the user can arbitrarily set it. Depending on the result of comparison between the actually measured CPU consumption rate and the permissible CPU consumption rate, the number of soundable voices and the presence or absence of effects or the sampling frequency are determined.

【0100】即ち、実際のCPU消費率が許容されるC
PU消費率よりも大きかったら、例えば、発音可能ボイ
ス数を計測時の所定数よりも減らし、実際のCPU消費
率が許容されるCPU消費率と同じになるようにボイス
数を調整する。実際のCPU消費率が許容されるCPU
消費率よりも小さい場合は、例えば、発音可能ボイス数
を計測時の所定数よりも増やし、実際のCPU消費率が
許容されるCPU消費率と同じになるようにボイス数を
調整する。
That is, the actual CPU consumption rate is C
If it is larger than the PU consumption rate, for example, the number of soundable voices is reduced below a predetermined number at the time of measurement, and the number of voices is adjusted so that the actual CPU consumption rate becomes equal to the allowable CPU consumption rate. CPU with actual CPU consumption rate allowed
If it is smaller than the consumption rate, for example, the number of soundable voices is increased more than a predetermined number at the time of measurement, and the number of voices is adjusted so that the actual CPU consumption rate becomes equal to the allowable CPU consumption rate.

【0101】ここで、発音可能ボイス数、エフェクトの
有無、サンプリング周波数を変更することにより、CP
U消費率がどの程度変化するかは予め求めることができ
るので、実際のCPU消費率と許容されるCPU消費率
とから、これらの発音態様を一度に決めることも可能で
あるが、発音態様を変化させながら発音を繰り返し、実
際のCPU消費率と許容されるCPU消費率とが一致す
るようにすることも可能である。
By changing the number of soundable voices, presence / absence of effects, and sampling frequency, the CP
Since it is possible to obtain in advance how much the U consumption rate changes, it is possible to determine these sounding modes at once from the actual CPU consumption rate and the allowable CPU consumption rate. It is also possible to repeat the sound generation while changing it so that the actual CPU consumption rate and the allowable CPU consumption rate match.

【0102】また、このとき、サウンドの質(サンプリ
ング周波数やエフェクトの有無)に重点をおくのか、ボ
イス数に重点をおくのかを、使用者が選択可能とするこ
とができる。この場合には、重点をおいた項目に関して
は固定とし、重点がおかれない項目に関してCPU消費
率に応じて変更したり、あるいは、重点をおいた項目に
関してはとりあえず固定とし、重点がおかれない項目を
CPU消費率に応じて許容できる範囲内で変更してみ
て、それでも実際のCPU消費率が許容できるCPU消
費率を越える場合には、重点をおいた項目に関しても変
更するようにすることができる。
At this time, the user can select whether the sound quality (sampling frequency or presence / absence of effect) is emphasized or the number of voices is emphasized. In this case, focused items are fixed, items that are not emphasized are changed according to the CPU consumption rate, or items that are emphasized are fixed for the time being and are not emphasized. Change the item within the allowable range according to the CPU consumption rate, and if the actual CPU consumption rate still exceeds the allowable CPU consumption rate, change the focused item as well. it can.

【0103】また、実際に計測されたCPU消費率をデ
ィスプレイに表示し、使用者に知らせるようにしてもよ
い。
The CPU consumption rate actually measured may be displayed on the display to inform the user.

【0104】なお、可能ボイス数の変更の処理は、以下
のようにして行えばよい。即ち、制御タスクにおいて、
各ボイス毎にそのボイスの使用を許可するか許可しない
かを示す許可情報を管理するようにする。そして、制御
タスクは、MIDI情報としてノートオンを受け取り、
そのノートオンをアサインするボイスを選択するとき
に、許可情報を参照して使用が許可されているボイスの
なかから選択するようにする。
The process of changing the number of possible voices may be performed as follows. That is, in the control task,
For each voice, the permission information indicating whether the use of the voice is permitted or not is managed. Then, the control task receives the note-on as MIDI information,
When selecting the voice to which the note-on is assigned, refer to the permission information and select from the voices permitted to use.

【0105】このため、全てのボイスの使用が許可され
ていれば、最大の発音数となる。発音可能なボイス数を
減らす場合には、許可情報を書き換え、使用するボイス
数を減らすようにする。
Therefore, if the use of all voices is permitted, the maximum number of sounds can be produced. To reduce the number of voices that can be pronounced, rewrite the permission information to reduce the number of voices used.

【0106】従って、使用が許可されていないボイスは
発音せず、音源タスクでは発音していないボイスに関し
ては処理が行われないので、発音可能なボイス数を減ら
すことにより、CPU消費率を下げることができる。
Therefore, since the voices which are not permitted to be used are not pronounced and the voice source task does not process the voices which are not pronounced, the CPU consumption rate is lowered by reducing the number of voices which can be pronounced. You can

【0107】このように、アサイン処理を行う制御タス
クにおいて、ボイスの使用を許可するか許可しないかを
示す許可情報を管理するようにし、この許可情報を書き
換えるだけという簡単な処理で、発音可能ボイス数を調
整することができる。
As described above, in the control task for performing the assigning process, the permission information indicating whether or not the use of the voice is permitted is managed, and the voice-producible voice is simply processed by rewriting the permission information. You can adjust the number.

【0108】また、サンプリング周波数は、出力デバイ
ス(図1のコンピュータにおけるサウンドカード)のオ
ーディオデータの出力周期と、音源タスクの1回の処理
時の処理サンプル数を調整することによって変化するこ
とができる。
The sampling frequency can be changed by adjusting the output cycle of audio data of the output device (sound card in the computer of FIG. 1) and the number of processing samples in one processing of the sound source task. .

【0109】さらに、エフェクト付加の有無は、音源処
理の図5のステップS516の処理を行うかあるいは行
わないかを、切り換えにより選択できるようにすること
により実現できる。
Further, the presence / absence of the effect addition can be realized by making it possible to select whether or not to perform the processing of step S516 of FIG. 5 of the sound source processing by switching.

【0110】また、上記したように、本発明の楽音生成
処理方法によるプログラムの起動時や、あるいは本発明
の楽音生成処理方法によるプログラムを実行している間
の使用者により指定される任意のタイミングで、適当な
波形を所定のボイス数発音してみて、音源タスクのCP
U消費率を計測することによって、発音可能ボイス数お
よびエフェクトの有無またはサンプリング周波数を決定
するようにした場合には、本発明の楽音生成処理方法に
よるプログラムの動作時にはそれに見合った処理負荷量
(ボイス数、サンプリング周波数、エフェクトの有無)
で動き続ける。即ち、処理負荷量は、再度設定されるま
で変更されずに一定である。
As described above, any timing designated by the user at the time of starting the program according to the tone generation processing method of the present invention or during execution of the program according to the tone generation processing method of the present invention. Then, sound a certain number of voices in an appropriate waveform, and use the CP of the sound source task.
If the number of voiceable voices and the presence / absence of effects or the sampling frequency are determined by measuring the U consumption rate, the processing load amount (voice volume Number, sampling frequency, presence of effects)
Keep moving at. That is, the processing load amount is constant without being changed until it is set again.

【0111】ところが、実際にコンピュータを使用する
場合には、本発明の楽音生成処理方法によるプログラム
以外の他のプログラムが同時に並行して動かされること
がある。この場合には、各プログラムは各タイムスロッ
トに割り当てられ、タイムシェアリングで処理されるこ
とになるので、本発明の楽音生成処理方法によるプログ
ラムの各タスクの実行中に、他のプログラムが割り込ん
で実行されることがある。
However, when a computer is actually used, programs other than the program according to the musical sound generation processing method of the present invention may be simultaneously run in parallel. In this case, since each program is assigned to each time slot and processed by time sharing, another program interrupts during execution of each task of the program according to the musical sound generation processing method of the present invention. May be executed.

【0112】例えば、音源タスクの1回にかかる処理時
間が、他のプログラムの動作状態によって変動すること
となる。従って、上記したように、本発明の楽音生成処
理方法によるプログラムの処理負荷量を一定とすると、
他のプログラムによるCPUの処理負荷量の変動には追
従できなくなってしまう。このため、場合によっては音
源タスクの処理が間に合わずに音声が途切れたり、CP
U12の処理能力に余裕ができてもそれをうまく活かす
ことができなくなってしまう。
For example, the processing time required for one sound source task varies depending on the operating states of other programs. Therefore, as described above, if the processing load of the program according to the musical sound generation processing method of the present invention is constant,
It becomes impossible to follow the variation of the processing load of the CPU due to other programs. Therefore, in some cases, the sound source task may not be processed in time and the sound may be interrupted, or the CP may be interrupted.
Even if the processing capacity of U12 can be afforded, it will not be able to be utilized effectively.

【0113】こうした欠点を解消するためには、常に音
源タスクのCPU消費率を監視して、使用者の設定した
音源タスクのCPU消費率に追従するようにダイナミッ
クに発音可能ボイス数の増減を行うようにすればよい。
In order to eliminate such a drawback, the CPU consumption rate of the sound source task is constantly monitored, and the number of voice-producible voices is dynamically increased or decreased so as to follow the CPU consumption rate of the sound source task set by the user. You can do it like this.

【0114】具体的には、音源タスクが起動される度
に、音源タスクの開始時と終了時との内部タイマの値の
差からCPU消費率を計測し、これに応じてその都度発
音可能ボイス数およびエフェクトの有無またはサンプリ
ング周波数を決定する。
Specifically, each time the sound source task is activated, the CPU consumption rate is measured from the difference in the values of the internal timers at the start and end of the sound source task, and the voice-producible voice is generated accordingly. Determine the number and presence of effects or sampling frequency.

【0115】なお、このようにダイナミックに発音可能
ボイス数の増減を行う場合には、発音中に発音可能なボ
イス数が変動することになるが、この場合には次に示す
ような処理を行う。
When dynamically increasing or decreasing the number of voices that can be sounded, the number of voices that can be sounded changes during sound generation. In this case, the following processing is performed. .

【0116】即ち、ボイス数を減らす場合には、現在使
用が許可されているボイスの中で発音していないボイス
があれば、減らす分のボイスの許可情報を使用不許可に
する。もし、現在使用が許可されているボイスの中で発
音していないボイスがなかったり、あるいは発音してい
ないボイスを全て使用不許可としても、まだボイス数を
減らす必要がある場合には、発音しているボイスの中か
ら減らす分だけのボイスを選択し、このボイスを急速に
ミュートし、以後の使用を不許可とする。なお、ボイス
を選択するには、発音中のレベルが小さいボイス、最も
過去に発音開始されたボイスなど、アサイン処理と同様
の選択基準で選択することができる。
That is, in the case of reducing the number of voices, if there is a voice which is not sounding among the voices which are currently permitted to be used, the use permission information of the reduced voices is prohibited. If there are no voices that have not been pronounced among the voices that are currently allowed to be used, or if all voices that have not been pronounced are not allowed to be used and there is still a need to reduce the number of voices, Select the voices you want to reduce from the existing voices, mute this voice rapidly, and disallow further use. To select a voice, a voice with a low sounding level, a voice that started sounding the earliest, or the like can be selected according to the same selection criteria as in the assigning process.

【0117】あるいは、上記とは別の方法とし、発音し
ているボイスを急速にミュートする代わりに、そのボイ
スがノートオフによって自動的に消音されるのを待っ
て、使用不許可とするようにしてもよい。
Alternatively, instead of muting the voice that is sounding rapidly, instead of muting the voice that is sounding, wait until the voice is automatically muted by note-off, and disallow the use. May be.

【0118】一方、ボイス数を増やす場合には、使用が
許可されていないボイスの中から増やす分だけのボイス
を使用許可するようにすればよい。
On the other hand, when the number of voices is increased, it is sufficient to permit the use of only the increased number of voices that are not permitted to be used.

【0119】[0119]

【発明の効果】以上において説明したように、本発明に
よる楽音生成処理方法は、汎用のコンピュータ上で楽音
をリアルタイムで生成する際に、汎用のコンピュータに
適した処理を行うように構成したので、従来より指摘さ
れていた種々の問題点の解決を図ることができるととも
に、汎用のコンピュータ上で楽音をリアルタイムで効率
的に生成することができるという優れた効果を奏する。
As described above, since the tone generation processing method according to the present invention is configured to perform a process suitable for a general-purpose computer when a tone is generated in real time on the general-purpose computer, It is possible to solve various problems pointed out in the past, and it is possible to effectively generate a musical sound in real time on a general-purpose computer.

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

【図1】本発明の楽音生成処理方法によるプログラムを
搭載可能な、典型的な汎用のコンピュータのハードウェ
ア構成を示すブロック図である。
FIG. 1 is a block diagram showing a hardware configuration of a typical general-purpose computer in which a program according to the musical sound generation processing method of the present invention can be installed.

【図2】本発明の楽音生成処理方法によるプログラムの
全体構成を示す概念図である。
FIG. 2 is a conceptual diagram showing the overall structure of a program according to the musical sound generation processing method of the present invention.

【図3】音源タスクにおける処理を示す概念図であり、
(a)は1ボイス分の処理を示し、(b)はボイスおよ
びエフェクトのミキシングを示す。
FIG. 3 is a conceptual diagram showing processing in a sound source task,
(A) shows processing for one voice, and (b) shows mixing of voices and effects.

【図4】音源タスクにおける発音サービスパラメータの
生成の処理を示すフローチャートである。
FIG. 4 is a flowchart showing a process of generating a pronunciation service parameter in a sound source task.

【図5】音源タスクにおける発音サービスパラメータを
受けて行われる波形読み出し、TVF、TVA、パンお
よびエフェクトへの送り量の処理を示すフローチャート
である。
FIG. 5 is a flowchart showing a waveform reading process, TVF, TVA, pan, and feed amount processing to an effect, which is performed by receiving a sounding service parameter in a sound source task.

【図6】音源タスクと制御タスクとが共有するメモリ空
間が2面設けられていて、それを交互に使用する状態を
示した説明図である。
FIG. 6 is an explanatory diagram showing a state in which two memory spaces shared by a sound source task and a control task are provided and they are used alternately.

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

10 バス 12 CPU 14 メモリ 16 ディスクコントローラ 18 ビデオカード 20 I/Oカード 22 サウンドカード 24 ハードディスク 26 ディスプレイ装置 28 キーボード 30 マウス 10 bus 12 CPU 14 memory 16 disk controller 18 video card 20 I / O card 22 sound card 24 hard disk 26 display device 28 keyboard 30 mouse

Claims (11)

【特許請求の範囲】[Claims] 【請求項1】 サンプリング周期よりも長い所定時間毎
に、前記所定時間に含まれる複数のサンプリング時点の
楽音のデータを一度にまとめて生成し、時間的な順序付
けをして記憶する処理を行う楽音データ生成処理と、 前記楽音データ生成処理により記憶した各サンプリング
時点の楽音のデータを、サンプリング周期毎に前記時間
的な順序付けに従って順次読み出して出力する処理を行
う楽音データ出力処理とを行うことを特徴とする楽音生
成処理方法。
1. A musical tone that performs a process of collectively generating data of musical tones at a plurality of sampling points included in the predetermined time at a predetermined time longer than a sampling cycle, and temporally ordering and storing the data. A data generation process and a tone data output process for sequentially reading and outputting the tone data at each sampling point stored by the tone data generation process in accordance with the temporal ordering for each sampling cycle. Music tone generation processing method.
【請求項2】 前記楽音データ生成処理は、楽音のデー
タを直接に扱う処理と、前記楽音のデータを直接に扱う
処理の処理態様を制御する制御量を求める処理とを有
し、 前記制御量を求める処理は、前記所定時間毎に1回だけ
演算することにより前記所定時間後の次回の制御量を求
める第1の処理と、前記第1の処理により演算された前
回の制御量と次回の制御量との間を補間して各サンプリ
ング時点の制御量を求める第2の処理とを有し、 前記楽音のデータを直接に扱う処理は、前記第2の処理
により求められた各サンプリング時点の制御量に基づい
て各サンプリング時点の楽音のデータを処理することを
特徴とする請求項1記載の楽音生成処理方法。
2. The musical tone data generation process includes a process of directly handling musical tone data and a process of obtaining a control amount for controlling a processing mode of a process of directly handling the musical tone data. The process for obtaining is the first process for calculating the next control amount after the predetermined time by calculating only once for each predetermined time, and the previous control amount and the next control amount calculated by the first process. A second process of interpolating between the control amount and the control amount at each sampling time point, and the process of directly handling the tone data is performed at each sampling time point obtained by the second process. 2. The musical tone generation processing method according to claim 1, wherein the musical tone data at each sampling time is processed based on the control amount.
【請求項3】 前記第1の処理は、複数種類の制御量の
次回の値を個別に求め、前記個別に求めた値を合成して
前記次回の制御量を求め、 前記第2の処理は、前記第1の処理により合成された前
回の制御量と次回の制御量との間を補間することを特徴
とする請求項2記載の楽音生成処理方法。
3. The first process individually obtains the next value of a plurality of types of control amounts, combines the individually obtained values to obtain the next control amount, and the second process is 3. The musical sound generation processing method according to claim 2, further comprising: interpolating between a previous control amount and a next control amount synthesized by the first process.
【請求項4】 処理手段において予め設定された所定の
態様で楽音を生成する処理と、 前記楽音を生成する処理を行った場合の前記処理手段の
負荷量を検出する処理と、 前記検出する処理により検出された負荷量に基づいて楽
音の生成態様を決定する処理とを行うことを特徴とする
楽音生成処理方法。
4. A process of generating a musical sound in a predetermined mode set in advance in the processing means, a process of detecting a load amount of the processing means when the process of generating the musical sound is performed, and the detecting process. And a process for determining a musical tone generation mode on the basis of the load amount detected by the musical tone generation processing method.
【請求項5】 前記楽音の生成態様を決定する処理は、
前記処理手段による前記楽音を生成する処理の許容負荷
量と前記検出する処理により検出された前記処理手段の
負荷量とに基づいて、楽音の生成態様を決定することを
特徴とする請求項4記載の楽音生成処理方法。
5. The process of determining the musical tone generation mode,
5. The musical tone generation mode is determined based on an allowable load amount of a process of generating the musical sound by the processing unit and a load amount of the processing unit detected by the detecting process. Music tone generation processing method.
【請求項6】 処理手段において所定の態様で楽音を生
成する処理と、 前記楽音を生成する処理を行った場合の前記処理手段の
負荷量を自動的に刻々と検出する処理と、 前記検出する処理により検出された負荷量に基づいて楽
音の生成態様を自動的に刻々と変化させる処理とを行う
ことを特徴とする楽音生成処理方法。
6. A process of generating a musical sound in a predetermined mode in a processing means, a process of automatically detecting the load amount of the processing means when the process of generating the musical sound is performed, and the detection. And a process of automatically changing a musical tone generation mode on the basis of a load amount detected by the process.
【請求項7】 前記検出する処理は、前記楽音を生成す
る処理に費やされる時間を計測し、前記計測した時間と
前記楽音を生成する処理の実行時間間隔とに基づいて、
前記負荷量を検出することを特徴とする請求項4、5ま
たは6のいずれか1項に記載の楽音生成処理方法。
7. The process for detecting measures the time spent for the process of generating the musical sound, and based on the measured time and the execution time interval of the process of generating the musical sound,
7. The tone generation processing method according to claim 4, wherein the load amount is detected.
【請求項8】 前記楽音の生成態様を決定する処理によ
り決定される前記楽音の生成態様は、楽音の同時発音
数、効果付与手段の効果付与態様あるいはサンプリング
周波数の少なくともいずれか1つであることを特徴とす
る請求項4、5または6のいずれか1項に記載の楽音生
成処理方法。
8. The musical tone generation mode determined by the musical tone generation mode determination process is at least one of the number of musical tones generated simultaneously, the effect imparting mode of the effect imparting means, and the sampling frequency. 7. The musical sound generation processing method according to claim 4, 5, or 6.
【請求項9】 前記楽音の生成態様を決定する処理によ
り決定される前記楽音の生成態様は、楽音の同時発音
数、効果付与手段の効果付与態様あるいはサンプリング
周波数の少なくともいずれか2つであり、使用者の指示
により前記楽音の生成態様のいずれかを優先させ、前記
楽音の生成態様を決定する処理は、優先されない前記楽
音の生成態様を前記検出する処理により検出された前記
負荷量に基づいて決定することを特徴とする請求項4、
5または6のいずれか1項に記載の楽音生成処理方法。
9. The musical tone generation mode determined by the musical tone generation mode determination process is at least two of the number of simultaneous musical tone generation, the effect imparting mode of the effect imparting means, and the sampling frequency. The process of prioritizing any of the musical tone generation modes in accordance with a user's instruction and determining the musical tone generation mode is based on the load amount detected by the process of detecting the non-prioritized musical tone generation mode. 5. The method according to claim 4, wherein
7. The musical sound generation processing method according to any one of 5 and 6.
【請求項10】 外部からの楽音制御指示の受け取りに
応じて楽音制御情報を供給する処理と、 前記供給する処理により新たな楽音制御情報が供給され
た場合に、前記供給する処理により前回供給された楽音
制御情報を保持したまま新たに供給された楽音制御情報
を保持する処理と、 前記供給する処理とは独立したタイミングで、所定時間
毎に楽音制御情報に基づいて楽音を生成する処理であっ
て、 前記保持する処理に対し、前回の生成する処理から今回
の生成する処理までの間に前記供給する処理により新た
な楽音制御情報が供給された場合には、前記保持する処
理により保持されている新たな楽音制御情報に基づいて
楽音を生成するとともに、 前記保持する処理に対し、前回の生成する処理から今回
の生成する処理までの間に前記供給する処理により新た
な楽音制御情報が供給されなかった場合には、前記保持
する処理により保持されている前回供給された楽音制御
情報に基づいて楽音を生成する処理とを行うことを特徴
とする楽音生成処理方法。
10. A process of supplying musical tone control information in response to receipt of a musical tone control instruction from the outside, and when new musical tone control information is supplied by the supplying process, it is supplied last by the supplying process. The process of holding the newly supplied musical tone control information while holding the musical tone control information and the process of generating a musical tone based on the musical tone control information at a predetermined time at a timing independent of the process of supplying the musical tone control information. In the case where new musical tone control information is supplied by the supplying process during the period from the previous generating process to the current generating process, it is retained by the retaining process. The musical tone is generated based on the new musical tone control information that is present, and the supply is performed between the previously generated process and the presently generated process with respect to the holding process. If new musical tone control information is not supplied by the processing described above, the musical tone generation processing is performed based on the previously supplied musical tone control information held by the holding processing. Generation processing method.
【請求項11】 前記保持する処理は、 前回供給された楽音制御情報と新たに供給された楽音制
御情報とを保持する2つの記憶エリアのうちいずれを使
用するかを指し示すポインタと、前記供給する処理によ
り新たな楽音制御情報が供給されたことを示すフラグと
を記憶し、 前記供給する処理により新たな楽音制御情報が供給され
た場合には、前記ポインタの内容に基づいて指定される
記憶エリアに、前記供給する処理により供給された新た
な楽音制御情報を記憶するとともに、前記フラグを上
げ、 前記所定時間毎に前記フラグの内容を参照し、前記フラ
グが新たな楽音制御情報が供給されたことを示す場合に
は、前記フラグを降ろすとともに前記ポインタの内容を
書き換え、 前記楽音を生成する処理は、前記ポインタの内容に基づ
いて指定される記憶エリアに記憶されている楽音制御情
報に基づいて楽音を生成することを特徴とする請求項1
0記載の楽音生成処理方法。
11. The holding process comprises: a pointer indicating which of two storage areas for holding the previously supplied musical tone control information and the newly supplied musical tone control information is used; And a flag indicating that new musical tone control information is supplied by the processing, and when new musical tone control information is supplied by the supplying processing, a storage area designated based on the content of the pointer In addition, the new musical tone control information supplied by the supplying process is stored, the flag is raised, the content of the flag is referred to at every predetermined time, and the new musical tone control information is supplied to the flag. If it indicates that the flag is turned off, the content of the pointer is rewritten, and the process of generating the musical sound is performed based on the content of the pointer. Claim 1, characterized in that to generate the musical tone based on the musical tone control information stored in the storage area to be
The tone generation processing method described in 0.
JP14782096A 1996-05-20 1996-05-20 Music generation processing method Expired - Fee Related JP3725247B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14782096A JP3725247B2 (en) 1996-05-20 1996-05-20 Music generation processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14782096A JP3725247B2 (en) 1996-05-20 1996-05-20 Music generation processing method

Publications (2)

Publication Number Publication Date
JPH09311681A true JPH09311681A (en) 1997-12-02
JP3725247B2 JP3725247B2 (en) 2005-12-07

Family

ID=15438975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14782096A Expired - Fee Related JP3725247B2 (en) 1996-05-20 1996-05-20 Music generation processing method

Country Status (1)

Country Link
JP (1) JP3725247B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094439A (en) * 2007-01-09 2007-04-12 Yamaha Corp Musical sound synthesizing method, recording medium, and musical sound synthesizer
JP2009025842A (en) * 2008-10-31 2009-02-05 Yamaha Corp Musical sound synthesizing method, recording medium, and musical sound synthesizer
WO2014003072A1 (en) * 2012-06-26 2014-01-03 ヤマハ株式会社 Automated performance technology using audio waveform data

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094439A (en) * 2007-01-09 2007-04-12 Yamaha Corp Musical sound synthesizing method, recording medium, and musical sound synthesizer
JP2009025842A (en) * 2008-10-31 2009-02-05 Yamaha Corp Musical sound synthesizing method, recording medium, and musical sound synthesizer
WO2014003072A1 (en) * 2012-06-26 2014-01-03 ヤマハ株式会社 Automated performance technology using audio waveform data
CN104412320A (en) * 2012-06-26 2015-03-11 雅马哈株式会社 Automated performance technology using audio waveform data
JPWO2014003072A1 (en) * 2012-06-26 2016-06-02 ヤマハ株式会社 Automatic performance technology using audio waveform data
US9613635B2 (en) 2012-06-26 2017-04-04 Yamaha Corporation Automated performance technology using audio waveform data

Also Published As

Publication number Publication date
JP3725247B2 (en) 2005-12-07

Similar Documents

Publication Publication Date Title
US5895877A (en) Tone generating method and device
US5770812A (en) Software sound source with advance synthesis of waveform
JP2924745B2 (en) Musical sound generating apparatus and method
US20140007754A1 (en) Musical sound generation device, musical sound generation method, and storage medium
JPH09311681A (en) Musical sound producing and processing method
US6754351B1 (en) Music apparatus with dynamic change of effects
JPH07121181A (en) Sound information processor
JP2000276172A (en) Musical sound generating device and storage medium
JP3322209B2 (en) Sound source system and storage medium using computer software
JP2004177981A (en) Musical sound generating device
JP3637577B2 (en) Music generation method
JP3658826B2 (en) Music generation method
JP3632744B2 (en) Sound generation method
JP3000894B2 (en) Musical tone generation method
JP3019755B2 (en) Music sound generation method and music sound generation device
JPH06186973A (en) Pitch detecting device
JP3003559B2 (en) Music generation method
JP3603638B2 (en) Musical tone generation method
JPH10198382A (en) Musical-performance information processing method
JP3137043B2 (en) Waveform memory tone generator and tone generator
JP3627590B2 (en) Sound generation method
JP3627557B2 (en) Musical sound generating apparatus and method
JP3603849B2 (en) Musical tone generation method
JP4477159B2 (en) Karaoke equipment
JP3050779B2 (en) Signal processing device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050921

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110930

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees