Tabla de contenido:

Sintetizador de arpegiación (Mosquito I): 6 pasos
Sintetizador de arpegiación (Mosquito I): 6 pasos

Video: Sintetizador de arpegiación (Mosquito I): 6 pasos

Video: Sintetizador de arpegiación (Mosquito I): 6 pasos
Video: El mejor SINTETIZADOR de ARTURIA (Review COMPLETA: MICROFREAK) 2024, Mes de julio
Anonim
Sintetizador de arpegiación (Mosquito I)
Sintetizador de arpegiación (Mosquito I)

Mosquito I es un pequeño sintetizador arpegiador que utiliza un Arduino Nano y la biblioteca de síntesis de sonido Mozzi. Puede reproducir más de veinte secuencias de 8 pasos, pero puede agregar tantas secuencias personalizadas como desee. Es relativamente sencillo de configurar y no requiere muchas piezas.

Suministros:

  • Arduino Nano (o cualquier Arduino realmente debería funcionar)
  • Potenciómetros de 5 ea (10K lineal)
  • 2 botones pulsadores ea
  • 1 cada LED
  • 1 resistencia ea (330 ohmios)
  • Resistencia de 2 ea (1K)
  • 1 resistencia ea (2K)
  • Condensador electrolítico de 1 ea (100 uF)
  • Condensador cerámico de 1 ea (33 nF)
  • 1 conector estéreo ea
  • Conectar cable
  • Tablero de circuitos

Paso 1: Configurar el Arduino

Configuración del Arduino
Configuración del Arduino
Configuración del Arduino
Configuración del Arduino

Primero, coloquemos el Nano en la placa de pruebas y configuremos nuestro poder:

  1. Coloque el Nano en la placa de pruebas. Coloque como se muestra en la imagen de arriba. Debe estar a horcajadas sobre el canal central de la placa de pruebas. Querrá que esté situado hacia un extremo de la placa de pruebas, con el puerto USB hacia ese lado. De esta manera, el cable no se interpondrá en el camino cuando lo conectemos. Si está utilizando un Arduino más grande como el Uno o Mega, por supuesto, no lo montará en la placa de pruebas.
  2. Conecte los rieles de alimentación a Arduino. Conecte uno de los rieles positivos (rojos) de su placa de pruebas al pin de 5 V de Arduino usando cables o cables de puente. Luego, conecte uno de los rieles negativos (azules) a uno de los pines GND del Nano.
  3. Conecte los rieles de alimentación entre sí. Para obtener energía a lo largo de los rieles en ambos lados de la placa de pruebas, conecte los rieles a cada lado de la placa de pruebas entre sí pasando un cable desde el riel positivo en un lado hasta el riel positivo en el otro lado. Repita esto con los rieles negativos.

Paso 2: agregar los controles

Agregar los controles
Agregar los controles

Mosquito I usa cinco potenciómetros y dos botones para los controles.

Potenciómetros:

  1. Coloque las ollas en la placa de pruebas. Coloque las macetas de modo que cada alfiler esté en su propia fila.
  2. Conecte las ollas a los rieles eléctricos. Conecte la clavija del lado izquierdo de cada olla (si está mirando el lado de la perilla) a uno de los rieles negativos en la placa de pruebas. Conecte la clavija del lado derecho de cada olla a uno de los rieles positivos de la placa de pruebas.
  3. Conecte las macetas a Arduino. Conecte el pin central de cada olla a uno de los pines analógicos del Arduino. El pin central del primer bote se conecta a A0, el segundo bote a A1 y así sucesivamente con el último bote conectado a A4.

Apretar botones:

  1. Coloque los botones en la placa de pruebas. Coloque los dos botones de presión en la placa de pruebas de modo que queden a horcajadas sobre el canal central.
  2. Conecte los lados positivos. En un lado de la placa de pruebas, conecte uno de los pines del botón al riel positivo.
  3. Conecte los lados negativos. Coloque una de las resistencias de 1K en la placa de pruebas de modo que un extremo esté conectado al pin no utilizado del botón pulsador y el otro lado de la resistencia se conecte al riel negativo.
  4. Conecte el botón a Arduino. Ejecute un cable en la fila que conecta el botón al riel negativo al pin D2. Haga lo mismo con el otro botón pero conéctelo a D3.

Paso 3: agregar salidas

Adición de salidas
Adición de salidas

Estamos emitiendo audio desde el pin 9, además de hacer parpadear un LED en el primer paso de cada secuencia. Aquí se explica cómo configurar el hardware para eso.

DIRIGIÓ

  1. Coloque un LED en un espacio vacío en la placa de pruebas.
  2. Conecte la pata negativa (corta) del LED al riel negativo.
  3. Coloque una resistencia limitadora de corriente. Conecte un lado de una resistencia de 330 ohmios a la pata positiva (larga) del LED. Conecte el otro lado de la resistencia al pin D4 del Arduino.

