memoile

Icon

Skype用マイクアンプを作成

新PCを自作したのはいいけど、ひとつ問題が。

サウンドカードのマイク入力にかなりの量のノイズが載るようになってしまいました。おかげでマイクブーストをかけるとノイズがかなりうるさい状態になってしまいますが、ブーストしないとそもそも相手に音声が聞こえない程音量が小さいままです。

UStreamやニコニコ動画関係の実況周りを見てみましたが、要はマザーボードのマイクジャック経由だとノイズを拾ってしまうそうなので、それを回避するためにサウンドカードを増設するかマイクアンプを使うのが定番のようです。

サウンドカードを増設する場合は相性問題が発生する可能性があるようです。マイクアンプの場合はPCに入力する前のマイク音声を倍増するのでノイズを載せることなく音量を上げられますが、定番のAT-MA2でも約4500円と高いです。

そこで、電子工作のオーディオキットの中には安価な物があるのではないか? と思いついたので探してみたところ、乾電池で使えるパワーアンプキット ベビー・アンプ [PS-3238]というものを発見。DC1.8Vから動作、ステレオ・モノラルどちらでもOK、寸法約6cm四方という小型、そして定価1260円という安さ。これらにほれたので作成に踏み切ることにしました。

準備

PCヘッドセットから音声を取り出してアンプで増幅してPCに繋ぐので、ヘッドセットからアンプに繋ぐ為のステレオジャック、アンプからPCに繋ぐ為のステレオプラグ、アンプへの配線が正しく行えるか不安なので配線を容易にする為のターミナル、そして電源用に電池ケースを購入しました。

組み立て

説明書通りにササっとはんだ付け。部品点数が少ないので15分ぐらいで終わりました。端子の接続の仕方でステレオとモノラルを切り替えられましたが、マイク入力はモノラル音声なのでモノラル接続で作成しました。

PCマイクはステレオプラグですが、実際には3極のうち1極が音声なので、ジャックに挿した上で音声端子をアンプにモノラルとして接続し、アンプの出力をステレオプラグに繋いでPCに接続します。

失敗

実際に接続してみましたが、マイクの音声は全く出ませんでした。キットの組み立てがまずかったのか? と思いましたが半田不良箇所は見付かりませんでした。そこで、試しに手持ちのポータブルオーディオプレーヤーをアンプの入力に接続してみたところ、音楽がPCから流れ、アンプのボリュームで音量の調節が可能でした。

つまり、アンプの組み立ては成功しているし、プレーヤーからPCへの接続も問題無い。となると問題はマイクですが…マイクを直接PCに挿せば、ブースト前提とは言え音は出ます。

そこでPC用のマイクについて調べてみると、PC用のヘッドセットやスタンドマイクはコンデンサマイクといって、動作するのに別電源が必要らしく、通称バイパス回路と呼ばれるものを用意する必要があるそうです。

コンデンサマイクの出力をH8CPUのADコンバータに取り込むための増幅器

こちらのページ上部にある「コンデンサマイクロフォンの使い方」がバイパス回路で音を増幅している様子らしいです。マイクの音声がアンプへ繋がるまでの間に、電源と抵抗とコンデンサを繋げばいいらしいので、単三電池2本をバイパス用電源として2.2kΩの抵抗と10μFのコンデンサを接続したところ(昔使いそびれたパーツが残ってた)、見事にマイクの音声が増幅されて鳴らされました。(抵抗とコンデンサの値の根拠は分かりません。失念しましたが、どこかのWebサイトに3V電源使用時にこの値を使用していました。)

アンプのボリュームを限界まで回すとハウリングが起こるほどに増幅されるので、半分程度に抑えて、後はPC側で調整するようにしました。

アンプ構成の見直し

現状ではバイパス用単三2電池ケースとアンプ用単三4電池ケースがぶら下がっている状態なので非常にかさばります。

micamp02
▲かさばるし見た目も悪い…

バイパス回路の電源はほとんど電力を消費しないらしいので、まずはこれをボタン電池に交換しました。

次にアンプ用の電源ですが、PCマイクかPCのどちらかに接続したままだと電池を消耗してしまうらしく、数日放置したら電池が空になっていました。

そこでスイッチを取り付けて使用時のみONにする方向にしたいのですが、ケースに内蔵すると電池交換時が面倒で、外付けにするとかさばるのでどうしたものかと考えましたが、基本的に一度設置したら動かさないので、ケースの上に電池ケースを輪ゴムで固定して、未使用時は電池を1本だけ外すという非常にアナログな手法にしました。

完成

micamp03

掛かった費用は以下の通り。

材料 価格
アンプキット 1260円
ステレオプラグ 80円
ステレオジャック x 2個 180円
2Pターミナル x 2個 100円
ボタン電池 CR2032 50円
電池ケース 単三x2 80円
電池ケース 単三x4 80円
アンプ用ケース(100均タッパー) 100円
ステレオプラグケーブル 200円
合計 2130円

手間暇掛かってますが、完成品の約半額で作成できました。価格の割にはノイズも入らずに十分すぎるほど音量を増幅できるので、電子工作が可能ならコストパフォーマンスは非常に良いです。

