#repost from loopy pro forum
processor shader/transform/rotate, move, scale
i'd like to change the script so that even in largest scale, the input(image) x and y will make the image completely leave the screen. like x, y changing relative to scale.
you know what i mean?
@giku
Comments
Load the project, fold Processor Shader and save it as a preset.
It’s about the order of operations. Here, we scale the coordinates first and then move them (so the move gets scaled). You’ll notice the difference when you change the order of the XY Transform modules by dragging them.
This can be coded, but I thought it's more interesting to show how to construct shaders in a modular way.
btw. adding this preset for the upcoming update
@wowo
Look in the Processor shader presets under Transform and you will see
a selection of presets for Move x/y and Scale that will be able to create the effect you want.
Edit.
I see your question has been answered properly.
Enjoy.
cool! that's working.
thank you very much @giku
thanks @gravitas
Pre-purchase at the moment hence why asking a question which might be obvious post purchase.
Is it possible to import your own Masks? If so, what format are they - svg images? If not, is it going to be possible? @giku?
You can load image: png, jpg in image module. Image module outputs texture that can directly per-pixel modulate any visual param, color, mix amount, distortion etc..
(In Drambo, Visual Mask is a module that generates a V signal - a value for each pixel. Some mask presets read this signal from a texture input. Many configurations are possible, so it is best to describe your specific use case.)
Thanks for responding @giku. As I said, I’m pre-purchase at the moment so I don’t have a specific use case yet.
This question about Masks was prompted by watching Ben’s video and seeing the Mask module, seen here in grab from the video.
So, I was referring to the drop down options here, where Grid is currently selected. Can the options contained in this drop down be added to with the user’s own bespoke masks? If so, what format is required?
This drop down shows regular Drambo presets, they are code based, you can add your own, they are 100% generative. If you want a custom shape/image you just use an Image module and load png, jpg, gif...
Content and generative are 2 separate library groups.
Ah, cool, that makes sense. So, you can’t use, say, the alpha of a custom image (jpg, png etc.) as a mask to manipulate other things in the way this Mask module does, correct?
I’m trying to work out how much of a ‘hand drawn/hand made’ feeling I’d be able to bring in either via import or directly. I can see I’m just going to need to buy it and experiment rather than trying to explain here!
Thanks for taking the time to help @giku, really appreciate it.
"So, you can’t use, say, the alpha of a custom image (jpg, png etc.) as a mask to manipulate other things in the way this Mask module does, correct?" no
You can use Image or video like a Mask... Texture output can per-pixel modulate shader kit params (even distort time in time modules).
If you need speciffic channel , use Mask/Texture reader preset.
Okay, cool, thanks again for clarifying @giku. Going to buy it and check it out! Cheers.
Having played around a little I’m extremely impressed - fantastic work @giku!
Two things immediately occur to me though.
1) It feels awkward to be limited to having the Projector below the track modules. it means you’re likely blocking the Projector slightly as you’re changing parameters on the modules. I wonder whether it’d be possible to have an option to display the Projector above the track modules to avoid this?
2) It seems like a missed opportunity for modules/presets which have a Speed parameter to not have the inbuilt option to sync the speed to increments of the current tempo? I know things can be modulated but wouldn’t it be useful if, for example, the speed of Ripples could have the option to be synced? The same way as LFOs can be synced or not.
Doesn't the floating projector window work for you?
The problem with Speed is that every shader uses it differently, some shaders don't even follow speed in a linear fashion. You can, however, totally build your own that does follow bpm. Check out the "Rhythm Blocks 4" Shader preset for example. It uses data.beatTime and fract() to make it repeat within a 0..1 range.
Another way would be to use the Time signal or the Transport TIme module to modulate speed, and if required, use the Quantize module and Subtract to extract the fractional number.
Thanks for the sync workarounds @rs2000. If it’s technically not possible to hardwire in sync options then that’s completely fine of course but given the nature of what Visual is - a visual playground within a music making app therefore likely to be used primarily for making visuals for music - it seems to me that sync options should be available wherever possible. If that’s already the case, cool; if not, I think it should be considered. The animation app Looom, for example, has bpm as a timing option and it really makes a difference.
As to the floating projector window, no, I’m afraid that’s what I was referring to. Yes, it can be freely moved and resized but it’s always going to be below or on top of the track modules, it can’t be positioned so that it’s above the modules where you could manipulate parameters without obscuring your view of it. Admittedly there’s a sort of workaround by using the Mixer view (not sure if that’s what it’s referred to as) where you can scroll the track/modules down and have a small floating projector window above it but it’s not the most convenient thing to have to do.
I think this is something that should be seriously considered - it can’t be assumed that the design decisions made for a music making app are going to work just as well for a visual art making app environment and here is a case in point. It’s not the end of the world of course but it just feels a bit awkward and lacking the elegance I expect from Drambo.
I’m not necessarily suggesting a wholesale ability to resize the top section down as the bottom two sections have (though maybe the ability to create an empty area above the track modules which could be used, not just for the projector, but also for floating AU windows without obscuring the modules could actually be useful in all circumstances not just the Visual arena?) but some solution is required in my opinion. Hopefully @giku will take this feedback on board.
Thanks,
It depends on preset.. A lot of them have separate Time knob input, that may be modulated by sequencer timeline, especially in Shader Kit modules. Also Time Modulator module in Shader Kit has tempo synchronized presets.
@Robin
A suggestion.
Try using automation and/or modulating the knobs using Morph modules and LFO's.
That's how I created the movement in this piece.
Assign a Morph knob to whatever combination of parameters that
you want to automate and then simply draw in the automation or send an LFO into the Morph knob's input.
@Robin Not sure what you mean by "obscuring" - Would multi-track view with an empty track on top, making room for the projector window, help?
I think what @Robin really wants is an attached projector on top, not hiding any of the remaining ui
It’s not a bad idea, but I can totally live without it. There’s always the option of an external display
With the current setup, if you manipulate the module parameters, you are almost certainly going to be partially obscuring your view of the Projector with your hand/arm (unless you’re using with a mouse) because you are reaching over the Projector to the modules at the top. This will be more or less of a problem depending on device screen size - those with bigger screens might not realize it’s an issue even?
Yes, I think that’s the same workaround I mentioned but I called the multitrack view the mixer view!
This is gonna be adressed - embedded projector over tracks view.
Yes, that is the sort of thing I’m suggesting - a button/toggle which would attach the projector at the top.
I would though like to point out that there definitely isn’t always the option of an external display for everyone.
That’s amazing, I’m so pleased to hear that. Thank you very much @giku, cheers.
Many thanks for the tips @gravitas, really appreciate it. Cheers.
I hope it's the beginning, the todo list is big.... but all depends on sales
No problem.
It's definitely the beginning.
It's absolutely amazing.
We have Music and Visuals all in one app and what makes it unique is that everything is modular.
Instead of trawling forever through third party apps we can simply create it ourselves and there's always going to be the to do list. ;)
Well, it’s an extremely promising beginning. Lots of things I can think of that could be added -hand drawn elements for example (I hope something in Visual will utilize the Apple Pencil eventually?) - hopefully they’re all on that list!
I sincerely hope there are enough sales for you to justify implementing everything you want to. Cheers.
@giku Apologies if I’m wrong but I think there might be a mistake in Visual Rack Tutorials number 05.
It says ‘Turn the RGBA knob’ - there is no knob labeled RGBA, I assume it means the Alpha knob? If so, give beginners a chance and say ‘Turn the Alpha knob’.
More of a problem - unless I’m just misunderstanding - is that the Shader>Scale modulation is set to zero when the tutorial initial loads so turning the Alpha knob actually does nothing (unless the user thinks to adjust the modulation level which they are not instructed to do). This is guaranteed to confuse.
@Robin the RGBA Knob is the “Shader” knob modulating the scale of the checkerboard shader. It ends up being named Shader but it’s the lower output of the 1st shader (shaders have individual R G B outputs and RGBA which when used for modulation, gets to act like a mask as summing R G B becomes a grey scale version of its output)
Yes, it's the main output. It takes brightness when modulating another param.
Ah, okay, I see. That explains both ‘problems’ then. Many thanks @pedro and @giku.
Might be worth considering how this could be confusing to someone with no knowledge though…to use a name in the description (albeit technically correct) which isn’t actually seen in the actual interface seen in the tutorial?