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 | 9 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 | Leave a comment

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 | 1 Comment

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 | 2 Comments

SIMTUR – a Turing machine simulator in ANSI-C

Years ago during my studies I developed a small Turing Machine simulator in ANSI-C which was never released to public. It seems to work nicely, so I finally decided to publish it.

SIMTUR simulates a fully functioning deterministic Turing Machine. Two stacks are used to simulate an infinite read/write tape. It’s possible to execute any state transition function (= program). During execution it’s possible to monitor the machine’s progress in single step mode. This can help the interested to verify state transition functions and analyze how complex Turing machines work.

Also tapes – like the Turing Machine (program) itself – can be initially be loaded (data input), and the resulting tape can be stored (data output). Thus, rudimentary data I/O processing is possible. Of course the whole program has a more “experimental academic” character, but maybe it’s useful  nonetheless.

Some example programs are included, too.  E.g.:

  • NOT-function for binary numbers
  • ADD-function for binary numbers
  • a^n b^n c^n Acceptor
  • experimental converter: DOS to Unix text

PDF Documentation is in German only, sorry :-(, but program has english language output

DOWNLOAD: (Win32/64, ANSI-C sourcecode included)

If you want to run this program on a different platform/OS just recompile the sourcecode with a C compiler. It should be really easy. E.g. for Linux: gcc simtur.c.

Posted in software, tech stuff | Leave a comment

Cockos Reaper “A/B Switcher” for Mastering Purposes

Everybody involved into mastering audio knows how important A/B track referencing is. Thus said, there are various techniques and setups depending on your DAW and studio hardware. Some people use hardware monitor controller systems which provide input switching, some use DAW internal switching methods, other people control their DAC/Soundcard directly via midi, and so on. There are cheap and very expensive solutions and the sky is the limit. Anyway, this article describes a flexible and cheap way to achieve A/B/C track referencing using just Cockos Reaper DAW and a standard external midi controller.

The principle is simple:

  • midi ctrl button A mutes all reference tracks, unsolos original track and starts playback: original track is hearable
  • midi ctrl button B solos reference track 1, unsolos all other tracks and starts playback: reference track 1 is hearable
  • midi ctrl button C solos reference track 2, unsolos all other tracks and starts playback: reference track 2 is hearable

Installation (Windows Version, but Mac should be similar ?):

  • Create three tracks in Reaper
  • Track “A”: the track you’re working on
  • Track “RF1″: the first reference track (must be named RF1 !)
  • Track “RF2″: the second reference track (must be named RF2 !)
  • Download Python and register python3x.dll in Reaper preferences. Hint: if it doesn’t work try to run Reaper as Administrator !
  • Save the attached Python scripts as and to a folder on your system. Best folder is the REAPER/scripts folder in your Windows profile
  • Copy to
  • Open Reaper Actions dialog and click on “ReaScript New/Load”. This creates a new Custom action. Open
  • Do the same for and
  • Select the Costum action for and click on “ReaScript Edit”. Edit line “refsig=”RF1″ into “refsig=”RF2″
  • Assign the new three Custom actions to you favorite midi buttons or keyboard keys
  • Have fun and modify as you like.

HINT: it’s possible to add more reference tracks. Just create a new Custom action for each reference track. Also it’s worthwile to mention that it’s possible to use e.g. the “RF1″ track name for other tracks, too. In this case these tracks will be treated like reference track 1.

Posted in production, software | Leave a comment

Best Of Amiga Demos 1988 video exceeds 10.000 hits

Wow,  I never thought that so many people are still interested in good old Amiga demo stuff. Not surprisingly, most of them are male and 35 years of age or beyond :). I compiled this video in 2006, but published it quite recently. Check it out. It contains some really wonderfull tunes from heros like Karsten Obarski et al. These guys laid the foundation of nowadays tracking scene.

Posted in Amiga, media, videos | Leave a comment