FR 2746536 A1 19970926 FR 9700862 A 19970124 I. DESCRIPTION: I-1 DOMAINE TECHNIQUE DE L'INVENTION. 1-1-1 Indication du domaine technique de l'invention. La présente invention concerne un système de commande numérique conduisant à un nouvel orgue symphonique permettant de transmettre en même temps les informations musicales issues de plusieurs consoles avec plusieurs claviers (organes de commande) d'un ou plusieurs orgues(disposant d'un ou plusieurs buffets) aux eléctroaimants des soupapes d'ouverture des tuyaux générant les sons, contenus dans les buffets. Les consoles pouvant être mises sur un même plan. Le système doit permettre aux organistes d'accèder à des claviers virtuels à partir de claviers réels et de barres de commande associées avec une grande ergonomie. La transmission doit se faire sans contrainte spatiale dans une sphère d'une centaine de mètres environ. Ce système doit pouvoir permettre aussi une multitude de possibilités musicales comme de pouvoir jouer à plusieurs organistes en même temps que la restitution d'un ordinateur.... etc.... Ce problème technique a été traité par l'electronique, l'informatique et la robotique. En fait, cette commande numérique transforme un ou plusieurs orgues classiques en un NOUVEL INSTRUMENT qui devient un orgue véritablement symphonique. Cette commande numérique et ce nouvel instrument font l'objet de l'invention. 1-1-2 2 Historique pour bien comprendre le problème technique à résoudre En 1993. Olivier TERNON alors âgé de 9 ans. organiste de la Chapelle de Saint François-Régis de Montpellier. commençait à donner des concerts sur plusieurs orgues et s'est aperçu des difficultés de donner de telles auditions avec deux orgues en même. temps. en général. situés à chaque extrémité de l'église Le premier concert donné dans ces conditions a eu lieu à Notre Dame des Tables de Montpellier le 21 Juin 1993 où des pieces de VIVALD-BACH étaient au programme et le contenu joué sur les deux orgues. Olivier TERNON avait déjà commencé à écrire des compositions pour plusieurs orgues en simultané au début de l'année 1993. Il lui a donc semblé plus judicieux de voir les orgues proches l'un de l'autre, voire de disposer de plusieurs consoles(trois, quatre et plus) les unes à côté des autres sur un même plan pour commander les jeux d'un ou plusieurs orgues. Toutefois, un orgue disposant de plusieurs consoles et permettant donc à plusieurs organistes de jouer en même temps avec la possibilité de se consulter, n'existe pas et il sera facile de le comprendre aisément dans les pages çi-après. Par conséquent, Olivier TERNON n'a pas pu voir ses compositions interprètées. Le bilan est donc assez simple: - les grandes Orgues à commande de type classique(mécanique, pneumatique ou eléctrique) apparaissent totalement dépassées sur un plan de la transmission des commandes et par conséquent sur un plan technologique et on le comprend facilement, - leur capacité d'expression musicale est relativement réduite, eu égard aux moyens mis en oeuvre et disponibles, (il n'est possible de jouer que des oeuvres de trois portées musicales) - leur faiblesse dans la recherche des contrastes et des plans sonores, - en raison des contraintes matérielles et techniques, la position de l'organiste à la tribune est isolée par rapport aux autres acteurs. Toutefois, tout n'est pas négatif, il existe des orgues à commande électrique qui sont susceptibles de permettre la réalisation de nouveaux instruments et la commande numérique sera en fait 1' interface entre les consoles et le buffet ou les buffets (annexe: 1 A). Mais cette interface sera très importante car elle permettra de commander "très librement" tous les organes parlants de l'Orgue à partir de n'importe quelle note. Pour Olivier TERNON. en a qualité de compositeur. il est particuliêrement navrant de disposer de 3O à 70 timbres sonores différents en moyenne et de ne pouvoir jouer que trois à cinq xoix(mélodiques différentes au maximum qui sont rassemblées sur trois portées (deux mains et pieds l qui sont dans les partitions traditionnelles pour l'orgue depuis quatre siècles. (deux ou trois claviers et un pédalier sur une même console). Le problème technique posé par Olivier TERNON est donc de pouvoir jouer une vingtaine de portées et plus EN MEME TEMPS sur un ou plusieurs instruments (voire buffets). A vrai dire sur un orgue traditionnel, on superpose en fait une certaine quantité de timbres différents sur les mêmes notes mais la richesse harmonique n'est pas améliorée. L'orgue à commande traditionnelle(mécanique, pneumatique et electrique) n'a donc pas grand chose de svmphonique. On voit donc BIEN ressortir Le PROBLEME TECHNIQUE posé par Olivier TERNON qui est donc de pouvoir utiliser un système de commande permettant de prendre en compte, en même temps, les informations musicales issues de plusieurs consoles disposant de plusieurs claviers ( voire de générer des claviers virtuels) sur un même plan ou encore d'un ordinateur et de transmettre séparément l'ensemble des mélodies aux différents instruments, tuyaux de l'Orgue(jeux de fonds, jeux d'anches et mixtures: flûtes, gambes, Hautbois, plein jeu etc.... ...) et par conséquent de disposer d'une véritable orchestration comme l'ensemble des instruments d'un orchestre. La résolution du problème technique permettra de jouer des partitions disposant d' un nombre important de portées comme la partition d'un chef d'orchestre.(20 portées et plus) II est donc clair que cette activité inventive est absolument insvistante dans l'ETA T ACTUEL DE LA TECHNIQUE car pour le moment aucun système et instrument n'a été construit pour jouer des compositions disposant de plus de trois portées. Cet aspect des choses avait été mis involontairement en oeuvre par le Comte Joseph DEYM dans les années 1780. Ce dernier avait créé un cabinet de curiosités quel contenait des automatophones. Ces pendules àjeux de flûtes étaient des automates mais malheureusement qui escamotaient le jeu de l'interprète. \'.À. MOZART avait reçu commande de de ce Comte atln de composer pour ces automatophones. La correspondance à ce sujet de MOZART obtenue à 1' Académie MOZART de SALZBOURG lors du dernier concert d'Olivier TERNON dans cette ville, atteste toutefois de la répugnance avec laquelle il s'est contraint à ce travail "alimentaire": "J'ai pris sur moi d'écrire pour l'horloger, afin que quelques ducats puissent danser dans la main de ma chère petite femme; et je l'ai fait... @ plais combien ceSavail me rebutait! Tous les jours, j'en écris quelque chose. Et tous les jours, il faut que je m'arrête tant cela m'ennuie! Ah! s'il s'agissait d'une grande horloge. si la mécanique devait donner des sons d'orgue. cela m' on: userait: mais l'instrument n'est qu'un petit chalumeau dont les sons aigus sont pour moi trop enfantins "(lettre à Constance du 3 octobre 1790) W.A. MOZART avait donc à la demande du Comte composé diffèrentes pièces avec quatre portées. C'est le cas de deux fantaisies KV 608 et KV594 qui sont difficilement jouables par un seul organiste (deux organistes de préférence sur la même console est le seul moyen possible aujourd'hui); néanmoins, la complexité de l'écriture et les instruments disponibles à ce jour limitent de plus les possibilités de définition de différents plans sonores. Par ailleurs, rien ne prouve que MOZART voulait s'affranchir des limites d'éxécution humaine; il semblait beaucoup plus intéressé par le caractère orchestral et harmonique de la musique issue d'un instrument comme une "grande horloge avec des sons d'orgue". Quelques années après, MOZART écrivait "la Flûte enchantée". C'est un des paradoxes Mozartiens! C'est "cette grande horloge avec des sons d'orgue" qu'Olivier TERNON a proposé de réaliser sous forme de prototype mais avec des techniques et moyens modernes (informatique, electronique, robotique) à la place de systèmes mécaniques pneumatiques et eléctriques qui sont dans ce contexte totalement inutilisables pour cette application. Par conséquent, invention présentée se situe au delâ de ce qui est évident. 1-2 ETAT DE LA TECHNIQUE. 1-2-1 Pourquoi l'ET.AT de la TECHNlQLE ACTE ELLE ne permet pas de répondre aux exigences d'Olivier TERNON et donc de répondre au problème technique posé: L'art antérieur ou actuel ............ Anicle 61 1-11 du code la propriété intellectuelle; " Une invention est nouvellesi elle n'est pas comprise dans L'état de la technique. L'état de lu technique est constitue par ce qui est accessible au public et contenu dans les bre"ets". Un grand orgue n'est donc constitué que d'une console et d'un buffet. Dans la majorité des cas la console est solidaire du buffet en raison des éléments de transfert des commandes qui sont généralement mécaniques, pneumatiques ou encore electriques et qui ne permettent pas de véhiculer l'information musicale aux soupapes sur de grandes distances (de l'ordre de 10 à 20 m). Le buffet est constitué de sommiers qui supportent les tuyaux ainsi que les soupapes actionnées par les éléments de commande de l'orgue qui sont, suivant l'option, des vergettes, de petits tuyaux conduisant l'air(ouverture des soupapes par dépression ou compression) ou des fils electriques des électroaimants. Une telle approche n'a jamais permis de dissocier la console du buffet avec des distances importantes(une dizaine de mètres au plus) ou de commander le buffet à partir de plusieurs consoles en même temps et de jouer à partir de différentes consoles; différentes mélodies en harmonie pour séparer les plans sonores et par conséquent de donner une véritable dimension symphonique à l'Orgue. Par ailleurs, chaque clavier est lié à une partie seulement des registres de l'orgue correspondant aux sommiers. C'est la raison pour laquelle on trouve parfois cinq ou six claviers sur de très gros orgues pour prendre en compte les nombreux timbres(jeux) disponibles. De ce fait. il n'est pas possible d'utiliser un jeu à partir de n'importe quel clavier sinon par des systèmes d'accouplement relativement lourds. Le même raisonnement peut être tenu pour les systèmes de commande pneumatique ou electrique Ln calcul simple permet aussi d'apprécier le nombre de relais nécessaires pour une telle entrepose' On voit aussi un autre point dii problème technique soulevé par Olivier TERSON apparaitre: la génération de claviers virtuels pour éviter la multiplication des claviers physiques comme sur les transmissions traditionnelles. Le recensement des systèmes plus évolués faisant appel à l'informatique et à l'eléctronique montre qu'il ne s'agit que d'une substitution des systèmes classiques(mécanique, pneumatique et electrique) et lesquels ne sont pas en mesure de répondre au problème technique posé par Olivier TERNON. De ce fait, dans ces systèmes informatiques, il n'y a aucun apport sur le plan musical alors que la commande proposé@par Olivier TERNON en s'appuyant sur l'electronique, l'informatique et la robotique permet de nombreuses innovations musicales et c'est ce qui explique le problème technique posé. Un des premiers systèmes informatiques importants a été développé à Notre Dame de Paris par la société SYNAPTEL, filiale de la société américaine IBM. La seule documentation obtenue à la Cathédrale fait part du système de transmission et de l'apport de l'informatique. Le schéma général montre plusieurs ordinateurs servant à la transmission des données musicales par l'intermédiaire d'un anneau à jeton IBM à l6Mbps et un réseau d'exploitation; ces systèmes lient la console au buffet. On sait aussi que la console comporte cinq plans manuels, chaque plan étant lié à une partie seulement des jeux de l'orgue. Sa conception informatique à partir de processeurs traditionnels montre les limites d'un tel système et la totale impossibilité de multiplier les consoles et de générer des claviers virtuels qui est le problème posé. On voit bien que même pour l'homme de l'art(facteur d'orgue). il est nécessaire de s'appuyer sur une très grosse entreprise d'informatique et par conséquent " l'activité ne découle pas d'une manière évidente de l'état de la technique". Le deuxième système utilisant une electronique fabriquée par la société américaine lC.N1! est celui de l'église Saint Eustache à Pans. Dans la documentation fournie par l'église une description du fonctionnement de l'orgue VAN DEN HELVEL "peu détaillée" est donnee. On sait seulement que l'orgue dispose de deux consolestmécanique et electronique) I'une en tribune, l'autre en nef et qui peuvent être utilisées alternativement. La console de la tribune actionne une transmission mécanique à partir de cinq claviers. Une partie des jeux de l'orgue est affectée à chaque clavier. Un combinateur electronique permet de programmer diffèrentes combinaisons d'utilisation de l'orgue. La console de nef est identique mais bénéficie d'accouplements supplémentaires et un dispositif permettant l'enregistrement et la restitution du jeu de l'organiste. La transmission se fait par différents câbles coaxiaux grâçe à un dispositif electronique reliant à priori la première console de tribune. Toutefois, on voit très vite les limites d'un tel système et qu'il a très peu de rapport avec notre invention. Comme le précédent système informatique de Notre Dame de Paris, cette dernière transmission electronique ne permet pas de répondre aux exigences du problème technique posé par Olivier TERNON. ...... L'état de la technique ne permet pas de répondre au problème posé. Article 611-14 du code de la propriété intellectuelle: " Une invention est considérée comme une activité inventive si pour l'honnie du métier, elle ne coulewpas d'une manière évidente de l'état de la technique" En effet, on voit difficilement dans une commande mécanique, un système permettant à des vergettes de bois de transmettre des commandes issues de trois consoles par exemple, dotées de trois claviers chacune avec un orgue de 30 jeux. Un simple calcul avec des claviers de 61 notes et un pédalier de 30 notes montre que chacune des 250(environ)commandes des consoles doivent pouvoir actionner individuellement 1800 soupapes de Tuyaux par exemple. Un calcul tout aussi simple permet de trouver le nombre de systèmes mécaniques auxquels il faudrait faire face pour prendre en compte toutes ces combinaisons. Ce calcul ne tient pas compte non plus des accouplements de claviers et pédaliers!! .Aucun Homme de l'Art (facteur d'orglle) ne s'est aventuré dans une telle réalisation que ce soit asec des systèmes mécaniques, pneumatiques ou electriqueset aussi parce que le problème technique posé par Olivier TERNON ne s'est jamais posé auparavant! ! ! ! C'est aussi pour cette dernière raison qu'aucun système récent utilisant l'informatique ne traite ce problème car tout simplement, ces systèmes ne constituent que des systèmes de substitution des transmissions traditionnelles existantes! L'art antérieur ou actuel ne peut résoudre le problème technique posé par Olivier TERNON et l'invention proposée se situe bien au delà de ce qui est évident (article L661-14 du code de la propriété intellectuelle)! 1-2-2 Problème technique posé: Il s'agit donc d'une part, de mettre au point un système de commande permettant de prendre en compte plusieurs consoles dotées d'au moins trois claviers et de transférer les ordres donnés en même temps par ces consoles vers le ou les orgues afin de permettre à plusieurs organistes de jouer des mélodies différentes "en même temps", de se consulter en étant sur un même plan et de pouvoir utiliser n'importe quel timbre des orgues à partir de l'un ou l'autre des claviers de chaque console par une commande de type numérique et bien-sûr, d'autre part, de pouvoir réaliser toutes les cornbinaisons musicales possibles à partir de cette interface dans le but de créer un nouvel orgue véritablement symphonique. (On peut très bien imaginer plusieurs consoles au sol avec trois, ---, n organistes jouant sous la baguette d'un chef, pour plusieurs orgues. Les organistes pouvant utiliser l'ensemble des jeux des orgues. annexe: I-A) Que signifie techniquement le problème posé par cette commande numérique conduisant à ce nouvel instrument ? Une touche quelconque d'un des claviers d'une des consoles doit donc permettre d'ouvrir la soupape de n'importe quel tuyau du ou des buffets des orgues par l'intermédiaire de cette commande programmée et l'ensemble des contraintes techniques du problème posé peuvent être résumées de la manière suivante: l.L'enfoncement d'une touche d'un des claviers d'une des consoles ayant pour correspondance un tuyau quelconque des orgues, constitue la plus petite information élémentaire transmoeavec la commande et obtenue par La programmation de cette dernière. (un clavier ne doit pas etre lié à une partie seulement des jeux des orgues comme sur les systèmes classiques mais doit pouvoir accèder à tous les jeux des orgues) Pour les besoins de la cause, l'information transmise sera numérique: par exemple, la position d'une note sera normale ou enfoncée (0 ou 1) mais il sera aussi possible de prendre en compte la vitesse d'enfoncement de la touche, sur 7 bits pour 128 vitesses differentes, sous la même forme à partir de capteur prévu à cet effet; on dira alors que le clavier est dynamique. 2 Il s'agit de pouvoir transmettre ces informations numériques dans une sphère de 30 à 100 m avec un minimum d'encombrement (un cable de liaison avec quelques conducteurs (quatre ou cinq) entre les consoles et le bufSet). 3. il convient que ces informations musicales issues d'une vingtaine de portées et plus soient transmises entre les consoles et les buffets dans une durée de temps transparente pour l'oreille. Cette durée est le temps de transmission des ensembles de notes jouées en même temps par les interprètes sur chaque console. Cette durée devra etre très inférieure au centième de seconde. (pouvoir séparateur de l'oreille) Le nombre de notes jouées en même temps sera donc la limite du svstéme de commande numérique. Il faudra que la restitution au niveau des tuyaux des notes jouées en même temps mais transmises en série. laisse l'impression à l'oreille que ces notes ont été jouées dans le même temps. (c'est-à-dire dans un temps très inférieur au pouoir séparateur de l'oreille = / @ 00ème de s) 4. La programmation (gestion) des registres et des differentes opérations réalisées par la commande numérique devra pouvoir être réalisée à partir de chaque clavier de chaque console soit de manière informatique â l'aide d'un écran. soit de manière manuelle avec les conrocts à disposition sur la console et (loit permettre principalement (le choisir: - le registre ou les registres utilisés sur clavier où la note est jouée. - le clavier virtuel correspondant à llne registration déterminée. - le délai de temps(dfféré) avec lequel la note doit être jouée à partir du moment où la note est enfoncée sur des registres d'un clavier différent, -la transposition de la note jouée,(transformation d'un do en ré ou mi par exemple . . etc ) -le type d'accouplement entre claviers et pédalier. - . . etc. .. La commande numérique doit permettre de jouer à plusieurs organistes ou/et éventuellement avec un ordinateur qui pourra restituer un thème préalablement enregistré ou écrit. 5. L'ensemble de ces commandes doivent donc être accessibles au niveau de chaque clavier dans un temps le plus bref possible avec un maximum d'ergonomie et devront pouvoir etre éventuellement affichées sur un écran d'ordinateur. L' utilisation des commandes doit pouvoir s'effectuer sans gene et sans perte de temps pour l'utilisateur pendant le déroulement de la pièce jouée. L'ergonomie du système doit correspondre à un aménagement de la console de manière à optimiser les possibilités et taches de l'organiste. 6. La commande numérique et sa programmation informatique devront permettre de rajouter autant de consoles souhaitées pour le ou les orgues sans qu'il soit nécessaire de modifier quoi que ce soit dans la conception de la commande numérique. Les contraintes techniques montrent bien qu'il s'agit d'un nouvel instrument avec cette commande numérique à caractère véritablement symphonique. o 00 Avec Eric TERNON. son Père. il a proposé au Laboratoire de projets robotiques de l'ISIM (Institut des Sciences de l'ingénieur de Montpellier) à l'Université des Sciences et des Techniques de Montpellier une étude de faisabilité pour la conception de cette commande et la réalisation d'un prototype pouvant conduire à un -;OL \EL l\STRL RIENT véritablement Svmphoniqiie et respectant les contraintes du problème technique posé. Ce prototype a été réalisé et montre sans aucune ambiguïté la réalisation possible de cette invention et la possibilité d'application industrielle. Une démonstration à la presse a été réalisée sans toutefois donner d' indication technique quant à la réalisation et à sa finalité. L'objectif de cette démonstration ayant pour but de démontrer uniquement la faisabilité de l'invention et qu'au moins un mode de réalisation fonctionnait. I-3. DESCRIPTIF DE L'INVENTION: 1-3-1 Préliminaires: - les differentes étapes de l'étude de faisabilité pour la réalisation du prototype. Pour mettre en oeuvre cette invention et résoudre le problème posé, sur la base des travaux de Monsieur TERNON(analyse de l'existant), une étude de faisabilité et un prototype viennent donc d'être réalisés par les travaux successifs (sous forme de mémoires) de six élèves ingénieurs pendant des durées de trois à quatre mois sur trois ans sous la direction de Monsieur le Professeur PRIEUR responsable du laboratoire des projets robotiques de l'Université de Montpellier et de Messieurs GIL et BENOIT Chercheurs au LIRM et bien sûr de Monsieur TERNON de NOVOTER & Associés, propriétaire du projet. Une convention de confidentialité et de propriété a été signée entre le Professeur PRIEUR et Monsieur TERNON. responsable et propriétaire du projet.(en annexe: 17) Il faut attirer l'attention de l'ingénieur Examinateur sur le fait que si le problème technique posé "découlait de manière évidente de l'état de la technique pour les hommes de l'art." qui doivent être non seulement. en la circonstance, le facteur d'orgue mais aussi l'informaticien-electronicien. il n'aurait pas été nécessaire de mener une réflexion aussi longue, pendant trois ans. avec des ingénieurs de recherches pour trouver une solution respectant les contraintes fixées par le problème technique posé par Olivier TERNON. -Choix des composants electronigues pour réaliser cette commande. Dans la préétude, une analyse de l'existant technologique sur le marché a été réalisée avec l'aide d'un Grand Facteur d'Orgues, l'entreprise DANION-GONZALEZ(MLGO à Lodève), Homme de l'ART, en la personne de Monsieur DANION intéressé par l'exploitation du brevet ainsi qu'une société Computer Services, spécialisée dans les réseaux, d'un groupement d'entreprises que Monsieur TERNON anime. Rappelons que Monsieur DANION est le Facteur d'Orgues, grand spécialiste qui a introduit la notion de commande electrique pour les Orgues. Une solution en réseau de processeurs classiques d'ordinateurs avait été proposée par cette société informatique, type de composants utilisés par le système de Notre Dame de Paris. Mais ces composants ne peuvent répondre à la résolution efficace du problème posé car l'accumulation de processeurs tend à diminuer la vitesse de transmission des données et ne permet donc aucune évaluation. Le Facteur a présenté entre autre la commande électronique ou numérique sur un orgue qu'il a entièrement construit celui de la maison de la Radio à la salle Olivier MESSIAEN dotée de calculateurs de la Société Anglaise SOLID STATE LOGIC (organ systems.) Ce dernier système fonctionne avec des calculateurs en ligne en utilisant la propriété de ce type d'architecture parallèle qui permet le transfert des données digitales saisies en parallèle de manière sérielle à 20 MEGABITS/s. Toutefois, les systèmes offerts par différentes sociétés sur ce type d'approche, ne permettent pas de répondre aux contraintes fixées. La société TELN1AT a produit aussi ce type d'automates concrétisé par un combinateur de jeux. Au vu de ces différentes analyses et pour arriver à résoudre le problème technique posé par Olivier TERNO\i. Enc TERNON a choisi un réseau de calculateurs de type TRANSPUTER avec les cartes support réalisées par le LIRS Université de Nlontpellier. (Lanne"te: I ô permet de comprendre le fonctionnement de ce type de calculateurs et permettra aussi de comprendre la structure de réseau choisie pour le système de transmission utilisé dans l'exposé détaillé d'un mode de réalisation de l'invention.) C'est dans une note technique du 10 juillet 1994 que Monsieur TERNON suite à la pré étudie proposée à l'ISIM, a fait une proposition d'étude de faisabilité d'un système à double réseau à Monsieur PRIEUR, Responsable du Laboratoire de projets robotiques de 1' ISIM. Un réseau de calculateurs pour la transmission des données musicales et un réseau d'ordinateurs classiques(processeurs) pour la gestion de ou des orgues(ou buffets diffèrents). Par ailleurs, Monsieur TERNON a pris en compte tous les besoins de l'organiste qui lui ont été décrits par son fils. Les élèves ingénieurs ont par conséquent surtout programmé les calculateurs en essayant d'optimiser cette commande avec les fonctions et l'analyse de l'existant définies par Monsieur TERNON. Ce choix pour l'étude de faisabilité et la réalisation du prototype tient en fait à un concours de circonstance. Le Laboratoire d'informatique et de Robotique et de Microélectronique de Montpellier a développé différentes cartes utilisant des calculateurs de type TRANSPUTER lesquels sont très bien connus à l'iSIM et représentent un champ d'investigations et d'essais au niveau du laboratoire de projets robotiques. Les caractéristiques des cartes utilisées sont en annexe 15. Il est vrai que tous les calculateurs à architectu 1-3-2 SOLUTION APPORTEE au problème technique posé: - EXPOSE de l'INVENTION. Pour répondre au problème technique posé, la présente invention concerne un système de commande numérique conduisant à un nouvel orgue véritablement symphonique; elle permet de transmettre en même temps les informations musicales issues de plusieurs consoles sur un même plan disposant de plusieurs claviers réels et virtuels ou d'ordinateurs(organes de commande) aux eléctroaimants des soupapes d'ouverture des tuyaux générant les sons d'un ou plusieurs orgues (éventuellement à plusieurs buffets). La commande numérique pourra aussi gérer plusieurs orgues. L'ergonomie du système de commande permet à un organiste de jouer seul sans aucune aide extérieure. La transmission doit se faire sans contrainte spatiale.( les consoles pouvant se trouver dans une sphère d'une centaine de mètres.) Ce problème technique a donc été traité par l'electronique, l'informatique et la robotique comme çi-après. Ainsi, plusieurs aspects doivent être pris en compte pour résoudre le problème posé. -Le premier touche les transmissions des commandes d'un ou des orgues (entre les consoles et le ou les buffets)en respectant les contraintes fixées (environnement, espace, temps, génération de claviers virtuels, etc ...) et qui ont été décrites précédemment. -Le second est relatif au système d'utilisation, de gestion des commandes de l'orgue et d'information des utilisateurs, c'est-à-dire le réseau d' ordinateurs liés entre eux, placés sur chaque console qui permettront: la configuration générale et l'utilisation d'un ou des orgues. La configuration générale de l'invention est présentée sur l'annexe n let 1A qui représente le schéma de la commande numérique avec N consoles ainsi qu'une configuration possible d'utilisation de la commande numérique avec plusieurs consoles commandant plusieurs orgues et buffets. (cas de la cathédrale de Salzbourg) Le troisième est relatif au caractère ergonomique des systèmes de commande utilisés par les organistes sur les consoles et les claviers de l'orgue. * Transmission des commandes. Sachant que les consoles de cet orgue, nouvelle conception, pourront être équipées pour satisfaire au problème posé, de trois claviers en moyenne, de 61 touches, d'un pédalier de 32 touches, d' une cinquantaine de commandes que nous allons décrire, au niveau de chaque clavier et de 50 à 100 jeux(en moyenne) sur un orgue de dimension moyenne, il faut donc pouvoir prendre en compte 400 à 500 entrées digitales ou binaires ainsi que 250 sorties digitales correspondant aux voyants lumineux et affichages des commandes sur la console. (voir l'annexe: 2, 2A, 2B qui représente le schéma des commandes de l'orgue) Les commandes de registration sont à "double entrée"; il est possible de commander ces contacts de commande soit par l'ordinateur, soit manuellement par les contacts. La barre de commande ergonomique de ces commandes constituées de contacts, est affectée tout de suite au dessus de chaque clavier de toutes les consoles; elle permet de réaliser, tout en jouant, une modification de la registration, un changement virtuel de clavier, une transposition, un accouplement de clavier, ......etc.... ....(voir schémas en annexe :2, 2A, 2B) Toutes les commandes sont ergonomiques et pourront être effectuées tout en jouant, du bout des doigts. Une barre de commande est aussi affectée au pédalier et pourra être placée sous le troisième clavier. Cette barre sera réduite uniquement à des contacts relatifs au choix du clavier ou pédalier ainsi que des contacts pour les accouplements-tirasses.(annexe:2B) Peut être conservée, la pédale d'expression qui pourra aussi être programmée de la même manière. La pédale d'expression est constituée d'un ensemble de contacts qui correspondent à 1' ouverture de volets du buffet plus ou moins grande qui permet d'atténuer ou d'augmenter le volume du son de certains jeux. Cette transmission est généralement mécanique. Mais il est tout à fait possible de passer par la commande numérique en utilisant un fichier spécifique de la norme MIDI sur 4 bits ce qui permet de disposer de 16 positions pour les volets. Un relai optoélectronique en sortie d' un calculateur de sortie pourra commander diffèrentes positions d'un moteur ou d'un vérin.(annexe: 14) Par contre, en raison des diffèrentes possibilités de la commande numérique, il n'apparaît pas nécessaire de maintenir une pédale de crescendo. Pour transformer ce nombre important d'entrées parallèles en un flot de données sérielles à haut débit, on utilise donc des calculateurs de type VLSI ou autres.(voir les caractéristiques de ce type de réseau en annexe: 16) Pour éviter une baisse du débit, les transferts entre microcalculateurs doivent pouvoir être programmés pour être automatiquement synchronisés par séquence d'octets. Par ailleurs, le principe adopté pour assurer un débit maximum est de limiter le nombre d'octets constituant les information relatives aux données musicales, est de prendre en compte seulement les CHANGEMENTS d'ETAT des entrées digitales. Les informations en annexe montrent que les Transputers pour un mode de réalisation, par exemple, sont parfaitement adaptés à ces contraintes. Les principes d'utilisation de ces calculateurs montrent qu'il est possible de lier ces calculateurs sous différentes formes de réseaux qui pourront être adaptés au cas de l'espèce. Ces calculateurs sur cartes avec entrées et/ou soities digitales sont des microprocesseurs capables de communiquer entre eux par des liens séries à très haute vitesse(20Mbits/s) selon 4 liens différents. Les cartes Transputer utilisées dans le cadre d'un mode de réalisation présentent les caractéristiques suivantes: - un microprocesseur cadencé par une horloge à 30 Mhz, - 64. 128 ou 256 entrées digitales parallèles lesquelles seront connectées aux touches des claviers, aux contacts des registrations et aux autres contacts de commandes, Sur ces cartes, il est possible de trouver des sorties digitales qui permettront d'être reliées aux voyants et aux systèmes d'affichage des commandes des consoles. - 64, 128 ou 256 sorties digitales auxquelles seront connectées les cartes de puissance constituées de relais optoelectroniques qui commandent les electrovannes des vérins pneumatiques des tirettes de sommiers et les electroaimants des soupapes de tuyaux. Les entréesisorties sont en logique TTL O - 5 V. Le nombre dépend essentiellement du système de gestion des piles de données afin de ne pas réduire leur transmission(Buffer, Fifo, system mémory, annexe: 15) - 4 liaisons série haut débit à 20 Mbps (Link). Il faut prévoir donc des cartes avec entrées digitales seules, avec entrées et sorties et avec seulement des sorties digitales. Ainsi. grâce à une importante possibilité de traitement et une horloge rapide. le calculateur de tvpe Transputer. par exemple. peut convertir le flot parallèle de données en un flot série sur des durées très brèves. De plus, ce lien série permet de joindre les consoles entre elles et au buffet par seulement 4 fi1s(données+ fils de contrôle). Il sera aussi judicieux de choisir ou de réaliser des cartes avec des entrées/sorties digitales en nombre assez important par exemple de 128 ou 256 et plus mais en s assurant que le nombre des E/S parallèles ne nuit pas à la vitesse de transmission des donnees. En ce qui concerne les fichiers informatiques de transmission de données: Dans ce type d'approche, la question se pose toujours de savoir s'il faut se rapprocher d'une norme de communication existante ou développer sa propre norme. Pour des raisons de compatibilité, il paraît plus judicieux d'utiliser directement le standard MlDI(musical instrument digital interface), étant donné qu'il est nécessaire de raccorder nos fichiers informatiques aux logiciels ou instruments du marché utilisant tous, ce standard. Son utilisation immédiate évite la transformation de fichiers propres dans un second temps. L'avantage de ce standard est de tenir compte de la spécificité des commandes des constructeurs et il sera donc possible de tenir compte aussi de nos differents besoins. Néanmoins. il est possible de réduire ces fichiers pour obtenir des gains en transmission sérielle et de les transformer après coup en fichier MIDI. En ce qui concerne la génération de claviers virtuels. il a été précisé dans le problème posé que l'inforsnatlon èlêmentaire du système était la note d'un claslertphvslque et virtuel) Par conséquent et obligatoirement. pour résoudre ce problème chaque clavier devra disposer d'une barre de commande permettant d'effectuer toutes les commandes citées précédemment et appeler les claviers virtuels disponibles. L'annexe:2 avec 2A, 2B représentent la console-maître avec les différentes barres de commande sur chaque clavier ainsi que le contenu de ses barres de commande. Il s'agit de de quelques propositions de commande mais elles ne sont pas limitatives. On pourra observer qu'à partir de chacune de ces barres, il est possible à l'utilisateur d'effectuer toutes les commandes nécessaires pour son interprétation. les mains sur le clavier avec l'extrêmité des doigts. *Programmation des commandes et information des utilisateurs. La distance relativement importante qui peut exister entre les consoles et l'orgue en raison du problème technique posé, oblige pour des questions de commodité de pouvoir charger les programmes des transputers, configurer l'orgue, enregistrer ou restituer les pièces jouées etc... à partir de toutes les consoles. (On peut trouver la console et le buffet d'un orgue symphonique au niveau du 3ème étage d'un immeuble et parfois plus haut!!!) Par conséquent, le sytème doit pouvoir être démarré et configuré à partir de toutes les consoles en évitant les désagréments de va et vient à la tribune de l'orgue. C'est une partie des contraintes du probléme technique posé. Pour faire face à cette contrainte, on est conduit à utiliser un ensemble d'ordinateurs en réseau classique qui permet de toutes les consoles d'initialiser le système de charger les calculateurs au démarrage d'un ou des orgues, de mémoriser les registrations de l'orgue. d'enregistrer les pièces jouées de restituer les morceaux joués etc.. La résoltion dtl problème technique posé s'appuie donc sur I 'ttilisation: - d'un réseau spécifique de microcalculateurs pour la saisie des entrées sorties digitales et le transfert "automatiquement synchronisés" des données vers les organes d'exécution des buffets de l'orgue, cet ensemble représentant la partie dynamique de la commande numérique, - d'un standard de transmission de données musicales proche du standard MIDI avec la transmission seulement des changements d'état et permettant l'accès à tous les logiciels et instruments du marché. - et d' un réseau d'ordinateurs dont un ordinateur seulement sera lié à un des calculateurs de traitement de la commande numérique pour l'initialisation, le chargement et l'utilisation(gestion) de la commande numérique, ce second ensemble représentant la partie passive. ORGANISATION GENERALE: La configuration générale retenue est donc un système à double réseau informatique: - un réseau informatique classique d'ordinateurs qui permet à chaque interprète à partir d'un ordinateur de démarrer l'orgue et de configurer sa console comme l'ensemble des orgues. Saisir les données musicales, les restituer, transposer les notes, de manière générale d'effectuer toutes les opérations de gestion prévues sur la commande, etc... enannexenl. II peut aussi programmer manuellement sa registration par des contacts à "double entrée" sur chaque console et la contrôler sur l'écran de l'ordinateur et la mémoriser, par exemple. On peut donc modifier la registration soit manuellement soit à partir de l'ordinateur grâce à ces contacts à "double entrée". (Par contact à double entrée, nous entendons un contact susceptible de changer d'état virtuellement, soit par une impulsion au niveau du contact enregistré par la commande soit en utilisant un fichier de registrations utilisé par le programme chargé dans le réseau d'ordinateurs et les programmes chargés dans les calculateurs TE0.j.) La technologie évoluant très vite dans ce domaine, un réseau de type NOVELL, Workgroups ou celui qui est intégré dans WINDOWS 95, produit de Microsoft(suivant le compilateur choisi ou l'environnement de développement) etc. correspond aux besoins et sera le système d'exploitation(plate-forme) support de la compilation et de la programmation. Un ordinateur du réseau informatique sera affecté à chaque console si bien que chacun des interprètes pourra préprogrammer ses intentions pour sa console voire modifier toute la configuration musicale d'un ou des orgues. Mais le rôle prédominant et indispensable d'une programmation avec un système d'exploitation(plate-forme) pour réseau d'ordinateurs est de pouvoir charger à partir d'un ordinateur quelconque attaché à une console, les programmes de la commande numérique dans le réseau de transputers à chaque mise en marche de l'orgue et éventuellement d'initialiser l'ensemble du système. -un réseau de commande de l'orgue à parier de calculateurs. Les performances des systèmes construits autour des microprocesseurs conventionnels (ordinateurs de type PC) ne permettaient pas d'obtenir les résultats escomptés pour la transmission 'des données de la commande.(délai de temps et distance, annexe: 16) Les systèmes de traitement de l'information à base de calculateurs à architecture parallèle et à liaisons sérielles à haut débit autorisent la réalisation de ce projet car il est possible d'éviter la baisse du débit de données dans le réseau en programmant les transferts entre calculateurs qui seront automatiquement . synchronisés, par séquence d'octets. Les calculateurs retenus pour l'étude de faisabilité et un mode de réalisation de l'invention sont donc des Transputers; mais tout autre calculateur de même architecture aurait pu être utilisé. Les cartes réalisées avec ces Transputers par le LIRM de Montpellier ont été retenues pour cette étude de faisabilité et la réalisation du prototype en raison de la commodité et des entrées/sorties digitales disponibles sur ces cartes. il faut remarquer qu'une console constitue un ensemble et à ce titre peut être considérée comme un sous-réseau du réseau de la commande numérique. (annexe: 3) Dans un premier temps. il est indispensable d'étudier la forme du réseau avant toute réalisation: par exemple. ces calculateurs trouvent une application tout à fait remarquable dans le calcul des transformées de FOURIER avec des structures de type pipe-line.(annexe: 16) Dans ce cas la forme spécifique du réseau est une "structure en rateau" avec une forme d'intelligence qui permet d' ajouter ou d'allonger "une dent" du réseau sans avoir à modifier la conception générale de la commande numérique. Cette construction particulière s'appuie sur un développement de la théorie mathématique des Fonctionnelles (fonction de fonctions) où: # = # { R0 (T00, T10, T20, T30, .. ..., Tn0),........, R2(T02, T12, T22, ... Tm2)... ...., Rp(T0j, T1j, ... Tip),..... ... } est la fonctionnelle de Rj(Tij) la fonction sous-réseau j et Tij la variable réprésentant le calculateur i du sous-réseau j, si elle dépend de toutes les valeurs prises par les fonctions Rj(Tij) quand T varie dans les intervalles: 0 # i # a, 0 # j # b. En fonction des caractéristiques des composant utilisés, il est possible de montrer que sur un intervalle [0,a] ,[0, b] quelles que soient les valeurs discrètes de i et j, il existe une fonctionnelle qui n'est pas modifiée. En d'autres termes, il est possible d'ajouter autant de sous-réseaux et de calculateurs nécessaires à la structure en réseau de type rateau de la commande numérique sans en modifier son fonctionnement sur l'intervalle défini. Par ailleurs, il est montré que cette structure constitue la structure optimum pour le transfert et traitement des données, eu égard au problème technique posé. Pour la compréhension de l'invention, la solution technique apportée au problème technique posé apparaît très largement suffisante pour l'homme de l'art. Les développements mathématiques justifiant notre approche sont donc sans intérêt pour la réalisation de l'invention. PRINCIPE DE FONCTIONNEMENT: Le principe retenu est un multiplexage traditionnel(c'est-à-dire un balayage de tous les états de la ou (des) console(s) des orgues(environ 300 fois, s) et on ne retient que les états qui changent sur des données de 16bits deux octets, voir explications dans l'annexe: 14) ou plus s'il faut prendre en compte la dynamique des touches du clavier. Les deux réseaux sont liés entre eux par une interface "unique" Calculateurs;PC sur la console-maître, TO, O. C'est la seule différence qui existe avec les consoles-esclaves. L'annexe n 1 montre très précisément le point de raccordement des deux réseaux. Pour ce multiplexage, on doit donc retenir des calculateurs assez puissants disposant d'au moins 64 entrées physiques et plus( 128 ou 256 pour diminuer le nombre de cartes disposant d'un calculateur et abaisser le coût). On associe un calculateur à un ou plusieurs claviers de 61 notes et pédalier et un ou plusieurs calculateurs pour les registres et les différentes commandes. Toutefois, il est possible de réduire le nombre des calculateurs avec des cartes conçues spécialement et disposant de plus de 64 entrées/sorties digitales, c'est-à-dire 128 ou 256. Cette technologie utilisant le principe des réseaux permet donc de relier entre eux tous ces calculateurs(composants du type VLSI programmables) et de restituer sur des calculateurs de sortie commandant les electroaimants d'ouverture des tuyaux d'un orgue, les ordres de commande des consoles sur des temps très courts. De plus, avec cette logique, cet ensemble permet de simuler un nombre important de claviers virtuels alors que la conception de base d'une console est de trois claviers réels et un pédalier; ce schéma s'applique à toutes les consoles connectées.(limite fixée dans notre cas à 16 canaux par la norme MIDI mais il sera possible d'aller plus loin avec la nouvelle norme) En fait, il appartient à l'organiste d'appeler un des 16 claviers virtuels qui l'intèresse pour l'appliquer à un des trois claviers réels de la console. Ces calculateurs programmés et liés entre eux par des liaisons sérielles, sont donc connectés à un SEUL ordinateur du réseau informatique par un calculateur de traitement et une interface qui permettent de préprogrammer. à travers les ordinateurs du réseau les intentions de l'organiste. d'enregistrer son jeu. de le transposer. de le restituer ou de jouer directement une composition à partir de l'ordinateur avec le nombre de voix et les registres désirés, de diffèrer le jeu des notes jouées ... . etc INTELLIGIENCE DU RESEAt; et PROGRAMMATION DES CALCULATEURS TEij DE LA COMMANDE NUMERIQUE. Pour expliquer techniquement l'intelligence définie dans le cadre de ce réseau spécifique "dit en rateau" et résoudre le problème technique posé, il faut expliquer les grandes lignes de fonctionnement de quelques unités élémentaires, calculateurs Transputer TEij représentatives de la commande numérique. Il s'agit essentiellement du calculateur - type TEij dont la fonction est de saisir les changements d'état des notes, des contacts de la barre de commande et des registres. Les fonctions du calculateur TEi. i gestion du clavier i de la console i: L'annexe: 4 en annexe représente la tâche du Transputer TEi et l'organigramme de programmation de cet élément figure dans l'annexe: 5 et 6. -I1 réceptionne les données digitales sur le lien parallèle en logique TTL émanant des touches du clavier ou des contacts de la barre de commande (voir la présentation sur l'annexe: 2) située au dessus de chaque clavier suivant l'affectation des eptrées digitales du calculateur. - I1 traduit dans un format de fichier les données(par ex: MIDI) et ne transmet que les changements d'état. - Il assure aussi la réception par le lien série, des données du Transputer TEi+l j par le link( 1) - il transmet par le lien série l'ensemble des données au transputer TEi-lj par le lien link(0) Le principe de cette programmation est une prise en compte d'une exécution par une boucle infinie.(annexe:5) Les messages(statut+donnée) provenant de TEi+i j sont directement transmis vers TSiJ (transputer de sortie commandant les electro -aimants des soupapes par une interface de relais optoelectroniques) Ce type de relais est préconisé. étant donné qu'il permet d'isoler electriquement la commande numénque. L'ensemble des traitements des données du port parallèle est basé sur l'utilisation de masques pour extraire les commandes qui ont changé d'état. Il faut noter que les entrées sont configurées pour qu'un I représente bien une touche enfoncée et un 0 une touche relâchée. Pour respecter le principe de la transmission unique des changements d'état, les entrées à un temps t-l sont sauvegardées dans une matnce qualifiée entrée t-1 z cet les entrées au temps t dans un second tableau entrée t[ ]. Un entier étant codé sur 32 bits(caractéristique du Transputer), il faut donc deux entiers pour couvrir 64 entrées des calculateurs par exemple, ou 4 entiers pour 128 entrées etc .... suivant la configuration de la carte utilisée. La comparaison de ces tableaux est réalisée par un opérateur logique XOR issu de l'environnement de développement Microsoft parallèle utilisé pour programmer les calculateurs et donne un tableau m [ ] où un 1 signifie que l'état de l'entrée correspondante a changé. Un autre opération logique ET effectuée entre m [ ] et entrée t [ ], mémorisé dans n [ ], indique le changement d'état (ON ou OFF) de la touche ou du contact. L'exemple çi-après permet de comprendre la logique de la transmission unique des changements d'état (seule une partie du clavier est pris en compte): entrée t-l[]: 0010010010 touches 3,6 et 9 enfoncées, entrée t [ ]: 1010000010 touches 1,3 et 9 enfoncées, m [ ]= XOR(e t-l,e t) 1000010000 touches 1,6 changent d'état, n [ ]= ET(m, e t) 1000000000 touche I enfoncée, touche 6 est relachée. Une fonction silence( ) provoque la mise OFF de toutes les notes lorsqu'un des contacts des registres est utilisé.(ALL~NOTES OFF, voir norme MIDI et les différents organigrammes) En effet, si le canal d'émission(ensemble des jeux choisis) change pendant qu'une touche est enfoncée le récepteur(calculateurs de sortie) ne recevra pas le message de note OFF lorsque la note sera relâchée: le son sera donc maintenu en permanence. En utilisant cette fonction qui s'appuie sur une partie du fichier de la norme KlIDl le problème est résolu. Suivant le type de contacts des touches du clavier rencontré, la fermeture du contact peut ne pas être franche, il s'agit donc d'intégrer le temps de fermeture sur des temps plus ou moins longs qui peuvent aller jusqu'à 5 ms. Enfin, la position des contacts de la barre de commande gérant les permutations et accouplements détermine le ou les canaux de la norme MIDI sur lesquels les messages de notes sont envoyés. Toutefois, il faut remarquer qu'il existe une différence substantielle entre une permutation de claviers et un accouplement. Dans le premier cas, il s'agit d'une substitution de claviers ou pédaliers et dans l'autre une addition de claviers et/ou de pédaliers. Sur le plan informatique, on remplacera un canal par un autre pour la permutation et pour l'accouplement, on associera plusieurs canaux. Les fonctions du calculateur de traitement TEO.i gestion de la console j: Le calculateur TEO,O qui appartient à la console-maître fait le lien avec le réseau de PC, l'organe de gestion; c'est la seule différence avec les autres calculateurs de traitement des autres consoles. Il est donc possible de lui affecter les fonctions de: * réception de données extérieures. Il pourra s'agir: - des tableaux des registrations programmées sur le PC par l'organiste via le linkO, - des registres sur le port parallèle, - des données (notes, claviers ou pédalier via le linkl,) - des changements de morceaux, de mouvements et de registrations, - des transpositions de notes, - des délais de temps avec lesquels les notes doivent être jouées - réception des données des transputers TE(), 1 à n par le link3 des autres consoles. * traitement de données - de la mise au format MIDI des données relatives aux registres, - de la gestion des changements de registrations, * Emission de données: - du transfert des données vers le calculateur de gestion des données MIDI par le link2 - changer les états des contacts des registrations (sur les entrées digitales des calculateurs) Ce calculateur TE0,0 fonctionne dans le cadre de ce réseau spécifique également en boucle infinie et prend par conséquent en compte tous les ordres venant des ordinateurs du deuxième réseau par l'intermédiaire de la seule interface PC/Transputer et en particulier un tableau de changement des registrations et des morceaux qui aura pu être pré-progammé par les organistes avant l'utilisation de l'orgue. I1 transmet à l'ensemble des Transputers TEO,l à m ces informations. Dans l'organigramme de fonctionnement de TEO,i (annexe:5) et de programmation des registrations, il apparaît la variable mess pc. Lorsqu'elle est égale à 0, I'utilisateur n'a . pas programmé de registrations sur le réseau PC, si cette variable est égale à 1, le ou les organistes ont programmé des registrations sur le PC et il peut donc utiliser les contacts de la barre de commande pour appeler les diffèrentes registrations lors de l'exécution d'une pièce. Lorsque les tableaux des registrations sont remplis et tant que la variable mess~pc reste à 0, c'est-à-dire lorsque l'organiste ne veut pas saisir des changements de registrations, il est alors possible d'effectuer les traitements suivants: - les données provenant de TEI sont transmises vers le Transputer TMIDI après une éventuelle transposition ou un différé .. .. pour les notes jouées .. etc - la saisie des entrées parallèles des registres est identique à celles des notes: seule la mise au format MIDI diffère car il est nécessaire d'utiliser des messages exclusifs et des changements de programme. (annexe: 14) Dans cet organigramme explicatif (annexe: 5), il est tenu compte des changements éventuels de registrations préprogrammées des pièces. Cette actualisation de la registration est réalisée à partir des contacts de registration manuelle sur la console et mémorisée à partir de la barre de commande du clavier pris en compte. La fonction silence ( ) est aussi programmée; elle provoque la mise OFF de toutes les notes lors d'un changement de registration pour les mêmes raisons que précèdemment.(annexe:I4) Une intégration du temps est réalisée pour prendre en compte le temps d'ouverture et de fermeture des jeux de 0,3 seconde. Enfin, en raison de la structure même du réseau de la commande utilisé, on peut s'apercevoir qu'il est possible de connecter autant de consoles voulues par le 4ième lient link(3) du calculateur voir les annexes:3, 4 et 13] sans qu'il soit nécessaire de modifier la programmation des calculateurs. Il suffit donc que les liens entre consoles soient réalisés physiquement avant la mise en marche de l'orgue et le chargement des calculateurs. A la première mise en marche, le programme commun aux ordinateurs du réseau demandera de déclarer le nombre de consoles utilisées et le nombre de claviers de ces dernières ainsi que l'ensemble des calculateurs de sortie avec les jeux et le chargement de tous les calculateurs sera fait donc automatiquement. Cette configuration sera mémorisée et à chaque mise en marche de l'orgue S. (ou ensemble des orgues) , cette configuration sera retenue. Programmation de la prise en compte du nombre de claviers d'une console et du nombre de consoles utilisées: Cette programmation consiste en fait. en une déclaration dans un fichier qui permettra la configuration des nouveaux calculateurs à l'initialisation. Pour un nouveau clavier, il suffira de recopier le programme de TEi,j dont l'organigramme a été déjà donne dans l'annexe ne:13. et de lui affecter un nouveau nom TEi I j et de prendre en compte éventuellement les considérations nouvelles du programmeur. L'insertion d'un clavier se justifie dans la programmation de la commande numérique et il n'est pas nécessaire de se limiter à des consoles identiques de trois claviers; En effet, il est possible de trouver des consoles de 4 ou 5 claviers. Ces consoles généralement de tribune pourront être conservées comme console-maître. Toutefois, un nombre de claviers dépassant trois n'apporte rien, ni à la commande numérique, ni sur le plan musical. Mais l'apport sur le plan musical de cette commande numérique laisse penser qu'il n'est vraiment pas nécessaire d'utiliser des consoles de plus de TROIS claviers pour bien des raisons et en particulier pour des raisons ergonomiques d'utilisation. Le principe en langage C parallèle est présenté dans l'annexe: 13. Ce programme permet de connecter TE2 à TEl par exemple. Pour l'insertion d'une nouvelle console, c'est le même type de programme qui sera utilisé mais au lieu de déclarer un seul calculateur, on déclarera en même temps l'ensemble des calculateurs de la console qui constitue un sous-réseau. Le programme pourra être conçu de manière simple pour déclarer automatiquement l'ensemble des calculateurs d'une même console. 11 suffit de donner deux indices aux calculateurs dans la programmation. TEI et TE2 du programme de l'annexe: 13, se transformeront en TEij et TEij+l avec i variant de 0 au nombre de calculateurs dans la console et j étant le numéro de la console. Passage des calculateurs de saisie des données aux calculateurs de sorties sur les jeux: ROLE des calculateurs de traitement de la console-maître. II est possible de transmettre les données saisies directement du calculateur de traitement TEO au calculateur de sortie TS0. Toutefois, pour permettre la connexion de la commande numérique à des instruments de la norme NIIDI. on est tenu de décomposer le calculateur de traitement (I) de l'annexe: 1, assurant la connexion avec le réseau de PC et les calculateurs de sorties, par l'utilisation de deux transputeurs comme présenté dans l'annexe: 7. L'un assure la liaison entre le PC et la commande numérique pour sa gestion l'autre assurant le transfert et la saisie des données musicales par le calculateur TNIIDI; ce dernier assure le multiplexage des données provenant du calculateur de traitement de la première console-maitre TE0,0 et de l'interface MIDI du PC ou allant vers un générateur de sons ou tout autre instrument disposant de la norme MIDI. Toutefois, cette interface MIDI présente un inconvénient majeur; sa vitesse de transmission des données de 31 Kbauds/s est limite pour le transfert des données de 16 voix en même temps. Pour pallier cette carence, il est néanmoins possible d'utiliser une carte transputer à la place de l'interface MIDI et de la programmer pour ne pas être limité par cette vitesse de transfert avec un logiciel de type MIDI. En effet, la communication par liaison sérielle à 31.250 Bauds/s permet la transmission de 3000 octets/s. Si le temps de base de la transmission prenant en compte le pouvoir séparateur de l'oreille est de l'ordre de 1/200ème/s, il sera possible de transmettre 7 à 8 notes. Avec la commande numérique, la vitesse de transmission est de 2OMbits/s. Il sera donc possible de transmettre 645 fois plus de notes dans le même intervalle de temps. Carte Transputer/ MIDI et interface RS232/ norme MIDI. (raccordement aux instruments à la norme MIDI) La carte transputer utilisée dans ce cas est plus modeste et comprend: -un calculateur du type transputer en architecture 16 bits, -4 Ko de mémoire vive en interne(dans le microprocesseur), -64 Ko de mémoire vive en externe(sur la carte), -une horloge à 25 Mhz, - seulement deux liens diffèrentiels à 20 Mbits/s, - deux ports série RS422, - et deux ports série RS 232 qui permettront de faire le lien avec l'interface MIDI de l'ordinateur ou les instruments à la norme MIDI. Afin de réaliser cette carte Transputer,'MIDI de communication avec des instruments à la norme MIDI, il est nécessaire de réaliser une carte interface RS232.norme .lDl.(annexe: 7 et 15) Cette norme impose l'utilisation de connecteurs DIN 5 broches à 180 degrés: deux types de pnses sont retenus dans la norme MIDI IN et w11Dl OUT. * II s'agit donc de passer d'une sortie RS232 de la carte calculateur à une interface MIDI ou à un instrument à la norme MIDI, à condition bien sûr que le système concerné soit capable de tenir le taux de transmission de 32 Kbauds. Dans notre cas, ce n'est pas un problème, étant donné que les liens sériels des transputers fonctionnent à 20 Mbits/s. Mais lors de l'exécution d'une pièce, si le transfert des données n'est pas ralenti entre le calculateur de la console-maître TEO,0 vers TSO,0 l'enregistrement par la voie du lien MIDI connaîtra des retards. Toutefois, toutes les données émanant des transputers devront être au préalable empilées avant d'être envoyées sur les liaisons MIDI IN et OUT de plus faible vitesse. Cette interface combinée RS 232/MIDI doit entre autre permettre d'attaquer une chaîne de communication avec n'importe quelle interface RS 232 existante.(annexe:7) En effet, toutes les cartes dotées de calculateurs de type VLSI ne sont pas nécessairement équipées de liaison RS232 classique. C'est le cas de la carte utilisée et présentée dans un mode de réalisation de l'invention. En effet, le passage/conversion des données parallèles du calculateur en données sérielles se fait par l'intermédiaire d'un circuit spécialisé appelé UART.(Universal Asynchronous Receiver transmitter) En l'absence d'une véritable liaison RS232, il est possible de programmer le calculateur par l'intermédiaire de fonction charout( } et charin{ } du langage C parallèle et c'est lui qui assure la transmission ou la réception des données de bit à bit. Etant donné qu'il est indispensable que les notes soient transmises dans l'ordre où elles ont été jouées, cette gestion de stocks de données ne pourra se faire que par une méthode de type FIFO: " la première note qui arrive est la première qui repart". La solution consiste donc pour ne pas ralentir le système de transmission à ne pas émettre ou à recevoir une donnée si l'UART n'est pas prêt à le faire et à utiliser deux piles annexes pour empiler les octets reçus des liens MIDI lN 1 et 2 obéissant au même principe de gestion. Ainsi les données ne se mélangent pas. Les annexes n 8 et 9 présentent l'organigramme du fonctionnement de la gestion des données entre le réseau de la commande numérique et l'interface VIIDI On voit un nouvel intérêt de cette commande numérique. Si le système du buffet de l'orgue générant les sons(soufflerie, sommiers, jeux, .....) tombe en panne, on peut sortir automatiquement sur un générateur de sons. Le prototype réalisé a permis d'alimenter en données musicales indifferemment, les transputers de sortie TSij commandant les registres et les electroaimants des soupapes, l'interface MIDI pour la saisie des notes jouées sur un logiciel d'édition de partitions ou un générateur de sons qui se substituera automatiquement aux jeux de l'orgue en cas de panne. De même, il a été possible de jouer une mélodie écrite sur un éditeur de partition à l'ordinateur et de l'accompagner à partir d'une console. Restitution sur les calculateurs de sortie TSi.i des données relatives à la registration et aux notes des claviers. En général, pour faciliter le travail de l'organiste, les jeux sont répartis par genre (jeux de fonds, jeux d'anches, mixtures)sur la console. I1 est possible de ventiler les jeux de fonds ou à bouche aussi en fonction de la taille) Une organisation identique peut être reprise au niveau des calculateurs pour une question de commodité. L'annexe:3 montre qu'il est possible de répartir les calculateurs de la même manière en affectant les jeux de fonds à la ligne TSo,o, les anches à la ligne TSO,1, etc jusqu'à TS0J et de ventiler ces diffêrentes catégories aussi dans les diffèrents buffets des orgues. Parmi les transputers de sortie, nous rencontrons deux types. Les premiers servent au traitement, à l'orientation des données et à leur restitution et les seconds à la restitution des données musicales(notes). Les premiers de traitement TSOJ -réceptionnent les données au format MIDI provenant du calculateur T/MIDI par le lien (0) ou de TSO,0 par le lien (2) etc... . (annexe:3 et 10) -assurent aussi le changement de registration par la commande d'électrovannes commandant les verins pneumatiques de tirage des registres et transmettent les données des claviers ou des pédaliers vers les calculateurs agissant sur les electroaimants des soupapes pour jouer les données musicales correspondantes,(étant entendu que ces calculateurs peuvent aussi restituer les notes jouées) -et transmettent les autres données vers les autres calculateurs par le lien 1 ou 2. Par conséquent TSO,O peut orienter les données vers TSî,o par le lien(l) ou vers TS0J par le lien(2) pour la commande d'un autre type de jeux et la transmission des données musicales affectées à ces jeux. Par conséquent, toutes les données autres que les registrations sont transmises aux calculateurs TSI à nj. TS Otj pourra être aussi éventuellement un autre buffet. Le principe de la programmation utilise comme précédemment des masques pour extraire les modifications de registrations qui sont transmises sur les sorties parallèles digitales(annexe: 11 et 12 pour l'organigramme) Les seconds TS1J -réceptionnent les données musicales du calculateur de traitement TS07i, -peuvent aussi assurer l'ouverture du registre correspondant aux notes musicales, - traitent les données relatives aux claviers et pédaliers en envoyant l'information sur les sorties digitales, -et enfin, transmettent les autres données vers le calculateur suivant. (annexe: 10 et 12 pour l'organigramme). La barre de commande de chacun des claviers et des pédaliers: A chaque clavier, comme cela a été expliqué, correspond une barre de commande à caractère ergonomique. Les figures: 2 et 2A et B montrent les principales fonctions qu'il est possible d'affecter à chaque clavier. Pour un clavier donné, ces contacts permettent de sélectionner le canal MIDI sur lequel seront émises les notes jouées.(Ces canaux sont limités à 16; c'est-à-dire que nous serons limités par la norme MIDI à 16 claviers et pédaliers virtuels pour l'ensemble de l'orgue avec des canaux propres: les autres consoles feront des emprunts: c'est-à-dire. la console O et les suivantes doivent utiliser quelques uns des 16 canaux disponibles. Il est néanmoins possible de prendre des statuts spécifiques de la norme MIDI et de porter ce nombre à 128; par ailleurs, la norme MIDI va augmenter son nombre de canaux.) Si aucun contact n'a été appuyé, le canal n'est pas mémorisé et le clavier est muet; si plusieurs contacts de registres sont connectés, les notes seront émises sur les canaux correspondants enregistrés. Il est possible de remarquer que les jeux pourront être joués aussi bien sur le pédalier que sur un des claviers. Pour affecter les jeux nécessaires à un clavier ou au pédalier manuellement, il suffit de donner un numéro de 1 à 12 ou Pl à P4 au clavier ou au pédalier et d'appuyer sur les contacts des registres (sélection manuelle des registres) et de les mémoriser par le contact E dans les transputers TE0,0 à m, dans les mémoires contenant les registrations. Cette opération aurait pu être faite aussi au préalable par le logiciel du PC. Néanmoins, cette possibilité de correction manuelle des registres est indispensable pour une mise au point des registres lorsque l'interprète joue. Si l'organiste trouve la registration bonne, il pourra alors la mémoriser dans un fichier du PC en appuyant sur le contact E.(enregistrement des registres) Toutefois, le choix réalisé conduit à ne retenir que la dernière régistration choisie à partir de chaque clavier sans qu'il soit nécessaire de la mémoriser; ce qui veut dire que chacun des organistes peut de sa console modifier la registration des 16 claviers(claviers et pédaliers) virtuels de l'orgue. "Le principe choisi consiste à considérer que la dernière modification est retenue par la commande." Néanmoins, il est nécessaire de la mémoriser si cette registration doit être utilisée à plusieurs occasions. Les autres contacts servent à incrémenter ou décrémenter la valeur de la transposition. le numéro du morceau et du mouvement. la durée du différé d'une note jouée avec une affectation des notes diffèrées à un clavier déterminé. . ..etc... . La même note peut être aussi diffèrée plusieurs fois. Pour une question de stabilité de la commande des registres, une Intégration du signal est réalisée sur une durée de O.3s. Cette variable apparaît dans l'organigramme de l'annexe: 5. Il s'agit de l' organigramme pour la programmation de TE(). II est à noter que les contacts ne prenant pas une position déterminée qui peut-être visuelle, il est nécessaire pour connaître l'état des contacts de la barre de commande et des registres de disposer de voyants lumineux. L 'ensemble des sorties digitales des calculateurs d'entrée des consoles servent à alimenter les voyants lumineux affectés à chaque contact de la barre de commande et des registres. Pour connaître la registration correspondant à chaque clavier, il suffit d'appuyer sur le contact relatif au n de clavier de la barre de commande pour voir s'allumer les voyants lumineux des registres affectés au clavier choisi. Le contact E peut aussi avoir une double fonction d'une part d'enregistrer la registration mais aussi de signaler les registres choisis et mémorisés par le PC pour un clavier donné. Les contacts ENR et JOUER(annexe:2) sont liés directement aux logiciels d'enregistrement trouvés dans le commerce via les liens T/MIDI et la sortie MIDI OUT via l'interface MIDI du PC mais aussi avec le logiciel de gestion de la commande numérique(voir çi-après) par le lien Transputer/PC. Ces contacts doivent générer des fichiers MIDI spécifiques à chaque société de logiciels; il est donc nécessaire de demander l'information ou la "carte d'identite " MIDI du produit à ces sociétés. Autrement, l'enregistrement devra démarrer en le demandant au logiciel d'édition de partitions du commerce sur le PC. II est à noter que dans ces conditions l'organiste doit se retourner vers le PC pour lancer l'enregistrement avant de jouer. Néanmoins, il est possible d'enregistrer la pièce jouée avec le logiciel de gestion de la commande et de la rejouer pour l'enregistrer sur un logiciel d'édition de partition via le calculateur T/MIDI, après coup. Dans un mode simple. le ou (les) organiste(s) peuvent donc programmer manuellement les registrations qui sont mémorisées par les calculateurs de traitement et par l'ordinateur sur chaque console en appuyant sur le contact E du clavier choisi. Dans un mode plus technique, les registrations peuvent aussi être pré programmées à l'avance à partir de l'ordinateur par la génération de fichiers. Pour la gestion de la registration. deux compteurs permettent de préciser le numéro de la pièce et le numéro du mouvement qui sont affichés. Lorsque le voyant "aller à" est allumé, l'interprète peut aller directement par les contacts d'incrémentation au numéro désiré sans mouvementer les tirants des sommiers; il suffit d'éteindre ce voyant pour obtenir la registration numérotée et la modifier éventuellement. Elle pourra être ensuite mémorisée en appuyant sur "E". L'organiste pourra aussi transposer les notes jouées sur certains claviers en utilisant les touches d'incrémentation par pas de demi ton qui sont affichés sur un voyant de la barre de commande de chaque clavier. A tout moment, l'organiste pourra décider d'enregistrer la pièce jouée ou l'improvisation en appuyant sur la touche "ENR". L'enregistrement s'arrêtera en appuyant à nouveau sur la même touche. Le voyant lumineux s'éteint alors. Il pourra restituer son jeu en appuyant sur la touche "JOUER" et l'arrêter en appuyant sur la même touche qui éteint ce voyant. A l'aide de l'ordinateur, il pourra générer un fichier spécifique propre au logiciel utilisé. L'interface MIDI offrant des entrées-sorties MIDI, il sera encore possible d'écouter l'enregistrement directement sur 1' amplificateur d'un générateur de sons sans avoir à utiliser l'orgue. Il s'agit de quelques exemples d'illustrations de fonctions utilisables avec cette commande numérique mais toutes les possibilités sont envisageables. Tâche du réseau d'ordinateurs pour la gestion de la partie dynamique de la commande numérique. La tâche du réseau d'ordinateurs est réalisée à partir d'un programme permettant la gestion de la commande numérique. Les principales fonctions de ce programme sont -I'initialisation du système: Par initialisation du système. il faut comprendre la prise en compte des diffèrentes caractéristiques de la commande numérique pour un orgue ou des orgues déterminés. L'initialisation pourra etre réalisée dès le départ. pour un système standard normé comprenant: n consoles de n claviers de 61 notes et de m pédaliers de 32 notes en associant des barres de commande identiques. La programmation pourra aussi être à boucle infinie. Il suffira de déclarer le nombre de consoles utilisées et le nombre de claviers de chaque console et de sauvegarder les caractéristiques physiques de la commande numérique. En effet, il n'est pas possible de charger des programmes dans des calculateurs n'existant pas. Ainsi la commande peut fonctionner avec une ou deux consoles au départ et il sera possible d'ajouter par la suite d'autres consoles par une simple connection d'une prise qui ne sera que le lien sériel à haut débit d'un calculateur à un autre, sans qu'il soit nécessaire de faire une modification de la structure programmée. il en sera de même pour les calculateurs de sorties. Comme précédemment, il suffira de déclarer le nom des jeux utilisés, leur appartenance et leur spécificité. Par exemple: buffet n : 2, Type de jeux(fonds(l)... ..., anches(2) ou mixtures(3)): 2 jeu d'anches n": 8 nom: Trompette. A cette déclaration, correspondront les sorties digitales du calculateur ajouté ou d'une partie des sorties sur un calculateur déjà existant dans l'orgue: TSS,5. Par exemple, s'il s'agit du rajout d'un jeu, le facteur d'orgue connectera les sorties du calculateur TS n"8 à la suite des jeux d'anches constituant le Sème sous-réseau dans le 2émue buffet pour y associer la "trompette"; les trois premiers sous-réseaux correspondent au premier buffet, par exemple. L'organigramme fonctionne aussi en boucle infinie. Il est donc possible de rajouter le nombre voulu de jeux sans modification de la structure. Il suffit uniquement de les déclarer. L'organigramme de l'annexe:13 et la déclaration généralisée en langage C permet de comprendre la logique) Le programme devra pour l'initialisation de la commande numérique, tenir compte: + des cartes calculateurs avec le nombre d'entrées-sorties digitales parallèles pour la répartition de la programmation sur chacun des calculateurs, +du nombre de claviers pour la console i, +du nombre de consoles, +du nombre de jeux, caractéristiques avec ventilation des jeux par affinité et déclarations des calculateurs de sortie en fonction de leur position(cas de plusieurs buffets), +chargement des calculateurs de la commande numérique, Ces tâches d'initialisation étant terminées, ces informations doivent être sauvegardées pour qu'il soit possible de charger les calculateurs avec cette configuration à chaque mise en marche de l'orgue. La commande numérique fonctionne alors. Si par exemple, le Facteur d'orgue rajoute un jeu nouveau sur l'orgue, il lui appartiendra de réinitialiser le système en déclarant un nouveau calculateur de sortie et le nom de ce nouveau jeu comme vu précèdemment. Cette initialisation pourra se faire sur un des ordinateurs du réseau informatique. gestion du système: La gestion de la commande numérique permet à l'organiste comme nous l'avons déjà précisé de préparer sa registration en affectant aux 16 canaux (claviers et pédaliers) ou plus suivant la stratégie choisie, un ensemble de registres qui seront rattachés au numéro d'enregistrement de la pièce et du mouvement joué.(touches d'incrémentation des barres de commande) Les tâches qui devront être programmées suivant l'organigramme sont les suivantes: -enregistrement des registrations par numéro d'incrémentation pour les 1 6 claviers et pédaliers à partir des tableaux de registration. -saisie annexe dérivée du système de gestion pour la mémorisation des registrations sur disquette. ordinateur) -affichage des sélections de registres par numéro d'incrémentation (morceau, mouvement) des 16 claviers et pédaliers sur l'écran d'ordinateur de la console j. t-prise en compte de la modification de la registration par l'organiste sur la console, affichage des modifications et enregistrement de la nouvelle donne. -répartition des claviers virtuels sur les consoles avec accès interdit à certains claviers virtuels sur les consoles. (Supposons que quatre organistes jouent en même temps sur des consoles différentes, il sera par exemple possible d'affecter seulement trois claviers à chaque interprète pour éviter que l'un aille jouer sur le clavier virtuel de l'autre.) -enregistrement et restitution des pièces jouées par le lien I PC/transputer. ,.. . .. etc ............ Le programme du réseau d'ordinateurs PC réalisé pour le prototype permet d'enregistrer les notes et de les restituer; toutefois, il ne permet pas l'édition d'une partition. Il est indispensable de passer par un logiciel spécialisé du commerce comme cela a été fait pour le prototype(un mode de réalisation) en passant par 1' interface Transputer/norme MIDI décrite çi-avant. Observations générales: II est important de préciser que les diffèrents organigrammes pour la programmation des calculateurs correspondent à une présentation générale. La programmation devra en tout état de cause être adaptée à la stucture choisie et ventilée en fonction du nombre d'entrées/sorties digitales disponibles sur les calculateurs. En effet, si les cartes disposent de 256 entrées, il sera possible de connecter pour un calculateur d'entrée assurant le traitement des données l'ensemble des contacts des registres mais aussi des touches du premier clavier ainsi que de la barre de commande: ce qui ne sera pas le cas si nous avons des cartes avec 64 ou 128 entrées digitales. II faudra donc répartir les taches définies dans les organigrammes en fonction donc des caractéristiques des calculateurs. Par conséquent, en fonction du nombre des entréesvsorties digitales de la carte, la saisie de données pourra se faire sur un ou deux calculateurs au lieu de plusieurs. Le programme devra donc être adapté à la construction du réseau. Le programme développé pour le prototype présenté dans un mode de réalisation çi-après a pris en compte toutes ces variables mais il est possible de réaliser des développements plus importants. Il paraît plus judicieux d'adapter le programme aux matériels utilisés. Une autre propriété de ce réseau de calculateurs est de pouvoir transporter sans perte d'informations des données musicales sur une distance relativement importante(30m à 100 m, sans répétiteur) entre les consoles et le ler buffet et donc d'intégrer les consoles au milieu d'un orchestre ou dans une position souhaitée. Il s'agit d'une contrainte du problème technique posé. L'essai a été réalisé dans le cadre du protype(voir présentation à la presse du prototype justifiant le fonctionnement du brevet déposé.) Les principes proposés pour donner une solution au problème technique posé ne pouvaient être rigides et laissent une marge de manoeuvre dans la réalisation de la commande numérique en fonction des éléments informatiques disponibles sur le marché. La programmation n'est pas fournie car d'une part, elle ne peut pas faire l'objet de l'invention, d'autre part, un logiciel ne peut être breveté. Mai La réalisation d'une commande numérique pour mettre en oeuvre l'idée musicale conduisant à un nouvel instrument représente l'invention et le nouvel orgue (qui peut entre constitué de plusieurs buffets ou orgues) devient ainsi "véritablement symphonique". Cette invention conduit à l'augmentation des voix et des portées musicales pour le compositeur; actuellement toutes les partitions pour l'orgue contiennent seulement trois portées. La commande numérique permet donc de multiplier le nombre des consoles et par conséquent de jouer des partitions contenant une vingtaine de portées et plus avec trois ou quatre consoles et plus sur un même plan pouvant commander plusieurs orgues. Elle permet de jouer sous la direction d'un chef en déplaçant facilement la ou les consoles nécessaires à l'exécution de l'oeuvre sur un même plan. Les propriétés de cette commande numérique permettent un déplacement aisé et facile à partir de liaisons informatiques sérielles de plusieurs consoles afin de les placer dans le contexte désiré. Elles permettent ainsi une infinité de possibilités comme: - des permutations et accouplements de claviers aisés correspondant à des timbres sonores différents. - de jouer des pièces et compositions qui ne peuvent être interprétées par un seul organiste dans des bonnes conditions musicales, ...... .. etc etc.. - de jouer une composition à partir de l'ordinateur ou avec l'ordinateur en utilisant jusqu'à 16 canaux, pour le moment. Cette approche fournit aussi une infinité de possibilités de combinaisons d'utilisation très accessibles par le ou les organistes. Les systèmes informatiques actuels n'ont fait que se substituer aux systèmes mécaniques existants en permettant quelques innovations qui restent mineures et qui n'ont pas un but musical direct. L'invention proposée résoud le problème technique posé donc par l'idée musicale d'Olivier TERNON pour constituer véritablement une commande numérique conduisant à un nouvel orgue en utilisant cette structure informatique à deux réseaux X un réseau classique de processeurs pour la programmation et la gestion des commandes et un réseau de calculateurs dont "les transferts sont automatiquement synchronisés" et qui assurent la transmission des données permettant l'utilisation de plusieurs consoles en même temps et de nombreux buffets;.. Tout en simplifiant l'utilisation de l'orgue. la commande numérique augmente considérablement ses capacités musicales tout en créant un instrument qui n'a plus guère de rapport avec l'orgue traditionnel. I.4. PRESENTATION DES DIFFERENTES FIGURES. L' annexe: 1 représente le schéma de la commande numérique avec n consoles. Ce schéma laisse apparaître les deux réseaux informatiques dont il est question dans la solution apportée au problème technique posé. L'annexe: 1-A représente une possibilité d'utilisation de n consoles avec N orgues. L'annexe: 2 représente le schéma de la console-maître et le positionnement des barres de commande des claviers ainsi que le détail des contacts d'une barre de commande.(on pourra remarquer qu'il y a 12 claviers et 4 pédaliers virtuels et 3 claviers et pédalier réels par console). L'annexe: 2A représente la suite de la barre de commande avec un autre exemple de fonctions accessibles par la commande numérique; il s'agit de la transmission différée de notes jouées sur un ou plusieurs autres claviers. L'objectif de cette fonction est de pouvoir répéter les notes jouées x, 2x, 3x,.... secondes après sur des claviers diffèrents. 2B représente la barre de commande du pédalier; elle peut être placée sous le troisième clavier. Comme pour les claviers, elle génère des pédaliers virtuels. L'annexe: 3 représente une partie de la commande numérique mettant en relief le rôle des entrées et sorties digitales tant au niveau des calculateurs de saisies des données musicales que des calculateurs de sorties. L'annexe: 4 représente le schéma de deux calculateurs de la console-maître avec les entrées digitales de saisie des commandes. Le calculateur de traitement TEo,O en relation avec le réseau d'ordinateurs par le seul lien(0), saisit les données émanant des contacts des registres et indique l'état des registres par les voyants lumineux associés aux sorties digitales. Le calculateur de traitement TSo,l transmet par le lien 3 les données des autres consoles(sous-réseaux)(annexe :3). Le second calculateur de saisie TEij prend en compte les contacts de la barre de commande et donne l'état de ces contacts par les sorties digitales alimentant les voyants lumineux. Il peut prendre aussi en compte l'ensemble des contacts du clavier correspondant à la barre de commande. L'annexe: 5 représente l'organigramme de la tâche du calculateur -Transputer TEOJ. Tant que la variable mess-pc reste à 0, c'est-à-dire que l'organiste de la console j ne saisit pas de changement de registrations, le transfert des données est effectué éventuellement après traitement(transposition, notes différés, ). Cet organigramme conduit à un programme également en boucle infinie qui tient compte des messages provenant du PC afin de transférer le tableau des registrations enregistrées au préalable par l'organiste(cas où mess-pc=1.) L'annexe: 6 représente l'organigramme du programme du calculateur de saisie TEij. L'organigramme propose une exécution par boucle infinie pour prendre en compte les messages (statut+donnée) à la norme MIDI. L'annexe: 7 représente l'ensemble d'interfaçage entre la commande numérique et l'interface MIDI/PC. L'ensemble est composé d'une carte Transputer disposant uniquement de deux liens à haut débit pour faire la liaison entre les calculateurs d'entrée et de sortie et deux liens série simulant par programmation des liaisons RS232 compatibles.(voir annexes 8 et 9) (Le schéma proposé est celui de la société ELEKTOR, il est sensiblement identique à celui proposé par les spécifications de l'.Association Internationale qui gère ia normalisation de la norme MlDI-Los Angles - USA) L'interface PC,Transputer sert à établir un lien entre les deux réseaux et en particulier à charger l'ensemble des calculateurs constituant le réseau de la commande numérique. L'annexe: 8 représente l'organigramme de gestion des données par le calculateur T/MIDI reçues par les différents liens. L'annexe: 9 représente l'organigramme de gestion du stock des données par l'addition de deux piles annexes pour réceptionner les octets reçus des liens MIDI INI et MIDI IN2. L'annexe: 10 représente deux types de calculateurs de sorties; le premier assure la gestion et l'orientation des données en fonction du statut(message exclusif pour les registres; voir annexe: 14) et le second la restitution des notes du clavier i. Il faut remarquer que ces organigrammes peuvent s'appliquer à un seul calculateur si le nombre de ses sorties est suffisant pour prendre en compte les registres et les notes des claviers. Toutefois, il sera intèressant d'affecter une fonction registre et une fonction restitution des notes sur un même calculateur. En effet, pour le rajout d'un jeu, cela évite de laisser des sorties digitales inoccupées. L'annexe: 1 1 représente l'organigramme de gestion et d'orientation des données en prenant en compte l'état de la registration. L'annexe: 12 représente l'organigramme de gestion des données musicales pour leur sortie sur les electroaimants des soupapes d'ouverture des tuyaux. C'est le calculateur de restitution standard des données TSij. Si le message exclusif MIDI concernant la registration ne correspond pas à ce registre les données sont transmises au calculateur suivant. L'annexe: 13 représente l'organigramme de la gestion des liens entre les calculateurs ainsi qu'une partie du fichier de configuration du réseau de calculateurs. Pour généraliser les liens. il suffit de transformer les éléments TE2 TEI en TEi.j - TEi-lj et TSij - TSI-lj etc . afin de prendre en compte tous les cas de figures des liens au moment de l'initialisation du système et de la déclaration. Par exemple. le rajout d'un jeu sur le: buffet ne: 2. Type dejeux(fonds(l). anches(2) ou mixtures(3)): 2 jeu d'anches n : 8 nom: Trompette. I1 correspondra les sorties digitales du calculateur TS8,5. S'il y a trois types de jeux par buffet, l'indice 5 correspond au 3 +2 sous-réseau correspondant aux jeux d'anches du 2ème buffet. Avec l'entrée de ces données, il sera rajouté directement dans le fichier de configuration: T425(memory=1M) TS8,5 connect TS85. link[0] to TS75. link[1] .... ............. etc Ce sera la même chose pour le rajout d'un clavier. Le nombre de jeux n'est pas nécessairement égal pour tous les sous-réseaux; il peut y avoir P1 jeux de fonds, P2 jeux d'anches,.... L'annexe: 14 représente quelques informations relatives aux fichiers utilisés de la norme MIDI. L'annexe: 15 présente la configuration des cartes-calculateurs permettant la prise en compte des entrées/sorties digitales comme décrite dans l'exposé de l'invention ainsi que l'inlerfaçage à la norme MIDI. L'annexe: 16 donne quelques propriétés des composants de type VLSI dits Transputer permettant de comprendre le fonctionnemment de la solution du problème technique posé. Il s'agit d'un mode de réalisation de l'invention mais il aurait été possible d'utiliser d'autres composants comme la structure DSP ou autres. Elle explique aussi la différence fondamentale qu'il existe entre les deux réseaux utilisés.(partie dynamique et partie passive) L'annexe: 17 représente la convention de confidentialité signée entre le laboratoire de l'Université et le Responsable de Novoter. Elle justifie qu'aucune information concernant la solution technique proposée n'a été divulguée. L'annexe: 18 représente un article de presse qui montre que le prototype réalisé de l'invention fonctionne parfaitement bien sans qu aucune information concernant la solution technique n'ait été divulguée. Ce justificatif montre sans aucune contestation possible que la solution proposée est viable et que le système fonctionne.(FR3 et M6 ont fait des images de la démonstration). I.5.EXPOSE D'UN MODE DETAILLE DE REALISATION DE L'INVENTION. Le mode de réalisation ne pose pas de grands problèmes pour l'homme de l'Art que sont un facteur d'Orgues et un electronicieninformaticien, dans la mesure où la réalisation est menée avec rigueur et que l'exposé de l'invention a été bien compnse et en particulier au niveau de son incidence au niveau musical. Trois étapes président à la réalisation de la commande numérique: 1. Dans un premier temps, il est nécessaire de faire l'acquisition du matériel nécessaire ou de le faire réaliser si celui-çi n'est pas disponible dans le commerce tel qu'il est souhaite. Le matériel de base est constitué d'un ensemble de cartes de modèles diffèrents supportant des composants VLSI, DSP, ou autres disposant d'entrées sorties parallèles et des buffers et composants FIFO en mesure de gérer 200 à 512 entrées/sorties digitales sans ralentir la transmission de données sérielles à une vitesse de l'ordre de 20 MBits/s. Ces composants doivent pouvoir assurer deux fonctions: - saisir et sortir des données digitales en parallèle émanant de contacts et sortant sur des relais, avec des cartes disposant de 128 et 512 entrées/sorties, et - pouvoir faire transiter ces données à très haut débit entre microcalculateurs pour respecter les contraintes posées par le problème technique sans ralentir la transmission des données. C'est-à-dire que les composants choisis devront pouvoir obligatoirement être programmés pour faire en sorte que les transferts de données soient automatiquement svnchronisés par séquences d'octets. Pour la réalisation de ce prototype, il a été possible d'utiliser des cartes entrées et/ou sorties digitales parallèles avec des calculateurs du type Transputer (composants VLSI) dotées d'au moins quatre liens sériels à haut débit(minimum 20 Mbits/s) avec des entrées/sorties digitales en nombre suffisant et des cartes disposant de relais optoelectroniques pour assurer le passage entre les tensions et intensités TTL de ces E/S digitales et les tensions et intensités plus élevées des electroairnants qui actionnent les soupapes et d'alimentation des electrovannes des registres. 2. La réalisation pratique avec le cablage des différentes commandes (claviers, pédaliers, registres, contacts des barres de commande etc...) est la deuxième phase. 3. Enfin, il s'agit de programmer en langage C de préférence, les Transputers et les ordinateurs de gestion de l'orgue pour les utilisateurs. Les programmes des logiciels ne seront pas communiqués(étant donné qu'un logiciel n'est pas brevetable) mais les organigrammes précédents de programmation qui contribuent à la solution technique du problème posé sont seuls transmis car les plus importants. Il s'agira donc de répartir la programmation sur les calculateurs en fonction du nombre d'entrées/sorties susceptibles d'être supportées par les cartes. A partir de ces informations, il est aisé de faire une évaluation du matériel nécessaire. Acquisition du matériel et réalisation éventuelle des cartes calculateur. Deux cas peuvent se produire; soit il est possible de trouver dans le commerce, les cartes équipées des calculateurs nécessaires(et non de processeurs traditionnels des cartes-mère de PC) à la réalisation de l'invention. soit il est nécessaire de faire réaliser ces cartes avec les caractéristiques nécessaires à l'invention.(en annexe: 15 et 16) L'exposé détaillé de l'invention permet sans aucune difficulté de déterminer les caractéristiques de ces cartes en fonction du besoin de l'utilisateur du brevet. La réalisation pratique du cablage et prise en compte des fonctions des contacts. Le cablage est une des parties les plus importantes de la réalisation de la commande numérique. En effet, il apparaît très clairement que le nombre des entrées-sorties digitales pose de toute évidence un problème de connectique. La solution la plus adaptée a semblé être le groupement des fils par 64 correspondant aux nombre de notes d'un clavier et à la restitution des notes par les calculateurs de sorties sur les jeux. La diamètre de la section de ces fils est de l'ordre de 8 à 10 mm. Et les dimensions des connecteurs peuvent correspondre à une carte d'entrées-sorties digitales. Par conséquent, il faut cabler chacune des 61 notes de chaque clavier en s'appuyant sur le fait que les entrées digitales préconisées sont de la logique TTL avec une entrée "en l'air" correspondant à un niveau haut (1 logique). L'appui sur une touche provoque la mise à la masse de l'entrée correspondante soit un niveau bas (0 logique). Ce type de contact bien que sensible au bruit ne gêne pas la saisie des données binaires. Les contacts des touches pourront être du type à effet Hall ou des simples contacts electriques. Les premiers présentent un intérêt dans la mesure où il est possible de disposer d'une courbe d'hystérésis qui permet d'avoir un contact electrique à l'enfoncement qui est différent de celui du relâchement. Cette courbe est règlable par l'utilisateur. De même, il est possible de convertir le signal analogique de ces capteurs au niveau de la vitesse d'enfoncement de la touche pour la transmettre par la voie d'un fichier MIDI aux transducteurs des soupapes.(annexe:14) Cette alternative est prévue; toutefois, nous pensons que par principe, un orgue doit fonctionner en tout ou rien au niveau du signal sonore. Cette prise en compte du toucher ou de la vitesse d'enfoncement de la note risque d'être très onéreuse en transducteurs pour un apport qui sera en définitive négligeable. Un système mécanique "dit à balancier" permet une ouverture des soupapes proportionnelle à l'enfoncement de la touche: toutefois, cette technique n'a jamais été très deeloppée en raison des bruits générés par la mécanique. la complexité du système et les inégalités sonores. Des contacts devront être prévus pour les choix et permutations de la barre de commande de chaque clavier. Ces contacts(boutons poussoirs) seront ouverts en continu. Ces derniers ne donneront que des impulsions et le calculateur retient l'état confirmé par le voyant lumineux. Ce sont les impulsions qui feront changer l'état virtuel du contact. La commande numérique devra donc mémoriser l'état donné au voyant.(annexe:3 et 4) Dans lMy,pothèse où l'organiste veut appeler un autre clavier virtuel le 12 par exemple sur le premier clavier réel alors qu'il en train de jouer sur le clavier virtuel 5, une simple impulsion sur le contact N 12 annulera le clavier n 5 et la commande mémorisera comme nouveau clavier le n 12 avec la registration qui lui aura été affectée au départ par l'organiste. Cette information ne modifie que le sous-réseau que constitue une console si bien qu'il sera possible de jouer sur deux consoles difFerentes même sur le même clavier virtuel n 12, par exemple, si la composition 1' exige. il en est de même des contacts d'incrémentation (morceaux, mouvements) pour le choix de la registration préprogrammée. Des impulsions feront évoluer le compteur en moins ou en plus. Par contre, le contact ALLER A pourra prendre deux états stables. Dans l'état 0, c'est-à-dire le voyant éteint, les registres seront modifiés avec les contacts d'incrémentation. Par contre lorsque le contact ALLER A sera allumé = état 1, lors du changement de la numérotation de registration, les registres resteront inactifs. Lorsque ALLER A sera éteint ou son état égal à 1. la registration correspondant au compteur sera mise en place. Ceci est indispensable pour passer d'une registration à une autre si elles ne se suivent pas. sans à avoir à mouvementer tous les registres correspondant à toutes les registrations enregistrées à chaque pas. A la différence des contacts relatifs aux choix et aux permutations de claviers, les contacts des accouplements et tirasses de la barre de commande changent d'état et restent dans l'état correspondant. Par exemple. si les trois claviers n 1. 2 et 9 sont accouplés, le voyant s'allumera pour ces trois contacts. Pour désaccoupler par exemple le clavier I. il suffit de donner une nouvelle impulsion sur le contact 1 et le voyant s'éteindra et le contact aura aussi changé d'état. Le contact sera passé d'un état logique i a un état ()îannee:2) Il en est de même pour les fonctions d'enregistrement et de restitution du jeu du ou des organistes. Un appui sur le contact ENR déclenche l'enregistrement, état l; une nouvelle impulsion remet le contact dans l'état 0 et l'enregistrement s'arrêtera; le voyant s'éteindra aussi. Il est à noter que pour transmettre des notes avec un différé de temps (annexe:2A), il est nécessaire d' afficher le tempo choisi et de disposer d'une visualisation avec des diodes electroluminescentes des battements. La commande numérique permet cette fonction. Les contacts de la barre de commande permettront de choisir le différé comme un multiple du tempo(battements/mn). Les notes différées seront envoyées sur le clavier choisi à l'aide des autres contacts et le numéro du clavier sera affiché. Le contact DIF pouvant prendre l'état 0 ou 1, mettra en oeuvre la transmission des notes différées. II mettra aussi en marche le "métronome" qui pourra être utilisé sans différé de notes en envoyant simplement les notes sur le clavier 0. Il est donc indispensable de prendre en compte ces différences entre les diverses fonctions attribuées aux contacts au niveau de la programmation. Ces quelques exemples montrent l'étendue des possibilités offertes par la commande numérique. Cela ne tient donc qu'à sa programmation. Si tous les branchements des entrées-sorties digitales des calculateurs I d'entrée TEij peuvent se faire en logique TTL, il n'est par contre pas possible d'assurer le branchement des calculateurs de sorties TSiJ directement aux electroaimants. En effet, d'une part pour isoler electriquement la commande numérique et d'autre part. pour assurer l'alimentation des electroaimants des soupapes des tuyaux, il est absolument indispensable de passer par des cartes disposant de relais optoelectroniques. Réalisation de la carte interface T MIDI entre le calculateur de la console-maitre TEO,O et le premier calculateur de sortie TSO,O. Comme nous l'avons déjà précisé. cette carte calculateur T MIDI n'est pas indispensable pour la transmission des données musicales. En effet, il est possible de lier directement TE0,0 à TS0,0 directement. Toutefois, la réalisation de cette interface présente de nombreux intérêts. En effet, outre l'intérêt de pouvoir saisir les données musicales pour les éditer, il est aussi particulièrement intéressant de pouvoir sortir sur un instrument MIDI afin de tester la commande numérique avec un générateur de sons lors de sa réalisation et de confronter les résultats obtenus avec des diodes branchées sur les sorties digitales des calculateurs de sorties avant le montage sur un site réel. De même, comme nous l'avons déjà précisé, en cas de panne des instruments dans le buffet, un générateur de sons pourra prendre. le relai. Comme nous l'avons vu dans l'exposé de l'invention, l'interfaçage entre le réseau de calculateurs et la carte MIDI du PC est réalisé à partir d'une carte-calculateur disposant de deux entrées RS232 (annexe: 15) II suffit par exemple de réaliser le schéma de l'annexe:7(proposé par la société Elektor et l'association internationale MIDI) pour pouvoir connecter les liens RS232 de la carte calculateur à l'entrée de la carte interface MIDI du PC et de gérer les données émanant des entrées MIDI INI et MIDI IN2 comme proposé pàj l'organigramme de l'annexe: 9. De cette manière, il est possible d'attaquer une chaine de communication avec n'importe quelle interface RS232 existante. Il suffit de s'adapter à la logique utilisée. II s'agit donc de multiplexer les données venant de TE0,0 et de MIDI INI et MIDI IN2 et d'assurer l'émission vers TSo,o et MIDI OUT. Les applications: Les applications ne sont pas limitées aux grandes orgues mais un grand nombre d'applications musicales sont possibles par une transposition à tous les instruments à claviers par l'utilisation de la commande numérique. 1.6. INDICATION SUR LES APPLICATIONS INDUSTRIELLES DE L'INVENTION. Ln certain nombre d'inventions de ce type ont trouvé de nombreuses applications industrielles dans le domaine des pianos (BÔSENDORFER, YAMAHA, ...etc....). Ces sociétés ont pu élargir considérablement leur part de marché par l'ajout de systèmes electroniques certes difièrents de celui proposé mais qui permettent de nombreuses prestations comme de se substituer aux pianistes en rejouant des interprétations enregistrées ... etc... Ces systèmes electroniques sont maintenant installés systématiquement sur certains pianos et sont réalisés de manière industrielle. II est tout à fait possible d'escompter que l'invention proposée puisse prendre une dimension certes moindre, mais qui peut laisser espérer une application industrielle dans le cadre des orgues. La Direction de l'industrie et de la Recherche n' a pas caché son intérêt pour cette invention laquelle a fait la démonstration de ses possibilités. L'invention proposée présentant de gros avantages sur le plan de la création musicale et sur sa facilité d'utilisation, il est tout à fait concevable que cette commande numérique puisse équiper une bonne partie des 1000 orgues à commande electrique existant en France. Enfin, cette commande numérique, comme cela a été expliqué, permet aussi de revoir complètement la conception des sommiers des orgues supportant les tuyaux. En effet, il sera possible d'individualiser avec les fichiers de commande (note, jeu), chacun des tuyaux. Par conséquent, le facteur d'orgue pourra concevoir des sommiers avec des soupapes des jeu alimentées en air en continu et il ne sera pas nécessaire de tirer les tirants des registres. Ainsi, un programme de la commande numérique pourra concevoir de jouer une pièce en alternant les jeux pour chaque note ou plusieurs notes. On pourra tout aussi bien modifier la fréquence des notes...etc... Cette commande ouvre donc bien un champ infini de possibilités. Annexe:1 SCHEMA DE LA COMMANDE NUMERIQUE Données ou fichiers transmis possible: du type à la norme MIDI (16 bits) de deux octets; l'un de statuts, l'autre de données. Nième console-esclave Première console-esclave Console-Maître BUFFET DE L'ORGUF e; sur les soupapes et les s iiit"ies Réseau ÉÉÉtcac interface des buffets. ta d'ordinateurs MIDI Réseau des L I ep caiciatcur de - - calculateur de calculateur de calculateur de cornrnmid,e des Vér,,,, fs 3 61 O u -u : 9 $ zozo 2 taleulateur de - Clavier 2. calculateur de Clavier 2. saisie de Ce - Clavier AI rt I-$ m 6 de calculateur de ! cultulatur de Pédalier. calculateur de Pdalier. P sortie + (' > ntii'ttides commandes commandes Commandc dcs calculateur de calculateur de Jeux 'kulateurde Jeux. calculateur de Jeux. E sortie électro-aimants. > EE ^ - 8 = ' n v > rq Annexe: 1-A Configuration générale possible.(La cathédrale de SALZBOURG est par exemple équipée de 5 orgues, un de tribune au fond de la cathédrale et les quatre autres sont au choeur accrochés aux piliers soutenant la cathédrale.) 53 Z Xt. e ORGUE N02 -- ORGUE N0N console 1102 console O3 $nsoîenon Chef stre REPRESENTATION DE LA CONSOLE-MAîTRE AVEC LES PRINCIPALES FONCTIONS. ANNEXE: 2 " des registratiolis 54 I' o des partitions Ordinateur de contiguration dc l' ~ n X Q Mïk > l X,- dC%' 3 = ,0 dcs cintacts ('nici,iaie,,r ,?i d cntréc. Premier clavier A Annexe:2-A. Représentation de la suite de la barre de commande d'un clavier i pour la restitution des notes avec un différé de temps sur le clavier i+1 à t+1 sur le clavier i+2 à t+2... . etc.. Voyant lumineux donnant le TEMPO Affichage du TEMPO 60 Batlmn sur la console. Restitution d'une note 1 2 battements après sur le clavier 3 60 12 3 T À \ / Chòix du différé\ / \ / Choix du tempo choix du clavier pour rejouer les notes différées Enregistrement des différésf I, 2,...) dans la mémoire 1. Le contact E permet l'enregistrement de l'ensemble des différés composés, choisis et mémorisés avec le contact DIF. Le contact J permet de jouer les différés enregistrés. Annexe: 2-B Représentation de la barre de commande du pédalier placé sous le 3ème clavier; cette barre permet de choisir les jeux appartenant à un ou des claviers et pédaliers à affecter sur le pédalier réel de la console. Troisième clavier 2I Choix du clavier ou du pédalier / Accouplement- tirasse de j claviers et virtuel pour le pédalier réel de la k pédaliers I sur le pédalier réel de la console l de la console. Cette barre de commande permet de choisir un des 4 pédaliers virtuels ou un des 12 claviers programmés pour le pédalier réel de la console i. Annexe: 3. Commande numérique avec la représentation des différents organes d'entrées et de sorties. l IU!:C181= I 1 BOIYIMIER BOI IER 1 a TSi,; ~ sorSiesdigå sor ~ ~ n h i=ii j i - B 'i'roc. I -t 1 Ls l 180s 80 2 (.- fl1 TI CIA TS0 n a F n scrtiessades "na 'ieam "'a "'o 0 > -P I, -. nL :j;r. ""T11 t c( f TSi,,,,, TSi,,,, 3' $ÂÉÉ .: n---- "'a i Instruments à le "'a "'a t . norme MIDI n ca i; a Synthétiseurs TS2 > TS2 Cc de sons 1 O - utres instrnments ""', t -t? scrtiesdgitdes' " ~ t iod contes, dgssde 1,1 dS i émo?nSsOdlOoCsfrcoOn1tiaO ados q !* iiî!. arros do comman *t i ** i c Etf M X! t t 22111! 1 1 F > EDALIEIV CLAVIER 1 ss CLAviER n gFEGISTIRES llw ] } ~l ffi * &verbar; iEDALIER, rcLAVIER 1 1 ì CLA^IER n l XE G ISTRES Voyants lumineux représentant lètat des contacts des registres . PC registres. lin1 -f verr fMIM > link(33 R * ~ r U I-a ~ D , I ss reolstrotlors Y; ~ &verbar; { t Os o des monueGe zut des reglstres -ir t= mQ- t; Zdmg io -- =c 7 CD LinkIl] apararekllao Voyants alumineux représentant l'ôtat des dè I'etat d'un clavier,de la I 6 -- barre de connde d'un davier. IL. ~ n f t T S o H i x en j k Onk(l) s8lection des conta d'8mision (accouplements et permutations) t stlz1,} Annexe:4. Schéma de deux calculateurs de saisie. l'un de la console-maître, en relation avec le réseau de PC. l'autre étant un calculateur de saisie d'un des sous-réseaux représentant une console. Ce calculateur prend en compte les contacts de la barre de commande mais il peut prendre en compte les notes du clavier correspondant. Annexe:5. Organigramme de la tâche du calculateur TE0,j. - pc.l RBcpliondrtbuxds ragntknr rt dr morarn NOO Taitqu.IePcfleniepurnge AOcpoon d 2 odb I don st pr(lsenl ru lian El - rr0 fnnrporlllon ri c'rt uno nata Emoldodrtrven''MM NON ul8esdpui*drmn NON OUI Sl 03 &num;condes se sont écoulées depuis b dernière lectux dee entrX s lou v Lecture des entees oar Si un da boutont preosoilOUI 1Skn k bocnrm cEknnB: stnfoma + *I-nurrodngisb1bl -numbrodmorcau - nur d Inspotbn s s*ndei I 'Our chacun des resises. I i=o.l.2.s.4,.fndlrrboucb 1 NON n9sb num8ro i a 61 ( selsdiorJ ou dw*" oul rransmission du numerc1 de regare vers T~MIDI ;Mcnurnessagern.ss Annexe:6. Organigramme de la tâche du calculateur TEi,j. Si ur donrJ ctn tant ruI FUepYon 6 2 oe (rraRa I1 k In nbb TE 1 a Tti Emission d c 2 actLI v&num;r TE1 L I' NON I I Si u mohs 5 mo t ront cw8 depuh IlrNON dwnin kchn 6r r &commat;ou 6vi bJ ou; Lecture des entrées digitales Touchêe+ contacts de la barre de commande i w moinr u dsloucher du cavier e 1NON thng dtd dspuis h die bdurs OUI 1 dgiwche Fh de Le bouck Pouchw i: A Fh de h boucle l NON l l T: u1 Fin de b boucle f w ucla Si oe oentact NON est ON oui L Emission du statut et de b note vers TEi-1 sur le canal MIDI correspondant. Annexe:7. Représentation de l'interface entre le réseau de calculateurs de la commande numérique et l'interface MIDI/PC. e - O 'o InLcrfce o CARTE - 1 X u 1 &verbar; Reception des donné s correspondant Si une donn st n attenb sur b OUI > a un evenement (nob. r gistration. Ibn TEO T~MIDI ALL~NOTES~OFF). s C114ile ez donné d une FIFO. NON a s A OU Réception des donné correspondant Sl une donnee eSt n ttente sur b t a un evenement (nob, tistralion. * s Ernpne X donne s dans h FIFO. NON Embdon eb ces dor ~ vels TSO. r s t Reception des donnees correspondanl I Ibn hllZ~N2 F å un TES~OFF). \ \ Empib ces donnees dans h FIFO. NON Emission de ces donnees m TSO. m On d'piie tii éYernent 0A 'me note wi s' 'a pk nest p- vide changement de regisbmRion. un message de I e A NOTES~OFF) et on rem t sur len MM~OUT NON Annexe:8. Organigramme de la gestion des données par le calculateur T/MIDI. Le calculateur MIDI mixe plusieurs signaux. Il reçoit des données du calculateur TEO,O et les données MIDI IN I et IN2 par les liens RS232. Il émet ensuite sur TSO,O et sur MIDI OUT afin de pouvoir enregistrer les données sur un éditeur de partitions du PC ou de diffuser sur un générateur de sons. les données musicales. Annexe:9. Organigramme de la gestion du stock des données par l'addition de deux piles de données annexes pour receptionner les octets reçus des liens MIDI INl et MIDI IN2. RécpCon d dones consrpondanl a un rrt n ttrnt sur mnt (not. ghtrabn. ALLNOTES,OFF) Empile c doms u tormet MIDI' a > mpkt licn TEO T,MIM dMs u RK). 1 EmisSon do cer donn(Le ven fSO. NON 1 NON &verbar; I . u"--M= I R(Lcsptkn bun ul odst donn ( .ca aat dar h pna Mbl d Ibn I LlFO. NON;I I S1P(hrntdnrlpk annarrl st armplet fomlat MDI- dans la ple Emplkr r8nment complet au formet MM' dMI la pile prhcip "I" Empilebtdu12 I F1 NON 1 i revensmnt dans la pi Empeser ré"ôn-nent complet au format MDI- dans la pile prhåpale Si la pile principale ness OUI pas vide S que rUART , > On dépile un octd t on remet wr le lien MIDI~OUT est prete à envozer un octet NON I , I .1Pa0emtdg é & O] ~ X1 registres registres cD 1ink lino(0) ! autres données 'e > C) I 7 s &num; ,rs TS1t t n llnk(l) s S s r vers TS i+l, 2 Annexe:10. Représentation de deux calculateurs de sortie. TSO,O gère les données émanant de T'MIDI pour les onenter soit sur le premier sous-réseau(anches, par exemple TSi,O) de restitution des notes soit vers d'autres registres gérés par les sous-réseaux (TSOj) ou un autre buffet ou encore un autre orgue par le lien 2 (link(2). TSij (avec i sup à O) est le calculateur de restitution type sur les notes d'un jeu. NON \ NONr A s g art ur tsr*s l Min nT > IIDITSO,+ J TSO,C Rlapbn dr rMrwwnarP compll I T(Rlalrona6on i (poe ou ALIOTES,OFF) runl pr hdau nt plra bnlrbn dr rMnmn . n rS dr chnglmcnt d n nglrbdbn moiti d o OK 'e Èo |Illnw \ Tanl q b Wr qdt des o ) pUb * i 1 1 \ dw~d sXn / &verbar; ib* > .h &verbar; > o l po *o l &verbar; Fn eb h boud&commat;\ Annexe:11. Représentation de l'organigramme de gestion et d'orientation des données en prenant en compte l'état de la registration. Si j ne correspond pas au sous-réseau géré par le calculateur TS0,j les données sont envoyées préalablement à TS0,j+1. I Si um do Zt n 1 w b n TSQet) TSz J I OU , R plkn compii(a I r(HLMlrnt (natr ou ALLNOTES,OFF) I I shF k Tt I | drivhcI cc 1 -AX i ge **.b8 I grX sturnde pPIIrambril. Q Zt 1 numX * nob) | I g ezt u w o. pnlr amii I I I Irt ur ACNorr~On : lio **El wwu ruont iinrr) Annexe:12. Représentation de l'organigramme de gestion des données musicales sur si4. C'est l'organigramme d'un calculateur standard de restitution des notes sur un jeu. Au préalable, la note aura été orientée vers le sous-réseau correspondant aux registres désirés. Ce sous-réseau peut donc representer un type de jeux qui peut se trouver sur sur un des buffets ou sur un des autres orgues. Annexe:13. Représentation de l'organigramme de gestion des liens entre calculateurs(réseau en "rateau"). Programme en C pour la connection de deux calculateurs. La programmation des liens d'un transputer de type T425 et identique pour un transputer de type T225. PCn n PCj PC T/MIDI o L0 t O ', TEO,n0 -T E10jOJ ,0,0 TSO,0 TSO,1;.,TSOJ ....TSO,m. Io l'o lu lu lo o TEl,n TEIJ TEl,0 TSl,O TS1,1 TSij TSl,m. iAo J i; a i Io c 14 1 lo TE2,n TEtj TE2,0 TS20 TS2,1 TS2J TS2,m. I o o IA I. È0 TE3,n TE3j TE3,0 TS3,0 TS3,1 TS3j TS3,m. t; i; i """ t' TSp,O TSq,l to TEp,n TEpJ TEp,0 TSp0 TS1 TS TSm. Il est donc possible de donner des indices aux différents liens et de généraliser pour l'introduction de nouveaux calculateurs ou d'un nouveau sous-réseau suivant le modèle de programme çi-après: ... T425 (memory=1M) TE2; ... connect TE2.link[0] to TE1.link[1] ... process ( stacksize = 100k, heapsize= 100k, priority=HIGH, Interface( output to~TE1, int InputSize=0, int OutputSize = 1 )) TASK~TE2; process ( stacksize = 100k, heapsize= 100k, priority=HIGH, interface ( output to~TE0,input from~TE2, int InputSize=1, int OutputSize = 1 )) TASK~TE1; ... connect TASK~TE1,from~TE2 to TASK~TE2.to~TE1; .. use 'te2.lku' for TASK~TE2; ... place TASK~TE2 on TE2; ... place TASK~TE1.from~TE2 on TE1.link[1]; place TASK~TE2.to~TE1 on TE2.link[0]; Annexe:l4. Utilisation et application de la NORME MIDI à l'invention. Comme nous l'avons déjà précisé dans la description, il nous a paru nécessaire de prendre une norme proche de celle définie par l'association internationale MIDI pour la transmission des données musicales. En particulier, elle permet de rendre la commande numérique compatible avec tous les instruments actuellement dans le commerce. II est présenté quelques principes simples qui sont utilisés dans le cadre de l'invention. Dans la norme MIDI, la communication s'effectue par liaison sérielle asynchrone avec un débit de 31.250 bauds. C'est-à-dire que 3.000 octets sont transmis par seconde, soit 7 à 8 notes de deux octets par 1/200ème de seconde. Le transfert des données en binaire s'effectue par octets. Chaque octet est précèdé d'un bit de start(1) et suivi d'un bit de stop(0). Toutefois, il faut préciser que si une norme approchée de la norme MIDI a été utilisée dans l'invention, la vitesse de transmission des calculateurs a été conservée, 20 Mbits/s. C'est-à-dire qu'il sera possible de transmettre environ 645 fois plus de notes/unité de temps. Le rôle de ces données musicales est de permettre la traduction de ce que jouent les musiciens. Ces octets d'information sont séparés en deux catégories: les statuts et les données. L'ensemble statut+donnée constitue un évènement. Pour diffèrencier ces deux octets, le premier bit de l'octet à été utilisé. Statut: Donnée: 1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 La norme MIDI compte environ une dizaine de statuts auxquels sont associées des données. Par exemple, l'état d'une note on off se présentera de la manière suivante: avant de jouer une note, il faut choisir un timbre ou jeu avec le statut, Annexe:15. Représentation de l'implantation schématique des cartes calculateur utilisées pour le prototype justifiant d'un mode de réalisation. Carte disposant de 4 liens haut débit avec entrée/sortie digitales logique TTL. Cartedisposant de deux liens haut débit et de liens de type RS 232 et RS 422 pour liaison avec interface MIDI. flollies Ina"" SY5TEM DATA FIFO MEM0RV BUFFER T42S 2 D :S e. 3 -1 Mcw] n Alimentation 0-5V I Xt e e ue .e CS lien 2 RS232 T225 R5232 RS422 RS422 SV5TEM MEM0RY M DATA 4 entrées BUFFER masse KÇ;'si: FIFO Annexe:l6A Explications sur les réseaux utilisés et difterences: MULTIPROCESSEURS ET MULTICALCULATEURS ou CHINES SEQUENTIELLES ET MACHINES PARALLELES. Cette annexe a pour but de faire une mise au point sur les différences existant entre ces deux types de réseaux. En effet, beaucoup d'ingénieurs non spécialistes ne font pas nécessairement la diffèrence entre ces deux types de réseaux. S'il est vrai que la puissance requise par les applications alimente une compétition continuelle entre les diffèrents fabricants de composants, il reste néanmoins des diffèrences substantielles entre les composants fabriqués et leur objectif. Dans un PC sous MS-DOS, le mode de fonctionnement est dit monotâche. Le rôle du système d'exploitation consiste seulement à gèrer les périphériques. Les défauts d'un tel mode sont bien connus: absence de gestion de la mémoire, impossibilité pour les diffèrents programmes de communiquer. De nombreux produits sont venus pallier ces insuffisances(EMS, Windows, programmes résidents etc....) Des systèmes multitâches ont pour objet de gèrer et de partager les ressources et par conséquent, le processeur central. Le processeur se partage dans le temps entre les divers programmes mais le fonctionnement reste séquentiel même si l'impression n'en est pas donnée. Dans un ensemble de PC connectés par des lignes RS232, chacune des unités exécutent indépendamment les unes des autres les programmes qui leur sont confiés. La synchronisation des échanges et l'intégrité des transferts posent toujours des problèmes difficiles à résoudre; c'est ce qui explique l'intérêt présenté par des liens synchronisés sur les calculateurs dont la conception est différente et utiliséedans notre cas. Des solutions ont été trouvées pour répartir les tâches à effectuer dans un système multiprocesseurs. Niais la gestion des accès concurrents aux parties communes du système conduit très vite à de sérieuses limitations. Toutefois, comme la gestion. le chargement de la commande numérique(réseaux de calculateurs) et la configuration des différentes fonctions de l'orgue n'exigent pas des temps de transfert des données très courts, ce type de processeurs fonctionnant dans les PC a été utilisé uniquement pour la gestion de l'ensemble. Un réseau sous la plate-forme Windows 95 est parfaitement suffisant. Toutefois, lorsque les opérations sont nombreuses avec des vitesses de transfert importantes, il devient inévitable de recourir à des traitements parallèles. Et c'est la raison pour la laquelle nous avons utilisé des calculateurs à architecture et traitement parallèles pour la transmission des données musicales. Le mode de fonctionnement des systèmes multicalculateurs, comme notre commande numérique, est tout autre. Ces derniers se composent d'un ensemble d'unités centrales autonomes disposant de leur propre mémoire et reliés entre eux par des lignes de communication. Le microcalculateur baptisé TRANSPUTER de la société INMOS a été utilisé pour un mode de réalisation de l'invention et montre que par son utilisation, il est possible de répondre au problème technique posé par Olivier TERNON. Ceci est très difficilement réalisable avec les processeurs classiques des PC, faute d'une possibilité de coordinations efficaces des processeurs. L' architecture de ce calculateur a été optimisée pour l'exécution de processus concurrents, soit au sein d'un même calculateur soit sur plusieurs d'entre eux. A cette fin, il est capable de gérer la concurrence entre processus au niveau le plus bas et il possède un ordonnanceur microcodé contrôlant les processus parallèles directement au niveau du Silicium. Pour augmenter l'efficacité des échanges de données, chaque calculateur intègre 4 lignes de communication à haute vitesse: les liens.(link) Le lien est bidirectionnel et la vitesse de transmission atteint 20'v.lbits;s. Les transferts entre deux calculateurs. automatiquement synchronisés, s'effectuent par séquences d'octets.(voir annexe:168les transputers) Les quatre liens peuvent assurer des transferts simultanés. ce qui porte le débit effectif global à près de 8 Mo/s. Les transferts s'effectuent en mode d'accès direct et ne pénalisent donc pas l'unité centrale. La simultanéité de traitement entre l'unité centrale et les liens est totale. Dès son initialisation, le processeur crée cinq tâches toujours actives: quatre d'entre elles gèrent les transferts entre la mémoire et les registres de l'unité de calcul. Les calculateurs de ce type ont en général un langage propre. Dans le cas des TRANSPUTERS dslNMOS, le langage parallèle est OCCAM et le marché propose diffèrents types de compilateurs en C parallèle proposés, par exemple, par SGS THOMSON ou des sociétés comme Parasoft. Ce langage saisit la structure hierarchique d'un système, en permettant à un ensemble de processus interconnectés d'être vu comme un processus unifié, unique. (Dans notre cas: réseau en rateau) A partir de l'élément de base que constitue le calculateur, il est possible de construire des réseaux de calculateurs reliés entre eux par leurs liens. Les cartes réalisées pour le prototype utilisent un composant particulier appelé le C004 qui se présente comme un commutateur de liens. II permet de relier indépendamment 32 entrées vers 32 sorties et peut être commandé par programme. La carte supportant le calculateur peut donc être programmée en C, soit de manière transparente, soit avec des procédures. Le PC constitue en fait un organe de GESTION d'un réseau de TRANSPUTERS, économe et un moven d'accès privilégié. Il est aussi le plus adéquat. Ceci explique notre structure à deux réseaux, I'un de gestion sans contrainte technique et l'autre de communication à haut débit supportant toutes les contraintes techniques posées par le problème. L'élément de base d'une implémentation de transputers est caractérisé par un élément incluant le calculateur, la mémoire additionnelle locale et la logique de liaison.(annexe: 15) Ces cartes Transputers sont liées à l'ordinateur par une carte interface PC comprenant un convertisseur série parallèle COI I ou C012 permettant de banaliser l'interface vers le BUS comme un lien (link) des Transputers. Annexe: 16.@ Les TRANSPUTERS 1 Introduction au Transputer et au langage OCCAM Les systèmes de traitement de l'information à base de Transputers autorisent des niveaux de performances difficilement accessibles aux systèmes construits autour de microprocesseurs conventionnels Une des raisons permettant d'obtenir ces performances est l'indépendance de l'architecture de ces systèmes vis à vis de standards de bus Les systèmes à base de Transputer peuvent aisément être associés aux systèmes classiques Cette technique n'est pas seulement une amélioration des performances mais aussi d'autres concepts et un autre ordre de grandeur des performances. La conception du Transputer est le résultat d'une collaboration étroite entre les concepteurs du circuit et les créateurs du langage OCCAM, un langage qui est basé sur les notions de concurrence et de communication. Les notions d'entrée/sortie, de priorité entre processus, d'interruption et de temps réel ont été formellement intégrée au langage. Par ailleurs, un programme OCCAM peut directement refléter la structure algorithmique d'une application. Cette structure peut ensuite être simplement transposée sur sur un réseau de Transputes L'utilisation des Transputers et du tangage OCCAM doit donc se faire conjointement si l'on veut tirer une efficacité maximale de ce composant Néanmoins, les langages usuels peuvent être employés à condition de lier à ceux-ci les constructions particulières d'OCCAM (des versions "arrangées" du C, du PASCAL, du PORTRAN ... sont disponibles). Le concept TRANSPUTER/OCCAM assure, entre autres: # Une simplification du problème à résoudre (l'application), en articulant son système complexe autour de sous-systèmes distribués communiquant entre eux. Cette structuration peut ê l'évolution des capacités d'intégration en augmentant les capacités de calcul, de communications, de concurrence et de mémoire dans le cadre d'une architecture inchangée et sur une même puce. Le Transputer est un @@croprocesseur disposant d'une mémoire locale et de liens pour connecter un curcuit à un autre L'aspect logiciel de l'architecture TRANSPUTER définit comment un système de Transputers interconnectés est conçu et programmé tandis que l'aspect matériel décrit comment des Transputers en tant que composants sont reliés et contrôlés. Un produit Transputer est un circuit contenant un processeur, de la mémoire et des liens de communications pour les liaisons point à point entre Transputers. Il contient aussi une interface mémoire programmable permettant de l'adapter à un usage particulier. Selon le modèle, il est pourvu en plus d'une unité arithmétique travaillant en virgule flottante. FR) (opoonnl) 4 S Oc"" 'L w'dirêc:Îo-.es t igur c*r 2i-ssÈies tZIISk ICUdd*r"'o.Qt"", J Bur nrn 2 Egm slri Bw memo. .nerno32t't, fig. 1: Architecture inteme Un Transputer peut être utilisé seul ou en réseau pour construire des systèmes concurrents de haut niveau. Le réseau est alors obtenu aisément en utilisant les liens de communication point à point. E Ln T31 T3t t4i g r7M fig. 2:Réseau en matrice La figure 3 représente de manière plus précise comment est réalisée matériellement la liaison entre circuits. = e! '7 C T = - = -* L n Lig@@es@unidirectionnelies sénes constituant un lien fig. 3 : Un niveau de 4 Transputers constituant un noeud L'utilisation de ces liaisons point à point simplifie considérablement la conception de systèmes complexes. Chaque Transputer, disposant de plusieurs de ces @ens, peut ètre rehé à un autre lien ou à un autre composant après adaptation. Ceci permet de construire des réseaux quelconques de processeurs, de taille et de topologic arbitraires. L'avantage des liens pont à point par rapport aux bus multiprocesseurs est multiple # L'utilisateur n'a pas à se préocuper du mécanisme de communication, celui-ci étant intégré au niveau du composant. Et ceci indépendamment du nombre de Transputers utilises. La charge capacitive de chaque lien ne devient pas pénalisante lorsqu'on hit croître la taille d'un réseau. La bande passante des transferts n'est pas saturée lorsque le nombre de Transputers augmente. Au contraire, plus ce nombre est grand, plus la capacité de transfert globale est grande. De plus, quelle que soit la taille du réseau, les liaisons entre Transputers peuvent rester locales et courtes. L'implémentation physique des liens est telle que leur utilisation devient évidente. La communication proprement dite est du type série (ce qui simplifie la réalisation des cartes) avec une vitesse standard de 10 Mbits/s. Cette vitesse cependant est programmable et peut aller de 5 Mbits/s à 20 Mbits/s selon le type de circuit. Elle ne dépend pas par contre des performances du processeur. Ce qui permet de connecter directement entre eux différents types de Transputers, et ceci, indépendament de l'évolution des puces. La communication doit cependant respecter de protocole schématisé figure 5. Toute donnée échargée suppose donc un dialogue entre les deux éléments concernés, ce qui contribue à la fiabilité de la communication. Ce dialogue permet évidemment aussi d'assurer la synchronisation, réalisée gr@ce à l'accusé de réception du message, entre les deux circuits. Un lien doit donc être constitué par une liaison électrique dans chaque direction. Le protocole utilisé est particulièrement simple, chaque ligne transmettant des données et des informations de contrôle. SioQ Stop Oepan V I I Donnoe (8 'arts | O Emlslon vrrr vors B f rn Stan ;In Sop bl Stop bt lu RsConnasssancn do 8 stt Stars brt fig. 5 : Trame du protocole de communication La communication asynchrune par lien est par ailleurs indépendante de la phase de l'horloge du système. Ce qui permet d'assurer un échange d'information par lien entre composants utilisant des horloges distinetes, à condition toutefois que la fréquence de communication soit h rnme. Par ailleurs, b comrnuntcation n'est pas limitée aux seuls Transputers. En effet, il existe un certain nombre de circuits dits adaptateurs de liens, permettant l'interfaçage entre un lien Transputer et un circuit non Transputer. L'intérêt de ces liens est de permettre d'échanger des informations entre des programmes différents s'exécutant en parallèle sur des Transputers distincts. Ces échanges sont à la base du langage OCCAM, ce sont les unités de base d'un programme OCCAM, Ils permettent en outre une implémentation de la concurrence, de la synchronisation d'un prooessus multi-tâches et du partages des ressources communes, quasi-directement à partir du cahier des charges de l'application. Un échange en tout point identique peut se dérouler entre processus s'exécutant en temps partagé sur un seul Transputer (l'échange se faisant par l'intermédiaire de la mémoire interne). Le protocole d'échange (un dialogue entre deux processus) permet à l'utilisateur de faire abstraction de tout problème de synchronisation, celui-ci étant pris en charge par le matériel. On peut remarquer à ce niveau l'intérêt de la mémoire interne. En effet, les transferts par lien se font en fait de mémoire interne à mémoire interne. Ce qui d'une part est plus rapide que de passer par une mémoire externe et d'autre part, surtout, assure l'intégrité de l'échange. En erret, un récepteur attendant une information, ne pourra en disposer que lorsque l'émetteur est prêt à la lui envoyer. Outre la synchronisation implicite entre processus qui en découle, ceci permet aussi, par exemple, de facilement gérer des ressources commune externes. en créant dans la mémoire interne d'un Transputer un sémaphore accessible à d'autres Transputers par des liens (Sérnaphore outil logiciel permettant de gérer. par exemple. l'accès de N processus à M ressources du méme type). On peut noter que la mémoire interne, généralement réservée aux vanables locals, est plus raplde que la mémoire cxtcme ou est disposez l'application. Chaque Transputer dans un réseau utilise. en principe, une mémoire exteme locale qui lui est propre La largeur du bus d'adresse du Transputer (32) bits, soit une capacité d'adressage de 4000 Moctets) facilite l'implémentation de ces mémoires locales. 3 Connexion d un Transputer à un penpherlque Les transputers peuvent être connectés à des périphériques par l'intermédiaire de liens, Certains types de Transputers ont des interfaces spécialement conçues pour faciliter leur connection à un type donné de périphériques. Ces interfaces particulières permettent en outre le contrôle de ces périphériques. II va de soi que la connexion aux dispositifs extemes pourrait aussi se faire de manière plus classique en utilisant le bus conventionnel de 32 bits où adresses et données sont multiplexées. L'échange dans ce cas peut aussi ètre adapté, l'interface mémoire étant configurable par logiciel à tout instant. D'où les trois méthodes de connexion aux périphériques (étant entendu que les Transputers communiquent entre eux par des liens): 1. Système avec Transputer de gestion de périphériques Dans ce cas, la communication avec les ressources externes se fait par l'intermédiaire de Transputers spécialisés (contrôleur de disques, gestionnaire d'applications graphiques) connectés directement aux périphériques concernés. L'interface vers le périphérique est alors directement intégré dans la puce. La gention de cette liaison se fait par un logiciel spécialisé de même structure que les programmes d'application des utilisateurs. 2. Système avec adaptateur de liens Des drcuits adaptateurs de liens convertissent alors le standard série des liens en un standard spécialisé classique qui peut ètre choisi. Cet adaptateur de lien est connecté à un lien du Transputer et ce lien est ensuite lui-même contrôlé par un programme de gestion du périphérique écrit par l'utilisateur et communiquant avec programme d'application par un lien logiciel ou matériel. Voir la figure 6. 'Memoro nWne T [-,-t ILmb 1-3; -c [II ;e Transuier Penphe mculgcnl [Conrrjle par mcrropocesseur) fig. 6 Système avec adaptateur de liens 3. Système avec périphériques projetas dans l'espace mémoire des Transputers. La liaison est réalisée avec le bus mémoire du Transputer et le périphérique est accédé en utilisant les adresse mémoire où il a été physiquement implanté. La méthode est usuellc avec les microprocesseurs conventionnels. Le transfert se fait ensuite par des accès mémoire. A nouveau le programme utilisateur de gestion du périphérique assure la liaison avec l'application par l'intermédiaire d'un lien logiciel ou matériel. On peut noter que le périphérique externe peut demander un service au Transputer (c'est à dire la réalisation d'un transfert) par l'intermédiaire de la ligne d'interruption. En conclusion, pour les trois méthodes, les programmes de gestion sont reliés au reste de l'application par des liens logiciels ou matériels. Ces deux types de liens ne se distinguent pas du point de vue logiciel, seule leur implémentation physique est différente. Ceci a l'avantage de permettre le test effectif des logiciels d'application nécessitant des ressources externes, sans disposer de celles-ci. Le développement d'une application peut donc se faire en parallèle pour le logiciel et la réalisation matérielle. 4 Applications multi-Transputers Les Transputers utilisés dans des réseaux permettent de concevoir des systèmes concurrents avec des performances très élévées. Par exemple, des structures pipe-lines ou matricielles peuvent être utilisées pour augmenter significativement les performances d'une application, en exploitant la concurrence qui est souvente sous jacente ou inhérente à l'application. En traitement du signal, par exemple, l'algorithme de la transformée de Fourier rapide (FFT) est facilement transposable sur une structure pipe-line. Cest par ailleurs la structure la plus facile à réaliser et à utiliser: Ad;(aiion TI '2 '2 T4 Adaplalion de5en de5en Structure ppe line fl t Entrée Ces données sorbes des donnees fig. 7 Structure pipe-line On notera l'absence de l'horloge de cadencement des transferts d'un étage à l'autre. En effet, celle-ci est inutile étant donné la synchronisation implicite par les liens. Un autre type de réseau : le réseau matriciel (voir figure 2) sous le contrôle d'un système hôte. Ce dernier, via un Transputer réservé, indique au réscau quels sont les traitements à effectuer et la méthode de partltlonnement à utiliser (partitionnement des données et/ou du traltement) En guise de conclusion sur les applications multi-Transputers, notons que le Transputer peut être utilisé dans un réseau pour réaliser une fonction spécifique qui peut ensuite être vue comme une boîte noire de l'extérieur. ce qui permet de combiner ces processus "logiciels" avec des processus en logique cablée, lorsque les exigneces de performances sont draconiennes. Un système, à la limite implémenté sur une seule carte, peut donc être conçu à partir d'une cornbinaison de processus logiciels, de Transputers à fonctions spécialisées et de processus purement matériels. Ensuite un tel système peut lui-même être considéré comme un composant ou un sous-système d'un ensemble plus large. Ce qui permet d'envisager des applications très complexes, à l'heure actuelle difficiles à réaliser et à gérer si on utilise des sous-ensembles conventionnels. Pour ce faire, l'architecture du composant de base, le Transputer, a été conçu de manière à permettre la réalisation de réseaux programmables pouvant avoir toute topologie désirée. celles-ci étant uniquement limitée par le nombre de liens disponibles. Cette architecture permet aussi de minimiser les contraintes de taille d'un tel réseau. 5 La mise au point d'une application II faut noter que la difficulté essentielle pour mettre au point (et concevoir) une application est la décomposition de celle-ci en processus. Les Processus ne doivent erre plus nombreux que nécessaire. Les quelques remarques qui suivent peuvent erre utiles pour guider l'utilisateur dans sa démarche vers une solution: # Le problème devra être analysé de manière à déterminer les états possibles de l'application et les "commandes" qui peuvent agir sur ces états. Cette réfiexion conduit ensuite à définir les diagrammes des transitions d'états de l'application. Ce qui permet de déduire les procédures et les fonctions générales nécessaires au traitement. # Dans une deuxième étape, en se basant sur ces diagrammes, on peut étudier le ou les flots de données de l'application. Ces flots peuvent être interne ou associés à des dispoditifs d'entrées/sorties. Cette analyse permet de mettre en évidence les transformateurs de données. Un transformateur de données est une structure syntaxique du programmée qui accepte des données en entrées et qui. après manipulation, les restituent en sortie. 6. Le Transputer 6.1 Architecture du Transputer 6.1.1 Le processeur T805 Processeur 32 bits, Unité arithmétique et flottante 64 bits, Fréquence: 30 MHz, Mémoire interne: 4Koctets, 4 canaux de communications série bidirectionnels (20 Mbits/s), 2 cimes, Espace addressable: 4Goctets, Gestionnaire d'interruption. Performances crête: 30 Mips, 4.3 Mflops. 7 8 1488 t I E ift; S - - X L 2 5S , E. er3z1- 1 E t Ats.nJry J @@ @@@@@@@@@@@@@ Particularites Importantes, 4 canaux de communications série bidirectionnels, Un moniteur multitâche cablé. Plusieurs processus vont pouvoir s'exécuter sur le même transputer, le changement de processus est très rapide (inférieur à 1 s). No .,- - Noyau Muhitcta Wa' En Bs8i &verbar; ! ! l A S lh v t r 6.1.2 Les canaux de communication Communication par rendez-vous. L'émetteur et le récepteur sont bloques jusqu'à la fin de la communication. Un processus producteur doit envoyer un message vers un processus consommateur. Le message de réception du message va bloquer le processus consommateur. Le message d'émission du message va bloquer le processus producteur jusqu'à ce que celui-ci ait lu le message. Le principe de rendez-vous est une synchronisation forte des données. Producteur Consommateur int mainO int mainO { { Channel *canal; Channel *canal; char c; char c; while(1) while(1) { { ChanOutChar (canal,c); c = ChaninChar(canal); } printf("@n %c",c); } } Le producteur est bloqué sur la commande ChanOutChar jusqu'à ce que le consommateur ait exéCuté la commande de réception ChanlnChar. De même le consomma.eur est bloqué sur la commande de réception ChanlnChar tant que le producteur n'a pas envoyé la donnée. 6.1.3 La gestion des processus Le moniteur multitiche gère 2 niveau de priorités: 1 niveau de priorité haute, I niveau de priorité basse. Une file d'attente est associée à chaque niveau de priorité, cette file d'attente contient les contextes des différentes tâches qui s'exécutent sur le processeur. Règles de priorité: Un processus de priorité haute n'est jamais interrompu sauf sur certaines instructions comme l'attente de données sur un canal de communication. Un processus de priorité basse s'exécute par tranches de temps de 2ms. Si plusieurs processus doivent s'exécuter en priorité basse sur le taansputer, ils seront exécutés alternativement toutes les 2 ms. C'est une gestion en temps partagé. On appelle aussi cela du pseudo-panllélisme puisque l'utilisateur a l'impression que ces processus s exécutent en parallèle. 6.2 La famille transputer Les processeurs: T805 = Processeur 32 bits, Unité flottante et arithmétique, 4 liens, T425 = T805 sans unité flottante. T400 = T425 mais avec 2 liens seulement. T225 = Processeur 16 bus, 4 liens. Les composants d'interface: C012 = Interface entre un bus parallèle 8 bits et un lien transputer. Les routeurs: coa4 6.3 Les réseaux de transputers ih tSlh Év 6.4 Les différentes topologies 7. La programmation des transputers en C parallèle 7.1 Pseudo-Parallélisme sur un transputer - Tâches légères n est possible d'exécuter plusieurs taches en temps partagé sur un transputcr. Le modèle de programmation du transputer est le modèle CSP: Communicating Sequential Process. Les taches s'exécutent indépendamment les unes des autres et communiquent en s'envoyant des messages. Les taches qui s'exécutent en parallèle sur un transputer s'appellent des taches légères (threads). Si on exécute plusieurs taches sur un seul processeur, il sera possible de travailler en mémoire partagée. 7.1.1 Le processus (ou tache) Un processus est une activité gérée par l'@allocateur de temps du processeur. 7.1.2 Les canaux Un canal est une connexion entre 2 processus. Il permet l'échange d'I5nformations. Un canal est unidirectionnel. = 7.1.3 Les sémaphores Le langage de programmation du uansputer permet de travailler avec les sémaphores. La notion de sémaphore n' a rien à voir avec le modèle CSP qui est le modèle de programmation du transputer. Les sémaphores ont été introduits pour travailler en mémoire partagée sur un transputer. 7.2 Les instructions 7.2.1 Les instructions de communication Réception de messaaes: void ChanIn( Channel *c, char ch, int n) attend et lit une chaine de n caractères sur un canal. char ChanTntnt( Channel *chan) attend et lit un entier sur un canal. char ChanInChar( Channel *chan) attend et lit un caractère sur un canal. Envoi de messages: void ChanOut( Channel *chan, char c, int i) envoie une chaine de n caractère sur un canal. void ChanOutlnt( Channel *chan, int i) envoie un entier sur un canal. void ChanOutChar( Channel *chan, char c) envoie un carac:ère sur un canal. 7.2.2 Les instructions sur les processus int ProcTime O re:ourne la valeur du timer (en nombre d'unités timer). int ProcTimeNlinus (const int tl, cons int t2) retourne le résultat de l'opération t2 - tl (en nombre d'unités timer). int ProcTirnePlus (const int tl, cons int t2) retourne le résultat de l'opération tl + t2 (en nombre d'unités timer). void ProcWait (int t) suspend l'exécution du processus pendant le temps t (t en nombre d'unités timer). void ProcAfter (int t) suspend l'exécution du processus pendant le temps t (t en nombre d'unités timer). 7.3 Parallélisme sur plusieurs transputers 7.3.1 Introduction Le transputer est avant tout un processeur destiné aux architectures parallèles. L'utilisateur pourra donc relier plusieurs transputers entre eux par leurs liens de communications. ll placera ensuite les différentes taches sur son réseau de transputers. Les taches sont indépendantes les unes des autres. C'est un fichier de configuration qui va décrire le réseau de processeurs et qui va placer les taches sur ces processeurs. Ainsi, on pourra faire migrer une tache d'un transputer vers un autre en modifiant uniquement le fichier de configuration, les taches ne sont pas modifiées. 7.3.2 Le fichier de configuration Le fichier de configuration décrit le réseau de transputers tant au point de vue matériel que logiciel: Exemple: description matérielle: - les transputers T805 (memory 1M) P1; T805 (memory 1M) P2; T805 (memory 512K) P3; - les liens physiques: connect P1.link[3] to P2.link[1]; connect P2.link[2] to P3.link[0]; description logicielle: - description des taches process ( stacksize = 16K, heapsize = 16K, priority = LOW, interface (input fromT1, output toT1, inputsize = 1, outputsize = 1)) T0; process ( stacksize = 16K, heapsize = 16K, pnonty = HIGH, interface ( input fromTO. output toTO, input fromT2, output toT2, inputsize = 2, outputsize = 2)) @T1; process ( stacksize = 16K, heapsize = 16K, priority = HIGH, interface (input fromT1, output toT1. input fromT3, output toT3, inputsize = 2, outputslze = 2) ) T2; process ( stacksize = 16K, heapsize = 16K, priority = HIGH, interface ( input fromT2, output toT2, inputsize = 1, outputsize = 1)) T3; - connexion des canaux connect T0.fromT1 to T1.toT0; connect T0.toT1 to Tl.fromTO, - attribution d'un code à une tâche use "tâche0.1ku" for T0; - placement des tâches sur les transputers place TO on PO; - placement des canaux logiques sur les canaux physiques place Tl.fromT2 on PO.link[East]; II. REVENDICATIONS 1. revendication: Préambule: Le dispositif est un système de transmission et de gestion de données musicales sous forme d'une commande numérique conduisant à un nouvel orgue véritablement symphonique*,(annexe: 1, I A et 3) caractérisé en ce qu'il est essentiellement constitué par: - un premier réseau de microcalculateurs à architecture et traitement parallèles (composants de type VLSI programmables, DSP, etc ou autres, annexe: 16) disposant d'entrées-sorties digitales parallèles permettant de saisir l'état des organes de commande des consoles des orgues et de liens sériels à haut débit (d'au moins 20 MBits/s), de gérer et de transmettre en même temps(simultanément) et à grande vitesse, les informations musicales issues des contacts des touches de plusieurs claviers de plusieurs consoles, de plusieurs barres de commande et des registres et d'ordinateurs ou d'instruments à la norme MIDI (organes de commande) aux systèmes d'ouverture (eléctroaimants par exemple mais aussi toute autre forme de transducteurs plus généralement), soupapes des tuyaux générant les sons et aux systèmes d'ouverture des sommiers contenus dans le ou les buffets d'un ou plusieurs orgues,(annexe: 1 et 1A) - un second réseau d'ordinateurs de type PC disposant de processeurs traditionnels permettant, à partir d'un de ces ordinateurs associés à chaque console, l'accès à un microcalculateur de traitement maître avec une carte interface disposant d'un convertisseur série-parallèle appelé(interface PClTransputer ou calculateur) afin d'assurer la programmation et la gestion du premier réseau de la commande numérique et de l'ensemble des fonctions de l'orgue ou des orgues (annexe:l, 1A, 3 et 7) et en ce que ce nouvel instrument, ORGUE SY.NJPHONIQUE sera construit avec un ou plusieurs buffets d'un ou plusieurs orgues à l'intérieur d'un même édifice liés entre eux par les liens informatiques des microcalculateurs. (annexe: 1 A) 2. revendication: Préambule: Le dispositif suivant la revendication 1 est essentiellement, composé par un premier réseau de composants(microcalculateurs) à architecture et traitement parallèles permettant la saisie, la gestion et la transmission des données musicales ainsi que leur restitution, par multiplexage et la prise en compte "uniquement" des changements d'états des contacts: caractérisé en ce qu'il est essentiellement constitué: - par des microcalculateurs programmés pour effectuer avec leurs liens, des transferts automatiquentent synchronisés, par séquence d'octets (par exemple)(annexe:l 6A et 1 6B) d'une part, de saisie, dotés d'entrées digitales saisissant l'état logique(tout ou rien ou encore un état dynamique, annexe:14) des contacts des touches des claviers(annexe: 3, 4, 15) ainsi que l'état logique des contacts des barres de commande et des registres(annexe: 2, 2A et 2B) permettant la gestion et la transmission à haut débit (de l'ordre de 2OMBitsIs) sur des distances pouvant aller jusqu'à 100 m des données musicales de l'instrument dans le réseau et dotés de sorties digitales donnant à des voyants lumineux, l'état des contacts d'entrées par les sorties digitales de ces cartes-calculateurs(annexe:3, 4 et 15) d'autre part, de sortie dotés uniquement de sorties digitales restituant sur les systèmes d'ouverture (transducteurs) des soupapes des tuyaux et sur les systèmes d'ouverture des sommiers alimentant les jeux, les états des contacts des touches des claviers, des barres de commande et des registres,(annexe: 10 et 15) et - par la réalisation avantageuse de masques informatiques (annexe:5 et 6) permettant "uniquement" l'extraction des changements d'états des entrées lors de leur balayage et afin d'en assurer la restitution sur les calculateurs de sortie. 3. revendication: Préambule: Le dispositif suivant les revendications let 2 est par ailleurs, constitué par un réseau d'ordinateurs classiques dotés de microprocesseurs permettant l'accès au système de saisie, de gestion et de transmission des données musicales constitué par le second réseau de microcalculateurs à architecture et traitement parallèles: caractérisé en ce que la construction de ce second réseau d'ordinateurs de type PC du dispositif contribue avantageusement depuis chaque ordinateur associé à chaque console de l'orgue(annexe:l), au chargement des programmes des calculateurs, à la gestion de ce réseau de calculateurs ainsi qu'à la gestion des fonctions de l'orgue à partir de chaque console sans qu'il soit nécessaire d'utiliser expréssément l'ordinateur contenant l'interface PC/calculateur du lien avec le réseau de microcalculateurs(annexe:l, 2,3,4 et 13)et est pourvu avec le premier réseau de microcalculateurs, d'un système de gestion des registres "à double entrée" pouvant indifferemment et avantageusement être sélectionnés soit à l'écran d'ordinateur ou par préprogrammation ou encore manuellement par les contacts des registres figurant sur la console ou les consoles utilisées.(annexe:2) 4. revendication: Préambule: Le dispositif suivant les revendications 1, 2 et 3 comprend une structure en réseau de microcalculateurs à architecture et traitement parallèles avec une typologie "en rateau" qui permet de modifier le nombre des claviers des consoles, le nombre des consoles et le nombre des jeux des orgues associés à la commande sans aucune modification de la structure de la commande et sans perte de ses principales caractéristiques (vitesse de transmission, ... etc....): caractérisé en ce que l'intelligence, l'organigramme, l'organisation et la programmation du réseau de microcalculateurs et de ses liens (annexe: 3, 4. 5. 6. 10, Il, 12 et 13) suivant la structure précitée en "forme de rateau" sont avantageusement réalisés et structurés en sous-réseaux(un sous-réseau formant une "dent du rateau" ) dont la conception permet de rajouter ou d'enlever un sous-réseau (reDréscntant les calculateurs d' une console ou un ensemble de ieux de tuyaux au niveau des buffets) ou encore d' allonger ou de raccourcir une "dent du rateau" en ajoutant ou en retirant un des composants à un des sous-réseaux sans qu'il soit nécessaire de modifier la programmation du système et sans perte de ses caractéristiques techniques, l'opération s 'effectuant par la connexion d' un simple lien (anexe:15) en ajoutant autant de calculateurs de saisie que de sortie en offrant la possibilité d'une extension à autant de buffets et d'orgues qu'un édifice liturgique peut en proposer.(annexe: 1 A) 5. revendication: Préambule: Le dispositif suivant les revendications 1, 2 et 4 offre la possibilité de positionner la ou les consoles sur le ou les lieux désirés(annexe: lA) en raison d'une communication et d'une transmission des données musicales sous forme numérique: caractérisé en ce que les liens entre les consoles et les buffets des orgues, non rattachés physiquement aux buffets des instruments, ( permettent avantageusement une disposition des consoles à des distances pouvant aller jusqu'à iOOm du ler buffet, en un point déterminé, autorisant par exemple, les interprètes sur differentes consoles à se consulter durant l'exécution d'une pièce ou se trouver au milieu d'un choeur et/ou d'un orchestre) sont construits avantageusement à partir et autour de l'intelligence (caractérisée précédemment) et ltorganisatiqn du réseau de microcalculateurs de saisie des consoles et de sortie,(annexe: 13) tirées des propriétés des calculateurs à architecture et traitement parallèles telles que définies dans les annexes 16 et en assurant la transmission des données musicales sur de grandes distances sous une forme numérique, en raison d'une faible sensibilité au bruit, avec des fichiers spécifiques proches de la norme du standard international MIDI adoptée pour les instruments de musique. (annexe: 14) 6. revendication: Préambule: Le dispositif suivant les revendications 1. 2 et 4 permet par l'enfoncement d'une touche d'un clavier quelconque d'ouvrir n'importe quel soupape d'un tuyau d'un des buffets de l'orgue ou des orgues: caractérisé en ce que l'intelligence développée pour le réseau de gestion et de transmission des données musicales et son organisation sont réalisées avantageusement de sorte que par l'enfoncement de n'importe quelle touche on obtient la note de n'importe quel tuyau correspondant à la programmation de la barre de commande d'un des claviers d'une des consoles et des registres(annexe: 2, 2A, 2B et 3) et la construction est faite en sorte "aucune touche enfoncée constitue donc l'information la plus élémentaire de la commande numérique au regard des tuyaux des buffets et orgues liés à la commande numérique".(annexe: 5, 6, 9, il et 12) 7. revendication: Préambule: Le dispositif suivant les revendications 1, 2 et 6 permet de transmettre simultanément les données musicales issues de claviers de diff > erentes consoles: caractérisé en ce que l'intelligence, la gestion et l'organisation du dispositif sont réalisées de sorte à disposer du maintien d'une vitesse importante de transmission, soit environ 4.000. notes définies par deux octets en 1/200ème de seconde (annexe: 5, 6, 8 , 9, 11, 12 et 13) et sont constituées de sorte à disposer d'autant de consoles et d'orgues(annexe: 1 A et 2) que nécessaire pour l'interprétation de compositions disposant d'un nombre important de portées musicales par plusieurs interprètes simultanément. 8. revendication: Préambule: Le dispositif suivant les revendications 1 et 2 est composé aussi de barres de commande offrant une grande ergonomie d'utilisation, constituées de contacts lumineux, affectée à chaque clavier et pédalier réel, caractérisé en ce que cette barre de commande intégre avantageusement pour chaque clavier et pédalier. toutes les fonctions de l'orgue qui sont principalement (annexe:2, 2A et 2B): - le choix du clavier virtuel à partir d'un clavier réel, - la permutation de claviers, - la transposition des notes, - l'enregistrement et le choix d'une registration, - ....... , . .. etc - la répétition de notes avec un ou plusieurs différés programmables, est fixée avantageusement au dessus de chaque clavier et dont les contacts sont utilisables par une simple pression de l'extrémité des doigts de l'interprète, construit avantageusement de manière à connaître les fonctions choisies par l'état de ses diffqerents contacts disposant des voyants lumineux intégrés aux contacts (annexe:3 et 4) et est réalisée avantageusement pour produire l'équivalent de 16 claviers et pédaliers virtuels par appel aux moyens des contacts des barres de commande(annexe:2, 2A et 2B), sur les claviers et pédalier réels d'une console ou plusieurs consoles. 9. revendication: Préambule: Le dispositif suivant les revendications 1, 2 et 8 autorise l'utilisation de 16 claviers et pédaliers virtuels dont le nombre est uniquement limité par le standard du fichier MIDI des instruments de musique: caractérisé en ce que l'intelligence et l'organisation du réseau de la commande numérique associée aux barres de commande des claviers et pédalier sont réalisées avantageusement pour commander sur trois claviers et un pédalier réels d'une console, un nombre supérieur à 16 claviers et pédaliers virtuels tels que définis dans les annexes: 2, 2A, 2B. 4. 5 et 6. sans la contrainte du standard MIDI. 10. revendication: Préambule: Le dispositif suivant les revendications 1 et 2, autorise par l'intermédiaire d'un calculateur de multiplexage des données musicales(Transputer ou calculateur/MIDI) d'orienter ces données vers un ordinateur (pour leur enregistrement ou leur restitution) ou des instruments au standard de la norme international MlDl(annexe: 3, 7 et 15): caractérisé en ce que la commande numérique est équipée avantageusement de la réalisation d'un calculateur (appelé T/MIDI) (annexe:7 et 15) doté d'entrées/sorties au standard MIDI qui assurent la liaison entre les microcalculateurs de saisie et de sortie mais qui assurent aussi l'échange de ces données avec les instruments à la norme MIDI conformément à la réalisation (annexe:7, 8, 9 et 15) et à l'organisation de sa programmation (annexe: 8 et 9) par gestion de piles de données, et que par l'organisation et la programmation de ce calculateur(annexe:l1 et 12), la restitution de données musicales émanant d'un ordinateur( lien MIDI Inti) ou d'un autre instrument MIDI (lien MIDI IN2) (annexe:7) peut être avantageusement assurée vers les calculateurs de sortie en même temps que les données émanant des calculateurs de saisie des consoles ou de l'interface PC/Transputer. (annexe:3) *Par orgue symphonique, il faut comprendre tous les buffets et orgues d'un même édifice (Eglise, cathédrale, Auditorium, etc... annexe:l-A)