Matlab - como reproducir un sonido

 
Vista:
sin imagen de perfil

como reproducir un sonido

Publicado por Christian (11 intervenciones) el 20/10/2015 06:16:53
Quisiera de que forma puedo reproducir una nota musical, como Do, Re,Mi.
que es lo que debo hacer. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

como reproducir un sonido

Publicado por Royeth (1818 intervenciones) el 20/10/2015 07:09:16
bueno lo que debes hacer es contruir tus propias notas con las propiedades y caracterízticas que tú desees , requiere cosas un poco más avanzadas como lo es la aplitud de la señal , la frecuencia de muestreo , entre otras cosas

te pongo el ejemplo de las notas do re mi fa sol la si

1
2
3
4
5
6
7
8
9
10
11
frec=[261 294 330 349 392 440 494]; %frecuencia de las notas 
ts=1/8000;
N=5000;
T=N*ts;
parada=T*(1-1/N);
t=0:ts:parada;
for k=1:length(frec)
nota=2*sin(2*pi*frec(k)*t+pi/6);
sound(nota,1/ts)
pause(0.7)
end


espero te sea de alguna ayuda
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

como reproducir un sonido

Publicado por Christian (11 intervenciones) el 20/10/2015 14:18:23
Gracias, me podrias explicar cada linea de lo que hiciste gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como reproducir un sonido

Publicado por Christian (11 intervenciones) el 20/10/2015 16:19:55
si las quisiera hacer con condicionales. por q me sale error.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function nta=sonido(nota)
nta= nota
if nota=='do'
    ts=1/8000;
    T=1;
    f=261,63;
    tiempo=0:ts:T
    s=sin(2*pi*f*tiempo)
    sound(s)
elseif nota=='reb'
     ts=1/8000;
     T=1;
     f=261,63;
     tiempo=0:ts:T
     s=sin(2*pi*f*tiempo)
     sound(s)
end



este es el error:
Error using ==
Matrix dimensions must agree.

Error in piano (line 3)
if nota=='do'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

como reproducir un sonido

Publicado por Royeth (1818 intervenciones) el 20/10/2015 17:09:52
debes cambiar if nota=='do' por if strcmp(nota,'do') y para cada nota debes cambiar la frecuencia
estas son las frecuencias para cada nota [261 294 330 349 392 440 494]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como reproducir un sonido

Publicado por Christian (11 intervenciones) el 20/10/2015 23:47:45
Muchas Gracias. me fue de mucha ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar