05
Jul
08

Very Useful Things: Structs, Spooky Patch

I know I’ve mentioned structures before, but using a simple chunk of JavaScript to roll a load of controls into a single structure is a great way of mitigating cable spaghetti.

In the example above, I’ve connected the struct, to a Kineme Spooky Send patch, which can be used to eliminate cabling between macros completely, allowing you to ‘wirelessly’ transmit any kind of information QC can deal with (including structures) from any part of a QTZ to any other part. It even works between separate QTZs embedded in the same application, apparently.

This is a very useful too for ‘modularising’ your QTZs. For example, I’m currently working on a generalised set of macros for creating the ‘pseudospreads’ compositions. I’ve used Spooky Send and Receive patches to send control values between the macro containing the controls of the mesh instances and the one containing the meshes themselves. I’ve also added range ports to the control macro, so it can be tweaked to fit different surface formulas.

Incidentally, the eagle-eyed may have spotted that the order of items in the structure pictured above is pretty random. This is a potentially very annoying feature of structs created with JavaScript (an maybe generally, I’m not sure). Fortunately, it’s quite easy to use the Structure Sort patch to sort them into the correct order. In this case, though, it’s not really necessary, as I’m using the item key (name) to extract the relevant value anyway.

Advertisements

11 Responses to “Very Useful Things: Structs, Spooky Patch”


  1. 1 Steve Sullivan
    March 11, 2009 at 3:43 am

    Could you explain in more detail how the spooky patch works. It seems like it packs multilple structures into a package then unpacks to stuctures and routes them to the proper inputs. Is this correct?

    • 2 toneburst
      March 12, 2009 at 8:23 am

      Hi Steve,

      sorry for the delayed reply.
      The Spooky Patches are a pair of 3rd-party plugins from Kineme. The basic idea is that you can feed any kind of QC data into the input of a Spooky Send, then that data can be received somewhere else ‘wirelessly’ by a Spooky Receive patch. It even works for sending data between different QTZs embedded in the same application, apparently (though I’ve never tried that myself).

      See
      http://kineme.net/QuartzComposerPatches/SpookyPatch/0.2
      for more info.

      I used JavaScript patches to pack lots of control signals together into a single structure, then Structure Index Member and Structure Key Member patches to unpack them again.

      Hope this clears things up a bit.

      a|x

  2. 3 Steve Sullivan
    March 13, 2009 at 1:36 am

    Thanks for the reply. Your explanation does help. I have read & downloaded the spooky patches. They seem very helpful although I’m not quite sure how to work them into the data pipeline. Would you mind posting a picture so I can see how they are used in a QC composition. This might help me to get the idea on how to incorporate these into my data pipelines.

    Thanks,
    Steve

    • 4 toneburst
      March 13, 2009 at 11:52 am

      I don’t have any pictures that would help illustrate how it work, really. Your best bet is to just try it, and see for yourself.

      a\x

  3. 5 Steve Sullivan
    March 13, 2009 at 10:04 pm

    Ok. I’ll try it myself to see what I can come up with. Thanks

  4. 6 Steve Sullivan
    March 13, 2009 at 10:09 pm

    One more question if you don’t mind. What kind of javascript do you use to pack the control signals into a single structure.

  5. 7 toneburst
    March 13, 2009 at 10:46 pm

    Hi again Steve.

    Have a look at this post
    https://machinesdontcare.wordpress.com/2008/07/10/controls-structures-demo-qtz/

    There’s a QTZ file to download in the Box.net widget on the right of this page. It’s called

    ‘JSStructureDemo’

    That should answer your question, hopefully.

    a|x

  6. 8 Steve Sullivan
    March 14, 2009 at 1:36 am

    I downloaded and opened the ‘JSStructureDemo’ and opened it in QC. It looks like its what I’m looking for but I get a javascript parse error on line 2. Any idea what this could be?

  7. 9 toneburst
    March 14, 2009 at 9:48 am

    Strange. I works fine for me.

    a|x

  8. 10 Steve Sullivan
    March 14, 2009 at 2:45 pm

    Ok. I’ll work with it to see what I can do. Thanks so much for your help. I think this can really be useful.

    Steve

    • 11 toneburst
      March 16, 2009 at 12:16 pm

      It’s mostly useful if you have a lot of identical macros that need to have the same control inputs- say, if you’re trying to use distinct macros to recreate something you’d usually use an Iterator for. On a couple of occasions, I’ve found myself doing this, because I get better performance by eliminating the Iterator altogether, but having 128 (for example) macros, each with several control-inputs, became unmanageable quite quickly.

      a|x


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Twitter

July 2008
M T W T F S S
« Jun   Aug »
 123456
78910111213
14151617181920
21222324252627
28293031  

Links

Blog Stats

  • 472,055 hits

%d bloggers like this: