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.

Circular XY LFO motion

I currently have the Rozeta suite by @brambos and absolutely love it but I am not certain if I can use it to achieve my desired goal

I would like to setup 2 LFOs to control XY movement in Virtual Room such that the XY position moves in a circle

Is this possible to do using Rozeta LFO or any other AU based LFO? Is there a way to control the phase offset of oscillators in Rozeta LFO? Is phase offset necessary to achieve a circular motion when addressing an XY controller?

Thank you so much!

Comments

  • edited June 2019

    There's a demo in the Mozaic tutorials that does exactly this... :)

    (I think it's called "drawing circles", off the top of my head)

  • @brambos said:
    There's a demo in the Mozaic tutorials that does exactly this... :)

    (I think it's called "drawing circles", off the top of my head)

    @brambos amazing thank you so much~ so if I purchase mosaic there is already a solution with midi out that will allow me to do this out-of-the-box without learning any coding?

    Btw have been suuuuupppper excited about mosaic as I was a huge max4live user when working on desktop so the idea of being able to create custom midi controllers on phone is incredibly exciting, I just haven’t dove in because I know that I don’t have time at the moment to learn the coding language~ is there a mozaic user library/forum anywhere online for sharing patches/asking questions?

  • @annahahn said:

    @brambos said:
    There's a demo in the Mozaic tutorials that does exactly this... :)

    (I think it's called "drawing circles", off the top of my head)

    @brambos amazing thank you so much~ so if I purchase mosaic there is already a solution with midi out that will allow me to do this out-of-the-box without learning any coding?

    Btw have been suuuuupppper excited about mosaic as I was a huge max4live user when working on desktop so the idea of being able to create custom midi controllers on phone is incredibly exciting, I just haven’t dove in because I know that I don’t have time at the moment to learn the coding language~ is there a mozaic user library/forum anywhere online for sharing patches/asking questions?

    Right now that circles demo simply moves the puck of the XY pad around in a circular motion. But it uses LFOs to do it, so adding MIDI out is just 2 extra lines of code - depending on how/what you want to send out (2 separate MIDI CC codes?).

    The Mozaic thread in here has become a Q&A thread of sorts, and there's a script exchange at Patchstorage.com

    If you let me know what you like to send out I'll happily extend the script for you. If you enjoy doing it yourself for learning purposes that's also fine. Let me know if you like me to do it :)

  • @brambos said:

    @annahahn said:

    @brambos said:
    There's a demo in the Mozaic tutorials that does exactly this... :)

    (I think it's called "drawing circles", off the top of my head)

    @brambos amazing thank you so much~ so if I purchase mosaic there is already a solution with midi out that will allow me to do this out-of-the-box without learning any coding?

    Btw have been suuuuupppper excited about mosaic as I was a huge max4live user when working on desktop so the idea of being able to create custom midi controllers on phone is incredibly exciting, I just haven’t dove in because I know that I don’t have time at the moment to learn the coding language~ is there a mozaic user library/forum anywhere online for sharing patches/asking questions?

    Right now that circles demo simply moves the puck of the XY pad around in a circular motion. But it uses LFOs to do it, so adding MIDI out is just 2 extra lines of code - depending on how/what you want to send out (2 separate MIDI CC codes?).

    The Mozaic thread in here has become a Q&A thread of sorts, and there's a script exchange at Patchstorage.com

    If you let me know what you like to send out I'll happily extend the script for you. If you enjoy doing it yourself for learning purposes that's also fine. Let me know if you like me to do it :)

    Hey @brambos ~ thank you so so much I reeeeeaaaalllly appreciate that🙌🙌🙌🙌

    If you wouldn’t mind sending me the code for how to add two separate midi cc outputs that would be incredible and infinitely appreciated!! I’ll be hosting everything in AUM routing the ccs to instances of virtual room

  • @brambos

    One other quick question~ is there an easy way to adjust the code such that the radius and speed of the circular rotation can be adjusted by turning the GUI knobs?

  • Isn't this just a case of using Sine & Cosine for the X & Y axis?
    (For more interesting variations being able to select the start-phase for the LFOs is a bonus).

  • edited June 2019

    Here's my quick adaptation. I've mapped speed to the first knob. I'll leave radius as an exercise to the user (I've made it easy though, because min and max make up your radius and they are already parametric ;) )

    @OnLoad 
      // LFO default settings
      min = 0
      max = 127
      if (Unassigned speed)
        speed = 0.5 // half a hz.
      endif 
      SetLFOType 0, {sine}
      SetLFOType 1, {cosine}
      Call @MyLFOSetup
      // set start phases for both lfos
      ResetLFO 0
      ResetLFO 1
    
      // set the metronome to 48ppqn resolution
      SetMetroPPQN 48
    
      // GUI
      LabelKnob 0, {Speed}  
    @end
    
    // update gui and midi output
    @OnMetroPulse 
      x = GetLFOValue 0
      y = GetLFOValue 1
      SetXYValues x, y
      SendMIDICC 0, 13, x
      SendMIDICC 0, 15, y  
    @End 
    
    @MyLFOSetup
      SetupLFO 0, min, max, NO, speed
      SetupLFO 1, min, max, NO, speed
    @End
    
    @OnKnobChange
      if LastKnob = 0
        v = GetKnobValue 0 
        speed = TranslateScale v, 0, 127, 0.1, 2 // set speed: 0.1 hz - 2.0 hz
        Call @MyLFOSetup
      endif
    @End 
    
    @Description
    This script uses 2 LFOs to create a circular motion and sends the coordinates out on CC#13 and CC#15 (MIDI Channel 0)
    @End 
    
  • @annahahn let me know if it works for you.

  • @brambos got it working beautifully~ thank you so much🙌🙌🙌🙌going to write you momentarily in another thread with a Q regarding Rozeta scaler~again thank you so so much!!

    @OnLoad
    // LFO default settings
    min = 0
    max = 127
    if (Unassigned speed)
    speed = 0.5 // half a hz.
    endif
    if (Unassigned radi1)
    radi1 = 0
    endif

    if (Unassigned radi2)
    radi2 = 127
    endif
    SetLFOType 0, {sine}
    SetLFOType 1, {cosine}
    Call @MyLFOSetup
    // set start phases for both lfos
    ResetLFO 0
    ResetLFO 1

    // set the metronome to 48ppqn resolution
    SetMetroPPQN 48

    // GUI
    LabelKnob 0, {Speed}
    LabelKnob 1, {Radius1}
    LabelKnob 2, {Radius2}
    @end

    // update gui and midi output
    @OnMetroPulse
    x = GetLFOValue 0
    y = GetLFOValue 1
    SetXYValues x, y
    SendMIDICC 0, 12, x
    SendMIDICC 0, 13, y
    @End

    @MyLFOSetup
    SetupLFO 0, radi1, radi2, NO, speed
    SetupLFO 1, radi1, radi2, NO, speed
    @End

    @OnKnobChange
    if LastKnob = 0
    v = GetKnobValue 0
    speed = TranslateScale v, 0, 127, 0.1, 2 // set speed: 0.1 hz - 2.0
    Call @MyLFOSetup
    endif

    if LastKnob = 1
    j = GetKnobValue 1
    radi1 = j //
    Call @MyLFOSetup
    

    endif

    if LastKnob = 2
    k = GetKnobValue 2
    radi2 = k //
    Call @MyLFOSetup
    endif

    @End

    @Description
    This script uses 2 LFOs to create a circular motion and sends the coordinates out on CC#13 and CC#15 (MIDI Channel 0)
    @End

  • Excellent!

  • @Samu said:
    Isn't this just a case of using Sine & Cosine for the X & Y axis?
    (For more interesting variations being able to select the start-phase for the LFOs is a bonus).

    I agree 🙂

  • @Richtowns said:

    @Samu said:
    Isn't this just a case of using Sine & Cosine for the X & Y axis?
    (For more interesting variations being able to select the start-phase for the LFOs is a bonus).

    I agree 🙂

    If you look at the code above you’ll see that’s a really simple change.

  • I mean, I agree that his is possible with just Rozeta by feeding the XY controls a sin and a cosin from roseta LFOs. No need for any programming.

    Like Samu said, in rozeta LFOs CC 13 is a sin, cc 15 a cosine. Receive one on the x axis and the other on the Y and bingo!

    You could probably get it to draw a mushroom with mosaic, though. No* limits!
    (* some)

  • Hey

    I made a better version of the code-radius is now adjustable with a single knob

    @OnLoad
    // LFO default settings
    min = 0
    max = 127
    if (Unassigned speed)
    speed = 0.5 // half a hz.
    endif
    if (Unassigned radi1)
    radi1 = 0
    endif

    if (Unassigned radi2)
    radi2 = 127
    endif
    SetLFOType 0, {sine}
    SetLFOType 1, {cosine}
    Call @MyLFOSetup
    // set start phases for both lfos
    ResetLFO 0
    ResetLFO 1

    // set the metronome to 48ppqn resolution
    SetMetroPPQN 48

    // GUI
    LabelKnob 0, {Speed}
    LabelKnob 1, {Radius1}

    @end

    // update gui and midi output
    @OnMetroPulse
    x = GetLFOValue 0
    y = GetLFOValue 1
    SetXYValues x, y
    SendMIDICC 0, 12, x
    SendMIDICC 0, 13, y
    @End

    @MyLFOSetup
    SetupLFO 0, radi1, radi2, NO, speed
    SetupLFO 1, radi1, radi2, NO, speed
    @End

    @OnKnobChange
    if LastKnob = 0
    v = GetKnobValue 0
    speed = TranslateScale v, 0, 127, 0.1, 2 // set speed: 0.1 hz - 2.0
    Call @MyLFOSetup
    endif

    if LastKnob = 1
    j = GetKnobValue 1
    bb = TranslateScale j, 0, 127, 0, 63
    radi1 = bb //
    Call @MyLFOSetup
    

    endif

    if LastKnob = 1
    k = GetKnobValue 2
    radi2 = 127-bb
    Call @MyLFOSetup
    endif

    @End

    @Description
    This script uses 2 LFOs to create a circular motion and sends the coordinates out on CC#13 and CC#15 (MIDI Channel 0)
    @End

  • Hi @annahahn -
    To keep the forum from jacking up your code, you can place a line with just ``` In it before and after the code. The character needed is a bit difficult to locate on the on-screen keyboard. On an English keyboard I long-press the apostrophe key until the alternative characters come up. I’m not sure how it works for other language layouts.
    Nice to see you diving into Mozaic. B)

Sign In or Register to comment.