[FEB 22] Nitrogen 0.3.2 - the new MP3/OGG player for WM5/WM6

Search This thread


Senior Member
Aug 30, 2008
Nitrogen 1.0.0 has been released! Please visit the new official thread! This thread will contain the discontinued version of Nitrogen (0.3.2).


Microfi Nitrogen 0.3.2 (Feb 22, 2009)
Choose your platform below and start your download!

Writing, designing and testing Nitrogen takes me time and efforts.
So, if you use it and like it, please donate and support future versions development!;)

Now with pre-installed QVGA/VGA/WQVGA/WVGA skins (thanks to BDWN):
Download installable CABs (English)
~~ Nitrogen for Windows Mobile 5 ~~
~~ Nitrogen for Windows Mobile 6 ~~

Notice: if you use a device with different resolution (e.g. 320x320), update the skin with a compatible one from the skins page.

Download skin toolbox
~~ Skin toolbox for Nitrogen 0.3 (Win32) 1.0.0 ~~

Download source
~~ Source code (Visual Studio 2005 solution) ~~

If you have trouble on downloading through Google Code, try our SourceForge page (0.3 not available yet).

I'd like that an experienced user built around 6 common presets and posted the preset.eql file here so that I can include it in a future release.

For more skins, visit the official skin thread!

Microfi Nitrogen is a native Windows Mobile application (unmanaged code) that allows you to play MP3/OGG songs stored on your Pocket PC device.
It features a file browser, full skin support, "Shuffle" and "Repeat" modes, a 10-band equalizer with preset support, a built-in sleep mode and a command to blank screen to prevent energy waste while playing music. Nitrogen uses the MAD decoder, which is opensource. As the official releases of MAD for Pocket PC seem to be discontinued, Nitrogen uses the libraries from an opensource player (GSPlayer).
Nitrogen was build due to the lack of finger-friendly players for Pocket PC (you have to use stylus even for simple tasks). It features large buttons and you can browse among your playlist by drawing circles on the screen (tapping in the appropriate space). In future releases the program will be expected to have other extensions support and more features, but such things are still being tested to ensure stability and efficiency.

The reason Nitrogen is opensource is simple: I've gotten a complete MP3/OGG decoder (MAD and OVD), besides having seen in GSPlayer source the way it's used. It would not be fair if I asked people to pay for a work that was mostly done by other people.

Notice: Nitrogen is still a beta release! This means that you might find bugs and a few glitches. Please feel free to post your feedback. Also, expect to see several updates shortly, so watch this post!

:: High-quality MP3 playback with MAD decoder;
:: High-quality OGG playback with OVD decoder;
:: Intuitive and customizable user interface with full skin support;
:: 10-band equalizer with preset support;
:: Large buttons that makes it easy to perform common tasks without stylus;
:: File browser that scans directories to make playlists;
:: "Shuffle" and "Repeat" modes;
:: Adjustable sleep timer;
:: Amazingly fast to load and to play;
:: Command to blank screen while playing to save energy;
:: Native C++ code: no need for .NET frameworks;
:: Extremely lightweight: less than 2mb of storage, around 1.5mb of RAM;
:: Saves the settings in a separate file - does not fill the registry with useless data;
:: Ability to create custom playlists from different directories;
...and much more!

Thanks to the developers of
- MAD library for Pocket PC (Underbit Technologies), that provided a rich and easy to use API for MP3 playback.
- GSPlayer (GreenSoftware), that showed me how to use the MAD library.
... and thanks to the beta testers that kindly post their feedback to help the improvement of the program!

Coming soon
:: (DONE!) File association (MP3, OGG);
:: (DONE!) Kinetic scrolling (haptic feedback, or something like this);
:: (IN PROGRESS) Track fast-forward and rewind;
:: (For developers) Control Nitrogen with Windows messages;
:: Improve playlists;
:: In-call bugfixes;
:: Resume playback after you restart the program;
:: Block ALL keys while display is off;
:: Multilanguage support;
:: Customize hardware keys;
:: Auto display off;


Artistic minds: Download the skin toolbox, design your skins and post them in the skins page:)!

Last edited:


Senior Member
Aug 30, 2008
Change log


:: I have questions concerning skins. Where should I ask?
:: :: There is a thread intended for skins questions/requests/comments. Take a look on the FAQ contained there, and if you still have questions, post them on that thread.

