Describe silent music, growing groups and covered comments (#429)
- MCP: get_asset lists under silent what is not heard, the Notes range C4 to B4 of a new instrument, coveredNotes in lint_graph. - Behaviors: groups take in new nodes, Arrange takes groups and comments along, comments move below their nodes when covered.
1 parent
9154ac8578
commit
54b0773dba
2 files changed
+34
-10
No files matched your search
+7
-3
@@ -635,9 +635,13 @@ the inspector).
|
||||
those and leaves the rest; they keep their place if they fit there and no link to the rest runs
|
||||
backwards from there. Else they go next to the node they link to — left of one they hand a value
|
||||
to, right of one they take from — where there is room and their links cross the fewest others,
|
||||
and of those places the one nearest to the two ports lying level; only when there is none, right
|
||||
of everything. A group around them stays where it is. One undo step, *Arrange nodes*.
|
||||
It measures every node as drawn; the rule is the pure `editor/graph/arrange.ts`.
|
||||
and of those places the one nearest to the two ports lying level. Nodes put between two that stay,
|
||||
with no room there, push what they feed and everything right of it further right; only when that
|
||||
fails too, right of everything. Groups and comments go along in the same undo step, *Arrange
|
||||
nodes*: a group whose nodes all moved alike moves as it is, else it is fitted round its nodes
|
||||
again; a comment goes with the group or the nodes just below it (or just above it).
|
||||
It measures every node as drawn; the rules are the pure `editor/graph/arrange.ts` and
|
||||
`editor/graph/annotationFollow.ts`.
|
||||
- **One tab per behavior**: each behavior opens as a document of its own (double-click in the
|
||||
asset panel), several at once, each keeping its zoom and scroll for the session. A selection
|
||||
never changes what a tab shows; selecting a node of another graph brings that graph's tab up.
|
||||
|
||||
+27
-7
@@ -60,7 +60,7 @@ the badge says *Agent offline* meanwhile.
|
||||
| `list_assets` | The project's settings (start scene, layers, play settings, master bus) and the assets with ids, names and types, by type or a part of the name |
|
||||
| `get_asset` | One asset as stored, with the rows of its properties and the named objects of a scene or container, the content of a placed container too (marked `fromContainer`, ids like `<container object>~<path>`). A graph is only counted, and so are the cells of a map past 400. Pixel art lists its palette as `colors` and, up to 16 384 pixels over all layers and frames, every layer of every frame as rows of characters (`.` is transparent, `1`-`9`, `a`-`z`, `A`-`Z` the indices 1 to 61); a bigger one says how many pixels are painted. Colors of palettes and vector art read as `#rrggbb`. An animation lists what its rows may aim at (`targets`, the root as `""`), with the properties each offers |
|
||||
| `get_graph` | A graph: every node with its settings and its ports as they are now (the ports it declares itself under `ports`), the edges, the groups and comments with their boxes and colors |
|
||||
| `lint_graph` | How a graph reads, counted as you see it: nodes on top of each other, links that cross, links running over a node that is not theirs, links running right to left, the longest links, with a few ids of each |
|
||||
| `lint_graph` | How a graph reads, counted as you see it: nodes on top of each other, links that cross, links running over a node that is not theirs, links running right to left, comments a node lies on, the longest links, with a few ids of each |
|
||||
| `catalog` | What there is to make: the commands by area with what each does, and with a query (an area or command names) their arguments; the nodes a graph can hold (all of them, or the best matches of a search in full); the asset types and their properties; the variable kinds |
|
||||
| `run_commands` | Changes the project, see below |
|
||||
| `open` | Brings up an asset's tab, or the scene or game tab |
|
||||
@@ -94,15 +94,26 @@ it. One Ctrl+Z takes the whole call back.
|
||||
run, the way the [Arrange](Behaviors) button does it, and the move is part of the same undo
|
||||
step. Nodes that were there before stay where they are, so what you laid out by hand is never
|
||||
shuffled; the new ones go next to the node they link to, where their links cross the fewest
|
||||
others. `arrange_graph` arranges nodes the agent
|
||||
names, or the whole graph, which the agent is told to do only when you ask.
|
||||
others. When that node is in a group, the new ones go into it and the group grows round them —
|
||||
unless it would then take in a node not its own. New nodes put between two that stay, say a
|
||||
filter between an instrument's Delay and its Output, make room: what they feed and everything
|
||||
right of it moves right as one, so no link runs backwards. `arrange_graph` arranges nodes the
|
||||
agent names, or the whole graph, which the agent is told to do only when you ask.
|
||||
- **Readable graphs.** The agent is told to fetch a value needed far away with a second Get or
|
||||
Owner node next to where it is used rather than one long link, and to check with `lint_graph` —
|
||||
the crossings too, with `arrange_graph` when there are more than the links need.
|
||||
Nodes that belong together go into a group (`add_group`), with a comment on what they do
|
||||
(`add_comment`). Both take the nodes they are about rather than a box: a group is drawn around
|
||||
them, a comment just above, and when the call arranges its nodes they follow them there, still
|
||||
in the same undo step. The group is the one *Group* in the graph's menu draws around a selection.
|
||||
them, a comment just above — below them where another node or a group's title bar stands above —
|
||||
and when the call arranges its nodes they follow them there, still in the same undo step. The
|
||||
group is the one *Group* in the graph's menu draws around a selection. `lint_graph` also counts
|
||||
comments a node lies on (`coveredNotes`), which `fit_group` puts back by their nodes.
|
||||
- **Silent music.** A pattern plays nothing without an instrument, and an instrument sounds only
|
||||
the notes its Notes nodes take in (C4 to B4 in a new one). Nothing else says so. `get_asset` lists
|
||||
under `silent` what of a pattern, a song or a composition is not heard: all of it for want of an
|
||||
instrument, or the notes outside what the instrument sounds, in a song after the transpose of the
|
||||
item. Each line names the notes, what the instrument sounds instead and how to mend it.
|
||||
`add_notes` mentions both. The keys the pattern tab greys out are worked out the same way.
|
||||
- **Variables in a graph.** A Variables node reads (and with `set_port_write` writes) a variable
|
||||
once `add_port` names it; the port takes the kind of the variable. Properties and Sound FX
|
||||
parameters nodes work the same way, a start or end node or a struct gets ports of a kind given.
|
||||
@@ -242,7 +253,8 @@ What is behind it on the server, and the routes it uses: [API](API), [Developmen
|
||||
- `tests/editor/agent-view.test.ts`: what `get_view` answers, its one line, the tools' arguments.
|
||||
- `tests/editor/agent-edit.test.ts`: a walking object built in one call and taken back whole by one
|
||||
undo, a failing step that leaves nothing, argument checks, deletes that ask, nodes arranged at the
|
||||
end of a call while placed ones stay, `arrange_graph`, what the editor shows after a call (and
|
||||
end of a call while placed ones stay, a new node linked into a group put into it within the same
|
||||
undo step, `arrange_graph`, what the editor shows after a call (and
|
||||
the scene switch inside the undo step, and nothing with *Follow agent* off), the reading tools
|
||||
and the catalog (every area in full under the size an answer is cut at).
|
||||
- `tests/editor/agent-catalog.test.ts`: a Variables node reading a variable once `add_port` names
|
||||
@@ -269,7 +281,15 @@ What is behind it on the server, and the routes it uses: [API](API), [Developmen
|
||||
level); a clip of a sound added, changed and removed; an object, a picture and a pattern laid on a
|
||||
composition, an animation and the composition itself refused as items, an item moved with its
|
||||
clip, a clip over another refused, fades only on what sounds, an item removed with its object, and
|
||||
the tracks of a composition.
|
||||
the tracks of a composition; what of a pattern, a song and a composition is silent without an
|
||||
instrument, until the item or the pattern has one; the notes outside the range of the
|
||||
instrument named, in a song after the transpose, until the range of its Notes node takes them in.
|
||||
- `tests/editor/graph-follow.test.ts`: a new node feeding one in a group joining it while the group
|
||||
grows round it (and not, where it would take in a stranger), a new node taking from one in a group
|
||||
put beside it rather than where it waited, a group fitted again after Arrange with its comment
|
||||
going along, one moved as it is, room made between an instrument's Notes and Output (and none
|
||||
where there is room), comments put below their nodes where above is taken, and covered comments
|
||||
counted.
|
||||
- `tests/editor/graph-arrange.test.ts`: the layout on the graph an agent really built for "walk with
|
||||
the arrow keys" (no overlaps, no link over a node, none backwards, at most 8 crossings with one
|
||||
Owner for four moves and 4 with one each), chains running straight, the flow on top when two
|
||||
|
||||
Reference in new issue
Block a user