2019年9月22日日曜日

Pulseaudio 出力先の固定

動機
HDMI接続のディスプレイスピーカーだと、
・ディスプレイ側の少電力モード
・PCのスリープや復帰のタイミング
などで、音の出力先が変わってしまい。手動で設定し直さないといけない。

対策
面倒なので、出力先をHDMIに固定する。
めったに使わない外付けスピーカー使用時には、システム「設定」からアナログ出力に手動変更とする。


環境
Debian GNU/Linux 10 (Buster+backports), KDEディスクトップ
サウンドカードはM/Bオンチップのみ
$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH              ←M/Bのサウンドカード
                      HDA Intel PCH at 0xf7140000 irq 138

方法
概要:/etc/pulse/default.pa の最後にHDMI接続を書き込む。

書き込む内容を調べる例
1, HDMIから音が出てる間に index番号(name)とprofileを取得。

index)
$ pacmd list-cards
1 card(s) available.
    index: 0
        name: <alsa_card.pci-0000_00_1f.3> ←"alsa_card.pci-0000_00_1f.3"必要
        driver: <module-alsa-card.c>
        owner module: 6
        properties:
                alsa.card = "0"
                alsa.card_name = "HDA Intel PCH"   ← M/Bのサウンドカード
                alsa.long_card_name = "HDA Intel PCH at 0xf7140000 irq 138"
            ... 略 ...

profile)
$ pacmd list-cards | grep active
active profile: <output:hdmi-stereo>   ←"output:hdmi-stereo"必要

2, 上記の情報を /etc/pulse/default.pa の最後に書き込む
a) set-card-profile 0 output:hdmi-stereo
b) set-card-profile alsa_card.pci-0000_00_1f.3 output:hdmi-stereo+input:analog-stereo
どちらかを書き込む。
("+input:analog-stereo"の部分は任意。使わないなら書かない)

3, load-module module-switch-on-port-available"コメントアウトして、
#load-module module-switch-on-port-available

4, 念の為
~/.config/pulse/以下を一度全部削除して、

5, 再起動。

今の所うまく行ってます・・・素人処方です。

おまけ
・~/.config/pulse/以下の削除後、pulseaudio -k pulseaudio --start では、cookieのみ作成されて、pulseaudio サーバーとして認識される。
・alsa-base.conf (asound.conf) は buster では使われていない?

2019年8月14日水曜日

Debian KDEで AudioCDを開く

目的:
音楽CDから、256kbps以上の mp3を作成したかった。
普通、KDEならAudexを使うのだが、現状 busterには KDE multimedia も Audexもないので、soundKonverter が残っている。
作業:
CDを挿入→アプリから[ファイルマネージャで開く]を選択すると→Dolphin 起動→"Audio CD"グループができて、WAVファイルやCDA,FLAC,MP3ディレクトリができている (これは仮想ファイル)。
  

これらの中から 目的楽曲.mp3を選択して、別ディレクトリにコピペすると初めて作業を開始して mp3ファイルができる。
ところが、ffprobeやexiftoolでビットレート見るとちょっと低い。

疑問:
上記方法でビットーレート設定はどうやる?

答え:
システム設定→マルチメディア→オーディオCD [オーディオ CD/IO スレーブ設定]→MP3エンコーダ で調整。


備考:
以上の働きは KF5 (もしくは KF4): KDE Frameworks という仕組みが関係している。

$ kcmshell5 または kcmshell4 (ヘルプ出力)
sage: kcmshell4 [Qt-options] [KDE-options] [options] module
A tool to start single KDE control modules
...略

$ kcmshell5 -list ← 使えるモジュールのリスト表示
次のモジュールが利用できます:
about-distro               - Information About This System
audiocd                    - オーディオ CD I/O スレーブの設定
autostart                  - 自動的に起動されるアプリケーション
...略

$ kcmshell5 audiocd
"答え"と同じ[オーディオ CD/IO スレーブ設定]ウインドウが表示
実は kcmshell5 --list で表示されたモジュール名を使うということは、KDE システム設定 と同じ。

$ kcmshell5 about-distro
$ kcmshell5 componentchooser
$ kcmshell5 filetypes
など
補足:
[MP3エンコーダ]可変ビットレートの設定 のデフォルト
    XingのVBR タグを書き込む ←これのみデフォルトで青チェック済
   □平均ビットレート:192 kbs ←これをチェックするとその他もチェックできる。
   □最高ビットレー: 320 bps
   □最低値を絶対的な下限にする
   □最低ビットレート:320 bps

* Xing (VBRではビットレートが一様でないのでXingヘッダーを付けて総時間を計算する)
* 固定ビットレート constant bitrate:CBR, 可変ビットレート Variable Bitrate:VBR,
平均ビットレート Averate Bitrate:ABR. VBRの平均をABRと呼ぶこともあり、VBRとABRはほぼ同じと思っていい(?)


2019年8月5日月曜日

