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*

191012141562

Comments

  • @Skyblazer

    Thanks. I will have a go at this scripting malarkey some time, when my brain decides to play ball :D

    @MrBlaschke

    Thanks, will contact you :)

    @iamspoon

    Will try that one out too :)

  • @Fruitbat1919 said:
    @Skyblazer

    Thanks. I will have a go at this scripting malarkey some time, when my brain decides to play ball :D

    @MrBlaschke

    Thanks, will contact you :)

    @iamspoon

    Will try that one out too :)

    I will try all these new scripts I’ve just seen, as been cooking :) I am in awe of how cool you guys and gals are. I will try to look at little deeper at these scripts and see if I can at least gain a little knowledge to start myself. Cheers :)

  • Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

  • wimwim
    edited February 2020

    @Carnbot said:
    Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

    You're right, those are both good ideas, and I will try to add them.

    The only part that really bugs me is you have to follow a very specific workflow to save a usable preset with custom names to avoid losing work.

    1. Save the script with a new name.
    2. Set up your control names by editing the script.
    3. Press the Upload button
    4. Save the script
    5. Make your control assignments via the GUI
    6. Save the script or a preset.

    The problem is, once you do that, if you come back and edit the control names and upload the script, you lose the control assignments. I have an idea how to avoid that though, so I'll add that in as well.

  • @wim said:

    @Carnbot said:
    Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

    You're right, those are both good ideas, and I will try to add them.

    The only part that really bugs me is you have to follow a very specific workflow to save a usable preset with custom names to avoid losing work.

    1. Save the script with a new name.
    2. Set up your control names by editing the script.
    3. Press the Upload button
    4. Save the script
    5. Make your control assignments via the GUI
    6. Save the script or a preset.

    The problem is, once you do that, if you come back and edit the control names and upload the script, you lose the control assignments. I have an idea how to avoid that though, so I'll add that in as well.

    Thanks for looking into it. :)
    Yeah I see the problem with that workflow. But great if you’ve an idea how to solve it.

  • @wim: your MIDI ADSR is a nice script. I found it while sketching out something that I needed. There are a couple of modifications I was thinking about making but thought I'd mention them in case you would be interested in making the mods.

    One is adding an pre-delay stage -- which is just the time from when the trigger is first received until the envelope does its thing.

    The other is adding a release and level -- to allow the release to go to a non-zero value set by a knob.

    Lastly, a toggle (I guess set with a pad) that determines whether re-triggering sets the level back to 0 (versus resuming from the last level it was at).

  • wimwim
    edited February 2020

    Knock yourself out! B)

    I've no emotional attachment to that script. I don't plan on modifying it myself because I'd rather do a rewrite for a more extensive envelope processor more along the lines of the KQ Dixie DX style envelopes, but with more stages, and with loop points. When I get around to that might be in Drambo years though. :D

    In the comments for that script, someone asked for a start level. That might be something to think about melding with your ideas.

    You might find a lot of crummy code in that one. It was one of my first and I had a lot to learn.

  • wimwim
    edited February 2020

    On a side note ... I just noticed that FAC Envolver can be triggered by midi notes rather than audio. That is probably a much better thing to use than my original Mozaic script for the same idea. Had I realized that earlier, I probably wouldn't have bothered to write it.

  • Script request? Sure. Could someone take the amazing work already done on this forum a few months back by @MrBlaschke , @White and others on extracting MIDI from the Ableton .als export files -

    https://forum.audiob.us/discussion/36093/any-apps-that-can-read-ableton-als-files/p2

    And somehow turn that into a Mozaic tool non techy end users could use? I don’t even know if that is possible within Mozaic, but nothing ventured, nothing gained.

  • @Svetlovska said:
    Script request? Sure. Could someone take the amazing work already done on this forum a few months back by @MrBlaschke , @White and others on extracting MIDI from the Ableton .als export files -

    https://forum.audiob.us/discussion/36093/any-apps-that-can-read-ableton-als-files/p2

    And somehow turn that into a Mozaic tool non techy end users could use? I don’t even know if that is possible within Mozaic, but nothing ventured, nothing gained.

    Mozaic doesn't read or write to files. So, it isn't possible.

  • @espiegel123 : Okay. Good to know. Spot the non programmer here.

  • @Svetlovska said:
    @espiegel123 : Okay. Good to know. Spot the non programmer here.

    What is it about using the script they wrote that feels too-techy? Perhaps that can be addressed in their workflow?

  • wimwim
    edited February 2020

    Even starting up with Pyto or Pythonista and learning how to run a script is too techy for most people if you ask me ... and I’m a techy.

    Pyto (probably Pythonista too?) has Shortcuts integration, so with some careful following of some pretty techy instructions, one could make it easy to run, but still far from what most people would be comfortable getting their heads around. Again, IMO.

  • wimwim
    edited February 2020

    @Carnbot said:
    Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

    Follow up question: How should Notes on pads work? Should they send a note-on when pressed, and a note-off when released? Or should they be like a toggle ... note-on for one press, note-off for the next (could be a recipe for stuck notes)? Or? Is a velocity setting important? Should they use the pad’s velocity based on the distance from the center of the pad (not recommended IMO)?

    And, what kind of indication, if any, is needed on the pad to show that it was pressed? Toggle color on/off like CC pads do? Toggle color only for the last note pressed like PC pads do? Nothing?

    I would like to keep the pads pretty simple if possible. Adding notes as an option is pretty straightforward, but I hope not to have too many configuration options for the notes, so I hope to hit the most common usage and not necessarily try to accommodate everything.

  • Has anyone attempted a MIDI note to Fabfilter eq control? After the DAWless DAW, the synthless synth: make a modular in Apematrix or AUM using AUV3 effects with CVs simulated with Moziac.

  • @wim said:

    @Carnbot said:
    Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

    Follow up question: How should Notes on pads work? Should they send a note-on when pressed, and a note-off when released? Or should they be like a toggle ... note-on for one press, note-off for the next (could be a recipe for stuck notes)? Or? Is a velocity setting important? Should they use the pad’s velocity based on the distance from the center of the pad (not recommended IMO)?

    And, what kind of indication, if any, is needed on the pad to show that it was pressed? Toggle color on/off like CC pads do? Toggle color only for the last note pressed like PC pads do? Nothing?

    I would like to keep the pads pretty simple if possible. Adding notes as an option is pretty straightforward, but I hope not to have too many configuration options for the notes, so I hope to hit the most common usage and not necessarily try to accommodate everything.

    I think just as a note on when pressed, note off when released is good. Maybe if possible add a velocity selection knob like for the CC number? (if that's straightforward). Then I reckon have it light up when pressed and off when released. That should cover a good amount of basic usage. :)

  • @Carnbot said:

    @wim said:

    @Carnbot said:
    Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

    Follow up question: How should Notes on pads work? Should they send a note-on when pressed, and a note-off when released? Or should they be like a toggle ... note-on for one press, note-off for the next (could be a recipe for stuck notes)? Or? Is a velocity setting important? Should they use the pad’s velocity based on the distance from the center of the pad (not recommended IMO)?

    And, what kind of indication, if any, is needed on the pad to show that it was pressed? Toggle color on/off like CC pads do? Toggle color only for the last note pressed like PC pads do? Nothing?

    I would like to keep the pads pretty simple if possible. Adding notes as an option is pretty straightforward, but I hope not to have too many configuration options for the notes, so I hope to hit the most common usage and not necessarily try to accommodate everything.

    I think just as a note on when pressed, note off when released is good. Maybe if possible add a velocity selection knob like for the CC number? (if that's straightforward). Then I reckon have it light up when pressed and off when released. That should cover a good amount of basic usage. :)

    Good, yeh, that’s what I was hoping. That’s pretty easy.
    Unfortunately my cunning plan to make cc/pc/note assignments sticky if using custom labels won’t work. But editing the few variables needed to bake in defaults shouldn’t be too tough for most people.

  • @wim said:

    @Carnbot said:

    @wim said:

    @Carnbot said:
    Thanks @wim for all your scripts including the recent Basic Midi Controls script, really useful! Nice use of shift hold function and easy to change values :)

    A couple of extra things added to this might also be useful for non other non coders like me. Well I’m sometimes a codetweaker, but more often a codebreaker and not in the good sense ;)

    A CC randomiser for the values, midi notes for the pads option. Useful for some sequencers which have note triggers like Digikeys/Thesys/Rozeta and other times when you need specific notes handy. For me, having all that in one script would make this one of my most used because of the easy to change values.

    Follow up question: How should Notes on pads work? Should they send a note-on when pressed, and a note-off when released? Or should they be like a toggle ... note-on for one press, note-off for the next (could be a recipe for stuck notes)? Or? Is a velocity setting important? Should they use the pad’s velocity based on the distance from the center of the pad (not recommended IMO)?

    And, what kind of indication, if any, is needed on the pad to show that it was pressed? Toggle color on/off like CC pads do? Toggle color only for the last note pressed like PC pads do? Nothing?

    I would like to keep the pads pretty simple if possible. Adding notes as an option is pretty straightforward, but I hope not to have too many configuration options for the notes, so I hope to hit the most common usage and not necessarily try to accommodate everything.

    I think just as a note on when pressed, note off when released is good. Maybe if possible add a velocity selection knob like for the CC number? (if that's straightforward). Then I reckon have it light up when pressed and off when released. That should cover a good amount of basic usage. :)

    Good, yeh, that’s what I was hoping. That’s pretty easy.
    Unfortunately my cunning plan to make cc/pc/note assignments sticky if using custom labels won’t work. But editing the few variables needed to bake in defaults shouldn’t be too tough for most people.

    Cool that sounds great, I'm happy editing some variables to customise. :)

  • This request seems like a wildly simple (relatively) programming challenge but one that likely requires some additional knowledge I don’t currently posses so I’d like to reach out here to request any helpful info on either part. For years now I’ve been eager to be able to route xyz channels in say AUM to 2 buses and be able to control their levels like a DJ mixer with an external fader. I’ve read countless threads implementing some basic ways to accomplish this, and have overly engineered my own implementations trying to overcome issues but believe that Mozaic is precisely the tool for the job.

    Some have suggested as I had initially tried before researching to assign one fader to lower bus A’s volume while raising bus B’s, including using the built in midi assignment value limiter in AUM, but no matter what, this results in the center position attenuating both channels and is unusable. I believe the term I’m referring to missing here is ‘equal power’ cross fading, where at the center position both channels remain at 100%, and moving either direction leaves one channel there and only then lowers the other. AUM’s built in range control only allows for changing the min and max values, but if it had another node or exponential curve options I think that would be an easy solution. Without it, I’m in the beginning stages of trying to work through the logic necessary to implement this concept and reading through Mozaic’s document to figure out how to enact it.

    I’m unsure if the proper solution is to say have Mozaic take an input of 0-126 and output to one destination (channel or cc number) 0-63 as received, and 63+ stopping at 63 on higher values while sending the opposite (126-63 as received, stopping at values below 63) to another destination and dealing with translating those to appropriate volume values in a high bus themselves, or transcoding 0-63 into say 0-100 for one destination while transcoding 127-63 into 100-0 for another (with the same limits in both directions for values past 63) reducing the need to further mess with leveling the busses out, OR if a hard stop at 63 isn’t the solution at all, and rather exponential curves should be utilized to achieve the desired audible effect (which at current, I’m unsure of what real DJ style crossfaders actual implement) in which case I’d have to throw trial and error into the mix once coded.

    I’ve seen this use case requested by many and have been surprised there hasn’t been an AUv3 released to address it as of yet. Of course now, with multi in and out finally being possible, it may be time that an audio version of the above is also a possibility. That said, I wouldn’t be mad if someone released an AUv3 to realize either option, but I’m fairly confident it shouldn’t be a terribly difficult concept to execute in Mozaic unless you have absolutely no coding experience like myself.

    Thanks in advance for any and all ideas/help!

  • wimwim
    edited March 2020

    @dreamsaremaps - I’m not sure I fully understand what you’re after, but here’s an attempt. Move the first fader and look at the 2nd and 3rd faders to see if they act as you’d expect. The script will send cc’s 20 and 21 on channel 1 by default. Curve is there in case it helps to bias the movement toward higher or lower notes.

    It could be filled out some, but not much point if the basic operation isn’t right, so I kept it simple.

    @OnLoad
      //change cc's and channel to suit...
      cc1 = 20
      cc2 = 21
      chan = 0
    
      if Unassigned init
        init = TRUE
        v1 = 127
        v2 = 127
        curve = 1.00
        for a = 0 to 21
          LabelKnob a,{ }
        endfor
      endif    
      LabelKnobs {Cross Fader Demo}
      Call @KnobHandler
      ShowLayout 3
    @End
    
    @OnKnobChange
      value = GetKnobValue LastKnob
      if LastKnob = 0
        if value <= 64
          v2 = Round (TranslateCurve (2*value),curve,0,127)
          SendMIDICC chan,cc2,v2
        elseif value >= 64
          v1 = Round (TranslateCurve (2*(127 - value)),curve,0,127)
          SendMIDICC chan,cc1,v1
        endif
      elseif LastKnob = 1
        curve = TranslateScale value,0,127,0,2
      endif
      Call @KnobHandler
    @End
    
    @KnobHandler
      LabelKnob 0,{Cross Fade}
      LabelKnob 1,{Curve}
      SetKnobValue 2,v1
      SetKnobValue 3,v2
      LabelKnob 2,{v1: },v1
      LabelKnob 3,{v2: },v2
    @End
    
  • Would it be possible to write a script for a set of buttons that when toggled ON or OFF, sends a user set, timeable, incrementing or decrementing midi CC value?

    I'd like to be able to trigger auto-fades of multiple (at least 4) parallel AUM channels, all in a live performance situation, with different timings for each channel. Ideally the user selectable timed CC event would be variable, up to at least 60 seconds, and it could be triggered by my Blueboard. I'm not familiar with Mozaic, but I assume it can receive as well as send midi? I use Sonic Logic at the moment to do something similar. It allows buttons to send midi CC 'timed transitions' of up to 60 seconds, with separate timings for increment and decrement rates. Unfortunately it's not midi addressable so I have to tap the screen button to trigger the auto-fades. Also it doesn't run on the iPhone or iPod Touch.

  • wimwim
    edited March 2020

    @rcf said:
    Would it be possible to write a script for a set of buttons that when toggled ON or OFF, sends a user set, timeable, incrementing or decrementing midi CC value?

    I'd like to be able to trigger auto-fades of multiple (at least 4) parallel AUM channels, all in a live performance situation, with different timings for each channel. Ideally the user selectable timed CC event would be variable, up to at least 60 seconds, and it could be triggered by my Blueboard. I'm not familiar with Mozaic, but I assume it can receive as well as send midi? I use Sonic Logic at the moment to do something similar. It allows buttons to send midi CC 'timed transitions' of up to 60 seconds, with separate timings for increment and decrement rates. Unfortunately it's not midi addressable so I have to tap the screen button to trigger the auto-fades. Also it doesn't run on the iPhone or iPod Touch.

    Sure, that would be possible. How is your BlueBoard configured? And, are there only four triggers needed, one for each BB button?

  • rcfrcf
    edited March 2020

    Thanks; I would need 4 channels max, though I would probably only use two most of the time. I'm using the midi over Bluetooth modes on the Blueboard. ie. no IK app needed. To be able to set different increment and decrement times per channel would be fantastic. I could manage with a single time value for both rise and fall times though. Thanks for your interest; I might have to buy Mozaic. ;)

    Presumably I could use two Mozaic instances if I got carried away with the number of parallel AUM channels that I needed to control?

  • @rcf said:
    Thanks; I would need 4 channels max, though I would probably only use two most of the time. I'm using the midi over Bluetooth modes on the Blueboard. ie. no IK app needed. To be able to set different increment and decrement times per channel would be fantastic. I could manage with a single time value for both rise and fall times though. Thanks for your interest; I might have to buy Mozaic. ;)

    Presumably I could use two Mozaic instances if I got carried away with the number of parallel AUM channels that I needed to control?

    Sorry my question wasn’t clear. What I meant to ask is whether the BlueBoard is sending cc’s or notes.

  • I use the Blueboard to send midi ĆC, and in this usage scenario it would be mapped to the AUM channel faders. Any scaling of the CC parameter range can be done in AUM.

  • @rcf said:
    I use the Blueboard to send midi ĆC, and in this usage scenario it would be mapped to the AUM channel faders. Any scaling of the CC parameter range can be done in AUM.

    So, the Blueboard sends MIDI CC’s. Are you using the standard MIDI CC setup from BlueTooth Mode 2? In this mode pressing the four switches send value 127 on cc 20,21,22,23 respectively, and value 0 on those four when the switches are released. Or, have you customized them in any way?

    To be clear, the BlueBlueboard output wouldn’t directed to the AUM faders, but to the Mozaic instance. When receiving one of those triggers, the script would send out values ramped up or down in a configurable timing. Correct?

    If this is right so far, then does the ramping happen while the switch is held down and then ramp back to the original value when the switch is released? Or, does it ramp from one value to the next once, in response to pressing and releasing the switch? If so, what happens after the values ramp? Does the value reset to the beginning so that it starts over on the next press? Or, does it ramp back down on the next press.

    Just trying to get straight in my mind what you’re looking for.

  • rcfrcf
    edited March 2020

    Yes, I 'm using Bluetooth Mode 2. I press one of the four Blueboard momentary buttons and it triggers a Mozaic script which slowly (user definable time) ramps up the CC message to the AUM channel volume fader. Once maximum volume is reached it is held until the next time I press the footswitch, when the fader CC values ramp down to zero. There are plenty of options within AUM for scaling the range of CC values, so the script theoretically only needs to send 0-127 and 127-0 over user specified times.

  • @rcf said:
    Yes, I 'm using Bluetooth Mode 2. I press one of the four Blueboard momentary buttons and it triggers a Mozaic script which slowly (user definable time) ramps up the CC message to the AUM channel volume fader. Once maximum volume is reached it is held until the next time I press the footswitch, when the fader CC values ramp down to zero. There are plenty of options within AUM for scaling the range of CC values, so the script theoretically only needs to send 0-127 and 127-0 over user specified times.

    Cool. I have a BlueBoard and can see the usefulness of this. I can write this pretty easily if you like ... unless you wanted to do it yourself.

  • Thanks so much for taking the time to respond. Writing it is a little beyond me at the moment, though I may well have a go at some simple scripting once I've bought the app and got used to it. Such a script would also allow one-shot triggerable slow crossfades between 2x AUM channels, so I can see many uses for it, yes. ;)

Sign In or Register to comment.