Revista Tecnología

Cómo generar ruido de diferentes colores en GNU/Linux

Publicado el 15 enero 2018 por Gaspar Fernández Moreno @gaspar_fm

Cómo generar ruido diferentes colores GNU/LinuxCómo generar ruido de diferentes colores en GNU/Linux
Los científicos siempre inventan formas curiosas de clasificar los fenómenos (físicos en este caso). Y es que, donde los seres humanos normales escuchan un sonido sin sentido, muchos científicos ven estadística. ¿Y qué tiene que ver eso con los colores?

Explicación física muy rápida de 0 a 100 en 400 palabras

No quiero extenderme mucho, y seguro que en mi explicación faltarán cosas y algunos conceptos serán inexactos. Más que nada porque en Wikipedia podéis encontrar muchísima información sobre el tema. Y si sabes lo que es una onda, su frecuencia, un espectro, un ruido y un color, te puedes saltar este apartado rápidamente.

Básicamente el sonido es una onda. Estas ondas son perturbaciones físicas que se propagan en una dirección determinada. Dichas perturbaciones pueden ser muy complejas, pero por sus características podemos descomponerlas en ondas simples. Una onda simple puede ser un tono, es una oscilación a un ritmo constante, subiendo y bajando, suavemente. Ésta tiene una frecuencia determinada; dicha frecuencia es el número de veces por segundo que la perturbación tiene una amplitud determinada.

Podemos observar cómo la misma nota musical producida por varios instrumentos diferentes (una característica de una nota musical es precisamente la frecuencia principal de la onda que produce el instrumento) tiene un sonido diferente y es que las propiedades del instrumento hacen que no sólo se produzca la frecuencia básica de la nota, sino muchas otras frecuencias que le dan cuerpo a dicho sonido y lo hacen más complejo.

Pero volviendo al tema del post, ¿qué es el ruido? El ruido, en lo que se refiere al sonido puede ser un sonido molesto, aunque no siempre será molesto. Lo podemos considerar como una señal sin sentido, que no está transmitiendo información o que interfiere con información de otra fuente de audio. Por ejemplo, cuando intentamos escuchar una conversación y de repente un vecino se pone a hacer agujeros con un taladro, eso es ruido. Pero los físicos, no tardaron mucho en darse cuenta de que hay muchos tipos de ruido. Vamos, si lo que queremos hacer con un ruido es interferir y dificultar la escucha de otros sonidos, lo mejor es que el ruido sea un sonido compuesto por la mayor cantidad de frecuencias audibles. Y dado que el oído humano se considera entre los 20Hz y los 20KHz, digo se considera, porque pocos son capaces de escuchar dichas frecuencias, las frecuencias del espectro sonoro estarán comprendidas entre esos dos valores. En este caso, un sonido inferior a los 20Hz será un infrasonido y si es superior a los 20KHz será un ultrasonido.

Cómo generar ruido diferentes colores GNU/Linux
Cómo generar ruido de diferentes colores en GNU/Linux

Por otro lado, la luz tiene propiedades de onda electromagnética, con su frecuencia, y amplitud, y claro, existe lo llamado luz visible. Dicho espectro comprende el rango de frecuencias que son visibles por el ojo humano, que va desde los 3,84×1014Hz (384THz) a los 7,89×10^14 Hz (789THz), sí, ¡teraherzios! Aunque para definir la luz se suele utilizar más la longitud de onda: desde 7,8×10^−7 m a 3,8×10^-7 m. Las frecuencias más bajas corresponden con el rojo y las más altas con el violeta, por eso, frecuencias inferiores en dicho rango serán infrarrojos y frecuencias superiores serán ultravioletas. Y los valores de frecuencia intermedios darán lugar a todos los colores que podemos ver. Incluso se pueden mezclar, por ejemplo, el blanco es una onda compleja que vibra en varias frecuencias del espectro visible.

Mezclando las cosas

Después de una explicación muy rápida e inexacta. Tenemos que saber que una de las formas de caracterizar un sonido es su gráfica de densidad espectral de potencia (DEP o PSD Power Spectral Density). Es decir, representamos gráficamente la potencia con la que suena cada frecuencia. Y en muchos casos, si hiciéramos lo mismo con la luz, te saldría el color al que hace referencia.

