Re: convert raw file to wav file

Jeremy Nicoll - ml sox users <[email protected]> Sat, 30 Dec 2023 02:27:23 +0000
Newsgroups gmane.comp.audio.sox
Message-ID <[email protected]>
On 2023-12-29 09:09, markus.blaschke--- via Sox-users wrote:

> an I know from the Internet page of the Bat cording systeme that the
> 
> RAW files have no header
> 
> samplerate 500 kHz
> little endien format
> PCM 16-bits
> 
> other WAV files from an other Bat-cording system have
> 
> Channels       : 1
> Sample Rate    : 312500
> Precision      : 16-bit
> Sample Encoding: 16-bit Signed Integer PCM
> 
> so i tried a batchfile to convert
> 
> @echo
> cd C:\temp\sox-14-4-2
> for %%i in (C:\temp\*.raw); do (sox.exe -r 500k -b 16 -L -c 1 %%i
> -r 312500 -b 16 -L -c 1 .\converted\%%i.wav)
> pause
> 
> but i get this back:
> 
> sox.exe FAIL formats: bad input format for file
> `C:\temp\20230523-N091_B0220-000014.raw': sampling rate was not
> specified
> 
> I thought the "-r 500k" is the information for the sampling rate.


I thought so too...


I've not used FOR in batch files, but it looks wrong to me.  For sox
to find the input file it needs the first "%%i" to be the whole path
and file name of each of the input files.

But if that is so, surely the "%%i" in your ".\converted\%%i.wav" is
also a whole path?  That can't be right.  Surely there you only want
a file's basic name, which looks to me as if it should be "%%~ni" -
according to what "help for" tells me.


If you replace your FOR with

for %%i in (C:\temp\*.raw); do (echo sox.exe -r 500k -b 16 -L -c 1 %%i
  -r 312500 -b 16 -L -c 1 .\converted\%%i.wav)

- note the "echo" - you should see what the issued commands look
like.



If I were you I'd not use FOR until you can make a single command
for a single file work properly.



If the problem isn't with FOR, another possibility is that you need
to tell sox how the input file is encoded.  That's the

   -e ENCODING, --encoding ENCODING

parameter.


Also, (I don't know), perhaps trying  -V3  (to get verbose output)
might give a clue.

-- 
Jeremy Nicoll - my opinions are my own