Classes | Scheduling>Clocks

# AppClock : Clock : Object

Clock running on main application thread
Source: Clock.sc
See also: SystemClock, TempoClock

## Description

SystemClock is more accurate, but cannot call GUI primitives.

You will need to use the SystemClock to get accurate/musical scheduling.

See Clock for general explanation of how clocks operate.

## Class Methods

### AppClock.sched(delta, item)

The float you return specifies the delta to resched the function for. Returning nil will stop the task from being rescheduled.

    (
    AppClock.sched(0.0,{ arg time;
        ["AppClock has been playing for ",time].postln;
        rrand(0.1,0.9);
    });
    )

    (
    AppClock.sched(2.0,{
        "2.0 seconds later".postln;
        nil;
    });
    )

### AppClock.clear

Clear the AppClock's scheduler to stop it.

    AppClock.clear;

### AppClock.play(task)

From superclass: Clock

The Routine (or Task) yields a float value indicating the delta (secs) for the AppClock to wait until resuming the Routine.

    (
    var w, r;
    w = Window.new("trem", Rect(512, 256, 360, 130));
    w.front;
    r = Routine({ arg appClockTime;
        ["AppClock has been playing for secs:",appClockTime].postln;
        60.do({ arg i;
            0.05.yield;
            w.bounds = w.bounds.moveBy(10.rand2, 10.rand2);
            w.alpha = cos(i*0.1pi)*0.5+0.5;
        });
        1.yield;
        w.close;
    });
    AppClock.play(r);
    )

### AppClock.tick

AppClock.tick is called periodically by the SuperCollider language interpreter. This updates the Scheduler and causes any scheduled tasks to be executed. You should never call this method yourself.

### Inherited class methods

## Instance Methods

### Inherited instance methods

helpfile source: /Applications/SuperCollider.app/Contents/Resources/HelpSource/Classes/AppClock.schelp
link::Classes/AppClock::