Linux Multimedia Studio (LMMS) aka "sal likes a bit of techno"

Posted by tadelste on Mar 3, 2006 11:09 AM EDT
lxer; By salparadise
Mail this story
Print this story



I have to confess that whilst I like all sorts of music, a bit of techno can be just what the doctor ordered. It blows the cobwebs away and gets the blood running. Making one's own can be even more fun. There are three applications that allow for this sort of music creation that I know of for Linux. Freebirth, Reborn and LMMS.

Freebirth is very primitive. Reborn was withdrawn after Propellerhead threatened the author with litigation. Reborn was an exact copy of the Rebirth UI so I do see their point. Last year Propellerhead announced that Rebirth was now free for anyone who wanted it, available from the "Rebirth Museum". I wonder whether this changes the status of Reborn. The last one is LMMS. LMMS allows you to make your own music in a kind of "easy to use point and click" way. It's nowhere near Fruity Loops Studio for polish and scope and sheer range of available sounds but it's a fine start in that direction. I played around with LMMS when it was at an earlier version but it crashed after a few operations more or less constantly. Recently I saw a notice of a new version somewhere so I downloaded the latest source code which is now at version 0.1.4. http://lmms.sourceforge.net/ 
Download: http://sourceforge.net/project/showfiles.php?group_id=105168&package_id=113209



Prebuilt packages are available for various distros including Ubuntu but when I installed them apt complained and insisted they be removed before any further installs/upgrades were allowed. Time to do some compiling. So I thought why not write up the process of compiling and installing it while I'm at it.



I'm going to build it on Ubuntu. My Ubuntu (5.10 Breezy) has a fair amount of extra stuff (KDE, koffice, mplayer et al) installed via apt and the built in Add Application tool. However, this will be the first code I've compiled on this particular install. One of the extra bits I've added is the nautilus-open-terminal package. This adds an "open in terminal" option to the right click menu which saves a lot of messing around with cd'ing on the command line - lazy I suppose, but it's a great little time saver (KDE also has this option in the right click "Actions" menu). I'm also using the "single click" mouse option for all events because I don't like double clicking (I'm either too fast or too slow).



Right click on the tar.bz2 file and use the "Extract here..." option. Click on the resultant folder to open it and then right click and "open in terminal". 



I type ./configure to start the build process. The first thing that happens after a few lines have scrolled past is that the process halts and says



checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables



This means that there's something missing. On Ubuntu the correct command here is sudo apt-get install build-essential (build-essential is a meta-package that installs all the programs needed to compile software. Build-essential is only a tool set, I'll need to install further development libraries for LMMS to build properly).



At this point the Ubuntu CD is asked for. For me this is problematic, it's Friday evening and my Ubuntu CD is at work, which is shut till Monday. So, back to the command line.

