[0001] 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 musique
électroniques, polyphoniques comportant un ou plusieurs de tel synthétiseur.
[0002] Un synthétiseur de ce genre a éte décrit dans la demande brevet n° 77 202 45 déposée
le 1er juillet 1977 (FRANCE).
[0003] 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.
[0004] 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'opere à fréquence variable, à partir de plusieurs
signaux impulsionnels produit par des générateurs inclus dans le synthétiseur.
[0005] Une telle structure se prete mieux à la réalisation d'un synthétiseur complément
indépendant du reste de l'instrument de musique, et qui peut être asément commandé
par microprocesse
[0006] 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 1 s
ant 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.
[0007] Dans le premier synthétiseur précité, 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, quelquesoit 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.
[0008] 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.
[0009] Un objet de la présente invention est d'éliminer cet inconvénient en supprimant la
synthèse des signaux non demandes. Aussi, a l'exploitation, seules les mémoires relatives
aux signaux à produire sont utilisées.
[0010] 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.
[0011] 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 enchainement. 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.
[0012] Pour réaliser cet enchaînement, chaque mémoire de commande doit contenir, en plus
de la donnée utilisée pour la production d'un échantillon, une information supplémcn-
taire 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.
[0013] Selon une première variante de réalisation, l'ensemble des mémoires de commande est
divisé en groupes de mémoires,

génerateur 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.
[0014] Il apparaît donc que les moyens de commande internes du synthétiseur ne s'intéressant
qu'aux mémoires de commandes reliées entre elles par l'enchainement, les autres mémoires
de commandes non comprises dans l'enchainement étant ignorées. Les opérations du synthétiseur
sont donc limitées à la production des seuls signaux périodiques à produire.
[0015] Cependant, le fait que la mémoire de commande soit découpées 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 ensembles, un nombre plus ou moins grand de mémoires restent
non utilisées la plupart du temps.
[0016] Selon un deuxième variante de l'invention, les mémoires de commande du synthétiseur
ne sont plus divisées en groupes, 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.
[0017] Bien entendu les informations qui peuvent être enregistrées dans les mémoires de
commande ne sont pas limitées
d celles énumeré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.
[0018] La présente invention apporte une réduction importante de ces opérations d'écriture
du fait de l'enchaînement. De mêmes les opérations internes du synthétiseur sont réduites.
[0019] 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.
[0020] L'optimisation des opérations de lecture et de conversion permet également d'accroitre
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 accroitre 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.
[0021] 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.
[0022] 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.
[0023] - La suppression des limites des groupes permet de consti-

sororités élémentaires contenant un grand nombre de compositions
[0024] D'autres caractéristiques et avantages de la présente invention apparaîtront dans
la description qui suit, celle-ci etant illustrée par les figures qui représentent
:
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.
[0025] D'une maniere 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 dit de "phase"
et la sortie délivre les données ou signaux d' "amplitude'' correspondant. 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.
[0026] 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
deli- vre alors des signaux d'amplitude successifs appliqués eu convertisseur numérique-analogique.
Ces signaux analogiques sont filtrés pour éliminer le bruit de quantification eL la
forme d'onde analogique est restituée.
[0027] 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
à 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).
[0028] 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.
[0029] 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 cir- suite de commande du synthétiseur (clavier,
pédaliers, circuits de sélection de jeux, etc.).
[0030] La seconde méthode consiste à émettre vers la mémoire d'échantillons des signau..
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 quelque
soit la fréquence.
[0031] Un simple opération d'incrémentation suffit pour toutes les fréquences, ce qui supprime
la nécessite 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.
[0032] 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.
[0033] Elle se distingue également par le fait que l'ensemble des commandes destinées au
synthétiseur (fréquences, amplitudes, etc.) se résument à de simples opérations d'écritures
dans des mémoires dénommées "clavier virtuel".
[0034] 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.
[0035] Dans le synthétiseur, tous les organes qui le constituent sont alors mis en relation
avec le clavier virtuel.
[0036] Dans la demande de brevet français n° 77 .202 45, l'ensemble des opérations internes
du synthétiseur étaient décien- chées directement par les cnangements d'état des générateurs.
[0037] 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.
[0038] Le clavier virtuel est maintenant l'organe essentiel du synthétiseur à partir duquel
sont issus 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).
[0039] L'utilisateur accède au clavier virtuel par l'intermédiai- 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 sinu- soides, la synthèse réalisée
est une synthèse additive ou synthèse de Fourier.
[0040] La figure 1 represente le schéma de principe du synthétiseur suivant l'invention.
[0041] 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

