## SwingOSC – Java-based GUI classes

# JSCPeakMeter

Warning: experimental stage, subject to changes!

Note: please use the abstraction layer GUI.peakMeterView if possible! (see GUI). See also JSCView.

s.boot;

(

w = JSCWindow( "Meter", Rect( 200, 200, 200, 228 ), false );

b = JSCPeakMeter( w, Rect( 4, 4, 56, 220 ));

b.bus = Bus( \audio, s.options.numOutputBusChannels, 2, s );

w.front;

)

The meter can be configured, using the properties border, caption, captionVisible, captionPosition, rmsPainted, and holdPainted, as demonstrated by the following example:

(

JSCCheckBox( w, Rect( 70, 4, 126, 24 )).string_( "Border" ).action_({ arg v; b.border = v.value });

JSCCheckBox( w, Rect( 70, 32, 126, 24 )).string_( "Caption" ).action_({ arg v; b.caption = v.value });

JSCCheckBox( w, Rect( 90, 60, 126, 24 )).string_( "Visible" ).value_( true ).action_({ arg v; b.captionVisible = v.value });

JSCStaticText( w, Rect( 90, 88, 30, 24 )).string_( "Pos:" );

JSCPopUpMenu( w, Rect( 124, 88, 72, 24 )).items_([ \left, \right, \center ])

.action_({ arg v; b.captionPosition = v.items[ v.value ]});

JSCCheckBox( w, Rect( 70, 116, 126, 24 )).string_( "RMS Painted" ).value_( true ).action_({ arg v; b.rmsPainted = v.value });

JSCCheckBox( w, Rect( 70, 144, 126, 24 )).string_( "Hold Painted" ).value_( true ).action_({ arg v; b.holdPainted = v.value });

)

When the caption is active and visible, the label font can be changed:

b.font = JFont( "Eurostile", 11 );

b.font = JFont( "Andale Mono", 13 );

When the monitored bus is silent, you can pause the meter updates to save some CPU power:

b.active = false;

b.active = true;

A utility method for monitoring all the audio interface's inputs and outputs:

JSCPeakMeter.meterServer( s );

x = { (CoinGate.ar( (2 / SampleRate.ir) ! s.options.numOutputBusChannels, Impulse.ar( SampleRate.ir / 2 ))) * 0.7 }.play

x.free;