Tabla de contenido:

Keytar Hero (usando un controlador de guitarra de Wii como sintetizador): 7 pasos (con imágenes)
Keytar Hero (usando un controlador de guitarra de Wii como sintetizador): 7 pasos (con imágenes)

Video: Keytar Hero (usando un controlador de guitarra de Wii como sintetizador): 7 pasos (con imágenes)

Video: Keytar Hero (usando un controlador de guitarra de Wii como sintetizador): 7 pasos (con imágenes)
Video: Analisis Teclado Rock Band 3 (Xbox 360) 2024, Mes de julio
Anonim
Image
Image
Paso 1: Raspberry Pi (configuración inicial)
Paso 1: Raspberry Pi (configuración inicial)

Los juegos de Guitar Hero estaban de moda hace una docena de años, por lo que es probable que haya muchos controladores de guitarra viejos tirados por ahí acumulando polvo. Tienen muchos botones, perillas y palancas, así que ¿por qué no volver a utilizarlos bien? El controlador de guitarra normalmente no emite ningún sonido por sí solo, pero en este tutorial te mostraré cómo convertir un controlador de Wii Guitar Hero para que se pueda tocar como un sintetizador.

Suministros

  • Controlador de Wii Guitar Hero
  • Tablero de fuga de Nunchucky (disponible en Adafruit aquí)
  • Cables de puente 4ea (hembra a hembra)
  • 2 conectores de crimpado (opcional)
  • Raspberry Pi (se prefiere 3 B + o 4)
  • Tarjeta MicroSD de 16GB

Paso 1: Paso 1: Raspberry Pi (Configuración inicial)

Una Raspberry Pi es el cerebro y la fuerza de este proyecto, por lo que lo primero que tendremos que hacer es configurar una para nuestro proyecto. Probé este proyecto tanto en una Raspberry Pi 3 B + como en una 4, y ambos parecen funcionar bien.

Las Raspberry Pi son microcomputadoras que almacenan todo en una tarjeta microSD en lugar de en un disco duro … incluido el sistema operativo. La forma típica de usarlos es descargar el último sistema operativo y grabar una imagen del mismo en una tarjeta microSD de la siguiente manera:

  • En una PC o computadora portátil separada, vaya a
  • Descargue el último sistema operativo Raspbian. (Buster en el momento de escribir este artículo). Hay varias versiones disponibles en la página que ofrecen más o menos software incluido según sus preferencias. Todos deberían funcionar bien, pero me gusta usar la opción "Raspbian Buster con escritorio y software recomendado" porque incluye algunos IDE de programación y otras aplicaciones útiles. La forma más sencilla es descargar la versión zip.
  • Grabe la imagen de Raspbian en la tarjeta microSD. Hay muchas aplicaciones que puede usar para grabar la imagen de Raspbian en su tarjeta microSD, pero usé el programa balenaEtcher que puede obtener aquí. Inserte la tarjeta microSD en su computadora y ejecute balenaEtcher. Para la imagen del disco, seleccione el archivo zip que descargó, luego seleccione su tarjeta SD y presione flash. La herramienta descomprimirá los archivos de imagen del disco y los grabará en la tarjeta SD. IMPORTANTE: asegúrese de que la unidad que está seleccionando sea la tarjeta microSD … la herramienta sobrescribirá la unidad que especifique, así que asegúrese de elegir la correcta.
  • Enciende tu Raspberry Pi. Inserta la tarjeta microSD en tu Raspberry Pi. Conecte la alimentación, el mouse, el teclado y los parlantes. Si sigue las instrucciones, se explica por sí mismo … establezca su ubicación / hora, establezca una contraseña y conecte el WiFi.

Esta es toda la configuración estándar para una Raspberry Pi, por lo que si necesita más detalles, puede encontrarlos aquí. Haremos el resto de nuestros pasos en la Raspberry Pi.

Paso 2: Paso 2: Habilite I2c

Paso 2: habilite I2c
Paso 2: habilite I2c

