PocketBand is a modular synthesizer containing various note generators, note effects, sound effects and a generic modulation system which allows to all effect parameters to be modulated and any of the available modulation sources.
The app is mainly experimental and not (yet) really intended for production use.
In terms of its function, it explores the following topics:
- Various forms of sound generation (samples, synthesis)
- Modular synthesis
- Unusual modulation sources such as device sensors
In terms of development, the app uses the following technologies:
- Kotlin Multiplatform (KMP)
- Compose Multiplatform (CMP)
- Clean architecture
- Real-time processing and interop with native libraries
You can find PocketBand on Google Play.
In trying to explore the capabilities and native interop of Compose Multiplatform, PocketBand can be built for macOS:
$ ./gradlew packageDmg
Note that the app generated by this is based on Java, but the CMP build process will automatically wrap this with a JRE so from a user's perspective it behaves more or less like a native app.
PocketBand is experimental. There are a lot things which can be improved and added. I'm absolutely looking for collaboration. Here is a brief, and by no means complete, list of things I'd like to see:
- UI improvements to make things more visual and ergonomic
- Translations - currently all texts are hardcoded and English
- Documentation
- Additional processors (audio, note effects, note generators)
- Port to iOS
- Better support for large screens
- Import/export of instruments
PocketBand uses the following third party libraries. The according licenses can be found in the
3rd_party_licenses folder:
- The Synthesis ToolKit in C++ (STK) (STK license)
- SQLDelight (Apache License 2.0)
- Compose Stable Marker (Apache License 2.0)
- Reorderable (Apache License 2.0)
- readerwriterqueue (simplified BSD)