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.
Comments
I think since there's a good enough workaround I'll take a pass on that. Someone else might be interested in expanding on the original though.
Hey, thanks! This looks promising; will give it a whirl if wim’s script doesn’t work out.
OK, gave this one a test drive and put my own data in the script and BOOM! It works perfectly! Thanks a bunch as this is going to make it so much easier for me to remember where I am in my musical noodlings.
That’s cool. Thanks for listening.
@Ki I just got your email (replied). I certainly didn't mean to insult you by offering some kind of payment, I'm sure your skill and effort is worth far more than what I'd be able to offer. I'm just glad you find the challenge interesting enough to look into. Coffee and Beer whenever we might find ourselves in the same country! If you make it to Cleveland, Ohio let me know!
I'm going to try and answer your questions and provide more direction. I'll shoot some new video of my updated iPad synth rig to make it more clear on how I use it on a gig.
I use a Godin Multiac ACS guitar and I feed it's 13pin output into a Fishman Tripleplay via a home made adapter. Here's a link to an old video that I recorded when I first cobbled this system together (before adding Mosaic) This pedal board is normally on the floor, controlled by my feet. I just put it up on a stool for the video.
Volume for each midi channel would ideally be like a volume knob on a guitar or a fader on a mixing board 0-100%. I wouldn't be changing the individual string volumes by hand while playing. AUM/Mosaic has the ability to save presets and I call them up via midi from my foot pedal as needed. I do this currently to call up presets that mute midi channels, this allows me to have bass on just the bottom 2 strings, then hit a foot switch and have bass on 4 strings etc... I would use the same system to call up different preset tunings, or call up a preset that has bass at 100% volume on the 6th string, 80%on the 5th, 60%on the 4th, 40% on the 3rd, 20% on the 2nd, 10% on the first....
Today I'm grateful that this crazy world we live in still has people like you in it! I will get more info and updated video relevant to this situation up as soon as possible.
I'm going to have to shoot some video showing how I use it. You don't have to worry about how many tuning or volume settings to incorporate, as that can all be handled by saving as a preset in AUM/Mosaic . So long as each mid channel can be set to transpose independently, and set to have have different volume (or velocity reduction) independently, then once I get a setting that I like, I can save it as a preset to be called up by my foot pedal. My Antares pedal does alternate tunings for the guitar, and I'd like the synth to match those tunings. One application would be if I hit a Gmajor tuning on the Antares pedal, it would send midi to AUM/Mosaic that would call up a preset matching that tuning on whatever synth I happened to be using.
@erol
Loading different presets using AUMs midi control should work in the most cases - the only drawback i can imagine is that you never should change scripts/presets while a note is still active - otherwise you will produce hanging notes !
I just tested this ‚problematic behavior’ with AUM / Mozaic / current version of the midi guitar helper script. The script manipulates the note-offs to match the transposition of corresponding note-on, but for a freshly loaded script there are no active notes, so a note-off on the input will be discarded.
Switching between configurations handled inside the script doesn‘t have this problem. In the simplest form, there are 8 base presets are remotely switchable by assigning a command (note/CC) to the pad8 - pad15 AUv3 parameters.
A different, brute-force solution could be to ‚spam‘ the output with all possible note-offs (128 * 6 channels) during the scripts initialization. But some synth don‘t like superfluous note-offs... so i don‘t want to implement this work-around.
A request to @_ki ... hi please could you have a look at your smart chord bass preset, so it state-saves? Kudos for that, thank you, all the best, ## ...
edit: using it here with '2note: 3' in nanostudio2, greetings
@ccs2 🤪 Aaaaaaaa - i just had a look at the source and it‘s a simple typo. The „if Unasssigned“ statement in the OnLoad tested for a variable that was never assigned, therefore the test will always be true and the default settings are applied even if a state was stored. It should test for „extraWindow“ instead of „window“
I just uploaded a fixed 1.2 version (after checking that state saving is working now). Thanks for reporting!
there you go
thx (:
@ki
I use a Godin Multiac ACS. It has a 13 pin output (Roland systems use) that carries the 6 individual analog string signals. I built an adapter to feed those signals into a Fishman Triple Play unit which does the pitch to midi conversion. Midi is sent the soft synths loaded into AUM on an iPad mini 4th gen iOS 14.6.
A simple volume knob for each channel or a fader as on mixing console would be best, it could just go 0-100%.
I don't think there's a need to pre-program the tunings. If the ability to adjust pitch and volume on each channel exists, I would just create the tuning and string volumes I need, and then save it as a preset in AUM/Mosaic. I would then trigger that preset via a midi message from my foot controller. I'm going to make a video of how I do it currently to clarify how I use this.
THANKS A TON for taking a shot at this! You Rock!
The mute is simply to filter out midi from the strings that I do not want to activate a synth. For example, using my foot controller, I would trigger a preset at the start of song where I only want midi notes sent from the 5th and 6th string to go to my bass synth in AUM. Mozaic currently does this. But it does not allow transposition of an individual midi channel, or to adjust volume of an individual midi channel. Currently transposition is global and effects all strings equally
You lost me here. It sounds like a cool idea for automated electronic music, but I'm just in need of simple individual transposition and sensitivity settings that can be turned on or off via a foot controller.
In my case, I would just want to adjust the volume of each string for a given midi instrument. Probably click the desired preset at the beginning of a song and leave it there.
>
I don't see the need here? It seems I could save my presets within AUM/Mosaic and then assign them to be called up via midi from my foot controler. I'll make a video to show how I currently do this.
@ki
Here's a video trying to clarify how I would like the Midi Filter and Transpose script to function. Allowing me to change guitar tunings quickly by calling up presets via my midi pedal. https://youtu.be/8xB8w9ZdwY4
Hi,
I’m sure this has been answered, so excuse me in advance…
How do you organize scripts presets in Mozaic?. All the one I download seem to end up in “User patches” and I’d like to reorganize them.
Thanks!.
Alrighty. In an effort to streamline things, I want to see if I can make a Mozaic script for sending program changes to my Elektron boxes. I'm not sure, though, if what I want to do is possible.
Each of the 16 pads in Layout 2 would be for patterns 1-16 in a respective bank (A-H). Banks are chosen via one of the 4 knobs on the layout. I can easily assign 16 pads to specific patterns, but is there a way to get them to scale with the knob?
Example: Knob position 1 would let me choose banks A1-A16 from the pads, position 2 would give me banks B1-B16 from the pads, and so on. Here's what I've come up with so far, but it's obviously not working as I'd like or I wouldn't be here asking!
Also, I know there's probably a way to condense all of this, but I still get hella-lost in this stuff (and I'm just copying and editing code from other scripts I've made or have).
Oh, and for some reason, when I try and use this in AUM, it's sending everything out on channel 16, not 15. Can't figure out why.
//SetPrgmchange to Ch15
@OnLoad
ShowLayout 2
LabelPad 0, {01}
LabelPad 1, {02}
LabelPad 2, {03}
LabelPad 3, {04}
LabelPad 4, {05}
LabelPad 5, {06}
LabelPad 6, {07}
LabelPad 7, {08}
LabelPad 8, {09}
LabelPad 9, {10}
LabelPad 10, {11}
LabelPad 11, {12}
LabelPad 12, {13}
LabelPad 13, {14}
LabelPad 14, {15}
LabelPad 15, {16}
LabelKnob 0, {Bank}
LabelKnob 1, { }
LabelKnob 2, { }
LabelKnob 3, { }
LabelKnobs {Bank}
LabelPads {Patterns}
SetShortName {ElkPtrn}
@End
@OnLoad
default_knob_channel = 15
default_knob_value = 0
default_pad_channel = 15
default_long_press_time = 250
Call @Init
@End
@OnKnobChange
if LastKnob = 0
val = GetKnobValue 1
settings = Round TranslateScale val, 0,127, 0,7
setting = GetKnobValue 1
SendMIDIBankSelect 15, setting
Endif
if LastKnob = 1
Endif
if LastKnob = 2
Endif
if LastKnob = 3
Endif
@End
@OnPadDown
If LastPad = 0
SendMIDIProgramChange 15, 0
Endif
If LastPad = 1
SendMIDIProgramChange 15, 1
Endif
If LastPad = 2
SendMIDIProgramChange 15, 2
Endif
If LastPad = 3
SendMIDIProgramChange 15, 3
Endif
If LastPad = 4
SendMIDIProgramChange 15, 4
Endif
If LastPad = 5
SendMIDIProgramChange 15, 5
Endif
If LastPad = 6
SendMIDIProgramChange 15, 6
Endif
If LastPad = 7
SendMIDIProgramChange 15, 7
Endif
If LastPad = 8
SendMIDIProgramChange 15, 8
Endif
If LastPad = 9
SendMIDIProgramChange 15, 9
Endif
If LastPad = 10
SendMIDIProgramChange 15, 10
Endif
If LastPad = 11
SendMIDIProgramChange 15, 11
Endif
If LastPad = 12
SendMIDIProgramChange 15, 12
Endif
If LastPad = 13
SendMIDIProgramChange 15, 13
Endif
If LastPad = 14
SendMIDIProgramChange 15, 14
Endif
If LastPad = 15
SendMIDIProgramChange 15, 15
Endif
@end
@OnPadUp
If LastPad = 0
SendMIDIProgramChange 15, 0
Endif
If LastPad = 1
SendMIDIProgramChange 15, 1
Endif
If LastPad = 2
SendMIDIProgramChange 15, 2
Endif
If LastPad = 3
SendMIDIProgramChange 15, 3
Endif
If LastPad = 4
SendMIDIProgramChange 15, 4
Endif
If LastPad = 5
SendMIDIProgramChange 15, 5
Endif
If LastPad = 6
SendMIDIProgramChange 15, 6
Endif
If LastPad = 7
SendMIDIProgramChange 15, 7
Endif
If LastPad = 8
SendMIDIProgramChange 15, 8
Endif
If LastPad = 9
SendMIDIProgramChange 15, 9
Endif
If LastPad = 10
SendMIDIProgramChange 15, 10
Endif
If LastPad = 11
SendMIDIProgramChange 15, 11
Endif
If LastPad = 12
SendMIDIProgramChange 15, 12
Endif
If LastPad = 13
SendMIDIProgramChange 15, 13
Endif
If LastPad = 14
SendMIDIProgramChange 15, 14
Endif
If LastPad = 15
SendMIDIProgramChange 15, 15
Endif
@end
@end
It’s sending on channel 16 because you’re telling it to. Midi channels 1-16 are referenced as 0-15 in Mozaic. Weren’t you trying to do this in TouchOSC?
Riiiight. Good lord. I'm interested in learning this stuff, but I do it so rarely that I forget certain things, then don't realize I've forgotten them... kind of like my 6th grade students. Haha.
I got it rocking in TouchOSC, and that's dope for certain things, but since TouchOSC isn't IAA or AU, it's causing some issues with AUM, which is processing some external audio. My 8th gen isn't quite up to par if I want good latency for live processing, it seems.
Plus, I love having options
Changing the MIDI channel to 14 worked, now I need to find a way to make the pads cycle through 16 values for each bank, somehow. The Elektron devices respond to normal PC 0-127.
Which elektron box(s) are you trying to do this with? I've found program change messages to hardware a bit unreliable in mozaic over sending the midi note or sysex needed. They seem to lag a bit, particularly in larger scripts.
Digitone and Digitakt. I wouldn't need to both with all this extra hoohaa if Elektron could get it together to fix their PC bug. How they trying to have us buy and use multiple boxes together and they can't even PC at the same dang time?!
I gave up on elektron after they stopped making silver boxes :P
Oh man, you're missing out. I've had everything except the Modal stuff and the Rytm, including the MM and OT both twice. I only have the Digi boxes left. The DN is absolutely wonderous, and the DT is pretty great.
I've had them all. Didn't care for the new gen stuff. OT was the last elektron in my book, but its just not my cup of tea.
Either way, when using mozaic to send program changes to elektron boxes, I got mixed results/latency. I'm not sure how the DT/DN handles it, but my silver boxes faired much better sending the MIDI notes assigned to the patterns (or the sysex).
@slicetwo - you had some problems in the code, such as having two @init sections, and needing to enclose the
TranslateScale
and parameters in parenthesis. Here's a more streamlined version with a few enhancements as well. Only lightly tested, and not with any equipment, so there could be issues but it's a starting point anyway.Unfortunately, it didn't work. It still keeps the pads at their original 0-15 instead of advancing them to the next set of 16 values. I appreciate the attempt. I'll try and read the manual more. Programming is one of those things I really struggle to wrap my head around. It's another language, essentially, and I've never been good with languages.
@AlmostAnonymous to each their own! I do kind of wish I hadn't sold my MD, simply because it's so neat. It just never made it into any songs and I could use it to fund other gear that was more useful for my flow. I hated on both Digis when they were first released, and I only got the DT in a trade for an A4 (which I never really liked). The OT was amazing for what it is, but it didn't do things the way I needed them to be done in order to justify keeping it, and I ended up selling it for more than I paid
That's going to come down to the line
SendMIDIBankSelect ch,bank,0
maybe try changing it toSendMIDIBankSelect ch,0,bank
. Just guessing because I don't know what the Digi's need for bank select. Also, the script is sending on midi channel 16 (mozaic 15). You said something about changing it to 14 earlier? Maybe that has something to do with it.if you can capture a bank select and program change that works from something else and post it here I might be able to better pinpoint.
I changed the 15 to a 14 after I loaded it up. When I capture PC from the Digis, they're labeled as PC 0-127. No bank select at all.
Bankselect messages are in fact cc 0 and cc 32.
Maybe have a look at my multiChannelProgramChanger script. It does divide the banks in groups of 16.
https://patchstorage.com/multichannelprogramchanger/
When I capture PC from the Digis, they're labeled as PC 0-127. No bank select at all.
OK, there's the problem. You don't need bank select at all. You need the knob to change the range of PC's sent from the pads. This should work.
Holy shnikees it worked! Last question, is there a way to change the visual to read Bank A-H instead of Bank 1-8? Can Mozaic display letters instead of numbers for changing parameters like that? You just changed my whole game.
@slicetwo
With a trick ‚mis-using‘ the NoteName function, Moazic can display the letters A-G. To add the H, an extra IF was needed:
.
Exchange all 3 occurences of the line
LabelKnob 0,{Bank }, (bank + 1)
orLabelKnob knob,{Bank }, (bank + 1)
with
Call @RedrawBankKnob
And add the following user-function
BTW: The first occurence of the LabelKnob 0 inside the If Unassigned isn‘t needed, as the knob label is set afterwards