но там похоже включён режим сквозного канала
Если данные не обрабатываются то так автоматом и происходит, посколько данные из массивов записи пищуться в массив воспроизведения. Если надо обработать то после считывания надо их обработать и загнать обработанные в этот же массив записи. В данной схеме они считываются из него (RW Array) а потом записываются в соседний канал. И наоборот. После считывания их можно как угодно обработать.
при экспериментах с записью, наблюдаю чередующуюся вставку блоков тишины при "длине блока" меньше 4096 и потерю блоков (тоже через раз) при "длине блока" более 4096.
наверное полезно в точку "end" элементов "if" вставить данные длины блока от соответствующего. А вообще этот прибамбас почему то происходит при старте пару секунд, потом устаканивается. По видимому связано с организацией очередности буферов.
Вообще схемка старая тестовая. На той неделе дам последнюю где вся обработка идет в одном массиве (для обеих каналов и для записи и для воспроизведения).