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.

AU Midi Plug that you can record and send CC automation?

Any suggestions? I would like to be able to record/edit multiple cc automations and send them all around in AUM. I know xequence does this, but am looking for an AU version.

«1

Comments

  • edited July 2020

    Drambo
    It would probably be a pretty intense build though.

  • wimwim
    edited July 2020

    Photon AU - can be hard to get your head around, but does the recording and playback duties. I believe the developer is working on an update.

    Given lack of current AU options X2 is still the best choice, IMO.

  • @wim said:
    Photon AU - can be hard to get your head around, but does the recording and playback duties. I believe the developer is working on an update.

    Given lack of current AU options X2 is still the best choice, IMO.

    Would be perfect as an AUv3Midi Fx.... Or at least, can we get a button to return to host (AUM)...... Please?

  • edited July 2020

    @CracklePot said:
    Drambo
    It would probably be a pretty intense build though.

    @shinyisshiny If I remember correctly, you already own Drambo.
    It doesn't support recording and editing in the same module and it's not like DAW automation but quite powerful nonetheless, just a few ideas here:

    • Record CC values using Flexi Sampler (CC Modulator => Flexi => Record module input). You cannot edit this curve but you can record multiple 'takes' in one go and select & launch them using slice mode.
    • Modulate using beat-synced LFOs with variable phase offset so it always starts the way you want it
    • Modulate using sequencer steps (p-locks of 'Knob' => CC generator)
    • Drambo has recently got a Graphic Modulator module added that lets you draw shapes and adjust the playback speed relative to host BPM:

    It supports a grid with up to 32 steps but you can also draw freely and it works with accessibility zoom enabled for detailed editing.

    It does not (yet) support a one-shot mode and will 'play' the shape in a loop but I've requested that and chances are it will be added.

  • @rs2000 very cool ideas! thanks for taking the time to write this out. I really want someting that is linear and follows aum's timeline, but these are great for other things, and i will definitely be trying them out.

  • Beathawk allow to record visualize and edit cc too

  • @Jeezs said:
    Beathawk allow to record visualize and edit cc too

    Good one. I forgot about that.

  • edited July 2020

    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

  • @TheOriginalPaulB said:
    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

    It would be challenging. That's one thing that Mozaic isn't particularly well suited for. There are scripts that do a good job of recording and looping notes, but none that I know of that capture all midi CC's and play them back.

    I got the basics of such a script written. It could record and play back all midi. I concluded that without the ability to save to or load from midi files, it was of limited use. The playback engine was pretty inefficient. I decided it wasn't practical pursue a finished script for this.

  • @wim said:

    @TheOriginalPaulB said:
    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

    It would be challenging. That's one thing that Mozaic isn't particularly well suited for. There are scripts that do a good job of recording and looping notes, but none that I know of that capture all midi CC's and play them back.

    I got the basics of such a script written. It could record and play back all midi. I concluded that without the ability to save to or load from midi files, it was of limited use. The playback engine was pretty inefficient. I decided it wasn't practical pursue a finished script for this.

    I figured that if you just had one recording per instance, the state saving could take care of storage...

  • wimwim
    edited July 2020

    @TheOriginalPaulB said:

    @wim said:

    @TheOriginalPaulB said:
    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

    It would be challenging. That's one thing that Mozaic isn't particularly well suited for. There are scripts that do a good job of recording and looping notes, but none that I know of that capture all midi CC's and play them back.

    I got the basics of such a script written. It could record and play back all midi. I concluded that without the ability to save to or load from midi files, it was of limited use. The playback engine was pretty inefficient. I decided it wasn't practical pursue a finished script for this.

    I figured that if you just had one recording per instance, the state saving could take care of storage...

    Yeh, but working with a large amount of data like that when you only have arrays of 1024 integers each is a challenge. I figured out a way to do that. But playback required using a fine grained timer and loading and accessing several arrays. It worked, but was way beyond what reasonably could be expected to happen within those timer ticks.

    Could it work? Sure, but with no editing, etc. It just wasn't going to be practical to take further. It was a great learning experience though.

  • @wim said:

    @TheOriginalPaulB said:

    @wim said:

    @TheOriginalPaulB said:
    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

    It would be challenging. That's one thing that Mozaic isn't particularly well suited for. There are scripts that do a good job of recording and looping notes, but none that I know of that capture all midi CC's and play them back.

    I got the basics of such a script written. It could record and play back all midi. I concluded that without the ability to save to or load from midi files, it was of limited use. The playback engine was pretty inefficient. I decided it wasn't practical pursue a finished script for this.

    I figured that if you just had one recording per instance, the state saving could take care of storage...

    Yeh, but working with a large amount of data like that when you only have arrays of 1024 integers each is a challenge. I figured out a way to do that. But playback required using a fine grained timer and loading and accessing several arrays. It worked, but was way beyond what reasonably could be expected to happen within those timer ticks.

    Could it work, sure, but with no editing, etc. It just wasn't going to be practical take further. It was a great learning experience though.

    Honestly, super impressed you made it that far.

  • I was pretty amazed at what I could get away with in Mozaic's processing engine. What that app can do in a few milliseconds is truly surprising.

  • Just use Xequence, or if you insist on AU Photon records CC's.

  • Bumping this. Would be great to have a stream lined AU that recorded automation from another app (synth). Maybe one with mutiple tracks with various lengths per track. I know its getting into daw territory, but def a tool that aum could use.
    Thoughts, suggestions?

  • @hibjshop said:
    Bumping this. Would be great to have a stream lined AU that recorded automation from another app (synth). Maybe one with mutiple tracks with various lengths per track. I know its getting into daw territory, but def a tool that aum could use.
    Thoughts, suggestions?

    Does LK do this?

  • I'm "working" on a Mozaic project where the idea is to use 99 global variables like a drive, divided in clusters, for a total of over 50 thousands timestamped midi recorded events in a single project.
    The idea of using globals is that's then easy to access them from any Mozaic instance, editing the code without loosing your recordings.
    Global0 is used a bit like a FAT, info about the number of globals, cluster size, with 512 entries (clips), that any instance could reserve for recording.
    A clip would contain the position of the global and the cluster of the first element of the recording, then the first element in a cluster would be the size used in that cluster and the last one would again direct to the next global/cluster combo, if any.
    One instance of Mozaic would deal with automatic saving, so all clips and data would be stored in that single instance, could also being saved as a script to load into another project, host ..
    That special instance could also make a defrag to minimize data size.
    Each events cost me 2x32 bits, only 2x24 are usable, but it's enough to store a decent timestamp in one element of an array and 3*7 bits for midi + 3 flag bits for extra info(selected, deleted,..)
    So a full used project would be just 400 kbytes, not bad Imo.
    Beside just recording, the idea is to make data manipulation also, things that may be tricky on live recording or pen editing.
    And beside recording events, the idea is to record functions as well, requiring less data, like a pitch from -2 to 0 in 300 msec, or whatever.
    I already made some test and, at least on my new air 4, it rocks

    Sorry, I couldn't find a piece of paper :)

  • @mbncp said:
    I'm "working" on a Mozaic project where the idea is to use 99 global variables like a drive, divided in clusters, for a total of over 50 thousands timestamped midi recorded events in a single project.
    The idea of using globals is that's then easy to access them from any Mozaic instance, editing the code without loosing your recordings.
    Global0 is used a bit like a FAT, info about the number of globals, cluster size, with 512 entries (clips), that any instance could reserve for recording.
    A clip would contain the position of the global and the cluster of the first element of the recording, then the first element in a cluster would be the size used in that cluster and the last one would again direct to the next global/cluster combo, if any.
    One instance of Mozaic would deal with automatic saving, so all clips and data would be stored in that single instance, could also being saved as a script to load into another project, host ..
    That special instance could also make a defrag to minimize data size.
    Each events cost me 2x32 bits, only 2x24 are usable, but it's enough to store a decent timestamp in one element of an array and 3*7 bits for midi + 3 flag bits for extra info(selected, deleted,..)
    So a full used project would be just 400 kbytes, not bad Imo.
    Beside just recording, the idea is to make data manipulation also, things that may be tricky on live recording or pen editing.
    And beside recording events, the idea is to record functions as well, requiring less data, like a pitch from -2 to 0 in 300 msec, or whatever.
    I already made some test and, at least on my new air 4, it rocks

    Sorry, I couldn't find a piece of paper :)

    I experimented with a Mozaic script for recording and playing back any MIDI events. It was just to see if I could accomplish it, and largely I did. I didn't use global variables though.

    It turned into quite an involved project by my standards, but I eventually set it aside even though I had it working fairly well. I set it aside as it just didn't seem to provide any real practical value over other methods, and ultimately was way more overhead than I felt was efficient to play back a midi stream. I learned a lot though.

    Sounds like you may have hit on a more practical application using the Global variables though.

  • Coming soon to Atom 2...

  • Yes, I’m also not to sure if this will bring me somewhere, but I have sometimes the frustration of not being able to edit a clip having the full picture, being able to change note length or correct some CCs.
    A good thing in Cubasis is that you can record a clip into Mozaic in no time, solo the track,set the loop position/size and hit render the project.
    Now when Atom will record any MIDI and we’ll have access to all the data from within an atom script, this will be totally obsolete 🙏

  • FYI: Atom 2 will eventually record MPE too! I know the developer mentioned that it would not be hard to implement.

  • Just an idea...

    If I had to record multiple CC and didn't have an App for it.

    My first "experiment" would be to try to use Mozaic as a translator to convert specific CC Data to specific Midi note data, and record the note data into Atom.

    The Mozaic script would need to convert the "CC Data coming in" into "Note Data going out" (and Vice versa).

    // The general concept for the mozaic script might look something like below:
    // (Not saying this script would work, just outlining a concept of translation from CC Data to Note Data, and back again.

    // This sort of idea might work better with a Timer Function regulating the translation speed in both directions.

    // IIRC.... Hypothetically. A CC controller Number and Corresponding CC Values are all 0-127 . The same ranges as Midi Note
    // Values and Velocity Values.

    // The theory is to use a Note number to represent the CC controller number, and use CC Values to represent the
    // Note Velocity.

    // But I don't know off hand if ATOM can record a note range of 0 to 127 ??
    // If only a few known CC's are to be recorded, maybe they could be pre-assigned to specific notes in the script ??

    @OnMIDICC
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDIOut Channel , Note , Value
    @End
    
    @OnMIDINote
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDICC Channel , Note , Value
    @End
    
  • @horsetrainer said:
    Just an idea...

    If I had to record multiple CC and didn't have an App for it.

    My first "experiment" would be to try to use Mozaic as a translator to convert specific CC Data to specific Midi note data, and record the note data into Atom.

    The Mozaic script would need to convert the "CC Data coming in" into "Note Data going out" (and Vice versa).

    // The general concept for the mozaic script might look something like below:
    // (Not saying this script would work, just outlining a concept of translation from CC Data to Note Data, and back again.

    // This sort of idea might work better with a Timer Function regulating the translation speed in both directions.

    // IIRC.... Hypothetically. A CC controller Number and Corresponding CC Values are all 0-127 . The same ranges as Midi Note
    // Values and Velocity Values.

    // The theory is to use a Note number to represent the CC controller number, and use CC Values to represent the
    // Note Velocity.

    // But I don't know off hand if ATOM can record a note range of 0 to 127 ??
    // If only a few known CC's are to be recorded, maybe they could be pre-assigned to specific notes in the script ??

    @OnMIDICC
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDIOut Channel , Note , Value
    @End
    
    @OnMIDINote
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDICC Channel , Note , Value
    @End
    

    StreamByter might be even more efficient than Mozaic for this sort of translation.

  • @Stuntman_mike said:
    Coming soon to Atom 2...

    That was my first thought too.

  • @espiegel123 said:

    @horsetrainer said:
    Just an idea...

    If I had to record multiple CC and didn't have an App for it.

    My first "experiment" would be to try to use Mozaic as a translator to convert specific CC Data to specific Midi note data, and record the note data into Atom.

    The Mozaic script would need to convert the "CC Data coming in" into "Note Data going out" (and Vice versa).

    // The general concept for the mozaic script might look something like below:
    // (Not saying this script would work, just outlining a concept of translation from CC Data to Note Data, and back again.

    // This sort of idea might work better with a Timer Function regulating the translation speed in both directions.

    // IIRC.... Hypothetically. A CC controller Number and Corresponding CC Values are all 0-127 . The same ranges as Midi Note
    // Values and Velocity Values.

    // The theory is to use a Note number to represent the CC controller number, and use CC Values to represent the
    // Note Velocity.

    // But I don't know off hand if ATOM can record a note range of 0 to 127 ??
    // If only a few known CC's are to be recorded, maybe they could be pre-assigned to specific notes in the script ??

    @OnMIDICC
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDIOut Channel , Note , Value
    @End
    
    @OnMIDINote
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDICC Channel , Note , Value
    @End
    

    StreamByter might be even more efficient than Mozaic for this sort of translation.

    Exactly. Just change the message type and let it flow through. However, I don't know how Atom may handle playing back many note on messages, with no note offs to balance. Also, a CC with data value zero will be sent as a note with velocity zero, and might come back as a note off.

  • Not AU, but Ribn and CC Pal can do this, I wish Ribn was AU.

  • AUM Midi mixer by 4 Pockets let’s you record CC automation, on a timeline by drawing it in, but I’m not sure if you can only control Certain parameters like volume, Pan, and a few others or you can assign it to anything. I have to look into that if you can send that recorded cc automation in Midi Mixer to anything, I’m going to have lots of fun...

  • @wim said:

    @TheOriginalPaulB said:
    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

    It would be challenging. That's one thing that Mozaic isn't particularly well suited for. There are scripts that do a good job of recording and looping notes, but none that I know of that capture all midi CC's and play them back.

    I got the basics of such a script written. It could record and play back all midi. I concluded that without the ability to save to or load from midi files, it was of limited use. The playback engine was pretty inefficient. I decided it wasn't practical pursue a finished script for this.

    I know very littLE about code but What if you used the X/Y pad to control 1 or 2 knobs that you then assign to parameters, via CC, is it possible to record that movement in the X/Y pad then loop it, maybe synced to 2,4, 8 bars...?

  • @uncledave said:

    @espiegel123 said:

    @horsetrainer said:
    Just an idea...

    If I had to record multiple CC and didn't have an App for it.

    My first "experiment" would be to try to use Mozaic as a translator to convert specific CC Data to specific Midi note data, and record the note data into Atom.

    The Mozaic script would need to convert the "CC Data coming in" into "Note Data going out" (and Vice versa).

    // The general concept for the mozaic script might look something like below:
    // (Not saying this script would work, just outlining a concept of translation from CC Data to Note Data, and back again.

    // This sort of idea might work better with a Timer Function regulating the translation speed in both directions.

    // IIRC.... Hypothetically. A CC controller Number and Corresponding CC Values are all 0-127 . The same ranges as Midi Note
    // Values and Velocity Values.

    // The theory is to use a Note number to represent the CC controller number, and use CC Values to represent the
    // Note Velocity.

    // But I don't know off hand if ATOM can record a note range of 0 to 127 ??
    // If only a few known CC's are to be recorded, maybe they could be pre-assigned to specific notes in the script ??

    @OnMIDICC
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDIOut Channel , Note , Value
    @End
    
    @OnMIDINote
    Channel = MIDIByte1
    Note = MIDIByte2
    Value = MIDIByte3
    SendMIDICC Channel , Note , Value
    @End
    

    StreamByter might be even more efficient than Mozaic for this sort of translation.

    Exactly. Just change the message type and let it flow through. However, I don't know how Atom may handle playing back many note on messages, with no note offs to balance. Also, a CC with data value zero will be sent as a note with velocity zero, and might come back as a note off.

    You’re probably right. I didn’t think through the lack of note off

  • @Poppadocrock said:

    @wim said:

    @TheOriginalPaulB said:
    Pretty sure you could record/playback cc in Mozaic. Maybe not edit though.

    It would be challenging. That's one thing that Mozaic isn't particularly well suited for. There are scripts that do a good job of recording and looping notes, but none that I know of that capture all midi CC's and play them back.

    I got the basics of such a script written. It could record and play back all midi. I concluded that without the ability to save to or load from midi files, it was of limited use. The playback engine was pretty inefficient. I decided it wasn't practical pursue a finished script for this.

    I know very littLE about code but What if you used the X/Y pad to control 1 or 2 knobs that you then assign to parameters, via CC, is it possible to record that movement in the X/Y pad then loop it, maybe synced to 2,4, 8 bars...?

    Possible. Just not easy. Mozaic has limited variable size, with each one able to hold only 1024 pieces of information. You can pack a whole midi message into each one slot, but you also need timing information. CC movements can number in the hundreds per second for smooth automation. You end up needing to allocate a lot of variables to store such volumes of information. Then you need to play it all back, and that's where it gets inefficient. You end up needing to check every few milliseconds to see if the next value needs to be sent.

    Anyway, it can be done, but Mozaic isn't particularly well suited to this purpose. And I don't know what particular value it adds when there are apps that can do this more efficiently and be able to load and save files, which Mozaic can't do. (Well, there are starting to be anyway.)

Sign In or Register to comment.