IMP - Irrlicht Music Player ( Update: 31-JAN-2018 )
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
IMP - Irrlicht Music Player ( Update: 31-JAN-2018 )
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
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... Sounds bad, right?... Not really, its the way that we can impress our friends... and, most important, its all for our own fun !!!
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)
• 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.)
Last edited by jorgerosa on Wed Jan 31, 2018 1:50 pm, edited 521 times in total.
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
Just updated and uploaded it again, with new visual features
[EDIT] ALL URLS UPDATED IN THE ABOVE MAIN POST
Last edited by jorgerosa on Tue Mar 22, 2011 9:13 pm, edited 3 times in total.
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
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.
Last edited by jorgerosa on Tue Mar 22, 2011 9:14 pm, edited 2 times in total.
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
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:
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.
After seaching a lot, seems the way to get real time length (milliseconds), should be something like:
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();
[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.
Last edited by jorgerosa on Thu Jan 16, 2014 4:55 pm, edited 7 times in total.
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
Lyrics are now 100% working [RESOLVED]
[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:
Using AUDIERE - Then, add these formulas:
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!
--> Now you can create your own lyrics, they will be synchronized correctly with the music.
(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!)
Using AUDIERE - First you will need this, after the music is loaded:
Code: Select all
/// Frame rate, ex: 44100
sound->getFormat(channels, rate, format);
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);
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!
--> Now you can create your own lyrics, they will be synchronized correctly with the music.
(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!)
Last edited by jorgerosa on Thu Jan 16, 2014 5:02 pm, edited 6 times in total.
Re: IMP - Irrlicht Media Player ••• [UPDATE: 04 APRIL 2011]
I like your player.
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?
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?
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
Re: IMP - Irrlicht Media Player • [UPDATE: 04 APRIL 2011] •
Hi mongoose7, thanks!
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)
Last edited by jorgerosa on Thu Jan 16, 2014 4:51 pm, edited 7 times in total.
Re: IMP - Irrlicht Media Player ••• [UPDATE: 28 JULY 2011]•
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,
should be
(I guess). Also, Line 1092, VC++ doesn't like
preferring
Also, I don't know how you get away with using 'opendir()' in Windows, but I guess you have your ways.
I don't know if you are interested, but, Line 74,
Code: Select all
bool my_filter(char c){ return c==' '; c==';'; c=='-'; c=='\n'; }
Code: Select all
bool my_filter(char c){ return c==' ' || c==';' || c=='-' || c=='\n'; }
Code: Select all
ppEffectName[0]={"Monitor"};
Code: Select all
ppEffectName[0]="Monitor";
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
Re: IMP - Irrlicht Media Player • [UPDATE: 28 JULY 2011] •
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!mongoose7 wrote:I don't know if you are interested, but...
EDIT: UPDATED! A new version is now available! (All this related stuff was updated in the first post, too!)
Last edited by jorgerosa on Thu Jan 16, 2014 4:51 pm, edited 3 times in total.
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
Re: IMP - Irrlicht Media Player • [UPDATED: 28 AUG 2011] •
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!)
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!)
Last edited by jorgerosa on Thu Jan 16, 2014 4:55 pm, edited 2 times in total.
-
- Competition winner
- Posts: 117
- Joined: Wed Jun 30, 2010 8:44 am
- Location: Portugal
- Contact:
Re: IMP - Irrlicht Media Player •• [UPDATED: 11 SEPT 2011]
WALLPAPER DOWNLOAD: http://img716.imageshack.us/img716/740/ ... rlicht.jpg
MERRY XMAS and HAPPY NEW YEAR !
MERRY XMAS and HAPPY NEW YEAR !
Last edited by jorgerosa on Thu Nov 13, 2014 9:23 am, edited 7 times in total.