milad nazeri
1121fe8da0
fix tabs
2018-04-23 21:47:53 -07:00
milad nazeri
4ac06fe99f
Updating previous jsdocs
2018-04-22 22:22:33 -07:00
milad nazeri
e9b9c05b5d
removed cruft
2018-04-22 08:51:47 -07:00
SamGondelman
3b4b43cf66
try to fix audio crash on startup
2018-04-20 10:23:47 -07:00
Ken Cooke
bcf893db18
Merge pull request #12586 from kencooke/audio-peakmeters-fix
...
Fix crash when closing the Audio menu
2018-03-13 07:52:37 -07:00
Dante Ruiz
3a39fca268
made requested changes
2018-03-09 10:09:51 -08:00
Dante Ruiz
c49d0557fc
fixing check box issues
2018-03-09 09:29:37 -08:00
Ken Cooke
91b7acec1f
Fix crash when closing the Audio menu. On some machines, checkPeakValues takes long enough that timer callbacks overlap and activeClients gets clobbered while in use.
2018-03-07 11:06:53 -08:00
John Conklin II
7bc3848c36
Merge pull request #12533 from druiz17/stereo-checkbox
...
Adding Stereo checkbox in Audio settings
2018-03-05 12:45:01 -08:00
Dante Ruiz
55d8cfd4c1
make sure dont make audio devices that don't use stereo use stereo
2018-03-02 10:56:44 -08:00
Sam Gateau
88ecfe7895
Merge pull request #12464 from jherico/android_dev
...
Android Master
2018-03-01 17:22:34 -08:00
Ken Cooke
bb2f3cac2c
Use named constant for the onset of near-field corrections (1 meter)
2018-02-27 08:51:55 -08:00
Ken Cooke
f25b8e8df0
Refactor distance attenuation for near-field HRTF.
...
Adds near-field attenuation from 0.125m to 1m, calibrated to 0dB at 1m. Overload will trigger dynamic range compression at the peak-limiter.
2018-02-22 16:05:01 -08:00
Gabriel Calero
a2f6548d1d
Make slot declarations non-conditional
2018-02-12 13:45:56 -03:00
Gabriel Calero
a91118027d
Remove dead code and extra logs
2018-01-26 18:14:43 -03:00
Gabriel Calero
ed1abb3a41
Restoring adaptive audio buffer management
2018-01-15 18:30:32 -03:00
Gabriel Calero
f889782250
Merge remote-tracking branch 'github/android' into android_audio_fixes
2018-01-15 18:28:31 -03:00
Cristian Luis Duarte
21f1c0e275
Android: Make audioInputStateChanged watcher work so it can restart input audio if it stops without a reason. Implement a mechanism that counts last reads in an interval and restart input audio in case of low reads -in these cases (happens particularly on Huawei) there is no call to the audioInputStateChanged method- (Android only)
2018-01-13 06:42:16 -03:00
Ken Cooke
dfc8c86571
Fix bug when calling switchOutputToAudioDevice() with the active device.
...
Pass QAudioDeviceInfo by value to avoid getting clobbered.
2018-01-11 18:22:34 -08:00
Ken Cooke
db6e70cb24
Fix bug when calling switchInputToAudioDevice() with the active device.
...
Pass QAudioDeviceInfo by value to avoid getting clobbered.
2018-01-11 18:14:16 -08:00
Ken Cooke
7c5085bd24
Handle stereo changes while active, by restarting the codec on both ends
2018-01-11 16:10:50 -08:00
Ken Cooke
6a2e3cc272
Enable stereo codecs for AvatarAudioStream
2018-01-10 15:14:18 -08:00
Ken Cooke
660032d8fb
Fix bug in how emitAudioPacket() determines mono/stereo.
...
Compressed bytes were counted as if audio samples.
2018-01-10 06:54:27 -08:00
luiscuenca
8abe8b9879
move save logic to audioclient
2017-12-05 18:22:14 -08:00
luiscuenca
20d6615417
emit only when recording
2017-12-05 16:13:44 -08:00
luiscuenca
4030688e7a
added record wav files
2017-12-03 11:54:37 -07:00
luiscuenca
027d2d323c
Measure tool and corrections
2017-11-26 22:28:34 -07:00
Bradley Austin Davis
e42068f681
Merge branch 'master' into android_new
2017-09-26 14:31:29 -07:00
Bradley Austin Davis
b93e91b9f3
New android toolchain
2017-09-19 13:45:12 -07:00
vladest
6c32783a09
Merge branch 'master' into audio_devices_split
2017-09-19 17:43:03 +02:00
Brad Hefta-Gaub
c5098abfb9
Merge pull request #10937 from kencooke/zzmp-audio/peak-values
...
Add peak values for all input devices in selection dialog
2017-09-07 11:58:50 -07:00
vladest
6f0229f450
Reworked according to designers request. Do not fall back to default audion output
2017-08-22 23:26:27 +02:00
Ken Cooke
ee752df653
fix typo
2017-08-09 20:11:52 -07:00
Ken Cooke
bcdf13c59c
Add explicit shutdown request, since null device means something else
2017-08-09 19:40:07 -07:00
Ken Cooke
ee6d4dfc14
If real input device fails to start, use dummy input
2017-08-09 17:50:20 -07:00
Ken Cooke
fc5b4be459
bugfix
2017-08-09 16:59:02 -07:00
Ken Cooke
9c6b7306c4
Re-implement callback to Use common handleAudioInput()
2017-08-09 16:58:12 -07:00
Ken Cooke
7daa3ecff3
Handle dummy input callbacks
2017-08-09 15:54:14 -07:00
Ken Cooke
6f2cc9cfeb
When no input device, create dummy input to generate callbacks
2017-08-09 14:01:17 -07:00
Brad Davis
1ecca9fd29
Merge branch 'master' into zzmp-audio/peak-values
2017-08-06 17:21:00 -07:00
Ken Cooke
6ea4ed80cd
Suppress initial PacketType::SilentAudioFrame on audio gate startup
2017-08-03 09:19:08 -07:00
Brad Davis
9f13533560
Ensure input and output device containers are protected by mutex
2017-07-18 08:58:17 -07:00
Seth Alves
972dc4d1b2
more const ref
2017-07-11 19:56:34 -07:00
Seth Alves
c52e7e180a
use const AudioInjectorPointer& in some places
2017-07-11 19:42:03 -07:00
Seth Alves
3670a04d8e
switch bare pointers to AudioInjector objects to be QSharedPointers
2017-07-11 14:24:58 -07:00
Ken Cooke
d6eb731f3a
Merge branch 'master' into audio/peak-values
2017-07-10 21:55:11 -07:00
Brad Davis
8372d73fec
Additional thread safety
2017-06-30 09:15:06 -07:00
Brad Davis
b52dd7b822
Don't use blocking connections on the main thread
2017-06-29 20:45:17 -07:00
Zach Pomerantz
ed49f80322
fix peak check secs->msecs
2017-06-29 17:32:52 -04:00
Ken Cooke
0dbb7a71f3
CR fix: comments instead of ref code
2017-06-28 11:32:24 -07:00
Zach Pomerantz
3f57e5eb4d
implement peakValueListChanged
2017-06-27 17:51:44 -04:00
Ken Cooke
ad970c9f5c
fast compute of HRTF azimuth
2017-06-27 13:45:18 -07:00
Zach Pomerantz
b46219241c
add peakValueListChanged scaffolding
2017-06-26 22:44:31 -04:00
Zach Pomerantz
497ee3a522
add Audio.inputLevel
2017-06-19 17:07:43 -07:00
Brad Davis
ed6620fc51
Merge pull request #10718 from jherico/frame_thread
...
Cleanup and refactoring
2017-06-19 13:31:44 -07:00
Brad Davis
a69cf31f4b
PR feedback and cmake fixes
2017-06-16 16:59:58 -07:00
Zach Pomerantz
3093a73ce1
Merge branch 'master' of github.com:highfidelity/hifi into audio/parity
2017-06-15 15:04:06 -04:00
ZappoMan
d352163d77
fix no audio device from previously removed audio device
2017-06-15 09:24:14 -07:00
Zach Pomerantz
9017738a8d
start device check timer
2017-06-13 18:00:41 -04:00
Zach Pomerantz
0e2976620d
start device check timer
2017-06-13 18:00:09 -04:00
Zach Pomerantz
a8f69bb2e0
Merge branch 'master' of github.com:highfidelity/hifi into audio/parity
2017-06-13 17:41:52 -04:00
Zach Pomerantz
4a39798a97
sticky audio selection
2017-06-13 14:38:52 -04:00
Zach Pomerantz
b37a0239b0
up to reverb (needs cherry-picking)
2017-06-12 18:00:52 -04:00
Chris Collins
4b6c13bc1f
Merge pull request #10646 from ZappoMan/debugAudioProblems
...
Fix for no-audio on clean install
2017-06-10 11:32:42 -10:00
ZappoMan
6fe20f90a3
add better debugging for audio problems
...
use OS default device if settings have no values
2017-06-09 13:36:12 -07:00
Bradley Austin Davis
fc6a278217
Fixing dangling thread issues, consolidating thread management
2017-06-06 15:02:16 -07:00
Zach Pomerantz
954e4979f8
expose Audio.devices.input/output
2017-05-31 20:14:58 -04:00
Ken Cooke
0fe404adbb
Merge branch 'master' of https://github.com/highfidelity/hifi into audio-noisegate-new
2017-05-23 17:31:03 -07:00
Ken Cooke
6b740e855d
Optimize the loudness computation
...
NOTES:
Loudness is now measured post-gating, for improved metering.
Keep original algorithm, since other code depends on loudness behavior.
2017-05-23 14:31:24 -07:00
Ken Cooke
a6a29786ae
Cleanup
2017-05-23 12:53:39 -07:00
Ken Cooke
8608695695
Remove old noise gate
2017-05-23 12:52:29 -07:00
Ken Cooke
175d1be7ca
Implement state-machine to detect gate opening/closing. Fixes bugs with mute.
2017-05-23 12:32:41 -07:00
Ken Cooke
850dbd76c9
Integrate new noise gate
2017-05-23 11:12:36 -07:00
Ken Cooke
986d86ec17
Fix nasty preexisting bug in computing numSamples, where sizeof(SAMPLE_SIZE) incorrectly returns 4 instead of 2.
2017-05-23 10:29:43 -07:00
Ken Cooke
71de3d5ca1
Instantiate new gate with the correct number of channels
2017-05-23 08:40:15 -07:00
Zach Pomerantz
c5a0a1af2f
Merge pull request #10429 from zzmp/audio/close-device
...
Close audio device when switching outputs
2017-05-18 17:18:53 -04:00
Vladyslav Stelmakhovskyi
045e93fb95
Code style fixes #2
2017-05-11 21:49:07 +02:00
Vladyslav Stelmakhovskyi
4290eb21ea
Fixed possible crashes/freezes on input audio switch
2017-05-11 15:41:07 +02:00
Vladyslav Stelmakhovskyi
e4d9772bbc
Fixed crashes/freezes on audio switch
2017-05-11 15:20:36 +02:00
Vladyslav Stelmakhovskyi
2328da3c48
Merge branch 'master' into audio-source-sync
2017-05-10 21:22:40 +02:00
Vladyslav Stelmakhovskyi
2d46f9d30e
Move most of the logic to C++ model, speed up initialization. Reduce number of AudioClient blocking calls to minimum
2017-05-10 21:21:39 +02:00
Zach Pomerantz
5a11911e1d
close audio device when switching
2017-05-09 19:38:52 -04:00
Zach Pomerantz
219062b76a
Merge branch 'master' of github.com:highfidelity/hifi into fix/audio-underrun
2017-05-09 17:32:24 -04:00
Zach Pomerantz
c478f1a752
synchronously fill injector buffer on underrun
2017-05-09 16:34:42 -04:00
Zach Pomerantz
73a3bf413b
update local audio thread name
2017-05-08 20:14:09 -04:00
Zach Pomerantz
b6f652e0ea
use network period multiple for local audio buffer
2017-05-08 20:05:14 -04:00
Zach Pomerantz
defc3c1c4f
Merge branch 'master' of github.com:highfidelity/hifi into fix/audio-bg-join
2017-05-08 19:55:10 -04:00
Vladyslav Stelmakhovskyi
d0111ac0bb
Merge branch 'master' into audio-source-sync
2017-05-08 20:09:34 +02:00
Zach Pomerantz
7db404eba0
recast avoid overwriting buffer logic
2017-05-05 18:16:48 -04:00
Zach Pomerantz
ed3fc004a6
avoid assignment-as-test
2017-05-05 18:15:56 -04:00
Zach Pomerantz
48af83a960
guard against audio injector and local buffer datarace
2017-05-05 17:05:40 -04:00
Zach Pomerantz
cdf6c332a6
prevent overflow of local injectors buffer
2017-05-05 16:29:52 -04:00
Zach Pomerantz
e882e7b648
rm extra lock in audio read
2017-05-05 15:37:01 -04:00
Zach Pomerantz
ca7cd61c64
Merge branch 'master' of github.com:highfidelity/hifi into fix/audio-bg-join
2017-05-05 13:04:01 -04:00
Vladyslav Stelmakhovskyi
d18ac6dd49
Reimplemented Tablet Audio screen using C++ model
2017-04-28 23:02:28 +02:00
Stephen Birarda
da1d93b86c
fix emission of inputReceived in AudioClient
2017-04-25 15:41:37 -07:00
Zach Pomerantz
e9c5b86003
use mutex, not cv
2017-04-25 16:02:43 -04:00
Zach Pomerantz
c27dd446eb
rename to standard
2017-04-25 14:59:30 -04:00
Zach Pomerantz
4a26785eda
cleanup Audio bg threads in cleanupBeforeQuit
2017-04-24 18:21:27 -04:00
Zach Pomerantz
cd2665fc55
standardize Audio bg thread joins
2017-04-24 18:10:50 -04:00
Zach Pomerantz
b6d111369f
Merge pull request #9935 from zzmp/fix/audio-initialization
...
Fix data race in audio output initialization
2017-03-21 00:23:28 -04:00
Zach Pomerantz
20ea13e00a
Merge pull request #9897 from zzmp/record/noise-gate
...
Add AudioNoiseGate to recordings played through Interface
2017-03-21 00:21:20 -04:00
Zach Pomerantz
a68146e7d9
mv audio output init to output thread
2017-03-17 15:31:00 -04:00
Ken Cooke
652c80057e
Merge pull request #9924 from zzmp/fix/noise-delay
...
Use single frame buffer for local audio injectors
2017-03-17 11:24:02 -07:00
Zach Pomerantz
db956f4cc3
use single frame buffer for local audio
2017-03-16 18:06:18 -04:00
Zach Pomerantz
789bb7c855
rename audio(Mic)OutboundPPS
2017-03-15 13:30:39 -04:00
Zach Pomerantz
2d0e11e2d1
add AudioNoiseGate to recording
2017-03-15 13:30:39 -04:00
Zach Pomerantz
b1e5e43faa
mv AudioNoiseGate to audio
2017-03-15 00:15:33 +00:00
Zach Pomerantz
0abcda86a8
mv AudioNoiseGate to audio
2017-03-15 00:14:55 +00:00
ZappoMan
956fdd0933
CR feedback
2017-03-13 12:06:38 -07:00
ZappoMan
099ee1db7f
CR feedback
2017-03-13 12:05:42 -07:00
ZappoMan
3e020ede78
CR feedback
2017-03-13 11:58:43 -07:00
Brad Hefta-Gaub
a38965d628
add more audio stats
2017-03-11 09:50:30 -08:00
Brad Hefta-Gaub
eaea718de1
add various scriping interfaces for managing the audio scope and detecting noise gate transitions
2017-03-10 17:08:19 -08:00
Brad Hefta-Gaub
69fdea3621
fix typo in comment
2017-03-10 11:44:53 -08:00
Brad Hefta-Gaub
a4eac3cbc0
Merge branch 'master' of https://github.com/highfidelity/hifi into fadeInWhenOpeningNoiseGate
...
Conflicts:
libraries/audio-client/src/AudioNoiseGate.cpp
2017-03-10 11:43:30 -08:00
Brad Hefta-Gaub
2d595c1f87
CR feedback
2017-03-08 20:29:32 -08:00
Brad Hefta-Gaub
7acfcf6750
fade in and out when opening/closing the noise gate
2017-03-08 18:15:32 -08:00
Brad Hefta-Gaub
60daaba525
small cleanup
2017-03-08 17:30:44 -08:00
Brad Hefta-Gaub
1bdad89cbe
properly handle silent packet transitions
2017-03-08 17:27:46 -08:00
Chris Collins
de84e07281
Merge pull request #9714 from thoys/fix-recorder-js-playback
...
Fix recorder.js playback in interface
2017-02-23 09:59:37 -08:00
Thijs Wenker
5033e7be11
CR fixes
2017-02-23 18:22:36 +01:00
Thijs Wenker
72eb797910
remove unused encoder (was for testing)
2017-02-21 20:22:29 +01:00
Thijs Wenker
13b2b6086f
Fix recorder.js playback in interface
2017-02-21 19:47:26 +01:00
Anthony J. Thibault
856a38af0c
Fix for audio, toolbar and tablet on macos.
2017-02-17 17:08:23 -08:00
Zach Pomerantz
061668cba4
use lock-free pipe for local audio in device callback
2017-01-22 00:25:08 -05:00
Zach Pomerantz
72f8fa49f9
inline audio convertToFloat
2017-01-20 18:38:21 -05:00
Zach Pomerantz
df051ff8df
maintain network audio in int16_t
2017-01-20 18:37:46 -05:00
Zach Pomerantz
685483b924
do not omit local audio when echoing server audio
2017-01-20 17:52:03 -05:00
Zach Pomerantz
bb247fe8a3
rename AudioMixRingBuffer
2017-01-20 14:48:54 -05:00
Zach Pomerantz
280ed04f74
fix unused warning for channel up/downmix
2017-01-20 14:43:41 -05:00
Zach Pomerantz
5927c089ac
use AudioRingMixBuffer as LocalInjectorsStream
2017-01-20 12:29:44 -05:00
Zach Pomerantz
4f7f3c2a60
mv localInjectorsBuffer to float-based localInjectorsStream
...
The localInjectorsBuffer is based on
AudioRingBuffer, which only accounts for int16_t.
Local injectors are mixed, and so they can exceed
std::numeric_limits<int16_t> before limiting.
This will allow them to remain as float until
limiting (in the device callback) - once the new
stream is implemented.
2017-01-20 12:29:44 -05:00
Zach Pomerantz
c5415f9624
clean audio client logs
2017-01-20 12:29:44 -05:00
Zach Pomerantz
7261b5285e
omit all injector samples on server echo
2017-01-20 12:29:44 -05:00
Zach Pomerantz
492795f7e5
audio client cosmetics
2017-01-20 12:29:44 -05:00
Zach Pomerantz
4c7c7ee3cc
mv audio injector preparation to own thread
2017-01-20 12:29:44 -05:00
Zach Pomerantz
d7085ec685
add audio helpers convertToMix/Scratch
2017-01-20 12:29:44 -05:00
Zach Pomerantz
d1673e554f
simplify audio bytesWritten computation
2017-01-20 12:29:44 -05:00
Zach Pomerantz
0f08abfa14
fix bug in audio samples popped check
2017-01-20 12:29:44 -05:00
Zach Pomerantz
61f7f72c5e
simplify resampling
2017-01-20 12:29:44 -05:00
Zach Pomerantz
42f5af7c39
improve audiostream debug logs
2017-01-20 12:29:44 -05:00
Zach Pomerantz
969d776e1f
queue injector audio after device callbacks
...
Conflicts:
libraries/audio-client/src/AudioClient.cpp
2017-01-20 12:29:44 -05:00
Zach Pomerantz
dee5f63037
rename audio mix/scratch buffers
...
Conflicts:
libraries/audio-client/src/AudioClient.cpp
libraries/audio-client/src/AudioClient.h
2017-01-20 12:29:44 -05:00
Zach Pomerantz
0f1ec63b17
enable injectors in audio device callback
2017-01-20 12:29:44 -05:00
Zach Pomerantz
3a0d874bb5
add injector ring buffer to audio client
2017-01-20 12:29:44 -05:00
Zach Pomerantz
a7ecf41a42
add audio limiting to device callback
2017-01-20 12:29:44 -05:00
Zach Pomerantz
24d53ea13c
rm audio output limiting
2017-01-20 12:29:44 -05:00
Zach Pomerantz
ebe96f9b25
rm injectors from mixed audio processing
2017-01-20 12:29:44 -05:00
Ken Cooke
42e13d1e97
Fix audio failures on systems that return incorrect/unsupported mixFormat
2017-01-14 10:26:13 -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
David Kelly
a8157ae2cd
Typo, plus some CR feedback
2016-12-13 17:48:30 -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
9831d874b5
Remove debugging code
2016-12-06 10:22:58 -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
d69d77d0ee
Refactor the audio device format detection. Only use the native format when Qt can correctly determine it.
2016-11-21 21:36:17 -08:00
Ken Cooke
fd08936fb3
Improved failure logs
2016-11-17 13:42:43 -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
Ken Cooke
b19a44e046
On Windows, set audio format to match the internal mix format.
...
This works around multichannel bugs in the Qt audio framework.
2016-11-15 10:37:32 -08:00
Ken Cooke
30c189e624
channelCount math cleanup
2016-11-15 09:10:05 -08:00
Seth Alves
137730dc50
coding standard
2016-11-01 11:59:28 -07:00
Seth Alves
ae17135a07
lock around quit flag to avoid shutdown race
2016-11-01 11:14:16 -07:00
Seth Alves
3903a51062
fix a couple of crash-on-exits
2016-10-25 13:58:48 -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
Anthony J. Thibault
350977f03e
Speculative fix for crash in AudioClient
2016-10-11 10:49:43 -07:00
Zach Pomerantz
5af95c6062
store channels on audio stream
2016-10-05 12:04:24 -07:00
Zach Pomerantz
972a611d03
retain stereo on dead audio resampling
2016-10-04 17:54:20 -07:00
Ken Cooke
8491254664
Merge branch 'master' of https://github.com/highfidelity/hifi into audio-fixes2
2016-10-03 18:13:43 -07:00
Ken Cooke
46526a309d
Increase audio input buffering on Windows 7
2016-10-03 17:46:09 -07:00
Chris Collins
ca1a7135eb
Merge pull request #8706 from kencooke/audio-fixes
...
Improve support for audio when input rate != output rate
2016-10-03 16:46:56 -07:00
Ken Cooke
9590d2eef9
Fix support for audio when input rate != output rate
2016-10-03 09:08:32 -07:00
Clément Brisset
02991bffab
Merge pull request #8687 from zzmp/feat/injector-loopback
...
loopback local injectors on server echo
2016-09-30 11:21:10 -07:00
Zach Pomerantz
768354e49f
loopback local injectors on server echo
2016-09-29 15:25:17 -07:00
Ken Cooke
858297241b
Even lower audio latency
2016-09-29 12:48:21 -07:00
Zach Pomerantz
efb71c18a1
expose audio injector streams
2016-09-26 18:51:53 -07:00
Zach Pomerantz
055fabf57b
fix audio AppendFlag semantics
2016-09-26 18:51:51 -07:00
Zach Pomerantz
dbe3104f09
fix -Wreorder
2016-09-26 17:23:18 -07:00
Zach Pomerantz
f5e1d4dd2b
notify on audio stream changes
2016-09-26 15:38:21 -07:00
Zach Pomerantz
b9c4018b8e
expose AudioStats to qml/js
2016-09-26 15:35:29 -07:00
Zach Pomerantz
81b6bb3a2d
rm unused DEFAULT_GATE_THRESHOLD
2016-09-21 18:04:07 -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
Ken Cooke
b14f43b11e
Merge pull request #8610 from zzmp/test/audio-jitter
...
add audio jitter simulator testing tool
2016-09-21 16:43:36 -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
Zach Pomerantz
b6d093889c
add AudioConstants::SAMPLE_SIZE
2016-09-16 14:20:50 -07:00
Zach Pomerantz
45b306fc97
fix preference for jitter sim
2016-09-16 12:14:57 -07:00
Zach Pomerantz
80bce953f7
justify jitter simulation
2016-09-16 11:40:37 -07:00
Zach Pomerantz
177466e4c7
calculate unplayed ms on all streams/buffers as max
2016-09-15 17:54:41 -07:00
Zach Pomerantz
53f5899a69
add audio jitter simulator
2016-09-15 14:51:39 -07:00
Zach Pomerantz
9792d025fa
clean up audio stats
2016-09-15 13:09:06 -07:00
Seth Alves
4470338663
catagorize some qDebugs
2016-09-14 21:39:45 -07:00
Ken Cooke
ad97a15e8b
Handle another case when resampling is not needed
2016-09-14 09:54:15 -07:00
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
David Kelly
bc7123d701
comment out logging for now
2016-07-08 13:59:49 -07:00
David Kelly
7a9b3978e9
Better processing of audio
...
A couple things Ken suggested. First off, there are now AudioSRC
calls for floats, which simplfied stuff a bit. Then, I switched to
grabbing network packets first, and only pulling at most that amount
of audio from the local injectors. That improves things - the
occasional artifacts (when the injectors got more data than the
network for instance) are gone.
Also, fixed build issue (unused variable warning) for mac and android.
2016-07-08 13:01:06 -07:00
Brad Hefta-Gaub
3c6447326e
more codec plumbing
2016-07-07 21:24:24 -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
Brad Hefta-Gaub
9333c7dcca
Merge branch 'master' of https://github.com/highfidelity/hifi into codecPlugins
2016-07-06 13:26:19 -07:00
Brad Hefta-Gaub
7a4b11ee97
more work on codecs
2016-06-27 13:06:19 -07:00