audio.m

Upload: bommeae

Post on 06-Apr-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 audio.m

    1/5

    EXPLICACIN DE OBJETOS DEL CODIGO:

    En una GUIDE se genera la funcin mtodo del objeto que voy a codificar, luego de haberlo creado manualmente, es decir la programacin es independiente. No va depender de cuantos objetos tenga en un momento sino que conforme vaya necesitando masobjetos los crear , programar a mi aplicacin.

    Los objetos que cre son los siguiente:1. function edit1_CreateFcn(hObject, eventdata, handles); es un Edit Text donde almaceno el tiempo de adquisicion de sonido.2. function pushbutton1_Callback(hObject, eventdata, handles); es un Pushbutton que me permite grabar sonidos.3. function pushbutton2_Callback(hObject, eventdata, handles); es un Pushbutton que me permite detener la grabacion de sonidos.4. function pushbutton3_Callback(hObject, eventdata, handles); es un Pushbutton que me permite reproducir los sonidos que e grabado.5. function volumen_Callback(hObject, eventdata, handles);es un pushbuttonque me permite manejar el volumen de sonido cuando reprodusco una cancion format

    .wav.6. function play_Callback(hObject, eventdata, handles); es un pushbutton que me permite reproducer musica con format .wav.7. function mute_Callback(hObject, eventdata, handles); es un pushbutton que me permite quitar el sonido cuando estoy reproduciendo un cancion con format .wav.8. function openfiles_Callback(hObject, eventdata, handles); es un pushbutton que me permite abrir el directorio donde se encuntran mis archives para luegoreproducir una cancin.9. function radiobutton1_Callback(hObject, eventdata, handles); es un radiobutton que me permite invertir la seal usando el commando flipud.10. function radiobutton2_Callback(hObject, eventdata, handles); es un radiobutton que me permite crear eco al canal izquierdo de la seal de audio.

    11. function radiobutton3_Callback(hObject, eventdata, handles); es un radiobutton que me permite crear un pre eco a mi seal de audio grabada.12. function radiobutton4_Callback(hObject, eventdata, handles): es un radiobutton que me permite crear eco recursivo a mi seal de audio grabada.13. function Reproducir_Efecto_Callback(hObject, eventdata, handles); es unpushbutton que me permite reproducir los efectos que le correponde a cada radiobutton.14. function zoom1_Callback(hObject, eventdata, handles); es un pushbutton que me permite hacer uso del zoom en mis graficas de seal de audio.15. function figure1_CloseRequestFcn(hObject, eventdata, handles); aqu aparece un mensaje si desea salir del programa o continuar.

    % --- Executes during object creation, after setting all properties.function edit1_Callback(hObject, eventdata, handles)global waitime;waitime = str2double(get(handles.edit1,'String'));

    % --- Executes on button press in pushbutton1. Boton que Grabarfunction pushbutton1_Callback(hObject, eventdata, handles)global waitime;global run;global data;global graphics;

    global left;global right;waitime = str2double(get(handles.edit1,'String'));

  • 8/3/2019 audio.m

    2/5

    t = timer('StartDelay',waitime,'TimerFcn','disp('''')');disp('Running')run = 1;while runstart(t)set(handles.pushbutton2,'Enable','on');if(run == 0)

    set(handles.pushbutton2,'Enable','on');break;elseFs = 44100;N = waitime*Fs;data = wavrecord(N,Fs,'double');set(handles.axes2,'XScale','log');set(handles.axes1,'XScale','log');axes(handles.axes1);plot(data),grid on;axes(handles.axes2);plot(data), grid on;

    xlabel('Pump Number');ylabel('Amplitud');axes(handles.axes2);xlabel('Pump Number');ylabel('Amplitud');axes(handles.axes1);run =0;end;wait(t)set(handles.pushbutton1,'Enable','on');set(handles.pushbutton2,'Enable','off');disp('Stopped')end;

    % --- Executes on button press in pushbutton2.Boton de Stop en la grabacionfunction pushbutton2_Callback(hObject, eventdata, handles)global run;if (run==0)set(handles.pushbutton1,'Enable','on');end

    % --- Executes on button press in pushbutton3.Boton Reproducir la grabacionfunction pushbutton3_Callback(hObject, eventdata, handles)global t2;global data;t2 = timer('StartDelay',8,'TimerFcn','disp('''')');start(t2);wavplay(data,44100);set(handles.pushbutton3,'Enable','on');set(handles.pushbutton2,'Enable','on');

    % --- Executes on button press in volumen.function volumen_Callback(hObject, eventdata, handles)

    % --- Executes on button press in stop.function stop_Callback(hObject, eventdata, handles)

    global runn;if (runn == 1)set(handles.stop,'Enable','off');

  • 8/3/2019 audio.m

    3/5

    set(handles.play,'Enable','on');end

    % --- Executes on button press in play.function play_Callback(hObject, eventdata, handles)global musicaglobal ruta

    global runnif isequal(ruta,0)

    set(handles.play,'Enable','off');

    elserunn=1;set(handles.pushbutton1,'Enable','on');set(handles.stop,'Enable','on');set(handles.mute,'Enable','on');set(handles.volumen,'Enable','on');wavplay(musica,44100);

    end

    % --- Executes on button press in mute.function mute_Callback(hObject, eventdata, handles)

    % --- Executes on button press in openfiles.function openfiles_Callback(hObject, eventdata, handles)global rutaglobal musicadisp('Running')run = 1;fs=44100;bits=16;ruta=uigetfile('*.wav','Selecciona un archivo wav');

    if isequal(ruta,0)disp('User pressed cancel')set(handles.openfiles,'Enable','on');set(handles.play,'Enable','off');

    elsedisp('User selected ')set(handles.openfiles,'Enable','on');set(handles.play,'Enable','on');[musica fs bits]=wavread(ruta);set(handles.openfiles,'Enable','on');

    end% --- Executes on button press in radiobutton1.function radiobutton1_Callback(hObject, eventdata, handles)global audiotypeaudiotype = 1;set(handles.radiobutton1,'Value',1)off = [handles.radiobutton2,handles.radiobutton3,handles.radiobutton4];mutual_exclude(off);

    % --- Executes on button press in radiobutton2.function radiobutton2_Callback(hObject, eventdata, handles)global audiotypeaudiotype = 2;set(handles.radiobutton2,'Value',1)off = [handles.radiobutton1,handles.radiobutton3,handles.radiobutton4];

    mutual_exclude(off);

  • 8/3/2019 audio.m

    4/5

    % --- Executes on button press in radiobutton3.function radiobutton3_Callback(hObject, eventdata, handles)global audiotypeaudiotype = 3;set(handles.radiobutton3,'Value',1)off = [handles.radiobutton1,handles.radiobutton2,handles.radiobutton4];mutual_exclude(off);

    % --- Executes on button press in radiobutton4.function radiobutton4_Callback(hObject, eventdata, handles)global audiotypeaudiotype = 4;set(handles.radiobutton4,'Value',1)off = [handles.radiobutton1,handles.radiobutton2,handles.radiobutton3];mutual_exclude(off);

    % --- Executes on button press in Reproducir_Efecto.function Reproducir_Efecto_Callback(hObject, eventdata, handles)global audiotype;

    global data;global left;global right;global out;switch audiotype

    case 1 %invertimos sonidofs=44100;data_rev=flipud(data);soundsc(data_rev,fs);axes(handles.axes2);plot(data_rev), grid on;xlabel('Pump Number');ylabel('Amplitud');

    case 2 %eco canal izquiedofs=44100;left=data(:,1);leftout = left;N=10000;for n=N+1:length(left)leftout(n)=left(n)+left(n-N);endsoundsc(leftout,fs);axes(handles.axes2);plot(leftout), grid on;xlabel('Pump Number');ylabel('Amplitud');

    case 3%pre ecofs=44100;left=data(:,1);leftout = left;N=20000;for n=1:length(left)-Nleftout(n)=0.5*left(n)+left(n+N); % Para que se escuche el efecto del e

    co

    endsoundsc(leftout,fs);axes(handles.axes2);

  • 8/3/2019 audio.m

    5/5

    plot(leftout), grid on;xlabel('Pump Number');ylabel('Amplitud');

    case 4 %eco recursio

    fs=44100;% N=20000;

    out=data; % nuevo arregloN=1000; % monto del retardo N/8192 segundosfor n=N+1:length(data)out(n)=.8*out(n-N)+data(n); % eco recursivo, ya que le sumo la misma

    ondaend

    soundsc(out,fs) % escuchamos un eco recursivoaxes(handles.axes2);plot(out), grid on;xlabel('Pump Number');ylabel('Amplitud');

    otherwiseend

    % --- Executes when user attempts to close figure1.function figure1_CloseRequestFcn(hObject, eventdata, handles)opc=questdlg('Desea salir del programa?','SALIR','Si','No','No');if strcmp(opc,'No')return;enddelete(hObject);

    % --- Executes on button press in zoom1.function zoom1_Callback(hObject, eventdata, handles)

    zoom on;