Chris Robinson
8724c1ce4b
Remove extraneous parenthesis
2020-08-28 23:28:20 -07:00
Chris Robinson
3fdee6c814
Calculate the correct number of convolution segments
2020-08-28 23:08:44 -07:00
Chris Robinson
ecfb0d4f5b
Limit convolution processing to the output ambisonic order
2020-08-28 06:47:21 -07:00
Chris Robinson
7266cd8b6c
Don't dereference a null convolution filter
2020-08-28 06:44:05 -07:00
Chris Robinson
52531d8b72
Support B-Format impulse responses for convolution
2020-08-28 05:48:26 -07:00
Chris Robinson
986a58d5b4
Pass a BufferStorage to EffectState::createBuffer
2020-08-28 00:44:55 -07:00
Chris Robinson
1f486f820e
Use a separate structure for buffer storage
2020-08-28 00:09:46 -07:00
Chris Robinson
ecf30de36f
Rename buffer_formats to buffer_storage
2020-08-27 23:02:17 -07:00
Chris Robinson
a9ebcdcb7f
Handle 0-length convolution buffers
2020-08-27 21:32:25 -07:00
Chris Robinson
3c09f17421
Blend panned B-Format source directivity given its radius
2020-08-27 08:44:29 -07:00
Chris Robinson
2a01940041
De-duplicate LoadSampleArray and FmtTypeTraits
2020-08-26 21:29:16 -07:00
Chris Robinson
9dab2db33b
Avoid copying the convolution filter history to shift it
...
Instead, the current/head/newest segment is tracked, and decremented with each
process to overwrite the oldest.
2020-08-25 15:43:48 -07:00
Chris Robinson
801c7a9226
Initial implementation of the convolution effect
...
Currently limited to mono and stereo impulse responses, and stereo IRs try to
use direct/real output rather than panning.
2020-08-25 04:21:10 -07:00
Chris Robinson
a6bd53c4e1
Store a reference to the effect buffer as an active property
2020-08-24 20:40:24 -07:00
Chris Robinson
1a9fbc1b2f
Stub out a convolution effect state
2020-08-24 20:04:16 -07:00
Chris Robinson
b955479e18
Recognize a convolution reverb effect type
2020-08-24 20:00:58 -07:00
Chris Robinson
9e5a388dfe
Add a method for effects to create persistent buffer data
2020-08-24 19:13:46 -07:00
Chris Robinson
9d61484e4b
Move storable buffer format info to a separate source
2020-08-24 17:59:07 -07:00
Chris Robinson
73ab9d46c8
Use an intrusive_ptr to hold the unapplied effect state
2020-08-24 16:34:53 -07:00
Chris Robinson
ff5c9d1c15
Use an intrusive_ptr for ALeffectslotProps::State
2020-08-24 14:09:26 -07:00
Chris Robinson
23259b48dd
Avoid a zero-length array for the FlexArray definition
...
Newer GCCs are warning about FlexArray being used at the end of another struct.
Though not the most ideal to always allocate space for at least 1 element,
actual 0-sized uses are rare and for smaller element types.
2020-08-15 23:22:10 -07:00
Chris Robinson
b12cd77d32
Use a wait predicate instead of a while loop
2020-08-12 10:00:43 -07:00
Chris Robinson
475ed0f039
Use a FlexArray instead of a vector for distance compensation
2020-08-11 05:59:20 -07:00
Chris Robinson
e8b3e82f96
Change a couple functions into member functions
2020-08-07 06:22:39 -07:00
Chris Robinson
84354c792e
Cleanup OSS enumeration and fix duplicate names
2020-08-07 00:11:29 -07:00
Chris Robinson
f138369808
Add an option to auto-connect JACK ports
2020-08-05 00:27:12 -07:00
Chris Robinson
516de157d8
Use std::array instead of some C-style arrays
2020-08-05 00:10:10 -07:00
Chris Robinson
2e1645f32a
Print the error from pthread_setschedparam
2020-08-04 12:46:27 -07:00
Chris Robinson
39a2f0626a
Use a predicate instead of a while loop
2020-07-23 09:03:47 -07:00
Chris Robinson
91df03f7eb
Simplify mixer buffer size saturation handling
2020-07-23 09:03:47 -07:00
David Carlier
d3ffaeb8d7
GetProcBinary implementation for Haiku.
2020-07-21 17:22:38 +00:00
Chris Robinson
da25557ed6
Remove dead code
2020-06-30 16:44:14 -07:00
Chris Robinson
b0e72266b6
Don't round up the dst size when the src size was saturated
2020-06-29 19:41:08 -07:00
Chris Robinson
775187788a
Fix SrcBufferSize calculation when downsampling
2020-06-29 12:34:12 -07:00
Chris Robinson
88ad84edf6
Reduce the MAX_PITCH to 10
...
255 is insanely overkill. The bsinc resamplers fade to silence after a few
octaves, and the others would be a mess.
2020-06-29 11:32:15 -07:00
Chris Robinson
f81558c948
Avoid including windows.h in threads.h
2020-06-28 12:55:55 -07:00
Chris Robinson
b0b720c609
Avoid an unnecessary local variable
2020-06-16 14:01:39 -07:00
Chris Robinson
bd0144065a
Set channel labels from WFX channel masks
2020-06-15 20:21:54 -07:00
Chris Robinson
c142b49981
Print the name of unhandled PulseAudio channels
2020-06-15 14:07:21 -07:00
Chris Robinson
6db6d1510a
Remove the Lower channel labels and rename the Upper labels
2020-06-15 13:49:45 -07:00
Chris Robinson
401a9bacd1
Don't bother with otherwise unused Aux channels
2020-06-15 02:27:29 -07:00
Chris Robinson
540315b07c
Handle the front stablizer with the B-Format decoder
2020-06-15 02:13:14 -07:00
Chris Robinson
6ce9bf6c94
Move a couple related functions to the backend base
2020-06-12 12:53:47 -07:00
Chris Robinson
c50250c978
Use a range-for loop instead of for_each
2020-06-09 21:28:09 -07:00
Chris Robinson
b2b3ad570b
Use better types for array lengths
2020-06-09 11:52:48 -07:00
Chris Robinson
ab3ccb513a
Check the returned sample endianess with sndio
2020-06-07 11:50:16 -07:00
Chris Robinson
2a324d34be
Fix a return value
2020-06-07 11:47:39 -07:00
Chris Robinson
b4a52321c4
Use a safer layout if sndio changes the channel count
2020-06-07 11:45:06 -07:00
Chris Robinson
c8f67cffc5
Use a more appropriate size value for copying
2020-06-07 11:00:19 -07:00
Chris Robinson
03eb6a01b9
Use a better type for array access
2020-06-07 11:00:19 -07:00