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.

Is there any app that can transpose one midi signal by another?

[midi source A note value] + [midi source B note value ] = [output note value]

In practice, it’d probably have to do two further things:

  • prioritise the note on/off values of one, the other, or combination of both, according to a setting (and sampling and holding the last note value of each input)
  • if the two notes are adding, then they’ll end up higher than either, so it’d be nice to bring them back down

I can’t think of any app that allows this to occur. I don’t think it can be done in midi flow, or timid stuff, or midi designer, or, well, anything.


  • Maybe MidiBridge stream byter. (You would have to ask them it's too complicated for me)

  • ScriptSONIC for sure and Audulus maybe(I didn't delve into midi in side of it) but with some variables and stuff it could be done IMO. I will try both ways and report.

  • edited March 2016

    ETA: Misunderstood q.

  • With Audulus is doable and pretty straight forward: one midi in is the main pitch modulator for the sound source, then with a math operator(sum, multiply, divide, whatever) or an expression you can easily sum/multiply/divide/etc the first pitch impulse. I don't know how but I know you can, you can cycle the secondary I put to 12 semitones so you can get a quantized pitchbend, specially if you put a slew limiter in between.

    If you know some js code with script sonic it could be even easier. Same process different tools.

  • Sure you can do it with Stream Byter but I'm not sure how either. Do you need it to be in real time? If not, you can probably sort out a way to make a list to import into the MIDIFlow Note Mapper.

    Curious to hear what you're doing with this so I hope you find something.

    [midi source A note value] + [midi source B note value ] = [output note value]

    What will happen when two notes add up to more than 127?

  • edited March 2016

    I’m currently doing it in Adults but not sure how to get it back out as the final transposed product back in MIDI form, to drive other synths with.

  • So far looks like Audulus doesn't have a midi out

  • Except pointing one sequencer to another and changing the note, like for example FugueMachine into StepPolyArp, maybe this would be interesting for you? a solmisation machine (;

  • Fyi Xythesizer is transposed by midi note input also

  • I suppose the simplest way of explaining it is that it is temporally deserialised multi-tape quantum superposition. That should clear things up.

  • @u0421793 said:
    I suppose the simplest way of explaining it is that it is temporally deserialised multi-tape quantum superposition. That should clear things up.

    Nope. And while I liked the sonic madness of the two videos, that didn't really help clarify it either.

  • edited March 2016


  • edited March 2016


  • edited March 2016

    Yes, I think that’s the thing. In Adults I made four midi inputs, channels 1, 2, 3, 4. In Fugue Machine I set it to four midi outputs, channels 1, 2, 3, 4. These become referred to as A, B, C, D in Adults and there are six combinations available: A+B; A+C; A+D; B+C; B+D; C+D.

    In Adults I made a ‘transposer’ which is essentially a subtractor then an adder — one input has “middle C” subtracted from it (for that is the arbitrary centre of the MIDI range) and then that product is added to the other input.

    Thus, input X notes that are lower than “middle C“ drag input Y lower, if input X is the same as input Y the result is the same, and if input X is higher than input Y it drags it higher. A (hopefully) properly scaled transposition result.

    Therefore I was incorrect up there where I suggested:
    [midi source A note value] + [midi source B note value ] = [output note value]

    It should be
    ([midi source A note value] − “middle C” note value) + [midi source B note value ] = [output note value]

    In Adults I made a quad synth that is essentially four quite simple single sawtooth VCO mono synths. The amplitude envelopes and the VCF envelopes are triggered from OR-ing combinations of input A, B, C or D (I’ve only used four of the six OR combinations).

    Similarly, the VCO frequency is governed not by any single Fugue Machine playhead, but only using a transposer module result (I’ve only used four of the six possible transposer combinations).

    Now, if Fugue Machine could do this by itself!

    Possible improvement areas:

    • Different decisions for what constitutes a note gate — one or both channels (at the moment I’m OR-ing them, I had it set to XOR prior, that’s also useful but less note-dense).
    • Different decisions regarding floor and ceiling of note transpose actions.
    • Possibly different transfer functions or window discriminator choices for those people who like to do that ‘“keep everything in tune” sort of thing.
    • More than two transposing inputs? (Isn’t that just another transposer after the first?)

    Anyway, that’s kept me solidly up for a couple of days, so I’m putting this aside for now. It’s too addictive.

    later edit: I’ve taken out the links to the older videos because the older experiments are not as good a representation of the transposing as the later video, which is now the only one people should go to:

Sign In or Register to comment.