Giter Site home page Giter Site logo

mstop4 / fmodgms Goto Github PK

View Code? Open in Web Editor NEW
62.0 6.0 18.0 130.3 MB

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

Home Page: https://quadolorgames.itch.io/fmodgms

License: BSD 2-Clause "Simplified" License

Game Maker Language 6.20% Shell 0.05% C 73.53% C++ 20.22%
gamemaker fmod-studio extension sound fft midi linux windows gml audio

fmodgms's People

Contributors

grix avatar mstop4 avatar rissole avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

fmodgms's Issues

Updating the base FMOD version

Not sure how worthwhile it would be to do this, but latest anything generally makes sense if it isn't introducing new regressions. I've done some testing towards this end, and found that of surprise to no expert, simply replacing the fmod.dll won't quite cut it: updating the included FMOD source code and object libraries, followed by recompiling FMODGMS, is necessary.

I ran out of time to do this and submit a pull request myself, but as far as existing supported functions go, the only crucial stumbling blocks I was able to find to this end in Visual Studio was the removal of FMOD_TAGDATATYPE_CDTOC as a category, and changes to the CPU usage function returning a struct with multiple floats covering different parts of the FMOD process.

The former fix seems as easy as using FMOD_TAGDATATYPE_MAX instead to me, but I'm unsure on how best to proceed with the latter given that GameMaker 2022 does not yet support passing anything other than doubles and strings to and from extensions. Any advice and assistance on this front would be appreciated. :)

EDIT: it seems cam900 is several months to a year ahead of me and has already worked on this, see here: cam900@55eaa67

It may be worthwhile accepting pull request #30 (so we can actually get working builds again under GameMaker 2022.8 now that they've mandated 64-bit support) and then pulling these changes into master for future GameMaker use. :)

Doesn't work with FMOD Studio 1.08.08

Crashes in fmod.dll. No idea why right now.

fmod-nick:

There's an issue with FFT window sizes less than the DSP blocksize. We'll get it fixed in 1.08.10.

Works with 1.08.07.

Can't mute the level music when a variable is activated.

Im using GMS 1.4 and i need to the level music mute when the temporary invincibility is playing and for some reason the mute isnt working.
I made this in the audio object:

if instance_exists(objPlayer){
if objPlayer.invincibility=1
FMODGMS_Chan_Set_Mute(0,true)
else if objPlayer.invincibility=0 || objPlayer.invincibility=3
FMODGMS_Chan_Set_Mute(0,false)
}

Does not play Sony ATRAC9 format.

