Clement
5102702910
Warn mixer about stopped injectors
2019-04-04 18:55:35 -07:00
SamGondelman
300dd39abf
fix script engine shutdown
2019-03-13 12:23:31 -07:00
Sam Gondelman
f013b9af2b
fix warnings
2019-03-13 00:24:19 -07:00
SamGondelman
609c4ab52e
try to fix audio injector threading issues
2019-03-12 18:41:43 -07:00
Ken Cooke
fa08e42da6
Restore legacy attenuation behavior for system sounds and scripts that do not set position.
...
JS detects when "position" was not set by the script.
C++ explicitly sets .positionSet=false when not set (for system sounds).
Local rendering uses a direct mix (no attenuation/HRTF) when not set.
2019-01-29 11:21:02 -08:00
Atlante45
31033ad685
Update TTS audio API use
2018-11-14 15:42:39 -08:00
Clement
7192aed131
Rework audio data memory ownership model
2018-11-14 14:45:18 -08:00
Atlante45
70a5916ef3
Fix debug builds startup crash
2017-07-19 16:18:01 -07:00
Seth Alves
084a989a7a
stopAndDeleteLater is now just stop
2017-07-11 21:21:42 -07:00
Seth Alves
c52e7e180a
use const AudioInjectorPointer& in some places
2017-07-11 19:42:03 -07:00
Seth Alves
81489ea6c4
use QEnableSharedFromThis
2017-07-11 18:44:37 -07:00
Seth Alves
59c586bc5d
remove unused code
2017-07-11 16:58:19 -07:00
Seth Alves
3670a04d8e
switch bare pointers to AudioInjector objects to be QSharedPointers
2017-07-11 14:24:58 -07:00
Zach Pomerantz
48af83a960
guard against audio injector and local buffer datarace
2017-05-05 17:05:40 -04:00
Ken Cooke
69863dd735
Fix the crash in Debug builds, caused by undeclared metatype for AudioInjector*
2017-03-30 08:52:04 -07:00
Ken Cooke
afacb59999
Use logarithmic quantization of injector "volume" over the wire.
...
Allow gains > 1.0 (up to +30dB)
Better quantization at low levels (uniform steps in dB)
2017-01-04 15:38:26 -08:00
David Kelly
d6b99ce57e
Removed volume from AudioInjectorLocalBuffer
...
Since it doesn't use it. Now clamping at 0-1 in the
AudioInjector::getVolume() call. This is better -- one spot so it now
always gets clamped.
2016-12-13 17:34:56 -08:00
Ken Cooke
975cbd8e44
Replace test renderer with spatialized binaural renderer
2016-12-06 10:12:36 -08:00
Ken Cooke
e93e1a7c4f
Preliminary support for Ambisonic audio injectors.
...
Supports 4-channel WAV files, presumed to be B-format (FuMa) first-order Ambisonic.
Supports WAV with arbitrary sample rate (needs optimization).
Supports soundfield volume and orientation set via script.
Supports localOnly client-side injection using simple (non-spatialized) test renderer.
2016-12-02 18:20:57 -08:00
Zach Pomerantz
faba165408
fix injector fail on lack of local if
...
- consolidate codepaths for new/restarted injections
- allow network injection without local injection
2016-09-23 15:03:38 -07:00
Zach Pomerantz
9e2ec27b29
always play audio injectors locally
2016-09-21 17:20:51 -07:00
David Kelly
df615b1503
NotFinished never should have had its own bit
...
Since there is a Finished flag too. So now, it is just 0, used as
a starting point, and we check for !hasState(Finished). <sigh>
2016-07-18 16:02:02 -07:00
David Kelly
8c0eb1e4d2
Fixed some bad logic
...
When I "fixed" my or instead of and issue, I did it in the wrong
direction. But it looked right :) Now it is. Sigh. Long story
how it got there, but it seems good now.
2016-07-15 19:48:15 -07:00
David Kelly
fb99828e30
PR feedback
...
Code a bit more readable. Sadly (and I guess it makes sense), a
enum class XXX is not a class, so you cannot have member functions
for it. I can imagine no way to have a vtable if you are really
representing it as a uint8_t or whatever. So, I put a stateHas
function in the AudioInjector instead. Definite improvement.
2016-07-15 17:09:27 -07:00
David Kelly
e1212c54cb
Updated to deal with streaming out of both buffers
...
So gotta keep track of when finished streaming to network and
locally separately. That means the State needed to be more of a
bitflag and less of an enum.
2016-07-15 09:55:50 -07:00
David Kelly
c951f507e3
Fixed issue with calling setOptions
...
Since the stereo option is computed from the .wav file, if you call
setOptions later (like the cow.js does), it resets stereo to false.
So, I now just copy the stereo flag into the new options, since the
sound file is the same.
Also, calling AudioClient::outputLocalInjector on the AudioClient
thread now to avoid potential concurrency issues accessing the
vector of injectors.
2016-07-13 11:28:36 -07:00
David Kelly
c84ef5f626
Stereo injectors now handled same as mono
...
Except of course no HRTF.
2016-07-11 11:31:47 -07:00
David Kelly
46dc5bea04
cleanup from PR comments
2016-07-11 09:31:05 -07:00
David Kelly
600348bf10
Initial cut of htrf for mono localOnly injectors
...
Probably need to clean up a bit, but wanted to get this out there
for comment on more general issues, etc...
To test, I added a localOnly: true to the cow in the tutorial.
2016-07-07 16:07:41 -07:00
Atlante45
96ee33e80e
Fix avatars collision sounds
2016-05-05 14:55:28 -07:00
Atlante45
6d1b7f1d37
Wrap sound script object to hold a strong ref
2016-04-06 13:04:18 -07:00
Stephen Birarda
311f1ac0e3
fix for overflow on time of next frame
2016-01-28 15:38:33 -08:00
Ryan Huffman
a3b2dd2295
Add proper loop handling in injector
2016-01-27 10:14:05 -08:00
Ryan Huffman
641a6e9c30
Fix injector handling for when it falls behind
2016-01-26 09:29:02 -08:00
Stephen Birarda
2aa56b5384
include memory header for unique_ptr
2015-11-17 17:26:45 -08:00
Stephen Birarda
35dd5fb564
include NLPacket in AudioInjector for unique_ptr
2015-11-17 17:26:07 -08:00
Stephen Birarda
cf2ad9a877
remove atomic include from AudioInjector
2015-11-17 17:07:29 -08:00
Stephen Birarda
62b218632d
don't use unneeded atomic for AudioInjector State
2015-11-17 17:06:21 -08:00
Stephen Birarda
ab5c8e072f
handle blocked AudioInjectorManager for restart
2015-11-17 16:31:18 -08:00
Stephen Birarda
d764ff2e87
remove static variables in AudioInjector.cpp
2015-11-17 15:12:04 -08:00
Stephen Birarda
7da6ec46c4
more handling of various AudioInjector states
2015-11-17 14:20:59 -08:00
Stephen Birarda
80115d38e9
tweak the AudioInjectorManager for injector threading
2015-11-16 18:53:09 -08:00
Stephen Birarda
aa77c4894c
add an AudioInjectorManager for more efficient threading
2015-11-16 16:04:10 -08:00
Howard Stearns
d003ec9c58
Delete collision sounds (and their threads) after use.
...
This has been broken ever since I added avatar collision sounds around https://github.com/highfidelity/hifi/pull/5159 or so.
2015-08-31 15:49:17 -07:00
Stephen Birarda
e93b360908
expose options property to AI script interface
2015-08-20 12:12:43 -07:00
Howard Stearns
2d277a2abd
Fix https://app.asana.com/0/30233891560551/41734486809354/f
2015-07-17 11:28:25 -07:00
Howard Stearns
dc10e15e96
Put the common stuff on AudioInjector rather than AudioClient, so that assignment-client (which depends on script-engine) does not need to depend on audio-client.
2015-06-19 14:20:00 -07:00
Howard Stearns
564b0b48ef
Alternate version that uses signal rather than polling.
2015-06-08 14:29:43 -07:00
Stephen Birarda
8ede9fb39b
fix stereo to stereo resampling
2015-03-10 15:50:30 -07:00
Stephen Birarda
43e777163e
use a QPointer to trigger delayed delete
2015-02-11 19:15:33 -08:00