# Audio Visualiser?

**URL:** <https://forum.juce.com/t/audio-visualiser/34602>\
**Category:** General JUCE discussion\
**Created:** [July 31, 2019, 3:00pm UTC](https://forum.juce.com/t/audio-visualiser/34602 "2019-07-31T15:00:08Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 3:00pm UTC](https://forum.juce.com/t/audio-visualiser/34602/1 "2019-07-31T15:00:08Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [July 31, 2019, 3:12pm UTC](https://forum.juce.com/t/audio-visualiser/34602/2 "2019-07-31T15:12:31Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [July 31, 2019, 3:25pm UTC](https://forum.juce.com/t/audio-visualiser/34602/3 "2019-07-31T15:25:17Z")

</div>

> [@daniel](#):
>
> 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.

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [July 31, 2019, 3:27pm UTC](https://forum.juce.com/t/audio-visualiser/34602/4 "2019-07-31T15:27:32Z")

</div>

> [@Kaiodi](#):
>
> a live scrolling visualisation of sound coming through all channels

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… 😉

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:07pm UTC](https://forum.juce.com/t/audio-visualiser/34602/5 "2019-07-31T16:07:59Z")

</div>

Yes, I mean as in a plugin to be placed on the master channel specifically

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:08pm UTC](https://forum.juce.com/t/audio-visualiser/34602/6 "2019-07-31T16:08:39Z")

</div>

Oh right I understand. I mean the combination of all the tracks combined into what would be the exported copy

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:09pm UTC](https://forum.juce.com/t/audio-visualiser/34602/7 "2019-07-31T16:09:16Z")

</div>

You can visualise it in ableton with a spectral analyser, but not as an output waveform

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:12pm UTC](https://forum.juce.com/t/audio-visualiser/34602/8 "2019-07-31T16:12:05Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [July 31, 2019, 4:13pm UTC](https://forum.juce.com/t/audio-visualiser/34602/9 "2019-07-31T16:13:25Z")

</div>

AudioVisualiserComponent is the correct thing to use. It does scroll. What tutorial are you looking at?

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:15pm UTC](https://forum.juce.com/t/audio-visualiser/34602/10 "2019-07-31T16:15:20Z")

</div>

Wait sorry I’m looking at AudioThumbnail oops

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:16pm UTC](https://forum.juce.com/t/audio-visualiser/34602/11 "2019-07-31T16:16:14Z")

</div>

How exactly does it work? It seems simple enough to get a start on

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:18pm UTC](https://forum.juce.com/t/audio-visualiser/34602/12 "2019-07-31T16:18:04Z")

</div>

Visualiser not thumbnail 🙂

---

<div class="post-metadata">

**Author:** ![Kaiodi](https://avatars.discourse-cdn.com/v4/letter/k/fbc32d/32.png) [@Kaiodi](https://forum.juce.com/u/Kaiodi)\
**Post date:** [July 31, 2019, 4:52pm UTC](https://forum.juce.com/t/audio-visualiser/34602/13 "2019-07-31T16:52:34Z")

</div>

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 ☹

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [July 31, 2019, 4:58pm UTC](https://forum.juce.com/t/audio-visualiser/34602/14 "2019-07-31T16:58:20Z")

</div>

> [@Kaiodi](#):
>
> Shouldn’t be too complicated,

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)

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [July 31, 2019, 5:09pm UTC](https://forum.juce.com/t/audio-visualiser/34602/15 "2019-07-31T17:09:35Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![DaveH](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daveh/32/4924_2.png) [@DaveH](https://forum.juce.com/u/DaveH)\
**Post date:** [August 1, 2019, 12:31pm UTC](https://forum.juce.com/t/audio-visualiser/34602/16 "2019-08-01T12:31:16Z")

</div>

> [@Xenakios](#):
>
> You don’t have access to the whole timeline of the host application at once.

I’m hoping a future DAW / plug-in configuration will enable that feature… one day…

---

<div class="post-metadata">

**Author:** ![daniel](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/daniel/32/790_2.png) [@daniel](https://forum.juce.com/u/daniel)\
**Post date:** [August 1, 2019, 12:45pm UTC](https://forum.juce.com/t/audio-visualiser/34602/17 "2019-08-01T12:45:03Z")

</div>

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 😉 )

---

<div class="post-metadata">

**Author:** ![xenakios](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/xenakios/32/4047_2.png) [@xenakios](https://forum.juce.com/u/xenakios)\
**Post date:** [August 1, 2019, 12:48pm UTC](https://forum.juce.com/t/audio-visualiser/34602/18 "2019-08-01T12:48:38Z")

</div>

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.
