SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|

2006-05-03(Wed) ギターのチューナを作りだす

  久々……でもないが、ちょっとした事情によってGWはどこへも出かけられないので、1日くらいは秋葉でのんびりと買い物をするのであった。

  まずは、日米商事。掘り出し物を探しに行ったが、これといって見つからず。消費しがちなパスコンを補充しておくコトにした。10個42円の0.1uFを、チマチマと100個数えてレジに持っていく……あ、そうなんすか、言ったら目方売りしてくれたんすか。んじゃ、今度からそうします。

  画像の説明

日米商事
積層セラミックコンデンサ 0.1uFx100\420

  一応は、千石。先日作成した「USB-EX-CP」は、大変便利に使っているのだが、PCとの接続距離に対してUSBケーブルがゴツいもんだから、取り回しがよろしくない。できるだけ、柔らかい、短めのUSB2.0対応ケーブルがあるといいんだが、巻き取り式ケーブルだとUSB2.0対応じゃないし……ん!? 巻き取り式ケーブルのクセに2.0対応品!? か、買ったッ!! ……あとは、地下で激安の組み込み式可変抵抗、ちょっと使う予定のあるオーディオジャックをいくつか。

  画像の説明

千石電商
USB2.0対応巻取りケーブル 0.8m Aオス-Aメス\480
可変抵抗器(5種x2)\10x10\100
φ2.5モノラルジャック\30
φ2.5モノラルプラグL型\40
φ3.5モノラルジャック\50
\700

  で、秋月。最近、コンスタントにFT232BM/FT245BM変換基板が出るんで、商品のピンヘッダを補給。先日、消費したDCジャックも補給。ココんトコ、ちょっと音を出してみたいと思っているので、圧電スピーカとオペアンプも適当に。あとは、ちょっとアルカノイドにハマってみたいので、ボリュームコントローラを自作しようと、ロータリーエンコーダをコレも適当に。

  画像の説明

秋月電子通商
ピンヘッダ 2x40x4\200
ピンフレーム 2x5x10\200
ピンフレーム 2x10x10\200
DCジャック\20x3\60
圧電スピーカx2\100
オペアンプ NJM4580DD\50x2\100
ロータリエンコーダ\200
\1,060

  軽く、トライアミューズメントタワーでロストワールドする。途中、バリアボールを破壊する直前あたりで、アメーバにバウンドのサテライトを喰われるという痛恨のミスをしたもんだから、バリアボールが2つしか破壊できず、かなりのジリ貧になったものの、なんだかんだでホーミングレーザもシルフィーの服もギリギリ買えてクリアできた……しかし、いいゲームだねぇ。なかなか飽きないよ。

  その後、初めてヨドバシカメラに行く……というのも、先日、突然にギターを再開したくなったからだ。ところが、チューナがないわ、カポもないわ。初心用の教本も、村下孝蔵の歌本まで見当たらない。そもそも、ギターを弾こうにもその環境もない……というわけで、サイレントギターという音の出ないギターを物色しに行くのである。

  手にとって弾いてみると、意外と大きな音がするような気もするが、ほかに選択肢はないし買うならコイツかなぁ……と目星を付けつつ、とりあえず、いま手元にあるエレアコで指慣らしだけでもしようかと、チューナを物色する……が、どこかにしまいこんであるハズのモノを、たとえ数千円といえど、購入するのは気が引けるので、そのまま店を後にする。

  もうひとつ、楽器屋の場所をチェックしておいたので、ヨドバシの更に裏に向かう。こっちはモロにギター屋さん。サイレントギターの展示はないが、風変わりなチューナを発見した。な、なるほどッ!! LEDの点滅でチューニングするってのかッ!! こ、コレだッ!!

  画像の説明

  そそくさと帰路につきつつ、家の近くの西松屋で「キッズキーボード」というオモチャのキーボードを買う。楽器をやるなら、キーボードくらいあってもいいだろう。ちょっと以前から欲しかったのだが、そんなに本格的にやるつもりはないので、お金をかける気はなかったのだが……なんと、コイツは驚きの1,000円なのだッ!! うははは。

  画像の説明

  家に帰って、さっきのチューナをググる。どうも「PLANET WAVES PW-CT-06 ピック型チューナー」という商品らしい。メーカサイトは発見できなかったが、ブログで紹介しているのを発見した。よし!! 作ってしまえ!!

  手持ちのジャンク箱から、部品を物色する。ケースをいろいろと考えたが、電池を入れられる適当なケースというと……例の「へぇボタン」になってしまうんだな、コレが。まだ、ストックがあるので、コイツに決定。PICはどうしようか。いつもの12F675でもいいのだが、今回はクロックの精度を確保したいので、内蔵オシレータでなく、水晶で動かしたいし……手元に手ごろな水晶がないや。じゃ、8MHzのセラロックで。コイツは絶対精度はイマイチだが、温度変化は少ないらしい。つまり補正すればかなりの精度を確保できるってコトだ。で、セラロックを使うなら、PICは最近もてあまし気味だった16F84Aを使うことにしよう。最後にジャンク箱から100円モデムからサルベージした圧電ブザーを取り出し、基板をパキッと半分に割ったら、部品の調達は完了だ。

  目的はギターを弾くコトなので、チューナ作りに熱中しても仕方ない。ササッと回路をデザインして、ササッとハンダ付けする。

  画像の説明

  と、ゆーところで、ソフトウェアはまた明日。では。


2006-05-04(Thu) ギターのチューナ製作、理論の巻

  まずは、ギターのチューナの理論である。音の基本はA(ラ)のキーで、これは440Hz。1秒間に440回、空気を振動するとAの音となる。ギターでは5弦を押さえずに鳴らした時、この音になるのが正しく、耳でちゃんとチューニングできる人は、440Hzで鳴る音叉でコイーンと机を叩いて、その音を頼りに5弦をチューニングし、あとの弦はこの5間を元に順に合わせていく。まとめるとこんな感じだ。

6弦 E  330Hz 5弦 -5フレット
5弦 A  440Hz      0フレット
4弦 D  587Hz 5弦 +5フレット
3弦 G  784Hz 4弦 +5フレット
2弦 B  988Hz 3弦 +4フレット
1弦 E 1319Hz 2弦 +5フレット

  こいつを、時間周期に変換する。変換するスクリプトは以下のtune.rbだ。

#!/usr/bin/ruby
 
key = Array['A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#']
fb = 220.0
(0..36).each {|k|
        f  = fb * 2 ** (k * 1.0 / 12)
        us = 1000000 / f
        printf "%2s: %12.7f Hz %12.2f us / 4 = %12.2f us\n", key[k % 12], f, us, us / 4
}

  必要なトコだけ抜き出すと以下のようになる。

↑6弦
 E:  329.6275569 Hz      3033.73 us / 4 =       758.43 us
 A:  440.0000000 Hz      2272.73 us / 4 =       568.18 us
 D:  587.3295358 Hz      1702.62 us / 4 =       425.66 us
 G:  783.9908720 Hz      1275.53 us / 4 =       318.88 us
 B:  987.7666025 Hz      1012.38 us / 4 =       253.10 us
 E: 1318.5102277 Hz       758.43 us / 4 =       189.61 us
↓1弦

  4で割っているのは、弦の振幅の1/4だけLEDを点灯させるためだ。とりあえず、これで光らせてみる。音での確認用に圧電ブザーもつけたので、プログラムは以下のようになる。

1) ブザーON、LED点灯
2) 568.18 us 待つ
3) LED消灯
4) 568.18 us 待つ
5) ブザーOFF
6) 568.18 us 待つ
7) なにもしない
8) 568.18 us 待つ
9) ボタンが押されたら、待ち時間を次のキー用に変化する
10) 1)に戻る

  さて、早速ギターを取り出そう。で、LEDで弦を照らしながら、爪弾く。LEDの赤い光が止まって見えたら、チューニングOK。動いていたら弦のテンションを調節する……しかしどうも、赤い光が点にならない。止まりかけても4つに見えてしまう。なんでだ? ……というトコロで、夜も遅いのでギターをポロンポロンするワケにもいかなくなり、工作は終了。おやふみ。


