(19)
(11) EP 0 127 586 A2

(12) EUROPEAN PATENT APPLICATION

(43) Date of publication:
05.12.1984 Bulletin 1984/49

(21) Application number: 84830087.7

(22) Date of filing: 26.03.1984
(51) International Patent Classification (IPC)3G10H 7/00
(84) Designated Contracting States:
AT BE CH DE FR GB LI LU NL SE

(30) Priority: 01.04.1983 IT 1790483

(71) Applicant: "ISELQUI"- S.p.A.
I-63100 Ascoli Piceno (IT)

(72) Inventors:
  • Pezzani, Enzo
    Massa (IT)
  • Bosetto, Antonio
    Osimo (AN) (IT)

(74) Representative: Baldi, Claudio 
Piazza Ghislieri, 3
60035 Jesi (Ancona)
60035 Jesi (Ancona) (IT)

   


(54) Polyphonic digital synthesizer


(57) This invention relates to a polyphonic and polytimbric digital synthesizer characterized by the definition of the synthesizer sound through a finite set of (n) periodic wave forms and an algorithm that defines the evolution of the sound.
Each sound is generated by the association in real time of the timbre and the frequency relative to it.




Description


[0001] This petition of patent for industrial invention is related to a polyphonic and polytimbric digital synthesizer: it simultaneously generates various sounds eventually distinguished by different timbres.

[0002] The generation of a sound means the building of an electric signal that, amplified and sent to the loud-speaker, will originate the sound itselfs in this particular case, having a digital synthesizer, it means to build the patterns of that signal at a certain patterning frequency (from now on referred to as FS) that the last step of the system, the analog digital converter, will convert to the analog signal that can be sent to an amplifier and then to the loud-speaker.

[0003] The synthesizer determines, for each sound to be generated, the frequency patterns (FS) of the relative signal, in every patterning moment it adds up the patterns relative to the various signals, originating the patterns of the complex signal, sum of the signals that make up the single soundss this is so because the patterning operation is linear and therefore the sum of the patterns of the single sounds is equal to the patterns of the sum of the signals.

[0004] A signal is characterized by its fundamental frequency (FF) and by its timbre, that is by the time evolution of its spectral composition.

[0005] The system stores the signal timbres to be synthesized and at the moment of synthesis it generates the sound associating timbre and funda mental frequency.

[0006] The timbres are stored in this way: starting from the time evolution analysis of the spectral composition, the period is subdivided into a number (n) of intervals delimited by the times: (tl, t2, ... tn) and in each interval (ti-1, ti) this time evolution is approximated attaching to the signal on the whole interval the spectral composition it has at the center of the interval.

[0007] For each of the timbres that the synthesizer makes available the fol lowing is stored:

a) the patterns on a period of (n) periodical wave forms of period normalized to (1), with the spectral composition given to the signal in the (n) intervals as defined above) later on it will be illustrated how, starting from these patterns, it is possible to synthesize periodi cal signals characterized from those spectral compositions and from different fundamental frequencies.

b) an algorithm that defines the times and the modalities with which the wave forms referred to in point a) come together to create the signal.



[0008] This algorithm is implemented in the system through a simple language: for each timbre there exists in the EPROM memory a coded program in this language that is interpreted by the processing unit supported by a microprocessor (CPU).

[0009] The microprocessor loads into a RAM area, that we will name RAMTIMBRI, the wave forms relative to the timbres that the user selects as immediately executable and it coordinates the sound generation programming the fundamental frequency and executing the operations defined by the timbre algorithm.

[0010] Sounds distinguished by the timbres whose wave forms are loaded in the RAMTIMBRI can be synthesized, at any rate the (CPU) can still load a new timbre in the RAMTIMBRI, substituting it, if the memory is comply telv occupied, with one of the timbres already present, even when the synthesizer is generating sounds.

[0011] All the sounds are built by the withdrawal of patterns stored in the RAMTIMBRI: the microprocessor based on the signal timbre makes it pos sible to withdraw patterns of the wave forms relative to it and, interpreting the program that implements the timbre algorithm, it makes it possible to access at any moment the appropriate wave form between those relative to the timbre.

[0012] It was above mentioned that a signal is characterized by a timbre and a fundamental frequency (FF).

[0013] The system provides a set of (p) programmable oscillators; they are pro grammed by the microprocessor such as to generate a frequency oscillation equal to (m) times the frequency (FF), where (m) is the number of patterns that define the wave forms.

