mirror of
https://github.com/nucular/sfxrlua.git
synced 2024-12-24 18:44:20 +00:00
60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
sfxr.lua
|
|
========
|
|
|
|
A port of the sfxr sound effect synthesizer to pure Lua, designed to be used
|
|
together with the *awesome* [LÖVE](https://love2d.org) game framework.
|
|
|
|
Demo
|
|
----
|
|
|
|
To run the demo application you first need to download
|
|
[LoveFrames](https://github.com/NikolaiResokav/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
|
|
-------------
|
|
|
|
These examples should play a randomly generated sound.
|
|
|
|
With [LÖVE](http://love2d.org):
|
|
```lua
|
|
local sfxr = require("sfxr")
|
|
|
|
function love.load()
|
|
local sound = sfxr.newSound()
|
|
sound:randomize()
|
|
sound: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)
|
|
```
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
[**The latest documentation build is available here**](http://nucular.github.io/sfxrlua/)
|
|
|
|
This project uses [LDoc](http://stevedonovan.github.io/ldoc/) for autogenerated
|
|
API documentation.
|
|
(Reminder to self: `ldoc . && git subtree push --prefix doc origin gh-pages`)
|
|
The old documentation is still available on the
|
|
[Project Wiki](https://github.com/nucular/sfxrlua/wiki).
|