Timbre

¿Qué es lo que escuchamos cuando oímos un sonido, por ejemplo, la nota en una guitarra acústica?

Parte Teórica

Los sonidos que escuchamos son ondas complejas, es decir que está formada por ondas simultáneas. No importa que tan compleja sea, o que tan largo sea su período, siempre se puede reducir en ondas simples.

En esta descomposición se pueden encontrar las siguientes frecuencias.

Frecuencia fundamental:  la frecuencia fundamental es el componente más bajo de la onda periódica.

Armónicos:  Un armónico es un componente de una onda periódica que es un múltiple entero de la frecuencia fundamental. Por ejemplo, la frecuencia que es dos veces la frecuencia fundamental se llama segundo armónico. Para el cálculo de la frecuencia de los armónicos se utiliza la siguiente fórmula.

\[ F_{armónico} = F_{fundamental} * n \] siendo n un número entero.

La relación entre las diferentes frecuencias, diferentes amplitudes y diferentes fases hace que la onda resultante sea propia de lo que estemos escuchando.

En otra palabra, el timbre: calidad de un sonido relacionado con su estructura armónica.

Gracias a la transformada de Fourier podemos descomponer esta onda compleja en onda puras.

Josehp Fourier

Jean-Baptiste Joseph Fourier (francés: /ʒozɛf fuʁje/; Auxerre, Francia, 21 de marzo de 1768-París, 16 de mayo de 1830) fue un matemático y físico francés conocido por sus trabajos sobre la descomposición de funciones periódicas en series trigonométricas convergentes llamadas Series de Fourier, método con el cual consiguió resolver la ecuación del calor. La transformada de Fourier recibe su nombre en su honor. Fue el primero en dar una explicación científica al efecto invernadero en un tratado.

¿Qué es entonces la transformada de Fourier? Según Wikipedia: es una transformación matemática empleada para transformar señales entre el dominio del tiempo (o espacial) y el dominio de la frecuencia, que tiene muchas aplicaciones en la física y la ingeniería. Es reversible, siendo capaz de transformarse en cualquiera de los dominios al otro. El propio término se refiere tanto a la operación de transformación como a la función que produce.

En el caso de una función periódica en el tiempo (por ejemplo, un sonido musical continuo, pero no necesariamente sinusoidal), la transformada de Fourier se puede simplificar para el cálculo de un conjunto discreto de amplitudes complejas, llamado coeficientes de las series de Fourier. Ellos representan el espectro de frecuencia de la señal del dominio-tiempo original.

De la misma forma en que la transformada de Fourier nos descompone la señal entre el dominio del tiempo y el dominio de la frecuencia, la transformada de Fourier inversa hace la operación inversa (del dominio de frecuencia al dominio del tiempo)

Entonces la relación entre la frecuencia fundamental y sus armónicos nos da el timbre característico del instrumento.

Para quien le guste las matemáticas, estas serían las formulas:

Transformada de Fourier

\[F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-it\omega} dt \]

Transformada de Fourier inversa

\[F(t) = \int_{-\infty}^{\infty} f(\omega) e^{it\omega} {d\omega} \]

Parte práctica

Con la ayuda de mi hermano Mariano (www.instagram.com/wettsma) le pedí que grabara la quinta cuerda al aire de una guitarra criolla y una eléctrica. Con esto se podrán ver las diferencias en la composición de una misma nota, pero en diferentes instrumentos.

La quinta cuerda al aire es la nota LA (110Hz) –como dije arriba no es que ponen un oscilador a 110Hz y va a sonar ese LA, depende del instrumento y de los armónicos como vamos a ver.

También le pedí que grabar dos armónicos naturales (en el traste 12 y en el 5).

La idea es pasarlo por la transformada de Fourier y ver el espectro de esa nota.

Como siempre, utilicé Python y Jupyter Notebook para el código y generar los gráficos que incluyo en el post.

Para generar los gráficos utilicé el código que detallo abajo. Las librerías que use fueron: matplotlib.pyplot, scipy.wavefile y scipy.fftpack

import matplotlib.pyplot as plt
from scipy.io import wavfile
from scipy.fftpack import fft,fftfreq

direccion = "dirección del archivo de audio"

samplerate, data = wavfile.read(direccion)

datafft = fft(data)

