blob: fdfce52bd43c8c78b5549daee4c9a29bec4b82fb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# melisma
Melisma is a scriptable and extensible audio engine. It can be used for
algorithmic composition, custom digital instruments and interactive audio
installations. Most of melismas functionality is implemented in Lua modules
written in C, using an API defined in [melisma.h](../tree/include/melisma.h).
The core program only implements the Jack client, event system and port
creation/manipulation. You can find some of my modules [here](../../melisma-modules.git/about),
and some examples [here](../../melisma-examples.git/about).
## Building and installing
To build melisma from source, you'll need to have pkg-config, Lua 5.3 and Jack
installed. To build and install, run
```bash
$ make install PREFIX=/usr/local
```
## Usage
```bash
$ melisma script.lua
```
## Building modules
Melisma modules are written in C. They should be namespaced to melisma, so they
should be installed to a subdirectory melisma/ in LUA_CPATH, and the entry point
should look something like this:
```c
// mymodule.c
#include "melisma.h"
// ...
int luaopen_melisma_mymodule(lua_State *state) {
ml_check_version();
// ...
return 1;
}
```
Building the module may look something like this:
```bash
$ cc -o mymodule.so -shared -fPIC $(pkg-config --cflags melisma.h) mymodule.c
```
|