Grande Utopia Analyzer for Renoise 3.0.1

Today I released a new funky, not too serious, xrnx tool for Renoise called “Grande Utopia Analyzer”. It’s an audio signal analyzer which simulates the famous Focal Grande Utopia EM Hifi speakers:

grande_analyzerThe analyzer listens to the left and right audio channels on the master track, and moves the various speaker cones incl. tweeter according to the audio stream’s frequency content. While it’s primarily a fun tool, the analyzer should display the frequency content correctly (approximatively): Sub from 20..80Hz, bass from  80..220Hz, mids from 220..2200Hz, tweeter from 2200..18.200Hz.

If one clicks on Dirk Nowitzki, a little fact sheet is shown. Check it out:

grande_analyzer_factSince Renoise API actually doesn’t support videos or animated gifs, the biggest problem was to implement the various animations. But I think I’ve found a nice solution which isn’t too hard on the CPU.

Also, it was necessary to insert various signal followers onto the master track: each speaker segment needs a dedicated signal follower – this is unfortunately quite a big dsp chain. Actually I wanted to encapsulate this chain into a doofer device, but the scripting API doesn’t support scripting of doofers – argh !

Further, the analyzer can be persistently enabled / disabled via tools menu and hotkeys:

grande_analyzer_menuDownload and installation:

IMPORTANT HINT: works also for Renoise 3.0.0, but only in mono mode, because of a bug in the signal follower device. I discovered this bug during the development of this tool, and it was fixed in latest Renoise 3.0.1 release.

Posted in Production, Software, Tech Stuff | Leave a comment

Wait – by Joane [REMASTER]

This is a remastered version of the unplugged song “Wait” by Joane.

Remastering by 4irmann. All rights reserved by Joane.
Clock image taken from Wikipedia Commons.



I can’t see you I can’t hear you as if you turned away.
Still I cry to you, still I search you –  come back again.

And I wait for your answer, I wait to see you again.
And as I wait you take me deeper.

So now I know:
you’ve heard my prayer, you’ve heard my cry
I won’t give up you are near by

Posted in Tracks | Leave a comment

FaderPort Emulator for Renoise 3.0

In 2010 I released a driver which integrates the Presonus FaderPort DAW controller into Renoise DAW. See

Since then, Renoise has evolved to version 3.0 and I updated the driver regularly. Nonetheless, the day will come when the FaderPort hardware won’t be produced anymore and without further development the driver will be useless.

Since I still like the driver’s design and stable codebase, I decided to make it also usable for non-FaderPort owners and created a 1:1 FaderPort software emulator with GUI:

FaderPort Emualtor GUIEmulator Features

  • fully integrated into Renoise 3.0
  • resembles 1:1 with the design of the real hardware
  • acts almost like the real hardware
  • All buttons and controls – especially the fader – can be MIDI-mapped to any 3rd party midi controller.

Renoise Integration Of Real HardwareIntegration of real hardwareThe FaderPort’s motorized fader controls the volume level of the currently selected track. Whenever another track is selected, the FaderPort changes it’s position according to the new track’s volume level.

Analogue the FaderPort’s buttons (like play etc.) control Renoise and also reflect Renoise’s state.

Renoise Integration Of Emulator:

Integration of EmulatorThe emulator’s fader controls the volume level of the currently selected track. Whenever another track is selected, the fader  changes it’s position according to the new track’s volume level.

Moreover, it is possible to midi map any midi controller to the fader, pan and buttons of the emulator GUI dialog:Dialog_Midibind_2In the example above an endless rotary knob is mapped to the emulator’s fader. Means: whenever the knob is turned, the volume level of the currently selected track is changed. The big advantage: regardless of how many tracks a song has, only one rotary knob can control them all ! There’s no need for a huge motorized mixing console etc..


You also can download xrnx files via the Renoise tool browser:

Posted in Production, Software, Tech Stuff | 1 Comment

How to Rip A Drum Pattern using Reaper DAW

Recently I wanted to rip some drum patterns from various DnB tunes. Main goal was to analyze genre-typical hihat patterns, learn something new and create midi templates for further usage. Reaper’s flexibility came in very handy and in this post I describe the used methods.

