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 StoreLoopy Pro is your all-in-one musical toolkit. Try it for free today.
Question about Scenes Template
Hi @espiegel123,
In your scenes template, can you remind me where specifically you do some dynamic stuff with setting the bar length...I believe you set a dynamic bar length based on the first recorded clip, ya?
Anyway, can you point me to specifically where this is done, please...Thanks
Comments
I am not sure what you mean by dynamic bar length. The project uses record count-in/out of master. The independent clips have a count-in/out of 1 bar.
Take a look at the orange follow actions and let me know if you have questions about their impact and how they work.
If you disable record auto count-out on the first clip of a project with all other clips empty, the master clock length and the tempo will initially be set to whatever Loopy detects as the number of bars in that first clip.
That might be a breaking change for that template though. I haven't tried it.
The project in question doesn’t use auto count-out.
Okay, thanks @espiegel123, knowing those follow actions were there was helpful, I had stumbled on those previously and wanted to review, thanks.
The issue I'm trying to fix is likely something I introduced when extending your template, but perhaps if I describe it, your familiarity with how the core of the template works, might give you some ideas of what might be wrong.
I've got 5 scenes/rows.
If I'm in Nav mode and I'm on row 5 of my current project (based on my extension of your template) and I hit the A button to wrap to row 1 and then hit the B button right afterwards (in rec if empty mode, but there is content in all the orange clips in every row) then row 1 is queued up as expected and is awaiting the completion of the longest clip in row 5 to start playing...but if before row 5 longest clip completes, I change my mind and decide to play row 2, so I hit the A button again, then follow immed by B button press, then row 2 get queued up but it will start to play before the row 5 content fully completes (all the play groups are set up to be mutually exclusive), in fact row 2 content starts playing at the same time as row 5 content is finishing up, so they are playing concurrently for a period of time.
But in the above scenario, if after I've hit the A button the first time (to move the radio button selector from row 5 to row 1) if I do not hit the B button to queue up row 1 to play, but instead hit the A button again to get the selector to scene 2 (so basically just press the A button twice, w/o hitting the B button), and then now that the radio button selector is on scene / row 2 I then hit the B button, then row / scene 2 queues up and the quantization works as I'd hoped/expected and scene 2 doesn't start to play early, it starts playing after the longest loop in row / scene 5 is complete.
Any idea what might be going on or what to look for?
Thanks
@danm: some troubleshooting to try
Thanks @espiegel123.
Testing this out and here’s what I’ve done:
Downloaded latest version of your template from wiki and imported some similar content as to what I’m using in my other project, where I’m seeing the issue.
Went through some similar steps and I am seeing the same thing
Here are the steps and a video showing the steps:
At this point, instead of Scene 4 finishing all the way, Scene 1 play group starts to play early and plays at the same time as Scene 4 (although it appears one of the clips in Scene 4, the lime one, stops prior to the others in that play group)
Link to video:
https://www.dropbox.com/scl/fi/g4dr7gxc5gsoklwloabt2/ScreenRecording_01-11-2026-11-19-13_1.mov?rlkey=38gfwmzwphpugxkazohf8edqc&st=p7u4qyvb&dl=0
@danm : thanks for the video and report. it looks like you found a bug related to triggering mutually exclusive groups once count-in’s/outs are already in progress between mutually exclusive groups. The same thing happens if you just use touch on the clips and trigger in the same order.
It seems to only happen when clip lengths in the group are varied and you trigger a group while there is already a transition happening between two other groups.
I’ll add it to our to-do list. If it is something you do frequently, you may want to add some protection against that by cancelling in/out actions …though those have potential drawbacks.
@espiegel123, thanks...I do this often, so hope I can figure out a workaround in the near term or you might be able to suggest one or two in addition to the above with which I can experiment...or if you can try one out quickly on your latest template that you think might be good, I'd be very interested to hear what you find/recommend and any caveats
Also, what is the potential drawback of using cancel in/out actions in this case
Thanks
@danm: the potential drawback of putting cancel in/out in front of every trigger is if there are times where you have other clips queued whose count-ins/outs you don’t want to cancel.
Out of curiosity, is this happening because you have accidentally queued a scene to play of because you have changed your mind about what you want to play next?
@danm : if you find yourself doing that a lot, you might want to add a dedicated cancel button that you can trigger as needed when you change your mind about what you wanted to trigger.
@danm : it seems like this only happens if you
Ya, it's something I do often and hoping for a bug fix soon, but in the meantime, will try to figure out a workaround...Can you remind me where to find 'cancel pending actions'...was going to experiment with some things to see if i can come up with a workaround, but cannot find this action anywhere, can you remind me where to find it, please...Thanks
You want “cancel count-ins/outs” for this not “cancel pending actions”.
Wherever you can add actions, there is a search field. Type ‘ca’ in the search field.
You can also use browser’s search to search the manual.
I can’t promise there will be a fix soon.
Is this happening because you are changing your mind about what what you want to queue or because something accidentally becomes queued and you need to course correct?
I have been doing this, but realize now why it's not been showing up, it's bc the action was press/release...so it's not available on that action I guess...Any thoughts on how to use press (vs press / release) for triggering "A" and "B" buttons... so I can potentially use then experiment with the cancel action
or perhaps I'll need to find another way
Thanks
You probably don’t want it tied to the press/release actions on the pedalboard. They send midi messages that do different things in different contexts.
I am not advising this, but if you have a button that has a press/release gesture and you want actions that are not of a type that maps to press/release, you can either separate actions into press and release gestures or add actions to press or release.
Is this happening only when triggering rows for playback or are you changing your mind about what you want to trigger during recording, too?
If it is just during playback, you could put cancel count-in/outs as the first action of the scene buttons and use Direct Play mode instead of Nav mode.
The other simple solution is a dedicated cancel button.
There are ways to deal with it.
Only on playback! As for direct play mode,
I never use direct play mode bc I am playing back song parts in loopy pro and also playing guitar/singing over top, so when doing this I always want as simple an option to "play the next scene" as possible, as opposed to what I think I'd have to do in direct play mode, which is having to keep track of which scene is playing and having to hit the correct button to get to the next scene (at the same time as I'm playing guitar and singing)
Am I correct in terms of how direct play mode would work or am I missing something
Also, if you wouldn't mind explaining how you'd create and exactly when you would press the "dedicated cancel button" option, I'll consider that too
Thanks
Creating a dedicated cancel button would be creating a widget whose only action is Cancel Count-Ins/Outs. Trigger if any time you want to cancel a scene queue.
The project could be modified so that holding A triggers the row or maybe advances the row and triggers it. It would probably require adding a dial or radio button group to track the current row and when activated would play its group.
To do that you would add a dial with one step per scene. State Feedback set to first action. Perform action on activation. The steps would have a first action to select the radio button on the first page (the point of the action is just so that the dial will stay in sync with the row selector. The second action would be to play the row
Then you could add a hold action (with defer on) for cc20 in nav mode that does the same thing as cc20 on plus activating the dial that got added. You could add cancel in/outs to that binding too before triggering the scene dial .
@danm : i am attaching a quick implementation of what I explained… I suggest trying to do it on your own and use the project if you get stuck.
There is one new dial on the nav page and one new binding in the partnavmode control profile.
Thanks @espiegel123. The implementation I'm most interested in is the one that "advances the row and triggers it" is that the one you implemented and shared, above?
Also, can you help me understand how this would avoid the bug I found earlier...seems like we'd get into the same situation, since a) all my orange loops in each scene always have content in them upon playback and b) "advances the row and triggers it" is equiv in this case to "press/release button a and then button b", which is what I was doing originally that was surfacing the bug...so how would this work around that bug exactly?
Thanks!
As I said earlier “You could add cancel in/outs to that binding too before triggering the scene dial .”
I am still curious, are you changing your mind about what you want to trigger or cancelling something you accidentally triggered?
Thanks @espiegel123, the answer is:
Changing my mind.
Thanks so much for sending a sample project, that's really great, appreciate it!
can you explain what flow it is you sent in your sample, exactly, since you had mentioned several suggestions.
just want to make sure I understand what it is you sent and hoping it's the "advances the row and triggers it" flow in a way that avoids the bug, but just let me know
Sorry if it sounds like I haven't read your long post above in its entirety yet, but I haven't...I plan to go through it line by line in detail and try to understand all the things you are describing and sharing via screenshot soon.
I see that you said "“You could add cancel in/outs to that binding too before triggering the scene dial", but until I've spent the time to go through your post and understand each part, it's not something I can comment on or feel I understand yet
Thanks again
@danm wrote:
“can you explain what flow it is you sent in your sample, exactly, since you had mentioned several suggestions.
…Sorry if it sounds like I haven't read your long post above in its entirety yet, but I haven't...”
After you have read the posts carefully and looked at the two changes I made (one dial added and one binding), let me know if you have questions. I described them in the posts.
Okay @espiegel123, I've been studying for a bit. Thanks for the sample.
Is it correct to say that if I always want the semantics of pressing button A to do "advance the row and trigger" (vs just advance) then I can swap in the action you've added to this project for "cc20, hold" to also be for cc20, on.
Or if I wanted a separate button to do this, then I could add a new button with "press" action to do what you're doing for cc20, hold and that button could be called "Trigger Next" or something like that
Does that seem reasonable as a workaround for the discovered bug so we could:
have a new button that would advance the row AND trigger the play group and avoid the discovered bug since the addition of the cancel count ins/outs and the new step dial
A) Still have pressing button A advance the row and
Thoughts?
Thanks
If that is the workflow you want, go for it.
@espiegel123, I'm working through trying to get this functioning in my updated template and some things I'm wondering about:
When tapping on different buttons in the radio grid (CurTarget) on Page A directly, if state feedback in the new scene step dial is set to "Disabled", would the value of the dial be getting updated, but the dial would not visually show that ... or would the value not be updated
Also, can you clarify, when I tap manually on the CurTarget radio grid, what causes the new scene step dial to stay in sync with those manual taps / selecting diff radio buttons
Finally, I noticed that there's an additional action (DESELECT) in Button 5 of the CurTarget radio grid that you appeared to have added at some point, can you explain that, wondering if I should add that to my projects and if that was added at an earlier date (but after the version of the project that I extended) for another reason
Thanks
I believe I figured out the answer to the first 2 questions that I asked in the prior post, here:
https://wiki.loopypro.com/Stepped_Dials
Given how confused I've been in the past by aspects of stepped dials since they were enhanced in 2.0, I've pretty much avoided implementing them myself...Anyway, I think based on some of the debug work I've been doing on this template and re-reading the manual and wiki based on this context, I think I understand the semantics a lot better now.
Can you tell me what isn’t clear about how stepped dials work? The manual was updated not long ago to clarify some issues…also you can use your web browser’s search capability to find “state feedback” in the manual. At least one of the mentions covers this behavior.
If you can tell me what isn’t clear, I can try to describe it differently. I am also about done with a tutorial project for dials.
To see how state feedback relates to the new dial, make a copy of your project and put a copy of the dial on the main page. Make sure state feedback is set to first action (pasting dials sometimes doesn’t preserve the setting).
Now tap on the tow tow selector and see how the dial updates to reflect tue state. Disable feedback and notice that the changing the row selector has no impact on the dial.
@espiegel123, sounds good, thanks. Also, are you able to answer this other question, from above:
Finally, I noticed that there's an additional action (DESELECT) in Button 5 of the CurTarget radio grid that you appeared to have added at some point, can you explain that, wondering if I should add that to my projects and if that was added at an earlier date (but after the version of the project that I extended) for another reason
The deselect action is to ensure that the row5 profile is disabled when the row becomes de-selected. I can't recall the details of why that was needed. You would only need it if you find that the independent row's profile is sometimes enabled even when the row isn't selected.
I see... one of the enhancements I made to your original template was to add more columns (couple with midi clips) and another row, so I have 5 rows of mutually independent song parts/scenes and actually rarely use the indy group at the bottom...I'm thinking, then, that I would not want to add this deselect action, esp if you're not sure it's nec anyway...Thanks @espiegel123