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
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
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
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
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
e882e7b648
rm extra lock in audio read
2017-05-05 15:37:01 -04:00
Vladyslav Stelmakhovskyi
d18ac6dd49
Reimplemented Tablet Audio screen using C++ model
2017-04-28 23:02:28 +02: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
a68146e7d9
mv audio output init to output thread
2017-03-17 15:31:00 -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
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
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
df051ff8df
maintain network audio in int16_t
2017-01-20 18:37:46 -05:00
Zach Pomerantz
bb247fe8a3
rename AudioMixRingBuffer
2017-01-20 14:48:54 -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
4c7c7ee3cc
mv audio injector preparation to own thread
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
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 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
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
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
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
b9c4018b8e
expose AudioStats to qml/js
2016-09-26 15:35:29 -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
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