Ultra Cowbell

Polyphonic metallic percussion voice

  • 24HP
  • Up to 16 voices
  • 1v/octave pitch
  • CV on every sound control

Ultra Cowbell is a percussion voice for cowbells and other metallic sounds, such as bells, tines and clanks. Made from two oscillators, a decay envelope, bandpass filter, saturator and a third oscillator to ring modulate.

It's polyphonic, so one module can play chords, rolls or a different sound on each voice. The display draws a wireframe bell for each voice, and the bells change shape as you turn the knobs.

Ultra Cowbell is an evolution of Moar Cowbell, the free module in the DanTModules plugin. It's designed to sound like Moar Cowbell and comes with its presets, and you can bring your own Moar Cowbell sounds across.

Ultra Cowbell front panel Ultra Cowbell front panel

Quick start

Once you've bought Ultra Cowbell in the VCV Library, start Rack so it downloads and installs the plugin, then restart Rack to make the module available.

  1. Add Ultra Cowbell to your patch (search for "cowbell" in the module browser).
  2. Patch OUT to your audio output module, or to a mixer.
  3. Press HIT to hear the default sound. At the default level hits peak at about 3.5v, a little under the ±5v Rack normally uses for audio.
  4. Patch a clock or a sequencer's gate output into TRIG to play it in time.
  5. Try the factory sounds (right-click ▸ Preset), or turn the knobs and listen.

How the sound is made

You don't need to know this to use Ultra Cowbell, but it may make the knobs easier to understand. Every voice follows the same path:

  1. Saw oscillatorFREQ
  2. Square oscillatorFREQ + SPREAD
  3. Decay envelopeRING
  4. Bandpass filterFILTER, WIDTH
  5. SaturatorDIST
  6. Ring modulatorFREQ + METAL
  7. LevelGAIN
  8. OUT / MIX

The first half is the classic analogue drum machine cowbell; the saturator and ring modulator are Ultra Cowbell's additions. The oscillators run freely between hits, so each hit starts wherever they are in their cycle.

Panel overview

The Ultra Cowbell panel with lettered callouts: A display, B level meter, C display switch, D sound knob, E grid light, F attenuverter, G CV input, H Pitch knob, I V/OCT input, J Hit button, K TRIG input, L Panic button, M OUT, N MIX The Ultra Cowbell panel with lettered callouts: A display, B level meter, C display switch, D sound knob, E grid light, F attenuverter, G CV input, H Pitch knob, I V/OCT input, J Hit button, K TRIG input, L Panic button, M OUT, N MIX

Hover over anything on the panel for a tooltip with its full name, its value in real units, and for ports, what they expect and how they're patched at the moment.

Sound controls

As with any Rack knob, double-click to reset to the default, or right-click to type in a value. Frequency and Filter frequency also accept note names: typing g4 gives 392Hz, and their tooltips show the nearest note.

FREQ Frequency

The pitch of the main (saw) oscillator; the other two oscillators are set relative to it. The knob is exponential: every octave takes the same amount of travel, about 14% of the knob.

Frequency changes the character of the sound as well as its pitch, because Spread and Metal are fixed distances in Hz above it. To play the same sound at different pitches, use Pitch or V/Oct, which move everything together.

SPREAD Spread

How far above Frequency the second (square) oscillator sits. At 0Hz both oscillators play the same pitch.

METAL Metal

How far above Frequency the ring modulator's oscillator sits, which sets the extra pitches it adds. Small changes can give quite different results, so it's worth sweeping slowly while playing.

Spread and Metal with CV patched

Their CV works in octaves, and an octave above 0Hz is still 0Hz. So while a cable is plugged into Spread CV or Metal CV, a knob at 0Hz behaves as about 1Hz, and the CV moves the value from there.

RING Ring

How long each hit rings: the decay time of the envelope, called Decay on most drum voices. Short settings give clicks and muted hits; longer ones give ringing bells.

The knob is curved to give the short settings more room: the first 100ms takes about a quarter of the travel, the default 450ms sits just before the middle, and 1s to 5s share the top 40% or so.

FILTER Filter frequency

The centre of the bandpass filter. Only the part of the sound around this frequency gets through (Filter width sets how much), so this is the main tone control: lower settings sound duller, higher ones brighter. The knob is exponential, like Frequency.

The filter follows Pitch and V/Oct, but not the Frequency knob.

WIDTH Filter width

How wide the filter's pass band is, either side of the filter frequency: with Filter at 1000Hz and Width at 300Hz, roughly 700 to 1300Hz gets through. Narrow settings focus on a small range of pitches; wide settings let more of the oscillators through.

