オーディオインターフェースをLinuxで使えるか検証
昨日届いたsteinberg UR22mkIIがWindows環境できちんと動作するのを確認出来たので、どうせならLinux環境でも使いたいと考えていました。ついでにRoland Rubix-22も動作するか確認してみました。
リサーチ段階では、Linuxでの使用は結構苦労するかも知れないという感じでしたが、やってみると結果的にはdebian GNU/Linux 10(Buster)xfceでは接続するだけでオーディオ入出力が可能でした。あっさり認識してくれました。
検証環境が重要
私の実際の検証においては、検証環境として使っているOracle VirtualBox(仮想マシン)の不具合で、遠回りさせられたので検証にはちょっと時間がかかりました。実機のLinuxマシンで検証すべきでした・・
仮想環境で動かしたdebian上ではオーディオインターフェースをきちんと認識しており、PulseAudioでレベルゲージも振れているのにオーディオインターフェースから音が出ないという症状でした。Oracle VirtualBoxにおいてUSBコントローラー周りのエミュレートが上手く出来ていない様です。まぁ仮想環境なんてそんなレベルだと割り切るしかありません。やはり実機で検証するのが確実ですね。
PulseAudioは正常に動作しているので、次にALSAに不具合が有るのでは無いか?とコマンドを叩いて調べて行くうちに「何も問題は無いんじゃないか?」という結論にたどり着きました。そして仮想環境での検証を諦めてdebian実機に接続してみたところ、あっさり動作してきれいな音を奏でてくれました。
最初から実機に接続すればトラブルはなかったでしょうが、Oracle VM VirtualBoxが信用出来ないということは学習出来たので遠回りした価値はあったと思っておきます。
正直いってOracle VM VirtualBox(バーチャル環境)のことは信じていなかったので、もしかしたら「上手く動作しないのは仮想環境のせいでは?」という疑いの気持ちがあったのは幸いでした。疑いを持ってなければ泥沼にハマって時間だけを浪費してしまうところでした。
余っているノートパソコンにdebianをインストールして試してみたら一発で動作OKとなりました。VM環境があるからそれで検証するのが手っ取り早いと思ったのですが、結果的に遠回りしちゃったわけです。(後に調べてわかりましたが、VirtualBoxのUSBポート設定を機能拡張でUSB 3.0にしてやる必要がありました)
補足(2021/05/08)
後日、VirtualBox上で音が聞こえなかった原因を調べて判明したので別記事に記しました。
debian busterに標準装備のPlusAudioで認識
結論として、steinberg UR22mkII、Roland Rubix22のいずれも、USBケーブルで接続するだけできちんと認識してくれました。
「PulseAudio音量調節」を起動して一番最初に確認したいのは「設定」タブです。ここにオーディオデバイスがリストアップされます。
下図で言う「内部オーディオ」と「Audio Device」というのは、いわゆるオンボードのサウンド機能です。PCオンボードのオーディオインターフェースはノイズが多くショボいので快適に音楽を聴くために今回の様な外付けのオーディオインターフェースを使います。
上図の3つ目に「Steinberg UR22mkII」として認識されています。通常はプロファイル:アナログステレオデュプレックスとしておけば良いでしょう。個人的な好みで言うと、使わないオーディオデバイス(PCオンボード)は「オフ」にしておくと混乱しないと思います。
入力装置というのはUR22mkIIのマイク入力のことです。きちんと認識していてUR22mkIIに接続したマイクに話しかけると、レベルゲージが振れて動作してくれました。問題ありません。
一番使う「出力装置」です。私の場合はLINE OUTPUT(L/R)からBOSE 1705アンプに接続して、JBL CONTROL1というスピーカーを鳴らしています。必要にして十分にキレイな音で鳴ってくれます。ダイナミックレンジもしっかり確保できておりノイズは聞こえません。昔はPCで再生する音はノイズまみれで耳障りでしたが今となってはPC再生でも快適に使える様になったなぁと思います。
Debian上でFirefoxを起動してYouTube動画をストリームさせると、「再生」タブに下図の様な項目が現れてレベルゲージが振れます。Firefoxを終了させるとこの項目は消えますので、PulseAudio向けにオーディオデータが流れてくると項目が現れるという仕組みです。
dmesgコマンドを叩いてみると認識してくれていることがわかります。
今の所Linux環境でMIDIインターフェースを使うことは考えていないので、MIDIについては未確認ですが認識は出来ている様です。LinuxでDTM(DAW)を使いこなすとなると色々覚えなくてはならないことが増えるらしいのでDTMはWindows環境とAndroidタブレット(Roland Zenbeats)で十分かなと思っています。
参考のためにRubix22でも動作を確認
下図の様にきちんとRubix22が認識されています。オンボードのサウンド機能は「オフ」しておくのが私なりのシンプルな考え方です。有効として残しておくのも各自の好みで良いでしょう。
Rubix22でもアナログ入力(マイク入力)がきちんと動作しました。
肝心のアナログ出力も問題なしです。PC上で発生する音はRubix22に向けて送られるのでRubix22からキレイな音が出ます。ヘッドホンでも良し、外部アンプ+スピーカーでも良し。
Firefoxを起動してYouTube動画を再生してみると、同様にAudioStreamとして項目が現れレベルゲージが振れます。
最後に
ちょっと心配はしていましたが、調べながら試したことを整理すると、debian GNU/Linux Buster xfce版で検証した限りは、「Steinberg UR22mkII」、「Roland Rubix22」はいずれもUSBケーブルで接続するだけでオーディオ入出力インターフェースとして機能してくれました。何も難しいことや追加することはありませんでした。いずれも「USBクラス・コンプライアント」対応機器です。
どうやら「USBクラス・コンプライアント」に対応しているオーディオインターフェースやUSB-DACならLinuxでもすんなり認識してくれるんじゃないかと思われます。ただしUSBポートの制限があって、USB2.0以上の速度が出るポートでないと動作しない様です。
下記なんかはUSBポートがUHCIなのでUSB1.1という古い規格のポートしか無く、USBクラスコンプライアントのDACを接続しても動作しないPCの例です。
<code>~$ lspci
00:00.0 Host bridge: Intel Corporation 4 Series Chipset DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 2 (rev 01)
00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 01)
00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 01)
00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 01)
00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01)
00:1f.2 IDE interface: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] (rev 01)
00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 01)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8057 PCI-E Gigabit Ethernet Controller (rev 10)</code>
Code language: HTML, XML (xml)
比較的安価なUSBオーディオインターフェースとして「Behringer(ベリンガー)」なんかもありますし、PC内蔵のサウンド機能よりも品質の良い音を再生するだけなら「USB-DAC」を手に入れても良いかも知れません。Linuxで認識できるという保証は出来ないので事前リサーチは必須ですが・・
オーディオインターフェース(USB-DAC)で蘇る旧型PC
外付けのUSBデバイスを一つ手に入れることでPCの活用方法が一気に広がります。
例えば、退役して使われてない古いPCに軽めのLinux(個人的にはdebianをオススメしたい)をインストールし、ハイレゾ・オーディオ再生環境にするなんてのも良いかも知れません。多くのLinuxディストリビューションに標準で入っているオーディオプレーヤー「Audacious」の出力を32bitに設定する程度でもイージーリスニングには十分だと思います。何よりノイズに強いのでキレイな音が再生出来ます。
ちなみにdebian 10(buster) xfceの場合は「Audacious」は最初はインストールされていないのでパッケージを追加してやる必要がありました。でもインストールはSynapticからでも行えるので誰でも簡単に出来ます。Linuxの使用に慣れていない人はdebianよりも情報が多いUbuntuやLinux Mint等を使うのが良いかも知れませんがお好みで。
オーディオインターフェースを追加すると快適に音楽を聴ける環境が出来たり、録音や配信環境が整うので便利です。1万円台でこの品質のデバイスが手に入るなんて良い時代になったなぁと思います。ハードオフ等で安価に中古品を手に入れてくるのも一案です。
昔はオーディオインターフェースの種類も限られていて、おもちゃみたいな性能のものでも4~5万円は当たり前だったのですが、現在はそれだけ需要が広まって商品開発の競争が激しくなったという事の様です。現在販売されている1万円台の安価なオーディオインターフェースでも時代に見合うだけの品質(性能)を確保しているので、趣味で音楽を作ったりする人でも十分満足出来るレベルにあると思います。
外部スピーカーを駆動する
PCのスピーカーから出てくる音がショボいと嘆いている方は、オーディオインターフェースで強化し、外部スピーカー(ステレオアンプ併用)から聞こえる様にすると少ない投資でかなり満足度の高い音が得られます。比較的安価な金額でアンプとスピーカーもお好みで選べるし良い時代になったものですね。
個人的にはスピーカーはJBL推しです。手頃なControl 1でもバランスの良い音響が得られると思います。
コメント
I have the same issue that I cannot use Roland Rubix22 on Ubuntu Linux in VirtualBox. I solved it by installing Extension Pack and set the USB mode of the virtual machine to 3.0. Before installing the Extension Pack, I could only set the USB mode to 1.1, with which Roland Rubix22 does not work. Reference: https://qiita.com/matsuo7005/items/87bf176018f6f5e68b4e
Thanks for your comment.
When using the USB Audio Interface on VirtualBox, the reason why it did not work properly was that it did not meet the USB 2.0 required by the USB Audio Interface. The status of the investigation is also described in my separate article.
https://mypace.sasapurin.com/entry/audiointerface-on-debian-on-virtualbox/