kburkhart84
Firehammer Games
Welcome to Firehammer Audio. This system can make a developer's life much easier as far as sound control. It has various systems to do things you would normally have to write code for, all while using native vanilla GML for maximum compatibility. This first release has all the below features, and is ready to go for your next project, or even your current one if you are willing to do the conversion.
Thanks in advance to everybody for taking a look. Here is to getting better audio in all your projects!!!
You can also get on my discord (https://discord.gg/6VrZkP2) if you would like to more directly discuss anything with this system(or my input system).
- Music system
- Plays and tracks music
- Crossfades between music tracks
- Swapfades between like(but different music tracks)
- Can automatically remember what point of the track the music is on when you pause or switch tracks, and will automatically start the music there(unless you tell it not to).
- Can also remember which music was the last one you were playing and can begin playing that one again without you specifying it
- Sound system
- Automation of volume and pitch variance when you play a sound
- Automation of choosing different actual sound effects for a single sound(in combination with pitch and volume variance), including 3 different behaviors for choosing which sound to play
- Easy usage of the mentioned sound systems for 3d sounds
- Automatic instance tracking for both the listener and 3d sound emitters(both position and velocity)
- Can make sounds fade out over time instead of stopping mid-loop, useful to avoid clipping noise that happen with instant stops not at full-zero of the sound wave
- Volume system
- Expansive volume control, starting with global Master Volume, down to Music Volume, and then Sound Category Volume
- Automatically adjusts music and sounds that are playing(as long as they are looping) when you adjust volumes.
- Automatic saving of all volume settings into a file, which is then loaded the next time the game is ran, if you choose to leave the setting on.
- Category system
- Which groups like sounds that can be controlled as a group, including setting volume and pausing all looping sounds within a category(and resuming them).
- Basic settings are accessible via single script with #macros.
- Extensive Debug Mode(enabled by default) which gives nice messages if you make a mistake calling the system's functions so you know exactly what happened. This can be turned off and the GML compiler will compile out all of those safety checks for performance.
- Easy identification of which arguments to a function are optional, using an underscore before the names.
- ZERO syntax errors as shipped. I applied workarounds/tricks to reference optional arguments to functions so that you never get unused argument errors, and I make sure to reference all functions and macros that aren't already referenced from within the system so you don't get syntax errors for unused functions/macros, even if you delete the examples.
- Uses a double underscore prefix to all internal functions and objects so that only what you need to use shows up in the code editor's auto-complete window.
- Uses "fhAudio" as a prefix for all functions that you will ever need to call so they can easily be found and filtered in the auto-complete window
- Three examples that show the basics of what the system handles for you
Thanks in advance to everybody for taking a look. Here is to getting better audio in all your projects!!!
You can also get on my discord (https://discord.gg/6VrZkP2) if you would like to more directly discuss anything with this system(or my input system).
Last edited: