Grid device inventory
On this page
Schema grid-device-inventory.v2, revision 4 (sha256-714cceb3dc62f9f30ad4e3e0492d02a73250532abe147673935835debeace0f4). The interface catalog was captured from Bitwig Studio 6.0.11. It is a reference snapshot, not a substitute for a live capability or graph read.
This historical snapshot is not the current runtime. Version 0.2.0 supports Bitwig Studio 6.1.1 with Controller API 25; see the release notes. Resolve package names against the installed catalog and read the live graph before editing. Current live metadata takes precedence over this reference.
Purpose and authority
docs/grid-device-inventory.json is a machine-readable package-interface inventory. It contains only information that can be reused when resolving and interfacing with a Grid module:
- installed package UUIDs and display names;
- input and output indexes and names;
- writable parameter IDs and native types;
- native numeric ranges and discrete option values.
The inventory deliberately excludes project state: instance IDs, coordinates, runtime classes and paths, connections, current parameter values, and display strings. Re-read get_grid_capabilities and get_grid_graph before every live operation. The bridge response is authoritative for the selected Bitwig installation.
If graph_available is false, do not infer modules, ports, cables, coordinates, or parameter metadata from this snapshot.
File contract
| Field | Meaning |
|---|---|
schema_version |
Machine-readable schema identifier. |
inventory_revision |
Monotonic snapshot revision. |
revision_id |
SHA-256 of the canonical payload with revision_id set to null. |
bitwig_version |
Bitwig version used to capture the interface metadata. |
catalog |
Installed package UUID/name pairs suitable for module search and insertion. |
devices |
One generalized interface record per catalog package. |
Each devices[] record contains name, package_id, inputs, outputs, and parameters:
- Ports contain only
indexandname. Use the live graph for connection state. - Parameters contain
idandtype, plusrangefor native numeric bounds when available. optionscontains accepted boolean or discrete values. Option-object labels are semantic choice names; they are not current-value labels.- A parameter with neither
rangenoroptionshas no safe static constraint metadata. Do not invent one; inspect the live graph before writing.
Coverage
| Field | Count |
|---|---|
| Installed catalog packages | 232 |
| Generalized package interfaces | 232 |
| Interface parameters | 873 |
| Numeric parameters with native ranges | 460 |
| Numeric parameters without native ranges | 115 |
| Boolean parameters with options | 298 |
| Discrete parameters with options | 102 |
| Parameters without static range/options metadata | 13 |
| Catalog packages missing an interface record | 0 |
Interfacing workflow
- Resolve a name with
search_grid_modulesand retain the returnedpackage_id. - Use this inventory only to plan expected ports and writable parameter constraints.
- Read
get_grid_capabilities; stop graph work when graph access is unavailable. - Read
get_grid_graphfor current instance IDs, coordinates, ports, connections, values, ranges, and options. - Present a small before/after graph diff and use explicit confirmation plus the reviewed
expected_revisionfor mutation. - Re-read the graph after insertion, parameter, connection, disconnection, or reload operations.
Package IDs are insertion identifiers. Instance IDs, coordinates, connections, and current values belong to the live project state and must never be reused from a reference snapshot.
For musical units, resolve editable continuous controls with
grid_resolve_parameter_value rather than interpreting native numbers as
milliseconds or Hz. Enum options use actual backing values, not list indexes;
exact native parameter IDs can contain punctuation/spaces.
Revision and provenance
The revision ID is a SHA-256 digest of the JSON payload with revision_id set to null. Re-capture the inventory after a Bitwig upgrade, package change, or bridge protocol change. The inventory is intentionally project-independent; project names, graph placement, duplicate instances, and routing are not part of this file.