Log in

View Full Version : BeHappy - AviSynth based audio transcoding tool (UPD 19-07-2006)


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

tebasuna51
19th July 2008, 16:32
Of which DSP do you talk now? Not Timestretch?

Yes TimeStretch. There are 3 modes in 'Rate Control':
- Rate ...
- Pitch ...
- Tempo ...

The Rate mode don't need sophisticated algorithms to do the job, only change the samplerate then the waveform is very similar and only the pitch change can be detected. This is the -slowdown/speedup from eac3to.

Pitch or Tempo modes need more complex job.
You can try also different parameters in TimeStretch AviSynth function (http://avisynth.org/mediawiki/TimeStretch)

lchiu7
19th July 2008, 22:45
Our new DVB-T broadcasts are using this audio format. About the only way to hear the recorded files is to have PowerDVD8 which has a DS filter that can handle this audio format.

Since Behappy uses DS I wonder if it's possible to use this tool to convert this audio format to something common - say MP4 or even 2 channel AC-3 so that it could be muxed back with the original (or even re-compressed) AVC video into something that is easier to play.

Thanks

Menedas
19th July 2008, 23:46
Ok, then I have understood you right. But how can you explain, that there is the same effect hearable with the Rate option? Hence, the effect I can hear could not come from the pitch. Thats what I wanted to say the whole time.

I wasn't really aware that the speedup option of eac3to is maybe the thing I wanted. I tested it and it does not have the same "bug" as the AviSynth function (Rate). Thank you for that information. But thats only a solution for eac3 files. I need also something for AC3 or DTS files.

tebasuna51
20th July 2008, 00:31
Our new DVB-T broadcasts are using this audio format. About the only way to hear the recorded files is to have PowerDVD8 which has a DS filter that can handle this audio format.

Since Behappy uses DS I wonder if it's possible to use this tool to convert this audio format to something common - say MP4 or even 2 channel AC-3 so that it could be muxed back with the original (or even re-compressed) AVC video into something that is easier to play.

Seems there are also a free LATM aac DS decoder (http://forum.doom9.org/showthread.php?p=1082416#post1082416)

You can try open the file with the DirectShowSource method.

tebasuna51
20th July 2008, 01:04
Ok, then I have understood you right. But how can you explain, that there is the same effect hearable with the Rate option? Hence, the effect I can hear could not come from the pitch. Thats what I wanted to say the whole time.

I can't explain a effect that I don't hear.

I wasn't really aware that the speedup option of eac3to is maybe the thing I wanted. I tested it and it does not have the same "bug" as the AviSynth function (Rate). Thank you for that information. But thats only a solution for eac3 files. I need also something for AC3 or DTS files.

I'm happy you found the solution because eac3to also decode ac3 and dts files.

Menedas
20th July 2008, 01:17
I can't explain a effect that I don't hear.
Strange. You can't even hear it with headphones?

lchiu7
20th July 2008, 04:22
Seems there are also a free LATM aac DS decoder (http://forum.doom9.org/showthread.php?p=1082416#post1082416)

You can try open the file with the DirectShowSource method.

Tried that (under Vista SP1). Demuxed the audio from the ts file using tsremuxer (saved as a aac file)

Had the Monogram filter already installed

Opened the aac file using behappy and chose Directshow (also tried avisynth).

Both times in a few second Behappy just died (program has stopped responding).

So it looks like Behappy is unable to open these files

gtpboy
28th August 2008, 22:11
Maybe I’m doing something wrong but I'm trying to take a 6 channel AC3 file splitting into individual mono WAV files then re encode it into a single WAV file in WME.

Well once BeHappy gets done splitting the AC3 file into the individual WAV files I go to convert it in WME and it tells me that the source files need to be mono WAV files, well I thought that’s what I just did. I've double and triple checked all the settings in BeHappy but can't figure it out.

Is there an easier way to do this like a straight encode AC3->WMA 10 instead of splitting and then rejoining?

tebasuna51
29th August 2008, 02:00
Maybe I’m doing something wrong but I'm trying to take a 6 channel AC3 file splitting into individual mono WAV files then re encode it into a single WAV file in WME.
What is WME?
Do you need a single WAV or a WMA?

Well once BeHappy gets done splitting the AC3 file into the individual WAV files I go to convert it in WME and it tells me that the source files need to be mono WAV files, well I thought that’s what I just did. I've double and triple checked all the settings in BeHappy but can't figure it out.
BeHappy can decode ac3 files to a single WAV multichannel (Destination Wav Writer) file or to monowav files (Destination WavSplit @ Mono Wav's).
Is there an easier way to do this like a straight encode AC3->WMA 10 instead of splitting and then rejoining?
If MS supply a WMA encoder with STDIN input we can add a direct transcode AC3->WMA in BeHappy.

Snowknight26
29th August 2008, 03:15
WME = Windows Media Encoder.

tebasuna51
29th August 2008, 09:46
WME = Windows Media Encoder.
Sorry, I don't know this tool.
I supose you want output a multichannel WMA.

And WME need 6 monowavs always to encode a multichannel WMA?
And WME don't recognize the monowavs generated by BeHappy-WavSplit?

gtpboy
29th August 2008, 13:02
BeHappy can decode ac3 files to a single WAV multichannel (Destination Wav Writer) file or to monowav files (Destination WavSplit @ Mono Wav's).

I did see that option in there but didn't know it generated a multichannel WAV file I'll have to try that thanks.

And WME don't recognize the monowavs generated by BeHappy-WavSplit?

Aparently i've tried it on a few different AC3 files and get the same message "source must be mono WAV file"

Oh well as long as the other method works i'll be fine Thanks again

WME is a fickle program some AC3 files it will transcode with no problems others it will generate a "source file type is invalid" error same with some DTS files

DiGiT@LON€
31st October 2008, 11:52
Hi everyone.
I'm an Italian user, sorry for my bad English.

I have to make 2 questions:

- I have an ac3 2.0 audio file. I want to convert it in wav with behappy latest release.
I select wav writer like encoder, and the encode works good.
But the output wav file don't have sound.
I can see from foobar that it is a PCM 32 bit floating point, but there's not sound.
How can I convert better?

- Does Behappy add a delay to output file? If yes, how much?

Thanks...

tebasuna51
31st October 2008, 14:12
- I have an ac3 2.0 audio file. I want to convert it in wav with behappy latest release.
I select wav writer like encoder, and the encode works good.
But the output wav file don't have sound.
I can see from foobar that it is a PCM 32 bit floating point, but there's not sound.
How can I convert better?
This is a NicAudio ac3 decoder behaviour more than BeHappy related.

When the decoder found a valid ac3 frame set some basic parameters (num_channels, samplerate, bitrate) and after reject (filling with silence) any other frame don't match the initial basic parameters.

Probably your ac3 source is from a TV capture and you have some initial frames 2.0 (commercials) and after change to 5.1 (movie), sorry but NicAudio can't begin supply 2.0 and change to 5.1 on the fly. You can use DelayCut to check the ac3 file and cut the initial 2.0 frames (if is the problem).

- Does Behappy add a delay to output file? If yes, how much?

Behappy have a box to include any desired delay. By default BeHappy don't add delay.

NicAudio.dll v2.0.2 ac3 decoder can add delay (a multiple of 32 ms) when found invalid data (until 1 MB) before the first valid ac3 frame, then can compensate pseudo-delays in VirtualDub style. If you don't want this delay you can use DelayCut to fix the ac3 before decode.

There are also little delays introduced by encoders, for instance ac3 encoders do a 5.333 ms delay (with Aften you can disable this delay with the -pad 0 parameter)

DiGiT@LON€
31st October 2008, 18:08
This is a NicAudio ac3 decoder behaviour more than BeHappy related.

When the decoder found a valid ac3 frame set some basic parameters (num_channels, samplerate, bitrate) and after reject (filling with silence) any other frame don't match the initial basic parameters.

Probably your ac3 source is from a TV capture and you have some initial frames 2.0 (commercials) and after change to 5.1 (movie), sorry but NicAudio can't begin supply 2.0 and change to 5.1 on the fly. You can use DelayCut to check the ac3 file and cut the initial 2.0 frames (if is the problem).Yes, you're right. It comes from a TV capture.
Can you suggest me another tool that convert ac3 (in this status) in wav?
Have I to use Delaycut imperatively?

There are also little delays introduced by encoders, for instance ac3 encoders do a 5.333 ms delay (with Aften you can disable this delay with the -pad 0 parameter)Does Ac3 encoder in BeHappy have this behaviour?
If yes, have I to set -5.333 in BeHappy for synchronizing?

DiGiT@LON€
31st October 2008, 23:39
I have resolved with Azid-BeSweet.
Now I want to know only if azid is between those encoders that apply a delay during the encode.

Then, if someone explains me why the encode works with azid-beesweet, I appreciate...
Thanks...

Kurtnoise
2nd January 2009, 17:27
@Tebasuna:

I found a bug in the AvisynthWrapper. Using your dll + the wrapper with megui, I got a buffer overrun issue. :eek:

Here is the fix (http://pastebin.com/f11b1bda1)...

tebasuna51
3rd January 2009, 02:32
You are rigth Kurtnoise. Next release must correct that. Thanks.

Isn't a problem for BeHappy because seems never read video frames but MeGUI ...

I don't know if AvisynthWrapper.cs can work with MeGUI my unique change was 'dimzon_avs_init' -> 'dimzon_avs_init_2'

Kurtnoise
3rd January 2009, 10:04
well...the AvisynthWrapper.cs is the same (quite normal because we uses the same lib ;)). The main difference comes from the encoder routines (wav header writing, etc...). Yesterday, I tried to drop the ConvertAudio16Bits() restriction from the megui script but unfortunately, it produces some garbage as ouput whereas with BeHappy and the same script, all it's fine. So, I suspect something wrong with the wav header. I've seen that the wav header writing is more accurate with BeHappy (wav > 4GB detection, different headertypes, etc...) but I'm busy with other things right now so I can't check it out more carefully...

tebasuna51
3rd January 2009, 17:20
You are writing always INT wav files.

In AviSynthAudioEncoder.cs (line 482) you need only write the correct Format_tag:
- target.Write(BitConverter.GetBytes((short)0x01), 0, 2);
+ target.Write(BitConverter.GetBytes((a.SampleType==AudioSampleType.FLOAT) ? (short)0x03) : (short)0x01), 0, 2);

Where (in AviSynthWrapper.cs):
public enum AudioSampleType:int {
Unknown=0,
INT8 = 1,
INT16 = 2,
INT24 = 4,
INT32 = 8,
FLOAT = 16
};

Seraphic-
3rd January 2009, 21:29
Nero AAC Codec 1.3.3.0 was released a few weeks ago.
Is neroAacEnc built into BeHappy or do you just have to put the neroAacEnc in the BeHappy "encoder" folder before BeHappy can encode NeroAAC. (i've been doing the latter)

Also, does anyone have any experiance with "save extra non audio information"?
Generally, if you are going directly from an audio editor like adobe premiere/audition to an audio encoder like BeHappy for NeroAAC, would it be recommended to disable or enable "save extra non audio information"?

Kurtnoise
3rd January 2009, 23:01
You are writing always INT wav files.

In AviSynthAudioEncoder.cs (line 482) you need only write the correct Format_tag:

thanks for the trick...it seems to work fine now. ;)


btw, did you noticed that with any sources, the bits per samples returned as info is always 32 ? even with 16 bits sources ?

to reproduce w/ BeHappy : take an ac3 (2.0) and transcode it to aac without applying any dsp. At the end, check the log, you'll see that the bps is always 32. Is it due to float conversion or is it a bug ?

tebasuna51
4th January 2009, 04:21
btw, did you noticed that with any sources, the bits per samples returned as info is always 32 ? even with 16 bits sources ?

to reproduce w/ BeHappy : take an ac3 (2.0) and transcode it to aac without applying any dsp. At the end, check the log, you'll see that the bps is always 32. Is it due to float conversion or is it a bug ?

NicAudio/Bass decoders always output 32 bits float (also many others functions work in 32 float). Behappy select the high resolution supported by the encoder, most the times supply 32 bit float.

Only lossless formats can be preserved.

How do you know than one ac3 have 16 bitdepth sources?
Also the dts field header about source bitdepth can be wrong (Surcode write 24 when sources are 16)
And what is the problem when supply the best precission know?.
Encoders convert to float any input most the times. Then we can skip two conversions.

tebasuna51
4th January 2009, 04:35
Nero AAC Codec 1.3.3.0 was released a few weeks ago.
Is neroAacEnc built into BeHappy or do you just have to put the neroAacEnc in the BeHappy "encoder" folder before BeHappy can encode NeroAAC. (i've been doing the latter)
Yes NeroAacEnc can't be build with BeHappy the you must dowload and include in same folder than BeHappy or in the sibfolder "encoder".

Now only exist 1 version (for Windows) and you don't need check the 'Use SSE CPU instructions' (must disapear for next version)

Also, does anyone have any experiance with "save extra non audio information"?
Generally, if you are going directly from an audio editor like adobe premiere/audition to an audio encoder like BeHappy for NeroAAC, would it be recommended to disable or enable "save extra non audio information"?

The "extra non audio information" is always ignored. Only if wav files are >4GB and the "extra info" is writed at end of file, after the 'data' chunk can be treated as audio data and produce a final click.

b66pak
27th January 2009, 19:39
i am encoding Madagascar 2 for my psp but the final audio (.m4a) has a really low volume...
i rip the 6ch.ac3 track > remove dialnorm (eac3to [other free options for this?]) > transcoded with behappy with nicac3source + downmix to stereo + normalize to 100% >.mp4 output is very low volume!
please advise...
_

tebasuna51
28th January 2009, 01:20
i am encoding Madagascar 2 for my psp but the final audio (.m4a) has a really low volume...
i rip the 6ch.ac3 track > remove dialnorm (eac3to [other free options for this?]) > transcoded with behappy with nicac3source + downmix to stereo + normalize to 100% >.mp4 output is very low volume!
please advise...
_
Your process is more or less correct but if you need the sound for low end audio equipment you need compress the dynamic range (less quality but more volume after normalize).
Then:
- You don' need remove DialNorm, NicAudio don't apply DialNorm.
- Open with BeHappy-NicAc3Source(DRC), Configure at (...)
Then the high volume are attenuated and low volume amplified (Dynamic Range Compresion)
- Downmix
- Normalize at end (must be the last DSP function).
Now are max amplified without overflow

b66pak
28th January 2009, 18:36
ok...thanks a lot for the help...

i use this .avs


#
NicAc3Source("F:\audio.ac3", DRC=1)
#
#
caaa4eafb6a2f44a1ae9bbae242a91a24=ConvertAudioToFloat(last)
#
function faaa4eafb6a2f44a1ae9bbae242a91a24(clip a)
{
#
flr = GetChannel(a, 1, 2)
#
fcc = GetChannel(a, 3)
#
lfe = GetChannel(a, 4)
#
lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
#
mix = MergeChannels(lfc, lfc)
#
lrc = MixAudio(flr, mix, 0.2929, 1.0)
#
blr = GetChannel(a, 5, 6)
#
return MixAudio(lrc, blr, 1.0, 0.2929)
#
}
#
faaa4eafb6a2f44a1ae9bbae242a91a24(caaa4eafb6a2f44a1ae9bbae242a91a24)
#
#
Normalize(100.0/100.0)
#

and the volume level is higher...i am a little confused....why is behappy using normalize function before the downmix and not after?

i also find that Normalize(200.0/100.0) is busting the volume even higher...is this wrong?

by the way the psp is not low end audio...you must use headphones for proper audio output...
_

L.E. it would be very nice if someone experimented will make a tutorial (or guidance) for proper audio transcoding...
_

L.E.2 i have a .mp2 (2channel 192k cbr) from a TV recording that i need to transcode to .m4a...it is proper to normalize it to 100%?

#
NicMPG123Source("F:\audio.mp2")
#
#
Normalize(100.0/100.0)
#

what is the difference between the above and below (beside the level of normalization)?

#
NicMPG123Source("F:\audio.mp2", true)
#
#
_

best regards...

tebasuna51
29th January 2009, 01:26
...
and the volume level is higher...i am a little confused....why is behappy using normalize function before the downmix and not after?
In your sample Normalize is after.
The function definition can be at any place, only the execution line is important.
You have Up and Down buttons to put the DSP functions at desired order.

i also find that Normalize(200.0/100.0) is busting the volume even higher...is this wrong?
Yes, the sound is cliped and distorted

what is the difference between the above and below (beside the level of normalization)?
Nothing, if you don't need any other DSP function after you can use the decoder included normalize.

b66pak
31st January 2009, 20:25
how can i add delayaudio() and downmixing 3 or 4 or 5 channels to stereo to BeHappy's extensions?
_

L.E. a trim() extension too...
_

L.E.2 considering that mediainfo.dll is free for use in other apps it is posible to add an info button to display the audio track info?
_

tebasuna51
1st February 2009, 00:06
how can i add delayaudio() and downmixing 3 or 4 or 5 channels to stereo to BeHappy's extensions?

L.E. a trim() extension too...
You have the Delay and Split (Trim) boxes in (2) Tweak section.

You always can write your own avs scripts. We can't cover all the situations.

Select your desired downmix function:
function Dmix3Stereo(clip a) { # 3 Channels L,R,C or L,R,S
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
return MixAudio(flr, fcc, 0.5858, 0.4142)
}
function Dmix3Dpl(clip a) { # 3 Channels only L,R,S
flr = GetChannel(a, 1, 2)
sl = GetChannel(a, 3)
sr = Amplify(sl, -1.0)
blr = MergeChannels(sl, sr)
return MixAudio(flr, blr, 0.5858, 0.4142)
}
function Dmix4lStereo(clip a) { # 4 Channels L,R,C + LFE
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lfe = GetChannel(a, 4, 4)
clf = MixAudio(fcc, lfe, 0.2929, 0.2929)
return MixAudio(flr, clf, 0.4142, 1.0)
}
function Dmix4qStereo(clip a) { #4 Channels Quadro L,R,SL,SR
flr = GetChannel(a, 1, 2)
blr = GetChannel(a, 3, 4)
return MixAudio(flr, blr, 0.5, 0.5)
}
function Dmix4qDpl(clip a) { # 4 Channels Quadro L,R,SL,SR
flr = GetChannel(a, 1, 2)
bl = GetChannel(a, 3)
br = GetChannel(a, 4)
sl = MixAudio(bl, br, 0.2929, 0.2929)
sr = MixAudio(bl, br, -0.2929, -0.2929)
blr = MergeChannels(sl, sr)
return MixAudio(flr, blr, 0.4142, 1.0)
}
function Dmix4qDpl2(clip a) { # 4 Channels Quadro L,R,SL,SR
flr = GetChannel(a, 1, 2)
bl = GetChannel(a, 3)
br = GetChannel(a, 4)
sl = MixAudio(bl, br, 0.3714, 0.2144)
sr = MixAudio(bl, br, -0.2144, -0.3714)
blr = MergeChannels(sl, sr)
return MixAudio(flr, blr, 0.4142, 1.0)
}
function Dmix4sStereo(clip a) {# 4 Channels L,R,C,S
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.4142, 0.2929)
blr = GetChannel(a, 4, 4)
return MixAudio(lrc, blr, 1.0, 0.2929)
}
function Dmix4sDpl(clip a) { # 4 Channels L,R,C,S
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.4142, 0.2929)
sl = GetChannel(a, 4)
sr = Amplify(sl, -1.0)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 0.2929)
}
function Dmix5Stereo(clip a) { # 5 Channels L,R,C,SL,SR -> Stereo
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.3694, 0.2612)
blr = GetChannel(a, 4, 5)
return MixAudio(lrc, blr, 1.0, 0.3694)
}
function Dmix5Dpl(clip a) { # 5 Channels L,R,C,SL,SR -> dpl
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.3205, 0.2265)
bl = GetChannel(a, 4)
br = GetChannel(a, 5)
sl = MixAudio(bl, br, 0.2265, 0.2265)
sr = MixAudio(bl, br, -0.2265, -0.2265)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 1.0)
}
function Dmix5Dpl2(clip a) { # 5 Channels L,R,C,SL,SR -> dpl II
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.3254, 0.2301)
bl = GetChannel(a, 4)
br = GetChannel(a, 5)
sl = MixAudio(bl, br, 0.2818, 0.1627)
sr = MixAudio(bl, br, -0.1627, -0.2818)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 1.0)
}
function Dmix6Stereo(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.3694, 0.2612)
blr = GetChannel(a, 5, 6)
return MixAudio(lrc, blr, 1.0, 0.3694)
}
function Dmix6Dpl(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.3205, 0.2265)
bl = GetChannel(a, 5)
br = GetChannel(a, 6)
sl = MixAudio(bl, br, 0.2265, 0.2265)
sr = MixAudio(bl, br, -0.2265, -0.2265)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 1.0)
}
function Dmix6Dpl2(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.3254, 0.2301)
bl = GetChannel(a, 5)
br = GetChannel(a, 6)
sl = MixAudio(bl, br, 0.2818, 0.1627)
sr = MixAudio(bl, br, -0.1627, -0.2818)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 1.0)
}
function Dmix6StereoLfe(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3)
lfe = GetChannel(a, 4)
lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
mix = MergeChannels(lfc, lfc)
lrc = MixAudio(flr, mix, 0.2929, 1.0)
blr = GetChannel(a, 5, 6)
return MixAudio(lrc, blr, 1.0, 0.2929)
}
function Dmix6StereoLfe2(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.2929, 0.2071)
lfe = GetChannel(a, 4, 4)
lrc = MixAudio(lrc, lfe, 1.0, 0.2071)
blr = GetChannel(a, 5, 6)
return MixAudio(lrc, blr, 1.0, 0.2929)
}
function Dmix6DplLfe(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.2613, 0.1847)
lfe = GetChannel(a, 4, 4)
lrc = MixAudio(lrc, lfe, 1.0, 0.1847)
bl = GetChannel(a, 5)
br = GetChannel(a, 6)
sl = MixAudio(bl, br, 0.1847, 0.1847)
sr = MixAudio(bl, br, -0.1847, -0.1847)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 1.0)
}
function Dmix6Dpl2Lfe(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3, 3)
lrc = MixAudio(flr, fcc, 0.2646, 0.1870)
lfe = GetChannel(a, 4, 4)
lrc = MixAudio(lrc, lfe, 1.0, 0.1870)
bl = GetChannel(a, 5)
br = GetChannel(a, 6)
sl = MixAudio(bl, br, 0.2291, 0.1323)
sr = MixAudio(bl, br, -0.1323, -0.2291)
blr = MergeChannels(sl, sr)
return MixAudio(lrc, blr, 1.0, 1.0)
}


