Commit Graph

56 Commits

Author SHA1 Message Date
grejppi
9e85d7c66e update all copyright headers to the proper url (#3326) 2017-02-06 02:41:15 +02:00
Umcaruje
c9618961d6 dBV is actually mislabeled dBFS (#3095)
* Relabel "dBV" to "dBFS" in function names and GUI
* Write a ConfigManager upgrade for older versions
2016-11-06 22:44:18 -05:00
Umcaruje
d4fb937423 Fader redesign (#3056) 2016-09-30 11:50:50 -07:00
Michael Gregorius
52ec3874b1 Render the mixer levels in a dB FS scale (#2672)
* Render the mixer levels in a dB FS scale

Adds the option to render the mixer levels in dB FS. By default this
option is disabled so that classes which inherit from Fader are not
affected by this change. However, in the code of the FxMixerView this
feature is enabled so that the mixer shows the levels in dB FS.

The ability to render in dB FS is exported as a property so that it can
also be set in a style sheet (not used as of now). The new property is
called "levelsDisplayedInDBFS".

There are now setters and getters for the min and max level.

Showing the levels in dB FS (which is a logarithmic scale) gives a less
"fidgety" impression when the levels are moving.

* Introduction of an init method in Fader

An init method was added to unify the initialization of the two Fader
constructors.
2016-07-10 15:08:54 +02:00
Javier Serrano Polo
447c787f7e Fixed infinite loop in FxMixer and some resource releases 2016-06-24 23:02:44 +02:00
Javier Serrano Polo
d31089ceb5 Fixed removal of track when notes are playing 2016-06-16 17:42:00 +02:00
Umcaruje
39f4f21e47 Get rid of mixer and effects chain padding 2016-03-27 20:39:32 +02:00
Fastigium
82055a9bdd Use deleteLater() on the FxLine when deleting a channel to prevent a crash
In Qt, it is not safe to delete a QObject inside a signal emitted by that
QObject. This happened with FxLine when removing an FX channel using the
context menu. This commit changes that by using deleteLater() instead of
delete on the FxLine. It also hides the FxLine to prevent a ghost of it
being drawn when deleting the last non-master FX channel.
2016-03-17 19:14:52 +01:00
Fastigium
3c7bfbac64 Replace every use of the foreach macro with a C++11 range-based for loop
This prevents a race condition with Qt5. A foreach loop makes a copy of its
Qt container, increasing the reference count to the container's internal
data. Qt5 often asserts isDetached(), which requires the reference count to
be <= 1. This assertion fails when the foreach loop increases the reference
count at exactly the wrong moment. Using a range-based for loop prevents an
unnecessary copy from being made and ensures this race condition isn't
triggered.
2016-03-13 16:09:50 +01:00
Colin Wallace
ebcc837b99 Merge pull request #2127 from Wallacoloo/FxMixer_friends
Enforce tighter permissions in FxMixer
2015-06-29 18:46:51 -07:00
Colin Wallace
2e010141ad Remove FxMixer friendship privileges from FxMixerView and MixerWorkerThread 2015-06-22 03:01:49 +00:00
Colin Wallace
908591ba7d Have MainWindow and others make use of the new SubWindow class 2015-06-15 03:32:25 +00:00
Colin Wallace
75dd6fa3e7 Change new mixer channel shortcut to shift+insert 2015-04-20 03:06:41 +00:00
Colin Wallace
d146e6fb4a Add <Insert> keyboard shortcut to create a new FX channel 2015-04-18 22:22:35 +00:00
Amadeus Folego
e91991216d Fix segfault when moving channels
This commit addresses a lot of issues, namely:

1. When the "Move left/right" action was selected on a mixer channel
menu sometimes it would segfault due to the fxline object being
deleted before it returned to a method inside itself

2. The Fader was declaring a new variable for the model whereas it
should used the inherited model from FloatModelView < AutomatableModelView

3. Some methods were doing more things than they should be and
performing unnecessary actions. A little cleanup/refactor was made

Please notice that a bug of the same class as the one referred at point 1
still exists: clicking on "Remove channel". This commit does not
addresses this issue.

Fixes #1584
2015-01-23 05:35:59 -02:00
Amadeus Folego
2eb420cb92 Add "Assign to FX Channel" context button to track 2015-01-13 00:45:48 -02:00
Lukas W
748cccd266 Merge branch 'gui_application' into ed_refac
Conflicts:
	src/core/Song.cpp
	src/gui/MainWindow.cpp
2015-01-07 00:03:32 +01:00
Vesa V
b874d3fa2e Merge pull request #1545 from DanWin/channel
Add "Remove unused channels" option to FX-Mixer
2015-01-04 18:08:04 +02:00
Daniel Winzen
5e4752e041 Adjust coding style 2015-01-04 16:33:19 +01:00
Daniel Winzen
e6e8f28fc8 Don't count channels reveiving input from another channel as unused 2015-01-03 06:52:05 +01:00
Daniel Winzen
4043868992 Add "Remove unused channels" option to FX-Mixer
This makes it easier to delete all FX-Channels that are not in use.
2015-01-02 21:40:49 +01:00
Daniel Winzen
c353f81d59 Hide windows instead of closing them when clicking on close 2014-12-24 17:11:36 +01:00
Lukas W
1ee93409d1 Move Engine' GUI code to new GuiApplication class 2014-12-17 23:25:55 +01:00
Vesa V
fa86a2cdac Merge pull request #1455 from LMMS/stable-1.1
Stable 1.1
2014-12-17 00:49:14 +02:00
Daniel Winzen
d21f0a7114 Remove RackView widget before deleting the ChannelView
Fixes the following two errors I spotted using valgrind:
When deleting a channel;
==936== Invalid read of size 8
==936==    at 0x56FA1D: FxMixerView::deleteChannel(int) (FxMixerView.cpp:374)
==936==    by 0x60E9A79: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==936==    by 0x5216BF1: QAction::triggered(bool) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==936==    by 0x52185C2: QAction::activate(QAction::ActionEvent) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
==936==  Address 0x14d51b90 is 32 bytes inside a block of size 40 free'd
==936==    at 0x4C2C2E0: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==936==    by 0x56F9ED: FxMixerView::deleteChannel(int) (FxMixerView.cpp:370)
==936==    by 0x60E9A79: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==936==    by 0x5216BF1: QAction::triggered(bool) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)

When loading a new project after adding some channels:
==936== Invalid read of size 8
==936==    at 0x570785: FxMixerView::refreshDisplay() (FxMixerView.cpp:202)
==936==    by 0x4B590E: Song::clearProject() (Song.cpp:740)
==936==    by 0x4B7885: Song::createNewProject() (Song.cpp:817)
==936==    by 0x60E9A79: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6)
==936==  Address 0x56a12ab0 is 32 bytes inside a block of size 40 free'd
==936==    at 0x4C2C2E0: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==936==    by 0x57075B: FxMixerView::refreshDisplay() (FxMixerView.cpp:201)
==936==    by 0x4B590E: Song::clearProject() (Song.cpp:740)
==936==    by 0x4B7885: Song::createNewProject() (Song.cpp:817)
2014-12-16 22:46:37 +01:00
Vesa
4a6257a47c Fix master channel peak display
Fix #1427

Conflicts:

	src/core/FxMixer.cpp
	src/gui/FxMixerView.cpp
2014-12-10 01:33:49 +02:00
Vesa
fbc6de857a Fix master channel peak display
Fix #1427
2014-12-10 01:28:14 +02:00
Lukas W
1bbf7455a4 Rename a lot… 2014-11-26 10:09:49 +01:00
Lukas W
968909c07c Rename engine to Engine 2014-11-26 00:49:55 +01:00
Lukas W
c2360f593c Rename bb_track_container to BBTrackContainer 2014-11-26 00:46:49 +01:00
Lukas W
7d0e3945e5 Rename song to Song 2014-11-26 00:44:41 +01:00
Lukas W
9dfb1385cd Rename track class to Track 2014-11-25 17:03:39 +01:00
Vesa
dfb89c8c92 Merge branch 'stable-1.1'
Conflicts:
	data/locale/de.qm
	data/locale/de.ts
	src/gui/FxMixerView.cpp
2014-11-17 13:25:45 +02:00
Lukas W
26415cd53e Fix segfault in FxMixerView, fix a memory leak in EffectSelectDialog
Segfault occured when moving a channel
2014-11-17 11:03:13 +01:00
Lukas W
8e8879f735 Merge stable-1.1
Conflicts:
	include/ConfigManager.h
	include/MidiTime.h
	include/string_pair_drag.h
	src/gui/string_pair_drag.cpp
	src/gui/widgets/rubberband.cpp
2014-11-10 19:26:59 +01:00
Lukas W
bf484300b6 Fix some memory leaks 2014-11-06 21:23:16 +01:00
Umcaruje
6fb923cba2 Correct the program name and site in the descriptions. 2014-11-04 22:56:50 +01:00
grindhold
8fe009114d implemented solo-buttons for FxMixer - resolving #1211 2014-10-30 23:43:43 +01:00
Tobias Doerffel
4cee046909 Added initial Qt5 support
LMMS now properly builds and runs with Qt5. Various deprecated functions
had to be replaced like QString::toAscii()/fromAscii(). Also occurences
of FALSE/TRUE have been replaced with false/true.

LmmsStyle now derives from QProxyStyle and sets a style instance as base
style (Plastique for Qt4, Fusion for Qt5).

MOC files are not included anymore but added as regular source files.

What's missing is support for embedding VST plugins into a subwindow
inside LMMS on Linux/X11 due to missing QX11EmbedContainer class in Qt5.

Build instructions can be found in INSTALL.Qt5

Minimum version requirement for Qt4 has been raised to 4.6.0 for best
API compatibility between Qt4 and Qt5.
2014-08-14 17:34:49 +02:00
Tres Finocchiaro
27b7d36181 Prevent changing vertical size on fx mixer 2014-07-08 12:43:52 -04:00
Vesa
a463594bb2 FxMixerView, FxLine: graphics & layout fixes 2014-06-24 21:07:15 +03:00
Vesa
83cc446807 FxMixerView: fix disappearing effects 2014-06-19 22:17:59 +03:00
Vesa
4bcbb1abcc FxMixer GUI updates: code 2014-06-19 17:59:37 +03:00
Vesa
51194453f1 FxMixerView: fix crash when loading project while selected channel != 0
Fixes #782
2014-05-30 08:19:54 +03:00
Vesa
eaf0f15d3f FxMixerView: prevent mixer from being loaded with improper send buttons which cause crashes when clicked, fixes #766 2014-05-25 13:55:05 +03:00
Vesa
0956270dd9 FxMixerView: fix the fx chain UI (so we'll be able to see more than 2/3 of an fx) 2014-04-07 02:54:32 +03:00
Tobias Doerffel
c868d691ab Merge branch 'stable-0.4' into stable-0.4-new-fx-mixer
Conflicts:
	src/core/FxMixer.cpp
	src/gui/FxMixerView.cpp
2014-01-17 19:56:51 +01:00
Tobias Doerffel
4b5b0fa4fa FxMixer, FxMixerView: cache maximum peak until next display update
We lost short peaks because the display update rate usually is much lower
than the number of audio buffers processed per second which lead to lost
peaks. We mitigate this issue by caching the maximum peak value until the
next display update where it is reset.
2014-01-17 19:35:14 +01:00
Tobias Doerffel
bbe686e290 LmmsStyle: adopted new coding style and renamed class 2014-01-16 23:45:54 +01:00
Tobias Doerffel
6993eda404 Merge branch 'stable-0.4' into stable-0.4-new-fx-mixer
Conflicts:
	src/gui/FxMixerView.cpp
2014-01-15 22:59:49 +01:00