du synthétiseur.
[0042] A titre indicatif le système micro-ordinateur est relié à un ou plusieurs clavier
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.
[0043] Ainsi le système micro-ordinateur place des données dans les mémoires du clavier
virtuel 1, en fonction des évène- ments qu'il prend en compte (enfoncement ou relachement
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.
[0044] 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'acces à 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.
[0045] Ce clavier virtuel 1 est divisé en groupes. L'adressage inte 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.
[0046] Le synthétiseur comprend par ailleurs un nombre déterminé de générateurs de signaux
rectangulaires désignés dans leur ensemble par le référence 6. Par signal rectangulaire,
on entend tout signal binaire, signal carré ou signal impulsionnel. 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 egalement ëtre un générateur de bruit, c'est à dire un générateur
à fréquence aléatoire.
[0047] Dans le clavier virtuel 1, le nombre de groupes est égal à celui des générateurs.
[0048] La sélection des mémoires d'un groupe 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.
[0049] Pendant l'exécution des opérations relatives aux données d'un groupe, l'adresse de
sélection du dit groupe, 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.
[0050] 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 appraîtront dans la suite.
[0051] 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
_4 et un haut-parleur 15, ces deux derniers éléments

dans le synthétiseur.
[0052] le circuit de calcul 11 reçoit la phase instantanée incrementé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 δA 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 δA lue à une adresse formée par les signaux numériques
d'entrée précités.
[0053] Le circuit de multiplication 12 effectue la multiplication de la valeur δA par la
valeur d'amplitude A lue dans la mémoire du clavier virtuel et délivre la valeur numérique
δA .
[0054] 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.
[0055] La suite de la description reviendra plus en détail sur la structure et le fonctionnement
de chaque élément du synthétiseur.
[0056] 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
[0057] 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 blocz de mémoires de 16 bits chacun.
[0058] Chaque bloc de mémoires est encore divisé en quatre mots, de 4 bits chacuns (c'est
cette dernière division qui separaît sur la figure 1).
[0059] Il y a donc 16 x 16 = 256 blocs de chacun 4 mots, et chaque mot contient au moins
une information.
[0060] 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.
[0061] La mémoire d'adresse 3 sélectionne, par son contenu, un bloc du clavier virtuel,
parmi les 256.
[0062] L'adresse de sélection comporte 2 parties, une partie de 4 bits specifiant le numéro
I de groupe et une partie de 4 bits spécifiant le numéro N d'un bloc dans le groupe.
[0063] Pour simplifier la figure 2, seul un groupe est représenté.
[0064] Le premier bloc du groupe est caractérisé par la valeur N = 0 .
[0065] 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 I' du groupe
suivant quand le traitement relatif au présent groupe sera terminé, et des deux parties
(haute et basse) de la phase instantanée Υ du signal fondamental.
[0066] La lecture de ce bloc permet d'obtenir donc, en parallèle les 3 informations Nl,
I' et Υ.
[0067] 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é

