Como crear musica gracias a machine learning con Raspberry Pi


La tecnología siempre ha desempeñado un papel en la creación de nuevos tipos de sonidos que inspiran a los músicos, desde los sonidos de distorsión hasta los sonidos electrónicos de los sintetizadores,sin embargo gracias a los avances en el aprendizaje automático y las redes neuronales han abierto nuevas posibilidades para la generación de sonido  como los demuestra el  grupo Magenta de Google que es el que ha creado NSynth Super,   basandonase en una Raspberry Pi 3  y utilizando Machine Learning con TensorFlow para explorar nuevos sonidos y melodías a músicos y artistas(TensorFlow es una biblioteca de código abierto para aprendizaje automático a través de un rango de tareas, y desarrollado por Google para satisfacer sus necesidades de sistemas capaces de construir y entrenar redes neuronales para detectar y descifrar patrones y correlaciones, análogos al aprendizaje y razonamiento usados por los humanos).

 

El proyecto es  totalmente abierto y «cualquiera» familiarizado con  la electronica debería podérselo construir en su propia casa o en el taller, aunque esto es la teoría pues en la practica todos los componentes son SMD ,lo cual complica las cosas bastante a la hora de ponerse a soldar los diferentes componentes que  constituyen ese proyecto.

Usando TensorFlow , han   construido herramientas e interfaces que permiten a artistas y músicos utilizar el aprendizaje automático en su trabajo. El algoritmo NSynth Super AI usa redes neuronales profundas para investigar el carácter de los sonidos y luego construye nuevos sonidos basados ​​en estas características en lugar de simplemente mezclar los sonidos.

Usando un autoencoder, extrae 16 características temporales definitorias de cada entrada. Estas características se interpolan linealmente para crear nuevas incrustaciones (representaciones matemáticas de cada sonido).

Estas nuevas incrustaciones se decodifican en nuevos sonidos, que tienen las cualidades acústicas de ambas entradas (se pueden encontrar más detalles en la página NSynth: Neural Audio Synthesis ).

 


Open NSynth Super luego toma el audio generado y proporciona una interfaz física o instrumento con:

    • Entrada MIDI para conectar un teclado de piano, un secuenciador o una computadora, etc.
    • Cuatro codificadores giratorios utilizados para asignar instrumentos a las esquinas del dispositivo
    • Pantalla OLED para el estado del instrumento y la información de control
    • Controles finos para:
      • La posición estableciendo la posición inicial de la onda.
      • Attack establece el tiempo necesario para el inicio inicial del nivel.
      • Decay establece el tiempo necesario para el posterior agotamiento.
      • Sustain establece el nivel durante la secuencia principal del sonido.
      • Release establece el tiempo necesario para que el nivel disminuya desde el nivel de sostenido a cero.
      • El volumen establece el volumen de salida.
    • Interfaz táctil para explorar las posiciones entre los sonidos.

Obviamente la Rasbpeberry   es usada  para  administrar las entradas físicas y esto se programa antes del primer uso.

 

 

El equipo publica todos los diseños de hardware y software que son parte de su investigación en curso bajo licencias de código abierto, lo que le permite  que cuaqluiera  que tenga los medios adecuados  puedas construirse  su propio sintetizador usando esta tecnlogia .

 

Utilizando estas herramientas de código abierto, Andrew Black ha producido su propia NSynth Super, mostrada en el video anterior.

La lista de materiales de construcción de Andrew incluye:

    • 1x Raspberry Pi 3 Model B (896-8660)
    • 6x Alps RK09K Series Potentiometers (729-3603)
    • 4x Bourns PEC11R-4315F-N0012 Rotary Encoders
    • 2x Microchip AT42QT2120-XU Touch Controller ICs (899-6707)
    • 1x STMicroelectronics STM32F030K6T6, 32bit ARM Cortex Microcontroller (829-4644)
    • 1x TI PCM5122PW, Audio Converter DAC Dual 32 bit (814-3732)
    • 1x Adafruit 1.3″ OLED display

 

El equipo de Magenta también proporciona archivos de Gerber para que se  pueda fabricar la placa de circuito impreso , de modo que una vez se haya fabricado, se pueda comenzar con el soldado de componetes  em la PCB (incluye una tabla de contenidos para agregar componentes)

Como adelantabmos ,laa construcción no es trea fácil: requiere habilidades de soldadura o acceso a alguien que pueda ensamblar PCB pues la mayoría de los componentes son SMT de modo que el paso de componentes se reduce a alrededor de 0,5 mm, que aun se se pueden soldar a mano si se tiene cuidado. Sin embargo, aunque algunos podrían argumentar que no es absolutamente necesario, es aconsejable tener un microscopio estéreo y una estación de aire caliente disponibles también. ¡Y no hace falta decir que también debería tener suficiente flujo y mecha de soldadura!

Para probar  este diseño , descargamos un archivo MIDI de Internet y luego lo reproducimos a través de una computadora portátil Linux y una interfaz USB / MIDI usando el comando «aplaymidi». Efectivamente, el NSynth Superarrncara  y  ya podremos asignar instrumentos a cada esquina y luego interpolar a través de la maravilla del aprendizaje automático para crear nuevas, hasta ahora desconocidas, 

 

Puede echar un vistazo a la publicación de blog de Andrew y al informe oficial de NSynth GitHub para ver si está preparado para el desafío.

Aquí información útil para montarlo:https://www.rs-online.com/designspark/building-the-google-open-nsynth-super

 

Anuncio publicitario

Construya su propia mini SNES


En efecto una  mini SNES  se puede construir partiendo de una   Raspberry pi 2 o 3, el software de Recalbox y  si es posible con  un buen diseño de la caja que lo albergue. 

Gracias al trabajo desinteresado de AndreBougie, padre de familiar  con dos hijos con edad suficiente para interesarse en los videojuegos  este proyecto has sido posible.

Andre  tenía una  vieja  SNES  de los años 90  así que diseño una caja imitando la  Mini SNES para ejecutar Recalbox con un controlador de bluetooth para que sus hijos pudieran  disfrutar de los juegos con la tecnologia actual no teniendo  que lidiar con el inconveniente de los cables para los mandos  o mejores conexiones de vídeo y audio modernas  que funcionan  con los sistemas más actuales de la AV.

snes

 

Hardware Necesario

Si desea jugar con un SNES (o NES, Genesis, Game Boy, etcetera) juegos, necesitará RecalBox o un emulador similar OS para la Raspberry Pi. Asimismo por supuesto necesitara hardware  nada complejo de conseguir

Para construirse  su propia SNES  necesitara  los siguientes componentes para crear su propio recalbox:

  • Raspberry Pi 3  (o una Raspberry Pi 1 B o B+ o Raspberry Pi 2)
  • Una tarjeta microSD >= 16GB
  • Una fuente de alimentación micro USB de alta calidad | 2.5 AMP
  • Un cable HDMI
  • Un mando Sixaxis PS3, Dualshock 3, una copia de Shanwan o USB
  • Un adaptador Bluetooth de alta calidad
  • Una caja para Raspberry Pi  que imprimiremos con nuestra impresora 3D
  • Un teclado USB si no tienes un mando OOTB.

 

Software

Es hora de descargar e instalar recalboxOS.

Ir a https://archive.recalbox.com  para descargar la  ultima imagen de  recalbox.

Seleccionar la imagen de acuerdo  con su placa exacta (Raspberry Pi 3 , Raspberry Pi 1 B o B+ o Raspberry Pi 2)

 

Entonces use https://etcher.io/ para crear el fichero descargado del tipo img.xz en su  SD card:

  • Ir a etcher.io donde podemos descargar el software para cada sistema operativo
    pudiéndose e elegir aquí el sistema operativo que desea para Mac, linux o Windows
  • Una vez descargado el sw  instale en su equipo y  ejecutelo
  • Ahora seleccione la imagen de Recalbox que descargo anteriormente.
  • Seleccione la unidad de tarjeta sd donde desee crear la imagen
  • Luego haga clic en flash, y la imagen será transferido a su tarjeta SD

