from Guitar Effects Pedal - Pedale d'effet pour guitare by F.BONNEL S.CRASE A.DESMAZURES J.MARCQ
Guitar Effects Pedal - Pedale d'effet pour guitare

projet(varargin)
function varargout = projet(varargin)
% PROJET M-file for projet.fig
% Last Modified by GUIDE v2.5 28-May-2006 16:11:17

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @projet_OpeningFcn, ...
                   'gui_OutputFcn',  @projet_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin & isstr(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- S'execute au demarrage du projet
function projet_OpeningFcn(hObject, eventdata, handles, varargin)

        % INDIQUER LE CHEMIN DU REPERTOIRE CONTENANT LES FICHIERS DU PROJET
        handles.default_path = 'D:\ISEP\A2\projet\';
        
        % le type des fichiers par default est MP3
        handles.type_fichier_in = 1;
        handles.type_fichier_out = 1;
        
%        handles.player_exist = 0;
        
        % les effets ne sont pas selectionns au dmarrage
        handles.change_effect=0;
        handles.flange=0;
        handles.val_flange_param1=0;
        handles.chorus=0;
        handles.val_chorus_param1=0;        
        handles.echoes=0;
        handles.val_echoes_param1=0;
        handles.val_echoes_param2=180;
        handles.distortion=0;
        handles.val_distortion_param1=0;
        handles.reverb=0;
        handles.val_reverb_param1=0;
        handles.val_reverb_param2=0;
        handles.delay=0;
        handles.val_delay_param1=0;        
        handles.val_delay_param2=150;        
        
        % les parametres des filtres sont initialiss
        handles.val_delay_param1=150;
        handles.val_delay_param2=0;
        handles.val_echoes_param1=200;
        handles.val_echoes_param2=0;
        handles.val_reverb_param1=5;
        handles.val_reverb_param2=0;
        handles.val_flange_param1=1;
        handles.val_chorus_param1=0;
        handles.val_distortion_param1=0;
 
        % Affichage de l'image de fond
        [background, map] = imread('background.jpg');
        axes(handles.background);
        axis off;
        imshow(background);
        
        % Choose default command line output for projet
        handles.output = hObject;
        % Update handles structure
        guidata(hObject, handles);
        
%        while(1)
%            while(handles.player_exist)
%                handles.sample = get(handles.player, 'CurrentSample');
%                set(handles.essai,'String',handles.sample);    
%                PAUSE(0,5);
%            end
%        end


% --- Outputs from this function are returned to the command line.
function varargout = projet_OutputFcn(hObject, eventdata, handles)

        % Get default command line output from handles structure
        varargout{1} = handles.output;


% --- Executes during object creation, after setting all properties.
function delay_slide1_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function delay_slide1_Callback(hObject, eventdata, handles)

        val_delay_param1 = get(hObject, 'Value');
        handles.val_delay_param1 = val_delay_param1;
        set(handles.delay_param1,'String',round(100*handles.val_delay_param1));
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
       
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function delay_slide2_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function delay_slide2_Callback(hObject, eventdata, handles)

        val_delay_param2 = get(hObject, 'Value');
        handles.val_delay_param2 = 1000*val_delay_param2 + 150;
        set(handles.delay_param2,'String',round(handles.val_delay_param2));
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function echoes_slide1_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function echoes_slide1_Callback(hObject, eventdata, handles)

        val_echoes_param1 = get(hObject, 'Value');
        handles.val_echoes_param1 = val_echoes_param1;
        set(handles.echoes_param1,'String',round(100 * handles.val_echoes_param1));
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function echoes_slide2_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function echoes_slide2_Callback(hObject, eventdata, handles)

        val_echoes_param2 = get(hObject, 'Value');
        handles.val_echoes_param2 = 100 * val_echoes_param2 + 180;
        set(handles.echoes_param2,'String',round(handles.val_echoes_param2));
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function reverb_slide1_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function reverb_slide1_Callback(hObject, eventdata, handles)

        val_reverb_param1 = get(hObject, 'Value');
        handles.val_reverb_param1 = round(10 * val_reverb_param1) + 5;
        set(handles.reverb_param1,'String',handles.val_reverb_param1)
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function reverb_slide2_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function reverb_slide2_Callback(hObject, eventdata, handles)

        val_reverb_param2 = get(hObject, 'Value');
        handles.val_reverb_param2 = val_reverb_param2;
        set(handles.reverb_param2,'String',round(100*handles.val_reverb_param2))
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function chorus_slide1_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function chorus_slide1_Callback(hObject, eventdata, handles)

        val_chorus_param1 = get(hObject, 'Value');
        handles.val_chorus_param1 = val_chorus_param1;
        set(handles.chorus_param1,'String',round(100*handles.val_chorus_param1));
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function flange_slide1_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function flange_slide1_Callback(hObject, eventdata, handles)

        val_flange_param1 = get(hObject, 'Value');
        handles.val_flange_param1 = round(100 * val_flange_param1);
        set(handles.flange_param1,'String',handles.val_flange_param1);
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes during object creation, after setting all properties.
function distortion_slide1_CreateFcn(hObject, eventdata, handles)

        usewhitebg = 1;
        if usewhitebg
            set(hObject,'BackgroundColor',[.9 .9 .9]);
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on slider movement.
function distortion_slide1_Callback(hObject, eventdata, handles)

        val_distortion_param1 = get(hObject, 'Value');
        handles.val_distortion_param1 = round(10*val_distortion_param1)/2,5;
        set(handles.distortion_param1,'String',2*handles.val_distortion_param1)
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');

        % Update handles structure
        guidata(hObject, handles); 


% --- Executes on button press in bt_browse.
function bt_browse_Callback(hObject, eventdata, handles)

        set(handles.save_info,'String',' ');
        
        if (handles.type_fichier_in==1)
            [handles.filename_in, handles.pathname_in] = uigetfile('*.mp3', 'Choisissez un fichier mp3',strcat(handles.default_path,'sound\'));
            handles.file_in = strcat(handles.pathname_in, handles.filename_in);
            exec = strcat('"',handles.default_path,'read_mp3.exe" -w "',handles.default_path,'sound\temp.wav" "',handles.file_in,'"');
            dos(exec);
            [handles.Y,handles.FS,handles.NBITS] = wavread(strcat(handles.default_path,'sound\temp.wav'));
                %   Y     = spectre_in du signal initial
                %   FS    = frequence d'echantillonnage
                %   NBITS = nombre de bits de codage            
            delete(strcat(handles.default_path,'sound\temp.wav'));
        end        
        if (handles.type_fichier_in==2)
            [handles.filename_in, handles.pathname_in] = uigetfile('*.wav', 'Choisissez un fichier wav',strcat(handles.default_path,'sound\'));
            handles.file_in = strcat(handles.pathname_in, handles.filename_in);
            [handles.Y,handles.FS,handles.NBITS] = wavread(handles.file_in);
                %   Y     = spectre du signal initial
                %   FS    = frequence d'echantillonnage
                %   NBITS = nombre de bits de codage      
        end
        handles.Z = handles.Y;
            % Z = spectre du signal modifi
        handles.player = audioplayer(handles.Z,handles.FS,handles.NBITS);

        set(handles.load_info,'String',handles.filename_in);
        axes(handles.axes1);
        plot(handles.Y);
        grid on;

        % Update handles structure
        guidata(hObject, handles);

        
% --- Executes on button press in bt_save.
function bt_save_Callback(hObject, eventdata, handles)

        if (handles.type_fichier_out==1)
            [handles.filename_out, handles.pathname_out] = uiputfile('*.mp3', 'Enregistrer sous...',strcat(handles.default_path,'sound\'));
            set(handles.save_info,'String','patientez...');
            handles.file_out = strcat(handles.pathname_out, handles.filename_out);
            wavwrite(handles.Z,handles.FS,handles.NBITS,strcat(handles.default_path,'sound\temp.wav'));
            exec = strcat('"',handles.default_path,'write_mp3.exe" -quiet  -b 128 "',handles.default_path,'sound\temp.wav" "',handles.file_out,'"');
            dos(exec);          
            delete(strcat(handles.default_path,'sound\temp.wav'));
            set(handles.save_info,'String','sauvegarde Ok !');
        end
        if (handles.type_fichier_out==2)
            [handles.filename_out, handles.pathname_out] = uiputfile('*.wav', 'Enregistrer sous...',strcat(handles.default_path,'sound\'));
            set(handles.save_info,'String','patientez...');
            handles.file_out = strcat(handles.pathname_out, handles.filename_out);
            wavwrite(handles.Z,handles.FS,handles.NBITS,handles.file_out);
            set(handles.save_info,'String','sauvegarde Ok !');
        end
        
        % Update handles structure
        guidata(hObject, handles); 


% --- Executes on button press in bt_play.
function bt_play_Callback(hObject, eventdata, handles)

        if(handles.change_effect==1)
            handles.Z = handles.Y;
            if(handles.flange)
                handles.Z=effet_flange(handles.Z,handles.FS,handles.val_flange_param1+1);
            end
            if(handles.reverb)
                handles.Z=effet_reverb(handles.Z,handles.FS,handles.val_reverb_param1,handles.val_reverb_param2);
            end
            if(handles.chorus)
                handles.Z=effet_chorus(handles.Z,handles.FS,handles.val_chorus_param1);
            end
            if(handles.distortion)
                handles.Z=effet_distortion(handles.Z,handles.FS,handles.val_distortion_param1);
            end
            if(handles.delay)
                handles.Z=effet_delay(handles.Z,handles.FS,handles.val_delay_param1,handles.val_delay_param2);
            end
            if(handles.echoes)
                handles.Z=effet_multiplechoes(handles.Z,handles.FS,handles.val_echoes_param1,handles.val_echoes_param2);
            end
            handles.change_effect=0;
            handles.player = audioplayer(handles.Z,handles.FS,handles.NBITS);        
%            handles.player_exist = 1;
            
            % Update handles structure
            guidata(hObject, handles);
            
            axes(handles.axes1);
            plot(handles.Z);
            grid on;
        end

        if isplaying(handles.player)
            pause(handles.player); 
            set(handles.bt_play,'String','PLAY');    
        else
            resume(handles.player);
            set(handles.bt_play,'String','PAUSE');
        end


% --- Executes on button press in bt_stop.
function bt_stop_Callback(hObject, eventdata, handles)

        stop(handles.player);
        set(handles.bt_play,'String','PLAY'); 


% --- Executes on button press in bt_delay.
function bt_delay_Callback(hObject, eventdata, handles)

        bt = get(hObject,'Value');
        if bt == get(hObject,'Max')
            handles.delay=1;
        else
            handles.delay=0;
        end
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');    
    
        handles.effets_selectionnes = ('');
        if(handles.flange)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  flange');
        end
        if(handles.reverb)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  reverb');
        end
        if(handles.chorus)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  chorus');
        end
        if(handles.distortion)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  distortion');
        end
        if(handles.delay)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  delay');
        end
        if(handles.echoes)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  multiple echoes');
        end
        if length(handles.effets_selectionnes)==0
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  aucun');
        end
        set(handles.effet_charge,'String',handles.effets_selectionnes);        
        
        % Update handles structure
        guidata(hObject, handles);

        
% --- Executes on button press in bt_echoes.
function bt_echoes_Callback(hObject, eventdata, handles)

        bt = get(hObject,'Value');
        if bt == get(hObject,'Max')
            handles.echoes=1;
        else
            handles.echoes=0;
        end
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');    
        
        handles.effets_selectionnes = ('');
        if(handles.flange)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  flange');
        end
        if(handles.reverb)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  reverb');
        end
        if(handles.chorus)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  chorus');
        end
        if(handles.distortion)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  distortion');
        end
        if(handles.delay)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  delay');
        end
        if(handles.echoes)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  multiple echoes');
        end
        if length(handles.effets_selectionnes)==0
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  aucun');
        end
        set(handles.effet_charge,'String',handles.effets_selectionnes);        
        
        % Update handles structure
        guidata(hObject, handles);    

        
% --- Executes on button press in bt_reverb.
function bt_reverb_Callback(hObject, eventdata, handles)

        bt = get(hObject,'Value');
        if bt == get(hObject,'Max')
            handles.reverb=1;
        else
            handles.reverb=0;
        end
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');
 
        handles.effets_selectionnes = ('');
        if(handles.flange)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  flange');
        end
        if(handles.reverb)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  reverb');
        end
        if(handles.chorus)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  chorus');
        end
        if(handles.distortion)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  distortion');
        end
        if(handles.delay)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  delay');
        end
        if(handles.echoes)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  multiple echoes');
        end
        if length(handles.effets_selectionnes)==0
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  aucun');
        end
        set(handles.effet_charge,'String',handles.effets_selectionnes);
                
        % Update handles structure
        guidata(hObject, handles); 

        
% --- Executes on button press in bt_flange.
function bt_flange_Callback(hObject, eventdata, handles)

        bt = get(hObject,'Value');
        if bt == get(hObject,'Max')
            handles.flange=1;
        else
            handles.flange=0;
        end
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');    
        
        handles.effets_selectionnes = ('');
        if(handles.flange)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  flange');
        end
        if(handles.reverb)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  reverb');
        end
        if(handles.chorus)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  chorus');
        end
        if(handles.distortion)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  distortion');
        end
        if(handles.delay)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  delay');
        end
        if(handles.echoes)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  multiple echoes');
        end
        if length(handles.effets_selectionnes)==0
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  aucun');
        end
        set(handles.effet_charge,'String',handles.effets_selectionnes);
        
        % Update handles structure
        guidata(hObject, handles);    

        
% --- Executes on button press in bt_chorus.
function bt_chorus_Callback(hObject, eventdata, handles)

        bt = get(hObject,'Value');
        if bt == get(hObject,'Max')
            handles.chorus=1;
        else
            handles.chorus=0;
        end
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');

        handles.effets_selectionnes = ('');
        if(handles.flange)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  flange');
        end
        if(handles.reverb)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  reverb');
        end
        if(handles.chorus)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  chorus');
        end
        if(handles.distortion)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  distortion');
        end
        if(handles.delay)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  delay');
        end
        if(handles.echoes)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  multiple echoes');
        end
        if length(handles.effets_selectionnes)==0
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  aucun');
        end
        set(handles.effet_charge,'String',handles.effets_selectionnes);
        
        % Update handles structure
        guidata(hObject, handles);

        
% --- Executes on button press in bt_distortion.
function bt_distortion_Callback(hObject, eventdata, handles)

        bt = get(hObject,'Value');
        if bt == get(hObject,'Max')
            handles.distortion=1;
        else
            handles.distortion=0;
        end
        handles.change_effect=1;
        set(handles.bt_play,'String','PLAY');    

        handles.effets_selectionnes = ('');
        if(handles.flange)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  flange');
        end
        if(handles.reverb)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  reverb');
        end
        if(handles.chorus)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  chorus');
        end
        if(handles.distortion)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  distortion');
        end
        if(handles.delay)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  delay');
        end
        if(handles.echoes)
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  multiple echoes');
        end
        if length(handles.effets_selectionnes)==0
            handles.effets_selectionnes = strcat(handles.effets_selectionnes,'  aucun');
        end
        set(handles.effet_charge,'String',handles.effets_selectionnes);        
        
        % Update handles structure
        guidata(hObject, handles);    


% --- Executes during object creation, after setting all properties.
function file_type_in_CreateFcn(hObject, eventdata, handles)

        if ispc
            set(hObject,'BackgroundColor','white');
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on selection change in file_type_in.
function file_type_in_Callback(hObject, eventdata, handles)

        str = get(hObject, 'String');
        val = get(hObject,'Value');
        % on modifie la variable effet en consequence
        switch str{val};
            case 'MP3'   % l'utilisateur a choisi MP3
                handles.type_fichier_in = 1;
            case 'WAV'    % l'utilisateur a choisi WAV
                handles.type_fichier_in = 2;
        end
            
        % on enregistre la structure handles
        guidata(hObject,handles);


% --- Executes during object creation, after setting all properties.
function file_type_out_CreateFcn(hObject, eventdata, handles)

        if ispc
            set(hObject,'BackgroundColor','white');
        else
            set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
        end


% --- Executes on selection change in file_type_out.
function file_type_out_Callback(hObject, eventdata, handles)

        str2 = get(hObject, 'String');
        val2 = get(hObject,'Value');
        % on modifie la variable effet en consequence
        switch str2{val2};
            case 'MP3'   % l'utilisateur a choisi MP3
                handles.type_fichier_out = 1;
            case 'WAV'    % l'utilisateur a choisi WAV
                handles.type_fichier_out = 2;
        end
            
        % on enregistre la structure handles
        guidata(hObject,handles);


% --- Executes on button press in bt_help_flange.
function bt_help_flange_Callback(hObject, eventdata, handles)

        set(handles.help,'String','FLANGE : Il s agit d un effet retard variable de courte dure (1 a 10 ms) qui est mlang au signal d entre. Le retard est pilot par un oscillateur de basse frquence.');


% --- Executes on button press in bt_help_chorus.
function bt_help_chorus_Callback(hObject, eventdata, handles)

        set(handles.help,'String','CHORUS : Il simule le fait que plusieurs intruments jouent en meme temps une meme partition. Cet effet peut tre mis en application en ajoutant une ou plusieurs versions au signal initial mais en changeant l amplitude et la phase. Il donne plus d ampleur au son.');

        
% --- Executes on button press in bt_help_distortion.
function bt_help_distortion_Callback(hObject, eventdata, handles)

        set(handles.help,'String','DISTORTION : Il s agit de l effet sans aucun doute le plus populaire  ce jour. Du HARD-ROCK  la POP, on le retrouve partout. Ces distortions du signal sont dues  la saturation de l ampli. La saturation va provoquer l crtage du signal en entre.');


% --- Executes on button press in bt_help_reverb.
function bt_help_reverb_Callback(hObject, eventdata, handles)

        set(handles.help,'String','REVERB :  L effet Reverb peut tre dfini comme tant une approximation de la rverbration raliste d une pice. Il donne au son une sensation d espace. Il est possible de rgler la puissance de rverbration, ainsi que la dure totale de la rverbration. Cet effet consiste  ajouter de multiples chos  un bruit initial. Le Reverb a un temps de retard trs court ce qui rend difficile  distinguer les effets de chaque rflexion.'); 

        
% --- Executes on button press in bt_help_delay.
function bt_help_delay_Callback(hObject, eventdata, handles)

        set(handles.help,'String','DELAY :  Il s agit d un seul cho survenant aprs un temps dtermin. Il est possible de rgler le temps d attente avant l cho (en millisecondes) ainsi que la puissance de l cho. L cho consiste  ajouter une version retarde du signal sur lui mme.  Le signal que l on superpose  l original est ajout d un coefficient compris entre 0 et 100 afin de simuler le phnomne naturel de l cho.');


% --- Executes on button press in bt_help_echoes.
function bt_help_echoes_Callback(hObject, eventdata, handles)

        set(handles.help,'String','MULTIPLE ECHOES :  Il s agit de quatre echos ajouts au son d origine. Ils sont espacs dans le temps et vont en diminuant d intensit. Cet effet superpose un certain nombre de versions retardes du signal initial a lui-mme.');

        
% --- Executes during object creation, after setting all properties.
function edit11_CreateFcn(hObject, eventdata, handles)
function edit11_Callback(hObject, eventdata, handles)

Contact us at files@mathworks.com