Brevet FR2440051A1 — publié le 19800523

La présente invention concerne un synthétiseur, c'est à dire un instrument de musique capable de produire ou de reproduire avec ou sans modification des sons ou suites de sons dont les caractéristiques ( fréquence, durée, timbre, expression ...) peuvent être mémorisées. Ce dispositif de mémorisation eut en outre être programmé manuellement ou automatiquement avec ou sans modification par un analyseur de suite mélodique extrayant les diverses caractéristiques d'un son ou d'une suite de sons réels. Cet instrument est simultanément polyphonique, c'est à dire que lton peut obtenir simultanément n'importe quel multiplet de p notes. Enfin il peut être commandé (en temps réel ou pour la programmation) à partir d'un ou plusieurs claviers, guitares, chanteurs, bruit etc... Divers systèmes ont jusqu'à présent été employés pour synthétiser les sons. I1 y eut tout d'abord une première vague de systèmes analogiques dans lesquels on mélangeait des sons de forme déterminée (par ex. carrés, créneaux, dents de scie, triangulaires) sans but précis, et le tout était suivi d'une série de filtres variables avec le temps. La synthèse harmonique (par série de Fourier tronquée) reste difficile à cause de la difficulté de produire m sinusoides de fréquence multiple entier les unes des autres (problèmes de constante de temps avec les PLL). Néammoins une solution sera donnée dans le présent brevet. Ensuite les systèmes numériques ont apporté des solutions plus valables en permettant, comme pour la synthèse harmonique, de prévoir le signal synthétisé La technique de l'échantillonnage permet de fixer la norme temporelle d' t signal, ce qui n'est guère adapté au musicien plus sensible au contenu fréquentiel (nO 3515792 EAU). Enfin les fonctions de Walsh sont une solution pratique pour produire des sinusoides dont il est question pour la synthèse harmonique. Elles sont utilisées dans le brevet nO 603776 EAU mais cela n'est pas nouveau. D'autre part les sinusoides synthétisées avec ce procédé ont l'inconvénient d'avoir un contenu fréquentiel non nul en dessous de la dernière harmonique possible, ce qui perturbe inévitablement le contenu fréquentiel total du signal obtenu finalement.Ce n'est pas le cas du système plus valable décrit par l'auteur dans l'enveloppe Solo (nO 0014414277) qui sera repris ci-dessous. Néammoins tous ces systèmes n'ont pas pour autant résolu un problème fondamental: celui de la polyphonie permettant par exemple les accords, plusieurs notes pouvant alors être obtenues à la fois. Les premiers synthétiseurs étaient donc seulement mor,,,pho- niques 'importe quelle note, mais une à la fois; ou semi-polyphoniques : certains multiplets de notes définis par construction), la seule solution que l'on avait alors consistant à adjoindre un synthétiseur lono- torique (une seule note déterminée par construction) pour chaque note obtenir afin de réaliser la polyphonie . Jette solution s'avère évidemment complexe, coûteuse, encombrante et peu souple: par exemple une modification du timbre doit intervenir sur chacun des très nombreux synthétiseurs mono toniques. L'échantillonnage permit t mieux: le temps partagé. Le système s'oc- cupe alors successivement de chacune des touches du clavier (par exemple si la source d'entrée est un clavier). Cependant, cela ne résoud que le problème du timbre mais pas celui des variations du son, ni l'expression (son variant avec la façon d'appuyer sur la touche), et encore moins le "sustain" (prolongation du son après que l'on ait laché la touche, comme pour un piano). D'autre part, même en ce qui concerne le timbre, nous sommes limités: considérons un clavier de n touches (12 " 7), et supposons que l'on veuille r harmoniques (32 par exemple) et que la dernière note soit un la 6 (3480 Hz). La fréquence à échantillonnage sera donc 2 x 3480 x 32 = 222.720 Hz.Comme on a 12 x 7 = 84 touches en temps partagé, la fréquence d'horloge sera de 84 x 222.720 Z 20 MHz, c'est à dire un temps de cycle de 50 ns ce qui est impossible actuellement, et encore plus si on a plusieurs claviers. Un des buts de la présente invention est donc de fournir une méthode suivie de plusieurs applications pratiques afin d'assurer cettepolyphonie de façon souple et économique, pouvant s'adapter à toute forme de synthèse (échantillonnage, addition etc...) , et donnant le sustain. Enfin s'il existe actuellement divers systèmes de mémorisation de suite mélodique plus ou moins perfectionnés, on s'est encore peu préoccupé du problème de l'acquisition des données et de leur analyse. C'est pourquoi il sera décrit un système d'analyse -du timbre , et de mémorisation un système /de suite mélodique couple à un système de mémorisation modiIiable d'accords et registres . . Enfin diverses idées seront développees Un synthétiseur est un système qui à une certaine information d'entrée fait correspondre un son ou une suite de sons en sortie. Cette information peut avoir de multiples origines: clavier(s), guitare(s), autres instruments, sons divers, voix, signaux naturels, système de mémorisation de suite mélodique etc...Bien entendu, toutes ces informations sont de formes très diverses et elles devront préalablement standardisées. Le synthétiseur proprement dit reçoit donc l'ordre de fournir à un instant donné un certain multiplet de sons plus ou moins variables (syllabes, notes de la gamme tempérée, etc,..) avec leur expression qui indique cette variation. Ici, nous décrirons non limitativement un synthétiseur de musique, donc ces sons seront généralement des notes de la gamme tempérée, et c'est pourquoi nous dirons désormais non limitativement "notes". A ceci on peut ajouter toute autre donnée telle que le timbre, l'enveloppe, etc... qui peuvent être différentes selon la source qui a commandé la note (par exemple on peut avoir plusieurs claviers ou guitares etc...). En résumé et non limitativement, nous appelerons donc information d'entrée l'ensemble de signaux indiquant au synthétiseur proprement dit le multiplet de notes désirées simultanément à l'instant considéré, ainsi que leur expression, et l'origine de la demande. Habituellement, dans un instrument polyphonique a n claviers de n touches, cette information se présente sous la forme de m multiplets de n signaux en parallèle, indiquant chacun à un synthétiseur mono tonique si oui ou non il doit fournir un son (Par exemple, sur un clavier à 86 touches d'orgue électronique, on a n = 86 fréquences possibles, et l'on a à chaque instant un multiplet (T;,T2,...Ti,...,Tt6) où chacun des signaux Ti prend la valeur 0 ou 1 selon que la note n i est ou non désirée. L'expression qui indiquerait de la position de la touche est ici absen- té.) Ceci sous-entend que l'on puisse produire toutes ces notes. C'est le cas des orgues électroniques, des pianos (le synthétiseur mono tonique n i est alors la corde n i fonctionnant sur une seule note, mais dans ce cas l'expression intervient). Notons que dans le cas de la synthèse en temps partagé les synthétiseurs peuvent être fictifs bien qu'ayant la même utilisation. Pour transmettre l'expression, on doit donc utiliser un signal E. indiquant dans le cas non limitatif d'un clavier la position de la touche n i par exemple. Bien sûr, E. peut être aussi un multiplet indiquant par exemple la syllabe à donner etc... Ainsi, l'information d'entrée est S' = (S1',S'2,...,Sm') où m = nombre de claviers ou d'instruments et Sk*' = (S1',S2',...,Si',...,Sn') où n= nombre de notes par clavier et Si = ,Ei), où Ti indique si la note i est désirée et El son expression. L'information d'entrée a donc clairement été définie dans le cas d'un clavier, mais nous verrons que nous pouvons toujours ramener l'information issue de n'importe quelle source à une information du type Sk*, grâce à un convertisseur. On appelera donc non limitativement clavier toute source munie d'un tel convertisseur. Voyons maintenant ouelle est la forme de l'information reçue par un synthétiseurmonophonique . On ne peut obtenir qu'une seule note à la fois, par conséquent, l'information se présente sous la forme d'un seul signal S indiquant 51 une note est demandée (signal T), quelle source l'a demandée (signal K), quelle est la note demandée (signal F), ainsi que son expression (signal E) d'où S = (T,K,F,E). Pour transmettre tous ces signaux, plusieurs moyens peuvent être utilisés. Dans un synthétiseur analogique, (T,F) est généralement une tension fonction affine ou logarithmique de la fréquence de la note désirée, et son absence indique que l'on ne veut pas de note. On peut aussi utiliser un mot binaire indiquant le nom ou la fréquence de la note avec divers codes, ou un signal de fréquence proportionnelle à celle de la note. Revenons aux instruments polyphoniques : nous n'avons en fait nul besoin de pouvoir produire toutes les notes possibles simultanément, comme c'est pourtant de fait le cas dans les systèmes habituels. En effet, dans le cas d'un instrument à clavier par exemple, nous sommes limités par le nombre de doigts de l'exécutant: on ne demandera jamais plus de 10 notes simultanément. De même, une guitare n'a que 6 cordes pouvant vibrer indépendemment. Si donc on a n notes possibles (par exemple nombre de notes d'un ou plusieurs claviers), on n'a besoin que de p notes simultanément au maximum (par exemple 10), mais elles doivent pouvoir autre quelconques parmi les n. Ceci revient donc à supprimer les n synthétiseurs mono toniques et les remplacer par p 4 n synthétiseurs mon-honiques, ce qui est plus simple. Cependant le problème se pose de savoir comment les commander avec l'information standard venant d'un clavier (n-multiplet). Notons que chacun des synthétiseurs polyphoniques doit être commandé par une information du même type que celle vue précédemment: elle doit lui indiquer si une note est désirée et quelle est cette note. De façon non limitative, on peut donc raisonner comme suit dans le cas d'un clavier: on a p synthétiseurs polyphoniques et un clavier (par exemple) de n touches qui doivent pouvoir avoir accès à l'un d'eux à chaque instant (à condition qu'il soit libre, sinon on en cherche un autre) pour lui indiquer quelle note elle veut. On a donc réalisé une compression de l'information d'entrée: au départ on pouvait obtenir n'importe quel multiplet de m xn notes y compris l'absence de son, alors que le système proposé ne permet plus d'obtenir que tout multiplet de p notes parmi n x m: l'information les commandant a donc été réduite à un multiplet S' de p signaux S = (Tj,K.,Fj,Ej) destinés chacun à un synthétiseur polyphonique. Le problème est donc de réaliser le passage S'E S. Or remarque que ce procédé permet de remplacer n x m synthétiseurs mono toriques par un système bien plus simple contenant p synthétiseurs mo hophnniques, ce qui permet d'en réaliser de beaucoup plus sophistiqués. Notations: les signaux seront désignés par des majuscules non primées si ils se rapportent au synthétiseur et primées si ils se rapportent à la note. Ces majuscules peuvent être indicées, l'indice du bas indiquant le numéro du synthétiseur ou de la note. Si les signaux sont écrits sur plusieurs bits, leur écriture explicite fait intervenir des indices supérieure indiquant le poids du bit considéré. Exemple : Fj = Fj3 Fj2 Fj1 Fj0 est la forme binaire du signal indiquant au synthétiseur n0 j la note désirée. Les organes seront désignés par des minuscules d'imprimerie françaises suivies d'un numéro pouvant être représenté par une lettre et correspondant au code ci-après redéfini dans le texte évidemment. Opérateur logique: o; bistable: @; patch: 1; compteur: k; monostable: n; sommateur: s; multiplieur: p; mémoire: m; horloge: h; multiplexeur:#; encodeur: e;convertisseur: d; opérateur analogique: a; trigger: g; semiconducteur: q; condensateur: c; résistance: r; interrupteur: i. Un sous circuit sera désigné par f,u,v,x,y ou z. Ces lettres peuvent être primées pour éviter l'emploi de la meme référence pour deux éléments différents. La représentation d'un bus est telle que s'il est horizontal, la ligne la plus basse est celle de poids le plus bas, et s'il est vertical, la ligne la plus à droite est celle de poids le plus bas. Il peut n'être pas explicité (2 ou1 fils parallèles rapprochés) et selon l'usage, un trait oblique avec indication du nombre de lignes sera donné. Les dispositifs ci-dessous décrits prennent p = 8 non limitativement. Le premier dispositif non limitativement asynchrone est constitué de n circuits identiques n i, ie {1,2,...,n} reliés à un bus de commande C = C2C1C0 et un bus de sortie Y = Y7Y6...Y0 qui sont eux-mêmes reliés à une unité de commande centrale. (fig. 1) Chaque circuit n0 i comprend essentiellement un démultiplexeur non limitativement analogique 1 vers 8 wi' (ici car p =8) et un triple latch asynchrone (non limitativement) 1' La sortie n j Yij, du démultiplexeur n i est reliée sur la ligne noj Yj du bas de sortie Y i 1,2,...n et i 0,1,...,7 . L'entrée Qi' de chacun des multiplexeurs reçoit le signal de reconnaissance Si' de la note n i. Le signal si' peut par exemple être un signal carré de fréquence proportionnelle à celle de la note i, d'amplitude dépendant de la position de la touche n i et n'étant non nul que pour la touche en foncée. On retrouve ainsi Fi (permettant de reconnaître la note), El et I i Ti' Pour éviter 11 emploi d'un multiplexeur analogique, on peut aussi utiliser un créneau de fréquence dépendante de la note noi , de rapport cyclique dépendant de l'expression et existant quand la note n i est désirée. On peut aussi utiliser le rapport cyclique pour indiquer de quel clavier provient la demande. es procédés sont non limitatifs (on peut aussi utiliser une tension pour indiquer la fréquence etc...).Nor malement, la commande inhibition Ii' du multiplexeur wi' vaut 1, donc les Y' sont "en l'air" (HiZ state). D'autre part, la commande sélection logique Ai' = Ai2, Ai1, Ai0, de chaque démultiplexeur wi est la sortie du tri ple batch li (à 000 du début) dont l'entrée Ci = Ci@' ' C@' C1' est reliée sur le bas de commande C = C C C0. Au départ, ces triples batches sont à l'état transparent car Li = Ti' = O.Quand on désire la note noi, Ti' passe de O à 1, @, = Ti de 1 à 0, et Si se transmet sur la sortie v@, passe de @ @ @, @i - @i de @ @ @, @@ @i @@ @@@@@@@@ @@@ @@ @@@@@@ @i puisque Ai' = 000, et donc, puisque toutes les sorties Y#0, ##i sont en HiZ, Y = Yi@' = Si' est envoyé sur le synthétiseur n 0 dont l'entrée de commande est reliée sur Y@. On voit donc que Sj = Yj. De plus le triple batch li' se bloque, car Li' = Ti. Mais alors le synthétiseur n 0 est occupé, et si l'on désire une autre note, il faudra la demander au n 1 par exemple qui ne l'est pas.C'est pourquoi il y a un détecteur d'occupation u branché sur le bus de sortie et indiquant sur quel Yj il y a présence d'un signal. Ce détecteur u est constitué de p détecteurs identiques Uj dont un est représenté à la fig.2 dans le cas de Si' de la première ou de la deuxième forme. Uj est constitué d'un passe-bag âl (détecteur d'amplitude) ce qui donne Ej qui est alore envoyé sur un comparateur â2 à seuil bas V ce qui donne Zj. Fj est obtenu à partir de Yj grâce à un passe-haut â3 suivi d'une porte logique ou d'un monostable n. Zj # Tj, car comme le système est asynchrone, il ne faut pas tolérer des changements quasi-simultanés sur 2 lignes J. Aussi prévoit-on un circuit décaleur v suivant u et décalant les Zj simultanés afin d'obtenir Tj et représenté en fig.3. Pour ce faire, chaque signal Zj est envoyé sur l'entrés d'un latch synchrone îj (bascule d) de sortie Tj et de commande Dj. Lorsque Dj # , l'entrée est amenée sur la sortie et y reste jusqu'au front négatif suivant. Dj est la sortie n j d'un décodeur binaire# décimal ê, dont l'entrée est la sortie d'un compteur binaire 3 bits commandé par une horloge h de période = durée minimum requise entre Z changements sur des lignes Tj différentes.A la sortie de ce détecteur on a 8 signaux logiques (To,Tl,...,Tj,...,T7) tels que si le synthétiseur n 0 est occupé To = 1, sinon To = O. Ces 8 signaux sont enfin envoyés dans une centrale logique x indiquant alors vers quel synthétiseur restant libre on va envoyer le prochain signal SX : sa sortie est donc reliée au bUs de commande C = C C1 C2.En effet, les multiplexeurs n ##i sont à l'état transparent, et donc C devenant 001, A#' devient 001 et donc si un éventuel ordre de fournir la note X # i intervient, le signal S#' correspondant sera dirigé sur @#, donc sur Y1 et le synthétiseur n01. I1 n'en est pas de même pour la touche n i déjà enfoncée et qui de ce fait a son latch à l'état bloqué: Si va toujours au synthétiseur n 0. Le raisonnement peut se poursuivre si on continue à demander encore d'autres touches (par exemple en enfonçant les touches d'un clavier) jusqu'au nombre de 8, la centrale logique indiquant chaque fois vers quel synthétiseur on envoie le signal S!. Cette centrale peut être conçue de la façon suivante: C0 = B1 + B3 + B5 + B7 C1 = B2 + B3 + B6 + B7 C2 = B4 + B5 + B6 + B7 où Bk = 1 # on utilise le kième générateur (alors B# ## k =0) et B = T Bk = To.Tl .... Tk-1. T-k (fig.4) On envoie donc la nouvelle demande au synthétiseur libre de n d'ordre le plus bas. Si on lache une demande, (par exemple Qi' reliée sur Yo), alors To redevient 0, et la centrale logique agit en conséquence, mais les autres occupations ne sont pas modifiées.Cela nous permet de réaliser le sustain: si chaque synthétiseur possède une mémoire, il peut mémoriser le signal Sj qui le faisait fonctionner précédemment, et continuer sur sa lancée. Cependant, si on lui demande une nouvelle note, il s'aligne aussitôt sur cette nouvelle indication. Une autre méthode plus pratique dans le cas où l'on a un transport du signal Fi autrement que par une tension proportionnelle (car on a alors difficulté de mémorisation analogique) peut être utilisée. Elle a en outre l'avantage d'assurer un sustain plus long: en effet si la touche lachée était justement sur un des premiers synthétiseurs (n 0 par exemple) vu l'ordre d'occupation, celui-ci sera très vite repris par la prochaine touche enfoncée, cessant le sustain.Le principe consiste donc à envoyer le signal sur le bas de sortie Y, même lorsque l'on a laché la touche. Pour y arriver, on a adjoint une bascule entravant la marche du signal Ti indiquant quand la note noi est désirée. On utilise à la place le signal Pi qui passe à 1 dès que Ti' # i (donc dès que la note noi est demandée) et le reste même quand Ti # ,Ceci est obtenu avec une bascule bi par circuit noi d'entrée Ti et de sortie Ii. Cependant, si l'on agissait ainsi, après 8 notee demandées successivement, le système se bloquerait puisque les 8 synthétiseurs sont déjà occupés. Aussi, dès que le 8ième synthétiseur est occupé, (B7 = 1 dans la centrale logique), on libère ceux occupés uniquement par le sustain, c'est à dire ceu@ tels que T! = O et Pi' = 1. Ceci s'obtient en envoyant une impulsion # par une 4ième ligne du bas de commande C3 sur toutes les commandes Xi des bascules, ce qui entraîne P'i = 0 si Ti' = 0 et est sans effet pour Ti' = 1, L'équation logique de la bascule représentée en fig.6 est donc: Pi' = Ti' + Pi'.Xi' ; Pi' = Pi' Le circuit réalisant C3 à partir de B7 est indiqué en fig.7: un monostable nl suivi d'un opérateur inverseur transforme B7 i en une impulsion Se durée suffisante.Le condensateur c, la résistance r et la -orte "et" servent à s'assurer que toutes les bascules sont à 0 quand on branche l'alimentation V+. On a donc réalisé une compression sur le sustain: si beaucoup de notes se succèdent, on a peu besoin d'un sustain long (l'oreille est alors incapable de faire la différence) sur les pre mièvres notes demandées. Ce procédé est généralisable. Cependant, il peut arriver que l'on demande plus de 8 synthétiseurs simultanément, par mégarde. Dans ce cas, il y aurait blocage. Pour l'éviter, dès que tous les synthétiseurs sont occupés (B7 = 1), on inhibe tous les multiplexeurs des circuits noi non déjà utilisés B7 = 1 # Pi' si Ii' était nul) ce qui nécessite une 2ième bascule bi' représentée en fig.8. L'information B7 est transportée par la 5 ligne de C, C4. Le circuit noi avec toutes ces modifications est représenté en fig.5. Mais on peut aussi supprimer bi' (li'= Pi') et mettre tous les Y7' en l'air, ce qui entraine p = 7 au lieu de 8 ici.Ce système complet peut se réaliser avec des circuits intégrés, un circuit imprimé identique pour par exemple 4 circuits de note, un circuit pour le générateur, un pour la centrale logique, un pour le détecteur d'occupation et le décaleur. Mais il est aussi possible de réaliser les circuits pour 4 notes en un seul circuit intégré CMOS 22broches par exemple), qui contiendrait donc 4 multiplexeurs analogiques, 12 latches et 4 bascules. Ceci peut aisément se réaliser en technologie CMOS. Un tel circuit aurait donc comme broches: 4 entrées Fj, 4 entrées Ti, 8 sorties Yj (représentant les Sj) et 2 alimentations, ce qui donne 20 en tout.En utilisant un signal Si logique (par exemple un créneau existant pour Ti = 1, de fréquence fonction de Fi' et de rapport cyclique dépendant de Ei'), on peut n'utiliser que des dé multiplexeurs logiques et donc encore simplifier. Ceci permet en outre une réalisation entièrement TTL, TTLLS, TTLL, TTTLS ECL etc... Ce circuit a son schéma représenté à la fig.5 pour une réalisation CMOS. Les autres circuits peuvent aussi être réalisés en technologie intégrée. Notons toutefois que ici ou en technologie CMOS ou TTL collecteurs ouverts, (avec quelques modifications), le bus de sortie devra être relayé de temps à autre en utilisant p portes ou ou et etc... Bien entendu, les systèmes et procédés ici décrits ne sont pas limitatifs et une autre réalisation peut être donnée en se basant sur les mêmes procédés. Le deuxième système proposé a toujours pour but d'effectuer la compression indiquée, mais il fait appel au temps partagé et est synchrone. (fig.9). On s'occupe donc successivement des notes appartenant (dans le cas d'un instrument à claviers) à un ou plusieurs claviers ou même,sans changement, à un clavier et un instrument, ou un micro, ou plusieurs etc...(ces derniers étant suivis d'un convertisseur afin d'obtenir une forme d'information d'entrée s compatible, ces instruments ainsi pourvus seront qualifiés de claviers fictifs). Appelons donc m le nombre de claviers (fictifs ou réels) de n notes maximum. On a donc m n notes en tout, et S' est un multiplet de m x n signaux, Si' = (Ei', Ti').Cee signaux (qui peuvent avoir l'une des formes décrites plus haut, mis à part que F' n'est pas nécessaire, puisque lton se fie à la position du signal pour obtenir sa provenance) sont envoyés sur un multiplexeur w10 (analogique ou logique suivant la forme des signaux) de 1 vers m x n dont l'entrée sélection est commandée par-un premier compteur binaire kO remis à O à m x n. Ce premier compteur est commandé par une horloge N b qui de façon synchrone commande aussi un deuxième compteur binaire kl k2 remis à O à n, et ce dernier commande en cascade un troisième compteur binaire k3 remis à 0 à m. Ainsi le deuxième compteur indique le numéro de la note pointée dans son clavier, et le troisième indique le n K du clavier.D'autre part, pour simplifier le travail des synthé- tiseurs, le deuxième compteur est en fait non limitativement subdivisé en 2 autres kl et k2 branchés en cascade: le premier kl est remis à 0 à12 et indique ainsi le nO I de la note dans un octave, alors que le deuxième k2 est remis à O àN où N = nombre d'octaves par clavier indique le n J de l'octave. Tout se simplifie ai n = N 12, (ce qui sera non limitativement supposé), et si N = puissance de 2, ainsi que m. Nous supposerons donc non limitativement que N = 8 = 23, m = 2; ceci permet de brancher 2 claviers (fictifs ou réels) de 8 octaves complets, mais ce n'est pas une obligation. I,J.K sont les coordonnées de la note pointée et sont envoyés sur le bus adresse A: I = A3 A2 Al A en binaire J = A6 A5 A4 et K = A7. Cependant, extrayons Ti' de Si' à la sortuie du multiplexeur à l'aide du décaleur f, ainsi que Ei' sur lequel nous reviendrons. Ces signaux apparaissent séquentiellement sous la forme T et E . Comme d'habitude, TI = O si la note n i n'est pas désirée et 1 si elle 11 est. Notons qu'il est aussi possible de commander le multiplexeur wlD par le bus adresse au lieu d'utiliser la sortie de kO. (Il faut d'ailleurs remarquer que les compteurs doivent être remis à O en même temps par un circuit non représenté une fois l'alimentation stable). Le multiplexeur ut est représenté à la fig.ll.Dans ce dernier cas: il est constitué de m = 2 groupes (1 par clavier) de 8 soue-groupes (1 par octave dont seul le noj est représenté ici) de 3 multiplexeurs 4 2 , , #j1, #j2 et wj3 recevant les 12 signaux Si de l'octave j commandés par A A , et dont les sorties sont connectées aux trois premières entrées d'un multiplexeur 4# # 1 wj4 commandé par A3A2. La sortie Xlj du sous-groupe n j appartenant à l'octave n01 est reliée à l'entrée du multiplexeur 8 # 1 #10' commandé par A6A4A5 dont la sortie est enfin connectée à l'entrée n01 du multiplexeur 2 1 #, commandé par A7, ce qui donne Z.L'avantage d'une telle constitution modulaire réside dans une réalisation plus facile (décomposi- tion en octaves et claviers) et dans le choix plus facile de m et n sans utiliser de circuits différents. Ensuite, nous avons p circuits identiques (1 par synthétiseur) dont le n j est représenté en fig.l0; p peut être quelconque, sans rien changer au système. Chacun est constitué essentiellement d'un octuple (ici) N latch synchrone lj branché sur le bus adresse. Ces latches sont bloqués normalement, mais dès qu'un front négatif arrive sur C. notation habituelle j = n du synthétiseur concerné) sa sortie Bj prend la valeur de Aj = A. Bj est donc reliée au synthétiseur n j. C'est donc simple: la sortie T du décaleur f laisse apparaître les Ti' de manière séquentielle. Donc dès que lton demande la note non # de coordonnées I#'J#'K#', T ne devient # 0 qu'au temps = , auquel cas T = T# = 1 et I#'J#'K#' vont sur le bus adresse A; alors on envoie une impulsion négative sur CO: immédiatement les coordonnées I#J#K#passent sur la sortie Bo du latch n 0: le synthétiseur n 0 prend en charge cette note. Mais alors, le temps passe et décrit toutes les valeurs de > à m x n puis recommence le cycle. Si d'ici là on pointe une autre note demandée, T repasse à 1 et il faudra déclencher le latch n02 12 qui retiendra les coordonnées de ladite note. Donc chaque fois que T passe à 1, on aiguille la donnée suivante sur le latch suivant etc... Pour cela, il suffit d'utiliser un 4ième compteur binaire 3 bits k4 (ici) remis à 0 à 8 relié à un décodeur binaire d cimal. Quand T repasse à 0, le compteur saute d'un cran, et le décodeur envoie un niveau 1 sur le Ci suivant. Alors, quand T remonte puis repasse encore à 0, le décodeur supprime le niveau 1 sur Cj (front négatif), c@ qui déclenche le latch correspondant et ainsi de suite. Cependant, si on laissait le tout ainsi, au cycle d'exploration suivant, on repasserait sur les notes X et déjà demandées, et d'autres synthétiseurs vont être requis en plus pour les fournir, ce qui est absurde. Pour éviter cela, à chaque circuit n j on adjoint un compara-: teur #j comparant l'entrée Aj et la sortie Bj: si elles sont égales sa sortie Dj vaut 1, sinon 0. Supposons que, au cours d'un cycle suivant, on redemande une note n # déjà demandée à l'un des synthétiseurs par exemple n j . La sortie Bj indique donc I# J# K# , et à l'instant 4 = # de la demande, on a de meme IX J EX sur le bus adresse A, d'où Aj = Bj # D. = 1.A ce moment, il ne faut pas redemander la note au latch suivant, et donc ne pas faire avancer le 4ième compteur d'un cran. C'est pourquoi la commande fi du compteur k4 vaudra: C = (Do + D1 + .. + D7). T' et non plus T1 (obtenu grâce à o2 et 03): c'est seulement si D = D0 + D1 +....+ D7 # 1 donc Dj = O # j que le signal ti est transmis. Notons enfin qu'à cause du retard dû à tous les opérateurs logiques on risque d'avoir des problèmes quant à ce dernier signal. Avant d'appliquer C, il faut être bien sûr que tout est stabilisé. Aussi, si le multiplexeur change de pointage sur le front négatif du signal d'horloge H, on n'enverra le signal T qu'au moment du front positif de H et ce, pendant un temps e, on l'arrête donc avant le front négatif suivant. C'est pourquoi le signal T passe dans un e porte set 01 commandée par un monostable n de période G commandé par le front positif de l'horloge: c'est le signal P. Cependant le signal binaire Bj indiquant Fj et le n du clavier d'origine peut facilement être transformé en signal carré de fréquence proportionnelle à celle de la note désirée. Il suffit de disposer d'un générateur f0 12 signaux de fréquence #r = #@@ x &alpha; où est un ici coef- ficient de proportionnalité, et #OI la fréquence de la note n I dans la gamme 3. Ces 12 signaux carrés notés G , G1 , G12 sont envoyés sur un bus générateur G.Sur ce dernier, et pour chaque circuit n j est branchée l'entrée d'un multiplexeur 12 vers 1 #j commandé par la partie I de la sortie B.. Ce multiplexeur est identique (non limitativement) au sous-groupe #jl, #j2, #j3, #j4 déjà décrit. La sortie de #j commande un compteur binaire 8 bits #j dont les sorties sont branchées sur l'entrée d'un mutiplexeur 8 vers 1 wj' commandé par la partie J de Bj. La sortie de ce multiplexeur donne un signal carré de fréquence proportionnelle à la note décrite sur Bj.Le signal Bj7 indique de quel clavier elle provient: il sera envoyé au synthétiseur j pour en déduire le timbre, enveloppe etc... désiré correspondant au clavier considéré. Mais il est aussi possible de déduire de Bj binaire une tension fonction logarithme de la fréquence correspondant à la note désirée. Chaque bit d'abord stabilisé en niveau (inutile en CMOS) puie le bit Bj0 est envoyé sur une résistance de valeur R, Bj1 sur R/2, Bj2 sur R/3, Bj3 sur 12 R, Bj4 sur 6 R, Bj5 sur 3 R, Bj6 sur 3/2R.Les autres sont reliées à l'entrée d'un ampli (entrée +) opérationnel contre réacti@@@@ par une résistance R/6. On voit que l'on peut obtenir la forme désirée pour le signal Ej, et ce de manière commode, afin de commander n'importe quel type de synthétiseur en sortie. afin, ce système réalise le sustain ou plus exactement la même compression de sustain que dans le premier. En effet, si on lache une note, les latches l'ayant mémorisée gardent l'information. Cependant, au-delà du 8ième synthétiseur utilisé, le 4i@ème compteur revient à 0, et l'impulsion ti suivante ira donc sur le synthétiseur n 0, qui donnera donc la note i correspondante et abandonnera celle qu'il produisait avant. On remarque que cela donne aussi une protection dans le cas où l'on demande plus de 8 (ici) notes à la fois: dans ce cas la première note demandée est abandonnée au profit de la dernière en surnombre et ainsi d suite. Il nous faut maintenant obtenir le signal Tjpour chaque synthétiseur. Pour cela, une solution simple sempble être de le faire à partir de T qui est T' séquentiel. La fig.10 montre ce système. quand Ti' = 1 et que la note n i a déjà été demandée à un synthétiseur n j qui la fournit, on a Dj = 1 à t = i , car à ce moment A = Aj = Ii' Ji' Ki' = Bj puisque cette note est déjà fournie ce qui veut dire que Dj = 1. Aux autres instants, Dj = O, car la note n i est passée une seule fois sur le cycle. Remarquons que si Ti = 0, on peut avoir le synthétiseur n j produisant la note n i par sustain, et alors, au temps t = i, on aura aussi Dj = 1 et Dj = 0 pour t # i.On voit donc que le signal Qj = Dj.T obtenu grâce à la portè "et" oj passe à 1 au plus une fois dans le cycle et ce, si et seulement si Ti = 1, sinon Uj = 0 V # .On voit donc que Qj est l'échantillonnage du signal Tj désiré à la fréquence du nombre de cycles par secondes, soit la fréquence de l'horloge # (m x n) (ici 96 x 2). I1 suffit donc de mettre un filtre passe-bas aJl derrière QJ pou@ obtenir Tj. (Exemple: si l'horloge tourne à 250 KHz, on a une fréquence de cycle total 1 KHz pour Ui, ce qui est suffisant). j IL Enfin, le dernier problème consiste à récupérer le signal Ei* supposé ici analogique. On peut le faire de la même façon que pour Tj: on fabrique le signal Rj = E* switch Dj (le signal E*=Ei*' séquentiel est celui du début de l'exposé de ce système juste après le séparateur f de (E*', T')) ce qui signifie Dj = 0 # Rj = O et Dj = 1 # Rj = E*'. Geci s'obtient avec un interrupteur analogique il (ou logique porte suivant la forme de E) recevant E et commandé par Di. Notons toutefois qu'en pratique Ei*' et Ti' nécessitent ùn certain temps d'établissement (voir plus haut). On est donc obligé d'utiliser le même principe à savoir qu'au lieu de T' tel quel on utilise ce signal "passé" dans une porte commandée par P (front positif de l'horloge "passée" au monostable) et de même E sera pris après être passé à travers un interrupteur il commandé par P ce qui donne U. Mais il peut être préférable de faire subir ce traitement à DJ ou d'utiliser des mémorisations ("latchages" par bascules diverses). Donnons quelques indications sur la façon de transmettre et de créer Si contenant El et Ti: une solution très simple pour un clavier i i est une cellule photoélectrique (LDR, photodiode, phototransistor, etc... plus ou moins cachée par un volet lié à la touche n i. Le courant obtenu dépend de la position de celle-ci (Ei*'). Cependant,on Pour nit en plus un courant de base dès que la touche est effleurée (Ti'). Ces courants appliqués à une résistance par exemple fournissent Après le multiplexeur, on peut réparer les signaux par un comparateur qui donne T, etun ampli polarisé spécialement qui fournit E (circuit f). Une autre solution fournissant des signaux logiques est d'utiliser pour Si un signal digital de fréquence dépendant de la position de la touche noi ce qui donne El et existant seulement pour la touche effleurée (Ti'). Ceci peut être réalisé avec un oscillateur simple par touche. Une autre solution est d'utiliser un signal créneau de rapport cycli- que dépendant de la position (Ei#') et existant seulement dès que la touche est effleurée (Ti). Malheureusement, dans ces derniers cas, pour que le compresseur fonctionne, il faut que la fréquence des signaux Si soit élevée, ce qui peut poser des problèmes.C'est pourquoi il peut être préférable, si l'on veut utiliser des signaux entièrement logiques, de faire un multiplexeur wbm x n vers 1 logique pour le signal T et un autre wm m x n vers 1 pour le signal E, la commande d'aiguillage de ces deux multiplexeurs étant la même (non limitativement sortie de kO ou bus adresse #). Le signal T; est habituel, et le signal E peut être un signal de fréquence basse par rapport à la fréquence de balayage. La fig.l2 donne un exemple de production de Ei' créneau. Un oscillateur produit une triangulaire qui est envoyée dans le bus raccordé à l'entrée de chaque comparateur ai' (un par touche) dont le seuil Vi' est réglé par la position de la touche n i, Vi' étant obtenu par exemple par le procédé mentionné plus haut.Ti' est obtenu par un inteerupteur ii' basculant à peine la touche effleurée. Le compresseur n'a pas besoin du circuit réparateur f, et i2 peut être rempla çé par une porte et (fig.13 reprenant 9). De même dan le circuit n j ij (fig. 14 reprenant 10). Cependant, à la sortie de #j#, on retrouve le créneau, mais pour le transformer en signal analogi@@@@, on a recours à un monostable n suivi d'un moyenner (passe-bas) aj7. évidemment, ce signal peut enfin être converti en binaire par un convertisseur dj. Ces modifications sont à la fig.l4. Notons que le terme "position" doit être pris ici au sens large, car il-peut aussi bien s'agir de la vitesse ou de l'accélération. Réalisation: le circuit de base (sans le multiplexeur w) peut être 'ntérc, mais surtout les p circuits identiques n j (sauf les passe bas éventuellement). Les plans des fig.lO et 14 indiquent qu'ils comporterait (non limitativement) 1 octuple latch, 1 octuple comparateur binaire,et, si l'on désire une conversion fréquence de F, 1 multiplexeur logique 8 # 1, 4 multiplexeurs 4 - 1 et un compteur 8 bits.On peut peut également faire une réalisation en microprocesseur, en suivant un programme d'exécution identique à ce qui a déjà été fait ici. Nous allons maintenant étudier diverses formules nouvelles proposées pour réaliser les synthétiseurs onvphoniques commandés non limitativement par les signaux Sj'= (Kj*,Fj,Tj) dont il était question plus haut. I1 est cependant évident que les systèmes et procédés décrits peuvent servir indépéndèmmènt des compresseurs ci-dessus mentionnés (par exemple dans un synthétiseur monophonique , un synthétiseur pour guitare, etc... ainsi que pour d'autres applications). La première catégorie étudiée se rapporte à des synthétiseurs harmoniques, c'est à dire réalisant la synthèse par addition de sinusoides (série de Fourier tronquée), ce qui permet un réglage direct de la forme fréquentielle du signal de sortie, et ce, à chaque instant et instantané- ment.Nous allons tout d'abord approfOndir les fondements théoriques d'une telle synthèse, puis nous en déduirons des résultats pratiques intéressants. Nous savons qu'à tout signal périodique du temps Y(t) de période T correspond un son permanent unique S de fréquence 1/T = Or, tout signal périodique du temps peut, sos réserve de régularité suffisante (que l'on supposera ici) s'écrire:: Z(t) = an sin n + b c08 nwt an = ss 5 Y(t) sin nit du w = 2 b bn= Y(t) cos not dk Z(t) = n=O = cos(i-t Or, l'oreille étant insensible à-la phase, à la composante continue et ayant une réponse fréquentielle limitée. on aura un son identique si l'on prend à wd6 la place le signal Y(t) = 2 hn cos net od X(t) égale h n cos nwt, les signes des h n étant quelconques. Cependant, pour les mêmes raisons, rien ne change non plus si l'on prend pour Z cos nwt ou sin nwt, avec kn = hn # n e tl, 2, ..., N# et kn quelconque au-delà. Toutes les fonctions obtenues sont des représentations d'un même son S. On voit que l'important est que le spectre fréquentiel du signal représentant (qui constitue une ynthèse) soit identique celui du son jusqu'à un certain ordre N. C'est pourquoi on peut ne pas tenir compte de ce qui se passe au-delà.On remarque alors que la synthèse par fonctions de Valsh ou autre méthode utilisant un développement limité en fonctions orthogonales n'est pas bon, car le représchtant obtenu se rapproche d signal à obtenir dans le domaine temporel sans satisfaire le critère ci-dessus indiqué. Nous allons donc donner un procédé général en tenant compte.On démontre en effet que toute fonction périodique Z développable en série de Fourier et de période T admet dts représentants Y fonction paire et X fonction impaire de période T et ayant même spectre fréquentiel jusqu'à l'ordre N inclus. D'autre part, étant données N fonctions périodiques Pk paires (k e#1, 2,....,N#) admettant la période T et le développement en série +00 de tourier Pk(t) = 2 cos t tel que dét.B O B = (matrice tL=O n. bnk , net k e 61, 2 , N! ), alors Y s'écrit Y = kPk avec Yk = ;iNjhj où (%kj)= B ; de même, Y s'écrit Y = ffi XkIk avec Ik=N I fonctions périodiques impaires de période T et de développement w 1k Non ank sin net tels que det.A + O A = (a) et xk = avec (o;5=A. NonNlimitativeNment, considéroZns un système a fonctions paires. Yf N ij hJPi = z .. (1$ où b,i6ij cosnu .33 cowt = OU ObniBij 'dij Prt) = cow +c6t = = nj CDS ncDt + bt cosnxt | c6t = cos joot cosnxt + cst On voit donc que Cj (t) est le représentant de cos jwt aux harmoniques d'ordre supérieur à N près, donc suivant le critère défini plus haut. On remarque que pour supprimer les harmoniques, il suffit d'uitliser un filtre passe-bas, on obtient alors rigoureusement cos jwt, alors que ceci est impossible avec Walsh. Le spactre de C3(t) est indiqué en fig. 16 pour N = 8. En ordonnée on a |#C3|=|#e(u)| u = fréquence et en abcisse u/# avec 9 = fréquence fondamentale). L'équation (1) montre queétant donné un son de spectre {hn}, n # {1, 2,....,N} pour le reproduire, il suffit de mélanger N signaux C n (t) pondérés par hn, ce qui permet de travailler directement dans le domaine fréquentlel. Pour cela, on utilise un mélangeur constitué par exemple d'un amplificateur opérationnel a et de N potentiomètres réglant le niveau de chacune des composantes spectrales jusqu'à l'ordre N. Mais on peut aussi faire varier le timbre au cours du temps e remplaçant les h par H (t) fournis Far (par exemple) un générateur d'enveloppe n n commandé par le(s) signal (gnaux) d'expression E ou un calculateur lo que ou analogique .Pour ce faire, on peut utiliser t; amplificateurs gain commandé (VCA) Pn par les signaux Hn (t) et recevant les signaux Cn(t), les signau: résultants étant ensuite envoyés sur le mélangeur a (signal résultants: H n (t) Gn(t) w Pour obtenir les signaux Cn(t) = EstinP;tt , il suffit d'additionner les signaux P. (t) pondérés par les par matriçage électronique: non limitativement la matrice est constituée de N réseaux non de N résistances rirr branchées sur un ampli opérationnel a n (qui peut autre un VCA) dont le gain total pour chaque entrée in est inversement proportionnel à rin. A la sortie de chacun d'eux, on a C n (t). On a donné à la fig.l8 une réalisation de la matrice et du mélangeur dans le cas où l'on dispose de signaux +Pi(t) et -Pi(t) à l'entrée (du point de vue alternatif).Alors, si &gamma;in > O, on branche rin à +P.(t) et vice-versa. D'autre part, il n'est pas exclus que Pi(t) ait une composante continue. Dans ce cas, la composante totale induite sur l'ampli n n sera éliminée par une résistance rn' branchée d'un côté à un poten V' et de l'autre sur l'entrée de l'ampli non. Ici les amplis an sont n des VCA dont un schéma indicatif est donné en fig.l7: on contreréactionne un ampli opérationnel a' au moyen d'une résistance r' et d'un transistor FET q dont le gate reçoit H(t) O par un pont diviseur. Le réseau de résistances rin est branché sur l'entrée +. Remarquons que ce système est apériodique: si l'on fait varier la période de tous les signaux Pi(t) en même temps, le spectre de Y(t) et son amplitude ne varient pas, seule sa fréquence change. De plus, il est linéaire: il revient au même de faire varier l'amplitude des P. avant que de faire varier l'amplitude des Y après.En résumé, si l'on veut synthétiser la somme de p signaux Y.(t) d'amplitudes a J et j de fréquences différentes non forcément constantes, on produit indépendemment les p groupes (je {1,2,....,p} ) de N fonctions (ie {1,2, ,N}) aiPii(t) de fréquence multiple de pour chacun des p signaux somme Pi(t) = ajPij(t) avec un simple mélangeur #j puis on envoie les N produits Pi(t) dans le système u décrit précédemment (matrice + mélangeur)(fig.l9). Enfin il fonctionne sans constante de temps: lors d'un envoi brusque des signaux P. (t), la sortie donne aussitôt Y(t) sans modification. On remarque les avantages sur les systèmes à filtres à boucle de phase (PLL), à correction non linéaire dont aucun ne possède les @ propriétés (apériodicité, linéarité, rapidité) d@crites plus haut. De plus, pour des fonctions P. bien choisies, on a un sys tme simple. Leproblème est de fabriquer les fonctions Pi(t) le plus simplement possible en simplifiant le plus possible la matrice R 1, donc B. On peut utiliser simplement des créneau pairs de divers rapports @y@liques obtenus par exemple en envoyant une triangulaire (par exemple) symétrique sur des comparateurs ai à divers seuils. Ce système est alors apériodique et sans constante de temps.Dans ce cas, Comme on a un facteur 1/n devant chaque ligne de la matrice, (car on utilise uniquement des signaux décroiss ant en 1/n) il est plus simple de la remplacer par alors, = (bni') et B'-1 = (bni') qu@@ l'on cherche, et les fonctions Cn'(t) obtenues valent 2/@n Cn(t), donc la correction peut se faire dans le mélangeur. Pour simplifier B, on peut aussi prendre (ti) -1 entier, ce qui annule certain bni. Une solution est de prendre = 1/i (pour i = 1 on a un signal carré) d'où bn' = sin Tr n/i s'annulant pour n/i entier. Mais au-delà de N = 4, la matrice devient compliquée.Cependant on sait que en passan t une triangulaire dans un "opérateur valeur absolue" de gain 2 et de tension de sortie de repos valant -Vc, on en obtient une autre exactement identique de fréquence double (donc de contenu harmonique nul pour 9 = n9. et n impair) et paire. On peut donc l'utiliser pour obtenir de nouveaux créneaux de fréquence double qui ne contiennent donc que les harmoniques d'ordre pair par rapport au fondamental , mais on peut encore doubler et obtenir des créneaux de fréquence quadruple (harmoniques multiples de 4 ) etc... Ceci apporte des coefficients nuls pour B. D'autre part, le système reste apériodique et sans constante de temps. Appelons rq le créneau pair d'amplitude 1, de fréquence 2q et de-rapport cyclique 2/n.Pour savoir quels créneaux utiliser, on écrit sur une première ligne en bas les harmoniques de rang # N contenues dans les créneaux de fréquence 1x#. 2x#. , puis 4x#0 , etc... Supposons N =8. On voit qu'avec onpeut par combinaison linéaire supprimer l'harmonique 8 des r3 , et #1 donc on barre les 8 du dessous. Sur la ligne q =2, il ne reste qu'une harmonique 4, il suffit donc d'un r (exemple ri ) qui ainsi modifié peut être retranché à #2 pour retirer l'harmonique 4 etc... q = 4 8 1 q=3 4 # 1 q = 2 2 # 6 # 2 q = 1 1 # 3 # 5 # 7 # 4 ère On peut évidemment aller à un ordre g plu haut. Sur la 1 ligne, on7a besoin que de fonctions ayant des harmoniques impaires. On peut donc synthétiser les créneaux par rapport à l'origine des etmps, avec des doubles comparateurs. Le tableau avant indique la matnce obtenue pour la combinaison ci-dessus. On a représenté en fig. 20 les signaux #1, #21, #2et#12. Matrice B'-1: 0,309 0 0.382 0 0.118 0 -0.191 0 0.618 0 0.236 0 0.236 0 0.618 0 -0.309 0 -0.618 0 -1.12 0 -0.809 0 0.382 0 0.764 0 0.764 0 0.382 0 0.055 0 0.110 0 0.817 -1 0.762 0 -0.854 1 -0.708 0 -0.708 1 -0.854 0 1.090 -1 0.180 1 0.180 -1 1.090 o -0.854 1 0.292 0 0.292 1 -0.854 1 On remarque que la matrice se simplifie si l'on prend une sinu corde paire ae fréquence 90( obtenue grace au conformateur de VCO donnant hi) à la place de , On a alors O O -1 0 -0.5 0 -0.5 0 O 0 -1 0 -1 0 0 0 O O O O -0.5 0 -0.5 0 1 0 2 0 2 0 1 0 O 0 O 0 0.707 -1 0.707 0 0 1 1 0 1 1 0 0 0 -1 -2 1 -2 -1 0 0 0 1 2 0 2 1 0 1 On voit donc qu'avec un signal triangulaire de fréquence #0 on peut obtenir sans constante de temps et de façon apério -dique N sinusoides cos n2##0t à des termes d'ordre N près (qui peuvent d'ailleurs autre supprimés avec un passe-bas ). On ne peut obtenir la meme chose avec des filtres ou des boue celles de phase, et ce procédé peut donc servir pour d'autres usages. Le signal triangulaire peut, sans constante de temps, être produit par un oscillateur à centrale par tension (VCO). Un circuit de réalisation non limitative dans le cas N=8 est donné fig. 21: 3 opérateurs valeur absolue al a2 et a3 en cascade fournissent les diverses triangulaires #1,#2,#3,#4 les comparateurs all, a21, a31 et Mi de tension seuil V1, V2, V3 et V4 et branchés sur entrée recevant bidonnent rt rs, #41 , les comparateurs a12 et a22 branchés après a2 don -nent #12 et #22 , enfin les comparateurs a13 et a14 donnent #13 et fl avec #3 et#4 fournis par a2 et a3. On remarque que l'on peut facilement moduler les Pi (t) en modulant les tensions d'alimentation des comparateurs ou des portes logiques les suivant qui permettent d'obtenir les signaux de composantes alternatives +Pi(t) et -Pi(t). Ces portes permettent en plus de stabiliser les niveaux de sortie. Notons que l'on peut faire varier les signaux à n'importe quel niveau (#,# etc.) avec le temps pour obtenir des effets intéressants. On peut utiliser des signaux impairs Ii(t) pour la syn -thèse. La matrice At-1 est très simple en prenant pour Ii(t) des signaux carrés de fréquence proportionnelle à m Par exemple, pour N=8, on a, pour A'-1 : 1 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 -1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 -1 -1 0 0 0 0 1 0 O O O O O O O i On doit donc utiliser un réseau de 12 résistances égales. Pour obtenir ces signaux, on peut utiliser des PLL avec compteur ou le système ci-après. Appelons m = ppcm ( 1, 2, ..N )et considérons un signal carré de fréquence ##0 . Pour obtenir un signal carré impair de fréquence = n#0 O ne ( l, 2, ..., N ), on divise m par h = ppcm ( 1, 2, n-1, n+1, ... , N ). n#o = #o x #/n. Pour ce faire, on uti- -lise des channes de compteurs en cascade. Cependant, les signaux obtenus ne sont pas symétriques, aussi utilise-t-on une bascule bn au bout de chacune des channes. Comme elles divisent la fréquence par 2, on part de 2m#o o . Cependant, si on utilise des chatnes indépendantes pour chaque Ii, on divi -se 2m#o o par des nombres identiques dans chacune. Par exem- -ple, si N > 7, on divise m par 7 dans la chaine 2 et 3, avec deux divisions par 7, alors qu'il serait plus simple de n'en utiliser qu'un commun à toutes les chatnes pour lesquelles est multiple de 7. On donne une réalisation de ce montage pour N=8 en fig. 22 où knj est un compteur diviseur par n et j un numéro de différenciation. Pour une fréquence #o o = 3.480H2 (la 6), on a 2m#= = 1.680 x 3.480 = 5.8 MHz; donc, ces comp- -teurs peuvent être des CNOS. Avec la technologie TTL, on peut monter jusqu'à N = 10 et l'ECL N = 12.On peut aussi utili -ser des PLL intermédiaires permettant de multiplier un signal intermédi ire de fréquence K par 11 (ici), ce qui introduit une constante de temps, mais k fois plus faible. Un autre procédé de synthèse est l'utilisation de filtres non linéaires. Le signal d'entre (par exemple sinusoidal) e (t), et d'amplitude variable avec le temps1 est envoyé sur le filtre non linéaire d'opérateur F tel que F[e] = an(e)n. Par exemple bour @(t) = A(t).cos.uit. on a. comme signal de sortie: s (t) b: :Dfk sin(2bil)(ut s(t) = an,Ancos.Lut = I Pk.cos.2k t + a,Ae9 tk 3 Rq 4(k-qA Ct t~ = k20G On voit donc que, si F pair, alors, on n'a que des harmoniques paires, et inversement. Qd A(t) varie, on peut ainsi obtenir un timbre variable.Le filtre peut être réalisé avec des mul -tiplieurs analogiques Pn comme indiqué en fig.23 où N=5 suivis d'un mélangeur constitué d'un ampli op a et d'un réseau de po -tentiomètres et de résistances rn et rn' permettant de régler les coefficients an, et l'on peut, comme dans le cas de la ma -trice, utiliser des VCA (fig. 23). Une autre méthode consiste à mettre en oeuvre une équation différentielle non linéaire, et de la résoudre par un moyen analogique. Par exemple, une corde vibrante sur le mode fonda -mental peut s'écrire: X + x .F(x)+ t=0, avec F(x) pair et F(o)=#o2 pulsations des petites élongations. Le terme d'amor -tissement est provisoirement supprimé: on l'obtiendra par une méthode plus simple. La fig. 24 représente le circuit compre -nant deux intégrateurs en cascade a1 et a2 suivis d'un VCA a3 et du filtre f non linéaire (par exemple celui déjà mentionné), puis d'un filtre linéaire (agissant dans le domaine fréquentiel) fl. L'ensemble est bouclé.Les intégrateurs a1 et a2 sont com -mandés par les signaux cl et c2 : c=l =intégration, c=O = prise en compte de la condition initiale I. La commande H2 du VCA permet de régler la fréquence grâce au 2e VCA a4. L'amortisse -ment du système est obtenu dans l'intégrateur par une résistant -ce r' (variable ou non, LDR, FET, etc.)shuntant le condensateur c d'intégration (fig.25) Un exemple de réalisation est donné dans le cas où l'on veut obtenir le son d'une corde frappée (piano). Dans ce cas, I1=O (élongation initiale nulle) tandis que I2=fonction de la vitesse en fin de course de la touche. Le circuit indiqué permet donc, grâce au comparateur a6 bloquant la dérivée E(t)-(grâce au dérivateur 0a5) du signal expression E(t) tant que celui-ci est faible (début de course), E(tmaX) est alors latché dans l'intégrateur å2, grace au monostable # Ensuite, le calcul donne le signal y(t). Cependant, jusqu'à présent, nous avons peu étudié les moyens de réaliser une variation du timbre du signal avec le temps. On peut, avec le système analogique déjà décrit, échantillon -ner les enveloppes de harmoniques avec une période d'échantillon -nage i qui est le temps que met l'oreille humaine pour ana -lyser le timbre. En ce qui concerne les systèmes numériques, les procédés utilisés jusqu'à présent utilisent le domaine fréquentiel. Une table de sinusoïde échantillonnée permet de reproduire les échan -tillons de toute les harmoniques avec la cadence d'échantillon -nage de Shanon, soit #o=30@@ par exemple. Puis, dans une autre mémoire, figurent les échantillons des enveloppes correspondantes avec une période d'échantillonnageZ z20ms par exemple. Comme les cadences ne sont pas identiques, on obtient un échantillonnage avec une période #o, o, par interpolation des échantillons précé- -dents lors de la synthèse.Ensuite, chaque échantillon de signal de sortie est calculé en multipliant I1 échantillon correspondant d'une harmonique par l'échantillon correspondant de l'enveloppe qui s'y rapporte, et ainsi de suite pour toutes les harmoniques. Ensuite, on fait la somme de ces produits. En fait, comme la pha -se des harmoniques réelles varie avec le temps, il s'ensuit un écart apparent de leur fréquence dont il faut aussi tenir compte à la synthèse. C'est pourquoi est pacée également en mémoire la variation relative de fréquence pour chaque harmonique, avec une période d'échantillonnage %. Ces fonctions sont traitées comme les enveloppes à la synthèse. Nous voyons qu'il faut, pour traiter N harmoniques, et pour chaque échantillon en sortie, 2N appels en mémoire, N multiplications et 2N additions, sans comp -ter I1 interpolation qui représente 2N soustraetions, 2N multipli -cations et 2N additions. Le débit de mémoire est de 2N/mbo+jS (on ne compte pas la table, fixée une fois pour toutes. Ces procédés ont donc l'inconvénient de nécessiter pour la synthèse un nombre de calculs rendant difficile le temps réel, et encore plus la polyphonie en temps partagé : on voit que le fait de travailler dans le domaine fréquentiel n'apporte pas satisfac -t ion. Certains auteurs utilisent un développement en série de Walsh ou autre. Mais il est évident que l'on aura toujours le mame nombre d'opérations à effectuer, même si elles sont plus simples. D'autre part, ces méthodes ne permettent pas de repro -duire un"timbre" dont les "harmoniques" sont multiples, et dont les diverses composantes fréquentielles sont séparées de plus de lui . La FIG.26 représente la transformée de Fourier d'un tel signal supposé infini. ITn des objets de la présente invention est donc de dévelop -per ici une méthode d'analyse et de synthèse plus simple et plus rapide et n'ayant pas ces inconvénients. ne réalisation sera donnée à titre d'exemple illustratif non limitatif. Un signal pseudo-périodique varie peu en fréquence et en timbre avec le temps; d'autre part, l'oreille est incapable d'a-, -nalyser ce dernier en moins que , hypothèses sur lesquelles s'appuient toutes les méthodes utilisées jusqu'à présent. Nous allons donc considérer le stockage de tronçons (chacun portant le n M) de signal caractéristiques du timbre et de la fréquence (y compris celle de toutes les harmoniques) de celui-ci aux instants correspondants tM séparés d'un temps # par exemple. L'intervalle de temps [tM, tM+1[ sera appelé séquence N M. Non limitativement, un tronçon n M stocké sera obtenu par moyen -nage avec une fonction pondératrice quelconque de tronçons intermédiaires situés autour de tM. Lors de la synthèse, les tronçons intermédiares d'une séquence noM sont obtenus par in -terpolation à chaque instant des tronçons stockés aux alentours de tM et tM+1 par une fonction interpolatrice quelconque. Non limitativement, ces tronçons pourront être des pseudopériodes. Les pseudo-périodes intermédiaires seront numérotées dans une séquence par Pe[o,l-1], L étant le nombre de pseudopériodes d'une séquence. On peut s'arranger pour prendre L entier, de telle manière qu'une séquence dure environ # . I1 semble intéressant de prendre, mais ce n'est pas limitatif, L=Lo = ent (#/T), pour T gz,, où "ent( )" design "partie entière de" et T = durée d'une pseudo-période. Comme cette dernière grandeur est peu variable avec le temps, on peut prendre Lo = ent (#/To) pour TO(Zet Lo = 1 pour To## avec To = période moyenne du signal = 1/#o (correspondant à la note demandée par exemple). D'autre part, toujours non limitativement, il semble inté -ressant de numériser chaque pseudo-période avec 2N échantillons de valeur V (où N=nombre d'harmoniques restituées) numérotés dans la pseudo-période par EpO, 2N-1] . De plus, la fréquence d'échantillonnage pourra ne pas être fixe mais égale à 2N où 9 = fréquence du signal calculée à chaque instant par interpola -tion sur l'inverse des durées des périodes voisines. Les 2N échantillons ne seront donc pas forcément uniformément répartis sur chaque période. La FIG.27 représente un signal d'environ 500Hz où Lo=10 et # =20ms, avec 2N=32. Enfin, la dernière harmonique restituée devant toujours être audible, il semble intéressant, non limitativement, de faire varier 2N suivant To, de telle manière que N0 audible # 15KHz. Une solution non limitative est 2N= 2-J+2 x pour J (n de l'octave) > 2 et 2N= 27 pour J ( 2. Enfin, non limitativement, en accompagnement de chaque tronçon stocké, il est intéressant de stocker aussi une informa- -tion donnant la fréquence du signal à ce moment. (le tronçon étant mémorisé dans le domaine temporel, on a aussi mémorisé les phases relatives et donc les écarts de fréquence relative des harmoniques implicitement). Non limitativement, on choisira &alpha; = 1-#/#o # 1-T/To comme information de fréquence, et&alpha;(M) To désignera 1- , où T(M) est la durée moyenne d'une période T(M) à tM, la fonction pondératrice étant là aussi à choisir. A la synthèse, et comme pour le reste, une interpolation donnera &alpha; à chaque instant. peu Notons que si les caractéristiques du signal varient vrai -ment/avec le temps, il n'est pas nécessaire de prendre =tt mais #=&gamma;#i avec &gamma;#1: le signal obtenu par une interpolation sur des informations plus séparées dans le temps sera peu différent du signal original. Le nombre de périodes d'une séquence sera donc: L=&gamma;Lo. De même, dans le cas de signaux ayant des"harmoni -ques"à composantes multiples et séparées de## > 1/#i, il faut prendre davantage de périodes-mères, afin d'obtenir des séquen -ces de l'ordre de ##1/##.En résumé, on fixera non limitative -ment L (donc &gamma;) de telle façon que ###V(E,O,M)+(V,E,O,M+1)- -2V(E,ent(L/2),M) # q (où V(E,P,M) représente la valeur de l'é- -chantillon E de la période P de la séquence M du signal origi -nal). En d'autres termes, de manière à ce que terreur moyenne sur la période la moins bien reproduitesoit inférieure au niveau de quantification q.&gamma; ou toute autre information sur L sera bien entendu non limitativement stocké pour chaque séquence. Enfin, si les caractéristiques du signal sont périodiques pendant un moment, il est inutile de les stocker répétitivement. Par exem -ple, il peut arriver que l'on doive répéter un grand nombre de fois les mêmes séquences consécutives.On donne alors pour chaque tronçon (par ex. ss ) une information de branchement/indi- -quant de combien de séquences on doit revenir en arrière.Notons quep =0 signifie de poursuivre normalement. En fait, on peut aller encore plus loin et donner des instruc Notons 8 , afin de constituer un véritable programme qui, du fait du temps réel, peut ètre interactif avec l'utilisateur. Par exemple, si l'utilisateur appuie sur la touche,(en supposant que l'on ait un clavier) lorsque l'attaque est passée les caractéristiques du timbre sont généralement périodiques aussi longtemps qu'il maintien la pression @ on revient donc en arrière de séquences chaque fois durant ce temps,et l'on utilise donc que sectio0/mémoire. Quand il lache la touche on a alors l'extinction et l'on continue plus avant le programme .(Figure28) Ceci permet en outre dô reproduire certains timbres particuliers tels les"gongs". En effet de tels instruments ont, plusieurs"modes propres", donc plusieurs harmoniques multiples,mais en plus,ces modes varient avec le temps.Donc pour les reproduire il faudraIt avoir des séquences trés petites et se suivant d'où une consoipation importante de mémoire. C'est pourquoi il est préférable de considérer une périodisation du phénomène, don@ revenir en arrière, de ss1, refaire lesssiséquences, puis une où plusieurs suivantes, revenir en arrière degn et ainsi ensuite (FIG.29 ) - Notons que ces-proçédés de"programmation de timbre" (exposés de la ligne 5 page 23 à la ligne 29 page24) peuvent aussi etre utilisés avec un autre système d'analyse et de syn -thèse, par exemple celui exposé à la page 2i .En particulier, le système d'économisation de débit ( ligne26 pageS3 ) peut etre utilisé pour la transmission de la parolgaprès analyse: si les paramètres de celle-ci ne varient pas trop vite, il est inutile de les transmettre toutes lesZ = Z secondeipar exemple, mais on peut faire varier ce temps , l'adapter aux variations de para -mètres en indiquant la durée des séquences et en complétant celles manquantes par interp@lation, à peu de choses près commence. Cependant, le stockage du signal d'un instrument à une fréquence donnée ne peut nous permettre sa restitution sur toutes les au -tres. C'est pourquoi on mettra en mémoire des signaux moyens représentant des bandes de fréquence données et caractéristiques. A la synthèse, on obtiendra n'importe quelle note par interpola -tion des signaux stockés. Ainsi donc, en résumé et non limitativement, nous avons en mémoire après l'analyse et pour chaque bande de fréquence (par exemple différant suivant J) des séquences se suivant dont cha -cune (No M) comprend (pour chaque instrument n W5: ≈2N échantillons d'une période-mère V(E, O, M) 1 indication de branchement 1 instion programme 1 indication durée 1 indication fréquence. Nous allons maintenant donner une réalisation pratique d'un synthétiseur simplifié fonctionnant en temps partagé sur p=8 notes suivant le procédé décrit ci-dessus en tant qu'exem -ple non limitatif. Les bandes de fréquence sont les octaves de la gamme, et l'interplation entre les diverses bandes se fait par une fonc o --tion en escalier (cf. ligne page25), En d'autres termes, suivant l'octave n J à laquelle se rapporte la note, on fait directement appel ausignal correspondant en mémoire. D'autre part, l'interpolation entre les échantillons se fait par une fonction affine .Ainsi, si l'on note par Vj les valeurs obte -nues après synthèse pour la note faite par le synthétiseur fic -tif n @, on a Vi (E,P,M, 1, J, K) = ((V (E, O, M+i, O, J, K)-V(E, O, J, K))x (P+1)/L + V(E, O, M, O, J, K), puisque les valeurs pour lesquel -les V=O et I=O sont directement en mémoire. Rappelons que ces valeurs ont été obtenues par moyennage sur des périodes voisi -nes à l'analyse. Le temps partagé s'effectue si les p ( =8 ici) synthéti- -seurs fictifs n j s'occupant chacun d'une note dont les carac -térBBtiques Ej, T1, Ij, Jj sont fournies par exemple par le compresseur d'information clavier. Le système va donc, pour calculer un échantillon de sortie, s'occuper successivement du synthé N O (j=o), calculer l'échantillon correspondant VO, puis du N 1 (j=i), calculer V1, etc. jusqu'à Vp, puis faire la somme D'autre part, on peut, pour obtenir E, M et P, uti -liser une horloge incrémentant une série de compteurs.L'hor -loge peut autre fixe (sur une fréquence 2N#opar exemple) et alors en fonction des données de E , P , et M des compteurs, il faut recalculer les vrais E, J, et M grâce aux données&alpha;(M). La réalisation proposée fonctionnant en temps partagé sur p=8 syn -thétiseurs, il semble difficile de faire ceci. C'est pourquoi on choisit une horloge variable en fréquence hj pour chacun. Chaque synthétiseur n j est relié au compresseur-clavier donnant Ej*, Tj, Ij, Jj, Kj. Ils comportent une unité d'informa -tion disposant d'horloges, de registres ou compteurs donnant Ej*, Pj, Mj, Fj = &alpha;(M) (FIG.30) et d'une unité de traitement (FIG. 31) fonctionnant en temps partagé sur les p=8 synthétiseurs d'autre part. L'unité d'information dispose d'une horloge hj par synthétisuerdont la fréquence est commandée à la fois par (Ij, Ji) & F. . C'est une horloge faite d'un VCO aj commandée par (#j, #j) (FIG.32). Chaque horlogehj de fréquence 2N #j incrémen -te le compteur linéaire kEj à 7 bits et remis à Q à 2N =2 (non limitativement) pour J#2 et à 2N= 7 pour J#2, ceci est obtenu grâce au circuit uj (FIG.33) commandé par j et la sortie de kEj, et donnant le front d'effacement sur l'entrée C du compteur.Le circuit est constitué essentiellement d'un multi -plexeur #1j 8 vers 1, dut les bits d'entrée n O et 1 sont en l'air, et le bit n 2 est relié au bit 6 du compteur, le 3 au bit 5 et ainsi de suite, 8 à 0. Sur l'entrée adresse on trouve un triple multipleur #2j 2 vers 1 qui reçoit d'une part J (bitsl) et d'autre part 2 (bits 0). L'entrée-adresse de ce multiplexeur est donnée par un compara -teur constitué d'une porte ou Oj dont l'entrée est reliée sur les deux derniers bits de J et qui détecte ainsi si J# 2. La sortie du multiplexeur wlj est reliée à l'entrée effacement C du compteur kEj. De plus, C est relié à l'entrée-incrémentation d'un compteur 3 états et 10 bits kPj donnant Ej. Mj se trouve dans le registre 3 états et 10 bits avec entrée-sortie commune lMj . Fj se trouve dans le registre lFj à 10 bits. Les signaux Ej,.Ij, Jj, Kj, Tj, et Ej* sont envoyés dans des buffets à 3 états OEj, OJj, OKj, OTj, OEj*. Les sorties de tous ces en -sembles sont reliées par groupes ((J0, J1, ... J7 ) sur un bus J à trois bits etc.) sur l es bus respectifs.Ainsi on a un bus pour chaque signal I, J, K, T, M, P, E, F,E*. Les commandes d'état G ( G=O # état " en l'air " ) des compteurs registre ainsi que écriture W (# # latchage) ainsi qued efface -ment (C## effacement ) sont reliées comme suit à des de multi -plexeurs i vers 8 : le démultiplexeur W1 d'entrée G1 pointe les entrées G des registres lMj, lPj ét des buffers oIj, oJj, oKj, oTj, oE*1 et oEj; le démultiplexeur W2 d'entrée wl pointe l'entrée W des registres lMj; le démultiplexeur w# dentrée C1 pointe l'entrée effecement des compteurs kPj; le démultiplexeur w4 d'entrée pointe l'entrée écriture des registres lFj; l'entrée adresse de tous ces multiplexeurs est reliée à la sortie du compteur binaire 3 bits ( 23=p)kF d'entrée incrémentation S Les bus sont reliés à l'unité de traitement qui latche les ren -seignements E, r, M, I, J, K, T et E dans des registres 1E, 1F lM,lI,lJ,lK,lT,lE*, et effectue le traitement. La partie calcul suivante s'effectue pour chaque synthétiseur n j. On commence par récupérer les renseignements programme #(M) disposés dans une mémoire m. Si l'ordre n'est pas donné ( donc si T=1 ), on doit retirer ss à M. Pour simplifier, let c'est B qui est en fait dans n sur les 6 premiers bits. On doit alors obtenir Lo en fonction de To, done de (I, J) qui est non limitativement disposé dans une mém oire mL adressée par I et J.Lo est écrit sur 7 bits. On a obtenu, en même temps que ss , &gamma; qui est éga- -lement mis sous la forme&gamma; =2# , mais # peut être négatif ou positif. est sur les 5 derniers bits et le signe sur le Te bit Pour recalculer L= Lo= La 2r , on utilise un décaleur X . I1 est constitué de démultiplexeurs sur lesquels on applique l'a -dresse r et dont les entrées reçoivent les bits de Lo. Quand le signe est négatif, on réalise le décalage en sens inverse. On doit alors comparer P et L: si P = L , on ajoute 1 à M et on met P à O. Mais alors on est sur une nouvelle séquence, et il faut donc recalculer L correspondant: on rappelle donc (nouveau M) et on recalcule t. On appelle alors V, (E, O, M, O, J, K ) et V(E, O, M +1, O, J, K) dans la mémoirernVadressée par E, M ou M+1,J et K et l'on calcule V(E, P, M, I, J, K) en n'oubliant pas la multiplication par E*signal d'expression. L'organigramme de la FIG montre le fonctionnement du dispositif. Le programme complet est effectué pratiquement comme suit, non limitativement 1/ on appels I, J, K, T, Et, E, P, M dans leurs registres respec -tifs lI,lJ,lK,lT,lE*,lE,lP,lMles instructions d'état sont: (G1=1, G3=0, W2, W3) 2/ On appelle n(M) donc B et # et Lo(I, J) (# MEL, ME#) où ME est la commande mémoire. 3/ On calcule L=2 Lo et on compose L et P: le décaleur x2 effectue Lo2 = L ; le comparateur y8 comp e L et P on calcule M actuel : M act = M - 2BxT + 1 + comp les portes "et" 02 effectuent B x T le décaleur xl effectue 2BxT le soustracteur s2 effectue M-(2BxT) l'additionneur sl effectue(M-2BXT) + (comp) = M actuel qui sera appelé M. 4/ On mémorise M actuel dans les registres 1M et lMj et on efface P dans lPj et 1P si L=P . (G3=1, G1=0,+ W3, W1, #4) 5/ On appelle V(E, O, M, O, J, K) et F(M) et M (M) et on calcule L act (G5 = 0,# MEV, MEF, MEn) Lact se calcule comme L. 6/ On mémorise V(E,O,M,O,J,K) dans ie registre 1V et F(M) dans le registre lFj et on positionne M+1 en adresse de mV grace à l'additionneur s4. (GS=1, # W4,WO) 7/ On fait disparattre V(E,O,M,O,J,K) à la sortie de mV. (MEV! 8/ On appelle V(E,O,M+1,O,J,K) de mV (MEV #) j-i 9/ On calcule V.(E,P,M) + # Vr;Vr est déjà positionné dans 11 et 12 Le soustracteur s5 effectue V(E,M+1)-V(E,M); L'additionneur s6 effectue P+1; Le multiplieur pl effectue V(E,M+1)-V(E,M))x(P+1); Le diviseur z effectue (V(E,M+1)-V(E,M))x(P+1):L; Le multiplieur p2 effectue (V(E,M+1)-Vj-i(E,M)x(P+1):LxE@; L'additionneur s8. effectue Vi (E,P,M)+ 10/ On mémorise # Vr dans 11 (W5#). 11/ On mémorise # Vr dans 12 (W6 #). 12/ On incrémente kU et on latche Vr=V sij=O le comparateur yo compare j et o. (S #) Les instructions du système (Gi,G3,G4,MEV,ME#,MEF,MEL,W0,W1,W2,W3,W4,W5,W6,S,GS) sont écrites sur 16 bits chacune dans une mémoire m de 16 mots dont la sortie est reliée à un registre tampon 1. L'adressage de la mémoire est effectué par un compteur koincrémenté et remis à O par une horloge programmée ho.La commande W de mémorisation du registre loet de lecture ME de m est également faite par h. ITne solution pour économiser du temps est de mettre le L précédent en registre à chaque séquence afin de ne pas avoir à attendre le premier appel en mémoire n (M) et le ler calcul de L pour commencer. Les caractéristiques du système se calculent comme suit: soit3 la fréquence maximum à reproduire (par exemple 15KH2). La fréquence d'échantillonage 1/#o(=2n# environ) sera donc # 2 #3. Appelons #2=temps total des p cycles de calcul (cycle complet pour obtenir un échantillon à convertir; nous remarquons que le signal numériqueestl'échantillonnage avec la fréquence 2N##1/#o de l'échantillonnage avec la fréquence 1/% du signal qui nous intéresse. Pour éviter une fréquence de bat -tement On remarque également que les échantillons V arrivent à fréquence -ce constante 1/22, ce qui permet éventuellement d'adapter d' autres systèmes numériques à la suite (écho, phazing, etc.) avant la conversion digitale analogique réalisée por d Nous allons maintenant étudier un dispositif très simplifié permettant d'analyser le timbre des sons et de mettre leurs caractéristiques en mémoire suivant le procédé étudié plus haut. Il s'agit là encore d'un exemple d'illustration non limitatif d'analyseur basé sur cette méthode. Ce dispositif fonctionnera non limitativement en temps réel afin d'éviter tout problème de stockage numérique de masse, quoique cela puisse se faire faci -lement maintenant gracie aux mémoires CMOS capacitives. D'autre part, pour simplifier le circuit, on aura recours aux techniques analogiques, ce qui n'est pas limitatif non plus. L'analyse consists ra donc ici pour chaque séquence à placer en mémoire mV les périodes-mères échantillonnées sur 2N échantillons, ainsi que l'écart en fréquence en mémoire mF.Naturellement, l'utilisa -teur pourra toujours disposer des valeurs différentes pour cetk fonction, et placer aussi des constructions-programmes nouvelles afin de modifier le timbre. L'analyseur doit connattre la fré -quence fondamentale de la note correspondant au son à analyser: ceci est fait par l'opérateur indiquant sur les bus I et J res -pectivement le n de la note dans la gamme et le n de l'octave par des moyens bien connus de la technique. I1 envoie ensuite le signal à analyser (qui peut parvenir d'un instrument via un mi -crophoneou d'un synthétiseur accessoire, etc.) à l'entrée X (FIG.3). Le passe-bas al supprime les fréquences au-delà de la fréquence d'échantillonnage divisée par 2 N#o D , puis, l'ampli- -ficateur niveleur a2 réduit la dynamique, et enfin le passe-bas a3 commandé par I et J supprime les fréquences au-delà de la fondamentaleso. Ensuite, le trigger de Schmitt t met le signal en forme de rectangulaire à front raide, et enfin le monostable nO donne une impulsion à chaque front montant.Ainsi, nous a -vons une impulsion à chaque front montant. Ainsi, nous avons une impulsion chaque fois que débute une nouvelle période. A 1' analyse, on commence par laisser les trois premières périodes durant lesquelles le signal n'est pas net grâce au compteur k et au comparateur y#. Ensuite, lorsque la 4e pé riode arrive, on la considère comme période n 0 , et on mesure sa durée exacte T grâce à une horloge fixe ht de fréquence 21 #o non limitative -ment. (#o étant lafréquence de la note (I, J)), dont on compte le nombre d'impulsions durant T avec le compteur binaire 10 bits kà à O au début, mis en marche au début de la période et arrSté à la fin.On a ainsi à la sortie de ce compteur 210#o T=210T/To= Q. I1 suffit alors de décaler cette quantité de 10 bits à gau -che (grâce au décaleur x), et de la soustraire de 1(avec le sous -tracteurS9), et on a&alpha; = = (1-T/To) qui est mémorisé dans le regis- 1 et envoyé dans l'horloge h commandée à la fois paro( et (I,J) et de fréquence 2N#o (1+&alpha; )x 23, soit environ 2N x 23, puisque t 1. La période suivante du signal sera alors échantillonnée à cette fréquence , grâce au compteur k à O au début, et incré -menté par h dès le début de la période. Sa sortie indique donc E sur les derniers bits et Q sur les trois premiers, qui sert à la temporisation de l'échantillonnage. M est inclus dans le comp -teur kM à O a ce moment. D'autre part; P est indiqué par le compteur kS à O au début, et incrément à chaque nouvelle périe- -de. Ainsi, on a ( E, P, M, J, K) pour adresser la mémoire mV. La conversion analogique numérique du signal sur # est effectuée par le "rample and hold" a suivi du convertisseur digital analo -gique dépendant ce temps, &alpha; est mis en mémoire dans mF à l'adre; -se (M, J, K). Quand cette opération se termine, kS et kM sont incrémentés, Xp est remis à O et arrêté, et on arrête aussi 1' échantillonnage. Les périodes continuent avec chaque fois incré -mentation de k# jusqu'à ce que = L-1 ( L ayant été fourni par mL avec (I, J)). Alors, kpt est remis à O, on le fait démarrer et le cycle reprend.Quand le signal devient très faible, tous les compteurs sont remis à O et le système dans son état ini -tial, et l'analyse s'arrête. Nous allons maintenant étudier les circuits de la FIG.3+ plus en détail. Tout d'abord, le circuit de la FIG.3 est en fait un peu différent, afin de per -mettre l'écriture dans les mémoires: en supposant celles-ci à sorties 3 états, on dispose sur l'entrée-sortie la sortie d'un buffer trois états dont l'entrée recevra les données à écrire dans la mémoire (o pour mV).D'autres part, l'entrée-adresse est alimentée par la sortie d'un multiplexeur multiple Wlo 2 ver permettant d'adresser la mémoire soit par le circuit synthè- -se (comme précédemment), soit par le circuit analyse. Enfin, la commande ME des mémoires est elle aussi alimentée soit par le circuit synthèse, soit par le circuit analyse, grâce à un multiplexeur 2 vers 1 w20. Les points à relier au circuit synthè -se comme précédemment sont indicés par 1. Ainsi, MEV1 par exemple est à relier à la commande MEV du circuit synthèse. Les commandes d'état des buffers , l'adressage des multiplexeurs et les commandes lecture-écriture des mémoires est reliée à la commande analyse synthèse 0: 0 = 1 = analyse 0 = O = synthèse. O est positionné par l'opérateur. Dans ce qui suit, nous suppo -serons O = 1, donc les mémoires mF et mV en position écriture. Au départ, tous les bistables et compteurs sont à zéro. Quand le compteur ki a reçu trois impulsions, le comparateur y#met le bistable b2 à 1. Alors, G5+ # et le compteur k est mis en route. A la sortie de l'additionneur sio,on a P+1. Dès que P+1 = Lo, le comparateur y2 a sa sortie et donc G4#, donc est mis en route, et le monostable n2 donne uneimpulsion Go qui met kM à O.Le compteur ke compte les impulsions; ensui -te, à l'impulsion suivante de no, lorsque P=Lo, la sortie de y2# et donc #4.# , donc W # et le registre 1 mémorise la don -née Q , donc h reçoit , Mais en même temps, le monostable n envoie une impulsion sur le front descendant de laquelle le monostable n4 envoie une impulsion sur G2 et donc kSest remis à O après la mémorisation. De même, quand W#, le bistable b; est mis à 1, et donc # G3 i ce qui indique le début de l'échantillon- -nage, et le compteur k est mis en route. Puisque G3 = 1, Q se trouve à l'entrée de y3, y4, y5 et E à l'entrée de y6. E, P, M, j et K sont en adresse de mV.Quand e 1, la sortie du comparateur y5# et le monostable n5 porte la commande H1 du "sample and hold" a5 à 1: le signal est alors mis dans la mémoire analogique durant ce temps ("sample") puis maintenu quand Hi ("hoîd"); alors, le convertisseur digital analogique d4 commence la conversion dès l'impulsion fournie à cet instant par n6 sur la commande H2. Quand Q-*4, la sortie de y3 #, donc le bistable b est mis 3 1 et MEV# # , donc l'échantillon présent à l'entrée de mV est mémorisé.Quand Q 7, le bistable bl est mis à O et MEV #. Ensuite, Q revient à 0, E est incrémenté, et un nouveau cycle échantillon commence. Quand E = 3, le comparateur y6 met sa sortie à I, et donc l'opération mémorisation de &alpha; dans mF peut avoir lieu quand Q = 4. Enfin, quand E = N, la sortie du comparateur yl#1, et nl envoie une impulsion sur #1 qui met kW et b3 à 0: donc, l'échantillonnage s'arrête et on incrémente k, et un nouveau cycle commence. Quand le signal devient trop faible, l'ampli-niveleur a2 envoie une impulsion sur G qui remet tous les compteurs et bistables à 0. Bien entendu cette analyse peut aussi bien être effectuée par un autre système qui peut être numérique. Le travail à effectuer consisterait alors à: - échantillonner le signal à une fréquence fixe et le mettre en mémoi re. - déterminer sa période par exemple grâce à une aatocorrélation suivie d'une transformée de Fourier discrète, ce qui donne la densité de puissance spectrale de laquelle on déduit la fréquence fondamentale. - passer le signal dans un filtre passe-bas numérique qui donne ainsi la fréquence fondamentale et la deuxième harmonique seulement. - déduire de ce dernier signal la durée exacte de sa période en chaque point et délimiter ainsi chaque période dans le temps. - à partir de ces indications, reproduire l'échantillonnage du signal à la fréquence 2N par interpolation des premiers échantillons. - en utilisant le critère de la page 23 ligne 35 déterminer les sé quences, et stocker les coefficients ss et &gamma;. - calculer les échantillons des périodes mères par interpolåtion des échantillons des séquences correspondantes. - calculer les coefficients &alpha;. - disposer les résultats en noire. Tous allons maintenant décrire brièvement un circuit de mémorisation de données ####### concernant le suites des sons-produits. I1 s'agit en erfet, si 1 synthétiseur travaille en outre avec la ####### présente commande automatique, (l'utilisateur pouvant simul tanément se servir du clavier), de fournir à chaque instant les ordres nécessaires pour qu'il donne les notes de la partition que l'on aura mémorisée dans la mémoire. Dans celle#-ci, sont disposées les caractéristiques de chaque sot ou accord sur un rot de 20 bits on limitativement. On a pour chaque instruction: - le n de la note I (4bits). - le n de l'octave J (3 bits). - la durée de la note D indiquant sur S bits: { le symbole (o, #, #, #, #, #, #) sur 3 bits, Si le note est pointée, sur un bit. - le nom de l'accord à effectuer A* sur 4 bits. - le nom de l'instrument K sur 1 bit (ou timbre). - l'expression sur 4 bits Les accords et leur étiquette ont été programmés au préalable par l'utilisateur, grâce au circuit qui sera décrit ensuIte. La mémoire est chargée avec des moyens bien connus de la technique. On peut éventuellement le faire à partir d'une cassette, ou d'un cla vier d'un octave pour I, et d'un petit clavier comme indiqué en figure 37 pour les autres données. Le circuit le la figure 35 permet de commander le synthétiseur décrit dans les pages précédentes: les @onnées I,J,K,A,E sont présentes sur les 16 premiers bits de la sortie du registre 1004 pendant la durée indiquée de la note, le temps étant réglé sur l'horloge h001 de fréquence = temps (durés d'une noire) x 29. Les données I,J,K sont fournies par exemple en adresse sur un démultiplexeur Woot envoyant un 1 sur l'entrée sélectionnée TI du synthétiseur-(i de I,J,K). La donnée A est envoyée à un circuit que nous étudierons par la suite. La fréquence de l'horloge et d'abord divisée par 3 avec le diviseur k00 si D4 = 1 (note pointée) ou par 2 avec le diviseur k002 si D4 = O. Ensuite, ce signal incrémente le compteur binaire ? bits dont la sortie est reliée aux 7 premiers bits du multi@lexeur 8 # 1 w001 adres- sé par les 3 premiers bits de D,D2D1D0. La sortie incrémente le compteur binaire k004 dont les 12 dreniers bits adressent mP et le troisième déclenche le monostable nOOL quand il passe # O. La sortie de n008 commande la mémoire par MEP, et déclenche ensuite le monostable noo@ qui permet de latcher la sortie de la mémoire dans le registre loo. Il y a également des instructions programme: * I = 15 # pause (de durée correspondante à D): aucune note n'est envoyée. * I = 14 # retour à C.(obtenu grâce au comparateur y003 qui envoie un 1 sur l'entrée effacement du compteur k004 quand I = 15). e signal (I,tT) est ensuite converti par un encodeur e000 en n de note t, indiqué en binaire qui est lu1-@ême appliqué à un a ditionneur lui jutant la clé C. C est fourni par multiplexage d'un petit clavier. quand -C est absent ou vaut SCL 2, alors, il n'y a pas chanrement. Quand est en dessous, on retrancht, et au-dessus, on ajoute. Ceci permet e décaler manuellement la mélodie au cours de son exécution. enfin, le démultiplexeur woo2 adressé par ce dernier signal i+C et K avec pour entrée 1 pour I # 12 (obtenu grâce au comparateur y002 ) permet de commander le compresseur en lieu et place d'un clavier, qui peut d'ailleurs toujours être branché en même tenps. n remarque que dans ce système de mémorisation le nombre de bits mémo# re ne dépend pas de la durée d la note. D'autre part le type d'instruc tion utilisé facilite la programmation. Nous allons maintenant décrire un dispositif de programmation des accords et registres. Grâce à ce système, lorsqu'une note n i@ (où ir égale 12 J. + I. ) est demandée, (par le clavier par exemple), alors une suite de notes ayant une répartition donnée par rapport à in est requise automatiquement et en même temps, l'expression de chacune des notes n k cette suite valant celle de i@ (donc Ei;;'* ) multipliée par un certain facteur A l'instrument étant Kk, et la note k de la suite a pour coordonnées I(ir+ik),J(ir+ik), où I et J sont les coordonnées d'une note séparée de ik demi-tons de la note de référence i Le dispositif étant non limitativement rendu compatible avec le comtresseur déjà décrit ligne 39 page 8 à ligne li page 14 , la suite contient p notes (ici 23), donc k # [o,p-1].D'autre part, chacune 'elles est mise en mémoire sous forme d'une instruction dont l'adresse croît avec ik et contenant: - le nombre ik de demi-tons d'écart de la note k de la suite par rap port a celle demandée prImitivement (Iir,Jir) sur 7 bits, - l'instrument Kk qui doit faire cette note sur 1 bit, - le facteur d'expression #k sous la forme #k = 2## sur 3 bits. D'autre part, comme plusieurs accords ou suites sont possibles, l'adres se '!; de l'instruction est repérée par les 5 premiers bits de l'adresse et le n dc la suite A par les 4 derniers. La mémoire mA contenant ces Instructions est programmée par exemple par l'utilisateur avec des moyens bien connus de la technique. Ce dispositif est compatible avec le compresseur montré à la figure 9 Dans ce dernier circuit, dès qu'une note est demandée, P passe à 1, et U donne l'expression. Le problème consiste donc z en envoyer un niveau haut sur P dès que le compresseur pointe une note (I,J) de la suite (donc telle que 12 J + I = ik + ir et K = Kk) et douce chaque fois l'expression calculée $2#ss x Eir'*sur U. On va donc intercaler le dispositif présent de telle manière que la liaison sortant de la porte 01 (figure 9) étant coupée, la partie supérieure donne l'ancien P noté P et l'inférieure reçoit le nouveau P noté P. De même, E* (supposé par exemple sous forme numérique) est récupéré à la sortie de f et le nouveau U noté # est envoyé à la place de l'ancien sur le bus U. Dès qu'une note demandée primitivement est détectée par le compresseur l'ancien P envoie une impulsion dès que H # et on obtient en même tamps le nom de la note détectée (Iir'; Jir' et Kir') à la sortie des compteurs k1 ,k2 et k3. On met alors k101 à 0, donc 1'adresse que reçoit la mémoire mA contenant les suites vaut (A*, k) avec k = O: on pointe la première instruction de la suite n0 A*. On tranforme alors (Ii@', Ji@') en une information i n grâce au convertisseur u 00 effectuant ir=12 J' + Iir'.Ensuite, in est latché (c'est à dire mémorisé) dans le registre 7 bits 1104; alors, quand H S , après un délai obtenu grâce à m102 , on mémorise in et K'in dans le registre 8 bits 1104' puis on sort de la mémoire mA l'instruction concernant la première note après in de l'accord n A, c'est à dire la note correspondant à l'instruction k=O, #### Cette donnée est ensuite mémorisée dans le registre tampon 1101. (ces 2 dernières opérations sont obtenues grâce aux mono stables n103 et m104 donnant MEA # puis wl101 ## puis MEA #). L'additionneur s100 effec- tue alors la somme ik + in , le comparateur y100 compare alors la donnée (i, Ki') de la note alors pointée par lc compresseur (ici i=i ) et la donnée (ir + ik , Kk) correspondant à la prochaine note de la suite à jouer (ici k=0).Si on a identité, on envoie une impulsion en sortis # avec la porte "et" o101 et le monostable n106, D'autre part, le lis table b100 est dans ce cas mis à 1. Quand b100 est à 1, le compteur binaire 3 bits k101 adressant mA est incréménté de 1 quand H #, puis b est remis à O par le monostable On voit donc bien le fonctionnement: dès qu'une note demandée par le clavier (par exemple) est demandée, on compare la première note de la suite avec celles que le compresseur pointe ensuite. Dès qu'il y a identité, ##t , et l'on compare la deuxième note de la suite avec celles que le compresseur pointe et ainsi ed suite. L'expression H est obtenue de la façon suivante: l'ancien E* est mémo risé dans le registre 10 bits 1 en même temps que i ' caque note do5 de référence demandée, donc quand on a une impulsion sur P. Cette @@@ée est ensuite multipliée par 2## (où ## est mémorisé sur les 3 derniers bits de 1101 en outre de ik et Kk) grâce au décaleur x100; on a -iors 1- nouveau E* q"i est envoyé durant le temps où H=1 sur le nouveau U* grâce aux portes o103. On remarque que rien n'empêche d'utiliser un signal E* @umérique dès 1 départ: il suffit que f soit muni d'un convertisseur transformant E* a alogique (comme on l'a vu) en signal E* numérique de façon sé quentielle. Puis ensuite, pour les circuits n j du compresseur (figure 10) l'interrupteur analogique ij suivi du filtre passe-bas est remplaçé par un registre dont l'entrée écriture ' est commandée par D. Four conclure, nous allons donner une brève description de l'utilisation de l'ensemble. Le musicien peut tout d'abord rechercher le son qui lui convient avec le synthétiseur harmonique (ce qui est relativement facile et adapté car les comnandes de ce synthétiseur sont dans le domaine fréquentiel: la notion d'harmonique n'étant pas étrangère au compositeur) en temps réel, c'est à dire que il peut tâtonner en effectuant des modifications immédiatement effectuées. De même, il peut utiliser le synthétiseur non linéaire, ou encore un instrument extérieur, voire même monotonique. Ensuite, il met l'analyseur en route, et le son est in médiatement emmagasiné dans le synthétiseur harmonique qui est ainsi prêt à le restituer pour toute-note. Enfin, il peut jouer sa mélodie de façon polyphonique, et trouver les accords ou registres qui lui conviennent. Deux-ci sont alors emmagasinés dans le dispositif prévu cet effet. enfin, il peut programmer la mélodie dans la mémoire mP, avec les accords lui convenant, suivant une- clé donnée. enfin, il peut restituer automatiquement lensemble d la composition en faisant varier manuellement le temps et la clé. R E V E N D I C A T I O N S sonores 1 - Ensemble électronique caractérisé par le fait qu'il dispose: - d'un synthétiseur de sons numérique polyphonique relié à m claviers et et capable de reproduire la plupart des sons instrumentaux en tenant évidemment compte de la variation de timbre avec le temps en utili sant un procédé original, d'un synthétiseur harmonique polyphonique dont les harmoniques produites peuvent être réglées, - d'un synthétiseur non linéaire, - d'un analyseur de timbre programmant le synthétiseur numérique selon le procédé utilisé afin qu'il puisse reproduire les sons voulus, - d'un dispositif de programmation de suite mélodique permettant à l'instrument de reproduire une partition comportant plusieurs ins truments, accords et registres, - de dispositifs de compression de l'information provenant des claviers et/ou d'une autre source, - enfin d'un dispositif de programmation des accords et registres per mettant d'assurer facilement l'exécution automatique de ceux-ci. 2 - synthétiseur numérique selon la revendication 1 caractérisé par l'utilisation d'un stockage d'une représentation temporelle réduite du signal à synthétiser. 3 - synthétiseur numérique selon la revendication a caractérisé par le fait que la synthèse utilise des séquences calculées par inter position de tronçons stockés dans le domaine temporel. 4 - synthétiseur numérique selon la revendication 1 caractérisé par le fait que le débit de données caractéristiques du son (timbre, etc...) varie suivant le mode de variation de celles-ci 5 - synthétiseur numérique suivant la revendication 1 caractéri sé par le fait que l'évolution du son d'une note peut être dirigée par des instructions programme dirigeant son calcul on tompo réel. 6. - synthétiseur numérique suivant la revendication 3. caracté- risé par le fait que le programme est interactif avec l'utilisateur. 3 - analyseur de son selon la revendication 1 caractérisé par le fait qu'il permet d'analyser le son afin d'en stocker une représen- tation temporelle réduite. 8 - synthétiseur harmonique selon la revendication 1 caract@risé par le fait qu'il produit un mélange de ;l sinucoîdes dont l'amplitude peut être réglée, dont la fréquence est multiple entier de la fonda- mentale p , chacune des sinusoidos étant obtenue par combinaison é- aire de N signaux périodiques de fréquence multiple de 9 - synthétiseur harmonique selon la revendication 8 caractértsé par le fait que les N signaux périodiques des combinaisons sont des fonctions paires du temps dont certaines sont des créneaux de rapport cyclique donné pour chacun. 40 - synthétiseur harmonique selon la revendication 8 caractérisé par le fait que les N fonctions périodiques de la combinaison linéaire sont des fonctions impaires tout ou rien périodiques et symétriques du temps (signaux carrés impairs). 44 - Dispositif de compression de l'information selon la revendi cation 1 caractérisé par le fait qu'il dispose des moyens de comprimer l'information venant de m claviers de n touches en une information décrivant les p # mun notes finalenent demandées simultanément, en tenant compte que p dépasse rarement , ce qui permet de limiter le nombre de synthétiseurs monophoniques réels ou fictifs (en temps par ta & par exemple) devant jouer ces notes indépendamment; chaque syn thétiseur n j de 1 à p reçoit donc une instruction propre lui indi quant un ou plusieurs des éléments suivants: la note à Jouer; l'expres sion; si l'on est en phase d'extinction; l'i@strument à reproduire. 12 - - dispositif de compression de l'information selon la reven dication 11 caractérisé par le fait que la note est indiquée par son numéro dans l'octave Ij sur 4 bits et le numéro de l'octave Jj; l'ex- pression est indiquée l'exploration du clavier est séquentielle. 13 - - dispositif de compression de l'information selon la rat-endi- cation 11 caractéris- par le fait que l'exploration du clavier est statique (combinatoire) s 1+ - dispositif de proQram.mation de suite mélodique selon la revendication 1 caractérisé par le fait qu'il permet de mémoriser une ou plusicur par titions avec uno instruction Far note (ou accord ou pause) et ont l'importance ne dépend pas de la durée de ce dcrnires (ou derniers). 15- dispositif de programmation de suite mélodique selon la revendication 14 caractérisé par le fait que chaque instruction indique le type de l'accord à effectuer et/ou l'expression E et/ou l'indica tion d la durée de la note en notation musicale D renseignant si la note (ou pause ou accord) a une durée de ronde, de blanche, de noire, de croche, de double croche, de triple croche ou de quadruple croche;et /ou si elle est pointée. 16 - dispositif de programmation et de commande des accords et registres musicaux selon la revendicotion 1 caractérisé par le fait qu'il permet d'ex@cuter automatiquement une série de notes occupant des position précises par rapport à la note de référence qui peut btm @ quelconque et déclenche l'exécution simultanée des autres dès qu'elle est demandée et par le fait que ce circuit est compatible avec le dispositif de compression revendiqué en 11 et 12. 17 - synthétiseur non linéaire selon la revendication 1 caractéri- sé par le fait qu'il utilise un calculateur analogique dans lequel on introduit une fonction non linéaire