Log in

View Full Version : Aften 0.0.8 is out


Pages : 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23

wisodev
4th March 2007, 17:27
@wisodev: could you compile the last svn revision please ? I would like to compare something with my build...

Thank you.

Yes, revision 449 uploaded: http://win32builds.sourceforge.net/aften/index.html

@wisodev: and can you explain, please, the differences between all the aften.exe options?

Quote from my binaries package readme.txt:
Binaries description (using ICL 9.1 compiler):

Win32 Builds

.\exe_pgo\aften.exe - x86 ICL PGO Build
.\exe_pgo_mmx\aften.exe - x86 ICL PGO MMX Build
.\exe_pgo_mmx_MT\aften.exe - x86 ICL PGO MMX Build with Parallelization
.\exe_pgo_sse\aften.exe - x86 ICL PGO SSE Build
.\exe_pgo_sse_MT\aften.exe - x86 ICL PGO SSE Build with Parallelization
.\exe_pgo_sse2\aften.exe - x86 ICL PGO SSE2 Build
.\exe_pgo_sse2_MT\aften.exe - x86 ICL PGO SSE2 Build with Parallelization
.\exe_pgo_sse3\aften.exe - x86 ICL PGO SSE3 Build
.\exe_pgo_sse3_MT\aften.exe - x86 ICL PGO SSE3 Build with Parallelization

Win64 Builds

.\exe_pgo_x64\aften.exe - AMD64 ICL PGO SSE3 Build
.\exe_pgo_x64_MT\aften.exe - AMD64 ICL PGO SSE3 Build with Parallelization

Glossary:

