On Fri, 3 Jan 2025 19:03:27 +0100 ichthyo <p...@ichthyostega.de> wrote:
>Hi Will, > >let me pick up what I've said yesterday, taking a slightly different angle. >As a developer, I often make the observation that I dislike some piece of >code, because I deem it inadequately written (in many cases by myself). >When things have settled down in some way, it often becomes quite hard >to change them, which increases the feeling of inadequacy. > >On the other hand, I've often seen that my gut feeling regarding performance >is -- well, largely right -- but more often somehow blown out of proportion. >It is very hard to guess what part is the most detriment to performance. > >One thing seems to be clear: for the creation of the Zyn engine, performance >was not the top leading regard. Rather, it was built to create sonic quality >without compromise. Everything is structured there in a way to perform some >very specific computations, which, as such are hard to understand and to >get right. > >But let's be honest: there is another thing we /don't see/ clearly. >Its the question /how bad the engine performs/, actually. > >For example: it may seem preposterously inadequate to use only a single >thread for sound production -- but did we take latency into account? > > >Will, I'd like to respond to your concern and the possibility to somehow >consider it in the proposed project. And I think this would fit in very well. > >Just we'd have to reformulate it slightly: > >On 02.01.25 19:17, Will Godfrey wrote: >> We are very 'wasteful' of notes. At each note on we allocate memory, >> define all the elements, then populate it with the starting parameters. >> When the note finishes we throw this all away, and start again >> with the next note. > >So we should have a look if it's actually wasteful to do so. >As part of the proposed project (and the first prototype), we'd have to make >some changes to the note-init code. And we'd have to investigate empirically >what would be the cost of doing so. As a by-product, we could get hard data >as to the extent that the note-init phase contributes to the overall costs >of computing a note. And by logical implication, this carries over to the >impact of memory allocation. > >Thus, we could answer the question: is there suitable leverage in note >memory allocation to justify the effort of "touching a running system"? You make some good points here. I did make an attempt to get an idea of the real note-on cost with the timer (that can be enabled in cmake). I recognise It's not accurate as it takes time itself, but it does at least give a useful representative idea - particularly regarding the different engines and their combinations. Also there has been a noticeable improvement over the years. Some of that may be due to improvements in the Linux memory management you referred to previously. When I first started checking this AddSynth was the elephant in the room, and SubSynth always the fastest. These days it seems SubSynth and PadSynth are pretty even, and AddSynth, although still the heavyweight, is a *lot* quicker than it was. -- Will J Godfrey {apparently now an 'elderly'} https://willgodfrey.bandcamp.com/ http://yoshimi.github.io Say you have a poem and I have a tune. Exchange them and we can both have a poem, a tune, and a song. _______________________________________________ Yoshimi-devel mailing list Yoshimi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/yoshimi-devel