DIST Distortion

A gentle saturator after the filter. It adds a little grit, but mostly thickens the hit and makes it sustain for longer, because the loud start of each hit is squashed more than its tail. At the lowest settings the sound isn't reaching the saturator yet, so they mostly change the level, which Gain compensation then evens out. Moar Cowbell's maximum is 66.7% here.

GAIN Gain / Output level

The volume: Output level with Gain compensation on (the default), plain Gain with it off. The knob stays where it is when you switch; only its scale changes.

CV, attenuverters and grid lights

Each cell's CV input adds to its knob. The knob does not move. The grid light below the input shows the CV that the module receives. There are two kinds of CV:

Either way, CV can't take a control beyond the values you can reach by hand.

Attenuverters

The small knob above each CV input scales it from −200% to +200%. At 12 o'clock (0%) the CV has no effect; right of 12 o'clock increases it, and left of 12 o'clock inverts it. It starts at 100%.

Each CV input's tooltip shows what −5v and +5v give with the knob and attenuverter as they're set, so you can see what a cable will do.

The Ring CV input's tooltip: CV, ±10 V, 10 V = full knob travel; -5 V = 1 ms, +5 V = 3680 ms; Poly: per voice, mono = all; Now: mono; From VCV LFO: Triangle output The Ring CV input's tooltip: CV, ±10 V, 10 V = full knob travel; -5 V = 1 ms, +5 V = 3680 ms; Poly: per voice, mono = all; Now: mono; From VCV LFO: Triangle output
The Ring CV tooltip with an LFO patched.

Grid lights

This light shows the voltage that the module receives on the input, with 1 cell for each channel of the cable. A positive voltage is green and a negative voltage is red. Brightness shows the size of the voltage, with full brightness at ±5v. The knob and attenuverter values do not change what the light shows.

The light beside V/OCT shows the V/Oct voltage. The light below TRIG flashes for each hit that the input starts, and a very short trigger also gives a flash. It does not flash for the HIT button. A mono cable has 1 cell, which flashes for a hit on any voice.

Grid light modes

The layout of the light changes with the number of channels on the cable. An input without a cable shows a dashed outline.

A faint dashed square A faint dashed square
No cable
One large cell One large cell
1 channel
Two tall cells Two tall cells
2 channels
Four cells, two bright and two dim, green at the left and red at the right Four cells, two bright and two dim, green at the left and red at the right
4 channels
Five cells in a layout of eight Five cells in a layout of eight
5 channels
Eight cells in two rows of four Eight cells in two rows of four
8 channels
Twelve cells in three rows of four Twelve cells in three rows of four
12 channels
Sixteen cells in four rows of four Sixteen cells in four rows of four
16 channels

Each layout has space for a maximum number of channels: 1, 2, 4, 8, 12 or 16. The light uses the smallest layout that holds the channels, and the other cells are blank. Thus 5 channels use the 8-channel layout with 3 blank cells. Channel 1 is the top-left cell, and the channels go down each column.

The 4-channel example shows the colours and brightness. The left column is +5v and +1.5v, and the right column is −1.5v and −5v.

Pitch and V/Oct

PITCH Pitch

Transposes the whole voice: all three oscillators and the filter move together, so the sound keeps its character. The tooltip shows volts and semitones; when typing a value, 7 st is 7 semitones and a plain number is volts.

V/OCT 1V/octave pitch input

Added to the Pitch knob at 1v per octave, for playing from a sequencer or MIDI-CV. 0v plays the pitch the Frequency knob is set to, not C4 as on most oscillators; to make 0v C4, type c4 into Frequency (261.63Hz).

Pitch and V/Oct are applied after the Frequency knob, so they can take the voice beyond its range. Very high settings stop rising at the oscillators' upper limit.

Hit, TRIG and Panic

HIT Hit button

Hits every voice at once, at full level. The ring around the button comes on while you push it, and for each hit from TRIG.

TRIG Hit trigger input

A hit plays when the voltage rises above 1v, and the voltage has to fall back to 0v before the next. Any trigger works, even a 1ms one. A gate plays one hit at its start: the Ring time, not the gate, sets how long it lasts. With Trigger velocity on, the voltage also sets each hit's level.

PANIC Panic button

Silences every voice immediately. The ring around the button comes on while you push it. Moar Cowbell needed one because some settings could leave it stuck. Ultra Cowbell is designed to avoid that, and keeps the button for nostalgia and as a nod to its Moar Cowbell lineage.

Outputs

OUT Polyphonic output

One channel per voice, for a mixer that accepts polyphonic cables, or VCV Split to give each voice its own cable.