First, there exist many beat detector and auto slicing tools on the market. Most DAW’s and DJ Tools have inbuilt functions for onset or transient detection etc.. Usually these functions work well for material with strong transients like e.g. kickdrum and snare, whereas more complex layered beats are usually not sliced properly. I tried several tools but the results were not usable.

So I decided to do the slicing with Reaper DAW by hand, and use automation where possible. In the following I describe my workflow.


  • Analyze BPM of the source material. I use Mixmeister BPM Analyzer (free), Mixxx DJ Tool (free) or Reaper’s internal functions.
  • Open a new Reaper project, set the BPM to the analyzed value and insert the source material into the first track (in that order)
  • Adjust the Reaper time grid to a desired resolution. 1/16 usually works fine.  Reaper action is “Grid: Set to 1/16″.
  • Move and shift the source material’s kickdrum to the first beat of the bar. For fine adjustment select wave item with left mouse button while holding left shift key. Drag wave form until kickdrum transient matches first beat.
  • Now select 1-2 bars which you want to analyze/slice. Copy those bar(s) out of the source wave form into a new item to a new track “Original”.
  • Copy this item to a further track folder named “WAV”


  • Disable auto crossfade
  • Slice the item on the “WAV” track using Reaper Action “Item: split items at timeline grid”.  Thus, the item is split into 1/16 parts (see grid resolution above).
  • Now, grab the kickdrum items and move them to a new track “Kick”. Do the same for “Snare”, “hihat”, “ride”, “crash” whatever. You get the idea. All tracks are children of “WAV” track folder.
  • If two elemets overlay each other like e.g. hihat and kick copy the items instead of moving them. If an item is longer than the grid size (e.g. kick is 1/8), then copy and glue things, or change the grid size etc..
  • If some beat elements don’t start exactly at beat position, or vary in length do the fine adjustment by hand. This may be the case for shuffled beats, natural played beats or humanized stuff etc..  IMPORTANT: if you don’t do this, the later ripped pattern may sound unnatural or “mechanical”.


  • Create a new track folder called “MIDI”
  • Select all items in e.g. Kick track
  • Convert item positions and length to midi events. Reaper action is “item: Create chromatic midi from items” (my hotkey combination is ctrl-alt-D). Thus, a new track with midi events is created.
  • Move the newly created track to MIDI track folder and name it “Kick”. Do the same for all other tracks (Snare etc.)
  • Important: adjust the size of the generated midi items to your loop size. Usually the midi items are shorter than the loop. All midi items on all midi tracks should have the same length and start position.
  • Unfortunately the created midi events are chromatic, so we have to convert them to “non-chromatic”: double click midi item (= open item in midi editor). Select all midi events (ctrl-A), open note properties (ctrl-F2) and set note value to the desired value (e.g. C2 .. D#3 for fxpansion Geist).


  • Select Kick midi item and call Reaper action “Convert active take MIDI to .mid file reference”. Thus a file “Kick MIDI 001.mid” is created inside project folder.
  • Select Kick midi item again and call Reaper action “Convert active take MIDI to in-project event”. This ensures that the midi item is stored inside the Reaper project file.
  • Do the same for alle other midi items (Snare, etc.).
  • If you want to create a combined midi item which contains all tracks (kick, snare, etc.), then select MIDI track folder, enable “record: output MIDI”. Select loop and start recording.


The exported midi items can of course be used in various programs like fxpansion Geist (beat sequencer):

  • import combined midi item: load pattern from midi
  • adjust BPM setting
  • Map samples to pads
  • save everything as Geist preset


Reaper Beat Ripping

Combined MIDI item

Geist Preset

Posted in Production | Leave a comment

Scalefreq Generator v1.01

Scalefreq Generator is a tool for rendering frequencies of notes / musical scales into various output formats. It’s primarily aimed for mixing/mastering engineers and other musical interested people. The frequencies of musical scale or non-scale notes (inverse) are important in mixing and mastering situations. E.g. non-scale frequencies are often attenuated using an EQ.

Scalefreq consists of a core system, a render-plugin architecture and a graphical frontend for convenient user interaction.

Currently the following output format renderer are included:

  • HTML Renderer: generates HTML pages which contains scale frequency tables
  • Voxengo GlissEQ Filter Renderer: generates importable EQ presets for Voxengo GlissEQ VST plugin
  • Voxengo GlissEQ Areas Renderer: generates importable EQ Areas presets for Voxengo GlissEQ VST plugin


The HTML Renderer creates frequency tables in HTML format for any specific scale. Alternatively it can render all tonic variations of a scale (chromatically). Also a huge HTML file can be generated, which contains all available Scalefreq scales.

Scalefreq GUI

Render output:

HTML output


The Gliss EQ filter renderer generates CSV files which can be imported into Voxengo Gliss EQ VST plugin. Thus, it’s e.g. possible to conveniently import notch/peaking filters for non-scale notes (= inverse scale).

GlissEQ Filter Renderer

Imported render output:

GlissEQ Filters



The Gliss EQ area renderer also generates CSV files which can be imported into Voxengo Gliss EQ VST plugin in order to create colorful EQ areas marker.

GlissEQ Areas Renderer

Imported render output:

GlissEQ areas

Inverse and alternate colors:

GlissEQ Areas Renderer Alternate

Imported render output:

GlissEQ Areas Alternate





A Java 1.7 Runtime Environment (JRE or JDK) is required.
The following platforms are supported:

  • Windows (32/64)
  • Linux GTK (32/64)
  • MacOS (32/64)

In order to start the program, just double click the file “scalefreq_1_01.jar”. If this doesn’t work, try to start from the command line:
java -jar scalefreq_1_01.jar

E.g. on windows:
press windows key+r, "cmd" -> java -jar path to scalefreq_1_01.jar

HINT: scalefreq stores all made settings in the current user profile. In order to reset the settings press the reset button.



If you want to develop another plugin/renderer for Scalefreq (really easy !) just contact me. I’ve planed to release the source code if enough people are interested.

Also if you’re interested in different scales etc. just let me know !



  • 1.0 – initial release
  • 1.01 – proper multi platform support for Win,Mac,Linux (all 32/64), better font for multi platform (Arial), default frequency range for GlissEQFilter renderer is now 20 Hz..20 KHz

Posted in Production, Software, Tech Stuff | 16 Comments

DIY XLR A/B switch box

During the last weeks I finished another little DIY project: an XLR A/B switch box. This thingy has two balanced stereo XLR inputs and one balanced stereo XLR output. Together these are four mono input channels and two mono output channels. It’s a great tool if you need to switch between two input sources like e.g. two DAC’s etc. It’s also ideal for A/B comparison of various input devices. Since it’s a completely passive design it shouldn’t affect the sound. Also the stereo channels are completely physically separated.

The main work was to build the case which was made from aluminium rest of another DIY project.


The wiring and soldering is pretty simple. Here is the wiring scheme:

wiring scheme
wiring scheme

The input connectors are Neutrik NC3 FXX, the output connectors are Neutrik NC3 MXX. The ground wires of the first channel (A1,B1,C1) and second channel (A2,B2,C2) are soldered together, but not connected to the case. Also there’s no ground connection between channel 1 and channel 2.

Example Use Cases

  1. Stereo A/B Input Switch: A1 = A In Left, A2 = A In Right, B1 = B In Left, B2 = B In Right, C1 = Out Left, C2 = Out Right
  2. Stereo A/B Output Switch: A1 = A Out Left, A2 = A Out Right, B1 = B Out Left, B2 = B Out Right, C1 = In Left, C2 = In Right
  3. 2 x Mono A/B Input Switch: A1 = Mono 1 In, B1 = Mono 2 In, C1 = Mono 1 Out, A2 = Mono 3 In, B2 = Mono 4 In, C2 = Mono 2 Out. Both Mono Outputs are physically separated.

More pictures:

A/B Switcher rack mounted
rack mounted
A/B Switcher cables
input/output XLR cables

Posted in Production, Tech Stuff | 2 Comments

DIY Headphone Amp Funk LPA-2a

Recently I built myself a High-End DIY headphone amplifier, which is based on modules from german manufacturer Funk Tonstudio Technik. The amp has balanced XLR input sockets and a standard unbalanced stereo headphone output. DIY means: the headphone amp, the unbalancing amplifier and the power supply modules are from Funk, the rest: case, inputs, outputs, connections, soldering, etc. is all DIY.


LPA-2a side view
Funk LPA-2a

Specifications And Price

The LPA-2a has excellent specifications. Regarding specs it’s one of the best, if not the best, headphone amp available. Soundwise it’s optimized for purest transparency, so no colorful analogue sound here. Since a stepped ALPS attenuator is used, the stereo-balance is very good. The unbalancing board and the power supply module also have execellent specs. And the best thing: in relation to the quality the modules are relatively cheap (round about 250 €, the price for the case and other DIY stuff is round about 150€. That said: there are much cheaper cases available).

Module specifications:

The Case

The case was designed using Frontplatten Designer by Schaeffer AG. Means: the aluminium front plate was milled by Schaeffer AG, also the corner aluminium profiles are from Schaeffer AG. The rest of the case was made from various pieces of sheet metal from That was much cheaper than ordering directly from Schaeffer AG. Top, bottom and side sheets are 2mm stainless steel. The back plate is a 3mm aluminium sheet. I drilled all holes of the back plate by myself (cheaper). For mounting I used stainless steel hexagon socket screws.

case parts
case parts
front plate
front plate

Electrical Components

Electrical components are the already described Funk modules, various Neutrik signal I/O sockets, power socket, on/off switch, power led, cables and stuff. Finally there’s a DIY connector board that connects everything together (see details below). To assemble the cables some special tools / crimping tools are needed, or at least it’s helpfull to use them.

electric components
electrical components
needed tools
needed tools

Connector Board

In order to connect the power supply, amp and I/Os, I soldered a slightly modified version of Peter Rill’s LPA-2 connector board. Thanks to Peter for the scheme ! Peter’s design also includes a relay which switches on/off the output signal. The relay is controlled by the Funk power supply. Means: 5 seconds after switching on the power supply, the relay closes, and as soon as the power supply is switched off, the relay opens. This protects your headphones and ears from nasty pops and clicks.

connector board top
connector board top
connector board rear
connector board rear

Adjustable Amplification

Depending on the used headphones the LPA-2a and the SIA-5 support various amplification settings ranging from -6 dB … + 18 dB. For more details see specifications.

Posted in Production, Tech Stuff | 3 Comments

UADE multichannel audio support

Last week I added native multichannel audio output support to UADE. UADE stands for Unix Amiga Delitracker Emulator which is an audio player for old Amiga demo music and game tunes. It is based on a clever client server concept, where the clients (= player frontends) communicate via inter-process communication with the server. The server uses the UAE Amiga emulator to emulate an A500, which executes a native Amiga software that uses Eagleplayer plugins to play the tunes. Finally, Eagleplayer plugins cover over 150+ different audio formats including many exotic custom formats.

Now, all Amigas had four separate 8 bit audio channels which were downmixed to stereo inside the PAULA sound chip. Moreover, old Amiga models before A1200 had an inbuilt static tone-shaping low-pass filter at 4.5 or 5 KHz and an optional LED low-pass filter at 3.3 KHz. These filters were applied to the stereo mix. Of course, the UAE emulator does the same as the hardware: audio output is a stereo mix which is optionally filtered (can be enabled/disabled). The resulting stereo stream is finally sent to the UADE frontend(s). E.g. uade123 frontend can store the stream as two channel wav file.

And that’s the problem: from the mixing and mastering perspective an already downmixed stereo wav file is of course much worse compared to a multichannel wav file. Wouldn’t it be great if one could stream the contents of the original four PAULA channels before they are downmixed to stereo ? Exactly this was what I needed and so I started to study and modify the original UADE source code. The result is a modified UADE 2.13 version with a new uade123 command line option --quadmode. The filters still can be applied, but in quad mode they are applied to each channel separately.

The quad mode audio output stream can either directly be played via soundcard (libao), or saved into a multichannel wav/au file. If the sound system provides multiple hardware channels, media players can usually replay the multichannel file directly. If it’s a stereo setup, most players are able to downmix the four channels to stereo – with different results, though.

If you want to mix a tune: most modern DAW’s can load multichannel wav files. E.g. Cockos Reaper, Logic and so on. I used Reaper 4 and it’s surround mixer for a quick sound check. Reaper can also automatically split up multichannel files into separate mono channel files. If your DAW doesn’t support that, you can use the included script which does the same. You have to install sox, though.


SHA1: 670bbc78d6f3f6238920ce9dd44e2a98833acba3 uade_2.13q.tar.bz2

Debian package for Ubuntu Mint 15 64:
SHA1: c36e087cd5cd3e7c2c6063419f6989daeb0bdbc8 uade_2.13q_amd64.deb


# from source (Linux Debian Systems)
sudo apt-get install libao-dev
sha1sum -c uade_2.13q.tar.bz2.sha1
tar -xjf uade_2.13q.tar.bz2
cd uade-2.13q

# optional sound test, plays demo song
make soundcheck 

sudo make install
hash -r # only if bash can not find uade123

# optional regression test, 
# all checksums should be different
# If test fails, enter correct data dir in
# e.g.: UADE2_DATA_DIR="/usr/local/share/uade2"

# From Debian package (only Ubuntu Mint 15 64 !)
sha1sum -c uade_2.13q_amd64.deb.sha1
sudo dpkg -i uade_2.13q_amd64.deb
hash -r # only if bash can not find uade123


# generate multichannel wav file
uade123 --quadmode --filter=none -f output.wav AHX.Cruisin 

# split multichannel file into four mono channel files output.wav 

# Have fun 


If audio replay crackles or is kind of slow check the used ao driver, first. For that have a look at /etc/libao.config. If default driver is “alsa” try “pulse” instead. For detailed information remove the “quiet” option and optionally add “debug” option.

Regarding multichannel replay: if you have problems with direct four channel replay (e.g. channels are not hearable, or very quiet, or left/right is wrong), then try to render to file using uade123 --quadmode -f out.wav and replay this file using mplayer or any other media player. There’s a script included for splitting up the four channel wav file into four mono channel wav files. IMPORTANT: you have to install “sox”, first.

Always remember that all Amiga tunes are actually stereo tunes. Means: the original composers created and mixed them for plain stereo replay. Moreover, most Amigas were connected to crappy monitor-inbuilt speakers, or other crappy little desktop speakers. Means: the usual audio setup didn’t have a wide stereo stage, it was actually more mono than stereo. Now, if you replay such tunes using a quad or surround setup it can sound pretty odd. Especially there is much more channel separation. To fix this, you can e.g. use a surround mixer or auto stereo downmixer or further post processing fx whatever. BTW: the same problem occurs if you replay old Amiga tunes via headphones or a hifi stereo setup. Nonetheless: the strong channel separation can also be pretty charming, because nothing masks and every detail is hearable. For remixers only: remember, good surround mixes should be stereo compatible, good stereo mixes should be mono compatible.

Multichannel channel assignment under Linux and in general is a mess. There are so many factors/components: libao, audio drivers, different multimedia players and so on. Each component handles multichannel audio order slightly different: some players just omit channels 3+4, others play them but treat them as center channels etc. and thus distort the original stereo image. Then, if you don’t have a real multichannel soundcard, stereo downmix is handled differently and so on. I tried several combinations as described in libao documentation, but each matrix had it’s disadvantages. It turned out that omitting any specific matrix seems to be the best solution. A really suitable surround matrix for correct Amiga stereo imaging (L=1+3, R=2+4) doesn’t exist anyway, though classic quadraphonic matrix L,R,BL,BR and matrix L,R,CL,CR are theoretically useable. Funny: it turned out, that Windows Media Player did the best job regarding multichannel stereo summing. It was the only player that did it correctly.

It’s theoretically possible to set libao options via uade123 command line. E.g.: uade123 --ao-option=matrix:"L,R,CL,CR". Probem is: somehow it didn’t have any effect ?

Posted in Amiga, Software, Tech Stuff | 7 Comments