Код: Выделить всё
virtual float* GetNextSample(double timeAdvance) override{
currentSamplePosition = std::floor(currentPosition);
float centerSample = sampleData.waveform[currentSamplePosition];
for (int i = 0; i < channels; i++) {
currentSample[i] = centerSample;
}
currentPosition += sampleData.positionRate * (frequency / sampleData.rootFrequency);
while (currentPosition >= sampleData.loopEnd) {
currentPosition -= (sampleData.loopEnd - sampleData.loopStart);
}
return currentSample;
}`
Я отладко откладывал, изменяя линейные токи. и регистрация этих значений в редакторе Unity, так как Currentsample [] возвращается обратно в Unity и используется для заполнения аудио буфера. Например, для определения значений частоты и smpledata.rootfrequency , я устанавливаю токи выборки к этим значениям.
Таким образом, с указанным, я имею подтверждение, что частота = 440 и smpledata.rootfrecrentency = ~ 329.63. Эти переменные являются поплавками. Тем не менее, я обнаружил, что отладки, так это то, что если я устанавливаю образец Currents = (частота / sampledata.rootfrequency); < / code> или даже токи выборки = (static_cast (частота) / static_cast (sampledata.rootfrequence)); < / code>, возвращаемое в UNITY All All. Это разделение должно привести к приблизительно 1,3348, а не к нулю! Поскольку я подтвердил, что две переменные установлены должным образом, что они являются поплавками, и что другие значения возвращаются в единство, как и ожидалось, я понятия не имею, в чем еще проблема может быть на этом этапе. У кого-нибудь есть какие-либо советы?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -i-cant-fi