:: I want Nitrogen to keep playing after I press the device's "Power" button to blank screen.
It's known that Nitrogen keeps playing if you are using headphones, but not when you're listening to songs through the loudspeaker. That's because the device turns off the loudspeaker while the display is off. You can fix this by setting the following registry entry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\State\Unattended\wav1: = 0
And Nitrogen will be playing properly after you soft reset your device.
NOTICE: I don't know the side-effects of this tweak. Use this at your own risk!

:: How does the Album Art support work?
As other freeware players, Nitrogen loads the "Folder.jpg" file (created by Windows XP/Vista to display the album in the folder while viewing in "Thumbnails" mode) located in the album directory, and displays it on the screen.

:: I tap the previous/next song button but the music only changes the title. Is that a bug?
:: :: It's not a bug, but a feature of Nitrogen. This allows you to select your desired song before playing it, without having to stop the current song. If you don't like this behaviour, check the "Change playing song through previous/next button" option in the Settings dialog.

:: I want to see the texts antialiased but I don't want to enable ClearType on my device.
:: :: Check the "Force ClearType rendering" option in the Settings dialog, and the texts in the main window, media browser and equalizer will become antialiased.

:: Rather than build a whole new player, why don't you take you UI design and implement it as a skin for the Mortplayer which uses the same MAD library and has everything else already DONE?
:: :: I don't know if it's a good or bad aspect of my personality, but sometimes I don't like to use the things that are ready-made. My intention on building Nitrogen is just to have some fun and improve my knowledge on C++ programming language. MortPlayer is great, and I'd be satisfied if my player worked like his. My intention is not the competition nor copying his work, though. The ones that really win with this situation are you, users. This way, you'll be able to choose among several players and enjoy the one that you identify more with.

:: I can't predict how the hell this wheel work.
:: :: If you use the default skin, tap and drag the upper half of the wheel to change the playlist index. Tap and drag the lower half of the wheel to change the volume. This behaviour is customizable through the Skin Maker and in a future release it will be customizable through the player itself.

:: Why are there too few skins (or why there is no skin that fits my resolution)?
:: :: The player is a very new project, and the skin support is even more recent. So, be patient that soon there will be skins for your device or skins that please you. If you want to accelerate this process, download the Skin Maker and design your own skin. I'll be glad to post it in the skins thread.

:: Why does the song stop (or become glitchy) if I minimize the player and do other things with my device?
:: :: That's because the default setting of the decoder is to be a low-priority thread. I've made this default because I didn't want my phone to become slower with the playback, even because the song usually stops only when something is loading or wasting too much CPU. If you want, change the "Thread priority" to "Normal" in the Settings dialog to prevent this effect.

:: What do the "Prebuffer length" and "Output prebuffer" options do?
:: :: Respectively, they specify how many milisseconds and the amount of the MP3 file that will be decoded ahead what is currently being played. If you check the "Low" thread priority setting and your prebuffer length is set to 4000ms, another process can use the CPU for 4 seconds before the song becomes glitchy. If you check the "Normal" thread priority, your prebuffer length does not need to be that large: 1000ms must be enough (this will free up memory).

Change log

:: On Nitrogen 0.3.2
:: :: Added album art support;
:: :: Added OGG Vorbis support;
:: :: BIG performance improvement (now using as little CPU as GsPlayer);
:: :: On source: added libmad, libovd, maplay and jpeglib source libraries;
:: :: Automatic screen resolution for default skin;
:: :: Bugfixes (skin selector, media browser);

:: On Nitrogen 0.3.1
:: :: Fixed an equalizer bug;
:: :: Updated VGA skin (wrong button assignment);

:: On Nitrogen 0.3
:: :: Added advanced playlist management;
:: :: Changed skin structure;
:: :: Replaced application icon;
:: :: Added skin selector;
:: :: Changed default skin;
:: :: Replaced most menus for finger-friendly menus;
:: :: Added album art space (album art support itself will come soon);
:: :: Fixed bugs (repaint, menus, CPU usage);

