Somewhat related but this can go pretty low in amount of code (and data) with a bit of design, here is some experiments and details on the generation of monospace blocky font with very low amount of data (data is encoded into bitfield) and how to style it through simple operators or algorithms such as diffusion curves, the aim was slightly different as it focus on using smallest amount of CPU instructions : https://www.onirom.fr/wiki/blog/25-09-2022_tiny_bitfield_bas...
There is Photosounder which have excellent sound quality (all edit is in frequency domain and it then convert back)
For free there is also Virtual ANS and https://www.fsynth.com on the more experimental side (conversion is done raw using additive synthesis, phase information is lost so sound quality is affected)
Are you on Linux ? There is a known issue on Linux with the server running in background when you launch the AppImage directly (by clicking on it) so it is actually launched but you can't see it and if you launch it a second time it will fail to listen because the port is already busy with the first one, the AppImage must be launched in a terminal.
A VSTi i have used several times for birds & animals is "sounds of nature" by Xoxos, maybe you could take a look at how it is done, my guess is some fast FM modulations.
To stay in topic i have synthesized some nature sounds (birds, waters) myself using this synthesizer and a simple two oscillators FM setup with massive pitch modulations for each oscillators, you can hear it on :
So my guess is that some FM with pitch modulation and many oscillators may be the way to go.
Percussion can be synthesized with convincing results through resonant models (simple resonant filters with initial noise), this is called modal synthesis, you can find filters parameters for some real instruments here : http://www.csounds.com/manual/html/MiscModalFreq.html
The sound server itself (the link) is 100% CPU and does not use the GPU at all. One of the client application however (your description) output RGBA data generated by the GPU.
I don't know if that was a good idea considering there is a soldering problem on the Nexus 5X which shorten its lifetime to around 2 years, CPUs just fail after some times. I preferred to take a Android One device since then, cheaper while being similar in speed. (Phones such as Nokia 6.1 and so on) but the Pixel 3a is nonetheless cool, hope it will don't have conception issues!
Yes, this is actually how it work however page flipping mechanism require a memcpy, as such it is as effective as not using page flipping and just memcpy a front buffer to display and doing software flipping through pointers exchange, the only advantage of using page flipping is that it require much less operations and prevent tearing but performance wise, it is roughly the same.
Tried to implement page flipping today and performances are terribly low on the Raspberry PI due to direct draw calls to the video mapped memory... so you need to do a single memcpy to avoid multiple write to the video mapped memory, this result in the initial behavior.
The time goes into calculating a fullscreen pixels-based effect (so yeah; buffer contents), the point of this library is not the FB implementation which is a simple / bare-metal one.
The point is to render graphics content in a consistent way across multiple CPU cores but still remain lightweight enough to be used with your own implementation, this might change but that was the initial goal.
Nice, remind me of a custom Regex engine i built some years ago in JS while trying to build a fast & small lexer, it does not support ? but +, - and sub-rules, it is around 60 LOC if I remind, mostly built by "accident", it work with JSON as input and output a finite state automaton (compiled version ?)
Can be useful when you have multiple monitors and don't want to clutter the main window, especially for single page apps or visualization/monitoring things.
I have done my own take at this since some times but vanilla only https://github.com/grz0zrg/wui where any of the dialog widget can be detached off the main window keeping the same content & state. A feature i never saw in any web apps but saw often on desktop apps, nice to see that some peoples think of this sort of thing with cleaner approach!