during the process of building a granular synthesis external I arrived at the (debatable) conclusion that the perfect data structure to keep track of the grains is a linked list. So grains can be created and added at any point in the linked list and by the same token deleted. The memory usage is optimal. And the cost of insertion and deletion is constant.
Now, because the linked list must be managed in the perform routine, I am not 100% sure if it’s a good idea to use the ext_linklist.h API or implement a custom, simplified, non thread-safe version in the interest of performance.
Is it safe to use the ext_linklist API in the perform routine?
Would it be a good idea to set the thread-safety mechanism off with the
void linklist_readonly(t_linklist *x, long readonly);
It seems that the zigzag~ external employs a linked list in the perform routine…
What kind of strategy is adopted there? Custom linked list or standard API?
Thanks for any comments or suggestions.