Increase the voice amount/limit

  • Could you increase the voice amount and limit to 999? 9999 would be even better.

  • Well the number of voices directly influences the perfomance spike when starting voices (because it has to iterates over all voices) and therefore we just can't add 9's to the number of voices until we get the perfect number

    Did you really hit this limit? Remember it is not a global voice limit but for one sound generator. 64 is almost every key on a 88 keyboard and if you have repeating notes, the old notes that will be killed are hardly audible if you play the note multiple times.

    Changing this to 128 / or 256 would be one line of code (it is defined as constant in the config.h file), but I would keep it slick until somebody really needs this amount of voices.

  • Ok.

    There's a performance hit for having a larger possible maximum?

  • I didn't measure anything (and I think the performance hit will not be critical), but 64 was the power of two that seemed reasonable to me as starting point for polyphony.

    I thought it's better to go for "faster" until someone actually needs more voices, sounds, groups, etc.

    And the voice amount of sampler voices will have a direct impact on the memory usage, so I advise to be as economical with sampler voice amounts as possible.

  • hmmmmm… I think you should increase the max voices to power of 9 or 10 as I'm already hitting the limit at 120bpm and 6 octaves of melody. One sampler cannot handle it, but multiple samplers can. It's just good to have the option to use a single sampler. See post: viewtopic.php?f=3&t=19&p=88#p88

  • How are 'voices' defined? It's easy to hit hundreds of voices with even a simple instrument. Brass library with 4 dynamics and 4 mic positions, with dynamic crossfading = 16 voices per note.

  • Zircon, if you had a brass library, you'd use one sampler per mic, each with its own voice limit. I think you'd be ok. Then again, if you did need all 4 dynamics playing at all times, that's when you'd want more polyphony.

  • Yes, multiple mic positions would be handled either with another sampler or as multichannel audio file (I prefer the second method, but it isn't yet implemented). But both methods do not raise the voice amount needed per sampler.

    However dynamic crossfade samples would be a reason for higher voice amount limits. But even in this case, 16 brass voices (64 / 4) should be enough - traditional compositions use the 4 voice SATB paradigm also for brass parts and since sustain samples won't get retriggered so fast (there are staccato samples for this requirement).

    Another reason why I am so picky about this rather low voice amount: it enforces the instrument designer to carefully think about how many voices are really needed. Just because you hit the voice limit does not mean you have to raise the voice limit. In most cases where you hit the limit, you won't hear the notes being killed anyway because they are tailing off at a ridiculous volume or are masked by other voices.

    But again, the voice limit is not carved in stone and if everyone excepts me wants more voices, I will raise it.

  • I like the idea of using multichannel audio files for multi-mic sample sets, but will the user be able to purge channels that they don't want to use?

  • Yes, this is a problem and I am currently trying to wrap my head around a solution for this. It will probably use multiple (stereo or mono) audio files with the different mic positions for one zone, so in the sampler they will be treated as one sample but can be individually purged (and changed in the volume).

    What I haven't decided yet is where in the signal path I should blend the mic positions. There are multiple options with different advantages:

    1. Mix them together while reading from disk.


    • very efficient and the multithreaded disk preload threads can be used for this.
    • the voice amount will stay as low as with one stereo channel.


    • different effects on different mics is not possible (only volume and perhaps balance but no effect chain).

    2. Keep the mic positions seperated until the FX processing


    • You can use all effects with multichannel mics, and the routing can be freely configured


    • basically you have the same calculation effort as using different samplers, but with less workflow annoyances (because it is only one sampler).

    Currently I am implementing the first option, but I would like to hear from you guys what you would prefer.

Log in to reply