2006-05-05(Fri) ギターのチューナ完成

  赤い光が点にならないので、チューニングが難しい。そういえば、オリジナルでは赤い光がふたつだったのを思い出し、青いLEDを追加して、位相をズラして点灯させてみる……が、やっぱりうまくいかない。ちゃんとチューニングできている気がしない。

  画像の説明 画像の説明

  どーしてかなぁ……点灯回数を半分にしてみるか……おぉ!? なに!? じゃ、更に半分……うわぉ!!

  画像の説明

  ……ちゅーわけで、なぜか、点灯周期を4倍に延ばしたトコロ、赤い光が1点に収束するようになった。理論はわからんが、なにしろコレでうまくチューニングできるっぽい。実際、うまくできる。よっしゃぁ!!

  で、最後の仕上げ。今までは、セラロックが8MHzキッカリであると想定してプログラムを組んでいたが、実際にはセラロックには初期誤差があるので、その誤差を修正する。修正方法は簡単。セラロックが8MHzキッカリであると想定して、20秒(8MHz時に2,000,000インストラクション)周期で正確にLEDが点滅を繰り返すようにプログラムして、手元のナビホークのストップウォッチで周期を計測する。LEDが点灯した瞬間にストップウォッチをスタート、10秒後に一旦LEDが消灯し、再度LEDが点灯した瞬間の時間を計測するのである。

  なお、人間の反射神経では、点灯してからボタンを押しても大した精度は期待できない。だから、長期間計測することによって誤差を収束させる。最後に1発でもいいのだが、暇なのでラップタイムを次々に計測してみた。結果は以下のとおり。

 理想           現実           誤差
 9:40.00         9:36.64        99.421%
10:20.00        10:16.39        99.418%
11:20.00        11:16.05        99.419%
12:20.00        12:15.70        99.419%
13:00.00        12:55.49        99.422%
13:40:00        13:35:24        99.420%

  というワケで、99.420%を採用。このセラロックは8MHzより0.58%速いようである。0.9942の逆数は1.00583だ。つまり、実行インストラクション数を1.00583倍してやればキッカリの時刻を刻むハズである。実際にやってみる。点滅周期をナビホークの動きと比較してみると……30分経っても、目視では誤差が確認できないほどの同期レベル……完璧ッ!!

  で、さっきのコード、tune.rbの「us = 1000000 / f」を「us = 1005830 / f」に修正して再実行する。結果は以下のとおり。

 E:  329.6275569 Hz      3051.41 us / 4 =       762.85 us
 A:  440.0000000 Hz      2285.98 us / 4 =       571.49 us
 D:  587.3295358 Hz      1712.55 us / 4 =       428.14 us
 G:  783.9908720 Hz      1282.96 us / 4 =       320.74 us
 B:  987.7666025 Hz      1018.29 us / 4 =       254.57 us
 E: 1318.5102277 Hz       762.85 us / 4 =       190.71 us

  待ち時間をこっちの値に修正すれば、完璧なチューナの出来上がりである。ココにファイル一式を置いてく。

  なお、後で気づいたが、ギターの5弦の振幅数は440Hzでなく、110Hzだった。そりゃ、点灯周期を4倍に延ばしたらうまくいったハズである。オマケに言及しておくと、6弦と1弦は振幅周期にちょうど4倍の差があるから、1弦の点灯間隔にして、6弦に照射すると、最初の時のように4点が光る。あぁ、なんとインタレスティングなッ!!

  ……と、面白がってチューニングに熱中していたら、カミさんに「で、ギターは弾かないの?」ってツッコまれた……だって、コードの指使いが載っている教本も、コードが載っている歌本も見当たらないんだもん……とりあえず、ココココで情報収集。シツコく探していたら、某所で筋肉少女帯の「機械」のコードも発見!! コレ、歌ってみたかったんだよねぇ……あとは、カポか……どこに行ったのかなぁ、シャブカポ。結構、高かったんだよなぁ、アレ。

  画像の説明

  しかし、ギターを弾きたい人はこんなに苦労してチューナを自作したりせず、サッサと買ってしまって、サッサと練習を始めましょう。こんなに時間をかけるのは、ただの時間の無駄です。チューナなんて2,000円ソコソコで買えるんだから……ん? なに? ……いーのッ!! オイラはミュージシャン以前にエンジニアなんだからッ!! コレでいいのだッ!!

本日のツッコミ(全1件) [ツッコミを入れる]

かず [はじめまして。 この記事を拝見し、私もチューナーを作ってみました。 特に、弦の周波数とLED点滅周波数の計算はとても..]


2006-05-07(Sun) キーボードを改造す

  さて、今日はキーボードをイジってみる。

  このキーボードは1000円だったが、店には、ほぼ同様の機能で1300円のものがあった。別メーカではあったが、おそらくは内部のカスタムチップに同じものを利用しているのであろう。子供のオモチャではあるが、そーゆーコトまで考えるとなかなかにオモシロいモノがある。

  機能としては、32鍵盤、電子ボリューム、8種類の音色、8種類のリズム、テンポ調節、5種類のパーカッション/動物の鳴き声、8曲のプリセットメロディ、サスティン効果、録音/再生機能まである。スゴいねぇ……最近のオモチャは。なんといっても、これで1000円というのが一番スゴいが。

  ただ、若干の制限もあって、和音が……3つ目のキーが無視されてしまって、3重和音が出ないのだ。しかし、2重和音までは出るぞ。オイラが子供の頃、妹が遊んでいたキーボードはキーを複数押すと、常に高い音が優先されて和音は一切出なかったから、それに比べたら十分だ。

  でもって、電子ボリュームを調節すると、蚊の鳴くような音にまで落とすコトも可能。よって、深夜の演奏にも十分に耐える仕様なのだが……やっぱりイヤホンジャックが欲しい……とッ!! 思い立ったその時が改造日和であるッ!! 抜く手も見せず、ドライバを取り出し、大量のネジで止まっている裏ブタを外し、スピーカーコードの間にφ3.5のモノラルジャックをハサむッ!! こーんな感じ。

  画像の説明

  一応、相手がイヤホンの場合には100Ωの制限抵抗を噛むようにしてみた。早速テスト。ジャックにイヤホンプラグを挿すと、本体スピーカはミュート……んが、しかし、イヤホンから出てくる音はすばらしくノイジィ……イヤホンを抜くとスピーカから出る音は正常……なんで?

  コレは、アレか? もしかしたら、インピーダンスマッチングがナニってゆー事態なのか? いつもはデジタル回路ばかりで、オーディオ信号なんて扱ったコトがないんで、サッパリわからん。まぁしかし、とりあえずは使えるので、突き詰めるのはまた後日にしよう。

  画像の説明

  ついでに足をくっつけてみた。昔、リバーサルフィルムを使いまくっていた時に、オマケでもらった35mmのフィルムケースを利用する。ネジ止めして、取り外しができるように、キーボードの裏ブタにタップを切って……と思っていたのだが、タップの種類を間違えてネジ穴をスカスカにしてしまった。仕方なく、裏ブタの裏に、ホットボンドでナットを接着してその場をごまかす。でも、なかなかイイ感じだ。

  しかし、アレだな。自動リズムでも、手動のパーカッションでもいいが、ギターと合わせて、うまく多重録音すれば、立派なオリジナル曲がコンポーズできそうである。ちょっとやってみるかなぁ。


