jcsston
Sep 14 2004, 19:02
Here's diskwriter plugin for foobar2000 v0.8.2 that writes WMA (Windows Media Audio) files.
Supported bitrates are CBR 64-192kbps with Stereo 44kHz.
All tags are directly copied to the wma,
the following are translated to the WMP tag names.
artist
genre
album
lyrics
year
date
tracknumber
Download Page
neoufo51
Sep 14 2004, 21:00
Holy crap, I've been waiting for something like this. Will test right away.
Hmmm. Encodes to V7/V8.
I don't suppose it would be easy to make this encode to the V9 format, would it?
jcsston
Sep 14 2004, 22:06
It should encode to WMA9.
In WMP8 the Audio Codec is reported as 'Windows Media Audio 9
64 kbps, 44 kHz, stereo 1-pass CBR' and it's defined as WMA9 in the internal profiles used for encoding.
jsheridan
Sep 14 2004, 23:44
QUOTE(jcsston @ Sep 14 2004, 08:06 PM)
It should encode to WMA9.
In WMP8 the Audio Codec is reported as 'Windows Media Audio 9
64 kbps, 44 kHz, stereo 1-pass CBR' and it's defined as WMA9 in the internal profiles used for encoding.
He ment the other two V9 Codecs, WMA9 Pro, and WMA9 Lossless
Supporting them via the plugin would be great.
jcsston
Sep 15 2004, 03:09
foo_wmaenc v1.1I've updated the plugin to use custom profiles, which can be loaded from a file or cut-n-pasted in.
Profile GeneratorClick the Add buton, pick Stream. Now select Stream 1 and pick your audio codec and format settings.
It's not required but it's nice to give the profile a name (it will show up in fb2k).
Save the profile, then use the Load button in the foo_wmaenc settings dialog to load the saved .prx file.
With the custom profiles you can encode with Pro, Lossless, and VBR.
jsheridan
Sep 15 2004, 03:36
QUOTE(jcsston @ Sep 15 2004, 01:09 AM)
foo_wmaenc v1.1I've updated the plugin to use custom profiles, which can be loaded from a file or cut-n-pasted in.
Profile GeneratorClick the Add buton, pick Stream. Now select Stream 1 and pick your audio codec and format settings.
It's not required but it's nice to give the profile a name (it will show up in fb2k).
Save the profile, then use the Load button in the foo_wmaenc settings dialog to load the saved .prx file.
With the custom profiles you can encode with Pro, Lossless, and VBR.
Great work, this plugin was long overdue (Its WMA, but still should be there for anyone who needs it)
Few remarks:
1. Built-In Lossless preset produces an empty file here from some reason
2. The custom option is great, but i would still add some of the more useful presets like VBR modes of the WMA std, basic Pro modes, and ofcourse the lossless to the slider (or to a 2nd slider with a radiobox (Std/Pro/Lossless)
neoufo51
Sep 15 2004, 03:52
QUOTE(jsheridan @ Sep 15 2004, 02:36 AM)
2. The custom option is great, but i would still add some of the more useful presets like VBR modes of the WMA std, basic Pro modes, and ofcourse the lossless to the slider (or to a 2nd slider with a radiobox (Std/Pro/Lossless)
I totally agree. We love the work you are doing on this long overdue plugin, but its a pain having to open up another exe file and have to change the custom profile everytime we need to make a new preset when we could just easily select it on a slider. I want to be able to add presets to my diskwriter with the greatest of ease.
Do that and the plugin will be powerful and easy to use.
bluenet
Sep 15 2004, 06:31
Foobar crash when I use this plugins.
OS: Windows Server 2003 Simplified Chinese
I had install foobar in a new directory, but crash again.
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 00D214BEh
Access violation, operation: read, address: 00000000h
Call path:
diskwriter_process::g_threadfunc=>diskwriter::process_samples
This is the first crash logged by this instance.
Code bytes (00D214BEh):
00D2147Eh: E9 24 03 00 00 8B 4D E4 83 C1 48 51 68 24 45 D4
00D2148Eh: 00 68 5C 0A D4 00 8B 55 E4 8B 42 14 50 E8 07 06
00D2149Eh: 00 00 83 C4 10 89 45 F8 8B 4D E4 83 C1 4C 51 68
00D214AEh: B0 02 D4 00 8B 55 E4 8B 42 48 8B 4D E4 8B 51 48
00D214BEh: 8B 0A 50 FF 11 89 45 F8 8B 55 E4 83 7A 44 00 74
00D214CEh: 1C 8B 45 E4 8B 48 44 51 8B 55 E4 8B 42 4C 8B 4D
00D214DEh: E4 8B 51 4C 8B 0A 50 FF 51 1C 89 45 F8 C7 45 F4
00D214EEh: 00 00 00 00 8D 55 F4 52 68 1C 09 D4 00 8B 45 E4
Stack (01BDFDE0h):
01BDFDC0h: 00000000 00000000 00000000 00000000
01BDFDD0h: 00000000 00000000 00000000 00000000
01BDFDE0h: 00D402B0 00DEDC2C 780DAC9E 00DB3A14
01BDFDF0h: 00DB3A08 00DEDBE0 00DB3A08 01BDFE20
01BDFE00h: 086207EE 00DA0154 80040295 00000000
01BDFE10h: 01BDFE20 00D212EC 00DEDBE0 FFFFFFFF
01BDFE20h: 01BDFEE0 00D29174 003CFF10 00000000
01BDFE30h: 00D9A8AA 0000001F 0000001F 00DA0140
01BDFE40h: 00013780 00D9FDC0 00D9FCB8 00DEDBE0
01BDFE50h: 003CFEC0 00DE6C38 00DEDBE0 00000002
01BDFE60h: 0000AC44 00DD9018 00DD90A0 00AB87B6
01BDFE70h: 00DD9018 10001DE2 00D9FD70 00000000
01BDFE80h: 00000004 003CFEF8 00000004 01BDFE9C
01BDFE90h: 00D2AF83 00D628A0 003CFEF8 01BDFEB4
01BDFEA0h: 00D2B123 00D628A0 00D628A0 001A3A00
01BDFEB0h: 00000010 001A3A00 0000001B 00DA0140
01BDFEC0h: 00000002 001A3A2A 009AD420 0000001B
01BDFED0h: 00D9FDC0 01BDFEF0 00000000 0000AC44
01BDFEE0h: 01BDFEF4 009A3C58 01BDFF58 00000000
01BDFEF0h: 00000020 01BDFFA4 009A3A29 01BDFF58
Registers:
EAX: 00000000, EBX: 00000001, ECX: 00DEDBE0, EDX: 00000000
ESI: 00D9FCB8, EDI: 00D9FDC0, EBP: 01BDFE10, ESP: 01BDFDE0
Crash location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Loaded modules:
foobar2000 loaded at 00400000h - 00452000h
ntdll loaded at 77F30000h - 77FFA000h
kernel32 loaded at 77E10000h - 77F2D000h
USER32 loaded at 77CD0000h - 77D5E000h
GDI32 loaded at 77BD0000h - 77C14000h
ole32 loaded at 77150000h - 77275000h
msvcrt loaded at 77B70000h - 77BC4000h
ADVAPI32 loaded at 77D60000h - 77E00000h
RPCRT4 loaded at 77C20000h - 77CC5000h
COMCTL32 loaded at 70AD0000h - 70BB6000h
SHLWAPI loaded at 77280000h - 772C9000h
utf8api loaded at 10000000h - 1000D000h
comdlg32 loaded at 761A0000h - 761E5000h
SHELL32 loaded at 77370000h - 77B2C000h
IMM32 loaded at 76180000h - 7619D000h
LPK loaded at 63090000h - 63099000h
USP10 loaded at 72EE0000h - 72F3E000h
foo_albumlist loaded at 00940000h - 0094B000h
foo_ape loaded at 00950000h - 0096F000h
foo_cdda loaded at 00970000h - 0097E000h
foo_clienc loaded at 00980000h - 0098B000h
foo_console loaded at 00990000h - 00997000h
foo_diskwriter loaded at 009A0000h - 009B2000h
WINMM loaded at 769E0000h - 76A09000h
foo_dsp_extra loaded at 00A40000h - 00A55000h
foo_flac loaded at 00A60000h - 00A7C000h
foo_id3v2 loaded at 00A80000h - 00AB0000h
MSVCP60 loaded at 780C0000h - 78121000h
foo_input_std loaded at 00AB0000h - 00B52000h
MSACM32 loaded at 77B40000h - 77B54000h
foo_masstag loaded at 00B60000h - 00B74000h
foo_mod loaded at 00B80000h - 00B89000h
BASS loaded at 00B90000h - 00BEA000h
foo_output_std loaded at 00BF0000h - 00BF9000h
foo_out_dsound_ex loaded at 00C00000h - 00C09000h
DSOUND loaded at 51080000h - 510E1000h
VERSION loaded at 77B60000h - 77B68000h
foo_out_ks loaded at 00C20000h - 00C2B000h
SETUPAPI loaded at 76480000h - 765EC000h
foo_read_http loaded at 00C30000h - 00C39000h
WS2_32 loaded at 71B60000h - 71B78000h
WS2HELP loaded at 71B50000h - 71B58000h
foo_rgscan loaded at 00C40000h - 00C4D000h
foo_spc loaded at 00C50000h - 00C61000h
foo_speex loaded at 00C70000h - 00C88000h
foo_ui_std loaded at 00C90000h - 00CA7000h
foo_unpack loaded at 00CB0000h - 00CE1000h
OLEAUT32 loaded at 770D0000h - 7714D000h
foo_vis_manager loaded at 00CF0000h - 00CF8000h
foo_wavpack loaded at 00D00000h - 00D12000h
foo_wmaenc loaded at 00D20000h - 00D4F000h
WMVCore loaded at 08530000h - 0872D000h
WMASF loaded at 589E0000h - 58A19000h
QUARTZ loaded at 35500000h - 35708000h
uxtheme loaded at 00E60000h - 00E93000h
LgWndHk loaded at 00EF0000h - 00EF7000h
MSCTF loaded at 74430000h - 7447B000h
apphelp loaded at 75D60000h - 75D82000h
msctfime loaded at 00F50000h - 00F7B000h
Msimtf loaded at 74400000h - 74428000h
LgMsgHk loaded at 010D0000h - 010DB000h
CLBCatQ loaded at 76EF0000h - 76F6E000h
COMRes loaded at 76F70000h - 770CA000h
cscui loaded at 76430000h - 7647B000h
CSCDLL loaded at 76410000h - 7642C000h
browseui loaded at 75DB0000h - 75EB6000h
ntshrui loaded at 76830000h - 76853000h
NETAPI32 loaded at 71BA0000h - 71BF3000h
USERENV loaded at 75870000h - 75925000h
shdocvw loaded at 76860000h - 769B7000h
MPR loaded at 71B30000h - 71B41000h
drprov loaded at 75D90000h - 75D97000h
ntlanman loaded at 5F500000h - 5F50E000h
NETUI0 loaded at 5FC20000h - 5FC34000h
NETUI1 loaded at 5FBE0000h - 5FC11000h
SAMLIB loaded at 5D000000h - 5D010000h
davclnt loaded at 75DA0000h - 75DA9000h
wiashext loaded at 5A0C0000h - 5A147000h
gdiplus loaded at 70CC0000h - 70E6C000h
WININET loaded at 75FE0000h - 7607A000h
CRYPT32 loaded at 760A0000h - 76136000h
MSASN1 loaded at 76080000h - 76092000h
qcap loaded at 1C200000h - 1C241000h
MSVFW32 loaded at 73A70000h - 73A8F000h
qasf loaded at 1C900000h - 1C92D000h
imagehlp loaded at 76B70000h - 76B98000h
dbghelp loaded at 6D830000h - 6D8D1000h
Stack dump analysis:
Address: 00D402B0h, location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Symbol: "foobar2000_get_interface" (+0000143Dh)
Address: 780DAC9Eh, location: "MSVCP60", loaded at 780C0000h - 78121000h
Symbol: "std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::assign" (+0000006Bh)
Address: 086207EEh, location: "WMVCore", loaded at 08530000h - 0872D000h
Symbol: "WMCreateProfileManager" (+00000069h)
Address: 00D212ECh, location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Address: 00D29174h, location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Address: 00AB87B6h, location: "foo_input_std", loaded at 00AB0000h - 00B52000h
Address: 10001DE2h, location: "utf8api", loaded at 10000000h - 1000D000h
Symbol: "uCallStackTracker::uCallStackTracker" (+00000000h)
Address: 00D2AF83h, location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Address: 00D2B123h, location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Address: 009AD420h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00002F40h)
Address: 009A3C58h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Address: 009A3A29h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Address: 009AB508h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00001028h)
Address: 009AB4E8h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00001008h)
Address: 009AB298h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00000DB8h)
Address: 009AB2C0h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00000DE0h)
Address: 009AB2ACh, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00000DCCh)
Address: 009AB2C0h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00000DE0h)
Address: 009AB2ACh, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00000DCCh)
Address: 009AB2E4h, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Symbol: "foobar2000_get_interface" (+00000E04h)
Address: 009A2F7Bh, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Address: 77E1A990h, location: "kernel32", loaded at 77E10000h - 77F2D000h
Symbol: "FlsSetValue" (+00000779h)
Address: 77E40ABCh, location: "kernel32", loaded at 77E10000h - 77F2D000h
Symbol: "ValidateLocale" (+00000170h)
Address: 77E50110h, location: "kernel32", loaded at 77E10000h - 77F2D000h
Symbol: "VerSetConditionMask" (+00000466h)
Address: 009A2F1Ch, location: "foo_diskwriter", loaded at 009A0000h - 009B2000h
Version info:
foobar2000 v0.8.3
UNICODE
jsheridan
Sep 15 2004, 07:00
QUOTE(bluenet @ Sep 15 2004, 04:31 AM)
Foobar crash when I use this plugins.
OS: Windows Server 2003 Simplified Chinese
I had install foobar in a new directory, but crash again.
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 00D214BEh
Access violation, operation: read, address: 00000000h
Call path:
diskwriter_process::g_threadfunc=>diskwriter::process_samples
This is the first crash logged by this instance.
Code bytes (00D214BEh):
Registers:
EAX: 00000000, EBX: 00000001, ECX: 00DEDBE0, EDX: 00000000
ESI: 00D9FCB8, EDI: 00D9FDC0, EBP: 01BDFE10, ESP: 01BDFDE0
Crash location: "foo_wmaenc", loaded at 00D20000h - 00D4F000h
Version info:
foobar2000 v0.8.3
UNICODE
Just an idea, did you try reinstalling the Windows Media 9 Codecs first?
jsheridan
Sep 15 2004, 08:32
Another bug report:
1. Trying to encode an unsupported source stream results in no error and no resulting file.
For instance a 6ch AC3 --> WMA Lossless
An error in the console like:
"ERROR (foo_wmaenc) : Invalid number of channels, only mono and stereo are supported" should be placed
2. Encoding files to WMA leaks memory by not killing the WMVCore.DLL!WMCreateIndexer Threads (4 of them if i'm correct), so each time i encode a new file, it opens two new threads while not closing the older ones.
Edit: Memory leak, item (2)
neoufo51
Sep 15 2004, 17:55
And also...a lot of people don't like using two exe files for downloading music. Keep the dll as an easy to use, all-in-one WMA encoding solution.
bluenet
Sep 19 2004, 02:03
Is it my system's problem.
And another question, is this plugins support Unicode? I convert some files contain Chinese character, but it become "001.02.ä¸éé¦.wma"
guruboolez
Sep 19 2004, 02:48
looks nice

But I can't find "VBR-2 pass" mode for WMA professionnal. Is it normal?
Anyway, interesting component!
guruboolez
Sep 19 2004, 04:59
Lossless encoding doesn't work on my computer either.
Tagging issues:
original = Harmonies poétiques et religieuses · Bénédiction de Dieu dans la solitude
output => Harmonies poétiques et religieuses · Bénédiction de Dieu dans la solitude
This plug in crash when i'm loading profile(192kbps 2-pass VBR

)...
jcsston
Sep 29 2004, 01:55
QUOTE(neoufo51 @ Sep 24 2004, 01:16 PM)
Not really, I've just been busy with rl and the plugin works fine for the small purpose I made it for

I found sometime to fix the Unicode problem and release the thread leak fix.
I've also released the source code under the LGPL license.
New in v1.2:
- Thread leak fixed, 2 rogue threads would be left going for every encoded file.
- Unicode support fixed. For filenames and tags.
I wouldn't expect any two-pass modes to work. It only works in one pass.
Download
Wow, thanks for jcsston!
I will test this plugin if i free.
jsheridan
Sep 30 2004, 12:00
QUOTE(jcsston @ Sep 28 2004, 11:55 PM)
I found sometime to fix the Unicode problem and release the thread leak fix.
I've also released the source code under the LGPL license.
Thanks for fixing the above issues, its working great.
@jcsston/
All bitrate works, except the Lossless mode, output nothing but use more memory.
But the lossless mode still can work if load the Lossless profile.
VBR 1-pass can't work, same as the lossless mode.
Quality-base VBR work.

Here's the report:
ERROR (foo_wmaenc) : CWMAException Message: 'Unable to connect source and WM Asf Writer filters.' Error Code: 'No combination of intermediate filters could be found to make the connection.' - 0x80040217
INFO (foo_wmaenc) : Encoding took 6094 milliseconds, speed 0.0x
ERROR (foo_diskwriter) : Conversion failed.