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.

Request new Mozaic Scripts *HERE*

1555658606169

Comments

  • @Mo13 said:

    @McD said:
    A simple solution to Note Offs is to just provide a control for Note Length.

    Note_Length = 100

    NoteOn channel0, 60, 100
    NoteOff channel0, 60, 0, 100. (Where this last number is a time to delay before Mozaic sends this NoteOff)

    This way you’ll never have a hung note. This approach is suitable for arps or notes being played by
    Drum tapping which also has a fixed duration of sound.

    By coincident I just suggested a similar technique to implement for the ' Simple Scaler' my approach was to only use the modified scales's note Ons, clone and borrow the note length from the originally incoming notes to create the note Offs as those won't get stuck. Seems to work here but don't know maybe there is more to it.

    Sure. Mozaic does everything based upon some “event” so sending a note off that’s triggered by an incoming note off is standard practice.

    Where things get crazy is when the note is being mapped to some new note like your Chord Mask idea.
    If the Note On goes out when there’s Mask #1 and the Note Off comes in after the incoming chord changes you could send out the wrong Note Off using the shift to Chord logic.

    You’ll have to save the “Note On” note number into a variable to send out the right Note Off note using that saved note variable.

  • edited April 2023

    Sure. Mozaic does everything based upon some “event” so sending a note off that’s triggered by an incoming note off is standard practice.

    Where things get crazy is when the note is being mapped to some new note like your Chord Mask idea.
    If the Note On goes out when there’s Mask #1 and the Note Off comes in after the incoming chord changes you could send out the wrong Note Off using the shift to Chord logic.

    You’ll have to save the “Note On” note number into a variable to send out the right Note Off note using that saved note variable.

    My approach is making new copies of note Offs taken directly out of the modified note Ons and only extracting and placing the length from the incoming notes in to the new 'fake' note Offs, so in this case there is no need for storing as it's always the right note Off.

    edit: sorry yes of course they still need to be stored, i haven't actually made this work in Mozaic itself so it's just a suggestion.

  • @McD said:

    Looking to control all the CC parameters on a Fred’s Lab Tooro

    Which one would you like: 1 screen with SHIFT or 4 discrete displays?

    1 Screen with SHIFT would be perfect! Thank you.

  • wimwim
    edited April 2023

    @MonkeyDrummer - Let's say you play a C chord in a particular octave. If you then send notes in a different octave through the plugin, should they be quantized to the note and octave of the chord you played, or should they just be quantized to the notes of the chord, but not forced to the chord's octave?

    Got something about ready to try out but whether it's ready or not depends on the answer.

    [edit] humm ... also how particular are you about how the notes are quantized? The simple way, using the builtin ScaleQuantize function, always quantizes upward. So, lets say you have a chord C,F#,B. If you play a G, it's quantized to B, not to the closest note, F#.

    I implemented selectable quantization methods in Simple Scaler, but have only used ScaleQuantize in this quick sketch. I'd have to dust off that old code if you need that additional control.

  • @wim said:

    Loopy Pro, believe it or not, would be great for this as well.

    Great idea! Thanks!

  • edited April 2023

    Yes, new request here.

    I use drumkits in Audio Layer and Beathawk. The midi mapping of imported drum kits in Audio Layer is all over the place. And I want to use the stock midi files in Cubasis and exported midi files from Lumbeat drummers. I want to build a Mozaic midi note transformer, so I can change incoming notes to the right drum sounds. This way I don't have to edit the midi files, that would be a pain. Mozaic will be a midi efx on the Audio Layer or Beathawk channel.

    I think I need to figure out what midi notes are used in stock midi drum files, and fixate these note numbers in Mozaic. And with a knob I can change the new midi note number. So I just turn the knobs untill the right kick, snare, hihat, etc, is played.

    edit: This could be what I need

    https://patchstorage.com/remap-multi-channel-midi-drums/
    https://patchstorage.com/dmr-16/

    I am checking it right now.

  • @nerVe said:

    @McD said:

    Looking to control all the CC parameters on a Fred’s Lab Tooro

    Which one would you like: 1 screen with SHIFT or 4 discrete displays?

    1 Screen with SHIFT would be perfect! Thank you.

    OK.

    I’d like you to participate in the layout design. A Page can display 22 knobs.

    Let’s start with Page One. Which 22 CC’s do you want to use for a prototype version?

    I’d need the Displayed Name you want to see. I’m assuming each CC runs from 0-127.

  • @raabje said:
    Yes, new request here.

    I use drumkits in Audio Layer and Beathawk. The midi mapping of imported drum kits in Audio Layer is all over the place. And I want to use the stock midi files in Cubasis and exported midi files from Lumbeat drummers. I want to build a Mozaic midi note transformer, so I can change incoming notes to the right drum sounds. This way I don't have to edit the midi files, that would be a pain. Mozaic will be a midi efx on the Audio Layer or Beathawk channel.

    I think I need to figure out what midi notes are used in stock midi drum files, and fixate these note numbers in Mozaic. And with a knob I can change the new midi note number. So I just turn the knobs untill the right kick, snare, hihat, etc, is played.

    edit: This could be what I need

    https://patchstorage.com/remap-multi-channel-midi-drums/
    https://patchstorage.com/dmr-16/

    I am checking it right now.

    You could also benefit by getting familiar with the General Midi Drum Map. That's just one page of many that you can find with google or whatever.

    Most stock midi drum files will be GM drum mapped.

    The huge problem with this is the varying destinations. You've got 47 possible notes to deal with and most of your plugins have far fewer. For instance, there are six types of toms in the GM specification. Most plugins don't have more than a few and you never know which a midi file might be triggering. On top of that, the order of pads is flexible in most apps.

    It's a tough problem. You've scripts you've found go a long way toward making it better.

  • edited April 2023

    @wim said:

    You could also benefit by getting familiar with the General Midi Drum Map. That's just one page of many that you can find with google or whatever.

    Most stock midi drum files will be GM drum mapped.

    The huge problem with this is the varying destinations. You've got 47 possible notes to deal with and most of your plugins have far fewer. For instance, there are six types of toms in the GM specification. Most plugins don't have more than a few and you never know which a midi file might be triggering. On top of that, the order of pads is flexible in most apps.

    It's a tough problem. You've scripts you've found go a long way toward making it better.

    Okay, thanks for the midi map, would be nice if most drum kits and midi files obey this list. But I have some kits (imported from Logic and Battery in Audio Layer) that have far more sounds, for example look at this:

    So there are multiple bass, snare, hihat, etc in this kit. It starts near B0/C1 but goes up very far. So it would be nice if I could turn a knob to change a bass drum into an other one.

    Or this one, starts at C2

    I tried the two scripts but it is confusing to work with. Midi channel is probably wrong in the presets. I played the factory midi files in Cubasis into this script into Beathawk.

    From your post I understand that is hard to do anyway.

  • wimwim
    edited April 2023

    @raabje said:
    From your post I understand that is hard to do anyway.

    Yeh, unfortunately it is very hard. What can you do when there are so many variables? I started an ambitious project to try to make a massive mapping database. I couldn't stick with it long enough to finish. The idea was to map different sources to a "neutral" mapping, then to map that to various destinations. So, on the input side you could select something like "Ruismaker" or "GM Drums", and on the other select "iElectribe" or something else.

    It got too tedious, and would still require a lot of fiddling because destinations don't always have the same sounds on a given pad. Change a preset and it's all out of whack again. I gave up. But someday someone more persistent than me will come along. Maybe.

    What I suggest is using something like BS-16i with a GM Drum sound font for auditioning drums midi files. For most stock midi files, that should work pretty well. At least that way you can hear the types of sounds that should be generated. Then adjust the notes to fit the plugin you're working with.

    I wish I knew of a better way. 🤷🏼‍♂️

  • @wim said:

    Yeh, unfortunately it is very hard. What can you do when there are so many variables? I started an ambitious project to try to make a massive mapping database. I couldn't stick with it long enough to finish. The idea was to map different sources to a "neutral" mapping, then to map that to various destinations. So, on the input side you could select something like "Ruismaker" or "GM Drums", and on the other select "iElectribe" or something else.

    It got too tedious, and would still require a lot of fiddling because destinations don't always have the same sounds on a given pad. Change a preset and it's all out of whack again. I gave up. But someday someone more persistent than me will come along. Maybe.

    What I suggest is using something like BS-16i with a GM Drum sound font for auditioning drums midi files. For most stock midi files, that should work pretty well. At least that way you can hear the types of sounds that should be generated. Then adjust the notes to fit the plugin you're working with.

    I wish I knew of a better way. 🤷🏼‍♂️

    Okay, thanks, I see, moving the midi notes on the track lane is still the quickest method. If I play the drums on a midi keyboard I can figure out what my target notes should be. I will figure it out. I thought it would be more elegant if I could turn some knobs on the fly in Mosaic.

    And even better is to operate strictly inside the General midi domain. I have the acoustic drums in Beathawk, and that works pretty well.

  • edited April 2023

    @wim said:

    I wish I knew of a better way. 🤷🏼‍♂️

    I found something, Remap for Rozetta.

    If I change the code on the line xoxNote (now I have entered some numbers for a test), the numbers have to match the notes played in the midi file, I can turn the knobs to change the output note number. So for example bass drum 36 could be anything else, maybe an other bassdrum on note 49

    Maybe I can expand the drum kit knobs, label them, and ditch the midi channel knobs, to expand the range of this script.

  • @raabje I built something a bit like it in Ableton, by making single keyzones for c1 to e2 and putting pitch midifx on each chain and then mapping those to macros. So I can take a mididrumtrack and just turn the knobs until I hit the sound I want for a certain note.

    I certainly don't want to convert anybody to dramboism, but this can be easily done there: pick a note filter for each Triggernote you want to use, add transpose modules for each chain and maybe map those to a slider or knob for a cleaner control surface. The only restriction is that, if you want to go by single semitones, you can only go 12 semitones up or down, there probably is a more elegant way, if you know drambo better than I do.

  • @tyslothrop1 said:
    @raabje I built something a bit like it in Ableton, by making single keyzones for c1 to e2 and putting pitch midifx on each chain and then mapping those to macros. So I can take a mididrumtrack and just turn the knobs until I hit the sound I want for a certain note.

    I certainly don't want to convert anybody to dramboism, but this can be easily done there: pick a note filter for each Triggernote you want to use, add transpose modules for each chain and maybe map those to a slider or knob for a cleaner control surface. The only restriction is that, if you want to go by single semitones, you can only go 12 semitones up or down, there probably is a more elegant way, if you know drambo better than I do.

    Aha, I see, that is an other way to get there, a pitch knob for each note. Clever :-) I do have Drambo, but I first want to finish this Mozaic script to see if it helps me.

    The thing is, I want to build a template, so I can in Cubasis just pull a factory drum midi file in the track lane, adjust my drumkit a little bit, and then start recording guitar as soon as possible. And in Drambo I think I cannot record guitar (or any audio) that easily? I have not tried this yet.

  • Ah I think, you found something similar while I was typing.

  • Well you could of course use Drambo as a midifx in cubasis, but your solution is probably better anyway, because I guess you can go further than 12 semitones.

  • @raabje said:

    @tyslothrop1 said:
    @raabje I built something a bit like it in Ableton, by making single keyzones for c1 to e2 and putting pitch midifx on each chain and then mapping those to macros. So I can take a mididrumtrack and just turn the knobs until I hit the sound I want for a certain note.

    I certainly don't want to convert anybody to dramboism, but this can be easily done there: pick a note filter for each Triggernote you want to use, add transpose modules for each chain and maybe map those to a slider or knob for a cleaner control surface. The only restriction is that, if you want to go by single semitones, you can only go 12 semitones up or down, there probably is a more elegant way, if you know drambo better than I do.

    Aha, I see, that is an other way to get there, a pitch knob for each note. Clever :-) I do have Drambo, but I first want to finish this Mozaic script to see if it helps me.

    The thing is, I want to build a template, so I can in Cubasis just pull a factory drum midi file in the track lane, adjust my drumkit a little bit, and then start recording guitar as soon as possible. And in Drambo I think I cannot record guitar (or any audio) that easily? I have not tried this yet.

    Quite an easy thing, actually:
    Add a Recorder or Flexi module and hit REC to record an audio clip up to 60 seconds long.
    Flexi can also be adjusted to record (and stop recording) in sync with your beat so you don't even have to cut start and end of a clip.

  • @MonkeyDrummer -

    Uploaded: https://patchstorage.com/chord-scale-quantize/

    I might have to do some more robust stuck-note management. But in my head at least it seems like it should be enough. 🤨

    CHORD/SCALE QUANTIZE v0.1 (beta)

    Notes sustained on a control channel set a scale filter. All other notes are quantized to the scale filter. For instance, play a C-E-G chord and any notes played will be forced to C, E, or G. If no notes are sustained on the control channel, all notes are blocked unless PassThru is set. Quantize looks for the nearest note match in semitones. In case of a tie the quantization is upward.

    • CTRL Knob sets the channel on which quantizing chords arrive
    • QUANTIZE/PASSTHRU Knob can be set to pass notes through
    • Tap the SHIFT button to send a MIDI Panic on all channels (See NOTE)

    NOTE: This script assumes proper Note-ON/OFF behavior of what is coming into it. There's only basic stuck note prevention.
    NOTE: Tapping pads does not set notes, only playing notes on the control channel does this. See Simple Scaler on PatchStorage for screen-interactive custom scales.

  • @nerVe said:

    @McD said:

    Looking to control all the CC parameters on a Fred’s Lab Tooro

    Which one would you like: 1 screen with SHIFT or 4 discrete displays?

    1 Screen with SHIFT would be perfect! Thank you.

    I started building a script to assign knobs to CC’s using the SHIFT button to cycle through the pages.
    The default in the code is for 6 pages of 22 knobs/CC’s each or CC’s 1 to 132 (the standard only goes to 127).

    Mozaic can only run inside an AUv3 Host and I tested a few synths in AUM. There are very few CC’s that actually do much.

    For example:
    CC64 is the sustain pedal
    CC74 is Filter Frequency

    Anyway, here’s the code. Copy and Paste into the Mozaic code window after pressing NEW. Then hit upload and route the script into a synth app or external hardware:

    @OnLoad
    
      ShowLayout 1
      Pages = 6
      Max_Storage = 22 * Pages
      Shift = 0
    
      for index = 0 to Max_Storage
        Storage[index] = index
        // Log {Storage[},index,{]=}, Storage[index]
      endfor
    
      for index = 0 to 21
        Knob = index
        Value = Storage[index]
        // Log {Value=},Value
        Call @KnobUpdate
      endfor
    
    @End
    
    @KnobUpdate
    
      LabelKnobs {Page }, Shift + 1
      ThisKnob = Knob+(Shift*22)
      LabelKnob Knob, {CC}, ThisKnob+1, {=},Value
      SetKnobValue Knob, Value
    
    @End    
    
    @OnKnobChange
    
      Knob = LastKnob
      Value = round (GetKnobValue Knob)
      CC = Knob+(Shift*22)+1
      Storage[CC] = Value
      if CC < 128
        SendMIDICC 0, CC, Value 
      endif
      Log {CC}, CC, {=}, Value
      Call @KnobUpdate
    
    @End 
    
    @OnShiftDown
    
      Inc Shift
      // Log {Shift=}, Shift
      if Shift = Pages
        Shift = 0
      endif
    
      for Knob = 0 to 21
        CC = Knob + (Shift*22)
        Value = Storage[CC]
        Call @KnobUpdate
      endfor
    
    @End
    
  • Looks Great! Should do the trick! Thanks @McD

  • @nerVe said:
    Looks Great! Should do the trick! Thanks @McD

    Cool. Use it to see which CC’s are effective. We can make a version with a precise number of knobs and label each by function name. It will take a lot more statements because you can’t just use “for” loops.

    If you hardware doesn’t like the rapid stream of CC’s we can add a timer to determine when the knobs have stopped moving before sending out a CC.

    There are also extra lines needed to save the last settings for reloading when shutting the daw down.

  • edited April 2023

    edit: new version is finished, 19 knobs for drum sounds. Starting from C2 to C4. Text labels (C2, C#2, etc) and source note numbers (36,37,38, etc) can be changed in the code. You can change target note numbers with the knobs. You can rename the labels into BD, SD, HH, LT, etc. Min-Max is a tool to widen or narrow the range of note numbers for the knobs. So if you only need one octave, or two, you can make the range smaller with these two knobs.

    And if you have figured out after some time, what is needed for a favourite drum kit, you can fixate this in the code. So if bassdrum 36 always need to be 65, snaredrum 40 always 58, you can enter these numbers in the code and save the script with a different name, as a preset.

    edit 2: I have an idea for an improvement. Two rows with knobs, the top row to set the source note number. And the bottom row to set the target note number. That would be really handy. And it starts with blanks, and you only dial in the note numbers you need to change. Maybe a second page with shift, to have access to a wider range. I cannot do that myself, I have no clue how to connect source and target note numbers in such a script.

  • @wim This is great! I love to use note quantizers and often missed an easy way to switch their notes in the past. I've just played with yours, fitting notes from Fugue machines to scales played on sustain mode by Chordpad and it worked very well! Quite melodic and easy! Thank you very much for your work!

  • @rs2000 said:

    Quite an easy thing, actually:
    Add a Recorder or Flexi module and hit REC to record an audio clip up to 60 seconds long.
    Flexi can also be adjusted to record (and stop recording) in sync with your beat so you don't even have to cut start and end of a clip.

    Okay, thanks! I will dive into that too. The beauty of Cubasis for a guitar player is that it has factory midi files for drum tracks, like intro, verse A, verse B, fill. A bit like Easy Drummer on PC.

    Drambo is great too, I have no doubt about that.

  • Thanks @jsmonzani - I'm glad it's useful.

  • edited April 2023

    @wim said:
    @MonkeyDrummer -

    Uploaded: https://patchstorage.com/chord-scale-quantize/

    I might have to do some more robust stuck-note management. But in my head at least it seems like it should be enough. 🤨

    CHORD/SCALE QUANTIZE v0.1 (beta)

    Notes sustained on a control channel set a scale filter. All other notes are quantized to the scale filter. For instance, play a C-E-G chord and any notes played will be forced to C, E, or G. If no notes are sustained on the control channel, all notes are blocked unless PassThru is set. Quantize looks for the nearest note match in semitones. In case of a tie the quantization is upward.

    • CTRL Knob sets the channel on which quantizing chords arrive
    • QUANTIZE/PASSTHRU Knob can be set to pass notes through
    • Tap the SHIFT button to send a MIDI Panic on all channels (See NOTE)

    NOTE: This script assumes proper Note-ON/OFF behavior of what is coming into it. There's only basic stuck note prevention.
    NOTE: Tapping pads does not set notes, only playing notes on the control channel does this. See Simple Scaler on PatchStorage for screen-interactive custom scales.

    Something seems to have broken for me on patchstorage… the download button doesn’t show up anymore… Anyone else ever see that?

    Seems to be an issue with Brave. Grabbed it with Safari.

  • edited April 2023

    to reply on my own subject, I have found the Maparoni script.

    https://patchstorage.com/maparoni/

    This is better. Just play the keyboard, and map a note to a new one. That new note is stored internally in the script. And it seems the altered notes are stored when I shut down Cubasis and re open the project again. I don't know yet what happens when you open an other project with Maparoni as a midi EFX.

    My own script works when you have written down a conversion on paper, and want to fixate this in the code itself as a preset, with the right labels.

  • Not to confuse things further @raabje, but mfxConvert is a really handy utility for remapping notes and other midi messages. With it you can quickly midi learn the incoming notes, and set the converted outbound notes. It also saves in the session and as presets. It doesn't take too long to build up a library of presets that do the mappings you need.

  • @wim said:
    Not to confuse things further @raabje, but mfxConvert is a really handy utility for remapping notes and other midi messages. With it you can quickly midi learn the incoming notes, and set the converted outbound notes. It also saves in the session and as presets. It doesn't take too long to build up a library of presets that do the mappings you need.

    okay, thanks, I bought it. Nice little app, only thing is it is not possible to store presets, something with old code. In AUM a warning message is shown. And in Cubasis there is no option at all to store the settings made. But the app does remember the settings after a close down and re open of a project.

  • wimwim
    edited April 2023

    @raabje said:

    @wim said:
    Not to confuse things further @raabje, but mfxConvert is a really handy utility for remapping notes and other midi messages. With it you can quickly midi learn the incoming notes, and set the converted outbound notes. It also saves in the session and as presets. It doesn't take too long to build up a library of presets that do the mappings you need.

    okay, thanks, I bought it. Nice little app, only thing is it is not possible to store presets, something with old code. In AUM a warning message is shown. And in Cubasis there is no option at all to store the settings made. But the app does remember the settings after a close down and re open of a project.

    Pick Save in AUM, not Save in Plugin.
    Unfortunately the preset won’t be portable to other hosts, but at least you can save it.

Sign In or Register to comment.