Added code when filtering rocket files to search through build products for target files and add their runtime dependencies to the filter rules.
#jira UEB-372
[CL 2672116 by Matthew Griffin in Main branch]
- Switching to a EQ filter type that is more similar to XAudio2's filter
- Piping the per-voice high-frequency attenuation parameter to a new per-voice low-pass filter
- making the effect processing serial rather than parallel
- Clamping max volumes to 1.0 (linear) before setting volumes on API calls. Not doing this causes sounds to distort as max volume being used was 4.0 and we have volume scale factors greater than 1.0
[CL 2631483 by Aaron McLeran in Main branch]
- Re-adding the SAFE_CA_CALL wrapper around AUGraphUpdate since there a legit OSStatus code which can result from API call that isn't noErr. In the case of unpausing sounds, etc, this can happen.
[CL 2628158 by Aaron McLeran in Main branch]
- QAGame's Test map TM-MultipleSounds allowed me to finally repro the issue after a few minutes. Reducing the number of voices in CoreAudio caused the issue to happen immediately.
- Crash was due to an invalid audio unit index (-1) when the number of active audio units exceeds total number of available audio units
- Fixed by properly failing to play a sound if no audio unit/voice indices are available rather than trying to construct an AUGraph with the invalid index.
- Added more asserts to make sure things are what they should be.
- Changed the MAX_AUDIOCHANNELS #define used in Mac-code so it can be different than other platforms. Other platforms use this as an upper limit but don'''t allocate resources according to it, Mac however, allocates resources and allows voices to play up to the max number. Rather than fix that right now, we''ll hard-code that upper limit on mac to be on-par with PC
- Went ahead and reduced the number of max voices on Mac since PC only uses 32 and this was set to be 64 (for mono/stereo files) and 16 for multichannel files for a total of 80 max voices. Mac is already perf-heavy on the main thread, this will help to decrease perf due to audio and will be more in-line with PC audio.
#codereview Michael.Trepka Marc.Audy
#lockdown Nick.Penwarden
[CL 2623909 by Aaron McLeran in Main branch]
- Added stubs per platform in their ini file that doesn't change volume, except for mac which this bug is about and for which I reduced the volume by -6 dB. This can be changed by designers as per needed for their game per platform. The final headroom should be set by designers.
- Removed the hard-coded headroom constant used in OpenAL recently added.
[CL 2611741 by Aaron McLeran in Main branch]
Properly initialize audio resource when playing a native sound with a specified start time.
#codereview Aaron.McLeran
[CL 2588686 by Marc Audy in Main branch]
- checked in first-pass on CoreAudio (Mac/iOS) implementation of audio device module of new UnrealAudio
- fixed an issue with wrapping phase for sine functions (and thus fixed unit tests)
- changed simple device out unit test to be more simple (pure sine tone on each channel in octaves every second)
[CL 2519686 by Aaron McLeran in Main branch]
- Created audio device manager which manages weak ref handles to audio devices
- Audio device handles are created with WorldContexts and accessed through UWorld objects
- All access to audio devices are now through audio device handles
- There is a main/default audio device for GEngine for use with the Editor and single worldcontext games
#codereview marc.audy, matthew.griffin
[CL 2477046 by Aaron McLeran in Main branch]
Removed GVolumeMultiplier and added an equivalent to FApp to contain the code to load the unfocused volume multiplier from config.
UE-4449 - Allow users to choose whether audio can be heard when focus is lost
#codereview Robert.Manuszewski
[CL 2341022 by Matthew Griffin in Main branch]
- Inverse was one of the main reasons of crashes via lots of functions. Seems making default Inverse to be safer version seems better.
[CL 2255081 by Lina Halper in Main branch]