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.

Chord apps that could filter *incoming* midi

I’ve just watched the new features on Chord Maps 2 and it reminded me of a question I’ve brought up on other threads without getting any traction: Why, oh why, can’t any of the various chord apps (and I think I have most of them) filter incoming midi notes so that they would conform to a chord or chord progression? Especially apps like Suggester or Navichord or Chordbud, etc., that let you build a sequence of chords. Then you could improvise via midi keyboard and your notes would conform to a chord progression. This seems like a feature that people would like so I have to assume that there’s some problem that prevents this kind of thing. Why can’t it be done?

«1

Comments

  • Hail brave traveler! I too am on this search.

  • _ki_ki
    edited February 2021

    Updated my answer after checking out how things really works in ChordMaps2:

    In ChordMaps2, the horizontal melody keyboard always play in the current scale/root - the notes don‘t change when playing different chord pads in the main area (The used root only changes for layouts 6+7). The white C always plays the scale’s root note, D the II and so on, but for minor scales the b3 and b6 black keys are used instead of the E+A white keys.

    Curently the pad apps ChordPadX, ChordPolyPad, Tonaliy Pads and ChordBud2 allow for different, independant chords on their pads - so there is no common scale/root to all of the pads. Thats probabbly the reason why they don‘t offer this kind of scale/root transform feature.

    .

    And i suspect that if scale/root is fixed, one could use Rozeta Scaler to transpose and scale the white keys to the wanted scale.

  • With this chord device you can send notes to 8 channels in two ways
    1. CEGB notes trigger the root, 3rd, 5th & 7th of the current chord
    2. Any note triggers a fixed note or combination of chord notes in the octave that the note is sent based on the setting for that channel and scene.

    The 8 channels then route chord notes to different instruments using AUM’s channel filter.

    Here’s a video demonstrating...
    https://youtu.be/kz4D2QJJXJA

    Is that sort of what you mean?

  • @Stochastically, @gothamoddisee
    How would you convert incoming notes to a chord progression?

  • edited February 2021

    @rs2000 said: How would you convert incoming notes to a chord progression?

    I know you didn't ask me, but it's something I've been thinking about :smile:

    In my touchscaper app, which is all about chords really, there's a feature where you advance to the next chord with a new touch, so you could do something along those lines. So basically, if you have no notes playing, that means the next note on will trigger the next chord in your progression. That's basically what touchscaper does and I know of a few people that record touchscaper's MIDI out to capture perfectly played chord progressions and melodies.

    Re-mapping any incoming note to a nearby good note is pretty straightforward if your app knows about chords. It's basically the same as what you do with a simple MIDI-based transpose.

    Everything I've seen so far seems to over-complicate this, but then again, my complexity threshold is fairly low :smile:

    It's on my ever-growing list of AUv3 MIDI type things I'd like to do, unless someone beats me to it :wink: or there's already something out there that does it...

  • 7 months ago, I've built a step sequencer prototype that can be advanced and reversed using simple step buttons. Add the ChordPolyPad AUv3 and you have a "chord ladder".
    https://patchstorage.com/step-sequencer-with-manual-forward-and-reverse-buttons/

  • wimwim
    edited February 2021

    A long time ago I wrote a mozaic script that is a "Dynamic Scale Quantizer". Basically, when you turn one of the knobs to the right, it arms it to listen for notes to allow through. If you did that and sent it a chord, then it would quantize all notes to that chord. To change the chord, you would turn another knob to the right to clear that and repeat for the next chord.

    So, with some midi mapping to control those knobs you could cobble something together that might work. Not a great solution, but I remembered it, so I thought I'd toss it out there.

    https://patchstorage.com/dynamic-scale-quantize/


    Dynamic Scale Quantize
    Builds a custom scale based on notes received.

    Initially all notes are passed through and there are no notes enabled in the filter.

    • FIRST KNOB: Turns filtering on or off
    • SECOND KNOB: Right = add notes, Left = remove notes
    • THIRD KNOB: Right = remove all notes and go to add mode
    • SHIFT: Cycle through views
      Knobs can also be changed via their AU parameters
  • Thanks everyone. I'll have to digest this info and return later.

  • @rs2000 said:
    @Stochastically, @gothamoddisee
    How would you convert incoming notes to a chord progression?

    @rs2000 In my Mozaic script I use a default scale and then use the root chord shape. So, typically set to C Major incoming notes trigger chord notes in the following way:
    C => Chord root
    E => Chord 3rd
    G => Chord 5th
    B => Chord 7th

    There's settings to abandon, round or use other (non-chord) notes.
    In the latter mode C# => +1st above chord root etc.
    Octave is also taken from incoming note octave.

  • @Stochastically said:
    I’ve just watched the new features on Chord Maps 2 and it reminded me of a question I’ve brought up on other threads without getting any traction: Why, oh why, can’t any of the various chord apps (and I think I have most of them) filter incoming midi notes so that they would conform to a chord or chord progression? Especially apps like Suggester or Navichord or Chordbud, etc., that let you build a sequence of chords. Then you could improvise via midi keyboard and your notes would conform to a chord progression. This seems like a feature that people would like so I have to assume that there’s some problem that prevents this kind of thing. Why can’t it be done?

    you might want to look at Chordion

    for filtering incoming notes and velocity , Midiflow apps work well

    i have most of above apps, apps like suggester have naming conventions, and can be confusing if you are used to visual clues, if notes are filtered

  • After giving some thought to this, I think that even if it’s possible to filter notes on a chord by chord basis it may not be as useful as I imagined it. Maybe it would just filter out too many notes; maybe it would just create a lot of repeated notes.
    So then I reconsidered the many ways to filter notes through modes and scales and think this would serve my purposes already.
    But this brings up a new question:
    What I think I’ve really been seeking is a way to record a series of changes that could be automated while notes were being played either on a keyboard or through sequencer or whatever. To put it another way, I want to pre-select modes, scales, root notes, put them in a particular order and duration and then set that to play back as I play a keyboard.

    I investigated various Mosaic scripts:

    • Simple Scaler by @wim was immediately interesting because of the addition of the 4 preset pads for quickly changing between scales. I wished there could be more preset pads.
    • I also tried the CC Automatable Transposer Scaler by @_ki. This is promising because I should be able to set the scales with CCs. But there seems to be a bug in there because the only knob that works with CCs is the Transposer. The Scale and Root knobs, even though they turn with the incoming CCs, do not actually change. They only change if I turn the knob on the screen.
    • Scale-Compendium by (who is that by? Is he on this forum?) has even more controls but I don’t see a way to automate them.
    • I look at your video, @soundtemple, and it just looks way to complex for my purposes. I think this is partly a drawback of Mosaic itself; the GUI has limitations.

    So one final question is there a way to automate control of those parameters so they could be recorded and played back? I have, for example, Xequence that I think allows me to play back CCs. But I haven’t wrapped my brain around that; or using the buried midi controls in AUM. If anyone knows a source of info or video on that it would be much appreciated.

  • wimwim
    edited March 2021

    @Stochastically said:

    • Simple Scaler by @wim was immediately interesting because of the addition of the 4 preset pads for quickly changing between scales. I wished there could be more preset pads.

    You can select the Mozaic preset scales and roots by changing those knobs in Mozaic. Each knob in Mozaic is exposed as an "AU Parameter" and you can map midi CC's to AUM's parameter controls to move those knobs. This isn't as hard as it sounds. Anyway, that would give you full control to select normal scales. You could also enable/disable specific notes, but that would be more complicated.

    So one final question is there a way to automate control of those parameters so they could be recorded and played back? I have, for example, Xequence that I think allows me to play back CCs. But I haven’t wrapped my brain around that; or using the buried midi controls in AUM. If anyone knows a source of info or video on that it would be much appreciated.

    Yes, there are ways to do this. First you will need to get familiar with AU parameters in AUM. The in-app manual is a good place to start. Once you get the basic idea, it works for any AU apps. I wrote a post a week ago or so trying to briefly explain it to someone. if I can find that one I'll link it.

    As for recording and playing back these automations, Xequence is just one of the possibilities. You can get lots of help here as you progress along the learning curve.

  • edited March 2021

    @Stochastically
    I made a quick n dirty script that will automate the root and scale of @wim’s Simple Scaler based on the Host Bar number. You can set the desired root and scale per bar in the script in scale_type_for_bar and root_note_for_bar. Use -1 for no change.

    There’s a link to an AUM project with SimpleScaler and this script that demonstrates a new scale and bar being selected each bar.

    Hope this helps

    https://app.box.com/s/3jyedb2uxm1nnvzsg31p9gorhj8751dp


    @OnLoad num_scales=24 num_root_notes=12 cc_root=10 cc_scale=11 //Set scale type per bar here... scale_type_for_bar[0] = [0,1,2,3, 4,5,6,7, 8,9,8,7, 6,5,4,3] scale_type_for_bar[16] = [0,1,2,3, 4,5,6,7, 8,9,8,7, 6,5,4,3] scale_type_for_bar[32] = [0,1,2,3, 4,5,6,7, 8,9,8,7, 6,5,4,3] scale_type_for_bar[48] = [0,1,2,3, 4,5,6,7, 8,9,8,7, 6,5,4,3] //Set root note per bar here... root_note_for_bar[0] = [0,1,2,3, 4,5,6,7, 8,9,10,11, 10,9,8,7] root_note_for_bar[16] = [0,1,2,3, 4,5,6,7, 8,9,10,11, 10,9,8,7] root_note_for_bar[32] = [0,1,2,3, 4,5,6,7, 8,9,10,11, 10,9,8,7] root_note_for_bar[48] = [0,1,2,3, 4,5,6,7, 8,9,10,11, 10,9,8,7] @End @OnNewBar // Get scale and root for bar# scale = scale_type_for_bar[HostBar] root_note = root_note_for_bar[HostBar] //Update scale if not set to -1 if scale >= 0 scale_knob_value = Round (TranslateScale scale, 0, num_scales, 0, 127) SendMIDICC 0, cc_scale, scale_knob_value endif //Update root if not set to -1 if root_note >= 0 root_note_knob_value = Round (TranslateScale scale, 0, num_root_notes, 0, 127) SendMIDICC 0, cc_root, root_note_knob_value endif @End
  • @Stochastically said:

    • I also tried the CC Automatable Transposer Scaler by @_ki. This is promising because I should be able to set the scales with CCs. But there seems to be a bug in there because the only knob that works with CCs is the Transposer. The Scale and Root knobs, even though they turn with the incoming CCs, do not actually change. They only change if I turn the knob on the screen.

    Thanks for the bug report, i‘ll have a look at the script this evening.

  • @Stochastically You were right, CC automation of scale/root didn‘t update the scale or root used. Additionally i fixed another bug (only CC channel 1 worked) and removed the ‚Chromatic‘ scale which allowed all notes like the ‚No Scale‘ setting.

    Sorry for any inconvenience !

    You find the updated script on patchstorage.

  • @moodscaper That sounds interesting and your suggestion is the only one that actually progresses through chords.
    I don't own touchscaper but I might consider doing something like this in Drambo and/or ChordPolyPad.

  • Thank you all, @wim, @_ki, @soundtemple, for your generous help. I’m a plodding learner so I’ll have to get back here after testing things at my pace.

  • @_ki said:
    @Stochastically You were right, CC automation of scale/root didn‘t update the scale or root used. Additionally i fixed another bug (only CC channel 1 worked) and removed the ‚Chromatic‘ scale which allowed all notes like the ‚No Scale‘ setting.

    Sorry for any inconvenience !

    You find the updated script on patchstorage.

    Thanks for checking this. I'm glad it wasn't just some overlooked setting or something on my part. I look forward to trying out the update.

  • @rs2000 said:
    @moodscaper That sounds interesting and your suggestion is the only one that actually progresses through chords.
    I don't own touchscaper but I might consider doing something like this in Drambo and/or ChordPolyPad.

    Yes, I will investigate further as well. If ChordPolypad can be customized, that sounds interesting too.

  • @Stochastically said:

    @rs2000 said:
    @moodscaper That sounds interesting and your suggestion is the only one that actually progresses through chords.
    I don't own touchscaper but I might consider doing something like this in Drambo and/or ChordPolyPad.

    Yes, I will investigate further as well. If ChordPolypad can be customized, that sounds interesting too.

    You can map 128 notes to easily customizable chords, trigger them by incoming MIDI notes and even strum them. I love it.

  • tjatja
    edited March 2021

    @Stochastically said:
    I’ve just watched the new features on Chord Maps 2 and it reminded me of a question I’ve brought up on other threads without getting any traction: Why, oh why, can’t any of the various chord apps (and I think I have most of them) filter incoming midi notes so that they would conform to a chord or chord progression? Especially apps like Suggester or Navichord or Chordbud, etc., that let you build a sequence of chords. Then you could improvise via midi keyboard and your notes would conform to a chord progression. This seems like a feature that people would like so I have to assume that there’s some problem that prevents this kind of thing. Why can’t it be done?

    I don't fully understand.

    You want to "filter" notes so that only those come through that belong to ... what exactly?
    A chord?

    I do not understand what exactly you are seeking here, and how this should be done.
    Could you elaborate? With an examples at best.
    I seem to remember some MIDIfire / StreamByter code that could probably do this.

    Or do you want to convert incoming notes to a chord, so from one to several notes?

    The latter is quite easily done with ChordPolyPad (and I think other Apps too)!

    EDIT: Reading your latter posting, it seems that you want to convert any incoming notes to those of a given scale, first.

    This can be done with MidiFlow, IIRC.

    And then, you want to map those notes to a set of given chord.

    This can easily be done with ChordPolyPad.

    Finish.

    As long as i understood your question.

  • heshes
    edited March 2021

    @tja said:

    @Stochastically said:
    I’ve just watched the new features on Chord Maps 2 and it reminded me of a question I’ve brought up on other threads without getting any traction: Why, oh why, can’t any of the various chord apps (and I think I have most of them) filter incoming midi notes so that they would conform to a chord or chord progression? Especially apps like Suggester or Navichord or Chordbud, etc., that let you build a sequence of chords. Then you could improvise via midi keyboard and your notes would conform to a chord progression. This seems like a feature that people would like so I have to assume that there’s some problem that prevents this kind of thing. Why can’t it be done?

    I don't fully understand.

    You aren't the only one, I also don't understand what exactly the problem is here. Your query regarding whether OP simply wants incoming notes adjusted to conform to a certain scale seems relevant, and something that can be done by MidFlow, Mozaic, and other utilities. If that's it, OP should note that there are usually multiple scales that fit any given chord, so even in that case more needs to be done to define the problem.

  • edited March 2021

    I like how Kameleono does it. I thought PolyStepArp did this and it would seem fitting to add this function as another mode besides Arp and Sequencer. You have 2 midi inputs; one for the incoming chord and the other for the notes that trigger i dividual notes of the incoming chord. Kameleon simply assigns the white keys starting at C. C plays the lowest note of the incoming chord, D plays the 2nd lowest, and so on. Scaler2 might have a similar feature iirc. Now that I think of it the Strummer FX au might do this as well

  • @tja said:
    I do not understand what exactly you are seeking here, and how this should be done.
    Could you elaborate?

    @hes said:
    You aren't the only one, I also don't understand what exactly the problem is here.

    I’m sorry if it wasn’t very clear.
    For a while I’ve liked to begin an idea by first making a chord progression. I like Suggester app for this purpose because it has it’s own sequencer for playing chords back into an arp like StepPolyArp or Aphelian or whatever. This works well enough but I was wondering if it could be possible for such a chord arranging app to filter incoming notes that I would play and improvise through the chord progression as it plays. This way might allow for more fluid musical phrases instead of the repetitious minimalistic type of stuff that arps make.

    I posted this because I am surprised this hasn’t been done or that no one else seems interested in it.

    Maybe there are technical problems that I don’t understand. Or maybe it would not make the kinds of results that I hoped/imagined. Maybe chord progressions would be too restrictive (constrictive?).

    So later in the thread I wrote that because there are already apps that filter incoming notes in relation to scales and modes such as you mentioned and several good ones in Mosaic, I am currently going with that idea. In AUM I can automate changes to the scales, etc. and my plan will be to find a way to sequence and record those changes like with midi clip players, etc. Maybe the long anticipated Atom 2 can do this. Then I could set those to run while I improvise through them.

    But the advantage, as I said, with Suggester and other chord apps is that you can listen to chords and arrange them quickly. Not so easy with the scale/modes; they require more of fiddling to audition the musical flavors.

    So, thanks for having the interest to get me to try to clarify it. (If I did).

  • wimwim
    edited March 2021

    @Stochastically said:
    For a while I’ve liked to begin an idea by first making a chord progression. I like Suggester app for this purpose because it has it’s own sequencer for playing chords back into an arp like StepPolyArp or Aphelian or whatever. This works well enough but I was wondering if it could be possible for such a chord arranging app to filter incoming notes that I would play and improvise through the chord progression as it plays. This way might allow for more fluid musical phrases instead of the repetitious minimalistic type of stuff that arps make.

    I posted this because I am surprised this hasn’t been done or that no one else seems interested in it.

    I think the reason fewer people are interested in it is just playing chord notes is pretty limiting. Three notes (or however many notes you have in a chord) is a severe reduction from the potential eight diatonic notes that would normally work OK with a chord. There is little to no color that you can add to a melody when just playing back only the chord notes. It gets boring pretty quickly.

    Maybe there are technical problems that I don’t understand. Or maybe it would not make the kinds of results that I hoped/imagined. Maybe chord progressions would be too restrictive (constrictive?).

    There are no real technical problems. It's just creatively limiting.

    Most chord progressions are based around a single diatonic scale. Each chord contains only notes that fit that scale. Which means you can play any note from that scale over any chord in that progression and it won't sound bad with any of them.

    [Example: CMaj Scale triads: C, Dm, Em, F, G, Am, Bdim. All notes from those chords fit the CMaj scale. Same for: CM7, Dm7, Em7, FM7, G7, Am7, Bm7(b5). Play any white key over any of those chords and it'll "fit". Play any black (non-scale) key and it will add color (good or bad).]

    Interesting chord progressions can be made by including chords that don't all fit the same scale. But it's less common to find songs like that, and takes skill to pull off. If a song is like that though, it could benefit a less skilled player to limit the notes played to those chords. Not that many people do construct chord progressions like that, and if they do, they're probably adroit at improvising over them without aids.

    So later in the thread I wrote that because there are already apps that filter incoming notes in relation to scales and modes such as you mentioned and several good ones in Mosaic, I am currently going with that idea. In AUM I can automate changes to the scales, etc. and my plan will be to find a way to sequence and record those changes like with midi clip players, etc. Maybe the long anticipated Atom 2 can do this. Then I could set those to run while I improvise through them.

    The thing is, you probably won't be navigating over a lot of different scales, unless you're more untraditional in your songwriting than most people are. Most likely all the chords you chose will sound fine with a single scale. But I could be completely wrong on that point. And that would be super cool. B)

    But the advantage, as I said, with Suggester and other chord apps is that you can listen to chords and arrange them quickly. Not so easy with the scale/modes; they require more of fiddling to audition the musical flavors.

    Not so much really. Generally players will pick a scale common to all or most of the chords, then add "color" notes that are outside the scale. Knowing when to add outside notes is often intuitive but one can learn techniques such as "leading tones", "tension and release", etc.

    That said, sure, picking a different scale to play against when an oddball chord comes along, is a terrific technique. It's just not as common as sticking to one key.

  • P.S. You shouldn't be apologetic about anything about this discussion. Topics such as this always bring out interesting ideas and opinions. B)

  • edited March 2021

    I implemented exactly this in my second Mozaic script. This video shows Fugue Machine feeding a repeating pattern of notes into the Mozaic instance on one midi channel, which then get changed to fit chords played on the on screen keyboard on another midi channel, with the altered output going to FM Player 2. The chords could just as easily be coming from a sequencer and Fugue Machine could be replaced by live noodling. The first half of the video shows how to set up the midi routing in AUM, then the audio starts happening and you can hear what it does.

    https://www.facebook.com/paul.beecham/videos/10159300328448304

    BTW, the notes output are not limited to the chord notes. I’m forcing the input to scales that fit the chords.

  • @TheOriginalPaulB said:
    I implemented exactly this in my second Mozaic script. This video shows Fugue Machine feeding a repeating pattern of notes into the Mozaic instance on one midi channel, which then get changed to fit chords played on the on screen keyboard on another midi channel, with the altered output going to FM Player 2. The chords could just as easily be coming from a sequencer and Fugue Machine could be replaced by live noodling. The first half of the video shows how to set up the midi routing in AUM, then the audio starts happening and you can hear what it does.

    https://www.facebook.com/paul.beecham/videos/10159300328448304

    BTW, the notes output are not limited to the chord notes. I’m forcing the input to scales that fit the chords.

    Very interesting!

    Even after @wim 's explanation, I have problems grasping the problem. Which can easily be explained by my lacking musical knowledge.

    I have some problems watching the video on facebook, do you have it on YouTube too?

    Also, a link to your Mozaic script would be greatly appreciated 🤗

  • heshes
    edited March 2021

    I can't remember who it was, but I think sometime last year a Mozaic solution was created for a guy who was using a midi drum set. I think he was trying to increase musicality by having notes played according to a rhythm he would drum. So he wasn't choosing notes at all, just establishing the rhythm for the notes, one of which would play with each drum tap. I think @McD may have been involved, or @McD came up with something similar for himself.

    I think I'm reminded of this now by the idea to force any incoming note to be a note in a chord that's being played. That's likely going quite a ways past just transposing one or two semi-tones to conform to a scale. Seems like perhaps one approach might be to do something like the drummer's solution above: create something that will arpeggiate chord notes according to a rhythm you're playing on a single key. Or maybe not. Just an idea.

  • @tja said

    I have some problems watching the video on facebook, do you have it on YouTube too?

    https://streamable.com/e/0risrq

Sign In or Register to comment.