SuperCollider CLASSES

LevelIndicator

a level indicator GUI widget
Inherits from: View : QObject : Object
Subclasses: QLevelIndicator

Description

A level indicator view, suitable for use as a level or peak meter, etc.

Class Methods

Inherited class methods

Undocumented class methods

*meterServer (server)

*qtClass

Instance Methods

-value

-value = val

Get or set the current level of the view.

Arguments:

val

A Float between 0 and 1.

Returns:

-warning = val

-critical = val

Set the warning and critical thresholds. If meter value is above either threshold, -warningColor%20or%20link#-criticalColor will be shown, respectively (by default, yellow and red). If -drawsPeak is true warning color will be displayed based on -peakLevel rather than value.

Arguments:

val

A Float.

a = LevelIndicator(bounds:Rect(10, 10, 20, 160)).front;
a.value = 0.5;
a.warning = 0.6; a.critical = 0.9;
a.value = 0.7;
a.value = 0.9;

-style = val

Sets the style of the view.

Arguments:

val

An QLevelIndicatorStyle \continuous or \led (see -stepWidth)

(
w = Window().front.layout_(
    HLayout(
        LevelIndicator().style_(\continuous).value_(1/3),
        LevelIndicator().style_(\led).value_(2/3),
)
)
)

-stepWidth = val

The width of each led light, for \led.

Arguments:

val

An positive Integer.

(
w = Window().front.layout_(HLayout(
    LevelIndicator().style_(\led).value_(0.8).stepWidth_(1),
    LevelIndicator().style_(\led).value_(0.8).stepWidth_(3),
    LevelIndicator().style_(\led).value_(0.8).stepWidth_(10),
    LevelIndicator().style_(\led).value_(0.8).stepWidth_(50),
));
)

-numSteps = val

The number of steps used in \led style.

Arguments:

val

An positive Integer.

(
a = LevelIndicator(bounds:Rect(10, 10, 80, 400)).front();
a.value = 1;
a.style = \led;
a.numSteps = 4;
)

-image = image

NOTE: Not yet implemented in Qt GUI

Arguments:

image

An Image. The default image is the SC cube.

-numTicks = number

The number of ticks to display in the view's scale.

Arguments:

number

An Integer >= 0.

(
w = Window(bounds:100@400).front().background_(Color.black);
w.layout_(HLayout(
    LevelIndicator()
        .numTicks_(16)
        .value_(0.75)
))
)

-numMajorTicks = number

The number of ticks in the view's scale which will be large sized.

Arguments:

number

An Integer >= 0.

(
w = Window(bounds:100@400).front().background_(Color.black);
w.layout_(HLayout(
    LevelIndicator()
        .numMajorTicks_(16)
        .numTicks_(16)
        .value_(0.75)
))
)

-drawsPeak = bool

Determines whether the view draws a separate peak display. This can be useful for displaying both peak and RMS values. If drawsPeak is true -warning and -critical will be displayed based on -peakLevel rather than value.

Arguments:

bool

A Boolean. By default the peak is not drawn.

(
w = Window().front().layout_(HLayout(
    LevelIndicator().style_(\continuous).value_(0.75).drawsPeak_(true).peakLevel_(0.9),
    LevelIndicator().style_(\led).value_(0.75).drawsPeak_(true).peakLevel_(0.9)
))
)

-peakLevel = val

Sets the level of the peak display. (See -drawsPeak.)

Arguments:

val

A Float.

(
w = Window().front().layout_(HLayout(
    LevelIndicator().style_(\continuous).value_(0.1).drawsPeak_(true).peakLevel_(0.3),
    LevelIndicator().style_(\continuous).value_(0.1).drawsPeak_(true).peakLevel_(0.5),
    LevelIndicator().style_(\continuous).value_(0.1).drawsPeak_(true).peakLevel_(0.7),
    LevelIndicator().style_(\continuous).value_(0.1).drawsPeak_(true).peakLevel_(0.9),
))
)

-meterColor = color

-warningColor = color

-criticalColor = color

Sets the color of the meter, as well as the warning and critical colors.

Arguments:

color

A Color.

(
l = LevelIndicator(bounds:Rect(100, 100, 100, 400)).front().value_(1).style_(\led);
l.meterColor = Color.blue(0.9);
l.warningColor = Color.blue(0.7);
l.criticalColor = Color.blue(0.5);
)

(
// inverse
l.background = Color.blue;
l.meterColor = Color.black.alpha_(1);
l.warningColor = Color.black.alpha_(1);
l.criticalColor = Color.black.alpha_(0.3);
)

Inherited instance methods

Undocumented instance methods

-background

-background = color

Examples

(
// something to meter
s.waitForBoot({
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");

    x = {
        var colum, noise, imp, delimp, mul = 1;
    imp = Impulse.kr(10);
    delimp = Delay1.kr(imp);
    colum = PlayBuf.ar(1, b, BufRateScale.kr(b), loop: 1) * mul;
    // measure rms and Peak
    SendReply.kr(imp, '/levels', [Amplitude.kr(colum), K2A.ar(Peak.ar(colum, delimp).lag(0, 3))]);
    colum;
}.play;

    a = LevelIndicator(bounds:Rect(100, 100, 100, 400)).front;
    a.onClose_({ x.free; o.free; });
o = OSCFunc({arg msg;
    {
        a.value = msg[3].ampdb.linlin(-40, 0, 0, 1);
        a.peakLevel = msg[4].ampdb.linlin(-40, 0, 0, 1);
    }.defer;
}, '/levels', s.addr);
})
)

(
a.warning = -6.dbamp;
a.critical = -3.dbamp;
)
// optionally show peak level
a.drawsPeak = true;

(
a.style = \led;
a.stepWidth = 3;
)

// different colors
(
a.meterColor = Color.blue(0.9);
a.warningColor = Color.blue(0.8);
a.criticalColor = Color.blue(0.6);
)
// all styles can have ticks
(
a.background = Color.clear;
a.numTicks = 11; // includes 0;
)

// Single blinking square level indicator
(
a.style = \led;
a.numTicks = 0;
a.drawsPeak = false;
a.bounds = a.bounds.resizeTo(90, 90);
a.numSteps = 1;
)