Fs = 192000; %vzorkovaci kmitocet zvuku
%USES NHON,GRAPH,CRT;

% VAR X0, Y0,
%     XS, YS,
%     R1, R2,
%     A1, A2,
%     T,
%     N,  RS        :REAL;
%     SPOJ          :BOOLEAN;
%     X,  Y,  Z     :INTEGER;
% 
% 
% 
% 
% 
% BEGIN

   % střed obrazce, sloužilo k umístění na obrazovku, může být [0 0]
   X0 = 0;%200;%{REFERENČNÍ BOD - NAHO�?E UPROST�?ED}
   Y0 = 0;%200;

   R1 = 100;%{POLOMĚR VELKÉHO KOLEčKA}
   R2 = 30;%{POLOMĚR MALÉHO KOLEČKA}

   %A1 = 0;%{VÝCHOZÍ NATOČENÍ}
   %A2 = 0;


   T  = 0.7;%{SLEDOVANÝ BOD (1=okraj, 0=střed)}

   N  = R1*100;%{POČET OT�?ČEK}
   RS = 180;%{BODŮ NA OT�?ČKU}

   A1 = 0:2*pi/RS:N;% parametry
   A2 = ((R1/R2)-1)*A1;


   %SPOJ = TRUE;
   Z    = 0;

%   randomize;
%   ZJISTIGRAFIKU;
%   DIRECTVIDEO := FALSE;
%REPEAT
%   Y0 := (GETMAXY/2)+ R1; 
%   X0 :=  GETMAXY/2     ;
%   SETCOLOR(CYAN);
%   CIRCLE(TRUNC(X0),TRUNC(Y0-R1),TRUNC(R1));
%   SETCOLOR(WHITE);
   %    XS = X0 + (R1-R2)*SIN(A1);
   %    YS = Y0 - R1 - (R1-R2)*(COS(A1));
   %    A2 = ((R1/R2)-1)*A1;
   %    X  = TRUNC(XS+R2*T*SIN(A2));
   %    Y  = TRUNC(YS+R2*T*COS(A2));
   %    MOVETO(X,Y);
   % REPEAT
      XS = X0 + (R1-R2)*sin(A1);
      YS = Y0 - R1 - (R1-R2)*(cos(A1));
      A2 = ((R1/R2)-1)*A1;
      X  = (XS+R2*T*sin(A2));
      Y  = (YS+R2*T*cos(A2));

      %{PUTPIXEL(TRUNC(XS),TRUNC(YS),YELLOW);
      %SETCOLOR(RED);
      %CIRCLE(TRUNC(XS),TRUNC(YS),TRUNC(R2));
      %SETCOLOR(CYAN);
      %LINE(TRUNC(XS),TRUNC(YS),TRUNC(XS+R2*SIN(A2)),TRUNC(YS+R2*COS(A2)));
      %DELAY(3);
      %SETCOLOR(BLACK);
      %CIRCLE(TRUNC(XS),TRUNC(YS),TRUNC(R2));
      %LINE(TRUNC(XS),TRUNC(YS),TRUNC(XS+R2*SIN(A2)),TRUNC(YS+R2*COS(A2)));
      %PUTPIXEL(TRUNC(XS),TRUNC(YS),YELLOW);}
      %IF SPOJ THEN LINETO(X,Y) ELSE PUTPIXEL(X,Y,WHITE);
      %PUTPIXEL(TRUNC(X0),TRUNC(Y0),LIGHTGRAY);
      %DELAY(Z);
      %A1 = A1 + 2*PI/RS
   %UNTIL {A1>N*2*PI}KEYPRESSED OR (A1>N*2*PI);
   %if keypressed then readkey;
   %delay(25);
   %CLEARDEVICE;
   %GOTOXY(1,1);
   %R2 := R2 + 1;
   % if true then begin r1 := random(170)+20;r2 := random(round(3*r1))+1;t := random(200)/100+0.1;n:=r1 end;
   % A1 := 0;
   % WRITELN(R1:10:2);
   % WRITELN(R2:10:2);
   % WRITELN(T :10:2);
%UNTIL T>4;
   % CLOSEGRAPH;
   
   figure
   plot(X,Y)
   figure
   subplot(3,1,1)
   plot(X)
   subplot(3,1,2)
   plot(Y)
   subplot(3,1,3)
   plot(X,Y)
   axis equal
   %subplot(2,2,3)
   
% odstranění stejnosměrné složky
X = X - sum(X)/numel(X);
Y = Y - sum(Y)/numel(Y);
   
   
% hodnoty nutno znormalizovat (zápis do wav vyžaduje rozsah od -1 do +1)
M = max(abs([X Y]))*1.01 % pro jistotu přidávám 1%
X = X / M;
Y = Y / M;

figure;
plot([X; Y]')
%hold on
%plot(Y)


   % pro starší verze
   wavwrite([X; Y]',Fs,['vystup_'  num2str(R1) '_' num2str(R2)  '.wav'])
   % pro novější
%   audiowrite(['vystup_'  num2str(R1) '_' num2str(R2)  '.wav'],[X; Y]',Fs,'Comment','Obrazec')
   
   % prime prehrani

   obj = audioplayer([X; Y], Fs);
  % obj.TimerFcn = 'showSeconds';
  % obj.TimerPeriod = 1;
  %obj.NumberOfChannels=2
   play(obj);   
   
   
   %END