Introducción
Descarga
Última versión - TwitchMIDI para Windows, Linux & MacOS (x86-64)
Instalación
- Descomprime el .zip
- Ejecuta TwitchMIDI-yourplatform (e.g TwitchMIDI-win.exe)
- SIigue los pasos de configuración para enlazar este bot a tu cuenta. Verás algo así:
- Listo. A divertirse!
Nota: Para MacOS, abre una terminal, haz "cd" a la carpeta donde lo extraiste y ejecútalo desde ahí usando "./TwitchMIDI-macos". Sino, te saltará un error del estilo: "no such file or directory, open './config/aliases.json'"
Actualización
Sobreescribiendo configuración personalizada
- Descomprime y reemplaza todos los archivos excepto el .env en tu carpeta
Método seguro
Okay, esto se puede complicar un poco, pero si estás usando una configuración personalizada, ya sabes cómo funciona
- Extrae el zip en una carpeta diferente a la usada anteriormente
- Copia y reemplaza TwitchMIDI-yourplatform (e.g TwitchMIDI-win.exe) y package.json en tu carpeta
- Abre config/permissions.json y asegúrate de que todos los comandos tienen datos de permisos, sino, aquellos que falten darán error de permisos en ejecución
- Eso es todo!
Nota: No necesitarás reemplazar la carpeta "config" entera a menos que haya un cambio de versión mayor (e.g, de 1.x.x a 2.x.x). En caso de duda, compara la versiones viejas de los archivos de config con las nuevas y re-aplica tus cambios. Mira CHANGELOG.md para más info.
¿Por qué TwitchMIDI?
Este proyecto surge de una idea para mis streams musicales en (twitch.tv/rafaelpernil) donde toco piano e improviso con mi sintetizador y caja de ritmos. Es muy divertido, pero quería aplicar mis habilidades de ingeniero de software para hacer algo especial y traer a mis viewers una forma divertida de interactuar con mis cacharros.
He tenido esta idea durante meses pero no fue hasta hace poco que empecé a definir objetivos tangibles y a implementarlos. Mi proyecto anterior, PolyVolcaWeb, que usa la API de Web MIDI me dio la confianza y claridad para embarcarme con esto :)
Mis objetivos eran:
- Crear un bot de Twitch y procesar comandos
- Crear un conjunto de funcionalidades MIDI como reloj MIDI con tempo regulable, progresiones de acordes sincronizadas, notas, loops, mensajes CC, macros...
- Unir comandos y funcionalidad MIDI
- Hacer que funcione rápido, se adapte a las necesidades de los streamers, y que sea estable y fácil de usar
Hasta ahora, esta versión cumple todo eso, sigue leyendo las funcionalidades para más detalle!
Funcionalidades
- Amplio abanico de funcionalidades MIDI:
- Reloj MIDI de alta precisión usando "nanotimer" con tempo regulable via !settempo
- Secuenciador en tiempo 4/4 con infinitas sub-divisiones (1 = Negra, 0.5 = Corchea, 0.25 = Semicorchea...)
- Lanza notas individuales, monta un acorde o manda una melodía separada por comas via !sendnote
- Lanza progresiones de acordes con longitud específica por acorde via !sendchord con una extensa lista de acordes de los que elegir. Mira CHORDS.md
- Loopea progresiones de acordes via !sendloop
- Soporte para silencios usando "rest" como reemplazo para una nota o acorde en peticiones de !sendnote, !sendchord y !sendloop
- Mira la progresión de acordes sonando ahora mismo via !midicurrentrequest
- Mira la cola de peticiones de progresiones de acordes via !midirequestqueue
- Cambia el volumen (velocity) de las notas/acordes MIDI via !midivolume
- Manda mensajes CC (Control Change) y barridos entre valores via !sendcc
- Sincronizador de reloj y loop para re-sincronizar ritmo y música via !syncmidi
- Sincronización automática de loops que fuerza a que el loop espere al comienzo del compás
- Interruptor de encendido/apagado
- Pausa las peticiones con !midipause y re-actívalas con !midiresume
- Aliases configurables en config/aliases.json
- Comandos - Añade tantos alias para comandos como quieras
- Progresiones de acordes/Loops - Añade un alias para una progresión de acordes o loop usando la sintaxis "nombre/acordes"
- Añade progresiones de acordes via !addchord
- Borra progresiones de acordes via !removechord
- Lista todas las progresiones de acordes añadidas via !chordlist
- Nombres de controlador Control Change- Ponle nombre a tus controladores Control Change (e.g sustain: 64)
- Comandos Control Change - Asigna un conjunto de comandos CC
- Funcionalidad de barrido, specify two values and the time in milliseconds to get from one value to other (e.g "cutoff 20(5000),cutoff 120(10000)")
- Lista todas las macros de mensajes CC añadidas via !cclist
- Recarga los archivos config/aliases.json, config/permissions.json y config/rewards.json mientras usas el bot con !fetchdb
- Explicaciones de los comandos con ejemplos via !midihelp nombreDelComando
- Control de acceso detallado con comprobación de roles, lista blanca y lista negra en config/permissions.json
- Modo Recompensas del Canal activado mediante el flag REWARDS_MODE y configurable en config/rewards.json
- Pon el nombre de tu recompensa, el comando a lanzar y el precio (e.g. "Twitch Midi - Loop": ["!sendloop",100] )
- Activación/Desactivación automática de las recompensas via !midion/!midioff
- Devolución de puntos automática en peticiones fallidas o cualquier tipo de error en petición
- Los comandos solo funcionan para streamer y moderadores en este modo
- Permitir que los VIP usen comandos sin canjear recompensas mediante el flag VIP_REWARDS_MODE
- Ejecutable optimizado para diferentes sistemas operativos y sin dependencias externas
- Internacionalización completa en Inglés y Español (por ahora)
- Comprobación de actualizaciones al arranque, un mensaje aparece si hay una versión nueva disponible
