|
|
@@ -9,7 +9,7 @@ Scripting language host for [VCV Rack](https://vcvrack.com/) containing: |
|
|
|
|
|
|
|
[Discussion thread](https://community.vcvrack.com/t/vcv-prototype/3271/1) |
|
|
|
|
|
|
|
### Scripting API |
|
|
|
## Scripting API |
|
|
|
|
|
|
|
This is the reference API for the JavaScript script engine, along with default property values. |
|
|
|
Other script engines may vary in their syntax (e.g. `args.inputs[i][j]` vs `args.getInput(i, j)` vs `input(i, j)`), but the functionality should be similar. |
|
|
@@ -68,18 +68,29 @@ function process(args) { |
|
|
|
} |
|
|
|
``` |
|
|
|
|
|
|
|
### Adding a script engine |
|
|
|
## Adding a script engine |
|
|
|
|
|
|
|
- Add your scripting language library to the build system so it builds with `make dep`, following the Duktape example in the `Makefile`. |
|
|
|
- Create a `MyEngine.cpp` file (for example) in `src/` with a `ScriptEngine` subclass defining the virtual methods, following `src/DuktapeEngine.cpp` as an example. |
|
|
|
- Create a `MyEngine.cpp` file (for example) in `src/` with a `ScriptEngine` subclass defining the virtual methods, possibly using `src/DuktapeEngine.cpp` as an example. |
|
|
|
- Add your engine to the "List of ScriptEngines" in `src/ScriptEngine.cpp`. |
|
|
|
- Build and test the plugin. |
|
|
|
- Add a few example scripts and tests to `examples/`. These will be included in the plugin package for the user. |
|
|
|
- Add your name to the Contributers list below. |
|
|
|
- Send a pull request. Once merged, you will be added as a repo maintainer. Be sure to "watch" this repo to be notified of bugs in your engine. |
|
|
|
|
|
|
|
### Maintainers |
|
|
|
## Maintainers |
|
|
|
|
|
|
|
- [Wes Milholen](https://grayscale.info/): panel design |
|
|
|
- [Andrew Belt](https://github.com/AndrewBelt): host code, `DuktapeEngine` (JavaScript) |
|
|
|
- add your name here |
|
|
|
- [Andrew Belt](https://github.com/AndrewBelt): host code, Duktape (JavaScript) |
|
|
|
- add your name here |
|
|
|
|
|
|
|
## License |
|
|
|
|
|
|
|
All **source code** is copyright © 2019 Andrew Belt and licensed under the [BSD-3-Clause License](https://opensource.org/licenses/BSD-3-Clause). |
|
|
|
|
|
|
|
The **panel graphics** in the `res` directory are copyright © 2019 [Grayscale](http://grayscale.info/) and licensed under [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/). |
|
|
|
You may not distribute modified adaptations of these graphics. |
|
|
|
|
|
|
|
**Dependencies** included in the binary distributable may have other licenses. |
|
|
|
For example, if a GPL library is included in the distributable, the entire work is covered by the GPL. |
|
|
|
See [LICENSE-dist.txt](LICENSE-dist.txt) for a full list. |