jsequencer2lily: nuevo secuenciador con formato lilypond

#1 por joanillo el 16/11/2013
Hola a todos!

Este último tiempo he estado programando un secuenciador que tiene la particularidad de que produce ficheros lilypond. Como ya sabeis, los ficheros de lilypond se editan en modo texto, y lilypond produce unas partituras muy bien editadas.

He estado testeando el programa durante un tiempo y creo que ya está en fase de darlo a conocer, a ver si a alguien le puede ser útil. Se trata de un secuenciador monofónico. Más que nada para editar melodías y preparar solos, contracantos, etc. Hay bastantes parámetros, quizás los más importantes son la cuantización y el parámetro beauty, que te puede arreglar una nota si has tocado un poco fuera de tiempo, estas cosas que pasan en la secuenciación.

A ver si alguien le da un vistazo, necesito un poco de feedback. Os dejo el enlace de la wiki y un video de ejemplo.

*http://wiki.joanillo.org/index.php/Jsequencer2lily:_README
*http://youtu.be/o5CLrfvZB9k

Saludos,
Joan Quintana
Subir
#2 por veguita el 21/11/2013
Se ve muy bien :)
Para agilizar la creación de lys.
Saludos.

"tengo una soledad tan concurrida que puedo organizarla como una procesión"
Mario Benedetti

Subir
#3 por vagar el 22/11/2013
Qué interesante, gracias por compartirlo.

Si no lo he entendido mal, más que un secuenciador, que es un programa que permite generar y manipular secuencias, la base de tu programa es algún tipo de algoritmo de cuantización. ¿Te has planteado integrarlo en alguno de los programas existentes? A lo mejor en MuseScore o Denemo, que permiten plugins mediante lenguaje de scripts.

¡Ánimo y a seguir con el buen trabajo!

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
#4 por joanillo el 24/11/2013
Yo diría que sí que es un secuenciador en el sentido que tocas las notas con el controlador, y la secuencia de eventos midi se guarda en un fichero de texto. Este fichero se puede ver en la carpeta dev/, y de hecho es muy fácil de entender: en una línea hay el timestamp de los eventos, en otra el tipo de evento (note on/off), y en otra línea la nota. Por simplicidad no se guarda el volumen ni otro tipo de eventos, sólo note on/off.

En el modo --processing se parte de este archivo y se trata de generar un fichero lilypond (con extensión .ly), aplicando una serie de parámetros. Una vez tienes el fichero .ly el motor de lilypond se encaga de visualizar la partitura. Evidentemente, el fichero ly se puede editar a mano.

No me preocupa generar el fichero midi porque de hecho esto ya lo hace el lilypond. Pero de hecho con el fichero de eventos se podría procesar de muchas maneras: generar el fichero midi directamente, generar un fichero que pueda importar Musescore o cualquier otro. Entiendo que en el estado actual sólo tiene interés para que la gente que trabaja con lilypond.

PD. Y también tiene interés para la gente que necesita trabajar en modo texto, como los ciegos (¿Habéis leído la entrevista a Julien Claassen de este viernes? http://www.zthmusic.com/julien-claassen/) Este alemán utiliza midish como secuenciador modo texto. Me lo estuve mirando antes de empezar con este proyecto.
Subir
#5 por vagar el 25/11/2013
Es tu niño, así que llámalo como quieras, faltaría más. Sólo te lo comentaba porque yo como usuario me sentiría mejor orientado si la aplicación se llamara, no sé, algo como jlilyrecord.

Por seguirle dando vueltas, y por favor no te lo tomes como un cuestionamiento, sino como una tormenta de ideas sobre el concepto, de dónde viene y a dónde va, ¿qué dirías que aporta respecto a grabar la secuencia midi con software como arecordmidi, y después pasarlo por midi2ly? ¿Cuál es tu motivación al escribir jsequencer2lily? ¿Tienes planes de seguir desarrollando sus capacidades?

Me está quedando la entrevista al desarrollador de la semana en Hispasonic: ¡joanillo! =D>

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
#6 por joanillo el 25/11/2013
Pues para serte sincero, no me había percatado de la existencia de arecordmidi y de midi2ly :-)) Ya sé que este es un fallo grande por aquello de no reinventar la rueda... Sin duda les echaré un vistazo, y creo que arecordmidi me puede ser útil. Midish era el único secuenciador en modo comando al que le había prestado atención. Lástima que esta página que estuve mirando no estuviese actualizada:
*http://linux-sound.org/midi.html

A parte del placer de programar, que ya sabes de qué va, creo que mi programa me puede ser útil. Como se comenta en
*http://lilypond.org/doc/v2.14/Documentation/usage/invoking-midi2ly :
It is therefore not recommended to use midi2ly for human-generated midi files.

y precisamente mi programa lo he hecho pensando en que cuando secuencias con el teclado se producen errores de timing, se tiende a acortar las notas, etc (y más yo que no soy teclista!), y dentro del código se intenta paliar estas imprecisiones.

Saludos!
Subir
#7 por vagar el 25/11/2013
joanillo escribió:
Pues para serte sincero, no me había percatado de la existencia de arecordmidi y de midi2ly :-)) Ya sé que este es un fallo grande por aquello de no reinventar la rueda...


Puff, anda que no nos ha pasado a todos. Son utilidades algo arcanas, es normal que pasen desapercibidas.

joanillo escribió:
A parte del placer de programar


Justificación más que suficiente, es además la mejor manera de aprender.

joanillo escribió:
mi programa me puede ser útil


A ti y a mucha gente.

joanillo escribió:
It is therefore not recommended to use midi2ly for human-generated midi files.

y precisamente mi programa lo he hecho pensando en que cuando secuencias con el teclado se producen errores de timing, se tiende a acortar las notas, etc (y más yo que no soy teclista!), y dentro del código se intenta paliar estas imprecisiones.


Ajá, aquí está el núcleo del asunto, el algoritmo de cuantización. Lo demás es entrada/salida relativamente sencilla, ya que no hay una interfaz de usuario sofisticada.

Ya sabes que la filosofía Unix es modular: haz una sola cosa, hazla bien y que sea fácil de interconectar.

A mí se me ocurre, por fantasear y lanzar ideas que no tienen por qué hacerse realidad, que una evolución interesante de tu software sería aislar de alguna manera uno o varios algoritmos de cuantización parametrizables en una librería C (libjoanilloquantizer.so.1), de manera que a partir de ella se pudieran derivar con cuatro líneas de código: una utilidad de línea de comandos, un filtro gstreamer, un plugin para musescore, una opción para midi2ly...

Un ejemplo de librería que se usa de esa manera, derivando adaptadores, plugins o aplicaciones es rubberband de Chris Cannam.

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
Respuesta rápida

Regístrate o para poder postear en este hilo