sudo vi /etc/apt/sources.list to edit the file, (to "comment out" the line referring to the Ubuntu CD - "commenting out" means inserting a # at the beginning of the line you want ignored).



sudo apt-get update to reload the list



sudo apt-get install build-essential




Now I can rerun ./configure



This time it runs for longer and then stops and says



checking QTDIR... configure: error: *** QTDIR must be defined, or --with-qtdir option given



The qt3 directory is in /usr/lib, so my first choice is to rerun configure with the --wth-qtdir=/usr/lib/qt3 option, but this doesn't work. A little searching reveals I need to install libqt3-mt-dev to get past this point. Installing this requires 36 other packages to be installed.



sudo apt-get install libqt3-mt-dev



This time round ./configure runs through to the end but there's a series of warnings about missing files that LMMS needs in order to work properly. I need to install some more dev files. Specifically, I need to install the alsa-dev package, the libjack-dev package, the SDL-dev package, the libvorbis-dev package, the SDL_sound package, the libsamplerate-dev package and the libsndfile-dev package.



For a list like this, when I'm not sure of the precise file names I need more information.



apt-cache search PACKAGE-NAME




Example: apt-cache search libsndfile returns the following.



apt-cache search libsndfile



libsndfile0 - Library for reading/writing audio files



libsndfile0-dev - Library for reading/writing audio files



mffm-libsndfilew-dev - wrapper for the libsndfile audio file handling library



moc - ncurses based console audio player



sndfile-programs - Sample programs that use libsndfile



libsndfile1 - Library for reading/writing audio files



libsndfile1-dev - Library for reading/writing audio files



Consequently I know what command to issue:sudo apt-get install libsndfile1-dev



Sometimes apt-cache search returns a lot of results which scroll past very quickly, there's two main ways of dealing with this. I can either pipe the output of apt-cache search into less. This displays the results "one screen at a time" so I can read the output.



apt-cache search PACKAGE-NAME | less



The | symbol means "pipe" which literally directs output from one command into another command instead of dumping it to the terminal window (stdout). The second command then dumps its output to the screen. 



The other way is to pipe the output to grep. This stands for Global Regular Expression. Grep searches for whatever you tell it to as long as it's in some sort of string/pattern.



Example: the command apt-cache search X produces a lot of output. Suppose I wanted to find the x11proto-xf86bigfont-dev package. With grep it's easy



sudo apt-cache search X | grep bigfont



This filters the search results and only displays packages from the list of packages with "X" and with the phrase "bigfont" in their name.



Why have I mentioned all this? Well, there's two ways to deal with all these dependencies, from the command line or using the GUI. The GUI tool for this job is Synaptic. On Ubuntu it's in the System/Administration menu. You can also call it up from the command line. sudo synaptic



Synaptic provides you with a "Search" button, a "Reload" button, an "Upgrade" button and an "Apply" button. You can search for each file and install it with Synaptic (right click on the file name and choose the "Install" option) or, you can use apt-cache search and apt-get install to do it from the command line. Synaptic is just a graphic way of accessing the same commands without having to type them.



The command line is better. Why? Because if for some reason you can't get the desktop up and running you're going to need to know how to use the command line. For a task like this either way is just as good, we are, after all, seeking to get LMMS installed and running. But if we can learn a little along the way then that can't hurt either now can it?



The files I installed from the command line are as follows:



libsndfile1-dev



jack



libsamplerate0-dev



sdl-sound1.2-dev



libvorbis-dev



libalsaplayer-dev



libjack0.80.0-dev



(A fair amount of extra packages were needed in order for these ones to install. This is normal).



You can install them one at a time, or chain them together and install them with one single sudo apt-get install package1 package2 package3 etc



Now I rerun ./configure and this time I get no warnings and the following at the end.





LMMS will be able to use



       * ALSA for audio- and MIDI-input/output



       * JACK for audio-input/output



       * OSS for audio- and MIDI-input/output



       * SDL for audio-output



       * libvorbis for encoding/decoding OGG-files



       * SDL_sound for sample-decoding



       * libsndfile for sample-decoding



       * libsamplerate for internal samplerate-conversion







============================



===  LMMS - INFORMATION  ===================================================



============================



=



= LMMS has been configured successfully. Now you can build it by typing 'make'. = After the compilation-process has finished, you can install LMMS by



= typing 'make install'.




So I type make



Note: both the ./configure and make stages of this process are run as user and not with the sudo prefix to the command. I only need sudo when it comes to installing.




Now I'm ready to install.



sudo make install



OK, hooray for me! I just built and installed some software.





Now, I type lmms (as user, not with sudo) and the "Welcome to LMMS" dialogue appears.



Next I get the LMMS splash screen and another Setup dialogue box appears. I don't change any of these settings, I just click on OK. A warning appears telling me most changes won't take effect until the next time I start LMMS, but since I didn't change anything I don't restart. Next the full LMMS interface appears. Both the Setup dialogues can be rerun from the Settings menu at any time.



The full default LMMS interface.



You can set LMMS to run like the Gimp, in separate windows with no overall background window. To access this feature see the Settings/Show Settings Dialogue.


Getting Started with LMMS



LMMS typically opens maximised and has four smaller windows open within it. On the very left hand side of the main window is a vertical row of icons. Starting from the bottom and working upward they are; the root directory, the Home directory, Presets, Samples, Projects and Instrument plugins. A single click opens each and a single click closes again. Go to the My Projects icon and click on it. Have a mooch about in the Cool Songs, Covers and Demos folders. Double click on a title to load it and click on the play button on the Song Editor.

A lot of the songs have quite a rough sound as compared to commercially produced stuff. But that's the difference between free software and software that costs thousands. LMMS does have the ability to load samples provided by the user, so you're not tied to the midi-ish sounding samples that come with.




A Simple Demo

Click on Project and go to New Project. In the Song Editor click on the Add Beat/Bassline button (third one from the left) Next, open up the My Samples directory and double click on the "drums" folder. A single click on each sample will preview it for you and a double click will load it up to the beat+bassline editor. Double click on the bassdrum03.ogg sample, go the Beat+Bassline Editor and click on the first beat of each of the four groups of beats - they should light up green.  You can preview the loop by pressing the play button.

Now return to the Song Editor. Right click on the words beat/bassline 0 and type "drum" into the little window that appears then press Enter. Now click in the track to the right of the drum sample. A bluebox should appear under the cursor. Left click and hold to move this so it's square to the beginning of the track. Now mouse-over the right hand edge of the blue box until the cursor turns into the left/right arrow. When it does, left click and hold and paint the sample across the track to the right. 

Now repeat the process but this time choose one of the hi hat samples. Make sure you click on the New Beat/Bassline button first. When you come to putting the hi-hat hits in, put them on the third beat of each bar. Repeat the process of renaming the sample and painting it in. This time when you press play you get that distinctive alternating drum/hat rhythm that underpins techno. Stop the playback, add a new beat/bassline and this time go the "basses" folder. Find a sample you like and add it to the mix. In case you were wondering if this whole thing is going to turn out in monotone, right click on the first green hi-lighted tab in the new bass sample you just added and choose "open in Piano Roll". This is where you can start to add chords and runs using the initial sample. The same goes for the other sounds. Any sample can be sent to the piano roll. A note of caution here, some of the samples, particularly some of the keyboard samples don't appear to work. Whether this is faulty samples or a fault with my system I don't know.


And that about wraps it up. The rest is up to you. For the musicians amongst you there is some mention of VST plugins being made to work with LMMS on the website - see the screenshot section. This makes LMMS potentially a lot more powerful as there are some awesome VST plugin synths (Pro52 & Absynth to name two) and sound processors available.



  Nav
» Read more about: Story Type: Editorial, LXer Features, Tutorial; Groups: Community, Ubuntu

« Return to the newswire homepage

Subject Topic Starter Replies Views Last Post
Possibly easier install SFN 3 3,152 Mar 13, 2006 5:17 AM

You cannot post until you login.