安い上海亭に喜んでたら Premiere に裏切られたの

会社で Premiere をいじっていると、音量がとてつもなくでかい!
なんだこりゃー!! 耳が痛い。
なんか設定変更したっけ? と、別のアプリで音楽をかけてみるも、特にいつも通り。
アレー? なんだこれ?

と、Premiere の音関係の設定をみたら、 ASIO を使うように設定されていた。どうやら ASIO は Windows 本体の音量とは関係なしに出力するらしい。まぁ仕組み的に、当然という気もする。
別に Premiere は音質こだらないし(ヲイ)、Windows の出力でいいんじゃないかとか思って他のアプリと同じように Windows のミキサに接続するように設定した。そしたらこんどは音がぶつ切りになる。
なんだなんだ?

しばらく原因がわからなかったのだが、ほどなく、Windows の出力側の設定だということに気づいた。意味も無いのにとても音質の高い設定にしているのだ。

どうやら Premiere はサンプリング周波数 192kHz、量子化ビット数 24bit に対応してないらしい。試しに 16bit 48kHz にしたら普通に再生された。なんだよ、今時? って思った。まぁ会社で Premiere 使うの、一月の仕事以来だからなぁ……あの時は ASIO 出力で Windows の音量も同じくらいに設定されていたんだとおもう。
iPhone の音を Windows で MIX するようにしたとき、iPhone で再生するものよっては出力が小さいことがあって、それで Windows 側の音量を小さめにしていたのだと思われる。

仕方がないので Premiere は ASIO に戻し、Windows の音量を ASIO に合わせた。
iPhone の出力は小さい場合はミキサー側であげることにした。

一番左が iPhone、そして左から 4 番目が PC だ。
下の写真は今日のランチに食べた上海亭の五目ラーメン。ここね、どんな定食もみんな 600 円均一。炒飯付き。炒飯つーても、なんていうか味付けご飯みたいな感じなんだけどね(汗)。味はきほん業務用のスープなんだけど、食べやすいようにアレンジしてある。600 円なら問題ないんじゃなかろうか(ぉ

WB-BT300 とか PHP とか VPN とか

Twitter から拾った、コンピュータ関係の話。

iPhone の音を PC の音とミックスして出したくて、使っていなかった Bluetooth レシーバを引っ張り出してきた。Onkyo の WB-BT300 という機械だ。コイツはなにをする機械かというと、iPhone など Bluetooth 対応機からは音響装置に見え、WB-BT300 に対して音声を飛ばしてくれる。WB-BT300 は iPhone からきた音声を、デジタル信号かアナログ音声信号に変換して出力してくれるのだ。

で、会社の開発機には TEAC の US-366 というミキサー兼 USB 音源があるのでそいつと接続すると、PC からの音と iPhone からの音をミキシング(混ぜて)出せるようになるのですな。ちなみに US-366 と WB-BT300 は光デジタルケーブルで接続。

ところが、iPhone からの音しか出ない!! なんだこれ??

原因は WB-BT300 のデジタル フォーマットがサンプリング周波数 192kHz、量子化ビット数が 24bit のせい。このフォーマットは統一しておかなければならないのだが、たかが Bluetooth の音声受信装置でなんでこんな高い設定なんだwww
ちなみに CD はサンプリング周波数が 44.1kHz、量子化ビット数が 16 ビットだ。CD よりも音が悪いクセにデータ量は CD の 6.5 倍もあるwww

仕方がないので PC 側の出力も 192kHz の 24bit に設定した。こうすることによって無事 PC と iPhone の音が同時に出るようになった。

某絵描きから、イベントの福引きみたいなクジをデジタル化できないかという依頼があり、ごりごりと PHP と HTML と Javascript で作った。今流行の HTML5 というヤツだ(ぁ
中身はすぐに出来た。そりゃまぁ、そうか。クジ振るだけだから、出た乱数が何等賞なのかに変換して表示するだけである。

問題は管理画面である。単純にクジ、と言っても誰でも彼でもアクセスしてクジが引けるというワケにはいかない。以下の様な機能が入っている。

  • ユーザ登録して、ユーザ登録した人がクジを作れる
  • クジはいくつでも作れる
  • それぞれのクジには 1 ~ 10 等賞まで設定でき、さらに残念賞、参加賞が設定できる。そしてそれぞれの賞及びはずれがいくつあるのか設定するようになっている。
  • QR コードの表示
  • クジを引く画面を Javascript でアニメーションさせる。
  • 何等賞が出て、残り何の賞がどれくらい残っているかリアルタイムで監視する、モニター

使い方はユーザ(主催者)がクジを作ったら、そのクジを iPad などの端末で表示し、お客さんがそれをタップしてクジを引くというものだ。
さらに QR コードを吐いて、それをお客さんが撮影してクジを引くという機能もつけた。この場合、ちゃんと一回しかクジは引けないようになってるのだが、残念ながら Javascript では機種固有の識別番号を取得できないので、cookie になってしまった。そのため、cookie を消去すれば何度でもクジは引けてしまう。

ツイートでの愚痴は、HTML というかサーバのプログラムは一回一回が初めてのアクセスになるというか、仕組み上、同じ人が何度アクセスしようが、サーバ側は初めての人が初めてアクセスしたことにしかならない。
今アクセスしに来た人が前の○○という場所にアクセスしに来て、今のアクセスはそれの続きであるということは実は認識できないのだ。それを実現するために、cookie やらセッションやらっていう仕組みがあるのだが、とにかく一回一回のアクセスがすべて関連を持たせられないので、渡す数値だのなんだのも全部もらい直さないといけないので、プログラミングがすげーめんどくさいっていう話。

これが普通のプログラムだったら、さっききたアクセスは変数に残ってるし、その変数を参照して関数を呼び出せば済むんだけど、PHP だとアクセスが来るたびにプログラムは先頭から実行されてしまうのだ。

あと処理は PHP なんだけど、それを表示するのは HTML なのね。組み方としては PHP が処理の結果に応じて HTML を吐き出してるワケなんだけど、そうなるとプログラム ソースの中に PHP と HTML が混在してけっこう美しくない結果に……。今回は仕様書も何もないままテキトーに作り始めてしまったので分離されてないのだけど、予定してたより大きなプログラム(PHP 部分で 2000 行程度、Javascript が 500 行程度)になってしまったので、今後は気をつけたい(汗


(MP4 / 750x1334 / 25fps / 1'05" / 126MB / iPhone)

amatsukami.jp サーバの様々なサービスは、色々がんばって外に出してるんだけど、それでもやっぱり一部の機能は VPN を張らないと使えない。そのたびに端末(iPhone など)から VPN を張ってるんだけど、けっこうめんどくさい。
モバイル WiFi ルータに VPN を張る機能があれば、端末でいちいち張らなくても済むのになぁ……。