Я искал несколько примеров, которые показывают, как сделать ADSR в iOS с использованием аудиокассет (желательно WAV-файлы с точками петли, но это вторично). Я думаю, большинство людей, которые пишут приложение sampler/synth, используют аудиоустройство для этого. Кто-нибудь знает пример хорошего кода, который показывает ADSR в любой аудио-библиотеке iOS?
В новом iOS SDK 5.0 теперь есть звуковой модуль Sampler! Что может делать конверты ADSR.
The presets demo shows how to use the sampler: http://developer.apple.com/library/ios/#samplecode/LoadPresetDemo/Introduction/Intro.html#//apple_ref/doc/uid/DTS40011214
If you want to load different sound formats to play this article is helpful: https://developer.apple.com/library/mac/#technotes/tn2283/_index.html
And here's the iOS documentation reference: http://developer.apple.com/library/ios/#documentation/AudioUnit/Reference/AUComponentServicesReference/Reference/reference.html#//apple_ref/doc/uid/TP40007291
вы можете найти (очень простой) в примере Apple SinSynth. Это AU, но он должен продемонстрировать, как применить конверт к звуковому буферу. я не помню - это может быть просто ASR, но добавление четвертого этапа просто, как только вы поняли существующую программу. Реализация прямо в рендеринг заметки.
Генераторы конвертов не являются специфичными для платформы.
musicdsp.org will be a better resource if you want more than a push in the right direction.
У MusicDSP есть исходный код для примерного конвертера с атакой/выпуском. Если вы это понимаете, то сустейн/распад должен быть довольно логичным. ;)
Но конверт ADSR - это просто вопрос применения коэффициента усиления к вашему выходному сигналу с помощью конечного автомата. Каждое состояние имеет начальное значение и конечное значение, а также продолжительность. Вычисление наклона этой линии и значение каждой точки вдоль нее было покрыто в классе алгебр в старшей школе. ;) Если вы хотите быть действительно фантазией, вы можете реализовать другие типы кривых, но концепция остается прежней.