SVX日記
2006-06-05(Mon) RHCEって、なに?
それはそうと、今日から一週間、水道橋のレッドハットの教室で「RHCE速習エキスパートコースRH-300」というのを受講するコトになっていたりするのであった。水道橋は、秋葉原から総武線で2区間。オイラの中で秋葉原、御茶ノ水、水道橋といえば、神田川の崖っぷちを走る印象的な車窓を思い出す……こりゃ、歩くしかない(!?)ってモンである。
つくばエクスプレスの秋葉原ホームから、地上に出るまで5分。馴染みの日米商事を横目に、坂を上って下りて……やっぱり、なかなかの景色だ!! ……で、20分チョイくらいで水道橋である。右側には後楽園遊園地。おぉ!! レッドハットの教室のすぐ下にはサブウェイが!! オイラ、ココのサンドイッチが好物なんだよね。昼はココにしよう。
教室に着く。フツーのデスクトップパソコンとブ厚い教本。月曜から木曜まで講義を受けて、金曜が実技試験というスケジュール。講義の最初に、合格は難しいような脅しっぽいコメントを受けるが……どー考えても、毎日トラブルシューティングしまくっているオイラが受からないわきゃぁない。ナメきって講義中ハナクソをホジくりまくっていない限りは、大丈夫だろう。
講義の内容は平易。ただ、網羅的にすべての項目の表面をナデていくので、新たな発見があったりして、かなり楽しい。オイラは「"fdisk -l"して表示されるBlocksの"+"は半端シリンダ(512バイト)を示す」なんて重箱の隅な知識を持っている反面「fdiskでパーティションを切ったあと"partprobe"すれば再起動不要」なんてコトを知らなかったりするからなぁ。
さて、昼は予定通りサブウェイ。オイラはベジーデライトという一番安い「草」しか挟まってないヤツをダブルサイズで食うのが好きなのだが……アレレ? なんだか食べ終わっても満足感がない……ナンデ? 挟んである草の量が少なかった……? 外のオープンなテーブルで気分よく食べたのだが、なんだかガッカリ。一週間食べ続けようとまで思ってたけど……ちょっと再考の余地ありだな。
午後からも講義……しかし、演習の時間が長すぎる……あまりにヒマなので、自分のノートPCを取り出して、例の「キーボードでキーボード」のプログラムを進めてみちゃったりしてしまう……って、あれあれ、完成しちゃったよ。結局、Cではなく、Rubyで書き切ってしまった。ココ数日、チョロチョロと調べモノしたりして準備してたけど、その経緯をまとめると……
・cygwinにインストールしたsoxに付属のplayを利用するとタイムラグがデカすぎて使えないので……
・playの中身を見たら……シェルスクリプトで「sox xxx.wav -t ossdsp /dev/dsp」をやってるだけぇ!?
・てことは、cygwinでも/dev/dspに書き出せば音が出るのかなぁ……あ、コレがOpenSoundSystemってヤツ?
・「/dev/dsp」でググったら、リアルタイムに波形を生成とかしてるプログラムとかあんじゃんよ
http://www.media.t-kougei.ac.jp/~nagae/v4l/snd/sndtest.html
・コレの#include <linux/soundcard.h>を<sys/soundcard.h>に変更したらcygwinでも動くし
http://manuals.opensound.com/developer/ioctl.html
・/dev/dspに書き込むと音は出るが、バッファに溜めすぎると次の音が出せないのかぁ
http://homepage3.nifty.com/rio_i/lab/oss/005realtime.htm
・そういう時は、ioctlのSNDCTL_DSP_SETFRAGMENTでバッファの粒度を小さくするといいらしい
・……と、思ったら、cygwinではバッファの粒度を小さくできないらしい
・なんにせよ、ioctlのSNDCTL_DSP_GETOSPACEでバッファの状態をチェックできるようなので
・バッファに溜めすぎないよう小出しにしつつ、正弦波を重ねる処理をすればいいってコト
・結局、予定通り、音を出す部分はデーモン化して、UDPで制御するようにして……完成!!
さて、そんなこんなしているうちに講義も終わり、サッサと帰路につく……帰路には秋葉があるので当然、寄る……が、昼飯が少なかったからか、回る気力がない……とりあえず、欲しかったアルペジオ用のピックを探しにLAOXのMUSIXVOXへ行く。