Zig build package and wrapper for miniaudio v0.11.21
As an example program please see audio experiments (wgpu).
Provided structs:
-
Device -
Engine -
Sound -
SoundGroup -
NodeGraph -
Fence -
Context(missing methods) -
ResourceManager(missing methods) -
Log(missing methods) -
DataSource(missing methods)-
Waveform -
Noise - custom data sources
-
-
Node-
DataSourceNode -
SplitterNode -
BiquadNode -
LpfNode // Low-Pass Filter -
HpfNode // High-Pass Filter -
NotchNode -
PeakNode -
LoshelfNode // Low Shelf Filter -
HishelfNode // High Shelf Filter -
DelayNode - custom nodes
-
In your build.zig add:
pub fn build(b: *std.Build) void {
const exe = b.addExecutable(.{ ... });
const zaudio = b.dependency("zaudio", .{});
exe.root_module.addImport("zaudio", zaudio.module("root"));
exe.linkLibrary(zaudio.artifact("miniaudio"));
}Now in your code you may import and use zaudio:
const zaudio = @import("zaudio");
pub fn main() !void {
...
zaudio.init(allocator);
defer zaudio.deinit();
const engine = try zaudio.Engine.create(null);
defer engine.destroy();
const music = try engine.createSoundFromFile(
content_dir ++ "Broke For Free - Night Owl.mp3",
.{ .flags = .{ .stream = true } },
);
defer music.destroy();
try music.start();
...
}