PhpStorm 開発環境構築 (WordPress プラグイン開発用) その3

前回までで WordPress プラグイン開発用の PhpStorm プロジェクトが作成されました。 今回はバージョン管理とデバッグ関連ですが、いろいろと開発環境の前提があるのでまだご覧になっていない方は初回よりご確認ください。

ちょっとその前に

前回説明していませんでしたが、Settings ダイアログはちょくちょく呼び出すことになると思いますが、メニューよりもアイコンから呼び出す方が簡単ですね。 下のアイコンが Settings なのですが、表示されていない場合は「View」-「Toolbar」で表示されます。

settings

また、Settings ダイアログ左上の入力欄に文字列を入れると該当するメニューのみの表示となるので便利です。

search

Git リポジトリの追加

さて、本題です。

自作プラグインのコードを PhpStorm プロジェクトに追加します。 具体的には Git リポジトリを wordpress/wp-content/plugins の下に clone します。 Git for Windows を使っても良いですが、PhpStrom の中から「VCS」-「Checkout from Version Control」-「Git」で行うこともできます。 私の場合、対象は Thin Out RevisionsStandard Widget Extensions の 2つです。 このように、一つの PhpStorm プロジェクト内で複数の Git リポジトリを使っても問題ありません。

外部コマンドで clone したときはそのことを PhpStorm に認識させるため Settings ダイアログの「Version Control」の画面でディレクトリを追加します。

VC Directories

ここまでで Git のメニューが表示されるようになり、様々な操作が IDE 内から出来るようになります。

Git Menu

私は家では Git 主体で使っているのですが、WordPress.org で管理されているリポジトリを直接扱いたいのであれば「VCS」-「Checkout from Version Control」-「Subversion」で開発を始めることができます。 ただし、頻繁なコミットは嫌われるらしいので、個人的には git-svn とか git merge –squash を覚えて Git で管理するようにしたい今日この頃です (参考記事)。

PHP のデバッグ

PHP のデバッグをし始めるのは思ったより簡単でした。

まず、準備として JetBrains のブックマークレット作成用サイトにアクセスし、ブックマークレットを作成します。 IDE key は PHPSTORM のままでオッケーなので、Xdebug の方の「Generate」をクリックし、表示されたリンクをブラウザにブックマークします。 とりあえず、「Start debugger」と「Stop debugger」が最低限ですが、一通りブックマークしておきましょう。 以下のようにブックマークツールバーに入れておくといいのではないでしょうか。

bookmarklets

後は PhpStorm がデバッガからの情報を待ち受ける状態としてからデバッガをスタートします。 具体的には電話アイコン (「Start Listen PHP Debug Connections」) をクリックしてから、先ほどの「Start debugger」ブックマークをクリックするだけです。

start-listening

JavaScript のデバッグ

続いて JavaScript のデバッグです。 最初に言っておくと .php の Web ページでの JavaScript のデバッグはまだうまく出来ていません。 しかし、.html ページでの JavaScript 実行については次の手順で可能です。

まずは JavaScript のデバッグに必要な設定を行います。 JavaScript のデバッグは Firefox と Chrome に対応しています。 どのブラウザをデフォルトとするかは Settings の「IDE」-「Web Browsers」で設定できますが、初期値は OS デフォルトなので、OS デフォルトのブラウザを Firefox か Chrome にしていれば設定不要です。 ただし、次で説明するデバッグ用 Configuration の一部として個別に保存されるので、必要に応じてこれを複数作って使い分けます。

では Configuratin を作成してみましょう。 メニューの「Run」-「Edit Configurations」を選択し「Run/Debug Configurations」ダイアログを表示します。 そして、「+」ボタンを押し「JavaScript Debug」-「Remote」を選択します。

Edit Configurations

Local を選択するとスタートポイントとなる HTML ファイルが必須となる (PHP ファイルは NG) ので、今回は Remote の方を選んで URL 指定を行っています。 Local と言ってもファイルシステムではなくローカルサーバーを通して .html ファイルにアクセスすることになるので (当たり前か…)、.html ファイルからスタートできるのであればこちらで Configuration を作成しましょう。

作成したら、ツールバーで使用する Configuration を選択しておきます。(Edit Configurations もここからできます)

Edit Configurations

次にブラウザ側の設定です。 ヘルプによると最初のデバッグを開始すると拡張機能がブラウザに自動的にインストールされるとのことで特に設定は不要なはずです。 Firefox は確かにその通りだったのですが、Chrome でやったときはうまくいかなかったので手動でウェブストアより JetBrains IDE Support をインストールしました。

さあ、あとは Debug を開始すればよい、…はずなのですが、先に書いた通り .js の呼び出し元が .php ファイルだともう一工夫必要な様でうまく行きません。 それでは .html + .js ならばすんなり行くと思いきや、debugger 文をブレークポイントの前に入れないと止まらなかったりもします。 JavaScript 関連はいろいろ試してからまた記事にしたいと思います。

LiveEdit

ついでと言っては何ですが、せっかく JetBrains IDE Support を入れたのでもう一つ機能を紹介しておきましょう。 Settings ダイアログで「Plugins」を表示し、「Install JetBrains plugin…」より「LiveEdit」をインストールします。 するとブラウザでサーバー上のページ (http://localhost/…) を表示し、デザインをリアルタイムに確認しながら PhpStorm 上で .html ファイルを編集できるようになります。 やり方は「Open in Browser」などで PhpStorm からブラウザを呼び出して表示するだけです。

次はテストについて書く予定です。

PhpStorm 開発環境構築 (WordPress プラグイン開発用) その2

PhpStorm 環境構築編の 2回目です。 前回で、PhpStorm と XAMPP、WordPress の基本インストールを終了しました。 今回は WordPress プラグイン開発用の PhpStorm プロジェクトを作成します。

プロジェクトの作成

External Libraries として WordPress のコアコードを参照させるやりかたもあるようですが、今回は WordPress 全体をプロジェクトとしてしまいます。 その場合もプラグインごとに Git (Subversion) リポジトリを管理することができるので問題ないでしょう。 では操作を進めて行きます。

PhpStorm を起動すると初回はプロジェクト作成画面が表示されます。 「Create New Project from Existing Files」を選択します。

Creating New Project

続いてサーバーとソースファイルの構成を選択します。 今回は「Web server is installed locally, source files are located under its document root.」を選択し、直接 Web サーバーの参照するファイルを編集対象とします。 ここの選択を変えることでリモートサーバーにも対応できます。

Creating New Project

WordPress インストールディレクトリを選択してから「Project Root」ボタンを押します。 「Next」を押すのはその後です。

Creating New Project

サーバーを指定します。 今回は初回なので新規サーバーエントリとしてローカルサーバーに名前を付け、ルート URL (「http://localhost」)を指定します。 次回以降は新規追加だけでなく登録済みサーバーを選択することもできるようになります。

Creating New Project

最後にプロジェクトルートに対応する Web URL のパスを入力します。今回は「/」です。

Creating New Project

以上でプロジェクトが作成されます。

PhpStorm Settings

続いて PhpStorm での設定です。 「File」-「Settings」と選んでダイアログを表示し、もろもろを設定していきます。

「PHP」

「Interpreter」の右隣の「…」をクリックした後に表示される画面で「+」ボタンを押し XAMPP 用のエントリを追加します。 PHP ホームディレクトリを指定し、Xdebug を「Debugger」として選んでおきます。

PHP Interpreters

「Include path」も必要に応じて設定しておきます。 これで「PHP」のページは以下のようになったはずです。

PHP

「PHP」-「Debug」

「Xdebug」のところのポートの設定を前回編集した php.ini の設定と合わせます。

Xdebug

「Version Control」-「Git」

私は Git for Windows (msysgit) を使用しています。 この git.exe のパスを正しく設定します。 設定したら「Test」ボタンを押して正常性を確認しておきましょう。

Git

ちなみに Subversion の方は外部コマンドを用意しなくても SVNKit を用いたクライアント機能が PhpStorm に実装されています。 WordPress.org のリポジトリは Subversion で管理されていますが、そちらにも対応できます。

私の場合、Git で仕上げたソースコードを Subversion で WordPress.org にチェックインするという何となくイケてない方法を採っているので、ソース管理をどうやって行くかは個人的な課題だったりします。(追記: その後、git-svn を使っています)

次回は Git (Version Control) 機能とデバッグ機能関連を設定します。

PhpStorm 開発環境構築 (WordPress プラグイン開発用) その1

まじめに WordPress のプラグイン開発環境をつくろうと思い立ち、PhpStorm + XAMPP を導入しました。 PhpStorm はリモートのサーバーにも対応していますが、ヘルプファイルの記述はローカルサーバーでテストを行いリモートサーバーにデプロイする想定で書かれています。 ですので、XAMPP をインストールし、ローカルに PHP のデバッグが行える環境を構築することにしたのです。

この環境構築手順を数回にわたって紹介します。 WordPress のプラグインやテーマを開発されている方はもちろん PHP 開発者の方にも参考となるのではないかと思います。 ちなみに私の場合、これまでのプラグイン開発は Emacs + タグファイル (デバッガなし) で行っていました…。

さて、今回は初期インストールです。 一連の記事は PhpStorm 6.02、XAMPP Portable 1.8.1、Windows 7 をベースとして書いています。

PhpStorm のインストール

PhpStorm のインストーラーはPhpStorm のサイトで「Get PhpStorm 6」というボタンを押すことで入手できます。 インストール自体は特に難しいことはないので割愛します。 さて、PhpStorm を起動してみましょう。

初回起動時に既存設定をインポートするか聞かれますが、今回初導入なので「I do not have a previous version of Phpstorm or I do not want to import my settings」を選択します。

PhpStorm Install

ライセンスは「User name」も正しく入力しましょう。 ユーザー名とライセンスキーが正しく入力されれば有効期限が表示されるはずです。 「Evaluate for free for 30 days」を選んで30日間評価用に使うこともできます。

PhpStorm Install

ライセンス同意確認は「Accept all terms of the license」をチェックして「OK」を押します。

PhpStorm Install

IDE 初期設定画面がでるので好きなものを選択します。 とりあえず私はキーマップとして Emacs を選択し他はデフォルト値のままにしました。

PhpStorm Install

この後プロジェクト作成画面が表示されますが、続きは次回以降に説明します。 また、初回起動時に Windows ファイアウォールの警告が出るかも知れません。 「プライベートネットワーク」を選んでアクセス許可しておきましょう。

Windows Firewall

XAMPP のインストール

XAMPP については for Windows の XAMPP portable lite を導入しました。 このポータブル版ではメールサーバーなどいくつかのパッケージが省略されていますが、WordPress プラグイン開発を行うには十分です。

XAMPP のインストールも特に難しいことはなく、インストーラパッケージをダウンロードし実行するだけです (環境によっては Microsoft Visual C++ 2008 SP1 Redistributable Package (x86) をインストールする必要があるようです)。 最後に以下のようなメッセージが表示されます。 レジストリエントリを持っておらず、アンインストールは手作業でファイル削除するようにとのことです。

XAMPP Warning

サーバーをスタート/ストップさせる操作にはインストール先ディレクトリ直下にある xampp-control.exe を起動して使用します。 こちらも Windows ファイアーウォールの警告がでるかも知れませんが、PhpStorm の場合と同様に許可しておきます。

Xdebug の有効化

PhpStorm は PHP 用デバッガとして XdebugZend Debugger に対応しています。 XAMPP の PHP パッケージには Xdebug が含まれているのでこれをそのまま使用します。

ヘルプを参照しながら php.ini の Xdebug のセクションを編集します。 私の場合は以下のようになりました。 (追記: ちなみに XAMPP Portable 1.8.3 ではパスに「c:」をつけないと XDebug が動きませんでした。)

[XDebug]
zend_extension = "\xampp-portable\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "\xampp-portable\tmp"

WordPress のインストール

PhpStorm の IDE に統合された Subversion を使って最新ソースを追いかけることもできますが、とりあえず 3.6 ベータ3 を導入することにします。

  1. phpMyadmin (http://localhost/phpmyadmin/) を使ってデータベースとユーザーを追加します。 データベースの Collation は utf8_general_ci を選択しました。
  2. WordPress の ZIP ファイルをダウンロードして C:\xampp-portable\wordpress として展開します。
  3. wp-config.php を編集して DB_* と WP_DEBUG あたりを設定します。
  4. httpd.conf を編集して DocumentRoot を /xampp-portable/wordpress に変更し、Directory の設定を追加します (後述)。
  5. http://localhost/wp-admin/install.php にアクセスしインストールを実行します。

httpd.conf は DocumentRoot を /xampp-portable/wordpress に変え以下を追加します。 XAMPP Control Panel からエディタ (デフォルトは Notepad) を起動して編集することもできます。

<Directory "/xampp-portable/wordpress">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

次回に続きます。

Studio Drummer と Kontakt のマルチアウト設定

Komplete 7 から Komplete 9 にアップデートしました。 久々の Komplete 関連記事となりますが、初めて使うことになった Studio Drummer と Kontakt パラアウト (マルチアウト) 設定を取り上げます。

Komplete 9 へのアップデートの動機となったのは (某楽器店のポイントが 5,000円分ほどたまっていたというのもありましたが) この Studio Drummer と Session Strings です。 私はどちらかというと生ドラムの音が好きなので、あれこれドラム音源を使うよりもこの Studio Drummer だけ使う方が幸せになれそうな気がしたのです。

カブってるよ!

Kontakt に Studio Drummer をロードして触ってみて、まず面白いと感じたのは Bleed というカブリを再現するパラメータの存在です (ただし、スネアのみ)。 この値を上げるとスネアのチャンネルから微かにタムなどの音が聞こえてきます。 他のソフトでも備えている機能のようですが、カブらないように苦労していたはずがこんなことになっているのですね。

それとグルーブパターンがたっぷりあって、これをドラッグ&ドロップして DAW ソフトに取り込むことができるのも特徴的でした。 再生するときにシャッフル (ハネ具合) の調整ができるのですが、きちんとこのシャッフル設定が反映されたパターンが DAW 上で再生されるのです。

ランダム化の設定もあるのですが、こちらは DAW にドラッグ&ドロップしたパターンには反映されません。 こちらの値を調整したいのであれば Control Change (CC) で行います。 CC を使うには、ツマミの上で右クリックしてから CC ナンバーを覚えさせます。 ランダム化を使えばパターンを組み合わせて再生するだけでも人間っぽくなる、ということです。

やはり一番嬉しいのは生らしい音がすることですね。 気になる人は公式サイトでデモやチュートリアルビデオをチェックしてみましょう。

Kontakt のパラアウトの設定

さて、そのチュートリアルビデオでもさらっと紹介されていますが、Kontakt の出力をフルに生かしたパラアウト設定方法 (Cubase 編) を紹介します。 Studio Drummer 自体もミキサーとエフェクトを持っているのでそれを使っても良いのですが、Cubase のような DAW と組み合わせて使ったときは DAW ソフト側で音作りをしたくなる人もいると思います。 そんなときのためのセッティングです。

まず、Cubase 側は MIDI トラックと VST インストゥルメントチャンネルを組み合わせて使います。 インストゥルメントトラックではチャンネル数がステレオ 2ch までなので VST インストゥルメントのラックから Kontakt を呼び出すのです。

ところで、例えば VST インストゥルメントラックから「Kontakt 5 16out」を選択し、出力を確認すると以下のように表示されます。 初期状態ではこのようにステレオ× 5 で残りがモノチャンネルに設定されています。

Kontakt Output

実はこの Kontakt からの出力のステレオ/モノの組み合わせは変えることができます。 どうやるかというと Kontakt のミキサーで望むチャンネルを「Add Channels」で足していき、最後に「Save current section state as default for」を選ぶのです。 (ただし、元の設定を保管しておきたい場合は、操作の前にこの記事の最後を読んでバックアップを取っておきましょう)

では実際にやってみましょう。まず、Add Channels を使って以下の図のようにします。 チャンネル名はテキスト部分をクリックしてから変更できます。

Kontakt Mixer

その後「Save current output section state as default for」を選びます。 今回は Cubase の VST インストゥルメントラックから 16チャンネル仕様を選んだときのデフォルトとするので「VST Plugin (16 out)」を選択します。

Kontakt Output

すると VST インストゥルメントトラックから「Kontakt 5 16out」を選び直すと以下のような出力となります。 ステレオ× 4 + モノ× 8 となって Studio Drummer 仕様となりました。 あとは「全出力を有効化」すればパラアウトの設定完了です。

Kontakt Output

Studio Drummer の方は MIXER で INIT を選んで余分なエフェクトなどをオフにしておきましょう。

ここで紹介した設定はチュートリアルビデオを参考にしています。 チュートリアルビデオを埋め込んでおきますので、どうぞ。

なお、Kontakt のアウトプット設定に関して若干制限があるので説明しておきます。 この Kontakt からの出力設定は Cubase のプロジェクト単位に変えることはできません。 「VST Plugin (16 out)」を選んだときの共通設定となります。 設定ファイル自体は以下のフォルダにあります。(ただし Windows 7 で確認してます)

%USERPROFILE%\AppData\Local\Native Instruments\Kontakt 5\default\

「Save current section state as default for」を実行する前にこのフォルダにある *.cfg をバックアップしておきましょう。

いくつかの設定ファイルを用意して切り替えながら使うこともできなくはないですが、面倒ですね。 というわけで、当面は「Kontakt 5 16out」を Studio Drummer 専用の出力セッティングにして、それ以外のライブラリを選ぶときは「Kontakt 5」か「Kontakt 5 8out」を選ぶことにしました。

プロセッサーパワーに余裕がない環境でのミックス時は一旦マルチアウトした出力をオーディオ録音してそちらを加工すると幸せになれると思います。

EOS Digital でワイヤレスストロボ撮影

ちょっと (かなり?) 前にも書きましたが、最近の EOS とスピードライトであれば簡単にワイヤレスストロボ撮影ができます。 例えば昨日の記事の写真もワイヤレスストロボ撮影による作例です。 ただ、私の場合すぐに操作を忘れてしまうので、備忘録として設定をまとめておきます。 EOS 60D と 430EX II の組み合わせですが、恐らく他のモデルでもほぼ一緒の操作体系になっているのではないかと推測します。

スピードライト (430EX II) 側の設定

  1. 「ZOOM」ボタンを 2秒以上押します。
  2. チャンネル番号をボディ側と合わせます。 恐らく初期値のまま 1ch で使えると思いますが、必要に応じて「ZOOM」、「+」、「-」、「SET/SEL」ボタンを使って設定します。

430EX II はスレーブ機能しか持っていませんが、600EX-RT などではマスター機能も持つため、マスター/スレーブの選択が必要になると思います。

ボディ (EOS 60D) 側の設定

  1. 内蔵ストロボを上げます。
  2. メニューで「ストロボ制御」-「内蔵ストロボ機能設定」を選びます。(ここがいつもわからなくなって苦労します!)
  3. 発行モードを「E-TTL II」にします。
  4. ワイヤレス機能でスレーブの発光 flash を選びます。
  5. 必要に応じチャンネルを設定し、スレーブ側とチャンネル番号を合わせておきます。

あとはストロボの配置を考えてシャッターを切るだけです。 細かくやると内蔵ストロボも一緒に発光してそのときの光量比を設定したりもできますが、その辺はマニュアル参照ということで。

ちなみに最近ストロボ撮影時のボディの設定はマニュアル露出モードでやっています。

ヘッドホンアンプと Cubase の Control Room

きっかけは安価なヘッドホンアンプ付き雑誌が目に付いたことだったのですが、Cubase の Control Room 機能を使おうと思い立ちました。 自分で演奏する人はわかってくれると思いますが、ミックスのバランスを演奏のときだけ変えたくなることがあると思います。 そんなときに Control Room 機能を使えばメインミックスは残したままそれと独立してモニター音のバランスを設定することができるのです。 その分出力を複数用意しなければなりませんが、ヘッドホンアンプを追加すればヘッドホンを差し替えて使えると思ったのです。

またしても Behringer

結局雑誌を購入するのではなく、AMP800 というヘッドホンアンプを買ってしまいました。 先の記事に引き続きまたもや Behringer 製品です。 この AMP800 は 2系統 (A, B) のステレオ入力をもっています。 4つのヘッドフォン出力は A と B のどちらの音を聞くかそれぞれスイッチで選択することができます。

AMP800 and UA-101

HA400 という安価な製品もあるのですが、私は UA-101 という 10IN/10OUT のオーディオインターフェイスを持っているのでどうせなら入力を 2系統持っている方がよいと思い AMP800 を選びました。 UA-101 の OUT の方はエフェクトセンドぐらいしか使い道がなく、それすらも最近は使ってない状況だったのですが、これで有効活用できます。

AMP800 にゴム足はついていないので、重ねておくときは 100均で売ってたりする耐震マット (粘着マット) を使うとよいです。 写真にも写ってますね。

設定は結構簡単

さて Control Room 機能の設定ですが、思ったよりも簡単でした。 使用するためにはまず VST コネクションを設定します。

  1. VST コネクションのスタジオタブを表示し、「Control Room」を有効化します (電源ボタンアイコン)
  2. ヘッドホンモニター用出力として「キュー」を 2系統追加します。
  3. メイン出力として「モニター」を 1系統追加します。通常の出力 (最初からある「Stereo Out」) は使いません。
  4. それぞれオーディオインターフェイスの適切なポートを設定します。

私の場合は以下の図の様になりました。

VST Connection

1+2 はこれまでと同様メインミックスの出力ですが、新たに 5+6 と 7+8 を AMP800 への出力としたのです。

使ってみよう

まずは MixConsole 画面で以下の図のように「キューセンド」ラック (左上) と「Control Room」ミキサー (右) を表示します。 Control Room ミキサーではそれぞれの出力に何を出すか選べますが、下の図ではキュー1、キュー2 はそれぞれのキュー出力とクリック音を聞くことができます (右上部)。 メイン出力は図ではメインミックスが選択されていますが、キュー1、キュー2 の音に切り替えることもできます (右下部)。

MixConsole

とここまで来て思ったのですが、VST コネクションの設定でキュー出力に物理ポートをアサインしなくてもこの Mix/キュー1/キュー2 ボタンで切り替えて使えば十分 (=ヘッドホンアンプ買わなくても良かった) なような気がしてきました。 もう買っちゃったので深く考えないことにします。

キューミックスは左上部にある CUES と表示されている部分のスライダーで調整しますが、下図のようにコンテキスト (右クリック) メニューを選ぶことでメインミックスのバランスを使って初期化することもできます。

Cue Send Menu

公式のチュートリアル動画もあるので参考にしてみてください。 英語が苦手でも日本語字幕を表示することができますよ!

Cubase iC Pro を使っている方は以下のように設定画面で「Switch View」の設定をモニターする Cue Mix にすることで iPad を使ってモニターバランスを調整することができます。

Cubase iC Pro

Control Room 機能は使ってみるとなかなか便利です。

Behringer の安いミキサー、ちゃんとしてるんですけど…

最近 WordPress 関連ブログっぽくなっていますが、そういうわけではありません。 音楽機材もいろいろ買ったりしてるので紹介していきます。 今回は Behringer XENYX 802 というミキサーです。 今まで Boss の BX-16 というミキサーを使っていましたが、もう少しコンパクトなものが欲しくなったのです。

Behringer 安っ!

この Behringer XENYX 802 は 8ch ミキサーです。 最近は円安なので価格が上昇しているようですが、私が昨年買ったときは 4千円弱でした。 ソフトウェアプラグイン関連のバーゲンセールを良く見かけましたが、ソフトだけでなくハードウェアも気が付いたらこんなに安くなっていたのですね…。

XENYX 802
XENYX 802

安くてもちゃんとしてるよ

簡単に仕様を紹介します。

  • 1ch、2ch はフォーンプラグだけでなく XLR コネクター (ファントム電源付き!) にも対応
  • 3ch/4ch と 5ch/6ch はそれぞれステレオ入力として扱われます
  • 1 ~ 6ch は EQ 装備
  • 1系統のエフェクト SEND/RETURN あり。この RETURN を入れて計 8ch なので 8ch ミキサーと謳われています
  • その他に CD 等再生用として外部入力ステレオ 1系統あり
  • 出力はメイン、Control Room、CD/tape の計ステレオ 3つ

何というか「この値段でこれだけの機能が手に入るのかぁ!」といった感じです。 ノイズなどが気になることもないですし、強いて言えば LED の電源ランプが妙に明るいのが気になる程度です。 それと私はパワーサプライを使っているので気にしないのですが、電源スイッチはありません。

しっかしモデルがたくさんあるなあ

「では、ちょっと Behringer のミキサーを買ってみるか」と思ったときにハードルになるのが種類の多さです。 私の場合は以下のように考え XENYX 802 に落ち着きました。

  • USB インターフェイス付き (型番末尾 USB) やエフェクト付き (型番末尾 FX) のモデルもありますが、それらの機能は不要
  • XENYX 502 だと入力が足りず、最後は XENYX 1002 と 802 で悩みましたが、8ch あれば足りるので EQ 機能を優先しました

細かくチェックしたい人はメーカーサイトからマニュアルをダウンロードすると良いと思います。 少なくとも XENYX 802 や 1002 については日本語版マニュアルも提供されています。

Amazon のレビューでは発熱やぐらつきというのを見かけたこともありますが、少なくとも私のものは気になりません。 とても満足して使っております。

設定だけで Jetpack の二重 OGP 出力問題を解決するには

連休中に iPad に WordPress アプリを入れて、ついでにサイトに Jetpack プラグインを導入しました。 WordPress アプリに Jetpack プラグインを組み合わせることで統計情報が参照可能になります。 このとき、WordPress.com のアカウントが必要です。

さて、この Jetpack プラグインですが、他に OGP メタタグを出力するプラグインと組み合わせると二重に OGP メタタグを出力してしまうという記事をみかけました。 私も Facebook プラグインを使っているので慌てて調べると確かに二重出力しています。 そこで Jetpack の設定でこれを抑止できないかと管理画面を確認したのですが、特に設定はないようです。

よその記事をそのままうのみに出来ない (fb_xd_fragment の件もありました!) ので、コードを覗くと jetpack.php に以下のような関数がありました。 Jetpack のバージョンは 2.2.5 です。

    public function check_open_graph() {
        if ( in_array( 'publicize', Jetpack::get_active_modules() ) || in_array( 'sharedaddy', Jetpack::get_active_modules() ) )
            add_filter( 'jetpack_enable_open_graph', '__return_true', 0 );

        $active_plugins = get_option( 'active_plugins', array() );

        $conflicting_plugins = array(
            'facebook/facebook.php',                                                // Official Facebook plugin
            'wordpress-seo/wp-seo.php',                                             // WordPress SEO by Yoast
            'add-link-to-facebook/add-link-to-facebook.php',                        // Add Link to Facebook
            'facebook-awd/AWD_facebook.php',                                        // Facebook AWD All in one
            'header-footer/plugin.php',                                             // Header and Footer
            'nextgen-facebook/nextgen-facebook.php',                                // NextGEN Facebook OG
            'seo-facebook-comments/seofacebook.php',                                // SEO Facebook Comments
            'seo-ultimate/seo-ultimate.php',                                        // SEO Ultimate
            'sexybookmarks/sexy-bookmarks.php',                                     // Shareaholic
            'shareaholic/sexy-bookmarks.php',                                       // Shareaholic
            'social-discussions/social-discussions.php',                            // Social Discussions
            'social-networks-auto-poster-facebook-twitter-g/NextScripts_SNAP.php',  // NextScripts SNAP
            'wordbooker/wordbooker.php',                                            // Wordbooker
            'socialize/socialize.php',                                              // Socialize
            'simple-facebook-connect/sfc.php',                                      // Simple Facebook Connect
            'social-sharing-toolkit/social_sharing_toolkit.php',                    // Social Sharing Toolkit
            'wp-facebook-open-graph-protocol/wp-facebook-ogp.php',                  // WP Facebook Open Graph protocol
            'opengraph/opengraph.php',                                              // Open Graph
            'sharepress/sharepress.php',                                            // SharePress
        );

        foreach ( $conflicting_plugins as $plugin ) {
            if ( in_array( $plugin, $active_plugins ) ) {
                add_filter( 'jetpack_enable_open_graph', '__return_false', 99 );
                break;
            }
        }

        if ( apply_filters( 'jetpack_enable_open_graph', false ) )
            require_once dirname( __FILE__ ) . '/functions.opengraph.php';
    }

一瞬、「ここに挙げられているプラグインがアクティブならば、ちゃんと OGP タグ出力は抑止されるのでは?」と思ったのですが、よく見るとマルチサイトでネットワークレベルで他のプラグインをアクティベートしたときはこのチェックから漏れてしまいます。

従って (現行バージョンの Jetpack では) この二重出力問題はマルチサイト環境のみで生じます。 ワークアラウンドは、ネットワークレベルで他のプラグインをアクティブにするのはやめて個別のサイトでアクティブにすることです。 実際に私も Facebook プラグインをこの方法でアクティベートすると問題は解消されました。 ちなみに OGP 出力については fb_xd_fragment の件もあるので Facebook プラグインが私のお勧めです。

参考までに書くと、ネットワークレベルでアクティベートされたプラグインは以下のオプションの内容を参照することで確認できます。

get_site_option( 'active_sitewide_plugins') 

パッチをつくって送ってみようかな…。