IoT 10: How to Use VST Plugins in LMMS on Linux

Last Updated on January 23, 2022

First Published on January 12, 2022

LMMS (the abbreviation of Linux MultiMedia Studio) is an open source software and digital audio workstation (DAW). You would use this software for Virtual Studio Technology (VST) plugins to get various sounds such as 8-bit. On Linux, you would use VST plugins for Windows OS. I tried to use VST plugins in LMMS on Ubuntu, a distribution of Linux.

* The reason to use LMMS in Linux is VST ".dll (DLL)" plugins. DLL means dynamic link libraries for Windows OS, and these libraries are used with executables, ".exe" (e.g., LMMS), like classes in object-oriented programming. If you are Windows users for a while, you would dislike to download DLL files because of a security reason, DLL injection attacks. I expect a sandbox, i.e., malicious ".dll" plugins won't break the system as long as I use DLL on Linux.


* Ubuntu 20.04.3 LTS

* Wine 5.0 from apt

* LMMS 1.2.2 (lmms-1.2.2-linux-x86_64.AppImage) from Website

* amd64 = x86_64 Machine

First of all, you need to install Wine to Ubuntu for running Windows applications.

# On Terminal of Ubuntu

sudo apt-get update

sudo apt-get install wine

Wine is placed as a 64-bit virtual machine, but several information online suggests it should be a 32-bit virtual machine for its stability. However, I didn't change the status as 64-bit machine.

Next, download LMMS for Linux from its website. You can install LMMS from the command line as well as Wine, but the installed LMMS 1.2.1 doesn't have VeSTige to use VST instruments.

# On Terminal of Ubuntu

# Add Execute Permission

cd ~/Downloads

chmod +x lmms-1.2.2-linux-x86_64.AppImage

mv lmms-1.2.2-linux-x86_64.AppImage ~/Desktop

# Just click the icon of AppImage on your desktop to run LMMS.

Download VST plugins (VST instruments = VSTi or VST effects) from websites. I downloaded free VST plugins from plugins4free. Caution that VST plugins should be for Win32 (32-bit Windows OS). If you want to use YMCK Magical 8bit Plug, you can use the old version (magical8bitPlug3.dll in magical8bitPlug1-win). Unzip a plugin, then move a DLL file to your VST folder like "~/Documents/lmms/plugins/vst/". The VST folder can be assigned by "VST-PLUGIN DIRECTORY" on the "Setup LMMS" menu of LMMS (Edit > Settings > Paths = Folder Icon). DLL files don't need execute permission.

* Settings of LMMS is stored in "~/.lmmsrc.xml".

You can use VSTi from VeSTige in Instrument Plugins emerged by clicking the sine wave marked file icon on the left corner of LMMS. Drag and drop VeSTige icon to Song-Editor or Beat+Bassline Editor. Click the icon in each editor, then open the "Open VST-plugin" menu (green folder icon). Select a DLL file in the list, then click the "Open" button, and wait a while until the title of the VST plugin appears on the "VeSTige" menu. Any dedicated GUI may be opened. Parameters of a plugin can be changed in the menu that is opened by clicking a gray spanner icon. I strongly recommend that you save parameters of the VST plugin on VeSTige as a file of VST Plugin Preset (.fxp) by clicking the floppy disk icon on the lower right corner (not on the upper right one) of the menu of VeSTige because VST plugins could be lost via transferring the project to other PCs, and parameters are vanished. Load a preset by clicking the folder icon on the lower right corner over a piano keyboard. Note that the floppy disk icon on the upper right corner is to save all settings as a XML preset file (.xpf) including arpeggio, and drag and drop it from the "My Presets" menu emerged by clicking the star marked file icon on the left corner of LMMS. However, the lost of the location of a VST plugin vanishes parameters even if you save a XML preset file. You would also use VST effects in the "Add effect" menu emerged by clicking the "Add effect" button in the "FX-Mixer" menu.

On saving project, VeSTige seems to also save the original path of the assigned VST plugin in your system. Therefore, VeSTige searches VST instruments by the original path of the assigned VST plugin in your former system even if you transfer your project to other PCs. The original path may include a user name of the old computer or system, causing privacy breaches on sharing project files. Whereas, VST effects on FX-Mixer seem to be searched by the path you set in "VST-PLUGIN DIRECTORY" on the "Setup LMMS" menu of LMMS. I opened an issue on LMMS repository in GitHub, and confirmed the issue is resolved at the tag, "1.3.0-alpha.1". In the new version, lmms/src/core/PathUtil.cpp manages virtual relative paths such as "uservst:magical8bitPlug3.dll". I guess its hard quest. Anyway, as well as a lot of contributors, I hope the new version comes as a stable version.

About the issue as I described above, I fixed this issue on my fork. I'm planning further development to add more patches to stable-1.2 mainly for live performances with checking development on the master branch contributors make a turbo (absolutely, they have good skills). LMMS is made of Qt which also makes cross-platform applications with graphical user interfaces (GUIs). LMMS has good readability at least on stable-1.2 and I think it's preferred by learners who want to be skilled at C++ language. Caution that this patch has no forward compatibility to 1.2.2 about project files to hide privacy breaches on sharing.

LMMS can be build on Ubuntu. Dependencies for Ubuntu are described on Wiki of Github repository. I installed described packages including LV2 and VST. About Carla, You can installed it using apt without any additional setting on Ubuntu 20.04.3 LTS. Note that making an appimage doesn't work on Ubuntu 20.04.3 LTS because of no support for linuxdeployqt.

# On Terminal of Ubuntu Git Has Been Already Installed

cd ~/Desktop

#git clone --recursive --branch develop-1.2 lmms_fork

git clone --branch patch_1_stable-1.2 lmms_fork

cd lmms_fork

git submodule update --init --recursive

# '-DWANT_QT5=ON' for 1.2.*

mkdir build

cd build

cmake ../ -DCMAKE_INSTALL_PREFIX=../target/ -DWANT_QT5=ON

make -j4

# Execute LMMS to check.


# Prepare installation into "target" folder.

make install

# Install: Or, set the location at -DCMAKE_INSTALL_PREFIX.

# /usr/local is a preferred destination on many distros.

cp -r ../target/* ~/.local

# Uninstall

# Remove files except files in "lmms" folders.

# lib/libqx11embedcontainer.a will also be removed. Check dependencies with other applications.

find ../target -print | sed "s#../target#$HOME/.local#" | sed "\#$HOME/.local/[^/]\+/lmms/#d" > list.txt

# Remove non-recursively.

xargs -L 1 -t rm < list.txt

# Remove files in "lmms" folders

rm -r ~/.local/*/lmms

* In my opinion, exporting a ".wav" (WAV) file from LMMS is a good idea to make a digital tune. WAV files can be imported to Audacity. This approach would be fit with recording plays of guitar, etc. If you need to stand on the stage, you make a music CD-R (44100Hz Stereo 16-bit WAV file: Refer to Audacity's online manual) and play your guitar with the tune on the CD-R. Note that Nanoloop for Android/iOS is a handy tool to make a digital tune. I think the history of Nanoloop as a fine art shows a move in the scene of popular music. Beatles played in Germany, and musicians with Nanoloop also played there too. I don't know the scene of Japan where there is a cultural delay from the world though (I can't observe gig systematic delay though). Audacity started since 1999, and Nanoloop started since 1998. Before them, the scene of digital music was almost on Apple's Macintosh. Even they pass 20 years, musical inspiration from them is just fresh. In other words, the scene of popular music couldn't be changed since Millennium, the start of this century. The impact in 1998 made musicians without joining any band. The change of mindset among musicians has affected several aspects of music. For example, marketing with emphasizing individual personalities of musicians occupied the mainstream, and you can remember a lot of musicians with each "life".

Please free to contact me by E-mail if you have any opinion or comment on this site.
Link: E-mail Adress
Push the "Search!" button to show results. How to search for a word?