Está en la página 1de 2

Sintetizador de Armnicos Generados por Instrumentos Musicales de Cuerda

Universidad Tecnolgica de Panam miltonrojas@ieee.org

Milton Rojas

Resumen- Para el modelado del sonido generado por

instrumentos de cuerda pulsada se tom el algoritmo de Karplus-Strong, pues es efectivo para simular el sonido de la vibracin de las cuerdas. Al implementar el algoritmo se obtendr un filtro, este filtro se desarrolla en el entorno de programacin Matlab. A partir de una programacin similar se puede implementar un sistema capaz de generar sonidos de este tipo en tiempo real.

separacin en la escala musical entre 2 notas iguales se llama octava. Segn (1), la nota buscada se obtiene al multiplicar la frecuencia base por una 2 elevado al nmero de octavas que separan las 2 notas, su unidad es hertzio (Hz). Nota = Nota fundamental * 2 #octavas (1) Teniendo esta frmula, se obtienen las octavas superiores a la frecuencia fundamental. Como ejemplo, si se tiene La1=110Hz, La2=220Hz, La3=440Hz,, ya que La1 es la frecuencia fundamental tendr una mayor magnitud, luego La2 y as para las dems componentes. En la figura 1, se muestra el espectro obtenido de al grabar una guitarra acstica.

Palabras Claves- Audio, Karplus-Strong, Procesamiento


de audio, Sntesis, Cuerdas.

1. Introduccin
El estudio de los fenmenos acsticos involucra el anlisis diversas caractersticas que posee el sonido; se busca darle una identidad a cada sonido. Estas caractersticas resultan en sonidos irrelevantes a sonidos ms especficos que llegan ser tomados en cuenta en la msica o en la comunicacin. Las principales caractersticas del sonido son las frecuencias y sus amplitudes, en combinacin se logra obtener la identidad del sonido. La identidad del sonido se manifiesta en la densidad espectral del sonido. Esto se refiere a las frecuencias predominantes debido a su mayor amplitud con respecto a las dems frecuencias. El objetivo de este artculo es mostrar como con la ayuda de un entorno de desarrollo virtual se puede controlar las frecuencias y amplitudes propias del sonido de la guitarra para obtener una representacin semejante a la obtenida en la realidad. Puede no quedar simplemente en esto, con estudios de este tipo se consigue adems modelar los sistemas reales, lo que permite mejorar propiedades especificas virtualmente para conocer de qu modo se puede llevar a aumentar el desempeo del sistema fsico. El modelado del sonido de las cuerdas de la guitarra se logra a travs del algoritmo de Karplus-Strong que se encarga de retroalimentar un filtro con las frecuencias armnicas de la nota musical fundamental.

Figura 1. Espectro de la nota La en la guitarra. Con base en lo anterior, se necesitar un paso de las bajas frecuencias y una atenuacin de las altas frecuencias, involucrando un filtro pasa bajos al sistema. Sin embargo, la mejor opcin no es un pasa bajos sencillo, pues permitira el paso de frecuencias otras frecuencias. La alternativa es obtener un filtro para cada componente, es decir, varios filtros pasa banda o tambin varios selectores.

3. Modelado del Sistema Generador de Armnicos

2. Seal a Generar

Para implementar un sistema de sntesis de sonido se requiere un algoritmo que entregue todos los componentes que la seal posee. Para este caso en particular se tiene que generar el sonido de una cuerda de guitarra. Este sonido contiene la frecuencia fundamental de la nota y adems mltiples armnicos de la frecuencia que se separan por octavas. Se le llama octava ya que la

Teniendo un horizonte de lo que se necesita generar se tiene que este modelo se puede sintetizar con buenos resultados utilizando el algoritmo de Karplus-Strong. En l se plantea el uso de una seal de ruido blanco de longitud de L muestras que se enva a la salida e igualmente se retroalimenta en un retraso para pasar un filtro pasa bajos. En la figura 2, se observa el diagrama de bloques del algoritmo.

Con base en este algoritmo se obtiene una respuesta general para representar un sistema esperado.

Anexos

Cdigo de Matlab

fs=44.1e3; A=110; st=-5; Fn=440*2^(st/12); f=linspace(1/fs,1000,2^12); x=zeros(fs*4,1); delay=round(fs/Fn); b=firls(42,[0 1/delay 2/delay 1], [0 0 1 1]); a=[1 zeros(1,delay) -0.5 -0.5]; Hd=dfilt.df1(b,a); [H,W]=freqz(Hd,f,fs); figure(1) plot(20*log10(abs(H)),'k'); title('Armonicos de la Nota ejecutada'); ylabel('magnitud de la nota'); xlabel('frecuencias de la nota'); Hd.PersistentMemory = true; Hd.States.Numerator = rand(42,1); Hd.States.Denominator = rand(delay+2,1); nota=filter(Hd,x); nota=nota-mean(nota); nota=nota/max(abs(nota)); hplay=audioplayer(nota,fs); play(hplay); figure(2) plot(nota)

Figura 2. Diagrama del Algoritmo La programacin en el entorno de Matlab y el toolbox de procesamiento de seales permite utilizar la funcin dfilt que implementa un filtro IIR, de tipo directo. DFILT tiene argumentos que permiten representar el modelo del algoritmo de KarplusStrong. Al utilizar esta funcin se estar modelando un filtro que tendr la forma presentada en la figura 3.

Figura 3. Filtro Digital Implementado Teniendo preparado el modelo del filtro se establecen los valores del filtro. En este punto es importante tener presente que la ganancia del filtro debe ser menor que 1 para mantener la estabilidad. 4. Respuesta del Sistema
Una vez diseado el filtro se procede a evaluar su respuesta en frecuencia. En la figura 4 se observa la respuesta en frecuencia del filtro.

Referencias
[1] G. Bhattacharya (2012) McGill. [Online]. Disponible en: http://www.music.mcgill.ca/~gautam/gau618fp.html [2] K. Karplus and A. Strong, "Digital Synthesis of Plucked-String and Drum Tibres," Computer Music Journal, Vol. 7, No. 2, Summer 1983, pp. 43-55

Figura 4. Respuesta en Frecuencia del Filtro