Archive for the 'other software' Category

update on composite sampler

Looking at its web site, it seems that composite sampler (see post) is not actively developed anymore. The last news are from July 2011. What a pity.


hydrogen drumkits for composite sampler

Composite is will be a software application/system for real-time, in-performance sequencing, sampling, and looping. …” [Composite web site]. It comes with a LV2 plugin (called composite sampler) that allows to use its drumkits in zynjacku (“zynjacku is a nunchaku weapon for JACK audio synthesis. …” [zynjacku web site]), which means that you can use the sounds alone without running the whole sequencer. The drumkits are compatible to the ones used by hydrogen (“Hydrogen is an advanced drum machine for GNU/Linux. …” [hydrogen web site]).

The composite sampler documentation says that one needs to put the drumkits (or symlinks) into the according path and adjust the default.xml file in the composite presets (see manual). Then it is possible to change through the drumkits with MIDI program change messages. I thought an automated way of preparing this setup would be useful, so I wrote the following python script. Feel free to use/alter it, no guarantee is given for anything. Comments are welcome.

Generates symlinks in the composite drumkit path that point 
to the hydrogen drumkits. Creates an according xml-file with 
all drumkits with GMkit as the first entry.
__author__ = ""

from glob import glob
from os import system, path

xmlstart = "<?xml version=\"1.0\"?>\n\
<T:tritium xmlns:T=\"\">\n\
\t<T:presets>\n\\t\t<T:bank coarse=\"0\" fine=\"0\">"
xmlend = "\t\t</T:bank>\n\\t</T:presets>\n\</T:tritium>"

hydrogenDrumkitPath = "/usr/share/hydrogen/data/drumkits/"
compositeDrumkitPath = path.expanduser("~/.composite/data/drumkits/")
newDefaultFilename = "newDefault.xml"

def makeDrumkitSymlinks(hydrogenPath, compositePath):
    """Puts symlinks for all entries in hydrogenPath into compositePath"""
    print "Creating symlinks..."
    names = glob(hydrogenPath+"*")
    for n in names:
        system("ln -s '"+n+"' '"+compositePath+n.split("/")[-1]+"'")

def drumKitField(name, MIDIdevice):
    """Returns the complete xml-entry for one drumkit"""
    drumKitString = "\t\t\t<T:program>\n"
    drumKitString += "\t\t\t\t<T:midi_number>" 
    drumKitString += str(MIDIdevice) 
    drumKitString += "</T:midi_number>\n"
    drumKitString += "\t\t\t\t<T:resource>tritium:drumkits/"
    drumKitString += name
    drumKitString += "</T:resource>\n\t\t\t</T:program>"
    return drumKitString

if __name__ == '__main__':
    if path.exists(newDefaultFilename):
        print "The file '",newDefaultFilename,"' already exists."
        print "Not deleting anything."
        print "Aborting!"
        #uncomment the following to create the symlinks
        #makeDrumkitSymlinks(hydrogenDrumkitPath, compositeDrumkitPath)
        print "Creating new default file."
        drumkitnames = glob(compositeDrumkitPath+"*")
        f = open(newDefaultFilename,'w')
        f.write(drumKitField("GMkit",0)) #the default entry
        counter = 1
        for kit in drumkitnames:
            name = kit.split("/")[-1]
            if name!="GMkit": #default entry is already the first
                f.write(drumKitField(name, counter))
        print "Done. Now copy",newDefaultFilename,
        print "to your .composite/data/presets/default.xml"


Sometimes it’s really hard to find just that piece of information one needs to get done with the work. Searching a program’s homepage, looking around in the uncountable forums or playing with the settings can be very time consuming. On one of that journeys I passed by a site which I have seen before but did not remember:“Free manuals for free software”. Concerning music making I was happy to see the new Ardour manual and an Audacity manual.

There are many more documents about streaming, video editing and graphic design software, general Linux commands and other. The site is nicely made, very appealing to the eye and comes as well in other languages than English, however not all of the manuals are translated. Maybe YOU want to supply one?

FLOSS manuals screenshot

A screenshot from the FLOSS manuals main page.

