Skip to content

Per-track effects API + track enumeration (@dawcore/components 0.0.27)

Choose a tag to compare

@naomiaro naomiaro released this 29 Jun 20:35

@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.tracks now returns TrackWithId[] ({ trackId, name, … }) for every track, including drag-dropped / programmatic ones — the public way to map a track's name to the trackId the per-track APIs are keyed by.
  • New daw-track-removed event (detail { trackId }), symmetric with daw-track-ready, so derived UI (dropdowns, racks) can stay in sync without a MutationObserver.

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.