Tidy Layout as signal flow; fixed-size wiresheet; signed Sox int writes

- Tidy Layout lays linked boxes out left to right by signal flow, in as few
  columns as the longest chain allows; feedback loops are cut where they run
  backwards, and sources sit just before the boxes they feed.
- Boxes with no link on the open sheet go to the bottom of the first column,
  alphabetically.
- A box that wires skipping its column would cross is pushed down below them.
- The wiresheet is fixed at meta's 255-step reach; outside it is light grey.
  Dragging keeps a box's top-left corner on the sheet.
- Sox write_i4 wraps to signed, so meta with x >= 128 reaches the device.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-18 10:15:22 +03:00
co-authored by Claude Opus 5.5
parent 160f65c95e
commit b3d96d96b6
5 changed files with 321 additions and 92 deletions
+3 -1
View File
@@ -134,7 +134,9 @@ class SoxMsg:
def write_i4(self, v):
self._grow(4)
struct.pack_into(">i", self._buf, self._pos, v)
# Wrapped to signed: meta packs x into the top byte, so x >= 128 reads as an
# unsigned 32-bit value although the device stores the same bits as sys::int.
struct.pack_into(">i", self._buf, self._pos, ((v + 2**31) % 2**32) - 2**31)
self._pos += 4
def write_i8(self, v):