0% encontró este documento útil (0 votos)
27 vistas5 páginas

PR Actica I.: Codigo: 20181005127 Jscalimang@udistrital - Edu.co Codigo: 20181005124 Juacgarciag@udistrital - Edu.co

Este documento describe la implementación de una guitarra virtual en MATLAB utilizando el algoritmo de Karplus/Strong para sintetizar sonidos de cuerdas pulsadas y crear patrones rítmicos de batería. Se abordan conceptos de teoría musical como acordes, progresiones y melodías, integrándolos en una mezcla sonora coherente. Aunque el modelo logra simular cuerdas, se observa que el sonido resultante no se asemeja completamente a una guitarra real, sugiriendo la necesidad de mejoras adicionales.

Cargado por

Tatan Caliman
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas5 páginas

PR Actica I.: Codigo: 20181005127 Jscalimang@udistrital - Edu.co Codigo: 20181005124 Juacgarciag@udistrital - Edu.co

Este documento describe la implementación de una guitarra virtual en MATLAB utilizando el algoritmo de Karplus/Strong para sintetizar sonidos de cuerdas pulsadas y crear patrones rítmicos de batería. Se abordan conceptos de teoría musical como acordes, progresiones y melodías, integrándolos en una mezcla sonora coherente. Aunque el modelo logra simular cuerdas, se observa que el sonido resultante no se asemeja completamente a una guitarra real, sugiriendo la necesidad de mejoras adicionales.

Cargado por

Tatan Caliman
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PRACTICA DSP 1

Práctica I.
Juan sebastian Caliman Garcia
Codigo: 20181005127
[email protected]
Juan Camilo Garcia Gonzalez
Codigo: 20181005124
[email protected]

I. RESUMEN • Aplicar el algoritmo de Karplus/Strong para sintetizar


En este laboratorio se implementa una guitarra virtual sonidos de cuerdas pulsadas.
utilizando el algoritmo de Karplus/Strong en el entorno de • Definir acordes y progresiones armónicas utilizando es-
MATLAB. La práctica explora cómo sintetizar sonidos de tructuras de datos eficientes.
cuerdas, secuenciar melodı́as y acompañarlas con patrones • Diseñar y sincronizar patrones rı́tmicos que emulen una
rı́tmicos de baterı́a, emulando una banda de rock básica. baterı́a básica.
Se definen acordes, progresiones y riffs, y se integran • Integrar los elementos musicales (melodı́a, armonı́a y
utilizando estructuras informáticas eficientes. El enfoque ritmo) en una mezcla sonora coherente.
principal radica en transformar conceptos musicales en • Visualizar gráficamente los componentes de la señal
señales digitales, logrando una ejecución realista a través de generada (acordes, melodı́a, ritmo).
la manipulación de frecuencias, duraciones y envolventes.
Esta actividad fortalece la comprensión del modelado de IV. M ARCO TE ÓRICO
señales sonoras y la implementación de sistemas dinámicos A. Sı́ntesis fı́sica y el algoritmo de Karplus/Strong
mediante codificación.
La sı́ntesis fı́sica busca modelar digitalmente el
Index Terms—sı́ntesis digital, algoritmo Karplus/Strong, MAT- comportamiento de instrumentos reales. El algoritmo de
LAB, guitarra virtual, señales, ritmo. Karplus/Strong, desarrollado en 1983, es una técnica eficiente
para simular cuerdas pulsadas. Este algoritmo consiste
II. I NTRODUCTION en un búfer circular inicializado con ruido blanco y una
realimentación filtrada, lo que genera un sonido amortiguado.
La sı́ntesis de sonido digital es un campo fundamental
// El retardo del búfer L determina la frecuencia de la nota
dentro del procesamiento de señales, con aplicaciones en
sintetizada. La fórmula básica es:
música computacional, videojuegos y efectos sonoros. En
esta práctica se explora la generación de sonidos de cuerdas
f = fLs
mediante el algoritmo Karplus/Strong, conocido por su ca-
donde:
pacidad de simular la vibración de cuerdas pulsadas de forma
• f : frecuencia de la nota Hz.
computacionalmente eficiente.
• fs : frecuencia de muestreoHz.
El objetivo es programar una guitarra virtual capaz de
• L : longitud del búfer en muestras.
interpretar melodı́as y acordes con acompañamiento rı́tmico.
Para lograrlo, se emplea MATLAB como herramienta principal Un filtro sencillo aplicado en cada iteración asegura el de-
para implementar estructuras de datos, funciones de sı́ntesis caimiento natural del sonido. Por ejemplo:
y reproducción sonora. Además, se incorporan principios y[n] = 1
∗ (x[n − L] + x[n − L − 1])
2
musicales como progresiones armónicas, escalas y métricas
rı́tmicas, estableciendo un puente entre teorı́a musical e inge- Este modelo puede ampliarse usando un filtro de primer
nierı́a de señales. orden:
y[n] = α ∗ x[n − L] + (1 − α) ∗ x[n − L − 1]
III. O BJETIVOS GENERALES
Desarrollar una aplicación en MATLAB capaz de sintetizar donde α ∈ [0, 1] ajusta la respuesta del filtro y, por tanto,
la ejecución de una guitarra eléctrica con acompañamiento de el timbre de la cuerda.
baterı́a, utilizando el algoritmo de Karplus/Strong y conceptos
de teorı́a musical digital. B. Relación entre tono y frecuencia
Las notas musicales se organizan en una escala logarı́tmica.
A. Objetivos especı́ficos Cada octava tiene 12 semitonos y al avanzar 12 semitonos se
• Implementar en código la generación de notas musicales duplica la frecuencia. La fórmula para obtener la frecuencia
mediante retardos basados en frecuencia. de una nota en función del número de semitonos n respecto
PRACTICA DSP 2

