chroma_solstice/libs/sfxrlua
Your Name 03532d29e4 Vendor libs/hump, sfxrlua, json4lua, narrator as real files
These were committed as empty submodule gitlinks with no .gitmodules,
so the folders were never populated and the game could not load
(require of libs/hump/timer, libs/sfxrlua/sfxr, narrator.narrator).
Checked out each at its pinned commit and vendored the files, matching
the existing bundled-libs convention. Removed the junk libs/libs/ tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-11 11:37:09 -04:00
..
demo Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
docs Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
rockspec Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
.gitignore Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
.gitmodules Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
config.ld Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
LICENSE Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
README.md Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00
sfxr.lua Vendor libs/hump, sfxrlua, json4lua, narrator as real files 2026-08-11 11:37:09 -04:00

sfxr.lua

luarocks install sfxr

A port of the sfxr sound effect synthesizer to pure Lua, designed to be used together with the awesome LÖVE game framework.

Demo

To run the demo application you first need to download LoveFrames as a submodule:

git submodule update --init
love demo

Note: Due to LoveFrames only supporting LÖVE 0.9.x, this dependency is inherited by the demo. A move to a new GUI framework is pending.

Example usage

The following code examples demonstrate how to play a randomly generated sound:

With LÖVE:

local sfxr = require("sfxr")

function love.load()
    local sound = sfxr.newSound()
    sound:randomize()
    local sounddata = sound:generateSoundData()
    local source = love.audio.newSource(sounddata)
    source:play()
end

With lao:

require("ao")
local sfxr = require("sfxr")

local driverId = ao.defaultDriverId()
local device = ao.openLive(driverId, {bits = 16, rate = 44100, channels = 1})

local sound = sfxr.newSound()
sound:randomize()

device:play(sound:generateString())

Documentation

The latest documentation build is available here

This project uses LDoc for autogenerated API documentation.