Color Highlighting with easyflow ‐ considerations - HenriAugusto/easyflow GitHub Wiki
When to use automatic and when to use manual color highlighting?
Comparison
automatic color highlighting
- gives you more control and is easier and faster to manage
- you can customize the abstractions to change overall appearance at once ( edit [colorCnv] to your liking, for example)
- creates a dependency of easyflow on the patch its being used
- you must have one [colorHighlighting] abstraction anywhere
- Adds overhead
manual color highlighting
- if you want to change a color associated with a name you must edit all [cnv]s used with it.
- you can not customize the abstractions to change overall appearance at once ( edit [colorCnv] to your liking, for example)
- doesn't create any dependency as it only uses vanilla's [cnv] object
- you don't have to use any specific object to use it.
Deciding
Here are my suggestions
- If you are designing a library:
- you care that it has a dependency?
- yes: use manual
- no: use automatic and distribute easyflow along with the library
- you care that it has a dependency?
- If you are designing an top level patch (like a complete synth, for example):
- does it already have dependencies?
- yes: use automatic and distribute easyflow along with the patch
- no: use automatic if you don't care adding one or manual if you don't want to
- does it already have dependencies?
Also, since automatic uses more code consider the overhead when designing performance-critical patches. more objects in the chain = more time
More on deciding
Here are some thoughts on the previously mentioned comparison
Automatic
- "creates a dependency of easyflow on the patch its being used "
- easyflow is very small and you can include it on whatever you're distributing.
- maybe your patch already has a dependency on easyflow because you're using it's other abstractions.
- it's available on Deken (:heart:)
- "you must have one [colorHighlighting] abstraction anywhere."
- You won't want to have one of this on each abstraction if you're designing a library but it's perfectly fine to add one to an big patch.
- you don't need to use automatic on every abstraction, just the complex ones.
manual color highlighting
-
"if you want to change a color associated with a name you must edit all [cnv]s used with it."
- not a big problem in small abstractions
- you already need to do it if you decide, for example, to rename [send][receive][value] objects. In that case you'll probably want to use a powerful text editor (like Atom or Sublime text) to edit a lot of .pd files at once. Just run search+replace on all the files. This can be accomplished by opening the desired folder and hitting ctrl+shift+F on Atom or Sublime Text (windows shortcut)
-
"you can not customize the abstractions to change overall appearance at once ( edit [colorCnv] to your liking, for example)"
- not a problem if you don't intend in doing so
- same as number 1 for using search+replace on the .pd files (but you would probably need RegEx)