-
Notifications
You must be signed in to change notification settings - Fork 1
Introduction(EN)
lhx077 edited this page May 7, 2025
·
4 revisions
⚠️ Warning: This project is currently in Alpha stage and may not be fully functional. Please use with caution in production environments!
FSBProcessor(FSBLib) is a C# library for processing FMOD's FSB (FSBank) format audio files. The library provides functionality to decode FSB files into common audio formats (such as WAV) and to package regular audio into FSB format, making it convenient for Unity/UE game modding.
- Parse FSB file structure and extract audio information
- Decode FSB files to WAV format
- Package common audio files (such as WAV, MP3, etc.) into FSB format
- Support direct packaging of WAV files into FSB format
- Support complete parsing of multiple FSB versions (FSB1-FSB5)
- Support multiple audio formats (PCM, MP3, Vorbis, etc.)
- Precisely extract sample rate information from metadata
- .NET Standard 2.0 or higher
- Depends on NAudio library for audio processing
- Clone or download this repository
- Open the FSBProcessor.sln solution file with Visual Studio
- Compile the project to generate FSBLib.dll
- Reference the generated DLL file in your project
using FSBLib;
// Create FSBProcessor instance
var processor = new FSBProcessor();
// Parse FSB file to get audio information
var samples = processor.ParseFSB("path/to/your/file.fsb");
// Display audio information
foreach (var sample in samples)
{
Console.WriteLine($"Name: {sample.Name}");
Console.WriteLine($"Format: {sample.Format}");
Console.WriteLine($"Channels: {sample.Channels}");
Console.WriteLine($"Sample Rate: {sample.SampleRate} Hz");
Console.WriteLine($"Length: {sample.Length} bytes");
Console.WriteLine();
}using FSBLib;
// Create FSBProcessor instance
var processor = new FSBProcessor();
// Decode FSB file to WAV files
var outputFiles = processor.ExtractToWav("path/to/your/file.fsb", "output/directory");
// Display output file paths
Console.WriteLine("Decoded files:");
foreach (var file in outputFiles)
{
Console.WriteLine(file);
}using FSBLib;
using System.Collections.Generic;
// Create FSBProcessor instance
var processor = new FSBProcessor();
// Prepare a list of audio files to package
var audioFiles = new List<string>
{
"path/to/audio1.wav",
"path/to/audio2.mp3",
"path/to/audio3.wav"
};
// Package audio files into an FSB file
processor.PackToFSB(audioFiles, "output.fsb", FSBProcessor.FSBVersion.FSB5);
Console.WriteLine("Packaging complete: output.fsb");using FSBLib;
using System.Collections.Generic;
// Create FSBProcessor instance
var processor = new FSBProcessor();
// Prepare a list of WAV files to package
var wavFiles = new List<string>
{
"path/to/audio1.wav",
"path/to/audio2.wav"
};
// Package WAV files into an FSB file (preserving original format)
processor.PackWavToFSB(wavFiles, "output.fsb", FSBProcessor.FSBVersion.FSB5);
Console.WriteLine("Packaging complete: output.fsb");- The library now supports multiple audio formats, including PCM, MP3, and Vorbis formats
- Added direct packaging support for WAV files, preserving original audio format and quality
- FSB5 format is now fully supported, including precise extraction of sample rate from metadata
- For some special FSB files, further format adaptation may be required
- Using the PackWavToFSB method provides better audio quality and more precise format control
This project is licensed under the Apache License 2.0
Issue reports and improvement suggestions are welcome!
Created By lhx077