mstop4/FMODGMS


🎶 GML bindings to the FMOD Studio low-level API for GM:S and GMS2. Can be used in Windows, macOS, and Linux games.

License: BSD-2-Clause

Language: C

Keywords: audio, audio-visualizer, extension, fft, fmod-studio, gamemaker, gml, linux, midi, sound, windows


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

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

Project Statistics

Sourcerank 5
Repository Size 127 MB
Stars 14
Forks 5
Watchers 7
Open issues 2
Dependencies 0
Contributors 3
Tags 10
Created
Last updated
Last pushed

Top Contributors See all

M.S.T.O.P. Gitle Mikkelsen rissole

Recent Tags See all

v.0.9.1 July 18, 2018
v0.9.0 October 21, 2017
0.8.0 February 17, 2017
0.7.1 December 06, 2016
0.7.0-b September 21, 2016
0.6.1-b August 01, 2016
0.6.0.1 July 08, 2016
0.6.1 June 12, 2016
v0.6.0 June 12, 2016
v0.5.1 May 02, 2016

Something wrong with this page? Make a suggestion

Last synced: 2018-09-11 08:52:17 UTC

Login to resync this repository