[0014] This oscillation is utilized by a dedicated digital hardware (HW1), substantially a modulus counter (m), to sequentially address all the patterns of the wave form selected by the microprocessor.

[0015] Scanning the (m) patterns of the wave form with frequency (m x FF), the repetition period of the scanning cycle is equal to (FF), that is the generated signal has fundamental frequency (FF).

[0016] Summarizing, during the synthesis of a signal, at every moment there is an addressing of the pattern stored in the RAMTIMBRI: the (CPU) provides the addresses that locate the wave form to access, the hardware (HW1) provides the addresses to determine which one of those of the wave form is the concerned pattern.

[0017] All this happens for all the signals that have to be utilized simultaneously..

[0018] Following is the description of the operation of pattern determination of the various signals at the pattern frequency (FS), and their sum.

[0019] For this operation we have another block of dedicated hardware (HW2), driven by an oscillator of frequency (q) times (FS), where (q) is the maximum number of signals that can be added up (degree of polyphony of the synthesizer).

[0020] This hardware (HW2) subdivides the patterning period (TS = 1/FS) into (q) equal intervals, that we will call time slots, each of which is assigned to one of the signals to add up.

[0021] During each of these time slots the hardware (HW2) executes the following operations for the determination of the pattern of the relative signal: 11 gets the address of the pattern of that signal (built in the way above mentioned),

21 gets the pattern from the memory RAMTIMBRI;


3) adds the pattern into a summer-accumulator modulus.



[0022] After all these operations are executed in all the time slots, on all active signals, at the end of the patterning period the accumulator contains the sum of the patterns of all the signals: at this point the accumulator contents are given to the converter, the accumulator is reset to zero. and a new patterning cycle is started.

[0023] The structure implemented in the synthesizer that carries out the ope rations mentioned above shows a high degree of flexibility: in fact, it is possible to associate to each of the time slots above defined signals characterized by each of the current timbres and by frequencies (FF) generated by each of the present programmable oscillators, this association is carried out by the microprocessor, that is it is handled by the software.

[0024] The described time slot structure allows for an interpolation between two wave forms of a timbre, permitting a gradual transition from one to the other.

[0025] This is possible when the number of the present sounds is small ; in this case it is possible to assign more than one time slot to each signal, so that in the summing phase its patterns are added up various times (a convenient scale factor acting on the final signal makes up for this fact ).

[0026] When the (CPU). implementing the timbre algorithm, has to carry out the transition from one wave form to another, this commutation is executed on a "copy" of the signal at the time, that is on one slot at the time of the slots assigned to that signal.

[0027] The result is that in the transition phases the same signal appears coming out with the patterns of two different wave forms, thus carrying out an interpolation between the two waves.

[0028] The maximum degree of interpolation comes up in the presence of a single signal, that occupies all available time slots: in this case the transition occurs in (q) (time slots number) subsequent steps, with the wave of the final wave form always greater.

[0029] Another peculiar feature of the synthesizer is the way in which the wave form patterns which make up the timbre are stored to minimize the required memory quantity.

[0030] It was mentioned above that for each wave form (m) patterns are stored ; the compacting form of the adopted memory permits to reduce these patterns to (m/r) and to calculate in real time the (m) global patterns through an interpolation technique approximated between each of the (m/r) stored and the next.

[0031] The technique used consists of:

a) a set of (s) values (11, 12, ..., Is) has been appointed and, in cor respondence of each of the values (Ii), (r) values (0, Ii/r, 2 Iilr, ... (r-1) Ii/r) have been stored in a PROM memory.

b) in the off-line generation phase of the (m/r) patterns of the wave forms to be stored, for each of them-the difference is calculated: Aa = value of next pattern - value of pattern.

c) for each pattern the value (Ii) closer to the value (Aa) relative to it is determined: (Ii) is assumed as an approximated increment between one pattern and the next;

d) still in the pattern generation phase the index (i) of the value (Ii) determined as mentioned in part c) is stored together with the values of the (m/r) patterns.

e) in real time the hardware block (HW2) calculates the value of the patterns of the various signals in the following way:

1) gets (i = log2 m) address bits provided by the hardware (HW1) relative to the signal in consideration; uses (i k) most significant bits, where (k = log2 m/r) to get one of the (m/r) wave form patterns stored in the RAMTIMBRI; moreover it gets the index (i) of the increment (Ii) to use: this increment is expressed in (h = log2 s) bits;