後で知りましたが、超小型マイクアンプユニットキット マイクアンプ [NT-5]というものがあり、こちらは定価840円とさらにリーズナブル。次に作る機会があったらこちらにしようと思います。

Post to TwitterTweets for this web page Hatena Bookmark for this entryHatena Bookmark - Skype用マイクアンプを作成 Clip this entry on Livedoor ClipLivedoor Clip - Skype用マイクアンプを作成 Add to Google Bookmark Share on Tumblr Share on FriendFeed Digg This

Opera Extension: Hatena Bookmark Comments 更新

Opera 11.00にてopera.extension.tabs.getFocusedでページ内のiframeと通信してしまう現象に遭遇したので、更新しました。

htbcomment.oex ver 0.2

例えば、とあるページの中にAmazonの広告がiframeで埋め込まれていた場合、タブのfocusイベントでは正常にWebページと通信できていましたが、popupからのpostmessage後のmessageイベント中だとなぜかiframeと通信してしまいます。getFocused()で返ってきたオブジェクトの中身がiframeのものになっている状態です。

popupからbackgroundを介してinjectedと直接通信する作りになっていたので、表示しているページのDOM要素等を正確に取得することができません。

opera.extension.tabs.addEventListener("focus", function() {
  var tab = opera.extension.tabs.getFocused();
  if(tab && tab.url) {
    opera.postError(tab.url); // => hogehoge.jp/
  }
}, false);

opera.extension.onmessage = function(e) {
  if(e.data.act == "get_url") { // from popup
    var tab = Oex.tabs.getFocused();
    if(tab && tab.url) {
      opera.postError(tab.url); // => rcm-jp.amazon.co.jp/e/cm?...
    }
  }
}

focus時は正常に取得できているようなので、focus時にキャッシュしておいて、messageイベント中はgetFocusedを利用せずにキャッシュしたタブオブジェクトからpostMessageすれば正常にDOM要素等も取れるかと思ったら、通信先はキッチリiframeでした。

var curtab = null;
opera.extension.tabs.addEventListener("focus", function() {
  var tab = opera.extension.tabs.getFocused();
  curtab = tab ? tab : null;
  opera.postError(curtab.url); // => hogehoge.jp/
}, false);

opera.extension.onmessage = function(e) {
  if(e.data.act == "get_url") { // from popup
    if(curtab && curtab.url) {
      opera.postError(curtab.url); // => hogehoge.jp/
      curtab.postMessage(""); // => injected script in rcm-jp.amazon.co.jp/e/cm?... 
    }
  }
}

幸い、Hatena Bookmark Commentsはurlとtitleだけ取れればいい上に、tabオブジェクトからtitleが参照できることを知ったので、この不具合はすぐに修正できました。

直接通信しなければいいので回避方法はいくらでもありますが、postMessageで直接やりとりするような場合は注意したいです。

Post to TwitterTweets for this web page Hatena Bookmark for this entryHatena Bookmark - Opera Extension: Hatena Bookmark Comments 更新 Clip this entry on Livedoor ClipLivedoor Clip - Opera Extension: Hatena Bookmark Comments 更新 Add to Google Bookmark Share on Tumblr Share on FriendFeed Digg This

Opera Extension 試作品: Hatena Bookmark Comments

htbcomment.oex

ファイルを保存後、Operaのウインドウにドラッグ&ドロップするとインストールすることができます。

ツールバーのボタンに現在見ているページのはてなブックマークでブックマークされている数を表示し、ボタンをクリックするとポップアップでコメントを表示します。設定でポップアップウインドウのサイズとユーザーアイコンの表示/非表示の切り替えが可能です。はてなブックマーク Chrome拡張のシンプル版というか劣化版です。

20110111_htboex

Getting started with Opera extensionsOpera Extensions API guidesを読みながら、Extension開発でよく使われるであろう機能を一通り実装してみようと思って、このExtensionを作成しました。

  • popup / background / injected それぞれの間でのデータの送受信
  • クロスドメインアクセス
  • Widgetによるデータの保存
  • 設定ページの適用

などなど。おかげでどういったものが作れそうなのかがある程度分かりました。ローカルへのアクセスは無理なようなので、UserScript以上Unite/Widget未満ってとこですかね。

自動アップデート付きでExtensionをインストールさせるには公式ページで公開してもらわなければいけないのがちと不満ですが、それ以外はとくに難しい箇所もなくサクサク作れるのがいいと思いました。

Post to TwitterTweets for this web page Hatena Bookmark for this entryHatena Bookmark - Opera Extension 試作品: Hatena Bookmark Comments Clip this entry on Livedoor ClipLivedoor Clip - Opera Extension 試作品: Hatena Bookmark Comments Add to Google Bookmark Share on Tumblr Share on FriendFeed Digg This

Opera 11に導入したExtension色々

Opera 11からOpera Extensionという、いわゆる拡張に対応するようになったので、導入したExtensionを紹介します。

Translator

選択したテキストをGoogle Translateで翻訳、というか、Google Translateの翻訳フォームをポップアップに表示する、が正しいかも。

