オススメ

JACK インストールと設定・3分クッキング(改訂6版)前篇

JACK導入・3分クッキング(2020年8月25日改訂)

(17.10beta1追記+18.04LTS alpha2/beta)+ manjaro + antergos + ubuntu 18.04LTS and 20.04LTS + Linux Mint 20 )

クッキングの流れは3ステップ。工程をグループにしてゆっくり考えれば誰でもできる。

  1. jackキットを一式導入する
  2. ※追加::ユーザー所属グループにaudio があるか確認してみましょう。なければ設定します。 DEに応じたGUIで設定してください。だいたい設定の「アカウント」で変更できます。ターミナルでも良いです。
  3. jackを設定する(ここがミソ)
  4. アプリケーションを設定する

ユーザー所属グループにaudio があるか確認する。

$ id | grep audio
 92(audio) <<すでに設定済み。なければ追加。
$ sudo gpasswd -a ログイン名 audio

debian/ubuntu/mintは自動設定の気がします。

余談(manjaro とantegosでは部分的に違いますが、導入後は当然同じなわけで、何れも問題なく動いています。というより、ubuntu/mint ではどうやってもハイレゾが微妙なUSB-DACがあるんですが、manjaro とantergos ではそのDACもほぼパーフェクトじゃないかと。このふたつのarch系に関しては最終的にはdbusを使うようにしました)余談終了。

bitperfect視点の気づき

追記:ビットパーフェクトっぽい話です。JACK処理落ちなどの際にチェックしておくべきことを記事にしました。
オススメではありますが、結局のところだめなものはだめなので、特定USB-DACでははまらないようにしましょう。
通常pulseでヘロヘロなものを改善したところで仕方ないってのが当方の結論。USB-DACは買い替えたほうがましです。

以下はこのページに来た方はきっと興味があるはずです。おすすめなのでお時間があればどうぞ。

JACKインストール。はじめます

さて、といっても、ubuntu/mintだと、いまや簡単です。CTRL+ALT+T でターミナルを開いて、下の一行を貼り付けてエンター。

sudo apt-get install qjackctl
sudo apt install qjackctl
のいずれかを。基本同じです。

めんどくさい人は、この段階で、pulseaudio-module-jackも最初からいれておいてもいいです。パルスオーディオとの共存を考慮したい人向けです。普通に使いたい人は、むしろ次を発行でいいのではないかと。VLCを使っているという前提です。

sudo apt install qjackctl pulseaudio-module-jack vlc-plugin-jack

※archメモ sudo pacman -S qjackctl 

依存関係含めて必要一式が導入されます。それでインストール/導入は終わりです。17.10でも確認してみました。Synapticなどでも同様です。qjackctlで検索して選んでください。依存関係はおまかせです。15.10、16.04LTS、18.04LTSでも同じでした。閲覧数がなぜか多いので加筆修正しました。
当方はてきとーなので「気分はカジュアルオーディオ、なんとなくハイレゾ。ライブラリはFLAC。楽曲管理は、EACやそのケーススタディ wav,ape,tak,tta,flac,+cue FLACに決めました。」 みたいな「カジュアル」な考え方で音楽環境を構成しています。がちじゃないです。ゆるゆるです。

設定作業::ハマりどころはここです。ここからじっくりと詰めていきますよ。

メニュー(サウンドとビデオに配されていると思います。)からqjackctlをラウンチ、設定、[開始|終了]。メニューにもしなければ?!、/usr/bin/qjackctl にあると思います。生で起動してみましょう。


設定画面のタブ4枚目、その他で自動起動設定にできますがしないほうがいいかもしれません。D-Busインターフェイスの有効化はオフにしておいたほうがいいかもです。D-Busがらみでエラーメッセージが確認できる場合、真っ先に疑ってください。ちなみに2018年からDbusなjackを導入することにしました。SMP対応のせいか?!比較してみると円滑なのです。気のせいかも。気のせいでしょう。


