Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork3.4k
Implement missing WebAudio automation student project
Josh Matthews edited this pageFeb 15, 2019 ·1 revision
Background information: Major browsers supportthe WebAudio standard which can be used to create complex media playback applications from low-level building blocks. Servo is a new, experimental browser that supports some of these building blocks (called audio nodes); the goal of this project is to implement some missing audio processing algorithms and interfaces to improve compatibility with existing multimedia content on the web.
Tracking issue: (please ask questions in these issues)
- https://github.com/servo/media/issues/204 (value curve automation)
- https://github.com/servo/servo/issues/22897 (JS API for value curves)
- https://github.com/servo/servo/issues/22898 (missing APIs for AudioListener)
- https://github.com/servo/media/issues/205 (wave shaper node)
Useful references:
- Setup for modifying the standalone media backend implementation
- Implementation of audio node processing algorithms
- Runnable examples of audio node processing algorithms
- Example pull request implementing a missing node type in Servo (another example)
- Example pull request implementing the processing backend for a missing node type
- Setup for making changes to Servo's code
- Documentation for introducing new WebIDL-based DOM interfaces to Servo
- Documentation for integrating a version of
servo-mediathat contains your local changes into your local Servo build
Initial steps:
- email themozilla.dev.servo mailing list (be sure to subscribe to it first!) introducing your group and asking any necessary questions
- Add the new ValueCurveAtTime automation event and implement the processing algorithm for it (perthe github issue)
- Create an example program (in
examples/) that demonstrates this automation being applied to an oscillator node
Subsequent steps:
- Implement the missing JS API for
setValueCurveAtTimeperthe github issue - Implement the missing
setPositionandsetOrientationAPIs perthe github issue - update the expected test results forthe relevant tests
- implement the backend forWaveShaperNode in the media crate by creating a new node implementation using
BiquadFilterNodeas a guide. Create an example program that demonstrates the effect in practice.