ExiftoolでGPSタグを付ける

GPSタグを付ける
Debian GNU/Linux 10 Busterにて

目的 :
カメラの操作忘れで、GPSデータが未記録だった写真(jpg)に、
他の写真のデータを利用して ExifにGPSデータを書き込む。


結論 :
コマンドラインexiftoolを使って、
$ exiftool -tagsfromfile GPS有り.JPG -gps* -gpsmeasuremode= GPS無し.JPG

exiftooは、変更前の画像を `GPS無し.JPG_original' 名で保存する。
参考ファイルと、GPS Time Stampが全く同じで、違和感が残る。

色々 :
・Exiftool
 Debianでは、libimage-exiftool-perl をインストール。
 マニュアル/説明(英語) https://sno.phy.queensu.ca/~phil/exiftool/exiftool_pod.html
 かなり守備範囲の広いプログラム。

・exiftoolのコマンド例。

GPS有り.JPGからGPSというワードを含むタグを探す。
$ exiftool GPS有り.JPG | grep GPS
または
$ exiftool -gps* GPS有り.JPG
GPS Version ID                  : 2.3.0.0
GPS Latitude Ref                : North
GPS Longitude Ref               : East
GPS Altitude Ref                : Above Sea Level
GPS Time Stamp                  : 10:19:54
GPS Satellites                  :
GPS Status                      : Measurement Active
GPS Map Datum                   : WGS-84
GPS Date Stamp                  : 2019:07:31
GPS Altitude                    : 37.5 m Above Sea Level
GPS Date/Time                   : 2019:07:31 10:19:54Z
GPS Latitude                    : 33 deg 11' 18.23" N
GPS Longitude                   : 130 deg 21' 30.01" E
GPS Position                    : 33 deg 11' 18.23" N, 130 deg 21' 30.01" E

$ exiftool GPS無し.JPG | grep GPS
または
$ exiftool -gps* GPS無し.JPG
GPS Version ID                  : 2.3.0.0
GPS Altitude Ref                : Above Sea Level
GPS Satellites                  :
GPS Status                      : Unknown ()
GPS Measure Mode                : Unknown ()

出力は、タグ : データ の形で表示。exiftoolによる書き込みは、
exiftool -タグ="データ" 目的.jpg が基本。

タグ : データ オプションを利用するときの注意
* タグの空白は省く。
* データは""で囲む。エスケープも使う。
* タグ:データ の削除は -タグ= とする (上記結論の -gpsmeasuremode= のところ)。
* タグ GPS Position は、GPS Latitudeと GPS Longitudeの値があれば書き込まなくても自動生成される。無理に指定しても warningで無視される。
* タグ GPS Date/Time も、GPS Date StampとGPS Time Stampの値から自動生成。

・・・ということで、GPS Time Stampを変更しつつ、手書きコマンドの例。
$ exiftool -gpslatituderef="North" -gpslongituderef="East" \
-gpstimestamp="10:19:46" -gpssatellites=" " -gpsstatus="Measurement Active" \
-gpsmapdatum="WGS-84" -gpsdatestamp="2019:07:31" \
-gpsaltitude="37.5 m Above Sea Level" -gpslatitude="33 deg 11\' 18.23\" N" \
-gpslongitude="130 deg 21\' 30.01\" E" -gpsmeasuremode= GPS無し.JPG
    1 image files updated
ちなみに
$ exiftool -w txt IMG.JPG Exif ← 内容をIMG.txtに出力
$ exiftool -htmlDump IMG.JPG > img.html ← htmlに出力。見ても意味わからん
$ exiftool -lang ja -GPS IMG.JPG ← 日本語で表示。北緯 GPS Latitude / 東経 GPS Longitude などの検索が辛い

2019年7月30日火曜日

トンボ

オオシオカラトンボ
ギンヤンマ♂♀
ウチワヤンマ

ウスバキトンボ?



2019年7月25日木曜日

たまにひっかかる、改行DOS

症状:
Debian/LinuxのPCを起動して、最初にコンソールを開くと、何もしてないのにエラー表示。

: command not found
bash: /home/xxxx/.bashrc: 行 6: 予期しないトークン `$'in\r'' 周辺に構文エラーがあります
'ash: /home/xxxx/.bashrc: 行 6: `case $- in
$

原因:
.bashrcを編集した際、Dos/Windows改行で保存してしまった。

対応:
改行\r\nを \r にすればいい。

確認:
・file コマンドで見てみる。
$ file .bashrc
.bashrc: UTF-8 Unicode text, with CRLF line terminators

'CRLF'となってる。通常のUNIX系CR キャリッジ・リターンだけなら、
"with CRLF line terminators"は表示されない。
(LFは ラインフィード)

・catで見てみる
$ cat -e .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.^M$
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)^M$
# for examples^M$
^M$.....略

'^M$' が、Windows/Dosの改行

