EP0124197A2 - Instrument et méthode de génération de sons musicaux par modification d'une table de forme d'onde - Google Patents
Instrument et méthode de génération de sons musicaux par modification d'une table de forme d'onde Download PDFInfo
- Publication number
- EP0124197A2 EP0124197A2 EP84300670A EP84300670A EP0124197A2 EP 0124197 A2 EP0124197 A2 EP 0124197A2 EP 84300670 A EP84300670 A EP 84300670A EP 84300670 A EP84300670 A EP 84300670A EP 0124197 A2 EP0124197 A2 EP 0124197A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- voice
- wavetable
- unit
- instrument according
- data value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012986 modification Methods 0.000 title claims description 36
- 230000004048 modification Effects 0.000 title claims description 25
- 238000000034 method Methods 0.000 title abstract description 41
- 239000003607 modifier Substances 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 24
- 238000005070 sampling Methods 0.000 claims description 22
- 230000003111 delayed effect Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 6
- 238000002715 modification method Methods 0.000 abstract description 3
- 239000011295 pitch Substances 0.000 description 52
- 239000000872 buffer Substances 0.000 description 17
- 230000009021 linear effect Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 8
- 102100035767 Adrenocortical dysplasia protein homolog Human genes 0.000 description 7
- 101000929940 Homo sapiens Adrenocortical dysplasia protein homolog Proteins 0.000 description 7
- 239000000203 mixture Substances 0.000 description 7
- 230000000737 periodic effect Effects 0.000 description 7
- 238000001228 spectrum Methods 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 101001070050 Homo sapiens Proline-rich basic protein 1 Proteins 0.000 description 4
- 102100034288 Proline-rich basic protein 1 Human genes 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000010355 oscillation Effects 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- ZYXYTGQFPZEUFX-UHFFFAOYSA-N benzpyrimoxan Chemical compound O1C(OCCC1)C=1C(=NC=NC=1)OCC1=CC=C(C=C1)C(F)(F)F ZYXYTGQFPZEUFX-UHFFFAOYSA-N 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 230000001747 exhibiting effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 241001275902 Parabramis pekinensis Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 238000009527 percussion Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H7/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2250/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/471—General musical sound synthesis principles, i.e. sound category-independent synthesis methods
- G10H2250/475—FM synthesis, i.e. altering the timbre of simple waveforms by frequency modulating them with frequencies also in the audio range, resulting in different-sounding tones exhibiting more complex waveforms
Definitions
- This invention relates to musical instruments and more specifically to digitally controlled electronic instruments and methods for generating musical sound.
- Digitally controlled methods of generating musical sound operate by producing a sequence of digital numbers which are converted to electrical analog signals.
- the analog signals are amplified to produce musical sound through a conventional speaker.
- Music instruments which employ digital control are constructed with a keyboard or other input device and with digital electronic circuits responsive to the keyboard.
- the electronic circuits digitally process signals in response to the keyboard and digitally generate oscillations which form the sound in the speaker.
- These digitally generated oscillations are distinguished from oscillations generated by analog oscillators and are distinguished from mechanically induced oscillations produced by conventional orchestral and other type instruments.
- All musical sounds can be _described by Fourier spectra.
- the Fourier spectra describes musical sound in terms of its component frequencies which are represented as sinusoids.
- the whole musical sound is, therefore, a sum of the component frequencies, that is, a sum of sinusoids.
- harmonic tone is periodic and can be represented by a sum of sinusoids having frequencies which are integral multiples of a fundamental frequency.
- the fundamental frequency is the pitch of the tone.
- Harmonic instruments of the orchestra include the strings, the brasses, and the woodwinds.
- An inharmonic tone is not periodic, although it often can be represented by a sum of sinusoids.
- the frequencies comprising an inharmonic tone usually do not have any simple relationship. Inharmonic instruments do not normally have any pitch associated with them.
- Instruments in the orchestra that are inharmonic include the percussion instruments, such as the bass drum, the snare drum, the cymbal and others.
- harmonic summation method of music generation.
- a tone is produced by adding (or subtracting) a number of amplitude-scaled sinusoids of different frequencies.
- the harmonic summation method requires a complex addition (or subtraction) process to form each sample. That process requires digital circuitry which is both expensive and inflexible. Accordingly, the digital design necessary to carry out the method of harmonic summation is computationally complex and leaves much to be desired.
- a complex electrical waveform such as a square wave or a saw-tooth pulse train
- filters to select the desired frequency components.
- the filtered frequency components are combined to form the electrical signal which drives the speaker.
- the filtering method is commonly used to synthesize human speech and has often been used with analog electronic organs.
- the filtering method is comparatively inflexible since each sample relies upon the stored values of fixed samples. In order to achieve natural sound, the filtering method requires a large number of multiplication steps which are economically expensive to achieve.
- Both the harmonic summation and the filtering methods rely upon a linear combination of sinusoids and, hence, they are characterized as linear methods for generating musical sound.
- the linear property is apparent from the fact that multiplying the amplitude of the input function (sinusoids for harmonic summation or a pulse train for filtering) by a factor of two results in an output waveform with the same tone quality and with an amplitude multiplied by a factor of two.
- the present invention is a musical instrument and method employing wavetable-modification for producing musical sound.
- the musical instrument includes a keyboard or other input device, a wavetable-modification generator for producing digital signals by wavetable modification, and an output device for converting the digital signals into musical sound.
- the generator includes a wavetable which is periodically accessed to provide an output signal which determines the musical sound.
- the output signal from the wavetable is modified and stored back into the wavetable as modified data.
- the modified data after a delay, is accessed from the wavetable and thereby becomes a new output signal. This process is periodically repeated whereby each new output signal is modified and stored back into the wavetable.
- the new output signals are thus generated by wavetable modification, in accordance with the present invention, and are used to produce rich and natural musical sound.
- y n is a function of the n th value, x n , of x t and the delayed value of y n given by d N y n times the modification component m as given in the following equation:
- the modification performed to generate the next modified value, y is an average of a first delayed output y n-N and the previous delayed output y n-(N+1) .
- the modification is implemented, for example, as a simple addition and binary shift (divide-by-two) of data stored in a wavetable.
- the location of data in the wavetable in one digital memory embodiment, is determined by memory address pointers.
- a Read Pointer specifies the location of the delayed sample, yn-N.
- a "Read Pointer + 1" is offset from the Read Pointer by one and specifies the location of the delayed sample y n-(N+1) .
- the modified value, y is stored into the wavetable at a location specified by a Write Pointer.
- the Write Pointer is offset from the Read Pointer by the pitch delay N.
- the interface unit 6 encodes the keyboard information (pitch, amplitude, and duration) and transmits it to the control unit of the wavetable-modification generator 3.
- the generator 3 in response to the signals from the input unit 2, generates a signal on the output bus 8 which in turn connects to the output unit 4.
- the output unit 4 converts the signal on bus 8 to the desired musical sound.
- the output unit 4 includes a digital-to-analog converter 9. Analog signals output from the converter 9 connect through a low-pass filter 10 and an amplifier 11 to a speaker 12.
- the speaker 12 produces the desired musical sound.
- the n th sample of y t is given as y and using the delay operator, d N , for a wavetable exhibiting a delay of N cycles, y is a function of the n th value of x n and the delayed value of y n given by d N y n times the modification factor m t as given in the following Eq. (4):
- the unit 14 includes a delay 26 which delays the signal on bus 16, y n-N , by one period of n.
- the output from the delay 26 forms one input, y n-(N+1) , on line 28 to an arithmetic unit (AU) 27.
- the other input to the arithmetic unit 27 is derived directly from the bus 16.
- the arithmetic unit 27 adds the value on bus 16 to the previous value on bus 16 (which is the output from delay 26) and forms their sum.
- the shift input 29 to the arithmetic unit 27 causes the sum to be shifted one binary bit, thereby dividing the sum by two.
- the basic plucked string sound is obtained by exciting the generator 3, for example, with a short burst of "white noise".
- a burst of white noise is obtained by selecting the values of x n in Eq. (5) as follows: where A is the desired amplitude, and u n has values +1 or -1 as a function of the output of a random number generator.
- the values of x n for n equal to 0, 1, ..., (N+l) are stored in wavetable 13 as initial values existing prior to any modification by modifier unit 14.
- the transfer function of a (linear time-invariant) digital filter is the z-transform of the input.
- the transfer function of the plucked string simulator of Fig; 2 is found therefore by substituting z -1 for d in Eq. (9) and transposing as follows: where, Eqs. (9) and (10) describe one embodiment of the wavetable-modification generator 3 of Fig. 2.
- the feedback loop consists of a length N delay line Hb(z), implemented as wavetable 13, in series with a two-point average H a (z), implemented as modifier unit 14.
- the input to wavetable 13 is at terminal 20 and the output from modifier unit 14 is at terminal 21.
- Terminal 21 is connected to terminal 20 in a feedback relation which forms a closed loop.
- the frequency response of the plucked string instrument of Fig. 2 is given as follows: where, It is useful to consider the amplitude response and phase delay of the wavetable component, H b , and the modifier component H a , separately.
- the amplitude a response is defined as the magnitude of the frequency response, and it gives the gain as a function of frequency.
- the phase delay is defined as minus the complex angle of the frequency response divided by radian frequency, and it gives the time delay (in seconds) experienced by a sinusoid at each frequency.
- phase delay it is more convenient to define phase delay in units of samples rather than seconds.
- the phase delays of Ha and H b in samples are given as follows: where, "/" denotes the complex angle of z.
- Fig. 4 shows the spectral evolution during the first fifteen periods of a note having a period of 128 samples from an instrument of the Figs. 2 and 3 type.
- a length 128 Fast Fourier transform (FFT) was computed every other period, that is, for n equal to 0, 2, 4, ..., 14. Note that the higher harmonics decay faster; this mimics the behavior of an actual string, where the higher harmonics dissipate their energy faster.
- FFT Fast Fourier transform
- the wavetable 13 is a random access memory (RAM) having sixteen different storage regions, one for each of sixteen voices. Each of the storage regions has wave-table storage locations for 256 8-bit bytes. Accordingly, N is a maximum of 256 for any voice.
- the wavetable-modification generator 3 also includes an 8-bit output register 36 and a DIGITAR unit 35.
- the DIGITAR unit 35 performs the modifications of the type previously described in connection with the modifier unit of Fig. 3 for all sixteen voices of the Fig. 5 instrument.
- the DIGITAR unit 35 has a 12-bit address bus 38 connected to address the wavetable 13. Additionally, the unit 35 connects to the 8-bit data bus 37. Data bus 37 also connects the wavetable 13 to the output register 36.
- an A bus 48 is utilized to carry the address to an address register 49.
- Address register 49 connects its output to a 12-bit address bus 38 which provides addresses to the wavetable 13 in Fig. 5.
- the four low-order output bits on bus 50, from the address register 49, are encoded to specify one of the 16 voices.
- the bus 50 also connects as an input to the voice-match comparator 52.
- latch 91 When the cO bit latched into latch 91 is a logical 0, it indicates that the parameter mode has been selected. When the bit in latch 91 is a logical 1, it indicates that the pitch/amplitude mode has been selected.
- the output from latch 91 connects as an input to NOR gate 97.
- Gate 97 receives its other inputs from the-zero detector 40 and the c4 bit from latch 53. When zero detector 40 senses with a non-asserted output that all of the bits cl, ..., c7 are not logical 0 and latch 91 stores a 0 to indicate that the parameter mode is called for, gate 97 is satisfied when c4 is zero to provide a latch signal to the voice latch 90.
- AND gate 94 controls the operation of the multiplexer 92.
- new pitches or amplitudes can be inserted into the corresponding voice location in the shift register 56 or new parameters can be inserted into the corresponding voice location in the shift register 55.
- the arithmetic unit 62 is a conventional 12-bit device which, among other things, adds 12-bit data received on each of its two input ports.
- Unit 62 is partitioned into an 8-bit high-order portion and a 4-bit low-order portion.
- the carry-out from the low-order portion is OR'ed with the line 43 signal to form the carry-in to the high-order portion.
- a carry-in 1 on line 43 is used to add +1 to the high-order 8-bit portion under control of the carry-in unit 64 when the low-order four bits in latch 61 have been cleared to 0 by the Z-B signal.
- One of the input ports for the arithmetic unit 62 is fed from the 12-bit A latch 60 and the other input port is fed from the 12-bit B latch 61.
- the A latch 60 derives its input from the A bus 48 and the B latch derives its input from the B bus 47.
- An 8-bit R latch 65 connects data from the high-order 8 bits of the B bus 47 to the corresponding high-order 8 bits of the A bus 48.
- a 12-bit T latch 66 connects to and from the A bus 48 for use as a register for storing the current Write Pointer address.
- the 13-bit output from the arithmetic unit 62 connects to a 13-bit C latch 67 either directly or after inversion in inverter 63.
- the C latch 67 connects the low-order twelve bits of its output to the A bus 48 when the C-R/A signal is asserted and connects the high-order eight bits directly to the B bus 47 when the C-R/B signal is asserted. Selecting the high-order eight bits from the 13-bit latch 67 effectively shifts by 1-bit, that is, divides by 2 any 8-bit number in the C latch 67.
- the decay/compute unit 58 is a selector for selecting different probability values "d" from the random bit generator as a function of the rate specified by bits c0, cl, c2 from field 55-1 and by the coherence bit c3 from field 55-2 of the Ptop stage 55 16 .
- the outputs from unit 58 are the PROBd and the "PROBK" lines.
- the effect of selecting the PROBd line during the decay operation is to permit decay stretching to occur.
- the carry-in from the unit 64 on line 43 adds a +1 value to the Read Pointer address to allow the Read Pointer +1 address to be calculated.
- the addition of +1 is inhibited some number of times so that the Read Pointer address is used twice rather than using the Read Pointer +1 address.
- the greater the frequency with which the +1 addition is inhibited the longer the stretching.
- the PROBd line also is used during the pluck operation to select different initial values of amplitude.
- a number of control lines 73 are output from the control logic 71 and connect throughout the Fig. 6 unit and in some cases to the Fig. 5 instrument.
- control lines 73 form the control logic 71 and their functions are indicated in the following TABLE I.
- the postscript L for each of the signal lines indicates that a latching function into a latch occurs.
- a postscript R indicates that a read (gate out) function from the latch circuit occurs.
- TABLE II depicts the binary and other states of each of the lines identified in TABLE I for each phase of the seven control cycles produced by control logic 71 of Fig. 6.
- the P and P signals for the lines E-R and C-R/B, respectively, are determined by the c5 and c6 bits from stages 55-5 and 55-4 of register stage 55 16 . If bits c5 and c6 are both 1's, then P is 1 and P is 0. When P is 1, it indicates the plucking period for selecting the amplitude from the E latch 59 to the B bus 47. When P is 1, the output data is selected from the C latch 67 to the B bus 47.
- the L signal for line C-L is the 1 or 0 state of the line C -L.
- the R signal in the line C -L is a 1 in the harp mode, that is, local parameter bit c4 is 0 and c5 is 1.
- R is the "PROB1 ⁇ 2" signal from unit 58.
- the D signal in the "rand” line is the complement of c7 (the dither bit).
- the 0 symbol indicates that either a 0 or 1 can be present.
- the operation of the DIGITAR unit of Fig. 6 is under control of commands.
- Each command has 8 bits which are designated from high-order to low-order as c7, c6,..., c0.
- the parameter mode parameters useful for the operation of the Fig. 6 device are loaded from an external source such as input unit 2.
- the pitch/amplitude mode pitches or amplitudes are specified from the external source.
- phase I I of each logic cycle the data from the data-in latch 45 is stored into the Mu latch 53.
- phase 1 1 the mode of the cycle is detected and stored in mode latch 91 of Fig. 6 for determining the Pbot data entry locations of the control shift-registers 55 and 56.
- the command bits on bus 7 are all 0's.
- the command bits c7, c6, c5, c4, c3, c2, cl are all 0's and the command bit c0 is 1.
- the hexadecimal character 1 h is used to indicate that the bits have these values.
- the hexadecimal character F h is utilized. Hexadecimal characters are indicated by a subscript "h" representing base 16 binary numbers. That is, each hexadecimal character is expandable to four binary bits.
- the command codes for the parameter mode are given by the following TABLE III.
- the various parameters set forth in TABLE III provide for many different variations in the basic plucked string sound.
- there are three types of plucking instruments which are defined by the high-order nybble. Those instruments are the drum (l h X h ), the guitar (3 h X h ) and the harp (S h X h ).
- the energization that is, the "pluck" is specified by the local parameter 7 h X h .
- the presence or absence of a modulation bit (called a dither bit) is also controlled by the local parameter high-order nybble.
- the character X h in TABLE III indicates that the nybble can have any value.
- the low-order nybbles of the local parameters for the last sixteen entries specify the decay characteristics.
- the data value of the command bits c2, cl, c0 are stored in the 3-bit field 55-1 of the shift register 55.
- the coherence control bit c3 is stored in the 1-bit field 55-2.
- the control bits c7, c6, and c5 are stored in the 1-bit fields 55-3, 55-4, and 55-5.
- each sound is constructed from an initial pluck at some amplitude followed by a decay at some specified pitch.
- the sixteen 8-bit stages of the shift register 56 are employed during the "pluck" period to store the maximum amplitude of the pluck and thereafter during the decay period to store the pitch period.
- the pitch/amplitude mode is entered when the 0 h 1 h code is detected in the Mu latch 53 during the first phase of the seven-cycle logic cycle of TABLE II. If the pitch/ amplitude mode is being entered for the first time in connection with a note of a given pitch, then the 0 h 1 h code will be followed by the amplitude of the pluck sound and that amplitude will be stored in the bottom register stage (Pbot) 56 1 . This amplitude stored in the shift register stage 56 1 is utilized to fill the wavetable unit 13 of Fig. 5 with appropriate initial values. Either the positive or negative amplitude value is stored at each location in the wavetable for that voice as a function of the 1 or 0 output of random bit generator 57 in Fig. 6.
- Fig. 6 circuitry loads the amplitude into the wavetable is as follows. During the first cycle, 1 1 , the next address location is obtained from the C latch 67 and stored in the T latch 66. The amplitude value is accessed from the Ptop stage 56 16 and transferred over the B Bus 47 to the E latch 59.
- cycle 6 1 the address from the T latch 66 is transferred to the address latch 49 and to the A latch 60.
- the B latch 61 is loaded with a -1 so that in cycle 7 2' the address in the C latch 67 has been decremented by -1.
- cycle 7 1 either the plus or minus amplitude value stored in the E latch 59 is gated through the Data out gates 46 for storage in the memory location of address latch 49. This process is repeated until the wavetable is filled with the plus or minus values of amplitude. While the wavetable is being filled, output data equal to the plus or minus values of the amplitude are supplied to the output unit 4. These values of the amplitude constitute the plucking sound. The plucking sound is present for the duration that the wavetable is being filled with the plus and minus amplitude values.
- the pitch/amplitude mode is again entered and the pitch period number, N, is entered into the bottom shift register stage (Pbot) 56 1 .
- Pbot bottom shift register stage
- the Fig. 6 unit employs a common Write Pointer for all sixteen voices.
- the Write Pointer points to the address in the wavetable at which the currently modified data value is to be stored.
- the Write Pointer is stored in the T latch 66 of Fig. 6.
- the low-order four bits in the T latch represent the voice field of the address and correspond to the voice field output from address latch 49 .on 4-bit bus 50.
- the high-order 8 bits in the T latch 66 (and correspondingly on bus 51 from address latch 49) represent the write address within the wavetable location for any particular voice.
- the Write Pointer in latch 66 is decremented by one count.
- a Read Pointer unique for each voice is calculated during each logic cycle by adding the pitch number, N, obtained from the shift register top location 5616, Pto p , of register 56.
- the Read Pointer is calculated at a memory address which is N locations behind the Write Pointer.
- the addresses in the T latch 66 are decremented once each logic cycle. Therefore, N locations behind the Write Pointer in latch 66 is achieved by adding N to the address in latch 66. If the address in latch 66 were changed by incrementing, then the N would be subtracted from the address in latch 66.
- the Read Pointer selects data that was stored N cycles previously. That data is modified and stored into the address specified by the Write Pointer.
- the modification is in accordance with Eq. (5).
- the data specified by a "Read Pointer + 1" is the data N+l address away from the address in the T latch 66.
- the data at the N and the N+1 locations is summed, divided by two and then rewritten into the address specified by the Write Pointer (in the T latch 66).
- the normal decay operation carries out the modification part of Eq. (5) in the manner outlined in the following TABLE V when no new commands are being given.
- TABLE V the last cycle 7 2 , decrements the address in the T register by one. That decremented value is the Write Pointer which is stored in the C latch 67 at the time that a new logic cycle commences at cycle 1 1 .
- cycle 1 1 the Write Pointer is gated from latch 67 to the A bus 48 and from there to the T latch 66 and the A latch 60.
- cycle 1 1 the pitch length N of the current voice (represented by the low-order bits in the T latch 66) appears on the B bus (designated as Ptop in TABLE V), and that value is latched into the B latch 61.
- the T value in the A latch 60 and the pitch length N in the B latch 61 are added in the adder 62 to provide the Read Pointer in the C latch 67 at cycle 1 2 .
- the Read Pointer in the C latches is gated over the A bus 48 to the address latch 49 where it is propagated over bus 38 to address the wavetable 13 in Fig. 5.
- wavetable 13 provides the data value on bus 8 and it is stored in the data-in latch.
- the data-in value in the data-in latch 45 is gated over the B bus 47 and stored in the R latch 65.
- the carry-in unit 64 conditionally causes +1 to be added to the contents of the sum of the A and B latches thereby adding +1 to the value in the C latch. Since the prior value in the C latch was the Read Pointer (T + N), the new number in the C latch after cycle 3 2 is the Read Pointer +1 (T + N + 1).
- the Read Pointer +1 in the C latch 67 is transferred over the A bus to the address latch 49. From address latch 49, the Read Pointer +1 addresses the wavetable 13 to provide a new data value latched into the data-in latch 45 in cycle 5 1 .
- cycle 5 the data value obtained by the Read Pointer is gated from the R latch 65 to the A latch 60 and the other value of data obtained from the Read Pointer +1 is gated over the B bus 47 to the B latch 61. These two data values are then added by adder 62 to provide the Sum in the C latch 67 in cycle 5 2 .
- the new value of the Write Pointer defines a different voice since the low-order four bits have been changed.
- the shift register 56 has been stepped one stage so that the pitch number N previously in the Ptop location 56 16 has been circulated over the B bus back into the Pbot location 56 1 .
- a new value of the pitch length, N, for a different voice is now stored in the Ptop location 56 16 . That new value of pitch is again used to form the Read Pointer by execution of a complete logic cycle of TABLE V type. This calculation for each of the sixteen voices is performed by sixteen different executions of the logic cycle of the TABLE V type. After the sixteen executions of the TABLE V logic cycle, the T latch 66 continues to be decremented. When decremented, the carryout after the sixteenth decremation carries to the higher order 8-bits within the T latch 66 so that a new location within the wavetable is accessed for each voice. In this manner, all of the locations within the wavetable unit 13 for each of the sixteen voices are accessed in a manner which, for each voice, performs the calculations previously described in connection with Eq. (5).
- the output signal on bus 8 occurs at a sampling frequency of approximately 20K Hz for each voice. Since all sixteen voices provide an output in a cyclic manner, a new signal appears on the data bus 8 sixteen times as fast as the sampling frequency for a frequency of 320K Hz, which is the logic cycle frequency.
- the logic cycle frequency is the time that it takes to complete all of the seven cycles of the TABLE II type. Each of the cycles within the logic cycle of TABLE II occurs at seven times the frequency of the complete logic cycle, that is, at 2.24M Hz.
- These values of the sampling frequency, the logic cycle frequency, and each subcycle frequency within the logic cycle are merely given as representative. Any frequencies can be selected.
- the particular preferred embodiment described operated with the basic clock frequency between 2M Hz and 3M Hz. Accordingly, the sampling frequency, F s , for each voice is 1/112 the clock frequency of the Digitar Unit 35. In the particular embodiment described, the sampling frequency, F, is the same for all of the sixteen voices.
- amplitudes for defining the amplitude of a pluck are entered into the shift register 56 as part of a pluck mode and similarly, the pitch number for defining the pitch of each voice is entered as part of the decay mode for that particular voice.
- two values for the command codes are prohibited for entering amplitudes or pitch numbers. The two values prohibited are O h o h and 0 h 1 h . These values are prohibited since they are used to change between pitch/amplitude and parameter mode. These values are not particularly useful, however, as pitches because a pitch of 2 is the Nyquist frequency.
- Fig. 5 instrument performs the Eq. (5) function
- a simplified example is useful.
- the example uses a memory which has M storage locations where M is equal to 10. It is assumed that the pitch length, N, is equal to 6.
- the Write Pointer (considering only the high-order bits associated with a single voice) has the values 9, 8, 7, ..., 1, 0.
- the Stored Data is the data values A, B, ..., J as previously described. Those values could be, for example, +8, -8, -8, +8, -8, +8, +8, +8, -8 and +8.
- storage location 9 designated by the Write Pointer is filled with the average of the quantities accessed at the addresses defined by the Read Pointer and the Read Pointer + 1.
- the Read Pointer points to the address 5 which is stored with the data value F.
- the Read Pointer + 1 points to the address 6 which is the data value G. Accordingly, in the Logic Cycle 1, the Stored Data is (F + G)/2, that is, 8 with the values previously selected for example.
- the Stored Data is the quantity (E + F)/2, that is, 0.
- each of the cycles is similar until in Logic Cycle 6, the storage location of the Write Pointer 4 is the quantity (A + B)/2, that is, 0.
- the Read Pointer points to the location 9 which was stored with the quantity (F + G)/2 in Logic Cycle 1.
- the Logic Cycle 7 is six cycles displaced from the Logic Cycle 1.
- the value averaged with the values stored in Logic Cycle 1 is the value stored in the cycle prior Write Pointer cycle 0, that is, the original data value A.
- the data value A is seven cycles displaced. Accordingly, the average between the 6-cycle displacement and the 7-cycle displacement is 61 ⁇ 2, that is, the pitch number is N + cycles.
- the sixteen voice embodiment of Fig. 5 has each voice independently controllable for a value of pitch, determined by the pitch number N.
- Each voice has a sampling rate of approximately 20K Hz.
- Each sample time is sixteen voice cycles, each of which is a logic cycle comprised of seven clock cycles.
- the sampling frequency is 1/112 the clock frequency of the Digitar Unit.
- Each voice can be in one of four modes, plucking, guitar decay, drum decay or harp decay.
- Each of the decay algorithms allows decay stretching during the decay operation with the stretching factor, S, equal to 1, 2, 4, 8, 16, 32, 64, or infinity.
- the factor s multiplies the unstretched decay time by the value of s.
- the stretching is implemented by not incrementing the Read Pointer by +1 in selected logic cycles.
- the output to the digital/analog converter in the output unit 4 can be randomly amplitude A or 255 - A, that is, the complement.
- the probability of inversion to 255 - A is 1/S where S is the stretching factor determined by the "PROBd" control to the E latch 59 of Fig. 6.
- S is the stretching factor determined by the "PROBd" control to the E latch 59 of Fig. 6.
- the digital/analog converter 9 of Fig. 2 is centered at 128.
- the blend factors are 1 and h respectively.
- the harp instrument is the drum with a blend factor of 0.
- a .blend factor of 0 means the complement is always selected from the C latch. Therefore, the value in the wavetable is complemented on each pass thereby dropping the frequency an octave and leaving only the odd harmonics. This operation extends the range down an octave and adds a somewhat unusual timber to the higher octaves.
- the dither bit, c7 is provided as an option to counteract the effects of round-off error.
- the coherence bit, c4 is provided as a means of linking several voices. This technique can be used to increase the overall amplitude of a note over that which could be achieved by a single voice. It can also be used to provide a "swell" at the beginning of a note by initially exciting %two coherent voices with equal and opposite amplitudes (complete cancellation hence silence) and later turning off the coherence bit.
- the Digitar Unit 35 examines the input bus 7 from the input unit 2 only once per logic cycle (once every seven clock cycles during the Sp Cy cycle). Therefore, it is necessary for the control byte to be held at least seven cycles by the interface unit 6 before a new command is issued.
- the interface unit 6 can be any conventional device, such as a microprocessor chip, or a control register which is gated out by the SpCy signal from the Digitar Unit 35.
- the control memory in the Unit 35 utilizes the shift registers 55 and 56 in Fig. 6, commands that affect only one voice must be held until that voice has been stepped to the bottom location 55 1 or 56 1 . Therefore, commands which are intended to affect a single voice should be held by the interface unit for at least 112 clock cycles.
- the sixteen voice embodiment previously described utilized a common Write Pointer and a different Read Pointer calculated for each voice. Also, the sampling frequency f was the same for each voice. While these conditions were convenient, they are not limitations of the present invention. More generally, a Write Pointer and a Read Pointer may be independently determined for each voice and each sampling frequency, f , and also be separately determined for each voice.
- the modifier unit 14 is implemented as an 8080 microprocessor.
- a program suitable for doing the modification is set forth in the following TABLE VIII.
- the registers within the 8080 processor include a C latch, a DE register, and an HL register.
- DUR is a location in memory.
- the C register stores the low-order half of the Write Pointer.
- the DE register stores the Read Pointer2 for voice 2.
- the HL register stores the Read Pointer. for voice 1.
- the DUR register stores the address of the current byte. Accordingly, DUR is stepped through 256 sample counts. The DUR register wraps around so that after counting through 256 counts, it commences to count through a second set of 256 counts and so forth.
- the program routine is exited whenever the decay time has elapsed by proceeding from statement 30 to statement 31. If the decay time has not elapsed, the statement 30 jumps to the CONT statement 15 and continues processing.
- the manner of determining the modification of the Eq. (5) type is that of a circular buffer technique.
- a common Write Pointer is shared by all voices. Each voice has a separate Read Pointer. Both the Write Pointer and the Read Pointer for each voice are stepped once per execution of the LOOP.
- the pitch number, N v, for each voice, v is not stored explicitly but rather is the difference between the Write Pointer and the Read Pointer for that voice.
- the Write Pointer for voice 1 is formed using the B and C registers by moving contents of register H to B.
- the Write Pointer 2 is formed by moving the contents of register D to register B.
- the low-order byte in register C, in the register pairs BC is incremented or decremented without affecting the high-order byte B.
- the TABLE VIII routine handles the sampling frequency timing by decrementing a timer DUR once every 256 samples.
- initial conditions can be specified. In concrete terms, this amounts to preloading the wavetable with appropriate values.
- the initial values can form a sine wave, triangle wave, or any other desired waveform. However, it is generally not necessary to do anything so complicated. Since it is desirable to have many high harmonics initially, the buffer in the Fig. 5 instrument is filled with random values. This produces a plucked-string sound very similar to a guitar. One fast way to fill the buffer is to use two-level randomness. Mathematically, the initial conditions are given as follows for n between N and 0:
- the tone has a pitch that corresponds to the periodicity of the buffer load, which is a harmonic of N.
- This harmonic trick is implemented by filling half (or third, quarter, ...) of the buffer with randomness, then duplicating those samples to fill the rest of the buffer. Since short buffers (small N) decay much faster than long buffers, this provides a way to lengthen high-pitched notes.
- the decay-stretching method mentioned below is an additional more general, more powerful, and more time-intensive method for achieving the same result.
- One variant replaces y n-N-1 with y n-N+1 , changing the pitch to N-1 ⁇ 2 rather than N+1 ⁇ 2.
- this variant permits compensation to period N by using the extra time of the wrap-around in the decreasing counter technique. If the extra time is set to half the normal sample time, then the average sampling rate is T(1+1/2N). This means that the frequency of the tone is 1/[(T)(N-1/(2N))].
- Shortening the decay times is harder to achieve than lengthening them.
- One possibility is to change the recurrence to one that smooths out the waveform faster. For example,
- the algorithm of Eq. (30) takes more compute power, so the shortened decay time is usually offset by an increase in the time it takes to compute a sample.
- the variations described below can be applied to the Eq. (30) algorithm as easily as to the Eq. (5) algorithm.
- drum timbres A simple variation of the basic Eq. (5) algorithm yields drum timbres.
- the simplest description of the drum variant is a probabilistic recurrence relation:
- the normal initial conditions are two-level randomness.
- round-off error is not random, but a consistent rounding-down of the samples.
- This effect significantly reduces the decay time of the fundamental frequency (when compared to the theoretical decay time, or the decay time when the algorithm is computed with much larger word sizes).
- the effect can be almost eliminated by randomly adding 0 or 1 to y n-N + Y n-N-1 before dividing by 2.
- This bit-twiddle technique lengthens the final decay of the fundamental roughly back to its theoretical decay time, without appreciably lengthening the initial attack of the tone.
- the new parameter d is called the decay-rate multiplier and lies in the range 0 to 1.
- the decay time of the tone is approximately proportional to s.
- the pitch of the sound is also affected by d, as the period is now approximately N + 1 ⁇ 2d.
- drum sounds are not desired, b can be set to one, simplifying the algorithm.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US46327083A | 1983-02-02 | 1983-02-02 | |
| US463270 | 1983-02-02 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| EP0124197A2 true EP0124197A2 (fr) | 1984-11-07 |
| EP0124197A3 EP0124197A3 (en) | 1987-01-14 |
| EP0124197B1 EP0124197B1 (fr) | 1991-06-12 |
Family
ID=23839519
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP19840300670 Expired EP0124197B1 (fr) | 1983-02-02 | 1984-02-02 | Instrument et méthode de génération de sons musicaux par modification d'une table de forme d'onde |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP0124197B1 (fr) |
| JP (3) | JPH0776871B2 (fr) |
| AU (1) | AU570669B2 (fr) |
| CA (1) | CA1215869A (fr) |
| DE (1) | DE3484690D1 (fr) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3504382A1 (de) * | 1985-02-08 | 1986-08-14 | Rainer Dipl.-Ing. 8000 München Gallitzendörfer | Elektronisches musikinstrument |
| DE3630611A1 (de) * | 1985-09-10 | 1987-03-19 | Casio Computer Co Ltd | Elektronisches musikinstrument |
| AU570669B2 (en) * | 1983-02-02 | 1988-03-24 | Board Of Trustees Of The Leland Stanford Junior University | Wavetable-modification musical instrument |
| EP0143578A3 (en) * | 1983-11-18 | 1988-05-25 | Casio Computer Company Limited | Method and device for transforming musical notes |
| EP1653442A1 (fr) * | 2004-10-18 | 2006-05-03 | Yamaha Corporation | méthode de génération de données de tons, méthodes de synthèse de tons, et appareil correspondant |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2591198B2 (ja) * | 1989-12-12 | 1997-03-19 | ヤマハ株式会社 | 電子楽器 |
| US11871207B1 (en) | 2022-09-07 | 2024-01-09 | International Business Machines Corporation | Acoustic editing |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4133241A (en) * | 1975-05-27 | 1979-01-09 | Nippon Gakki Seizo Kabushiki Kaisha | Electronic musical instrument utilizing recursive algorithm |
| JPS5858679B2 (ja) * | 1975-12-16 | 1983-12-26 | ヤマハ株式会社 | デンシガツキ |
| JPS5848109B2 (ja) * | 1977-01-17 | 1983-10-26 | ヤマハ株式会社 | 電子楽器 |
| JPS5858678B2 (ja) * | 1977-01-17 | 1983-12-26 | ヤマハ株式会社 | 電子楽器 |
| NL181385C (nl) * | 1978-06-30 | 1987-08-03 | Nippon Musical Instruments Mfg | Toonproductie-inrichting voor een electronisch muziekinstrument. |
| JPS557733A (en) * | 1978-06-30 | 1980-01-19 | Nippon Musical Instruments Mfg | Synthesizing musical sound |
| JPS557734A (en) * | 1978-06-30 | 1980-01-19 | Nippon Musical Instruments Mfg | Synthesizing musical sound |
| US4272649A (en) * | 1979-04-09 | 1981-06-09 | Williams Electronics, Inc. | Processor controlled sound synthesizer |
| US4351218A (en) * | 1981-04-02 | 1982-09-28 | Kawai Musical Instrument Mfg. Co., Ltd. | Recursive formant generator for an electronic musical instrument |
| JPS5883894A (ja) * | 1981-11-12 | 1983-05-19 | 松下電器産業株式会社 | デイジタル楽音変調装置 |
| CA1215869A (fr) * | 1983-02-02 | 1986-12-30 | Alexander R. Strong | Instrument et methode de generation de sons musicaux par retroaction |
-
1984
- 1984-01-31 CA CA000446482A patent/CA1215869A/fr not_active Expired
- 1984-02-01 AU AU23953/84A patent/AU570669B2/en not_active Ceased
- 1984-02-02 DE DE8484300670T patent/DE3484690D1/de not_active Expired - Lifetime
- 1984-02-02 JP JP59017635A patent/JPH0776871B2/ja not_active Expired - Lifetime
- 1984-02-02 EP EP19840300670 patent/EP0124197B1/fr not_active Expired
-
1994
- 1994-05-30 JP JP6139341A patent/JPH0830955B2/ja not_active Expired - Lifetime
- 1994-05-30 JP JP6139342A patent/JP2606791B2/ja not_active Expired - Lifetime
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU570669B2 (en) * | 1983-02-02 | 1988-03-24 | Board Of Trustees Of The Leland Stanford Junior University | Wavetable-modification musical instrument |
| EP0143578A3 (en) * | 1983-11-18 | 1988-05-25 | Casio Computer Company Limited | Method and device for transforming musical notes |
| DE3504382A1 (de) * | 1985-02-08 | 1986-08-14 | Rainer Dipl.-Ing. 8000 München Gallitzendörfer | Elektronisches musikinstrument |
| DE3630611A1 (de) * | 1985-09-10 | 1987-03-19 | Casio Computer Co Ltd | Elektronisches musikinstrument |
| US4754680A (en) * | 1985-09-10 | 1988-07-05 | Casio Computer Co., Ltd. | Overdubbing apparatus for electronic musical instrument |
| US5025700A (en) * | 1985-09-10 | 1991-06-25 | Casio Computer Co., Ltd. | Electronic musical instrument with signal modifying apparatus |
| US5136912A (en) * | 1985-09-10 | 1992-08-11 | Casio Computer Co., Ltd. | Electronic tone generation apparatus for modifying externally input sound |
| EP1653442A1 (fr) * | 2004-10-18 | 2006-05-03 | Yamaha Corporation | méthode de génération de données de tons, méthodes de synthèse de tons, et appareil correspondant |
| US7626113B2 (en) | 2004-10-18 | 2009-12-01 | Yamaha Corporation | Tone data generation method and tone synthesis method, and apparatus therefor |
| CN1763841B (zh) * | 2004-10-18 | 2011-01-26 | 雅马哈株式会社 | 乐音数据产生方法、乐音合成方法及其设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0776871B2 (ja) | 1995-08-16 |
| EP0124197B1 (fr) | 1991-06-12 |
| DE3484690D1 (de) | 1991-07-18 |
| AU570669B2 (en) | 1988-03-24 |
| JPH0830955B2 (ja) | 1996-03-27 |
| AU2395384A (en) | 1984-08-09 |
| JPH07152382A (ja) | 1995-06-16 |
| JPH08110782A (ja) | 1996-04-30 |
| CA1215869A (fr) | 1986-12-30 |
| EP0124197A3 (en) | 1987-01-14 |
| JP2606791B2 (ja) | 1997-05-07 |
| JPS59187398A (ja) | 1984-10-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4649783A (en) | Wavetable-modification instrument and method for generating musical sound | |
| US4622877A (en) | Independently controlled wavetable-modification instrument and method for generating musical sound | |
| Karplus et al. | Digital synthesis of plucked-string and drum timbres | |
| US4909119A (en) | Musical tone control system with a pedal for adding a musical effect to a musical tone | |
| JPH0375877B2 (fr) | ||
| US4184403A (en) | Method and apparatus for introducing dynamic transient voices in an electronic musical instrument | |
| JPS6116994B2 (fr) | ||
| US5340938A (en) | Tone generation apparatus with selective assignment of one of tone generation processing modes to tone generation channels | |
| EP0124197B1 (fr) | Instrument et méthode de génération de sons musicaux par modification d'une table de forme d'onde | |
| US4215617A (en) | Musical instrument and method for generating musical sound | |
| EP0235538B1 (fr) | Générateur de forme d'onde pour instrument de musique électronique | |
| US4273018A (en) | Nonlinear tone generation in a polyphonic tone synthesizer | |
| JP2619242B2 (ja) | 時変スペクトルを有する楽音を発生する電子楽器 | |
| US4300432A (en) | Polyphonic tone synthesizer with loudness spectral variation | |
| KR100190484B1 (ko) | 악음 발생 장치(Sound generating appratus) | |
| JPH0310959B2 (fr) | ||
| JPS6322312B2 (fr) | ||
| US4446769A (en) | Combination tone generator for a musical instrument | |
| JPH0786755B2 (ja) | 電子楽器 | |
| JPH0634173B2 (ja) | 電子楽器 | |
| KR920006183B1 (ko) | 전자 악기의 엔벨로프 데이터 발생회로 | |
| JPS6352399B2 (fr) | ||
| JPH0233159B2 (fr) | ||
| JPS58115488A (ja) | 楽曲演奏用lsi | |
| Timbres | Digital Synthesis of Plucked-String and |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| AK | Designated contracting states |
Designated state(s): DE FR GB IT NL |
|
| PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
| AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB IT NL |
|
| 17P | Request for examination filed |
Effective date: 19870327 |
|
| 17Q | First examination report despatched |
Effective date: 19881109 |
|
| GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
| AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB IT NL |
|
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Effective date: 19910612 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED. Effective date: 19910612 |
|
| REF | Corresponds to: |
Ref document number: 3484690 Country of ref document: DE Date of ref document: 19910718 |
|
| EN | Fr: translation not filed | ||
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Effective date: 19911031 |
|
| NLV1 | Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act | ||
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Effective date: 19920202 |
|
| PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
| 26N | No opposition filed | ||
| GBPC | Gb: european patent ceased through non-payment of renewal fee | ||
| PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Effective date: 19921103 |
|
| REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST |