% Programme de jeu de notes au clavier
% au CRI, necessite matlab2009a (toolbox Psychtoolbox)
% remplacer la chaine "instrument" par votre instrument
%-------------------------------------------------------------
% on fabrique une gamme chromatique (choisir qwerty ou azerty)
%-------------------------------------------------------------
clear all
% clavier qwerty :
% notes = ['a' 'w' 's' 'e' 'd' 'f' 't' 'g' 'y' 'h' 'u' 'j' 'k'];
% clavier azerty :
notes = ['q' 'z' 's' 'e' 'd' 'f' 't' 'g' 'y' 'h' 'u' 'j' 'k'];

Fe = 22050;
f0 = 220;
ht = 2.001^(1/12);
fr = ht.^(0:12)*f0;

T = 1.7;
for k = 1:13
  note = notes(k);
  disp(['Generation du son pour la note ' note '...']);
  eval([note '= instrument(fr(k),T,Fe);']);
end
%-------------------------------------------------------------
% et on joue :
%-------------------------------------------------------------

disp('pour jouer, rentrez une note parmi :');
disp('clavier qwerty : a w s e d f t g y h u j k');
disp('clavier azerty : q z s e d f t g y h u j k');

note = [1 1];

while length(note) > 1
  % ListenChar(2);
  % FlushEvents('keyDown');
  disp('note suivante ? (pour terminer, taper echap) : ');

  code_ascii = GetChar;

  if code_ascii == 27	% code ASCII de Echap
    disp('termine');
    % ListenChar(0);
    break
  else
    note = eval(char(code_ascii));
    sound(note,Fe);
  end
end