El controlador Guitar Hero usa i2c para comunicarse (i2c es un protocolo bastante común que usan los dispositivos electrónicos para comunicarse entre sí), por lo que debemos habilitar esta función en la Raspberry Pi:

  • Instale bibliotecas para i2c. Las bibliotecas i2c ahora parecen ser parte de la compilación estándar de Buster, pero por si acaso, ejecutaremos el instalador para ellas. Abra un shell (hay un icono para él en la barra de tareas en la parte superior) y escriba lo siguiente:

    • sudo apt-get install -y python-smbus
    • sudo apt-get install -y i2c-tools
  • Habilite i2c en Raspberry Pi. En su shell, escriba: sudo raspi-config. Esto abrirá su ventana de configuración. Flecha hacia abajo hasta InterfacingOptions-> I2C para habilitar i2c para el dispositivo. Para salir de la ventana, flecha derecha hacia Atrás y luego a Finalizar para guardar la configuración.
  • Reiniciar. En su shell, escriba: sudo reboot
  • Establezca parámetros personalizados de i2c. La velocidad en baudios predeterminada de i2c (100k) parece confundir la guitarra de vez en cuando, así que la ralentizaremos a 50k de la siguiente manera:

    • En un tipo de shell: sudo nano /boot/config.txt
    • Esto abrirá su archivo de configuración en un editor de texto. Flecha hacia abajo y busca la línea que dice dtparam = i2c_arm = on. Si está comentado, descomentarlo. Si no tiene esa línea, agréguela. Debajo de esa línea también agregue lo siguiente:

      • dtparam = i2c1 = encendido
      • dtparam = i2c1_baudrate = 50000
    • Presione Ctrl + O para guardar el archivo de configuración y luego presione Ctrl + X para salir.
  • Reiniciar. En su shell, escriba: sudo reboot

Paso 3: Paso 3: Instale Pure Data

Paso 3: Instale Pure Data
Paso 3: Instale Pure Data
Paso 3: Instale Pure Data
Paso 3: Instale Pure Data

Para los sonidos del sintetizador usaremos un programa llamado Pure Data. Esta es una herramienta de visualización interactiva y de sonido generativo que existe desde hace bastante tiempo. Tiene un par de características que lo hacen ideal para este proyecto … tiene una interfaz de usuario basada en nodos que es bastante fácil de usar y puede recibir señales de fuentes externas como scripts de Python.

  • Instale Pure Data. En un tipo de shell: sudo apt-get install puredata
    • Esto debería instalar el software en su Raspberry Pi, pero si se queja en el shell de no poder ubicar todos los archivos que necesita, intente esto:

      • sudo apt-get update
      • Luego ejecute el comando de instalación nuevamente: sudo apt-get install puredata
    • Durante la instalación, le preguntará si desea crear directorios para extensiones, puede decir Sí.
  • Inicie Pure Data. Si se instaló correctamente, debería ver el programa en el menú Inicio del escritorio en Sonido y video. Ejecútelo para asegurarse de que se inicie.
  • Configure el audio de Pure Data. El audio en Pure Data generalmente no está activado de forma predeterminada, por lo que deberá habilitarlo.

    • Configure la salida de audio en ALSA. Cuando se inicie Pure Data, debería ver la ventana de la consola. Vaya al menú Medios y seleccione ALSA como su salida. Es posible que vea mensajes de advertencia en el shell de la consola que dicen que no puede encontrar ciertos archivos, pero puede ignorar esto.
    • Encienda el audio DSP. En la ventana de la consola, marque la casilla de verificación que dice DSP.
  • Prueba la salida de audio. En la ventana de la consola de Pure Data, vaya a Medios-> Probar audio y MIDI. Esto abrirá un archivo de prueba que podemos usar para asegurarnos de que Pure Data esté funcionando y que podamos escuchar el audio. Encienda los altavoces, pero al principio manténgalos a un volumen bajo (a veces, el audio puede ser muy alto de forma predeterminada). En el archivo de prueba, en el lado izquierdo, debería ver una sección llamada Tonos de prueba. Haga clic en el cuadro que dice 60 primero y vea si escucha algún sonido en sus parlantes. De lo contrario, intente hacer clic en el cuadro 80 y luego suba los altavoces hasta que escuche el sonido. Si escucha sonido, intente arrastrar el cuadro que dice Tono a la derecha de los Tonos de prueba, donde puede cambiar la frecuencia de los tonos y ver qué sucede.

Si puede iniciar Pure Data y escuchar un sonido del parche de prueba, entonces está listo para continuar con el siguiente paso. Pero Pure Data puede ser un poco quisquilloso con la salida de audio la primera vez, por lo que si aún no obtiene audio, intente lo siguiente:

  • Es posible que el audio se enrute a través del cable HDMI, por lo que para forzarlo a usar el conector de auriculares:

    • En un tipo de shell: sudo raspi-config
    • Vaya a Opciones avanzadas-> Audio-> Forzar conector de 3,5 mm ('auriculares')
  • Intente reiniciar. A veces esto funciona.
  • Verifique sus parlantes y la conexión a la Raspberry Pi.