PGO - Profile-Guided Optimizations by Intel C++ Compiler (http://www.intel.com/)
IPO - Interprocedural Optimization by Intel C++ Compiler (http://www.intel.com/)
MMX - Assembly Opimizations for MMX (http://en.wikipedia.org/wiki/MMX)
SSE - Assembly Opimizations for SSE (http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions)
SSE2 - Assembly Opimizations for SSE2 (http://en.wikipedia.org/wiki/SSE2)
SSE3 - Assembly Opimizations for SSE2 (http://en.wikipedia.org/wiki/SSE3)
x86 - Binaries for 32-bit microprocessor architecture (http://en.wikipedia.org/wiki/X86), and
used under Miscorsoft Windows 32 bit operating systems.
AMD64 - Binaries for 64-bit microprocessor architecture (http://en.wikipedia.org/wiki/AMD64),
used under Miscorsoft Windows 64 bit operating systems.

Find more about Intel C++ Compiler: http://www.intel.com/cd/software/products/asmo-na/eng/compilers/cwin/279578.htm

Notes:

Win32 builds will run under Win64 operating systems but Win64 will not run under Win32 OS's.
MMX, SSE, SSE2 and SSE3 builds require compatible CPU's. Use http://www.cpuid.com/cpuz.php
program to check if your hardware is compatible with specific build.

SSE3 builds include SSE3, SSE2, SSE and MMX optimizations.
SSE2 builds include SSE2, SSE and MMX optimizations.
SSE builds include SSE, MMX optimizations.

jruggle
4th March 2007, 18:08
@wisodev: and can you explain, please, the differences between all the aften.exe options?

I'll try to help a little here. I'm assuming you're talking about the different binaries at different revision points? If so:
The blog entry below gives a fairly detailed overview of changes between 0.06 and around rev 390 or so.
http://aftenblog.blogspot.com/2007/02/recent-changes.html

Since then, notable changes as documented in the Changelog are:
- added SSE version of window function
- added MMX and SSE2 versions of some exponent related functions
- removed old build system
- frame-independent variable bandwidth
- minimum and maximum bandwidth settings for variable bandwidth mode

If this is totally not what you were asking...then I'm sorry for taking up space. :)

edit: sorry...wiso got his reply in while I was writing mine. his reply probably more what you were looking for...

Chumbo
4th March 2007, 21:32
wisodev, thank you for the updated source. I wanted to help out the BeHappy people and do a quick recompile with the input/output vars exchanged positions, but I get errors in the build per this post (http://forum.doom9.org/showthread.php?p=965810#post965810). Any words of wisdom? Many thanks.

wisodev
4th March 2007, 23:26
wisodev, thank you for the updated source. I wanted to help out the BeHappy people and do a quick recompile with the input/output vars exchanged positions, but I get errors in the build per this post (http://forum.doom9.org/showthread.php?p=965810#post965810). Any words of wisdom? Many thanks.

BUILDING AFTEN

1. Get the latest sources from my website: http://win32builds.sourceforge.net/aften/index.html. Currently the latest are at revision 449 (http://prdownloads.sourceforge.net/win32builds/aften-svn-r449-src.rar?download).

2. To compile Aften using my build system you need the following software: Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en) (latest version) or Visual Studio 2005 (http://msdn2.microsoft.com/en-us/vstudio/default.aspx) installed, Intel C++ Compiler 9.1 (http://www.intel.com/cd/software/products/asmo-na/eng/compilers/cwin/279578.htm) and Yasm (http://www.tortall.net/projects/yasm/) compiler.

3. Get wav file (http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav) used for PGO and save it somewhere on local disk.

4. Open batch script file windows\feedback.cmd in text editor and update it using instructions placed below.

Change this line:
set WAVFILES=I:\DOCS\WISO\AUDIO-BUILDS\AFTEN\TEST-WAV
where: I:\DOCS\WISO\AUDIO-BUILDS\AFTEN\TEST-WAV is path to directory containing wav file!

5. Open batch script file windows\build_intel.cmd in text editor and update it using instructions placed below.

Change this line:
@call "C:\Program Files\Intel\Compiler\C++\9.1\IA32\Bin\ICLVars.bat"
where: C:\Program Files\Intel\Compiler\C++\9.1\IA32\Bin\ICLVars.bat is full path to batch script witch is setting environment variables for Intel C++ Compiler.

Chnage this line:
set cmd_yasm="I:\DOCS\WISO\DEV\YASM\0.5.0\yasm-0.5.0-win32.exe"
where: I:\DOCS\WISO\DEV\YASM\0.5.0\yasm-0.5.0-win32.exe is full path to Yasm compiler.

6. Now run windows\build_win32.cmd batch script file to build all Win32 binaries. All the aften.exe files are placed in output sub-directories.

GUIDE NOTES

1. If you want to build only one binary, then execute command like this being in directory where builds script are placed:
@call build_intel.cmd 9_1 build_exe_pgo
You can find more available targets in windows\build_win32.cmd batch script file.

2. For Win64 builds the procedure is almost the same, but you naeed 64 bit OS and you use different batch script file windows\build_win64.cmd. I can provide guide if you need.

Chumbo
5th March 2007, 00:32
Thank you for the detailed response wiso. Much appreciated. :)

mx101
7th March 2007, 16:58
hi...

there is tutorials for aften?

what i need for aften works?

i download aften.06 and gui but not work somebody can help me with pakage im newbie sorry?

what i need for aften?


thanks and sorry:confused:

Mug Funky
8th March 2007, 00:40
to make aften work, you need:

- aften.exe
- a wav file
- a command line in the correct syntax.

saying "it wont wrok" isn't going to help us determine what's going wrong. is it giving you an error message? if so, what?

LigH
12th March 2007, 09:02
Ensure that you downloaded an executable / binary -- not the source code (assuming you don't want to compile it yourself)!

Apart from that: Details, details, details! What do you have? What did you do? How does it fail?

jordisound
15th March 2007, 10:28
Hi. I have a question about encoding ac3 with Aften.
Can aften encode 24 or 32bits 48000hz ac3 if the source is 24 or 32bits?

LigH
15th March 2007, 10:57
AC3 contains no integer samples, but floating point frequency parameters. Therefore, the resolution of the input does not really matter regarding the compression (only the available quality, the possible dynamic range).

And as far as I remember, Aften does not support any sample resolution except 16 bit at the moment...

tebasuna51
15th March 2007, 12:07
Hi. I have a question about encoding ac3 with Aften.
Can aften encode 24 or 32bits 48000hz ac3 if the source is 24 or 32bits?

Aften accept 32/44.1/48 KHz, 8/16/24/32 bit int and 32 bit float (at least) wav sources.

All formats are converted to 32 float internally before encode, but the quality is defined by the bitrate and not exist different samples sizes like in wav.

LigH
15th March 2007, 16:43
Thank you for the correction.

So my only point of criticism is expecting a 6-channel WAV for 6 channel input (which may easily scratch 4 GB limits) - but I know people are working on it.

madshi
21st March 2007, 13:58
Slightly OT, but still: if I decode an (E-)AC3 file and want to keep it as a wav file, would a 24bit integer wav file sound better than a 16bit integer wave file?

jruggle
21st March 2007, 14:06
Slightly OT, but still: if I decode an (E-)AC3 file and want to keep it as a wav file, would a 24bit integer wav file sound better than a 16bit integer wave file?

The short answer is yes. The AC-3 format can encode more dynamic range than 16-bit wav files. So using 24-bit would give better results.

madshi
21st March 2007, 14:08
@jruggle, thank you.

vlada
21st March 2007, 14:48
The short answer is yes. The AC-3 format can encode more dynamic range than 16-bit wav files. So using 24-bit would give better results.

And the longer answer would be, that probably no human will be able to hear the difference :-)

HeadBangeR77
22nd March 2007, 00:52
Hello all, ;)
I don't want to launch a new thread on something, which is most probably obvious to you, yet it's unfortunately not so obvious to me...

I've been using the latest svn 467 with AftenGUI 1.3, and they work like charm and cooperate very well (thanks very much for constant developing and improving!). I assume the 467 revision isn't limited to 4GB wav files, yet I've encountered a problem on a previous stage: I can't find any application that would save my AC3 file (an original film soundtrack, 6 channels, 2h 23min 10sec long) to a proper 16 bit 5.1 wav file. I had first thought it was Aften's fault, since I didn't even check the size of the wav file (saved using the latest BeLight/BeSweet), however it turned out that the wav itself was only 4GB large and no more (about 2 hours long). Do you know any application, that bypasses this limit?

- DGIndex/DGDecode doesn't support saving to wav atm (there used to be some issues AFAIR)
- VirtualDubMod is only capable of creating a sort of dummy file, which is of the same file size as the AC3 track
- BeSweet/BeLight according to "BeSweet Commandline Reference Document version 2006-03-21 (BeSweet version 1.5b31)" is capable of saving 16 bit multichannel wav files up to 2GB (since I've got all the libraries updated, it made it up to 4GB)

***
A few questions about transcoding AC3 (I would like to keep 6 channels, yet improve the video a bit - I'm more sort of visual freak ;)) :
- The Guide (http://forum.doom9.org/showthread.php?t=56020) says the proper channel order is Front Left, Front Right, Front Center, Rear Left, Rear Right, and LFE
- my AC3 track, according to MediaInfo, is however a 448 kbps, 48 KHz, Front: L C R, Rear: L R, Subwoofer -> does it mean the order of front channels is wrong?
- BeSweet saves (according to the above mentioned document) to FL, FR, C, LFE, SL, SR -> again a different channel order?
- if I check the 3/2 coding mode + LFE in the GUI, it's as in the specifications, yet different from what my source is, and different from the wav file: should I just leave the fields empty and let the application read the information from the wav-header (if I finally happen to make one)?
- I would like to produce an AC3 file CBR 384 kbps with light compression: does anyone have any experience as to Film Light and Film Standard profiles?
- Should I check the low-pass filter, as in the AC3 specs, or leave it un-checked?

And thanks very much in advance!
cheers,
HDBR77

PS. Oops, that's quite a lot of uncertainties and questions from my side!

Chumbo
22nd March 2007, 02:05
If you transcode from ac3 to ac3 using besweet, it uses azid, so you have to configure your output channels in the azid config screen as follows:

Channel 0 = Left
Channel 1 = Right
Channel 2 = Surround Left
Channel 3 = Surround Right
Channel 4 = Center
Channel 5 = LFE

HeadBangeR77
22nd March 2007, 02:14
Hi!
I wanted to downmix to wav, so that I could make use of AftenGUI and the built-in compression profiles. I've also tried doing a direct transcoding with BeSweet/BeLight, and it throws at me the same errors as while trying to downmix to wav file (yet the downmixing has finished, transcoding is stuck at 87%, 0% CPU usage):


BeSweet v1.5b31 by DSPguru.
--------------------------
Using azid.dll v1.9 (b922) by Midas (midas@egon.gyaloglo.hu).
Using Shibatch.dll v0.25 by Naoki Shibata & DSPguru (shibatch.sourceforge.net).
Using bsn.dll replacement by Dimzon & Kurtnoise, Build Oct 2 2006, 16:07:39

Logging start : 03/22/07 , 01:54:59.

C:\Program Files\BeSweet\BeSweet.exe -core( -input I:\DVD\Black Pearl\AC3\Original AC3 Track.ac3 -output I:\DVD\Black Pearl\AC3\Original AC3 Track 1.ac3 -logfile I:\DVD\Black Pearl\AC3\Original AC3 Track.log ) -bsn( -exe aften.exe -b 384 -6chnew )

[00:00:00:000] +------- BeSweet -----
[00:00:00:000] | Input : I:\DVD\Black Pearl\AC3\Original AC3 Track.ac3
[00:00:00:000] | Output: I:\DVD\Black Pearl\AC3\Original AC3 Track 1.ac3
[00:00:00:000] | Floating-Point Process: No
[00:00:00:000] +-------- AZID -------
[00:00:00:000] | Input Channels Mode: 3/2, Bitrate: 448kbps
[00:00:00:000] | Total Gain: 0.000dB, Compression: None
[00:00:00:000] | LFE levels: To LR -INF, To LFE 0.0dB
[00:00:00:000] | Center mix level: BSI
[00:00:00:000] | Surround mix level: BSI
[00:00:00:000] | Dialog normalization: No
[00:00:00:000] | Rear channels filtering: No
[00:00:00:000] | Source Sample-Rate: 48.0KHz
[00:00:00:000] +---------------------
[00:23:13.472] W7: Downmix overflow (2: +0.5dB)
[00:23:33.008] W7: Downmix overflow (2: +0.6dB)
[00:25:17.498] W7: Downmix overflow (2: +2.2dB)
[00:25:21.616] W7: Downmix overflow (2: +0.4dB)
[00:25:54.405] W7: Downmix overflow (2: +0dB)
[00:25:54.410] W7: Downmix overflow (2: +0dB)
[00:28:48.325] W7: Downmix overflow (2: +0dB)
[00:32:48.624] W7: Downmix overflow (2: +0.3dB)
[00:32:48.629] W7: Downmix overflow (2: +0dB)
[00:32:48.634] W7: Downmix overflow (2: +0.1dB)
[00:32:48.645] W7: Downmix overflow (2: +0.3dB)
[00:32:48.650] W7: Downmix overflow (2: +0.5dB)
[00:32:48.656] W7: Downmix overflow (2: +0.3dB)
[00:32:48.672] W7: Downmix overflow (2: +0.3dB)
[00:32:48.688] W7: Downmix overflow (2: +0.1dB)
[00:32:48.704] W7: Downmix overflow (2: +0.1dB)
[00:32:48.709] W7: Downmix overflow (2: +0dB)
[00:32:48.714] W7: Downmix overflow (2: +0dB)
[00:32:48.725] W7: Downmix overflow (2: +0.3dB)
[00:32:51.312] W7: Downmix overflow (2: +0.2dB)
[00:32:51.317] W7: Downmix overflow (2: +0.4dB)
[00:33:20.085] W7: Downmix overflow (2: +0.4dB)
[01:03:20.288] W7: Downmix overflow (0: +0.2dB)
[01:04:06.698] W7: Downmix overflow (0: +0.1dB)
[01:04:06.709] W7: Downmix overflow (0: +0.1dB)
[01:13:02.672] W7: Downmix overflow (2: +0.2dB)
[01:24:38.618] W7: Downmix overflow (2: +0dB)
[01:24:38.976] W7: Downmix overflow (2: +0dB)
[01:29:12.752] W7: Downmix overflow (0: +0.1dB)
[01:52:36.250] W7: Downmix overflow (2: +0.8dB)
[01:54:54.501] W7: Downmix overflow (2: +0.1dB)

The same "Downmix overflow" warning I used to get while downmixing to wav. :confused:

PS. BeSweet via BeLight didn't finish, because it hit the same boarder as while creating a 5.1 WAV - 2 hours and 4 minutes, which would make a 4GB wav file, as I assume.

PS2. BeLight GUI is still screwed (excuse me, Kurtnoise, it's late at night and I'm sick and tired of this): when I add anything into the advanced command line window, like e.g. "-readtoeof 1" for Aften, it disappears when I hit the run button.

PS.3 I'm trying right now to use the built-in Windows command line with "-readtoeof 1", curious what happens? ;)

@ Chumbo: I'm reading the docs, and correct me, if I'm wrong:
I should use azid's parameter -o l,r,sl,sr,c,lfe"? Why is that (I know you're much more experienced than I am in these matter, so that's why I'm asking)? How does it affect aften? Or will it take the order defined by azid?

tebasuna51
22nd March 2007, 03:01
I can't find any application that would save my AC3 file (an original film soundtrack, 6 channels, 2h 23min 10sec long) to a proper 16 bit 5.1 wav file.
You can use:
- The command line decoder Azid 1.9 (http://www.doom9.org/Soft21/Audio/azid-1.9.zip)
- Foobar2000 with foo_ac3.dll
- The AviSynth decoder plugin NicAudio.dll with BeHappy/Bepipe/SoundOut
- The Guide (http://forum.doom9.org/showthread.php?t=56020) says the proper channel order is Front Left, Front Right, Front Center, Rear Left, Rear Right, and LFE
Don't say is the proper order only explain 3/2.1
This order is never used.
- my AC3 track, according to MediaInfo, is however a 448 kbps, 48 KHz, Front: L C R, Rear: L R, Subwoofer -> does it mean the order of front channels is wrong?
This is the internal correct order for an ac3 but not for a wav.
- BeSweet saves (according to the above mentioned document) to FL, FR, C, LFE, SL, SR -> again a different channel order?
This is the standard wav order. When you decode with azid you need put this parameters to obtain a correct 6 channel wav:
-d3/2 -L0 -l1 -ol,r,c,lfe,sl,sr
With Foobar or NicAudio you obtain this order by default.
- if I check the 3/2 coding mode + LFE in the GUI, it's as in the specifications, yet different from what my source is, and different from the wav file: should I just leave the fields empty and let the application read the information from the wav-header (if I finally happen to make one)?
Just let the defaults, this fields have only sense for 3, 4 or 5 channels. For stereo and 5.1 only one mode is possible.
- I would like to produce an AC3 file CBR 384 kbps with light compression: does anyone have any experience as to Film Light and Film Standard profiles?
Warning, the Dynamic Range Compression is only for test pourpose because the actual results are far of Dolby recommended curves you can see at the mentioned Guide.
Use DRC at your risk.
- Should I check the low-pass filter, as in the AC3 specs, or leave it un-checked?
Sorry I never test this.

tebasuna51
22nd March 2007, 03:12
If you transcode from ac3 to ac3 using besweet, it uses azid, so you have to configure your output channels in the azid config screen as follows:

Channel 0 = Left
Channel 1 = Right
Channel 2 = Surround Left
Channel 3 = Surround Right
Channel 4 = Center
Channel 5 = LFE
What is this azid config screen?
This map only can confuse and isn't correct.
Please forget the old BeSweetGUI, can't work with Aften.
With BeLight you don't need any remap.

Chumbo
22nd March 2007, 03:14
Aha, yeah, I use the BeSweet gui and found I have to configure it this way when I transcode from ac3 to ac3. That's why, in the other thread, I was testing with BeHappy instead. But this channel mapping does work in BeSweet. I'll take a snapshot and put it up in a little while.

[EDIT] BeSweet azid settings:
http://img99.imageshack.us/img99/8683/besweetazidwk8.jpg

The only thing I use different is the dynamic compression. In the snapshot it's set to normal, but I use none normally which is in the pulldown list.

tebasuna51
22nd March 2007, 03:33
I wanted to downmix to wav, so that I could make use of AftenGUI and the built-in compression profiles. I've also tried doing a direct transcoding with BeSweet/BeLight, and it throws at me the same errors as while trying to downmix to wav file
Don't worry with the "Downmix overflow" warning, are only some peaks cutted (only one > 1 db and not too much for 2 h.)

PS.3 I'm trying right now to use the built-in Windows command line with "-readtoeof 1", curious what happens?
Only work used in command line with aften.exe, not in command line with BeSweet

@ Chumbo: I'm reading the docs, and correct me, if I'm wrong:
I should use azid's parameter -o l,r,sl,sr,c,lfe"? Why is that (I know you're much more experienced than I am in these matter, so that's why I'm asking)? How does it affect aften? Or will it take the order defined by azid?
The -o azid parameter only work in command line with azid.exe, don't work with BeSweet. Y say you the correct parameters for azid are:

-d3/2 -L0 -l1 -ol,r,c,lfe,sl,sr

The correct wav order is FL, FR, C, LFE, SL, SR.

tebasuna51
22nd March 2007, 03:43
Aha, yeah, I use the BeSweet gui and found I have to configure it this way when I transcode from ac3 to ac3. That's why, in the other thread, I was testing with BeHappy instead. But this channel mapping does work in BeSweet. I'll take a snapshot and put it up in a little while.
BeSweetGUI is absolutely obsolete.
- The channel remapping is wrong.
- Use OTA for timestretch is obsolete.
- ac3enc is also obsolete
The only thing I use different is the dynamic compression. In the snapshot it's set to normal, but I use none normally which is in the pulldown list.
I agree, to transcode ac3 -> ac3 we never must apply the DRC at the decoder phase.

Chumbo
22nd March 2007, 03:50
BeSweetGUI is absolutely obsolete.
- The channel remapping is wrong.
- Use OTA for timestretch is obsolete.
- ac3enc is also obsolete

That's fine, but if it ain't broke and it works... The channel mapping is not wrong. How can you say that? I've listened to the output tracks and they're absolutely correct. I've done this on many files. I wouldn't post bad or incorrect info if I hadn't used it successfully. Regardless of what's obsolete, it works. With that said, I'm trying to move to new tools as you know. ;)

HeadBangeR77
22nd March 2007, 03:51
I'm very grateful for all the help, explanations, and suggestions! :)

1) I've finally understood the channel order (AC3's internal, and that of 5.1 WAVE).
2) Since I'm not familiar with foorbar2000, and the AviSynth-based applications have NET.framework dependency (or am I wrong? then plz correct me), I'm gonna try the standalone azid version. Yet my nose tells me I might hit the 4GB boarder again, since I did already twice while trying to transcode my AC3 file using BeLight/BeSweet or just the BeSweet's CMDL. Both azid's versions are the same (the standalone one and the one included with BeSweet package).
3) When I find some time to test, I'm gonna report back.

:thanks:
again and good night ;)

Chumbo
22nd March 2007, 03:54
...@ Chumbo: I'm reading the docs, and correct me, if I'm wrong:
I should use azid's parameter -o l,r,sl,sr,c,lfe"? Why is that (I know you're much more experienced than I am in these matter, so that's why I'm asking)? How does it affect aften? Or will it take the order defined by azid?
I'm sorry, I misread your post. You're obviously using Aften and not azid. The settings are for azid. If you use aften, you don't have to worry about it. My bad, very sorry. And I'm not that experienced btw, but I try to help out with stuff I know has worked for me. :)

tebasuna51
22nd March 2007, 04:25
2) Since I'm not familiar with foorbar2000, and the AviSynth-based applications have NET.framework dependency (or am I wrong? then plz correct me)
Yes for BeHappy/Bepipe, but you can use SoundOut (http://forum.doom9.org/showthread.php?t=120025) without .NET
I'm gonna try the standalone azid version. Yet my nose tells me I might hit the 4GB boarder again, since I did already twice while trying to transcode my AC3 file using BeLight/BeSweet or just the BeSweet's CMDL. Both azid's versions are the same (the standalone one and the one included with BeSweet package).

Yes is same version azid v1.9, but you can trust, the problem is BeSweet not azid.exe.

HeadBangeR77
22nd March 2007, 12:58
Yes for BeHappy/Bepipe, but you can use SoundOut (http://forum.doom9.org/showthread.php?t=120025) without .NET
I really should have started a new thread, since this turns out to be a longer discussion. I saw the thread on SoundOut more than once, yet since I had never done any sound processing via AviSynth I was a bit sceptical (most probably because of lack of proper knowledge ;)).

I had some problems: first of all I have an AC3 source, so how do I load this kind of audio source in AviSynth? Or should I rip the VOBs again, so that they contain the audio track and call multiple "mpeg2source"s? Finally I went for DirectShowSource, and AC3 filter popped out then, decompressing the AC3 to 6 channel WAV, and sending it to the plugin (of course I had to reconfigure the AC3 Filter to not process anything on the way).

The results are rather poor:
1) The first 16-bit 5.1 WAV seems to be 4.60 GB, and so much it occupies on my HDD, Media Info indicates proper length and size, while Audio Identifier says it's only 622.63 MB and 18min 53sec long! And so see it both AftenGUI and SoundOut, when I load the file via WAVSource().
2) The same happened with my next trials (16-bit, and 24-bit WAVEs) - they occupy whole lot of space on my HDD, yet all audio processing applications see the above mentioned size and length, and so is the resulting Aften AC3 encode, when I try to process those files.
3) Could it be the fault of DirectShowSource() and AC3 Filter? Btw. the latter decodes the sound to WAV, with WAV channel order - hope SoundOut takes this into account?

