Posts Tagged 'audio software'

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"

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.

using sound effects in ardour

To use LADSPA effects in ARDOUR projects one can just add one from the list by double-clicking in the field above the volume control in the mixer panel. But sometimes you want to use the same effect on different tracks or mix the original with the effect. If there is no Dry/Wet-mix control in the effect plug-in the latter can be done via SEND-effects. Adding the same effect to different tracks through a SEND plug-in, CPU usage is smaller than adding it to every single track. Although, once you know how it works it is quite straightforward, but I struggled a lot getting it to work.

To do so one adds a bus to the mixer panel. Then a SEND plugin is chosen by right-clicking in the effect field of the desired audio track. This plug-in can be attached to another track or bus  where one can add effects in the usual way. The important trick which finally does the job and which took  me a while to figure out is to activate the SEND connection in its context right-clicking on it. In the menu you find a activate command.

From now on all pre-fader signals from the chosen track go into the chosen bus where effects can be added. Pre fader means that you can change the volume of the original track (or even turn it down to mute) and he signal is still received by the effect bus. If the SEND is added into the field below the volume control it is a post fader send and the signal goes to the effect bus filtered.

The picture shows an actived SEND in an audio track. The levels of Bus 3 show that the signal is received.

The picture shows the mixer panel with an actived SEND plugin (pre-fader) in an audio track. The levels of Bus 3 show that the signal is received.

Introduction to Sooperlooper

Sooperlooper is a live looping sampler. It’s a great program! The main idea is to record and loop different audio samples in parallel. Already saved audio files can be loaded and looped as well. Many different features for recording or synchronizing make it a toy for long hours of playing around with. It interfaces with the jack audio connection kit, comes with ubuntu linux and, obviously, is free to download, copy and alter (GPL V2.0). Compiling the source is not as easy on ubuntu platforms (due to some package problems), I might post on that later.

Running slgui (the user interface comes separated from the actual looping server) a window opens with one (empty) stereo loop device and the jack master output (which is the input plus all active loops) is opened.

sooperlooper main window

sooperlooper main window

The main functions to start with are the record button, trigger, overdub and mute.  When recording is started the input is piped to that loop and recorded. Pressing record again the loop is played back (and looped) from the beginning.  Overdub starts recording over what is played back, mixing both together with a ratio defined by the “feedback” bar. When muted “trig” starts looping the sample, whereas “once” stops playback (of that loop) after the first round.These few functions give already a lot of fun. Using “undo” and “redo” to the left one can play happily with the first loop.

All this is nicely done when using a MIDI keyboard. In the preferences  one can make sooperlooper to “learn” MIDI events for different commands. With vkeybd (post) I arranged the main functions on the keys from 1-5 for the first loop and the rows below for others.  A detailed description of all functions is found on the website.

More loops can be opened and synchronized, more on that in a later post.

live audio effects – creox

For real time audio effects I found creox (website) to be a stable solution. It consists of 5 different effects (Phaser, Flanger, Echo, Tremolo, Distortion) which can be dis- and enabled in different orders of connection. Presets can be saved, although not changed (as of version 0.2.2rc2). Instead one has to save a changed set under a new name. Unfortunately it doesn’t have MIDI control so one has to click or change focus – strike key, which is a bit awkward in live situations. But the presets window can be detached from the main window.

When creox is set into play mode (SPACE key) it opens up one stereo jack input and one output port. Via the jack control it can be connected to any other jack port.

Concerning stability: starting up is the critical phase to my experiences. After setting creox into play mode it sometimes dies. But if it survives, then it is usually stable. I tried jackrack (website) as well, which is a more professional effect station for LADSPA effects, but it seems to be less stable. Since jackrack includes MIDI control it should be worth fiddling around with it. Maybe compiling it on my system helps or my hardware (about) is just to weak…??? Any comments/experiences appreciated.