Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / [STICKY] Enhanced Audio Plugin v1.55

Author
Message
BatVink
Moderator
16
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 21st Sep 2007 16:24
If you try to load a non-existent file, then the program crashes. It takes over a minute to completely give up after this.
I know that the code should account for this scenario, but it would be better if it died gracefully, rather than holding on to dear life, like a bad spaghetti western

BatVink
Moderator
16
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 22nd Sep 2007 18:29
One more thing...using any of these commands breaks the standard CD Music commands. This will return 0 even if you have an audio CD loaded....



You also cannot play CD music. I know there are replacement CD commands, but I have found that under some circumstances, these fail too. In this example it's fine but I have a more complicated program where the AUDIO CD TRACK COUNT command returns 0. They also don't have any volume control (yet )

BatVink
Moderator
16
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 22nd Sep 2007 20:38
Sorry, this is becoming a one-man show! (But there are several hours between these posts, and you may miss edits).

1.51 has the same behaviour with CD detection.

flashing snall
13
Years of Service
User Offline
Joined: 8th Oct 2005
Location: Boston
Posted: 23rd Sep 2007 02:20
lol, a 5 post spree. cant wait for the next release torrey.


"these shoes are 300 hundred dollars"-Shoes by Kelly http://smallgroupproductions.com/
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 23rd Sep 2007 20:52
BatVink,

The CD commands aren't completely finished as of yet, hence the missing volume control. A small foundation was started in this release, but needs a lot more work to finish it off. Currently, the CD Audio assumes the cd-rom drive is D. This will be fixed in the near future to accept any drive as the cd-rom device.

I'm still having some trouble with a structure that's used for the audio indexes when it comes to the metatags. That's the reason for the lack of a recent update. During work I occasionally open up the project to start debugging the issue. And each time, I see that the compiled code keeps performing bad pointer math when it comes to reading metatags.

I will also take a look at the program crashes to add in some more error handling. It could have been something deep inside the Audiere library that's causing the program to terminate. All of the functions within my wrapper have error handling.

BatVink
Moderator
16
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 24th Sep 2007 11:26
Someting that may be useful to you about the standard commands, just in case you encounter it...

When you change the CD Music volume (SET MUSIC VOLUME) - it reduces the volume of Ogg Vorbis volume too (Enhancements pack). So maybe there are already some conflicts in the standard Dlls.

Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 26th Sep 2007 22:29
That's really strange about the standard DLLs conflicting with each other like that. Have you or anyone else put a bug post up about it? I'll give those commands a test to see if they have any affect one what my plugin does.

flashing snall
13
Years of Service
User Offline
Joined: 8th Oct 2005
Location: Boston
Posted: 2nd Oct 2007 22:07
when ru going to release a new version?


"these shoes are 300 hundred dollars"-Shoes by Kelly http://smallgroupproductions.com/
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 4th Oct 2007 15:27
As soon as I have a fix for bug that causes metatag information to write itself to the main index structure correctly. I have some new ideas now to get it done. I'm shooting for 7 days or less. Depends on how my work schedules goes. I'm in a partial crunch time for a client.

BatVink
Moderator
16
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 4th Oct 2007 15:54
If you have something to show shortly, I'll take it to the convention

flashing snall
13
Years of Service
User Offline
Joined: 8th Oct 2005
Location: Boston
Posted: 5th Oct 2007 04:43
if i was torrey, i think i just would have fainted.


"these shoes are 300 hundred dollars"-Shoes by Kelly http://smallgroupproductions.com/
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 5th Oct 2007 17:09 Edited at: 5th Oct 2007 18:36
BatVink,

I really wish it were possible, but what are the chances of releases a major bugfix between now and the convention? I have discovered a major bug in DBPro that was around for ages now. I'm afraid to do my work around for it, because TGC could fix it and it'll render most of my plugins useless.

Take for example this function:

AUDIOEXPORT DWORD GetTagKey(DWORD index, DWORD keyidx)
{
SampleSource* source = OpenSampleSource(StreamInfo[index].file_name, FF_AUTODETECT);
return (DWORD)source->getTagKey(keyidx);
}code]