The rest in a separate post.

If any moderator sees this, could he split this discussion form here (http://forum.doom9.org/showthread.php?p=973593#post973593)?
Thanks in advance!

PS. Got it thanks to NicAC3soource(), and SoundOut shows 6 channles (I have always though NicAudio was limited to 3?) - gonna encode now. :) Nic's forces 32-bit float, but I specified 24-bit integer in the SoundOut itself - hope this time I finally get the damned WAVE.

PS. NicAudio went on and created a huge 32-bit floating point WAV file. Wrrrr!

tebasuna51
22nd March 2007, 13:49
That's fine, but if it ain't broke and it works... The channel mapping is not wrong. How can you say that? I've listened to the output tracks and they're absolutely correct. I've done this on many files. I wouldn't post bad or incorrect info if I hadn't used it successfully. Regardless of what's obsolete, it works. With that said, I'm trying to move to new tools as you know.

Sorry Chumbo for my rude answer, you are right this works but I'm also right this channel mapping are wrong, let me explain:

- the -ol,r,sl,sr,c,lfe parameter is ignored (like I say before and fortunately) in BeSweet-azid section. The order l,r,sl,sr,c,lfe is wrong, I don't know any soft than use this order.

- the channel mapping order in BeSweet is controlled by bsn.dll.

