Commit Graph

2324 Commits

Author SHA1 Message Date
Andrew Kelley
275bf5bb0e Fix FL Import with new mixer 2009-10-01 03:40:20 -07:00
Andrew Kelley
333df687e6 Ability to save mixer sends to disk with the mmp
LMMS can load projects with the old mixer and new projects with
the new mixer. By "new mixer", I simply mean not hardcoded to 64
channels.
2009-10-01 02:45:32 -07:00
Andrew Kelley
dd28a654b5 Channel selector has a max range of num channels
When you add and remove channels, the range of the
L.E.D. channel selector is correct.
2009-09-30 17:04:28 -07:00
Andrew Kelley
33753495bd Ability to re-order mixer channels
In the Fx Mixer View, you can select a channel and press Alt+Left
and Alt+Right respectively to re-order Fx Channels. This should be
made more easily available in the GUI eventually.
2009-09-30 07:37:05 -07:00
Andrew Kelley
e09c12687a Ability to delete mixer channels in the FX Mixer
Users can now delete mixer channels from the FX mixer, and it
doesn't mess up the instrument send channels.
2009-09-30 07:36:40 -07:00
Paul Giblock
147844b388 Merge branch 'master' of ssh://pgib@lmms.git.sourceforge.net/gitroot/lmms/lmms into fx-mixer-rework 2009-09-30 03:14:57 -04:00
Paul Giblock
db6164ca91 Requested improvements to new FxMixerView$
* lock fx mixer height
 Done. channelArea->setFixedHeight and proper sizeConstraints
* width: pick a good min. size. keep max. size off.
 Done. Set to 6 fx-lines.
* effects chain should align to the right
 Done.
* get rid of padding in mixer
 Done. setSpacing and setMargin on chLayout
* scroll area so that vert scrollbar is  never seen.
 Done. setVerticalScrollBarPolicy and proper height calculation
* Get rid of scroll bar area border
 Done. FrameStyle.

