Commit graph

706 commits

Author SHA1 Message Date
Maxim Schram
807a151eea ci: gha workflow 2023-10-10 11:05:14 -04:00
renovate[bot]
3e1238c4c7
chore(deps): update dependency babel-eslint to v10 2023-03-22 21:50:42 +00:00
Andy O'Neill
50b7ade0d9
Merge pull request #181 from LLK/circleci
ci: Replace Travis with CircleCI
2022-11-23 13:00:40 -05:00
Andy O'Neill
a6d400dddb Revert "ci: Simplify with node orb"
This reverts commit ac0f98c431.
2022-11-21 16:53:55 -05:00
Andy O'Neill
ac0f98c431 ci: Simplify with node orb 2022-11-21 14:14:49 -05:00
Andy O'Neill
2153ee9619 ci: Add CircleCI config (ENA-41) 2022-11-18 14:20:13 -05:00
Renovate Bot
c8418d327e
chore(deps): update dependency eslint to v8 2021-10-18 21:27:30 +00:00
Christopher Willis-Ford
89c345950e
Merge pull request #166 from LLK/renovate/pin-dependencies
chore(deps): pin dependencies
2021-07-22 15:04:31 -07:00
Renovate Bot
cceb092819
chore(deps): pin dependencies 2021-07-22 22:04:04 +00:00
Christopher Willis-Ford
8e2f856c4a
Merge pull request #165 from LLK/renovate/babel-monorepo
chore(deps): pin dependencies
2021-07-22 15:03:49 -07:00
Renovate Bot
d99193b308
chore(deps): pin dependencies 2021-07-22 21:57:49 +00:00
Christopher Willis-Ford
d3562b6a18
Merge pull request #164 from LLK/renovate/configure
Configure Renovate
2021-07-22 14:57:35 -07:00
Christopher Willis-Ford
3625014f7f use scratch-renovate-config:conservative 2021-07-22 14:48:34 -07:00
Renovate Bot
76d11e7893
chore(deps): add renovate.json 2021-07-22 21:38:13 +00:00
Eric Rosenbaum
a049deba23
Create CONTRIBUTING.md 2020-05-28 15:51:22 -04:00
Eric Rosenbaum
b279a63e70
Merge pull request #118 from adroitwhiz/fix-volume-stutter
Don't setValueAtTime in volume effect
2019-09-25 14:33:17 -04:00
Paul Kaplan
f4e484258a Update stop duration and tests
Remove test for ramping because the test audio api doesnt ramp correctly without prior sets
2019-09-25 14:14:48 -04:00
Eric Rosenbaum
3dff623735
Remove extra wait time in set volume 2019-09-25 13:50:40 -04:00
adroitwhiz
c1182e5106 Don't setValueAtTime in volume effect 2019-05-01 03:23:17 -04:00
Eric Rosenbaum
f8fa66403d
Merge pull request #115 from LLK/bugfix/catch-adpcm-decode-error
Catch ADPCM decode error, and use an empty sound
2019-01-14 15:52:57 -05:00
Eric Rosenbaum
aee73d97a5 Remove unnecessary promise wrappers 2019-01-14 15:37:02 -05:00
Eric Rosenbaum
29b2e7ebc7 Catch ADPCM decode error, and use an empty sound 2019-01-10 16:52:43 -05:00
Paul Kaplan
9a2332e56b
Merge pull request #114 from LLK/bugfix/handle-broken-sounds
Handle empty and unusually formatted sounds that caused crashes
2019-01-08 13:05:05 -05:00
Eric Rosenbaum
195be39c6e Remove stray comment 2019-01-08 12:40:32 -05:00
Eric Rosenbaum
db1c89fa34 Prevent error due to LIST chunks 2019-01-08 12:11:53 -05:00
Eric Rosenbaum
6f32a0bec7 Handle empty sounds 2019-01-08 11:28:40 -05:00
Eric Rosenbaum
0ee5fb95c3
Merge pull request #105 from mzgoddard/loop-optimizations
ADPCM Loop Optimizations
2018-10-23 16:25:15 -04:00
Eric Rosenbaum
468aa9bf6f
Merge pull request #104 from mzgoddard/js-optimizations
ADPCM JS Optimizations
2018-10-23 16:24:55 -04:00
Andrew Sliwinski
0f8d1ecd21
Merge pull request #106 from mzgoddard/bump-wcli
Bump wcli
2018-10-23 12:27:57 -04:00
Michael "Z" Goddard
41ab77b5a0
bump webpack-cli 2018-10-23 10:33:53 -04:00
Michael "Z" Goddard
80820c6ba6
precompute DELTA_TABLE and reorganize decompression loop
There are 1424 possible deltas given 89 steps and 16 codes. We can
quickly compute those and reuse them to save time.

