北の国からへるぷ!
pi = Math::PI s= 44100 b= 32767 open("sounds.txt", "w") do |f| for t in 1..s do f.puts((Math.cos(2*pi*960*t/s)*b).floor) end for t in 1..s do f.puts((Math.cos(2*pi*770*t/s)*b).floor) end end
ってなソースをもらった。
なんか二種類の音を繰り返したいそうな。
繰り返すだけなら、
pi = Math::PI s= 44100 b= 32767 n = 10 open("sounds.txt", "w") do |f| n.times do for t in 1..s do f.puts((Math.cos(2*pi*960*t/s)*b).floor) end for t in 1..s do f.puts((Math.cos(2*pi*770*t/s)*b).floor) end end end
で、10回繰り返す。
でも、これはひどすぎるんで、せめて
S = 44100 B = 32767 n = 10 def write_sounds(f_io, param) for t in 1..S do f_io.puts((Math.cos(2*Math::PI*param*t/S)*B).floor) end end open("sounds.txt", "w") do |f| n.times do write_sounds(f, 960) write_sounds(f, 770) end end
くらいは、メソッド化しときたい。