Audio API & Audio Management for SMAPI, without any utilization of HarmonyLib.
Add custom music to your mods!
---
What does this mod do?
SAAT is a framework aimed to adding, managing, and modifying audio tracks in Stardew Valley. In addition, it seeks to improve the audio engine at a later date, as XNA / MonoGame's audio engine is lackluster in memory management and support. It aims to be harmony-less.
You can see examples of how to add custom audio tracks from the Documentation on Github
Please note I am releasing this mod a little early due to demand. Hence the "not yet implemented" list.
---
Current Functionality:
Allow brand new music and sound effects to be added into Stardew Valley
Allows music to be added into the jukebox.
Not Yet Implemented / Upcoming features:
Audio Signal Processing (APS or DPS)
Upcoming feature that will allow for audio to undergo low-pass, high-pass, altered pitch, effects, and more without the need to create another track.
Proper memory management
This is to be the prime feature of the API. As of now, Stardew Valley relies on XNA / MonoGame to handle memory management for audio. The memory management is poor in design, as it loads all or nothing. Typically, audio is chunked into memory rather than retailing it all at once. This creates a very large consumption of memory.
In example, the winter music tracks are loaded into memory at the beginning of the game. Even if its spring. You won't hear the audio track for 3/4th of the game, yet it is still consuming memory.
Note: This subset of the API / Mod will be written in C. Native is required to ensure performance.
Packed Audio Format
In conjunction with proper memory management, audio is to be compacted into binary files on a per mod basis. This allows for faster loading / unloading / reloading operating.
It will not be required, but it will optimizes performance. Especially for larger audio files.
Toolkit for Packed Audio Format
To assist and encourage content creators in optimizing audio for performance, a tool will be provided to create the packed audio format mentioned above.
Source Code and Documentation
Add custom music to your mods!
---
What does this mod do?
SAAT is a framework aimed to adding, managing, and modifying audio tracks in Stardew Valley. In addition, it seeks to improve the audio engine at a later date, as XNA / MonoGame's audio engine is lackluster in memory management and support. It aims to be harmony-less.
You can see examples of how to add custom audio tracks from the Documentation on Github
Please note I am releasing this mod a little early due to demand. Hence the "not yet implemented" list.
---
Current Functionality:
Allow brand new music and sound effects to be added into Stardew Valley
Allows music to be added into the jukebox.
Not Yet Implemented / Upcoming features:
Audio Signal Processing (APS or DPS)
Upcoming feature that will allow for audio to undergo low-pass, high-pass, altered pitch, effects, and more without the need to create another track.
Proper memory management
This is to be the prime feature of the API. As of now, Stardew Valley relies on XNA / MonoGame to handle memory management for audio. The memory management is poor in design, as it loads all or nothing. Typically, audio is chunked into memory rather than retailing it all at once. This creates a very large consumption of memory.
In example, the winter music tracks are loaded into memory at the beginning of the game. Even if its spring. You won't hear the audio track for 3/4th of the game, yet it is still consuming memory.
Note: This subset of the API / Mod will be written in C. Native is required to ensure performance.
Packed Audio Format
In conjunction with proper memory management, audio is to be compacted into binary files on a per mod basis. This allows for faster loading / unloading / reloading operating.
It will not be required, but it will optimizes performance. Especially for larger audio files.
Toolkit for Packed Audio Format
To assist and encourage content creators in optimizing audio for performance, a tool will be provided to create the packed audio format mentioned above.
Source Code and Documentation