For stereo, play 2 voices (a 2-channel cable into TRIG or a CV input), then send OUT through VCV Split to the left and right inputs of your audio module or mixer.

MIX Mono mix output

The average of all the voices, in mono. With 1 voice it's the same as OUT. With more, voices hit together peak at about the same level as one, so MIX stays within Rack's range however many voices you play.

Because it's an average, a single hit plays quieter the more voices are active, even when the others are silent: 6dB quieter with 2 voices, 12dB with 4 and 24dB with 16.

For a mono mix at full level, patch OUT's polyphonic cable straight into a mono audio input, such as VCV Audio or a mono mixer channel. (A polyphonic mixer channel keeps the voices separate instead, so it won't mix them down.) Rack's convention is that a mono audio input adds up all the channels it receives, so every voice plays at full level, like a unity mixer. Voices hit together add up too, so turn the Output level down if you play many at once. (Mono CV inputs are different: by the same convention they use only the first channel.)

Port reference

The same details as the port tooltips, in one place.

Inputs
PortSignalBehaviour
Frequency, Spread, Filter frequency, Filter width and Metal CVCV, ±5v, with attenuverter1v/octave
Ring, Distortion and Gain CVCV, ±10v, with attenuverter10v = full knob travel
1V/octave pitch—0v = the Frequency setting
Hit triggerTrigger or gatefires above 1v (0.1v with velocity)

Polyphony, every input: per voice, mono = all.

Outputs
PortSignalBehaviour
Cowbell (polyphonic)Audio, ≈3.5v peak at default levelone channel per voice
Cowbell mix (mono)Audioaverage of all voices

The display

Animation: a single wireframe bell swells when hit and shrinks back as the sound dies away
A hit at the default settings: the bell swells, and shrinks back as the hit dies away.

The bells fan out from left to right, one per voice. Each bell has 1 colour, set by its distance from the centre: yellow at the centre, with a blend to blue at the outermost bells. The colour helps you see overlapping bells.

Each sound knob changes the bell in its own way, so the shape gives a rough picture of the settings. The DISPLAY switch, to the left of the display, turns it off. The switch is dark red when the display is off (see Display options).

The display showing one thin yellow bell
1 voice: the Music-Box preset.
The display showing two thick blue bells at slightly different heights
2 voices: Blacksmith, with Frequency CV at −0.5v and +0.5v. Its high Distortion gives the thick lines.
The display showing five overlapping bells at stepped heights, yellow at the centre and blue at the edges
5 voices: Sheet-Metal, with Frequency CV from −1v to +1v, hit a moment apart.

What each knob does to the bell

Each pair shows one knob low (left) and high (right), with everything else at its default.

Frequency low and high: the bell sits lower on the left and higher on the right
Frequency (60Hz, 3000Hz): the bell's height. Pitch and V/Oct don't move it, so a melody doesn't scatter the bells.
Spread low and high: the bell's narrow top end is smaller on the left and wider on the right
Spread (50Hz, 1600Hz): the width of the bell's top.
Metal low and high: the bottom edge is straight on the left and wobbly on the right
Metal (0Hz, 1600Hz): a wobble along the bottom edge.
Ring low and high: the band around the bell's middle sits in a different place
Ring (5ms, 5000ms): where the band around the bell's middle sits.
Filter frequency low and high: yellow lines on the left, white lines on the right
Filter frequency (100Hz, 3900Hz): fades the lines towards white.
Filter width low and high: the bell's mouth is shallower on the left and taller on the right
Filter width (100Hz, 2000Hz): the height of the bell's mouth.
Distortion low and high: faint hairlines on the left, thick lines on the right
Distortion (0%, 100%): line thickness.

The level meter

The bar on the right shows Gain / Output level, knob and CV together, on the knob's own scale. As on a mixer fader, the numbers below the brighter 0 are negative. With polyphonic CV in Gain, it splits into one column per channel.

Its colour shows the level coming out, held for about 1 second after each loud hit: blue normal, amber above 5v (Rack's usual audio level), red above 12v (beyond the range Rack's modules are designed for). Hover over it for each column's setting and measured peak.

The level meter's tooltip listing eight voices' output level and measured peak The level meter's tooltip listing eight voices' output level and measured peak
The meter tooltip with 8-channel Gain CV.

Polyphony

Ultra Cowbell plays up to 16 voices, following Rack's usual polyphony rules:

Each input's tooltip ends with a line saying how its cable is being used at the moment: how many channels it has, and which voices get 0v from it.

Animation: five bells swell one after another from left to right, like a drum roll
A 5-channel trigger, each channel a moment after the one before.
Animation: four bells each rising and falling at different times
A 4-channel LFO into Frequency CV: each bell follows its own voice.

A typical polyphonic setup: VCV MIDI-CV's V/OCT into V/OCT and its GATE into TRIG, with MIDI-CV's polyphony set to 4 or more channels.

VCV MIDI-CV beside Ultra Cowbell, with V/OCT and GATE patched to Ultra Cowbell's V/OCT and TRIG inputs VCV MIDI-CV beside Ultra Cowbell, with V/OCT and GATE patched to Ultra Cowbell's V/OCT and TRIG inputs

Right-click the module. Below Rack's own items:

The options are saved with your patch, and Initialize resets them.

Ultra Cowbell's context menu with the Sound, Playing and Display sections, the MOAR COWBELL! submenu and User manual (offline) Ultra Cowbell's context menu with the Sound, Playing and Display sections, the MOAR COWBELL! submenu and User manual (offline)

Natural tone

On by default. Softens the very top of the sound for a less harsh metallic tone, without changing the volume. Switched off, the sound is brighter and cleaner, and can be harsher. It's also what makes Ultra Cowbell match Moar Cowbell, whose oscillators lose some top end as a side effect of how they work. In more detail: a gentle low-pass filter around 3.5kHz with automatic level make-up.

Gain compensation

On by default. Changing a drum voice's sound usually changes its volume too. Gain compensation keeps sounds at a similar loudness, and turns the Gain knob into Output level, which sets how high the hits peak: 0dB means 5v peaks.

Switched off, the knob is plain Gain, as on Moar Cowbell: +12dB by default, with levels that vary from sound to sound and drop a little at higher sample rates (about 5dB quieter at 96kHz than at 48kHz).

Trigger velocity

Off by default. When it's on, the voltage of each trigger or gate sets the level of that hit:

From VCV MIDI-Gate: right-click it and choose Output amplitude ▸ Velocity. Each gate then rises to the note's velocity, from 0v to 10v, and can go straight into TRIG. Many sequencers can also set each step's gate voltage.

From VCV MIDI-CV: its GATE is always 10v, with the velocity on the separate VEL output. For polyphonic playing, patch GATE into VCV VCA's input, VEL into the VCA's linear CV input, and the VCA's output into TRIG.

Display options

  • Show display: the same setting as the DISPLAY switch.
  • Light halos (on by default): the glow around this module's lights. Rack's View ▸ Light bloom does the same for every module at once.

Both affect only the graphics, never the sound. In a big patch, switching them off could improve FPS; halos matter most with many voices, where each lit grid cell has its own glow.

Ultra Cowbell also uses less CPU while it isn't playing: silent modules and unplayed voices switch to an idle state after a moment (in groups of 4 voices), and the next hit, knob turn or CV change wakes them. How much this saves depends on your computer and patch.

Ultra Cowbell in Rack with the room brightness turned down: the panel is dark, the lights and display still bright Ultra Cowbell in Rack with the room brightness turned down: the panel is dark, the lights and display still bright
Rack's room brightness at 25%.

Presets

Factory presets (right-click ▸ Preset) are sounds made for Ultra Cowbell, with the Moar Cowbell Presets folder sorted in among them.

  • Every factory preset sets the 8 sound knobs, Natural tone and Gain compensation, and leaves Pitch, the attenuverters, Trigger velocity and the display settings as you have them.
  • Ultra Cowbell's own sounds set Gain compensation on. The Moar Cowbell Presets (Moar Cowbell's factory and community presets, converted to match it as closely as possible) set it off, so they play at Moar Cowbell's level.

Your own presets (Preset ▸ Save as) save everything, including Pitch, the attenuverters, the menu options and the display settings, as for any Rack module, so one saved with the display off switches it off when loaded. To make a preset leave a setting alone, delete that entry from the .vcvm file in a text editor. The ids are in the table below.

Randomize changes only the 7 tone knobs (Frequency, Spread, Metal, Ring, Filter frequency, Filter width and Distortion), for trying out sounds at your chosen level and pitch.

The Preset menu open: the factory sounds, the Moar Cowbell Presets folder and its VCV Community subfolder The Preset menu open: the factory sounds, the Moar Cowbell Presets folder and its VCV Community subfolder

What a preset file holds

A .vcvm preset lists each param by "id" with its "value", and the menu options under "data". Three knobs store their knob position rather than Hz or ms, so it's easiest to set those in Rack and copy the value across.