Its input is a simple 2 integers from DBPro. Now the major bug I've encountered for all my plugins was that DBPro screws up the stack pushes before it calls the plugin function by adding an extra push (I noticed this happens when you have a function that returns a string). The result is something that looks like this:

00360146 B8 00000000 MOV EAX,0
0036014B 50 PUSH EAX
0036014C B8 01000000 MOV EAX,1
00360151 50 PUSH EAX
00360152 A1 946E0F00 MOV EAX,DWORD PTR DSF6E94]
00360157 50 PUSH EAX
00360158 BB 9010AB01 MOV EBX,eap155.?GetTagKey@@YAKKK@Z
0036015D FFD3 CALL EBX

The PUSH assembly instructions you see here are where DBPro pushes the input values onto the stack. The last PUSH instruction references a string value that was previously used, and isn't necessary and shouldn't be pushed at all!

So maybe I'll just do the work around and create my padded input variable.

[edit]

I used my dbpro bug work around, and have successfully displayed metatags. The updated plugin, and more updates soon. Stay tuned!

Digital Awakening
AGK Developer
16
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 9th Oct 2007 01:00
Hi Torrey

I've just made a little program that allows me to play music with my Guitar Hero controller using your plugin to change the pitch.

However, I have a feature that makes the pitch shift smoothly when I tilt/shake the guitar and I've noticed that when I shift it up and down I sometimes get sparks in the sound. Sounds like anything you could fix? Or do you know what's causing it?

[center]
CREATE games with ease! NO programming required!
WIP
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 9th Oct 2007 15:39
Quote: "Hi Torrey

I've just made a little program that allows me to play music with my Guitar Hero controller using your plugin to change the pitch.

However, I have a feature that makes the pitch shift smoothly when I tilt/shake the guitar and I've noticed that when I shift it up and down I sometimes get sparks in the sound. Sounds like anything you could fix? Or do you know what's causing it?"


That usually happens when the function is called quickly after the previous call. Place a small delay after you call the pitch shift.

Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 10th Oct 2007 22:40
Update for October 10th, 2007

- Uploaded the latest compile with these new commands:

Metatag Commands

AUDIO GET TAG COUNT audio index number (returns integer value of total metatags contained in the audio file)
AUDIO GET TAG KEY audio index number (returns string value of the metatag key)
AUDIO GET TAG VALUE audio index number (returns string value of the descriptive metatag value)

Check the first post of this thread for the latest version download.

Digital Awakening
AGK Developer
16
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Sweden
Posted: 10th Oct 2007 23:43
I'll see what I can do. But it seems that when I make it fade it makes a spark at the same level every time, and it never happens during higher pitches. Perhaps every time it passes 1.0, but I'm not 100% sure.

[center]
CREATE games with ease! NO programming required!
WIP
Benjamin
16
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 11th Oct 2007 01:07
Quote: "Now the major bug I've encountered for all my plugins was that DBPro screws up the stack pushes before it calls the plugin function by adding an extra push (I noticed this happens when you have a function that returns a string)."

That extra push is actually the address of the old string (hence why it only happens with functions that return a string), provided so you can call the internal DBP function to free the contents of it.

Tempest (DBP/DBCe)
Multisync V1 (DBP/DBCe)
da power pwnerer
12
Years of Service
User Offline
Joined: 28th Jul 2006
Location: Pittsburgh, PA
Posted: 16th Oct 2007 13:50
very nice plugin


http://Freewebs.com/noobisoft
Come to Noobisoft's website today!
Overdroid
16
Years of Service
User Offline
Joined: 22nd Sep 2002
Location:
Posted: 13th Nov 2007 03:21
Rock ON!
This is truly sweet.

Lucy
12
Years of Service
User Offline
Joined: 19th Apr 2007
Location: Roanoke, VA USA
Posted: 13th Nov 2007 09:48
Awesome plugin. I'm using it in a clone of an Amiga game that I'm working on.

I suppose it'd be too much to ask for OctaMed support? An old Amiga buddy of mine has a ton of octameds on his a500 that he composed and would like to give to me for use for games, but the format is so antiquated. In the meantime, he's composing XMs for me.