fftabs = abs(datafft)

samples = data.shape[0]
freqs = fftfreq(samples,1/samplerate)

fig, ax = plt.subplots(figsize=(15,7))
plt.xlim( [10, samplerate/2] )
plt.xscale( 'log' )
plt.xticks([10, 100, 1000, 10000],["10", "100", "1kHz", "10kHz"])
plt.yticks([])
plt.grid( True )
plt.xlabel( 'Frecuencia (Hz)' )
plt.plot(freqs[:int(freqs.size/2)],fftabs[:int(freqs.size/2)], color="r")

Para generar la onda compleja a partir de la suma de ondas simple, utilicé el siguiente código.

import numpy as np
from scipy.io import wavfile

sampleRate = 44100
frequency = 110
length = 5

t = np.linspace(0, length, sampleRate * length)
f = np.sin(frequency * 2 * np.pi * t)
a1 = np.sin((frequency*2) * 2 * np.pi * t1)
a2 = np.sin((frequency*3) * 2 * np.pi * t)
a3 = np.sin((frequency*4) * 2 * np.pi * t)
a4 = np.sin((frequency*5) * 2 * np.pi * t)
a5 = np.sin((frequency*6) * 2 * np.pi * t)
a6 = np.sin((frequency*7) * 2 * np.pi * t)
y = f + a1 + a2 + a3 + a4 + a5 + a6

wavfile.write('La Artificial.wav', sampleRate, y)

Empecemos: el primer audio que se van a escuchar es del LA de la guitarra criolla.

LA (110Hz) guitarra criolla

Al pasar el audio por la transformada de Fourier:

LA (110Hz) guitarra criolla.
Nota: El primer pico de 50Hz no es parte de la nota. Se trata de un ruido en la línea eléctrica y quedo grabado. Por lo que para los ejemplos mostrados en este post hay que omitirlo. Únicamente aparecen en las grabaciones de la guitarra criolla

El primer pico (lean la leyenda del gráfico anterior) corresponde a la frecuencia fundamente. Los demás picos son los armónicos (interesante el tercer armónico)

Seguimos: la nota LA en la guitarra eléctrica

LA (110Hz) guitarra eléctrica
FFT de LA (110Hz) de la guitarra eléctrica

Claramente se ve la diferencia. Si comparamos ambas guitarras el cuerpo de la guitarra eléctrica no «genera» tanto armónicos a diferencia de la caja de resonancia de la guitarra criolla.

Para comparar con otro instrumento, este es el LA en un piano de cola

LA (110Hz) piano de cola
FFT del LA (110Hz) de un piano de cola

Muchos armónicos se pueden relacionar con un sonido mas «lindo».

Como contrapartida generé un sonido complejo utilizando el segundo código que al principio del post copié. Es lo que se llama transformada de Fourier inversa.

El audio generado:

LA (110Hz) «artificial»

Y al pasarlo por la FFT se generó este gráfico:

LA (110Hz) artificial

Todas las onda con el mismo nivel. Por eso suena como suena, tiene su propio timbre.

Armónicos natural (mas gráficos)

Nuevamente con la ayuda de Mariano le pedi que grabara los armónicos naturales tanto de la guitarra criolla, como la de la eléctrica. Fueron los del traste 12 y 5. Se generaron estos audios y gráficos:

Armónico natural traste 12 guitarra criolla
Armónico natural traste 12 guitarra criolla
Armónico natural traste 12 guitarra eléctrica
Armónico natural traste 12 guitarra eléctrica

¿Que pasó aca? Al tocar de esta forma, escondemos la frecuencia natural y solo se escuchan los armónicos n° 2, 3 y 4 (guitarra criolla) y los armónicos n° 2 y 3 (guitarra eléctrica).

Veamos que ocurre con el armónico natural tocado en el traste 5:

Armónico natural traste 5 guitarra criolla
Armónico natural traste 5 guitarra criolla
Armónico natural traste 5 guitarra eléctrica
Armónico natural traste 5 guitarra eléctrica

Lo mismo que en el anterior armónico natural, pero en este caso tiene el tercer armónico es el que sobresale auditivamente.

Espero que con estos gráficos se haya podido entender lo que es el timbre y porque cada instrumento suena como suena.

Hasta el próximo post!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.