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.

AUM - control Eventide apps pitch with MIDI Keyboard

I'm a total noob with AUM. I have Eventide Crystals and Shimmerverb. They both have knobs to control pitch. I am wondering is there a way to map the MIDI keyboard to control these. It would make musical sense, but I can figure it out. I would be great to say have C3 as 0, then pitch up and down from that, to set the pitch knob in those increments, ie + 5 semitones, -7 semitones etc.

Any ideas if this can be done? Or in conjunction with another app?

Comments

  • Tap channel 1 at bottom of screen or whatever channel you’re working on and then tap little mixer icon. You’ll see all the apps being used on that channel. Tap parameters next to Eventide app and assign CC.
    I’ve done exactly what you want to do using crystals but with Xequence. I’m sure it’s possible with a controller but don’t use one myself

  • So it's Note information I want to use. Using this method I can assign a single key/note to control a knob, but it doesn't offer precise control, just 0 (note off) or a value based on how hard you hit a key (note on). My wish is to use the keyboard, more than one note, to set knob values in semitones.

  • @razzkazz said:
    So it's Note information I want to use. Using this method I can assign a single key/note to control a knob, but it doesn't offer precise control, just 0 (note off) or a value based on how hard you hit a key (note on). My wish is to use the keyboard, more than one note, to set knob values in semitones.

    You'll need to use a script, written in StreamByter or Mozaic, to convert the note number into a CC value that can be mapped to an AU parameter in the app. Assuming you also use the keyboard to play an instrument, have you considered how the system will know that this note is meant as a control? Also, your precision will be limited since MIDI CCs have only 128 possible values. You may want to wait until you have more experience with AUM and Audio Units before tackling this project. Then you'll have a clearer idea of how it should work.

  • That's some solid info, thanks. I will look into those apps. I'm not a noob to music tech, just the whole iPad way of working. Step by step!

  • edited January 25

    In terms of Mozaic scripts, you could try EventideRibbonPlayer (by @MrBlaschke) or Slider Divider (by me). Both can be found on Patchstorage. If neither of these does exactly what you need, a new script of this nature would only take a few minutes to create.

    And if you just want to directly convert CC value to note value, Streambyter can do it with the shortest code, and the lowest CPU usage...I have yet to learn Streambyter, but even in Mozaic, the code would just be:

    @OnMidiCC
    SendMIDINoteOn MIDIByte1, MIDIByte2, MIDIByte3
    @End

  • Sweet. Looks like I'll need Mozaic, seems essential. I'll start with that and see how I get on.

  • @razzkazz said:
    Sweet. Looks like I'll need Mozaic, seems essential. I'll start with that and see how I get on.

    I had just woken up when I typed that...the code snippet should actually be:

    @OnMidiNoteOn
    SendMidiCC MIDIByte1, MIDIByte2, MIDIByte3
    @End

    I would say that Mozaic is definitely essential if you often find yourself needing random MIDI hacks.

    And if you have a more elaborate idea, or something that would be useful for the community, somebody will probably make it. The more specific you are in describing what you need, the better.

  • Good to know B)

  • I have something like this working, but in Drambo with the pitch shifter module.

    I would be very interested to see what kind of success you may have with Mozaic for this because my Drambo patch is extremely CPU heavy on my iPad Air 4.

  • @Skyblazer said:

    @razzkazz said:
    Sweet. Looks like I'll need Mozaic, seems essential. I'll start with that and see how I get on.

    I had just woken up when I typed that...the code snippet should actually be:

    @OnMidiNoteOn
    SendMidiCC MIDIByte1, MIDIByte2, MIDIByte3
    @End

    I would say that Mozaic is definitely essential if you often find yourself needing random MIDI hacks.

    And if you have a more elaborate idea, or something that would be useful for the community, somebody will probably make it. The more specific you are in describing what you need, the better.

    The SendMidiCC command there needs to be: SendMIDICC MIDIChannel, MIDIByte2, MIDIByte3

    MIDIByte1 contains the midi command plus the midi channel, so it won't work as the channel argument to SendMIDICC.

  • Also, I don't think that script would work for the OP request. What is needed is a single CC# sending different values per the note played. I don't have either of those eventide plugins so I don't know how they map pitch to CC value, so I can't say if it's a 1-1 mapping to the cc value. I doubt the pitch has a 128 note range, so I'm guessing it's not a 1-1 mapping.

    If it was 1-1 then something like SendMIDICC 15, 20, MIDIByte3 would work (where the midi channel is 16 and the CC is 20). But I expect it's more complicated than that, possibly needing an array to look up the right values.

    tldr; A script to do this may not be a simple one-liner, and requires some figuring out of how CC value maps to actual pitch.

  • That's a good point @wim. I took a look at both of the Eventide plugins, and they both have the same range and mapping for the pitch. Oddly enough, it only snaps to +/- 0, 5, 7, 12, 19, and 24 semitones, +/- 1 cent. Here are the semitone values, and their associated CC values. And when you move the onscreen knobs with your finger, they still have these massive jumps between semitone values.

    -24: 4
    -19: 16
    -12: 28
    -7.01: 39
    -6.99: 40
    -5.01: 51
    -4.99: 52
    -0.01: 63
    0.01: 64
    4.99: 75
    5.01: 76
    6.99: 87
    7.01: 88
    12: 99
    19: 111
    24: 123

    @razzkazz Would that still be useful to you? And if so, how would you want it to be mapped?

  • Good sleuthing @Skyblazer. So, no chromatic scaling, but at least you've laid the groundwork to make an easy Streambyter or Mozaic script.

  • Thanks @Skyblazer, I'm still getting up to speed with this, and I need to get Mozaic, so bare with me. Thanks for the help.

  • Using;

    @OnMidiNoteOn
    SendMIDICC 0, 20, MIDINote
    @End

    And using @Skyblazer values I can get it to work, it's mostly the Note E ( in octave jumps), across the keyboard. Not ideal, but the start of something I can work on. Still need to get my head more around Mosaic.

  • edited January 26

    Another solution, this doesn’t use any additional apps. I just thought of it from reading this. It also seems terribly inefficient to set up, but I bet it would still work

    Make a new preset for every single change you want. Save it ‘local to aum. Then in AUM, tap the name of the channel (the very bottom of the channel) that has MicroPitch or whatever app you want. The tap the little menu icon upper left corner. Then tap parameters (for the app you want). Then tap load preset. Then tap add action. Then select the preset you want and change the value to ‘note’. Then hit learn and tap the note for the preset. Repeat as needed. I took a few screenshots of the process. I do something similar to this with my midi controller to affect all my settings without having to load new AUM sessions. Hope it works. May or may not work depending on how fast you play. And it would prolly only work with single key presses. No chords, unless you set up multiple channels with multiple preset action rules (lol!)


    .

  • Apparently I loaded my screenshots out of order and the video I took, showing it working, didn’t load

    But I forgot to include one important step, which is shown in the topmost pic. Upper left corner of app, hit menu, hit select midi source, make sure it’s set to the keyboard or whatever midi source you want to use

    Oh, and Make sure you save your AUM session, as this is where everything will be saved every time you want to do this

  • edited January 26

    Forgot a couple of the screenshots. I just used some existing presets I already had, and I only used three…so the names might be weird, but you get the idea. I would recommend using a very organized naming convention for a project like this cuz it could get pretty confusing lol



  • Alternatively, Streambyter is free if you want to go that route. It'll take only 17 lines of code, which I'm sure someone wouldn't mind helping you with or writing for you if it would be useful.

  • @razzkazz said:
    Using;

    @OnMidiNoteOn
    SendMIDICC 0, 20, MIDINote
    @End

    And using @Skyblazer values I can get it to work, it's mostly the Note E ( in octave jumps), across the keyboard. Not ideal, but the start of something I can work on. Still need to get my head more around Mosaic.

    It's probably the notes in this post. You can read them by remembering that middle C is 60, so 64 is E, also 52, 40, 28, 16, 4, and 76, 88, 100.

  • edited January 26

    Here's the next step for the Mozaic script. The location of each value in the array represents the MIDI Note, and the value represents the CC value attached to it. So you can enter 128 values, like this:

    @OnLoad
    Translate = [4, 16, 28, 40, 52]
    @End

    Or only the ones you need, like this:

    @OnLoad
    Translate[60] = 64 // Note 60 sends CC value 64
    Translate[62] = 76
    Translate[64] = 88
    Translate[65] = 99
    Translate[67] = 111
    Translate[69] = 123
    @End

    And then add the Translate[] your original statement, like this:
    SendMIDICC 0, 20, Translate[MIDINote]

    "Translate" is just an arbitrary name I chose for the array, "OnLoad" is a built-in function that runs when Mozaic starts.

    Mozaic is more powerful and straightforward, but Streambyter uses less CPU. I never learned Assembly, and it's rare for me to have such a simple project, so I have to re-learn Streambyter every time I use it. But arguably, the most CPU efficient tool is the best one.

    Mapping AUM presets to MIDI as @ambrosiajam suggested, is a good to skill to learn, especially for apps where an onscreen knob has more than 128 positions, like as the pitch knobs in Fundamental.

Sign In or Register to comment.