SVX日記
2006-05-03(Wed) ギターのチューナを作りだす
まずは、日米商事。掘り出し物を探しに行ったが、これといって見つからず。消費しがちなパスコンを補充しておくコトにした。10個42円の0.1uFを、チマチマと100個数えてレジに持っていく……あ、そうなんすか、言ったら目方売りしてくれたんすか。んじゃ、今度からそうします。
日米商事 | |||
---|---|---|---|
積層セラミックコンデンサ 0.1uF | x100 | \420 |
一応は、千石。先日作成した「USB-EX-CP」は、大変便利に使っているのだが、PCとの接続距離に対してUSBケーブルがゴツいもんだから、取り回しがよろしくない。できるだけ、柔らかい、短めのUSB2.0対応ケーブルがあるといいんだが、巻き取り式ケーブルだとUSB2.0対応じゃないし……ん!? 巻き取り式ケーブルのクセに2.0対応品!? か、買ったッ!! ……あとは、地下で激安の組み込み式可変抵抗、ちょっと使う予定のあるオーディオジャックをいくつか。
千石電商 | |||
---|---|---|---|
USB2.0対応巻取りケーブル 0.8m Aオス-Aメス | \480 | ||
可変抵抗器(5種x2) | \10 | x10 | \100 |
φ2.5モノラルジャック | \30 | ||
φ2.5モノラルプラグL型 | \40 | ||
φ3.5モノラルジャック | \50 | ||
\700 |
で、秋月。最近、コンスタントにFT232BM/FT245BM変換基板が出るんで、商品のピンヘッダを補給。先日、消費したDCジャックも補給。ココんトコ、ちょっと音を出してみたいと思っているので、圧電スピーカとオペアンプも適当に。あとは、ちょっとアルカノイドにハマってみたいので、ボリュームコントローラを自作しようと、ロータリーエンコーダをコレも適当に。
秋月電子通商 | |||
---|---|---|---|
ピンヘッダ 2x40 | x4 | \200 | |
ピンフレーム 2x5 | x10 | \200 | |
ピンフレーム 2x10 | x10 | \200 | |
DCジャック | \20 | x3 | \60 |
圧電スピーカ | x2 | \100 | |
オペアンプ NJM4580DD | \50 | x2 | \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フレット
#!/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弦
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)に戻る
2006-05-05(Fri) ギターのチューナ完成
赤い光が点にならないので、チューニングが難しい。そういえば、オリジナルでは赤い光がふたつだったのを思い出し、青いLEDを追加して、位相をズラして点灯させてみる……が、やっぱりうまくいかない。ちゃんとチューニングできている気がしない。
で、最後の仕上げ。今までは、セラロックが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分経っても、目視では誤差が確認できないほどの同期レベル……完璧ッ!!
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点が光る。あぁ、なんとインタレスティングなッ!!
2006-05-07(Sun) キーボードを改造す
このキーボードは1000円だったが、店には、ほぼ同様の機能で1300円のものがあった。別メーカではあったが、おそらくは内部のカスタムチップに同じものを利用しているのであろう。子供のオモチャではあるが、そーゆーコトまで考えるとなかなかにオモシロいモノがある。
機能としては、32鍵盤、電子ボリューム、8種類の音色、8種類のリズム、テンポ調節、5種類のパーカッション/動物の鳴き声、8曲のプリセットメロディ、サスティン効果、録音/再生機能まである。スゴいねぇ……最近のオモチャは。なんといっても、これで1000円というのが一番スゴいが。
ただ、若干の制限もあって、和音が……3つ目のキーが無視されてしまって、3重和音が出ないのだ。しかし、2重和音までは出るぞ。オイラが子供の頃、妹が遊んでいたキーボードはキーを複数押すと、常に高い音が優先されて和音は一切出なかったから、それに比べたら十分だ。
でもって、電子ボリュームを調節すると、蚊の鳴くような音にまで落とすコトも可能。よって、深夜の演奏にも十分に耐える仕様なのだが……やっぱりイヤホンジャックが欲しい……とッ!! 思い立ったその時が改造日和であるッ!! 抜く手も見せず、ドライバを取り出し、大量のネジで止まっている裏ブタを外し、スピーカーコードの間にφ3.5のモノラルジャックをハサむッ!! こーんな感じ。
一応、相手がイヤホンの場合には100Ωの制限抵抗を噛むようにしてみた。早速テスト。ジャックにイヤホンプラグを挿すと、本体スピーカはミュート……んが、しかし、イヤホンから出てくる音はすばらしくノイジィ……イヤホンを抜くとスピーカから出る音は正常……なんで?
コレは、アレか? もしかしたら、インピーダンスマッチングがナニってゆー事態なのか? いつもはデジタル回路ばかりで、オーディオ信号なんて扱ったコトがないんで、サッパリわからん。まぁしかし、とりあえずは使えるので、突き詰めるのはまた後日にしよう。
2006-05-08(Mon) 初めてオペアンプる
一身上の都合で、電圧を増幅する必要が生じた。そんな時に役立つのがオペアンプという石だ。以前から見聞きはしていたが、なんとなく使う必要がなくて、自分では一度も使ったことがなかった。キットでテレビの修理をした時に、いわれるままに使ったコトくらいか。
で、やっぱりココでも出てくるのが、ブルーバックスの「図解・わかる電子回路」だ。コイツはオイラが電子工作を始めた日に購入したものだが、先日の555の時にも引っ張り出しているし、なにしろ隙のない素晴らしい名著である。そりゃ、不足している分野だってあるけども、一通りをソコソコの深さで扱っているからこそ、ここまで何度も参照するコトになるのである。やっぱり、素晴らしいコトに変わりはない。
とりあえずは、オペアンプのカン所をつかもう。ブレッドボード上で動きを実感してみるのだ。先日、オペアンプを適当に購入したし……んが、今日はそれは使わない。というのも、この日記を始める前、秋月で購入したジャンク袋(確か500円で購入)の中に集合抵抗のような形をしたオペアンプが10個くらい含まれていたコトを思い出したからだ。
早速、DatasheetArchiveで、型番の「AN6561」を検索してデータシートを得る。にゃるほろ、パナの製品か。コンパクトながら、2回路入りとな。中身がわかったら「ワシャワシャ」っとブレッドボード上に生け花をする。
……んがーッ!! 3Vを10kΩx3本で分圧して、1Vを「+」に入力して非反転増幅回路を画策するが、R1に配置した可変抵抗を如何にイジろうと、出力が2Vから動きゃしねぇ……なんでじゃ……そもそも、出力はVccである3Vで頭打ちになるんじゃないのか? なんで2Vに張り付く?
つーか、このデータシートのR1とR2って、逆じゃねーかよッ!! ミスプリかよッ!! そういえば、以前もなんかのデータシート……555だっけ? で、式が間違ってたっけ……データシートとはそのように信頼性の低いものなのね……肝に銘じておくべぇよ。
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週連続トップだったような、超ビッグヒットを飛ばした曲が、俳優の作曲!? でもって、その歌声や雰囲気にベストマッチな歌詞は本人の作った言葉でない!? ……わからんもんだねぇ。
2006-05-13(Sat) 久々に指先を痛めつける
先日、ギターのチューナを自作したが、そりゃもちろん、ギターをまた再開するために作ったワケで……で、やっと注文していたギターが、今日になって届いた。
ヤマハのサイレントギターのフォークモデル「SLG-100S TLR」。色は例によって赤。トランスルーセントレッドというヤツで、深い赤の中に木目が透けて見える。こりゃ、憎いほどにイイ色だ。思いッきり、フォークギターっぽくはないケド……それにしても大胆なデザイン……しかし、スゲェ、カッコイイ。
さて、早速、チューニングして弾き始めてみよう。例によって自作チューナでカッチリとチューニングする。自画自賛で恐縮だが、素晴らしいチューナだな、コレ……で、ジャランとやる。やっぱり、意外と大きな音がするなぁ。ピックでガーンと弾いた場合、アパートの隣の部屋まで聴こえるかといえば、やっぱり深夜に壁が薄い場合にはちょっと気になるくらいかもなぁ。しかしまぁ、親指の腹で弾く分には、そんなに時間を気にしながら弾くほどの音はしない。もちろん、本体のイヤホンジャックからは盛大に音が出るから、問題はないんだけど。
しかし、ギターを弾くのは何年ぶりだろうか……7年? 結婚する前、無理矢理カミさんに村下孝蔵の「陽だまり」を聴かせたことがあるような気がする。その頃は、ソコソコは弾けていたハズだが……コードはキレイサッパリ忘れてしまっているぞ。コード表を印刷した紙を見つつ、Cを弾く、Em、Amを弾く……左の指先がイテェ……このイテェ感じ……そう、この感じだけはシッカリと覚えているぞッ!!
フォークギターを触ったことない人にはワカらないと思うので、どんな感じかを説明すると、左の指の一番の指先、一番イタイであろうと思える場所で、思いっきり弦を押さえる、という感じだ。当然、指はヘコむ。それなのに、思いっきり痛いくらいに押さえているのに、まだゼンゼン押し方が足りない感じ……そんな感じだ。特に人差し指で全部の弦を押さえるコード(セーハ)なんて、痛みをコラえて渾身の力で押さえても、笑っちゃうくらいに押さえられない。ホントに押さえられる日が来るのか……というくらいに押さえられない。さらに、コードチェンジの時には、コレをコンマ数秒のうちに済ませなければならないんだゼ? 現状、秒単位で時間がかかるのに……どう考えても無理だと思う……それが、まさに今のオイラの状態である。
ちなみにこのヤマハのサイレントギターだが、発売当初は、これほどの圧力を要求されるスチール弦のフォークモデルは存在せず、ナイロン弦のクラシックギターモデルしか出てなかったらしい。しかし、そのあまりの人気に後からフォークモデルが発売になったとのコトだが……いっそのコト、フォークモデルが発売にならなければ、クラシックギターモデルでガマンしたのに……フォークモデルが出ているなら、そっちを買うしかないじゃないかッ!! ……そして、今日も指が痛いのである。
しかし、最初にフォークギターを考えたヤツは何を考えているんだろう……と思う。ギターを試作した時点で、こんなに指が痛いのはマズいだろう、そもそも到底押さえられるワケないだろう……と思わなかったのか? もしオイラなら、練習する前に、ギター自体をどうにかする方向に進むと思うんだよな、絶対……
2006-05-14(Sun) オペアンプ実装
もう1年弱が経とうとしているのか、秋月でTGS2450という硫黄化合物ガス検知センサパーツを買ってから。アナログメータ式のニオイセンサを作ろうと思いつつ、すっかり放置してしまっていた。しかし、最近になって、必死に完成させようとしている。やはり、一度、志したモノを放置しておくのは気持ちが悪い。先日、オペアンプをゴニョゴニョしていたのも、実はコレの完成を目的としていたものだ。
しかし、アレだ。TGS2450でググっても、2006年5月15日現在、ウチ以外には製造元と秋月以外、ほとんど引っかからないってどういうコトよ!? この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変換してやれば、なんとか十分な分解能を確保できるだろう。
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本取り出して、つないで測ってみる。こんな感じ。
2006-05-20(Sat) また? 弦を交換……
先日、注文した「楽勝!コード・チェンジの秘訣」というDVD付きのギターの教本が届いた。ノーテンキな感じの表紙が気に食わないが、なにしろ左手の指使いが勉強できるというもの。ホントはギタースクールかなんかに行ったほうが早いのかもしれないが、そんな時間も金もないし、独学のほうが気楽でいい。ギタースクールに行くという刺激を、行き詰まって放り投げる直前の段階まで取っておくというのも悪くない。
思い返せば、6年半前、友人がキャッチした「ギターの新発売イベントで村下孝蔵がミニコンサートをやるらしい」というニュースから始まった。当時、ヤマハがコンパスというエレアコを新発売するに当たり、村下孝蔵監修を謳って売り出したのだ。イベントは、ほんの小さなスタジオで行われたが、あの村下孝蔵が目の前で、そのコンパスを弾きながら彼の曲を歌うのを聞いて、感激したっけ。
で、その後、その友人と自分でも弾き語りできたらなぁ、なんて話になって、一緒に始めることになった。オイラは素直にコンパスの一番安い7万のモデルを購入したが、友人はラッキーにもゴミ捨て場から適当なギターを拾ってきていたような気がする。しばらくしてから、なにはともあれコードを勉強して、音をビビらせつつ、ツッカエながらも歌える状態にしていたオイラに対し、友人はマジメに前奏の練習から入っていた……アプローチにエラい差があるなぁて笑ったっけ。
これまたその頃だ、キンキキッズがギターをやり始めたのも。アイツらは既にすっかりと弾きこなしているようだが、始めたのはオイラ達と同じ頃……だけど、アイツらの先生は吉田拓郎だぜ!? ……友人と一緒に、ズルいよな、アイツらッ!! ……って話したっけ。
……わッ!! 1弦が切れたッ!! そーなんだよね、1弦ってチューニングの時によく切れるんだ。どーしよ。弦のストックはあるけど……今のメインはサイレントギターだしなぁ……でも、せっかく引っ張り出してきたんだし、弦を張らないでしまっておくのは気持ち悪いし……いーや、1弦だけ張り直そう。
ペグを抜いて、切れた弦を外し、1本だけ予備に買ってある1弦を取り出す。一端をペグに挟んで、もう一端をリールに巻く……巻く方向に気をつけて。ありゃりゃ、1本だけ新品だと、他の5本がサビサビなのが目立つなぁ……まぁいいや。
2006-05-22(Mon) マイ・メトロノーム
しかし、弾き始める前にチューニングという作業が伴うとそうもいかない……というか、以前から気になっていたのだが、ギターを弾き終わったら弦を緩めなきゃならないってホント? ……で「弾き終わったら弦を緩めるか緩めないか」をネットを検索したトコロ、アチコチで意見が紛糾していた。意見が紛糾しているということはどっちでもいいってコトだ。オイラも以前はイチイチ緩めていたが、そんなことをしていたら、弾くのが面倒になってしまう……というわけで、サイレントギターは緩めないこと決め、そのようにしている。
話は替わるが、左手の指先がどんどん硬くなってきている。6年半前にギターを弾き始めた時は、ちょっと弾いては左手の指先を押さえ、痛みをコラえながら練習していた記憶があるが、今回は意外と平気だ。あっという間に慣れた感じ。これも中年力なのか? なにはともあれ、指先の痛みに躊躇して弦が押さえきれないという感じはなくなった。だからといって、ムキになって力任せに押さえても、ちゃんと押さえられるワケではないのだが……それでも痛くて押さえられない状態よりは遥かにマシだ。いい傾向である。
ここ数日、なんとなく調子に乗ってきたので、いつまでもコードチェンジのたびにツッカエてないで、リズムに合わせて練習することにした。そんな時に有効なのが、ギターのチューナに付いているメトロノーム機能だ。ピッピッという電子音に合わせてストロークやアルペジオして一定のリズムを刻むように練習するのである。
ところが、オイラはギターチューナを自作したものの、メトロノーム機能までは実装しなかった。じゃ、どうするか……
……コレである。先日1,000円で購入した子供用のキーボードだ。明らかにオモチャなのであるが、なかなかどうして、コレがあなどれない。だって「電子ボリューム、8種類のリズム、テンポ調節」機能があるんだぜ。そこに自分でイヤホンジャックを増設してるんだから、これをサイレントギターと併せれば無敵の環境であるといえよう。リズムにはワルツが含まれているのがミソで、3拍子の曲の場合はこれを選択するとグッド。4拍子の曲はロックでもポップスでも適当に。
2006-05-23(Tue) 笑顔イッペイ
先日から子供用のキーボードを1,000円で買って、最高ッ!! いい買い物したッ!! なんて自慢してますが……実はイッペイのオモチャです。あ、いや……オイラのオモチャなんだけど、イッペイに貸しています。
2006-05-24(Wed) 百式カポタスト、来るッ!!
ギターを再開してから、10日あまりが過ぎようとしている。で、フツーなら、ギターの購入と同時に入手すべき必須アクセサリである「カポタスト」だが、今日になってやっと入手することができた。このカポというアイテム、そんなに高くないとはいえ、ソコソコの値段はする。なので、なんとか6年半前に使っていたカポを見つけようと、部屋を散々探し回り、それでも見つからず、かといって新たに購入するのもためらっていたのだ。
また、カポを入手すると、どうしても勝手に高い位置にカポをつけて、ハイキーで練習してしまう。比較的、高い声まで出る(今はどうだかわからんが)オイラなので、弾き語る分にはさほどの問題はない。しかし高い位置にカポをつけると、フレットの間隔が短くなって弦を押さえるのがラクになるので、それに頼ってしまうのがイヤだったというのも、購入をためらっていた一因ではある。手元にコンパウンド弦がありながら、硬めのライトゲージのまま弾いているのも、しばらくは厳しい状態で練習したいがためだ。
しばらく厳しい状態で修行を積むと、楽な状態になった時のゲインが大きいというのは、ダライアスの下ルートばかり何度も攻めてボコボコにされていたオイラが、上ルートを選択するなり最終ボスまで到達したという歴史が証明している(?)。
とはいえ、並行してネットでカポを探してはいた。やはり購入するなら、以前も使っていたシャブカポ(SHUBB CAPO)がいい。小さくて、機能的で、美しくて、確実。だが、多くのネットショップでは、ほぼ定価の2,400円、安いところでも1,600円。しかし、カポだけ購入したんじゃ、送料が高くついてしまう。当然、買いに行ったらもっと高くつく。どこかで安く入手できないかと、探し回っているうち、金色バージョンがあることを知ってしまった!! 金色ッ!! 光り物好きなオイラは値段を忘れて思わず決めかけたが……やっぱり高い!!
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) キーボードのキーボード化、ソフトの巻
作り始めてすぐ、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) プログラムでサウンドをジェネレートする
昨日、キーボードをキーボード化するためのキー入力部を作ったが、今日は実際の音をサンプリングしてみる……つもりだったのだが、昨日の晩はギターを弾いているうちに眠くなってしまったので、サンプリングしそこねてしまった。サンプル元としては、例のキッズキーボードか手持ちのギターが考えられるが、厳密に言うとキッズキーボードの音色には権利が存在するであろうし……かといって、ギターの音は音長が長く、キーボード用には向かないコトは想像に難くない。
じゃ、どうすりゃいいか? そこで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データを作成するツールができてしまったッ!!
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 }
system("play wav/#{table[key][1]}.wav &")
■ かず [はじめまして。 この記事を拝見し、私もチューナーを作ってみました。 特に、弦の周波数とLED点滅周波数の計算はとても..]