¿Detecta el punteo de cuerdas en un bajo eléctrico? [cerrado]

¿Alguien tiene alguna idea de cómo puedo detectar el punteo de una cuerda de guitarra con un arduino (posiblemente usando la señal de captación)?

Gracias de antemano ! ;)

¿Ya tiene una camioneta instalada? ¿Se puede modificar la guitarra o la solución debe funcionar de forma remota sin cambios en el instrumento? ¿Qué nivel de conocimiento tienes ahora y qué intentaste ya?

Respuestas (3)

Tendrá que decidir qué es un desplumado, pero detectar el tacto es bastante simple con la detección capacitiva .

Tal vez acoplando eso con la señal de captación para correlacionar la cuerda que se toca con la fuerza con la que se tocó.

Recomendaría usar la señal de la pastilla, similar a lo que sugiere Andy, pero tendrá que ser más complicado para que funcione realmente bien:

  1. Si graba alguna señal de bajo y hace un buen zoom (p. ej., con Audacity), verá las oscilaciones individuales de la cuerda. Medir la señal a través de la función ADC (Analog In en Arduinish) solo notará el valor momentáneo en algún lugar a lo largo de la forma de onda; lo que necesita, sin embargo, es el valor máximo: debe recolectar muchas muestras y usar la "mayor" de ellas (con la mayor desviación del valor del punto medio, por ejemplo, 512). 50-100 de estas muestras, tomadas durante 20 ms, serían suficientes para detectar el valor máximo de la señal. Si su código no hace nada más que monitorear el punteo de graves, puede probar continuamente el ADC hasta que acumule 20 ms de datos.
  2. Solo un umbral fijo, por ejemplo, +/- 100 lo haría depender de su amplificación y de qué tan fuerte toque; ¡Especialmente si toca en voz baja durante alguna parte de la canción, es posible que no registre nada en absoluto! Una solución mucho mejor es usar algún algoritmo de detección de latidos. He usado este anteriormente y funciona bien, pero, por supuesto, puede adaptarlo para que sea más simple que esto en su caso.
  3. Pulsar una sola cuerda da como resultado una señal, cuya amplitud se desvanece en forma de 1/x con el tiempo. Así que cualquier algoritmo de detección de latidos será suficiente para esto. Sin embargo, algunos acordes (los bajistas no suelen emplear dos cuerdas al mismo tiempo, pero bueno, puede suceder) serán diferentes: debido a los golpes , la forma de la onda, a gran escala, será cíclicamente más fuerte y más tranquilo Esto podría engañar a su detección de latidos, pero creo que ajustar los parámetros evitaría esto; necesita experimentar con valores para señales complejas como esta.

Bueno, tienes un bajo eléctrico, por lo que tiene sentido usar la pastilla. A continuación, necesitará un amplificador de búfer (probablemente con un poco de ganancia). Y luego puede tomar la salida del amplificador de búfer (que también podría actuar como un cambio de nivel de CC a 2,5 V) y conectarlo a una entrada ADC de su arduino. Sin cuerdas golpeadas, pulsadas, tocadas, rasgueadas o acariciadas de otra manera, debería obtener una señal de aproximadamente la mitad de la escala y, si la memoria no me falla, debería ser un valor digital de aproximadamente 512. Habrá un poco de ruido y ganó. No estará justo en el centro de la 512, pero estará cerca.

Para detectar si la cadena ha sido manipulada, debe tener un poco de código que busque un valor de ADC superior a +/- 100 desde la posición "neutral" de 512.

El amplificador de búfer se puede hacer con una configuración de amplificador operacional no inversor con un potenciómetro como resistencia de retroalimentación (altera la ganancia). Debe acoplar capacitivamente la pastilla de graves a la entrada no inversora y formar un divisor de potencial con resistencias de 220 k ohmios para que la entrada al amplificador operacional también se centre alrededor de 2,5 V.

La salida del amplificador operacional (elija un tipo de riel a riel para una oscilación máxima de la señal) se conecta directamente a una entrada de ADC: asegúrese de que su amplificador operacional esté alimentado con 0 V y 5 V para evitar que entren corrientes excesivas en la entrada de ADC.

No sé qué tan rápido puede muestrear el Arduino o por cuánto tiempo, pero esta es una instantánea típica de (yo) tocando el bajo: -

ingrese la descripción de la imagen aquí

Todas estas son notas individuales en una pieza en la que estoy trabajando, pero tenga en cuenta (LOL) cómo la forma de onda es bastante irregular en algunos lugares. Esto se tocó con los dedos, pero si usa una púa, prepárese para grandes picos iniciales que se convierten rápidamente en lo que ve arriba. Por cierto, las notas eran C, subiendo a F y luego bajando un tono a Eb. Buena suerte.

Puede evitar la necesidad de muestrear rápidamente mediante la rectificación y el filtrado de paso bajo para realizar una detección de envolvente simple.
@ScottSeidman, probablemente tengas razón, pero creo que el OP debe reconocer esto, al menos tiene la mitad de posibilidades de obtener algo del bajo. La frecuencia reproducible más alta es de aproximadamente 300 Hz y eso tendrá armónicos dignos de alias.