A port of the sfxr sound effect synthesizer to Lua
Go to file
David Briscoe 8c46b82b54 Default to a love-supported bit depth for SoundData
Fix "Invalid bit depth: 0" error in love when calling generateSoundData
without arguments.

Love2d 11 (and earlier?) only supports 8 and 16, so don't default to 0
when generating a love object.
2022-01-08 09:44:31 -08:00
demo LoveFrames doesn't support 0.10.0 2016-03-02 00:37:06 +01:00
docs Moved /doc to /docs; Added docs to copy_directories 2016-09-18 23:48:42 +02:00
rockspec Set rockspec tag 2016-09-19 00:05:09 +02:00
.gitignore Removed docs from .gitignore 2016-03-02 00:40:31 +01:00
.gitmodules Added RockSpec; Moved demo application; README fixes 2016-03-01 20:24:35 +01:00
config.ld Moved /doc to /docs; Added docs to copy_directories 2016-09-18 23:48:42 +02:00
LICENSE Initial commit 2014-04-11 10:31:10 -07:00
README.md Updated README 2016-09-19 00:11:18 +02:00
sfxr.lua Default to a love-supported bit depth for SoundData 2022-01-08 09:44:31 -08: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.