当方は自動起動にはしていません。普段使わないので。あはは。
はい。設定終わり。

状況確認とタブ1枚目「設定」

タブの1枚目「設定」がうまく行かない場合は、次のようにデバイスを確認してみてください
サウンドデバイスの番号など状況確認は、次のコマンドで。当方の場合は、以下の黄色デバイスをデフォルト出力先にしていて、jackもこの出力先に設定しています。下の画面全体のキャプチャで確認できます。

aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Generic [HD-Audio Generic], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: Generic_1 [HD-Audio Generic], デバイス 0: ALC892 Analog [ALC892 Analog]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: Generic_1 [HD-Audio Generic], デバイス 1: ALC892 Digital [ALC892 Digital]
  サブデバイス: 0/1
  サブデバイス #0: subdevice #0


aplay -L
Lが大文字です。長いので略。

考え方としては、ふつーHDMIにJACKは使わない??ので、HDMIというデバイス行はスルーですね。いちおう自分のハードウェア構成は知ってないと少し悩むかもしれません。以下の画面キャプチャで黄色をどう指定しているのか見比べてみてください。それでわかると思います。当方の光デジタル先のアンプは96kまでのハイレゾしか対応していないので96K設定にしています。最近のAVアンプなどをお持ちの場合は192k対応は通常余裕だと思います。私もAVアンプは更新しましたので、余裕です。

mplayerに、jackを掴ませて再生している図です。 mpvでもサウンド出力先指定して、同じことができます。兄弟なので。定義ファイルで固定にもできます。デフォルトは、Pulse。

参考:: .jackdrc はこういう一行ファイルです。~/.jackdrc


/usr/bin/jackd -dalsa -dhw:Generic_1,1 -r96000 -p1024 -n3 -s -m -H -M -P -zs
今の環境はjackを使っていないのですが、これは2015年11月の実ファイルです。
この時はオンボードの光出力S/PDIFでアンプに流していました。そして5年の月日が流れた。2020年7月23日段階では、AVアンプ更新、S/PDIF(同軸)とS/PDIF(角・光)で、アンプやデコーダーボード(ES9038Q2M)、新たに購入したUSB-DAC などを使っています。遅いAMDから速いAMD Ryzenに更新もしました。

JACKで使ってみた音楽プレイヤー、再生アプリ(JACK対応限定)

JACKでの音出しテストです。あえて「pulseaudio-module-jack 未導入ケース」の説明なので、PulseAudioにしか対応していないアプリケーションは、JACKを終了するまで音がでません。JACKを終了した途端に(忘れた頃)再生を始めます。ここ大事です。テストにでます。

どのアプリでもJACK経由で再生できる pulseaudio-module-jack については時間があれば丁寧に。とおもったけれど書き換えた冒頭通りまたは、リンク先の手順通りにすればそのまま動きます。このモジュールをいれちゃうと表題の「JACK 3分クッキング」の縛りである180秒を超過してしまうので、別項-STEP2にします。結果的に、
Ubuntu How to route all audio through Jack https://www.youtube.com/watch?v=UVhRDU6Kcds の設定と同じになります。ブラウザ(chrome)でもPulseAudio JACK Sinkルートで再生できるようになります。
そこまで必要なのか?! という問題はありますね。2020年の今では、ほぼこの記事のメンテナンスのためだけに、jackをテストしている感じですね。だはは。冠履顛倒。

JACKに素で対応しているアプリ

ざくっというと次のリストの通りです。自分が導入テストした範囲。けっこうWindows版もありますね。素というと少し嘘よ(アンジェ)ですが。ていうか、全部のLinux楽曲ソフトウェアはハイレゾかつJack対応といってもいいような気がします。そういうものか。jackdのsink に流せればいい、と。
  • Audacious 
  • Audacity(編集、解析用に使えます) 、
  • DeadBeef(jackプラグインの別途導入が必要。アンドロイドアプリもありますね)
  • Clementine
  • smplayer(mpvフロントエンド)
  • Gnome mplayer(mpv フロントエンド)
  • mpv
  • mplayer(またはmplayer2)
