VexTab et VexFlow — Mission
Sections
Réglages de lecture
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
Code et termes techniques en anglais
Désactivé : la voix de la page lit tout, sans pause entre deux voix.
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
D’autres voix : Microsoft Edge propose des voix naturelles en ligne, et Windows (Paramètres › Heure et langue › Voix), macOS et Android en installent d’autres.
Pourquoi j’apprends cela
Section intitulée « Pourquoi j’apprends cela »Guitar Alchemist (GA) montre des voicings de guitare, et un voicing se lit plus facilement en tablature que sous la forme x-3-2-0-1-0. On demande au chatbot de GA de joindre un bloc vextab à chaque doigté qu’il mentionne ; GA a une grammaire VexTab en EBNF, un analyseur et un générateur en F#, un visualiseur React, et des tests de bout en bout qui attendent un SVG. Je voulais savoir ce qu’est VexTab, ce qu’il sait écrire et ce qu’il ne sait pas écrire, et si les morceaux de GA qui le parlent sont d’accord avec l’original. La leçon 4 répond à la dernière question avec des mesures, et la réponse est surtout non.
À qui s’adresse ce cours
Section intitulée « À qui s’adresse ce cours »Vous écrivez du C# ou du Java. Vous connaissez le JavaScript de JavaScript pour les développeurs C#/Java : modules, npm, fonctions, objets. Un peu de React aide pour le second lot. Vous savez lire une tablature de guitare : six lignes, une par corde, des chiffres pour les frettes. La théorie musicale dont les leçons ont besoin, noms des notes, octaves, armures, est rappelée là où elle apparaît, avec des liens vers Théorie musicale pour Guitar Alchemist.
VexTab et VexFlow en un tableau
Section intitulée « VexTab et VexFlow en un tableau »| Ce que c’est | Ce que vous connaissez de plus proche | |
|---|---|---|
| VexFlow | Une bibliothèque JavaScript qui dessine la notation musicale et la tablature, en SVG ou sur un canvas : portées, notes, ligatures, liaisons, bends, texte | Une API de dessin avec un moteur de mise en page, comme le DrawingContext de WPF plus un formateur |
| VexTab | Un petit langage texte pour la notation et la tablature, et le JavaScript qui l’analyse et appelle VexFlow | Un DSL compilé en appels sur une API objet, comme un modèle Razor compilé en C# |
tabstave, notes, text, options |
Les quatre sortes de lignes VexTab | Les instructions du DSL |
| L’Artist | L’objet de VexTab qui transforme les lignes analysées en portées et en notes VexFlow | Le générateur de code d’un compilateur |
À la fin de ce cours, je saurai
Section intitulée « À la fin de ce cours, je saurai »- écrire du VexTab pour des mélodies, des accords et des techniques de guitare, et lire les erreurs qu’il lève ;
- régler armures, chiffrages, clés et accordages, et savoir lesquels changent la notation et lesquels seulement la tablature ;
- rendre du VexTab en SVG sous Node, sans navigateur, et tester le résultat ;
- dire ce que VexTab ne sait pas exprimer, et quand descendre à VexFlow ;
- vérifier un programme qui écrit du VexTab, un chatbot ou un générateur, avec le vrai analyseur ;
- (second lot) dessiner la même musique avec les objets de VexFlow lui-même, la rendre en React sans redessiner à chaque jeton, et préparer un passage de VexFlow 4 à 5.
| # | Leçon | Ce que vous connaissez déjà |
|---|---|---|
| 1 | Première portée, première tablature | un DSL compilé vers une API, un arbre syntaxique, System.Xml.Linq |
| 2 | Techniques de guitare | la tablature que vous lisez : bends, glissés, hammer-ons, accords |
| 3 | Armures, chiffrages, clés et accordages | les armures, les capodastres, le drop D |
| 4 | Étude de cas : le chatbot de GA écrit du VexTab | FParsec ou une bibliothèque de combinateurs d’analyseurs, les prompts de LLM |
| 5 | Second lot. Stave, StaveNote, Voice, Formatter : ce que VexTab cache, et une voix stricte qui compte les temps |
la construction d’objets, une passe de mise en page |
| 6 | Second lot. TabStave et TabNote ; garder notation et tablature en phase |
deux vues d’un même modèle |
| 7 | Second lot. Rendre en React sans redessiner à chaque jeton reçu en flux, et le tester avec Playwright (le MemoizedVexTab de GA) |
memo, les effets, les tests de bout en bout |
| 8 | Second lot. Passer les composants de GA de VexFlow 4 à 5 : ce qui a changé dans l’API, les polices et la mesure du texte | une mise à jour de version majeure |
| — | Journal |
Ressources
Section intitulée « Ressources »- Le tutoriel VexTab de Mohit Cheppudira (0xfe), l’auteur de VexTab, et son README. La grammaire est
src/vextab.jison. - Le site de VexFlow, son dépôt et sa référence d’API.
- SMuFL, la norme qui numérote les glyphes musicaux, et Bravura, la police avec laquelle VexFlow 5 les dessine.
- GuitarAlchemist/ga, épinglé sur le commit
17ccee6pour la leçon 4.