Commit Graph

2473 Commits

Author SHA1 Message Date
fundamental
de09a96b4b Misc: Minor changes to filter_ to reduce warnings
(cherry picked from commit e2b1eb9b1077e6516c0cc4e2283e5c886bed0e58)
2009-12-11 09:03:20 +01:00
Tobias Doerffel
2585af89de Cleanup: Separated Presets into Presets/PresetsArray
-Separated the Presets into two classes to reduce the g++ warnings about
 discarded arguments

-Note: looking at these classes, they need a bit more work to have them fit
 one good abstraction
(cherry picked from commit 92c2a9016f1663d0ad48dac081f277baaed37701)
2009-12-11 09:02:28 +01:00
Tobias Doerffel
ea2a753257 Merge branch 'master' into zynaddsubfx-master 2009-12-03 00:17:17 +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
a044da0de4 Merge branch 'master' into zynaddsubfx-master 2009-11-27 08:45:57 +01:00
Tobias Doerffel
01e10a1854 ZynAddSubFX: fixed commit d61283ad93
Commit d61283ad93 (cherry picked from
official upstream) contained a type which makes compilation of ZASF
plugin fail. Fix this by using correct variable name.
2009-11-27 08:43:25 +01:00
Tobias Doerffel
873eff2b22 ZynAddSubFX/FLTK: updated to SVN revision 6943
Updated FLTK to SVN revision 6943 of branch-1.3:

	- Adding Gerg's Fl_Table widget to FLTK 1.3 with kind permission. Documentation not yet added Support for both Visual Studio IDE's not yet added.
	- Removed accidentaly added binary file (Note to self: the use of wild cards is a dangerous one ;-)
	- Added doxygenified documentation for Fl_Table
	- Added doxygenified documentation for Fl_Table_Row
	- Added doxygenified documentation for Fl_Table_Row
	- Added Fl_Tree source code, demo files, and documentation. Thanks, Greg!
	- Removed unused members width_ and height_ from Fl_Scroll (STR #2289).
	- Removed obsolete <P> tags from doxygen docs (Fl_Scroll.H), fixed some typos.
	- Would not build on ubuntu 9.10 - bad file name (fl_ask.h) should be fl_ask.H fix 64 bit build
	- Added const'nes too Fl_Counter::step()
	- STR #2292: fixed issue typing a minus in Fl_Int_Input when all text is selected.
	- Added missing svn properties and $Id$ tags.
2009-11-27 08:32:31 +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
Paul Nasca
8b9ced7951 small changelog fix
(cherry picked from commit c8d411b5f7e7a295286c1ac2c09ae22f15a1db51)
2009-11-19 22:33:49 +01:00
Tobias Doerffel
085db3e4e0 Merge branch 'master' into zynaddsubfx-master 2009-11-18 14:54:07 +01:00
fundamental
d61283ad93 VirKeyboard: Fixed possible segfault
Fix to VirKeyboard, so invalid keys do not get registered.
Based upon recommendation by zenon48 in:
http://www.kvraudio.com/forum/viewtopic.php?t=266432
(cherry picked from commit b9e7cb07bd00780967c68d17deab2190e18a604d)
2009-11-18 14:53:50 +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
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
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