Commit Graph

72 Commits

Author SHA1 Message Date
Hyunjin Song
231a8407e8 Merge branch 'stable-1.2'
# Conflicts:
#	.travis.yml
#	.travis/linux..script.sh
#	.travis/linux.win32.script.sh
#	.travis/linux.win64.script.sh
#	.travis/osx..install.sh
#	.travis/osx..script.sh
#	data/locale/en.ts
#	data/locale/id.ts
#	include/Graph.h
#	include/VstSyncController.h
#	include/lmms_math.h
#	plugins/vst_base/RemoteVstPlugin.cpp
#	src/core/RemotePlugin.cpp
#	src/core/Song.cpp
#	src/core/Track.cpp
#	src/gui/SubWindow.cpp
#	src/gui/widgets/Graph.cpp
2019-02-24 20:45:52 +09:00
Dominic Clark
2070ef21f5 Handle automation on processing thread (#4692) 2018-11-13 07:24:08 +09:00
Hyunjin Song
4252f755c2 Merge branch 'stable-1.2'
# Conflicts:
#	cmake/nsis/CMakeLists.txt
#	src/core/ProjectRenderer.cpp
#	src/tracks/Pattern.cpp
2018-10-29 16:20:58 +09:00
Hyunjin Song
9fe74c2730 Specify infinte timeout in tryLock on export
Ensures remote plugins always process sound on export.
Follow-up of 408b72c798.
2018-09-19 19:52:08 +09:00
Hyunjin Song
4069aaada2 Merge branch 'stable-1.2'
# Conflicts:
#	.travis/osx..install.sh
#	CMakeLists.txt
#	cmake/apple/install_apple.sh.in
#	doc/lmms.1
#	include/VstSyncController.h
#	plugins/carlabase/carla.h
#	plugins/vestige/vestige.cpp
#	plugins/vst_base/CMakeLists.txt
#	plugins/vst_base/RemoteVstPlugin.cpp
#	plugins/vst_base/Win64/CMakeLists.txt
#	plugins/zynaddsubfx/zynaddsubfx
#	plugins/zynaddsubfx/zynaddsubfx/src/Misc/QtXmlWrapper.cpp
#	src/core/Song.cpp
#	src/core/main.cpp
2018-09-18 09:54:38 +09:00
Hyunjin Song
a0cbcb6ec4 Remove Qt temporary files after loading ZynAddSubFX settings (#4551) 2018-08-25 15:29:40 +09:00
Hyunjin Song
12d251cc3e Merge branch 'stable-1.2'
# Conflicts:
#	cmake/linux/package_linux.sh.in
#	data/locale/cs.ts
2018-08-24 09:50:36 +09:00
Hyunjin Song
e07f9a3b64 Don't use dummy controllers for connections if not loading projects (#4493)
Remove the need of ControllerConnection::finalizeConnections
when not loading projects.
Fix ZynAddSubFX knob disconnection when exporting.
2018-08-01 14:35:16 +09:00
Lukas W
e65ccea7ba Merge branch 'stable-1.2' 2018-07-22 11:49:20 +02:00
Hyunjin Song
408b72c798 Use tryLock in audio threads for VST/ZynAddSubFX (#4460)
Prevent loading VST or toggling ZynAddSubFX GUI
from blocking entire audio processing
2018-07-13 10:40:24 +09:00
Lukas W
47a5248d1d Linux compile fixes 2018-07-07 16:40:37 +02:00
Hussam al-Homsi
6d46bd473f Remove "What's This?" and update tooltips (#4128) 2018-06-06 01:50:11 +03:00
Lukas W
8f3ab4b1b0 Merge branch 'master' into fix/msvc
# Conflicts:
#	plugins/LadspaEffect/CMakeLists.txt
#	plugins/Xpressive/Xpressive.cpp
#	plugins/opl2/CMakeLists.txt
#	plugins/papu/CMakeLists.txt
#	plugins/xpressive/CMakeLists.txt
#	src/CMakeLists.txt
2017-11-22 17:34:22 +01:00
Lukas W
ba2ed12f05 MSVC: EXPORT macro fixes 2017-11-22 11:08:47 +01:00
Lukas W
1059c92d87 Merge branch 'stable-1.2'
# Conflicts:
#	.travis/linux..before_install.sh
#	.travis/linux..install.sh
#	cmake/linux/lmms.desktop
#	plugins/vst_base/CMakeLists.txt
2017-10-18 17:33:55 +02:00
Lukas W
9d560a3104 ZynAddSubFx: Fix preset loading (#3891)
Fix regression from #1719
Fixes #3886
2017-10-17 15:46:16 -04:00
Lukas W
9f905bce3e Use Qt's Resource System (2nd approach) (#1891)
* Remove bin2res, use Qt's resource system
* Use QDir search paths and QImageReader in getIconPixmap
* Don't include "embed.cpp" in plugins
* getIconPixmap: Use QPixmapCache, use QPixmap::fromImageReader
* Require CMake 2.8.9

* Fix ReverbSC embed usage
2017-03-26 22:06:43 +02:00
Lukas W
29f832034a Remove unused includes (#3429) 2017-03-16 11:35:18 +00:00
grejppi
9e85d7c66e update all copyright headers to the proper url (#3326) 2017-02-06 02:41:15 +02:00
tresf
46179f475d Fix compilation on older Apple versions
Adds libc++ to CXX flags
Fixes macdeployqt on Qt5
Also fixes zynaddsubfx linking on Mac
2016-06-21 21:23:50 -04:00
Javier Serrano Polo
ecf9db66bd Merge pull request #2822 from jasp00/rm-track
Fix removal of track when notes are playing
2016-06-17 20:14:24 +00:00
Javier Serrano Polo
d31089ceb5 Fixed removal of track when notes are playing 2016-06-16 17:42:00 +02:00
Javier Serrano Polo
fa7d7a111a Synchronize with remote plugins using local sockets 2016-05-30 01:52:11 +02: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
Fastigium
da8040764f Require explicit types when removing PlayHandles in the Mixer
This fixes a few deadlocks where a PresetPreviewPlayHandle would be removed by
the creation of a new PresetPreviewPlayHandle.
2016-02-16 19:23:08 +01:00
Dave French
2ac6d5df7a ZynSubAddFx routed all MIDI cc messages to channel 0
Lmms routes all midi notes to ZSAF on channel 0, however the CC messages
not routed, and could erronusoly be sent on other channels. This would
lead to ZSAF not acting on these midi commands

This pull request routes All Midi CC messages to channel 0

fixes #1953
2015-04-18 22:46:58 +01:00
dave
2295545ac6 Remove whitespace from setHintText, change spaces to tabs 2014-12-08 23:48:44 +00:00
dave
4993eba3c1 Remove unused and unnessary +" " in all knob.setHintText calls 2014-12-08 10:57:21 +00:00
Lukas W
95798da9d0 Rename a lot of classes
* aboutDialog -> AboutDialog
* bbEditor -> BBEditor
* exportProjectDialog -> ExportProjectDialog
* setupDialog -> SetupDialog
* stringPairDrag -> StringPairDrag
2014-11-26 10:39:02 +01:00
Lukas W
7d4f179b4b Rename a lot of files
* about_dialog -> AboutDialog
* bb_editor -> BBEditor
* export_project_dialog -> ExportProjectDialog
* setup_dialog -> SetupDialog
* string_pair_drag -> StringPairDrag
2014-11-26 10:27:25 +01: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
Vesa
857de8d2c8 Huge structural changes
Well, this commit got a bit out of hand, what with 26 files changed. Oh well.

Basically, we're using the buffermanager to dispense temporary buffers for playhandles and audioports to use.
This allows us to change the way playhandles work. Earlier, playhandles of the same track were waiting in line
to push their output to the audioport. This was of course inefficient, so now they just register themselves to the port,
then the port handles mixing the buffers.

Caveat: this is still a work in progress, the vol/pan knobs on instruments are temporarily non-functional - will be fixed in
the next commit, but I have to get some sleep now.
2014-11-18 13:58:39 +02: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
Umcaruje
6fb923cba2 Correct the program name and site in the descriptions. 2014-11-04 22:56:50 +01:00
Lukas W
100a67cd3c Rename configManager to ConfigManager 2014-11-02 01:02:33 +01:00
Vesa
bf6659fbb1 Merge branch 'stable-1.1'
Conflicts:
	src/gui/FileBrowser.cpp
2014-09-09 23:55:39 +03:00
Ubuntu
40f640951c Disable "Show GUI" button on Apple to prevent crash 2014-09-08 11:13:50 -04: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
Vesa
06be5bba82 Make MIDI timing sample-accurate
- currently only affects Vestige
- no idea whether this can also be used for Zyn and OpulenZ, I'm not sure if Zyn has any kind of mechanism for communicating frame offset to the synth, as for OpulenZ, @softrabbit would know the answer better
- basically, I made it happen by simply adding an extra parameter in the processMidi{In|Out} functions, which is 0 by default, and made the necessary changes in instrumentTrack and nph to utilize it
- I based this against 1.1 because I didn't think it's a very big change, and I don't see much possibility for things going wrong here, since we're basically just using the existing functionality in Vestige (there already was a frame offset being communicated to the remote plugin, just that it was always set to 0). However, if @tobydox thinks this is better to bump up to 1.2, I can rebase it for master...
2014-06-04 04:23:16 +03:00
Tres Finocchiaro
b5ea738a45 Fix #include <QtXml> on Apple/MacPorts 2014-04-01 14:20:02 -07:00
Tobias Doerffel
2981a5994c ZynAddSubFX: update buffer size when opening GUI
When opening the ZynAddSubFX GUI the buffer size information was not
retrieved properly and caused problems when setting a low global buffer
size in LMMS. We update the buffer size in ZynAddSubFX manually now as
as a temporary workaround until the VST synchronization feature gets
stripped out of the RemotePluginClient class.

Closes #335.
2014-03-03 22:55:52 +01:00
Tobias Doerffel
b5183fdd5f ZynAddSubFX: added pitch range support
Even though ZynAddSubFX does not support updating its pitch wheel range
via MIDI events we can set it manually using provided internal functions.

Closes #394.
2014-03-03 22:37:00 +01:00
Vesa
82b1c2f882 Zyn fix: export now fully works with GUI either open/closed 2014-03-01 15:53:34 +02:00
Tobias Doerffel
b0c662591d ZynAddSubFX: less line breaks / coding style 2014-02-22 20:55:14 +01:00
Tobias Doerffel
b9384c52bb ZynAddSubFX: delete LocalZynAddSubFX instance in destructor
This is a really embarrassing leak causing LMMS to never cleanup internal
instances of ZynAddSubFX.

Closes #357.
2014-02-22 20:55:14 +01:00
Tobias Doerffel
2e7733eaa1 DataFile: renamed from old multimediaProject class + coding style fixes 2014-02-03 21:21:36 +01:00
Tobias Doerffel
3a827f061f Reworked MIDI event handling in InstrumentTrack and renamed MIDI classes
The MIDI event handling in InstrumentTrack was complex and buggy. It has
been simplified now such that processInEvent() tries to handle note on,
note off and key pressure events. The actions taken should result in
equivalent calls to processOutEvent() by NotePlayHandle instances. The
processOutEvent() function sends according MIDI events to the attached
instruments. All unhandled MIDI events are directly forwarded to the
instrument in processInEvent().

It's possible that some corner-cases are not handled yet with the new code
and we have regressions now.

Furthermore renamed midiTime/midiEvent to MidiTime/MidiEvent to match
coding style.

Closes #72.
2014-01-26 00:08:12 +01:00
Tobias Doerffel
2dc02001b7 Instrument: also render sound for MIDI-based instruments when muted
In order to provide smooth muting functionality (i.e. immediate proper
sound when unmuting) always render audio buffers for MIDI-based
instruments. This is more important than potentially reduced CPU usage
while muted.

Closes #69.
2014-01-22 21:55:33 +01:00
Tobias Doerffel
0ff1f91c1b Mixer: renamed class and file name
The mixer class is now named "Mixer" and accessible via engine::mixer().
2014-01-08 22:35:14 +01:00