Commit graph

237 commits

Author SHA1 Message Date
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
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
Ken Cooke
25920732ec Remove unused buffer 2016-09-14 08:23:53 -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
Zach Pomerantz
e785c0cdf8 add test for audio jitter 2016-09-08 17:50:11 -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
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
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
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
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
David Kelly
dde4d16759 Merge branch 'master' of github.com:highfidelity/hifi into dk/firstLameAttempt 2016-07-13 15:15:35 -07:00
David Kelly
3955e03aa2 Fix for build error
doh!
2016-07-12 12:15:12 -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
ba6bb24595 rework plugins to allow different decoder/encoder instances per streams 2016-07-10 16:49:03 -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
Brad Hefta-Gaub
d7bffc3eab first cut at negotiating codecs 2016-06-23 17:14:41 -07:00
Brad Hefta-Gaub
c0be9aec6a cleanup the callers of the resamplers for mic to net and net to speaker, remove loopback resampler 2016-06-23 10:28:29 -07:00
Brad Davis
97e96f7b67 PR comments 2016-03-31 13:19:26 -07:00
howard-stearns
adb33e7dca Up default initial buffer frame size to the value from before. 2016-02-18 16:32:18 -08:00
howard-stearns
d328b82c3c Default output buffer size is 1 frame, and automatic updates don't persist
changes (just in-memory).
2016-02-16 12:09:44 -08:00
Howard Stearns
4255b1f9aa Change output buffer size on correct thread, and turn on automatic resizing on all platforms instead of just mac. 2016-02-16 11:22:01 -08:00
Stephen Birarda
445662f5ae clean sweep of old now unused audio files 2016-02-08 15:38:12 -08:00
Ryan Huffman
89c412c324 Merge branch 'master' of https://github.com/highfidelity/hifi into proto-received-message 2015-12-04 11:38:28 -08:00
Ryan Huffman
07d21514c5 Merge branch 'master' of https://github.com/highfidelity/hifi into proto-received-message 2015-11-19 10:47:37 -08:00
Ken Cooke
998f6e099f Merge branch 'master' of https://github.com/highfidelity/hifi into audio-reverb 2015-11-19 08:39:55 -08:00
Ken Cooke
2489eaa30e Changed the audio pipeline to allow stereo reverberation, using separate source (loopback audio) and listener (received audio) reverbs. 2015-11-19 08:32:13 -08:00
Ryan Huffman
2a416ebc61 Merge branch 'master' of https://github.com/highfidelity/hifi into received-message 2015-11-18 16:52:23 -08:00
Brad Davis
5b8047ded4 Make recording and playback work in interface, playback in agent 2015-11-18 14:04:45 -08:00
Ken Cooke
1a7f06dc95 Removed the commented-out Gverb code 2015-11-18 10:26:06 -08:00
Ken Cooke
c61dad108c Replace Gverb with new reverb 2015-11-18 09:16:18 -08:00
Brad Davis
900f425f35 Recording fixes 2015-11-17 15:18:31 -08:00
Brad Davis
d099f61170 Updating audio record/playback mechanism to more closely match actual audio input 2015-11-16 14:57:24 -08:00
Ryan Huffman
7682ab00e3 Add ReceivedMessage and receive progress 2015-10-15 14:09:53 -07:00
Atlante45
0f18db886c Remove 4 Application static methods
- Replace by lambda
- Cleaned up global scope
2015-10-06 13:56:19 -07:00
Ken Cooke
c4bc5233b1 In AudioClient, replace all SOXR with AudioSRC. Used for input-to-network, network-to-output, and loopback resampling. 2015-09-22 23:10:03 -07:00
Brad Davis
380b0cb23c Removing tabs from our javascript and C++ 2015-08-24 15:26:46 -07:00
Howard Stearns
8f616c04fb Fix https://app.asana.com/0/32622044445063/43589567731045 2015-08-02 21:46:39 -07:00
Stephen Birarda
7d60b86f52 kill the PacketLister (AKA Huffman 1 : PacketListener 0) 2015-07-17 09:07:39 -07:00
Stephen Birarda
1f4ac0f17c emit mutedByMixer signal for a noisy mute 2015-07-14 14:30:46 -07:00
Stephen Birarda
fbd287472d make NodeData parseData take only packet 2015-07-14 14:09:00 -07:00
Stephen Birarda
0637f589b5 add PacketListener to help unregister for packets 2015-07-14 13:52:38 -07:00
Stephen Birarda
ede39515d8 update parseData for new network API 2015-07-13 14:26:10 -07:00
Ryan Huffman
28a1059232 Update AudioClient to use QSharedPointer<NLPacket> 2015-07-10 08:45:39 -07:00
Ryan Huffman
5e65f422fa Move mute environment handling to Application 2015-07-09 15:30:25 -07:00
Ryan Huffman
dd9dea7a97 Merge remote-tracking branch 'birarda/protocol' into receive_packets
Conflicts:
	interface/src/DatagramProcessor.cpp
	interface/src/octree/OctreePacketProcessor.cpp
	libraries/entities/src/EntityEditPacketSender.cpp
	libraries/networking/src/LimitedNodeList.h
	libraries/networking/src/NLPacket.h