2006-05-08(Mon) 初めてオペアンプる

  一身上の都合で、電圧を増幅する必要が生じた。そんな時に役立つのがオペアンプという石だ。以前から見聞きはしていたが、なんとなく使う必要がなくて、自分では一度も使ったことがなかった。キットでテレビの修理をした時に、いわれるままに使ったコトくらいか。

  で、やっぱりココでも出てくるのが、ブルーバックスの「図解・わかる電子回路」だ。コイツはオイラが電子工作を始めた日に購入したものだが、先日の555の時にも引っ張り出しているし、なにしろ隙のない素晴らしい名著である。そりゃ、不足している分野だってあるけども、一通りをソコソコの深さで扱っているからこそ、ここまで何度も参照するコトになるのである。やっぱり、素晴らしいコトに変わりはない。

  とりあえずは、オペアンプのカン所をつかもう。ブレッドボード上で動きを実感してみるのだ。先日、オペアンプを適当に購入したし……んが、今日はそれは使わない。というのも、この日記を始める前、秋月で購入したジャンク袋(確か500円で購入)の中に集合抵抗のような形をしたオペアンプが10個くらい含まれていたコトを思い出したからだ。

  早速、DatasheetArchiveで、型番の「AN6561」を検索してデータシートを得る。にゃるほろ、パナの製品か。コンパクトながら、2回路入りとな。中身がわかったら「ワシャワシャ」っとブレッドボード上に生け花をする。

  画像の説明

  ……んがーッ!! 3Vを10kΩx3本で分圧して、1Vを「+」に入力して非反転増幅回路を画策するが、R1に配置した可変抵抗を如何にイジろうと、出力が2Vから動きゃしねぇ……なんでじゃ……そもそも、出力はVccである3Vで頭打ちになるんじゃないのか? なんで2Vに張り付く?

  画像の説明

  つーか、このデータシートのR1とR2って、逆じゃねーかよッ!! ミスプリかよッ!! そういえば、以前もなんかのデータシート……555だっけ? で、式が間違ってたっけ……データシートとはそのように信頼性の低いものなのね……肝に銘じておくべぇよ。

  結局、3Vを100kと10kで分圧し、もう少し小さめの電圧を「+」へ入力して試したら、ほぼ、R1とR2の比率どおりの増幅電圧を得ることができた。オペアンプって簡単じゃん。それから、電圧が2Vで頭打ちになる件も、データシートをよく読んだら「Maximum output voltageは最低の場合Vcc-1.5」て書いてありましたわ……でも、この時の条件には「RL≧2kΩ」ってあるんだけど、RLに関する記述はどこにもない……これって常識的な係数なの? それとも、データシートの記述がいい加減なだけッ!? さっきの555の疑惑を確認しちゃうおうかな……

  画像の説明

  ……やっぱり555だったよッ!! ちゅーか、ナショセミって、コッチもかッ!! 困るなぁ、松下君ッ!! まぁ、ちょっと考えればわかる程度のミスプリだけどさぁ、データシートってそーゆーもんじゃねーんじゃねーの? うん?


2006-05-09(Tue) おかえり、osziFOX

  いつものように工作をしていると……

  画像の説明

  ……んッ!?

  画像の説明

  うおおぉーっとッ!!

  一度、電源切ったら、元に戻ったけどね……再び、サヨウナラ、osziFOX……。


2006-05-10(Wed) 憧れの「クアッドイーサ」ゲット

  ひょんなコトから、クアッドイーサカードを入手してしまった!!

  画像の説明

  コレ、前の職場にいた頃に初めてその存在を知って、憧れていたんだよねぇ……と、いうのも、コレを挿してしまえばPCIの1スロットだけで4つのイーサポートが装備できるのだ。単純に便利で、省スペース。自宅で運用しているサーバったら、ビデオカード、サウンドカード、イーサカードx2、SCSIカード、キャプチャカードでPCIスロットが全部埋まっているからね。

  Sunのサーバについているクアッドイーサを見たときは、一般に売っている製品なんだと思ってた。で、ネットで調べて驚いた。えッ!? 10万ッ!? イーサカードなんて千円で買えるじゃん!! 4つポートがあるから、まぁ、色つけて5千円……そんなもんだろうと思っていたのに。

  まぁ、その頃は単純にスイッチングハブを外付けしたくなかっただけの理由だったのだけどもね。結局は、店でUSB電源で動く5ポートのスイッチングハブを発見して妥協した。これならまぁ、100Vのコンセントを占有することもないし、と。当時は、電子工作に関する知識がまるでなかったから、USBから5Vで500mAまでは取れるとか、そんなコトすら知らなかったからなぁ。そこから電源が取れるスイッチングハブなんて、すばらしく奇妙でグレートなアイテムに感じたっけ。

  もし、当時の自分が今の知識を持っていたなら、安めのスイッチングハブを買って、必要なら電圧を変換する回路を作って、PC内部から電源を取れるようにして、イーサカード上にイーサポートを新設して、スイッチングハブの裏にもイーサポートを新設して、両者をつないで、3.5インチベイにハメ込む……くらいのコトはしそうだな。って、それ便利じゃない? そういう製品はないのかな? ……って、あるのかよッ!! でも、もう売ってないっぽいし、そもそも自作したほうが楽しいよな。

  画像の説明

  脱線したが、このクアッドイーサカード、いくらなんでもデカすぎだ……自宅のサーバに入るかどうか、微妙なところ。そもそも現状でサーバは安定稼動しているし、敢えて停止してまで取り付ける必要があるのかさえ……え? じゃ、なんでこんなゴミを拾ってきたかって? ……いや……その……アレだ……だってぁ……20MHzの水晶が4つも載ってるんだもんッ!! 先日、水晶がなくて仕方なくセラロック使った経緯もあったしね……冒頭で「憧れの」とか断りつつ、我ながら素朴だったあの頃から、憧れもクソもあったもんじゃないジャンク野郎に変貌してしまってますなぁ、あはは、はは……はぁ……。


2006-05-11(Thu) 酒と名曲と1kΩと2kΩ

  工作は遅々として進まないが、ウイスキーの消費量だけはマコトにサクサクと進んでしまう、今日この頃である。

  ホワイトデーの直前に、カミさんへのプレゼントである本と一緒に注文した、寺尾聰の2枚組みのベストCD。今頃になってやっと届いた。恐るべきコトに注文から2ヶ月だ。カミさんのプレゼントの本が入手困難だったらしく、それに巻き込まれた形。以前、Amazonは手配予定日が数日の差でも2回に分けて送ってくれたこともあったが、今回はヒドい……こんなコトなら、各々で1500円以上買っているんだから、最初から別注文にすりゃよかった。

  画像の説明

  ……とまぁ、そんなグチはともかく、CDの内容。まだすべて聴いていないが、なんだろう。ガキの頃に聞き慣れた曲というのは心に残っているというか、聴くと安心できるというか……いいねぇ。しかし、知らなかったのは、ほとんどの曲が、寺尾聰本人の作曲だったコト。そして、ほとんどの曲が、寺尾聰本人の作詞でなかったコト。

  一時は、トップテンに2曲もランクインしたり、10週連続トップだったような、超ビッグヒットを飛ばした曲が、俳優の作曲!? でもって、その歌声や雰囲気にベストマッチな歌詞は本人の作った言葉でない!? ……わからんもんだねぇ。

  しかし、今になって聴くからわかる、切ない歌詞……基本的には、男の失恋を歌った曲が多い。でもって、カッコをつけつつ、心の中で泣いている……先日、初めて聞いたけど、女よりも男の方がひきずる傾向があるってのはホントなのかねぇ……わかる気もするけども……まぁ、オイラもかなりひきずるタイプかもなぁ、確かに。

  子供の頃には気づきもしなかったが、まぁ、映画でも小説でも歌でも、年齢を重ねるにつれて見方が変わってくるものだ。恐らくは、食べ物も、酒も。

  それはさておき、先日、共立電子に注文しておいた、金属皮膜抵抗も届いた。1kΩと2kΩが100本ずつ。こいつでラダー型のDACを組む予定である。ではまた。


