# INGEN / LV2 STACK ON THE 407 IMAGE

All facts below are directly established from the image (VERIFIED), not
inferred from names.

## 1. Ingen — VERIFIED

- `/usr/bin/ingen`, engine libs `/usr/lib/aarch64-linux-gnu/libingen-0.so.0.5.1`
  (+ `libingen_client.so`, `libingen_server.so`, `libingen_jack.so`).
- Version: **0.5.1** (version string in the binary and lib SONAME 0.5.1).
- **Not a Debian package** — no ingen/libingen/lilv/serd/sord/sratom/raul
  entries exist in dpkg (`DPKG_SUMMARY.txt`). It was built in-image and
  installed by hand (build provenance also matched drobillad git commit
  f9014009, "Fix clashing blank nodes with MIDI bindings").
- Launch (from `/usr/bin/start_beebo.sh` line 58, called by
  `jack.service`): `/usr/bin/ingen -e -p 3 -a /home/debian/start_up.ingen`
  — **engine mode, 3 processing threads, patch `/home/debian/start_up.ingen`**.
- Unix-socket transport: the UI talks to it over **/tmp/ingen.sock**
  (`ingen_wrapper.py` waits `while not os.path.exists("/tmp/ingen.sock")`
  then `ingen.socket_connect()`).
- stop path: `/usr/bin/pkill "ingen"` in the same script.

## 2. LV2 / Lilv ecosystem — VERIFIED

- LV2 core bundle: `/usr/lib/lv2/core.lv2`, `lv2:minorVersion 18`,
  `lv2:microVersion 4` → LV2 core **1.18**-series core vocabulary.
- Development headers present in-image: `/usr/include/lv2.h`,
  `/usr/include/lv2/core/lv2.h`, `/usr/include/lv2/lv2plug.in/ns/...`
  (plus `lv2-c++-tools` headers) — the image carries development headers,
  not only the runtime (see SYSROOT_BUILD.md §5).
- LV2 plugin scan path in use: `/usr/lib/lv2` — **234 bundles** (mda,
  MVerb, atom, avw, b_whirl, balance, basic_modular, …), scanned by Lilv.
- Lilv stack (in-image builds, **not** dpkg-tracked):
  - `liblilv-0.so.0.24.25`
  - `libserd-0.so.0.32.3`
  - `libsord-0.so.0.16.17`
  - `libsratom-0.so.0.6.17`

## 3. What this means for our plugins — evidence-level

- Our four plugins are plain LV2 (`lv2core` + `lv2:prototype` Blocks in
  Ingen), no UI extension required by the engine; the UI drives them via
  port paths over the socket (see DIGIT_UI_API_AUDIT.md).
- The rebuild against `/usr/include/lv2` of the image (via the sysroot)
  used the 407's own core headers; our tree's bundled `beebo/tests/lv2`
  LV2 ATK-style headers were only for our local test harness.
- Plugin bundles would install as directories under a Lilv-scanned path
  with `manifest.ttl`. That placement is **PROPOSED** work — not done
  (brief §28).

## 4. Not claimed

- Runtime behaviour of Ingen 0.5.1 with our blocks (TARGET-BLOCKED).
- Any polyphony/voice behaviour beyond `ingen -p 3` (the flag is verified;
  its audible effect on our plugins is not).