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
Corey Frang
f5c219ceb3
First Draft SoundBank + EffectChain
2018-06-21 16:56:10 -04:00
Michael "Z" Goddard
444aba7f76
Merge pull request #95 from gnarf/tests
...
Tests for GreenPlayer
2018-06-21 16:04:18 -04:00
Michael "Z" Goddard
ed0ef8e4dc
add docblock to AudioEngine.currentTime
2018-06-21 16:01:37 -04:00
Corey Frang
741817ad62
No need to set isPlaying here
2018-06-21 16:01:37 -04:00
Corey Frang
aa77d8d376
Add tests for play debounce
2018-06-21 16:01:37 -04:00
Corey Frang
e2da92fae7
cleanup tests a bit
2018-06-21 16:01:37 -04:00
Corey Frang
2bd946423b
remove rest of async/await in tests
2018-06-21 16:01:37 -04:00
Corey Frang
cdd35b5296
convert async/await to promise chain
2018-06-21 16:01:36 -04:00
Corey Frang
1d5d6bfbb2
Feedback from review fixes
2018-06-21 16:01:36 -04:00
Corey Frang
c62adcab3b
dispose taken sound player after it fades
2018-06-21 16:01:36 -04:00
Corey Frang
7f2b9786ee
Fix broken tests (mock change for effects and plan audioengine)
2018-06-21 16:01:36 -04:00
Corey Frang
5b693f6708
move take to stop, play is always green / non effected until stopped
2018-06-21 16:01:36 -04:00
Corey Frang
2c4edf288f
update test to work with new isPlaying problem
2018-06-21 16:01:36 -04:00
Corey Frang
8110885a62
add a play while playing test
2018-06-21 16:01:36 -04:00
Corey Frang
18cb9787ae
wip: greenplayer tests
2018-06-21 16:01:35 -04:00
Eric Rosenbaum
7dd6d557bb
Merge pull request #89 from LLK/green-audio-player
...
Green audio player
2018-06-21 15:37:55 -04:00
Michael "Z" Goddard
2126761dc3
use AudioContext.currentTime + DECAY_TIME to debounce sound start
...
Debounce when the sound starts to keep from playing many copies of the
same sound layered on itself. Use AudioEngine's currentTime in seconds
plus some value in milliseconds to make sure the sound has a chance to
start before starting a second playback.
2018-06-21 14:26:04 -04:00
Michael "Z" Goddard
331f083f5a
add GreenPlayer.isStarting promise
...
Self-resolving promise removes itself once it resolves. While it is on
a player the player may consider itself to not yet have the time to
actually start sound playback. While playback has not started, the
player can shortcut out of starting playback.
2018-06-18 14:47:38 -04:00
Andrew Sliwinski
094face1be
Update TRADEMARK
2018-06-18 13:12:40 -04:00
Ray Schamp
2ea0867df8
Merge pull request #91 from rschamp/travis-stages
...
Don't use npm prepublish
2018-06-14 13:58:44 -04:00
Ray Schamp
4e67a0548c
Don't use npm prepublish
...
Be explicit and build on the release step. This way it doesn't matter which version of npm we use (since prepublish is deprecated in npm 5). Also because we don't actually need to build to use scratch-audio in scratch-gui, so it doesn't help to run build on npm install anyway.
2018-06-14 13:57:36 -04:00
Ray Schamp
75a32bf7fd
Merge pull request #90 from rschamp/travis-stages
...
Release with build stages
2018-06-14 13:51:21 -04:00
Ray Schamp
110c07594d
Release with build stages
...
Also update to Node 8, and specify the stable 8 for build/lint/release, rather than latest stable Node, so less stuff changes.
2018-06-14 13:50:00 -04:00
Michael "Z" Goddard
961749815c
feat: use GreenPlayer in AudioPlayer
2018-06-14 11:08:24 -04:00
Eric Rosenbaum
2a63b0b027
Merge pull request #88 from mzgoddard/green-player
...
Green SoundPlayer
2018-06-12 16:20:26 -04:00
Michael "Z" Goddard
46b7c6d37b
document GreenPlayer
2018-06-12 13:30:23 -04:00
Michael "Z" Goddard
90589b861d
fix: fix taking a SoundPlayer's state
2018-06-12 12:48:54 -04:00
Michael "Z" Goddard
5c822e6542
fix: listen to ended event to note playback stopping
...
- Fix playing a sound a second time once the first playback finished
2018-06-12 12:47:56 -04:00
Michael "Z" Goddard
a5702a7d49
add decodeSoundPlayer to AudioEngine
...
- decodeSoundPlayer returns a SoundPlayer instance instance of the
sound id
- Write deprecation notes in AudioEngine about audioBuffers
2018-06-11 16:16:14 -04:00
Michael "Z" Goddard
06a9af4dc3
implement new SoundPlayer
...
- Add GreenPlayer as SoundPlayer replacement
- Standalone playback separate from an AudioPlayer
- Each GreenPlayer has their own VolumeEffect for fading out
- play() while already isPlaying fades out the last copy
- stop() fades the sound out
- stopImmediate() hard stops the sound
2018-06-11 16:16:14 -04:00
Michael "Z" Goddard
16883f60f8
support null AudioPlayer in Effect
...
Support null AudioPlayer so Effect chains can be declared without it.
2018-06-11 16:16:13 -04:00
Michael "Z" Goddard
87f400b27d
set DECAY_TIME to 25ms
...
Use a DECAY_TIME that envelopes half of the lowest frequency a person
can hear.
2018-06-11 16:16:13 -04:00
Michael "Z" Goddard
0059ff53e1
start audio param transition at now
...
Explicitly start the param transitions at the audio context's now time.
2018-06-11 16:16:13 -04:00
Ray Schamp
224fdeedf1
Merge pull request #86 from mzgoddard/test-for-effect
...
Test for effect
2018-06-11 13:11:17 -04:00
Michael "Z" Goddard
f6d5353e83
split travis testing into lint, tap, build tasks
2018-06-08 12:39:30 -04:00