2006-05-13(Sat) 久々に指先を痛めつける

  先日、ギターのチューナを自作したが、そりゃもちろん、ギターをまた再開するために作ったワケで……で、やっと注文していたギターが、今日になって届いた。

  画像の説明

  ヤマハのサイレントギターのフォークモデル「SLG-100S TLR」。色は例によって赤。トランスルーセントレッドというヤツで、深い赤の中に木目が透けて見える。こりゃ、憎いほどにイイ色だ。思いッきり、フォークギターっぽくはないケド……それにしても大胆なデザイン……しかし、スゲェ、カッコイイ。

  さて、早速、チューニングして弾き始めてみよう。例によって自作チューナでカッチリとチューニングする。自画自賛で恐縮だが、素晴らしいチューナだな、コレ……で、ジャランとやる。やっぱり、意外と大きな音がするなぁ。ピックでガーンと弾いた場合、アパートの隣の部屋まで聴こえるかといえば、やっぱり深夜に壁が薄い場合にはちょっと気になるくらいかもなぁ。しかしまぁ、親指の腹で弾く分には、そんなに時間を気にしながら弾くほどの音はしない。もちろん、本体のイヤホンジャックからは盛大に音が出るから、問題はないんだけど。

  画像の説明

  しかし、ギターを弾くのは何年ぶりだろうか……7年? 結婚する前、無理矢理カミさんに村下孝蔵の「陽だまり」を聴かせたことがあるような気がする。その頃は、ソコソコは弾けていたハズだが……コードはキレイサッパリ忘れてしまっているぞ。コード表を印刷した紙を見つつ、Cを弾く、Em、Amを弾く……左の指先がイテェ……このイテェ感じ……そう、この感じだけはシッカリと覚えているぞッ!!

  フォークギターを触ったことない人にはワカらないと思うので、どんな感じかを説明すると、左の指の一番の指先、一番イタイであろうと思える場所で、思いっきり弦を押さえる、という感じだ。当然、指はヘコむ。それなのに、思いっきり痛いくらいに押さえているのに、まだゼンゼン押し方が足りない感じ……そんな感じだ。特に人差し指で全部の弦を押さえるコード(セーハ)なんて、痛みをコラえて渾身の力で押さえても、笑っちゃうくらいに押さえられない。ホントに押さえられる日が来るのか……というくらいに押さえられない。さらに、コードチェンジの時には、コレをコンマ数秒のうちに済ませなければならないんだゼ? 現状、秒単位で時間がかかるのに……どう考えても無理だと思う……それが、まさに今のオイラの状態である。

  画像の説明

  ちなみにこのヤマハのサイレントギターだが、発売当初は、これほどの圧力を要求されるスチール弦のフォークモデルは存在せず、ナイロン弦のクラシックギターモデルしか出てなかったらしい。しかし、そのあまりの人気に後からフォークモデルが発売になったとのコトだが……いっそのコト、フォークモデルが発売にならなければ、クラシックギターモデルでガマンしたのに……フォークモデルが出ているなら、そっちを買うしかないじゃないかッ!! ……そして、今日も指が痛いのである。

  しかし、最初にフォークギターを考えたヤツは何を考えているんだろう……と思う。ギターを試作した時点で、こんなに指が痛いのはマズいだろう、そもそも到底押さえられるワケないだろう……と思わなかったのか? もしオイラなら、練習する前に、ギター自体をどうにかする方向に進むと思うんだよな、絶対……

  ……などと、心の中でブツブツと文句をいいつつ、ジャラジャラと雑に音をさせながら、再び指先の先を硬質化させるために「指先を痛めつける目的で」弾く……これ、冗談でなくホントに必要な過程だと思う。確かに7年前にもそれをして、指先からホヨホヨと指の皮がほどけてきて、それを繰り返すことで、多少はちゃんと弦を押さえることができるようになったと記憶しているからだ。

  もうひとつ言うと、ギターを弾く場合、左手の指はスゲェ深ヅメをしなくてはならない。反面、右手は結構ツメを伸ばさねばならない。ホント、なんだか楽器をヒトツ弾くだけで、肉体改造って感じだ。

  そして、この文章をガンガンと打ち込みながら、キーボードを打つたびに、左手の指先に、痛いような、シビレるような、妙な感覚を覚えているのである。指先、早く、硬くなれぇ。


2006-05-14(Sun) オペアンプ実装

  もう1年弱が経とうとしているのか、秋月でTGS2450という硫黄化合物ガス検知センサパーツを買ってから。アナログメータ式のニオイセンサを作ろうと思いつつ、すっかり放置してしまっていた。しかし、最近になって、必死に完成させようとしている。やはり、一度、志したモノを放置しておくのは気持ちが悪い。先日、オペアンプをゴニョゴニョしていたのも、実はコレの完成を目的としていたものだ。

  しかし、アレだ。TGS2450でググっても、2006年5月15日現在、ウチ以外には製造元と秋月以外、ほとんど引っかからないってどういうコトよ!? このTGS2450という部品は、オレサマ専用なのか!? いや、違うな……ウチのサイトのリンク元情報によれば、ソコソコ多くのドコかのダレかがTGS2450でググってウチのページに飛んで来ている。きっとこの部品の使い方に困ってウチに辿り着いたに違いない……がッ!! しかーしッ!! オイラも同じ状況なのだよッ!! うまくセンサの出力を引き出せず、オイラ自身も毎度のようにググっては、自分のページに行き当たっているのだ……。

  こーなりゃ、無理にでも完成させて、ココに記事を書いてやるッ!!

  まず、どうにも不思議なのは、TGS2450のデータシートである。そこには、ガス感度特性として……

Rs= 各種ガス濃度雰囲気中におけるセンサ抵抗値
Ro= 清浄大気中におけるセンサ抵抗値

  ……とあり、Rs/Roは、ガスを検知するしたがって、0.1〜0.01に加速度的に低下するという仕様だとある。しかし、オイラが晩酌に一杯やった後に酒クサい息を「ハァ〜」とやっても、ちっとも変化がないのである。Rsを検知するためのRLとして10kΩなんてデカい抵抗をくっつけているから? しかしそれは、データシートにRoは5.62k〜56.2kΩであると書いてあって、それがガスの濃度によって、1/10や1/100になるっていうからチョイスしたのだ。間違ってないハズなのだが……。

  画像の説明

  究極にやっかいなのは、このセンサは、ヒータにもセンサにも間欠的に電流を与えなくてはならないという制約があるコト。つまり、フツーに電池とテスタで計測することができないのだ。結果、PICで制御しつつ、PICでA/D変換サンプリングして、データをとらなければならない。そうでなければ、オシロ。このよーな状態では、センサの挙動がマズいのか、プログラムがマズいのか、さては回路がマズいのか、その切り分けがとてもムズいのである。

  で、ここ数週間、ボチボチとネチっこく、アレコレとイジっているウチに、どうも、センサの挙動が……つまりはデータシートが疑わしくなってきたのである……いや、どこかでオイラが間違っているのかもしれない……そうかもしれないのではあるが、少なくともオイラの回路上において、オイラのプログラムでは、センサは高々数100Ω程度をウロチョロするだけなのである。少なくとも、オイラの手元にある複数のセンサがそういう挙動をしているのだ。こりゃもう、そういうモンだと思うしか仕方がない。

  こーなれば、10kΩというRLを小さめに変更するテもあるが、電源が単三電池2本である以上、そんなにドバッと電流を流すわけにもいかない。結果としてオペアンプの登場なのである。RLが10kΩのままで、センサの抵抗変化による電圧変化は小さいものの、そいつを10倍くらいに増幅する。でもって、それをPICでA/D変換してやれば、なんとか十分な分解能を確保できるだろう。

  画像の説明 画像の説明

  ちゅーワケで、想定してなかった部品を無理矢理に基板上に詰め込む。こーなりゃ、アチコチにジャンパが飛んだりするのもヤムをえんだろう。ゼロ調整とオペアンプ増幅率調節用に、2つの可変抵抗器をハサんで、イザッ!!

  なんだかちょっとあやしいが、とりあえず、十分にふわぁ〜っと、変化するようになった感じッ!! ほぼ1年ぶりのゲインであるッ!! あとは、2つの可変抵抗器とPICのファームを調整すればなんとかなるかッ!?


