Hello everyone, i'm very new here, this is my first post on chipmusic.org, unfortunately it's cause i'm having tech issues sad

I've come across something infuriating in the music i'm making. Basically everything i record sounds fine until i convert it to MP3. Then something weird happens. Low frequency artifacts come out of nowhere. I'm linking to a rapidshare download of a zip file containing the original .wav recording and the mp3 conversion (128kbps CBR)

https://rapidshare.com/files/1418395871/wavmp3.zip

The recording is of a DMG prosound mod, then running it through a kaosspadmini with a reverb effect, then just recording straight into Reaper via line in on sound card.

My guess is that either the stereo ping-pong like effect is setting it off, or the low frequencies aren't agreeing with the conversion. Either way it's infuriating! Any help would be invaluable as i'm almost completely stuck on what to do.

(also the mp3 i attached is encoded twice - mp3 to mp3, which has highlighted the problem even moreso, maybe try converting the wav to 128kbps mp3 yourselves and see if you get the artifacts as well?)

If you eq out the mid you can hear a fuzz like in the compressed version. I converted it to mp3 with audacity and it was still noticeable.

Very interesting case. I've downloaded the mp3 and seen you encoded with LAME 3.98, which is fairly recent. I use the same encoder, so I test-encoded the wav on my box with the same bitrate, same result. I then tried OGG encoding at nominal 128kbps, VBR 96-320 on LAME, 320 CBR on LAME.

My results are that you can't really avoid the effect unless you increase the bitrate. OGG manages to do slightly better, but not much. I'd recommend VBR encoding with 320 tops for best results.

I suspect the FFT algorithm has trouble with the square, as the spectrum of squares is very broad. I also suspect that the effect will decrease once you stack other voices on top, effectively changing the waveform to something less square-y.

Btw, I made a mono mixdown and converted that, same difference. Problem is definitely with the waveform/algorithm, not the stereo separation.

You might want to try to roll off the bass frequencies around 40-60hz (?) I've not heard the wav yet so i don't know (waiting "in line"), but you may get awkward results if there are some really low bass frequencies.

also 128 sucks, I think 192 is the bare minimum honestly.

After listening this is weird. I've tried roll off which of course did nothing, tried delaying left about 20ms which did nothing, getting rid of a channel fixed the issue, so we know its something with stereo imaging & the mp3 algorithm I would guess. Variable bit rate also solved the issue.

Last edited by trash80 (May 26, 2011 8:26 pm)

we know its something with stereo imaging & the mp3 algorithm I would guess

does joint stereo/not-joint stereo make a difference smile

slato wrote:

(128kbps CBR)

2002 called and asked you to catch up

You can get more out of LAME using VBR instead. You could probably aim for a lower mean bit rate and still get a lot better sound.

ant1 wrote:

we know its something with stereo imaging & the mp3 algorithm I would guess

does joint stereo/not-joint stereo make a difference smile

nope. which makes me think that feature isnt working in my app using lame

I don't think so. I tried different channel setting (joint/split/stereo/mono) and the error still occurs. The OGG algorithm had the same problem. What's your LAME version, trash80?

Thanks everyone for looking into this for me. I've heard this effect happen in a few of my recordings. I'm going to continue experimenting to try and narrow down the cause but i'm thinking it has something to do with those particular frequencies. Stereo imaging isn't a problem as i made the same recording without the effect and in mono and i'm still getting the 'aliasing' effect.

The reason why this is a problem for me is that whenever i upload to soundcloud or bandcamp, playing the sound back has this aliasing effect in it sad

What's the sample rate? I had this issue with certain songs with LAME. Anything at 44.1khz would sound fine but songs at 48khz would manifest the exact issues you currently have.

jefftheworld wrote:

What's the sample rate? I had this issue with certain songs with LAME. Anything at 44.1khz would sound fine but songs at 48khz would manifest the exact issues you currently have.

i've tried 44.1khz PCM wav and 48khz PCM wav recordings, then rendering them to 128kbps CBR and the problem is identical in both D:

I got one that sounds fine. Gimme a sec to upload.

EDIT:

http://www.filedropper.com/jeffmp3

I just set your wav file to 48khz before exporting.

Last edited by jefftheworld (May 27, 2011 1:57 am)

jefftheworld wrote:

I got one that sounds fine. Gimme a sec to upload.

EDIT:

http://www.filedropper.com/jeffmp3

I just set your wav file to 48khz before exporting.

thankyou but my problem is with 128kbps MP3 as that's the standard for streaming online on sites like bandcamp. It'd be great if they could just stream 320kbps like your file as that'd help solve this problem but unfortunately i'm still stuck sad

Interestingly, i've tried every other pitch of the note within the octave and i still get a crappy transcode. I've also tried changing the envelope tail of the sound and i'm still getting bad transcodes. So at this point i'm guessing it's the actual waveform the gameboy is making that's causing transcoding problems. Gonna try out a few more things to try and narrow it down.

I'll try to encode with Fraunhofer later. Maybe a different algorithm may help.

Tested some encoders @ 128 kbps CBR 44kHz

The raw wave, perfect square:

LAME 3.98, surprisingly the worst of the bunch:


Fraunhofer FastEncc 1.02, not much better. I think iTunes uses this:


BladeEnc 0.94.2 was the best at this bitrate. Also surprising, considering it's bad rep and age:


As you can hear, the effect appears mostly with low to mid frequencies. Maybe I'll test a little with VBR setting later, just out of curiosity.

Didn't test XING because I couldn't find a stand-alone encoder and didn't want to bother to install some crap.