El post se centrará en la generación de estos sonidos desde GNU/Linux, y utilizando software libre. Muchas veces los algoritmos pueden ser muy complicados, aunque estos sonidos podemos generarlos en tiempo real sin problema.

Usos del ruido

El ruido, se suele utilizar para calibrar aparatos de audio, sintetizar voz o instrumentos, generar números aleatorios, camuflar sonidos, relajación o una ayuda para conciliar el sueño, incluso, en mi caso personal, enmascarar tinnitus o acúfenos. Este fenómeno, hace que muchos escuchemos sonidos que en realidad no están y que se producen en alguna parte de nuestro circuito acústico. Puede deberse a un taponamiento de conductos, o tensión muscular, otros problemas del oído medio, problemas en la cóclea (también llamada caracol) o incluso en la interpretación que hace nuestro cerebro de los datos recibidos en el oído. El resultado es escuchar golpeteos, grillos, tonos, motores, etc que en realidad no están sonando y nadie más escucha, en algunos momentos del día (o durante las 24h).

Aunque existen medicamentos, en muchos casos no funcionan, porque en realidad es muy difícil detectar qué parte del circuito falla y por qué. Por lo que hay tratamientos de fisioterapia, se usan relajantes musculares, vitaminas y gran variedad de fármacos de diferente índole. Además de esto existen terapias de habituación, terapias sonoras y muchas más cosas. Y con respecto a las terapias sonoras una de las cosas que merece la pena probar es escuchar diferentes tipos de ruido. El objetivo de este ruido por un lado es tapar o enmascarar el sonido que se escucha y por otro lado, alejar la atención de él.

La clave en muchos casos es no prestarle atención, por lo que, incluso escuchando diferentes tipos de ruido puede que sigamos escuchando el acúfeno si nos empeñamos. Pero algunos tipos de ruido tienen mejor resultado que otros, así que es interesante darles una oportunidad, respirar hondo y aguantar aunque sea una hora escuchándolo mientras estás realizando cualquier tarea.

Listos para escuchar

Aunque en Internet encontramos multitud de páginas web con sonidos para descargar. Muchas veces necesitamos retocar un poco la onda del ruido, o queremos generar elel ruido. Necesitamos un archivo con el ruido con una longitud específica, o incluso si no queremos que nuestro sistema consuma demasiados recursos. Sé que muchos, cuando necesitan este tipo de sonidos, acuden a Youtube o descargan archivos con varias horas de duración. Aunque a veces no es suficiente, necesitamos un sonido con una longitud indefinida o, como dije antes, que nuestro sistema consuma pocos recursos (a estas alturas descomprimir un mp3 no es muy pesado, y reproducir un vídeo tampoco, ¡¡pero no vamos a desaprovechar CPU a lo tonto!!).

Vamos a ver desde aquí diferentes tipos de ruido, a los que llamaremos por su color:

Ruido Blanco

O White Noise. Y con él empezó todo esto de los colores del ruido. El ruido es un sonido cuya amplitud varia con el tiempo de forma aleatoria, pero el ruido blanco intenta distribuir la potencia entre todas las frecuencias del espectro audible. Es decir, el ruido blanco tiene señal en todas las frecuencias del espectro y todas tendrán la misma potencia.
El ruido blanco puede sonar como una lluvia fuerte. Aquí tenemos un ejemplo:

Para generarlo, podemos hacerlo con muchísimos programas. Generar ruido blanco es algo muy sencillo algorítmicamente hablando, sólo tenemos que generar números aleatorios. Podemos utilizar por ejemplo:

El ruido rosa se caracteriza en que su nivel sonoro tiene una densidad espectral inversamente proporcional a la frecuencia. Su energía decrece 3dB por octava. Como en cada octava el rango de frecuencias es el doble, la energía decrece a la mitad. Así, si miramos la energía de las componentes de frecuencia por octavas, veremos todas las octavas con la misma energía.

