README.md
1# Android FXLab
2
3## Features
4This app performs real-time audio effects with low latency using the [oboe](https://www.github.com/google/oboe) API.
5
6The audio effects are written natively (in C++), with Kotlin used for the UI.
7
8Supported features include a linear pipeline of real-time effects with re-ordering, enable/disable, and parameter modification.
9
10The effects used should be portable as they operate entirely on numeric type iterators.
11
12## Setup
13Connect 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
15## Layout
16
17![Screenshot (dark mode)](screenshot.png)
18
19Tap 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
21By 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
23## Development
24
25A guide to the code, as well as a pdf of a slideshow discussing the code in depth are in the [docs](docs) folder.
26
27## Credits
28This app was written by [Atneya Nair](https://www.github.com/atneya)
29as a sample app using Oboe to publish on the Play store for an internship on
30the Android Audio team at Google.
31