CN1763839B - Tone generating method and device - Google Patents

Tone generating method and device Download PDF

Info

Publication number
CN1763839B
CN1763839B CN 200510116176 CN200510116176A CN1763839B CN 1763839 B CN1763839 B CN 1763839B CN 200510116176 CN200510116176 CN 200510116176 CN 200510116176 A CN200510116176 A CN 200510116176A CN 1763839 B CN1763839 B CN 1763839B
Authority
CN
China
Prior art keywords
musical sound
data
passage
waveform
musical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN 200510116176
Other languages
Chinese (zh)
Other versions
CN1763839A (en
Inventor
田邑元一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP02332396A external-priority patent/JP3246312B2/en
Application filed by Yamaha Corp filed Critical Yamaha Corp
Publication of CN1763839A publication Critical patent/CN1763839A/en
Application granted granted Critical
Publication of CN1763839B publication Critical patent/CN1763839B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

For a given tone generating channel, tone waveform sample data corresponding to a plurality of sampling cycles are arithmetically formed collectively. Once performance information such as MIDI event data is supplied to a tone generator MIDI driver from an application program such as a MIDI sequencer, the MIDI driver, in response to an input MIDI signal, assigns new tone generation to a designated tone generating channel of a tone generator task, and prepares tone controlling parameters to be set in the designated channel. The tone generator task arithmetically forms tone waveform data by use of the tone controlling parameters and passes the tone waveform data to a CODEC circuit functioning as an A/D converter. The program and a general-purpose operating system are sequenced and executed by a preemptive multitask management program.

Description

Musical tone generating method and equipment
The application is dividing an application of the Chinese patent application No.03125170.6 that is entitled as " musical tone generating method and equipment " that proposed on May 17th, 1996.
Technical field
The present invention relates to a kind of musical tone generating method and equipment, this method and apparatus allows to form musical sound with a kind of general processor with a calculation element.
The invention still further relates to a kind of musical tone generating method, this method is by on a computing unit able to programme, for example on CPU or the DSP (digital signal processor), carries out a musical sound generation program and forms a kind of tone waveform.
Background technology
As everyone knows, common musical sound generation equipment comprises: a MIDI (musical instrument digital interface); Play the importation for one, be used for receiving playing information from a keyboard or sequencer; A generater of musical tone part is used to form a kind of tone waveform; With a microprocessor or CPU (central processing unit) (CPU), be used for according to input playing information control generater of musical tone part.CPU carries out generater of musical tone drive processes (play and handle) according to the input playing information, for example each musical sound is distributed to the passage (channel allocation) of a selection, and Parameters Transformation; And instruct parameter and a musical sound through conversion (sound messenger) to supply with the passage that generater of musical tone partly distributes.Generater of musical tone partly is by an electronic circuit, and for example a LSI (large scale integrated circuit) realizes, and forms tone waveform according to the parameter that is provided.
Yet known musical sound generation equipment is exclusively used in musical sound generation purposes, in the past, must unconditionally adopt a kind of so special-purpose musical sound generation equipment to remove to take place musical sound.
In order to address this problem, proposed a kind ofly through improved musical sound generation equipment, wherein CPU carries out a special application program, so that according to this application program generation musical sound.This musical sound generation equipment can realize enough general-purpose computations unit that musical sound generation and other functions not only can be finished by carrying out musical sound generation application program in this unit, and can finish by carrying out other application programs.A kind of multi-purpose computer, personal computer for example can be as the hardware of above-mentioned musical sound generation equipment, and its is carried out one and is used for the generater of musical tone program that operation takes place musical sound.Like this, available multi-purpose computer provides a kind of so-called " software generater of musical tone ".An example of this tradition " software generater of musical tone " is disclosed in U.S. Patent No. 5319151.
On the common apparatus that computing unit (CPU) is arranged at musical sound takes place in this case by carrying out an application program, usually each sampling period (promptly, the switching time of used D/A converter), form the tone waveform sampling for each musical sound generation passage.Like this, when CPU carries out required operation to each musical sound generation passage, used various register values in the last calculating of for example passage are read in the CPU register, carry out some beamhouse operation by CPU.In addition, after the musical sound that stops passage is handled, be necessary that a CPU register value writes in the storer, carry out the usefulness of processing for next time.
Yet, because sampling site carries out tone waveform sampling formation or computation process one by one in each musical sound generation passage, so a problem can appear in conventional software generater of musical tone, spend the computing time that is a large amount of CPU on beamhouse operation, rather than flower is at musical sound generating process (causing increasing system overhead), thereby desirably do not reduce the counting yield of generater of musical tone and response and musical sound device formation speed.That is, when carrying out tone waveform sampling forming process for each musical sound generation passage each sampling period, be necessary to allow CPU make used various data in the last calculating of passage, be returned to the above-mentioned register from storer; And after stopping waveform formation calculating, the memory contents of register is stored in the storer, for the usefulness of next implementation.Like this, a large amount of processing time flowers are in operation, rather than flower calculates in initial waveform formation.
In addition, both carried out generater of musical tone at CPU and handled, and played again in the known musical tone generating method of processing, " play and handle " is the processing of founding control information, and control information is used to control the musical sound that takes place according to the input playing information; " generater of musical tone processing " is the processing that forms Wave data according to the control information of having founded.For example, CPU when carry out generater of musical tone processing according to a look-at-me each sampling period, carries out to play and handles usually, for example detects and depresses low key.Be that CPU was returned to play and handles after a sampling was finished Wave data and formed in generater of musical tone is handled.
Playing information (midi event information) is to duplicate by player's performance operation or through the incident of a sequencer to produce, and the playing information that is produced is handled when playing processing.That is, when producing above-mentioned playing information, CPU also must carry out to play and handle except carrying out normal generater of musical tone processing; Like this, aperiodicity ground generation playing information can cause increasing calculated amount temporarily.Yet, suitably do not handle the interim known musical tone generating method that increases of aforementioned calculation amount according to being arranged to, no matter whether imported playing information, all preferentially carry out generater of musical tone and handle in a kind of periodic mode, handle thereby postpone significantly playing sometimes.
Play the right of priority of handling by improving, can avoid postponing playing and handle, yet under such a case, the operation that generater of musical tone is handled can become unsettled, and the number that generates musical sound is simultaneously reduced temporarily, or tone waveform is disconnected.
Summary of the invention
Therefore, an object of the present invention is to provide a kind of musical tone generating method and equipment, can reduce the system overhead of CPU in the software musical tone generating apparatus system.
Another object of the present invention provides a kind of musical tone generating method, and it can prevent to increase treatment capacity temporarily.
Another other purpose of the present invention provides a kind of musical tone generating method, it can be carried out waveform with stable manner and form calculating, can be when waveform regeneration partly requires Wave data is provided output waveform data promptly, can also provide the incoming wave graphic data in the operating period of a series of software generater of musical tone, for the usefulness of tone color control procedure.
One of the present invention other purpose be in addition in treatment capacity owing to when playing information occurring and increasing, also allow stable generater of musical tone processing.
Another other purpose of the present invention is waveform to be formed required arithmetical operation amount reduce to minimum.
In order to achieve the above object, a kind of musical tone generating method according to first aspect present invention comprises: the first step, and issue is instructed, so that the musical sound of a plurality of appointments to take place; In second step, to each musical sound generation passage of appointment from a plurality of musical sound generation passages, distribute the musical sound of appointment, and the control data that is used to specify musical sound is write in the channel register of musical sound generation passage of each appointment, so that storage therein; In the 3rd step, calculate sign on predetermined issued at intervals; The 4th step, in order to respond the calculating sign on that the 3rd uncle is issued, just go on foot the calculating sign on of being issued according to the 3rd, musical sound generation passage to appointment, one after the other carry out musical sound and form calculating, so that according to the control data in the channel register that is stored in passage,, form the Wave data of a plurality of samplings with algorithmic approach to the musical sound generation passage of each appointment; The 5th step is to each sampling, being that the Wave data of specifying musical sound generation passage to form is mixed by the 4th step, so that form the sampled data of mixing; With the 6th step,, convert simulating signal in each sampling period the mixing sampled data of each sampling in a plurality of samplings.Form in the calculating at musical sound, the 4th step, the musical sound generation passage to each appointment all carried out the formation of the Wave data of a plurality of samplings according to reading control data and this control data is write channel register from channel register after Wave data forming.This musical tone generating method can also comprise one the 7th step: specify instructing of musical sound issue according to first step for each, issue one and calculate sign on midway, so that according to calculating sign on midway, the 4th step formed the Wave data of a plurality of samplings, and this is equivalent to a part from an end points of the last formation waveform time point when instruction taking place issued by the first step.
Another embodiment according to the musical tone generating method of first aspect present invention, comprise: the first step, the musical sound of appointment is distributed to the musical sound generation passage of each appointment from a plurality of musical sound generation passages, and the control data of specifying musical sound is write in the channel register of specifying musical sound generation passage, with storage therein; In second step, calculate sign on predetermined issued at intervals; The 3rd goes on foot, and answers the requirement of the calculating sign on of second step issue, according to the control data in the channel register that is stored in passage, to the musical sound generation passage of each appointment, forms the Wave data of a plurality of samplings with algorithmic approach; The 4th goes on foot, to each sampling in a plurality of samplings, being that the Wave data of specifying musical sound generation passage to form mixes by the 3rd step, so that each sampling in a plurality of samplings is all formed the mixing sampled data; In the 5th step,, all the mixing sampled data of a plurality of samplings is converted to a simulating signal in each sampling period; With the 6th step, issue an instruction, so that utilize the free time during the 5th step handled that a plurality of musical sounds take place.The 3rd step was only carried out the arithmetic formation of Wave data to the passage that sends a musical sound.This musical tone generating method can also comprise one the 7th step, and a preestablished limit cycle is set; With one the 8th step, determine calculating to whole finger word musical sound generation passages, whether can finish in the cycle in preestablished limit.If determine can not finish in the cycle in preestablished limit the calculating of whole appointment musical sound generation passages, then the 8th step was assigned instruction: musical sound should lose efficacy in any musical sound generation passage or disappear.
Another additional embodiments according to the musical tone generating method of first aspect present invention comprises: the first step, and issue is instructed, so that the musical sound of a plurality of appointments takes place; Second step was assigned to the musical sound of these appointments in the musical sound generation passage of each appointment from a plurality of musical sound generation passages, and the control data that is used to specify musical sound is write in each channel register of specifying musical sound generation passage, so that deposit in wherein; In the 3rd step,, determine respectively to specify the computing order of musical sound generation passage according to the significance level of each musical sound that will in specifying musical sound generation passage, take place; In the 4th step, calculate sign on predetermined issued at intervals; The 5th goes on foot, and answers the requirement of the calculating sign on of the 4th step issue, according to the control data that stores in the channel register of specifying musical sound generation passage, is formed for the Wave data of a plurality of samplings with algorithmic approach; In the 6th step, each sampling in a plurality of samplings is all mixed the Wave data that forms for each passage, so that be formed for the mixing sampled data of a plurality of samplings; With the 7th step, all the mixing sampled data of a plurality of samplings is converted to a simulating signal in each sampling period.The computing order that the 5th step was determined according to the 3rd step is for being formed for specifying the Wave data of musical sound generation passage to calculate; And when being when forming calculating that Wave data does and can not finish within the predetermined time by the 5th step probably, when being disconnected with the simulating signal of changing by the 7th step, be used to form the calculating of Wave data, just a moment of on a passage, calculating by the computing order, be interrupted, be interrupted to prevent simulating signal.
With regard to regard to the invention described above of first aspect, just just need to do once the preliminary work of each passage later on, thereby can reduce system overhead in a large number at a plurality of waveform samplings of formation.This can improve the quality of musical sound takes place, and allow to increase those number of active lanes of musical sound can take place simultaneously.In addition, calculating or arithmetic that waveform sampling will take place when controlling midi event of each input by this way form, calculate with regard to mode that can enough a kind of dispersions, and might prevent that institute from the number of musical sound taking place because initial musical sound forms operates and undesirably minimizing.In addition, be arranged in the playing information time of origin and carry out the playing information input operation, and during input operation, comprise musical sound control or waveform formation in the key step of carrying out between at one's leisure to read in playing information; The treatment capacity that increases in the time of just can playing information taking place was scattered in free time, thereby can avoid increasing treatment capacity temporarily.In the passage (that is, pronunciation channel) that carries out musical sound formation, the passage that its sound level (AEG waveform) had fully been decayed already repels outside further calculating, makes it to become aphonic passage.
Another additional embodiments according to the musical tone generating method of first aspect present invention comprises: one the step that provides that performance can information is provided; A main step that forms Wave data with algorithmic approach; An interrupt step when providing step that playing information is provided, is interrupted main step temporarily, so that carry out a predetermined input operation that is used to receive the playing information that provides, and when finishing input operation, interrupts recovering to carry out main step in main step; With a generation step, according to the Wave data that forms by main step, form the Wave data moment constantly by interrupt step with algorithmic approach being later than one, a corresponding musical sound takes place.Main step comprises a playing information treatment step, is used for setting up tone control data and a generater of musical tone treatment step according to the playing information that experiences input operation, is used for according to tone control data, forms the wave format graphic data with algorithmic approach.When playing information when providing step to provide, for being provided, the playing information that is provided carries out input operation, and in the main step that the free time during input operation carries out, comprise that musical sound control or waveform based on received playing information form, because as above arrange, so can be scattered in the treatment capacity that increases at the playing information time of origin in free time, thereby can avoid the interim increase of treatment capacity effectively.
A kind of musical tone generating method of implementing on a computing unit according to second aspect present invention comprises: a system step is used for executive operating system; A waveform forms step, is used for being formed for the Wave data of a plurality of samplings with algorithmic approach in each specific cycle according to the playing information that application program provided by carrying out on operating system; An output step is used in each sampling circulation, and output is formed a sampling of the Wave data that step forms with algorithmic approach by waveform; With a controlled step, the request that should export step, in the described cycle, carry out a Task Switching between system step and waveform formation step.
According to another embodiment of the musical tone generating method of second aspect present invention, comprising: an input step is used to import playing information; A waveform forms step, is used for according to the playing information of importing in a predetermined period, with the Wave data of algorithmic approach formation corresponding to predetermined period; An output step is used for exporting a Wave data corresponding to predetermined period in each sampling period and samples; A waveform provides step, and being used for provides by waveform and form the Wave data corresponding to predetermined period that step forms to the output step; With a request step, be used to detect the Wave data of when exporting and get along with, so that request provides step that Wave data is provided again from Wave data by the output step.Wave data provides step to answer the request of request step to carry out, and waveform formation step provides step to carry out later at Wave data.
Another additional embodiments according to the musical tone generating method of second aspect present invention, comprise: an input step, be used to import playing information, a waveform forms step, be used for according to the playing information of in a predetermined cycle, importing, with the Wave data of algorithmic approach formation corresponding to this predetermined period; A waveform synthesis step is used to import the outside Wave data of celebrating mutually in predetermined period, and outside Wave data is combined with the Wave data that algorithmic approach forms with forming step by waveform, so that be formed for the synthetic waveform data of predetermined period; With an output step, be used for all exporting the sampling of synthetic waveform data in each sampling period.
According to another additional embodiments of the musical tone generating method of second aspect present invention, comprising: an input step is used to import playing information; A waveform forms step, is used for calculating in a plurality of stages, so that form Wave data with algorithmic approach according to the playing information by the input step input; A step that is used to import outside Wave data; With a step of the outside Wave data of being imported being inserted among of all calculation stages.
Provide the conventional software generater of musical tone as an application program of moving on the general-purpose operating system, the software that resembles MIDI sequencer and Games Software and so on also is a kind of application program of moving on the general-purpose operating system.Under the control of the multiple task operating system of imperfect (non-preferential), do not carry out new task, unless operation task is recovered the control to this operating system.Like this, sometimes can preset time executive software generater of musical tone at interval, the result can not stably output in the D/A converter in each tone waveform sampling sampling period.Different therewith, make software generater of musical tone according to second aspect present invention, under the control of multiple-task management, rather than under the control of application program, operate.This just allows also to allow the general-purpose operating system to operate, so that do not carry out the cycle processing of executive utility thereon of any processing at the software generater of musical tone with handling executive software generater of musical tone reliably of the required above-mentioned time interval in real time.
In addition, in the software generater of musical tone of picture, wherein, on a waveform buffer, collectively form the Wave data of a plurality of samplings with algorithmic approach in order to improve counting yield according to generator of first aspect present invention and so on; When waveform regeneration part (DAC) proposes the request of a shape information, be necessary promptly in a preset time scope, to pay Wave data.Yet, if some incidents for example take place at that time, can not promptly pay waveform, also difficulty takes place in stable musical sound.This problem can overcome by the improvement according to second aspect present invention.In addition, many conventional multi-purpose computers, for example personal computer all is equipped with A/D converter, the digital waveform input plug-in unit that sound import is used, but they can not carry out the musical sound control and treatment function of a software generater of musical tone according to the Wave data of such input.This problem also can overcome by the improvement according to second aspect.
Through another additional embodiments of the musical tone generating method of two aspects, comprising: one provides step, is used to provide playing information according to the present invention; One forms step, is used for forming Wave data according to control information with algorithmic approach; An interrupt step is used for when providing step that playing information is provided, and interrupts forming step temporarily, so that carry out the processing of playing information, and when the processing of finishing playing information, continues to carry out and forms step forming the step interruptions; With a musical sound generation step, be used for being later than, a corresponding musical sound taking place by forming the moment that step forms Wave data according to by forming the Wave data that step forms.
A kind of musical sound generation equipment according to second aspect present invention comprises: a storer is used to store a generater of musical tone handling procedure and a performance degree of treatment; A supply section is used to supply playing information; A register is used to store control information; A calculating section is used to carry out the generater of musical tone handling procedure and plays handling procedure.Calculating section is carried out the generater of musical tone handling procedure usually, so that form Wave data according to control information.When supply section supply playing information, calculating section interrupts the execution of generater of musical tone handling procedure temporarily, play handling procedure so that carry out, thereby found control information, and the control information of being founded is deposited in the register corresponding to the supply playing information; Also when finishing the performance handling procedure,, continue to carry out the generater of musical tone handling procedure in the interruptions of generater of musical tone handling procedure.This equipment also comprises a musical sound output, is used for basis by the Wave data that the generater of musical tone handling procedure forms, and is being later than the moment that is formed Wave data by calculating section, and a corresponding musical sound takes place.
Another additional embodiments according to the musical tone generating method of second aspect present invention comprises: a supply step is used to supply playing information; One forms step, is used for forming Wave data with algorithmic approach; An interrupt step is used for by supply step supply playing information the time, and interim interruption forms step, so that carry out the processing of playing information, when the processing of finishing playing information, is forming the step interruptions then, continues execution and forms step; With a musical sound generation step, be used for being later than, a corresponding musical sound taking place by forming the moment that step forms Wave data according to by forming the Wave data that step forms.Form step according to the playing information of handling by interrupt step, form Wave data with algorithmic approach.
According to another additional embodiments of the musical tone generating method of second aspect present invention, comprising: a system step is used to carry out a predetermined operating system; Waveform forms step, is used for the instruction that the application program carried out in the comfortable scheduled operation system according to one, in each predetermined cycle, the sampling of predetermined number is formed Wave data with algorithmic approach; An output step, be used in each sampling period, all export a sampling that forms the Wave data that step forms with algorithmic approach by waveform, with a controlled step, be used for to export the request of step, in the predetermined cycle, carry out a Task Switching between system step and waveform formation step.Waveform forms a kind of intermittent mode of step, carries out the operation of musical sound calculation of parameter.
According to another additional embodiments of the musical tone generating method of second aspect present invention, comprising: an input step is used to import playing information; A waveform forms step, is used for according to the playing information of importing in a predetermined period, with the Wave data of algorithmic approach formation corresponding to predetermined period; An output step is used for exporting a sampling corresponding to the Wave data of predetermined period in each sampling period, and a Wave data delivery steps is used for providing waveform to form the Wave data corresponding to predetermined period that step forms to the output step; With a request step, when be used for detection aspect output step output waveform data, getting along with, so that request provides Wave data in addition by the Wave data delivery steps.Waveform forms step and carries out the operation of musical sound calculation of parameter in the mode at a kind of intermittence, and the Wave data delivery steps is to answer the request of request step to carry out, and waveform forms step in delivery steps execution later on.
According to another additional embodiments of the musical tone generating method of second aspect present invention, comprising: an input step is used to import playing information; A waveform forms step, is used for according to the playing information of importing in a predetermined period, with the Wave data of algorithmic approach formation corresponding to this predetermined period; A waveform synthesis step is used to import the outside Wave data corresponding to predetermined period, and this outside Wave data is combined with the Wave data that algorithmic approach forms with forming step by waveform, so that be formed for the synthetic waveform data of predetermined period; A waveform processing step is used for the synthetic waveform data of predetermined period are carried out signal Processing; With an output step, be used for exporting a sampling of synthetic waveform data in each sampling period.Waveform forms step and carries out a musical sound calculation of parameter operation in the mode at a kind of intermittence.
According to aforesaid second aspect present invention, play to handle that best a situation arises carries out according to playing information, generater of musical tone handle play handle during at one's leisure between in one after the other carry out.With regard to this arrangement, even owing to the generation that responds playing information increases treatment capacity, handle part thereby can not carry out generater of musical tone with sufficient degree, volume also can compensate its defect in some other times; Therefore, can carry out generater of musical tone in a kind of mode of stabilization handles.In addition, because arrangement is arranged: when providing step that playing information is provided, just carry out input operation, so that the playing information that is provided to be provided, and in the main step of carrying out in the free time during input operation, comprise musical sound control or waveform formation based on the playing information that is received; So the treatment capacity that increases at the playing information time of origin can be scattered in free time, thereby can avoid the interim increase of treatment capacity effectively.
Description of drawings
In order to understand These characteristics of the present invention and other characteristics better, with reference to the accompanying drawings in detail, most preferred embodiments more of the present invention are described in detail, in the accompanying drawings:
Fig. 1 is a calcspar, and the hardware configuration according to a musical sound generation apparatus embodiments of first aspect present invention is described;
Fig. 2 is the figure in the tamber data district of an explanation RAM shown in Figure 1;
Fig. 3 is the figure of an input block of the RAM of a key diagram 1;
Fig. 4 is the figure of a passage register mode area of the RAM of a key diagram 1;
Fig. 5 is the figure of an output buffer of the RAM of a key diagram 1;
Fig. 6 is a process flow diagram by the master routine of the CPU execution of Fig. 1;
Fig. 7 is the process flow diagram of a MIDI reception interrupt procedure during a musical sound according to the present invention is handled;
Fig. 8 is the process flow diagram of the details of a MIDI process being carried out by CPU in key diagram 6 master routines;
Fig. 9 A be one when received data is sound interpreter event data, the sound of being carried out by CPU in the MIDI of Fig. 8 process is by the process flow diagram of journey;
Fig. 9 B be one when received data is the disconnected event data of sound, the process flow diagram of the disconnected process of the sound of in the MIDI of Fig. 8 process, carrying out by CPU;
Figure 10 is the process flow diagram of the generater of musical tone process of a CPU execution in the master routine of Fig. 8;
Figure 11 is the process flow diagram that a waveform of carrying out in the process of Fig. 9 A, 9B and 10 forms computation process;
Figure 12 is the time diagram of an explanation second embodiment of the invention;
Figure 13 is a calcspar according to the configuration of second embodiment of the invention explanation software module;
Figure 14 is that an explanation is the figure that how to carry out a particular task in an embodiment;
Figure 15 is the equivalent circuit diagram of all handling in the generater of musical tone task of an explanation Figure 13;
Figure 16 is the figure in processing time of the operation of each speciogenesis musical sound of explanation;
Figure 17 is the process flow diagram of a generater of musical tone task; With
Figure 18 A and 18B are the process flow diagrams that waveform forms computation process;
Figure 19 is the calcspar of the exemplary hardware configuration of an explanation treatment facility, realizes musical tone generating method of the present invention on this equipment;
Figure 20 is the process flow diagram that an explanation waveform forms another embodiment of computation process;
Figure 21 is the process flow diagram that an explanation waveform forms another additional embodiments of computation process;
Figure 22 is the process flow diagram of an explanation envelope waveform calculating operation;
Figure 23 is the process flow diagram of the envelope waveform calculating operation of an explanation low frequency signal;
Figure 24 is an explanation volume value and the process flow diagram that moves the operation of (panning) value interpolation; With
Figure 25 A and 25B are the figure of explanation envelope and low frequency signal waveform example.
Embodiment
At first, with reference to accompanying drawing 1 to 12, an embodiment according to first aspect present invention is described; In the accompanying drawings, Fig. 1 is the calcspar of the hardware configuration of one of the explanation musical sound generation apparatus embodiments that can carry out musical tone generating method of the present invention.
In Fig. 1, musical sound generation equipment comprises: a microprocessor (CPU) 1, and its executive utility etc. are so that carry out various controls in formation such as tone waveform sampling; A ROM (read-only memory) (ROM) has wherein had the tamber data of presetting etc.; A random-access memory (ram) is comprising a working storage for the CPU1 use, a tamber data district, an input block, a channel register district, an output buffer etc.; A timer 4 is used for computing time and the instruction CPU timer interrupts timing; A midi interface, by this interface this equipment of midi event data input and output; A keyboard 6 is similar to personal computer keyboard, comprises keying in key English and that japanese alphabet, numbers and symbols are used.
This musical sound generation equipment also comprises: a display (monitor) 7, and it can make user and equipment dialogue; A hard disk 8 wherein is equipped with an application program, for example is used to take place the program of musical sound, and wherein has music waveform data, is used to form the tone waveform sampling; A regenerating section (DMA: direct memory access (DMA)), it is under the situation of nonintervention CPU1, read the music waveform data in the district of the RAM3 that is stored in the CPU1 appointment, and data of reading are supplied with a D/A converter (DAC) 10 with predetermined sampling frequency (for example 48KHz); With a sound system 11, be used for to regenerate with listening or sending the simulation note signal from D/A converter 10.
Above-mentioned parts all are similar to the parts of personal computer or workstation, can both be used for realizing musical tone generating method of the present invention.
In the various data storage areas in RAM3, its tamber data district is shown among Fig. 2, and the input block is shown among Fig. 3, and the passage register mode area is shown among Fig. 4 and output buffer is shown among Fig. 5.
In the tamber data district of Fig. 2, " PD1, PD2..., PD16 " represents 16 kinds of tamber datas, and every kind of tamber data comprises: the waveform data (range of pitch waveform specific data) that is assigned to the tone scope; The data of control LFO (LF oscillator) are used to provide tremolo effect or similar effect; The data that the control filters envelope takes place are used to provide a kind of controlled tone color filtering characteristic; Be used to control the data that a kind of amplitude-control envelope takes place; The button control data is used for according to the key that detects-change by the speed ascending velocity of musical sound or similar sound; With other data.These data in the storage of the tamber data district of Fig. 2 all are the raw data that provides along with a musical sound generation instruction, these data all will be handled according to button data, tone data etc., form data so that set up the musical sound that is used by a generater of musical tone.
In addition, in Fig. 2 " WD1, WD2 ..., WDn " the expression Wave data, wherein any one data all is according to the input tone data, by tamber data PD1, PD2 ... the range of pitch waveform specific data of one of PD16 comes appointment.
Midi event data ID 1, ID2, ID3 ..., the expression variety of event, for example sound is logical and the disconnected incident of sound, and receives by midi interface 5; They all are sequentially written in the input buffer shown in Figure 3.By reading these midi event data ID 1, ID2, ID3 ..., can in musical sound generation equipment, carry out an event procedure.Midi event data ID 1, ID2, ID3 ... each all comprise the indication midi event content with (data time of origin or Time To Event) the event data time of origin data.When receiving the midi event data, by the current time of reading to count by timer 4, can the specified data time of origin.
District shown in Figure 4 is as a passage (CH) register, and with the data of each single musical sound formation of storage control, and in illustrated example, the passage register mode area can provide the memory location that amounts to 32 passages.A phonemic notation is all stored in each passage memory location, the waveform specific data, the LFO control data, wave filter envelope specific data (FEG control data), amplitude envelope control data (AEG control data), the logical data of sound and other data, and the workspace that CPU uses during executive routine.Waveform specific data in the passage register mode area of Fig. 4, LFO control data, FEG control data and AEG control data all are to form data by the musical sound that each raw data of handling Fig. 2 draws.
District shown in Figure 5 is used for a plurality of output buffers, and they form output buffer X as tone waveform successively.Whenever be used for each musical sound generation passage SD1, SD2, SD3 ... the tone waveform sampled data, when forming according to described arithmetical operation after a while, these data just one by one passage ground accumulated, and the cumulative data of gained is deposited in the output buffer.Two or more these class output buffers are designated as tone waveform and form output buffer X, and are used for the waveform calculating operation.The simplest form is, available two output buffer X provide a kind of double buffer structure, so that the data in being stored in of impact damper X are by in regenerating section (DMA) 9 regeneration, form the new waveform sampling data that operation draws by waveform, can deposit another impact damper X in.
Output buffer can be configured to have arbitrary optional size, for example 100,500,1K or 5K word length.If output buffer is configured to large scale, tangible time delay will when forming, musical sound take place; If output buffer is configured to small size, will reduces time margin greatly, thereby when the arithmetical operation amount that interim increase will be done, cause bad response.Like this, for the sequencer performance or the similar performance that do not need processing capability in real time, the size of output buffer can be done more greatly, compensates because the time delay of musical sound when forming can enoughly be played method regularly in advance.On the other hand, play or similar performance for the keyboard that needs processing capability in real time, preferably, the size of output buffer is configured to 100 to 200 word lengths, so that prevent the time delay when musical sound forms.Be that the data size that proposes above is best under 40 to 50KHz the situation in sampling frequency.Yet for lower sampling frequency, the size of output buffer must be littler, the time delay in the time of just avoiding musical sound to form.
Secondly, first to the 5th embodiment of various details musical tone generating method, wherein each embodiment can both realize with musical sound generation equipment shown in Figure 1.
According to being characterised in that of the musical tone generating method of first embodiment: carry out a musical sound by CPU1 and form application program, in the musical sound forming process, each passage is all collectively formed the sampling of a plurality of (for example 100) tone waveform.Especially, in the musical sound forming process,,, collectively form the tone waveform sampling to each musical sound generation passage according to 100 sampling periods of D/A converter 10.
Like this, at each predetermined calculation level, whole passages are carried out the musical sound forming process.At this, formed tone waveform hits is " 100 ", sequentially accumulates these samplings, as the peculiar accumulated value of passage of 100 sampling periods of D/A converter 10, and deposits in the above-mentioned output buffer.After whole musical sound generation passages being finished the sampling accumulation, be stored in the tone waveform sampling in the output buffer,, read by regenerating section (DMA) 9 according to the mode of a sampling sampling period, and supply with sound system 11 by D/A converter 10, so that can regenerate with listening.Predetermined computation point in the present embodiment is controlled so that occur with following interval: when carrying out the musical sound forming process with output buffer successively, can read whole tone waveform samplings, and under situation about not stopping over they holomorphosis.
First embodiment according to musical tone generating method, each passage is carried out preparatory operation, but only need once for a plurality of tone waveform samplings of wanting collective to form, thereby allow to reduce arithmetical operation or the computing time of flower on beamhouse operation to the ratio of whole computing time, operate so significantly reduce system overhead.This just can improve greatly the quality of the tone waveform that forms sampling, and increase can simultaneous musical sound number.
Each time section between predetermined computation point can be divided into " n " individual equal part, so that carrying out waveform sampling formation calculating corresponding to the interval of " n " individual part; And regenerator section (DMA) 9 can, respectively organize tone waveform sampling to what finish calculating in " n " individual part, read.
Musical tone generating method according to second embodiment is described below, wherein,, carries out musical sound by CPU1 and form application program, in the musical sound generating process,, collectively form a plurality of tone waveform samplings each passage according to the mode that is similar to first embodiment; And to all carry out waveform arithmetical operation or calculating, till time point when receiving input data (being the midi event data in this case) by midi interface 5 to sampling.At predetermined calculation level,, carry out the tone waveform sampling and calculate only to the sampling of not calculating in predetermined a plurality of tone waveform samplings (that is) corresponding to the sampling of each output buffer size.
In the musical sound forming process, waveform sampling calculate to be just to carry out at each musical sound generation passage of sounding current; In this case, if a kind of logical or disconnected incident of key of key that relates to the special shape musical sound generation that becomes with input data (pitch shift or volume change) appears in each passage, then required arithmetical operation is more than the arithmetical operation of other passages; In other passages,, still proceeding the musical sound generation owing to do not change with the input data.In this case, because calculation level is arranged to betide fixing interval, so plenty of time in the operating cycle, the passage that is related to the variation that musical sound takes place is occupied, this just final number that reduces musical sound generation passage, concerning these passages, required arithmetical operation can be finished in finite time.Especially,, all need many initialized operations for beginning to carry out each passage that musical sound takes place, for example generation of the initialization of address counter and envelope generator and a kind of " F " number etc., this has just taken the long running time.
Figure 12 is the chronogram of second embodiment of an explanation, wherein according to above-mentioned double buffer structure first and second output buffer A and the B is housed, and is shown among the figure of (e) portion.From impact damper A and required time of B regeneration, illustrate with TA and TB respectively, and TA equals TB in the present embodiment.
At first, in computing time of distributing to the first output buffer A shown in (a) portion of Figure 12 in the scope from a t0 to t1, by a MIDI receiving unit after some ta receives two midi events, a generater of musical tone (T.G.) drive part carries out the processing shown in (b) portion, and a generater of musical tone (T.G.) part is calculated the tone waveform sampling A1 corresponding to the input that receives during ordering from the t0 point to ta.
The MIDI receiving unit comprises the midi interface 5 that is used for receiving each input midi event, and the MIDI receiving unit also writes the time of origin of midi event with it in the input buffer together.The generater of musical tone drive part receives data from input buffer or from personal computer keyboard 6, gives one of a plurality of generater of musical tone passages the data allocations that is received, and according to the conversion of input data execution from audio parameter to the generater of musical tone parameter.In addition, generater of musical tone partly receives the generater of musical tone parameter, and handles Wave data, to form the tone waveform sampling of wanting actual pronunciation.A LPF part is removed the noise contribution of obscuring from formed tone waveform sampling, and the data of partly exporting from LPF are write first and second output buffer A and B.Above-mentioned generater of musical tone drive part, generater of musical tone part and LPF part all are the functions of implementing by the CPU1 executive utility.
Secondly, when the MIDI receiving unit after some tb receives a midi event, the generater of musical tone drive part just carries out similarly handling with above-mentioned situation shown in (b) portion, and generater of musical tone partly calculates the tone waveform sampling A2 corresponding to the input that receives during from a ta to a tb.Thereafter, when point of arrival t1, generater of musical tone partly calculates corresponding to the tone waveform sampling A3 that receives input during from a tb to a t1.In this case, when a ta and tb receive some key interpreter parts, just carry out musical sound initialization for causing and arithmetical operation at this t1.After this, LPF carries out a filtering operation, thereby is that the first output buffer A finishes required tone waveform sampling formation.
Secondly, as (a) portion of Figure 12 shown in be the second output buffer B distribute calculating from a t1 to a t2 time interim, the MIDI receiving unit is at three midi events of tc reception.Because generater of musical tone part is being calculated tone waveform sampling A3 now, thus the incoming event data be stored in provisionally in the input buffer, till be assigned to these data computing time.After generater of musical tone is partly finished the calculating of tone waveform sampling A3 and LPF and is partly finished filtering operation, the generater of musical tone drive part is read event data from input buffer to be processed, and generater of musical tone partly calculates corresponding to the tone waveform sampling B1 that receives input during from a t1 to a tc like this.Even some time delays take place in calculating operation, also can not influence the musical sound time of origin, because the time of origin of incoming event data also is written in the input buffer.
After this, the MIDI receiving unit receives 4 midi events in the computing interval of tone waveform sampling B1, and handles these incidents, so that calculate corresponding tone waveform sampling after calculating tone waveform sampling B1, its situation is similar to above-mentioned situation.
In a like fashion, as sampling corresponding to the input that is received during from a tc to a td, form tone waveform sampling B2, as sampling corresponding to the input that is received during from a td to a te, form tone waveform sampling B3, with as sampling corresponding to the input that is received during from a te to a t2, form tone waveform sampling B4.As sampling corresponding to the input that from some t2 to some t3 during received form tone waveform sampling A5 thereafter.
As seeing from above, when the input data took place, second embodiment calculated waveform sampling one period before the input data take place, and calculates thereby can carry out waveform sampling in the mode of disperseing basically.Like this, the operational ton that carries out period in each calculating with predetermined interval is just suitably limited, thereby even many input data that relate to the variation of musical sound generation are taking place, for example during key interpreter event data, also might avoid some inconveniences, the number that musical sound for example can take place simultaneously is reduced.
Musical tone generating method according to the 3rd embodiment is described below.
In order to be under the situation about taking place with predetermined space at calculation level, with in the sampling of the tone waveform of predetermined number be by arithmetical operation under the situation that each computation period collectively forms, musical sound one after the other takes place, just must before being done, the sampling of the tone waveform before forming supply with the tone waveform sampling of predetermined number.Yet if the number of musical sound generation passage is quite big, thereby waveform calculating operation amount is excessive, a problem will occur: can not in time supply the tone waveform sampling of whole passages, the musical sound that is taken place is not desirably interrupted or interruption.
Musical tone generating method according to the 3rd embodiment is intended for use to solve above-mentioned troublesome problem.More precisely, the 3rd embodiment determines whether to supply in time the tone waveform sampling of predetermined number during the data-switching of D/A converter 10.If determine to supply in time the tone waveform sampling during data are changed, just select one or more such musical sound generation passages: the significance level that its musical sound is had in occurent whole musical sounds of current time is smaller.Then, to the passage of appointment, present embodiment calculates the damping waveform sampling of the initial period that is equivalent to waveform in a short time.
Because only the musical sound generation passage of appointment is calculated short-term damping waveform sampling, thus this passage required computing time can be reduced, thus the tone waveform sampling that can during the data-switching of D/A converter 10, supply whole predetermined numbers in time.
In general, the musical sound that is decided to be " important " in the 3rd embodiment has:
(1) the current musical sound that big volume is arranged;
(2) its initial position (attack portion) just begun the musical sound of sounding;
(3) when the musical sound of the two or more parts chest note musical sound (basso) during just at sounding;
(4) transfer musical sound when the musical sound of the two or more parts descant during just at sounding;
With
(5) when the musical sound of the musical sound of a two or more parts solo part during just at sounding.
The 3rd embodiment can revise as follows.Fall progressively in proper order according to the importance that musical sound will take place before calculating at waveform sampling therein, arrange musical sound generation passage in the following manner: sequentially finishing sampling from most important musical sound to least important musical sound and calculating.Calculate if can not finish the waveform sampling of whole passages in time, just interrupt calculating, so that only musical sound takes place with established tone waveform sampling so far.Like this, interrupt sampling if desired and calculate, then just a less musical sound or the several musical sound of importance is deactivated or cancellation, thereby influences less.
In above-mentioned the 3rd embodiment and correction example thereof, can always when taking place, the input data carry out the calculating of waveform sampling.In other words, can be each time period, rather than, collectively carry out the calculating of waveform sampling according to each generation of importing data; In this case, may be preferably according to the leading calculation level generation of the quantity trigger pip of importing data.Revise in the example at another, each time period between the predetermined computation point can be divided into " n " individual equal part, so that calculate according to carry out waveform sampling corresponding to the interval of " n " individual part, and regenerating section (DMA) 9 can read out in that " n " individual part is completed into respectively organize the tone waveform sampling.
In order all to be at calculation level under situation about taking place under the predetermined interval, with sampling at the tone waveform of predetermined number all is under the situation about collectively forming by arithmetical operation, musical sound one after the other takes place, before the formation of tone waveform sampling that just must be former is done, supply with the tone waveform sampling of predetermined number.Yet, if the number of musical sound generation passage is bigger, thereby waveform calculating operation amount is excessive, if or for example owing to spend the time ratio on other are handled to spend in the time that musical sound forms in the processing (for example sequencer processing) much more, and the tone waveform that can not supply with predetermined number is in time sampled, just in the process of still handling, read one or more tone waveform samplings, thereby cause undesirable noise.
Plan to solve this troublesome problem according to the musical tone generating method of the 4th embodiment.In the 4th embodiment, CPU1 instruction regenerating section (DMA) 9 sends the data that are stored in any one output register, and can in regenerating section 9, be provided with itself just be used for storing predetermined number the address of output buffer of the tone waveform that forms sampling, with this address as read the part the address, maybe will from wherein repeatedly sense data repeat read the part the address.In addition, can make with following manner and read part and keep: can one current after sense data wherein specific read part, read the data in this address immediately.
According to the 4th embodiment, read part and keep the formed tone waveform sampling of permission, be deposited at in the output buffer that keeps usefulness, and after a current specific waveforms of reading, read immediately.Under the situation that the calculating that the tone waveform of predetermined quantity is sampled is not in time finished, it is invalid that a kind of like this reservation is deposited, thereby might prevent noise; In other words, any sampling of the tone waveform in processing procedure sounding that just is in all can cause noise.This can interrupt the sounding of a certain musical sound temporarily, but by have only several sampling periods being constrained to break period under the sampling frequency situation of for example 44.1KHz, will significantly reduce the negative interaction that interruption brings.As mentioned above, the number of active lanes by restriction generation musical sound can realize the restriction of break period.After finishing calculating, keep and deposit, make the sampling sounding of respective waveforms.
Can collectively carry out waveform sampling calculating for each time period, rather than import the carrying out of data according to each.In this case, may preferably in calculation level a trigger pip take place in advance according to the number of importing data.Revise in the example at another, each time period between predetermined computation point can be divided into " n " individual equal part, so that carrying out waveform sampling calculating corresponding to the interval of " n " individual part, and the tone waveform that is completed in can " n " the inferior calculating in the end to time period sampling is done a kind of reservation for its sounding and is deposited.
As mentioned above, take place at predetermined space at calculation level, sampling is under the situation about collectively forming by arithmetical operation with the tone waveform of predetermined number, perhaps calculating at waveform sampling is under the situation about carrying out according to the appearance of each input data, for musical sound one after the other takes place, before the formation of tone waveform sampling that must be former is done, the tone waveform sampling of supply predetermined number.
The time point that the formation of sampling according to the tone waveform before is moved to end (the concluding time point of tone waveform sampling in the past), specify such one some calculation level as a specific tone waveform sampling, this point is than Zao the finishing the time that waveform is required of concluding time point of regulation.Because the concluding time point is to confirm by the current state (sign) of CPU1 verification regenerating section (DMA) 9, detect the recovery time section of when sampling whereby and moved on to the next time period, so the physical end time point can postpone, detect up to CPU1 till state (sign) variation of regenerating section (DMA) 9.In addition, because this time delay depends on when CPU1 finishes above-mentioned detection, so the uneven delay of detection timing separately can appear depending in the independent sampling that forms.
When putting the generation calculation level, can not obtain correct calculation level according to the concluding time that postpones unevenly like this.Especially, if when postponing big timing and produce calculation level, then shortened significantly with T.T. length between the supply Wave data calculating beginning, thereby simultaneous musical sound number is reduced temporarily.
Plan to solve this troublesome problem according to the musical tone generating method of the 5th embodiment.
According to the 5th embodiment, CPU1 deposits a plurality of time points in storer, and these time points are the time points when measuring its regenerating section (DMA) 9 states in the past and changing; Also by average these time points of having stored, the prediction meeting detects the time point of this variation to CPU1 in next time.Because the time point of prediction is average corresponding to the time delay of the concluding time point of regulation in the regenerating section (DAM) 9, so a preset time point before predicted time point can be regarded an actual correct concluding time point as.Like this, can produce calculation level according to correct concluding time point.In this way, the average concluding time point that detects, reducing its unevenness, thereby the operating cycle of distributing to each calculation level is just by following mode homogenising effectively: carry out musical sound with the mode of stabilization and form operation.
The calculating of waveform sampling can collectively be carried out each time period, rather than carried out according to the appearance of each input data.In this case, may be preferably according to trigger pip of the leading calculation level generation of the quantity of input data.Revise in the example at another, each time period between predetermined computation point can be divided into " n " individual equal part, so that carrying out waveform formation computation process corresponding to the interval of " n " individual part, and can the tone waveform sampling that all forms in " n " inferior calculating in the end of a time period be done a kind of reservation for its sounding and deposit.
Below with reference to process flow diagram,, its basic operation is described to the aforesaid musical sound generation apparatus and method for relevant with first to the 5th embodiment.
Fig. 6 is a process flow diagram by the master routine of CPU1 execution.When master routine begins, carry out an initialization procedure at step S10; In this step, timer 4 and DMA9 are configured to original state separately, and whole musical sound generation passages are cleared and tamber data and Wave data etc. are prepared.Thereafter, CPU1 moves on to step S20, carries out a keyboard process at this, to handle from the data of keyboard 6 inputs.At next step S30, to carrying out a MIDI process corresponding to the operation of an input midi event.In addition, carry out a generater of musical tone process, be used to carry out waveform sampling and calculate, to form tone waveform sampling etc. at step S40; Also carry out other necessary processes at step S50.After step S50, the master routine circulation turns back to step S20, so that repeatedly carry out the process of above-mentioned S20 to S50 in a constant circulation.When using multi-tasking to carry out another software program, can carry out these processes simultaneously.
Fig. 7 is a process flow diagram by a MIDI reception of CPU1 execution interrupt procedure, and it starts with a look-at-me when receiving the midi event data by midi interface 5 from the outside.This MIDI of execution receives interrupt procedure under the situation of any other process having precedence over.When starting MIDI reception interrupt procedure, the midi event data that receive by interface 5 are read in musical sound generation equipment at step S100; And, with the time of origin of data or time of reception together, write in the above-mentioned input buffer at step S110; CPP1 turns back in some processes in the master routine of carrying out when providing look-at-me then.In this way, the midi event data of each reception are all write in the input buffer with time of reception.
Fig. 8 is the process flow diagram of the details of the MIDI process carried out of the step S30 of an explanation in master routine.At first, CPU1 verifies input buffer at step S200, and at step S210, it finds out whether input buffer contains any data that received that still are untreated or do not calculate.If according to mensuration at step S210, in input buffer, there are any reception data of not calculating, just carry out one corresponding to not calculating the operation that receives data content in step 220.That is, are sound interpreter event data if receive data, CPU1 just forwards step S230 to, passes through journey to carry out a sound; If receive data are the disconnected event datas of sound, and CPU1 just forwards step S240 to, to carry out the disconnected process of a sound; If with receiving data are other data, CPU1 just changes with step S250, to carry out other processes.During one of process in completing steps S220, the MIDI process finishes.Do not exist in input buffer according to the mensuration of step S210 under the reception data conditions of not calculating, the MIDI process finishes immediately, and the operation below no longer carrying out.
Fig. 9 A is a sound that the S230 step is carried out in the MIDI process when the data that received are sound interpreter event data process flow diagrams by journey.At first, as step S300, note number, speed and the time of origin of input buffer middle pitch interpreter part are packed in note number, speed and the time of origin register as " NN ", " VEL " and " TM ".Then, at step S310, note number " NN " is assigned in one of passage, and the passage number of specified passage packed in the passage number register as " i ".
In addition, at step S320, in one of channel register CH that inserts the Fig. 4 that distributes into passage number " i " corresponding to the tone control data of note number " NN " and speed " VEL ".Like this tone control data of She Zhiing be according to note number " NN " and speed " VEL " value corresponding to the MIDI passage that receives sound interpreter event data, the musical sound of deriving by the tamber data of handling Fig. 2 forms data (other data of Fig. 4).At this, the waveform specific data that musical sound forms in the data is corresponding to note number " NN ", obtains by the range of pitch waveform specific data of reading Fig. 2 tamber data, and reads specific data specified waveform data W D1 any one data in the WDn.After tone control data was set, a sound that is used for passage " i " led to sign, was set up at step S330 and carried or build up.
After this, CPU1 sets about step S340, forms computation process to carry out waveform.In this case, carry out waveform and form computation process, be intended to calculate those and will write the current not sampling of writing among the output buffer X of calculating section of waveform, and the portion waveshape of calculating is like this write among the output buffer X.Portion waveshape is equivalent to a kind of like this waveform of scope, and it becomes and can be calculated or form at a time point; Detect the data (that is the reception of approval data) that received with step S210 at this time point.To be at the portion waveshape of this formation, the waveform sampling that in one period before the time of origin TM of reception sound interpreter part, does not calculate, and one should not be included in the current waveform according to the waveform that sound interpreter part begins sounding, and be included in the waveform that will form afterwards, describe in detail with reference to Figure 11 later on.
Operation at step S340 and S350 is equivalent to waveform sampling A1, and the waveform of A2 or the top similar sampling of once describing with reference to Figure 12 calculates.At step S350, according to being the tone control data that passage number " i " is provided with at above-mentioned steps S320, for the musical sound generation is carried out initialization to the workspace of the channel register of passage number " i ".The currency of memory address in this workspace, various envelopes, current state, the currency of LFO waveform and form other required data of each passage waveform.After finishing this musical sound initialization for causing process, sound finishes by journey.In initialization procedure, carry out various initialization operations, for example current waveform is read the address and initially set an enabling address, " F " number corresponding to note number NN takes place, initially set LFO, wave filter EG, volume EG, interpolation operation and filter operations.This initialization procedure takies a large amount of computing times, as above-mentioned.
Figure 13 is when working as the data that received and being the disconnected event data of sound, a process flow diagram of the disconnected process of the sound of carrying out with step S240 in the MIDI process.At first, according to step S400, the note number that is stored in the disconnected incident of sound in the input buffer and time of origin as " NN " and " TM ", pack into note number and time of origin register.Then, at step S410, confirm one current just at the musical sound generation channel C H of the note number NN of sounding, and the passage number of the passage of being confirmed as " i ", in the passage number register of packing into.
After this, the logical sign of sound of writing down or resetting and be used for " i " passage at step S420; And at step S430, to be similar to the mode of above-mentioned steps S340, carry out waveform and form computation process,, and the waveform sampling that calculates is like this write output buffer X so that calculate the not calculating waveform sampling (portion waveshape) that should before time of origin TM, form.Discharge at step S440 after the start-up operation of " i " passage, the disconnected process of sound finishes.In discharging start-up operation, rewrite each state of the various envelopes of contained " i " passage in the workspace, so that the musical sound formation state in this passage is become release conditions.
Below with reference to Figure 10, be described in detail in the process flow diagram of the generater of musical tone process of the step S40 execution in the master routine.At first, at step S500, verify the reproduced state of regenerating section (DMA) 9.If DMA9 has advanced to the section that the next one will be reproduced, then CPU1 forwards next step S510 to; But if not, then CPU1 jumps to step S520.DMA9 with predetermined sampling frequency, reads waveform sampling from an exclusive district by the RAM3 of CPU1 appointment seriatim; And the sampling of reading is supplied with the DAC10 that can listen regeneration.Like this when designation area is read waveform sampling, DMA9 receives a reservation from another district that will regenerate of CPU1 appointment.After the regeneration of finishing the proparea, the waveform sampling in Yu Yue next district is read one by one by DMA similarly like this, and supplies with the DAC10 that can listen regeneration.DMA9 advances to the section that the next one will regenerate and means wherein, and is last as after wanting regenerator section to specify exclusive district to regenerate to be finished to, and DMA9 has moved on to another and wanted regenerator section as the next one and the exclusive district preengage.In this case, the exclusive district of the order regeneration RAM3 that is used for preengaging according to them.
Thereafter, at step S510, the time of a kind of propelling like this (next time advancing detection time) that will detect in next time is, according to the current time with advanced in the past and to predict detection time; And one was that the time point of a schedule time is in prediction detection time in the past, as next calculation level and appointed.Advance next time to predict: a plurality of propelling detection time according to comprising current time and final time, to go out an approximate value with little Error Calculation by " least square method " with the method for example detection time; Perhaps use a quadratic function or similar function to remove to approach the variable of a detection time.Advance to take place with detect between one the time interim because each operation steps position and state is different, and in DMA9 the uneven time delay of generation, make propelling comprise irregular heterogeneity detection time.Therefore, the calculating of the approximating function computing that relates to a kind of average non-homogeneous detection time.
Above-mentioned " schedule time " of predetermined detection before the time be one for forming the time that tone waveform distributes, and depend on that waveform forms the required amount of arithmetical operation; This operand is by the number that requires that musical sound will take place, arithmetical operation require decision such as quality.The length of " schedule time " can be fixed, and also can be provided with changeably by the selection of user on keyboard 6, or automatically is provided with according to two or more programs of operation simultaneously by CPU1.
, at step S520, at next calculation level and current time by timer 4 demonstrations between make comparisons, whether arrived next calculation level so that determine the current time thereafter.If determine it is sure, CPU1 just carries out the step of step S530 to S580.At first, at step S530, determine specific computation sequence, wherein the passage of current sounding should be later on calculates at step S550 experience waveform sampling, with the Wave data of a plurality of samplings of being formed for each current sounding passage.
That is to say,, computation sequence is set in the following manner at step S530: since an effective musical sound musically, if or from one its lost efficacy or disappeared, the musical sound that great music trouble will occur begins, and one after the other carries out waveform sampling and calculates.Then, at step S540, determine whether that the waveform sampling of whole current sounding passages calculates and can finish in a predetermined computing time (promptly relating to the schedule time that step S510 describes).If reply with the form of negating, then one or more will be in the end or carry out the musical sound generation passage that waveform sampling calculates in the time that is later than any other passage, just be designated as the passage (musical sound disappearance passage) of the musical sound that will disappear, so that reduce the arithmetical operation amount, so that can calculate at the predetermined waveform sampling of finishing whole current sounding passages computing time in the scope by mode like this.The processing details of this process are seen the 3rd embodiment of above-mentioned musical tone generating method.
At step S550, carry out waveform sampling now and calculate.Especially, the waveform sampling that does not calculate is calculated, and they are write among the current available output buffer X, make impact damper X fill the calculating Wave data, thereby get ready for musical sound.This operation is equivalent to form waveform A3 or similar waveform, as top when mentioning Figure 12 as described in.
At step S560, the sampling that each is write among the output buffer X that has filled is subjected to a kind of low-pass filtering operation then, so that from wherein eliminating radio-frequency component.After this, at step S570, the output buffer X of storage low-pass filtering waveform is preset to a dedicated memory that is used for next reproduction waveform, so that this memory block is reproduced after the waveform regeneration in finishing current regeneration and memory block that preset already.Then, at step S580, another output buffers different with using impact damper X so far are cleared, and newly are set as output buffer X, so that be the next one section of being reproduced preparation waveform.
If the current time does not reach the definite calculation level of S520 set by step as yet, then the musical sound generating process finishes, and does not carry out other operation.
Figure 11 be one logical at sound, sound disconnected and the generater of musical tone process in the waveform that carries out form the process flow diagram of computation process.To this process, by top described waveform scope computing time that presets.That is to say that during the MIDI DRP data reception process, for example during sound passes through journey, carry out under the situation of current procedure flow process, waveform scope computing time is equivalent to above-mentioned portion waveshape; And during the generater of musical tone process before the execution day under the situation of program circuit, then waveform scope computing time is equivalent among the impact damper X not those waveform samplings of compute segment.Because calculate, so in the new computation sequence of MIDI Data Receiving uncertain passage of time according to the computation sequence of determining by the previous execution of generater of musical tone process.Whenever a new sound interpreter part takes place, and when being assigned to special modality in the passage, then this special modality at first (is provided one first order) and is inserted computation sequence, and the order of each other passages is moved downward one.
At first, at step S600, do to calculate for first waveform sampling of the passage at first settled by computation sequence and prepare.Calculate to prepare to comprise data miscellaneous are set, for example last reading address, the numerical value of various envelope EG and state (input, release etc.) but and the LFO value under the access condition; And comprise pack into the interior register of CPU1 of these data, so that directly utilize when calculating.At step S610, LFO, wave filter G and volume EG carried out waveform sampling calculating, so that form the sampling of LFO, FEG (wave filter envelope) and AEG (amplitude envelope) waveform thereafter.The LFO waveform is added on calculating fixed time scope required " F " number, FEG waveform and the AEG waveform, so that modulate each data.Each is designated as the musical sound generation passage of silencers channel, calculates a kind of damping AEG waveform according to the volume EG that in this time range, decays rapidly.
Thereafter, at step S620, the F number is added to repeatedly as the reading on the address at last of initial value, so that produce the address of reading that is used for each sampling in this time range.In addition, according to the integral part of reading address, the waveform memory area WD from the tamber data district reads Wave data; And, read at each and to make interpolation between waveform sampling, to be formed on this time range with interior whole interpolating samplings according to the fraction part of reading the address.For example, if timing range is equivalent to 100 times that sampling is used, just can collectively form 100 samplings by this step operation.Because in the operation of a plurality of samplings in this time range, be to carry out adding with interpolation corresponding to the F number of reading the address as a whole system operation, so only need read in the CPU register once, thereby generally speaking, can improve processing speed significantly reading the address.
In addition, at step S630, the tone color filtering operation of interpolating sampling experience in this time range is in this tone color control of sampling according to above-mentioned FEG waveform.At next procedure S640, an amplitude control operation is carried out in filtered sampling, so that control the amplitude of sampling according to above-mentioned AEG (amplitude envelope) and volume data; Also carry out the write operation that adds up, so that the amplitude of gained control sampling is added in the corresponding sampling of the output buffer X that is stored in dedicated tunnel.Because in this course, amplitude control and add among the output buffer X and one after the other carry out in the corresponding sampling, thus might reduce to minimum to the number of samples that needs are packed in the CPU register, thus processing speed improved significantly.
The basic purpose that the sampling of carrying out step S620 to S640 forms operation is to form the whole samplings in the schedule time scope, yet, calculates step S610 because having made volume EG waveform, these samplings have fully low AEG waveform level, with abundant little volume, so do not need further calculating, thereby can reduce required operational ton.Especially, produced under the situation of damping AEG waveform, may often have been decayed fully in the scope at the fixed time midway in of the appointment of musical sound generation passage according to step S540.
, at step S650, for whether to proceed waveform form computing situation under, waveform is supplied with DMA9 and whether should end waveform sampling and calculate in the time period scope, make a decision thereafter.Supplying waveform in the time period scope in time means at this, current regeneration from the DMA9 of the waveform sampling of the former formation of dedicated memory, can preset waveform sampling in succession in the newly developed area of impact damper X, and before can the regeneration of the waveform sampling of formation be done before from the dedicated memory, the newly developed area of presetting the impact damper X of regeneration after being used for.If determine at step S650, can in time not supply waveform, and can further not proceed to calculate, just end waveform sampling and calculate, and finish waveform computation process at step S670.
If determine at step S650, can continue to calculate, just make further and determining: whether finished the calculating of waveform sampling for whole dedicated tunnel at step S660.The replying who negates down, just place first waveform sampling of musical sound generation passage in next time according to computation sequence (the next computation sequence that provides), and get ready for the waveform sampling that calculates in this next passage in step S680 appointment.When finishing such preparation, CPU1 return phase S610 is so that be the operation of this passage repeating step S610 to S640.Like this, repeatedly carry out the operation of step S610 to S660 for the passage of all appointments, and operate once for one that whenever is all passages, just the sampling that forms for schedule time scope result is added to cumulatively in the correspondence sampling of in impact damper X, storing in step 640.
When determining to have finished waveform sampling and calculate for the passage of all appointments in step S660, this waveform computation process finishes.So, newly stored the aggregate-value of the waveform sampling that forms corresponding to time range of predetermined quantity now for the passage of all appointments.
When according to the determining certainly when step S670 ends waveform sampling and calculates of step S650, newly stored the aggregate-value of the waveform sampling that forms corresponding to time range of predetermined quantity now for the passage of each appointment.
Turn to the passage that is later than the calculating termination for each calculating, do not finish waveform sampling and form, the result, the musical sound that produces by passage will be by cancellation.Yet, later because the passage of those given more inessential musical sounds of generation turns in the calculating order of step S530, so can be reducing to minimum by the adverse effect of ending to produce.Set channel register CH by this way at step S670, remain on the noise reduction state, even after the execution neutralization of next waveform formation computation process is carried out, also be like this so that so arrange the passage of tearing open outside calculating this.
With the step S340 of the process of dubbing (nott-on process) of flowcharting, carry out above-mentioned waveform and form computation process in Fig. 9 A, in this case, this process is once the operation that finishes to carry out step S350, and the process of dubbing then finishes.With the step 430 of removing sound process (note-off process) of flowcharting, carry out above-mentioned waveform and form computation process in Fig. 9 B, under process condition, this process goes the sound process to finish once the operation that finishes to carry out step S440 then.In addition, with the step S550 that goes the sound process of flowcharting, carry out above-mentioned waveform and form computation process in Figure 10, in this case, carry out the operation of step S560 to S580 once finishing this forming process, the generater of musical tone process finishes then.
In the constant circulation of the master routine of Fig. 6, repeat these periodically and dub, go sound and generater of musical tone process, so that sequentially form waveform sampling for sound reproduction afterwards.
With regard to tone generation method of the present invention, should be understood that, the deal with data step that these are separate, as order the step that produces a plurality of musical sounds to begin the step that waveform sampling calculates at interval with preset time as order, can carry out with optional order, rather than carry out with above-mentioned order.
In addition, according to musical tone generating method of the present invention, the operation of Another application software asks comprises that musical sound forms instruction, can utilize in the free time that waveform forms in the computation process and carry out.In this case, other application software can be the software as recreation, communication or office affairs processing and so on.
Above tone generation method of the present invention is described as a program of being carried out by musical sound generation equipment among Fig. 1.On the other hand, on based on the multi-purpose computer of operating system (OS), can finish tone generation method of the present invention simultaneously as a single application program and Another application program as " Windows " (window) that can buy from Microsoft spare company (Microsoft Corporation).
With regard to the present invention who has described, only need carry out once for the preparation that is formed in each passage of a plurality of waveform samplings, thereby realize the reduction significantly of system overhead.This has improved the tonequality of the musical sound that takes place and might increase the number of channels that musical sound can take place simultaneously.
In addition, calculate, can carry out this calculating and can prevent that initial musical sound from forming the unfavorable minimizing of operating the musical sound quantity that takes place in the mode of disperseing by controlling the waveform sampling that will occur when each MIDI (musical instruments digital interface) incident is imported.
In addition, carry out the input of playing information when occurring or read in operation and be included in the main step that free time of reading in operating period carries out at playing information (performance information) forming based on the musical sound control of reading in playing information or waveform, utilize this arrangement, the treatment capacity that increases when playing information occurs can be dispersed in free time, therefore youngster can be arranged avoided the temporary transient increase of treatment capacity.
Below, with reference to Figure 13 to 25B, will carry out description according to an embodiment of second aspect present invention.
In this embodiment, rely on one of multiple-task management operation thereon application program such as sequencer and Games Software be the exercisable general-purpose operating system, and the software generater of musical tone is being moved under the control of multiple-task management rather than under the control in application program.Because this arrangement, the software generater of musical tone can be handled in the essential time interval in real time works reliably, and do not carry out in the generater of musical tone when handling when soft year, can make general-purpose operating system operation so that on this operating system, carry out this application program.
When implementing the embodiment of second aspect, can use an audio frequency generation equipment that includes the hardware of setting up as shown in fig. 1, perhaps use an audio frequency generation equipment that includes the hardware of setting up as shown in figure 19.In following description, use the audio frequency generation equipment of Figure 19 to describe this embodiment supposition.
In Figure 19, has identical functions basically with the element of label identical among Fig. 1 representative and the counter element among this figure.Present embodiment is different from the embodiment of Fig. 1 aspect following in essence, present embodiment includes one and is connected to the entry terminal that is used for importing the external analog sound signal on the CODEC equipment 32, and exchanges acoustic data by bus 35 and the CODEC equipment between sound system 11 or the entry terminal 34 32 at CPU1.CODEC equipment 32 comprises a D/A (DAC) or an analog to digital converter (ADC).According to each sampling clock pulse, supply with D/A handle the digital music waveform data that forms via CPU1 through bus 35, so that the Wave data of supplying with is converted to the simulating signal that will supply with sound system 11.Simulated audio signal inputs to A/D converter so that the sound signal of supplying with is converted to the numerical data that will supply with bus 35 through entry terminal 34.When the generater of musical tone Wave data is from outer samples and is stored in the internal memory, can utilize the simulated audio signal input function and the analog-digital conversion function of entry terminal 34 easily.Fig. 1 and 19 equipment can all be equipped with selectable peripheral storage device, as floppy disk, CD-ROM drive or MO (magneto-optic disk) driver.Therefore for example, storage is used for realizing that the program recording medium (as floppy disk or CD) of the embodiment of the invention can place peripheral storage device, reads any one of all programs and sends hard disk 8 or RAM3 to so that be stored in wherein through bus 35.Then, by means of the CPU1 of this program of execution, can program as requested implement the present invention.In example shown in Figure 19, a CD-ROM drive 33 is housed for this purpose.
Figure 13 is a block diagram, the foundation of software module in this embodiment is described, wherein for brevity, only represented and the relevant part of Audio Signal Processing that needs implementation data to handle, promptly relevant part with the processing of software generater of musical tone and Wave data.
Such as represented, one group comprises that generater of musical tone (T.G.) frequency mixer Control Software 30, MIDI word preface device software 31, recreation and so on soft year 13 and the application program of waveform copy software 14 are arranged in top layer.One group system program is arranged below application program, comprising: an interface 15, can utilize the various services that provided by the system program group by its application program; A generater of musical tone (T.G.) MIDI driver 16, the work that plays MIDI generater of musical tone driver is as mentioned below in order to form a generater of musical tone (T.G.) task 20; A ripple input/output driver 17 has the function of opening the ripple input-output apparatus; An interface 18 is between generater of musical tone MIDI driver 16 and ripple input/output driver 17 and kernel program (ring 0); And outside MIDI driver 25.When processor is in User Status (ring 3), carry out these programs.
The system software group also comprises a task dispatch 19, generater of musical tone task 20, ripple task 21, frequency mixer task 22, routine library 23 that comprises the subroutine of one group of format conversion that is used for finishing mixing, frequency division and sample rate conversion or audio signal stream, and CODEC driver 24.When processor is in kernel state (ring 0), carry out these programs.
Task dispatch 19 is modules that are used for controlling, so that less important finishing of task is finished by processor then in fact again under selecting from a plurality of ready tasks (process).In the present invention, task dispatch 19 is according to so-called precedence method (the multitask method fully) scheduling of finishing the work.
As hereinafter more up hill and dale as described in, generated generater of musical tone task 20 by generater of musical tone MIDI driver 16, and generater of musical tone task 20 is that the passage (maximum 32 passages) of appointment provides waveform table complex functionality and tone color control and treatment function according to the music control parameter TGPARA that supplies with from MDI driver 16.In addition, ripple task 21 and frequency mixer task 22 have been generated according to the ripple input-output apparatus of opening by ripple input/output driver 17.Label 26 is represented a CODEC circuit, and this circuit comprises and is used for the mould/number and the D/A of input and output Wave data, and 27 represent a midi interface (MIDI I/O).Although not special expression, this system program group also comprises disc driver, memory manager program, file system, user interface etc., and these are generally comprised within the general operating system.
Below, with reference to Figure 14, being described among the embodiment according to second aspect is how to carry out particular task (process).Generate a task by carrying out CREATE (generation) instruction, and generating of task is placed " ready " state, and then put into formation.According to predetermined right of priority order, task dispatch 19 is selected of ready task from begin the formation to its processing, and this is chosen task places the " RUN " state.At this state, in case interrupt from generation time sheets such as timers, this operation task just is interrupted and is placed in once more in " ready " state and is put in the formation.Then, task dispatch 19 is selected a task from and then begin the formation to its processing, and controls like this so that carry out choosing of task.
Therefore, even when specific task is being moved, the timeslice interruption that utilization produces with preset frequency etc. also can be interrupted this task forcibly.By giving generater of musical tone task 20 higher right of priority, can carry out generater of musical tone task 20 at interval reliably with preset time.On the general calculation machine, can carry out the ripple task 21 of other tasks in a similar fashion as requiring to handle in real time.In addition, only otherwise handle carrying out non real-time, general operating system just can be operated as a single task, thereby application program that can execution moves on this operating system when handling in real time.
In case in task of operation, carry out the instruction of waiting for that special event such as SLEEP (dormancy) or PEND (unsettled) instruction occur, just this task placed " obstruction " (blocked) state and distribute another task.Then, when special event takes place, the task of " obstruction " is placed " ready " state and is put into formation.Secondly, when carrying out EXIT (withdrawing from) or DELETE (deletion) instruction, this task is placed " termination " state.
Utilize above-mentioned arrangement, generater of musical tone MIDI driver 16, generater of musical tone task 20, CODEC driver 24 and CODEC circuit 26 common realizations software generater of musical tone of the present invention.
When 15 inputs just start generater of musical tone MIDI driver 16 during a midi signal through the interface from MIDI sequencer software 31 grades.In case generater of musical tone MIDI driver 16 is activated, just handle according to the midi signal of input, as dub process, go the sound process, routine change, control break, the exclusive process of system or the like.Under the situation that the incident of dubbing occurs, generater of musical tone MIDI driver 16 plays a passage of the generater of musical tone task 20 of generater of musical tone effect to an Xinle cent dispensing, and prepares to place the music control parameter of passage distribution or appointment and dub data.This music control parameter is by handling tamber parameter parameter that obtain, that select for each MIDI passage according to note number (note number) and the performance characteristic (performancetouch) of following the incident of dubbing.When initiating task 20, ready music control parameter is sent to generater of musical tone register in generater of musical tone task 20.
This generater of musical tone task 20 has any a waveform table complex functionality and monophony input/stereo output reverberation function that is used for 32 passages, and for each frame time according to from a Wave data request that comprises the output device of CODEC driver 24 and CODEC circuit 26, initiating task 20.Generater of musical tone task 20 receives outside audio frequency input, and finishes the reverberation process according to the audio frequency input of outside and the waveform table generated data that forms thus, so that synthetic audio volume control is offered output device.
Figure 15 is an equivalent circuit diagram, the whole processing of explanation in generater of musical tone task 20, wherein 41 representatives are for any waveform table building-up processes of 32 passages, the outside stereo audio signal input process of dashed rectangle 42 representatives, and 43 represent the reverberation process.In addition, 44 represent a waveform data memory, and 50 represent the interpolation operation part, and 51 and 65 representative data conversion portions reach 52,53 and 54 and represent amplifier section.55 representative data conversion portions, it receives the stereo audio input signal of representing with the integer data form and also becomes the data of representing with relocatable receiving data-switching, and then output left channel signals L, right-channel signals R and a signal of representing left and right sound track signals sum L+R.In addition, 56,57,59 and 62 represent the totalizer part, 58 and 64 representatives are used for the totalizer part of interleave data, 60,61,63,66 and 67 represent impact damper, reach 65 and represent a data conversion portion, be used for a data-switching of representing with relocatable is become the data of representing with the integer data form.The stereo audio input signal of giving data-switching part 55 can be from the signal of CODEC circuit 26 or the signal that passes on through ripple input/output driver 17 from waveform copy software 14.
Although traditional hardware generater of musical tone forms Wave data and must be through D/A switch, software generater of musical tone of the present invention and audio frequency I/O one frame one frame ground processing Wave data for each sampling.With the term " frame " here is a base unit of given process, and software generater of musical tone of the present invention is that sampling predetermined quantity, that conform to the replicative cycle of about 5ms (millisecond) distributes a buffer zone with the audio frequency I/O, and this buffer zone is used as a frame.The size of this impact damper depends on waveform calculated rate (sampling frequency).In Figure 15, each of impact damper 60,61,63,66 main 67 all has the capacity of a frame.
In addition, in Figure 15, each thick-line arrow is all represented 32 bit data of representing with relocatable, and each thin-line arrow is all represented 16 integer datas.All be used for storing 32 bit data of representing with relocatable with each of the impact damper 60,61,63 of thick line box indicating, and all be used for storing 16 integer datas with the impact damper 66 of fine rule box indicating and each of 67.
In the CPU that native system uses, the floating-point multiplication is carried out sooner than integer increases, so signal Processing realizes with relocatable as far as possible.Yet, by the most of Wave data that is stored in the waveform data memory 44,44 is 8 integer datas, think and reduce the essential execution time, interpolative operation part 50 realizes multiplication with integer form, and data-switching part 51 becomes floating point representation to the multiplication data-switching that forms then.
Ripple game clock building-up process 41 consists essentially of waveform interpolation and gain is adjusted.Interpolative operation part 50 utilizes the tone information of supplying with from generater of musical tone MIDI driver 16 (pitchinformation) the Wave data interpolation of reading from waveform data memory 44, and data-switching part 51 converts the interpolative data of each formation to floating point representation again.Pass to three output channels from the output of conversion portion 51, promptly be divided into left channel signals L, right-channel signals R and reverberation input signal L+R, these signals are given amplifier section 52,53 and 54 separately, utilize from the information volume of generater of musical tone MIDI driver 16 supplies again and amplify; This information volume is the data that the volume envelope signal times by producing passage with each musical sound obtains with the level of three output channels.The Wave data that produces passage output from each musical sound adds through totalizer part 56,57 and 62 is in the same place, from data-switching part 55 also respectively to totalizer part 56,57 and 62 for left channel signals L, right-channel signals R and left and right sound track signals sum L+R that outside stereo audio signal is arranged.Therefore, totalizer part 56,57 is mixed the Wave data of all passages with outside stereo audio input signal mutually with 62.
Output data from totalizer part 56 and 57 deposits into respectively in DRYL impact damper 60 and the DRYR register 61, and deposits in reverberation (REV) impact damper 63 from the output data of totalizer part 62." L+R " data that so are stored in the reverberation impact damper 63 are passed to the reverberation process 43 that is used for the reverberation operation.The reverberation data (reverberant sound data) that form are subjected to gain control independently for left and right acoustic channels L and R, and then are added to respectively on the data that are stored in impact damper 60 and 61.After this, data-switching part 65 further converts these reverberation data to integer form, and gives the D/A of CODEC circuit 26 through impact damper 66 and 67 as the audio frequency output data.
To explain the processing timing of these operations with reference to Figure 16, wherein transverse axis is a time shaft, and in the processing of (A) on time shaft representative in generater of musical tone MIDI driver 16, and in the processing of (B) below time shaft representative in generater of musical tone task 20.In addition, in Figure 16, several first and second lines are represented audio data stream from the bottom, and " audio input device " is a Wave data loading routine, be used for receiving data of sending here from CODEC circuit 26 and the Wave data that converts digital form to, and " audio output apparatus " is a Wave data written-out program, is used for data-switching is become analog form and Wave data is outputed to CODEC circuit 26.
All processing in the native system are handled preferential powers and functions according to it and are divided into three main processes.Have first or the group of highest priority be the process that starts generater of musical tone MIDI driver 16 by the midi signal that provides as the time look-at-me, finish during this period midi signal converted to music control parameter.Yet, when directly when application program receives midi signal rather than interrupt as timer, this process third level or the minimum right of priority of giving generater of musical tone MIDI driver 16.Give generater of musical tone task 20 second level right of priority, this generater of musical tone task 20 is by from the READY information of audio frequency input/output (i/o) buffer (promptly, the OUTPUTREADY information that when data that needs are followed, produces from audio output apparatus, or the INPUT READY information that when audio input device is prepared to transmit data, produces) start from this equipment, when generater of musical tone MIDI driver 16 sends new music control parameter information, then start, perhaps when generater of musical tone MIDI driver 16 is equipped with Wave data, then start by the WAVE LOAD REOUEST information that produces from this driver 16 by the TG PARARECEIVED information that produces from this driver 16.The right of priority that MIDI sequencer software and other application programs are given is minimum.
In the processing (B) in the generater of musical tone task 20 of Figure 16, the data processing that is used for a frame comprises following operation: (1) reads input audio data; (2) handle music control parameter; (3) be formed for the waveform of 32 passages; (4) carry out the pressure decay if necessary; (5) send the generater of musical tone state; (6) carrying out reverberation calculates; And pass on data (7) as the audio frequency output data.In these operations, the waveform calculating operation that is used for 32 passages in clauses and subclauses (3) above includes maximum load and the maximum fluctuation on CPU, therefore very may can not finish essential calculating in the cycle of a frame.In view of this, in all operations, carry out this uncertain operation at last and be reasonably, therefore arrange native system to begin to handle rather than begin to handle from the operation of clauses and subclauses (1) from the operation of clauses and subclauses (5).
Clauses and subclauses (5) to the operation of (7) is appointed as the sequence of operations that starts by OUTPUT READY information from audio output apparatus.In case receive OUTPUTREADY information and started generater of musical tone task 20, in order to call CALL BACK (callback) function of MIDI driver 16, just give generater of musical tone MIDI driver 16 in the operation of clauses and subclauses (5) the generater of musical tone state of the operable state of expression task 20 (TG STATUS).In CALL BACK function, generater of musical tone MIDI driver 16 is read TG STATUS and the musical sound of the voice signal that comprises music control parameter and prepare for task 20 is formed the generater of musical tone register that parameter TG PARA puts into generater of musical tone task 20.Then, generater of musical tone task 20 starts reverberation in clauses and subclauses (6) to be calculated, and wherein utilizes the Wave data that is stored in the impact damper 63 to carry out reverberation and calculates and the computational data that forms is added in each impact damper with a frame capacity 60 to 61.After this, generater of musical tone is appointed and is equipped with 20 and starts the above voice data output function of clauses and subclauses (7), wherein, the Wave data that is stored in DRYL impact damper 60 and the DRYR impact damper 61 is converted to a frame Wave data so that send to output driver.Then, this operation series stops.
It after the operation of clauses and subclauses (7) audio frequency input operation by the clauses and subclauses (1) of INPUT READY information startup.Because it is ready before output data is ready in fact to import data, as shown in Figure 16, so follow the operation that clauses and subclauses (1) is just called in the operation of clauses and subclauses (7).When the audio frequency input operation, from audio input device or ripple input/output driver 17, read in frame input data.
At last, clauses and subclauses (2) to the operation of clauses and subclauses (4) is carried out as system operation, utilizes the information that has acknowledged receipt of musical sound formation parameter TG PARA to start this series operation.Form parameter TGPARA because in fact before the operation of clauses and subclauses (6), received musical sound, so follow these operations of the operation start clauses and subclauses (2) of clauses and subclauses (1) to clauses and subclauses (4).In the operation of clauses and subclauses (2), form the TG PARA decoding of parameter and convert the waveform computational data to be stored in musical sound in the generater of musical tone register, that comprise music control parameter and voice signal by generater of musical tone MIDI driver 16.Then, in the operation of clauses and subclauses (3), be that any one of 32 passages carried out waveform and formed computation process.Passage for each appointment, move with the speed that conforms to the tone that will produce waveform data memory 44 read read Wave data in the address, interpolation between the sampled data of reading, and then according to realizing volume control, by realizing that with operation waveform forms computation process based on the interpolative data of information volume such as volume bag (AEG).On L channel L, R channel R and reverberation sound channel L+R, carry out musical sound control independently of each other, and a volume control waveform data frame, that be used for three sound channels are added to separately impact damper 60,61 and 63.
The processing that is used for frame that is through with and is discussed is finished in operation by clauses and subclauses (3), makes the arrival of general operating system up to next OUTPUT READY information then.As shown in left half (b), even when receiving the OUT PUT READY information of next time, form computation process if the waveform of clauses and subclauses (3) forms not finish then also to force to end waveform, and this moment, the passage that not have to calculate is carried out forced to decay so that avoid the appearance of unnecessary noise.According to this embodiment, passage for appointment, since a specific passage sequentially is that any one of 32 passages carried out the waveform calculating operation, for example, this specific passage is sending the musical sound of higher level now, if end forcibly in the above described manner, then this musical sound can bring about tangible results.
Generater of musical tone 20 the term of execution, when the timer of higher-priority interrupts producing midi event, transfer control to forcibly on the musical sound ground generator MIDI driver 16, and corresponding to the operation of midi event, shown in the part (A) of Figure 16, wherein the generation of seven midi events is drawn with downward arrow.
With reference to the process flow diagram of Figure 17,18A and 18B, above-mentioned generater of musical tone task 20 will be further described.
At first, in this generater of musical tone task 20 of step 100 generation of Figure 17, and the generater of musical tone task 20 that produces at step 101 handle places the SLEEP state.Utilize the generation of incident, reception as information, the generater of musical tone task 20 that places the SLEEP state is waken up READY (ready) state that enters, and when utilizing the task dispatch scheduling to be in the task 20 of READY state, in order to determine that this event routine forwards step 102 to.In other words, determine that in step 102 incident is (a) READY information from audio input/output device, still (b) from WAVE LOAD (ripple carries) request of generater of musical tone MIDI driver 16, or from the parameter TG PARA confirmation of MIDI driver 16.
If in step 102 definite event is READY information from audio input/output device, then program branches is to step 103, here further determine this information be from audio output apparatus OUTPUT READY (exporting ready) or from INPUT READY (the importing ready) information of audio input device.If this information is the OUTPUT READY from audio output apparatus, then places " 1 " and TG STATUS is sent to MIDI driver 16 (operations of Figure 16 clauses and subclauses (5))-place " 1 " triggering that sign places " 0 " and when receive OUTPUT READY information triggering being indicated when the waveform that stops clauses and subclauses (3) forms when calculating triggering sign in step 104.Then, in step 106, determine reverberation effect be ON (connection) also whether.If answer is yes in step 106, then carry out reverberation and calculate (operations of clauses and subclauses among Figure 16 (6)) in step 107, program forwards step 108 again to then; Otherwise direct of program forwards step 108 to and does not carry out the operation of step 107.In step 108 outputting audio data (operations of clauses and subclauses among Figure 16 (7)), program again return phase 101 to return the SLEEP state.
If in step 103 definite event is INPUTREADY information from audio input device, then program forwards step 109 to find out the state that triggers sign.Be in " 1 " if trigger sign, then program forwards step 110 to read in audio input data (operations of clauses and subclauses among Figure 16 (1)) and then return phase 101 to return the SLEEP state.If the triggering sign of determining in step 109 is in " 0 ", then program return phase 101 is to return the SLEEP state.As previously mentioned, when the waveform of clauses and subclauses (3) forms the calculating termination, be changed to " 0 ", when receiving OUTPUT READY information, then sign be changed to " 1 " triggering sign.Therefore, by find out the current state that triggers sign in step 109, can control to prevent before according to OUTPUT READY information processing, carrying out information processing according to INPUT READY.If in step 102 definite event is from the WAVE LOAD of generater of musical tone MIDI driver 16 request, then program forwards step 111 to so that Wave data read in and deposit in storer, and then return phase 101 is to return the SLEEP state.WAVE LOAD request is the information that the initialization for generater of musical tone task 20 grades produces from MIDI driver 16.
If in step 102 definite event is the affirmation information of parameter TG PARA, then program branches is to step 112, here according to placing the music control parameter TG PARA of generater of musical tone register to handle (operations of Figure 16 clauses and subclauses (1)) by MIDI driver 16.More precisely, determine the generater of musical tone controlled variable, as waveform data memory address, tone information, EG (bag) parameter, mobile data and LFO (LF oscillator) control data by the music control parameter TG PARA that receives.Then, program moves on to step 113 to determine whether current state is TG EXIT (withdrawing from).Determine that for sure this task stops in step 116; For determining of negating, program run is finished waveform formation computation process (operations of clauses and subclauses among Figure 16 (3)) for the passage of appointment (maximum 32 passages) here to step 114, as reference Figure 18 A and 18B will be more completely as described in.After the waveform of step 114 formed computation process, program proceeded to step 115 and resets to " 0 " so that trigger sign, and then return phase 101 is to return the SLEEP state.
With reference to Figure 18 A and 18B, the waveform of finishing in above-mentioned steps 114 forms computation process hereinafter with for a more detailed description.Beginning in step 200 waveform formation computation process just at first determines whether to have new connection data in step 201.If determined that in step 201 new connection data are arranged, then program forwards step 202 to so that determine to give birth between musical sound the calculating order of passage again.This is may answer above-mentioned OUTPUTREADY request to end sometimes on the way because these calculate, and the calculating that therefore is used for important channel may be finished in advance.Reach in the following description in the drawings, the musical sound that " C " representative is calculated by channel register produces the quantity of passage.
After this step 202, perhaps step 201 has in front determined there are not new connection data, program forwards step 203 to, here being changed to " 0 " to finishing the counter i that number of channels that waveform forms computation process counts, and among port number c and the port number R that allows to produce simultaneously musical sound less one be set to variable vNum.Variable vNum is the variable of the representative number of channels that will calculate.After this, for the count value of determining counter i whether less than variable vNum, program forwards step 204 to.If the answer is in the negative, that is,, then stop waveform and form computation process in step 209 if the count value of counter i is equal to or greater than variable vNum.
If answer is yes, that is, if the count value of having determined counter i in step 204 less than variable vNum, then program forwards step 205 to so that further determine whether to have occurred OUTPUT READY request.Determine that for sure program forwards step 206 to so that realize pressure decay (operations of clauses and subclauses among Figure 16 (4)) to the sound signal of channel C H (i).If the answer is in the negative in step 205, then finish waveform and form computation process at step 207 couple channel C H (i), as reference Figure 18 B will describe in detail.In the pressure of step 206 decay or after the waveform of step 207 formed computation process, program forwarded step 208 to the i that accelerates, and then return phase 204 is so that to the operation of next passage i+1 repeating step 204 to 208.
With reference to Figure 18 B, will the details that the waveform of each passage is formed computation process be described.By the sequence of operations of step 211 to 218, this waveform forms computation process and forms Wave data with a sampling of " i " passage.Therefore, by repeating the Wave data that these operations are formed for a plurality of samplings.When step 210 beginning waveform forms computation process, according to the integral part of reading address (readPtr) that when carrying out waveform formation last time computation process, has calculated in step 214, read a Wave data that interpolating sampling is necessary from waveform data memory, and between the Wave data of reading, carry out interpolation according to the fraction part of this address and calculate, thereby form the sampling of an interpolation.At next step 212, carry out to be added to the volume level calculating of the data in DRYL impact damper 60, DRYR impact damper 61 and the REV impact damper 63.Realize that by parameter summation this volume level calculates to the level of volume envelope AEG, volume VOL, tuning AM, W movement value PAN and three passage SENDLEVEL (conveying level).Then,, multiply by each volume levels of three passages, then result of product is added in separately the impact damper with corresponding interpolative data in step 213.
After this, program forward step 214 in case by add " F " number (tone information) produce one be used for reading waveform data memory 44 newly read address read Ptr.Read address read Ptr by so increasing, will from waveform data memory (waveform table), read waveform with the tone that conforms to the F number with the speed that conforms to the F number.In this case, if the F number has fraction part, then can realize meticulousr tone control.Then, program forwards step 215 to upgrade volume envelope AEG.At next step 216, whether definite volume of upgrading or amplitude envelope line AEG be less than predetermined cut-out level.If the answer is in the negative in step 216, then program forwards step 217 to renewal LFO, and then forwards step 218 to so that carry out the operation that flattens (being the interpolation operation) according to volume parameters VOL and moving parameter PAN.These steps 215,217 and 218 details will be described below.At next step 219, determine whether to also have other sampling to form, that is, whether the formation that is used to discuss a frame waveform sampling of passage is not still finished.For determining that affirming of step 219 promptly, if still have other sampling to form, then the program return phase 211; If the answer is in the negative, just mean that having finished waveform for all samplings of this passage forms computation process, therefore in step 221, program just stops the waveform of this passage step 207 is formed computation process.
On the other hand, if the volume value of having determined in step 216 to upgrade less than predetermined cut-out level, then program forwards step 220 to and so that carry out cutting-off process this passage is placed the noise reduction state.At next step 221, program stops the waveform of this passage step 207 is formed computation process.
To explain above-mentioned envelope and LFO waveform with reference to Figure 25 A and 25B.Figure 25 A represents the exemplary of envelope (EG) waveform, and this envelope waveform comprises rising, decline, keeps and disconnect section.More precisely, in case the connection incident takes place, amplitude of wave form just is raised to maximum level (EGMAXlevel) (ascent stage) rapidly with the slope of escalating rate (ATKrate), slope with rate of descent (DCrate) is reduced to maintenance level (descending branch) from maximum level, keeps constant maintenance level (SUSlevel) (keeping section) then in the given time.When receiving the cut-out event data, amplitude of wave form reduces with the slope of disconnection rate (RLSrate).Then, in case when amplitude reaches the unheard cut-out level of people's ear, just reduce rapidly to prevent to produce unnecessary noise with attenuation rate (DMPrate).
LFO (LF oscillator) waveform is used to obtain being used for modulating the waveform of tone waveform, and in fact the LFO waveform is the sawtooth wave with LFO cycle of being determined by slope LFOrate, as shown in Figure 25 B.By tabling look-up or utilizing the LFO ripple to carry out arithmetical operation, just can obtain essential modulation waveform such as sine wave.
The variation of these EG waveforms and LFO waveform is than slow many of tone waveform sampling circulation.In fact, when the waveform to " i " passage shown in Figure 18 B forms calculating, to each interpolation operation (step 218) of sampling and upgrading amplitude EG and LFO (step 215 and 217) and carrying out volume and movement value, carry out these calculating once to the sampling circulation of every group of greater number rather than to each sampling circulation, because as described, the variation of EG waveform and LFO waveform is than slow many of tone waveform sampling circulation.By doing like this, just can reduce waveform and form necessary calculated amount.
In Figure 20, the waveform of having represented to be used for " i " passage forms the improvement embodiment of computation process, and it is per eight once sampling that this embodiment carries out above-mentioned amplitude EG and LFO renewal and volume and moving parameter interpolation.Yet, should be appreciated that the frequency of these operations needs not to be per eight once sampling, but can select any one best frequency according to the load of processing speed or CPU.In Figure 20, waveform forming process at step 231 beginning " i " passage, in step 231 the counter SN that is used for counting sampling is reset to " 0 ", and in step 232, from waveform data memory, to read necessary waveform sampling and the interpolation operation is carried out in these samplings with above-mentioned steps 211 similar modes.Then, in step 233, multiply by each volume level that had calculated in step 250 when carrying out this computation process last time with corresponding interpolative data, and result of product is added in the impact damper of respective channel.After this, program forwards step 234 to and newly reads the address with what generation was used for reading waveform data memory.
Then, in step 235, determine whether the count value of counter SN is the multiple of " 0 " or " 8 ".If answer is yes in step 235, meaning then that EG and LFO calculate will carry out in existing sampling, so program forwards step 236 to upgrade amplitude (EG) and then to forward step 237 to.On the other hand, if the count value of counter SN is not " 0 " but the multiple of " 8 ", then program forwards step 237 to and does not upgrade AEG.In step 237, determine that further whether existing AEG value is less than cutting off level.If the answer is in the negative, then program forwards step 238 to so that whether further determine EG and LFO calculating carries out in existing sampling, and this is similar to step 235.If determine it is sure in step 238, then upgrade LFO and on volume and moving parameter, carry out the interpolation operation in step 240 in step 239, upgrade the data volume utmost point of three passages then in step 241.These operations are finished the waveform that is used for existing sampling and are formed, and program forwards step 242 to.
If the answer is in the negative in above-mentioned step 238, mean that then existing sampling is not subjected to LFO and upgrades operation etc., therefore the waveform formation of existing sampling have been finished, program forwards step 242 to.In step 242, determine that whether all samplings have been finished waveform forms computation process, that is, whether also have other sampling to handle, repeat after sample counter SN increases by one in step 232 and aforesaid operations afterwards.
If determined existing AEG value less than cutting off level in above-mentioned step 237, then program branches is to the cutting-off process of step 244, and here amplitude of wave form reduces rapidly with the attenuation rate of Figure 25 A, therefore " i " passage is finished the waveform forming process.
Improvement embodiment according to Figure 20, it is that per eight samplings are carried out once that the volume level that step 236 and 239 AEG and LFO upgrade the volume of operation, step 240 and operation of movement value interpolation and step 241 calculates, as a result, with the embodiment shown in Figure 18 A and the 18B mutually specific energy alleviate the assumed (specified) load of CPU fully.
In Figure 21, represented that another waveform that is used for " i " passage forms the improvement embodiment of computation process, wherein the operation of step 261 to 266 and the step 231 described in Figure 20 to 236 identical, the operation of step 267 to 269 and last art step 239 to 241 identical, the operation of step 270 is identical with above-mentioned steps 237, and the operation of step 271 to 273 and above-mentioned steps 242 to 244 is identical.Therefore, the detailed content of these steps will no longer be described to avoid unnecessary repetition in Figure 21.
According to the improvement embodiment of Figure 21, if determined EG and LFO calculating not to be carried out in existing sampling in step 265, then program jumps to step 270 so that determine that further whether existing AEG value is less than cutting off level.On the other hand, if determined that in step 265 EG and LFO are carried out in existing sampling to be calculated, then execution in step 266 and 267 AEG and the LFO volume of upgrading operation, step 268 and the interpolation operation of movement value and the volume level of step 269 calculate continuously.
In other words, in Figure 20, the LFO that the AEG of step 236 upgrades operation and step 239 upgrades the volume of operation, step 240 and volume level calculating that moving parameter inserts operation and step 241 to be separated and carries out, and after upgrading operation, AEG determines that whether existing AEG value is less than cutting off level, different with this embodiment, the embodiment of Figure 21 arranges by this way: collective or carry out and then these the continuous operations of determining of these operations and AEG value continuously.Adopt this arrangement, compare, can fully reduce assumed (specified) load or the calculated amount of CPU among the embodiment of Figure 21, although assumed (specified) load is a bit larger tham the embodiment among Figure 20 with the foregoing description of Figure 18 B.
Although arrange these embodiment to reduce calculated amount by the renewal of every group of predetermined number bigger sampling carrying out AEG, a LFO etc. is operated, belong to that waveform segment according to existing sampling, can determine whether realize that EG calculates.For example, can be only to rise and descending branch in sampling carry out that EG calculates and calculate keeping sampling in the section can save EG because the sampling in keeping section is in steady state.Calculate by so saving EG, also can reduce essential calculated rate.
Below, with reference to Figure 22 the details that AEG upgrades operation (step 266 of the step 215 of Figure 18 B, the step 236 of Figure 20 and Figure 21) will be described.AEG upgrades operation at the beginning, just reads in existing value and the performance trigger message (TOUCH) of EG parameter (EGPARA), amplitude EG (aeg) in step 301.This EG control information typically comprises each duration of each waveform segment of the musical sound that passage through discussion produces and desired value (EGMAXlevel and SUSlevel) and escalating rate (ATKrate), rate of descent (DCrate) disconnection rate (RLSrate).
Then, in step 302, determine whether current state is on-state.If the answer is in the negative in step 302, mean that then current state is a dissengaged positions, and control forwards step 303 to transfer to the disconnection section.If current state is an on-state, then control forwards step 304 to, determines further here whether present segment is to keep section other sections in addition.If the answer is in the negative in step 304, that is,, mean that then AEG is in steady state if present segment is to keep section, therefore stop AEG immediately and upgrade operation.On the other hand, if determined that in step 304 present segment is maintenance section other sections in addition, then program forwards step 305 to realize the AEG renewal.
Because the present invention handles the EG value as integer,, upgrade so carry out AEG as follows although store the rate value of EG parameter such as every section independent EG section with real number form.That is, set so in an embodiment: if f>0, then m=n+1, and K=RATE/ (n+1); And if f=0, then m=n, and K=RATE/n=1, wherein on behalf of the rate value of present segment and n and f, RATE represent the integer and the fraction part of this rate value respectively.By aggregate-value " K ", and, this aggregate-value once just round values " m " is added to (aeg) last time on the existing AEG value, renewal AEG when surpassing " 1 ".By doing like this, can be added to little manifold with the probability of RATE/m and hold together on the value " m ", this just is equivalent to go up renewal AEG value by " m (RATE/m)=RATE " being added to existing AEG value (aeg).
For this purpose, in step 305 value " K " is added among the aeg fraction registers AEGFRA, this register is a register that is used for adding up described value " K ".In step 306, whether the existing value of determining to be stored among this fraction registers AEGFRA has become greater than " 1 ".For determining of negating, AEG upgrades EO and does not upgrade this existing AEG value.In case the existing value in fraction registers AEGFRA surpass " 1 " and step 306 determine become sure, program just forwards step 307 to, m=(the integral part n+1 of the slope value of present segment) is added to existing AEG value (aeg) here and goes up to obtain new AEG value (aeg) and to multiply by new AEG value so that the AEG value that obtains upgrading with performance trigger message TOUCH.
In next step 308, value in fraction registers AEGFRA subtracts one so that preparing the next time of " K " accumulative total carries out, and determines in step 309 whether AEG value (aeg) has reached desired value (at EGMAXlevel under the ascent stage situation and the SUSlevel under the descending branch situation) then.If answer is yes in step 309, then program jump is to the next waveform segment of step 310; Otherwise AEG upgrades EO and does not carry out the operation of step 310.
Below, with reference to Figure 23 the details that LFO upgrades operation (step 267 of the step 217 of Figure 18 B, the step 239 of Figure 20 and Figure 21) will be described.Because the present invention handles the LFO parameter as integer,, upgrade so carry out LFO with the probability calculation that is similar to the EG value although it is to store with the form of real number.At first, in step 321, read in the LFO control data of present storage, that is, LFO speed (LFOrate) is worth (lfop) mutually with existing LFO.
After this, be similar to the EG value, set like this: if f>0, then m=n+1, and K=LFOrate/ (n+1); And if f=0, then m=n, and K=LFOrate/n=1, the wherein LFO rate value read of LFOrate representative, and n and f represent the integral part and the fraction part of rate value respectively.By aggregate-value " K " and when this aggregate-value surpasses " 1 " round values " m " is added on the existing LFO value (lfop), upgrades the LFO value.
For this purpose, in step 322 value " K " is added among the lfop fraction registers LFOFRA.In step 323, determine whether the existing value of storing becomes greater than " 1 " in this fraction registers LFOFRA.For determining of negating, LFO upgrades EO and does not upgrade existing LFO value.In case the existing value in fraction registers LFOFRA surpass " 1 " and step 323 determine become sure, program just forwards step 324 to, m=(the integral part n+1 of LFOrate) is added to existing LFO value (lfop) here and goes up to obtain new LFO value (lfop).
At next step 325, the value in fraction registers LFOFRA is subtracted one to carry out the next time of beamhouse operation, determine in step 326 whether existing LFO value (lfop) has reached desired value then.If answer is yes in step 326, then program resets to " 0 " to existing LFO value (lfop).Like this, form the LFO value of zig-zag, as shown in Figure 25 B.Then, in step 328, by be worth the amplitude that (lfop) tables look-up or calculate predetermined LFO waveform mutually according to existing LFO.
Above provided the description about the most preferred embodiment of this method, wherein the LFO value of the zig-zag shown in Figure 25 B of Chan Shenging is used as modulation, or produces multiple modulation waveform according to the LFO value of these zig-zags.
On the other hand, can be by other direct arithmetical operation or only utilize and sequentially consult the LFO value that predetermined modulation waveform table needing to obtain modulation waveform.
Below, with reference to Figure 24 volume and movement value interpolation operation (step 268 of the step 218 of Figure 18 B, the step 240 of Figure 20 and Figure 21) will be described.Volume and mobile message are by user's operating and setting.In step 331, determine whether the existing value of information volume (vol) does not also reach user's target value set.If existing information volume value (vol) has reached user's target value set, then produce negate definite in step 331, program just forwards step 333 to; If existing information volume value (vol) does not also arrive user's target value set, then produce sure determining in step 331, program just forward to interpolation operation that step 332 carries out these vol data with interpolation to data as new vol data.
In step 333, determine whether the existing value of mobile message (pan) does not also reach user's target value set.If existing mobile message value (pan) has reached user's target value set, then produce negate definite in step 333, program just stops this operation; If existing mobile message value (pan) does not also reach with the user target value set, then produce sure determining in step 333, program just forward to interpolation operation that step 334 carries out mobile data with the data after the interpolation as new pan data.
Though the above embodiments are to start generater of musical tone task 20 according to duplicating the OUTPUT READY information that produces when finishing by output driver at a frame, can certainly differently arrange.For example, can start generater of musical tone task 20, because in the operation that can finish clauses and subclauses (5) to (7) than a frame time in the short time at the intermediate point place that a frame duplicates.In addition, reduced to initiating task 20 when being lower than predetermined quantity, rather than in a frame has time of constant time span, started generater of musical tone task 20 when detecting the Wave data that places output driver.
And waveform computing method of the present invention not only can realize in the mode of software generater of musical tone, but also can realize in the mode of loading onto the special-purpose musical sound generation equipment that conforms to OUTPUT READY information in electronic musical instrument.
Moreover, the Wave data of above-mentioned formation and outside incoming wave graphic data synthetic, and form the insertion of outside incoming wave graphic data in the interstage of computation process at waveform and be not only applicable to the software generater of musical tone, but also be applicable to the special-purpose musical sound generation equipment that is contained in the electronic musical instrument.
And, although the embodiment that has described is the operation of carrying out clauses and subclauses (5), (6), (7), (1), (2) and (3) by described order successively, also can carry out these operations by any other order.
In addition, the above-mentioned waveform calculating operation of clauses and subclauses (3) can be divided into a plurality of parts separately to carry out, rather than carries out continuously as in the above-described embodiment.
Moreover, although most preferred embodiment is described as be at the setting of collectively carrying out musical sound distribution and generater of musical tone register in the midi event interrupt procedure, distribute but only can carry out musical sound in interrupt procedure, perhaps interrupt procedure can be operated so that the midi event that takes place is read in the impact damper.In this case, can when generater of musical tone is handled, carry out the setting of musical sound distribution and generater of musical tone register, rather than in the midi event interrupt procedure, carry out.In addition, can in the timer interrupt procedure of separating, carry out with above-mentioned midi event interrupt procedure.
And, can carry out above-mentioned interrupt procedure for any other playing information processing, rather than be limited to the musical sound distribution and read in operation.
In addition, tone generation method of the present invention should not be construed the method that only limits to based on wave memorizer, and this method can be based on any other principle, as FM (frequency modulation), physics mode or ADPCM.
With regard to the present invention who has described, in the optional general-purpose operating system, can carry out waveform with stable manner and form calculating.
And according to the request from the waveform copy part, the present invention allows to export rapidly output waveform data easily.
And, with regard to the present invention, allow the software generater of musical tone to carry out the tone color control procedure according to the incoming wave graphic data of outside.
And, owing to the corresponding treatment capacity that increases, make the generater of musical tone process can not carry out enough degree, even in this occasion with the appearance of playing information, the present invention also can be with some other time cover the shortage, therefore can stablize the generater of musical tone processing effectively.
Moreover, can be distributed to free time to the treatment capacity that playing information increases, thereby can avoid the temporary transient increase of treatment capacity effectively.
And, carrying out EG waveform and LFO by interruption and calculate, the present invention can reduce waveform and form essential calculated amount, and thereby has reduced to be used for the processing load that waveform forms effectively.

Claims (20)

1. tone generation method comprises:
First step receives the one or more of musical sound that produce one or more appointments and instructs;
Second step, respond described the instruction, the musical sound of appointment is distributed to the corresponding musical sound that a plurality of musical sounds produce in the passages produce passage, and the corresponding musical sound that control data writes with the musical sound of described appointment has been assigned to of the musical sound that is used to specify is produced in the corresponding channel register of passage;
Third step, order is sent the calculating sign on;
The 4th step, respond each described calculating sign on, a plurality of musical sounds are produced passage carry out musical sound formation calculating,, a plurality of musical sounds are produced the Wave data that passages form a plurality of samplings with centralized system so that according to the control data in the described channel register that is stored in described passage;
The 5th step mixed produces the Wave data of a plurality of samplings that passages form by described the 4th step to a plurality of musical sounds, so that form the mixed sampled data of a plurality of samplings; And
The 6th step cushions the mixed sampled data of described a plurality of samplings and the mixed sampled data that low-pass filtering or reverberation effect are cushioned.
2. tone generation method as claimed in claim 1 also comprises the 7th step, is used for will becoming simulating signal for a plurality of sample conversion of the mixed sampled data in a plurality of sampling periods in each sampling period.
3. tone generation method as claimed in claim 1, wherein said the 4th sequence of steps ground produces passage to corresponding musical sound and carries out musical sound formation calculating, so that before carrying out described musical sound formation calculating, according to the control data of from described channel register, reading, formed a plurality of samplings of Wave data a plurality of sampling periods with arithmetic mode.
4. tone generation method as claimed in claim 1 wherein in described the 4th step, after forming described Wave data, writes control data in the described channel register.
5. tone generation method as claimed in claim 1, wherein said the 4th step is carried out and is calculated so that musical sound is produced the Wave data that one of the passage concentrated area forms a plurality of samplings, carry out then and calculate so that another musical sound is produced the Wave data that the channel set mesorelief becomes a plurality of samplings, thus each musical sound is produced passage and carry out musical sound formation calculating in proper order, and wherein said the 5th step is can be mixing the select location that sampled data wherein the mode of being formed at cushions the impact damper of a plurality of samplings, and each musical sound that accumulative total is formed by described the 4th sequence of steps produces each corresponding sampling the in a plurality of samplings of passage.
6. tone generation method as claimed in claim 1, wherein said third step also comprise with predetermined interval and send described calculating sign on.
7. tone generation method as claimed in claim 1 wherein will be produced according to described generation instruction by the described control data that described second step writes in the described channel register.
8. tone generation method as claimed in claim 1, wherein said the 4th step is carried out musical sound according to predetermined condition and is formed calculating, and simultaneously for comparing with other passages, at least one passage that current generation has the musical sound of higher volume gives priority.
9. tone generation method as claimed in claim 1, also comprise the step that is used for before described first step receives described one or more the instruction, being provided with a predetermined restrictive cycle, and determining between third step and the 4th step that musical sound forms the step whether calculating all will be finished in predetermined restrictive cycle for all appointment musical sounds produce passage, if and determined it is not that musical sound formation is calculated all and will be finished for all musical sounds produce passage in predetermined restrictive cycle, would then instruct musical sound at least one musical sound produces passage, to be suppressed.
10. tone generation method as claimed in claim 1, also be included in before the 4th step, calculate sign in response to each, according to the corresponding importance that will produce the musical sound that produces in the passage at the musical sound of appointment, determine the step of the computing order on the musical sound generation passage of appointment, and wherein said the 4th step forms calculating according to by the definite computing order of determining step the musical sound generation passage of appointment being carried out musical sound.
11. tone generation method as claimed in claim 1, wherein said the 4th step is carried out musical sound according to the computing order of being scheduled to the musical sound generation passage of each appointment and is formed calculating, and wherein, the musical sound that is undertaken by described the 4th step can not finish in the given time and will interrupt by the sampled data of described the 5th step output the time when forming to calculate, described the 4th step is forming and disconnects musical sound on the time point that calculates and form and calculate carrying out musical sound on one of passage according to the computing order, is interrupted by the sampled data of described the 5th step output preventing.
12. tone generation method as claimed in claim 11, also comprise musical sound form is calculated should be interrupted, give the envelope of decay fast at waveform according to the passage after one of described passage of computing order, stop the musical sound generation of one of described passage thus.
13. tone generation method as claimed in claim 11, wherein arriving will be before the moment to one of described passage interruption musical sound formation calculating, one or more other passages before being arranged in one of described passage according to the computing order are finished the musical sound formation calculating of the Wave data that is used to form a plurality of samplings, and described the 5th step is exported the mixed sampled data of the described Wave data of a plurality of samplings for one or more other passages.
14. tone generation method as claimed in claim 1, also comprise the steps: when forming the computing interval and receive when taking place to instruct carrying out musical sound by described the 4th step by described first step, carry out control, form calculating with the musical sound that temporarily stops described the 4th step, execution is used to import the predetermined input process of the generation instruction of reception, and after described input process, the musical sound that recovers described the 4th step forms and calculates.
15. tone generation method as claimed in claim 1 also comprises:
The 7th step is carried out a predetermined operating system; And
The 8th step responds the request of described the 6th step, and between described first to the 5th step and described the 7th step, carry out task and switch, and
Wherein said first step is according to described instruction of command reception of the application program of carrying out in the comfortable described scheduled operation system.
16. tone generation method as claimed in claim 1 also comprises:
The 7th step is imported the outside Wave data corresponding to the predetermined cycle,
The outside Wave data of the mixed input of wherein said the 5th step and a plurality of musical sounds are produced the Wave data of a plurality of samplings that passages form by described the 4th step is so that form described mixed sampled data.
17. tone generation method as claimed in claim 1, wherein said control data comprises the parameter that is used to control musical sound, and in the time will forming the described Wave data of a plurality of samplings by described the 4th step, the value of described parameter in a plurality of samplings each or a plurality of and change.
18. tone generation method as claimed in claim 17, wherein said the 4th step comprise the step of carrying out the operation of musical sound calculation of parameter with intermittent mode.
19. tone generation method as claimed in claim 1, wherein said third step sends described calculating sign on variable time point, and described the 4th step is on the corresponding variable time point of described variable time point, during corresponding to each computation period in a plurality of computation periods of described calculating sign on, form a plurality of samplings of the Wave data in a plurality of sampling periods.
20. a musical sound produces equipment, comprising:
First device is used to receive the one or more of musical sound that produce one or more appointments and instructs;
Second device, be used to respond described the instruction, the musical sound of appointment is distributed to the corresponding musical sound that a plurality of musical sounds produce in the passages produce passage, and the corresponding musical sound that control data writes with the musical sound of described appointment has been assigned to of the musical sound that is used to specify is produced in the corresponding channel register of passage;
The 3rd device is used for order and sends the calculating sign on;
The 4th device, be used to respond each described calculating sign on, a plurality of musical sounds are produced passage carry out musical sound formation calculating,, a plurality of musical sounds are produced the Wave data that passages form a plurality of samplings with centralized system so that according to the control data in the described channel register that is stored in described passage;
The 5th device mixed produces the Wave data of a plurality of samplings that passages form by described the 4th device to a plurality of musical sounds, so that form the mixed sampled data of a plurality of samplings; And
The 6th device is used to cushion the mixed sampled data of described a plurality of samplings and the mixed sampled data that low-pass filtering or reverberation effect are cushioned.
CN 200510116176 1995-05-19 1996-05-17 Tone generating method and device Expired - Lifetime CN1763839B (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP14415995 1995-05-19
JP144159/1995 1995-05-19
JP264629/1995 1995-09-20
JP26462995 1995-09-20
JP02332396A JP3246312B2 (en) 1995-09-20 1996-01-17 Musical sound generating method and apparatus
JP23323/1996 1996-01-17

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
CN96100281A Division CN1129110C (en) 1995-05-19 1996-05-17 Tone generating method and device
CNB031251706A Division CN100495532C (en) 1995-05-19 1996-05-17 Musical tone generating method and device

Publications (2)

Publication Number Publication Date
CN1763839A CN1763839A (en) 2006-04-26
CN1763839B true CN1763839B (en) 2011-12-28

Family

ID=15355578

Family Applications (2)

Application Number Title Priority Date Filing Date
CN 200510116175 Expired - Lifetime CN1763838B (en) 1995-05-19 1996-05-17 Tone generating method and device
CN 200510116176 Expired - Lifetime CN1763839B (en) 1995-05-19 1996-05-17 Tone generating method and device

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN 200510116175 Expired - Lifetime CN1763838B (en) 1995-05-19 1996-05-17 Tone generating method and device

Country Status (3)

Country Link
CN (2) CN1763838B (en)
SG (1) SG64932A1 (en)
TW (1) TW281748B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6536115B2 (en) * 2015-03-25 2019-07-03 ヤマハ株式会社 Pronunciation device and keyboard instrument
CN107863093B (en) * 2017-11-03 2022-01-07 得理电子(上海)有限公司 Pronunciation management method, pronunciation management device, electronic musical instrument, and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1059615A (en) * 1990-09-05 1992-03-18 雅马哈株式会社 Tone frequency
CN1073289A (en) * 1991-12-13 1993-06-16 雅马哈株式会社 Waveform generating apparatus
CN1074776A (en) * 1992-01-14 1993-07-28 雅马哈株式会社 The note signal generator adaptive with personal computer
US5283386A (en) * 1991-08-30 1994-02-01 Casio Computer Co., Ltd. Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
US5376752A (en) * 1993-02-10 1994-12-27 Korg, Inc. Open architecture music synthesizer with dynamic voice allocation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1059615A (en) * 1990-09-05 1992-03-18 雅马哈株式会社 Tone frequency
US5283386A (en) * 1991-08-30 1994-02-01 Casio Computer Co., Ltd. Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means
CN1073289A (en) * 1991-12-13 1993-06-16 雅马哈株式会社 Waveform generating apparatus
CN1074776A (en) * 1992-01-14 1993-07-28 雅马哈株式会社 The note signal generator adaptive with personal computer
US5376752A (en) * 1993-02-10 1994-12-27 Korg, Inc. Open architecture music synthesizer with dynamic voice allocation

Also Published As

Publication number Publication date
CN1763838A (en) 2006-04-26
CN1763838B (en) 2010-08-11
CN1763839A (en) 2006-04-26
SG64932A1 (en) 1999-05-25
TW281748B (en) 1996-07-21

Similar Documents

Publication Publication Date Title
CN100495532C (en) Musical tone generating method and device
US5808221A (en) Software-based and hardware-based hybrid synthesizer
JPH0997064A (en) Automatic musical performance data processor
CN1591564B (en) Method and device for forming a tone waveform
KR20090130865A (en) Musical instrument digital interface hardware instructions
US5770812A (en) Software sound source with advance synthesis of waveform
CN1763839B (en) Tone generating method and device
CN1545084B (en) Tone generator system using computer software
JPH09114457A (en) Device and method for musical sound generation
JPH0922287A (en) Musical sound waveform generating method
JP3637577B2 (en) Music generation method
JP3003559B2 (en) Music generation method
JP3632744B2 (en) Sound generation method
JP3269361B2 (en) Musical sound generating method and apparatus
EP0882286B1 (en) Pc audio system with frequency compensated wavetable data
JP3693045B2 (en) Music generator
JPH09319373A (en) Musical tone forming device
JP3246312B2 (en) Musical sound generating method and apparatus
JPH11167517A (en) Signal processor
JP3693046B2 (en) Music generator
JP3627590B2 (en) Sound generation method
JP3275678B2 (en) Musical sound generating method and apparatus
CN101656067A (en) Method and device for forming a tone waveform
Haynes Design considerations for a multiprocessor digital sound system
JPH08152884A (en) Sound source device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20111228

EXPY Termination of patent right or utility model