This chapter provides an overview of VCV Rack. It is not meant as a tutorial on synthesis with Rack, nor as a guide about all available modules. There are hundreds of modules and tens of developers, thus making it barely possible to track all of them down. Furthermore, the development community is very lively and active, and the modules are often updated or redesigned. The chapter just provides a common ground for the rest of the book regarding the platform, the user interface, and how a user expects to interact with it. It shall therefore introduce the terminology and get you started as a regular user, with the aim of helping you design your own modules with an informed view on the Rack user experience.

So, what is VCV Rack exactly? VCV Rack is a standalone software, meant to emulate a modular Eurorack system. It can also host VST instruments employing a paid module called VCV Host. In future releases, a paid VST/AU plugin version of Rack will be available, to be loaded into a DAW. According to VCV founder Andrew Belt, however, the standalone version will always be free of charge. At the moment, Rack can be connected to a DAW using a module called Bridge; however, its support will be discontinued as soon as the VST/AU plugin version is out. To record audio in VCV, the simplest option is to use the VCV Recorder module.

At the first launch, Rack opens up showing a template patch, a simple synthesizer, where modules can be added, removed, and connected. Patches can be saved and loaded, allowing reuse, exchange, and quick switch for performances.

Modules are available from the plugin store. In addition, they can be loaded from a local folder. This is the case for modules that you are developing and are not yet public but you need to test on your machine. Modules can be divided into a few families:

  • Core modules. Built-in modules that are installed together with Rack, for audio and MIDI connectivity.
  • Fundamental modules. Basic building blocks provided by VCV for free. These include oscillators, filters, amplifiers, and utilities.
  • VCV modules. Advanced modules from VCV. These are not free; their price sustains the VCV Rack project.
  • Third-party modules. These are developed independently by the community and are available under the online plugin store. Some of them are free, some of them are paid, some are open-source, and some are not. If you are reading this book, you are probably willing to build new third-party plugins. Some developers provide both a commercial and a smaller free package (e.g. see Vult Premium and Free plugins, which provide exceptional virtual analog modelling of real hardware circuits).
  • Eurorack replicas. Some modules available on the store are authorized replicas of existing Eurorack modules. These are free and include, among others, Audible Instrument, Befaco, Synthesis Technology (E-series), and Grayscale modules.

3.1 Overview of the System

Figure 3.1 shows a screen of Rack. Its interface is minimal, with just a few items on the top menu and the rest of the screen free for patching. Audio and MIDI settings, different from other music production software, are not hidden in a menu, but are directly available from the core modules.

Figure  3.1:  The Rack GUI shows modules mounted on the rack rails. When launching the software for the first time, this template patch shows up, implementing a basic monophonic synthesizer.

The top bar provides access to basic functionalities, including:

  • managing patches (New, Open, Save, Save as, Save as template, Revert);
  • undo/redo and cable removal;
  • view functions (enabling parameter tooltips, zoom, cable opacity and tension, fullscreen mode);
  • locking the modules to avoid accidentally dragging out of position;
  • visualizing the CPU time consumption of the modules;
  • changing sampling rate and thread count;
  • managing and updating plugins;
  • visualizing the manual, the VCV Rack webpage; and
  • opening the user folder.

Modules can be added by right-clicking on an empty area of the rack. This will open the module browser. Modules can be positioned by dragging unless the View → Lock Modules option is enabled. Cables are created by dragging the mouse from an input port to an output port, and vice versa. Right-clicking a module opens up its context menu, while right-clicking a knob or switch allows you to set its value precisely or reset it.

3.2 Anatomy of a Module

The modules are the functional blocks of your virtual modular synthesizer. They will not do anything useful if you do not connect them. The modules have a limited number of standard components, namely the input and output connectors, knobs and sliders, the switches, and the lights. These components ensure interaction with the module, following a philological approach. Of course, software interfaces offer additional interaction possibilities! For instance, you can design your own graphical elements in C++ and design their reaction to user drag or push. The paid VCV modules have a lot of cool examples (e.g. see VCV Scalar and VCV Parametra) offering a graphical user interface similar to popular DAW plugins. But if you want to keep retro, you can design your own switches, knobs, and lights, as we shall see in later chapters.

