Zach Pomerantz
061668cba4
use lock-free pipe for local audio in device callback
2017-01-22 00:25:08 -05:00
Zach Pomerantz
bb247fe8a3
rename AudioMixRingBuffer
2017-01-20 14:48:54 -05:00
Zach Pomerantz
75281099bd
add conformant explicit instantiation for AudioRingBuffers
2017-01-20 14:33:54 -05:00
Zach Pomerantz
02e62938a4
add AudioRingMixBuffer
2017-01-20 12:29:44 -05:00
Zach Pomerantz
95a7b38ea4
templatize AudioRingBuffer
2017-01-20 12:29:44 -05:00
Zach Fox
b0b6aeac6c
Ken's feedback
2017-01-13 13:00:03 -08:00
Ken Cooke
083c7bc523
Add a local HRTF gain adjustment. Gain adjustments are persistent and properly interpolated.
2017-01-11 10:05:39 -08: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
Ken Cooke
a42ac89a6d
Faster HRTF
...
New AVX2 implementation of FIR_1x4() achieves 24 FLOPS per clock on HSW/BDW/SKL
Removed old AVX implementation
32-byte alignment of SIMD buffers and tables
Fixed the poorly optimized code produced by GCC -O2
2016-12-30 13:47:31 -08:00
Andrew Meadows
b56a15b60a
Merge pull request #9273 from kencooke/audio-ambisonic-src2
...
Improved audio resampler
2016-12-27 17:07:56 -08:00
Ken Cooke
a2ea6bf36e
Improved audio resampler
...
Added LQ mode (2x faster).
Added HQ mode (2x slower), intended for offline resampling.
Default (MQ) quality is slightly improved (512 filter phases in irrational mode).
2016-12-24 11:10:35 -08:00
Ken Cooke
fc2c2a1906
fix compiler warnings
2016-12-24 10:06:30 -08:00
Ken Cooke
f5d52c3d3b
64-bit code optimizations
...
Use size_t for inner-loop array indexing, to avoid extraneous MOVSXD instructions when compiled with MSVC x64.
2016-12-24 09:00:23 -08:00
Ken Cooke
b878051cd9
Ambisonic limiter, with gain linking between all channels to preserve imaging
2016-12-24 08:42:56 -08:00
Brad Hefta-Gaub
dbbed462b4
cleanup naked qDebug() calls
2016-12-19 22:24:25 -08:00
David Kelly
b68a07e930
Merge pull request #9197 from davidkelly/dk/injectorVolume
...
No longer applying volume when reading audio injector buffer
2016-12-16 15:11:33 -08:00
Ken Cooke
b4994a3d89
Ambisonic resampler, optimized using AVX2.
...
int16_t and float versions.
Removed unused SSE2 version.
Removed unused getExactInput().
Refactored to remove nested #ifdefs.
2016-12-14 15:18:41 -08:00
David Kelly
a8157ae2cd
Typo, plus some CR feedback
2016-12-13 17:48:30 -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
Zach Fox
44c6eb303b
Fix the bug
2016-12-13 12:46:31 -08:00
Clément Brisset
050c0fe14a
Merge pull request #9188 from kencooke/audio-wav-parser
...
Fix and improve the WAV file loader
2016-12-12 17:51:20 -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
David Kelly
3f3d922eca
No longer applying volume when reading audio injector buffer
...
Since we also apply the gain in HRTF (on both server and client), the
mono sources sort of had volume^2 applied to them.
2016-12-12 12:01:02 -08:00
Ken Cooke
e4b5c14ea3
PR feedback
2016-12-07 10:15:55 -08:00
Ken Cooke
0f10975a59
Robust WAV parser.
...
Skips extraneous chunks, handles WAVE_FORMAT_EXTENSIBLE, supports arbitrary sample rates.
2016-12-07 08:44:10 -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
Ken Cooke
452f081366
Add support for WAV assets with arbitrary sample rate, not just 48khz. Fast path when already 24khz.
2016-11-30 14:56:11 -08:00
Ken Cooke
7ad384d731
reformat to meet Coding Standard, more explicit license
2016-11-30 10:44:27 -08:00
Ken Cooke
812d28dbff
Fix compiler warnings
2016-11-29 14:39:49 -08:00
Ken Cooke
68085947a0
replace tabs with spaces
2016-11-29 14:12:41 -08:00
Ken Cooke
5d05fd389f
First-order Ambisonic renderer, optimized for AVX2
2016-11-29 12:53:19 -08:00
Ken Cooke
ec53c6a030
Add support for mono or multichannel audio output.
...
At the end of the audio pipeline, optional upmix/downmix to the device channel format.
2016-11-17 06:56:49 -08:00
Zach Pomerantz
3bea1069f2
fix unit conversion for audio fade factor
2016-10-21 16:10:33 -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
Zach Pomerantz
afce8c4a45
STEREO_FACTOR -> AudioConstants::STEREO
2016-10-05 13:02:28 -07:00
Zach Pomerantz
5af95c6062
store channels on audio stream
2016-10-05 12:04:24 -07:00
Zach Pomerantz
05aded5c9d
differentiate smaples/frames from dropped audio
2016-10-04 18:45:03 -07:00
Zach Pomerantz
00fabb77b4
use proper audio frame naming
2016-10-04 18:27:56 -07:00
Zach Pomerantz
972a611d03
retain stereo on dead audio resampling
2016-10-04 17:54:20 -07:00
Zach Pomerantz
768354e49f
loopback local injectors on server echo
2016-09-29 15:25:17 -07:00
Zach Pomerantz
055fabf57b
fix audio AppendFlag semantics
2016-09-26 18:51:51 -07:00
Brad Hefta-Gaub
ee6719f94a
Merge pull request #8652 from zzmp/fix/audio-injector
...
fix injector restart fail on lack of local interface
2016-09-23 16:07:16 -07:00
Zach Pomerantz
912db1c0e1
silence audiostream logging
2016-09-23 15:32:23 -07:00
Chris Collins
be33524990
Merge pull request #8636 from zzmp/clean/audio-config
...
strip unused audio settings, hide the rest
2016-09-23 15:08:48 -07: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
09a96796de
bring audio stream initializers to standard
2016-09-23 11:58:15 -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
9e2ec27b29
always play audio injectors locally
2016-09-21 17:20:51 -07:00
Chris Collins
3d9f231543
Merge pull request #8609 from zzmp/fix/audio-stats
...
fix audio network stats
2016-09-19 09:08:35 -07:00