など。それぞれ、コマンドラインでパラメーター引き渡しが必要だったり、定義ファイル指定が必要だったり、JACKを出力先に設定してあげる必要などがあります。
最初のjack音出しテストなら、Audaciousがわかりやすくていいかもしれません。

コマンド派ならmpv/mplayerです。次のように、音声出力を指定します。jackのところを、alsaやpulseに変えてテストできますので、他のシーンでも便利でしょう。定義ファイルに指定もできます。nano ~/.mpv/config 。

ao=jack を記入します。

DeadBeefの記事はまじめに書いたので、jackプラグインの活用の仕方としてご覧ください。

#確実に指定できるので、ターミナルでのテストはこのほうがいいかも。
$ mpv --ao=jack "音声ファイルはできれば重いハイレゾ.flac"


DeadBeef……デザインモードで、カスタマイズできます。素で対応とはほんとはいえないがお気に入りなので紹介します。 以下にjackを含む DeadBeef 音楽プレイヤー 設定の仕方を完全フルカラーでまとめました。
(横道)妙な周波数ファイルがリストされているのは、ノイズがのっているので、どういうのり方なのか、聴いているからです。DeadBeefについていえばイコライザオンにすると高い周波数に別の信号がソフトウェア内部で発生しています。0にどんな数字をかけても0なのに?!というが私の解釈ですが、どうも期待どおりではないです。Audaciosでも発生しています。っていうか、ubuntu上のすべての導入済みアプリ、aplay、paplay でも発生しています。ちな、Windowsでは、WMPでも発生しています。SONY Xアプリだけが正確、ノイズがはいりません(ハードは同一でOSとアプリが違うということです)。正弦波「だけ」再生している限り、聴こえないはずの音がやっぱり聴こえてしまうのは、ubuntu/mintなので。鋭意調査中です。(無駄な気もしますが)。SONYすげー。ということにして続けます。
ついでにいうと、EQなんかはぜんぶ無効にしたほうがいいと思います。雑音がはいる。

DeadBeefはJackと相性がよい作りになっています。jackを出力先指定しており、jackが起動していなければjackを自動起動して再生してくれます。Deadbeefを終了すればjackも終了します。当方はjack常時起動ではありませんので好ましい機能です。jackプラグインを別途ダウンロード、追加して設定します。設定さえ済ませておけばjackの存在を気にかける必要がなくなります。左上にdeadbeefとして検索してください。設定の仕方を記事にしました。

vlcの例 

VLCメディアプレーヤはプラグインがあった気がしますので、それで使えるようになると思います。ちなみにvlcをコマンドラインで再生する場合は、cvlc にしてもいいよともいわれますので、そうしています。プラグインはあります。プラグインをいれて設定で出力選択するだけで使えるようになります。
次のコマンドを発行してください。

sudo apt-get install vlc-plugin-jack

実際に導入してVLCで再生した場合は次のようになります。
出力モジュールの部分を[jackオーディオ出力]にします。



カジュアルに使いたい大半の方がめざしたい、PulseAudioとの共存



次のステップは音楽専用機する人は不要ですが、カジュアルオーディオ派の多くが目指したいと思うはずの、PulseAudioとの共存です。つまり、一旦設定しておけばその後ユーザーは何も考えずに高音質設定(jack)で音がでるようになる。そうするってことです。横着です。
どのアプリでもPulseaudioからJACKで再生できる pulseaudio-module-jack でjack経由で再生します。おわり。――いや、ほんとにそれだけなんです。導入はこの記事の冒頭通りです。
再度コマンドだけ書きます。

sudo apt install qjackctl pulseaudio-module-jack vlc-plugin-jack

ひとつだけファイルを編集:: default.pa の書き換え

$ sudo apt install qjackctl pulseaudio-module-jack vlc-plugin-jack #JACK

$ sudo nano /etc/pulse/default.pa

