Commit Graph

202 Commits

Author SHA1 Message Date
Joerg Mueller
02d2472baa 3D Audio GSoC:
Code documentation.

Also:
* Fix: rlint for MSVC.
* Minor other small fixes/changes.
2011-08-16 13:00:55 +00:00
Joerg Mueller
a458de88b6 3D Audio GSoC:
High quality resampling on mixdown, linear for playback.

* Lots of improvements and fixes for the JOS resampler, now it works fine!
* High quality filter coefficients for the JOS resampler (sorry for the 5 MB source file).
* Fix for GE orientation bug. Note: moto uses x,y,z,w quaternion storage, while rest of blender uses w,x,y,z.
* Minor changes/fixes.
2011-08-15 21:50:09 +00:00
Joerg Mueller
fee7337249 3D Audio GSoC:
Adding a mono flag to mixdown non-mono sounds for 3D audio.

* Added mono sound loading.
* Bugfix: AUD_COMPARE_SPECS usage was wrong.
* Bugfix: JOS resampler = instead of ==.
* Bugfix: Change of a sound should apply settings in AUD_SequencerHandle.
* Bugfix: Memory leak when canceling open sound operator.
2011-08-11 11:41:24 +00:00
Joerg Mueller
a672ab5e73 3D Audio GSoC:
Improved waveform drawing in the sequencer.

* Drawing the waveform of a sequencer strip is now independent from whether the sound is cached or not.
* Improved drawing of the waveform in the sequencer (especially speed!).
* Making it possible to vertically zoom more in the sequencer to better see the waveform for lipsync.
* Fixed a bug which crashed blender on loading a sound file via ffmpeg.
2011-08-09 14:10:32 +00:00
Joerg Mueller
13249b925e 3D Audio GSoC:
Speaker objects fully functional!

Minor changes:
* Fixed three memory bugs found via valgrind.
* Fixed bug with jack transport crashing after file loading.
* Sound NLA Strips now start at CFRA instead of 0.
2011-08-09 08:38:14 +00:00
Joerg Mueller
2d884fc035 3D Audio GSoC:
* Pepper depends on ffmpeg 0.7.1 or higher now, windows and mac build systems set to ffmpeg-0.8
* Fixed orientation retrieval in OpenAL device code.
* Added stopAll() method to AUD_IDevice (also for Python) and call it on BGE exit
* Changed BGE to use audaspace via native C++ instead over the C API.
* Made AUD_SequencerFactory and AUD_SequencerEntry thread safe.
* Changed sound caching into a flag which fixes problems on file loading, especially with undo.
* Removed unused parameter from sound_mute_scene_sound
* Fixed bug: changing FPS didn't update the sequencer sound positions.
* Fixed bug: Properties of sequencer strips weren't set correctly.
* Minor warning fixes.
2011-08-07 11:54:58 +00:00
Joerg Mueller
4370099fb0 3D Audio GSoC:
Added a NULLHandle to prevent a crash in Python API when the device is the NULLDevice.
2011-08-07 06:22:50 +00:00
Joerg Mueller
c334bf69a7 3D Audio GSoC:
Mixdown functionality.

* Mixdown possible via libsndfile and ffmpeg!
* Fixed some ffmpeg deprecation warnings
* Mixdown UI only shows working Container, Codec and Format combinations!
* Minor bugs and warnings fixed
2011-08-06 17:57:20 +00:00
Joerg Mueller
507dbeab45 3D Audio GSoC:
JOS Resampler: Fix for windows...
2011-08-05 07:01:54 +00:00
Joerg Mueller
bc1650a226 3D Audio GSoC:
Implementation of Julius O. Smith's resampling algorithm for high quality audio resampling.

The filter currently is a sinc filter with a 0.9 cutt-off and windowed by a kaiser window (beta = 10).
Also includes minor changes in the linear resampler.
2011-08-04 13:47:15 +00:00
Joerg Mueller
6d7490632f 3D Audio GSoC:
* Minor audaspace library improvements.
* Considering location, velocity and orientation in AUD_SequencerReader and AUD_SequencerHandle.
* Bugfix: Maximum and Minimum volume weren't used before in the software device.
* Bugfix: Adding speaker objects via info space crashed.
* Listener settings now get updated in the audio system.
2011-08-03 09:25:40 +00:00
Joerg Mueller
4b5a371b65 3D Audio GSoC:
* Fix for sequencer strip IDs, only one strip played.
* Fix for PyAPI sample rate.
* Enhanced Double Reader to return more data if possible.
2011-07-30 16:24:11 +00:00
Joerg Mueller
bd6ca0570e 3D Audio GSoC:
Implemented basic audio animation.