update on smasher

After my euphoria from installing smasher without any problems I had some time to try out this very nice audio toy. It comes with some help, although it won’t explain everything. However, one easiely recognizes what is going on. What I didn’t realize before installing it was that smasher is not (hopefully yet) designed for live usage. So one can not synchronize playback with other programs (at least I didn’t know how to) and I couldn’t change slicing during playback. When smasher choked on something one cannot reconnect to the jack server. Alltogether it’s a very nice piece of software. One can prepare great loops with nice effects and save them to a wav. Thank you developers.

I have to add another note to my former post. When I installed it on my second machine, running as well on Ubuntu 8.04, it didn’t want to work straight away. On startup smasher  said:

smasher: /usr/lib/ \
        version `WXU_2.8.9' not found (required by smasher)

It turned out that some updates from this library are not included in Ubuntu. Adding to the package sources list (see) lets you update to the needed version from the wxwidget developers page.

Smasher, an open source beat-slicer

For a time now I was looking for an open source beat-slicer. I came across Smasher reading Dave Phillips’ latest article on, always a good read by the way. As he does a review on it in his article and I just installed it ten minutes ago, I will not bother you by another review.

As he points out, Smasher needs a variety of libraries to be built. Trying to compile it, I bumped into an error in wrapsound.cpp a few times, until I realized that from the same sourceforge page one can download a package smasher-1.1.6-ubuntu_i386.deb. It worked without problems for me on Ubuntu 8.04.

Then I started up Smasher and to my full delight it played the example file back as well straight to alsa as through a jack-server. So I’m quite excited about trying it out…

snapshot from

snapshot from

using audacity

Audacity is a free program, no need to give your email to anyone. Better download directly from its home on sourceforge!

It’s a well known program with GPLicense for recording and editing sounds. There is plenty of links on the internet on how to use it. However, it always takes some time to find the answer to special questions so I will document here on my experiences.

basic recording

I run Audacity using jack. To hear my source (e.g. MiniDisc) although I’m not running anything else I connect system-in and system-out directly. I switch  to Audacity and use a new empty project. When the record button is pressed (or key “r”) Audacity automatically sets up two jack audio input channels and reads system-in. The level meter goes with the flow and blue lines on the meter mark the highest peak of  the recording. One easily sees if the signal level was too high.

Then most probably one wants to save the recording. New name and so on…


… saved. From now on, when I change my project, I can save it under the given name with CTRL+S. Nothing unusual so far. Funnily one can provoke  a rather strange “error” here, which confused me for quite a while. Sometimes it says: “Disallowed for some reason.  Try selecting some Audio first?” You maybe think about it and press OK, then you think you’d better save it again and the same message comes up. What it actually wants to say is: “There were no changes made to save. So I cannot do what you asked me for”. One can see, that the save entry in the file menu is disabled!

Saving a project leaves a file called project.aup and a directory with the name project_data.


SPACE starts playback always at the marker (fine black line, NOT where the cursor is) and SPACE stops it again. A new playback will start at the marker and not where you stopped it. The marker can be set by clicking with the selection tool (F1) into the sample. When you mark a region by dragging the mouse-click along the sample, playback stops at the left end. SHIFT+SPACE will start looping playback on the selected region. The marker can be moved a little with the LEFT and RIGHT keys, it jumps to the beginning with HOME and to the END.

audacity selection tool

Audacity: The selection tool is for marking ranges or moving the marker line. The blue lines in the audio level meter show the highest peaks during the last playback.

a live looping concert with open source software only

So this is a comment on the first concert I did together with a friend, using live looping software (sooperlooper) and an effect program (creox) to connect a microphone. Well, to a cheap stereo audio interface (m-audio transit) which got its input from a little DJ mixer (as a preamp with band filters) which had the mic plugged in. The output of everything (the live voice and the loops) left through one stereo output into the master mixer. My friend entered into it with an electric bass guitar (with echo). A forty five minute “gig” without any major problems. I’ll tell you how I connected it, the problems I ran into and some tips and tricks.

Continue reading ‘a live looping concert with open source software only’