a una base es:


n
fn = f0 ∗ 2 12
Si se toma como base f0 = 220Hz (nota LA3), entonces:
• n = 0 ⇒ f = 220Hz
• n = 12 ⇒ f = 440Hz(LA4)
• n = −12 ⇒ f = 110Hz (LA2)
Este sistema permite generar cualquier nota a partir de enteros
n ∈ Z, facilitando la codificación de melodı́as en MATLAB.

C. Acordes y progresiones
Un acorde se forma al superponer varias notas con difer-
entes frecuencias fundamentales. Por ejemplo, el acorde de LA
mayor incluye las notas LA, DO# y MI. Las progresiones son
secuencias organizadas de acordes que establecen un sentido
armónico.
Fig. 1: Definicion de acordes

D. Ritmo y percusión digital


La baterı́a virtual se modela combinando ondas senoidales B. Definición de acordes
para simular el kick, señales ruidosas para el snare y ruido Aquı́ se define otro mapa, esta vez asociando nombres de
de alta frecuencia para el hi-hat, moduladas por envolventes acordes con las notas individuales que los componen:
exponenciales: • Se incluyen power chords (quintas) como MI5, LA5,
−αt
• Kick: x(t) = A ∗ sin(2πf t) ∗ e etc., que están formados por la tónica y la quinta, muy
• Snare: mezcla de ruido blanco y componentes senoidales comunes en el rock por su potencia y simplicidad.
filtradas. • También se incluyen acordes mayores completos, con la
• Hi-hat: ruido blanco atenuado con alta frecuencia de tónica, la tercera mayor y la quinta (por ejemplo, LA:
corte. LA–DO#–MI).

E. Codificación en MATLAB
El uso de MATLAB permite manipular vectores de señales,
gestionar estructuras como mapas para asociar notas con
frecuencias, y aplicar transformaciones sobre el tiempo y la
amplitud para modelar envolventes, distorsiones y efectos.

V. P ROCEDIMIENTO
Para dar solución a esta práctica se siguieron los siguientes
pasos, teniendo en cuenta que la frecuencia de muestreo es de
fs = 44100Hz, que es el estándar para audio digital (CD):

A. Definición de notas musicales


Fig. 2: Definición de acordes
Se crea un mapa de notas con sus respectivas frecuencias
en Hz, Teniendo en cuenta la melodı́a que esta en base a Esto permite construir acordes dinámicamente a partir de
LA4 (440 Hz) usando la formula de la escala temperada: sus notas base.

n
fn = 440 ∗ 2 12 C. Progresión de acortes
Se define una progresión armónica de acordes que se tocarán
secuencialmente durante el acompañamiento.

Fig. 3: Progresion de acordes


PRACTICA DSP 3

• Cada elemento contiene un nombre de acorde y su F. Sı́ntesis de melodı́a


duración (en segundos).
• Esta progresión representa una estructura tı́pica del rock,
usada como base rı́tmica y armónica.

D. Melodı́a (riffs de guitarra)


Se define una secuencia de notas individuales con duración,
simulando un riff de guitarra.
Fig. 6: Sintetizar melodı́a

Este bucle:
• Recorre cada nota de la melodı́a.
• Sintetiza la señal correspondiente también usando
KarplusStrongRock(), pero aquı́ se añade un pequeño
Fig. 4: Melodı́a rockera (riffs de guitarra) valor aleatorio al ataque para dar variedad y realismo.
• La salida final es y melodia, una señal monofónica que

• Esta parte está pensada para tocarse por encima de la representa la lı́nea melódica.
progresión de acordes, actuando como la voz principal o
lı́nea melódica. G. Ajuste de longitudes
• Las duraciones cortas (0.25 s) le dan un carácter rápido
y rı́tmico, acorde al estilo rock.

E. Sı́ntesis de acordes
Este bucle se trata de:
Fig. 7: Asegurar misma longitud

Para mezclar correctamente acordes y melodı́a, ambas


señales deben tener la misma longitud. Aquı́ se recortan las
señales al mı́nimo común para evitar errores al sumarlas.

H. Creación del ritmo de baterı́a


Se llama a la función crear ritmo rock(), que genera una
señal de percusión simulando:
• Bombo (kick) en los tiempos fuertes.
• Redoblante (snare) en los tiempos 2 y 4 del compás.
• Hihat en cada tiempo con ruido blanco breve.
• Platillo crash al inicio de cada 4 compases
Este ritmo refuerza el estilo rock de 4/4.

Fig. 5: Sintetizar progresión de acordes

• Recorre la progresión de acordes.


• Para cada acorde, extrae sus notas, y las sintetiza indi- Fig. 8: ritmo de bateria
vidualmente usando la función KarplusStrongRock(), que
modela la vibración de una cuerda pulsada (guitarra).
• Las señales resultantes de las notas se suman para for-
I. Mezcla de todos los elementos
mar un acorde polifónico, y se normalizan para evitar
saturación. Se suman los tres componentes de audio:
El resultado final es un vector y acordes que contiene la señal • Acordes (50%)

de audio completa del acompañamiento. • Melodı́a (30%)


• Ritmo (20%)
El resultado se normaliza para que su amplitud máxima sea
1, evitando distorsión al reproducirlo.
PRACTICA DSP 4

• Inicializa una señal de ruido (simula la vibración inicial).


• Usa un filtro de retroalimentación con retardos para
generar la oscilación.
• Agrega una distorsión suave con función tanh para sim-
Fig. 9: Mezclar todos los elementos ular el overdrive del rock.
• Multiplica por una envolvente exponencial para simular

J. Reproducción del sonido el decaimiento natural de la nota.


Esta función permite generar sonidos muy realistas de guitarra
Reproduce la mezcla generada utilizando el hardware de
eléctrica con bajo costo computacional.
sonido del equipo.

Fig. 10: Reproduccion del sonido

K. Visualización de señales

2) crear ritmo rock(fs, duracion total): Genera un patrón


