À propos du projet
Scribbletune est une bibliothèque JavaScript open source et un outil en ligne de commande pour composer de la musique de manière programmatique. Au lieu d'un piano roll graphique, elle utilise une notation en chaîne compacte pour décrire le rythme et la hauteur, ce qui permet de générer des idées musicales directement dans le code ou depuis un terminal.
Idée centrale : les motifs sont écrits sous forme de chaînes où `x` signifie une note jouée, `-` un silence, `_` prolonge la note précédente, `R` choisit une note aléatoire dans un ensemble fourni, et les crochets subdivisent un temps (par exemple `[xx]` place deux notes dans un temps). Ces motifs sont combinés avec des listes de notes, des gammes, des accords ou des arpèges pour produire des clips.
La bibliothèque expose des fonctions utilitaires telles que `scale`, `chord`, `scales`, `chords`, `arp`, `progression` et `getChordsByProgression`, soutenues par le paquet séparé harmonics. Une fonction `clip()` transforme les motifs et les notes en objets de note dans Node.js, et une fonction `midi()` écrit le résultat dans un fichier MIDI standard qui peut être ouvert dans des stations audionumériques comme Ableton Live, GarageBand ou Logic.
Un point d'entrée navigateur (`scribbletune/browser`) s'appuie sur Tone.js. Il ajoute les abstractions `Session` et `Channel` pour gérer plusieurs instruments ou échantillons, démarrer et changer des clips indépendamment, et démarrer une rangée de clips sur plusieurs canaux. Les canaux peuvent utiliser les synthétiseurs Tone.js intégrés par nom, les instruments Tone.js préconstruits, des URL d'échantillons audio uniques, des instruments multi-échantillons et des chaînes d'effets.
Le paquet inclut également une CLI. Après une installation globale ou locale, des commandes comme `--riff`, `--chord` et `--arp` acceptent une note fondamentale, un mode, un motif rythmique, une subdivision et des options telles que le nom du fichier de sortie, le sizzle, l'amplitude, l'accent, le style et le BPM. Les commandes d'accords et d'arpèges acceptent des progressions écrites sous forme de chiffres de degrés, de chiffres romains, de noms d'accords explicites ou du mot-clé `random`. Les aides de motif incluent des raccourcis de répétition tels que `x.repeat(4)` et `2(x-x[xx])`.
Le développement utilise des scripts npm pour l'installation, les tests, la compilation (tsup), le lint (biome) et le mode watch. Le projet est sous licence MIT et dispose d'un site compagnon à scribbletune.com.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.