Hemiola Android App Preview 2
EDIT 26/06/2020: A new preview post has been published here.
Hi guys,
one entire month has passed since my last post here and many things have happened to my not-so-little-any-more Android companion app project.
You can read my first preview here.
First of all, the app isn’t called “Hemiola Mini” any more, because now it supports any MIDI USB/Bluetooth device: now it’s just “Hemiola”.
In fact I spent some time to implement a few specific controls for the Akai EWI USB too, as you can see from the following screenshots.
There are a few softwares out there that allow you to control the USB EWI configuration, but this is the first Android app to do that, as far as I know. The app is internally organized in "modules" and adding support for a new Wind Controller/MIDI device should be relatively quick.
There is another big improvement: now we have a “main” device and an “aux” device: you can connect two different Midi devices at the same time and have them control the app. For example, you can have the Aerophone Mini connected via Bluetooth and another midi control pad connected through the USB port. More on this later.
But most of my last month’s spare time has gone into the improvement of the built-in analog synthesiser. I moved the whole sound generation module from Java Android to native Android, using a wonderful and relatively recent audio library: Oboe. The results are impressive: all the latency problems are completely surpassed and now, if your phone is enough powerful (let’s say a decent phone/tablet not older than 2/3 years), you can have latencies comparable to those of an iOS device. On my Huawei P30 PRO, the Aerophone Mini, while controlling the app’s analog synth, is playable without noticeable delays even via Bluetooth.
Here are a few screenshots of the synth module.
As you can see, now we have:
Main tuning control and stereo output with balance;
3 oscillators with selectable wave forms, octaves, detuning, transposing and volume;
a Low Frequency Oscillator that can control vibrato, tuning, pitch, Low-pass filter cutoff frequency and Stereo spread;
a Low-pass filter;
a Noise generator;
An ADSR loudness controller;
A Digital Delay.
In the Audio section (the last one), you can select which Android audio engine to use, but there is also an Auto-tuning function for the audio buffer size: this simply means that Hemiola should always find the optimal configuration for the minimum possible latency.
In the last picture you can see the Analog Synth Menu: you can copy and paste patches (they are just texts), and backup and restore the whole soundbank (100 to-be-programmed sounds) to/from text files.
Last-but-not-least, all the knobs in the Analog synth tab are controllable via MIDI CC messages, real-time.
Configuring a custom mapping is as easy as playing the CC on the instrument, selecting the associated knob from the right menu and tapping “Add”. This MIDI CC mapping feature is the original reason why now you can connect two devices at the same time: with a MIDI control surface or pad you can change the sound real-time without messing with screen tapping and dragging.
The analog synth is now working as a background process: you can pause/resume/stop it from the notification, and continue to play without having to keep Hemiola in the foreground.
Do you like it? Do you have comments? Suggestions? Let me hear from you!