« 2025年12月 | トップページ

2026年1月

2026年1月10日 (土)

macOS Tahoeでスキャナーを使う

新たに購入したMac mini 2024にはそれまでのメインマシンであるMacBook Pro 15" (2017)の環境を移行した。Mac mini 2024の初回起動時に移行元を尋ねられるので、MBP15を指定しようと思っていたら、移行元リストにいつまで経っても出てこない。Mac miniは有線でLAN接続、MBP15は無線LAN接続。こんなこともあろうかと直前に取っておいたMBP15のTimeMachineのバックアップディスクを接続し、これを移行元とした。ほぼ以前の環境のまま使い始めることができた。

そのせいだろうと思うが、環境移行後にインストールしたExcelが起動しないなどのトラブルがあったが、今回はスキャナーが使えないというトラッブル。

10年以上使っているBrother DCP-J957Nというスキャナー付きのプリンターをLANに繋いである。イメージキャプチャを立ち上げるとスキャナーに接続を試みるものの失敗して「Failed to open a connection to the device(-21345)」と表示される。

システム環境設定→プライバシーとセキュリティー→ローカルネットワークと開き、Brother Scannerのスイッチをオンにする。これでスキャナーを使えるようになった。

MBP15のmacOS 13 Venturaにはローカルネットワークという項目はなかったので、その後追加されたろだろう。Mac mini使用開始時に自分はスキャナーは使わなかったので、たぶん妻が使おうとしてセキュリティの確認が表示されて対応できなかったのだろう。

| | コメント (0)

2026年1月 1日 (木)

ファイルをmp3に変換するフォルダアクションのスクリプト

シェルスクリプトをいじるのはほぼ初めてなので、今後のために気づいたことをメモしておく。多分忘れるから。

シェルスクリプトからlameコマンドを呼び出すとき、ターミナルにタイピング入力する感覚で必要なオプションを書き並べていけばいいと思っていたら、Unixのシェルはすごく賢くてそんな単純なものではなかった。

Macを使っている気安さから(ファイルやフォルダが内部的なID番号で識別されていた時代が懐かしい=Mac OS 9以前)、ファイル名に空白文字が入ることがしょっちゅうある。今回lameに渡したいファイル名にも空白文字が入ることがある。Windowsのコマンドプロンプトの感覚で、空白文字は引数のセパレータだからファイルパスをダブルクォーテーションで囲わないといけないかな、と思って自分でダブルクオーテーションで囲ったパスの文字列を含んだlameを呼び出すコマンド行を色々作ってみるが全然動かない。どうやら、パスを変数に入れておいて変数をダブルクォーテーションで囲って与えてやれば、正しく動くらしい。

いつも使っているポータブルオーディオプレーヤーが安物なので、サンプリング周波数が44.1 kHz以外ではピーとかギャーとかいうノイズが混入する。ところが、最近使っているFMチューナーは48 kHzで出力してくる(他にはその倍数で)。そこで、lameのリサンプルオプションでサンプリング周波数の変換を行っている。ポータブルオーディオプレーヤー用には別途定位改善のための処理も行っている。このとき、AIFFで保存した元ファイルを処理後に原則的にWAVファイルで保存しているが、たまに間違ってAIFFで保存してしまうことがある。AIFFで保存するときはたいてい" HPL"という識別用の文字列を付加する。つまりポータブルオーディオプレーヤー用にリサンプルが必要なファイルは、ファイル名の末尾が" HPL"か拡張子が"WAV"ということになる。
そこで、ファイル名の末尾が"HPL"か"WAV"の場合はリサンプルオプションを設定することにした。具体的には"--resample  44.1"なのだが、これをひとつの変数にいれておくと動作せず、"--resample"と"44.1"を別々の引数に入れて渡す必要があった。

Automatorでフォルダーアクションに設定したシェルスクリプトを実行すると、どういうエラーなのかさっぱりわからないので、確認用のシェルスクリプトをターミナルで実行していたのだけど、echoで処理した文字列を表示させるだけだと、今回メモしたような内容は見た目は問題ないため確認できない。

結局作ったのは以下のスクリプト。面倒なので出力フォルダは固定で直打ち (^_^;)

for f in "${@}"
do
qo="-V4"
ffn="${f##*/}"
extstr="${ffn##*.}"
bfn="${ffn%.*}"
hpl="${bfn: -3}"
rso=
rsf=
addhpl=
if [ "${hpl}" = "HPL" ]; then
rso="--resample"
rsf="44.1"
elif [[ "${extstr}" = "WAV" || "${extstr}" = "wav" ]]; then
rso="--resample"
rsf="44.1"
addhpl=" HPL"
fi
ofn="出力ディレクトリのフルパス/${bfn}${addhpl}.mp3"
コマンドのインストールディレクトリ/lame "${qo}" "${rso}" "${rsf}" "${f}" "${ofn}"
done

続きを読む "ファイルをmp3に変換するフォルダアクションのスクリプト"

| | コメント (0)

« 2025年12月 | トップページ