de baterı́a sintético pero realista:
• Usa ruido blanco y senoidales moduladas.
• Incluye estructura métrica tı́pica (compases de 4 tiempos).
• Simula diferentes instrumentos de percusión:

– Kick (bajo)
– Snare (caja)
– Hihat
– Crash
• Cada golpe tiene forma de onda y duración especı́ficas.
• La señal final se normaliza para evitar saturación.

Fig. 11: Graficar

Se grafican las formas de onda en tres paneles:


• Acordes
Fig. 12: Resultados de la función
• Melodı́a
crear_ritmo_rock(fs, duracion_total)
• Ritmo
Esto permite analizar visualmente el comportamiento temporal
de cada componente.

L. Funciones auxiliares
1) KarplusStrongRock(d, f0, f s, ataque): Implementa el
algoritmo Karplus-Strong, usado para la sı́ntesis fı́sica de
cuerdas pulsadas:
PRACTICA DSP 5

VI. R ESULTADOS VII. C ONCLUSIONES


• El grafico muestra claramente las componentes musicales
pero, el sonido resultante no es tan parecido a una
guitarra real como se esperaba, se escucha algo como
una armonica o un sintetisador.
• El ritmo si se logra bastante bien tanto en la forma como
en el sonido, se nota que los golpes estan bien distribuidos
en el tiempo como se ve en la grafica inferior.
• Aunque el modelo Karplus Strong funcione bien para
sintetizar cuerdas, no reproduce fielmente una guitarra
de rock, talvez se necesitaria un procesamiento adicional
o efectos como distorsion mas realistas.
• La grafica confirma que los sonidos estan bien organi-
zados en el tiempo, y que el código esta correctamente
implementado para mezclar acordes, melodia y ritmo,
aunque el sonido podria mejorarse mucho todavia.

