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*

1262729313262

Comments

  • _ki_ki
    edited December 2020

    @jollyDodger Just to be sure: Will the BopPad always send that CC after each note-on ? And is there only a single CC to be re-ordered before the note-on ?

    If both is the case, then here you are:

    @Description
    ▫️◽️◻️⬜️ BopPad CC/NoteOn Order Fix v1.0 ⬜️◻️◽️▫️
    
    Delays the midi note-on event to occur after a CC has been received
    @End 
    
    @OnLoad
      ShowLayout 4
      SetShortName {BopFix} 
    
      LabelKnobs { } 
      for knob = 0 to 3
        SetKnobValue knob,0
        LabelKnob knob, { } 
      endfor
    
      noteNum  = -1
      noteChan = 0
      noteVel  = 0
    @End
    
    @OnMidiInput
      if MidiCommand = 0x90 and MIDIVelocity<>0 
    
        // NoteOn stores the note data, but doesn't output it
        noteNum  = MIDINote 
        noteChan = MIDIChannel 
        noteVel  = MIDIVelocity 
      else                                        
    
        // All other midi events are send thru
        SendMidiThru
    
        // Issue a stored note after first CC received
        if MidiCommand = 0xB0 and noteNum>=0    
          SendMIDINoteOn noteChan, noteNum, noteVel
          noteNum = -1
        endif    
      endif
    @End 
    
  • edited December 2020

    Nvm

  • @soundtemple said:
    @wim do you have any examples of mini midi controllers available to view?

    Just catching up on this thread, but here's one I made a few months ago :)

    https://forum.audiob.us/discussion/41372/i-made-a-tiny-drambo-morph-scene-controller

  • edited December 2020

    . Thanks, very useful. Sorry if i was not accurate enough in description.

    • Yes will always send cc after note on
    • No. Up to 20 CC are sent after note on. (I’m using 5)
    • This will be on, up to four channels

    .> @_ki said:

    @jollyDodger Just to be sure: Will the BopPad always send that CC after each note-on ? And is there only a single CC to be re-ordered before the note-on ?

    If both is the case, then here you are:

    @Description
    ▫️◽️◻️⬜️ BopPad CC/NoteOn Order Fix v1.0 ⬜️◻️◽️▫️
    
    Delays the midi note-on event to occur after a CC has been received
    @End 
    
    @OnLoad
      ShowLayout 4
      SetShortName {BopFix} 
      
      LabelKnobs { } 
      for knob = 0 to 3
        SetKnobValue knob,0
        LabelKnob knob, { } 
      endfor
      
      noteNum  = -1
      noteChan = 0
      noteVel  = 0
    @End
    
    @OnMidiInput
      if MidiCommand = 0x90 and MIDIVelocity<>0 
    
        // NoteOn stores the note data, but doesn't output it
        noteNum  = MIDINote 
        noteChan = MIDIChannel 
        noteVel  = MIDIVelocity 
      else                                        
                                  
        // All other midi events are send thru
        SendMidiThru
        
        // Issue a stored note after first CC received
        if MidiCommand = 0xB0 and noteNum>=0    
          SendMIDINoteOn noteChan, noteNum, noteVel
          noteNum = -1
        endif    
      endif
    @End 
    
  • @jollyDodger said:
    . Thanks, very useful. Sorry if i was not accurate enough in description.

    • Yes will always send cc after note on
    • No. Up to 20 CC are sent after note on. (I’m using 5)
    • This will be on, up to four channel

    Hmm, the script i posted just delays the note-on for a single CC. But i could add a knob, where the user can setup how many CCs need to be received, before sending out the note-on. Since there the BopPad allows up to 20 CCs, i would use a range of 1-20 CCs to be shifted.

    => That updated script would rely on the fact that always the same number of CCs is send after note-on.

  • _ki_ki
    edited December 2020

    During my tests (using another script to emulate the BopPads sending of CCs after note-on) i noticed that i had to add several fallback checks in case the configured number of CCs differs from the number currently send by the BopPad.

    And i came to the concusion that it‘s even more simple/convenient if the script auto-detects the number of CCs send between note-on/note-off and uses this number for the next re-ordering. The very first hit on the BopPad will use a one-CC setting, then it learned the number. Since this count is stored in the script’s preset, reloading a session with this script will use the correct number of CCs right from the start.

    .

    A limitiation of the already posted and upcoming script is that the whole approach assumes that the BopPad works kind of monophonic, only a single note is active and the event order is aways „note-on, several CCs“ and never ever a new note-on will be issued during the CCs of this note-on.

    => Please inform me, if overlapping notes are possible with the BopPad - even in that case, realizing your script request is not impossible, but it merely becomes significantly complex to code :)

  • edited December 2020

    @_ki said:
    => Please inform me, if overlapping notes are possible with the BopPad - even in that case, realizing your script request is not impossible, but it merely becomes significantly complex to code :)

    Yes they appear to overlap: midi dump of two pad strike at same time:

    13:12:23.172 [Note On] ch=13 note=36 velocity=20
    13:12:23.172 [CC] ch=13 controller=16 value=5 [MP]
    13:12:23.172 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.172 [CC] ch=13 controller=18 value=27 [MP]
    13:12:23.172 [CC] ch=13 controller=14 value=5 [MP]
    13:12:23.172 [CC] ch=13 controller=15 value=20 [MP]
    13:12:23.172 [Note On] ch=12 note=48 velocity=28 [MP]
    13:12:23.172 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.172 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.172 [CC] ch=12 controller=18 value=24 [MP]
    13:12:23.172 [CC] ch=12 controller=14 value=127 [MP]
    13:12:23.172 [CC] ch=12 controller=15 value=28 [MP]
    13:12:23.181 [CC] ch=13 controller=16 value=9
    13:12:23.181 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.181 [CC] ch=13 controller=18 value=22 [MP]
    13:12:23.181 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.181 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.181 [CC] ch=12 controller=18 value=27 [MP]
    13:12:23.190 [CC] ch=13 controller=16 value=11
    13:12:23.190 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.190 [CC] ch=13 controller=18 value=22 [MP]
    13:12:23.190 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.190 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.190 [CC] ch=12 controller=18 value=27 [MP]
    13:12:23.199 [CC] ch=13 controller=16 value=11
    13:12:23.199 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.199 [CC] ch=13 controller=18 value=23 [MP]
    13:12:23.199 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.199 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.199 [CC] ch=12 controller=18 value=28 [MP]
    13:12:23.209 [CC] ch=13 controller=16 value=11
    13:12:23.209 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.209 [CC] ch=13 controller=18 value=24 [MP]
    13:12:23.209 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.209 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.209 [CC] ch=12 controller=18 value=29 [MP]
    13:12:23.218 [CC] ch=13 controller=16 value=12
    13:12:23.218 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.218 [CC] ch=13 controller=18 value=20 [MP]
    13:12:23.218 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.218 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.218 [CC] ch=12 controller=18 value=27 [MP]
    13:12:23.228 [CC] ch=13 controller=16 value=15
    13:12:23.228 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.228 [CC] ch=13 controller=18 value=14 [MP]
    13:12:23.228 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.228 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.228 [CC] ch=12 controller=18 value=23 [MP]
    13:12:23.237 [CC] ch=13 controller=16 value=12
    13:12:23.237 [CC] ch=13 controller=17 value=4 [MP]
    13:12:23.237 [CC] ch=13 controller=18 value=8 [MP]
    13:12:23.237 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.237 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.237 [CC] ch=12 controller=18 value=17 [MP]
    13:12:23.246 [CC] ch=13 controller=16 value=16
    13:12:23.246 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.246 [CC] ch=13 controller=18 value=1 [MP]
    13:12:23.246 [CC] ch=12 controller=16 value=127 [MP]
    13:12:23.246 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.246 [CC] ch=12 controller=18 value=9 [MP]
    13:12:23.255 [CC] ch=12 controller=16 value=127
    13:12:23.255 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.255 [CC] ch=12 controller=18 value=1 [MP]
    13:12:23.257 [CC] ch=13 controller=16 value=16
    13:12:23.257 [CC] ch=13 controller=17 value=1 [MP]
    13:12:23.257 [CC] ch=13 controller=18 value=1 [MP]
    13:12:23.257 [Note Off] ch=13 note=36 velocity=0 [MP]
    13:12:23.265 [CC] ch=12 controller=16 value=127
    13:12:23.265 [CC] ch=12 controller=17 value=1 [MP]
    13:12:23.265 [CC] ch=12 controller=18 value=1 [MP]
    13:12:23.265 [Note Off] ch=12 note=48 velocity=0 [MP]

    On further thought.. it only requires two types of CC (initial strike and velocity) that in this case is 14 and 15. So 2 cc * 4 pads is max of 8 CC values.

    All other CC Types are repetitively sent till note off. So no point processing them.

    So I assume the simplist way is to send the note on after the initial strike and velocity is recieved. To do this the note number would be paired in the ui to two CC’s?

  • _ki_ki
    edited December 2020

    @jollyDodger Regarding your log:

    Thanks for the listing, that helps a lot

    • It seems that each note-on and its CCs are issued on different channel - so their relationship (note-on, its CCs and note-off) an be determinded by the midi channel
    • Some of the CCs are updated during the sustain phase of the note - my current approach for auto-dtecting the number of CCs fails ;) Your log helps to find a better solution

    Are you still using 5 CCs per note (CC14-18) ? My current script would re-order your sequence to the following order when set to 5 CCs:

    < 13:12:23.172 [Note On] ch=13 note=36 velocity=20   <<< blocked
      13:12:23.172 [CC] ch=13 controller=16 value=5 [MP] 
      13:12:23.172 [CC] ch=13 controller=17 value=1 [MP]
      13:12:23.172 [CC] ch=13 controller=18 value=27 [MP]
      13:12:23.172 [CC] ch=13 controller=14 value=5 [MP]
      13:12:23.172 [CC] ch=13 controller=15 value=20 [MP]
    > 13:12:23.172 [Note On] ch=13 note=36 velocity=20   >>> delayed send
    < 13:12:23.172 [Note On] ch=12 note=48 velocity=28 [MP] <<< blocked
      13:12:23.172 [CC] ch=12 controller=16 value=127 [MP]
      13:12:23.172 [CC] ch=12 controller=17 value=1 [MP]
      13:12:23.172 [CC] ch=12 controller=18 value=24 [MP]
      13:12:23.172 [CC] ch=12 controller=14 value=127 [MP]
      13:12:23.172 [CC] ch=12 controller=15 value=28 [MP]
    > 13:12:23.172 [Note On] ch=12 note=48 velocity=28 [MP] >>> delayed send
      13:12:23.181 [CC] ch=13 controller=16 value=9
      13:12:23.181 [CC] ch=13 controller=17 value=1 [MP]
      13:12:23.181 [CC] ch=13 controller=18 value=22 [MP]
      13:12:23.181 [CC] ch=12 controller=16 value=127 [MP]
      13:12:23.181 [CC] ch=12 controller=17 value=1 [MP]
      13:12:23.181 [CC] ch=12 controller=18 value=27 [MP]
       . . . 
      13:12:23.257 [CC] ch=13 controller=17 value=1 [MP]
      13:12:23.257 [CC] ch=13 controller=18 value=1 [MP]
      13:12:23.257 [Note Off] ch=13 note=36 velocity=0 [MP]
      13:12:23.265 [CC] ch=12 controller=16 value=127
      13:12:23.265 [CC] ch=12 controller=17 value=1 [MP]
      13:12:23.265 [CC] ch=12 controller=18 value=1 [MP]
      13:12:23.265 [Note Off] ch=12 note=48 velocity=0 [MP]
    

    If you were using a five CC setup, i only need to change the auto-detect part of the script, since the second notes-on +CCs sequence was not started during the first sequence.

  • Is there a groove template script out there?

    I've written something inspired by GR16. Basically each 16th note gets an individual delay time (up to the following note, scaled to tempo), individual velocity and the option of letting the original Midi message through per step. With Dry/Wet control.
    If there is a wish for such a thing and it doesn't already exist I'll tidy it up and maybe add some more features.

    Limitation is the original note off is discarded and replaced with a fixed gate time. I can't quite see how to keep the original gate length without things getting a bit complicated. It might become clearer in time.

    Stretch goal would be recording a groove and then being able reapply it elsewhere. It should be possible, but going to take some beard stroking.

  • thanks for your patience _ki

    @_ki said:
    @jollyDodger Regarding your log:

    Thanks for the listing, that helps a lot

    • It seems that each note-on and its CCs are issued on different channel - so their relationship (note-on, its CCs and note-off) an be determinded by the midi channel

    Sorry, I was not clear on this. The bopPad is configured in the configuration software so CC’s are grouped to a note. They are not necessarily grouped to a channel. I will send another midi dump in the morning to show this more clearly.

    • Some of the CCs are updated during the sustain phase of the note - my current approach for auto-dtecting the number of CCs fails ;) Your log helps to find a better solution

    Only two CC are not updated during the sustain. These are the same two CC’s required to be sent before the note on. (In the previous case it was 14 and 15).

    Are you still using 5 CCs per note (CC14-18) ?

    Yes. Although each note might have a separate group of 5 CC’s. See next midi dump to be posted.

    My current script would re-order your sequence to the following order when set to 5 CCs:

    < 13:12:23.172 [Note On] ch=13 note=36 velocity=20   <<< blocked
      13:12:23.172 [CC] ch=13 controller=16 value=5 [MP] 
      13:12:23.172 [CC] ch=13 controller=17 value=1 [MP]
      13:12:23.172 [CC] ch=13 controller=18 value=27 [MP]
      13:12:23.172 [CC] ch=13 controller=14 value=5 [MP]
      13:12:23.172 [CC] ch=13 controller=15 value=20 [MP]
    > 13:12:23.172 [Note On] ch=13 note=36 velocity=20   >>> delayed send
    < 13:12:23.172 [Note On] ch=12 note=48 velocity=28 [MP] <<< blocked
      13:12:23.172 [CC] ch=12 controller=16 value=127 [MP]
      13:12:23.172 [CC] ch=12 controller=17 value=1 [MP]
      13:12:23.172 [CC] ch=12 controller=18 value=24 [MP]
      13:12:23.172 [CC] ch=12 controller=14 value=127 [MP]
      13:12:23.172 [CC] ch=12 controller=15 value=28 [MP]
    > 13:12:23.172 [Note On] ch=12 note=48 velocity=28 [MP] >>> delayed send
      13:12:23.181 [CC] ch=13 controller=16 value=9
      13:12:23.181 [CC] ch=13 controller=17 value=1 [MP]
      13:12:23.181 [CC] ch=13 controller=18 value=22 [MP]
      13:12:23.181 [CC] ch=12 controller=16 value=127 [MP]
      13:12:23.181 [CC] ch=12 controller=17 value=1 [MP]
      13:12:23.181 [CC] ch=12 controller=18 value=27 [MP]
       . . . 
      13:12:23.257 [CC] ch=13 controller=17 value=1 [MP]
      13:12:23.257 [CC] ch=13 controller=18 value=1 [MP]
      13:12:23.257 [Note Off] ch=13 note=36 velocity=0 [MP]
      13:12:23.265 [CC] ch=12 controller=16 value=127
      13:12:23.265 [CC] ch=12 controller=17 value=1 [MP]
      13:12:23.265 [CC] ch=12 controller=18 value=1 [MP]
      13:12:23.265 [Note Off] ch=12 note=48 velocity=0 [MP]
    

    >
    Yes this order wise this is great!

  • _ki_ki
    edited December 2020

    @jollyDodger My latest version of the script relies on the fact that each note and its CC are send on different channels like in MPE. It shouldn‘t matter if the CC-ids for each of the notes are different, as long as they all use the same number of CCs.

    The current approach doesn‘t care if the CCs are updated during the sustain, the note-on is delayed until N different CCs have been received on the note-on‘s channel. So it should work (including the auto-detection of number of CCs) for the configuration used in the first midi dump.

    .

    But i will wait for your next midi dump before posting the script to be sure :)

    .

    Another question regarding the ‚why‘ or purpose of the requested script:

    I wonder which synth requires the CC before the note on. In theory the order shouldn‘t matter if the CC arrives in the same timeframe. But perhaps the synth internally smoothes the CC changes and then one could hear the change in the attack phase of percussive sound. Please add some more details about the problems that occur with the original order :)

  • _ki_ki
    edited December 2020

    @SpartanClownTide
    Is there a groove template script out there?

    The Joc Lady Delay script applies a sequence of up to 8 steps of individual delays to incomming notes and my Apply Swing script delays and optionally modifies velocity of the odd 1/16 or 1/8 notes by the same amount.

    If i understood correctly your idea/script aligns with the 1/16 of each bar and allows different delay/velocity modification for each of the 16 time divisions.

  • @_ki said:

    @SpartanClownTide
    Is there a groove template script out there?

    The Joc Lady Delay script applies a sequence of up to 8 steps of individual delays to incomming notes and my Apply Swing script delays and optionally modifies velocity of the odd 1/16 or 1/8 notes by the same amount.

    Thanks, I'll look into these.

    If i understood correctly your idea/script aligns with the 1/16 of each bar and allows different delay/velocity modification for each of the 16 time divisions.

    Yeah basically. The core function being each 1/16 step division has individual values for delay, velocity and a boolean whether to pass unmodified notes.

  • @SpartanClownTide My ‚Apply Swing‘ script uses CurrentMetroPulse to find out about the timing position of an new incoming note.

    In an ideal world with ideal timings, one could simply setup a ppqn of 4 to SetMetroPPQN to get 16 divisions per bar and then just test if the currentMetroPulse is odd - but this doesn‘t work, as the note-generators in a hosts session might have a minimal different timings. New note-on‘s can arrive a tiny fraction before the CurrentMetroPulse of Moziac changes.

    Therefore ‚Apply Swing‘ uses a higher ppqn (of 128, resulting in 4*128 pulses per bar for a 4/4 timing) and then calculates the pulse distance to the nearest odd 1/16. An additional ‚width‘ factor specifies the allowed difference to still apply the swing delay.

  • edited January 2021

    Happy new year peeps! 😃
    New request! :
    Ide like to have different combos of group mutes in Aum or in Drum computer.
    So it’s grouping cc toggle

    Maybe it’s just one that can save/record another mozaic set of toggles

    Hopefully a script that is easily assignable.

    🙏🏻

  • @_ki said:
    New note-on‘s can arrive a tiny fraction before the CurrentMetroPulse of Moziac changes.

    Yes, I'm seeing this. In my first naive script it didn't seem to matter, everything appeared to work regardless, I'm not sure how. Now I'm trying to implement sustain (rather than arbitrary note off after short delay) it's an issue. Oh well, it's a good puzzle.

  • @Tamir_Raz_Mataz said:
    Happy new year peeps! 😃
    New request! :
    Ide like to have different combos of group mutes in Aum or in Drum computer.
    So it’s grouping cc toggle

    Maybe it’s just one that can save/record another mozaic set of toggles

    Hopefully a script that is easily assignable.

    🙏🏻

    I do something similar using different channels with this script and it’s so much easier because i can dial in the correct channels per scene in one view. Don’t know if it fits your use case though.

    https://patchstorage.com/midi-multicast/

  • edited January 2021

    @lukesleepwalker said:

    @Tamir_Raz_Mataz said:
    Happy new year peeps! 😃
    New request! :
    Ide like to have different combos of group mutes in Aum or in Drum computer.
    So it’s grouping cc toggle

    Maybe it’s just one that can save/record another mozaic set of toggles

    Hopefully a script that is easily assignable.

    🙏🏻

    I do something similar using different channels with this script and it’s so much easier because i can dial in the correct channels per scene in one view. Don’t know if it fits your use case though.

    https://patchstorage.com/midi-multicast/

    Thanks Luke!

    It’s very close to what I’m after.
    Breaking my head a bit on configuration.

    So I need another Mozaic script Emoji-pad or a keyboard to trigger scenes of the MIDI-multicast.

    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    It’s actually useful to have one note to trigger a scene.
    My problem is when I assign a note it to a scene it only triggers the scene when the pad is pressed and highlighted.

    What if I want the script to send a cc message? Is it hard to edit?

  • @Tamir_Raz_Mataz
    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    The scripts purpose is to multicast (redirect or replicate) incoming single channel midi to configured output channels. Pressing a pad changes the routing configuration on the fly between 32 settings. The script doesn‘t generate any midi output by itself, its meant to be a programmable midi channel routing matrix.

  • @Tamir_Raz_Mataz said:

    @lukesleepwalker said:

    @Tamir_Raz_Mataz said:
    Happy new year peeps! 😃
    New request! :
    Ide like to have different combos of group mutes in Aum or in Drum computer.
    So it’s grouping cc toggle

    Maybe it’s just one that can save/record another mozaic set of toggles

    Hopefully a script that is easily assignable.

    🙏🏻

    I do something similar using different channels with this script and it’s so much easier because i can dial in the correct channels per scene in one view. Don’t know if it fits your use case though.

    https://patchstorage.com/midi-multicast/

    Thanks Luke!

    It’s very close to what I’m after.
    Breaking my head a bit on configuration.

    So I need another Mozaic script Emoji-pad or a keyboard to trigger scenes of the MIDI-multicast.

    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    It’s actually useful to have one note to trigger a scene.
    My problem is when I assign a note it to a scene it only triggers the scene when the pad is pressed and highlighted.

    @_ki said:

    @Tamir_Raz_Mataz
    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    The scripts purpose is to multicast (redirect or replicate) incoming single channel midi to configured output channels. Pressing a pad changes the routing configuration on the fly between 32 settings. The script doesn‘t generate any midi output by itself, its meant to be a programmable midi channel routing matrix.

    And this is why i said above that it might not fit your use case. But if you used a different script or controller to send MIDI the multicast will make it much easier to configure different scenes.

  • @lukesleepwalker said:

    @Tamir_Raz_Mataz said:

    @lukesleepwalker said:

    @Tamir_Raz_Mataz said:
    Happy new year peeps! 😃
    New request! :
    Ide like to have different combos of group mutes in Aum or in Drum computer.
    So it’s grouping cc toggle

    Maybe it’s just one that can save/record another mozaic set of toggles

    Hopefully a script that is easily assignable.

    🙏🏻

    I do something similar using different channels with this script and it’s so much easier because i can dial in the correct channels per scene in one view. Don’t know if it fits your use case though.

    https://patchstorage.com/midi-multicast/

    Thanks Luke!

    It’s very close to what I’m after.
    Breaking my head a bit on configuration.

    So I need another Mozaic script Emoji-pad or a keyboard to trigger scenes of the MIDI-multicast.

    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    It’s actually useful to have one note to trigger a scene.
    My problem is when I assign a note it to a scene it only triggers the scene when the pad is pressed and highlighted.

    @_ki said:

    @Tamir_Raz_Mataz
    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    The scripts purpose is to multicast (redirect or replicate) incoming single channel midi to configured output channels. Pressing a pad changes the routing configuration on the fly between 32 settings. The script doesn‘t generate any midi output by itself, its meant to be a programmable midi channel routing matrix.

    And this is why i said above that it might not fit your use case. But if you used a different script or controller to send MIDI the multicast will make it much easier to configure different scenes.

    ATM if I want to use it for my use. I will select the pad of the relevant scene 1st and then hit the note that will then will be sent on the channels specified on the scene.

    Since it’s very complicated script to edit I could settle down for that but it would be better to edit it a bit to suit another use case.

  • edited January 2021

    Solved

  • @Pxlhg To rename and color an AU apps icon in AUM, open up the AU and long press on the name shown in the center of AUMs window title bar. This opens a dialog, where you can edit the name and icon color.
    The icon will display the first 6 characters of the name in capital letters, the AU window and midi matrix will display the full name with mixed cases.

  • @_ki said:
    @Pxlhg To rename and color an AU apps icon in AUM, open up the AU and long press on the name shown in the center of AUMs window title bar. This opens a dialog, where you can edit the name and icon color.
    The icon will display the first 6 characters of the name in capital letters, the AU window and midi matrix will display the full name with mixed cases.

    Thanks, I got the answer from elsewhere and deleted(replaced it with "solved") my question 50 minutes ago. Weird you still see it. Never mind, I do appreciate your reply. :D

  • @_ki said:

    @Tamir_Raz_Mataz
    I wonder why it’s not possible to trigger midi from the actual pads of the MIDI-multicast.

    The scripts purpose is to multicast (redirect or replicate) incoming single channel midi to configured output channels. Pressing a pad changes the routing configuration on the fly between 32 settings. The script doesn‘t generate any midi output by itself, its meant to be a programmable midi channel routing matrix.

    would love an adaptation of the midi-multicast script for a different use.
    I’de like to use it for sending group mutes.
    And to be able to record / draw one note at a time on a timeline of a sequencer. So every note will select a different group.
    So a slight edit and boom. A new useful script.
    How difficult would it be to edit it for that purpose?

    At the moment I could use it as it is but I need to send 2 messages at a time the note on and the selected pad.

  • The Multicast script itself is quite long and not suitable as starting base for your idea.

    One would need to write a new script - so maybe someone steps up and writes an AUM mute group script and another DrumComputer mute groups script, which sends out the needed CCs (or whatever) and reacts to incoming notes to select which of the groups is active/send.

  • edited January 2021

    @_ki said:
    The Multicast script itself is quite long and not suitable as starting base for your idea.

    One would need to write a new script - so maybe someone steps up and writes an AUM mute group script and another DrumComputer mute groups script, which sends out the needed CCs (or whatever) and reacts to incoming notes to select which of the groups is active/send.

    I was thinking about quick hack . I just hoped there’s a quick fix.

    but if 2 changes in the script could happen it would be useable.

    1.pressing on pads send midi message of assigned channels.
    2.I stead of notes have it send cc

    If a new script would be made it would be most convenient to have the cc editable for custom use so it would suit anything besides Aum and Drum Computer.

  • _ki_ki
    edited January 2021

    @Tamir_Raz_Mataz
    but if 2 changes in the script could happen it would be useable.
    1.pressing on pads send midi message of assigned channels.
    2.I stead of notes have it send cc

    Sorry, programming just doesn‘t work in this simple way:
    1. The script is using the pads layout for several purposes (2 banks of configs, channel selection), what happens on pad press depends on the current UI state.
    2. The script does not send notes or CCs by itself. Instead there is a quite extensive note management for incoming midi events going on in the background to ensure that the note-off will always be send to the same channels that the corresponding note-on was multicast to.

    .

    In addition to this remarks i checked AUMs channel mutes - there is no default assignment to them (like with fader volume). The method to assign automation to them with the least taps is using ‚note 60‘ on different channels, as this is the default setting for the automation when enabled. One would need to dial in a different channel on each of the audio tracks, so its quite some work to setup for larger sessions.
    A big drawback of using ‚note 60‘ is that this results in a toggle of the tracks mute setting - the script can not know the absolute state of the mute, a single user press on any of AUMs mute buttons would de-sync the scripts state from the ‚real‘ mute state without chance of recovery.

    So your advice on using CCs (which either mute or unmute depending on CC value) probably is based on this findings. But setting up CCs needs more taps per AUM track. I counted 6 taps for the first channel when using the default CC 60, 7 for the second track, 8 for the third and so on. Setting up 8 audio tracks requires 76 user taps for the mute automation settings - these would have to be described in the scripts documentation, probably including screenshots. Using a different CC would result in a multitude more taps needed to setup.

    .

    And lastly i checked DrumComputers mutes via midi input - these default to notes E-1 to B-1 on the same channel for all mappings. A mute is only active while the note is pressed/sustained (not like AUM where each note-on toggles the mute state) . I also encountered what seems to be a bug: DrumComputer only muted 3 channels simultaneously, even when more notes of the mute-range were sustained.
    If one decides to use AU parameters for the mutes, one needs to locate and setup 8 AU parameters in long list, which would be very unconvenient.

    .

    Midi Mixer overcomes this ‚AUM parameter setup orgy‘ by supplying AUM session templates that already have setup the tracks mute control to specific values. I don‘t have Midi Mixer, so i don‘t know which settings (probably CCs) are used. Using the same CCs isn‘t an option, neither is using a mute script in conjunction to Midi Mixers trying to control the mutes. Both scripts would get of of sync as they can‘t retrieve the current mute state of a track.

  • @_ki said:

    @Tamir_Raz_Mataz
    but if 2 changes in the script could happen it would be useable.
    1.pressing on pads send midi message of assigned channels.
    2.I stead of notes have it send cc

    Sorry, programming just doesn‘t work in this simple way:
    1. The script is using the pads layout for several purposes (2 banks of configs, channel selection), what happens on pad press depends on the current UI state.
    2. The script does not send notes or CCs by itself. Instead there is a quite extensive note management for incoming midi events going on in the background to ensure that the note-off will always be send to the same channels that the corresponding note-on was multicast to.

    .

    In addition to this remarks i checked AUMs channel mutes - there is no default assignment to them (like with fader volume). The method to assign automation to them with the least taps is using ‚note 60‘ on different channels, as this is the default setting for the automation when enabled. One would need to dial in a different channel on each of the audio tracks, so its quite some work to setup for larger sessions.
    A big drawback of using ‚note 60‘ is that this results in a toggle of the tracks mute setting - the script can not know the absolute state of the mute, a single user press on any of AUMs mute buttons would de-sync the scripts state from the ‚real‘ mute state without chance of recovery.

    So your advice on using CCs (which either mute or unmute depending on CC value) probably is based on this findings. But setting up CCs needs more taps per AUM track. I counted 6 taps for the first channel when using the default CC 60, 7 for the second track, 8 for the third and so on. Setting up 8 audio tracks requires 76 user taps for the mute automation settings - these would have to be described in the scripts documentation, probably including screenshots. Using a different CC would result in a multitude more taps needed to setup.

    .

    And lastly i checked DrumComputers mutes via midi input - these default to notes E-1 to B-1 on the same channel for all mappings. A mute is only active while the note is pressed/sustained (not like AUM where each note-on toggles the mute state) . I also encountered what seems to be a bug: DrumComputer only muted 3 channels simultaneously, even when more notes of the mute-range were sustained.
    If one decides to use AU parameters for the mutes, one needs to locate and setup 8 AU parameters in long list, which would be very unconvenient.

    .

    Midi Mixer overcomes this ‚AUM parameter setup orgy‘ by supplying AUM session templates that already have setup the tracks mute control to specific values. I don‘t have Midi Mixer, so i don‘t know which settings (probably CCs) are used. Using the same CCs isn‘t an option, neither is using a mute script in conjunction to Midi Mixers trying to control the mutes. Both scripts would get of of sync as they can‘t retrieve the current mute state of a track.

    Thanks for your detailed answer @_ki !
    On top of Aum or drum computer mutes ,My intention would be to also use the multimute snapshot script for the mozaic “midi-mute” Script. In that case they’ll probably stay synced.

    Midi mutes with note off message is more my way to go. It prevents cutting off tails.
    So I could probably get by with only midi mutes without Aum channel mutes.

  • @Tatobx said:

    Why do you have the notes arranged as you do in the picture above?

Sign In or Register to comment.