Loopy Pro: Create music, your way.

What is Loopy Pro?Loopy Pro is a powerful, flexible, and intuitive live looper, sampler, clip launcher and DAW for iPhone and iPad. At its core, it allows you to record and layer sounds in real-time to create complex musical arrangements. But it doesn’t stop there—Loopy Pro offers advanced tools to customize your workflow, build dynamic performance setups, and create a seamless connection between instruments, effects, and external gear.

Use it for live looping, sequencing, arranging, mixing, and much more. Whether you're a live performer, a producer, or just experimenting with sound, Loopy Pro helps you take control of your creative process.

Download on the App Store

Loopy Pro is your all-in-one musical toolkit. Try it for free today.

Mozaic basic midi pad controller

trying to learn Mozaic and the syntax. are there any basic scripts for a simple. push a pad and have it send a midi note out to a synth.?
that way i can get a better feel for how the language work

Comments

  • McDMcD
    edited April 2020

    Try this and post any questions about how to do more like assign notes to PAD #'s.

    @Description
       Basic PAD Example
       hit any pad and send C4 out on Channel 1 - velocity 80
       stop the C4 note 200 msec later
    @End
    
    @OnLoad
      // Show the PAD Layout GUI
      ShowLayout 2 // all pads
      pad_note = 0
    @End
    
    @OnPadDown
      // LastPad will show which PAD was pressed down
      pad_note = LastPad
      SendMIDINoteOn 0, 40, 80
      SendMIDINoteOff 0, 40, 80, 200
    @End
    
  • @McD said:
    Try this and post any questions about how to do more like assign notes to PAD #'s.

    @Description
       Basic PAD Example
       hit any pad and send C4 out on Channel 1 - velocity 80
       stop the C4 note 200 msec later
    @End
    
    @OnLoad
      // Show the PAD Layout GUI
      ShowLayout 2 // all pads
      pad_note = 0
    @End
    
    @OnPadDown
      // LastPad will show which PAD was pressed down
      pad_note = LastPad
      SendMIDINoteOn 0, 40, 80
      SendMIDINoteOff 0, 40, 80, 200
    @End
    

    yeah cool this works.
    so how do you assign notes to pads?

  • @OnPadDown
      // LastPad will show which PAD was pressed down
      pad_note = LastPad
      SendMIDINoteOn 0, 40, 80
      SendMIDINoteOff 0, 40, 80, 200
    @End
    

    so how do you assign notes to pads?

    You must add statements to convert the pad_note variable to a specific pitch.
    I like to create a scale array:

    // C major scale
    notes = [40, 42, 44, 45, 47, 49, 51, 52]
    and use the pad_note number to point to the Notes to play:

    SendMIDINoteOn 0, notes[pad_note], 80
    SendMIDINoteOff 0, notes[pad_note], 80, 200

    Good next step question.

    Complete Version 2 - test by hitting more pads... the first 8 will send a note. Add more notes to the "notes" array to use all 16.

    @Description
    Basic PAD Example
    hit any pad and send C4 out on Channel 1 - velocity 80
    stop the C4 note 200 msec later
    @End

    @OnLoad
    // Show the PAD Layout GUI
    ShowLayout 2 // all pads
    pad_note = 0
    notes = [40, 42, 44, 45, 47, 49, 51, 52]
    @End

    @OnPadDown
    // LastPad will show which PAD was pressed down
    pad_note = LastPad
    SendMIDINoteOn 0, notes[pad_note], 80
    SendMIDINoteOff 0, notes[pad_note], 80, 200
    @End

  • man this is super helpful. thank you so much. i’m starting to understand it more

  • @eross said:
    man this is super helpful. thank you so much. i’m starting to understand it more

    The thing that takes some time to understand is that you basically have 2 methods to
    make something happen in the future...

    1) add a delay to a SendMidiOut as parameter 4. Then that delay gets managed by Mozaic.
    There's no concept of "idle" or "wait until" you just submit a request to do something at a time in the future.

    2) the second option is to use timers or Metronome events and request the SendMidiOut on that schedule. The "OnTimer" and "OnMetroPulse" are there for these use cases.

    People keep thinking everything runs as a list of commands that spans time in our concept of time but the reality every event is processed in less than a millisecond and the program idles pending a new event.

    It just takes mastering 1 and 2 and you can do magic.

    Echoes are typically delays or note releases and OnMetroPulse can do the "Piano Roll" style of logic to make sequencers.

  • I should mention that there's also and OnPadUp event and you can send out the Note Off with that physical event:

    @OnPadDown
    // LastPad will show which PAD was pressed down
    pad_note = LastPad
    SendMIDINoteOn 0, notes[pad_note], 80
    @End

    @OnPadUp
    pad_note = LastPad
    SendMIDINoteOff 0, notes[pad_note], 80, 200
    @End

Sign In or Register to comment.