Held notes get cutoff (FIXED)

Bug Reporting
Post Reply
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Held notes get cutoff (FIXED)

Post by Argitoth »

Right now the way polyphony is handled really makes it hard to play the synth realtime. When I'm holding down a few base notes and I want to play a fast melody on the upper part of the keyboard, the bass notes will cut off after the polyphony is reached.

The way to remedy this would be to create a logic to make it so notes that are held down will not be the one getting cut off. The earliest note that is not being played will be the one getting cut off.
Last edited by Argitoth on 07 Jun 2008 08:59, edited 1 time in total.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

I'm going to bump this... this issue can really put me off using KFX, makes it really troublesome to use, I'm hoping it can be addressed for the next patch.
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Sounds like a bug, because there is already logic for keeping held notes.

I.e., say you hold a bass note and then continously play the sequence C, E, G, C, E, G with the right hand. Then that held bass note will be skipped and be allowed to live on. If this doesn't work, then something broke?

Now, the exception to this rule when you play so many notes with the right hand that all channels are used.. say you play 3 different chords quickly in 8 channel poly mode. the bass will in this case be overwritten.
Any suggestion on how to avoid this ?
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

karmafx wrote: I.e., say you hold a bass note and then continously play the sequence C, E, G, C, E, G with the right hand. Then that held bass note will be skipped and be allowed to live on. If this doesn't work, then something broke?
Oh, and of course this is only true when old notes actually finish by the time a new channel is needed. So long release times won't work.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

In my experience, if I am holding down a bass note, it always gets cut off after the polyphony is reached. I figured you just didn't program the synth to not cutoff held notes. From what you're saying, it seems like this is a bug.

If this is a bug, then all is needed is to fix it! Thanks :)
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Hi Argi! I'm sorry for the late reply...

Could it be because you have very long release times on your amplitude envelope, or does it happen regardless ?

Just did a test using lead patch 71: "Analog piano", and I couldn't get it to fail. Simple test is to hold down one or more keys with the left hand and then play a series of notes or chords with the right hand. The logic detects the held keys and skips them so they aren't cut.

Could you perhaps send me (or point me to) a patch that fails for you, and explain what you do to make it fail ?

Thank you.
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Thanks. I just tested the patch.

It is true that in poly3 mode it does cut the notes, but this is because of the "long" release time (1184ms).

If you choose a lower release time, and adjust the envelope so the long note also has sustain, the .mid file plays fine.

Internally the synth looks a the available channels and determines which ones are free based on their current amplitude level. Even if a note has been released it might still be playing its "release" part of the envelope. If the release time is long, it won't find any vacant channels and will have to steal one from the others. This causes a note cut. I cannot think of any way to remedy this, except increasing the number of polyphonic channels.

You can determine how long your release time can be, by first setting it to zero and then slowly increasing it. At zero, the notes should play fine without any notecuts (even in poly 3 mode). I was able to run with a release time of around 204 ms.

Let me know if this makes any sense.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

It doesn't make sense to cut off a note that is being held. The way I am used to is where the synth cuts off the oldest note that is not being held.

Doing the same test with Vember Audio Surge, the held note is never cut off. The notes that are cut off are the ones that have already been release. Only when (at polyphony 3) you hold more than 3 notes does held notes get cutoff in Vember Audio Surge.
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

It doesn't make sense to cut off a note that is being held
...but it doesn't do that. Hmm...maybe I'm misunderstanding you. Did you try the above test ?
No held notes are cutoff if you turn up sustain and turn down the release time. It only cuts off notes that have been released if the release time is too long.

But it sounds interesting. How does Audio Surge appear to handle long release times ?
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

This is the test I mean:
You can determine how long your release time can be, by first setting it to zero and then slowly increasing it. At zero, the notes should play fine without any notecuts (even in poly 3 mode). I was able to run with a release time of around 204 ms.
Please try that (with sustain turned up) and let me know if you hear any notecuts.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

I think I did your test... words are sometimes confusing. Lets use other means of communicating.

Listen:

