Browse Source

Update last month of manual changes.

pull/46/head
Andrew Belt 4 years ago
parent
commit
8206f25fa9
6 changed files with 39 additions and 20 deletions
  1. +1
    -1
      Building.md
  2. +2
    -2
      FAQ.md
  3. +1
    -0
      KeyCommands.md
  4. +8
    -7
      Manifest.md
  5. +26
    -9
      Migrate2.md
  6. +1
    -1
      PluginDevelopmentTutorial.md

+ 1
- 1
Building.md View File

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


On Ubuntu 16.04+: On Ubuntu 16.04+:
```bash ```bash
sudo apt install git gdb curl cmake libx11-dev libglu1-mesa-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev zlib1g-dev libasound2-dev libgtk2.0-dev libjack-jackd2-dev jq
sudo apt install unzip git gdb curl cmake libx11-dev libglu1-mesa-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev zlib1g-dev libasound2-dev libgtk2.0-dev libjack-jackd2-dev jq
``` ```


On Arch Linux: On Arch Linux:


+ 2
- 2
FAQ.md View File

@@ -3,9 +3,9 @@
<a id="acronym"></a> <a id="acronym"></a>
## What does "VCV" stand for? ## What does "VCV" stand for?


There is no official meaning of the name "VCV", but users have suggested "Virtual Control Voltage" or "Voltage Controlled Virtualization".
There is no official meaning of the name "VCV", but some users have suggested "Virtual Control Voltage" or "Voltage Controlled Virtualization".
These are good guesses, but "VCV" was chosen simply because it is easy to remember and type. These are good guesses, but "VCV" was chosen simply because it is easy to remember and type.
"VCV Rack" is the full name of our flagship software product.
[VCV Rack](https://vcvrack.com/Rack) is the full name of our flagship software product.




<a id="userfolder"></a> <a id="userfolder"></a>


+ 1
- 0
KeyCommands.md View File

@@ -15,6 +15,7 @@ Key commands documented in Rack's [menu bar](MenuBar.html) are not documented he
- **Ctrl+=**: Zoom in. - **Ctrl+=**: Zoom in.
- **Scroll**: Scroll rack vertically. - **Scroll**: Scroll rack vertically.
- **Shift+scroll**: Scroll rack horizontally. - **Shift+scroll**: Scroll rack horizontally.
- **Ctrl+scroll**: Zoom in/out.
- **Middle mouse button drag**: Pan rack view. - **Middle mouse button drag**: Pan rack view.
- **Arrow keys**: Pan rack view. You can use Ctrl, Shift, or Ctrl+shift to change the speed of scrolling. - **Arrow keys**: Pan rack view. You can use Ctrl, Shift, or Ctrl+shift to change the speed of scrolling.
- **Ctrl+V**: Pastes a new module at the cursor position, from the module context menu "Preset > Copy" or Ctrl+C. - **Ctrl+V**: Pastes a new module at the cursor position, from the module context menu "Preset > Copy" or Ctrl+C.


+ 8
- 7
Manifest.md View File

@@ -179,7 +179,7 @@ The core functionality times two. If multiple channels are a requirement for the
Expands the functionality of a "mother" module when placed next to it. Expanders should inherit the tags of its mother module. Expands the functionality of a "mother" module when placed next to it. Expanders should inherit the tags of its mother module.


### `External` ### `External`
Interfaces with hardware or software outside VCV Rack such as a MIDI/audio interface, webcam, DAW, robotic dog, etc.


### `Filter` ### `Filter`
*Deprecated aliases: `VCF`, `Voltage controlled filter`* *Deprecated aliases: `VCF`, `Voltage controlled filter`*
@@ -189,7 +189,7 @@ Expands the functionality of a "mother" module when placed next to it. Expanders




### `Function generator` ### `Function generator`
Generates complex envelopes or cycles via a large selection of general parameters.


### `Granular` ### `Granular`


@@ -218,16 +218,17 @@ Implements binary logic with gate signals.
*Deprecated aliases: `Low pass gate`, `Lowpass gate`* *Deprecated aliases: `Low pass gate`, `Lowpass gate`*


### `MIDI` ### `MIDI`
Generates, processes, or interprets MIDI messages, e.g. for a MIDI interface.


### `Mixer` ### `Mixer`
Mixes/sums audio with optional level adjustment, panning, and/or mix buses.


### `Multiple` ### `Multiple`

Copies an input directly to multiple outputs.
While VCV Rack supports stacking cables on output ports, users sometimes prefer organizing their cables with multiples, allowing easy access to each cable.


### `Noise` ### `Noise`
Generates audio-rate or CV-rate random noise.


### `Oscillator` ### `Oscillator`
*Deprecated aliases: `VCO`, `Voltage controlled oscillator`* *Deprecated aliases: `VCO`, `Voltage controlled oscillator`*
@@ -239,7 +240,7 @@ Implements binary logic with gate signals.




### `Physical modeling` ### `Physical modeling`
Simulates a physical system such as a string, metal bar, vocal chords, chaotic system, celestial bodies, etc.


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


+ 26
- 9
Migrate2.md View File

@@ -1,6 +1,6 @@
# Migrating v1 Plugins to v2 # Migrating v1 Plugins to v2


The API of VCV Rack v2 has been designed to be nearly backward-compatible with v1 plugins, so updating your plugin to v2 likely only involves the following step and a recompile.
The API of VCV Rack v2 has been designed to be nearly backward-compatible with v1 plugins, so updating your plugin to v2 likely only involves a version update and a recompile.


## Update plugin version to v2 ## Update plugin version to v2


@@ -32,8 +32,33 @@ If your plugin compiles successfully, you are ready to test and release.
Or, you may take advantage of new v2 features below. Or, you may take advantage of new v2 features below.




## Potential bugs

### Avoid keeping `Font` (and `Image`) references across multiple frames

*Rack for DAWs* uses a different OpenGL context each time the plugin editor window is closed and reopened.
This means that if you load a `Font` in a widget's constructor with `font = APP->window->loadFont(...)`, the OpenGL font reference will be invalid if the window is reopened later.

Instead, save only the font path, and fetch the font each frame in `draw()`. Example:
```cpp
std::shared_ptr<Font> font = APP->window->loadFont(fontPath);
if (font) {
nvgFontFaceId(args.vg, font->handle);
...
}
```
`loadFont()` caches the font by its path, so this operation can be efficiently called in `draw()` every frame.

*All of the above also applies to `Image` and `loadImage()`.*

## Optional v2 API features ## Optional v2 API features


### SVG load function
`Window::loadSvg()` has been moved to `Svg::load()`. Search and replace:
```bash
perl -i -pe 's/APP->window->loadSvg\b/Svg::load/g' src/*
```

### Port labels ### Port labels


TOOD TOOD
@@ -44,11 +69,3 @@ TODO


### TODO ### TODO


```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/*
```

+ 1
- 1
PluginDevelopmentTutorial.md View File

@@ -23,7 +23,7 @@ You may wish to add this line to your `~/.bashrc` or other shell environment, so
The `helper.py` script included in the Rack SDK is an easy way to create a plugin template. 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 show documentation. You can run it with no arguments to show documentation.


Decide on a [slug](Manifest.html#slug) for your plugin.
Choose a [slug](Manifest.html#slug) for your plugin, a unique string containing letters, numbers, `-`, or `_`.
We will use `MyPlugin` for this tutorial. We will use `MyPlugin` for this tutorial.
Run Run
```bash ```bash


Loading…
Cancel
Save