Para pessoas que precisam fazer isso no Windows com um arquivo em lotes:
As 4 regras que precisam ser preenchidas são:
1) O arquivo de lote deve ser colocado no diretório onde o SOX está instalado
2) Os arquivos Mono precisam ter terminações de .L.WAV e .R.WAV
3) Não há espaços em branco no nome do arquivo
4) Coloque todos os seus arquivos / pastas mono em uma nova pasta chamada entrada dentro da pasta de instalação SOX
Depois de executar o arquivo em lote, você obterá uma nova pasta chamada saída com todos os arquivos estéreo e a mesma estrutura de pastas que a entrada pasta
O código é comentado, por isso é fácil seguir cada etapa do processo, sinta-se à vontade para modificar e postar aqui versões melhoradas deste script (A parte da cópia deve ser um movimento, mas não sou muito especialista em código de lote cmd !).
Aqui vamos nós:
cd %~dp0
setlocal enabledelayedexpansion
REM for each file with extension .L.WAV in input folder and its subdirectories do:
for /R %~dp0input %%F in (*.L.WAV) do (
REM get fullpath name and then remove the last 6 characters. ex: MYWAVE.L.WAV -> MYWAVE
set fileName=%%F
set finalName=!filename:~0,-6!
REM set names for each parameter used by sox
set wavL=!finalName!.L.WAV
set wavR=!finalName!.R.WAV
set wavST=!finalName!.ST.WAV
REM call sox for mono to stereo conversion
sox !wavL! !wavR! !wavST! -MS
)
REM creat output folder
mkdir %~dp0output
REM copy files to output folder
echo d | xcopy %~dp0input %~dp0output /S
REM delete ST files from input folder
for /R %~dp0input %%F in (*.ST.WAV) do del %%F
REM delete L files from output folder
for /R %~dp0output %%F in (*.L.WAV) do del %%F
REM delete R files from output folder
for /R %~dp0output %%F in (*.R.WAV) do del %%F