Hola Amigos.
Les cuento que por fin tengo una versión funcional, aunque muy incipiente, de Jack Keyboard Manager, un pequeño programa en Python para hacer más fácil la tarea de conectar teclados
Quiero aclarar que el programa no está todavía terminado y está en un estado de desarrollo muy incipiente. También tengo que aclarar que no tengo estudios de programación por lo tanto hay muchas cosas que están hechas, como decimos en Chile "Al Ope".
Para que este programa funcione necesitan: Jack2 con dbus activado, Python3, dbus para Python 3, Gtk+3, el repositorio gi para Python3 y el mainloop para dbus en glib.
Creo que en ubuntu bastaría con instalar estos paquetes:
sudo apt-get python3-gi python3-dbus
Aquí está el archivo:
http://ubuntuone.com/6cILY6HcIlWRCa9H7BnKhx
y lo dejo por pastebin:
http://pastebin.com/THbyJpz9
Aquí está una vista general del programa
- Son cuatro pestañas: Puertos, Salidas, Rutas y Presets. Lamentablemente esto es todavía un proyecto así que solo Puertos y Rutas hacen algo, las demás son todavía de adorno
- Las pestañas tienen tres secciones: Teclados, Sintetizadores y Efectos. Pero solo funcionan los Teclados y los Sintetizadores, los efectos de momento no funcionan.
[ Imagen no disponible ]
Se preguntarán como funciona
-- Primero: debemos seleccionar un teclado:
En este caso tengo dos teclados, un MAudio Prokeys 88 y un teclado virtual. Para seleccionar los teclados hay que seleccionarlo en la lista de la izquierda y luego hacer click en "Agregar ->".
*** Nótese que la mayoría de los teclados solo son captados por el driver MIDI Alsa, por lo tanto hay que usar algún puente. En este caso estoy usando a2jmidi_bridge, también se puede usar a2jmidid, sin embargo ambos me producen errores con teclados físicos, yo prefiero usar "seq" en la configuración de secuenciador qjackctl. ***
[ Imagen no disponible ]
-- Segundo: Debemos seleccionar los sintetizadores
Se seleccionan del mismo modo que los teclados:
[ Imagen no disponible ]
---
En caso que seleccionemos un cliente con más de un puerto aparecerá una ventana de error, tendremos que seleccionar los puertos individualmente. Para ello es necesario desplegar el árbol del cliente con el triangulito de la izquierda
[ Imagen no disponible ]
---
Aquí vemos la selección de Calf Monosynth:
[ Imagen no disponible ]
-- Tercero: Ahora podemos hacer conexiones
Ya teniendo seleccionados todos los teclados y sintetizadores es posible seleccionar la pestaña "Rutas" en la cual podemos realizar conexiones.
- Los números: 1, 2, 3, 4, 5, 6, 7, 8, 9 y 0 sirven para seleccionar un teclado
- Las letras: Q, W, E, R, T, Y, U, I, O, P, A, S, D, F, G, H, J, K, L sirven para seleccionar un sintetizador para el teclado activo. La casilla "Multiples Sintetizadores" sirve para hacer Layers.
- Las letras: Z, X, C, V, B, N y M sirven para seleccionar efectos pero actualmente no funcionan.
Adjunto algunas capturas que mostrarán la panorámica general del programa.
== Algunos Problemas ==
-- Los sintetizadores se traban, permanecen sonando al ser desconectados o dejan de emitir sonido
Me ha ocurrido este problema un par de veces. Al desconectar un controlador midi que está enviando alguna señal note on suele producir algunos errores. Estos errores son más frecuentes con programas como a2j.
* Recomiendo soltar todas las teclas del teclado antes de cambiar una conexión.
* Recomiendo usar el secuenciador seq en vez de a2j*
-- Los sintetizadores se conectan solos cuando se cierran y se vuelven a abrir
Intenté hacer que los sintetizadores, clientes o puertos seleccionados permanezcan en la memoria del programa para que no sea tan difícil de configurar, lamentablemente si cierras un sintetizador seleccionado y luego lo vuelves a abrir se producen conexiones no deseadas.
-- El programa es muy difícil de usar, prefiero un patchbay tradicional.
Traté de hacer una interfaz lo más intuitiva posible pero evidentemente es más difícil de usar que un patchbay tradicional. Personalmente creo que es más rápido presionar un par de teclas que hacer muchos movimientos de teclados.
Actualmente estoy trabajando para salvar la configuración en un archivo que haga más fácil el proceso de configurar.
== ¿Qué hay de las partes incompletas? ==
-- Los efectos
Conectar un teclado con un sintetizador es fácil, pero conectar una secuencia de efectos es un tanto más problemático.
Imagina que quieres hacer dos rutas de conexión:
- ZynAddSubFX - LV2vocoder - MDAreverb - Rackarrack
- Linuxsampler - MDAreverb.
Entonces el sonido de Linuxsampler pasaría por Rakarrack, esa clase de problemas me han impedido terminar la sección de efectos.
-- Las Salidas
Actualmente jack-keyboard-manager solo conecta teclados con sintetizadores pero si quieres conectar un sintetizador con system o con jack-mixer. Esto se solucionaría con la sección de Salidas.
-- Los Presets.
Una de mis ideas es que se pueda almacenar un Patch en un preset y se cambie con una combinación de teclas. Esto queda pendiente.
== Otras ideas ==
Tengo otras ideas para hacer más completo este programa. Se me ocurre, por ejemplo, hacer conexiones con un arpegiador (Arpage o Qmidiarp) o un keyboard-spliter (Zonage o midi-spliter) para hacer más completo el funcionamiento de este programa.
Espero que les guste este adelanto, espero opiniones e ideas.
Les cuento que por fin tengo una versión funcional, aunque muy incipiente, de Jack Keyboard Manager, un pequeño programa en Python para hacer más fácil la tarea de conectar teclados
Quiero aclarar que el programa no está todavía terminado y está en un estado de desarrollo muy incipiente. También tengo que aclarar que no tengo estudios de programación por lo tanto hay muchas cosas que están hechas, como decimos en Chile "Al Ope".
Para que este programa funcione necesitan: Jack2 con dbus activado, Python3, dbus para Python 3, Gtk+3, el repositorio gi para Python3 y el mainloop para dbus en glib.
Creo que en ubuntu bastaría con instalar estos paquetes:
sudo apt-get python3-gi python3-dbus
Aquí está el archivo:
http://ubuntuone.com/6cILY6HcIlWRCa9H7BnKhx
y lo dejo por pastebin:
http://pastebin.com/THbyJpz9
Aquí está una vista general del programa
- Son cuatro pestañas: Puertos, Salidas, Rutas y Presets. Lamentablemente esto es todavía un proyecto así que solo Puertos y Rutas hacen algo, las demás son todavía de adorno
- Las pestañas tienen tres secciones: Teclados, Sintetizadores y Efectos. Pero solo funcionan los Teclados y los Sintetizadores, los efectos de momento no funcionan.
[ Imagen no disponible ]
Se preguntarán como funciona
-- Primero: debemos seleccionar un teclado:
En este caso tengo dos teclados, un MAudio Prokeys 88 y un teclado virtual. Para seleccionar los teclados hay que seleccionarlo en la lista de la izquierda y luego hacer click en "Agregar ->".
*** Nótese que la mayoría de los teclados solo son captados por el driver MIDI Alsa, por lo tanto hay que usar algún puente. En este caso estoy usando a2jmidi_bridge, también se puede usar a2jmidid, sin embargo ambos me producen errores con teclados físicos, yo prefiero usar "seq" en la configuración de secuenciador qjackctl. ***
[ Imagen no disponible ]
-- Segundo: Debemos seleccionar los sintetizadores
Se seleccionan del mismo modo que los teclados:
[ Imagen no disponible ]
---
En caso que seleccionemos un cliente con más de un puerto aparecerá una ventana de error, tendremos que seleccionar los puertos individualmente. Para ello es necesario desplegar el árbol del cliente con el triangulito de la izquierda
[ Imagen no disponible ]
---
Aquí vemos la selección de Calf Monosynth:
[ Imagen no disponible ]
-- Tercero: Ahora podemos hacer conexiones
Ya teniendo seleccionados todos los teclados y sintetizadores es posible seleccionar la pestaña "Rutas" en la cual podemos realizar conexiones.
- Los números: 1, 2, 3, 4, 5, 6, 7, 8, 9 y 0 sirven para seleccionar un teclado
- Las letras: Q, W, E, R, T, Y, U, I, O, P, A, S, D, F, G, H, J, K, L sirven para seleccionar un sintetizador para el teclado activo. La casilla "Multiples Sintetizadores" sirve para hacer Layers.
- Las letras: Z, X, C, V, B, N y M sirven para seleccionar efectos pero actualmente no funcionan.
Adjunto algunas capturas que mostrarán la panorámica general del programa.
== Algunos Problemas ==
-- Los sintetizadores se traban, permanecen sonando al ser desconectados o dejan de emitir sonido
Me ha ocurrido este problema un par de veces. Al desconectar un controlador midi que está enviando alguna señal note on suele producir algunos errores. Estos errores son más frecuentes con programas como a2j.
* Recomiendo soltar todas las teclas del teclado antes de cambiar una conexión.
* Recomiendo usar el secuenciador seq en vez de a2j*
-- Los sintetizadores se conectan solos cuando se cierran y se vuelven a abrir
Intenté hacer que los sintetizadores, clientes o puertos seleccionados permanezcan en la memoria del programa para que no sea tan difícil de configurar, lamentablemente si cierras un sintetizador seleccionado y luego lo vuelves a abrir se producen conexiones no deseadas.
-- El programa es muy difícil de usar, prefiero un patchbay tradicional.
Traté de hacer una interfaz lo más intuitiva posible pero evidentemente es más difícil de usar que un patchbay tradicional. Personalmente creo que es más rápido presionar un par de teclas que hacer muchos movimientos de teclados.
Actualmente estoy trabajando para salvar la configuración en un archivo que haga más fácil el proceso de configurar.
== ¿Qué hay de las partes incompletas? ==
-- Los efectos
Conectar un teclado con un sintetizador es fácil, pero conectar una secuencia de efectos es un tanto más problemático.
Imagina que quieres hacer dos rutas de conexión:
- ZynAddSubFX - LV2vocoder - MDAreverb - Rackarrack
- Linuxsampler - MDAreverb.
Entonces el sonido de Linuxsampler pasaría por Rakarrack, esa clase de problemas me han impedido terminar la sección de efectos.
-- Las Salidas
Actualmente jack-keyboard-manager solo conecta teclados con sintetizadores pero si quieres conectar un sintetizador con system o con jack-mixer. Esto se solucionaría con la sección de Salidas.
-- Los Presets.
Una de mis ideas es que se pueda almacenar un Patch en un preset y se cambie con una combinación de teclas. Esto queda pendiente.
== Otras ideas ==
Tengo otras ideas para hacer más completo este programa. Se me ocurre, por ejemplo, hacer conexiones con un arpegiador (Arpage o Qmidiarp) o un keyboard-spliter (Zonage o midi-spliter) para hacer más completo el funcionamiento de este programa.
Espero que les guste este adelanto, espero opiniones e ideas.