Simple ToDo Manager

To-Do管理。列挙して消化したら消すだけ。ツールバーにはタスク数を表示するという、本当にシンプル。外部サイトを使わないローカル保存。

To-Read sites

いわゆる「あとで読む」。追加したサイトはクリックすると開きつつリストから削除される。削除されないようにロックすることも可能。

追加するのにいちいちツールバーのボタンをクリックして、ポップアップのAddボタンをクリックしなければいけないので、ショートカットキー一発で登録ができると嬉しいかも。

Popup statusbar

Google Chrome風のステータスバーを表示。

LinkRedirector

Google画像検索等のクッションページを排除して、直接アクセスできるようにする。

Image Autosizer

開いた画像をウインドウ幅に合わせて調整してくれる。

Image Preview Popup

リンク先の画像をポップアップで表示する。

Fast search

テキストを選択してSキーを押すとバックグラウンドで検索できる。

Clipper

Ctrl+Cでコピーしたテキストを蓄積していく。ブラウザを閉じるかExtensionを無効化するとリセットされる。

BinFix

圧縮ファイル等を開いてもファイル保存ダイアログが表示されずにバイナリがそのまま表示されてしまうような場合、正常にファイルとしてダウンロードできるようにする。

AutoPatchWork

AutoPagerizeクローン。現在のページに次のページの要素を継ぎ足していく。

open-in-background-with-long-press

リンクをクリック長押しするとバックグラウンドでページを開く。ホイールクリックよりは操作コストが少ないのが魅力的。

Snap Links

マウスドラッグで枠が表示されるようになり、枠にリンクを複数含むようにしてマウスボタンを放すと、含んだ全てのリンクを開いてくれる。

User Script版では可能だった、Ctrlキーで動作、現在のタブに開く、重複リンクを開く、といった機能が省かれている。

作者は同じなので、今後対応されるとは思う。

Slim ScrollBar

細いスクロールバーを表示する。このスクロールバーはスクロール直後に数秒だけ表示されてフェードアウトしていくので、スクロールバー非表示環境だけどスクロール位置は確認したい、という時に便利。

導入後、「設定(Ctrl+F12)>詳細設定タブ>閲覧>スクロールバーを表示する」のチェックを外してデフォルトのスクロールバーを非表示にしよう。

Easy Youtube Video Downloader For Opera

Youtubeの動画ページに動画をダウンロードするインターフェースを追加する。

Youtube Autoplay Killer

Youtubeの動画ページを開いた際に自動で再生が始まるのを防ぐ。それだけ。

YouTube AdsFree

Youtubeの動画再生時に表示される広告を表示しないようにする。

UserScriptから変換したExtension

word highlight

Google検索結果及び結果から飛んだサイトで検索キーワードをハイライトする。

jaro.js

Google検索にてスパムリンクを分かりやすく表示する。

Text URL Linker

リンクになっていないURLをリンクにする。2chのh抜きURL等。

Link alert

リンクにカーソルを載せると、リンクの種類に応じてアイコンが表示されるようになる。別タブ・各種メディアアイコン等。

雑感

ツールバーへボタンを追加するExtensionについて

GoogleChrome同様、Extensionを入れれば入れるほどツールバーを圧迫するので、製作する場合はツールバーにボタンを追加するのが本当に必要かどうか考えるべきだと思います。

例えば、上で紹介したYoutube Autoplay Killerは機能のON/OFFを切り替える為だけにボタンを追加しています。Opera Extensionでは専用の設定ページを用意することも可能なので、頻繁に切り替えないような設定ならそちらで行うべきです。そもそも、Youtube Autoplay Killerは自動再生のON/OFFのみの機能なので、OFFにしたい場合は拡張を無効化すれば事足ります。

それ○○○でよくね?

現在公開されているExtensionの中にはExtensionにするどころか、Operaのメニューを弄るだけ、Bookmarkletで十分、UserScriptで全て済んでしまうExtensionも多々存在します。

しかし、Operaの知識がほとんど無い人でもExtensionを導入するだけでこれらの恩恵を受けられるというのは非常に重要だと思うので、Operaを使い込んでる玄人から見てくだらないと思うようなものでも、自分が便利だと判断したら、どんどんExtensionにしてしまえばいいんじゃないかと思います。

UserScriptをExtensionに変換するのを試みてるのもそういった考えがあってのことです。

拡張管理ページについて

今現在Extensionを作成中・実験用含めて30前後導入していますが、OperaのExtension管理ページがホイールを回してもスクロール量が非常に小さく、PageUp・PgDown・Home・Endキーが効かないので目的のExtensionを探すのが一苦労で仕方無いです。ここらへん、なんとかなりませんかね?

合わせて読みたいかもしれない

Post to TwitterTweets for this web page Hatena Bookmark for this entryHatena Bookmark - Opera 11に導入したExtension色々 Clip this entry on Livedoor ClipLivedoor Clip - Opera 11に導入したExtension色々 Add to Google Bookmark Share on Tumblr Share on FriendFeed Digg This
Page 1 of 212