$ch = 2; $Hz = 44100; $bit = 16; $length = 1; # seconds $PI = 3.14159265357989; sub curve_l { sin(2*$PI*$t*440); } # curve equation (y=???, radian) L, mono sub curve_r { cos(2*$PI*$t*440); } # curve equation (y=???, radian) R print "num2wav ${ch}ch ${Hz}Hz ${bit}bit\n"; for ($i = 0; $i < $length * $Hz; $i++) { $t = $i / $Hz; $left = int (&curve_l * (2 ** ($bit - 1) - 1)); if ($ch == 2) { $right = int (&curve_r * (2 ** ($bit - 1) - 1)); print "$left\t$right\n"; } else { print "$left\n"; } }