Commit Graph

895 Commits

Author SHA1 Message Date
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 openal-soft-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
Chris Robinson 4ac1772149 No need to continue supporting _OPENAL32LIB 2010-03-28 02:12:32 -07:00
Chris Robinson 3f235c51f6 Remove a couple unnecessary lines 2010-03-26 21:58:19 -07:00
Chris Robinson 7bdf0d5156 Shorten some variable names 2010-03-26 00:41:27 -07:00
Chris Robinson d2a6fd58a3 Use unsigned types for mono and stereo source count hints 2010-03-25 18:39:16 -07:00
Chris Robinson 05098862c5 Fix comparison check 2010-03-24 23:48:38 -07:00
Chris Robinson c8dd0246da Fix alcGetEnumValue error handling 2010-03-24 22:57:35 -07:00