Creating a 14-way sample/voice crossfader, how would you approach it?

  • Client wants to crossfade 14 sample sets. I already know we will need to have all 14 sample sets playing at all times, essentially it will behave like 14 mic positions and one continuous knob for setting gain for all 14 in a specific way.

    Option 1: Use a single sampler with 14 sample sets and crossfade using voice controls

    • except I don't know how you'd contian 14 sample sets into one sampler all with round robin and velocity layers. Seems too complex

    Option 2: Use 14 samplers and use modulator modules + scripting

    • use global time variant modulator?
    • script time variant modulator?

    Option 3: Use 14 samplers and use purely scripting

    • would that be using setVoiceGainValue? What other functions will I need?

    Option 4: use one sampler and groups? there's this group XF thing I'm seeing. I'd need to set the group XF settings via a script to get the mathematically correct crossfade split into 14 regions.

  • I would heavily refrain from using 14 samplers for this (lot's of redundancy & inefficient).

    How you organise the samples depends on a few more things:

    • are they 14 stereo samples or 14 channels ( = 7 stereo channels)
    • do the samples use round robin variations or velocity layers

    You could create the tables for the group XF using scripts (IIRC David already wrote something for this).

  • 14 channels, so 14 mono

    yes to round robin
    yes to velocity layers I think

  • Well good news is the multimic feature allows 8 stereo samples ( = 16 channels) so this would really be the recommended way:

    1. Load them into one sampler
    2. Merge them into multimic samples
    3. Use 7 SimpleGain FX on the sampler to set the position using scripting

    You can then use Velocity Layers & RR as much as you like, the handling is as if it was one stereo sample.

    However this works only as long as all voices have the same gain settings for each channel, but I think this is what you want to do anyway.

  • We will have maybe 50 surround sample sets, that's 50 samplers * 7 SimpleGain FX, only 1 to 3 will be active at any time, that's 350 simplegain fxs

    Do you think I should still go with your proposal?

    Edit: Actually that's pretty impractical. I thought you had added loading/unloading/mapping samples with scripting.

  • No. Use 3 samplers and hotswap the sample maps between the surround sample sets.

    You can load / unload sample maps using Sampler.loadSampleMap()

  • does this look right to you? for merging multimic samples? the numbers are out of order. I imagine the order matters. 10 is mic 2? 11 is mic 3?

  • Well, they are using the order for the channel routing so a leading zero might things clear up. Apart from that the mapping seems fine.

    Also I would recommend using 7 stereo files instead of 14 mono files. It decreases the loading times and improves the streaming performance because HLAC stores stereo samples with alternating blocks of 4096 samples so it has not to jump around the files (and I can imagine that streaming could become the bottleneck here considering the amount of channels).

Log in to reply