Commit Graph

2489 Commits

Author SHA1 Message Date
Tobias Doerffel
c8a444d026 Merge branch 'calf-updates'
* calf-updates:
  CALF: resync source files due to forgotten commits
  + JACK host: implemented Save/Save as...; Open not implemented yet - who could possibly want THAT?
  + EQ: Fix adding EQ plugin using menu in calfjackhost
  Some changes in style, smaller h/v-scale added
  + LADSPA: make plugin IDs unique across Calf plugins, add an install-time check
  + EQ-5: refactoring to eliminate code duplication, side effect: stereo meters
  + EQ-n: shorter names for calfjackhost and others
  + Equalizers: convert lists of per-band parameters using macros (ugly, but effective)
  + EQ-8, EQ-12: reduce copypasta by using a class template
  + Compatibility: workaround for GStreamer crash bug in Ubuntu 9.10 (thanks to Stefan Kost for diagnosing the problem and suggesting the workaround)
  + Compressor simplification, added optional audio ports
2010-01-04 00:43:13 +01:00
Tobias Doerffel
2d55ef8291 Merge branch 'master' into calf-updates 2010-01-04 00:42:01 +01:00
Tobias Doerffel
1fb803242c CALF: resync source files due to forgotten commits
Probably I forgot to cherry pick one or two commits from CALF Git repo
resulting in a slight diverge of source codes. Resynced the concerned
header files. Fixes the missing Pulsator plugin.
2010-01-04 00:41:31 +01:00
Krzysztof Foltman
059fbab252 + JACK host: implemented Save/Save as...; Open not implemented yet - who could possibly want THAT? 2010-01-04 00:31:58 +01:00
Krzysztof Foltman
c16949e308 + EQ: Fix adding EQ plugin using menu in calfjackhost 2010-01-04 00:30:13 +01:00
Markus Schmidt
9414b90d7b Some changes in style, smaller h/v-scale added 2010-01-04 00:29:28 +01:00
Janne Sinisalo
0ac6f0b741 New drum samples
Added a drum kit I've recorded from my Korg module.
2010-01-03 09:47:14 +02:00
Tobias Doerffel
81cea79c38 Base64: realize decode() as template function
In Base64::decode() we mess around with pointers so it's more type-safe
to realize everything as a template function. This also silences compiler
warning about dereferencing type-punned pointer in Vibed plugin.
2009-12-26 01:06:52 +01:00
Tobias Doerffel
ebf80bb8a3 Instrument: added Doxygen comments
Commented the whole Instrument class and converted the existing comments
to Doxygen style.
2009-12-26 00:54:33 +01:00
Tobias Doerffel
c2e0cde213 Win32 toolchain: various fixes + march=i686
In build_mingw32 script fixed path to Win32Toolchain.cmake. In this
file set march=i686 and mtune=generic.
2009-12-25 00:39:32 +01:00
Tobias Doerffel
5e711875f5 VeSTige: set VeSTige logo as window icon for plugin GUI subwindow
Up to now the MainWindow's icon was used for VST plugin GUI subwindows.
Improve this a little bit by using the VeSTige logo now.
2009-12-22 00:49:34 +01:00
Tobias Doerffel
ca2440d1c4 Removed some old projects
Removed some old projects that did not represent LMMS and its abilities
anymore. We also need to replace most of the "Cool songs" and replace
them by more recent projects from LSP.
2009-12-22 00:38:48 +01:00
Tobias Doerffel
04699ba412 MainWindow: stop playing song when asking whether to save project
Users reported the last buffer played repeatedly while the dialog asking
whether to save project is shown. This behaviour even continued while
loading a project. An easy workaround for this is to stop playing song
(or whichever TrackContainer is active at the moment) in
MainWindow::mayChangeProject().

Closes bug #2904781.
2009-12-17 21:17:34 +01:00
Tobias Doerffel
bb57d53770 TrackContainer: fix Qt header includes
Always prefix Qt header includes with name of according module.
2009-12-14 09:28:42 +01:00
Tobias Doerffel
bf0f0151d2 Mallets: build properly with Stk 4.4
As of Stk 4.4 all classes and types have been moved to the namespace "stk".
This breaks build of the Mallets plugin. This can be easily fixed by
using the namespace "stk". For compatibility reasons we have to declare
the namespace before, because it did not exist in previous versions.

Closes #2870878.
2009-12-06 23:19:26 +01:00
Tobias Doerffel
5f241e6374 RemoteVstPlugin: allocate buffer for chunk on heap rather than stack
It's not a good idea to allocate the buffer for VST chunk data on the
stack as chunks might become quite big (several megabytes) and thus
could cause a stack overflow. Fix this by using new/delete.
2009-12-06 01:01:27 +01:00
Tobias Doerffel
cef439b1ce AutomatableModel: made member variables private again
As of commit dd28a654b5 some member
variables were made protected without any actual requirement for it.
Revert the part of the commit.
2009-12-03 19:09:55 +01:00
Tobias Doerffel
d45de34c0d Revert "AutomatableModel: fix member variable initialization order"
This reverts commit a141fd477a.
2009-12-03 18:31:13 +01:00
Tobias Doerffel
a141fd477a AutomatableModel: fix member variable initialization order
Initialize member variables of AutomatableModel in order of their
declaration to fix compiler warning.
2009-12-03 01:10:12 +01:00
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