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.

Moziac MIDI-Monitor-Filter-Logger Script (AUM Project and Mozaic Script up on Patchstorage)

McDMcD
edited November 2022 in General App Discussion

The AUM Project to load the Mozaic “MIDI-Monitor-Filter-Logger” script is ready for downloads and user input:

https://patchstorage.com/midi-monitor-filter-logger/

The Mozaic script “MIDI-Monitor-Filter-Logger” is also ready for downloads and use:

https://patchstorage.com/midi-monitor-filter-logger-2/

This Script Monitors incoming MIDI and has PAD switches to enable/disable MIDI Types and Selectable CC’s.

Touching a PAD and turning it RED enables Logging of that MIDI Type or CC.

It can also pass the selected MIDI types which is useful for targeting specific MIDI types when Using MIDI Learn and the controller is outputting a simplex stream that needs filtering to choose the right MIDI event for mapping.

It’s set up by default for 4 specific MIDI CC’s (Shake, Radiate, Spin, Move) . 4 Knobs are exposed to allow for custom CC Monitoring and Forwarding.

I created a Mozaic script to Monitor and Filter Orba MIDI Output so I can use it with MIDI Learn features in AUM and synths. It’s a work in progress and I’ll put it up on Patchstorage soon in an AUM Project which loads Mozaic with it ready to go and as a Mozaic script for anyone to download and add to their Mozaic files. Using the AUM Project and hitting save in Mozaic will also get you the file and cheat me of a Download count in PatchStorage. That counter is buggy as hell so at times I down load dozens of my scripts to assuage my ego.

The script has helped me understand the MPE features of the Orba and why PitchBend and Mod wheel really need to be a spring loaded wheel or joy stick that goes home to a center position to get you back in tune or stop that unwanted tremolo. Orba doesn’t really have a gesture that fits that model. The Orba folks set up pitch bend as a semitone deviation form mid-centerline pad touches but fingers are fat can cover 25% of a pad’s width so it’s only useful for a mild vibrato and NOT the Note Glide/Silde we can get from a Roli MPE controller so it’s NOT that type of experience.

I’m still wondering what to do with “Shake, Radiate, Spin, Move” but Monitoring them in isolation is the key to seeing what they send and what kind of range they have. Ideally a CC controller is smooth and predictable when in use. Otherwise, it’s best to just use them as triggers for specific events like loop launching or Muting.

This is the current version of the script which for a Mozaic hacker is good enough to install and test the script. It does not need to be driven my an Orba: it’s a MIDI Monitoring (using Mozaic Logging) and Filtering app. Better for my needs than MIDI Spy or other since they present too much data.
This script can isolate specific CC numbers and only log those event. There are 16 PADS to toggle event types. I will use the 4 Knobs in the next version to change specific CC’s from the Orba 2, 74, 112 and 113 so it’s not an Orba Exclusive script.


@Description This is a MIDI Logging Script with logical switches for Orba 1/2 events but also useful as a generic MIDI logger. I will add PAD switches for the Event Types and SendMIDIThru so the script can function as a filter to use for setting up MIDI Learn Associations. @End @OnLoad // ShowLayOut 1 // 22 Knobs ShowLayout 2 // 16 Pads + 4 Knobs // ShowLayOut 3 // 10 Rotary Dials + X-Y Pad // ShowLayOut 4 // Description Box + 4 Knobs CC = 0 Tilt1 = 0 Shake2 = 0 Radiate74 = 0 Spin112 = 0 Move113 = 0 PC = 0 PolyPressure = 0 ChannelPressure = 0 AfterTouch = 0 PitchBend = 0 Note = 0 Bump39 = 0 Shake69 = 0 PassThrough = 0 LabelPad 0, {All CC's} LabelPad 1, {Tilt CC1} LabelPad 2, {Shake CC2} LabelPad 3, {Radiate 74} LabelPad 4, {Spin CC112} LabelPad 5, {Move CC113} LabelPad 6, {Prog Change} LabelPad 7, {Poly Pressure} LabelPad 8, {Ch Pressure} LabelPad 9, {AfterTouch} LabelPad 10, {Pitch Bend} LabelPad 11, {Notes} LabelPad 12, {Bump Note 39} LabelPad 13, {Shake Note 69} LabelPad 14, { } LabelPad 15, {Passthrough Off} @End @OnPadDown If LastPad = 0 If CC = 0 CC = 1 ColorPad 0, 1 else CC = 0 ColorPad 0, 0 endif elseif LastPad = 1 If Tilt1 = 0 Tilt1 = 1 ColorPad 1, 1 else Tilt1 = 0 ColorPad 1, 0 endif elseif LastPad = 2 If Shake2 = 0 Shake2 = 1 ColorPad 2, 1 else Shake2 = 0 ColorPad 2, 0 endif elseif LastPad = 3 If Radiate74 = 0 Radiate74 = 1 ColorPad 3, 1 else Radiate74 = 0 ColorPad 3, 0 endif elseif LastPad = 4 If Spin112 = 0 Spin112 = 1 ColorPad 4, 1 else Spin112 = 0 ColorPad 4, 0 endif elseif LastPad = 5 if Move113 = 0 Move113 = 1 ColorPad 5, 1 else Move113 = 0 ColorPad 5, 0 endif elseif LastPad = 6 if PC = 0 PC = 1 ColorPad 6, 1 else PC = 0 ColorPad 6, 0 endif elseif LastPad = 7 if PolyPressure = 0 PolyPressure = 1 ColorPad 7, 1 else PolyPressure = 0 ColorPad 7, 0 endif elseif LastPad = 8 if ChannelPressure = 0 ChannelPressure = 1 ColorPad 8, 1 else ChannelPressure = 0 ColorPad 8, 0 endif elseif LastPad = 9 if AfterTouch = 0 AfterTouch = 1 ColorPad 9, 1 else AfterTouch = 0 ColorPad 9, 0 endif elseif LastPad = 10 if PitchBend = 0 PitchBend = 1 ColorPad 10, 1 else PitchBend = 0 ColorPad 10, 0 endif elseif LastPad = 11 if Note = 0 Note = 1 ColorPad 11, 1 else Note = 0 ColorPad 11, 0 endif elseif LastPad = 12 if Bump39 = 0 Bump39 = 1 ColorPad 12, 1 else Bump39 = 0 ColorPad 12, 0 endif elseif LastPad = 13 if Shake69 = 0 Shake69 = 1 ColorPad 13, 1 else Shake69 = 0 ColorPad 13, 0 endif // elseif LastPad = 14 elseif LastPad = 15 if PassThrough = 0 PassThrough = 1 LabelPad 15, {Passthrough On} ColorPad 15, 1 else PassThrough = 0 LabelPad 15, {Passthrough Off} ColorPad 15, 0 endif endif @End @OnMidiInput if MidiCommand = 0x80 if Bump39 if MidiByte2 = 39 Log {Bump Note 39} if PassThrough SendMidiThru endif endif elseif Shake69 if MidiByte2 = 69 Log {Shake Note 69} if PassThrough SendMidiThru endif endif elseif Note Log {Note Off = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 if PassThrough SendMidiThru endif endif endif if MidiCommand = 0x90 if Note if Bump39 if MidiByte2 = 39 Log {Bump Note 39} if PassThrough SendMidiThru endif endif elseif Shake69 if MidiByte2 = 69 Log {Shake Note 69} if PassThrough SendMidiThru endif endif else Log {Note On = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 if PassThrough SendMidiThru endif endif endif endif if MidiCommand = 0xA0 if PolyPressure Log {Channel = }, MidiChannel Log {PolyPressure = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if MidiCommand = 0xB0 if Tilt1 if MidiByte2 = 1 Log {Tilt_CC1 = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if Shake2 if MidiByte2 = 2 Log {Shake_CC2 = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if Radiate74 if MidiByte2 = 74 Log {Radiate_CC74 = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if Spin112 if MidiByte2 = 112 Log {Spin_CC112 = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if Move113 if MidiByte2 = 113 Log {Move_CC113 = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if CC = 1 Log {CC = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if MidiCommand = 0xC0 if PC Log {Program Change = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if MidiCommand = 0xD0 if ChannelPressure Log {ChannelPressure = }, MidiChannel, { }, MidiByte2, { }, MidiByte3 endif endif if MidiCommand = 0xE0 if PitchBend Log {Pitch Bend = }, MidiChannel, { }, MidiByte2, { }, MidiByte3, { }, MidiByte2+(128*MidiByte3) endif endif // Log MidiByte1, {, }, MidiByte2, {, }, MidiByte3 @End

Comments

  • @McD i’m a keen lurker on all your Orba posts - I’m not saying much as I don’t have much useful to add (yet), but keep them flowing.

  • @steve99 said:
    @McD i’m a keen lurker on all your Orba posts - I’m not saying much as I don’t have much useful to add (yet), but keep them flowing.

    I’m still trying to find a way to count “keen lurkers”.

  • The AUM Project to load the Mozaic “MIDI-Monitor-Filter-Logger” script is ready for downloads and user input:

    https://patchstorage.com/midi-monitor-filter-logger/

    The Mozaic script “MIDI-Monitor-Filter-Logger” is also ready for downloads and use:

    https://patchstorage.com/midi-monitor-filter-logger-2/

    This Script Monitors incoming MIDI and has PAD switches to enable/disable MIDI Types and Selectable CC’s.

    Touching a PAD and turning it RED enables Logging of that MIDI Type or CC.

    It can also pass the selected MIDI types which is useful for targeting specific MIDI types when Using MIDI Learn and the controller is outputting a simplex stream that needs filtering to choose the right MIDI event for mapping.

    It’s set up by default for 4 specific MIDI CC’s (Shake, Radiate, Spin, Move) . 4 Knobs are exposed to allow for custom CC Monitoring and Forwarding.

  • Since I created this script to tame Obra CC output I added another feature:

    Hitting the SHIFT button makes the script shift MIDI Octaves so the Orba pads can cover 4 octaves just by changing the tilt.

    I’ll upload the script version 3 to patchstorage tomorrow after some more testing.
    NOTE: version 2 was uploaded yesterday to fix the some passthrough bugs.

    I find the extra octaves really make the controller a lot more fun to play around with. I think I’ll use 2 of the knobs to
    Change scales and keys. You can do this from the Orba app but just turning a button would be a good idea.

    Perhaps I should fork these Orba specific changes for it’s own Script and leave the Monitor-Filter-Logger AS IS but with this extra feature left as an Easter Egg that’s activated by the SHIFT button.

  • edited November 2022

    Looks like a very useful utility, thanks for posting @McD!
    I'll keep it for when I need message filtering that's more specific than in Protokol.

    Edit: Forking and having a more generic version with CCs as variables in the file header instead of hard coded values sounds like a good idea 😊

  • @rs2000 said:
    Looks like a very useful utility, thanks for posting @McD!
    I'll keep it for when I need message filtering that's more specific than in Protokol.

    Edit: Forking and having a more generic version with CCs as variables in the file header instead of hard coded values sounds like a good idea 😊

    I did follow through and put 4 knobs that let you dial in a CC of your choice and it re-labels
    PADs 3-7 to the number you select. That's in the version 2 that's up on patchstorage.

    And the events you specify to monitor can be forwarded using PAD 16. Any MIDI user can find uses for this Selective Monitor (Filtering out that which one does not care about) and Log the results and optional forward thru what you see.

    Now I need to find this Protokol for more ideas to "borrow"/implement.

  • edited November 2022

    Great work! 😊

    Protokol is a rock solid MIDI monitor from Hexler, the TouchOSC guy.
    My favorite so far, also because it supports slide-over mode to let it hover over any other app.

  • Using my MacBook, while an older iPad re-charges so I'm still looking for the essential clue:

    Do I already own it? (Most likely not.)

    Is it less than $10? (Probably not if it's worth it.. since MIDI tools only have a really small market.)

    Should I get it for slide over if I live in AUM? Is it AUv3?

  • No. I live in AUM. Protokol is free but not AUv3. Not going back.

  • I updated the AUM project and Mozaic script version on patchstorage (links above) that use the Mod Wheel (Orba Tilt CC1) to jump octaves on the Note output. Any keyboard with a Mod Wheel can use this feature so it’s now a MIDI-Log-Filter-Modify Mozaic script (with Monitor in the Logging window).

Sign In or Register to comment.