EP0011576B1 - Polyphonic synthesizer of periodical signals using digital techniques - Google Patents

Polyphonic synthesizer of periodical signals using digital techniques Download PDF

Info

Publication number
EP0011576B1
EP0011576B1 EP79400886A EP79400886A EP0011576B1 EP 0011576 B1 EP0011576 B1 EP 0011576B1 EP 79400886 A EP79400886 A EP 79400886A EP 79400886 A EP79400886 A EP 79400886A EP 0011576 B1 EP0011576 B1 EP 0011576B1
Authority
EP
European Patent Office
Prior art keywords
block
memory
address
signal
generator
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.)
Expired
Application number
EP79400886A
Other languages
German (de)
French (fr)
Other versions
EP0011576A1 (en
Inventor
Christian Jacques Deforeit
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Deforeit Christian Jacques
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from FR7832727A external-priority patent/FR2442485A1/en
Priority claimed from FR7907339A external-priority patent/FR2452145A2/en
Application filed by Individual filed Critical Individual
Priority to AT79400886T priority Critical patent/ATE3918T1/en
Publication of EP0011576A1 publication Critical patent/EP0011576A1/en
Application granted granted Critical
Publication of EP0011576B1 publication Critical patent/EP0011576B1/en
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/08Instruments 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/10Instruments 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 using coefficients or parameters stored in a memory, e.g. Fourier coefficients
    • G10H7/105Instruments 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 using coefficients or parameters stored in a memory, e.g. Fourier coefficients using Fourier coefficients

Definitions

  • the present invention relates to a polyphonic synthesizer of periodic signals, using digital techniques and more generally electronic, polyphonic musical instruments comprising one or more of such a synthesizer.
  • Each periodic signal results from a succession of digital samples produced in particular from a memory of waveform samples, read at variable frequency, and then converted into an analog form.
  • the present invention relates to a synthesizer in which the samples are read at variable frequency, from several pulse signals produced by generators included in the synthesizer.
  • the synthesizer behaves like a set of independent signal generators controlled from a set of memories which each contain at least the amplitude of an output signal.
  • the synthesizer performs, by reading each memory, a digital-analog conversion, to convert the amplitude data read and an instantaneous phase value, into an analog, positive or negative, voltage or current step.
  • An object of the present invention is to eliminate this drawback by eliminating the synthesis of unsolicited signals. Also, during operation, only the memories relating to the signals to be produced are used.
  • Another object of the present invention is to take advantage of the time savings achieved to allow the synthesis of additional signals or to increase the number of possible periodic signals.
  • the invention solves the problem of limiting the work of the synthesizer to the production of the only signals requested, by organizing the data in the control memories so that there is a sequence between those data. Only the significant data are included in this sequence. The reading of the data in the control memories, from the pulse generators and the production of the corresponding samples, therefore take place according to the determined sequence, which is executed repeatedly.
  • the external operating means of the synthesizer can modify the sequence of data in the control memories at any time and replace it with a new sequence. They can also modify data used in the summary without changing the flow.
  • each control memory must contain, in addition to the data used for the production of a sample, additional information which is read by the control means of the synthesizer and is used by these to determine the next memory in the flow.
  • all of the control memories are divided into memory groups, in a number equal to the number of pulse generators, each group further containing an additional memory for containing a common submultiple of the instantaneous phase of several periodic signals and each memory comprising an area for receiving addressing information from another memory of the same group.
  • control memory is divided into groups determined by construction, limits the number of elementary sound components associated with each generator to the number of memories in a group minus one. Since all groups are rarely all used together, a number more or less large amounts of memory remain unused most of the time.
  • control memories of the synthesizer are no longer divided into groups of fixed length, each memory being able to be assigned to any generator. Each memory includes addressing information from another memory, for carrying out the sequence.
  • main blocks containing essentially a submultiple of the instantaneous phase as with several signals and secondary blocks containing essentially the amplitude of these signals are two types of memories: main blocks containing essentially a submultiple of the instantaneous phase as with several signals and secondary blocks containing essentially the amplitude of these signals.
  • control memories are not limited to that listed above. This allows wide possibilities of synthesizer commands by simple operations of writing in random access memory.
  • the present invention provides a significant reduction in these writing operations due to the sequence. Likewise, the internal operations of the synthesizer are reduced.
  • Optimizing read and convert operations also increases the design flexibility of the synthesizer.
  • the size of the memory groups can be modified to increase or decrease the number of possible signals, without increasing the complexity of the operation.
  • the number of generators and groups can vary, allowing the synthesis of new series of signals whose frequencies are not necessarily in relation to those of other generators.
  • the frequencies of these generators can be variable or random.
  • the total processing time of the synthesizer operations is constantly reduced to a minimum and the use of the memories is optimal.
  • the reduction in processing time makes it possible to reduce the time difference between the change of state of a generator and the calculation of the samples of the corresponding sound components.
  • Removing group boundaries allows you to build elementary tones containing a large number of components.
  • a digital musical synthesizer is built around a waveform memory containing a point-by-point digital representation of a period (or a portion of a period, if there are symmetries) d 'a periodic waveform.
  • the input for addressing the memory receives so-called “phase” signals and the output delivers the corresponding amplitude data or signals.
  • the waveform memory therefore transcodes a digital phase signal into a digital amplitude signal, which is then converted into analog form.
  • the waveform memory may contain a differential representation of this waveform. Each numerical value represents the difference between the amplitude of the point considered of the waveform and that of the previous point.
  • the digital to analog converter is then followed by an integrator which renders the final waveform.
  • This type of synthesis has the advantage of allowing the use of digital information of reduced size (8-bit words for amplitude) without sacrificing the quality of the final result equivalent to that of a direct synthesis using size information. larger (16 bit).
  • the first method consists in transmitting, to this memory, addressing signals at a constant frequency (very high) but whose phase difference between two consecutive addressed values varies according to the final frequency to be produced. Although requiring only a single clock for all frequencies, this method requires complex circuits necessarily combined with the synthesizer control circuits (keyboard, pedals, game selection circuits, etc.).
  • the second method consists in transmitting to the sample memory variable frequency addressing signals directly proportional to the frequency to be produced, this making it possible to address the memory with differences in constant phases whatever the frequency.
  • a simple incrementing operation suffices for all frequencies, which eliminates the need to calculate a phase difference for each frequency.
  • the synthesizer must include several generators which can be integrated and a logic for associating the generators and the control data.
  • the present invention relates to a synthesizer using the second synthesis method (multiple frequencies) in combination with a differential representation of the amplitude data, preferably.
  • This virtual keyboard then constitutes a physical border between the synthesizer and the rest of the musical instrument.
  • Such a synthesizer lends itself particularly well to an association with a microcomputer vis-à-vis which it behaves like a simple peripheral.
  • the virtual keyboard is now the essential organ of the synthesizer from which all commands come. It includes a set of memories which can therefore be addressed from inside the synthesizer for synthesis operations, and from outside the synthesizer for synthesis commands (controls of the frequencies and amplitudes of the signals to be produced).
  • the user accesses the virtual keyboard via a computer system which is not the subject of this request.
  • An action on a key or pedal of the instrument is detected by the computer system, which determines actions on several memories of the "virtual keyboard", according to a program recorded in the computer system.
  • This makes it possible to obtain the production of complex signals which are the sum of several elementary periodic signals of the synthesizer.
  • these periodic signals are sinusoids, the synthesis carried out is an additive synthesis or Fourier synthesis.
  • Figure 1 shows the block diagram of the synthesizer according to the invention.
  • the synthesizer is coupled to an external microcomputer system M via a set of connections called “bus” 2 .
  • This bus transmits address selection signals, data signals and write and possibly read control signals, for external control of the synthesizer.
  • the microcomputer system is connected to one or more K organ keyboards, and also, if necessary, to a pedal board, buttons, pull tabs, or any device for entering data or events or presentation information, which is not shown.
  • the microcomputer system places data in the memories of the virtual keyboard 1, according to the events it takes into account (pressing or releasing of the keys, buttons, drawbars, etc.), of a recorded program and of data. descriptions of the tones or timbres of the sounds produced by the synthesizer.
  • the virtual keyboard 1 comprises a set of memories which are selected using an address memory 3. Access to these memories is made, on the one hand from the microcomputer, and on the other hand from the other synthesizer circuits. Multiplexer circuits, not shown in the figure, allow these two accesses, avoiding conflicts.
  • This virtual keyboard 1 is divided into groups.
  • the internal addressing of a group memory is done using two signals, one, I, to designate the group and the other N, to designate the memory in group I.
  • the synthesizer furthermore comprises a determined number of rectangular signal generators generally designated by the reference 6.
  • rectangular signal is meant any binary signal, square signal or impulse signal.
  • 12 periodic signal generators whose repetition frequencies are distributed according to the 12 semitones of an octave, and also 4 variable frequency generators, either with analog control by voltage or current, or with command digital.
  • One of these generators can also be a noise generator, that is to say a generator at random frequency.
  • the number of groups is equal to that of the generators.
  • the selection of the memories of a group (signal 1) by the read control means involves the selection of the signal from a generator, using a multiplexer 7.
  • the selection address of said group (Signal 1) is kept in a memory 8.
  • This selection address is applied on the one hand to the multiplexer 7 for the selection of the signal. a generator and on the other hand, to the address memory 3 for the selection of the corresponding group.
  • the memories 8 and 3 can moreover be combined.
  • the signal from the selected generator is used to increment instantaneous phase data common to the signals produced by the entire corresponding group.
  • an increment and memory circuit 9 is coupled to the multiplexer 7, via a control circuit 10, and to the virtual keyboard 1. Details of the structure and operation of these circuits will appear in the following.
  • the calculation circuit 11 receives the instantaneous phase ⁇ incremented and memorized by the circuit 9, the octave rank number 0 and the waveform number F read in a memory of a group of the virtual keyboard and delivers the value 8A of an amplitude step.
  • the circuit 11 includes for example a memory of waveform samples which automatically delivers the data 8A read at an address formed by the aforementioned digital input signals.
  • the multiplication circuit 12 performs the multiplication of the value 8A by the amplitude value A read in the memory of the virtual keyboard and delivers the numerical value ⁇ A.
  • the converter 13 transforms this value ⁇ A into an analog step of current or voltage which is then amplified in 14 and diffused by 15.
  • Figure 2 describes the structure of the virtual keyboard. This structure is important. It allows you to understand how the synthesizer works as a whole.
  • the virtual keyboard is divided into 16 memory groups, as many groups as there are generators 6. Each group is itself divided into 16 memory blocks of 16 bits each.
  • Each memory block is further divided into four words, of 4 bits each (it is this last division which appears in FIG. 1).
  • each word contains at least one piece of information.
  • the blocks are read one by one and the information they contain is transferred and used by other circuits.
  • the address memory 3 selects, by its content, a block of the virtual keyboard, from among the 256.
  • the selection address has 2 parts, a 4-bit part specifying the group number I and a 4-bit part specifying the number N of a block in the group.
  • the four words it contains relate respectively, from left to right, to the number N1 of the next block to be read in the group (4 bits), to the number l 'of the next group when the processing relating to this group is complete, and of the two parts (high and low) of the instantaneous phase ⁇ of the fundamental signal.
  • Reading this block therefore makes it possible to obtain, in parallel, the 3 pieces of information N1, l 'and ⁇ .
  • each block is not limited to the only described above.
  • an analog output channel number, etc. can be specified.
  • the value N2 is used to specify the new block to be read in the group.
  • Reading this new block makes it possible to acquire new data F, O, A and N3 and so on.
  • the sequence of the reading of the blocks of a group is such that all the blocks of the group are not necessarily read. If an N value is never specified in this block, the corresponding block will be ignored. Similarly, the reading of the block is sequential, but the order in which this reading is made is not necessarily the order of the values of N.
  • FIG. 3 represents a flowchart which describes the sequence of the functions of the synthesizer.
  • the synthesizer performs a test, 21 to find out whether the generator number 1 (selected by the multiplexer 7) has changed state.
  • the complete processing of the data of a group is therefore only carried out every half-period of the corresponding generator.
  • circuit 10 does not deliver any active signal to the circuit 9, it then controls the transmission, by the circuit 8, of the following value l to the address memory 3.
  • the synthesis of the analog levels of the signals of the block previously read n was therefore not carried out.
  • the next generator test is then performed (functions 20 and 21, Figure 3) and so on.
  • FIG. 4 gives the detail of the structure of the converter.
  • phase ⁇ p, of harmonic rank or of octave 0 and of waveform F are applied simultaneously to a circuit 30.
  • This circuit 30 generates an address applied to a step memory 31.
  • This memory contains in fact successive samples of one or more waveforms, in differential representation.
  • the amplitude difference 8A read is added to the previous amplitude to obtain the new amplitude of the analog signal.
  • a multiplier circuit 12 performs the product of the value 8A by the actual amplitude A read in the block of the virtual keyboard 1.
  • the result AA is then applied to two analog digital converters 32 and 33 controlled either by a control circuit 35.
  • This variant makes it possible to be able to deliver different signals to several different analog outputs, the number of outputs being, of course, given solely by way of example.
  • analog outputs are also made from information contained in the virtual keyboard. For example, only three bits are used for the choice of a waveform among eight, the fourth bit being assigned to the choice of the analog channel.
  • control circuit 35 is for example a flip-flop.
  • One of the outputs of the flip-flop authorizes the transmission of data to a converter, while the other output prohibits transmission to the other converter.
  • the structure of the converters is known, this having already been described in document FR-A-2 396 375 published on January 26, 1979, in particular in FIG. 4.
  • they each include an adder-subtractor circuit, an up-down counter and an integrator circuit. They are followed respectively by amplifiers 36 and 37 and speakers 38 and 39.
  • Analog filter circuits having specific frequency responses can obviously be inserted in each analog channel.
  • Such filtering circuits called “formants”, can be useful for improving the sound result of certain complex waveforms. This is the case, for example, for signals imitating traditional wind or string instruments.
  • the synthesizer has a sufficient number of analog output channels to separate the complex signals from each other.
  • the circuit 35 is constituted, for example by a decoder circuit.
  • the circuit 30 which determines the address of the sample 8A in the memory 31 in fact comprises conventional logic circuits.
  • the phase value ⁇ is multiplied by the value of harmonic rank or octave 0 for the production of harmonics.
  • the phase ⁇ p simply undergoes a number of shifts to the left equal to the number 0.
  • the multiplier circuit 12 can also be constituted by a read only memory.
  • the digital input values 8A and A constitute the address of a value in memory. This value is then the product A x 8A.
  • An improved converter structure makes it easier to obtain a higher number of analog output channels.
  • all of the up-down-counter circuits are replaced by a commercial digital-analog converter circuit, for example a current 8-bit model.
  • This converter is then followed by a demultiplexer circuit which also receives the channel selection information read in the memory of the virtual keyboard.
  • the channel selection control circuit 35 is no longer necessary, this selection being carried out directly in the demultiplexer which generally includes an incorporated decoding circuit.
  • Each output channel of the demultiplexer is then connected to the input of an integrator with the same characteristic as the integrator of the converter described above.
  • each analog output channel can, in addition, include filtering circuits adapted to a type of signal or timbre.
  • the improved converter operates as follows: during a cycle for reading the memories of a group, the beginning of the cycle is devoted to the incrementation of the phase of the fundamental. At the input of the converter, there is therefore no data to convert during the start of the cycle, and this for a few microseconds. Then, as the data is read in the other memories of the group, the converter successively receives the data read and delivers as output a series of analog samples of well defined constant duration. These samples are then distributed by the demultiplexer to the integrators which then deliver a signal whose level (voltage or current) varies proportionally (in magnitude and in sign) to the amplitude of the samples applied.
  • the essential advantage of this structure of the converter lies in the fact that the successive samples delivered by the converter all come from the same group, and that between each series of samples there passes a sufficient time interval to extinguish all the possible instabilities in the circuits, due in particular to defects in the linearity of the conversion, significant rise times, etc. This results in a better immunity of the synthesizer to the intermodulation of signals between groups, this thanks to the structure of the virtual keyboard, and to the course of the cycle of readings of the data which it contains.
  • FIG. 5 describes another exemplary embodiment in which the division into groups of the memory of the virtual keyboard is no longer predetermined, this grouping being no longer provided physically but logically.
  • each group has a fixed number of memory blocks, which limits the number of elementary sound components associated with each generator.
  • the size of the groups is no longer determined in advance, but results from the sequence.
  • Each group of blocks then contains a main block and secondary blocks, each main block containing, at least, a block identification word, a word relating to a generator number, a word relating to the common submultiple of the phase. instantaneous of several periodic signals, a word containing an address pointer to another main block and a word containing an address pointer to another main or secondary block, and each secondary block containing, at least, an identification word block, a word relating to the amplitude of a periodic signal, a word relating to the harmonic or octave rank of said signal and a word containing an address pointer to another secondary or main block.
  • the pointers are used by the sequential chaining means so that each block read contains a pointer to a next block to be read. Only the blocks containing useful information are thus addressed and read and these blocks can be located at any position in the memories.
  • the chain produced is in fact a double chain: a chain of main blocks and a chain of secondary blocks.
  • the virtual keyboard 1 is also coupled to a microcomputer bus 2 which can read or write digital data there. Multiplexing means not shown allow access to the memories of the virtual keyboard by the bus or by the synthesizer.
  • the virtual keyboard is divided into 256 memory blocks, for example. Each block can be addressed separately and the address of a block is defined by an 8-bit set.
  • An address register 3 therefore contains, for each operation, the address of a block, and the blocks are read one by one, successively.
  • Each block is divided into several words which are addressed in parallel: these words are designated by the references 101, 102, 103, 104, 105, 106 and 107 for the two types of blocks (main and secondary).
  • the length of each word can be arbitrary; it only depends on the number of values that the quantity considered can take.
  • main blocks There are two types of blocks which differ only in the information they contain: main blocks and secondary blocks.
  • the main blocks contain the generator number and instantaneous phase information, at least, as well as an identification bit of the main type (1 for example).
  • Secondary blocks contain at least octave or harmonic number, waveform type, amplitude and output channel number information, as well as a secondary type identification bit (bit 0 for example).
  • Each main block relates to a generator while each secondary block relates to a sound component of the output signal.
  • Each main block further comprises two words which respectively contain a primary address pointer and an address pointer secondary.
  • Each primary pointer designates the address of another main block, either directly (absolute addressing) or indirectly (relative addressing). To simplify the presentation, we will assume that each pointer contains an absolute address.
  • Each secondary pointer designates the address of another secondary or primary block.
  • each secondary block includes a word containing a secondary address pointer, designating the address of another secondary or main block. From the point of view of bit location, the secondary pointers of the two blocks coincide.
  • the primary and secondary pointers are used to determine the sequence of the reading of the blocks.
  • An address selector 4 receives the two primary and secondary pointers, via connections 120 and 121, and transmits one of the two pointers to the address register 3.
  • a clock 110 periodically generates pulses which are applied to register 3. At each pulse, the address (the selected pointer) is recorded in register 3 and this then controls the addressing of the block designated by this address.
  • the different pointers are set up in the memory blocks by the microcomputer so that the sequence of addresses of the blocks by the register 3, at the rate of the clock 110, satisfies the conditions described below.
  • Each pulse of the clock 110 therefore causes the addressing of a new block and, consequently, the execution of a series of operations.
  • the virtual keyboard therefore delivers either a first series of data or a second series of data, and leads respectively to either a first series of operations or a second series of operations.
  • the synthesizer circuits which are connected to the virtual keyboard can therefore receive two types of information, only one of which can be taken into account.
  • the block identification bits having the same location (101) in the two blocks, then serve on the one hand to distinguish the information of a main block from that of a secondary block, and on the other hand, to validate or inhibit certain synthesizer operations.
  • the generator number 1 (word 103) is applied by connection 124 to a transition detector 5 which receives all the signals from the generators 6.
  • the submultiple ⁇ p of instantaneous phase (words 104 for the most significant and 105 for the least significant) is applied to the increment and memory circuit 9 by the bi-directional connections 125 and 126.
  • the state of the selected generator is compared with the least significant bit tp o of the phase applied to the detector 5, to detect a change of state of the generator.
  • the block type identification bit (word 101) is also applied to detector 5 (connection 122) in order to authorize detection only if it is a main block.
  • the detector 5 triggers on the one hand the incrementing and the memorization of the phase value ⁇ p by the circuit 9, the incremented value being immediately memorized in the main block in place of the previous value, and on the other hand, the selection (by connection 127) of the secondary pointer (word 107). The following period of the clock 110 then succeeds the reading of a secondary block.
  • Connection 127 transmits a secondary block selection command to selector 4.
  • the value of the phase ⁇ p, stored by the incrementing circuit 9, is applied to an address calculation circuit 111.
  • the octave number (word 102) is also applied to this circuit by the link 123 as well as F, the waveform number (word 103) via the link 124.
  • the information is combined so as to address a waveform memory 112 from which a sample is extracted which is applied to a multiplier circuit 12.
  • This circuit receives at the same time the amplitude value A (word 104) by connection 125.
  • the result of the product is applied to a digital-analog converter 13.
  • the secondary block identification bit (word 101) is applied to the converter to validate the conversion only in this case. There is therefore no conversion when the main block is read.
  • a demultiplexer 109 controlled by the output channel number (word 105), receives the analog output signal from the converter 13 and routes this signal to one of the integrators 114, 115, etc., 119.
  • All these operations are carried out in a duration shorter than the period of the clock 110.
  • the register 3 addresses a new block which can be either another secondary block or another main block.
  • FIG. 6 represents a flowchart explaining the operation of the reading and conversion control means, according to the sequence of the synthesizer of FIG. 5.
  • the generator number 1 (word 103 in Figure 1) is applied to the transition detector 5 to test the state of the corresponding generator (test 130 in Figure 2).
  • the generator has changed state.
  • the instantaneous phase value ( ⁇ p) is first incremented (132) then the secondary pointer is selected (133) making it possible to address a series of secondary blocks.
  • test 134 positive If it is a main block, the sequence continues for another generator (test 134 positive).
  • the sequence of reading of the blocks according to the invention is therefore designed to be traversed as quickly as possible, without addressing, or unnecessary calculations.
  • FIG. 7 shows the detail of the transition detector circuit 5.
  • It essentially comprises a multiplexer circuit 51 which receives the signals from the generators 6, on the one hand, and the number I (word 103), on the other hand, as a selection command.
  • the generators 6 deliver square signals so that the output 55 of the multiplexer is a binary signal.
  • the identification bit (word 101) is also applied to a validation input 56, so that only a main block can select a generator.
  • An exclusive OR circuit 52 receives the output signal from the multiplexer as well as the least significant bit cp o of the instantaneous phase.
  • circuit 52 The output of circuit 52 is connected to a non-inverting input of an AND circuit 53 and to an inverting input of an AND circuit 54.
  • the block identification signal (101) is also applied to non-inverting inputs of AND circuits 53 and 54.
  • the output of ET 53 controls the phase increment circuit 9. In fact, the output of this circuit can only be active (in state 1 in this case) if the selected block is a main block (signal 101 to 1) and if the designated generator has changed state (output at 1 of exclusive OR 52).
  • ET 54 controls the selection of primary or secondary pointers (selector 4).
  • the output of ET 54 is at state 0, commanding the selection of a secondary block.
  • the selection of a primary pointer is only obtained if the block read is of the main type and if the corresponding generator has not changed state.
  • This second variant of the invention makes it possible to improve the speed of calculation of the sound elements of the synthesizer without limiting the number of sound elements for each generator.
  • the invention applies to electronic musical instruments.
  • a musical instrument will therefore include a synthesizer according to the invention controlled by a microprocessor device, for example, which will load the data into the memories of the virtual keyboard 1, according to a desired sequence.
  • the generators 6 may contain between 12 generators at fixed frequencies and 16 generators, or more, at variable frequencies.
  • the address or part of the address of the memory blocks can be used for the conversion means, in the same way as the contents of these blocks. This is possible, for example, for generator number 1, and / or the octave rank. This variant reduces the flexibility of use of the memories, but reduces the number of memories required. Likewise, a different arrangement of the data in these memories is possible.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Organic Low-Molecular-Weight Compounds And Preparation Thereof (AREA)
  • Steering-Linkage Mechanisms And Four-Wheel Steering (AREA)
  • Processing And Handling Of Plastics And Other Materials For Molding In General (AREA)

Description

La présente invention se rapporte à un synthétiseur polyphonique de signaux périodiques, utilisant les techniques numériques et plus généralement les instruments de musiques électroniques, polyphoniques comportant un ou plusieurs de tel synthétiseur.The present invention relates to a polyphonic synthesizer of periodic signals, using digital techniques and more generally electronic, polyphonic musical instruments comprising one or more of such a synthesizer.

Un synthétiseur de ce genre a été décrit dans le document FR-A-2 396 375 publié le 26 janvier 1979.A synthesizer of this kind has been described in document FR-A-2,396,375 published on January 26, 1979.

Chaque signal périodique résulte d'une succession d'échantillons numériques produits notamment à partir d'une mémoire d'échantillons de forme d'onde, lus à fréquence variable, et convertis ensuite sous une forme analogique.Each periodic signal results from a succession of digital samples produced in particular from a memory of waveform samples, read at variable frequency, and then converted into an analog form.

Contrairement à d'autres dispositifs de synthèse musicale utilisant aussi les techniques numériques, dans lesquels les échantillons de forme d'onde sont lus dans la mémoire d'échantillons à fréquence unique fixe, mais à intervalle de phase variable (suivant la fréquence finale à obtenir), la présente invention concerne un synthétiseur dans lequel la lecture des échantillons s'opère à fréquence variable, à partir de plusieurs signaux impulsionnels produit par des générateurs inclus dans le synthétiseur.Unlike other music synthesis devices also using digital techniques, in which the waveform samples are read from the sample memory at a fixed single frequency, but at a variable phase interval (depending on the final frequency to be obtained ), the present invention relates to a synthesizer in which the samples are read at variable frequency, from several pulse signals produced by generators included in the synthesizer.

Une telle structure se prête mieux à la réalisation d'un synthétiseur complètement indépen- . dant du reste de l'instrument de musique, et qui peut être aisément commandé par microprocesseur.Such a structure lends itself better to the production of a completely independent synthesizer. of the rest of the musical instrument, and which can be easily controlled by microprocessor.

Le synthétiseur se comporte comme un ensemble de générateurs de signaux indépendants commandés à partir d'un ensemble de mémoires qui contiennent chacune, au moins l'amplitude d'un signal en sortie. Le synthétiseur effectue, en lisant chaque mémoire, une conversion numérique-analogique, pour convertir la donnée d'amplitude lue et une valeur de phase instantanée, en un échelon analogique, positif ou négatif, de tension ou de courant.The synthesizer behaves like a set of independent signal generators controlled from a set of memories which each contain at least the amplitude of an output signal. The synthesizer performs, by reading each memory, a digital-analog conversion, to convert the amplitude data read and an instantaneous phase value, into an analog, positive or negative, voltage or current step.

Dans un premier synthétiseur, tous les signaux périodiques qu'il peut produire sont générés cycliquement et en permanence, même si les amplitudes de la plupart sont nulles, parce que les circuits de commande du synthétiseur, actionnés par les générateurs impulsionnels inclus, commandent une conversion numérique-analogique pour chaque donnée de l'ensemble de mémoire, quelle que soit la valeur de cette donnée. Pour qu'un signal ne soit pas produit, il est alors nécessaire d'insérer une donnée égale à zéro dans la mémoire correspondante.In a first synthesizer, all the periodic signals which it can produce are generated cyclically and permanently, even if the amplitudes of most are zero, because the control circuits of the synthesizer, actuated by the impulse generators included, command a conversion digital-analog for each datum in the memory set, whatever the value of this datum. So that a signal is not produced, it is then necessary to insert a datum equal to zero in the corresponding memory.

La plupart du temps le nombre de signaux produits par le synthétiseur est petit devant le nombre maximum de signaux qu'il peut produire. Ceci entraîne que, dans le synthétiseur, de nombreuses opérations logiques de conversion sont effectuées inutilement pour des signaux qui ne sont finalement pas produits, et dans le micro-ordinateur de commande, des opérations d'écriture de données d'amplitude égales à zéro sont nécessaires, d'où une double perte de temps.Most of the time the number of signals produced by the synthesizer is small compared to the maximum number of signals it can produce. This leads to the fact that, in the synthesizer, numerous logical conversion operations are carried out unnecessarily for signals which are ultimately not produced, and in the control microcomputer, operations for writing data of amplitude equal to zero are necessary, hence a double loss of time.

Un objet de la présente invention est d'éliminer cet inconvénient en supprimant la synthèse des signaux non demandés. Aussi, à l'exploitation, seules les mémoires relatives aux signaux à produire sont utilisées.An object of the present invention is to eliminate this drawback by eliminating the synthesis of unsolicited signals. Also, during operation, only the memories relating to the signals to be produced are used.

Un autre objet de la présente invention est de mettre à profit l'économie de temps réalisée pour permettre la synthèse de signaux supplémentaires ou pour accroître le nombre de signaux périodiques possibles.Another object of the present invention is to take advantage of the time savings achieved to allow the synthesis of additional signals or to increase the number of possible periodic signals.

L'invention, telle qu'elle est caractérisée dans les revendications, résout le problème consistant à limiter le travail du synthétiseur à la production des seuls signaux demandés, en organisant les données dans les mémoires de commande de sorte qu'il existe un enchaînement entre ces données. Seules, les données significatives sont comprises dans cet enchaînement. La lecture des données dans les mémoires de commande, à partir des générateurs impulsionnels et la production des échantillons correspondants, s'effectuent donc selon l'enchaînement déterminé, qui est exécuté de manière répétitive. Les moyens d'exploitation externes du synthétiseur peuvent modifier à tout moment l'enchaînement des données dans les mémoires de commande et lui substituer un nouvel enchaînement. Ils peuvent également modifier des données utilisées dans la synthèse sans changer l'enchaînement.The invention, as characterized in the claims, solves the problem of limiting the work of the synthesizer to the production of the only signals requested, by organizing the data in the control memories so that there is a sequence between those data. Only the significant data are included in this sequence. The reading of the data in the control memories, from the pulse generators and the production of the corresponding samples, therefore take place according to the determined sequence, which is executed repeatedly. The external operating means of the synthesizer can modify the sequence of data in the control memories at any time and replace it with a new sequence. They can also modify data used in the summary without changing the flow.

Pour réaliser cet enchaînement bien connu dans la technique des ordinateurs, chaque mémoire de commande doit contenir, en plus de la donnée utilisée pour la production d'un échantillon, une information supplémentaire qui est lue par les moyens de commande du synthétiseur et est exploitée par ceux-ci pour déterminer la mémoire suivante dans l'enchaînement.To achieve this well-known sequence in computer technology, each control memory must contain, in addition to the data used for the production of a sample, additional information which is read by the control means of the synthesizer and is used by these to determine the next memory in the flow.

Selon une première variante de réalisation, l'ensemble des mémoires de commande est divisé en groupes de mémoires, en nombre égal au nombre de générateurs impulsionnels, chaque groupe contenant en outre une mémoire supplémentaire pour contenir un sous-multiple commun de la phase instantanée de plusieurs signaux périodiques et chaque mémoire comportant une zone pour recevoir une information d'adressage d'une autre mémoire du même groupe.According to a first alternative embodiment, all of the control memories are divided into memory groups, in a number equal to the number of pulse generators, each group further containing an additional memory for containing a common submultiple of the instantaneous phase of several periodic signals and each memory comprising an area for receiving addressing information from another memory of the same group.

Il apparaît donc que les moyens de commande internes du synthétiseur ne s'intéressent qu'aux mémoires de commandes reliées entre elles par l'enchaînement, les autres mémoires de commandes non comprises dans l'enchaînement étant ignorées. Les opérations du synthétiseur sont donc limitées à la production des seuls signaux périodiques à produire.It therefore appears that the internal control means of the synthesizer are only interested in the command memories linked together by the sequence, the other command memories not included in the sequence being ignored. The operations of the synthesizer are therefore limited to the production of the only periodic signals to be produced.

Cependant, le fait que la mémoire de commande soit découpée en groupes déterminés par construction, limite le nombre de composantes sonores élémentaires associées à chaque générateur au nombre de mémoires d'un groupe moins un. Comme tous les groupes sont rarement tous utilisés ensemble, un nombre plus ou moins grand de mémoires restent non utilisées la plupart du temps.However, the fact that the control memory is divided into groups determined by construction, limits the number of elementary sound components associated with each generator to the number of memories in a group minus one. Since all groups are rarely all used together, a number more or less large amounts of memory remain unused most of the time.

Selon une deuxième variante de l'invention, les mémoires de commande du synthétiseur ne sont plus divisées en groupes de longueur fixe, chaque mémoire pouvant être affectée à n'importe quel générateur. Chaque mémoire comporte une information d'adressage d'une autre mémoire, pour la réalisation de l'enchaînement. De plus, on distingue deux types de mémoires : des blocs principaux contenant essentiellement un sous-multiple de la phase instantanée comme à plusieurs signaux et des blocs secondaires contenant essentiellement l'amplitude de ces signaux.According to a second variant of the invention, the control memories of the synthesizer are no longer divided into groups of fixed length, each memory being able to be assigned to any generator. Each memory includes addressing information from another memory, for carrying out the sequence. In addition, there are two types of memories: main blocks containing essentially a submultiple of the instantaneous phase as with several signals and secondary blocks containing essentially the amplitude of these signals.

Bien entendu les informations qui peuvent être enregistrées dans les mémoires de commande ne sont pas limitées à celles énumérées précédemment. Ceci permet de larges possibilités de commandes du synthétiseur par de simples opérations d'écritures en mémoire vive.Of course, the information which can be recorded in the control memories is not limited to that listed above. This allows wide possibilities of synthesizer commands by simple operations of writing in random access memory.

La présente invention apporte une réduction importante de ces opérations d'écriture du fait de l'enchaînement. De même, les opérations internes du synthétiseur sont réduites.The present invention provides a significant reduction in these writing operations due to the sequence. Likewise, the internal operations of the synthesizer are reduced.

Parmi les avantages de l'invention, on peut citer la possibilité de réduction de la fréquence de l'horloge qui synchronise l'ensemble des circuits, d'où de meilleures possibilités d'intégration de ces circuits sous forme de circuits intégrés.Among the advantages of the invention, there may be mentioned the possibility of reducing the frequency of the clock which synchronizes all of the circuits, hence better possibilities for integrating these circuits in the form of integrated circuits.

L'optimisation des opérations de lecture et de conversion permet également d'accroître la souplesse de conception du synthétiseur. Ainsi la taille des groupes de mémoire peut être modifiée pour accroître ou diminuer le nombre de signaux possibles, ceci sans accroître la complexité de l'exploitation. De même, le nombre des générateurs et de groupes peut varier, permettant la synthèse de nouvelles séries de signaux dont les fréquences ne sont pas forcément en relation avec celles des autres générateurs. Ainsi, les fréquences de ces générateurs peuvent être variables ou aléatoires.Optimizing read and convert operations also increases the design flexibility of the synthesizer. Thus the size of the memory groups can be modified to increase or decrease the number of possible signals, without increasing the complexity of the operation. Likewise, the number of generators and groups can vary, allowing the synthesis of new series of signals whose frequencies are not necessarily in relation to those of other generators. Thus, the frequencies of these generators can be variable or random.

Grâce à la seconde variante, le temps de traitement total des opérations du synthétiseur est constamment réduit au minimum et l'utilisation des mémoires est optimale.Thanks to the second variant, the total processing time of the synthesizer operations is constantly reduced to a minimum and the use of the memories is optimal.

La réduction du temps de traitement permet de réduire l'écart de temps entre le changement d'état d'un générateur et le calcul des échantillons des composantes sonores correspondantes.The reduction in processing time makes it possible to reduce the time difference between the change of state of a generator and the calculation of the samples of the corresponding sound components.

La suppression des limites des groupes permet de constituer des sonorités élémentaires contenant un grand nombre de composantes.Removing group boundaries allows you to build elementary tones containing a large number of components.

La présente invention est exposée ci-après plus en détail à l'aide de dessins représentant seulement des modes d'exécution.

  • La figure 1 représente le schéma d'un synthétiseur selon la première variante, la mémoire de commande étant divisée en groupes ;
  • la figure 2 représente l'organisation des données à l'intérieur d'un groupe ;
  • la figure 3 représente un organigramme expliquant le déroulement des opérations du synthétiseur ;
  • la figure 4 montre un exemple de réalisation d'un convertisseur numérique-analogique ;
  • la figure 5 représente un synthétiseur selon la seconde variante préférée de l'invention ;
  • la figure 6 représente un organigramme de fonctionnement de cette seconde variante ; et
  • la figure 7 représente un détail de réalisation de la logique de détection des transitions des générateurs.
The present invention is explained below in more detail with the aid of drawings representing only embodiments.
  • FIG. 1 represents the diagram of a synthesizer according to the first variant, the control memory being divided into groups;
  • FIG. 2 represents the organization of the data within a group;
  • Figure 3 shows a flowchart explaining the flow of synthesizer operations;
  • FIG. 4 shows an exemplary embodiment of a digital-analog converter;
  • FIG. 5 represents a synthesizer according to the second preferred variant of the invention;
  • FIG. 6 represents an operating flow diagram of this second variant; and
  • Figure 7 shows a detail of the logic of detection of generator transitions.

D'une manière générale, un synthétiseur numérique musical est construit autour d'une mémoire de forme d'onde contenant une représentation numérique, point par point, d'une période (ou une portion de période, s'il existe des symétries) d'une forme d'onde périodique. L'entrée pour l'adressage de la mémoire reçoit des signaux dits de « phase et la sortie délivre les données ou signaux d'« amplitude correspondants. La mémoire de forme d'onde réalise donc le transcodage d'un signal numérique de phase en un signal numérique d'amplitude, qui est ensuite converti sous forme analogique.In general, a digital musical synthesizer is built around a waveform memory containing a point-by-point digital representation of a period (or a portion of a period, if there are symmetries) d 'a periodic waveform. The input for addressing the memory receives so-called “phase” signals and the output delivers the corresponding amplitude data or signals. The waveform memory therefore transcodes a digital phase signal into a digital amplitude signal, which is then converted into analog form.

Pour reconstituer un signal analogique périodique complet, il est nécessaire d'appliquer des signaux numériques de phase successifs à la mémoire de forme d'onde. Celle-ci délivre alors des signaux d'amplitude successifs appliqués au convertisseur numérique-analogique. Ces signaux analogiques sont filtrés pour éliminer le bruit de quantification et la forme d'onde analogique est restituée.To reconstruct a complete periodic analog signal, it is necessary to apply successive digital phase signals to the waveform memory. The latter then delivers successive amplitude signals applied to the digital-analog converter. These analog signals are filtered to eliminate quantization noise and the analog waveform is rendered.

Au lieu d'une représentation numérique directe de la forme d'onde finale, la mémoire de forme d'onde peut contenir une représentation différentielle de cette forme d'onde. Chaque valeur numérique représente l'écart entre l'amplitude du point considéré de la forme d'onde et celle du point précédent. Le convertisseur numérique analogique est alors suivi d'un intégrateur qui restitue la forme d'onde finale. Ce type de synthèse a l'avantage de permettre l'utilisation d'informations numériques de taille réduite (mots de 8 bits pour l'amplitude) sans sacrifier la qualité du résultat final équivalent à celui d'une synthèse directe utilisant des informations de taille plus importante (16 bits).Instead of a direct digital representation of the final waveform, the waveform memory may contain a differential representation of this waveform. Each numerical value represents the difference between the amplitude of the point considered of the waveform and that of the previous point. The digital to analog converter is then followed by an integrator which renders the final waveform. This type of synthesis has the advantage of allowing the use of digital information of reduced size (8-bit words for amplitude) without sacrificing the quality of the final result equivalent to that of a direct synthesis using size information. larger (16 bit).

Pour délivrer des signaux périodiques ayant des fréquences différentes en utilisant la même mémoire de forme d'onde, il existe deux méthodes radicalement opposées.To deliver periodic signals with different frequencies using the same waveform memory, there are two radically opposite methods.

La première méthode consiste à émettre, vers cette mémoire, des signaux d'adressage à fréquence constante (très élevée) mais dont la différence de phase entre deux valeurs adressées consécutives varie suivant la fréquence finale à produire. Bien que ne nécessitant qu'une horloge unique pour toutes les fréquences, cette méthode nécessite des circuits complexes nécessairement combinés aux circuits de commande du synthétiseur (clavier, pédaliers, circuits de sélection de jeux, etc.).The first method consists in transmitting, to this memory, addressing signals at a constant frequency (very high) but whose phase difference between two consecutive addressed values varies according to the final frequency to be produced. Although requiring only a single clock for all frequencies, this method requires complex circuits necessarily combined with the synthesizer control circuits (keyboard, pedals, game selection circuits, etc.).

La seconde méthode consiste à émettre vers la mémoire d'échantillons des signaux d'adressage à fréquence variable directement proportionnelle à la fréquence à produire, ceci permettant d'adresser la mémoire avec des différences de phase constantes quelle que soit la fréquence. Une simple opération d'incrémentation suffit pour toutes les fréquences, ce qui supprime la nécessité de calculer un écart de phase pour chaque fréquence. En contrepartie le synthétiseur doit comporter plusieurs générateurs qui peuvent être intégrés et une logique d'association des générateurs et des données de commande.The second method consists in transmitting to the sample memory variable frequency addressing signals directly proportional to the frequency to be produced, this making it possible to address the memory with differences in constant phases whatever the frequency. A simple incrementing operation suffices for all frequencies, which eliminates the need to calculate a phase difference for each frequency. In return, the synthesizer must include several generators which can be integrated and a logic for associating the generators and the control data.

La présente invention concerne un synthétiseur utilisant la deuxième méthode de synthèse (fréquences multiples) en combinaison avec une représentation différentielle des données d'amplitude, de préférence.The present invention relates to a synthesizer using the second synthesis method (multiple frequencies) in combination with a differential representation of the amplitude data, preferably.

Elle se distingue également par le fait que l'ensemble des commandes destinées au synthétiseur (fréquences, amplitudes, etc.) se résume à des simples opérations d'écritures dans des mémoires dénommées « clavier virtuel ».It is also distinguished by the fact that all of the commands intended for the synthesizer (frequencies, amplitudes, etc.) boil down to simple operations of writing to memories called "virtual keyboard".

Ce clavier virtuel constitue alors une frontière physique entre le synthétiseur et le reste de l'instrument de musique. Un tel synthétiseur se prête particulièrement bien à une association avec un micro-ordinateur vis-à-vis duquel il se comporte comme un simple périphérique.This virtual keyboard then constitutes a physical border between the synthesizer and the rest of the musical instrument. Such a synthesizer lends itself particularly well to an association with a microcomputer vis-à-vis which it behaves like a simple peripheral.

Dans le synthétiseur, tous les organes qui le constituent sont alors mis en relation avec le clavier virtuel.In the synthesizer, all the organs that constitute it are then linked to the virtual keyboard.

Dans le document FR-A-2 396 375 publié le 26 janvier 1979, l'ensemble des opérations internes du synthétiseur était déclenché directement par les changements d'état des générateurs.In document FR-A-2 396 375 published on January 26, 1979, all of the internal operations of the synthesizer were triggered directly by the changes of state of the generators.

Selon la présente invention, l'ensemble des opérations est maintenant réalisé à partir d'un enchaînement de lecture des données contenues dans le clavier virtuel, cet enchaînement dépendant des changements d'état des générateurs.According to the present invention, all of the operations are now carried out on the basis of a sequence of reading of the data contained in the virtual keyboard, this sequence depending on changes of state of the generators.

Le clavier virtuel est maintenant l'organe essentiel du synthétiseur à partir duquel sont issues toutes les commandes. Il comprend un ensemble de mémoires qui peuvent donc être adressées de l'intérieur du synthétiseur pour les opérations de synthèse, et de l'extérieur du synthétiseur pour les commandes de synthèse (commandes des fréquences et des amplitudes des signaux à produire).The virtual keyboard is now the essential organ of the synthesizer from which all commands come. It includes a set of memories which can therefore be addressed from inside the synthesizer for synthesis operations, and from outside the synthesizer for synthesis commands (controls of the frequencies and amplitudes of the signals to be produced).

L'utilisateur accède au clavier virtuel par l'intermédiaire d'un système informatique qui ne fait pas l'objet de la présente demande. Une action sur une touche ou pédale de l'instrument est détectée par le système informatique, qui détermine des actions sur plusieurs mémoires du « clavier virtuel », en fonction d'un programme enregistré dans le système informatique. Ceci permet d'obtenir la production de signaux complexes qui sont la somme de plusieurs signaux périodiques élémentaires du synthétiseur. En particulier, si ces signaux périodiques sont des sinusoïdes, la synthèse réalisée est une synthèse additive ou synthèse de Fourier.The user accesses the virtual keyboard via a computer system which is not the subject of this request. An action on a key or pedal of the instrument is detected by the computer system, which determines actions on several memories of the "virtual keyboard", according to a program recorded in the computer system. This makes it possible to obtain the production of complex signals which are the sum of several elementary periodic signals of the synthesizer. In particular, if these periodic signals are sinusoids, the synthesis carried out is an additive synthesis or Fourier synthesis.

La figure 1 représente le schéma de principe du synthétiseur suivant l'invention.Figure 1 shows the block diagram of the synthesizer according to the invention.

Le synthétiseur est couplé à un système micro-ordinateur extérieur M par l'intermédiaire d'un ensemble de connexions dénommé « bus » 2. Ce bus transmet des signaux de sélection d'adresse, des signaux de donnée et des signaux de commande d'écriture et éventuellement de lecture, pour la commande externe du synthétiseur.The synthesizer is coupled to an external microcomputer system M via a set of connections called “bus” 2 . This bus transmits address selection signals, data signals and write and possibly read control signals, for external control of the synthesizer.

A titre indicatif, le système micro-ordinateur est relié à un ou plusieurs claviers d'orgue K, et également, le cas échéant à un pédalier, des boutons, tirettes, ou tout dispositif de saisie de données ou d'événements ou de présentation d'informations, qui ne sont pas représentés.As an indication, the microcomputer system is connected to one or more K organ keyboards, and also, if necessary, to a pedal board, buttons, pull tabs, or any device for entering data or events or presentation information, which is not shown.

Ainsi le système micro-ordinateur place des données dans les mémoires du clavier virtuel 1, en fonction des événements qu'il prend en compte (enfoncement ou relâchement des touches, boutons, tirettes, etc.), d'un programme enregistré et de données descriptives des sonorités ou timbres des sons qui sont produits par le synthétiseur.Thus, the microcomputer system places data in the memories of the virtual keyboard 1, according to the events it takes into account (pressing or releasing of the keys, buttons, drawbars, etc.), of a recorded program and of data. descriptions of the tones or timbres of the sounds produced by the synthesizer.

Le clavier virtuel 1 comprend un ensemble de mémoires qui sont sélectionnées à l'aide d'une mémoire d'adresse 3. L'accès à ces mémoires se fait, d'une part depuis le micro-ordinateur, et d'autre part depuis les autres circuits du synthétiseur. Des circuits multiplexeurs, non représentés sur la figure, permettent ces deux accès en évitant les conflits.The virtual keyboard 1 comprises a set of memories which are selected using an address memory 3. Access to these memories is made, on the one hand from the microcomputer, and on the other hand from the other synthesizer circuits. Multiplexer circuits, not shown in the figure, allow these two accesses, avoiding conflicts.

Ce clavier virtuel 1 est divisé en groupes. L'adressage interne d'une mémoire d'un groupe se fait à l'aide de deux signaux, l'un, I, pour désigner le groupe et l'autre N, pour désigner la mémoire dans le groupe I.This virtual keyboard 1 is divided into groups. The internal addressing of a group memory is done using two signals, one, I, to designate the group and the other N, to designate the memory in group I.

Le synthétiseur comprend par ailleurs un nombre déterminé de générateurs de signaux rectangulaires désignés dans leur ensemble par la référence 6. Par signal rectangulaire, on entend tout signal binaire, signal carré ou signal impul- sionnel. Il y a, par exemple, 12 générateurs de signaux périodiques dont les fréquences de répétition sont réparties selon les 12 demi-tons d'une octave, et également 4 générateurs de fréquence variable, soit à commande analogique par tension ou courant, soit à commande numérique. Un de ces générateurs peut également être un générateur de bruit, c'est-à-dire un générateur à fréquence aléatoire.The synthesizer furthermore comprises a determined number of rectangular signal generators generally designated by the reference 6. By rectangular signal is meant any binary signal, square signal or impulse signal. There are, for example, 12 periodic signal generators whose repetition frequencies are distributed according to the 12 semitones of an octave, and also 4 variable frequency generators, either with analog control by voltage or current, or with command digital. One of these generators can also be a noise generator, that is to say a generator at random frequency.

Dans le clavier virtuel 1, le nombre de groupes est égal à celui des générateurs.In the virtual keyboard 1, the number of groups is equal to that of the generators.

'La sélection des mémoires d'un groupe (signal 1) par les moyens de commande de lecture, entraîne en même temps la sélection du signal d'un générateur, à l'aide d'un multiplexeur 7.The selection of the memories of a group (signal 1) by the read control means, at the same time involves the selection of the signal from a generator, using a multiplexer 7.

Pendant l'exécution des opérations relatives aux données d'un groupe, l'adresse de sélection dudit groupe (Signal 1) est conservée dans une mémoire 8. Cette adresse de sélection est appliquée d'une part au multiplexeur 7 pour la sélection du signal d'un générateur et d'autre part, à la mémoire d'adresse 3 pour la sélection du groupe correspondant. Les mémoires 8 et 3 peuvent d'ailleurs être réunies.During the execution of the operations relating to the data of a group, the selection address of said group (Signal 1) is kept in a memory 8. This selection address is applied on the one hand to the multiplexer 7 for the selection of the signal. a generator and on the other hand, to the address memory 3 for the selection of the corresponding group. The memories 8 and 3 can moreover be combined.

Le signal du générateur sélectionné sert à incrémenter une donnée de phase instantanée commune aux signaux produits par l'ensemble du groupe correspondant. Pour ce faire, un circuit d'incrémentation et de mémoire 9 est couplé au multiplexeur 7, par l'intermédiaire d'un circuit de commande 10, et au clavier virtuel 1. Le détail de la structure et du fonctionnement de ces circuits apparaîtront dans la suite.The signal from the selected generator is used to increment instantaneous phase data common to the signals produced by the entire corresponding group. To do this, an increment and memory circuit 9 is coupled to the multiplexer 7, via a control circuit 10, and to the virtual keyboard 1. Details of the structure and operation of these circuits will appear in the following.

Enfin, l'ensemble des données relatives à la synthèse d'un échelon analogique de chaque signal périodique en sortie est appliqué aux moyens de conversion numérique-analogique. Ceux-ci comprennent un circuit de calcul d'un échelon d'amplitude normalisé 11, un circuit de multiplication 12, un convertisseur numérique analogique, un amplificateur 14 et un haut- parleur 15, ces deux derniers éléments n'étant pas compris dans le synthétiseur.Finally, all of the data relating to the synthesis of an analog level of each periodic signal at output is applied to the digital-analog conversion means. These include a circuit for calculating a standard amplitude step 11, a multiplication circuit 12, a digital analog converter, an amplifier 14 and a loudspeaker 15, the latter two elements not being included in the synthesizer.

Le circuit de calcul 11 reçoit la phase instantanée ϕ incrémentée et mémorisée par le circuit 9, le numéro de rang d'octave 0 et le numéro de forme d'onde F lus dans une mémoire d'un groupe du clavier virtuel et délivre la valeur 8A d'un échelon d'amplitude. Le circuit 11 comprend par exemple une mémoire d'échantillons de formes d'onde qui délivre automatiquement la donnée 8A lue à une adresse formée par les signaux numériques d'entrée précités.The calculation circuit 11 receives the instantaneous phase ϕ incremented and memorized by the circuit 9, the octave rank number 0 and the waveform number F read in a memory of a group of the virtual keyboard and delivers the value 8A of an amplitude step. The circuit 11 includes for example a memory of waveform samples which automatically delivers the data 8A read at an address formed by the aforementioned digital input signals.

Le circuit de multiplication 12 effectue la multiplication de la valeur 8A par la valeur d'amplitude A lue dans la mémoire du clavier virtuel et délivre la valeur numérique ΔA.The multiplication circuit 12 performs the multiplication of the value 8A by the amplitude value A read in the memory of the virtual keyboard and delivers the numerical value ΔA.

Enfin, le convertisseur 13 transforme cette valeur ΔA en un échelon analogique de courant ou de tension qui est ensuite amplifié dans 14 et diffusé par 15.Finally, the converter 13 transforms this value ΔA into an analog step of current or voltage which is then amplified in 14 and diffused by 15.

La suite de la description reviendra plus en détail sur la structure et le fonctionnement de chaque élément du synthétiseur.The rest of the description will return in more detail to the structure and operation of each element of the synthesizer.

La figure 2 décrit la structure du clavier virtuel. Cette structure est importante. Elle permet de comprendre le fonctionnement du synthétiseur dans son ensemble.Figure 2 describes the structure of the virtual keyboard. This structure is important. It allows you to understand how the synthesizer works as a whole.

Dans ce qui suit, les valeurs numériques ne sont données qu'à titre indicatif. Le clavier virtuel est divisé en 16 groupes de mémoires, autant de groupes que de générateurs 6. Chaque groupe est lui-même divisé en 16 blocs de mémoires de 16 bits chacun.In the following, the numerical values are given for information only. The virtual keyboard is divided into 16 memory groups, as many groups as there are generators 6. Each group is itself divided into 16 memory blocks of 16 bits each.

Chaque bloc de mémoires est encore divisé en quatre mots, de 4 bits chacun (c'est cette dernière division qui apparaît sur la figure 1).Each memory block is further divided into four words, of 4 bits each (it is this last division which appears in FIG. 1).

Il y a donc 16 x 16 = 256 blocs de chacun 4 mots, et chaque mot contient au moins une information.There are therefore 16 x 16 = 256 blocks of each 4 words, and each word contains at least one piece of information.

Au cours du fonctionnement du synthétiseur, les blocs sont lus un par un et les informations qu'ils contiennent sont transférées et utilisées par les autres circuits.During synthesizer operation, the blocks are read one by one and the information they contain is transferred and used by other circuits.

La mémoire d'adresse 3 sélectionne, par son contenu, un bloc du clavier virtuel, parmi les 256.The address memory 3 selects, by its content, a block of the virtual keyboard, from among the 256.

L'adresse de sélection comporte 2 parties, une partie de 4 bits spécifiant le numéro I de groupe et une partie de 4 bits spécifiant le numéro N d'un bloc dans le groupe.The selection address has 2 parts, a 4-bit part specifying the group number I and a 4-bit part specifying the number N of a block in the group.

Pour simplifier la figure 2, seul un groupe 1 est représenté.To simplify Figure 2, only one group 1 is shown.

Le premier bloc du groupe 1 est caractérisé par la valeur N = 0.The first block of group 1 is characterized by the value N = 0.

Les quatre mots qu'il contient sont relatifs respectivement, de la gauche à la droite, au numéro N1 du bloc suivant à lire dans le groupe (4 bits), du numéro l' du groupe suivant quand le traitement relatif au présent groupesera terminé, et des deux parties (haute et basse) de la phase instantanée ϕ du signal fondamental.The four words it contains relate respectively, from left to right, to the number N1 of the next block to be read in the group (4 bits), to the number l 'of the next group when the processing relating to this group is complete, and of the two parts (high and low) of the instantaneous phase ϕ of the fundamental signal.

La lecture de ce bloc permet d'obtenir donc, en parallèle, les 3 informations N1, l' et ϕ.Reading this block therefore makes it possible to obtain, in parallel, the 3 pieces of information N1, l 'and ϕ.

Supposons que la mémoire d'adresse 3 soit pointée sur ce premier bloc et que le signal du générateur sélectionné par le multiplexeur 7, par le numéro I, ait changé d'état. Le circuit 9 alors augmente la valeur de ϕ d'une unité, et inscrit la nouvelle valeur de ϕ dans le bloc (I, N = 0) et garde en mémoire cette valeur de ϕ.Suppose that the address memory 3 is pointed at this first block and that the signal from the generator selected by the multiplexer 7, by the number I, has changed state. Circuit 9 then increases the value of ϕ by one, and writes the new value of ϕ in the block (I, N = 0) and keeps in memory this value of ϕ.

Puis la valeur N1 lue dans ce bloc est transmise à la mémoire d'adresse 3, qui adresse le bloc (I, N1) du même groupe.Then the value N1 read in this block is transmitted to the address memory 3, which addresses the block (I, N1) of the same group.

Les mots de ce bloc sont alors les suivants ;

  • La valeur N2 du bloc dans le même groupe sert à adresser le bloc suivant. La valeur F sert à spécifier la forme d'onde désirée. La valeur 0 sert à spécifier le rang d'harmonique ou d'octave du signal de sortie, par rapport au fondamental dont ϕ est la phase instantanée. Enfin, la valeur A est l'amplitude du signal périodique de sortie.
The words in this block are then as follows;
  • The value N2 of the block in the same group is used to address the next block. The value F is used to specify the desired waveform. The value 0 is used to specify the harmonic or octave rank of the output signal, compared to the fundamental of which ϕ is the instantaneous phase. Finally, the value A is the amplitude of the periodic output signal.

Les informations contenues dans chaque bloc ne sont pas limitées aux seules décrites ci- dessus. Par exemple, il peut être spécifié un numéro de voie de sortie analogique, etc.The information contained in each block is not limited to the only described above. For example, an analog output channel number, etc. can be specified.

En même temps que ces informations sont lues et transmises aux moyens de conversion 11, 12, 13 qui calculent un échelon analogique, la valeur N2 sert à spécifier le nouveau bloc à lire dans le groupe.At the same time as this information is read and transmitted to the conversion means 11, 12, 13 which calculate an analog step, the value N2 is used to specify the new block to be read in the group.

La lecture de ce nouveau bloc permet d'acquérir de nouvelles données F, O, A et N3 et ainsi de suite.Reading this new block makes it possible to acquire new data F, O, A and N3 and so on.

Le dernier bloc lu dans le groupe 1 délivre enfin des données F, O et A ainsi qu'une dernière valeur N = 0 qui permet de revenir au premier bloc d'où est extraite l'adresse du premier groupe suivant (l', N = 0).The last block read in group 1 finally delivers data F, O and A as well as a last value N = 0 which makes it possible to return to the first block from which the address of the first following group is extracted (l ', N = 0).

Il est à noter que l'enchaînement de la lecture des blocs d'un groupe est tel que tous les blocs du groupe ne sont pas forcément lus. Si une valeur N n'est jamais spécifiée dans ce bloc, le bloc correspondant sera ignoré. De même, la lecture du bloc est séquentielle, mais l'ordre dans lequel cette lecture est faite n'est pas obligatoirement l'ordre des valeurs de N.It should be noted that the sequence of the reading of the blocks of a group is such that all the blocks of the group are not necessarily read. If an N value is never specified in this block, the corresponding block will be ignored. Similarly, the reading of the block is sequential, but the order in which this reading is made is not necessarily the order of the values of N.

La figure 3 représente un organigramme qui décrit l'enchaînement des fonctions du synthétiseur.FIG. 3 represents a flowchart which describes the sequence of the functions of the synthesizer.

On suppose que la mémoire d'adresse spécifie le premier bloc d'un groupe 1 (N = 0).It is assumed that the address memory specifies the first block of a group 1 (N = 0).

A ce moment, le synthétiseur effectue un test, 21 pour savoir si le générateur numéro 1 (sélectionné par le multiplexeur 7) a changé d'état. Le traitement complet des données d'un groupe ne s'effectue donc que toutes les demi-périodes du générateur correspondant. Pour ce faire, le circuit de commande 10 peut être constitué simplement par un circuit OU exclusif dont les deux entrées reçoivent respectivement la sortie du multiplexeur 7 et le bit de poids le plus faible de la valeur de phase ϕ lue dans le bloc (I, N = 0). Un signal actif n'est délivré par le OU exclusif que si les deux entrées sont différentes. Dans ce cas, la phase ϕ est augmentée d'une unité, inscrite dans le bloc (I, N = 0) à la place de la valeur précédente et gardée en mémoire dans le circuit 9, pour être utilisée en même temps que les données lues dans les autres blocs du même groupe.At this time, the synthesizer performs a test, 21 to find out whether the generator number 1 (selected by the multiplexer 7) has changed state. The complete processing of the data of a group is therefore only carried out every half-period of the corresponding generator. To do this, the control circuit 10 can be constituted simply by an exclusive OR circuit, the two of which inputs receive respectively the output of the multiplexer 7 and the least significant bit of the phase value ϕ read in the block (I, N = 0). An active signal is only issued by the exclusive OR if the two inputs are different. In this case, phase ϕ is increased by one, written in the block (I, N = 0) in place of the previous value and kept in memory in circuit 9, to be used at the same time as the data read in the other blocks of the same group.

Si le circuit 10 ne délivre aucun signal actif au circuit 9, il commande alors la transmission, par le circuit 8, de la valeur l' suivante à la mémoire d'adresse 3. La synthèse des échelons analogiques des signaux du bloc précédemment lu n'a donc pas été effectuée. Le test du générateur suivant est ensuite effectué (fonctions 20 et 21, figure 3) et ainsi de suite.If the circuit 10 does not deliver any active signal to the circuit 9, it then controls the transmission, by the circuit 8, of the following value l to the address memory 3. The synthesis of the analog levels of the signals of the block previously read n was therefore not carried out. The next generator test is then performed (functions 20 and 21, Figure 3) and so on.

Dès qu'un test de générateur est positif, la synthèse des échelons peut avoir lieu, elle se déroule comme indiqué sur la figure 3.As soon as a generator test is positive, the synthesis of the steps can take place, it takes place as shown in Figure 3.

Après l'incrémentation de la phase ϕ (fonction 22, réalisée par le circuit 9), le bloc spécifié par la valeur N suivante est lu, entraînant la lecture des valeurs F, 0, A, etc. et la synthèse d'un échelon correspondant (fonction 24). Puis la valeur du N suivant est comparée à zéro (fonction 25). Tant que le test est négatif, les lectures successives des blocs du groupe 1 s'effectuent. Dès que ce test est positif, le transfert de la valeur I suivante (et N = 0) permet de recommencer le même cycle pour un autre groupe (retour à la fonction 20).After incrementing phase ϕ (function 22, performed by circuit 9), the block specified by the following value N is read, causing the values F, 0, A, etc. to be read. and the synthesis of a corresponding step (function 24). Then the value of the next N is compared to zero (function 25). As long as the test is negative, successive readings of the blocks of group 1 are carried out. As soon as this test is positive, the transfer of the next value I (and N = 0) allows the same cycle to be started again for another group (return to function 20).

La figure 4 donne le détail de la structure du convertisseur.Figure 4 gives the detail of the structure of the converter.

Les valeurs de phase <p, de rang d'harmonique ou d'octave 0 et de forme d'onde F sont appliquées simultanément à un circuit 30. Ce circuit 30 élabore une adresse appliquée à une mémoire d'échelons 31. Cette mémoire contient en fait des échantillons successifs d'une ou plusieurs formes d'onde, en représentation différentielle. L'écart d'amplitude 8A lu est ajouté à l'amplitude précédente pour obtenir la nouvelle amplitude du signal analogique.The values of phase <p, of harmonic rank or of octave 0 and of waveform F are applied simultaneously to a circuit 30. This circuit 30 generates an address applied to a step memory 31. This memory contains in fact successive samples of one or more waveforms, in differential representation. The amplitude difference 8A read is added to the previous amplitude to obtain the new amplitude of the analog signal.

Un circuit multiplicateur 12 effectue le produit de la valeur 8A par l'amplitude réelle A lue dans le bloc du clavier virtuel 1. Le résultat AA est ensuite appliqué à deux convertisseurs numériques analogiques 32 et 33 commandés l'un ou l'autre par un circuit de commande 35.A multiplier circuit 12 performs the product of the value 8A by the actual amplitude A read in the block of the virtual keyboard 1. The result AA is then applied to two analog digital converters 32 and 33 controlled either by a control circuit 35.

Cette variante permet de pouvoir délivrer des signaux différents à plusieurs sorties analogiques différentes, le nombre de sorties étant, bien entendu, donné uniquement à titre d'exemple.This variant makes it possible to be able to deliver different signals to several different analog outputs, the number of outputs being, of course, given solely by way of example.

La distinction des sorties analogiques est faite également à partir d'une information contenue dans le clavier virtuel. Par exemple, trois bits seulement sont utilisés pour le choix d'une forme d'onde parmi huit, le quatrième bit étant affecté au choix de la voie analogique.The distinction of analog outputs is also made from information contained in the virtual keyboard. For example, only three bits are used for the choice of a waveform among eight, the fourth bit being assigned to the choice of the analog channel.

Dans le cas de la figure 4, le circuit de commande 35 est par exemple une bascule. L'une des sorties de la bascule autorise la transmission d'une donnée à un convertisseur, tandis que l'autre sortie interdit la transmission à l'autre convertisseur.In the case of FIG. 4, the control circuit 35 is for example a flip-flop. One of the outputs of the flip-flop authorizes the transmission of data to a converter, while the other output prohibits transmission to the other converter.

La structure des convertisseurs est connue, celle-ci ayant déjà été décrite dans le document FR-A-2 396 375 publié le 26 janvier 1979, notamment à la figure 4. Pour mémoire ils comportent chacun un circuit additionneur-soustracteur, un compteur décompteur et un circuit intégrateur. Ils sont suivis respectivement des amplificateurs 36 et 37 et des haut-parleurs 38 et 39. Des circuits de filtrage analogique ayant des réponses en fréquence particulières peuvent évidemment être intercalés dans chaque voie analogique. Le plus souvent, incorporés aux amplificateurs 36 et 37, de tels circuits de filtrage, appelés « formants », peuvent être utiles pour améliorer le résultat sonore de certaines formes d'onde complexes. C'est le cas, par exemple, pour des signaux imitant des instruments traditionnels à vent ou à cordes. Dans ce cas, le synthétiseur comporte un nombre de voies analogiques de sortie suffisant pour séparer les signaux complexes les uns des autres. Cette séparation est particulièrement aisée selon l'invention puisque l'indication de la voie de sortie de chaque échantillon analogique est incluse dans l'ensemble des données numériques qui sont à son origine (F, O, A, etc.). Dans le cas où le nombre de voies de sortie analogique est supérieure à deux, le circuit 35 est constitué, par exemple par un circuit décodeur.The structure of the converters is known, this having already been described in document FR-A-2 396 375 published on January 26, 1979, in particular in FIG. 4. For the record, they each include an adder-subtractor circuit, an up-down counter and an integrator circuit. They are followed respectively by amplifiers 36 and 37 and speakers 38 and 39. Analog filter circuits having specific frequency responses can obviously be inserted in each analog channel. Most often, incorporated in amplifiers 36 and 37, such filtering circuits, called “formants”, can be useful for improving the sound result of certain complex waveforms. This is the case, for example, for signals imitating traditional wind or string instruments. In this case, the synthesizer has a sufficient number of analog output channels to separate the complex signals from each other. This separation is particularly easy according to the invention since the indication of the output channel of each analog sample is included in the set of digital data which are at its origin (F, O, A, etc.). In the case where the number of analog output channels is greater than two, the circuit 35 is constituted, for example by a decoder circuit.

Le circuit 30 qui détermine l'adresse de l'échantillon 8A dans la mémoire 31 comporte en fait des circuits logiques classiques. La valeur de phase ϕ est multipliée par la valeur de rang d'harmonique ou d'octave 0 pour la production des harmoniques. Dans le cas où le nombre 0 correspond aux octaves par rapport au fondamental, la phase <p subit simplement un nombre de décalages vers la gauche égal au nombre 0.The circuit 30 which determines the address of the sample 8A in the memory 31 in fact comprises conventional logic circuits. The phase value ϕ is multiplied by the value of harmonic rank or octave 0 for the production of harmonics. In the case where the number 0 corresponds to the octaves with respect to the fundamental, the phase <p simply undergoes a number of shifts to the left equal to the number 0.

Le circuit multiplicateur 12 peut être également constitué par une mémoire morte. Les valeurs numériques d'entrée 8A et A constituent l'adresse d'une valeur en mémoire. Cette valeur est alors le produit A x 8A.The multiplier circuit 12 can also be constituted by a read only memory. The digital input values 8A and A constitute the address of a value in memory. This value is then the product A x 8A.

Une structure améliorée du convertisseur permet d'obtenir plus aisément un nombre supérieur de voies de sortie analogiques. Selon cette amélioration, l'ensemble des circuits compteurs- décompteurs est remplacé par un circuit convertisseur numérique-analogique du commerce, par exemple un modèle à 8 bits courant. Ce convertisseur est ensuite suivi d'un circuit démultiplexeur qui reçoit par ailleurs l'information de sélection de voie lue dans la mémoire du clavier virtuel. Le circuit de commande de sélection de voie 35 n'est plus nécessaire, cette sélection étant opérée directement dans le démultiplexeur qui comporte généralement un circuit de décodage incorporé. Chaque voie de sortie du démultiplexeur est ensuite connectée à l'entrée d'un intégrateur de même caractéristique que l'intégrateur du convertisseur précédemment décrit. Comme indiqué précédemment, chaque voie de sortie analogique peut, en complément, comporter des circuits de filtrage adaptés à un type de signal ou de timbre.An improved converter structure makes it easier to obtain a higher number of analog output channels. According to this improvement, all of the up-down-counter circuits are replaced by a commercial digital-analog converter circuit, for example a current 8-bit model. This converter is then followed by a demultiplexer circuit which also receives the channel selection information read in the memory of the virtual keyboard. The channel selection control circuit 35 is no longer necessary, this selection being carried out directly in the demultiplexer which generally includes an incorporated decoding circuit. Each output channel of the demultiplexer is then connected to the input of an integrator with the same characteristic as the integrator of the converter described above. As indicated above, each analog output channel can, in addition, include filtering circuits adapted to a type of signal or timbre.

Le convertisseur amélioré fonctionne de la façon suivante : au cours d'un cycle de lecture des mémoires d'un groupe, le début de cycle est consacré à l'incrémentation de la phase du fondamental. A l'entrée du convertisseur, il n'y a donc pas de données à convertir pendant le début du cycle, et ceci pendant quelques microsecondes. Puis, au fur et à mesure de la lecture des données dans les autres mémoires du groupe, le convertisseur reçoit successivement les données lues et délivre en sortie une suite d'échantillons analogiques de durée constante bien définie. Ces échantillons sont ensuite répartis par le démultiplexeur vers les intégrateurs qui délivrent alors un signal dont le niveau (tension ou courant) varie proportionnellement (en grandeur et en signe) à l'amplitude des échantillons appliqués.The improved converter operates as follows: during a cycle for reading the memories of a group, the beginning of the cycle is devoted to the incrementation of the phase of the fundamental. At the input of the converter, there is therefore no data to convert during the start of the cycle, and this for a few microseconds. Then, as the data is read in the other memories of the group, the converter successively receives the data read and delivers as output a series of analog samples of well defined constant duration. These samples are then distributed by the demultiplexer to the integrators which then deliver a signal whose level (voltage or current) varies proportionally (in magnitude and in sign) to the amplitude of the samples applied.

L'avantage essentiel de cette structure du convertisseur réside dans le fait que les échantillons successifs délivrés par le convertisseur sont tous issus d'un même groupe, et qu'entre chaque suite d'échantillons s'écoule un intervalle de temps suffisant pour éteindre toutes les instabilités possibles dans les circuits, dues notamment à des défauts de linéarité de la conversion, des temps de montée non négligeables, etc. Il en résulte une meilleure immunité du synthétiseur aux intermodulations des signaux entre groupes, ceci grâce à la structure du clavier virtuel, et au déroulement du cycle de lectures des données qu'il contient.The essential advantage of this structure of the converter lies in the fact that the successive samples delivered by the converter all come from the same group, and that between each series of samples there passes a sufficient time interval to extinguish all the possible instabilities in the circuits, due in particular to defects in the linearity of the conversion, significant rise times, etc. This results in a better immunity of the synthesizer to the intermodulation of signals between groups, this thanks to the structure of the virtual keyboard, and to the course of the cycle of readings of the data which it contains.

La figure 5 décrit un autre exemple de réalisation dans lequel le découpage en groupes de la mémoire du clavier virtuel n'est plus prédéterminé, ce groupement n'étant plus prévu physiquement mais logiquement. En effet, dans la variante de réalisation précédente, chaque groupe comporte un nombre fixe de blocs de mémoires, ce qui limite le nombre de composantes sonores élémentaires associées à chaque générateur. Selon cette nouvelle variante, la taille des groupes n'est plus déterminée à l'avance, mais résulte de l'enchaînement. Ainsi comme tous les groupes ne sont, en pratique, jamais tous utilisés à la fois, pour une même capacité mémoire du clavier virtuel, un plus grand nombre de composantes sonores peut être créé dans des groupes utilisés.FIG. 5 describes another exemplary embodiment in which the division into groups of the memory of the virtual keyboard is no longer predetermined, this grouping being no longer provided physically but logically. Indeed, in the previous embodiment, each group has a fixed number of memory blocks, which limits the number of elementary sound components associated with each generator. According to this new variant, the size of the groups is no longer determined in advance, but results from the sequence. Thus as all the groups are, in practice, never all used at the same time, for the same memory capacity of the virtual keyboard, a greater number of sound components can be created in the groups used.

Chaque groupe de blocs contient alors un bloc principal et des blocs secondaires, chaque bloc principal contenant, au moins, un mot d'identification de bloc, un mot relatif à un numéro de générateur, un mot relatif au sous-multiple commun de la phase instantanée de plusieurs signaux périodiques, un mot contenant un pointeur d'adresse vers un autre bloc principal et un mot contenant un pointeur d'adresse vers un autre bloc principal ou secondaire, et chaque bloc secondaire contenant, au moins, un mot d'identification de bloc, un mot relatif à l'amplitude d'un signal périodique, un mot relatif au rang d'harmonique ou d'octave dudit signal et un mot contenant un pointeur d'adresse vers un autre bloc secondaire ou principal.Each group of blocks then contains a main block and secondary blocks, each main block containing, at least, a block identification word, a word relating to a generator number, a word relating to the common submultiple of the phase. instantaneous of several periodic signals, a word containing an address pointer to another main block and a word containing an address pointer to another main or secondary block, and each secondary block containing, at least, an identification word block, a word relating to the amplitude of a periodic signal, a word relating to the harmonic or octave rank of said signal and a word containing an address pointer to another secondary or main block.

Les pointeurs sont utilisés par les moyens d'enchaînement séquentiel de sorte que, chaque bloc lu contient un pointeur vers un bloc suivant à lire. Seuls, les blocs contenant des informations utiles sont ainsi adressés et lus et ces blocs peuvent être situés à n'importe quelles positions dans les mémoires.The pointers are used by the sequential chaining means so that each block read contains a pointer to a next block to be read. Only the blocks containing useful information are thus addressed and read and these blocks can be located at any position in the memories.

De plus, l'enchaînement réalisé est en fait un double enchaînement : un enchaînement des blocs principaux et un enchaînement des blocs secondaires.In addition, the chain produced is in fact a double chain: a chain of main blocks and a chain of secondary blocks.

Seule la lecture des blocs principaux est réalisée tant que l'état des générateurs associés (désignés par leur numéro dans chaque bloc) ne change pas. A chaque changement d'état d'un générateur, l'enchaînement s'interrompt au niveau du bloc principal correspondant, puis succède l'enchaînement des blocs secondaires associés.Only the main blocks are read as long as the state of the associated generators (designated by their number in each block) does not change. At each change of state of a generator, the sequence is interrupted at the level of the corresponding main block, then succeeds the sequence of the associated secondary blocks.

Le clavier virtuel 1 est également couplé à un bus 2 de micro-ordinateur qui peut y lire ou écrire des données numériques. Des moyens de multiplexage non représentés permettent l'accès aux mémoires du clavier virtuel par le bus ou par le synthétiseur.The virtual keyboard 1 is also coupled to a microcomputer bus 2 which can read or write digital data there. Multiplexing means not shown allow access to the memories of the virtual keyboard by the bus or by the synthesizer.

Le clavier virtuel est divisé en 256 blocs de mémoires, par exemple. Chaque bloc peut être adressé séparément et l'adresse d'un bloc est définie par un ensemble de 8 bits. Un registre d'adresse 3 contient donc, pour chaque opération, l'adresse d'un bloc, et les blocs sont lus un par un, successivement..The virtual keyboard is divided into 256 memory blocks, for example. Each block can be addressed separately and the address of a block is defined by an 8-bit set. An address register 3 therefore contains, for each operation, the address of a block, and the blocks are read one by one, successively.

Chaque bloc est divisé en plusieurs mots qui sont adressés en parallèle : ces mots sont désignés par les références 101, 102, 103, 104, 105, 106 et 107 pour les deux types de blocs (principaux et secondaires).Each block is divided into several words which are addressed in parallel: these words are designated by the references 101, 102, 103, 104, 105, 106 and 107 for the two types of blocks (main and secondary).

Ces mots contiennent les informations qui servent à la synthèse des échantillons des composantes sonores (sous-multiple commun de la phase instantanée de plusieurs composantes, numéro de générateur, numéro d'octave ou d'harmonique, type de forme d'onde, amplitude de la composante, numéro de voie de sortie, etc.).These words contain the information used to synthesize the samples of the sound components (common submultiple of the instantaneous phase of several components, generator number, octave or harmonic number, type of waveform, amplitude of component, output channel number, etc.).

La longueur de chaque mot peut être quelconque ; elle ne dépend que du nombre de valeurs que peut prendre la grandeur considérée.The length of each word can be arbitrary; it only depends on the number of values that the quantity considered can take.

Il y a deux types de blocs qui ne diffèrent que par les informations qu'ils contiennent : des blocs principaux et des blocs secondaires.There are two types of blocks which differ only in the information they contain: main blocks and secondary blocks.

Les blocs principaux contiennent les informations de numéro de générateur et de phase instantanée, au moins, ainsi qu'un bit d'identification du type principal (1 par exemple).The main blocks contain the generator number and instantaneous phase information, at least, as well as an identification bit of the main type (1 for example).

Les blocs secondaires contiennent les informations de numéro d'octave ou d'harmonique, de type de forme d'onde, d'amplitude et de numéro de voie de sortie au moins, ainsi qu'un bit d'identification de type secondaire (bit 0 par exemple).Secondary blocks contain at least octave or harmonic number, waveform type, amplitude and output channel number information, as well as a secondary type identification bit (bit 0 for example).

Chaque bloc principal est relatif à un générateur tandis que chaque bloc secondaire est relatif à une composante sonore du signal de sortie.Each main block relates to a generator while each secondary block relates to a sound component of the output signal.

Chaque bloc principal comporte en outre deux mots qui contiennent respectivement un pointeur d'adresse primaire et un pointeur d'adresse secondaire.Each main block further comprises two words which respectively contain a primary address pointer and an address pointer secondary.

Chaque pointeur primaire désigne l'adresse d'un autre bloc principal, soit directement (adressage absolu) soit indirectement (adressage relatif). Pour simplifier l'exposé, on supposera que chaque pointeur contient une adresse absolue.Each primary pointer designates the address of another main block, either directly (absolute addressing) or indirectly (relative addressing). To simplify the presentation, we will assume that each pointer contains an absolute address.

Chaque pointeur secondaire désigne l'adresse d'un autre bloc secondaire ou principal.Each secondary pointer designates the address of another secondary or primary block.

De même, chaque bloc secondaire comporte un mot contenant un pointeur d'adresse secondaire, désignant l'adresse d'un autre bloc secondaire ou principal. Du point de vue de l'emplacement des bits, les pointeurs secondaires des deux blocs coïncident.Similarly, each secondary block includes a word containing a secondary address pointer, designating the address of another secondary or main block. From the point of view of bit location, the secondary pointers of the two blocks coincide.

Les pointeurs primaires et secondaires servent à déterminer l'enchaînement de la lecture des blocs.The primary and secondary pointers are used to determine the sequence of the reading of the blocks.

Un sélecteur d'adresse 4 reçoit les deux pointeurs primaire et secondaire, par des connexions 120 et 121, et transmet l'un des deux pointeurs au registre d'adresse 3. Une horloge 110 génère périodiquement des impulsions qui sont appliquées au registre 3. A chaque impulsion, l'adresse (le pointeur sélectionné) est enregistrée dans le registre 3 et celui-ci commande alors l'adressage du bloc désigné par cette adresse.An address selector 4 receives the two primary and secondary pointers, via connections 120 and 121, and transmits one of the two pointers to the address register 3. A clock 110 periodically generates pulses which are applied to register 3. At each pulse, the address (the selected pointer) is recorded in register 3 and this then controls the addressing of the block designated by this address.

Les différents pointeurs sont mis en place dans les blocs de mémoire par le micro-ordinateur de sorte que l'enchaînement des adressages des blocs par le registre 3, au rythme de l'horloge 110, satisfasse aux conditions décrites ci-après.The different pointers are set up in the memory blocks by the microcomputer so that the sequence of addresses of the blocks by the register 3, at the rate of the clock 110, satisfies the conditions described below.

Chaque impulsion de l'horloge 110 entraîne donc l'adressage d'un nouveau bloc et, par suite, l'exécution d'une série d'opérations.Each pulse of the clock 110 therefore causes the addressing of a new block and, consequently, the execution of a series of operations.

Suivant le type principal ou secondaire du bloc lu, le clavier virtuel délivre donc soit une première série de données, soit une seconde série de données, et entraîne respectivement soit une première série d'opérations, soit une seconde série d'opérations.Depending on the main or secondary type of the block read, the virtual keyboard therefore delivers either a first series of data or a second series of data, and leads respectively to either a first series of operations or a second series of operations.

Les circuits du synthétiseur qui sont connectés au clavier virtuel peuvent donc recevoir deux types d'informations, dont une seulement peut être prise en compte.The synthesizer circuits which are connected to the virtual keyboard can therefore receive two types of information, only one of which can be taken into account.

Les bits d'identification de bloc, ayant le même emplacement (101) dans les deux blocs, servent alors d'une part à distinguer les informations d'un bloc principal de celles d'un bloc secondaire, et d'autre part, à valider ou inhiber certaines opérations du synthétiseur.The block identification bits, having the same location (101) in the two blocks, then serve on the one hand to distinguish the information of a main block from that of a secondary block, and on the other hand, to validate or inhibit certain synthesizer operations.

Le déroulement des opérations du synthétiseur est donc entièrement conditionné par l'enchaînement de la lecture des blocs principaux et secondaires dont le détail est le suivant :

  • Blocs principaux
The flow of synthesizer operations is therefore entirely conditioned by the sequence of reading of the main and secondary blocks, the details of which are as follows:
  • Main blocks

Le numéro 1 du générateur (mot 103) est appliqué par la connexion 124 à un détecteur de transition 5 qui reçoit tous les signaux des générateurs 6.The generator number 1 (word 103) is applied by connection 124 to a transition detector 5 which receives all the signals from the generators 6.

Le sous-multiple <p de phase instantanée (mots 104 pour les poids forts et 105 pour les poids faibles) est appliqué au circuit d'incrémentation et de mémoire 9 par les connexions bi-directionnelles 125 et 126. L'état du générateur sélectionné est comparé au bit de poids faible tpo de la phase appliqué au détecteur 5, pour détecter un changement d'état du générateur.The submultiple <p of instantaneous phase (words 104 for the most significant and 105 for the least significant) is applied to the increment and memory circuit 9 by the bi-directional connections 125 and 126. The state of the selected generator is compared with the least significant bit tp o of the phase applied to the detector 5, to detect a change of state of the generator.

Le bit d'identification de type de bloc (mot 101) est également appliqué au détecteur 5 (connexion 122) pour n'autoriser la détection que s'il s'agit d'un bloc principal.The block type identification bit (word 101) is also applied to detector 5 (connection 122) in order to authorize detection only if it is a main block.

Deux cas peuvent se produire :

  • S'il n'y a pas de changement d'état du générateur, par une connexion 127 appliquée au sélecteur 4, le détecteur 5 commande la sélection du bloc principal suivant (sélection du pointeur primaire appliqué au registre 3) et les opérations continuent exactement de la même manière pour un autre bloc principal, entraînant le test d'un autre générateur.
Two cases can occur:
  • If there is no change of state of the generator, by a connection 127 applied to the selector 4, the detector 5 controls the selection of the next main block (selection of the primary pointer applied to the register 3) and the operations continue exactly in the same way for another main block, causing the test of another generator.

S'il y a changement d'état du générateur désigné dans le bloc, le détecteur 5 déclenche d'une part l'incrémentation et la mémorisation de la valeur de phase <p par le circuit 9, la valeur incrémentée étant aussitôt mémorisée dans le bloc principal à la place de la valeur précédente, et d'autre part, la sélection (par la connexion 127) du pointeur secondaire (mot 107). A la période suivante de l'horloge 110 succède alors la lecture d'un bloc secondaire.If there is a change of state of the designated generator in the block, the detector 5 triggers on the one hand the incrementing and the memorization of the phase value <p by the circuit 9, the incremented value being immediately memorized in the main block in place of the previous value, and on the other hand, the selection (by connection 127) of the secondary pointer (word 107). The following period of the clock 110 then succeeds the reading of a secondary block.

Blocs secondairesSecondary blocks

La connexion 127 transmet une commande de sélection de bloc secondaire au sélecteur 4.Connection 127 transmits a secondary block selection command to selector 4.

La valeur de la phase <p, mémorisée par le circuit d'incrémentation 9, est appliquée à un circuit de calcul d'adresse 111. Le numéro d'octave (mot 102) est également appliqué à ce circuit par la liaison 123 ainsi que F, le numéro de forme d'onde (mot 103) par la liaison 124. Les informations sont combinées de manière à adresser une mémoire de formes d'onde 112 de laquelle est extraite un échantillon qui est appliqué à un circuit multiplicateur 12. Ce circuit reçoit en même temps la valeur d'amplitude A (mot 104) par la connexion 125. Le résultat du produit est appliqué à un convertisseur numérique-analogique 13. Le bit d'identification de bloc secondaire (mot 101) est appliqué au convertisseur pour valider la conversion seulement dans ce cas. Il n'y a donc pas de conversion en cas de lecture de bloc principal. Un démultiplexeur 109, commandé par le numéro de voie de sortie (mot 105), reçoit le signal analogique de sortie du convertisseur 13 et aiguille ce signal vers l'un des intégrateurs 114, 115, etc., 119.The value of the phase <p, stored by the incrementing circuit 9, is applied to an address calculation circuit 111. The octave number (word 102) is also applied to this circuit by the link 123 as well as F, the waveform number (word 103) via the link 124. The information is combined so as to address a waveform memory 112 from which a sample is extracted which is applied to a multiplier circuit 12. This circuit receives at the same time the amplitude value A (word 104) by connection 125. The result of the product is applied to a digital-analog converter 13. The secondary block identification bit (word 101) is applied to the converter to validate the conversion only in this case. There is therefore no conversion when the main block is read. A demultiplexer 109, controlled by the output channel number (word 105), receives the analog output signal from the converter 13 and routes this signal to one of the integrators 114, 115, etc., 119.

Toutes ces opérations se réalisent en une durée inférieure à la période de l'horloge 110.All these operations are carried out in a duration shorter than the period of the clock 110.

A l'impulsion de cette horloge, le pointeur secondaire du bloc secondaire étant sélectionné, le registre 3 adresse un nouveau bloc qui peut être soit un autre bloc secondaire soit un autre bloc principal.On the impulse of this clock, the secondary pointer of the secondary block being selected, the register 3 addresses a new block which can be either another secondary block or another main block.

La figure 6 représente un organigramme expliquant le fonctionnement des moyens de lecture et de commande de conversion, selon l'enchaînement du synthétiseur de la figure 5.FIG. 6 represents a flowchart explaining the operation of the reading and conversion control means, according to the sequence of the synthesizer of FIG. 5.

On suppose qu'un nouveau bloc principal vient d'être adressé. Le numéro 1 de générateur (mot 103 figure 1) est appliqué au détecteur de transition 5 pour tester l'état du générateur correspondant (test 130 figure 2).It is assumed that a new main block has just been addressed. The generator number 1 (word 103 in Figure 1) is applied to the transition detector 5 to test the state of the corresponding generator (test 130 in Figure 2).

Deux cas peuvent se produire :

  • Ou bien le générateur en test n'a pas changé. Dans ce cas, le détecteur émet un signal de sélection de pointeur primaire (bloc 131 figure 6) et les tests des générateurs continuent (boucle 130 131 130 131, etc.) jusqu'à la détection d'un changement d'état d'un générateur.
Two cases can occur:
  • Or the generator under test has not changed. In this case, the detector emits a primary pointer selection signal (block 131 in figure 6) and the generator tests continue (loop 130 131 130 131, etc.) until a change of state is detected. a generator.

Ou bien le générateur a changé d'état. Dans ce cas, la valeur instantanée de phase (<p) est d'abord incrémentée (132) puis le pointeur secondaire est sélectionné (133) permettant d'adresser une série de blocs secondaires.Or the generator has changed state. In this case, the instantaneous phase value (<p) is first incremented (132) then the secondary pointer is selected (133) making it possible to address a series of secondary blocks.

Dès qu'un nouveau bloc est adressé, s'il s'agit d'un bloc secondaire, un échantillon est calculé (135) et délivré à l'une des sorties analogiques, à partir de la valeur de phase précédemment incrémentée (test 134 négatif).As soon as a new block is addressed, if it is a secondary block, a sample is calculated (135) and delivered to one of the analog outputs, from the previously incremented phase value (test 134 negative).

S'il s'agit d'un bloc principal, l'enchaînement continue pour un autre générateur (test 134 positif).If it is a main block, the sequence continues for another generator (test 134 positive).

Ainsi, à chaque changement d'état d'un générateur, tous les blocs secondaires relatifs à ce générateur sont explorés et les éléments sonores correspondants sont calculés et délivrés.Thus, at each change of state of a generator, all the secondary blocks relating to this generator are explored and the corresponding sound elements are calculated and delivered.

S'il n'y a pas de changement de l'état d'un générateur, les blocs secondaires correspondants ne sont même pas adressés.If there is no change in the state of a generator, the corresponding secondary blocks are not even addressed.

De plus, si le numéro d'un générateur n'apparaît pas dans l'enchaînement, il n'y aura même pas de test de son état.In addition, if the number of a generator does not appear in the flow, there will not even be a test of its state.

L'enchaînement de lecture des blocs suivant l'invention est donc conçu pour être parcouru aussi rapidement que possible, sans adressage, ni calculs inutiles.The sequence of reading of the blocks according to the invention is therefore designed to be traversed as quickly as possible, without addressing, or unnecessary calculations.

La figure 7 montre le détail du circuit détecteur de transition 5.FIG. 7 shows the detail of the transition detector circuit 5.

Il comprend essentiellement un circuit multiplexeur 51 qui reçoit les signaux des générateurs 6, d'une part, et le numéro I (mot 103), d'autre part, comme commande de sélection. Les générateurs 6 délivrent des signaux carrés de sorte que la sortie 55 du multiplexeur est un signal binaire.It essentially comprises a multiplexer circuit 51 which receives the signals from the generators 6, on the one hand, and the number I (word 103), on the other hand, as a selection command. The generators 6 deliver square signals so that the output 55 of the multiplexer is a binary signal.

Le bit d'identification (mot 101) est également appliqué à une entrée de validation 56, de sorte que seul un bloc principal peut sélectionner un générateur.The identification bit (word 101) is also applied to a validation input 56, so that only a main block can select a generator.

Un circuit OU exclusif 52 reçoit le signal de sortie du multiplexeur ainsi que le bit de poids le plus faible cpo de la phase instantanée.An exclusive OR circuit 52 receives the output signal from the multiplexer as well as the least significant bit cp o of the instantaneous phase.

La sortie du circuit 52 est connectée à une entrée non inverseuse d'un circuit ET 53 et à une entrée inverseuse d'un circuit ET 54.The output of circuit 52 is connected to a non-inverting input of an AND circuit 53 and to an inverting input of an AND circuit 54.

Le signal d'identification de bloc (101) est également appliqué à des entrées non inverseu- ses des circuits ET 53 et 54.The block identification signal (101) is also applied to non-inverting inputs of AND circuits 53 and 54.

La sortie du ET 53 commande le circuit d'incré- mentation de phase 9. En effet, la sortie de ce circuit ne peut être active (à l'état 1 dans ce cas) que si le bloc sélectionné est un bloc principal (signal 101 à 1) et si le générateur désigné a changé d'état (sortie à 1 du OU exclusif 52).The output of ET 53 controls the phase increment circuit 9. In fact, the output of this circuit can only be active (in state 1 in this case) if the selected block is a main block (signal 101 to 1) and if the designated generator has changed state (output at 1 of exclusive OR 52).

La sortie du ET 54 commande la sélection des pointeurs primaires ou secondaires (sélecteur 4).The output of ET 54 controls the selection of primary or secondary pointers (selector 4).

En effet, si le bit d'identification de bloc est à 0 (bloc secondaire) ou si le changement d'état d'un générateur est détecté, la sortie du ET 54 est à l'état 0, commandant la sélection d'un bloc secondaire. La sélection d'un pointeur primaire n'est obtenue que si le bloc lu est du type principal et si le générateur correspondant n'a pas changé d'état.Indeed, if the block identification bit is at 0 (secondary block) or if the change of state of a generator is detected, the output of ET 54 is at state 0, commanding the selection of a secondary block. The selection of a primary pointer is only obtained if the block read is of the main type and if the corresponding generator has not changed state.

Cette deuxième variante de l'invention permet d'améliorer la rapidité de calcul des éléments sonores du synthétiseur sans limiter le nombre d'éléments sonores pour chaque générateur.This second variant of the invention makes it possible to improve the speed of calculation of the sound elements of the synthesizer without limiting the number of sound elements for each generator.

Du fait qu'après le calcul des éléments sonores liés à un générateur, il s'écoule un intervalle de temps au moins égal à une période de l'horloge 10 (pendant la lecture d'au moins un bloc principal), avant le calcul d'une autre série d'éléments sonores, l'intermodulation éventuelle entre les éléments sonores de deux séries consécutives est pratiquement supprimée.The fact that after the calculation of the sound elements linked to a generator, there elapses a time interval at least equal to a period of the clock 10 (during the reading of at least one main block), before the calculation of another series of sound elements, the possible intermodulation between the sound elements of two consecutive series is practically eliminated.

L'invention s'applique aux instruments de musique électroniques. Un tel instrument de musique comportera donc un synthétiseur suivant l'invention commandé par un dispositif à microprocesseur, par exemple, qui chargera les données dans les mémoires du clavier virtuel 1, selon un enchaînement désiré. Suivant la richesse des signaux sonores désirés, les générateurs 6 pourront contenir entre 12 générateurs à fréquences fixes et 16 générateurs, ou plus, à fréquences variables.The invention applies to electronic musical instruments. Such a musical instrument will therefore include a synthesizer according to the invention controlled by a microprocessor device, for example, which will load the data into the memories of the virtual keyboard 1, according to a desired sequence. Depending on the richness of the desired sound signals, the generators 6 may contain between 12 generators at fixed frequencies and 16 generators, or more, at variable frequencies.

Selon une variante simplifiée de l'invention, l'adresse ou une partie de l'adresse des blocs de mémoires peut être utilisée pour les moyens de conversion, au même titre que les contenus de ces blocs. Cela est possible, par exemple, pour le numéro 1 de générateur, et/ou le rang d'octave. Cette variante diminue la souplesse d'utilisation des mémoires, mais réduit le nombre de mémoires nécessaires. De même, un arrangement différent des données dans ces mémoires est possible.According to a simplified variant of the invention, the address or part of the address of the memory blocks can be used for the conversion means, in the same way as the contents of these blocks. This is possible, for example, for generator number 1, and / or the octave rank. This variant reduces the flexibility of use of the memories, but reduces the number of memories required. Likewise, a different arrangement of the data in these memories is possible.

Claims (15)

1. Polyphonic synthesizer of periodic signals of the type comprising :
- means for producing numeric successive samples of a periodic wave shape at variable repetition frequency, using numeric data of phase and amplitude in particular,
- means for numerical-analog conversion of successive samples, delivered by the producing means,
- a predetermined number of generators of rectangular signals having different frequencies, the frequency of each generator being a multiple of at least one periodic signal which the synthesizer can produce,
- an entity of memory blocks for holding numerical data representing at least the amplitude of the periodic signals to be produced and,
- means for controlling the sequential reading of data in the memory blocks, coupled to the generators and to the sample producing means for applying the read-out data to the latter substantially in synchronism with the signals of the generators, the synthesizer being characterized by the fact that
- the entity of memory blocks is divided, physically or logically, into groups having or not a fixed length, each holding the entity of data relative to the production of periodic signals in harmonic frequency relation with one of the generators, each block comprising a memory holding an address datum of another block, such that there exists an enchainment of block addresses in each group and
- the reading control means comprise means to address the block of each group according to the enchainment of the addresses in the block at each change of the signal of the respective generator.
2. Synthesizer according to claim 1, characterized in that each memory group comprises a principal block comprising a memory holding a common sub-multiple of the phase of the periodic signal in harmonic frequency relation with the corresponding generator of said group, and that the control means comprise means to increment the value of the phase in synchronism with the signal of the generator.
3. Synthesizer according to claims 1 and 2, characterized in that each memory group can comprise secondary blocks each comprising an amplitude datum and a datum relative to the harmonic range of a signal to be produced.
4. Synthesizer according to claim 3, characterized in that each secondary block can comprise in addition a memory for holding a datum relative to a particular wave shape of a signal to be produced.
5. Synthesizer according to claim 3 or 4, characterized in that each secondary block can comprise in addition a memory for holding a selection datum for the output channel of the periodic signal to be produced.
6. Synthesizer according to one of the preceding claims, characterized in that the memory entity is divided into equal groups of the same number as that of the generators, the address of each block of one and the same group comprising a common part (I) and in that the control means comprise means for the selection of the generator corresponding to each group in accordance with the common part (I) of the address.
7. Synthesizer according to claim 6, characterized in that the principal blocks of the memory groups occupy identical positions in said groups and comprise each a memory holding an address datum (I') of a principal block of another block, and in that the control means comprise means for addressing and reading a following principal block in one of the cases where the signal of the generator corresponding to the preceding principal block has not changed and where the enchainment of the secondary blocks of the preceding group has taken place after change of the signal-of the corresponding generator.
8. Synthesizer according of the preceding claims, characterized in that the reading control means comprise an address memory (3) for addressing the groups and the memory blocks (I), the address memory (3) comprising a first input for receiving the number of the following blocks, read in the addressed block, and a second input for receiving the number of the following group ; and a group selection memory (8) comprising an input for receiving the number of the following group, read in the principal block of the addressed group, an output connected to the second input of the address memory (3), and a control input for controlling the transfer of the address of the group when the address of the block is equal to that of the principal block.
9. Synthesizer according to one of claims 1 to 5, characterized in that the entity of memories is divided into groups with numbers and positions independent of the generators, the number of blocks in each group being variable ; each principal block holding at least a block identification word, a generator designation word, a word relative to an instantaneous phase value, a word containing a primary address pointer designating another principal block, and a word containing a secondary address pointer designating at least a block identification word, a word relative to the amplitude of an output signal, a word relative to the octave rang or harmonic rang of the output signal, and a word containing a secondary address pointer designating another principal or secondary block.
10. Synthesizer according to claim 9, characterized in that the reading control means comprise :
- a clock (110);
- an address register (3) delivering an address of a block simultaneously to the entity of memories (1) and having an input for the control of memorizing, connected to the clock (10), and an address input,
- an address selection circuit (4) connected to the input of the register (3) and comprising two inputs for receiving, respectively, the primary and secondary address pointers of each block, if those exist, and a selection control input,
- transition detector means (5) connected to the generators (6) and having an input for receiving the block identification word, another input for receiving the generator designating word, and output for delivering a selection signal to the selector (4), on the one hand, and phase incre- mentation command signal, on the other hand.
11. Synthesizer according to claim 10, characterized in that the transition detector means (5) comprise a multiplexer circuit (51) receiving at its input the signals of generators (6) and as a control input the number (I) designating a generator read in a principal block, and delivering at the output the instantaneous binary status of the signal of the selected generator ; an EXCLUSIVE OR circuit (52) receiving, on the one hand, the binary signal from the output of the multiplexer (51) and, on the other hand, the bit having the least significant weight of the phase value read in the same principal block, and logic means (53, 54) receiving the output signal of the EXCLUSIVE OR (52) and the block identification word for delivering, on the one hand, a phase incrementa- tion control signal in the only case where the read block is of the principal type and the change of the status of the designated generator is detected, and, on the other hand, a selection signal, either of the primary pointer in the case where the read block is of the principal type and there is no detection of the transition of the designated generator, or of the secondary pointer in the other cases.
12. Synthesizer according to one of the preceding claims, characterized in that the conversion means comprise :
- an address calculation circuit (111, figure 5) receiving, on the one hand, the instantaneous phase value and, on the other hand, the octave rang or harmonic range read in the memory blocks,
- a wave-shaped memory (112, figure 5 ; 11, figure 1) holding under successive addresses, successive amplitude samples or amplitude variation samples of a wave shape, the memory being connected to the address circuit,
- multiplication means (12, figure 1 and figure 5) for multiplying each sample, delivered by the wave shape memory, by the amplitude value, read in a memory block,
- a numerical-analog converter (13) for delivering an analog sample commensurate with each product produced by the multiplication means (12),
- filter means (14, figure 1 ; 114 to 119, figure 5) for filtering the analog signals delivered by the conversion means (13).
13. Synthesizer according to claim 12, characterized in that the address calculation circuit (111) comprises in addition a wave shape selection input for receiving the wave shape datum of a memory block.
14. Synthesizer according to claims 12 to 13, characterized in that the conversion means comprise in addition a demultiplexing circuit (109, figure 5) connected with its input to the converter output (13) with its output to a plurality of filter means (114 to 119), and with its control input to the entity of memories (1) for receiving a word relative to a number of an analog output channel.
15. Synthesizer according to one of the preceding claims, characterized in that the address or a part of the address of each block may contain at least a datum, applied to the conversion means.
EP79400886A 1978-11-21 1979-11-20 Polyphonic synthesizer of periodical signals using digital techniques Expired EP0011576B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AT79400886T ATE3918T1 (en) 1978-11-21 1979-11-20 POLYPHONE SYNTHESIS CIRCUIT FOR PERIODIC SIGNALS USING DIGITAL TECHNIQUES.

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR7832727A FR2442485A1 (en) 1978-11-21 1978-11-21 Polyphonic digitally controlled musical synthesiser - has memory bank forming virtual keyboard between keyboard manuals and synthesising circuits
FR7832727 1978-11-21
FR7907339A FR2452145A2 (en) 1979-03-23 1979-03-23 Polyphonic digitally controlled musical synthesiser - has memory bank forming virtual keyboard between keyboard manuals and synthesising circuits
FR7907339 1979-03-23

Publications (2)

Publication Number Publication Date
EP0011576A1 EP0011576A1 (en) 1980-05-28
EP0011576B1 true EP0011576B1 (en) 1983-06-22

Family

ID=26220857

Family Applications (1)

Application Number Title Priority Date Filing Date
EP79400886A Expired EP0011576B1 (en) 1978-11-21 1979-11-20 Polyphonic synthesizer of periodical signals using digital techniques

Country Status (6)

Country Link
US (1) US4279186A (en)
EP (1) EP0011576B1 (en)
DD (1) DD147288A5 (en)
DE (1) DE2965764D1 (en)
ES (1) ES486146A1 (en)
NO (1) NO793756L (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5632188A (en) * 1979-08-24 1981-04-01 Sony Corp Waveform synthesizer
DE3023580C2 (en) * 1980-06-24 1982-04-01 Matth. Hohner Ag, 7218 Trossingen Method for phase synchronization of digitally synthesized tones of a musical instrument and circuit arrangement for carrying out the method
DE3373737D1 (en) * 1982-07-19 1987-10-22 Matsushita Electric Ind Co Ltd Wave reading apparatus
DE3331176C1 (en) * 1983-08-30 1990-01-25 WERSI-electronic GmbH & Co KG, 5401 Halsenbach Device for digitally generating the sounds of instruments, in particular percussion sounds
JP2819948B2 (en) * 1992-07-16 1998-11-05 ヤマハ株式会社 Music signal recording and playback device
US5444818A (en) * 1992-12-03 1995-08-22 International Business Machines Corporation System and method for dynamically configuring synthesizers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3610799A (en) * 1969-10-30 1971-10-05 North American Rockwell Multiplexing system for selection of notes and voices in an electronic musical instrument
US3955459A (en) * 1973-06-12 1976-05-11 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument
JPS5651632B2 (en) * 1974-09-17 1981-12-07
US4023454A (en) * 1975-08-28 1977-05-17 Kabushiki Kaisha Dawai Gakki Seisakusho Tone source apparatus for an electronic musical instrument
FR2344907A1 (en) * 1976-03-16 1977-10-14 Deforeit Christian POLYPHONIC ELECTRONIC MUSICAL INSTRUMENT
US4177706A (en) * 1976-09-08 1979-12-11 Greenberger Alan J Digital real time music synthesizer
FR2396375A1 (en) * 1977-07-01 1979-01-26 Deforeit Christian POLYPHONIC SYNTHESIZER OF PERIODIC SIGNALS AND ELECTRONIC MUSICAL INSTRUMENT INCLUDING SUCH A SYNTHESIZER
US4193332A (en) * 1978-09-18 1980-03-18 Richardson Charles B Music synthesizing circuit

Also Published As

Publication number Publication date
NO793756L (en) 1980-05-22
ES486146A1 (en) 1980-06-16
EP0011576A1 (en) 1980-05-28
US4279186A (en) 1981-07-21
DD147288A5 (en) 1981-03-25
DE2965764D1 (en) 1983-07-28

Similar Documents

Publication Publication Date Title
FR2639458A1 (en) APPARATUS FOR PRODUCING, RECORDING OR REPRODUCING SOUND DATA AND ASSOCIATED SOUND DATA COMPRESSION CODING METHOD
EP0142179A1 (en) Sound generating device
JP2835842B2 (en) Tone generator
EP0011576B1 (en) Polyphonic synthesizer of periodical signals using digital techniques
JPS6289093A (en) Electronic musical apparatus
EP0021964B1 (en) Digital polyphonic synthesizer of periodic signals
FR2476888A1 (en) DIGITAL SYNTHESIZER OF SOUND SIGNALS AND APPLICATIONS TO ELECTRONIC MUSICAL INSTRUMENTS
CN109545177A (en) A kind of melody is dubbed in background music method and device
JP2020060630A (en) Sound signal generation device, sound signal generation method and sound signal generation program
EP0978116B1 (en) Method and device for recording in cyclic loops several sound sequences
FR2783630A1 (en) SOUND SYNTHESIS SYSTEM FOR OBTAINING OUTPUT OF MORE ELECTRIC SAMPLES
EP0035621B1 (en) Apparatus for the identification and indication of notes generated by a musical instrument
JP2776045B2 (en) Tone generator
JPS5840199B2 (en) Denshigatsuki
JPH0333278B2 (en)
JP2560428B2 (en) Effect device
JP2712200B2 (en) Electronic musical instrument
Bianchini et al. Virtual sound
JPH0118438B2 (en)
JP2727684B2 (en) Music synthesizer
McGrath Something seems wrong, should that be happening?
JP2754936B2 (en) Tone generator
JPH052391A (en) Signal processor
JPS592915B2 (en) electronic musical instruments
WO1981001625A1 (en) Device and process for visualizing automatically the position of the fingers on the instrument to learn rapidly the cords and harmonies composing the accompaniments of melodies

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Designated state(s): AT DE GB IT NL

17P Request for examination filed

Effective date: 19800916

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: DEFOREIT, CHRISTIAN JACQUES

ITF It: translation for a ep patent filed

Owner name: STUDIO TORTA SOCIETA' SEMPLICE

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Designated state(s): AT DE GB IT NL

REF Corresponds to:

Ref document number: 3918

Country of ref document: AT

Date of ref document: 19830715

Kind code of ref document: T

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Effective date: 19830701

REF Corresponds to:

Ref document number: 2965764

Country of ref document: DE

Date of ref document: 19830728

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
GBPC Gb: european patent ceased through non-payment of renewal fee
REG Reference to a national code

Ref country code: GB

Ref legal event code: 728C

REG Reference to a national code

Ref country code: GB

Ref legal event code: 728H

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 19851130

Year of fee payment: 7

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Effective date: 19870601

NLV4 Nl: lapsed or anulled due to non-payment of the annual fee
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Effective date: 19880802

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Effective date: 19881118