Sox - 带有 Shell 脚本的 Automator 文件夹操作,用于批量规范化音频文件
Sox - Automator Folder Action with Shell Script to batch normalise audio files
我正在尝试创建一个 Automator 文件夹操作,将放置在 "Folder A" 中的任何音频文件标准化(至 -3dB)并将其移动到 "Folder 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 中尝试过:
选择 "Folder A" 作为输入并将步骤 2 中的代码输入到 运行 Shell 脚本中。我收到以下错误 "sox command not found"。我假设这表明 sox 的安装位置存在问题(我使用 HomeBrew 做到了这一点)。在 Finder 中搜索会在此处显示 sox 文件夹:
/usr/local/Cellar/sox
我尝试了各种命令来设置 sox 应用程序的路径。没有任何效果。
可能还有其他问题。我不确定要将 "Shell" 或 "Pass input" 设置为什么,或者是否保留进行选择时出现的默认文本,例如"cat".
Screenshot
将 'Shell' 保留为“/bin/bash”,但将 'Pass Input' 设置为 'as arguments',然后粘贴
source ~/.profile
for file in "$@"
do
bname="${file##*/}"
sox --norm=-3 "$file" "/Users/ray/Desktop/Folder B/$bname"
done
假设您的桌面上有一个 'Folder B',并且您的 $PATH
上有 sox,那么事情应该会起作用。如果后者不成立,请按照您的建议使用 sox 的完整路径,或将 /usr/local/Cellar
放在 $PATH
.
上
我在 .profile
中有我的环境设置资料,所以我只是来源。
我正在尝试创建一个 Automator 文件夹操作,将放置在 "Folder A" 中的任何音频文件标准化(至 -3dB)并将其移动到 "Folder 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 中尝试过:
选择 "Folder A" 作为输入并将步骤 2 中的代码输入到 运行 Shell 脚本中。我收到以下错误 "sox command not found"。我假设这表明 sox 的安装位置存在问题(我使用 HomeBrew 做到了这一点)。在 Finder 中搜索会在此处显示 sox 文件夹:
/usr/local/Cellar/sox
我尝试了各种命令来设置 sox 应用程序的路径。没有任何效果。
可能还有其他问题。我不确定要将 "Shell" 或 "Pass input" 设置为什么,或者是否保留进行选择时出现的默认文本,例如"cat".
Screenshot
将 'Shell' 保留为“/bin/bash”,但将 'Pass Input' 设置为 'as arguments',然后粘贴
source ~/.profile
for file in "$@"
do
bname="${file##*/}"
sox --norm=-3 "$file" "/Users/ray/Desktop/Folder B/$bname"
done
假设您的桌面上有一个 'Folder B',并且您的 $PATH
上有 sox,那么事情应该会起作用。如果后者不成立,请按照您的建议使用 sox 的完整路径,或将 /usr/local/Cellar
放在 $PATH
.
上
我在 .profile
中有我的环境设置资料,所以我只是来源。