admin and Claude Opus 5.5
b50c7dbc35
Let a song track automate parameters of its sounds and FX ( #337 )
...
Stage 3 of #337 . Lanes moved volume and pan only. Now a lane can
steer a parameter of anything on its track, and a voice already
planned or still waiting for its file follows it too.
- A lane may aim at param:<name>. A parameter has no range of its
own, so the lane keeps min and max. A parameter lane stays without
points, so its range is not lost. Remove lane takes it away.
- It reaches the track FX, the FX of an item, the instrument of a
note with its own FX, and the FX of a clip. When several have the
name, all of them change, as with Set sound FX parameters.
- The scheduler hands the lane value to a note or clip at its start.
Values a voice only reads at its start act from the next note.
- While a voice sounds, the knobs of buses and voices of the track
follow the lane on the audio clock, read every 10 ms, because a
knob is not always the parameter itself (trackParams.ts).
- A voice waiting for its file takes the marks when it starts.
- When a lane is removed, the parameter goes back to its default.
An edit while playing does not reset a parameter a lane rules.
- This holds in the song tab, for Play song, in compositions and in
the bake.
- Song tab: Add parameter lane in the track head menu opens a dialog
for parameter and range (ParamLaneDialog.ts). The lane head menu
has Range and Remove lane.
- Inspector: while a lane rules a value, a hint at the track names
the lanes and says the fields act once the lane is gone.
Known limit: a knob that depends on two automated parameters reckons
each lane with the last value of the other, so it may lag one window.
Tests:
- automation-params.test.ts (9, new), 3 new in sound-library and 3
in song-lanes. Affected files 407/407.
- 17 counter checks, all compile, all red.
- e2e 65 on melektaus-atx: ALL PASSED, 67 checks. 65h3 is new: a
clip with FX parameter cut starts at the lane value and its knob
stays within 0.04 dB of the lane. It goes red when automateBus
does not pass parameters on.
- Gate on melektaus-atx: CHECK EXIT 0, 330 files, 5080 tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-19 10:30:42 +02:00
..
2026-10-18 22:14:07 +02:00
2026-10-18 19:01:30 +02:00
2026-10-16 06:58:30 +02:00
2026-10-15 08:01:04 +02:00
User management: signing in is required before anything is loaded, the sign-in screen is drawn in the same canvas (user name, password as bullets, Enter moves on and submits) and the editor is built only after it; the API gained auth/session, auth/login and auth/logout while every other route answers 401 without a session, projects carry an owner and a foreign one comes back as 404, accounts live in data/users.json with a password hash and sessions as files in data/sessions with a sliding 30 days, so a build under the open tab does not sign anybody out; Logout sits at the far right of the toolbar and, as asked in the issue, does not reload the page: Editor.dispose() takes the editor down while the canvas stays, which is why the autosave, the focus handlers, the window listeners of the tilemap panel, the shortcuts and the plugins all got a way back; the tools sign in as e2e (tools/lib/auth.mjs, password from GAME_MAKER_E2E_PASSWORD or the git-ignored data/e2e-password.txt) and the browser gets the same session by cookie, new e2e module 45 covers the screen, the wrong pair, the bullets, logout without a reload and signing in again, new unit tests for HttpAuthStore and for what a session leaves behind ( #177 )
2026-09-20 12:50:52 +02:00
2026-10-02 23:52:49 +02:00
2026-10-03 17:38:39 +02:00
2026-10-19 09:31:48 +02:00
2026-10-07 08:25:13 +02:00
2026-10-18 20:53:45 +02:00
2026-10-19 10:30:42 +02:00
2026-10-18 12:09:52 +02:00
2026-10-04 00:11:41 +02:00
2026-10-14 20:40:05 +02:00
2026-10-18 19:30:29 +02:00
2026-10-18 12:09:52 +02:00
2026-10-18 18:27:57 +02:00
2026-10-18 19:30:29 +02:00
2026-10-03 21:01:10 +02:00
2026-10-18 12:09:52 +02:00
2026-10-18 12:09:52 +02:00
2026-10-19 10:30:42 +02:00
2026-10-16 06:58:30 +02:00
2026-10-18 12:09:52 +02:00
2026-10-18 12:09:52 +02:00
2026-10-16 06:58:30 +02:00
2026-10-03 21:45:04 +02:00
2026-10-02 23:24:21 +02:00
2026-10-03 17:38:39 +02:00
2026-10-03 19:53:51 +02:00
2026-10-16 06:58:30 +02:00
2026-10-18 10:39:34 +02:00
2026-10-18 19:30:29 +02:00
2026-10-18 10:39:34 +02:00
2026-10-11 21:11:05 +02:00
2026-10-08 17:57:18 +02:00
2026-10-12 07:47:22 +02:00
User management: signing in is required before anything is loaded, the sign-in screen is drawn in the same canvas (user name, password as bullets, Enter moves on and submits) and the editor is built only after it; the API gained auth/session, auth/login and auth/logout while every other route answers 401 without a session, projects carry an owner and a foreign one comes back as 404, accounts live in data/users.json with a password hash and sessions as files in data/sessions with a sliding 30 days, so a build under the open tab does not sign anybody out; Logout sits at the far right of the toolbar and, as asked in the issue, does not reload the page: Editor.dispose() takes the editor down while the canvas stays, which is why the autosave, the focus handlers, the window listeners of the tilemap panel, the shortcuts and the plugins all got a way back; the tools sign in as e2e (tools/lib/auth.mjs, password from GAME_MAKER_E2E_PASSWORD or the git-ignored data/e2e-password.txt) and the browser gets the same session by cookie, new e2e module 45 covers the screen, the wrong pair, the bullets, logout without a reload and signing in again, new unit tests for HttpAuthStore and for what a session leaves behind ( #177 )
2026-09-20 12:50:52 +02:00
2026-10-18 20:39:37 +02:00
2026-10-18 10:39:34 +02:00
2026-10-09 14:27:12 +02:00
2026-10-09 14:27:12 +02:00
2026-10-18 22:14:07 +02:00
2026-10-12 18:48:18 +02:00
2026-10-15 08:02:08 +02:00
2026-10-12 17:01:55 +02:00
2026-10-13 13:27:43 +02:00
2026-10-12 07:06:33 +02:00
2026-10-16 06:58:30 +02:00
2026-10-16 06:58:30 +02:00
2026-10-10 11:41:28 +02:00
2026-10-10 11:41:28 +02:00
2026-10-18 20:06:15 +02:00
2026-10-07 08:25:13 +02:00
2026-10-03 17:38:39 +02:00
2026-10-10 19:45:59 +02:00
2026-10-18 12:48:35 +02:00
2026-10-13 13:27:43 +02:00
2026-10-12 17:33:57 +02:00
2026-10-16 06:58:30 +02:00
2026-09-29 16:16:37 +02:00
2026-10-12 18:48:20 +02:00
2026-09-30 06:31:41 +02:00
Refactoring round 5 covers the code since round 4 without changing behaviour: four identical copies of dot() and three of "nearest point on a segment" stood in the collision math, in the hit area of the collider outlines and in the polygon handles, so they moved into the new module src/core/util/vec.ts; the warning line, the busy state, info() and the caret reset were written out line by line in both the sign-in screen and the password dialog and are now FormStatus; the closing row "Cancel plus a confirming button, optionally one on the left" was built by hand in FormDialog, FilePicker, OpenProjectDialog and PasswordDialog and is now dialogButtons(); the header bar was drawn by the toolbar, the TabHeader and the Breadcrumb each on its own and is now drawHeaderBar(); AddColliderCommand and AddRigidbodyCommand share a base, each subclass only builds its own asset; Editor.ts derives the panes from assetEditors instead of repeating eight entries and clamps its splitters with clamp(); jscpd over src falls from 0.19 % to 0.14 %; dead code is gone - listScenes() has been orphaned since the Scene picker fell away ( #183 ), DEFAULT_FILTER ( #152 ) was never used, the two test hooks projectPickerRowAt/rowPosition and particleCompiles are read by no tool, and four functions lost an export they did not need; seven comments that told history ("used to", "no longer", "since #...") describe the state of things now, and that this changed nothing was proved by a rebuild - the bundle is md5 identical, b4ad0dfe... before and after; the README said Logout sits at the far right of the toolbar, which has been the Account menu since #182 , and wiki/Architecture.md was missing src/core/util/ altogether; 4 new unit tests cover vec.ts, and switching the clamp on the segment off makes exactly one of them fail while none of the 76 neighbouring tests notice, so that clamping was covered nowhere before ( #85 )
2026-09-20 17:24:42 +02:00
2026-10-13 13:27:43 +02:00
2026-10-18 21:26:53 +02:00
2026-09-29 11:53:04 +02:00
2026-10-01 19:36:13 +02:00
2026-09-29 16:16:37 +02:00
2026-10-01 19:36:13 +02:00
2026-10-01 19:36:13 +02:00
2026-10-01 19:36:13 +02:00
2026-10-02 23:24:21 +02:00
2026-10-16 06:58:30 +02:00
2026-10-07 19:13:32 +02:00
2026-10-16 06:58:30 +02:00
2026-09-29 13:30:38 +02:00
2026-09-29 13:30:38 +02:00
2026-10-13 13:27:43 +02:00
2026-10-13 13:27:43 +02:00
2026-10-16 06:58:30 +02:00
2026-10-13 06:02:35 +02:00
2026-09-27 12:12:40 +02:00
2026-10-16 06:58:30 +02:00
2026-09-25 18:21:52 +02:00
2026-10-18 20:06:15 +02:00
2026-10-18 19:30:29 +02:00
2026-09-29 16:16:37 +02:00
2026-09-27 12:57:49 +02:00
Tabs are open documents: Scene, Game and Plugins stay as fixed tabs, every other asset opens in its own tab (double click or Enter in the asset panel, on creation, from the list button), several assets of one kind can be open at once, a tab is labelled with its kind dimmed before the name, cut at 160 px and renamed with its asset, closes with its x or a middle click and goes away when its asset is deleted; a tab always shows its own document instead of following the selection, the picker in the tab head is gone, zoom and scroll are kept per document for the session and dropped on close, a double click on a call node stays in the same tab with breadcrumbs per tab; one editor per kind is switched between documents, the placement rules live in the pure module documents.ts, and the test hook showTab stays as a compatibility path; new e2e module 44 documents ( #171 )
2026-09-19 15:49:54 +02:00
2026-10-09 14:27:12 +02:00
2026-10-07 17:59:08 +02:00
2026-10-18 20:06:15 +02:00
2026-10-18 20:06:15 +02:00
2026-10-14 20:40:05 +02:00