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*

1242527293062

Comments

  • edited November 2020

    Hello everyone.
    With the help of @wim (that I will never stop thanking) who wrote the code which I paste below, I finally got an editor for the LaunchKey Mini MK3 pads LEDs. I have customized the script in an “elementary way” to have a “Solo” effect for the first line, when you press a pad the others on the same row switch off.
    Now I thought we could take it a step further and I have made an GUI of how I believe it can work.
    The pads send Notes ON/OFF fixed on the values you see (from 36 to 51)
    By holding down a pad and moving the knobs you can change:
    KNOB1 - NoteON Pad color (velocity = integer values from 0 to 127)
    KNOB2 - Pad pulses or fixed (channel = 9 fixed / 11 pulse)
    KNOB3 - “Solo” mode (this works per row, pressing one pad the others on the same row turn off = Off, Row 1, Row 2, Row 1 & 2)
    KNOB4 - Presets (store 10 different presets) *this is pure luxury. Otherwise KNOB4 can be used for the noteOFF color
    In "Solo" mode colors ON/OFF must be the same
    How about? It's possible?

    My idea

    WIM code + my “artigianal” code

    @Description
      Toggle Launchkey pad lights on and off.
      Example only: NOT tested.
      Route Launchkey in parallel to the app to be played and to this script.
      Route this script to the "Launchkey DAW" port (I think).
    @End
    
    @OnLoad
    
      // You can set the pad colors individually in the arrays below.
      // Colors can be found in the Launchkey MK3 Programmers Reference Manual
      // 21 is a shade of green. 0 is black. 
    
      oncolor[36] = [7,7,7,7,14,14,14,14,7,7,7,7,14,14,14,14]
      offcolor[36] = [0,0,0,0,14,14,14,14,0,0,0,0,14,14,14,14]
    
      // You can also set color behavior by midi channel below
      // Stationary color = midi channel 10 (mozaic 9)
      // Pulsing = midi channel 12 (mozaic 11)
      colorchannel[36] = [11,11,11,11,9,9,9,9,11,11,11,11,9,9,9,9]
    
      ResetNoteStates FALSE
    @End
    
    @OnMidiNoteOn
    
      // Check to be sure notes received are from the pads
      // This will need enhancement if custom channels or notes are used.
      if MIDIChannel = 9 and MIDINote >= 36 and MIDINote <= 51
    
        // Toggle the note state between TRUE and FALSE
        SetNoteState MIDIChannel,MIDINote,(not GetNoteState MIDIChannel,MIDINote)
    
        if (GetNoteState MIDIChannel,MIDINote) = TRUE
          SendMIDINoteOn colorchannel[MIDINote], MIDINote, oncolor[MIDINote]
        else
          SendMIDINoteOn colorchannel[MIDINote], MIDINote, offcolor[MIDINote]
        endif
      endif
    
      if MIDIChannel = 9 and MIDINote = 40
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 50, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 41
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 50, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 42
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 50, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 43
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 50, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 48
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 50, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 49
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 50, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 50
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 51, 0
      endif
    
      if MIDIChannel = 9 and MIDINote = 51
      SendMIDINoteOff 9, 40, 0
      SendMIDINoteOff 9, 41, 0
      SendMIDINoteOff 9, 42, 0
      SendMIDINoteOff 9, 43, 0
      SendMIDINoteOff 9, 48, 0
      SendMIDINoteOff 9, 49, 0
      SendMIDINoteOff 9, 50, 0
      endif
    
    @End
    
  • Hey @Tatobx - that all seems possible, and you did a good job specifying how it works, which makes all the difference.

    I'm super distracted by a new rabbit hole - exploring making mini midi controllers with Arduino. But, sometimes I need a break, and this would be a good distraction

    ... unless someone else gets there first! B)

  • @wim said:
    I'm super distracted by a new rabbit hole - exploring making mini midi controllers with Arduino.

    That's a rabbithole journey I've been stocking up provisions for! I've got a load of components, an old Novation controller keyboard, an Uno, three Nanos and a box of blank PCBs!

  • @wim do you have any examples of mini midi controllers available to view?

  • wimwim
    edited November 2020

    @PeteSasqwax said:

    @wim said:
    I'm super distracted by a new rabbit hole - exploring making mini midi controllers with Arduino.

    That's a rabbithole journey I've been stocking up provisions for! I've got a load of components, an old Novation controller keyboard, an Uno, three Nanos and a box of blank PCBs!

    I'm killing myself here. It was the trigger that finally pushed me over the edge to buy a 3d printer for the "family" as a Christmas present. Just pressed "buy" about 30 minutes ago. Argh. I think I'm gonna hate myself in the morning.

    Mozaic scripting is a lot cheaper!

  • edited November 2020

    @Tatobx
    Good luck with updating the button labels with the status descriptions of the 4 knobs. That’s exactly the issue I ran into with my fugue generator. Lack of string handling means that you need a different LabelPad call for every possible different combination of settings. That boils down to huge if/elseif trees that quickly run into the script length limitation. It’s fine if all you want to do is display numeric variables, it’s only strings that are a problem.

  • @wim I'll happily purchase some enclosures from you when I need them if that helps ease the buyer's remorse :wink:

  • wimwim
    edited November 2020

    @soundtemple said:
    @wim do you have any examples of mini midi controllers available to view?

    The first is going to be based around this little guy: https://forum.audiob.us/discussion/comment/878974/#Comment_878974

    I have the basic code working and it sends notes as it should over USB and 5-pin DIN (even when plugged into the iPad with no outside power 😎). I want it to be Bluetooth though, so waiting on some parts to do that. Then I have to wait until Christmas to 3D print a case for it.

    Meanwhile I'm just messing around with components like faders and rotary encoders. I haven't come up with any concrete ideas for other controller configurations yet though. I'm just plugging stuff into breadboards and making it work with code so far.

  • @PeteSasqwax said:
    @wim I'll happily purchase some enclosures from you when I need them if that helps ease the buyer's remorse :wink:

    Def. a possibility. We'll see. :smile:

  • @wim cool! Do you have an "ultimate controller" or something you are hoping to build or just experimenting with how it all works? I'd be keen to hear how it all progresses. So please keep us posted!

  • @soundtemple said:
    @wim cool! Do you have an "ultimate controller" or something you are hoping to build or just experimenting with how it all works? I'd be keen to hear how it all progresses. So please keep us posted!

    Just messing around and learning at this point. But I'm excited about the mini 16 button controller I linked to. It's simple, relatively inexpensive and could be very useful for doing things like velcro-ing it to a guitar.

  • Could you make them in larger formats like a Monome? Couple it with a Raspberry Pi with a PiSound DAC and you've got Norns with a Grid and saved yourself hundreds!

  • @PeteSasqwax said:
    Could you make them in larger formats like a Monome? Couple it with a Raspberry Pi with a PiSound DAC and you've got Norns with a Grid and saved yourself hundreds!

    The Neotrellis 16-switch pads can be configured in of up to 64. But, they're switches, not pads. I'm not sure they're all that practical for something like that. Most of the time I look into mimicking a production controller, I find the production controller to be a better alternative. No, if I make anything, it will be a special purpose device that doesn't exist in another form factor. It's pretty hard to beat anything made in a real manufacturing environment.

    We probably should take this up in another thread as I've veered us OT pretty badly already.

  • Wise! Sorry for adding fuel to the detour! To bring it back on track a little: the idea of making controllers for specific setups appeals to me greatly. For example: something that would work with a particular Mozaic script in order to create a single instrument (or effect or whatever it may be) is immensely attractive.

  • The Sensel Morph has a lot of potential there. You can make custom layouts to do anything you like. I have one, but haven't done a whole lot with custom layouts. With only a 2D printed layout guide, I don't find it much more inspiring than the iPad screen itself as an input device. But if I can find the right 3d printing filament so that there's some tactile aspect to the layouts, maybe it'll get more use.

  • Damn, an augmented Morph would be amazing!

  • edited November 2020

    As VirSyns AddStation got around adding parameter function it opened up a great synth to be even more so. BUT, it's harmonics base (I think it's called that) system makes it a nightmare on some aspects as the harmonics for just ONE block has 512 parameters. I did 15 using the same CC but changed the range ever so slightly. Every block has 7 Parts with those 512 parameters and it's 8 blocks * 4, you do the math: changing each and everyone (not very useful, just saying) would be a year, for me :D . Anyway, here's the question: is it possible to tell Mozaic adding values to a parameter that has not been set yet, or does one always have to do that manually first?! Nervous it's a dumb question but guess I'll have to take it, if so :D

  • @Pxlhg Woaa - thats a hell lot of parameters :)

    In the default settings of AddStation, the block harmonics parameters are not visible - one has to enable ‚AU Automation‘ in the standalone settings to make them appear.

    Unfortunately one has to map them all manually, as AU plugins can’t add parameter routes by themselves.

    I once had a test session with 44 midiLFOs AUs sending on different channels and four different CCs each - 176 CCs which is a lot, but still two magnitudes away from the 16384 possible harmonics level AU parameters of AddStation. I don‘t know if AUM would route such a big number of params without a hickup.

  • _ki_ki
    edited November 2020

    ... And there are 6 more categories (pan, freq, attack, decay, filter, noise) each with 512 params - so flicking AddStations ‚enable AU Parameters‘ settings switch added a parameter tree with a total of 114688 AU parameters :o

  • @Krupa said:

    @GeeBee said:
    Hello , I would need a script to transform the input of Midi Guitar 2 to a sort of MPE controller to drive Geoshred Sax or Flute or SWAM instruments in general. I was able to do something fairly reasonable with Streambytes , by sending MIDI data to channel 2 and converting Aftertouch to Channel Pressure. It works fairly well but I am sure that with Mozaic something much better , and possibly configurable can be done ( i.e with velocity curves, etc , or assigning Pitch Bend to CC74, ..). See if somebody can come up with something clever. Thanks

    I made this one for chords a couple of weeks ago but I got hung up trying to get the pitch bend from mg2 to play nicely with the ‘shred. The basics are fairly easy to implement but I couldn’t navigate the available documentation well enough to find what I needed to progress unfortunately...

    @Krupa said:

    @GeeBee said:
    Hello , I would need a script to transform the input of Midi Guitar 2 to a sort of MPE controller to drive Geoshred Sax or Flute or SWAM instruments in general. I was able to do something fairly reasonable with Streambytes , by sending MIDI data to channel 2 and converting Aftertouch to Channel Pressure. It works fairly well but I am sure that with Mozaic something much better , and possibly configurable can be done ( i.e with velocity curves, etc , or assigning Pitch Bend to CC74, ..). See if somebody can come up with something clever. Thanks

    I made this one for chords a couple of weeks ago but I got hung up trying to get the pitch bend from mg2 to play nicely with the ‘shred. The basics are fairly easy to implement but I couldn’t navigate the available documentation well enough to find what I needed to progress unfortunately...

    I finally decided to get my hands dirty ( I have no experience programmig .....) , I managed to code a plugin that converts MidiGuitar 2 to be able to play the Tenor GeoSax on an iPad. Basically it routes all the midi data from Channel 1 to Channel 2 , converts Velocity to Channel Pressure to drive Expression ( I learned, Channel Pressure it is not the same as the Aftertouch that MG2 releases ), and also uses Velocity to drive the Formant and to turn On/Off the Growl , when it reaches high levels. The Pitch Bend works fairly well ( at least to my expectations ) I will try to upload a quick and dirty demo that I did with AUM so you can listen ( I tried to cover various modulations......probably overdone ) and see if this is close to what you where after.

  • The mentioned audio file

  • @GeeBee said:
    The mentioned audio file

    Sounds great, well done! I did notice that mg2 had an update that mentioned pitchbend so that might have been my trouble as when I tried my solo script again, it seemed much better. I did notice that really upping the range of the bend in mg2 helped it not go so far in geoshred, though that’s something that could be addressed by the script as well.

    I’m not seeing the file btw, looking forward to seeing either 👍👍

  • REQUEST: A drummer asked if we could "glitch" MIDI events. That led to looking at
    using MIDI CC's to toggle the volume or mute parameter on an AUM channel. I created
    a sample using Rozetta LFO to toggle both Volume using a Square Wave CC and another to toggle MUTE on the channel. It sound like this:

    So, I thought FAC Envolver can generate a CC stream that follows the transients of an audio stream like a Drum Machine app to create CC's in rhythmic patterns. I need to see if it also
    sends a CC = 0 on the downside. Does it? Not sure.

    Anyway... there's a request to make a Mozaic script that sends rhythmic CC's to make a Channel in AUM "glitch" creating a rhythmic pulsing sound (like Perforator). There aren't many scripts that take on the drum machine like patterns are there? Anyway. Maybe
    converting MIDI notes could get mapped to CC 127 and 0 events? Easy to code, right?

    NOTE ON -> CC = 127 (or some settable level via variable or knob)
    NOTE OFF -> CC = 0 (or some settable level via variable or knob)

    Ready... set... code!

  • @_ki said:
    ... And there are 6 more categories (pan, freq, attack, decay, filter, noise) each with 512 params - so flicking AddStations ‚enable AU Parameters‘ settings switch added a parameter tree with a total of 114688 AU parameters :o

    Yeah, when it comes to e.g harmonics it's would be enough to just map a bunch out of the 512 and for some of the others mapping wouldn't do much at all from a sound manipulating perspective. Guess I'll have to do a few at the time and save a template. Thanks for answering, well appreciated. :)

  • @Krupa said:

    @GeeBee said:
    The mentioned audio file

    Sounds great, well done! I did notice that mg2 had an update that mentioned pitchbend so that might have been my trouble as when I tried my solo script again, it seemed much better. I did notice that really upping the range of the bend in mg2 helped it not go so far in geoshred, though that’s something that could be addressed by the script as well.

    I’m not seeing the file btw, looking forward to seeing either 👍👍

    See if you can downloaded from here.....( I really do not know how to upload it ) https://www.icloud.com/attachment/?u=https://cvws.icloud-content.com/B/AWAcuyk61TSdMopBzKV1Gr_zrY63ASQQCXXhxQGOoFlL6Fcti1oERLad/${f}?o=Ag7_b4MWPqVNGSrsOmLWKygwrQzDld8t0OWqwliwKdGm&v=1&x=3&a=CAogeunbpzuGk4WWF4lJeHi4v2ZRYD3n9fpdNOOVOKiXVz0SdRDK056e4C4YyuOZ8ukuIgEAKggByAD_Hi1v6lIE862Ot1oEBES2nWol37rWrvVUm-KMSib8wQ-i17J2czWQtkrx3N65y8iYPPxN8_er_XIlaAUV3HA1Oxaonk0MFPiD_8CQnabeDraRHJmRQqjUnTNGMILyiQ&e=1608973185&fl=&r=8FE98361-D225-4A01-834A-50E8AADC9848-1&k=${uk}&ckc=com.apple.largeattachment&ckz=E709238E-BE68-4908-9C5C-906932A98FFA&p=51&s=up80lEGA7auJxG4BHwwqrJL4YNg&amp;uk=5ItV0apHMBacH59lYNd0GQ&amp;f=Ch 5 - 120 bpm - 002.wav&amp;sz=24699380

  • Ok I managed to reduce the size to an MP3 file

  • @GeeBee said:

    @Krupa said:

    @GeeBee said:
    The mentioned audio file

    Sounds great, well done! I did notice that mg2 had an update that mentioned pitchbend so that might have been my trouble as when I tried my solo script again, it seemed much better. I did notice that really upping the range of the bend in mg2 helped it not go so far in geoshred, though that’s something that could be addressed by the script as well.

    I’m not seeing the file btw, looking forward to seeing either 👍👍

    My settings in Midi Guitar 2 for the Pitch Bend are the "Bend Range 12 ", any other setting for the PB produces an absurd change in pitch ( also I have the Legato and the Aftertouch disabled , the Gain is close to the maximum the Tone is 3/4 of the way and so is the Gain.

  • @Krupa said:

    @GeeBee said:
    The mentioned audio file

    Sounds great, well done! I did notice that mg2 had an update that mentioned pitchbend so that might have been my trouble as when I tried my solo script again, it seemed much better. I did notice that really upping the range of the bend in mg2 helped it not go so far in geoshred, though that’s something that could be addressed by the script as well.

    I’m not seeing the file btw, looking forward to seeing either 👍👍

    Listen to the audio file, and if you like it I can upload the plugin so you can try it se how it works for you ( and you might even be able to improve it quite a bit, because I do not think it is very elegant.......you could possibly add some knobs to be able to reroute the Note On Velocity to other CC's).

  • @GeeBee said:

    @Krupa said:

    @GeeBee said:
    The mentioned audio file

    Sounds great, well done! I did notice that mg2 had an update that mentioned pitchbend so that might have been my trouble as when I tried my solo script again, it seemed much better. I did notice that really upping the range of the bend in mg2 helped it not go so far in geoshred, though that’s something that could be addressed by the script as well.

    I’m not seeing the file btw, looking forward to seeing either 👍👍

    Listen to the audio file, and if you like it I can upload the plugin so you can try it se how it works for you ( and you might even be able to improve it quite a bit, because I do not think it is very elegant.......you could possibly add some knobs to be able to reroute the Note On Velocity to other CC's).

    Holy moley, that sounds good, lovely playing!

    I would definitely give that a go, and it sounds like you’ve got it nicely dialled in... my code is as rough as can be so I wouldn’t worry :)

  • @wim said:
    Hey @Tatobx - that all seems possible, and you did a good job specifying how it works, which makes all the difference.

    I'm super distracted by a new rabbit hole - exploring making mini midi controllers with Arduino. But, sometimes I need a break, and this would be a good distraction

    ... unless someone else gets there first! B)

    Thanks @wim , for me waiting for you to come out sometimes of the hole is not a problem.
    Thinking about the project, the KNOB4 is better to do something else, i can save each preset separately and it would be better to dedicate a knob to the color of the noteOFF
    then:
    KNOB1 - NoteON Pad color (velocity = integer values from 0 to 127)
    KNOB2 - NoteOFF Pad color (velocity = integer values from 0 to 127)
    KNOB3 - Pad pulses or fixed (channel = 9 fixed / 11 pulse)
    KNOB3 - "Solo" mode (this works per row, pressing one pad the others on the same row turn off = Off, Row 1, Row 2, Row 1 & 2)

Sign In or Register to comment.