* AnimatableProperty: Propper cache writing and spline interpolation for reading (the solution for stair steps in audio animation)
* Animatable properties so far are: volume, pitch, panning
* Users note: Changing the pitch of a sound results in wrong seeking, due to the resulting playback length difference.
* Users note: Panning only works for mono sources, values are in the range [-2..2], this basically controls the angle of the sound, 0 is front, -1 left, 1 right and 2 and -2 are back. Typical stereo panning only supports [-1..1].
* Disabled animation of audio related ffmpeg output parameters.
* Scene Audio Panel: 3D Listener settings also for Renderer, new Volume property (animatable!), Update/Bake buttons for animation problems, moved sampling rate and channel count here
2011-07-28 13:58:59 +00:00
Joerg Mueller
9077b8bffc 3D Audio GSoC:
Main: Complete rewrite of the sequencer related audio code to support 3D Audio objects later and especially adressing the animation system problems (see mailing list if interested).
Note: Animation is not working yet, so with this commit volume animation doesn't work anymore, that's the next step.

Minor things:
* Changed AUD_Reference behaviour a little to be more usage safe.
* Fixed bug in AUD_I3DHandle: Missing virtual destructor
* Fixed enmus in AUD_Space.h
* Fixed a warning in rna_scene.c
* Removed an unneeded call in rna_sound.c
2011-07-26 13:56:31 +00:00
Joerg Mueller
1193be6eaa 3D Audio GSoC:
* Reviewed and improved the linear resampler. Now it should work pretty good also for special cases that caused errors previously.
* Fixed a crash in the GE when a sound actuator doesn't have a sound assigned.
* Corrected the OpenAL device's threading code. This is a bugfix for #27913, thanks to Juha Mäki-Kanto for helping to resolve this.
2011-07-23 15:59:10 +00:00
Joerg Mueller
4532bd731d Merge with trunk up to r38584. 2011-07-21 21:11:58 +00:00
Campbell Barton
5792bd7cc7 cmake: cleanup include paths, some duplicates and going up some unneeded dirs. 2011-07-17 09:11:13 +00:00
Campbell Barton
410c5e3cd2 cmake source definitions:
remove missing includes and use more strict formatting.
2011-07-16 23:01:14 +00:00
Joerg Mueller
d838d82151 3D Audio GSoC:
MSVC compile fixes.
2011-07-14 05:56:47 +00:00
Joerg Mueller
f12614234a 3D Audio GSoC:
* Fixed a warning in AUD_DoubleReader.cpp
* Removed some unneeded includes
* Fixed a bug resulting in a crash when stopping a sound
* Fixed a bug where a NaN resulted in a horrible memory error
* Fixed a typo bug which caused crackling in audio playback and export
* Added memory debugging code (ifdefed)
2011-07-13 12:16:45 +00:00
Joerg Mueller
208b69e3a7 3D Audio GSoC:
Software 3D Audio implementation.
2011-07-12 13:11:00 +00:00
Joerg Mueller
fdb932370b 3D Audio GSoC:
Fixes for crashes reported by Moguri.
2011-06-24 06:39:03 +00:00
Joerg Mueller
cc246eaca7 3D Audio GSoC:
- Fixes for MSVC compiling.
- Fix for ffmpeg audio export with timebase, which fixes vorbis encoding (the only codec using this).
2011-06-23 07:16:06 +00:00
Joerg Mueller
2d3d025e8c 3D Audio GSoC:
- Sequencer dynamics: Now it's possible to change the output channels and the resampling quality also increased (previously maximum quality was 44,1 kHz)
- Changed two buffers to use ffmpeg allocation, not sure if that helps somehow.
2011-06-21 20:39:41 +00:00
Joerg Mueller
8e6b5598e0 3D Audio GSoC:
Adapting all readers to maximally support dynamic resampling/rechanneling, introducing a DynamicIIRFilter for example.
2011-06-21 20:35:09 +00:00
Joerg Mueller
6d5b224184 3D Audio GSoC:
Removing unneeded AUD_ResampleFactory.
2011-06-21 20:32:25 +00:00
Joerg Mueller
fba07308bf 3D Audio GSoC:
- Converting AUD_SampleRate to a double
- Removing AUD_DefaultMixer
- Introducing AUD_ResampleReader as base class for all resampling readers.
2011-06-21 20:29:02 +00:00
Joerg Mueller
d5eaffda23 3D Audio GSoC:
Dynamic resampling for libsamplerate and linear resampling.
2011-06-21 20:25:48 +00:00
Joerg Mueller
c89b4e4b66 3D Audio GSoC:
- Implemented a nice rechanneling solution with unofficial speaker arrangement standards similar to what OpenAL soft has
- Renamend AUD_Channel in the C API to AUD_Handle
- Removed the unlogical 7.2 speaker configuration, that's a hardware only config
2011-06-21 20:24:40 +00:00
Joerg Mueller
044887b5a4 3D Audio GSoC:
- Created Handle classes
- Changed Reference counting completely
- Fixing some streaming bugs
- Completely disabled OpenAL Buffered Factories (they were unused anyway)
2011-06-21 20:21:43 +00:00
Joerg Mueller
cc71dcc218 3D Audio GSoC:
Streaming improved.
2011-06-21 20:14:53 +00:00
Joerg Mueller
3d932ba496 3D Audio GSoC:
Buffer.assureSize - a function that should long have been there.
2011-06-21 20:13:27 +00:00
Joerg Mueller
f2ceca4eb0 3D Audio GSoC:
Code cleanup: rewriting some functions to static methods.
2011-06-21 20:12:39 +00:00
Joerg Mueller
207911bdb3 Merge with trunk r37677 2011-06-20 22:55:18 +00:00
Campbell Barton
968b2a8afb rename cmake include/libraries to conform with suggested cmake names 2011-06-18 14:12:54 +00:00
Campbell Barton
549c2c58a1 added FindSndFile cmake module to replace inline checks. 2011-06-18 12:12:19 +00:00
Joerg Mueller
a90d30c863 3D Audio GSoC:
GameEngine Python access sound actuator's sound (with setting! :-D).
2011-06-16 09:13:29 +00:00
Joerg Mueller
49f7a4d8f8 3D Audio GSoC:
Temporary fix for MSVC.
2011-06-15 18:52:52 +00:00
Joerg Mueller
f8212f4e03 3D Audio GSoC:
Removing unneeded const from Factory::createReader.
2011-06-14 21:22:22 +00:00
Joerg Mueller
d8974a60f6 3D Audio GSoC:
Changed Readers to top-down architecture instead of bottom-up.
2011-06-14 12:13:19 +00:00
Joerg Mueller
ef5f78ecc7 3D Audio GSoC:
Making it possible to access blenders internal sounds via Python.
2011-06-05 22:06:29 +00:00
Joerg Mueller
d1c542ce05 3D Audio GSoC:
Memory management improvements.
2011-06-03 23:28:57 +00:00
Joerg Mueller
cd04cff180 Merge with trunk revision 37149. 2011-06-03 23:24:01 +00:00
Campbell Barton
b434550edc fix for recent cmake changes 2011-05-31 09:27:33 +00:00
Campbell Barton
09da9d4393 cmake maintenance
blender_add_lib now takes a separate include argument to suppress warnings in system includes (mostly ffmpeg & python).
also only build wm_apple.c on apple+carbon configuration.
2011-05-31 01:15:44 +00:00
Joerg Mueller
57d190ee10 3D Audio GSoC:
Changing converter functions to work when input and output buffer are the same.
2011-05-29 11:25:05 +00:00
Peter Schlaile
42121590f4 == FFMPEG ==
Added central compatibility header file, which enables blender to compile
against very old ffmpeg versions as well as very new versions using the
*NEW* API. (Old API functions are simulated using macros and inline functions)

Added a whole lot of additional checks, tested against 6 different versions
down the timeline, hopefully, now finally all is well.
2011-05-27 23:33:40 +00:00
Peter Schlaile
4b9a63c6d3 == FFMPEG ==
* removed a lot of old cruft code for ancient ffmpeg versions
* made it compile again against latest ffmpeg / libav GIT
  (also shouldn't break distro ffmpegs, since those API changes
  have been introduced over a year ago. If it nevertheless breaks,
  please send me an email)
2011-05-26 21:57:02 +00:00
Joerg Mueller
5f08bfd46c Fix for [#26990] Loading file w packed audio crashes
FFMPEG was reallocating buffers it didn't own and wasn't allowed to. This workaround should work now flawlessly.

Also fixing a bug regarding unpacking sounds, the UI stated unpacking to //audio/filename while it was unpacking to //sounds/filename
2011-04-18 14:24:36 +00:00
Campbell Barton
a41c0c324a fix [#26937] Radio button text truncation should start at beginning of string
ensure start of text is always visible.

- also left in test for fix [#26933] which left it broken.
- quiet warning in AUD Py API.
2011-04-15 01:32:37 +00:00