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.
State feedback on buttons sending MIDI
I have six buttons in Loopy Pro that I’ve set up to bypass/enable MIDI nodes in AUM. Each node routes MIDI from one of two hardware keyboards to one of three synths hosted in AUM. (2x3 = 6 nodes.) They work. I can turn on/off any of the synths from LP. (This is a button group; not radio buttons.)
Question: How do I make it so the buttons light up to show the on/off state? Example: I press button #3 to enable Zeeon to receive from my QuNexus keyboard and the button glows; push to bypass and the button goes dark.
I’ve dug into all the info I can find on feedback state and can’t find the trick. I turned feedback on for AUM in the control settings.
My goal is to design an LP setup for live performance where I can do everything from one screen. I’m aware that I could host the synths in LP but I’ve been using AUM for six years and I have all my synths and effects working there and don’t want to start over now. I port the main output into LP for looping and output to speakers.
Comments
State feedback doesn't apply here--it only applies to things whose state Loopy knows. AUM doesn't communicate back to Loopy the state of the synths it is hosting. You can sort of fake it using the trick mentioned here:
https://wiki.loopypro.com/Tech_Note:_Persistent_Send_MIDI_Widgets
For more info about state feedback, see:
https://wiki.loopypro.com/State_Feedback
Short answer: you need to set up a workaround. Place a dummy widget of the same type on a page you won't normally view. Add an additional action on the original widget to adjust the dummy widget.
Explanation: Widget states only reflect the state of what they're controlling. If that's something Loopy can track such as a mixer position, AU parameter, clip state, etc, then they have something to key off of to show their state. A midi message that goes off who knows where has no way of knowing what state that midi message puts anything into, so there's nothing to key off of. The dummy control gives it something to key off of, and also gets stored with the project.
I think an option to have midi sending widgets reflect and remember the last sent value would be good, but it can also be misleading. There's a feature request about this on the roadmap site somewhere.
Keep in mind that midi send actions don't automatically dump themselves out to external destinations on session load. Now that I think of it, I've never tested if that's the case with this dummy setup. Be sure to test whether the dummy widget setting the real widget on project load results in midi out. I suspect it may not.
Thank you for this. I’m not surprised that what I want isn’t supported. I though maybe I was missing something.
I tried a workaround but can’t quite get it to work. I tried setting up a dummy dial with two steps, on and off, and then triggering that with a button. I can get the dial to switch, but the button doesn’t reflect the state. Persistence between projects or sessions isn’t critical. I just want buttons that reflect the last push—on or off.
Can you please suggest what actions and settings I use to achieve this? I’m familiar with the action programming, but this workaround is stumping me. Thanks in advance.
In the App Store version, there is a bug regarding button’s reflecting the states of stepped dials and radio groups. Why not use the dial itself to see the state? You can set it to advance on press (turn wraparound on) so that it will act like a button.
My suggestion is to always use the same type of widget for the dummy control as for the real one. I don't know understand the advantage of using different kinds of controls such as dials. That said, I haven't done any more than quick tests of this workaround. There could be advantages that I don't know of.
I think I got it. At least with a single dummy pair. I programmed a button to trigger a two-step dial. I didn’t use toggle, but a two-stage action, one that trigger Step 1 (off) and another that triggered Step 2 (on), and set the timing to “Next trigger.” That toggles the state on the button. Now I have to see if I can combine that with the sending of the MIDI signal out to AUM. Then I do it six times.
I'm curious why you chose a dial rather than a button. That just seems like a needless abstraction and more trouble to set up, test, and debug. I assume you have a reason, so I'm interested to hear.
No reason. I’m just flailing here. I took Ed’s suggestion above: "Why not use the dial itself to see the state?”
But I can’t get it to work when combined with the MIDI out. I’m going to start over with a button. I’ll post my next effort, whether successful or not.
Feature request: An action for triggering colors. If I could set up a very small button that is triggered to toggle red/green, for example, I wouldn’t be attempting workarounds. If you could trigger a text widget to change color, imagine all the ways you could signal what’s happening in a complicated setup.
Upvote here. https://roadmap.loopypro.com/feature-requests/p/as-action-make-widget-change-color-code-example-from-color-green-to-color-purple
Can you post screenshots of the setup of the dial that isn’t working? they have the advantage of being persistent and being able to see their state. If you are sending midi as the only action, you probably should turn state feedback off.
I got the buttons to work. By accident. I’ll post my solution when I get it cleaned up.
I deleted the dial but I’ll see if I can resurrect it from a saved point.
I got the buttons to work as I wanted. An array of six buttons triggers another set of buttons (a grid) that send the actual MIDI to AUM. The buttons reflect the last action—glow for on, off for off—and they’re on my performance page. The grid is hidden on another page.
From my flailing I accidentally discovered that it only works if I have each button respond simultaneously to a press and a toggle. See the image. Maybe you can explain why this is necessary; it didn’t work with a press only. But for now I’m happy to get it to work. If there’s a simpler, more elegant way to achieve this, I’d like to know.
I got a dial to work to trigger the same buttons—one dial per button, so six dials. But I don’t see why I need that. State saving is not a concern, at least not now.
@ThinAirX : re-reading what you want, I'd advise a slightly different approach. Both involve stepped dials.
The simplest version is to forego buttons entirely. Use one 2-step button per midi message. Once you have made one dial, you can just copy/paste and update the midi message. Step 1 would send off and have the name off and step 2 would be called in and send the on message. Set the press action for the dial to be nudge 1 with wraparound. This will toggle the dial when tapped. You can then have a "send all" button that retriggers each dial. You can have a load project follow action that triggers "send all".
Variant with "leds". If you really want LED indicators use sliders shrunk to their smallest size (a small square) instead of buttons. Set the press action of the slider to toggle the slider value between its min and max values. Set the value change action to set the value of the corresponding dial. Tapping the slider will act like a toggle.
I am uploading a project demonstrating these techniques.
here is a video demonstration
Thank you for this, Ed. I did get the dials to work like that, but I want something more visible than the tiny off/on indicators on the dials.
The slide-as-button trick is brilliant. I’m going to use that in a few places.