ラベル Latency の投稿を表示しています。 すべての投稿を表示
ラベル Latency の投稿を表示しています。 すべての投稿を表示

2017年4月16日日曜日

[PPTP]帰ってきたオーディオインターフェースの選定 その2

いきなりですがZOOM U-22を買いました。



いままではNative InstrumentのKOMPLETE AUDIO 6をWinows用に使ってます。
(ごめん、動画で誤記載してますがずっと"AUDIO KONTROL"という名前だと思ってました)

これも長いこと使っているので(もう4年くらい前?これ以来NI社からI/Oの新商品出てるのか、、?)新しいI/Oを試したかったのと、
PPTP用にU-22使えるならやってみようと購入。
さてRaspberry Piではこの両者、どうなのでしょうか?

以下、人柱的なコメントなので試す方は自己責任でお願いします。
結論としては両方とも認識して使えます。
レイテンシーは正直、Behlinger UCG102と大して変わらないです。
(Behlinger UCG102の記事はノーマルカーネルリアルタイムカーネルの2つあります)
こうして考えるとUCG102はもし中古で買い叩けるならコスパ高い。


【Raspbianでの互換性】
U-22もKOMPLETE AUDIO 6も使えました。
KOMPLETE AUDIO 6についてはNI社からLINUX互換性あると情報公開されています。
設定もWindowsライクにGUIから設定でき、PuredataでもALSAで使えます。

さて、U-22ですが、ZOOM公式ではLINUX対応しているかどうかも情報ありません。
しかしながらWindos(これだけドライバ要)・MacだけでなくiOSで動作します。
「これ、USBクラス・コンプライアント対応かもしれん」
特に公表されている情報無いですが上位機種は対応っぽいです。
よし、使ってみよう!


使いました!ちょっと特殊ですが「Puredataなら」すぐ使えます。
VNCでスクリーンショット取りました。
写真左上部を見ると分かるとおり、USBで挿してもタスクバーではそのまま認識されません。
(やり方あるかもしれないですか)

ただしPuredataを立ち上げると認識・デバイスを選べるようになっています。
ALSAで使うと快調です。
JACKは知らない。設定ヘタクソなのですぐ音飛びしてしまいます。


【レイテンシーについて】
正直、UCG102もKOMPLETE AUDIO 6もU-22もトントン、といった感じです。
U-22はNO-GUIでパルス撃つ試験したので載せておきます。
Samplerate:44100
Block Size:64
Delay:6

レイテンシー:16ms




さて、PPTPでは何のオーディオインターフェースを使うか迷うところですが、
UCG102かU-22になりそうです。
KOMPLETE AUDIO 6は大きすぎる・高価なので却下。




【PPTP向けUSBオーディオインターフェースのまとめ】
レインテンシーはUSB2.0で使うぶんにはどれもトントンです。
どれもドライバ無しで挿せば少々の設定すれば動きます。
USB3.0? Raspberry PiのUSBポートが対応してない。





【感想】
・マイクイン(3V程度のコンデンサマイク用直流がRingから出てるのでギターをそのまま挿せない。改造ないし変換プラグを一考する必要あり)
・ヘッドフォンアウト(アンプに挿すにはパッド入れる等しないと調整大変)
・そのため改造要るが、いかんせん外装が滅茶苦茶硬い金属製。
・それと反対に、脆いジャック。取り外そうとハンダ吸おうとしたらプリントパターンごと剥がれて難しい程度に。
その代わり失敗しても痛くないくらいコスパ最強。時間と苦労を厭わない人向け。
・音は値段相応ですがエフェクター用途で使うならそんなに悪くない気がします。
更にインにバッファ入れたり・アウトにパッドやフィルタ入れる等の改造次第で化けそうな気もします。




【感想】
・Hi-Zインが付いてそのままギター挿せるUSBオーディオインターフェースの中ではたぶん最小。
・ヘッドフォンアウト(アンプに挿すにはパッド入れる等しないと調整大変)
・外装の分解が簡単(3点ネジ止め)
・このためジャック交換程度の改造は楽。
・音はエフェクター用途ならいいと思う。むしろヘッドフォンアウトの音が意外と素直。
・以外と高いので中古で探そう。




【感想】
・Hi-Zインが付いてそのままギター挿せるUSBオーディオインターフェースの中ではたぶん二番目に小さい。まだ手のひらサイズ。
・ヘッドフォンアウト(アンプに挿すにはパッド入れる等しないと調整大変)
・でもラインアウトもある。ヘッドフォンアウトよりは調整が楽?ただしLRのRCAメス。
・ちょっと高い。でもUCG102を定価で買うくらいならこっちでもいいかも。迷う。
・ネジが見当たらない。分解し辛そう。変換プラグで頑張る人向き。
・何気に24bit。96kHzにも変更できる(がレイテンシ増えます。仕方ない)
・音はちょっとクセがあります。ZOOM独特の硬い音?妙なバッファなのか、この辺の味付けはG2.1uから変わらない。



