• Home
  • Documentation
  • Forum
  • Blog
  • Users
    • Map
    • Userlist
    • Businesses
    • Userpages
    • Connections
  • Contributions
    • All
    • Store
  • Downloads
    • vvvv beta
    • vvvv beta previews
  • Store

    Show / Hide Table of Contents

    vvvv-Patchbox

    Author: velcrome
    Date: 16 Sep, 2015
    Category: tool
    Credits:

    sagashi, beyon, rmueller, velcrome, catweasel, reaktant, sebl, sebescudie, seltzdesign

    Download

    64bit

    5-vvvv-Patchbox.zip
    22 Feb, 2018 - 17:38
    1.31
    4-vvvv-Patchbox.zip
    22 Feb, 2018 - 17:32
    1.3
    3-vvvv-Patchbox.7z
    22 Sep, 2015 - 09:14
    1.21
    2-vvvv-Patchbox.7z
    21 Sep, 2015 - 14:48
    1.2
    1-vvvv-Patchbox.7z
    17 Sep, 2015 - 14:27
    1.1
    0-vvvv-Patchbox.7z
    16 Sep, 2015 - 16:19
    1.0

    Description

    This toolset gives you some additional capabilities to patch with great speed.

    Yes, thats right: it improves your thought-to-patch-ratio by over 9000!

    Install

    Download, place somewhere on disk (e.g. the girlpower folder of your vvvv). Drag'n'Drop into your root.v4p (can be opened with Alt+R while running vvvv) and save.

    Usage

    There are seven things available right now:

    Node Creation

    Patchlet

    Retrieve the contents from a patch (e.g. mainloop.v4p) and paste it at the mouse position by typing:

    make mainloop

    Other prefab patchlets are in the /Patchlet folder, like tty or render9 Add your own.

    Operandomatic

    Doubleclick somewhere and type something like

    @1 (to create a GetSlice with a preset index of 1) +-1 (to create a + with a preset second operand of -1) i5 (to create an I with a running length of 5) etc.

    IOBox

    IOScaler

    Hold down the right mouse button while resizing an IOBox to fit the font size accordingly.

    While scaling or moving an IOBox you can use the mouse wheel to add rows and columns to the iobox.

    IOType

    While scaling or moving an IOBox (Value Advanced) you can hit i, b or f to change the Value Type (Integer, Boolean or Real aka Float)

    MagicIO

    Doubleclick somewhere and type something like

    io4x4 (to create a four-by-four iobox matrix of values) string5 (to create a iobox list of 5 strings) enum1x3 (to create a horizontal list of 3 enums) press3x2 (to create a two-by-three iobox matrix of booleans, preconfigured to be pressed) etc.

    Patch

    Commander

    Hold Alt+Space to hide your current patch window. Releasing the shortcut will force the window to redraw, so you can simply make any gui glitch disappear.

    Use Alt+Left/Right to move your current patch window in a similar manner as you are used from other windows with the Win+Left/Right shortcuts. The code to do so is modularized, you can make your own layout just as easily.

    SnapToGrid

    Hold down Space while moving/resizing nodes or ioboxes to make them snap to an invisible grid.

    Remarks

    While the original patches of many contributors were quite diverse in their approach (plugins, regex, in-string-replacements and whatnot) I took the liberty of homogenizing them towards XElement/XPath usage and modularizing them, so they can be combined and extended more easily. I hope some of the mechanics can make VL a better GUI.

    More helpers can be integrated (like project statistics, an exporter, a in-patch git prompt or whatever you come up with) to increase project productivity. Choose active Improvements as you wish, there is no harm in disabling some.

    Feel free to clone and pullrequest your feature into the code.

    Comments

    Comments are no longer accepted.
    Please create a new topic in the vvvv beta forum to discuss this contribution.
    velcrome
    16 Sep, 2015 - 16:31

    Reserving first post for dev notice:

    Downloaders and potential users, don't let yourself be fooled by the following thread. This contrib will continue to strive to be safe to use. Discussion will occur about details, which is in your favour because code quality will increase eventually.

    To the devvvvs and listening devs:

    While coding this, I found some things that are unclear to me.

    • How can I get the current units/pixel number? I guess this depends on windows' dpi settings. Can this be added to the ScreenInfo plugin? (Could be useful for hi-jacked drm tv screens as well)

    • How can I get the actual node reference for a certain open patch? In this contrib resizing and moving a patch is done on the patch definition itself, but at times it might be wiser to do it on the instanced node instead.

    • How can I get the fully qualified path of a selected node (i.e. 12/3/9/214)?

    • When is the change of SetPatch (or from the plugin interface, for that matter) incorporated? Will it do so instantly, or will it buffer it till the next buildgraph event?

    microdee
    16 Sep, 2015 - 19:02

    nice one! it will be superuseful. I found a problem though that every comment starting with 'i' will be treated as an I node. I fixed it with changing to capital "I" and making regex and sift case sensitive also the searching pattern more strict. So currently a comment like "identification" will be converted to an I node or "+blabla" will be converted to + node. i suggest using this pattern

    ```\|?(<\+-\/%*@=<>I>)(\s?-?\d+<,\.>?\d*?)\|?$
    ^
    
    which allows one space, one dash and at least one or more numbers broken into half with , or . only once. If anything follows after this it won't match so "I -44.56.345" won't match
    
    reaktant
    16 Sep, 2015 - 20:36

    hey velcrome,

    have a look at ioscaler, maybe you want to include it.

    and here is a half working snap-nodes-to-grid. not really fun to use so far.

    i also made a gui redrawer, but yours seems simpler.

    cool idea to make this modular.

    velcrome
    16 Sep, 2015 - 21:07

    @microdee

    i think i'll settle for

    
    
    ```\|?(\+|-|\*|\/|%|@|=|<|>|i)(\s?<-+>?<0-9>*\.?<0-9>*)+(.*)\|?$
     
          symbol                | value                   | remainder
    ^
    
    edit: I expanded this to allow presetting up to four Values (so you can preset any 2d, 3d or 4d vector). Simply separate by comma or space. 
    Also note that those are now symbols, so you can add any keyword as a placeholder if you want to have more nodes at your fingertips.
    
    i wonder, if we should have a special prefix to be able to call patch macros like that. i.e. column **" : "** could be a nice way to distinguish inline "Node Browser" or an intended comment from the much different "**:**make shit" aka The Mighty Inline Command-prompt to trigger a certain generator patch. 
    
    @[reaktant](http://vvvv.org/users/reaktant)
    those are neat patches. I like!  
    
    @[bjoern](http://vvvv.org/users/bjoern)
    sorry for trying to hijack ze column
    
    velcrome
    17 Sep, 2015 - 14:34

    @reaktant

    I added your patches after some cleanup. Selecting multiple nodes is now perfectly possible.

    reaktant
    17 Sep, 2015 - 16:53

    @velcrome

    great!

    makes sense to just leave the mouse node away.

    • the ioscaler help should be updated with your changes to Alt key and multiple nodes.
    • the description at "More helpers can be integrated (like a grid snap..."
    velcrome
    21 Sep, 2015 - 15:09

    OK, i have now fiddled with this stuff for a week and added almost everything that we've been missing. There are a bunch of nice modules now that might help you to make even cooler additions to the GUI.

    Iirc the Patchlet Manager was an idea sketch of @Kalle waaay back, and it finally arrived to vvvv. It uses the hack from @sagashi, that a fresh comment can be interpreted as some kind of command prompt. Simply doubleclick and type:

    make render9
    

    and hit enter, Patchbox will automatically load and insert the contents of the patchlet render9.v4p

    Also the possibilities to preconfigure an IOBox without Herr Inspektor are now quite compelling: font size, row- and column-count, and Value Type can be configured directly, with mouse + Alt and simple keystrokes. See help patches of IOScaler and IOType for details.

    Please test.

    eps
    21 Sep, 2015 - 23:56

    which beta is required to run this? 34.1 is ok, on 33.7 only half works (e.g. no ioscaler) any chance to make it work on 33?

    velcrome
    22 Sep, 2015 - 09:17

    There seems to have been a change in the Zip nodes, the 34.x are much more forgiving with null-elements and nil. Anyway, I made it work in both versions. Have fun.

    indaehwang
    04 Oct, 2015 - 09:29

    This modules/Patchlet needs to be included in the next beta of VVVV.

    idab
    14 Oct, 2015 - 10:13

    @velcrome: thanks, superuseful! Here MagicIO string and enum don't work. These 2 commands create always IO value nodes. Using b34.1x64.

    velcrome
    14 Oct, 2015 - 13:53

    confirmed. there was a link missing. bugfix is on github

    idab
    14 Oct, 2015 - 15:47

    @velcrome: perfect! ;)

    rrrr
    15 Oct, 2015 - 13:49

    thank you! if possible, could you please add the ability to hide a patch window by right clicking its title bar?

    Martin Zrcek
    19 Oct, 2015 - 12:15

    Nice! But guys mind it takes some CPU, of course. For example frames drop from 28 to 24, could be problem on stage. Maybe something like http://upload.martinzrcek.cz/Patchbox%20(VVVV).v4p to enable only when potentially used? and a tip: Toggle Bang Press instead of Boolean?

    Carlos Mononoke
    10 Nov, 2015 - 11:26

    So Usefull this tool, Thanks guys!!!!

    blausand
    03 Oct, 2016 - 18:44

    Yes, indeed some welcome shortcuts. Due to its runtime footprint it seems worth some optimisation. Quite some of it i'd even wish to be native.

    Unfortunately, one thing makes it unusable for me: Some errors spam my TTY when i resize a node:

    00:30:41  *  : Verweis auf die nicht deklarierte Entität 'cr'. Zeile 1, Position 674.
    00:31:26  *  : XPath : -1072898046 on line 132:116 >>> Verweis auf eine nicht definierte Entität 'cr'.
    

    I tried to track it down, but it seems to be deep in XPath, right?

    velcrome
    05 Oct, 2016 - 22:44

    Yes, that's from xpath. I think there is a schema or something missing, not entirely sure. Does checking Resolve Externals help?

    seltzdesign
    10 Jan, 2018 - 13:16

    Really cool tool, wish I came across this earlier. Commander is nice but a bit buggy - too easy to end up with a tiny window, for example if you just tap space, thats your window gone. Or if you let go Alt before Space same thing. This should be more reliable, ie. if you have pressed down Alt and Space together it should revert if you let either of them go (problem is the AND node).

    seltzdesign
    10 Jan, 2018 - 13:38

    Quick fix for Hide(VVVV).v4p. Now it brings back the window even if you let go of Alt before Space or just tap Space quickly:

    Also would be nice to have a S+H(Patch) node, so it doesn't resize the wrong window if you click on it while holding Alt+Space.

    https://www.dropbox.com/s/dzhrbvc0mpk5y57/Hide%20%28VVVV%29.v4p?dl=0

    seltzdesign
    10 Jan, 2018 - 14:16

    Also in IOMagic.v4p there is a connection missing, which prevents being able to create anything other than IOBox (Value Advanced). This is the missing connection:

    velcrome
    10 Jan, 2018 - 20:51

    Looks good.

    I am traveling till February, so feel free to upload a new version with your fixes.

    If you want, you can also PR my GitHub repo.

    sunep
    18 Jan, 2018 - 10:00

    Could this end up in the addonpack? I am reluctant to use it since I work on multiple installations and would like to have to do as little as possible when making a new vvvv install.

    velcrome
    22 Feb, 2018 - 17:25

    i'd be okay with that (as is the license, anyway), so you just need to convince the addonpack maintainers

    velcrome
    22 Feb, 2018 - 17:41

    thanks seltzdesign for the fix of the Hide module and the reminder to publish a current version.

    • Improve this Doc

    © 2020 by vvvv group. Imprint | Privacy Policy.
    Thanks to DocFX for building this website. Analytics by Plausible.

    Back to top