7, par le numéro I, ait changé d'état.

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 Υ.
[0068] 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.
[0069] 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 f est la phase instantanée.
Enfin, la valeur A est l'amplitude du signal périodique de sortie.
[0070] 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.
[0071] En même temps que ces informations sont lues et transmises aux moyens de conversion
il, 12, 13 qui calculent un échelon analogique, la valeur N2 sert à spécifier le nouveau
bloc à lire dans le groupe.
[0072] La lecture de ce nouveau bloc permet d'acquérir de nouvelles données F, 0, A et N3
et ainsi de suite.
[0073] Le dernier bloc lu dans le groupe 1 délivre enfin des données F, 0 et A qinsi Qu'une
dernière valeur N = 0 qui permet de revenir au premier bloc d'ou est extraite l'adresse
du premier groupe suivant (l' , N = 0).
[0074] 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écifice
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.
[0075] La figure 3 représente un organigramme qui décrit l'enchaînement des fonctions du
synthétiseur.
[0076] On suppose que la mémoire d'adresse spécifie le premier bloc d'un groupe 1 (N = 0).
[0077] 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.
[0078] 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 I'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.
[0079] Des qu'un test de génerateur est positif, la synthese des échelons peut avoir lieu,
elle se déroule comme indiqué sur la figure 3.
[0080] Après l'incrémentation de la phase Υ (fonction 23, 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 I 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).
[0081] La figure 4 donne le détail de la structure du convertisseur .
[0082] Les valeurs de phase Υ, 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 ries échantillons successifs
d'une ou plusieurs formes d'onde, en représentation différentielle. L'écart d'amplitude
δA lu est ajouté à l'amplitude précédente pour obtenir la nouvelle amplitude du signal
analogique.
[0083] Un circuit multiplicateur 12 effectue le produit'de la valeur 5 A par l'amplitude
réelle A lue dans le bloc du clavier virtuel 1. Le résultat ΔA est ensuite appliqué
à deux convertisseurs numériques analogiques 32 et 33 commandés l'un ou l'autre par
un circuit de commande 35.
[0084] Cette variante permet de pouvoir délivrer des signaux différents à plusieurs sorties
analogiques différentes, le nombre de sorties écant, bien entendu, donné uniquement
à titre d'exemple.
[0085] La distinction des sorties analogiques est faite également à partir d'une information
contenue dans le calvier virtuel. Par exemple, trois bits seulement sont utilisés
pour le choix d'une forme d'onde parmi huit, le quatrième bit étan.t affecté au choix
de la voie analogique.
[0086] Dans le cas de la figure 4, le circuit de commande 35 est par exemple une bascule.
L'une des sortie de la bascule autorise la transmission d'une donnée à un convertisseur,
tandis que l'autre sortie interdit la transmission à l'autre convertisseur.
[0087] La structure des convertisseurs est connue, celle-ci ayant déjà été décrite dans
la demande de brevet français n° 77 202 45 précitée, notamment à la figure 4. Pour
mémoire ils comportent chacun un circuit additionneur- soustracteur, un compteur décompteur
et un circuit intégrateur. Il 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 parti- culié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 echantillon analogique est incluse dans
l'ensemble des données numériques qui sont à son origine (F, 0, 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.
[0088] Le circuit 30 qui détermine l'adresse de l'échantillon δA dans la mémoire 31, comporte
en fait des circuits logiques classiques. La valeur de phase 9 est multipliée par
la valeur 0 pour la production des harmoniques. Dans le cas où le nombre J correspond
aux octaves par rapport au fondamental, la phase 9 subit simplement un nombre de décalages
vers la gauche égal au nombre 0.
[0089] Le circuit multiplicateur 12 peut être également constitué par une mémoire morte.
Les valeurs numériques d'entrée δ A et A constituent l'adresse d'une valeur en mémoire.
Cette valeur est alors le produit Ax δ A.
[0090] 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 ailleursl'information de sélection
de voie lue dans la mémoire du clavier virtuel. Le circuit de commande de sélection
de voie 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
Lype de signal ou de timbre.
[0091] 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 micro-secondes. 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émul- plexeur 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.
[0092] 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.
[0093] 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édetermine. 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 elé- 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 peuvent etre créés dans des groupes utilisés.
[0094] 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.
[0095] 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
contenan des informations utiles sont ainsi adressés et lus et ces blocs peuvent être
situés à n'importe quelles positions dan les mémoires.
[0096] 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.
[0097] 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'enchainement s'interrompt au niveau du bloc principal correspondant,
puis succède l'enchainement des blocs secondaires associes.
[0098] 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.
[0099] 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.
[0100] 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).
[0101] 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.).
[0102] 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.
[0103] 11 y a deux types de blocs qui ne diffèrent que par les informations qu'ils contiennent
des blocs principaux et des blocs secondaires.
[0104] 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).
[0105] 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).
[0106] Chaque bloc principal est relatif à un générateur tandis que chaque bloc secondaire
est relatif à une composante sonore du signal de sortie.
[0107] Chaque bloc principal comporte en outre deux mots qui contiennent respectivement
un pointeur d'adresse primaire et un pointeur d'adresse secondaire.
[0108] 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.
[0109] Chaque pointeur secondaire désigne l'adresse d'un autre bloc secondaire ou principal,
[0110] 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


horloge 110 génère péoriedicuement des impulsions qui sont appliquées au registre
3. A enaque impulsion; l'adresse (le pointeur sélectionné) est enregistre dans le
registre 3 et celui-ci commance alors l'adressage du bloc sisigne par cette adresse.
[0111] Les différents pointeurs cont mis en place dans les alles de mémoire par le micro-ordinateur
a serte que l'enchaînement des adressages des blcez par le registre 3, au rytnme de
l'horloge 110, satisfasse aux copditions décrites ci-après.
[0112] Chaque impulsion

sage d'un nouveau plec se par suite d'exécution d' une série d'opérations.
[0113] Suivant le type principal ou secondaire cu bloc lu, le clavier virtuel délivre donc
soit une première série ce données, sit une seconde série de données, et entrai- ne
respectivement soit une première série d'opérations; soit une seconde série d'opérations.
[0114] 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.
[0115] les bits d'identification de bloc avant le même emplacement dans les deux boce servent
alors d'une pare à distinguer les informations d'un bloc principal de celles d'un
bloc secondaire, at d'autre psrt; à valider ou inhiber certaines opérations du synthétiseur.
[0116] 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 les détail est
le suivant :
Blocs Principaux
[0117] 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.
[0118] Le sous multipleϕ 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 ϕo de la phase appliqué au détecteur 5, pour détecter un changement
d'état du générateur.
[0119] 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 si il s'agit d'un bloc principal.
[0120] 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

secondaire.
Blocs secondaires
[0121] La connexion 127 transmet une commande de sélection de siat secondaire au sélecteur
4.
[0122] La valeur de la phase ϕ memoirisée par le circuit d'in. crémentation 9, est appliqu
22 un circuit de calcul d'adresse lll.Le numéro d'octave mot 102) est également

informations sort combirées de menière adresser une mé moire de formes d'ende 112
de lequelle est extraite un échantillon qui est applique à un circuit multiplicateur
12. Ce circuit reçoit en même temps la valeur d'amplituge A (mot 104) par la connexion
125. le résultat du produit est applique un convertisseur numérique-analogique is.
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 done pas de conversion
en cas de lecture de bloc principal. Un démitiplexeur 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 1 un des intégrateurs. 114, 115
; etc.,119
[0123] Toutes ces opérations se réalisent en une durée inférieure à la période de l'horloge
110.
[0124] A l'impulsion de cetta 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.
[0125] 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.
[0126] On suppose qu'un nouveau bloc principal vient d'être adressé. Le numéro I 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).
[0127] Deux cas peuvent se produire .
[0128] 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.
[0129] Ou bien le générateur à changé d'état. Dans ce cas, la valeur instantanée de phase
( ϕ ) est d'abord incrémen- téc (132) puis le pointeur secondaire est sélectionné
(133) permettant d'adresser une série de blocs secondaires.
[0130] 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).

[0131] 
les blocs secondsires correspendants se sont même pas adresses.
[0132] De plus, si le numéro d'un génerateur apparait pas dans l'enchaînement, il n' y aura
meme pas de test de son état
[0133] l'enchaînement de lecture des divers avant l'invention est donc coçu pour être parcouri
aussi rapidement que possible- sans adressage en calcule inutiles
[0134] la figure 7montre le détail du circuit détecteur de transition 3
[0135] Il comprend essentiellement un circuit multiplexeur 51 qui reçoit les signaux des
générateur d'une part.. et le numéro 1 (mot 103), d'autre part comme commande de
selection Les générateurs 6 relirrent des signaux carres s ce sorts que la sortie
55 du multiplexeu est un signal binairs..
[0136] lebit d'identification (mot 101) ,est egalement applique a une entrée de validation
56 le sorte cie seul un bloc principal peut sélectionnet un genérateur
[0137] un circuit 52 ! :? exelusif 52 recevoir le signal de sortie du multiplecateur ainsi
que le bis paris le plus faible ϕ de la phase instantanés.
[0138] La sortie du circuit 52 est connectée a une entrée non inverseuse d'un circuit ET
53 et à une entrée inverseuse d'un circuit ET 54.
[0139] Le signal d'identification de bloc (101) est également appliqué à des entrées non
inverseuses des circuits ET 53 et 54.
[0140] 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).
[0141] La sortie du ET 54 commande la sélection des pointeurs primaires ou secondaires (sélecteur
4).
[0142] 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.
[0143] 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.
[0144] 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

selon une variance simpiardée de l'invention l'aaresse on une partIe de l'aeresse
des biees de memoires peut être utilisée pour les moyens de conversion an même titre
gue les contenus de ces blocs cela est possible par exemple pour le numéro 1 de générateur
et /si le rang d'cetave cette variante diminue a souplesse d' utilisation des mémoires,
mais reduit le nombre de memoires nécessaires. De même un arrangement différent des
données dans ces memoires est posible