Carla && LMMS
=============
I've been trying to get Carla & LMMS working together on Linux, and read a few threads here on the forum.
One or two said that it worked OK, more said it was a problem, and nothing seemed very recent.
First I tried downloading the prebuilt binaries from kxstudio, but it didn't work and there's no support documentation that I could find, so I gave that up.
But - with a bit of effort - I got LMMS to recognise an installed Carla system by compiling and installing Carla for myself, so I thought I'd drop a note in about it.
These are not comprehensive installation notes, as I can't cover all the variations of Linux distros let alone the huge variation in skills and experience of people using them.
This method worked for me on my computer. For anyone else struggling, they might work for you too.
This isn't difficult and doesn't require specialised expertise, but you'll need to be OK with working in a terminal session, and with downloading and installing packages.
You'll probably also need to know how to execute commands as root (administrator) using "su" or "sudo".
PREREQUISITES
==============
The first thing to say is I am using 64-bit LMMS 1.2.1 as an AppImage, which I got from lmms.io/download.
You'll need a development and compilation environment set up, and you'll have to refer to guidance elsewhere for how to do this (sorry).
For instance, in Ubuntu you'll at the very least have to run a terminal command something like
Or, say, if you're running Arch Linux
.
Different distros will require different things. As I say, I can't cover them all.
A simple bit of googling for "install development files " for your distro will probably find what you need.
Before moving on, follow any instructions for testing that you've got what you need working ok.
To have a fully configured Carla installed, you might also first need some other packages installed in your system (if it hasn't already got them). These are called "dependencies". & we'll mention this again briefly later.
However, I'm pretty sure that most of what you need to get it running in LMMS will already be available on your system, even if it doesn't have all the "bells & whistles".
Get Carla
=======
Go to https://github.com/falkTX/Carla and click on "Clone or download", and then select "Download ZIP"; your browser should then offer you a dialogue to download and save the file.
This is the Carla source-code, which we're going to compile and install on our system.
Once the file is downloaded, you'll need to unzip it into a directory (folder) and then open a terminal session and change into the directory into which you just unzipped the source-code.
(If you do a directory listing there (ls) you'll see a file called INSTALL.md, which basically tells you everything I'm going to tell you)
Firstly, try the following command;
You should see output on your screen similar to the following:
It is not necessary for everything to say "YES", and I'll have to leave it up to you to investigate what else you might need to install before going any further.
So, for instance, on my system OSC Support: NO showed up along with the message liblo missing
This meant the system could not find the liblo library development files, which I then had to install.
(I mentioned "dependencies" earlier, and this illustrates that the liblo development files are a dependency of Carla if you need OSC support.)
Compile & Install Carla
==================
Lets assume that you've got all the dependencies you need installed.
When you're ready, you just need to run two further commands in the terminal session, in the directory (folder) where you've unzipped the Carla files.
First you run
(if you know how many cores your processor has, you can speed up the compilation a bit by telling make to use them all; So on my old Dell, I have a Core2 Duo processor with two cores, and I used the command make -j2; if I was on my Lenovo with a 4-core I7, I'd have used make -j4)
You'll then see some output on the screen similar to this:
(there'll be more than this)
If you see warnings like this, don't worry:
If however, you see actual errors that stop the compile before its completed, you'll need to work out what's wrong & correct the problems before trying again.
(If you need to start over, first run the command
which will tidy up the source directory before you try again)
If the compile completes without error, it doesn't tell you except to say
Next step is to install what you've just compiled:
(for lots of distros you'll probably have to be root for this, so the command will be something like sudo make install)
You'll see some output similar to this:
(Again, there will be a lot more than this)
Finally, just for completeness, run the command
This usually doesn't show any output in the terminal.
(We do this to make sure that all the libraries and links to libraries are set up optimally.)
Finally
=====
Well, if all has gone without errors or problems, you should have a working Carla system installed.
If you now start up LMMS, you should see Carla Patchbay and Carla Rack in the LMMS Instrument Plugins.
What if I have problems?
===================
I'm likely to be an infrequent visitor to these forums, so I can't promise to be here to help you troubleshoot your Linux questions.
But I've looked around, and there are some switched-on Linuxy people around here, and there are other proper Linux forums and resources you can refer to.
Hope this has been some help ...
=============
I've been trying to get Carla & LMMS working together on Linux, and read a few threads here on the forum.
One or two said that it worked OK, more said it was a problem, and nothing seemed very recent.
First I tried downloading the prebuilt binaries from kxstudio, but it didn't work and there's no support documentation that I could find, so I gave that up.
But - with a bit of effort - I got LMMS to recognise an installed Carla system by compiling and installing Carla for myself, so I thought I'd drop a note in about it.
These are not comprehensive installation notes, as I can't cover all the variations of Linux distros let alone the huge variation in skills and experience of people using them.
This method worked for me on my computer. For anyone else struggling, they might work for you too.
This isn't difficult and doesn't require specialised expertise, but you'll need to be OK with working in a terminal session, and with downloading and installing packages.
You'll probably also need to know how to execute commands as root (administrator) using "su" or "sudo".
PREREQUISITES
==============
The first thing to say is I am using 64-bit LMMS 1.2.1 as an AppImage, which I got from lmms.io/download.
You'll need a development and compilation environment set up, and you'll have to refer to guidance elsewhere for how to do this (sorry).
For instance, in Ubuntu you'll at the very least have to run a terminal command something like
Code: Select all
sudo apt install build-essential
Or, say, if you're running Arch Linux
Code: Select all
pacman -S base-devel
Different distros will require different things. As I say, I can't cover them all.
A simple bit of googling for "install development files " for your distro will probably find what you need.
Before moving on, follow any instructions for testing that you've got what you need working ok.
To have a fully configured Carla installed, you might also first need some other packages installed in your system (if it hasn't already got them). These are called "dependencies". & we'll mention this again briefly later.
However, I'm pretty sure that most of what you need to get it running in LMMS will already be available on your system, even if it doesn't have all the "bells & whistles".
Get Carla
=======
Go to https://github.com/falkTX/Carla and click on "Clone or download", and then select "Download ZIP"; your browser should then offer you a dialogue to download and save the file.
This is the Carla source-code, which we're going to compile and install on our system.
Once the file is downloaded, you'll need to unzip it into a directory (folder) and then open a terminal session and change into the directory into which you just unzipped the source-code.
(If you do a directory listing there (ls) you'll see a file called INSTALL.md, which basically tells you everything I'm going to tell you)
Firstly, try the following command;
Code: Select all
make features
Code: Select all
---> Main features
Front-End: YES
LV2 plugin: YES
VST plugin: YES
Link support: YES
OSC support: YES
Binary detect: YES
---> Engine drivers
JACK: YES
ALSA: YES
PulseAudio: YES
CoreAudio: NO [MacOS only]
ASIO: NO [Windows only]
DirectSound: NO [Windows only]
WASAPI: NO [Windows only]---> Main features
Front-End: YES
LV2 plugin: YES
VST plugin: YES
Link support: YES
OSC support: YES
Binary detect: YES
---> Engine drivers
JACK: YES
ALSA: YES
PulseAudio: YES
CoreAudio: NO [MacOS only]
ASIO: NO [Windows only]
DirectSound: NO [Windows only]
WASAPI: NO [Windows only]
---> Plugin formats:
Internal: YES
LADSPA: YES
DSSI: YES
LV2: YES
VST: YES (with UI)
---> LV2 UI toolkit support:
External: YES (direct)
Gtk2: YES (bridge)
Gtk3: YES (bridge)
Qt4: NO [Qt4 missing]
Qt5: YES (bridge)
X11: YES (direct+bridge)
Cocoa: NO [MacOS only]
Windows: NO [Windows only]
---> File formats:
Basic: YES
Extra: YES
SF2/3: YES
SFZ: YES
---> Internal plugins:
Basic Plugins: YES
Carla-Patchbay: YES
Carla-Rack: YES
External Plugins: NO
---> Plugin formats:
Internal: YES
LADSPA: YES
DSSI: YES
LV2: YES
VST: YES (with UI)
---> LV2 UI toolkit support:
External: YES (direct)
Gtk2: YES (bridge)
Gtk3: YES (bridge)
Qt4: NO [Qt4 missing]
Qt5: YES (bridge)
X11: YES (direct+bridge)
Cocoa: NO [MacOS only]
Windows: NO [Windows only]
---> File formats:
Basic: YES
Extra: YES
SF2/3: YES
SFZ: YES
---> Internal plugins:
Basic Plugins: YES
Carla-Patchbay: YES
Carla-Rack: YES
External Plugins: NO
So, for instance, on my system OSC Support: NO showed up along with the message liblo missing
This meant the system could not find the liblo library development files, which I then had to install.
(I mentioned "dependencies" earlier, and this illustrates that the liblo development files are a dependency of Carla if you need OSC support.)
Compile & Install Carla
==================
Lets assume that you've got all the dependencies you need installed.
When you're ready, you just need to run two further commands in the terminal session, in the directory (folder) where you've unzipped the Carla files.
First you run
Code: Select all
make
You'll then see some output on the screen similar to this:
Code: Select all
make[1]: Entering directory '/initrd/mnt/dev_save/data/src/Carla/source/backend/engine'
make[1]: Entering directory '/initrd/mnt/dev_save/data/src/Carla/source/backend/plugin'
Compiling CarlaPlugin.cpp
Compiling CarlaEngine.cpp
Compiling CarlaEngineClient.cpp
Compiling CarlaPluginInternal.cpp
Compiling CarlaEngineData.cpp
Compiling CarlaEngineDummy.cpp
Compiling CarlaPluginNative.cpp
Compiling CarlaEngineGraph.cpp
Compiling CarlaPluginBridge.cpp
Compiling CarlaEngineInternal.cpp
Compiling CarlaEnginePorts.cpp
Compiling CarlaPluginLADSPADSSI.cpp
Compiling CarlaEngineThread.cpp
Compiling CarlaEngineOsc.cpp
Compiling CarlaEngineOscHandlers.cpp
Compiling CarlaEngineOscSend.cpp
Compiling CarlaPluginLV2.cpp
Compiling CarlaEngineJack.cpp
Compiling CarlaEngineNative.cpp
Compiling CarlaEngineRtAudio.cpp
Compiling CarlaPluginVST2.cpp
Compiling CarlaEngineNative.cpp (plugin)
Compiling CarlaPluginVST3.cpp
Compiling CarlaPluginAU.cpp
Compiling CarlaPluginJuce.cpp
Compiling CarlaPluginFluidSynth.cpp
Compiling CarlaPluginSFZero.cpp
Creating carla_engine.a
Creating carla_engine_plugin.a
make[1]: Leaving directory '/initrd/mnt/dev_save/data/src/Carla/source/backend/engine'
make[1]: Entering directory '/initrd/mnt/dev_save/data/src/Carla/source/jackbridge'
Compiling JackBridge1.cpp
Compiling CarlaPluginJack.cpp
Compiling JackBridge2.cpp
Creating jackbridge.a
make[1]: Leaving directory '/initrd/mnt/dev_save/data/src/Carla/source/jackbridge'
make[1]: Entering directory '/initrd/mnt/dev_save/data/src/Carla/source/native-plugins'
Compiling _all.c
If you see warnings like this, don't worry:
Code: Select all
ad_ffmpeg.c:115:5: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
if (priv->formatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
^~
In file included from ffcompat.h:33:0,
from ad_ffmpeg.c:29:
/usr/include/libavformat/avformat.h:893:21: note: declared here
AVCodecContext *codec;
^~~~~
ad_ffmpeg.c:126:3: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
priv->codecContext = priv->formatContext->streams[priv->audioStream]->codec;
^~~~
In file included from ffcompat.h:33:0,
from ad_ffmpeg.c:29:
/usr/include/libavformat/avformat.h:893:21: note: declared here
AVCodecContext *codec;
(If you need to start over, first run the command
Code: Select all
make distclean
If the compile completes without error, it doesn't tell you except to say
Code: Select all
Done
Next step is to install what you've just compiled:
Code: Select all
make install
You'll see some output similar to this:
Code: Select all
install -d /usr/local/bin
install -d /usr/local/lib/carla/jack
install -d /usr/local/lib/pkgconfig
install -d /usr/local/include/carla/includes
# Create directories (gui)
install -d /usr/local/lib/carla/styles
install -d /usr/local/share/applications
install -d /usr/local/share/icons/hicolor/16x16/apps
install -d /usr/local/share/icons/hicolor/48x48/apps
install -d /usr/local/share/icons/hicolor/128x128/apps
install -d /usr/local/share/icons/hicolor/256x256/apps
install -d /usr/local/share/icons/hicolor/scalable/apps
install -d /usr/local/share/mime/packages
install -d /usr/local/share/carla/resources
install -d /usr/local/share/carla/modgui
install -d /usr/local/share/carla/patchcanvas
install -d /usr/local/share/carla/widgets
# -------------------------------------------------------------------------------------------------------------
# Install script files (non-gui)
install -m 755 \
data/carla-single \
/usr/local/bin
# Adjust PREFIX value in script files (non-gui)
sed -i -e 's?X-PREFIX-X?/usr/local?' \
/usr/local/bin/carla-single
# Install backend libs
install -m 644 \
bin/libcarla_*.* \
/usr/local/lib/carla
# Install other binaries
install -m 755 \
bin/*bridge-* \
bin/carla-discovery-* \
/usr/local/lib/carla
# Install custom libjack
install -m 755 \
bin/jack/libjack.so.0 \
/usr/local/lib/carla/jack
# Install pkg-config files
install -m 644 \
data/*.pc \
/usr/local/lib/pkgconfig
# Adjust PREFIX, LIBDIR and INCLUDEDIR in pkg-config files
sed -i -e 's?X-PREFIX-X?/usr/local?' \
/usr/local/lib/pkgconfig/carla-native-plugin.pc \
/usr/local/lib/pkgconfig/carla-standalone.pc \
/usr/local/lib/pkgconfig/carla-utils.pc
sed -i -e 's?X-LIBDIR-X?/usr/local/lib?' \
/usr/local/lib/pkgconfig/carla-native-plugin.pc \
Finally, just for completeness, run the command
Code: Select all
ldconfig
(We do this to make sure that all the libraries and links to libraries are set up optimally.)
Finally
=====
Well, if all has gone without errors or problems, you should have a working Carla system installed.
If you now start up LMMS, you should see Carla Patchbay and Carla Rack in the LMMS Instrument Plugins.
What if I have problems?
===================
I'm likely to be an infrequent visitor to these forums, so I can't promise to be here to help you troubleshoot your Linux questions.
But I've looked around, and there are some switched-on Linuxy people around here, and there are other proper Linux forums and resources you can refer to.
Hope this has been some help ...