Submit Search

How is sustain implemented using MIDI?

Connecting Hauptwerk to MIDI organs, sequencers, ...

How is sustain implemented using MIDI?

Postby organsRgreat » Sat Jun 15, 2019 6:09 pm

One way of implementing sustain over MIDI could be to block Note Off messages, and store them until the sustain pedal was released. However, I'm not certain sustain is usually produced by that method. The question arises because, when playing a Hauptwerk theatre organ, I sometimes find a long melody note; if I had a pedal to hold that note, my right hand could be playing a counter-melody on another manual.

I have a Viscount CM100 expander which is fed from the “Primary Output” of each Hauptwerk manual, and I would like to be able to sustain notes on the Viscount unit too.

The Paramount 450 does have a Sostenuto switch for the Great, but I presume this is implemented “internally”, and would not affect an external module. So what I need to know is whether MIDI sustain is ever implemented by blocking Note Off messages; in which case is there an box that could do this e.g. from the MIDI Solutions range; or is sustain usually implemented by sending a MIDI Controller message?

I hope this makes sense!
Posts: 372
Joined: Fri Nov 16, 2012 6:30 am
Location: England

Re: How is sustain implemented using MIDI?

Postby engrssc » Sat Jun 15, 2019 9:18 pm

First of all Sustain and Sostenuto are two different "features".

Sustain holds all the notes that were played (on a given manual) after you pressed the sustain (pedal/kick switch) and keeps them sustained (sounding in an additive way) until the Sustain is released

A Sostenuto pedal (kick switch) sustains only those notes that are being held down when the pedal (kick switch) is depressed, allowing future notes, a counter melody for instance, (on a given manual) to be played unaffected.

The MIDI Continuous Controller number for Sustain is CC#64
The MIDI Continuous Controller number for Sostenuto is CC#66.

You need to generate the proper MIDI (on and off) messages and apply them to a given
manual's MIDI channel. Not exactly simple, but doable. Roman Sowa has the boards to do this.

You would need a:

along with a Master Controller.

I can list how to make this happen here, but you might need more detailed instructions.

You start by splitting the BBSP board split into 2 groups. (1 - 31 and 32 - 61.) A contact from one (group) is used to send Sustain CC#64 on and off while contact from the second (group) is used to send Sostenuto CC#66 on and off. There is a procedure to advance the MIDI CC output numbers until you are to send the desired either CC#64 for Sustain or CC#66.for Sostenuto. You can check what output is being sent by observing MidiOx for instance. There are quite a few CC numbers that are not assigned to perform a function (blank) so you need to keep track as you are advancing the CC numbers. Once you arrive at the proper CC number output, that output will remain available even after powering down as the memory is non-volatile.

The pedal / kick switch connects to the highest note input of either the lower or the upper group. (there are two - 16 pin connectors on a BBSP)


So I can select either Sustain CC#64, or Sostenuto CC#66. You need to apply this MIDI CC message to the given manual's MIDI channel by entering #3 then the channel number. As I said, it's a little involved, but it does work.

Keep in mind what you are doing for Sustain, for instance, is sending CC#64 (value 127) which is Sustain On, and CC#64 (value 0) which is Sustain Off. Likewise, the same would apply for Sostenuto but using CC#66 ( values 127 or 0) instead of CC#64. Nothing to do with Note on, Note off.

It is cool feature to have. 8) In fact it also works with classical instruments using the same procedure.

On a modern grand piano (as well as some uprights) with 3 pedals, the Sustain pedal is on the right, the Sostenuto pedal is in the center, and Soft pedal is on the left.

User avatar
Posts: 5970
Joined: Mon Aug 22, 2005 11:12 pm
Location: Roscoe, IL, USA

Re: How is sustain implemented using MIDI?

Postby csw900 » Sun Jun 16, 2019 3:15 am

A very comprehensive answer, but do any real organs have sustain and/or sostenuto BUILT IN? Would any organ respond to these CC signals, even if it received them?

I could easily implement both into my eplayOrgan program. I think that many normal midi keyboards support one or more of them by using external pedal/s.

As these controls are not normally used on organs, would organists use them even if they were available?

User avatar
Posts: 231
Joined: Mon Mar 07, 2016 10:40 am
Location: UK

Re: How is sustain implemented using MIDI?

Postby organsRgreat » Mon Jun 17, 2019 8:28 am

Hello Ed -

Not many things in this world are perfect, but your comprehensive reply certainly qualifies - a BIG thank you :-)

I have a MOTU 828 Mark 3 as part of my set-up, and this has a jack socket for a footswitch; the manual states

“Check the Enable Pedal option if a foot switch is connected to the 828mk3 and you would like to trigger recording punch in/out (or other software functions) with it. Use the Set buttons to determine what keystroke is triggered by the pedal-up and pedal-down positions. You can assign the pedal to any two keystrokes you wish. (You are not restricted to punch in/out.)”

If I have understood the technicalities correctly -

(1) Triggering the built-in Sostenuto function to affect the Great manual of the Paramount 450 should be quite easy - just get Hauptwerk to auto-detect whatever codes the 828 emits in response to footswitch movements

(2) Applying sustain or sostenuto on any other manual of the 450 is more difficult, as the relevant MIDI controller message has to be on the appropriate channel. This would need the boards you have illustrated

(3) Applying sustain to the Viscount CM100 is probably impossible; the MIDI implementation is here: ... tation.pdf

The words sustain and sostenuto do not appear at all, so I presume the CM100 is unable to respond to those messages.

When you say “it also works with classical instruments using the same procedure” does that mean Hauptwerk is already set up to respond to those controller numbers?

The ideal solution would be a keyboard with second touch, as Hauptwerk allows second touch MIDI notes to be sent as an Output. When I last looked into this organ keyboards with genuine second touch were very expensive - around £1000 (so more in dollars!). However there was a post here some months back, I believe from a UK builder, mentioning a second-touch keyboard which I think was not quite so expensive. So I'll see if I can find that post again, and meanwhile will experiment with method (1) above. I already have a kick-switch on my swell pedal, so it should be quite easy to try this out.

Csw900: 30-odd years ago I realised that the most versatile way of assembling a “home organ” was to use controller keyboards and rack-mounted synthesisers. I completely reprogrammed an Ensoniq SQR to give more organ-like sounds, and found its built-in sustain very useful. So at least one organist has used the facility! (I'm trained as a classical pianist and organist - in that order - but have always enjoyed lighter music and theatre organs).

As to real organs, I'd expect to find sustain and/or sostenuto features on the larger theatre organs, though I can't recall ever hearing them used. But I suspect that quite a few theatre organ facilities were rarely, if ever, used - for instance second touch on the pedals, or some of the more abstruse couplers such as the 6 2/5 on the Solo manual of the Paramount 450, which gives a major third above the note one is playing . . .
Posts: 372
Joined: Fri Nov 16, 2012 6:30 am
Location: England

Return to Audio / MIDI interfacing

Who is online

Users browsing this forum: No registered users and 1 guest