45行目あたり。説明行込みで都合3行挿入

load-module module-jack-sink
load-module module-jack-source

2行挿入

#load-module module-alsa-sink この行付近の下に。
##### add this lines for pulseaudio-module-jack
load-module module-jack-sink
load-module module-jack-source

Pulseaudio 停止と再起動


$ killall pulseaudio PulseAudio
※fedora manual から


利用可能なsink先の確認


jack_outが生まれていたらOK。
$ pactl list short sinks

0 jack_out module-jack-sink.c float32le 2ch 48000Hz RUNNING
1 alsa_output.pci-0000_07_00.1.hdmi-stereo module-alsa-card.c s32le 2ch 48000Hz SUSPENDED
2 alsa_output.pci-0000_09_00.4.iec958-stereo module-alsa-card.c s32le 2ch 48000Hz SUSPENDED

JACKが動いていて「RUNNING」、実際に音出しできている状態です。

トラブルシューティング::ジタバタしても仕方ない


図絵(トラブった絵予約)


図に示すように、jack sink が複数になってしまったりした場合は、再起動するか。次のコマンドを発行してみてください。
ほぼ確実に治るはずです。ジタバタせずに再起動が確実です。論理的には正しくても無理な場合は無理です。

$ pulseaudio -k && pulseaudio --start && sudo alsa force-reload



カジュアルオーディオですから


キャプチャの状態を説明します。どうなっているかというと、
JACKで音出ししています。
  • WINEでゲーム音声を再生しています。
  • 3つのアプリケーションで楽曲再生しています。
  • firefoxでYoutube動画を再生しています。
同時です。うるさいです。ぜんぶjack の配下です。

WINEでは顕著な効果が感じられたが……

WINEに関していえば(10000Hzを超えるテストトーンがノイズだらけだったのですが)ノイズが確実に減りました。JACKの効果でしょう。軽いゲームのBGMなどでは問題ないレベルです(また、JACKと無関係にWINE1.8以降ではさらにサウンドは改善されていると思います。これは断言します)。
私見ですが、そもそもWINEなのでどんなに頑張ったところで、遅延やノイズは聴こえがちです。いい線いっていることはたしかです。
VirtualBoxでも同様です。たまに勘違いされているWindowsしか使わないオーディオユーザーブログで、「慣れたWindowsアプリケーションでLinux上で鳴らしてみた」みたいな記事がありますが、JACKを導入、運用するようなユーザーならどうしようもないことがわかりますね。ディスってごめんなさい。音悪いでしょ?! 許容できるかどうかなので個人の嗜好の問題ですけどね。



自分は低遅延、リアルタイムカーネルと呼ばれるカーネルは使わなくなりました

音楽専用(+ピュアオーディオ志向)なら、これに加えて低遅延カーネルを導入したほうがいいですね。電気は多少食います。再生ピッチに違和感などを感じたら、低遅延カーネルの出番かもしれません。
もっとも、ものごとには限度ってものがありますからね。それに今の時代、Linux でLLカーネルなくてもJACKでちゃんとできるってのが通説になりつつありますから。ArchLinuxWikiになるほどという記述があり自分は納得しています。
だからRealTimeカーネル/LLカーネルといわれるカーネルは使わなくなりました。

http://poor-user.blogspot.jp/2016/04/install-linux-lowlatency-on-ubuntu1604.html

ここまで読んでいただけた方は設定の前に次も合わせて目を通しておくといいかもし
れません。2017年9月24日現在の当方の総括です。 2020年の今も特に意見に変わりはありません。

ついでに告白します。2020年夏はもっぱら"マルチプロセッサハードウェア向け"JACK2を現在使っています。arch系manjaro linux利用時。 ubuntu系では従来JACK(旧バージョン)のままです。

しつこくも後編に続きます。👉 https://poor-user.blogspot.com/2018/07/jack-34.html

Linux Hi-Res Audio USB-DACなどの設定

