`Sato
`
`USOO5939655A
`Patent Number:
`11
`(45) Date of Patent:
`
`5,939,655
`Aug. 17, 1999
`
`54). APPARATUS AND METHOD FOR
`GENERATING MUSICAL TONES WITH
`REDUCED LOAD ON PROCESSING DEVICE,
`AND STORAGE MEDIUM STORING
`PROGRAM FOR EXECUTING THE
`METHOD
`
`75 Inventor: Hiroyuki Sato, Hamamatsu, Japan
`73 Assignee: Yamaha Corporation, Hamamatsu,
`Japan
`
`21 Appl. No.: 08/933,466
`22 Filed:
`Sep. 18, 1997
`30
`Foreign Application Priority Data
`Sep. 20, 1996
`JP
`Japan .................................... 8-269098
`51) Int. Cl. ................................ G10H 1/02; G1OH 1/08
`52 U.S. Cl. ................................. 84/625; 84/626; 84/660;
`84/662
`58 Field of Search ................... 84/622-625, 659-661,
`84/692–700, 601-607, 626-633, 662-665
`
`56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,920,850 5/1990 Matsumoto et al. .................. 84/625 X
`5,094,136 3/1992 Kudo et al. ..........
`. 84/624 X
`5,192,824 3/1993 Shibukawa ............................ 84/625 X
`
`5.243,123 9/1993 Chaya ....................................... 84/625
`5,256,830 10/1993 Takeuchi et al.
`... 84/625
`5,319,151
`6/1994 Shiba et al......
`... 84/603
`5,354,948 10/1994 Toda ............
`... 84/625 X
`5,468,906 11/1995 Colvin et al. ......................... 84/625 X
`5,596,159
`1/1997 O'Connell ................................. 84/622
`5,698,805 12/1997 Thompson et al. .
`84/625 X
`5,714,703 2/1998 Wachi et al. ...
`... 84/603
`5,750,911
`5/1998 Tamura ..........
`... 84/6O2
`5,808,221 9/1998 Ashour et al. ............................ 84/603
`Primary Examiner Stanley J. Witkowski
`Attorney, Agent, or Firm-Graham & James LLP
`57
`ABSTRACT
`A musical tone generating apparatus has a processing device
`that produces either musical tone Synthesis parameters or
`musical tone waveform data corresponding to input perfor
`mance data, depending upon a type of the input performance
`data. An encoder/decoder circuit includes a tone generator
`circuit that generates musical tone waveform data in accor
`dance with the musical tone Synthesis parameters produced
`by the processing device, a buffer circuit Storing the musical
`tone waveform data produced by the processing device, a
`mixing circuit that mixes the musical tone waveform data
`produced by the tone generator circuit and the musical tone
`waveform data Stored in the buffer circuit, and a conversion
`circuit that converts mixed musical tone waveform data
`generated from the mixing circuit into a musical tone signal.
`
`8 Claims, 7 Drawing Sheets
`
`30
`
`35
`
`36
`
`37
`
`38
`
`
`
`
`
`.
`
`PREMIX
`
`EFFECTS
`
`MX
`
`3D ETC.
`
`L OUT
`
`R OUT
`
`INTERFACE
`
`
`
`
`
`CONTROL
`DATA
`MEMORY
`
`IPR2020-01218
`Sony EX1015 Page 1
`
`
`
`U.S. Patent
`
`Aug. 17, 1999
`
`Sheet 1 of 7
`
`5,939,655
`
`FIG. IA
`PRIOR ART
`
`110
`
`TRANSFER
`
`TO CODEC
`
`101
`
`102
`
`BUFFER 2
`
`1 On
`
`:
`
`
`
`
`
`120
`
`FIG. IB
`PRIOR ART
`
`130
`
`Oi
`
`MEMORY
`
`BUFFER
`BUFFER
`
`11 OFOR CODEC
`TRANSFER
`
`ONLY ONE
`TRANSFER
`
`REPEATED
`TRANSFER
`
`12O
`
`FIGIC
`PRIOR ART
`
`130
`
`10
`
`MEMORY
`
`ER - 110 FOR CODEC
`BUFF
`TRANSFER
`
`SEGUENTIAL SEGUENTIAL
`TRANSFER
`TRANSFER
`
`IPR2020-01218
`Sony EX1015 Page 2
`
`
`
`U.S. Patent
`
`Aug. 17, 1999
`
`Sheet 2 of 7
`
`5,939,655
`
`
`
`
`
`}$$o=Goo | ¡ OVWG ||×SIGGHVH || AVTdSIG ||GavoaABX
`
`
`
`09 |Z !9 |
`
`ZZ
`
`IPR2020-01218
`Sony EX1015 Page 3
`
`
`
`U.S. Patent
`
`Aug. 17, 1999
`
`Sheet 3 of 7
`
`5,939,655
`
`LÍTIO TI
`
`LÍQO H
`
`* O LE C19
`
`(?OZ$)
`
`ENO L
`
`LVHENE5)
`
`Å
`
`TOH LNO O
`
`9
`
`/899G9
`
`09
`
`
`
`IPR2020-01218
`Sony EX1015 Page 4
`
`
`
`U.S. Patent
`
`Aug. 17, 1999
`
`Sheet 4 of 7
`
`5,939,655
`
`
`
`(NOILy??dWQO) | NOILVHBdO
`(NOILWL/mdWNOO)
`
`IPR2020-01218
`Sony EX1015 Page 5
`
`
`
`U.S. Patent
`
`Aug. 17, 1999
`Sheet 5 of 7
`FIG.5
`
`5,939,655
`
`
`
`
`
`
`
`INPUT BUFFER
`
`EVENT NUMBER
`
`D1
`
`D2
`
`
`
`
`
`
`
`
`
`DATA 1 CONTENT
`DATA 1 GENERATION TIME
`
`
`
`
`
`SO
`
`S11
`
`
`
`FIG.6
`
`TONE GENERATOR COMMAND
`INTERRUPT FROM APPLICATION
`
`ACGUIRE TONE GENERATION
`DATA
`
`
`
`WRITE THE DATA AND TIME
`DATA INTO INPUT BUFFER
`
`RETURN
`
`IPR2020-01218
`Sony EX1015 Page 6
`
`
`
`U.S. Patent
`
`Aug. 17, 1999
`Sheet 6 of 7
`FIG.7
`
`MAN ROUTINE
`
`5,939,655
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`S
`1
`
`NITALIZATION
`
`- S
`2
`CHECKINITIATING FACTOR
`
`NITIATING FACTOR
`PRESENT 2
`
`S3
`
`TONE GENERATION
`STEP/END
`PROCESSING
`
`FACTOR3 FACTOR4
`
`OTHER
`PROCESSING
`
`S6
`
`TONE GENERATOR
`PROCESSING
`(STREAMING)
`
`S7
`
`S8
`
`END
`PROCESSING
`
`IPR2020-01218
`Sony EX1015 Page 7
`
`
`
`US. Patent
`
`Aug. 17, 1999
`
`Sheet 7 0f 7
`
`5,939,655
`
`mm
`
`N
`
`mw<mgmm\ZO_._.<OO|_n_<
`
`
`
`®Z_l_.<mmzm0-mzo._.u_O
`
`IEZZ<IO
`
`O_._.<._.w
`
`Fm
`
`%.U~n~
`
`
`
`|_|_<mmEmZ<m._.
`
`ZO_._.<mm_Zm_0sz._.
`
`m_mm_._._.z>w
`
`mIMFmE/xmdd
`
`OmQOOO._.
`
`mm
`
`vm
`
`|_m_ZZ<IO
`
`mm<w4mm\20_._.<004|_<
`OZ_._.<mm2m_O-m_ZO._.“—0
`
`02:2<mm._.w
`
`OZ_Z:>Em_._.m_n_
`
`MOO—2
`
`_|_n_n_<
`
`
`
`>420mmEmZ/xmk
`
`mHOmEm
`
`meHm§<m<m
`
`OmDOOO._.
`
`
`
`m0;mmHEDm
`
`
`
`mmmwz<mkOmDOO
`
`memmDm
`
`rmmmmDm
`
`
`
`orOmDOOO._.wmmHEDm.
`
`MN_mm_I._.Z>w
`
`
`
`DZDOmGZ:>_<mm.rm
`
`<._.<D
`
`
`
`_>_Omn_.EDmmmFZ
`
`OmDOOm0mm__>:._.
`
`|PR2020-01218
`
`Sony EX1015 Page 8
`
`IPR2020-01218
`Sony EX1015 Page 8
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`5,939,655
`
`1
`APPARATUS AND METHOD FOR
`GENERATING MUSICAL TONES WITH
`REDUCED LOAD ON PROCESSING DEVICE,
`AND STORAGE MEDIUM STORING
`PROGRAM FOR EXECUTING THE
`METHOD
`
`2
`It is also possible to reproduce a large Volume of musical
`tone waveform Sample data Stored in a hard disk device,
`CD-ROM, or the like, by using hardware, namely, a D/A
`conversion circuit and FIFO buffer, necessary in the above
`mentioned Software tone generator. In this method, which is
`different from the above-described method in which wave
`form Samples Stored in the waveform memory are repeatedly
`used, musical tone waveform Samples Stored in a large
`capacity Storage medium are Sequentially read out, and
`converted from digital Signals into analog signals every
`Sampling period, So that a stream of these Samples are all
`reproduced. In the following, Such a musical tone generating
`mode in which all the waveform Samples are reproduced as
`above shall be called Streaming mode for convenience Sake,
`and a Series of musical tone waveform data generated in this
`manner shall be called Streaming Sound data.
`The above-described two Sound tone generating modes
`may be employed in the musical tone generating apparatus
`using the general-purpose processing apparatus. Although
`each of the two modes may be used alone, these two modes
`are normally used in a mixed manner Such that the Static
`mode is used for Some musical tones while the Streaming
`mode is used for other musical tones.
`Referring to FIG. 1A, the manner of reproducing Sound
`data generated by Such a musical Sound generating apparatus
`will be explained. In FIG. 1A, buffer areas 101-10n are
`provided in a main memory, to respectively correspond to n
`tone-generating channels in this musical tone generating
`apparatus. Some of the n tone-generating channels are
`adapted to generate musical tones in the Static mode as
`described above, and Static Sound data are Stored in the
`buffer areas corresponding to these channels. Also, the
`above-described streaming Sound data are stored in the
`buffer areas corresponding to the other tone-generating
`channels. The Sound data Stored in these buffer areas
`101-10n are mixed and stored in a buffer 110 for transferring
`data to CODEC.
`The musical tone waveform data stored in the CODEC
`transfer buffer 110 is transferred to a CODEC (not shown)
`every predetermined period, transmitted to a D/A converter
`every Sampling period, and then converted by the D/A
`converter into analog signals, which are then generated as
`musical tone signals.
`FIG. 1B is a view for explaining the processing for
`reproducing the above-mentioned Static Sound data. First, a
`Short period of Sound data (musical tone waveform data or
`waveform Sample) which is stored in a large-capacity Stor
`age device 120, such as a hard disk device or CD-ROM
`device, or ROM, is transferred only once to a sound data
`Storage area (waveform memory) provided in a main
`memory 130. Then, the short period of Sound data stored in
`the Sound data Storage area is repeatedly read out to be
`Synthesized into musical tone waveform data (static Sound
`data) as described above, and then transferred to the buffer
`10i of the relevant tone-generating channel. The Sound data
`transferred to this buffer 10i is mixed with data stored in
`buffers corresponding to other tone-generating channels, and
`is stored in the buffer 110 for transferring data to CODEC,
`as shown in FIG. 1A.
`FIG. 1C is a view for explaining the processing for
`reproducing the above-mentioned Streaming Sound data. In
`this case, a large Volume of Sound data Stored in a large
`capacity Storage device 120, Such as a hard disk device, are
`Sequentially read out and written into a buffer area provided
`in a main memory 130. This buffer area is configured as a
`So-called double buffer, from which Sound data is read out
`
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention relates to an apparatus and method
`for generating musical tones, using a general-purpose pro
`cessing apparatus Such as a personal computer, and also
`relates to a method of generating musical tones, and a
`Storage medium Storing a program that carries out the same
`method.
`2. Prior Art
`In a general-purpose processing apparatus Such as a
`personal computer, musical tones were conventionally gen
`erated by using an exclusive tone generator device provided
`externally of the apparatus, or, by using an expansion board
`connected to the apparatus and having Several IC chips
`mounted thereon, Such as a tone generator chip for gener
`ating musical tone waveforms, a ROM that stores waveform
`data, and a coder/decoder circuit (CODEC) chip equipped
`with an A/D conversion circuit (analog-to-digital converter),
`a D/A conversion circuit (digital-to-analog converter; DAC),
`a FIFO (first-in first-out) buffer, and an interface circuit.
`With an increased processing speed of recent CPUs,
`So-called Software tone generators have become used which
`Synthesize musical tones with Software using a CPU accord
`ing to performance information. Such a Software tone gen
`erator is able to generate musical tones only with a D/A
`conversion circuit and a FIFO buffer in addition to the CPU
`and Software, without using an exclusive tone generator
`device or expansion board as described above.
`In Such a Software tone generator, musical tones are
`normally Synthesized by repeatedly reproducing a short
`period of musical tone waveform data. In one method, for
`example, musical tones are generated by Storing musical
`tone waveform samples such as WAVE data in a waveform
`memory, reading out the musical tone waveform Samples
`corresponding to performance information from the wave
`form memory, and performing Specific processing on these
`waveform Samples. In another method, a tone generator of
`waveform memory type is simulated. A Software tone gen
`erator that Simulates the waveform memory type tone gen
`erator produces musical tone waveform data corresponding
`to one round of Sampling timing, by executing for each
`tone-generating channel waveform operations of LFO (low
`frequency oscillator), filter EG (envelope generator), and
`Volume EG and the like, based on musical tone control
`information produced from performance information Such
`as MIDI data, reading out waveform data from a correspond
`ing waveform memory (waveform table), performing an
`interpolating operation on the waveform data thus read out,
`computing and producing waveform data for the relevant
`tone-generating channel by multiplying the thus obtained
`waveform data by a Sample of each type of EG waveform,
`and accumulating waveform Sample data for each tone
`generating channel by repeatedly executing the above opera
`tions for all tone-generating channels. In the following, Such
`a musical tone generating mode in which a short period of
`waveform data is repeatedly used shall be called Static mode
`for convenience Sake, and the Short period of musical tone
`waveform data produced in this mannershall be called Static
`Sound data.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`IPR2020-01218
`Sony EX1015 Page 9
`
`
`
`3
`in parallel with writing of Sound data thereinto, and Sequen
`tially transferred to a buffer 10i corresponding to the relevant
`channel. The data in this buffer 10i is mixed with data in the
`other channels as described above and is further transferred
`to the buffer 110 for transferring data to CODEC.
`The generation of musical tones by Software using Such a
`general-purpose processing apparatus as described above
`causes a great processing load on the CPU. When develop
`ing an application program Such as game Software that
`requires many tone-generating channels, therefore, it was
`unavoidable or necessary to reduce the number of tone
`generating channels or lower the quality of musical tones
`generated. It was also impossible to perform Sophisticated
`processing, Such as processing for applying effects to the
`musical tones generated.
`SUMMARY OF THE INVENTION
`It is therefore an object of the invention to provide an
`apparatus and method for generating musical tones, which
`reduces the load required for Synthesis processing of Static
`Sound data, by using leSS hardware, thus permitting an
`increase in the number of tone-generating channels and
`improving the quality of musical tones generated, and a
`Storage medium that Stores a program for carrying out the
`method.
`To attain the above object, the present invention provides
`a musical tone generating apparatus comprising an input
`device that receives input performance data, a processing
`device that produces either musical tone Synthesis param
`eters or musical tone waveform data corresponding to the
`input performance data, depending upon a type of the
`received input performance data, a tone generator circuit that
`generates musical tone waveform data in accordance with
`the musical tone Synthesis parameters produced by the
`processing device, and a conversion circuit that mixes the
`musical tone waveform data produced by the processing
`device and the musical tone waveform data produced by the
`tone generator circuit, and converts the mixed musical tone
`waveform data into a musical tone Signal.
`Preferably, the input performance data includes at least a
`first performance data and a Second performance data, and
`when the input performance data is the first performance
`data, the processing device produces the musical tone Syn
`thesis parameters corresponding to the input performance
`data and Supplies the parameters to the tone generator
`circuit, and when the input performance data is the Second
`performance data, the processing device produces the musi
`cal tone waveform data corresponding to the input perfor
`mance data.
`Also preferably, the tone generator circuit produces the
`musical tone waveform data by repeatedly using a short
`period of waveform databased on the musical tone Synthesis
`parameters from the processing device. The musical tone
`generating apparatus further comprises a storage device that
`Stores the musical tone waveform data produced by the
`processing device, and the processing device produces the
`musical tone waveform data by Sequentially reading out the
`musical tone waveform data from the Storage device.
`More preferably, the musical tone generating apparatus
`further comprises an effects circuit for respectively applying
`predetermined effects to the musical tone waveform data
`produced by the processing device and the musical tone
`waveform data produced by the tone generator circuit.
`In a preferred embodiment of the invention, the musical
`tone generating apparatus comprises an input device that
`receives input performance data, a processing device that
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,939,655
`
`4
`produces either musical tone Synthesis parameters or musi
`cal tone waveform data corresponding to the input perfor
`mance data, depending upon a type of the received input
`performance data, an encoder/decoder circuit including a
`tone generator circuit that generates musical tone waveform
`data in accordance with the musical tone Synthesis param
`eters produced by the processing device, a buffer circuit
`Storing the musical tone waveform data produced by the
`processing device, a mixing circuit that mixes the musical
`tone waveform data produced by the tone generator circuit
`and the musical tone waveform data stored in the buffer
`circuit, and a conversion circuit that converts mixed musical
`tone waveform data generated from the mixing circuit into
`a musical tone signal.
`Preferably, the encoder/decoder circuit further includes an
`effects circuit for respectively applying predetermined
`effects to the musical tone waveform data produced by the
`tone generator circuit and the musical tone waveform data
`stored in the buffer circuit.
`To attain the above object, the present invention also
`provides a musical tone generating method comprising the
`Steps of a) inputting performance data, b) producing musical
`tone Synthesis parameters corresponding to the input per
`formance data and Supplying the musical tone Synthesis
`parameters to a tone generator circuit for producing musical
`tone waveform data in accordance with the musical tone
`Synthesis parameters, or producing musical tone waveform
`data corresponding to the input performance data, depending
`upon a type of the input performance data, c) mixing the
`musical tone waveform data produced by the tone generator
`circuit and the musical tone waveform data produced in the
`Step b), and d) converting the mixed musical tone waveform
`data into a musical tone signal.
`To attain the above object, the present invention further
`provides a Storage medium Storing a program executable by
`a computer, comprising a) a module that inputs performance
`data, and b) a module that produces musical tone synthesis
`parameters corresponding to the input performance data and
`Supplies the musical tone Synthesis parameters to a tone
`generator circuit for producing musical tone waveform data
`in accordance with the musical tone Synthesis parameters, or
`producing musical tone waveform data corresponding to the
`input performance data, depending upon a type of the input
`performance data.
`With the above construction, according to the invention,
`when the input performance data is the first performance
`data obtained by repeatedly using a short period of musical
`tone waveform data, the tone generator circuit provided in
`the encoder/decoder circuit Synthesize desired musical tone
`waveform data. When the input performance data is the
`Second performance data obtained by reproducing a large
`Volume of musical tone waveform data, the processing
`device (CPU) produces the musical tone waveform data on
`Software, thus reducing the load on the processing device for
`Synthesizing the musical tone waveform data corresponding
`to the first performance data. Also, desired effects can be
`applied or imparted to the musical tone waveform data of
`each tone-generating channel that is Synthesized by the tone
`generator circuit and the musical tone waveform data pro
`duced on Software, respectively, thus making it possible to
`perform Sophisticated or Subtle effects processing.
`The above and other objects, features, and advantages of
`the invention will become more apparent from the following
`detailed description taken in conjunction with the accom
`panying drawings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1A is a view useful in explaining a conventional
`manner of reproducing musical tones,
`
`IPR2020-01218
`Sony EX1015 Page 10
`
`
`
`S
`FIG. 1B is a view useful explaining conventional pro
`cessing for reproducing Static Sound data;
`FIG. 1C is a view useful in explaining conventional
`processing for reproducing Streaming Sound data;
`FIG. 2 is a block diagram showing the arrangement of a
`musical tone generating apparatus according to an embodi
`ment of the present invention.
`FIG. 3 is a block diagram Showing the configuration of a
`CODEC appearing in FIG. 2;
`FIG. 4 is a timing chart useful in explaining a timewise
`flow of processing according to the embodiment;
`FIG. 5 is a view showing a format of data stored in an
`input buffer used in the embodiment;
`FIG. 6 is a flowchart of a tone generation command
`interrupt process according to the embodiment;
`FIG. 7 is a flowchart of a main routine according to the
`embodiment; and
`FIG. 8 is a view useful in explaining tone generation
`Start/end processing and tone generator processing accord
`ing to the embodiment.
`DETAILED DESCRIPTION
`The invention will be now described with reference to the
`drawings showing an embodiment thereof.
`Referring first to FIG. 2, there is illustrated the arrange
`ment of a musical tone generating apparatus according to
`one embodiment of the invention. In FIG. 2, the musical
`tone generating apparatus according to the present embodi
`ment includes a central processing unit (CPU) 10 for pro
`ducing musical tone waveform Samples and executing Vari
`ous types of application programs and the like, a ROM 11
`that Stores preset tone color data and others, a main memory
`(RAM) 12 into which programs to be executed and data are
`read and which also provides various types of buffer areas
`and work areas, and a hard disk device 13 that Stores various
`types of waveform data, tone color data, and various types
`of application programs, and the like. The present apparatus
`further includes a CD-ROM device 14 for driving
`CD-ROMs on which various types of data, programs and the
`like are stored, a MIDI interface 15 for transmitting and
`receiving performance data and control Signals to and from
`an external performance device, Such as a MIDI keyboard,
`and a keyboard 16 and a display device 17 generally
`included in a personal computer.
`Reference numeral 18 denotes a DMA control circuit
`(direct memory access controller) for reading out waveform
`sample data from a CODEC transfer buffer area within the
`main memory 12 without passing through the CPU 10, and
`transferring the data to a coder/decoder circuit 19. This
`DMA control circuit 18 may be omitted if a bus 22 can
`transfer data at a Sufficiently high Speed. The coder/decoder
`circuit (CODEC) 19 includes a tone generator block, and is
`adapted to perform effects processing on musical tone
`waveform Samples generated in the tone generator block and
`musical waveform Sample data transferred from the above
`mentioned CODEC transfer buffer, and convert the obtained
`musical tone waveform data into analog musical tone signals
`to be generated to a sound system 20. Details of this
`coder/decoder circuit 19 will be described later. The Sound
`System 20 Serves to amplify the musical tone Signals trans
`ferred from the CODEC 19, and output the amplified musi
`cal tone signals from the apparatus. Reference numeral 21
`denotes a timer 21 for interrupting the CPU 10 at predeter
`mined time intervals and Supplying a Sampling clock to the
`CODEC 19. These component elements are connected to
`
`5
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,939,655
`
`6
`each other via the buS22. The configuration explained above
`is equivalent to that of a generally used personal computer
`or WorkStation, for example.
`FIG. 3 shows the configuration of the CODEC 19. The
`CODEC 19 includes an interface circuit 30 for transmitting
`and receiving various kinds of Signals and data, a tone
`generator block 31 of waveform memory type for example,
`for generating musical tones based on musical tone Synthesis
`parameters supplied via the above interface circuit 30. For
`example, the tone generator block 31 produces musical tone
`waveforms for thirty two tone-generating channels. The
`CODEC 19 further includes a waveform memory 32 con
`nected to the tone generator block 31 and constituted by a
`DRAM, for example. In operation, a short period of musical
`tone waveform data is transferred via the interface circuit 30
`to the waveform memory 32 under control of the CPU, and
`the tone generator block 31 repeatedly uses the musical tone
`waveform data stored in the waveform memory 32 so as to
`produce musical tones or Sound in the above-mentioned
`Static mode.
`Streaming waveform data produced by the CPU 10 is
`transferred via the interface circuit 30 to and stored in a
`FIFO buffer 33. This FIFO buffer 33 has a capacity enough
`to Store musical tone waveform data for one channel.
`The CODEC 19 also includes a control data storage block
`34 for Storing control data Such as parameters for effects that
`are transferred from the CPU 10 via the interface circuit 30.
`Reference numeral 35 denotes a premixing circuit which
`receives musical tone waveform data for each tone
`generating channel generated from the above-mentioned
`tone generator block 31, and Streaming Sound data generated
`from the FIFO 33, and transmits these data to an effects
`circuit 36 while compiling channels loaded with the same
`effects based on effects control data from the control data
`storage block 34. The effects circuit 36 performs certain
`effects processing on each Set of Sound data compiled or
`combined for each type of effects generated from the pre
`mixing circuit 35, based on effects control data from the
`control data storage block 34. In this effects circuit 36,
`effects, Such as 3D effects, are applied to the Sound data.
`The CODEC 9 further includes a mixing circuit 37 that
`receives Sound data Subjected to the effects processing and
`generated from the effects circuit 36 and mix these data, and
`a D/A conversion circuit 38 that converts the digital output
`data from the mixing circuit 37 into analog Signals, which
`are generated as left channel Signals LOUT and right chan
`nel signals ROUT.
`The CODEC 19 is also provided with an external input
`terminal (not shown), an A/D conversion circuit (not shown)
`for analog-to-digital converting external Stereo audio signals
`received through the external input terminal by Sampling
`them at a certain sampling rate, and a FIFO buffer (not
`shown) for left and right channels that Stores external Stereo
`input data generated from that A/D conversion circuit. The
`data stored in this FIFO buffer is also read or transmitted into
`the CPU 10 via the above-indicated interface circuit 30.
`Thus, according to the present invention, the CODEC 19
`performs the processing for Synthesizing the Static Sound
`data, and also performs effects processing on the Static and
`Streaming Sound data. The processing for producing the
`streaming sound data is performed by the CPU 10.
`Referring next to FIG. 4, the time flow of the process of
`producing Streaming Sound data in the musical tone gener
`ating apparatus of the present embodiment will be now
`explained. The musical tone generating apparatus of the
`present embodiment generates musical tone waveform data
`
`IPR2020-01218
`Sony EX1015 Page 11
`
`
`
`5,939,655
`
`15
`
`25
`
`7
`at a Sampling frequency (rate) of 25.6 kHz, for example, but
`performs musical tone waveform data production processing
`every time period of 128 Samples (one frame), for example.
`When performance is input from an application program in
`a time slot corresponding to a given frame (FL), processing
`to deal with the performance input is performed in the next
`frame, and musical tone signals are formed in the further
`next frame by reading out one sample of this musical tone
`waveform data every period of 25.6 kHz. Accordingly, a
`shift in time of about two frames arises from the time when
`the performance is input until the time when a musical tone
`is actually generated (or until the musical tone is
`eliminated), but this time shift is considered to be consid
`erably Small since one frame is equivalent to 128 Samples (5
`milliseconds). Although the number of samples of one frame
`can be set to any value, a delay may occur in tone generation
`if the number of samples is set to a small value. If the
`number of Samples is Set to a large value, on the other hand,
`the time margin is reduced and the response may be dete
`riorated upon a temporal increase in the amount of comput
`ing.
`FIG. 5 shows a format of data stored in an input buffer as
`one of Storage areas Set in the above-mentioned main
`memory 12. In response to an interruption that occurs when
`a performance input (tone generation command) is gener
`ated from an application program, the contents of the
`performance input and the time of its generation are written
`into this input buffer. The contents of this buffer are read out
`in tone generation Start/end processing that will be described
`later, and the corresponding processing is executed.
`Next, the operation of the musical tone generating appa
`ratus of the present embodiment will be described referring
`to flow charts. The musical tone generating apparatus of the
`present embodiment performs musical tone generation by
`executing a top-priority interrupt routine shown in FIG. 6
`and a main routine shown in FIG. 7.
`FIG. 6 is a flowchart of the top-priority interrupt routine.
`This processing is initiated when a tone generation com
`mand is received from an application program. Relevant
`40
`tone generation data is received at a step S10, and the
`received tone generation data and data indicative of the time
`of receiving the data are written into the input buffer shown
`in FIG. 5 at a step S11. The tone generation data written into
`this input buffer are those in the static mode or in the
`Streaming mode, and include all of the above-described data
`necessary for generating a musical tone, Such as tone color
`data and effects data of the relevant musical tone.
`FIG. 7 is a flowchart of the main routine. If the program
`is initiated, a step S1 is first executed to perform
`initialization, Such as providing register areas, and then Steps
`S2 and S3 are executed to wait for any initiating factor
`(trigger). In the initialization process of the Step S1, wave
`form Sample data needed for generating musical tone in the
`static mode is transferred to the waveform memory 32 in the
`CODEC 19, and a portion of the musical tone waveform
`Samples for reproducing musical tone in the Streaming mode
`is read out from the aforementioned hard disk device 13 or
`CD-ROM 14 and is stored in the main memory 12.
`Upon occurrence of an initiating factor, a Step S4 is
`executed to determine the initiating factor, and execute a
`corresponding processing operation. The initiating factor is
`one of four types of factors as follows, (1) writing of tone
`generation data into the input buffer, (2) an interrupt signal
`from the timer 21 generated at each time interval corre
`sponding to one frame and an interrupt Signal from the
`CODEC 19, (3) generation of a Switching event from an
`
`8
`operating panel and a window Screen, and (4) inputting of an
`ending command. In response to occurrence of these factors,
`tone generation start/end processing (step S5), tone genera
`tor processing (step S6), other processing (step S7), and end
`processing (Step S8) are executed, respectively.
`End processing of the Step S8 is processing Such as Saving
`of Set data and clearing of registers, and the operation is
`terminated after this processing is finished. Other processing
`of the Step S7 is processing corresponding to input opera
`tions of various operating elements of the operating panel
`and commands. Tone generator processing of the Step S6 is
`processing executed upon detecting that reading and repro
`duction in FIG. 4 has proceeded to the next frame in
`response to an interrupt Signal generated by the timer 21
`after counting 128 Sample clock pulses, for example. Tone
`generation Start/end processing of the Step S5 is initiated
`when it is detected that tone generation data is written into
`the above-mentioned input buffer, and includes allocation or
`release of a tone-generating channel in accordance with the
`tone generation data written into the input buffer. Tone
`generator processing of the Step S6 is processing initiated
`with a period corresponding to one frame period, and
`includes generation of Streaming Sound data.
`FIG. 8 schematically shows functions performed in the
`tone generation Start/end processing of the Step S5 and the
`tone generator processing of the Step S6. Referring to FIG.
`8, the tone generation Start/end processing of the Step S5 and
`the tone generator processing of the Step S6 will be
`described in detail.
`In the above-described tone generation Start/end process
`ing of the step S5, it is first determined in a block 51 whether
`the tone generation