Dorico and Hauptwerk

That’s not intended behaviour. Could you please post the project so I can take a look? You can cut it down to just the problematic part.

I didn’t implement a mapping for the swell box, but you can set it to an unused CC on Channel 3 in Hauptwerk (say, CC 100), and draw it in the automation lane in Play mode on the pedal voice, which is mapped to that channel.

Thanks. I’ll produce a minimal case. That’ll be tomorrow now though.


Hi again

Here’s the first handful of bars from the organ part of the piece I’m working on. I’ve written comments in the score explaining my problems. Is there anything from Hauptwerk I ought to try to send as well?


hauptwerkprobs.dorico (513.2 KB)

When I open up this project, it works perfectly on my end, so everything on the Dorico side should be okay.

I think I know what’s wrong, and I should have seen this from your earlier screenshot:

  • You need to change Input for each stop from 001 to 045 to Notation stop or hold-piston: CC, val = 127/0.
  • 049 Gen Cancel needs to be set to Generic MIDI control changes, with Momentary piston checked.

Great, thank you, I think that’s fixed everything. You’ve put so much time into this for me and I appreciate it. Can I donate something to you or to your favourite charity? Feel free to message me.

1 Like

Hi again

I’m not having much luck getting the swell box to work. I’m attaching a screenshot of my settings within Hauptwerk which I think ought to be doing the trick, and also a Dorico project which tries to open and then close the swell box during bar 1 using the automation lane. Are you able to spot what’s going wrong? Nothing happens to the swell box when I play the score.

ISayUntoYouWhichHearVOP - Copy.dorico (506.9 KB)

Try CC 90 instead. It looks like Dorico is handling CC 100 differently from the others (and probably also CC 98-101, which are NRPN and RPN controls).

CC90 has worked. Thanks once again.

Sorry to come back to this but I’ve come across another problem.

I’ve had a bash at implementing pistons myself, and they more or less work, but only more or less. I’m getting these strange quirks:

  1. Once I’ve triggered a great piston, no lower pistons will work. So for example if I use G3, that works, but a subsequent G2 or G1 will have no effect. If I use G5, that’s it then - no following great pistons will work (this is on the Moseley organ, where the pistons on all divisions go up to 5). The same is true for the swell pistons and the pedal pistons - I can step up but not down.

  2. If I use general cancel, only the great stops get cancelled. Swell and pedal stops remain drawn.

  3. Having used general cancel, no great pistons will work again. Swell and pedal pistons are unaffected.

I’m attaching a score in which you can see my settings and some pedal changes which don’t behave the way they would if I were simply to press the piston buttons in the Hauptwerk UI.

Also a screenshot of my Hauptwerk settings for one of the pistons. I’ve been experimenting with other options.

I do hope someone can spot something!

I take it pistons can be made to work, can they?

Thanks loads again.
DoricoTemplate - Copy.dorico (944.7 KB)

Sorry for the delay. I did not include combination pistons in the original post because they are not trivial to implement in the expression map. However, it is possible to do so.

The issues you are encountering can be solved with mutual exclusion groups. These instruct Dorico to remove a prevailing playback technique upon reaching another in the group. You can see that one is defined for each stop’s on and off playback techniques: this is so that Dorico does not continue to send an “on” instruction to Hauptwerk after an “off” instruction is reached, and vice versa.

Similarly, we want Dorico to stop sending the G1 instruction after G2 or General Cancel is reached. In fact, we also want to stop sending the G1 instruction after any other Great add/remove stop instruction is reached, as a combination piston effectively sets all stops on that division a certain way, and would conflict with such an instruction. (See the Divisionals tab in Hauptwerk to see exactly how each combination piston sets its division’s stops.)

