Sobre CrossVoice
Como amante de juegos como Mordhau y Hunt: Showdown, siempre me había gustado el sistema de líneas de voz que tenía Mordhau o incluso Chivalry 2. En algún momento empecé a darle vueltas a cómo podría utilizar ese mismo mecanismo dentro de Hunt: Showdown y, por qué no, también en otros juegos que ofrecieran comunicación por VoIP.
De aquella idea nació un primer prototipo desarrollado en Python, que funcionaba mediante dispositivos de audio virtuales. El concepto funcionaba, pero por diferentes motivos terminé dejando el proyecto aparcado durante varios años.
Tiempo después descubrí herramientas como Soundpad y las posibilidades que ofrecían para reproducir sonidos a través del micrófono. Pero todos los soundboards que encontraba funcionaban igual: una tecla, un sonido. Aquello me animó a recuperar el proyecto y llevarlo a otro nivel. Esta vez quería ir bastante más allá del prototipo original, así que empecé a experimentar con C++ para desarrollar una solución nativa de audio que me permitiera tener un mayor control sobre cómo se gestionaba y transmitía el sonido.
A partir de ahí fui construyendo el resto de la aplicación en C#, empezando por una interfaz gráfica que permitiera gestionar perfiles y configurar los comandos de voz. Pero pronto me di cuenta de que reproducir sonidos era solamente una parte del problema. También tenía que conseguir que todo funcionara correctamente con los distintos sistemas de comunicación por voz de los juegos, incluyendo aquellos que utilizaban Push-to-Talk. Esto me llevó a trabajar en el enrutamiento del audio y en mecanismos de control del teclado a bajo nivel para poder gestionar estas pulsaciones de forma fiable.

A medida que avanzaba el desarrollo, CrossVoice fue creciendo. Los perfiles fueron evolucionando hasta permitir organizar comandos en diferentes páginas, asignar teclas y modificadores, configurar variantes de audio y ajustar parámetros como el volumen, el tono o la velocidad de reproducción. También incorporé un Overlay persistente para poder utilizar y controlar la aplicación directamente durante las partidas, sin tener que salir del juego.
Mi intención siempre ha sido que CrossVoice no dependa de ningún juego en particular. Quería que pudieras configurar tus perfiles a tu manera y utilizarlos en diferentes juegos sin tener que depender de integraciones específicas o de que la aplicación reconociera qué juego estabas ejecutando.
Y llegado a este punto, pensé que no tenía mucho sentido que todo ese trabajo se quedara únicamente en mis propios perfiles. ¿Por qué no permitir que otros jugadores compartieran los suyos y pudieran aprovechar las creaciones de la comunidad? Así empezó también a tomar forma la parte de CrossVoice dedicada a compartir perfiles.
Así es como CrossVoice ha ido creciendo desde aquel primer prototipo en Python hasta convertirse en el proyecto que es hoy. Lo que empezó como una idea mientras jugaba a Mordhau y Hunt: Showdown terminó convirtiéndose en un desarrollo bastante más ambicioso, en el que he ido construyendo y ampliando prácticamente cada parte de la aplicación.
— Raúl Mateo