mirror of
https://github.com/love2d/megasource.git
synced 2026-08-18 03:34:25 +02:00
Add Oboe 1.4.3, used only for Android build.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
[Tech Notes Home](README.md)
|
||||
|
||||
# Using Audio Effects with Oboe
|
||||
|
||||
## Overview
|
||||
|
||||
The Android Audio framework provides some effects processing that can be used by apps.
|
||||
It is available through the Java or Kotlin
|
||||
[AudioEffect API](https://developer.android.com/reference/android/media/audiofx/AudioEffect)
|
||||
|
||||
Another alternative is to do your own effects processing in your own app.
|
||||
|
||||
### Reasons to use the Android AudioEffect in the OS:
|
||||
1. Functions are provided for you so they are easy to use.
|
||||
|
||||
### Reasons to do your own effects Processing:
|
||||
1. They will work on all versions of Android. The AudioEffects can only be used with Oboe on Android 9 (Pie) and above. They are not supported for OpenSL ES.
|
||||
2. You can customize the effects as needed.
|
||||
3. You can get lower latency when you use your own effects. Using Android AudioEffects prevents you from getting a low latency path.
|
||||
|
||||
## Using Android AudioEffects
|
||||
|
||||
Oboe streams on Android 9 (Pie) and above can use the Java/Kotlin.
|
||||
See [AudioEffect API](https://developer.android.com/reference/android/media/audiofx/AudioEffect)
|
||||
|
||||
The basic idea is to use Java or Kotlin to create a Session with Effects.
|
||||
Then associate your Oboe streams with the session by creating them with a SessionID.
|
||||
|
||||
In Java:
|
||||
|
||||
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
|
||||
int audioSessionId = audioManager.generateAudioSessionId();
|
||||
|
||||
Pass the audioSessionId to your C++ code using JNI. Then use it when opening your Oboe streams:
|
||||
|
||||
builder->setSessionId(sessionId);
|
||||
|
||||
Note that these streams will probably not have low latency. So you may want to do your own effects processing.
|
||||
|
||||
## Using Third Party Affects Processing
|
||||
|
||||
There are many options for finding audio effects.
|
||||
|
||||
- [Music DSP Archive](http://www.musicdsp.org/en/latest/Effects/index.html)
|
||||
- [Synthesis Toolkit in C++ (STK)](https://ccrma.stanford.edu/software/stk/index.html)
|
||||
- [Cookbook for Biquad Filters, EQ, etc.](https://www.w3.org/2011/audio/audio-eq-cookbook.html)
|
||||
- [Faust - language for generating effects, big library](https://faust.grame.fr/index.html)
|
||||
- [DAFX Digital Audio Effects conference proceedings](http://dafx.de/)
|
||||
Reference in New Issue
Block a user