Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[JUL 13][APP][ALPHA4] Nitrogen 1.1 (music player for Windows Mobile)

OP microfi

7th June 2009, 07:27 PM   |  #1  
OP Senior Member
Flag Mococa
Thanks Meter: 4
 
364 posts
Join Date:Joined: Aug 2008
OCT 27 - Dudes, I'm not dead (as some of you might think)! I'm just taking a break from Nitrogen development because I'm scarcely having any spare time to work over it as I'm studying to pass the college entrance exams (yeah!) which take place next month. So please be patient because I'll resume coding as soon as possible! If you want some news: I could successfully decode MP3 using libmad with no GSPlayer code! This means Nitrogen will soon read Album Art images from ID3v2 tags and most glitches should disappear! I'm also working on an improved plugin framework.

*
*

Microfi Nitrogen 1.1 (July 13, 2009)
(Nitrogen is licensed under GNU General Public License)

mushipkw has worked on a Nitrogen homepage with skin and language gallery! This way, you won't need to post files here and wait for me to update the topic (which is something I also didn't like). So, we are proud to annouce:
http://nitrogen.wmskins.com/
Please post your language files and skins there!


*
*

Click on the image below to start downloading!

[More languages/plugins/skins - See Post #2]
[Large files bug - click here to download fix]

What's new:
Now playing MP3/OGG/WMA/WAV/AAC/MP4/M4U files (with included GSPlayer plugins);
Multilanguage support (English/Portuguese-BR built-in, but more languages available on Post #2);
Many memory leaks and bugs were fixed;
Now handling large album art files;
Now remembers last playing position;
(and much more!)


Tip: many features are now accessible through long-tap (tapping and holding for a while): fast-forward and rewind, advanced playlist actions and so on!



For more skins, visit the official skin thread!

If you want to add Nitrogen to your website, please include the XDA-Developers URL, the new homepage URL and the donation URL, as seen below:
Quote:

Microfi Nitrogen is a native Windows Mobile application (unmanaged code) that allows you to play MP3/OGG/AAC/MP4/M4A/3GP/WAV/WMA songs stored on your Pocket PC device.
It features a file browser, full skin support, smart shuffle and repeat modes, a 10-band equalizer with preset support (8 included presets), built-in sleep mode, a blank screen command to prevent energy waste while playing music and many more new features. Nitrogen uses the MAD/OVD decoders, which are 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 (using skins which support wheel component). 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.

Key features
:: Full MP3/OGG/AAC/MP4/M4A/3GP/WAV/WMA playback;
:: Customizable interface with skin support;
:: 10-band equalizer with 8 presets (MP3 only);
:: Large and easy-to-use buttons;
:: Media browser with playlist editor;
:: Large menus to perform tasks with the fingers;
:: Kinetic scrolling;
:: Smart shuffle and repeat modes;
:: Adjustable sleep timer;
:: Amazingly fast to load and to play;
:: Blank screen command to save energy;
:: Native C++ code: no need for .NET framework;
:: Extremely lightweight;
:: File association support;
:: Album art support;
:: Opensource;
:: Multilanguage support;

Please donate if you like the player:

HTML Code:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2016778
Check out the official website:
HTML Code:
http://nitrogen.wmskins.com/
Check out the official XDA-Developers thread:
HTML Code:
http://forum.xda-developers.com/showthread.php?t=523505


Attached Files
File Type: zip nmax-qvga-joint.zip - [Click for QR Code] (116.9 KB, 2855 views)
File Type: zip nmax-vga-joint.zip - [Click for QR Code] (375.1 KB, 2332 views)
File Type: cab nitrogen-1.2-wm5-alpha2.cab - [Click for QR Code] (1,006.4 KB, 8308 views)
Last edited by microfi; 27th October 2009 at 06:31 PM.
The Following User Says Thank You to microfi For This Useful Post: [ View ]
7th June 2009, 07:27 PM   |  #2  
OP Senior Member
Flag Mococa
Thanks Meter: 4
 
364 posts
Join Date:Joined: Aug 2008
Support

Other languages (thanks to XDA members!)
[Please visit http://nitrogen.wmskins.com/ for new languages and to post your own!]


Bulgarian (by Mihof33): Download
Czech (by tampiss): Download - Mirror
Danish (by mikaelwinther): Download - Mirror
Dutch (by kuifje): Download - Mirror
Dutch (by WMH): Download - Mirror
French (by kidoucorp): Download - Mirror
French (by Ang3lo): Download
German (by ChrisXP): Download
German (by DeVisible): Download - Mirror
Greek (by dancer_69): Download - Mirror
Italian (by simoneser): Download - Mirror
Korean (by Sean Lee): Download
Polish (by piotrrz): Download - Mirror
Romanian (by axxelxavier): Download
Russian (by prewed): Download - Mirror
Serbian (by Uros Gojkovic): Download Latin - Download Cyrillic
Simplified Chinese (by guoguo89757): Download - Mirror
Spanish (by davitino): Download - Mirror
Swedish (by norrgrd): Download
Traditional Chinese (by Paul Chen): Download
Traditional Chinese (by PinguW): Download
Turkish (by Resolute): Download



How to install: download the NLG file (or the ZIP file containing it, then extract the NLG file) and copy it to your device, in the folder "\Program Files\Nitrogen\lang" (if you installed Nitrogen on your device memory) or "\Storage Card\Program Files\Nitrogen\lang" (if you installed Nitrogen on storage card). Now run Nitrogen, tap the "Options" softkey, choose "Settings" and then "Language selector". Choose your language.

Plugins

GSPFLAC - Allows FLAC playback (thanks to Dai_Shan for finding): Sourceforge.net page
GSPMIDI - Allows MIDI playback (not tested yet): GSPlayer page

How to install: download the DLL file (or the ZIP file containing it, then extract the DLL file) and copy it to your device, in the folder "\Program Files\Nitrogen\plugins" (if you installed Nitrogen on your device memory) or "\Storage Card\Program Files\Nitrogen\plugins" (if you installed Nitrogen on storage card). Now run Nitrogen, and your desired media extension will be available.

Skins

Click here to go to the skins page.

Translate Nitrogen to your language

You may help Nitrogen development by downloading our translation tool, and posting here or sending me an e-mail with the NLG file. This way, your translation will be added in future versions.

For AVRCP users

You may control Nitrogen through AVRCP using AVRCP Agent (by Wolfman-XP). You'll need to configure the agent like this:
Code:
Path to application: "\Program Files\Nitrogen\Nitrogen.exe" (if you installed on the device memory)
Window name: "Nitrogen"
Play: 40001
Forward: 40003
Backward: 40002
For wired headphone users

You may control Nitrogen through wired headphone button using PlayPause mod (thanks to Zepiii).

For developers

Nitrogen now stores the current song info under the following registry key:
Code:
HKEY_LOCAL_MACHINE\System\State\Nitrogen
The registry values are the following:
:: AlbumArtFilename - contains the album art filename of the current song; if no album art was found, this value is "(none)";
:: MusicCode - contains a number that increases whenever the current song changes. This way, developers can check whether they need to update the song info on their programs or not;
:: PlayStatus - may assume the following values:
0 - paused and the current song is not the paused one;
1 - paused and the current song is the paused one;
2 - playing, but the current song is not the playing one;
3 - playing and the current song is the playing one;
(for general purpose, you should display a "Play" button when PlayStatus is 0, 1 or 2, and a "Pause" button when it's 3).
:: Running - 1 when Nitrogen is running, and 0 when it's not;
:: SongArtist - Contains the current song artist;
:: SongTitle - Contains the current song title;
:: TimeElapsed - Contains the elapsed song time (secs);
:: TimeTotal - Contains the total song time (secs);

You can control Nitrogen through the following messages:

:: WM_NTG_ISPLAYING = WM_USER+3001
:: :: wParam = 0; lParam = 0
:: :: Returns 1 when a song is playing;
:: WM_NTG_GETCURRENT = WM_USER+3002
:: :: wParam = 0; lParam = 0
:: :: Returns a LONG in which the low-order is the current song position (secs) and the high-order is the total song time (secs);
:: WM_NTG_SETCURRENT = WM_USER+3003
:: :: wParam = new song time (secs); lParam = 0
:: :: Returns 1 if successful;
:: WM_NTG_GETVOLUME = WM_USER+3005
:: :: wParam = 0; lParam = 0
:: :: Returns the current volume (0~100);
:: WM_NTG_SETVOLUME = WM_USER+3006
:: :: wParam = new volume (0~100) if lParam = 0
:: :: wParam = delta volume (-100~100) if lParam = 1 (relative volume)
:: :: Sets the current volume, and returns 0;
:: WM_NTG_GETMUSICCODE = WM_USER+3007
:: :: wParam = 0; lParam = 0
:: :: Returns a number that increases whenever the current song changes;

Also, you can perform common button tasks with WM_COMMAND messages:
:: ECMD_PLAYPAUSE (WM_COMMAND; wParam = 40001; lParam = 0)
:: :: Simulates a click on the Play/Pause button;
:: ECMD_PREVSONG (WM_COMMAND; wParam = 40002; lParam = 0)
:: :: Simulates a click on the Previous Song button;
:: ECMD_NEXTSONG (WM_COMMAND; wParam = 40003; lParam = 0)
:: :: Simulates a click on the Next Song button;
:: ECMD_VOLUMEDOWN (WM_COMMAND; wParam = 40004; lParam = 0)
:: :: Simulates a click on the Volume Down button;
:: ECMD_VOLUMEUP (WM_COMMAND; wParam = 40005; lParam = 0)
:: :: Simulates a click on the Volume Up button;

For ROM cookers

If you want to include Nitrogen on your ROM distribution, you may set custom skins and config directory (if you want to put the EXE under "\Windows") by adding the following registry keys:
Code:
HKLM\Software\Nitrogen\SkinsPath = {new skins path}
HKLM\Software\Nitrogen\FilesPath = {new config/playlist/presets path}
HKLM\Software\Nitrogen\LangsPath = {new languages path}
Don't forget to add a slash after the path ("\Windows\Nitrogen\" instead of "\Windows\Nitrogen", for instance).
Last edited by microfi; 3rd September 2009 at 08:33 PM.
The Following User Says Thank You to microfi For This Useful Post: [ View ]
7th June 2009, 07:29 PM   |  #3  
OP Senior Member
Flag Mococa
Thanks Meter: 4
 
364 posts
Join Date:Joined: Aug 2008
FAQ

:: I have feature requests and/or want to notify a bug. What do I do?
:: :: First, check if your bug is not yet listed on the "known issues". If you want to suggest a new feature, check if it is not yet listed on the "Coming soon", "Under research" or "Feature requests". If you've found them there, please know I'm working on them to make them available/fixed soon! If not, please ask a question on the forum.

:: How do I include subfolders on my playlist?
:: :: On the Media browser, choose the "Options" softkey and check the option "Recursive search". Now, all commands (Play current folder, Append current folder and so on) will include subfolders.

:: Where are the advanced playlist functions I was used to?
:: :: You need to perform a long-tap (tapping and holding for a while) on the media browser or playlist editor items so that a context menu will pop-up with many advanced options.

:: How do I go to the root directory on the Media browser?
:: :: You must click on the title of the Media browser screen (which contains the current directory).

:: 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:
Code:
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?
Nitrogen 1.1 tries to find album art files through these ways:
1) Image file with the same filename as the song file (e.g. "\Music\Coldplay - Clocks.jpg" for "\Music\Coldplay - Clocks.mp3");
2) Image file containing the album name (ID3 tag) (e.g. "\Music\*Viva la Vida*.jpg" for a song which ID3 tag for album name is "Viva la Vida");
3) Image file inside the folder which one of these filenames: "Folder.jpg", "Cover.jpg", "AlbumArt.jpg", "AlbumArtSmall.jpg".

:: 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).

Older releases

:: Nitrogen 1.0 (Jun 07, 2009) - Download - Download source

:: Visit this thread for more info on the previous release (Nitrogen 0.3.2).
Last edited by microfi; 14th July 2009 at 04:29 PM.
7th June 2009, 07:29 PM   |  #4  
OP Senior Member
Flag Mococa
Thanks Meter: 4
 
364 posts
Join Date:Joined: Aug 2008
Issues, feature request and research (help wanted!)

The (1.2) prefix means that the fix/feature will be available on the next release!

Known issues
:: (1.2) Fix for large files (more than 100 minutes long) - click here to download fix for 1.1;
:: Memory leak on libovd (not a Nitrogen bug, but a decoder bug) while loading ID3 tags of OGG media (this bug is also present on GSPlayer and other players which use its libraries) - nothing I can do, then (but investigating).

Coming soon

:: (1.2) Option to disable auto-lock when running Nitrogen (HKCU\ControlPanel\Backlight\AutoDeviceLockEnable - thx bonebox);
:: (1.2) Remap hardware keys;
:: (1.2) Advanced file operations;
:: (1.2) Command-line common options (shuffle all media, start minimized, and so on);
:: (1.2) Option to set default folder;
:: (1.2) Native Titanium today plugin (WM6.5) support;
:: (1.2) Screen rotation changes skin!
:: Multiple playlists and M3U support;