2015-07-09 14:08:35 -07:00
Ryan Huffman
bb132e354b Update AudioClient to use packet callbacks 2015-07-09 09:24:07 -07:00
Atlante45
fef51682d5 Jurisdiction map uses new packet API 2015-07-08 11:19:57 -07:00
Stephen Birarda
edf7a96b58 update audio client packet send to NLPacket 2015-07-07 10:53:55 -07:00
Seth Alves
b258aeaa3d merge from master 2015-06-18 10:04:14 -07:00
Howard Stearns
b4dfaba55e Incorporate ctrlaltdavid's changes. 2015-06-17 11:59:15 -07:00
Seth Alves
508ae276c6 enable -Wdouble-promotion 2015-06-16 18:23:10 -07:00
Howard Stearns
27f40ea881 Signal Audio.disconnected, and use new hello/goodbye sounds in resources. 2015-06-11 20:33:30 -07:00
Stephen Birarda
666830c04d add a sound once first AM packet received 2015-06-08 11:30:12 -07:00
Atlante45
1dcc2f7988 Fix local injector modifying system volume 2015-05-04 15:53:58 +02:00
David Rowe
9576ad19a7 Move "Stereo Audio" option into developerMenu.js
And rename it "Stereo Input" to better relect what it does.
2015-04-28 14:14:10 -07:00
Atlante45
8f8e4d8dc6 Add generated audio methods to audio interface 2015-04-15 15:49:11 +02:00
Andrew Meadows
94b3c4a3a8 simpler less draconian workaround 2015-02-20 11:57:37 -08:00
Andrew Meadows
aa667464c0 merge upstream/master into andrew/thermonuclear 2015-02-20 08:26:51 -08:00
Andrew Meadows
599ef68df8 fix for scratchy audio on windows 2015-02-20 08:26:11 -08:00
Philip Rosedale
f6f54809d0 Merge pull request #4291 from Atlante45/reverb_smoothing
Reverb smoothing
2015-02-18 15:34:14 -08:00
Andrew Meadows
53855c89e9 Merge pull request #4289 from birarda/dependencies
add gverb and glm as cmake external projects
2015-02-17 10:00:29 -08:00
Atlante45
f279030283 Remove _gverbLocal 2015-02-16 16:15:03 +01:00
Atlante45
b59aaf8a0f Merge branch 'master' of https://github.com/highfidelity/hifi into reverb_smoothing
Conflicts:
	libraries/audio-client/src/AudioClient.cpp
	libraries/audio-client/src/AudioClient.h
2015-02-16 16:14:49 +01:00
Stephen Birarda
4300836810 make gverb a cmake external project 2015-02-13 15:47:35 -08:00
Atlante45
5a81b8a590 Do all the reverb at the input level 2015-02-13 10:17:08 +01:00
Stephen Birarda
ff6f8ea4a1 cleaner cleanup of AudioClient from RenderingClient 2015-02-12 13:14:30 -08:00
Atlante45
438978b855 Fix reverb memory leak 2015-02-10 19:25:12 +01:00
Atlante45
e79e1a547f Merge branch 'master' of https://github.com/highfidelity/hifi into reverb_smoothing
Conflicts:
	libraries/audio-client/src/AudioClient.cpp
	libraries/audio-client/src/AudioClient.h
2015-02-10 16:08:34 +01:00
Stephen Birarda
30afadc7b7 fixes for new settings API 2015-02-04 10:53:05 -08:00
Stephen Birarda
11f3161029 resolve conflicts on merge with upstream/master 2015-02-04 10:38:05 -08:00
Atlante45
4ef87b9919 Merge branch 'master' of https://github.com/highfidelity/hifi into android
Conflicts:
	interface/src/Application.cpp
	interface/src/Application.h
	interface/src/DatagramProcessor.cpp
	interface/src/Menu.cpp
	interface/src/ui/PreferencesDialog.cpp
	interface/src/ui/Stats.cpp
	libraries/audio-client/src/AudioClient.cpp
	libraries/audio-client/src/AudioClient.h
2015-01-28 13:13:32 -08:00
Stephen Birarda
871d688db9 handle input to output resampling 2015-01-23 09:23:46 -08:00
Stephen Birarda
8544fccd84 use soxr resampling for loopback and output 2015-01-22 16:50:42 -08:00
Stephen Birarda
0440576dc2 use libsoxr for input to network resampling 2015-01-22 16:04:57 -08:00
Stephen Birarda
a3529e745b fix warning and compile with Multimedia 2015-01-21 13:28:18 -08:00
Stephen Birarda
343b09c855 remove AudioClient dependency on Recorder 2015-01-21 13:21:37 -08:00
Stephen Birarda
1a87fa93f4 output signals from AudioClient for I/O bytes 2015-01-21 12:33:20 -08:00
Stephen Birarda
707973f1e5 solve collision in PositionGetter with AddressManager 2015-01-21 12:05:12 -08:00
Stephen Birarda
d2af9a2911 have Application pass audio pos/orientation to AudioClient 2015-01-21 12:03:11 -08:00
Stephen Birarda
e28ca27ccd add a position and orientation getter for AudioClient 2015-01-21 11:55:12 -08:00
Stephen Birarda
0eced09f1d intial removal of Audio to audio-client 2015-01-21 11:49:06 -08:00
Renamed from interface/src/Audio.h (Browse further)