ハイレゾ対応にするための定義ファイルの編集

起稿2015/11/02 更新2020/08/14

サンプルレート、ビット深度は2行書き換えるだけ Pulse Audio でのお話

以下の記述にかかわらず、当方の最近設定(2020年8月14日)は、次の通りです。48k/24bit程度を超えても仕方ないという話ですかね。それに音源に可聴域を超える音が含まれていたとしても、それが何を意味するのか。よろしければ最近の境地は次の記事を参考にしてみてください。僕の耳に棲まう妖精。可聴音の限界についての実験と論考

default-sample-format = s32le
default-sample-rate = 48000

ターミナル(端末)を開きます。CTRL+ALT+T

sudo gedit /etc/pulse/daemon.conf
;; default-sample-format = s16le
;; default-sample-rate = 44100
default-sample-format = s32le
default-sample-rate = 192000

2行書き換えて、
pulseaudio -k ; pactl list short sinks
としてください。リブートでもいいです。これで基本的に完了です。最近のデバイスであれば、192k/24bitぐらいはデフォルトなのでほとんどこの通りでだいじょうぶかと思います。マルチブートであればWindowsの設定で実際に音が鳴るかどうかを試験して設定できますので、その上限に合わせるとよいです。かなり古いサウンドチップなどの場合は、48K(DVDのサンプリングレート)が上限だったりします。
もちろん環境に応じて書き換えてください。

以下は何か困ったら参考にしてみてください。

試しに、以下の3つのコマンドを順次実行して結果をみるといいかもしれません。(追記:かもしれませんではなく、確実に設定するにはやはり必要です)

pactl list short sink-inputs
34    7    21    protocol-native.c    s32le 2ch 192000Hz

pactl list short sinks

0    alsa_output.pci-0000_00_01.1.hdmi-stereo    module-alsa-card.c    s16le 2ch 48000Hz    SUSPENDED
2    bluez_sink._SONY_    module-bluetooth-device.c    s16le 2ch 48000Hz    SUSPENDED
7    alsa_output.pci-0000_00_14.2.iec958-stereo    module-alsa-card.c    s32le 2ch 96000Hz    RUNNING


pacmd list-sinks | grep sample
    sample spec: s16le 2ch 48000Hz
    sample spec: s16le 2ch 48000Hz
    sample spec: s32le 2ch 96000Hz

※このS/PDIF接続先のアンプがスペックで96k上限。

(おまけ)BluetoothとS/PDIFケーブルを抜いて、USB-DACに接続した場合の出力例。
pactl list short sinks       
0    alsa_output.pci-0000_00_01.1.hdmi-stereo    module-alsa-card.c    s16le 2ch 48000Hz    RUNNING
8    alsa_output.pci-0000_00_14.2.analog-stereo    module-alsa-card.c    s32le 2ch 96000Hz    SUSPENDED
9    alsa_output.usb-Burr-Brown_Japan_Burr-Brown_Japan_PCM2702-00-PCM2702.analog-stereo    module-alsa-card.c    s16le 2ch 48000Hz    SUSPENDED


9は、2002年の製品です。
 

謎というか、調べないとわからないことが多いですね。音を正しく出すというのはLinuxでも手間いらずで5分で終わるのですが、どうなっているのか?確認したり、マウス操作したくないので自動的にsinkをシェルで切り替える設定にするにはどうしたらいいの?とか思うとタコユーザーには時間かかります。

音源ソースフォーマット別の結果

それぞれのフォーマットをAudacity ,deadbeef 再生中に実行,確認。
(PulseAudio出力)
» pactl list short sink-inputs

233    1    288    protocol-native.c    s16le 2ch 44100Hz        1)
439    6    902    protocol-native.c    float32le 2ch 44100Hz   1-2)
235    1    292    protocol-native.c    float32le 2ch 96000Hz   2)
236    1    294    protocol-native.c    float32le 2ch 192000Hz 3) 
1) CDと同じ。44.1k/16bit

