dd if=$file ibs=1 count=$(($(stat --printf='%s' $file)-2)) of=$file.new of course if you run this on one of the files that doesn't have the extra 2 bytes you're gonna lose something you didn't want to On 11/1/07, Alex Brims <alex.brims@gmail.com> wrote:> Ok, we actually worked this out - there were 2 extra bytes doing nothing at > the end of the files. Opening the file in SoundForge and saving it (without > changing it) took off the extra bytes and allowed the file to convert to > FLAC. > > Thanks to everyone who emailed me suggestions. > > Is there a decent program for linux that could automatically take these > bytes off, without running the risk of removing good data? Or is there a > way to get the flac converter to ignore this error and create the file? I'm > running flac 1.2.1 on Red Hat Enterprise Linux ES release 4.
That's a handy command, but I'm certain it won't work 100% for the file in question. The chunks in that bad file claim the extra two bytes are part of the file, so a wav format parser could come up short. You have to edit existing data in the file in two places before shortening the file - truncating the file is not enough by itself. The real problem is that the file was stereo, but had an odd number of samples. When FLAC complains about a "partial sample" it means there is a left channel sample without a right channel sample to go with it - a better term might be "partial frame" if you define a sample frame as a group of samples for every channel. The fixed file created by SoundForge either dropped the last sample from the left channel, or added a zero sample to complete the right channel. The long explanation that I gave yesterday, although accurate in itself, did not precisely apply to the bad file in question. Brian Willoughby Sound Consulting On Nov 2, 2007, at 12:39, Dat Head wrote: dd if=$file ibs=1 count=$(($(stat --printf='%s' $file)-2)) of=$file.new of course if you run this on one of the files that doesn't have the extra 2 bytes you're gonna lose something you didn't want to On 11/1/07, Alex Brims <alex.brims@gmail.com> wrote:> Ok, we actually worked this out - there were 2 extra bytes doing > nothing at > the end of the files. Opening the file in SoundForge and saving it > (without > changing it) took off the extra bytes and allowed the file to > convert to > FLAC. > > Thanks to everyone who emailed me suggestions. > > Is there a decent program for linux that could automatically take > these > bytes off, without running the risk of removing good data? Or is > there a > way to get the flac converter to ignore this error and create the > file? I'm > running flac 1.2.1 on Red Hat Enterprise Linux ES release 4.
that's why i asked the original poster if the files were odd size, i had that issue before with a 24 bit mono file and wrote this script to fix it: #!/bin/sh # # sfoddfix - Sound File ODD size FIXer # # NOTE: flac v1.1.2 pukes on files that have an odd byte count, this pads them files=${*:-*.wav} for file in $files do size=$(stat --printf='%s' $file) if [ $(($size%2)) -ne 0 ]; then echo "size=$size" echo "echo -e \"\\0377\\c\" >> $file" echo -e "\0377\c" >> $file fi done On 11/2/07, Brian Willoughby <brianw@sounds.wa.com> wrote:> That's a handy command, but I'm certain it won't work 100% for the > file in question. The chunks in that bad file claim the extra two > bytes are part of the file, so a wav format parser could come up > short. You have to edit existing data in the file in two places > before shortening the file - truncating the file is not enough by > itself. > > The real problem is that the file was stereo, but had an odd number > of samples. When FLAC complains about a "partial sample" it means > there is a left channel sample without a right channel sample to go > with it - a better term might be "partial frame" if you define a > sample frame as a group of samples for every channel. The fixed file > created by SoundForge either dropped the last sample from the left > channel, or added a zero sample to complete the right channel. > > The long explanation that I gave yesterday, although accurate in > itself, did not precisely apply to the bad file in question. > > Brian Willoughby > Sound Consulting > > > On Nov 2, 2007, at 12:39, Dat Head wrote: > > dd if=$file ibs=1 count=$(($(stat --printf='%s' $file)-2)) of=$file.new > > of course if you run this on one of the files that doesn't have the > extra 2 bytes > you're gonna lose something you didn't want to > > On 11/1/07, Alex Brims <alex.brims@gmail.com> wrote: > > Ok, we actually worked this out - there were 2 extra bytes doing > > nothing at > > the end of the files. Opening the file in SoundForge and saving it > > (without > > changing it) took off the extra bytes and allowed the file to > > convert to > > FLAC. > > > > Thanks to everyone who emailed me suggestions. > > > > Is there a decent program for linux that could automatically take > > these > > bytes off, without running the risk of removing good data? Or is > > there a > > way to get the flac converter to ignore this error and create the > > file? I'm > > running flac 1.2.1 on Red Hat Enterprise Linux ES release 4.