2006-05-15(Mon) さらに指を痛めつける

  イテテテテ。


2006-05-18(Thu) 弦を交換……

  ココんトコ、毎晩のように、ギターを掻き鳴らし……サイレントではあるが、十分に音は出ているので「掻き鳴らしている」という表現で間違っていないと思う。当然のように、一朝一夕にはコードは押さえられない。出るのは、ツッカエツッカエな、ビビッたような妙な音ばかりだ。

  しかし、左手の指先は毎日のように変化している。まるで、指先を痛めつけるコトが目的のようにムキになって弦を押さえているのだが、その甲斐あって、一週間も経ってないのに、指先はすでに多少は硬質化してきている。なんかプラスチックでコーティングしたような感触? ……なぁーんつったらいっかなぁ……まぁ、そんな感じ。

  だが、ホントに妙な感覚……仕事でキーボードを叩くのも……痛いとまではいわないが、フツーに指を打ち下ろすのが、ちょっと躊躇されるような感覚だ。

  ちなみに、どこのサイトにも書いてあるが、エレキギターの弦は緩い。そして、ファークギターの弦は過酷に過ぎるほど高い張力だ。押さえるのがツラい。だから、初心者は少しでも緩い弦を張って練習するのがよいらしい。

  画像の説明

  で、ギターの弦には、ヘビー、ミディアム、ライト、エクストラライト、コンパウンドなどがあって……古いギターケースのポケットを探ると……出てきた出てきた、6年半前に買い貯めておいた弦だ。ヤマハのライトゲージ(FS-520)とコンパウンドゲージ(FS-510)、それに、メーカ不明のエクストラライトゲージ。そういえば、1弦だけはやたらと切れたからライトの1弦だけ余計に1本買ってある。なんだか、懐かしいな。

  しかし、ヤマハの弦は1,000円弱もするのに対し、メーカ不明のは280円。どちらも6本セットなのに。この差はなんだろう……なにはともあれ、この軽い弦に替えれば、少しは押さえるのが楽になるだろうか? ……というか、そもそも最初から張ってあるこの弦はどんな弦なんだ?

  調べてみたら、すぐ見つかった。ヤマハのカスタムライト(FS-50)というヤツらしい。この弦も一応はライトなのね……手持ちのエクストラライト、もしくは、コンパウンドに替える……かなぁ……と、思ったが、まだ弾き始めて一週間。もったいねぇからヤメた。

  なんでも、一ヶ月くらいで替えるのがイイという記述がアチコチのサイトにある。これは車のオイル交換と同じで、一ヶ月以下で交換するヤツはほとんどいないという類の意味だろう。まぁ、この弦で一ヶ月はガンバってみるかな。大リーグボール養成ギプスと同じで、後からラクになるかもしれんしッ!!


2006-05-19(Fri) テスター200連発ッ!!

  先日、ラダー型のDACを組もうと購入した100本ずつの1kΩと2kΩの金属皮膜抵抗。なんでもDACを組む時は抵抗値が正確に1:2のモノを使わないとノイズの原因になるらしい……が、どこまで影響するものやら? 疑り深いオイラはフツーのカーボン抵抗で何も考えずに組んだモノと比較をしちゃってみたいなどとも思っているのだが……まぁ、比較するためにはできるだけちゃんとしたモノも組まなければならないワケで……それをさておいても、200本の抵抗器の抵抗値をガシガシと測るという作業もバカっぽくて単純に楽しいワケで……イザッ!!

  画像の説明

  ひたすら、ひたすら、計測する。このテスターは200Ω、2kΩ、20kΩ、200kΩ、2MΩと5つのレンジがある。どのレンジも有効数字は4桁であるから、2kΩで測定する……というか、購入した金属皮膜抵抗の1kΩと2kΩという値も、このテスターの計測特性を踏まえて決めたんだけどね。

  家に帰ってから深夜に200本の抵抗値を計測するなどというバカな作業をするのは時間がもったいないので、職場に抵抗器とテスターを持ち込んで昼休みのヒマな時間に計測する……実は、既に昨日、持ち込んで測り始めていたのだが、いきなりコケ……というのも、テスターの電池が消耗していたらしく、なぜか2kΩのレンジだけ異常に小さな値を示すのだ。測定値も不安定だし……どうも、このテスターの2kΩレンジはダイオードの極性チェックを行うレンジと兼用のせいか、他のレンジとは流れる電流量が違うようだ。先日から2kΩのレンジに合わせた時だけ、電池消耗マークが出ていたのを無視していたのがよくなかった。というわけで、今日はテスターの電池を交換してのリベンジだったりする。

  まぁ、そんな余談はともかく、結果は以下のような感じだった。

  画像の説明 画像の説明

  まぁ、ちょっとアレだが、ほぼ正規分布である。中心部が10kΩや20kΩにならないのは、真の抵抗値がそうなのか、テスターがズレているのか……基本的に1,000円のテスターなので絶対値は信頼していないが、まぁ、そんなことはどうでもいい。個々の抵抗値がほぼ同じなら、影響は少ないだろう。

  一応、DACは8ビットなので、同じ抵抗値を持つ抵抗器を各10本程度は確保したい。一番、潤沢なのは19.91kΩと9.98kΩ。とりあえず、9.98kΩを2本取り出して、つないで測ってみる。こんな感じ。

  画像の説明

  あれ? 意外といえば意外。素直に加算されて、ちゃんと19.96kΩになった。このテスター、絶対値もかなり正確? それとも値がオフセットしてちゃってる? なんにせよ、9.96kΩと19.92kΩの組み合わせがベストと判断する以外ないか?

  ……というわけで、厳正なる選抜試験の結果、精鋭抵抗器部隊が編成されたッ!! DACの回路デザインも、概ねできている……って、ココまでやって出力は圧電センサかよッ!! ……まぁ、とりあえずっスよ、とりあえず。


