Commit graph

174 commits

Author SHA1 Message Date
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
Michael "Z" Goddard
841b029d7f
streamline connecting Effects
- Add sanity checks to connect
2018-06-08 12:39:30 -04:00
Michael "Z" Goddard
65702e7722
use VolumeEffect in AudioPlayer 2018-06-06 14:42:05 -04:00
Michael "Z" Goddard
1d9e530df2
add VolumeEffect 2018-06-06 14:40:21 -04:00
Michael "Z" Goddard
8a75061a19
fix Effect bugs 2018-06-06 14:38:26 -04:00
Michael "Z" Goddard
618239654f
fixup! extend existing effects from Effect 2018-06-05 14:42:46 -04:00
Michael "Z" Goddard
5b8f0fce65
fixup! extend existing effects from Effect 2018-06-05 13:59:53 -04:00
Michael "Z" Goddard
61e54b2457
extend existing effects from Effect
Add Effect class that manages connecting the effects in a chain from
their AudioPlayer to the AudioEngine.
2018-06-05 12:46:29 -04:00
Michael "Z" Goddard
d5b6290d45
break up index.js into files per class
- Add AudioEngine.js
- Add AudioPlayer.js
- Add Loudness.js
2018-06-04 18:11:44 -04:00
Karishma Chadha
8d67c6a4c3 Update variable name. 2018-04-17 09:36:21 -04:00
Karishma Chadha
a3ecd2ddc2 More refactoring/code-cleanup addressing PR comments. 2018-04-13 17:46:09 -04:00
Karishma Chadha
158adb0868 refactor decodeSound function, to only use sound data buffer to decode the sound instead of relying metadata from the project json 2018-04-13 11:40:34 -04:00
Eric Rosenbaum
84fdf5c76a
Merge pull request #70 from towerofnix/fix-firefox-loudness
Don't use mediaStream property, which is missing on Firefox
2018-01-16 15:39:58 -05:00
Eric Rosenbaum
d2b6cb40e3 Disconnect audio nodes on dispose 2018-01-09 18:18:49 -05:00
Florrie
3318b14457
Don't use mediaStream property
..which is missing on Firefox. Fixes #67.
2018-01-04 08:31:09 -04:00
Eric Rosenbaum
734f976585 New name and value for DECAY_TIME 2017-12-20 15:17:26 -05:00
Eric Rosenbaum
1c8a545a8a Set gain using setTargetAtTime 2017-12-20 12:07:53 -05:00
Paul Kaplan
dce5316551 Remove leftover references to adrum and note player 2017-11-22 09:55:02 -05:00
Eric Rosenbaum
b15312702e Remove log 2017-11-21 10:50:59 -05:00
Eric Rosenbaum
730c57a976 Remove instruments and drums 2017-11-21 10:44:50 -05:00
Eric Rosenbaum
202d6d8b02 Add a function to get an AudioPlayer’s input node 2017-11-09 16:28:03 -05:00
Eric Rosenbaum
283049e514 Safely stop sounds in safari 2017-08-22 11:33:18 -04:00
Paul Kaplan
a9168f04aa Use StartAudioContext to allow playing on mobile safari 2017-07-26 20:20:39 -04:00
Paul Kaplan
20d05ee5c9 Merge pull request #57 from paulkaplan/use-uid-not-md5
Play sounds by unique sound ID and allow getting/setting buffers by sound ID
2017-07-26 08:59:43 -04:00
Paul Kaplan
e8334e5a9b Fix getter 2017-07-25 12:55:23 -04:00
Paul Kaplan
062f39244b Add public getter/setter for buffers 2017-07-25 12:30:30 -04:00
Eric Rosenbaum
f26dbde03b Merge pull request #56 from LLK/feature/decodeaudiodata-safari
Fall back to the older callback API for decodeAudioData
2017-07-25 11:35:09 -04:00
Eric Rosenbaum
5cb4146aa7 Merge pull request #55 from LLK/feature/panner
Implement panning without panner node
2017-07-25 11:34:51 -04:00
Paul Kaplan
0555407406 Use uid instead of md5 for keying audio buffer cache 2017-07-25 11:33:56 -04:00
Eric Rosenbaum
aa2adf6c03 Fall back to the older callback API for decodeAudioData
If promises are not supported, such as on Safari
2017-07-21 12:35:21 -04:00
Eric Rosenbaum
68d5ac2e34 Lint 2017-07-21 12:10:32 -04:00
Eric Rosenbaum
89cdb92c23 Implement panning without panner node 2017-07-21 12:04:43 -04:00
Eric Rosenbaum
643d33e482 Use audio-context module for shared audiocontext
To prevent creating multiple audio contexts
2017-07-21 10:50:15 -04:00
Eric Rosenbaum
dd0d9556ed Explain loudness scaling, and clamp to 100 2017-06-23 13:13:30 -04:00
Eric Rosenbaum
5add85bd60 Fix comments 2017-06-23 11:58:04 -04:00
Eric Rosenbaum
dba8c6f91d Adjust loudness smoothing 2017-06-23 10:59:10 -04:00
Eric Rosenbaum
a081333ddd Fix comment 2017-06-22 11:07:24 -04:00
Eric Rosenbaum
b7ff586ca1 Inline the interval to frequency function 2017-06-22 11:06:12 -04:00
Eric Rosenbaum
66b4ae3795 Remove unused variable 2017-06-22 10:54:52 -04:00
Eric Rosenbaum
0bc892f03d Use “audioContext” to refer to webAudioContext 2017-06-22 10:51:57 -04:00
Eric Rosenbaum
90af375b03 Use arrow functions 2017-06-21 11:23:32 -04:00
Eric Rosenbaum
43e0408434 Lint 2017-06-21 10:46:42 -04:00
Eric Rosenbaum
2974a5e65b Re-implement loudness block 2017-06-20 18:34:12 -04:00
Eric Rosenbaum
03034dd2f7 Remove dependency on Tone.js 2017-06-20 16:50:02 -04:00
Eric Rosenbaum
865d3cde88 Correctly call this.intervalToFrequencyRatio 2017-06-19 17:41:08 -04:00
Eric Rosenbaum
e515bf4026 Cleanup 2017-06-19 17:40:53 -04:00