なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

DebianでREAPERを使う準備

参考サイト

下準備

// 途中で出てくる「リアルタイム実行優先度の設定を有効にしますか?」は「いいえ」にしている
$ sudo apt-get install qjackctl pulseaudio-module-jack  

JACKオーディオサーバを導入することで

  • ブラウザやプレーヤとの併用でも音が鳴らなくなるトラブルが無くなる
  • 低レンシになる

らしい。まあ、オーディオサーバという名の通りで、複数のクライアントからの接続に対応できるのだろう。

MateのpanelからQjackCtlの名前で起動できた。今の所、Qtで作られていることしかわからん…
f:id:panzer-jagdironscrap1:20210711193605p:plain

なにもしないままREAPERでwavファイルを再生しようとすると以下のようなエラーメッセージで止まった
f:id:panzer-jagdironscrap1:20210711193621p:plain

どうやらJACKオーディオサーバを起動しておく必要があるらしい。
QjackCtlの「開始」ボタンを押したらまたエラーで止まる。jackが起動できないらしい。

こういうときはマニュアルを読めばいいので、UbuntuStudioTips/Application/qjackctl - Ubuntu Japanese Wikiを読んでいると、以下のような記述がある。

加えて、dummyデバイスに接続することで、サウンドバイスを使わずにJACKサウンドサーバを起動することができます。
レンダリングの際、不必要にマシンパワーを割くことがなくなります。
ドライバの選択は、JACK ControlのSetupウィンドウのプルダウンリスト「Driver」で行います。

f:id:panzer-jagdironscrap1:20210711193719p:plain

上のように、ドライバーとインターフェースをいつも使用している物理デバイスに変えたら動いた。
この状態でqjackctlを起動させ、reaperに適当な音声ファイルをドロップインして再生すると動いた!
f:id:panzer-jagdironscrap1:20210711193758p:plain

Linux Mateでメニューにスクロールが表示されないバグ

github.com

LinuxでMateを使っているのですが、Linuxのメニューって「.desktop」ファイルが増えてくるとメニューにスクロールが必要になる。

でもあれ?表示されない…
f:id:panzer-jagdironscrap1:20210709215345p:plain

上のGitHub issueで言及されている通り
https://github.com/mate-desktop/mate-panel/issues/920#issuecomment-460100099

alt-F1を押すと表示される
f:id:panzer-jagdironscrap1:20210709215348p:plain

この問題はgtk-3-24では修正されているように見えるが…
https://gitlab.gnome.org/GNOME/gtk/-/issues/1651

cronでありがちな罠

cronでありがちな罠

仕事や趣味でcronを使ったときにありがちな罠をまとめてみた

cronの設定方法がよくわからん

  • 一般ユーザーでcronを設定するときはcrontab -eすればいいeはeditのe
  • 有名な罠だがcrontab -rすると設定済みのcronが消えるのでやらないこと

cronの書き方がぱっとわからない

  • /etc/crontabを見るとサンプルがあるので見るとわかりやすい。crontab上で環境変数を設定できる。
    • SHELL:cronが実行されるときに読まれるシェルを指定できる、まあbashから変えることないけど
    • PATH:cronが実行されるときに設定されるPATHが指定できる、PATHだけ設定したいならばPATH=$PATH:/opt/your/desired/pathとか設定すればいいのでは
    • MAILTO:cronが実行されたときに結果が通知されるメールアドレスを指定できる、Linux上のユーザー名を指定できるしpostfixなどが動いていれば外部のメールアドレスなども指定できる。ちなみにカンマ区切りで複数指定できる。
    • 肝心の時刻設定はcrontab.guruなどでcronの記法を試せるサイトがあるので、実際に適当に書いてみて試せばわかりやすい

Crontab.guru - The cron schedule expression editor

$ sudo cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

xenv系(pyenv, rbenv)のパスが通ってないのでcronが実行できない

  • cronの実行時にsource ~/.bashrcしてやればとりあえず動く

cronの結果ログが見れない

  • 例えばcrontabの設定でMAILTOに何も設定していない場合「新しいメールが /var/spool/mail/{ユーザー名} にあります」とかメールが来る
  • そいつをmail -f /var/spool/mail/{ユーザー名}して読めば、中に標準出力が出ており確認できる

mailコマンドの使い方はググってください

cron上で%を文字列に使うとエラーで落ちる

リンク先の解説が詳しいが、「%」は「\%」にしてエスケープしないと動かない
tech.mktime.com