function [ ] = accordeur(y,fs,seuil,fenetre,boutons)
%ACCORDEUR Permet d'indiquer les indications sur l'accordage d'une corde.
%   ACCORDEUR(Y,FS,SEUIL,FENETRE,BOUTONS) permet d'afficher les
%   informations et instructions dédiées à l'utilisateur dans la fenêtre
%   graphique FENETRE préalablement crée avec la fonction AFFICHAGE().
%   BOUTONS corresponds à la liste des "boutons" de FENETRE (dans l'ordre
%   de clui indiquant "-50" à celui indiquant "+50", puis le slide).
%   Y est le signal enregistré, à la fréquence d'échantillonage FS.
%   SEUIL est le seuil d'amplitude de la FFT de Y en deça duquel on 
%   considère que seul du bruit est présent.

%% Définition de  paramètres et variables

ton=1000*log10(2)/6;

% taille de la fenêtre
xhaut=880;                  
yhaut=600;
% taille des polices d'écriture
po_acc=15;
police_action=20;
% les différents boutons
moins50=boutons(1); moins40=boutons(2); moins30=boutons(3); 
moins20=boutons(4); moins10=boutons(5); zero_bouton=boutons(6);
plus10=boutons(7); plus20=boutons(8); plus30=boutons(9);
plus40=boutons(10); plus50=boutons(11); slide=boutons(12);

% fréquence correspondant à la corde à régler, d'après l'accordeur
[f_reference, f_lue, corde] = fondamental(y, fs, seuil);


% permet de quantifier l'accordage: il y a 5 niveau de désaccordage
% entre le désaccordage à 1/20 et celui à 1/4 de ton:
% -1/20 et 1/20, c'est accordé, echelle linéaire
% 5 niveaux de désaccordafe entre 1/20 et 1/4, echelle linéaire
fmin_accorde=sav2dec(dec2sav(f_reference)-ton/20);
fmax_accorde=sav2dec(dec2sav(f_reference)+ton/20);

fmin_10=sav2dec(dec2sav(f_reference)-ton/20-ton/25);
fmax_10=sav2dec(dec2sav(f_reference)+ton/20+ton/25);

fmin_20=sav2dec(dec2sav(f_reference)-ton/20-2*ton/25);
fmax_20=sav2dec(dec2sav(f_reference)+ton/20+2*ton/25);

fmin_30=sav2dec(dec2sav(f_reference)-ton/20-3*ton/25);
fmax_30=sav2dec(dec2sav(f_reference)+ton/20+3*ton/25);

fmin_40=sav2dec(dec2sav(f_reference)-ton/20-4*ton/25);
fmax_40=sav2dec(dec2sav(f_reference)+ton/20+4*ton/25);

%% CE QU'AFFICHE L'ACCORDEUR
set(moins50, 'fontsize', po_acc, 'String', '-50');
set(moins40, 'fontsize', po_acc, 'String', '-40');
set(moins30, 'fontsize', po_acc, 'String', '-30');
set(moins20, 'fontsize', po_acc, 'String', '-20');
set(moins10, 'fontsize', po_acc, 'String', '-10');
set(zero_bouton, 'fontsize', po_acc, 'String', '0');
set(plus10, 'fontsize', po_acc, 'String', '+10');
set(plus20, 'fontsize', po_acc, 'String', '+20');
set(plus30, 'fontsize', po_acc, 'String', '+30');
set(plus40, 'fontsize', po_acc, 'String', '+40');
set(plus50, 'fontsize', po_acc, 'String', '+50');

if (fmin_accorde<= f_lue && f_lue<=fmax_accorde)
   set(zero_bouton, 'String', ' 0', 'fontsize', 2*po_acc, 'value', 1);
    corde_string=['Corde du ', corde, ': elle est bien réglée'];
