Skip to content

refactor: audio param automation events#995

Merged
mdydek merged 43 commits intomainfrom
refactor/audio-param-automation-events
Apr 14, 2026
Merged

refactor: audio param automation events#995
mdydek merged 43 commits intomainfrom
refactor/audio-param-automation-events

Conversation

@closetcaiman
Copy link
Copy Markdown
Contributor

@closetcaiman closetcaiman commented Mar 23, 2026

Closes RNAA-440

⚠️ Breaking changes ⚠️

Introduced changes

  • refactored AudioParamEventQueue to support between-element insertion (to comply with AP spec)
    • added a base class (AutomationQueueBase) with BoundedPriorityQueue (std::multiset based) and AutomationRenderQueue and AutomationControlQueue subclasses both AutomationTime sorted
    • added resolveEventValues to connect event start/end time/value between elements
  • added a AutomationControlQueue to JSI for handling curveExclusion error
    • added purging on push to the queue (on each successful AutomationMethod)
    • added JS-side error throwing (+ new types)
  • refactored event creation
    • split AutomationEvent into base (AutomationEvent) class and RenderAutomationEvent class
      • added a helper constuctor in base class to help with metadata-only event processing (in AutomationControlQueue)
    • added a peer factory class RenderAutomationEventFactory
  • addded new unit tests to check new spec compliance
  • fixed interface type on IBiquadFilterNode to use RNAA types

Checklist

  • Linked relevant issue
  • Updated relevant documentation
  • Added/Conducted relevant tests
  • Performed self-review of the code
  • Updated Web Audio API coverage
  • Added support for web
  • Updated old arch android spec file

@closetcaiman closetcaiman changed the title Refactor/audio param automation events refactor: audio param automation events Mar 23, 2026
@closetcaiman closetcaiman marked this pull request as ready for review April 7, 2026 15:20
Copy link
Copy Markdown
Collaborator

@mdydek mdydek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would also rename some of the files and classes, maybe ParamControlQueue, ParamAudioQueue and so on

Comment thread packages/react-native-audio-api/common/cpp/audioapi/core/utils/Constants.h Outdated
@closetcaiman closetcaiman force-pushed the refactor/audio-param-automation-events branch from 32a511d to a2a2b4a Compare April 9, 2026 14:54
@closetcaiman closetcaiman requested a review from mdydek April 9, 2026 15:04
@closetcaiman closetcaiman force-pushed the refactor/audio-param-automation-events branch from 8b00ec3 to decc31d Compare April 9, 2026 15:13
Copy link
Copy Markdown
Collaborator

@mdydek mdydek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Files are still not renamed ParamControlQueue ...

Copy link
Copy Markdown
Collaborator

@mdydek mdydek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you also update docs section about new errors?

@closetcaiman closetcaiman force-pushed the refactor/audio-param-automation-events branch from c03be4e to 877f8da Compare April 13, 2026 08:42
@closetcaiman closetcaiman requested a review from mdydek April 13, 2026 10:53
Comment thread packages/react-native-audio-api/common/cpp/test/src/core/AudioParamTest.cpp Outdated
@mdydek mdydek merged commit 5d044da into main Apr 14, 2026
5 checks passed
@mdydek mdydek deleted the refactor/audio-param-automation-events branch April 14, 2026 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants