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.

Atom | Piano Roll 2 is now available

1686971737490

Comments

  • edited May 2021

    @wexy said:
    The cc triggers for record and clear seem to change patterns after triggered is this intentional?

    I assume you've mapped to parameters? Then yes, I think, if you've mapped them externally, there's no logic yet for ensuring certain operations have priority over others.

    My recommendation is to either filter the MIDI channels (e.g. use one channel for mapping to the 'record' and 'clear active pattern' parameters, and another for the pattern switching). Alternatively, you can play with the source offset in the pattern switching configuration toolbar to make sure patterns switch in a different value interval than the values used for the mapped parameters.

    @MisplacedDevelopment said:
    It appears that using the raw hold note directly from the control clip is actually a better way of toggling the record option as you can then “hold record” rather than using the note -> PC value from StreamByter which is an on/off toggle and keeps getting into the wrong state.

    As the control note is only being read via AUM for the purposes of AU MIDI Control then it avoids showing up in my recording.

    Indeed. In all situations related to launching or arming, the following rules apply:

    • When arming a clip, if the clip is not yet playing, it will trigger.
    • When stopping a clip, if the clip is armed, it will be disarmed.

    Perhaps this sheds some light on how the various external triggers alter a clip's state.

    @MisplacedDevelopment said:
    @blueveek are there any known issues with PC messages getting missed when sending clip control and pattern switch messages at the same time? My StreamByter note->PC script will not reliably change patterns unless I add 1ms delay to the sending of the pattern switch message.

    Thanks for the helpful diagram. What happens if the clip control note is higher (in "pitch") than the pattern switch notes instead of the way you've set it up?

    @Intrepolicious said:
    Yes, Atom will indeed crash if you have an open project working at the same time one of these beta updates gets automatically installed.

    Haha yeah, I need to time my beta releases so that it doesn't happen when certain Youtubers are streaming :) It's a common issue with AUs, and it would be quite jarring for an update to drop while someone is performing live.

  • Atom 2 noob here so apologies if questions are either stupid or already been answered.. I try to keep up with this thread but the darn thing gets updated that often it is not easy … so… if I have three clips A, B and C and I want to have A play bars 1 to 8, B 9 to 16 and C 17 to 24… then at the moment I am putting 8 empty bars at the start of B and 16 empty bars at the start of C … all of this works fine but does not seem ideal so my first question is obviously

    Is there an easier way of doing this?

    My next questions are possibly enhancement requests (or might exist already) based on how I thought my current process could be streamlined …

    Could the launch options include something that delayed launch by x bars?
    Could the move options be extended to have ‘move selection to end of grid’ and ‘move selection to start of grid’ to get rid of multiple moves of a bar at a time?
    Is there way of renaming an instance of Atom 2 (or possibly any midi instance as this might be an AUM issue) as I find Atom |Piano Roll2 (2:1) @M2:1 etc a bit confusing when multiple instances are loaded?
    Could the Loop feature be enhanced by a Loop n times facility?

    Thanks in advance…

  • edited May 2021

    @GeoTony said:
    Atom 2 noob here so apologies if questions are either stupid or already been answered.. I try to keep up with this thread but the darn thing gets updated that often it is not easy

    No worries. This thread exists for this purpose! (amongst others).
    Compared to some of the insanely creative stuff I see @tk32 doing, that I often didn't think possible, I'm also an Atom 2 noob.

    … so… if I have three clips A, B and C and I want to have A play bars 1 to 8, B 9 to 16 and C 17 to 24… then at the moment I am putting 8 empty bars at the start of B and 16 empty bars at the start of C … all of this works fine but does not seem ideal so my first question is obviously

    Is there an easier way of doing this?

    If I understand your setup correctly, you don't need to place empty bars at the beginning of your clips. Simply keep each clip as 8 bars long (trimming the extra silence you've added at the start) and launch/unlaunch them in order.

    With the default settings, all you need to do is to unlaunch ("stop") clip A and launch ("play") clip B during bar 7. Then, unlaunch ("stop") clip B and launch ("play") clip C during bar 15. And so on. The starting and stopping will sync to quantum and happen synchronously at the start of the next bar.

    Tip: if your clips are on the same column (or assigned the same "track" in the clip settings), use "choke mode: auto" for your clips. Then when you launch clip B, clip A will automatically un-launch. Similarly, when you launch clip C, clip B will un-launch.

    If you want to automate this, you can use an Atom orchestrator to schedule things. See this helpful template: https://patchstorage.com/atom2-internal-sequencer-template/

    My next questions are possibly enhancement requests (or might exist already) based on how I thought my current process could be streamlined …

    Could the launch options include something that delayed launch by x bars?

    Yes! If you long press the launch button, you'l see "trigger beat" and "release beat", which define the quantums based on the host's transport timeline (including AUM – which isn't traditional, but it's there, and you can use it in Atom to your advantage to structure entire songs this way). If you use odd time signatures, you need to do a little math, but everything should sync up perfectly.

    Could the move options be extended to have ‘move selection to end of grid’ and ‘move selection to start of grid’ to get rid of multiple moves of a bar at a time?

    I like this idea, and it would be very simple to add. In the meantime, perhaps using the magic clipboard or using the crop processing features are sufficient workarounds?

    Is there way of renaming an instance of Atom 2 (or possibly any midi instance as this might be an AUM issue) as I find Atom |Piano Roll2 (2:1) @M2:1 etc a bit confusing when multiple instances are loaded?

    Yes! If you're using AUM, long press the clip window's titlebar.

    Could the Loop feature be enhanced by a Loop n times facility?

    No, but I've heard this request a few times, and I agree it would be nice to have.

  • Many thanks @blueveek for the rapid and helpful answers…I think I understand launch process and have tried the trigger beat and that all works as you say. I guess it is a simple (and possibly very specific) form of the automation that I want I.e. wait n bars and then start playing . I would be trying to do other things in the UI e.g. playing GeoShred so want the clips to come in automatically without having to press things. Thanks for the tip re titles…

  • @GeoTony said:
    Many thanks @blueveek for the rapid and helpful answers…I think I understand launch process and have tried the trigger beat and that all works as you say. I guess it is a simple (and possibly very specific) form of the automation that I want I.e. wait n bars and then start playing . I would be trying to do other things in the UI e.g. playing GeoShred so want the clips to come in automatically without having to press things. Thanks for the tip re titles…

    You can use an instance of Atom to launch/sequence your Atom clips. Use one Atom as your master sequencer and other Atoms to hold the clips that make up your piece.

  • @MisplacedDevelopment said:
    @blueveek are there any known issues with PC messages getting missed when sending clip control and pattern switch messages at the same time? My StreamByter note->PC script will not reliably change patterns unless I add 1ms delay to the sending of the pattern switch message.

    Thanks for the helpful diagram. What happens if the clip control note is higher (in "pitch") than the pattern switch notes instead of the way you've set it up? .

    Just tested with pattern triggers in a lower octave and in my so far limited testing this allows me to remove the delay from my script. Thanks for the workaround!

  • @MisplacedDevelopment said:

    @MisplacedDevelopment said:
    @blueveek are there any known issues with PC messages getting missed when sending clip control and pattern switch messages at the same time? My StreamByter note->PC script will not reliably change patterns unless I add 1ms delay to the sending of the pattern switch message.

    Thanks for the helpful diagram. What happens if the clip control note is higher (in "pitch") than the pattern switch notes instead of the way you've set it up? .

    Just tested with pattern triggers in a lower octave and in my so far limited testing this allows me to remove the delay from my script. Thanks for the workaround!

    Great to hear! If this ends up working out, I need to investigate how to make it function the same the other way around.

  • Is there any way to set dark mode on devices stuck on 12.5?

  • Thanks @espiegel123 , a combination of your prompting, @blueveek ’s video and RTFM and I think I have cracked it. A very flexible design…

  • edited May 2021

    @espiegel123 said:

    @Intrepolicious said:
    Oh,I guess I should mention that I’m talking about the launchpad.

    GeoShred onscreen works perfectly fine with atom and records everything!

    GeoSwam requires MPE. So, you need to send notes to GeoShred on midi channel 2 not channel 1.

    I knew about this workaround, but for some reason i cannot get GeoShred to work with my launchpad at all now. (I think I remember using it for this recently?)

    Strangely, the SWAM Brass apps work fine with my LPP and atom records all of it.. and that’s without having to do anything as far as midi channels go.

    Edit: if I use the GeoShred onscreen surface to play it, it does indeed work like it’s supposed to, so it’s between the Launchpad and GeoShred (?) I think.. @blueveek

    I’m trying to utilize the “not having to setup the controller” thing in atom, and be able to control GeoShred with my active atom instance to record to. Does that make sense?

    I’m still getting this:

  • @Intrepolicious said:

    @espiegel123 said:

    @Intrepolicious said:
    Oh,I guess I should mention that I’m talking about the launchpad.

    GeoShred onscreen works perfectly fine with atom and records everything!

    GeoSwam requires MPE. So, you need to send notes to GeoShred on midi channel 2 not channel 1.

    I knew about this workaround, but for some reason i cannot get GeoShred to work with my launchpad at all now. (I think I remember using it?)

    Strangely, the SWAM Brass apps work fine with my LPP and atom records all of it.. and that’s without having to do anything as far as midi channels go.

    The SWAM apps don't require MPE unlike GeoSwam.

  • @espiegel123 said:

    @Intrepolicious said:

    @espiegel123 said:

    @Intrepolicious said:
    Oh,I guess I should mention that I’m talking about the launchpad.

    GeoShred onscreen works perfectly fine with atom and records everything!

    GeoSwam requires MPE. So, you need to send notes to GeoShred on midi channel 2 not channel 1.

    I knew about this workaround, but for some reason i cannot get GeoShred to work with my launchpad at all now. (I think I remember using it?)

    Strangely, the SWAM Brass apps work fine with my LPP and atom records all of it.. and that’s without having to do anything as far as midi channels go.

    The SWAM apps don't require MPE unlike GeoSwam.

    I see. Hmm well, I’ve deselected channel 1 and still no dice. Any ideas?

  • @Intrepolicious said:

    @espiegel123 said:

    @Intrepolicious said:

    @espiegel123 said:

    @Intrepolicious said:
    Oh,I guess I should mention that I’m talking about the launchpad.

    GeoShred onscreen works perfectly fine with atom and records everything!

    GeoSwam requires MPE. So, you need to send notes to GeoShred on midi channel 2 not channel 1.

    I knew about this workaround, but for some reason i cannot get GeoShred to work with my launchpad at all now. (I think I remember using it?)

    Strangely, the SWAM Brass apps work fine with my LPP and atom records all of it.. and that’s without having to do anything as far as midi channels go.

    The SWAM apps don't require MPE unlike GeoSwam.

    I see. Hmm well, I’ve deselected channel 1 and still no dice. Any ideas?

    Put a midi monitor before GeoShred to make sure thr midi is on the channel you think.

    What is the host app?

  • @espiegel123 said:

    @Intrepolicious said:

    @espiegel123 said:

    @Intrepolicious said:

    @espiegel123 said:

    @Intrepolicious said:
    Oh,I guess I should mention that I’m talking about the launchpad.

    GeoShred onscreen works perfectly fine with atom and records everything!

    GeoSwam requires MPE. So, you need to send notes to GeoShred on midi channel 2 not channel 1.

    I knew about this workaround, but for some reason i cannot get GeoShred to work with my launchpad at all now. (I think I remember using it?)

    Strangely, the SWAM Brass apps work fine with my LPP and atom records all of it.. and that’s without having to do anything as far as midi channels go.

    The SWAM apps don't require MPE unlike GeoSwam.

    I see. Hmm well, I’ve deselected channel 1 and still no dice. Any ideas?

    Put a midi monitor before GeoShred to make sure thr midi is on the channel you think.

    What is the host app?

    I’m using AUM at the moment for this. Midi Monitor? Is that an app?

  • Hold on,, I think I know what I have to do.

  • edited May 2021

    According to this midi monitor, the LPP is sending on channel 1. Looking at the LP manual now. I’ll figure this out... I must!

  • @Intrepolicious said:
    According to this midi monitor, the LPP is sending on channel 1. Looking at the LP manual now. I’ll figure this out... I must!

    There are tools like BlueVeek's MIDI Tools or StreamByter or Mozaic that can clone the notes from one channel to another and filter out the events from the original channel.

  • Would be rad to just set the amount of times a pattern loops and auto change like a song mode... using a atom like a controller gets a bit confusing for me to keep track of but I’mglad we can do it as it is very useful

  • edited May 2021

    @espiegel123 said:

    @Intrepolicious said:
    According to this midi monitor, the LPP is sending on channel 1. Looking at the LP manual now. I’ll figure this out... I must!

    There are tools like BlueVeek's MIDI Tools or StreamByter or Mozaic that can clone the notes from one channel to another and filter out the events from the original channel.

    Ah, I remember reading something like that. So I’ve got to figure out how to use those. I guess Mozaic is the one I’d be most familiar with. Is there a preferred patch for this on PS?

    Edit: I just purchased Victor’s Midi tools also.

  • @reasOne said:
    Would be rad to just set the amount of times a pattern loops and auto change like a song mode...

    I’ve just been using notes to change patterns (in AUM) and you can easily set the amount of times patterns loop and/or change with your master atom note conductor.

  • edited May 2021

    @espiegel123 said:

    @Intrepolicious said:
    According to this midi monitor, the LPP is sending on channel 1. Looking at the LP manual now. I’ll figure this out... I must!

    There are tools like BlueVeek's MIDI Tools or StreamByter or Mozaic that can clones the notes from one channel to another and filter out the events from the original channel.

    Ok so come to find out, I actually have StreamByter as well, but I think @blueveek ’s Midi tools look like the most elegant solution.

    Now, help me out guys, I think I’m getting close. I have the midi going through the “Clone and Filter” plugin, but what all am I supposed to turn off or leave on? So far it’s been semi successful as I can now play a few Geosax notes with my Launchpad, but it quickly starts changing GeoShred’s presets and stuff, so I’m not quite there yet... Almost!

    Once I figure out how to properly filter the mpe midi where I can play my GeoSWAM saxophone with my Launchpad, I should then be able to route it into Atom for recording. Right?

    So Here’s where I’m at. In the video, you can’t see, but the sax sounds you start hearing are being triggered by the pads on my Launchpad Pro MK3.

  • Atom2 is the glue. Short or long form, simple or complex. I’ve yet to find it lacking. It’s lightweight, which is great when I’m using to in clip/session launch mode with the LPX.

    Only suggestion I have is this: if you find adding more and more features starts to overly complicate the layout/feature set or increases memory requirements, please create an Atom3 and leave Atom2 pretty much as is. Just a thought. Peace.

  • wimwim
    edited May 2021

    @Fingolfinzz said:
    Is there any way to set dark mode on devices stuck on 12.5?

    Nope, but with Atom 2 you can use a custom stylesheet with dark colors even in light mode. I did one awhile back that took some of the edge off of the light mode colors, but that was back before I really knew what I was doing. Someone might have a better one they can post. Or, I might take another look at mine, polish it up, and put it on patch storage.

  • I have a few solutions to this already outside of Atom but I would like to be able to write an internal Atom filter on note length and velocity which is applied to either the notes as they arrive or to those already recorded. For example, if a note duration is less than a certain number of ms then ignore it on the way in, or the other way would be to query the properties of each already recorded note and programmatically delete those matching some criteria.

    This would be used for cleaning up the output of MIDI guitar, where you inevitably end up with little ghost notes all over the recording.

    Would the API in its current state let me do either of those things?

  • You could maybe use Mozaic to not output those notes from MG I might look at this myself

    @MisplacedDevelopment said:
    I have a few solutions to this already outside of Atom but I would like to be able to write an internal Atom filter on note length and velocity which is applied to either the notes as they arrive or to those already recorded. For example, if a note duration is less than a certain number of ms then ignore it on the way in, or the other way would be to query the properties of each already recorded note and programmatically delete those matching some criteria.

    This would be used for cleaning up the output of MIDI guitar, where you inevitably end up with little ghost notes all over the recording.

    Would the API in its current state let me do either of those things?

  • @wexy said:
    You could maybe use Mozaic to not output those notes from MG I might look at this myself

    @MisplacedDevelopment said:
    I have a few solutions to this already outside of Atom but I would like to be able to write an internal Atom filter on note length and velocity which is applied to either the notes as they arrive or to those already recorded. For example, if a note duration is less than a certain number of ms then ignore it on the way in, or the other way would be to query the properties of each already recorded note and programmatically delete those matching some criteria.

    This would be used for cleaning up the output of MIDI guitar, where you inevitably end up with little ghost notes all over the recording.

    Would the API in its current state let me do either of those things?

    @wexy Yeah, a while back I wrote a Mozaic script which did this so it is certainly possible to do outside of Atom. I was looking to have something inside Atom where I suspect note properties (duration, velocity etc) are already reliably calculated for me so I would only need to write the filtering logic. Being able to apply that logic to notes on the piano roll would also allow me to visualise the filtering and tweak it if it was removing too many/not enough notes from the recording.

  • @reasOne said:
    Would be rad to just set the amount of times a pattern loops and auto change like a song mode... using a atom like a controller gets a bit confusing for me to keep track of but I’mglad we can do it as it is very useful

    Yes, indeed. There's a "state machine" idea sitting somewhere in my notes, and maybe I'll get to it at some point.

    @carvingcode said:
    Atom2 is the glue. Short or long form, simple or complex. I’ve yet to find it lacking. It’s lightweight, which is great when I’m using to in clip/session launch mode with the LPX.

    Only suggestion I have is this: if you find adding more and more features starts to overly complicate the layout/feature set or increases memory requirements, please create an Atom3 and leave Atom2 pretty much as is. Just a thought. Peace.

    You have my word that no added feature will degrade performance. In fact, I'm hoping that over time, things will speed up based on Apple's work on their widgetry system and my work on improving various various parts of the app.

    @MisplacedDevelopment said:
    I have a few solutions to this already outside of Atom but I would like to be able to write an internal Atom filter on note length and velocity which is applied to either the notes as they arrive or to those already recorded. For example, if a note duration is less than a certain number of ms then ignore it on the way in, or the other way would be to query the properties of each already recorded note and programmatically delete those matching some criteria.

    This would be used for cleaning up the output of MIDI guitar, where you inevitably end up with little ghost notes all over the recording.

    Would the API in its current state let me do either of those things?

    No, the scripting API isn't as flexible yet. But there's really no reason for these limitations other than "there's no consumer for them yet", so perhaps if you elaborate on what additions to the scripting API you would need, and what you'd like to build with them, then I can think about adding them. Specifically, some of the stuff I'd really like to support is building custom arpeggiator and, in general, note processing scripts, but I'm a little worried about overlap in functionality with Mozaic. Keeping everything under one roof would be nice however, so I'm tempted to dismiss the idea.

  • edited May 2021

    A sneak peak at the upcoming "16 tracks in a single instance" support (if you don't care about MPE).
    Since the underlying engine already allowed it, I thought to finally officially make it a user-facing feature.

    A few nice things:

    • Multiple channels can be edited at the same time.
    • Channels can be "locked", just like Photoshop layers can be locked.
    • Multi-channel functionality supports 3 modes: MPE, Filter and Funnel. More on those in the upcoming manual update.

  • Hi, i uploaded several note display styles to PatchStorage:

    Most of the uploaded zips contain two or three CSS files to switch between original theme color, pitch color or channel color. The styles work with dark and light theme.

    .

    The top of each of the css files features easy to change configuration settings (no CSS knowledge needed) - just edit the given values using an IOS text editor.

  • @_ki said:
    Hi, i uploaded several note display styles to PatchStorage

    Wow, this stuff looks incredible!

Sign In or Register to comment.