I’m planning on creating a kind of visualiser plugin. I am very new to Juce and C++ in general. Would it be possible to create a plugin which outputs a live scrolling visualisation of sound coming through all channels for example in Ableton? Similar to an export at the end of creating a track, just without exporting, so the user can see the finished product before exporting?
A plugin has only access to the audio routed through it, i.e. the channels of that one track.
But you can of course visualise that audio of the track.
Which could be the master track, so I think it’s possible to do what the original poster is asking about.
Well, that needs clarification… The master contains the sum, I understood the question rather to see the individual channels of each track…
So it’s still correct, you have only access to the channels of that track, even if it’s the master track…
Yes, I mean as in a plugin to be placed on the master channel specifically
Oh right I understand. I mean the combination of all the tracks combined into what would be the exported copy
You can visualise it in ableton with a spectral analyser, but not as an output waveform
Would it be possible to do with the AudioVisualiserComponent? I’ve had a look at it, and it says it shows a scrolling waveform of data, but the tutorial shows simply a copy of the whole waveform, not scrolling
AudioVisualiserComponent is the correct thing to use. It does scroll. What tutorial are you looking at?
Wait sorry I’m looking at AudioThumbnail oops
How exactly does it work? It seems simple enough to get a start on
Visualiser not thumbnail
I’m planning on having a setup similar to the AudioThumbnail tutorial, in that there’s a screen showing scrolling waveform data, which can be paused and restarted at any point. I’d also like to add a time signature along the bottom, and a loudness/level visualisation along the y-axis on the left. Shouldn’t be too complicated, I’m just a bit of a newbie to audio programming
That’s famous last words
The problem is rather, that the plugin API is not really designed for that use case.
You can only display, what has passed through your plugin. That means, you have to play back once in total.
Next caveat, it won’t update, if you change anything in any other plugin, or you change an automation or do any other edit, you will have to play it again through your plugin to see the difference.
You can get the time information of the played back signal, that is one good news, so it is possible to place the played pieces on the right place in your own timeline.
This is pretty much the workflow of Melodyne, before the ARA extension. That might be something to explore… it isn’t supported out of the box by JUCE, but there is a fork somewhere (check the forum search for ARA or Celemony)
Daniel already hinted at that but to make it clear : you can only visualize what is currently playing in a standard plugin. You don’t have access to the whole timeline of the host application at once. When you use AudioThumbnail with an audio file, you can see the whole file at once, but that’s a different use case.
I’m hoping a future DAW / plug-in configuration will enable that feature… one day…
I think ProTools AudioSuite comes closest? The separation of online effects versus offline effects is actually well thought through…
But having said that, that DAW is not necessarily on the rise… (nor fall, it is just there )
There’s also Celemony’s ARA which is supported in a few hosts now. Sadly, Juce does not have not support for making ARA enabled VST plugins yet.