How To Set Up CMK-2 Pistons In Hauptwerk II and III

This tutorial assumes that you have already set up your CMK-2 keyboards using CMK Config according to pages 14 and 20 of the CMK-2 manual.

If you have not done so, do so now. If you need another copy of the manual, go to Some of the manual is reprinted below.

If you are using hardware from another manufacturer, you can check the output of your MIDI hardware by downloading and installing MIDI Medic free at


Default Keyboard Configurations for Hauptwerk

You are free to set your MIDI devices to send on any MIDI channel you wish. However, these are the default channels that Hauptwerk expects for each keyboard. Setting your keyboards to these defaults saves you time later when configuring Hauptwerk.


* If you have fewer keyboards, their MIDI Channel numbers are simply omitted and the Configuration Order changed to suit with your top keyboard as #1, but the Crescendo should remain on MIDI Channel-7. This table assumes you are using our pedalboard and that it is wired and connected as per Figure-6. Crescendo can wired to any keyboard as long as it sends its message on Channel-7. The setup in Hauptwerk can be configured to suit. The pedalboard does not use a CMK-2 board so is not configurable by this software.

You will be able to configure Hauptwerk II or III fairly easily once you understand this dynamic. Configuing a Hauptwerk organ is a symbiotic relationship between three key elements:

1) Hauptwerk
2) Controller hardware
3) Sample set

Hauptwerk’s role is that of a host

It is the framework that allows MIDI hardware (keyboards, pedalboards, shoes, etc) to use a sample-library of pipe-organ sounds. It is the communications-hub that distributes all the MIDI messages and makes everything happen.

To make this happen Hauptwerk needs to manage two relationships:

  • It needs to establish a connection with the physical devices that generate and receive MIDI data (keyboards, pedalboards, stops tabs, etc). These connections are managed in the “General Settings” drop-down menu.
  • Hauptwerk also needs to establish a connection to an organ sample set (St. Anne’s Moseley for example). Those connections are managed in the “Organ Settings” drop-down menu.

So, after you know your hardware settings, you start with “General settings” then move to “Organ settings” to match the name of the virtual object to the name of the physical object.

The general process goes like this:

  1. Help Hauptwerk determine where the MIDI messages are coming from. Go to “General settings” and then to “Configure MIDI input paths”. For each piece of hardware, determine what your interface (soundcard) will be and what channel Hauptwerk can expect the data on. In this case the “General and util pistons” inputs are coming in on channel 7 via our Layla3G MIDI interface. Click “OK” to save.

  2. Next step is to link the keyboards to the inputs you just defined. Go to “General settings” then to “List Keyboard MIDI inputs”. Match up the keyboard name, on the left, with the input path (i.e. channel). Here, the “Choir” keyboard is going to use the “Keyboards: div 4 (Choir)” input. Click “OK” to save.
  3. Now that Hauptwerk is communicating with your hardware, you need to connect the “onscreen” hardware with the physical hardware. Usually, they have similar names.
  4. Once you have set up each keyboard and pedalboard using steps 1 & 2, you can load an organ (St. Anne’s Moseley for example)
  5. Check to see that the correct keys move on-screen when you press them on your keyboards.
  6. If they do not move at all, or the wrong keyboard moves on-screen, go back to step 1 - 3 and check ahthe input, channel, and name for the keyboard/s in question.

Piston Set-up

If you haven't set up each of your pistons on you CMK-2 to send "Hauptwerk program changes" with a channel number and a "program change" number, you need to stop and do that right now using CMK Config.

