I just committed my stuff. It more or less wraps up the merged buffer implementation.
Btw: I found what seems to a typo in the xLine read method you contributed. Not sure if you’re using the code elsewhere, so I wanted to point it out:
https://github.com/renoise/xLib/commit/44b1fd5765da763a65dea3365ac8cc1fd00b20a5#diff-c4c998a9605b5b8a705d6f73f70f4165R303
I also did away with the variables pointing to functions. It’s my impression that there is no overhead when calling functions that are properties of an object.
But again, maybe you had some reason to make this change? If not, I think it just makes the code slightly harder to read.
This is one of those times I wish there was a real way to trace function calls backwards in some IDE. The whole xStream code (like any larger project) isn’t very easy to penetrate and get a full birds-eye perspective on.
Yep, manual tracing goes some of the way (you can identify often-called functions in a logging tool). But it has downsides - maintenance, mostly - and isn’t proper debugging either.
Note: I usually strip away the TRACE statements once a tool goes on tools.renoise.com, so there’s no a performance penalty to speak of