- Old bsn.dll generate wav's in ac3 order l,c,r,sl,sr,lfe (the same order necessary for ac3enc.dll, headac3he,... and supported by aften with the parameter -chmap 1)

- New bsn.dll (by Kurtnoise) generate wav's in standard wav order l,r,c,lfe,sl,sr and send this order to aften, but when send data to ac3enc is remapped to l,c,r,sl,sr,lfe like is needed.

This kind of mapping problems don't exist with BeLight, the new GUI for BeSweet, also support the last free encoders Aften, NeroAacEnc or CT enc_AacPlus, -soundtouch for timestretch and so on.

HeadBangeR77
22nd March 2007, 13:51
Yes is same version azid v1.9, but you can trust, the problem is BeSweet not azid.exe.
I don't think I will use azid.exe, since I'm getting familiar with SoundOut and seem to make some progress, yet when I was trying it threw an error on me about "illegal output channel in line six":

(-f wav24 -d3/2 -L0 -l1 -ol,r,c,lfe,sl,sr)

I really appreciate all your help, guys. :)
And Chumbo, thanks a lot for good intentions and your quick answers!

@ tebasuna51:
I'm constantly getting the same results with SondOut, no matter if I use DirectShowSource or NicAC3source - the file is huge, yet reported by most applications as much smaller, just 18 minute long, and so Aften sees it too. :confused:

tebasuna51
22nd March 2007, 14:36
I don't think I will use azid.exe, since I'm getting familiar with SoundOut and seem to make some progress, yet when I was trying it threw an error on me about "illegal output channel in line six"
The correct sintax is:
azid.exe -F wav24 -d3/2 -L0 -l1 -ol,r,c,lfe,sl,sr <ac3> <wav>
the parameters are case sensitive and 'f' have other meaning.
I'm constantly getting the same results with SondOut, no matter if I use DirectShowSource or NicAC3source - the file is huge, yet reported by most applications as much smaller, just 18 minute long, and so Aften sees it too.
You only can trust in wav size, the header fields than report the length to the app. are wrong.
Time_length = Size_in_bytes / (SampleRate x Num_channels x Bit_depth / 8)

For instance for a wav 48 KHz, 6 channels, 24 bit and 4.87 GB you have:

Time_length = 5229122682 / (48000 x 6 x 24 / 8) = 6052 sec = 1h. 40m. 52s.

To encode with aften (rev449 and next) you need the parameter: -readtoeof 1
This parameter are not yet implemented in AftenGUI or SoundOut GUI, you need execute something like:
NicAc3Source("G:\yourpath\input.ac3", DRC=0)
(process if any)
SoundOut(output="cmd", filename="G:\yourpath\output.ac3", autoclose=true, type=0, executable="G:\yourpath\aften.exe", prefilename="-v 0 -b 384 -readtoeof 1 -")

HeadBangeR77
24th March 2007, 14:07
The correct sintax is:
azid.exe -F wav24 -d3/2 -L0 -l1 -ol,r,c,lfe,sl,sr <ac3> <wav>
the parameters are case sensitive and 'f' have other meaning.
I've finally found some time to drop by and report back. ;)

Thanks very much for the correction of my command line - it worked then, yet I think I'm gonna stick to the SoundOut plug-in, since then I can spare myself the step of creating a bloated WAV, and transcode AC3 => AC3 directly.
Great plug-in, btw., must dig in the thread some time.

You only can trust in wav size, the header fields than report the length to the app. are wrong.
Time_length = Size_in_bytes / (SampleRate x Num_channels x Bit_depth / 8)
For instance for a wav 48 KHz, 6 channels, 24 bit and 4.87 GB you have:
Time_length = 5229122682 / (48000 x 6 x 24 / 8) = 6052 sec = 1h. 40m. 52s.
Thanks for the tip. As already said before, creating e.g a 48 KHz, 6 channels, 24 bit WAV for a 2,5-hour film takes some storage place, that I don't have much currently. I've noted down the way to count the proper time length - cheers again. :)

Btw. all the applications that read just the header have reported the file size and duration of the "overflow" above 4 GB, interesting... I mean for instance: I had a 4.6GB WAV (as above, yet only 16 bit) with total duration of 2 hours and 23 minutes; it was reported as 6XX MB file with a total playing time of about 18 minutes, instead of e.g. 4GB file, 2 hours 4-5 minutes. Do you happen know why is it so?

To encode with aften (rev449 and next) you need the parameter: -readtoeof 1
This parameter are not yet implemented in AftenGUI or SoundOut GUI, you need execute something like:
Yes, I've marked there is no way to add a custom parameter like the above one with Aften GUI 1.3, SoundOut GUI however has got some custom command line options interface. Is it not working properly yet?


NicAc3Source("G:\yourpath\input.ac3", DRC=0)
(process if any)
SoundOut(output="cmd", filename="G:\yourpath\output.ac3", autoclose=true, type=0, executable="G:\yourpath\aften.exe", prefilename="-v 0 -b 384 -readtoeof 1 -")

NicAc3Source doesn't know the DRC parameter, at least the version I have. It worked for me like charm with:

NicAC3Source("I:\DVD\Black Pearl\AC3\Original AC3 Track.ac3")

SoundOut(output="cmd", filename="I:\DVD\Black Pearl\AC3\New AC3 Track.ac3", autoclose=true, type=0, executable="I:\DVD\Black Pearl\AftenGUI-1.3\aften.exe", prefilename="-v 0 -b 384 -dnorm 31 -dynrng 5 -readtoeof 1 -")
I know dnorm is 31 by default, and dynrng is 5 by default (which means no compression), yet I'm used to writing those parameters, that I might change in the future, in the command line nonetheless.

As to some tweaking:
- -bwfilter 1 I can't notice any difference in audio,
- dynrng 0 (which is "Film Light") is indeed very, very subtle. It might be not up to the specs, yet I think I'm gonna stick to it, since I really like the end effect

[i]"The full dynamic range audio is still encoded, but a code is given for each block which tells the decoder to adjust the output volume for that block."[i](Aften HELP file)
Does that mean the changes could be reverted?

And really the last of my questions:
I remember reading somewhere Aften adds some extra frames while transcoding /encoding. In my case the difference is:
02:23:10.944 original AC3 vs. 02:23:10.976 Aften

Does it take place somewhere at the beginning of the file? If so, I could just add a "-32ms" delay while muxing with video, and the slight asynchronisation should be gone, shouldn't it?

Thank you very much for all the help - really appreciated! :)
cheers,
HDBR77

jruggle
25th March 2007, 03:22
As to some tweaking:
- -bwfilter 1 I can't notice any difference in audio,

It will never be extremely noticeable...especially when the cutoff is near the upper limit of human hearing. I included the option because it's one of Dolby's recommended pre-encoding filters.


[i]"The full dynamic range audio is still encoded, but a code is given for each block which tells the decoder to adjust the output volume for that block."[i](Aften HELP file)
Does that mean the changes could be reverted?

Yes, if you have the right tool to do that. I don't know of any, though there is probably some professional software somewhere which can do that.


And really the last of my questions:
I remember reading somewhere Aften adds some extra frames while transcoding /encoding. In my case the difference is:
02:23:10.944 original AC3 vs. 02:23:10.976 Aften

Does it take place somewhere at the beginning of the file? If so, I could just add a "-32ms" delay while muxing with video, and the slight asynchronisation should be gone, shouldn't it?

the option to use is '-pad 0'

tebasuna51
25th March 2007, 04:08
Btw. all the applications that read just the header have reported the file size and duration of the "overflow" above 4 GB, interesting... I mean for instance: I had a 4.6GB WAV (as above, yet only 16 bit) with total duration of 2 hours and 23 minutes; it was reported as 6XX MB file with a total playing time of about 18 minutes, instead of e.g. 4GB file, 2 hours 4-5 minutes. Do you happen know why is it so?
There are two fields (filesize and datasize with 4 bytes each) in wav header than can't support a number greater than 2^32 (like 4 GB), when these counters overflow begin by 0 another time.

Yes, I've marked there is no way to add a custom parameter like the above one with Aften GUI 1.3, SoundOut GUI however has got some custom command line options interface. Is it not working properly yet?
Before Aften 0.06 the default was similar to -readtoeof 1 then GUI's don't need to put this. AFAIK only BeHappy have the GUI actualized :rolleyes:

NicAc3Source doesn't know the DRC parameter, at least the version I have.
Please use the last NicAudio.dll (http://nic.dnsalias.com/NicAudio_alpha3.zip), not only for DRC options but also to avoid crash with 44.1 KHz signals and others issues.
[i]"The full dynamic range audio is still encoded, but a code is given for each block which tells the decoder to adjust the output volume for that block."[i](Aften HELP file)
Does that mean the changes could be reverted?
With DRC=0 in NicAc3Source or with DRC='None' in BeLight-BeSweet-Azid this code per block is ignored and the full dynamic range is decoded.
Does it take place somewhere at the beginning of the file? If so, I could just add a "-32ms" delay while muxing with video, and the slight asynchronisation should be gone, shouldn't it?
Really the delay is only 5.33 ms (in 48 KHz.) the rest to 32 ms is silence at the end, but you can use -pad 0 like Justin say to have a exact sync (now the first 5.33 ms are encoded properly only if are silence)

HeadBangeR77
26th March 2007, 11:19
@ jruggle:
Thank you very much for clarifying. :)

@ tebasuna51:
I've got to thank you one more time for all the explanations. :)
I used to have some older (most probably the last official/stable) version of NicAudio plug-in, dated July 2005, and it didn't accept the DRC parameter - thanks for linking to a newer version. Everything seems now very clear to me, and I hope my endless questions and your explanations can be of any use for other people. ;)

cheers,
HDBR77

chros
5th April 2007, 10:00
Please use the last NicAudio.dll (http://nic.dnsalias.com/NicAudio_alpha3.zip), not only for DRC options but also to avoid crash with 44.1 KHz signals and others issues.
Isn't this the same as in Nic's page (http://nic.dnsalias.com/nixaudiostuff.html) v1.7 ? (the filesize is the same)

madshi
5th April 2007, 10:10
Some theoretical questions to the (E-)AC3 gurus:

(1) Which bitdepth are studios encoding (E-)AC3 in? 16bit? 20bit? 24bit? 32bit integer? 32bit float?
(2) Does the bitdepth make a difference for the final (E-)AC3 file size? Does the (E-)AC3 file size get bigger with more input bitdepth?
(3) Is there a way to find out which bitdepth a given (E-)AC3 track was encoded with?
(4) If a (E-)AC3 file was encoded with 16bit, does decoding to more than 16bit still have any advantage whatsoever?

tebasuna51
5th April 2007, 11:24
Isn't this the same as in Nic's page (http://nic.dnsalias.com/nixaudiostuff.html) v1.7 ? (the filesize is the same)
Yes, is the same bit to bit and date 2006-09-01, seems Nic was add in their web at 2007-02-24 like NicAudio.dll v1.7. Thanks.

jruggle
6th April 2007, 23:31
Some theoretical questions to the (E-)AC3 gurus:

(1) Which bitdepth are studios encoding (E-)AC3 in? 16bit? 20bit? 24bit? 32bit integer? 32bit float?

Technically, there is no way to know from the generated content alone. The AC3 format does not have a specified bit depth. The best way I can come up with to describe it simply is that each sample varies from 5-bit to 21-bit floating point. But even this is somewhat misleading because AC3 stores audio in the frequency domain, not in the time domain like in PCM audio.


(2) Does the bitdepth make a difference for the final (E-)AC3 file size? Does the (E-)AC3 file size get bigger with more input bitdepth?

No. The user doing the encoding controls the file size by specifying the bit rate.


(3) Is there a way to find out which bitdepth a given (E-)AC3 track was encoded with?

No, not unless the person who encoded it tells you. :)


(4) If a (E-)AC3 file was encoded with 16bit, does decoding to more than 16bit still have any advantage whatsoever?
If you do happen to know that the source was 16-bit, then decoding to more than 16-bit can still (theoretically) give better results. Better is relative here though. I doubt that the difference would even be audible to most people.

Mug Funky
7th April 2007, 08:48
authoring houses will most likely be using DA-88 masters. these are usually in 16/48, though they can carry up to 24/96 in theory.

i've never seen one of these in anything other than 16/48, but i've never encoded for HD-DVD before either.

madshi
7th April 2007, 09:17
Thanks jruggle (and Mug Funky) for the very informative reply!

jruggle
26th April 2007, 01:54
Aften 0.07 was released today, 25 April 2007. Here is the Changelog:

added C++ bindings (pass -DBINDINGS_CXX=1 to cmake to build them)
API change of helper functions
new and more precise bitalloc algorithm
parallelization
optional faster exponent strategy decision
added SSE version of window function
added MMX and SSE2 versions of some exponent related functions
removed old build system
frame-independent variable bandwidth
minimum and maximum bandwidth settings for variable bandwidth mode
altivec support framework (by David Conrad)
altivec MDCT (by David Conrad)

madshi
26th April 2007, 07:34
Thank you!!

From what I can see, most of these changes are targetted at better performance, correct? Does "new and more precise bitalloc algorithm" also indicate improved quality?

Kurtnoise
26th April 2007, 08:55
@Justin or Prakash : by default, cmake enables SSSE3 during compilation, right ? coz aften crashes on machines which haven't these CPU optimizations (just tried on a Linux distro...I've got a segfault (core dumped) when I try to use aften. So, how turn off SSSE3 detection with cmake (except disable some parts in the code) ?

jruggle
26th April 2007, 15:23
Thank you!!

From what I can see, most of these changes are targetted at better performance, correct? Does "new and more precise bitalloc algorithm" also indicate improved quality?

There is no quality difference there. The bit allocation search results used to differ very slightly for each run when using multiple threads. The algorithm was fixed to give the same exact results for each run.

jruggle
26th April 2007, 15:44
@Justin or Prakash : by default, cmake enables SSSE3 during compilation, right ? coz aften crashes on machines which haven't these CPU optimizations (just tried on a Linux distro...I've got a segfault (core dumped) when I try to use aften. So, how turn off SSSE3 detection with cmake (except disable some parts in the code) ?

Could you give more detailed info on this? I use Linux and my machine doesn't have any form of SSE whatsoever, but I haven't had any issues. Even though my system compiles the SSE parts, the runtime CPU detection prevents them from being used.

The kind of issue you're talking about should give an "Illegal Instruction" not a segfault. Can you enable debugging and provide a gdb backtrace?

DarkAvenger
26th April 2007, 17:38
Aften has no SSSE3 code (only detection), but has SSE3, but it should not be used on CPUs w/o SSE3. Are you supplying custom (non-portable) CFLAGS?

Kurtnoise
27th April 2007, 08:20
Nope...I used the default CFLAGS. My own PC (i.e the one on which I compile Aften) supports SSE3 as well but not SSSE3.

I tried to debug with gdb backtrace but I've got "No Stack" as response. It's really new for me the debugging on Linux. Sorry. I'll investigate in more details later...

Chumbo
27th April 2007, 15:42
Just fyi, the links in the first post don't have 0.07 listed when you navigate to either one:
http://sourceforge.net/projects/aften

or

http://kurtnoise.free.fr/index.php?dir=Aften/