xref: /aosp_15_r20/external/oboe/README.md (revision 05767d913155b055644481607e6fa1e35e2fe72c)
1*05767d91SRobert Wu# Oboe [![Build CI](https://github.com/google/oboe/workflows/Build%20CI/badge.svg)](https://github.com/google/oboe/actions)
2*05767d91SRobert Wu
3*05767d91SRobert Wu[![Introduction to Oboe video](docs/images/getting-started-video.jpg)](https://www.youtube.com/watch?v=csfHAbr5ilI&list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa)
4*05767d91SRobert Wu
5*05767d91SRobert WuOboe is a C++ library which makes it easy to build high-performance audio apps on Android. It was created primarily to allow developers to target a simplified API that works across multiple API levels back to API level 16 (Jelly Bean).
6*05767d91SRobert Wu
7*05767d91SRobert Wu## Features
8*05767d91SRobert Wu- Compatible with API 16 onwards - runs on 99% of Android devices
9*05767d91SRobert Wu- Chooses the audio API (OpenSL ES on API 16+ or AAudio on API 27+) which will give the best audio performance on the target Android device
10*05767d91SRobert Wu- Automatic latency tuning
11*05767d91SRobert Wu- Modern C++ allowing you to write clean, elegant code
12*05767d91SRobert Wu- Workarounds for some known issues
13*05767d91SRobert Wu- [Used by popular apps and frameworks](https://github.com/google/oboe/wiki/AppsUsingOboe)
14*05767d91SRobert Wu
15*05767d91SRobert Wu## Documentation
16*05767d91SRobert Wu- [Getting Started Guide](docs/GettingStarted.md)
17*05767d91SRobert Wu- [Full Guide to Oboe](docs/FullGuide.md)
18*05767d91SRobert Wu- [API reference](https://google.github.io/oboe)
19*05767d91SRobert Wu- [History of Audio features/bugs by Android version](docs/AndroidAudioHistory.md)
20*05767d91SRobert Wu- [Migration guide for apps using OpenSL ES](docs/OpenSLESMigration.md)
21*05767d91SRobert Wu- [Frequently Asked Questions](docs/FAQ.md) (FAQ)
22*05767d91SRobert Wu- [Wiki](https://github.com/google/oboe/wiki)
23*05767d91SRobert Wu- [Our roadmap](https://github.com/google/oboe/milestones) - Vote on a feature/issue by adding a thumbs up to the first comment.
24*05767d91SRobert Wu
25*05767d91SRobert Wu### Community
26*05767d91SRobert Wu- Reddit: [r/androidaudiodev](https://www.reddit.com/r/androidaudiodev/)
27*05767d91SRobert Wu- StackOverflow: [#oboe](https://stackoverflow.com/questions/tagged/oboe)
28*05767d91SRobert Wu
29*05767d91SRobert Wu## Testing
30*05767d91SRobert Wu- [**OboeTester** app for measuring latency, glitches, etc.](apps/OboeTester/docs)
31*05767d91SRobert Wu- [Oboe unit tests](tests)
32*05767d91SRobert Wu
33*05767d91SRobert Wu## Videos
34*05767d91SRobert Wu- [Getting started with Oboe](https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa)
35*05767d91SRobert Wu- [Low Latency Audio - Because Your Ears Are Worth It](https://www.youtube.com/watch?v=8vOf_fDtur4) (Android Dev Summit '18)
36*05767d91SRobert Wu- [Winning on Android](https://www.youtube.com/watch?v=tWBojmBpS74) - How to optimize an Android audio app. (ADC '18)
37*05767d91SRobert Wu
38*05767d91SRobert Wu## Sample code and apps
39*05767d91SRobert Wu- Sample apps can be found in the [samples directory](samples).
40*05767d91SRobert Wu- A complete "effects processor" app called FXLab can  be found in the [apps/fxlab folder](apps/fxlab).
41*05767d91SRobert Wu- Also check out the [Rhythm Game codelab](https://developer.android.com/codelabs/musicalgame-using-oboe?hl=en#0).
42*05767d91SRobert Wu
43*05767d91SRobert Wu### Third party sample code
44*05767d91SRobert Wu- [Ableton Link integration demo](https://github.com/jbloit/AndroidLinkAudio) (author: jbloit)
45*05767d91SRobert Wu
46*05767d91SRobert Wu## Contributing
47*05767d91SRobert WuWe would love to receive your pull requests. Before we can though, please read the [contributing](CONTRIBUTING.md) guidelines.
48*05767d91SRobert Wu
49*05767d91SRobert Wu## Version history
50*05767d91SRobert WuView the [releases page](../../releases).
51*05767d91SRobert Wu
52*05767d91SRobert Wu## License
53*05767d91SRobert Wu[LICENSE](LICENSE)
54*05767d91SRobert Wu
55