speaker(4)
NetBSDには簡単にドレミファソラシドを演奏できるデバイス(speaker(4))があることに気付いた。ということでRubyでさらっとプログラミング。とっても簡単だ。
ファイル名: spk
#!/usr/bin/env ruby # -*- ruby -*- # $Id: spk,v 1.2 2005/05/14 01:08:07 s-tanaka Exp $ # def play(play_string) open('/dev/speaker', 'w') do |spkr| spkr.write(play_string) end end note = 'cde' if ARGV.size > 0 and ARGV[0] != '0' note = 'edc' end # ref. speaker(4) play("o4l16#{note}p4#{note}p4#{note}")
ただ鳴らすだけでは面白くないので、引数によって音を変えるようにしてみた。引数がないまたは0の時はドレミ↑、引数が0以外の時はミレド↓と鳴る。
例えば以下のように実行すると、makeコマンドの終了時に音が鳴る。またmakeコマンドの成功/失敗によって音が変わる。
$ make; spk $?