buzztrax icon indicating copy to clipboard operation
buzztrax copied to clipboard

Using adder as a mixing element won't allow for seamless loops

Open ensonic opened this issue 4 years ago • 0 comments

We're using 'adder' as a mixing element. Using that for loops leads to a bunch of artifacts such as:

  • tracks going out of sync
  • gaps in loops

This is in particular noticeable when looping a bar. In git we now also have keyboard widgets for live-playback (and in the past one could use a midi controller). For this to work, the song need to be playing (or the pattern live playback needs to be active). The idea was to always have the audio-engine playing. Fixing adder is unlikely, so of the issues are rooted in the way it handles events and it will be quite tricky to fix that in a backwards compatible way.

We added experiment-flags to try the newer 'audiomixer' element, but this was lacking lots of feature and we got pushback on implementing them. The version of the 'audiomixer' that is in stable gstreamer at the time of writing this also has incompatible interface changes (caps property removed).

The remaining options are:

  1. Fork the audiomixer (resurrect my PRs). This will be quite some effort (needs changes on the base-classes too).
  2. Depart from normal pipeline scheduling and implement our own 'custom pipeline scheduler' as outline at the bottom of https://github.com/Buzztrax/buzztrax/blob/master/TODO#L598
  3. Anything else?

ensonic avatar Mar 07 '21 15:03 ensonic