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.

What would you recommend me to learn for scripting on iOS?

I have a little bit of programming experience from school, and own Mosaic. Any recommendations on what to do to make automatons?

Comments

  • just read this:
    http://ruismaker.com/wp-content/uploads/Mozaic.pdf

    and study some scripts - that should be mire than enough if you had a bit of coding experience ;)
    https://patchstorage.com/platform/mozaic/

  • @Samflash3 said:
    I have a little bit of programming experience from school, and own Mosaic. Any recommendations on what to do to make automatons?

    Interesting question... you could get a lot of answers. Have you typed in anything yet into the
    Mozaic code box? Anything from the manual for example? It's useful to know where your starting from and that would be job one... having the Log window show "Hello World" for example using:

    @OnLoad
    Log {Hello World}
    End

    Then loading the script and opening the Log window to see if it's working.
    After that maybe add some:

    @OnMidiNote code and create an echo script. If you're looking for apps to create there's a
    thread for that I'd recommend.

    Looking at existing scripts to figure out how they work and changing something is another great way to get started... pick a small one.

  • wimwim
    edited November 2019

    It took awhile to sort out my thoughts on this question. Just picking project ideas out of the air didn't work because a) I've temporarily run out of ideas, b) any projects I've temporarily shelved are tough ones, not good for a beginner, and c) I couldn't think of anything good as an introduction that hasn't already been done. But, I do have some thoughts now.

    The three biggest challenges for me learning were:

    1. Mastering the interface elements. Labeling knobs and pads meaningfully and in response to changes in the controls. Organizing code so that changes to knobs updates their labels to indicate the setting. Changing between views. Etc.
    2. Understanding the Event Driven architecture. Understanding what happens when MIDI is received, when tempo is changed, setting and using timers. Etc.
    3. Understanding and using variables and arrays for dynamic storage and retrieval.

    Whenever I'm doing a project, I start with the interface. I don't implement the logic to actually do anything until I have the interface working as I want it to. I realize this is completely bass-ackwards from how people are trained to program. But in Mozaic, I find that the bulk of my code is usually devoted to the interface, and sometimes I have not completely fleshed out ideas of how things will work. Setting up the interface forces me to define that logic. Always in the back of my mind, I'm thinking how it will actually do the work, but I stay away from that part until the interface is done. I find that by the time the interface is done, I have a pretty good deal how to implement the actual logic of doing the work.

    So, here's my advice (finally!). Start with a simple app that does one easy thing. But, don't just have it do that thing, make it interactive. If your app changes the midi channel of what's coming through it, then make sure there's a knob that allows you to select the channel (or no channel change). There are a surprising number of implications to just implementing that one knob, and doing it in a way that doesn't involve a bunch of repeated code. I'm not saying it's a pain, I'm just saying there are things to learn there.

    Next, do something that involves storing things in arrays and retrieving them later. Something like storing the note number of an unknown number of notes, then outputting the names of the notes in order to the log. Make a trigger using a pad or something to clear out the old notes and start listening for new ones, and one to stop listening and write out the notes received.

    Next, get to know how timers work. A simple way to do that would be to implement a way of delaying the output to the log of the notes array above at a regular interval, linked to the metronome, and independently. Or, maybe make a new array and store the duration of each recorded note in it.

    TL;DR? Split up your learning curve into at least the three concepts above. Start small. Start with something you can use, even if it already exists. If it already exists, make it yourself from scratch. Then compare your code to the other version to see what you can learn about how you could do things better, or that you did better.

  • @wim said:
    It took awhile to sort out my thoughts on this question.

    And I'm thankful for this post. Provided a lot of information I needed to get started. Thanks again.

  • Stumbled across this thread via search.

    @wim man, that has to be one of the best AB forum posts ever.

    @Samflash3 How goes the nerdy endeavoring? When you say automatons, do you mean things that generate output based on some input?

    @brambos For the purposes of Mozaic education, might be incredibly cool to recreate the Rozeta Bassline sequencer in Mozaic Script (to whatever extent possible anyway). Particularly the mutation and randomization bits. Then folks who already know and love Rozeta (prolly most Mozaic customers, I'd guess) could look at some fairly complex code but already have an understanding of what the goal is. Maybe 8 steps controlled by 16 knobs (8 for pitch, 8 for velocity) along with a way to set the sequence length via knob (1-8 steps)? Knob for scale?

  • I had missed this thread, and @wim's comment, but I'm very happy to have read it now. Thanks!

  • @hellquist said:
    I had missed this thread, and @wim's comment, but I'm very happy to have read it now. Thanks!

    +1

  • @wim: Great summary! :+1:

  • @Samflash3 How goes the nerdy endeavoring? When you say automatons, do you mean things that generate output based on some input?

    It's going well. Decided to look into iOS Shortcuts, JUCE for App Development, Mosaic, and Python (Pythonista). For now, I'm working on a simple shortcuts project to modify an xml file.

    Focusing on learning the basics of Shortcuts as we speak.

Sign In or Register to comment.