2017年4月9日日曜日

[Puredata]レイテンシー考察 その2


前回までのあらすじ

[PPTP]セットアップとレイテンシーについて

2回の記事で、体感上のレイテンシーよりもPDのツールで測定したレイテンシーが遥かに高いので何が本当のレイテンシーか分からなくなってきたところで終了。

その後、こちらのシンプルにパルスを打つ測定法も試しましたがPD謹製のツールとレイテンシーが変わらず苦悩しました。
→結果としてこの後書く、ほぼパルス撃つ試験と同成績になります。正解です。


そして悟りを開いた結果、
「そうだ、自分で測定パッチを作ろう」
→失敗しました
最下部に前回記事だけ残しておきますが、
微弱な信号?ノイズに反応して測定開始するというピーキーなパッチでした。

drugscore様に良い試験方法を教えて頂き、
PPTPで実験してみました。

オシレータだけスマホでサイン波を用意している以外は構成は同じ方法です。
【バイパス構成】

この構成で実験しました。
Samplerate:44100
Block Size:64
でDelayだけ変えてみます。
Delay20msで35ms


Delay11msで22ms

うん、自分の耳がおかしかっただけで、測定結果はツールとほぼ同じ(哀)
Delay弄ればレイテンシーも実は変化していたというオチでした。


【実際のパッチ運用構成】
悲しいオチでしたが、いい試験方法が見つかったので、
今度は実際に使っているエフェクトパッチを運用するとどれ位遅延するのか測定しました。
用意したパッチはこちら。GUIの順番がバラバラですが、全部直列に繋いでいます。
順番は、、
Adjust adc~(入力レベル調整)*

NoiseGate信号検出側パッチ*

WahWah

Tube Scuttle OverDrive

V8custom Preamp

Cabinet EQ

NoiseGate動作パッチ

Cabinet Air(中身はほぼディレイ)

専用dacパッチ*

*は接続の関係でバイパス時も常にOnです。
Puredataは
Samplerate:44100
Block Size:64
Delay:11ms
で設定。。


23ms。1msくらいは誤差でるのでadc~→dac~直結の最小構成と考えてもほぼ同じ遅延。
速い!


Preampを追加でOn。
23ms。
フィルタやexprでクリッピングを多くしてますが、バイパスと変化無く、
思っていたよりも速い。



Preamp + Cabinet EQ & AirをOn。
Airは単発とはいえショートディレイ使っているので遅いかとおもいきや
23msとまだ変わらず。



NoiseGate動作パッチ以外はワウもオーバードライブも全部On。
ここで25msとすこし遅延が増えました。
NoiseGateもOnにしました。
35ms。閾値を大して調整してなかったせいもありますが
一気に遅延したのでNoiseGateはまだ改良の余地があるかもしれません。


以上、パッチの実際の運用を含めてレイテンシー測定しましたが、
Puredataでの処理自体は高速なので遅延はあまり気にしなくてよさそうです。


********************************************************







【以下、自分でパッチを作って失敗した例】
→完全に失敗作でしたが、env~とmoses使ってシグナル検知する方法を使っています。
もう少し閾値を高く設定しておけば誤差も少なかったと思われます。


自分の思っているレイテンシーと謹製パッチの測定結果で違和感があるのは、
これぐらいシンプルで、弾いたギターの生音とヘッドホンから出てきた音のレイテンシーが知りたいのですが、
謹製ツールはやたら複雑なオブジェクトが多く、処理が重い分レイテンシーが水増しされているんでは?と考えたからです。
実際に使われている、アタック検出するbong~ですが、
これ2個をならべてtimerで測定した簡単な測定パッチを作っても結果は謹製パッチとほぼ同等になります。
どうもシビアな測定をしようと思うとこのあたりがボトルネックになっていると考えました。





考えました!雑!
(でもやり方に疑問あるかたはご指摘ください!むしろいい方法を教えてほしい!)
できるだけ軽そうなオブジェクトを選んでみました。
試験音は立ち上がり検出の速いphasor~で。
実際の測定方法は写真のStartのBangではなくdac~直前の
env~
|
moses 1
|
bang
|
timer
です。
このあたりはギターのストローク開始ではなく、ギターの弦にヒット・発音したというのをイメージして、ここからスタートとしています。

本当はthresholdでbangしたかったですがうまくbang出来なかったので、
mosesで代用しました。
何発か無駄なbangしてしまいますが、しかたがない。

さて物理ケーブルでアウトプットからインプットまでループして戻ってきたら、
同様にmoses でbang打ってtimerを止めます。

計測結果はコンソールにプリントアウトします。
これはStartのbangが何発か無駄弾を打つので測定結果を上書きしないようにするためです。

それでは測定結果を見てみましょう。。


【測定結果(Windows)】
Samplerate:44100
Block Size:64
Delay:30
で何回か測定。。

70ms



