[andraudio] New Android music synthesizer in development
w.boeke at upcmail.nl
Sun May 27 03:20:25 EDT 2012
That's a Good Thing that somebody working at Google enters this list,
and even about a subject that's my favorite: the synthesizer. Actually,
I published one as an open source project, it is at
This is an app for tablets, I also sell it via the Market.
As you may know the main subject in this group is audio latency, which
seems to be a big and unsolvable problem for the android platform. I my
synthesizer I had to take many measures to conceal the effects of this.
About FM synthesis and DX7 emulation: I have some points about this. You
said that FM synthesis is a good match for an Android app, however the
DX7 contains a lot of envelope generators and routing controls to get an
acceptable and natural sound, so it's not simple to perform this in
software. At that, it is very difficult to get the sound that you want
because the sounding result of a patch is so unpredictable. At Yamaha
only some super specialists could program the DX7.
Your project might spark some discussion about music software in this
group. I hope so, because audio latency is becoming a depressing subject
On 05/27/2012 02:44 AM, Raph Levien wrote:
> Android audio enthusiasts,
> I'm writing to let this list know about a new project to create an
> open source synthesizer for Android. It's still rough and
> work-in-progress, but at a playable state, and has some very
> interesting characteristics.
> The project is here:
> You'll have to build from source. It's a little tricky (it has NDK
> and protocol buffers in addition to the usual Eclipse project layout),
> but shouldn't be a challenge for experienced people.
> Here are some of the interesting features:
> * Accurate DX7 simulation (fairly complete), based on a very
> careful and precise analysis of a real DX7s. There's some writeup on
> the site's wiki, but more in the queue.
> * Pressure sensitivity for velocity control.
> * Lock-free ring buffer (with appropriate memory barriers) so the
> sound output thread is always able to proceed, no glitching.
> * USB Host mode so synth can be played with physical MIDI controllers.
> * Portable C++ sound engine optimized for arm7. All internal
> calculations are 32-bit fixed point.
> * Uses OpenSL ES for sound output.
> I feel FM synthesis is a good match for an Android app because of
> its extremely low RAM requirements and diversity of sound types. It's
> good at strings, brass, organs, tuned percussion, and has some classic
> sounds like E. PIANO 1 and the DX bass, but has some weaknesses too.
> In particular, piano patches are only pretty good, and drums are
> particularly weak. I'm working on some virtual analog modules, which I
> think could help fill in the gaps. So far I have a very good sawtooth
> (band-limited wavetables with interpolation so there's no glitches
> even when changing pitch) and a basic 24dB/octave resonant lowpass filter.
> My main interest is the sound engine, but I've also been tinkering
> with the UI as well (it's based on original code by Bryan Klimt). I'm
> open to collaborating with other people who are building Android music
> apps - some of the kinds of things I think might be interesting are
> using the sound engine to play a dynamic soundtrack for a game.
> Also, the sound engine itself is designed to be portable, not
> Android-specific. I'm doing my development on a Mac and have a very
> primitive Cocoa app for playing sound out from MIDI in.
> Last note - I work for Google (on fonts), but this is a personal
> I hope people find this interesting!
> andraudio -- A discussion list for Android audio developers
> For information about subscribing and unsubscribing, go to:
More information about the andraudio