目次: ALSA
昨日(2016年5月29日の日記参照)の続き。Linuxでも測ってみました。
Windowsで測ったときと同様に、オシロの目盛が振り切れない程度に音量を調節しました。Linuxはループバック再生のやり方は特にありませんので、下記のようにarecordとaplayをパイプで繋いでみました。
arecord -D plughw:1 -f dat -B 10000 | aplay -D plughw:1 -f dat -B 10000
バッファはデフォルトだと500ms近かったので、arecord側もaplay側も10msに設定しています。パイプの分もバッファがあるので、最大で20ms + α 程度のレイテンシになると思われます。
まずCreativeのSound Blaster Play! を測ってみました。
In to Outのレイテンシ(Linux) - Sound Blaster Play!
おお、結構良いじゃないか。と思ったのですが、なぜか入力より出力が遅いようで、しばらく放っておくとレイテンシが変わってしまいます。
In to Outのレイテンシ(Linux) - Sound Blaster Play! その2
同じ機器なのに、録音と再生の速度が違うのは妙です。録音側をplugで変換しているからでしょうか。良く分からんな…。
目次: ALSA
先日(2016年5月22日の日記参照)の続き。オシロスコープを引っ張り出してきて、測ってみました。
Windows側でサウンドデバイスの設定は特にせず、オシロの目盛が振り切れない程度に音量を調節したのと、録音デバイス側の「このデバイスを聴く」のチェックをつけ(=ループバック再生)るだけに留めました。
下記のように接続して、オシロスコープのCh1に単発トリガを掛けて、どれだけ遅れて音が鳴るかを調べました。スプリッタと格好良く書いていますが、単にステレオで出力して、赤白ケーブルの赤と白に分けているだけです…。
ちょっとした工夫として、入力信号の周波数を低め(100Hz)にして、波長の整数倍(今回は0.05s、つまり5波形分)のパルスにしています。
周波数を低くするのは、オシロの時間軸を長めに取ったときでもグラフが潰れず波形をカウントしやすいためです。
パルスを波長の整数倍にするのは、入力と出力の一致を見るためです。たまに無音状態から出音すると先頭の音が欠けてしまう(ポップノイズ防止のため、ボリュームにフェードを掛けて出す)デバイスがあります。その手のデバイスに当たると、フェードの分だけ遅れているように見えるため、不当に悪く評価してしまうからです。
最初はCreativeのSound Blaster X-Fi Go! Pro(約4,000円)です。
In to Outのレイテンシ - Creative SoundBlaster Go! Pro
約100msですね。
次は、同じくCreativeのSound Blaster Play(約1,000円)です。
In to Outのレイテンシ - Creative SoundBlaster Play!
わずかに早い、約90msです。
最後はONKYO SE-U33GXV2(約13,000円)です。このデバイスは内部で直結されているらしく「このデバイスを聴く」をチェックしなくてもループバック再生されていました。
In to Outのレイテンシ - ONKYO SE-U33GXV2
これは0msと言っても過言では無いです。あまりにも同時に鳴ってしまい、グラフが重なって見えないので、グラフを上下にずらしています。
しかしWindowsの設定なんて完全に無視してくれるので、ループバック再生できているとは言えないような。。。
In to Outのレイテンシ - ONKYO SE-U33GXV2「このデバイスを聴く」
ちなみに「このデバイスを聴く」にチェックを入れると、同じ音が二回鳴ってしまいます…。レイテンシはやはり100msくらいです。Windowsはこんなもんなのかなあ?
< | 2016 | > | ||||
<< | < | 06 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | - | - |
合計:
本日: