class:: Ball
summary:: physical model of bouncing object
categories:: UGens>Filters>Nonlinear, UGens>Generators>PhysicalModels
related:: Classes/TBall, Classes/Spring

Description::
Ball models the path of a bouncing object that is reflected by a vibrating surface.

classmethods::
private:: categories

method:: ar, kr

argument::in
modulated surface level

argument::g
gravity

argument::damp
damping on impact

argument::friction
proximity from which on attraction to surface starts

examples::
mouse x controls switch of level:
code::
(
{
	var f, sf;
	sf = K2A.ar(MouseX.kr > 0.5) > 0;
	f = Ball.ar(sf, MouseY.kr(0.01, 20, 1), 0.01);
	f = f * 10 + 500;
	SinOsc.ar(f, 0, 0.2)
}.play;
)
::

mouse x controls modulation rate, mouse y controls gravity:
code::
(
{
	var f, sf, g;
	sf = LFNoise0.ar(MouseX.kr(1, 100, 1));
	g = MouseY.kr(0.1, 10, 1);
	f = Ball.ar(sf, g, 0.01, 0.01);
	f = f * 140 + 500;
	SinOsc.ar(f, 0, 0.2)
}.play;
)
::

the general german police choir. mouse x controls damping, mouse y controls gravity:
code::
(
{
	var f, sf, g;
	sf = LFPulse.ar(0.6, 0.2, 0.5);
	g = MouseY.kr(0.1, 10, 1);
	d = MouseX.kr(0.0001, 1, 1);
	f = Ball.ar(sf, g, d);
	f = f * 140 + 400;
	SinOsc.ar(f, 0, 0.2)
}.play;
)
::

