ManyCamとSound Blaster X-Fi Go!Proで生放送するときの音声設定

3日かかってどうしても上手くいかない、とのことで仕事で設定サポートしたときのメモより。

やりたいこと

PCのWindows Media PlayerとかiTunesでBGM流しながらマイクの音声を配信したい。
※今回は配信サービスに「FC2ライブ」使ってますが、基本的にニコニコ生放送等ほかのサービスでも設定自体は変わりません。

使うもの

  1. パソコン本体
    今回はMacbook Air + Windows7
  2. 音声デバイス
    Creative Sound Blaster X-Fi Go! Pro
    本体にステレオミキサー非搭載のため。
  3. 配信用ソフト
    ManyCam
    Webカメラの映像にエフェクトかけるためのフリーソフトですが、機能的にはPCにくっつけてる複数のカメラや音源を、映像・音声各1デバイスにまとめてくれる便利な奴です。

配線

マイク ---- X-Fi Go!Pro --- PC(ManyCam)

配信者が聞くための音(ヘッドフォンなど)はどこから出してもいいので、X-Fi Go!通さなくてもかまわんです。

先にやっておくこと

Creative Sound Blaster X-Fi Go! Proのドライバの最新版入れておく。(製品名とOS選んでダウンロード)
これをしないと、再生リダイレクト(ステレオミキサーと同等の機能)が一覧に出てこない。
何気にドライバのインストールは何度も画面が開いたり、再起動が必要になります。

それから、接続したマイクの音がちゃんと拾える状態かどうか確認しておく。
確認方法は、録音デバイスのボリュームメーターがあがるかどうかでみるのがいいのだけど、
今回テストで使ったShure PG48だとほとんど無反応だったので、波形が見える録音ソフトで確認したりしました。

マイク

PCのスピーカーから出るか、録音ソフトなどで音が入るかどうか、などでもチェック可能です。

設定

スタートボタン > コントロールパネル > サウンドの[録音デバイス]の画面

録音デバイス
録音デバイスの設定値

ManyCamの音声画面

ManyCam音声設定タブ

FC2ライブのカメラと音声デバイスの設定画面

キャプチャ
FC2

テスト方法

iTunesとかWindows Media Playerで音楽を再生する。しゃべる。以上。

スイッチ付いてるマイクの場合は、ONになってるかちゃんと確認しましょう(笑

PCが2台あれば、配信開始後にもう1台で閲覧して音量等の確認が可能。

上手くいかないとき

X-Fi+Go!+Pro 配信とかでググるといいのではないかと。

VIPで初心者がゲーム実況するには@ Wiki – Sound Blaster X-Fi Go! Proあたりにとっても細かく書いてありそうでした。

1920×1080に60×60のタイルを敷き詰めてひっくり返す

というわけでjqueryで作ってみた。
1920×1080の1枚画像と、60×60のバラバラの画像のロゴ(素材の都合でサンプルでは1枚だけど127枚まではテスト済み)でできてます。

Google Chrome/Safariでご覧ください。
1920×1080
800×600
400×300

300×400くらいのワンポイント程度ならまあまあなのですが、1024×768を超えたあたりからアホみたいに重いです。
修練度ひくいわー…ぐぬぬ。

※筆者はMBA 13インチ(2012) CPUメモリマシマシでbootcampしたWindows7 Google Chromeで見てます。あとでMacでも見てみよう。

近頃はCanvasとか使う…んですよね?

以前ロゴラボザイオンさまのトップページ担当させてもらったときAS3で作ったんですが、目指せこのくらい。

恥ソースはこちら: Github – ayutaya / jquery.rotateMotion

[Flex]全画面・最小化などのnativeWindowメソッド処理後にリサイズしたいとき

少なくともFlex SDK 4.5.1では、
WindowApplication内に「動的配置したModuleで」リサイズイベントと同時に再配置したりするようなとき、nativeWIndow.maximize()、nativeWindow.restore()では「画面のサイズが変わる直前の」数値を取ってきてしまうようです。

なので、全画面からrestore()したら、全画面のときの数値でリサイズされる。

これを回避するのにベタかつスマートではないけど下記のような方法で対応。

import flash.events.NativeWindowDisplayStateEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;

//Timerで100ミリ秒後に1回イベント起こす
private var resizeTimer:Timer=new Timer(100,1);

protected function inith():void
{
	//NativeWindowDisplayStateEventでnativeWindow状態変化を監視
	this.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE,resizeFire);

	//TimerEventのcompleteを監視
	resizeTimer.addEventListener(TimerEvent.TIMER_COMPLETE,resizeComplete);
}

