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.

Request new Mozaic Scripts *HERE*

1545557596062

Comments

  • @wim said:

    @Ploe said:
    @wim
    Thank you very much for your „Simple Scaler“ script. Unfortunately polyphonic aftertouch data is not affected …

    You're right. I never considered the need for it. I'll open that one up again.

    If you do add the word “Pro” to your script name.

    What apps produce polyphonic after touch or does it require hardware like a Seaboard or a Osmose?

  • wimwim
    edited March 2023

    @Ploe said:
    @wim
    Thank you very much for your „Simple Scaler“ script. Unfortunately polyphonic aftertouch data is not affected …

    I've uploaded version 2.31 which hopefully supports poly aftertouch. I don't have any controllers that send it, so testing was pretty minimal. Please let me know if you run into any issues!

  • @wim said:

    @Ploe said:
    @wim
    Thank you very much for your „Simple Scaler“ script. Unfortunately polyphonic aftertouch data is not affected …

    I've uploaded version 2.31 which hopefully supports poly aftertouch. I don't have any controllers that send it, so testing was pretty minimal. Please let me know if you run into any issues!

    Wow, that was fast! :-)
    And it works perfect.
    Thank you very much, I‘ll buy you a beer at Superbooth, if you join this wonderful event.
    Skål,
    Plø

  • Sweet! I'm glad you pointed that one out @Ploe. It's something that definitely should be supported in such an app. I just never thought about it. 👍🏼

  • @wim said:

    @Ploe said:
    @wim
    Thank you very much for your „Simple Scaler“ script. Unfortunately polyphonic aftertouch data is not affected …

    I've uploaded version 2.31 which hopefully supports poly aftertouch. I don't have any controllers that send it, so testing was pretty minimal. Please let me know if you run into any issues!

    Thanks for the update! Is there a specific way to map the 4 custom scale pads so they are recallable? As when you for instance map pad 15 to a note and hold the note, in the same manner you have to hold the pad to recall a custom scale, when long pressing the 'controller' note it just quickly highlights the pad but never actually holds it long enough to be able to select a custom scale. I tried playing around with " default_long_press_time" but haven't had luck with setting that up to work yet.

  • wimwim
    edited March 2023

    @Mo13 said:

    @wim said:

    @Ploe said:
    @wim
    Thank you very much for your „Simple Scaler“ script. Unfortunately polyphonic aftertouch data is not affected …

    I've uploaded version 2.31 which hopefully supports poly aftertouch. I don't have any controllers that send it, so testing was pretty minimal. Please let me know if you run into any issues!

    Thanks for the update! Is there a specific way to map the 4 custom scale pads so they are recallable? As when you for instance map pad 15 to a note and hold the note, in the same manner you have to hold the pad to recall a custom scale, when long pressing the 'controller' note it just quickly highlights the pad but never actually holds it long enough to be able to select a custom scale. I tried playing around with " default_long_press_time" but haven't had luck with setting that up to work yet.

    No, there's no code in there to handle something like that. Unfortunately it wouldn't be very straightforward to add either.

  • @wim said:

    poly aftertouch. I don't have any controllers that send it, so testing was pretty minimal.

    Hello everybody, I'm pretty new here when it comes to leaving comments, but enjoy reading for a while.

    I would love to have a midi effect that can inject mpe-data into chords played via a non-mpe controller (or prerecorded or generated). Maybe just a couple of LFOs, that send on different midi channels only if a note is played. Maybe with control over the phase relationship between the LFOs and maybe with a bit of jitter. And perhaps with an option to send either polyafteryouch or cc74. There is a maxforlive device, that does something like that: https://zoftloud.com/product/autoslide

    This would be so cool to have for all the nice iOS mpe-synths.

    Is that possible in mozaic, and would someone like to code it? It might help with testing too ;)

    Or is there maybe an app, that already does that?

  • @tyslothrop1 said:

    @wim said:

    poly aftertouch. I don't have any controllers that send it, so testing was pretty minimal.

    Hello everybody, I'm pretty new here when it comes to leaving comments, but enjoy reading for a while.

    I would love to have a midi effect that can inject mpe-data into chords played via a non-mpe controller (or prerecorded or generated). Maybe just a couple of LFOs, that send on different midi channels only if a note is played. Maybe with control over the phase relationship between the LFOs and maybe with a bit of jitter. And perhaps with an option to send either polyafteryouch or cc74. There is a maxforlive device, that does something like that: https://zoftloud.com/product/autoslide

    This would be so cool to have for all the nice iOS mpe-synths.

    Is that possible in mozaic, and would someone like to code it? It might help with testing too ;)

    Or is there maybe an app, that already does that?

    That's an interesting one. I'm involved with another project right now, but might take a look into it down the road some time if no one else does.

  • Cool, thanks! Looking forward to it. Whoever might try it.

  • @wim said:
    No, there's no code in there to handle something like that. Unfortunately it wouldn't be very straightforward to add either.

    I understand and fortunately this is not a heavy weight one as an N-1 switch with multiple instances of your script is taking care of the custom ones now.

  • @Mo13 said:

    @wim said:
    No, there's no code in there to handle something like that. Unfortunately it wouldn't be very straightforward to add either.

    I understand and fortunately this is not a heavy weight one as an N-1 switch with multiple instances of your script is taking care of the custom ones now.

    I thought about it some more last night and it might not be as involved as I thought. So I might take a look at it sometime. I'm working on something else right now but maybe after that.

    Just to clarify - are you sending notes to the AUv3 parameters for those pads? Is that what you were looking at for engaging the preset pads?

    I was going to suggest using presets in the host and recalling those instead, but didn't know what host you're using. Glad you found a workaround for now.

  • Thanks for taking it in to consideration @wim Sending notes was solely ment to demonstrate the long-holding of the custom scale pads which I couldn't reproduce via any type of control configurations within any hosts.

  • @Mo13 said:
    Thanks for taking it in to consideration @wim Sending notes was solely ment to demonstrate the long-holding of the custom scale pads which I couldn't reproduce via any type of control configurations within any hosts.

    Utilizing the Pad 12 through Pad 15 AU parameters is one way this could work. Or I could set up some CC's that could be used for that purpose (for instance CC 20, value 64 to recall, value 127 to save or something).

    I'm not sure I'll do it, but I'll look into it.

  • Utilizing the Pad 12 through Pad 15 AU parameters is one way this could work. Or I could set up some CC's that could be used for that purpose (for instance CC 20, value 64 to recall, value 127 to save or something).

    I'm not sure I'll do it, but I'll look into it.

    Ofcourse CC's for that or anything really, at your pace.

  • Looking to control all the CC parameters on a Fred’s Lab Tooro

  • Hey Mozaic Magicians...

    Something I've been thinking about...

    How about a script that accepts midi data on 2 channels.
    Channel 1 is a "mask" that takes a series of held notes, i.e. a chord
    Channel 2 is where you can send in a series of notes, and all those notes are "snapped" down to the closest note defined by mask, ignoring octave (i.e. it doesn't matter what octave notes are held down for the mask... C3, E2, G-1)

    So if I hold C3, E2, G-1 on the chord mask channel

    If I play:
    C1 = C1
    D4=C4
    E-2=E-2
    F3=E3

    So, the chord mask ignores octave, the played notes are snapped down to the masked notes but stay in the octave they were played...

    Is something like that possible?

    It's kind of a transposition/scale snap, but it's a chord snap... That could be the name I suppose?

    ???

  • McDMcD
    edited April 2023

    @nerVe said:
    Looking to control all the CC parameters on a Fred’s Lab Tooro

    Mozaic’s knobs are the best way to provide controls for CC’s. The document shows around 80+ distinct CC controls for this synth. I could imagine 1 (with SHIFT controls to switch between screens of knobs) or 4 Mozaic scripts so all 80+ knobs could be displayed at once using the 22 knob layout option:

    Which one would you like: 1 screen with SHIFT or 4 discrete displays?

    Mozaic provides features to label knobs and display the current set value… as the knob is changed the CC value is sent out on a programmed MIDI channel(s).

    NOTE: Mozaic only runs as an AUv3 MIDI FX app so you would need to run 1 or 4 instances in an AUv3 Host like AUM.

  • @MonkeyDrummer said:
    Hey Mozaic Magicians...

    Something I've been thinking about...

    How about a script that accepts midi data on 2 channels.
    Channel 1 is a "mask" that takes a series of held notes, i.e. a chord
    Channel 2 is where you can send in a series of notes, and all those notes are "snapped" down to the closest note defined by mask, ignoring octave (i.e. it doesn't matter what octave notes are held down for the mask... C3, E2, G-1)

    So if I hold C3, E2, G-1 on the chord mask channel

    If I play:
    C1 = C1
    D4=C4
    E-2=E-2
    F3=E3

    So, the chord mask ignores octave, the played notes are snapped down to the masked notes but stay in the octave they were played...

    Is something like that possible?

    It's kind of a transposition/scale snap, but it's a chord snap... That could be the name I suppose?

    ???

    Detecting the “chord” is pretty easy. You use the “modulo 12” operator on each chord tone and get the scale tone from 0 (C) to 11 (B).

    Then all incoming notes get either passed through/upshifted/downshifted or closest chord tone by first using divide by 12 to determine the octave and then adding the 0-11 chord tone value.

    The main reason I’m not eager to write this one is that the output would tend to sound like arps of
    Chords and single note input creates this type of effect and we have them by the carload.

    Of more interest is mapping to a scale that suits the input chord. I’m pretty sure we also have a lot of these as well. Once you pick a scale there are 7 chords that fit for the same melodic scale in the most diatonic sense. And Rozeta Scaler provides that feature to up/down shift notes you play into a currently configure scale so this is re-inventing the wheel. A nice programming exercise that very few would use because Scaler and other FX apps cover this need so well.

  • wimwim
    edited April 2023

    @MonkeyDrummer - Dynamic Scale Quantize is pretty similar to what you want. Maybe someone could modify that one to work the way you describe.

    It wouldn't be very hard to modify Simple Scaler to do what you want either. All the parts are there except listening for notes on a particular channel to toggle scale notes on. Not saying I'm interested in doing that, but maybe someone else would be up for it. You'd need to clarify whether or not the chord would have to be held down on the chord channel all the time. Also what happens when there are no notes on the chord channel. For starters.

  • wimwim
    edited April 2023

    @nerVe said:
    Looking to control all the CC parameters on a Fred’s Lab Tooro

    Mozaic isn't a great tool for that many CC's as it only has 22 knobs. As mentioned, you would need more than one instance, or to use something like tapping shift to flip between pages of knobs. There are only limited number of characters to label knobs as well. Sure it's doable, but I don't know how satisfying the results would be.

    For something with that many controls you might want to consider something like Midi Designer Pro 2 or TouchOSC.

    Loopy Pro, believe it or not, would be great for this as well.

  • @McD said:

    Then all incoming notes get either passed through/upshifted/downshifted or closest chord tone by first using divide by 12 to determine the octave and then adding the 0-11 chord tone value.

    Could be overkill. CustomScale is quite happy to define chords as if they are severely limited scales. Just update it whenever a new note comes in and blank it first if there are no other notes currently playing. Then use ScaleQuantize.

  • @wim said:
    @MonkeyDrummer - Dynamic Scale Quantize is pretty similar to what you want. Maybe someone could modify that one to work the way you describe.

    It wouldn't be very hard to modify Simple Scaler to do what you want either. All the parts are there except listening for notes on a particular channel to toggle scale notes on. Not saying I'm interested in doing that, but maybe someone else would be up for it. You'd need to clarify whether or not the chord would have to be held down on the chord channel all the time. Also what happens when there are no notes on the chord channel. For starters.

    The goal is to match it up with Cem’s InTheory triggering it with drum pads… So I’d have some chord sequencer (like ChordJam) playing held chords on one synth, then I’d trigger InTheory via manually played e drums, thus essentially performing an arp where I control the rhythmic triggers.

    There’s currently no way to do this with anything I’ve found for Mozaic… Or any other app, or combo of apps I’ve found.

  • @MonkeyDrummer said:

    @wim said:
    @MonkeyDrummer - Dynamic Scale Quantize is pretty similar to what you want. Maybe someone could modify that one to work the way you describe.

    It wouldn't be very hard to modify Simple Scaler to do what you want either. All the parts are there except listening for notes on a particular channel to toggle scale notes on. Not saying I'm interested in doing that, but maybe someone else would be up for it. You'd need to clarify whether or not the chord would have to be held down on the chord channel all the time. Also what happens when there are no notes on the chord channel. For starters.

    The goal is to match it up with Cem’s InTheory triggering it with drum pads… So I’d have some chord sequencer (like ChordJam) playing held chords on one synth, then I’d trigger InTheory via manually played e drums, thus essentially performing an arp where I control the rhythmic triggers.

    There’s currently no way to do this with anything I’ve found for Mozaic… Or any other app, or combo of apps I’ve found.

    What would happen to played notes if there are no notes playing on the chord channel?

  • @MonkeyDrummer said:
    The goal is to match it up with Cem’s InTheory triggering it with drum pads…

    I just checked into “In Theory” and it accepts triggers for the displayed PADs from “white notes” above and below C4. How many drum pad triggers will you have and what musical notes will they send?

    For my purposes less than 5 notes is not very interesting.

    You must configure “In Theory” to output notes for a scale and there are many scales to choose from.

    I’ll consider the following in my research after I understand how you intend to use In Theory.

    So I’d have some chord sequencer (like ChordJam) playing held chords on one synth, then I’d trigger InTheory via manually played e drums, thus essentially performing an arp where I control the rhythmic triggers.

    Arg… Chordjam in not an AUv3. Too bad. It’s got interesting features.

  • wimwim
    edited April 2023

    @TheOriginalPaulB said:

    @McD said:

    Then all incoming notes get either passed through/upshifted/downshifted or closest chord tone by first using divide by 12 to determine the octave and then adding the 0-11 chord tone value.

    Could be overkill. CustomScale is quite happy to define chords as if they are severely limited scales. Just update it whenever a new note comes in and blank it first if there are no other notes currently playing. Then use ScaleQuantize.

    I don't think CustomScale would cut it in this case. Changing the scale on the fly like this, the potential for stuck notes is through the roof. Robust note on/off control is critical.

    [edit] nvm. I didn't think that through. I had to resort to another method in one script and thought that was the reason. But it wasn't CustomScale is fine for this.

  • @wim said:

    @MonkeyDrummer said:

    @wim said:
    @MonkeyDrummer - Dynamic Scale Quantize is pretty similar to what you want. Maybe someone could modify that one to work the way you describe.

    It wouldn't be very hard to modify Simple Scaler to do what you want either. All the parts are there except listening for notes on a particular channel to toggle scale notes on. Not saying I'm interested in doing that, but maybe someone else would be up for it. You'd need to clarify whether or not the chord would have to be held down on the chord channel all the time. Also what happens when there are no notes on the chord channel. For starters.

    The goal is to match it up with Cem’s InTheory triggering it with drum pads… So I’d have some chord sequencer (like ChordJam) playing held chords on one synth, then I’d trigger InTheory via manually played e drums, thus essentially performing an arp where I control the rhythmic triggers.

    There’s currently no way to do this with anything I’ve found for Mozaic… Or any other app, or combo of apps I’ve found.

    What would happen to played notes if there are no notes playing on the chord channel?

    Same thing as a tree falling in the forest if no one is there… 🤣

    Literally nothing. It would never be used without a chord mask.

    Thanks anyway…

  • OK, so if you're playing notes and there's no chord, notes would be blocked. That's easy enough.

    A bigger challenge is what to do if notes are playing and the chord is changed. The Note-ON will be quantized to another note, but the scale mask will have changed by the time the Note-OFF arrives. You either have to kill off the previous note prematurely, or track the original transposition in order to transpose the note off when it arrives. Doable, but has to be thought out carefully or there will be stuck notes all over the place.

    I'm poking around with it. I can't say yet if I'll follow through though.

    Another question: Would it be better to pick one channel for chords and one for playing, or would it be better to just pick one channel for chords, and transpose on all channels other than that one?

  • A simple solution to Note Offs is to just provide a control for Note Length.

    Note_Length = 100

    NoteOn channel0, 60, 100
    NoteOff channel0, 60, 0, 100. (Where this last number is a time to delay before Mozaic sends this NoteOff)

    This way you’ll never have a hung note. This approach is suitable for arps or notes being played by
    Drum tapping which also has a fixed duration of sound.

  • @wim said:
    OK, so if you're playing notes and there's no chord, notes would be blocked. That's easy enough.

    A bigger challenge is what to do if notes are playing and the chord is changed. The Note-ON will be quantized to another note, but the scale mask will have changed by the time the Note-OFF arrives. You either have to kill off the previous note prematurely, or track the original transposition in order to transpose the note off when it arrives. Doable, but has to be thought out carefully or there will be stuck notes all over the place.

    I'm poking around with it. I can't say yet if I'll follow through though.

    Another question: Would it be better to pick one channel for chords and one for playing, or would it be better to just pick one channel for chords, and transpose on all channels other than that one?

    1) I’d say that keeping the original note would be fine… It would most likely be in key, so no biggy if you just use the note on/note off from the played notes (as opposed to what I’ll call the mask notes)

    2) yea, the only Chanel that needs to be specified would be the mask channel.

    I created something like this in reaperscript a few years ago, but just have not taken the time to learn mosaic syntax and tricks…

  • @McD said:
    A simple solution to Note Offs is to just provide a control for Note Length.

    Note_Length = 100

    NoteOn channel0, 60, 100
    NoteOff channel0, 60, 0, 100. (Where this last number is a time to delay before Mozaic sends this NoteOff)

    This way you’ll never have a hung note. This approach is suitable for arps or notes being played by
    Drum tapping which also has a fixed duration of sound.

    By coincident I just suggested a similar technique to implement for the ' Simple Scaler' my approach was to only use the modified scales's note Ons, clone and borrow the note length from the originally incoming notes to create the note Offs as those won't get stuck. Seems to work here but don't know maybe there is more to it.

Sign In or Register to comment.