Embedding a MSG Effect in the Paint Synthesizer

We're going to run through different techniques for embedding MSG presets inside of the paint synthesizer.  You can do this to extend the capabilities of the paint synthesizer in several different ways.  This includes path start, path shape, brush load, and source brush features.  For the first example, we will focus on extending path shape.  After that, we will branch out to the other options in separate posts in this thread.

Let's build a simple MSG effect based on the Rose Curve, which is a parametric mathematical expression for a class of different curves.  I picked that one because it pertains to the guilloche discussion currently going on in a separate forum thread.

Here's an example of a super simple MSG preset that draws a Rose Curve.

10886981857?profile=RESIZE_710x

You can see that there are just 2 processors in the MSG processcor chain.  The Rose Curve processor, and the 1To3 processor.

The RoseCurve processor draws a parametric Rose Curve into a single monochrome image stream.  You can see below that i setup the output of that RoseCurve processor to output to the ROut image stream channel.

10886982892?profile=RESIZE_400x

If we then look at the 1To3 processor IO (input-output) connections, we can see that we're routing the R Out monochrome input to the 3 color channel output stream channels (ROut,GOut,BOut).

10886983495?profile=RESIZE_400x

If you click on the MSG Advanced Editor preview cell, you will get mutated parameter variations of that MSG effect in the various display cells in the Evolution Editor.  So this is a way you can work with creating new effect variations of the MSG preset we just built.  You can also manually adjust the individual parameters associated with each MSG processor in the Parm tab of the MSG Advanced Editor.  Note that only the first RoseCurve processor has editable parameters for this simple example.

I said we edited this MSG preset, but i started by showing you the finished result. So how do you do it from scratch?

You can select any of the individual processors in the processor chain list in the MSG Advanced Editor, and then see and edit anything editable for that processor in the different tabs on the right of the MSG Advanced Editor.  If you press the delete key, then the currently selected processor is deleted from the processor chain list.

Parm tab is for editable parameters, IO tab is for input-output routing editing, Grad tab is for internal color gradients, Pal tab is for internal color palettes.  Note that we aren't using any internal color gradients or color palettes in this simple MSG effect example.

