#1 02-07-2010 13:45

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

[CLEO 4|REL]CLEO Music Player

[center]cmp.jpg

CLEO Music Player can play mp3/mp2/mp1/ogg/wav/aiff files from the "Music" folder. It's basically a fully working (and extendable) version of all the MP3 players seen made for San Andreas for CLEO 3.[/center]


Features
* Fancy GUI
* Next/Prev
* Pause/Resume
* Volume control
* Media key support
* Track progress
* Track length

Future Features
* User Track Support
* Shortcut support
* Non-direct play mode? (mix with game audio)
* Customizable Settings
* Playlist support
* Play files from other directories
* Wider media key support
* Bonus! ID3v3 Tag Support

Although I did accomplish most of these features, the bugs in the new version have driven me to give up on this mod, for now at least. I've posted the source code in case anyone wants to continue.

If someone does decide to continue it, feel free to ask for any help etc. regarding CLEO Music Player. I could go on making this, but I think it would be better to give other modders a chance to fix what I failed at smile

[center]Download Page[/center]

Latest Version: 0.4a

Last edited by Deji (06-08-2010 19:09)

Offline

#2 06-07-2010 15:23

Alien
Registered: 12-10-2008
Posts: 564

Re: [CLEO 4|REL]CLEO Music Player

Nice script. But part with displaying length can be rewritten:

3@ = Audiostream.Length(0@)
0B14: 8@ = 3@ MOD 60
3@ /= 60
0AD3: string 12@ "Length: %d:%02d" 3@ 8@ 
0ADF: add_dynamic_GXT_entry '_MP3P01' text 12@

Offline

#3 06-07-2010 15:55

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

I was never sure what those int operation opcodes do... I know something to do with changing bits, but it's difficult to read from the translation.

Does that basically get the remainder of 3@ / by 60?

Offline

#4 06-07-2010 16:24

Alien
Registered: 12-10-2008
Posts: 564

Re: [CLEO 4|REL]CLEO Music Player

yep, 0B14 performs modulo (remainder) operation.
wikipedia.
And some information on English about other opcodes from IntOperations.cleo can be found here.

Offline

#5 12-07-2010 01:02

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

0B14 causes a crash.

I also find problems with the functionality in iniFiles and FileSystemOperations - For example, iniFiles never seems to return a value.


EDIT

My own fault there smile

Last edited by Deji (27-07-2010 19:05)

Offline

#6 05-08-2010 05:12

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

* Track length is more accurate
Thanks to Alien... Before it seemed to give incorrect length values with some files, I believe.

* Customizable Settings
You can now change some settings for CLEO Music Player. More will be coming when more features come!

* Playlist support
CLEO Music Player now supports M3U playlists. Information about them is available on the download page and will help you with getting them to work properly with CLEO Music Player.

* Play files from other directories
The .ini file lets you change which directory you play from if you're not using Playlist Mode. If you are using Playlist Mode, you can still play from any location in your hard drives.

* Wider media key support
A few changes were made to media keys. More support is still being worked on.

* ID3v3 Tag Support
Although I was always planning on this... Due to the complexity of getting internal information from audio files, I never mentioned it.

But now, here it is! CLEO Music Player can detect and use ID3 tags embedded within certain audio files. This means it can display Title and Artist information on-screen instead of the filepath.


If ID3 info is not found, CLEO Music Player will instead retrieve the filename and display that, instead.


The possibilities of wider audio format compatibility and track position support is being experimented with... Lets see if I can actually figure out how to call bass.dll functions from CLEO crazy

Last edited by Deji (05-08-2010 05:16)

Offline

#7 05-08-2010 12:03

Seemann
Registered: 07-08-2006
Posts: 2,153

Re: [CLEO 4|REL]CLEO Music Player

Downloaded CMP.zip and it's still 0.4a.

Offline

#8 06-08-2010 19:00

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

Well I suck... Somehow because I renamed a file I got confused and thought I'd finished smile

Turns out I'm actually unable to figure out this ID3 thing... I can get it to read one tag, or the other... But if I attempt to do both, the game crashes. None of that is useful anyway, because restarting the game and trying to play music again without releasing the MP3 causes an ntdll.dll crash if the ID3 code remains.

Since this mod is driving me insane, I'm gonna release the source code sooner than originally planned... Hopefully someone can figure out a way to get past the bugs in the ID3 code. I'm still tryna figure out how to use addresses from bass.dll for stuff like control of the song position...

