Skip to content
Branch: master
Go to file
Code

Latest commit

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
img
 
 
src
 
 
 
 
 
 
 
 

README.md

FMODGMS

A GameMaker: Studio and GameMaker Studio 2 extension that provides GML bindings to the FMOD Studio low-level API. Can be used in Windows, macOS, and Linux games.


Status

Note:

The project is on hold for the time being. Work on this project is mainly done by me and I don't have as much time as I did in the past to maintain, add features, and keep up with the development of FMOD Studio. There might be a time when I'll come back to work on this, but I'm not certain when that will be.

If you want to contribute to the project, feel free to create a pull request. I would like to thank Gitle Mikkelsen (Grix), rissole, and BPzeBanshee for their past contributions to the project.

Latest - 0.10.0

  • Platform coverage:
Windows macOS Ubuntu
GM:S 1.4 VM ✔️ ⚠️1 ✔️
GM:S 1.4 YYC ✔️ 🚧 ✔️
GMS 2.1 VM ✔️ ⚠️1 ✔️
GMS 2.1 YYC ✔️ ✔️ ✔️

1. Works with "Create Executable" only, not "Run" or "Debug"

  • FMOD Studio API: 1.10.07
  • GMS 2 Runtime: v.2.1.5.246
  • GM:S Runtime: v.1.4.1804

Stable - 0.9.1

  • Platform coverage:
Windows macOS Ubuntu
GM:S 1.4 VM ✔️ ❌ ✔️
GM:S 1.4 YYC ✔️ ❌ ✔️
GMS 2.1 VM ✔️ ❌ ✔️
GMS 2.1 YYC ✔️ ❌ ✔️
  • 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.).
  • Play MIDI files using DLS1 sound banks.
  • 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).

What's inside

  • FMODGMS_x64.gmez - FMODGMS GameMaker: Studio extension for GMS 2.
  • FMODGMS_x86.gmez - FMODGMS GameMaker: Studio extension for GM:S 1.4. Contains a 32-bit build of the Linux library for compatibility.
  • FMODGMS_Demo_win.zip - FMODGMS player demo for Windows
  • FMODGMS_Demo_linux.tar.gz - FMODGMS player demo for Linux
  • FMODGMS_Starter.yyz - A minimal FMODGMS project for GMS 2.
  • FMODGMS_Starter.gmz - A minimal FMODGMS project for GM:S 1.4.
  • src - library, player demo, and unpackage starter project source code
    • gms/FMODGMS Test.gmx - GM:S 1.4 project for player demo
    • gms/FMODGMS Starter.gmx - GM:S 1.4 starter project
    • gms2/FMODGMS Test - GMS 2 project for player demo
    • gms2/FMODGMS Starter - GMS 2 starter project
    • linux - FMODGMS source for Linux
    • xcode - Xcode project for macOS. Shares code with Linux.
    • vc/FMODGMS - FMODGMS source for Windows as a Visual Studio project

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);

Possible Features in the Future

  • More options for FFT and spectrum data functionality.
  • Android support.

For a list of changes and development history, click here.

Contributors

You can’t perform that action at this time.