updated skills
This commit is contained in:
@@ -203,4 +203,3 @@ Phase 1.
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ without needing a snapshot store. The component keeps a local
|
||||
`version` counter that is incremented after every registration so
|
||||
React schedules a re-render — `list()` itself is a method, not a
|
||||
reactive primitive. The registration form intentionally writes a
|
||||
*placeholder* factory that throws when invoked; this prevents the
|
||||
_placeholder_ factory that throws when invoked; this prevents the
|
||||
loader from accidentally being used in production to register
|
||||
half-real factories. Consumers wanting real registration should call
|
||||
`registry.register(...)` directly from a parent component.
|
||||
|
||||
@@ -87,17 +87,17 @@ function TrackVisualizer({ adapter, trackId }) {
|
||||
|
||||
- `useAnalyser(opts?: UseAnalyserOptions): UseAnalyserResult`
|
||||
- `UseAnalyserOptions`:
|
||||
- `analyser?: AnalyserLike | null` — direct ref; supersedes `factory`.
|
||||
- `factory?: () => AnalyserLike | null` — lazy resolver, retried per tick.
|
||||
- `intervalMs?: number` — poll interval (default 16).
|
||||
- `fftSize?: number` — power-of-2 in `[32, 32768]` (default 2048).
|
||||
- `smoothingTimeConstant?: number` — `[0, 1]` (default 0.8).
|
||||
- `minDecibels?: number` — default `-100`.
|
||||
- `maxDecibels?: number` — default `-30`.
|
||||
- `analyser?: AnalyserLike | null` — direct ref; supersedes `factory`.
|
||||
- `factory?: () => AnalyserLike | null` — lazy resolver, retried per tick.
|
||||
- `intervalMs?: number` — poll interval (default 16).
|
||||
- `fftSize?: number` — power-of-2 in `[32, 32768]` (default 2048).
|
||||
- `smoothingTimeConstant?: number` — `[0, 1]` (default 0.8).
|
||||
- `minDecibels?: number` — default `-100`.
|
||||
- `maxDecibels?: number` — default `-30`.
|
||||
- `UseAnalyserResult`:
|
||||
- `analyser: AnalyserLike | null` — resolved instance or `null`.
|
||||
- `frequency: Uint8Array` — byte-magnitude FFT, identity-stable.
|
||||
- `waveform: Uint8Array` — byte time-domain, identity-stable.
|
||||
- `analyser: AnalyserLike | null` — resolved instance or `null`.
|
||||
- `frequency: Uint8Array` — byte-magnitude FFT, identity-stable.
|
||||
- `waveform: Uint8Array` — byte time-domain, identity-stable.
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ _(no submodules)_
|
||||
`useEngineState()` reports the `<AudioProvider>`'s async-init
|
||||
lifecycle phase as one of `'pending' | 'ready' | 'error'`. It is the
|
||||
only engine-aware hook that does **not** throw on the pending phase —
|
||||
its purpose is to *report* that phase so consumers can render a
|
||||
its purpose is to _report_ that phase so consumers can render a
|
||||
loading state or gate child trees on engine readiness.
|
||||
|
||||
The hook still throws `ReactAudioError(REACT_AUDIO.NO_PROVIDER)` when
|
||||
|
||||
@@ -20,7 +20,7 @@ contract.
|
||||
or throws.
|
||||
- `useAudioContextOrThrow()` — returns the raw `AudioContextValue`
|
||||
(without the pending check) for hooks like `useEngineState` that
|
||||
need to *report* the lifecycle phase rather than throw on it.
|
||||
need to _report_ the lifecycle phase rather than throw on it.
|
||||
|
||||
## Usage: Basic
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ _(no submodules)_
|
||||
instance, the canonical owner of timeline state — tracks, clips,
|
||||
selection, loop region, master volume, undo/redo. The engine exposes
|
||||
its own typed event surface (`engine.on(event, listener)`); consumers
|
||||
who want to *subscribe* to engine events should pair this hook with
|
||||
who want to _subscribe_ to engine events should pair this hook with
|
||||
`useSyncExternalStore` and pass `engine.on(...)` as the subscribe
|
||||
callback. The hook itself returns the engine handle and does not
|
||||
trigger re-renders on engine state changes.
|
||||
|
||||
Reference in New Issue
Block a user