:: On Nitrogen 0.2.1
:: :: Changed icon with one made by me;
:: :: "Playlist browser" became "Media browser";
:: :: Added equalizer with preset support;
:: :: Added ClearType rendering even if it's not enabled on your device (optional);
:: :: Added option to lock hardware keys while device display is off;
:: :: Added option to customize the left softkey (exit/minimize/blank/library);
:: :: Added option to change playing song by tapping next/previous button;
:: :: Added a scrollbar in the media browser;
:: :: Fixed some bugs concerning the skin and playback;
:: :: Fixed a volume channel issue (AD2P should be working now);
:: :: Fixed a repaint bug;
:: :: After you apply the settings, the music resumes playing;

:: On Nitrogen 0.2b
:: :: Added skin support;
:: :: Corrected bugs (e.g. prevent system from becoming idle);

Older versions

:: Nitrogen 0.3.1
:: WM5, QVGA - Download
:: WM6, QVGA - Download
:: WM5, VGA - Download
:: WM6, VGA - Download
:: :: Source code (Visual Studio 2005 project) - Download

:: Nitrogen 0.3
:: WM5, QVGA - Download
:: WM6, QVGA - Download
:: WM5, VGA - Download
:: WM6, VGA - Download
:: :: Source code (Visual Studio 2005 project) - Download

:: Nitrogen 0.2.1
:: WM5, QVGA - Download
:: WM6, QVGA - Download
:: WM5, VGA - Download
:: WM6, VGA - Download
:: Russian version of Nitrogen 0.2.1 - Download (thanks to brooklyn2001)
:: Polish version of Nitrogen 0.2.1 - Download (thanks to Unrar)
:: Turkish version of Nitrogen 0.2.1 - Download (thanks to KAF-KEF)
:: Czech version of Nitrogen 0.2.1 - Download - Mirror (thanks to CZOggy)
:: :: Source code (Visual Studio 2005 project) - Download
Skins page for Nitrogen 0.2.1

[All releases]
Last edited:


Senior Member
Nov 18, 2007
Havent installed it yet, but are the graphics included?
Ive got a 240x240 screen, and this is something ive been looking for for a while, a player with decent sized buttons that i can hit easily whilst in the car.

Cheers, Mike.


Senior Member
Aug 30, 2008
Havent installed it yet, but are the graphics included?
Ive got a 240x240 screen, and this is something ive been looking for for a while, a player with decent sized buttons that i can hit easily whilst in the car.

Cheers, Mike.

Hi Mike, and thanks for the interest in Nitrogen!
I'm afraid the player won't fit your screen. This issue will be corrected in future releases with skin support, but by now I don't think you'll see the whole area as your screen is square.
Concerning the graphics, they are included as part of application.
Cheers, Filipe.


Jan 7, 2008
Hmm, my phone is WVGA so it's a no go for me, but I hope you consider a VGA version in the future. It looks fantastic, keep it up.


Sep 23, 2008
Omnia user

Could you please don't forget to make it compatible with SAMSUNG i900.

Look awesome !

Resolutions are
- 240x400
- 400x240


Senior Member
Aug 30, 2008
Hi folks!
I understand the need to make Nitrogen compatible with the different device resolutions, so the skin support will be a priority.
Thanks for the appreciation, and keep watching this post for updates!
Cheers, Filipe.


Senior Member
Mar 8, 2006
Great idea. I'll be waiting for the WMA support and VGA res. It's because of developers like you that WinMo is the best mobile OS out there. I'd gladly donate to your work if you are able to add album art support . . . . .


Senior Member
Aug 30, 2008
Thanks for the interest, dudes!
By now, I'll do some research to make Nitrogen skinnable, and after that I'll try to look into the plug-in capability of MAD decoder to add support for other media types (e.g. OGG and WMA).


Retired Moderator
Aug 27, 2006
OnePlus 6
Looks promising.

A must for the bluetooth guys would be A2DP/AVRCP support ontop. I realise this is probably one of the minor features you will be adding (by the looks of it so far its great stuff).


Senior Member
Feb 17, 2007
Everett, Washington
awesome music player! I like it.

at first I thought the wheel thing in the middle was for adjusting the sound, maybe in the future there can be a feature in the otpions where you can switch between volume control and track control. Or even a button that is pressed right there on the main screen which switches between this.

great work!


Senior Member
Feb 4, 2008
HTC Vision: G2
just a guess that would make your player unique. add support for playing cue-files, i've not seen a small, useful media player for win mobile with that feature! as listening to dj-sets/mixed cds isnt fun on pocket pc without the ability to skip track or get information on currently played track from cue-file. :)