xref: /aosp_15_r20/external/oboe/apps/fxlab/README.md (revision 05767d913155b055644481607e6fa1e35e2fe72c)
1*05767d91SRobert Wu# Android FXLab
2*05767d91SRobert Wu
3*05767d91SRobert Wu## Features
4*05767d91SRobert WuThis app performs real-time audio effects with low latency using the [oboe](https://www.github.com/google/oboe) API.
5*05767d91SRobert Wu
6*05767d91SRobert WuThe audio effects are written natively (in C++), with Kotlin used for the UI.
7*05767d91SRobert Wu
8*05767d91SRobert WuSupported features include a linear pipeline of real-time effects with re-ordering, enable/disable, and parameter modification.
9*05767d91SRobert Wu
10*05767d91SRobert WuThe effects used should be portable as they operate entirely on numeric type iterators.
11*05767d91SRobert Wu
12*05767d91SRobert Wu## Setup
13*05767d91SRobert WuConnect the android device to the correct audio input and output devices. A simple use-case could be a headset with a microphone while singing or playing an acoustic instrument near the mic. More complicated setups could involve USB audio interfaces, devices such as the iRig 2 interface for guitar effects/amplification or routing audio output to a computer for a recording.
14*05767d91SRobert Wu
15*05767d91SRobert Wu## Layout
16*05767d91SRobert Wu
17*05767d91SRobert Wu![Screenshot (dark mode)](screenshot.png)
18*05767d91SRobert Wu
19*05767d91SRobert WuTap the plus button to add various effects. The current list of effects being applied to the input audio will be shown on the main screen (in order from top to bottom). Use the drag handles on the right of the effect to re-order the effects. Swiping the effect near the title to the right or left will remove the effect. Use the sliders to modify the parameters of each audio effect. Some effect combinations or parameters might lead to unpleasant sounds!
20*05767d91SRobert Wu
21*05767d91SRobert WuBy default the sound output is off when you start the app (this is to avoid a feedback loop if you're not using headphones).  Tap the "Unmute" button in the top right corner to enable sound output.
22*05767d91SRobert Wu
23*05767d91SRobert Wu## Development
24*05767d91SRobert Wu
25*05767d91SRobert WuA guide to the code, as well as a pdf of a slideshow discussing the code in depth are in the [docs](docs) folder.
26*05767d91SRobert Wu
27*05767d91SRobert Wu## Credits
28*05767d91SRobert WuThis app was written by [Atneya Nair](https://www.github.com/atneya)
29*05767d91SRobert Wuas a sample app using Oboe to publish on the Play store for an internship on
30*05767d91SRobert Wuthe Android Audio team at Google.
31