Can't setAudioChannels into my AnalizadorEspectro class

Hi, i’m trying to put an spectrum visualizer into my audio app, I create a new class as a child of the main component class so i can visualize it (spectrum visualizer). But when I run it, it does not show anything. I guess is because there’s no data getting in.

This is the maincomponent class

#include "MainComponent.h"

//==============================================================================
MainComponent::MainComponent() : AudioAppComponent(otherDeviceManager) ,state(Parado), cargarButton("Cargar"), reproducirButton("Reproducir"), pararButton("Parar")
{

    otherDeviceManager.initialise(4, 2, nullptr, true);
    audioSettings.reset(new AudioDeviceSelectorComponent(otherDeviceManager,0,4,0,2,true,true,true,true));
    addAndMakeVisible(audioSettings.get());
    
    setAudioChannels (4, 2);
    
    cargarButton.onClick = [this] {cargarClicked();};
    cargarButton.setColour(TextButton::buttonColourId, Colours::darkgoldenrod);
    addAndMakeVisible(& cargarButton);
    
    reproducirButton.onClick = [this] {reproducirClicked();};
    reproducirButton.setColour(TextButton::buttonColourId, Colours::darkgoldenrod);
    reproducirButton.setEnabled(true);
    addAndMakeVisible(& reproducirButton);
    
    pararButton.onClick = [this] {pararClicked();};
    pararButton.setColour(TextButton::buttonColourId, Colours::darkgoldenrod);
    pararButton.setEnabled(false);
    addAndMakeVisible(& pararButton);

    formatManager.registerBasicFormats();
    transport.addChangeListener(this);
    
    addAndMakeVisible(espectro);
    
    setSize (800, 750);

    
}

MainComponent::~MainComponent()
{
    // This shuts down the audio device and clears the audio source.
    shutdownAudio();
}

//==============================================================================
void MainComponent::prepareToPlay (int samplesPerBlockExpected, double sampleRate)
{
    
    transport.prepareToPlay(samplesPerBlockExpected, sampleRate);

}

void MainComponent::getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill)
{
    
    bufferToFill.clearActiveBufferRegion();
    transport.getNextAudioBlock(bufferToFill);
    
}

Here is the EspectroAnalizador class

AnalizadorEspectro::AnalizadorEspectro(): forwardFFT(fftOrder), window(fftSize, dsp::WindowingFunction<float>::blackmanHarris)
{
 
    startTimerHz (30);
    

}

AnalizadorEspectro::~AnalizadorEspectro()
{
}

void AnalizadorEspectro::paint (Graphics& g)
{
    g.fillAll (Colours::black);
    g.setOpacity (1.0f);
    g.setColour (Colours::white);
    drawFrame (g);
}

void AnalizadorEspectro::resized()
{
    

}

void AnalizadorEspectro::getNextAudioBlock (const AudioSourceChannelInfo& bufferToFill)
{
    if (bufferToFill.buffer->getNumChannels() > 0)
    {
        auto* channelData = bufferToFill.buffer->getReadPointer (0, bufferToFill.startSample);
        
        for (auto i = 0; i < bufferToFill.numSamples; ++i)
            pushNextSampleIntoFifo (channelData[i]);
    }
}



void AnalizadorEspectro::pushNextSampleIntoFifo(float sample) noexcept 
{
    if (fifoIndex == fftSize)
    {
        if (! nextFFTBlockReady)
        {
            zeromem (fftData, sizeof (fftData));
            memcpy (fftData, fifo, sizeof (fifo));
            nextFFTBlockReady = true;
        }
        
        fifoIndex = 0;
    }
    
    fifo[fifoIndex++] = sample;
}

void AnalizadorEspectro::drawNextFrameOfSpectrum()
{

    window.multiplyWithWindowingTable (fftData, fftSize);
    forwardFFT.performFrequencyOnlyForwardTransform (fftData);
    
    auto mindB = -100.0f;
    auto maxdB =    0.0f;
    
    for (int i = 0; i < scopeSize; ++i)
    {
        auto skewedProportionX = 1.0f - std::exp (std::log (1.0f - i / (float) scopeSize) * 0.2f);
        auto fftDataIndex = jlimit (0, fftSize / 2, (int) (skewedProportionX * fftSize / 2));
        auto level = jmap (jlimit (mindB, maxdB, Decibels::gainToDecibels (fftData[fftDataIndex])
                                   - Decibels::gainToDecibels ((float) fftSize)),
                           mindB, maxdB, 0.0f, 1.0f);
        
        scopeData[i] = level;
    }
}

void AnalizadorEspectro::drawFrame(Graphics &g)
{
    for (int i = 1; i < scopeSize; ++i)
    {
        auto width  = getLocalBounds().getWidth();
        auto height = getLocalBounds().getHeight();
        
        g.drawLine ({ (float) jmap (i - 1, 0, scopeSize - 1, 0, width),
            jmap (scopeData[i - 1], 0.0f, 1.0f, (float) height, 0.0f),
            (float) jmap (i,     0, scopeSize - 1, 0, width),
            jmap (scopeData[i],     0.0f, 1.0f, (float) height, 0.0f) });
    }
}

void AnalizadorEspectro::timerCallback()
{
    if (nextFFTBlockReady)
    {
        drawNextFrameOfSpectrum();
        nextFFTBlockReady = false;
        repaint(); 
    }
}

This is the result i got