VST3 Host Questions...

Hi there.

All the plugins can process 64-bit.

Here’s my process call:

	if (m_pAudioProcessor != NULL)
	{
		Steinberg::Vst::BusInfo busInfo = {};
		bool bChannelMismatch = false;
		if (m_pProcessComponent->getBusInfo(Steinberg::Vst::kAudio, 0, 0, busInfo) == Steinberg::kResultTrue)
		{
			if (busInfo.channelCount != m_afInput.GetChannels())
				bChannelMismatch = true;
		}
		if (m_pProcessComponent->getBusInfo(Steinberg::Vst::kAudio, 1, 0, busInfo) == Steinberg::kResultTrue)
		{
			if (busInfo.channelCount != m_afInput.GetChannels())
				bChannelMismatch = true;
		}

		if (bChannelMismatch)
		{
			pOutput->JRDSPOutput_OutputDouble(pBuffer, nBlocks);
			return;
		}

		Steinberg::Vst::HostProcessData Data;
		m_pProcessComponent->setActive(true);
		Data.prepare(*m_pProcessComponent, nBlocks * m_afInput.GetChannels(), Steinberg::Vst::kSample64);
		Data.processMode = Steinberg::Vst::kRealtime;
		for (int nChannel = 0; nChannel < m_afInput.GetChannels(); nChannel++)
		{
			for (int nSample = 0; nSample < nBlocks; nSample++)
			{
				Data.inputs->channelBuffers64[nChannel][nSample] = pBuffer[nSample * m_afInput.GetChannels() + nChannel];
				Data.outputs->channelBuffers64[nChannel][nSample] = 0;
			}
		}

		Data.numSamples = nBlocks * m_afInput.GetChannels();
		if (m_pAudioProcessor->process(Data) != Steinberg::kResultTrue)
		{
			// problem processing
		}

		for (int nChannel = 0; nChannel < m_afInput.GetChannels(); nChannel++)
		{
			for (int nSample = 0; nSample < nBlocks; nSample++)
			{
				pBuffer[nSample * m_afInput.GetChannels() + nChannel] = Data.outputs->channelBuffers64[nChannel][nSample];
			}
		}

		Data.unprepare();

		// output
		pOutput->JRDSPOutput_OutputDouble(pBuffer, nBlocks);
	}

Here’s my setup when the audio format arrives:

		if ((m_pAudioProcessor != NULL) && (m_pProcessComponent != NULL))
		{
			m_pProcessComponent->setActive(false);
			Steinberg::Vst::ProcessSetup Setup;
			Setup.processMode = Steinberg::Vst::kRealtime;
			Setup.sampleRate = m_afInput.GetSampleRate();
			Setup.symbolicSampleSize = Steinberg::Vst::kSample64;
			Setup.maxSamplesPerBlock = 65536;
			if (m_afInput.GetChannels() == 2)
			{
				Steinberg::Vst::SpeakerArrangement Arrangement = Steinberg::Vst::SpeakerArr::kStereo;
				int nResult = m_pAudioProcessor->setBusArrangements(&Arrangement, 1, &Arrangement, 1);
				if (nResult == Steinberg::kResultFalse)
				{
					bResult = false; // arrangement not supported
				}
			}
			m_pAudioProcessor->setupProcessing(Setup);
			m_pAudioProcessor->setProcessing(true);
			m_pProcessComponent->setActive(true);
		}

I must be missing something, but I’m not sure what. Thanks so much for any help.