Commit Graph

6731 Commits

Author SHA1 Message Date
Colin Wallace
4fd8ecd7e4 RemoteVST: process all remaining messages after the process has quit
Courtesy of @justnope (https://github.com/LMMS/lmms/pull/4371)
2018-06-01 20:53:35 -07:00
Douglas
fad13626bc Initialize peak controller last sample with base value (#4382)
* Bug fix in peak_controller_effect.cpp

This change makes it so that when an LMMS project is loaded, each knob connected to a Peak Controller will be set to the Peak Controller's Base value, rather than its minimum possible value.
2018-06-01 20:47:32 -07:00
Colin Wallace
2c672d47fe Prefer = default over empty destructor.
Same thing but less verbose.
2018-05-28 19:28:05 -07:00
Hyunin Song
3cf2afd831 Merge branch 'stable-1.2'
# Conflicts:
#	include/MixerWorkerThread.h
#	src/core/MixerWorkerThread.cpp
2018-05-26 16:09:38 +09:00
Colin Wallace
a3cdda04c0 Give our threads names (#4356)
* Give our threads names

It helps with debugging.

* Use Q_OBJECT macro to automatically name threads.

By default, QThread sets its name based on the Qt meta class. To get an
accurate metaclass, the class which inherits QThread must declare
Q_OBJECT in its header. Futhermore, Qt's MOC requires that a Qt type be
the primary base class when declaring Q_OBJECT, hence the order of
base classes has been rearranged for some classes.
2018-05-24 18:01:51 -07:00
Hyunjin Song
daa3f53515 Fix compilation with Qt 5.11 (#4374)
Add extends attribute for custom widget RowTableView per upstream uic change http://code.qt.io/cgit/qt/qtbase.git/commit/?id=058474884c2505a8a00d4c59b4922bfcd3597c2f
2018-05-23 14:59:45 +09:00
Hyunjin Song
0fa7fbde0f Fix MSYS2 build 2018-05-22 11:45:41 +02:00
Johannes Lorenz
074d82f2aa CALF: Version bump, fix issues from #3987 2018-05-19 08:52:54 +02:00
Joshua Wade
68a621cc16 Restart flanger LFO on Song::playbackStateChanged signal (#4363)
Closes https://github.com/LMMS/lmms/issues/3689
2018-05-18 13:34:46 -04:00
Hussam Eddin Alhomsi
0caaebaecb Remove FluidSynth requirement for background pic (#4364) 2018-05-17 19:35:52 +02:00
Oskar Wallgren
bb43bfb961 Remove release time from arpeggiated note (#4355)
An arpeggio master note shouldn't trigger new notes while it's decaying.

#fixes #4342
2018-05-17 18:39:31 +02:00
Matt Kline
9c0d50d425 plugins/LadspaEffect: Use C++11
The rest of LMMS is built against it, and almost every flavor of MinGW
should support it these days.
2018-05-13 20:02:01 -07:00
Matt Kline
ea98ba4dae FPTruncateMode: Removed unused variables on non-386
While we're at it, make fistp an inline function. Type safety is nice.
2018-05-13 20:02:01 -07:00
SecondFlight
4585a07673 Allow renaming of FX mixer channels with the F2 and enter keys. (#4348)
* Add f2 as a FX mixer rename shortcut. Enter doesn't work yet.

* Add both enter keys, remove code duplication

* Fix renaming with enter/return

* Clean up
2018-05-13 17:15:32 -04:00
Hussam Eddin Alhomsi
0d73f32c03 Reorder the main windows' buttons & shortcuts (#3938)
Puts Project notes after Controller rack.
2018-05-11 12:23:31 +03:00
Oskar Wallgren
d6d55cef7b Remove old commented out code (#4349) 2018-05-10 12:05:44 +02:00
Premik
e8b69b9700 Zooming with mouse wheel center (#3835)
* Horizontal mouse-wheel zooming. Ensure zoom center is always on the current mouse position.

* Horizontal zoom using mouse wheel center on the mouse position. For the SongEditor too.

* Wheel center on the Automation editor too.
2018-05-10 00:45:45 +02:00
Colin Wallace
5d90aecac9 Merge pull request #4339 from PhysSong/tcomove
Fix occasional crash when moving TCOs
2018-05-08 21:29:41 -07:00
Colin Wallace
82972ca842 Merge pull request #4260 from curlymorphic/master
Remove audio artifacts when automating the Equalizer parameters.
2018-05-08 20:11:47 -07:00
Colin Wallace
b4a6ae7bcc Merge pull request #4344 from mrkline/default-empty-detors
Default some empty destructors
2018-05-08 18:44:48 -07:00
Hyunjin Song
03aa5fb3c7 Fix crash on exit from MIDI connections (#4340) 2018-05-07 17:08:43 -07:00
Matt Kline
68c9d227d0 Default some empty destructors
Moving empty destructors out of the .cpp files and into headers
allows them to be devirtualized in certain cases.
(When the compiler can't "see" a function in a header, it must largely
assume it's some black box that the linker will resolve.)

While we're at it, use C++11's `= default` to define empty virtual
desturctors for us.

For some classes (e.g., Piano), nothing is derived from it, so we can
mark the class as final and remove any explicit virtual dtor.

There are many other places where this can be done, but this is a large
enough patch as-is.
2018-05-06 16:34:08 -07:00
Hyunin Song
511c7a64fe Fix occasional crash when moving TCOs 2018-05-03 11:23:35 +09:00
Lukas W
af61a82df8 Merge pull request #4335 from LMMS/fix/job-queue
Fix job queue crash
2018-05-02 12:55:09 +02:00
Lukas W
9a52c7b901 JobQueue: Rename m_queueSize to m_writeIndex
Hopefully makes it less confusing that m_writeIndex grows beyond
JOB_QUEUE_SIZE when the queue is full.
2018-05-02 12:54:45 +02:00
Hussam Eddin Alhomsi
c1b2728d65 Allow setting/moving points at the left edge of AE grid (#4323) 2018-05-01 23:04:39 -07:00
Hyunin Song
4b36ba9f81 Fix a regression from #3711 2018-05-02 12:41:10 +09:00
Hyunin Song
8a41def616 Merge branch 'stable-1.2'
# Conflicts:
#       .circleci/config.yml
#       .travis/osx..install.sh
#       CMakeLists.txt
#       plugins/zynaddsubfx/zynaddsubfx
#       plugins/zynaddsubfx/zynaddsubfx/src/DSP/FFTwrapper.h
#       plugins/zynaddsubfx/zynaddsubfx/src/Misc/QtXmlWrapper.cpp
#       plugins/zynaddsubfx/zynaddsubfx/src/Params/PADnoteParameters.cpp
#       plugins/zynaddsubfx/zynaddsubfx/src/Synth/OscilGen.cpp
#       src/CMakeLists.txt
#       src/core/Track.cpp
#       src/tracks/Pattern.cpp
2018-05-01 09:59:07 +09:00
Hyunjin Song
08573fc96d Fix detuning crash after deleting the note being edited (#4324) 2018-04-30 14:54:34 +09:00
Lukas W
ccd4ff3c2c Fix job queue crash
* Don't add jobs when job queue is full
* Icrease job queue size from 1024 to 8192
2018-04-29 17:01:51 +02:00
Lukas W
84d3c935de Merge pull request #4333 from PhysSong/circledummy
Add dummy CircleCI config file for stable-1.2
2018-04-29 16:04:44 +02:00
Hyunin Song
832e87725a Add dummy CircleCI config file 2018-04-29 21:59:09 +09:00
Lukas W
d2e068ca40 Merge pull request #4330 from lukas-w/circleci-update
Update CircleCI to Ubuntu 18.04
2018-04-28 22:26:19 +02:00
Matt Kline
ebed0296b3 Axe atomic int (#4326)
* ThreadableJob: Move from AtomicInt to std::atomic

This is the first in a series of commits that migrates away from
AtomicInt towards the C++11 standard library types.
This would allow the removal of AtomicInt and related Qt
version-specific code.

While we're at it, also make ProcessingState an `enum class` so that
it's not implicitly convertible to integers.

* LocklessAllocator: Switch from AtomicInt to std::atomic_int

If it looks like some assignments around the Compare & Swap loops went
missing, it's because compare_exchange_weak() updates the first argument
to the current value when it fails (i.e., returns false).

* BufferManager: Remove extra AtomicInt include

* MixerWorkerThread: AtomicInt to std::atomic_int

* NotePlayHandle: AtomicInt to std::atomic_int

* Remove AtomicInt.h

* Move from QAtomicPointer to std::atomic<T*>

This removes some #ifdef trickery that was being used to get
load-acquire and store-release from Qt5 and "plain" (presumably
sequentially-consistent) loads and stores from Qt4.
2018-04-28 12:54:46 -07:00
Lukas W
4ff993e2a4 Update CircleCI to Ubuntu 18.04 2018-04-28 11:15:09 +02:00
Hussam Eddin Alhomsi
386c471ed7 Limit the automation-editor scaled-level tooltip to the grid (#4308) 2018-04-26 18:37:43 +03:00
Lukas W
d42a685007 Refactoring: Remove duplicate code (#4310) 2018-04-25 18:49:39 +02:00
Matt Kline
ffccd6ddd2 Use atomics to count shared_object without locks
C++11 (and subsequent C++ standards) provide portable ways to issue
atomic hardware instructions, which allow multiple threads to load,
store, and modify integers without taking a lock. The standard also
defines a memory model that lets you express the ordering guarantees
around these atomic operations. (x86 is relatively strongly-ordered, but
many other common architectures, such as ARM, are free to reorder loads
and stores unless told not to.)

This patch removes the lock from shared_object and replaces it with the
standard thread-safe reference counting implementation used in
C++'s std::shared_ptr, Rust's std::sync::Arc, and many others.

Additional resources on the topic:
https://assets.bitbashing.io/papers/concurrency-primer.pdf
https://www.youtube.com/watch?v=ZQFzMfHIxng
2018-04-25 12:50:44 +02:00
Lukas W
fce9326192 Update rpmalloc to 1.3.0
Fixes #4055
2018-04-25 11:00:13 +02:00
Lukas W
e614711d29 Merge pull request #4307 from LMMS/fix/contributors
Revert contributor file removal
2018-04-25 07:52:03 +02:00
Hussam Eddin Alhomsi
f7a0553e6a Responsive "Effects chain" & "User controller" LEDs (#4297) 2018-04-24 11:25:49 +03:00
Lukas W
418bcce402 AppImage: Use wget -N instead of mtime logic 2018-04-22 14:05:20 +02:00
Lukas W
d9ea65ad7f Fix AppImage build with missing fuse support 2018-04-22 14:05:20 +02:00
Lukas W
19bc0439a6 Fix mingw pkg-config 2018-04-22 14:05:20 +02:00
Lukas W
138281badf Add CircleCI config.yml 2018-04-22 14:05:20 +02:00
Lukas W
d65fdd4ee6 Create no-response.yml 2018-04-22 08:34:46 +02:00
Lukas W
50eada6b2b Update project year 2018-04-21 13:33:35 +02:00
Lukas W
33368bd9d0 Revert CONTRIBUTOR file removal
This reverts commit 30f1e52be3.

# Conflicts:
#	CMakeLists.txt
2018-04-21 13:31:14 +02:00
Colin Wallace
3401de4a83 Use themed file dialogs everywhere. (#4298)
Previously lmms used themed dialogs for project saving/opening, but not
when editing settings (edit -> settings).

With this change, the settings editor also uses themed dialogs.
2018-04-20 19:01:11 -07:00
tresf
aaee2ecb15 Better fluidsynth version detection
Per #4300 comment
2018-04-20 21:53:13 -04:00