sfxr.lua/README.md
2014-05-26 12:56:54 +02:00

53 lines
1.6 KiB
Markdown

sfxr.lua
========
A port of the sfxr sound effect synthesizer to pure Lua, designed to be used
together with the *awesome* Löve2D game framework.
Example usage
-------------
These examples should play a randomly generated sound.
With [Löve2D](http://love2d.org) 0.9:
```lua
local sfxr = require("sfxr")
function love.load()
local sound = sfxr.newSound()
sound:randomize()
love.audio.newSource(sound:generateSoundData()):play()
end
```
With [lao](https://github.com/TheLinx/lao):
```lua
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()
local buffer = sound:generateString()
device:play(buffer, #buffer)
```
Known Issues
------------
Issues marked with an exclamation mark should be prioritized to be fixed before
adding any more complicated features. These marked with a question mark either
are of less priority or it is unknown if they should be handled as a bug.
- ! The sine wave sound distorts when played with a frequency lower than 0.33.
- ! The phaser offset has no audible effect, the phaser sweep however has.
- ! The Lowpass and Highpass filters sounds distorted.
- ! Changing is broken when the amount is < 0.
- Sometimes (sometimes!) the generator yields nil, which causes setSample to fail.
- ? `Sound.repeatSpeed`, `Sound.waveType` and `Sound.frequency.deltaSlide` should be lowercased instead of camelcased.
- ? Everything seems to be pitched slightly higher than at the original (floating point error?)