(19)
(11) EP 0 011 576 A1

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
28.05.1980  Bulletin  1980/11

(21) Numéro de dépôt: 79400886.2

(22) Date de dépôt:  20.11.1979
(51) Int. Cl.3G10H 7/00, G06F 9/00
(84) Etats contractants désignés:
AT DE GB IT NL

(30) Priorité: 21.11.1978 FR 7832727
23.03.1979 FR 7907339

(71) Demandeur: Deforeit, Christian Jacques
F-21140 Semur-en-Auxois (FR)

(72) Inventeur:
  • Deforeit, Christian Jacques
    F-21140 Semur-en-Auxois (FR)

(74) Mandataire: Sparing Röhl Henseler Patentanwälte 
Postfach 14 04 43
40074 Düsseldorf
40074 Düsseldorf (DE)


(56) Documents cités: : 
   
       


    (54) Synthétiseur polyphonique de signaux périodiques utilisant les techniques numériques


    (57) L'invention concerne un synthétiseur musical polyphonique utilisant les techniques numériques. La génération des échantillons successifs de forme d'onde fait appel à des données de phase pour l'adressage d'une mémoire (11) d'échantillons de forme d'onde, et d'amplitude, de rang d'octave ou d'harmonique contenues dans un ensemble de blocs de mémoires (1). La commande du synthétiseur se réalise par l'adressage externe de l'ensemble des mémoires pour y inscrire les données précitées.
    Le déroulement des opérations de synthèse à l'intérieur du synthétiseur est conditionné par un enchaînement séquentiel de la lecture des differents blocs de mémoires, en fonction des signaux d'une pluralité des generateurs.




    Description


    [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 sant 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


    Revendications

    1. Synthétiseur polyphonicue de sigaux périodiques du type comportant :

    - des moyens de production d'échantillons numériques successifs d'une forme d'onde périodicue, à fréquence de répétition variable, à partir de données numériques de phase et d'amplitude notamment :

    - des moyens de conversion numérique analogique des échantillons successifs délivrés par les moyens de production ;

    - un nombre déterminé de générateurs de signaux rectangulaires de fréquences différentes, la fréquence de chaque générateur étant multiple d'au moins un signal périodique que peut produire le synthétiseur ;

    - un ensemble de blocs de mémoires pour contenir des données numériques représentant, au moins, l'amplitude des signaux périodiques à produire ; et

    - des moyens de commande de lecture séquentielle des données dans les blocs de mémoires, couplés aux générateurs et aux moyens de production d'échantillons:, pour appliquer les données lues à ceux-ci sensiblement en synchronisme avec les signaux des générateurs ;
    Le synthétiseur étant caractérisé par le fait que

    - l'ensemble des blocs de mémoires est divisé en groupes contenant chacun l'ensemble des données relatives à la production des signaux périodiques en relation harmonique de fréquence avec l'un des générateurs, chaque bloc comportant une mémoire contenant une donnée d'adressage d'un autre bloc, de façon qu'il existe un enchaînement des adres· ses des blocs dans chaque groupe;et

    - les moyens de commande de lecture comportent des moyens d'adressage des blocs de chaque groupe selon l'enchaînement des adresses dans les blocs, à à chaque changement du signal du générateur correspondant.

    comportent chacun une mémoire contenant une donnée d'aures comportent chacun une une donnée sage (I') d'un bloc principal d'un autre groupe et en ce que les moyens de commende comportent des moyens d'adressage et de lecture d'un blec principal suivant dans l'un des cas où le signal du générateur correspondant au bloc principal précédent n'a pas changé et où l'enchaînement de lecture des blocs secondaires du groupe précédent a eu lieu, après changement du signal du générateur correspondant.


     
    8. Synthétiseur selon l'une des revendications précédentes, caractérisé en ce:que les moyens de commande de lecture comportent une mémoire d'adresses (3) pour l'adressage des groupes et des blocs de mémoires (1), la mémoire d'adresses (3) comportant une première entrée pour recevoir le numéro de bloc suivant, lu dans le bloc adressé, et une deuxième entrée pour recevoir le numéro de groupe suivant ; et une mémoire de sélection de grouoe (8) comportant une entrée pour recevoir le numéro de croups suivar lu dans le bloc principal du groupe adressé, une sortie connectée à la deuxième entrée de la mémoire d'adresses (3), et une entrée de commande de transfert de l'adresse de groupe quand l'adresse de bloc est égale a celle du bloc principal.
     
    9. Synthétiseur selon l'une des revendications 1 a 5, caractérise en ce que l'ensemble des mémoires est divisé en groupes, en nombre et en positions indépendante générateurs, le nombre de blocs dans cnaque groupe étant. variable ; chaque bloc principal centenant au moins un mot d'identification de bloc, en mot désignant un général- teur, un mot relatif à une valeur ce pnase instantance,* un mot contenant un pointeur d'adresse primaire designant un autre bloc principal et un act contenant peinteux

    (52) recevant d'une part le signal binaire de sortie du multiplexeur (51) et d'autre part le bit de poids le plus faible de la valeur de phase lue dans le même bloc principal, et des moyens logiques (33. 54) recevant le signal de sortie du OU exclusif (52) et le mot d'identification de bloc, pour délivrer d'une part, un signal de commande d'incrémentation de phase dans le seul cas ou le bloc lu est du type principal et le changement d'état du générateur designé est détecté, et d'autre part, un signal de sélection, soit du pointeur primaire dans le cas où le bloc lu est du type principal et aucune transition du générateur désigné n'est détectée, soit du pointeur secondaire dans les autres cas.
     
    12. Synthétiseur selon l'une des revendications précédentes, caractérisé en ce que les moyens de conversion comportent :

    - un circuit de calcul d'adresse (111,fig 5) recevant d'un part la valeur instantanée de phase et, d'autre part le rang d'octave ou d' harmonique lus dans les blocs de memoires ;

    - une mémoire de forme d'onde (112, fig. 5, îl fig. 1), contenant, à des adresses successives des échantillons successifs d'amplitude ou de variation d'amplitude d'une forme d'onde, la mémoire étant connectée au circuit d'adresse ;

    - des moyens de multiplication (12 fig. 1 et fig 6) de chaque échantillon, délivré par la mémoire de forme d' onde, par la valeur d'amplitude une dans un bloc de mémoire

    - un convertisseur numérique-enalogioue (13) pour délivrer un échantillon analogique correspondant à chaque produit effectué par les moyens de multiplication (le)

    - des moyens de filtrage 14 fig 114 à 199 fig 5) des signaux analogicues délivrés par les moyens de conver-


     




    Dessins
















    Rapport de recherche