MIDIKeymap es una herramienta basada en CLI que permite mapear entradas de un controlador MIDI a atajos de teclado y comandos personalizados en tu sistema. Es ideal para automatizar tareas en aplicaciones como OBS, Reaper, VSCode, entre otras.
- Mapeo de Teclas MIDI: Asigna teclas de tu controlador MIDI a atajos de teclado.
- Control de Sliders y Pads: Utiliza los sliders y pads de tu controlador MIDI para ejecutar comandos.
- Soporte para Control de Volumen y Scroll Vertical: Configura controles especiales en los sliders para manejar el volumen del sistema y el desplazamiento vertical.
- Python 3.x
-
Clona el repositorio:
git clone https://github.com/emmanuelmmontesinos/MIDIKeymap.git
-
Instala las dependencias necesarias:
pip install -r requirements.txt
-
Ejecuta el programa desde la línea de comandos:
python midikeymap.py
-
Selecciona una de las opciones disponibles en el menú:
- 1 - Asignar tecla/pad/slider a comando: Permite asignar un comando específico a una tecla, pad o slider de tu controlador MIDI.
- 2 - Activar MIDIKeymap: Inicia el programa para escuchar las entradas MIDI y ejecutar los comandos mapeados.
- 3 - Salir: Cierra el programa.
Para asignar un comando a una tecla/pad/slider, sigue estos pasos:
-
Selecciona la opción "1 - Asignar tecla/pad/slider a comando".
-
Presiona la tecla, pad o slider en tu controlador MIDI que deseas asignar.
-
Introduce el comando deseado siguiendo la sintaxis:
- Para un comando simple:
f11
- Para combinaciones de teclas:
ctrl,c
(esto simularía Ctrl+C)
- Para un comando simple:
Una vez que hayas asignado los comandos a tus controles MIDI, selecciona la opción "2 - Activar MIDIKeymap" para comenzar a escuchar las entradas MIDI. El programa ejecutará automáticamente los comandos mapeados cuando detecte una entrada MIDI.
Actualmente, puedes asignar las siguientes funciones a los sliders (CC) de tu controlador MIDI usando estas palabras clave:
- Control de Volumen: Usa la palabra clave
volumen
para asignar un slider a la función de control de volumen del sistema. - Scroll Vertical: Usa la palabra clave
scroll
para asignar un slider a la función de desplazamiento vertical.
Nota: Estas son las únicas funciones disponibles para los sliders en esta versión. Se planean más opciones en futuras actualizaciones.
En esta sección se detallan las teclas especiales que puedes usar para asignar comandos a tu controlador MIDI. Puedes combinarlas según sea necesario.
ctrl
: Tecla Controlshift
: Tecla Shiftalt
: Tecla Altcmd
owin
: Tecla Command (en macOS) o Tecla Windows (en Windows)
f1
af24
: Teclas de función F1 a F24esc
: Tecla Escapetab
: Tecla Tabuladorcapslock
: Tecla Bloq Mayúsenter
: Tecla Enter/Introbackspace
: Tecla Retrocesospace
: Tecla Espaciodelete
: Tecla Suprinsert
: Tecla Insertarhome
: Tecla Inicioend
: Tecla Finpageup
: Tecla AvPágpagedown
: Tecla RePág
up
: Flecha arribadown
: Flecha abajoleft
: Flecha izquierdaright
: Flecha derecha
numlock
: Bloq Numscrolllock
: Bloq Desplpause
: Pausa/Inter
num0
anum9
: Números en el teclado numériconumadd
: Tecla + en el teclado numériconumsub
: Tecla - en el teclado numériconummul
: Tecla * en el teclado numériconumdiv
: Tecla / en el teclado numériconumdot
: Punto decimal en el teclado numériconumenter
: Enter en el teclado numérico
printscreen
: Imprimir pantallamenu
: Tecla Menú de contexto
Estas teclas pueden ser combinadas para crear comandos más complejos, como ctrl,shift,a
para simular Ctrl+Shift+A.
Estamos trabajando en añadir las siguientes funciones a MIDIKeymap:
- Moverse entre escritorios virtuales: Navega fácilmente entre escritorios virtuales utilizando los controles de tu dispositivo MIDI.
- Abrir archivos o programas: Asigna comandos para abrir archivos o ejecutar programas directamente desde tu controlador MIDI.
- GUI para facilitar la configuración: Interfaz gráfica de usuario que hará más sencilla la configuración y asignación de comandos.
- Opción de Dispositivos: Consulta toda la información de tus dispositivos, incluida una lista de los que estan conectados.
Las contribuciones son bienvenidas. Si encuentras algún problema o tienes alguna sugerencia, por favor abre un issue o envía un pull request.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Desarrollado por @emmanuelmmontesinos