Behold the biggest update since the day of the initial release. Ableton Link, 2-column view, pitch and velocity settings, and more.
Ableton Link support: be sure to allow the app to find and connect to devices on the local network. When enabled - BPM range is limited to 20...999 by the protocol.
Sequencer as a separate AudioUnit: a much-requested feature that makes perfect sense.
Two-column view for wide screens (iPads or iPhones in landscape mode): like on the header picture of this page. The UI may be forced to render as single column using a toggle under the settings menu. Yes, the bottom "extra" menu was renamed to "settings".
Per-note pitch and velocity setting: another requested feature that makes perfect sense. Initially, I viewed the app as a weird kind of drum machine, and drums usually don't vary in pitch while being played. But the app aspired to more versatility than a mere drum machine, and hopefully, setting pitch per note is doing justice to that statement.
BPM sync via midi clock: I'd suggest using Abelton Link, but if you're into this kind of thing - the toggle is in the midi io submenu.
Fixes or minor improvements:
Last selected presets, gain, and various settings and toggles are now persisted to be restored on startup.
It's now possible to set fractional BPM: it wasn't possible to set BPM values between, say, 6 and 7 bpm before.
Fixed AudioUnits' viewport settings allow for correct resizing and scrolling of AU.
The "rays" graphics around the workspace (the place where you enter notes, below the navigator) performance improvement: it used to be created using, essentially, vector graphics. 168 rays have been drawn programmatically on each re-paint, which overloaded the UI thread. Now it's a much-faster implementation based on a raster image. Unfortunately, the SVG solution was even slower, even though it looked as good as the programmatic solution.
Extensive refactoring of UI components hierarchy due to the requirement to have sequencer as AU.
Extensive refactoring of re-triggering logic: now re-triggering logic happens when you change a sequence instead of "live" on-demand computation on the audio thread.
Accounting of device safe areas: e.g. avoiding putting important staff behind iPhone notch.
AU params list cleaning: in the 8-voice synth, the AU params list used to have params for the other 3 non-usable synths.