Skip to main content

Roadmap


Bugs

Terminating app while sequencer is running needs MIDI Flush

At the moment, if you terminate the app while the sequencer is running, any held notes will not turn off. This can cause hung notes on any devices you're sending MIDI to. Will fix this ASAP.

Envelope drawing issue at high modulation rates

In an automation envelope, if you set a point segment's modulation rate to a high rate and zoom the envelope out horizontally, the modulation will not draw properly. It'll play fine, but the visual representation will be aliased. I'll fix this soon.

Possible image quality issue when moving between displays on Mac

On Mac, all of Fugue Machine Rubato's images will be drawn for the resolution of the display it was launched on. While the application is running, if you move its window to a higher resolution display, images may not be scaled properly and appear blurry. I will fix this, but it's a bit of a time consuming task due to the way Fugue Machine Rubato manages image data. In the meantime, to workaround this issue, please launch the application in the window you want to use it in.


Improvements

'Audio Engine Not Running' Alert annoyance

You'll see this alert when the audio engine is no longer running. This can happen in the standalone app at the OS's discretion, or in the AUv3 plugin at both the OS's discretion and the AUv3 host's discretion. It won't happen in the normal usage of the app, but can happen in situations such as:

  • putting your device to sleep while the sequencer is not running.
  • receiving a phone call while the sequencer is running.
  • the host not rendering the plugin due to either the host not running or the plugin being bypassed. Not all hosts do this, but some do.

When you receive this alert in the standalone app, a "Restart" button appears with the alert allowing you to restart the audio engine. However, if this happens in the AUv3 plugin, you must consult the AUv3 host for resuming the audio engine.

note

When the 'Audio Engine Not Running' Alert is shown, you can not interact with the application at all. This is due to Fugue Machine Rubato's deep reliance on the audio thread. For example, this reliance allows Fugue Machine Rubato to have musically quantized Pattern loading, which is a feature I believe worth the annoyance of this alert. I will revisit this in the future though, as there may be a way around it, and it can be quite annoying when it happens when hosted in an AUv3 host.

Keyboard View improvements

At the moment, the Keyboard View that can be shown for every Main Interface parameter is a bit crazy for some parameters, especially when displayed on iPhones or within a window with a narrow width. I plan to improve this, but will have to wait a bit.

File System improvements

The file system interface was designed to prioritize the pattern loading. More specifically, its ability to load from disk on tap-down and launched quantized to the musical grid in on tap-up. It was a ton of work.

I'm planning to add more features to the file system soon, perhaps the features you'd expect in a file system: different sorting options, search, etc..


Features

Loading Fugue Machine Classic patterns

...

Plugin support for Mac

...

Send and automate MIDI CC messages

...

MIDI Input control

...

Automated filename controls

...

New Pattern options

...

MIDI Clock In offset

At the moment, there is no way to offset a received MIDI Clock signal, and thus you may experience latency when syncing to MIDI Clock. In Fugue Machine 1, there is a feature called Start Message Offset, but I eventually realized that this solution was inherently flawed. More specifically, with Start Message Offset, you'd set an extra number of ticks that would tick when a MIDI Start message was received, which would jump the sequencer forward in a time a bit. The issue with this approach though is that the number of ticks needed varies depending on the tempo. So for example, if you dialed in perfectly for 120 bpm, it would become off at slower or faster tempos.

I plan to look into another solution for this in the future, but it's not so straightforward, and maybe not possible without offering a completely different approach to syncing to MIDI Clock. The current approach is extremely solid, as its driven directly by the incoming MIDI Clock signal, but the drawback to that is that it will be delayed due to latencies introduced by the OS.

The best solution for this problem though is to offset the generated MIDI Clock that is sent to Fugue Machine Rubato from the source, if the source allows it to be offset.