PDA

View Full Version : two codec questions


drizzle
03-31-2005, 12:22 AM
I did some searches and didn't see these questions addressed.

1) Since Windows Media player 7, Microsoft has bundled an ACM MP3 codec.
two flavors - L3CODECA.ACM which was limited to lower rates, and with WMP10, L3CODECp.ACM, a full function Fgh MP3 codec.

I'm encoding some audiobooks at low bit rates which the Fgh encoder does much better than LAME. How do I tell dbpowerAMP to use the ACM codec for encoding rather than LAME? I see you've got an option to callout to command line encoders, but I'd rather use the ACM codec I've already got on my system.

2) I'm also experimenting with the WMA9 Voice codec. According to the Microsoft documentation here (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmcodecs/htm/usingthewindowsmediaaudio9voicecodec.asp) you need to tell it what mode to operate in, voice only, music, or mixed.

The g_wszWMACMusicSpeechClassMode property is the mode of the voice codec. A value of 1 informs the codec that the content is voice-only, a value of 2 has the codec determine the mode on its own, and any other value informs the codec to use music mode.

I encoded an audiobook that had a music passage which came out horrible, which makes me wonder if you were forcing voice-only mode.

Are you? Any chance you could add a setup option to let the user choose?

drizzle
03-31-2005, 10:29 AM
Guess I wasn't using the right search keywords.

I found the answer to my first question...

The Fraunhofer ACM codec is available under the 'Convert to Wave' sub-menu.

LtData
03-31-2005, 10:51 AM
As for the WMA voice, after you select "WMA 9.1" or "WMA 9" you can then select the type of wma file you want: lossless, VBR, normal, or voice.

drizzle
03-31-2005, 11:28 AM
Yes, but once I select the WMA9 Voice codec, I don't seem to have any control over it's three modes (as defined by the Microsoft docs I referenced and quoted). That's what I was asking about.

Related to my question on the Fraunhoffer ACM codec...

This codec has two modes - a fast mode (the default) and a slower high-quality mode. The interface CDex provides to the ACM codec includes a check-box to enable the high-quality mode, but I can't figure out how to enable this via dbpoweramp's interface. Is there a way?

Thanks!

Spoon
03-31-2005, 03:41 PM
For music wouldn't normal wma compression (or wma pro) be better than wma voice?

drizzle
03-31-2005, 05:15 PM
Absolutely.

However, this is an audiobook that has interspersed musical passages. The "mixed' mode of this codec, wherein it switches between algorithms based upon the spectral content(?) is designed for exactly this sort of situation. (Or for talk shows with musical intros, or for presentations with interludes, or...)

The music isn't the focus of the asset, the voice segment is, but you don't want the music trashed by running it through the voice algorithm - hence the 'mixed' mode.

Allowing the user to select option (1) to force voice-only mode in the case where extraneous room noise triggers the music algorithm, or option (2) to select mixed mode for cases like mine is useful. The third case (any other value) is just for orthogonality in their interface, I guess - though there is likely a use for it somewhere.

So...

Any chance you can give the user the ability to specify the mode when using this codec?

And the similar question, what about access to the "high-quality" mode when using the Fraunhoffer ACM codec?

drizzle
04-04-2005, 12:41 PM
Does the lack of response mean:

that you are thinking about my requests,?

that you have been too busy to respond,?

or that that it's just to trivial to bother with?

neilthecellist
04-04-2005, 01:50 PM
whoa, don't start any flames here.

I just found this thread, ok? it's only been 4 days, gosh....

iTunesIsEvil
04-04-2005, 03:01 PM
whoa, don't start any flames here.

I just found this thread, ok? it's only been 4 days, gosh....
I didn't think that sounded very 'flame-ish' at all... He was just asking what was going on. You'll notice that when he first posted (3/31) he was given quite a few responses very quickly on the same day. So he was probably just wondering why he hasn't recieved any since then. That would throw me off as well.

Drizzle: If dbPowerAmp wont do what you want, why not download the Windows Media Encoder itself? Perhaps it has the ability to do what you need. Find it, and information about it here... (http://www.microsoft.com/windows/windowsmedia/9series/encoder/default.aspx)

drizzle
04-04-2005, 03:49 PM
No I'm not flaming; waited three days, wanted to know if I should give up.

I *have* tried the MS Encoder package.

While both the GUI encoder and the commandline encoder support selecting the mode, (1) the GUI isn't really set up for batch converts, (2) the commandline encoder is a slow .vbs script hack, and (3) neither of them will propogate ID3 info.

I have also spent quite a bit of time looking for other options, including loading the SDKs and looking into possibly coding something myself (last resort). The 'shortest' path still seems an enhancement to an existing application that supports using the voice codec (there aren't many). If the sources for your WMA9 converter dll were available, I'd update it myself (I "know" you already have the IPropertyBag interface to the encoder, it's just a few lines of code to set the property)

By the way, all the info I've examined regarding the WMA9 Voice codec is that it only does 1-pass CBR encoding. Your GUI correctly greys out the VBR option, but leaves the 2-pass check-box enabled. (Oh, how I wish that check box meant "mixed mode" when using the voice codec - hint hint)

And for what its worth, between having access to the High Quality mode of the Fgh encoder and access to the mode setting of the Voice encoder, I'm much more interested in the Voice encoder - it blows the Fgh encoder away at those low bit rates.

Edited:
I guess I should mention I'm using the V9, not the V9.1 (XP only) WMA kit.

drizzle
04-04-2005, 04:16 PM
FYI...

static const WCHAR *g_wszWMACMusicSpeechClassMode = L"MusicSpeechClassMode";

HRESULT hr;
VARIANT varg;

::VariantInit(&varg);
varg.vt = VT_I4;
varg.lVal = 2; //set mixed mode encode
hr = pPropertyBag->Write( g_wszWMACMusicSpeechClassMode, &varg );

Spoon
04-04-2005, 05:16 PM
The best I can do is add to a wish list, which is a long way off (I am writing stuff today which was requested many months ago).

drizzle
04-04-2005, 05:45 PM
Thanks!

Any chance you might release the sources for your WMAV9 dll so I could do a private build, or does it have build dependancies on the rest of your code base?

Spoon
04-05-2005, 03:24 PM
Serious dependancies (I have a self written collection of classes of perhaps 20-40 classes).

drizzle
04-05-2005, 03:53 PM
Sigh...

OK. I hope you can get to it soon.

Thanks, again