Во-первых, чтобы действительно ответить на ваш вопрос: когда вы вызываете функцию AudioQueueNewInput (), вы передаете ей имя подпрограммы, которая будет вызываться каждый раз, когда вам доступны данные. Вы, вероятно, назвали это MyInputBufferHandler () или что-то. Третий аргумент - AudioQueueBufferRef, который содержит входящие данные.
Имейте в виду, что это не так просто, как смотреть на каждый образец (амплитуду) и понижать или поднимать его. Вы получаете образцы во временной (временной) области в виде амплитуд. Там нет информации о высоте или частоте. Что вам нужно сделать, это переместить входящие выборки (форму волны) в частотную область, где каждая «точка» в этом пространстве является частотой и сопровождающей ее мощностью и фазой. Вы можете сделать это с помощью БПФ (быстрого преобразования Фурье), но математика несколько сложна. Apple действительно предоставляет процедуры FFT в рамках Acceleration, но имейте в виду, что вы погружаетесь здесь в очень глубокие воды.