Paso 4: Paso 4: Conexión de la guitarra

Paso 4: Conexión de la guitarra
Paso 4: Conexión de la guitarra
Paso 4: Conexión de la guitarra
Paso 4: Conexión de la guitarra
Paso 4: Conexión de la guitarra
Paso 4: Conexión de la guitarra

La forma más fácil de conectar el controlador de guitarra a la Raspberry Pi es con una placa de conexión económica como la Nunchucky *. Esta placa le permite acceder a la señal proveniente de la guitarra sin cortar el enchufe o abrir la guitarra. En un lado del tablero hay pistas planas diseñadas para encajar perfectamente en el enchufe que viene de la guitarra. También hay dos pequeñas muescas que permiten que el enchufe encaje en su lugar evitando que se suelte. Los rastros conducen a cuatro pines de cabecera en el lado opuesto de la placa.

Nota: El Nunchucky viene con pines de encabezado, pero no están soldados, por lo que deberá hacerlo usted mismo. Para el mío, utilicé pines de cabecera de 90 grados, lo que le permite quedar plano en el proyecto final.

Necesitará cuatro cables para conectar el Nunchucky a la Raspberry Pi. Conecte los cables de los pines del cabezal Nunchucky a los pines GPIO de la Raspberry Pi de la siguiente manera:

  • 3,3 V -> Pin 1
  • Datos -> Pin 3
  • Clk -> Pin 5
  • Tierra -> Pin 9

En mi proyecto utilicé conectores de crimpado para los cables para que no se salieran tan fácilmente. Pero si no tiene conectores de crimpado, cuatro cables de puente de hembra a hembra funcionarán bien. Si usa los conectores de crimpado, asegúrese de prestar atención al orden de los cables en las clavijas del cabezal y las clavijas GPIO. También tenga en cuenta que en los pines GPIO, omitimos el pin 7. Para tener esto en cuenta, utilicé un conector de engarce de cinco cables en un extremo y omití una ranura.

Para verificar que su Raspberry Pi puede detectar el controlador de guitarra, abra un shell y escriba: sudo i2cdetect -y 1

Debería imprimir una cuadrícula en el caparazón con guiones dobles en su mayoría. Si la computadora puede detectar la guitarra, debería ver el ID de la guitarra # 52 en una de las ranuras … en mi máquina apareció en la columna 2, fila 5 … pero no importa cuál, siempre que vea el número 52 en algún lugar de allí.

Si la computadora no puede detectarlo, aquí hay algunas cosas que puede probar:

  • Asegúrese de que sus cables estén bien conectados.
  • Asegúrese de tener todo conectado a los pines correctos.
  • Da la vuelta al enchufe de la guitarra. El Nunchucky no le impide conectar el enchufe al revés, por lo que podría estar invertido.
  • Asegúrese de que i2c esté habilitado en la Raspberry Pi (como se muestra en el paso 2)

* Si el enchufe del controlador de guitarra le resulta familiar, es porque es el mismo que el controlador Wii Nunchuck estándar … ¡de ahí el nombre Nunchucky! Esto también significa que puede usar esta misma placa de conexión para conectarse a los controladores nunchuck también.

Paso 5: Paso 5: Poniéndolo todo junto

Paso 5: Poniéndolo todo junto
Paso 5: Poniéndolo todo junto
Paso 5: Poniéndolo todo junto
Paso 5: Poniéndolo todo junto

Ahora que todo está configurado en la Raspberry Pi, solo necesitamos un poco de código para que funcione. Puede descargar el código y otros archivos necesarios de la siguiente manera:

  • Para descargar el código y otros archivos en la Raspberry Pi, abra un nuevo shell y escriba el siguiente comando (es posible que deba poner 'sudo' antes): git clone
  • Esto creará un directorio en su directorio de inicio llamado keytarHero (es decir, / home / pi / keytarHero) y descargará los archivos en él.

Hay tres archivos principales en este paquete:

  • WiiGHController.py: este es un script de Python que abre una conexión i2c a la guitarra y devuelve los valores de los distintos controles. De forma predeterminada, también imprime los valores que está leyendo en el shell para que pueda ver lo que está haciendo.
  • keytarHero.pd: Este es el archivo de parche de Pure Data que creé para crear la música que escuchará. Está configurado para leer los valores provenientes de la guitarra y los enruta a varios nodos para generar los sonidos. Discutiré los detalles del parche en el siguiente paso, pero en última instancia, podría modificar esto para hacer lo que quiera desde aquí.
  • keytarHero.py: este es el script que inicia todo el proceso y pega todo junto. Inicia Pure Data y abre el parche keytarHero.pd. Abre una conexión con el parche y pasa los valores de la guitarra al parche.

