scrolling audio display/visualizer
-
@mmprod add a floating tile, set it to AudioAnalyser, and connect it to an Analyser set to Oscilloscope using the Data field:
{ "ProcessorId": "YourAnalyserNameHere", "Index": 1, "FollowWorkspace": false }
-
@Lindon thanks! I forgot that the audio analyzer had an oscilloscope…….
Is it style-able any further?
-
@Lindon Also, can I zoom out even more? Like more than 32768 samples
-
Or perhaps slow down the rate at which it moves across the screen?
-
@mmprod said in scrolling audio display/visualizer:
Is it style-able any further?
Use a LookAndFeel script
const laf = Content.createLocalLookAndFeel(); laf.registerFunction("drawAnalyserBackground", function(g, obj) { //fill the background g.fillAll(Colours.blue); }); laf.registerFunction("drawAnalyserPath", function(g, obj) { // draw the outline path g.setColour(Colours.red); g.fillPath(obj.path, obj.area); // fill the path g.setColour(Colours.red); g.drawPath(obj.path, obj.area, 1); }); Content.getComponent("Analyser1").setLocalLookAndFeel(laf);
-
@mmprod said in scrolling audio display/visualizer:
@Lindon Also, can I zoom out even more? Like more than 32768 samples
Synth.getEffect("Analyser1").setAttribute(1, 65536);
This is double the 32768 available in the dropdown, and therefore half the speed of scrolling, and seems to be the maximum allowed. Settings higher than this are ignored.
The '1' refers to the BufferSize attribute.
-
@dannytaurus said in scrolling audio display/visualizer:
@mmprod said in scrolling audio display/visualizer:
Is it style-able any further?
Use a LookAndFeel script
const laf = Content.createLocalLookAndFeel(); laf.registerFunction("drawAnalyserBackground", function(g, obj) { //fill the background g.fillAll(Colours.blue); }); laf.registerFunction("drawAnalyserPath", function(g, obj) { // draw the outline path g.setColour(Colours.red); g.fillPath(obj.path, obj.area); // fill the path g.setColour(Colours.red); g.drawPath(obj.path, obj.area, 1); }); Content.getComponent("Analyser1").setLocalLookAndFeel(laf);
Aha, thank you! drawAnalyserBackground/Path does the trick
-
@dannytaurus said in scrolling audio display/visualizer:
@mmprod said in scrolling audio display/visualizer:
Is it style-able any further?
Use a LookAndFeel script
const laf = Content.createLocalLookAndFeel(); laf.registerFunction("drawAnalyserBackground", function(g, obj) { //fill the background g.fillAll(Colours.blue); }); laf.registerFunction("drawAnalyserPath", function(g, obj) { // draw the outline path g.setColour(Colours.red); g.fillPath(obj.path, obj.area); // fill the path g.setColour(Colours.red); g.drawPath(obj.path, obj.area, 1); }); Content.getComponent("Analyser1").setLocalLookAndFeel(laf);
Thanks, thats exactly what I needed
-
By any chance, can I style things other than color as well?
-
@mmprod said in scrolling audio display/visualizer:
By any chance, can I style things other than color as well?
Like what? There's not much else to customize.
You can already set the width and height, the colours used to draw the waveform, including the stroke width of the outline, and the colour of the background. By setting the buffer size you are also setting the scroll speed.
In my plugin the audio is mono so I display only one channel of the waveform by putting the floating tile in a panel and making it twice the height. The bottom half is cut off by the panel bounds.
-
For example is it possible in hise to make the audio visualizer lines? Like in the image above.
-
@mmprod here’s an even better example: