Commit Graph
144 Commits
Author SHA1 Message Date
Tobias Doerffel 20589f19e4 Mixer: rewrote processing chain of rendered audio buffers
Until now, Mixer not only was responsible for rendering audio buffers
but also managed writing them to audio backend (through a FIFO) and
handled various quality related parameters.

All this functionality has been moved into the new AudioOutputContext
class. It glues together AudioBackend (formerly called AudioDevice),
global quality settings and the Mixer.

The AudioOutputContext class creates a FifoWriter which calls
Mixer::renderNextBuffer() and writes the output into the BufferFifo of
the AudioOutputContext it belongs to. The BufferFifo is read by the
according AudioBackend which belongs to the AudioOutputContext as well.

The AudioOutputContext also handles resampling in case the AudioBackend
wants the buffers in a different samplerate.

During this rewrite the Mixer class and the according source files have
been renamed from "mixer" to "Mixer". This results in small changes
all over LMMS' code base.
2009-11-29 01:46:23 +01:00
Markus Schmidt 3a046201ba + Deesser: use correct threshold
(cherry picked from commit beefb7c7f7d8cda828c801942d4daad34d7191ed)
2009-11-10 10:27:58 +01:00
Markus Schmidt 7d92ad6ac7 + Equalizer: remove unused variables
(cherry picked from commit a45db777d5b645a0ce8add2c88d2f3c8940862f3)
2009-11-10 10:27:14 +01:00
Markus Schmidt 40015f001d + Gain reduction module: clearer authorship information
(cherry picked from commit 55a1aeaf25dd5716d8adfc3322e3a2a00f5caa8f)
2009-11-10 10:26:34 +01:00
Krzysztof Foltman 5aa154aeb1 + Framework: placeholder for waveshaper class (need it to merge further changes from Markus)
(cherry picked from commit d48420ce85389af6d20623af83ca20082f1cdcaa)
2009-11-10 10:25:00 +01:00
Markus Schmidt 5691c6d474 New widget: Tube with light and falloff
(cherry picked from commit 7dd7e84cf23e65fed3eae683c8d39b5d975e0e36)
2009-11-08 22:47:54 +01:00
Markus Schmidt 552a5951b1 New Deesser, some minor bugs in sc-comp
(cherry picked from commit 599b6c04b61f28f0c9d6c2f30844c44c20927a13)
2009-11-08 22:44:38 +01:00
Markus Schmidt ea0c6c1c7b Sidechain compressor bugs/settings, 3 equalizer
(cherry picked from commit 657a80ae2f423cb7f21b8fadcc2bc9cbd8e2c55f)
2009-11-08 22:43:10 +01:00
Markus Schmidt a2fd414d1a Minor bugs, sidechain frequency display
(cherry picked from commit e98ecb9e0a71af6295499877dafe22d2bae5cc89)
2009-11-08 22:41:38 +01:00
Markus Schmidt 17425ce70f New FX: Sidechain compressor
(cherry picked from commit c5c8786de3e410c64d9c9d4cd70fd03a4c697a2e)
2009-11-08 22:36:53 +01:00
Markus Schmidt 4ab2c68bd1 New button (big mama), VU-meters with falloff and hold, bug in delay (value)
(cherry picked from commit 27d2c6f978d07b1daaa4393732481f3016a0a528)
2009-11-08 14:37:00 +01:00
Markus Schmidt 0331180cd1 In the middle of nowhere
(cherry picked from commit ade6cdcd3f0f8d92a82e53f5c9d2bea451148927)
2009-11-08 14:34:44 +01:00
Markus Schmidt 47f31ff1c7 Fully redesigned
(cherry picked from commit b5915c7d30802e64c5f4ce9a5bfe55690addbb03)
2009-11-08 14:33:00 +01:00
Markus Schmidt 825e9394d7 Sidebars, GUI layouts, black buttons again, input knob for compressor
(cherry picked from commit bc4c38524486f1e29985f32e0cc42e0907e85a23)
2009-11-08 14:30:26 +01:00
Markus Schmidt 5f8962d5f2 Added 6 new LED's and peak hold function for VU-meters
(cherry picked from commit 81cfb6dbc82f73a8d251238a5a342d152c39adb2)
2009-11-08 14:28:18 +01:00
Markus Schmidt 9313d27e5c meter_gain in gain_reduction module with falloff
(cherry picked from commit 81eaa78018b52a076dd7f904980bdbbcc312710b)
2009-11-08 14:25:05 +01:00
Tobias Doerffel 01ae99d6aa Build system: another stupid compiler flag fix for OS X
All versions of OS X except Snow Leopard ship GCC 4.0 which does not
understand the "-finline-functions-called-once" flag. Therefore do not
use this flag when building for OS X.
2009-10-17 23:53:48 +02:00
Krzysztof Foltman b60527e699 + DSP primitives: fix a rather stupid bug in clamping functions
(cherry picked from commit d55bbe5f163d3e32f3428c0a1f2643d4fe999a1b)
2009-10-13 09:37:23 +02:00
Krzysztof Foltman f8c6833e9f + Monosynth: fix type bug that made it impossible to compile with g++ 4.2
(cherry picked from commit f2cd6987deba9f82a9824529bad6de2ab89e0bc6)
2009-10-13 09:36:26 +02:00
Krzysztof Foltman 9b29e3a2a6 + AutoHell: update AUTHORS file
(cherry picked from commit 3897c98a85401ee3a99b0adde4a2428adb6e9b53)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman b89707c6da + GUI, Multiband Compressor, Toggle button: apply more fixes and additions by Markus Schmidt
(cherry picked from commit 6717c99440d6bef04a16447145d8beb2b0b3f16e)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman 86212e2691 + Multiband Compressor: better metadata
(cherry picked from commit 5763a3ca62a1c6de51b4ed1a886cb85fa99694f2)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman 5fd28cb5f3 + Multiband Compressor: new module (first version, by Markus Schmidt, based on code by me and Thor) plus associated refactoring and graph colour scheme update
(cherry picked from commit 9912931955299424aac7f32685d1a04003765995)
2009-10-11 00:18:42 +02:00
Krzysztof Foltman 1294ff62ee + Organ, Framework: use std::vector::front() instead of std::vector::data() (may possibly fix the MacOS X compilation problem reported by Daniel Klaffenbach and Tobias Doerffel)
(cherry picked from commit 628eb1543591f5137e6001abad439d01942ffd4a)
2009-10-05 23:47:38 +02:00
Tobias Doerffel 68bd237061 Revert "CALF: removed usage of non-standard std::vector::data()"
This reverts commit dd260245ec.

The commit fixed the compilation problem but according to upstream
causes new problems because of the huge data structures on the stack.

Upstream provided a better patch which will be applied next.
2009-10-05 23:44:53 +02:00
Tobias Doerffel dd260245ec CALF: removed usage of non-standard std::vector::data()
The std::vector::data() method is a special feature of GCC and
therefore not portable. This causes a compile failure of CALF plugin
on OS X. Therefore I replaced the code with standard arrays
allocated on stack.

Upstream needs to be informed about this patch.

Thanks to Daniel Klaffenbach for pointing out this issue.
2009-10-03 01:16:05 +02:00
Krzysztof Foltman 66a5ae5066 + Monosynth: code cleanup (move more things to .cpp file, ignore the negligible performance hit)
(cherry picked from commit 24f4661a73fe39e70db8e74b9a5c1279859b6fb3)
2009-10-03 00:27:57 +02:00
Tobias Doerffel b8d339e196 CALF: moved some files to allow easy cherry-picking from CALF Git
Source directory structure of the CALF plugin shipped with LMMS was
not equal with original one which makes cherry-picking commits from
CALF Git impossible.
2009-10-03 00:23:18 +02:00
Tobias Doerffel 1c76c77d22 Plugin::Descriptor::SubPluginFeatures: made some methods const
We can safely make fillDescriptionWidget() and listSubPluginKeys()
const methods. Furthermore descriptor pointer to listSubPluginKeys()
can be const as well. Might allow more optimizations by the compiler.
2009-08-26 01:36:00 +02:00
Tobias Doerffel 166701f9f3 sed: s/( void )/(), s/FALSE/false/, s/TRUE/true
Replaced remaining occurences of old constants and superfluous "void"
on empty argument list of functions.
2009-08-24 23:25:26 +02:00
Tobias Doerffel 8c9a9dd14c File and class renames part 1
Most files and most of the core classes and their methods have been
renamed to match new coding style conventions:

391 files changed, 25400 insertions(+), 25598 deletions(-)

Furthermore splitted some files where model and view classes were
declared or implemented together in the same file.