do{;}while(1);
Overdroid
16
Years of Service
User Offline
Joined: 22nd Sep 2002
Location:
Posted: 13th Nov 2007 09:59
I wonder if there isn't a site that explains the PCM buffer data in more detail. It seems pretty complicated. Anyone have links or know of places to start?

Lucy
12
Years of Service
User Offline
Joined: 19th Apr 2007
Location: Roanoke, VA USA
Posted: 13th Nov 2007 10:27
Depends, do you mean PCM as in like FMR band radios or as in Windows audio format? (JOKING!)

But yes, PCM is a lot more complicated than it looks. Pulse Coded Modulation, lots of weird math involved. It's impossible to get into the lower levels processing it without being elbow deep in formulae that are better expressed on a blackboard than in code.

do{;}while(1);
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 13th Nov 2007 17:38
Thanks for the comments, and I'm glad it's working for all of you! Finding information about PCM has been tough, if I look through my references and find something I'll post up the link.

BatVink, did you end up doing anything with this plugin? I updated as quick as I could during that time and didn't see any replies back.

BatVink
Moderator
16
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 13th Nov 2007 18:11
I have a project that I can test the latest updates with, I didn't see any info regarding the issues I had. If you fixed them I apologise, I missed the info. As far as the convention went, I didn't have time to show anything, I had a few plugins from other people I wanted to demonstrate as cool ways to extend DB Pro.

Is the CD volume and crash problem resolved now?

Overdroid
16
Years of Service
User Offline
Joined: 22nd Sep 2002
Location:
Posted: 13th Nov 2007 21:31 Edited at: 13th Nov 2007 21:37
Perhaps if I explain what I would like to do some people might have suggestions.

I was thinking of writing a program that analyzed a music file fed into it and then created a game based on the music file. So that if it was (for example) a fighting game, you would get more effect by punching to the beat. The soundtrack of the game wouldn't be just the soundtrack of the game - it would become the game.

I'm thinking there would be a processing step where the music was converted to data, and then some algorithms would extract as much information as possible about the song. These algorithms would really have to be the heart of the whole program. Would there be a way to isolate (for example), the bass, the vocal track, the drum beat? Even in a crude way? That's why I'm wondering where I could go to learn about PCM data in more detail.

Maybe some general questions can get me started. Is the PCM data the volume, the pitch? Both? Is the PCM data different depending on the format of the audio file you are playing or does it all get decompressed into the same type of data stream? What does PCM stand for?

EDIT - already answered some of my own questions:
Wikipedia for PCM : http://en.wikipedia.org/wiki/Pulse-code_modulation

Lucy
12
Years of Service
User Offline
Joined: 19th Apr 2007
Location: Roanoke, VA USA
Posted: 14th Nov 2007 20:57
Quote: "What does PCM stand for?

EDIT - already answered some of my own questions:
Wikipedia for PCM : http://en.wikipedia.org/wiki/Pulse-code_modulation"


I already said up above nobody ever listens to me *mope*

do{;}while(1);
Overdroid
16
Years of Service
User Offline
Joined: 22nd Sep 2002
Location:
Posted: 15th Nov 2007 03:34
Sorry Lucy. I missed it.

Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 26th Nov 2007 17:27
WindowsKiller,

The current release that's out there for this plugin is assuming the D: drive is the cd-rom/dvd. This could be causing your crash if that drive doesn't exist or is not the correct drive type. I will be releasing another update soon that address that issue for more customization for cd media.

Roxas
13
Years of Service
User Offline
Joined: 11th Nov 2005
Location: http://forum.thegamecreators.com
Posted: 30th Nov 2007 22:41 Edited at: 30th Nov 2007 22:42
So that what was causing my crashes too
I needed to use your old version to get no crash.

My D drive is DVD.. But it still crashes!
I have these drives:
(C: ) (F: ) (A: ) (D: ) (E: ) ((G: ) <-- Virtual)


Click For Details!

The admiral
16
Years of Service
User Offline
Joined: 29th Aug 2002
Location:
Posted: 4th Dec 2007 09:29
Any chance of getting commands to modify pitch, tone etc Would allow for ingame modifications to sound.

