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*

17810121362

Comments

  • That’s actually an XYZ pad then. Spectrum’s XY(Z) pad works this way, but doesn’t send midi out. There would need to be something like an @OnXYPadDown and @OnXYPadDown function added to Mozaic for that ... which would be a really nice thing to have actually. That would allow you to manipulate the XY pad but not send cc values until lifting your finger, for instance. It makes sense since the knobs and pads have this already.

    Maybe that’s something @brambos might consider.

    Short of that, just having a pad configured for cc106 would work, though it would require two touches rather than one.

    Another way to possibly mimic it is to send the cc106 “on” when the first movement is detected, then send the cc106 off some configurable threshold after there’s no further XY change.

  • @espiegel123 said:

    @tpj said:

    @espiegel123 said:

    @tpj said:
    Is it possible to use mozaic to create a xyz pad?

    The XY pad for MFX in Grooverider can be triggered with cc102,103 for xy and cc106 for turning it on and off.

    So i wish to use Mozaic to have the exact same behaviour so i can record the xy pad midi in Xequence because currently you can only record this internally in GR16.

    Would be great if this already exist or can be made, because that would be amazing.

    You mentioned KB-1 in another thread. What is it that it’s xy pads don’t do that you need?

    They only send out x or y so you can only map 2 values.

    To control the XY pad in Grooverider by midi you need to send cc 102,103 to move the xy pad position and also CC 106 for turning the effect on and off.

    The Grooverider GR16 XY pad will turn on the effect on touch, and turn off on release. So thats a 3th cc value besides x and y.

    The xy pad in KB1 or Brambos only maps 2.

    Most XY pads send only two values. I think you will need to map another control that sends cc106 or write a mozaic script. When would the xy pad send cc106?

    The xy pad needs to send cc106 on touch ( above 64 ) and release (below 64)
    This will turn the effect on/off
    No idea how to script this but i already got a suggestion in another thread.
    The app LK has a xyz pad which does exactly this!
    So if Mozaic can do XYZ then it would be possible. But for now i'm good;)

  • Hello hellow fellows,

    Any righteous who could please write a script:

    Selectable cc value up/down.

    It could be added to an existing scripts:

    https://wiki.audiob.us/mozaic_cc_switch

    or

    https://patchstorage.com/cc-banks/

  • @Tamir_Raz_Mataz said:

    Hello hellow fellows,

    Any righteous who could please write a script:

    Selectable cc value up/down.

    It could be added to an existing scripts:

    https://wiki.audiob.us/mozaic_cc_switch

    or

    https://patchstorage.com/cc-banks/

    What should the initial value of the cc be when you load the script?

  • @tpj said:

    @espiegel123 said:

    @tpj said:

    @espiegel123 said:

    @tpj said:
    Is it possible to use mozaic to create a xyz pad?

    The XY pad for MFX in Grooverider can be triggered with cc102,103 for xy and cc106 for turning it on and off.

    So i wish to use Mozaic to have the exact same behaviour so i can record the xy pad midi in Xequence because currently you can only record this internally in GR16.

    Would be great if this already exist or can be made, because that would be amazing.

    You mentioned KB-1 in another thread. What is it that it’s xy pads don’t do that you need?

    They only send out x or y so you can only map 2 values.

    To control the XY pad in Grooverider by midi you need to send cc 102,103 to move the xy pad position and also CC 106 for turning the effect on and off.

    The Grooverider GR16 XY pad will turn on the effect on touch, and turn off on release. So thats a 3th cc value besides x and y.

    The xy pad in KB1 or Brambos only maps 2.

    Most XY pads send only two values. I think you will need to map another control that sends cc106 or write a mozaic script. When would the xy pad send cc106?

    The xy pad needs to send cc106 on touch ( above 64 ) and release (below 64)
    This will turn the effect on/off
    No idea how to script this but i already got a suggestion in another thread.
    The app LK has a xyz pad which does exactly this!
    So if Mozaic can do XYZ then it would be possible. But for now i'm good;)

    I see. You want XYZ or XY+touch state

    @brambos : might be a nice addition to Mozaic to have On XYDown and On XYUp

  • wimwim
    edited February 2020

    @wim said:

    @Tamir_Raz_Mataz said:

    Hello hellow fellows,

    Any righteous who could please write a script:

    Selectable cc value up/down.

    It could be added to an existing scripts:

    https://wiki.audiob.us/mozaic_cc_switch

    or

    https://patchstorage.com/cc-banks/

    Here you go...
    [edit] whoops, got distracted by the wife and made some big mistakes. Stay tuned..
    [edit2] OK, that’s better. Sorry about that.

    @Description
    Increment cc's up or down. See the first three commands of the @OnLoad event to change the cc's and their initial defaults. Use the first knob to set the output midi channel.
    @End
    
    @OnLoad
      //set the cc#s you want here
      cc = [1,2,22,44,55,66,88,127]
    
      //set the default values for each cc here
      defaultValue = [64,64,64,64,64,64,64,64]
    
      //set the default midi channel here
      defaultChannel = 0
    
      if Unassigned init
        init = TRUE
        CopyArray defaultValue, ccvalue
        for i = 0 to 7
          LabelPad i, {cc }, cc[i], {                } , {⬆️},  {               }, ccvalue[i]
          LabelPad (i+8), {⬇️}
        endfor
        channel = defaultChannel
        SetKnobValue 0, channel
        LabelKnob 0, {ch. }, (channel + 1)
      endif
    
      SetShortName {ccPads}
      LabelPads {CC Up-Down Incrementors}
      LabelKnobs {Parameters}
      Showlayout 2
    @End
    
    @OnPadDown
      i = LastPad
    
      if (i >= 0) and (i <= 7)
        ccvalue[i] = Clip (ccvalue[i] + 1), 0, 127
        LabelPad i, {cc }, cc[i], {                } , {⬆️},  {               }, ccvalue[i]
        SendMIDICC channel, cc[i], ccvalue[i] 
      else
        ccvalue[i-8] = Clip (ccvalue[i-8] - 1), 0, 127
        LabelPad i-8, {cc }, cc[i-8], {                } , {⬆️},  {               }, ccvalue[i-8]
        SendMIDICC channel, cc[i-8], ccvalue[i-8] 
      endif  
    
    @End
    
    @OnKnobChange
      knob = LastKnob 
      value = GetKnobValue knob
    
      if knob = 0
        channel = Round (TranslateScale value, 0, 127, 0, 15)
        LabelKnob knob, {ch. }, (channel + 1)
      endif 
    @End
    
    
  • @wim said:

    @wim said:

    @Tamir_Raz_Mataz said:

    Hello hellow fellows,

    Any righteous who could please write a script:

    Selectable cc value up/down.

    It could be added to an existing scripts:

    https://wiki.audiob.us/mozaic_cc_switch

    or

    https://patchstorage.com/cc-banks/

    Here you go...
    [edit] whoops, got distracted by the wife and made some big mistakes. Stay tuned..
    [edit2] OK, that’s better. Sorry about that.

    @Description
    Increment cc's up or down. See the first three commands of the @OnLoad event to change the cc's and their initial defaults. Use the first knob to set the output midi channel.
    @End
    
    @OnLoad
      //set the cc#s you want here
      cc = [1,2,22,44,55,66,88,127]
     
      //set the default values for each cc here
      defaultValue = [64,64,64,64,64,64,64,64]
    
      //set the default midi channel here
      defaultChannel = 0
     
      if Unassigned init
        init = TRUE
        CopyArray defaultValue, ccvalue
        for i = 0 to 7
          LabelPad i, {cc }, cc[i], {                } , {⬆️},  {               }, ccvalue[i]
          LabelPad (i+8), {⬇️}
        endfor
        channel = defaultChannel
        SetKnobValue 0, channel
        LabelKnob 0, {ch. }, (channel + 1)
      endif
      
      SetShortName {ccPads}
      LabelPads {CC Up-Down Incrementors}
      LabelKnobs {Parameters}
      Showlayout 2
    @End
    
    @OnPadDown
      i = LastPad
      
      if (i >= 0) and (i <= 7)
        ccvalue[i] = Clip (ccvalue[i] + 1), 0, 127
        LabelPad i, {cc }, cc[i], {                } , {⬆️},  {               }, ccvalue[i]
        SendMIDICC channel, cc[i], ccvalue[i] 
      else
        ccvalue[i-8] = Clip (ccvalue[i-8] - 1), 0, 127
        LabelPad i-8, {cc }, cc[i-8], {                } , {⬆️},  {               }, ccvalue[i-8]
        SendMIDICC channel, cc[i-8], ccvalue[i-8] 
      endif  
      
    @End
    
    @OnKnobChange
      knob = LastKnob 
      value = GetKnobValue knob
      
      if knob = 0
        channel = Round (TranslateScale value, 0, 127, 0, 15)
        LabelKnob knob, {ch. }, (channel + 1)
      endif 
    @End
    
    

    That’s awesome @wim.
    Much appreciated. Many thanks.
    It’s useful for my ultimate Aum setup.
    I’ll use it for Lumbeats drums to go up down the presets/sounds etc
    And probably so many other uses.

  • edited February 2020

    @wim is it possible to assign different channels to different pads?

    In addition to that script that is useful for lumbeat. A set of program change pads is required.

    Can I steal 10 more minutes of your time ;) please !

    to have an assignable script for program change?

  • wimwim
    edited February 2020

    @Tamir_Raz_Mataz said:
    @wim is it possible to assign different channels to different pads?

    Sure, I can do that. While I'm at it, it would be more useful if the cc's could be changed without modifying the code as well. That's easy enough to do.

    In addition to that script that is useful for lumbeat. A set of program change pads is required.

    I'm not sure I understand. Did you mean a similar app, but rather than MIDI cc's it sends program change? Or that one of the pads could be configured to send program change? Or? Also, program change can consist of Bank and Program, though many apps don't use Bank, only program. Did you need Bank and Program, or just Program? Do you need multiple program changes (for different channels), or just one set?

    One thing about program change that's different from cc's is you probably don't want to send the PC each time you hit a pad. If you want to go from program 10 to 13, you probably don't want to send 11 and 12 to get there. So, a "send" button is needed so that the PC doesn't get sent until you're on the right number.

  • Just download and share into Mosaic and Load that script? Too easy for non-coders, IMHO.
    This should be more difficult. >:)

    Here you go...
    [edit] whoops, got distracted by the wife and made some big mistakes. Stay tuned..

    You have a wife? My respects to her for patience.

    Wait. I cam just paste this into the code window and skip the complexity of a download?
    Won't someone steal you work and sell it? is there a Mozaic to Swift converter? @_Ki?
    He can do that type or coding. I shit you knot(s).

    @Description
    Increment cc's up or down. See the first three commands of the @OnLoad event to change the cc's and their initial defaults. Use the first knob to set the output midi channel.
    @End
    
    @OnLoad
      //set the cc#s you want here
      cc = [1,2,22,44,55,66,88,127]
     
      //set the default values for each cc here
      defaultValue = [64,64,64,64,64,64,64,64]
    
      //set the default midi channel here
      defaultChannel = 0
     
      if Unassigned init
        init = TRUE
        CopyArray defaultValue, ccvalue
        for i = 0 to 7
          LabelPad i, {cc }, cc[i], {                } , {⬆️},  {               }, ccvalue[i]
          LabelPad (i+8), {⬇️}
        endfor
        channel = defaultChannel
        SetKnobValue 0, channel
        LabelKnob 0, {ch. }, (channel + 1)
      endif
      
      SetShortName {ccPads}
      LabelPads {CC Up-Down Incrementors}
      LabelKnobs {Parameters}
      Showlayout 2
    @End
    
    @OnPadDown
      i = LastPad
      
      if (i >= 0) and (i <= 7)
        ccvalue[i] = Clip (ccvalue[i] + 1), 0, 127
        LabelPad i, {cc }, cc[i], {                } , {⬆️},  {               }, ccvalue[i]
        SendMIDICC channel, cc[i], ccvalue[i] 
      else
        ccvalue[i-8] = Clip (ccvalue[i-8] - 1), 0, 127
        LabelPad i-8, {cc }, cc[i-8], {                } , {⬆️},  {               }, ccvalue[i-8]
        SendMIDICC channel, cc[i-8], ccvalue[i-8] 
      endif  
      
    @End
    
    @OnKnobChange
      knob = LastKnob 
      value = GetKnobValue knob
      
      if knob = 0
        channel = Round (TranslateScale value, 0, 127, 0, 15)
        LabelKnob knob, {ch. }, (channel + 1)
      endif 
    @End
    
    

    Yep. I tried it and changed it to mine and dedicated it to Ms. @wim. Not that @wim will show it to her but still. Good woman to let him live here.

  • wimwim
    edited February 2020

    If only Ms. Wim would accept Mozaic scripts as Valentine's Day gifts I'd be set.

    And yes, my LOVELY wife is probably the most patient person on earth. <3

    (Above written in case she successfully reads over my shoulder.)

  • wimwim
    edited February 2020

    @McD said:
    Wait. I cam just paste this into the code window and skip the complexity of a download?
    Won't someone steal you work and sell it?

    Yep. That's cool. I wanna be a millionaire rock star not Bill Gates.

  • @wim @McD 🎁😍🤓🧐😳🤣😂.
    Thank for the effort.
    You guys LOLed me

  • edited February 2020

    @wim said:

    @Tamir_Raz_Mataz said:
    @wim is it possible to assign different channels to different pads?

    Sure, I can do that. While I'm at it, it would be more useful if the cc's could be changed without modifying the code as well. That's easy enough to do.

    In addition to that script that is useful for lumbeat. A set of program change pads is required.

    I'm not sure I understand. Did you mean a similar app, but rather than MIDI cc's it sends program change? Or that one of the pads could be configured to send program change? Or? Also, program change can consist of Bank and Program, though many apps don't use Bank, only program. Did you need Bank and Program, or just Program? Do you need multiple program changes (for different channels), or just one set?

    One thing about program change that's different from cc's is you probably don't want to send the PC each time you hit a pad. If you want to go from program 10 to 13, you probably don't want to send 11 and 12 to get there. So, a "send" button is needed so that the PC doesn't get sent until you're on the right number.

    @wim said:

    @Tamir_Raz_Mataz said:
    @wim is it possible to assign different channels to different pads?

    Sure, I can do that. While I'm at it, it would be more useful if the cc's could be changed without modifying the code as well. That's easy enough to do.

    In addition to that script that is useful for lumbeat. A set of program change pads is required.

    I'm not sure I understand. Did you mean a similar app, but rather than MIDI cc's it sends program change? Or that one of the pads could be configured to send program change? Or? Also, program change can consist of Bank and Program, though many apps don't use Bank, only program. Did you need Bank and Program, or just Program? Do you need multiple program changes (for different channels), or just one set?

    One thing about program change that's different from cc's is you probably don't want to send the PC each time you hit a pad. If you want to go from program 10 to 13, you probably don't want to send 11 and 12 to get there. So, a "send" button is needed so that the PC doesn't get sent until you're on the right number.

    @wim said:

    @Tamir_Raz_Mataz said:
    @wim is it possible to assign different channels to different pads?

    Sure, I can do that. While I'm at it, it would be more useful if the cc's could be changed without modifying the code as well. That's easy enough to do.

    In addition to that script that is useful for lumbeat. A set of program change pads is required.

    I'm not sure I understand. Did you mean a similar app, but rather than MIDI cc's it sends program change? Or that one of the pads could be configured to send program change? Or? Also, program change can consist of Bank and Program, though many apps don't use Bank, only program. Did you need Bank and Program, or just Program? Do you need multiple program changes (for different channels), or just one set?

    One thing about program change that's different from cc's is you probably don't want to send the PC each time you hit a pad. If you want to go from program 10 to 13, you probably don't want to send 11 and 12 to get there. So, a "send" button is needed so that the PC doesn't get sent until you're on the right number.

    I wish you many more years of happy distractions with your wife and to always appreciate true love.

    I will find ways to benefit the community like you do with your scripts.

    It’s a product of love , like a gift that keeps on giving.
    thanks the developers for taking their time on turning apps into auv3 with exposed pareameters.
    I would probably wouldn’t need much Mozaic.
    No doubt it opens new modularity possibilities that adds to the modularity iOS workflow.

    Regarding the PC message script. Mostly no up/down is required as much as just one message send as you could see in the highlighted in the attached image.

  • Talking about program change.
    I believe you could solve my riddle of @sonosaurus wonderful apps: DrumJam and ThumbJam.
    for skipping through user presets via program change msb/lsb.

    Would love some help for @nuno_agogo script.

    adding another type of program change to the “Agogo shuffle” script:

    https://patchstorage.com/agogo-shuffle-version-1-0/

    What is needed for the user program change is this:

    Bank select MSB (CC0) = 02
    with LSB (CC32) picks the USER preset group, with
    program change events selecting the preset within that group.

    Or maybe I got it wrong.

  • @Tamir_Raz_Mataz said:
    Regarding the PC message script. Mostly no up/down is required as much as just one message send as you could see in the highlighted in the attached image.

    See if this works the way you need it to...

    @OnLoad
      pc = [0,1,2,3,4,5,6,7,8,12,10,11,13]
      default_chan = 0
    
      Call @MyPadLabels
      if Unassigned init
        init = TRUE
        chan = default_chan
        SetKnobValue 0, chan 
        LabelKnob 0, {ch. }, (chan + 1)
        LabelKnob 1, { }
        LabelKnob 2, { }
        LabelKnob 3, { }
      endif
    
      SetShortName {LUMPC}
      LabelPads {Lumbeats Live Pad MIDI Controls} 
      LabelKnobs {Settings}
      ShowLayout 2
    @End
    
    @OnPadDown
      pad = LastPad
      if pad <= 12
        if (pad >= 0) and (pad <= 7)
          for a = 0 to 7
            LatchPad a, NO
          endfor
          LatchPad pad, YES
        endif
        SendMIDIProgramChange chan, pc[pad]
      endif
    @End
    
    @OnKnobChange
      knob = LastKnob 
      value = GetKnobValue knob
      if knob = 0
        chan = Round(TranslateScale value, 0, 127, 0, 15)
        LabelKnob 0, {ch. }, (chan + 1)
      endif
    @End
    
    @MyPadLabels
      LabelPad 0, {Select Pad 1}
      LabelPad 1, {Select Pad 2}
      LabelPad 2, {Select Pad 3}
      LabelPad 3, {Select Pad 4}
      LabelPad 4, {Select Pad 5}
      LabelPad 5, {Select Pad 6}
      LabelPad 6, {Select Pad 7}
      LabelPad 7, {Select Pad 8}
    
      LabelPad 8, {Fill}
      LabelPad 9, {Fill Next Pad Change}
      LabelPad 10, {Fill Every Pad Change}
      LabelPad 11, {Fill & Start / End}
      LabelPad 12, {Play}
    @End
    
  • wimwim
    edited February 2020

    @wim said:

    @Tamir_Raz_Mataz said:
    @wim is it possible to assign different channels to different pads?

    Sure, I can do that. While I'm at it, it would be more useful if the cc's could be changed without modifying the code as well. That's easy enough to do.

    I’ve uploaded MIDI CC Up-Down Pads to patchstorage.com. This has basically the same functionality except that now you can change the channel and cc per pad by holding down SHIFT plus a pad to select it.

    I hope it works as you’d like. If not, then let me know. B)

    (I’ve also updated the license terms to reflect that anyone except @McD can freely use, adapt, derive from or sell it without restriction.)

  • @wim said:

    @wim said:

    @Tamir_Raz_Mataz said:
    @wim is it possible to assign different channels to different pads?

    Sure, I can do that. While I'm at it, it would be more useful if the cc's could be changed without modifying the code as well. That's easy enough to do.

    I’ve uploaded MIDI CC Up-Down Pads to patchstorage.com. This is basically the same app except that now you can change the channel and cc per pad by holding down SHIFT plus a pad to select it.

    I hope it works like you’d like. If not, then let me know. B)

    (I’ve also updated the license terms to reflect that anyone except @McD can freely use, adapt, derive from or sell it without restriction.)

    Genius. You know I'd fork it and fork it hard. Smart move to insure safe scripting without
    STD's (Stupid Technical Derivatives).

  • edited February 2020

    @wim said:

    @Tamir_Raz_Mataz said:
    Regarding the PC message script. Mostly no up/down is required as much as just one message send as you could see in the highlighted in the attached image.

    See if this works the way you need it to...

    @OnLoad
      pc = [0,1,2,3,4,5,6,7,8,12,10,11,13]
      default_chan = 0
    
      Call @MyPadLabels
      if Unassigned init
        init = TRUE
        chan = default_chan
        SetKnobValue 0, chan 
        LabelKnob 0, {ch. }, (chan + 1)
        LabelKnob 1, { }
        LabelKnob 2, { }
        LabelKnob 3, { }
      endif
      
      SetShortName {LUMPC}
      LabelPads {Lumbeats Live Pad MIDI Controls} 
      LabelKnobs {Settings}
      ShowLayout 2
    @End
    
    @OnPadDown
      pad = LastPad
      if pad <= 12
        if (pad >= 0) and (pad <= 7)
          for a = 0 to 7
            LatchPad a, NO
          endfor
          LatchPad pad, YES
        endif
        SendMIDIProgramChange chan, pc[pad]
      endif
    @End
    
    @OnKnobChange
      knob = LastKnob 
      value = GetKnobValue knob
      if knob = 0
        chan = Round(TranslateScale value, 0, 127, 0, 15)
        LabelKnob 0, {ch. }, (chan + 1)
      endif
    @End
    
    @MyPadLabels
      LabelPad 0, {Select Pad 1}
      LabelPad 1, {Select Pad 2}
      LabelPad 2, {Select Pad 3}
      LabelPad 3, {Select Pad 4}
      LabelPad 4, {Select Pad 5}
      LabelPad 5, {Select Pad 6}
      LabelPad 6, {Select Pad 7}
      LabelPad 7, {Select Pad 8}
      
      LabelPad 8, {Fill}
      LabelPad 9, {Fill Next Pad Change}
      LabelPad 10, {Fill Every Pad Change}
      LabelPad 11, {Fill & Start / End}
      LabelPad 12, {Play}
    @End
    

    It does work fine.
    Many thanks!

    If you want to make it complete you can add the attached features from the image.

    up/down pads:
    Midi CC 0: Bank
    Midi CC 32: Rhythm

    Knobs:
    Midi CC 1: Jam Intensity
    Midi CC 7: Master Volume
    Midi CC 11: Swing
    Midi CC 91: Reverb Gain

    And also up/down for pads with a pedal mode. I’ll ask the dev how to control it.if it cancels the other mode etc.

  • @Tamir_Raz_Mataz said:

    It does work fine.
    Many thanks!

    If you want to make it complete you can add the attached features from the image.

    up/down pads:
    Midi CC 0: Bank
    Midi CC 32: Rhythm

    Knobs:
    Midi CC 1: Jam Intensity
    Midi CC 7: Master Volume
    Midi CC 11: Swing
    Midi CC 91: Reverb Gain

    I’m curious. What does this script accomplish for you? It’s just replacing the Lumbeats app on-screen controls with ... other onscreen controls? I’m not sure I get it.

  • edited February 2020

    @wim said:

    @Tamir_Raz_Mataz said:

    It does work fine.
    Many thanks!

    If you want to make it complete you can add the attached features from the image.

    up/down pads:
    Midi CC 0: Bank
    Midi CC 32: Rhythm

    Knobs:
    Midi CC 1: Jam Intensity
    Midi CC 7: Master Volume
    Midi CC 11: Swing
    Midi CC 91: Reverb Gain

    I’m curious. What does this script accomplish for you? It’s just replacing the Lumbeats app on-screen controls with ... other onscreen controls? I’m not sure I get it.

    It accomplishes an easy way to add and record automation. flexibility for setting hardware controllers.
    Especially for hardware controllers that lacks “scenes” or “banks”.
    I can have few Mozaic instances open instead of skipping through apps which causes glitches.

    ATM I’m using two Lumbeat apps simultaneously.(future drummer and Mid East drummer)
    It allows me to change instantly in real-time without needing to get to the specific onscreen controller .

    My initial requirement was to make a general assignable script not specifically for Lumbeat apps. But you surprised me with a dedicated Lumbeat script and it certainly useful and needed for Lumbeat users.

  • @Tamir_Raz_Mataz said:
    Talking about program change.
    I believe you could solve my riddle of @sonosaurus wonderful apps: DrumJam and ThumbJam.
    for skipping through user presets via program change msb/lsb.

    Would love some help for @nuno_agogo script.

    adding another type of program change to the “Agogo shuffle” script:

    https://patchstorage.com/agogo-shuffle-version-1-0/

    What is needed for the user program change is this:

    Bank select MSB (CC0) = 02
    with LSB (CC32) picks the USER preset group, with
    program change events selecting the preset within that group.

    Or maybe I got it wrong.

    To load factory presets, you need to send a bank select MSB message (CC 0) with value of 1, and a bank select LSB (CC 32) with the value of the group. Then program changes will a preset in that group. Similar for User presets, you send a CC0 with value of 2. You only need to send the CC0 and CC32 when you want to select a different group for program changes to affect.

  • I’ve uploaded MIDI Channel Phase Mixer v1.0 to patchstorage.com. This one was requested and designed by @horsetrainer some pages back.


    MIDI Channel Phase Mixer v1.0
    From a design by AudioBus Forum member @horsetrainer

    When the script receives a Note-On message it will be sent out on the channels specified in the top row of knobs after the delay set by the knob below it. If the top knob is set to Bypass no note is sent regardless of the delay setting.

    When the script receives a Note-Off message it is sent immediately for that note on any channel on which it is playing, and any queued Note-On messages for it will be cancelled.

    Sensitivity: reduces the maximum delay, making the delay knobs more accurate.
    Accuracy: Higher settings mean less CPU work at the cost of timing accuracy. Increase this if notes are sticking or not playing as they should, or the script is spiking CPU. Otherwise it should be left alone.


  • Nice work, @wim and @horsetrainer for defining and "typing" script.

    I have a theory that anyone that can type can code, if they just give it a try.
    Coding literacy is to be encouraged. Now, it also leads to the Great American Novel like "The Chordulator".

    People that are otherwise generally useless can code and pay their rent. It's also
    like a slot machine: you get a real payout when it works. The trick is to start out with something that works and change it without breaking it at each change. @Brambos uses that approach and he creates novel "novels" in C.

    Now we need to post a sonic demo to get more Mozaic "Users" that don't code but just download new FX... (wait for it) for free, forever.

    no implied warrantees apply. Use at your own risk.

  • edited February 2020

    I got a little bit carried away when writing the yet unnamed "polyphonic channel rotation automation recorder" script @horsetrainer requested on January 13th. I'm hoping to release the first version of it some time this upcoming week.

    My next big project is going to be an automation recorder, with a "zoomable" editing timeline, the ability to create vectors, and a CC-controllable stutter/glitch feature. If anybody here is good with math, I'd love to implement curved vectors.
    https://en.m.wikipedia.org/wiki/Cubic_Hermite_spline

    Here's a little preview of the @horsetrainer automation script, combined with another script which I think I'll call "Jumprope". (I've been writing the UI for these separately.) Jumprope is only controlling four AUM faders here, but it can currently control up to ten. With the automation script, each channel is playing a different random sequence of four user-created automation patterns. (Btw, the script is not random or looping by default.) It can loop through them in order as well. The other thing it can do is select the automation slot based on the velocity, which is really fun when paired with something like KB-1.

    Video quality's a little choppy from the high CPU load.

  • Wow @Skyblazer , that looks amazing!

    Wim's Phase Mixer turned out amazing too.
    I've been designing sounds with it almost non stop since he messaged me when he released it yesterday.

  • @McD
    I'm still studying Mozaic Scripting.
    Learning a little at a time.

  • @horsetrainer said:
    @McD
    I'm still studying Mozaic Scripting.
    Learning a little at a time.

    I intend to learn the ponies.

  • @Skyblazer said:
    I got a little bit carried away when writing the yet unnamed "polyphonic channel rotation automation recorder" script @horsetrainer requested on January 13th. I'm hoping to release the first version of it some time this upcoming week.

    My next big project is going to be an automation recorder, with a "zoomable" editing timeline, the ability to create vectors, and a CC-controllable stutter/glitch feature. If anybody here is good with math, I'd love to implement curved vectors.
    https://en.m.wikipedia.org/wiki/Cubic_Hermite_spline

    Here's a little preview of the @horsetrainer automation script, combined with another script which I think I'll call "Jumprope". (I've been writing the UI for these separately.) Jumprope is only controlling four AUM faders here, but it can currently control up to ten. With the automation script, each channel is playing a different random sequence of four user-created automation patterns. (Btw, the script is not random or looping by default.) It can loop through them in order as well. The other thing it can do is select the automation slot based on the velocity, which is really fun when paired with something like KB-1.

    Video quality's a little choppy from the high CPU load.

    looking F>W>D for that !

  • Is there a script to get a note on quantized?
    This would be useful whenever missing a synth apps arps timing and causes out of sync.

Sign In or Register to comment.