Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#427 Resampling ruins end of audio loop

Quality
open
nobody
Unknown (40)
5
2012-08-09
2012-08-09
Steven Vachon
No

Before encoding, the loop plays back smoothly; after, there seems to be a half-second gap at the end.

The command I'm using is:
lame -q 0 -V 8 -b 32 -B 320 --resample 44.1 -m j music.wav music.mp3

I've tried all sorts of variations of the above. The output file must be 44100hz so that Adobe Flash will accept it for import.

WAV and MP3 files:
http://www.svachon.com/lame-before-after.zip

Discussion

  • Steven Vachon
    Steven Vachon
    2012-08-09

    Actually, it adds the silence to the BEGINNING of the mp3 file, not the end.

     
  • Michael
    Michael
    2012-08-15

    This should be expected. The technical FAQ explains this: http://lame.sourceforge.net/tech-FAQ.txt

     
  • Steven Vachon
    Steven Vachon
    2012-08-16

    Oh, my bad. I just read through the part of the technical FAQ that pertains to my issue, and I'm not really sure what the solution would be. Can ENCDELAY have a value of 0? If so, why doesn't it already to avoid this issue?

     
  • Michael
    Michael
    2012-08-16

    As far as I know, this cannot be avoided. There's a popular page people point to: http://www.compuphase.com/mp3/mp3loops.htm that talks about making loop-able MP3 tracks, but it's quite involved, the program didn't work for me, and it sacrifices audio quality, from my understanding.

    Sorry to do a shameless plug, but I'm actually working on a program that'll let you compile your MP3s into an SWF file and it'll handle take care of this gap for you (SWF files just skip these silent samples... long story). If you're interested, I can let you know when I have a working pre-alpha version (hopefully by the end of this weekend). I'd be happy to have a tester :)

     
  • Steven Vachon
    Steven Vachon
    2012-08-16

    Hmm, well, I just did sound.play(124, 999999) and it skips over the gap every time. Is this basically what your SWF file would do, or does it remove the silence from the MP3 itself?

     
  • Michael
    Michael
    2012-08-16

    It skips the gap (the delay added to the beginning and end). It doesn't remove it. My goal is sample exactness though, so it's a bit more complicated than just play(someTime, 0).

    Anyway, I hate to keep having a full discussion on a bug tracker about this. Send me a message if you want more details, as I don't want to keep spamming people with Flash talk.

     
  • Steven Vachon
    Steven Vachon
    2012-08-16

    sf says I can't send you a message 'cuz you haven't provided an email address.. ?

     
  • Thomas Orgis
    Thomas Orgis
    2012-08-16

    mpg123 should play the loop encoded by LAME just fine (or any program using libmpg123). I spent quite some effort on getting that right (skipping samples at beginning and end; sample-accurate seeking).

    You can actually check using mpg123's --loop parameter.

    (Disclaimer about strange bugs applies;-)