The admiral
SoftMotion3D
AGK Developer
13
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 10th Dec 2007 18:10 Edited at: 17th Jan 2008 18:09
hey can you make a new command that would allow to record stereo sound The one with db is mono i guess ...
and also a command to load audio from memblock?
Id be willing to pay money for such an update if your plugin plays
music still when the app looses focus.
SoftMotion3D
AGK Developer
13
Years of Service
User Offline
Joined: 24th Aug 2005
Location: Calgary,Alberta
Posted: 17th Jan 2008 18:07 Edited at: 17th Jan 2008 18:08
whoops double post
Mobiius
Valued Member
16
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 8th Feb 2008 02:08
Hey, love the plugin, however the tag commands don't seem to work, I get the error message "unable to determine parameter type of 'AUDIO GET TAG COUNT LevelMusic( Id ).Num' at line blah blah blah (where LevelMusic( Id ).Num works for every other Audio command.

I have v1.55 but cannot seem to get this to work! I am using only Mp3's which have some tag details.

Hope you can help!

(Again, LOVE the plugin!)

3700+ Athlon 64 - Geforce 7600 GS - 2GbDDR2 RAM - 40Gb Hdd (In this pc) - Windows Vista Ultimate (x86)
tschwarz
14
Years of Service
User Offline
Joined: 13th Feb 2005
Location: 127.0.0.1
Posted: 8th Feb 2008 03:28
Also looping MP3's does not seem to work but, looping wav files do. It's a great plugin hope it is still being worked on.
Mobiius
Valued Member
16
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 8th Feb 2008 03:30
My MP3's loop wonderfully. Depends on whether your mp3's have blank space at the end as some encoders do not remove this.

3700+ Athlon 64 - Geforce 7600 GS - 2GbDDR2 RAM - 40Gb Hdd (In this pc) - Windows Vista Ultimate (x86)
tschwarz
14
Years of Service
User Offline
Joined: 13th Feb 2005
Location: 127.0.0.1
Posted: 8th Feb 2008 07:42
"My MP3's loop wonderfully"
Then I must be doing something wrong in my code. Will check the code again.

Thanks
Mobiius
Valued Member
16
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 9th Feb 2008 00:17
Sorry to bump again, but can anyone help with my tags issue? I seem to have fixed the:

But I cant seem to use 'Audio Get Key' I get a stupid:

Where Tags is an array from 1 to AUDIO GET TAG COUNT.

3700+ Athlon 64 - Geforce 7600 GS - 2GbDDR2 RAM - 40Gb Hdd (In this pc) - Windows Vista Ultimate (x86)
Mobiius
Valued Member
16
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 11th Feb 2008 16:53
No one can help?

Oh well.

3700+ Athlon 64 - Geforce 7600 GS - 2GbDDR2 RAM - 40Gb Hdd (In this pc) - Windows Vista Ultimate (x86)
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 11th Feb 2008 20:50
I'll have to update the command list on the first page of this forum topic when I get home tonight, but here's how you'd use the tag commands:



Mobiius
Valued Member
16
Years of Service
User Offline
Joined: 27th Feb 2003
Location: The Cold North
Posted: 12th Feb 2008 16:43 Edited at: 12th Feb 2008 18:54
Awesome-o fantastic-o marvelous super-sweet-16-ico!

Thanks a lot!

*Edit*
Track title seems to be missing? Am I doing something else wrong?

*Edit 2*
Whoops, the example starts at tag 1, title is tag 0. All all sorted and good to go!

3700+ Athlon 64 - Geforce 7600 GS - 2GbDDR2 RAM - 40Gb Hdd (In this pc) - Windows Vista Ultimate (x86)
Beast E Gargoyle
12
Years of Service
User Offline
Joined: 15th Feb 2007
Location: Sunny San Diego, CA
Posted: 22nd Feb 2008 23:09
Looks awseome. I'm using an older version of your product and it seemed to work well when I used it. Also u live in Ohio, so do I. All the best, Beastegargoyle

Streets of Rage the best 3d beat em up ever check out the wip on apollo forums!
The Last Great Swordsmen Wip here http://forum.thegamecreators.com/?m=forum_view&t=124414&b=19
Grandma
13
Years of Service
User Offline
Joined: 26th Dec 2005
Location: Norway, Guiding the New World Order
Posted: 2nd Mar 2008 14:08
Excellent plugin!

I will be looking forward to version 2.0. I considered re-doing the whole audio setup for my game and it would be a super-b**ch to complete it and notice 5 minutes later that you released version 2 that has great differences. I'll wait, but don't feel pressured.

Also if it's not a hassle, would adding brown noise be feasible? I like brown noise, it's almost like wind.

This message was brought to you by Grandma industries.

Making yesterdays games, today!
Profit
13
Years of Service
User Offline
Joined: 19th Feb 2006
Location: United States
Posted: 18th Apr 2008 03:44 Edited at: 19th May 2008 08:50
If this is still be working on, would it be possible to add the following commands?

Quote: "
set audio speed
get audio speed
set audio position
get audio position
"


Thanks

Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 24th May 2008 18:26
I haven't had much time to do much updating of this plugin in ages it feels like. I appreciate all the comments you've guys been leaving and knowing that you still find this useful.

Once I get a free moment to do more on this project I will spit out an update immediately. Right now I have 8 client projects that are taking up all my time. One client even asked me why I need to sleep, and I replied back, "There's only so much redbull can do".

bergice
12
Years of Service
User Offline
Joined: 5th Jun 2007
Location: Oslo,Norway
Posted: 24th May 2008 22:26 Edited at: 24th May 2008 23:03
Can this awesome plugin detect different sounds?

I have included the file i want to do it with.

It plays five different sounds and i need to store the position and what type of sound was played in an array

Included is the midi file

[EDIT]

The reason i want this, is because i am making a guitar hero fangame and i have some midi files containing the notes.

If this works you have saved me many hours of work!


Dont delete my sig mods, it is 600X120...
Slash!

Attachments

Login to view attachments
bergice
12
Years of Service
User Offline
Joined: 5th Jun 2007
Location: Oslo,Norway
Posted: 24th May 2008 23:37
I know you are online Torrey

I saw you changed your avatar XD

I need a reply to my question above


Dont delete my sig mods, it is 600X120...
Slash!
bergice
12
Years of Service
User Offline
Joined: 5th Jun 2007
Location: Oslo,Norway
Posted: 26th May 2008 21:21
Can this plugin detect sounds?

- Volume
- Pitch

Things like that?


Dont delete my sig mods, it is 600X120...
Slash!
Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 16th Jul 2008 20:57 Edited at: 16th Jul 2008 21:14
This plugin will be updated in the first post of this thread topic after I post this message. In this release there should be no crashing due to the cd drive being auto selected. The new command for selecting a CD audio drive is in this format:

AUDIO CD SET DRIVE LETTER "D:"

Update that drive letter with whatever drive the system is using your program runs on. I think dbpro has a command to get a list of drives that could help with setting the proper one. Right now there is not much of any error handling when it comes to CD audio, so use at your own risk. The main thing is that this release should be more stable than the previous.

Visit the first post to download the newest plugin!

[edit]

bergice,

This plugin doesn't detect different sounds. Something like that would probably beyond the reasonable scope of dbpro. A guitar hero style game would probably work best in some sort of multi threaded environment. You could emulate the detection by creating preset levels where the users have to press the various keys while the song plays.

Ed222
11
Years of Service
User Offline
Joined: 3rd Nov 2007
Location: Calgary
Posted: 28th Jul 2008 00:05
great plug in now I can use ogg instead of mp3 and not worry about the patent(for thoses of you who didn't know it's best to keep it that way unless you want to have a heart attack) BTW what's the license for this plug in are we allowed to use this commercialy?

Torrey
14
Years of Service
User Offline
Joined: 20th Aug 2004
Location: New Jersey
Posted: 28th Jul 2008 20:42
Quote: "great plug in now I can use ogg instead of mp3 and not worry about the patent(for thoses of you who didn't know it's best to keep it that way unless you want to have a heart attack) BTW what's the license for this plug in are we allowed to use this commercialy?"


Speaking for this version and all the ones previous you can use it in commerical applications and games.

Login to post a reply

Server time is: 2019-06-24 22:35:12
Your offset time is: 2019-06-24 22:35:12