L.E.2 considering that mediainfo.dll is free for use in other apps it is posible to add an info button to display the audio track info?
I suppose, yes.

You can try, the BeHappy code is public and free. But you can always ask to MediaInfo before open BeHappy

b66pak
1st February 2009, 22:48
thank you very much...this is very usefull...the reason for asking for it is that if you don't know about this avs scripts and try to downmix anything but 5.1 you get an error (in megui is worse because you get same number of channels as you input!!!)...also i suggest to rename "downmix to stereo" to "downmix 5.1 to stereo" or "5.1 to stereo" to avoid this confusion...
i also noticed that megui don't use anymore EnsureVBRMP3Sync() when transcoding from .mp3...is this obsolete?
_

tebasuna51
2nd February 2009, 01:16
i also noticed that megui don't use anymore EnsureVBRMP3Sync() when transcoding from .mp3...is this obsolete?

I don't know if is obsolete because there are changes in buffer sizes in last AviSynth releases.

The decoder used with BeHappy/MeGUI (NicAudio) don't need this tool, maybe with DirectShowSource, but using DirectShow we can't know the decoder used.

buzzqw
2nd February 2009, 16:35
thanks for the downmix preset tebasuna51!

update in automkv!

BHH

Chumbo
17th February 2009, 16:05
I made some changes to fix a crash that was occurring on my system and may affect others. The executable is available in this download which also includes the up to date release notes and the changed class file.

