Skip to content

Commit 9e695fd

Browse files
committed
updated tool manifest and developer start pages
1 parent 5d2040f commit 9e695fd

File tree

2 files changed

+71
-37
lines changed

2 files changed

+71
-37
lines changed

docs/start/development.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
# Setting up your development environment
22

3-
By default Renoise has all scripting utilities hidden to keep it simple for users who don't wish to mess around with code. If you want to write scripts, the first thing you have to do is to enable the hidden development tools.
3+
To start developing Scripts in Renoise, use the following two menu entries inside the `Tools` menu on the top bar.
44

5-
* For a quick test you can launch the Renoise executable with the `--scripting-dev` argument
6-
* To have this mode enabled by default, you'll have to edit your `Config.xml` file inside Renoise's preferences folder. Search for the `<ShowScriptingDevelopmentTools>` property and set it to `true`. To reveal the Config.xml path, click on the *Help / Show the Preferences Folder...* menu entry in Renoise.
7-
<!-- TODO consider exposing this setting in the Renoise GUI -->
5+
* `Scripting Terminal & Editor` - This will open the debugging console used to test things and see your tool's output
6+
* `Reload All Tools` - This will force a reload of all installed and running tools. It can be useful when adding new tools by hand or when changing them.
87

9-
Once scripting is enabled, you'll have the following entries inside the *Tools* menu on the top bar.
10-
11-
* *Scripting Terminal & Editor* - This will open the debugging console used to test things and see your tool's output
12-
* *Reload All Tools* - This will force a reload of all installed and running tools. It can be useful when adding new tools by hand or when changing them.
8+
> [!NOTE]
9+
> In previous versions of Renoise it was necessary to launch the Renoise executable with the `--scripting-dev` argument to see the above mentioned menue entries.
1310
1411
## Lua
1512

docs/start/tool.md

Lines changed: 66 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,108 @@
22

33
There are a few things that all tools must conform to for Renoise to successfully recognize and load them.
44

5-
* A tool is either a folder or a zip file with the extension `.xrnx`
6-
* It has a lua script named `main.lua` which contains the tool's program
7-
* And a `manifest.xml` file that has version info, description and more
8-
95
```sh
106
com.name_of_creator.name_of_tool.xrnx
117
├── manifest.xml
12-
└── main.lua
8+
├── main.lua
9+
├── cover.png
10+
├── thumbnail.png
11+
├── LICENSE
12+
└── README.md
1313
```
1414

15+
A tool is a folder or a *zip file* with the extension `.xrnx`.
16+
17+
#### Required files:
18+
* `main.lua` contains the tool's program.
19+
* `manifest.xml` is an XML file which describes your tool.
20+
21+
#### Optional files:
22+
* `cover.png` (600x350 px) is a large image, used on the [tools page](https://www.renoise.com/tools) and on the pages of individual tools.
23+
* `thumbnail.png` (120x45 px) is a small capsule image, used when tools are shown in a list on the tools website.
24+
* `README.md` is a markdown-formatted file that the website will render on the tool's page.
25+
* `LICENSE` is a license file.
26+
27+
The paths to the cover, thumbnail, readme, and license files can be customized using the `...File` tags in the manifest. See below for more info.
28+
29+
1530
> [!NOTE]
16-
> You'll see that names of folders for most tools follow [reverse domain notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation), but don't worry, you don't have to actually own a domain to create and share your tools. Just use whatever nickname you want, just make sure it's not already taken by other devs to avoid confusion.
31+
> You'll see that the names of tool folders follow [reverse domain notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation), but don't worry, you don't have to actually own a domain to create and share your tools. Just use whatever nickname you want, but make sure it's not already taken by other developers to avoid confusion.
1732
18-
If needed, you can split your tool into multiple files and use the ["require" function](https://www.lua.org/pil/8.1.html) to load them inside your main script, but first you will be fine just using a single main script.
33+
If needed, you can split your tool into multiple files and use the ["require" function](https://www.lua.org/pil/8.1.html) to load them inside your main script, but to start with, you will be fine just using a single main script.
1934

20-
Some tools will also make use of other resources like icons, text files or audio samples, these should all be placed in the same folder (or any subfolders inside it).
35+
Some tools will also make use of other resources like bitmaps or audio samples; these should all be placed in the same folder (or any subfolders inside it).
2136

2237
Let's look at a basic tool to see what goes into these two files. You can find more elaborate examples by browsing the example tools.
2338

2439
## Manifest
2540

26-
The manifest is a short [XML](https://www.w3schools.com/XML/xml_whatis.asp) file with the name `manifest.xml`. It contains a few tag pairs like `<Tag>...</Tag>` and some text between them, Renoise reads these and loads your tool based on the information it finds inside.
41+
The manifest is a short [XML](https://www.w3schools.com/XML/xml_whatis.asp) file with the name `manifest.xml`. It contains a few tag pairs like `<Tag>...</Tag>` and some text between them. Renoise reads these and loads your tool based on the information it finds within.
2742

2843
Here is an entire manifest file from a HelloWorld tool:
2944

30-
<!-- TODO copy data from the actual tool folder here -->
3145
```xml
3246
<?xml version="1.0" encoding="UTF-8"?>
3347
<RenoiseScriptingTool doc_version="0">
34-
<ApiVersion>6.1</ApiVersion>
48+
<!-- REQUIRED -->
3549
<Id>com.renoise.HelloWorld</Id>
36-
<Version>1.0</Version>
50+
<ApiVersion>6.2</ApiVersion>
51+
<Version>1.02</Version>
3752
<Author>Your Name [your@email.com]</Author>
3853
<Name>Hello World</Name>
39-
<Category>Tool Development</Category>
54+
<!-- OPTIONAL -->
55+
<Category>Development, Workflow</Category>
4056
<Description>
4157
This tool is for printing &quot;Hello World!&quot; to the terminal when loaded.
4258
</Description>
43-
<Homepage>http://tools.renoise.com</Homepage>
44-
<Icon>icon.png</Icon>
4559
<Platform>Windows, Mac, Linux</Platform>
60+
<License>MIT</License>
61+
<LicensePath>LICENSE.md</LicensePath>
62+
<ThumbnailPath>images/thumbnail.png</ThumbnailPath>
63+
<CoverPath>images/cover.png</CoverPath>
64+
<DocumentationPath>docs/README.md</DocumentationPath>
65+
<Homepage>https://some.url/my-tool</Homepage>
66+
<Documentation>https://some.url/my-tool-docs</Documentation>
67+
<Discussion>https://some.url/my-tool</Discussion>
68+
<Repository>https://git.some.url/my-tool</Repository>
69+
<Donate>https://some.url/donate</Donate>
4670
</RenoiseScriptingTool>
4771
```
4872

49-
Let's go through what each of these tags mean and what you should put inside them.
73+
Let's go through what each of these tags means and what you should put inside them.
5074

51-
`<?xml>` is the header for the XML file, this will stay the same across all tools. `<RenoiseScriptingTool>` tells Renoise that this XML describes a tool. Don't change this.
75+
`<?xml>` is the header for the XML file; this will stay the same across all tools.<br>
76+
`<RenoiseScriptingTool>` tells Renoise that this XML describes a tool. Don't change this.<br>
77+
`<!-- ... -->` is a XML comment, which will be ignored by Renoise.
5278

5379
### Required Properties
5480

55-
* `<ApiVersion>` The version of the Renoise API your tool is using. This should be `6.1` for the latest version.
56-
* `<Id>` Should match the folder name of your tool **exactly** without the `.xrnx` at the end.
57-
* `<Version>` The version of your tool, whenever you release a new update you should increase the version. Note that this is a **number value** and not a semantic version. So `1.02` is a valid version, while `1.0.2` **is not**.
58-
* `<Author>` Your name and contact information. Whenever your tool crashes, this information is going to be provided for the user alongside the crash message, you should use some contact where you can accept possible bug reports or questions.
59-
* `<Name>` Human readable name of your tool, it can be anything you want and you can change it anytime you feel like it.
60-
* `<Category>` Category for your tool, which will be used to categorize your tool on the [official Tools page](https://www.renoise.com/tools) if you ever decide to submit it there
61-
* `<Description>` A short description of your tool which will be displayed inside the *Tool Browser* in Renoise and on the Tools page.
81+
* `<Id>` Should match the folder name of your tool **exactly**, without the `.xrnx` at the end.
82+
* `<ApiVersion>` The version of the Renoise API your tool is using. This should be `6.2` for the latest version.
83+
* `<Version>` The version of your tool. Whenever you release a new update, you should increase the version. Note that this is a **number value** and not a semantic version. So `1.02` is a valid version, while `1.0.2` **is not**.
84+
* `<Author>` Your name and contact information. Whenever your tool crashes, this information is going to be provided for the user alongside the crash message. You should provide a contact method where you can receive bug reports or questions.
85+
* `<Name>` The human-readable name of your tool. It can be anything you want, and you can change it anytime you feel like it.
6286

6387
### Optional Properties
6488

65-
* `<Homepage>` Your tool's website address if you have any. You could also put a forum topic or git repository here if you want.
66-
* `<Icon>` A relative path to an optional icon to your tool.
67-
* `<Platform>` List of platforms your tool supports separated by `,`. As long as you're only using the Renoise API, your tool will be automatically cross-platform, but once you do something OS specific you should communicate that here.
89+
* `<Category>` A category for your tool, which will be used to categorize your tool on the [official Tools page](https://www.renoise.com/tools) if you ever decide to submit it there. See below for a valid list of categories.
90+
* `<Description>` A short description of your tool which will be displayed inside the *Tool Browser* in Renoise and on the Tools page.
91+
* `<License>` The type of license, e.g., *MIT* or *AGPL*.
92+
* `<LicensePath>` Relative path to the license file within the XRNX bundle.
93+
* `<ThumbnailPath>` Relative path to the thumbnail icon file for the Tools page.
94+
* `<CoverPath>` Relative path to the cover image file for the Tools page.
95+
* `<DocumentationPath>` Relative path to a plain text or markdown documentation file.
96+
* `<Homepage>` The URL of your tool's homepage.
97+
* `<Discussion>` The URL of your tool's discussion page, e.g., on the Renoise forums.
98+
* `<Repository>` The URL of your tool's source code repository.
99+
* `<Donate>` A URL to a website where donations can be made to support your tool.
100+
* `<Documentation>` A URL to a website where your tool's documentation can be viewed.
101+
102+
#### Tool Categories
103+
104+
Valid categories are: `Automation`, `Coding`, `Control`, `Development`, `Export`, `Game`, `Hardware`, `Import`, `Instrument`, `MIDI`, `Mixing`, `Modulation`, `Networking`, `OSC`, `Pattern Editor`, `Pattern Generator`, `Phrases`, `Plugins`, `Recording`, `Rendering`, `Sample Editor`, `Sample Generator`, `Sequencer`, `Slicing`, `Tuning`, `Workflow`
68105

69-
### Text Encoding
106+
#### XML Text Encoding
70107

71108
When writing the XML file in a regular text editor, ensure that text content is encoded correctly. Otherwise, the XML file will be invalid.
72109

@@ -84,4 +121,4 @@ Now that we have a manifest file, we can get to the exciting part of printing a
84121
print("Hello world!")
85122
```
86123

87-
Done! Now that you wrote your first tool you probably want to install and test it.
124+
Done! Now that you have written your first tool, you probably want to install and test it.

0 commit comments

Comments
 (0)