Возможны ли непрерывные изменения частоты синтезированного звука в Audiokit?

Меня интересует разработка простого тестового приложения на ios (с использованием Swift), в котором перемещение курсора мыши слева направо управляет частотой воспроизводимого звука в соответствии с положением с плавающей запятой на непрерывной сетке. Я бы искал что-то вроде этого: https://www.szynalski.com/tone-generator/

Я создал простую визуализацию экспоненциальной частотной кривой, чтобы помочь себе начать работу:

график частот в одну октаву, более темные цвета представляют все тона

Звук должен генерироваться во время исполнения и воспроизводиться непрерывно, а изменения частоты также должны быть непрерывными / мгновенными (как в случае изменения высоты звука). AudioKit казался отличным API, помогающим мне делать что-то быстро, но если присмотреться к нему, похоже, что многие хорошо задокументированные удобные функции применимы только к готовому аудио. Например, на веб-странице говорится, что пример изменения высоты звука предназначен только для звуков проигрывателя, а не для генерируемого звука.

Просматривая руководства, я не вижу, что мой вариант использования охвачен - возможно, в сложном синтезаторе звука. Также возникает вопрос о том, как я буду делать изменения частоты и аудио в приоритетном потоке, поскольку это основной момент приложения. Я помню, как читал, что использование цикла событий пользовательского интерфейса не работает.

Чтобы показать, что я приложил усилия, чтобы найти решение, я хотел бы связать несколько страниц, которые я нашел:

Это пример вывода MIDI-ноты, но он не является непрерывным: https://audiokit.io/playgrounds/Synthesis/Oscillator%20Bank/

Один из немногих вопросов о частоте, которые я нашел в stackoverflow, связан с определением высоты звука с помощью микрофона, который на самом деле не связан: AudioKit (iOS) - Добавить наблюдателя для изменения частоты / амплитуды

Здесь говорится о непрерывных колебаниях, но не описывается, как динамически изменять частоту или генерировать звук Как изменить частоту AKMorphingOscillatorBank счетно в Audiokit?

Я думаю, что это самое близкое, что я нашел (генерация звука с использованием параметров времени выполнения для настройки частоты): AudioKit: изменить звук на основе данных гироскопа / повернуть телефон?

Если на последней странице есть решение, что мне делать с AKOperationGenerator? Я бы хотел увидеть полный пример.

Вкратце: как мне создать простой пример в AudioKit (или мне нужны CoreAudio и AudioUnits?), В котором координата с плавающей запятой, постоянно обновляемая во время выполнения, может использоваться для непрерывного и мгновенного изменения частоты генерируемого звука? Как мне создать такой звук (я представляю, что хотел бы синтезировать не только синусоидальную волну, но также что-то, что больше походило бы на настоящий инструмент или FM-синтезатор), включить / выключить его и управлять им так, как я необходимость?

Я новичок в AudioKit, но у меня уже настроена среда разработки. Могу я немного помочь, чтобы сдвинуть это с мертвой точки?


person synchronizer    schedule 12.08.2019    source источник
comment
Я поиграл на одной из площадок и обнаружил, что это возможно, но немного неудобно. Я не уверен, каков наилучший / наиболее эффективный способ обновить звук в игровом цикле. Поток управления неясен. Аудио должно быть приоритетным.   -  person synchronizer    schedule 15.08.2019


Ответы (1)


AKOscillatorBank имеет опцию pitchBend, и она работает непрерывно. Сам использовал.

Фактически, в примере банка осцилляторов в Synthesis Playground есть ползунок изменения высоты звука, и когда у вас включена клавиша фортепиано, вы можете перемещать ее вверх и вниз для непрерывного изменения высоты звука.

Я знаю, что эта ветка устарела, но надеюсь, что это поможет!

person sridhar_rajagopal    schedule 27.03.2021
comment
Спасибо. Тем не менее, я думаю, что последняя версия AudioKit имеет множество изменений и устарела. Пригодится конкретный пример фрагмента или ссылка. Однако приятно знать, что это возможно. - person synchronizer; 28.03.2021