You can view the logic related to both drawing the nodes and handling how
they can connect to one another in the unit below. Note that I also check
for circular references so that one node cannot indirectly lead back to
itself. Also, the rendering only hits the nodes that are connected to the
final output node TDisplayNode or FDisplay in the TNodeList by working its
way backwards from it to only connected nodes.

https://github.com/sysrpl/ImageShop/blob/master/src/imagenodes.pas

Regarding the next project, I think I am going to concentrate two different
programming tasks for my students. One task is to create various tones
through simple functions, and the other is to create effects (again through
simple functions) which manipulate a sound source. Examples of effects
might include a chorus effect, pan effect, flanger effect, reverb effect,
echo effect, and probably a few crazy original sounding effects that don't
make much sense for musicians to use. In any case, I suspect that I will
allow the user to again hook effects up together in a chain, possibly using
the same node type user interface where one effect outputs samples that can
be fed into other effects.

And in place of the image drawn above like in the Image Shop example, I
might just make the rendering take the shape of graphing real time wave
forms and cut back slightly on the musical staff, at least until another
point in time.
-- 
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to