Displaying Multiple Objects Simultaneously with Shift Key and Manipulate Them?


OsciStudio Version: v0.6.0.38 & v0.7.0.4
Operating System: Mac os 10.14.6 & on another mac with the latest os

Hello everyone!
I’d really appreciate it if you could give me some advice if you know how to work with the processing of two images on the same layer.

I noticed that it’s possible to import multiple objects on the same layer by holding down the shift key. I’d really like to be able to apply different effects to these two images, typically rotation and offset.
I’m not sure if it’s possible, but maybe with the right live code, there could be a solution.

I always have trouble understanding what UIDs are for and how to use them.
Something that would be even better is if I could choose for the different layers to behave the same way as when importing multiple images on the same layer with the shift key held down, having a sort of blending mode between the layers like in Photoshop. But once again, I imagine that’s impossible.

All of this to realize an idea that seemed simple in theory with this software but complicated in practice.

Also, this is my first post on this forum, but I’ve been reading attentively for a while.
A Huge thanks to this community that has changed my life forever and for all its kindness,
you are the coolest! Cheers!



oho, yes… this is a huge topic in itself. i have more thoughts than work done.
at the moment you can do this:

right click anywhere and select “copy uid”.

say the uid you got was



now you can do this in the livecoding:

SLIDER_EXT(rot_y, "KD7z6V4CNMI9j43XzyDL26HKb9AFfyTO>Y");

void update(){
      rot_y = mod1(rot_y + 0.1);

press play for this to work (it uses beatgrid, that only does something while you have some timelines playing)

well, then there’s another thing, which uses the names of the shapes.

say you have a cube and a torus in your objects (eg add the cube, then shift+click on “torrus” to keep the cube)


now you can do this in a livecoding:

SHAPECALL(shape1, "cube");
SHAPECALL(shape2, "torus");

vec3 gen(float t){
    if(mod1(globals().time) < 0.5) return shape1(t);
    else return shape2(t);

also press play for this one to work. of course you could also achieve this paricular “effect” with the SLIDER_EXTs by setting the weights accordingly.

but you can also do this:

SHAPECALL(shape1, "cube");
SHAPECALL(shape2, "torus");

vec3 gen(float t){
    return blend(mix, shape1(t), shape2(t));

hope you get the idea!

p.s. je suis en train d’apprendre un peu de fraincais. pas suffisamment pour parler sûr les oscilloscopes :smiley: