Page 1 of 3

IMP - Irrlicht Music Player ( Update: 31-JAN-2018 )

PostPosted: Wed Aug 25, 2010 12:14 am
by jorgerosa
Image

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

DOWLOAD: http://sourceforge.net/projects/irrlichtmp

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

ABOUT:
Ok, here we go, how about develop an Media Player (Like Winamp, MusicMatch Jukebox, QCD, Foobar2000, Aimp, Xmms, etc, etc) but that consumes lots of CPU resources? And this project could be indeed the world´s media player that consumes more resources... :roll: Sounds bad, right?... Not really, its the way that we can impress our friends... and, most important, its all for our own fun !!! :D
TARGET:
• Lets try to keep this platform independent (Windows, GNU/Linux (Ubuntu), Mac)
• Everything (code) should be clean, simple and well commented as possible (So any user could use this project for his own study, including newbies... Like me!)
FEATURES:
(Some features are already done) Loads and play audio files ("wav", "aiff", "ogg", "flac", "mp3", "mod", "s3m", "it", "xm"). Will also have a jukebox mode, when it starts to play... then in the stage a character(s) (singer, singers, dancing girls, etc, etc) will dance, jump, play musical instrument(s), whatever, with lots of blinking lights and flash lights, etc... (kind of retro disco ambiance) also with random nice audience events (eg: flash lights cameras, audience clapping (when a music reaches the end), etc, etc, etc...). All these events will be random or read from an custom saved external XML file. MAYBE LATER... We could add an online mode, so a new user may join (a characther will be added in the seats, with his nickname over it) and listen our playing music (stream), and be able to chat (comment), etc... Since this isn´t been done yet in any other media player...

USED TOOLS:
• A big hammer (platform independent) :twisted:
• IRRLICHT --> http://irrlicht.sourceforge.net (platform independent)
• AUDIERE --> http://audiere.sourceforge.net (platform independent)
• Code::Blocks --> http://www.codeblocks.org (platform independent)

(Please post/send your comments, code, ideas, screenshots, etc.)

PostPosted: Wed Aug 25, 2010 1:19 am
by kazymjir
Looks interesting!
I am very interesting in this project, also I can help develop in free time :)

Just updated and uploaded it again, with new visual features

PostPosted: Wed Mar 09, 2011 7:28 pm
by jorgerosa
[EDIT] ALL URLS UPDATED IN THE ABOVE MAIN POST

PostPosted: Wed Mar 09, 2011 10:59 pm
by greenya
Look nice!
This would be a great screensaver (running fullscreen with camera following some random paths) :roll:

PostPosted: Thu Mar 10, 2011 7:15 am
by REDDemon
lol amazing. it remembers me the first duke nukem 3D in the first level of the city there was a stage of the disco.

PostPosted: Fri Mar 18, 2011 11:03 pm
by jorgerosa
Thankyou all. Glad that you like :) Now, you can add your own music in the "music" folder. A clickable GUI button will be generated for each found music. And has a lot new features too. And please note that i still need help, to improve this. Have fun, hope that you like.

PostPosted: Sat Mar 19, 2011 6:57 am
by serengeor
4) [Audiere] Get audio file length in HH:MM:SS format.

what format do you get it in right now?

PostPosted: Sat Mar 19, 2011 7:55 pm
by jorgerosa
Please note that, I´m using AUDIERE -> http://audiere.sourceforge.net/
After seaching a lot, seems the way to get real time length (milliseconds), should be something like:
cpp Code: Select all
audiere::SampleSource * blah = OpenSampleSource("myMusic.mp3");
 
// Calculate length in seconds here ....
int milliseconds = ??????;
 
// The code (formulas) that I´ll use for a HH:MM:SS time format:
int hours = milliseconds/(1000*60*60);
int minutes = (milliseconds%(1000*60*60))/(1000*60);
int seconds = ((milliseconds%(1000*60*60))%(1000*60))/1000;
 
sound = OpenSound(audiereDevice, blah);
sound->play();
 

1) I have all that i need. Only need to get time in milliseconds from an "mp3" file. (Using: sound->getLength(); Only retrieves frames count).
[EDIT] 2) Lyrics added: Will display, if available. They are in the "music" folder. Code is not fully done yet, but will give you the main idea...
[EDIT] Forget this post: The correct solution for these issues, working with AUDIERE library, are in my next post.

Lyrics are now 100% working [RESOLVED]