¡El momento de la verdad! Asegúrese de que la guitarra esté conectada a la Raspberry Pi y luego esté lista para comenzar. Para comenzar, solo necesita ejecutar el script keytarHero.py. Para hacer esto:

  • Abra un nuevo shell y escriba: cd keytarHero
  • Luego ejecute el comando: python keytarHero.py

¡Eso es todo! Si todo funciona correctamente, Pure Data debería iniciarse y comenzar a reproducir el parche. Debería escuchar una secuencia de notas que se están reproduciendo, y cuando presione los botones de la guitarra, debería responder.

Solución de problemas

Si no funciona, aquí hay algunas cosas que debe verificar:

  • ¿El parche de Pure Data no se inicia o recibe un error por no encontrar archivos? El script keytarHero.py tiene la ruta al archivo de parche de Pure Data codificado en '/home/pi/keytarHero/keytarHero.pd'. Si ha movido su carpeta keytarHero o ese archivo de parche a otro lugar, deberá actualizar el script para usar su ruta en su lugar. Para hacer esto, abra el archivo keytarHero.py y busque la variable llamada PD_PATCH_PATH y cámbiela para que apunte al directorio donde vive su archivo keytarHero.pd. Guarde el script y vuelva a ejecutarlo y estará listo para comenzar.
  • ¿La guitarra está emitiendo una señal? La secuencia de comandos debe imprimir la señal que recibe de la guitarra al shell continuamente como una cadena de números, cada uno representando el valor de un control en la guitarra. Cuando usa un control en la guitarra, estos números deberían cambiar. De lo contrario, compruebe que ha realizado correctamente la configuración de i2c y las conexiones de guitarra en los pasos anteriores.
  • ¿Está activado el audio Pure Data? El parche de Pure Data proporcionado en este paquete debería encender automáticamente el audio, pero verifique que la casilla de verificación DSP en la consola de Pure Data esté marcada. También verifique su configuración de audio como se muestra en el Paso 3.
  • ¿Pure Data está recibiendo la señal de la guitarra? En la esquina superior derecha del parche hay un grupo de nodos responsables de leer la señal de la guitarra y transmitirla al resto del parche. A medida que presiona los botones de la guitarra, los números de esta sección también deberían actualizarse para indicarle que está recibiendo la señal correctamente.
  • Inicializando variables en el parche. Pure Data puede ser un poco quisquilloso con los valores en el parche que no se inicializan. Agregué mecanismos para activar variables cuando se abre, pero podría valer la pena hacer clic en algunos de los cuadros de mensaje (los que parece que les han quitado un bocado). Esto hace que se inicialicen y puede reactivarlos.

Paso 6: Un recorrido por el parche de datos puros

Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros
Un recorrido por el parche de datos puros

