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*

1235762

Comments

  • edited December 2019

    Hi.
    It is possible to creat a script to use an QWERTY or AZERTY keyboard as MIDI?
    My goal is to use an old keybord as a footswitch.
    Like this

    Thx

  • wimwim
    edited December 2019

    @Hkor said:
    Hi.
    It is possible to creat a script to use an QWERTY or AZERTY keyboard as MIDI?
    My goal is to use an old keybord as a footswitch.
    Like this

    Thx

    No, sorry, that’s not possible. Mozaic doesn’t have a way to accept typing keyboard input other than for editing scripts.

    There’s an old app called Sidecar that might be able to do what you want though.

  • Sidecar is made for that use case! Works great with QWERTY.

  • @ElectroHead said:
    Greetings Mozaicans, so I picked up Mozaic in the sales with the main aim of re-routing cc info that the Octatrack outputs with midi scenes. I'm a complete illiterate at programming, never tried it except for very basic stuff in Midi Fire. I've read and reread the manual and figured out how to go about writing a script for the basics, but after that it gets complex!

    Scenes on the Octatrack enable gliding or switching between 16 sets of values using Scene select buttons A and B and a crossfader (switch by holding down either of the Scene Select buttons and selecting another of the 16 scenes via a sequencer step trigger). This is for the audio tracks

    On the Midi side, the OT scene controls output the following:

    Scene Select A: CC55 (values 0-15)
    Scene Select B: CC56 (values 0-15)

    Crossfader: CC48 (values 0-127)

    I can figure out how to rechannel the values.

    But, how to glide between the values in the two selected scene slots? I guess this involves arrays etc.
    What would be the most efficient way to set up to 6 controller channels rerouting the OT midi each with 16 values?

    Maybe someone with programming skills has attempted something like this?
    Any tips / advice would be much welcome! I like the idea of the challenge of attempting this... OTOH, I studied languages and looking at the Mozaic manual and what I want to do, it feels like in this new language I'm attempting to give quite complicated directions to someone when I can barely pronounce the alphabet, let alone get the syntax (word order) correct!

    BTW, It's possible a script / patch for this may also be useful very useful for Drambo as it will have scenes with crossfader based on the OT!

    BUMP.

    So I'll be more specific:

    I want to reroute CCs 55 and 56 on Chan 9 (which output values 0-15 only), to CC 20 on Chan 1 with an array of assignable values. I can't get my head around naming and referencing variables.

    @OnLoad
    newvariable = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
    @End
    @OnMidiInput
    If 0xB9 55, 0-15
    SendMIDOCC 0,20, newvariable
    @End

    I haven't tested this yet because I doubt it works. If I understand correctly, the base value in this variable is 25 as it's the first value. So how does the script / program identify this variable? How can I rename it so it's recognised as a variable?

    Anyone willing to help?

  • edited December 2019

    Double post deleted

  • @ElectroHead said:

    @ElectroHead said:
    Greetings Mozaicans, so I picked up Mozaic in the sales with the main aim of re-routing cc info that the Octatrack outputs with midi scenes. I'm a complete illiterate at programming, never tried it except for very basic stuff in Midi Fire. I've read and reread the manual and figured out how to go about writing a script for the basics, but after that it gets complex!

    Scenes on the Octatrack enable gliding or switching between 16 sets of values using Scene select buttons A and B and a crossfader (switch by holding down either of the Scene Select buttons and selecting another of the 16 scenes via a sequencer step trigger). This is for the audio tracks

    On the Midi side, the OT scene controls output the following:

    Scene Select A: CC55 (values 0-15)
    Scene Select B: CC56 (values 0-15)

    Crossfader: CC48 (values 0-127)

    I can figure out how to rechannel the values.

    But, how to glide between the values in the two selected scene slots? I guess this involves arrays etc.
    What would be the most efficient way to set up to 6 controller channels rerouting the OT midi each with 16 values?

    Maybe someone with programming skills has attempted something like this?
    Any tips / advice would be much welcome! I like the idea of the challenge of attempting this... OTOH, I studied languages and looking at the Mozaic manual and what I want to do, it feels like in this new language I'm attempting to give quite complicated directions to someone when I can barely pronounce the alphabet, let alone get the syntax (word order) correct!

    BTW, It's possible a script / patch for this may also be useful very useful for Drambo as it will have scenes with crossfader based on the OT!

    BUMP.

    So I'll be more specific:

    I want to reroute CCs 55 and 56 on Chan 9 (which output values 0-15 only), to CC 20 on Chan 1 with an array of assignable values. I can't get my head around naming and referencing variables.

    @OnLoad
    newvariable = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
    @End
    @OnMidiInput
    If 0xB9 55, 0-15
    SendMIDOCC 0,20, newvariable
    @End

    I haven't tested this yet because I doubt it works. If I understand correctly, the base value in this variable is 25 as it's the first value. So how does the script / program identify this variable? How can I rename it so it's recognised as a variable?

    Anyone willing to help?

    I am unclear about how you want the remapping to work. If you could give a more detailed explanation (step by step) of what you want to happen, it would be helpful--and might possibly make it more obvious to yourself how to code it.

  • edited December 2019

    @espiegel123 said:

    I am unclear about how you want the remapping to work. If you could give a more detailed explanation (step by step) of what you want to happen, it would be helpful--and might possibly make it more obvious to yourself how to code it.

    Thanks for the response @espiegel123

    Lets say I have Factory on Chan 1, and the mutate knob assigned to receive on CC#22
    I want to be able to remap values 0 to 15 transmitted either on CC#55 (Scene Select A) and CC#56 (Scene Select B on the Octatrack) to 16 assignable values between 0-127 on CC#22 (Chan1). I want to be able to use the Mozaic UI to set the 16 values to send on CC#22.

    I understand I should use a variable so @OnLoad the 16 preset values for CC#22 are ready for selection with CC#s 55 and 56.

    The next aim is to take CC#48 to glide between the two of the sixteen values determined in the script assigned for CC#22 (selected by CC#55 and CC#56).

    I hope this is clearer.

  • @ElectroHead said:

    @espiegel123 said:

    I am unclear about how you want the remapping to work. If you could give a more detailed explanation (step by step) of what you want to happen, it would be helpful--and might possibly make it more obvious to yourself how to code it.

    Thanks for the response @espiegel123

    Lets say I have Factory on Chan 1, and the mutate knob assigned to receive on CC#22
    I want to be able to remap values 0 to 15 transmitted either on CC#55 (Scene Select A) and CC#56 (Scene Select B on the Octatrack) to 16 assignable values between 0-127 on CC#22 (Chan1). I want to be able to use the Mozaic UI to set the 16 values to send on CC#22.

    I understand I should use a variable so @OnLoad the 16 preset values for CC#22 are ready for selection with CC#s 55 and 56.

    The next aim is to take CC#48 to glide between the two of the sixteen values determined in the script assigned for CC#22 (selected by CC#55 and CC#56).

    I hope this is clearer.

    Slightly. Let's get clearer still. I might have this wrong -- if so, please update with a correction. The goal here is to get some pseudocode that are precise instructions about what to do. The more precise the instructions, the easier it is to translate it into code. Something like this.

    // Receive values whose range is 0-15 on CC#55 or CC#56 from OctaTrack
    // Call that value receivedValue
    // Remap receivedValue to 1 of 16 preset values (range 0 - 127)
    // the lookup table for remapping is newValue = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
    // send remapped value to Factory

    the main thing missing in your code is (in pseudocode)

    //to remap from receivedValue to looked up value
    valueToSend = newValue[receivedValue]

    So, if you receive a controller value of 0, the value to send is newValue[0] (which is 25)

    If you receive a value of 15, it sends out newValue[15] which is 110

  • @espiegel123 said:
    Slightly. Let's get clearer still. I might have this wrong -- if so, please update with a correction. The goal here is to get some pseudocode that are precise instructions about what to do. The more precise the instructions, the easier it is to translate it into code. Something like this.

    // Receive values whose range is 0-15 on CC#55 or CC#56 from OctaTrack
    // Call that value receivedValue
    // Remap receivedValue to 1 of 16 preset values (range 0 - 127)
    // the lookup table for remapping is newValue = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
    // send remapped value to Factory

    the main thing missing in your code is (in pseudocode)

    //to remap from receivedValue to looked up value
    valueToSend = newValue[receivedValue]

    So, if you receive a controller value of 0, the value to send is newValue[0] (which is 25)

    If you receive a value of 15, it sends out newValue[15] which is 110

    That's exactly it!
    I need to go back to the manual to check this: "valueToSend = newValue[receivedValue]". Is the set of new values detected as variable?

    Goal no 2. Retain both of the last activated (or 2 default on load) remapped (NewValues) from CCs#55 and 56. E.g. newValue [3] = 78, and nwValue[15] = 110 and transition between those two two using CC#48 (transmits values 0-127)

    Thanks!

  • @ElectroHead said:

    @espiegel123 said:
    Slightly. Let's get clearer still. I might have this wrong -- if so, please update with a correction. The goal here is to get some pseudocode that are precise instructions about what to do. The more precise the instructions, the easier it is to translate it into code. Something like this.

    // Receive values whose range is 0-15 on CC#55 or CC#56 from OctaTrack
    // Call that value receivedValue
    // Remap receivedValue to 1 of 16 preset values (range 0 - 127)
    // the lookup table for remapping is newValue = [25,25,25,78,82,90,120,124,16,16,22,22,40,50,80,110]
    // send remapped value to Factory

    the main thing missing in your code is (in pseudocode)

    //to remap from receivedValue to looked up value
    valueToSend = newValue[receivedValue]

    So, if you receive a controller value of 0, the value to send is newValue[0] (which is 25)

    If you receive a value of 15, it sends out newValue[15] which is 110

    That's exactly it!
    I need to go back to the manual to check this: "valueToSend = newValue[receivedValue]". Is the set of new values detected as variable?

    Not sure what you mean. You already set up the newValue array in the code you posted. The code I gave you shows how you use your received value to lookup the value from the newValue array that you created.

  • edited December 2019

    @espiegel123 said:
    Not sure what you mean. You already set up the newValue array in the code you posted. The code I gave you shows how you use your received value to lookup the value from the newValue array that you created.

    I'm probably over analyzing things; your response explains it - I've set up an array, which I guess I was maybe confusing with variable (or is an array a sort of variable?).

    In order to make smooth transitions between two selected new values using CC#48 (crossfader), I need the script to retain the last two selected values (and load two default values). This is over my head for now.

    I much appreciate your help.

  • Are there any scripts that’ll convert midi note to CC so you can use on screen or external KB to play AAS Objeq?

  • @ElectroHead said:

    @espiegel123 said:
    Not sure what you mean. You already set up the newValue array in the code you posted. The code I gave you shows how you use your received value to lookup the value from the newValue array that you created.

    I'm probably over analyzing things; your response explains it - I've set up an array, which I guess I was maybe confusing with variable (or is an array a sort of variable?).

    In order to make smooth transitions between two selected new values using CC#48 (crossfader), I need the script to retain the last two selected values (and load two default values). This is over my head for now.

    I much appreciate your help.

    You might want to re-read the Mozaic manual's section about arrays and variables. It can be confusing to newbies, but if you read it again, it might make more sense.

    Basically, an array is a type of variable (or data structure) that is a list of values. You fetch values out of the list by telling it which value you want. That value is called an index.

    If you have an array called myArray, the fifth item is myArray[5].

  • @espiegel123 said:

    You might want to re-read the Mozaic manual's section about arrays and variables. It can be confusing to newbies, but if you read it again, it might make more sense.

    Basically, an array is a type of variable (or data structure) that is a list of values. You fetch values out of the list by telling it which value you want. That value is called an index.

    If you have an array called myArray, the fifth item is myArray[5].

    Very helpful explanation. Thanks again.

  • @Eschatone said:
    Are there any scripts that’ll convert midi note to CC so you can use on screen or external KB to play AAS Objeq?

    It's very easy to build a script to convert notes to CC values. However, more specifics are needed.

    For instance, do you mean playing one CC and sending the value for that cc corresponding to the note played? For example, if you played note 36, the script would send value 36 for CC 20, and if you played note 48, the script would send value 48 for CC 20?

    Or, do you mean, if you play note 36 at velocity 100, it would send value 100 for CC 36? And if you play note 48 at velocity 100 it would send value 100 for CC 48?

    And are you sure you can play AAS Objeq using CC values?

    mfxConvert is a great little app that may work for this without any scripting, depending on the answers to some of the questions above.

  • edited December 2019

    @wim said:

    @Eschatone said:
    Are there any scripts that’ll convert midi note to CC so you can use on screen or external KB to play AAS Objeq?

    It's very easy to build a script to convert notes to CC values. However, more specifics are needed.

    For instance, do you mean playing one CC and sending the value for that cc corresponding to the note played? For example, if you played note 36, the script would send value 36 for CC 20, and if you played note 48, the script would send value 48 for CC 20?

    Or, do you mean, if you play note 36 at velocity 100, it would send value 100 for CC 36? And if you play note 48 at velocity 100 it would send value 100 for CC 48?

    And are you sure you can play AAS Objeq using CC values?

    mfxConvert is a great little app that may work for this without any scripting, depending on the answers to some of the questions above.

    Sorry, I’m still a midi noob. About as far as I’ve ventured into midi CC land is in AUM and a few DAWS, modulating synth and effect parameters via midi Auv3’a like Rozetta (LFO, etc) ... I should probably do some more research on the technical bits before I’m able to effectively communicate on this topic. It was just a shot in the dark, in case anyone else had already worked on something like this with Objeq.

    AAS Objeq does expose the pitch parameter via CC, so I can use a modulation source like Rosetta LFO to modulate between 0 to 127 via whatever CC# I set it to communicate on, So I imagined It’d be a matter of determining the specific or relative pitch of each of the 128 values to be able to translate/transcribe those values to midi note.

    Thanks for the tip, I’ll check out mfxconvert and see if that might do the trick.

  • Sure thing @Eschatone. B)
    If I owned the app you mention, I’d look into it further. If it does come down to something you can define then a script would probably be pretty easy to write. -cheers.

  • @echoopera said:
    I have a request for a Mozaic Script.

    In Ableton Live, I love the Random device. I'd love to have something like this on iOS via Mozaic.

    Hi @echoopera, I did decide to do a trimmed down version of my own for learning purposes, even though @Bryan’s Random! script covers this and much more. It’s basically done, but I want to do some more thorough testing. Should be ready in a day or two.

  • edited December 2019

    Hi,

    Is it possible to create a script that converts xml or .txt into MIDI? Someone had a question about how to get the MIDI from an ableton .Als file and it turns out you can easily convert .als into a .txt file.

  • edited December 2019

    @Samflash3 said:
    Hi,

    Is it possible to create a script that converts xml or .txt into MIDI? Someone had a question about how to get the MIDI from an ableton .Als file and it turns out you can easily convert .als into a .txt file.

    This is not possible in Mozaic. Mozaic has no file I/o and no text/string functions.

  • @wim said:

    @echoopera said:
    I have a request for a Mozaic Script.

    In Ableton Live, I love the Random device. I'd love to have something like this on iOS via Mozaic.

    Hi @echoopera, I did decide to do a trimmed down version of my own for learning purposes, even though @Bryan’s Random! script covers this and much more. It’s basically done, but I want to do some more thorough testing. Should be ready in a day or two.

    You rock sir. Thanks so much. 👊🏼™️

  • @echoopera said:

    @wim said:

    @echoopera said:
    I have a request for a Mozaic Script.

    In Ableton Live, I love the Random device. I'd love to have something like this on iOS via Mozaic.

    Hi @echoopera, I did decide to do a trimmed down version of my own for learning purposes, even though @Bryan’s Random! script covers this and much more. It’s basically done, but I want to do some more thorough testing. Should be ready in a day or two.

    You rock sir. Thanks so much. 👊🏼™️

    I’ve uploaded “Au Hasard MIDI Randomizer” to Patchstorage.com: https://patchstorage.com/au-hasard-midi-note-randomizer/. I haven’t had time to test as thoroughly as I’d like, but I’m not sure I’ll have more time for a bit, so ... fingers crossed.

    I tried to make Au Hasard (French for Random) behave as much like the Ableton Live plugin as possible, only I did add an option to quantize the notes to scales. Because of this, to avoid confusion, I’ve called the “Scale” function in the Live plugin “Range” in this plugin.

    Please let me know if you find anything amiss.

  • merci beaucoup! :)

  • @Samflash3 said:
    Hi,

    Is it possible to create a script that converts xml or .txt into MIDI? Someone had a question about how to get the MIDI from an ableton .Als file and it turns out you can easily convert .als into a .txt file.

    It is not possible in MOZAIC. But you might be interested in this thread:
    https://forum.audiob.us/discussion/36093/any-apps-that-can-read-ableton-als-files/p1

    I provided an iOS only solution with the help of a Python interpreter.

  • Is there a Note Length script? Note Length to alter the length of incoming MIDI notes. Maybe even apply a random length based on user set parameters. So I could pick two ranges, Let’s say for example 1/8 to 1/2 bar, and it randomly changes each incoming note length to a length the size of or in between my selected lengths.

    Is this similar to the probability gate script?

  • wimwim
    edited December 2019

    @Poppadocrock said:
    Is there a Note Length script? Note Length to alter the length of incoming MIDI notes. Maybe even apply a random length based on user set parameters. So I could pick two ranges, Let’s say for example 1/8 to 1/2 bar, and it randomly changes each incoming note length to a length the size of or in between my selected lengths.

    Is this similar to the probability gate script?

    There’s a very good chance that function is out there as part of another script, but there are so many scripts out there I haven’t tried that it’s hard to say.

    That would be an easy one to do though. I’m kinda busy the next few days, but might take a stab at it if no one else chimes in about an existing script that has that functionality already by then.

    The probability gate script just deals with the probability of letting a note through, not with its length. Could be a good one to build on though.

  • @wim Thanks. Yea I wasn’t quite sure if something already made could do that or not.... That would be amazing if a new script is made, but no rush at all, when you get a chance.

  • @wim Thanks for that new AU Hasard script too. I love Mozaic and the more scripts the merrier.

  • @wim said:

    @echoopera said:

    @wim said:

    @echoopera said:
    I have a request for a Mozaic Script.

    In Ableton Live, I love the Random device. I'd love to have something like this on iOS via Mozaic.

    Hi @echoopera, I did decide to do a trimmed down version of my own for learning purposes, even though @Bryan’s Random! script covers this and much more. It’s basically done, but I want to do some more thorough testing. Should be ready in a day or two.

    You rock sir. Thanks so much. 👊🏼™️

    I’ve uploaded “Au Hasard MIDI Randomizer” to Patchstorage.com: https://patchstorage.com/au-hasard-midi-note-randomizer/. I haven’t had time to test as thoroughly as I’d like, but I’m not sure I’ll have more time for a bit, so ... fingers crossed.

    I tried to make Au Hasard (French for Random) behave as much like the Ableton Live plugin as possible, only I did add an option to quantize the notes to scales. Because of this, to avoid confusion, I’ve called the “Scale” function in the Live plugin “Range” in this plugin.

    Please let me know if you find anything amiss.

    Nice @wim thanks for the script. Just had a go with it this evening and it is feeling pretty good. Will need to stress test it a bit more, but i am liking it. Many thanks again for the script. 👊🏼™️

    Here’s a much too long screencast of me using it in AUM:

Sign In or Register to comment.