81ms(中段付近。コンソールリセットせずに測定しました。見づらくてすみません)






81ms







58ms!?


WindowsでMMIOのせいか、だいぶんバラつきがでます。
でも謹製ツールより若干短くなります。


【測定結果(PPTP)】
こちらも
Samplerate:44100
Block Size:64
で測定してますが、Delayは変えています。
若干無駄Bangと入出力レベルの調整不足で0msを吐いていますが、
なかなか面白い結果がでました。




 Delay:5で11.6ms(音飛ますが一応測定するとこうなります)



Delay:11で11.6ms
Delay:20で11.6ms


さすがに11.6ms以下の結果も揃いすぎてるのは気持ち悪いですが、
PPTPはDelayを変えても聴感上のレイテンシーが変わっていないという体感は
あながち間違いではないのかもしれません。

2017年4月8日土曜日

[Puredata]レイテンシー考察 その1

drugscore様よりPuredataのライブラリ内に
レイテンシーを測定するツールがあることを教えて頂き、使ってみました。
Windows版・Linux版共に
Pd\doc\7.stuff\tools\latency.pd
のパッチです。
【使い方】
パッチを開くとサイン波が出力されています。
これをお手持ちのオーディオI/Oのアウトプットから出力→インプットから音を拾って測定します。
これはWindows環境でNI社のAudio Kontrolの構成ですが、右のヘッドフォンアウトから左のインプットへ接続します。
ループさせるようなイメージの接続です。

次にパッチのWindowを見まして、
"adjust gain here"でサイン波の入力ゲイン調整できるので調整して、
"RMS amplitude in"が"RMS amplitude out"の値に近づくようにします。

これで1秒毎に"latency in milliseconds"でレイテンシーが表示されます。

それでは測定結果を見てみましょう!

【測定結果(PPTP)】
さて我がPuredata witn Pi The Pedalですが、どれほどの速度がでるか楽しみです!

写真のようにインプットとアウトプットとループさせまして、、
(オシロの校正みたいだな、、)
Puredataは
Samplerate:44100
Block size:64
の設定にしてみて、Delay(msec)を変えて測定してみます。

以前の記事で「聴感上の」測定では、設定を切り詰めても10ms強かな、、
という印象ですが果たして結果は、、

Delay(msec):20で
測定結果は34ms。




Delay(msec):11で
測定結果は23ms。

ん、、予想より遅い。いやまあ前回の測定では自分の耳が腐ってちょっと良く盛ってたと思えばそれまでの事(悲)

次にWindowsの測定に取り掛かります。

【測定結果(Windows)】
こちらは
Windows10
Audio Kontrol
の構成です。
普段パッチの紹介動画はこれにWindows10標準搭載のXbox動画撮影機能で撮影しています。
いつもレイテンシーが厳しくて録画に苦戦しています。

以下のPuredataのオーディオ設定で測定しました。
Samplerate:44100
Block Size:64
Delay(msec):30
これよりDelayを下げるとバッファが切れます。

その結果、、
レイテンシーが101ms!?
PPTPより遅いとは認識していましたが、いや幾らなんでも遅すぎる、、
これでは動画を撮りながらギターを弾くのはいくらなんでも無謀すぎます。。

このパッチ、レイテンシーの測定以外にもバッファ切れの測定もしているので
ひょっとすると正解よりも多めにでるのかも?

測定パッチの中身も覗いてみました。

del 800
|
snapshot~
|
* 1000
|
float(レイテンシーの数値表示)

レイテンシー表示の直前にdel 800という怪しい記述あり。
おそらく数値の調整で入れているとは思われますが、、
また、こちらの記事ではALSAを使うと10msを切れるのかもしれません。

というような、謎な事もありまして、
バッファ切れは度外視して、
短いパルス1発撃ってレイテンシーだけ測定するような
シンプル設計の測定方法に改造できないか妄想中です。



※前述の「聴感上の」測定ですが、
Audio Kontrolにはダイレクトモニタリング機能が付いています。
これとDSP処理後の音をミックスすれば①単発ディレイが掛かっているような音になります。
この音を聴き、Puredataにはdelwrite~とdelread~があるので、
(よほど短いレイテンシーでなければの条件付きですが)
Puredataで作成したadc~から入った音+数msのディレイ音を②ミックスします。

①②を比べて似たような遅延音になったあたりがおよそのレイテンシーという、
ものすごく曖昧な人力測定を行っておりました。

あながちlatency.pdの測定結果は間違いではなさそうです。
パルス1発撃ってみる試験を実施するとほぼ同程度の結果になります。
次回分で内容掲載します。

[機材]Boss Mega Distortion MD-2 MOD

こちらの記事 で無改造のVanillaを紹介していますが、 今回紹介するのは自分で改造したものです。 紹介動画は以下。 内容は、 Vanillaの低音域が効きすぎて少々使いづらかったので 1:低音をカット(ただしゲインも少なくなるので) 2:ブースター...