elseif (fmin_10<= f_lue && f_lue<=fmax_10)
    if (f_lue>f_reference)
        corde_string=['Corde du ', corde, ': il faut la desserer'];
        set(plus10, 'String', '+10', 'fontsize', 1.8*po_acc, 'value', 1);
    else set(moins10, 'String', '-10', 'fontsize', 1.8*po_acc, 'value', 1);
        corde_string=['Corde du ', corde, ': il faut la resserer'];
    end
elseif (fmin_20<= f_lue && f_lue<=fmax_20)
    if (f_lue>f_reference)
        corde_string=['Corde du ', corde, ': il faut la desserer'];
        set(plus20, 'String', '+20', 'fontsize', 1.8*po_acc, 'value', 1);
    else set(moins20, 'String', '-20', 'fontsize', 1.8*po_acc, 'value', 1);
        corde_string=['Corde du ', corde, ': il faut la resserer'];
    end
elseif (fmin_30<= f_lue && f_lue<=fmax_30)
    if (f_lue>f_reference)
        corde_string=['Corde du ', corde, ': il faut la desserer'];
        set(plus30, 'String', '+30', 'fontsize', 1.8*po_acc, 'value', 1);
    else set(moins30, 'String', '-30', 'fontsize', 1.8*po_acc, 'value', 1);
        corde_string=['Corde du ', corde, ': il faut la resserer'];
    end
elseif (fmin_40<= f_lue && f_lue<=fmax_40)
    if (f_lue>f_reference)
        corde_string=['Corde du ', corde, ': il faut la desserer'];
        set(plus40, 'String', '+40', 'fontsize', 1.8*po_acc, 'value', 1);
    else set(moins40, 'String', '-40', 'fontsize', 1.8*po_acc, 'value', 1);
        corde_string=['Corde du ', corde, ': il faut la resserer'];
    end
elseif (f_lue>f_reference)
    corde_string=['Corde du ', corde, ': il faut la desserer'];
    set(plus50, 'String', '+50', 'fontsize', 1.8*po_acc, 'value', 1);
else set(moins50, 'String', '-50', 'fontsize', 1.8*po_acc, 'value', 1);
    corde_string=['Corde du ', corde, ': il faut la resserer'];
end

action=uicontrol(fenetre, 'style', 'text');
set(action, 'fontsize', police_action, 'position', [0,yhaut-150,xhaut,50]);
set(action, 'String', corde_string);

frequence_lue=uicontrol(fenetre, 'style', 'text');
set(frequence_lue, 'fontsize', 13, 'position', [0,yhaut-200,xhaut,50]);
set(frequence_lue, 'String', ['fréquence jouée: ',num2str(f_lue), ' Hz']);

frequence_p20=uicontrol(fenetre, 'style', 'text');
set(frequence_p20, 'fontsize', 8, 'position', [xhaut-420,yhaut-245,50,15]);
set(frequence_p20, 'String', num2str(fmax_accorde));

frequence_m20=uicontrol(fenetre, 'style', 'text');
set(frequence_m20, 'fontsize', 8, 'position', [380,yhaut-245,50,15]);
set(frequence_m20, 'String', num2str(fmin_accorde));

frequence_p4=uicontrol(fenetre, 'style', 'text');
set(frequence_p4, 'fontsize', 8, 'position', [xhaut-50,yhaut-245,50,15]);
set(frequence_p4, 'String', num2str(sav2dec(dec2sav(f_reference)+ton/4)));

frequence_m4=uicontrol(fenetre, 'style', 'text');
set(frequence_m4, 'fontsize', 8, 'position', [0,yhaut-245,50,15]);
set(frequence_m4, 'String',num2str(sav2dec(dec2sav(f_reference)-ton/4)));

accordage=abs(dec2sav(f_reference)-dec2sav(f_lue))/ton;
if (accordage<1/20)
    valeur_slide=100*accordage;
elseif (accordage>1/4)
    valeur_slide=55;
else valeur_slide=250*accordage-15/2;
end

if(f_lue<f_reference)
    valeur_slide=-valeur_slide;
end

set(slide, 'Value', valeur_slide);


end