La configuración descrita hasta ahora en este tutorial hará que las cosas funcionen para usted, pero una de las cosas buenas de usar Pure Data para este proyecto es que se puede personalizar para hacer lo que quiera. Cuando el parche está abierto, si presiona Ctrl + E, lo pone en modo de edición y puede cambiar el parche. Los detalles del uso de Pure Data están más allá del alcance de este tutorial (hay muchos tutoriales en línea para eso) pero puede ser divertido jugar con él, así que aquí hay un recorrido general de lo que está sucediendo en el parche keytarHero.pd en caso de que usted quieres personalizarlo:

  • Comunicación de guitarra: en la parte superior derecha del parche hay un árbol de nodos responsables de manejar la señal de la guitarra. Los valores de la guitarra son una cuerda larga, por lo que estos nodos dividen la cuerda en valores individuales para cada control, los convierten en números y luego los pasan a los nodos 'enviar' (los que comienzan con una s). A los nodos de envío se les asigna un nombre y emiten la señal para 'recibir' nodos con el mismo nombre. Por ejemplo, el nodo 's whammy' emite los valores provenientes de la barra de whammy de la guitarra y el nodo 'r whammy' en el medio del parche recibe esa señal y usa esa señal para detener el secuenciador. Los nodos de envío / recepción ayudan a reducir el desorden de las líneas de conexión en el parche. No recomiendo jugar con esta sección ya que es un poco complicado hacerlo bien, pero definitivamente puede agregar nodos de recepción adicionales a lo largo del parche según sea necesario para recibir señales de él según sea necesario.
  • Sección del secuenciador: la sección central del parche controla el secuenciador. En el lado izquierdo hay una barra con un cuadrado negro en movimiento que le muestra qué nota de una secuencia de 16 notas está tocando. La tecla de rasgueo controla si la secuencia se reproduce hacia adelante o hacia atrás. Los botones más / menos aumentan / disminuyen la velocidad. En el lado derecho hay cinco conjuntos de números que controlan qué notas se reproducen durante cada paso. Cada secuencia se asigna a tocar cuando se presiona uno de los cinco botones en el traste. Estos números son valores MIDI y puedes cambiarlos para tocar las notas que quieras … simplemente dales valores entre 0 y 127.
  • Sección Oscillator / FX: En la parte inferior izquierda están los nodos de oscilador y FX que realmente producen el sonido. El oscilador primario está a la izquierda. Los valores midi de la sección del secuenciador se convierten a frecuencias y se envían al oscilador. Se mezcla con un segundo oscilador procedente del lado derecho. Su frecuencia también está controlada por los valores midi, pero con una compensación de frecuencia adicional impulsada por el eje X del joystick. Esto provoca un efecto desafinado o de silbido cuando mueve el joystick hacia la izquierda o hacia la derecha. En la parte inferior derecha también hay un nodo de filtro de paso bajo cuya frecuencia de corte está vinculada al eje Y del joystick. Un filtro de paso bajo determina la cantidad de sonido de alta frecuencia que se elimina del sonido. Cuando el joystick se mueve a la posición hacia abajo, corta gran parte de las frecuencias altas, lo que resulta en un sonido amortiguado. Cuando se mueve a la posición hacia arriba, pasa todas las frecuencias dando como resultado un sonido más brillante.
  • Inicialización: En la parte superior izquierda del parche hay una serie de nodos que inicializan el parche cuando se inicia, como encender el audio y 'tocar' varios nodos para activarlos. Una vez más, probablemente no necesite meterse con esta sección, pero si hay cosas que desea que sucedan cuando se lance el parche, conéctelas al nodo llamado 'loadbang'.
  • Intenté documentar el parche con comentarios en el parche en sí, así que espero que le brinde suficiente información para explorar diferentes opciones desde aquí.

¡Disfrutar!

Paso 7: Cosas adicionales para probar

Ejecutando la guitarra 'sin cabeza'

Debería ser posible ejecutar este proyecto sin estar conectado a un monitor / teclado / mouse si ejecutó su Raspberry Pi desde una fuente de alimentación portátil adecuada. La Raspberry Pi no encaja del todo en la abertura de la parte posterior de la guitarra, pero si te sientes valiente, puedes hacer modificaciones en la guitarra para arreglar eso … o simplemente montar la Pi en la parte posterior con tornillos y hacer que se pegue. un poco. Hay muchos tutoriales en línea sobre cómo ejecutar scripts en la Raspberry Pi sin cabeza, pero básicamente querrá ejecutar el comando 'python /home/pi/keytarHero/keytarHero.py&' cuando se inicie. En teoría, entonces, tendrías una guitarra con un solo cable saliendo de ella hacia el altavoz … ¡como una guitarra eléctrica real!

Modificaciones adicionales de Pure Data

Tenía otras ideas sobre cómo la guitarra podía controlar el parche Pure Data, pero no lo intenté. Estos serían cambios en el parche con los que podría ser divertido experimentar:

  • Barra de whammy: en el parche actual, la barra de whammy simplemente detiene la reproducción de la secuencia, pero creo que sería mejor si la barra de whammy también aumentara la frecuencia al mismo tiempo, como lo haría una barra de whammy real. Traté de hacerlo funcionar por un tiempo, pero fue más complicado de lo que pensaba. Creo que podría ser solo una cuestión de agregar una expresión hacia abajo en la sección del oscilador que agregue un poco más de frecuencia al oscilador en función del valor que proviene de la barra de golpe.
  • Barra de rasgueo: actualmente, la barra de rasgueo reproduce la secuencia hacia adelante cuando se presiona hacia abajo y hacia atrás cuando se presiona hacia arriba, pero podría ser mejor que pase por diferentes opciones de secuenciación, como pasos aleatorios, etc.
  • Botones más / menos: los botones más / menos cambian los latidos por minuto, pero es un poco decepcionante a menos que los presione varias veces. Podría ser bueno que aumente en una cantidad mayor cada vez. O tal vez haga que cambie el secuenciador entre reproducción de triplete de 16, 8, 4 y 4 tiempos.

Recomendado: