Per-track effects API + track enumeration (@dawcore/components 0.0.27)
@dawcore/components@0.0.27
A public per-track effects API for <daw-editor>, plus track enumeration and a removal event — everything needed to insert and manage effects on any track by id, including drag-dropped and programmatic tracks.
Per-track effects, keyed by trackId (#524)
<daw-editor> now exposes the full effects surface addressed by trackId, so element-less tracks — dragged onto a file-drop editor, or created via addTrack(...) when you don't hold the element — can carry their own insert chain:
addTrackEffect · addTrackWamPlugin · addTrackFaustEffect · removeTrackEffect · setTrackEffectParams · setTrackEffectBypassed · moveTrackEffect · trackEffects · openTrackEffectGui / closeTrackEffectGui · getTrackEffectsState / setTrackEffectsState
<daw-track>'s element methods are now thin sugar over these (single implementation; the old internal _track* contract is gone). Per-track daw-effect-* events dispatch from the <daw-track> element when one exists, else from the editor.
Track enumeration + removal event (#525)
editor.tracksnow returnsTrackWithId[]({ trackId, name, … }) for every track, including drag-dropped / programmatic ones — the public way to map a track's name to thetrackIdthe per-track APIs are keyed by.- New
daw-track-removedevent (detail{ trackId }), symmetric withdaw-track-ready, so derived UI (dropdowns, racks) can stay in sync without aMutationObserver.
Demo (#527)
The dawcore-wam example now inserts plugins on any track or the master bus (one rack per track + master), with the target chosen from a dropdown that tracks every track — including stems dragged-and-dropped onto the editor.
Docs
docs/specs/web-components-migration.md — new "Per-Track Effects by ID" section; editor.tracks and the events list updated.
Follow-up: WAM 2.0 library version filtering — #528.