Browse Source

Add module tags to Manifest article. Other minor tweaks.

pull/38/head
Andrew Belt 5 years ago
parent
commit
004c57583a
9 changed files with 221 additions and 31 deletions
  1. +1
    -1
      Building.md
  2. +0
    -1
      Communities.md
  3. +2
    -1
      FAQ.md
  4. +4
    -2
      Installing.md
  5. +6
    -4
      Issues.md
  6. +193
    -18
      Manifest.md
  7. +10
    -0
      Migrate2.md
  8. +4
    -4
      PluginDevelopmentTutorial.md
  9. +1
    -0
      README.md

+ 1
- 1
Building.md View File

@@ -17,7 +17,7 @@ brew install git wget cmake autoconf automake libtool jq python

If you have an anti-virus program running, disable it or it may interfere with the build process.

Install [MSYS2](http://www.msys2.org/) and launch the MinGW 64-bit shell from the Start menu, *not the default MSYS shell*.
Install the x86_64 version of [MSYS2](http://www.msys2.org/) and launch the MinGW 64-bit shell from the Start menu, *not the default MSYS shell*.
Update the package manager itself:
```bash
pacman -Syu


+ 0
- 1
Communities.md View File

@@ -16,7 +16,6 @@
- [Reddit](https://www.reddit.com/r/vcvrack/)
- [IRC](http://webchat.freenode.net?channels=%23VCVRack)
- [Patchstorage](https://patchstorage.com/platform/vcv-rack/)
- [Switched On Rack unofficial blog](http://www.switchedonrack.com/)
- [MuffWiggler thread](https://www.muffwiggler.com/forum/viewtopic.php?t=186899)
- [KVR Audio thread](https://www.kvraudio.com/forum/viewtopic.php?f=23&t=489230)
- [Hispasonic thread (Spanish)](https://www.hispasonic.com/foros/foro-vcv-rack/516252)


+ 2
- 1
FAQ.md View File

@@ -29,7 +29,7 @@ It is not planned. There are many issues with such a project.
## Is VCV Rack available as a VST/AU/AAX plugin for DAWs?

VCV Rack can be fully considered a DAW itself rather than a "synthesizer plugin", so Rack is a standalone application.
However, due to overwhelming user demand, a new product called *VCV Rack for DAWs* will be available as a 64-bit VST2 plugin for around $99 shortly after Rack v2 is released around Jan-Feb 2020.
However, due to overwhelming user demand, a new product called *VCV Rack for DAWs* will be available as a 64-bit VST2 plugin for around $99 shortly after Rack v2 is released.
VST3/AU/AAX/LV2 versions might be released afterwards, but this is not yet confirmed.
All Rack v2 plugins will be compatible with the plugin version of Rack.
The standalone version of Rack v2 will continue to be free/open-source.
@@ -40,6 +40,7 @@ The standalone version of Rack v2 will continue to be free/open-source.
It relied on [inter-process communication (IPC)](https://en.wikipedia.org/wiki/Inter-process_communication) between Rack (server) and the DAW plugin (client), similar to [ReWire](https://en.wikipedia.org/wiki/ReWire_(software_protocol)).
Because real-time IPC of audio cannot be achieved on non-[real-time operating systems](https://en.wikipedia.org/wiki/Real-time_operating_system), it was never intended as more than a fun experiment, and the project was concluded a month after development started.
One could say the experiment "failed", but its purpose was primarily to see how much it would fail.
The conclusion was that it was not reliable enough for the majority of users.
VCV Bridge was deprecated in July 2018 and is now unsupported.
The Bridge VST2/AU plugin was removed in Rack 1.0 (although it can be found in [earlier Rack packages](https://vcvrack.com/downloads/)), and the Bridge audio/MIDI driver will be removed in Rack 2.0.



+ 4
- 2
Installing.md View File

@@ -6,8 +6,10 @@ VCV Rack is free software, so you may simply download and run the software to se
However, if you are experiencing performance issues, make sure you have at least the following hardware.
- Operating system: MacOS 10.7+, Windows 7+, or Linux (Ubuntu 16.04+, etc)
- CPU: Intel/AMD 64-bit processor from \~2011 or later
- Graphics: Dedicated Nvidia/AMD graphics card from \~2013 or later.
Integrated (non-dedicated) graphics such as Intel HD/Iris are not recommended and cause significantly increased CPU usage.
- Graphics: Dedicated graphics card from \~2013 or later with the latest driver software update:
- [Nvidia drivers](https://www.nvidia.com/Download/index.aspx)
- [AMD drivers](https://www.amd.com/en/support)
- [Intel drivers](https://downloadcenter.intel.com/product/80939/Graphics-Drivers). Integrated (non-dedicated) graphics such as Intel HD/Iris are not recommended and cause significantly increased CPU usage.
- RAM: 1GB
- Disk space: 1GB



+ 6
- 4
Issues.md View File

@@ -7,9 +7,10 @@ If you encounter a bug in Rack itself (not a plugin), such as a UI issue, broken
- Log in or register for a free [GitHub account](https://github.com/).
- Search [Rack's issue tracker](https://github.com/VCVRack/Rack/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) to check if someone else has posted a similar bug report.
- If the bug is already reported, vote for it by adding a "thumb-up" reaction on the first post.
- If not, [open a bug report issue](https://github.com/VCVRack/Rack/issues/new?template=bug_report.md) and fill out the issue template.
- If not, [open a bug report issue](https://github.com/VCVRack/Rack/issues/new?template=bug_report.md) and fill out the issue template ([found here](https://raw.githubusercontent.com/VCVRack/Rack/v1/.github/ISSUE_TEMPLATE/bug_report.md) if it doesn't appear when creating your issue).

If you provide enough information for a developer to reproduce and identify the bug, a fix is then implemented, publicly tested with development builds, and released in a future Rack version.
A developer then attempts to reproduce and identify your bug.
If successful, a fix is implemented, publicly tested with development builds, and released in a future Rack version.

## Feature requests for Rack

@@ -18,9 +19,10 @@ If you want to propose a feature or change for Rack, follow these steps.
- Log in or register for a free [GitHub account](https://github.com/).
- Search [Rack's issue tracker](https://github.com/VCVRack/Rack/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) to check if someone else has posted a similar feature request.
- If the feature is already requested, vote for it by adding a "thumb-up" reaction on the first post.
- If not, [open an feature request issue](https://github.com/VCVRack/Rack/issues/new?template=feature_request.md) and fill out the issue template.
- If not, [open an feature request issue](https://github.com/VCVRack/Rack/issues/new?template=feature_request.md) and fill out the issue template ([found here](https://raw.githubusercontent.com/VCVRack/Rack/v1/.github/ISSUE_TEMPLATE/feature_request.md) if it doesn't appear when creating your issue).

If your proposal is approved (or modified until approved), the feature is then implemented, publicly tested with development builds, and released in a future Rack version.
Your proposal is then discussed and possibly modified.
If approved, the feature is implemented, publicly tested with development builds, and released in a future Rack version.

## Bug reports and feature requests for Rack plugins



+ 193
- 18
Manifest.md View File

@@ -6,7 +6,6 @@ For example, see Fundamental's [plugin.json](https://github.com/VCVRack/Fundamen
JSON paths are denoted in "flat format", as used by [jq](https://stedolan.github.io/jq/manual/).

## `.slug`

*String. Required.*

The unique identifier for your plugin.
@@ -19,7 +18,6 @@ To guarantee uniqueness, it is a good idea to prefix the slug by your "brand nam
The word "slug" [comes from web publishing](https://en.wikipedia.org/wiki/Clean_URL#Slug) to represent URL paths that never change, which in turn [comes from typesetting](https://en.wikipedia.org/wiki/Slug_(typesetting)).

## `.name`

*String. Required.*

The human-readable name for your plugin.
@@ -28,7 +26,6 @@ Used for labeling your plugin the VCV Library.
Unlike slugs, the name can be changed at any time without breaking patch compatibility.

## `.version`

*String. Required.*

The version of your plugin should follow the form `MAJOR.MINOR.REVISION`.
@@ -41,7 +38,6 @@ For example, *MyPlugin 1.4.2* would specify that your plugin is compatible with
If you publish the source code in a git repository, it is recommended to add a git tag with `git tag vX.Y.Z` and `git push --tags`.

## `.license`

*String. Required.*

The license of your plugin.
@@ -50,88 +46,267 @@ Use `"proprietary"` for commercial and freeware plugins.
If your plugin uses a common open-source license, use the identifier string from the [SPDX License List](https://spdx.org/licenses/), such as `GPL-3.0-only`, `GPL-3.0-or-later`, `MIT`, `BSD-3-Clause`, `CC0-1.0`, etc.

## `.brand`

*String. Optional.*

Prefix string for all modules in your plugin.
For example, the brand "VCV" is used by the Fundamental plugin to create "VCV VCF", VCV Unity", etc.
If blank or undefined, the plugin name is used.

## `.author`
## `.description`
*String. Optional.*

A one-line summary of the plugin's purpose.
If your plugin doesn't follow a theme, it's probably best to omit this.

## `.author`
*String. Required.*

Your name, company, alias, GitHub username, etc.

## `.authorEmail`

*String. Optional.*

Your email address for support inquiries.

## `.authorUrl`

*String. Optional.*

Homepage for yourself or your company.

## `.pluginUrl`

*String. Optional.*

Homepage for the plugin itself.

## `.manualUrl`

*String. Optional.*

The manual website of your plugin.
E.g. HTML, PDF, GitHub readme, GitHub wiki.

## `.sourceUrl`

*String. Optional.*

Homepage for the source code.
For GitHub URLs, use the main project page, not the `.git` URL.

## `.donateUrl`

*String. Optional.*

Link to donation page for users who wish to donate.
E.g. [PayPal.Me](https://www.paypal.me/), [Cash App](https://cash.app/) links.

## `.modules[].slug`

*String. Required.*

The unique identifier for the module.
Similar guidelines from [.slug](#slug) apply.

## `.modules[].name`

*String. Required.*

The human-readable name for the module.

## `.modules[].tags`

*Array of strings. Optional.*

List of tags representing the functions and/or properties of the module.
All tags must match the [list of allowed tags](https://github.com/VCVRack/Rack/blob/v1/src/tag.cpp) in Rack, case-insensitive.
All tags must match the following strings, case-insensitive.

## `.modules[].description`
### `Arpeggiator`
Breaks a chord into a sequence of single notes.

### `Attenuator`
With a level knob and not much else.

### `Blank`
No parameters or ports. Serves no purpose except visual.

### `Chorus`


### `Clock generator`
*Deprecated aliases: `Clock`*

### `Clock modulator`
Clock dividers, multipliers, etc.

### `Compressor`
With threshold, ratio, knee, etc parameters.

### `Controller`
Use only if the artist "performs" with this module. Simply having knobs is not enough. Examples: on-screen keyboard, XY pad.

### `Delay`


### `Digital`


### `Distortion`


### `Drum`
*Deprecated aliases: `Drums`, `Percussion`*

### `Dual`
The core functionality times two. If multiple channels are a requirement for the module to exist (ring modulator, mixer, etc), it is not a Dual module.

### `Dynamics`


### `Effect`


### `Envelope follower`


### `Envelope generator`


### `Equalizer`
*Deprecated aliases: `EQ`*

### `Expander`
Expands the functionality of a "mother" module when placed next to it. Expanders should inherit the tags of its mother module.

### `External`


### `Filter`
*Deprecated aliases: `VCF`, `Voltage controlled filter`*


### `Flanger`


### `Function generator`


### `Granular`


### `Hardware clone`
*Deprecated aliases: `Hardware`*

Clones the functionality, panel design, and component layout of a hardware module on the market.

Remember to follow the [VCV Plugin Ethics Guidelines](PluginLicensing.html#vcv-plugin-ethics-guidelines) and only clone hardware with permission from its owner.

If there is a [ModularGrid](https://www.modulargrid.net/) page for the hardware module, add the [modularGridUrl](Manifest#modules-modulargridurl) property.

If the module name does not include the hardware's name or brand, add that information to the [module description](Manifest#modules-description) so users can search for the module by its hardware name, e.g. `"Based on Mutable Instruments Clouds"`.

### `Limiter`
Limits a signal from exceeding a threshold, e.g. with soft clipping or dynamic range compression.

### `Logic`
Implements binary logic with gate signals.

### `Low-frequency oscillator`
*Deprecated aliases: `LFO`, `Low frequency oscillator`*

### `Low-pass gate`
*Deprecated aliases: `Low pass gate`, `Lowpass gate`*

### `MIDI`


### `Mixer`


### `Multiple`


### `Noise`


### `Oscillator`
*Deprecated aliases: `VCO`, `Voltage controlled oscillator`*

### `Panning`
*Deprecated aliases: `Pan`*

### `Phaser`


### `Physical modeling`


### `Polyphonic`
*Deprecated aliases: `Poly`*

### `Quad`
The core functionality times four. If multiple channels are a requirement for the module to exist (ring modulator, mixer, etc), it is not a Quad module.

### `Quantizer`


### `Random`


### `Recording`


### `Reverb`


### `Ring modulator`


### `Sample and hold`
*Deprecated aliases: `S&H`, `Sample & hold`*

### `Sampler`


### `Sequencer`


### `Slew limiter`


### `Speech`


### `Switch`


### `Synth voice`
A synth voice must have, at the minimum, a built-in oscillator and envelope.

### `Tuner`


### `Utility`
Serves only extremely basic functions, like inverting, max, min, multiplying by 2, etc.

### `Visual`


### `Vocoder`


### `Voltage-controlled amplifier`
*Deprecated aliases: `Amplifier`, `VCA`, `Voltage controlled amplifier`*

### `Waveshaper`


## `.modules[].description`
*String. Optional.*

A one-line summary of the module's purpose.
Displayed in the Module Browser tooltip.

## `modules[].manualUrl`

*String. Optional.*

The manual website of the module.
If omitted, the plugin's manual is used.

## `modules[].modularGridUrl`
*String. Optional.*

If this module has the [Hardware clone](Manifest#hardware-clone) tag, this is the URL to the [ModularGrid](https://www.modulargrid.net/) page for that module.
Example: `"https://www.modulargrid.net/e/mutable-instruments-clouds"`

+ 10
- 0
Migrate2.md View File

@@ -0,0 +1,10 @@

```bash
perl -i -pe 's/(\w+)_PARAM\b/PARAM_$1/g' src/*
perl -i -pe 's/(\w+)_BUTTON\b/BUTTON_$1/g' src/*
perl -i -pe 's/(\w+)_SWITCH\b/SWITCH_$1/g' src/*
perl -i -pe 's/(\w+)_INPUT\b/INPUT_$1/g' src/*
perl -i -pe 's/(\w+)_OUTPUT\b/OUTPUT_$1/g' src/*
perl -i -pe 's/(\w+)_LIGHT\b/LIGHT_$1/g' src/*
```
perl -i -pe 's/app::ABI/ABI/g' src/**/* include/**/*

+ 4
- 4
PluginDevelopmentTutorial.md View File

@@ -14,9 +14,9 @@ This contains the Rack API headers and build system for compiling your plugin.
## Creating the template plugin

The `helper.py` script included in the Rack SDK is an easy way to create a plugin template.
You can run it with no arguments to display documentation.
You can run it with no arguments to show documentation.

Decide on a [slug](Metadata.html#slug) for your plugin.
Decide on a [slug](Manifest.html#slug) for your plugin.
We will use `MyPlugin` for this tutorial.
Run
```bash
@@ -40,7 +40,7 @@ Manifest written to MyPlugin/plugin.json
Created template plugin in MyPlugin/
Initialized empty Git repository in /home/VCV/MyPlugin/.git/
```
You can change this metadata later by editing `plugin.json`. (See [Metadata](Metadata.html)).
You can change this manifest later by editing `plugin.json`. (See [Manifest](Manifest.html)).

To test your build system, you may run `RACK_DIR=<Rack SDK folder> make` in the plugin directory.
If it succeeds, an "empty" plugin will be built containing no modules.
@@ -138,5 +138,5 @@ Eventually you may want to release your hard work.
See [Plugin Licensing](PluginLicensing.html) for information about following Rack's license, particularly if developing a commercial plugin.
It is recommended to add a `LICENSE.txt` file to your plugin's root folder that specifies your preferred license (whether open-source or proprietary).

Review your `plugin.json` [metadata](Metadata.html) file for correctness, spelling, and capitalization.
Review your `plugin.json` [manifest](Manifest.html) file for correctness, spelling, and capitalization.
Finally, submit your plugin to the [VCV Library](https://github.com/VCVRack/library#adding-your-plugin-to-the-vcv-library-for-open-source-plugins) to allow users to easily download your plugin from their VCV account.

+ 1
- 0
README.md View File

@@ -13,6 +13,7 @@ Your PR will be accepted if it is a net positive benefit to readers.
Install [Sphinx](http://www.sphinx-doc.org/en/stable/) 1.8.1. Newer versions do not generate formulas and image tags properly.

pip install sphinx==1.8.1
pip install sphinx_rtd_theme

Install [recommonmark](https://github.com/rtfd/recommonmark) 0.4.0.



Loading…
Cancel
Save