2) uses the (h) bits above defined and the remaining (j - k = log2 r-) bits provided by the hardware (HW1) respectively as high and low part of the address with which one can access the PROM increments memory: the value obtained is added up to the one obtained from the RAMTIMBRI thus building the pattern of the signal.



[0032] Another feature of the system is the fact-that the commutation between the two wave forms of a timbre always occurrs in a situation in which the patterns of the wave forms are both (0), avoiding any discontinuity in the resulting signal.

[0033] This function is given to a hardware modulus (HW4) which verifies the addresses provided by the (HWl) moduli and signals to the microprocessor where to carry out the commutation.

[0034] We now continue with the description of the block diagram (fig. 1):

1) Programmable oscillators, programmed by the processing units for the generation of oscillators of frequency equal to (m) (number of the patterns that define the wave forms) times the fundamental frequency (FF) of the signal to synthesize.

2) Moduli (HW1), driven by the previous, they are modulus counters (m) that scan, for the associated signal, the patterns of the wave form selected by the microprocessor, generating some of the addresses (the rest are generated by the microprocessor) which are stored in the RAMTIMBRI memory.

3) Modulo (HW2): it's the block that coordinates the building of the patterns at the patterning frequency (FS) of the active signals, their sum and their conversion in analogic signal.

4) Modulo (HW4) programmed by the microprocessor, makes available for block (HW2) the following information concerning each time slot:

a) which (HW1) is associated to the time slot;

b) if there is an active signal associated to the time slot;

c) which timbre is associated to the time slot;

d) which wave form of the timbre is associated to the time slot;

5) Modulus of address patterning: in each time slot it patterns and makes available the exits of block (HW1) associated to the time slot.

6) Modulus (HW3), handles the access to the patterns of the wave forms stored in RAMTIMBRI, it ensures the microprocessor of the transparent access to RAMTIMBRI and, during the adding phase, it carries out the correct sequencing of access to RAMTIMBRI and to PROM.

7) RAMTIMBRI memory: it stores in compact form the patterns of the wave forms of the rimbres immediately executable.
It provides part of the address with which to access the PROM increments memory.

8) PROM increments memory, in which are stored (r) values for each appointed increment (li): in the accessing phases, part of the address is obtained from RAMTIMBRI, and another part is provided by modulus (5).

9) Adder-accumulator block: driven by (HW2) it sums up the patterns of the active signals during the patterning period (TS), it makes available the frequency sequence (FS) of the patterns of the sum signal.

10) Converter block: it converts the frequency sequence (FS) into the analogic sum signal. It moreover provides a width check to account for the fact that the same signal might have been added up various times to allow for interpolation between two wave forms of the timbres in the transition between one and the other.

11) Block (HW5) : modulus programmed by the microprocessor which controls the exits of the moduli (HW1) relative to the various signals, and it can tell the central unit, if properly programmed, that the addressed pattern of a certain signal is (0).

12) Central processing unit, which consists of a microprocessing system that manages the whole sound generation system.




Claims

1) Polyphonic and polytimbric digital synthesizer characterized by the definition of the timbres of the sounds to be synthesized through a finite set of (n) periodic wave forms and an algorithm that defines the evolution of the sound. Each sound is generated associating in real time the timbre and the frequency relative to it. The wave forms that define the timbre are determined in the following way: starting frim the analysis of the evolution in time of the spectral composition of the signal to synthesize, the length of the sound is subdivided in a number (n) of intervals and in each of these such evolution is approximated giving to the signal a constant spectral composition: these (n) spectral compositions are memorized by the system as (n) periodical wave forms. Of these the system memorizes (m) patterns on a period considered normalized to (1). Scanning the (m) patterns with scanning frequency (m x FF) one obtains signals with that spectral composition and with fundamental frequency (FF). The algorithm of the evolution of sound defines in a complete way the times and the modalities with which the (n) wave forms relative to the timbre contribute to generate the signal; it's the processing unit that, carrying out the operations described by the algorithm, makes it possible for the scanning above mentioned to be executed on the different wave forms of the timbre: going from one wave form to the other a signal is built whose spectral composition has the course of the approximated spectral composition from which we had started to determine the (n) wave forms of the timbre in the above mentioned way. The algorithm moreover defines the times and variation modalities of the fundamental frequency (FF) of the sound. The algorithm of sound evolution is described by means of a simple language: for each timbre there exists in the EPROM memory a program coded in this language that is interpreted in real time by the proces sing unit.
 