Under research (still figuring them out)

:: Native AVRCP support;
:: Crossfading feature;
:: Use the power button from the phone to blank screen;
:: Load embedded album art files (on ID3 tags);

Feature request (requests from users which I don't know whether and/or how to implement)

:: Last.fm scrobbling;
:: Lyrics support (LRC);
:: Alarm clock;
:: Cue-sheet support;
Last edited by microfi; 27th August 2009 at 07:35 PM.
7th June 2009, 07:30 PM   |  #5  
OP Senior Member
Flag Mococa
Thanks Meter: 4
 
364 posts
Join Date:Joined: Aug 2008
Change log

:: On Nitrogen 1.1
:: :: Fixed many memory leaks and minor bugs;
:: :: Added multilanguage support;
:: :: Added option to remember last song position when program starts;
:: :: Added GSPlayer plugin support (now accepting WMA/WAV/AAC/MP4/M4U) files;
:: :: Improved the option "Change playing song through previous/next buttons";
:: :: Nitrogen now pauses when phone receives call;
:: :: Song info is available on registry;
:: :: Fixed the MP3 ringtone issue;
:: :: Now handling large album art files;
:: :: Media browser and Equalizer now show "Ok" button instead of "X", allowing users to close them without closing the whole app;
Last edited by microfi; 16th July 2009 at 04:55 PM.
7th June 2009, 07:50 PM   |  #6  
Member
Thanks Meter: 3
 
70 posts
Join Date:Joined: Mar 2008
Huzzah! Thank you very much! This player is very tight.

Couple things:

1) With a very long MP3 (4 hours or so), the timestamp in the middle between the current time and remaining time seems to be random. It's currently showing 13:49 and not changing.
2) Could you possibly add an option in the future to remember where you leave off in a song? For these really long MP3s it would be extremely helpful.

