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.

Question about how Apps communicate to provide clock/sync capability

I was thinking about the idea of somehow emulating clock/sync messages, and using them like a gate trigger to cause a (any that could) sequencer to advance/play one beat/step, each time a gate trigger is received.

How do clock/sync messages work?

Might their be a way to use mozaic, or some other App, to generate a type of clock pulse that a sequencer would use as a "single step" playhead advance trigger?

I have an idea of programing a sequence with notes. Putting it on Play. And then having a way to manually tap a Mozaic button or a keyboard key, and having the sequencer use each trigger event to step the playhead forward one beat of play for each trigger.

Does Midi clock work like that? Is it a series of timed pulses that a sequencer uses to keep time?

Or, might there be some other way to "fool" a sequencer into advancing it's play head in response to some other type of event that can be sent manually, one beat at a time?

Aside from manual control.. I was thinking this could be a cool technique to set up conditions that would cause a sequencer to play a step. Such as using Mosaic to listen for a specific note to be played, and each time that note is played it causes the sequencer to play the next beat in it's play sequence.

It might also be used as a type of clip launcher, if each trigger event could be programed to start the sequencer playing a number of steps, and then stop.

I'm imagining this, as clock sync working like a timed series of gate triggers that can be sent to a sequencer as desired, and the sequencer won't care if they're in time of not, because it just waits for a "sync byte" and advances it's playhead each time it receives one.

But I don't know how sync methods actually work.

Comments

  • wimwim
    edited September 2020

    Whew. A lot to unpack there... I'm not sure where to begin.

    There's MIDI Clock and there are the various ways that iOS can sync apps.

    • MIDI Clock is a MIDI message consisting of three bytes: F8 00 00 (in hex). It can be passed between apps and hardware that support MIDI Clock.
    • IAA sync is an internal host-to-app synchronization that doesn't use MIDI messages.
    • AUv3 host sync is another host-to-app synchronization not using MIDI messages.
    • Ableton Link is an independent "metronome" type synchronization that is also optimized to work over WiFi.

    Of those, only MIDI Clock is applicable to what you're describing. MIDI Clock isn't likely to work for advancing a sequencer step by step in most apps. The exception to that would be miRack, where this could be practical with most of the sequencers in it.

    AUM does pass through midi clock messages. Other hosts I've tried do not. In AUM, Mozaic can see (or generate) these messages and use them to trigger actions. For instance, you could take an incoming clock message and use it to trigger a note or CC. Or, you could generate a clock message whenever you like and pass it to an app like miRack. However, this could not be used to sync other AUv3 apps in the same host. It would only work to a standalone app or hardware.

    Most sequencers don't have a "next step" trigger. If the sequencer doesn't have such a trigger, then there's no message you can craft that would do that. Most of the miRack sequencer modules do use a midi clock pulse as a trigger to advance the playhead, so there is promise there.

    Hypno Sequence is a Mozaic script that can advance a sequence one step at a time based on note input. Every time you hit a note, it triggers a step in the sequence. But, you build the sequence internally, it doesn't trigger another sequencer. It might be of use to you though.

  • @wim
    Cool!... thanks for your help with this.

    Do you know of any sequencers that DO have a "next step" trigger?

    I have miRack, but I haven't yet done much with it.

    Do you know the name of a miRack sequencer that you'd recommend using this way?
    Hopefully one that has at least 16 steps. The more steps the better.

    I'll check out the Mozaic script you linked to.

    Thanks again. :)

  • I just did a quick test, trying to send a clock pulse on-demand from Mozaic to miRack AUv3 in AUM. No luck.

    But it did work sending to the Standalone app.

  • wimwim
    edited September 2020

    @horsetrainer said:
    @wim
    Cool!... thanks for your help with this.

    Do you know of any sequencers that DO have a "next step" trigger?

    No, I'm not aware of any. But that doesn't mean there aren't any.

    I have miRack, but I haven't yet done much with it.

    Beware. If I'm any judge of character, it will suck you in if you do start go get into it. You might not come back up for air for a long time. I suggest putting your affairs in order first.

    Do you know the name of a miRack sequencer that you'd recommend using this way?

    The miRack sequencers are a hugely varied mixed bag, and it very much comes down to personal preference. I diverted for probably two full weeks exploring them. The conclusion ... none of them are super practical for what I do, yet I'm somehow addicted.

    The miRack sequencers virtually all use a clock pulse to advance. So, they all should work if you can work out how to send the right pulse on demand. After much, much messing about I tend to use Big Button Seq 2 for quick live-looping, zOù MAï for melodic, and Gate Seq64 for drums. But I continually mess with others. I still haven't explored all of them yet!

    Hopefully one that has at least 16 steps. The more steps the better.

    All of those have more than 16 steps available in various configurations.

    I'll check out the Mozaic script you linked to.

    You may also be interested in peaking into the source code of MIDI Clock Tool to see a little about clock messages in Mozaic scripting. But, keep in mind that it can only work for sending MIDI Clock to standalone apps or hardware. It can't send to other AUv3 apps within the host.

  • Or, might there be some other way to "fool" a sequencer into advancing it's play head in response to some other type of event that can be sent manually, one beat at a time?

    Do you know of any sequencers that DO have a "next step" trigger?

    Interesting topic. Hmmm, this is how analog sequencers work. They require a pulse to drive their lanes. I built something similar in Zmors Modular years ago but it's timing is poor so I no longer use it. Surely this can be built in Drambo or Audulus? I haven't spent any time in those or miRack yet.

    Thesys can be triggered by note input, but unfortunately it resets the sequence to 0 with each incoming event.

  • Here's a very simple example of a working configuration. Each C2 note played on the AUM keyboard triggers the sequencer to advance one step. Piece of cake, and will work with any miRack sequencer I can think of. No MIDI Clock or sync involved.

  • Beautiful! Now there's another app I need to learn. :smile: Still haven't got around to learning Mozaic either.

  • @wim
    Thanks for all the good instructions. With a bit of fiddling I now have it up and running in miRack.
    Next step is to try out the different miRack sequencers, and see which one I find easiest to work with.
    :)

  • What would be great is if there were a way to divide and multiply midi clocks, so that different apps could be running at different clock speeds but still all synced to a common beat.

  • @Wrlds2ndBstGeoshredr said:
    What would be great is if there were a way to divide and multiply midi clocks, so that different apps could be running at different clock speeds but still all synced to a common beat.

    Unfortunately, that can’t be done with AUv3 apps in a host, unless it was part of the host itself.

    The MIDI clock tool I linked above will work for standalone apps or hardware that accept midi clock though.

Sign In or Register to comment.