2014-04-11 18:16:20 +00:00
|
|
|
sfxr.lua
|
|
|
|
========
|
2014-04-11 17:31:10 +00:00
|
|
|
|
2014-05-24 13:32:13 +00:00
|
|
|
A port of the sfxr sound effect synthesizer to pure Lua, designed to be used
|
2016-03-01 19:24:35 +00:00
|
|
|
together with the *awesome* [LÖVE](https://love2d.org) game framework.
|
2014-04-11 18:16:20 +00:00
|
|
|
|
2016-03-01 19:24:35 +00:00
|
|
|
Demo
|
|
|
|
----
|
|
|
|
|
|
|
|
To run the demo application you first need to download
|
|
|
|
[LoveFrames](https://github.com/NikolaiResokav/LoveFrames) as a submodule:
|
|
|
|
```
|
2016-03-01 19:27:54 +00:00
|
|
|
git submodule update --init
|
2016-03-01 19:24:35 +00:00
|
|
|
love demo
|
|
|
|
```
|
2016-03-01 23:37:06 +00:00
|
|
|
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.
|
2014-04-11 18:16:20 +00:00
|
|
|
|
|
|
|
Example usage
|
|
|
|
-------------
|
|
|
|
|
2016-03-05 20:41:25 +00:00
|
|
|
The following code examples demonstrate how to play a randomly generated sound:
|
2014-04-11 18:16:20 +00:00
|
|
|
|
2016-03-01 23:37:06 +00:00
|
|
|
With [LÖVE](http://love2d.org):
|
2014-04-11 18:16:20 +00:00
|
|
|
```lua
|
|
|
|
local sfxr = require("sfxr")
|
|
|
|
|
|
|
|
function love.load()
|
2014-05-07 14:58:37 +00:00
|
|
|
local sound = sfxr.newSound()
|
2014-04-11 18:16:20 +00:00
|
|
|
sound:randomize()
|
2016-03-05 20:41:25 +00:00
|
|
|
local sounddata = sound:generateSoundData()
|
|
|
|
local source = love.audio.newSource(sounddata)
|
|
|
|
source:play()
|
2014-04-11 18:16:20 +00:00
|
|
|
end
|
|
|
|
```
|
|
|
|
|
2014-05-25 21:26:49 +00:00
|
|
|
With [lao](https://github.com/TheLinx/lao):
|
2014-04-11 18:16:20 +00:00
|
|
|
```lua
|
|
|
|
require("ao")
|
|
|
|
local sfxr = require("sfxr")
|
|
|
|
|
|
|
|
local driverId = ao.defaultDriverId()
|
|
|
|
local device = ao.openLive(driverId, {bits = 16, rate = 44100, channels = 1})
|
|
|
|
|
2014-05-07 14:58:37 +00:00
|
|
|
local sound = sfxr.newSound()
|
2014-04-11 18:16:20 +00:00
|
|
|
sound:randomize()
|
|
|
|
|
|
|
|
local buffer = sound:generateString()
|
|
|
|
device:play(buffer, #buffer)
|
|
|
|
```
|
2014-06-02 16:52:18 +00:00
|
|
|
|
2016-03-01 23:47:03 +00:00
|
|
|
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.
|
2016-03-05 19:17:58 +00:00
|
|
|
(Note to self: `ldoc . && git subtree push --prefix doc origin gh-pages`)
|
2016-03-01 23:47:03 +00:00
|
|
|
The old documentation is still available on the
|
|
|
|
[Project Wiki](https://github.com/nucular/sfxrlua/wiki).
|