Should be tested thoroughly as I might have missed renaming some virtual
methods or SIGNAL/SLOT parameters.
2009-08-24 17:59:28 +02:00
Tobias Doerffel 7bea6d0e07 MainWindow: renamed class to match new style
Renamed mainWindow to MainWindow and engine::getMainWindow() to
engine::mainWindow(). Additionally reduced some header dependencies.
2009-08-21 12:09:39 +02:00
Tobias Doerffel 6a9e45f733 TAP LADSPA plugins: updated to version 0.7.1
After (exactly) 5 years of silence, there's a new relase of TAP LADSPA
plugins. It fixes issues on 64 bit machines, uninitialised variables
and denormal issues.
2009-08-19 14:28:05 +02:00
Tobias Doerffel 55337ad2be Renamed MIDI and audio related classes/files to match new style
Renamed all MIDI and audio related classes/files to match new style.
Additionally various cleanups.
(cherry picked from commit b8ebfbd06a)
2009-08-13 01:46:49 +02:00
Tobias Doerffel 35ca0aab69 Added CALF LADSPA plugins
As per popular demand I added CALF LADSPA plugins to be shipped with
LMMS. After some minor modifications the plugins compile and work on
win32 platform too.
2009-08-10 13:42:09 +02:00
Paul Giblock f1d60958f0 Rename all Controller-family classes to new style
Adjust capitialization on all Controller-related classes to new
standards and update all calling code
2009-08-08 13:05:22 -04:00
Tobias Doerffel 0bb54199b0 Whole code base: various cleanups, removed SINGLE_SOURCE_COMPILE relicts
* cleaned up code and improved coding style
* removed old SINGLE_SOURCE_COMPILE macro relicts
* use QString::toUtf8() instead of QString::toAscii() wherever possible
2009-08-05 11:41:59 +02:00
Tobias Doerffel e0df82056c CAPS: updated to version 0.4.3
Updated CAPS plugins to version 0.4.3 - changes:

  * basics.h cleanup / comments
  * minor Makefile cleanup
  * comment cosmetics
  * Eq and Eq2x2 per-band Q changed to 1.414 (= 1 octave)
  * Eq lowest band default value fixed to read 0
  * Niclas' fix for the bessel function implemented
  * uninitialised plugin states eliminated thanks to Damon
  * linker options for OSX added to the Makefile

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:55:57 +02:00
Tobias Doerffel 89fa5c99e9 CPU: new framework for optimized CPU-specific routines
The new CPU framework replaces the old BasicOps framework. It is more
flexible and the build process isn't such a mess anymore (pre-compiled
assembler files etc.). It will hopefully see some improvements and
extensions soon.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-08-03 17:14:16 +02:00
Tobias Doerffel ed30985aa4 Various fixes for properly building on OS X
There were various (trivial) problems with settings of the build system
which prevented LMMS from being built on OS X.

Thanks to Daniel Klaffenbach for providing his Mac for development
purposes.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2009-06-28 23:42:38 +02:00
Tobias Doerffel ee9e5680b7 LadspaEffect: fixed controller connections on samplerate changes
When global samplerate changes, settings of a LADSPA effect are stored in
a temporary object, the effect is reloaded and the settings are restored.
However, controller connections weren't restored properly as the connections
were not finalized. This commit fixes the issue.
2009-03-18 23:35:02 +01:00
Tobias Doerffel 9bbb701dac Fixed file mode for files that were executable although they shouldn't be 2009-02-27 00:21:41 +01:00
Tobias Doerffel 5534191ca9 better workaround for optimizer bug in GCC >= 4.3
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@2002 0778d3d1-df1d-0410-868b-ea421aaaa00d
2009-02-05 13:16:22 +00:00
Tobias Doerffel 22dc97f13d experimental support for MMX/SSE/SSE2 instructions
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1832 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-11-10 10:31:11 +00:00
Tobias Doerffel da0958bfb7 added missing README
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1823 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-11-02 22:37:54 +00:00
Tobias Doerffel 3a1ec3f60d limit processing of TAP Reflector to 192 KHz as it otherwise crashes
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1815 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-29 21:03:57 +00:00
Tobias Doerffel a07605fb2d added Freeverb to blacklist as it does not work samplerate independent
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1805 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-27 21:57:35 +00:00
Tobias Doerffel 30c7732665 various fixes for successfully building LMMS for win64
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1804 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-27 21:25:46 +00:00
Tobias Doerffel f070492fd6 cosmetics
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1801 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-25 14:33:11 +00:00
Tobias Doerffel 87ee43a079 made STRINGIFY_PLUGIN_NAME from embed.h a generic macro STRINGIFY in lmms_basics.h
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1784 0778d3d1-df1d-0410-868b-ea421aaaa00d
2008-10-19 21:48:57 +00:00