graphPlot displays numeric and text data in a 2D graph, coming from CHOPs, SOPs or DATs. X and Y axes can be linear, logarithmic, timecode or other forms. It can also analyze and display audio in a spectrum graph.
June 5, 2021 update graphPlot 8.5 and audioSpectrum8.5: added timecode units. added Adaptive toggle (Line Intervals Adaptive X and Y) for lines and labels, to enable zooming into data like timelines. added logarithmic lines for log/db/audioHz. toggle for masking data outside range. toggle for parameters button on graph. better error handling of negative and zero values passed to log and decibels. fonts and lots of cosmetic and performance improvements.
graphPlot displays five forms of input data: There are 5 inputs to graphPlot, each enabled by a toggle on the Data page. The forms are:
- CHOP functions, displaying CHOP channels in the same way as you see in the CHOP viewers - the samples are laid out left-to-right. "functions" is the form y = f(x), where for every x (sample) there is a value y.
- XY Points in a CHOP, where it receives a CHOP with 2 channels representing X and Y coordinates, and it displays a point for each sample in the CHOP, optionally joining the point with lines.
- Audio, where it receives a live audio signal that is displayed as frequency spectrum. (See the Audio Hz Viewing Style options below and set the X Units to Audio Hz.)
- SOP, where each SOP point is displayed as a graph point and/or line. SOP vertices are ignored. See the Line MAT for controls over line thickness, dot size and colors.
- DAT Table, where there are three columns - a column for X and Y, and a column for an optional text string. The string and a dot get plotted at the X, Y position.
Combinations of the above can be displayed, some combinations making more sense that others.
graphPlot displays the input data in five different viewing styles for the X and Y axes independently, which you choose on the Units X and Units Y pages:
- Linear, where you set the low and high range for the axis, and the number of divisions where you want to see labels and graph lines.
- Powers-of-10 exponential form (log10), where you specify the low and high power-of-10. For example, setting the Range parameters to -3 and 5 will display 10-3 to 105, which is from .001 to 10,000. This is good for data sets whose magnitude vary widely. This form only supports positive input values.
- Powers-of-2 exponential (log2) - similar to Powers-of-10. In both cases you can display powers-of-N numbers in the exponent form or as regular numbers via the Log Format parameters.
- Decibels - as you would employ for audio or other signal strengths. -10dB means 1/10 the power, -20dB means 1/100 the power. It turns out that each 3dB means almost exactly double the power, so +12dB is 2*2*2*2 = 16 times the power. Power is proportional to the square of the amplitude. So -20dB means 1/10 the amplitude, and 6dB is double the amplitude.. The Decibel Steps parameter lets you display decibels in 3 or 10 dB steps.
- Audio Hz, a frequency representation that lets you choose a center frequency like 1000 Hz or middle C (440 Hz), plus how many octaves below that frequency you want to see, and how many octaves above. An octave is double or half the frequency. In this mode you want to send graphPlot the audio signal into the third input, and it will apply the Spectrum CHOP to it appropriately.
- Time Code, hours:minutes:seconds:frames converted from frames in the Range Linear X parameter. Use with Line Intervals Adaptive X.
Conversion of Input Data
Generally when displaying any of the viewing styles including the exponential forms, you don't need to convert your data into decibels for example. However if your data already is in decibels or powers-of-10, you don't want to have it converted again. If this is the case, change Convert Data into Units to be Data Already in Converted Form.
Display of Logarithmic Lines
When displaying Log 10, Log 2 and Audio Hz, you want the sub-lines to have relevant meaning. Usually on log graphs, say log 10, between 10 and 100, you want the lines between them to represent 20, 30, 40, 50, 60, 70, 80, 90.These lines are not evenly spaced visually in your log graph, and that is the default look. It's important to have the right number of lines between 10 and 100, and you may notice it's not 10 steps between 10 and 100, it's 9 (count them! the world of logs!). So you need to set your tick intervals to 9 in this case. Between 100 and 1000 it's also 9 intervals: 100, 200, 300 etc.
In the case of Audio Hz, it's typically rising in powers of 2: Between 1000 and 2000 Hz (one octave), you may want lines for 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800 and 1900. That's 10 intervals of log lines. However if you want the steps between octaves to represent the 12 notes of the conventional musical scale, those are 12 steps, where each step's frequency is a constant multiplier of the step below it. The multiplier is 2**(1/12) = 1.0594 (a semitone). So the first line above 10000 Hz is 10594 Hz, and the second line is .10594 * 1.0594 = 11224 Hz (two semitones above 1000 Hz). Visually in a log graph these lines are spaced equally. So you need to set the Log Ticks X menu to Constant Multiplier (linear spacing), and the Tick Intervals X to 12. (and if you are interested, look up what Middle C's frequency is.)
The look of the graphs is parameter-driven: graph positioning; label text, sizes, positions, colors and rotations; graph line/dot thickness and colors; label value precisions; colors and sizes of your graphed data.
Increase the FFT Size X parameter to get better frequency-fidelity at lower frequencies (at the expense of time-fidelity).