Log in

View Full Version : 48kHz AAC works


aaar9800
25th January 2004, 18:27
Many had problems with encoding 48kHz files into 48kHz AAC files, since all of the encodes turned out to be 44.1kHz and with an ~8% slowdown of the audio.

After playing with all of the different combinations of aacenc32.dll and aac.dll I found out that if you use aac.dll and NeroIpp.dll from 60011 and aacenc32.dll from 60019 eveything seemes to work. That way you will get 48kHz 5.1 HE-AAC files.

But to do that you will have to use Besweet 1.5b23 because the newer versions of Besweet always downsamples 48 to 44.1, which kind of defeats the purpose of this post.

I hope that this is not something that everybody knows. I didn't visit the Audio forum for a month already.

KpeX
25th January 2004, 18:33
Newer versions of BeSweet/bsn downsample and encode correctly as they should. Just use bsn 0.21 or later and Besweet 1.5b25 and up and you won't have to put any additional thought into it.

aaar9800
25th January 2004, 18:35
If I use newer Besweets it downsamples for me, which slowdowns the process and gives 44.1.

I like to preserve 48, thats why I am not using bsn .21

again, my point was that I got 48 to work, and if it works I don't need 44.1

KpeX
25th January 2004, 18:41
The point of downsampling correctly is so the Nero encoder has the correct sampling rate that it has been tuned for at specific bitrates/qualities.

bond
25th January 2004, 20:28
i would always use the dlls from the latest nero package to avoid any possible problems with mixing different dlls

i also experienced funny things with 48khz,
if i encode with 48khz input in nero burning rom it keeps it with some settings, but if i encoded in besweet, before it automatically downsampled to 44.1, with the same settings it wasnt able to output 48khz

yeah its funny but with 44.1 there were no problems like that

aaar9800
25th January 2004, 21:06
With some more tries I found out that you can use any aacenc32.dll, including the latest and still get 48kHz, but with 60011's aac and NeroIPP.

BTW, I don't really care if nero was tuned for 44.1 cause when i encode 44.1 I can hear that the audio was downsampled and isn't quite as good, however when it is kept 48 it sounds much better for me.

Anyway, this was to show that AAC can be made 48kHz, downsampling is not necessary and it might sound better for some when sound's frequency is preserved...

KpeX
25th January 2004, 21:18
Originally posted by aaar9800
BTW, I don't really care if nero was tuned for 44.1 cause when i encode 44.1 I can hear that the audio was downsampled and isn't quite as good, however when it is kept 48 it sounds much better for me.

Anyway, this was to show that AAC can be made 48kHz, downsampling is not necessary and it might sound better for some when sound's frequency is preserved... Well for those of us with normal ears :rolleyes: that use high quality resamplers the best bet is still to use the latest bsn.dll and let BSN resample automagically.

aaar9800
25th January 2004, 21:53
automagically?

I didn't want to say that my ears are superior, it's just better for me, maybe not that much, but it's worth it. And on top of that 48 is a much better looking number: 3*2^4 and I like numbers that are powers of 2 :)

All of this is IMHO

KpeX
25th January 2004, 22:08
My point was that using a high quality resampler like SSRC results in transparent loss for the vast majority of people's ears, and letting BSN pick the correct sample rate is much easier and always results in correct files.

P.S. 2^15.428491035332245273532055381338=44100 :D

aaar9800
26th January 2004, 02:54
Yes new bsn.dll is much easier to use, but I think it is better to spend some time picking combinations of dll's once and then save time by not doing any resampling.

Out of curiocity - is it really possible to get non-working files with the way I am encoding? I didn't get any thus far and don't think I will.

Spinor
26th January 2004, 04:58
It IS possible to encode with any frequency you want and any quality you want with newer DLLs. I found the 48->44.1 bug only occured when i let bsn open the Nero configuration window.

The best way to solve this though is to put the settings directly in the registry ("HKEY_CURRENT_USER\Software\Smeshka\Nencode\Nero Digital Audio (HE-AAC)") where the Nero codec gets its settings. ("Smeshka" and "Nencode" are defined in bsn in nencode.hpp as Vendor and Product)
The codec doesn't verify these settings and even accepts 128kbps HE encoding (or any combination which wasn't possible with the config window). It would be nice to have a bsn which accepts quality arguments and writes these to the appropriate location in the registry, so all settings can be put in the GUI as well.

I only tested this on the Nero 6300 DLLs. Can anyone verify this on another version?

PS I found this out 5 days ago, but had to wait before i could post here :(

Tuning
26th January 2004, 06:06
If you really don't want to use enriched features of BeSweet/Bsn, then use foobar2k and Nero encoder plugins(foo_nero.dll). Using it, every possible sampling rate that is supported by nero encoders allowed and it has some nice plugins to use your CPUs full power for faster encoding. Btw, DTS cannot be transcoded right now.
The best way to solve this though is to put the settings directly in the registry ("HKEY_CURRENT_USER\Software\Smeshka\Nencode\Nero Digital Audio (HE-AAC)") where the Nero codec gets its settings. ("Smeshka" and "Nencode" are defined in bsn in nencode.hpp as Vendor and Product)
I don't think it works because Nencode is only a interfacing program (AFAIK) to use nero dlls. But if it is possible to control nero dlls through registry, then this method will be feasible.

Edit:
Actual Nero Audio registry is here:
HKEY_CURRENT_USER -> Software -> Ahead -> Nero -Burning Rom -> Nero Digital Audio(HE-AAC)

There we can have all the required parameters. So if possible to control the registry settings by bsn, we may encode @ 48khz. Again Dg has to find out if it is possible.

Spinor
26th January 2004, 15:32
I have tried this myself and it works. I did some fast work on the bsn v0.20 source and created a simple settings dialog in it. I removed the Nero configuration option and put the settings of my own dialog in the registry at that location. All works fine, though i think it would be better to put these settings in the command line.

Nero itself stores its codec settings in another location. In nencode.hpp (bsn source) there are 2 callback functions defined (GetVendor and GetProduct) which return "Smeshka" and "Nencode" and these functions are used by the codec to get the storage location.

DSPguru
3rd February 2004, 03:44
i would suggest that you download bsn.dll v0.22 source-code from my webpage and implement your things.
v0.22 now accepts argc/argv params, so you can write a commandline parser that implements an enhanced -bsn( ) section.. :)

i hope you'll take the challange..

Cheers,
Dg.

weidai
3rd February 2004, 05:02
Originally posted by DSPguru
i would suggest that you download bsn.dll v0.22 source-code from my webpage and implement your things.

Where can I find atomparser.h and AudioBase.h, which are needed to compile bsn.dll?

Mug Funky
6th February 2004, 14:35
@ aaar9800:

if you really can hear a difference then perhaps it's because your sound card is upsampling everything to 48k with it's awful hardware resampling. (creative cards pretty much all do this).

if this is the case, then either find a player that will use SSRC to take it back up to 48k in a _nice_ way, or continue encoding in 48k. i don't know the specifics of nero AAC well enough to tell you if encoding at 48k represents any kind of tuning difficulty (48k mp3 is hideous due to the scalefactor band 21 problem - files will either be bloated or have crap quality in CBR modes. AAC suffers no such limitation)