Commit Graph

2470 Commits

Author SHA1 Message Date
Tobias Doerffel
900b599c2d Merge branch 'master' into calf-updates 2009-12-03 00:18:20 +01:00
Andrew Kelley
48d7e7cf50 Bugfix: crash dealing with clearing the project
FxMixerView was being cleared before fxMixer which caused a crash.
Fixed.
2009-11-29 18:54:58 -07:00
Tobias Doerffel
c11c228437 LV2Browser: fixed compilation
I somehow forgot to migrate LV2Browser plugin while reworking Mixer.
Should compile again now.
2009-11-30 01:37:53 +01:00
Tobias Doerffel
114aeb3e2c Merge branch 'mixer-new-fifo-arch'
* mixer-new-fifo-arch:
  ProjectRenderer: lock Mixer while calling Song::{start,stop}Export()
  ProjectRenderer: start thread with normal priority
  ProjectRenderer: renamed OutputSettings to EncoderSettings + Doxygen comments
  Mixer: rewrote processing chain of rendered audio buffers
2009-11-30 00:56:54 +01:00
Tobias Doerffel
0e82b0facc Merge branch 'master' into mixer-new-fifo-arch
Conflicts:
	include/Mixer.h
	src/core/Mixer.cpp
	src/core/audio/AudioPort.cpp
	src/core/main.cpp
2009-11-30 00:50:31 +01:00
Tobias Doerffel
9bb3ab5f16 ProjectRenderer: lock Mixer while calling Song::{start,stop}Export()
We have to lock Mixer when touching Song's state via Song::startExport()
and Song::stopExport() in ProjectRenderer::run() as the FIFO writer
thread may call Mixer::renderNextBuffer() (which calls Song::doActions())
simultaneously. Fixes a random segfault when exporting project.

This was a new bug as the ProjectRenderer does not operate FIFO-less
anymore.
2009-11-29 23:57:30 +01:00
Tobias Doerffel
294fa87475 Merge branch 'auto-save'
* auto-save:
  don't change the current project when auto-saving
  auto-saves every minute and recovers upon crash
  don't show WelcomeScreen when importing/loading

Conflicts:
	src/gui/MainWindow.cpp
2009-11-29 23:21:54 +01:00
Tobias Doerffel
37ccbb4b50 Merge branch 'fx-mixer-rework'
* fx-mixer-rework: (25 commits)
  FxMixer: use new CPU::bufMixCoeff()
  Cpu: added BufMixCoeff + SSE implementation
  MixerWorkerThread: added job queue modes and improved class structure
  MixerWorkerThread: exit outer loop in processJobQueue() if finished
  Song: do not refresh FxMixerView when loading song in console mode
  Mixer/FxMixer: separated MixerWorkerThread and ThreadableJob into files
  Rough fix for freeze-up bug
  Fixed the audio/visual screwups
  NOT WORKING! Fx Mixer uses job threads
  Mixer: rewrote/reorganized job queueing for worker threads
  Fixed bug - Instruments had wrong channel models
  Fixed a mixer bug regarding deleting channels
  FxMixerView - Left and right to select channels
  Fix FL Import with new mixer
  Ability to save mixer sends to disk with the mmp
  Channel selector has a max range of num channels
  Ability to re-order mixer channels
  Ability to delete mixer channels in the FX Mixer
  Requested improvements to new FxMixerView$
  Scrollbar for the fx mixer channels
  ...
2009-11-29 23:13:55 +01:00
Tobias Doerffel
c9802d8a26 ProjectRenderer: start thread with normal priority
There's no need to start the ProjectRenderer thread with high priority
anymore as the actual rendering is done on the other side of the FIFO.
The ProjectRenderer just waits for new data in the FIFO and encodes
them as they arrive.
2009-11-29 15:49:21 +01:00
Tobias Doerffel
03d3548ba1 ProjectRenderer: renamed OutputSettings to EncoderSettings + Doxygen comments
Renamed the ProjectRenderer::OutputSettings structure to
ProjectRenderer::EncoderSettings to better reflect its meaning.

Additionally added some basic Doxygen comments.
2009-11-29 15:37:04 +01:00
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
Tobias Doerffel
ced0d8ecc6 Merge branch 'master' into fx-mixer-rework 2009-11-26 01:47:38 +01:00
Tobias Doerffel
63cb220090 ResourceDB: added Doxygen comments
Documented the ResourceDB class and all its members.
2009-11-26 01:41:57 +01:00
Tobias Doerffel
dc561a07e7 Revert "Mixer, FifoBuffer, AudioDevice: removed memory allocation/free cycles"
This reverts commit c517f1fa5a.

The commit was not very helpful and introduced new xrun problems.
Instead I'll be rewriting the part of LMMS where Mixer, Mixer's
quality settings, Buffer FIFO and AudioDevice are sticked together.
2009-11-26 01:36:36 +01:00
Tobias Doerffel
c517f1fa5a Mixer, FifoBuffer, AudioDevice: removed memory allocation/free cycles
There's really no need to allocate a buffer each period, push it to the
FifoBuffer and free it when fetching the buffer in
AudioDevice::getNextBuffer(). Instead keep the pointer in FifoBuffer's
pool and reuse it.
2009-11-24 12:46:08 +01:00
Tobias Doerffel
9cabd559dc ResourceItem: added Doxygen comments
Documented the ResourceItem class and all its members.
2009-11-24 00:50:10 +01:00
Tobias Doerffel
74bd0ab9af ResourceAction: added Doxygen comments
Documented the ResourceAction class and all its members.
2009-11-24 00:49:26 +01:00
Tobias Doerffel
79566abf1b Added Doxygen configuration file
Added Doxygen configuration file so one can instantly test whether
he added proper comments in Doxygen style.
2009-11-23 00:27:38 +01:00
Armin Kazmi
92047f5e9e AudioPulseAudio: fixed latency and underrun problems
Try to adjust latency of PulseAudio according to our settings of mixer
so it does not have such a bad latency anymore.

Furthermore force PulseAudio to play silence instead of rewinding
streams in case of underruns.
2009-11-20 23:08:07 +01:00
Tobias Doerffel
168805745e AudioPulseAudio: fixed improper shutdown + free allocated resources
There have been some problems with the threading logic in the
AudioPulseAudio backend resulting in an endless loop when quitting LMMS.