VIII. R EFERENCIAS
Fig. 13: Resultados de los componentes sonoros • J. O. Smith III, Physical Audio Signal
Processing, W3K Publishing, 2010. Disponible en:
En la Figura mostrada, se aprecian tres gráficas que rep- https://ccrma.stanford.edu/ jos/pasp/
resentan los componentes sonoros generados durante la eje- • Roads, C., The Computer Music Tutorial, MIT Press,
cución del programa en MATLAB: 1996.
• Acordes (gráfica superior): Se observan picos amplios y • ölzer, U. (ed.), DAFX: Digital Audio Effects, Wiley,
definidos que indican el ataque inicial de los acordes 2011.
de rock. Estas señales reflejan la ejecución de acordes • MATLAB Documentation - MathWorks:
potentes (power chords), sin embargo, al escucharlos se https://www.mathworks.com/help/matlab/
percibe un timbre que se asemeja más a una armónica • Karplus, K. Strong, A., ”Digital Synthesis of Plucked
distorsionada que a una guitarra eléctrica. Esta discrep- String and Drum Timbres”, Computer Music Journal, Vol.
ancia entre la forma de onda y la percepción auditiva 7, No. 2, 1983.
sugiere limitaciones en el modelo de sı́ntesis utilizado.
• Melodı́a (gráfica central): Se aprecia una secuencia de
pulsos cortos, con una forma caracterı́stica de onda
amortiguada. Cada uno representa una nota de la melodı́a
rockera, generada mediante el algoritmo Karplus-Strong
con variaciones de ataque. Aunque visualmente las for-
mas son coherentes, el sonido continúa careciendo del
brillo y cuerpo de una guitarra real.
• Ritmo (gráfica inferior): Es el componente más dinámico
de los tres. Muestra pulsos rı́tmicos frecuentes, corre-
spondientes a golpes de baterı́a como kick, snare, hi-
hat y crash. En la reproducción, estos elementos logran
una percusión convincente que estructura bien la pieza
musical.
En conjunto, la figura refleja una correcta implementación
de la superposición de elementos (acordes, melodı́a y ritmo),
aunque el resultado auditivo final sigue presentando un
carácter sintético notable.

También podría gustarte