The Src tab is for the source library.  This tab is different that the other tabs that have to do with editing things associated with the selected processor or the the internal color gradients and palettes (which live on the MSG effect's Bus and are accessible via IO connections for any of the processors in the MSG preset).  The Src (source) tab displays a list of all of the different MSG processors one could add to the processor chain list.

10886987098?profile=RESIZE_400x

To add a selected processor in the source library tab to the processor chain list, all you have to do is drag and drop it into the appropriate place in the processor chain list.  You can also drag and drop individual processors already in the processor chain list to a different position in the list.  Option dragging makes a copy rather than moving the processor.

The RoseCurve processors makes an image by iteratively constructing a set of 2D points that change over time, defining the shape of the evolution of the rose curve being drawn.  So you can think of it as being associated with a set of MSG 'generator' processors that generate point positions over time.   There are many other 'generator' processors that can generate chaotic attractors or more structured parametric curve imagery.

This set of 'generator' MSG processors can be used as path start generators in the paint synthesizer.  In the next post to this thread, we will show how to embed this simple MSG rose curve generator into the paint synthesizer to build a guilloche style halftone screen paint effect.  

You need to be a member of Studio Artist to add comments!

Join Studio Artist

Email me when people reply –

Replies

  • Let's use the simple RoseCurve MSG effect we created previously in this post and embed it into the paint synthesizer.  We're going to do that to extend the capabilities of the paint synthesizer, by using the MSG preset to generate the path start points the paint synthesizer will use for drawing.

    10886992065?profile=RESIZE_930x

    You can see in the screen shot above that i'm using the MSG Scan Generator option for the Generator in the Path Start control panel.  This option runs the current MSG preset internally to generate consecutive start positions for drawing.

    Keep in mind that not every MSG preset can be used as a MSG Scan Generator.  Only processors that act as 'generators' of 2d positions over time are going to have 'generator' capabilities.

     

    You can see that the paint synthesizer is drawing a vector representation of the rose curve defined by the editable parameters inside of the RoseCurve processor in the current rose curve MSG preset.  If i clicked on one of the display cells in the Evolution Editor (Evolution are mutated variations of the rose curve msg preset parameters, then the one i clicked on would become the current MSG preset in the Advance Editor, and the paint synthesizer would track that rose curve instead.

    10886994294?profile=RESIZE_930x

    So how does this paint synth preset work?  We already covered how the path start positions are being generated, based on the output of the RoseCurve MSG processor in our simple ROseCurve MSG preset.

    If we look in the Path Shape control panel, i'm using the last path Start SplineTo Reset option for the Load Type in a Path Load option for the Path Type.

    10886997054?profile=RESIZE_400x

    The Path Load option for the Path Type is a grab bag of different esoteric kinds of path generators.  The Load Type parameter lets you choose the specific one you want to work with.

    10886997095?profile=RESIZE_400x

    The one i selected draws a smooth spline curve to the last generated path start position.  So the MSG Scan Generator for the path start positions is spitting out points associated with the rose curve over time, and this particular path type - load type option is generating smooth spline curve between those points on the rose curve.

    We want to make sure that the paint synthesizer isn't then adjusting the angular orientation of the generated spline curve, so if you look in the Path Angle control panel you will see that i set it up to not doin anything (fixed path angle with an offset of 0).

    10886998865?profile=RESIZE_400x

    I wanted a relatively small brush size, so i set it to 8 in the Brush Source control panel.

    10886998888?profile=RESIZE_400x

    I also wanted the brush size to modulate based on the source image luminance.  So i setup the Brush Modulation control panel to do that.

    10886999890?profile=RESIZE_400x

    I also wanted to use vector drawing. I setup the Vector Output control panel as shown below so that i was using circular vector region nibs for the vector painting.

    10887000460?profile=RESIZE_400x

    because i was interested in a solid black and white halftone effect, i made sure i was drawing with solid black in the paint Color Source control panel.

    10887000865?profile=RESIZE_400x

    I also made sure the randomization options in this and the Paint Color Modulation control Output were set to 0 so that the black paint color didn't modulate and change over time.

    I initialized the paint synthesizer to the standard default setup before i started this whole manual editing process.  You can shift click the Init button at the bottom left of the Paint Synthesizer editor to do that.  You can also run the Edit : Paint Synthesizer : QuickEdit : Initialize menu command to do that (same thing).

    I'll post all of the presets associated with this thread when we are finished for people.  But i encourage you to try and build the presets manually from scratch.  Because that is going to be how you really learn how to adjust and manipulate Studio Artist to do your bidding, but working with it and creating manual edits. 

    If you make mistakes while doing that, no problem.  Maybe you will find some whole new effect by accident (happens to me all the time).  And as you get more familiar with adjusting the controls in the paint synthesizer, if things aren't working the way you want them to, you can reason through why that is the case, and then adjust things accordingly so they do work the way you want them to.

     

    As i said above, we're using vector paint for this example.  Vector paint as specified by the setup of the Vector Output control panel.  There is another approach to building vector paint effects, using the AntiAlias Solid brush type.  And you can build hybrid paint effects that use raster and vector paint at the same time.  But i'm going to quickly discuss a few raster paint things to help provide a quick overview of how the paint synthesizer works, and how you go about configuring it.

    We didn't cover the Paint Fill Setup control panel above.  We're just using the default initialize setup shown below.

    10887003471?profile=RESIZE_400x

    We're filling from the current paint color, and filling to the canvas image.

    So with a standard computational source brush shown below

    10887003889?profile=RESIZE_400x

    The center darkest black area of the sphere corresponds to Fill From.  Whatever you specify for FillFrom will be placed in that part of the paint nib.

    The lightest part at the edges of the sphere that isn't pure 255 white will correspond to Fill To.  

    We use the Source Brush and the Fill From and Fill To modulators to build a 'paint nib' that is then laid down on the canvas as we paint.  So the center of the paint nib will be the paint color, and it will blend out to the current contents of the canvas at the edges of the sphere.  Pure 255 white in the source brush is not painted, since a paint nib is not constructed in any areas of the source brush that are pure white.

    What i just described above is what happens when you are using raster paint.  A paint nib image is constructed from the Source Brush and what modulators you have specified in the paint Fill Output control panel.  But keep in mind that we are working with vector paint in this example, so the settings in the Vector Control panel are going to override, and a vector paint nib will be generated and then place on the canvas rather than a raster paint nib.

    I thought it would be useful for the purpose of understanding how to setup the paint synthesizer and how it works internally to run through some of the other control panels and what they do.

     

    How does the paint synthesizer work?

    It selects a path start position to start drawing a paint path.  We are using the MSG Scan Generator in this example.

    It then constructs a paint path that will extend off of that selected start position.  We're drawing smooth splines to the last path start point in this example.

    The paint path may end early if you have setup path end modulators, which we have not done in this example.

    Individual paint nibs might drop out if you have associated modulators turned on in the Path Application control panel, which we have not done in this example.

    The current paint color is specified by the different paint color control panels.  We set it to solid black with no additional color modulation in this example.

    For raster paint, the paint fill setup control panel would control the building of raster paint nibs derived off of the current source brush.  

    The paint fill apply control panel defines how the paint nibs are laid down onto the canvas.

    We are modulating the size of the individual brush nibs in the brush modulation control panel based on the source luminance.

    We wanted to use vector paint nibs rather than raster paint nibs, so we setup the vector output control panel to override raster paint settings. We specified a circular region, so circular black vector paint nibs will be size modulated by the source luminance, and then laid down on the canvas based on the paint paths being automatically generated by the paint synthesizer.  Automatically generated using the embedded MSG preset that generates rose curves.

     

    There is this inherent concept of signal flow in the paint synthesizer.  Signal flow and signal modulation.  Musicians familiar with how music synthesizers work seem to pick it up pretty quickly.  If you aren't coming from that background it might take a little bit longer.  But all of it relates to drawing or painting, how is it specified to happen automatically within the paint synthesizer.  So you can think it through from that perspective.

    Where do we start drawing a path?

    How to we draw the shape of the path?

    Where do we drop out or stop a paint?

    What is the color of the paint nibs we are painting with?

    How are the paint nibs we lay down along the generated path made?

    How are the paint nibs applied to the canvas?

    How are the paint nib shapes built,  are they size or orientation modulated?

    Are we using raster or vector paint nibs?

     

    In the next post i'll focus specifically on using what we just built to simulate guilloche screen printing effects with vector paint.

     

  • Here's the specific MSG embedded paint synthesizer preset i used for the photo i posted in the guilloche forum discussion.  The zip compressed paint synthesizer preset file is attached below.

    10887048894?profile=RESIZE_930x

    This is basically the same paint preset setup we covered in the previous post in this thread.  The MSG parameters are a little bit different, so that i can get a reasonable coverage across the canvas for the intersecting curved paths associated with the rose curve the MSG preset is generating.

    Rose curves are a mathematical superset extension of the hypotrochoid patterning seen in physical guilloche engraving devices.  The RoseCurve processor used in the MSG preset above also has built in non linear mapping options that greatly extend the range of potential shapes and patterns one can generate with the processor.  The processor was really designed for procedural pattern generation in a much broader sense than specifically emulating real world guilloche patterning, but i grabbed it for this example because of the underlying mathematical relationship (prior to the crazy non linear mapping options we provide in the processor).

    You could of course substitute other MSG processors that act as 'generators' for this effect if you don't like the curve shapes of the rose curve processor.  We'll get into that later.

     

    You might recall i used an 8x8 pixel brush size. So that is going to give you 64 potential gray levels for different size modulated hard black vector dots.  And the relationship between the gray level representation in the painted image vs the size modulation of the brush is not going to be linear.  So you need to think through compensating for that when planning out how you are going to use this kind of paint preset.

    I'm using a 3840x2160 pixel canvas, and what you are seeing in the screen shot is shown in the canvas at .33 magnification.

    If you wanted to get better tone representation in the range of black dot nibs you are printing with, you could increase the brush size up to 16x16 for 256 potential gray levels.  You'd need to boost the canvas size up as well to get an equivalent screen size perception for the drawing.

    Note that i'm doing this potential graylevel calculation based on filling full pixels in a raster brush and we're actually painting with anti-aliased circular vector nibs, so very back of the envelope but the general idea still applies.

    Because of the nonlinear tone curve this kind of paint effects has inherently built into it, you usually want to pre-process the source image.  Lightening up the tone curve of the source image you will use as input to the paint effect so that the overly dark paint effect ends up balancing out back to the actual tone curve you are interested in.  You can use some of the different Interactive Adjust effects in Studio Artist to do that.

    Pre-processing the source image to help optimize the outcome of the overall visual effect you are interested in creating is a good thing to think through in general.  Optimizing the source image contrast, cutting down extraneous noise or texture, removing extraneous source details, etc.

     

    Note that this effect is modulating the brush size using the source luminance as a modulator, so that black or darker areas of the source image are painted with a larger paint nib than lighter areas, with the brush size modulating to 0 (no nib painted) for pure white areas of the source image.  So this visual attribute modulation is what is creating the halftone screening effect in the painting.

    However, there is nothing intelligent turned on to prevent excessive overdrawing.  If you let this preset draw forever, or manually scribble with it, you can end up with all black canvas in the end.  So you want to be smart about stopping it at the appropriate time.

    Or, you can edit it to incorporate additional intelligent modulation options that will restrict painting if the feature turned on thinks that dropping more black paint is going to be a bad idea.

    To show this off, we'll set the Probability option in the Path Application control panel to WhiteCanvasErr (since we're starting with a white canvas before painting black on it).

    10887064269?profile=RESIZE_400x

    After erasing the canvas to white and then pressing action to redraw with the edited paint preset, we get the following.

    10887064852?profile=RESIZE_930x

    You could let this run all day if you wanted to and it is not going to do any over-painting that it thinks is going to make the painting look worse.  Worse defined within the limited constraints of what that particular Probability setting is doing.  It assumes you started with a white canvas, and it then before it lays down a single paint nib, it looks at the source coloring at that local nib positioning, and it looks at the existing canvas at that same positioning and if it thinks placing the paint nib on the canvas is going to be a bad decision, it drops that nib out (the nib does not get drawn in that case).

    The 2 variations of the guilloche engraving vector paint effects we just built are attached as presets below.  So you can check them out, but again i would encourage you to try and build them from scratch, or modify them in different ways to change their behavior.

    roseCurveVectorHalftoner1.paint.zip

    roseCurveVectorHalftoner2.paint.zip

    We'll look at some alternative MSG generator processors you could use for embedding in a subsequent post to this thread.

    guilloche
    Hi I am tying to achive hatching like classic guilloche style.I've tryed Image Operations.But could not make.Is it possible to make this kind of imag…
  • Here's quick variation of the same vector engraving vector paint effect that is using a lissajous pattern for the screen paths (as opposed to the rose curve in the previous examples).

    10887082885?profile=RESIZE_930x

    You can see that i changed the MSG preset being embedded in the paint synthesizer to use the Lissajous processor instead of the RoseCurve processor.

    The paint preset for this is attached below.

    LissajousVectorHalftoner1.paint.zip

     

    Running through these examples gave me some ideas for new MSG generators to build to use for this kind of thing, so some of those may end up in the next release.

     

    I should point out that there are other approaches you can use to build self-screening half tone effects in the paint synthesizer that do not require embedding MSG processors.  We went through that particular exercise because of the mathematical relationships of the rose curve to the specific mathematical patterns used in actual guilloche engraving machinery.  You could use the paint synthesizer to directly compute the paint paths for the simulated engraved screen.  Or you could use any of the many image operation effects that generate vector paths to do it (embedding the Ip Op effect in the paint synthesizer rather than a MSG 'generator' preset).  Like one of the specific Ip Op effects that generate line screen effects (there are several different ones). 

    If people are interested i can show off how to modify this preset to use one of those Ip Op line screen effects.  Those Ip Op effects generate all kinds of different screening effects, but by embedding them inside of the paint synthesizer you can increase the range of different visual effects you can derive off of them.

    https://storage.ning.com/topology/rest/1.0/file/get/10887083473?profile=original
    • I slapped together a quick example of what i mean by embedding an Image Operation (Ip Op) effect that does vector drawing into the paint synthesizer to create a different kind of halftone screening effect.  One where the path drawing is based on what the Ip Op effect is generating.

      10887088661?profile=RESIZE_930x

      It has embedded the Line Screen Regionize Ip Op effect with a particular set of settings for it that generarte a chamfer distance mapping line screen.

      The associated paint preset file is attached below.

      ChamferVectorHalftoner1.paint.zip

      https://storage.ning.com/topology/rest/1.0/file/get/10887089654?profile=original
    • At this point you might be asking, what about a simple straight line screen vector paint effect.

      Here's another quick variation of what we have already built that does just that. I'm using the Border Clockwise option for the Generator in Path Start.  The path being generated by the paint synthesizer is just a straight line.  The max path length needs to be long enough to make it across the complete canvas at whatever fixed angle offset you are using.

      10887099459?profile=RESIZE_930x

      I built this as a Paint Action Sequence (PASeq) to show off how to use the same paint preset with 2 different fixed path angle offsets (0 and 33) to build a dual screen effect.  If you want a tri screen, just add an additional paint action with the same paint preset where you change the Fixed Offset in Path Angle to be something different.

      The PASeq preset file is attached below.

      dualLineScreen1.paseq.zip

       

      If you want something more adaptive, you could use a rectangular tiling pattern for the path start generator, cut down the path length dramatically because of that, and modulate the path angle by the source luminance.  

      10887103497?profile=RESIZE_930x

      The associated paint preset is attached below.

      LumModVectorHalftoner1.paint.zip

      There are an infinite variety of different modifications you can make to this approach.

      You could use a hexagonal sampling pattern for the path starts, you could setup path end to stop the path if it runs into an already drawn one, you could adjust the path angle controls to modulate with a different visual attribute, change the offset, change the slew, etc.

      https://storage.ning.com/topology/rest/1.0/file/get/10887100460?profile=original
      • Nice. So much to play with!!

    • I just wanted to point out that you aren't restricted to black and white halftone effects with this kind of paint screen effect.  You can use the basic ideas for how you are constructing the paths to build full color paint effects that emulate color woodcut printing or lithography or silk screening if you are interested in that kind of thing.

      One simple example below.  It is still using vector painting, but i switched to the Anti-Alias Solid brush type instead of the vector Output control panel options for the vector paint.  I got rid of the brush size modulation since we're no longer emulating halftone engraving.  I also turned on a path end option to tighten things up, and turned off any path application dropout.  I'm painting with color rather than just black paint nibs.  Not just color, but a Fixed Color 1 to 2 color gradient that tracks the current source color.  I'm drawing full vector spline shapes rather than dropping down a path of vector circular paint nibs.  The fixed color gradient is applied across the width of the curved vector spline.

      10887108868?profile=RESIZE_930x

      The preset file i'm attaching for this one is a PASeq, since i want to showcase one approach to use this paint effect in a larger context.  I erase the canvas to the output of the Mondo Simplify Ip Op effect for a flat colored background (as opposed to erasing to white).  I then paint on top of that flat colored background.  I then run 2 different Ip Op effects to jazz things up a little bit for the final completed color woodcut or litho effect.

      colorLumModScreen1.paseq.zip

      https://storage.ning.com/topology/rest/1.0/file/get/10887108690?profile=original
This reply was deleted.

Is anybody making a copy of all the material in the Tutorials Forum

Since the Forum is going away in June, has anyone started to make a copy of all the stuff in the Tutorials forum?I've made copies of some of the tutorial material on the main site, but haven't looked at the Tutorial Forum yet.I'm going to continue copying as much as I can for my own personal use anyway, but if anyone else is doing it, or has already started doing it, please let me know.Maybe we can co-ordinate our efforts. ps can't ..... believe John, would let this happen without so much as a…

Read more…
1 Reply · Reply by Thor Johnson on Saturday

Studio Artist is in Italy!

I was crawling the streets of Matera, Italy today and may have discovered where SA is hiding!  (see attached photo). Not meaning to make light of this great, sad mystery. But I just couldn't resist as I try to make sense of what's happening. Losing my connection to SA, Synthetik and John has been a great sadness... and if real, ends a monumental era in my creative life. love,~Victor   

Read more…
3 Replies · Reply by Thor Johnson on Saturday

The Overload

"The Overload"! A video with music, from the various experiments I made in Studio Artist with stuff that I have learned in the last few days, from tips and tricks I found by scouring this site and the Synthetik site for tutorials etc. MSG! Paint Synth with MSG Path Generation! Movie Brushes with MSG Path Start Generation! Time Particles! Time Particles with MSG Path Start Generation running Movie Brushes! All that, and more! Haha I have been trying to stretch the Paint Synthesizer in the…

Read more…
1 Reply · Reply by Thor Johnson Mar 31

Teenage Tongue Cult

Hi, here is the video I made back in 2010 for my song "Teenage Tongue Cult". I finally found my master folder of image sequence files for it on one of my old hard drives, and since the version I had on my Vimeo was of pretty terrible pixelated low quality visually, I re-did it yesterday. It has extensive use of Studio Artist through the whole thing. I made it by first animating the characters and scenes in Flash, against a mostly kind of muddy green background, a color I knew wasn't being used…

Read more…
2 Replies · Reply by Thor Johnson Mar 30