Description

exAudio is a battle tested free abstraction layer for the audio_* functions of GameMaker Studio, plus it contains some additional functionality.

Features

  • Getters & Setters: exAudio keeps track of audio data. Getters include position, velocity, falloff, volume, pitch and more. For sounds and the listener

  • Audio Classes: You can create classes and add sounds to them in order to manipulate them all together at the same time

  • Fade Volume & Pitch: exAudio contains functions for fading both volume & pitch. It is also done by using steps instead of milliseconds for better sync with alarms and timelines.

  • Suspend Audio: You can Suspend all the sounds when e.g. the game loses focus. audio_pause_all() function is not really good use in our case, as the developer might have paused some sounds intentionally so audio_resume_all() will resume ALL the sounds, even the ones we don't want to. ex_audio_suspend_all() and ex_audio_restore_all() intelligently checks if the sounds are paused intentionally and leaves those alone.

  • Unique Sounds: Classes can be used to store a series of sounds which can be played later on using the function ex_audio_class_play_unique(). That will choose a random sound from the class to play but the next time it will not play the same sound again. This functionality works best if you have lots of sounds in the particular group (e.g. around 10 or more) and reduces repetition of sound effects plus provides a better immersion especially for games that demand realism.

  • Easing: Fading in/out the volume or pitch of the sound can have easing applied to it, so it fades much smoother or with e.g. an "elastic" effect.

  • Fully Documented

End User Licence Agreement (EULA).

Changes in 1.0.2

Fixed errors when changing volume and pitch of classes without any sounds

Fixed error with checking if class contains sounds

Fixed issue with ex_audio_has_class(), extra check if class has sounds before checking them

Added newer Easing scripts that now have the scr_* prefix as well so they cause no conflict

Version 1.0.2. Published April 15, 2018

Created with GameMaker: Studio v1.4.1804

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Gravatar

Troy T 21 March 2018

This review was left for a previous version of this asset.

Logo

alexandervrs (Publisher) 15 April 2018

Could you please note any issues you had with the extension?


Gravatar

Grzegorz K 31 January 2018

exAudio causes crash on MacOS - GM2

Hi,

this product is cool, but I've found that it causes crash on macOS. This is caused by ex_audio_load function if you comment function out everything works and the game stats up. Because show_debug_message still doesn't work on macOS it's difficult to debug it, I will try my best anyway.

Apple error:

Exception Type: EXC_ARITHMETIC (SIGFPE)
Exception Codes: EXC_I386_DIV (divide by zero)
Exception Note: EXC_CORPSE_NOTIFY

Termination Signal: Floating point exception: 8
Termination Reason: Namespace SIGNAL, Code 0x8
Terminating Process: exc handler [0]

This review was left for a previous version of this asset.

Logo

alexandervrs (Publisher) 15 April 2018

Thank you, I'll investigate if I can fix this on my end

**Edit**: I just noticed this was about GMS2. Yes, seems that GMS2 has some issues when importing many extensions and its compatibility mode so could be it.
This extension is tested under GMS1 but because I use it also as standalone scripts in my GMS2 projects, it should not have any issues normally

However, you might be able to do a workaround if you first import exAudio in a GMS1 project and then transfer that to GMS2


Gravatar

Anonymous 04 November 2017

Very good, just one little thing...

If you just create an class and tries to set it's volume when there's no sound associated to it:

ex_audio_class_create("test");
ex_audio_class_set_volume("test", 1, 0);

It show this warning:

Grid 1, index out of bounds writing [0,0] - size is [5,0]

But besides this, no problem using it at all.

Edit: To not have the warning not appear, I did this:

var soundCount = ds_grid_height( ex_audio_class_get_index(className));
//ex_audio_class_count_sounds give the same warning, so can't use it either

if(soundCount > 0)
{
ex_audio_class_set_volume(className, volume, 0);
}

This review was left for a previous version of this asset.

Logo

alexandervrs (Publisher) 15 April 2018

Ah yes, a class needs to have content first before you can manipulate it. It's not a bad feature to add so you can initialize class volume/pitch etc easier.
I will fix the sounds counting bug though in the next version, I had to check first the length of the DS grid, then check its contents. Thanks for the report

**edit**
Should be fixed in 1.0.2


Gravatar

Anonymous 10 June 2017

This review was left for a previous version of this asset.


Gravatar

Ross M 03 October 2016

This review was left for a previous version of this asset.


Gravatar

Mark T 14 September 2016

This review was left for a previous version of this asset.


Gravatar

Wizio G 24 January 2016

Very good and useful!

Very well designed extension and it's like a dream. Controlling sound is a really headache in gamemaker. But with this extension GM sound system is now very professional :)
I've a question about memory usage. After loading a sound; memory usage increases approx. 5 mb and after unloading same sound; memory decreases approx 2 mb. Is there anyway to clear all memory for this sound?
I've have some objects in different positions. I want to control their volumes by distance from player..
I use this code for create event of these objects;
ex_audio_load(string(id), snd_01);
and in destroy eventof this object
ex_audio_unload(string(id))

Did I do something wrong?

This review was left for a previous version of this asset.

Logo

alexandervrs (Publisher) 15 September 2016

ex_audio_unload() should clear the sound from memory. However, if your sound is part of an Audio Group, it will not be unloaded unless all other sounds are unloaded as well.
I also noticed that I wasn't deleting items from the grid correctly in some other code of mine, so I updated this as well with a better method, unloading should not have any problems now.


Gravatar

davide m 09 November 2015

Amazing!

This asset is fantastic, i don't know how to thank the publisher for sharing it for free. It unlocks so many doors, if you like to play with sounds and music :)

This review was left for a previous version of this asset.


Gravatar

Waldemar R 31 August 2015

quality software, great idea

Your code is very well thought over and designed. Apart from the core functionalities, one can learn a lot from You.

I think you have provided the GM community with a very useful educational resource.

Thank You.

Kind regards.

This review was left for a previous version of this asset.


Gravatar

Brad L 20 November 2014

Couldn't be better!

I was able to make a ryhthm game similar to guitar hero and tap tap revenge using this extension! Was exactly what I needed and easy to learn how to use. If you are wanting to make any kind of ryhthm game, the functions this extension provides are a must.

This review was left for a previous version of this asset.


Gravatar

ENDESGA S 03 November 2014

Perfect

This is a fantastic system you have here! I love it's high functionality!

This review was left for a previous version of this asset.


Gravatar

Fredy C 18 August 2014

Amazing, just what I wanted.

works like a charm with HTML5, includes easy to understand example.

Thank you.

This review was left for a previous version of this asset.

Package contents

Loading, please wait

What is the issue?

Back to Top