[flext] future developments - new guidelines

Thomas Grill gr at grrrr.org
Sun Nov 20 11:47:19 CET 2011


Hi all,
i'm sitting in a workshop with David Zicarelli, Joshua Klayton and  
Emmanuel Jourdan where i learn about the new development features of  
Max 6. As expected Max has moved away from the traditional Pd-like  
core even farther, but on the other hand with very nice new features.
I might at some point implement the new 64-bit DSP chain and also  
genuine Max attributes (as present since Max 5) in order to enable  
pattr-style automation.

In order to make this possible, i have to deprecate certain aspects of  
the flext API which might be used in existing projects. Some of them  
are even used in flext tutorial examples (where they'll disappear  
soon), but for my actual real-world external i haven't found them to  
be essential.
I might try to provide backward-compatibility fallbacks for some  
cases, but that might not be possible throughout.

New guidelines:

- don't use instance-based method or attribute registering. Use class- 
based methods or attributes instead.
so e.g., don't use FLEXT_ADDMETHOD in your constructor, but rather  
FLEXT_CADDMETHOD in your class setup function instead. The same goes  
for attribute definitions.

- don't rely on the DSP information to be present in the CbDsp, but  
only in CbSignal. This applies to the signal input and output vectors  
and to the number of samples to be processed.
The reason for this is that Max 6 allows varying vector sizes.

- do always lock sample buffers when reading from or writing to them.  
The respective methods Lock and Unlock in flext::buffer have been  
present for quite a while, but i think i haven't really advertized the  
necessity of using them.


let me know what you think about it and whether this will have serious  
advert effects to your flext-based projects.

have fun!
gr~~~



More information about the flext mailing list