Audiobus: Use your music apps together.
What is Audiobus? — Audiobus is an award-winning music app for iPhone and iPad which lets you use your other music apps together. Chain effects on your favourite synth, run the output of apps or Audio Units into an app like GarageBand or Loopy, or select a different audio interface output for each app. Route MIDI between apps — drive a synth from a MIDI sequencer, or add an arpeggiator to your MIDI keyboard — or sync with your external MIDI gear. And control your entire setup from a MIDI controller.Download on the App Store
Audiobus is the app that makes the rest of your setup better.
New Mozaic script - "Humanise"
I searched for something like this for a while, then decided it was quicker just to write it myself...
https://patchstorage.com/humanise/ is a simple Mozaic script to add a bit of randomness to quantised MIDI data. In my case, I wanted to be able to play some instruments slightly behind the beat, but you can go a bit further and simulate someone playing really badly if you prefer.
It's pretty simple. Put this script between your MIDI data stream (either a live instrument, or something like Atom 2), turn the 'MinOn' knob to e.g. 3 and every 'note on' going through Humanise will be delayed by 3 milliseconds (plus whatever small delay Mozaic itself introduces). If you leave 'MinOn' at 3 and turn 'RandOn' to e.g. 5, then every 'note on' going through Humanise will be delayed by a random amount between 3 and (3+5=8) milliseconds.
'MinOff' and 'RandOff' work the same way, but for 'note off' data.
Nothing else will change - your MIDI channel, note and velocity will be preserved, and any other MIDI messages should go through unchanged.
If you set 'RandOn' and/or 'RandOff' to anything other than 0, the random delay will be recalculated for every note.
Each of 'MinOn', 'RandOn', 'MinOff' and 'RandOff' can be set to values between 0 and 127, which gives you a ton of flexibility. If you want anything longer that that, then you can 'daisy chain' multiple Humanise instances together. You can also route different MIDI streams through separate Humanise instances to delay different instruments by different amounts.
If you want one instrument to be playing ahead of the beat, then just route every other instrument through Humanise and delay them slightly. The instrument that isn't going through Humanise will then sound like it's ahead of the beat.
Let me know if you use this, or want any related features. I thought about adding the facility to slightly randomise velocity, but don't have a use for it at the moment