818 Bib
A hardware-tested beta Workshop Computer port of Plinky Synth's Bib. It runs the original 64-frame fixed-point DSP with stereo delay, rhythmic multitap, modulated reverb, shimmer, clock divisions, and tape transport controls.
Panel
Controls
Page
Selects Drive, Delay, Reverb, or Mix.
X
Active-page X parameter, modulated by CV In 1.
Y
Active-page Y parameter, modulated by CV In 2.
Detail Page: Delay tape transport/wobble or retained reverb shimmer.
Main Controls: Normal Drive, Delay, Reverb, and Mix page controls.
Page Action: Toggle wavefold, record delay taps, or hold dub feedback by page.
Inputs & Outputs
Inputs
Outputs
Inputs
Left Audio
Left input for stereo processing.
Right Audio
Independent right input for stereo processing.
X Mod
Bipolar modulation of the active X control after pickup.
Y Mod
Bipolar modulation of the active Y control after pickup.
Delay Clock
Sample-timed clock with smoothing and stable Bib-style delay-time divisions. X selects a preferred time, not a fixed clock ratio.
Outputs
Left Out
Processed left output.
Right Out
Processed right output.
LEDs
Page Bit 0
Binary Main-page indicator.
Page Bit 1
Binary Main-page indicator.
X Value
Effective X value, including CV.
Y Value
Effective Y value, including CV.
Page State A
Wavefold, clock lock, shimmer, or dub hold by page.
Page State B
Ping-pong, multitap count, mix, or output level by page.
README
Bib for Workshop Computer
Version 1.1.2-beta. Current stable firmware, hardware-tested on a Workshop Computer. Catalogue status remains Beta.
Bib is a stereo dub processor adapted from Plinky Synth's Bib. It runs the original 64-frame Bib DSP directly on the Workshop's second RP2040 core, rather than using ComputerCard.h.
Install
Flash Bib-1.1.2-beta.uf2 to a Workshop Computer program card, then reset with the switch in Middle.
Controls
Main selects one of four pages. LEDs 0--1 show the selected page in binary: off/off Drive, on/off Delay, off/on Reverb, on/on Mix. LEDs 2 and 3 show the effective X and Y values, including CV. LEDs 4 and 5 show the relevant state for the current page.
| Page | Middle: X / Y | Switch Down |
|---|---|---|
| Drive | Drive / bipolar delay send | Toggle wavefold |
| Delay | Delay time / feedback | Record a multitap phrase |
| Reverb | Reverb send / feedback | No action |
| Mix | Wet/dry mix / output level | Hold for dub feedback |
On Drive, Y is bipolar: centre is off, clockwise sends normal stereo delay, and counter-clockwise selects Bib's ping-pong behaviour.
Multitap delay
On Delay, press Switch Down once to start a one-second phrase, then press it again up to eight times within that window. Every later press adds an equal-level relative delay head; the latest sets the full delay period. Turn X deliberately to clear the recorded pattern and restore a single repeat.
Delay tape page
On Delay with Switch Up, X controls the tape rate from stopped (CCW), through normal speed at noon, to 2x (CW). Y adds slow wow/flutter around that rate. Return Switch Middle for normal delay time and feedback. These controls have their own pickup, so entering the page does not jump the audio.
External delay clock
Patch a clock to Pulse In 1 and use Switch Middle. On the Delay page, LED 4 indicates clock lock. Accepted pulse intervals are at least 50 ms and less than two seconds.
X sets a preferred delay time, not a fixed divider/multiplier position. The clock chooses a nearby 3/4, straight or dotted length, scaled by powers of two. At 120 BPM with quarter-note pulses, the midpoint's approximately 512 ms target selects 500 ms. Sixteenth-note pulses can select four pulse periods to give the same delay. Switching pulse subdivisions can therefore retain approximately the same timing at a fixed X position.
Timing changes move Bib's read head smoothly, so brief smears or pitch bends are expected; clearly audible timing steps are not required. This behaviour was compared with hardware Bib and found similar. A steady clock and parked X should settle without repeated changes between adjacent divisions.
Version 1.1.2 measures edges at sample resolution, smooths small period fluctuations and retains the selected ratio around division boundaries. Large clock-rate changes are accepted after two consistent intervals. After clock loss, the last delay time is held until X moves deliberately.
Reverb shimmer page
On Reverb with Switch Up, X controls a retained shimmer amount. It starts at a subtle level after reset and is limited to three-quarters depth. Return Switch Middle for ordinary reverb send and feedback; the chosen shimmer stays active.
Inputs and outputs
- Audio In 1 and Audio In 2 are independent left and right inputs.
- CV In 1 and CV In 2 provide bipolar X and Y modulation after pot pickup.
- Pulse In 1 clock-quantises Delay to Bib-style 3/4, straight, and dotted divisions. After clock loss, the last division is held until X moves.
- Audio Outs 1 and 2 provide the processed stereo signal.
Audio In 1 is not normalised to Audio In 2. Mono duplication was evaluated but raised the idle noise floor in the direct stereo DSP path.
Build
export PICO_SDK_PATH=/path/to/pico-sdk
cmake -S . -B build -G "Unix Makefiles"
cmake --build build -j2
The build creates build/bib_workshop.uf2.
Clock regression checks can be run without hardware:
c++ -std=c++17 -Wall -Wextra tests/clock_test.cpp -o /tmp/bib-clock-test
/tmp/bib-clock-test
Attribution and licence
The original Bib DSP, reverb, lookup tables, and delay behavior are adapted from the software portion of the Buddies public repository, which is MIT-licensed. The upstream repository separately licenses its logos, panel and other graphic design under CC BY-SA 4.0, and its hardware under CERN-OHL-P v2; none of those non-software materials are included here. The Workshop transport borrows the hardware map, ADC correction, mux cadence, and DAC formatting from MIT-licensed ComputerCard.
The Workshop-specific DMA transport, block scheduler, control mapping, safety limits, pickup, CV/clock support, and tape-rate hand-off were written for this port. No original panel artwork, logos, or hardware design is included. See THIRD_PARTY_NOTICES.md and LICENSE.
The previous ComputerCard.h release candidate is preserved in archive/1.0.0-computercard-rc1/.
Release history
- 1.1.2-beta: promoted after hardware comparison with original Bib and successful clock/tempo-change tests. Adds sample-level pulse timestamps, small-change smoothing, division hysteresis and large-rate reacquisition. The original DSP, reverb, audio levels, pickup and tape controls are unchanged.
- 1.1.0-beta: previous stable code and UF2 are preserved in archive/1.1.0-block-dsp.
Firmware distribution notices
See THIRD_PARTY_NOTICES.md for dependency copyright
and licence texts. Keep the accompanying NOTICE.txt with each redistributed
UF2. Workshop-specific changes were AI-assisted.