If anyone wishes to have the source code personally instead, PM me and I'll give it some thoughts... Source code is complete with comments on stuff that does and doesn't work smile


EDIT

Nah, I've had it with this thing already... Posting the (feature filled, but broken) source code.

It's that ntdll.dll problem again... That occurs when trying to start a new game..

[SOURCE]

Last edited by Deji (06-08-2010 19:04)

Offline

#9 09-08-2010 09:29

Alien
Registered: 12-10-2008
Posts: 564

Re: [CLEO 4|REL]CLEO Music Player

0AAC:   MP3 = load_audiostream MP3_FILE
...
        {if
            0AA2: M3U = load_library "bass.dll"  // IF and SET
        then
            if
                0AA4: TEMP_1 = get_proc_address "BASS_ChannelGetTags" library M3U // IF and SET
            then
                // ChannelGetTags returns an array, so it's risky, but no other function works for me either.
                //0AC7: TEMP_1 = var STRING offset
                0AA7: call_function TEMP_1 num_params 2 pop 0 MP3 STRING// TEMP_1
                //0ACE: show_formatted_text_box "%X" STRING
            end
            0AA3: free_library M3U
        end}

0AAC returns not a BASS.dll channel handle, but internal CLEO audiostream handle.

Offline

#10 09-08-2010 18:21

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

Ah.. Well calling bass.dll functions was a longshot and a last resort...

I was almost certain that I could eventually read the MP3 files ID3 Tags in binary with no problems... And I can, but only one tag... If I attempted to read any more, the game crashes.

Or if I do something a certain way and then start a new game, the game crashes on trying to reload. Odd problems to me sad

Offline

#11 31-08-2010 10:16

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: [CLEO 4|REL]CLEO Music Player

In your last version (that ive tested) i found kinda like a bug.
I put 3 mp3 files in Music folder, and start the game. In fact that its buggy to change the track also it plays only two tracks instead of three. What i am doing wrong?

Offline

#12 10-09-2010 21:17

XotaBi4b
From: Харьков
Registered: 13-09-2008
Posts: 87

Re: [CLEO 4|REL]CLEO Music Player

Sw[ee]t wrote:

In your last version (that ive tested) i found kinda like a bug.
I put 3 mp3 files in Music folder, and start the game. In fact that its buggy to change the track also it plays only two tracks instead of three. What i am doing wrong?

Try to rename  mp3 file names to English letters.

Offline

#13 11-09-2010 01:36

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

Windows accepts an "МП3" (?) extension?

Anyway, extension probably doesn't matter:

8AE6:   not 1@ = find_first_file "*" get_filename_to 11@ //IF and SET

Searches for ALL files in the folder. Thus, it will play files without extensions or with different extensions, if it can.


If I can regain my patience with the bugs created by this mod, I may try to start it from scratch. But I'm eager to figure out a way to use the more advanced features that are not yet part of CLEO's opcodes. I'm still not really good enough to pull it off quite yet, but I'm thinking of beggining to create my own simple opcodes. A bit more C++ learning required, perhaps. Unfortunately, I have no idea how to retrieve CLEO 4's handles and such...

I'm getting really frantic about one day being able to create .dll hooks smile Shame I only just know about command line arguments.

Aghh.. gotta stop trying to write simple messages after 1AM... I end up writing an essay.


Edit

I'm dumb.. Forgot to respond to the original question.


@Sw[ee]t

You're saying it fails to play the last track, is this correct? Or this occurs from skipping tracks?

Last edited by Deji (11-09-2010 01:46)

Offline

#14 11-09-2010 14:09

Sw[ee]t
From: Нижний Новгород
Registered: 16-02-2009
Posts: 686
Website

Re: [CLEO 4|REL]CLEO Music Player

[You must login to view hidden text.]
@Deji - Both of that. Files ALREADY in mp3 format and with eng names.

Offline

#15 11-09-2010 14:31

Deji
From: UK
Registered: 09-11-2008
Posts: 189
Website

Re: [CLEO 4|REL]CLEO Music Player

Hmm.. I don't quite understand the problem. Probably just a bug of the mod itself. I guess you could create a dummy (empty) file named "zzzz.mp3", which should always be the last one to play, so there is no problem with the last one not being played. I'll try to recreate this mod from scratch.

Any name would work fine.

Offline

Board footer

Powered by FluxBB