Ken Cooke
e82d751dac
Fix typo
2016-09-14 08:25:41 -07:00
Ken Cooke
25920732ec
Remove unused buffer
2016-09-14 08:23:53 -07:00
Ken Cooke
96313a421c
Cleanup the confusion of using null-resampler for channel conversion
2016-09-14 08:22:18 -07:00
Ken Cooke
c555e369c8
Handle the case when resampling is not needed
2016-09-14 06:37:09 -07:00
Ken Cooke
27d24eb79b
Fix compiler warning
2016-09-13 20:56:36 -07:00
Ken Cooke
ed9061040a
Better Android settings
2016-09-13 20:16:23 -07:00
Ken Cooke
f1455ab157
Remove unneeded buffers
2016-09-13 20:06:44 -07:00
Ken Cooke
724df38df0
Optimize the audio pipeline. Use float mixBuffer and apply reverb at 24khz
2016-09-13 16:11:06 -07:00
Brad Hefta-Gaub
7c3c05a450
Merge pull request #8584 from zzmp/fix/audio-starve-detection
...
fix audio client starve detection
2016-09-13 09:08:20 -07:00
Zach Pomerantz
e785c0cdf8
add test for audio jitter
2016-09-08 17:50:11 -07:00
Zach Pomerantz
2a2673d898
bring audio starve check to standard
2016-09-08 15:26:09 -07:00
Zach Pomerantz
d7643ef2a0
fix audio client starve detection
2016-09-08 14:25:33 -07:00
Ken Cooke
1a6af49b3d
Support for even more back-end sample rates
2016-08-30 16:10:11 -07:00
Ken Cooke
cb5bded7c1
Add support for more back-end sample rates
2016-08-30 14:37:33 -07:00
Ken Cooke
9187b4aa7d
More complete fix for audio threading failures. Qt keeps an internal Q_GLOBAL_STATIC list of devices, which is referenced at device start() but clobbered by availableDevices(). Now protected by a mutex.
2016-08-30 12:57:29 -07:00
Ken Cooke
d2b33e00bd
Fix audio startup failures. Directly calling the static method QAudioDeviceInfo::availableDevices() was not thread-safe.
2016-08-30 10:13:08 -07:00
Ken Cooke
28a99a7a03
Merge branch 'master' of https://github.com/highfidelity/hifi into low-latency-audio
2016-08-29 12:38:17 -07:00
Ken Cooke
1ab35797b1
Drastically reduce the audio capture buffering on Windows.
...
With device detection on another thread and WASAPI back-end, the large capture buffer (resulting from CALLBACK_ACCELERATOR_RATIO) is no longer needed.
2016-08-25 16:09:25 -07:00
Ken Cooke
c0caea1ffd
PR feedback
2016-08-24 10:32:29 -07:00
Ken Cooke
b4d143fe13
PR feedback
2016-08-24 10:19:09 -07:00
Ken Cooke
8fbf5a9e8b
PR feedback
2016-08-24 10:16:43 -07:00
Ken Cooke
4b2778f02d
Re-implement the continuous detection of device changes for all platforms, using a background thread. This prevents the glitches caused by calling checkDevices() on the audio processing thread.
2016-08-20 12:22:47 -07:00
Ken Cooke
3583bdecbb
Fix for calculateDeviceToNetworkInputRatio() which was completely broken.
...
Running the audio back-end at 44.1k now works correctly.
2016-08-18 16:56:26 -07:00
Seth Alves
87dbfa7e47
add -Wsuggest-override to compile flags and deal with fallout
2016-08-18 09:51:41 -07:00
Ken Cooke
7202d132c5
Remove 22050 from the preferred list of back-end sample rates.
2016-08-16 16:57:28 -07:00
Ken Cooke
2326696d54
Disabled the continuous polling for audio device changes on Windows.
...
It necessitated extra buffering to prevent periodic dropouts in the audio stream.
2016-08-16 16:53:51 -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
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
David Kelly
3df373252f
Several minor things
...
We could only partially fill the _scratchBuffer - .wav files may not
be exactly N frames long. Doh.
While at it, I needed to call finishLocalInjection() after local
injectors are done, and the access to the injector vector needs to
be locked, given that we do a QtDirectConnection with the networking
and thus the outputLocalInjectors is on a different thread.
The clicking was just 0-ing out the _scratchBuffer.
2016-07-18 14:00:41 -07:00
Brad Hefta-Gaub
dc2741950a
Merge pull request #8259 from kencooke/improved-hrtf
...
Fix the AudioMixer distance attenuation.
2016-07-15 22:36:51 -07:00
Ken Cooke
1ee608ad2c
Cleanup
2016-07-15 18:23:12 -07:00
Brad Hefta-Gaub
878a01cbaf
Merge pull request #8242 from kencooke/improved-hrtf
...
Improved HRTF
2016-07-15 09:02:15 -07:00
Ken Cooke
2674df6095
Fix the distance-attenuation model (for injectors only)
...
The original attenuation model seems wrong, under-attenuating at close distance but completely muting after 45m.
This uses a physics-based model of -6dB per doubling of distance in free space, for the injectors. The AudioMixer model and domain settings still need to be reworked in a future PR.
2016-07-14 18:34:07 -07:00
Brad Davis
44500889f8
Remove 'updating reverb' logspam
2016-07-14 13:34:56 -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
Chris Collins
1c6b5e89ac
Merge pull request #8239 from ZappoMan/codecPlugins
...
fix razor blades in your ears when switching between domains with no codecs installed
2016-07-13 17:25:47 -07:00
Brad Hefta-Gaub
a267843e3e
fix razor blades in your ears when switching between domains with no codecs installed
2016-07-13 16:37:30 -07:00
David Kelly
dde4d16759
Merge branch 'master' of github.com:highfidelity/hifi into dk/firstLameAttempt
2016-07-13 15:15:35 -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
3955e03aa2
Fix for build error
...
doh!
2016-07-12 12:15:12 -07:00
Brad Hefta-Gaub
71b6210c4e
removed some log spam
2016-07-12 10:18:37 -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
4f80c77b77
PR feedback
...
simple enough - not sure why I had an issue with this in the first
place.
2016-07-11 10:36:55 -07:00
David Kelly
46dc5bea04
cleanup from PR comments
2016-07-11 09:31:05 -07:00
David Kelly
80d33ee251
Working now as frame-at-a-time
...
So localOnly sounds get HRTF'd, one network frame at a time. Less
processing (upsampling, limiting, etc...) than doing this at the
end of the pipeline (in the AudioOutputIODevice::readData call).
2016-07-11 09:11:23 -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