KarmaFX Synth Modular: http://shup.com/Shup/42781/karmafx.mp3
Vember Audio Surge: http://shup.com/Shup/42782/surge.mp3
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

yes, hehe... sounds are clearer than a thousand words :D

My guess is that Audio Surge handles the release part of the sound in a special way.

This is the result I get with KarmaFX Synth, if I turn up sustain and turn down release:
http://karmafx.net/stuff/polytest1%20Rendered.mp3
i.e., no notecuts.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

The reason KarmaFX is not cutting off the held note in your demo is because none of the notes are sustaining long enough. The reason I don't want to turn release down is because I sometimes what to use KarmaFX for pads.

Surge is simply cutting off notes that are no longer being held.
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

wel..that is not possible with only 3 channels, but I understand what you mean now.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

Why isn't it possible for KarmaFX to cut off notes that are not being held? This is generally how every synth works in my experience. It's just not practical to use KarmaFX for pads if this issue is not addressed.

I really think we need customers other than myself responding to this thread. I have very few issues with KarmaFX, but this one sticks out like a sore thumb.

I didn't purchase KarmaFX for pads... but still... :!:
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

A "held" note normally refers to a note the a user presses [midi note on] and keeps pressing until it is released [midi note off].

The problem is that the synth handles the sound generation from start to finish, including the sound generation after note off is received. This is what I refer to as the release stage:

(0 amplitude).... [note on]..<attack, decay, sustain>....[note off]......<release>.... (0 amplitude)

If you have a long release stage, this means that playing many notes quickly after one another will result in many simultaneous release stages even though the notes are not played at the same time.

Each release stage requires a sound channel, so you naturally end up needing more channels than the number of keys you actually play simultaneously.

Say for instance that you tap a key quickly twenty times in a row. You would then hear twenty release parts of your sound (slightly out of phase). Unless you do mixing in-place this would then require 20 channels.

All I'm saying is that it isn't a bug. We can call it a "design limitation", and perhaps discuss ways to improve this behaviour, but it is definetly not a bug. :)
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

karmafx wrote:Say for instance that you tap a key quickly twenty times in a row. You would then hear twenty release parts of your sound (slightly out of phase). Unless you do mixing in-place this would then require 20 channels.
So, you're saying it's impossible for KarmaFX to do what Surge does because of how KarmaFX was designed?
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

no, it is not impossible. :)

I'm simply saying that playing 20 release stages will require 20 channels, since all kinds of modulation can be going on in the release stage too.

A possible fix I can think of for the issue you point out is to have a "super" polyphonic mode that automatically allocates new channels when they are needed. Then it would never cut a note, but the downside would be that tapping a key like crazy on a patch with a long release time would bring your computer to its knees. Of course doing that is a worst case scenario, so it might never happen when playing a pad patch.
dj.tuBIG/MaliceX
Posts: 61
Joined: 02 Oct 2007 08:18

Post by dj.tuBIG/MaliceX »

Actually that doesn't sound half bad of an idea, though one would need a Core 2 Extreme, to make full use out of that. :P

Hmmm.....actually, I was thinking.

What if you changed the NotePitch module to kill notes in priority order:

1. Earliest Polyphonic channel that first receives NoteOff
2. If no NoteOff on any channel, earliest note is cut.

Just a thought. ;)
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

karmafx wrote:A possible fix I can think of for the issue you point out is to have a "super" polyphonic mode
why must the fix be unlike surge? I swear this is how any decent synths work. I just don't want to download 10 synths to prove it to you, I'm very confident that this is true. I'm confident in saying that KarmaFX is a very rare exception to the rule of how synths work, and that is a BAD thing.

OK THATS IT, it's time to post spectral images.

http://shup.com/Shup/43031/surge-karmafx.mp3

Image
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Thanks! ...what software are you using for those plots?
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

iZotope RX. However, I think Adobe Audition has an even better spectral display. However, I don't think it has iZotope's "reassignment" feature which gives you ultra-high-res spectrograms (except it's kinda ugly to look at)
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

ok. I just downloaded and tried the vember audio surge demo.

Seems to me it always runs with max 8 voices of polyphony.

Can you actually choose the number of polyphonic voices you want?
If so where?

Thanks.
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Ahh...I found it ...you can set it from 2 to 64 voices.
Is this what you set to "3" ??

I don't get why you don't get notecuts though. This is quick test showing how surge cuts notes with 8 voice polyphony. I play a series of sine waves at different frequencies, with very long release times. As you can see, on the ninth voice it starts to cut the old notes. This makes perfect sense with 8 voice polyphony.

Image
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

For reference, here's a similar dump played on access virus hardware.

It has 24 notes polyphony, which also shows if you're able to tell them apart in the low frequencies. Note cutting starts at note 25.

Image
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

dj.tuBIG/MaliceX wrote:What if you changed the NotePitch module to kill notes in priority order:

1. Earliest Polyphonic channel that first receives NoteOff
2. If no NoteOff on any channel, earliest note is cut.
Sounds like a good idea.
That would cure the long note from being cut in the midi example Argitoth made.

Just tried the .mid in surge, and it clearly cuts the release stage, so no magic going on here either :-)

But, in the light of that, I have to agree that better notecut intelligence would be an important improvement.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

karmafx wrote:Is this what you set to "3" ??
2
karmafx wrote:I don't get why you don't get notecuts though. This is quick test showing how surge cuts notes with 8 voice polyphony.
You're doing the test wrong. Try again, this time put a polyphony of 2, add lots of release. You hold one note, that's polyphony of 1. You hold a second note at the same time, that's polyphony of 2. Let go of the second note. Since you have lots of release, the second note sustains for a while. Keep holding the first note. Hit a third note. You are at polyphony of 2 but the first note still isn't cut. That is because Surge doesn't cut the note you are holding down. It cuts the note you already released.

YOUR TEST WENT LIKE THIS:

Code: Select all

    -----------
   -----------
  -----------
 -----------
-----------
IN MY TEST, I DID THIS:

Code: Select all

            --         
         --
      --
   --
--
-------------
---- = midi note.

Image


Image
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

Doing my test:

Image

Image
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Yes....I understand perfectly.

In the above posts when you said you wanted "no notecuts" I thought you really meant it :D , and as I said that would require an insane amount of channels.

What you really want is better notecut intelligence, so it only cuts notes that you will hear and miss the least. Right?

I'll see what I can do to squeze this in to the next version.

Thank you for pointing it out. 8)
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

:D

I can rest peacefully tonight.
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

ok...sorry for the delay, but here is a new shot and sound example from karmafx v1.02 using your midiclip:

http://karmafx.net/stuff/polytest2%20Re ... rmafx3.mp3

Image

Hope you like it !

ps: sorry for the lame sound, but sines just look the best... :roll:
dj.tuBIG/MaliceX
Posts: 61
Joined: 02 Oct 2007 08:18

Post by dj.tuBIG/MaliceX »

Assuming the example given is, low note held, and high note individual with long release on Poly2 mode, I'd say that looks like it's correct behaviour.

That's in my opinion though. Thanks for taking the time.
Argitoth
Posts: 189
Joined: 06 Dec 2007 15:05
Location: Mesa, AZ
Contact:

Post by Argitoth »

:D
:D
:D
:D O V E
:D :D :D
audiojunkie
Posts: 49
Joined: 25 Nov 2006 07:43

Post by audiojunkie »

karmafx wrote:ok...sorry for the delay, but here is a new shot and sound example from karmafx v1.02 using your midiclip:

http://karmafx.net/stuff/polytest2%20Re ... rmafx3.mp3

Image

Hope you like it !

ps: sorry for the lame sound, but sines just look the best... :roll:
Great work!!! I think we all will appreciate this improvement to note intelligence. :-)

--Sean
karmafx
Site Admin
Posts: 1194
Joined: 07 Mar 2005 16:37

Post by karmafx »

Yes, it seems to work well... but try it out for yourself. v1.02 has just been released. :D
Post Reply