Contributing
To submit an opcode clone this repository and make a pull request
Organisation
An opcode is normally implemented as part of a library, to allow for different versions and related opcodes to share functionality. Each library lives in its own directory. The tree can be structured as follows:
mylib/
CMakeLists.txt
risset.json
[ README.md ]
src/
mylib.c
examples/
foo.csd
bar.csd
doc/
foo.md
bar.md
For each opcode defined in mylib.c there should be an example opcode.csd
and a manual page opcode.md
. Optionally it is possible to include a README.md
where a short description of the opcodes in this library is given
Put your tree under src
and you should be able to build your plugin.
Build
We use cmake as a build tool. For simple opcodes with no extra dependencies, a simple CMakeLists.txt would suffice:
make_plugin(mylib src/mylib.c)
Installation
At the root folder of this repository, do
mkdir build
cd build
cmake ..
cmake --build .
cmake --install .
Manifest (risset.json)
A manifest is used both to automate documentation of the opcodes (wiki, pdf documentation, etc) and make the opcode installable via risset. The manifest (named risset.json) is a .json file. It should have the minimal form:
{
"name": "mylib",
"version": "1.0.0",
"opcodes": [
"opcode1",
"opcode2",
...
],
"short_description": "A short description",
"long_description": "A longer description",
"csound_version": "6.17",
"author": "Name Surname",
"email": "name.surname@mail.com",
"license": "LGPL",
"repository": "https://github.com/csound-plugins/csound-plugins",
}