[0001] La présente invention est relative à un système de synthèse sonore permettant d'obtenir
en sortie une suite de signaux électriques qui après conversion numérique/analogique
peut être appliquée à un ou plusieurs transducteurs pour donner lieu à la production
d'un spectre audible.
[0002] Plus particulièrement, mais non exclusivement, l'invention conceme un système de
synthèse sonore du type indiqué ci-dessus, qui puisse être mis en oeuvre à l'aide
d'une carte enfichable afin de pouvoir être insérée dans un ordinateur personnel en
lui conférant une capacité très étendue et variée de production sonore.
[0003] Les unités les plus répandues actuellement pour la synthèse sonore sont désignées
par le vocable anglais de 'Wave Table" ou de "FM". L'unité 'Wave Table" désigne une
unité dans laquelle la synthèse sonore est effectuée à l'aide de groupes d'échantillons
sonores pré-enregistrés de façon rigide dans une mémoire pouvant se présenter sur
tout support d'enregistrement connus, interne ou externe à l'appareil.
[0004] Sous sa forme la plus simple, une unité "FM" utilise deux oscillations dont l'une
est une porteuse modulée en fréquence par l'autre oscillation. Ce principe permet
d'engendrer des oscillations plus complexes à partir d'un nombre limité d'oscillations.
Le signal obtenu dépend des rapports de fréquence et de l'amplitude des modulants.
Les harmoniques sont les bandes latérales de la modulation en fréquence. Ce sont des
produits ayant un rapport en fréquence équidistant et proportionnel au rapport entre
la fréquence du modulant et celle de la porteuse. L'amplitude du modulant détermine
le nombre de ces harmoniques. Les amplitudes des harmoniques produites ne peuvent
être déterminées librement et elles suivent une figure s'apparentant à une courbe
d'interférence.
[0005] Cela signifie que de telles unités 'Wave Table" et "FM" présentent l'inconvénient
d'offrir très peu de souplesse en ce qui conceme les modalités de composition du spectre
sonore final, les paramètres caractérisant les échantillons successifs (amplitude,
fréquence et phase, notamment) étant pour la plupart prédéfinis sans possibilité de
modifications.
[0006] En outre, ces unités de synthèse sonore actuelles travaillent avec un ordinateur,
souvent un ordinateur personnel, dont les interventions doivent être fréquentes. Etant
mobilisé pour cette tâche en permanence pendant la composition, le traitement et la
restitution audio, l'ordinateur ne peut pas se consacrer à des tâches de gestion,
par exemple au niveau de l'imagerie ou de l'acquisition de données autres que celles
vouées au traitement des données.
[0007] Enfin, ces unités connues sont peu conviviales et se prêtent donc mal à un usage
dans les installations multimédia qui se répandent à grande échelle parmi le grand
public.
[0008] L'invention a pour but de fournir un système de synthèse sonore dépourvu des inconvénients
des unités antérieures brièvement décrites ci-dessus.
[0009] L'invention a donc pour objet un système de synthèse d'une suite d'échantillons électroniques
destinés à la production d'un spectre sonore apparaissant sur une sortie, caractérisé
en ce qu'il comprend:
- des premiers moyens pour déterminer une succession de cycles de travail rythmés en
fonction d'une fréquence d'échantillonnage;
- au moins une source d'échantillons dits de niveau zéro représentant au moins un signal
sonore et apte à fournir au cours de chaque cycle de travail en cours x au moins un
échantillon de niveau zéro,
- des seconds moyens pour déterminer, pour chacun desdits échantillons de niveau zéro
à sélectionner au cours d'un cycle de travail suivant x+1, une première valeur propre
à cet échantillon d'un paramètre de fréquence,
- des troisièmes moyens pour déterminer, pour chacun desdits échantillons de niveau
zéro à traiter au cours d'un cycle de travail suivant x+1, au moins une seconde valeur,
également propre à cet échantillon, d'au moins un autre paramètre,
- au moins deux mémoires de paramètres pour, au cours du cycle de travail x en cours,
mémoriser respectivement lesdites première et seconde valeurs de paramètre, dans n
emplacements de mémoire respectifs, afin de pouvoir utiliser ces valeurs au cours
du cycle de travail suivant x+1,
- des quatrièmes moyens pour, pendant chaque cycle de travail en cours x déterminer,
en fonction de chacune des n valeurs de paramètre de fréquence mémorisées pendant
le cycle de travail précédent x-1, une valeur de désignation pour désigner parmi lesdits
échantillons de niveau zéro, le ou les échantillons de niveau zéro qui, au cours du
cycle de travail suivant x+1, vont contribuer à l'élaboration de n échantillons de
premier niveau respectifs,
- une mémoire de valeurs de désignation pour mémoriser lesdits n valeurs de désignation
déterminées pendant le cycle de travail en cours x, afin de pouvoir les utiliser pendant
le cycle de travail suivant x+1,
- des cinquièmes moyens pour, pendant le cycle de travail x en cours, appliquer à chacun
des échantillons de niveau zéro désignés pendant le cycle de travail précédent x-1,
la valeur correspondante dudit autre paramètre mémorisée pendant le cycle de travail
précédent, pour former n échantillons actuels de premier niveau et les mémoriser respectivement
dans n emplacements d'une mémoire d'accumulation, et
- des sixièmes moyens pour au cours du cycle de travail en cours x, transférer vers
ladite sortie les n échantillons de premier niveau mémorisés au cours du cycle de
travail précédent x-1,
[0010] les n emplacements de mémoire desdites mémoires de paramètre, de ladite mémoire de
valeurs de désignation et de ladite mémoire d'accumulation matérialisant respectivement
n cellules dont le contenu peut se modifier d'un cycle de travail à l'autre.
[0011] II résulte de ces caractéristiques que chaque échantillon du spectre sonore produit
peut être composé en temps réel avec une très grande variété de propriétés intrinsèques
et ce sans nécessiter beaucoup d'espace mémoire ou de matériel.
[0012] Selon une autre caractéristique essentielle de l'invention, lesdits premiers, seconds,
troisièmes, quatrièmes, cinquièmes et sixièmes moyens sont utilisés en partage de
temps au cours des cycles de travail successifs pour déterminer les valeurs relatives
auxdites cellules dans lesdites mémoires de paramètre, de valeurs de désignation et
d'accumulation.
[0013] Ainsi, la plupart des circuits du système de synthèse peuvent être utilisés en temps
partagé pour créer à sa sortie les différentes voies de production sonore. Il en résulte
une grande simplicité de structure du système de synthèse.
[0014] Selon d'autres caractéristiques avantageuses de l'invention:
- le système comprend également une unité de gestion connectée auxdits seconds, troisième,
quatrième, cinquièmes et sixièmes moyens, pour en gérer des valeurs de fonctionnement
selon un logiciel exécuté par cette unité de gestion;
- lesdites valeurs de fonctionnement sont des valeurs initiales desdits paramètres et/ou
des valeurs d'incrément de ces paramètres, lesdites valeurs initiales et d'incrément
étant déterminées par ledit logiciel;
- lesdits premiers moyens sont agencés pour déterminer successivement, au cours de chacun
desdits cycles, n sous-cycles de signaux de commande affectés respectivement auxdites
n cellules, les signaux de commande de chacun de ces sous-cycles étant destinés, d'une
part à activer, pendant le cycle de travail x en cours, des opérations de calcul pour
la détermination desdites première et seconde valeurs de paramètre de la cellule correspondante
et d'autre part, pour ce qui concerne chacune desdites mémoires, à permettre la lecture/écriture
dans lesdits n emplacements de mémoire, de données résultant de la détermination de
ces valeurs, ces données formant les contenus respectifs desdites n cellules utilisés
pendant le cycle de travail suivant x+1;
- chacun desdites sous-cycles de signaux de commande comprend également un signal de
commande pour autoriser ladite unité de gestion à communiquer avec lesdits premiers,
seconds, troisièmes, quatrièmes, cinquièmes et sixièmes moyens;
- lesdits seconds moyens (20B, 25) exécutent une fonction de calcul de la forme
dans laquelle PARPn est la valeur de paramètre de fréquence courante de la cellule considérée pendant
ledit sous-cycle en cours ou la valeur initiale de paramètre de fréquence, PARPn-1 est la valeur de paramètre de fréquence élaborée au cours du sous-cycle précédent
pour cette cellule et INCPn est l'incrément apporté à la valeur courante de paramètre de fréquence vis-à-vis
de la valeur précédente;
- lesdits troisièmes moyens exécutent une fonction de calcul de la forme
dans laquelle PARPn est la valeur courante de l'un desdits autres paramètres de la cellule considérée
pendant ledit sous-cycle en cours ou la valeur initiale de cet autre paramètre, PARPn-1 est la valeur dudit autre paramètre élaborée au cours du sous-cycle précédent pour
cette cellule et INCPn est l'incrément apporté à la valeur courante dudit autre paramètre vis-à-vis de la
valeur précédente;
- lesdits seconds et/ou troisièmes moyens comprennent une mémoire de valeur initiale
destinée à contenir, pour chacune desdites cellules, ladite valeur initiale de paramètre
et une mémoire d'incrément, destinée à contenir, pour chacune desdites cellules, ladite
valeur d'incrément de paramètre;
- lesdits troisièmes moyens comprennent un circuit pour le calcul d'au moins l'un desdits
autres paramètres, identique au circuit desdits seconds moyens pour le calcul dudit
paramètre de fréquence;
- lesdits quatrièmes moyens comprennent une première unité de calcul pour combiner algébriquement
ladite valeur de paramètre de fréquence du cycle de travail en cours avec une valeur
représentant la fréquence fondamentale du son à synthétiser auquel contribue l'échantillon
de premier niveau calculé pendant ce cycle en cours, une seconde unité de calcul pour
combiner algébriquement le résultat fourni par ladite première unité de calcul avec
le contenu actuel de l'emplacement de ladite mémoire de valeurs de désignation correspondant
à la cellule traitée au cours du cycle de travail en cours et des septièmes moyens
pour remplacer dans cet emplacement la valeur de désignation calculée au cours du
cycle de travail précédent par le résultat du calcul effectué au cours d cycle de
travail en cours par ladite seconde unité de calcul;
- lesdits quatrièmes moyens comprennent également un multiplexeur dont la sortie est
connectée à ladite seconde unité, dont rune des entrées reçoit le résultat du calcul
de ladite première unité de calcul, et dont l'autre entrée reçoit un signal de progression
de valeur fixe, notamment '0001', de ladite valeur de désignation permettant, sous
la commande d'un signal de mode, de faire progresser cette valeur de désignation de
ladite valeur fixe d'un cycle de travail à l'autre;
- lesdits quatrièmes moyens comprennent également une troisième unité de calcul pour
combiner algébriquement le résultat du calcul de ladite seconde unité de calcul avec
la valeur en cours de l'un desdits autres paramètres représentant la phase à appliquer
à l'échantillon de premier niveau engendré au cours du cycle de travail suivant x+1;
- lesdits quatrièmes moyens comprennent également des huitièmes moyens pour affecter
le signe positif ou négatif au résultat du calcul obtenu dans ladite première unité
de calcul;
- au moins certaines desdites sources comprennent une mémoire d'échantillons de niveau
zéro et ladite valeur de désignation est utilisée comme adresse de ladite mémoire
d'échantillons de niveau zéro;
- une première mémoire parmi lesdites mémoires d'échantillons de niveau zéro est une
table de sinus;
- une seconde mémoire parmi lesdites mémoires d'échantillons de niveau zéro est agencée
pour stocker au moins une séquence sonore échantillonnée dont les échantillons successifs
constituent lesdits échantillons de niveau zéro;
- ladite seconde mémoire d'échantillons de niveau zéro est connectée pour être chargée
par ladite unité de gestion, éventuellement par l'intermédiaire dudit logiciel;
- au moins certaines desdites sources comprennent un générateur de fonction et ladite
valeur de désignation est utilisée comme valeur de désignation ou comme adresse pour
identifier les équations de ladite fonction à utiliser;
- ledit générateur de fonction est choisi parmi le groupe comprenant un générateur de
fonction carrée, un générateur de fonction triangulaire, et/ou un générateur de rampe
positive et/ou négative;
- le système comprend en tant que source d'échantillons de niveau zéro un générateur
de bruit aléatoire fournissant des échantillons au rythme de ladite fréquence d'échantillonnage;
- ladite seconde mémoire d'échantillons de niveau zéro est connectée pour stocker, en
tant qu'échantillons de niveau zéro, des échantillons de premier niveau calculés et
stockés dans au moins une cellule au cours d'au moins un cycle de travail antérieur;
- le système comprend également des neuvièmes moyens pour préparer des échantillons
de niveau zéro à partir d'au moins une entrée du système de synthèse à laquelle est
appliquée un spectre sonore provenant d'une source externe, et en ce que lesdits neuvièmes
moyens sont connectés à ladite seconde mémoire d'échantillons pour permettre le stockage
desdits échantillons de niveau zéro provenant desdites entrées;
- le système comprend également des dixièmes moyens connectés à ladite au moins une
entrée pour analyser le spectre sonore de ladite source externe et en tirer des valeurs
de paramètre pouvant être utilisées pour modifier le ou les paramètres déterminés
par lesdits seconds et troisièmes moyens;
- le système comprend également des dixièmes moyens pour déterminer laquelle desdites
sources d'échantillons de niveau zéro va servir pour générer, au cours de chacun desdits
cycles de travail, l'échantillon de premier niveau de chacune desdites cellules;
- lesdits sixièmes moyens comprennent également des onzièmes moyens pour au cours d'un
cycle de travail en cours répartir les échantillons de premier niveau desdites cellules
engendrés au cours d'un cycle de travail précédent, sur m emplacements de mémoire
d'une seconde mémoire d'accumulation, les emplacement de cette seconde mémoire d'accumulation
matérialisent m ensembles dont le contenu peut varier d'un cycle de travail à l'autre,
le contenu de chacun desdits m emplacements étant sélectivement transféré à ladite
sortie en tant qu'échantillon dit de second niveau pendant le cycle de travail en
cours;
- ladite sortie comprend une pluralité de sorties distinctes et il est prévu en outre
des douzièmes moyens pour répartir sélectivement le contenu des emplacements de mémoire
de ladite seconde mémoire d'accumulation sur lesdites sorties distinctes, en tant
qu'échantillons dits de troisième niveau;
- le système comprend également des treizièmes moyens pour déterminer pour ladite valeur
de désignation des bornes entre lesquelles cette valeur peut évoluer au cours d'une
série déterminée de cycles de travail successifs;
- lesdits treizièmes moyens sont agencés pour faire évaluer ladite valeur de désignation
cycliquement entre lesdites bornes, à savoir de la première borne à la seconde borne,
cycliquement de la seconde borne à la première borne et/ou cycliquement en boucle
de la première borne à la seconde borne et puis inversement de ladite seconde borne
à ladite première borne;
- lesdites valeurs de fonctionnement sont stockées sélectivement dans une pluralité
de mémoires comprenant n emplacements par ladite unité de gestion appartenant respectivement
aux, seconds, troisièmes, quatrièmes, cinquièmes et sixièmes moyens, en fonction dudit
logiciel;
- lesdits troisièmes moyens comportent des quatorzièmes moyens pour appliquer au cours
d'au moins certains desdits cycles de travail, au moins une coefficient de filtrage
à au moins certains des échantillons de premier niveau engendrés.
[0015] D'autres caractéristiques et avantages de l'invention apparaîtront au cours de la
description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant
aux dessins annexés sur lesquels:
- la figure 1 est un schéma fonctionnel global du dispositif de synthèse sonore selon
l'invention;
- la figure 2 est un schéma de l'interface destinée à l'échange de messages entre une
unité de gestion et une unité de synthèse sonore et au cadencement des opérations
effectuées dans cette unité de synthèse;
- les figures 3 et 4 représentent un diagramme temporel des signaux apparaissant dans
l'interface de la figure 2, l'échelle des temps de la figure 3 étant plus petite que
celle de la figure 4;
- la figure 5 représente un schéma d'un circuit d'élaboration d'un paramètre déterminant
l'une des propriété des échantillons sonores à engendrer et appartenant à l'unité
de synthèse selon l'invention;
- la figure 6 est un schéma illustrant comment quatre circuits d'élaboration d'un paramètre
selon la figure 5 peuvent être utilisés pour déterminer quatre paramètres fixant les
propriétés des échantillons à engendrer;
- la figure 7 est un schéma d'un circuit générateur de valeurs temporelles permettant
de désigner des échantillons dits de niveau zéro devant être utilisés pour préparer
des échantillons dits de premier niveau;
- la figure 8 est un circuit assurant l'attribution d'échantillons sonores de premier
niveau à des circuits de l'unité de synthèse situés en aval;
- les figures 9 et 10 illustrent par un diagramme temporel les signaux apparaissant
dans le circuit d'attribution de la figure 8;
- la figure 11 est un schéma d'un circuit d'attribution d'échantillons dits de second
niveau à un circuit qui est monté juste en amont de la sortie de l'unité de synthèse;
- la figure 12 illustre par un schéma simplifié comment les paramètres élaborés dans
les circuits des figures 5 et 6 peuvent être utilisés pour influencer la production
des échantillons en fonction de plusieurs sources de signaux sonores, soit internes
soit externes au dispositif suivant l'invention;
- la figure 13 est un schéma d'un circuit de sélection de modes de fonctionnement du
dispositif selon l'invention;
- la figure 14 est un schéma d'un circuit générateur d'échantillons de premier niveau
à partir d'échantillons de niveau zéro présents à l'intérieur même de l'unité de synthèse
et pouvant donner lieu à la formation de plusieurs formes d'onde de signaux sonores;
- la figure 15 est un schéma d'un autre circuit générateur d'échantillons de premier
niveau à partir d'échantillons de niveau zéro également produits à l'intérieur même
de l'unité de synthèse, mais pouvant dans ce cas donner lieu à la formation de bruit
aléatoire;
- la figure 16 est un schéma d'un circuit destiné à attribuer sélectivement un groupe
d'entrées externes au dispositif de synthèse sonore, afin d'utiliser ces entrées en
tant que sources de formation d'échantillons de premier niveau;
- la figure 17 est un schéma d'un circuit pour permettre le stockage de certains échantillons
de niveau zéro;
- la figure 18 représente un schéma d'un circuit d'analyse de signaux d'entrée afin
de déterminer des paramètres caractérisant des échantillons de premier niveau élaborés
à partir d'échantillons de niveau zéro ayant pour origine des signaux sonores venant
de l'extérieur;
- la figure 19 est un schéma d'un circuit permettant en phase finale d'élaboration des
échantillons de premier niveau de tenir compte de certains coefficients de filtrage;
- les figures 20 et 21 illustrent schématiquement un circuit de production de bornes
temporelles utilisées au cours de l'élaboration des échantillons sonores des premier
et second niveaux; et
[0016] la figure 22 illustre un exemple de mise en oeuvre détaillé de l'unité de synthèse
selon l'invention.
[0017] La figure 1 est un schéma symbolique illustrant, sous forme de blocs fonctionnels,
les circuits principaux du dispositif de synthèse sonore selon l'invention. On voit
que celui-ci comprend trois unités de base qui sont un ordinateur de gestion appelé
ci-après CPU. Cette unité peut être un ordinateur personnel tournant sur un programme
de gestion de synthèse sonore préalablement enregistré, sur une disquette par exemple,
et fonctionnant avec tout type de programme d'exploration usuel comme 'Windows"™,
par exemple. L'unité de gestion peut être formée par tout autre dispositif permettant
d'exécuter un programme dédié à la gestion du dispositif suivant l'invention.
[0018] Le CPU est connecté à une interface fonctionnelle I qui assure d'une part l'échange
de messages entre le CPU et une unité de synthèse (appelée SYNT par la suite) et d'autre
part le cadencement de toutes les opérations de synthèse sonore, destinées à être
mises en oeuvre dans cette unité SYNT. Celle-ci délivre le signal sonore souhaité
sur une sortie S.
[0019] Comme l'illustre en outre la figure 1, l'unité de synthèse SYNT comprend un certain
nombre de blocs fonctionnels matériels qui vont être décrits par la suite en détail
en référence aux figures, les figures concernée(s) par les blocs étant indiquée(s)
dans chacun d'entre eux. On remarquera que, grosso modo, l'unité SYNT comprend deux
ensembles fonctionnels principaux EF1 et EF2, entourés par des traits mixtes et chargés
essentiellement d'établir des paramètres définissant les caractéristiques des échantillons
sonores à produire, et l'autre de mettre en oeuvre ces paramètres en les appliquant
à des échantillons dits de niveau zéro pour engendrer les échantillons de niveaux
supérieurs.. En outre, pour faciliter la compréhension chaque bloc contient un mot
ou expression clé destiné à en désigner la fonction globale.
[0020] La figure 2 montre un schéma symbolique de l'interface I du dispositif de synthèse
sonore selon l'invention, le CPU étant ici symbolisé par le rectangle 1. Les signaux
engendrés dans cette interface I sont représentés sur les figures 3 et 4, l'échelle
de la figure 3 étant plus petite que celle de la figure 4.
[0021] L'interface I comprend un oscillateur à quartz 2 qui fournit un signal d'horloge
de base CLK (voir pour les formes des signaux et leurs relations temporelles les figures
3 et 4) à un compteur binaire 3 à trois bits. Les trois sorties Q0, Q1 et Q2 de ce
compteur 3 constituent un signal CCAL décrit ultérieurement et elles sont également
appliquées à un décodeur binaire 4 décodant le signal à trois bits qui lui est appliqué
sur huit sorties C0 à C7. Les sorties C0 à C3 de ce décodeur 4 cadencent quatre sous-périodes
P2_AMP, P2_FRE, P2_PHA et P2-FLT d'une période P1 qui est cadencée par l'intermédiaire
d'une porte ET 5.
[0022] Dans le présent mémoire, on appellera "séquence de calcul" PCAL, un cycle qui impliquera
le signal P1 combiné aux signaux P3 et P4, à l'exclusion d'un signal PCPU qui détermine
dans chaque période P1 le temps d'accès autorisé pour l'unité CPU. Le signal PCPU
sera appellé "cycle d'accès".
[0023] Les sorties C4 et C5 du décodeur 4 cadencent respectivement les sous-périodes P3
et P4, tandis que les sorties C6 et C7 sont appliquées à une porte ET 6 par l'intermédiaire
de laquelle est cadencée la sous-période PCPU. Il est à noter que la période P1, et
les sous-périodes P3, P4 et P2_AMP, P2_FRE, P2_PHA et P2-FLT ont en fait toutes la
même durée, mais que les intervalles de temps pendant lesquels elles déterminent une
activité dans l'unité SYNT, sont fixées par la durée de leur niveau bas dans chaque
période. On désignera donc ces durées de niveau bas par le terme "impulsion active"
dans ce qui va suivre, les impulsions actives étant déphasées les unes par rapport
aux autres dans les diverses sous-périodes.
[0024] La sortie C0 du décodeur 4 est également appliquée à l'entrée RESET d'une bascule
S-R 7 à l'entrée SET de laquelle est appliqué un signal CS_CPU provenant du CPU et
représentant les demandes d'accès de ce dernier. Cette bascule fournit périodiquement
un signal ATTENTE_CPU sur une borne 8 pour mettre le CPU en attente lors d'une requête
exprimée par un signal CS_CPU, pendant la durée cumulée des impulsions actives des
sous-périodes P2_AMP, P2_FRE, P2_PHA, P2_FLT, P3 et P4. Durant les impulsions actives
du signal PCPU, le CPU est autorisé à transmettre des adresses, des données et des
commandes de lecture/écriture à l'unité de synthèse SYNT. Il peut également recevoir
des données pendant les impulsions actives des sous-périodes PCPU.
[0025] L'oscillateur 2 est également relié à un compteur binaire 9 à n bits, 2
n = N étant le nombre de cellules que comporte l'unité de synthèse SYNT, la signification
du terme "cellule" étant explicitée par la suite.
[0026] Dans l'exemple décrit, on a choisi N=192, un autre nombre de cellules étant possible.
Le compteur 9 est commandé par le signal C7 du décodeur 4 qui le fait progresser d'une
unité à l'achèvement de chaque période P1 et il est synchronisé sur le signal CLK
de l'horloge de base 2. Sa sortie Q
n délivre une adresse de base de cellule ADR_BASE à un bloc 10 de sélection d'adresse
de cellule pour déterminer la succession d'adresses de base des cellules (0 à 191
dans l'exemple).
[0027] Pendant la sous-période PCPU (figure 3), le CPU peut communiquer via l'interface
avec l'unité SYNT. A cet effet, la sortie PCPU de la porte ET 6 et le signal de requête
d'accès CS_CPU sont appliqués à une porte OU 11 dont la sortie peut activer un signal
de sélection SEL du bloc 10. L'état logique de ce signal détermine sélectivement si
c'est la sortie du compteur 9 qui constitue l'adresse de la cellule active à un instant
considéré, ou si c'est le programme de gestion tournant dans le CPU qui fournit cette
adresse. Dans le premier cas, la sortie du compteur 9 est passée de l'entrée ADR_BASE
du bloc 10 vers la sortie partagée AC (adresse instantanée de cellule) de ce bloc.
Dans le second cas, le signal SEL active deux blocs d'interface 13 et 14.
[0028] Il convient de noter que les cellules de l'unité SYNT, sont en fait matérialisées
fugitivement au cours des séquences successives PCAL (composées des signaux P1, P3
et P4; figure 4) de préparation d'échantillons dit "de premier niveau". Ces séquences
PCAL composent ensemble un cycle P durant lequel sont successivement effectués les
calculs des échantillons de premier niveau pour toutes les cellules. Dans l'exemple,
un tel cycle P présente donc 192 séquences PCAL. successives, le cycle P étant exécuté
à la fréquence d'échantillonnage de la synthèse sonore qui est égale par exemple à
44.100 Hz. C'est la fréquence du signal ACT représenté également sur la figure 4.
[0029] On verra par la suite que, selon une caractéristique essentielle de l'invention,
la matérialisation des cellules est réalisée en stockant fugitivement et cycliquement
des données calculées de cellule, à des emplacements de mémoire d'une pluralité de
mémoires affectées à des fonctions de calcul et/ou de commande et prévues matériellement
dans l'unité SYNT. Chacune de ces mémoires comporte autant d'emplacements qu'il y
a de cellules dans l'unité SYNT. Pour autant que cela soit nécessaire, de l'information
sous forme d'adresses ou de données peut aussi sélectivement être écrite aux emplacements
de mémoire concernant les cellules respectives à partir du CPU pendant la sous-période
PCPU suivant chaque séquence PCAL.
[0030] Ainsi, pour ce qui concerne la cellule n°0 par exemple, pendant les séquences PCAL
où elle est activée, les mémoires en question peuvent recevoir de l'information la
concernant pour stocker cette information à leur emplacement de stockage ayant l'adresse
0, ou délivrer ces données à leur sortie pour que ces données puissent être traitées
ultérieurement. Puis, au cours de la séquence PCAL suivante les mêmes opérations ou
d'autres opérations analogues peuvent être réalisées pour ce qui concerne la cellule
1 aux emplacements ayant l'adresse 1 dans les mémoires, et ainsi de suite jusqu'à
ce que la cellule n° 191 ait été traitée, après quoi, le processus recommence avec
la cellule n° 0.
[0031] Les mémoires peuvent être chargées (écriture), lues et déchargées de différentes
façons et notamment par le CPU 1. En d'autres termes, à la fin de chaque séquence
PCAL représentée sur la figure 4 et délimité dans le temps entre deux impulsions du
signal ACT, l'unité SYNT matérialise les 192 cellules par les contenus des 192 emplacements
des mémoires dédiées à cette tâche, chaque cellule étant "composée" des emplacements
de même adresse de ces mémoires. Le contenu de chaque cellule peut ou non varier d'un
cycle à l'autre, en fonction des caractéristiques des échantillons de premier niveau
à produire.
[0032] A ce stade, on peut souligner que grâce à cette façon de procéder, une grande partie
du circuit SYNT peut être utilisée en partage de temps ce qui économise une grande
quantité de matériel. En outre, les échantillons sonores à élaborer peuvent être composés
à partir de plusieurs sources qui peuvent notamment être mélangées avec une grande
souplesse.
[0033] Les blocs 13 et 14 permettent de transférer à l'unité SYNT respectivement des adresses,
des données et des commandes de lecture/écriture, à condition que ces blocs soient
activés par le signal de sélection SEL issu de la porte 11 et que le signal de sortie
ATTENTE_CPU de la bascule 7 soit désactivé. Ce signal étant actif pendant l'impulsion
active de la sous-période PCPU, le programme de gestion exécuté dans le CPU peut agir
sur l'unité SYNT pour autant naturellement que ce programme prescrit une telle action
pendant la séquence PCAL considérée.
[0034] Le bloc 12 peut recevoir du CPU sur une entrée 12a des adresses ADR_CPU, sur une
entrée 12b un signal de commande de lecture RD_CPU, sur une entrée 12c un signal de
commande d'écriture WR_CPU et sur une entrée 12d le signal de sélection CS_CPU. La
sortie 12e du bloc 12 permet de transférer des valeurs d'adresse vers plusieurs destinations,
à savoir le bloc 10, le bloc 14 de sélection de lecture/écriture de mémoires et d'autres
éléments de l'unité SYNT, ce qui sera décrit par la suite.
[0035] Le bloc 13 comporte une entrée 13a de réception de données en provenance du CPU,
une entrée 13b de commande de lecture, une entrée 13c de commande d'écriture et une
sortie 13e de transfert de données vers divers éléments de l'unité SYNT comme décrit
ci-après. Le transfert des données peut être bidirectionnel.
[0036] Le bloc 14 comprend une entrée 14a de réception d'adresses de lecture/écriture en
provenance du bloc 12, une entrée 14b de commande de lecture recevant le signal RD_CPU,
une entrée 14c de commande d'écriture recevant le signal WR_CPU et une entrée 14d
de sélection raccordée à la sortie de la porte 11. Ce bloc comprend également des
sorties 14e et 14f connectées respectivement à un bus de commande de lecture 15a et
à un bus de commande d'écriture 15b, ces deux bus véhiculant sélectivement des signaux
respectifs de commande de lecture/écriture vers toutes les mémoires de l'unité SYNT.
Les identifications de ces signaux sont indiqués in extenso sur la figure 2 et se
retrouvent aux endroits correspondants des autres figures encore à décrire.
[0037] La sortie de la porte 5 est combinée logiquement avec la sortie du bloc de sélection
d'adresse 10 dans une porte NON-ET 16 fournissant le signal de sortie ACT qui est
la fréquence d'échantillonage de l'unité SYNT.
[0038] La figure 5 représente un circuit d'élaboration de valeurs de paramètres désigné
globalement par la référence 20. Ce circuit fait partie de l'unité SYNT. Avant de
le décrire, on précisera tout d'abord que, comme déjà évoqué ci-dessus, l'unité SYNT
comprend une pluralité de mémoires dont certaines apparaissent sur la figure 5. Dans
l'ensemble des schémas de l'unité SYNT dont la description va suivre, chaque mémoire
est symbolisée par un carré auquel sont associées des entrées et/ou des sorties de
données et un rectangle plus petit auquel sont associées une entrée d'adresse, une
entrée de commande d'écriture et/ou une entrée de commande de lecture. En outre, dans
chaque carré, on a indiqué le nombre d'emplacements que présente la mémoire en question
dans l'exemple considéré.
[0039] On notera également que la figure 5 représente le matériel d'un circuit 20 d'élaboration
d'un paramètre qui se répète quatre fois dans l'unité SYNT (figure 6). Autrement dit,
au cours de chaque séquence PCAL, plus précisément durant les quatre impulsions actives
des sous-périodes P2_AMP, P2_FRE, P2_PHA, P2-FLT, chaque circuit 20 (incorporé respectivement
dans les blocs 20A à 20D) forme l'un parmi quatre paramètres AMPLITUDE, FREQUENCE,
PHASE ou FILTRE pouvant être affectés au calcul des échantillons de premier niveau.
La valeur de paramètre correspondant VAL (que l'on désigne respectivement par AMP,
FRE, PHA et FLT) obtenue après l'impulsion active des sous-périodes P2_AMP, P2_FRE,
P2_PHA, P2-FLT respectives apparaît sur une borne de sortie 21 des circuits 20A à
20D. On détermine ainsi les caractéristiques correspondantes d'amplitude, de fréquence,
de phase et de filtrage des échantillons successifs de premier niveau calculées pour
chaque cellule.
[0040] Ceci étant, chaque circuit 20A à 20D d'élaboration de paramètre comprend une mémoire
M1 dans laquelle peut être stockée, selon le cas, la valeur de base du paramètre AMPLITUDE,
FREQUENCE, PHASE ou FILTRE des cellules. Ces valeurs sont reçues du CPU par l'intermédiaire
de la sortie 13e (figure 2) pendant les impulsions actives de la sous-période PCPU
durant lesquelles le CPU est autorisé à accéder à l'unité SYNT.
[0041] Une mémoire M2 est destinée à mémoriser des valeurs d'incrément du paramètre au cas
où celui-ci doit subir un changement pour l'élaboration d'un échantillon donné par
rapport à un même paramètre d'un échantillon élaboré précédemment. La valeur d'incrément
est également fournie par le CPU via la sortie 13e du bloc d'interface 13.
[0042] Les sorties des mémoires M1 et M2 sont appliquées à un ensemble de calcul 22 destiné
à mettre en oeuvre la fonction de calcul suivante:
dans laquelle
PARPn est la valeur de paramètre courante de la cellule considérée pendant la séquence
PCAL en cours ou la valeur initiale de paramètre,
PARPn-1 est la valeur de paramètre élaborée au cours de la séquence PCAL précédente pour
cette cellule et
INCPn est l'incrément apporté à la valeur courante du paramètre vis-à-vis de la valeur
précédente. Il est à noter que ce calcul permet d'introduire une interpolation automatique
entre différentes valeurs de paramètre successives pour atténuer des sauts de valeur,
le cas échéant.
[0043] Ainsi, la sortie de la mémoire M2 est appliquée à une première unité arithmétique
U1 chargée d'effectuer sur les variables A et B qui lui sont appliquées l'opération
B÷A, la variable B étant fournie par une unité arithmétique U2 qui effectue sur ses
variables d'entrée A et B l'opération A-B. La variable A de cette unité arithmétique
U2 est chaque fois la sortie de la différence entre la nouvelle valeur stockée dans
la mémoire M1 du paramètre et sa valeur courante stockée dans une mémoire ou accumulateur
M3.
[0044] Le résultat du calcul effectué dans l'unité arithmétique U1 est appliqué, en tant
que variable A, à une autre unité arithmétique U3 qui effectue sur ses variables d'entrée
l'opération A+B. La variable d'entrée B de cette unité arithmétique U3 provient de
la mémoire M3 qui est destinée à mémoriser temporairement et pour chaque cellule la
valeur de paramètre
PARPn-1, c'est à dire la valeur de paramètre calculée pendant la séquence PCALP précédente.
La mémoire M3 est donc connectée par son entrée de données à la sortie 21 et par sa
sortie de données à l'entrée de variable B de l'unité de calcul U2. L'écriture de
la valeur
PARPn-1 dans la mémoire M3 s'est faite au cours de l'impulsion active de la sous-période
P4 de la séquence PCAL précédente.
[0045] D'autres modifications peuvent être apportées à un paramètre au cours de son processus
d'élaboration dans le circuit respectif 20A à 20D, à savoir par la partie du circuit
qui est représentée dans la moitié inférieure de la figure 5.
[0046] Cette partie comprend une mémoire M4 commandée en lecture/écriture par les signaux
R3 et W3 en ce qui concerne l'amplitude, la fréquence, la phase ou le filtrage. Cette
mémoire mémorise, le cas échéant, une modification de valeur de paramètre pour l'une
ou plusieurs des 192 cellules en fonction du signal d'adresse AC. Sa sortie est connectée
à un tampon d'adresse 23 dont les valeurs d'entrée peuvent passer à la sortie sous
la commande de l'impulsion active respective des sous-périodes P2_AMP, P2_FRE, P2_PHA
ou P2_FLT.
[0047] Les valeurs ainsi transmises à travers le tampon 23 sont appliquées à un répartiteur
25 chargé de sélectionner, l'une parmi une pluralité de sources de valeurs de paramètre
destinées à l'élaboration des échantillons de premier niveau par les cellules. Ce
répartiteur 25 sera décrit plus loin en référence à la figure 12. Les signaux correspondant
à ces valeurs de paramètre sont envoyés dans une bascule bistable 24 activée en écriture
sur l'impulsion active de la sous-période P2 concernée, en fonction de la nature du
paramètre à modifier. La sortie de la bascule 24 est connectée à l'entrée A d'une
unité arithmétique U4 qui permet d'effectuer sélectivement un calcul combinatoire
tel qu'un calcul de somme ou un calcul de produit sur les valeurs appliquées à ses
entrées. L'entrée B de cette unité arithmétique U4 est raccordée à une bascule bistable
26 dont l'entrée est raccordée à la sortie de l'unité arithmétique U3 et qui est activée
au cours de l'impulsion active de la sous-période P3. On verra par la suite que la
sélection de l'opération arithmétique effectuée dans l'unité U4 est commandée par
l'état binaire d'un signal de commande de mode MODE_FCT.
[0048] La partie du circuit de la figure 5 que l'on vient de décrire permet par exemple
d'appliquer sur un son synthétisé un vibrato en faisant varier cycliquement la valeur
de fréquence des échantillons dont ce son est formé.
[0049] On a représenté sur la figure 6 un schéma illustrant les jeux de signaux d'entrée
et de sortie qui sont appliqués, respectivement produits, par les quatre circuits
20A à 20D dont chacun est identique au circuit 20 d'élaboration d'un paramètre de
la figure 5.
[0050] Ainsi, le bloc 20A est affecté au paramètre AMPLITUDE, les blocs 20B, 20C et 20D
étant respectivement affectés aux paramètres FREQUENCE, PHASE et FILTRE. Les signaux
d'écriture et de lecture R1/W1, R2/W2 et R3/W3 sont appliqués aux mémoires M1, M2
et M4 de la figure 5; ils proviennent respectivement des bus de commande 15a et 15b
de la figure 2. Chaque bloc est cadencé sélectivement pendant chaque séquence PCAL
au moment où l'impulsion active de la sous-période correspondante est produite. Chaque
bloc reçoit également des données d'entrée sur le bus DCPU et le signal AC de numéro
ou d'adresse de cellule (voir figure 2). Les sorties AMP, FRE, PHA et FLT de chaque
bloc sont traitées dans d'autres parties de l'unité SYNT comme décrit ci-après; il
en est de même des signaux transitant sur les bornes restantes des blocs 20A à 20D.
[0051] Chaque échantillon de premier niveau correspondant, pendant une séquence PCAL à l'une
des cellules,doit être formé à partir d'un échantillon de niveau zéro qui doit être
désigné spécifiquement et extrait de l'une des sources d'échantillons de niveau zéro.
Mais, cet échantillon de niveau zéro doit également être affecté d'une valeur temporelle
pour qu'il puisse contribuer à l'élaboration de l'échantillon de premier niveau auquel
il va appartenir.
[0052] Selon une caractéristique essentielle de l'invention, le système comporte ainsi des
moyens, représentés à la figure 7, qui est destiné à engendrer une valeur binaire,
appelée "valeur de désignation d'échantillon de niveau zéro" ou plus brièvement "valeur
de désignation". Cette valeur de désignation (symbole POS-X) est essentiellement fonction
de deux autres valeurs binaires dont la première est la valeur FRE élaborée par le
bloc 20B (figure 6). Cette première valeur binaire représente un intervalle de temps
exprimant le rapport entre la fréquence d'une cellule quelconque par rapport à une
fréquence de base dont il est un facteur multiplicatif.
[0053] Un exemple permet d'illustrer ce concept. Si on souhaite synthétiser un son sinusoïdal
ayant une fréquence fondamentale de 440Hz et nécessitant la production d'une harmonique
supérieure, la seconde à 880Hz par exemple, on affectera une première cellule à l'élaboration
d'échantillons avec un facteur de valeur temporelle relative 1 (signal FRE), tandis
que qu'une autre cellule sera affectée à l'élaboration d'échantillons pour l'harmonique
avec une valeur relative 2. Le rapport peut également être inférieur à 1.
[0054] Pour calculer les valeurs de désignation POS_X, on aura besoin également d'une autre
valeur d'intervalle temporel ou intervalle de base (signal ENS_FRE) représentant la
fréquence fondamentale du son à synthétiser, cet intervalle dépendant de la valeur
de cette fréquence d'une part et du nombre de points d'échantillonnage avec lequel
on souhaite synthétiser le son.
[0055] Pour revenir à l'exemple ci-dessus, si le son sinusoïdal doit présenter une fréquence
de 440 Hz et si on veut le synthétiser à une fréquence d'échantillonage de 44 100
Hz, une telle oscillation nécessitera 100,227 points par cycle. Si l'oscillation est
définie sur 1024 points, par exemple (pour un cycle complet, la fréquence maximale
que l'on peut obtenir avec 1024 points est de 43,0664 Hz), pour obtenir l'oscillation
à la fréquence voulue de 440 Hz, il faut un incrément de 10,21678 entre deux valeurs
d'adresse successives de la table d'oscillation de 1024 points. Ceci revient à un
incrément entre deux valeurs de désignation successives POS_X, égal à 10,2178 (ou
10,21678 fois la fréquence d'échantillonnage de 44 100 Hz) pour reproduire un échantillon
défini sur une base de 1024 points par cycle. Pour l'harmonique à 880 Hz, l'incrément
devra être le double pour adresser la même table de 1024 points par cycle soit 20,43345.
On rappelle que le signal ACT correspond au taux d'échantillonange, en l'occurence
d'une fréquence de 44 100 Hz. On notera donc que la valeur POS_X représente de façon
inhérente une valeur temporelle de positionnement des échantillons sur l'axe des temps,
tandis qu'en même temps elle désigne ces échantillons en évoluant constamment étant
donné qu'elle constitue en même temps une adresse de mémoire contenant les échantillons
de niveau zéro.
[0056] La valeur de désignation POS_X est calculée dans un circuit de calcul 30 de valeurs
de sélection représenté sur la figure 7.
[0057] On voit que dans ce circuit de calcul les valeurs de l'intervalle relatif FRE et
de l'intervalle de base ENS_FRE sont appliquées aux entrées respectives A et B d'une
unité arithmétique U4 dans laquelle elles sont multipliées. La partie entière du résultat
de la multiplication est appliquée à l'entrée A d'une seconde unité arithmétique U5
effectuant la somme des valeurs appliquée à ses entrées A et B. La partie décimale
du résultat de la multiplication est appliquée à un diviseur de taux binaire 31 dans
laquelle cette partie décimale est décomptée par le signal ACT. (A noter que les valeurs
en question sont en réalité exprimées en numération binaire).
[0058] Dans l'exemple ci-dessus dans lequel la sortie de l'unité U4 vaut 10,21678, le diviseur
31 ajoute dans l'unité U5 une valeur 1 à la valeur entière 10 à raison de 21678 fois
pour cent mille impulsions du signal ACT. Ainsi, la valeur additionnée à la sortie
de l'unité U5 sera égale à 11, 21678 fois sur cent cent mille impulsions de ce signal
ACT.
[0059] La sortie de l'unité arithmétique U5 est appliquée à l'une des entrées SEL B d'un
multiplexeur 32 qui sous la commande d'un signal SC_ETR, permet de sélectionner, d'une
séquence PCAL à l'autre, le type de croissance de la valeur POS_X en fonction de plusieurs
cas d'utilisation des sources d'échantillons de niveau zéro, comme on le verra ci-après.
Dans l'un de ces cas, la croissance de la valeur POS_X est constante (0001 par exemple)
et appliquée sur la connexion 33. La sortie du bloc 32 est reliée à un bloc de détermination
de signe 34 qui sous la commande d'un signal SGN affecte un signal positif ou négatif
à la valeur extraite de la mémoire M5. On notera que si le signal négatif est sélectionné,
la séquence sonore synthétisée peut être reproduite à l'envers dans le temps, car
la valeur POS_X sera alors décrémentée d'une période P1 à l'autre, de la quantité
déterminée dans le circuit de calcul 30 au lieu d'être incrémentée.
[0060] Une mémoire d'accumulation M5 chargée par l'impulsion active de la sous-période P4
stocke pour toutes les cellules la valeur POS_X antérieure.
[0061] La sortie du bloc 34 de détermination de signe est appliquée à l'entrée B d'une unité
arithmétique U6 dont l'entrée A est reliée à la sortie de la mémoire M5. Cette unité
U6 fait la somme de ses deux variables d'entrée. Le résultat est envoyé dans un multiplexeur
35 qui permet, sous la commande d'un signal CD_INIT, d'adresser à sa sortie, soit
la sortie de l'unité arithmétique U6, soit une valeur d'initialisation lNlT_X encore
à décrire à partir de laquelle la valeur POS_X va être incrémentée. La valeur lNlT_X
peut être égale à zéro dans certains cas. La sortie du multiplexeur 35 est connectée
à une bascule bistable de synchronisation 36 dans laquelle la valeur est écrite par
l'impulsion active de la sous-période P3.
[0062] La sortie de cette bascule 36 est raccordée d'une part à l'entrée de données de la
mémoire M5 et d'autre part en tant que variable B, à l'une des entrées d'une unité
arithmétique U7 qui reçoit sur son autre entrée la valeur PHA provenant du circuit
d'élaboration de paramètres 20 (bloc 20C de la figure 6). Le résultat du calcul effectué
dans l'unité arithmétique U7 (somme de ses variables d'entrée A et B) est la valeur
POS_X.
[0063] On a vu précédemment que l'unité SYNT matérialise en partage de temps un nombre n
de cellules dans lesquelles sont élaborées des valeurs d'échantillon de premier niveau
à partir de valeurs d'échantillon de niveau zéro affectées de paramètres d'amplitude,
de fréquence, de phase et de filtrage prédéterminées. Selon une autre caractéristique
importante de l'invention, l'unité SYNT présente également des moyens pour matérialiser
en partage de temps un nombre m d'ensembles de cellules qui, comme ces demières, sont
représentés par des valeurs stockées à des emplacements de mémoire d'une pluralité
de mémoires.
[0064] Dans l'exemple non limitatif décrit, m=64 de sorte qu'il y a 64 ensembles, les emplacements
de chacune des mémoires affectées à cette tâche étant donc également au nombre de
64. Les ensembles sont destinés à réunir ou plus précisément à cumuler des valeurs
d'échantillon de premier niveau élaborées dans un nombre prédéterminé des cellules
à la fin de chaque cycle d'échantillonnage P pour produire des échantillons dits de
second niveau.
[0065] Ainsi, on peut imaginer que l'on veuille reproduire une note d'un violon présentant
sa fréquence fondamentale ainsi qu'un jeu d'harmoniques caractéristiques de la note
ainsi jouée sur cet instrument. On peut alors affecter à ce travail un nombre de cellules
égal à celui des fréquences fondamentale et harmoniques à reproduire avec leurs caractéristiques
d'amplitude, de fréquence et de phase associées, puis de réunir dans l'un des ensembles
tous les échantillons de premier niveau ainsi engendrés avec leurs relations temporelles
associées, les échantillons de second niveau contenant le cumul des échantillons de
premier niveau calculés auparavant dans les cellules affectées à l'ensemble considéré.
[0066] Dans un même ordre d'idées, on verra par la suite, que les échantillons de second
niveau calculés dans les divers ensembles peuvent à leur tour être répartis sur un
jeu de q sorties par un cumul approprié des échantillons de second niveau pour former
des échantillons de troisième niveau constituant collectivement les sorties de l'unité
SYNT symbolisée en S sur la figure 1.
[0067] Les mécanismes que l'on vient de décrire sont mis en oeuvre par les composants matériels
représentés respectivement sur les figures 8 et 9 dont on va maintenant donner une
description détaillée.
[0068] La figure 8 représente un circuit 40 d'attribution d'échantillons de premier niveau
permettant d'affecter des cellules prédéterminées à un ensemble prédéterminé de la
pluralité d'ensembles de l'unité de synthèse SYNT. Les formes des signaux apparaissant
dans ce circuit d'attribution 40 sont représentées sur les figures 9 et 10.
[0069] A un instant donné déterminé par le cadencement du signal ACT (figure 10), la valeur
d'échantillon de second niveau d'un ensemble sélectionné pour cet instant est représentée
par le signal ACC_ENS que l'on retrouve en haut à droite sur la figure 8 et qui constitue
la sortie du circuit d'attribution 40. Cette valeur se trouve fugitivement à l'adresse
correspondant à cet ensemble d'une mémoire d'accumulateur M6 (à 64 emplacements dans
l'exemple) adressée par le signal AACC_ENS et dont l'entrée de données est raccordée
à la sortie d'une unité arithmétique U9 chargée d'effectuer la multiplication de ses
entrées A et B. L'écriture dans la mémoire M6 est commandée par l'intermédiaire de
l'impulsion active de la sous-période P4. Celle-ci lui parvient à travers une porte
ET 41 recevant également un signal C_ENS désignant la dernière cellule dont l'échantillon
de premier niveau qui vient d'être calculé doit, pour une attribution donnée, être
incorporé à la valeur d'échantillon de second niveau devant être fournie par cet ensemble.
[0070] L'unité arithmétique U9 reçoit sur son entrée A les données de sortie stockées dans
une bascule bistable 42 (voir figure 9) qui reçoit ces données en entrée à partir
d'une unité arithmétique U10. Celle-ci effectue la somme des valeurs qui lui sont
appliquées sur ses entrées A et B. L'écriture des données dans la bascule bistable
42 se fait pendant l'impulsion active de la sous-période P3. La sortie de cette bascule
42 est également raccordée à une mémoire d'accumulation intermédiaire M7 (64 emplacements)
dans laquelle des données peuvent être inscrites pendant l'impulsion active de la
sous-période P4. En sortie, ces données sont appliquées à l'entrée B de l'unité arithmétique
U10. Celle-ci reçoit sur son entrée A la valeur accumulée ACC_CEL de la cellule courante
en étant soumise à une fonction ET dans une porte 52 avec un bit C_CSEL provenant
en tant que bit de poids le plus fort d'une mémoire M9 à 192 emplacements. Cette porte
ET permet d'additionner la valeur d'échantillon de la cellule courante, si le bit
C_CSEL est à '1'. Dans le cas contraire, la valeur n'est pas additionnée sur l'ensemble.
On a ainsi le choix soit d'avoir une cellule dont on utilise la valeur d'échantillon
comme partie de l'échantillon de niveau deux soit de ne l'utiliser que comme commande,
par exemple pour utiliser cette cellule pour que la valeur puisse être additionnée
à un paramètre donné d'une cellule donnée sans que l'échantillon de cette cellule
ne soit directement audible en n'étant pas achéminé à une sortie.
[0071] Ainsi, l'entrée A de l'unité arithmétique U9 reçoit une valeur constituée par la
somme de toutes les valeurs accumulées ACC_CEL des cellules attribuées à un ensemble
donné, somme qui apparaît à la sortie de la bascule 42, comme représenté sur la figure
9.
[0072] L'unité arithmétique U9 reçoit sur son entrée B une valeur d'amplitude provenant
d'une mémoire M8 (64 emplacements) dans laquelle sont stockées des valeurs d'amplitude
qui peuvent y être inscrites par l'unité de gestion CPU sous la commande du signal
d'écriture W_ENS_AMP (figures 2 et 8). La valeur d'amplitude peut être lue dans la
mémoire M8 sous la commande du signal R_ENS_AMPL pour ajuster la valeur calculée d'amplitude
de l'ensemble courant considéré.
[0073] L'entrée de données d'une mémoire M9 (192 emplacements) est connectée au bloc 13
(figure 2) pour recevoir du CPU des valeurs d'adresse spécifiant pour chacune des
cellules à quel ensemble cette cellule va appartenir pour participer à la production
d'un échantillon de second niveau. L'écriture de ces valeurs d'adresse dans cette
mémoire M9 se fait aux adresses correspondant respectivement aux cellules concernées.
[0074] La figure 9 illustre par un exemple simple cette écriture dans la mémoire M8 pour
les cinq premières cellules portant les numéros 0 à 4 d'un cycle P. Dans cet exemple,
les cellules 0, 1 et 2 vont appartenir à l'ensemble 0 et les cellules 3 et 4 à l'ensemble
1. L'écriture et la lecture de la mémoire M9 sont réalisées sous la commande des signaux
W_ENS_CEL et R_ENS_CEL. La même valeur détermine l'adresse de la mémoire M7 qui accumule
ces données sous la commande de l'impulsion active de la sous-période P4.
[0075] Chaque valeur d'adresse écrite dans la mémoire M9 est assortie d'un bit d'identification
qui, dans l'exemple, est le bit de poids le plus fort (MSB). Dans ce cas, il est à
1 lorsque pendant la période P1 suivante, le calcul pour l'ensemble courant doit continuer
à être effectué pour cet ensemble. Par contre, lorsque ce bit est à un, cela signifie
que le calcul de l'ensemble courant est terminé. Le signal correspondant est désigné
par C_ENS qui, comme représenté sur la figure 9, est par exemple à un pour les cellules
0, 1 et 3, et à zéro pour les cellules 2 et 4. Comme déjà mentionné, le signal C_ENS
est utilisé pour commander l'écriture dans la mémoire M6 de la valeur cumulée d'un
échantillon de second niveau appartenant à un ensemble courant.
[0076] L'écriture des données d'amplitude des ensembles dans la mémoire M8 peut se faire
à des adresses pouvant provenir soit de la mémoire M9 (A_ENS), soit directement du
bloc 10 (figure 2). La sélection de l'adresse est effectuée par l'intermédiaire d'un
multiplexeur 43. L'adresse AC passe dans ce multiplexeur 43, lorsque l'un ou l'autre
des signaux W_ENS_AMP ou R_ENS_AMP est à zéro. Sinon c'est l'adresse A_ENS qui passe.
[0077] Le circuit d'attribution 40 comprend également une partie de mise en phase des cellules
et des ensembles.
[0078] Cette mise en phase et le déclenchement d'un ensemble sélectionné sont commandés
de façon non synchrone par un signal W_DEC provenant du bloc 14 (figure 2). Pour cela,
le signal W_DEC commande l'écriture de l'adresse de l'ensemble à mettre en phase dans
une bascule bistable 44, recevant cette adresse du CPU. Le signal W_DEC est synchronisé
sur le signal d'échantillonnage ACT par l'intermédiaire d'un verrou 45, de trois bascules
bistables 46, 47 et 48 et d'une porte NON-ET 49. Les signaux apparaissant dans cette
partie du circuit sont représentés sur la figure 10 qui permet d'en comprendre le
fonctionnement.
[0079] La sortie Q barre de la bascule 46 foumit un signal ACT_lNlT qui permet d'activer
un comparateur 50 destiné à comparer deux valeurs d'adresse, à savoir celle provenant
de la mémoire M9 et celle qui est délivrée par la bascule 44. En cas d'égalité des
deux valeurs d'adresse un signal C_INIT d'initialisation de cellule est délivré. Ce
signal est utilisé notamment dans le circuit 30 de calcul d'incréments temporels de
la figure 7 pour le multiplexeur 35.
[0080] Le circuit d'attribution 40 de la figure 8 permet également de fournir le signal
ENS_FRE utilisé aussi dans le circuit de calcul de la figure 7.
[0081] Un multiplexeur 51 permet d'envoyer sélectivement à une mémoire M10, les valeurs
d'adresse A_ENS ou les valeurs d'adresse AC en fonction de l'état de signaux d'écriture/lecture
W_ENS_FRE et R_ENS_FRE fournis par le bloc 14 de la figure 2 pour inscrire dans cette
mémoire la valeur ENS_FRE provenant du CPU à l'adresse de l'ensemble courant devant
travailler avec cette valeur d'intervalle.
[0082] La figure 11 représente un circuit 60 d'attribution d'échantillons de second niveau
permettant de regrouper sélectivement les échantillons de second niveau sur des sorties
0 à q pour générer des échantillons de troisième niveau qui, dans l'exemple décrit,
sont les échantillons de sortie de l'unité SYNT. Il y a 16 sorties dans l'exemple.
[0083] Une mémoire M11 (64 adresses soit une par ensemble sur les six bits de poids faible
du signal AC) est destinée à contenir des valeurs de répartition des échantillons
de second niveau ACC_ENS. Ces valeurs de répartition sont fournies par le CPU sous
la commande d'un signal W_SORTIE et elles peuvent être lues sous la commande d'un
signal R_SORTIE pour être transférées sur un bus de commande de répartition 61. Les
bits de ces valeurs sont appliqués respectivement à des portes logiques 62-0 à 62-q
qui reçoivent également le signal C_ENS et l'impulsion active de la sous-période P4.
[0084] Les valeurs des échantillons de second niveau ACC_ENS sont appliquées respectivement
à des unités arithmétiques U11-0 à U11-q dans lesquelles des valeurs d'échantillon
de second niveau antérieures peuvent être additionnées à des valeurs courantes de
tels échantillons. Les sommes calculées dans ces unités arithmétiques sont stockées
temporairement dans des bascules bistables 63-0 à 63-q dans lesquelles les résultats
des calculs des unités arithmétiques peuvent être écrits sous la commande des sorties
des portes respectives 62-0 à 62-q. Le contenu des bascules peut être effacé soit
par le signal d'échantillonnage ACT qui fournit aussi le signal de synchronisation
extérieur EXT_SYNC destiné à un dispositif externe (convertisseur numérique/analogique,
processeur, etc.) pour lire les sorties 63-0 à 63-q.
[0085] On a vu précédemment par la description de la figure 5, que les valeurs de paramètre
utilisées pour l'élaboration des échantillons de premier niveau peuvent être modifiées
notamment par des influences agissant sur les cellules et provenant soit de l'intérieur
de l'unité SYNT soit de l'extérieur. Autrement dit, on peut considérer que chaque
échantillon de premier niveau peut être calculé en agissant sur la cellule considérée
à partir de différentes sources.
[0086] La sélection d'une telle source est réalisée à partir du CPU qui charge à cet effet
la mémoire M4 (figure 5). Les valeurs de sélection de source stockées pour les cellules
respectives dans cette mémoire M4 sont transférées sur une sortie d'une bascule 23
activée sur l'impulsion active de la sous-période P2, sortie à laquelle apparaissent
des valeurs de commande de sélection de source ADR_CTR au moment où elles doivent
respectivement être disponibles pour opérer la sélection d'une modification de valeur
de paramètre pour la cellule courante. La figure 12 donne plus de détails du bloc
de sélection 25 qui est commun aux blocs 20A à 20D de la figure 6 et qui est commandé
par les valeurs de sélection ADR_CTR.
[0087] Dans l'exemple décrit ici, une source de modification de valeurs de paramètre peut
être constituée sélectivement soit par une autre cellule, soit par un ensemble, soit
encore par une entrée extérieure à l'unité SYNT selon le cas (signal de détection
de paramètre), le terme "entrée" désignant ici un groupe de blocs destiné à adapter
les signaux extérieurs pour une exploitation dans l'unité SYNT.
[0088] Le bloc de sélection de source ou d'entrée 25 (figure 12) comprend ainsi une première
logique de sélection 25a dont le signal de commande est formé par les bits 1 à 5 de
poids le plus fort des valeurs ADR_CTR mémorisées dans la mémoire M4 (figure 5). Ces
bits de poids le plus fort permettent de transmettre de l'entrée vers la sortie de
la logique de sélection, et ce sélectivement pour chaque cellule, l'une parmi quatre
valeurs de modification d'échantillon qui sont respectivement les signaux ACC_CEL,
ACC_ENS et ACC_DET et lN_CEL engendrés à partir des échantillons de premier niveau
(cellule)ou de second niveau (ensemble), d'un détecteur sur entrée de signal (d'amplitude,
de fréquence ou de bande) et d'une entrée de signal (voir pour plus de détails par
la suite).
[0089] Le signal de sortie ainsi sélectionné est appelé DATA_CTR qui peut être utilisé en
tant que valeur de modification de valeur de paramètre pendant le calcul ultérieur
d'un échantillon de premier niveau d'une cellule quelconque.
[0090] Les bits de la valeur ADR_CTR sont également appliquées à une seconde logique de
sélection 25b qui permet de répartir les sources de valeurs de modification selon
quatre cas.
[0091] Le premier de ces cas concerne l'accumulation pour les cellules dans une mémoire
d'accumulation M13 à l'aide d'une adresse AACC-CEL (figure 13), en provenance d'un
multiplexeur 25-1. L'adresse a normalement la valeur AC ou durant le sous-cycle P1,
elle a la valeur des bits de poids forts de la valeur ADR_CTR, lorsqu'elle détermine
une valeur entre 0 et 191. Les données DATA_CTR sont alors activées par un tampon
BX1 de la logique 25a.
[0092] Le second cas concerne la mémoire d'accumulation d'ensembles M6 de la figure 8 qui
reçoit l'adresse AACC_ENS par le multiplexeur 25-2 de la logique 25b. Cette adresse
est normalement la valeur A_ENS, mais durant le sous-cycle P1, elle a la valeur ADR_CTR,
lorsque les bits de poids fort de la valeur ADR_CTR sont situés entre 192 et 207.
Les données DATA_CTR sont alors activées par un tampon BX6.
[0093] Le troisième cas concerne la sélection de ce qu'il est convenu d'appeler des détecteurs,
par la valeur AACC_lN fournie par un multiplexeur 25-3 de la logique 25b de la figure
12. La valeur AACC_lN est déterminée par une mémoire M14 (figure 16) de sélection
d'entrées. L'adresse est normalement AIN et durant le sous-cycle P1, elle est ADR_CTR
si les bits de poids fort de ce signal déterminent une valeur comprise entre 208 et
223. Les données DATA_CTR sont alors activées par un tampon BX2 de la logique 25a.
[0094] Le quatrième cas concerne le choix des détecteurs représentés sur la figure 18 (décrite
en détail par la suite). Ce choix concerne soit un bloc 144 d'amplitude, soit un bloc
147 de fréquence, soit encore un bloc 146 de bandes. Des valeurs au delà de 224 de
ADR_CTR peuvent être utilisées pour définir ces détecteurs. Les données DATA_CTR sont
alors activées par les tampons BX3 à BX5 suivant le cas.
[0095] La figure 13 représente un schéma d'un circuit 70 de commande de sélection de mode
et de blocs d'entrée. En effet, le calcul des échantillons de premier niveau dans
les cellules peut être effectué selon un certain nombres de modes de fonctionnement
et également en fonction de signaux de sortie établis par l'un quelconque d'un certain
nombre de blocs d'entrée. Ceux-ci à leur tour peuvent établir leurs signaux de sortie
à partir de sources proprement dites qui peuvent être internes et/ou externes à l'unité
SYNT.
[0096] La détermination du choix des modes et des blocs d'entrée est faite sous la commande
du CPU qui peut à cet effet charger une mémoire M12, dite "mémoire de configuration"
avec des données apparaissant, le cas échéant, sur la sortie 13e du bloc 13 de l'interface
1 (figure 2). Ces données représentent des valeurs de détermination qui sont stockées
respectivement pour chaque cellule aux emplacements (ici 192) de la mémoire M12 où
elles peuvent être écrites ou lues sous la commande des signaux d'écriture/lecture
W_MOD et R_MOD provenant du bloc 14. Les bits de ces valeurs de détermination correspondent
aux différentes configurations que peut adopter l'unité SYNT.
[0097] Ainsi, les trois bits de poids le moins fort MOD_SC0 à MOD_SC2 sont appliqués à une
logique de sélection 71 qui selon les valeurs de ces bits peut activer huit modes
de fonctionnement mis en oeuvre respectivement dans quatre blocs d'entrée 72 à 74
qui forment des échantillons dits de niveau zéro.
[0098] Le bloc d'entrée 72 permet de mettre en oeuvre un mode de fonctionnement dans lequel
l'unité SYNT utilise des générateurs de forme d'onde qu'elle comporte elle-même. Ce
bloc sera décrit en référence à la figure 14 (signaux d'activation SC_SIN, SC_CAR,
SC_TR, SC_RMP, et SC_RMN).
[0099] Le bloc d'entrée 73 permet de mettre en oeuvre un mode de fonctionnement dans lequel
l'unité SYNT utilise son propre générateur de bruit. Ce bloc sera décrit à propos
de la figure 15.
[0100] Le bloc d'entrée 74 permet de mettre en oeuvre un mode de fonctionnement par lequel
l'unité SYNT utilise des échantillons préalablement engendrés et mémorisés (signal
SC_ECH) ou des échantillons utilisés en temps réel pouvant provenir de l'extérieur
de l'unité SYNT (signal SC_ETR). Ces deux modes seront examinés en référence aux figures
16 et 17.
[0101] Les échantillons engendrés respectivement dans les blocs 72, 73 et 74 apparaissent
sur un bus 75 selon le mode de fonctionnement sélectionné, le signal transitant sur
ce bus étant appelé CCYC. Ce signal est appliqué à un bloc de filtrage 76 dont la
structure apparaît sur la figure 19. Ce bloc fournit des échantillons affectés de
caractéristiques de filtrage prédéterminées, son signal de sortie étant désigné par
CFLT. Chaque échantillon de ce signal est appliqué à l'entrée A d'une unité arithmétique
de multiplication U12 dans laquelle sa valeur est multipliée par la valeur de paramètre
d'amplitude courante AMP appliquée à l'entrée B de cette unité arithmétique. Le résultat
de la multiplication est écrit dans une mémoire d'accumulation M13, à 192 emplacements,
à l'adresse déterminée par la valeur d'adresse AACC_CEL fournie par la logique de
sélection 25b (figure 12), sous la commande de l'impulsion active de la sous-période
P4. La mémoire M13 est à écriture seulement, l'écriture à une adresse donnée chassant
la valeur antérieure écrite vers la sortie. Le signal correspondant est représentatif
des échantillons successifs de premier niveau et appelé ACC_CEL, en tant que sortie
des cellules.
[0102] Les quatre bits de poids intermédiaire des valeurs lues dans la mémoire M12 sont
destinés à déterminer le mode de calcul sur les paramètres d'amplitude, de fréquence,
de phase et de filtrage, effectué dans l'unité arithmétique U4, respectivement de
chacun des circuits 20A à 20D de la figure 6. Leur valeur binaire place cette unité
arithmétique U4 en mode d'addition ou en mode de multiplication.
[0103] Les trois bits de poids fort issus de la mémoire M12 déterminent sélectivement les
modes de fonctionnement en continu, en répétition et en "aller-retour" de la génération
des échantillons de premier niveau issus des cellules. Ces bits sont appelés respectivement
MOD_CCY, MOD_DCY et MOD_ALT. Ces signaux seront décrits en référence aux figures 20
et 21.
[0104] On va maintenant se référer à la figure 14 pour examiner le bloc d'entrée 72. Ce
bloc d'entrée comprend quatre générateurs de fonction 81 à 84 destinés à produire
des échantillons de niveau zéro et auxquels est appliquée la valeur temporelle POS_X
calculée dans le circuit de calcul 30 de la figure 7. Il rappelle donc ici que selon
une caractéristique importante de l'invention, la valeur POS_X est en fait une valeur
d'adresse, la plupart du temps.
[0105] Le premier générateur de fonction est une table de sinus 81 dans laquelle sont mémorisées
un nombre prédéterminée de valeurs de sinus, ce nombre étant égal à 2
A, A étant égal à 10 dans l'exemple considéré. En fait, la table 81 est une mémoire
à 2
A emplacements qui peuvent être adressés par des valeurs d'adresse déterminées par
les A bits les moins significatifs de la valeur de désignation POS_X. Par exemple,
si A=10, ce sont les dix bits les moins significatifs de la valeur POS_X qui préparent
chaque échantillon de premier niveau, à savoir qu'ils déterminent la valeur de sinus
à extraire de la table 81, pour autant naturellement que ce mode de fonctionnement
soit sélectionné. La valeur d'adresse formée par la valeur POS_X courante est appliquée
à la table par la ligne 85. L'accès à la table 81 est validé par le signal SC_SIN
provenant de la logique de sélection 71 de la figure 13. Il est à noter que la valeur
de désignation POS_X peut comporter un nombre de bits bien plus grand que le nombre
A, 32 par exemple, un même jeu d'adresses de la table 81 pouvant donc être parcouru
successivement un très grand nombre de fois pendant l'incrémentation de la valeur
POS_X jusqu'à sa valeur maximale au cours du fonctionnement de l'unité SYNT.
[0106] Le générateur 82 est capable d'engendrer une forme d'onde carrée en déterminant les
instants de changement de polarité des échantillons de premier niveau à engendrer.
Le générateur 82 est activé sur le signal SC_CAR provenant de la logique de sélection
71 de la figure 13. Le changement est opéré en fonction du signe du bit le plus significatif
des A bits de la valeur courante de POS_X qui est appliquée par le conducteur 86.
Dans ce cas, POS_X ne constitue donc pas une adresse de mémoire proprement dite.
[0107] Le générateur 83 permet d'engendrer des fonctions de forme triangulaire. C'est une
fonction arithmétique calculant une oscillation triangulaire sur la base de l'adresse
sur A bits les moins significatifs du signal POS_X en tant qu'adresses d'emplacement.
Ces valeurs d'adresse lui sont appliquées par le conducteur 87. Les adresses et les
fonctions résultantes sont résumées à l'intérieur du bloc représentant le générateur
83. Ce dernier est activé sous la commande du signal SC_TRI provenant de la logique
71 de la figure 13.
[0108] Le générateur 84 est également une fonction arithmétique calculant une oscillation
en rampe positive ou négative sur la base de l'adresse sur A bits les moins significatifs
de la valeur POS_X. Une suite de valeurs ainsi stockées peut être parcourue en positif
ou en négatif sous la commande d'une paire de signaux SC_RMP et SC_RMN respectivement,
provenant de la logique 71 et appliquée à une porte ET 88. La sortie de cette porte
permet de valider l'activation de ce générateur 84, le niveau du signal SC_RMP déterminant
le sens de la suite de valeurs calculées. La fonction engendrée par les adresses est
également indiquée à l'intérieur du bloc représentant ce générateur de fonction 84.
[0109] La figure 15 représente le détail du bloc d'entrée 73 de la figure 13. Ce bloc sert
à engendrer des échantillons de premier niveau dans le cas où ceux-ci doivent présenter
des valeurs d'amplitude aléatoire. Ce bloc d'entrée 73 comprend un générateur de nombres
aléatoires 90 fonctionnant en permanence. A l'apparition d'une impulsion d'échantillonnage
ACT, le nombre engendré à l'instant correspondant est passé à une bascule bistable
91 dans laquelle il est écrit à l'apparition de l'impulsion P1 correspondante. Si
la bascule 91 est en même temps activée par le signal de validation SC_BRT, la donnée
correspondante sera sortie de la bascule 91 et la valeur de l'échantillon courant
sera basée sur cette donnée.
[0110] On va maintenant se référer à la figure 16 pour décrire une partie du bloc d'entrée
100 de l'unité SYNT, à savoir un circuit d'attribution d'entrées. Il peut y avoir
'e' entrées numérotées de 0 à e, seize entrées pouvant par exemple être prévues. Typiquement,
chaque entrée est connectée en amont à un convertisseur analogique/numérique relié
à son tour à une source de signaux analogiques (non représentée). Les sources de signaux
peuvent provenir d'instruments de musique équipés de transducteurs, d'instruments
de musique associés à un microphone, de tourne-disque, de microphones captant le spectre
sonore d'un orchestre, d'un lecteur de disques compacts etc., un très grand nombre
de telles sources pouvant être imaginées.
[0111] Les signaux présents sur les entrées 0 à e sont appelées lN_0 à lN_e. Pour pouvoir
les attribuer, le bloc d'entrée 100 comprend une mémoire M14 à 192 emplacements dans
laquelle le CPU peut écrire des valeurs d'attribution d'entrées à des adresses foumies
par le signal AC sous la commande du signal W_ETR_N provenant du bloc 14 de l'interface
I (figure 2). La lecture se fait sous la commande du signal R_ETR_N provenant également
de ce bloc 14. Les données enregistrées dans la mémoire M14 par le CPU représentent
un code d'attribution d'entrées qui est appliqué à au multiplexeur 25-3 (figure 12)
dont la sortie est connectée à un décodeur 101 ayant e sorties pouvant activer des
tampons 102-0 à 102-e dont les entrées reçoivent respectivement les signaux d'entrée
lN_0 à lN_e. Par conséquent, en fonction du contenu de la mémoire M14 et de l'état
du multiplexeur 25-3, une entrée externe pour une cellule donnée est appliquée à un
bus 103 commun à tous les tampons 102-0 à 102e. Le signal transitant sur ce bus est
appelé lN_CEL et il forme donc des échantillons dits de niveau zéro.
[0112] On notera toutefois que le signal lN_CEL, tout comme les signaux ACC_CEL, ACC_ENS
et ACC_DET, peuvent être utilisés comme valeurs de paramètre sélectionnés pour autant
qu'ils soient autorisés à passer à la sortie de la logique 25a de la figure 12 sous
la commande du signal ADR_CTR. En cas d'autorisation, la valeur de lN_CEL est acheminée
comme signal DATA_CTR pour pouvoir être combinée de façon multiplicative ou additive
avec la valeur courante d'un paramètre sous la commande du signal MODE_FCT.
[0113] La figure 17 représente le schéma d'un circuit de mémorisation d'échantillons de
niveau zéro et de sélection de l'utilisation temporelle de ces échantillons pour l'élaboration
des échantillons de premier niveau dans les cellules de l'unité SYNT.
[0114] Ce circuit comprend une mémoire d'échantillons M15 de grande capacité dans laquelle
peut être stockée une grande quantité d'échantillons de niveau zéro. A titre d'exemple,
cette mémoire peut avoir 2
32 emplacements. On notera toutefois que la mémoire M15 peut avoir une capacité plus
ou moins grande en fonction de la longueur d'un enregistrement d'échantillons successifs
que l'on veut effectuer. On notera également que cette mémoire est la seule du dipositif
selon l'invention présentant une capacité importante.
[0115] Les adresses de cette mémoire M15 proviennent d'un multiplexeur 121, à 32 bits par
exemple, comportant une entrée A à laquelle est appliqué le signal d'adresse ACPU
(figure 2) provenant de l'interface I. Ces adresses sont donc déterminées par le CPU.
Par ailleurs, l'entrée de données de la mémoire M15 d'échantillons de niveau zéro
est connectée au bloc 13 de l'interface I de sorte que le CPU peut inscrire des données
dans cette mémoire à des adresses qu'il aura lui-même fixées. Ce mode de stockage
dans la mémoire M15 permet ainsi d'utiliser en tant qu'échantillons de niveau zéro
par exemple des signaux sélectionnés graphiquement par un utilisateur sur l'écran
du CPU, le programme d'application de cette unité de gestion étant naturellement conçu
spécialement pour cette tâche, comme il est d'ailleurs bien connu dans la technique.
L'adresse ACPU est activée par les signaux W_ECH_CYC et R_ECH_CYC qui commandent respectivement
l'écriture et la lecture par un CPU.
[0116] L'autre entrée B du multiplexeur 121 est connectée à la sortie du circuit de calcul
30 de la figure 7 dont il reçoit ainsi la valeur courante de POS_X utilisée ici également
en tant qu'adresse, mais cette fois pour la mémoire M15 (valeur courante de POS_X).
Cette sortie B est sélectionnée lorsque les signaux W_ECH_CYC et R_ECH_CYC sont actifs.
En effet, ces signaux provenant du blocs 14 de l'interface I sont appliqués tous deux
à une porte OU 122 dont la sortie est reliée à l'entrée d'activation du multiplexeur
121. Si l'un ou l'autre de ces deux signaux est actif, l'entrée A du multiplexeur
121 est activée.
[0117] Par ailleurs, la commande de lecture/écriture dans la mémoire d'échantillons M15
peut sélectivement être réalisée par ces même signaux R_ECH_CYC et W_ECH_CYC. A cet
effet, le signal R_ECH_CYC est appliqué directement à l'entrée de commande de lecture
de la mémoire M15, tandis que le signal W_ECH_CYC est appliquée à une porte ET 123
dont la sortie est connectée à l'entrée de commande d'écriture de cette même mémoire.
[0118] L'autre entrée de la porte ET 123 est reliée à la sortie d'une porte OU 124. Celle-ci
reçoit sur sa première entrée le signal correspondant à l'impulsion active de la période
P1 et sur son autre entrée le signal SC_ETR qui peut être activé lorsque la donnée
dans la mémoire M12 (figure 13) désigne le mode de fonctionnement correspondant à
la sortie du décodeur 71.
[0119] La sortie de la porte OU 124 est appliquée à l'entrée d'activation d'un tampon 125.
Celui-ci reçoit sur son entrée le signal IN_CEL qui constitue la sortie du circuit
d'attribution d'entrée de la figure 16. La sortie du tampon 125 est connectée à l'entrée
de données de la mémoire d'échantillons M15.
[0120] La sortie de la porte OU 124 est également connectée à l'une des entrées de la porte
ET 123 pour permettre l'activation de l'entrée d'écriture de la mémoire M15.
[0121] Ainsi, l'écriture des échantillons de niveau zéro peut être réalisée à des adresses
qui dépendent soit du CPU par le signal ACPU sur activation par le signal W_ECH_CPU
pour l'écriture d'un échantillon dans la mémoire M15, soit par l'incrémentation de
0001 de la valeur POS_X courante. Cette sélection se fait en fonction de l'état du
signal de sélection SC_ETR permettant de placer le multiplexeur 32 dans l'une ou l'autre
de ses configurations.
[0122] Par conséquent, l'adresse à laquelle les données sont inscrites dans la mémoire M15
dépend de l'adresse spécifiée par le CPU ou de l'incrémentation par '1' de la valeur
POS_X sous la commande du signal SC_ETR. Cette demière façon d'incrémenter correspondant
en réalité à une reproduction en temps réel des échantillons de niveau zéro (d'où
le sigle ETR: Entrées en Temps Réel). Il est à noter que lorsque la mémoire M15 est
dans le mode de fonctionnement en temps réel, les données inscrites sortent simultanément
de la mémoire. Dans l'autre mode de fonctionnement, dit d'échantillonnage (ECH), les
données peuvent demeurer dans la mémoire pendant un temps prédéterminé, la mémoire
fonctionnant alors en quelque sorte comme un magnétophone.
[0123] Lorsque le signal SC_ETR est actif, la mémoire M15 est utilisée alternativement en
écriture (P1) et en lecture pour obtenir l'échantillon de niveau zéro. Lorsque le
signal SC_ECH (voir figure 13) est actif, la mémoire M15 n'est utilisée en écriture
que pour inscrire un nouvel échantillon. La mémoire est normalement utilisée en lecture,
l'échantillon étant lu de la même manière que pour la table de sinus du bloc 81 de
la figure 14, sauf que dans le cas de la mémoire M15 l'échantillon peut être modifié
en tout temps point par point et que la dimension de la table d'échantillons contenue
dans la mémoire M15 peut être prédéterminée ou choisie à volonté alors que cela n'est
pas le cas pour la table de sinus du bloc 81.
[0124] En tout état de cause, les signaux sortant de la mémoire d'échantillons M15 forment
le signal CCYC qui sont des échantillons de premier niveau non encore soumis au filtrage
dans le circuit de filtrage 160.
[0125] On va maintenant se référer à la figure 18 qui représente un circuit d'analyse des
signaux d'entrée appliqués aux entrées lN_0 à lN_e de l'unité de synthèse SYNT. On
appellera ce circuit "circuit de détection de paramètres" 140, étant donné qu'il est
destiné à déceler dans les signaux d'entrée des propriétés d'amplitude, de fréquence
et de répartition d'amplitude en fonction de la fréquence (bandes), ces propriétés,
en étant converties en signaux numériques, permettant d'ajuster les valeurs de paramètre
avec lesquelles les cellules vont travailler pour former les échantillons de premier
niveau dans l'unité de synthèse.
[0126] Les entrées du circuit de détection 140 sont connectées en parallèle aux entrées
lN_0 à lN_e de l'unité de synthèse formant ensemble le signal E de la figure 1. Par
conséquent, les entrées des circuits d'attribution de la figure 16 et de détection
de la figure 18 sont reliées respectivement en parallèle.
[0127] Le circuit de détection 140 comprend une premier groupe de détecteurs 141_0 à 141_e
permettant de déterminer la valeur absolue des amplitudes des échantillons numériques
sonores qui sont appliquées par des convertisseurs analogiques/numériques (non représentés)
sur les entrées respectives lN_0 à lN_e. Ils sont également conçus pour établir la
valeur moyenne sur un nombre d'échantillons successifs et pour fournir une valeur
numérique correspondante à leur sortie.
[0128] Le circuit de détection 140 comprend un second groupe de détecteurs 142_0 à 142_m
permettant de déterminer une valeur d'amplitude moyenne dans chacune d'une pluralité
de p bandes de fréquences des suites d'échantillons appliquées respectivement sur
les entrées lN_0 à lN_e. Ces valeurs d'amplitude moyenne apparaissent, sous forme
d'un code numérique et pour chacune des p bandes, sur une sortie déterminée 0 à p
de chaque détecteur.
[0129] De plus, le circuit de détection 140 comprend un troisième groupe de détecteurs 143_0
à 143_e chargés de déterminer des propriétés temporelles des suites d'échantillons
d'entrée et notamment les instants de passage par zéro, la moyenne de leur fréquence
et une valeur de comptage. Ces données sont présentées sous forme de codes numériques
sur chacune des sorties des détecteurs 143_0 à 143_e.
[0130] Toutes les valeurs numériques issues des détecteurs du circuit 140 peuvent sélectivement
être placées dans une mémoire d'accumulation M16 à 192 emplacements sous la commande
de l'impulsion active de la sous-période P4. Les adresses auxquelles ces valeurs sont
inscrites dans cette mémoire sont formées par les bits de poids faible du signal ADR_CTR
appliqué au bloc 25 représenté sur les figures 5 et 12. Les bits de poids fort de
ce signal déterminent respectivement la position de plusieurs sélecteurs auxquels
sont appliquées les valeurs de sortie des détecteurs. Ainsi, les sorties des détecteurs
141_0 à 141_e sont appliqués à 'e' entrées d'un sélecteur 144 en fonction d'une série
de bits d'amplitude du signal ADR_CTR. L'activation sélective de ces bits permet de
passer une sortie déterminée des détecteurs 141_0 à 141_e sur la sortie du sélecteur
qui sera alors inscrite sous la commande de l'impulsion active de la sous-période
P4 dans une partie correspondante de l'emplacement de cette mémoire désignée par la
partie d'adresses concomitante du signal ADR_CTR.
[0131] Il en est de même pour d'autres groupes de bits, formant des bits de "bandes" du
signal ADR_CTR et permettant de positionner des sélecteurs 145_0 à 145_p de telle
façon que sur leur sortie, on puisse regrouper des valeurs d'amplitude correspondant
respectivement aux diverses bandes O à p sur lesquelles travaillent les détecteurs
142_0 à 142_e. Les valeurs correspondant à ces bandes regroupées peuvent également
être sélectionnées à l'aide d'un sélecteur 146 qui reçoit sur ses entrées D0 à De
les valeurs ainsi regroupées. La sortie du sélecteur 146 forme une partie du signal
numérique envoyé dans les emplacements de la mémoire M16. Enfin, un sélecteur 147
permet à l'aide des bits de fréquence du signal ADR_CTR d'attribuer les valeurs numériques
de sortie des détecteurs 143_0 à 143_e aux divers emplacements de mémoire de la mémoire
M16.
[0132] Par conséquent, celle-ci peut contenir pour chacune des cellules de l'unité SYNT
une valeur numérique dont les données mémorisées représentent les valeurs des paramètres
d'amplitude et de fréquence des échantillons numériques appliqués de l'extérieur à
l'unité SYNT.
[0133] Comme représenté sur la figure 5, les valeurs de paramètre ainsi relevées sur le
signal d'entrée peuvent être utilisées pour intervenir dans le calcul des valeurs
des paramètres (valeur VAL) pour autant qu'à l'instant considéré le signal ACC_DET
soit autorisé à passer à la sortie du bloc 25a de la figure 12 sous la commande du
signal ADR_CTR provenant du CPU comme représenté sur la figure 2. On rappellera que
le signal DATA_CTR peut être combinée additivement ou de façon multiplicative à la
valeur courante d'un paramètre sous la commande du signal MODE_FCT qui est appliqué
à l'unité arithmétique U4 de la figure 5, ce signal MODE_FCT étant lui-même sélectionné
par l'intermédiaire du contenu de la mémoire M12 (figure 13) chargée par le CPU.
[0134] On voit donc que l'élaboration des échantillons de premier niveau dans les cellules
peut être déterminée par quatre jeux de valeurs de paramètre contenues respectivement
dans les signaux ACC_CEL, ACC_ENS, ACC_DET et IN_CEL, comme cela ressort de la figure
12.
[0135] La figure 19 représente le circuit de filtrage 160 permettant d'appliquer un filtrage
approprié au signal CCYC comme représenté par le bloc 76 de la figure 13.
[0136] Ce circuit comporte un séquenceur 161 des fonctions de filtrage qui reçoit le signal
CCAL de l'interface 1 (figure 2) pour faire tourner un compteur de séquence et le
signal FLT du circuit de la figure 5 en tant que paramètre déterminant le filtrage
en sélectionnant ultimement des coefficients de filtrage dans une mémoire M18. Ce
signal détermine en fait une adresse d'une table dans laquelle est contenue une courbe
de coefficients de filtrage prédéterminée. Le séquenceur détermine ainsi un code d'opération
de filtrage apparaissant sur sa sortie 161a. Le séquenceur est également capable d'engendrer
deux types de valeurs d'adresse apparaissant sur ses sorties 161c et 161b respectivement
[0137] La valeur d'adresse de la sortie 161b est appliquée à une mémoire M17 de calculs
de filtrage. Cette mémoire M17 présente un nombre prédéterminé d'emplacements, par
exemple 16384. La sortie d'adresse 161c est appliquée à l'entrée B d'un multiplexeur
162 dont l'entrée A peut recevoir directement des valeurs d'adresse du bloc 12 de
l'interface I. Ces valeurs sont inscrites par le CPU pour caractériser ces filtres
(coefficients) dans une mémoire M18. Le processus de filtrage permet de lire ces données
pour le calcul.
[0138] La sélection de l'entrée B du multiplexeur 162 est réalisée sous la commande de la
sortie d'une porte ET 163 qui s'ouvre à la condition que l'un de trois signaux soit
présent, à savoir le signal de lecture R_FLT_COEF, le signal d'écriture W_FLT_COEF
ou un signal de commande de lecture de coefficient constituant une sortie 164a d'un
bloc 164 de détermination de fonction de filtrage IIR.
[0139] La sortie du multiplexeur 162 est appliquée à la mémoire M18 de coefficients de filtrage.
Cette mémoire reçoit ses données directement du CPU. Ces données sont inscrites aux
adresses appropriées sous la commande d'un signal d'écriture provenant d'une porte
ET 165. Une première entrée de cette porte ET est connectée au bloc 14 de l'interface
I (signal de lecture R_FLT_COEF), son autre entrée étant reliée à la sortie 164a du
bloc 164 de détermination de fonctions de filtrage.
[0140] La sortie de données de la mémoire M18 de coefficients de filtrage est appliquée
à une entrée 164b du bloc 164. Pour la lecture de coefficients, l'entrée et la sortie
de données de la mémoire M17 de calculs de filtrage sont respectivement connectées
à la sortie 164c et à l'entrée 164d du bloc 164. Ce dernier reçoit le code d'opération
du bloc 161 sur son entrée 164e. La lecture dans la mémoire M17 est commandée par
un signal provenant de la sortie 164f, tandis que la commande d'écriture provient
de la sortie 164g du bloc 164.
[0141] Enfin, ce bloc 164 comporte une entrée 164h à laquelle est appliquée le signal CCYC
issu sélectivement des blocs 72, 73 et 74 de la figure 13, tandis que les échantillons
"filtrés" achevés apparaissent à la sortie 164i du bloc 164. On notera que la mémoire
17 permet de stocker temporairement les données intermédiaires de calcul de filtrage,
ces données produisant le signal filtré sur la sortie 164i, soit le signal CFLT qui
est le signal utilisé dans la figure 13 pour déterminer l'échantillon de niveau 1.
Le code d'opération permet de commander les transitions des signaux entre les entrées
et les sorties du bloc 164.
[0142] On va maintenant se référer aux figures 20 et 21 pour décrire le circuit 180 de détermination
des bornes temporelles de certains processus de production des échantillons. Ces processus
de production sont le mode d'échantillons, lorsque l'unité SYNT travaille avec des
échantillons provenant de la mémoire M15 de la figure 17 et le mode d'échantillons
en temps réel. La validation du circuit de détermination 180 est donc assurée au moment
opportun par l'un ou l'autre des signaux SC_ECH ou SC_ETR appliquées à une porte ET
181 représentée en haut de la figure 20.
[0143] Le circuit de détermination 180 comprend une mémoire M19 dans laquelle peuvent être
stockées des valeurs d'instants de début (c'est-à-dire des valeurs représentant un
instant prédéterminé sur l'axe des temps par accumulation d'un nombre déterminé de
valeurs analogues à des valeurs POS_X) d'une suite d'échantillons déterminés représentant
par exemple une note à jouer. Cette mémoire M19 comporte 192 emplacements et elle
peut donc être chargée avec une valeur d'instant de début pour chacune des cellules.
La valeur d'adresse est formée par le signal AC et les données sont inscrites/lues
dans la mémoire à partir de l'unité de gestion CPU sous la commande des signaux W_ECH_DEB/R_ECH_DEB.
[0144] Une autre mémoire M20, également à 192 emplacements permet de stocker d'une façon
analogue des instants de fin d'une suite d'échantillons. Les données sont écrites/lues
dans cette mémoire par les signaux W_ECH_FIN/R_ECH_FIN. Le circuit de détermination
comporte également deux mémoires M21 et M22, à 192 emplacements dans lesquelles peuvent
être stockées des valeurs de "boucle", plus précisément des valeurs temporelles représentant
un instant de début de boucle et un instant de fin de boucle, le terme boucle devant
être compris ici comme étant une répétition cyclique d'une même suite d'échantillons
par une ou plusieurs cellules. Les mémoires M21 et M22 peuvent être écrites et lues
sous la commande respective des signaux W_ECH_B1/R_ECH_B1 et W_ECH_B2/R_ECH_B2. Les
données proviennent chaque fois du CPU.
[0145] Chaque mémoire M19 à M21 est associée à un comparateur, respectivement 182 à 185
dont chaque fois l'entrée A est reliée à la sortie de données de la mémoire associée
et dont l'entrée B reçoit la valeur courante de POS_X. Les comparateurs 182 et 184
fournissent un signal de validation lorsque leur entrée B est inférieure ou égale
à leur entrée A et les comparateurs 183 et 185 fournissent un tel signal lorsque l'entrée
B est supérieure ou égale à l'entrée A.
[0146] Les sorties des comparateurs 182 à 185 sont raccordées respectivement à des logiques
d'activation 186 à 190 recevant chacun plusieurs signaux qui y sont combinés logiquement
pour assurer le cas échéant l'activation de tampons de sortie 192 à 195 dont les sorties
peuvent fournir sélectivement la valeur lNlT_X qui est une valeur particulière d'initialisation
à partir de laquelle POS_X est ensuite incrémentée par les valeurs de désignation
calculées dans le circuit de calcul 30.
[0147] Les logiques d'activation 186 à 191 reçoivent également les signaux de mode MOD_CCY,
MOD_DCY et MOD_ALT qui sont contenues dans les données de sortie de la mémoire M12
de la figure 13.
[0148] Un autre tampon de sortie 196 permet de fixer la valeur lNlT_X à zéro lorsque l'un
au l'autre des signaux SC_ECH ou SC_ETR sont inactifs, à travers un inverseur 197.
[0149] Le circuit de détermination des bornes 180 comprend également une mémoire de signe
M23 à 192 emplacements dans laquelle peut être inscrit le signe déterminant le sens
de progression de la valeur POS_X. Cette mémoire M23 est adressée par le signal AC
et reçoit le bit de signe à mémoriser pour les cellules d'un multiplexeur 198. Celui-ci
reçoit comme signal de sélection le signal C_lNlT du comparateur 50 de la figure 8.
Ce signal passe le signe approprié vers la sortie du multiplexeur lorsque le signal
C_lNlT est actif. Sinon le signal de signe provient d'une porte logique 199 qui combine
logiquement la sortie de la mémoire M23 avec le signal de mode MOD_ALT. Lorsque ce
dernier est actif (0'), le signe change à chaque écriture dans la mémoire M23.
[0150] Un autre multiplexeur 200 est commandé par ce même signal de mode MOD_ALT pour établir
sélectivement le signal SGN utilisé dans le bloc 34 du circuit de calcul 30 de la
figure 7. L'entrée A de ce multiplexeur reçoit un signal T_DIR et l'entrée B le signal
de mode MOD_DCY.
[0151] On notera encore que les tampons 194 et 195 sont rendus actifs par l'intermédiaire
de portes ET respectives 201 et 202 et que l'écriture dans la mémoire M23 est commandée
par l'intermédiaire d'une logique 203.
[0152] Le tampon 192 fixe la borne au point ou à l'instant de début E_DEB de la suite d'échantillons,
lorsque POS_X atteint l'adresse de début E_DEB ou moins sur le comparateur 182 dans
le cas d'un mode non cyclique (MOD_CCY=1) décroissant (MOD_DCY=0), la sélection étant
effectuée par la porte 186.
[0153] Le tampon 193 fixe la borne au point de fin E_FIN de la suite d'échantillons, lorsque
POS_X atteint l'adresse de fin E_FIN ou plus sur le comparateur 183 dans le cas d'un
mode non cyclique(MOD_CCY=1) croissant (MOD_DCY=1), la sélection étant faite par la
porte 187.
[0154] Le tampon 194 fixe la borne au point de boucle-1 E_B1 d'une suite d'échantillons
en boucle, lorsque la valeur POS_X atteint l'adresse boucle-2 E_B2 ou plus sur le
comparateur 185 dans le cas d'un mode cyclique (MOD_CCY=0), croissant (MOD_CCY=1)
et non alternatif (MOD_ALT=1), la sélection étant effectuée par les portes 191 et
201. Cette mise à valeur s'applique aussi dans le cas d'un mode cyclique (MOD_CCY=0)
alternatif (MOD_ALT=0), mais en décrémentation (T_DIR=0), lorsque la valeur POS_X
atteint l'adresse boucle-1 E_B1 ou moins sur le comparateur 184, la sélection étant
effectuée par les portes 188 et 201. En mode alternatif, la valeur de T_DIR sera mise
à 0 par la porte 203, lors de la fixation de la borne E_B1 pour mettre la progression
en décrémentation.
[0155] Le tampon 195 fixe la borne au point de boucle-2 E-B2 de la suite d'échantillons,
lorsque la valeur POS_X atteint l'adresse boucle-1 E_B1 ou moins sur le comparateur
184 dans le cas d'un mode cyclique (MOD_CCY=0), décroissant (MOD_DCY=0) et non alternatif
(MOD_ALT=1), la sélection étant effectuée par les portes 189 et 202. Cette mise à
valeur s'applique aussi dans le cas d'un mode cyclique (MOD_CCY=0), alternatif (MOD_ALT=0)
et en incrémentation (T_DIR=1), lorsque la valeur POS_X atteint l'adresse boucle-2
E_B2 ou plus sur le comparateur 185, la sélection étant effectuée par les portes 190
et 202.
[0156] La fixation des bornes s'effectue par le signal lNlT_X acheminé au multiplexeur 35
de la figure 7, qui réinitialise la valeur POS_X par la commande CD_lNlT issue de
la porte 208.
[0157] Comme représenté sur la figure 21, le signal lNlT_X peut également être produit sélectivement
par la sortie de deux tampons 204 et 205 qui reçoivent respectivement les signaux
E_DEB et E_FIN des mémoires M19 et M20. Ces tampons sont activés par la combinaison
logique appropriée des signaux C_lNlT (mise en phase), le signal de mode MOD_DCY et
le signal de sortie de la porte OU 181, cette combinaison logique étant assurée par
des portes OU 206 et 207.
[0158] Le tampon 204 fixe la valeur (ou position) initiale de POS_X sur l'activation de
C_lNlT et des signaux de mode SC_ECH/SC_ETR. Lorsque MOD_DCY=1 (croissant), le point
de début E_DEB constitue la valeur d'initialisation transmise à lNlT_X, si MOD_DCY=0
(décroissant) et le point de fin E_FIN constitue la valeur initiale transmise à lNlT_X.
Ce dernier signal est alors sélectionné sur le multiplexeur 35 de la figure 7 pour
initialiser la valeur POS_X.
[0159] On notera encore que le signal C_lNlT passe par une porte ET 208 que l'on aperçoit
en haut sur la figure 20. Cette porte fournit le signal CD_lNlT.
[0160] On va maintenant décrire le fonctionnement de ce circuit de détermination des bornes
temporelles.
[0161] Lorsque une cellule est mise en phase, au début d'une nouvelle note à jouer par exemple,
la valeur POS_X doit être mise à sa valeur initiale par l'intermédiaire du multiplexeur
35 du circuit de calcul 30 de la figure 7.
[0162] Lorsque l'unité SYNT est placée dans l'un des modes commandés respectivement par
les signaux SC_SIN, SC_CAR, SC_TRI, SC_RMP ou SC_RMN, la valeur initiale lNlT_X de
POS_X est égale à zéro. Cette valeur passe par le tampon 196 qui est activée en l'absence
de l'un ou l'autre des signaux SC_ECH ou SC_ETR.
[0163] Par contre, lorsque l'un ou l'autre mode SC_ECH ou SC_ETR est commandé, la valeur
lNlT_X est déterminée par un instant de départ d'une cellule donnée sur l'axe des
temps. La valeur temporelle correspondante est la valeur E_DEB stockée pour la cellule
considérée dans la mémoire M19, si l'incrément de la valeur POS_X doit être positif
(signal MOD_DCY=1). Dans le cas où cet incrément est négatif (signal MOD_DCY=0), la
valeur initiale est la valeur E_FIN stockée dans la mémoire M20 pour la cellule considérée.
[0164] Pour chaque cellule, une suite d'échantillons de premier niveau peut être délimitée
dans le temps par des bornes temporelles entre lesquelles la valeur POS_X peut évoluer,
soit en s'incrémentant, soit en se décrémentant, soit encore en faisant une "boucle",
ce qui revient à répéter un certain nombre de fois la même suite d'échantillons. Une
telle répétition en boucle peut aussi se faire de plusieurs façons: "en avant", "en
arrière" ou en alternance "en avant" et "en arrière".
[0165] Bien entendu, les valeurs POS_X ainsi délimitées constituent chaque fois une adresse
pour la mémoire M15 de la figure 17 qui stocke des valeurs d'échantillons à reproduire
soit en temps réel (Mode ETR), soit à partir d'échantillons qui y ont été stockées
auparavant (Mode ECH).
[0166] On va maintenant examiner plusieurs cas qui peuvent se produire pour chaque cellule
ou pour certaines d'entre elles seulement pendant la production des échantillons de
premier niveau dans les modes de fonctionnement que l'on vient d'évoquer.
1) Suite d'échantillons; incrémentation de POS_X
[0167] Dans ce cas, au début (c'est-à-dire à la mise en phase), la mémoire M15 d'échantillons
est adressée avec la valeur E_DEB. Puis, l'adresse augmente progressivement avec l'incrémentation
de la valeur POS_X calculée dans le circuit de calcul 30 en fonction des valeurs de
fréquence FRE et ENS_FRE qui sont imposées à ce circuit de calcul, et ce d'une façon
analogue à celle déjà décrite à propos des générateurs de forme d'onde de la figure
14.
[0168] Lorsqu'ensuite la valeur POS_X atteint ou dépasse la valeur E_FIN stockée dans la
mémoire M20, elle n'augmentera plus et restera à cette valeur jusqu'à ce qu'une nouvelle
mise en phase soit demandée (nouvelle note).
[0169] Le processus est alors le suivant:
[0170] MOD_CCY=1, ce qui signifie que la suite d'échantillons de premier niveau est non
cyclique et MOD_DCY=1, ce qui signifie que les incréments de POS_X sont positifs.
[0171] Pendant que POS_X<E_FIN, POS_X s'incrémente de la valeur imposée, aucune commande
n'étant assurée par les signaux lNlT_X ou CD_lNlT.
[0172] Lorsque POS_X>=E_FIN, POS_X sera maintenue à la valeur de E_FIN en fixant les valeurs
des signaux lNlT_X et CD_lNlT. Pour cela, la sortie du bloc logique 187 doit être
à '0'; par conséquent, la sortie de la porte 181 doit être à '0' (SC_ECH ou SC_ETR=0),
la sortie du comparateur 183 doit être à '1' (comparaison vraie qui est inversée à
l'entrée du bloc logique 187) et Non[MOD_CCY et MOD_DCY]=0.
[0173] Le tampon 193 est activé par l'état du bloc logique 187 et transmet E_FIN sur le
bus qui transmet lNlT_X vers le circuit de calcul 30. CD_lNlT active l'initialisation
par l'état de la porte 208 dont la sortie est à '0' par l'intermédiaire de la sortie
du bloc logique 187.
2) Suite d'échantillons, décrémentation de POS_X.
[0174] A la mise en phase, la mémoire M15 est adressée par la valeur E_FIN. POS_X décrémente
progressivement à partir de cette valeur en fonction de la fréquence, par décréments
calculés dans le circuit de calcul 30 et lorsque POS_X<=E_DEB, sa valeur ne décrémentera
plus et conservera la valeur E_DEB jusqu'à ce que une nouvelle mise en phase soit
demandée (nouvelle note).
[0175] Pour cela: MOD_CCY=1 (non cyclique) et MOD_DCY=0 (progression de POS_X par décréments).
[0176] Les mémoires M20 et M19 contiennent respectivement les valeurs E_FIN et E_DEB. Le
comparateur 182 compare E_DEB avec la valeur courante de POS_X, le bloc logique 186
commande l'initialisation de POS_X et le tampon 192 transmet la valeur E_DEB au bus
transmettant lNlT_X vers le circuit de calcul 30.
[0177] Ainsi, lorsque POS_X>E_FIN, POS_X décrémente progressivement en fonction de la fréquence,
aucune commande n'est assurée par INIT_X ou CD_INIT.
[0178] Lorsque POS_X<=E_FIN, POS_X sera mis à la valeur E_DEB par la commande assurée par
lNlT_X et CD_INIT.
[0179] La sortie du bloc logique 186 doit être à '0'. Pour cela, la sortie de la porte 181
est à '0' (SC_ECH=0 ou SC_ETR=0), la sortie du comparateur 182 est à '1' (comparaison
vraie qui est inversée à l'entrée du bloc logique 186) et Non[MOD_CCY et NON(MOD_DCY)]=0.
Alors, le tampon 192 est activé par l'état du bloc 186 et transmet la valeur E_DEB
sur le bus de lNlT_X vers le circuit de calcul 30. CD_lNlT actionne l'initialisation
par l'état de la porte 208 dont la sortie vaut'0' par suite de l'état logique du bloc
186.
3) Suite cyclique d'échantillons, incrémentation de POS_X
[0180] Au départ, la mémoire M15 est adressée par la valeur de E_DEB qui s'incrémente progressivement
comme dans le cas 1, mais cette fois, lorsque la valeur POS_X atteint ou dépasse la
valeur E_B2 stockée dans la mémoire M22, elle sera mise à la valeur E_B1, la valeur
POS_X s'incrémente de nouveau jusqu'à la valeur E_B2, ainsi de suite.
[0181] Dans ce mode de fonctionnement: MOD_CCY=0 (Cyclique), MOD_DCY=1 (incrémentation)
et MOD_ALT=1 (non alternatif, la boucle est parcourue toujours dans le même sens).
[0182] Les mémoires M19 à M22 contiennent respectivement les valeurs E_DEB, E_FIN, E_B1
et E_B2. Le comparateur 185 compare la valeur E_B2 à la valeur courante de POS_X.
Le bloc logique et la porte ET 201 commandent l'initialisation de POS_X et le tampon
194 transmet la valeur E_B1 sur le bus qui transmet INIT_X vers le circuit de calcul
30.
[0183] Ainsi, lorsque POS_X<E_B2, POS_X s'incrémente en fonction des valeurs de fréquence
FRE et ENS_FRE par le circuit de calcul 30, les signaux INIT_X et CD_INIT n'ayant
aucun effet
[0184] Lorsque POS_X>=E_B2, POS_X sera mis à la valeur E_B1 sous la commande des signaux
INIT_X et CD_lNlT. Pour cela, la sortie du bloc logique doit être à '0', ce qui fait
que la sortie de la porte OU doit être à '0' (SC_ECH=0 ou SC_ETR=0), la sortie du
comparateur doit être à '1' (comparaison vraie avec inversion à l'entrée du bloc logique
191) et [MOD_CCY ou Non(MOD_DCY) ou Non(MOD_ALT)]=0. La sortie de la porte 201 est
à '0', si les sorties du bloc 188 ou la sortie du bloc 191 sont à '0'.
[0185] Le tampon 194 est alors activé par l'état de la porte ET 201 et transmet la valeur
E_B1 sur le bus sur lequel passe lNlT_X. L'initialisation est activée par l'état de
la porte 208 dont la sortie sera à '0' par l'état de la porte 201. Ainsi POS_X est
de nouveau initialisé à la valeur E_B1, ce qui remplit la condition POS_X<E_B2 et
le cycle recommence.
4) Suite cyclique d'échantillons, décrémentation de POS_X
[0186] A la mise en phase, la valeur E_FIN adresse la mémoire M15 et cette valeur décrémente
progressivement en fonction de la fréquence (signaux FRE et ENS_FRE). Lorsque POS_X<=E_B1,
sa valeur sera mise à E_B2, puis POS_X continuera à se décrémenter jusqu'à E_B1 et
ainsi de suite.
[0187] Les mémoires M19, M20, M21 et M22 contiennent respectivement les valeurs E_DEB, E_FIN,
E_B1 et E_B2. Le comparateur 184 compare E_B1 à la valeur courante de POS_X; le bloc
logique 189, ainsi que la porte ET 202 commandent l'initialisation de POS_X et le
tampon 195 transmet la valeur E_B2 sur le bus sur lequel transite INIT_X vers le circuit
de calcul 30.
[0188] Lorsque POS_X>E_B1, POS_X se décrémente progressivement en fonction de la fréquence
et il n'y a pas de commande assurée par les signaux INIT_X et CD_lNlT.
[0189] Lorsque POS_X <=E_B1, POS_X sera mis à la valeur de E_B2 sous la commande de ces
deux signaux. Pour cela, la sortie du bloc logique 189 doit être à '0'. Par conséquent,
la sortie de la porte ET 181 doit être à 0 (SC_ECH=0 ou SC_ETR=0), la sortie du comparateur
184 doit être égale à '1' (comparaison vraie, inversée à l'entrée du bloc logique
189) et [MOD_CCY ou MOD_DCY ou non(MOD_ALT)]=0. La sortie de la porte ET 202 sera
égale à '0', si les sorties du bloc 189 ou du bloc 190 sont égales à '0'. Le tampon
195 est alors activé par l'état de la porte ET 202 et la valeur E_B2 est transmise
vers le circuit de calcul 30 via le bus de transfert de lNlT_X. CD_lNlT active la
porte ET 208 dont la sortie sera à '0' par la sortie de la porte ET 202. POS_X est
initialisé à E_B2 ce qui rétablit la condition POS_X>E_Bi.
5) Suite cyclique et alternative d'échantillons, POS_X s'incrémenté, puis se décrémente)
[0190] La mémoire M15 est adressée au départ par la valeur E_DEB qui s'incrémente progressivement
en fonction des signaux FRE et ENS_FRE, puis lorsque POS_X>=E_B2 (premier instant
limite de la boucle), sa valeur sera mise à E_B2 (second instant limite de la boucle)
et la valeur se décrémentera progressivement jusqu'à ce qu'elle atteigne de nouveau
la valeur E_B1. Ensuite, lorsqu'elle aura atteint E_B1, sa valeur sera mise à E_B1
et la valeur POS_X s'incrémentera jusqu'à atteindre E_B2 et ainsi de suite.
[0191] Pour cela MOD_CCY=0 (cyclique), MOD_DCY=1 (progression par incréments lors de la
mise en phase), MOD_ALT=0 (alternance de sens de progression) et T_DIR=1 (mise à MOD_DCY
par l'intermédiaire du multiplexeur 198 et la sélection effectuée par le signal C_lNlT).
[0192] Les mémoires M19 à M22 contiennent respectivement les valeurs E_DEB, E_FIN, E_B1
et E_B2. Les comparateurs 184 et 185 comparent respectivement les valeurs E_B1 et
E_B2 avec la valeur courante de POS_X. Le bloc logique 190 et la porte 202 commandent
l'initialisation de POS_X avec un sens d'incrémentation déterminé par T_DIR, tandis
que le bloc logique 188 et la porte ET 201 commandent l'initialisation de POS_X avec
un sens de décrémentation déterminé par T_DIR=1.
[0193] Le bloc logique 203 et le multiplexeur 198 commandent le sens d'incrémentation/décrémentation
par l'intermédiaire du signal T_DIR.
[0194] Le tampon 194 fait passer la valeur E_B1 sur le bus de transfert lNlT_X grâce à la
commande d'initialisation (fin des incréments) et le tampon 195 transmet la valeur
E_B2 sur ce même bus pour l'initialisation de fin de décrémentation.
[0195] Dans ces conditions, lorsque T_DIR=1, la valeur POS_X s'incrémente, car POS_X<E_B2.
Il n'y a pas de commande d'initialisation par lNlT_X ou CD_INIT.
[0196] Lorsque T_DIR=1, il faut pour initialiser que POS_X>=E_B2. POS_X sera mise à la valeur
E_B2 par commande de lNlT_X et CD_lNlT. La sortie du bloc logique 190 est à '0', car
la sortie de la porte ET 181 est à '0' (SC-ECH=0 ou SC_ETR=0), la sortie du comparateur
185 est à '1' (comparaison vraie inversée en entrée du bloc logique 190), [MOD_CCY
ou non(T_DIR) ou MOD_ALT]=0. La sortie de la porte ET 202 est à '0', si la sortie
du bloc logique 189 ou le bloc logique 190 est à '0'. Le tampon 195 est activé par
la sortie à '0' de la porte ET 202 et transmet ainsi la valeur E_B2 sur le bus de
transfert de lNlT_X vers le circuit de calcul 30.
[0197] Le signal C_lNlT activera l'initialisation par l'état de la porte ET 208. La sortie
de celle-ci (C_lNlT) est donc à '0' par la sortie de la porte ET 202.
[0198] Le bloc logique 203 est activé par la sortie du bloc logique 190 et la période P1
forcera une inversion du bit de sens T_DIR sur la mémoire M23, ce qui active le mode
de décrémentation (T_DIR=0: décrémentation).
[0199] Ensuite, lorsque T_DIR=0, la valeur POS_X se décrémente, car POS_X>E_B1. Il n'y a
pas de commande d'initialisation par INIT_X ou CD_INIT.
[0200] Lorsque T_DIR=0, il faut pour initialiser que POS_X<=E_B1. POS_X sera mise à la valeur
E_B1 par commande de lNlT_X et CD_lNlT. La sortie du bloc logique 188 est à '0', car
la sortie de la porte ET 181 est à '0' (SC-ECH=0 ou SC_ETR=0), la sortie du comparateur
184 est à '1' (comparaison vraie inversée en entrée du bloc logique 188), [MOD_CCY
ou (T_DIR) ou MOD_ALT]=0. La sortie de la porte ET 201 est à '0', si la sortie du
bloc logique 188 ou le bloc logique 191 est à '0'. Le tampon 194 est activé par la
sortie à '0' de la porte ET 201 et transmet ainsi la valeur E_B1 sur le bus de transfert
de lNlT_X vers le circuit de calcul 30.
[0201] Le signal C_lNlT activera l'initialisation par l'état de la porte ET 208. La sortie
de celle-ci (CD_lNlT) est donc à '0' par la sortie de la porte ET 201.
[0202] Le bloc logique 203 est activé par la sortie du bloc logique 188 et la période P1
forcera une inversion du bit de sens T_DIR sur la mémoire M23, ce qui active le mode
d'incrémentation (T_DIR=1: incrémentation).
[0203] On va maintenant décrire un premier exemple de fonctionnement du dispositif de synthèse
sonore.
[0204] On suppose que dans ce cas, le dispositif de synthèse doit engendrer un son de forme
sinusoïdale à une fréquence de 440 Hz avec une valeur d'amplitude que l'on fixera
arbitrairement à 100 (valeur donnant après la sortie S un volume sonore donné).
[0205] On admettra par ailleurs que le nombre n de cellules est de 192, le nombre m d'ensembles
est de 16 (il était de 64 dans l'exemple décrit ci-dessus) et le nombre q de sorties
également de 16. La courbe sinusoïdale dans la table 81 (figure 15) est définie moyennant
1024 échantillons. L'horloge de base 2 de la figure 2 est à 67,737 MHz et la fréquence
d'échantillonnage est de 44 100 Hz (signal ACT), soit 67 737/8(compteur 3 figure 2)/192.
[0206] L'unité SYNT est initialisée par l'unité CPU par l'intermédiaire de l'interface I.
A cet effet, le CPU inscrit dans plusieurs mémoires des données appropriées pour l'exemple
considéré.
[0207] Tout d'abord le CPU met en place la structure de l'unité SYNT nécessaire pour la
production sonore envisagée. ainsi:
- Ensemble 0; les contenus des cellules 0 à 191 sont acheminés sur l'ensemble 0. Pour
cela, la valeur '0' est inscrite par le signal AC aux adresses 0 à 191 de la mémoire
M9 (figure 8) sous la commande du signal d'écriture W_ENS_CEL. A noter que les cellules
1 à 191 seront inactives mais restent associées à l'ensemble 0.
[0208] Pour que le circuit d'acheminement des cellules sur l'ensemble (figure 8) complète
l'addition des cellules sur l'ensemble 0 (dans l'exemple, seule la cellule 0 est active),
pour un système à 16 ensembles, la valeur hexadécimale '10' doit être inscrite à l'adresse
'0' de la mémoire M9 par le signal W_ENS_CEL. Cela fixe la cellule 0 comme la dernière
cellule à additionner dans l'ensemble (bit C_ENS=1, soit le 5ième bit de la valeur
correspondante), et alloue l'accumulation de la valeur sur l'additionneur U10 (bit
C_SEL actif=0, soit le quatrième bit de la valeur correspondante).
- Volume ensembles; tous les ensembles sont mis sur la valeur d'amplitude '0'. Pour
cela, la valeur '0' est inscrite aux adresses 0 à 16 de la mémoire M8 (figure 8) à
l'aide du signal d'écriture W_ENS_AMP.
- Sortie 0; le contenu de l'ensemble 0 doit être acheminé sur la sortie 0. Pour cela,
la mémoire 11 (figure 11) reçoit une valeur binaire '1' à l'adresse '0' sous la commande
du signal d'écriture W_SORTIE, de sorte que la bascule 63-0 sera activée par la valeur '1' du bit 0 appliquée
à la porte 62-0 et ce, pendant l'impulsion active de la sous-période P4.
[0209] Ensuite, le CPU va déterminer les paramètres qui seront en vigueur pendant la production
sonore de la façon suivante.
a) PARAMETRE D'AMPLITUDE
[0210] Les valeurs d'amplitude sont toutes fixées à zéro. Pour cela, la valeur '0' est inscrite
aux adresses 0 à 191 de la mémoire M1 du circuit 20A (figures 5 et 6) par le signal
d'écriture W_AMP_BAS. La valeur 'maximum' est inscrite dans la mémoire M2 de ce même
circuit 20A par le signal d'écriture W_AMP_INC afin de supprimer l'interpolation sur
les valeurs d'amplitude (modalité choisie ici à titre d'exemple). La valeur 'maximum'
est inscrite dans la mémoire M4 par le signal d'écriture W_AMP_CTR, car dans l'exemple
aucune commande d'amplitude à partir d'autres sources n'est effectuée. 'Maximum' est
la valeur maximale possible; sur 16 bits par exemple, elle est de 65535 (ou en hexadécimal
ØFFFF).
b) PARAMETRE DE FREQUENCE
[0211] La valeur de base de la fréquence est fixée arbitrairement à '1000' (en entiers base
10) pour toutes les cellules; cette valeur '1000' est donc inscrite à tous les emplacements
de la mémoire M1 du bloc 20B de la figure 6, à l'aide du signal d'écriture W_FRE_BAS.
[0212] La valeur 'maximum' est inscrite à tous les 192 emplacements de la mémoire M2 de
ce bloc 20B pour désactiver l'interpolation, à l'aide du signal d'écriture W_INC_FRE.
[0213] La valeur 'maximum' est inscrite par le signal W_FRE_CTR dans la mémoire M4 à tous
les emplacements, aucune commande de fréquence supplémentaire n'étant prévue dans
cet exemple.
[0214] La valeur 'maximum' est ici la valeur maximale possible, sur 24 bits par exemple,
elle est de 16 777 215 (ou en hexadécimal ØFFFFFF)
c) PARAMETRE DE PHASE
[0215] La valeur de base de la phase est fixée à '0'; '0' est donc inscrit à tous les emplacements
0 à 191 de la mémoire M1 du bloc 20C de la figure 6, à l'aide du signal d'écriture
W_PHA_BAS.
[0216] La valeur 'maximum' est inscrite à tous les emplacements de la mémoire M2 de ce même
bloc 20C afin de désactiver l'interpolation sur les valeurs de phase, à l'aide du
signal d'écriture W_PHA_INC.
[0217] La valeur 'maximum' est inscrite à tous les emplacements de la mémoire M4 de ce même
bloc 20C, à l'aide du signal d'écriture V_PHA_CTR pour désactiver toute commande supplémentaire
sur le paramètre PHASE.
[0218] La valeur 'maximum' est ici la valeur maximale possible, sur 9 bits par exemple,
elle est de 511 (ou en hexadécimal 1FF).
d) PARAMETRE FILTRE
[0219] Tous les filtres sont rendus inactifs. La valeur 'maximum' est donc inscrite à tous
les emplacements de la mémoire M1 du bloc 20D de la figure 6, à l'aide du signal d'écriture
W_FLT_BAS.
[0220] La même valeur est inscrite à tous les emplacements de la mémoire M2 du bloc 20D,
à l'aide du signal d'écriture W_FLT_INC pour désactiver toute interpolation du paramètre
FLT.
[0221] La valeur 'maximum' est également inscrite dans tous les emplacements de la mémoire
M4 à l'aide du signal d'écriture W_FLT_CTR pour désactiver toute commande supplémentaire
sur le paramètre FILTRAGE. 'Maximum' est ici la valeur maximale possible, sur 8 bits
par exemple, elle est de 255 (ou en hexadécimal OFF).
[0222] Il convient ensuite de programmer l'oscillation sinusoïdale nécessaire pour engendrer
le son souhaité.
[0223] Pour engendrer ce son sinusoïdal, l'unité SYNT doit être programmée pour que la table
de sinus 81 de la figure 14 soit activée. On rappelle que cette table contient 1024
échantillons de niveau zéro dont les valeurs des points successifs reproduisent ensemble
une forme d'onde en sinus.
[0224] Cette activation est programmée par l'unité CPU qui, pour ce qui concerne la cellule
'0', inscrit à l'emplacement '0' de la mémoire M12 (figure 13) et à l'aide du signal
d'écriture W_MOD, une valeur dont les trois bits de plus petit poids ont la valeur
'000'. Il en résulte que le décodeur 71 active le signal SC_SIN ce qui libère l'accès
à la table 81 du circuit 72 générateur d'échantillons de premier niveau de la figure
14. La cellule 0 est ainsi placée dans le mode approprié.
[0225] La table 81 doit être lue à un rythme qui correspond à un son de 440 Hz à la sortie
de l'unité SYNT. Comme déjà indiqué ci-dessus, dans ces conditions, il convient d'utiliser
un facteur de multiplication de 10,21678 dans l'unité arithmétique U4 du circuit de
calcul 30 de la figure 7. Cette valeur est inscrite à l'adresse '0' de la mémoire
M10 de la figure 8 à l'aide du signal d'écriture W_ENS_FRE. Puis, à l'adresse '0'
de la mémoire M1 du bloc 20B, on inscrit la valeur '1' en tant que valeur relative
de base FRE de la fréquence. La fréquence effective sera calculée par l'unité multiplicatrice
U4 de la figure 7.
[0226] Les cellules de l'ensemble 0 doivent être mises en phase, ce qui dans l'exemple décrit,
n'est nécessaire que pour la cellule '0'. La valeur '0' correspondant à l'ensemble
0 est inscrite dans le basculeur 44 du circuit 40 d'attribution de premier niveau
de la figure 8 sous la commande du signal W_DEC.
[0227] Dans l'exemple décrit, on a admis arbitrairement que l'amplitude est fixée à la valeur
'100'. Le volume de l'ensemble 0 qui va comprendre la cellule '0' présente la valeur
maximale en inscrivant "maximum" à l'adresse '0' de la mémoire M8 sous la commande
du signal d'écriture W_ENS_AMP, par exemple la valeur 1023 sur 10 bits. Puis la valeur
'100' est inscrite dans la mémoire M1 du bloc 20A à l'adresse '0' correspondant à
la cellule '0' en tant que valeur de base du paramètre AMPLITUDE, sous la commande
du signal d'écriture W_AMP_BAS.
[0228] L'unité SYNT est alors initialisée pour produire le son souhaité.
[0229] Pendant ce processus, les signaux correspondant aux sous-périodes P2_AMP, P2_FRE,
P2_PHA et P2_FLT ne sont pas utilisés, car aucune modification de paramètre n'est
prévue dans l'exemple décrit.
[0230] Pendant cette initialisation (jusqu'à la mise en phase), le dispositif de synthèse
sonore procède déjà au premiers passages sur les cellules en commençant par la cellule
0.
PREMIER PASSAGE
[0231] Pendant l'impulsion active de la sous-période P1, un signe positif est assigné à
la direction de l'axe temporel; cela veut dire que la valeur de POS_X est croissante.
Pour cela, le bit de signe correspondant a été enregistré au préalable dans la mémoire
M23, les signaux MOD_DCY et MOD_ALT ayant été fixés à leur valeur binaire convenable
par l'intermédiaire de la mémoire M12 de la figure 13. Le bit de signe est appliqué
au circuit 34 du circuit de calcul 30.
[0232] Pendant l'impulsion active de la sous-période P3, les paramètres de la cellule 0
sont confirmées par les basculeurs 26 des blocs 20A à 20D pour ce qui concerne l'amplitude,
la fréquence, la phase et le filtrage conformément à ce que le CPU a programmé auparavant.
L'ensemble 0 reçoit l'affectation de la cellule '0' (figure 8) par l'intermédiaire
de la mémoire M7. Pendant cette opération, la valeur précédente de la cellule 0 est
placée sur l'ensemble 0. Bien entendu, dans l'exemple décrit cette valeur précédente
est égale à zéro.
[0233] Ensuite, pendant l'impulsion active de la sous-période P4, les paramètres de la cellule
0 sont fixés à leur valeur mémorisée auparavant, la valeur de désignation POS_X est
accumulée dans la mémoire d'accumulateur M5 (valeur indéterminée), l'amplitude de
la cellule 0 est calculée (valeur zéro), la cellule '0' est affectée à l'ensemble
0 avec la valeur d'amplitude zéro pour cette ensemble en tant que valeur de second
niveau (mémoire M7 de la figure 8) et la valeur zéro est également placée dans la
bascule 63-0 de la figure 11 en tant que valeur de troisième niveau.
[0234] L'impulsion active de la sous-période PCPU achève cette période P1 pour permettre
au CPU d'inscrire au besoin d'autres valeurs dans l'unité SYNT.
[0235] Puis, des périodes P1 se déroulent successivement pour toutes les cellules, aucune
opération effective n'étant cependant effectuée dans l'exemple examiné ici.
[0236] Un premier cycle P est alors achevé.
DEUXIEME PASSAGE
[0237] Il se déroule pendant le cycle P suivant du signal ACT (figure 4). La mise en phase
s'effectue pendant l'impulsion active de la première période P1 qui se présente, dans
les blocs 44 à 50 du circuit d'attribution de premier niveau 40. Comme la valeur de
phase est égale à zéro, la valeur POS_X est initialisée pendant l'impulsion active
de la sous-période P3 suivante, à l'aide de la valeur présente dans le circuit de
calcul 30.
[0238] Durant l'impulsion active de la sous-période P3, les quatre valeurs de paramètre
de la cellule 0 sont initialisées en conformité avec les données inscrites par le
CPU. Le circuit de calcul 30 prend la valeur de phase et calcule la valeur POS_X=0
qui est confirmée dans le basculeur 36, la cellule 0 est de nouveau affectée à l'ensemble
0 par l'intermédiaire de la mémoire M9 du circuit d'attribution 40. La valeur de l'échantillon
de premier niveau courant est ajoutée à celle de la période P1 précédente (elle est
toujours égale à zéro).
[0239] Pendant l'impulsion active de la sous-période P4, les quatre paramètres de la cellule
0 sont conformés à leur valeur courante. La valeur "cumulée" (encore zéro) de POS_X
est stockée dans la mémoire M5. La valeur de l'amplitude de la cellule est établie
d'une part par la recherche de la valeur de sinus à l'adresse 0 de la table 81, cette
adresse étant formée par les bits les moins significatifs du signal POS_X, et d'autre
part par la multiplication de cette valeur de sinus par la valeur d'amplitude (100)
précédemment inscrite dans l'unité arithmétique U12 de la figure 13.
[0240] Bien entendu, la valeur de point provenant de la table 81 (valeur d'échantillon de
niveau zéro) était le signal CCYC et a passé le circuit de filtrage 160 de la figure
19 qui est inactif dans l'exemple étudié ici. Le signal ACC_CEL qui est l'échantillon
de premier niveau ainsi formé pour la cellule 0, est attribué à l'ensemble 0 par le
stockage dans la mémoire M7 du circuit d'attribution de premier niveau 40. Comme la
valeur 100 était précédemment inscrite, la valeur d'amplitude de cet échantillon de
premier niveau sera donc égal à 100 également.
[0241] L'unité arithmétique U10 (figure 8) additionne les valeurs des cellules d'un même
ensemble et il est remis à zéro au début de chaque passage (après traitement pour
la dernière cellule d'un ensemble donné). Comme une seule cellule est utilisée dans
l'exemple, la valeur d'échantillon de premier niveau correspondant est égale à la
valeur d'échantillon de second niveau (sortie de la bascule 42 vers l'unité U9), c'est-à-dire
à l'amplitude de l'ensemble fixée précédemment au maximum et calculée dans cette unité
9.
[0242] De même, la valeur de l'ensemble lui-même est constituée (il n'y a qu'une seule cellule
concernée), pour former l'échantillon de second niveau qui est attribué ensuite en
tant qu'échantillon de troisième niveau à la sortie souhaitée (figure 11). Puis la
période P1 considérée s'achève par l'inscription de données par le CPU pendant l'impulsion
active de la sous-période PCPU.
[0243] Puis, toutes les cellules de 1 à 191 sont parcourues de la même façon, mais bien
entendu sans effet pratique puisque dans l'exemple, seule la cellule '0' est active.
TROISIEME PASSAGE
[0244] Au début de la période P1, le signe de progression de la valeur POS_X est de nouveau
fixé à positif par le biais du circuit 34 du circuit de calcul 30.
[0245] Puis, pendant l'impulsion active de la sous-période P3 les opérations suivantes sont
réalisées.
[0246] Les quatre paramètres de la cellule 0 sont maintenus à leur valeur suivant les données
inscrites auparavant par le CPU. Le circuit de calcul 30 reconnaît de nouveau la phase
ordonnée pendant la période P1, la valeur POS_X est mise à zéro dans l'emplacement
'0' de la mémoire M5.
[0247] La cellule 0 est affectée à l'ensemble 0 comme pendant le premier passage et la somme
des valeurs de cellule pour l'ensemble 0 (cellule 0 seulement) est calculée dans l'unité
arithmétique U10 et placée dans la bascule 42.
[0248] Sous la commande de l'impulsion active de la sous-période P4, les quatre paramètres
sont confirmés dans la mémoire d'accumulation M3 de chacun des blocs 20A à 20D. La
nouvelle valeur de POS_X est placée dans la mémoire d'accumulation M5 après avoir
été calculée dans l'unité arithmétique U6 (figure 7), cette valeur étant égale soit
à 10, soit à 11 en fonction de la division effectuée dans le diviseur 31 du circuit
de calcul 30. La même valeur (PHA étant égale à zéro) apparaît à la sortie de l'unité
arithmétique U7 et est utilisée comme adresse de la table de sinus 81. La valeur (ou
point d'échantillon) extraite de cette table est rangée à l'emplacement '0' de la
mémoire d'accumulation M13 (figure 13) après avoir été multipliée par la valeur AMP
dans l'unité arithmétique U12 (en l'occurrence '100').
[0249] Cette valeur multipliée (signal ACC_CEL) est également stockée à l'emplacement '0'
de la mémoire d'accumulation M7 en tant que valeur courante de l'échantillon de second
niveau après addition avec la valeur B (zéro en l'occurrence) dans l'unité arithmétique
U10. La valeur d'amplitude de l'ensemble 0 est alors établie dans l'unité arithmétique
U9, par multiplication de la valeur d'amplitude fixe stockée dans la mémoire M8, la
valeur multipliée étant chargée dans la mémoire M6.
[0250] La valeur qui était stockée dans cette mémoire est ensuite passée à la sortie 0 (figure
11) pour être rendue audible.
[0251] La période P1 en cours se termine de nouveau au besoin par l'inscription de données
par le CPU pendant l'impulsion active de la sous-période PCPU.
[0252] Le processus se poursuit pendant le cycle P du signal ACT pour toutes les cellules,
de nouveau sans effet pratique dans l'exemple considéré.
QUATRIEME PASSAGE
[0253] La seule différence avec le passage précédent réside dans le changement de la valeur
de POS_X qui subira un nouvel incrément de 10 ou de 11 provoquant la désignation dans
la table de sinus de la nouvelle valeur de point requise pour former le son à obtenir.
[0254] Dès que la valeur de l'ensemble 0 est extraite de la mémoire M11 (figure 11) et acheminée
vers la sortie 0, un son va être audible, le dispositif externe de reproduction sonore
étant synchronisé à l'aide du signal EXT_SYNC.
[0255] Ensuite, pendant les passages suivants, la valeur POS_X continue à s'incrémenter
de 10 ou de 11 pour ce qui concerne la cellule '0' et les autres cellules resteront
inactives tant que le CPU n'ait pas ordonné un changement de fonctionnement de l'unité
SYNT.
[0256] En définitive, celle-ci produira ainsi un son mono-harmonique sinusoïdal à 440 Hz.
[0257] Si on souhaite produire des sons ayant un spectre sonore plus complexe, on peut impliquer
dans le processus plusieurs cellules réparties sur un ou plusieurs ensembles selon
une configuration dictée par ce spectre. Les échantillons de niveau zéro peuvent alors
provenir de trois sources différentes à savoir les générateurs de formes d'ondes de
la figure 14 ou 15, les circuits d'entrée de la figure 16 et 18 par l'intermédiaire
de la mémoire M15 et les cellules elles-mêmes à l'aide des échantillons de premier
niveau qui sont présents dans la mémoire d'accumulation M13.
[0258] Un deuxième exemple décrit ci-après permet de comprendre la formation d'un tel son
à spectre plus complexe (voir figure 22).
[0259] Il est à noter que pour faciliter la compréhension de ce qui va suivre, les composantes
impliquées dans le processus décrit seront indiquées par leur référence et un autre
nombre indiquant la figure sur laquelle apparaît ce bloc (par exemple le bloc 3 de
la figure 2 sera indiqué par 2.3).
[0260] La configuration de l'unité SYNT est alors la suivante :
A- Données de base :
- nombre de cellules utilisées : 4 sur 192,
- nombre de signaux de cellules additionnés à la sortie : 3 sur 4,
- nombre d'ensembles utilisés : 1 parmi 16,
- nombre de sorties utilisées : 1 parmi 16,
- nombre d'entrées utilisées : 1 parmi 16,
- échantillonnage :comme dans le premier exemple.
B- Configuration des cellules, de l'ensemble et de la sortie
- La cellule 0 utilise un signal externe (exemple: guitare) appliqué à l'entrée 0 (mode
SC_ETR), son amplitude est fixée à '100'.
- la cellule 1 est utilisée en oscillation RAMPE (mode SC_RMN) s'additionnant au signal.
Son amplitude est fixée à '100' et modulée en amplitude par la cellule 0 de manière
multiplicative. Sa fréquence est fixée à 440 Hz (base = 440 Hz, rapport de fréquence
= 1; 5.U4)
- la cellule 2 contient en mémoire l'échantillon d'une trompette (mode SC_ECH). Cette
cellule comporte un vibrato et sa fréquence sera modulée de manière additive par la
cellule 3. Son amplitude est fixée à '100'. Sa fréquence est de 440 Hz (base = 440
Hz, rapport de fréquence = '1').
- la cellule 3 est utilisée en oscillation sinus (mode SC_SIN) d'amplitude '250', de
fréquence 0,5 Hz (base = 440 Hz, rapport de fréquence '0,001136'). Cette dernière
cellule ne sera pas additionnée au signal de sortie mais ne servira que comme modulante
de la fréquence de la cellule 2.
- les quatre cellules sont incorporées dans un même ensemble, soit l'ensemble 0. Seul
le contenu des cellules 0 à 2 est acheminé sur la sortie 0. Les paramètres phase et
filtrage de toutes les cellules sont à '0'.
1.1. Initialisation :
[0261] Le CPU initialise le système. Les données y sont inscrites dans les mémoires correspondantes.
1.1.1. Structure : le CPU établit la structure du système:
[0262]
- Ensemble 0 : les cellules 0 à 191 sont acheminées sur l'ensemble 0. La valeur '0'
est écrite aux adresses W_ENS_CEL+0 à W_ENS_CEL+191 (8.M9). Les cellules 4 à 191 sont
inactives mais laissées sur l'ensemble 0. Pour que le circuit d'attribution 40 complète
l'addition des cellules sur l'ensemble 0 (soit les cellules 0 à 3 qui sont actives,
et les cellules 0 à 2 additionnées), les valeurs suivantes doivent être inscrites
:
- cellule 0: valeur hexadécimale '30' sur W_ENS_CEL+0 (8.M9), alloue l'accumulation
de la cellule 0 sur l'additionneur U10 (bit 4 C_SCEL actif='1', bit 5 C_ENS inactif='1');
- cellule 1: valeur hexadécimale '30' sur W_ENS_CEL+1 (8.M9), alloue l'accumulation
de la cellule 1 sur l'additionneur U10 (bit 4 C_SCEL actif='1', bit 5 C_ENS inactif='1');
- cellule 2: valeur hexadécimale '30' sur W_ENS_CEL+2 (8.M9), alloue l'accumulation
de la cellule 2 sur l'additionneur U10 (bit 4 C_SCEL actif='1', bit 5 C_ENS inactif='1');
- cellule 3: valeur hexadécimale '00' sur W_ENS_CEL+3 (8.M9), la cellule 3 n'est pas
additionnée (bit 4 C_SCEL inactif='0'). Elle est la dernière cellule dans l'ensemble
(bit 5 C_ENS actif='0'). Cela fixe le contenu de la cellule 3 comme dernière valeur
à additionner dans l'ensemble (bit C_ENS, soit le bit 5 de la valeur);
- Amplitude ensembles : les ensembles sont d'abord mis à amplitude nulle. La valeur
'0' est écrite aux adresses W_ENS_AMP+0 à W_ENS_AMP+15 (8.M8) correspondant aux ensembles
0 à 15;
- Fréquence ensembles : le CPU programme le SYNT sur une base fréquencielle de 440 Hz.
Le programme doit tenir compte de la fréquence d'échantillonnage (44 100 Hz) et du
nombre de points par cycle des générateurs (1024 points) pour calculer le code de
fréquence. Dans le présent exemple, on utilise donc une valeur de fréquence pour l'ensemble
0 identique à celle discutée précédemment à propos de la figure 6. Cette valeur de
fréquence de l'ensemble 0 est inscrite à l'adresse W_ENS_FRE+0 (8.M10) correspondant
à l'adresse de la fréquence de l'ensemble 0;
- Sortie 0: l'ensemble 0 est acheminé vers la sortie 0. Ecrire la valeur '1' (bit 0
à 1) sur W_SORTIE (11.M11) correspondant aux destinations de sortie de l'ensemble
0.
1.1.2. Paramètres d'initialisation des cellules: le CPU inscrit la valeur 0 pour les
amplitudes de toutes les cellules.
[0263]
- Valeurs des amplitudes : toutes les amplitudes à '0' qui est écrit aux adresses W_AMP_BAS+0
à W_AMP_BAS+191 (6.20A[5.M2]).
- Valeurs des incréments d'amplitude : la valeur "maximum" est écrite aux adresses W_AMP_INC+0
à W_AMP_INC+191 (6.20A[5.M1]). Cela a pour effet de conférer une valeur sans interpolation
aux amplitudes.
- Valeurs de modification des amplitudes: la valeur "maximum" (hex_200) est inscrite
aux adresses W_AMP_CTR+0 à W_AMP_CTR+191 (6.20A[5.M4]). Cela a pour effet de désactiver
la modification des amplitudes.
- Valeurs de fréquence: toutes les fréquences sont à la valeur '1000' (arbitraire) qui
est écrite aux adresses W_FRE_BAS+0 à W_FRE_BAS+191 (6.208[5.M2]).
- Valeurs d'incréments de fréquence: la valeur "maximum" est écrite aux adresses W_FRE_INC+0
à W_FRE_INC+191 (6.20B[5.M1]). Cela a pour effet de conférer une valeur sans interpolation
aux fréquences.
- Valeurs de modification de fréquence: la valeur "maximum" est inscrite aux adresses
W_FRE_CTR+0 à W_FRE_CTR+191 (6.20B[5.M4]. Cela a pour effet de désactiver la modification
des fréquences.
- Valeurs phases: toutes les phases sont à '0' qui est inscrit aux adresses W_PHA_BAS+0
à W_PHA_BAS+191 (6.20C[5.M2]).
- Valeurs d'incrément de phases: la valeur 'maximum' est écrite aux adresses W_PHA_INC+0
à W_PHA_INC+191 (6.20C[5.M1]). Cela confère une valeur sans interpolation aux phases.
- Valeurs de modification de phase: la valeur 'maximum' est inscrite aux adresses W_PHA_CTR+0
à W_PHA_CTR+191 (6.20C[5.M4]). Cela a pour effet de désactiver la modification sur
les phases.
- Valeurs de filtre: tous les filtres sont rendus inactifs: la valeur 'maximum' est
inscrite aux adresses W_FLT_BAS+0 à W_FLT_BAS+191 (6.20D[5.M2]).
- Valeurs d'incrément des filtres: la valeur 'maximum' est inscrite aux adresses W_FLT_INC+0
à W_FLT_INC+191 (6.20D[5.M1]). Cela confère une valeur sans interpolation aux filtres.
- Valeurs de modification de filtre: la valeur 'maximum' est inscrite aux adresses W_FLT_CTR
à W_FLT_CTR+191 (6.20D[5.M4]). Cela a pour effet de désactiver la modification sur
les filtres.
1.2. Programmation des modes et paramètres de cellules:
1.2.1. Cellule 0: SC ETR.
[0264] Le CPU programme le SYNT pour activer l'entrée en temps réel 0 sur la cellule 0.
L'entrée en temps réel est inscrite dans la mémoire d'échantillonnage (17.M15). Dans
l'exemple, les adresses réservées sont délimitées dans une zone de mémoire comprise
entre les adresses 0 et 1023 utilisées en stockage continu (cyclique).
- Mode cellule 0 : la cellule 0 sera reliée à l'entrée en temps réel 0. On écrit la
valeur '0' à l'adresse W_ETR_N+0 (16.M14). Le mode SC_ETR correspond au code '007'
sur W_MOD (13.M12). Le mode d'accès à la mémoire M15 (1024 adresses) est cyclique
(MOD_CCY=0), croissant (MOD_DCY=1), non-alternatif (MOD_ALT=1), le code hexadécimal
'300' s'ajoute sur W_MOD. Le code hexadécimal '307'('007'+'000'+'300') est inscrit
à l'adresse W_MOD+0 (13.M12) correspondant à l'adresse du mode de la cellule 0. Cela
active le bit de commande SC_ETR qui met en fonction le mode d'échantillonnage de
la cellule.
- Adresses de l'échantillon de la cellule 0 : les adresses de début d'échantillon et
de début de bouclage ont la valeur '0' qui est inscrite aux adresses W_ECH_DEB+0 (20.M19)
et W_ECH_B1+0 (20.M21). Les adresses de fin d'échantillon et de fin de bouclage ont
la valeur '1023' qui est inscrite aux adresses W_ECH_FIN+0 (20.M20) et W_ECH_B2+0
(20.M22). Comme l'accès est cyclique, la mémoire M15 sera utilisée comme tampon circulaire
dans la zone assignée à la cellule 0.
- Fréquence de la cellule 0 : celle-ci n'a pas à être fixée, car l'échantillonnage est
basé sur l'horloge (2.2) qui, une fois divisée, donne 44 100 Hz pour l'échantillonnage.
Dans ce mode (SC_ETR), le pas d'incrémentation est fixe et égal à '1'.
- Amplitude de la cellule 0 : dans le présent exemple, l'amplitude est arbitrairement
fixée à '100', valeur qui est donc inscrite à l'adresse W_AMP_BAS+0 (6.20A[5.M2]).
1.2.2. Cellule 1: SC RMN.
[0265] La cellule 1 sera programmée pour être une oscillation en forme de rampe négative,
dont l'amplitude sera modulée par la sortie de la cellule 0.
- Mode de la cellule 1 : une rampe négative correspond au code '4' sur W_MOD (13.M12).
La modulation d'amplitude est additive (MOD_FCT_AMP=0), le code '0' est ajouté à W_MOD.
On inscrit donc la valeur '4' à l'adresse W_MOD+1 (13.M12) correspondant à l'adresse
du mode de la cellule 1. Cela active le bit de commande SC_RMN qui met en fonction
le mode d'oscillation en rampe négative (14.88,84).
- Fréquence de la cellule 1: le facteur fréquenciel inscrit sur l'ensemble 0 correspond
à la base de 440 Hz. On inscrit donc la valeur '1' (fréquence de l'ensemble multipliée
par 1) à l'adresse W_FRE_BAS+1 (6.20B[5.M2]).
- Amplitude de la cellule 1: '100' est inscrit à l'adresse W_AMP_BAS+1 (6.20A[5.M2]).
- Commande amplitude cellule 1 : dans le présent exemple, la cellule 1 utilise la sortie
de la cellule 0 pour moduler son amplitude. La valeur '0' est inscrite sur W_AMP_CTR+1
(6.20A[5.M4]). Cette valeur confère à la cellule 0 le rôle de source de modulation.
[0266] On notera au passage que le code à neuf bits formés par les bits les plus significatifs
du signal ADR_CTR définit, comme illustré en figure 12 pour 192 cellules, la sélection
suivante : ACC_CEL=hex_000 à hex_OBF, ACC_ENS=hex_0C0 à hex_0CF, ACC_ETR=hex_0D0 à
hex_0DF, ACC_DET amplitudes =hex_0E0 à hex_0EF, ACC_DET fréquences = hex_0F0 à hex_0FF
et ACC_DET bandes = hex
_100 à hex
_IFF). La valeur hex_200 (maximum) est réservée pour indiquer que la commande est inactive
sur le paramètre correspondant d'une cellule.
1.2.3. Cellule 2: SC ECH.
[0267] La cellule 2 est programmée pour contenir un échantillon du son enregistré d'une
trompette. Dans l'exemple décrit ici, on suppose que ce son est un fichier contenu
dans le CPU. Un vibrato lui est appliqué par modulation de sa fréquence, l'oscillation
modulante étant celle de la sortie de la cellule 3. Il est à noter que la fréquence
de 440 Hz de cette cellule n'est qu'une valeur de référence pour l'échantillonnage.
La fréquence audible dépendra de la fréquence de l'oscillation enregistrée par le
CPU. On suppose qu'elle a été enregistrée à une fréquence d'échantillonnage équivalente
à celle à laquelle elle sera régénérée et que la note jouée à l'enregistrement correspond
à 440 Hz. Dans d'autres cas, la fréquence de la trompette régénérée pourra être transposée
proportionnellement. L'échantillon dure par exemple deux secondes soit 88200 points
d'échantillonnage (440 Hz sur 100 points par cycle). Il est inscrit dans la mémoire
M15 aux adresses d'échantillonnage 1024 à 89224.
- Mode cellule 2 : la cellule 2 est programmée pour générer le signal d'échantillonnage
de la trompette. Cela correspond au code '006' sur W_MOD. La modulation sur la fréquence
est additive de sorte que le code '000' s'ajoute sur W_MOD. Le mode d'échantillonnage
est non-cyclique (MOD_CCY=1), croissant (MOD_DCY=1), non-alternatif (MOD_ALT=1), le
code hexadécimal '380' s'ajoute donc sur W_MOD. Le code hexadécimal '386'(006+000+380)
est inscrit à l'adresse W_MOD+2 (13.M12). Cela active le bit de commande SC_ECH qui
met en fonction le mode d'échantillonnage de la cellule.
- Adresses des échantillons de la cellule 2: l'adresse de début d'échantillon a la valeur
'1024' qui est inscrite à l'adresse W_ECH_DEB+2 (20.M19). L'adresse de fin d'échantillon
est fixée à 89224 qui est inscrite à l'adresse W_ECH_FIN+2 (20.M20).
- Inscription de l'échantillon de la cellule 2: l'échantillon de 88200 points est transféré
du CPU à la mémoire d'échantillonnage M15 aux adresses W_ECH_CYC+'1024' à W_ECH_CYC+'89224'
(17.121 et M15).
- Fréquence de la cellule 2 : le facteur fréquenciel inscrit sur l'ensemble 0 correspond
à la base de 440Hz. On inscrit donc la valeur '1' (fréquence de l'ensemble multipliée
par 1) à l'adresse W_FRE_BAS+2 (6.20B[5.M2]).
- Amplitude de la cellule 2: on fixe arbitrairement l'amplitude à la valeur '100' qui
est donc inscrite à l'adresse W_AMP_BAS+2 (6.20A[5.M2]).
- Commande de fréquence de la cellule 2 : dans l'exemple, la cellule 2 utilise la sortie
de la cellule 3 pour moduler sa fréquence. La valeur '3' est inscrite sur W_FRE_CTR+2
(6.20B[5.M4]) pour déterminer que la cellule 3 est utilisée comme source de modulation.
1.2.4. Cellule 3 : SC SIN.
[0268] La cellule 3 est programmée pour imposer une oscillation sinusoïdale à basse fréquence
de 0,5 Hz. Cette cellule module la fréquence de la cellule 2.
- Mode de la cellule 3: elle doit préalablement être mise dans le mode d'oscillation
sinusoïdale. On écrit donc la valeur '0' à l'adresse W_MOD+3 (13.M12). Cela active
le bit de commande SC_SIN qui met en fonction le générateur de fonction 81 contenant
la table de sinus.
- Fréquence de la cellule 3: la fréquence de l'oscillation étant de 0,5 Hz, le facteur
sur la fréquence de base doit être '0,00136' (0,5 Hz='440'*'0,00136'). La valeur '0,00136'
(fréquence de l'ensemble multiplié par 1) est donc inscrite à l'adresse W_FRE_BAS+3
(6.20B[5.M2]).
- Amplitude de la cellule 3 : dans le présent exemple l'amplitude est arbitrairement
fixée à la valeur '250' qui est inscrite à l'adresse W_AMP_BAS+3 (6.20A[5.M2]).
1.2.5. Démarrage :
[0269]
- Mise en phase des cellules 0 à 3: les cellules programmées pour l'ensemble 0 sont
mises en phase. Le numéro '0' correspondant à l'ensemble 0 est écrit à l'adresse W_DEC
(8.44).
- Amplitude de l'ensemble: on met le volume de l'ensemble 0 au maximum, en inscrivant
la valeur 'maximum' à l'adresse W_ENS_AMP+0 (8.M8).
- Un instrument tel qu'une guitare est branché sur l'entrée en temps réel 0.
1.3. Génération de l'échantillon :
[0270] II est à noter que, comme déjà décrit à propos des figures 3 et 4, chaque sous-période
P comporte une sous-période PCPU à la fin du calcul relatif à chaque cellule. Ceci
ne sera pas expressément rappelé dans ce qui va suivre.
[0271] Le système étant initialisé, il génère le signal sinusoïdal sur une cellule.
■ Premier passage (durant l'éxécution des opérations d'initailisation décrites dans
les paragraphes 1.1.1. à 1.2.4):
Cellule 0
- P1 :
-
- direction Axe-x des temps: positive
- lecture de l'entrée lN_0 (exemple: valeur'0,28'). Cette valeur est acheminée sur lN_CEL
(16.103), et inscrite en mémoire (17.M15) à une adresse non définie (POS_X) mais à
l'intérieur des limites d'adresse établies à l'initialisation de la cellule soit entre
E_DEB(0) et E_FIN(1023).
- la cellule 0 n'étant pas assujettie à une commande externe d'amplitude, de fréquence,
de phase ou de filtrage, les signaux P2_AMP, P2_FRE, P2_PHA et P2_FLT sont inopérants.
- P3:
-
- les paramètres de la cellule 0 sont initialisés suivant les données inscrites par
le CPU aux valeurs résultant de l'initialisation.
- sélection de l'ensemble 0 sur la cellule 0.
- inscription de la valeur de la cellule 0 par le bit actif C_SCEL sur (8.M9) sur l'ensemble
(8.U10,42). Cette valeur est nulle comme la valeur précédente. La cellule est initialisée
à l'amplitude nulle pendant les passages précédents.
- P4:
-
- les paramètres de la cellule 0 sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x de la cellule 0 (5.M3; 6.20B).
- valeur nulle accumulée pendant le sous-cycle P3 (8.42) inscrite sur l'accumulateur
d'ensemble (8.M7).
- calcul de l'amplitude (13.U12) de la cellule 0 = '100'. Valeur de l'échantillon de
la cellule 0 = '28' (amplitude '100'* Valeur lN_0 = '0,28'). Mémorisation de cette
valeur (13.M13).
- calcul de l'amplitude de l'ensemble 0= '0', valeur acheminée sur la mémoire M6 (non
mémorisée).
- accumulateur de l'ensemble : aucune valeur n'est inscrite dans la mémoire M6 (bit
C_ENS inactif sur 8.M9). La valeur précédente est nulle. L'ensemble initialisé a l'amplitude
'0' pendant les passages précédents.
- accumulateur de sortie : la valeur de l'ensemble 0 est nulle.
Cellule 1
- P1 :
-
- direction Axe-x: positive
- P2_AMP
-
- La cellule 1 est assujettie à une commande externe d'amplitude par la cellule 0. La
valeur calculée dans le cycle précédent de l'oscillation de la cellule 0 (13.M13)
est captée sur la bascule 24 (fig.5). La modulation est active à la valeur '28'.
La cellule 1 n'étant pas assujettie à une commande externe de fréquence, de phase
et de filtrage, les signaux P2_FRE, P2_PHA et P2_FLT sont inopérants.
- P3:
-
- les paramètres de la cellule 1 sont initialisés suivant les données inscrites par
le CPU à des valeurs acquises durant l'initialisation.
- affectation de la cellule 0 sur l'ensemble 0.
- addition de la valeur de la cellule 1 par le bit actif C_SCEL (8.M9) sur l'ensemble
0 (8.U10,42). Cette valeur est nulle comme la précédente. La cellule a été initialisée
à l'amplitude '0' pendant les passages précédents.
- P4:
-
- les paramètres de la cellule 1 sont fixés (amplitude + modulation) à la valeur '28'.
- POS_X est accumulé sur l'axe-x de la cellule 1. La valeur est indéterminée.
- la valeur nulle accumulée au sous-cycle P3 sur la bascule 42 est inscrite dans l'accumulateur
d'ensemble M7 (figure 8).
- calcul de l'amplitude (13.U12) de la cellule 1 à la valeur '128' ('100' AMP+'28' (Val.cellule
0)). La valeur de l'échantillon est indéterminée ('128'* la rampe sur une adresse
indéterminée). Mémorisation dans la mémoire M13.
- l'amplitude de l'ensemble à la valeur '0' est acheminée vers la mémoire M6 (non mémorisée).
- accumulateur de l'ensemble : la valeur n'est pas inscrite dans la mémoire M6, le bit
C_ENS étant inactif (8.M9). La valeur précédente est nulle, l'ensemble ayant été initialisé
à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie : la valeur de l'ensemble 0 est nulle.
Cellule 2
- P1 :
-
- direction Axe-x: positive
- P2_FRE
-
- la cellule 2 n'est assujettie qu'à une commande externe de fréquence par la cellule
3. La valeur de l'oscillation de la cellule 3 au passage précédent est nulle et captée
sur la bascule 24. La modulation est nulle.
- P3:
-
- les paramètres de la cellule 2 sont initialisés suivant les données inscrites par
le CPU aux valeurs acquises durant l'initialisation.
- affectation de la cellule 2 sur l'ensemble 0.
- addition de la valeur de la cellule 2, le bit C_SCEL étant actif (8.M9), sur l'ensemble
(8.U10,42). La valeur est nulle, car la valeur précédente est nulle et la cellule
a été initialisée à l'amplitude '0' pendant les passages précédents.
- P4:
-
- les paramètres de la cellule 2 sont fixés à leur valeur.
- POS_X est accumulé sur l'axe-x. La valeur est indéterminée et comprise entre E_DEB
(1024) et E_FIN (89224).
- la valeur nulle accumulée au sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur
de l'ensemble (8.M7).
- calcul de l'amplitude (13.U12; valeur '100'). La valeur de l'échantillon est indéterminée
('100'*échantillon à adresse indéterminée). La valeur est mémorisée dans la mémoire
M13.
- l'amplitude calculée pour l'ensemble 0 est acheminée vers la mémoire M6, mais pas
mémorisée.
- accumulateur de l'ensemble : aucune valeur n'est inscrite dans la mémoire M6 car le
bit C_ENS est inactif (8.M9). La valeur précédente est nulle et l'ensemble est initialisé
à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie : la valeur de l'ensemble 0 est nulle.
Cellule 3
- P1 :
-
- direction Axe-x: positive
- la cellule 3 n'est assujettie à aucune commande externe d'amplitude, de fréquence,
de phase ou de filtrage.
- P3:
-
- les paramètres sont initialisés suivant les données initialisées par le CPU;
- affectation de la cellule 3 sur l'ensemble 0;
- la valeur de la cellule 3 n'est pas additionnée sur l'ensemble 0 (8.U10,42) car le
bit C_SCEL est inactif (8.M9).
- P4:
-
- les paramètres sont fixés à leur valeur.
- POS_X est accumulé sur l'axe-x à une valeur indéterminée.
- la valeur nulle accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite
sur l'accumulateur d'ensemble (8.M7).
- l'amplitude (13.U12) est calculée (valeur '250'). La valeur d'échantillon de la cellule
3 est indéterminée ('250'*sinus avec adresse indéterminée). Mémorisation dans la mémoire
M13.
- l'amplitude de l'ensemble est calculée (valeur '0') et acheminée vers la mémoire M6.
- accumulateur de l'ensemble: la valeur est inscrite dans la mémoire M6, car le bit
C_ENS est actif (8.M9). La valeur précédente est nulle. L'ensemble a été initialisé
à l'amplitude '0' pendant les passages précédents. La bascule 42 est mise à zéro pour
initialiser l'ensemble pour le prochain passage.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
Le passage 0 implique ensuite le traitement des cellules 4 à 191 pendant les cycles
P1 à PCPU. Il n'y a pas de signal.
■ Deuxième passage
II se déroule pendant la mise en phase et l'inscription des paramètres d'ensemble
(paragraphes 1.2.5., 1er échantillon):
Cellule 0
- P1
-
- la mise en phase s'effectue par l'écriture de la valeur '0' (numéro de l'ensemble
0 à mettre en phase, toutes les cellules en faisant partie) sur la bascule 44 (figure
8). Comme les valeurs de phase sont '0', le terme POS_X de l'axe-x est initialisé
sur le circuit de la figure 7 durant le sous-cycle P3 suivant. Le signal d'initialisation
C_lNlT est généré par le bloc 50 et acheminé vers la porte 208 qui produit le signal
CD_lNlT. POS_X de la cellule 0 est initialisé à E_DEB(cellule 0)='0'.
- lecture de l'entrée lN_0 (ex:'0,35') et transmission vers IN_CEL. La valeur est inscrite
dans la mémoire M15 (POS_X=?).
- La cellule 0 n'est assujettie à aucune commande externe.
- P3:
-
- les paramètres de la cellule 0 sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (bloc 35 signal CD_lNlT) reconnait la mise en phase ordonnée
durant le cycle P1. POS_X est mis à '0' sur la cellule 0.
- affectation de la cellule 0 à l'ensemble 0.
- inscription de la valeur de la cellule 0 par le bit actif C_SCEL (8.M9) sur l'ensemble
(8.U10,42); la valeur d'amplitude était '100'.
- P4:
-
- les paramètres de la cellule 0 sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x de la cellule 0 = '0' (phase '0').
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite dans l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 0 à la valeur '100'. La valeur d'échantillon
de la cellule 0 = '35' ('100'* lN_0='0,35'). Mémorisation sur la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur '0'. Elle est acheminée sur la mémoire
M6 mais non mémorisée.
- accumulateur de l'ensemble: la valeur n'est pas inscrite sur la mémoire M6 car le
bit C_ENS est inactif (8.M9). La valeur précédente est nulle, l'ensemble a été initialisé
à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
Cellule 1
- P1 :
-
- mise en phase sur l'ensemble 0 de la cellule, exécutée pendant le sous-cycle P3; E_DEB
= '0'.
- P2_AMP
-
- la cellule 1 n'est assujettie qu'à une commande externe d'amplitude par la cellule
0. La valeur calculée pendant le cycle précédent de l'oscillation de la cellule 0
et stockée dans la mémoire M13 est captée sur la bascule 24. La modulation est active
à la valeur '35'.
- P3:
-
- les paramètres de la cellule 1 sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (bloc 35 signal CD_lNlT) reconnaît la mise en phase ordonnée
durant le cycle P1. POS_X est mis à '0' sur la cellule 1 (E_DEB).
- affectation de la cellule 1 sur l'ensemble 0.
- addition de la valeur de la cellule 1, le bit C_SCEL étant actif (8.M9), sur l'ensemble
(8.U10,42). Les valeurs précédentes sont cellule 0('28') + cellule 1(?). La valeur
est donc indéterminée.
- P4:
-
- les paramètres de la cellule 1 sont fixés à leur valeur à l'amplitude est ajoutée
la valeur de la cellule 0 (5.U4,M3; 6.20A) qui la module. L'amplitude totale de la
cellule = '135'.
- accumulation de POS_X sur l'axe-x de la cellule 1 ='0' (phase '0').
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 1 = '135', soit'100'Ampl + '35' (valeur
cellule 0). La valeur de l'échantillon de la cellule 1 = '134' ('135'*rampe début'0,99').
La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur '0' qui est acheminée sur la mémoire
M6 mais non mémorisée.
- accumulateur de l'ensemble. La valeur n'est pas inscrite dans la mémoire M6, car le
bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble initialisé
a l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
Cellule 2
- P1 :
-
- mise en phase sur l'ensemble 0 de la cellule, exécutée pendant le sous-cycle P3. POS_X
sur la cellule 2 est initialisé à E_DEB = '1024'.
- P2_FRE
-
- la cellule 2 n'est assujettie qu'à une commande externe de fréquence par la cellule
3. La valeur calculée pendant le passage précédent de l'oscillation de la cellule
3 (13.M13) est captée sur la bascule 24. La modulation est active à une valeur indéterminée.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (bloc 35 signal CD_INIT) reconnaît la mise en phase ordonnée
durant le cycle P1. POS_X est mis à '1024' (E_DEB).
- affectation de la cellule 2 à l'ensemble 0.
- addition de la valeur de la cellule 2 par le bit actif C_SCEL (8.M9) sur l'ensemble
0 (8.U10,42) aux valeurs précédentes : cellule 0('28') + cellule 1(?)+ cellule 2(?).
La valeur est donc indéterminée.
- P4:
-
- les paramètres sont fixés à leur valeur. La fréquence est additionnée à la valeur
de la cellule 1 (5.U4, M3; 6.20B) qui la module en fonction de la valeur accumulée
au premier passage (ex: valeur accumulée=indéterminée). Comme la mise en phase est
en cours, la valeur de fréquence n'a pas de rôle.
- accumulation de POS_X sur l'axe-x de la cellule 2 = '1024' (phase '0').
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) à la valeur '100'. La valeur de l'échantillon de la
cellule 2 = '11' ('100'* premier point trompette par exemple '0,11' sur adresse 1024).
La valeur est mémorisée dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur '0' qui est acheminée sur la mémoire
M6 mais pas mémorisée.
- accumulateur de l'ensemble: la valeur n'est pas inscrite dans la mémoire M6 car le
bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble initialisé
a l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
Cellule 3
- P1 :
-
- mise en phase sur l'ensemble 0 de la cellule, exécutée dans le sous-cycle P3.
- aucun assujettissement à une commande externe pendant les sous-cycles P2_AMP, P2_FRE,
P2_PHA et P2_FLT.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- le circuit de la figure 7 (bloc 35 signal CD_INIT) reconnaît la mise en phase ordonnée
durant le cycle P1. POS_X est mis à 0.
- affectation de la cellule 3 à l'ensemble 0.
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9),
sur l'ensemble (8.U10,42).
- P4:
-
- les paramètres sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x = '0' (phase '0').
- valeur accumulée pendant le sous-cycle sur la bascule 42 est inscrite sur l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) à la valeur '250'. La valeur de l'échantillon = '0'
('250'* le premier point de la table sinus ='0'). La valeur est mémorisée dans la
mémoire M13.
- calcul de l'amplitude de l'ensemble 0 à la valeur '0' qui est mémorisée et acheminée
dans la mémoire M6.
- accumulateur de l'ensemble: la valeur inscrite sur la mémoire M6 (bit C_ENS actif
sur 8.M9) valeur addition cellules, ensemble initialisé à l'amplitude='0' (mise au
maximum au passage suivant seulement). Mise à 0 de la bascule 8.42, initialisant l'ensemble
pour le prochain passage.
- accumulateur de sortie: la valeur de l'ensemble 0 = '0' (amplitude ='0'* la somme
des échantillons des cellules 0 à 2), la cellule 3 n'étant pas additionné par choix.
Le bit C_CEL est inactivé par le CPU.
■ Deuxième passage des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
■ Troisième passage (après la mise en phase, élaboration du deuxième échantillon):
Cellule 0
- P1 :
-
- Direction Axe-x: positive.
- lecture de l'entrée lN_0 (ex: '0,33') et acheminement sur IN_CEL. La valeur '0,33'
est inscrite dans la mémoire M15 = (POS_X ='0').
- aucun assujettissement à une commande externe pendant les sous-cycles P2_AMP, P2_FRE,
P2_PHA et P2_FLT.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS_X à la valeur '1' ('0' + '1'). Dans le mode SC_ETR,
l'incrément de POS_X est constant et égal à '1' (7.32).
- affectation de la cellule 0 à l'ensemble 0.
- inscription de la valeur '35' par le bit inactif C_SCEL (8.M9) sur l'ensemble (8.U10,42),
la valeur précédente était'35'.
- P4:
-
- les paramètres sont fixés à leur valeur.
- accumulation de POS_X sur l'axe-x = '1'.
- valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 0 à la valeur '100'. La valeur de l'échantillon
de la cellule 0 = '33' (ampli '100'*valeur lN_0 = '0,33'). La valeur est mémorisée
dans la mémoire M13.
- calcul de l'amplitude de l'ensemble à la valeur 'maximum', qui est acheminée vers
la mémoire M6 mais non mémorisée.
- accumulateur d'ensemble : la valeur n'est pas inscrite dans la mémoire M6, car le
bit C_ENS est inactif (8.M9). La valeur précédente est maintenue jusqu'à la demière
cellule de l'ensemble 0.
- accumulateur de sortie: la valeur de l'ensemble 0 = nulle.
Cellule 1
- P1 :
-
- Direction Axe-x: positive.
- P2_AMP
-
- la cellule 1 n'est assujettie qu'à une commande externe d'amplitude par la cellule
0. La valeur calculée dans le cycle précédent de l'oscillation de la cellule 0 (13.M13)
est captée sur la bascule 24. La modulation est active, soit la valeur '33'.
- P3:
-
- les paramètres de la cellule 1 sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS_X de la cellule 1 = '10'('0' + '10'). A noter que
l'incrément est égal à '10', 79 fois sur 100 et égal à '11', 21 fois sur 100 à 440
Hz.
- affectation de la cellule 1 sur l'ensemble 0.
- addition de la valeur de la cellule 1, par le bit actif C_SCEL (8.M9), sur l'ensemble
(8.U10,42). Les valeurs précédentes sont: cellule 0('35')+ cellule 1('134')= '169'.
- P4:
-
- les paramètres sont fixés à leur valeur. L'amplitude est additionnée à la valeur de
la cellule 0 (5.U4, M3 de 6.20A) qui la module par la valeur '33'. L'amplitude totale
de la cellule 1 est donc '100'+'33' = '133'.
- accumulation de POS_X sur l'axe-x de la cellule 1 = '10'.
- valeur accumulée au sous-cycle P3 dans la bascule 42 est inscrite sur l'accumulateur
d'ensemble (8.M7).
- calcul de l'amplitude (13.U12) de la cellule 1 à '133' {'100'ampl + '33' (valeur cellule
0)}. - valeur d'échantillon de la cellule 1 = '129'('133'* '0,97'). La valeur '0,97'
est la valeur de la rampe à l'adresse 10. Cette valeur est mémorisée (13.M13).
- calcul de l'amplitude de l'ensemble à 'maximum'. Cette valeur est acheminée vers la
mémoire M6, mais pas mémorisée.
- accumulateur d'ensemble : la valeur n'est pas inscrite dans la mémoire M6, car le
bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble a été initialisé
à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
Cellule 2
- P1 :
-
- Direction Axe-x: positive.
- P2_FRE
-
- la cellule 2 n'est assujettie qu'à une commande externe de fréquence par la cellule
3. La valeur calculée pendant le passage précédent de l'oscillation de la cellule
3 (13.M13) est captée sur la bascule 24. La modulation est active à la valeur '0'.
- P3:
-
- les paramètres de la cellule 2 sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS_X de la cellule 2 = '1034' ('1024' + '10'). Ici aussi,
l'incrément est égal à '10', 79 fois sur 100 et égal à '11', 21 fois sur 100 à 440
Hz).
- attribution de la cellule 2 sur l'ensemble 0.
- addition de la valeur de la cellule 2 par le bit actif C_SCEL (8.M9) sur l'ensemble
(U8.U10,42). Les valeurs précédentes sont: cellule 0 ('35')+ cellule 1('134')+ cellule
2('11') = '180'.
- P4:
-
- les paramètres de la cellule 2 sont fixés à leur valeur. La fréquence est additionnée
à la valeur de la cellule 3 (5.U4, M3 de 6.20B) qui la module, ici à la valeur '0'.
La fréquence de la cellule est donc '10.21' ('10.21'+'0').
- accumulation de POS_X sur l'axe-x = '1034'.
- la valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite sur l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) de la cellule 2 à la valeur '100' (amplitude = '100').
La valeur de l'échantillon de la cellule 1 = '-8', par exemple ('100'*échantillon
de l'adresse 1034 qui est ici supposé égal à '-0,08'). La valeur est mémorisée dans
la mémoire M13.
- calcul de l'amplitude de l'ensemble 0 à la valeur 'maximum' acheminée vers la mémoire
M6, mais pas mémorisée.
- accumulateur d'ensemble : la valeur n'est pas inscrite dans la mémoire M6, car le
bit C_ENS est inactif (8.M9). La valeur précédente est nulle. L'ensemble est initialisé
à l'amplitude '0' pendant les passages précédents.
- accumulateur de sortie: la valeur de l'ensemble 0 est nulle.
Cellule 3
- P1 :
-
- Direction Axe-x: positive.
- pas d'assujettisement de la cellule 3 à une commande externe d'amplitude, de fréquence,
de phase et de filtrage.
- P3:
-
- les paramètres sont inchangés depuis le passage précédent.
- incrémentation de l'adresse POS X = '0'('0' + '0'), l'incrément étant égal à '0.001136',
soit '0', 9989 fois sur 10000 et '1', 11 fois sur 10000 à 0.5 Hz).
- affectation de la cellule 3 sur l'ensemble 0.
- la valeur de la cellule 3 n'est pas additionnée sur l'ensemble 0 (U8.U10,42), car
le bit C_SCEL est inactif (8.M9).
- P4:
-
- les paramètres sont fixés à leur valeur.
- l'accumulation de POS_X sur l'axe-x = '0'.
- la valeur accumulée pendant le sous-cycle P3 sur la bascule 42 est inscrite dans l'accumulateur
d'ensemble M7.
- calcul de l'amplitude (13.U12) à '250'. La valeur de l'échantillon = '0'('250'* le
premier point de la table sinus, soit '0'). La valeur est mémorisée dans la mémoire
M13.
- calcul de l'amplitude de l'ensemble à la valeur 'maximum' qui est acheminée vers la
mémoire M6.
- accumulateur d'ensemble : la valeur est inscrite dans la mémoire M6, car le bit C_ENS
est actif (8.M9). La valeur d'addition des cellules = '180', (amplitude max '0,9999'*
somme des cellules 0 à 2 = '180'. Il est à noter que la cellule 3 n'est pas additionnée
intentionellement, le bit C_CEL étant inactivé par le CPU). L'ensemble est initialisé
à l'amplitude 'maximum'. La bascule 42, est mise à '0' initialisant l'ensemble pour
le prochain passage.
- accumulateur de sortie: la valeur de l'ensemble 0 = 180.
■ Troisième passage des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
■ Quatrième passage (Sommaire)
Cellule 0
- P1 :
-
- lecture de l'entrée lN_0 (ex : '0,04') acheminée sur IN_CEL. La valeur inscrite dans
la mémoire M15 à '0,04' (POS_X='0').
- P3:
-
- POS_X (cellule 0)= '2'('1'+'1')
- ensemble 0 : valeur précédente de la cellule 0 = '33'.
- P4:
-
- valeur de l'échantillon de la cellule 0='4' (ampli '100'* valeur IN_0='0,04').
Cellule 1
- P2_AMP
-
- la cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur du
passage précédent de la cellule 0 est captée sur la bascule 24. La modulation est
active, soit à la valeur '33'.
- P3:
-
- POS_X = '21'('10'+'11'). (Incrément= '10', 79 fois sur 100; '11':21 fois sur 100 à
440 Hz).
- ensemble 0: addition des valeurs précédentes : cellule 0('33') + cellule 1('129')
= '162'.
- P4:
-
- amplitude additionnée avec la valeur cellule 0='8'. L'amplitude totale = '104' ('100'+'4').
- valeur de l'échantillon de la cellule 1 = '101' ('104'*rampe adr.21 = '0,95').
Cellule 2
- P2_FRE
-
- la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du
passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est
active, soit la valeur '0'.
- P3:
-
- POS_X = '1045' ('1034+11'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur 100
à 440 Hz).
- ensemble :addition des valeurs précédentes : cellule 0('33')+ cellule 1('129')+cellule
2('-8')= '154'.
- P4:
-
- fréquence additionnée à la valeur précédente '0' de la cellule 3, fréquence de la
cellule= '10.21'('10.21'+'0').
- valeur de l'échantillon de la cellule 2 = '-18' ('100'*échantillon adr. 1045 = exemple
-'0,18').
Cellule 3
- P3:
-
- POS_X ='0'('0'+'0'). Incrément = '0,001136' soit '0', 9989 fois sur 10 000 et '1',
11 fois sur 10 000 à 0,5 Hz).
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9),
sur l'ensemble (U8.U10,42).
- P4:
-
- la valeur de l'échantillon de la cellule 3 = 0('250'*1er point table sinus = '0').
- ensemble: le bit C_ENS est actif sur la mémoire M9. Le total d'addition des cellules
= '154' (somme des cellules 0 à 2)* '0,9999' (ensemble ampl.max.). La cellule 3 n'est
pas additionnée, car C_CEL est inactivé par le CPU.
- accumulateur de sortie : la valeur de l'ensemble 0 = '154'.
■ Quatrième passage des cellules_4 à 191 sur les cycles P1 à PCPU (pas de signal).
O-O-O-O-O-O-O-O-
Un signal sera ainsi généré par la séquence des passages sur les cellules 0 à 2. La
cellule 3 étant à basse fréquence (0,5 Hz), l'effet de sa modulation sur la fréquence
de la cellule 2 sera également lent, l'oscillation sinus de cette cellule n'avancera
d'adresse qu'une fois tous les 998,9 passages (ou 11 fois sur 10 000, comme indiqué
plus haut. Pour en voir l'effet, on passe tout de suite du 999 passage au 1001ième
passage.
■ 999ième passage (sommaire)
Cellule 0
- P1:
-
- lecture entrée lN_0 (ex : '-0.69') acheminée sur IN_CEL. La valeur est inscrite dans
la mémoire M15 = '-0,69' (POS_X='0').
- P3:
-
- POS_X = '995' ('994'+'1'). A noter que cette valeur incrémentera jusqu'à E_B2 ('1023'),
puis sera tronquée pour prendre la valeur de E_B1('0'), le fonctionnement étant cyclique.
- ensemble 0: valeur précédente cellule 0 (exemple= '-72')= '-72'.
- P4:
-
- la valeur de l'échantillon de la cellule 0='-69' (ampli '100'* valeur IN_0='-0,69').
Cellule 1
- P2_AMP
-
- la cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur au
cycle précédent de la cellule 0 est captée sur la bascule 24. La modulation est active,
soit à la valeur '-69'.
- P3:
-
- POS_X = '942'('932'+'10'). (Incrément= '10': 79 fois sur 100; '11':21 fois sur 100
à 440 Hz). A noter que cette valeur incrémente sur 10 bits ('0' à '1023').
- ensemble 0: addition des valeurs précédentes : cellule 0('-72') + cellule 1{'-23':
rampe('-0,81')*('100'-'72')}='-95'.
- P4:
-
- l'ampitude est additionnée à la valeur de la cellule 0='69'. L'ampitude totale = '311'('100'-'69').
- valeur de l'échantillon de la cellule 1 = '-25' ('31'*rampe adr.942 = '-0,82').
Cellule 2
- P2_FRE
-
- la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du
passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est
active, soit à la valeur '0'.
- P3:
-
- POS_X = '10159' ('10149'+'10'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur
100 à 440 Hz). A noter que cette valeur incrémentera jusqu'à E_FIN ('89224') puis
s'arrête de s'incrémenter, le fonctionnement étant ici non cyclique.
- ensemble 0 addition des valeurs précédentes : cellule 0('-72')+ cellule 1('-23')+cellule
2(ex:'32')='-63'.
- P4:
-
- la fréquence est additionnée à la valeur '0' précédente de la cellule 3. La fréquence
de la cellule= '10,21'('10,21'+'0')
- la valeur de l'échantillon de la celulle 2 = '30' ('*100'*échantillon adr. 10159 =
exemple '-0,30).
Cellule 3
- P3:
-
- POS_X = '1'('0'+'1').(incrément = '0,001136': '0':9989 fois sur 10 000 et '1':11 fois
sur 10 000 à 0,5 Hz).
- la valeur cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9) sur
l'ensemble (U8.U10,42).
- P4:
-
- la valeur de l'échantillon = '1'('250'*2ième point de la table de sinus nulle='0,006').
- ensemble: le bit C_ENS est actif sur la mémoire M9). Le total d'addition des cellules
= '-63' (somme des cellules 0 à 2)* '0,9999' (ensemble ampl. max.). La cellule 3 n'est
pas additionnée, car C_CEL est inactivé par le CPU.
- accumulateur de sortie : la valeur de l'ensemble 0 = '-63'.
■ 999ième passages des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
■ 1000ième passage (sommaire)
Cellule 0
- P1:
-
- lecture de l'entrée lN_0 (ex : '-0,64') acheminée sur IN_CEL. La valeur est inscrite
dans la mémoire M15 = '-0,64' (POS_X='0').
- P3:
-
- POS_X = '996' ('995'+'1').
- ensemble 0: cellule 0 à la valeur précédente = '-69'.
- P4:
-
- la valeur d' l'échantillon de la cellule 0='-64' (ampli '100'* valeur IN_0='-0,64').
Cellule 1
- P2_AMP
-
- cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur pendant
le passage précédent de la cellule 0 est captée sur la bascule 24. La modulation est
active, soit à la valeur '-69'.
- P3:
-
- POS_X = '953'('942'+'11').
- ensemble 0: addition des valeurs précédentes : cellule 0('-69') + cellule 1{'-25':
rampe('-0,82')*('100'-'69')}='-95'.
- P4:
-
- l'amplitude est additionnée avec la valeur de la cellule 0='-64'. L'amplitude totale
= '36' ('100'-'64').
- la valeur de l'échantillon de la cellule 1 = '-30' ('36'*rampe adr.953 = '-0,83').
Cellule 2
- P2_FRE
-
- la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du
passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est
active, soit à la valeur '1' qui s'additionne à l'incrément de fréquence, soit '11'
('10,21' ou'10', 79 fois sur 100 et '11', 21 fois sur 100)+'1' = '12', qui sera la
valeur lors du prochain passage. L'incrément courant est de '11'.
- P3:
-
- POS_X = '10170' ('10159'+'11'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur
100 à 440 Hz).
- ensemble 0 addition des valeurs précédentes : cellule 0('-69')+ cellule 1('-25')+cellule
2('30')='-64'.
- P4:
-
- la fréquence est additionnée à la valeur '1' précédente de la cellule 3. La fréquence
de la cellule= '11,21'('10,21'+'1').
- valeur de l'échantillon de la cellule 2 = '24' ('100'*échantillon adr. 10 170 = exemple
'0,24').
Cellule 3
- P3:
-
- POS_X= '1'('1'+'0').(incrément = '0,001136': '0':9989 fois sur 10 000 et '1':11 fois
sur 10 000 à 0,5 Hz).
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif (8.M9),
sur l'ensemble (U8.U10,42).
- P4:
-
- valeur de l'échantillon de la cellule 3 = '1'('250'*2ième point table sinus nulle='0.006').
- ensemble: le bit C_ENS est actif sur la mémoire M9. Le total de l'addition des cellules
= '-64' (somme cellules 0 à 2)* '0,9999' (ensemble ampl. max.).
- accumulateur de sortie: valeur ensemble 0 = '-64'.
■ 1000ième passages des cellules 4 à 191 sur les cycles P1 à PCPU (pas de signal).
■ 1001ième passage (sommaire)
Cellule 0
- P1:
-
- lecture de l'entrée lN_0 (ex : -'0,59') acheminée sur IN_CEL. La valeur est inscrite
dans la mémoire M15 = '-0,59' (POS_X='0').
- P3:
-
- POS_X = '997' ('996'+'1').
- ensemble 0: cellule 0 à la valeur précédente: = '-64'.
- P4:
-
- valeur de l'échantillon de la cellule 0='-59' (ampli '100'* valeur lN_0='-0,59').
Cellule 1
- P2_AMP
-
- la cellule 1 subit la commande externe d'amplitude par la cellule 0. La valeur au
cycle précédent de la cellule 0 est captée sur la bascule 24, la modulation est active,
soit à la valeur '-64'.
- P3:
-
- POS_X ='963'('953'+'10'). (Incrément= '10': 79 fois sur 100; '11':21 fois sur 100
à 440 Hz).
- ensemble 0: addition des valeurs précédentes : cellule 0('-64') + cellule 1('-30':
rampe{-'0.83')*('100'-'64')}='-94'.
- P4:
-
- l'amplitude est additionnée à la valeur de la cellule 0='-59'. L'amplitude totale
= '41' ('100'-'59').
- la valeur de l'échantillon de la cellule 1 = '-34' ('41'*rampe adr.963 = '-0,84').
Cellule 2
- P2_FRE
-
- la cellule 2 subit la commande externe de fréquence par la cellule 3. La valeur du
passage précédent de la cellule 3 est captée sur la bascule 24. La modulation est
active, soit à la valeur '1'. Cette valeur s'additionne à l'incrément de fréquence,
soit '10' ('10,21 '11', 21 fois sur 100)+'1' = '11', valeur sur prochain passage.
L'incrément courant est de '11'.
- P3:
-
- POS_X = '10181' ('10170'+'11'). (Incrément= '10': 79 fois sur 100; '11': 21 fois sur
100 à 440 Hz).
- ensemble 0 addition des valeurs précédentes : cellule 0('-64')+ cellule 1('-29')+cellule
2('24')='-71'.
- P4:
-
- la fréquence est additionnée à la valeur '1' précédente de la cellule 3. La fréquence
de la cellule= '11,21'('10,21'+'1').
- valeur de l'échantillon de la cellule 2 = '21' ('100'*échantillon adr. 10181 = exemple
'-0,21').
Cellule 3
- P3:
-
- POS_X = '1'('1'+'0').(incrément = '0,001136': '0':9989 fois sur 10 000 et '1':11 fois
sur 10 000 à 0,5 Hz).
- la valeur de la cellule 3 n'est pas additionnée, le bit C_SCEL étant inactif sur M9,
sur l'ensemble (U8.U10,42).
- P4:
-
- la valeur de l'échantillon de la cellule 3 = '1'('250'*2ième point table sinus nulle='0,006').
- ensemble 0 : le bit C_ENS est actif sur M9. Le total d'addition des cellules = '-63'
(somme des cellules 0 à 2)* '0,9999' (ensemble ampl. max).
- accumulateur de sortie : valeur de l'ensemble 0 = '-71'.
■ 1001ième passages des cellules_4 à 191 sur les cycles P1 à PCPU (pas de signal).
Le signal sera ainsi généré par la séquence des passages, sur les cellules 0 à 2.
La cellule 3 étant à basse fréquence (0.5 Hz) l'effet de sa modulation sur la fréquence
de la cellule 2 se fait sentir plus lentement, l'incrément de la cellule 2 (base '10,21')
suit l'évolution lente du sinus de la cellule 3 ('10,21'+'1' aux passages 1001 à 1998,
'10,21'+'3' aux passages 1999 à 2996, '10,21'+'4' aux passages 2997 à 3994, '10,21'+'6'
aux passages 3995 à 4991, etc).
1. Système de synthèse d'une suite d'échantillons électroniques destinés à la production
d'un spectre sonore apparaissant sur une sortie (S), caractérisé en ce qu'il comprend:
- des premiers moyens (I) pour déterminer une succession de cycles de travail (P)
rythmés en fonction d'une fréquence d'échantillonnage (ACT);
- au moins une source (72, 73, 74, CPU) d'échantillons dits de niveau zéro représentant
au moins un signal sonore et apte à fournir au cours de chaque cycle de travail en
cours x au moins un échantillon de niveau zéro,
- des seconds moyens (20B, 23 à 25) pour déterminer, pour chacun desdits échantillons
de niveau zéro à sélectionner au cours d'un cycle de travail suivant x+1, une première
valeur propre à cet échantillon d'un paramètre de fréquence (FRE),
- des troisièmes moyens (20A, 20C, 20D, 25) pour déterminer, pour chacun desdits échantillons
de niveau zéro à traiter au cours d'un cycle de travail suivant x+1, au moins une
seconde valeur, également propre à cet échantillon, d'au moins un autre paramètre
(AMP, FLT; PHA),
- au moins deux mémoires de paramètres (M3) pour, au cours du cycle de travail x en
cours, mémoriser respectivement lesdites première et seconde valeurs de paramètre,
dans n emplacements de mémoire respectifs, afin de pouvoir utiliser ces valeurs au
cours du cycle de travail suivant x+1,
- des quatrièmes moyens (30) pour, pendant chaque cycle de travail en cours x déterminer,
en fonction de chacune des n valeurs de paramètre de fréquence (FRE) mémorisées pendant
le cycle de travail précédent x-1, une valeur de désignation (POS_X) pour désigner
parmi lesdits échantillons de niveau zéro, le ou les échantillons de niveau zéro qui,
au cours du cycle de travail suivant x+1, vont contribuer à l'élaboration de n échantillons
de premier niveau respectifs,
- une mémoire de valeurs de désignation (M5, 20B) pour mémoriser lesdits n valeurs
de désignation (POS_X) déterminées pendant le cycle de travail en cours x, afin de
pouvoir les utiliser pendant le cycle de travail suivant x+1,
- des cinquièmes moyens (U12, 30, 76) pour, pendant le cycle de travail x en cours,
appliquer à chacun des échantillons de niveau zéro désignés pendant le cycle de travail
précédent x-1, la valeur correspondante dudit autre paramètre (AMP, PHA, FLT) mémorisée
pendant le cycle de travail précédent, pour former n échantillons actuels de premier
niveau et les mémoriser respectivement dans n emplacements d'une mémoire d'accumulation
(M13), et
- des sixièmes moyens (40, 60) pour au cours du cycle de travail en cours x, transférer
vers ladite sortie (S) les n échantillons de premier niveau mémorisés au cours du
cycle de travail précédent x-1,
les n emplacements de mémoire desdites mémoires de paramètre (M5; 20A, 20C, 20D),
de ladite mémoire de valeurs de désignation (M5; 20B) et de ladite mémoire d'accumulation
(M13) matérialisant respectivement n cellules dont le contenu peut se modifier d'un
cycle de travail à l'autre.
2. Système de synthèse suivant la revendication 1, caractérisé en ce que lesdits premiers
(I), seconds (20, 25), troisièmes (20, 25), quatrièmes (30), cinquièmes (U12, 30,
76) et sixièmes moyens (40, 60) sont utilisés en partage de temps au cours des cycles
de travail successifs pour déterminer les valeurs relatives auxdites cellules dans
lesdites mémoires de paramètre, de valeurs de désignation et d'accumulation
3. Système de synthèse suivant l'une quelconque des revendications 1 et 2, caractérisé
en ce qu'il comprend également une unité de gestion (CPU) connectée auxdits seconds,
troisième, quatrième, cinquièmes et sixièmes moyens, pour en gérer des valeurs de
fonctionnement selon un logiciel exécuté par cette unité de gestion.
4. Système de synthèse suivant la revendication 3, caractérisé en ce que lesdites valeurs
de fonctionnement sont des valeurs initiales desdits paramètres et/ou des valeurs
d'incrément de ces paramètres (FRE, AMP, PHA, FRT), lesdites valeurs initiales et
d'incrément étant déterminées par ledit logiciel.
5. Système de synthèse suivant l'une quelconque des revendications 1 à 4, caractérisé
en ce que lesdits premiers moyens (I) sont agencés pour déterminer successivement,
au cours de chacun desdits cycles (P), n sous-cycles (P1) de signaux de commande affectés
respectivement auxdites n cellules, les signaux de commande (P2_AMP, P2_FRE, P2_PHA,
P2_FLT, P3, P4) de chacun de ces sous-cycles (P1) étant destinés, d'une part à activer,
pendant le cycle de travail x en cours, des opérations de calcul pour la détermination
desdites première et seconde valeurs de paramètre de la cellule correspondante et
d'autre part, pour ce qui concerne chacune desdites mémoires, à permettre la lecture/écriture
dans lesdits n emplacements de mémoire, de données résultant de la détermination de
ces valeurs, ces données formant les contenus respectifs desdites n cellules utilisés
pendant le cycle de travail suivant x+1.
6. Système de synthèse suivant la revendication 5, lorsqu'elle dépend de l'une quelconque
des revendications 3 et 4, caractérisé en ce que chacun desdites sous-cycles de signaux
de commande (P1) comprend également un signal de commande (PCPU) pour autoriser ladite
unité de gestion (CPU) à communiquer avec lesdits premiers, seconds, troisièmes, quatrièmes,
cinquièmes et sixièmes moyens (I; 20B,25; 20A, 20C, 20D, 25; U12, 30, 76; 40, 60).
7. Système de synthèse suivant l'une quelconque des revendications 5 et 6, caractérisé
en ce que lesdits seconds moyens (20B, 25) exécutent une fonction de calcul de la
forme
dans laquelle
PARPn est la valeur de paramètre de fréquence courante de la cellule considérée pendant
ledit sous-cycle (P1) en cours ou la valeur initiale de paramètre de fréquence,
PARPn-1 est la valeur de paramètre de fréquence élaborée au cours du sous-cycle (P1) précédent
pour cette cellule et
INCPn est l'incrément apporté à la valeur courante de paramètre de fréquence vis-à-vis
de la valeur précédente.
8. Système de synthèse suivant l'une quelconque des revendications 5 à 7, caractérisé
en ce que lesdits troisièmes moyens (20A, 20C, 20D, 25) exécutent une fonction de
calcul de la forme
dans laquelle
PARPn est la valeur courante de l'un desdits autres paramètres (AMP, FLT, PHA) de la cellule
considérée pendant ledit sous-cycle (P1) en cours ou la valeur initiale de cet autre
paramètre,
PARPn-1 est la valeur dudit autre paramètre élaborée au cours du sous-cycle (P1) précédent
pour cette cellule et
INCPn est l'incrément apporté à la valeur courante dudit autre paramètre vis-à-vis de la
valeur précédente.
9. Système de synthèse suivant l'une quelconque des revendications 7 et 8, caractérisé
en ce que lesdits seconds et/ou troisièmes moyens comprennent une mémoire de valeur
initiale (M1) destinée à contenir, pour chacune desdites cellules, ladite valeur initiale
de paramètre et une mémoire d'incrément (M3), destinée à contenir, pour chacune desdites
cellules, ladite valeur d'incrément de paramètre.
10. Système de synthèse suivant l'une quelconque des revendications 7 à 9, caractérisé
en ce que lesdits troisièmes moyens (20A, 20C, 20D, 25) comprennent un circuit pour
le calcul d'au moins l'un desdits autres paramètres (AMP, FLT, PHA), identique au
circuit desdits seconds moyens (20b, 25) pour le calcul dudit paramètre de fréquence
(FRE).
11. Système de synthèse suivant l'une quelconque des revendications 1 à 10, caractérisé
en ce que lesdits quatrièmes moyens (30) comprennent une première unité de calcul
(U4) pour combiner algébriquement ladite valeur de paramètre de fréquence du cycle
de travail en cours avec une valeur (ENS_FRE) représentant la fréquence fondamentale
du son à synthétiser auquel contribue l'échantillon de premier niveau calculé pendant
ce cycle en cours, une seconde unité de calcul (U6) pour combiner algébriquement le
résultat fourni par ladite première unité de calcul avec le contenu actuel de l'emplacement
de ladite mémoire de valeurs de désignation (M5) correspondant à la cellule traitée
au cours du cycle de travail en cours et des septièmes moyens (35, 36) pour remplacer
dans cet emplacement la valeur de désignation (POS_X) calculée au cours du cycle de
travail précédent par le résultat du calcul effectué au cours d cycle de travail en
cours par ladite seconde unité de calcul (U6).
12. Système de synthèse suivant la revendication 11, caractérisé en ce que lesdits quatrièmes
moyens (30) comprennent également un multiplexeur (33) dont la sortie est connectée
à ladite seconde unité (U6), dont l'une des entrées reçoit le résultat du calcul de
ladite première unité de calcul (U5), et dont l'autre entrée reçoit un signal de progression
de valeur fixe, notamment '0001', de ladite valeur de désignation permettant, sous
la commande d'un signal de mode (SC_ETR), de faire progresser cette valeur de désignation
de ladite valeur fixe d'un cycle de travail à l'autre.
13. Système de synthèse suivant l'une quelconque des revendications 11 et 12, caractérisé
en ce que lesdits quatrièmes moyens (30) comprennent également une troisième unité
de calcul (U7) pour combiner algébriquement le résultat du calcul de ladite seconde
unité de calcul (U6) avec la valeur en cours de l'un desdits autres paramètres représentant
la phase (PHA) à appliquer à l'échantillon de premier niveau engendré au cours du
cycle de travail suivant x+1.
14. Système de synthèse suivant l'une quelconque des revendications 11 à 13, caractérisé
en ce que lesdits quatrièmes moyens comprennent également des huitièmes moyens (34)
pour affecter le signe positif ou négatif au résultat du calcul obtenu dans ladite
première unité de calcul (U4).
15. Système de synthèse suivant l'une quelconque des revendications 1 à 14, caractérisé
en ce qu'au moins certaines desdites sources comprennent une mémoire d'échantillons
de niveau zéro (81, M15) et en ce que ladite valeur de désignation (POS_X) est utilisée
comme adresse de ladite mémoire d'échantillons de niveau zéro (81, M15).
16. Système de synthèse suivant la revendication 15, caractérisé en ce qu'une première
mémoire parmi lesdites mémoires d'échantillons de niveau zéro est une table de sinus
(81).
17. Système de synthèse suivant l'une quelconque des revendications 15 et 16, caractérisé
en ce qu'une seconde mémoire (M15) parmi lesdites mémoires d'échantillons de niveau
zéro est agencée pour stocker au moins une séquence sonore échantillonnée dont les
échantillons successifs constituent lesdits échantillons de niveau zéro.
18. Système de synthèse suivant la revendication 17, lorsqu'elle dépend de la revendication
3, caractérisé en ce que ladite seconde mémoire d'échantillons de niveau zéro (M15)
est connectée pour être chargée par ladite unité de gestion (CPU), éventuellement
par l'intermédiaire dudit logiciel.
19. Système de synthèse suivant l'une quelconque des revendications 1 à 18, caractérisé
en ce qu'au moins certaines desdites sources comprennent un générateur de fonction
(82, 83, 84) et en ce que ladite valeur de désignation (POS_X) est utilisée comme
valeur de désignation ou comme adresse pour identifier les équations de ladite fonction
à utiliser.
20. Système de synthèse suivant la revendication 19, caractérisé en ce que ledit générateur
de fonction (82, 83, 84) est choisi parmi le groupe comprenant un générateur de fonction
carrée, un générateur de fonction triangulaire, et/ou un générateur de rampe positive
et/ou négative.
21. Système de synthèse suivant l'une quelconque des revendications 1 à 20, caractérisé
en ce qu'il comprend en tant que source d'échantillons de niveau zéro un générateur
de bruit aléatoire (91) fournissant des échantillons au rythme de ladite fréquence
d'échantillonnage (ACT).
22. Système de synthèse suivant l'une quelconque des revendications 17 à 21, caractérisé
en ce que ladite seconde mémoire d'échantillons de niveau zéro (M15) est connectée
pour stocker, en tant qu'échantillons de niveau zéro, des échantillons de premier
niveau calculés et stockés dans au moins une cellule au cours d'au moins un cycle
de travail antérieur.
23. Système de synthèse suivant la revendication 22, caractérisé en ce qu'il comprend
également des neuvièmes moyens (100) pour préparer des échantillons de niveau zéro
à partir d'au moins une entrée (lN_0 à lN_e) du système de synthèse à laquelle est
appliquée un spectre sonore provenant d'une source externe, et en ce que lesdits neuvièmes
moyens (100) sont connectés à ladite seconde mémoire d'échantillons (M15) pour permettre
le stockage desdits échantillons de niveau zéro provenant desdites entrées (In_0 à
In_e).
24. Système de synthèse suivant la revendications 23, caractérisé en ce qu'il comprend
également des dixièmes moyens (140) connectés à ladite au moins une entrée (In_0 à
In_e) pour analyser le spectre sonore de ladite source externe et en tirer des valeurs
de paramètre pouvant être utilisées pour modifier le ou les paramètres (FRE, AMP,
FLT, PHA) déterminés par lesdits seconds et troisièmes moyens (20B, 23 à 25; 20A,
20C, 20D, 25).
25. Système de synthèse suivant l'une quelconque des revendications 1 à 24, caractérisé
en ce qu'il comprend également des dixièmes moyens (M12, 71) pour déterminer laquelle
desdites sources d'échantillons de niveau zéro va servir pour générer, au cours de
chacun desdits cycles de travail, l'échantillon de premier niveau de chacune desdites
cellules.
26. Système de synthèse suivant l'une quelconque des revendications 1 à 25, caractérisé
en ce que lesdits sixièmes moyens comprennent également des onzièmes moyens (40) pour
au cours d'un cycle de travail en cours répartir les échantillons de premier niveau
desdites cellules engendrés au cours d'un cycle de travail précédent, sur m emplacements
de mémoire d'une seconde mémoire d'accumulation (M6), les emplacement de cette seconde
mémoire d'accumulation matérialisent m ensembles dont le contenu peut varier d'un
cycle de travail à l'autre, et en ce que le contenu de chacun desdits m emplacements
est sélectivement transféré à ladite sortie en tant qu'échantillon dit de second niveau
pendant le cycle de travail en cours.
27. Système de synthèse suivant la revendication 26, caractérisé en ce que ladite sortie
(S) comprend une pluralité de sorties distinctes (0 à q) et en ce qu'il comprend en
outre des douzièmes moyens (60) pour répartir sélectivement le contenu des emplacements
de mémoire de ladite seconde mémoire d'accumulation (M6) sur lesdites sorties distinctes,
en tant qu'échantillons dits de troisième niveau.
28. Système de synthèse suivant l'une quelconque des revendications 11 à 27, caractérisé
en ce qu'il comprend également des treizièmes moyens (180 à 208; M19 à M23) pour déterminer
pour ladite valeur de désignation (POS_X) des bornes entre lesquelles cette valeur
peut évoluer au cours d'une série déterminée de cycles de travail successifs.
29. Système de synthèse suivant la revendication 28, caractérisé en ce que lesdits treizièmes
moyens (180 à 208; M19 à M23) sont agencés pour faire évaluer ladite valeur de désignation
(POS_X) cycliquement entre lesdites bornes, à savoir de la première borne à la seconde
borne, cycliquement de la seconde borne à la première borne et/ou cycliquement en
boucle de la première borne à la seconde borne et puis inversement de ladite seconde
borne à ladite première borne.
30. Système de synthèse suivant l'une quelconque des revendications 3 à 29, caractérisé
en ce que lesdites valeurs de fonctionnement sont stockées sélectivement dans une
pluralité de mémoires comprenant n emplacements par ladite unité de gestion (M1, M2,
M3, M4, M9, M16; M17, M18) appartenant respectivement aux, seconds, troisièmes, quatrièmes,
cinquièmes et sixièmes moyens, en fonction dudit logiciel.
31. Système de synthèse suivant l'une quelconque des revendications 1 à 30, caractérisé
en ce que lesdits troisièmes moyens comportent des quatorzièmes moyens (160) pour
appliquer au cours d'au moins certains desdits cycles de travail, au moins une coefficient
de filtrage à au moins certains des échantillons de premier niveau engendrés.