Salida de audio

  1. Coloque la red RC. La señal de salida del Arduino proviene del pin 9, pero la señal puede ser un poco más caliente de lo que pueden manejar algunos altavoces. Para reducirlo a algo más cercano al nivel de línea, agregué una red RC (basada en un diseño de Notes & Volts). Coloque los capacitores de 33nF y 100uF, junto con la resistencia de 2K como se muestra en la imagen / esquema. Asegúrese de que el condensador electrolítico de 100 uF esté conectado con la polaridad correcta (la pata positiva / larga va al pin 9 en el Arduino y la pata negativa / corta conectada al conector).
  2. Conecte el lado negativo del conector de audio a tierra. Las conexiones de los conectores de audio variarán ligeramente según el tipo que utilice, pero por lo general todas funcionan igual. Necesitamos conectar la manga del jack a tierra. Esto a veces se marca con un símbolo menos o se etiqueta como "manga", "anillo" o "gnd". Si no hay etiquetas en su conector de audio, es posible que deba consultar la hoja de datos o simplemente hacer una inspección detallada del conector y ver si puede determinar qué pin está conectado al manguito o al anillo exterior del conector.
  3. Conecte el lado positivo del conector de audio al lado negativo del capacitor de 100uF. Nuestra señal de audio ahora fluye desde el pin 9 del Arduino a través de la red RC y emerge del lado negativo del capacitor de 100uF. Lo conectaremos al lado positivo de nuestro conector de audio. Por lo general, se marca con un símbolo más o se puede etiquetar como "sugerencia". Nuevamente, si no está etiquetado, es posible que deba inspeccionarlo para averiguar qué pin se conectará a la punta del conector. Además, si está utilizando un conector estéreo, puede haber una conexión de punta L y punta R. Dado que estamos emitiendo una señal mono, puede conectarse a cualquiera de las conexiones de punta.

Importante: Si encuentra que el audio es demasiado silencioso, es posible que pueda eliminar la red RC en el paso 1 y conectarse directamente al audio desde el pin 9 del Arduino. Esto debería estar bien si está conectando el audio a algo con un preamplificador como altavoces externos de computadora donde tiene una perilla de volumen, pero no lo recomendaría para cosas como auriculares, audífonos o cableado directo a un altavoz. Si decide eliminar la red RC, le sugiero que baje completamente el volumen de sus altavoces antes de encender el Arduino, y luego aumente gradualmente el volumen para evitar que se apaguen los altavoces.

Una vez que haya configurado todo, verifique que todas las conexiones se vean correctas y coincidan con la imagen y el esquema de arriba

Paso 4: carga del código

