FMODGMS
A downloadable GameMaker extension for Windows, macOS, and Linux
A GameMaker: Studio and GameMaker Studio 2 extension that provides GML bindings to the FMOD Studio low-level API. Compatible with Windows and Linux games.
CURRENT STATUS OF PROJECT
This project has been officially retired. YoYo Games has released their own official FMOD extension for GameMaker, GMEXT-FMOD, that is more up-to-date and works with both FMOD Core and FMOD Studio. You can find the extension here:
https://github.com/YoYoGames/GMEXT-FMOD
This repo will remain up for archival purposes. I would like to thank Gitle Mikkelsen (Grix), rissole, and BPzeBanshee for their past contributions to the project.
Stable: 0.9.1
- Platforms: Windows, Ubuntu
- FMOD Studio API: 1.10.07
- GMS 2 Runtime: v.2.1.4.218
- GM:S Runtime: v.1.4.1804
Preview: 0.10.0
- Platforms: macOS, Ubuntu
- FMOD Studio API: 1.10.07
- GMS 2 Runtime: v.2.1.4.218
- GM:S Runtime: v.1.4.1804
Features
- Load and play a wide variety of audio formats not natively supported by GameMaker:Studio (e.g. MP3, MIDI, MOD, S3M, XM, IT, etc.).
- Add custom loop points to sounds. This allows, for example, a music track to have an intro section that can seamlessly transition into an infinitely looping main section without having to break them up into two separate files.
- Dynamically change to volume, playback frequency and relative pitch of a sound.
- Analyze an audio stream using Fast Fourier Transform (FFT) and obtain its spectrum data.
- Support for DSP effects such as flange, reverb and filters.
- Extract tag information from audio files (e.g. ID3 tags from MP3s and Vorbis tags from OGGs).
- Supports various audio output modes (e.g. ASIO, WASAPI, ALSA).
View this project on GitHub
Status | In development |
Category | Tool |
Platforms | Windows, macOS, Linux |
Rating | Rated 4.4 out of 5 stars (7 total ratings) |
Author | M.S.T.O.P. |
Made with | GameMaker |
Tags | Audio, fmod-studio, GameMaker, gamemaker-studio, sourcecode |
Code license | BSD 2-clause 'Simplified' License |
Average session | A few seconds |
Languages | English |
Inputs | Keyboard |
Links | Source code |
Download
Install instructions
Basic Usage
// Optional: Check to see if FMODGMS has loaded properly if (FMODGMS_Util_Handshake() == "FMODGMS is working.") show_message_async("Success! FMODGMS has been loaded."); else { show_message_async("Error! FMODGMS was not loaded prorperly."); exit; } // Create the system FMODGMS_Sys_Create(); // Initialize the system FMODGMS_Sys_Initialize(32); // Load sound sound = FMODGMS_Snd_LoadSound(working_directory + "sound.ogg"); // Create a channel channel = FMODGMS_Chan_CreateChannel(); // Play sound FMODGMS_Snd_PlaySound(sound,channel);
How to get a game using FMODGMS running on Ubuntu (v.0.9.1 or older)
1) Open up the Terminal and install OpenAL:
sudo apt-get install libopenal1
This is required to run any game made with GameMaker:Studio. Currently, there is no way to disable OpenAL in favour of using FMOD Studio just by itself.
2) Download FMOD Studio Programmer's API and Low Level Programmer API 1.09 for Linux from the FMOD website. Extract the contents of the tar file to a folder.
3) If you have a previous version of FMOD Studio installed, remove the old libraries typing into the Terminal:
cd /usr/local/lib/ sudo rm libfmod*
4) Copy the x86 (for 32-bit operating systems) or x86_64 (for 64-bit operating systems) libraries to /usr/local/lib using the Terminal:
for 32-bit OS: cd /path/to/fmodstudioapi110XXlinux/api/lowlevel/lib/x86 sudo cp -a libfmod* /usr/local/lib For 64-bit OS: cd /path/to/fmodstudioapi110XXlinux/api/lowlevel/lib/x86_64 sudo cp -a libfmod* /usr/local/lib
5) Add and export the library path:
export LD_LIBRARY_PATH=/usr/local/lib sudo ldconfig
6) Run the game to verify that FMODGMS is working with it.
Development log
- v.0.10.0 PreviewJul 26, 2018
- FMODGMS 0.9.1 Released!Jul 19, 2018
- FMODGMS 0.9.0 released!Oct 22, 2017
- Compatibility issues fixed in GMS 2.1Sep 09, 2017
- Compatibility between FMODGMS and GMS2May 03, 2017
Comments
Log in with itch.io to leave a comment.
Best Audio Engine ever! But, can you add Android Support?
FMODGMS constantly crashes just after I load a sound from get_open_filename function
Hey, this extension is awesome! I've been using it for almost a year now, but i wanna ask about a x64 support for GMS 2.3.1+, would you plan on update this someday again?
Awesome it help me a lot, but im wonder if it is possible to make it compatible with android, it would be extremely helpful
Hopefully you'll see this, which file would I need to modify to change the lowpass effect values? I can't notice the effect that much so I want to make it even lower, thanks.
Nevermind I've found the function to change it, for anyone interested FMODGMS_Effect_Set_Parameter(effect, 0, value);
btw amazing extension
Perhaps a bit late to the party. But has anyone found a way to use this extension without exposing all the sound files to the player?
I believe their is an encrip function in gamemaker
Nice work!
Does it allow for the playback of fmod events?
Is there any way to change the panning and volume of individual sounds without altering an entire channel?
any document for help?
Anyone knows if I can play audio directly from the imported resources in Game Maker or it needs to be external files? I'm trying to make it play a file I imported directly to it but it crashes. :(
Currently, FMODGMS can only read external files. I'll try to see if there is a way to play imported sound resources.
I guess this has long since gone irrelevant. But i thought i'd mention in case anyone else wants to find this out.
If you want to play internal sound files with fmodgms then you can write something like. Granted that the file is set to streamed_compressed in GMS
Delay effect? Also can effects be stacked or is it only one per track? And finally how customization are the dsp effects? dry/wet, reverb time and density?
I'm running the demo in GMS2 with the yoyo compiler, and haven't change anything in the project, but still i get that FMOD failed to load...
I just uploaded a new build of the extension and demo. Trying running it and see if it works now.
Where can i find a tutorial about this extension?
I don't have a tutorial written up yet (it's on my to-do list), but you can try poking around the source code for the demo program:
GM:S 1.4: https://github.com/mstop4/FMODGMS/tree/master/src/gms/FMODGMS%20Test.gmx
GMS 2: https://github.com/mstop4/FMODGMS/tree/master/src/gms2/FMODGMS%20Test
Uh, allrigth! Thanks a lot!
The extension is working in GMS 2 with windows(YYC), but i can't get it to work with Ubuntu, it says it cant find FMODGMS.so.
edit: I didn't see there was a sample project inside the src folder. That should have been clearer! Thank you for your work! :) After a bit of debugging I got a song to play!
<old post edited>
Does this let you import and playback events made in Fmod Studio?
I really would love it... can someone confirm if we can load and play Fmod Studio events ?
Is the demo program crashing or is the extension crashing your game?
I got a few crashes because I was trying to play a file that was not loaded. The loading failed because the index was incorrect. It turns out that renaming an included file from explorer.mod to explorer and then back to explorer.mod in game maker makes its name bogus. So I just renamed it back to simply explorer and it worked.
Brilliant stuff ^_^