"cross-platform FLOSS music creation software"
15 September 2016¶
20 January 2017¶
LMMS currently doesn't support transport/playback control via MIDI but I've had some success with visual automation tools:
MIDI Automator -- the key thing to realise with this tool is that almost all of the functionality is hidden behind the right-click/context menu. Watch the series of videos about how to use MIDI utomator because there doesn't appear to be written documentation about the UI.
I was able to control Song Editor start/stop and Piano Roll record functions once set up with appropriate match images.
SikuliX -- The MIDI Automator tool uses the SikuliX for the graphical automation part of its functionality. Using SikuliX directly might provide more control/customisation but would require implementing MIDI handling. Before I discovered MIDI Automator I was able to get as far as pressing Play/Stop in the Song Editor and Record in the Piano Roll by "manually" running a script. (See also: Notes: SikuliX)
- Jython (due to SikuliX support)
21 January 2017¶
5 February 2017¶
Notes on attempts to build (via):
git clone -b master https://github.com/lmms/lmms # (About 72MB)
brew update # (Was needed & seems to have worked.)
Ran into an issue building
fluid-synth due to
libxml2 but found someone else was working on a solution: https://github.com/Homebrew/homebrew-core/pull/9663
brew reinstall https://raw.githubusercontent.com/tresf/homebrew-core/470be59d5c8c3b246fb2659b513f8595c4498f16/Formula/stk.rb
email@example.com failed to build.
6 February 2017¶
The error when compiling QT was of the form:
error: member access into incomplete type 'QPair<QVariant, QVariant>'. (Don't have exact details because I apparently just caused the log file to get overwritten via the new compiler.)
Suspecting the error might be due to an outdated compiler I updated to what appears to be the latest available for Mac OS X 10.8 following details via "Installing the Xcode command line tools on 10.7.x and later":
The previous version output was:
$ clang --version
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Thread model: posix
The updated version output is:
$ clang --version
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Thread model: posix
The build failed even after updating the compiler but I've just realised that Homebrew is using the compiler in
XCode rather than the commandline tools version. So the version it is using is even older:
$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ --version
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Thread model: posix
When running this:
brew install homebrew/versions/qt55
The error generated is logged as:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -ffunction-sections -O2 -fPIC -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/
MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.7 -fno-exceptions -Wall -W -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT_NO_TRANSLATION -DQT_CRYPTOGRAPHICHASH_ONLY_SHA1 -DQT_NO_CAST_FROM_ASCII -DQT_BUILD_BOOTSTRAP_LIB -DQT_BUILDING_QT -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -I. -I../../../include -I../../../include/QtCore -I../../../include/QtXml -I../../../include/QtCore/5.5.1 -I../../../include/QtCore/5.5.1/QtCore -I../../../include/QtXml/5.5.1 -I../../../include/QtXml/5.5.1/QtXml -I../../../mkspecs/macx-clang -o .obj/qabstractfileengine.o ../../corelib/io/qabstractfileengine.cpp
In file included from ../../corelib/kernel/qcore_mac_objc.mm:37:
In file included from ../../../include/QtCore/qdebug.h:1:
In file included from ../../../include/QtCore/../../src/corelib/io/qdebug.h:38:
In file included from ../../../include/QtCore/qhash.h:1:
In file included from ../../../include/QtCore/../../src/corelib/tools/qhash.h:41:
In file included from ../../../include/QtCore/qpair.h:1:
../../../include/QtCore/../../src/corelib/tools/qpair.h:77:50: error: member access into incomplete type 'QPair<QVariant, QVariant>'
Q_DECL_NOEXCEPT_EXPR(noexcept(qSwap(other.first, other.first)) && noexcept(qSwap(other.second, other.second)))
../../../include/QtCore/../../src/corelib/global/qcompilerdetection.h:1027:43: note: expanded from macro 'Q_DECL_NOEXCEPT_EXPR'
# define Q_DECL_NOEXCEPT_EXPR(x) noexcept(x)
../../../include/QtCore/../../src/corelib/kernel/qvariant.h:792:42: note: in instantiation of template class 'QPair<QVariant, QVariant>' requested here
static QPair<QVariant, QVariant> invoke(const QVariant &v)
../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:2048:1: note: definition of 'QPair<QVariant, QVariant>' is not complete until the closing '}'
../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:204:7: note: expanded from macro 'QT_FOR_EACH_AUTOMATIC_TEMPLATE_2ARG'
../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:2045:43: note: expanded from macro 'Q_FORWARD_DECLARE_METATYPE_TEMPLATE_2ARG_ITER'
template <class T1, class T2> CPPTYPE TEMPLATENAME; \
I note that the diagnostics given by Homebrew incorrectly state that the Clang version being used is the updated one:
Clang: 5.1 build 503
But it also lists:
8 February 2017¶
[Insert a bunch of stuff here, culminating in finally getting QT to build.]
[TODO: Update this. :D ]
Back to following with the lmms compilation instructions:
export CMAKE_PREFIX_PATH="$(brew --prefix qt55)" # (In my case, still works without "completing" brew install due to "... or would be installed" functionality .)
cmake .. -DCMAKE_INSTALL_PREFIX=../target -DWANT_QT5=True
Woo! It built!
Woo! It ran and made sound and music and stuff. :)
(Also, it seems it creates its
.lmmsrc.xml file in the build directory rather than overwriting the one in
So, in conclusion, building QT: PITA; Everything else: surprisingly smooth.
A good start.
13 February 2017¶
17 February 2017¶