Furthermore allocated PulseAudio resources were not freed properly.
Thanks to Armin Kazmi <armin.kazmi@tu-dortmund.de> for pointing out
this issue.
2009-11-20 22:28:47 +01:00
Krzysztof Foltman
871c31aaaa + LADSPA: make plugin IDs unique across Calf plugins, add an install-time check 2009-11-19 11:27:34 +01:00
Krzysztof Foltman
9fcffa9c20 + EQ-5: refactoring to eliminate code duplication, side effect: stereo meters 2009-11-19 11:25:40 +01:00
Krzysztof Foltman
3f2dc5ac7d + EQ-n: shorter names for calfjackhost and others
(cherry picked from commit d8bb94eb5b9e0480f7d3b3c3b44563987d92a5bf)
2009-11-18 03:38:14 +01:00
Krzysztof Foltman
c1b3c6cada + Equalizers: convert lists of per-band parameters using macros (ugly, but effective)
(cherry picked from commit 8e69de1277fae1d5444ca51063995f45894ac07f)
2009-11-15 22:47:11 +01:00
Krzysztof Foltman
c84cdb7728 + EQ-8, EQ-12: reduce copypasta by using a class template
(cherry picked from commit cf7eaaf5c0c7b9bebf5df24024a1680c35a96702)
2009-11-15 22:45:38 +01:00
Andrew Kelley
953522f34a don't change the current project when auto-saving
every time auto-save ran, it would change the current project to
"recover.mmp". Now it doesn't do this because Song has
guiSaveProject(), guiSaveProjectAs(), and saveProjectFile().
(the latter is used for auto-save)
2009-11-13 18:43:08 -07:00
Tobias Doerffel
58f53d9f5b PreferencesDialog: initial draft
Here's an initial draft for the new preferences dialog. The basics of
the GUI are done, however there's absolutely no functionality yet.
2009-11-14 00:36:52 +01:00
Tobias Doerffel
c3febb507a Merge branch 'master' into calf-updates 2009-11-13 22:21:41 +01:00
Tobias Doerffel
be0edab48d + Compatibility: workaround for GStreamer crash bug in Ubuntu 9.10 (thanks to Stefan Kost for diagnosing the problem and suggesting the workaround)
(cherry picked from commit 0c461259575fce7aa2975c2388f646e1232a9791)
2009-11-13 22:19:21 +01:00
Andrew Kelley
b7e73fbe0c don't show WelcomeScreen when importing/loading
WelcomeScreen was incorrectly shown when lmms loaded or imported
a project (for example via command line). Fixed.
2009-11-13 08:18:03 -07:00
Tobias Doerffel
0408186094 Updated German localization files
As of 52fbd3694d there are quite a lot
new strings which have to be translated to German.
2009-11-12 09:54:00 +01:00
Markus Schmidt
610e170445 + Compressor simplification, added optional audio ports
(cherry picked from commit 653033d711b1d497d7d465f5ab9a61133c8653f6)
2009-11-11 23:14:18 +01:00
Tobias Doerffel
52fbd3694d Refresh localization files with strings from UI files
As we have quite a few Qt Designer based dialogs now, there's a whole
bunch of new strings to be translated for each language.
2009-11-11 18:51:09 +01:00
Tobias Doerffel
b3b038eaf6 Build system: pass UI files to lupdate
For whatever reason I did not add UI files to lupdate calls, so strings
in Qt Designer based dialogs could not be translated. Trivial fix.
2009-11-11 18:49:02 +01:00
Tobias Doerffel
0679c83c33 LocalResourceProvider: watch out for changes in base directory
Changes in base directory were not tracked by filesystem watcher.
Explicitely add base directory to filesystem watcher and add a special
case to LocalResourceProvider::reloadDirectory().
2009-11-11 13:23:14 +01:00
Tobias Doerffel
0b5dae4a2a WelcomeScreen: disable horizontal scrollbars for listviews
When customizing background color of a widget via CSS, Qt somehow
falls back to ugly old windows style. This resulted in ugly looking
scrollbars in WelcomeScreen when working at a low screen resolution.
Therefore disable those scrollbars as they're rather useless anyways.
QListView automatically shows three dots for too wide text items.
2009-11-11 11:16:14 +01:00
Andrew Kelley
f73ccadc17 auto-saves every minute and recovers upon crash
auto-save time is not configurable yet. saves "recover.mmp" to
WORKING_DIR every 60 seconds. Deletes recover.mmp on successful
close of LMMS. If recover.mmp is found upon start, it loads that
project.
2009-11-10 21:41:45 -07:00
Andrew Kelley
96c8dcbeb4 don't show WelcomeScreen when importing/loading
WelcomeScreen was incorrectly shown when lmms loaded or imported
a project (for example via command line). Fixed.
2009-11-10 20:22:38 -07:00
Tobias Doerffel
774bd74c77 Merge branch 'calf-updates'
* calf-updates:
  + Deesser: use correct threshold
  + Equalizer: remove unused variables
  + Gain reduction module: clearer authorship information
  + Framework: placeholder for waveshaper class (need it to merge further changes from Markus)
2009-11-10 10:28:47 +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
Tobias Doerffel
083c2e1b0b Merge branch 'calf-updates'
* calf-updates:
  New widget: Tube with light and falloff
  New Deesser, some minor bugs in sc-comp
  Sidechain compressor bugs/settings, 3 equalizer
  Minor bugs, sidechain frequency display
  New FX: Sidechain compressor
  New button (big mama), VU-meters with falloff and hold, bug in delay (value)
  In the middle of nowhere
  Fully redesigned
  Sidebars, GUI layouts, black buttons again, input knob for compressor
  Added 6 new LED's and peak hold function for VU-meters
  meter_gain in gain_reduction module with falloff
2009-11-09 12:35:30 +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