Originally Posted by
Impavidus
The command line with *.wav uses shell globbing to get a list of filenames. The shell (bash) replaces the string *.wav with a list of all filenames in the current directory matching that pattern, alphabetically ordered, which is then passed to sox. And as 2 comes after 1, file_2.wav comes after file_10.wav. You can put all filenames on the command line yourself, in any order you like, but I think the easy solution is to rename the files so that those with lower numbers have a leading 0: file_01.wav ... file_09.wav file_10.wav etc.
Alternatively, use shell string expansion. file_{1..15}.wav will expand to file_1.wav file_2.wav ... file_15.wav.
Thanks for your advice.
Performed following tests
$ ls
Code:
Track12.wav Track3.wav Track6.wav Track9.wav
Track10.wav Track1.wav Track4.wav Track7.wav
Track11.wav Track2.wav Track5.wav Track8.wav
1)
$ sox 'file_{Track1 Track2 Track3 Track4 Track5 Track6 Track7 Track8 Track9 Track10 Track11 Track12}.wav' -t wav - | lame -V 2 - output.mp3
Code:
sox FAIL formats: can't open input file `file_{Track1 Track2 Track3 Track4 Track5 Track6 Track7 Track8 Track9 Track10 Track11 Track12}.wav': No such file or directory
Warning: unsupported audio format
Can't init infile '-'
2)
$ sox file_{Track1 Track2 Track3 Track4 Track5 Track6 Track7 Track8 Track9 Track10 Track11 Track12}.wav -t wav - | lame -V 2 - output.mp3
Code:
sox FAIL formats: can't open input file `Track12}.wav': No such file or directory
Warning: unsupported audio format
Can't init infile '-'
3)
$ sox Track_{1 2 3 4 5 6 7 8 9 10 11 12}.wav -t wav - | lame -V 2 - output.mp3
Code:
sox FAIL formats: can't open input file `12}.wav': No such file or directory
Warning: unsupported audio format
Can't init infile '-'
Still fail
Regards
Bookmarks