ADSR in iOS, voorbeeldcode?

Ik ben op zoek naar enkele voorbeelden die laten zien hoe je ADSR in iOS kunt gebruiken met behulp van audiomonsters (bij voorkeur WAV-bestanden met luspunten, maar dat is secundair). Ik vermoed dat de meeste mensen die een sampler/synth app schrijven hiervoor een audio-unit gebruiken. Weet iemand een goed codevoorbeeld dat ADSR in elke iOS-audiobibliotheek laat zien?

3

3 antwoord

In de nieuwe iOS SDK 5.0 is er nu een Sampler Audio Unit! Dat kan ADSR-enveloppen doen.

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

2
toegevoegd

je kunt (een heel eenvoudige) vinden in het SinSynth-voorbeeld van Apple. Dat is een AU, maar het zou moeten aantonen hoe men een envelop zou toepassen op een audiobuffer. ik weet het niet meer - het kan gewoon een ASR zijn, maar het toevoegen van een vierde fase is eenvoudig als je het bestaande programma hebt begrepen. De implementatie is goed in de weergave van de notitie.

Envelope Generators zijn niet platformspecifiek.

musicdsp.org will be a better resource if you want more than a push in the right direction.

1
toegevoegd

MusicDSP heeft de broncode voor een voorbeeld envelopvolger met attack/release. Als je dit begrijpt, moet sustain/verval logisch zijn. ;)

Maar een ADSR-envelop is in feite gewoon een kwestie van het toepassen van versterking op uw outputsignaal met een state-machine. Elke status heeft een startwaarde en een eindwaarde en een duur. Het berekenen van de helling van die lijn en de waarde van elk punt erlangs werd op je middelbare school behandeld in je algebra-klas. ;) Als je echt heel luxe wilt zijn, kun je andere soorten curven implementeren, maar het concept blijft hetzelfde.

1
toegevoegd
Bedankt voor de opmerking over het gebruik van een staatsmachine, dat is wat ik ook ben.
toegevoegd de auteur lukebuehler, de bron