Color Highlighting with easyflow ‐ considerations - HenriAugusto/easyflow GitHub Wiki

When to use automatic and when to use manual color highlighting?

Comparison

automatic color highlighting

  1. gives you more control and is easier and faster to manage
  2. you can customize the abstractions to change overall appearance at once ( edit [colorCnv] to your liking, for example)
  3. creates a dependency of easyflow on the patch its being used
  4. you must have one [colorHighlighting] abstraction anywhere
  5. Adds overhead

manual color highlighting

  1. if you want to change a color associated with a name you must edit all [cnv]s used with it.
  2. you can not customize the abstractions to change overall appearance at once ( edit [colorCnv] to your liking, for example)
  3. doesn't create any dependency as it only uses vanilla's [cnv] object
  4. 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
  • 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

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

  1. "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:)
  2. "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

  1. "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)
  2. "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)

Prev: Color Highlighting with easyflow ‐ the abstractions