[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 itself
s 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.
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.