История изменений
Исправление James_Holden, (текущая версия) :
Либо расскажи как это реализовано, чтобы прям за 0пикосекунд оно было например.
Бесшовно - это не значит за 0 пикосекунд конечно. Давай считать.
Пусть частота дискретизации - 44100 герц. Значит, один семпл звучит 1/44100 секунды = 22,67 микросекунд (округленно). Вот за это время DAC должен перескочить.
А теперь - ты точно хорошо представляешь, как работает оперативная память? Выставляем адрес на шину адреса, появляется содержимое ячейки на шине данных. Это занимает некоторое время.
А теперь скажи, есть ли разница по затратам времени - изменить адрес на шине адреса на предыдущий + 1, или изменить адрес на шине адреса на 0 (ноль)? Да неужели есть? А какая ему разница? (речь о памяти карты, тут нету кешей и миссов)
То есть, если DAC успевает прочитать из памяти каждый следующий семпл, то он успеет и перескочить с конца буфера на начало. За 22,67 микросекунд.
Это называется не кольцевой буфер, а двойная буферизация.
Нет, это именно кольцевой буфер. Смотри картинки по своим же ссылкам. Там ясно и понятно - нарисован перескок с последней ячейки в первую. Двойная буферизация, как правило, предполагает наличие двух буферов с копированием данных между ними. Тут такого нет, буфер один но пишется в два присеста.
Исходная версия James_Holden, :
Либо расскажи как это реализовано, чтобы прям за 0пикосекунд оно было например.
Бесшовно - это не значит за 0 пикосекунд конечно. Давай считать.
Пусть частота дискретизации - 44100 герц. Значит, один семпл звучит 1/44100 секунды = 22,67 микросекунд (округленно). Вот за это время DAC должен перескочить.
А теперь - ты точно хорошо представляешь, как работает оперативная память? Выставляем адрес на шину адреса, появляется содержимое ячейки на шине данных. Это занимает некоторое время.
А теперь скажи, есть ли разница по затратам времени - изменить адрес на шине адреса на предыдущий + 1, или изменить адрес на шине адреса на 0 (ноль)? Да неужели есть? А какая ему разница?
То есть, если DAC успевает прочитать из памяти каждый следующий семпл, то он успеет и перескочить с конца буфера на начало. За 22,67 микросекунд.
Это называется не кольцевой буфер, а двойная буферизация.
Нет, это именно кольцевой буфер. Смотри картинки по своим же ссылкам. Там ясно и понятно - нарисован перескок с последней ячейки в первую. Двойная буферизация, как правило, предполагает наличие двух буферов с копированием данных между ними. Тут такого нет, буфер один но пишется в два присеста.