Commit graph

871 commits

Author SHA1 Message Date
Ken Cooke
90bf398978 Fix compiler warnings 2016-03-01 10:24:13 -08:00
Ken Cooke
6d9fe967da Fix compiler warnings 2016-03-01 10:16:41 -08:00
Ken Cooke
5043730783 New audio peak limiter library.
Fast lookahead log-domain peak limiter intended to replace all hard-clipping in the audio pipeline.  Converts float audio input (where level may exceed 0dBFS) to 16-bit audio output using very high quality dynamic-range compression and dithering.
2016-03-01 09:13:35 -08:00
Howard Stearns
6a987391d2 Remove debugging code. 2016-02-23 10:55:36 -08:00
Howard Stearns
5d9ee84e63 Extend the test for number of active injectors to apply to injector restarts. 2016-02-23 10:42:39 -08:00
Ken Cooke
aef770fcba fix typo 2016-02-11 16:39:23 -08:00
Ken Cooke
a712222370 fix typos 2016-02-11 16:33:13 -08:00
Ken Cooke
8a49c4b833 use cpuid.h on both GCC and Xcode 2016-02-11 16:09:04 -08:00
Ken Cooke
c4b09c3603 not supported by Clang 2016-02-11 15:15:50 -08:00
Ken Cooke
27494e54c5 use the correct macro for detecting GCC 2016-02-11 12:58:23 -08:00
Stephen Birarda
97cd65cf80 don't use usecTimestampNow for per second actions 2016-02-10 15:07:58 -08:00
Ken Cooke
a875542142 Merge pull request #7053 from birarda/integrate-new-hrtf
Integrate the new audio HRTF in AudioMixer
2016-02-10 07:34:50 -08:00
Stephen Birarda
ac0db04892 repair to wrapped memcpy from AudioRingBuffer 2016-02-09 16:39:22 -08:00
Stephen Birarda
cafcb6b109 remove degree conversion that is not used 2016-02-09 15:25:10 -08:00
Stephen Birarda
5c9f673e38 fix for missing M_PI 2016-02-09 15:05:19 -08:00
Stephen Birarda
7b2726f89b ensure that injectors are cleaned up once inactive 2016-02-09 14:30:59 -08:00
Stephen Birarda
1773233af4 cleanup management of HRTF objects across connected Nodes 2016-02-09 14:30:44 -08:00
Stephen Birarda
a6a694c704 fix mixing bugs post HRTF integration 2016-02-09 11:58:55 -08:00
Stephen Birarda
fd96f0d960 leverage new HRTF in audio-mixer mix preparation 2016-02-08 18:12:25 -08:00
James B. Pollack
ad36e84e24 Merge pull request #7023 from ericrius1/acSoundSearcher
AC Sound Searcher
2016-02-08 17:54:15 -08:00
ericrius1
b60ba0c5a7 can now change loop 2016-02-08 16:22:05 -08:00
Stephen Birarda
445662f5ae clean sweep of old now unused audio files 2016-02-08 15:38:12 -08:00
Ken Cooke
0968118ef7 Removed the commented-out AVX2 detection 2016-02-08 14:51:14 -08:00
ericrius1
bad4a5d601 changed ac script to take into account duration 2016-02-08 12:49:56 -08:00
ericrius1
c169a7cdd5 calculating clip length 2016-02-08 12:36:14 -08:00
ericrius1
6b240dfd5f calculating length of wav file 2016-02-08 12:34:46 -08:00
Ken Cooke
e2066c7719 Disabled AVX support on Mac. XCode is still missing __builtin_cpu_supports (added to Clang in Jul 2015?) 2016-02-06 11:22:19 -08:00
Ken Cooke
3d684dd0e7 Refactor AVX code for separate compilation and runtime dispatch 2016-02-06 10:55:23 -08:00
Ken Cooke
96f1191a97 Compiler fixes 2016-02-05 17:46:26 -08:00
Ken Cooke
7a07e57144 Compiler fixes 2016-02-05 17:27:33 -08:00
Ken Cooke
ad0383114b Compiler fixes 2016-02-05 16:34:04 -08:00
Ken Cooke
1a1b34296c Compiler fixes 2016-02-05 15:44:31 -08:00
Ken Cooke
721fa9d43a HRTF-based audio spatialization engine 2016-02-05 15:24:09 -08:00
Ryan Huffman
4ed38c4104 Merge pull request #6986 from birarda/injector-restart
fix for injector restart not restarting
2016-01-29 16:27:34 -08:00
Stephen Birarda
d7990bf88a reset hasSentFirstFrame to false for double frame on first send 2016-01-29 14:55:08 -08:00
Stephen Birarda
d3028606c5 retart the nextFrame and frameTimer on injector restart 2016-01-29 14:47:27 -08:00
Stephen Birarda
20cfe80036 use a vector instead of priority queue to avoid double sort 2016-01-29 14:04:45 -08:00
Stephen Birarda
8d17df338b allow AIM event processing during repeated injection 2016-01-29 14:04:45 -08:00
Ryan Huffman
c67f39a6c0 Merge pull request #6976 from birarda/injector-dos
fix for overflow on injector playNextFrameAt
2016-01-28 16:37:12 -08:00
Stephen Birarda
0c2805db7e remove debug added to catch injector DOS 2016-01-28 15:50:04 -08:00
Stephen Birarda
311f1ac0e3 fix for overflow on time of next frame 2016-01-28 15:38:33 -08:00
Ryan Huffman
15db8040d8 Merge pull request #6961 from birarda/resampling-error
fix a couple of resampling errors in Sound downSample
2016-01-28 13:22:00 -08:00
Stephen Birarda
79c6ed9739 add some debug for AudioInjector DOS case 2016-01-28 12:22:36 -08:00
Stephen Birarda
0a386cdde8 remove trimFrames call from Sound 2016-01-27 16:10:18 -08:00
Stephen Birarda
dc716461e3 fix for a couple of resampling edge cases 2016-01-27 14:33:03 -08:00
Ryan Huffman
2ec201b85e Fix conversion warning 2016-01-27 14:13:23 -08:00
Ryan Huffman
7e5eec55da Fix non-looped injected audio possibly looping 2016-01-27 13:47:32 -08:00
Ryan Huffman
4de8e7a3c8 Add audio resizing in injector 2016-01-27 13:47:09 -08:00
Ryan Huffman
8764eda479 Merge branch 'master' of https://github.com/highfidelity/hifi into injector-timing-fixes 2016-01-27 11:03:52 -08:00
Ryan Huffman
607f23618d Fix compiler warning for float->int conversion 2016-01-27 10:36:44 -08:00
Ryan Huffman
a3b2dd2295 Add proper loop handling in injector 2016-01-27 10:14:05 -08:00
Stephen Birarda
b6f478e087 add some debug for audio injector wrap case 2016-01-26 13:10:02 -08:00
Ryan Huffman
b56668892e Fix else style 2016-01-26 09:39:11 -08:00
Ryan Huffman
3160aa3068 Change 0LL to INT64_C(0) 2016-01-26 09:36:52 -08:00
Ryan Huffman
5268ef8ac2 Fix else indentation 2016-01-26 09:36:40 -08:00
Ryan Huffman
0e1742588b Fix indentation 2016-01-26 09:35:35 -08:00
Ryan Huffman
641a6e9c30 Fix injector handling for when it falls behind 2016-01-26 09:29:02 -08:00
Stephen Birarda
ba89c8a97a remove some extra debug that isn't needed 2015-12-21 16:23:23 -07:00
Atlante45
b7478c4594 Fix gcc warning 2015-12-11 16:38:19 -08:00
Ken Cooke
86db12acae Fix naming clash with reserved word 2015-12-07 14:03:11 -08:00
Ken Cooke
4803b3bd9f Merge branch 'master' of https://github.com/highfidelity/hifi into audio-reverb 2015-12-07 13:08:21 -08:00
Ken Cooke
8683bb5002 New reverb parameters 2015-12-07 13:05:30 -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
Brad Hefta-Gaub
ab63f19b6a Merge pull request #6546 from kencooke/audio-reverb
Reverb
2015-12-04 10:19:56 -08:00
Atlante45
cd26422ca0 Fix warnings on OS X 2015-12-04 08:47:06 -08:00
Ken Cooke
1d01f08324 Fix compiler warnings 2015-12-03 16:27:35 -08:00
Ken Cooke
fbd7549430 Better reverb script defaults 2015-12-02 11:05:06 -08:00
Ken Cooke
f005afd7c0 Fix stdint.h includes 2015-12-02 09:33:47 -08:00
Ken Cooke
a725c8b12e Merge branch 'master' of https://github.com/highfidelity/hifi into audio-reverb 2015-12-01 09:12:24 -08:00
Clément Brisset
e168966b87 Merge pull request #6409 from birarda/injector-hybrid
more efficient threading of networked AudioInjector objects
2015-11-30 15:36:41 -08:00
Ryan Huffman
1b0413f8e3 Merge branch 'master' of https://github.com/highfidelity/hifi into proto-received-message 2015-11-30 10:23:40 -08:00
Ryan Huffman
99dd9646bc Merge branch 'master' of https://github.com/highfidelity/hifi into proto-received-message 2015-11-30 10:20:13 -08:00
Andrew Meadows
49a6f63663 remove whitespace and fix warning (unused var) 2015-11-30 10:00:05 -08:00
Andrew Meadows
e26081e981 always update physics properties when they change
and move activation check logic to MotionState
2015-11-24 10:20:19 -08:00
Stephen Birarda
c8b5f6f737 fix for top on deque when empty 2015-11-20 16:03:18 -08:00
Stephen Birarda
9ddebc8d13 resolve conflicts on merge with upstream/master 2015-11-20 15:29:44 -08:00
Stephen Birarda
5f9c3eea76 use a priority queue to ensure ordering of injectors 2015-11-19 17:42:14 -08:00
Stephen Birarda
adf41fce19 use alias for unique_lock and mutex 2015-11-19 17:29:20 -08:00
Stephen Birarda
3b56df6e99 use deleteLater immediately not that finish is right thread 2015-11-19 17:27:18 -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
2c98976ef2 Fix bug from implicit cast 2015-11-19 10:05:10 -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
cc90662bf0 PR feedback 2015-11-18 12:17:27 -08:00
Ken Cooke
8ae3fa61c5 Fix compiler issues 2015-11-18 10:06:40 -08:00
Ken Cooke
0f214555c1 New algorithmic stereo reverb 2015-11-18 09:13:03 -08:00
Stephen Birarda
2aa56b5384 include memory header for unique_ptr 2015-11-17 17:26:45 -08:00
Stephen Birarda
35dd5fb564 include NLPacket in AudioInjector for unique_ptr 2015-11-17 17:26:07 -08:00
Stephen Birarda
1c485bacff include the condition_variable header in AIM 2015-11-17 17:11:40 -08:00
Stephen Birarda
d20fd6d7e7 cap max to 40, clarify comment 2015-11-17 17:08:48 -08:00
Stephen Birarda
cf2ad9a877 remove atomic include from AudioInjector 2015-11-17 17:07:29 -08:00
Stephen Birarda
62b218632d don't use unneeded atomic for AudioInjector State 2015-11-17 17:06:21 -08:00
Stephen Birarda
8e4d7c69ce handle AudioInjectorManager for scripted ACs 2015-11-17 17:01:11 -08:00
Stephen Birarda
935c0cc137 handle AudioInjectorManager cleanup in Application 2015-11-17 16:39:23 -08:00
Stephen Birarda
ab5c8e072f handle blocked AudioInjectorManager for restart 2015-11-17 16:31:18 -08:00
Stephen Birarda
d764ff2e87 remove static variables in AudioInjector.cpp 2015-11-17 15:12:04 -08:00
Stephen Birarda
7da6ec46c4 more handling of various AudioInjector states 2015-11-17 14:20:59 -08:00
Stephen Birarda
4fa934dccf make sure AudioInjectorManager process is on AI thread 2015-11-16 18:54:16 -08:00
Stephen Birarda
80115d38e9 tweak the AudioInjectorManager for injector threading 2015-11-16 18:53:09 -08:00
Stephen Birarda
aa77c4894c add an AudioInjectorManager for more efficient threading 2015-11-16 16:04:10 -08:00
Stephen Birarda
52716b8f95 emit a ready signal if Sound has downloaded 2015-11-16 10:55:25 -08:00
Atlante45
ffafd3194e Recording audio fixes 2015-11-05 16:46:59 -08:00
Brad Davis
63df9fb959 Fixing raw sound playback and air guitar 2015-10-22 22:37:18 -07:00
Ryan Huffman
9ddcfdf94d Cleanup PacketReceier and ReceivedMessage 2015-10-16 09:21:10 -07:00
Ryan Huffman
7682ab00e3 Add ReceivedMessage and receive progress 2015-10-15 14:09:53 -07:00
Brad Davis
6f5f6450df Cleanup CMake files 2015-10-11 00:01:03 -07:00
Ken Cooke
3555e90cf6 Improved random generator for SIMD dither 2015-10-01 20:32:48 -07:00
Ken Cooke
e1e34b2ce5 Fix to allow arbitrary input/output buffers from caller. SIMD padding is no longer required. 2015-10-01 20:17:04 -07:00
Ken Cooke
4e29d8382d SSE2 optimization of new resampler. 3.5x faster for all modes. Dither is always enabled. 2015-10-01 03:24:10 -07:00
Ken Cooke
aa01dca0a8 Fix compiler warnings 2015-09-27 19:14:31 -07:00
Ken Cooke
7faada24a8 Moved table to the top, so it can be declared static 2015-09-27 15:45:00 -07:00
Ken Cooke
c000c635b1 CR feedback 2015-09-27 15:31:11 -07:00
Ken Cooke
956d83c872 Size optimization of new resampler. Reduced size of precomputed tables by 8x. Even with 32x oversampling of the prototype filter, aliasing from Lagrange interpolation is (12+24/octave) = -132dB which is fine. 2015-09-25 21:28:48 -07:00
Ken Cooke
4a1458e152 Algorithmic optimization of new resampler. All common sample rates now use a rational mode that does direct FIR filtering instead of coefficient interpolation. Complexity reduced by 2x for mono, 1.5x for stereo. 2015-09-25 19:05:55 -07:00
Brad Hefta-Gaub
8a8da58dfd Merge pull request #5898 from kencooke/audio-src
Completely remove SOXR from cmake
2015-09-24 15:59:23 -07:00
Ken Cooke
629ee7b0c1 Completely remove SOXR from cmake 2015-09-24 15:12:10 -07:00
Brad Hefta-Gaub
5e82b9c433 more warning fixes 2015-09-24 08:26:56 -07:00
Ken Cooke
478eab3843 CR feedback 2015-09-23 12:07:17 -07:00
Ken Cooke
4b9c2ed6b6 In AudioInjector, replace SOXR with AudioSRC.
Used for pitch shifting in playSound(). Setup time (once per sound) is drastically improved.
2015-09-22 23:08:05 -07:00
Ken Cooke
b983ba7056 Fix Mac and Linux builds 2015-09-22 08:46:00 -07:00
Ken Cooke
2d1150115f New low-latency sample rate conversion library 2015-09-22 08:14:08 -07:00
Philip Rosedale
b968911fcc Merge pull request #5820 from kencooke/audio-fix
fix audio int16_t to float scaling
2015-09-16 10:26:36 -07:00
Ken Cooke
def24a15ad fix audio int16_t to float scaling 2015-09-16 09:00:41 -07:00
Ken Cooke
ffe3fcf4ce Replace repeated division with multiply by inverse 2015-09-15 10:18:53 -07:00
Ken Cooke
5045f8558e Fix incorrect scale factor for converting int16_t to/from float 2015-09-15 10:08:24 -07:00
Stephen Birarda
ed19987b7d resolve conflicts on merge with upstream/master 2015-09-04 12:31:46 -06:00
Howard Stearns
d003ec9c58 Delete collision sounds (and their threads) after use.
This has been broken ever since I added avatar collision sounds around https://github.com/highfidelity/hifi/pull/5159 or so.
2015-08-31 15:49:17 -07:00
Stephen Birarda
80cf7b6c76 resolve conflicts on merge with upstream/master 2015-08-27 14:50:04 -07:00
Ryan Huffman
aa7d8678e1 Merge branch 'protocol' of github.com:birarda/hifi into atp-server 2015-08-26 12:26:11 -07:00
Seth Alves
695ffa29c7 call setup_memory_debugger from common macros rather than from every CMakeLists.txt file 2015-08-26 11:09:59 -07:00
Atlante45
179ee73e26 Merge branch 'master' of https://github.com/highfidelity/hifi into update_protocol 2015-08-26 16:50:33 +02:00
Brad Davis
d311e4f2ea Fixing problems reported by static analysis tool 2015-08-25 19:18:55 -07:00
Brad Davis
380b0cb23c Removing tabs from our javascript and C++ 2015-08-24 15:26:46 -07:00
Brad Davis
8c7711168c Merge pull request #5603 from sethalves/linux-memory-debugger
memory debugging on linux
2015-08-20 19:19:24 -07:00
Stephen Birarda
e93b360908 expose options property to AI script interface 2015-08-20 12:12:43 -07:00
Seth Alves
c25082d86f use -fsanitize=address in all code rather than just the top-level links 2015-08-20 10:14:16 -07:00
Stephen Birarda
6860f3d126 add readWithoutCopy for clarity in Packet read 2015-08-19 14:32:26 -07:00
Ryan Huffman
5884fcb17b Merge branch 'ordered-sending' into atp-server 2015-08-19 12:23:31 -07:00
Ryan Huffman
4827d326f4 Update ResourceCache to allow multiple downloads on the same resource 2015-08-19 12:11:47 -07:00
Ryan Huffman
ae93d74d8b Update Sound to use new ResourceCache 2015-08-03 16:27:34 -07:00
Stephen Birarda
9e7fb9ae16 shuffle Packet headers, use static enum for PacketType 2015-07-23 13:56:47 -07:00
Stephen Birarda
0177513285 resolve conflicts on merge with upstream/master 2015-07-20 12:29:38 -07:00
Stephen Birarda
1fd4a1f0c3 resolve conflicts on merge with upstream master 2015-07-17 16:07:45 -07:00
Stephen Birarda
331bb54144 remove unused variable 2015-07-17 15:59:39 -07:00
Stephen Birarda
39272652e5 fix seeks in InboundAudioStream 2015-07-17 15:59:24 -07:00
Stephen Birarda
0f534b9f7b fixes for new read and NLPacketList 2015-07-17 15:43:20 -07:00
Howard Stearns
2d277a2abd Fix https://app.asana.com/0/30233891560551/41734486809354/f 2015-07-17 11:28:25 -07:00
Stephen Birarda
e5722098f6 resolve conflicts on merge with upstream/master 2015-07-17 11:06:01 -07:00