How to use MuseScore 2.2 with Hauptwerk Virtual Pipe Organ

• created 10 months ago • last updated 6 months ago
This tutorial is for an outdated version of our software. Update the information

This guide will show you how to use MuseScore with the amazing Hauptwerk Virtual Pipe Organ! This takes advantage of MuseScore 2.2's native MIDI output and a supplementary instruments XML file. In addition to playback through Hauptwerk, you can use Staff Text to change manuals and stops, giving you much finer control over the playback than the default Pipe Organ sound.



  1. In loopMIDI, create a port and name it something like MuseScore to Hauptwerk.
  2. Open and configure Hauptwerk. (Select the Free Edition when prompted)
    1. If the setup wizard appears, select I don't yet have any MIDI hardware and click Next then Finish. Cancel the remaining dialogue windows.
    2. Click Restore your Hauptwerk settings or personal data from a backup... and select the musescore_organ.Backup_Hauptwerk_gz file. Choose Simple restoration.
    3. Reopen Hauptwerk and load the StAnne's Moseley organ.
    4. Under General Settings > Audio outputs..., change the Audio output device to your audio device.
    5. Under General Settings > MIDI ports..., check MuseScore to Hauptwerk as Console MIDI IN.
  3. Open and configure MuseScore.
    1. Extract the organ.xml file to Documents\MuseScore2 (or wherever you like)
    2. Under Edit > Preferences... > I/O, select MuseScore to Hauptwerk as the MIDI Output port. I also recommend setting the output delay to 100 ms for stable playback.
    3. Under Edit > Preferences... > Score, specify the XML file as Instrument list 2. Restart MuseScore. (Alternatively, open the Instruments dialogue, click Load... and select the XML. This would need to be done every time you wish to add the organ to the score.)
    4. Open the instrument dialogue. There should be a second Pipe Organ entry under Keyboards. Add it to your score and remove the other instruments.
    5. Press F11 to open the Play Panel and turn the volume off.

MuseScore should now be communicating with Hauptwerk via the loopMIDI connection. If you add notes to any staff, they should trigger keys on the Great manual.

Changing stops and divisions

  • Add a Staff Text (like "Sw." or "II") and change Staff Text Properties.
    • To change the division for a manual, under the Change Channel tab, select all voices (1/2/3/4) and select a division. (Note: You should create an invisible one at the beginning of the Pedals staff to make it trigger the pedals.)
    • To turn stops on or off, under the MIDI Action tab, select a channel and the appropriate On or Off actions.

Try it out, and please let me know if you have any issues!

Known issues

  • The organ must be the only instrument in the score for channels to route properly.
  • Playing from the middle of a score sometimes causes all stops to be reset if there are repeats.
  • Jumping playback around the score should turn on stops as necessary (this is called MIDI chase). However, stops will not turn off automatically unless there are also explicit "off" actions. For example, if you have an "add mixtures" action in the middle, and you jump during playback to before that notation, the mixtures will still play. To correct this, add the corresponding "remove mixtures" action to the beginning of the score (with invisible staff text or as part of the initial registration).

Implementation details

  • The Great, Swell, and Pedals keyboards and stops are controlled by MIDI channels 1, 2, and 3, respectively. The couplers and other stops not specific to a division are controlled by channel 4.
  • CC20 and CC110 turn a stop on and off, respectively, and the CC value specifies which stop to change. The values are in numerical order on the Hauptwerk settings page, starting from 0 for each division.
  • Program change 0 (on channel 4) resets all stops. This causes all stops to be reset when playing the score from the beginning.
Attachment Size 203.39 KB

Do you still have an unanswered question? Please log in first to post your question.