1-2) 320k MP3(audacity)
2) 96k/24bit
3) 192k/24bit

384k/24bitフォーマットも作っって再生してみた場合、3)と同じです。

おまけ
pactl list short sink-inputs
2    5    21    protocol-native.c    s24le 2ch 192000Hz deadbeef

●384k with audacity
50    5    125    protocol-native.c    float32le 2ch 192000Hz audacity
(5    alsa_output.pci-0000_00_14.2.analog-stereo    module-alsa-card.c    s32le 2ch 192000Hz    RUNNING
)


当方でdeadbeefは、PulseAudio出力で384kフォーマット再生は落ちます。ALSAだと落ちません。

勘違いでなければ、Realtek 892の同社のスペックシート通り、最大192k/24bit、このHD Audioの上限に設定されています(Windows7起動でも同じ)。内部の電源ノイズを拾わないのであれば、私のチープな環境では、これが最高のハイレゾ再生可能環境です。

  • アンプへのS/PDIF出力は古いアンプの仕様で律速されるので、96k/24bitが上限
  • USB-DACのUSB接続は、44.1/24bitが上限。古い製品。
  • HD Audioでマザーボード上のデジアナ変換は、192k/24bitが上限。

一般に、嫌われるオンボードサウンドデバイスですが、ノイズがのらなければ、これでハイレゾスペックは満たしますので、そこにヘッドフォンを繋いで聴くことにします。 USB-DACの交換も当面しないことにしました。


前面ミニジャックではノイズを拾いますのでリアジャック接続です。シールドすればいいのかもしれません。

ここまでの前段階で、ノイズが自分で気づかないレベルの電源に置換しています。だからノートPCの場合ににわかに適用できるかわかりませんし、S/PDIF端子とか同軸デジタル端子とかノートPCにはついていません。テストしようがありません。ThinkPadにはついていないです。 そういうモノなのでしょう。光音声出力が搭載されているマザーボードもすべてではないから、S/PDIFも試すことができるケースも限定的だとは思います。そもそも、ノートPCにどんなサウンドチップが搭載されているかは覚えてないです。音楽聴かないし。笑)


Audioデバイスの認識状況の確認コマンド。A2DPデバイスの認識状況を調べたりするのにも使いますので、覚えておくと便利かもしれません。aplay -l , aplay -Lは、再生デバイスの認識と番号付けが確認できますので、合わせてどうぞ。

追記:pacmd list-sinks | grep sample で表示されていようがいまいが、関係ない気がします。新規の15.10では何もしていませんが、s32LE、floatLEでも使えるので、「何もしなくても適切に設定してくれるのでOK」というのが正解のような気がします。念の為、削除せずに以下は保存しておきます。設定したほうが確実かなと思います。3つの環境でリブート繰り返していると安定しません。


pacmd list-sinks
とか
aplay -L
とか
aplay -l
とか...


サンプルレートがどうなっているか確認。

pacmd list-sinks | grep sample

通常のオディオデバイスであれば、s16leになっていると思う。
ハイレゾ対応品なら、s32leやS24leになれば通常OKです。
当方の今日の設定だと以下のようになる。


pacmd list-sinks | grep sample

    sample spec: s16le 2ch 48000Hz
    sample spec: s32le 2ch 96000Hz


(もう少し詳細に折り返し1行)
pacmd list-sinks | grep  -e available.$ -e index: -e alsa.name -e bluez.name -e device.profile.description -e Hz -e protocol
 (2 sink(s) 有効の場合)
 

    index: 0
    sample spec: s16le 2ch 48000Hz
        alsa.name = "ID aa01 Digital"
        device.profile.description = "デジタルステレオ (HDMI)"
  * index: 7
    sample spec: s32le 2ch 192000Hz
        alsa.name = "ALC892 Analog"
        device.profile.description = "アナログステレオ"