We recommend making your lower-left piston to be your "master capture" or "set" piston (Ahlborn Set) and your lower-right piston to be your "general cancel" piston (Ch.7 P.Ch 64) using CMK Config. In other words, on the lowest keyboard, the set is on the left-most piston (#1) and the general cancel is on the right-most piston (#20) and general cancel.

On all keyboards, the MIDI channel should be consistent for all the pistons on a particular manual (except for the set and general cancel pistons). The pistons on the manual should be the same as the Hauptwerk default for that manual. So, if it is the Great manual, set the pistons to be the same as the Great keyboard.

If you are using hardware from another manufacturer and don't know what messages your device is sending, download "MIDI medic" from for PC or "MIDI Monitor" for Mac users.

Once again, after you have your hardware settings, the principle is to "start with "General settings" then move to "Organ settings" to match the name of the virtual object to the name of the physical object".

Give each piston a name that is intuitive for YOU.

Most Hauptwerk users have more than one organ installed on their computer. So you want to have a naming convention that will make that piston easy to identify when you are linking an onscreen piston to a physical piston.

The worst-case scenario would be to name and number all your pistons based on the layout of St.Annes Moseley and then be stuck with those when you decide to install another organ.

It is better to name and number your pistons in a way that will make a simple starting point for any sample set you install.

For example:

Our keyboards come with 20 assignable pistons for each keyboard. I wanted to make it easy to identify each piston. So I made up names that would not change regardless of the sample set. I did this under "General settings" and "List Switch (MIDI) Inputs". The great manual is the great manual. The first piston is the first piston. So I named it "Great Piston 1" by clicking "Insert" and typing the name in the "Name" box. I named the second piston "Great Piston 2" and so on up to "Great Piston 20".


If you haven't set up each of your pistons on you CMK-2 to send "Hauptwerk program changes" with a channel number and a "program change" number, you need to stop and do that right now. We recommend making your lower-left piston to be your "master capture" or "set" piston (Ch. 7 P.Ch. 56) and your lower-right piston to be your "general cancel" piston (Ch.7 P.Ch 64).

When you configured your keyboards in CMK Config, you set the type of message to send "Hauptwerk Program change" messages. So make sure all of your newly named pistons have "MIDI program change" in the "Event type".

You also need to set which channel the message will be coming from. Select the Input path that is associated with that channel.

Make the "Event number" the same number that you gave it in CMK Config. If you followed the earlier instructions, that number should be the same as the piston number. i.e. Great Piston 1 should have an event number of "1". Great Piston 20 should have an event number of "20".

Match the name your piston up to the name of the on-screen piston.

Now that you have given your pistons names that you can easily identify, you can link the organ sample set to the hardware.

For this example I am going to link St. Anne’s Moesley the first combo piston on the great manual to the seventh piston of my great manual hardware.

I click on “Organ Settings” and then on “Connect Switch List (MIDI) Inputs to Organ Switches”. I locate the on-screen piston I’m looking for - Great Combination 1 Piston - in the left-hand window.

I know that I named the seventh piston on my great manual “Great Piston 7”. So I go to the “Input switch” field and locate “Great Piston 7” in the pull-down list. I click on “Great Piston 7”.


Before I close the field, I need to specify how the on-screen button acts when I push the physical piston. This is done in the “Effect when….” fields.

If you are using CMK-2 keyboards, (or switches that send a MIDI program change) you can select “Pulse destination switch on” in the “Effect when engaged” field, and “None (no effect)” in the “Effect when disengaged” field. You also have the option to use the “Engage destination switch” and “Disengage destination switch” for setting up on-screen pistons.

There are some exceptions to this method of setting up pistons; namely when setting up the “master capture piston” and the “general cancel”.

The General Cancel Piston

Above, we recommended you set the lower right piston on your keyboard stack to send the program change 64 on channel 7 using CMK Config. If you have already done that, you can proceed below. In “General Settings”>“List switch (MIDI) inputs” you can use these settings:


Note the “Input path” is set to “General and util pistons” which should correspond with MIDI channel 7. Also note that the “Event number” is set to 64.

In “organ settings”>“Connect Switch List (MIDI) Inputs to Organ Switches” you can link up the names “General Cancel” with “General Cancel Piston”.


The Master Capture (Set) Piston

First, you need to open CMK Config, find the piston you wish to become the set piston, and set it to "Ahlborn Set". For whatever reason on some older CMK-2, even if you change the channel to something other than 16, it sends on 16 anyway. So you might as well leave it as 16.

(This should also work for the older CMK-1 keyboards if you can choose "Ahlborn Set" in CMK Config).

Save the configuration into the memory of the keyboard.

Close CMK Config and open Hauptwerk.

Go to General Settings>Configure MIDI Input Paths.

Make an input path with the "MIDI Channel" set to 16. I called mine "CMK Exclusive Piston Commands" but you can call yours whatever you want or use a path you already have set to channel 16.


Once you have done this you can click "OK" and go to General Setting>List Switch (MIDI) Inputs.

Select an input switch name that you want to use as the master capture switch. You can use the one you already have set up or make a new one if you are nervous about messing with your settings. I used "Util: comb cap mode: enter".

Enter the settings as seen below.


Once you have filled in the fields as show, click "OK".

Next, go to Organ Settings>Connect Switch (MIDI) Inputs to Organ Switches.

Find whichever switch corresponds to the set button for your sample set. This one is called "Comb: Capture Piston". If you used the same Switch Input as before, make sure the "effect when engaged" and "effect when disengaged" correspond to what you see below.

In my example I used "Util: comb cap mode: enter" as my input switch.


Note: For users with CMK-2 Keyboards that have 3 swell shoe terminals and which are compatible with CMK Config 1.5.3 or greater, you can configure the piston to send a MIDI note on/off message for the set button. However, the method using the Ahlborn set button will work for all versions of the CMK firmware.

Mapping CMK-2 Pistons to On-Screen Draw Stops

You can use the regular method used in assigning CMK-2 pistons to onscreen pistons. However, when you plan to link those pistons to on-screen drawstops, you need to have a checkmark in the "engaging event toggles?" box.

The “Effect when…” fields will also need to have “Change state of destination switch” in them like they do with the Master Capture Piston.

  • Hits: 19395

© Midiworks 2015