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*

1505153555662

Comments

  • Thanks @Poppadocrock
    Definitely interesting, but I don’t think
    It fits the bill. Great to study and try and learn though.
    Wizards, still need ya.
    Sincerely
    Put

  • I love the chaos lfo, are there any other interesting x-y formulae to produce similar effects?
    Or LFOscilloscope?! great with some different curves, like lissajous?
    :)

  • edited August 2022

    Solved

  • edited August 2022

    I have a request… I don’t know how possible it is… it’s based on the sequencer Girorgo Sancristoforo made for his ongaku synth. You have a clock dial that emits a signal at 100 it’s a standard 4/4 signal. As you turn down the dial the probability becomes less. After this clock there’s another probabilistic clock that leads to a scale quantizer. You can choose to follow the scale or just emit a single note.

    The most basic form would be probabilistic clock 1 to probabilistic clock 2 to note to range to quantiser.

    Is something like that possible?

    If that’s too easy he has all sorts of probabilistic sequencers for attack, decay and volume too.

    It makes very organic sounding sounds when you have 4 different instances controlling 4 synths at once.

  • Hello, I'm looking for a solution to adress 16 separate bytes wich could be enganged by 16 control knobs.

    concerning In bold: F0 00 20 09 00 1F 7E 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7

    the selection by the knobs would be: (in hex) 00-10 So with an increment of 17 in total per control.

    The biggest challange here is to have the knobs know each others state memory, as 00 would be for off, so if to move another knob, it doesn't send an off message to the rest. Looking forward to hear if this is possible in Mozaic?

  • wimwim
    edited August 2022

    @sevenape said:
    I have a request… I don’t know how possible it is… it’s based on the sequencer Girorgo Sancristoforo made for his ongaku synth. You have a clock dial that emits a signal at 100 it’s a standard 4/4 signal. As you turn down the dial the probability becomes less. After this clock there’s another probabilistic clock that leads to a scale quantizer. You can choose to follow the scale or just emit a single note.

    The most basic form would be probabilistic clock 1 to probabilistic clock 2 to note to range to quantiser.

    Is something like that possible?

    If that’s too easy he has all sorts of probabilistic sequencers for attack, decay and volume too.

    It makes very organic sounding sounds when you have 4 different instances controlling 4 synths at once.

    It's possible, but easier and more flexible IMO to just use miRack or Drambo. A little bit of wiring up of a couple of modules and you're good to go.

    The probability part isn't as straightforward in miRack as it is in Drambo.

  • wimwim
    edited August 2022

    @Mo13 said:
    Hello, I'm looking for a solution to adress 16 separate bytes wich could be enganged by 16 control knobs.

    concerning In bold: F0 00 20 09 00 1F 7E 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7

    the selection by the knobs would be: (in hex) 00-10 So with an increment of 17 in total per control.

    The biggest challange here is to have the knobs know each others state memory, as 00 would be for off, so if to move another knob, it doesn't send an off message to the rest. Looking forward to hear if this is possible in Mozaic?

    Totally possible, and not very difficult. But I can't make any sense out of this sentence ...

    ... as 00 would be for off, so if to move another knob, it doesn't send an off message to the rest.

    also, do you want to send that altered Sysex message on every movement of each of the knobs? Or do you want to set up the message first, then trigger it via a pad tap or something?

  • I ment that when the script sends out one of the 17x16 SysEx strings to my device (to set ins&outs on 16x16 matrix switch) when turning the next knob, the last value of the previous knob should be stored and picked up by the next knob, otherwise the next msg will reset all values.

    In an example it would look like:

    Knob 1: F0 00 20 09 00 1F 7E 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
    Knob 2: F0 00 20 09 00 1F 7E 01 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
    Knob 3: F0 00 20 09 00 1F 7E 01 00 00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
    Knob 16: F0 00 20 09 00 1F 7E 01 00 00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 04 F7

    as 00 is for off,

    So upon engaging with any of the 16 Mozaic knobs, all outgoing msges should be updated and sent out with current values of all the set knobs, hopefully that makes a little more sense?

  • wimwim
    edited August 2022

    @Mo13 said:
    I ment that when the script sends out one of the 17x16 SysEx strings to my device (to set ins&outs on 16x16 matrix switch) when turning the next knob, the last value of the previous knob should be stored and picked up by the next knob, otherwise the next msg will reset all values.

    In an example it would look like:

    Knob 1: F0 00 20 09 00 1F 7E 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
    Knob 2: F0 00 20 09 00 1F 7E 01 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
    Knob 3: F0 00 20 09 00 1F 7E 01 00 00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 F7
    Knob 16: F0 00 20 09 00 1F 7E 01 00 00 01 02 03 00 00 00 00 00 00 00 00 00 00 00 00 04 F7

    as 00 is for off,

    So upon engaging with any of the 16 Mozaic knobs, all outgoing msges should be updated and sent out with current values of all the set knobs, hopefully that makes a little more sense?

    OK. I think I understand. If you think of the knobs as setting just that one byte of the sysex message, the knobs work independently. They don't need to know the position of the other knobs because each one only sets it's own bit.

    Based on what I understand, this should work for you I think:

    @Description
     Use eight knobs to set value 0 - 16 in 16 bytes of a sysex message
    @End
    
    @OnLoad
      if unassigned init
        init = yes
        message[0] = [0x00, 0x20, 0x09, 0x00, 0x1F, 0x7E, 0x01, 0x00, 0x00]
        message[9] = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
    
        for knob = 0 to 21
          Call @SetKnobPosition
          Call @SetKnobLabel
        endfor
        
        LabelKnobs {Sysex Message}
        
        layout = 1
        ShowLayout layout
      endif
        
    @End
    
    @OnKnobChange
      knob = LastKnob
      value = GetKnobValue knob
      
      if knob < 16
        oldmessage = message[knob + 9]
        message[knob + 9] = Round(TranslateScale value,0,127,0,0x10)
        if message[knob + 9] <> oldmessage
          SendSysex message, 16
        endif
      endif
      Call @SetKnobLabel
    @End
    
    @SetKnobPosition
      if knob < 16
        SetKnobValue knob, TranslateScale message[knob+9], 0, 0x10, 0, 127
      else
        SetKnobValue knob, 64
      endif
    @End
    
    @SetKnobLabel
      if knob < 16
        LabelKnob knob, {Knob }, (knob+1), {:}, message[knob+9]
      else
       LabelKnob knob, { }
      endif
    @End
    
  • @wim said:

    @sevenape said:
    I have a request… I don’t know how possible it is… it’s based on the sequencer Girorgo Sancristoforo made for his ongaku synth. You have a clock dial that emits a signal at 100 it’s a standard 4/4 signal. As you turn down the dial the probability becomes less. After this clock there’s another probabilistic clock that leads to a scale quantizer. You can choose to follow the scale or just emit a single note.

    The most basic form would be probabilistic clock 1 to probabilistic clock 2 to note to range to quantiser.

    Is something like that possible?

    If that’s too easy he has all sorts of probabilistic sequencers for attack, decay and volume too.

    It makes very organic sounding sounds when you have 4 different instances controlling 4 synths at once.

    It's possible, but easier and more flexible IMO to just use miRack or Drambo. A little bit of wiring up of a couple of modules and you're good to go.

    The probability part isn't as straightforward in miRack as it is in Drambo.

    Ah ok thanks! I’ll take a look at drambo :) thank you!!

  • edited August 2022

    Great @wim , It's doing the right things now when engaging with other knobs! Only now we're missing 9 more bytes on the output that would correspond to knob 8-16:

    edit: got it working now! but I also found out that there is a little more to it, as I haven't switched preset slots/banks untill now. from the manual:

    [0xf0, 0x00, 0x20, 0x09, 0x00, 0x1f, 0x7e, 0x01, BANK_INDEX, PRESET_INDEX,
    PRESET_VALUES, 0xf7] <- if the BANK_INDEX and PRESET_INDEX in this message are the same as the respective active bank index and active preset index of the MATRIX II at that time, this preset will also directly appear on the matrix.

    would be a ton greatful if this could be implemented by selecting preset numbers and banks via - + pads. (or knobs if that's better) / to have a general reset switch (all knobs to nul) I can change presets and banks by PC now but then the SysEx obviously stops receiving as it needs:

    F0 00 20 09 00 1F 7E 01 00<Bank# 00<Preset# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F7

    there are 32 presets and 7 banks.

    That would also imply that the knobs are sending new Bank+Preset data upon switching pads.
    If that's a too much work I wouldn't mind saving separate scripts in AUM as presets as I know just a enough how to change those things. But am curious to hear if it's possible!

  • edited September 2022

    @wim hey I wanted to share an AUM Template with mega cc randomizer, one of your scripts, and largrange completely mapped. As a random preset creator. I’ve had this template for a awhile but want to put on Patchstorage.

    My question is… I’m wondering why all the settings in Lagrange with a display selection ie. oscillator type, filter type, routing, & noise type tend to pick the same parameters more often then not while everything else is random. For oscillator it seems to pick breath (the last option), for routings it picks the 6th from last, filter it picks comb (last option) and noise it picks sand (last option) it picks these 4 options maybe 7 or 8 times out of ten while everything else is completely randomized?

    I was wondering if you had any insight on why it might do this…?

    Also I was wondering if you could add an amount know to the script so you can set how much randomization will be applied?

    Thanks.

  • @Poppadocrock said:
    @wim hey I wanted to share an AUM Template with mega cc randomizer, one of your scripts, and largrange completely mapped. As a random preset creator. I’ve had this template for a awhile but want to put on Patchstorage.

    My question is… I’m wondering why all the settings in Lagrange with a display selection ie. oscillator type, filter type, routing, & noise type tend to pick the same parameters more often then not while everything else is random. For oscillator it seems to pick breath (the last option), for routings it picks the 6th from last, filter it picks comb (last option) and noise it picks sand (last option) it picks these 4 options maybe 7 or 8 times out of ten while everything else is completely randomized?

    I was wondering if you had any insight on why it might do this…?

    The parameters you named have only a few settings and, instead of being evenly spread across the 0-127 value range, they only go from 0 to the number of parameters minus 1. For instance, there are 28 oscillator types selected by values 0-27. The randomizer is picking numbers between 0 and 127. Every time the randomizer picks 27 or higher, you just get the last one, "Breath".

    You can overcome that with the range setting in AUM's midi control.

    Take the number of options for a parameter and divide it by 127. That will give you the range to set in AUM midi control. For instance, for oscillator type, set the range from 0 to around 0.21. For noise type it would be 7 divided by 127 = about 0.06

    Also I was wondering if you could add an amount know to the script so you can set how much randomization will be applied?

    I'm not sure I understand. How much randomization from what? From the last value sent?

    When you open the app and it hasn't sent anything there's no reference like that. Would the setting be ignored? Or would it maybe assume value 64?

  • Hey ,

    I have a small request, is it possible to program this type of program (AIR) on Mozaic.
    Thanks

  • wimwim
    edited September 2022

    @Didi57850 said:
    Hey ,

    I have a small request, is it possible to program this type of program (AIR) on Mozaic.
    Thanks

    I watched for about four minutes and am none the wiser about what it does. Can you summarize?

    [edit] a quick Google search didn't enlighten me with any info about what it does or how it does it. It just says it's a

    Generative Sequencer for Ableton Live. The device is inspired by the style of minimalist composers such as Brian Eno, John Adams, Steve Reich and Arvo Pärt.

    So, if the question is if it's possible to make generative sequencers with Mozaic, the answer is yes. If the question is can AIR specifically be recreated ... that would require a lot more detailed information.

  • Thanks @wim I get why it is doing that now.

    In terms of the random strength. I was just thinking of maybe a second knob that would allow you to set how much randomization was applied. Not necessarily from the last value sent, but how far the randomization will move the parameters that are already set on the synth or whatever. I hope that makes sense. I’m not sure how it would work or if possible.

  • edited September 2022

    @wim

    One last thing, not sure if you have Lagrange but I’m guessing I would have to do the same for a few toggle buttons as well? So if there is only on and off in a toggle situation, like envelope positive/negative button or key sync on off button, that would be 1 / 127 = .007874 correct?

    And the octave button aka pitch button per oscillator which has 5 options so 4/127 = .031496.

    Update. I adjusted all these parameters and the ones I mentioned before osc type, filter, noise, routing are all working great. Thanks.

    However the octave per oscillator seems to select -2 the lowest option everytime, and the toggles, seems to be on every time, I’m wondering what I’m doing wrong on these? Thanks sorry to keep bugging you.

  • @Poppadocrock said:
    @wim

    One last thing, not sure if you have Lagrange but I’m guessing I would have to do the same for a few toggle buttons as well? So if there is only on and off in a toggle situation, like envelope positive/negative button or key sync on off button, that would be 1 / 127 = .007874 correct?

    And the octave button aka pitch button per oscillator which has 5 options so 4/127 = .031496.

    Update. I adjusted all these parameters and the ones I mentioned before osc type, filter, noise, routing are all working great. Thanks.

    However the octave per oscillator seems to select -2 the lowest option everytime, and the toggles, seems to be on every time, I’m wondering what I’m doing wrong on these? Thanks sorry to keep bugging you.

    A toggle isn't 1 value, it's 2. So they should be set to 2/127 = 0.016.

    (The formula should be #of options / 127. Or possibly divided by 128, I haven't checked to be certain)

    The pitch octave doesn't work the same way. I found it works by offset from center, sort of. The range that worked OK for me was from 0.484 to 0.522.

  • edited September 2022

    @wim said:

    @Poppadocrock said:
    @wim

    One last thing, not sure if you have Lagrange but I’m guessing I would have to do the same for a few toggle buttons as well? So if there is only on and off in a toggle situation, like envelope positive/negative button or key sync on off button, that would be 1 / 127 = .007874 correct?

    And the octave button aka pitch button per oscillator which has 5 options so 4/127 = .031496.

    Update. I adjusted all these parameters and the ones I mentioned before osc type, filter, noise, routing are all working great. Thanks.

    However the octave per oscillator seems to select -2 the lowest option everytime, and the toggles, seems to be on every time, I’m wondering what I’m doing wrong on these? Thanks sorry to keep bugging you.

    A toggle isn't 1 value, it's 2. So they should be set to 2/127 = 0.016.

    (The formula should be #of options / 127. Or possibly divided by 128, I haven't checked to be certain)

    The pitch octave doesn't work the same way. I found it works by offset from center, sort of. The range that worked OK for me was from 0.484 to 0.522.

    Ok. I was thinking the 0 counted for toggle, like zero and 1, but I see. It’s 2 total options. I was using 0 and got mixed up.

    Yea I could tell the pitch was different but couldn’t put my finger on why. Thanks so much for your guidance here. I really appreciate it. Cheers!

    Patch for AUM should be up in a day or 2. It’s actually been putting out some great stuff with Lagrange, with a litt Tweaking of course…

  • Cool @Poppadocrock - it sounds like you've put a lot of effort into that template. 👍🏼

  • @wim said:
    Cool @Poppadocrock - it sounds like you've put a lot of effort into that template. 👍🏼

    Yea at least a few hours when created, and a few more trying to make it better. Couldn’t have done it without mega cc randomizer though. Thanks again.

  • @wim i posted that Lagrange patch randomizer on Patchstorage. Thanks again for the help.

  • edited September 2022

    I also had an idea for a script @wim or anyone up to the challenge. I was wondering if there could be a Mozaic script, with the sliders gui, that could be all of your volume levels in AUM. Basically a condensed version of all the AUM volume bars, so you can control the levels in one small Mozaic screen. Each slider would control the volume of an audio channel in AUM. Then maybe you could save snapshots to create different parts of a track. This is somewhat like 4P midimixer, but it would still be awesome to have all your AUM audio channel sliders in one little Mozaic instance for easy adjustments.

    If this is possible I was also thinking it be cool to have a way to lock all the volume levels in their respective positions, and then have a separate single slider to control all of the sliders that are locked at once. So they all move in unison, as you moved the “master slider” up or down. This would be cool for things like mixing and mastering levels.

    Let me know your thoughts and if this is even possible. Thanks.

  • wimwim
    edited September 2022

    @Poppadocrock said:
    I also had an idea for a script @wim or anyone up to the challenge. I was wondering if there could be a Mozaic script, with the sliders gui, that could be all of your volume levels in AUM. Basically a condensed version of all the AUM volume bars, so you can control the levels in one small Mozaic screen. Each slider would control the volume of an audio channel in AUM. Then maybe you could save snapshots to create different parts of a track. This is somewhat like 4P midimixer, but it would still be awesome to have all your AUM audio channel sliders in one little Mozaic instance for easy adjustments.

    If this is possible I was also thinking it be cool to have a way to lock all the volume levels in their respective positions, and then have a separate single slider to control all of the sliders that are locked at once. So they all move in unison, as you moved the “master slider” up or down. This would be cool for things like mixing and mastering levels.

    Let me know your thoughts and if this is even possible. Thanks.

    It's easy, but has the big disadvantage that if you adjust any of those faders in AUM, they'll be out of sync with the script faders. There's no way to provide midi feedback from the AUM faders to the script to keep them in sync.

    A smaller disadvantage is you lose AUM's more precise faders in favor of 128 values worth of midi CC. And the faders are smaller as well.

    What's better about Mozaic for this than MIDI Mixer? I feel like I'm missing the point somehow.

  • wimwim
    edited September 2022

    Come to think of it, the Basic MIDI Controls script can easily be set up to do what you describe, minus the snapshots.

  • MIDI Morph Pad 2 can also do it, and has snapshots too.

  • I imagine there is already a script for this but I wonder if one of the gurus knows which.

    Is there a script that has a bunch of pads, where each pad can be given an assignable channel, CC number and value and turned on or off with a press and / or overridden when a pad with the same channel and CC but a different value is pressed? This would be very useful for 'playing' things like the pitch slider in Objeq or the 'band' setting in Lo-fi-af in musical ways. Or does anyone else have elegant solutions for using other apps or methods to do this?

  • @Gavinski said:
    I imagine there is already a script for this but I wonder if one of the gurus knows which.

    Is there a script that has a bunch of pads, where each pad can be given an assignable channel, CC number and value and turned on or off with a press and / or overridden when a pad with the same channel and CC but a different value is pressed? This would be very useful for 'playing' things like the pitch slider in Objeq or the 'band' setting in Lo-fi-af in musical ways. Or does anyone else have elegant solutions for using other apps or methods to do this?

    Giving this a little bump!

  • wimwim
    edited November 2022

    @Gavinski said:
    I imagine there is already a script for this but I wonder if one of the gurus knows which.

    Is there a script that has a bunch of pads ...

    A "bunch"? Mozaic only has 16 pads. Is that how many you had in mind, or were you somehow thinking of more, perhaps in banks or something?

    (As far as interface juggling and coding goes, limiting it to 16 pads and just using multiple instances would be significantly simpler.)

    ... where each pad can be given an assignable channel, CC number and value and turned on or off ...

    What do you mean by "on or off"? Do you mean alternating between value 0 and the assigned value with each press?

    ... with a press and / or overridden when a pad with the same channel and CC but a different value is pressed? This would be very useful for 'playing' things like the pitch slider in Objeq or the 'band' setting in Lo-fi-af in musical ways. Or does anyone else have elegant solutions for using other apps or methods to do this?

    You mention pitch. I'm not clear if the pitch slider you're referring to uses a CC or if it uses the Pitch Bend message, which is a different MIDI message ranging from 0 to 16,383 with 8,192 being no bend. Would Pitch Bend need to be an option for the pads? If so, would 8,192 be the "off" value?

    I don't want to create the expectation that I'll take this on since I'm starting a new job that is pretty much kicking my ass and may not be up for it. But understanding what you've got in mind a bit better would help to understand how much effort it could be.

  • edited November 2022

    I have a little problem that I described here:

    https://forum.audiob.us/discussion/comment/1134146#Comment_1134146

    Basically I have an MPE controller with 8 keys that is hard-set to C-major, and I want to bind every key to a note one half-step apart, so that the 8 keys on the controller play the notes C-C#-D-D#-E-F-F#-G starting from C-4. The notes should keep the same channel though so that the aftertouch/MPE info for each key still matches the channel of the note.

    And I assume it would probably be a super simple script to do that, would this already be enough?

    @OnMidiCC
    SendMidiThru
    @end

    @OnMidiNote
    if MIDINote = #1
    SendMidiOut x,60,z
    endif
    if MIDINote = #2
    SendMidiOut x,61,z
    endif
    if MIDINote = #3
    SendMidiOut x,62,z
    endif
    if MIDINote = #4
    SendMidiOut x,63,z
    endif
    ...
    @end

    would x, y, z correspond to channel, note, and velocity? How would I keep the original channel and velocity and only change the note value? If I wanted to send a C-4 MIDI note with the channel and velocity unchanged, would it look like this?:

    SendMidiOut MIDIByte1, 60, MIDIByte3

Sign In or Register to comment.