Sobre el proyecto
Tonal es una biblioteca de teoría musical para JavaScript, implementada en TypeScript y publicada como una colección de paquetes npm. Se centra en abstracciones de teoría musical más que en sonido o reproducción de audio: notas, intervalos, acordes, escalas, modos, tonalidades, voicings, progresiones y ritmo.
La biblioteca sigue un estilo de programación funcional. Las funciones son puras, los datos no se mutan y las entidades se representan como estructuras de datos simples en lugar de instancias de clases. Funciona con importaciones ES6, require de ES5 y directamente en el navegador mediante una etiqueta script de CDN.
Las operaciones típicas incluyen convertir notas a números MIDI o frecuencias, transportar notas por intervalos, medir distancias de intervalos, obtener notas y grados de escalas, nombrar acordes y construir inversiones de acordes. El README muestra ejemplos como Note.midi("C4") que devuelve 60, Note.freq("a4") que devuelve 440, Interval.semitones("5P") que devuelve 7, y Scale.get("C major").notes que devuelve los siete tonos de la escala.
El proyecto está dividido en módulos enfocados, cada uno con su propio README y un nombre de paquete con el prefijo @tonaljs/. Estos cubren notas, MIDI, intervalos, notación ABC, escalas y tipos de escalas, acordes y tipos de acordes, detección de acordes, conjuntos de clases de altura, voicings, conducción de voces, diccionarios de voicings, tonalidades, modos, progresiones, números romanos, patrones rítmicos, compases, valores de duración, además de utilidades core y de colección. Instalar el paquete paraguas tonal incluye todos los módulos, mientras que instalar módulos individuales puede reducir el tamaño del bundle.
La documentación está disponible en un sitio dedicado y en el README de cada módulo. Se espera que las contribuciones incluyan referencias para cambios de teoría musical, actualizaciones de documentación y pruebas. La biblioteca tiene licencia MIT y enumera varias bibliotecas de teoría musical como inspiración, junto con una muestra de proyectos que la utilizan.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.