I tried to play bgm.at9 which came with PSVita SDK but it says "FMOD error! (19) Unsupported file or audio format." even though ATRAC9 seems to be supported by FMOD (it's mentioned in a lot of places)

My code:
https://pastebin.com/7E1Td8j5

FMODGMS version 0.9.1
GM:S version 1.4.9999

Is there a way to bring ATRAC9 support?

Understanding problem

We are looking into using FMOD or Wwise in a GameMaker project. Your example seems to be heavily music focused. Is this extension meant to be used for interactive projects (events, listeners, 3D sounds, etc.)? Can you import a large FMOD project and trigger parameterized events with this extension?

Cheers!

Questions about the rewrite

Hi,
I have finally started the work on migrating to this sound engine in one of my programs, but I just noticed that you have opened a new branch for a refactor. So I have two questions:

  • Will the refactored extension be compatible with the old one (same function names etc)? Or should I wait to migrate until the refactor is done so I don't have to change everything again once the new version is out?

  • I want to contribute a bit more code to this project, should I also wait until you are done with the refactor and then add a pull request, or is it better to start right away and add a pull request on the current/legacy branch?
    (specifically I need to implement a way to pass flags such as FMOD_ACCURATETIME to the LoadSound/Stream function, and eventually add functionality to do FFT on a whole song at once instead of only getting instantaneous data during playback).

Sorry if creating an issue to ask this was inappropriate, I couldn't find a more elegant way to contact you.

Issues with FMODGMS and GMS2

FMODGMS does not work during testing (e.g. if the game is run within the GMS2 IDE using the "Run" or "Debug" commands.

However, it does run properly after the game is build as a standalone executable and launched outside of GMS2.

Can this tool be used to access data from FMOD Studio bank files?

I have used FMOD extensively in Unity and everything in that is driven by bank files. Loading events, setting triggers, reading data about events that are currently playing. I went through the GMS2 example from the main page, but it is doing one extremely specific thing: load a .s3m song file into the FMOD channel and play it.

What I am looking to do is load in a bank file, then play sounds/songs from the bank file. I noticed the features listed for this tool suggest that a lot of FMOD Studio features are supported, but my experience with utilizing FMOD is through loading and utilizing a core bank file (everything else is hidden from the user).

Any direction here would be greatly appreciated.

Can't read chinese/japanese character from tag

when i try to read tag the japanese/chinese character become ??? (question mark)
i am use FMODGMS_Snd_Get_TagStringFromIndex
image
game maker use utf8 , i think the extension use utf16 right?

before if I was wrong please forgive me :D *and sorry bad english
I just used FMOD for about 1 week, this extension is very useful!

kissfft not working on the linux version

I am trying to port my application, which uses this library and the kiss_fft functions I contributed, to Linux. But it seems something has gone wrong in the linking process or something. There are no release binaries for the latest version in this repo, but if I build the library myself using the build64.sh script, it completes and the program runs, but when I then try to call a function that uses the kissfft library, the program crashes with the following error:

symbol lookup error: assets/libfmodgms.so: undefined symbol: kiss_fft_alloc

Do you know how to build the library to fix the kissfft symbols?

Support for Android

I am preparing a game that is going to be released for Android. GameMaker isn't that good at audio playback especially when it comes to looping the music seamlessly with loop points. It would be nice if you added support for Android.

playing multiple sound effects?

i'm making a game and i'm trying to, well, make it possible to play more than one sound effect at a time. unfortunately for whatever reason i can't make that happen, any idea why?

test room's creatoin code (barring the parts lifted straight from the starter project):
obraz

player step event:
obraz

Feature Request: FMODGMS_Snd_IsPlaying

Hello,

Looking over the documentation FMODGMS has no function engine-side to check if a channel or sound is currently playing. GMFMODSimple and every other audio engine for GM I've seen has this as a feature and it'd be good to have it here too.

My personal use case involves managing a variable that used to use FMODInstanceIsPlaying. Every attempt I've made to try and make this work through other means, including by checking track position and seeing if it's stuck at 0 for some time, seems to fail and/or require copious amounts of extra code for something that used to be just one line with an FMOD API check.

No way to start a sound with 0 volume, popping sound when Setting Channel Volume

Using GMS 1.4.

I want the sound to start at 0, in case I want to fade something in or the volume setting is set to 0. But FMODGMS_Snd_PlaySound will always knock it back to 1. So I try to set the volume afterwards using FMODGMS_Chan_Set_Volume then causes a popping sound. Even doing similar in the Starter project causes another popping sound with the original music.

I know it's definitely possible because SonicForGMS (GMS1) doesn't have any popping but I can't make heads or tails of how it achieves it.

Including fmod libraries with ubuntu

Hi. I tried running this in ubuntu with the new 64-bit binary release, but when I run either the Test or Starter program, in either YYC or VM, I get the message "Error! FMODGMS was not loaded properly."

This is with an unmodified repo at commit 04818d0 , and completely fresh ubuntu 16.04 install after only following this guide: https://help.yoyogames.com/hc/en-us/articles/235186168-Setting-Up-For-Ubuntu

Is something else needed to make it work? How can I debug this?

I saw the git wiki page about the ubuntu setup and that you manually had to install fmod libraries locally. Now it works, but that's not very user friendly, the libraries should be included with the extension so that the user doesn't have to do anything IMO, like I set up the mac version to do.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.