home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / falcon / m_analyz / source / log_vu.pas < prev    next >
Pascal/Delphi Source File  |  1995-01-15  |  1KB  |  58 lines

  1. program LogVu;
  2.  
  3. uses GemInit, gem;
  4.  
  5. var
  6.     t:text;
  7.     buf: array[1..1024] of byte;
  8.     i:integer;
  9.     a:single;
  10.     pxy:array[0..3] of integer;
  11.  
  12. begin
  13.     if InitGem=false then Halt;
  14.  
  15.     pxy[0]:=0;
  16.     pxy[1]:=0;
  17.     pxy[2]:=WorkOut[0];
  18.     pxy[3]:=WorkOut[1];
  19.     vsf_color(Vdihandle,0);
  20.     vsf_perimeter(VdiHandle,0);
  21.     v_bar(Vdihandle,ARRAY_4(pxy));
  22.  
  23.     for i:=1 to 1024 do begin
  24.         a:=20.0 * Ln(i/1024.0)/Ln(10.0);
  25.         a:=90.0+(a*90.0/20.0);
  26.         if a<0.0 then a:=0.0;
  27.         buf[i]:=Round(a);
  28.     end;
  29.  
  30.     vsl_color(VdiHandle,1);
  31.     for i:=1 to 512 do begin
  32.         pxy[0]:=i+50;
  33.         pxy[1]:=300-buf[i*2];
  34.         pxy[2]:=pxy[0];
  35.         pxy[3]:=pxy[1];
  36.         v_pline(VdiHandle,2,pxy);
  37.     end;
  38.  
  39.     Assign( t, 'LOG_VU.S' );
  40.     Rewrite( t );
  41.     Writeln(t, '        EXPORT log');
  42.     Writeln( t );
  43.     Writeln( t,'        DATA');
  44.     Writeln( t );
  45.     Write( t, 'log:        ;20 dB, for vu');
  46.  
  47.     for i:=0 to 1023 do begin
  48.         if (i mod 16)=0 then begin
  49.             Writeln( t );
  50.             Write(t, '        dc.b    ',buf[i+1]);
  51.         end
  52.         else
  53.             Write(t,',',buf[i+1]);
  54.     end;
  55.     Close( t );
  56.  
  57.     ExitGem;
  58. end.