Syntheogen™ is a step sequencer and synthesizer I developed for Android phones and tablets:
I started this project because I thought it would be really fun. Looking back, though, it was just a pain in the ass. Android is a frustrating platform, and some of my design choices made the project harder than it needed to be. The app turned out well — it's really fast, the sound quality is good, and there are some interesting UI features — but I have no desire to work on it again. Maybe I will open-source it some day.
Anyway, Syntheogen was mostly written with C++ and the Android NDK. Production builds targeted Android, but the app also runs on Windows, which I used for development and testing. It was extra work to make everything cross-platform, but it ultimately saved a lot of time.
The interface was built on a custom GUI framework. The sequencing and synthesis engines are also custom designs, and the sequencer offers features not found in other music apps: measures can be sized and divided almost arbitrarily, patterns of different length can be mixed in the same loop, and notes can be tied to produce legato phrases of any length.