No announcement yet.


  • Filter
  • Time
  • Show
Clear All
new posts

  • Humanization

    When triggering drum samples using only CV triggers, the result can be pretty static, and robotic sounding when no modulation is applied. Humanization, or applying slight random variations to key parameters could help with this a lot.

    For "humanizing" time, a bound (perhaps in milliseconds) could be configured per cell. When a trigger event is detected, be it touchscreen, MIDI, or CV trigger, then a random value between 0 and this bound could be sampled, and the trigger event delayed by this amount. I imagine though, that the implementation requirements for this would not be trivial.

    For "humanizing" playback level, it would be useful to have a parameter or modulator which could be configured to sample a random value between two configurable bounds at trigger time and apply it. If the bounds are described as percent values of the entire modulation range, then one could, for example, configure a cell to modulate the playback level to some random value between 85% and 95% of the level range at trigger time. This would (roughly) emulate the human inconsistencies in velocity when tapping on a controller pad, playing a e-drum, etc.

    An added bonus would be to allow this principal to apply to slice selection in a slice mode cell. If one were to make the effort to concatenate samples of a drum at increasing dynamic levels (layers), and slice it. Then an even more natural dynamic could be achieved than simply attenuating the level of a static sample.

    Those are my wishes, thanks for your time!

  • #2
    Thanks very much for these suggestions. Humanization is a very useful concept and there are some existing possibilities today:

    For adjusting the level, please try the EXT1-4 inputs and use them to modulate the pad gain. Use the random input of your choice.

    For adjusting the time, this might be more of a sequencer feature. With that approach you could make the events earlier or later. Inside bitbox, your only option is to delay them.

    I appreciate the discussion. We will keep your requests in mind.


    • #3
      Modulating the level externally requires a pretty complicated patch including a random source, a voltage block for the lower bound offset (I'm not sure there is a way to patch an upper bound), and then a sample-and-hold to maintain the sampled random voltage for the duration of the gate. This patch would need to be replicated per cell to avoid changing the level of a sample mid playback if it were shared. This is why I think a Bitbox internal modulator would be advantageous.

      Regarding time humanization, indeed this would be best handled by the sequencer at hand, and centered around the quantized event, although I don't know of any hardware modular sequencers that can do this. In my experience, time humanization needs to be applied sparingly anyhow, and the results are often best when nearly unnoticeable. Therefore I'd prioritize implementing level over time humanization.

      Have you ever considered releasing your firmware under an open source license? People (like myself) could implement features like this themselves and contribute them back upstream for others to enjoy. Just a thought, I have no idea if your business model supports it.

      Thanks for considering my ideas.