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
Brad Hefta-Gaub
ca3a194454
implment coded renegotiation in client if for some reason unexpected audio codecs come in to inbound stream
2016-08-02 15:30:03 -07:00
Brad Hefta-Gaub
c6ffd81c4b
some cleanup
2016-07-18 22:42:38 -07:00
Brad Hefta-Gaub
2e63aba8c9
when getting unexpected codec in the mixer, send a message to the client to select a different codec
2016-07-18 22:29:05 -07:00
Brad Hefta-Gaub
20824f038c
include codec in audio stream packets so that each side can discard packets that don't match
2016-07-18 21:59:44 -07:00
Ken Cooke
59ac2a789f
Fix the AudioMixer distance attenuation.
...
The zone settings are still used, and still match the documentation where 0 = no attenuation and 1 = max attenuation. The default is now 0.5 which corresponds to -6dB per doubling of distance. This is the attenuation for a spherical wave in the free field.
2016-07-15 18:07:19 -07:00
Ken Cooke
7a4bdc1779
enable in Interface and AudioMixer, by passing distance between source and listener
2016-07-14 11:30:55 -07:00
Ken Cooke
d7399f5781
Improved HRTF.
...
Adds a distance filter to model the frequency-dependent attenuation of sound propagation in open air.
Optimized using SIMD and computing all biquads in parallel. Performance impact is almost zero.
Filter updates are continuously interpolated and clean to -90dB.
Not enabled yet (distance hardcoded to 0.0f)
2016-07-14 10:34:42 -07:00
Stephen Birarda
b68958317a
re-send ignore requests when mixers are re-added
2016-07-13 15:06:31 -07:00
Stephen Birarda
095bd7e6c8
cleanup logging, move packet parsing to mixers
2016-07-13 15:06:31 -07:00
Stephen Birarda
a134ac72de
add packet type and plumbing for node ignore
2016-07-13 15:06:31 -07:00
Brad Hefta-Gaub
6d7c8d5759
fix crash in audio-mixer if no plugins installed
2016-07-12 16:11:43 -07:00
Brad Hefta-Gaub
71b6210c4e
removed some log spam
2016-07-12 10:18:37 -07:00
Brad Hefta-Gaub
7d608ba592
groundwork for injector support
2016-07-10 21:01:20 -07:00
Brad Hefta-Gaub
ed9715ae5f
some cleanup, proper memory allocation/deallocation
2016-07-10 17:40:58 -07:00
Brad Hefta-Gaub
ba6bb24595
rework plugins to allow different decoder/encoder instances per streams
2016-07-10 16:49:03 -07:00
Brad Hefta-Gaub
a71baf5601
handle codec prioritization, handle multiple codec choices
2016-07-08 21:18:03 -07:00
Brad Hefta-Gaub
126e5c2926
codec pipeline working, zlib example
2016-07-08 14:34:44 -07:00
Brad Hefta-Gaub
3c6447326e
more codec plumbing
2016-07-07 21:24:24 -07:00
Brad Hefta-Gaub
7a4b11ee97
more work on codecs
2016-06-27 13:06:19 -07:00
Brad Hefta-Gaub
d7bffc3eab
first cut at negotiating codecs
2016-06-23 17:14:41 -07:00
Brad Hefta-Gaub
f65f99a3e0
fix warning
2016-05-29 12:34:57 -07:00
Brad Hefta-Gaub
7fd531541c
simplify
2016-05-29 12:08:10 -07:00
Brad Hefta-Gaub
1e7cd06d0e
add audio peak limiter to audio mixer
2016-05-28 20:34:27 -07:00
Stephen Birarda
93cf5a1035
fixes for CR comments
2016-04-18 16:53:02 -07:00
Stephen Birarda
1d256be7ee
fix random stats sending for AudioMixer clients
2016-04-18 16:04:20 -07:00