The knobs, switches, and sliders are, for the Rack engine, elements that provide input data, and are called parameters. Take note of this term, as we will use it in the chapters devoted to the development of the modules. None of the inputs, outputs, lights, or parameters need necessarily be present. You can even have modules with none of these. Such panels are known as blank panels (more on these in Section 10.8.3).

Interaction with knobs and sliders is done by dragging. Switches can toggle or be pushed by simply clicking with the mouse. Additionally, all parameters (knobs, sliders, and switches) can be reset or modified by right-clicking and inputting a new text value. Double-clicking on a parameter resets to the default value. The exact value of the parameters is also displayed by right-clicking and can be displayed as a tooltip on mouseover if the View → Parameter Tooltips menu item is checked. Cables can be created by dragging from one input to an output, and vice versa. Cables are stackable on outputs, meaning that you can send the same signal to different other inputs, creating a many-to-one relation. Vice versa, inputs only accept one incoming signal, thus requiring mixing modules to sum multiple signals before sending the result to one input. Cables have two modes of operation: monophonic and polyphonic. The first is the obvious one: one cable carries one signal, as in any Eurorack system. The polyphonic mode instead allows you to carry multiple signals into one cable, up to 16. Polyphonic cables are not always available: it depends on the output port they are connected to. You can tell the difference by visual inspection: monophonic cables are thinner than polyphonic ones. Furthermore, the ports will show the signal magnitude with different colors (Figure 3.2).

Figure  3.2:  Anatomy of a module.

Indeed, input and output ports show the signal strength and polarity by filling the inner circle with a color according to the following conventions:

  • A positive, slowly varying mono voltage is shown in green, with increasing brightness, reaching the maximum for value > 5 V.
  • A negative, slowly varying mono voltage is shown in red, with increasing brightness, reaching the maximum for a value < −5 V.
  • A 0 V signal or a dead input/output has its inner circle filled in black.
  • Fast oscillations of a mono signal are shown in yellow, with increasing brightness with an increased energy content.
  • Not a number (NaN) values are shown in white.
  • Polyphonic cables show the RMS power of all bundled channels in blue.

Modules are organized in collections called plugins. We should not confuse the terms “plugin” and “module.” A plugin, in Rack, is a collection of modules all compiled in one library file and provided by one author. Of course, an author can develop different plugins, each containing one or more modules.

Plugins may also contain expander modules. These are modules that expand the functionalities of other modules. They may, for example, add ports and knobs to provide additional controls to a parent module. The parent will thus have reduced size, sacrificing some functionalities that can be restored by adding an expander. An expander module must be “connected” to the parent module by placing the two side by side. The expander should go to the right of the parent. This feature mimics expander modules available in the Eurorack world, which are connected by flat cables on the back of the panel.

3.3 Context Menus

Right-clicking on an empty portion of the rack provides the module browser. This allows you to search for modules to be added to the rack. The modules are organized by brand or tag and a preview is shown on the side. A quick search can be done by typing some text that filters modules, for example, by name or tag. Once you select the module to be added, this is placed at the position where the right-click was done. If there is not enough space, the new module is placed in the closest empty area.

Right-clicking on a module opens the module context menu, with a list of options relevant to that module. By default, all modules have options to:

  • initialize a module (i.e. reset its parameters – knobs and switches – to the default state);
  • randomize its parameters;
  • disconnect cables;
  • duplicate a module (including its parameters);
  • copy, paste, load, and save a preset (i.e. all parameters);
  • disable the module (it will be silent); and
  • delete the module.

This menu also shows information about the plugin (website, manual, source code, etc., opening a web browser), and may include factory presets included by the developer.

In Section 8.1.4, you will learn how to add additional items to the context menu.

3.4 Core Modules

Core modules are the only modules provided with Rack by default. They provide audio and MIDI input/output functionalities, a notes module to write down your comments, and a blank panel.

