Seth Alves
0b2f13dacc
don't use deleteLater on smartpointered object
2017-07-11 17:07:44 -07:00
Seth Alves
59c586bc5d
remove unused code
2017-07-11 16:58:19 -07:00
Seth Alves
3c8c87cff5
i hate you, milkman dan
2017-07-11 16:48:28 -07:00
Seth Alves
3670a04d8e
switch bare pointers to AudioInjector objects to be QSharedPointers
2017-07-11 14:24:58 -07:00
Brad Davis
6fc82bb351
Switch to preprocessor macro for blocking invokes to capture function information
2017-06-30 11:36:24 -07:00
Brad Davis
b52dd7b822
Don't use blocking connections on the main thread
2017-06-29 20:45:17 -07:00
Brad Hefta-Gaub
197006e3d3
Merge pull request #10780 from kencooke/audio-hrtf-avx512
...
HRTF optimizations
2017-06-22 13:34:05 -07:00
Ken Cooke
af0f460659
Fix extra whitespace
2017-06-22 06:38:13 -07:00
Ken Cooke
5d235f8c52
Fix typo
2017-06-22 06:32:32 -07:00
Ken Cooke
38c87b0f08
Fallback code to allow compiling with VS2013
2017-06-21 13:19:46 -07:00
Ken Cooke
afb26df2de
Runtime dispatch for AVX512 optimized HRTF
2017-06-21 11:26:53 -07:00
Ken Cooke
00c904c927
Detect compiler support for SIMD intrinsics in conditional compilation
2017-06-21 09:34:02 -07:00
Ken Cooke
1688ad5f0a
HRTF optimized for AVX512
2017-06-20 17:09:38 -07:00
Stephen Birarda
c132e29b06
remove conditional seek from InboundAudioStream
2017-06-14 11:42:19 -07:00
Stephen Birarda
29842c67cc
use received message faking for cleaner replication in audio
2017-06-13 18:04:59 -07:00
Stephen Birarda
ab3a0ddba2
don't emit codec mismatch upstream, handle replicated silent frames
2017-06-12 19:49:02 -07:00
seefo
cc57d28ccc
Made requested changes to PR10554
2017-05-26 11:49:43 -07:00
seefo
90d5b2a6d4
Removed SoundProcessor's dependence on Sound objects
2017-05-26 10:32:34 -07:00
seefo
32b5ac5020
Moved audio asset processing to a separate thread
2017-05-25 16:10:53 -07:00
Ken Cooke
3d67978caa
Delete the old noise gate
2017-05-23 15:53:38 -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
746b41e509
Fix typo in comments
2017-05-18 17:30:07 -07:00
Ken Cooke
205b9d4aec
Fix compiler warnings
2017-05-18 16:49:02 -07:00
Ken Cooke
18ed3dd6ed
Remove debug code
2017-05-18 14:30:25 -07:00
Ken Cooke
6f2a84a084
Add stand-alone DC blocking filter
2017-05-18 14:26:35 -07:00
Ken Cooke
c1cd26b473
New log-domain noise gate with adaptive threshold
2017-05-18 14:21:56 -07:00
Ken Cooke
106dd6ce6a
Fast fixed-point log2 approximation
2017-05-18 14:15:10 -07:00
Ken Cooke
cad9eeb8ba
Refactor the peak limiter (output is bit-exact)
2017-05-18 14:13:24 -07:00
Zach Pomerantz
c478f1a752
synchronously fill injector buffer on underrun
2017-05-09 16:34:42 -04:00
Zach Pomerantz
48af83a960
guard against audio injector and local buffer datarace
2017-05-05 17:05:40 -04:00
Atlante45
70ece9f0fd
Load skybox first and sounds later
2017-04-26 14:57:23 -07:00
Ken Cooke
69863dd735
Fix the crash in Debug builds, caused by undeclared metatype for AudioInjector*
2017-03-30 08:52:04 -07:00
Zach Pomerantz
f43706dfe1
clean AudioNoiseGate
2017-03-15 00:14:55 +00:00
Zach Pomerantz
0abcda86a8
mv AudioNoiseGate to audio
2017-03-15 00:14:55 +00:00
Brad Hefta-Gaub
bdab24d9bf
fix spelling
2017-03-09 08:25:56 -08:00
Brad Hefta-Gaub
79d8d90581
CR feedback
2017-03-08 20:35:24 -08:00
Brad Hefta-Gaub
2d595c1f87
CR feedback
2017-03-08 20:29:32 -08:00
Brad Hefta-Gaub
1bdad89cbe
properly handle silent packet transitions
2017-03-08 17:27:46 -08:00
Thijs Wenker
13b2b6086f
Fix recorder.js playback in interface
2017-02-21 19:47:26 +01:00
Zach Pomerantz
ff56eb24c8
Merge pull request #9537 from zzmp/audio/throttle-filter
...
Add injector/avatar attenuation to audio-mixer throttling
2017-02-07 20:57:43 +01:00
Ken Cooke
63c2aa1dfc
Remove obsoleted code
2017-02-06 12:55:03 -08:00
Ken Cooke
a77e4262e3
Remove obsoleted code
2017-02-06 12:47:28 -08:00
Ken Cooke
49605d52e0
Remove debug code
2017-02-06 10:42:32 -08:00
Ken Cooke
8033f932a6
Simulate 1% random packet-loss, for debug/test
2017-02-06 10:16:25 -08:00
Ken Cooke
4acb99cd4f
Use interpolated audio (codec packet-loss concealment) or zero samples (if no codec) when audio packets are lost. This audio is still processed by the audio pipeline to avoid clicks/pops.
2017-02-06 09:29:39 -08:00
Zach Pomerantz
1f56814714
Merge branch 'master' of https://github.com/highfidelity/hifi into audio/throttle-filter
2017-01-31 19:35:27 +00:00
Zach Pomerantz
24ca765a39
add hrtf gain getter
2017-01-27 14:36:59 -05:00
Zach Pomerantz
1c5228cb6d
fix AudioRingBuffer::appendData
2017-01-26 19:16:02 -05:00
Zach Pomerantz
3d526a1024
Merge branch 'master' of github.com:highfidelity/hifi into audio/threaded-local
2017-01-26 18:56:58 -05:00
Atlante45
f540c94113
Merge branch 'master' of https://github.com/highfidelity/hifi into ess-pr
2017-01-25 13:06:49 -08:00
Atlante45
3f8b2f9cbb
Fix invalid volume values in injector options
2017-01-23 11:49:07 -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
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
Stephen Birarda
1b778a3ee0
fail quietly if local injection cannot happen
2017-01-20 10:42:07 -08: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
Zach Pomerantz
b6d093889c
add AudioConstants::SAMPLE_SIZE
2016-09-16 14:20:50 -07:00
Zach Pomerantz
0d3a9af6a6
wait 10s before growing jitter
2016-09-16 12:03:54 -07:00
Zach Pomerantz
177466e4c7
calculate unplayed ms on all streams/buffers as max
2016-09-15 17:54:41 -07:00
Zach Pomerantz
9792d025fa
clean up audio stats
2016-09-15 13:09:06 -07:00
Ken Cooke
3a41b285a0
Fix local audio injectors, that got disabled somehow
2016-09-13 17:21:48 -07:00
Brad Hefta-Gaub
dbf29ba79d
Merge pull request #8569 from jherico/gli
...
Stuttering: Upgrade GLM & add GLI integration
2016-09-09 12:11:08 -07:00
Brad Davis
ecfe56085d
GLM update and GLI integration
2016-09-09 10:18:15 -07:00
Zach Pomerantz
7b8f616099
add audiostream (jitter) logging
2016-09-08 17:23:56 -07:00
Brad Hefta-Gaub
a40a9f1d73
Merge pull request #8575 from kencooke/neon_optimization
...
Added ARM NEON optimized audio sample rate conversion
2016-09-08 09:58:47 -07:00
Ken Cooke
9457d49103
Merge branch 'master' of https://github.com/highfidelity/hifi into low-latency-audio
2016-09-06 20:56:20 -07:00
Ken Cooke
284bbfdf06
Remove extraneous code
2016-09-06 17:09:59 -07:00
Ken Cooke
b47000eab2
Added ARM NEON optimized audio sample rate conversion
2016-09-06 16:53:06 -07:00
Brad Hefta-Gaub
a51f66e9ff
Merge pull request #8553 from zzmp/clean/audio-ring-buffer
...
clean and comment AudioRingBuffer
2016-09-02 20:16:06 -07:00
Stephen Birarda
dae40c944b
fix audio and audio-client compile for android
2016-08-31 16:55:19 -07:00
Zach Pomerantz
4d4a68d706
add FIXME about loudness in AudioRingBuffer
2016-08-31 14:44:45 -07:00
Zach Pomerantz
ba96ab25dc
inline some AudioRingBuffer definitions
2016-08-31 14:43:44 -07:00
Zach Pomerantz
b740b9802a
clean up AudioRingBuffer
2016-08-31 13:57:56 -07:00
Zach Pomerantz
488f49fc40
rm AudioRingBuffer random access mode
2016-08-31 11:37:05 -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
Seth Alves
722e88253d
missed one
2016-08-18 09:59:40 -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
46c94a938e
Updated HRTF to process in 240-sample blocks
2016-08-18 08:29:32 -07:00
Ken Cooke
f80304d68e
Change audio pipelines to process in exactly 10ms blocks (240 samples instead of 256).
...
This produces an integral number of samples when resampled to 44.1k or 48k, allowing a 44.1k back-end to work correctly without extra buffering or dynamic buffers sizes.
2016-08-18 08:27:20 -07:00
Ken Cooke
d9f12e44dc
Add resampler support for downsampling with variable-input constant-output buffering mode
2016-08-16 16:47:55 -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 Davis
89d9affb41
Merge remote-tracking branch 'upstream/stable'
2016-07-22 19:47:31 -07:00
David Kelly
3d3a7a8820
Merge branch 'stable' of github.com:highfidelity/hifi into dk/hotfixForAudio
2016-07-22 18:40:06 -07:00
David Kelly
8b8a98bfcc
Acutally audio was really broken
...
Seems there were 2 issues:
* If you couldn't inject locally (say, no audio interface
because you are an assignment client), we would not do the
network injection at all. That's bad.
* When we don't have a codec, like when using an injector, we
were serializing the empty string in some problematic way. I
just use the built-in serialization, and it seems fine.
I tested this by first playing a sound in the console (or maybe you
want to tip some cows, that is ok too). Then in _another_ interface
client on another machine in the same domain, I better hear the
sound.
Then, I added a script to play audio as a persistent script, which
just loops forever and ever. You should hear that on both interface
clients also.
A detailed test plan to follow.
Also: using @zappoman serialization code, which is safer than using
the Qt code which does magical things for nulls. Good to do this cuz
you know, things happen...
2016-07-22 18:33:38 -07:00
David Kelly
4b48cc7c2e
Acutally audio was really broken
...
Seems there were 2 issues:
* If you couldn't inject locally (say, no audio interface
because you are an assignment client), we would not do the
network injection at all. That's bad.
* When we don't have a codec, like when using an injector, we
were serializing the empty string in some problematic way. I
just use the built-in serialization, and it seems fine.
I tested this by first playing a sound in the console (or maybe you
want to tip some cows, that is ok too). Then in _another_ interface
client on another machine in the same domain, I better hear the
sound.
Then, I added a script to play audio as a persistent script, which
just loops forever and ever. You should hear that on both interface
clients also.
A detailed test plan to follow.
Also: using @zappoman serialization code, which is safer than using
the Qt code which does magical things for nulls. Good to do this cuz
you know, things happen...
2016-07-22 17:47:24 -07:00
Brad Hefta-Gaub
bb8224be8c
fix silence on no codec after previous codec has been set
2016-07-21 13:57:11 -07:00
David Kelly
7b2d5e7fab
Potential cause of that buzzsaw when resetting
2016-07-20 10:41:16 -07:00
Brad Hefta-Gaub
1ee5023f6d
fix warnings
2016-07-19 08:33:54 -07:00
Brad Hefta-Gaub
c484fec51d
cleanup
2016-07-18 22:54:57 -07:00
Brad Hefta-Gaub
dbf60a594c
Merge branch 'master' of https://github.com/highfidelity/hifi into addCodecNameToStream
2016-07-18 22:43:16 -07:00
Brad Hefta-Gaub
c6ffd81c4b
some cleanup
2016-07-18 22:42:38 -07:00
Brad Hefta-Gaub
2e63aba8c9
when getting unexpected codec in the mixer, send a message to the client to select a different codec
2016-07-18 22:29:05 -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
2a89fa25bb
Removing comments
...
Since I looked into it, seems ok
2016-07-18 16:22:12 -07:00
David Kelly
df615b1503
NotFinished never should have had its own bit
...
Since there is a Finished flag too. So now, it is just 0, used as
a starting point, and we check for !hasState(Finished). <sigh>
2016-07-18 16:02:02 -07:00
David Kelly
8c0eb1e4d2
Fixed some bad logic
...
When I "fixed" my or instead of and issue, I did it in the wrong
direction. But it looked right :) Now it is. Sigh. Long story
how it got there, but it seems good now.
2016-07-15 19:48:15 -07:00
David Kelly
fb99828e30
PR feedback
...
Code a bit more readable. Sadly (and I guess it makes sense), a
enum class XXX is not a class, so you cannot have member functions
for it. I can imagine no way to have a vtable if you are really
representing it as a uint8_t or whatever. So, I put a stateHas
function in the AudioInjector instead. Definite improvement.
2016-07-15 17:09:27 -07:00
David Kelly
8df4ed01d9
fixed typo
...
which oddly I was sure I already did. Seems I didn't push it? OK
now it is pushed.
2016-07-15 16:22:41 -07:00
David Kelly
0fcc427d41
Merge branch 'master' of github.com:highfidelity/hifi into dk/localNoEcho
2016-07-15 11:01:42 -07:00
David Kelly
e1212c54cb
Updated to deal with streaming out of both buffers
...
So gotta keep track of when finished streaming to network and
locally separately. That means the State needed to be more of a
bitflag and less of an enum.
2016-07-15 09:55:50 -07:00
Ken Cooke
d84c7524bf
Remove global HRTF headroom.
...
The initial HRTF reduced overall gain by -6dB to avoid clipping at spectral peaks. With the addition of a peak limiter, this is no longer necessary. Changing to 0dB improves the loudness match between spatialized and unspatialized sounds.
2016-07-14 14:56:58 -07:00
Ken Cooke
fa55fc84f5
Optimized compute of distance filters using log-quantized lookup tables.
...
Magnitude error < 0.25dB for entire parameter space.
2016-07-14 12:04:05 -07:00
Ken Cooke
c7c02d7a59
Fix compiler warning
2016-07-14 11:24:48 -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
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
Brad Hefta-Gaub
ceffa219b3
support for lost packets
2016-07-11 15:18:02 -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
46dc5bea04
cleanup from PR comments
2016-07-11 09:31:05 -07:00
Brad Hefta-Gaub
7d608ba592
groundwork for injector support
2016-07-10 21:01:20 -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
Brad Hefta-Gaub
3c6447326e
more codec plumbing
2016-07-07 21:24:24 -07:00
David Kelly
6cc085b48e
Merge branch 'master' of github.com:highfidelity/hifi into dk/firstLameAttempt
2016-07-07 16:15:20 -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
Ken Cooke
f43c6447e1
remove unneeded #pragma
2016-07-03 11:46:23 -07:00
Ken Cooke
014f6fa259
PR feedback: better naming of convertInput() and convertOutput()
2016-07-03 11:40:32 -07:00
Ken Cooke
f7c9957bb1
PR feedback: better naming of convertInput() and convertOutput()
2016-07-03 11:33:05 -07:00
Ken Cooke
941067b9d0
Added floating-point audio reverb
2016-07-02 07:25:04 -07:00
Ken Cooke
ad8f17a142
Add support for deinterleaved float-point audio (native format)
2016-07-01 19:29:43 -07:00
Ken Cooke
d3c006b5da
Added floating-point audio resampler
2016-07-01 18:50:53 -07:00
Ken Cooke
dd0d594524
cleanup
2016-06-09 16:31:09 -07:00
Ken Cooke
d7079fce8c
Use shared CPUDetect.h for CPU detection
2016-06-09 15:07:24 -07:00
Ken Cooke
14b51d6615
Use common code for AVX detection
2016-06-07 06:50:38 -07:00
Ken Cooke
b60b9bb312
compiler fixes for GCC/clang
2016-06-06 14:54:15 -07:00
Ken Cooke
8faaa36913
moved table of precomputed data into AudioSRCData.h
2016-06-06 12:05:48 -07:00
Ken Cooke
4f35d3df02
AVX2 code must be in /avx for CMAKE to compile it properly
2016-06-06 11:57:17 -07:00
Ken Cooke
34f46b860b
AVX2 optimized audio resampler
2016-06-06 11:54:18 -07:00
Ken Cooke
89bfa5bc09
fixed typo
2016-06-03 19:22:29 -07:00
Ken Cooke
280289045c
Revert change to reverb settings.
2016-06-03 18:48:23 -07:00
Ken Cooke
cd29aac185
Merge branch 'master' of github.com:kencooke/hifi
2016-06-03 18:42:30 -07:00
Ken Cooke
54293fdad0
Replace the linear interpolation embedded in the .WAV/.RAW loader with high quality polyphase resampling.
...
When downsampling 48khz to 24khz, linear interpolation creates aliasing distortion that is quite audible. This change greatly improves the audio quality for all sound assets.
2016-06-03 18:39:43 -07:00
Brad Hefta-Gaub
1e7cd06d0e
add audio peak limiter to audio mixer
2016-05-28 20:34:27 -07:00
Ken Cooke
9f6e971839
Default to darker reverb settings, by increasing the high-frequency rolloff and damping.
2016-05-25 07:24:34 -07:00
Seth Alves
40e862cf9e
quiet gcc 5 warnings
2016-05-21 16:53:01 -07:00
Zach Pomerantz
09d879e19f
Remove delayLoad
2016-05-09 18:09:48 -07:00
Atlante45
07adef9465
Fix entities collision sounds
2016-05-05 14:55:28 -07:00
Atlante45
96ee33e80e
Fix avatars collision sounds
2016-05-05 14:55:28 -07:00
Stephen Birarda
93cf5a1035
fixes for CR comments
2016-04-18 16:53:02 -07:00
Zach Pomerantz
bb02af793c
Name exposed cache objects
2016-04-14 17:00:18 -07:00
Brad Hefta-Gaub
4f1de77946
Merge pull request #7581 from birarda/suppress-more
...
suppress a couple more noisy messages in AudioRingBuffer
2016-04-06 19:08:23 -07:00
Atlante45
6d1b7f1d37
Wrap sound script object to hold a strong ref
2016-04-06 13:04:18 -07:00
Stephen Birarda
d536026ff4
suppress a couple more noisy messages in AudioRingBuffer
2016-04-05 14:44:20 -07:00
Brad Hefta-Gaub
a3734eba00
Merge pull request #7535 from birarda/suppress-more
...
add suppression for ring buffer and sequence number messages
2016-04-01 13:04:32 -07:00
Stephen Birarda
5ab59fe770
suppress overflown AudioRingBuffer debug
2016-03-31 17:53:39 -07:00
Zach Pomerantz
9d3abe5513
Release texs when models are cached
2016-03-31 17:02:40 -07:00
Ryan Huffman
99010c7bf6
Fix audio packet being used in a thread-unsafe way
2016-03-21 13:33:56 -07:00
Zach Pomerantz
54af58834a
Mark Resource loaded after postprocessing
2016-03-09 10:34:07 -08:00
Ken Cooke
d390c60ef7
CR feedback
2016-03-04 17:11:44 -08:00
Ken Cooke
06bde077b2
Fix compiler warnings
2016-03-01 16:34:58 -08:00
Ken Cooke
b346f36b89
Fix compiler warnings
2016-03-01 14:19:20 -08:00
Ken Cooke
261f5c45de
Fix compiler warnings
2016-03-01 12:07:28 -08:00
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