The biggest change, however, was removing the multiple EffectRackViews
that were being used.  Now just a single EffectRackView exists and it is
shared by all models.
2009-09-30 03:12:25 -04:00
Andrew Kelley
d68d53b83a Scrollbar for the fx mixer channels
Still need to fix up the rest of the fx mixer
2009-09-29 20:54:30 -07:00
Andrew Kelley
504a03f2cf prevent infinite mixing loops
Prevent infinite mixing loops by disabling the send button for
a channel line when clicking it would cause an infinite loop.
2009-09-29 19:16:19 -07:00
Paul Giblock
2622edd140 Fix issue with knobs in 3xOsc and AudioFilePro.
The knobs were broken because the classnames of these instruments was
changed without properly changing the selectors in the style.css
2009-09-28 10:02:08 -04:00
Tobias Doerffel
44e25a6ad5 RemoteVstPlugin: removed plugin dispatching in hostCallback
There's no need to call plugin dispatcher in hostCallback. It makes
plugins like Garritan Personal Orchestra 4 lock up. After removing
these calls the affected plugins work.
2009-09-28 13:45:58 +02:00
Tobias Doerffel
c896488e13 Moved ChangeLog file to ChangeLog.old
As it's not maintained anymore but should be kept for archival reasons
I moved ChangeLog to ChangeLog.old.
2009-09-23 23:24:12 +02:00
Nikos Chantziaras
0f28295ac7 ZynAddSubFX: link fftw3f after ZASF core libs
Commit 3c18e436cd makes it impossible to
build LMMS with embedded ZynAddSubFX if "-Wl,--as-needed" is used in
LINKER_FLAGS during the link step of RemoteZynAddSubFx:

  Linking CXX executable RemoteZynAddSubFx
  libZynAddSubFxCore.so: undefined reference to `fftwf_plan_r2r_1d'
  libZynAddSubFxCore.so: undefined reference to `fftwf_execute'
  libZynAddSubFxCore.so: undefined reference to `fftwf_destroy_plan'

This happens because fftw3f, which is a system lib, is linked to before
the ZASF core libs when linking RemoteZynAddSubFx. With "--as-needed",
correct library order matters.
2009-09-23 14:38:45 +02:00
Andrew Kelley
ce7891b7bd Fix mixer sends rendering in the backend
Fixed: Buffers was cleared too early resulting in some combinations
of sends not working.
2009-09-17 14:37:01 -07:00
Andrew Kelley
289f004c28 Pretty interface in default theme for fx sends
Created a user interface so you can add and remove FX sends as
well as tweak how much you are sending. The gui does not
yet prevent the user from creating endless render loops.
Additionally, there seems to be some issues to work out regarding
rendering with multiple sends.
2009-09-17 14:37:01 -07:00
Andrew Kelley
89d5be7855 Used FloatModels as the backend for mixer sends
Can add new channels in the mixer, and sends are implemented.
Instruments are hardcoded at 10. FL Import is hardcoded at 64.
2009-09-17 14:37:01 -07:00
Andrew Kelley
45c4b7b824 Mixer sends work in the backend
The backend code of mixer uses mixer sends to compute effects.
2009-09-17 14:37:01 -07:00
Tobias Doerffel
3c18e436cd ZynAddSubFX: resynced with their Git repo
ZynAddSubFX has gained some new developer power so development has been
going on well for quite a while now in their Git repo. It's time for
the first big resync so future changes can be integrated easily.
2009-09-17 23:29:09 +02:00
Tobias Doerffel
b73474ca73 ZynAddSubFX: eliminate global data in favour of per-synth data
OscilGen::tmpsmps and OscilGen::outoscilFFTfreqs were static member
variables initialized once in LocalZynAddSubFx class. However having
this data global is not a good idea because it gets modified by each
synth (possibly in parallel), causing heavy distortion under various
circumstances. Now that this data is allocated and used per-synth
everything works fine.
2009-09-15 23:40:36 +02:00
Tobias Doerffel
6940d19969 InstrumentPlayHandle: do not process if InstrumentTrack is muted
While regular instruments were excluded from processing when muted
this did not happen for InstrumentPlayHandle-based instruments. Muting
for exampling tracks with VSTi's inside did not decrease CPU usage.
Checking whether related InstrumentTrack is muted before calling
Instrument::play() fixes this issue.

Closes #2857426.
2009-09-15 10:10:02 +02:00
Tobias Doerffel
bb4c93ce37 WebResourceProvider: moved from QHttp to QNetworkAccessManager
QHttp is quite low-level while QNetworkAccessManager offers a well
designed API for accessing network resources. Therefore switched backend
of WebResourceProvider from QHttp to QNetworkAccessManager.
2009-09-15 01:24:57 +02:00
Paul Giblock
669b4e7198 Fix bug 2819817: main window scrollbars
Fix problem with main-window scrollbars not adjusting when toggling
off-screen children.  Seems like Qt bug #260116.
2009-09-11 00:07:12 -04:00
Tobias Doerffel
5c96adbd6d ZynAddSubFX: fix plugin descriptor name
While fixing the name of the plugin library in commit
883836aa8a the plugin descriptor
structure has not been updated.
2009-09-02 22:32:21 +02:00
Tobias Doerffel
883836aa8a ZynAddSubFX: keep plugin filename lower case
If we'd rename all plugins like I did with ZynAddSubFX, we'd run into
serious troubles, therefore keep plugin names lower case.
2009-09-01 00:14:21 +02:00
Tobias Doerffel
9ca04feb1d Win32: added missing symbol exports
Some new classes lacked the EXPORT declaration so they were not
accessible by plugins. Fixed this.
2009-08-30 14:52:36 +02:00
Tobias Doerffel
b4526ec1b4 AudioFileFlac: allow compilation withoug FLAC support
Compilation of AudioFileFlac source files failed when there's been
no FLAC support on the system. Fix this by adding according #ifdef's.
2009-08-28 23:56:15 +02:00
Tobias Doerffel
ee63a13f2d RemotePlugin: do not skip audio processing when debugging
If DEBUG_REMOTE_PLUGIN was set, RemotePlugin::process() always returned
as RemotePlugin::isRunning() returned false. Fix this by always
returning true when debugging.
2009-08-28 23:54:18 +02:00
Tobias Doerffel
78536d9065 ZynAddSubFX: fixed win32 compilation of FLTK and MXML
Some platform-specific constants got renamed during sed-mass-replace.
Fix this by reverting concerning constant names.
2009-08-28 23:53:02 +02:00
Tobias Doerffel
f1d383d04d ZynAddSubFX: added GUI-less mode
Added a new GUI-less mode to ZynAddSubFX instrument plugin which allows
to let ZynAddSubFX audio processing happen within LMMS, giving a much
better realtime behaviour.

As soon as showing up the GUI settings of GUI-less ZynAddSubFX instance
are saved and a traditional RemoteZynAddSubFx process is being launched
and the settings are applied there.
2009-08-28 23:52:38 +02:00
Tobias Doerffel
d2eea754bc ZynAddSubFX: lots of cleanups in RemotePlugin implementation
Moved all ZynAddSubFX instance related functions and variables into
RemoteZynAddSubFX class so there're no globals anymore. Also removed
some unused headers and ZynAddSubFX' main.c.

Additionally make use of full 80 chars/line with ts=4.
2009-08-27 11:34:59 +02:00
Tobias Doerffel
2287eca802 Plugin: typedef DescriptorList + more const improvements
Instead of writing QVector<Plugin::Descriptor> everywhere, mit up
iterators etc. centrally define Plugin::DescriptorList and use it
everywhere.

Additionally made pointers to Plugin::Descriptor and
Plugin::Descriptor::SubPluginFeatures::Key const in various places
so we can use ConstIterator everywhere when iterating through
Plugin::DescriptorList.
2009-08-26 01:46:27 +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
e8c3c21f7f Plugin::Descriptor: renamed sub_plugin_features to subPluginFeatures
Renamed field sub_plugin_features to subPluginFeatures in
Plugin::Descriptor struct.
2009-08-26 01:01:35 +02:00
Tobias Doerffel
50004a4f89 EffectRackView: removed unused method mainLayout()
There's no need to get a pointer to the layout of an EffectRackView
outside the class, therefore remove the mainLayout() method.
2009-08-26 00:56:10 +02:00
Tobias Doerffel
cb85bfc906 EffectSelectDialog: rewritten using Designer
All of the GUI code of EffectSelectDialog has been replaced by an
according UI file. Also merged EffectListWidget class into
EffectSelectDialog to further simplify logic.
2009-08-26 00:52:17 +02:00
Tobias Doerffel
d7365e4cf3 Fixed mistakes made by sed-mass-replaces
Some variables got renamed the way the shouldn't. Doesn't have any
functional impact but fix it for the sake of cosmetics.
2009-08-26 00:50:41 +02:00
Tobias Doerffel
f7af62eab4 Build system: pass -nw as option for MOC to QT4_WRAP_CPP macro
Passing -nw as option for MOC to QT4_WRAP_CPP macro silences warnings
about non-MOCable headers (which confused a lots of users).
2009-08-24 23:37:28 +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
b5d9fab944 AutomatableModel: do not return an out of range value in fittedValue()
If a certain step was set for a model, the fitted value (i.e. value
divided by step, rounded and multiplied with step again) could become
smaller than minValue or greater than maxValue. Therefore explicitely
check those cases after performing the described calculation.

Closes #2840202.
2009-08-23 23:38:34 +02:00
Tobias Doerffel
9615ceabd5 PeakController: initial work on attack- and decay-support
The decay knob didn't actually do anything before. Now it's useful
together with newly introduced attack knob. One can do much better
sidechaining now without disturbing artifacts due to too responsive
volume changes.
2009-08-23 19:14:19 +02:00
Tobias Doerffel
90e0cab629 QuickLoadDialog: implemented resource type filter
One can filter resource types now using the combobox. It's also possible
to pass a certain ResourceItem::Type to the QuickLoadDialog constructor
so the according type is preselected.
2009-08-22 01:17:03 +02:00
Tobias Doerffel
1c56bf4e55 ResourceItem: added descriptiveTypeName() method
The new ResourceItem::descriptiveTypeName() allows to query a
descriptive name for a given ResourceItem type.
2009-08-22 01:16:04 +02:00
Tobias Doerffel
beed7a6ee6 Moved UI files from src/gui/dialogs to src/gui/Forms and renamed files
All UI files are now located in src/gui/Forms and have been renamed.
Old classes using some of the forms (AboutDialog, ExportProjectDialog)
have been adapted to instantiate Ui::* instead of inheriting from it.
2009-08-22 00:18:23 +02:00
Tobias Doerffel
fe99a7a35c WelcomeScreen: implemented project loading functionality
It's now possible to load projects by clicking them in one of the
two lists (recent projects, recent community resources).
2009-08-21 23:48:33 +02:00
Tobias Doerffel
97e52de521 RecentResourceListModel: added item(QModelIndex) method
Added an item(QModelIndex) method to RecentResourceListModel which
maps given QModelIndex to source model and returns the according
ResourceItem from the source model.
2009-08-21 23:45:25 +02:00
Tobias Doerffel
0404cc760f MainWindow: integrated new WelcomeScreen widget
Initial integration of (not yet fully functional) WelcomeScreen.
2009-08-21 19:14:03 +02:00
Tobias Doerffel
34a20ba610 Added new WelcomeScreen widget
The new WelcomeScreen widget is intended to be shown after startup
by default. It allows the user to choose how to start the session,
i.e. shows a list of recently edited projects, a list of new stuff
at the Sharing Platform as well as some help related information and
links.
2009-08-21 19:11:40 +02:00
Tobias Doerffel
a5bf034575 RecentResourceListModel: new model providing resources sorted by date
RecentResourceListModel is a new proxy model which provides a list of
resources sorted by date (based on a ResourceListModel as source model).
2009-08-21 18:34:34 +02:00
Tobias Doerffel
0550132d1b Engine: provide individual ResourceDBs instead of one global provider
Pointers to individual ResourceDBs can be obtained from Engine now.
This allows for more specialized views and reduces complexity when
dealing with resources.
2009-08-21 18:17:32 +02:00