Audio-Video : First second try

Hi there.
I’ve made a little experimental piece with some lovely FOSS.

Maybe some of you will like it :slight_smile:

01_First second try
by Cambouis Quantique

Almost Live coded clip.
75% open source

Audio :
Composed with Sonic-Pi : https://sonic-pi.net
Mastering : https://www.positivegrid.com/finaltouch/
Video :
Generated with Processing 3 : https://processing.org
Montage : https://www.openshot.org
Photo credit :
Photo by Maksim Shutov on Unsplash
Photo by Mitchell Luo on Unsplash
Photo by Eriks Abzinovs on Unsplash
Photo by Alan Scales on Unsplash
#Sonic-Pi #Processing #Openshot #cambouis-quantique #live-code

2 Likes

Very cool! I’d love to see the code for this, esp the Processing code.

Did you use Processing rather than p5js? Which library for generating the visuals?

1 Like

Thanks Birv2 :slight_smile:
This is the processing code, just copy/paste save the sketche and save some pictures in its folder (dont forget to change the picture path within the code).

// 01_First second try
//
PImage[] mesImages = new PImage[3]; // I use 3 pictures
PImage morceau, monFond ;
int monFrameRate = 8; // My piece is 120 bpm so i can use an ‘easy’ number
// totalframe to stop rendering @ Minutes of 8 frames/second
int totalFrames = 360monFrameRate; // 3x60 secondes * images secondes
void setup(){
size (1920,1080);
frameRate(monFrameRate);
// this the background
monFond = loadImage(“mitchell-luo-U9EWuhUzgs0-unsplash.jpg”);
image(monFond, 0,0);

// change these to your pictures
mesImages[0] = loadImage(“eriks-abzinovs-sZO_aniGp6U-unsplash.jpg”);
mesImages[1] = loadImage(“alan-scales-1_WMZARl81c-unsplash.jpg”);
mesImages[2] = loadImage(“maksim-shutov-1sD1i64ZmvY-unsplash.jpg”);

}

void draw(){
int tailleX = (int) random(0,256);
int tailleY = (int) random(0,256);
int randomImage = (int) random(0,3);
int monX = (int) random(0,mesImages[randomImage].width);
int monY = (int) random(0,mesImages[randomImage].height);
morceau = mesImages[randomImage].get(monX,monY,tailleX,tailleY);

morceau.filter(POSTERIZE,2);
image(morceau, random(0,width),random(0,height));

// uncomment next line to save images
//saveFrame(“rendu/monImage_#####.png”);

if (frameCount>totalFrames){
noLoop(); // Stop rendering when we have enough frames
}

}

Thanks for sharing! So the pix are generated every so many frames?

I thought perhaps you were using in SP to generate visuals with Processing.

Very nice visuals, btw!

1 Like

Thanks,
Yep every frame is rendered with 8 ips goals. But its a bit slow to render.
Maybe i’m doing something wrong or i should try with openframework instead.

I could use some osc ways to make something smarter, but i didn’t, i think that i will try something soon or later :slight_smile:
I’ve already made a few test, it worked.
and btw maybe this post (from someone else) in processing forum will interest you :slight_smile: :
https://discourse.processing.org/t/with-sonic-pi-and-osc/10079

1 Like