How to sort out different simultaneous bangs (or numbers) and route them seperately

Hello everyone,
i am getting in sound via microphone and i want to analyze the incoming signal via the zsa.descriptor external [zsa.easy_bark~].
depending on the incoming signal frequencies i want to trigger 5 different samplegroups. i'm able to distinct between different frequency bands and send out bangs if the threshold is high enough via [past] . if there are loud high AND low frequencies coming in at the same time, multiple bangs and so multiple samplegroups are are triggered simultaneously.
but in that case want to decide that only one samplegroup should be triggered depending on wich bangs are coming in. i'm looking for a solution to sort out the 5 incoming simultaneous bangs and route them so that i only have one specific output bang.
i tried something with [if] and [count] and [select 1 2 3 4 5] but they all kind of let through all the bangs at the same time.
example: bang A is incoming, so i want A as output.
A, B are incoming, so i want to have B as output
A, B and C are incoming, so i want to have C as output
A, B, C and D are incoming, so i want to have D as output
It is maybe kind of a logical beginner problem, but i am stuck with it since two days now :-(
so any help is very appreciated!
So you want always the highest input number.
Maybe something like that?

you can detect successive messages by [thresh 0] (if output is a list with more than the input had, the recent inputs came in at the same logical time)
and if you are paranoid, you put a [delay 0] after the multislider and switch on overdrive (or make sure if zsa.´s actually output in overdrive)
Thank you Peter, that [funnel] object does the job! and like you said Roman, i will have to work with a delay, like in the [trash] object ! i will post my results if i have success with that.