PostPosted: Sun Mar 27, 2011 5:47 am
by jorgerosa
[RESOLVED] Lyrics are now synchronized! Ok, since i had no help for this, i´ve been digging around on this issue, for the last few days, to get lyrics done. Even in the AUDIERE forums lots of people is asking how to get music length (track duration) converted from frames to seconds or milliseconds, needed to develop a decent music player, but with no valid answers :( So, if you will work with AUDIERE forget my above post code (i´ll keep it there as the wrong way to do this, still it works with many other audio libraries). Here goes the "how-to" to everyone that might have the same problem, and is looking for a solution too:

Using AUDIERE - First you will need this, after the music is loaded:
cpp Code: Select all
/// Frame rate, ex: 44100
sound->getFormat(channels, rate, format);

Using AUDIERE - Then, add these formulas:
cpp Code: Select all
/// Converting from frames, to seconds:
int factor1 = sound->getLength()/rate;    // Retrieves number in seconds, ex: 175678555
int factor2 = sound->getPosition()/rate;  // Retrieves number in seconds, ex: 13428
int mil1 = factor1-(factor1-factor2);     // Current music position
int mil2 = factor1;                       // Total music length
 
int seconds1 = mil1 %60;
int minutes1 = mil1 /60;
int hours1   = mil1 /(60*60);
int days1    = mil1 /(60*60*24);
 
int seconds2 = mil2 %60;
int minutes2 = mil2 /60;
int hours2   = mil2 /(60*60);
int days2    = mil2 /(60*60*24);
 

Thats all! For the complete info (the complete formulas set), download and unzip the project, and look for them in the "main.cpp" file code.
The rate var is the main key (one of) to get all the lengths into seconds.
--> Now you will be able to display in your IRRLICHT app, the music position and length in HH:MM:SS format! :D
--> Now you can create your own lyrics, they will be synchronized correctly with the music. :D
(Now, its time to improve the graphics and other stuff... Time to mooooooooooooove forward....)
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)

Re: IMP - Irrlicht Media Player ••• [UPDATE: 04 APRIL 2011]

PostPosted: Wed Jul 27, 2011 2:01 pm
by mongoose7
I like your player. :D

The zip file contains some source, so I thought I would try to compile it. But it won't compile for various reasons. (Arrays declared with a dimension of zero or a dimension which is a local variable, compiler refusing to accept constructors because the types don't match, 'include <dirent.h>' in a Windows build, etc.)

So, I guess the included source is not the source used to build the executable. Is this correct?

Re: IMP - Irrlicht Media Player • [UPDATE: 04 APRIL 2011] •

PostPosted: Wed Jul 27, 2011 2:58 pm
by jorgerosa
Hi mongoose7, thanks! :)
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)

Re: IMP - Irrlicht Media Player ••• [UPDATE: 28 JULY 2011]•

PostPosted: Thu Jul 28, 2011 12:19 pm
by mongoose7
OK, thanks. I think the only change was to add a couple of headers.

I don't know if you are interested, but, Line 74,
cpp Code: Select all
bool my_filter(char c){ return c==' '; c==';'; c=='-'; c=='\n'; }

should be
cpp Code: Select all
bool my_filter(char c){ return c==' ' || c==';' || c=='-' || c=='\n'; }

(I guess). Also, Line 1092, VC++ doesn't like
cpp Code: Select all
ppEffectName[0]={"Monitor"};

preferring
cpp Code: Select all
ppEffectName[0]="Monitor";


Also, I don't know how you get away with using 'opendir()' in Windows, but I guess you have your ways.

Re: IMP - Irrlicht Media Player • [UPDATE: 28 JULY 2011] •

PostPosted: Thu Jul 28, 2011 5:24 pm
by jorgerosa
mongoose7 wrote:I don't know if you are interested, but...

Sure I am interested! The main ideia is to improve this project, still I don´t have all the needed time, to do it all, by myself. Thankyou mongoose7, for the tips! :D
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)

Re: IMP - Irrlicht Media Player • [UPDATED: 28 AUG 2011] •

PostPosted: Sun Aug 28, 2011 4:00 am
by jorgerosa
A new IMP version is done (has many improvements), and........
A BIG THANKYOU TO ANDARILHOS TO GIVE US 3 COMMERCIAL TRACKS FROM THEIR NEW MUSIC ALBUM,
EXCLUSIVELY FOR THIS IRRLICHT PROJECT !!! THEY ARE INCLUDED IN THE DOWNLOAD FILE !!!
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)

Re: IMP - Irrlicht Media Player •• [UPDATED: 11 SEPT 2011]

PostPosted: Tue Dec 27, 2011 10:08 am
by jorgerosa
WALLPAPER DOWNLOAD: http://img716.imageshack.us/img716/740/ ... rlicht.jpg
MERRY XMAS and HAPPY NEW YEAR !