MCP: let an AI agent read and edit the open project (#429)
Stage 2 of #429 gives the agent tools to read the project and
change it, so the MCP page now explains them.
- MCP: new section "Changing the project" with run_commands, the
"as"/"$name" references, one undo step per call, the rollback and
the delete question. The tool list names the read tools, catalog,
open, select, play and undo/redo.
- Architecture: the new modules in src/editor/agent/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New page MCP: setting up Claude Code with an agent token, switching
the agent on in the editor, the tools and the rules.
- API: the routes for agent tokens and the relay.
- Architecture: the relay and the agent parts of the editor.
- Development: the relay in deployment and CI.
- Sidebar: link to MCP.
API, Architecture, Development: the editor on feuerwerk.nockal.com
The same folder now answers on the subdomain as well, so the pages
no longer name /feuerwerk/ as the one fixed path.
- API: the session cookie has no Path, and the old /feuerwerk/
cookie is cleared on every sign-in and sign-out.
- Architecture: site.ts takes the path from the folder of the page.
- Development: why the build has a relative base.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Accounts, API, Architecture: guests and demo copies (#428)
- Accounts: what a guest picks on the sign-in screen, what they get and
do not get, and how an administrator makes a demo copy and offers
demo material.
- API: the demo routes, the PATCH {demo} of the four file kinds, what
answers without a session, and a section on demo copies and demo
material.
- Architecture: DemoStore, MemoryProjectStore, session, guestStores
and DemoFiles.php.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
API, Development: what the server refuses and hands out (#427)
- API: 429 at the sign-in routes, a section on the brake, the quota,
writes from other sites and the Secure cookie, and the upload limits
as they are now (the page still said nginx takes 1 MB).
- Development: a Deployment section with the nginx list, the
Content-Security-Policy and where both live, the two new PHP tests.
- Architecture: LoginThrottle.php and Quota.php.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Architecture: list what is new since round 11, Home links Videos (#85)
Round 12 of the clean-up checked every page against the code. The
paths the wiki names all exist, but Architecture had gaps.
- Architecture names the folders and files added since round 11,
among them core/recording/ and editor/composition/, and the new
shared parts deviceParts, DeviceFace, TextPool, clipStrip and
core/util/bytes.
- Home links the Videos page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The editor is called Feuerwerk now and lives at nockal.com/feuerwerk/.
- Home, Accounts, Architecture and Development use the new name, the
new live and dev URLs, __feuerwerkPlay and the CI server paths.
- Repository links, runners, containers and the GAME_MAKER_* variables
stay until stage 3 of #422.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sounds, Videos: a video's own node in the Master routing
- Sounds, Videos, Compositions and Architecture describe the video
node: links, its own bus, the rule for the links of a new video, and
that the tabs play straight into the Master.
- Videos: the recording badge is an HTML element over the canvas.
- Development: 2043 e2e checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Architecture, Videos: a fixed editor size with ?w=&h=
- Architecture names ?w=&h= next to the other query parameters.
- Videos says how it sets the size of an editor recording.
- Development counts the new e2e check 62d.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Videos: a new page for the video asset, its tab and worker (#402)
- Videos: getting a video in, the conversion, the asset, the Video
tab, wearing it on a sprite, and the worker container.
- API: the videos routes and what a record says on its way.
- Architecture: the new files on both sides.
- Development: the PHP test, ffmpeg in the CI image, 1994 checks.
- Sidebar: Videos after Fonts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Sample device and its waveform (#400)
- Instruments: what the gold device shows and how its parts are set.
- Architecture: SamplePanel, SampleFace and sampleView.
- Development: 1976 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Bitcrusher device and its pixel screen (#399)
- Sounds: the table row names the device. The Bitcrusher section says
what the plate holds, how the screen draws a sine in cells of steps
and holds, its texts and the 16 lamps of the bits kept.
- Architecture: CrusherPanel, CrusherFace and crusherView.
- Development: 1975 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe Tremolo, Vibrato, Phaser and Flanger as devices (#398)
The four nodes are now drawn as devices of a fixed size in the graph.
- Sounds: a sentence in each of the four rows of the effect table.
- Sounds: under Tremolo and Vibrato, and under Phaser and Flanger, a
part on the plates, what the screens draw and say, the lane, the
light and the Rate lamp, and what is on the plate.
- Architecture: ModulationPanel, ModulationFace and modulationView.
- Development: 1974 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Limiter node as a device that holds its reduction (#397)
- Sounds: the table row, and a part on the device under Compressor
and Limiter. It covers the knobs, the lever, the lamp, the screen,
how the capture is held and how the reduction is read.
- Architecture: LimiterPanel, LimiterFace and limiterView.
- Development: 1970 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Saturation node as a device that glows (#396)
- Sounds: the table row says the node is a copper device, and the
Saturation section describes the screen, the heat and the plate.
- Architecture: SaturationPanel, SaturationFace and saturationView.
- Development: 1969 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Architecture: a drag's frame skips the hidden Scene view and the
preloading of files, with the numbers measured.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Delay node as a device with its echoes (#393)
- Sounds: the Delay row and a section on the device, its screen, the
running light, the levers and the knobs.
- Architecture: DelayPanel, DelayFace and delayView.
- Development: 1968 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Pan node as a cyan one-knob device (#392)
- Sounds: the Pan row says how the node looks in the graph.
- Architecture: KnobPanel names the Pan.
- Development: 1967 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Behaviors: the magnet is on by default in every graph tab.
- Architecture: SnapToggle and GRAPH_SNAPS_AT_FIRST.
- Development: the harness switches the magnets off on every load,
and 1966 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Pitch and Mix nodes as devices (#390)
- Sounds: the Pitch row says how its green knob turns. The Mix row
describes the blue device with A and B and its curve lever.
- Architecture: KnobPanel and KnobFace replace GainPanel and GainFace.
- Development: 1965 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Reverb node as a device with its tail (#389)
- Sounds: the Reverb's row names the device, and the Reverb section
says what the round screen draws and how the plate is worked.
- Architecture: ReverbPanel, ReverbFace, reverbView, and that
nodeParamDrag writes several settings at once.
- Development: 1964 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Envelope node as a device with its curve (#388)
- Instruments: a paragraph on the device under Envelopes.
- Architecture: EnvelopePanel, EnvelopeFace and envelopeView.
- Development: 1963 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Chip node as a device with wave and pitch (#386)
- Instruments: the device, its buttons, lever, knobs and both
screens. "Not yet" no longer lacks a view of the waveform.
- Architecture: ChipPanel, ChipFace and chipView.
- README and Development: 1962 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Filter's editor and resizable EQ and Filter nodes (#385)
- Sounds: the Filter's editor in its node and its tab, with the
spectrum.
- Sounds: new sections Resizing a node and Little room, the EQ's
node without its help line.
- Architecture: BandCurve, CurvePanel, FilterPanel, CurveFace and
the corner drag in graphDrags.
- Development: 1961 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Sounds: the Gain row says how its node looks and how its knob works.
- Architecture: GainPanel and GainFace, drawPlate shared.
- Development: 1957 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the EQ's editor in its node and the wheel in graphs (#381)
The EQ node shows the editor of its tab right in the graph now, and
the small curve below its rows (#375) is gone. The numbers below the
Compressor's knobs in its node are plain labels (#382), and the wheel
zooms a graph over its nodes too (#383).
- Sounds: the table row, the section's opening, the part "In the
node" with the ways it differs from the tab, and the spectrum that
also runs while the node is in the picture.
- Sounds: the Compressor node's numbers as labels, the ratio as 4:1,
and the wheel over a knob or a band zooming the graph.
- Behaviors: the wheel zooms over a node too.
- Architecture: EqPanel, EqEditor and EqFace, and NodeRegistry,
parametricEq and NodeView without the node picture.
- Development: 1956 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the Compressor's panel in its node (#380)
The panel of #379 is what a Compressor node shows in the graph now, and
a double-click opens the tab of #378 again.
- Sounds: the node's row in the table, and the section on the device in
the node. Its ports sit beside it, its knobs and lever work there,
typing stays in the tab, and the meter runs while the node is seen.
- Concepts: the window of one size for a Compressor is gone.
- Architecture: CompressorFace, nodeFaces, nodeParamDrag, and a face
instead of the rows in NodeView.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Sounds: the Hardware look setting in the table, and a section on
the panel, its window of one size, knobs, meter, lever and LEDs.
- Concepts: a Compressor in its hardware look has a window only.
- Architecture: CompressorPanel + hardwareView, the chrome Knob.
- Development and README: 1953 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Sounds: the Compressor's row and a paragraph on its tab: knobs,
curve with threshold and ratio to drag, levels in and out.
- Architecture: Knob + knob in the toolkit, CompressorEditor,
compressorView and nodeTabs, several nodes listened to at once.
- Development: 1947 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the zoom transition of the music tabs and the EQ (#377)
The Pattern, Song and Sound tabs and the Parametric EQ now show their
zoom as a transition too.
- Concepts names the music tabs and the EQ under the zoom transition.
- Architecture names axisTween in viewTween.ts.
- Development counts 1941 e2e checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe clips decoded from a file of their own (#349)
- Sounds: every clip has an Opus copy of its cut, with Stream on or
off. What is still decoded whole, and the measured difference.
- Architecture: streams and StreamKeeper cover every clip.
- Development: 1937 e2e checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe streaming long sounds from an Opus copy (#349)
- Sounds: the Stream row, a new section on what streams, what the
copy is, what stays decoded, and the measured memory.
- Songs: a bake is streamed now, not decoded with the project.
- Architecture: streams, streamQueue, streaming and StreamKeeper.
- Development: 1935 e2e checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Songs: a section Baking, what is in a bake and what stays live, when
it holds, the loop, the file and its memory, measured in e2e 64.
- Patterns: Play pattern plays a bake that holds, with a link there.
- Architecture: bake and ogg in core/music, bakeRender, the bake voice
and the offline library in viewport, BakeButton in editor/music.
- Development: 1928 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the EQ's curve in its node and its spectrum (#375, #374)
- Sounds: the node row says the curve is drawn in small and the tab
shows a spectrum. The Parametric EQ section has a point for each:
the curve in the node and its box without a band, the spectrum
with its sides, its scale of 0 to -96 dBFS, what counts as played
and when no analyser is fed. "What is heard" names the taps.
- Architecture: the `picture` of a node in NodeRegistry and NodeView,
the taps in the sound FX compiler, the axes in parametricEq,
viewport/spectrum, and the spectrum in EqEditor and eqView.
- Development: 1921 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring the sound pages and Architecture up to date (#85, round 10)
Refactoring round 10 checked the wiki against the code since round 9.
Most of what had gone stale is about sound.
- Architecture: src/core/soundfx, src/core/instrument,
src/editor/sound, src/editor/soundfx, src/editor/instrument and
src/editor/routing had no row. src/core/music named five of its
fifteen modules. The worklet was still called pitchWorklet. New
are fxNodes, PreviewParams, nodes/shared, addLink and
drawFloatingBox.
- Home: "Sound has no mixer, no fade" is not so since the buses, the
Master routing and the fades of songs. The rows of Sounds and
Songs name what the pages cover now.
- Songs: a new song snaps to 1/16 since #365, the intro still said
the bar. "Not yet" named the Reverb (#328) and a bus without sound
FX, both there by now.
- Instruments: "Not yet" named the Phaser (#341), which is there.
- Patterns, Songs, Instruments: swing points to #372, the end of a
song to #373. Lines that ran past the width are wrapped.
- Every path the wiki and the README name exists.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe a tab that floats in a window, and the EQ without Remove (#371)
- Concepts: a document's tab can float in a window and dock again,
one window per kind, keys go to the window pressed last.
- Architecture: FloatWindow and floating next to DocumentTab.
- Sounds: the row below the EQ's curve has no Remove any more, and
floating one tab keeps Play and the EQ in view.
- Development: 1919 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Concepts: the asset panel groups by category (Basics, Visuals,
Logics, Physics, Audio), then by type. The + menu lists the same
categories, each opening its types in a submenu.
- Architecture: Menu entries may carry a submenu, and Popup takes a
backdrop option for it.
- Development: locate prefers hits in an open popup, and
pickAssetType opens the category first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- New page Patterns: the asset, the tab, drawing and editing, keys,
the ruler with loop and start, playing through the scheduler.
- Instruments, Architecture, Keyboard, Home, Concepts and the sidebar
point to it. Development counts module 64.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe one sound at the Output and the curve of a Mix #331
- Instruments: the Output takes one sound, a drum kit goes through
Mixes, an old instrument with several edges says why it does not
compile, and two layers at once depend on the Mix's curve.
- Sounds: the Mix's setting Curve with a table of both curves, the
+6 dB at the middle, and how a glide follows the curve.
- Architecture: one line on the Output.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the scheduler and Delay synced to beats #332
Instruments gets a section Playing in time and the tempo input of Play note. Sounds describes the Sync setting of the Delay and the tempo input of Play sound. Architecture names core/music and the timer worker.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new page Instruments: the nodes, triggers, zones and layers, how a
note is compiled and played, the keys of the tab and Play note.
- _Sidebar and Home link the page, Concepts lists the asset type.
- Sounds points to it for playing a sound as notes.
- Behaviors lists Play note, Architecture says a note is one voice
of several layers.
A Pitch is now played by a phase vocoder in an AudioWorklet, so a
sound keeps its length also when its pitch changes while it plays.
- Sounds: the section on how Pitch keeps the length is new, with the
20 ms lag, the behaviour at 0, the cost as measured and the limits.
- Sounds: the points on a pitch that changes by speed are gone, and
length into time now spans a pitch sweep too.
- Architecture: names the pitchWorklet next to the SoundLibrary.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe sprite preview, machine ports and shared local machines
The wiki catches up with the last four commits in the code repo.
- Concepts: new paragraph Sprite preview. Architecture lists
SpritePreview.ts and previewFit.ts.
- State-machines: a Start input or a Variables node can name the
machine it carries. A called behavior now shares the caller's
local machines instead of starting empty.
- Behaviors: the warning at Run behavior for a different machine,
the shared local machines and Get world position in the data nodes.
- Scene-editing: a half sentence on Get world position.
- Development: e2e sum 1744.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Name the frames cut from a picture in the shader binding rule
- Architecture: TextureLibrary asks the bind group of the picture
and of every frame cut from it, as a sprite wearing pixel art
names a cut.
- Development: 1741 editor checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Behaviors: under Reordering, the dots on a mark that drags, the
lit dots and washed block under the pointer, and the other marks
passing the pointer while a block is carried.
- Architecture: blockDrag names the Grip widget.
- Development: the e2e sum is 1740.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drag variables, fields, ports and list items into order (#310)
Behaviors gets an entry Reordering. The mark in front of a row is the
grip, a drag starts after 4 px, rows move among siblings only, and
every move is one undo step.
- Structs: fields of a Struct asset are dragged there, typed copies
and Pack/Expand follow.
- Architecture: sortBlocks and the pure rules in ui/sortable.ts.
- Development: e2e sum 1739.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The wheel and Fit now show the zoom as a short transition. The time
is set under Menu > General settings and kept in the browser.
- Concepts: the transition, the new menu entry and what ends it.
- Keyboard: the wheel and Fit animate the change of zoom.
- Architecture: viewTween.ts with tweenView and the ViewTween driver.
- Development: e2e sum 1735.
Nine-slice and sort line on pixel art and vector art (#308)
Both settings used to belong to the texture frame alone. Now a pixel
art or vector art asset carries them too, so the pages say so.
- Textures, Pixel-Art, Vector-Art: a section "Nine-slice and sort
line" each. The drawing tabs show the lines but do not drag them.
- Architecture: PictureCut, cutTarget.ts and cutSection.ts.
- Development: e2e sum 1732.