Brevet FR2865569A1 — publié le 20050729

INSTRUMENT DE MUSIQUE, PROCEDE DE GENERATION MUSICALE ET PROCEDE DE CODAGE DE DONNEES. La présente invention concerne un instrument de musique, un procédé de génération musicale et un procédé de codage de données. Elle s'applique, en particulier, aux orgues de barbarie. On connaît des orgues de barbarie mécaniques qui mettent en oeuvre des bandes de cartons perforés constituées de volets articulés qui actionnent des touches d'une boîte à touches, la remontée de la touche permettant à l'air de circuler dans un tuyau pour le mettre en vibration. La mise en déplacement des bandes de carton perforées et de l'air est effectuée par action sur une manivelle. Ces orgues présentent l'inconvénient principal que les bandes de carton perforées sont volumineuses et lourdes, ce qui limite le nombre de morceaux que l'on peut conserver dans un meuble à quelques dizaines. On connaît des instruments électroniques qui lisent une mémoire (non amovible) et jouent un morceau de musique à un rythme contrôlé par logiciel ou par un bouton de réglage dédié. Ces instruments entièrement automatiques n'ont pas l'attrait des orgues de barbarie dont la vitesse de jeu est contrôlée par l'organiste, manuellement et "à l'oreille". La présente invention vise à remédier à ces inconvénients. À cet effet, la présente invention vise, selon un premier aspect, un instrument de musique caractérisé en ce qu'il comporte: - un moyen de lecture de cartes à mémoire amovibles contenant des données représentatives de notes de musique, ledit moyen de lecture de cartes à mémoire (160) étant adapté à lire de manière séquentielle les données conservées par la carte à mémoire. Selon une autre caractéristique l'instrument de musique selon la présente invention comporte en outre: - une manivelle et - un moyen de génération de sons représentés par lesdites notes, la 30 durée de génération de chaque son étant une fonction croissante de la vitesse de rotation de la manivelle. Grâce à ces dispositions, chaque morceau de musique à conserver tient dans un volume d'une carte à mémoire, environ cent fois plus petit que celui d'un ensemble de bandes de carton perforées pour orgue de barbarie. Le coût d'une carte à mémoire est plus faible que celui d'un ensemble de bandes de carton perforées. De plus, le délai de fabrication d'une carte à mémoire est plus faible que celui de fabrication d'une bande de carton perforée. Les cartes à mémoires résistent beaucoup mieux aux chocs que les autres supports d'information (disques durs, disquette, disques compacts). Enfin, le musicien contrôle le rythme ou tempo de la musique en actionnant la manivelle plus ou moins vite et s'il arrête momentanément de tourner la manivelle, le morceau reprend là où il en était à l'arrêt de la manivelle. Selon des caractéristiques particulières, la manivelle est reliée à un moyen de génération d'impulsions dont la fréquence est proportionnelle à la vitesse de rotation de la manivelle, le moyen de génération de sons recevant un signal représentatif desdites impulsions et commandant la durée de génération de chaque son en fonction du signal représentatif desdites impulsions. Grâce à ces dispositions, la vitesse de jeu de la musique est directement proportionnelle à la vitesse de rotation de la manivelle, comme dans les orgues de barbarie mécaniques. Selon des caractéristiques particulières, le moyen de lecture de cartes à mémoire amovibles est adapté à lire les données présentes sur la carte à une fréquence proportionnelle à la vitesse de rotation de la manivelle. Grâce à ces dispositions, il n'est pas nécessaire de prévoir une mémoire intermédiaire (mémoire tampon) pour stocker une partie des données entre leur lecture dans la carte à mémoire et la génération des sons représentés par ces données. Le nombre de données en cours de traitement entre leur lecture sur la carte à mémoire et la génération du son qu'elles représentent est constant, par exemple égal à un, c'est-à-dire que le son représenté par une donnée est joué immédiatement après la lecture de cette donnée. Selon des caractéristiques particulières, le moyen de lecture de cartes à mémoire est adapté à lire de manière séquentielle les données conservées par la carte à mémoire. Selon des caractéristiques particulières, le moyen de lecture de cartes à mémoire est adapté à écrire les données lues dans la carte à mémoire dans au moins un registre à décalage. Grâce à chacune de ces dispositions, l'écriture et la lecture de la carte à mémoire sont facilités, la carte à mémoire se comportant en FIFO (first in first out, pour premier entré, premier sorti). Selon des caractéristiques particulières, le moyen de génération de sons comporte une source d'air sous pression, des soupapes commandées électriquement et, devant chaque soupape, un tuyau mis en vibration par le passage de l'air à travers la soupape, les soupapes étant ouvertes ou fermées en fonction des données lues sur la carte à mémoire amovible. Grâce à ces dispositions, la sonorité d'un orgue peut être reproduite. Selon des caractéristiques particulières, les soupapes sont mise en 10 déplacement, chacune, par un électro-aimant. Grâce à ces dispositions, la commande de chaque soupape est rapide et fiable. Selon des caractéristiques particulières, le moyen de lecture de carte à mémoire émet un signal pour recevoir une donnée représentative d'une durée, la carte à mémoire émet une donnée représentative d'une durée, le moyen de génération de sons attend que le mouvement de la manivelle corresponde au déroulement de cette durée avant que le moyen de lecture émette un nouveau signal pour recevoir une donnée représentative d'une durée et le moyen de lecture de carte à mémoire émet un signal pour recevoir des données représentatives de notes entre deux signaux pour recevoir une donnée représentative d'une durée. Grâce à ces dispositions, le moyen de génération de sons ne conserve en mémoire que les données représentatives des notes en cours de génération. Selon un deuxième aspect, la présente invention vise un procédé de génération musicale, caractérisé en ce qu'il comporte: - une étape de réception d'un signal représentatif de la rotation d'une manivelle, - une étape de lecture d'une carte à mémoire amovible contenant des données représentatives de notes de musique et - une étape de génération de sons représentés par lesdites notes, la 30 durée de génération de chaque son étant une fonction croissante de la vitesse de rotation de la manivelle. Selon un troisième aspect, la présente invention vise un procédé de codage de données représentatives de notes de musique, caractérisé en ce qu'il comporte: - une étape de compression d'un fichier MIDI, - une étape de mise en correspondance de notes avec des numéros de tuyaux d'orgue, - une étape d'encodage des données représentatives de numéros d'orgue, dans une carte à mémoire amovible. Les autres avantages, buts et caractéristiques particulières de ces 10 procédés étant similaires à ceux de l'instrument de musique tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. D'autres avantages, buts et caractéristiques de la présente invention ressortiront de la description qui va suivre faite, dans un but explicatif et nullement limitatif en regard des dessins annexés dans lesquels: - la figure 1 représente, schématiquement, un instrument de musique objet de la présente invention, et - la figure 2 représente un logigramme d'un mode de réalisation particulier du procédé de génération musicale objet de la présente invention. Bien que, dans la description qui va suivre, on décrive l'invention en référence à un orgue de barbarie, la présente invention n'est pas limitée à ce type d'instrument de musique, mais s'étend, au contraire, à tous les types d'instruments musicaux. De même, bien que, dans la description qui va suivre, on décrive l'invention en référence à des fichiers MIDI, la présente invention n'est pas limitée à ce type de fichier, mais s'étend, au contraire, à tous les types de fichiers représentant de la musique. On rappelle qu'un fichier MIDI comporte trois parties principales: l'en-tête ou "header", - les informations sur la mesure, le tempo (ou "track") et méta- événements et - la représentation des notes. L'en-tête comporte des informations sur le format MIDI, le nombre de pistes, l'horloge. Chaque note est codée sur quatre à sept octets: indication de durée (un à quatre octets) entre deux événements MIDI qui se suivent, - note on/off (un octet) qui indique si on allume ("on") ou éteint ("off') la note indiquée par l'octet suivant, - note (un octet) et - vélocité (un octet) qui indique la force avec laquelle la note est jouée. Dans un mode de réalisation particulier de la présente invention, au cours d'une étape de compression 210 (voir figure 2), on compresse les données du fichier MIDI de la manière suivante: - élimination de l'en-tête, - élimination des méta-évenements, - élimination de l'octet de vélocité, - élimination de l'octet note "on/off, - remplacement du premier bit de l'octet représentant la note par une 15 donnée binaire indiquant si on allume ou éteint la note indiquée par les sept bits suivants Chaque note est donc codée sur deux à cinq octets. La durée entre deux événements est multipliée par un facteur représentatif du tempo. Cette compression permet, en moyenne, de diviser par deux la dimension 20 du fichier MIDI et cinq minutes de musique se codent, en moyenne sur seize kilo-octets. On observe que, au cours de l'étape de compression 210, chaque note est remplacée par un numéro d'électro-aimant qui doit être activé dans un orgue pour fournir cette note, grâce à une table de correspondance. Au cours d'une étape d'écriture 220, on écrit le fichier compressé dans une carte à mémoire. Puis, on transporte la carte à mémoire jusqu'à l'instrument de musique illustré en figure 1, à titre d'exemple. On observe, en figure 1, un instrument de musique 100 comportant un microcontrôleur 110 muni d'une mémoire morte 112, quatre registres à décalage 121 à 124, trente-deux électro-aimants 130, un connecteur de carte à mémoire 140, un codeur incrémental 150, une carte à mémoire 160 et une manivelle 170. Les alimentations électriques des différents composants étant bien connues de l'homme du métier, elles ne sont pas représentées en figure 1. Le connecteur de carte à mémoire 140 et le microcontrôleur 110 constituent conjointement un moyen de lecture de cartes à mémoire amovibles contenant des données représentatives de notes de musique. La carte à mémoire 160 est, par exemple, une carte à puce de type EEPROM (mémoire morte programmable effaçable électriquement). Les données inscrites sur la carte à mémoire 160 sont, dans un mode de réalisation particulier, les suivantes: - un identifiant du fournisseur de la carte à mémoire, - des données représentatives de la dimension du fichier musique, 10 - un numéro de carte par rapport au nombre total de cartes (pour un morceau musical codé sur plusieurs cartes), - des données représentatives de la dimension du titre du morceau, - des données représentatives du titre du morceau, Pour jouer le morceau musical, on met en oeuvre les quatre registres à décalage 121 à 124. Chaque registre à décalage est un composant auquel on envoie, en série, des données lues dans la carte à mémoire 160, sur l'une des pattes et on retrouve ces données en parallèle sur huit autres pattes du composant. Dans un mode préféré de réalisation, chacune des sorties des registres à décalage 121 à 124 est équipée d'un transistor MOS (metal oxyd semiconductor pour semiconducteur à oxyde de métal) qui permet de piloter directement un des électroaimants 130. Le codeur incrémentai 150 est mécaniquement couplé au mouvement de la manivelle pour, par exemple, fournir 900 impulsions par tour de la manivelle 170. Le microcontrôleur 110 lit les données sur la carte à mémoire 160, par l'intermédiaire du connecteur de carte à mémoire 140, en mettant en oeuvre le protocole I2C. Puis il décode ces données et alimente les électro-aimants 130 en fonction du tempo donné par le mouvement de la manivelle 170. La durée nécessaire à la lecture d'un octet sur la carte à mémoire 160 étant d'environ 33 ps et le plus petit intervalle de temps codé par la donnée de durée entre événements dans un fichier MIDI étant de 2600 ps, il n'est pas nécessaire de stocker les données conservées par la carte à mémoire 160 dans une mémoire tampon ("buffer") du microcontrôleur. La lecture des données se fait ainsi en parallèle avec l'activation des électro-aimants 130 à une fréquence qui dépend de la vitesse de rotation de la manivelle 170. Le protocole de communication utilisé entre le microcontrôleur 110 et la carte à mémoire 160 est, par exemple, le protocole 12C. Le protocole l2C est un protocole qui permet de communiquer entre plusieurs composants, ici le microcontrôleur 110 et la carte à mémoire 160. Pour cela, ce protocole met en oeuvre deux signaux: le premier ("SCL") est l'horloge donnée par le composant "maître" et le second ("SDA") qui représente les données transmises, en série. La mémoire de la carte à mémoire 160 est lue de manière séquentielle, c'est-à- dire que l'on donne, à un pointeur de la carte à mémoire 160, l'adresse du premier octet à lire et qu'ensuite, on envoie un signal ("ACK") pour lire l'octet suivant, sans fournir de nouvelle adresse au pointeur. Pour lire les données conservées par la carte à mémoire 160, le microcontrôleur 110 échange successivement avec la carte à mémoire 160, les 15 signaux suivants: - le microcontrôleur 110 émet un signal "start", puis une adresse de la carte à mémoire 160 suivie d'un signal "0" pour indiquer que le microcontrôleur 110 (le "maître") va écrire, - la carte à mémoire 160 retourne un signal "ACK" pour indiquer qu'elle a 20 bien compris que les signaux s'adressaient à elle, - le microcontrôleur 110 envoie l'adresse de lecture sur deux octets, que va pointer le pointeur de la carte à mémoire 160. C'est à cette adresse que commence la lecture de la mémoire de la carte à mémoire 160, - la carte à mémoire 160 retourne un signal "ACK", - le microcontrôleur 110 émet un signal "start", puis une adresse de la carte à mémoire 160 suivie d'un signal "1" pour indiquer que le microcontrôleur 110 va lire, - la carte à mémoire 160 retourne un signal "ACK", - le microcontrôleur 110 émet à son tour un signal "ACK", la carte à mémoire 160 transmet l'octet sur lequel pointe le pointeur, le microcontrôleur 110 émet un signal "ACK", - le pointeur se déplace à l'adresse suivante (incrémentation de l'adresse) et la carte à mémoire 160 transmet l'octet sur lequel pointe le pointeur, et ainsi de suite, lorsque l'on veut arrêter la lecture de la carte à mémoire 160, on envoie un signal "NACK" qui indique à la carte à mémoire 160 qu'elle ne doit plus rien transmettre, puis un signal "stop" pour terminer la communication entre le microcontrôleur 110 et la carte à mémoire 160. Comme illustré en figure 2, dès qu'une carte à mémoire 160 est insérée dans le connecteur de cartes à mémoire 140, étape 230, le microcontrôleur 110 commence l'exécution du programme qu'il conserve en mémoire morte 112, étape 240. L'exécution de ce programme comporte (voir figure 2) : - une étape d'initialisation 250 des ports du microcontrôleurs, des communications au protocole l2C et des registres à décalage, - une étape d'allumage 260 d'une diode électroluminescente verte, qui indique à l'utilisateur que le programme a bien commencé, - une étape d'initialisation 270 de la carte à mémoire 160 pour la lecture, comme indiqué ci-dessus, en s'arrêtant juste avant l'émission par le microcontrôleur 110 du premier signal "ACK" destiné à commander la transmission, par la carte à mémoire, d'un octet, - une étape de lecture et de vérification 280 de l'en-tête: s'il est reconnu (identifiant du fabricant), on initialise une variable représentant la longueur d'un morceau, étape 285, sinon, on allume une diode électroluminescente rouge, étape 290 et on arrête l'exécution du programme jusqu'à ce qu'une nouvelle carte à mémoire soit insérée dans le connecteur 140. À la suite de l'étape 285, de manière récurrente jusqu'à la fin du morceau: - une étape de lecture 300 de la durée entre deux événements et d'écriture de cette valeurs dans une variable, - une étape 310 d'attente que le nombre d'impulsions transmises par le codeur incrémentai 150 couplé au mouvement de la manivelle 170 ait fournit un nombre d'impulsions correspondant à la durée reçue au cours de l'étape précédente 300 (les impulsions étant comptées par interruption, elles sont comptées tout au long de l'exécution du programme), - une étape 320 de lecture, dans la carte à mémoire 160, de données représentatives de notes et de la donnée note on/off incorporée dans l'octet qui représente chaque note, les données représentatives de notes correspondant, en fait, au numéro de l'électro-aimant 130 qui doit être activé pour jouer cette note, selon une table de correspondance utilisée au cours de l'encodage du morceau musical (étape 210), - une étape de transfert 330 des données représentatives des données représentatives de notes à jouer aux registres à décalage 121 à 124. Du fait que les sorties des registres à décalage 121 à 124 comportent des transistors MOS et que la sortie de chacun de ces transistors MOS est reliée à un électro-aimant 130 qui commande une soupape (non représentée) qui laisse sortir l'air de l'un des tuyaux (non représentée) mis sous pression par un soufflet (non représenté) actionné par la manivelle 170, qui remplit une chambre (non représentée) reliée aux tuyaux et maintenue sous pression par un ressort (non représenté), les notes représentées par les données conservées dans la carte à mémoire 160 sont jouées au rythme de la rotation de la manivelle 170. Le microcontrôleur 110, la source d'air sous pression constituée par la chambre, les soupapes et les tuyaux constituent conjointement un moyen de génération de sons représentés par les données représentatives de notes conservée par la carte à mémoire 160, la durée de génération de chaque son étant une fonction croissante de la vitesse de rotation de la manivelle 170. À la fin du morceau, on retourne à l'étape 210 jusqu'à ce qu'une nouvelle carte à mémoire 160 soit introduite dans le connecteur de carte 140. REVENDICATIONS 1 - Instrument de musique (100), caractérisé en ce qu'il comporte: - un moyen de lecture (110, 140) d'une carte à mémoire amovible (160) contenant des données représentatives de notes de musique, ledit moyen de lecture (110, 140) de cartes à mémoire (160) étant adapté à lire de manière séquentielle les données conservées par la carte à mémoire. 2 - Instrument de musique (100) selon la revendication 1, caractérisé en ce que le moyen de lecture (110, 140) de cartes à mémoire (160) est adapté à écrire les données lues dans la carte à mémoire (160) dans au moins un registre à décalage (121 à 124). 3 - Instrument de musique (100) selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que le moyen de génération (110) de sons comporte une source d'air sous pression, des soupapes commandées électriquement et, devant chaque soupape, un tuyau mis en vibration par le passage de l'air à travers la soupape, les soupapes étant ouvertes ou fermées en fonction des données lues sur la carte à mémoire amovible (160). 4 - Instrument de musique (100) selon la revendication 3, caractérisé en ce que les soupapes sont mise en déplacement, chacune, par un électroaimant (130). - Instrument de musique (100) selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le moyen de lecture (110, 140) de carte à mémoire (160) est adapté à émettre un signal de lecture, à recevoir de la carte à mémoire amovible une donnée représentative d'une durée, le moyen de génération (110) de sons attendant que ladite durée soit écoulée avant que le moyen de lecture émette un nouveau signal pour recevoir une donnée représentative d'une durée. 6 - Instrument de musique (100) selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le moyen de lecture de carte à mémoire émet un signal pour recevoir des données représentative de notes. 7 - Instrument de musique (100) selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le moyen de lecture de carte à mémoire émet un signal pour recevoir des données représentative de notes entre deux signaux pour recevoir une donnée représentative d'une durée. 8 - Instrument de musique (100) selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comporte, en outre: - une manivelle (170) et - un moyen de génération (110) de sons représentés par lesdites notes, la durée de génération de chaque son étant une fonction croissante de la vitesse de rotation de la manivelle. 9 - Instrument de musique (100) selon la revendication 8, caractérisé en ce que la manivelle (170) est reliée à un moyen de génération d'impulsions (150) dont la fréquence est proportionnelle à la vitesse de rotation de la manivelle, le moyen de génération de sons (110) recevant un signal représentatif desdites impulsions et commandant la durée de génération de chaque son en fonction du signal représentatif desdites impulsions. 10 - Instrument de musique (100) selon l'une quelconque des revendications 8 ou 9, caractérisé en ce que le moyen de lecture (110, 140) de cartes à mémoire amovibles (160) est adapté à lire les données présentent sur la carte à une fréquence proportionnelle à la vitesse de rotation de la manivelle (170).