etcher.PNG

  • Una vez creada la imagen de Raspbian en la SD ,ya puede insertar la SD en su Raspberry Pi 3 en el adaptador de micro-sd , conectar un monitor por el hdmi , conectar un teclado y ratón en los  conectores USB, conectar la  con un cable ethernet  al router  conectividad a Internet y finalmente conectar la alimentación  para comprobar que la Raspberry arranca con la nueva imagen
  • Cuando la Raspberry  Pi 3 comienza a recibir energía el LED rojo marcado PWR se encenderá y el LED verde marcado OK o ACK en las versiones posteriores parpadeará en un patrón irregular para mostrar siempre que el Pi, seguidamente leera desde la tarjeta SD( tenga en cuenta que el BIOS para el RP3 esta almacenados en la tarjeta SD.
  • Al finalizar  ya tendrá  el recalbox en su Raspberry Pi
  • Si el arranque no tiene éxito,  no mostrará nada en la pantalla, por lo que si tiene problemas repita los pasos anteriores o pruebe con otra micro sd

 

Nota : Las ROMs(es decir volcados de memoria de los juegos )    a pesar  de tener bastantes años y no tener un valor comercial concreto , al estar sujetas a derechos de autor , no deberíamos publicar las  urls’s para su descarga , pero si se ha comprado con alguno  de estos juegos se supone podríamos hacer  uso de estas debido a los años transcurridos. Dada su gran popularidad estos volcados son  muy fácil  obtenerlos  con una sencilla búsqueda en Google  (por ejemplo emuparadise es una referencia) .

 

Configuración de mandos

Si tiene un mando PS3 con un dongle bluetooth, coja un cable micro usb, conecte el mando a recalbox y espere 10 segundos. Ahora puede desconectar el mando y presionar el botón HOME. !su mando está configurado!

Si tienes un mando USB de XBOX360, sólo enchúfelo  y ya estara listo

Si tiene un mando USB, conecta un  teclado USB, pulse ENTER en el frontal, selecciona «Configure Input» entry with S key, then select «Configure a controller» y pulsa la tecla S de nuevo. Sigue las instrucciones y mapee todas las opciones de la pantalla a cada botón de su mando. Los botones llevan el nombre de los mandos de Super Nintendo.

 

Instrucciones para construir la caja

 

Una vez que tenga Recalbox funcionando en  una Raspebrry Pi , es hora de dar forma a la electrónica con una caja que este a la altura  como la de  AndrewBougie,

Dada la dificultad obtener una carcasa a media , lo mas sencillo es imprimir  en 3D la caja que contendrá la Raspberry Pi (otra vía  si no se dispone de impresora 3D es usar una caja de platico  y practicar los agujeros correspondientes para el modelo de Raspberruy Pi  que vayamos a usar)

Un diseño  que imita muy bien a  una  NES es el de AndreBougie,  que podemos obtener de thinginverse  de   https://www.thingiverse.com/thing:1496674el cual esta adaptado perfectamente a la RPi

Si imprime este diseño , solo el autor nos pide    que compartamos  en Thingiverse y etiqueta @andrewbougie en Twitter y Instagram.

 

Para descargar el diseño   vaya pues a   https://www.thingiverse.com/thing:1496674

Las instrucciones de impresión son cortas, pero la impresión no puede ser más fácil si no tiene la configuración de apoyo hecha en.

  • La impresión superior [1] e inferior [1] con soportes habilitados.
  • Conexiones de controlador de impresión [2]
  • Botones de power/reset Print [2]
  • Botón de expulsión de impresión [1]

Los botones están separados para que pueda pintar o imprimir en un color diferente y luego pegarlos a la caja principal.

Puede usar  pegamento gorila súper adhesivo en gel para ABS y PLA.

caja_raspberry.PNG
La placa de la RPi  es  sostenida en lugar por 4 de los tornillos de arriba. Las dos mitades se sujetan con dos tornillos hacia la parte delantera de la caja. Basado en la utilización de este caso, esto debe ser suficiente para la mayoría de las personas.

Usted puede ver hay algún espacio vacío en el frente de la caja para la electrónica adicional en caso de que desee obtener más elegante con el diseño y agregar un led  en la parte delantera o añadir otros  (muy) pequeños para más funcionalidad.

 

 

 

Actualización de licencia
El autor ha recibido muchas consultas sobre el uso de este diseño comercialmente. Si quiere imprimir esta y venderla a otras  personas, siga adelante! La licencia es CC – atribución, por lo que solo pide que cite como la fuente de la original diseño de la caja  (AndreBougie,)  y el enlace a su página web andrewbougie.com.