http://www.mediafire.com/?dyndymymnmo2009-02-16
+ Added stability by handling exceptions in the main form's saveConfiguration method.
+ Added checks in the same method to make sure that items added to any collections do not already exist.
+ Project solution updated to Visual Studio 2008

@tebasuna51,
I sent you an email regarding the changes and the little mess I created on codeplex, i.e., extra Change Sets that can be removed if possible. Not sure if you got it or not.

tebasuna51
20th February 2009, 12:28
@Chumbo
Restored the sources in Codeplex, but I don't know how delete the empty/bad extra Change Sets.
Could you explain your crash (OS, AviSynth version, ...)?
I always compile using .NET (compile.bat), I don't know if the change to Visual Studio 2008 can affect others.

Some minor changes added:
- Kurtnoise fix (http://forum.doom9.org/showthread.php?p=1231145#post1231145) for AvisynthWrapper.cs
- Low limit for NicAacEnc to 8 Kb/s (NeroDigitalEncoder.cs)
- SSRC SpeedUp and SlowDown methods (SSRC.extension)
- NicAc3Source internal downmix (simple DolbyProLogic) to stereo, this work with any source channels. (NicAudio.extension)

Chumbo
20th February 2009, 14:55
@Chumbo
Restored the sources in Codeplex, but I don't know how delete the empty/bad extra Change Sets.
Could you explain your crash (OS, AviSynth version, ...)?
I always compile using .NET (compile.bat), I don't know if the change to Visual Studio 2008 can affect others.

Some minor changes added:
- Kurtnoise fix (http://forum.doom9.org/showthread.php?p=1231145#post1231145) for AvisynthWrapper.cs
- Low limit for NicAacEnc to 8 Kb/s (NeroDigitalEncoder.cs)
- SSRC SpeedUp and SlowDown methods (SSRC.extension)
- NicAc3Source internal downmix (simple DolbyProLogic) to stereo, this work with any source channels. (NicAudio.extension)
I don't know that we can. I've tried everything over the last few days to get rid of the change sets that are not needed. Anyway, I hope you didn't get rid of the change in set 18494 because that one is fine.

The crash I was getting was this:
http://img16.imageshack.us/img16/2962/behappycrashti5.jpg
Which is why I put checks in the fix I added to make sure the collection items check for already existing items prior to adding because that's what's causing this exception.

This started happening after one of the builds last year but I was too lazy to check into it until now. It happened every time I closed the app which meant I lost all my state changes, e.g., the queue.

tebasuna51
20th February 2009, 16:33
<AudioSource UniqueID="58ab9132-50c8-11dc-8314-0800200c9a66"> is defined for RaWavSource in NicAudio.Extension.
Maybe you have a old RaWav.extension not needed now.
Also RaWav.dll must be deleted in AviSynth plugins, now is fully integrated in NicAudio.dll

The set 18532 is the 18494 with the 4 changes in my post.

Chumbo
20th February 2009, 19:21
<AudioSource UniqueID="58ab9132-50c8-11dc-8314-0800200c9a66"> is defined for RaWavSource in NicAudio.Extension.
Maybe you have a old RaWav.extension not needed now.
Also RaWav.dll must be deleted in AviSynth plugins, now is fully integrated in NicAudio.dll

The set 18532 is the 18494 with the 4 changes in my post.
Good to know and you're probably right. Thanks.

b66pak
21st February 2009, 19:20
@tebasuna51 thank for update but where can i find it?
_

tebasuna51
22nd February 2009, 03:05
@tebasuna51 thank for update but where can i find it?
_
There are very little changes to do a new official release.

You have the BeHappy.exe with Chumbo changes in the Chumbo post (set 18494).

The Kurnoise patch don't affect to BeHappy, the NicAudio.extension and SSRC.extension can be downloaded from CodePlex (Source Code) and put in \extensions folder.

And, if you need the low limit for NeroAAcEnc to 8 Kb/s instead 16 Kb/s, you always can download the full set 18532 and double click to 'compile.bat' to obtain the last BeHappy.exe (in \release subfolder).

b66pak
22nd February 2009, 19:21
thanks...
_

Chumbo
25th February 2009, 04:36
I've been wanting this for awhile now and had some time tonight to work on it. The test build is available here (http://www.mediafire.com/?ttzl5ghuyxy).

2009-02-24 (Chumbo)
+ Added process priority control. Available when jobs are started and
persists through all the jobs in the queue. Defaults to Idle every time
a job or set of jobs are started.

@tebasuna,
I've not checked anything in yet to codeplex. I figured I'd wait until a few have used it and I've received some feedback. I used your latest branch as the base for this to ensure all the latest changes are included.

Chumbo
28th February 2009, 03:24
Here's another update. Build is available here (http://www.mediafire.com/?mwglx0zzoeg).

2009-02-27 (Chumbo)
+ Fixed a bug. It's possible the creation of the .State file may fail due to the use of an enumerated type. I changed it to use an int since it can be cast easily and works fine.
+ Added exception handling in the SaveToFile() method so if a problem occurs we'll be made aware of it in the future.
+ (forgot this one in the linked rar) Fixed the issue where selecting the priority before the encoder actually starts (that small delay between hitting Start and, for example, aften starts) would not affect the priority.

@tebasuna,
I'll check this code base in either later today or tomorrow.

[EDIT]Source updated under change set 18658. A new release is now available as 0.2.3.38071 with the release notes and .exe.

~bT~
4th March 2009, 03:16
has the flac profile been removed from the latest version?
also, there is no longer an sse2 version of neroaacenc.exe. if i tick sse then it fails.

tebasuna51
4th March 2009, 12:37
has the flac profile been removed from the latest version?
You need the flac.extension file present in last full release (set 18532).
also, there is no longer an sse2 version of neroaacenc.exe. if i tick sse then it fails.
Now there are only a NeroAacEnc version.
Check the sse2 box only if you have the old NeroAacEnc with two versions.

ANGEL_SU
27th March 2009, 17:30
Very nice tool, but i found a small problem on its GUI. BeHappy cannot remember GUI location & size. After several restart, it is either hidden or maximized(not adjustable).
I can read a litte of the source code. It should be better to initial MainForm position at (0, 0). Also, to apply its size firstly, and next, its location. I have tested, and now it displays much normal.

cobo
30th July 2009, 06:02
I'm trying to convert 5.1 AC3 track from a PAL DVD to NTSC. I have split it into 6 16bit mono WAV files with BeLight. Is there some way to do the 25 to 23.97 conversion with BeHappy that will result in timestretched 16bit mono WAV files? I've only figured out how to get 32bit WAV files with WAV Writer which I can't play because they are unknown to DirectShow. I wan't to be able to encode back into AC3 using Sonic encoder so I can set the metadata and be sure of correct AC3 encoding.

BTW everytime I start the queue I get the message: "This application has failed to start because OptimFrog.dll was not found. Re-installing the application may fix this problem." Why is that? I've searched for the dll, but haven't been able to find it.

tebasuna51
30th July 2009, 10:36
I'm trying to convert 5.1 AC3 track from a PAL DVD to NTSC. I have split it into 6 16bit mono WAV files with BeLight. Is there some way to do the 25 to 23.97 conversion with BeHappy that will result in timestretched 16bit mono WAV files?
Of course, the last [3] DSP function checked must be 'Convert Sample To 16 bit int' (maybe Sonic can also accept 24 bit int with better resolution)

And select 'Wav Split @ Mono wav's' at [4] Destination format

BTW everytime I start the queue I get the message: "This application has failed to start because OptimFrog.dll was not found. Re-installing the application may fix this problem." Why is that? I've searched for the dll, but haven't been able to find it.

Seems your Bass package is incomplete.
You can obtain OptimFrog.dll + bass_ofr.dll (http://www.un4seen.com/filez/2/bass_ofr24.zip) from http://www.un4seen.com/
BTW, if you don't need decode OptimFROG encoded files the best solution is delete bass_ofr.dll from your ...\AviSynth 2.5\plugins folder.
To avoid overload of AviSynth plugins only put in your ...\AviSynth 2.5\plugins folder the really needed plugins

cobo
30th July 2009, 19:02
Thanks for the explanation tebasuna51. That works very well. Yes, Soft Encode does seem to accept 24bit input files.

I geuss I couldn't turn up any references to OptimFrog.dll because I was spelling it wrong when I searched.

cobo
2nd August 2009, 00:47
What bitdepth does NicAc3Source return? Does it depend on the AC3 file? What bitdepths is NicAc3Source capable of putting out?