作業:
dos2unix をinstallして\r\nを\rにする ( unix2dosというコマンドも有る)。
たぶん、sed, awk, perl でも簡単に置換できる。

お手軽に、KDEのエディタ Kate (≒KWrite)から ツール→行末→UNIX→保存 してログアウト、ログイン という対処で済ました。


付録:
立ち上がりは ash? dashと思っていた。
$ ls -l /bin/sh
...略...   /bin/sh -> dash

やっぱり dash?
本来の ashをカスタマイズした dash (debian ash)というのが別にあるらしい。

2019年7月12日金曜日

timidity-daemon に注意

症状
Debian 10 (buster)にupgrade後、音が鳴らない
Audio Volume (plasma-pa)や システム設定→マルチメディアで見ると、Devices: OutPuts が [ダミー出力 / Dummy output]のみで、コントロール不能。

環境
Debian/GNU Linux 10 (Buster) + KDE。
音源はMBの  Intel Corporation 200 Series PCH HD Audio.
HDMIディスプレイスピーカーがメイン。手動切り替えで、外付けアナログスピーカー。

原因
timidity-daemonをインストールしてしまった。
起動時にtimidity-daemonがサウンドデバイスを乗っ取ってた。
timidityとtimidity-daemonは別パッケージdeb。

対応例
 1) 確認 :
$ sudo fuser -v /dev/snd/*
USER                  PID         ACCESS    COMMAND
/dev/snd/controlC0:   timidity    759 F.... timidity
/dev/snd/pcmC0D0p:    timidity    759 F...m timidity
/dev/snd/seq:         timidity    759 F.... timidity
/dev/snd/timer:       timidity    759 f.... timidity
timidityがサウンド関係を乗っ取った状態。
timidityなのかtimidity-daemonなのか、まだわからないが、他のプログラムが接続できないのは自明。

 2) timidityプロセス停止 :
とりあえず止めてみる。
$ sudo systemctl stop timidity     停止
$ sudo systemctl disable timidity  自動起動停止
(systemctlのほか、fuser, kill,や、システムモニタで検索して終了させる等の方法がある。)

システムモニタ KSysGuard

 3) 再確認 :
$ sudo fuser -v /dev/snd/*
USER                  PID         ACCESS     COMMAND
/dev/snd/controlC0:   XXXXX       1436 F.... pulseaudio
/dev/snd/pcmC0D3p:    XXXXX       1436 F...m pulseaudio
XXXXX はUSERname
timidity → pulseaudio になった!

 4) 再々確認 :
さらに、再起動して同じ症状なら、timidity-daemonのインストールを疑う。その前に、
$ apt list timidity* --installed
で確認しておく。timidity-daemonがあったら、
$ sudo apt remove timidity-daemon で、削除。
musescoreやtuxguitarなどのmidi音源なら、素のtimidityで音は出る。


おまけ :
・Debianに alsa-base...パッケージはない。
・KDEでは、Kmixを使わないようになってきている。代わりに plasma-pa パッケージ(タスクバーに出るスピーカ印)を使用。
・Debianではモジュールとしてサウンドドライバ(*_snd_*)が読み込まれる。サウンドドライバ用のパッケージdebは無い。
・alsaとかpulseaudio, jackなどが無くても、直接サウンドモジュールを触わる VLCや Audacityは、上記のような[dummy output]状態でも、設定で[Device]と[出力]を合わせれば音が鳴る。
・・・と思う。

2019年6月19日水曜日

GmailとThunderbird

## 現状
ThunderbirdでGmailを利用するメイン情報は、

- gmailより [Thunderbird を Gmail と同期](https://www.appsupport.jp/gmail/sync-thunderbird/)

- mozillaより [Thunderbird で Gmail を使う](https://support.mozilla.org/ja/kb/thunderbird-and-gmail)

ところが、説明に従っても、

「安全性の低いアクセスの無効化」

「重大なセキュリティー通知 : ログインをブロックしました」

...などの警告を受けてしまう。その対処。

> 以下の例は GNU/Debian Linux stretch 上の Thunderbird 60.7.1 にて


## 対策
### 概要
上記の設定情報であやふやになっている **ログイン** 関係を見直す。具体的には、__Googleアカウントへのアクセス許可__ を得ればエラーや警告はなくなる。


#### ログイン設定
* (Thunderbird gmail) xxx@gmail.com : アカウント設定 → 送信(SMTP)サーバー : SMTPサーバーを編集 → セキュリティと認証

    接続の保護 : SSL/TLS

    認証方式 : OAuth2

    ユーザー名 : (任意)

* (Thunderbird gmail) xxx@gmail.com → サーバー設定

    セキュリティ設定 : SSL/TLS
 
    認証方式 : OAuth2


#### アカウントアクセス許可
以上の設定で、自動的にディフォルトブラウザが開いて、googleへのログインと__アカウントへのアクセス許可__が求められる。

以上。
(↑ 変な表示のままアップ ... Markdownじゃい)