The Pulse-VCO Panel

Pulse-VCO Module

for VCV Rack, Ⓒ Sm@rTAZZ Studio, developed by Marinko Laban

Last updated May 23rd, 2024. This manual is valid for the 2.2.0 release of the module. Older releases may not support everything stated here.

Introduction

The Pulse-VCO is another attempt to write a VCV Rack module, and I'd like to believe they are becoming a bit more complex. This module generates a pulse or block/square wave in the audible spectrum and is therefore a VCO. It allows for having a fixed pitch you can set or pitch is generated as per the V/Oct input. You can manually set the volume and phase as well, or have these modulated via the various inputs. Attenuation per modulation input is available as well.

In the module menu, you can select the band limitation. Select Unlimited for a mathematical exact triangle, with a lot of aliasing in the higher notes. Select Limited for a limited number of harmonics, so aliasing artifacts will be less prominent. You can select the number of harmonics in the Harmonics menu.

The VCO is polyphonic. All modulation however, is applied to each polyphonic channel in the same way, so there is no option to have a different modulation or other setting per individual channel.

Manual

The Pulse-VCO generates a pulse wave, it is as simple as that. The paragraphs below describe each of the knobs, input/output jacks and menu items.

Panel Functions

V-In: can be used to control the frequency (pitch) of the VCO. It takes a typical V/Oct input from e.g. a MIDI controller module.

Out: This is the output signal of the VCO. It is typically sent to a VCA or mixer. It normally generates a signal between -5V and +5V, but that depends on the setting of the Volume knob and any volume modulation that may happen.

FM-In: can be used to modulate the frequency (pitch) of the VCO. Usually, this is done with an LFO signal, but any modulation source can be used. Typically, modulation signals can be unipolar (between 0V and 10V) or bipolar (between -5V and 5V). The module handles both gracefully. Note that the pitch of the oscillator is clipped between 10 Hz and 20,000 Hz, to avoid weird artifacts when modulating too much.

FM Attn: can be used to attenuate the frequency (pitch) modulation of the VCO. This means that the level of the modulation signal can be trimmed down to allow more subtle modulation. The attenuation can be set between -1.0 (max negative modulation) and 1.0 (max positive modulation). The module limits the maximum frequency modulation by 5 times the base pitch.

PM-In: can be used to modulate the phase of the sawtooth wave generated by the VCO. This is sometimes called a phase shift.Usually, this is done with an LFO signal, but any modulation source can be used. Typically, modulation signals can be unipolar (between 0V and 10V) or bipolar (between -5V and 5V). The module handles both gracefully, meaning that is allows a phase shift both forward as well backward.

Note that a phase shift is generally not audible with a single voice, but it can be made visible with an oscilloscope. However, when you combine multiple voices via a mixer or merge module, phase modulation becomes audible and can add movement to your sound, especially when you modulate the phases for each voice differently.

PM Attn: can be used to attenuate the phase modulation of the VCO. This means that the level of the modulation signal can be trimmed down to allow more subtle modulation. The attenuation can be set between -1.0 (max negative modulation) and 1.0 (max positive modulation). The module limits the phase shift to max 1 full wave cycle, either left or right. For a unipolar modulation signal, it means that with an input of 10V to the PM-In signal, the phase shift is moved to the end of the cycle, which is also the beginning of a new cycle. For a bipolar signal, the phase shift will be -/+ half a cycle.

VM-In: can be used to modulate the volume (level) of the VCO. Usually, this is done with an LFO signal, but any modulation source can be used. Typically, modulation signals can be unipolar (between 0V and 10V) or bipolar (between -5V and 5V). The module handles both gracefully.

VM Attn: can be used to attenuate the volume (level) modulation of the VCO. This means that the level of the modulation signal can be trimmed down to allow more subtle modulation. The attenuation can be set between -1.0 (max negative modulation) and 1.0 (max positive modulation). The module limits the maximum volume to be double the base volume, which is set by the Volume knob. For a unipolar modulation signal, it means that with an input of 10V to the VM-In signal, the base volume is doubled. For a bipolar signal, the volume will be -/+ half.

Caution: When setting the volume attenuation to 1.0, the Volume knob to maximum and applying a 10V signal to VM-In, you can generate output voltages way above 5V. Hence make sure you level the output appropriately, and use a limiter in case of doubt. DO NOT RISK EAR DAMAGE!

PW-In: can be used to modulate the pulse-width of the VCO. Usually, this is done with an LFO signal, but any modulation source can be used. Typically, modulation signals can be unipolar (between 0V and 10V) or bipolar (between -5V and 5V). The module handles both gracefully.

PW Attn: can be used to attenuate the pulse-width modulation of the VCO. This means that the level of the modulation signal can be trimmed down to allow more subtle modulation. The attenuation can be set between 0.0 (no modulation) and 1.0 (maximum modulation). The module limits the pulse-width to be always between 1% and 99%.

Pitch: The Pitch knob can be used to set the base frequency of the VCO. By default, it is set to 261.63 Hz (C4). Note that if a cable connected to the V-In jack, the voltage supplied will be used to set the pitch by 1 V/Oct, where 0 V will result in the base frequency as per this knob setting. Therefore, you can use this knob also as an absolute tuning knob of the VCO, but not as a relative detune, as you can only tune the base frequency based on 0 V input.

Phase: can be used to set a fixed phase shift for the output wave. This fixed shift is added to any phase modulation that is applied. This is useful when mixing quite different wave forms. For instance, you can merge a sine wave with a sawtooth, phase shift the sine by half a cycle by setting this knob to 0.5, and then apply a subtle phase modulation to either the sine or the sawtooth.

Volume: can be used to set the volume (level) of the VCO. This is the base volume to which any volume modulation is applied. See also VM-Attn for a warning about output levels.

Pulse: can be used to set the pulse-width of the VCO. This is the base pulse-width to which any pulse-width modulation is applied. The default is 50%.

Menu Items

Band: You can select between Unlimited and Limited, which switches between a mathematical pulse (Unlimited) and an approximation by combining a number of harmonically relevant sine waves (Limited). The number of sine waves that are used is set with the Harmonics menu item. The unlimited version is rich in harmonics, but also causes a lot of aliasing effects. This may add richness to your sound, but can also cause unwanted effects. A Band-limited version, especially with not too many harmonics, has less or no aliasing, but is also less rich in harmonics and sounds a bit duller.

Harmonics: can be used to set the number of harmonics for the Limited Band version. Currently, you can choose between 1 (a pure sine wave) and 20 harmonics.

Note: Pulse-width and pulse-width modulation can ony be used when in Unlimited band mode. When in Limited mode, these parameters will have no effect.

You will find a tutorial below in due time (work in progress)

Source Code & Plugin

Feel free to download the source code of this module. It is part of the STS-Free bundle and the full bundle is available here on GitHub. The STS-Free bundle (slug value "SmarTAZZStudio-Free") is also available as a downloadable plugin from the VCV Rack Library, so you can download and install the module directly from VCV here.

Feedback

Feel free to feedback any comments or questions you may have. Click here to email me. You can also leave a comment in the GitHub repository with the source code.

Finally, if you want to support me in my work, feel free to buy me a coffee via the button below. It is highly appreciated and helps me to continue my work.