Timothy Flynn
85b424464a
AK+Everywhere: Rename verify_cast
to as
...
Follow-up to fc20e61e72
.
2025-01-21 11:34:06 -05:00
Tim Ledbetter
c87f80454b
LibWeb/WebAudio: Implement automation rate constraints
...
Some nodes have parameters whose automation rate is not allowed to be
changed. This change enforces that constraint for all parameters it
applies to.
2025-01-19 17:24:55 +01:00
Tim Ledbetter
575edf8a90
LibWeb: Use correct automation rate for AudioBufferSourceNode parameters
2025-01-19 17:24:55 +01:00
Tim Ledbetter
5fd130b02d
LibWeb: Add BaseAudioContext.createStereoPanner()
factory method
2025-01-18 10:20:41 +01:00
Tim Ledbetter
56907e2de6
LibWeb: Add StereoPannerNode
interface
2025-01-18 10:20:41 +01:00
Tim Ledbetter
31532e36a8
LibWeb: Add AudioContext.createMediaElementSource()
factory method
2025-01-17 19:04:47 +00:00
Tim Ledbetter
aa39aa50f7
LibWeb: Add MediaElementAudioSourceNode
interface
2025-01-17 19:04:47 +00:00
Noah Bright
6c6bf322ea
LibWeb/WebAudio: Define and partially implement AnalyserNode
...
https://webaudio.github.io/web-audio-api/#AnalyserNode
Most of the interface is naively implemented. Container types
probably need adjusted (Vector<double> is used for all the processing).
A Fourier Transform is needed, but that's waiting on either a 3rd
party library or a complex number type.
There are lots of simple miscellaneous filters that need to be applied.
It could be reasonable to implement from scratch, supposing that
it can be parallelized. It might be hard to find one library with
everything. Not my call though.
Some additional scaffolding around blocks and render quanta is
probably needed before this is developed much further, which
probably comes in at the level of the AudioNode.
Co-authored-by: Tim Ledbetter <tim.ledbetter@ladybird.org>
2025-01-17 10:11:24 +01:00
Tim Ledbetter
d7ff409032
LibWeb: Align OfflineAudioContext constructors with current spec steps
2025-01-16 13:56:18 +00:00
Tim Ledbetter
f01ccf5424
LibWeb: Align AudioContext constructor with current spec steps
2025-01-16 13:56:18 +00:00
Tim Ledbetter
3261f873c5
LibWeb: Validate parameters for source node start() and stop() methods
2025-01-10 23:35:20 +01:00
Tim Ledbetter
81d6cd497a
LibWeb: Validate AudioNode::disconnect()
input and output arguments
2025-01-09 11:34:38 +00:00
Tim Ledbetter
5c57acf140
LibWeb: Validate AudioParam context in AudioNode::connect()
...
An exception is now thown if an `AudioNode` attempts to connect to an
`AudioParam` from a different `BaseAudioContext`.
2025-01-09 11:34:38 +00:00
Tim Ledbetter
2edd0812ca
LibWeb: Validate AudioNode::connect()
input and output arguments
2025-01-09 11:34:38 +00:00
Tim Ledbetter
e469c884d4
LibWeb: Use correct ranges for BiquadFilterNode
parameters
2025-01-08 19:05:51 +00:00
Tim Ledbetter
911cd4aefd
LibWeb/WebAudio: Add BaseAudioContext.createDelay()
factory method
2025-01-08 15:31:59 +00:00
Tim Ledbetter
6c4c925f02
LibWeb/WebAudio: Add DelayNode
interface
2025-01-08 15:31:59 +00:00
Tim Ledbetter
a6ab9cc983
LibWeb: Initialize AudioBufferSourceNode
with correct defaults
2025-01-08 14:45:51 +00:00
Tim Ledbetter
27dbe49f00
LibWeb: Initialize OfflineAudioContext
with correct defaults
2025-01-08 11:24:08 +00:00
Tim Ledbetter
8c4e4ec31b
LibWeb: Implement OscillatorNode.setPeriodicWave()
2025-01-04 10:12:24 +00:00
Tim Ledbetter
acbae1b118
LibWeb: Set OscillatorNode
type in the constructor
2025-01-04 10:12:24 +00:00
Tim Ledbetter
72818300c0
LibWeb: Implement the OscillatorNode.detune
attribute
2025-01-04 10:12:24 +00:00
Tim Ledbetter
ed46d247de
LibWeb: Initialize OcillatorNode
with the correct default options
2025-01-04 10:12:24 +00:00
Tim Ledbetter
a6f04506e4
LibWeb: Add BaseAudioContext.create_periodic_wave()
factory method
2025-01-03 14:54:18 +01:00
Tim Ledbetter
f90b79fa1f
LibWeb: Implement PeriodicWave
constructor
2025-01-03 14:54:18 +01:00
Tim Ledbetter
72ca91ad1a
LibWeb: Flesh out AudioBufferSourceNode buffer setter steps
2025-01-03 11:14:47 +01:00
Tim Ledbetter
6cab972248
LibWeb: Add BaseAudioContext.createConstantSource()
factory method
2025-01-03 11:13:27 +01:00
Tim Ledbetter
1b160044c4
LibWeb: Add ConstantSourceNode
interface
2025-01-03 11:13:27 +01:00
Tim Ledbetter
3eefa464ee
LibWeb: Add BaseAudioContext.createChannelSplitter()
factory method
2025-01-02 11:39:23 +00:00
Tim Ledbetter
e564d25ffb
LibWeb: Add ChannelSplitterNode
interface
2025-01-02 11:39:23 +00:00
Pavel Shliak
a95303de02
LibWeb/WebAudio: Remove copy-pasted comments in DynamicsCompressorNode
2024-12-18 10:19:46 +01:00
Pavel Shliak
9232dcbde5
LibWeb/WebAudio: Set all the params in PannerNode constructor
2024-12-18 10:19:46 +01:00
Pavel Shliak
884599f1df
LibWeb/WebAudio: Manage channelCountMode and channelCount for PannerNode
2024-12-18 10:19:46 +01:00
Luke Wilde
3063be11a9
LibWeb/WebAudio: Implement BaseAudioContext#createPanner
...
Required by Unity Web games.
2024-12-17 13:38:20 +01:00
Luke Wilde
4f691c2410
LibWeb/WebAudio: Implement PannerNode
...
Required by https://scottts.itch.io/different-strokes
2024-12-17 13:38:20 +01:00
Jelle Raaijmakers
be3a941f44
LibWeb: Add ChannelMergerNode interface
2024-11-25 17:16:06 +01:00
Shannon Booth
f87041bf3a
LibGC+Everywhere: Factor out a LibGC from LibJS
...
Resulting in a massive rename across almost everywhere! Alongside the
namespace change, we now have the following names:
* JS::NonnullGCPtr -> GC::Ref
* JS::GCPtr -> GC::Ptr
* JS::HeapFunction -> GC::Function
* JS::CellImpl -> GC::Cell
* JS::Handle -> GC::Root
2024-11-15 14:49:20 +01:00
Shannon Booth
9b79a686eb
LibJS+LibWeb: Use realm.create<T> instead of heap.allocate<T>
...
The main motivation behind this is to remove JS specifics of the Realm
from the implementation of the Heap.
As a side effect of this change, this is a bit nicer to read than the
previous approach, and in my opinion, also makes it a little more clear
that this method is specific to a JavaScript Realm.
2024-11-13 16:51:44 -05:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00