idControlStored valueDefault
0Frequencyknob position, 0 (32.7Hz) to 1 (3951Hz)0.522
1SpreadHz, 0 to 1600821.5
2Ringknob position, 0 (1ms) to 1 (5s)0.448
3Filter frequencyknob position, 0 (32.7Hz) to 1 (3951Hz)0.585
4Filter widthHz, 100 to 2000647
5Distortion0 to 1.5 (1.5 is 100%)0.26
6MetalHz, 0 to 1600877.1
7Gain / Output levelGain in dB, −25 to 30 (Output level reads 15dB lower)12
8Pitchvolts, −5 to 50
9 to 16CV attenuverters: Frequency, Spread, Ring, Filter frequency, Filter width, Distortion, Metal, Gain−2 to 2 (2 is 200%)1
17, 18Hit, Panicbuttons, always 00
19Display switch0 on, 1 off0
data keyMenu optionDefault
legacyLowpassEnabledNatural tonetrue
gainCompensationGain compensationtrue
velocityTrigger velocityfalse
lightHalosLight halostrue

Coming from Moar Cowbell

Ultra Cowbell has Moar Cowbell's 8 sound knobs, and its presets are in the Moar Cowbell Presets folder. To bring across your own sounds, use the MOAR COWBELL! ▸ submenu:

A Moar Cowbell module to the left of Ultra Cowbell, with Ultra Cowbell's MOAR COWBELL! submenu open A Moar Cowbell module to the left of Ultra Cowbell, with Ultra Cowbell's MOAR COWBELL! submenu open

Both set only the 8 sound knobs, leaving everything else as it is, and can be undone. The tone matches with Natural tone on (the default); the level matches with Gain compensation off. Gain settings above +30dB come across as +30dB. Save the result as an Ultra Cowbell preset to keep it.

What's new compared with Moar Cowbell: polyphony, Pitch and V/Oct, attenuverters, grid lights, the display, and the Natural tone, Gain compensation and Trigger velocity options. The oscillators are band-limited and the filter more accurate, Distortion goes further and responds the same at any sample rate, Frequency, Filter frequency and Ring have curved knobs, and Gain's range starts at −25dB (Moar Cowbell's went down to −70dB).

Tips and patch ideas

FAQ

I pressed HIT and heard nothing.

Check that OUT or MIX is patched to your audio output or a mixer, and that Gain / Output level isn't turned right down. If the display's bell swells, the module is playing.

Why did loading a preset change the volume?

The Moar Cowbell presets switch Gain compensation off to match Moar Cowbell's levels. Switch it back on from the context menu if you prefer.

Why did loading my preset turn the display off?

Your own presets save the display settings too. See Presets.

How do I make 0v play a C?

Type c4 into the Frequency knob. See Pitch and V/Oct.

Why does a long gate only give one short hit?

Each trigger or gate plays one hit; Ring sets how long it lasts.

Why did one cable give me 16 voices?

The voice count follows the input with the most channels, CV inputs included. See Polyphony.

Why is MIX quieter than OUT?

MIX is the average of the voices, so with several voices active a single hit plays quieter. See Outputs.

Spread (or Metal) is at 0Hz but I can still hear it.

With a cable in its CV input, 0Hz behaves as about 1Hz. See Metal.

My hits vary a little from one to the next.

A hit doesn't restart the oscillators (see How the sound is made). With some settings, especially low bass pitches, this makes the start of each hit vary slightly, as on analogue drum voices.

Moar Cowbell is free. Why do I have to pay for Ultra Cowbell?

Ultra Cowbell adds a lot to Moar Cowbell, from polyphony and the display to higher sound quality (see What's new). Its sound, CPU use and graphics were also measured and benchmarked throughout development.

Did you use AI?

I want to be open about how I work. Moar Cowbell was entirely my own idea, design and code, put together the best way I knew how at the time. It's labelled experimental because its sound engine was exported from a Faust program, Frankensteined into a Rack module, and then adjusted until it (sort of) did what I wanted. AI was only used to make some images for the panel, which I then edited by hand.

Some years on, AI tools have changed a lot. Ultra Cowbell is still entirely human led: the graphics and every creative element, the architecture and the design are my own. I used an AI coding agent to speed up development, testing and benchmarking, and to help write this manual.

Couldn't I just use AI to write my own cowbell module?

Yes, please do try making your own cowbell; I'd be interested to hear the results. In general, though, it isn't as simple as it sounds. I have more than 25 years' experience as a software engineer, at least half of that spent playing with synths, and I write detailed design documents and supporting notes before an AI agent writes any code. The amount of AI use involved would probably need a professional-level subscription too, so in most cases buying the module is likely to be cheaper.

Back to top ↑