Bluetoothを接続します。
3 sink(s) available.
    index: 0
    sample spec: s16le 2ch 48000Hz
        alsa.name = "ID aa01 Digital"
        device.profile.description = "デジタルステレオ (HDMI)"
  * index: 1
    sample spec: s32le 2ch 192000Hz
        alsa.name = "ALC892 Analog"
        device.profile.description = "アナログステレオ"
    index: 2
    sample spec: s16le 2ch 48000Hz
        bluetooth.protocol = "a2dp"
        bluez.name = "MDR-ZX750BN"


なぜs24leでなくて、s32leに飛んでいるか? 
詳細は別として、これで正しいそうです。(この認識がもし違っていたたらぜひ教えてください)
釈然としない人は、ALSAとPuliseオーディオの開発者チームのドキュメントを参照してください。
私は理解することをあきらめました。^^;
今時点でつないでいるアンプはOptical S/PDIF 96kが上限値なので、当方の場合、この96000Hzが適切な値です。USB-DACではありません。

sudo gedit  /etc/asound.conf  

type plug
slave {
pcm "hw:1,1"
format s32le
rate 96000
}


今日現在、ユーザー配下の~/.asoundrc に全面移行しました。正しさの確信はありませんが意図通りには動いています。
defaults.pcm.rate_converter "samplerate_best"

#pcm.primary {
#    type plug
#    slave {
#    pcm "hw:1,0"
#    format s32le
#    rate 192000
#    }
#}

pcm.!default  {
    type plug
    slave {
        pcm "pcm.rtl892analog"
    }
}
#pcm.!default {
#    type hw
#    card 1
#}
ctl.!default {
    type hw         
    card 1
}
pcm.rtl892analog{
    pcm "hw:1,0"
    format s32le
    rate 192000
}
pcm.spdif96k{
    pcm "hw:1,1"
    format s32le
    rate 96000
}
pcm.bluetootheadset {
        type bluetooth
        device "FA:FA:FA:FA:FA:FA" #MAC SONY MDR
        profile "auto"
}
#pcm.upmix51 {
#    type upmix
#    slave.pcm "surround21"
#    delay 15
#    channels 3
#}



必要なら。
hw番号は個々環境、接続順などで違います。覚えておいたほうがJACKやプレイヤー設定の時便利かもしれません。s24leには設定してもs32leになりますので、s32leで設定しています。

おまけ:pulseaudio をkillして、再起動

sinkでサウンドデバイスが全く確認できなくなったら、

pulseaudio -k
pulseaudio --start  (自動なので特に必要なし)

それでもだめなら、以下も合わせて投入。


sudo alsa force-reload

どうしてもだめなら、結局。

再起動。LTSカーネルでないカーネルを使っている場合にはトラブルが多い気がします。

たとえば、HD Audio Reaktek892 ANALOGに当方の環境でコマンドラインで切り替える場合;2行

参考切り替えスクリプト


#!/bin/bash
#@ デフォルトカード、シンクの切り替え アナログにする場合。
# I'm ~/bin/analogoutput.
#### analog

pulseaudio -k #リセット。自動リスタートするはずなので再起動不要。
###sinks

echo シンクリストを表示。
pactl list short sinks

echo カードを変更。アナログに alsa_output.pci-0000_00_14.2.analog-stereo
pactl set-card-profile 1 output:analog-stereo+input:analog-stereo

echo デフォルトシンクをアナログ
pacmd set-default-sink "alsa_output.pci-0000_00_14.2.analog-stereo"
#pacmd set-default-sink alsa_output.pci-0000_00_14.2.iec958-stereo
#pacmd set-default-sink alsa_output.pci-0000_00_01.1.hdmi-stereo
###sinks
exit
#----------------------------------------------------------------------------
echo ---pactl list short sink-inputs
echo
pactl list short sink-inputs
#pactl list cards
echo
echo ---pactl list short sinks
pactl list short sinks
echo
echo ---"pacmd list-sinks | grep sample"
pacmd list-sinks | grep sample


参考文献


コマンドラインでややこしいことがしたい場合


ALSA etc...