Chris Robinson
e3a70e5021
Scale output of effects to compensate for device down-mixing
2010-05-12 04:56:03 -07:00
Chris Robinson
af4faaf666
Use a UIntMap for the effect slot list
2010-05-12 02:20:14 -07:00
Chris Robinson
f2548570b8
Store the buffer's original data size and block alignment
2010-05-12 01:36:09 -07:00
Chris Robinson
d678f1d88b
Store looping locally when mixing a source
2010-05-12 00:38:04 -07:00
Chris Robinson
f0ce1bff3e
Simplify and fix applying a source offset
2010-05-11 11:59:41 -07:00
Chris Robinson
ab3c23478d
Use a separate function to convert compressed bytes to frames
2010-05-11 11:06:48 -07:00
Chris Robinson
4e65e9bfa9
Only a streaming source can have a processed buffer
2010-05-11 08:53:38 -07:00
Chris Robinson
053aeee5d3
Rename a variable
2010-05-11 07:09:44 -07:00
Chris Robinson
1652dc02ab
Look for the map insertion point using a binary search
2010-05-10 11:40:57 -07:00
Chris Robinson
099c2f3593
Use a simple loop to set multi-channel dry gains
2010-05-09 22:06:10 -07:00
Chris Robinson
0378422fcb
Use a map to store sources and buffers
...
And do a lookup using a binary search instead of linear
2010-05-01 19:59:41 -07:00
Chris Robinson
0760415d08
Use doubles instead of floats for the source offset calculations
2010-04-28 17:58:20 -07:00
Chris Robinson
5730ccaa39
Combine AL and ALC function lists
2010-04-28 15:07:38 -07:00
Chris Robinson
aaa7082aa8
Get the offset even if the current buffer is 0
2010-04-28 14:08:10 -07:00
Chris Robinson
5d7815beed
Only apply ambient gain to available output channels
2010-04-27 11:39:54 -07:00
Chris Robinson
a0ee2ccce7
Add a couple missing values to the *GetEnumValue tables
2010-04-25 08:40:37 -07:00
Chris Robinson
110be7f500
Add an option to scale the output mix
2010-04-23 07:54:43 -07:00
Chris Robinson
52663e8a44
Combine two loops into one
2010-04-23 07:23:38 -07:00
Chris Robinson
8646647b3e
Update stereodup config option comment
2010-04-22 05:22:20 -07:00
Chris Robinson
a04dac670e
Make stereo duplication a property of the device
...
Further, don't use it with mono/stereo output
2010-04-20 03:57:40 -07:00
Chris Robinson
81dd71dd71
Stop and start the backend device only if new attributes are being requested
2010-04-17 00:50:28 -07:00
Chris Robinson
4d15391c88
Disable PulseAudio's write callback when disconnecting
2010-04-17 00:27:13 -07:00
Chris Robinson
fc2473f826
Translate the source position separately
...
This is to handle the case where an app specifies the same values for the
source and listener, and expects centered panning. This fails due to floating-
point errors in the matrix, causing the result to be ever-so-slightly off of 0.
This error would normally be hidden by the position normalization, which will
not lengthen a distance shorter than the reference distance so the panning
would be nearly imperceptible. But that also fails if the reference distance
is set to 0, causing the position to expand to a full unit.
Keep the 4x4 matrix calculations, however. It will still be useful for the
requested listener matrix extension.
2010-04-16 02:09:53 -07:00
Chris Robinson
000d848f0b
Return immediately when no layout is specified
2010-04-11 23:03:36 -07:00
Chris Robinson
3c5007352e
More type fixes
2010-04-11 20:17:43 -07:00
Chris Robinson
e0fa497948
Use a linear scaling when sending multi-channel sources to auxiliary slots
2010-04-11 15:20:46 -07:00
Chris Robinson
f082c73539
Use proper types for some variables
2010-04-11 14:33:22 -07:00
Chris Robinson
d4f8bd665f
Only consider output speakers for the panning LUT
2010-04-11 14:23:10 -07:00
Chris Robinson
58d0db6eab
Don't use LIB_INSTALL_DIR since that can be the full path
2010-04-11 12:42:47 -07:00
Chris Robinson
1544ddf0a5
Avoid reading buffer 0's size
2010-04-10 17:31:08 -07:00
Chris Robinson
488ec612bb
Avoid hard-coding the channel count
2010-04-09 14:21:47 -07:00
Chris Robinson
484702a2e5
Get the speaker arrangement before setting up the channel matrix
2010-04-09 12:27:30 -07:00
Chris Robinson
371058fb9e
Re-enable stereo duplication
2010-04-08 23:00:14 -07:00
Chris Robinson
97b00670f5
Use the proper type for the speaker-to-channel map
2010-04-08 18:05:24 -07:00
Chris Robinson
704b386cc5
Scale the ring modulator's mono input when expanding to multi-channel
2010-04-08 16:34:51 -07:00
Chris Robinson
aace50ebf4
Store the panning LUT in the device
2010-04-08 15:58:11 -07:00
Chris Robinson
49201e892b
Use a single layout for the virtual speakers
...
The downmix should probably be improved to take the angles into account
2010-04-08 15:41:32 -07:00
Chris Robinson
19b8deba66
Apply a scalar to the output downmix so channels don't get more than a 100% mix
...
All channels get the same scalar so channel balance (should be) maintained
2010-04-08 15:23:03 -07:00
Chris Robinson
068c0076af
Set the device channel matrix when the device is reset
2010-04-08 15:02:03 -07:00
Chris Robinson
37c93a6ad8
Always mix internally at 8.1
...
The channels are remixed when writing to the output buffer. Stereo duplication
is currently broken, but this can be restored later
2010-04-08 14:47:12 -07:00
Chris Robinson
1b1c76da34
Invert device channel map array
2010-04-08 13:11:21 -07:00
Chris Robinson
5db1aec1d1
Make some functions static
2010-04-08 12:14:18 -07:00
Chris Robinson
05ca5c88ef
Update alsoftrc.sample for the ring modulator
2010-04-08 10:44:35 -07:00
Chris Robinson
980167c99b
Modulate with the requested waveform in the ring modulator
2010-04-08 10:37:09 -07:00
Chris Robinson
76f8c1e4e2
Implement a basic high-pass cutoff filter in the ring modulator
2010-04-08 09:36:20 -07:00
Chris Robinson
b273d616ad
Implement a skeleton Ring Modulator effect
2010-04-08 08:54:28 -07:00
Chris Robinson
c16b895460
Fix non-dynamic PortAudio
2010-04-01 03:25:39 -07:00
Chris Robinson
ec1a4884d9
Release 1.12.854
2010-03-29 22:05:21 -07:00
Chris Robinson
bb4ed8b1db
ALC_EXT_thread_local_context is now complete
2010-03-29 22:01:54 -07:00
Chris Robinson
4e54f93477
Make sure ALbyte and ALCbyte are signed
2010-03-28 23:24:41 -07:00