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.

New Mozaic Script: Controller Buddy

wimwim
edited April 11 in General App Discussion

I've uploaded a script that may be useful for people who have incremental encoder based controllers, and also has some benefit for regular knob and fader based controllers. What it does is convert incremental (sometimes called relative) encoder output to absolute (0-127) values. This is for use in apps that don't support incremental encoders, such as AUM, and also for hardware.

It also keeps track of the last CC values it outputs, whether from incremental or absolute controllers. This is saved in the host session so that on reload (or on demand) the values are re-sent. This can be used to re-sync hardware devices and such things as the Midi Fighter Twister LED rings. It's not a cure-all for controller support problems, but can be helpful in some situations.

Lastly, it has "snapshots" capability, allowing you to save the current values to one of 16 slots for later recall. This feature can be ignored, but can be useful for doing things like A/B comparisons, saving the current state before experimenting, or invoking settings at various times in a song.

Ironically, my main host, Loopy Pro doesn't need this at all since it supports both incremental encoders and midi feedback. But here it is in case it's of use to others.

This is one of those scripts that's a bit hard to describe in simple terms. Feel free to ask questions or provide feedback!

https://patchstorage.com/controller-buddy/

Comments

  • wimwim
    edited April 11

    This is an extended version of Controller Tracker and Snapshots, which is in turn an extension of Controller Feedback and Restore. It adds support for relative/incremental encoders.

    CONTROLLER BUDDY
    This script focuses on two tasks: Adapting relative encoder ouput to apps that don't support them, and preserving the state of controls between saved host sessions so that the controller and session can be as closely in sync as possible. Througout these notes "relative" and "incremental" are used interchangably.

    BASIC OPERATION

    • There are two available screens. The main view is for setting up the type of controller. The Snapshots view will be explained later. Pressing SHIFT toggles these views.
    • Tapping the first pad cycles through the controller schemes supported.

      • ABSOLUTE is for knobs and faders that send absolute values from 0-127.
      • The remaining INCREMENTAL types select between various schemes encoders may use. You may have to experiment and/or observe the output from the controller to find the best scheme. "Jog (-)" and "Jog(+)" are likely to work with most encoders.
    • As messages are received from incremental encoders, they are converted to absolute values, appearing as basic absolute controller knobs and faders to receiving apps.

    • By default Bank Select messages are not supported. They use absolute values for CC0 and CC32. If Bank Select is needed it can be set with the second button. This will block conversion of CC0 and CC32.
    • The third pad cycles through SCALE factors. Higher values reduce the number of rotations needed from the encoder, at the expense of accuracy.

    STATE SAVING

    • In both Absolute and Incremental modes, the LAST value of every CC, Program Change, and Pitch Bend message is saved. When the host session is saved, these values are too. When the host session is restored, these values are written out from the script to synchronize whatever received them with the script if possible.
    • The current values can also be sent in bulk whenever the DUMP button is set at 64 or greater. Double-tap on the knob will also do this.

    SNAPSHOTS
    Snapshots are an optional feature. You can ignore them entirely unless you have a use for saving and recalling sets of values for later use, such as for A-B comparisons, or to manage settings for different parts of songs.

    • Pressing SHIFT from the main view brings up the Snapshots view. Here you can save and recall up to sixteen snapshots of the current values at any time.
    • The Save, Recall, and Erase buttons work on the currently selected (colored) pad. NOTE: Tapping a pad doesn't act on it. It only arms the pad for the knobs to act upon.
    • Rotate a knob past the middle position, or double-tap it to execute the knob's function. The status of the pad will update to show if there are values stored in it.
    • STORE writes the current values to the pad.
    • RECALL retrieves values, if there are any on a pad, replaces the current buffer, and sends the values out of the script.
    • ERASE removes values from a pad. It doesn't send anything out and doesn't affect the current buffer.
    • DUMP ignores snapshots, it always re-sends whatever is in the current buffer.
  • Thanks @wim! Folks, this is a game changer if you use hardware controllers that use encoders in AUM!

  • I appreciate your generosity, thank you!

  • Thanks for the kind words. 😎

    Version 0.20 adds a Take Over (sometimes called Pick Up) mode for absolute value controllers!
    I've struggled to get this right so many times, so I really hope I finally got it right.

  • wimwim
    edited April 12

    v 0.21 resets take over status on snapshot recall, and (just in case) on dumping the values. This should not affect any knobs that are still in the same position as the previous snapshot, only the ones that have changed since. I hope.

  • I’ve got a controller with encoders and always had trouble with apps like AUM

  • I’m finding a few bugs, mostly cosmetic, and something fishy with the Absolute / Take Over mode. There will probably be a bug fix update tomorrow.

  • Wouaou ! Can't wait to try !

  • Awesome thanks @wim!

  • wimwim
    edited April 12

    I think the bugs are all ironed out. I'm gonna call this v1.0 ... though hoping not to jinx it.

    • v1.0
    • Don't show pickup feedback in snapshots view
    • Show correct pending pickup value
    • Restore pad color for last selected snapshot on view switch
    • Add takeover slop value in @Settings

  • I’m excited to test this out with both my Axiom 61 and TouchOSC workflows, thanks @Wim!

  • @Mouse_SF said:
    I’m excited to test this out with both my Axiom 61 and TouchOSC workflows, thanks @Wim!

    Great. I'm looking forward to feedback about any issues. I've had limited ability to test.

Sign In or Register to comment.