%%HP: T(3)A(R)F(.);
@ @ @  VYPOCET AMPLITUDOVE OBALKY
@ List ENVCALC(List waveform);
\<<
  AXL			@	[wave]
  FFT			@	[spec]
  AXL			@	{spec}
  DUP			@	{spec}	{spec}
  SIZE			@	size	{spec}
  DUP			@	size	size	{spec}
  2.			@	2.	size	size	{spec}
  /			@	half	size	{spec}
  \-> size half
  \<<
    DUP			@	{spec}	{spec}
    1.			@	1.	{spec}	{spec}
    GET			@	s[1]	{spec}
    SWAP		@	{spec}	s[1]
    half		@	half	{spec}	s[1]
    1.			@	1.	half	{spec}	s[1]
    +			@	beg	{spec}	s[1]
    size			@	end	beg	{spec}	s[1]
    SUB			@	{hi}	s[1]
    REVLIST		@	{hi}	s[1]
    2.			@	2.	{hi}	s[1]
    *			@	2*{hi}	s[1]
    SWAP		@	s[1]	2*{hi}
    0.			@	0.	s[1]	2*{hi}
    half		@	half	0.	s[1]	2*{hi}
    1.			@	1.	half	0.	s[1]	2*{hi}
    -			@	count	0.	s[1]	2*{hi}
    NDUPN		@	count	0.	0.	...	0.	s[1]	2*{hi}
    1.			@	1.	count	0.	0.	...	0.	s[1]	2*{hi}
    +			@	half	0.	0.	...	0.	s[1]	2*{hi}
    \->LIST		@	{lo}	2*{hi}
    SWAP		@	2*{hi}	{lo}
    +			@	{hilb}
    AXL			@	[hilb]
    FFT			@	[cmplx]
    AXL			@	{cmplx}
    ABS			@	{abs}
    size		@	size	{abs}
    /			@	{envel}
  \>>
\>>
