EP0989541A1 - Tone synthesizing device delivering a sequence of electrical samples - Google Patents
Tone synthesizing device delivering a sequence of electrical samples Download PDFInfo
- Publication number
- EP0989541A1 EP0989541A1 EP99402316A EP99402316A EP0989541A1 EP 0989541 A1 EP0989541 A1 EP 0989541A1 EP 99402316 A EP99402316 A EP 99402316A EP 99402316 A EP99402316 A EP 99402316A EP 0989541 A1 EP0989541 A1 EP 0989541A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- value
- cell
- memory
- during
- cellule
- 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.)
- Withdrawn
Links
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/08—Instruments in which the tones are synthesised from a data store, e.g. computer organs by calculating functions or polynomial approximations to evaluate amplitudes at successive sample points of a tone waveform
- G10H7/12—Instruments in which the tones are synthesised from a data store, e.g. computer organs by calculating functions or polynomial approximations to evaluate amplitudes at successive sample points of a tone waveform by means of a recursive algorithm using one or more sets of parameters stored in a memory and the calculated amplitudes of one or more preceding sample points
Definitions
- the present invention relates to a sound synthesis system allowing obtain a series of electrical signals as output, which after conversion digital / analog can be applied to one or more transducers to give result in the production of an audible spectrum.
- the invention relates to a system sound synthesis of the type indicated above, which can be implemented using a plug-in card so that it can be inserted into a personal computer giving a very wide and varied capacity for sound production.
- the most common units currently used for sound synthesis are designated by the English word “Wave Table” or "FM”.
- the unit “Wave Table” denotes a unit in which sound synthesis is carried out using groups sound samples rigidly pre-recorded in a memory which can be present on any known recording medium, internal or external to the device.
- an "FM" unit uses two oscillations, one of which is a carrier frequency modulated by the other oscillation. This principle allows to generate more complex oscillations from a limited number of oscillations.
- the signal obtained depends on the frequency ratios and the amplitude of the modulants.
- the harmonics are the side bands of frequency modulation. Those are products with an equidistant frequency ratio proportional to the ratio between the frequency of the modulant and that of the carrier.
- the amplitude of the modulant determines the many of these harmonics.
- the amplitudes of the harmonics produced cannot be freely determined and they follow a shape akin to a curve interference.
- Wave Table and FM units have the disadvantage offer very little flexibility as regards the composition of the final sound spectrum, the parameters characterizing the successive samples (amplitude, frequency and phase, in particular) being mostly predefined without the possibility of modifications.
- the object of the invention is to provide a sound synthesis system devoid of disadvantages of the earlier units briefly described above.
- said first, second, third, fourth, fifth and sixth means are used in sharing of time in successive work cycles to determine relative values to said cells in said parameter, designation value and accumulation.
- FIG. 22 illustrates an example of detailed implementation of the synthesis unit according to the invention.
- FIG. 1 is a symbolic diagram illustrating, in the form of blocks functional, the main circuits of the sound synthesis device according to the invention.
- this includes three basic units which are a management computer called below CPU.
- This unit can be a personal computer running on a program sound synthesis management previously recorded, on a floppy disk for example, and working with any type of usual exploration program like 'Windows' TM, for example.
- the management unit can be formed by any other device allowing to execute a program dedicated to the management of the device according to the invention.
- the CPU is connected to a functional interface I which on the one hand ensures the exchange of messages between the CPU and a synthesis unit (called SYNT by the continued) and secondly the timing of all sound synthesis operations, intended to be implemented in this SYNT unit. This delivers the sound signal desired on an output S.
- a functional interface I which on the one hand ensures the exchange of messages between the CPU and a synthesis unit (called SYNT by the continued) and secondly the timing of all sound synthesis operations, intended to be implemented in this SYNT unit. This delivers the sound signal desired on an output S.
- the SYNT synthesis unit comprises a number of hardware functional blocks which will be described later in detail with reference to the figures, the figures concerned by the blocks being indicated in each of them.
- the SYNT unit comprises two main functional units EF1 and EF2, surrounded by mixed and charged lines basically establish parameters defining the characteristics of the samples sound to produce, and the other to implement these parameters by applying them to so-called zero level samples to generate the level samples superiors .
- each block contains a word or key expression intended to indicate its global function.
- FIGS. 3 and 4 show a symbolic diagram of the interface I of the sound synthesis according to the invention, the CPU being here symbolized by the rectangle 1.
- the signals generated in this interface I are represented in FIGS. 3 and 4, the scale of Figure 3 being smaller than that of Figure 4.
- Interface I includes a crystal oscillator 2 which provides a clock signal of CLK base (see for forms of signals and their temporal relationships Figures 3 and 4) to a three-bit binary counter 3.
- the three outputs Q0, Q1 and Q2 of this counter 3 constitute a CCAL signal described later and they are also applied to a binary decoder 4 decoding the three-bit signal applied to it on eight outputs C0 to C7.
- the outputs C0 to C3 of this decoder 4 clock four sub-periods P2_AMP, P2_FRE, P2_PHA and P2-FLT of a period P1 which is clocked via a gate AND 5.
- the outputs C4 and C5 of the decoder 4 respectively clock the sub-periods P3 and P4, while outputs C6 and C7 are applied to an AND gate 6 by through which the PCPU subperiod is clocked.
- the period P1 and the sub-periods P3, P4 and P2_AMP, P2_FRE, P2_PHA and P2-FLT have actually all the same duration, but as the time intervals during which they determine an activity in the SYNT unit, are fixed by the duration of their low level in each period. We will therefore designate these low level durations by the term "active pulse" in what follows, the active pulses being phase shifted compared to others in the various sub-periods.
- the output C0 of the decoder 4 is also applied to the RESET input of a flip-flop S-R 7 to the SET input from which a CS_CPU signal from the CPU and representing the access requests of the latter.
- This toggle provides periodically a signal ATTENTE_CPU on a terminal 8 to put the CPU in wait during a request expressed by a signal CS_CPU, during the cumulative duration active pulses of the P2_AMP, P2_FRE, P2_PHA, P2_FLT, P3 and P4.
- the CPU is authorized to transmit addresses, data and read / write commands to the synthesis unit SYNT. It can also receive data during the active pulses of the sub-periods PCPU.
- N 192 has been chosen, another number of cells being possible.
- the counter 9 is controlled by the signal C7 of the decoder 4 which advances it by one unit at the end of each period P1 and it is synchronized with the signal CLK of the base clock 2. Its output Q n delivers a cell base address ADR_BASE to a cell address selection block 10 for determining the succession of cell base addresses (0 to 191 in the example).
- the CPU can communicate via the interface with the SYNT unit.
- the PCPU output of AND gate 6 and the signal access request CS_CPU are applied to an OR gate 11 whose output can activate a SEL selection signal from block 10.
- the logic state of this signal selectively determines whether it is the output of counter 9 which constitutes the address of the active cell at an instant considered, or if it is the management program running in the CPU which provides this address.
- the output of counter 9 is passed from input ADR_BASE from block 10 to the shared AC output (instant cell address) of this block.
- the signal SEL activates two interface blocks 13 and 14.
- the cells of the SYNT unit are in fact materialized fleetingly during successive PCAL sequences (composed of signals P1, P3 and P4; Figure 4) preparation of so-called "first level" samples.
- PCAL sequences PCAL together make up a P cycle during which the successive first level sample calculations for all cells.
- cycle P therefore presents 192 PCAL sequences.
- successive, cycle P being executed at the sound synthesis sampling frequency which is for example 44,100 Hz. This is the frequency of the ACT signal also shown in Figure 4.
- the materialization of cells is carried out by fleetingly and cyclically storing calculated cell data, at memory locations of a plurality of memories assigned to calculation and / or control functions and provided materially in the SYNT unit.
- Each of these memories contains as many of locations there are cells in the SYNT unit.
- information in the form of addresses or data can also selectively be written to memory locations regarding cells respective from the CPU during the PCPU subperiod following each sequence PCAL.
- the memories in question can receive information the regarding to store this information at their storage location having address 0, or deliver this data when it leaves so that this data can be processed later. Then, during the next PCAL sequence the same operations or other similar operations may be carried out with regard to cell 1 at the locations having address 1 in the memories, and so on until cell # 191 has been processed, after which the process begins again with cell # 0.
- Memories can be loaded (write), read and unloaded from different ways including the CPU 1.
- the SYNT unit materializes the 192 cells by the contents of the 192 memory locations dedicated to this task, each cell being "composed" of the locations with the same address of these memories.
- the content of each cell may or may not vary from one cycle to another, depending on the characteristics first level samples to be produced.
- the audio samples to be produced can be compounds from several sources which can in particular be mixed with great flexibility.
- Blocks 13 and 14 allow to transfer to the SYNT unit respectively addresses, data and read / write commands, provided these blocks are activated by the SEL selection signal from gate 11 and that the output signal WAITING_CPU of flip-flop 7 is deactivated.
- This signal being active during the pulse active from the PCPU subperiod, the management program executed in the CPU can act on the SYNT unit, naturally as far as this program prescribes such action during the PCAL sequence considered.
- Block 12 can receive from the CPU on an input 12a addresses ADR_CPU, on an input 12b a read command signal RD_CPU, on an input 12c a write command signal WR_CPU and on an input 12d the selection signal CS_CPU.
- the output 12e of block 12 makes it possible to transfer address values to several destinations, namely block 10, block 14 for reading / writing selection of memories and other elements of the SYNT unit, which will be described later.
- Block 13 has an input 13a for receiving data from the CPU, 13b read command input, 13c write command input and an output 13e for transferring data to various elements of the SYNT unit such as described below. Data transfer can be bidirectional.
- Block 14 includes an input 14a for receiving read / write addresses from block 12, a read control input 14b receiving the signal RD_CPU, a write control input 14c receiving the signal WR_CPU and a selection input 14d connected to the output of door 11.
- This block includes also outputs 14e and 14f connected respectively to a control bus of read 15a and to a write control bus 15b, these two buses carrying selectively read / write command signals to all SYNT unit memories. The identifications of these signals are given in full in FIG. 2 and are found in the corresponding places of the other figures still at to describe.
- the output of door 5 is logically combined with the output of the block of address selection 10 in a NAND gate 16 providing the ACT output signal which is the sampling frequency of the SYNT unit.
- FIG. 5 represents a circuit for developing parameter values designated globally by reference 20. This circuit is part of the SYNT unit.
- the SYNT unit comprises a plurality of memories, some of which appear in FIG. 5.
- each memory is symbolized by a square with associated data inputs and / or outputs and a smaller rectangle associated with an address entry, an entry for write command and / or a read command input.
- each square we indicated the number of locations in the memory in question in the example considered.
- FIG. 5 represents the hardware of a circuit 20 development of a parameter that is repeated four times in the SYNT unit ( Figure 6).
- each circuit 20 (incorporated respectively in blocks 20A to 20D) forms one of four AMPLITUDE, FREQUENCY, PHASE or FILTER parameters that can be assigned to the calculation of first level samples.
- the corresponding parameter value VAL (which are respectively designated by AMP, FRE, PHA and FLT) obtained after the pulse activates the respective P2_AMP, P2_FRE, P2_PHA, P2-FLT sub-periods appears on an output terminal 21 of circuits 20A to 20D.
- each circuit 20A to 20D for developing parameters includes a memory M1 in which the basic value of the AMPLITUDE, FREQUENCY, PHASE or FILTER parameter of cells. These values are received from the CPU via output 13e (figure 2) during the pulses active in the PCPU subperiod during which the CPU is authorized to access SYNT unit.
- a memory M2 is intended to store increment values of the parameter in case it has to undergo a change for the elaboration of a sample given with respect to the same parameter of a previously developed sample.
- the increment value is also supplied by the CPU via output 13e of the interface block 13.
- the outputs of memories M1 and M2 are applied to a calculation unit 22 intended to implement the following calculation function: in which PAR P not is the current parameter value of the cell considered during the current PCAL sequence or the initial parameter value, PAR P n-1 is the parameter value developed during the previous PCAL sequence for this cell and INC P not is the increment brought to the current value of the parameter compared to the previous value. It should be noted that this calculation makes it possible to introduce an automatic interpolation between different successive parameter values to attenuate value jumps, if necessary.
- the output of memory M2 is applied to a first arithmetic unit U1 responsible for performing on variables A and B which are applied to it the operation B ⁇ A, the variable B being supplied by an arithmetic unit U2 which performs on its variables input A and B operation A-B.
- the variable A of this arithmetic unit U2 is each times the output of the difference between the new value stored in the memory M1 of the parameter and its current value stored in a memory or accumulator M3.
- the result of the calculation performed in the arithmetic unit U1 is applied, as variable A, to another arithmetic unit U3 which performs the operation A + B on its input variables.
- the input variable B of this arithmetic unit U3 comes from the memory M3 which is intended to temporarily store and for each cell the parameter value PAR P n-1 , i.e. the parameter value calculated during the previous PCALP sequence.
- the memory M3 is therefore connected by its data input to the output 21 and by its data output to the variable input B of the calculation unit U2. Writing the PAR P value n-1 in the memory M3 occurred during the active pulse of the sub-period P4 of the previous PCAL sequence.
- This part includes a memory M4 controlled in read / write by the R3 and W3 signals with regard to amplitude, frequency, phase or filtering.
- This memory stores, if necessary, a modification of the parameter value for one or more of the 192 cells depending on the AC address signal. Its output is connected to an address buffer 23 whose input values can pass to the output under the command of the respective active pulse of the P2_AMP sub-periods, P2_FRE, P2_PHA or P2_FLT.
- the values thus transmitted through buffer 23 are applied to a distributor 25 responsible for selecting one of a plurality of sources of values of parameter intended for the elaboration of the first level samples by the cells.
- This distributor 25 will be described later with reference to FIG. 12.
- the signals corresponding to these parameter values are sent in a flip-flop 24 activated in writing on the active pulse of the P2 sub-period concerned, depending on the nature of the parameter to be modified.
- the output of flip-flop 24 is connected to input A an arithmetic unit U4 which allows to perform selectively a combinatorial calculation such as a sum calculation or a product calculation on the values applied to its starters.
- Input B of this arithmetic unit U4 is connected to a flip-flop 26 whose input is connected to the output of the arithmetic unit U3 and which is activated at during the active pulse of the P3 subperiod.
- the part of the circuit of FIG. 5 which has just been described allows for example to apply a vibrato to a synthesized sound by varying the value of frequency of the samples from which this sound is formed.
- Figure 6 a diagram illustrating the sets of input signals and output which are applied, respectively produced, by the four circuits 20A to 20D each of which is identical to the circuit 20 for developing a parameter in FIG. 5.
- block 20A is assigned to the AMPLITUDE parameter, blocks 20B, 20C and 20D being respectively assigned to the FREQUENCY, PHASE and FILTER parameters.
- the write and read signals R1 / W1, R2 / W2 and R3 / W3 are applied to memories M1, M2 and M4 of FIG. 5; they come respectively from the buses of command 15a and 15b in FIG. 2.
- Each block is selectively timed for each PCAL sequence at the moment when the active pulse of the subperiod corresponding is produced.
- Each block also receives input data on the DCPU bus and the AC signal of cell number or address (see Figure 2).
- the exits AMP, FRE, PHA and FLT of each block are dealt with in other parts of the unit SYNT as described below; the same is true of the signals passing over the terminals of blocks 20A to 20D.
- Each corresponding first level sample during a sequence PCAL to one of the cells, must be formed from a zero level sample which must be specifically identified and taken from one of the zero level sample sources. But, this zero level sample must also be assigned a time value so that he can contribute to the elaboration of the first level sample to which he goes to belong.
- the system thus comprises means, represented in FIG. 7, which is intended to generate a binary value, called "zero level sample designation value” or more briefly "value
- This designation value symbol POS-X
- This first binary value represents a time interval expressing the ratio between the frequency of any cell in relation to a basic frequency of which it is a multiplying factor.
- the increment must be double to address the same table of 1024 points per cycle or 20.43345.
- the ACT signal corresponds to the sampling rate, in the occurrence of a frequency of 44 100 Hz. It will therefore be noted that the value POS_X inherently represents a time value of sample positioning on the time axis, while at the same time it designates these samples by evolving constantly since it is at the same time a memory address containing the level zero samples.
- the designation value POS_X is calculated in a calculation circuit 30 of selection values shown in Figure 7.
- the divider 31 adds in the unit U5 a value 1 to the integer value 10 at the rate of 21678 times per hundred thousand pulses of the ACT signal.
- the value added to the output of the unit U5 will be equal to 11, 21678 times over one hundred hundred thousand pulses of this ACT signal.
- the output of the arithmetic unit U5 is applied to one of the SEL B inputs of a multiplexer 32 which, under the control of a signal SC_ETR, makes it possible to select, from one PCAL sequence to another, the type of growth of the POS_X value as a function of several use cases of zero level sample sources, as we will see below. In one of these cases, the growth of the POS_X value is constant (0001 for example) and applied to connection 33.
- the output of block 32 is connected to a block of determination of sign 34 which under the control of a signal SGN affects a signal positive or negative at the value extracted from memory M5. Note that if the negative signal is selected, the synthesized sound sequence can be played backwards in the time, because the value POS_X will then be decremented from one period P1 to another, from the quantity determined in the calculation circuit 30 instead of being incremented.
- An M5 accumulation memory loaded by the active pulse of the subperiod P4 stores for all cells the previous POS_X value.
- the output of the sign determination block 34 is applied to the input B of a arithmetic unit U6 whose input A is connected to the output of memory M5.
- This unit U6 adds up its two input variables.
- the result is sent to a multiplexer 35 which allows, under the control of a CD_INIT signal, to address its output, either the output of the arithmetic unit U6, or an initialization value lNlT_X still to be described from which the POS_X value will be incremented.
- the value lNlT_X can be zero in some cases.
- the output of multiplexer 35 is connected to a bistable synchronization flip-flop 36 in which the value is written by the active pulse of the P3 subperiod.
- the output of this flip-flop 36 is connected on the one hand to the data input of memory M5 and on the other hand as variable B, at one of the inputs of a unit U7 arithmetic which receives on its other input the PHA value coming from the circuit for developing parameters 20 (block 20C of FIG. 6).
- the result of the calculation in the arithmetic unit U7 (sum of its input variables A and B) is the value POS_X.
- the SYNT unit materializes in time sharing a number n of cells in which prime sample values are developed level from zero level sample values assigned parameters of predetermined amplitude, frequency, phase and filtering.
- the SYNT unit also has means to materialize in time sharing a number m of sets of cells which, like these are represented by values stored at locations of memory of a plurality of memories.
- m 64 so that there are 64 sets, the locations of each of the memories assigned to this task therefore also being 64 in number.
- the sets are intended to bring together or more precisely to combine first level sample values developed in a predetermined number of cells at the end of each P sampling cycle to produce so-called samples second level.
- FIG. 8 represents a circuit 40 for allocating first level samples allowing to assign predetermined cells to a predetermined set of the plurality of sets of the SYNT synthesis unit.
- the forms of the appearing signals in this allocation circuit 40 are shown in FIGS. 9 and 10.
- the second level sample value of a set selected for this time is represented by the signal ACC_ENS which is found at the top right in Figure 8 and which constitutes the output of the allocation circuit 40.
- This value is fleetingly found at the address corresponding to this set of an M6 accumulator memory (at 64 locations in the example) sent by the signal AACC_ENS and whose input from data is connected to the output of an arithmetic unit U9 responsible for performing the multiplication of its inputs A and B.
- Writing to memory M6 is controlled by through the active pulse of the P4 subperiod. It reaches him through an AND gate 41 also receiving a signal C_ENS designating the last cell whose the first level sample which has just been calculated must, for a given allocation, be incorporated into the second level sample value to be provided by this together.
- the arithmetic unit U9 receives on its input A the stored output data in a flip-flop 42 (see FIG. 9) which receives this input data from an arithmetic unit U10. It performs the sum of its values applied to its inputs A and B.
- the writing of the data in the flip-flop 42 takes done during the active pulse of the P3 subperiod.
- the output of this flip-flop 42 is also connected to an intermediate accumulation memory M7 (64 locations) in which data can be written during the pulse active of the P4 subperiod. On output, this data is applied to input B of the arithmetic unit U10.
- This AND gate makes it possible to add the sample value of the cell current, if bit C_CSEL is '1'. Otherwise, the value is not added overall.
- the input A of the arithmetic unit U9 receives a value constituted by the sum of all ACC_CEL accumulated values of cells assigned to a given set, sum which appears at the exit of rocker 42, as represented in figure 9.
- the arithmetic unit U9 receives on its input B an amplitude value coming from an M8 memory (64 locations) in which values are stored amplitude which can be entered by the management unit CPU under the command of the write signal W_ENS_AMP ( Figures 2 and 8).
- the amplitude value can be read in the memory M8 under the control of the signal R_ENS_AMPL to adjust the value calculated amplitude of the current set considered.
- the data input of an M9 memory (192 locations) is connected to the block 13 (figure 2) to receive from the CPU address values specifying for each cells to which set this cell will belong to participate in the production a second level sample. Writing these address values into this memory M9 is done at the addresses corresponding to the cells respectively concerned.
- FIG. 9 illustrates by a simple example this writing in the memory M8 for the first five cells with the numbers 0 to 4 of a P cycle.
- the cells 0, 1 and 2 will belong to set 0 and cells 3 and 4 to set 1.
- the writing and reading of the memory M9 are carried out under the control of the signals W_ENS_CEL and R_ENS_CEL.
- the same value determines the address of the M7 memory which accumulates this data under the control of the active pulse of the subperiod P4.
- Each address value written in memory M9 is accompanied by a bit which, in the example, is the most significant bit (MSB). In this case, it is at 1 when during the following period P1, the calculation for the current set must continue to be done for this set. On the other hand, when this bit is at one, this means that the calculation of the current set is finished.
- the corresponding signal is designated by C_ENS which, as shown in Figure 9, is for example one for the cells 0, 1 and 3, and zero for cells 2 and 4.
- the signal C_ENS is used to command the writing in memory M6 of the cumulative value a second level sample belonging to a current set.
- the writing of the amplitude data of the sets in the memory M8 can be do to addresses which can come either from memory M9 (A_ENS), or directly of block 10 ( Figure 2).
- the address is selected using a multiplexer 43.
- the address AC passes through this multiplexer 43, when one or other of the W_ENS_AMP or R_ENS_AMP signals is zero. Otherwise it is the address A_ENS which past.
- the allocation circuit 40 also includes a part for phasing the cells and sets.
- This phasing and the triggering of a selected set are non-synchronously controlled by a W_DEC signal from block 14 (figure 2).
- the signal W_DEC commands the writing of the address of the assembly to be put in phase in a flip-flop 44, receiving this address from the CPU.
- the signal W_DEC is synchronized with the ACT sampling signal via a lock 45, three flip-flops 46, 47 and 48 and a NAND gate 49.
- the signals appearing in this part of the circuit are represented on figure 10 which allows you to understand how it works.
- the Q bar output of flip-flop 46 provides an ACT_lNlT signal which activates a comparator 50 intended to compare two address values, namely that coming from of the memory M9 and that which is delivered by the rocker 44. In the event of equality of the two address values a cell initialization signal C_INIT is issued. This signal is used in particular in the circuit 30 for calculating time increments of FIG. 7 for the multiplexer 35.
- the allocation circuit 40 of FIG. 8 also makes it possible to supply the signal ENS_FRE also used in the computation circuit of figure 7.
- a multiplexer 51 makes it possible to selectively send to a memory M10, the A_ENS address values or AC address values depending on signal status write / read W_ENS_FRE and R_ENS_FRE provided by block 14 of figure 2 for write in this memory the value ENS_FRE coming from the CPU to the address of the current set having to work with this interval value.
- FIG. 11 represents a circuit 60 for allocating second level samples allowing to selectively group the second level samples on outputs 0 to q to generate third level samples which, in the example described, are SYNT unit output samples. There are 16 outputs in the example.
- An M11 memory (64 addresses, one per set on the six weight bits weak signal AC) is intended to contain sample distribution values of second level ACC_ENS. These distribution values are provided by the CPU under the command of a W_SORTIE signal and they can be read under the command of a signal R_SORTIE to be transferred to a distribution control bus 61. The bits of these values are applied respectively to logic gates 62-0 to 62-q which also receive the signal C_ENS and the active pulse of the sub-period P4.
- the values of the second level samples ACC_ENS are applied respectively to arithmetic units U11-0 to U11-q in which values previous second level samples can be added to values common such samples.
- the sums calculated in these arithmetic units are temporarily stored in flip-flops 63-0 to 63-q in which the results of arithmetic unit calculations can be written under the command of outputs of the respective doors 62-0 to 62-q.
- the contents of the flip-flops can be deleted either by the sampling signal ACT which also provides the synchronization signal EXT_SYNC for an external device (converter digital / analog, processor, etc.) to read outputs 63-0 to 63-q.
- each first level sample can be calculated by acting on the cell considered from different sources.
- Source selection values stored for cells respectively in this memory M4 are transferred to an output of a flip-flop 23 activated on the active pulse of sub-period P2, output at which appear ADR_CTR source selection command values when they need to respectively be available to operate the selection of a change in value of parameter for the current cell.
- Figure 12 gives more details of the block of selection 25 which is common to blocks 20A to 20D of FIG. 6 and which is controlled by the selection values ADR_CTR.
- a source for modifying parameter values can be made up selectively either by another cell, or by a set, or again by an external input to the SYNT unit as appropriate (detection signal of parameter), the term "input” here designating a group of blocks intended to adapt the external signals for operation in the SYNT unit.
- the source or input selection block 25 thus comprises a first selection logic 25a whose control signal is formed by bits 1 to 5 of greatest weight of the values ADR_CTR memorized in the memory M4 (figure 5). These most significant bits are used to transmit from the input to the output of the selection logic, selectively for each cell, one of four values of modification of sample which are respectively the signals ACC_CEL, ACC_ENS and ACC_DET and lN_CEL generated from first level samples (cell) or second level (set), of a detector on signal input (amplitude, frequency or band) and a signal input (see for more details later).
- the output signal thus selected is called DATA_CTR which can be used as a parameter value change value during the subsequent calculation of a first level sample of any cell.
- ADR_CTR value bits are also applied to one second selection logic 25b which distributes the sources of modification values in four cases.
- the first of these cases concerns the accumulation for cells in a accumulation memory M13 using an AACC-CEL address (figure 13), in from a multiplexer 25-1.
- the address is normally set to AC or during sub-cycle P1, it has the value of the most significant bits of the value ADR_CTR, when it determines a value between 0 and 191.
- the DATA_CTR data is then activated by a buffer BX1 of logic 25a.
- the second case concerns the memory for accumulating sets M6 in FIG. 8 which receives the address AACC_ENS by the multiplexer 25-2 of the logic 25b.
- This address is normally the value A_ENS, but during the sub-cycle P1, it has the value ADR_CTR, when the most significant bits of the value ADR_CTR are located between 192 and 207.
- the DATA_CTR data are then activated by a BX6 buffer.
- the third case concerns the selection of what are known as detectors, by the value AACC_lN supplied by a multiplexer 25-3 of the logic 25b of figure 12.
- the value AACC_lN is determined by a memory M14 (figure 16) of selection of inputs.
- the address is normally AIN and during the P1 sub-cycle, it is ADR_CTR if the most significant bits of this signal determine a value between 208 and 223.
- the DATA_CTR data are then activated by a BX2 buffer of the logic 25a.
- the fourth case concerns the choice of detectors shown in Figure 18 (described in detail below). This choice concerns either a block 144 of amplitude, or a block 147 of frequency, again a block 146 of bands. Values beyond 224 of ADR_CTR can be used to define these detectors.
- the data DATA_CTR are then activated by buffers BX3 to BX5 as appropriate.
- FIG. 13 represents a diagram of a circuit 70 for controlling the selection of mode and input blocks. Indeed, the calculation of the first level samples in the cells can be performed in a number of modes of operation and also based on output signals set by any of a certain number of input blocks. These in turn can set their exit signals to from actual sources which may be internal and / or external to the unit SYNT.
- the three least significant bits MOD_SC0 to MOD_SC2 are applied to a selection logic 71 which, according to the values of these bits, can activate eight modes of operation implemented respectively in four input blocks 72 to 74 which form so-called zero level samples.
- the input block 72 makes it possible to implement an operating mode in which the SYNT unit uses waveform generators which it comprises itself. This block will be described with reference to FIG. 14 (activation signals SC_SIN, SC_CAR, SC_TR, SC_RMP, and SC_RMN).
- the input block 73 makes it possible to implement an operating mode in which the SYNT unit uses its own noise generator. This block will be described at About Figure 15.
- the input block 74 makes it possible to implement an operating mode by which the SYNT unit uses previously generated and stored samples (signal SC_ECH) or samples used in real time which may come from outside the SYNT unit (signal SC_ETR). These two modes will be examined in reference to Figures 16 and 17.
- the samples generated respectively in blocks 72, 73 and 74 appear on a bus 75 depending on the operating mode selected, the signal transiting on this bus being called CCYC.
- This signal is applied to a filter block 76 whose structure appears in Figure 19.
- This block provides affected samples of predetermined filtering characteristics, its output signal being designated by CFLT.
- Each sample of this signal is applied to input A of an arithmetic unit of multiplication U12 in which its value is multiplied by the parameter value current amplitude AMP applied to input B of this arithmetic unit.
- the result of the multiplication is written in an accumulation memory M13, at 192 locations, at the address determined by the address value AACC_CEL provided by the selection logic 25b (figure 12), under the control of the active pulse of the subperiod P4.
- Memory M13 is write only, writing to a given address chasing the previous written value to the output.
- the corresponding signal is representative of successive first level samples and called ACC_CEL, as that out of the cells.
- the four intermediate weight bits of the values read from the M12 memory are intended to determine the method of calculation on the amplitude parameters, of frequency, phase and filtering, performed in the arithmetic unit U4, respectively of each of the circuits 20A to 20D of figure 6. Their binary value places this unit U4 arithmetic in addition or multiplication mode.
- the three most significant bits from memory M12 selectively determine the continuous, repeat and "round trip" operating modes of the generation of first level samples from cells. These bits are called MOD_CCY, MOD_DCY and MOD_ALT respectively. These signals will be described in reference to Figures 20 and 21.
- This input block includes four function generators 81 to 84 intended to produce samples of level zero and to which the time value POS_X is applied calculated in the calculation circuit 30 of FIG. 7. It therefore recalls here that according to a important characteristic of the invention, the value POS_X is in fact a value most of the time.
- the first function generator is a sine table 81 in which a predetermined number of sine values are stored, this number being equal to 2 A , A being equal to 10 in the example considered.
- the address value formed by the current POS_X value is applied to the table by line 85. Access to table 81 is validated by the signal SC_SIN coming from the selection logic 71 of FIG. 13.
- the designation value POS_X can comprise a number of bits much greater than the number A, 32 for example, the same set of addresses from table 81 can therefore be traversed successively a very large number of times during the incrementation of the POS_X value up to its maximum value during operation of the SYNT unit.
- the generator 82 is capable of generating a square waveform in determining the instants of change of polarity of the first level samples at beget.
- the generator 82 is activated on the signal SC_CAR coming from the logic of selection 71 of figure 13.
- the change is made according to the sign of the most bit significant of the A bits of the current value of POS_X which is applied by the driver 86. In this case, POS_X does not therefore constitute a memory address proper.
- the generator 83 makes it possible to generate functions of triangular shape. It is an arithmetic function calculating a triangular oscillation based on the address on A least significant bits of the POS_X signal as location addresses. These address values are applied to it by the driver 87. The addresses and the resulting functions are summarized inside the block representing the generator 83. The latter is activated under the command of the signal SC_TRI coming from logic 71 of Figure 13.
- the generator 84 is also an arithmetic function calculating a positive or negative ramp oscillation based on address on A least bits significant of the POS_X value.
- a series of values thus stored can be browsed positive or negative under the control of a pair of signals SC_RMP and SC_RMN respectively, coming from logic 71 and applied to an AND gate 88.
- the output of this door validates the activation of this generator 84, the signal level SC_RMP determining the direction of the sequence of calculated values.
- the generated function by the addresses is also indicated inside the block representing this generator 84.
- FIG 15 shows the detail of the input block 73 of Figure 13.
- This block serves to generate first level samples in the event that these must present random amplitude values.
- This input block 73 includes a generator random numbers 90 working continuously. At the appearance of an impulse sampling ACT, the number generated at the corresponding time has passed to a flip-flop 91 in which it is written at the appearance of the pulse P1 corresponding. If flip-flop 91 is simultaneously activated by the validation signal SC_BRT, the corresponding data will be output from flip-flop 91 and the value of the current sample will be based on this data.
- each input is connected upstream to a converter analog / digital in turn connected to an analog signal source (not shown).
- Signal sources can come from musical instruments equipped with transducers, musical instruments associated with a microphone, record player, microphones picking up the sound spectrum of an orchestra, player compact discs etc., a very large number of such sources can be imagined.
- the signals present on inputs 0 to e are called lN_0 to lN_e.
- the input block 100 includes a memory M14 to 192 slots in which the CPU can write input assignment values to addresses provided by the AC signal under the control of the W_ETR_N signal from the block 14 of interface I (FIG. 2). Reading takes place under signal control R_ETR_N also coming from this block 14.
- the data recorded in the M14 memory by the CPU represent an input allocation code which is applied to to the multiplexer 25-3 (FIG. 12) whose output is connected to a decoder 101 having e outputs that can activate buffers 102-0 to 102-e whose inputs receive respectively the input signals lN_0 to lN_e.
- an external input for a given cell is applied to a bus 103 common to all the buffers 102-0 to 102nd.
- the signal passing through this bus is called lN_CEL and therefore it forms so-called zero level samples.
- the signal lN_CEL can be used as selected parameter values as long as they are allowed to pass to the output of logic 25a of figure 12 under the control of the signal ADR_CTR.
- the value of lN_CEL is routed as a DATA_CTR signal to be able to be multiplicatively combined or additive with the current value of a parameter under the signal control MODE_FCT.
- FIG. 17 represents the diagram of a circuit for memorizing samples of level zero and selecting the time use of these samples for the development of first level samples in the cells of the SYNT unit.
- This circuit includes a large capacity sample memory M15 in which a large quantity of zero level samples can be stored.
- this memory can have 2 32 locations. Note however that the memory M15 can have a greater or lesser capacity depending on the length of a recording of successive samples that one wishes to make. It will also be noted that this memory is the only one of the device according to the invention having a large capacity.
- the addresses of this memory M15 come from a multiplexer 121, at 32 bits for example, having an input A to which the address signal ACPU is applied ( Figure 2) from interface I. These addresses are therefore determined by the CPU. Through elsewhere, the data input from memory M15 of zero level samples is connected to block 13 of interface I so that the CPU can write data to this memory to addresses that he himself will have fixed.
- This storage mode in the M15 memory allows to use as zero level samples for example signals graphically selected by a user on the CPU screen, the application program of this management unit being naturally designed especially for this task, as is well known in the art.
- the ACPU address is activated by the signals W_ECH_CYC and R_ECH_CYC which respectively control writing and reading by a CPU.
- the other input B of the multiplexer 121 is connected to the output of the calculation circuit 30 of FIG. 7 from which it thus receives the current value of POS_X used here also in as an address, but this time for memory M15 (current value of POS_X).
- This output B is selected when the signals W_ECH_CYC and R_ECH_CYC are active. Indeed, these signals from block 14 of interface I are both applied to an OR gate 122 whose output is connected to the activation input of the multiplexer 121. If either of these two signals is active, input A of the multiplexer 121 is activated.
- the read / write command in the sample memory M15 can selectively be carried out by these same signals R_ECH_CYC and W_ECH_CYC.
- the signal R_ECH_CYC is applied directly to the command input of reading from memory M15, while the signal W_ECH_CYC is applied to a door AND 123 whose output is connected to the write command input of this same memory.
- the other input of the AND gate 123 is connected to the output of an OR gate 124. This receives on its first input the signal corresponding to the active pulse of the period P1 and on its other input the signal SC_ETR which can be activated when the data in memory M12 (figure 13) designates the operating mode corresponding to the output of decoder 71.
- OR gate 124 is applied to the activation input of a buffer 125. This receives on its input the signal IN_CEL which constitutes the output of the circuit input allocation of Figure 16.
- the output of buffer 125 is connected to the input of M15 sample memory data.
- OR gate 124 is also connected to one of the inputs of the AND gate 123 to enable activation of the write input of memory M15.
- writing level zero samples can be performed at addresses which depend either on the CPU by the ACPU signal on activation by the W_ECH_CPU signal for writing a sample into memory M15, i.e. by incrementing 0001 by the current POS_X value.
- This selection is made according to the state of the selection SC_ETR allowing to place the multiplexer 32 in one or the other of its configurations.
- the address where the data is written to memory M15 depends on the address specified by the CPU or the incrementation by '1' of the value POS_X under the control of the signal SC_ETR. This last way of incrementing actually corresponding to a real-time reproduction of the level samples zero (hence the acronym ETR: Real Time Entries). It should be noted that when the memory M15 is in real-time operating mode, the entered data comes out memory simultaneously. In the other mode of operation, says data (ECH), data may remain in memory for a period of predetermined time, the memory then functioning in a way as a tape recorder.
- the memory M15 When the signal SC_ETR is active, the memory M15 is used alternately in writing (P1) and in reading to obtain the zero level sample.
- the signal SC_ECH (see figure 13) is active, memory M15 is only used for writing enter a new sample.
- the memory is normally used for reading, the sample being read in the same way as for the sine table of block 81 of the figure 14, except that in the case of memory M15 the sample can be modified in any point by point time and that the dimension of the sample table contained in the memory M15 can be predetermined or chosen at will when this is not the case case for the sine table of block 81.
- the signals leaving the M15 sample memory form the CCYC signal which are first level samples not yet submitted filtering in the filtering circuit 160.
- FIG. 18 represents a circuit for analyzing the input signals applied to the inputs lN_0 to lN_e of the SYNT synthesis unit.
- Parameter detection circuit 140 since it is intended to detect in the input signals properties of amplitude, frequency and amplitude distribution as a function of frequency (bands), these properties, being converted to digital signals, allowing adjustment of parameter values with which cells will work to form the first level samples in the synthesis unit.
- the inputs of the detection circuit 140 are connected in parallel to the inputs lN_0 to lN_e of the synthesis unit together forming the signal E of FIG. 1. By Consequently, the inputs of the allocation circuits of FIG. 16 and of detection of the Figure 18 are connected respectively in parallel.
- the detection circuit 140 comprises a first group of detectors 141_0 to 141_e for determining the absolute value of the amplitudes of the samples digital sound which are applied by analog / digital converters (not shown) on the respective inputs lN_0 to lN_e. They are also designed to establish the average value over a number of successive samples and to provide a numerical value corresponding to their output.
- the detection circuit 140 comprises a second group of detectors 142_0 to 142_m used to determine an average amplitude value in each of a plurality of p frequency bands of the sequences of samples applied respectively on the inputs lN_0 to lN_e. These mean amplitude values appear, in the form of a digital code and for each of the p bands, on a determined output 0 to p of each detector.
- the detection circuit 140 comprises a third group of detectors 143_0 to 143_e responsible for determining temporal properties of the sequences of input samples and in particular the instants of passage through zero, the average of their frequency and a count value. These data are presented in the form of digital codes on each of the detector outputs 143_0 to 143_e.
- All the numerical values coming from the detectors of circuit 140 can selectively be placed in an M16 accumulation memory at 192 locations under the control of the active pulse of the sub-period P4. Addresses these values are written in this memory are formed by the least significant bits of the ADR_CTR signal applied to block 25 shown in Figures 5 and 12. The weight bits strong of this signal respectively determine the position of several selectors to which the detector output values are applied. So the outputs of the detectors 141_0 to 141_e are applied to 'e' inputs of a selector 144 according to a series of amplitude bits of the ADR_CTR signal.
- this can contain for each of the cells of the SYNT unit a numerical value whose stored data represent the values of amplitude and frequency parameters of the applied digital samples of outside the SYNT unit.
- the parameter values thus noted on the input signal can be used to intervene in the calculation of the values of parameters (VAL value) provided that at the instant considered the signal ACC_DET is authorized to pass to the output of block 25a of figure 12 under the control of the signal ADR_CTR coming from the CPU as represented on figure 2.
- the DATA_CTR signal can be combined additively or multiplicatively with the value current of a parameter under the command of the MODE_FCT signal which is applied to the arithmetic unit U4 of FIG. 5, this signal MODE_FCT being itself selected via the content of the M12 memory (figure 13) loaded by the CPU.
- FIG. 19 represents the filtering circuit 160 making it possible to apply a filtering suitable for the CCYC signal as shown by block 76 in Figure 13.
- This circuit includes a sequencer 161 of the filtering functions which receives the CCAL signal from interface 1 (figure 2) to run a sequence counter and the signal FLT of the circuit of FIG. 5 as a parameter determining the filtering in ultimately selecting filter coefficients in an M18 memory.
- This signal actually determines an address of a table in which is contained a curve of predetermined filter coefficients.
- the sequencer thus determines a code filtering operation appearing on its output 161a.
- the sequencer is also capable of generating two types of address values appearing on its outputs 161c and 161b respectively
- the address value of output 161b is applied to a memory M17 of filtering calculations.
- This memory M17 has a predetermined number locations, for example 16384.
- Address output 161c is applied to input B of a multiplexer 162 whose input A can directly receive address values from the block 12 of interface I. These values are entered by the CPU to characterize these filters (coefficients) in an M18 memory. The filtering process allows you to read these data for calculation.
- the selection of the input B of the multiplexer 162 is carried out under the command of the output of an AND 163 door which opens on condition that one of three signals is present, namely the read signal R_FLT_COEF, the write signal W_FLT_COEF or a coefficient read command signal constituting an output 164a of a block 164 for determining the IIR filtering function.
- the output of the multiplexer 162 is applied to the memory M18 of coefficients of filtering.
- This memory receives its data directly from the CPU. These data are registered at the appropriate addresses under the control of a write signal from of an AND gate 165.
- a first input of this AND gate is connected to block 14 of interface I (read signal R_FLT_COEF), its other input being connected to the output 164a of block 164 for determining filtering functions.
- Data output from the filter coefficient memory M18 is applied to an input 164b of block 164.
- the input and output of data from memory M17 of filtering calculations are respectively connected to the output 164c and at input 164d of block 164.
- the latter receives the operation code of the block 161 on its 164th entry. Reading in memory M17 is controlled by a signal from the 164f output, while the write command comes from the 164g output of block 164.
- this block 164 has an input 164h to which the signal is applied CCYC selectively derived from blocks 72, 73 and 74 of Figure 13, while the Completed "filtered" samples appear at output 164i of block 164.
- the memory 17 makes it possible to temporarily store the intermediate data for calculating filtering, this data producing the filtered signal on output 164i, i.e. the CFLT signal which is the signal used in figure 13 to determine the level 1 sample.
- the code allows to control the transitions of the signals between the inputs and the outputs of block 164.
- FIGS. 20 and 21 describe the circuit 180 of determination of the time limits of certain production processes of samples. These production processes are the sample mode, when the unit SYNT works with samples from memory M15 in figure 17 and the real-time sample mode.
- the validation of the determination circuit 180 is therefore provided at the appropriate time by one or other of the signals SC_ECH or SC_ETR applied to an AND gate 181 shown at the top of figure 20.
- the determination circuit 180 comprises a memory M19 in which values of start times can be stored (i.e. values representing a predetermined instant on the time axis by accumulation of a number determined of values analogous to values POS_X) of a series of samples determined representing for example a note to play.
- This M19 memory contains 192 slots and can therefore be loaded with a start time value for each of the cells.
- the address value is formed by the AC signal and the data is written / read into the memory from the management unit CPU under the command of W_ECH_DEB / R_ECH_DEB signals.
- Another M20 memory also at 192 locations, allows you to store analogously the instants of the end of a series of samples.
- the data is written / read in this memory by the signals W_ECH_FIN / R_ECH_FIN.
- the circuit of determination also includes two memories M21 and M22, at 192 locations in which "loop" values can be stored, more precisely time values representing a loop start time and an end time loop, the term loop to be understood here as a cyclic repetition of the same series of samples by one or more cells.
- Memories M21 and M22 can be written and read under the respective signal control W_ECH_B1 / R_ECH_B1 and W_ECH_B2 / R_ECH_B2. The data comes each times of the CPU.
- Each memory M19 to M21 is associated with a comparator, respectively 182 to 185, each time input A is connected to the data output of the memory associated and whose entry B receives the current value of POS_X.
- Comparators 182 and 184 provide a validation signal when their input B is less than or equal to their input A and comparators 183 and 185 provide such a signal when input B is greater than or equal to entry A.
- comparators 182 to 185 are respectively connected to activation logic 186 to 190 each receiving several signals which are combined therein logically to ensure the activation of output buffers 192 to 195 if necessary whose outputs can selectively supply the value lNlT_X which is a value particular initialization from which POS_X is then incremented by the designation values calculated in the calculation circuit 30.
- the activation logic 186 to 191 also receive the mode signals MOD_CCY, MOD_DCY and MOD_ALT which are contained in the output data of the memory M12 of FIG. 13.
- Another output buffer 196 makes it possible to set the value lNlT_X to zero when to each other, the signals SC_ECH or SC_ETR are inactive, through an inverter 197.
- the terminal determination circuit 180 also includes a memory of sign M23 at 192 places in which the sign determining the direction of progression of the POS_X value.
- This memory M23 is addressed by the signal AC and receives the sign bit to memorize for the cells of a multiplexer 198.
- the latter receives as selection signal the signal C_lNlT from the comparator 50 of FIG. 8.
- This signal passes the appropriate sign to the output of the multiplexer when the signal C_lNlT is active. Otherwise the sign signal comes from a logic gate 199 which logically combines the output of memory M23 with the mode signal MOD_ALT. When the latter is active (0 '), the sign changes with each write to memory M23.
- Another multiplexer 200 is controlled by this same mode signal MOD_ALT to selectively establish the SGN signal used in block 34 of the calculation 30 of FIG. 7.
- the input A of this multiplexer receives a signal T_DIR and the input B the MOD_DCY mode signal.
- buffers 194 and 195 are made active by through respective AND gates 201 and 202 and that writing to memory M23 is controlled via logic 203.
- the value of T_DIR will be set to 0 by gate 203, when fixing terminal E_B1 to set the progression in decrement.
- the terminals are fixed by the lNlT_X signal sent to the multiplexer 35 of FIG. 7, which reinitializes the value POS_X by the command CD_lNlT from the door 208.
- the signal lNlT_X can also be produced selectively by the output of two buffers 204 and 205 which respectively receive the E_DEB and E_FIN signals from memories M19 and M20. These buffers are activated by the appropriate logical combination of C_lNlT signals (phasing), the mode signal MOD_DCY and the output signal from OR gate 181, this logical combination being provided by OR doors 206 and 207.
- the buffer 204 fixes the initial value (or position) of POS_X on the activation of C_lNlT and mode signals SC_ECH / SC_ETR.
- MOD_DCY 1 (increasing)
- the start point E_DEB constitutes the initialization value transmitted to lNlT_X
- MOD_DCY 0 (decreasing)
- the end point E_FIN constitutes the initial value transmitted to lNlT_X.
- This last signal is then selected on the multiplexer 35 of FIG. 7 for initialize the POS_X value.
- the value POS_X When a cell is phased, at the start of a new note to be played by example, the value POS_X must be set to its initial value via the multiplexer 35 of the calculation circuit 30 of FIG. 7.
- the initial value lNlT_X of POS_X is equal to zero. This value goes through buffer 196 which is activated in the absence of either of the signals SC_ECH or SC_ETR.
- the lNlT_X value is determined by a starting instant of a given cell on the axis of time.
- a series of first level samples can be delimited in time by time limits between which the value POS_X can evolve, either by incrementing, or by decreasing, or even by making a "loop", which means repeating the same series of samples a number of times.
- Such a loop repetition can also be done in several ways: “forward”, “in backward “or alternately” forward “and” backward “.
- the POS_X values thus delimited each time constitute a address for the memory M15 of FIG. 17 which stores sample values at reproduce either in real time (ETR mode) or from samples that have been there previously stored (ECH Mode).
- the memory M15 of samples is addressed with the value E_DEB. Then the address increases gradually with the increment of the value POS_X calculated in the circuit of calculation 30 as a function of the frequency values FRE and ENS_FRE which are imposed on this calculation circuit, and in a similar way to that already described with regard to waveform generators in Figure 14.
- Buffer 193 is activated by the state of logic block 187 and transmits E_END to the bus which transmits lNlT_X to the calculation circuit 30.
- CD_lNlT activates initialization by state of door 208, the output of which is at '0' via the output of logic block 187.
- the memory M15 is addressed by the value E_END.
- the memories M20 and M19 respectively contain the values E_END and E_DEB.
- Comparator 182 compares E_DEB with the current value of POS_X, the logic block 186 commands the initialization of POS_X and the buffer 192 transmits the value E_DEB to the bus transmitting lNlT_X to the calculation circuit 30.
- the memory M15 is addressed by the value of E_DEB which increments gradually as in case 1, but this time when the value POS_X reaches or exceeds the value E_B2 stored in the memory M22, it will be set at the value E_B1, the value POS_X increases again until the value E_B2, and so on.
- MOD_CCY 0 (Cyclic)
- MOD_DCY 1 (incrementation)
- MOD_ALT 1 (not alternative, the loop is traversed always in the Same direction).
- the memories M19 to M22 respectively contain the values E_DEB, E_END, E_B1 and E_B2.
- Comparator 185 compares the value E_B2 with the current value of POS_X.
- the logic block and the AND gate 201 control the initialization of POS_X and the buffer 194 transmits the value E_B1 on the bus which transmits INIT_X to the calculation 30.
- POS_X> E_B2
- POS_X will be set to the value E_B1 under the command INIT_X and CD_lNlT signals.
- Exit from gate 201 is at '0', if the outputs of block 188 or the output of block 191 are at '0'.
- the buffer 194 is then activated by the state of the AND gate 201 and transmits the value E_B1 on the bus on which lNlT_X passes.
- Initialization is activated by the door status 208 whose output will be at '0' by the state of gate 201.
- POS_X is again initialized to the value E_B1, which fulfills the condition POS_X ⁇ E_B2 and the cycle start again.
- E_END ends the memory M15 and this value gradually decreases as a function of frequency (signals FRE and ENS_FRE).
- the memories M19, M20, M21 and M22 respectively contain the values E_DEB, E_FIN, E_B1 and E_B2.
- Comparator 184 compares E_B1 with the current value of POS_X; the logic block 189, as well as the AND gate 202, command the initialization of POS_X and buffer 195 transmits the value E_B2 on the bus on which INIT_X passes to the calculation circuit 30.
- POS_X When POS_X> E_B1, POS_X decreases progressively as a function of the frequency and there is no control ensured by the signals INIT_X and CD_lNlT.
- the buffer 195 is then activated by the state of the AND gate 202 and the value E_B2 is transmitted to the calculation circuit 30 via the transfer bus of lNlT_X.
- CD_lNlT activates the AND gate 208 whose output will be at '0' by the output of AND gate 202.
- POS_X is initialized to E_B2 which restores the condition POS_X> E_Bi.
- the memories M19 to M22 respectively contain the values E_DEB, E_END, E_B1 and E_B2.
- Comparators 184 and 185 compare the values E_B1 and E_B2 with the current value of POS_X.
- Logic block 203 and multiplexer 198 control the direction increment / decrement via the T_DIR signal.
- the buffer 194 passes the value E_B1 on the transfer bus lNlT_X thanks to initialization command (end of increments) and buffer 195 transmits the value E_B2 on this same bus for the initialization of the end of decrementation.
- POS_X will be updated the value E_B2 by command of lNlT_X and CD_lNlT.
- the output of ET gate 202 is at '0', if the logic block 189 output or logic block 190 is at '0'.
- Buffer 195 is activated by the output at '0' of the AND gate 202 and thus transmits the value E_B2 on the transfer bus from lNlT_X to the calculation circuit 30.
- the signal C_lNlT will activate the initialization by the state of the AND gate 208.
- the output of this one (C_lNlT) is therefore at '0' by the output of the AND gate 202.
- the output of gate ET 201 is at '0', if the logic block 188 or logic block 191 output is '0'. Buffer 194 is activated by the output at '0' of the AND gate 201 and thus transmits the value E_B1 on the transfer bus from lNlT_X to the calculation circuit 30.
- the signal C_lNlT will activate the initialization by the state of the AND gate 208.
- the output of this one (CD_lNlT) is therefore at '0' by the output of the AND gate 201.
- the synthesis device must generate a sound of sinusoidal shape at a frequency of 440 Hz with an amplitude value that will be set arbitrarily at 100 (value giving after the output S a given sound volume).
- the sinusoidal curve in table 81 (figure 15) is defined with 1024 samples.
- the base clock 2 in Figure 2 is at 67.737 MHz and the sampling frequency is 44 100 Hz (ACT signal), i.e. 67 737/8 (counter 3 Figure 2) / 192.
- the SYNT unit is initialized by the CPU unit via the interface I. At this Indeed, the CPU writes in several memories data suitable for the example considered.
- the CPU will determine the parameters that will be in effect during the sound production as follows.
- the amplitude values are all set to zero.
- the value '0' is registered at addresses 0 to 191 of the memory M1 of circuit 20A (FIGS. 5 and 6) by the write signal W_AMP_BAS.
- the value 'maximum' is written in the M2 memory of this same circuit 20A by the write signal W_AMP_INC in order to suppress the interpolation on the amplitude values (modality chosen here by way of example).
- the value 'maximum' is written to memory M4 by the write signal W_AMP_CTR, because in the example no amplitude control from other sources is performed.
- 'Maximum' is the maximum possible value; on 16 bits for example, it is 65535 (or in hexadecimal ⁇ FFFF).
- the basic frequency value is arbitrarily set to '1000' (in integers base 10) for all cells; this value '1000' is therefore entered in every memory locations M1 of block 20B in Figure 6, using the write signal W_FRE_BAS.
- the 'maximum' value is written to all 192 locations in M2 memory of this block 20B to deactivate the interpolation, using the write signal W_INC_FRE.
- the value 'maximum' is written by the signal W_FRE_CTR in the memory M4 at all locations, no additional frequency control being provided in this example.
- the 'maximum' value here is the maximum possible value, on 24 bits for example, it is 16,777,215 (or in hexadecimal ⁇ FFFFFF)
- the basic value of the phase is fixed at '0'; '0' is therefore entered in all locations 0 to 191 of the memory M1 of block 20C of FIG. 6, using the signal W_PHA_BAS.
- the value 'maximum' is written to all the locations of the M2 memory of this same block 20C in order to deactivate the interpolation on the phase values, using the write signal W_PHA_INC.
- the value 'maximum' is written to all locations in the M4 memory of this same block 20C, using the write signal V_PHA_CTR to deactivate any additional command on the PHASE parameter.
- the 'maximum' value here is the maximum possible value, on 9 bits for example, it is 511 (or in hexadecimal 1FF).
- 'maximum' is also entered in all the locations of the memory M4 using the write signal W_FLT_CTR to deactivate any command additional on the FILTERING parameter.
- 'Maximum' here is the maximum value possible, on 8 bits for example, it is 255 (or in hexadecimal OFF).
- the SYNT unit To generate this sinusoidal sound, the SYNT unit must be programmed so that the sine table 81 of figure 14 is activated.
- this table contains 1024 zero level samples whose values of successive points reproduce together a sine waveform.
- This activation is programmed by the CPU unit which, as regards the cell '0', entered in location '0' of memory M12 (figure 13) and using the signal write W_MOD, a value whose three least significant bits have the value '000'. he as a result that the decoder 71 activates the signal SC_SIN which frees access to the table 81 of the circuit 72 first level sample generator of FIG. 14. Cell 0 is thus placed in the appropriate mode.
- Table 81 should be read at a rate that corresponds to 440 Hz sound at the output from SYNT unit. As already indicated above, under these conditions, it is advisable to use a multiplication factor of 10.21678 in the arithmetic unit U4 of the circuit computation 30 of FIG. 7. This value is entered at address '0' of the memory M10 of Figure 8 using the write signal W_ENS_FRE. Then, at address '0' from memory M1 of block 20B, the value '1' is entered as the basic relative value FRE of the frequency. The effective frequency will be calculated by the multiplying unit U4 in the figure 7.
- the cells of set 0 must be put in phase, which in the example described, is only necessary for cell '0'.
- the value '0' corresponding to the set 0 is entered in the rocker 44 of the first level allocation circuit 40 in FIG. 8 under the control of the signal W_DEC.
- the amplitude is fixed at the value '100'.
- the volume of set 0 which will include cell '0' presents the maximum value by writing "maximum" at address '0' of memory M8 under the command of the write signal W_ENS_AMP, for example the value 1023 on 10 bits.
- the value '100' is written in the memory M1 of block 20A at address '0' corresponding to cell '0' as the base value of the AMPLITUDE parameter, under the control of the write signal W_AMP_BAS.
- the SYNT unit is then initialized to produce the desired sound.
- the signals corresponding to the sub-periods P2_AMP, P2_FRE, P2_PHA and P2_FLT are not used, because no parameter modification is only provided in the example described.
- the synthesis device sound already carries out the first passages on the cells starting with the cell 0.
- a positive sign is assigned to the direction of the time axis; this means that the value of POS_X is increasing.
- the corresponding sign bit has been recorded beforehand in the memory M23, the MOD_DCY and MOD_ALT signals having been fixed at their suitable binary value by via the memory M12 in FIG. 13. The sign bit is applied to the circuit 34 of the calculation circuit 30.
- the parameters of the cell 0 are fixed at their previously stored value, the designation value POS_X is accumulated in accumulator memory M5 (unspecified value), the amplitude of cell 0 is calculated (zero value), cell '0' is assigned to set 0 with the zero amplitude value for this set as a second level value (memory M7 of figure 8) and the zero value is also placed in rocker 63-0 in Figure 11 as a third level value.
- the active pulse of the PCPU subperiod ends this period P1 for allow the CPU to enter other values in the SYNT unit if necessary.
- a first cycle P is then completed.
- the four parameter values of cell 0 are initialized in accordance with the data entered by the CPU.
- the value of the sample of first current level is added to that of the previous P1 period (it is always equal to zero).
- the four parameters of the cell 0 are conformed to their current value.
- the "cumulative" value (still zero) of POS_X is stored in memory M5.
- the cell amplitude value is established on the one hand by looking for the sine value at address 0 of table 81, this address being formed by the least significant bits of the POS_X signal, and on the other hand by multiplying this sine value by the amplitude value (100) previously entered in the arithmetic unit U12 of figure 13.
- the point value from table 81 was the CCYC signal and passed the filter circuit 160 of Figure 19 which is inactive in the example studied here.
- the signal ACC_CEL which is the first sample level thus formed for cell 0, is assigned to set 0 by storage in the first level allocation circuit memory M7 40. Since the value 100 was previously entered, the amplitude value of this first level sample will be therefore equal to 100 also.
- the arithmetic unit U10 (figure 8) adds the values of the cells of the same together and it is reset at the start of each pass (after processing for last cell of a given set). Since only one cell is used in example, the corresponding first level sample value is equal to the value second level sample (output from flip-flop 42 to unit U9), i.e. the amplitude of the set previously set to the maximum and calculated in this unit 9.
- the value of the set itself is made up (there is only one cell concerned), to form the second level sample which is then allocated in as a third level sample at the desired output ( Figure 11). Then the period P1 considered ends with data entry by the CPU during the pulse active of the PCPU subperiod.
- the sign of progression of the POS_X value is again set to positive via circuit 34 of the calculation circuit 30.
- the four parameters of cell 0 are kept at their value according to the data previously entered by the CPU.
- the calculation circuit 30 again recognizes the phase ordered during period P1, the value POS_X is set to zero in location '0' of memory M5.
- Cell 0 is assigned to set 0 as during the first pass and the sum of cell values for set 0 (cell 0 only) is calculated in the arithmetic unit U10 and placed in the scale 42.
- This multiplied value (signal ACC_CEL) is also stored at the location '0' of accumulation memory M7 as current value of the sample of second level after addition with the value B (zero in this case) in the unit U10 arithmetic.
- the amplitude value of the set 0 is then established in the unit arithmetic U9, by multiplying the fixed amplitude value stored in the memory M8, the multiplied value being loaded into the memory M6.
- the current P1 period ends again if necessary by registering data by the CPU during the active pulse of the PCPU subperiod.
- the value POS_X continues to increment by 10 or 11 for cell '0' and the other cells will remain inactive until the CPU has ordered an operation change of the SYNT unit.
- Level samples zero can then come from three different sources namely the generators of waveforms of Figure 14 or 15, the input circuits of Figure 16 and 18 by through M15 memory and the cells themselves using the samples from first level which are present in the accumulation memory M13.
- the CPU initializes the system.
- the data is stored in the memories corresponding.
- the value hex_200 maximum) is reserved to indicate that the command is inactive on the corresponding parameter of a cell.
- each sub-period P includes a sub-period PCPU at the end of the calculation relating to each cell. This will not be expressly recalled in what follows.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
La présente invention est relative à un système de synthèse sonore permettant d'obtenir en sortie une suite de signaux électriques qui après conversion numérique/analogique peut être appliquée à un ou plusieurs transducteurs pour donner lieu à la production d'un spectre audible.The present invention relates to a sound synthesis system allowing obtain a series of electrical signals as output, which after conversion digital / analog can be applied to one or more transducers to give result in the production of an audible spectrum.
Plus particulièrement, mais non exclusivement, l'invention conceme un système de synthèse sonore du type indiqué ci-dessus, qui puisse être mis en oeuvre à l'aide d'une carte enfichable afin de pouvoir être insérée dans un ordinateur personnel en lui conférant une capacité très étendue et variée de production sonore.More particularly, but not exclusively, the invention relates to a system sound synthesis of the type indicated above, which can be implemented using a plug-in card so that it can be inserted into a personal computer giving a very wide and varied capacity for sound production.
Les unités les plus répandues actuellement pour la synthèse sonore sont désignées par le vocable anglais de 'Wave Table" ou de "FM". L'unité 'Wave Table" désigne une unité dans laquelle la synthèse sonore est effectuée à l'aide de groupes d'échantillons sonores pré-enregistrés de façon rigide dans une mémoire pouvant se présenter sur tout support d'enregistrement connus, interne ou externe à l'appareil.The most common units currently used for sound synthesis are designated by the English word "Wave Table" or "FM". The unit "Wave Table" denotes a unit in which sound synthesis is carried out using groups sound samples rigidly pre-recorded in a memory which can be present on any known recording medium, internal or external to the device.
Sous sa forme la plus simple, une unité "FM" utilise deux oscillations dont l'une est une porteuse modulée en fréquence par l'autre oscillation. Ce principe permet d'engendrer des oscillations plus complexes à partir d'un nombre limité d'oscillations. Le signal obtenu dépend des rapports de fréquence et de l'amplitude des modulants. Les harmoniques sont les bandes latérales de la modulation en fréquence. Ce sont des produits ayant un rapport en fréquence équidistant et proportionnel au rapport entre la fréquence du modulant et celle de la porteuse. L'amplitude du modulant détermine le nombre de ces harmoniques. Les amplitudes des harmoniques produites ne peuvent être déterminées librement et elles suivent une figure s'apparentant à une courbe d'interférence.In its simplest form, an "FM" unit uses two oscillations, one of which is a carrier frequency modulated by the other oscillation. This principle allows to generate more complex oscillations from a limited number of oscillations. The signal obtained depends on the frequency ratios and the amplitude of the modulants. The harmonics are the side bands of frequency modulation. Those are products with an equidistant frequency ratio proportional to the ratio between the frequency of the modulant and that of the carrier. The amplitude of the modulant determines the many of these harmonics. The amplitudes of the harmonics produced cannot be freely determined and they follow a shape akin to a curve interference.
Cela signifie que de telles unités 'Wave Table" et "FM" présentent l'inconvénient d'offrir très peu de souplesse en ce qui conceme les modalités de composition du spectre sonore final, les paramètres caractérisant les échantillons successifs (amplitude, fréquence et phase, notamment) étant pour la plupart prédéfinis sans possibilité de modifications.This means that such Wave Table and FM units have the disadvantage offer very little flexibility as regards the composition of the final sound spectrum, the parameters characterizing the successive samples (amplitude, frequency and phase, in particular) being mostly predefined without the possibility of modifications.
En outre, ces unités de synthèse sonore actuelles travaillent avec un ordinateur, souvent un ordinateur personnel, dont les interventions doivent être fréquentes. Etant mobilisé pour cette tâche en permanence pendant la composition, le traitement et la restitution audio, l'ordinateur ne peut pas se consacrer à des tâches de gestion, par exemple au niveau de l'imagerie ou de l'acquisition de données autres que celles vouées au traitement des données.In addition, these current sound synthesis units work with a computer, often a personal computer, whose interventions must be frequent. Being permanently mobilized for this task during composition, processing and audio playback, the computer cannot be used for management tasks, for example example in terms of imagery or data acquisition other than those dedicated to data processing.
Enfin, ces unités connues sont peu conviviales et se prêtent donc mal à un usage dans les installations multimédia qui se répandent à grande échelle parmi le grand public.Finally, these known units are not very user-friendly and therefore do not lend themselves to use in multimedia installations which are widely spread among the great public.
L'invention a pour but de fournir un système de synthèse sonore dépourvu des inconvénients des unités antérieures brièvement décrites ci-dessus.The object of the invention is to provide a sound synthesis system devoid of disadvantages of the earlier units briefly described above.
L'invention a donc pour objet un système de synthèse d'une suite d'échantillons électroniques destinés à la production d'un spectre sonore apparaissant sur une sortie, caractérisé en ce qu'il comprend:
- des premiers moyens pour déterminer une succession de cycles de travail rythmés en fonction d'une fréquence d'échantillonnage;
- au moins une source d'échantillons dits de niveau zéro représentant au moins un signal sonore et apte à fournir au cours de chaque cycle de travail en cours x au moins un échantillon de niveau zéro,
- des seconds moyens pour déterminer, pour chacun desdits échantillons de niveau zéro à sélectionner au cours d'un cycle de travail suivant x+1, une première valeur propre à cet échantillon d'un paramètre de fréquence,
- des troisièmes moyens pour déterminer, pour chacun desdits échantillons de niveau zéro à traiter au cours d'un cycle de travail suivant x+1, au moins une seconde valeur, également propre à cet échantillon, d'au moins un autre paramètre,
- au moins deux mémoires de paramètres pour, au cours du cycle de travail x en cours, mémoriser respectivement lesdites première et seconde valeurs de paramètre, dans n emplacements de mémoire respectifs, afin de pouvoir utiliser ces valeurs au cours du cycle de travail suivant x+1,
- des quatrièmes moyens pour, pendant chaque cycle de travail en cours x déterminer, en fonction de chacune des n valeurs de paramètre de fréquence mémorisées pendant le cycle de travail précédent x-1, une valeur de désignation pour désigner parmi lesdits échantillons de niveau zéro, le ou les échantillons de niveau zéro qui, au cours du cycle de travail suivant x+1, vont contribuer à l'élaboration de n échantillons de premier niveau respectifs,
- une mémoire de valeurs de désignation pour mémoriser lesdits n valeurs de désignation déterminées pendant le cycle de travail en cours x, afin de pouvoir les utiliser pendant le cycle de travail suivant x+1,
- des cinquièmes moyens pour, pendant le cycle de travail x en cours, appliquer à chacun des échantillons de niveau zéro désignés pendant le cycle de travail précédent x-1, la valeur correspondante dudit autre paramètre mémorisée pendant le cycle de travail précédent, pour former n échantillons actuels de premier niveau et les mémoriser respectivement dans n emplacements d'une mémoire d'accumulation, et
- des sixièmes moyens pour au cours du cycle de travail en cours x, transférer vers ladite sortie les n échantillons de premier niveau mémorisés au cours du cycle de travail précédent x-1,
- first means for determining a succession of rhythmic work cycles as a function of a sampling frequency;
- at least one source of so-called zero level samples representing at least one audible signal and capable of providing during each work cycle in progress x at least one zero level sample,
- second means for determining, for each of said zero level samples to be selected during a work cycle following x + 1, a first value specific to this sample of a frequency parameter,
- third means for determining, for each of said zero level samples to be processed during a work cycle following x + 1, at least a second value, also specific to this sample, of at least one other parameter,
- at least two parameter memories for, during the current working cycle x, memorizing respectively said first and second parameter values, in n respective memory locations, in order to be able to use these values during the following working cycle x + 1,
- fourth means for, during each working cycle in progress x determining, as a function of each of the n frequency parameter values stored during the previous working cycle x-1, a designation value for designating from said zero level samples, the zero level sample (s) which, during the following work cycle x + 1, will contribute to the development of n respective first level samples,
- a memory of designation values for storing said n designation values determined during the current working cycle x, in order to be able to use them during the following working cycle x + 1,
- fifth means for, during the current working cycle x, applying to each of the zero level samples designated during the previous working cycle x-1, the corresponding value of said other parameter stored during the previous working cycle, to form n current first level samples and store them respectively in n locations of an accumulation memory, and
- sixth means for during the current working cycle x, transferring to said output the n first level samples stored during the previous working cycle x-1,
les n emplacements de mémoire desdites mémoires de paramètre, de ladite mémoire de valeurs de désignation et de ladite mémoire d'accumulation matérialisant respectivement n cellules dont le contenu peut se modifier d'un cycle de travail à l'autre.the n memory locations of said parameter memories, of said memory of designation values and of said accumulation memory materializing respectively n cells whose content can change from one work cycle to another.
II résulte de ces caractéristiques que chaque échantillon du spectre sonore produit peut être composé en temps réel avec une très grande variété de propriétés intrinsèques et ce sans nécessiter beaucoup d'espace mémoire ou de matériel.It follows from these characteristics that each sample of the sound spectrum product can be composed in real time with a very wide variety of properties intrinsic and without requiring a lot of memory or hardware space.
Selon une autre caractéristique essentielle de l'invention, lesdits premiers, seconds, troisièmes, quatrièmes, cinquièmes et sixièmes moyens sont utilisés en partage de temps au cours des cycles de travail successifs pour déterminer les valeurs relatives auxdites cellules dans lesdites mémoires de paramètre, de valeurs de désignation et d'accumulation.According to another essential characteristic of the invention, said first, second, third, fourth, fifth and sixth means are used in sharing of time in successive work cycles to determine relative values to said cells in said parameter, designation value and accumulation.
Ainsi, la plupart des circuits du système de synthèse peuvent être utilisés en temps partagé pour créer à sa sortie les différentes voies de production sonore. Il en résulte une grande simplicité de structure du système de synthèse.Thus, most of the circuits of the synthesis system can be used in timeshare to create the different sound production channels when it leaves. It results in a great simplicity of structure of the synthesis system.
Selon d'autres caractéristiques avantageuses de l'invention:
- le système comprend également une unité de gestion connectée auxdits seconds, troisième, quatrième, cinquièmes et sixièmes moyens, pour en gérer des valeurs de fonctionnement selon un logiciel exécuté par cette unité de gestion;
- lesdites valeurs de fonctionnement sont des valeurs initiales desdits paramètres et/ou des valeurs d'incrément de ces paramètres, lesdites valeurs initiales et d'incrément étant déterminées par ledit logiciel;
- lesdits premiers moyens sont agencés pour déterminer successivement, au cours de chacun desdits cycles, n sous-cycles de signaux de commande affectés respectivement auxdites n cellules, les signaux de commande de chacun de ces sous-cycles étant destinés, d'une part à activer, pendant le cycle de travail x en cours, des opérations de calcul pour la détermination desdites première et seconde valeurs de paramètre de la cellule correspondante et d'autre part, pour ce qui concerne chacune desdites mémoires, à permettre la lecture/écriture dans lesdits n emplacements de mémoire, de données résultant de la détermination de ces valeurs, ces données formant les contenus respectifs desdites n cellules utilisés pendant le cycle de travail suivant x+1;
- chacun desdites sous-cycles de signaux de commande comprend également un signal de commande pour autoriser ladite unité de gestion à communiquer avec lesdits premiers, seconds, troisièmes, quatrièmes, cinquièmes et sixièmes moyens;
- lesdits seconds moyens (20B, 25) exécutent une fonction de calcul de la
forme
dans laquelle PARP
n est la valeur de paramètre de fréquence courante de la cellule considérée pendant ledit sous-cycle en cours ou la valeur initiale de paramètre de fréquence, PARPn-1 est la valeur de paramètre de fréquence élaborée au cours du sous-cycle précédent pour cette cellule et INCPn est l'incrément apporté à la valeur courante de paramètre de fréquence vis-à-vis de la valeur précédente; - lesdits troisièmes moyens exécutent une fonction de calcul de la forme
dans laquelle PARP
n est la valeur courante de l'un desdits autres paramètres de la cellule considérée pendant ledit sous-cycle en cours ou la valeur initiale de cet autre paramètre, PARPn-1 est la valeur dudit autre paramètre élaborée au cours du sous-cycle précédent pour cette cellule et INCPn est l'incrément apporté à la valeur courante dudit autre paramètre vis-à-vis de la valeur précédente; - lesdits seconds et/ou troisièmes moyens comprennent une mémoire de valeur initiale destinée à contenir, pour chacune desdites cellules, ladite valeur initiale de paramètre et une mémoire d'incrément, destinée à contenir, pour chacune desdites cellules, ladite valeur d'incrément de paramètre;
- lesdits troisièmes moyens comprennent un circuit pour le calcul d'au moins l'un desdits autres paramètres, identique au circuit desdits seconds moyens pour le calcul dudit paramètre de fréquence;
- lesdits quatrièmes moyens comprennent une première unité de calcul pour combiner algébriquement ladite valeur de paramètre de fréquence du cycle de travail en cours avec une valeur représentant la fréquence fondamentale du son à synthétiser auquel contribue l'échantillon de premier niveau calculé pendant ce cycle en cours, une seconde unité de calcul pour combiner algébriquement le résultat fourni par ladite première unité de calcul avec le contenu actuel de l'emplacement de ladite mémoire de valeurs de désignation correspondant à la cellule traitée au cours du cycle de travail en cours et des septièmes moyens pour remplacer dans cet emplacement la valeur de désignation calculée au cours du cycle de travail précédent par le résultat du calcul effectué au cours d cycle de travail en cours par ladite seconde unité de calcul;
- lesdits quatrièmes moyens comprennent également un multiplexeur dont la sortie est connectée à ladite seconde unité, dont rune des entrées reçoit le résultat du calcul de ladite première unité de calcul, et dont l'autre entrée reçoit un signal de progression de valeur fixe, notamment '0001', de ladite valeur de désignation permettant, sous la commande d'un signal de mode, de faire progresser cette valeur de désignation de ladite valeur fixe d'un cycle de travail à l'autre;
- lesdits quatrièmes moyens comprennent également une troisième unité de calcul pour combiner algébriquement le résultat du calcul de ladite seconde unité de calcul avec la valeur en cours de l'un desdits autres paramètres représentant la phase à appliquer à l'échantillon de premier niveau engendré au cours du cycle de travail suivant x+1;
- lesdits quatrièmes moyens comprennent également des huitièmes moyens pour affecter le signe positif ou négatif au résultat du calcul obtenu dans ladite première unité de calcul;
- au moins certaines desdites sources comprennent une mémoire d'échantillons de niveau zéro et ladite valeur de désignation est utilisée comme adresse de ladite mémoire d'échantillons de niveau zéro;
- une première mémoire parmi lesdites mémoires d'échantillons de niveau zéro est une table de sinus;
- une seconde mémoire parmi lesdites mémoires d'échantillons de niveau zéro est agencée pour stocker au moins une séquence sonore échantillonnée dont les échantillons successifs constituent lesdits échantillons de niveau zéro;
- ladite seconde mémoire d'échantillons de niveau zéro est connectée pour être chargée par ladite unité de gestion, éventuellement par l'intermédiaire dudit logiciel;
- au moins certaines desdites sources comprennent un générateur de fonction et ladite valeur de désignation est utilisée comme valeur de désignation ou comme adresse pour identifier les équations de ladite fonction à utiliser;
- ledit générateur de fonction est choisi parmi le groupe comprenant un générateur de fonction carrée, un générateur de fonction triangulaire, et/ou un générateur de rampe positive et/ou négative;
- le système comprend en tant que source d'échantillons de niveau zéro un générateur de bruit aléatoire fournissant des échantillons au rythme de ladite fréquence d'échantillonnage;
- ladite seconde mémoire d'échantillons de niveau zéro est connectée pour stocker, en tant qu'échantillons de niveau zéro, des échantillons de premier niveau calculés et stockés dans au moins une cellule au cours d'au moins un cycle de travail antérieur;
- le système comprend également des neuvièmes moyens pour préparer des échantillons de niveau zéro à partir d'au moins une entrée du système de synthèse à laquelle est appliquée un spectre sonore provenant d'une source externe, et en ce que lesdits neuvièmes moyens sont connectés à ladite seconde mémoire d'échantillons pour permettre le stockage desdits échantillons de niveau zéro provenant desdites entrées;
- le système comprend également des dixièmes moyens connectés à ladite au moins une entrée pour analyser le spectre sonore de ladite source externe et en tirer des valeurs de paramètre pouvant être utilisées pour modifier le ou les paramètres déterminés par lesdits seconds et troisièmes moyens;
- le système comprend également des dixièmes moyens pour déterminer laquelle desdites sources d'échantillons de niveau zéro va servir pour générer, au cours de chacun desdits cycles de travail, l'échantillon de premier niveau de chacune desdites cellules;
- lesdits sixièmes moyens comprennent également des onzièmes moyens pour au cours d'un cycle de travail en cours répartir les échantillons de premier niveau desdites cellules engendrés au cours d'un cycle de travail précédent, sur m emplacements de mémoire d'une seconde mémoire d'accumulation, les emplacement de cette seconde mémoire d'accumulation matérialisent m ensembles dont le contenu peut varier d'un cycle de travail à l'autre, le contenu de chacun desdits m emplacements étant sélectivement transféré à ladite sortie en tant qu'échantillon dit de second niveau pendant le cycle de travail en cours;
- ladite sortie comprend une pluralité de sorties distinctes et il est prévu en outre des douzièmes moyens pour répartir sélectivement le contenu des emplacements de mémoire de ladite seconde mémoire d'accumulation sur lesdites sorties distinctes, en tant qu'échantillons dits de troisième niveau;
- le système comprend également des treizièmes moyens pour déterminer pour ladite valeur de désignation des bornes entre lesquelles cette valeur peut évoluer au cours d'une série déterminée de cycles de travail successifs;
- lesdits treizièmes moyens sont agencés pour faire évaluer ladite valeur de désignation cycliquement entre lesdites bornes, à savoir de la première borne à la seconde borne, cycliquement de la seconde borne à la première borne et/ou cycliquement en boucle de la première borne à la seconde borne et puis inversement de ladite seconde borne à ladite première borne;
- lesdites valeurs de fonctionnement sont stockées sélectivement dans une pluralité de mémoires comprenant n emplacements par ladite unité de gestion appartenant respectivement aux, seconds, troisièmes, quatrièmes, cinquièmes et sixièmes moyens, en fonction dudit logiciel;
- lesdits troisièmes moyens comportent des quatorzièmes moyens pour appliquer au cours d'au moins certains desdits cycles de travail, au moins une coefficient de filtrage à au moins certains des échantillons de premier niveau engendrés.
- the system also includes a management unit connected to said second, third, fourth, fifth and sixth means, for managing operating values according to software executed by this management unit;
- said operating values are initial values of said parameters and / or increment values of these parameters, said initial values and of increment being determined by said software;
- said first means are arranged to successively determine, during each of said cycles, n sub-cycles of control signals assigned respectively to said n cells, the control signals of each of these sub-cycles being intended, on the one hand to activate , during the current work cycle x, calculation operations for the determination of said first and second parameter values of the corresponding cell and on the other hand, as regards each of said memories, to allow reading / writing in said n memory locations, of data resulting from the determination of these values, this data forming the respective contents of said n cells used during the following work cycle x + 1;
- each of said control signal sub-cycles also includes a control signal for authorizing said management unit to communicate with said first, second, third, fourth, fifth and sixth means;
- said second means (20B, 25) execute a shape calculation function in which PAR P
not is the current frequency parameter value of the cell considered during said current sub-cycle or the initial frequency parameter value, PAR Pn-1 is the frequency parameter value developed during the previous sub-cycle for this cell and INC Pnot is the increment brought to the current value of frequency parameter compared to the preceding value; - said third means execute a shape calculation function in which PAR P
not is the current value of one of said other parameters of the cell considered during said current sub-cycle or the initial value of this other parameter, BY Pn-1 is the value of said other parameter developed during the previous sub-cycle for this cell and INC Pnot is the increment brought to the current value of said other parameter with respect to the previous value; - said second and / or third means comprise an initial value memory intended to contain, for each of said cells, said initial parameter value and an increment memory, intended to contain, for each of said cells, said parameter increment value ;
- said third means include a circuit for calculating at least one of said other parameters, identical to the circuit of said second means for calculating said frequency parameter;
- said fourth means comprise a first calculation unit for algebraically combining said frequency parameter value of the current work cycle with a value representing the fundamental frequency of the sound to be synthesized to which the first level sample calculated during this current cycle contributes, a second calculation unit for algebraically combining the result provided by said first calculation unit with the current content of the location of said memory of designation values corresponding to the cell processed during the current work cycle and seventh means for replace in this location the designation value calculated during the previous work cycle by the result of the calculation carried out during the current work cycle by said second calculation unit;
- said fourth means also comprise a multiplexer the output of which is connected to said second unit, one of the inputs of which receives the result of the calculation of said first calculation unit, and the other input of which receives a progress signal of fixed value, in particular ' 0001 ', of said designation value allowing, under the control of a mode signal, to advance this designation value of said fixed value from one work cycle to another;
- said fourth means also comprise a third calculation unit for algebraically combining the result of the calculation of said second calculation unit with the current value of one of said other parameters representing the phase to be applied to the first level sample generated during the following work cycle x + 1;
- said fourth means also include eighth means for assigning the positive or negative sign to the result of the calculation obtained in said first calculation unit;
- at least some of said sources include a zero level sample memory and said designation value is used as the address of said zero level sample memory;
- a first memory among said zero level sample memories is a sine table;
- a second memory among said zero level sample memories is arranged to store at least one sampled sound sequence, the successive samples of which constitute said zero level samples;
- said second zero level sample memory is connected to be loaded by said management unit, possibly via said software;
- at least some of said sources include a function generator and said designation value is used as a designation value or as an address to identify the equations of said function to be used;
- said function generator is chosen from the group comprising a square function generator, a triangular function generator, and / or a positive and / or negative ramp generator;
- the system comprises as source of zero level samples a random noise generator providing samples at the rate of said sampling frequency;
- said second zero level sample memory is connected to store, as zero level samples, first level samples calculated and stored in at least one cell during at least one previous work cycle;
- the system also comprises ninth means for preparing zero level samples from at least one input of the synthesis system to which a sound spectrum from an external source is applied, and in that said ninth means are connected to said second sample memory to allow storage of said zero level samples from said inputs;
- the system also comprises tenth means connected to said at least one input for analyzing the sound spectrum of said external source and deriving therefrom parameter values which can be used to modify the parameter or parameters determined by said second and third means;
- the system also includes tenth means for determining which of said zero level sample sources will be used to generate, during each of said work cycles, the first level sample of each of said cells;
- said sixth means also include eleventh means for, during a current work cycle, distributing the first level samples of said cells generated during a previous work cycle, over m memory locations of a second memory accumulation, the locations of this second accumulation memory materialize m assemblies the content of which can vary from one work cycle to another, the content of each of said m locations being selectively transferred to said output as a so-called sample of second level during the current work cycle;
- said output comprises a plurality of separate outputs and there is further provided twelfth means for selectively distributing the content of the memory locations of said second accumulation memory on said separate outputs, as so-called third level samples;
- the system also includes thirteenth means for determining, for said designation value, the limits between which this value can change during a determined series of successive work cycles;
- said thirteenth means are arranged to have said designation value evaluated cyclically between said terminals, namely from the first terminal to the second terminal, cyclically from the second terminal to the first terminal and / or cyclically looped from the first terminal to the second terminal and then vice versa from said second terminal to said first terminal;
- said operating values are selectively stored in a plurality of memories comprising n locations by said management unit belonging respectively to the second, third, fourth, fifth and sixth means, according to said software;
- said third means comprise fourteenth means for applying, during at least some of said working cycles, at least one filtering coefficient to at least some of the first level samples generated.
D'autres caractéristiques et avantages de l'invention apparaítront au cours de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés sur lesquels:
- la figure 1 est un schéma fonctionnel global du dispositif de synthèse sonore selon l'invention;
- la figure 2 est un schéma de l'interface destinée à l'échange de messages entre une unité de gestion et une unité de synthèse sonore et au cadencement des opérations effectuées dans cette unité de synthèse;
- les figures 3
et 4 représentent un diagramme temporel des signaux apparaissant dans l'interface de la figure 2, l'échelle des temps de la figure 3 étant plus petite que celle de la figure 4; - la figure 5 représente un schéma d'un circuit d'élaboration d'un paramètre déterminant l'une des propriété des échantillons sonores à engendrer et appartenant à l'unité de synthèse selon l'invention;
- la figure 6 est un schéma illustrant comment quatre circuits d'élaboration d'un paramètre selon la figure 5 peuvent être utilisés pour déterminer quatre paramètres fixant les propriétés des échantillons à engendrer;
- la figure 7 est un schéma d'un circuit générateur de valeurs temporelles permettant de désigner des échantillons dits de niveau zéro devant être utilisés pour préparer des échantillons dits de premier niveau;
- la figure 8 est un circuit assurant l'attribution d'échantillons sonores de premier niveau à des circuits de l'unité de synthèse situés en aval;
- les figures 9 et 10 illustrent par un diagramme temporel les signaux apparaissant dans le circuit d'attribution de la figure 8;
- la figure 11 est un schéma d'un circuit d'attribution d'échantillons dits de second niveau à un circuit qui est monté juste en amont de la sortie de l'unité de synthèse;
- la figure 12 illustre par un schéma simplifié comment les paramètres
élaborés dans les circuits des figures 5
et 6 peuvent être utilisés pour influencer la production des échantillons en fonction de plusieurs sources de signaux sonores, soit internes soit externes au dispositif suivant l'invention; - la figure 13 est un schéma d'un circuit de sélection de modes de fonctionnement du dispositif selon l'invention;
- la figure 14 est un schéma d'un circuit générateur d'échantillons de premier niveau à partir d'échantillons de niveau zéro présents à l'intérieur même de l'unité de synthèse et pouvant donner lieu à la formation de plusieurs formes d'onde de signaux sonores;
- la figure 15 est un schéma d'un autre circuit générateur d'échantillons de premier niveau à partir d'échantillons de niveau zéro également produits à l'intérieur même de l'unité de synthèse, mais pouvant dans ce cas donner lieu à la formation de bruit aléatoire;
- la figure 16 est un schéma d'un circuit destiné à attribuer sélectivement un groupe d'entrées externes au dispositif de synthèse sonore, afin d'utiliser ces entrées en tant que sources de formation d'échantillons de premier niveau;
- la figure 17 est un schéma d'un circuit pour permettre le stockage de certains échantillons de niveau zéro;
- la figure 18 représente un schéma d'un circuit d'analyse de signaux d'entrée afin de déterminer des paramètres caractérisant des échantillons de premier niveau élaborés à partir d'échantillons de niveau zéro ayant pour origine des signaux sonores venant de l'extérieur;
- la figure 19 est un schéma d'un circuit permettant en phase finale d'élaboration des échantillons de premier niveau de tenir compte de certains coefficients de filtrage;
- les figures 20 et 21 illustrent schématiquement un circuit de production de bornes temporelles utilisées au cours de l'élaboration des échantillons sonores des premier et second niveaux; et
- Figure 1 is an overall block diagram of the sound synthesis device according to the invention;
- FIG. 2 is a diagram of the interface intended for the exchange of messages between a management unit and a sound synthesis unit and for the timing of the operations carried out in this synthesis unit;
- Figures 3 and 4 show a time diagram of the signals appearing in the interface of Figure 2, the time scale of Figure 3 being smaller than that of Figure 4;
- FIG. 5 represents a diagram of a circuit for developing a parameter determining one of the properties of the sound samples to be generated and belonging to the synthesis unit according to the invention;
- FIG. 6 is a diagram illustrating how four circuits for developing a parameter according to FIG. 5 can be used to determine four parameters fixing the properties of the samples to be generated;
- FIG. 7 is a diagram of a circuit generating time values making it possible to designate so-called zero level samples to be used to prepare so-called first level samples;
- FIG. 8 is a circuit ensuring the allocation of first level sound samples to circuits of the synthesis unit located downstream;
- Figures 9 and 10 illustrate by a time diagram the signals appearing in the allocation circuit of Figure 8;
- FIG. 11 is a diagram of a circuit for allocating so-called second level samples to a circuit which is mounted just upstream of the output of the synthesis unit;
- FIG. 12 illustrates by a simplified diagram how the parameters developed in the circuits of FIGS. 5 and 6 can be used to influence the production of the samples as a function of several sources of sound signals, either internal or external to the device according to the invention;
- FIG. 13 is a diagram of a circuit for selecting the operating modes of the device according to the invention;
- FIG. 14 is a diagram of a circuit generating first level samples from zero level samples present inside the synthesis unit and which can give rise to the formation of several waveforms sound signals;
- FIG. 15 is a diagram of another circuit generating first-level samples from zero-level samples also produced inside the synthesis unit, but which can in this case give rise to training random noise;
- FIG. 16 is a diagram of a circuit intended to selectively assign a group of external inputs to the sound synthesis device, in order to use these inputs as sources for forming first level samples;
- FIG. 17 is a diagram of a circuit for allowing the storage of certain zero level samples;
- FIG. 18 represents a diagram of a circuit for analyzing input signals in order to determine parameters characterizing first level samples produced from zero level samples originating from external sound signals;
- FIG. 19 is a diagram of a circuit making it possible, in the final phase of developing the first level samples, to take account of certain filtering coefficients;
- FIGS. 20 and 21 schematically illustrate a circuit for producing time limits used during the preparation of the sound samples of the first and second levels; and
la figure 22 illustre un exemple de mise en oeuvre détaillé de l'unité de synthèse selon l'invention.FIG. 22 illustrates an example of detailed implementation of the synthesis unit according to the invention.
La figure 1 est un schéma symbolique illustrant, sous forme de blocs fonctionnels, les circuits principaux du dispositif de synthèse sonore selon l'invention. On voit que celui-ci comprend trois unités de base qui sont un ordinateur de gestion appelé ci-après CPU. Cette unité peut être un ordinateur personnel tournant sur un programme de gestion de synthèse sonore préalablement enregistré, sur une disquette par exemple, et fonctionnant avec tout type de programme d'exploration usuel comme 'Windows"™, par exemple. L'unité de gestion peut être formée par tout autre dispositif permettant d'exécuter un programme dédié à la gestion du dispositif suivant l'invention.Figure 1 is a symbolic diagram illustrating, in the form of blocks functional, the main circuits of the sound synthesis device according to the invention. We sees that this includes three basic units which are a management computer called below CPU. This unit can be a personal computer running on a program sound synthesis management previously recorded, on a floppy disk for example, and working with any type of usual exploration program like 'Windows' ™, for example. The management unit can be formed by any other device allowing to execute a program dedicated to the management of the device according to the invention.
Le CPU est connecté à une interface fonctionnelle I qui assure d'une part l'échange de messages entre le CPU et une unité de synthèse (appelée SYNT par la suite) et d'autre part le cadencement de toutes les opérations de synthèse sonore, destinées à être mises en oeuvre dans cette unité SYNT. Celle-ci délivre le signal sonore souhaité sur une sortie S.The CPU is connected to a functional interface I which on the one hand ensures the exchange of messages between the CPU and a synthesis unit (called SYNT by the continued) and secondly the timing of all sound synthesis operations, intended to be implemented in this SYNT unit. This delivers the sound signal desired on an output S.
Comme l'illustre en outre la figure 1, l'unité de synthèse SYNT comprend un certain nombre de blocs fonctionnels matériels qui vont être décrits par la suite en détail en référence aux figures, les figures concernée(s) par les blocs étant indiquée(s) dans chacun d'entre eux. On remarquera que, grosso modo, l'unité SYNT comprend deux ensembles fonctionnels principaux EF1 et EF2, entourés par des traits mixtes et chargés essentiellement d'établir des paramètres définissant les caractéristiques des échantillons sonores à produire, et l'autre de mettre en oeuvre ces paramètres en les appliquant à des échantillons dits de niveau zéro pour engendrer les échantillons de niveaux supérieurs.. En outre, pour faciliter la compréhension chaque bloc contient un mot ou expression clé destiné à en désigner la fonction globale. As further illustrated in FIG. 1, the SYNT synthesis unit comprises a number of hardware functional blocks which will be described later in detail with reference to the figures, the figures concerned by the blocks being indicated in each of them. It will be noted that, roughly speaking, the SYNT unit comprises two main functional units EF1 and EF2, surrounded by mixed and charged lines basically establish parameters defining the characteristics of the samples sound to produce, and the other to implement these parameters by applying them to so-called zero level samples to generate the level samples superiors .. In addition, to facilitate understanding each block contains a word or key expression intended to indicate its global function.
La figure 2 montre un schéma symbolique de l'interface I du dispositif de
synthèse sonore selon l'invention, le CPU étant ici symbolisé par le rectangle 1. Les
signaux engendrés dans cette interface I sont représentés sur les figures 3 et 4, l'échelle
de la figure 3 étant plus petite que celle de la figure 4.Figure 2 shows a symbolic diagram of the interface I of the
sound synthesis according to the invention, the CPU being here symbolized by the
L'interface I comprend un oscillateur à quartz 2 qui fournit un signal d'horloge de
base CLK (voir pour les formes des signaux et leurs relations temporelles les figures 3 et
4) à un compteur binaire 3 à trois bits. Les trois sorties Q0, Q1 et Q2 de ce compteur 3
constituent un signal CCAL décrit ultérieurement et elles sont également appliquées à un
décodeur binaire 4 décodant le signal à trois bits qui lui est appliqué sur huit sorties C0 à
C7. Les sorties C0 à C3 de ce décodeur 4 cadencent quatre sous-périodes P2_AMP,
P2_FRE, P2_PHA et P2-FLT d'une période P1 qui est cadencée par l'intermédiaire d'une
porte ET 5.Interface I includes a
Dans le présent mémoire, on appellera "séquence de calcul" PCAL, un cycle qui impliquera le signal P1 combiné aux signaux P3 et P4, à l'exclusion d'un signal PCPU qui détermine dans chaque période P1 le temps d'accès autorisé pour l'unité CPU. Le signal PCPU sera appellé "cycle d'accès".In this memo, we will call "calculation sequence" PCAL, a cycle which will involve the P1 signal combined with the P3 and P4 signals, excluding a PCPU signal which determines in each period P1 the access time authorized for the CPU unit. The signal PCPU will be called "access cycle".
Les sorties C4 et C5 du décodeur 4 cadencent respectivement les sous-périodes
P3 et P4, tandis que les sorties C6 et C7 sont appliquées à une porte ET 6 par
l'intermédiaire de laquelle est cadencée la sous-période PCPU. Il est à noter que la
période P1, et les sous-périodes P3, P4 et P2_AMP, P2_FRE, P2_PHA et P2-FLT ont
en fait toutes la même durée, mais que les intervalles de temps pendant lesquels elles
déterminent une activité dans l'unité SYNT, sont fixées par la durée de leur niveau bas
dans chaque période. On désignera donc ces durées de niveau bas par le terme
"impulsion active" dans ce qui va suivre, les impulsions actives étant déphasées les unes
par rapport aux autres dans les diverses sous-périodes.The outputs C4 and C5 of the
La sortie C0 du décodeur 4 est également appliquée à l'entrée RESET d'une
bascule S-R 7 à l'entrée SET de laquelle est appliqué un signal CS_CPU provenant du
CPU et représentant les demandes d'accès de ce dernier. Cette bascule fournit
périodiquement un signal ATTENTE_CPU sur une borne 8 pour mettre le CPU en
attente lors d'une requête exprimée par un signal CS_CPU, pendant la durée cumulée
des impulsions actives des sous-périodes P2_AMP, P2_FRE, P2_PHA, P2_FLT, P3 et
P4. Durant les impulsions actives du signal PCPU, le CPU est autorisé à transmettre des
adresses, des données et des commandes de lecture/écriture à l'unité de synthèse
SYNT. Il peut également recevoir des données pendant les impulsions actives des sous-périodes
PCPU.The output C0 of the
L'oscillateur 2 est également relié à un compteur binaire 9 à n bits, 2n = N étant le
nombre de cellules que comporte l'unité de synthèse SYNT, la signification du terme
"cellule" étant explicitée par la suite.The
Dans l'exemple décrit, on a choisi N=192, un autre nombre de cellules étant
possible. Le compteur 9 est commandé par le signal C7 du décodeur 4 qui le fait
progresser d'une unité à l'achèvement de chaque période P1 et il est synchronisé sur le
signal CLK de l'horloge de base 2. Sa sortie Qn délivre une adresse de base de cellule
ADR_BASE à un bloc 10 de sélection d'adresse de cellule pour déterminer la succession
d'adresses de base des cellules (0 à 191 dans l'exemple).In the example described, N = 192 has been chosen, another number of cells being possible. The
Pendant la sous-période PCPU (figure 3), le CPU peut communiquer via
l'interface avec l'unité SYNT. A cet effet, la sortie PCPU de la porte ET 6 et le signal de
requête d'accès CS_CPU sont appliqués à une porte OU 11 dont la sortie peut activer un
signal de sélection SEL du bloc 10. L'état logique de ce signal détermine sélectivement si
c'est la sortie du compteur 9 qui constitue l'adresse de la cellule active à un instant
considéré, ou si c'est le programme de gestion tournant dans le CPU qui fournit cette
adresse. Dans le premier cas, la sortie du compteur 9 est passée de l'entrée ADR_BASE
du bloc 10 vers la sortie partagée AC (adresse instantanée de cellule) de ce bloc. Dans
le second cas, le signal SEL active deux blocs d'interface 13 et 14.During the PCPU subperiod (Figure 3), the CPU can communicate via
the interface with the SYNT unit. For this purpose, the PCPU output of AND
Il convient de noter que les cellules de l'unité SYNT, sont en fait matérialisées fugitivement au cours des séquences successives PCAL (composées des signaux P1, P3 et P4; figure 4) de préparation d'échantillons dit "de premier niveau". Ces séquences PCAL composent ensemble un cycle P durant lequel sont successivement effectués les calculs des échantillons de premier niveau pour toutes les cellules. Dans l'exemple, un tel cycle P présente donc 192 séquences PCAL. successives, le cycle P étant exécuté à la fréquence d'échantillonnage de la synthèse sonore qui est égale par exemple à 44.100 Hz. C'est la fréquence du signal ACT représenté également sur la figure 4.It should be noted that the cells of the SYNT unit are in fact materialized fleetingly during successive PCAL sequences (composed of signals P1, P3 and P4; Figure 4) preparation of so-called "first level" samples. These sequences PCAL together make up a P cycle during which the successive first level sample calculations for all cells. In the example, such cycle P therefore presents 192 PCAL sequences. successive, cycle P being executed at the sound synthesis sampling frequency which is for example 44,100 Hz. This is the frequency of the ACT signal also shown in Figure 4.
On verra par la suite que, selon une caractéristique essentielle de l'invention, la matérialisation des cellules est réalisée en stockant fugitivement et cycliquement des données calculées de cellule, à des emplacements de mémoire d'une pluralité de mémoires affectées à des fonctions de calcul et/ou de commande et prévues matériellement dans l'unité SYNT. Chacune de ces mémoires comporte autant d'emplacements qu'il y a de cellules dans l'unité SYNT. Pour autant que cela soit nécessaire, de l'information sous forme d'adresses ou de données peut aussi sélectivement être écrite aux emplacements de mémoire concernant les cellules respectives à partir du CPU pendant la sous-période PCPU suivant chaque séquence PCAL.We will see later that, according to an essential characteristic of the invention, the materialization of cells is carried out by fleetingly and cyclically storing calculated cell data, at memory locations of a plurality of memories assigned to calculation and / or control functions and provided materially in the SYNT unit. Each of these memories contains as many of locations there are cells in the SYNT unit. As far as it is necessary, information in the form of addresses or data can also selectively be written to memory locations regarding cells respective from the CPU during the PCPU subperiod following each sequence PCAL.
Ainsi, pour ce qui concerne la cellule n°0 par exemple, pendant les séquences
PCAL où elle est activée, les mémoires en question peuvent recevoir de l'information la
concernant pour stocker cette information à leur emplacement de stockage ayant
l'adresse 0, ou délivrer ces données à leur sortie pour que ces données puissent être
traitées ultérieurement. Puis, au cours de la séquence PCAL suivante les mêmes
opérations ou d'autres opérations analogues peuvent être réalisées pour ce qui concerne
la cellule 1 aux emplacements ayant l'adresse 1 dans les mémoires, et ainsi de suite
jusqu'à ce que la cellule n° 191 ait été traitée, après quoi, le processus recommence
avec la cellule n° 0.So, for
Les mémoires peuvent être chargées (écriture), lues et déchargées de
différentes façons et notamment par le CPU 1. En d'autres termes, à la fin de chaque
séquence PCAL représentée sur la figure 4 et délimité dans le temps entre deux
impulsions du signal ACT, l'unité SYNT matérialise les 192 cellules par les contenus des
192 emplacements des mémoires dédiées à cette tâche, chaque cellule étant
"composée" des emplacements de même adresse de ces mémoires. Le contenu de
chaque cellule peut ou non varier d'un cycle à l'autre, en fonction des caractéristiques
des échantillons de premier niveau à produire.Memories can be loaded (write), read and unloaded from
different ways including the
A ce stade, on peut souligner que grâce à cette façon de procéder, une grande partie du circuit SYNT peut être utilisée en partage de temps ce qui économise une grande quantité de matériel. En outre, les échantillons sonores à élaborer peuvent être composés à partir de plusieurs sources qui peuvent notamment être mélangées avec une grande souplesse.At this point, we can emphasize that thanks to this way of proceeding, a large part of the SYNT circuit can be used in time sharing which saves large amount of material. In addition, the audio samples to be produced can be compounds from several sources which can in particular be mixed with great flexibility.
Les blocs 13 et 14 permettent de transférer à l'unité SYNT respectivement des
adresses, des données et des commandes de lecture/écriture, à condition que ces blocs
soient activés par le signal de sélection SEL issu de la porte 11 et que le signal de sortie
ATTENTE_CPU de la bascule 7 soit désactivé. Ce signal étant actif pendant l'impulsion
active de la sous-période PCPU, le programme de gestion exécuté dans le CPU peut
agir sur l'unité SYNT pour autant naturellement que ce programme prescrit une telle
action pendant la séquence PCAL considérée.
Le bloc 12 peut recevoir du CPU sur une entrée 12a des adresses ADR_CPU,
sur une entrée 12b un signal de commande de lecture RD_CPU, sur une entrée 12c un
signal de commande d'écriture WR_CPU et sur une entrée 12d le signal de sélection
CS_CPU. La sortie 12e du bloc 12 permet de transférer des valeurs d'adresse vers
plusieurs destinations, à savoir le bloc 10, le bloc 14 de sélection de lecture/écriture de
mémoires et d'autres éléments de l'unité SYNT, ce qui sera décrit par la suite.
Le bloc 13 comporte une entrée 13a de réception de données en provenance du
CPU, une entrée 13b de commande de lecture, une entrée 13c de commande d'écriture
et une sortie 13e de transfert de données vers divers éléments de l'unité SYNT comme
décrit ci-après. Le transfert des données peut être bidirectionnel.
Le bloc 14 comprend une entrée 14a de réception d'adresses de lecture/écriture
en provenance du bloc 12, une entrée 14b de commande de lecture recevant le signal
RD_CPU, une entrée 14c de commande d'écriture recevant le signal WR_CPU et une
entrée 14d de sélection raccordée à la sortie de la porte 11. Ce bloc comprend
également des sorties 14e et 14f connectées respectivement à un bus de commande de
lecture 15a et à un bus de commande d'écriture 15b, ces deux bus véhiculant
sélectivement des signaux respectifs de commande de lecture/écriture vers toutes les
mémoires de l'unité SYNT. Les identifications de ces signaux sont indiqués in extenso
sur la figure 2 et se retrouvent aux endroits correspondants des autres figures encore à
décrire.
La sortie de la porte 5 est combinée logiquement avec la sortie du bloc de
sélection d'adresse 10 dans une porte NON-ET 16 fournissant le signal de sortie ACT qui
est la fréquence d'échantillonage de l'unité SYNT.The output of
La figure 5 représente un circuit d'élaboration de valeurs de paramètres désigné
globalement par la référence 20. Ce circuit fait partie de l'unité SYNT. Avant de le décrire,
on précisera tout d'abord que, comme déjà évoqué ci-dessus, l'unité SYNT comprend
une pluralité de mémoires dont certaines apparaissent sur la figure 5. Dans l'ensemble
des schémas de l'unité SYNT dont la description va suivre, chaque mémoire est
symbolisée par un carré auquel sont associées des entrées et/ou des sorties de données
et un rectangle plus petit auquel sont associées une entrée d'adresse, une entrée de
commande d'écriture et/ou une entrée de commande de lecture. En outre, dans chaque
carré, on a indiqué le nombre d'emplacements que présente la mémoire en question
dans l'exemple considéré. FIG. 5 represents a circuit for developing parameter values designated
globally by
On notera également que la figure 5 représente le matériel d'un circuit 20
d'élaboration d'un paramètre qui se répète quatre fois dans l'unité SYNT (figure 6).
Autrement dit, au cours de chaque séquence PCAL, plus précisément durant les quatre
impulsions actives des sous-périodes P2_AMP, P2_FRE, P2_PHA, P2-FLT, chaque
circuit 20 (incorporé respectivement dans les blocs 20A à 20D) forme l'un parmi quatre
paramètres AMPLITUDE, FREQUENCE, PHASE ou FILTRE pouvant être affectés au
calcul des échantillons de premier niveau. La valeur de paramètre correspondant VAL
(que l'on désigne respectivement par AMP, FRE, PHA et FLT) obtenue après l'impulsion
active des sous-périodes P2_AMP, P2_FRE, P2_PHA, P2-FLT respectives apparaít sur
une borne de sortie 21 des circuits 20A à 20D. On détermine ainsi les caractéristiques
correspondantes d'amplitude, de fréquence, de phase et de filtrage des échantillons
successifs de premier niveau calculées pour chaque cellule.It will also be noted that FIG. 5 represents the hardware of a
Ceci étant, chaque circuit 20A à 20D d'élaboration de paramètre comprend une
mémoire M1 dans laquelle peut être stockée, selon le cas, la valeur de base du
paramètre AMPLITUDE, FREQUENCE, PHASE ou FILTRE des cellules. Ces valeurs
sont reçues du CPU par l'intermédiaire de la sortie 13e (figure 2) pendant les impulsions
actives de la sous-période PCPU durant lesquelles le CPU est autorisé à accéder à
l'unité SYNT.That said, each
Une mémoire M2 est destinée à mémoriser des valeurs d'incrément du
paramètre au cas où celui-ci doit subir un changement pour l'élaboration d'un échantillon
donné par rapport à un même paramètre d'un échantillon élaboré précédemment. La
valeur d'incrément est également fournie par le CPU via la sortie 13e du bloc d'interface
13.A memory M2 is intended to store increment values of the
parameter in case it has to undergo a change for the elaboration of a sample
given with respect to the same parameter of a previously developed sample. The
increment value is also supplied by the CPU via
Les sorties des mémoires M1 et M2 sont appliquées à un ensemble de calcul 22
destiné à mettre en oeuvre la fonction de calcul suivante:
dans laquelle PARP
Ainsi, la sortie de la mémoire M2 est appliquée à une première unité arithmétique U1 chargée d'effectuer sur les variables A et B qui lui sont appliquées l'opération B÷A, la variable B étant fournie par une unité arithmétique U2 qui effectue sur ses variables d'entrée A et B l'opération A-B. La variable A de cette unité arithmétique U2 est chaque fois la sortie de la différence entre la nouvelle valeur stockée dans la mémoire M1 du paramètre et sa valeur courante stockée dans une mémoire ou accumulateur M3.Thus, the output of memory M2 is applied to a first arithmetic unit U1 responsible for performing on variables A and B which are applied to it the operation B ÷ A, the variable B being supplied by an arithmetic unit U2 which performs on its variables input A and B operation A-B. The variable A of this arithmetic unit U2 is each times the output of the difference between the new value stored in the memory M1 of the parameter and its current value stored in a memory or accumulator M3.
Le résultat du calcul effectué dans l'unité arithmétique U1 est appliqué, en tant
que variable A, à une autre unité arithmétique U3 qui effectue sur ses variables d'entrée
l'opération A+B. La variable d'entrée B de cette unité arithmétique U3 provient de la
mémoire M3 qui est destinée à mémoriser temporairement et pour chaque cellule la
valeur de paramètre PARP
D'autres modifications peuvent être apportées à un paramètre au cours de son
processus d'élaboration dans le circuit respectif 20A à 20D, à savoir par la partie du
circuit qui est représentée dans la moitié inférieure de la figure 5.Other modifications can be made to a parameter during its
development process in the
Cette partie comprend une mémoire M4 commandée en lecture/écriture par les
signaux R3 et W3 en ce qui concerne l'amplitude, la fréquence, la phase ou le filtrage.
Cette mémoire mémorise, le cas échéant, une modification de valeur de paramètre pour
l'une ou plusieurs des 192 cellules en fonction du signal d'adresse AC. Sa sortie est
connectée à un tampon d'adresse 23 dont les valeurs d'entrée peuvent passer à la sortie
sous la commande de l'impulsion active respective des sous-périodes P2_AMP,
P2_FRE, P2_PHA ou P2_FLT.This part includes a memory M4 controlled in read / write by the
R3 and W3 signals with regard to amplitude, frequency, phase or filtering.
This memory stores, if necessary, a modification of the parameter value for
one or more of the 192 cells depending on the AC address signal. Its output is
connected to an
Les valeurs ainsi transmises à travers le tampon 23 sont appliquées à un
répartiteur 25 chargé de sélectionner, l'une parmi une pluralité de sources de valeurs de
paramètre destinées à l'élaboration des échantillons de premier niveau par les cellules.
Ce répartiteur 25 sera décrit plus loin en référence à la figure 12. Les signaux
correspondant à ces valeurs de paramètre sont envoyés dans une bascule bistable 24
activée en écriture sur l'impulsion active de la sous-période P2 concernée, en fonction de
la nature du paramètre à modifier. La sortie de la bascule 24 est connectée à l'entrée A
d'une unité arithmétique U4 qui permet d'effectuer sélectivement un calcul combinatoire
tel qu'un calcul de somme ou un calcul de produit sur les valeurs appliquées à ses
entrées. L'entrée B de cette unité arithmétique U4 est raccordée à une bascule bistable
26 dont l'entrée est raccordée à la sortie de l'unité arithmétique U3 et qui est activée au
cours de l'impulsion active de la sous-période P3. On verra par la suite que la sélection
de l'opération arithmétique effectuée dans l'unité U4 est commandée par l'état binaire
d'un signal de commande de mode MODE_FCT.The values thus transmitted through
La partie du circuit de la figure 5 que l'on vient de décrire permet par exemple d'appliquer sur un son synthétisé un vibrato en faisant varier cycliquement la valeur de fréquence des échantillons dont ce son est formé.The part of the circuit of FIG. 5 which has just been described allows for example to apply a vibrato to a synthesized sound by varying the value of frequency of the samples from which this sound is formed.
On a représenté sur la figure 6 un schéma illustrant les jeux de signaux d'entrée
et de sortie qui sont appliqués, respectivement produits, par les quatre circuits 20A à 20D
dont chacun est identique au circuit 20 d'élaboration d'un paramètre de la figure 5.There is shown in Figure 6 a diagram illustrating the sets of input signals
and output which are applied, respectively produced, by the four
Ainsi, le bloc 20A est affecté au paramètre AMPLITUDE, les blocs 20B, 20C et
20D étant respectivement affectés aux paramètres FREQUENCE, PHASE et FILTRE.
Les signaux d'écriture et de lecture R1/W1, R2/W2 et R3/W3 sont appliqués aux
mémoires M1, M2 et M4 de la figure 5; ils proviennent respectivement des bus de
commande 15a et 15b de la figure 2. Chaque bloc est cadencé sélectivement pendant
chaque séquence PCAL au moment où l'impulsion active de la sous-période
correspondante est produite. Chaque bloc reçoit également des données d'entrée sur le
bus DCPU et le signal AC de numéro ou d'adresse de cellule (voir figure 2). Les sorties
AMP, FRE, PHA et FLT de chaque bloc sont traitées dans d'autres parties de l'unité
SYNT comme décrit ci-après; il en est de même des signaux transitant sur les bornes
restantes des blocs 20A à 20D.Thus, block 20A is assigned to the AMPLITUDE parameter, blocks 20B, 20C and
20D being respectively assigned to the FREQUENCY, PHASE and FILTER parameters.
The write and read signals R1 / W1, R2 / W2 and R3 / W3 are applied to
memories M1, M2 and M4 of FIG. 5; they come respectively from the buses of
Chaque échantillon de premier niveau correspondant, pendant une séquence PCAL à l'une des cellules,doit être formé à partir d'un échantillon de niveau zéro qui doit être désigné spécifiquement et extrait de l'une des sources d'échantillons de niveau zéro. Mais, cet échantillon de niveau zéro doit également être affecté d'une valeur temporelle pour qu'il puisse contribuer à l'élaboration de l'échantillon de premier niveau auquel il va appartenir.Each corresponding first level sample, during a sequence PCAL to one of the cells, must be formed from a zero level sample which must be specifically identified and taken from one of the zero level sample sources. But, this zero level sample must also be assigned a time value so that he can contribute to the elaboration of the first level sample to which he goes to belong.
Selon une caractéristique essentielle de l'invention, le système comporte ainsi
des moyens, représentés à la figure 7, qui est destiné à engendrer une valeur binaire,
appelée "valeur de désignation d'échantillon de niveau zéro" ou plus brièvement "valeur
de désignation". Cette valeur de désignation (symbole POS-X) est essentiellement
fonction de deux autres valeurs binaires dont la première est la valeur FRE élaborée par
le bloc 20B (figure 6). Cette première valeur binaire représente un intervalle de temps
exprimant le rapport entre la fréquence d'une cellule quelconque par rapport à une
fréquence de base dont il est un facteur multiplicatif.According to an essential characteristic of the invention, the system thus comprises
means, represented in FIG. 7, which is intended to generate a binary value,
called "zero level sample designation value" or more briefly "value
This designation value (symbol POS-X) is essentially
function of two other binary values, the first of which is the FRE value developed by
Un exemple permet d'illustrer ce concept. Si on souhaite synthétiser un son
sinusoïdal ayant une fréquence fondamentale de 440Hz et nécessitant la production
d'une harmonique supérieure, la seconde à 880Hz par exemple, on affectera une
première cellule à l'élaboration d'échantillons avec un facteur de valeur temporelle
relative 1 (signal FRE), tandis que qu'une autre cellule sera affectée à l'élaboration
d'échantillons pour l'harmonique avec une valeur relative 2. Le rapport peut également
être inférieur à 1.An example illustrates this concept. If you want to synthesize a sound
sinusoidal having a fundamental frequency of 440Hz and requiring production
of a higher harmonic, the second at 880Hz for example, we will affect a
first cell to develop samples with a time value factor
relative 1 (signal FRE), while another cell will be assigned to the development
samples for the harmonic with a
Pour calculer les valeurs de désignation POS_X, on aura besoin également d'une autre valeur d'intervalle temporel ou intervalle de base (signal ENS_FRE) représentant la fréquence fondamentale du son à synthétiser, cet intervalle dépendant de la valeur de cette fréquence d'une part et du nombre de points d'échantillonnage avec lequel on souhaite synthétiser le son.To calculate the designation values POS_X, we will also need another time interval value or base interval (signal ENS_FRE) representing the fundamental frequency of the sound to be synthesized, this dependent interval the value of this frequency on the one hand and the number of sampling points with which we want to synthesize the sound.
Pour revenir à l'exemple ci-dessus, si le son sinusoïdal doit présenter une fréquence de 440 Hz et si on veut le synthétiser à une fréquence d'échantillonage de 44 100 Hz, une telle oscillation nécessitera 100,227 points par cycle. Si l'oscillation est définie sur 1024 points, par exemple (pour un cycle complet, la fréquence maximale que l'on peut obtenir avec 1024 points est de 43,0664 Hz), pour obtenir l'oscillation à la fréquence voulue de 440 Hz, il faut un incrément de 10,21678 entre deux valeurs d'adresse successives de la table d'oscillation de 1024 points. Ceci revient à un incrément entre deux valeurs de désignation successives POS_X, égal à 10,2178 (ou 10,21678 fois la fréquence d'échantillonnage de 44 100 Hz) pour reproduire un échantillon défini sur une base de 1024 points par cycle. Pour l'harmonique à 880 Hz, l'incrément devra être le double pour adresser la même table de 1024 points par cycle soit 20,43345. On rappelle que le signal ACT correspond au taux d'échantillonange, en l'occurence d'une fréquence de 44 100 Hz. On notera donc que la valeur POS_X représente de façon inhérente une valeur temporelle de positionnement des échantillons sur l'axe des temps, tandis qu'en même temps elle désigne ces échantillons en évoluant constamment étant donné qu'elle constitue en même temps une adresse de mémoire contenant les échantillons de niveau zéro. To return to the example above, if the sinusoidal sound is to present a frequency of 440 Hz and if we want to synthesize it at a sampling frequency of 44 100 Hz, such an oscillation will require 100,227 points per cycle. If the oscillation is defined on 1024 points, for example (for a complete cycle, the maximum frequency that can be obtained with 1024 points is 43.0664 Hz), to obtain the oscillation at the desired frequency of 440 Hz, an increment of 10.21678 is required between two values successive address of the 1024 point oscillation table. This amounts to a increment between two successive designation values POS_X, equal to 10.2178 (or 10.21678 times the sampling frequency of 44 100 Hz) to reproduce a sample defined on a basis of 1024 points per cycle. For the 880 Hz harmonic, the increment must be double to address the same table of 1024 points per cycle or 20.43345. Remember that the ACT signal corresponds to the sampling rate, in the occurrence of a frequency of 44 100 Hz. It will therefore be noted that the value POS_X inherently represents a time value of sample positioning on the time axis, while at the same time it designates these samples by evolving constantly since it is at the same time a memory address containing the level zero samples.
La valeur de désignation POS_X est calculée dans un circuit de calcul 30 de
valeurs de sélection représenté sur la figure 7.The designation value POS_X is calculated in a
On voit que dans ce circuit de calcul les valeurs de l'intervalle relatif FRE et de
l'intervalle de base ENS_FRE sont appliquées aux entrées respectives A et B d'une unité
arithmétique U4 dans laquelle elles sont multipliées. La partie entière du résultat de la
multiplication est appliquée à l'entrée A d'une seconde unité arithmétique U5 effectuant
la somme des valeurs appliquée à ses entrées A et B. La partie décimale du résultat de
la multiplication est appliquée à un diviseur de taux binaire 31 dans laquelle cette partie
décimale est décomptée par le signal ACT. (A noter que les valeurs en question sont en
réalité exprimées en numération binaire).We see that in this calculation circuit the values of the relative interval FRE and of
the basic interval ENS_FRE are applied to the respective inputs A and B of a unit
arithmetic U4 in which they are multiplied. The whole part of the result of the
multiplication is applied to input A of a second arithmetic unit U5 performing
the sum of the values applied to its inputs A and B. The decimal part of the result of
multiplication is applied to a
Dans l'exemple ci-dessus dans lequel la sortie de l'unité U4 vaut 10,21678, le
diviseur 31 ajoute dans l'unité U5 une valeur 1 à la valeur entière 10 à raison de 21678
fois pour cent mille impulsions du signal ACT. Ainsi, la valeur additionnée à la sortie de
l'unité U5 sera égale à 11, 21678 fois sur cent cent mille impulsions de ce signal ACT.In the example above in which the output of the U4 unit is 10.21678, the
La sortie de l'unité arithmétique U5 est appliquée à l'une des entrées SEL B d'un
multiplexeur 32 qui sous la commande d'un signal SC_ETR, permet de sélectionner,
d'une séquence PCAL à l'autre, le type de croissance de la valeur POS_X en fonction de
plusieurs cas d'utilisation des sources d'échantillons de niveau zéro, comme on le verra
ci-après. Dans l'un de ces cas, la croissance de la valeur POS_X est constante (0001
par exemple) et appliquée sur la connexion 33. La sortie du bloc 32 est reliée à un bloc
de détermination de signe 34 qui sous la commande d'un signal SGN affecte un signal
positif ou négatif à la valeur extraite de la mémoire M5. On notera que si le signal négatif
est sélectionné, la séquence sonore synthétisée peut être reproduite à l'envers dans le
temps, car la valeur POS_X sera alors décrémentée d'une période P1 à l'autre, de la
quantité déterminée dans le circuit de calcul 30 au lieu d'être incrémentée.The output of the arithmetic unit U5 is applied to one of the SEL B inputs of a
Une mémoire d'accumulation M5 chargée par l'impulsion active de la sous-période P4 stocke pour toutes les cellules la valeur POS_X antérieure.An M5 accumulation memory loaded by the active pulse of the subperiod P4 stores for all cells the previous POS_X value.
La sortie du bloc 34 de détermination de signe est appliquée à l'entrée B d'une
unité arithmétique U6 dont l'entrée A est reliée à la sortie de la mémoire M5. Cette unité
U6 fait la somme de ses deux variables d'entrée. Le résultat est envoyé dans un
multiplexeur 35 qui permet, sous la commande d'un signal CD_INIT, d'adresser à sa
sortie, soit la sortie de l'unité arithmétique U6, soit une valeur d'initialisation lNlT_X
encore à décrire à partir de laquelle la valeur POS_X va être incrémentée. La valeur
lNlT_X peut être égale à zéro dans certains cas. La sortie du multiplexeur 35 est
connectée à une bascule bistable de synchronisation 36 dans laquelle la valeur est écrite
par l'impulsion active de la sous-période P3.The output of the
La sortie de cette bascule 36 est raccordée d'une part à l'entrée de données de
la mémoire M5 et d'autre part en tant que variable B, à l'une des entrées d'une unité
arithmétique U7 qui reçoit sur son autre entrée la valeur PHA provenant du circuit
d'élaboration de paramètres 20 (bloc 20C de la figure 6). Le résultat du calcul effectué
dans l'unité arithmétique U7 (somme de ses variables d'entrée A et B) est la valeur
POS_X.The output of this flip-
On a vu précédemment que l'unité SYNT matérialise en partage de temps un nombre n de cellules dans lesquelles sont élaborées des valeurs d'échantillon de premier niveau à partir de valeurs d'échantillon de niveau zéro affectées de paramètres d'amplitude, de fréquence, de phase et de filtrage prédéterminées. Selon une autre caractéristique importante de l'invention, l'unité SYNT présente également des moyens pour matérialiser en partage de temps un nombre m d'ensembles de cellules qui, comme ces demières, sont représentés par des valeurs stockées à des emplacements de mémoire d'une pluralité de mémoires.We saw previously that the SYNT unit materializes in time sharing a number n of cells in which prime sample values are developed level from zero level sample values assigned parameters of predetermined amplitude, frequency, phase and filtering. According to another important characteristic of the invention, the SYNT unit also has means to materialize in time sharing a number m of sets of cells which, like these are represented by values stored at locations of memory of a plurality of memories.
Dans l'exemple non limitatif décrit, m=64 de sorte qu'il y a 64 ensembles, les emplacements de chacune des mémoires affectées à cette tâche étant donc également au nombre de 64. Les ensembles sont destinés à réunir ou plus précisément à cumuler des valeurs d'échantillon de premier niveau élaborées dans un nombre prédéterminé des cellules à la fin de chaque cycle d'échantillonnage P pour produire des échantillons dits de second niveau.In the nonlimiting example described, m = 64 so that there are 64 sets, the locations of each of the memories assigned to this task therefore also being 64 in number. The sets are intended to bring together or more precisely to combine first level sample values developed in a predetermined number of cells at the end of each P sampling cycle to produce so-called samples second level.
Ainsi, on peut imaginer que l'on veuille reproduire une note d'un violon présentant sa fréquence fondamentale ainsi qu'un jeu d'harmoniques caractéristiques de la note ainsi jouée sur cet instrument. On peut alors affecter à ce travail un nombre de cellules égal à celui des fréquences fondamentale et harmoniques à reproduire avec leurs caractéristiques d'amplitude, de fréquence et de phase associées, puis de réunir dans l'un des ensembles tous les échantillons de premier niveau ainsi engendrés avec leurs relations temporelles associées, les échantillons de second niveau contenant le cumul des échantillons de premier niveau calculés auparavant dans les cellules affectées à l'ensemble considéré.So we can imagine that we want to reproduce a note of a violin presenting its fundamental frequency and a set of harmonics characteristic of the note thus played on this instrument. We can then assign to this work a number of cells equal to that of the fundamental and harmonic frequencies to be reproduced with their associated amplitude, frequency and phase characteristics, and then to combine one of the sets all the first level samples thus generated with their associated temporal relationships, the second level samples containing the cumulative first level samples previously calculated in the cells assigned to the whole considered.
Dans un même ordre d'idées, on verra par la suite, que les échantillons de second niveau calculés dans les divers ensembles peuvent à leur tour être répartis sur un jeu de q sorties par un cumul approprié des échantillons de second niveau pour former des échantillons de troisième niveau constituant collectivement les sorties de l'unité SYNT symbolisée en S sur la figure 1.In the same vein, we will see later that the samples of second level calculated in the various sets can in turn be distributed over a set of q outputs by an appropriate accumulation of second level samples for form third level samples collectively constituting the outputs of the SYNT unit symbolized in S in FIG. 1.
Les mécanismes que l'on vient de décrire sont mis en oeuvre par les composants matériels représentés respectivement sur les figures 8 et 9 dont on va maintenant donner une description détaillée.The mechanisms just described are implemented by the components materials shown respectively in Figures 8 and 9 which we will now give a detailed description.
La figure 8 représente un circuit 40 d'attribution d'échantillons de premier niveau
permettant d'affecter des cellules prédéterminées à un ensemble prédéterminé de la
pluralité d'ensembles de l'unité de synthèse SYNT. Les formes des signaux apparaissant
dans ce circuit d'attribution 40 sont représentées sur les figures 9 et 10.FIG. 8 represents a
A un instant donné déterminé par le cadencement du signal ACT (figure 10), la
valeur d'échantillon de second niveau d'un ensemble sélectionné pour cet instant est
représentée par le signal ACC_ENS que l'on retrouve en haut à droite sur la figure 8 et
qui constitue la sortie du circuit d'attribution 40. Cette valeur se trouve fugitivement à
l'adresse correspondant à cet ensemble d'une mémoire d'accumulateur M6 (à 64
emplacements dans l'exemple) adressée par le signal AACC_ENS et dont l'entrée de
données est raccordée à la sortie d'une unité arithmétique U9 chargée d'effectuer la
multiplication de ses entrées A et B. L'écriture dans la mémoire M6 est commandée par
l'intermédiaire de l'impulsion active de la sous-période P4. Celle-ci lui parvient à travers
une porte ET 41 recevant également un signal C_ENS désignant la dernière cellule dont
l'échantillon de premier niveau qui vient d'être calculé doit, pour une attribution donnée,
être incorporé à la valeur d'échantillon de second niveau devant être fournie par cet
ensemble.At a given time determined by the timing of the ACT signal (Figure 10), the
second level sample value of a set selected for this time is
represented by the signal ACC_ENS which is found at the top right in Figure 8 and
which constitutes the output of the
L'unité arithmétique U9 reçoit sur son entrée A les données de sortie stockées
dans une bascule bistable 42 (voir figure 9) qui reçoit ces données en entrée à partir
d'une unité arithmétique U10. Celle-ci effectue la somme des valeurs qui lui sont
appliquées sur ses entrées A et B. L'écriture des données dans la bascule bistable 42 se
fait pendant l'impulsion active de la sous-période P3. La sortie de cette bascule 42 est
également raccordée à une mémoire d'accumulation intermédiaire M7 (64
emplacements) dans laquelle des données peuvent être inscrites pendant l'impulsion
active de la sous-période P4. En sortie, ces données sont appliquées à l'entrée B de
l'unité arithmétique U10. Celle-ci reçoit sur son entrée A la valeur accumulée ACC_CEL
de la cellule courante en étant soumise à une fonction ET dans une porte 52 avec un bit
C_CSEL provenant en tant que bit de poids le plus fort d'une mémoire M9 à 192
emplacements. Cette porte ET permet d'additionner la valeur d'échantillon de la cellule
courante, si le bit C_CSEL est à '1'. Dans le cas contraire, la valeur n'est pas additionnée
sur l'ensemble. On a ainsi le choix soit d'avoir une cellule dont on utilise la valeur
d'échantillon comme partie de l'échantillon de niveau deux soit de ne l'utiliser que comme
commande, par exemple pour utiliser cette cellule pour que la valeur puisse être
additionnée à un paramètre donné d'une cellule donnée sans que l'échantillon de cette
cellule ne soit directement audible en n'étant pas achéminé à une sortie.The arithmetic unit U9 receives on its input A the stored output data
in a flip-flop 42 (see FIG. 9) which receives this input data from
an arithmetic unit U10. It performs the sum of its values
applied to its inputs A and B. The writing of the data in the flip-
Ainsi, l'entrée A de l'unité arithmétique U9 reçoit une valeur constituée par la
somme de toutes les valeurs accumulées ACC_CEL des cellules attribuées à un
ensemble donné, somme qui apparaít à la sortie de la bascule 42, comme représenté
sur la figure 9.Thus, the input A of the arithmetic unit U9 receives a value constituted by the
sum of all ACC_CEL accumulated values of cells assigned to a
given set, sum which appears at the exit of
L'unité arithmétique U9 reçoit sur son entrée B une valeur d'amplitude provenant d'une mémoire M8 (64 emplacements) dans laquelle sont stockées des valeurs d'amplitude qui peuvent y être inscrites par l'unité de gestion CPU sous la commande du signal d'écriture W_ENS_AMP (figures 2 et 8). La valeur d'amplitude peut être lue dans la mémoire M8 sous la commande du signal R_ENS_AMPL pour ajuster la valeur calculée d'amplitude de l'ensemble courant considéré.The arithmetic unit U9 receives on its input B an amplitude value coming from an M8 memory (64 locations) in which values are stored amplitude which can be entered by the management unit CPU under the command of the write signal W_ENS_AMP (Figures 2 and 8). The amplitude value can be read in the memory M8 under the control of the signal R_ENS_AMPL to adjust the value calculated amplitude of the current set considered.
L'entrée de données d'une mémoire M9 (192 emplacements) est connectée au bloc 13 (figure 2) pour recevoir du CPU des valeurs d'adresse spécifiant pour chacune des cellules à quel ensemble cette cellule va appartenir pour participer à la production d'un échantillon de second niveau. L'écriture de ces valeurs d'adresse dans cette mémoire M9 se fait aux adresses correspondant respectivement aux cellules concernées.The data input of an M9 memory (192 locations) is connected to the block 13 (figure 2) to receive from the CPU address values specifying for each cells to which set this cell will belong to participate in the production a second level sample. Writing these address values into this memory M9 is done at the addresses corresponding to the cells respectively concerned.
La figure 9 illustre par un exemple simple cette écriture dans la mémoire M8 pour
les cinq premières cellules portant les numéros 0 à 4 d'un cycle P. Dans cet exemple, les
cellules 0, 1 et 2 vont appartenir à l'ensemble 0 et les cellules 3 et 4 à l'ensemble 1.
L'écriture et la lecture de la mémoire M9 sont réalisées sous la commande des signaux
W_ENS_CEL et R_ENS_CEL. La même valeur détermine l'adresse de la mémoire M7
qui accumule ces données sous la commande de l'impulsion active de la sous-période
P4.FIG. 9 illustrates by a simple example this writing in the memory M8 for
the first five cells with the
Chaque valeur d'adresse écrite dans la mémoire M9 est assortie d'un bit
d'identification qui, dans l'exemple, est le bit de poids le plus fort (MSB). Dans ce cas, il
est à 1 lorsque pendant la période P1 suivante, le calcul pour l'ensemble courant doit
continuer à être effectué pour cet ensemble. Par contre, lorsque ce bit est à un, cela
signifie que le calcul de l'ensemble courant est terminé. Le signal correspondant est
désigné par C_ENS qui, comme représenté sur la figure 9, est par exemple à un pour les
cellules 0, 1 et 3, et à zéro pour les cellules 2 et 4. Comme déjà mentionné, le signal
C_ENS est utilisé pour commander l'écriture dans la mémoire M6 de la valeur cumulée
d'un échantillon de second niveau appartenant à un ensemble courant.Each address value written in memory M9 is accompanied by a bit
which, in the example, is the most significant bit (MSB). In this case, it
is at 1 when during the following period P1, the calculation for the current set must
continue to be done for this set. On the other hand, when this bit is at one, this
means that the calculation of the current set is finished. The corresponding signal is
designated by C_ENS which, as shown in Figure 9, is for example one for the
L'écriture des données d'amplitude des ensembles dans la mémoire M8 peut se
faire à des adresses pouvant provenir soit de la mémoire M9 (A_ENS), soit directement
du bloc 10 (figure 2). La sélection de l'adresse est effectuée par l'intermédiaire d'un
multiplexeur 43. L'adresse AC passe dans ce multiplexeur 43, lorsque l'un ou l'autre des
signaux W_ENS_AMP ou R_ENS_AMP est à zéro. Sinon c'est l'adresse A_ENS qui
passe.The writing of the amplitude data of the sets in the memory M8 can be
do to addresses which can come either from memory M9 (A_ENS), or directly
of block 10 (Figure 2). The address is selected using a
Le circuit d'attribution 40 comprend également une partie de mise en phase des
cellules et des ensembles.The
Cette mise en phase et le déclenchement d'un ensemble sélectionné sont
commandés de façon non synchrone par un signal W_DEC provenant du bloc 14 (figure
2). Pour cela, le signal W_DEC commande l'écriture de l'adresse de l'ensemble à mettre
en phase dans une bascule bistable 44, recevant cette adresse du CPU. Le signal
W_DEC est synchronisé sur le signal d'échantillonnage ACT par l'intermédiaire d'un
verrou 45, de trois bascules bistables 46, 47 et 48 et d'une porte NON-ET 49. Les
signaux apparaissant dans cette partie du circuit sont représentés sur la figure 10 qui
permet d'en comprendre le fonctionnement.This phasing and the triggering of a selected set are
non-synchronously controlled by a W_DEC signal from block 14 (figure
2). For this, the signal W_DEC commands the writing of the address of the assembly to be put
in phase in a flip-
La sortie Q barre de la bascule 46 foumit un signal ACT_lNlT qui permet d'activer
un comparateur 50 destiné à comparer deux valeurs d'adresse, à savoir celle provenant
de la mémoire M9 et celle qui est délivrée par la bascule 44. En cas d'égalité des deux
valeurs d'adresse un signal C_INIT d'initialisation de cellule est délivré. Ce signal est
utilisé notamment dans le circuit 30 de calcul d'incréments temporels de la figure 7 pour
le multiplexeur 35.The Q bar output of flip-
Le circuit d'attribution 40 de la figure 8 permet également de fournir le signal
ENS_FRE utilisé aussi dans le circuit de calcul de la figure 7.The
Un multiplexeur 51 permet d'envoyer sélectivement à une mémoire M10, les
valeurs d'adresse A_ENS ou les valeurs d'adresse AC en fonction de l'état de signaux
d'écriture/lecture W_ENS_FRE et R_ENS_FRE fournis par le bloc 14 de la figure 2 pour
inscrire dans cette mémoire la valeur ENS_FRE provenant du CPU à l'adresse de
l'ensemble courant devant travailler avec cette valeur d'intervalle. A
La figure 11 représente un circuit 60 d'attribution d'échantillons de second niveau
permettant de regrouper sélectivement les échantillons de second niveau sur des sorties
0 à q pour générer des échantillons de troisième niveau qui, dans l'exemple décrit, sont
les échantillons de sortie de l'unité SYNT. Il y a 16 sorties dans l'exemple.FIG. 11 represents a
Une mémoire M11 (64 adresses soit une par ensemble sur les six bits de poids
faible du signal AC) est destinée à contenir des valeurs de répartition des échantillons de
second niveau ACC_ENS. Ces valeurs de répartition sont fournies par le CPU sous la
commande d'un signal W_SORTIE et elles peuvent être lues sous la commande d'un
signal R_SORTIE pour être transférées sur un bus de commande de répartition 61. Les
bits de ces valeurs sont appliqués respectivement à des portes logiques 62-0 à 62-q qui
reçoivent également le signal C_ENS et l'impulsion active de la sous-période P4.An M11 memory (64 addresses, one per set on the six weight bits
weak signal AC) is intended to contain sample distribution values of
second level ACC_ENS. These distribution values are provided by the CPU under the
command of a W_SORTIE signal and they can be read under the command of a
signal R_SORTIE to be transferred to a
Les valeurs des échantillons de second niveau ACC_ENS sont appliquées respectivement à des unités arithmétiques U11-0 à U11-q dans lesquelles des valeurs d'échantillon de second niveau antérieures peuvent être additionnées à des valeurs courantes de tels échantillons. Les sommes calculées dans ces unités arithmétiques sont stockées temporairement dans des bascules bistables 63-0 à 63-q dans lesquelles les résultats des calculs des unités arithmétiques peuvent être écrits sous la commande des sorties des portes respectives 62-0 à 62-q. Le contenu des bascules peut être effacé soit par le signal d'échantillonnage ACT qui fournit aussi le signal de synchronisation extérieur EXT_SYNC destiné à un dispositif externe (convertisseur numérique/analogique, processeur, etc.) pour lire les sorties 63-0 à 63-q.The values of the second level samples ACC_ENS are applied respectively to arithmetic units U11-0 to U11-q in which values previous second level samples can be added to values common such samples. The sums calculated in these arithmetic units are temporarily stored in flip-flops 63-0 to 63-q in which the results of arithmetic unit calculations can be written under the command of outputs of the respective doors 62-0 to 62-q. The contents of the flip-flops can be deleted either by the sampling signal ACT which also provides the synchronization signal EXT_SYNC for an external device (converter digital / analog, processor, etc.) to read outputs 63-0 to 63-q.
On a vu précédemment par la description de la figure 5, que les valeurs de paramètre utilisées pour l'élaboration des échantillons de premier niveau peuvent être modifiées notamment par des influences agissant sur les cellules et provenant soit de l'intérieur de l'unité SYNT soit de l'extérieur. Autrement dit, on peut considérer que chaque échantillon de premier niveau peut être calculé en agissant sur la cellule considérée à partir de différentes sources.We have seen previously by the description of FIG. 5, that the values of parameter used for the elaboration of the first level samples can be modified in particular by influences acting on cells and originating either from inside the SYNT unit or from the outside. In other words, we can consider that each first level sample can be calculated by acting on the cell considered from different sources.
La sélection d'une telle source est réalisée à partir du CPU qui charge à cet effet
la mémoire M4 (figure 5). Les valeurs de sélection de source stockées pour les cellules
respectives dans cette mémoire M4 sont transférées sur une sortie d'une bascule 23
activée sur l'impulsion active de la sous-période P2, sortie à laquelle apparaissent des
valeurs de commande de sélection de source ADR_CTR au moment où elles doivent
respectivement être disponibles pour opérer la sélection d'une modification de valeur de
paramètre pour la cellule courante. La figure 12 donne plus de détails du bloc de
sélection 25 qui est commun aux blocs 20A à 20D de la figure 6 et qui est commandé
par les valeurs de sélection ADR_CTR.The selection of such a source is carried out from the CPU which loads for this purpose
memory M4 (Figure 5). Source selection values stored for cells
respectively in this memory M4 are transferred to an output of a flip-
Dans l'exemple décrit ici, une source de modification de valeurs de paramètre peut être constituée sélectivement soit par une autre cellule, soit par un ensemble, soit encore par une entrée extérieure à l'unité SYNT selon le cas (signal de détection de paramètre), le terme "entrée" désignant ici un groupe de blocs destiné à adapter les signaux extérieurs pour une exploitation dans l'unité SYNT.In the example described here, a source for modifying parameter values can be made up selectively either by another cell, or by a set, or again by an external input to the SYNT unit as appropriate (detection signal of parameter), the term "input" here designating a group of blocks intended to adapt the external signals for operation in the SYNT unit.
Le bloc de sélection de source ou d'entrée 25 (figure 12) comprend ainsi une
première logique de sélection 25a dont le signal de commande est formé par les bits 1 à
5 de poids le plus fort des valeurs ADR_CTR mémorisées dans la mémoire M4 (figure 5).
Ces bits de poids le plus fort permettent de transmettre de l'entrée vers la sortie de la
logique de sélection, et ce sélectivement pour chaque cellule, l'une parmi quatre valeurs
de modification d'échantillon qui sont respectivement les signaux ACC_CEL, ACC_ENS
et ACC_DET et lN_CEL engendrés à partir des échantillons de premier niveau
(cellule)ou de second niveau (ensemble), d'un détecteur sur entrée de signal
(d'amplitude, de fréquence ou de bande) et d'une entrée de signal (voir pour plus de
détails par la suite).The source or input selection block 25 (FIG. 12) thus comprises a
Le signal de sortie ainsi sélectionné est appelé DATA_CTR qui peut être utilisé en tant que valeur de modification de valeur de paramètre pendant le calcul ultérieur d'un échantillon de premier niveau d'une cellule quelconque.The output signal thus selected is called DATA_CTR which can be used as a parameter value change value during the subsequent calculation of a first level sample of any cell.
Les bits de la valeur ADR_CTR sont également appliquées à une seconde logique de sélection 25b qui permet de répartir les sources de valeurs de modification selon quatre cas.ADR_CTR value bits are also applied to one second selection logic 25b which distributes the sources of modification values in four cases.
Le premier de ces cas concerne l'accumulation pour les cellules dans une
mémoire d'accumulation M13 à l'aide d'une adresse AACC-CEL (figure 13), en
provenance d'un multiplexeur 25-1. L'adresse a normalement la valeur AC ou durant le
sous-cycle P1, elle a la valeur des bits de poids forts de la valeur ADR_CTR, lorsqu'elle
détermine une valeur entre 0 et 191. Les données DATA_CTR sont alors activées par un
tampon BX1 de la logique 25a.The first of these cases concerns the accumulation for cells in a
accumulation memory M13 using an AACC-CEL address (figure 13), in
from a multiplexer 25-1. The address is normally set to AC or during
sub-cycle P1, it has the value of the most significant bits of the value ADR_CTR, when it
determines a value between 0 and 191. The DATA_CTR data is then activated by a
buffer BX1 of
Le second cas concerne la mémoire d'accumulation d'ensembles M6 de la figure 8 qui reçoit l'adresse AACC_ENS par le multiplexeur 25-2 de la logique 25b. Cette adresse est normalement la valeur A_ENS, mais durant le sous-cycle P1, elle a la valeur ADR_CTR, lorsque les bits de poids fort de la valeur ADR_CTR sont situés entre 192 et 207. Les données DATA_CTR sont alors activées par un tampon BX6. The second case concerns the memory for accumulating sets M6 in FIG. 8 which receives the address AACC_ENS by the multiplexer 25-2 of the logic 25b. This address is normally the value A_ENS, but during the sub-cycle P1, it has the value ADR_CTR, when the most significant bits of the value ADR_CTR are located between 192 and 207. The DATA_CTR data are then activated by a BX6 buffer.
Le troisième cas concerne la sélection de ce qu'il est convenu d'appeler des
détecteurs, par la valeur AACC_lN fournie par un multiplexeur 25-3 de la logique 25b de
la figure 12. La valeur AACC_lN est déterminée par une mémoire M14 (figure 16) de
sélection d'entrées. L'adresse est normalement AIN et durant le sous-cycle P1, elle est
ADR_CTR si les bits de poids fort de ce signal déterminent une valeur comprise entre
208 et 223. Les données DATA_CTR sont alors activées par un tampon BX2 de la
logique 25a.The third case concerns the selection of what are known as
detectors, by the value AACC_lN supplied by a multiplexer 25-3 of the logic 25b of
figure 12. The value AACC_lN is determined by a memory M14 (figure 16) of
selection of inputs. The address is normally AIN and during the P1 sub-cycle, it is
ADR_CTR if the most significant bits of this signal determine a value between
208 and 223. The DATA_CTR data are then activated by a BX2 buffer of the
Le quatrième cas concerne le choix des détecteurs représentés sur la figure 18
(décrite en détail par la suite). Ce choix concerne soit un bloc 144 d'amplitude, soit un
bloc 147 de fréquence, soit encore un bloc 146 de bandes. Des valeurs au delà de 224
de ADR_CTR peuvent être utilisées pour définir ces détecteurs. Les données
DATA_CTR sont alors activées par les tampons BX3 à BX5 suivant le cas.The fourth case concerns the choice of detectors shown in Figure 18
(described in detail below). This choice concerns either a
La figure 13 représente un schéma d'un circuit 70 de commande de sélection de
mode et de blocs d'entrée. En effet, le calcul des échantillons de premier niveau dans les
cellules peut être effectué selon un certain nombres de modes de fonctionnement et
également en fonction de signaux de sortie établis par l'un quelconque d'un certain
nombre de blocs d'entrée. Ceux-ci à leur tour peuvent établir leurs signaux de sortie à
partir de sources proprement dites qui peuvent être internes et/ou externes à l'unité
SYNT.FIG. 13 represents a diagram of a
La détermination du choix des modes et des blocs d'entrée est faite sous la
commande du CPU qui peut à cet effet charger une mémoire M12, dite "mémoire de
configuration" avec des données apparaissant, le cas échéant, sur la sortie 13e du bloc
13 de l'interface 1 (figure 2). Ces données représentent des valeurs de détermination qui
sont stockées respectivement pour chaque cellule aux emplacements (ici 192) de la
mémoire M12 où elles peuvent être écrites ou lues sous la commande des signaux
d'écriture/lecture W_MOD et R_MOD provenant du bloc 14. Les bits de ces valeurs de
détermination correspondent aux différentes configurations que peut adopter l'unité
SYNT.The choice of modes and input blocks is determined under the
CPU control which can for this purpose load an M12 memory, called "memory of
configuration "with data appearing, if necessary, on
Ainsi, les trois bits de poids le moins fort MOD_SC0 à MOD_SC2 sont appliqués
à une logique de sélection 71 qui selon les valeurs de ces bits peut activer huit modes de
fonctionnement mis en oeuvre respectivement dans quatre blocs d'entrée 72 à 74 qui
forment des échantillons dits de niveau zéro.Thus, the three least significant bits MOD_SC0 to MOD_SC2 are applied
to a
Le bloc d'entrée 72 permet de mettre en oeuvre un mode de fonctionnement
dans lequel l'unité SYNT utilise des générateurs de forme d'onde qu'elle comporte elle-même.
Ce bloc sera décrit en référence à la figure 14 (signaux d'activation SC_SIN,
SC_CAR, SC_TR, SC_RMP, et SC_RMN).The
Le bloc d'entrée 73 permet de mettre en oeuvre un mode de fonctionnement
dans lequel l'unité SYNT utilise son propre générateur de bruit. Ce bloc sera décrit à
propos de la figure 15.The
Le bloc d'entrée 74 permet de mettre en oeuvre un mode de fonctionnement par
lequel l'unité SYNT utilise des échantillons préalablement engendrés et mémorisés
(signal SC_ECH) ou des échantillons utilisés en temps réel pouvant provenir de
l'extérieur de l'unité SYNT (signal SC_ETR). Ces deux modes seront examinés en
référence aux figures 16 et 17.The
Les échantillons engendrés respectivement dans les blocs 72, 73 et 74
apparaissent sur un bus 75 selon le mode de fonctionnement sélectionné, le signal
transitant sur ce bus étant appelé CCYC. Ce signal est appliqué à un bloc de filtrage 76
dont la structure apparaít sur la figure 19. Ce bloc fournit des échantillons affectés de
caractéristiques de filtrage prédéterminées, son signal de sortie étant désigné par CFLT.
Chaque échantillon de ce signal est appliqué à l'entrée A d'une unité arithmétique de
multiplication U12 dans laquelle sa valeur est multipliée par la valeur de paramètre
d'amplitude courante AMP appliquée à l'entrée B de cette unité arithmétique. Le résultat
de la multiplication est écrit dans une mémoire d'accumulation M13, à 192
emplacements, à l'adresse déterminée par la valeur d'adresse AACC_CEL fournie par la
logique de sélection 25b (figure 12), sous la commande de l'impulsion active de la sous-période
P4. La mémoire M13 est à écriture seulement, l'écriture à une adresse donnée
chassant la valeur antérieure écrite vers la sortie. Le signal correspondant est
représentatif des échantillons successifs de premier niveau et appelé ACC_CEL, en tant
que sortie des cellules.The samples generated respectively in
Les quatre bits de poids intermédiaire des valeurs lues dans la mémoire M12
sont destinés à déterminer le mode de calcul sur les paramètres d'amplitude, de
fréquence, de phase et de filtrage, effectué dans l'unité arithmétique U4, respectivement
de chacun des circuits 20A à 20D de la figure 6. Leur valeur binaire place cette unité
arithmétique U4 en mode d'addition ou en mode de multiplication.The four intermediate weight bits of the values read from the M12 memory
are intended to determine the method of calculation on the amplitude parameters, of
frequency, phase and filtering, performed in the arithmetic unit U4, respectively
of each of the
Les trois bits de poids fort issus de la mémoire M12 déterminent sélectivement les modes de fonctionnement en continu, en répétition et en "aller-retour" de la génération des échantillons de premier niveau issus des cellules. Ces bits sont appelés respectivement MOD_CCY, MOD_DCY et MOD_ALT. Ces signaux seront décrits en référence aux figures 20 et 21.The three most significant bits from memory M12 selectively determine the continuous, repeat and "round trip" operating modes of the generation of first level samples from cells. These bits are called MOD_CCY, MOD_DCY and MOD_ALT respectively. These signals will be described in reference to Figures 20 and 21.
On va maintenant se référer à la figure 14 pour examiner le bloc d'entrée 72. Ce
bloc d'entrée comprend quatre générateurs de fonction 81 à 84 destinés à produire des
échantillons de niveau zéro et auxquels est appliquée la valeur temporelle POS_X
calculée dans le circuit de calcul 30 de la figure 7. Il rappelle donc ici que selon une
caractéristique importante de l'invention, la valeur POS_X est en fait une valeur
d'adresse, la plupart du temps.We will now refer to FIG. 14 to examine the
Le premier générateur de fonction est une table de sinus 81 dans laquelle sont
mémorisées un nombre prédéterminée de valeurs de sinus, ce nombre étant égal à 2A, A
étant égal à 10 dans l'exemple considéré. En fait, la table 81 est une mémoire à 2A
emplacements qui peuvent être adressés par des valeurs d'adresse déterminées par les
A bits les moins significatifs de la valeur de désignation POS_X. Par exemple, si A=10,
ce sont les dix bits les moins significatifs de la valeur POS_X qui préparent chaque
échantillon de premier niveau, à savoir qu'ils déterminent la valeur de sinus à extraire de
la table 81, pour autant naturellement que ce mode de fonctionnement soit sélectionné.
La valeur d'adresse formée par la valeur POS_X courante est appliquée à la table par la
ligne 85. L'accès à la table 81 est validé par le signal SC_SIN provenant de la logique de
sélection 71 de la figure 13. Il est à noter que la valeur de désignation POS_X peut
comporter un nombre de bits bien plus grand que le nombre A, 32 par exemple, un
même jeu d'adresses de la table 81 pouvant donc être parcouru successivement un très
grand nombre de fois pendant l'incrémentation de la valeur POS_X jusqu'à sa valeur
maximale au cours du fonctionnement de l'unité SYNT.The first function generator is a sine table 81 in which a predetermined number of sine values are stored, this number being equal to 2 A , A being equal to 10 in the example considered. In fact, the table 81 is a memory with 2 A locations which can be addressed by address values determined by the A least significant bits of the designation value POS_X. For example, if A = 10, it is the ten least significant bits of the value POS_X which prepare each first level sample, namely that they determine the value of sine to extract from table 81, as far as naturally operating mode is selected. The address value formed by the current POS_X value is applied to the table by
Le générateur 82 est capable d'engendrer une forme d'onde carrée en
déterminant les instants de changement de polarité des échantillons de premier niveau à
engendrer. Le générateur 82 est activé sur le signal SC_CAR provenant de la logique de
sélection 71 de la figure 13. Le changement est opéré en fonction du signe du bit le plus
significatif des A bits de la valeur courante de POS_X qui est appliquée par le
conducteur 86. Dans ce cas, POS_X ne constitue donc pas une adresse de mémoire
proprement dite.The
Le générateur 83 permet d'engendrer des fonctions de forme triangulaire. C'est
une fonction arithmétique calculant une oscillation triangulaire sur la base de l'adresse
sur A bits les moins significatifs du signal POS_X en tant qu'adresses d'emplacement.
Ces valeurs d'adresse lui sont appliquées par le conducteur 87. Les adresses et les
fonctions résultantes sont résumées à l'intérieur du bloc représentant le générateur 83.
Ce dernier est activé sous la commande du signal SC_TRI provenant de la logique 71 de
la figure 13.The
Le générateur 84 est également une fonction arithmétique calculant une
oscillation en rampe positive ou négative sur la base de l'adresse sur A bits les moins
significatifs de la valeur POS_X. Une suite de valeurs ainsi stockées peut être parcourue
en positif ou en négatif sous la commande d'une paire de signaux SC_RMP et SC_RMN
respectivement, provenant de la logique 71 et appliquée à une porte ET 88. La sortie de
cette porte permet de valider l'activation de ce générateur 84, le niveau du signal
SC_RMP déterminant le sens de la suite de valeurs calculées. La fonction engendrée
par les adresses est également indiquée à l'intérieur du bloc représentant ce générateur
de fonction 84.The
La figure 15 représente le détail du bloc d'entrée 73 de la figure 13. Ce bloc sert
à engendrer des échantillons de premier niveau dans le cas où ceux-ci doivent présenter
des valeurs d'amplitude aléatoire. Ce bloc d'entrée 73 comprend un générateur de
nombres aléatoires 90 fonctionnant en permanence. A l'apparition d'une impulsion
d'échantillonnage ACT, le nombre engendré à l'instant correspondant est passé à une
bascule bistable 91 dans laquelle il est écrit à l'apparition de l'impulsion P1
correspondante. Si la bascule 91 est en même temps activée par le signal de validation
SC_BRT, la donnée correspondante sera sortie de la bascule 91 et la valeur de
l'échantillon courant sera basée sur cette donnée.Figure 15 shows the detail of the
On va maintenant se référer à la figure 16 pour décrire une partie du bloc
d'entrée 100 de l'unité SYNT, à savoir un circuit d'attribution d'entrées. Il peut y avoir 'e'
entrées numérotées de 0 à e, seize entrées pouvant par exemple être prévues.
Typiquement, chaque entrée est connectée en amont à un convertisseur
analogique/numérique relié à son tour à une source de signaux analogiques (non
représentée). Les sources de signaux peuvent provenir d'instruments de musique
équipés de transducteurs, d'instruments de musique associés à un microphone, de
tourne-disque, de microphones captant le spectre sonore d'un orchestre, d'un lecteur de
disques compacts etc., un très grand nombre de telles sources pouvant être imaginées.We will now refer to Figure 16 to describe part of the
Les signaux présents sur les entrées 0 à e sont appelées lN_0 à lN_e. Pour
pouvoir les attribuer, le bloc d'entrée 100 comprend une mémoire M14 à 192
emplacements dans laquelle le CPU peut écrire des valeurs d'attribution d'entrées à des
adresses foumies par le signal AC sous la commande du signal W_ETR_N provenant du
bloc 14 de l'interface I (figure 2). La lecture se fait sous la commande du signal
R_ETR_N provenant également de ce bloc 14. Les données enregistrées dans la
mémoire M14 par le CPU représentent un code d'attribution d'entrées qui est appliqué à
au multiplexeur 25-3 (figure 12) dont la sortie est connectée à un décodeur 101 ayant e
sorties pouvant activer des tampons 102-0 à 102-e dont les entrées reçoivent
respectivement les signaux d'entrée lN_0 à lN_e. Par conséquent, en fonction du
contenu de la mémoire M14 et de l'état du multiplexeur 25-3, une entrée externe pour
une cellule donnée est appliquée à un bus 103 commun à tous les tampons 102-0 à
102e. Le signal transitant sur ce bus est appelé lN_CEL et il forme donc des
échantillons dits de niveau zéro.The signals present on
On notera toutefois que le signal lN_CEL, tout comme les signaux ACC_CEL,
ACC_ENS et ACC_DET, peuvent être utilisés comme valeurs de paramètre sélectionnés
pour autant qu'ils soient autorisés à passer à la sortie de la logique 25a de la figure 12
sous la commande du signal ADR_CTR. En cas d'autorisation, la valeur de lN_CEL est
acheminée comme signal DATA_CTR pour pouvoir être combinée de façon multiplicative
ou additive avec la valeur courante d'un paramètre sous la commande du signal
MODE_FCT.It will be noted however that the signal lN_CEL, just like the signals ACC_CEL,
ACC_ENS and ACC_DET, can be used as selected parameter values
as long as they are allowed to pass to the output of
La figure 17 représente le schéma d'un circuit de mémorisation d'échantillons de niveau zéro et de sélection de l'utilisation temporelle de ces échantillons pour l'élaboration des échantillons de premier niveau dans les cellules de l'unité SYNT.FIG. 17 represents the diagram of a circuit for memorizing samples of level zero and selecting the time use of these samples for the development of first level samples in the cells of the SYNT unit.
Ce circuit comprend une mémoire d'échantillons M15 de grande capacité dans laquelle peut être stockée une grande quantité d'échantillons de niveau zéro. A titre d'exemple, cette mémoire peut avoir 232 emplacements. On notera toutefois que la mémoire M15 peut avoir une capacité plus ou moins grande en fonction de la longueur d'un enregistrement d'échantillons successifs que l'on veut effectuer. On notera également que cette mémoire est la seule du dipositif selon l'invention présentant une capacité importante.This circuit includes a large capacity sample memory M15 in which a large quantity of zero level samples can be stored. As an example, this memory can have 2 32 locations. Note however that the memory M15 can have a greater or lesser capacity depending on the length of a recording of successive samples that one wishes to make. It will also be noted that this memory is the only one of the device according to the invention having a large capacity.
Les adresses de cette mémoire M15 proviennent d'un multiplexeur 121, à 32 bits
par exemple, comportant une entrée A à laquelle est appliqué le signal d'adresse ACPU
(figure 2) provenant de l'interface I. Ces adresses sont donc déterminées par le CPU. Par
ailleurs, l'entrée de données de la mémoire M15 d'échantillons de niveau zéro est
connectée au bloc 13 de l'interface I de sorte que le CPU peut inscrire des données dans
cette mémoire à des adresses qu'il aura lui-même fixées. Ce mode de stockage dans la
mémoire M15 permet ainsi d'utiliser en tant qu'échantillons de niveau zéro par exemple
des signaux sélectionnés graphiquement par un utilisateur sur l'écran du CPU, le
programme d'application de cette unité de gestion étant naturellement conçu
spécialement pour cette tâche, comme il est d'ailleurs bien connu dans la technique.
L'adresse ACPU est activée par les signaux W_ECH_CYC et R_ECH_CYC qui
commandent respectivement l'écriture et la lecture par un CPU.The addresses of this memory M15 come from a
L'autre entrée B du multiplexeur 121 est connectée à la sortie du circuit de calcul
30 de la figure 7 dont il reçoit ainsi la valeur courante de POS_X utilisée ici également en
tant qu'adresse, mais cette fois pour la mémoire M15 (valeur courante de POS_X). Cette
sortie B est sélectionnée lorsque les signaux W_ECH_CYC et R_ECH_CYC sont actifs.
En effet, ces signaux provenant du blocs 14 de l'interface I sont appliqués tous deux à
une porte OU 122 dont la sortie est reliée à l'entrée d'activation du multiplexeur 121. Si
l'un ou l'autre de ces deux signaux est actif, l'entrée A du multiplexeur 121 est activée.The other input B of the
Par ailleurs, la commande de lecture/écriture dans la mémoire d'échantillons M15 peut sélectivement être réalisée par ces même signaux R_ECH_CYC et W_ECH_CYC. A cet effet, le signal R_ECH_CYC est appliqué directement à l'entrée de commande de lecture de la mémoire M15, tandis que le signal W_ECH_CYC est appliquée à une porte ET 123 dont la sortie est connectée à l'entrée de commande d'écriture de cette même mémoire.Furthermore, the read / write command in the sample memory M15 can selectively be carried out by these same signals R_ECH_CYC and W_ECH_CYC. For this purpose, the signal R_ECH_CYC is applied directly to the command input of reading from memory M15, while the signal W_ECH_CYC is applied to a door AND 123 whose output is connected to the write command input of this same memory.
L'autre entrée de la porte ET 123 est reliée à la sortie d'une porte OU 124. Celle-ci
reçoit sur sa première entrée le signal correspondant à l'impulsion active de la période
P1 et sur son autre entrée le signal SC_ETR qui peut être activé lorsque la donnée dans
la mémoire M12 (figure 13) désigne le mode de fonctionnement correspondant à la sortie
du décodeur 71.The other input of the AND
La sortie de la porte OU 124 est appliquée à l'entrée d'activation d'un tampon
125. Celui-ci reçoit sur son entrée le signal IN_CEL qui constitue la sortie du circuit
d'attribution d'entrée de la figure 16. La sortie du tampon 125 est connectée à l'entrée de
données de la mémoire d'échantillons M15.The output of OR
La sortie de la porte OU 124 est également connectée à l'une des entrées de la
porte ET 123 pour permettre l'activation de l'entrée d'écriture de la mémoire M15.The output of OR
Ainsi, l'écriture des échantillons de niveau zéro peut être réalisée à des adresses
qui dépendent soit du CPU par le signal ACPU sur activation par le signal W_ECH_CPU
pour l'écriture d'un échantillon dans la mémoire M15, soit par l'incrémentation de 0001 de
la valeur POS_X courante. Cette sélection se fait en fonction de l'état du signal de
sélection SC_ETR permettant de placer le multiplexeur 32 dans l'une ou l'autre de ses
configurations.Thus, writing level zero samples can be performed at addresses
which depend either on the CPU by the ACPU signal on activation by the W_ECH_CPU signal
for writing a sample into memory M15, i.e. by incrementing 0001 by
the current POS_X value. This selection is made according to the state of the
selection SC_ETR allowing to place the
Par conséquent, l'adresse à laquelle les données sont inscrites dans la mémoire M15 dépend de l'adresse spécifiée par le CPU ou de l'incrémentation par '1' de la valeur POS_X sous la commande du signal SC_ETR. Cette demière façon d'incrémenter correspondant en réalité à une reproduction en temps réel des échantillons de niveau zéro (d'où le sigle ETR: Entrées en Temps Réel). Il est à noter que lorsque la mémoire M15 est dans le mode de fonctionnement en temps réel, les données inscrites sortent simultanément de la mémoire. Dans l'autre mode de fonctionnement, dit d'échantillonnage (ECH), les données peuvent demeurer dans la mémoire pendant un temps prédéterminé, la mémoire fonctionnant alors en quelque sorte comme un magnétophone.Therefore, the address where the data is written to memory M15 depends on the address specified by the CPU or the incrementation by '1' of the value POS_X under the control of the signal SC_ETR. This last way of incrementing actually corresponding to a real-time reproduction of the level samples zero (hence the acronym ETR: Real Time Entries). It should be noted that when the memory M15 is in real-time operating mode, the entered data comes out memory simultaneously. In the other mode of operation, says data (ECH), data may remain in memory for a period of predetermined time, the memory then functioning in a way as a tape recorder.
Lorsque le signal SC_ETR est actif, la mémoire M15 est utilisée alternativement
en écriture (P1) et en lecture pour obtenir l'échantillon de niveau zéro. Lorsque le signal
SC_ECH (voir figure 13) est actif, la mémoire M15 n'est utilisée en écriture que pour
inscrire un nouvel échantillon. La mémoire est normalement utilisée en lecture,
l'échantillon étant lu de la même manière que pour la table de sinus du bloc 81 de la
figure 14, sauf que dans le cas de la mémoire M15 l'échantillon peut être modifié en tout
temps point par point et que la dimension de la table d'échantillons contenue dans la
mémoire M15 peut être prédéterminée ou choisie à volonté alors que cela n'est pas le
cas pour la table de sinus du bloc 81.When the signal SC_ETR is active, the memory M15 is used alternately
in writing (P1) and in reading to obtain the zero level sample. When the signal
SC_ECH (see figure 13) is active, memory M15 is only used for writing
enter a new sample. The memory is normally used for reading,
the sample being read in the same way as for the sine table of
En tout état de cause, les signaux sortant de la mémoire d'échantillons M15
forment le signal CCYC qui sont des échantillons de premier niveau non encore soumis
au filtrage dans le circuit de filtrage 160.In any event, the signals leaving the M15 sample memory
form the CCYC signal which are first level samples not yet submitted
filtering in the
On va maintenant se référer à la figure 18 qui représente un circuit d'analyse des signaux d'entrée appliqués aux entrées lN_0 à lN_e de l'unité de synthèse SYNT. On appellera ce circuit "circuit de détection de paramètres" 140, étant donné qu'il est destiné à déceler dans les signaux d'entrée des propriétés d'amplitude, de fréquence et de répartition d'amplitude en fonction de la fréquence (bandes), ces propriétés, en étant converties en signaux numériques, permettant d'ajuster les valeurs de paramètre avec lesquelles les cellules vont travailler pour former les échantillons de premier niveau dans l'unité de synthèse.We will now refer to FIG. 18 which represents a circuit for analyzing the input signals applied to the inputs lN_0 to lN_e of the SYNT synthesis unit. We will call this circuit "parameter detection circuit" 140, since it is intended to detect in the input signals properties of amplitude, frequency and amplitude distribution as a function of frequency (bands), these properties, being converted to digital signals, allowing adjustment of parameter values with which cells will work to form the first level samples in the synthesis unit.
Les entrées du circuit de détection 140 sont connectées en parallèle aux entrées
lN_0 à lN_e de l'unité de synthèse formant ensemble le signal E de la figure 1. Par
conséquent, les entrées des circuits d'attribution de la figure 16 et de détection de la
figure 18 sont reliées respectivement en parallèle.The inputs of the
Le circuit de détection 140 comprend une premier groupe de détecteurs 141_0 à
141_e permettant de déterminer la valeur absolue des amplitudes des échantillons
numériques sonores qui sont appliquées par des convertisseurs analogiques/numériques
(non représentés) sur les entrées respectives lN_0 à lN_e. Ils sont également conçus
pour établir la valeur moyenne sur un nombre d'échantillons successifs et pour fournir
une valeur numérique correspondante à leur sortie.The
Le circuit de détection 140 comprend un second groupe de détecteurs 142_0 à
142_m permettant de déterminer une valeur d'amplitude moyenne dans chacune d'une
pluralité de p bandes de fréquences des suites d'échantillons appliquées respectivement
sur les entrées lN_0 à lN_e. Ces valeurs d'amplitude moyenne apparaissent, sous forme
d'un code numérique et pour chacune des p bandes, sur une sortie déterminée 0 à p de
chaque détecteur.The
De plus, le circuit de détection 140 comprend un troisième groupe de détecteurs
143_0 à 143_e chargés de déterminer des propriétés temporelles des suites
d'échantillons d'entrée et notamment les instants de passage par zéro, la moyenne de
leur fréquence et une valeur de comptage. Ces données sont présentées sous forme de
codes numériques sur chacune des sorties des détecteurs 143_0 à 143_e.In addition, the
Toutes les valeurs numériques issues des détecteurs du circuit 140 peuvent
sélectivement être placées dans une mémoire d'accumulation M16 à 192 emplacements
sous la commande de l'impulsion active de la sous-période P4. Les adresses auxquelles
ces valeurs sont inscrites dans cette mémoire sont formées par les bits de poids faible du
signal ADR_CTR appliqué au bloc 25 représenté sur les figures 5 et 12. Les bits de poids
fort de ce signal déterminent respectivement la position de plusieurs sélecteurs auxquels
sont appliquées les valeurs de sortie des détecteurs. Ainsi, les sorties des détecteurs
141_0 à 141_e sont appliqués à 'e' entrées d'un sélecteur 144 en fonction d'une série de
bits d'amplitude du signal ADR_CTR. L'activation sélective de ces bits permet de passer
une sortie déterminée des détecteurs 141_0 à 141_e sur la sortie du sélecteur qui sera
alors inscrite sous la commande de l'impulsion active de la sous-période P4 dans une
partie correspondante de l'emplacement de cette mémoire désignée par la partie
d'adresses concomitante du signal ADR_CTR.All the numerical values coming from the detectors of
Il en est de même pour d'autres groupes de bits, formant des bits de "bandes" du
signal ADR_CTR et permettant de positionner des sélecteurs 145_0 à 145_p de telle
façon que sur leur sortie, on puisse regrouper des valeurs d'amplitude correspondant
respectivement aux diverses bandes O à p sur lesquelles travaillent les détecteurs 142_0
à 142_e. Les valeurs correspondant à ces bandes regroupées peuvent également être
sélectionnées à l'aide d'un sélecteur 146 qui reçoit sur ses entrées D0 à De les valeurs
ainsi regroupées. La sortie du sélecteur 146 forme une partie du signal numérique
envoyé dans les emplacements de la mémoire M16. Enfin, un sélecteur 147 permet à
l'aide des bits de fréquence du signal ADR_CTR d'attribuer les valeurs numériques de
sortie des détecteurs 143_0 à 143_e aux divers emplacements de mémoire de la
mémoire M16.It is the same for other groups of bits, forming bits of "bands" of the
signal ADR_CTR and allowing to set selectors 145_0 to 145_p of such
so that on their output, we can group corresponding amplitude values
respectively to the various bands O to p on which the detectors work 142_0
at 142_e. The values corresponding to these grouped bands can also be
selected using a
Par conséquent, celle-ci peut contenir pour chacune des cellules de l'unité SYNT une valeur numérique dont les données mémorisées représentent les valeurs des paramètres d'amplitude et de fréquence des échantillons numériques appliqués de l'extérieur à l'unité SYNT.Consequently, this can contain for each of the cells of the SYNT unit a numerical value whose stored data represent the values of amplitude and frequency parameters of the applied digital samples of outside the SYNT unit.
Comme représenté sur la figure 5, les valeurs de paramètre ainsi relevées sur le
signal d'entrée peuvent être utilisées pour intervenir dans le calcul des valeurs des
paramètres (valeur VAL) pour autant qu'à l'instant considéré le signal ACC_DET soit
autorisé à passer à la sortie du bloc 25a de la figure 12 sous la commande du signal
ADR_CTR provenant du CPU comme représenté sur la figure 2. On rappellera que le
signal DATA_CTR peut être combinée additivement ou de façon multiplicative à la valeur
courante d'un paramètre sous la commande du signal MODE_FCT qui est appliqué à
l'unité arithmétique U4 de la figure 5, ce signal MODE_FCT étant lui-même sélectionné
par l'intermédiaire du contenu de la mémoire M12 (figure 13) chargée par le CPU.As shown in Figure 5, the parameter values thus noted on the
input signal can be used to intervene in the calculation of the values of
parameters (VAL value) provided that at the instant considered the signal ACC_DET is
authorized to pass to the output of
On voit donc que l'élaboration des échantillons de premier niveau dans les cellules peut être déterminée par quatre jeux de valeurs de paramètre contenues respectivement dans les signaux ACC_CEL, ACC_ENS, ACC_DET et IN_CEL, comme cela ressort de la figure 12.We therefore see that the development of the first level samples in the cells can be determined by four sets of contained parameter values respectively in the signals ACC_CEL, ACC_ENS, ACC_DET and IN_CEL, as this is shown in figure 12.
La figure 19 représente le circuit de filtrage 160 permettant d'appliquer un filtrage
approprié au signal CCYC comme représenté par le bloc 76 de la figure 13.FIG. 19 represents the
Ce circuit comporte un séquenceur 161 des fonctions de filtrage qui reçoit le
signal CCAL de l'interface 1 (figure 2) pour faire tourner un compteur de séquence et le
signal FLT du circuit de la figure 5 en tant que paramètre déterminant le filtrage en
sélectionnant ultimement des coefficients de filtrage dans une mémoire M18. Ce signal
détermine en fait une adresse d'une table dans laquelle est contenue une courbe de
coefficients de filtrage prédéterminée. Le séquenceur détermine ainsi un code
d'opération de filtrage apparaissant sur sa sortie 161a. Le séquenceur est également
capable d'engendrer deux types de valeurs d'adresse apparaissant sur ses sorties 161c
et 161b respectivementThis circuit includes a
La valeur d'adresse de la sortie 161b est appliquée à une mémoire M17 de
calculs de filtrage. Cette mémoire M17 présente un nombre prédéterminé
d'emplacements, par exemple 16384. La sortie d'adresse 161c est appliquée à l'entrée B
d'un multiplexeur 162 dont l'entrée A peut recevoir directement des valeurs d'adresse du
bloc 12 de l'interface I. Ces valeurs sont inscrites par le CPU pour caractériser ces filtres
(coefficients) dans une mémoire M18. Le processus de filtrage permet de lire ces
données pour le calcul.The address value of output 161b is applied to a memory M17 of
filtering calculations. This memory M17 has a predetermined number
locations, for example 16384. Address output 161c is applied to input B
of a
La sélection de l'entrée B du multiplexeur 162 est réalisée sous la commande de
la sortie d'une porte ET 163 qui s'ouvre à la condition que l'un de trois signaux soit
présent, à savoir le signal de lecture R_FLT_COEF, le signal d'écriture W_FLT_COEF
ou un signal de commande de lecture de coefficient constituant une sortie 164a d'un bloc
164 de détermination de fonction de filtrage IIR.The selection of the input B of the
La sortie du multiplexeur 162 est appliquée à la mémoire M18 de coefficients de
filtrage. Cette mémoire reçoit ses données directement du CPU. Ces données sont
inscrites aux adresses appropriées sous la commande d'un signal d'écriture provenant
d'une porte ET 165. Une première entrée de cette porte ET est connectée au bloc 14 de
l'interface I (signal de lecture R_FLT_COEF), son autre entrée étant reliée à la sortie
164a du bloc 164 de détermination de fonctions de filtrage.The output of the
La sortie de données de la mémoire M18 de coefficients de filtrage est appliquée
à une entrée 164b du bloc 164. Pour la lecture de coefficients, l'entrée et la sortie de
données de la mémoire M17 de calculs de filtrage sont respectivement connectées à la
sortie 164c et à l'entrée 164d du bloc 164. Ce dernier reçoit le code d'opération du bloc
161 sur son entrée 164e. La lecture dans la mémoire M17 est commandée par un signal
provenant de la sortie 164f, tandis que la commande d'écriture provient de la sortie 164g
du bloc 164.Data output from the filter coefficient memory M18 is applied
to an
Enfin, ce bloc 164 comporte une entrée 164h à laquelle est appliquée le signal
CCYC issu sélectivement des blocs 72, 73 et 74 de la figure 13, tandis que les
échantillons "filtrés" achevés apparaissent à la sortie 164i du bloc 164. On notera que la
mémoire 17 permet de stocker temporairement les données intermédiaires de calcul de
filtrage, ces données produisant le signal filtré sur la sortie 164i, soit le signal CFLT qui
est le signal utilisé dans la figure 13 pour déterminer l'échantillon de niveau 1. Le code
d'opération permet de commander les transitions des signaux entre les entrées et les
sorties du bloc 164.Finally, this
On va maintenant se référer aux figures 20 et 21 pour décrire le circuit 180 de
détermination des bornes temporelles de certains processus de production des
échantillons. Ces processus de production sont le mode d'échantillons, lorsque l'unité
SYNT travaille avec des échantillons provenant de la mémoire M15 de la figure 17 et le
mode d'échantillons en temps réel. La validation du circuit de détermination 180 est donc
assurée au moment opportun par l'un ou l'autre des signaux SC_ECH ou SC_ETR
appliquées à une porte ET 181 représentée en haut de la figure 20.We will now refer to FIGS. 20 and 21 to describe the
Le circuit de détermination 180 comprend une mémoire M19 dans laquelle
peuvent être stockées des valeurs d'instants de début (c'est-à-dire des valeurs
représentant un instant prédéterminé sur l'axe des temps par accumulation d'un nombre
déterminé de valeurs analogues à des valeurs POS_X) d'une suite d'échantillons
déterminés représentant par exemple une note à jouer. Cette mémoire M19 comporte
192 emplacements et elle peut donc être chargée avec une valeur d'instant de début
pour chacune des cellules. La valeur d'adresse est formée par le signal AC et les
données sont inscrites/lues dans la mémoire à partir de l'unité de gestion CPU sous la
commande des signaux W_ECH_DEB/R_ECH_DEB.The
Une autre mémoire M20, également à 192 emplacements permet de stocker d'une façon analogue des instants de fin d'une suite d'échantillons. Les données sont écrites/lues dans cette mémoire par les signaux W_ECH_FIN/R_ECH_FIN. Le circuit de détermination comporte également deux mémoires M21 et M22, à 192 emplacements dans lesquelles peuvent être stockées des valeurs de "boucle", plus précisément des valeurs temporelles représentant un instant de début de boucle et un instant de fin de boucle, le terme boucle devant être compris ici comme étant une répétition cyclique d'une même suite d'échantillons par une ou plusieurs cellules. Les mémoires M21 et M22 peuvent être écrites et lues sous la commande respective des signaux W_ECH_B1/R_ECH_B1 et W_ECH_B2/R_ECH_B2. Les données proviennent chaque fois du CPU.Another M20 memory, also at 192 locations, allows you to store analogously the instants of the end of a series of samples. The data is written / read in this memory by the signals W_ECH_FIN / R_ECH_FIN. The circuit of determination also includes two memories M21 and M22, at 192 locations in which "loop" values can be stored, more precisely time values representing a loop start time and an end time loop, the term loop to be understood here as a cyclic repetition of the same series of samples by one or more cells. Memories M21 and M22 can be written and read under the respective signal control W_ECH_B1 / R_ECH_B1 and W_ECH_B2 / R_ECH_B2. The data comes each times of the CPU.
Chaque mémoire M19 à M21 est associée à un comparateur, respectivement
182 à 185 dont chaque fois l'entrée A est reliée à la sortie de données de la mémoire
associée et dont l'entrée B reçoit la valeur courante de POS_X. Les comparateurs 182 et
184 fournissent un signal de validation lorsque leur entrée B est inférieure ou égale à leur
entrée A et les comparateurs 183 et 185 fournissent un tel signal lorsque l'entrée B est
supérieure ou égale à l'entrée A.Each memory M19 to M21 is associated with a comparator, respectively
182 to 185, each time input A is connected to the data output of the memory
associated and whose entry B receives the current value of POS_X.
Les sorties des comparateurs 182 à 185 sont raccordées respectivement à des
logiques d'activation 186 à 190 recevant chacun plusieurs signaux qui y sont combinés
logiquement pour assurer le cas échéant l'activation de tampons de sortie 192 à 195
dont les sorties peuvent fournir sélectivement la valeur lNlT_X qui est une valeur
particulière d'initialisation à partir de laquelle POS_X est ensuite incrémentée par les
valeurs de désignation calculées dans le circuit de calcul 30.The outputs of
Les logiques d'activation 186 à 191 reçoivent également les signaux de mode
MOD_CCY, MOD_DCY et MOD_ALT qui sont contenues dans les données de sortie de
la mémoire M12 de la figure 13.The
Un autre tampon de sortie 196 permet de fixer la valeur lNlT_X à zéro lorsque
l'un au l'autre des signaux SC_ECH ou SC_ETR sont inactifs, à travers un inverseur 197.Another
Le circuit de détermination des bornes 180 comprend également une mémoire
de signe M23 à 192 emplacements dans laquelle peut être inscrit le signe déterminant le
sens de progression de la valeur POS_X. Cette mémoire M23 est adressée par le signal
AC et reçoit le bit de signe à mémoriser pour les cellules d'un multiplexeur 198. Celui-ci
reçoit comme signal de sélection le signal C_lNlT du comparateur 50 de la figure 8. Ce
signal passe le signe approprié vers la sortie du multiplexeur lorsque le signal C_lNlT est
actif. Sinon le signal de signe provient d'une porte logique 199 qui combine logiquement
la sortie de la mémoire M23 avec le signal de mode MOD_ALT. Lorsque ce dernier est
actif (0'), le signe change à chaque écriture dans la mémoire M23.The
Un autre multiplexeur 200 est commandé par ce même signal de mode
MOD_ALT pour établir sélectivement le signal SGN utilisé dans le bloc 34 du circuit de
calcul 30 de la figure 7. L'entrée A de ce multiplexeur reçoit un signal T_DIR et l'entrée B
le signal de mode MOD_DCY.Another
On notera encore que les tampons 194 et 195 sont rendus actifs par
l'intermédiaire de portes ET respectives 201 et 202 et que l'écriture dans la mémoire M23
est commandée par l'intermédiaire d'une logique 203.It will also be noted that the
Le tampon 192 fixe la borne au point ou à l'instant de début E_DEB de la suite
d'échantillons, lorsque POS_X atteint l'adresse de début E_DEB ou moins sur le
comparateur 182 dans le cas d'un mode non cyclique (MOD_CCY=1) décroissant
(MOD_DCY=0), la sélection étant effectuée par la porte 186. The
Le tampon 193 fixe la borne au point de fin E_FIN de la suite d'échantillons,
lorsque POS_X atteint l'adresse de fin E_FIN ou plus sur le comparateur 183 dans le cas
d'un mode non cyclique(MOD_CCY=1) croissant (MOD_DCY=1), la sélection étant faite
par la porte 187.The
Le tampon 194 fixe la borne au point de boucle-1 E_B1 d'une suite d'échantillons
en boucle, lorsque la valeur POS_X atteint l'adresse boucle-2 E_B2 ou plus sur le
comparateur 185 dans le cas d'un mode cyclique (MOD_CCY=0), croissant
(MOD_CCY=1) et non alternatif (MOD_ALT=1), la sélection étant effectuée par les
portes 191 et 201. Cette mise à valeur s'applique aussi dans le cas d'un mode cyclique
(MOD_CCY=0) alternatif (MOD_ALT=0), mais en décrémentation (T_DIR=0), lorsque la
valeur POS_X atteint l'adresse boucle-1 E_B1 ou moins sur le comparateur 184, la
sélection étant effectuée par les portes 188 et 201. En mode alternatif, la valeur de
T_DIR sera mise à 0 par la porte 203, lors de la fixation de la borne E_B1 pour mettre la
progression en décrémentation.Buffer 194 fixes the terminal at loop point-1 E_B1 of a series of samples
in a loop, when the value POS_X reaches the address loop-2 E_B2 or more on the
Le tampon 195 fixe la borne au point de boucle-2 E-B2 de la suite d'échantillons,
lorsque la valeur POS_X atteint l'adresse boucle-1 E_B1 ou moins sur le comparateur
184 dans le cas d'un mode cyclique (MOD_CCY=0), décroissant (MOD_DCY=0) et non
alternatif (MOD_ALT=1), la sélection étant effectuée par les portes 189 et 202. Cette
mise à valeur s'applique aussi dans le cas d'un mode cyclique (MOD_CCY=0), alternatif
(MOD_ALT=0) et en incrémentation (T_DIR=1), lorsque la valeur POS_X atteint l'adresse
boucle-2 E_B2 ou plus sur le comparateur 185, la sélection étant effectuée par les portes
190 et 202.Buffer 195 fixes the terminal at loop point-2 E-B2 of the series of samples,
when the value POS_X reaches the loop-1 address E_B1 or less on the
La fixation des bornes s'effectue par le signal lNlT_X acheminé au multiplexeur
35 de la figure 7, qui réinitialise la valeur POS_X par la commande CD_lNlT issue de la
porte 208.The terminals are fixed by the lNlT_X signal sent to the
Comme représenté sur la figure 21, le signal lNlT_X peut également être produit
sélectivement par la sortie de deux tampons 204 et 205 qui reçoivent respectivement les
signaux E_DEB et E_FIN des mémoires M19 et M20. Ces tampons sont activés par la
combinaison logique appropriée des signaux C_lNlT (mise en phase), le signal de mode
MOD_DCY et le signal de sortie de la porte OU 181, cette combinaison logique étant
assurée par des portes OU 206 et 207.As shown in Figure 21, the signal lNlT_X can also be produced
selectively by the output of two
Le tampon 204 fixe la valeur (ou position) initiale de POS_X sur l'activation de
C_lNlT et des signaux de mode SC_ECH/SC_ETR. Lorsque MOD_DCY=1 (croissant), le
point de début E_DEB constitue la valeur d'initialisation transmise à lNlT_X, si
MOD_DCY=0 (décroissant) et le point de fin E_FIN constitue la valeur initiale transmise à
lNlT_X. Ce dernier signal est alors sélectionné sur le multiplexeur 35 de la figure 7 pour
initialiser la valeur POS_X.The
On notera encore que le signal C_lNlT passe par une porte ET 208 que l'on
aperçoit en haut sur la figure 20. Cette porte fournit le signal CD_lNlT.It will also be noted that the signal C_lNlT passes through an AND
On va maintenant décrire le fonctionnement de ce circuit de détermination des bornes temporelles.We will now describe the operation of this circuit for determining the time limits.
Lorsque une cellule est mise en phase, au début d'une nouvelle note à jouer par
exemple, la valeur POS_X doit être mise à sa valeur initiale par l'intermédiaire du
multiplexeur 35 du circuit de calcul 30 de la figure 7.When a cell is phased, at the start of a new note to be played by
example, the value POS_X must be set to its initial value via the
Lorsque l'unité SYNT est placée dans l'un des modes commandés
respectivement par les signaux SC_SIN, SC_CAR, SC_TRI, SC_RMP ou SC_RMN, la
valeur initiale lNlT_X de POS_X est égale à zéro. Cette valeur passe par le tampon 196
qui est activée en l'absence de l'un ou l'autre des signaux SC_ECH ou SC_ETR.When the SYNT unit is placed in one of the controlled modes
respectively by the signals SC_SIN, SC_CAR, SC_TRI, SC_RMP or SC_RMN, the
initial value lNlT_X of POS_X is equal to zero. This value goes through
Par contre, lorsque l'un ou l'autre mode SC_ECH ou SC_ETR est commandé, la valeur lNlT_X est déterminée par un instant de départ d'une cellule donnée sur l'axe des temps. La valeur temporelle correspondante est la valeur E_DEB stockée pour la cellule considérée dans la mémoire M19, si l'incrément de la valeur POS_X doit être positif (signal MOD_DCY=1). Dans le cas où cet incrément est négatif (signal MOD_DCY=0), la valeur initiale est la valeur E_FIN stockée dans la mémoire M20 pour la cellule considérée.On the other hand, when one or the other mode SC_ECH or SC_ETR is ordered, the lNlT_X value is determined by a starting instant of a given cell on the axis of time. The corresponding time value is the E_DEB value stored for the cell considered in memory M19, if the increment of the value POS_X must be positive (MOD_DCY signal = 1). In the case where this increment is negative (signal MOD_DCY = 0), the initial value is the E_END value stored in memory M20 for the cell considered.
Pour chaque cellule, une suite d'échantillons de premier niveau peut être délimitée dans le temps par des bornes temporelles entre lesquelles la valeur POS_X peut évoluer, soit en s'incrémentant, soit en se décrémentant, soit encore en faisant une "boucle", ce qui revient à répéter un certain nombre de fois la même suite d'échantillons. Une telle répétition en boucle peut aussi se faire de plusieurs façons: "en avant", "en arrière" ou en alternance "en avant" et "en arrière".For each cell, a series of first level samples can be delimited in time by time limits between which the value POS_X can evolve, either by incrementing, or by decreasing, or even by making a "loop", which means repeating the same series of samples a number of times. Such a loop repetition can also be done in several ways: "forward", "in backward "or alternately" forward "and" backward ".
Bien entendu, les valeurs POS_X ainsi délimitées constituent chaque fois une adresse pour la mémoire M15 de la figure 17 qui stocke des valeurs d'échantillons à reproduire soit en temps réel (Mode ETR), soit à partir d'échantillons qui y ont été stockées auparavant (Mode ECH).Of course, the POS_X values thus delimited each time constitute a address for the memory M15 of FIG. 17 which stores sample values at reproduce either in real time (ETR mode) or from samples that have been there previously stored (ECH Mode).
On va maintenant examiner plusieurs cas qui peuvent se produire pour chaque cellule ou pour certaines d'entre elles seulement pendant la production des échantillons de premier niveau dans les modes de fonctionnement que l'on vient d'évoquer. We will now examine several cases that may occur for each cell or some of them only during sample production first level in the operating modes that we have just mentioned.
Dans ce cas, au début (c'est-à-dire à la mise en phase), la mémoire M15
d'échantillons est adressée avec la valeur E_DEB. Puis, l'adresse augmente
progressivement avec l'incrémentation de la valeur POS_X calculée dans le circuit de
calcul 30 en fonction des valeurs de fréquence FRE et ENS_FRE qui sont imposées à ce
circuit de calcul, et ce d'une façon analogue à celle déjà décrite à propos des
générateurs de forme d'onde de la figure 14.In this case, at the start (i.e. at phasing), the memory M15
of samples is addressed with the value E_DEB. Then the address increases
gradually with the increment of the value POS_X calculated in the circuit of
Lorsqu'ensuite la valeur POS_X atteint ou dépasse la valeur E_FIN stockée dans la mémoire M20, elle n'augmentera plus et restera à cette valeur jusqu'à ce qu'une nouvelle mise en phase soit demandée (nouvelle note).When the value POS_X reaches or exceeds the value E_FIN stored in M20 memory, it will not increase any more and will remain at this value until a a new phasing is requested (new note).
Le processus est alors le suivant:The process is as follows:
MOD_CCY=1, ce qui signifie que la suite d'échantillons de premier niveau est non cyclique et MOD_DCY=1, ce qui signifie que les incréments de POS_X sont positifs.MOD_CCY = 1, which means that the sequence of first level samples is non cyclic and MOD_DCY = 1, which means that the increments of POS_X are positive.
Pendant que POS_X<E_FIN, POS_X s'incrémente de la valeur imposée, aucune commande n'étant assurée par les signaux lNlT_X ou CD_lNlT.While POS_X <END_, POS_X increases by the imposed value, none control not being ensured by the signals lNlT_X or CD_lNlT.
Lorsque POS_X>=E_FIN, POS_X sera maintenue à la valeur de E_FIN en fixant
les valeurs des signaux lNlT_X et CD_lNlT. Pour cela, la sortie du bloc logique 187 doit
être à '0'; par conséquent, la sortie de la porte 181 doit être à '0' (SC_ECH ou
SC_ETR=0), la sortie du comparateur 183 doit être à '1' (comparaison vraie qui est
inversée à l'entrée du bloc logique 187) et Non[MOD_CCY et MOD_DCY]=0.When POS_X> = E_END, POS_X will be maintained at the value of E_END by fixing
the values of the signals lNlT_X and CD_lNlT. For this, the output of
Le tampon 193 est activé par l'état du bloc logique 187 et transmet E_FIN sur le
bus qui transmet lNlT_X vers le circuit de calcul 30. CD_lNlT active l'initialisation par l'état
de la porte 208 dont la sortie est à '0' par l'intermédiaire de la sortie du bloc logique 187.
A la mise en phase, la mémoire M15 est adressée par la valeur E_FIN. POS_X
décrémente progressivement à partir de cette valeur en fonction de la fréquence, par
décréments calculés dans le circuit de calcul 30 et lorsque POS_X<=E_DEB, sa valeur
ne décrémentera plus et conservera la valeur E_DEB jusqu'à ce que une nouvelle mise
en phase soit demandée (nouvelle note). On phasing, the memory M15 is addressed by the value E_END. POS_X
gradually decreases from this value as a function of frequency, by
decrements calculated in the
Pour cela: MOD_CCY=1 (non cyclique) et MOD_DCY=0 (progression de POS_X par décréments).For that: MOD_CCY = 1 (not cyclic) and MOD_DCY = 0 (progression of POS_X by decrements).
Les mémoires M20 et M19 contiennent respectivement les valeurs E_FIN et
E_DEB. Le comparateur 182 compare E_DEB avec la valeur courante de POS_X, le
bloc logique 186 commande l'initialisation de POS_X et le tampon 192 transmet la valeur
E_DEB au bus transmettant lNlT_X vers le circuit de calcul 30.The memories M20 and M19 respectively contain the values E_END and
E_DEB.
Ainsi, lorsque POS_X>E_FIN, POS_X décrémente progressivement en fonction de la fréquence, aucune commande n'est assurée par INIT_X ou CD_INIT.Thus, when POS_X> E_END, POS_X decrements progressively as a function of the frequency, no command is ensured by INIT_X or CD_INIT.
Lorsque POS_X<=E_FIN, POS_X sera mis à la valeur E_DEB par la commande assurée par lNlT_X et CD_INIT.When POS_X <= E_END, POS_X will be set to E_DEB by the command provided by lNlT_X and CD_INIT.
La sortie du bloc logique 186 doit être à '0'. Pour cela, la sortie de la porte 181 est
à '0' (SC_ECH=0 ou SC_ETR=0), la sortie du comparateur 182 est à '1' (comparaison
vraie qui est inversée à l'entrée du bloc logique 186) et Non[MOD_CCY et
NON(MOD_DCY)]=0. Alors, le tampon 192 est activé par l'état du bloc 186 et transmet la
valeur E_DEB sur le bus de lNlT_X vers le circuit de calcul 30. CD_lNlT actionne
l'initialisation par l'état de la porte 208 dont la sortie vaut'0' par suite de l'état logique du
bloc 186.The output of
Au départ, la mémoire M15 est adressée par la valeur de E_DEB qui
s'incrémente progressivement comme dans le cas 1, mais cette fois, lorsque la valeur
POS_X atteint ou dépasse la valeur E_B2 stockée dans la mémoire M22, elle sera mise
à la valeur E_B1, la valeur POS_X s'incrémente de nouveau jusqu'à la valeur E_B2,
ainsi de suite.At the start, the memory M15 is addressed by the value of E_DEB which
increments gradually as in
Dans ce mode de fonctionnement: MOD_CCY=0 (Cyclique), MOD_DCY=1 (incrémentation) et MOD_ALT=1 (non alternatif, la boucle est parcourue toujours dans le même sens).In this operating mode: MOD_CCY = 0 (Cyclic), MOD_DCY = 1 (incrementation) and MOD_ALT = 1 (not alternative, the loop is traversed always in the Same direction).
Les mémoires M19 à M22 contiennent respectivement les valeurs E_DEB,
E_FIN, E_B1 et E_B2. Le comparateur 185 compare la valeur E_B2 à la valeur courante
de POS_X. Le bloc logique et la porte ET 201 commandent l'initialisation de POS_X et le
tampon 194 transmet la valeur E_B1 sur le bus qui transmet INIT_X vers le circuit de
calcul 30. The memories M19 to M22 respectively contain the values E_DEB,
E_END, E_B1 and E_B2.
Ainsi, lorsque POS_X<E_B2, POS_X s'incrémente en fonction des valeurs de
fréquence FRE et ENS_FRE par le circuit de calcul 30, les signaux INIT_X et CD_INIT
n'ayant aucun effetThus, when POS_X <E_B2, POS_X is incremented according to the values of
frequency FRE and ENS_FRE by the
Lorsque POS_X>=E_B2, POS_X sera mis à la valeur E_B1 sous la commande
des signaux INIT_X et CD_lNlT. Pour cela, la sortie du bloc logique doit être à '0', ce qui
fait que la sortie de la porte OU doit être à '0' (SC_ECH=0 ou SC_ETR=0), la sortie du
comparateur doit être à '1' (comparaison vraie avec inversion à l'entrée du bloc logique
191) et [MOD_CCY ou Non(MOD_DCY) ou Non(MOD_ALT)]=0. La sortie de la porte 201
est à '0', si les sorties du bloc 188 ou la sortie du bloc 191 sont à '0'.When POS_X> = E_B2, POS_X will be set to the value E_B1 under the command
INIT_X and CD_lNlT signals. For this, the output of the logic block must be at '0', which
fact that the output of the OR gate must be at '0' (SC_ECH = 0 or SC_ETR = 0), the output of the
comparator must be at '1' (true comparison with inversion at the input of the logic block
191) and [MOD_CCY or No (MOD_DCY) or No (MOD_ALT)] = 0. Exit from
Le tampon 194 est alors activé par l'état de la porte ET 201 et transmet la valeur
E_B1 sur le bus sur lequel passe lNlT_X. L'initialisation est activée par l'état de la porte
208 dont la sortie sera à '0' par l'état de la porte 201. Ainsi POS_X est de nouveau
initialisé à la valeur E_B1, ce qui remplit la condition POS_X<E_B2 et le cycle
recommence.The
A la mise en phase, la valeur E_FIN adresse la mémoire M15 et cette valeur décrémente progressivement en fonction de la fréquence (signaux FRE et ENS_FRE). Lorsque POS_X<=E_B1, sa valeur sera mise à E_B2, puis POS_X continuera à se décrémenter jusqu'à E_B1 et ainsi de suite.On phasing, the value E_END ends the memory M15 and this value gradually decreases as a function of frequency (signals FRE and ENS_FRE). When POS_X <= E_B1, its value will be set to E_B2, then POS_X will continue to decrement to E_B1 and so on.
Les mémoires M19, M20, M21 et M22 contiennent respectivement les valeurs
E_DEB, E_FIN, E_B1 et E_B2. Le comparateur 184 compare E_B1 à la valeur courante
de POS_X; le bloc logique 189, ainsi que la porte ET 202 commandent l'initialisation de
POS_X et le tampon 195 transmet la valeur E_B2 sur le bus sur lequel transite INIT_X
vers le circuit de calcul 30.The memories M19, M20, M21 and M22 respectively contain the values
E_DEB, E_FIN, E_B1 and E_B2.
Lorsque POS_X>E_B1, POS_X se décrémente progressivement en fonction de la fréquence et il n'y a pas de commande assurée par les signaux INIT_X et CD_lNlT.When POS_X> E_B1, POS_X decreases progressively as a function of the frequency and there is no control ensured by the signals INIT_X and CD_lNlT.
Lorsque POS_X <=E_B1, POS_X sera mis à la valeur de E_B2 sous la
commande de ces deux signaux. Pour cela, la sortie du bloc logique 189 doit être à '0'.
Par conséquent, la sortie de la porte ET 181 doit être à 0 (SC_ECH=0 ou SC_ETR=0), la
sortie du comparateur 184 doit être égale à '1' (comparaison vraie, inversée à l'entrée du
bloc logique 189) et [MOD_CCY ou MOD_DCY ou non(MOD_ALT)]=0. La sortie de la
porte ET 202 sera égale à '0', si les sorties du bloc 189 ou du bloc 190 sont égales à '0'.
Le tampon 195 est alors activé par l'état de la porte ET 202 et la valeur E_B2 est
transmise vers le circuit de calcul 30 via le bus de transfert de lNlT_X. CD_lNlT active la
porte ET 208 dont la sortie sera à '0' par la sortie de la porte ET 202. POS_X est initialisé
à E_B2 ce qui rétablit la condition POS_X>E_Bi.When POS_X <= E_B1, POS_X will be set to the value of E_B2 under the
control of these two signals. For this, the output of
La mémoire M15 est adressée au départ par la valeur E_DEB qui s'incrémente progressivement en fonction des signaux FRE et ENS_FRE, puis lorsque POS_X>=E_B2 (premier instant limite de la boucle), sa valeur sera mise à E_B2 (second instant limite de la boucle) et la valeur se décrémentera progressivement jusqu'à ce qu'elle atteigne de nouveau la valeur E_B1. Ensuite, lorsqu'elle aura atteint E_B1, sa valeur sera mise à E_B1 et la valeur POS_X s'incrémentera jusqu'à atteindre E_B2 et ainsi de suite.The memory M15 is addressed at the start by the value E_DEB which is incremented gradually as a function of the signals FRE and ENS_FRE, then when POS_X> = E_B2 (first instant limit of the loop), its value will be set to E_B2 (second loop limit time) and the value will gradually decrease until that it again reaches the value E_B1. Then, when it reaches E_B1, its value will be set to E_B1 and the POS_X value will be incremented until reaching E_B2 and and so on.
Pour cela MOD_CCY=0 (cyclique), MOD_DCY=1 (progression par incréments
lors de la mise en phase), MOD_ALT=0 (alternance de sens de progression) et T_DIR=1
(mise à MOD_DCY par l'intermédiaire du multiplexeur 198 et la sélection effectuée par le
signal C_lNlT).For this MOD_CCY = 0 (cyclic), MOD_DCY = 1 (progression in increments
during phasing), MOD_ALT = 0 (alternating direction of progression) and T_DIR = 1
(set to MOD_DCY via
Les mémoires M19 à M22 contiennent respectivement les valeurs E_DEB,
E_FIN, E_B1 et E_B2. Les comparateurs 184 et 185 comparent respectivement les
valeurs E_B1 et E_B2 avec la valeur courante de POS_X. Le bloc logique 190 et la porte
202 commandent l'initialisation de POS_X avec un sens d'incrémentation déterminé par
T_DIR, tandis que le bloc logique 188 et la porte ET 201 commandent l'initialisation de
POS_X avec un sens de décrémentation déterminé par T_DIR=1.The memories M19 to M22 respectively contain the values E_DEB,
E_END, E_B1 and E_B2.
Le bloc logique 203 et le multiplexeur 198 commandent le sens
d'incrémentation/décrémentation par l'intermédiaire du signal T_DIR.
Le tampon 194 fait passer la valeur E_B1 sur le bus de transfert lNlT_X grâce à
la commande d'initialisation (fin des incréments) et le tampon 195 transmet la valeur
E_B2 sur ce même bus pour l'initialisation de fin de décrémentation.The
Dans ces conditions, lorsque T_DIR=1, la valeur POS_X s'incrémente, car POS_X<E_B2. Il n'y a pas de commande d'initialisation par lNlT_X ou CD_INIT.Under these conditions, when T_DIR = 1, the value POS_X is incremented, because POS_X <E_B2. There is no initialization command by lNlT_X or CD_INIT.
Lorsque T_DIR=1, il faut pour initialiser que POS_X>=E_B2. POS_X sera mise à
la valeur E_B2 par commande de lNlT_X et CD_lNlT. La sortie du bloc logique 190 est à
'0', car la sortie de la porte ET 181 est à '0' (SC-ECH=0 ou SC_ETR=0), la sortie du
comparateur 185 est à '1' (comparaison vraie inversée en entrée du bloc logique 190),
[MOD_CCY ou non(T_DIR) ou MOD_ALT]=0. La sortie de la porte ET 202 est à '0', si la
sortie du bloc logique 189 ou le bloc logique 190 est à '0'. Le tampon 195 est activé par
la sortie à '0' de la porte ET 202 et transmet ainsi la valeur E_B2 sur le bus de transfert
de lNlT_X vers le circuit de calcul 30.When T_DIR = 1, it is necessary to initialize that POS_X> = E_B2. POS_X will be updated
the value E_B2 by command of lNlT_X and CD_lNlT. The output of
Le signal C_lNlT activera l'initialisation par l'état de la porte ET 208. La sortie de
celle-ci (C_lNlT) est donc à '0' par la sortie de la porte ET 202.The signal C_lNlT will activate the initialization by the state of the AND
Le bloc logique 203 est activé par la sortie du bloc logique 190 et la période P1
forcera une inversion du bit de sens T_DIR sur la mémoire M23, ce qui active le mode de
décrémentation (T_DIR=0: décrémentation).
Ensuite, lorsque T_DIR=0, la valeur POS_X se décrémente, car POS_X>E_B1. Il n'y a pas de commande d'initialisation par INIT_X ou CD_INIT.Then, when T_DIR = 0, the value POS_X decrements, because POS_X> E_B1. he there is no initialization command by INIT_X or CD_INIT.
Lorsque T_DIR=0, il faut pour initialiser que POS_X<=E_B1. POS_X sera mise à
la valeur E_B1 par commande de lNlT_X et CD_lNlT. La sortie du bloc logique 188 est à
'0', car la sortie de la porte ET 181 est à '0' (SC-ECH=0 ou SC_ETR=0), la sortie du
comparateur 184 est à '1' (comparaison vraie inversée en entrée du bloc logique 188),
[MOD_CCY ou (T_DIR) ou MOD_ALT]=0. La sortie de la porte ET 201 est à '0', si la
sortie du bloc logique 188 ou le bloc logique 191 est à '0'. Le tampon 194 est activé par
la sortie à '0' de la porte ET 201 et transmet ainsi la valeur E_B1 sur le bus de transfert
de lNlT_X vers le circuit de calcul 30.When T_DIR = 0, it is necessary to initialize that POS_X <= E_B1. POS_X will be updated
the value E_B1 by command of lNlT_X and CD_lNlT. The output of
Le signal C_lNlT activera l'initialisation par l'état de la porte ET 208. La sortie de
celle-ci (CD_lNlT) est donc à '0' par la sortie de la porte ET 201.The signal C_lNlT will activate the initialization by the state of the AND
Le bloc logique 203 est activé par la sortie du bloc logique 188 et la période P1
forcera une inversion du bit de sens T_DIR sur la mémoire M23, ce qui active le mode
d'incrémentation (T_DIR=1: incrémentation).
On va maintenant décrire un premier exemple de fonctionnement du dispositif de synthèse sonore.We will now describe a first example of operation of the sound synthesis.
On suppose que dans ce cas, le dispositif de synthèse doit engendrer un son de forme sinusoïdale à une fréquence de 440 Hz avec une valeur d'amplitude que l'on fixera arbitrairement à 100 (valeur donnant après la sortie S un volume sonore donné).It is assumed that in this case, the synthesis device must generate a sound of sinusoidal shape at a frequency of 440 Hz with an amplitude value that will be set arbitrarily at 100 (value giving after the output S a given sound volume).
On admettra par ailleurs que le nombre n de cellules est de 192, le nombre m
d'ensembles est de 16 (il était de 64 dans l'exemple décrit ci-dessus) et le nombre q de
sorties également de 16. La courbe sinusoïdale dans la table 81 (figure 15) est définie
moyennant 1024 échantillons. L'horloge de base 2 de la figure 2 est à 67,737 MHz et la
fréquence d'échantillonnage est de 44 100 Hz (signal ACT), soit 67 737/8(compteur 3
figure 2)/192.We will also admit that the number n of cells is 192, the number m
of sets is 16 (it was 64 in the example described above) and the number q of
also exits from 16. The sinusoidal curve in table 81 (figure 15) is defined
with 1024 samples. The
L'unité SYNT est initialisée par l'unité CPU par l'intermédiaire de l'interface I. A cet effet, le CPU inscrit dans plusieurs mémoires des données appropriées pour l'exemple considéré.The SYNT unit is initialized by the CPU unit via the interface I. At this Indeed, the CPU writes in several memories data suitable for the example considered.
Tout d'abord le CPU met en place la structure de l'unité SYNT nécessaire pour la production sonore envisagée. ainsi:
Ensemble 0; les contenus des cellules 0 à 191 sont acheminés sur l'ensemble 0. Pour cela, la valeur '0' est inscrite par le signal AC aux adresses 0 à 191 de la mémoire M9 (figure 8) sous la commande du signal d'écriture W_ENS_CEL. A noter que les cellules 1 à 191 seront inactives mais restent associées à l'ensemble 0.
-
Set 0; the contents ofcells 0 to 191 are routed onset 0. For this, the value '0' is written by the signal AC ataddresses 0 to 191 of memory M9 (Figure 8) under the control of the write signal W_ENS_CEL. Note thatcells 1 to 191 will be inactive but remain associated with theset 0.
Pour que le circuit d'acheminement des cellules sur l'ensemble (figure 8) complète l'addition des cellules sur l'ensemble 0 (dans l'exemple, seule la cellule 0 est active), pour un système à 16 ensembles, la valeur hexadécimale '10' doit être inscrite à l'adresse '0' de la mémoire M9 par le signal W_ENS_CEL. Cela fixe la cellule 0 comme la dernière cellule à additionner dans l'ensemble (bit C_ENS=1, soit le 5ième bit de la valeur correspondante), et alloue l'accumulation de la valeur sur l'additionneur U10 (bit C_SEL actif=0, soit le quatrième bit de la valeur correspondante).
- Volume ensembles; tous les ensembles sont mis sur la valeur d'amplitude '0'. Pour cela, la valeur '0' est inscrite aux adresses 0 à 16 de la mémoire M8 (figure 8) à l'aide du signal d'écriture W_ENS_AMP.
Sortie 0; le contenu de l'ensemble 0 doit être acheminé sur lasortie 0. Pour cela, la mémoire 11 (figure 11) reçoit une valeur binaire '1' à l'adresse '0' sous la commande du signal d'écriture W_SORTIE, de sorte que la bascule 63-0 sera activée par la valeur '1'du bit 0 appliquée à la porte 62-0 et ce, pendant l'impulsion active de la sous-période P4.
- Volume sets; all sets are set to the amplitude value '0'. For this, the value '0' is written to
addresses 0 to 16 of memory M8 (Figure 8) using the write signal W_ENS_AMP. -
Output 0; the content ofset 0 must be routed tooutput 0. For this, memory 11 (figure 11) receives a binary value '1' at address '0' under the command of the write signal W _ OUTPUT , so that flip-flop 63-0 will be activated by the value '1' ofbit 0 applied to gate 62-0 and this, during the active pulse of the sub-period P4.
Ensuite, le CPU va déterminer les paramètres qui seront en vigueur pendant la production sonore de la façon suivante.Then the CPU will determine the parameters that will be in effect during the sound production as follows.
Les valeurs d'amplitude sont toutes fixées à zéro. Pour cela, la valeur '0' est
inscrite aux adresses 0 à 191 de la mémoire M1 du circuit 20A (figures 5 et 6) par le
signal d'écriture W_AMP_BAS. La valeur 'maximum' est inscrite dans la mémoire M2 de
ce même circuit 20A par le signal d'écriture W_AMP_INC afin de supprimer l'interpolation
sur les valeurs d'amplitude (modalité choisie ici à titre d'exemple). La valeur 'maximum'
est inscrite dans la mémoire M4 par le signal d'écriture W_AMP_CTR, car dans l'exemple
aucune commande d'amplitude à partir d'autres sources n'est effectuée. 'Maximum' est
la valeur maximale possible; sur 16 bits par exemple, elle est de 65535 (ou en
hexadécimal ØFFFF).The amplitude values are all set to zero. For this, the value '0' is
registered at
La valeur de base de la fréquence est fixée arbitrairement à '1000' (en entiers
base 10) pour toutes les cellules; cette valeur '1000' est donc inscrite à tous les
emplacements de la mémoire M1 du bloc 20B de la figure 6, à l'aide du signal d'écriture
W_FRE_BAS.The basic frequency value is arbitrarily set to '1000' (in integers
base 10) for all cells; this value '1000' is therefore entered in every
memory locations M1 of
La valeur 'maximum' est inscrite à tous les 192 emplacements de la mémoire M2
de ce bloc 20B pour désactiver l'interpolation, à l'aide du signal d'écriture W_INC_FRE.The 'maximum' value is written to all 192 locations in M2 memory
of this
La valeur 'maximum' est inscrite par le signal W_FRE_CTR dans la mémoire M4 à tous les emplacements, aucune commande de fréquence supplémentaire n'étant prévue dans cet exemple.The value 'maximum' is written by the signal W_FRE_CTR in the memory M4 at all locations, no additional frequency control being provided in this example.
La valeur 'maximum' est ici la valeur maximale possible, sur 24 bits par exemple, elle est de 16 777 215 (ou en hexadécimal ØFFFFFF)The 'maximum' value here is the maximum possible value, on 24 bits for example, it is 16,777,215 (or in hexadecimal ØFFFFFF)
La valeur de base de la phase est fixée à '0'; '0' est donc inscrit à tous les
emplacements 0 à 191 de la mémoire M1 du bloc 20C de la figure 6, à l'aide du signal
d'écriture W_PHA_BAS.The basic value of the phase is fixed at '0'; '0' is therefore entered in all
La valeur 'maximum' est inscrite à tous les emplacements de la mémoire M2 de
ce même bloc 20C afin de désactiver l'interpolation sur les valeurs de phase, à l'aide du
signal d'écriture W_PHA_INC.The value 'maximum' is written to all the locations of the M2 memory of
this
La valeur 'maximum' est inscrite à tous les emplacements de la mémoire M4 de
ce même bloc 20C, à l'aide du signal d'écriture V_PHA_CTR pour désactiver toute
commande supplémentaire sur le paramètre PHASE.The value 'maximum' is written to all locations in the M4 memory of
this
La valeur 'maximum' est ici la valeur maximale possible, sur 9 bits par exemple, elle est de 511 (ou en hexadécimal 1FF).The 'maximum' value here is the maximum possible value, on 9 bits for example, it is 511 (or in hexadecimal 1FF).
Tous les filtres sont rendus inactifs. La valeur 'maximum' est donc inscrite à tous
les emplacements de la mémoire M1 du bloc 20D de la figure 6, à l'aide du signal
d'écriture W_FLT_BAS. All filters are made inactive. The value 'maximum' is therefore written to all
the locations of the memory M1 of the
La même valeur est inscrite à tous les emplacements de la mémoire M2 du bloc
20D, à l'aide du signal d'écriture W_FLT_INC pour désactiver toute interpolation du
paramètre FLT.The same value is written to all the locations of the M2 memory of the
La valeur 'maximum' est également inscrite dans tous les emplacements de la mémoire M4 à l'aide du signal d'écriture W_FLT_CTR pour désactiver toute commande supplémentaire sur le paramètre FILTRAGE. 'Maximum' est ici la valeur maximale possible, sur 8 bits par exemple, elle est de 255 (ou en hexadécimal OFF).The value 'maximum' is also entered in all the locations of the memory M4 using the write signal W_FLT_CTR to deactivate any command additional on the FILTERING parameter. 'Maximum' here is the maximum value possible, on 8 bits for example, it is 255 (or in hexadecimal OFF).
Il convient ensuite de programmer l'oscillation sinusoïdale nécessaire pour engendrer le son souhaité.Then program the sinusoidal oscillation required to generate the desired sound.
Pour engendrer ce son sinusoïdal, l'unité SYNT doit être programmée pour que la table de sinus 81 de la figure 14 soit activée. On rappelle que cette table contient 1024 échantillons de niveau zéro dont les valeurs des points successifs reproduisent ensemble une forme d'onde en sinus.To generate this sinusoidal sound, the SYNT unit must be programmed so that the sine table 81 of figure 14 is activated. Remember that this table contains 1024 zero level samples whose values of successive points reproduce together a sine waveform.
Cette activation est programmée par l'unité CPU qui, pour ce qui concerne la
cellule '0', inscrit à l'emplacement '0' de la mémoire M12 (figure 13) et à l'aide du signal
d'écriture W_MOD, une valeur dont les trois bits de plus petit poids ont la valeur '000'. Il
en résulte que le décodeur 71 active le signal SC_SIN ce qui libère l'accès à la table 81
du circuit 72 générateur d'échantillons de premier niveau de la figure 14. La cellule 0 est
ainsi placée dans le mode approprié.This activation is programmed by the CPU unit which, as regards the
cell '0', entered in location '0' of memory M12 (figure 13) and using the signal
write W_MOD, a value whose three least significant bits have the value '000'. he
as a result that the
La table 81 doit être lue à un rythme qui correspond à un son de 440 Hz à la
sortie de l'unité SYNT. Comme déjà indiqué ci-dessus, dans ces conditions, il convient
d'utiliser un facteur de multiplication de 10,21678 dans l'unité arithmétique U4 du circuit
de calcul 30 de la figure 7. Cette valeur est inscrite à l'adresse '0' de la mémoire M10 de
la figure 8 à l'aide du signal d'écriture W_ENS_FRE. Puis, à l'adresse '0' de la mémoire
M1 du bloc 20B, on inscrit la valeur '1' en tant que valeur relative de base FRE de la
fréquence. La fréquence effective sera calculée par l'unité multiplicatrice U4 de la figure
7.Table 81 should be read at a rate that corresponds to 440 Hz sound at the
output from SYNT unit. As already indicated above, under these conditions, it is advisable
to use a multiplication factor of 10.21678 in the arithmetic unit U4 of the
Les cellules de l'ensemble 0 doivent être mises en phase, ce qui dans l'exemple
décrit, n'est nécessaire que pour la cellule '0'. La valeur '0' correspondant à l'ensemble 0
est inscrite dans le basculeur 44 du circuit 40 d'attribution de premier niveau de la figure
8 sous la commande du signal W_DEC.The cells of
Dans l'exemple décrit, on a admis arbitrairement que l'amplitude est fixée à la
valeur '100'. Le volume de l'ensemble 0 qui va comprendre la cellule '0' présente la
valeur maximale en inscrivant "maximum" à l'adresse '0' de la mémoire M8 sous la
commande du signal d'écriture W_ENS_AMP, par exemple la valeur 1023 sur 10 bits.
Puis la valeur '100' est inscrite dans la mémoire M1 du bloc 20A à l'adresse '0'
correspondant à la cellule '0' en tant que valeur de base du paramètre AMPLITUDE,
sous la commande du signal d'écriture W_AMP_BAS.In the example described, it was arbitrarily admitted that the amplitude is fixed at the
value '100'. The volume of
L'unité SYNT est alors initialisée pour produire le son souhaité.The SYNT unit is then initialized to produce the desired sound.
Pendant ce processus, les signaux correspondant aux sous-périodes P2_AMP, P2_FRE, P2_PHA et P2_FLT ne sont pas utilisés, car aucune modification de paramètre n'est prévue dans l'exemple décrit.During this process, the signals corresponding to the sub-periods P2_AMP, P2_FRE, P2_PHA and P2_FLT are not used, because no parameter modification is only provided in the example described.
Pendant cette initialisation (jusqu'à la mise en phase), le dispositif de synthèse
sonore procède déjà au premiers passages sur les cellules en commençant par la cellule
0.During this initialization (until phasing), the synthesis device
sound already carries out the first passages on the cells starting with the
Pendant l'impulsion active de la sous-période P1, un signe positif est assigné à la
direction de l'axe temporel; cela veut dire que la valeur de POS_X est croissante. Pour
cela, le bit de signe correspondant a été enregistré au préalable dans la mémoire M23,
les signaux MOD_DCY et MOD_ALT ayant été fixés à leur valeur binaire convenable par
l'intermédiaire de la mémoire M12 de la figure 13. Le bit de signe est appliqué au circuit
34 du circuit de calcul 30.During the active pulse of sub-period P1, a positive sign is assigned to the
direction of the time axis; this means that the value of POS_X is increasing. For
this, the corresponding sign bit has been recorded beforehand in the memory M23,
the MOD_DCY and MOD_ALT signals having been fixed at their suitable binary value by
via the memory M12 in FIG. 13. The sign bit is applied to the
Pendant l'impulsion active de la sous-période P3, les paramètres de la cellule 0
sont confirmées par les basculeurs 26 des blocs 20A à 20D pour ce qui concerne
l'amplitude, la fréquence, la phase et le filtrage conformément à ce que le CPU a
programmé auparavant. L'ensemble 0 reçoit l'affectation de la cellule '0' (figure 8) par
l'intermédiaire de la mémoire M7. Pendant cette opération, la valeur précédente de la
cellule 0 est placée sur l'ensemble 0. Bien entendu, dans l'exemple décrit cette valeur
précédente est égale à zéro.During the active pulse of sub-period P3, the parameters of
Ensuite, pendant l'impulsion active de la sous-période P4, les paramètres de la
cellule 0 sont fixés à leur valeur mémorisée auparavant, la valeur de désignation POS_X
est accumulée dans la mémoire d'accumulateur M5 (valeur indéterminée), l'amplitude de
la cellule 0 est calculée (valeur zéro), la cellule '0' est affectée à l'ensemble 0 avec la
valeur d'amplitude zéro pour cette ensemble en tant que valeur de second niveau
(mémoire M7 de la figure 8) et la valeur zéro est également placée dans la bascule 63-0
de la figure 11 en tant que valeur de troisième niveau.Then, during the active pulse of the P4 subperiod, the parameters of the
L'impulsion active de la sous-période PCPU achève cette période P1 pour permettre au CPU d'inscrire au besoin d'autres valeurs dans l'unité SYNT. The active pulse of the PCPU subperiod ends this period P1 for allow the CPU to enter other values in the SYNT unit if necessary.
Puis, des périodes P1 se déroulent successivement pour toutes les cellules, aucune opération effective n'étant cependant effectuée dans l'exemple examiné ici.Then, periods P1 take place successively for all the cells, however, no effective operation was carried out in the example examined here.
Un premier cycle P est alors achevé.A first cycle P is then completed.
Il se déroule pendant le cycle P suivant du signal ACT (figure 4). La mise en
phase s'effectue pendant l'impulsion active de la première période P1 qui se présente,
dans les blocs 44 à 50 du circuit d'attribution de premier niveau 40. Comme la valeur de
phase est égale à zéro, la valeur POS_X est initialisée pendant l'impulsion active de la
sous-période P3 suivante, à l'aide de la valeur présente dans le circuit de calcul 30.It takes place during the next P cycle of the ACT signal (Figure 4). Setting
phase takes place during the active pulse of the first period P1 which occurs,
in
Durant l'impulsion active de la sous-période P3, les quatre valeurs de paramètre
de la cellule 0 sont initialisées en conformité avec les données inscrites par le CPU. Le
circuit de calcul 30 prend la valeur de phase et calcule la valeur POS_X=0 qui est
confirmée dans le basculeur 36, la cellule 0 est de nouveau affectée à l'ensemble 0 par
l'intermédiaire de la mémoire M9 du circuit d'attribution 40. La valeur de l'échantillon de
premier niveau courant est ajoutée à celle de la période P1 précédente (elle est toujours
égale à zéro).During the active pulse of sub-period P3, the four parameter values
of
Pendant l'impulsion active de la sous-période P4, les quatre paramètres de la
cellule 0 sont conformés à leur valeur courante. La valeur "cumulée" (encore zéro) de
POS_X est stockée dans la mémoire M5. La valeur de l'amplitude de la cellule est établie
d'une part par la recherche de la valeur de sinus à l'adresse 0 de la table 81, cette
adresse étant formée par les bits les moins significatifs du signal POS_X, et d'autre part
par la multiplication de cette valeur de sinus par la valeur d'amplitude (100)
précédemment inscrite dans l'unité arithmétique U12 de la figure 13.During the active pulse of the P4 subperiod, the four parameters of the
Bien entendu, la valeur de point provenant de la table 81 (valeur d'échantillon de
niveau zéro) était le signal CCYC et a passé le circuit de filtrage 160 de la figure 19 qui
est inactif dans l'exemple étudié ici. Le signal ACC_CEL qui est l'échantillon de premier
niveau ainsi formé pour la cellule 0, est attribué à l'ensemble 0 par le stockage dans la
mémoire M7 du circuit d'attribution de premier niveau 40. Comme la valeur 100 était
précédemment inscrite, la valeur d'amplitude de cet échantillon de premier niveau sera
donc égal à 100 également.Of course, the point value from table 81 (sample value of
level zero) was the CCYC signal and passed the
L'unité arithmétique U10 (figure 8) additionne les valeurs des cellules d'un même
ensemble et il est remis à zéro au début de chaque passage (après traitement pour la
dernière cellule d'un ensemble donné). Comme une seule cellule est utilisée dans
l'exemple, la valeur d'échantillon de premier niveau correspondant est égale à la valeur
d'échantillon de second niveau (sortie de la bascule 42 vers l'unité U9), c'est-à-dire à
l'amplitude de l'ensemble fixée précédemment au maximum et calculée dans cette unité
9.The arithmetic unit U10 (figure 8) adds the values of the cells of the same
together and it is reset at the start of each pass (after processing for
last cell of a given set). Since only one cell is used in
example, the corresponding first level sample value is equal to the value
second level sample (output from flip-
De même, la valeur de l'ensemble lui-même est constituée (il n'y a qu'une seule cellule concernée), pour former l'échantillon de second niveau qui est attribué ensuite en tant qu'échantillon de troisième niveau à la sortie souhaitée (figure 11). Puis la période P1 considérée s'achève par l'inscription de données par le CPU pendant l'impulsion active de la sous-période PCPU.Likewise, the value of the set itself is made up (there is only one cell concerned), to form the second level sample which is then allocated in as a third level sample at the desired output (Figure 11). Then the period P1 considered ends with data entry by the CPU during the pulse active of the PCPU subperiod.
Puis, toutes les cellules de 1 à 191 sont parcourues de la même façon, mais bien entendu sans effet pratique puisque dans l'exemple, seule la cellule '0' est active.Then, all the cells from 1 to 191 are scanned in the same way, but well heard without practical effect since in the example, only cell '0' is active.
Au début de la période P1, le signe de progression de la valeur POS_X est de
nouveau fixé à positif par le biais du circuit 34 du circuit de calcul 30.At the start of period P1, the sign of progression of the POS_X value is
again set to positive via
Puis, pendant l'impulsion active de la sous-période P3 les opérations suivantes sont réalisées.Then, during the active pulse of the sub-period P3 the following operations are carried out.
Les quatre paramètres de la cellule 0 sont maintenus à leur valeur suivant les
données inscrites auparavant par le CPU. Le circuit de calcul 30 reconnaít de nouveau la
phase ordonnée pendant la période P1, la valeur POS_X est mise à zéro dans
l'emplacement '0' de la mémoire M5.The four parameters of
La cellule 0 est affectée à l'ensemble 0 comme pendant le premier passage et la
somme des valeurs de cellule pour l'ensemble 0 (cellule 0 seulement) est calculée dans
l'unité arithmétique U10 et placée dans la bascule 42.
Sous la commande de l'impulsion active de la sous-période P4, les quatre
paramètres sont confirmés dans la mémoire d'accumulation M3 de chacun des blocs
20A à 20D. La nouvelle valeur de POS_X est placée dans la mémoire d'accumulation
M5 après avoir été calculée dans l'unité arithmétique U6 (figure 7), cette valeur étant
égale soit à 10, soit à 11 en fonction de la division effectuée dans le diviseur 31 du circuit
de calcul 30. La même valeur (PHA étant égale à zéro) apparaít à la sortie de l'unité
arithmétique U7 et est utilisée comme adresse de la table de sinus 81. La valeur (ou
point d'échantillon) extraite de cette table est rangée à l'emplacement '0' de la mémoire
d'accumulation M13 (figure 13) après avoir été multipliée par la valeur AMP dans l'unité
arithmétique U12 (en l'occurrence '100').Under the control of the active pulse of sub-period P4, the four
parameters are confirmed in the accumulation memory M3 of each of the
Cette valeur multipliée (signal ACC_CEL) est également stockée à l'emplacement
'0' de la mémoire d'accumulation M7 en tant que valeur courante de l'échantillon de
second niveau après addition avec la valeur B (zéro en l'occurrence) dans l'unité
arithmétique U10. La valeur d'amplitude de l'ensemble 0 est alors établie dans l'unité
arithmétique U9, par multiplication de la valeur d'amplitude fixe stockée dans la mémoire
M8, la valeur multipliée étant chargée dans la mémoire M6.This multiplied value (signal ACC_CEL) is also stored at the location
'0' of accumulation memory M7 as current value of the sample of
second level after addition with the value B (zero in this case) in the unit
U10 arithmetic. The amplitude value of the
La valeur qui était stockée dans cette mémoire est ensuite passée à la sortie 0 (figure 11) pour être rendue audible.The value that was stored in this memory is then passed to output 0 (figure 11) to be made audible.
La période P1 en cours se termine de nouveau au besoin par l'inscription de données par le CPU pendant l'impulsion active de la sous-période PCPU.The current P1 period ends again if necessary by registering data by the CPU during the active pulse of the PCPU subperiod.
Le processus se poursuit pendant le cycle P du signal ACT pour toutes les cellules, de nouveau sans effet pratique dans l'exemple considéré.The process continues during cycle P of the ACT signal for all cells, again without practical effect in the example considered.
La seule différence avec le passage précédent réside dans le changement de la valeur de POS_X qui subira un nouvel incrément de 10 ou de 11 provoquant la désignation dans la table de sinus de la nouvelle valeur de point requise pour former le son à obtenir.The only difference with the previous passage lies in the change of the value of POS_X which will undergo a new increment of 10 or 11 causing the designation in the sine table of the new point value required to form the its to get.
Dès que la valeur de l'ensemble 0 est extraite de la mémoire M11 (figure 11) et
acheminée vers la sortie 0, un son va être audible, le dispositif externe de reproduction
sonore étant synchronisé à l'aide du signal EXT_SYNC.As soon as the value of
Ensuite, pendant les passages suivants, la valeur POS_X continue à s'incrémenter de 10 ou de 11 pour ce qui concerne la cellule '0' et les autres cellules resteront inactives tant que le CPU n'ait pas ordonné un changement de fonctionnement de l'unité SYNT.Then, during the following passages, the value POS_X continues to increment by 10 or 11 for cell '0' and the other cells will remain inactive until the CPU has ordered an operation change of the SYNT unit.
En définitive, celle-ci produira ainsi un son mono-harmonique sinusoïdal à 440 Hz.Ultimately, this will produce a sinusoidal mono-harmonic sound at 440 Hz.
Si on souhaite produire des sons ayant un spectre sonore plus complexe, on peut impliquer dans le processus plusieurs cellules réparties sur un ou plusieurs ensembles selon une configuration dictée par ce spectre. Les échantillons de niveau zéro peuvent alors provenir de trois sources différentes à savoir les générateurs de formes d'ondes de la figure 14 ou 15, les circuits d'entrée de la figure 16 et 18 par l'intermédiaire de la mémoire M15 et les cellules elles-mêmes à l'aide des échantillons de premier niveau qui sont présents dans la mémoire d'accumulation M13.If we want to produce sounds with a more complex sound spectrum, we may involve in the process several cells distributed over one or more sets according to a configuration dictated by this spectrum. Level samples zero can then come from three different sources namely the generators of waveforms of Figure 14 or 15, the input circuits of Figure 16 and 18 by through M15 memory and the cells themselves using the samples from first level which are present in the accumulation memory M13.
Un deuxième exemple décrit ci-après permet de comprendre la formation d'un tel son à spectre plus complexe (voir figure 22). A second example described below makes it possible to understand the formation of such a more complex spectrum sound (see Figure 22).
Il est à noter que pour faciliter la compréhension de ce qui va suivre, les
composantes impliquées dans le processus décrit seront indiquées par leur
référence et un autre nombre indiquant la figure sur laquelle apparaít ce bloc (par
exemple le bloc 3 de la figure 2 sera indiqué par 2.3).It should be noted that to facilitate understanding of what will follow, the
components involved in the described process will be indicated by their
reference and another number indicating the figure on which this block appears (by
La configuration de l'unité SYNT est alors la suivante :
- nombre de cellules utilisées : 4
sur 192, - nombre de signaux de cellules additionnés à la sortie : 3
sur 4, - nombre d'ensembles utilisés : 1 parmi 16,
- nombre de sorties utilisées : 1 parmi 16,
- nombre d'entrées utilisées : 1 parmi 16,
- échantillonnage :comme dans le premier exemple.
- La
cellule 0 utilise un signal externe (exemple: guitare) appliqué à l'entrée 0 (mode SC_ETR), son amplitude est fixée à '100'. - la
cellule 1 est utilisée en oscillation RAMPE (mode SC_RMN) s'additionnant au signal. Son amplitude est fixée à '100' et modulée en amplitude par la cellule 0 de manière multiplicative. Sa fréquence est fixée à 440 Hz (base = 440 Hz, rapport de fréquence = 1; 5.U4) la cellule 2 contient en mémoire l'échantillon d'une trompette (mode SC_ECH). Cette cellule comporte un vibrato et sa fréquence sera modulée de manière additive parla cellule 3. Son amplitude est fixée à '100'. Sa fréquence est de 440 Hz (base = 440 Hz, rapport de fréquence = '1').- la
cellule 3 est utilisée en oscillation sinus (mode SC_SIN) d'amplitude '250', de fréquence 0,5 Hz (base = 440 Hz, rapport de fréquence '0,001136'). Cette dernière cellule ne sera pas additionnée au signal de sortie mais ne servira que comme modulante de la fréquence de la cellule 2. - les quatre cellules sont incorporées dans un même ensemble, soit
l'ensemble 0. Seul le contenu des cellules 0 à 2 est acheminé sur lasortie 0. Les paramètres phase et filtrage de toutes les cellules sont à '0'.
- number of cells used: 4 out of 192,
- number of cell signals added to the output: 3 of 4,
- number of sets used: 1 among 16,
- number of outputs used: 1 among 16,
- number of inputs used: 1 among 16,
- sampling: as in the first example.
-
Cell 0 uses an external signal (example: guitar) applied to input 0 (SC_ETR mode), its amplitude is fixed at '100'. -
cell 1 is used in RAMPE oscillation (SC_RMN mode) added to the signal. Its amplitude is fixed at '100' and amplitude modulated bycell 0 in a multiplicative manner. Its frequency is fixed at 440 Hz (base = 440 Hz, frequency ratio = 1; 5.U4) -
cell 2 contains in memory the sample of a trumpet (SC_ECH mode). This cell has a vibrato and its frequency will be modulated additively bycell 3. Its amplitude is fixed at '100'. Its frequency is 440 Hz (base = 440 Hz, frequency ratio = '1'). -
cell 3 is used in sine oscillation (SC_SIN mode) with amplitude '250', frequency 0.5 Hz (base = 440 Hz, frequency ratio '0.001136'). This last cell will not be added to the output signal but will only serve as a modulator of the frequency ofcell 2. - the four cells are incorporated into the same set, ie set 0. Only the content of
cells 0 to 2 is routed tooutput 0. The phase and filtering parameters of all cells are at '0'.
Le CPU initialise le système. Les données y sont inscrites dans les mémoires correspondantes.The CPU initializes the system. The data is stored in the memories corresponding.
-
Ensemble 0 : les cellules 0 à 191 sont acheminées sur l'ensemble 0.
La valeur '0' est écrite aux adresses W_ENS_CEL+0 à W_ENS_CEL+191 (8.M9).
Les cellules 4 à 191 sont inactives mais laissées sur l'ensemble 0. Pour que le circuit
d'attribution 40 complète l'addition des cellules sur l'ensemble 0 (soit les cellules 0 à
3 qui sont actives, et les cellules 0 à 2 additionnées), les valeurs suivantes doivent
être inscrites :
- cellule 0: valeur hexadécimale '30' sur W_ENS_CEL+0 (8.M9), alloue l'accumulation de la cellule 0 sur l'additionneur U10 (bit 4 C_SCEL actif='1', bit 5 C_ENS inactif='1');
- cellule 1: valeur hexadécimale '30' sur W_ENS_CEL+1 (8.M9), alloue l'accumulation de la cellule 1 sur l'additionneur U10 (bit 4 C_SCEL actif='1', bit 5 C_ENS inactif='1');
- cellule 2: valeur hexadécimale '30' sur W_ENS_CEL+2 (8.M9), alloue l'accumulation de la cellule 2 sur l'additionneur U10 (bit 4 C_SCEL actif='1', bit 5 C_ENS inactif='1');
- cellule 3: valeur hexadécimale '00' sur W_ENS_CEL+3 (8.M9), la cellule 3 n'est pas additionnée (bit 4 C_SCEL inactif='0'). Elle est la dernière cellule dans l'ensemble (bit 5 C_ENS actif='0'). Cela fixe le contenu de la cellule 3 comme dernière valeur à additionner dans l'ensemble (bit C_ENS, soit le bit 5 de la valeur);
cells 0 to 191 are routed onset 0. The value '0' is written to the addresses W_ENS_CEL + 0 to W_ENS_CEL + 191 (8.M9).Cells 4 to 191 are inactive but left onset 0. So that theallocation circuit 40 completes the addition of cells on set 0 (ie cells 0 to 3 which are active, andcells 0 to 2 added), the following values must be entered:- cell 0: hexadecimal value '30' on W_ENS_CEL + 0 (8.M9), allocates the accumulation of
cell 0 on the adder U10 (bit 4 C_SCEL active = '1',bit 5 C_ENS inactive = '1') ; - cell 1: hexadecimal value '30' on W_ENS_CEL + 1 (8.M9), allocates the accumulation of
cell 1 on the adder U10 (bit 4 C_SCEL active = '1',bit 5 C_ENS inactive = '1') ; - cell 2: hexadecimal value '30' on W_ENS_CEL + 2 (8.M9), allocates the accumulation of
cell 2 on the adder U10 (bit 4 C_SCEL active = '1',bit 5 C_ENS inactive = '1') ; - cell 3: hexadecimal value '00' on W_ENS_CEL + 3 (8.M9),
cell 3 is not added (bit 4 C_SCEL inactive = '0'). It is the last cell in the set (bit 5 C_ENS active = '0'). This fixes the content ofcell 3 as the last value to be added in the set (bit C_ENS,ie bit 5 of the value);
-
Amplitude ensembles : les ensembles sont d'abord mis à amplitude
nulle. La valeur '0' est écrite aux adresses W_ENS_AMP+0 à W_ENS_AMP+15
(8.M8) correspondant aux ensembles 0 à 15;Amplitude sets: the sets are first amplified
nothing. The value '0' is written to the addresses W_ENS_AMP + 0 to W_ENS_AMP + 15
(8.M8) corresponding to
sets 0 to 15; -
Fréquence ensembles : le CPU programme le SYNT sur une base
fréquencielle de 440 Hz. Le programme doit tenir compte de la fréquence
d'échantillonnage (44 100 Hz) et du nombre de points par cycle des générateurs
(1024 points) pour calculer le code de fréquence. Dans le présent exemple, on utilise
donc une valeur de fréquence pour l'ensemble 0 identique à celle discutée
précédemment à propos de la figure 6. Cette valeur de fréquence de l'ensemble 0
est inscrite à l'adresse W_ENS_FRE+0 (8.M10) correspondant à l'adresse de la
fréquence de l'ensemble 0;Frequency sets: the CPU programs SYNT on a basis
frequency of 440 Hz. The program must take into account the frequency
sampling rate (44,100 Hz) and the number of points per generator cycle
(1024 points) to calculate the frequency code. In this example, we use
therefore a frequency value for the
set 0 identical to that discussed previously about Figure 6. This frequency value of theset 0 is registered at the address W_ENS_FRE + 0 (8.M10) corresponding to the address of the frequency ofset 0; -
Sortie 0: l'ensemble 0 est acheminé vers la sortie 0. Ecrire la valeur '1'
(bit 0 à 1) sur W_SORTIE (11.M11) correspondant aux destinations de sortie de
l'ensemble 0.Output 0:
assembly 0 is routed tooutput 0. Write the value '1' (bit 0 to 1) on W_OUT (11.M11) corresponding to the output destinations of theset 0.
- Valeurs des amplitudes : toutes les amplitudes à '0' qui est écrit aux adresses W_AMP_BAS+0 à W_AMP_BAS+191 (6.20A[5.M2]).Amplitude values: all amplitudes at '0' which is written to addresses W_AMP_BAS + 0 to W_AMP_BAS + 191 (6.20A [5.M2]).
- Valeurs des incréments d'amplitude : la valeur "maximum" est écrite aux adresses W_AMP_INC+0 à W_AMP_INC+191 (6.20A[5.M1]). Cela a pour effet de conférer une valeur sans interpolation aux amplitudes.Amplitude increment values: the "maximum" value is written at addresses W_AMP_INC + 0 to W_AMP_INC + 191 (6.20A [5.M1]). This has the effect to give a value without interpolation to the amplitudes.
- Valeurs de modification des amplitudes: la valeur "maximum" (hex_200) est inscrite aux adresses W_AMP_CTR+0 à W_AMP_CTR+191 (6.20A[5.M4]). Cela a pour effet de désactiver la modification des amplitudes.Amplitude modification values: the "maximum" value (hex_200) is registered at the addresses W_AMP_CTR + 0 to W_AMP_CTR + 191 (6.20A [5.M4]). This has the effect of deactivating the modification of the amplitudes.
- Valeurs de fréquence: toutes les fréquences sont à la valeur '1000' (arbitraire) qui est écrite aux adresses W_FRE_BAS+0 à W_FRE_BAS+191 (6.208[5.M2]).Frequency values: all frequencies are set to '1000' (arbitrary) which is written to the addresses W_FRE_BAS + 0 to W_FRE_BAS + 191 (6.208 [5.M2]).
- Valeurs d'incréments de fréquence: la valeur "maximum" est écrite aux adresses W_FRE_INC+0 à W_FRE_INC+191 (6.20B[5.M1]). Cela a pour effet de conférer une valeur sans interpolation aux fréquences.Frequency increment values: the "maximum" value is written at addresses W_FRE_INC + 0 to W_FRE_INC + 191 (6.20B [5.M1]). This has the effect to give a value without interpolation to the frequencies.
- Valeurs de modification de fréquence: la valeur "maximum" est inscrite aux adresses W_FRE_CTR+0 à W_FRE_CTR+191 (6.20B[5.M4]. Cela a pour effet de désactiver la modification des fréquences.Frequency modification values: the "maximum" value is entered at addresses W_FRE_CTR + 0 to W_FRE_CTR + 191 (6.20B [5.M4]. This has the effect to deactivate the frequency modification.
- Valeurs phases: toutes les phases sont à '0' qui est inscrit aux adresses W_PHA_BAS+0 à W_PHA_BAS+191 (6.20C[5.M2]).Phase values: all phases are at '0' which is entered in the addresses W_PHA_BAS + 0 to W_PHA_BAS + 191 (6.20C [5.M2]).
- Valeurs d'incrément de phases: la valeur 'maximum' est écrite aux adresses W_PHA_INC+0 à W_PHA_INC+191 (6.20C[5.M1]). Cela confère une valeur sans interpolation aux phases.Phase increment values: the 'maximum' value is written to addresses W_PHA_INC + 0 to W_PHA_INC + 191 (6.20C [5.M1]). This gives a value without phase interpolation.
- Valeurs de modification de phase: la valeur 'maximum' est inscrite aux adresses W_PHA_CTR+0 à W_PHA_CTR+191 (6.20C[5.M4]). Cela a pour effet de désactiver la modification sur les phases.Phase modification values: the 'maximum' value is entered in the addresses W_PHA_CTR + 0 to W_PHA_CTR + 191 (6.20C [5.M4]). This has the effect of deactivate the modification on the phases.
- Valeurs de filtre: tous les filtres sont rendus inactifs: la valeur 'maximum' est inscrite aux adresses W_FLT_BAS+0 à W_FLT_BAS+191 (6.20D[5.M2]).Filter values: all filters are made inactive: the value 'maximum' is entered at addresses W_FLT_BAS + 0 to W_FLT_BAS + 191 (6.20D [5.M2]).
- Valeurs d'incrément des filtres: la valeur 'maximum' est inscrite aux adresses W_FLT_INC+0 à W_FLT_INC+191 (6.20D[5.M1]). Cela confère une valeur sans interpolation aux filtres. Filter increment values: the 'maximum' value is entered in the addresses W_FLT_INC + 0 to W_FLT_INC + 191 (6.20D [5.M1]). This gives value without filter interpolation.
- Valeurs de modification de filtre: la valeur 'maximum' est inscrite aux adresses W_FLT_CTR à W_FLT_CTR+191 (6.20D[5.M4]). Cela a pour effet de désactiver la modification sur les filtres.Filter modification values: the 'maximum' value is entered in the addresses W_FLT_CTR to W_FLT_CTR + 191 (6.20D [5.M4]). This has the effect of deactivate the modification on the filters.
Le CPU programme le SYNT pour activer l'entrée en temps réel 0 sur la cellule 0. L'entrée en temps réel est inscrite dans la mémoire d'échantillonnage (17.M15). Dans l'exemple, les adresses réservées sont délimitées dans une zone de mémoire comprise entre les adresses 0 et 1023 utilisées en stockage continu (cyclique).
- Mode cellule 0 : la cellule 0 sera reliée à l'entrée en temps
réel 0. On écrit la valeur '0' à l'adresse W_ETR_N+0 (16.M14). Le mode SC_ETR correspond au code '007' sur W_MOD (13.M12). Le mode d'accès à la mémoire M15 (1024 adresses) est cyclique (MOD_CCY=0), croissant (MOD_DCY=1), non-alternatif (MOD_ALT=1), le code hexadécimal '300' s'ajoute sur W_MOD. Le code hexadécimal '307'('007'+'000'+'300') est inscrit à l'adresse W_MOD+0 (13.M12) correspondant à l'adresse du mode de la cellule 0. Cela active le bit de commande SC_ETR qui met en fonction le mode d'échantillonnage de la cellule. - Adresses de l'échantillon de la cellule 0 : les adresses de début d'échantillon et de début de bouclage ont la valeur '0' qui est inscrite aux adresses W_ECH_DEB+0 (20.M19) et W_ECH_B1+0 (20.M21). Les adresses de fin d'échantillon et de fin de bouclage ont la valeur '1023' qui est inscrite aux adresses W_ECH_FIN+0 (20.M20) et W_ECH_B2+0 (20.M22). Comme l'accès est cyclique, la mémoire M15 sera utilisée comme tampon circulaire dans la zone assignée à la cellule 0.
- Fréquence de la cellule 0 : celle-ci n'a pas à être fixée, car l'échantillonnage est basé sur l'horloge (2.2) qui, une fois divisée, donne 44 100 Hz pour l'échantillonnage. Dans ce mode (SC_ETR), le pas d'incrémentation est fixe et égal à '1'.
- Amplitude de la cellule 0 : dans le présent exemple, l'amplitude est arbitrairement fixée à '100', valeur qui est donc inscrite à l'adresse W_AMP_BAS+0 (6.20A[5.M2]).
-
Cell 0 mode:cell 0 will be connected to real-time input 0. We write the value '0' at the address W_ETR_N + 0 (16.M14). The SC_ETR mode corresponds to the code '007' on W_MOD (13.M12). The access mode to memory M15 (1024 addresses) is cyclic (MOD_CCY = 0), increasing (MOD_DCY = 1), non-alternative (MOD_ALT = 1), the hexadecimal code '300' is added on W_MOD. The hexadecimal code '307'('007' + '000' + '300') is entered at the address W_MOD + 0 (13.M12) corresponding to the mode address ofcell 0. This activates the bit command SC_ETR which activates the sampling mode of the cell. - Addresses of the sample in cell 0: the addresses for the start of the sample and for the start of the loop have the value '0' which is entered at the addresses W_ECH_DEB + 0 (20.M19) and W_ECH_B1 + 0 (20.M21) . The end of sample and end of looping addresses have the value '1023' which is written to the addresses W_ECH_END + 0 (20.M20) and W_ECH_B2 + 0 (20.M22). As the access is cyclic, the memory M15 will be used as a circular buffer in the zone assigned to
cell 0. - Frequency of cell 0: this does not have to be fixed, because the sampling is based on the clock (2.2) which, once divided, gives 44,100 Hz for sampling. In this mode (SC_ETR), the increment step is fixed and equal to '1'.
- Amplitude of cell 0: in the present example, the amplitude is arbitrarily fixed at '100', a value which is therefore entered at the address W_AMP_BAS + 0 (6.20A [5.M2]).
La cellule 1 sera programmée pour être une oscillation en forme de rampe négative, dont l'amplitude sera modulée par la sortie de la cellule 0.
- Mode de la cellule 1 : une rampe négative correspond au code '4' sur W_MOD (13.M12). La modulation d'amplitude est additive (MOD_FCT_AMP=0), le code '0' est ajouté à W_MOD. On inscrit donc la valeur '4' à l'adresse W_MOD+1 (13.M12) correspondant à l'adresse du mode de la cellule 1. Cela active le bit de commande SC_RMN qui met en fonction le mode d'oscillation en rampe négative (14.88,84).
- Fréquence de la cellule 1: le facteur fréquenciel inscrit sur l'ensemble 0 correspond à la base de 440 Hz. On inscrit donc la valeur '1' (fréquence de l'ensemble multipliée par 1) à l'adresse W_FRE_BAS+1 (6.20B[5.M2]).
- Amplitude de la cellule 1: '100' est inscrit à l'adresse W_AMP_BAS+1 (6.20A[5.M2]).
- Commande amplitude cellule 1 : dans le présent exemple, la cellule 1 utilise la sortie de la cellule 0 pour moduler son amplitude. La valeur '0' est inscrite sur W_AMP_CTR+1 (6.20A[5.M4]). Cette valeur confère à la cellule 0 le rôle de source de modulation.
-
Cell 1 mode: a negative ramp corresponds to code '4' on W_MOD (13.M12). Amplitude modulation is additive (MOD_FCT_AMP = 0), the code '0' is added to W_MOD. We therefore write the value '4' at the address W_MOD + 1 (13.M12) corresponding to the address of the mode ofcell 1. This activates the command bit SC_RMN which activates the ramp oscillation mode negative (14.88,84). - Frequency of cell 1: the frequency factor entered on
set 0 corresponds to the base of 440 Hz. We therefore enter the value '1' (set frequency multiplied by 1) at the address W_FRE_BAS + 1 (6.20 B [5.M2]). - Amplitude of cell 1: '100' is entered at the address W_AMP_BAS + 1 (6.20A [5.M2]).
-
Cell 1 amplitude command: in this example,cell 1 uses the output ofcell 0 to modulate its amplitude. The value '0' is written to W_AMP_CTR + 1 (6.20A [5.M4]). This value givescell 0 the role of modulation source.
On notera au passage que le code à neuf bits formés par les bits les
plus significatifs du signal ADR_CTR définit, comme illustré en figure 12 pour 192
cellules, la sélection suivante : ACC_CEL=hex_000 à hex_OBF,
ACC_ENS=hex_0C0 à hex_0CF, ACC_ETR=hex_0D0 à hex_0DF, ACC_DET
amplitudes =hex_0E0 à hex_0EF, ACC_DET fréquences = hex_0F0 à hex_0FF et
ACC_DET bandes = hex_100 à hex_IFF). La valeur hex_200 (maximum) est
réservée pour indiquer que la commande est inactive sur le paramètre
correspondant d'une cellule.It will be noted in passing that the nine-bit code formed by the most significant bits of the signal ADR_CTR defines, as illustrated in FIG. 12 for 192 cells, the following selection: ACC_CEL = hex_000 to hex_OBF, ACC_ENS = hex_0C0 to hex_0CF, ACC_ETR = hex_0D0 at hex_0DF, ACC_DET amplitudes = hex_0E0 at hex_0EF, ACC_DET frequencies = hex_0F0 at hex_0FF and ACC_DET bands =
La cellule 2 est programmée pour contenir un échantillon du son enregistré d'une trompette. Dans l'exemple décrit ici, on suppose que ce son est un fichier contenu dans le CPU. Un vibrato lui est appliqué par modulation de sa fréquence, l'oscillation modulante étant celle de la sortie de la cellule 3. Il est à noter que la fréquence de 440 Hz de cette cellule n'est qu'une valeur de référence pour l'échantillonnage. La fréquence audible dépendra de la fréquence de l'oscillation enregistrée par le CPU. On suppose qu'elle a été enregistrée à une fréquence d'échantillonnage équivalente à celle à laquelle elle sera régénérée et que la note jouée à l'enregistrement correspond à 440 Hz. Dans d'autres cas, la fréquence de la trompette régénérée pourra être transposée proportionnellement. L'échantillon dure par exemple deux secondes soit 88200 points d'échantillonnage (440 Hz sur 100 points par cycle). Il est inscrit dans la mémoire M15 aux adresses d'échantillonnage 1024 à 89224.
- Mode cellule 2 : la cellule 2 est programmée pour générer le signal d'échantillonnage de la trompette. Cela correspond au code '006' sur W_MOD. La modulation sur la fréquence est additive de sorte que le code '000' s'ajoute sur W_MOD. Le mode d'échantillonnage est non-cyclique (MOD_CCY=1), croissant (MOD_DCY=1), non-alternatif (MOD_ALT=1), le code hexadécimal '380' s'ajoute donc sur W_MOD. Le code hexadécimal '386'(006+000+380) est inscrit à l'adresse W_MOD+2 (13.M12). Cela active le bit de commande SC_ECH qui met en fonction le mode d'échantillonnage de la cellule.
- Adresses des échantillons de la cellule 2: l'adresse de début d'échantillon a la valeur '1024' qui est inscrite à l'adresse W_ECH_DEB+2 (20.M19). L'adresse de fin d'échantillon est fixée à 89224 qui est inscrite à l'adresse W_ECH_FIN+2 (20.M20).
- Inscription de l'échantillon de la cellule 2: l'échantillon de 88200 points est transféré du CPU à la mémoire d'échantillonnage M15 aux adresses W_ECH_CYC+'1024' à W_ECH_CYC+'89224' (17.121 et M15).
- Fréquence de la cellule 2 : le facteur fréquenciel inscrit sur l'ensemble 0 correspond à la base de 440Hz. On inscrit donc la valeur '1' (fréquence de l'ensemble multipliée par 1) à l'adresse W_FRE_BAS+2 (6.20B[5.M2]).
- Amplitude de la cellule 2: on fixe arbitrairement l'amplitude à la valeur '100' qui est donc inscrite à l'adresse W_AMP_BAS+2 (6.20A[5.M2]).
- Commande de fréquence de la cellule 2 : dans l'exemple, la cellule 2 utilise la sortie de la cellule 3 pour moduler sa fréquence. La valeur '3' est inscrite sur W_FRE_CTR+2 (6.20B[5.M4]) pour déterminer que la cellule 3 est utilisée comme source de modulation.
-
Cell 2 mode:cell 2 is programmed to generate the sampling signal of the trumpet. This corresponds to the code '006' on W_MOD. The modulation on the frequency is additive so that the code '000' is added on W_MOD. The sampling mode is non-cyclic (MOD_CCY = 1), increasing (MOD_DCY = 1), non-alternative (MOD_ALT = 1), the hexadecimal code '380' is therefore added to W_MOD. The hexadecimal code '386' (006 + 000 + 380) is entered at the address W_MOD + 2 (13.M12). This activates the command bit SC_ECH which activates the sampling mode of the cell. - Addresses of the samples in cell 2: the start address of the sample has the value '1024' which is entered at the address W_ECH_DEB + 2 (20.M19). The end of sample address is set to 89224 which is entered at the address W_ECH_END + 2 (20.M20).
- Registration of the sample from cell 2: the sample of 88,200 points is transferred from the CPU to the sampling memory M15 at addresses W_ECH_CYC + '1024' to W_ECH_CYC + '89224' (17.121 and M15).
- Frequency of cell 2: the frequency factor entered on
set 0 corresponds to the base of 440Hz. We therefore write the value '1' (frequency of the set multiplied by 1) at the address W_FRE_BAS + 2 (6.20B [5.M2]). - Amplitude of cell 2: the amplitude is arbitrarily fixed at the value '100' which is therefore entered at the address W_AMP_BAS + 2 (6.20A [5.M2]).
-
Cell 2 frequency control: in the example,cell 2 uses the output ofcell 3 to modulate its frequency. The value '3' is written to W_FRE_CTR + 2 (6.20B [5.M4]) to determine thatcell 3 is used as a modulation source.
La cellule 3 est programmée pour imposer une oscillation sinusoïdale à basse fréquence de 0,5 Hz. Cette cellule module la fréquence de la cellule 2.
- Mode de la cellule 3: elle doit préalablement être mise dans le mode d'oscillation sinusoïdale. On écrit donc la valeur '0' à l'adresse W_MOD+3 (13.M12). Cela active le bit de commande SC_SIN qui met en fonction le générateur de fonction 81 contenant la table de sinus.
- Fréquence de la cellule 3: la fréquence de l'oscillation étant de 0,5 Hz, le facteur sur la fréquence de base doit être '0,00136' (0,5 Hz='440'*'0,00136'). La valeur '0,00136' (fréquence de l'ensemble multiplié par 1) est donc inscrite à l'adresse W_FRE_BAS+3 (6.20B[5.M2]).
- Amplitude de la cellule 3 : dans le présent exemple l'amplitude est arbitrairement fixée à la valeur '250' qui est inscrite à l'adresse W_AMP_BAS+3 (6.20A[5.M2]).
-
Cell 3 mode: it must first be set to the sinusoidal oscillation mode. We therefore write the value '0' at the address W_MOD + 3 (13.M12). This activates the command bit SC_SIN which activates thefunction generator 81 containing the sine table. - Frequency of cell 3: the frequency of the oscillation being 0.5 Hz, the factor on the base frequency must be '0.00136' (0.5 Hz = '440' * '0.00136'). The value '0.00136' (frequency of the set multiplied by 1) is therefore entered at the address W_FRE_BAS + 3 (6.20B [5.M2]).
- Amplitude of cell 3: in the present example, the amplitude is arbitrarily fixed at the value '250' which is entered at the address W_AMP_BAS + 3 (6.20A [5.M2]).
-
Mise en phase des cellules 0 à 3: les cellules programmées pour
l'ensemble 0 sont mises en phase. Le numéro '0' correspondant à l'ensemble 0 est
écrit à l'adresse W_DEC (8.44).Phasing of
cells 0 to 3: cells programmed for all 0 are phased. The number '0' corresponding to theset 0 is write to W_DEC (8.44). -
Amplitude de l'ensemble: on met le volume de l'ensemble 0 au
maximum, en inscrivant la valeur 'maximum' à l'adresse W_ENS_AMP+0 (8.M8).Amplitude of the set: we put the volume of the
set 0 at maximum, by entering the value 'maximum' at the address W_ENS_AMP + 0 (8.M8). -
Un instrument tel qu'une guitare est branché sur l'entrée en temps réel
0.An instrument such as a guitar is plugged into the real-
time input 0.
II est à noter que, comme déjà décrit à propos des figures 3 et 4, chaque sous-période P comporte une sous-période PCPU à la fin du calcul relatif à chaque cellule. Ceci ne sera pas expressément rappelé dans ce qui va suivre.It should be noted that, as already described with reference to FIGS. 3 and 4, each sub-period P includes a sub-period PCPU at the end of the calculation relating to each cell. This will not be expressly recalled in what follows.
Le système étant initialisé, il génère le signal sinusoïdal sur une cellule.
- Premier passage (durant l'éxécution des opérations d'initailisation décrites dans les
paragraphes 1.1.1. à 1.2.4):
-
Cellule 0- P1 :
-
- direction Axe-x des temps: positive
- lecture de l'entrée lN_0 (exemple: valeur'0,28'). Cette valeur est acheminée sur lN_CEL (16.103), et inscrite en mémoire (17.M15) à une adresse non définie (POS_X) mais à l'intérieur des limites d'adresse établies à l'initialisation de la cellule soit entre E_DEB(0) et E_FIN(1023).
la cellule 0 n'étant pas assujettie à une commande externe d'amplitude, de fréquence, de phase ou de filtrage, les signaux P2_AMP, P2_FRE, P2_PHA et P2_FLT sont inopérants.
- P3:
-
- les paramètres de la cellule 0 sont initialisés suivant les données inscrites par le CPU aux valeurs résultant de l'initialisation.
- sélection de l'ensemble 0 sur la cellule 0.
- inscription de la valeur de la cellule 0 par le bit actif C_SCEL sur (8.M9) sur l'ensemble (8.U10,42). Cette valeur est nulle comme la valeur précédente. La cellule est initialisée à l'amplitude nulle pendant les passages précédents.
- P4:
-
- les paramètres de la cellule 0 sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x de la cellule 0 (5.M3; 6.20B).
- valeur nulle accumulée pendant le sous-cycle P3 (8.42) inscrite sur l'accumulateur d'ensemble (8.M7).
- calcul de l'amplitude (13.U12) de la cellule 0 = '100'. Valeur de l'échantillon de la cellule 0 = '28' (amplitude '100'* Valeur lN_0 = '0,28'). Mémorisation de cette valeur (13.M13).
- calcul de l'amplitude de l'ensemble 0= '0', valeur acheminée sur la mémoire M6 (non mémorisée).
- accumulateur de l'ensemble : aucune valeur n'est inscrite dans la mémoire M6 (bit C_ENS inactif sur 8.M9). La valeur précédente est nulle. L'ensemble initialisé a l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie : la valeur de l'ensemble 0 est nulle.
-
Cellule 1- P1 :
-
- direction Axe-x: positive
- P2_AMP
-
- La
cellule 1 est assujettie à une commande externe d'amplitude par la cellule 0. La valeur calculée dans le cycle précédent de l'oscillation de la cellule 0 (13.M13) est captée sur la bascule 24 (fig.5). La modulation est active à la valeur '28'.
Lacellule 1 n'étant pas assujettie à une commande externe de fréquence, de phase et de filtrage, les signaux P2_FRE, P2_PHA et P2_FLT sont inopérants. - La
- P3:
-
- les paramètres de la cellule 1 sont initialisés suivant les données inscrites par le CPU à des valeurs acquises durant l'initialisation.
- affectation de la cellule 0 sur l'ensemble 0.
- addition de la valeur de la cellule 1 par le bit actif C_SCEL (8.M9) sur l'ensemble 0 (8.U10,42). Cette valeur est nulle comme la précédente. La cellule a été initialisée à l'amplitude '0' pendant les passages précédents.
- P4:
-
- les paramètres de la cellule 1 sont fixés (amplitude + modulation) à la valeur '28'.
- POS_X est accumulé sur l'axe-x de la cellule 1. La valeur est indéterminée.
- la valeur nulle accumulée au sous-cycle P3 sur la bascule 42 est inscrite dans l'accumulateur d'ensemble M7 (figure 8).
- calcul de l'amplitude (13.U12) de la cellule 1 à la valeur '128' ('100' AMP+'28' (Val.cellule 0)). La valeur de l'échantillon est indéterminée ('128'* la rampe sur une adresse indéterminée). Mémorisation dans la mémoire M13.
- l'amplitude de l'ensemble à la valeur '0' est acheminée vers la mémoire M6 (non mémorisée).
- accumulateur de l'ensemble : la valeur n'est pas inscrite dans la mémoire M6, le bit C_ENS étant inactif (8.M9). La valeur précédente est nulle, l'ensemble ayant été initialisé à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie : la valeur de l'ensemble 0 est nulle.
-
Cellule 2- P1 :
-
- direction Axe-x: positive
- P2_FRE
-
- la
cellule 2 n'est assujettie qu'à une commande externe de fréquence par la cellule 3. La valeur de l'oscillation de la cellule 3 au passage précédent est nulle et captée sur la bascule 24. La modulation est nulle.
- la
- P3:
-
- les paramètres de la cellule 2 sont initialisés suivant les données inscrites par le CPU aux valeurs acquises durant l'initialisation.
- affectation de la cellule 2 sur l'ensemble 0.
- addition de la valeur de la cellule 2, le bit C_SCEL étant actif (8.M9), sur l'ensemble (8.U10,42). La valeur est nulle, car la valeur précédente est nulle et la cellule a été initialisée à l'amplitude '0' pendant les passages précédents.
- P4:
-
- les paramètres de la cellule 2 sont fixés à leur valeur.
- POS_X est accumulé sur l'axe-x. La valeur est indéterminée et comprise entre E_DEB (1024) et E_FIN (89224).
- la valeur nulle accumulée au sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur de l'ensemble (8.M7).
- calcul de l'amplitude (13.U12; valeur '100'). La valeur de l'échantillon est indéterminée ('100'*échantillon à adresse indéterminée). La valeur est mémorisée dans la mémoire M13.
- l'amplitude calculée pour l'ensemble 0 est acheminée vers la mémoire M6, mais pas mémorisée.
- accumulateur de l'ensemble : aucune valeur n'est inscrite dans la mémoire M6 car le bit C_ENS est inactif (8.M9). La valeur précédente est nulle et l'ensemble est initialisé à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie : la valeur de l'ensemble 0 est nulle.
-
Cellule 3- P1 :
-
- direction Axe-x: positive
- la
cellule 3 n'est assujettie à aucune commande externe d'amplitude, de fréquence, de phase ou de filtrage.
- P3:
-
- les paramètres sont initialisés suivant les données initialisées par le CPU;
- affectation de la cellule 3 sur l'ensemble 0;
- la valeur de la cellule 3 n'est pas additionnée sur l'ensemble 0 (8.U10,42) car le bit C_SCEL est inactif (8.M9).
- P4:
-
- les paramètres sont fixés à leur valeur.
- POS_X est accumulé sur l'axe-x à une valeur indéterminée.
- la valeur nulle accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur d'ensemble (8.M7).
- l'amplitude (13.U12) est calculée (valeur '250'). La valeur d'échantillon de la cellule 3 est indéterminée ('250'*sinus avec adresse indéterminée). Mémorisation dans la mémoire M13.
- l'amplitude de l'ensemble est calculée (valeur '0') et acheminée vers la mémoire M6.
- accumulateur de l'ensemble: la valeur est inscrite dans la mémoire M6, car le bit C_ENS est actif (8.M9). La valeur précédente est nulle. L'ensemble a été initialisé à l'amplitude '0' pendant les passages précédents. La bascule 42 est mise à zéro pour initialiser l'ensemble pour le prochain passage.
- accumulateur de sortie: la valeur de l'ensemble 0 est
nulle.
Le passage 0 implique ensuite le traitement des cellules 4 à 191 pendant les cycles P1 à PCPU. Il n'y a pas de signal.
- Deuxième passage
II se déroule pendant la mise en phase et l'inscription des paramètres
d'ensemble (paragraphes 1.2.5., 1er échantillon):
-
Cellule 0- P1
-
- la mise en phase s'effectue par l'écriture de la valeur '0'
(numéro de l'ensemble 0 à mettre en phase, toutes les cellules en faisant partie) sur
la bascule 44 (figure 8). Comme les valeurs de phase sont '0', le terme POS_X de
l'axe-x est initialisé sur le circuit de la figure 7 durant le sous-cycle P3 suivant. Le
signal d'initialisation C_lNlT est généré
par le bloc 50 et acheminé vers laporte 208 qui produit le signal CD_lNlT. POS_X de la cellule 0 est initialisé à E_DEB(cellule 0)='0'. - lecture de l'entrée lN_0 (ex:'0,35') et transmission vers IN_CEL. La valeur est inscrite dans la mémoire M15 (POS_X=?).
- La
cellule 0 n'est assujettie à aucune commande externe.
- la mise en phase s'effectue par l'écriture de la valeur '0'
(numéro de l'ensemble 0 à mettre en phase, toutes les cellules en faisant partie) sur
la bascule 44 (figure 8). Comme les valeurs de phase sont '0', le terme POS_X de
l'axe-x est initialisé sur le circuit de la figure 7 durant le sous-cycle P3 suivant. Le
signal d'initialisation C_lNlT est généré
- P3:
-
- les paramètres de la cellule 0 sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (
bloc 35 signal CD_lNlT) reconnait la mise en phase ordonnée durant le cycle P1. POS_X est mis à '0' sur la cellule 0. - affectation de la cellule 0 à l'ensemble 0.
- inscription de la valeur de la cellule 0 par le bit actif C_SCEL (8.M9) sur l'ensemble (8.U10,42); la valeur d'amplitude était '100'.
- P4:
-
- les paramètres de la cellule 0 sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x de la cellule 0 = '0' (phase '0').
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite dans l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 0 à la valeur '100'. La valeur d'échantillon de la cellule 0 = '35' ('100'* lN_0='0,35'). Mémorisation sur la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur '0'. Elle est acheminée sur la mémoire M6 mais non mémorisée.
- accumulateur de l'ensemble: la valeur n'est pas inscrite sur la mémoire M6 car le bit C_ENS est inactif (8.M9). La valeur précédente est nulle, l'ensemble a été initialisé à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
-
Cellule 1- P1 :
-
- mise en phase sur l'ensemble 0 de la cellule, exécutée pendant le sous-cycle P3; E_DEB = '0'.
- P2_AMP
-
- la
cellule 1 n'est assujettie qu'à une commande externe d'amplitude par la cellule 0. La valeur calculée pendant le cycle précédent de l'oscillation de la cellule 0 et stockée dans la mémoire M13 est captée sur la bascule 24. La modulation est active à la valeur '35'.
- la
- P3:
-
- les paramètres de la cellule 1 sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (
bloc 35 signal CD_lNlT) reconnaít la mise en phase ordonnée durant le cycle P1. POS_X est mis à '0' sur la cellule 1 (E_DEB). - affectation de la cellule 1 sur l'ensemble 0.
- addition de la valeur de la cellule 1, le bit C_SCEL étant actif (8.M9), sur l'ensemble (8.U10,42). Les valeurs précédentes sont cellule 0('28') + cellule 1(?). La valeur est donc indéterminée.
- P4:
-
- les paramètres de la cellule 1 sont fixés à leur valeur à l'amplitude est ajoutée la valeur de la cellule 0 (5.U4,M3; 6.20A) qui la module. L'amplitude totale de la cellule = '135'.
- accumulation de POS_X sur l'axe-x de la cellule 1 ='0' (phase '0').
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 1 = '135', soit'100'Ampl + '35' (valeur cellule 0). La valeur de l'échantillon de la cellule 1 = '134' ('135'*rampe début'0,99'). La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur '0' qui est acheminée sur la mémoire M6 mais non mémorisée.
- accumulateur de l'ensemble. La valeur n'est pas inscrite dans la mémoire M6, car le bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble initialisé a l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
-
Cellule 2- P1 :
-
- mise en phase sur l'ensemble 0 de la cellule, exécutée pendant le sous-cycle P3. POS_X sur la cellule 2 est initialisé à E_DEB = '1024'.
- P2_FRE
-
- la
cellule 2 n'est assujettie qu'à une commande externe de fréquence par la cellule 3. La valeur calculée pendant le passage précédent de l'oscillation de la cellule 3 (13.M13) est captée sur la bascule 24. La modulation est active à une valeur indéterminée.
- la
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (
bloc 35 signal CD_INIT) reconnaít la mise en phase ordonnée durant le cycle P1. POS_X est mis à '1024' (E_DEB). - affectation de la cellule 2 à l'ensemble 0.
- addition de la valeur de la cellule 2 par le bit actif C_SCEL (8.M9) sur l'ensemble 0 (8.U10,42) aux valeurs précédentes : cellule 0('28') + cellule 1(?)+ cellule 2(?). La valeur est donc indéterminée.
- P4:
-
- les paramètres sont fixés à leur valeur. La fréquence est additionnée à la valeur de la cellule 1 (5.U4, M3; 6.20B) qui la module en fonction de la valeur accumulée au premier passage (ex: valeur accumulée=indéterminée). Comme la mise en phase est en cours, la valeur de fréquence n'a pas de rôle.
- accumulation de POS_X sur l'axe-x de la cellule 2 = '1024' (phase '0').
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) à la valeur '100'. La valeur de l'échantillon de la cellule 2 = '11' ('100'* premier point trompette par exemple '0,11' sur adresse 1024). La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur '0' qui est acheminée sur la mémoire M6 mais pas mémorisée.
- accumulateur de l'ensemble: la valeur n'est pas inscrite dans la mémoire M6 car le bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble initialisé a l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
-
Cellule 3- P1 :
-
- mise en phase sur l'ensemble 0 de la cellule, exécutée dans le sous-cycle P3.
- aucun assujettissement à une commande externe pendant les sous-cycles P2_AMP, P2_FRE, P2_PHA et P2_FLT.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (
bloc 35 signal CD_INIT) reconnaít la mise en phase ordonnée durant le cycle P1. POS_X est mis à 0. - affectation de la cellule 3 à l'ensemble 0.
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9), sur l'ensemble (8.U10,42).
- P4:
-
- les paramètres sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x = '0' (phase '0').
- valeur accumulée pendant le sous-cycle sur la bascule 42 est inscrite sur l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) à la valeur '250'. La valeur de l'échantillon = '0' ('250'* le premier point de la table sinus ='0'). La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble 0 à la valeur '0' qui est mémorisée et acheminée dans la mémoire M6.
- accumulateur de l'ensemble: la valeur inscrite sur la mémoire M6 (bit C_ENS actif sur 8.M9) valeur addition cellules, ensemble initialisé à l'amplitude='0' (mise au maximum au passage suivant seulement). Mise à 0 de la bascule 8.42, initialisant l'ensemble pour le prochain passage.
- accumulateur de sortie: la valeur de l'ensemble 0 = '0'
(amplitude ='0'* la somme des échantillons des cellules 0 à 2),
la cellule 3 n'étant pas additionné par choix. Le bit C_CEL est inactivé par le CPU.
- Deuxième passage des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
- Troisième passage (après la mise en phase, élaboration du deuxième échantillon):
-
Cellule 0- P1 :
-
- Direction Axe-x: positive.
- lecture de l'entrée lN_0 (ex: '0,33') et acheminement sur IN_CEL. La valeur '0,33' est inscrite dans la mémoire M15 = (POS_X ='0').
- aucun assujettissement à une commande externe pendant les sous-cycles P2_AMP, P2_FRE, P2_PHA et P2_FLT.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS_X à la valeur '1' ('0' + '1'). Dans le mode SC_ETR, l'incrément de POS_X est constant et égal à '1' (7.32).
- affectation de la cellule 0 à l'ensemble 0.
- inscription de la valeur '35' par le bit inactif C_SCEL (8.M9) sur l'ensemble (8.U10,42), la valeur précédente était'35'.
- P4:
-
- les paramètres sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x = '1'.
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 0 à la valeur '100'. La valeur de l'échantillon de la cellule 0 = '33' (ampli '100'*valeur lN_0 = '0,33'). La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur 'maximum', qui est acheminée vers la mémoire M6 mais non mémorisée.
- accumulateur d'ensemble : la valeur n'est pas inscrite dans la mémoire M6, car le bit C_ENS est inactif (8.M9). La valeur précédente est maintenue jusqu'à la demière cellule de l'ensemble 0.
- accumulateur de sortie: la valeur de l'ensemble 0 = nulle.
-
Cellule 1- P1 :
-
- Direction Axe-x: positive.
- P2_AMP
-
- la
cellule 1 n'est assujettie qu'à une commande externe d'amplitude par la cellule 0. La valeur calculée dans le cycle précédent de l'oscillation de la cellule 0 (13.M13) est captée sur la bascule 24. La modulation est active, soit la valeur '33'.
- la
- P3:
-
- les paramètres de la cellule 1 sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS_X de la cellule 1 = '10'('0' + '10'). A noter que l'incrément est égal à '10', 79 fois sur 100 et égal à '11', 21 fois sur 100 à 440 Hz.
- affectation de la cellule 1 sur l'ensemble 0.
- addition de la valeur de la cellule 1, par le bit actif C_SCEL (8.M9), sur l'ensemble (8.U10,42). Les valeurs précédentes sont: cellule 0('35')+ cellule 1('134')= '169'.
- P4:
-
- les paramètres sont fixés à leur valeur. L'amplitude est additionnée à la valeur de la cellule 0 (5.U4, M3 de 6.20A) qui la module par la valeur '33'. L'amplitude totale de la cellule 1 est donc '100'+'33' = '133'.
- accumulation de POS_X sur l'axe-x de la cellule 1 = '10'.
- valeur accumulée au sous-cycle P3 dans la bascule 42 est inscrite sur l'accumulateur d'ensemble (8.M7).
- calcul de l'amplitude (13.U12) de la cellule 1 à '133' {'100'ampl + '33' (valeur cellule 0)}. - valeur d'échantillon de la cellule 1 = '129'('133'* '0,97'). La valeur '0,97' est la valeur de la rampe à l'adresse 10. Cette valeur est mémorisée (13.M13).
- calcul de l'amplitude de l'ensemble à 'maximum'. Cette valeur est acheminée vers la mémoire M6, mais pas mémorisée.
- accumulateur d'ensemble : la valeur n'est pas inscrite dans la mémoire M6, car le bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble a été initialisé à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
-
Cellule 2- P1 :
-
- Direction Axe-x: positive.
- P2_FRE
-
- la
cellule 2 n'est assujettie qu'à une commande externe de fréquence par la cellule 3. La valeur calculée pendant le passage précédent de l'oscillation de la cellule 3 (13.M13) est captée sur la bascule 24. La modulation est active à la valeur '0'.
- la
- P3:
-
- les paramètres de la cellule 2 sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS_X de la cellule 2 = '1034' ('1024' + '10'). Ici aussi, l'incrément est égal à '10', 79 fois sur 100 et égal à '11', 21 fois sur 100 à 440 Hz).
- attribution de la cellule 2 sur l'ensemble 0.
- addition de la valeur de la cellule 2 par le bit actif C_SCEL (8.M9) sur l'ensemble (U8.U10,42). Les valeurs précédentes sont: cellule 0 ('35')+ cellule 1('134')+ cellule 2('11') = '180'.
- P4:
-
- les paramètres de la cellule 2 sont fixés à leur valeur. La fréquence est additionnée à la valeur de la cellule 3 (5.U4, M3 de 6.20B) qui la module, ici à la valeur '0'. La fréquence de la cellule est donc '10.21' ('10.21'+'0').
- accumulation de POS_X sur l'axe-x = '1034'.
- la valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 2 à la valeur '100' (amplitude = '100'). La valeur de l'échantillon de la cellule 1 = '-8', par exemple ('100'*échantillon de l'adresse 1034 qui est ici supposé égal à '-0,08'). La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble 0 à la valeur 'maximum' acheminée vers la mémoire M6, mais pas mémorisée.
- accumulateur d'ensemble : la valeur n'est pas inscrite dans la mémoire M6, car le bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble est initialisé à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
-
Cellule 3- P1 :
-
- Direction Axe-x: positive.
- pas d'assujettisement de la cellule 3 à une commande externe d'amplitude, de fréquence, de phase et de filtrage.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS X = '0'('0' + '0'), l'incrément étant égal à '0.001136', soit '0', 9989 fois sur 10000 et '1', 11 fois sur 10000 à 0.5 Hz).
- affectation de la cellule 3 sur l'ensemble 0.
- la valeur de la cellule 3 n'est pas additionnée sur l'ensemble 0 (U8.U10,42), car le bit C_SCEL est inactif (8.M9).
- P4:
-
- les paramètres sont fixés à leur valeur.
- l'accumulation de POS_X sur l'axe-x = '0'.
- la valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite dans l'accumulateur d'ensemble M7.
- calcul de l'amplitude (13.U12) à '250'. La valeur de l'échantillon = '0'('250'* le premier point de la table sinus, soit '0'). La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur 'maximum' qui est acheminée vers la mémoire M6.
- accumulateur d'ensemble : la valeur est inscrite dans la mémoire M6, car le bit C_ENS est actif (8.M9). La valeur d'addition des cellules = '180', (amplitude max '0,9999'* somme des cellules 0 à 2 = '180'. Il est à noter que la cellule 3 n'est pas additionnée intentionellement, le bit C_CEL étant inactivé par le CPU). L'ensemble est initialisé à l'amplitude 'maximum'. La bascule 42, est mise à '0' initialisant l'ensemble pour le prochain passage.
- accumulateur de sortie: la valeur de l'ensemble 0 = 180.
- Troisième passage des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
- Quatrième passage (Sommaire)
-
Cellule 0- P1 :
-
- lecture de l'entrée lN_0 (ex : '0,04') acheminée sur IN_CEL. La valeur inscrite dans la mémoire M15 à '0,04' (POS_X='0').
- P3:
-
- POS_X (cellule 0)= '2'('1'+'1')
- ensemble 0 : valeur précédente de la cellule 0 = '33'.
- P4:
-
- valeur de l'échantillon de la cellule 0='4' (ampli '100'* valeur IN_0='0,04').
-
Cellule 1- P2_AMP
-
la cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur du passage précédent de la cellule 0 est captée sur la bascule 24. La modulation est active, soit à la valeur '33'.
- P3:
-
- POS_X = '21'('10'+'11'). (Incrément= '10', 79 fois sur 100; '11':21 fois sur 100 à 440 Hz).
- ensemble 0: addition des valeurs précédentes : cellule 0('33') + cellule 1('129') = '162'.
- P4:
-
- amplitude additionnée avec la valeur cellule 0='8'. L'amplitude totale = '104' ('100'+'4').
- valeur de l'échantillon de la cellule 1 = '101' ('104'*rampe adr.21 = '0,95').
-
Cellule 2- P2_FRE
-
la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est active, soit la valeur '0'.
- P3:
-
- POS_X = '1045' ('1034+11'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur 100 à 440 Hz).
- ensemble :addition des valeurs précédentes : cellule 0('33')+ cellule 1('129')+cellule 2('-8')= '154'.
- P4:
-
- fréquence additionnée à la valeur précédente '0' de la cellule 3, fréquence de la cellule= '10.21'('10.21'+'0').
- valeur de l'échantillon de la cellule 2 = '-18' ('100'*échantillon adr. 1045 = exemple -'0,18').
-
Cellule 3- P3:
-
- POS_X ='0'('0'+'0'). Incrément = '0,001136' soit '0', 9989 fois sur 10 000 et '1', 11 fois sur 10 000 à 0,5 Hz).
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9), sur l'ensemble (U8.U10,42).
- P4:
-
- la valeur de l'échantillon de la cellule 3 = 0('250'*1er point table sinus = '0').
- ensemble: le bit C_ENS est actif sur la mémoire M9. Le
total d'addition des cellules = '154' (somme des cellules 0 à 2)* '0,9999' (ensemble
ampl.max.). La
cellule 3 n'est pas additionnée, car C_CEL est inactivé par le CPU. - accumulateur de sortie : la valeur de l'ensemble 0 = '154'.
- Quatrième passage des cellules_4 à 191 sur les cycles P1 à PCPU (pas de
signal).
O-O-O-O-O-O-O-O- Un signal sera ainsi généré par la séquence des passages sur les cellules 0 à 2. Lacellule 3 étant à basse fréquence (0,5 Hz), l'effet de sa modulation sur la fréquence de la cellule 2 sera également lent, l'oscillation sinus de cette cellule n'avancera d'adresse qu'une fois tous les 998,9 passages (ou 11 fois sur 10 000, comme indiqué plus haut. Pour en voir l'effet, on passe tout de suite du 999 passage au 1001ième passage. - 999ième passage (sommaire)
-
Cellule 0- P1:
-
- lecture entrée lN_0 (ex : '-0.69') acheminée sur IN_CEL. La valeur est inscrite dans la mémoire M15 = '-0,69' (POS_X='0').
- P3:
-
- POS_X = '995' ('994'+'1'). A noter que cette valeur incrémentera jusqu'à E_B2 ('1023'), puis sera tronquée pour prendre la valeur de E_B1('0'), le fonctionnement étant cyclique.
- ensemble 0: valeur précédente cellule 0 (exemple= '-72')= '-72'.
- P4:
-
- la valeur de l'échantillon de la cellule 0='-69' (ampli '100'* valeur IN_0='-0,69').
-
Cellule 1- P2_AMP
-
la cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur au cycle précédent de la cellule 0 est captée sur la bascule 24. La modulation est active, soit à la valeur '-69'.
- P3:
-
- POS_X = '942'('932'+'10'). (Incrément= '10': 79 fois sur 100; '11':21 fois sur 100 à 440 Hz). A noter que cette valeur incrémente sur 10 bits ('0' à '1023').
- ensemble 0: addition des valeurs précédentes : cellule 0('-72') + cellule 1{'-23': rampe('-0,81')*('100'-'72')}='-95'.
- P4:
-
- l'ampitude est additionnée à la valeur de la cellule 0='69'. L'ampitude totale = '311'('100'-'69').
- valeur de l'échantillon de la cellule 1 = '-25' ('31'*rampe adr.942 = '-0,82').
-
Cellule 2- P2_FRE
-
la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est active, soit à la valeur '0'.
- P3:
-
- POS_X = '10159' ('10149'+'10'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur 100 à 440 Hz). A noter que cette valeur incrémentera jusqu'à E_FIN ('89224') puis s'arrête de s'incrémenter, le fonctionnement étant ici non cyclique.
ensemble 0 addition des valeurs précédentes : cellule 0('-72')+ cellule 1('-23')+cellule 2(ex:'32')='-63'.
- P4:
-
- la fréquence est additionnée à la valeur '0' précédente de la cellule 3. La fréquence de la cellule= '10,21'('10,21'+'0')
- la valeur de l'échantillon de la celulle 2 = '30' ('*100'*échantillon adr. 10159 = exemple '-0,30).
-
Cellule 3- P3:
-
- POS_X = '1'('0'+'1').(incrément = '0,001136': '0':9989 fois sur 10 000 et '1':11 fois sur 10 000 à 0,5 Hz).
- la valeur cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9) sur l'ensemble (U8.U10,42).
- P4:
-
- la valeur de l'échantillon = '1'('250'*2ième point de la table de sinus nulle='0,006').
- ensemble: le bit C_ENS est actif sur la mémoire M9).
Le total d'addition des cellules = '-63' (somme des cellules 0 à 2)* '0,9999' (ensemble
ampl. max.). La
cellule 3 n'est pas additionnée, car C_CEL est inactivé par le CPU. - accumulateur de sortie : la valeur de l'ensemble 0 = '-63'.
- 999ième passages des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
- 1000ième passage (sommaire)
-
Cellule 0- P1:
-
- lecture de l'entrée lN_0 (ex : '-0,64') acheminée sur IN_CEL. La valeur est inscrite dans la mémoire M15 = '-0,64' (POS_X='0').
- P3:
-
- POS_X = '996' ('995'+'1').
- ensemble 0:
cellule 0 à la valeur précédente = '-69'.
- P4:
-
- la valeur d' l'échantillon de la cellule 0='-64' (ampli '100'* valeur IN_0='-0,64').
-
Cellule 1- P2_AMP
-
cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur pendant le passage précédent de la cellule 0 est captée sur la bascule 24. La modulation est active, soit à la valeur '-69'.
- P3:
-
- POS_X = '953'('942'+'11').
- ensemble 0: addition des valeurs précédentes : cellule 0('-69') + cellule 1{'-25': rampe('-0,82')*('100'-'69')}='-95'.
- P4:
-
- l'amplitude est additionnée avec la valeur de la cellule 0='-64'. L'amplitude totale = '36' ('100'-'64').
- la valeur de l'échantillon de la cellule 1 = '-30' ('36'*rampe adr.953 = '-0,83').
-
Cellule 2- P2_FRE
-
la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est active, soit à la valeur '1' qui s'additionne à l'incrément de fréquence, soit '11' ('10,21' ou'10', 79 fois sur 100 et '11', 21 fois sur 100)+'1' = '12', qui sera la valeur lors du prochain passage. L'incrément courant est de '11'.
- P3:
-
- POS_X = '10170' ('10159'+'11'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur 100 à 440 Hz).
ensemble 0 addition des valeurs précédentes : cellule 0('-69')+ cellule 1('-25')+cellule 2('30')='-64'.
- P4:
-
- la fréquence est additionnée à la valeur '1' précédente de la cellule 3. La fréquence de la cellule= '11,21'('10,21'+'1').
- valeur de l'échantillon de la cellule 2 = '24' ('100'*échantillon adr. 10 170 = exemple '0,24').
-
Cellule 3- P3:
-
- POS_X= '1'('1'+'0').(incrément = '0,001136': '0':9989 fois sur 10 000 et '1':11 fois sur 10 000 à 0,5 Hz).
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9), sur l'ensemble (U8.U10,42).
- P4:
-
- valeur de l'échantillon de la cellule 3 = '1'('250'*2ième point table sinus nulle='0.006').
- ensemble: le bit C_ENS est actif sur la mémoire M9. Le total de l'addition des cellules = '-64' (somme cellules 0 à 2)* '0,9999' (ensemble ampl. max.).
- accumulateur de sortie: valeur
ensemble 0 = '-64'.
- 1000ième passages des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
- 1001ième passage (sommaire)
-
Cellule 0- P1:
-
- lecture de l'entrée lN_0 (ex : -'0,59') acheminée sur IN_CEL. La valeur est inscrite dans la mémoire M15 = '-0,59' (POS_X='0').
- P3:
-
- POS_X = '997' ('996'+'1').
- ensemble 0:
cellule 0 à la valeur précédente: = '-64'.
- P4:
-
- valeur de l'échantillon de la cellule 0='-59' (ampli '100'* valeur lN_0='-0,59').
-
Cellule 1- P2_AMP
-
la cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur au cycle précédent de la cellule 0 est captée sur la bascule 24, la modulation est active, soit à la valeur '-64'.
- P3:
-
- POS_X ='963'('953'+'10'). (Incrément= '10': 79 fois sur 100; '11':21 fois sur 100 à 440 Hz).
- ensemble 0: addition des valeurs précédentes : cellule 0('-64') + cellule 1('-30': rampe{-'0.83')*('100'-'64')}='-94'.
- P4:
-
- l'amplitude est additionnée à la valeur de la cellule 0='-59'. L'amplitude totale = '41' ('100'-'59').
- la valeur de l'échantillon de la cellule 1 = '-34' ('41'*rampe adr.963 = '-0,84').
-
Cellule 2- P2_FRE
-
la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est active, soit à la valeur '1'. Cette valeur s'additionne à l'incrément de fréquence, soit '10' ('10,21 '11', 21 fois sur 100)+'1' = '11', valeur sur prochain passage. L'incrément courant est de '11'.
- P3:
-
- POS_X = '10181' ('10170'+'11'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur 100 à 440 Hz).
ensemble 0 addition des valeurs précédentes : cellule 0('-64')+ cellule 1('-29')+cellule 2('24')='-71'.
- P4:
-
- la fréquence est additionnée à la valeur '1' précédente de la cellule 3. La fréquence de la cellule= '11,21'('10,21'+'1').
- valeur de l'échantillon de la cellule 2 = '21' ('100'*échantillon adr. 10181 = exemple '-0,21').
-
Cellule 3- P3:
-
- POS_X = '1'('1'+'0').(incrément = '0,001136': '0':9989 fois sur 10 000 et '1':11 fois sur 10 000 à 0,5 Hz).
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif sur M9, sur l'ensemble (U8.U10,42).
- P4:
-
- la valeur de l'échantillon de la cellule 3 = '1'('250'*2ième point table sinus nulle='0,006').
- ensemble 0 : le bit C_ENS est actif sur M9. Le total d'addition des cellules = '-63' (somme des cellules 0 à 2)* '0,9999' (ensemble ampl. max).
- accumulateur de sortie : valeur de l'ensemble 0 = '-71'.
- 1001ième passages des cellules_4 à 191 sur les cycles P1 à PCPU (pas de
signal).
Le signal sera ainsi généré par la séquence des passages, sur les cellules 0
à 2. La
cellule 3 étant à basse fréquence (0.5 Hz) l'effet de sa modulation sur la fréquence de la cellule 2 se fait sentir plus lentement, l'incrément de la cellule 2 (base '10,21') suit l'évolution lente du sinus de la cellule 3 ('10,21'+'1' aux passages 1001 à 1998, '10,21'+'3' aux passages 1999 à 2996, '10,21'+'4' aux passages 2997 à 3994, '10,21'+'6' aux passages 3995 à 4991, etc).
- First pass (during the execution of the initiation operations described in paragraphs 1.1.1. To 1.2.4):
-
Cell 0- P1:
-
- time x-axis direction: positive
- reading of the input lN_0 (example: value '0.28'). This value is sent to lN_CEL (16.103), and written in memory (17.M15) to an undefined address (POS_X) but within the address limits established at the initialization of the cell, either between E_DEB (0 ) and E_END (1023).
-
cell 0 is not subject to an external amplitude, frequency, phase or filtering command, signals P2_AMP, P2_FRE, P2_PHA and P2_FLT are inoperative.
- P3:
-
- the parameters of
cell 0 are initialized according to the data entered by the CPU at the values resulting from initialization. - selection of
set 0 oncell 0. - recording of the value of
cell 0 by the active bit C_SCEL on (8.M9) on the set (8.U10,42). This value is zero like the previous value. The cell is initialized at zero amplitude during the previous passages.
- the parameters of
- P4:
-
- the parameters of
cell 0 are fixed at their value. - accumulation of POS_X on the x-axis of cell 0 (5.M3; 6.20B).
- zero value accumulated during the sub-cycle P3 (8.42) entered on the assembly accumulator (8.M7).
- calculation of the amplitude (13.U12) of
cell 0 = '100'. Value of the sample fromcell 0 = '28' (amplitude '100' * Value lN_0 = '0.28'). Storage of this value (13.M13). - calculation of the amplitude of the
set 0 = '0', value conveyed on the memory M6 (not memorized). - accumulator of the assembly: no value is written in the memory M6 (bit C_ENS inactive on 8.M9). The previous value is zero. The set initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters of
-
Cell 1- P1:
-
- x-axis direction: positive
- P2_AMP
-
-
Cell 1 is subject to an external amplitude command bycell 0. The value calculated in the previous cycle of the oscillation of cell 0 (13.M13) is captured on flip-flop 24 (fig.5). The modulation is active at the value '28'.
Sincecell 1 is not subject to an external frequency, phase and filtering control, the signals P2_FRE, P2_PHA and P2_FLT are inoperative. -
- P3:
-
- the parameters of
cell 1 are initialized according to the data entered by the CPU at values acquired during initialization. - assignment of
cell 0 to set 0. - addition of the value of
cell 1 by the active bit C_SCEL (8.M9) on set 0 (8.U10,42). This value is zero like the previous one. The cell was initialized at amplitude '0' during the previous passages.
- the parameters of
- P4:
-
- the parameters of
cell 1 are fixed (amplitude + modulation) at the value '28'. - POS_X is accumulated on the x-axis of
cell 1. The value is undetermined. - the zero value accumulated in the sub-cycle P3 on the flip-
flop 42 is written to the assembly accumulator M7 (FIG. 8). - calculation of the amplitude (13.U12) of
cell 1 at the value '128'('100' AMP + '28 '(Val.cellule 0)). The value of the sample is undetermined ('128' * ramps to an undetermined address). Memorization in memory M13. - the amplitude of the assembly at the value '0' is routed to memory M6 (not memorized).
- accumulator of the set: the value is not written to memory M6, the bit C_ENS being inactive (8.M9). The previous value is zero, the set having been initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters of
-
Cell 2- P1:
-
- x-axis direction: positive
- P2_FRE
-
-
cell 2 is only subject to an external frequency control bycell 3. The value of the oscillation ofcell 3 on the previous pass is zero and picked up on flip-flop 24. The modulation is zero.
-
- P3:
-
- the parameters of
cell 2 are initialized according to the data entered by the CPU at the values acquired during initialization. - assignment of
cell 2 onset 0. - addition of the value of
cell 2, the bit C_SCEL being active (8.M9), on the set (8.U10,42). The value is zero, because the previous value is zero and the cell was initialized to amplitude '0' during the previous passages.
- the parameters of
- P4:
-
- the parameters of
cell 2 are fixed at their value. - POS_X is accumulated on the x-axis. The value is undefined and between E_DEB (1024) and E_FIN (89224).
- the zero value accumulated in the sub-cycle P3 on the flip-
flop 42 is written on the accumulator of the assembly (8.M7). - amplitude calculation (13.U12; value '100'). The value of the sample is undetermined ('100' * sample with undetermined address). The value is stored in memory M13.
- the amplitude calculated for
set 0 is routed to memory M6, but not memorized. - accumulator of the assembly: no value is written in the memory M6 because the bit C_ENS is inactive (8.M9). The previous value is zero and the set is initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters of
-
Cell 3- P1:
-
- x-axis direction: positive
-
cell 3 is not subject to any external amplitude, frequency, phase or filtering control.
- P3:
-
- the parameters are initialized according to the data initialized by the CPU;
- assignment of
cell 3 to set 0; - the value of
cell 3 is not added to set 0 (8.U10,42) because the C_SCEL bit is inactive (8.M9).
- P4:
-
- the parameters are fixed at their value.
- POS_X is accumulated on the x-axis at an unspecified value.
- the zero value accumulated during the sub-cycle P3 on the flip-
flop 42 is written on the assembly accumulator (8.M7). - the amplitude (13.U12) is calculated (value '250'). The sample value of
cell 3 is undetermined ('250' * sine with undetermined address). Memorization in memory M13. - the amplitude of the assembly is calculated (value '0') and routed to memory M6.
- accumulator of the assembly: the value is written in the memory M6, because the bit C_ENS is active (8.M9). The previous value is zero. The set was initialized at amplitude '0' during the previous passages. The flip-
flop 42 is set to zero to initialize the assembly for the next pass. - output accumulator: the value of
set 0 is zero.Passage 0 then involves the treatment ofcells 4 to 191 during cycles P1 to PCPU. There is no signal.
- Second run II takes place during the phasing and registration of the overall parameters (paragraphs 1.2.5., 1st sample):
-
Cell 0- P1
-
- phasing is carried out by writing the value '0' (number of the
set 0 to be phased, all cells included) on flip-flop 44 (Figure 8). As the phase values are '0', the POS_X term of the x-axis is initialized on the circuit of figure 7 during the following P3 sub-cycle. The initialization signal C_lNlT is generated byblock 50 and routed togate 208 which produces the signal CD_lNlT. POS_X ofcell 0 is initialized to E_DEB (cell 0) = '0'. - reading of the input lN_0 (ex: '0.35') and transmission to IN_CEL. The value is written to memory M15 (POS_X =?).
-
Cell 0 is not subject to any external command.
- phasing is carried out by writing the value '0' (number of the
- P3:
-
- the parameters of
cell 0 are unchanged from the previous passage. - the circuit of FIG. 7 (block 35 signal CD_lNlT) recognizes the ordered phasing during the cycle P1. POS_X is set to '0' on
cell 0. - assignment of
cell 0 to set 0. - writing of the value of
cell 0 by the active bit C_SCEL (8.M9) on the set (8.U10,42); the amplitude value was '100'.
- the parameters of
- P4:
-
- the parameters of
cell 0 are fixed at their value. - accumulation of POS_X on the x-axis of
cell 0 = '0' (phase '0'). - value accumulated during the sub-cycle P3 on the flip-
flop 42 is written to the assembly accumulator M7. - calculation of the amplitude (13.U12) of
cell 0 at the value '100'. The sample value ofcell 0 = '35'('100' * lN_0 = '0.35'). Memorization on memory M13. - calculation of the amplitude of the set at the value '0'. It is routed to memory M6 but not memorized.
- accumulator of the set: the value is not written to memory M6 because the bit C_ENS is inactive (8.M9). The previous value is zero, the set was initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters of
-
Cell 1- P1:
-
- phasing on the
whole 0 of the cell, executed during the P3 sub-cycle; E_DEB = '0'.
- phasing on the
- P2_AMP
-
-
cell 1 is only subject to an external amplitude command bycell 0. The value calculated during the previous cycle of oscillation ofcell 0 and stored in memory M13 is picked up on flip-flop 24. The modulation is active at value '35'.
-
- P3:
-
- the parameters of
cell 1 are unchanged from the previous passage. - the circuit of Figure 7 (block 35 signal CD_lNlT) recognizes the ordered phasing during cycle P1. POS_X is set to '0' on cell 1 (E_DEB).
- assignment of
cell 1 onset 0. - addition of the value of
cell 1, the bit C_SCEL being active (8.M9), on the set (8.U10,42). The previous values are cell 0 ('28 ') + cell 1 (?). The value is therefore undetermined.
- the parameters of
- P4:
-
- the parameters of
cell 1 are fixed at their value at amplitude is added the value of cell 0 (5.U4, M3; 6.20A) which modulates it. The total amplitude of the cell = '135'. - accumulation of POS_X on the x-axis of
cell 1 = '0' (phase '0'). - value accumulated during the sub-cycle P3 on the flip-
flop 42 is written on the assembly accumulator M7. - calculation of the amplitude (13.U12) of
cell 1 = '135', i.e. '100' Ampl + '35' (value cell 0). The value of the sample incell 1 = '134'('135' * start ramp '0.99 '). The value is stored in memory M13. - calculation of the amplitude of the assembly at the value '0' which is routed on the memory M6 but not memorized.
- accumulator of the set. The value is not written to memory M6 because the C_ENS bit is inactive (8.M9). The previous value is zero. The set initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters of
-
Cell 2- P1:
-
- phasing on the
whole 0 of the cell, executed during the P3 sub-cycle. POS_X oncell 2 is initialized to E_DEB = '1024'.
- phasing on the
- P2_FRE
-
-
cell 2 is only subject to an external frequency control bycell 3. The value calculated during the previous passage of the oscillation of cell 3 (13.M13) is captured on flip-flop 24. The modulation is active at an undetermined value.
-
- P3:
-
- the parameters are unchanged from the previous passage.
- the circuit of Figure 7 (block 35 signal CD_INIT) recognizes the ordered phasing during cycle P1. POS_X is set to '1024' (E_DEB).
- assignment of
cell 2 to set 0. - addition of the value of
cell 2 by the active bit C_SCEL (8.M9) on set 0 (8.U10,42) to the previous values: cell 0 ('28 ') + cell 1 (?) + cell 2 (?). The value is therefore undetermined.
- P4:
-
- the parameters are fixed at their value. The frequency is added to the value of cell 1 (5.U4, M3; 6.20B) which modulates it according to the value accumulated on the first pass (ex: accumulated value = undetermined). As the phasing is in progress, the frequency value has no role.
- accumulation of POS_X on the x-axis of
cell 2 = '1024' (phase '0'). - value accumulated during the sub-cycle P3 on the flip-
flop 42 is written on the assembly accumulator M7. - calculation of the amplitude (13.U12) at the value '100'. The value of the sample in
cell 2 = '11'('100' * first trumpet point for example '0.11' on address 1024). The value is stored in memory M13. - calculation of the amplitude of the assembly at the value '0' which is routed to memory M6 but not memorized.
- accumulator of the set: the value is not written to memory M6 because the bit C_ENS is inactive (8.M9). The previous value is zero. The set initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
-
Cell 3- P1:
-
- phasing on the
whole 0 of the cell, executed in the P3 sub-cycle. - no subjection to an external command during the P2_AMP, P2_FRE, P2_PHA and P2_FLT sub-cycles.
- phasing on the
- P3:
-
- the parameters are unchanged from the previous passage.
- the circuit of Figure 7 (block 35 signal CD_INIT) recognizes the ordered phasing during cycle P1. POS_X is set to 0.
- assignment of
cell 3 to set 0. - the value of
cell 3 is not added, the bit C_SCEL being inactive (8.M9), on the set (8.U10,42).
- P4:
-
- the parameters are fixed at their value.
- accumulation of POS_X on the x-axis = '0' (phase '0').
- value accumulated during the sub-cycle on the flip-
flop 42 is written on the assembly accumulator M7. - calculation of the amplitude (13.U12) at the value '250'. The value of the sample = '0'('250' * the first point of the sine table = '0'). The value is stored in memory M13.
- calculation of the amplitude of the
set 0 at the value '0' which is memorized and conveyed in the memory M6. - accumulator of the set: the value written to the memory M6 (bit C_ENS active on 8.M9) cell addition value, set initialized at amplitude = '0' (set to maximum on the next pass only). Set to 0 of flip-flop 8.42, initializing the set for the next pass.
- output accumulator: the value of the
set 0 = '0' (amplitude = '0' * the sum of the samples ofcells 0 to 2),cell 3 not being added by choice. The C_CEL bit is deactivated by the CPU.
- Second passage of
cells 4 to 191 on cycles P1 to PCPU (no signal). - Third pass (after phasing, creation of the second sample):
-
Cell 0- P1:
-
- Axis-x direction: positive.
- reading of the input lN_0 (ex: '0,33') and routing on IN_CEL. The value '0.33' is written to memory M15 = (POS_X = '0').
- no subjection to an external command during the P2_AMP, P2_FRE, P2_PHA and P2_FLT sub-cycles.
- P3:
-
- the parameters are unchanged from the previous passage.
- incrementation of the POS_X address to the value '1'('0' + '1'). In the SC_ETR mode, the increment of POS_X is constant and equal to '1' (7.32).
- assignment of
cell 0 to set 0. - writing of the value '35' by the inactive bit C_SCEL (8.M9) on the set (8.U10,42), the previous value was '35 '.
- P4:
-
- the parameters are fixed at their value.
- accumulation of POS_X on the x-axis = '1'.
- value accumulated during the sub-cycle P3 on the flip-
flop 42 is written on the assembly accumulator M7. - calculation of the amplitude (13.U12) of
cell 0 at the value '100'. The value of the sample incell 0 = '33' (amplifier '100' * value lN_0 = '0.33'). The value is stored in memory M13. - calculation of the amplitude of the assembly at the 'maximum' value, which is routed to memory M6 but not memorized.
- assembly accumulator: the value is not written to memory M6 because the bit C_ENS is inactive (8.M9). The previous value is maintained until the last cell of
set 0. - output accumulator: the value of the
set 0 = zero.
-
Cell 1- P1:
-
- Axis-x direction: positive.
- P2_AMP
-
-
cell 1 is only subject to an external amplitude command bycell 0. The value calculated in the previous cycle of the oscillation of cell 0 (13.M13) is captured on flip-flop 24. Modulation is active, i.e. the value '33'.
-
- P3:
-
- the parameters of
cell 1 are unchanged from the previous passage. - increment of the POS_X address of
cell 1 = '10'('0' + '10'). Note that the increment is equal to '10', 79 times out of 100 and equal to '11', 21 times out of 100 at 440 Hz. - assignment of
cell 1 onset 0. - addition of the value of
cell 1, by the active bit C_SCEL (8.M9), on the set (8.U10,42). The previous values are: cell 0 ('35 ') + cell 1 (' 134 ') =' 169 '.
- the parameters of
- P4:
-
- the parameters are fixed at their value. The amplitude is added to the value of cell 0 (5.U4, M3 of 6.20A) which modulates it by the value '33'. The total amplitude of
cell 1 is therefore '100' + '33' = '133'. - accumulation of POS_X on the x-axis of
cell 1 = '10'. - value accumulated in sub-cycle P3 in flip-
flop 42 is written to the assembly accumulator (8.M7). - calculation of the amplitude (13.U12) of
cell 1 at '133'{'100'ampl+' 33 '(value cell 0)}. - sample value ofcell 1 = '129'('133' * '0.97'). The value '0.97' is the value of the ramp ataddress 10. This value is stored (13.M13). - calculation of the amplitude of the set at 'maximum'. This value is sent to memory M6, but not memorized.
- assembly accumulator: the value is not written to memory M6 because the bit C_ENS is inactive (8.M9). The previous value is zero. The set was initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters are fixed at their value. The amplitude is added to the value of cell 0 (5.U4, M3 of 6.20A) which modulates it by the value '33'. The total amplitude of
-
Cell 2- P1:
-
- Axis-x direction: positive.
- P2_FRE
-
-
cell 2 is only subject to an external frequency control bycell 3. The value calculated during the previous passage of the oscillation of cell 3 (13.M13) is captured on flip-flop 24. The modulation is active at value '0'.
-
- P3:
-
- the parameters of
cell 2 are unchanged from the previous passage. - increment of the POS_X address of
cell 2 = '1034'('1024' + '10'). Here too, the increment is equal to '10', 79 times out of 100 and equal to '11', 21 times out of 100 at 440 Hz). - allocation of
cell 2 onset 0. - addition of the value of
cell 2 by the active bit C_SCEL (8.M9) on the set (U8.U10,42). The previous values are: cell 0 ('35') + cell 1 ('134') + cell 2 ('11 ') =' 180 '.
- the parameters of
- P4:
-
- the parameters of
cell 2 are fixed at their value. The frequency is added to the value of cell 3 (5.U4, M3 of 6.20B) which modulates it, here at the value '0'. The cell frequency is therefore '10 .21 '('10 .21' + '0'). - accumulation of POS_X on the x-axis = '1034'.
- the value accumulated during the sub-cycle P3 on the flip-
flop 42 is written on the assembly accumulator M7. - calculation of the amplitude (13.U12) of
cell 2 at the value '100' (amplitude = '100'). The value of the sample fromcell 1 = '-8', for example ('100' * sample from address 1034 which is assumed here to be '-0.08'). The value is stored in memory M13. - calculation of the amplitude of the
set 0 at the 'maximum' value routed to memory M6, but not memorized. - assembly accumulator: the value is not written to memory M6 because the bit C_ENS is inactive (8.M9). The previous value is zero. The set is initialized at amplitude '0' during the previous passages.
- output accumulator: the value of
set 0 is zero.
- the parameters of
-
Cell 3- P1:
-
- Axis-x direction: positive.
- no
cell 3 is subject to an external amplitude, frequency, phase and filtering command.
- P3:
-
- the parameters are unchanged from the previous passage.
- increment of the POS address X = '0'('0' + '0'), the increment being equal to '0.001136', that is '0', 9989 times out of 10000 and '1', 11 times out of 10000 to 0.5 Hz).
- assignment of
cell 3 onset 0. - the value of
cell 3 is not added to set 0 (U8.U10,42), because the bit C_SCEL is inactive (8.M9).
- P4:
-
- the parameters are fixed at their value.
- the accumulation of POS_X on the axis-x = '0'.
- the value accumulated during the sub-cycle P3 on the flip-
flop 42 is written to the assembly accumulator M7. - calculation of the amplitude (13.U12) at '250'. The value of the sample = '0'('250' * the first point of the sine table, ie '0'). The value is stored in memory M13.
- calculation of the amplitude of the assembly at the 'maximum' value which is routed to the memory M6.
- assembly accumulator: the value is written in memory M6, because the bit C_ENS is active (8.M9). The cell addition value = '180', (max amplitude '0.9999' * sum of
cells 0 to 2 = '180'. Note thatcell 3 is not intentionally added, the bit C_CEL being inactivated by the CPU). The set is initialized at the 'maximum' amplitude. Flip-flop 42, is set to '0' initializing the assembly for the next pass. - output accumulator: the value of the
set 0 = 180.
- Third passage of
cells 4 to 191 on cycles P1 to PCPU (no signal). - Fourth passage (Summary)
-
Cell 0- P1:
-
- reading of the input lN_0 (ex: '0,04') routed on IN_CEL. The value entered in memory M15 at '0.04' (POS_X = '0').
- P3:
-
- POS_X (cell 0) = '2'('1' + '1')
- set 0: previous value of
cell 0 = '33'.
- P4:
-
- value of the sample in
cell 0 = '4' (amplifier '100' * value IN_0 = '0.04').
- value of the sample in
-
Cell 1- P2_AMP
-
-
cell 1 undergoes the external amplitude command bycell 0. The value of the previous passage fromcell 0 is picked up on flip-flop 24. The modulation is active, ie at the value '33'.
-
- P3:
-
- POS_X = '21'('10' + '11'). (Increment = '10', 79 times out of 100; '11': 21 times out of 100 at 440 Hz).
- set 0: addition of the previous values: cell 0 ('33 ') + cell 1 (' 129 ') =' 162 '.
- P4:
-
- amplitude added with
cell value 0 = '8'. Total amplitude = '104'('100' + '4'). - value of the sample in
cell 1 = '101'('104' * ramp addr 21 = '0.95').
- amplitude added with
-
Cell 2- P2_FRE
-
-
cell 2 undergoes the external frequency command bycell 3. The value of the previous passage fromcell 3 is picked up on flip-flop 24. The modulation is active, ie the value '0'.
-
- P3:
-
- POS_X = '1045'('1034 + 11'). (Increment = '10': 79 times out of 100; '11': 21 times out of 100 at 440 Hz).
- set: addition of the previous values: cell 0 ('33 ') + cell 1 (' 129 ') + cell 2 (' - 8 ') =' 154 '.
- P4:
-
- frequency added to the previous value '0' of
cell 3, frequency of cell = '10 .21 '(' 10.21 '+' 0 '). - value of the sample in
cell 2 = '-18'('100' * sample addr. 1045 = example -'0.18 ').
- frequency added to the previous value '0' of
-
Cell 3- P3:
-
- POS_X = '0'('0' + '0'). Increment = '0.001136' or '0', 9989 times out of 10,000 and '1', 11 times out of 10,000 at 0.5 Hz).
- the value of
cell 3 is not added, the bit C_SCEL being inactive (8.M9), on the whole (U8.U10,42).
- P4:
-
- the value of the sample in
cell 3 = 0 ('250' * 1st point sine table = '0'). - set: bit C_ENS is active on memory M9. Total cell addition = '154' (sum of
cells 0 to 2) * '0.9999' (maximum ampl. Set).Cell 3 is not added, because C_CEL is inactivated by the CPU. - output accumulator: the value of the
set 0 = '154'.
- the value of the sample in
- Fourth passage of cells_4 to 191 on cycles P1 to PCPU (no signal).
OOOOOOOO- A signal will be generated by the sequence of passages oncells 0 to 2. Sincecell 3 is at low frequency (0.5 Hz), the effect of its modulation on the frequency ofcell 2 will also be slow, the sinus oscillation of this cell will only advance its address once every 998.9 passages (or 11 times out of 10,000, as indicated above. To see the effect, we immediately pass 999 passage to the 1001st passage. - 999th passage (summary)
-
Cell 0- P1:
-
- reading input lN_0 (ex: '-0.69') routed to IN_CEL. The value is written to memory M15 = '-0.69' (POS_X = '0').
- P3:
-
- POS_X = '995'('994' + '1'). Note that this value will increment up to E_B2 ('1023'), then will be truncated to take the value of E_B1 ('0'), the operation being cyclical.
- set 0: previous value cell 0 (example = '-72') = '-72'.
- P4:
-
- the value of the sample in
cell 0 = '- 69' (amplifier '100' * value IN_0 = '- 0.69').
- the value of the sample in
-
Cell 1- P2_AMP
-
-
cell 1 undergoes the external amplitude command bycell 0. The value in the previous cycle ofcell 0 is picked up on flip-flop 24. The modulation is active, ie at the value '-69'.
-
- P3:
-
- POS_X = '942'('932' + '10'). (Increment = '10': 79 times out of 100; '11': 21 times out of 100 at 440 Hz). Note that this value increases by 10 bits ('0' to '1023').
- set 0: addition of the previous values: cell 0 ('- 72') + cell 1 {'- 23': ramp ('- 0.81') * ('100' - '72')} = '- 95' .
- P4:
-
- the amplitude is added to the value of
cell 0 = '69 '. Total range = '311'('100' - '69'). - value of the sample in
cell 1 = '-25'('31' * ramp addr. 942 = '-0.82').
- the amplitude is added to the value of
-
Cell 2- P2_FRE
-
-
cell 2 undergoes the external frequency command bycell 3. The value of the previous passage fromcell 3 is picked up on flip-flop 24. The modulation is active, ie at the value '0'.
-
- P3:
-
- POS_X = '10159'('10149' + '10'). (Increment = '10': 79 times out of 100; '11': 21 times out of 100 at 440 Hz). Note that this value will increment up to E_END ('89224') then stop incrementing, the operation here being non-cyclical.
- set 0 addition of the previous values: cell 0 ('- 72') + cell 1 ('- 23') + cell 2 (ex: '32 ') =' - 63 '.
- P4:
-
- the frequency is added to the previous value '0' of
cell 3. The frequency of cell = '10, 21 '(' 10,21 '+' 0 ') - the value of the
cell sample 2 = '30'('*100' * sample addr. 10159 = example '-0.30).
- the frequency is added to the previous value '0' of
-
Cell 3- P3:
-
- POS_X = '1'('0' + '1'). (Increment = '0.001136': '0': 9989 times out of 10,000 and '1': 11 times out of 10,000 at 0.5 Hz).
- the
cell 3 value is not added, the C_SCEL bit being inactive (8.M9) on the whole (U8.U10,42).
- P4:
-
- the value of the sample = '1'('250' * 2nd point of the null sine table = '0.006').
- together: bit C_ENS is active on memory M9). Total cell addition = '-63' (sum of
cells 0 to 2) * '0.9999' (max. Ampl. Set).Cell 3 is not added, because C_CEL is inactivated by the CPU. - output accumulator: the value of the
set 0 = '-63'.
- 999th passages from
cells 4 to 191 on cycles P1 to PCPU (no signal). - 1000th passage (summary)
-
Cell 0- P1:
-
- reading of the input lN_0 (ex: '-0,64') routed on IN_CEL. The value is written to memory M15 = '-0.64' (POS_X = '0').
- P3:
-
- POS_X = '996'('995' + '1').
- set 0:
cell 0 at the previous value = '-69'.
- P4:
-
- the value of the sample in
cell 0 = '- 64' (amplifier '100' * value IN_0 = '- 0.64').
- the value of the sample in
-
Cell 1- P2_AMP
-
-
cell 1 undergoes the external amplitude command bycell 0. The value during the previous passage fromcell 0 is picked up on flip-flop 24. The modulation is active, ie at the value '-69'.
-
- P3:
-
- POS_X = '953'('942' + '11').
- set 0: addition of the previous values: cell 0 ('- 69') + cell 1 {'- 25': ramp ('- 0.82') * ('100' - '69')} = '- 95' .
- P4:
-
- the amplitude is added with the value of
cell 0 = '- 64'. Total amplitude = '36'('100' - '64'). - the value of the sample in
cell 1 = '-30'('36' * ramp adr. 953 = '-0.83').
- the amplitude is added with the value of
-
Cell 2- P2_FRE
-
-
cell 2 undergoes the external frequency command bycell 3. The value of the previous passage fromcell 3 is picked up on flip-flop 24. The modulation is active, ie at the value '1' which is added to the increment frequency, either '11'('10, 21 'or' 10 ', 79 times out of 100 and' 11 ', 21 times out of 100) +' 1 '=' 12 ', which will be the value during the next pass. The current increment is '11'.
-
- P3:
-
- POS_X = '10170'('10159' + '11'). (Increment = '10': 79 times out of 100; '11': 21 times out of 100 at 440 Hz).
- set 0 addition of the previous values: cell 0 ('- 69') + cell 1 ('- 25') + cell 2 ('30 ') =' - 64 '.
- P4:
-
- the frequency is added to the previous value '1' of
cell 3. The frequency of cell = '11, 21 '(' 10.21 '+' 1 '). - value of the sample in
cell 2 = '24'('100' * sample addr 10 170 = example '0.24').
- the frequency is added to the previous value '1' of
-
Cell 3- P3:
-
- POS_X = '1'('1' + '0'). (Increment = '0.001136': '0': 9989 times in 10,000 and '1': 11 times in 10,000 at 0.5 Hz).
- the value of
cell 3 is not added, the bit C_SCEL being inactive (8.M9), on the whole (U8.U10,42).
- P4:
-
- value of the sample in
cell 3 = '1'('250' * 2nd point zero sine table = '0.006'). - set: bit C_ENS is active on memory M9. Total cell addition = '-64' (
sum cells 0 to 2) * '0.9999' (max. Ampl. Set). - output accumulator: set
value 0 = '-64'.
- value of the sample in
- 1000th passages from
cells 4 to 191 on cycles P1 to PCPU (no signal). - 1001st passage (summary)
-
Cell 0- P1:
-
- reading of the input lN_0 (ex: -'0.59 ') routed on IN_CEL. The value is written to memory M15 = '-0.59' (POS_X = '0').
- P3:
-
- POS_X = '997'('996' + '1').
- set 0:
cell 0 at the previous value: = '-64'.
- P4:
-
- value of the sample in
cell 0 = '- 59' (amplifier '100' * value lN_0 = '- 0.59').
- value of the sample in
-
Cell 1- P2_AMP
-
-
cell 1 undergoes the external amplitude command bycell 0. The value in the previous cycle ofcell 0 is picked up on flip-flop 24, the modulation is active, ie at the value '-64'.
-
- P3:
-
- POS_X = '963'('953' + '10'). (Increment = '10': 79 times out of 100; '11': 21 times out of 100 at 440 Hz).
- set 0: addition of the previous values: cell 0 ('- 64') + cell 1 ('- 30': ramp {- '0.83') * ('100' - '64')} = '- 94'.
- P4:
-
- the amplitude is added to the value of
cell 0 = '- 59'. Total amplitude = '41'('100' - '59'). - the value of the sample in
cell 1 = '-34'('41' * ramp adr. 963 = '-0.84').
- the amplitude is added to the value of
-
Cell 2- P2_FRE
-
-
cell 2 undergoes the external frequency command bycell 3. The value of the previous passage fromcell 3 is picked up on flip-flop 24. The modulation is active, ie at the value '1'. This value is added to the frequency increment, either '10'('10, 21 '11', 21 times out of 100) + '1' = '11', value on next pass. The current increment is '11'.
-
- P3:
-
- POS_X = '10181'('10170' + '11'). (Increment = '10': 79 times out of 100; '11': 21 times out of 100 at 440 Hz).
- set 0 addition of the previous values: cell 0 ('- 64') + cell 1 ('- 29') + cell 2 ('24 ') =' - 71 '.
- P4:
-
- the frequency is added to the previous value '1' of
cell 3. The frequency of cell = '11, 21 '(' 10.21 '+' 1 '). - value of the sample in
cell 2 = '21'('100' * sample addr. 10181 = example '-0.21').
- the frequency is added to the previous value '1' of
-
Cell 3- P3:
-
- POS_X = '1'('1' + '0'). (Increment = '0.001136': '0': 9989 times in 10,000 and '1': 11 times in 10,000 at 0.5 Hz).
- the value of
cell 3 is not added, the bit C_SCEL being inactive on M9, on the whole (U8.U10,42).
- P4:
-
- the value of the sample in
cell 3 = '1'('250' * 2nd point zero sine table = '0.006'). - set 0: bit C_ENS is active on M9. Total cell addition = '-63' (sum of
cells 0 to 2) * '0.9999' (maximum ampl. Set). - output accumulator: value of the
set 0 = '-71'.
- the value of the sample in
- 1001st passages of cells_4 to 191 on cycles P1 to PCPU (no signal). The signal will thus be generated by the sequence of passages, on
cells 0 to 2. Sincecell 3 is at low frequency (0.5 Hz) the effect of its modulation on the frequency ofcell 2 is felt more slowly, the increment of cell 2 (base '10, 21 ') follows the slow evolution of the sinus of cell 3 ('10, 21' + '1' at passages 1001 to 1998, '10, 21 '+' 3 'at passages 1999 to 2996, '10, 21 '+' 4 'to passages 2997 to 3994, '10, 21' + '6' to passages 3995 to 4991, etc.).
Claims (31)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9811871 | 1998-09-23 | ||
FR9811871A FR2783630B1 (en) | 1998-09-23 | 1998-09-23 | SOUND SYNTHESIS SYSTEM FOR PROVIDING A SUIT OF ELECTRICAL SAMPLES |
Publications (1)
Publication Number | Publication Date |
---|---|
EP0989541A1 true EP0989541A1 (en) | 2000-03-29 |
Family
ID=9530745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP99402316A Withdrawn EP0989541A1 (en) | 1998-09-23 | 1999-09-22 | Tone synthesizing device delivering a sequence of electrical samples |
Country Status (5)
Country | Link |
---|---|
US (1) | US6137044A (en) |
EP (1) | EP0989541A1 (en) |
JP (1) | JP2000148151A (en) |
CA (1) | CA2282916A1 (en) |
FR (1) | FR2783630B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1806840A1 (en) | 2006-01-05 | 2007-07-11 | Siemens Schweiz AG | Adaptive gain adjustment of voice volume |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064622A1 (en) * | 2002-09-30 | 2004-04-01 | Smith Winthrop W. | Signal processing resource with sample-by-sample selective characteristics |
US8180063B2 (en) * | 2007-03-30 | 2012-05-15 | Audiofile Engineering Llc | Audio signal processing system for live music performance |
US20110011242A1 (en) * | 2009-07-14 | 2011-01-20 | Michael Coyote | Apparatus and method for processing music data streams |
JP5528987B2 (en) * | 2010-11-11 | 2014-06-25 | ピーエスフォー ルクスコ エスエイアールエル | Semiconductor device |
EP2871095B1 (en) * | 2012-07-04 | 2019-09-04 | Panasonic Intellectual Property Management Co., Ltd. | Proximity alarm device, proximity alarm system, mobile device, and method for diagnosing failure of proximity alarm system |
US9860638B2 (en) | 2013-09-20 | 2018-01-02 | Panasonic Intellectual Property Management Co., Ltd. | Acoustic device, acoustic system, moving body device, and malfunction diagnosis method for acoustic system |
Citations (4)
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 |
EP0235538A2 (en) * | 1986-01-31 | 1987-09-09 | Casio Computer Company Limited | Waveform generator for electronic musical instrument |
US5553011A (en) * | 1989-11-30 | 1996-09-03 | Yamaha Corporation | Waveform generating apparatus for musical instrument |
US5792970A (en) * | 1994-06-02 | 1998-08-11 | Matsushita Electric Industrial Co., Ltd. | Data sample series access apparatus using interpolation to avoid problems due to data sample access delay |
-
1998
- 1998-09-23 FR FR9811871A patent/FR2783630B1/en not_active Expired - Fee Related
-
1999
- 1999-09-22 EP EP99402316A patent/EP0989541A1/en not_active Withdrawn
- 1999-09-22 CA CA002282916A patent/CA2282916A1/en not_active Abandoned
- 1999-09-23 US US09/404,679 patent/US6137044A/en not_active Expired - Lifetime
- 1999-09-24 JP JP11270276A patent/JP2000148151A/en active Pending
Patent Citations (4)
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 |
EP0235538A2 (en) * | 1986-01-31 | 1987-09-09 | Casio Computer Company Limited | Waveform generator for electronic musical instrument |
US5553011A (en) * | 1989-11-30 | 1996-09-03 | Yamaha Corporation | Waveform generating apparatus for musical instrument |
US5792970A (en) * | 1994-06-02 | 1998-08-11 | Matsushita Electric Industrial Co., Ltd. | Data sample series access apparatus using interpolation to avoid problems due to data sample access delay |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1806840A1 (en) | 2006-01-05 | 2007-07-11 | Siemens Schweiz AG | Adaptive gain adjustment of voice volume |
Also Published As
Publication number | Publication date |
---|---|
US6137044A (en) | 2000-10-24 |
FR2783630A1 (en) | 2000-03-24 |
JP2000148151A (en) | 2000-05-26 |
CA2282916A1 (en) | 2000-03-23 |
FR2783630B1 (en) | 2000-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2639458A1 (en) | APPARATUS FOR PRODUCING, RECORDING OR REPRODUCING SOUND DATA AND ASSOCIATED SOUND DATA COMPRESSION CODING METHOD | |
EP1080433B1 (en) | CIRCUIT AND METHOD FOR CALIBRATING PHASE SHIFT BETWEEN A PLURALITY OF Analog-digital-converter in a DATA ACQUISITION SYSTEM | |
FR2522157A1 (en) | FAST CALCULATION CIRCUIT FOR DISCRETE FOURIER TRANSFORMATION OF A SIGNAL, IN PARTICULAR FOR A FOUCAULT CURRENT CONTROL APPARATUS | |
FR2638883A1 (en) | DIGITAL AUDIO SIGNAL GENERATION APPARATUS | |
FR3004876A1 (en) | FRAME LOSS CORRECTION BY INJECTION OF WEIGHTED NOISE. | |
EP0071506B1 (en) | Digital method and device for the phase error correction of a sampled signal and its application to the correction of television signals | |
EP0989541A1 (en) | Tone synthesizing device delivering a sequence of electrical samples | |
FR2679689A1 (en) | Process for synthesising sounds | |
US4108036A (en) | Method of and apparatus for electronically generating musical tones and the like | |
FR2476888A1 (en) | DIGITAL SYNTHESIZER OF SOUND SIGNALS AND APPLICATIONS TO ELECTRONIC MUSICAL INSTRUMENTS | |
US5036541A (en) | Modulation effect device | |
JPH0548648B2 (en) | ||
FR2551279A1 (en) | SINUSOIDAL WAVE GENERATOR, OF WHICH FREQUENCY IS SUBJECT TO A BINARY SIGNAL, PARTICULARLY FOR MODEM | |
GB2103005A (en) | Modulation effect device | |
FR2513462A1 (en) | METHOD FOR REDUCING THE SIZE OF A MEMORY OF A TRANSMITTER AND THIS TRANSMITTER | |
EP0021964B1 (en) | Digital polyphonic synthesizer of periodic signals | |
FR2747528A1 (en) | STRUCTURE OF DIGITAL FILTER BENCH DEVICE AND ITS OPERATING METHOD | |
FR2548490A1 (en) | PROGRAMMABLE CIRCUIT FOR SERIALALLY PARALLEL TRANSFORMATION OF A DIGITAL SIGNAL, AND ITS APPLICATION TO A DIGITAL VIDEO SIGNAL RECEIVER | |
EP0011576B1 (en) | Polyphonic synthesizer of periodical signals using digital techniques | |
FR2717294A1 (en) | Dynamic musical sound synthesis method e.g. for instrument, voice | |
FR2752323A1 (en) | METHOD AND DEVICE FOR RECORDING MULTIPLE PHONE SEQUENCES IN CYCLIC LOOPS | |
WO2002084510A2 (en) | Modular processor system | |
FR2466826A1 (en) | SYNTHESIZER OF SOUNDS | |
FR2463966A1 (en) | CURVE SYNTHESIZER BY ADDITION OF DIFFERENT CURVES | |
EP2304510A1 (en) | Estimation of the impulse response of a system on the basis of binary observations |
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 |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
17P | Request for examination filed |
Effective date: 20000904 |
|
AKX | Designation fees paid |
Free format text: AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20040401 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1026501 Country of ref document: HK |