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 $?