Browse Source

Random revisions.

pull/34/head
Andrew Belt 5 years ago
parent
commit
f55600fbff
9 changed files with 23 additions and 23 deletions
  1. +4
    -8
      Building.md
  2. +9
    -6
      FAQ.md
  3. +2
    -1
      Metadata.md
  4. +1
    -1
      Migrate1.md
  5. +1
    -1
      Panel.md
  6. +1
    -1
      PluginDevelopmentTutorial.md
  7. +2
    -2
      VoltageStandards.md
  8. +3
    -3
      _static/MyModule.svg
  9. BIN
      images/VCO.png

+ 4
- 8
Building.md View File

@@ -6,15 +6,11 @@ Before building Rack or Rack plugins, you must install build dependencies provid
Rack's own dependencies (GLEW, glfw, etc) do not need to be installed on your system, since specific versions are compiled locally during the build process.
However, you need proper tools to build Rack and these dependencies.

<!--
TODO add Python dependency
-->

### Mac

Install [Homebrew](https://brew.sh/), and install build dependencies.
```bash
brew install git wget cmake autoconf automake libtool jq
brew install git wget cmake autoconf automake libtool jq python
```

### Windows
@@ -28,7 +24,7 @@ pacman -Syu
```
Then restart the shell and install packages.
```bash
pacman -Su git wget make tar unzip zip mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-cmake autoconf automake mingw-w64-x86_64-libtool mingw-w64-x86_64-jq
pacman -Su git wget make tar unzip zip mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb mingw-w64-x86_64-cmake autoconf automake mingw-w64-x86_64-libtool mingw-w64-x86_64-jq python
```

### Linux
@@ -40,7 +36,7 @@ sudo apt install git gdb curl cmake libx11-dev libglu1-mesa-dev libxrandr-dev li

On Arch Linux:
```bash
pacman -S git wget gcc gdb make cmake tar unzip zip curl jq
pacman -S git wget gcc gdb make cmake tar unzip zip curl jq python
```

## Building Rack
@@ -77,7 +73,7 @@ Complete the [Setting up your development environment](#setting-up-your-developm

Plugins can be built in two ways:
- [Build Rack from source](#building-rack) and build plugins in the `plugins/` folder. (Recommended for advanced developers.)
- Download an [official Rack build](https://vcvrack.com/Rack.html) and [Rack-SDK-1.1.0.zip](https://vcvrack.com/downloads/Rack-SDK-1.1.0.zip), and build plugins anywhere you like. (Easiest/fastest.)
- Download an [official Rack build](https://vcvrack.com/Rack.html) and [Rack-SDK-1.1.1.zip](https://vcvrack.com/downloads/Rack-SDK-1.1.1.zip), and build plugins anywhere you like. (Easiest/fastest.)

Download or clone the plugin source code, e.g.



+ 9
- 6
FAQ.md View File

@@ -46,20 +46,23 @@ It is not planned. There are many issues with such a project.

## Why does VCV Audio consume so much CPU?

The CPU meter measures the time spent processing each module, not the "resource" of CPU power.
In order for playback timing to be consistent, your audio device, and therefore VCV Audio, waits until all samples in the current audio buffer are played before moving onto the next audio buffer.
Otherwise, your device's DAC and ADC would play and record at very inconsistent and incorrect sample rates.
The CPU timer measures the average *time* spent processing each sample, not the CPU *energy consumption* of modules.
Since audio devices need to play audio at real-time (rather than as fast as the Rack engine can run), the VCV Audio modules need to wait for the last audio buffer to finish playing before sending a new audio buffer.
While waiting, the engine thread is put to sleep, so no energy is consumed by the thread.
See [CPU timer](MenuBar.html#cpu-timer) for more info.

## Is VCV Rack available as a VST/AU/AAX plugin for DAWs?

VCV Rack is a standalone application, not a plugin.
Shortly after Rack v2 is released, estimated for Dec 2019, Rack will also be available as a 64-bit VST2 plugin for around $99.
VST3/AU/AAX versions might be released afterwards.
VCV Rack is a standalone application, not a DAW plugin, since Rack can be fully considered a DAW itself.
However, due to user demand, Rack will be available as a 64-bit VST2 plugin for around $99 shortly after Rack v2 is released around Dec 2019.
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.

*VCV Bridge* was a VST2/AU plugin for bridging the standalone version of Rack with a DAW.
However, users found it to be unreliable, so it is no longer distributed as of Rack v1.
The audio/MIDI Bridge drivers will be removed in Rack v2.

## Does VCV Rack work with touch screens?

Rack's window library GLFW does not support [touch input](https://github.com/glfw/glfw/issues/42), so Rack relies on the operating system to control the mouse cursor using the touch screen.


+ 2
- 1
Metadata.md View File

@@ -10,6 +10,7 @@ JSON paths are denoted in "flat format", as used by [jq](https://stedolan.github
*String. Required.*

The unique identifier for your plugin.
Case-sensitive.
Slugs may only contain letters `a-z` and `A-Z`, numbers `0-9`, hyphens `-`, and underscores `_`.

After your plugin is released, the slug must *never* change, otherwise patch compatibility would be broken.
@@ -119,7 +120,7 @@ The human-readable name for the module.
*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/plugin.cpp#L540) in Rack, case insensitive.
All tags must match the [list of allowed tags](https://github.com/VCVRack/Rack/blob/v1/src/plugin.cpp#L540) in Rack, case-insensitive.

## `.modules[].description`



+ 1
- 1
Migrate1.md View File

@@ -1,4 +1,4 @@
# Migrating v0.6 Plugins to Rack v1
# Migrating v0.6 Plugins to v1

This is a step-by-step guide for migrating plugins using the Rack v0.6 API to Rack v1.
There are three phases of porting.


+ 1
- 1
Panel.md View File

@@ -12,7 +12,7 @@ Install [Inkscape](https://inkscape.org/), a cross-platform open-source vector g

Design the panel, or open an existing .pdf, .ai, .svg, etc file and copy-paste the contents into your new document.

![](https://vcvrack.com/images/Fundamental/VCO.m.png)
![](images/VCO.png)

Design recommendations from VCV:
- Avoid gradients and photorealism. Use a flat style for panels and components. This increases clarity at all zoom levels, which is important when several other modules are on-screen.


+ 1
- 1
PluginDevelopmentTutorial.md View File

@@ -6,7 +6,7 @@
- Familiarity with navigating the command line (`cd`, `ls`, etc).
- Familiarity with modular synthesizers. [Digital signal processing (DSP)](DSP.html) knowledge is only required if creating sound generators and processors.
- Download and install [VCV Rack](https://vcvrack.com/Rack.html).
- Download and extract the [Rack SDK](https://vcvrack.com/downloads/Rack-SDK-1.1.0.zip).
- Download and extract [Rack-SDK-1.1.1.zip](https://vcvrack.com/downloads/Rack-SDK-1.1.1.zip).
This contains the Rack API headers and build system for compiling your plugin.
- Follow the steps to [set up your build environment](Building.html#setting-up-your-development-environment) for your operating system.
You do not need to build Rack from source if using the Rack SDK.


+ 2
- 2
VoltageStandards.md View File

@@ -1,7 +1,7 @@
# Voltage Standards

In Rack, input and output values carried by patch cables are in voltage units (V).
You can measure absolute voltage levels using modules like Fundamental Scope.
You can measure absolute voltage levels using modules like VCV Scope.

Rack attempts to model Eurorack standards as accurately as possible, but this is a problem for two reasons: there are very few actual "standards" in Eurorack (The only rule is that you can always find a module which breaks the rule), and there are a few differences between digital (finite sample rate) and analog (infinite sample rate).

@@ -58,7 +58,7 @@ Low-frequency oscillators and clock generators should use 120 BPM (\\(f_0\\) = 2

## NaNs and Infinity

If your module might produce [NaNs](https://en.wikipedia.org/wiki/NaN) or infinite output values when given only finite input, e.g. an unstable IIR filter or reverb, it should check and return 0 if this happens: `std::isfinite(out) ? out : 0.f`.
If your module might produce [NaNs](https://en.wikipedia.org/wiki/NaN) or infinite output values when given only finite input, e.g. an unstable IIR filter or reverb, it should check and return 0 when this happens: `std::isfinite(out) ? out : 0.f`.

## Polyphony



MyModule.svg → _static/MyModule.svg View File

@@ -37,9 +37,9 @@
inkscape:bbox-nodes="false"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:window-width="1600"
inkscape:window-height="882"
inkscape:window-height="900"
inkscape:window-x="0"
inkscape:window-y="18"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-nodes="false" />
@@ -51,7 +51,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>

BIN
images/VCO.png View File

Before After
Width: 150  |  Height: 380  |  Size: 10.0KB

Loading…
Cancel
Save