Ahora que todo el hardware está configurado, estamos listos para abordar el lado del software:

  1. Inicie el IDE de Arduino. En su computadora, inicie el IDE de Arduino (si no lo tiene, puede descargarlo desde
  2. Descargue la biblioteca Mozzi. La librería Mozzi es lo que nos permite usar nuestro Arduino como sintetizador. Para obtener esta biblioteca en su IDE, vaya a la página de github de Mozzi https://sensorium.github.io/Mozzi/download/. Haga clic en el botón verde "Código" y seleccione Descargar ZIP.
  3. Instale la biblioteca Mozzi desde el archivo zip. En el IDE de Arduino, vaya a Sketch-> Incluir biblioteca-> Agregar biblioteca. ZIP… Navegue hasta el archivo zip que descargó para agregarlo. Ahora debería ver a Mozzi en la sección Sketch-> Incluir biblioteca.
  4. Descarga el código de Mosquito I Arduino. Puede obtener esto en mi sitio de github https://github.com/analogsketchbook/mosquito_one. (Tenga en cuenta que los esquemas también están disponibles allí si los necesita como referencia de cableado.
  5. Conecte el Arduino a la computadora y cargue el código.

Paso 5: jugando

Eso es todo. ¡Debería poder conectar sus parlantes al conector de audio y escuchar el dulce sonido de la síntesis arpegiada de ese diminuto Nano! Si no oye nada al principio, intente centrar las perillas en todos los potenciómetros para asegurarse de obtener valores iniciales decentes.

Esto es lo que hacen los controles:

Ollas:

Rate: Controla la rapidez con la que se reproduce el secuenciador. Al bajarlo, se reproducen notas discretas en secuencia. Al subirlo, las notas se unen para crear formas de onda completamente nuevas.

Legato: El segundo potenciómetro controla el legato o la longitud de la nota. Girarlo más hacia la izquierda produce notas cortas y rígidas, mientras que girarlo hacia la derecha produce notas más largas.

Tono: establece el tono base de la secuencia. El control de tono establece valores MIDI, por lo que aumenta / disminuye el tono en semitonos en lugar de un cambio de tono continuo.

Fase: al girar este mando a la derecha se introduce un efecto de fase sutil. Técnicamente hablando, esto está provocando que los dos osciladores en Mosquito I estén ligeramente desafinados, que es lo que provoca la fase. Sin embargo, no se realiza un seguimiento con el tono, por lo que el efecto de fase es probablemente más notable en las notas de tono más bajas.

Filtro: esta perilla controla la frecuencia de corte de un filtro de paso bajo. Girarlo hacia la izquierda corta las frecuencias altas produciendo un sonido más amortiguado, mientras que girarlo hacia la derecha produce un sonido más brillante.

Botones:

Mosquito tiene más de veinte secuencias diferentes que puede reproducir de forma predeterminada. Los botones le permiten seleccionar qué secuencia se está reproduciendo. Un botón lo mueve hacia arriba en la lista de secuencias y el otro baja en la lista.

Paso 6: personalización

Personalización
Personalización

Agregué un montón de secuencias predeterminadas, en su mayoría escalas diferentes, pero puede personalizar el código con bastante facilidad para cambiar la secuencia de notas que se tocan, agregar nuevas o cambiar el número de notas en una secuencia. A continuación se muestran los detalles de cómo se está haciendo en caso de que desee personalizarlo.

Cambio de notas en la secuencia existente

Las secuencias se almacenan en una matriz de matrices llamadas NOTAS. Cada nota se almacena como un valor de nota MIDI, por lo que si desea cambiar notas en una secuencia en particular, simplemente cambie los números de nota MIDI para esa secuencia. La configuración predeterminada es reproducir 8 pasos por secuencia, por lo que solo puede tener 8 valores MIDI en una secuencia (consulte a continuación si desea tener diferentes longitudes de secuencia).

Una cosa a tener en cuenta, la perilla de tono agrega un desplazamiento de nota a los valores MIDI especificados en la matriz NOTES. Cuando la perilla está centrada, toca las notas MIDI indicadas en la matriz, pero a medida que gira la perilla de tono, agrega o resta un semitono a las notas que se están reproduciendo.

Agregar nuevas secuencias

Puede agregar nuevas secuencias a la matriz NOTES simplemente agregando una nueva matriz de 8 notas al final de la lista. Sin embargo, si hace esto, también deberá cambiar el valor de la variable numSequences para que coincida con el nuevo número de secuencias. Por ejemplo, la matriz NOTES tiene 21 secuencias de forma predeterminada, por lo que la variable numSequences se establece en 21. Si agrega una nueva secuencia, deberá cambiar la variable numSequences a 22.

Puede agregar tantas secuencias nuevas como desee.

Cambiar la longitud de la secuencia

Si desea cambiar la longitud de sus secuencias (si quiere decir una secuencia de 4 o 16 pasos), puede hacerlo, pero la única advertencia es que todas las secuencias deben tener la misma longitud. También deberá configurar la variable numNotes para que coincida con la longitud de sus secuencias.

Otros cambios

Hay una serie de otras personalizaciones que son posibles, como cambiar tipos de formas de onda, configuraciones / valores de filtros, que están más allá del alcance de este tutorial. Descubrir el código Mozzi puede ser un poco difícil al principio, pero he intentado documentar el código tanto como sea posible para mostrar lo que están haciendo las distintas partes del código.

Hay algunas partes principales del código para Mozzi que tienen usos bastante específicos y las he enumerado a continuación para darle una idea de para qué se usan:

  • setup (): si ha programado para Arduinos antes de estar familiarizado con esta función y se usa prácticamente de la misma manera en Mozzi. Lo usamos principalmente para configurar los ajustes predeterminados para osciladores, filtros, etc.
  • updateControl (): aquí es donde la mayor parte del código Mozzi está haciendo su trabajo. Es donde leemos los valores de potenciómetros y botones, mapeamos y transformamos esos valores para alimentar el sintetizador, y donde se realiza la secuenciación.
  • updateAudio (): este es el resultado final de la biblioteca Mozzi. Normalmente, el código aquí se mantiene muy pequeño y esbelto porque Mozzi está utilizando esta función para maximizar todos los ciclos de reloj que puede. Como puede ver en el código del mosquito, puede ser un poco críptico, pero todo lo que hacemos básicamente es combinar / multiplicar nuestras diversas formas de onda y luego cambiarlas para que se ajusten a un rango de números específico. Es mejor mantener esta función muy liviana (no llamadas en serie o pines de lectura) y poner la mayoría de las cosas en la función controlUpdate () en su lugar. La documentación de Mozzi detalla esto más a fondo.

Recomendado: