New Plugin For Ableton! Lighting , in development

Discuss music production with Ableton Live.
hambone1
Posts: 5346
Joined: Fri Feb 04, 2005 8:31 pm
Location: Abu Dhabi

Post by hambone1 » Fri Mar 28, 2008 3:06 pm

Moody wrote:
Any video available of this in action? Sounds Slick!
Will definitely get some soon. Seem to always be too busy!

Coupe70
Posts: 1100
Joined: Fri Jul 23, 2004 7:25 am
Location: Mainz / Germany
Contact:

Post by Coupe70 » Fri Mar 28, 2008 7:28 pm

hambone1 wrote:
Coupe70 wrote:
hambone1 wrote:could you explain how you do this with an example ?
i remember trying all this drag-in-and-drop-out-stuff
but i didn´t get very far...
Drag the entire rectangle of MIDI clips back to the browser to make a single Live clip that you can drag back in.

I use two typewriter keyboards to sequence the video and lighting. It's a matter of keymapping Live super-clip scenes to the keys, then recording the lighting/video sequence while listening to the song,
thanks hambone, that already helps a lot.
just some more questions:

do you have made these simple clips (fades, ...) for EVERY midi cc ?

what does your session look like when you "drag entire rectangle of MIDI clips back to the browser" ? i can´t really imagine that...

and you said two typewriter keyboards (with different Caps Lock settings ?). so you are on a mac ?
Phongemeinschaft (Live-ElectroJazz / NuJazz)
Homepage - youtube - Like! :-)
Live 9 (32Bit), HP DV7, i5 2,53GHz, 8 GB RAM, Win7 (64Bit)

Khazul
Posts: 3185
Joined: Wed Feb 23, 2005 5:19 pm
Location: Reading, UK

Post by Khazul » Fri Mar 28, 2008 7:37 pm

ham - what are you using to manage video fx?

Sounds like your already pretty well sorted. I guess thats the case with alot of us who know the technology well and have the means to sort outselves out - already done something to suit what we need and its well enough tuned such that no off the shelf tool set is ever going come close anytime soon.

There alot of people who have doen some really cool stuff in max/msp for lighting.

Ive tried midi to DMX - personally I was never impressed with it - but thats maybe because of the kind of fixtures Im using and the kind of control I would to apply to them, so I quickly hacked up some plugins for various apps to extract midi and analyse audio and pass event data to another application that does all the lighting control on the same or another computer - not very noob friendly, but works great for me - same kind of thing - drive it from a library of clips in Live mostly and hardly use the audio analyser I wrote - itts sometimes useful for DJing random stuff and if feeling lazy, but I mostly prefer to sequence it all.
Nothing to see here - move along!

hambone1
Posts: 5346
Joined: Fri Feb 04, 2005 8:31 pm
Location: Abu Dhabi

Post by hambone1 » Fri Mar 28, 2008 8:01 pm

Audio is on an MBP and Yamaha 01v, with control by a BCR2000, Yamaha DD55C to play Impulse percussion/FX ,and FCB1010 to select Impulse patches, set surround send levels, control master tempo while drumming, and launch scenes. A Faderfox LX2 goes through the MBP to Live on the G5, which is doing lighting, Arkaos VJ video, and camera control.

Cameras are controlled on a PC with Sony VISCA software, with Live MIDI (Faderfox buttons or Live MIDI sequences) going to the cameras from the G5.

The master lighting, video and camera track is on the MBP along with the audio. It's MIDIed to Live on the G5, and Arkaos is IACed from Live (I found ReWire to be unreliable). There's a Mac Mini running the G-Force visualizer (with audio coming from an 01v aux send), and it's piped into the G5 along with the two remote pan/tilt/zoom cameras. Basically, the video/lighting/track on the MBP and/or the Faderfox buttons fire video/lighting/camera scenes on the G5, which has three nested IAC levels for control of lighting, video, and camera 'subroutines'.

There's so much that could go wrong, but doesn't. It amazes me every time it works! I initially had a problem with the G5 dropping sync, but when I used two MIDI ports (one for sync, the other for MIDI data), it stopped dropping.

hambone1
Posts: 5346
Joined: Fri Feb 04, 2005 8:31 pm
Location: Abu Dhabi

Post by hambone1 » Fri Mar 28, 2008 8:12 pm

Coupe70 wrote: do you have made these simple clips (fades, ...) for EVERY midi cc ?

what does your session look like when you "drag entire rectangle of MIDI clips back to the browser" ? i can´t really imagine that...

and you said two typewriter keyboards (with different Caps Lock settings ?). so you are on a mac ?
Yes, you need MIDI clips for each CC. But it's quick to copy and paste from one to another. My Live browser has folders of clips for each CC. It's tedious, but you only have to do it once. I have a separate Live track for each CC, so it's easy to keep it organized.

Session view is fine when dragging big blocks of MIDI clips to the browser. The video sometimes lags, but just drag n drop, and wait a few seconds for Live to catch up.

Yep... on a Mac. I use three keyboards sometimes (one lower case, one with caps lock on, one with the alt key taped down). It gives you access to over 100 key mappings, and as I can type quickly and I'm piano-key illiterate, it works for me!

Hope that helps!

ava
Posts: 406
Joined: Wed Sep 05, 2007 9:47 am
Location: Bristol, England, UK

Post by ava » Mon Apr 07, 2008 12:27 pm

Image

Image

Image

Weve spent the last week spending time on the video side of things and have came up with a plugin system like vst but for video effects.
Can do anything with the video effects, 2d, 3d, spin objects to the music, apply effects to video on any surface and anything else can think of (even games can be made using midi controller for control. Pong anyone?)

Heres an example of code for a plugin (first video screenshot above)

Code: Select all

#include "StarsAVAActor.h"

const	GLuint num=50;						// Number Of Stars To Draw
GLfloat	zoom=-30.0f;						// Viewing Distance Away From Stars
GLfloat tilt=90.0f;						// Tilt The View
GLfloat	spin;							// Spin Twinkling Stars
GLuint	loop;							// General Loop Variable

typedef struct							// Create A Structure For Star
{
	int r, g, b;						// Stars Color
	GLfloat dist;						// Stars Distance From Center
	GLfloat angle;						// Stars Current Angle
}
stars;								// Structures Name Is Stars
stars star[num];

AVAActor* createPluginInstance (actorMasterCallback callback)
{
	return new StarsAVAActor (callback);
}

StarsAVAActor::StarsAVAActor (actorMasterCallback callback)
: AVAActor (callback)
{}

StarsAVAActor::~StarsAVAActor ()
{
}

AVAInt32 StarsAVAActor::setActorParameter (AVAInt32 index, float value)
{
	switch (index)
	{
	case 0: xpos = value; break;
	case 1: ypos = value; break;
	case 2: zpos = value; break;
	case 3: xrot = value; break;
	case 4: yrot = value; break;
	case 5: zrot = value; break;
	}

	return 1;
}

AVAInt32 StarsAVAActor::InitActor()
{
	for (loop=0; loop<num; loop++)				// Create A Loop That Goes Through All The Stars
	{
		star[loop].angle=0.0f;				// Start All The Stars At Angle Zero
		star[loop].dist=(float(loop)/num)*5.0f;		// Calculate Distance From The Center
		star[loop].r=rand()%256;			// Give star[loop] A Random Red Intensity
		star[loop].g=rand()%256;			// Give star[loop] A Random Green Intensity
		star[loop].b=rand()%256;			// Give star[loop] A Random Blue Intensity
	}
	return 1;
}


AVAInt32 StarsAVAActor::UpdateActor(AVAInt32 samplePos)
{
      for (loop=0; loop<num; loop++)				// Loop Through All The Stars
	{
 		spin=360.f * xpos;				// Used To Spin The Stars
		star[loop].angle+=float(loop)/num;//		// Changes The Angle Of A Star
		star[loop].dist-=0.01f;				// Changes The Distance Of A Star

		if (star[loop].dist<0.0f)			// Is The Star In The Middle Yet
		{
			star[loop].dist+=5.0f;			// Move The Star 5 Units From The Center
			star[loop].r=rand()%256;		// Give It A New Red Value
			star[loop].g=rand()%256;		// Give It A New Green Value
			star[loop].b=rand()%256;		// Give It A New Blue Value
		}
	}
	
	return 1;
}

AVAInt32 StarsAVAActor::DrawActor(GLuint* textures)
{
	for (loop=0; loop<num; loop++)				// Loop Through All The Stars
	{
		glLoadIdentity();				// Reset The View Before We Draw Each Star
		glTranslatef(0.0f,0.0f,zoom * ypos);		// Zoom Into The Screen (Using The Value In 'zoom')
		glRotatef(tilt,1.0f,0.0f,0.0f);			// Tilt The View (Using The Value In 'tilt')
		glRotatef(star[loop].angle,0.0f,1.0f,0.0f);	// Rotate To The Current Stars Angle
		glTranslatef(star[loop].dist,0.0f,0.0f);	// Move Forward On The X Plane
		glRotatef(-star[loop].angle,0.0f,1.0f,0.0f);	// Cancel The Current Stars Angle
		glRotatef(-tilt,1.0f,0.0f,0.0f);		// Cancel The Screen Tilt

		glRotatef(spin,0.0f,0.0f,1.0f);			// Rotate The Star On The Z Axis
		// Assign A Color Using Bytes
		glColor4ub(star[loop].r,star[loop].g,star[loop].b,255);
		glBegin(GL_QUADS);				// Begin Drawing The Textured Quad
		glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f);
		glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,-1.0f, 0.0f);
		glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 0.0f);
		glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 0.0f);
		glEnd();					// Done Drawing The Textured Quad
	}

	return 1;
}

hambone1
Posts: 5346
Joined: Fri Feb 04, 2005 8:31 pm
Location: Abu Dhabi

Post by hambone1 » Mon Apr 07, 2008 2:57 pm

Now it's starting to look more interesting.

Far more useful than a bunch of flashing lights!

Machinate
Posts: 11648
Joined: Thu Jun 24, 2004 2:15 pm
Location: Denmark

Post by Machinate » Mon Apr 07, 2008 5:07 pm

ava, as a fellow developer I say this with the utmost respect;

are you aware of the term "Feature creep"? I believe this has been discussed, but aparently hasn't made friends with you yet.

http://en.wikipedia.org/wiki/Freeze_%28 ... neering%29
http://en.wikipedia.org/wiki/Software_r ... life_cycle

I feel that this would be a good point in time to draw a line in the sand, so to speak, otherwise this "near future" thing, which it has been since september '07, will very likely continue to be just that - vapour ware:

http://en.wikipedia.org/wiki/Vapour_ware

It's all fine and dandy to continue to add functionality, but that is what versioning is for - my suggestion is that you do a personal dev. branch. I'll do this:

http://en.wikipedia.org/wiki/Versioning
and http://en.wikipedia.org/wiki/Branching_%28software%29

-all the best,
Andreas.

ava
Posts: 406
Joined: Wed Sep 05, 2007 9:47 am
Location: Bristol, England, UK

Post by ava » Wed Apr 09, 2008 9:48 am

Yes, i am aware of feature creep, been programming for 25 years...

I understand "coming near future..." could mean anything.. to me that means 6 - 12 months... may be im showing my age?

The video side of things won't take much as video uses same plugins as lighting and are almost fully working, just a few bugs to fix. And as were be releasing a sdk kit for video effects that takes a lot of weight off our hands as others can produce the effects.

Regards...
Paul - AVA Main Developer.

Moody
Posts: 2115
Joined: Tue Feb 10, 2004 7:47 pm

Post by Moody » Wed Apr 09, 2008 3:45 pm

Beta testing available?
Ableton’s engineers are hard
at work developing code that will allow our software to predict the future, but we don’t
anticipate having this available until at least the next major release.

ava
Posts: 406
Joined: Wed Sep 05, 2007 9:47 am
Location: Bristol, England, UK

Post by ava » Fri Apr 11, 2008 8:52 am

Moody wrote:Beta testing available?
No, am months away. :lol:

Heres what we have so far for the 2 video decks, each deck can host up to 128 video plugins and each plugin can manipulate up to 4 videos or images. Then you use our pattern sequencer, vu Meter and fx plugins to change the plugins parameters.


Image

Image

jasefos
Posts: 534
Joined: Sun Jan 11, 2004 6:31 am
Location: Melbourne, Australia
Contact:

Post by jasefos » Fri Apr 11, 2008 9:09 pm

rikhyray wrote:
ava wrote:


Im pretty sure people don't want 100's of clips of lighting sequences needed to use a midi>dmx adaptor, people would like to automate there lighting to audio clips directly, just as they do for there audio effects, is where our solution shines through. .
EXACTLY!
I am musician first and the live aspect is the most important to me. I find Hambones ways interesting but I am not interested in 1001 premade clips, doing things live to the music is what I am interested. There are lots of VJs videoDJs, AV artists coming from graphic design,film editing , I will never reach their skills in After Effects and similar, premade stuff Why people hire me is because I play visuals like I play music, light will be great expansion/extension. preparing programming is unavoidable evil to me.
I like your ideas and cant wait to get your VST, is it out already ?

Me too - looking forward to seeing this project coming to fruition.

I've always though sound-to-light clocking systems for lighting rigs to be a compromise.

I'd LOVE to own a small rig of robotic fixtures **(so much cheaper than back in the 90s)** and gig with them ...

Better still - lasers are much nicer to gig with (assuming you have the license).

I wander if the possibility of ILDA/Pangolin interface output is being considering in addition to DMX ?

Cheers
JaseFOS

-Live10.1 |Push2|Maschinemk2|KeyLab61|LaunchPad|MCUpro|MCExt|MCExt|iPad2|TouchABLE2
-Mac Pro 5.1 (dual hex core Xeon 3.46gHz, 28Gb RAM) running MacOS 10.13.6
-Universal Audio Apollo Quad (firewire)
-SHITLOADS OF HARDWARE SYNTHS

ava
Posts: 406
Joined: Wed Sep 05, 2007 9:47 am
Location: Bristol, England, UK

Post by ava » Mon Apr 14, 2008 9:15 am

jasefos wrote:
I wander if the possibility of ILDA/Pangolin interface output is being considering in addition to DMX ?
Yes, we will be producing a plugin for ILDA capable lasers, just got to finish off what we have first.

ILDA is dmx, it's just a specific channel mapping.

ava
Posts: 406
Joined: Wed Sep 05, 2007 9:47 am
Location: Bristol, England, UK

Post by ava » Mon Apr 14, 2008 11:44 am

Image

ava
Posts: 406
Joined: Wed Sep 05, 2007 9:47 am
Location: Bristol, England, UK

Post by ava » Fri Apr 18, 2008 10:05 am

Weve completed the video crossfading/transition effect so now our app is the worlds first crossfading audio/video/lighting app. kind of cool :D

Weve designed a warp-tunnel plugin as most vj apps have one: can change the colors with our pattern sequencer and apply effects.

Were currently working on video effects using openGL shader language which means the work is done on the graphics card on not your main processor :D

Image

Post Reply