We will briefly review the input/output modules below.

3.4.1 AUDIO-8 and AUDIO-16

The AUDIO module is the interface to the outer world. It allows signals in and out the rack. A sound card and audio driver must be selected. AUDIO-8 provides a maximum of eight inputs and eight outputs, while AUDIO-16 has 16 inputs and 16 outputs. Each pair of inputs or outputs is lit with a green light if the pair is available for the selected sound card. If, for instance, you select a device that only has two inputs and two outputs, only the light for inputs 1 and 2 and outputs 1 and 2 will be lit.

The top part of the panel has three rows, showing the audio driver, the audio device, and its parameters (sample rate and buffer size). Drivers include ALSA and JACK for Linux users, CoreAudio for Mac users, and DirectSound, WASAPI, and any available ASIO driver for Windows users. Once a driver is selected, the second row will show available devices. The last row is split into two fields, allowing you to set any of the supported sample rates and buffer sizes. The larger the buffer size, the higher the latency, but the lower the CPU load and the risk of glitches.

Among the available drivers, you will also find Bridge. If you are using a DAW and you loaded the Bridge VST/AU plugin inside the DAW, you can connect VCV Rack with the DAW by selecting Bridge as the driver. This will get the audio signal to and from the Bridge plugin inside the DAW.

As these are settings available to any DAW or audio software, and are dependent on your hardware and operating system, I will not delve further into the topic. Just bear in mind that any setting that normally works fine with your DAW should be a good starting point for Rack too.

3.4.2 MIDI-CV

This module provides MIDI input to your modular patch. It provides 12 different outputs that translate MIDI functionalities into CV. The module can be monophonic or polyphonic. The top three rows allow you to select a MIDI source by choosing the driver, the device, and the channel. Available drivers include the VCV Bridge, the computer keyboard (yes!), and a gamepad input (yes, yes!). Using the Bridge allows you to get MIDI input from a DAW (e.g. for sequencing events). The computer keyboard allows you to quickly play a patch even if you have no real MIDI device with you. The driver is selected by right-clicking the top row of the module, then you can select the device by right-clicking the second row, and finally the MIDI channel by right-clicking the third row. The available output connectors are:

  • CV. A V/Oct signal to drive, for example, an oscillator.
  • GATE. A gate signal with rising edge on MIDI Note On event and falling edge on MIDI Note Off event (GATE). It does not retrigger when playing legato.
  • VEL. A control voltage proportional to the MIDI Note velocity, ranging 0–10 V, for input MIDI velocity 1–127.
  • AFT. MIDI Aftertouch.
  • PW. Reacts to the pitch wheel in the range −5 to +5 V.
  • MW. Reacts to the modulation wheel in the range −5 to +5 V.
  • CLK. Supplies pulses timed according to incoming MIDI Clock System Real-Time Messages.
  • CLK/N. Another source of the MIDI clock but with selectable divider. The divider is selected from the module context menu (CLK/N divider).
  • RTRG. Generates a 1 ms trigger at any key press (when playing legato, it will generate a pulse even though the gate will not change its state.
  • STRT. Generates a trigger when receiving a MIDI Start System Real-Time Message.1
  • STOP. Generates a trigger when receiving a MIDI Stop System Real-Time Message.2
  • CONT. Generates a trigger when receiving a MIDI Continue System Real-Time Message.3

The module can handle polyphony up to the maximum number of channels, which is 16. Not all outputs can be polyphonic. Modulation and pitch wheels are monophonic due to MIDI limitations. The desired polyphony is set from the context menu. This means that those outputs which allow polyphonic outputs (e.g. gate and velocity) will carry a number of channels greater than one. If one MIDI note is played at a time, only one of the gate channels will be nonzero.

Several polyphony modes are available to manage the routing of the notes into the polyphonic cables channels, and thus into your synth:

  • Reset. Sends the last received MIDI note message to the first spare output from top to bottom, hence each note occupies an outlet from its onset until the related Note Off message. If all the polyphonic channels are used, the bottom one is overwritten by the new one.
  • Rotate. Rotates the output connectors in a round-robin fashion from top to bottom, always sending the last received note to the next row of outputs. If more than four notes are active, it does overwrite the next one.
  • Reuse. Similar to Reset, but if a MIDI note has been previously assigned to one of the rows, it tries to reuse the same row again.
  • MPE. For MPE controllers.

A Panic option is available in the context menu to reset the module, in cases, for example, of stuck notes.

3.4.3 MIDI-CC

This module translates MIDI Control Change (CC) messages into virtual voltages. Up to 16 CC can be converted into the assignable outputs. Each connector is initially assigned to a CC from 0 to 15, as denoted by the 16-number box on the module panel. To assign different CC to any of the connectors, click the related number (you will see the “LRN” string in place of the number, standing for “learn”) and instruct the module by sending a CC message to VCV (e.g. by twisting a knob) or type the CC number on the computer keyboard. Please note that the MIDI learn functionality can work only if you have previously selected the correct MIDI driver, device, and channel from the three upper rows of the module panel.

The outputs send a 0–10 V voltage corresponding to the CC data 0–127. As an exception, some gamepad drivers can generate MIDI values from −128 to 127 that are translated to a voltage from −10 to 10 V.

3.4.4 MIDI-GATE

This utility module is used to send gate signals corresponding to specific notes (e.g. to employ a MIDI controller to trigger events using keys or percussive pads). If connected to MIDI sequencers that send a Note On and Note Off messages in a row, a 1 ms trigger voltage is produced; otherwise, 10 V gate signals are produced in the interval between Note On and Note Off messages.

If you want the gate signal to have amplitude corresponding to the Note On velocity value, you can tick the “Velocity” label in the right-click context menu.

A Panic option is available in this module too, to reset the MIDI status.

3.4.5 MIDI-MAP

This module allows you to map a MIDI-CC message to parameters of any module in the rack. When the mapping is done, a full sweep of the CC from 0 to 127 allows the parameter to go from its minimum to its maximum values. For binary switches, values less than 64 map to 0 and greater than or equal to 64 map to 1.

The procedure to create the mapping follows:

  • Click an empty slot – the text changes to “Mapping.”
  • Click a parameter of a module.
  • Send a CC message from your MIDI controller.

A yellow square is printed near the mapped parameter. Maps can be undone by right-clicking them.

3.4.6 CV-MIDI, CV-CC, CV-GATE

These modules translate voltages to MIDI messages, in a similar fashion to their counterparts, MIDI-CV, CC-CV and GATE-CV, respectively.

CV-MIDI translates voltages to MIDI note, aftertouch, and real-time messages. Values are 7-bits-quantized (0–127). Note messages are sent on gate edges or on note change, and are polyphonic. All the other inputs transmit MIDI messages on a change of the quantized value.

CV-CC translates voltage values to selectable MIDI-CC messages, while CV-GATE sends note messages corresponding to the editable values in the module panel when the CV input is over the 1 V threshold.

3.5 Fundamental Modules

These modules are provided by VCV for free and are suggested to anyone who has to gain familiarity with Rack or modular synthesis in general. They cover most basic building blocks of a Eurorack system. A brief description of the currently available modules follows.

VCO-1 is a versatile virtual voltage-controlled oscillator with sine, saw, triangle, and square outputs all available at once on separate outputs. It has exponential frequency modulation with hard/soft sync and pulse width modulation (PWM) for the square wave. It features analog waveform emulation but also digital waveform generation. The analog waveforms feature pitch drift and react to pitch changes with some slew. The digital waveforms have quantized pitch and introduce more aliasing. Figure 3.3 compares the analog and digital sawtooth waveforms.

Figure  3.3:  Comparison of the analog (top) and digital (bottom) sawtooth waveforms generated by Fundamental VCO-1.

VCO-2 is a stripped-down version of VCO-1, with morphing between the same waveform type seen in VCO-1.

Fundamental VCF is a low-pass/high-pass voltage-controlled filter, emulating a four-pole transistor ladder filter with overdrive and resonance. There is no switch to select the filtering mode, but a low-pass and a high-pass output. The cutoff frequency CV is subject to an integrated attenuverter (FREQ CV), while the resonance (RES) and drive (DRIVE) CV are summed to the related knobs. The sum is subject to clipping (i.e. when the RES knob is turned to the maximum level, any positive CV sent to the RES input will not affect the resonance because it already reached the maximum value).

The ADSR module generates envelopes to control the evolution of a sound. Its output can be used as a control voltage for any module. It follows the ubiquitous Attack-Decay-Sustain-Release paradigm. Most often it will be used together with the VCA module. The VCA module is a voltage-controlled amplifier. In essence, it multiplies the input signal with a control signal in order to shape its amplitude. The response to the control signal can be linear or exponential. If the envelope is sent to the exponential input, the attack and decay ramps will decay “linearly in dB.” Confusing, uh? In other words, the decay is exponential, but converted in dB (using the logarithm, which is the inverse operation of the exponentiation) the decay results linear. As shown in Figure 3.4, an exponential decay looks linear on a dB scale, and we can say that it feels more natural and linear to the ear as well.

Figure  3.4:  Comparison of decay plots. A linear decay decreases by a fixed term per unit of time, looking like a straight line on a linear plot, or as a logarithmic curve on a logarithmic plot (in this case, a dB plot). An exponential decay decreases by a fixed number of decibels per unit of time, thus looking like a line on a dB plot.

LFO-1 and LFO-2 are the low-frequency oscillators in the Fundamental series. Almost similar to voltage-controlled oscillators, they have an extremely low frequency, which goes from tens of seconds per cycle up to 261 Hz (the pitch of C4). LFOs are generally used to modulate a signal and improve expressivity. LFO-2 is more compact than LFO-1 and offers morphing between wave shapes instead of individual outputs. This can be a lot of fun if the wave type is modulated using another signal or LFO.

Besides the traditional synthesizer building blocks, Fundamental also offers a delay effect, a mixer, and other utilities. Let us examine them.

DELAY is a digital delay with control over feedback, delay time, and tone color. It has a dry/wet knob. The implementation is very good, featuring smoothing on time adjustments, thus avoiding annoying glitches that even hardware effects sometimes have when abrupt changes occur on the delay line length.

A small mixer, VC MIXER, is provided. This is a four-channel mixer with independent CV control of each channel level and overall level. It can be used in conjunction with the Core AUDIO module to set levels prior to sending out the signals, but it can be used for many other mixing operation inside your patches.

The attenuverters module, 8VERT, can also be used to fade signals or even invert their phase. This is a module consisting of eight attenuverters. An attenuverter multiplies the input signal by a gain that ranges from −1 to 1. If the gain is negative, the signal gets inverted (minus sign) and attenuated by the absolute value of the gain. As an extra utility, when no input is connected to a row, the output of that row corresponds to the value of the knob in the range −10 to +10V. This allows the module to create constant CV outputs that can be used to parametrize other modules.

Another utility module, UNITY, contains two six-channel direct mixers, with no gain control. It can sum input signals or average them. In the latter case, the inputs are summed and scaled by the number of connected inputs. An inverted phase output is also available (INV).

Fundamental MUTES has ten input/output pairs, and a toggle switch for each one, muting the output. Outputs with empty input copy their signal from the first non-empty input above.

SEQ-3 is an eight-step sequencer with three rows of control voltages. It is driven by an internal clock, which has a tempo knob (CLOCK), or by an external signal (EXT CLK). Each time the clock ticks, the sequencer fires a gate signal (GATE output on top) and advances by one step. For each step, a gate signal is also sent individually (bottom row of outputs). For each step, the three control voltages assigned to that step (corresponding to the three rows) are sent to the three related outputs (ROW 1, ROW 2, ROW 3). The clock can be shut off (RUN button) or reset (RESET). The number of steps does not necessarily have to be eight. Using the STEPS knob, a lower number of steps can be used, allowing, for example, the change of the tempo signature. To recap, at each clock step:

  • the sequencer advances to the next step;
  • the three knob values (one per row) are sent to each of the CV outs (ROW 1, ROW 2, and ROW 3);
  • a gate signal is fired to the GATE output; and
  • the same gate signal is fired on the GATE OUT output corresponding to the current step (bottom row) – this individual gate signal can be disabled by clicking on the green button close to the output.

A clock generator and a simpler sequencer will be the object of our work in Sections 6.5 and 6.6. If something is not clear enough at this point, it will become clearer later.

Two utility modules, SS-1 and SS-2, are also present for multiplexing and demultiplexing (in short, muxing and demuxing). SS-1 is a demultiplexer that scrolls through the outputs in a round-robin fashion, based on a clock signal. In other words, at each clock pulse, it sends the input signal to the next output. SS-2 is a multiplexer that scrolls through the inputs in a round-robin fashion, based on a clock signal. At each clock pulse, it sends a different input to the output. If this is not totally clear by now, do not worry – more on muxing and demuxing will come in Section 6.3, where we shall build a mux and demux module.

Utility modules to deal with polyphonic cables are SPLIT, MERGE, SUM, and VIZ. SPLIT takes a polyphonic cable and splits into monophonic cables. MERGE takes up to 16 input monophonic cables and merges these in one polyphonic output cable. SUM takes a polyphonic input and outputs the sum of all its channels into a monophonic cable. Finally, VIZ takes a polyphonic input and visualizes the intensity of its individual channels through 16 LEDs.

Finally, SCOPE is an oscilloscope emulator, with external trigger, internal trigger based on a threshold, X-Y mode, vertical zoom and offset, and time zoom. We shall see in the next section how this works in detail. You should get to master it in order to debug modules.

3.6 Quick Patches

Drawing from the theoretical chapters and our quick introduction to VCV Rack, we now have enough expertise to go through a few examples. These are meant to introduce you to the setup of simple patches, and will help you when you are going to test your modules later.

3.6.1 Audio and MIDI Routing

Ideally, a synthesizer patch should have control inputs and audio outputs. In this case, we consider a MIDI master keyboard as input, sending note messages and control changes. If you like to patch from left to right, I would suggest putting the MIDI inputs on the left and the audio output on the right. For an optimal management of the audio output, some mixing devices are suggested. VCV sells its VCV Console module that does it all very nicely. If you prefer, however, to stay with the free modules, you can stack VCV Mutes and VCV Unity, or VCV Mixer.

In Figure 3.5, an empty rack with MIDI input and audio output is shown. MIDI inputs, placed on the left, include a monophonic MIDI note input and a MIDI-CC input to control the synthesizer’s parameters. For what concerns the audio stuff, we opted for a simple solution that allows four inputs to be routed to a stereo output. The Mixer module has four inputs and faders. The outputs can be mixed with Unity and get routed to the left and right output. For a larger number of inputs, two Mixer modules can be employed and the Mix output of each one can be directly routed to the left and right outputs, respectively. Please note that the AUDIO module inputs and outputs should be understood as the module inputs and outputs, respectively. In other words, you should connect the signal that you want to send to the sound card outputs to the AUDIO module inputs!

Figure  3.5:  A template patch hosting MIDI inputs and audio outputs.

By saving such a template and recalling when starting a new patch, you will be able to reduce your working time significantly.

3.6.2 East Coast Synthesis in One Minute

Let us now build a simple East Coast patch starting from the template patch. We want to build a canonical subtractive synthesizer in the East Coast style. This is composed of a cascade of VCO, VCF, and VCA. The VCO generates a rich harmonic tone that is shaped in frequency by a VCF. An envelope generator feeds the VCA to control the note duration and to control its envelope. Finally, a vibrato effect is created by modulating the VCO with an LFO. The modulation wheel control change (CC1 in the MIDI standard) will control the amount of the LFO. This module is monophonic and only has one output that goes to the stereo output pair. Figure 3.6 reports the block diagram for this simple synthesizer.

Figure  3.6:  A simple East Coast monophonic synthesizer to build with VCV Rack.

The patch is shown in Figure 3.7. The MIDI-CV provides GATE, V/OCT, and MW (modulation wheel) outputs. The V/OCT output is sent to the VCO to set the oscillator pitch. The saw output is sent to the VCF for filtering. The low-pass filtered waveform is sent to the VCA to apply an envelope and the VCA output is sent to the mixer. The GATE output triggers an ADSR envelope, used in conjunction with the VCA. We use the first of the two VCAs provided by VCA-2.

Figure  3.7:  A simple East Coast patch with VCO-VCF-VCA cascade, monophonic input, and vibrato.

The frequency-modulating signal for the vibrato is generated by LFO-1 (sine wave). This wave is multiplied by the MW control voltage using the second VCA module, VCA-2, in linear configuration. The result is sent to VCO-1 as the FM input. The FM CV knob in VCO-1 must be turned to some nonzero value, otherwise in its rest position it kills the modulating signal and no vibrato will take place. The modulating signal is thus the product of the LFO sine with MW and the FM CV knob. When the MW MIDI value is zero, no vibrato will take effect.

Finally, there is a SCOPE to control the output. Et voila, this patch emits sounds!

3.6.3 Using the SCOPE

As any good electronics engineer or practitioner should have experience with the oscilloscope, VCV Rack fans and developers should know how to properly observe signals using an oscilloscope module.

The VCV SCOPE module has all the basic features one needs to master. It has two inputs for signals and an input for an external trigger. The two inputs have independent vertical scaling (zoom) and positioning (for offsetting) knobs. These are X SCL, Y SCL, X POS, and Y POS, respectively, where X and Y are the two inputs. The TIME knob is meant to change the timescale, allowing you to observe high-frequency oscillations and glitches (turning the knob to the right) or longer events such as notes and envelopes.

Figure  3.8:  Triggering the signal on the first input using the internal trigger.

For operating an oscilloscope fruitfully, it is also important to understand the triggering system. Normally, the signal is sampled at regular intervals, according to the TIME parameter, and stored in a buffer that is printed on the screen. The screen is thus refreshed with a rate that depends on the TIME knob. This mode, which we may call free run mode, is not the only available one. The refresh of the screen can be issued by internal or external triggering. Internal triggering occurs when a rising edge occurs on the X IN and this edge crosses the trigger value. The threshold is selected using the TRIG knob and shown in the SCOPE window as a small arrow indicated with a “T.” In Figure 3.9, a sine wave is shown in the SCOPE, starting with a nonzero phase, due to the alignment with a negative trigger. Please note that in absence of X IN, the Scope will not synchronize to the Y IN.

Figure  3.9:  Triggering the SCOPE using an external input.

An external trigger can be used as well to synchronize the view with a third signal connected to the EXT input. This resets the view when its value passes the threshold imposed by the TRIG knob.

The SCOPE provides useful statistics related to the X and Y input signals. These are on the top and bottom of the SCOPE screen, written in a tiny font. Peak-to-peak (pp), maximum, and minimum values are provided. By default, one vertical division spans 5 V, and thus the display spans from −10 V to +10 V. If the X SCL or Y SCL knobs are increased or decreased by one step, the vertical division gets halved or doubled, respectively.

Finally, the SCOPE can plot a Lissajous curve in the X-Y view. The X and Y signals control the horizontal and vertical coordinates of the drawing point, respectively. This mode is particularly useful to tune the phase of two signals with same frequency. As you can see in Figure 3.10a, two sines with π phase difference are shown as a sphere. On the contrary, when in perfect phase, they are aligned showing one thin line that goes from bottom left to top right, as shown in Figure 3.10b. In the X-Y configuration, the TIME knob adjusts the persistence of the signal on the screen.

Figure  3.10:  The SCOPE in X-Y mode, showing two sine signals with the same frequency, and (a) π phase shift and (b) almost zero phase shift.

Of course, the SCOPE can be used to create cool visuals. In the old-school modular tradition, analog signals were used to drive a cathode-ray tube screen. Figure 3.11 shows the X-Y plot of a frequency-modulated signal.

Figure  3.11:  Using the SCOPE as a plotter for cool visuals. A sine and a frequency-modulated saw are plotted one against the other (left) and in X-Y mode (right).

3.6.4 Observing Aliasing

Sometimes it may be useful to observe signals in the frequency domain. Fundamental does not provide a tool for this, but the ABC collection provided with this book does. This spectrum analyzer looks similar to SCOPE but provides a real-time DFT visualization. The horizontal axis can be linear or logarithmic. The former is useful, for example, to discriminate harmonic partials from inharmonic partials, because the spacing between the harmonics is equal. The logarithmic view is useful for giving the same importance to all frequency bands, following psychoacoustic basics. Specifically, it allows an accurate view of the lower-frequency bands.

We are going to perform a tutorial frequency analysis to watch the presence of aliasing in a signal. Please take note of the fact that the analyzer is very sensitive and even the smallest aliasing components will appear. Figure 3.12 shows the spectrum of a sawtooth tone from VCO-1 (analog mode) at approximately 1 kHz. The aliasing components are visible, although they are hardly noticeable in a listening test because they are tens of dB below the first (correct) 11 partials. In some cases, the aliased partials are not visible, hiding below the correct ones (Figure 3.12). One way to spot the presence of aliasing in such cases is to slightly change the frequency. Sweeping an oscillator is often revealing for the ear as well: you will notice the artifacts given by the inharmonic partials traveling up and down.

Figure  3.12:  The spectrum of a sawtooth wave generated with VCO-1 at approximately 1 kHz. (a) The effect of the aliasing is clearly visible (partials connected with a white line). (b) The exact frequency of the tone is slightly changed so that the aliased partials hide below the skirts of the proper partials. Please note that in the first case, although visible, alias is not noticeable by ear as the undesired partials are tens of dB below the proper ones.

3.6.5 Using Polyphonic Cables

In Section 3.6.2, an East Coast monophonic synth was created using Fundamental modules. Here, we are going to make it polyphonic by exploiting polyphonic cables.

Let us first say a few words related to polyphonic cables. This is a feature that is almost unique to VCV Rack. It consists of allowing some ports to handle cables that support multiple signals. It is a little like having a bunch of inputs and outputs in one. A polyphonic cable consists, in other words, of a bundle of up to 16 monophonic cables. When a cable is in polyphonic mode, it is drawn thicker than monophonic cables. But how do you make cables polyphonic?

The answer is: it depends on the source module. When connecting ports, the system knows if a cable needs to be poly or mono. If the output port supports more than one channel, the cable automatically becomes polyphonic. The MIDI-CV module, for example, supports mono and poly modes. This setting is available from the context menu, under the Polyphony Channels item. When you drag the V/OCT output of the Core MIDI-CV module with polyphony channels (right-click) set to 1, the cable will be monophonic. If polyphony is set to a number 2–16, the cable will be thicker, indicating that it is a polyphonic cable.

Even though a cable is polyphonic, it can be connected to an input port handling only one channel. What happens in this case? It depends on the module: some will discard all channels but the first one, some will sum all the channels into one. The general rule is:

  • Audio inputs should sum all the channels to avoid losing some of them.
  • CV inputs or hybrid audio/CV inputs should only take the first one.

More on this will come later. Now let us focus on making the East Coast synthesizer polyphonic.

Open the east-coast.vcv patch. Right-click the MIDI-CV module and set any number, from 2 to 16, from the Polyphony Channels menu. Done! Yes, it is simple as that!

The cables stemming from V/OCT and GATE are now polyphonic. As a domino effect, the VCO and the ADSR modules are now polyphonic and their outputs will be polyphonic, thus similarly affecting the VCF, VCA-2, and so on.

Notes

1    When MIDI-CV is connected to VCV Bridge, it receives the Start, Stop, and Continue events from the DAW.

2    Idem.

3    Idem.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.235.104