Chris Robinson
12db67f548
Cleanup output write functions
2017-07-27 19:07:02 -07:00
Chris Robinson
e25ba747e6
Remove unused macros
2017-07-25 17:42:16 -07:00
Chris Robinson
75841642bf
Update makehrtf to use a larger FFT by default
...
Also fixes DC offset removal and increases the max IR size.
2017-07-25 16:17:46 -07:00
Chris Robinson
82a990e08e
Downgrade some ERRs to TRACEs
...
These don't exist outside OSSv4, e.g. with OSS/Free, padsp, or aoss, so no need
to be concerned.
2017-07-23 16:43:39 -07:00
Chris Robinson
5ab4e584ee
Make sure OSS device files exist before adding them
2017-07-23 16:38:54 -07:00
Chris Robinson
f91445029d
Fix default effect initialization
2017-07-19 18:26:46 -07:00
Chris Robinson
fea74124c8
Add an all-pass filter that replicates the band splitter's phase shift
2017-07-19 02:48:01 -07:00
Chris Robinson
0135ddc2e5
Scale the source volume by +3dB for a full spread
...
This effectively turns a full spread source into an ambient response,
preventing such sources from being unexpectedly quiet.
2017-07-18 22:15:32 -07:00
Chris Robinson
c484935542
Apply the output buffer offset before writing to it
2017-07-15 23:13:08 -07:00
Chris Robinson
ff696bc1fe
Set the float PCM GUID for wave files only when outputting float
2017-07-15 01:45:48 -07:00
Chris Robinson
8fa3f6da64
Add the default auxiliary slot to the active slot array
2017-07-13 23:13:02 -07:00
Chris Robinson
249afde5f9
Initialize the default effect after device update
2017-07-13 22:35:37 -07:00
Chris Robinson
a535169bbd
Use macros to set and restore the mixer FPU mode
2017-07-13 22:30:39 -07:00
Chris Robinson
22d77b87a3
Store the default effect slot in the context
2017-07-13 21:44:25 -07:00
Chris Robinson
8a0d1e5191
Store the QSA backend's ExtraData in the wrapper struct
2017-06-29 17:38:38 -07:00
Chris Robinson
e8ce8924d1
Use sqrtf for single-precision square roots
2017-06-29 10:28:37 -07:00
Chris Robinson
ec13cf6c9c
Add casts to silence MSVC
2017-06-29 10:28:22 -07:00
Chris Robinson
a69d608a1e
Define a backup log2f if the compiler doesn't have it
2017-06-29 10:11:31 -07:00
Chris Robinson
7cadbebe9f
Calculate the converter stepping value using floating point
2017-06-28 10:17:36 -07:00
Chris Robinson
e9a7218a06
Remove the fastf2u conversion function
2017-06-27 07:25:08 -07:00
Chris Robinson
8f2bbc434c
Use a macro to apply NFC filtered mixes instead of a loop
2017-06-26 11:19:27 -07:00
Chris Robinson
b13fead555
Round the converter's stepping value
2017-06-26 11:04:23 -07:00
Chris Robinson
2f2d941edb
Trace the message name in the message handler loop
2017-06-26 08:57:29 -07:00
Chris Robinson
740e7d979c
Convert all input samples in the loop
...
Instead of potentially leaving 1 sample that requires another loop iteration.
2017-06-26 08:55:22 -07:00
Chris Robinson
55c329b462
Clean up some messy rounding code
2017-06-26 06:54:45 -07:00
Chris Robinson
5d5eff7502
Ensure the mmdevapi capture buffer is at least 100ms
2017-06-26 06:14:11 -07:00
Chris Robinson
1deb8b6160
Clean up some loop variables
2017-06-25 05:42:35 -07:00
Chris Robinson
c465718ddd
Use the bsinc resampler for the converter
2017-06-25 04:07:06 -07:00
Chris Robinson
d1bb04d588
Improve traces for the mmdevapi capture conversions
2017-06-23 09:54:26 -07:00
Chris Robinson
d70a98fe03
Use the correct destination channel offset
2017-06-23 08:25:47 -07:00
Chris Robinson
9d01ac440d
Don't report any output samples for no input samples
2017-06-23 08:13:42 -07:00
Chris Robinson
44a940d8d6
Forward Sample_ALuint to Sample_ALint
2017-06-23 05:34:43 -07:00
Chris Robinson
d1077795de
Stop conversion when no more source samples are available
2017-06-22 15:07:24 -07:00
Chris Robinson
31b02e044f
Trace the capture converter formats for mmdevapi
2017-06-22 13:58:32 -07:00
Chris Robinson
552d3a85af
Workaround log2f missing on Android
2017-06-21 23:05:11 -07:00
Chris Robinson
6fcbb7c738
Remove an unnecessary variable
2017-06-21 11:34:26 -07:00
Chris Robinson
e09468cdca
Trace if dithering is enabled
2017-06-19 00:17:11 -07:00
Chris Robinson
0a361fa9e2
"Convert" the QSA backend to the new API
...
I say "convert" because it takes the lazy way and essentially just embeds the
wrappers into the backend. It's done this way because I lack the means to check
any changes, even syntactically. This also means the device's ExtraData field
is still needed.
However, this does mean all the backends are now using the new API. Code
related to the old interface can now be removed.
2017-06-18 03:07:02 -07:00
Chris Robinson
2b013fc54e
Make the dithering depth configurable
2017-06-17 23:09:51 -07:00
Chris Robinson
e3a825b37c
Apply dither separately from output
2017-06-17 02:42:01 -07:00
Chris Robinson
9fc01934c2
Use helpers to get data from byte streams
2017-06-16 22:58:13 -07:00
Chris Robinson
879b79740f
Round the B-Format HRTF response where the multiple is defined
2017-06-16 19:00:00 -07:00
Chris Robinson
d4f3490a88
Limit device buffer based on PulseAudio's tlength
...
Unfortunately PulseAudio has a habit of limiting tlength, and trying to
calculate the device's buffer length to write regardless of tlength could
result in some amount always being writable.
2017-06-15 21:39:09 -07:00
rdb
39e4756b37
Implement GetProcPath for FreeBSD
2017-06-09 15:19:03 +02:00
Chris Robinson
b4aea294c3
Calculate chorus and flanger mod delays separately from feedback
2017-06-07 12:42:54 -07:00
Chris Robinson
10ff6cba9c
Make the late lines' delay the delay average for modulation
...
Similar to the recent chorus and flanger changes, the modulation delay now
swings between -n to +n, where n is less than the delay length. This brings up
a slight issue with the linear interpolation, as modff doesn't produce the
correct fraction value for interpolation (it's inverted, with 0 being closer to
the next sample and 1 being closer to the base). So it's using nearest
interpolation for now.
2017-06-07 10:39:19 -07:00
Chris Robinson
e893211b65
Restrict ClampedDist to RefDistance for invalid distance attenuation
2017-05-30 05:13:54 -07:00
Chris Robinson
6d4adc6ad6
Use an RMS limit of -3dB for the output limiter
2017-05-29 03:38:27 -07:00
Chris Robinson
a79e8f3d95
Use peak limiting rather than RMS detection
2017-05-27 22:47:40 -07:00
Chris Robinson
e9505b164e
Fix source sends' initial HF absorption and decay calculation
...
The HF absorption is applied given the source distance, as relative to the
source's immediate environment, with additional absorption being applied given
the room/reverb environment. This does double up the amount of absorption
compared to the dry path, but it can be assumed the initial reflections travel
a longer distance.
2017-05-27 22:33:40 -07:00