PromDelay 1.0.0 — Linux x64 (VST3 + standalone)
===============================================
A 1984 hard-wired multi-tap delay (no processor: TTL logic stepped by five control PROMs) running its own PROMs:
the control PROMs IC72-IC76 and the reverb PROMs IC3/IC4 (required), the display EPROMs IC77/IC101 and the BCD
converter IC81 (optional). The images are NOT included — use your dumps. Each file is recognised by its socket in the
name (IC72.BIN, IC76_V12.BIN, IC101_HN462732G.BIN ...), loose, in a folder (subfolders are fine) or in a .zip.

INSTALL (VST3)
1. Copy the folder  PromDelay.vst3  into  ~/.vst3/   (create it if needed; /usr/lib/vst3/ for all users)
2. Give it the PROMs, either way:
   a) open the plugin, click  LOAD PROMS...  (top right) and pick the files, their folder, or the .zip.
      They are remembered for every instance (stored in ~/.config/PromDelay/PromDelay.settings), or
   b) make a folder named  PromDelay PROMs  next to PromDelay.vst3 in ~/.vst3/ and put the files in it.
3. Rescan plugins in your DAW. It is listed as "PromDelay" by "Unbranded" (Fx / Delay / Reverb).
   The header should read "PROMs loaded  set e791d906  (10 of 10 images)" with the dumps it was tested with.
   Without the required seven only the direct (dry) path works and the header says which are missing.

STANDALONE
Run ./PromDelay (chmod +x PromDelay if the executable bit got lost).
Put a "PromDelay PROMs" folder next to it, or use LOAD PROMS... . Audio devices: Options > Audio/MIDI
Settings (the standalone mutes the input until you choose devices, to avoid a feedback loop).

USING IT (it is the unit's front panel)
- DELAY TAPS: eight green displays (ms). Drag a display up/down to scroll it (Shift = one sample), the arrows or the
  mouse wheel nudge it by 1 ms, double-click resets. The displays read in 0.8 ms steps, truncated, as the unit's
  display PROM does (125 ms shows 124); the exact value is printed under each. LEVEL and L / L+R / R per tap.
- TIME SLIDE: SLIDE moves all eight taps together (+ = shorter delays). AUTO SLIDE sweeps them in a triangle:
  LIMIT = peak-to-peak width, RATE = speed (1999 = one sample per frame: an octave up, then frozen; 1990 ≈ ±10 %
  pitch; 1900 ≈ ±1 %; lower = slow drifts).
- MODES: DELAY (the taps), REVERB (8 more taps from the reverb PROMs, chosen with the REVERB MEMORY wheel 00-31),
  ECHO (one repeat at the ECHO time; takes over the reverb taps). FEEDBACK feeds the outputs back in; HF and LF
  RESPONSE darken / thin the repeats. Near 10 it self-oscillates, as the original echo was set up to.
- DELAY MEMORY + ENABLE: 80 memories (taps, slide, limit, rate, echo). The panel always writes into the memory in
  use; set the wheel and press ENABLE to recall another. They are saved with your project.
- I/P LEVEL with the bargraph (converter level), BYPASS LVL (direct signal), BYPASS (footswitch: direct only).
- COMPANDER, SWEEP/JUMP and TRIM are plug-in options: compander on/off; time changes either glide one sample per
  frame like the unit's keys (SWEEP, pitch-bending) or jump; output trim.
- Latency: the plugin reports ~1.4 ms and delays its dry path to match, so the host keeps everything aligned.

REQUIREMENTS
Built on Ubuntu 24.04 with GCC 13 and JUCE 8.0.4: it needs glibc 2.38 and the GCC 13 C++ library or newer (Ubuntu
24.04+, Debian 13+, Fedora 39+, current Arch/openSUSE Tumbleweed), plus ALSA, FreeType and fontconfig, which every
desktop has. On an older distribution build it from the source in the build-agent drop (cmake + JUCE, see its README).
The standalone plays through ALSA (with PipeWire or PulseAudio, through their ALSA plugin); JACK is not built in.
Tested here: the VST3 with the host test and pluginval (strictness 10) on Ubuntu 24.04, the standalone started with
its images under X11. Nothing is signed or packaged for a distribution: copy the files as described above.
