Sox - Automator Folder Action с Shell Script для пакетной нормализации аудиофайлов - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь создать действие папки Automator, которое нормализует (до -3 дБ) любой аудиофайл, помещенный в «папку A», и перемещает его в «папку B».

В терминале выполняется следующеежелаемый результат:

Шаг 1.

cd /Users/ray/Desktop/Folder\ A

Шаг 2.

for file in *.aif; do sox $file --norm=-3 /Users/ray/Desktop/Folder\ B/$(basename $file) -V; done

В основном, как мне преобразовать этот процесс в действие папки?

В Automator я попытался:

Выбор «Папка A» в качестве ввода и ввод кода на шаге 2 в сценарий запуска оболочки.Я получаю следующую ошибку "команда sox не найдена".Я предполагаю, что это указывает на проблему с тем, где установлен sox (что я сделал с помощью HomeBrew).Поиск в Finder показывает папку sox здесь:

/usr/local/Cellar/sox

Я пробовал различные команды, чтобы установить путь к приложению sox.Ничего не помогло.

Возможны другие проблемы.Я не уверен, что установить для «Shell» или «Pass input» или оставить ли текст по умолчанию, который появляется при выборе, например «cat».

Screenshot

1 Ответ

0 голосов
/ 22 декабря 2018

Сохраните «Shell» как «/ bin / bash», но установите «Pass Input» на «как аргументы», затем вставьте

source ~/.profile

for file in "$@"
do
  bname="${file##*/}"
  sox --norm=-3 "$file" "/Users/ray/Desktop/Folder B/$bname"
done

Тогда все должно работать, если у вас есть папка Bна вашем рабочем столе, а sox на вашем $PATH.Если последнее не работает, используйте полный путь к sox, как вы предложили, или поместите /usr/local/Cellar на свой $PATH.
. У меня есть мои настройки среды в .profile, поэтому я просто получаю это.

...