2006-05-20(Sat) また? 弦を交換……

  先日、注文した「楽勝!コード・チェンジの秘訣」というDVD付きのギターの教本が届いた。ノーテンキな感じの表紙が気に食わないが、なにしろ左手の指使いが勉強できるというもの。ホントはギタースクールかなんかに行ったほうが早いのかもしれないが、そんな時間も金もないし、独学のほうが気楽でいい。ギタースクールに行くという刺激を、行き詰まって放り投げる直前の段階まで取っておくというのも悪くない。

  画像の説明

  思い返せば、6年半前、友人がキャッチした「ギターの新発売イベントで村下孝蔵がミニコンサートをやるらしい」というニュースから始まった。当時、ヤマハがコンパスというエレアコを新発売するに当たり、村下孝蔵監修を謳って売り出したのだ。イベントは、ほんの小さなスタジオで行われたが、あの村下孝蔵が目の前で、そのコンパスを弾きながら彼の曲を歌うのを聞いて、感激したっけ。

  で、その後、その友人と自分でも弾き語りできたらなぁ、なんて話になって、一緒に始めることになった。オイラは素直にコンパスの一番安い7万のモデルを購入したが、友人はラッキーにもゴミ捨て場から適当なギターを拾ってきていたような気がする。しばらくしてから、なにはともあれコードを勉強して、音をビビらせつつ、ツッカエながらも歌える状態にしていたオイラに対し、友人はマジメに前奏の練習から入っていた……アプローチにエラい差があるなぁて笑ったっけ。

  これまたその頃だ、キンキキッズがギターをやり始めたのも。アイツらは既にすっかりと弾きこなしているようだが、始めたのはオイラ達と同じ頃……だけど、アイツらの先生は吉田拓郎だぜ!? ……友人と一緒に、ズルいよな、アイツらッ!! ……って話したっけ。

  それはともかく、今日は休日。久々に、サイレントでない普通のエレアコ、そのコンパスを弾いてみようかな。引っ張り出してきて、まずはチューニング……

  「バンッ!!」

  ……わッ!! 1弦が切れたッ!! そーなんだよね、1弦ってチューニングの時によく切れるんだ。どーしよ。弦のストックはあるけど……今のメインはサイレントギターだしなぁ……でも、せっかく引っ張り出してきたんだし、弦を張らないでしまっておくのは気持ち悪いし……いーや、1弦だけ張り直そう。

  ペグを抜いて、切れた弦を外し、1本だけ予備に買ってある1弦を取り出す。一端をペグに挟んで、もう一端をリールに巻く……巻く方向に気をつけて。ありゃりゃ、1本だけ新品だと、他の5本がサビサビなのが目立つなぁ……まぁいいや。

  改めてチューニングを済ませて、弾く。やっぱりソコソコの音を出したほうが、弾いていて楽しい。それに、いま張ってあるこの弦。何を張ってあったのか忘れてしまったが、結構ヤワらかくて今のサイレントギターの弦よりも押さえやすい気もする。

  画像の説明

  深夜に弾くためにやむを得ず購入したサイレントギターだが、このエレアコとの2本体制は意外といいな。休日はこっちを弾くことにしよう。こんなコトなら、1弦だけでなく、全部の弦を交換すればよかったかな。来週は改めてこのギターを磨きこんで、残りの弦も交換してやろう。


2006-05-22(Mon) マイ・メトロノーム

  仕事が忙しいので、平日には、なかなかまとまった時間がとれず、遅々として電子工作が進まない。こーゆー状況下では、ギターを弾く趣味も悪くないと思う。サッと取り出して、サッ弾き始められるからだ。

  しかし、弾き始める前にチューニングという作業が伴うとそうもいかない……というか、以前から気になっていたのだが、ギターを弾き終わったら弦を緩めなきゃならないってホント? ……で「弾き終わったら弦を緩めるか緩めないか」をネットを検索したトコロ、アチコチで意見が紛糾していた。意見が紛糾しているということはどっちでもいいってコトだ。オイラも以前はイチイチ緩めていたが、そんなことをしていたら、弾くのが面倒になってしまう……というわけで、サイレントギターは緩めないこと決め、そのようにしている。

  話は替わるが、左手の指先がどんどん硬くなってきている。6年半前にギターを弾き始めた時は、ちょっと弾いては左手の指先を押さえ、痛みをコラえながら練習していた記憶があるが、今回は意外と平気だ。あっという間に慣れた感じ。これも中年力なのか? なにはともあれ、指先の痛みに躊躇して弦が押さえきれないという感じはなくなった。だからといって、ムキになって力任せに押さえても、ちゃんと押さえられるワケではないのだが……それでも痛くて押さえられない状態よりは遥かにマシだ。いい傾向である。

  ここ数日、なんとなく調子に乗ってきたので、いつまでもコードチェンジのたびにツッカエてないで、リズムに合わせて練習することにした。そんな時に有効なのが、ギターのチューナに付いているメトロノーム機能だ。ピッピッという電子音に合わせてストロークやアルペジオして一定のリズムを刻むように練習するのである。

  ところが、オイラはギターチューナを自作したものの、メトロノーム機能までは実装しなかった。じゃ、どうするか……

  画像の説明

  ……コレである。先日1,000円で購入した子供用のキーボードだ。明らかにオモチャなのであるが、なかなかどうして、コレがあなどれない。だって「電子ボリューム、8種類のリズム、テンポ調節」機能があるんだぜ。そこに自分でイヤホンジャックを増設してるんだから、これをサイレントギターと併せれば無敵の環境であるといえよう。リズムにはワルツが含まれているのがミソで、3拍子の曲の場合はこれを選択するとグッド。4拍子の曲はロックでもポップスでも適当に。

  イヤホンからの出力をサイレントギターに入れて、サイレントギターからの出力をヘッドフォンで聴く。完璧だ。なんといっても安い。安くて完璧なら、これ以上の完璧はないくらいに完璧だ。

  夢中になって弾いているうちに、午前1時を過ぎてしまっていた。気がつくと、薬指の先の皮が薄くムケている。そういえば、6年前もこんな風になったっけ。昔、プロレスラーの手記に「朝から超ハードなトレーニングをして、小便をしたら血が混じって真っ赤で、なんか、すげぇうれしかった」なんてのがあったが、ちょっと気持ちがわかったような気がする……かな。


2006-05-23(Tue) 笑顔イッペイ

  ネタがないんで、ちょっとバラします。

  画像の説明

  先日から子供用のキーボードを1,000円で買って、最高ッ!! いい買い物したッ!! なんて自慢してますが……実はイッペイのオモチャです。あ、いや……オイラのオモチャなんだけど、イッペイに貸しています。

  画像の説明

  貸すのはいいんだけど、バンバンと乱暴に扱うし、キーを押しっぱなしにするからウルサいし、興奮してよだれを垂らすし、思い切りナメるし……って、いーかげんにしろッ!! もう貸してやらないぞッ!!

  画像の説明

  ……貸しますよ、貸せばいいんでしょ。


2006-05-24(Wed) 百式カポタスト、来るッ!!

  ギターを再開してから、10日あまりが過ぎようとしている。で、フツーなら、ギターの購入と同時に入手すべき必須アクセサリである「カポタスト」だが、今日になってやっと入手することができた。このカポというアイテム、そんなに高くないとはいえ、ソコソコの値段はする。なので、なんとか6年半前に使っていたカポを見つけようと、部屋を散々探し回り、それでも見つからず、かといって新たに購入するのもためらっていたのだ。

  また、カポを入手すると、どうしても勝手に高い位置にカポをつけて、ハイキーで練習してしまう。比較的、高い声まで出る(今はどうだかわからんが)オイラなので、弾き語る分にはさほどの問題はない。しかし高い位置にカポをつけると、フレットの間隔が短くなって弦を押さえるのがラクになるので、それに頼ってしまうのがイヤだったというのも、購入をためらっていた一因ではある。手元にコンパウンド弦がありながら、硬めのライトゲージのまま弾いているのも、しばらくは厳しい状態で練習したいがためだ。

  しばらく厳しい状態で修行を積むと、楽な状態になった時のゲインが大きいというのは、ダライアスの下ルートばかり何度も攻めてボコボコにされていたオイラが、上ルートを選択するなり最終ボスまで到達したという歴史が証明している(?)。

  とはいえ、並行してネットでカポを探してはいた。やはり購入するなら、以前も使っていたシャブカポ(SHUBB CAPO)がいい。小さくて、機能的で、美しくて、確実。だが、多くのネットショップでは、ほぼ定価の2,400円、安いところでも1,600円。しかし、カポだけ購入したんじゃ、送料が高くついてしまう。当然、買いに行ったらもっと高くつく。どこかで安く入手できないかと、探し回っているうち、金色バージョンがあることを知ってしまった!! 金色ッ!! 光り物好きなオイラは値段を忘れて思わず決めかけたが……やっぱり高い!!

  だけど、よく考えたら、別に中古でも構わんよな……と、ヤフーオークションに行ったら……なんだ? 新品なのに激安。しかも送料込み!? ちゃんと金色バージョンもあるぞ……決めた、即決ッ!!

  画像の説明 画像の説明

  ちゅーわけで、この金色のシャブカポは1,450円で入手したものである。実物を見ても、なかなかいい感じの金色だ。サイレントギターは弦を巻くペグの部分が金色なので、なおさらよく似合う。しかし、久々に手にしたシャブカポは、やっぱり、小さくて、機能的で、美しくて、確実だねぇ。

  オイラは赤色が好きだ。次に金色。なんつーか、ハデ好き……ん? オイラはシャアと気が合いそうだな。以前、真剣にレッツノートを購入しようと考えた時も、好きな赤がなくて、金色を考えたし……そういえば金色のMSの「アカツキ」も好きだしな……しかし今日のエントリはなんだ、ギター、ダライアス、ガンダム……オレってヘンなオヤジだな……けけけけけっ。


