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
Brad Hefta-Gaub
d7bffc3eab
first cut at negotiating codecs
2016-06-23 17:14:41 -07:00
Brad Hefta-Gaub
6111e4952a
fix comments
2016-06-23 10:59:26 -07:00
Brad Hefta-Gaub
be37921845
first cut at codec plugins
2016-06-23 10:42:02 -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
Brad Hefta-Gaub
2381ab1cba
Merge pull request #7496 from kencooke/master
...
make self-reverb depend on wetDryMix
2016-03-30 15:44:20 -07:00
Ken Cooke
a51cc9d12a
make self-reverb depend on wetDryMix
2016-03-28 16:04:45 -07:00
Atlante45
92ef8cafb1
Make sure pos/rot getters don't crash
2016-03-28 14:37:06 -07:00
Ken Cooke
c6ca984782
Fix Reverb Zone settings to work correctly with new reverb.
2016-03-24 12:59:52 -07:00
Brad Hefta-Gaub
bb1ed2147f
revert change that trusted Qt's claim that it supports the format
2016-02-22 11:22:03 -08:00
howard-stearns
e21d9042d0
Remove some logging.
2016-02-19 13:34:06 -08:00
howard-stearns
162be13914
Don't keep adding signal connections. More logging.
2016-02-18 16:14:03 -08:00
howard-stearns
547d3d6b9a
Merge branch 'audio-output-buffer' of https://github.com/howard-stearns/hifi into audio-output-buffer
2016-02-17 13:57:21 -08:00
howard-stearns
b8b1565470
Don't fake-fail the format test. Trust the os.
2016-02-17 13:46:48 -08:00
Howard Stearns
983a0ccb9b
Change internal preference names so that old users pick up the new default values, and change name in dialog.
2016-02-16 18:00:39 -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
Atlante45
ce51350b65
Fix warnings on windows 64bit
2015-12-11 15:42:15 -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
Ken Cooke
a5b64473af
Fix bugs
2015-11-25 16:15:04 -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
3060aa960d
Fix the case when local-echo and self-reverb both active
2015-11-19 09:23:58 -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 Hefta-Gaub
e7a8df306c
fix warnings
2015-11-17 11:18:36 -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
Atlante45
dbe25651cf
constify audio client loop
2015-11-05 16:57:51 -08:00
Atlante45
6c35ae48b0
Don't allocate big samples array in tight loop
2015-11-05 16:52:38 -08:00
Atlante45
ffafd3194e
Recording audio fixes
2015-11-05 16:46:59 -08:00
Ken Cooke
1eabb924f1
Fixed the logic to be correct
2015-10-29 12:53:47 -07:00
Ken Cooke
4d576d7aaf
Fix typo
2015-10-29 12:23:36 -07:00
Ken Cooke
143b9c663f
Quick fix for audio having channels swapped under Qt 5.5.1.
2015-10-29 12:21:28 -07:00
Ryan Huffman
7682ab00e3
Add ReceivedMessage and receive progress
2015-10-15 14:09:53 -07:00
Brad Hefta-Gaub
776acf2182
ignore gverb warnings
2015-09-24 09:07:43 -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
Ken Cooke
a818ed5377
Merge branch 'master' of https://github.com/kencooke/hifi
2015-09-14 12:28:16 -07:00
Ken Cooke
6fe30e7156
Style fix, and use size_t instead of unsigned int.
2015-09-14 12:06:13 -07:00
Ken Cooke
bc5532bd0d
Style fix, and use size_t instead of unsigned int.
2015-09-14 11:20:38 -07:00
Ken Cooke
6afb6c80d0
Fix the loud audio pops at startup, due to SOXR returning less than desired output samples because of internal buffering.
2015-09-14 10:33:40 -07:00
Howard Stearns
8f616c04fb
Fix https://app.asana.com/0/32622044445063/43589567731045
2015-08-02 21:46:39 -07:00
Stephen Birarda
333cd77d9c
cleanup call to parseAudioData
2015-07-15 17:20:02 -07:00
Stephen Birarda
e127c5c06d
rename Packet methods for clarity
2015-07-15 10:40:40 -07:00
Stephen Birarda
c154e6cc74
Merge branch 'protocol' of https://github.com/Atlante45/hifi into atp
2015-07-14 17:16:42 -07:00
Stephen Birarda
aa696ca8d3
fix listener for AudioStreamStats, more verbose debug
2015-07-14 17:14:27 -07:00
Atlante45
fbb6a94579
Merge branch 'receive_packets' of https://github.com/huffman/hifi into protocol
2015-07-14 16:36:28 -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
57c3f0fd20
fix unmatched diagnostic pop
2015-07-13 15:40:20 -07:00
Atlante45
c80df94b06
Update includes for moved files
2015-07-13 15:28:55 -07:00
Stephen Birarda
ede39515d8
update parseData for new network API
2015-07-13 14:26:10 -07:00
Atlante45
957e6394a9
sendPacket function take Node& not a pointer
2015-07-13 11:57:20 -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
Stephen Birarda
a363f42bb2
pass const NLPacket& for all sendUnreliablePacket calls
2015-07-09 11:42:18 -07:00
Ryan Huffman
bb132e354b
Update AudioClient to use packet callbacks
2015-07-09 09:24:07 -07:00
Stephen Birarda
72b713e32f
fix for more primitive writes in AudioClient
2015-07-08 16:53:57 -07:00
Stephen Birarda
964041d8d3
missed API fixes in AudioClient and AvatarData
2015-07-08 16:53:04 -07:00
Stephen Birarda
2ac833c904
fix another primitive write in AudioClient
2015-07-08 16:50:49 -07:00
Stephen Birarda
546268be55
fix primitive type writing in AudioClient
2015-07-08 16:46:11 -07:00
Atlante45
7329ad6334
Templated read/write in Packet
2015-07-08 13:45:12 -07:00
Atlante45
10f843b197
Packet type fixes in audio client
2015-07-08 11:28:11 -07:00
Stephen Birarda
2ab9cd7a9a
replace payload with getPayload
2015-07-07 16:25:56 -07:00