Thanks again, great player!
7th June 2009, 07:55 PM   |  #7  
OP Senior Member
Flag Mococa
Thanks Meter: 4
 
364 posts
Join Date:Joined: Aug 2008
Quote:
Originally Posted by sniggle

Huzzah! Thank you very much! This player is very tight.

Couple things:

1) With a very long MP3 (4 hours or so), the timestamp in the middle between the current time and remaining time seems to be random. It's currently showing 13:49 and not changing.
2) Could you possibly add an option in the future to remember where you leave off in a song? For these really long MP3s it would be extremely helpful.

Thanks again, great player!

Hi!
1) The timestamp in the middle is the current time (01:49 PM in your case)
2) I'll surely add that function soon!

Many thanks, Filipe.
7th June 2009, 08:05 PM   |  #8  
nuke1's Avatar
Senior Member
Thanks Meter: 0
 
495 posts
Join Date:Joined: Jun 2008
More
Amazing...

Thanks.
7th June 2009, 08:23 PM   |  #9  
Member
Thanks Meter: 1
 
70 posts
Join Date:Joined: Apr 2009
excellent job sir, really loving the new version
the next step i guess would be moving to a database system I guess <-- Request
Thanks
7th June 2009, 08:32 PM   |  #10  
Broman400's Avatar
Senior Member
Flag New York
Thanks Meter: 19
 
548 posts
Join Date:Joined: Dec 2008
More
Nice app, from the pictures it looks very nice.

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes