Chris Robinson
15ad5245bf
Move the FPU mode declarations to a separate header
...
Also don't use inheritance with FPUCtl.
2018-01-11 08:44:52 -08:00
Chris Robinson
ef63ec3fe9
Use one macro to handle both resample padding sizes
2018-01-09 23:55:59 -08:00
Chris Robinson
8253014fe9
Fix some types to make MSVC happy
2017-12-17 15:56:30 -08:00
Chris Robinson
a4d357de06
Add a higher quality bsinc resampler using 24 sample points
...
This improves the transition width, allowing more of the higher frequencies
remain audible. It would be preferrable to have an upper limit of 32 points
instead of 48, to reduce the overall table size and the CPU cost for down-
sampling.
2017-08-27 10:16:36 -07:00
Chris Robinson
561e95528f
Rename the bsinc resampler to bsinc12
2017-08-25 05:52:19 -07:00
Chris Robinson
5008024e73
Store the sinc4 table in the filter state
...
Also rename the resampler functions to remove the unnecessary '32' token.
2017-08-16 18:09:53 -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
7cadbebe9f
Calculate the converter stepping value using floating point
2017-06-28 10:17:36 -07:00
Chris Robinson
b13fead555
Round the converter's stepping value
2017-06-26 11:04:23 -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
c465718ddd
Use the bsinc resampler for the converter
2017-06-25 04:07:06 -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
55011d4bfd
Use a different way to get the size of structs with flexible array members
2017-04-18 14:11:15 -07:00
Chris Robinson
6476f3277a
Mark some pointers with restrict
2017-04-13 11:48:43 -07:00
Chris Robinson
901804d724
Store the ambisonic order separate from the channel enum
2017-04-12 18:26:07 -07:00
Chris Robinson
46046f9caa
Remove an unnecessary variable
2017-04-11 12:06:57 -07:00
Chris Robinson
05531fbee4
Use the correct channel conversion functions
2017-04-11 11:47:23 -07:00
Chris Robinson
bcdd1cee10
Add a mono<->stereo converter
...
This converter always outputs floats, and uses energy-preserving scaling.
2017-04-11 07:25:55 -07:00
Chris Robinson
caae349fdc
Update the given source pointer in the sample converter
2017-04-10 13:40:45 -07:00
Chris Robinson
6cc69c8d94
Add a sample converter
...
This is intended to do conversions for interleaved samples, and supports
changing from one DevFmtType to another as well as resampling. It does not
handle remixing channels.
The mixer is more optimized to use the resampling functions directly. However,
this should prove useful for recording with certain backends that won't do the
conversion themselves.
2017-04-10 09:26:06 -07:00