Updatedmidicvduophonicblackbird

98 Duo MIDI

Duophonic MIDI-to-CV card running a Blackbird Lua script. Z up is duophonic voice allocation, Z middle is mirrored mono, and Z down toggles pulse outputs between trigger and gate mode. Main sets velocity sensitivity; X and Y set envelope attack and release. Receives MIDI note, velocity, pitch bend, and mod wheel.

Panel

Workshop Computer panelVelocity
Sensitivity
Env AttackEnv ReleaseEnv1 GateEnv 2 GateVoice 1 ASR
Envelope
Voice 2 ASR
Envelope
Voice 1
Pitch
Voice 2
Pitch
Voice 1 Trig
/ Gate
Voice 2 Trig
/ Gate

Controls

Main knob

Velocity Sensitivity
Scales envelope sustain by MIDI velocity

X knob

Env Attack
Sets ASR attack time

Y knob

Env Release
Sets ASR release time

Switch

Duophonic: Duophonic voice allocation across the two voices

Mirrored Mono: Both voices mirror the same mono note

Trigger/Gate Toggle: Toggles pulse outputs between 10ms trigger and sustained gate behavior

Inputs

Outputs

Pulse 1

Env1 Gate
Toggles AudioOut1 envelope state and refreshes envelope parameters

Pulse 2

Env 2 Gate
Toggles AudioOut2 envelope state and refreshes envelope parameters

Audio 1

Voice 1 ASR Envelope
ASR envelope for voice 1

Audio 2

Voice 2 ASR Envelope
ASR envelope for voice 2

CV 1

Voice 1 Pitch
1V/oct pitch for assigned voice 1

CV 2

Voice 2 Pitch
1V/oct pitch for assigned voice 2 (or mirrored in mono mode)

Pulse 1

Voice 1 Trig / Gate
Trigger on assignment or gate while voice 1 is active

Pulse 2

Voice 2 Trig / Gate
Trigger on assignment or gate while voice 2 is active

README

Duo MIDI

A duophonic MIDI-to-CV + envelope card! The first ever card released using Blackbird as a platform under the hood.

Customize the behavior to make your own midi card by opening the duo_midi.lua file in web-druid. Note this script is big so you need to use the upload button in web-druid. for some reason run doesn't.

The version of blackbird included in the UF2 (version 1.1M) is technically unreleased at the time of writing because I haven't tested much blackbird functionality other than this script (so if you load a different script onto it, YMMV).

Duo MIDI diagram

What it does

  • Receives MIDI note, velocity, pitch bend, and mod-wheel (receives on all channels)
  • DUO mode: Does round-robin style voice allocation (voices are distributed regardless of MIDI channel)
  • MONO mode: Outputs incoming midi to both voices
  • Outputs two pitches (duophonic or mirrored mono).
  • Outputs two ASR envelopes (at the audio outputs).
  • Outputs two triggers / gates on voice assignment.

Controls

Switch

  • Up: Duophonic (two voices, dynamically assigned).
  • Middle: Monophonic (both channels mirror the same note).
  • Down: Toggles gate mode for pulse outputs.
    • Gate mode off (default): pulse outputs emit a 10ms trigger on voice assignment.
    • Gate mode on: pulse outputs behave like gates (high while the voice is active).

Note: Device/Host mode switching is automatic, but changing it requires a Workshop Computer power cycle.

Knobs

  • Main: Velocity sensitivity (scales envelope level by MIDI velocity).
  • X: Envelope attack.
  • Y: Envelope release.

MIDI behavior

  • Pitch bend: ±2 semitones (configurable in code via BEND_RANGE).
  • Mod wheel (CC #1): Sets pitch slew on outputs 1–2 from 0 to 1 second.

Voice allocation (duophonic)

When two voices are active, new notes get assigned to the closest existing voice (by pitch distance). When only one voice is active, notes within ~5 semitones tend to reuse the nearby voice; otherwise they take the other voice.

Verify your download

Confirm the file you downloaded really is that new firmware.

macOS / Linux (Terminal)

shasum -a 256 firmware.uf2

Linux also has sha256sum firmware.uf2.

Windows (PowerShell)

Get-FileHash firmware.uf2 -Algorithm SHA256

Compare the result to the SHA256 on the website — it should match exactly.

Back to all programs Back to top