You’ll need to create three new mutual exclusion groups: one for each division: Pedal, Great, and Swell. You’ll also need to modify each stop’s mutual exclusion group to include its division’s combination pistons and General Cancel.

  1. First, make sure General Cancel is set to Controller 3, Value 0, as described in the earlier post. This is so that the Init step in the expression map activates it when playback is started. Alternatively, modify the Init step to match the action you have set for General Cancel.
  2. Second, for each division, place all of its combination piston techniques in a Mutual Exclusion Group, along with General Cancel.
  3. Third (and this may be a bit time consuming), add all of the combination pistons for a division and General Cancel to the mutual exclusion groups for each of the division’s stops and couplers.
    • Add all of the Pedal combination pistons and General Cancel in the mutual exclusion groups for
      • Stop #1-#7
      • Stop #32-#33
    • Add all of the Great combination pistons and General Cancel in the mutual exclusion groups for
      • Stop #8-#17
      • Stop #34-#36
    • Add all of the Swell combination pistons and General Cancel in the mutual exclusion groups for
      • Stop #18-#30
      • Stop #38-#40
    • Each stop should look something like this:

(Note: You can diagnose issues related to playing techniques by going to Play mode, switching to the pedal voice, and expanding the Playing Techniques lane. In the following screenshot, I have a mutual exclusion group set up for Swell and Pedal combination pistons, but not Great ones. G1 + G2 appears when I mouseover this block, indicating that Dorico is trying to apply both combination pistons at once.)

1 Like

Thanks. Once again your clear instructions have been fantastic and I appreciate the time you’ve put in to writing them out. I’ve felt the scales fall from my eyes somewhat; I didn’t realise that when I press G1, so to speak, that it carries on being pressed till something happens to undo it. On a real organ you press G1 and forget about it; you don’t need to unpress it later. So I’ve had a bit of a misunderstanding about how all these things work which hopefully I’m getting the hang of now.

I do have another problem which I’ll post about separately and which I suspect is nothing to do with Hauptwerk, but feel free to weight on there as well if you like!

Thank you for your help ! Here is the result : Stream Toccata by Axel Casadesus | Listen online for free on SoundCloud

1 Like

Happy new year to everybody !
I’m trying to set up a work for organ & orchestra (using Hauptwerk & VSL).
Everything works well with the St Anne (which is sampled at 44.1 kHz).
But if I try to use any other organ (those I own are all sampled at 48 kHz) the organ is awfully detuned :frowning:
And it’s impossible to change the sample rate in Hauptwerk…
The problem should come from the sample rate… Has anybody faced the same issue ? Is there a known solution ?

It’s no surprise the pitches aren’t matching if you’re running two sample rates simultaneously. Have you tried using the transposer function to see if you can correct for it on HW’s end?

I tried this but it didn’t solve the problem :frowning:
The first chord is in tune but as things progress, the chords become more and more detuned…
Obviously, the samples are not read at the same speed, and I can’t find a solution with Hauptwerk, other than choose a 44.1 organ. The only one I have is St Anne and it’s far from the best :wink:

1 Like

Indeed… I regret that you’re forced to load it up the first time you boot the software… drives me nuts. I have others and I NEVER use St. Anne’s… I haven’t even fiddled with it in probably 8 years (and even then I didn’t care for it much).

Ok… this is odd. They should either be in tune, or out. They shouldn’t gradually drift apart. Just to confirm, are you driving HW directly via the VST link? Or are you trying to load HW as a vst within Dorico or within VSL? (I’m not even sure if you can do the latter. I don’t remember.) I wouldn’t attempt anything other than running HW natively and just having Dorico ping out midi to it, personally.

What do you use instead of St Anne? And do you successfully use it with Dorico?

My workhorses are the Portland Rosales, Billerbeck, and Freisach (free). I also peck at some others.

It’s been a while since I drove HW via Dorico, but when I did, I did it via the HW VST link, with both programs running side-by-side.

1 Like

Yes, it is reallu awful, the sound seems to “melt” :frowning:
I use the VST link (AFAIK there is no other way to do).
May be it exists plugins converting 48 kHz to 44.1 on the fly ?