#!/usr/bin/ruby -Ks
require 'Win32API'
beep = Win32API.new('kernel32', "Beep",'LL',"L")
F = {
'ド'=>262,'レ'=>294,'ミ'=>330,'フ'=>349,'ソ'=>392,'ラ'=>440,'シ'=>494,
'ど'=>523,'れ'=>587,'み'=>659,'ふ'=>698,'そ'=>784,'ら'=>880,'し'=>988
}
std_duration = 200
music = ARGV.size>0 ? ARGV.shift : 'ドドレレミミレーミミソソララソーララソソミドレーソソミドレミドー'
music.gsub!(/[ァぁ]/,'')
duration = std_duration
seq = []
music.split(//).reverse.each do |f|
if /ー/ =~ f
duration += std_duration
else
if F[f]
seq.unshift(F[f],duration)
end
duration = std_duration
end
end
0.step(seq.size-1,2) do |i|
beep.call(seq[i],seq[i+1])
end