L'ordinateurDu dessin automatique
|
![]() |
Des choses déjà dites.
Dans un article paru il y a quelques temps, j'ai évoqué un de mes émerveillements de la chose informatique : le langage XML et ses dérivés. J'ai parlé du fait qu'un de mes axes de recherche actuels se trouve dans la réflexion d'un langage informatique propre à décrire les orgues et, plus particulièrement, les tuyauteries. XML possède déjà beaucoup de dérivés et je n'ai pas manqué, dans ce même article, d'évoquer MusicML qui est un format informatique d'écriture musicale qui en est aussi issu. À la fin de l'article, j'ai évoqué une intervention faite sur un forum propre à la suite bureautique OpenOffice.org. Par quelques lignes de code, j'avais prouvé-là qu'il est assez aisé de prendre des données issues d'un tableur et de s'en servir comme base de dessin automatique. J'ai aussi évoqué le format SVG, celui dont je voudrais parler dans le présent article.
Peinture flamande.
Un tuyau d'orgue de façade n'est pas compliqué à dessiner. Il suffit de tracer un rectangle pour le corps, le poser sur un trapèze la pointe en bas pour le pied, rajouter un petit rectangle noir pour la bouche et finir par encadrer cette dernière par deux aplatissages inférieur et supérieur généralement en forme de voûte romane. Pour peu que l'on ajoute un dégradé linéaire, vertical pour le corps, horizontal pour les aplatissages et légèrement oblique pour le pied et l'on peut (presque) s'estimer à la hauteur des plus grands peintres flamands...
S'il reste bien entendu qu'il existe à-peu-près autant de types d'aplatissages de tuyaux que de façades d'orgues, on peut, quand même, noter quatre grandes familles générales qui s'appliquent tant au aplatissages des lèvres supérieures que des inférieures. Soit :
- la forme romane, la plus commune en Europe.
- la forme gothique, très à la mode dans les salons du nouveau monde.
- la forme en accolade renaissance, plutôt bretonne.
- la forme triangulaire, franchement alsacienne.
La combinatoire de ces quatre formes agencées en lèvres supérieures et inférieures donne naturellement un total de seize possibilités :
Ces formes sont généralement très simples à définir en SVG et seule l'accolade renaissance m'a donné un peu de fil à retordre pour la programmer de façon relative c'est-à-dire adaptable pour n'importe quelle largeur de bouche. Mais cela m'a ouvert à la compréhension de la programmation des courbes de Bézier ce dont on peut imaginer que cela peut toujours servir...
La feuille de tableur.
Tout projet de programmation doit commencer par quelque chose de simple, voire de très connu. Il se trouve que je connais particulièrement bien les deux relevés des instruments du grand temple de Saint-Hippolyte-du-Fort ainsi que de celui de Notre-Dame d'Auxonne. Ces deux instruments n'ont évidemment rien à voir entre-eux, si ce n'est en commun une façade entièrement plate sans tourelle circulaire. La problématique du dessin en est donc évidemment particulièrement simplifiée.
Parce que le langage ODL est loin d'être défini pour l'instant et que le sujet de cet article n'est pas de se préoccuper du stockage de données de facture d'orgues mais bien de démontrer à quoi peut servir un relevé de tuyauterie, notamment historique, j'ai choisi de mettre les données en place dans un tableur. Ayant pour habitude de me servir de logiciels open source, j'ai évidemment choisi le format ODF, utilisable, entre autres, par la suite bureautique OpenOffice.org. Certains préféreront peut-être un format commercial et c'est la raison pour laquelle je rends disponible ici tant une version au format ODS qu'une autre au format XLS. Le contenu des deux versions est bien entendu strictement identique. Pour une compréhension plus aisée je publie aussi le contenu de ces fichiers dans le tableau ci-dessous. Les données écrites en vert sont des données calculées et non issues de relevés ; l'en-tête des colonnes est explicité à la suite mais en observant une photographie de la façade et un plan du relevé de sa charpente on peut déjà comprendre facilement le contenu des cellules du tableau.
Note | Jeu | Ordre | posY | coloriage | diamCorps ou larg. mont. |
longCorps ou montant |
longPied | largBouch ou larg. groupe |
hautBouch | hautLevSup | hautLevInf | tls ou nb tuyaux groupe |
tli ou nature groupe |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Montant | -1 | 0,0 | 1 | 115,0 | 2900,0 | 675,0 | 5 | 1 | |||||
Bb 1 | M8' | 1 | 0,0 | 1 | 100,0 | 1980,0 | 620,0 | 79,0 | 26,0 | 160,0 | 52,5 | 2 | 1 |
F# 1 | M8' | 2 | 0,0 | 1 | 120,0 | 2070,0 | 530,0 | 95,0 | 31,0 | 194,0 | 63,0 | 2 | 1 |
E 1 | M8' | 3 | 0,0 | 1 | 132,0 | 2190,0 | 410,0 | 104,0 | 33,5 | 210,0 | 68,8 | 2 | 1 |
G# 1 | M8' | 4 | 0,0 | 1 | 109,0 | 2070,0 | 530,0 | 87,0 | 28,5 | 175,0 | 57,8 | 2 | 1 |
C 2 | M8' | 5 | 0,0 | 1 | 90,0 | 1980,0 | 620,0 | 72,0 | 23,5 | 145,0 | 47,8 | 2 | 1 |
Montant | -2 | 0,0 | 1 | 115,0 | 2900,0 | 645,0 | 9 | 1 | |||||
Muet | 6 | -480,0 | 1 | 46,2 | 1275,0 | 270,0 | 35,0 | 12,0 | 84,0 | 23,5 | 2 | 1 | |
Muet | 7 | -480,0 | 1 | 50,6 | 1275,0 | 270,0 | 38,5 | 14,0 | 92,0 | 26,3 | 2 | 1 | |
Muet | 8 | -480,0 | 1 | 54,1 | 1275,0 | 270,0 | 42,0 | 15,0 | 100,0 | 28,5 | 2 | 1 | |
Muet | 9 | -480,0 | 1 | 59,8 | 1275,0 | 270,0 | 45,0 | 15,5 | 110,0 | 30,3 | 2 | 1 | |
G# 1 | P4' | 10 | -480,0 | 1 | 64,4 | 1275,0 | 270,0 | 49,0 | 18,0 | 115,0 | 33,5 | 2 | 1 |
Bb 1 | P4' | 11 | -480,0 | 1 | 59,8 | 1275,0 | 270,0 | 45,0 | 15,5 | 107,0 | 30,3 | 2 | 1 |
C 2 | P4' | 12 | -480,0 | 1 | 54,1 | 1275,0 | 270,0 | 42,0 | 15,0 | 100,0 | 28,5 | 2 | 1 |
D 2 | P4' | 13 | -480,0 | 1 | 50,6 | 1275,0 | 270,0 | 38,5 | 14,0 | 92,0 | 26,3 | 2 | 1 |
E 2 | P4' | 14 | -480,0 | 1 | 46,2 | 1275,0 | 270,0 | 35,0 | 12,0 | 82,0 | 23,5 | 2 | 1 |
Montant | -3 | 0,0 | 1 | 140,0 | 2200,0 | 1675,0 | 23 | 1 | |||||
C 4 | M8' | 15 | -400,0 | 1 | 32,0 | 1395,0 | 580,0 | 25,0 | 8,0 | 58,0 | 16,5 | 2 | 1 |
Bb 3 | M8' | 16 | -400,0 | 1 | 34,0 | 1420,0 | 555,0 | 28,0 | 8,0 | 63,0 | 18,0 | 2 | 1 |
G# 3 | M8' | 17 | -400,0 | 1 | 37,4 | 1450,0 | 525,0 | 28,5 | 9,0 | 67,0 | 18,8 | 2 | 1 |
F# 3 | M8' | 18 | -400,0 | 1 | 41,2 | 1470,0 | 505,0 | 31,0 | 10,0 | 74,0 | 20,5 | 2 | 1 |
E 3 | M8' | 19 | -400,0 | 1 | 45,3 | 1490,0 | 485,0 | 35,0 | 11,0 | 81,0 | 23,0 | 2 | 1 |
D 3 | M8' | 20 | -400,0 | 1 | 49,0 | 1515,0 | 460,0 | 37,5 | 12,5 | 88,0 | 25,0 | 2 | 1 |
C 3 | M8' | 21 | -400,0 | 1 | 54,0 | 1540,0 | 435,0 | 42,0 | 12,5 | 95,0 | 27,3 | 2 | 1 |
Bb 2 | M8' | 22 | -400,0 | 1 | 59,3 | 1560,0 | 415,0 | 45,0 | 15,0 | 107,0 | 30,0 | 2 | 1 |
G# 2 | M8' | 23 | -400,0 | 1 | 64,0 | 1585,0 | 390,0 | 49,0 | 16,5 | 115,0 | 32,8 | 2 | 1 |
F# 2 | M8' | 24 | -400,0 | 1 | 72,0 | 1610,0 | 365,0 | 55,0 | 18,0 | 130,0 | 36,5 | 2 | 1 |
E 2 | M8' | 25 | -400,0 | 1 | 78,5 | 1640,0 | 335,0 | 60,0 | 18,5 | 140,0 | 39,3 | 2 | 1 |
D 2 | M8' | 26 | -400,0 | 1 | 85,4 | 1655,0 | 320,0 | 64,5 | 21,0 | 152,0 | 42,8 | 2 | 1 |
Eb 2 | M8' | 27 | -400,0 | 1 | 82,0 | 1635,0 | 340,0 | 63,0 | 20,0 | 145,0 | 41,5 | 2 | 1 |
F 2 | M8' | 28 | -400,0 | 1 | 74,0 | 1610,0 | 365,0 | 57,0 | 19,0 | 134,0 | 38,0 | 2 | 1 |
G 2 | M8' | 29 | -400,0 | 1 | 68,0 | 1590,0 | 385,0 | 53,0 | 17,0 | 123,0 | 35,0 | 2 | 1 |
A 2 | M8' | 30 | -400,0 | 1 | 62,0 | 1560,0 | 415,0 | 47,0 | 15,0 | 110,0 | 31,0 | 2 | 1 |
B 2 | M8' | 31 | -400,0 | 1 | 57,0 | 1540,0 | 435,0 | 43,0 | 13,0 | 100,0 | 28,0 | 2 | 1 |
C# 3 | M8' | 32 | -400,0 | 1 | 51,0 | 1515,0 | 460,0 | 40,0 | 12,5 | 92,0 | 26,3 | 2 | 1 |
Eb 3 | M8' | 33 | -400,0 | 1 | 47,0 | 1490,0 | 485,0 | 36,0 | 11,0 | 83,0 | 23,5 | 2 | 1 |
F 3 | M8' | 34 | -400,0 | 1 | 42,4 | 1465,0 | 510,0 | 33,0 | 10,0 | 76,0 | 21,5 | 2 | 1 |
G 3 | M8' | 35 | -400,0 | 1 | 40,0 | 1445,0 | 530,0 | 30,0 | 10,0 | 71,0 | 20,0 | 2 | 1 |
A 3 | M8' | 36 | -400,0 | 1 | 37,2 | 1420,0 | 555,0 | 28,0 | 9,0 | 65,0 | 18,5 | 2 | 1 |
B 3 | M8' | 37 | -400,0 | 1 | 33,8 | 1400,0 | 575,0 | 26,0 | 8,0 | 60,0 | 17,0 | 2 | 1 |
Montant | -4 | 0,0 | 1 | 140,0 | 2200,0 | 645,0 | 9 | 1 | |||||
Eb 2 | P4' | 38 | -480,0 | 1 | 47,3 | 1275,0 | 270,0 | 36,5 | 13,0 | 85,0 | 24,8 | 2 | 1 |
C# 2 | P4' | 39 | -480,0 | 1 | 52,5 | 1275,0 | 270,0 | 40,0 | 14,0 | 95,0 | 27,0 | 2 | 1 |
B 1 | P4' | 40 | -480,0 | 1 | 51,5 | 1275,0 | 270,0 | 43,0 | 13,0 | 102,0 | 28,0 | 2 | 1 |
A 1 | P4' | 41 | -480,0 | 1 | 62,4 | 1275,0 | 270,0 | 48,0 | 17,0 | 112,0 | 32,5 | 2 | 1 |
Muet | 42 | -480,0 | 1 | 64,4 | 1275,0 | 270,0 | 49,0 | 18,0 | 115,0 | 33,5 | 2 | 1 | |
Muet | 43 | -480,0 | 1 | 62,4 | 1275,0 | 270,0 | 48,0 | 17,0 | 108,0 | 32,5 | 2 | 1 | |
Muet | 44 | -480,0 | 1 | 51,5 | 1275,0 | 270,0 | 43,0 | 13,0 | 98,0 | 28,0 | 2 | 1 | |
Muet | 45 | -480,0 | 1 | 52,5 | 1275,0 | 270,0 | 40,0 | 14,0 | 89,0 | 27,0 | 2 | 1 | |
Muet | 46 | -480,0 | 1 | 47,3 | 1275,0 | 270,0 | 36,5 | 13,0 | 83,0 | 24,8 | 2 | 1 | |
Montant | -5 | 0,0 | 1 | 115,0 | 2900,0 | 675,0 | 5 | 1 | |||||
C# 2 | M8' | 47 | 0,0 | 1 | 90,0 | 1980,0 | 620,0 | 68,0 | 23,0 | 160,0 | 45,5 | 2 | 1 |
A 1 | M8' | 48 | 0,0 | 1 | 107,5 | 2065,0 | 535,0 | 83,0 | 27,5 | 195,0 | 55,3 | 2 | 1 |
F 1 | M8' | 49 | 0,0 | 1 | 125,0 | 2185,0 | 415,0 | 98,0 | 32,5 | 233,0 | 65,3 | 2 | 1 |
G 1 | M8' | 50 | 0,0 | 1 | 116,0 | 2070,0 | 530,0 | 90,0 | 29,5 | 212,0 | 59,8 | 2 | 1 |
B 1 | M8' | 51 | 0,0 | 1 | 95,0 | 1975,0 | 625,0 | 75,0 | 25,0 | 179,0 | 50,0 | 2 | 1 |
Montant | 0 | 0,0 | 1 | 115,0 | 2900,0 |
![]() Photo de Didier Guiraud de Willot. |
L'en-tête des colonnes est suffisamment parlant pour qui a déjà lu un relevé. Mais des précisions doivent être apportées pour la compréhension de certaines colonnes.
- Note : « Nom de la note » ; pour l'instant, cette donnée n'est pas réutilisée dans le traçage mais elle sert, par contre, à faciliter la mise en place du fichier de tableur.
- Jeu : « Nom du jeu » ; comme le nom de la note, cette donnée n'est pas réutilisée dans le traçage de façade.
- Ordre : « Ordre de la façade » ; ceci se fait naturellement de gauche à droite ou, dans le cas de la saisie du tableur, de haut en bas.
- posY : « Position verticale du tuyau » ; les tuyaux ne sont pas toujours positionnés sur le même axe des Y ; il s'en suit cette possibilité de les décaler en hauteur, étant entendu que le point de référence Y des tuyaux est toujours le point formant la base du pied et que le point 0 est celui du tuyau le plus bas.
- coloriage : « Remplissage des figures par une couleur » ; il y a deux façons d'envisager le dessin d'une façade : soit en mode remplissage (valeur 1), soit en mode trait (valeur 0). Le premier a l'avantage de donner à voir un dessin très réaliste quand le second permet d'être plus facilement réintégré dans un plan côté.
- diamCorps : « Diamètre du corps » ; avec la longueur du pied, c'est évidemment cette donnée qui est la plus importante pour le dessin de la façade.
- longCorps : « Longueur du corps ».
- longPied : « Longueur du pied » ; donnée évidemment très importante pour le dessin d'une façade. Toutefois, si cette donnée n'est pas fournie à l'utilitaire, elle est déduite du septième de la longueur du corps.
- largBouch : « Largeur de la bouche » ; si cette donnée n'est pas fournie à l'utilitaire, elle est déduite du quart de la circonférence du diamètre du corps.
- hautBouch : « Hauteur de la bouche » ; si cette donnée n'est pas fournie à l'utilitaire, elle est déduite du cinquième de la largeur de la bouche.
- hautLevSup : « Hauteur de l'aplatissage de la lèvre supérieure » ; si cette donnée n'est pas fournie à l'utilitaire, elle est déduite en prenant une fois et demie la hauteur de la bouche
- hautLevInf : « Hauteur de l'aplatissage de la lèvre inférieure » ; si cette donnée n'est pas fournie à l'utilitaire, elle est déduite en divisant la largeur de la bouche par 1,7.
- tls : « Type de Lèvre Supérieure » ; c'est un nombre entier qui défini le type de dessin à tracer et où :
- 0. = Plat.
- 1. = Roman.
- 2. = Gothique.
- 3. = Renaissance.
- 4. = Triangle.
Si cette donnée n'est pas fournie à l'utilitaire, ce dernier trace la lèvre inférieure en forme romane.
- tli : « Type de Lèvre Inférieure » ; c'est un nombre entier qui défini le type de dessin à tracer et où :
- 0. = Plat.
- 1. = Roman.
- 2. = Gothique.
- 3. = Renaissance.
- 4. = Triangle.
Si cette donnée n'est pas fournie à l'utilitaire, ce dernier trace la lèvre inférieure en forme romane.
L'exportation au format CSV.
N'importe quel tableur est capable d'enregistrer le contenu de ses cellules au format CSV. En clair, il s'agit de ne conserver plus que les données des cellules, séparées par un séparateur (généralement une virgule) et encadrées, si besoin est, par des guillemets. Les lignes du tableur deviennent donc des lignes de texte pur et tout enrichissement (gras italique, souligné, couleur &c.) est perdu. Inutile de rappeler que la firme Micro$oft est incapable de se ranger à fournir un format standard ; sorti de M$-Excel, le séparateur est donc un point-virgule, ce qui impose au programmeur de faire deux fois l'analyse des lignes ; passons, pour le tableau ci dessus, cela donne normalement le résultat suivant :
Définition des groupes de façade.
On n'aura pas manqué de remarquer qu'il n'est absolument pas notifié la moindre position horizontale (axe des X) du moindre tuyau ou montant ! La raison en est simple ; il y a dans ce relevé, suffisamment de données pour déduire tous les axes horizontaux sachant que l'on connaît le diamètre des tuyaux, la largeur des montants et la largeur disponible entre les montants. Car pour l'instant, on note toute la définition des groupes de tuyaux (qui ne sont pas amenés à être toujours plats comme c'est le cas à Saint-Hippolyte-du-Fort et à Auxonne) dans les lignes de montants du fichier CSV ; mais il faut reconnaître que cette façon de faire n'est pas une pratique correcte puisque se servir d'une forme tabulaire en mélangeant les données de tuyaux, de montants et de nature de groupe de tuyaux (qui, dans le cas présent, ne sont que des plates-faces) n'aide évidemment pas à la lecture du tableau. Le format CSV n'étant pas pour moi une finalité, les lignes des montants contiennent donc aussi la spécification des plates-faces, tourelles circulaires ou tiers-points situés juste à leurs droite. Le montant le plus à droite fait évidemment exception à ce principe et, parce que la lecture du fichier CSV est séquentielle (lecture des données de haut en bas pour un dessin de gauche à droite), il contient le numéro 0 comme numéro d'ordre pour spécifier à l'utilitaire qu'il est le dernier. Pour y voir un peu plus clair, on trouvera dans le tableau synthétique ci-dessous la correspondance des valeurs relatives au montants et aux groupes de tuyaux saisis au sein de cellules normalement destinées à recevoir des valeurs relatives à la définition des tuyaux.
Tuyaux | Montants | Groupe de tuyaux. |
---|---|---|
Note | / | / |
Jeu | / | / |
Ordre | Si < 1 : spécifie que c'est un montant. | Numéro négatif du groupe ; si = 0 : spécifie que c'est la fin de la façade. |
posY | Position Y de la base du montant (comme le tuyau). | / |
coloriage | Coloriage du montant (comme le tuyau). | / |
diamCorps | Largeur du montant. | / |
longCorps | Longueur du montant (comme le tuyau). | / |
longPied | / | / |
largBouch | / | Largeur du groupe (entre montants). |
hautBouch | / | / |
hautLevSup | / | / |
hautLevInf | / | / |
tls | / | Nombre de tuyaux du groupe. |
tli | / |
Nature du groupe ; soit :
|
Tout est prêt.
Toutes ces données une fois analysées et comprises, il faut maintenant prendre conscience qu'un tout petit programme est capable de les analyser pour dessiner le plan de la façade. Mais il reste (peut-être) un petit problème à régler puisque votre navigateur Web doit être capable d'afficher des images dans le format SVG. Si votre navigateur Web est Mozilla Firefox, alors vous n'aurez pas de problème pour la visualisation de ce plan. Vous pourrez même, si vous disposez de la dernière version, faire des zooms ([Ctrl] + [+] ou [Ctrl] + [-] du pavé numérique) qui vous montreront les détails sans pertes de qualité. Si vous ne possédez pas de navigateur Web réglé pour visualiser ce type de fichier (typiquement M$-Internet Explorer), il faudra installer un plugin si ce n'est déjà fait et je vous souhaite bien du plaisir avec le logiciel phare de la firme de Redmond.
L'image vectorielle a ceci de particulier qu'elle peut être remplie (coloriée, ombrée, hachurée) ou non. Il est donc possible de ne modifier qu'une seule cellule du fichier de tableur pour obtenir ceci :
Mais le petit programme est très à l'aise pour dessiner à l'échelle n'importe quelle façade pour peu, pour l'instant, qu'elle soit simple... On reconnaîtra dans les dessins qui suivent les deux plans non vectoriels du relevé de façade de l'orgue de l'église de Notre-Dame d'Auxonne qui ont permis d'établir l'équivalent vectoriel déjà proposé pour l'instrument de Saint-Hippolyte-du-Fort. Il faut évidemment retenir de tout cela que ces dessins vectoriels sont tracés dans votre navigateur à partir du même programme mais que celui-ci va chercher les données dans un fichier CSV différent. On remarquera les inégalités de hauteur d'aplatissages qui apparaissent et qui sont le reflet parfait du relevé... De même, l'inégalité des hauteurs de pieds des deux tuyaux extrêmes (gauche et droite) est aussi visible sur le dessin de façade que sur une photographie du buffet...
![]() Photo de Pierre Marteau. |
![]() |
![]() |
Jouons un peu...
À partir du fichier tableur donné ici (version ODS ou XLS), il est possible de changer les valeurs et le reformuler ; ainsi, on s'amusera par exemple à changer le type des lèvres ou à augmenter considérablement telle ou telle hauteur de pied ou de bouche. On peut aussi redéfinir une façade entière pour peu qu'elle soit plate et sans tuyaux superposés.
Dans un deuxième temps, on exportera les données au format CSV (menu « Fichier », « Enregistrer sous... », en choisissant le format CSV dans le « Type de fichiers ». Sous OpenOffice.org, il est demandé un complément d'information sur le jeu de caractères, les séparateurs de champs et les séparateurs de texte. Le jeu de caractères n'a, ici, aucune importance. Choisissez la virgule comme séparateurs de champs et les guillemmets doubles comme séparateurs de texte.
Ces subtilités ne sont pas possibles avec M$-Excel ; on évitera donc de choisir l'export « CSV (Macintosh) (*.csv) » au profit des types « CSV (séparateur: point-virgule) (*.csv) » ou « CSV (DOS) (*.csv) » (le choix entre ces deux derniers est égal).
Votre fichier sera téléchargé, analysé, et le serveur vous renverra le dessin au format SVG ouvert dans une autre fenêtre ou un autre onglet de votre navigateur et vous pourrez apprécier graphiquement vos modifications numériques...
Conclusion.
Il reste parfaitement entendu que cet utilitaire est une ébauche, une idée jetée sur l'internet comme on griffonne un brouillon à l'insu du professeur pour le montrer à son voisin de classe. Mais ce n'est pas moins vrai que je la trouve jolie... Et puis mises bout à bout, entre ces petites applications de calcul de tailles de tuyaux de mise en place des façades, de débits de plein-jeux ou de dessins automatique de coupes de tuyaux se dessine une idée.
Le code actuellement écrit pour dessiner des façades est ridiculement court (mais déjà fort efficace non ?). Il ne traite que les plates-faces et fait actuellement impasse des tourelles circulaires ou polylobées, des tiers-points, des groupes de tuyaux superposés ou des tuyaux retournés. Je n'ai pas non plus considéré le cas des tuyaux de bois. Par contre, comme il prend en compte l'axe des Y, on peut déjà entrevoir des traverses qui ne soient pas horizontales comme celles chantournées. Et puis, les fichiers SVG produits sont déjà récupérables dans des logiciels de dessins vectoriels qui peuvent aussi faire fruit de cette ébauche tracée à l'échelle...
On aura donc compris que l'idée n'est évidemment pas de se limiter au façades ; un abrégé, cela peut prendre l'origine de ses deux règles dans deux colonnes de tableur. Définir des obstacles à la course des notes n'est pas hors de portée pour qui saura se pencher sur la théorie des graphes ; c'est d'ailleurs la même théorie qui pourrait permettre, si on l'étudiait, de dessiner des pièces-gravées, même multi-couches. Enfin, je découvre actuellement le logiciel libre Blender qui fonctionne bien entendu autant sous GNU-Linux que sous M$-Windows et qui adore qu'on lui parle dans le creux de l'oreille avec des lignes de code ; tout cela pourrait ne pas manquer de volume...
On pourra aussi se demander quelle voie choisir entre une entrée de données et une sortie graphique. Dans cet exemple-ci, on part de données stockées dans un tableur, pour aboutir à un fichier graphique au format SVG (accessoirement présentable dans un navigateur Web digne de ce nom). Comme je l'ai déjà mentionné plus haut, il est tout à fait possible de rester dans le cadre de la suite OpenOffice.org qui contient autant un tableur qu'un logiciel de dessin tout aussi capable, via des macros, de faire le travail présenté ici. De même on peut encore imaginer les dessins se faire directement dans un fichier au format PDF à partir de données tableur, ODL ou issues de formulaires de pages Web. Le format SVG est encore un peu jeune et donc peu reconnu par les logiciels, ce qui rend concevable de préférer à SVG des formats comme PostScript ou DXF. Mais ceux-ci, pour être des formats ouverts, ne peuvent prétendre à la pérennité du premier choisi dans le présent exemple. Ainsi, dans la jungle des formats, on en trouve beaucoup aptes à retranscrire des figures vectorielles mais très peu qu'il soit véritablement possible de juger standards, ouverts ou pérennes (ce qui va généralement ensemble)...
Même dans des façades aussi simples que celles des orgues du temple protestant de Saint-Hippolyte-du-Fort ou de l'église Notre-Dame d'Auxonne, reprendre les données issues de relevés par jeu, et les remettre dans le bon ordre de façade au sein de cellules de tableur n'est pas aisé. Ce type de problématique serait, bien entendu, totalement résolu si les données n'étaient pas contenues au sein de grilles de tableur mais bien dans un format approprié de données de facture d'orgues qu'il rendrait alors signifiantes pour un programme capable de les extraire à bon escient. Cela rejoint évidemment cette très importante réflexion que je me suis déjà faite sur leur pérennité et sur leur capacité à produire ce qui n'est pas (on parle de méta-données). Dans le cas présent, je possédais des données issus de relevés et leur traitement informatique m'a ébauché un plan de façade qui est écrit dans un format standard, récupérable par un logiciel de dessin vectoriel. Si les mêmes données étaient stockées dans un format pérenne qui ne soit pas dépendant des logiciels et de leur évolution, ce serait alors un intérêt de plus au regard de ce que nos relevés actuels seront aux générations futures.
Voilà des pistes ouvertes en quelques lignes de code...
Celle, décembre 2009.
---------------------------------------------------- _ | | _ Sébastien | || | _ Matthieu | || || | _ Cosson | || || || | _ Jacquet | || || || || | _ | || || || || || | _ | || || || || || || | | || || || || || || | ,-~~-.___. | || || || || || || |___ / | . \ |_||_||_||_||_||_||_| /| ( ) O |_||_||_||_||_||_||_| / | \_/-. ,----' / V V V V V V V / | ==== _/____________________ / / / \-'~; /| The Organbuilder | / / __/~| /_| and his organ | / o=(_______| |_|_____________________|/ ---------------------------------------------------- Site web : http://www.hydraule.org E-mail: smcj@hydraule.org ---------------------------------------------------- |
Joyeux Noël à tous ! |
![]() |