耳慣らし

旧式携帯の電池交換で電話屋へ行ったら、i電話5はいかがですかって勧められたよ。 そこですかさず、10年は使いたいんですけど、簡単に電池交換出来ますかっていじわるな 質問したよ。そしたら、電池交換の代わりに、i電話5、6、7、...と交換してくん ですって。

未来のi電話6とかは、 こちらで確認出来ます。まあ、アプルの奴隷になって どんどんと貢げって事だな。そのうちに、i電話50ぐらいになって、そうなると、背中に背負うか 、腰に差すかだな。中には、アプルとアンドロドロイドの二刀流が至りして。。。

i電話5は、先月の発売だったけど、これ毎年同じ日にしたらどうだろうね。ボジョレーヌーボー みたいに、毎年11月15日は、新i電話の解禁日ですとかね。奴隷はその日に備えて、ちゃんと 購入費用を用意できるんで、殿様もとりっぱぐれが無くていいと思うよ。

まあ、みんな頑張ってお祭りしててね。なんたって、収穫祭ですから。

お祭りと言えば、屋台が出ててみんなそれ相当に儲けているみたいなんだけど、猫も杓子も 儲け方の指南本に手を出しているな。本屋へ行けば、PC系の本は肩身が狭く脇に追いやられ よくわかるiPhoneアプリ開発の教科書【iOS 5&Xcode 4.2対応版】 この手の本が幅を利かせていますよ。これって、昔々のInside MAC本じゃないですか。

おいらは、Inside MACで落第点を取ってから、GUI系はトラウマになっとります。まあ、せいぜい 小遣いを稼いでください。アプルとドロイドの提灯持ちの方々。

モールス信号聞き取り

要らなくなったCQ誌を捨てようと思って、パラパラ見てたら、モールス信号はヘッドコピー しましょうという記事が出てた。

今までは、酷試が有ったので、モールスを聞いてそれを紙に書き出すという方法が主流みたい なんだけど、もうそんなのは時代遅れ。(ああ、自衛隊の通信兵になろうって人は別ですが) 聞いた信号を直接頭の中で理解しましょうってのが、いわゆるヘッドコピーなんだな。

おいらは、昔風に書き取りをやってたんで、全部頭の中で処理するってのにめっぽう弱い。 ヘッドコピーの練習してみっか。でも、机の前に座って、受信機なりWebでSDRを聞くのも ちょいと癪。散歩の時にでも聞けばよかろう。 おっと、CQ出版とGHDがコラボした、CWトレーナー なんてのも有るのね。(と、横目でチラチラ)

うぶ(Debian)の HAM RADIOカテゴリーにMORSEってのが有ったんで、入れてみたけど、電文を 音ファイルにしてくれる機能は無かった。しょうがない、Windowsのアプリ、A1A Breakerで 音ファイルを作るか。

そうすると、電文は暗号(ランダムな5文字列)よりも、英単語の方がいいな。FreeBSDの単語帖 から抜き出そう。

#!/usr/local/bin/ruby

sf = '/usr/share/dict/words'
wl = 5

p = []
IO.foreach(sf) do |w|
  w.strip!
  p << w if w.size == wl
end

c = 0
while( p.size > 0) do
   x = rand(p.size)
   printf("%s ", p[x].upcase)
   p.delete_at(x)
   c = c + 1
   break if c == 500
   puts '' if c % 5 == 0
end
puts ''

5文字の単語を拾い出して配列に格納。後は、ランダムにインデックスを選んで、5単語ずつ 行に並べる。10000を超える単語が出てきたんで、こりゃ多すぎるって事で、500単語で打ち切りに したよ。

こやつの出力をファイルに落とし、A1A Breakerに喰わせたら、wavファイルが出来上がった。 けど、携帯プレーヤーは、mp3しか受け付けてくれない。はて、どうすべ?

3秒考えて、soxを思い出した。有名なアプリなんでWindows用も有るだろうと思って落としてきたよ。 でも、素のsoxはライセンスの関係でmp3のエンコーダーは同梱されていない。

README.win32.txtを見たら、自分で用意しろとな。

Appendix - MP3 Support
----------------------

SoX contains support for reading and writing MP3 files but does not ship
with the DLL's that perform decoding and encoding of MP3 data because
of patent restrictions.

MP3 support can be enabled by placing Lame encoding DLL and/or
MAD decoding DLL into the same directory as SOX.EXE.  These
can be compiled yourself, they may turn up on searches of the internet
or may be included with other MP3 applications already installed
on your system. For encoding/writing, try searching for lame-enc.dll,
libmp3lame-0.dll, libmp3lame.dll, or cygmp3lame-0.dll.  For
decoding/reading, try searching for libmad-0.dll, libmad.dll or cygmad-0.dll.

Instructions are included here for using MSYS to create the DLL's.
It is assumed you already have MSYS installed on your system
with a working gcc compiler.  The commands are ran from MSYS
bash shell.

Obtain the latest Lame and MAD source code from approprate locations.

Lame MP3 encoder  http://lame.sourceforge.net
MAD MP3 decoder   http://www.underbit.com/products/mad

cd lame-398-2
./configure --disabled-static --enable-shared
make
cp libmp3lame/.libs/libmp3lame-0.dll /path/to/sox

MAD libraries up to 0.15.1b have a bug in configure that will not allow
building DLL under mingw.  This can be resolved by adding LDFLAGS
to configure and editing the generated Makefile to remove an invalid
option.

cd libmad-0.15.1b
./configure --enable-shared --disable-static LDFLAGS="-no-undefined"
[edit Makefile, search for "-fforce-mem" and delete it.]
make
cp libmad-0.dll /path/to/sox/

Windowsではいいかげんコンパイルする事も無いんでメニューからMSYSとかは消していたけど 本体は残ってたんで有効利用したよ。

wavからmp3に変換するには結構時間がかかるんで、バッチいファイル、もとえ、bashスクリプトも 書いておいたよ。

sakae@NIL /c/app/CW/sox-14.4.0
$ cat make-mp3
#!/bin/sh
sox a.wav a.mp3
echo convd a.wav
sox b.wav b.mp3
echo convd b.wav
echo Done

変換したのを視聴。playってのは、soxの別名ね。

$ play a.mp3

a.mp3:

 File Size: 11.1M     Bit Rate: 64.0k
  Encoding: MPEG audio
  Channels: 1 @ 16-bit
Samplerate: 44100Hz
Replaygain: off
  Duration: 00:23:04.78

In:7.45% 00:01:43.10 [00:21:21.68] Out:4.55M [!=====|=====!] Hd:0.3 Clip:0

こうして作った音を散歩の時に聞いてみたけど、いきなりの5文字単語はちと荷が重い。最初は 3単語ぐらいが適当かな。だったら同じ要領で作ればいいんだろうけど、、、

実戦に即して

QSO中に出て来る単語の方がより戦力になるだろう。まずは、 基本英単語Q符号CW略符号 を題材にしよう。

まずは、3文字単語をなぞってコピーし、それを入力モードにしたvimに貼り付ける。

:%s/ /^V^M/g

全てのスペースを改行に変換

:g/^$/d

空行が出来るので、それを除去。これで、一行一単語にファイルになったんで、適当な名前を 付けてセーブ。

Q符号はWebの表になってるんで、表をなぞってコピーし、適当なファイルに落とす。

awk '{print $1}' Q3.txt

頭(Q符号)の部分を抽出。ごみが残っているので、vim上で除去。

最後のCW略符号は、世界標準のEXCELファイルなんで、そのまま落としてきてからCSVにして FreeBSDに持ち込み。上の要領で、一行一単語に変換。

こうして出来たファイルをcatで繋げてから、上のrubyスクリプトをプチ変形したものに喰わせる。 そうすると、A1A用の原稿が出来上がりますだ。

CUL SWL TRX WRK SEE
NCS XYL HVY QSZ QSB
QSL FER GOT DIE GLD
AND TTS SON BTU ADD
CLD QSK HAD LVG MSG
QCM OFF NOT QBT CNT
DID QRQ SAW BTR OUR
THE QSD TXT QLZ TWO
QSU ANI URS ANY WAY
LID QTH CSE ONE VVV
SHE VFB AIR BUG GUD
LNG YOU NOR PWR RNG
CMG QSN ASK ABT RED
WHO QRP BCK SRI USE
END TMW BTW ITS WUD
SET BTH QRI STN QSY
GET CAR GND BCI QRY
QTA PUT CLR ARE SAY
QSV TFC QSP WAS ANS
TOO HER WAR LTR SAT
CAN TRE QRW LOW QRA
ANT QRH CRD SUN PSE
MAN ACT GVG SND BUT
QSX MGR QRK WTS CUT
NIL QRO TVI MOM QRX
VFO OUT MAY QRS QOD
NOW QRZ HOW QRN BOY
AGN QLF CBA YTD FAR
GOD BIG HRS QSA HPE
LSN HRD AGE BCL QSO
LAW LET QSM FOR MRS
UFB SIR OLD EYE CRY
MEN DSW WID QRG CFM
NEW ILL SVC WKD HNY
PAY CUD RIG QSG MNI
QRU TRY QRL YES EYE
CKT RST QSW FEW HVG
QRV CLG OWN WKG LIE
SED YET SUM QIF ALL
HAS RUN ARM QTC SEA
HIM QTR CUZ HIS WPM
WHY TEN QRT AGO

hstのスピードも凄いけど、 こちらの方はキー捌き、半田こて捌きが抜群。

RufzXPこちらでは、世界記録(?)が公開されています。

Web以外のruby

最近のruby界隈はWeb用の道具に成り下がっている寒がする。(こう思うのはおいらだけ?) 最近はSDとか読まないのでChefとか知らんがな。 まあ、chefもWeb屋さんの道具ちゃ道具だけんね。(だから、折角のるびま記事も見落としていたって訳、 と、いい訳しときましょ)

soxをコンパイルした勢いで、Windows7にもrubyを突っ込んでみたけど(自前でコンパイルしたよ)、ちょいと学術的な 事をしたいぞ。そんなんで、探してきたのが、

離散フーリエ変換でRuby練習

離散コサイン変換でRuby練習

いい香りがします。香り高さは、きっとコーヒースクリプトの上を行くでしょう。所詮、 あちらは、インスタントコーヒーですから。あっ、インスタントが好きな人も居るから 差別発現になっちまったな。

マグネチックループアンテナを計算する なんてのを紹介しますんで、許してちょ。

Win版ならIronRubyって言う手も有ったな。