private function resizeFire(event:NativeWindowDisplayStateEvent):void
{
	//リセットしてからスタート(Timerカウントを0→1(終了)とするため)
	resizeTimer.reset();
	resizeTimer.start();
}

private function resizeComplete(event:TimerEvent):void
{
	//対象のModuleをリサイズ
	targetContent.dispatchEvent(new Event(Event.RESIZE));	
}

ちゃんとやるならinvalidateProperties()とか使うもんだけどね。

EclipseでPHP関数のコード補完ができなくなったとき

プラグイン入れたり抜いたりしたとき、プロジェクトを他からコピーしたときなどに起きがちなこれ↓の解決法がやっとわかりました。

コード補完できないよー(> <)
Ctrl+Shiftが標準の関数にだけ利かない。プロジェクト内にある関数には反応するのに・・・。
2012/10/01追記


というのを教えていただきました!
直接手書きするよりはるかに安全ですね…(笑

確認するところ

  1. Eclipse上のPHPプロジェクトになってるか確認
    違ってたら新規PHPプロジェクト作ってソース移動するのが手っ取り早そう。というかこの状態だとたぶんプロジェクト内の関数にも反応しないはず
  2. プロジェクト直下の.buildpathファイルの中に
    <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

    があるか確認
    無ければbuildpathの子として追加する。
    例)

    <?xml version="1.0" encoding="UTF-8"?>
    <buildpath>
    	<buildpathentry kind="src" path=""/>
    	<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
    </buildpath>
    

Eclipseの再起動をお忘れなく。

再起動後はこんな感じでプロジェクトに追加されてるはず。

プロジェクトの中に、PHP Language Libraryが出ました。
プロジェクトの中に、PHP Language Libraryが出ました。
出るようになりました。
出るようになりました。

興味本位で(eclipseインストールフォルダ)/plugin/org.eclipse.php.core_バージョン.jarをzip解凍すると、中に

コード補完用のファイルが!
コード補完用のファイルが!

PHP関数でF3とか押したことある方ならお気づきと思いますが、
プロジェクト内のものには利くってところがミソで、要はスコープ範囲にないだけなんだろうなあと思っていたんですけど、こういう風になっているんですね。

今日のヒント:
新規PHPプロジェクトの管理用ファイル(.projects/.buildpath/.settings)と問題のあるプロジェクトの同ファイルをWinMergeした。

[さくらvps]yum updateしてからRedmineのメール配信がこなくなったら

結論から言うと、configration.ymlのdelivery_methodを :sendmailにして解決しました。

うっかりyum update実行してRedmine2.0.2/2.0.3からメールが配信されてこなくなってあせった。
メールサーバーの拒否リストにでも乗ったかと思って、違うアドレスで試したけどそちらも×。

メール配信処理はRedmine的には成功してて、(redmineルート)/log/production.logにはこういうのが出てたけど正直よくわからん…

DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in CollectiveIdea::Acts::NestedSet::Model instead. (called from include at /var/lib/redmine/lib/plugins/awesome_nested_set/lib/awesome_nested_set/awesome_nested_set.rb:58)

/var/log/maillogには配信しようとしたログ自体が残ってない。

前までどうだったかは記憶に無いのだけど、一応アップデート後は

$ postconf mail_version
mail_version = 2.6.6

だった。

(redmineルート)/config/configration.ymlでdelivery_methodを :async_smtp(非同期)にしていたので、:smtp(同期)へ変更してみる。

http://(サーバ)/redmine/settingsの右下からテストメール送る。
画面上にエラーが出た。

postfix側の問題かと思って

$ echo "test" | mail -s "test" "hoge@example.jp"

すると問題なく送信&受信できた。

ついでなので、sendmail送信も試してみる。
(ローカルユーザー[user]宛)

$ sendmail user
From: user
To: user
Subject: This is test mail.
test
.

userのメールボックスに届いた。

で。
configration.ymlのdelivery_methodを :sendmailにするととりあえず配信されるようになりました。

原因探らないといかんけど、とりあえずはこのまま動かす。