Knowing the exact size of the waveform we can re-author the
decompression loop to take advantage of that. We can place the block
header decompression first in the outer while loop and then place an
inner loop with the 2 samples per block decompression unwrapped. The
first sample reads from the stream and the second uses the other 4 bits.
2018-10-22 17:14:40 -04:00
Michael "Z" Goddard
c12bf02b33
write ADPCM samples directly to the Audio Buffer's channel data
The number of samples in the ADPCM can be known once the data chunk is
extracted and the block size is known. From there the audio buffer can
be created and its channel data passed to the decompress method. A lot
of time is saved by writing to the channel data directly instead of
writing to one array, copying that to another array, and then finally
copying to the channel data. A surprising amount of time is saved by
using one getChannelData call instead of calling to store each sample.
2018-10-22 17:12:05 -04:00
Michael "Z" Goddard
5c2f2ca97b
reuse ArrayBufferStream parent internal objects
The extracted children can refer to their parent typed array views and
buffer to keep from needing to make memory copies that take a lot of
time to create and memory to use. As well some time can be saved by
using the same Uint8Array for reading Uint8 values and strings.
2018-10-22 17:12:04 -04:00
Michael "Z" Goddard
7e61890c1b
Merge pull request #100 from mzgoddard/todo-remove-this
remove `@todo` remove this items in AudioEngine
2018-06-25 16:24:44 -04:00
Michael "Z" Goddard
6ec307eca2
remove @todo remove this items in AudioEngine 2018-06-25 15:58:33 -04:00
Eric Rosenbaum
59ff2ad927
Merge pull request #101 from mzgoddard/clipless-firefox
schedule stop DECAY in the future for firefox
2018-06-25 15:39:17 -04:00
Eric Rosenbaum
e165850301
Merge pull request #99 from mzgoddard/docs
add missing docs: SoundPlayer, AudioEngine, Effect.name
2018-06-25 15:15:04 -04:00
Michael "Z" Goddard
e01a32a83d
use AudioEngine.currentTime and DECAY_WAIT in PanEffect, etc 2018-06-25 14:27:21 -04:00
Michael "Z" Goddard
ee73fd7a8a
rename DECAY_* constants to DECAY_WAIT and DECAY_DURATION 2018-06-25 14:01:15 -04:00
Michael "Z" Goddard
fb355abb7d
schedule stop DECAY in the future for firefox
Firefox at this time cannot smoothly schedule audio parameter changes
to happen immediately. Immediately scheduled changes clip when firefox
tries to catch up. Smoothly fading out a sound immediately instead of
clipping the end of the sound, in firefox at this time clips the sound
between where the fade out starts and where firefox catches up and
finishes the scheduled fade.
2018-06-25 13:15:19 -04:00
Michael "Z" Goddard
97e2996090
add missing docs: SoundPlayer, AudioEngine, Effect.name 2018-06-22 14:43:37 -04:00
Mx Corey Frang
a79684a720
Merge pull request #98 from gnarf/soundbank-effectchain
Soundbank effectchain
2018-06-21 16:58:56 -04:00
Michael "Z" Goddard
018d4fc01e add AudioEngine.createEffectChain 2018-06-21 16:56:11 -04:00
Corey Frang
c8f3510713 Better order of stop/connect/play 2018-06-21 16:56:11 -04:00
Corey Frang
ea6093835c mv GreenPlayer.js SoundPlayer.js 2018-06-21 16:56:11 -04:00
Corey Frang
45a7d1abef rm AudioPlayer and SoundPlayer 2018-06-21 16:56:11 -04:00
Michael "Z" Goddard
c12a1a4766 comment SoundBank and EffectChain 2018-06-21 16:56:11 -04:00
Michael "Z" Goddard
7cef4e60a8 pass main EffectChain to SoundBank from Engine.createBank 2018-06-21 16:56:11 -04:00
Michael "Z" Goddard
5177dd5c85 add SoundPlayers to SoundBank
- SoundBank may not create SoundPlayers (but it can call .take if need)
- All SoundPlayers SoundBank plays are given to it
2018-06-21 16:56:11 -04:00
Michael "Z" Goddard
d40564d61a make EffectChain standalone
- EffectChain knows of audioEngine so it can create Effects
- EffectChain connects to the target specified by .connect(target)
- EffectChain can connect to other Effects or EffectChains
- EffectChain can clone itself and connect to the original's target
- Add EffectChain.update to mirror Effects API
- Use deepest setting first in setEffectsFromTarget
2018-06-21 16:56:10 -04:00