Sustain pedal issue and idea!

Anyone using a keyboard with a sustain pedal with Hapax?

I’m finding that it records presses and releases of the sustain pedal as cc64 just fine, but unless I release the sustain pedal before the end of the loop, it subsequently doesn’t record a cc64 automation value 0 there. And since I didn’t start the loop with a sustain pedal release (which would be next to impossible), there’s no cc64 value 0 there either.

So what happens is that until I go into the automation screen and manually set the cc64 at the beginning of the loop to 0, the sustain doesn’t turn off at the beginning of the loop, which isn’t great. I’ve also tried setting the cc64 default value to 0, but it doesn’t seem to do anything. I have to manually set cc64 automation to 0 at the start of the loop after it’s been recorded.

Idea #1

It would be great if there was an option for Hapax to either automatically add a 0 value cc64 message if cc64 is non-zero at the end of the loop.

Idea #2

I’ve actually been thinking about this for a long time, and think it would be a really effective solution for solving some sustain-related problems I’ve encountered with various sequencers over the years.

It would be great if there was an option, where instead of Hapax treating sustain as a MIDI CC automation lane, it would actually just extend the effective length of notes recorded while sustain is active, and explicitly not record any MIDI CC automation.

In a practical sense, sustain isn’t usually an automation lane that you’d manipulate, it’s really just a tool to help people play piano as if they had more than 10 fingers. While sustain is technically a MIDI CC, and most MIDI devices understand it, sustain also behaves differently than any other MIDI CC, because it effectively postpones MIDI Note Off message for notes being played while the sustain pedal is pressed, until the pedal is released.

In this example, a quarter note is played on beat one, but before the note is released, the sustain pedal is pressed and held until the end of beat 3. Hapax records both the quarter note on beat one plus the cc64 automations where sustain is pressed and subsequently released.


But think about this, what if Hapax could just record a dotted half note on beat one and didn’t record the MIDI CC 64 automation? The note would start and end in exactly the same place, but it would be significantly easier to reason about and edit in the step editor, and we wouldn’t have any weird cc64 issues, either. I think this would be a very helpful feature for anyone who tries to record MIDI notes while using a sustain pedal.


pyramid (or hermod?) had this same bug when they initially introduce sustain support there…
so, just report they will fix it.

Im not sure, id want hapax messing with cc64 as a ‘special case’, unless it was optional, moving ‘synth’ functions to the sequencer can introduce new problems…

that said, there is one use-case, that does support the idea for sustain being handled by Hapax (rather than the synth) … CV/GATE.
Hermod has to implement sustain for this very reason.
that said, currently cv/gate on the hapax is monophonic , so its not quite as necessary.

A few additional thoughts regarding my idea #2:

A piano player friend pointed out that some digital pianos will actually use the sustain MIDI CC to also simulate the harmonic resonance of strings for notes that were not played, while adding samples of the mechanical parts of the piano moving around when the pedal is pressed and released.

So, this is a good reason why, if implemented, this should be an option people can toggle on or off.

He also said, “If Ableton had a ‘convert sustain pedal to held notes’ option, I’d for sure turn it on during my live jams,” and I’d imagine a lot of piano players would feel similarly. I mean, in my informal polling, I’m at 100% (2) of piano players polled (2) would use this feature :smiley: :smiley:

yeah, this is kind of what I was getting at…
on a synth you might override cc64 to also do something different when the sustain pedal is down e.g. perhaps extend the reverb slightly, or mess slightly with the filter.

but as I say… for cv/gate , sure you can implement a sustain by outputting an extra CV (linked to cc64), and achieve sustain with s&h, its a bit more faffing, and extra cv requirement.

Yeah, I can’t imagine modular users will want to have to buy an S&H module and use an extra CV/GATE out just to be able to work around a problem that could be solved for them inside Hapax. But my proposal solves the problem for everyone! And if it was a per-track option, where you could set the CC number in the case of non-standard synths, it would be super flexible! But I’d settle for a first version that was a global option hard-wired to use cc64 :smiley:

as I said, this is already a feature on the hermod…

there are a few features on hermod and pyramid, that Im hoping are more ‘work in progress’ rather than missing. Ive talked to them about a few, and quite often the response is that the feature is not present since it needs a bit of a rethink/rework to work for hapax.

as for the ideas, I personally, would not want the Hapax altering the data that is recorded eg. note length vs cc64. but if it has an option to interpret that data differently on output … sure thats ok.

and as mentioned in many scenarios with cv/gate this is actually required (*)… not only here but the v/oct really needs to be taking into account pitchbend (and the implications that has.
anyway squarp is aware of these… so again, I think its a matter of dev time and prioritises.

(*) also in MPE there are some similar scenarios.