LS-GL:音


音を出す仕組みを見てみた。

I'm here

I'm here 機能では /usr/local/bin/imhere.sh を実行している。
実行すると、I'm here 音(?)が鳴った。
音を鳴らしていそうなのは、
/usr/local/sbin/miconapl -a bz_imhere 120 am4 d4 f4 am4 d4 f4 dm4 dm4 f4 a4 am4
/usr/local/sbin/miconapl -a bz_set_freq d5
この2行。

それぞれ実行してみた。

/usr/local/sbin/miconapl -a bz_imhere 120 am4 d4 f4 am4 d4 f4 dm4 dm4 f4 a4 am4
は、I'm here 音(?)が鳴ったが、
/usr/local/sbin/miconapl -a bz_set_freq d5
は、変化なし。字面通りブザーの周波数をセットするものか?

/usr/local/sbin/miconapl のコマンド

相変わらず、良くわからない。
-a の次の bz_imhere はパラメータ?単独のオプション?
実行してつぶれるものでもなさそうなので、いろいろやってみる。

コマンドだけ

root@UDE:~# /usr/local/sbin/miconapl
Usage: miconapl ver.1.10(Aug  8 2006) OPTION
 for OPTION
  -d{0,1,2,3} : set debug level
                bit0:function trace
                bit1:pakcet trace
  -i FILE : communication device(/dev/ttyS0)
  -l      : for local debug
  -p      : micon watch daemon
  -f      : no fork for micon watch daemon
root@UDE:~#
いろいろ興味深い事が書いてあるが、、、今日はパス。

肝心の -a が書いてないぞ。

miconapl -a

root@UDE:~# /usr/local/sbin/miconapl -a
/usr/local/sbin/miconapl: option requires an argument -- a
err: argCmd: invalid command. (/usr/local/sbin/miconapl)

root@UDE:~#
-a には引数が要ると。

miconapl -a bz_imhere

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere
err: ComSetBZImHere: must need parameter.

root@UDE:~#
ComSetBZImHere って?
任意の文字列だと思っていたのに bz_imhere には意味があるようだ。
試しに変えてみる
root@UDE:~# /usr/local/sbin/miconapl -a bz_imherE
err: argCmd: invalid command. (bz_imherE)

root@UDE:~#
やっぱり -a の引数には意味がある。

miconapl -a bz_imhere 120

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120
root@UDE:~# 
エラーは出なくなったが、一瞬 INFO と ERROR の LED がついて終わり。
音は出ない。

miconapl -a bz_imhere 120 am4

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 am4
root@UDE:~# 
I'm here 音の最初の音が出た。

120 を変えてみる

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 500 am4
root@UDE:~# 
ずいぶん長くなった。

am を変えてみる

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 b4
a4 より低い音が出た。

コマンド

上で、bz_imhere には意味がある事は見つけたが、 他にはどんな意味を持つ引数がある???

こういうのは標準ファームを grep する。

root@UDE:~# cd /www/cgi-bin/
root@UDE:/www/cgi-bin# grep '/usr/local/sbin/miconapl[  ]-a' *
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_melody 150 e2 a2 c3 b3 a2 c3 a2 b3 a2 f2 g2 e2 e2 e2
 e2");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_set_freq d5");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_melody 200 c4 d4 e4 e4 d4 c4 c4 d4 e4 d4 c4 d4 d4");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_set_freq d5");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_imhere 170 am4 d4 f4 am4 d4 f4 dm4 dm4 f4 a4 am4");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_set_freq d5");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_melody 150 c4 c4 c4 c4 b3 b3 b3 g3 a3 a3 a3 a3 a3 a3
 a3 a3 f3 f3 f3 d3 e3");
task.cgi:                       system("/usr/local/sbin/miconapl -a bz_set_freq d5");
task.cgi:                       #system("/usr/local/sbin/miconapl -a bz_imhere 170 am4 d4 f4 am4 d4 f4 dm4 dm4 f4 a4 am4");
task.cgi:                       #system("/usr/local/sbin/miconapl -a bz_set_freq d5");
task.cgi:                       system("/usr/local/sbin/miconapl -a serialmode_console");
task.cgi:                       system("/usr/local/sbin/miconapl -a serialmode_ups");
task.cgi:               system("/usr/local/sbin/miconapl -a bz_melody 200 c4 d4 e4 e4 d4 c4 c4 d4 e4 d4 c4 d4 d4");
task.cgi:               system("/usr/local/sbin/miconapl -a bz_set_freq d5");
root@UDE:/www/cgi-bin# grep '/usr/local/sbin/miconapl[  ]-a' */*
root@UDE:/www/cgi-bin# grep '/usr/local/sbin/miconapl[  ]-a' */*/*
root@UDE:/www/cgi-bin#
なんだか興味深い引数がいっぱいあるが、ぐっとこらえて bz_melody

bz_imhere を bz_melody に変えてみる

root@UDE:/www/cgi-bin# /usr/local/sbin/miconapl -a bz_imhere 120 am4 d4 f4 am4 d4 f4 dm4 dm4 f4 a4 am4
root@UDE:/www/cgi-bin# /usr/local/sbin/miconapl -a bz_melody 120 am4 d4 f4 am4 d4 f4 dm4 dm4 f4 a4 am4
root@UDE:/www/cgi-bin#
同じ音楽が流れるが、
・bz_melody の方がテンポが早い
・bz_melody は LED の点滅がない
miconapl か、その先で動いているプログラムは、 imhere なら LED を点滅させるというマクロな動きをしているようだ。

音階

いろいろ変えてみた
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 b1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 c1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 e1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 f1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 g1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 h1
err: ComSetBZFreq: invalid parameter. (h1)
少しずつ違う低い音が出たが、h はエラー
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 500 bm1
err: ComSetBZFreq: invalid parameter. (bm1)
bm もエラー
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 cm1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 dm1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 em1
err: ComSetBZFreq: invalid parameter. (em1)

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 fm1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 gm1
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 hm1
err: ComSetBZFreq: invalid parameter. (hm1)

root@UDE:~#
と、指定可能なのは、a, am, b, c, cm, d, dm, e, f, fm, g, gm,

大昔、学校で習った ド=C, レ=D, ミ=E,ファ=F, ソ=G, ラ=A, シ=B, に見える。

数字は音の長さ?

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 a1 a2 a3 a4 a5
同じ長さで音が変った。オクターブ指定?

試しに c1 d1 e1 f1 g1 a1 b1 c2 としたら ドレミファソラシドに聞こえるかと思ったが、

root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 c1 d1 e1 f1 g1 a1 b1 c2
ちょっと違う
b1 を b2 に変えて
root@UDE:~# /usr/local/sbin/miconapl -a bz_imhere 120 c1 d1 e1 f1 g1 a1 b2 c2
とすると、単調増加(汗)しているように聞こえるが、、、
私の耳ではドレミファソラシドなのかどうかわからない(汗)
ちょっと違うようにも聞こえるが、、、(汗汗)

でも、なぜ b でオクターブが変る?

音長(?)

音楽のことは良くわからない。
でも四分音符とか八分音符とかで音の長さを表すこと位は覚えているぞっと。
miconapl では一音一音指定するところがない。・・・できない?

LED 全消灯

いろいろいじくっていたら、LED が全消灯している。
どこかでエラーが出たときに消えたかな?


3周年
ハックの記録
LinkStation/玄箱 をハックしよう

LS-GL:ブザー

Copyright (C) 2006 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市