Ryan Huffman
efdd3060b0
Set isUpstream when receiving a replicated audio packet
2017-06-12 15:00:03 -07:00
Ryan Huffman
3b3465ea05
Add isUpstream to Node
2017-06-12 14:59:45 -07:00
Stephen Birarda
8ebf1db9a8
switch to replicator/replicant and add new node types
2017-06-12 10:58:34 -07:00
Stephen Birarda
a085a55107
register a listener for audio format negotiation
2017-06-12 02:41:15 -07:00
Stephen Birarda
b5c26b596e
seek past source UUID in mirrored packets
2017-06-12 02:39:54 -07:00
Stephen Birarda
e629881665
mirror audio format negotiation
2017-06-12 02:18:27 -07:00
Stephen Birarda
0ee0082052
handle new packet types in AudioMixerClientData::processPackets
2017-06-12 02:05:40 -07:00
Stephen Birarda
281793c4c0
update last heard timestamp for mirrored nodes
2017-06-12 01:46:12 -07:00
Stephen Birarda
f726c5bc3a
handle mirrored packets in AudioMixerClientData
2017-06-12 01:16:51 -07:00
Stephen Birarda
45bb323723
experimental support for mirrored audio packets to other mixers
2017-06-12 00:19:24 -07:00
Bradley Austin Davis
b4bbf98fe3
Suppress TBB warnings
2017-06-06 15:02:16 -07:00
Atlante45
c799ddc927
CR
2017-05-16 14:53:54 -07:00
Atlante45
cde7d68570
Fix domain settings not getting cleared on re-assignment
2017-05-15 18:20:47 -07:00
Zach Pomerantz
7e2f1a6455
check for silent samples befor limiting
2017-03-09 14:31:54 -05:00
Zach Pomerantz
e69d6d8b5f
track silent listeners in audio-mixer
2017-03-09 14:31:41 -05:00
Zach Pomerantz
07e97a0cab
unqueue from front for audio packets
2017-02-16 21:40:53 +00:00
Zach Pomerantz
2e9217fb47
loosen audio memoization precondition
2017-02-15 13:36:03 -05:00
Zach Pomerantz
09cc4bf48d
time events with packets
2017-02-14 21:48:36 +00:00
Zach Pomerantz
41a4ec4200
mv codec init to ctor from negotiateCodecs
2017-02-14 21:26:35 +00:00
Zach Pomerantz
06c8fba35d
mv Node out of packet queue
2017-02-14 21:10:30 +00:00
Zach Pomerantz
a7386392a1
fix codec parsing
2017-02-14 20:46:27 +00:00
Zach Pomerantz
b102c2d1d0
generalize audio thread pool to processPackets
2017-02-14 20:46:27 +00:00
Zach Pomerantz
7d8a947e6d
add node-isolated packet parsing to client data
2017-02-14 20:46:27 +00:00
Zach Pomerantz
da5a89f582
move codec negotiation to client data
2017-02-14 20:46:27 +00:00
Zach Pomerantz
481cd0ca6a
move audio packets to client data
2017-02-14 20:46:27 +00:00
Zach Pomerantz
2f457ae891
add packet queue to AudioMixerClientData
2017-02-14 20:46:27 +00:00
Ken Cooke
bf077e6fdb
Merge pull request #9623 from zzmp/audio/should-ignore
...
Optimize ignore zone checks for audio mixer
2017-02-14 06:18:54 -08:00
Brad Hefta-Gaub
d24ed62116
Merge pull request #9660 from zzmp/audio/silent-stats
...
Add silent_packets stat to audio mixer
2017-02-13 13:07:07 -08:00
Zach Pomerantz
e1cf04e0f0
add silent_packets stat to audio mixer
2017-02-13 20:18:16 +00:00
Zach Pomerantz
9d830d7ea9
log AVX2 support in audio-mixer
2017-02-09 18:56:49 +00:00
Zach Pomerantz
553fffd8ae
time mix instead of throttle with HIFI_AUDIO_MIXER_DEBUG
2017-02-07 21:49:23 +00:00
Zach Pomerantz
ee699d3fa6
Revert 'use tbb::atomic for cp'
2017-02-07 20:40:06 +00:00
Zach Pomerantz
5e9fb17949
use tbb::atomic for cp
2017-02-07 15:01:23 -05:00
Zach Pomerantz
ad7c01e86e
modularize audio ignore zone computations
2017-02-07 15:01:22 -05:00
Zach Pomerantz
308e3cab71
fix memoized ignoreZone assertion for initialization
2017-02-07 15:01:22 -05:00
Zach Pomerantz
d42b6a64c4
use threadsafe map for audio node ignore cache
2017-02-07 15:01:22 -05:00
Zach Pomerantz
4bcc9d3072
bail audio mix if node is not initialized
2017-02-07 15:01:22 -05:00
Zach Pomerantz
093f748d7d
make auto stream explicit
2017-02-07 15:01:22 -05:00
Zach Pomerantz
e7cf84324b
abstract audio ignore caching
2017-02-07 15:01:22 -05:00
Zach Pomerantz
207d2e78f0
fix should ignore opts
2017-02-07 15:01:21 -05:00
Zach Pomerantz
310c8b18ee
add caching over symmetric nodes for audio shouldIgnore
2017-02-07 15:01:21 -05:00
Zach Pomerantz
8a42755e8f
mv shouldIgnore from AudioMixerSlave to ClientData
2017-02-07 15:01:21 -05:00
Zach Pomerantz
3c1cf504d0
rename getIgnoreBox to getIgnoreZone to prevent confusion
2017-02-07 15:01:21 -05:00
Zach Pomerantz
9bcc5c95b4
reduce stream lock usage in AudioMixerClientData::getIgnoreBox
2017-02-07 15:01:21 -05:00
Zach Pomerantz
569ae113a0
memoize audio ignore box in AudioMixerClientData
2017-02-07 15:01:21 -05:00
Zach Pomerantz
9b0190f1cf
add ns/throttle to audio mixer debug stats
2017-02-06 20:31:19 +00:00
Zach Pomerantz
eb00c7ba11
group constants in audio mixer gain computation
2017-01-30 17:48:03 +00:00
Zach Pomerantz
e7e550d78c
add injector attenuation to audio gain appx
2017-01-27 16:18:10 -05:00
Zach Pomerantz
2da4dce8be
rm statics from audio-mixer mixing
2017-01-27 15:46:25 -05:00
Zach Pomerantz
fe1847f965
clean up audio-mixer computeGain helper
2017-01-27 15:46:12 -05:00
Zach Pomerantz
ca727b7920
inline audio mix helpers
2017-01-27 15:28:43 -05:00
Zach Pomerantz
c4190ad4c4
add hrtf adjustment to throttle gain appx
2017-01-27 15:26:49 -05:00
Zach Pomerantz
7bcf136dc9
modularize audio throttle gain appx
2017-01-27 15:26:32 -05:00
Zach Pomerantz
d82c8b251a
use sleep_for to avoid WIN32 sleep_until bug
2017-01-27 13:22:50 -05:00
Chris Collins
c0ee091946
Merge pull request #9502 from zzmp/audio/throttle
...
Throttle audio with PI controller, by node
2017-01-26 14:25:44 -08:00
Brad Hefta-Gaub
0582aca598
Merge pull request #9511 from kunalgosar/master
...
change server to default to not auto-muting
2017-01-26 10:59:50 -08:00
Zach Pomerantz
fb31254f57
add proportional term to audio-mixer throttling controller
2017-01-25 21:18:03 +00:00
Zach Pomerantz
46afa7e764
DRY audio-mixer all-stream mixes
2017-01-25 21:18:03 +00:00
Zach Pomerantz
1153c1900f
reorder AudioMixerSlave::prepareMix to be sequential
2017-01-25 21:18:03 +00:00
Zach Pomerantz
66c82f3193
clean AudioMixerSlave::addStreamToMix
2017-01-25 21:18:03 +00:00
Zach Pomerantz
6cfaa624a5
mv helpers from AudioMixerSlave
2017-01-25 21:18:03 +00:00
Atlante45
f540c94113
Merge branch 'master' of https://github.com/highfidelity/hifi into ess-pr
2017-01-25 13:06:49 -08:00
kunalgosar
7b896f961b
change server to default to not auto-muting
2017-01-25 13:00:57 -08:00
Zach Pomerantz
9bdea98d21
clean AudioMixerSlave::mix
2017-01-25 19:24:12 +00:00
Zach Pomerantz
275e337a80
rm unused LOUDNESS_TO_DISTANCE_RATIO
2017-01-25 18:55:54 +00:00
Zach Pomerantz
4ac0df8f8d
throttle audio by node, not stream
2017-01-25 00:19:38 +00:00
Zach Pomerantz
b7148b338d
change audio-mixer backoff threshold
2017-01-25 00:19:28 +00:00
Zach Pomerantz
997c015b7f
start audio-mix timestamp now
2017-01-24 21:30:07 +00:00
Zach Pomerantz
2bc725e2be
change audio-mixer throttling to integral-based linear throttle/backoff
2017-01-24 21:30:05 +00:00
Zach Pomerantz
b028d84aab
fix audio-mixer sleep
2017-01-24 21:29:20 +00:00
Zach Pomerantz
09f41bff00
improve audio-mixer timings
2017-01-24 21:29:20 +00:00
Zach Pomerantz
39acba5455
throttle audio streams by count using PI controller
2017-01-23 21:30:41 -05:00
Zach Pomerantz
3c9c78ae14
add threadcount to audio-mixer stats
2017-01-23 15:50:54 -05:00
Zach Pomerantz
eba96c45d7
fix warnings for signed comp in AudioMixerSlavePool
2017-01-20 12:25:22 -05:00
Atlante45
529286b2ea
More EntityScriptServer work
2017-01-17 13:47:45 -08:00
Zach Fox
b0b6aeac6c
Ken's feedback
2017-01-13 13:00:03 -08:00
Zach Fox
dcff873cd4
Modify slider function
2017-01-13 12:57:35 -08:00
Zach Fox
8bb200902f
First pass
2017-01-13 12:57:35 -08:00
Zach Fox
afa6d54ac4
Actually fix the behavior...
2017-01-06 14:20:25 -08:00
Zach Fox
dec41f67cc
Fix bugs and generally fix behavior
2017-01-06 13:58:23 -08:00
Ken Cooke
719c89e800
Shared implementation of fastLog2f() and fastExp2f() moved to AudioHelpers.h
2017-01-04 20:06:46 -08:00
Zach Fox
7030c7b0a6
Space bubble improvements ( #9142 )
...
* The space bubble around a player's avatar is now visualized. When another avatar enters a player's bubble, The bubble visualization will appear, a soft tone will play, and the "Bubble" HUD button will flash.
* The space bubble radius setting has been removed. Space bubble size now scales based on avatar scale.
* Space bubble collision detection is now more accurate and reliable.
* CTRL + N toggles the bubble.
* The "Bubble" HUD button has been moved to the proper location.
2016-12-12 14:22:54 -08:00
Zach Pomerantz
5969c1eb06
ensure all accesses of audio pool num are guarded
2016-12-08 14:12:16 -05:00
Zach Pomerantz
eafbeb6d44
Revert "avoid pessimizing audio slave lock contention"
...
This reverts commit 3508e71753
.
2016-12-08 14:10:00 -05:00
Zach Pomerantz
3508e71753
avoid pessimizing audio slave lock contention
2016-12-08 01:53:25 +00:00
Zach Pomerantz
6e0ad5a7ed
initialize audio threads
2016-12-08 01:52:58 +00:00
Zach Pomerantz
ce9346f524
fix thread cleanup of audio pool
2016-12-07 18:43:02 -05:00
Zach Pomerantz
d2ed3caf02
respect audio thread pool size setting
2016-12-07 13:40:22 -05:00
Zach Pomerantz
c4e435a166
simplify locks in AudioMixerSlavePool
2016-12-07 01:17:34 +00:00
Zach Pomerantz
b2f995d3df
algorithm->nestedEach in LimitedNodeList
2016-12-07 00:03:30 +00:00
Zach Pomerantz
28960681d9
limit audio pool to sane thread count
2016-12-06 23:57:38 +00:00
Zach Pomerantz
259775e163
clarify lock requirement in audio slave pool
2016-12-06 23:56:11 +00:00
Zach Pomerantz
2fc904b990
fix typos
2016-12-06 23:54:13 +00:00
Zach Pomerantz
557ab43f0f
add a timeout for errant audio slave threads
2016-12-06 23:53:16 +00:00
Zach Pomerantz
132e9bd644
add timings to AudioMixer
2016-12-06 23:51:06 +00:00
Zach Pomerantz
2a6e46aa0c
rm static buffer from AudioMixerSlave
2016-12-06 20:15:39 +00:00
Zach Pomerantz
d899391a1a
fix audio hist array initializer for WIN32
2016-12-02 04:12:44 +00:00
Zach Pomerantz
800744a139
fix audio pool shutdown and add single threading
2016-12-01 23:03:37 +00:00
Zach Pomerantz
78bc5cf502
fix audio pool resizing
2016-12-01 21:25:56 +00:00
Zach Pomerantz
2c42bb0aa8
time audio mixing frames
2016-11-30 18:18:36 -05:00
Zach Pomerantz
8a6dcdeb68
mix audio with single node list read lock
2016-11-30 16:37:34 -05:00
Zach Pomerantz
b4638105e3
expose audio mixer threads to gui
2016-11-29 13:32:10 -05:00
Zach Pomerantz
7a440def87
add AudioMixerSlavePool
2016-11-28 17:59:29 -05:00
Zach Pomerantz
41ef105456
clean up AudioMixerSlave
2016-11-28 17:07:24 -05:00
Zach Pomerantz
bf137cd589
break AudioMixer slave/stats into own files
2016-11-28 16:50:47 -05:00
Zach Pomerantz
2e619b230d
add AudioMixerStats
2016-11-28 16:50:42 -05:00
Zach Pomerantz
192f4791d5
move mixing into AudioMixerSlave
2016-11-28 16:50:26 -05:00
Zach Pomerantz
891084e9db
modularize audio mixing code
2016-11-28 16:48:53 -05:00
Zach Pomerantz
028ac5264f
consolidate AudioMixer slots
2016-11-28 16:26:53 -05:00
Zach Pomerantz
0170379d3c
rm unused vars
2016-11-27 18:09:05 -05:00
Brad Hefta-Gaub
fe709f51de
personal space feature
2016-11-19 16:30:15 -08:00
Stephen Birarda
dadcaa9959
don't send audio/avatar data for ignoree to ignored node
2016-11-14 10:12:36 -08:00
David Kelly
6063a63f44
cr feedback
2016-11-11 14:23:59 -08:00
David Kelly
9c8f22e0e7
straight to audio mixer
...
since we can get the canKick there too. (doh)
2016-11-11 09:30:58 -08:00
David Kelly
80d4033767
oops forgot one thing...
2016-11-10 17:13:50 -08:00
David Kelly
285520dff7
Initial cut
...
No script work yet, just first stab at underpinnings
2016-11-10 16:24:35 -08:00
Stephen Birarda
f56a5d1d98
elevate permissions required for mute environment
2016-11-10 09:23:01 -08:00
David Kelly
21d1f40f59
Seems we were not deleting the right hrtfs when a node is killed
...
Simple fix, just make sure we delete the hrtfs associated with the
killedNode. The test is to delete some nodes (agents) and make sure
nothing bad happens to audio mixer, or the audio itself.
2016-11-04 13:15:02 -07:00
David Kelly
920cd90afa
CR feedback
2016-11-03 13:23:05 -07:00
David Kelly
ec0382daf7
PR feedback
...
Completely deleting hrtfs incorrectly. This seems to be better, we
only want to delete HRTF for the QUuid() stream for the killed node in each
node's list of HRTFs.
2016-11-01 18:29:31 -07:00
David Kelly
0b80610e65
Needed to properly remove hrtfs for avatar audio
2016-11-01 15:09:14 -07:00
David Kelly
e63e9bc017
Remove HRTFs for Avatar too
...
Turns out there was already a function for that, if you just call
removeHRTFForStream without a 2nd param, it appears to just delete
the audio with uuid of QUuid() which is the avatar's mic. That is
what we want, so cool.
2016-10-31 13:25:22 -07:00
David Kelly
80e38c395e
Send KillAvatar to AudioMixer too
...
So it can remove the listening agent avatar audio streams. Otherwise
they stick around forever, and eventually swamp the audio mixer.
2016-10-31 10:35:16 -07:00
David Kelly
e3a22618d1
CR feedback
2016-10-27 17:49:43 -07:00
David Kelly
52a14bf5c3
Merge branch 'master' of github.com:highfidelity/hifi into dk/moreACAudioArtifacts
2016-10-27 16:52:25 -07:00
David Kelly
292dd67433
cleanup
2016-10-27 16:04:30 -07:00
Howard Stearns
d2b83b47ba
Merge pull request #8936 from zzmp/clean/audio-mixer
...
clean audio mixer
2016-10-27 15:57:16 -07:00
David Kelly
5e4f539144
AudioMixer flushes now
...
And protected agent from case with no codec
2016-10-27 14:46:04 -07:00
Zach Pomerantz
a7d54b8e0a
rm unused lastCutoffRatio
2016-10-27 14:38:17 -07:00
Zach Pomerantz
c14a928db5
convert size_t to int
2016-10-27 14:34:10 -07:00
Zach Pomerantz
32040a9047
add stat for streams in audio mixer
2016-10-27 13:55:17 -07:00
Zach Pomerantz
20bac5aeef
clean up broadcastMixes
2016-10-27 13:47:00 -07:00
Zach Pomerantz
9e9f8666ce
clean up handleMismatchAudioFormat comment
2016-10-27 13:46:53 -07:00
Zach Pomerantz
04e5d8e302
initialize audio client data
2016-10-27 13:46:42 -07:00
Zach Pomerantz
3e16dabb75
fix audio mixer throttling
2016-10-27 13:46:33 -07:00
David Kelly
6a61762659
First try
...
AudioMixer has same issue transitioning from silence to encoded
audio and back, it seems. This makes that go away, but I don't
like it. Better to support a flush function in the encoder but
for now lets do this and be sure it is the entire issue.
2016-10-26 17:41:34 -07:00
David Kelly
bdcb58bf8b
Merge pull request #8847 from sethalves/fix-audio-mixer-data-race-1
...
fix some data-races in logging system
2016-10-21 15:33:40 -07:00
Clément Brisset
b63eb6ba9f
Merge pull request #8665 from zzmp/feat/audio-stats
...
move audio stats to QML/JS, with graphs
2016-10-20 16:43:49 -07:00
Seth Alves
af5be8d1d9
reduce data-races in logging
2016-10-18 15:59:00 -07:00
Seth Alves
0c6dedff45
avoid various data-races related to stats collection and delivery
2016-10-18 13:05:53 -07:00
Zach Pomerantz
43c40aa090
avoid repetition with fade on injectors
2016-09-29 15:25:41 -07:00
Zach Pomerantz
055fabf57b
fix audio AppendFlag semantics
2016-09-26 18:51:51 -07:00
Zach Pomerantz
d3132d8746
denote terminal audio stats packet
2016-09-26 16:50:51 -07:00
Zach Pomerantz
b9c4018b8e
expose AudioStats to qml/js
2016-09-26 15:35:29 -07:00
Zach Pomerantz
562e8e0c65
disable excessive audio settings logging
2016-09-23 11:58:02 -07:00
Zach Pomerantz
e2ff738fc3
strip unused audio settings
...
- remove parameters on the jitter buffer algorithm, these are now static
- remove parameters on the output starve detection algorithm, now static
- move interface audio settings to the Developer menu
2016-09-21 17:35:27 -07:00
Zach Pomerantz
177466e4c7
calculate unplayed ms on all streams/buffers as max
2016-09-15 17:54:41 -07:00
Seth Alves
87dbfa7e47
add -Wsuggest-override to compile flags and deal with fallout
2016-08-18 09:51:41 -07:00
Brad Hefta-Gaub
7cbc0bcabe
Merge pull request #8366 from kencooke/master
...
optimized distance-attnuation calculation
2016-08-05 16:45:35 -07:00
Ken Cooke
7629e34586
optimized distance-attnuation calculation
2016-08-04 11:05:34 -07:00