2006-05-25(Thu) スーパーソニックブームに倒れる

  仕事中に突然の頭痛……なぜだろうと考えるうちに悪寒。なんの前触れもなく風邪をひいてしまったようだ。心が砕ける出来事があったせいかな……早々に帰って、そのまま寝る……。


2006-05-27(Sat) またまた? 弦を交換……

  先週に引き続いて、週末はサイレントギターでなく、昔に買ったエレアコを弾くことにする。先週末、1弦だけ切れたので、1弦だけ張り直したけど、残りの弦もかなり腐っているので、残りの弦も張り直してみた。

  6年半も放ってあったせいで、あちこちホコリだらけなので、弦を外すついでにアチコチ磨きこむ。特にヘッドの部分とか、指板の部分とか、ホコリで白っぽい。弦を外すと思い切った掃除ができるので、思い切ってキレイにする。細かいところまで掃除すると、全体の古ぼけた印象はかなり改善されてきた。なんだかうれしくなってくる。

  新しく張る弦は、ちょっとケチって 手持ちの280円のエクストラライトゲージ。ちなみに、1弦だけは先週に張ったヤマハのライトゲージを残したままで、だ。チャンポンな組み合わせだが、久しぶりに弦を張るので失敗しかねないし、280円の弦は既にサビ始めているし……まぁ、すべては練習がてらだ。

  画像の説明

  ちょっと、ペグへの巻き数が少なめかつバラついたが、特に問題なく弦の張り直しは終了し、チューニングも完了した。新品なのに、トコロドコロ、ちょっとサビてるけど、気分いいねぇ、張り直すと。

  今の練習曲は、村下孝蔵の「歌人」「アキナ」「禁じられた遊び」「一人暮らし」「陽だまり」あたり。孝蔵さんの曲は「Em→B7」というパターンが多くて大変なのだが、やたら多いせいで、なんとなくB7へのチェンジに慣れてきてしまった。30%くらいの確率でビビらずに音が出る。いい調子だ。そのうち「かざぐるま」をやりたいなぁ。前半に鬼の2拍チェンジがあるので、これは相当先になりそうだけど。

  それよりアルペジオがソレっぽく決まるようになってきた。今日はヒマに任せて、一日中ギターを弾いていたのだが、午前はコードチェンジの度にツッカエていたのに、夕方にはビビりや乱れはあるもののツッカエるコトがほとんどなくなっていた。面白いなぁ、自分でも驚くよなぁ。

なんか、どんどん、ギター用に手のドライバが

そろそろ、左手を見ないでコードチェンジをできるように気をつけてみようかしらん。

  左手の指先には、かなりしっかりしたタコ(胼胝)もできてきて、弦が押さえやすく、抑えていても痛みを感じなくなってきた。よっしゃ、よっしゃ。


2006-05-28(Sun) キーボードをキーボード化する

  先日、子供用のキーボードを購入してからというもの、アレコレとそれはそれは幅広く活用しているが、キーボードを購入した最終的な動機は作曲のためだったりする。鼻歌を歌いながら、あーでもないこーでもないと、音を取るためには、キーボードが一番ラクなのである……というか、未だ作曲なんてしたことないので、多分そうだろうと思っているだけなのだが。

  しかしながら、どーにもやる気が出ない。これはイカん。なんでだ? 環境か? ふむん、きっと家に帰ってからだと、やりたいコトが多すぎるからだな。反面、最近は電車の中でやるコトが減っている。そうだ、電車の中でプピプピと作曲してしまえばいいのだッ!! そうだ、そうしようッ!!

  そこで一瞬にして頭をヨギったのが、雑誌Oh!mzの1984年3月号。コンピュータミュージックの特集号だ。オイラが小学校6年の時に購入した3冊目のパソコン雑誌でもある。以後、Oh!mzは休刊になるまで、すべて発売日に買い続けたが、別に全号の目次を覚えているわけではない。んが、たまたま覚えていたので、実家のオヤジに「コレコレの記事を撮影して送ってくれ」とメールした。そうなのだ、すべてのOh!mzはオイラの血肉であり、捨てるなんてもってのほかなので、実家で大切に保管してもらっているのだ。

  翌日、実家のオヤジがメールを返してくれた。そうそう、この記事ッ!! イニシエのX1のキーボードをピアノ風に塗り替えたって記事ッ!! こうすれば、結構ソレっぽく、簡単に「キーボードをキーボード上に再現」することができるのだッ!! しかし、コレを考えた人は頭イイよなぁ……キーボードのズレ幅をしげしげと観察するほどに、まさに「そーゆー風にも使ってくれ」といわんばかりの配置になっているのだよッ!! コレがッ!!

  画像の説明

  黒く塗るキーの位置は、雑誌の写真からパクっちまうとして、問題はキーを黒く塗り分ける方法……なんだけど、オイラには名案があるんだよね……というのも、ちょーどイイコトに実はオイラ、カミさんと色違いのPCを使っているので、ソッチのキーと入れ替えちまうのだッ!! これなら見た目にも美しいままッ!! まさにこういう仕様のPCを売っているかのような仕上がりだぞッ!! 我ながら名案だッ!!

  画像の説明

  ちゅーわけで、こんな感じに仕上がったッ!! 写真ではちょっと控えめな仕上がりに見えるが、実際かなり控えめな仕上がりである。目立ちたがり屋のオイラ的には、ホントはドギツイ方が好みなのだが……まぁ、実際に使う分には十分なので、コレでイイのだッ!! しかし、カッコいいなぁ……。

  あとはキーボード用のソフトを作るだけ(?)である。ササッと自分用に、作曲に特化したアプリを自作するとしようか。うほっほほ。


