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 don’t really see a much of a path for that to work. Mozaic can’t read in text files, nor would pasting text from a scala file work. You’d need something like a python script that could translate the scala files into array variables declared in Mozaic syntax, then copy and paste that code into a big-ass script. One array for each scale. And since there’s no dynamic text variables, the labeling of the scale select knob would be a huge if..then statement that would have to be hard coded for each scale.
I guess it’s not impossible, but doesn’t seem very practical either.
what i mean is a scala file is just a string of ratios. I guess I meant text based, not text file. Sorry
here is an example of one tuning I use often. this is the contents of the scala file:
! bigler12.scl
!
Kurt Bigler, JI organ tuning, TL 28-3-2004
12
!
25/24
9/8
7/6
5/4
4/3
11/8
3/2
25/16
5/3
7/4
15/8
2/1
if this is any help at all, I just found a browser tool that converts scala files to mts.syx
http://www.microtonalsoftware.com/scl-scala-to-mts-converter.html
if the mozaic patch could do what this tool does and transmit it, that should get the job done. if that is too tall an order, then perhaps some way to transmit the data converted with this web tool. I just need it to work. The ability to see and edit the ratios from the scala file in the mozaic script would be much more ideal though.
this is what I get when I drop that same scala tuning in. (opened in textedit because I have no idea what I'm doing)
~bigler12Z;ULn>}@AX@{;k} X
p~Z;ULn>}@AX@{;k}Xp~Z;ULn>}@AX@{; k}!X"p~$$Z;&&UL'n>(}@)AX+@+{;,k}-X.p~00Z;22UL3n>4}@5AX7@7{;8k}9X:p~<<Z;>>UL?n>@}@AAXC@C{;Dk}EXFp~HHZ;JJULKn>L}@MAXO@O{;Pk}QXRp~TTZ;VVULWn>X}@YAX[@[{;\k}]X^p~
Z;bbULcn>d}@eAXg@g{;hk}iXjp~llZ;nnULon>p}@qAXs@s{;tk}uXvp~xxZ;zzUL{n>|}@}AX@˜
The web tool gets things closer. But the output would still need to be converted into Mozaic syntax. Probably process the file with a python script, open in a text editor, copy and paste into Mozaic... it would be a several step manual process for each scale.
Is iOS the only option for you? It seems like a desktop with Python scripting and some midi libraries would be more direct. (Not that my Python scripting ability is up to that ... But maybe you could find someone who can manage it.)
thanks for the info @wim
you'll have to forgive me, as I essentially have zero knowledge about coding, so much of that is greek to me. So, should I give up and try another avenue? Is there another tool on ios that might accomplish this task?
tbh, I wouldn't mind the extra steps as long as I can load a few dozen scales in and use the mozaic panel to select and send them to the Micromonsta.
I should mention that I don't really need the scale name to be visible on the mozaic interface. simply numbering them is preferable since I'm calling up scales on other synths as well so matching the numbers so the scales match is the simplest method anyhow.
ok, I just figured out that I can send these syx tunings from an ios sysex librarian called sysex base. Would be nice to send them from within a host, but this will have to do for now.
No need to apologize. Any questions are good ones.
If you'd like to upload a couple of the files, converted with the web tool here, I can take a look at what it might take to convert them to a Mozaic script. If it's a limited number of scales, and you don't need naming in the interface, it might not be so bad. I was picturing there was more to it than you really need.
Sysex might be the better alternative, but it's worth a look. You might need to zip the files to attach them here.
Hi Mozaic gurus,
I’d like to request a script to sync Gauss recording to the beat.
It’s impossible to, say, play guitar and record a loop because you have to press the “rec” button right on time. You can automate this via LK or something like that, but it’d be really handy to have Mozaic do it.
The way it’d work is you press a Mozaic pad and it won’t send the midi Cc until the next bar (4 beats... better if configurable), same to stop the loop. That way you’d get nice loops in time. There’s probably scripts for this or very similar...
Cheers!.
LK is perfect for this if I understand what you want correctly. Can you describe what would be better about a Mozaic script? It would help in designing something to understand the difference.
nvm @tahiche - I had a few minutes to kill ...
Looks great!. I’ll give it a try.
Thing with LK is that it’d trigger every time, plus it’s handier yo have this simple functionality on the same track. I know can Enso can do it but I don’t find it very clear.
Thanks @wim I’ll let you know how it goes!, you’re a Mozaic legend!.
It works!!. Very handy.
I did have to make a minor adjustment, would have taken you 0.2 secs it took me a while to figure it out... apparently Gauss needs an “off” message. I figured out with LK, having just one node wouldn’t trigger, but it would if you added a second node... so I tried sending a Cc with value 0. Still no luck until I discovered the delay parameter checking out the send note off docs...
This is the line in question.
Does that make sense or did I get lucky?. Thanks a lot @wim.
On a side note... I don’t really get the Gauss hype 😬 but as I said Enso looks a bit confusing for these simple chores, they’re the only 2 “working” loopers I know of (L7 doesn’t work right). With Mozaic Gauss can be made to work for synced use. Cheers.
For the record trigger, each toggle needs a 127 followed by a 0. The 0 value is ignore but is needed to complete the trigger.
Makes total sense. Good job figuring it out. Sorry, I didn't have time to test with Gauss directly. I'll make the change to the script in my post just in case someone copies and pastes without reading further on.
You can turn off looping in individual LK clips, making them "one-shots" ... just so you know for future reference.
yeah, simple works for me. If you have any interest in giving it a go, I'd be overjoyed. My goal is to get the scale loading process streamlined for when playing out in the real world is a thing again. Less fiddling with apps between pieces
here's a zip with 4 converted files.
Has anyone got the ability to work on an arpeggiator script close to ableton's functionality...particularly the hold and repeats functionality?
But it also needs a little delay (the 200 ms parameter) between the on and off trigger command, without it it doesn’t work. That was the trickiest part.
So this may be a ridiculously large ask, but I'm looking for a controller to use in AUM with 8 channels of Gauss so I can create a tape loop symphony. I started making something basic in KB-1, but I think Mozaic, with all it's pages, would be even better.
I'm not as concerned about the delays/filters as I would use external FX.
What'd be awesome would be to have various pages laid out as such. This would allow you to either control each machine individually, or parts of each one at the same time.
A bonus would be an extra page of 8 sliders and knobs for volume and pan of AUM's channels specifically.
My brain is not made out for coding. I've tried reading the manual, looking at what other people are doing, and I just can't get a hold of it. I'd be happy to assist in any way I can, though. If anyone has an idea as to how I could easily do this on my own, that'd be awesome. I love Mozaic, but I wish there was a Lemur-like ability to just drag and drop GUI elements and map them immediately.
After diving into Mozaic more, I realized that what I'm requesting up top there isn't really feasible since the GUI is set to only 5 layouts. However, I did realize that I could probably make some simple scripts and layouts for what I want using multiple instances of Mozaic (I'd probably need 4 or 5 instances). I started making a basic controller for a few aspects of Gauss that I'd want to control this morning (using @wim basicMIDIcontrols as a learning tool). However, I'm a bit stuck on how to get the XY pad to send MIDI CCs as opposed to be attached to a particular set of knobs.
I assumed that this would do it, but it does not. Basically, I want to send CC 0 and 1 on Channel 16 (which I believe should be labeled Channel 15, yes?). Thanks in advance!
@OnXYChange
X = GetXValue
SendMIDICC 15, 0, x
Y = GetYValue
SendMIDICC 15, 1, y
@end
Well, it could be done, but it would involve a lot of code.
There's nothing wrong with that code. It works for me. Perhaps you forgot to hit the Upload button?
Are your sure that it isn't working? It works fine for me. Stick send the output to a MIDI monitor and see what values are being sent out.
Btw you can condense things a little by doing:
@wim @espiegel123 thanks! I didn't upload it... Haha. Ugh.
It'll become like blinking soon. You won't even realize you're doing it.
I hope so! Now I'm trying to figure out how to limit CC ranges on a knob value so that I can basically use it to automatically snap to a value when I touch it. The manual is so long and so deep, yet I feel like I'm missing so much!
I am not quite sure what you mean. Can you give an example. I often find myself using the rounding functions and translatescale functions so that knobs have the range I want. You can also set knob values.
The only "snap" available with knobs is double-tap, which sets it to 64.
One way is to use
TranslateScale
to set the value you want to the middle of the range for the knob.TranslateScale
uses three pieces of information for knobs: the current value of the knob, the range of the knob (always 0-127), and the range that you want output.So, if you wanted a knob that goes from 1 to 12, with 6 as the "double-tap" default value you'd have something like:
Note that you also need to use
Round
to avoid decimals as the knobs put out high precision numbers.@espiegel123 @wim
Basically, the SNAPSPEED knob on Gauss only has 11 settings, so CC0 is -2x, CC1-14 triggers -1x, etc. I want to basically assign one knob to hover between 1-14, for example, as Gauss seems to need to the knob motion to trigger the speed change. Does that make sense?
@wim
Where would I insert your code in the following (this is sending the snap speed to all 8 Gauss instances at once). You can see I had tried to just send CC2, but that didn't work.
if LastKnob = 5
setting = GetKnobValue 5
SendMIDICC 3, 101, 2
SendMIDICC 3, 102, 2
SendMIDICC 3, 103, 2
SendMIDICC 3, 104, 2
SendMIDICC 3, 105, 2
SendMIDICC 3, 106, 2
SendMIDICC 3, 107, 2
SendMIDICC 3, 108, 2
Endif
@brambos - If you ever open this one up again, I would really, really love to see an
@OnKnobRelease
event. So many times I do not want a food of cc messages going out while knobs are being moved. If there was detection of when the knob is let go, I could easily defer sending until all the movements are done. It's a challenge otherwise.