Transpose without cutting off the notes

Transpose All via Midi In.mhp (1.3 KB)

Finally I am able to transpose via my Midi pedal - with this very easy patch and some work on my Midi pedal.

One problem remains:
When I change the value of the transpose block via a Midi CC then all currently playing notes are cut off.

Would be great if this could be switched off.

Would you like the original note, before transpose amount got changed, to continue to play until it’s released, or should it immediately trigger the new note it would get transposed to?

It depends on the use case.
In this case I would like old notes to continue playing until note off. (But it may not be this easy since note off will be transposed as well)

The other options (and the current one) may be helpful for other cases too.

A nice workaround for current implementation would be to use Fixed Note Length pipe after the Transpose pipe. But there’s one issue currently with it - transpose amount must be changed when all inputted notes are off, otherwise it still cuts the length of the notes. I think I should be able to fix this, so it works as you’d expect it to.

We’ll think about implementing other modes of transpose, it gets a bit complicated avoiding stuck notes when keeping notes playing and changing the transpose amount. :slight_smile:

1 Like

A way is to always store e.g. the last 8 or 16 notes For each transpose block. And cut off all the older ones after a transpose.
Then all transposes must update this stored notes as well (for the transposed note off event).

But I am sure you find a way - great product btw :blush:

1 Like

Hey, we’ve fixed the ‘Note Length’ to work well after Transpose pipe (and other pipes that cut notes off on param changes).

I’m also contemplating adding a mode of operation for Note Length pipe where it would only act as a fallback note length, in case the notes must be cut short by some previous pipe, otherwise, use the actual note lengths if they’re known to be right. Any thoughts on this? :slight_smile:

When I place a ‘Note Length Block’ after Transpose then all notes are of the same length.

This is even worse :wink:

Would be great if this feature (note length) would be added to the transpose block - so that normally all notes have the right length but only the ones in the pipe while the ‘transpose cut off’ takes place get a fix delayed note off instead of the immediate cut

We’ll add this in the Note Length pipe, so it will have a mode that passes through all of the notes unchanged, and only the ones that must be cut will have instead the defined note length. :slight_smile:

1 Like

Yes, this is a way for some use cases.

But in general I wonder why cut the notes in the first place.
Could you not simply transpose all notes to the destination note and offer an option to ‘let go’ or to ‘retrigger’ the transposed notes.
The corresponding note off will be transposed too and all is fine.

All you need are 128 note memory locations to remember if there was any note without a note off - and then transpose them.
Or in case this is to much memory - store the last x notes only and transpose them (and cut off the rest).

1 Like

There’s also 16 channels that have to be accounted for. We may add additional mode flags for transpose too.

1 Like

Yes, but 16 (or even 8) notes per channel would do the trick for most synths.

Looking forward to check your solution :slight_smile:

1 Like