帝力何有於我哉

無職。汎用人型雑用兵器。型式番号: 高木 宏 ( Hiroshi Takagi )

北の国からへるぷ!

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

くらいは、メソッド化しときたい。