Se usa mucho para calibrar fuentes de audio o ver características acústicas arquitectónicas.
Podemos escuchar este ejemplo:

El ruido rosa se parece mucho al blanco, y puede sonar como cuando soplas a un micrófono con fuerza (de forma constante, con pulmones ilimitados) o como un viento fuerte.

Y por supuesto, al ser fácil de generar también, podemos utilizar algunas herramientas como estas:

Tiene baja potencia en bajas frecuencias y su potencia va creciendo 3dB cada octava, por lo que crece de forma proporcional a la frecuencia. El sonido que se percibe es como el de una catarata, aunque hay personas que perciben el mismo sonido que una máquina de cortar césped. Aquí vemos un ejemplo:

Para generarlo, podemos utilizar gstreamer de la siguiente manera:
gstreamer:

O podemos generar un archivo mp3 con el sonido:

Ruido violeta o púrpura

Su potencia se incrementa 6dB por octava. Tiene baja potencia para frecuencias graves y más alta en los agudos. Yo lo uso principalmente para aliviar mi acúfeno y me va mejor que cualquier otro tipo de ruido. Sigue la misma lógica que el azul, pero tiene una pendiente más pronunciada en su gráfica.
Podemos utilizar como ejemplo este:

Y, por supuesto, para generarlo podemos utilizar gstreamer:

O podemos generar un archivo mp3 con el sonido:

Vemos que los diferentes colores de ruido se van generando aplicando una función matemática a la señal obteniendo diferentes gráficas de densidad espectral. El ruido gris es un caso especial en el que se aplican las características psicoacústicas humanas a dicho ruido. Eso quiere decir que los humanos no escuchamos con la misma intensidad todas las frecuencias del espectro. Las que son muy agudas o muy graves, aunque las escuchamos, pero no lo hacemos con la misma intensidad que las frecuencias medias. Es más, dependiendo del individuo, algunas personas escucharán mejor unas frecuencias que otras. Así que para generar el ruido gris, debemos aplicar una corrección para que la sensación, en teoría, sea que escuchamos todas las frecuencias a la misma intensidad. Para generar este tipo de ruido, podríamos generar un ruido blanco y ecualizar la señal (por ejemplo, con Audacity).

El ruido gris puede compararse con el viento moviendo las hojas de un árbol.

Ruido marrón (o browniano)

Si atendemos al color que se vería si lo llevamos al terreno de la imagen, debería llamarse ruido rojo. Pero como lo descubrió Robert Brown y también es un color, se suele llamar ruido marrón / brown o brownian noise. Además, el color rojo se parece en cierto modo al marrón, y como hay más componentes en el espectro no sería un rojo puro... bueno, lo podemos mirar desde diferentes perspectivas. En éste, al contrario que el ruido violeta, su energía decrece 6dB por octava, por lo que las bajas frecuencias tomarán especial importancia.

Puede ser comparado con el agua del mar. De hecho, se pueden aplicar ciertos efectos que simulan el vaivén de las olas del mar. También hay quienes lo comparan con el ruido de la multitud.

Podemos ver un ejemplo aquí:

También podemos generarlo utilizando gstreamer o sox (en Audacity, por ejemplo también se puede)

Como extra, indicaré un script muy curioso que ví, y que combina ruido marrón con ruido rosa y aplica una función seno para que sí que parezcan las olas del mar:

Más colores del espectro

Podemos pensar a partir de aquí en otros colores como el negro, que puede ser el silencio o que sólo tiene energía en determinadas frecuencias, o también puede ser el que ocurre en ultrasonidos (¿ultravioleta?). En fin, hay mucha literatura sobre esto y poco convenio. El ruido verde suele tener más energía en frecuencias medias, aunque hay autores que lo centran en las frecuencias propias de la voz humana (200Hz-3KHz o tal vez un poco más). Otros centran la máxima energía del ruido verde en torno a 500Hz. Para gustos los colores.
Aunque a partir de aquí, podemos teñir el ruido gracias a un ecualizador. También podemos experimentar con esta página web: MyNoise White Noise Generator.

Foto del prisma: D-Kuru

También podría interesarte...


Volver a la Portada de Logo Paperblog