2006-05-29(Mon) キーボードのキーボード化、ソフトの巻

  とりあえず、帰りの電車の中で「キーの入力検出部」を作り始めてみた。例によってCygwin上でRubyを使って組んでみる。

  作り始めてすぐ、Rubyでリアルタイムキー入力(ちょっと違うけど)って、どうやってやるの? という疑問にブチ当たった。うーん……今回やりたいコトは、以前にcccdct(wavカッター)で作ったインスタントプレイ機能に極めて近いんだよな。すかさず、オイラ用cvsリポジトリからcccdctをチェックアウトして、内容を確認……ん? cursesライブラリを使うと、$stdin.getcの挙動が変わる!? なんだかよくわからんが、特に必要はないけどcursesライブラリはインクルードしとこうか……うんうん、これこれッ!! キーを叩いたらリアルタイムに反応。これでよし。

  あとはキーとサンプルファイルとのテーブルを作りこむだけの単純作業。ただしオイラは「窓使いの憂鬱」を使って、日本語キーボードの上に英語キーボードの定義を被せているので、一部のキーが死んでいる。そこで、チョイチョイとdot.mayuを変更し、死んでいるキーに意味もなく中カッコを割り当てたりする……よっしゃ!! ほとんどのキーが利用できるようになった。キーの入力検出部、完成!!

      1 #!/usr/bin/ruby
      2
      3 require 'curses'
      4
      5 Curses.init_screen
      6
      7 winX = Curses.cols  - 0
      8 winY = Curses.lines - 0
      9 win  = Curses::Window.new(winY, winX, 0, 0)
     10
     11 table = Hash[*[                                                 27, ["Esc",'2cs'],
     12                                              9, ["Tab",'2d'],   ?1, ["1",  '2ds'],
     13                                             ?q, ["q",  '2e'],   ?2, ["2",  '   '],
     14                         ?a, ["a",  '0gs'],  ?w, ["w",  '2f'],   ?3, ["3",  '2fs'],
     15     ?z, ["z",  '0a'],   ?s, ["s",  '0as'],  ?e, ["e",  '2g'],   ?4, ["4",  '2gs'],
     16     ?x, ["x",  '0b'],   ?d, ["d",  '   '],  ?r, ["r",  '2a'],   ?5, ["5",  '2as'],
     17     ?c, ["c",  '1c'],   ?f, ["f",  '1cs'],  ?t, ["t",  '2b'],   ?6, ["6",  '   '],
     18     ?v, ["v",  '1d'],   ?g, ["g",  '1ds'],  ?y, ["y",  '3c'],   ?7, ["7",  '3cs'],
     19     ?b, ["b",  '1e'],   ?h, ["h",  '   '],  ?u, ["u",  '3d'],   ?8, ["8",  '3ds'],
     20     ?n, ["n",  '1f'],   ?j, ["j",  '1fs'],  ?i, ["i",  '3e'],   ?9, ["9",  '   '],
     21     ?m, ["m",  '1g'],   ?k, ["k",  '1gs'],  ?o, ["o",  '3f'],   ?0, ["0",  '3fs'],
     22     ?,, [",",  '1a'],   ?l, ["l",  '1as'],  ?p, ["p",  '3g'],   ?-, ["-",  '3gs'],
     23     ?., [".",  '1b'],   ?;, [";",  '   '],  ?[, ["[",  '3a'],   ?=, ["=",  '3as'],
     24     ?/, ["/",  '2c'],   ?', ["'",  '2cs'],  ?], ["]",  '3b'],   ?\\,["\\", '   '],
     25     ?{, ["{",  '2d'],   ?}, ["}",  '2ds'],  13, ["Ent",'4c'],    8, ["BS", '4cs']
     26 ]]
     27
     28 loop {
     29     key = $stdin.getc
     30     p key
     31     p table[key]
     32 }

  おぉっと!! 次はオイラの降りる駅ではないか。ではまた。


2006-05-30(Tue) プログラムでサウンドをジェネレートする

  今日は「プログラムでサウンドをジェネレートする」つまり「PでSをGする」わけなので、これは「PSG」なのであった。

  昨日、キーボードをキーボード化するためのキー入力部を作ったが、今日は実際の音をサンプリングしてみる……つもりだったのだが、昨日の晩はギターを弾いているうちに眠くなってしまったので、サンプリングしそこねてしまった。サンプル元としては、例のキッズキーボードか手持ちのギターが考えられるが、厳密に言うとキッズキーボードの音色には権利が存在するであろうし……かといって、ギターの音は音長が長く、キーボード用には向かないコトは想像に難くない。

  じゃ、どうすりゃいいか? そこでPSGするのである。プログラムで理論的にWAVを生成してしまうのだ。昨日のネタと被るが、オイラは以前にcccdctというWAVカッターを作った。その時に作ったWAVデータのハンドリングを行うクラスを流用して、理論的に矩形波を生成してしまうのだッ!!

  ……などと考えつつ、駅に着く。今から電車で職場に向かうので、早朝電車プログラミングである。

      1 *** ../cccdct/cccdct    Sat Mar  4 20:39:53 2006
      2 --- maketone    Tue May 30 20:22:30 2006
      3 ***************
      4 *** 32,38 ****
      5     attr_reader :freq
      6
      7     def initialize(name)
      8 !       @file   = open(@name = name)
      9         @riff   = @file.read(4)
     10         @tsize  = @file.read(4).unpack('V')[0]
     11         @wave   = @file.read(4)
     12 --- 32,38 ----
     13     attr_reader :freq
     14
     15     def initialize(name)
     16 !       @file   = open(@name = name, 'r+')
     17         @riff   = @file.read(4)
     18         @tsize  = @file.read(4).unpack('V')[0]
     19         @wave   = @file.read(4)
     20 ***************
     21 *** 344,349 ****
     22 --- 344,389 ----
     23
     24   #-------------------------------------------------------------------------------
     25   #
     26 + # MakeTone
     27 + #
     28 + wav  = WavFile.new(ARGV[0])
     29 + x    = wav.get_info
     30 + p x
     31 +
     32 + def wav.set_gain(b, l, r)                                 # 特異メソッドを付加
     33 +   l -= 0x10000 if l > 0x7fff
     34 +   r -= 0x10000 if r > 0x7fff
     35 +   ll = [l].pack('v')
     36 +   rr = [r].pack('v')
     37 +   if -1 < b and b < @maxBlk
     38 +       @file.pos = @top + b * @block
     39 +       @file.write(ll)
     40 +       @file.write(rr)
     41 +   end
     42 +   c = [l, r].absmax                                       # mixing
     43 +   [c, l, r]
     44 + end
     45 +
     46 + freq = ARGV[1].to_i
     47 + span = 0.8
     48 + maxs = wav.freq * span - 1
     49 + step = wav.freq / freq
     50 + gain = 0x2000
     51 +
     52 + (0..maxs).each {|i|
     53 +   gg = 0xffff - (g = gain * (i - maxs) / maxs)
     54 +   if(i % step > (step / 2))
     55 +       wav.set_gain(i, g, g)
     56 +   else
     57 +       wav.set_gain(i, gg, gg)
     58 +   end
     59 + }
     60 + wav.save_phrase(0, maxs, "wav/#{ARGV[2]}.wav") {|dmy| }
     61 +
     62 + exit
     63 +
     64 + #-------------------------------------------------------------------------------
     65 + #
     66   # Main
     67   #
     68   Curses.init_screen

  ちゃんとクラスとして作っておくとホントにラクできるね。cccdctのWavFileクラスに、ほんのちょっと手を加え、get_gainメソッドの逆にあたる、set_gainメソッドを特異メソッドとして実装する。あとは、周波数を考慮して矩形波を刻んでやったら、既存のsave_phraseメソッドを呼び出せばWAVファイルが書き出される……たったの40行程度の追加で目的が達成できてしまった。試しに再生してみたところ、単なる矩形波だと耳に痛いので、減衰するように修正して……おぉ、正味1時間で任意の周波数のWAVデータを作成するツールができてしまったッ!!

  さらに職場の昼休みには、以前に作ったtune.rbを改造して、各音階の周波数を生成するためのコマンドライン生成ツールを作成して……

      1 #!/usr/bin/ruby
      2
      3 key = Array['A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#']
      4 fb = 55.0
      5 (0..60).each {|k|
      6     f  = fb * 2 ** (k * 1.0 / 12)
      7     us = 1000000 / f
      8     printf "./maketone cccdct_temp.wav %5d %3s\n",
      9         f + 0.5, (k / 12).to_s + key[(k + 3) % 12].tr('A-Z', 'a-z').gsub(/#/, 's')
     10 }

  ……実行結果を、ベロッとやって、プピッとやると、一瞬で各音階のWAVファイルが揃った!! あとは、昨日のキー入力部に……

system("play wav/#{table[key][1]}.wav &")

  ……の行を付加するだけで、キーボードのキーボード化アプリケーション「mukey」の完成であるッ!!

  「ところがギッチョンチョン!!」

  systemで外部コマンドを呼び出すと、プロセス生成(fork?)が重いらしくて、キーを叩いてから発音までのタイムラグが大きすぎてダメダメ……せめて一定ならまだしも、バラつきまであるし……さすがに音楽関係はタイミングにシビアだから、こんな作りじゃ無理があったか……Cでデーモンでも作らないとダメかな……トホホ。

  あ、遅ればせながら、SVX2周年。もう、2年も経ったのか……。