python - Biblioteca de partituras
music-notation (4)
Soy un hacker de Python que busca construir una aplicación de partituras. Me siento cómodo leyendo / entendiendo partituras (tocado el piano por muchos años). Aquí están mis preguntas para principiantes completas.
¿Hay algún estándar para representar notas digitalmente? No quiero reinventar ninguna rueda.
Dada una secuencia de notas y duraciones, ¿hay una biblioteca para mostrarlas en un formato de partitura?
Básicamente estoy buscando un lugar para empezar. No me gustan mucho los gráficos, por lo que una biblioteca de código abierto existente sería increíble. Si no existe ninguno en Python, también soy competente en Java / Javascript / C.
Gracias
¿Hay algún estándar para representar notas digitalmente?
Supongo que has oído hablar de MIDI (que abarca mucho más que simplemente notas y duraciones, pero que es un estándar que representa las notas digitalmente).
Recomiendo mirar los programas de notación musical enumerados en la página wiki de Python in Music Python y ver si puedes extender o contribuir a esas aplicaciones antes de lanzar la tuya.
Echa un vistazo a lilypond . Utiliza LaTeX para componer partituras. Su formato de entrada es texto simple, y puede generarse con bastante facilidad con Python o lo que sea.
Abjad es una "API de Python para el control de puntuación formalizado" y una envoltura alrededor de lilypond, pero no la he usado y, por lo tanto, no puedo responder por ella.
Por lo que sé, la notación abc sigue still el formato de texto estándar de facto en los círculos de música tradicional / folk. Hay bastante software disponible para él, incluyendo abctool y abc2ly (parte de lilypond ), ambos de los cuales están escritos en python. Siendo un pirata informático de Python que se describe a sí mismo, imagino que podrías convertir cualquiera de estos en una biblioteca sin muchos problemas.
Probablemente no sea exactamente lo que está buscando, pero hay un programa comercial llamado capella (de una pequeña empresa alemana de software; también hay una versión en inglés). Admite el formato MusicXML y usa Python para las secuencias de comandos, por lo que puede escribir secuencias de comandos para ampliar su funcionalidad (lo que ya es bastante impresionante).
Aprendí Python por capella. (Resulta que nunca escribí ningún guión para Capella, nunca lo necesité, pero me hizo sentir curiosidad por Python :))