function soita(stemma,aikaskaala,nimi)
% 29.6.09  HA (Korpilahti)
% Tuotetaan wav-tiedosto, joka voidaan soittaa esim. Mediaplayerilla.
%
% Ensin ajetaan skripti nuotit, joka asettaa nuottinimille niiden
% taajuusarvot (Hz). Laulutiedostoon (esim. lauluja.m)
% kirjoitetaan nuottien korkeudet ja kestot (esim. alla).
% Esim: Uusmaalaisten laulun alku:
%   Esitet��n stemma 2-rivisen� matriisina, yl�rivin� 
%   s�velkorkeudet, alarivin� kestot alla olevan mallin mukaan.
% Leikkaa/liimaa alla olevat rivit Matlab-istuntoon:
%
% nuotit    % Skripti antaan taajuusarvot nuottinimille.
% savelkorkeus=[d d g h d1 c1 h a g a h g a];
% kesto=[1 1 1 1 3/2 1/2 1 1 1 1 1 1 2];
% Uusmaa=[savelkorkeus;kesto];
% kirjoitalaulu(Uusmaa,1/2,'uusmaa.wav');
%

  if nargin==1
      aikaskaala=1;
  end;      
  savelkorkeus=stemma(1,:);
  aika=stemma(2,:)*aikaskaala;
  
  %% Lis�t��n nuottien v�liin pieni tauko (epsi:n pituinen),
  % jotta saman s�velkorkeuden nuotit erottuvat.
  epsi=0.05;
  savelkorkeus=[savelkorkeus ;zeros(size(savelkorkeus))];
  savelkorkeus=savelkorkeus(:)';
  aika=[aika;epsi*ones(size(aika))];
  aika=aika(:)';
  %%
  N=length(aika);
  FS=4*8192;    % N�ytteenottotaajuus
  y=[];
 for k=1:N 
     t=linspace(0,aika(k),aika(k)*FS);
    y=[y, sin(2*pi*savelkorkeus(k)*t)];    
 end;
 sound(y,FS);
 if nargin==3    
    wavwrite(y,FS,nimi);
 end;
