Tabla de contenido:

Arduino Soundlab: 3 pasos
Arduino Soundlab: 3 pasos

Video: Arduino Soundlab: 3 pasos

Video: Arduino Soundlab: 3 pasos
Video: LEARN HOW TO SOLVE 3X3 RUBIK'S CUBE IN LESS THAN 1 MINUTE | training day 22 2024, Octubre
Anonim
Image
Image
Construcción
Construcción

Es increíble la amplia gama de sonidos asombrosos que se pueden generar con la técnica de síntesis de FM, incluso usando un Arduino simple. En un instructivo anterior, esto se ilustró con un sintetizador que tenía 12 sonidos preprogramados, pero un espectador sugirió que sería mucho más genial tener un control total de los parámetros de sonido con potenciómetros, ¡y así es!

En este laboratorio de sonido, los tonos se pueden controlar mediante 8 parámetros: 4 para la envolvente ADSR de la sonoridad y 4 para la modulación de frecuencia que determina la textura.

La adición de los 8 potenciómetros no fue a costa del número de teclas: tres juegos de 8 teclas se leen unos microsegundos uno tras otro, para un total de 24 teclas, correspondientes a dos octavas completas. De hecho, dos pines de Arduino no se utilizan y sería posible expandirlos a 40 teclas.

Mire el video sobre cómo hacer sonidos salvajes, aquí hay una breve descripción:

* A = ataque: tiempo para que un tono alcance su volumen máximo (rango 8ms-2s)

* D = decaimiento: tiempo para que un tono baje a su nivel constante de sonoridad (rango 8ms-2s)

* S = sostenido: nivel constante de sonoridad (rango 0-100%)

* R = liberación: tiempo para que se apague un tono (rango 8ms-2s)

* f_m: relación entre la frecuencia de modulación y la frecuencia de la portadora (rango 0.06-16) los valores por debajo de 1 dan como resultado matices, valores más altos en matices

* beta1: amplitud de la modulación de FM al comienzo de la nota (rango 0.06-16) valores pequeños dan como resultado variaciones menores de la textura del sonido. valores grandes dan como resultado sonidos locos

* beta2: amplitud de la modulación de FM al final de la nota (rango 0.06-16) Dale a beta2 un valor diferente que beta1 para hacer que la textura del sonido evolucione en el tiempo.

* tau: velocidad a la que la amplitud de FM evoluciona de beta1 a beta 2 (rango 8ms-2s) Los valores pequeños dan un golpe corto al comienzo de una nota, los valores grandes una evolución larga y lenta.

Paso 1: construcción

Construcción
Construcción
Construcción
Construcción
Construcción
Construcción

Claramente, esto sigue siendo un prototipo, espero que algún día yo o alguien más construyamos esto grande, fuerte y hermoso con teclas grandes y diales reales para los potenciómetros en un recinto impresionante….

Componentes necesarios:

1 Arduino Nano (no funcionará con el Uno, que tiene solo 6 entradas analógicas)

24 pulsadores

8 potenciómetros, en el rango de 1kOhm - 100kOhm

1 potenciómetro de 10kOhm para control de volumen

1 condensador - 10microfaradios electrolítico

1 conector para auriculares de 3,5 mm

1 chip amplificador de audio LM386

Condensador electrolítico de 2 1000microfaradios

1 condensador de cerámica de 1microfaradio

1 microinterruptor

1 altavoz de 8 ohmios y 2 vatios

1 tablero prototipo de 10x15 cm

Asegúrese de comprender los esquemas adjuntos. Los 24 botones se conectan en 3 grupos de 8, se leen en D0-D7 y se activan en D8, D10 y D11. Las ollas tienen + 5V y masa en las tomas finales y las tomas centrales se alimentan a las entradas analógicas A0-A7. D9 tiene la salida de audio y se acopla a CA a un potenciómetro de 10kOhm para controlar el volumen. El sonido puede escucharse directamente con auriculares o amplificarse con un chip amplificador de audio LM386.

Todo cabe en una placa de prototipo de 10x15 cm, pero los botones están demasiado cerca para tocar bien, por lo que sería mejor construir un teclado más grande.

El circuito se puede alimentar a través de la conexión USB en el Arduino Nano, o con una fuente de alimentación externa de 5V. Una caja de batería 2xAA seguida de un convertidor elevador es una solución de alimentación perfecta.

Paso 2: software

Sube el boceto adjunto al Arduino Nano y todo debería funcionar.

El código es sencillo y fácil de modificar, no hay código de máquina ni interrupciones, pero hay un par de interacciones directas con los registros, para interactuar con el temporizador, para acelerar la lectura del botón y para controlar el comportamiento del ADC. para la lectura del potenciómetro

Paso 3: mejoras futuras

¡Las ideas de la comunidad siempre son bienvenidas!

Lo que más me molestan son los botones: son pequeños y hacen clic con fuerza cuando se presionan. Sería realmente bueno tener botones más grandes que sean más cómodos de presionar. Además, los botones sensibles a la fuerza o la velocidad permitirían controlar el volumen de las notas. ¿Quizás los botones pulsadores de 3 vías o los botones sensibles al tacto podrían funcionar?

Otras cosas buenas serían almacenar configuraciones de sonido en EEPROM. Almacenar melodías cortas en EEPROM también permitiría hacer música mucho más interesante. Finalmente, se podrían generar sonidos más complejos, si alguien sabe cómo generar sonidos de percusión de una manera computacionalmente eficiente, sería increíble …

Recomendado: