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*

McDMcD
edited October 2019 in General App Discussion

The single Mozaic thread on the Forum is best served for programmer's asking questions from fellow programmers and from @brambos. But there should be a thread where Mozaic Users (who will never write any code) can ask for new scripts.

Is there a MIDI tool you wish existed? For example:

Hit a BlueBoard Button and the script outputs the next chord in some pre-defined chord sequence like I-vi-ii-V7. A knob could be implemented to dial in a specific chord progression. There are apps that can be used that are driven from chordal inputs so the script sits between these apps and the Blue Board Button. (This is a real request from someone seeking an existing app and not interested in learning to code for this situation, like most of us).

Do you have any MIDI problems needing a programmed solution. Starting with a simple ask and then requesting enhancements is probably the best way to get someone to commit to your specific
needs.

«13456762

Comments

  • wimwim
    edited October 2019

    Good idea, but what does this have to do with whether BM3 crashes too much or not?

  • @wim said:
    Good idea, but what does this have to do with whether BM3 crashes too much or not?

    Easy: I request a script that randomly crashes BM3.

  • Joking aside, excellent idea @McD

  • @wim said:
    Good idea, but what does this have to do with whether BM3 crashes too much or not?

    Dear casual reader: be nice to @wim... he has coded some of the most downloaded scripts from:

    https://patchstorage.com/platform/mozaic/?search_query=&tax_platform=mozaic&tax_post_tag=&orderby=download_count&wpas_id=search_form&wpas_submit=1

    If you problem intrigues him he'll probably hack together a solution. For programmer's hacking is a good and noble use of time.

  • @McD said:
    The single Mozaic thread on the Forum is best served for programmer's asking questions from fellow programmers and from @brambos. But there should be a thread where Mozaic Users (who will never write any code) can ask for new scripts.

    Is there a MIDI tool you wish existed? For example:

    Hit a BlueBoard Button and the script outputs the next chord in some pre-defined chord sequence like I-vi-ii-V7. A knob could be implemented to dial in a specific chord progression. There are apps that can be used that are driven from chordal inputs so the script sits between these apps and the Blue Board Button. (This is a real request from someone seeking an existing app and not interested in learning to code for this situation, like most of us).

    Do you have any MIDI problems needing a programmed solution. Starting with a simple ask and then requesting enhancements is probably the best way to get someone to commit to your specific
    needs.

    I suggest a Company’s section (Like KVRs)... That would solve a lot of these issues..

  • Does Mozaic work on Obsidian in NS2?

  • @gusgranite said:
    Does Mozaic work on Obsidian in NS2?

    Humm. Interesting question. Maybe, with a workaround or two. What did you want to do?

    1. I know they have this inside multiple other scrips but it be nice to have a timing randomizer. Something to add little variations in timing to the midi notes.
    2. A swing. I know again this is inside several scripts but it be cool just to have the ability to add swing to notes.
  • @wim said:

    @gusgranite said:
    Does Mozaic work on Obsidian in NS2?

    Humm. Interesting question. Maybe, with a workaround or two. What did you want to do?

    Modify your Spectrum synth randomizer for Obsidian!

  • wimwim
    edited October 2019

    @gusgranite said:

    @wim said:

    @gusgranite said:
    Does Mozaic work on Obsidian in NS2?

    Humm. Interesting question. Maybe, with a workaround or two. What did you want to do?

    Modify your Spectrum synth randomizer for Obsidian!

    That would only work in a pretty limited fashion. NS2 only gives you 8 macro knobs that can be mapped to cc’s. So I think you’re limited to just 8 parameters that could be randomized.

    MIDI Randomizer and Scenes could already be used for that much.

    Or, you could use MIDI Morph Pad II and be able to morph between up to four scenes (called “snapshots” in the app). Same thing though - limited to 8 parameters due to NS2’s design.

  • @wim said:

    @gusgranite said:

    @wim said:

    @gusgranite said:
    Does Mozaic work on Obsidian in NS2?

    Humm. Interesting question. Maybe, with a workaround or two. What did you want to do?

    Modify your Spectrum synth randomizer for Obsidian!

    That would only work in a pretty limited fashion. NS2 only gives you 8 macro knobs that can be mapped to cc’s. So I think you’re limited to just 8 parameters that could be randomized.

    MIDI Randomizer and Scenes could already be used for that much.

    Or, you could use MIDI Morph Pad II and be able to morph between up to four scenes (called “snapshots” in the app). Same thing though - limited to 8 parameters due to NS2’s design.

    Thanks @wim - you are an inspiration.

  • Make a NDLR :)

  • :p
    Has anyone made or wish to make a “MIDI note to CC” conversion script?
    (range controls for input/output would be a bonus)

    I’d like to control one or more CCs from a MIDI keyboard/pad or sequencer but would ideally like to scale the controls so that it would be possible to access the full CC range within a 1/2/3/4 octave range, rather than 128 values as with a direct conversion of note # to controller value.

  • I would like a retrospective midi looper. Much like I've explored Kosmonaut as an retrospective looper that listens to all input, and when I trigger it, it will loop back a set number of beats. It never really works for perfect loops though as Kosmonaut doesn't do it "the-AUM-way" (which is basically starting/stopping on the next sync quantum).

    I was thinking this could be do-able for midi too though. Fill up a buffer of a (user controlled) number of beats/bars/sync-quantums, always keeping the last ones (if you set it to 16 beats, the 17th will "fall off" as it is the oldest) and be able to play them back when triggered. You would also need a setting for stop listening (i.e when it is playing).

    I'm talking about this as a improvisation/creation tool. If you truly know what you will be doing, a traditional looper (audio or midi) might be more suitable. This is more for hanging in the effect slot and have it listen to everything, and if you, to your own surprise, did something awesome that you'd like to repeat, hit the trigger and it will play it back.

  • Microtonal scala or Tun scale loader.

    tune multitimbral synths (and instruments with MPE), or monophonic synths

    basically, something that translates scale files into pitch bends per note.

  • NRPN controller for hardware synths

  • wimwim
    edited November 2019

    Mozaic doesn’t have any facilities for reading files, so I don’t think that one is possible.

    If there was some other app that could translate a scale file to sysex, then send it to Mozaic, maybe. But by the time you built such an app it’d be easier just to build the app directly.

  • would love a Midi Program Change Toolbox script :) :

    • Ability to advance forward and back through patches by clicking pads
    • type in a number for patch/bank and press send (not sure how this would be done but I guess either sliders or dials to select the numbers.)
    • send PC on load with delay option by using the same selection technique etc
    • Have all these controllable in the AU parameters
  • edited November 2019

    @palms I once started the beginning of a microtonal script. It would best be used with multiple instances of an AU, rotating channels like Polythemus. (Or multiple hardware synths.) Or MPE, like you said.

    Here's how I started to make it. I ran SynthOne into 4Pockets Analyzer and Tuner. Played the keys on my MIDI controller. Recorded the frequency and closest note. Played with the pitch bend value in Mozaic until it would send the right frequency when pitch bend is set to +/- 1. And then I would repeat the process, for every note of the scale. I think I only did two octaves of Pythagorean tuning. Maybe someone has a better idea of how to do it quicker, but...

    I don't think there's a table to tell you which note+pitch bend value will give you a certain frequency. If there were, the script would take ten minutes to write. It might even be a good idea to use a regular language to program something to translate a list of frequencies into note + pitch bend. Because until that exists, adding any scale to any program that works this way would be time consuming. And once it exists, adding any scale would take minutes. Otherwise, I'd have to prioritize certain ones over others.

    Do you have a favorite microtonal scale, @palm? If so, maybe I could finish the Pythagorean octaves and add one other scale, and then if anyone wants to use a different scale, they could follow my method, because it's extremely straightforward. It just requires a lot of patience.

  • MPC / Maschine style Note Repeat, especially useful for drums but Arps, jamming. 🙏

  • @auxmux said:
    MPC / Maschine style Note Repeat, especially useful for drums but Arps, jamming. 🙏

    https://patchstorage.com/note-repeat/

    Someone made it a week ago

  • Amazing! Thanks @animalelder and thanks @Bryan for making this!

  • _ki_ki
    edited November 2019

    @auxmux IIRC Brian scripted a note repeat . His script cuts all held notes into beat synced repetitions. One can setup the time divisions using knobs.

    .

    If you want something different or more advanced, you need to specify what your note-repeater should do in a longer description, not all are familiar with MPC or Maschine :)

    One could for instance just act on the last played drum note and use the XY input for changing beat divisions and velocity.

    I for instance would prefer if the played drum notes were also trigged by mozaic pads so that i don't need to use two apps to play 'drums'.

    Or do you have external pads and just want to add the beat synced repeat ? If the external pads only trigger short notes then Brians script wont work and also my XY idea fails as one does not know when a user lifts the finger from the XY input field.

    .

    Edit: Hupps - my answer took too long to write - the question was already answered :p

  • BTW - This morning i updated the Mozaic wiki page with a categorized script overview of all Mozaic scripts published on patch storage including links and a short description. This should help in finding existing scripts.

  • I might make a version of the @Bryan Note Repeat that would use the pads to set the timing division. So when you hold down Pad 0 and then hold down a note, it plays quarter notes. Pad 1 would be 8th, 2 would be 16th, 3 would be 32nd notes. I could also have the XY pad do basically the same thing, and maybe just leave the top left quadrant of the XY pad as an "off" setting.

    That would be most similar to the functionality of an MPC's note repeat.

  • edited November 2019

    Thanks @_ki I'm going to try Bryan's script with Xequence Pads AU and see if it works how I'm imagining. I like @Skyblazer idea of having the pads change divisions.

    An all in one Mozaic script would be convenient and I dig the idea of changing beat divisions on the fly with an XY pad.

    I plan on triggering separate instances of AudioLayer with it, each hosting individual drum files.

  • McDMcD
    edited November 2019

    @_ki said:
    BTW - This morning i updated the Mozaic wiki page with a categorized script overview of all Mozaic scripts published on patch storage including links and a short description. This should help in finding existing scripts.

    Awesome Wiki Page @_ki

    You can click on the name of any script and it takes you directly to the PatchStorage Downloading page for that script.

  • @hellquist said:
    I would like a retrospective midi looper. Much like I've explored Kosmonaut as an retrospective looper that listens to all input, and when I trigger it, it will loop back a set number of beats. It never really works for perfect loops though as Kosmonaut doesn't do it "the-AUM-way" (which is basically starting/stopping on the next sync quantum).

    I was thinking this could be do-able for midi too though. Fill up a buffer of a (user controlled) number of beats/bars/sync-quantums, always keeping the last ones (if you set it to 16 beats, the 17th will "fall off" as it is the oldest) and be able to play them back when triggered. You would also need a setting for stop listening (i.e when it is playing).

    I'm talking about this as a improvisation/creation tool. If you truly know what you will be doing, a traditional looper (audio or midi) might be more suitable. This is more for hanging in the effect slot and have it listen to everything, and if you, to your own surprise, did something awesome that you'd like to repeat, hit the trigger and it will play it back.

    ...anyways, I'm mainly trying to work out if it would be theoretically possible in Mozaic, at all, before purchasing Mozaic and investing time on it.

    Perhaps someone could enlighten me on if it, in theory, would be possible to "store" (or buffer) the midi input notes/chords in an array based on given units of time (beats/bars/sync-quantum), along with velocity and other relevant data, and then have it played back when triggered to do so? If it is theoretically possible I'll just get Mozaic and do it myself. If it however sounds like a ludicrous idea I shall not bother, and look elsewhere for something similar.

  • McDMcD
    edited November 2019

    @hellquist said:

    @hellquist said:
    I would like a retrospective midi looper. Much like I've explored Kosmonaut as an retrospective looper that listens to all input, and when I trigger it, it will loop back a set number of beats. It never really works for perfect loops though as Kosmonaut doesn't do it "the-AUM-way" (which is basically starting/stopping on the next sync quantum).

    I was thinking this could be do-able for midi too though. Fill up a buffer of a (user controlled) number of beats/bars/sync-quantums, always keeping the last ones (if you set it to 16 beats, the 17th will "fall off" as it is the oldest) and be able to play them back when triggered. You would also need a setting for stop listening (i.e when it is playing).

    I'm talking about this as a improvisation/creation tool. If you truly know what you will be doing, a traditional looper (audio or midi) might be more suitable. This is more for hanging in the effect slot and have it listen to everything, and if you, to your own surprise, did something awesome that you'd like to repeat, hit the trigger and it will play it back.

    ...anyways, I'm mainly trying to work out if it would be theoretically possible in Mozaic, at all, before purchasing Mozaic and investing time on it.

    Perhaps someone could enlighten me on if it, in theory, would be possible to "store" (or buffer) the midi input notes/chords in an array based on given units of time (beats/bars/sync-quantum), along with velocity and other relevant data, and then have it played back when triggered to do so? If it is theoretically possible I'll just get Mozaic and do it myself. If it however sounds like a ludicrous idea I shall not bother, and look elsewhere for something similar.

    I wrestle with some of these similar questions and have started to code some scripts.

    Mozaic has very limited data structures. There two basic data structures:

    1) 1024 element arrays as essential data storage method.
    2) NoteState Locker with 2 indexes - Channel (0-15) and Note Number 0-127)

    So, a looper needs to save multiple elements per event:
    Note On
    Velocity
    Timing
    Corresponding Note Off (this can be tricky) - NoteState Locker might help here

    There are a couple timing mechanisms:
    PPQN working off the Hosts BPM input
    An internal Timer capability to set a timer and do something when it "fires"

    There's a "Simpler Recorder/Looper" script to look over to see how these features
    were used:

    Variables for Note and Channel (Velocity doesn't;t seem to get stored but could be)
    Internal Timer is used for playback
    1000 note limit (@Brambos has since updated variables to 1024 elements)

    https://patchstorage.com/simple-recorder-looper/

    And a Tutorial for a Looper that uses the BPM/PPQN timing for output:

    https://wiki.audiob.us/mozaic_flow_tutorial

    A complex looper was crafted for another MIDI scripting environment (and might have additional clues for cracking the problem of loop lengths, etc). I personally found the
    latency of the script was too great to make the tool useful over an AUv3 like Atom or
    plumbing in the rock solid "Looper HD".

    I hope there's more discussion of the suitability of Mozaic for this type of request because
    users always want their favorite apps re-coded using free tools to improve the request/enhancement cycle.

  • @McD said:

    @hellquist said:

    @hellquist said:
    I would like a retrospective midi looper. Much like I've explored Kosmonaut as an retrospective looper that listens to all input, and when I trigger it, it will loop back a set number of beats. It never really works for perfect loops though as Kosmonaut doesn't do it "the-AUM-way" (which is basically starting/stopping on the next sync quantum).

    I was thinking this could be do-able for midi too though. Fill up a buffer of a (user controlled) number of beats/bars/sync-quantums, always keeping the last ones (if you set it to 16 beats, the 17th will "fall off" as it is the oldest) and be able to play them back when triggered. You would also need a setting for stop listening (i.e when it is playing).

    I'm talking about this as a improvisation/creation tool. If you truly know what you will be doing, a traditional looper (audio or midi) might be more suitable. This is more for hanging in the effect slot and have it listen to everything, and if you, to your own surprise, did something awesome that you'd like to repeat, hit the trigger and it will play it back.

    ...anyways, I'm mainly trying to work out if it would be theoretically possible in Mozaic, at all, before purchasing Mozaic and investing time on it.

    Perhaps someone could enlighten me on if it, in theory, would be possible to "store" (or buffer) the midi input notes/chords in an array based on given units of time (beats/bars/sync-quantum), along with velocity and other relevant data, and then have it played back when triggered to do so? If it is theoretically possible I'll just get Mozaic and do it myself. If it however sounds like a ludicrous idea I shall not bother, and look elsewhere for something similar.

    I wrestle with some of these similar questions and have started to code some scripts.

    Mozaic has very limited data structures. There two basic data structures:

    1) 1024 element arrays as essential data storage method.
    2) NoteState Locker with 2 indexes - Channel (0-15) and Note Number 0-127)

    So, a looper needs to save multiple elements per event:
    Note On
    Velocity
    Timing
    Corresponding Note Off (this can be tricky) - NoteState Locker might help here

    There are a couple timing mechanisms:
    PPQN working off the Hosts BPM input
    An internal Timer capability to set a timer and do something when it "fires"

    There's a "Simpler Recorder/Looper" script to look over to see how these features
    were used:

    Variables for Note and Channel (Velocity doesn't;t seem to get stored but could be)
    Internal Timer is used for playback
    1000 note limit (@Brambos has since updated variables to 1024 elements)

    https://patchstorage.com/simple-recorder-looper/

    And a Tutorial for a Looper that uses the BPM/PPQN timing for output:

    https://wiki.audiob.us/mozaic_flow_tutorial

    A complex looper was crafted for another MIDI scripting environment (and might have additional clues for cracking the problem of loop lengths, etc). I personally found the
    latency of the script was too great to make the tool useful over an AUv3 like Atom or
    plumbing in the rock solid "Looper HD".

    I hope there's more discussion of the suitability of Mozaic for this type of request because
    users always want their favorite apps re-coded using free tools to improve the request/enhancement cycle.

    Great reply! Thanks! :)

Sign In or Register to comment.