2) Polyphonic and polvtimbric digital synthesizer distinguished by the method by which it builds the pattern at the patterning frequency (FS) of the polyphonic signal sum of the single signals generally characterized by different frequencies and timbres. The processing unit loads into a RAM area, which we will call RAMTIMBRI, the patterns of the wave forms of the timbres that the user selects as immediately - executable: the information is obtained from it to build the polyphonic signal, with the following method:

a) the patterning period (TS = I/FS) is subdivided into (q) equal inter vals, which we will call time slots ((q) is the polyphony degree of the synthesizer),

b) each time slot is assigned to a signal to be added up (it might also not be assigned);

c) during each time slot the pattern relative to the signal assigned to the time slot is obtained from RAMTIMBRI and it is added-up in an adder-accumulator modulus;

d) at the end of all time slots the accumulator contains the sum of the patterns of all the signals; at this point the sum value is moved to the analogic digital converter, which builds the analogic signal to be sent to the aplifier, the accumulator is initialized to zero and a new cycle starts. The structure executes what was above mentioned with a high degree of flexibility) in fact, it is possible to associate to each time slot some signals distinguished by each of the present timbres and by each of the generated frequencies (FF); moreover, each timbre can be present with each of the wave forms that define it.

3) Polyphonic and polytimbric digital synthesizer distinguished by the information compacting method used to represent in memory the (m) patterns of the wave forms mentioned in point 1). It allows the memorization of only (m/r) patterns and from these the reconstruction in real time of the (m) global patterns, using a technique of approximated interpolation between each of the (m/r) stored and the next. The adopted technique consists off

a) a set of (s) values

I1, 12, ... , Is)
has been appointed and, in correspondence of each of the values (Ii), (r) values (0, Ii/r, 2Ii/r, ..., (r-l) Ii/r) have been stored in a PROM memory,

b) in the off-line generation phase of the (m/r)patterns of the wave forms to be stored, for each of them the difference is calculated:

(Aa) = value of next pattern - value of pattern;

c) for each pattern the value (Ii) closer to the value (Aa) relative to it is determined: (Ii) ia assumed as an approximated increment between one pattern and the next;

d) still in the pattern generation phase the index (i) of the value (Ii) determined as mentioned in part c) is stored together with the values of the (m/r) patterns.

e) the system calculates, in real time, the generic pattern (u) of the (m) of the wave forms in the following way: it adds the pattern (U1) of the (m/r) stored, where

(Ul) = whole portion of (u/r) 0≤=U1<m/r
with the value

(U2 x Ii/r) 0≤=U2<r
stored into PROM, where

(U2) = remainder of (u/r)

(i) = order number of the increment stored with the pattern

(Ul) of the (m/r) stored.


 
4) Polyphonic and polytimbric digital synthesizer distinguished by the fact that the (m/r) patterns (pattern value and relative increment index) mentioned in part 3), relative to the wave forms of the immedia telv executable timbres, are stored into a double-access RAM (RAMTIMBRI), so that the processing unit can change the timbres stored there even during sound execution.
 
5) Polvphonic and polytimbric digital svnthesizer distinguished by the fact that the values of the increments (Ii) stored in PROM, mentioned in part 3), are bound bv the relation.
 
6) Polyphonic and polytimbric digital synthesizer distinguished by the fact that the timbre movement between one wave form to the other occurs in the moment when both wave forms have a null value, avoiding discontinuity in the movement. This operation is obtained by means of a programmable hardware that controls the scanning of the wave forms and that, if properly programmed, communicates to the processing unit the exact moment to carry out the commutation.
 
71 Polyphonic and polytimbric digital synthesizer distinguished by the fact that, if few sounds are present, the. patterns of the same signal can be added up various times in the determination of the pattern of the polyphonic signal3 in the transition from one wave form to the other (see part 1)), this allows for a linear interpolation between the two wave forms in a certain number of steps. For this purpose, re rerring to the time slot structure mentioned in point 2), the same signal is associated to (q1) time slots, where (q1) = whole portion of (time slot number/present signals number). If (ql>l) the patterns of a same signal are added up various times. During the transition phase between one wave form and the other, it is possible to commute on one time slot at the time, thus carrying out the commutation between one wave form to the other in (ql) steps. This allows the analogic digital convertor to work with a high dynamic degree even though only one sound is present. A convenient scale factor under the digital analogic convertor makes up for the fact that the same signal might have been added various times.
 




Drawing