cheapo statistics 1.1 [effect]

--------------------------------------------------------------

Usage:
- connect it as normal
- right mouse click on machine box -> "Sound..."
- right mouse click on machine box -> "Midi Notes..."
- right mouse click on machine box -> "Timing..."

Not too hard to use is it ;)

--------------------------------------------------------------
Sound information:

"Statistical data collected"
Tells how much data machine has analysed in ticks, normal time
format [h:mm:ss.ms] and even actual count of samples.

Statistical data is gathered only when signal passes thru the
machine. Buzz does not use unneeded machines so the value here
is probably not the same as the playing time of the tune.

You can use <thru> in sequence editor to disable signal
analysis. (=bypass)

If the incoming signal is stereo following values are displayed
for "left" and "right" channels separately, otherwise only
one set of values is displayed under "Mono signal".

"Max sample": The value of the biggest positive sample in the
signal. Shown attributes: Sample value and relative power in
percents and decibels (relative to +32767.0).

"Max value location": The time stamp when "Max sample" was
detected. Shown attributes: Ticks, normal time format and
sample count.

"Min sample": The value of the biggest negative sample in the
signal. Shown attributes: Sample value and relative power in
percents and decibels (relative to -32768.0).

"Min value location": The time stamp when "Min sample" was
detected. Shown attributes: Ticks, normal time format and
sample count.

Min and Max sample values are "Peak" values of the signal.
These tell the maximum amplitude of the song. "RMS" is a much
better way analyse the perceived loudness of the sound. 

"DC Offset (average)": The sum of all the analysed samples
divided by the number of the samples. This figure tells you
if the signal is not centered around the zero axis. Having a
bad dc offset limits the available "space" for the amplitude
of the signal. Please check the "cheapo dc" for more
information and how to correct it.
Shown attributes: Sample value and relative power in percents
and decibels (relative to +32768.0).

"RMS Power": The "root-mean-square" value for the analysed
signal [rms=sqrt((a[0]*a[0]+ ... +a[n-1]*a[n-1])/n)]. RMS
value is a more meaningful way to express signal loudness
then the "Peak" values. The higher the value the louder the
song is in general. You can increase the value by adding a
compressor and a gain to the main signal.
RMS
Shown attributes: RMS value and relative power in percents
and decibels (relative to +32768.0).

"Zero crossings": I'm mot really sure about what this is
useful for, but you can find out the frequency of a sinewave
with it (for example) =) A zero crossing happens when the
signal values move from the positive values to negative
values (or the other way round).
Shown attributes: Number of zero crossings and the frequency
of the possible sinewave.
(Yes I have really no clue about this)

"Max change": New in 1.03. Max change compares the value of
the current sample to the value of the previous sample (
code snippet: change=abs(buffer[c]-buffer[c-1]) ). This value
is usually below the peak values and the only real use for it
(which I've figured out) is that it tells you if there has
been a HUGE amplitude change in the sound (which might cause
clicks).
Shown attributes: Maximum change value and relative power
in percents and decibels (relative to +32768.0). A change of
32767 (from 0 to 32767) is 0dB and 65534 (from 32767 ->
-32767) is +6.0dB.

"Volume slider suggestions based on max and min levels":
This section calculates the proper values for the master
output and the next machine's input level slider if the signal
exceeds the limits (-32768 and +32767). 

Some machines handle signal that has value outside the normal
limits, but some don't. This might cause clipping to a loud
signal that goes through the machine. Geonik's saturator is
one machine that clips the signal between -32768 and 32767.

The master output clips the signal too, so setting the proper
value is important in preserving the signal as much as
possible.

--------------------------------------------------------------
Midi Notes information:

Notes are shown in the following format:

C2,50 [36=$24]

C2		the note
50 		velocity
36=$24	decimal and hexadecimal value for the note

--------------------------------------------------------------
Timing information:

Timing information can be used as a beat, echo or whatever
calculator.

--------------------------------------------------------------
History:
  1.1	New GUI, couple of related attributes
  1.081	Improved timing information view
  1.08	Improved timing information view
  1.07  Added timing information view and optimized the code a little
  1.06	Added last note information for each midi channel.
  1.05  Added midi note information.

1.04	Added new statistics item: "Average power"

1.03	Noticed an error when suggesting volumes when the signal
	 is really loud: the machine would suggest values that are
	 not in the range of the volume faders. "Please set master
	 volume to 21211 [129.35%]."
	Added new statistics item: "Max change", "Max change location"

1.02	Got a little guilty consciousness for not obeying the
	 WM_READ mode. <thru> now bypasses machine.
1.01	Fixed zero crossings miscalculation and added some
	 more info. Thanks to Tamas for reporting.
1.0	First release

--------------------------------------------------------------

oh.. almost forgot: YOU NEED BUZZ1.2 TO USE THIS EFFECT

Mikko Apo [http://iki.fi/apo/]
