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
For me, learning DSP is secondary to the learning the art of vibe coding. I am doing this project for learning, and I selected a synthesizer, because I don't know DSP well, but I know a fair bit about synthesis and have good enough ears to know when it is sounding right, and I know enough about code to review later and see how it did.
I will likely use vibe coding mostly in my work, which is focused on data, I have already got Claude working really well with using REST APIs and other APIs for the purposes of data retrival. But I have yet to do much with it other than create dashboard and other visuals. The next step is to utilise another space which is rich in algos, like DSP is, and that is Machine Learning and advanced analytics. However to know if it does this right, is a lot harder to gauge than using my ears, so my synthesizer developer learning exercise is really helpful, and of course I have a cool dream synth as an outcome.
Yes, and telling Claude to add something to memory is something I need to do more of!
Living your best life. Working on your passion and not being a family slave where your needs come last.
@Rob_Jackson_Music I did look, the levels were good, I actually ended up with some nice sounds in poly. But I have decided to remove it and keep it focused as a monophonic instrument, which is what it was originally intended to be. So much per oscillator control and poly doesn't mix, it would be too easy for the average user to max things out and think it is the app's fault. I also think I need to be a lot more careful about my approach and design to pull off poly well. Perhaps make a dedicated poly instrument once Dante is complete. Oh yes, and one of the benefit of vibe coding, I was able to test and make a decision in less than 24 hours. Don't like it, just rollback using git.
@Squishy - sorry no poly for Dante, it is dedicated mono instrument with a bunch of unique per oscillator features.
Yes that's very cool you can do that. I've been using git to do that for 20 years.
Anyhoo, I strongly suspect your "harsh" poly issue was a gain staging issue, but if you've decided against supporting it, fair enough.
@digitalferret
Haha no sorries needed friend! Thanks for taking a crack at polyphony.
I decided to take on the advice of many and completely redid the UI.
Just updated and tried the new version. The aliasing is still horrific.
Like I said, you can hear the problem very clearly on a saw wave and play a note up high, though the problem exists at every pitch. It’s just easiest to hear on saw waves because they’re so harmonically rich, and up high because you’re closer to Nyquist.
I read through the stuff Claude said and it missed the mark pretty badly. Oversampling the wave folder is definitely part of it, but you will still need band limiting, oversampling, and/or anti-aliasing for the oscillators themselves and sync.
Grab a decently implemented synth. Baby Audio BA-1 is a solidly made synth with a nice UI (the DSP is nothing fancy, to be clear. I’m not recommending it as advanced; I’m saying they nailed the basics). Notice how different a saw wave in BA-1 sounds compared to Dante? BA-1 is correct, and Dante is aliasing horribly.
This is on the list to address, thanks for the advice.
The advice you saw from Claude was in relation to polyphony, which I was thinking of implementing. I have not addressed aliasing yet, as it impact is quite confined.
Just listen now, and it has seemed to have reduced a lot since I last tested. Now I need to put into drone mode to hear it with the high frequencies. Do not hear it at all in the normal range of play. Yes my filter is off, no VCA, just pure saw tooth. Am I missing something?
@negativeone I took your advice and used another app as a reference, I do not have Baby Audio BA-1, so I used my favourite iOS synth Zeeon, developed by the best in the industry BeepStreet.
To my older ears the difference is negligible, but perhaps I am missing the tribal knowledge to know what to listen for. I will send an update soon, so you can hear for yourself.
I’ve been playing with vibe coding. It has been fun, but do it right, I agree with many here, it takes lots of research, studying, learning the entire breakdown of how something works…if done properly it is a cool learning experience. It has changed my thinking for the better in all other things I do. So in that light, I like it. I think AI is a good inspiration, remixer of ideas, and even a great teacher(i have learned a lot and am still learning a lot)…but I don’t expect that I would be able to use it to ‘out code’ any real developers, period.
Hi @MrSmileZ
The below is not directed at you, it is just a positioning statement, I think your curious and open attitude is fantastic, and it is great to hear you are playing with vibe coding, and most of all having fun!
But you have raised something that is often expressed or felt by many, I know I certainly have, and have had to struggle with coming to terms with the new norm myself.
I am old enough to have coded in assembly, I even coded in machine code (i.e. 1 and 0s), admittedly that was just inputting what someone else had created.
The reason I am making this point... is that developing with AI is being a real developer, it is just another layer of abstraction and acceleration that has been occuring over the past 50 years or so.
Imagine an assembly programmer who develops in a text editor saying to a C programmer, they are not a real developer because they use a middle-level language and an IDE (Integrated Development Environment) to speed up and abstract away a lot of the real coding.
Or to bring it closer to now, imagine a C Programmer telling a Python programmer, they are not a real developer because in Python your don't need to manually allocate/free memory, and pointers are abstracted away from you.
Vibe coding will be the answer for many problems, while some things will require hand crafted middle or high level language development, even hand crafted assembly is still used today on resource confined MCUs for niche purposes.
As for that "real developer", if they embrace AI tools, they will definitely outcode any other "real developer" who chooses not to. In fact they will out code anyone, as that knowledge can be used in vibe coding, or stepping out to do something manual if need be.
Delivering more code to solve more problems in a shorter time, is what the game has been about since Grace Hopper, or even going as far back as Ada Lovelace.
Stepping off soapbox.
I respectfully disagree @digitalferret. IMHO, you're not abstracting, you're delegating.
Like any form of delegation management, some might be more hands-on than others, and carefully review the output of the tasks they delegate to their agent. Fair play if you have the developer experience to QA the code that's been generated.
But, this ain't abstraction, as I understand it.
Unless you define the ultimate level of abstraction, as hiding underlying complexities of a task by getting someone else to do it.
It is an interesting counter argument.
But I think it is one of definitions. There are 3 main terms at play here - Software Developer/Software Development, Programming and Coding. Let's look at each individually.
Software Development - The entire lifecycle of creating software.
Programming - Which is a part of Software Development, is designing and building the logic that solves a problem.
Coding - Which is part of Programming, is writing instructions in a programming language.
I think it would be difficult to argue that vibe coding is not a part of software development and programming. I may agree it is not coding in the traditional sense, because it is instead vibe coding.
But even the act of coding has changed over time, punch cards were how you coded in the past, and that does not involve any form of writing instructions, it involved using a hole punch on a paper card.
And in response to your last statement, using a high level language like C++ is hiding underlying complexities of a task by getting someone else to do it (the compiler, the operating system and so on)
Of course a compiler is a software abstraction, as is the operating system itself.
But, whether Vibe coding can be considered a software abstraction...
Seems Google AI acknowledges this is debatable.
So I guess, you're one of the many, described here and I'm a critic.
@digitalferret I tried it out again. Aliasing is significantly improved. Not completely absent, but it’s quiet enough that it’s not a problem.
The one area where I still really notice it is the wave folder. Take a triangle, turn the wave folder up, then play up high. It sounds like you’re playing completely different notes than what you’re pressing.
Then check Zeeon’s fold mode. I still hear aliasing in Zeoon’s wave folder, but that’s because wave folders are kinda brutal for introducing aliasing. But theirs is tamed enough that you still feel like you’re playing the right note. It’s a relatively quiet inharmonic element in Zeeon, while in Dante it is louder than the intended signal
Thanks @negativeone for the advice!
I have looked into it using Zeeon as a reference and have found the following difference with implementation.
Once you take the above into account and with me adding x2 oversampling and ADAA, the difference between out sine waves is not large, but still different. Hard to say whose is better, I really don't have the ear for figuring out aliasing.
p.s. I added a new scope to be able to see the individual wave forms and the master output.
p.p.s. I add a really powerful and flexible random preset generator which allows you to dial in/tweak new sounds using intelligent randomisation.
Up on TestFlight, give it another whirl.
What a cool update, and one heck of a randomizer. The scope thing is pretty cool. The randomizer though is something to behold. Plays great on iPhone 17
In vibe coding, maybe I really just consider myself an idealist, of course a researcher, and maybe a director of sorts by picking what I want to use to build the software with and how I intend to structure it. It’s really like the ultimate puzzle. I went from knowing absolutely nothing to merely knowing not much in a half year hahahaha. My challenge has been the right tools, the right amount of refinement and code clean up, writing proper skills, building a good RAG, and maybe I can get a nice application to mess with and improve. I found for me the biggest hurdle was UI. UI is so difficult to make GOOD, at least to me for now. Having a useful and smart UI is often what I feel is not accomplished always even on major apps. I do however feel the pressure of having to sort it out. I think anyone should try to do this, especially if they don’t have any coding knowledge. Just make sure to use a sandbox, make sure you read the artifacts, and okay the AI before it makes a move. Learn to repo. It’s incredible to find yourself thinking deeper inside of processes that you may have taken for granted. It definitely makes you approach problems in a new and useful way. I now have so much more respect for the “real developers” out here who build this stuff without help. AMAZING! As a regular musician building some little tools for myself to use, it’s just a cool feeling, and something I’ve always has a tiny interest in, but never dove in.
Really happy with the latest update to DANTE.
With 4 oscillators, I’ve been able to add dual hard sync engines and a pitch LFO , so you can now push two independent sync voices at once. You can let them interact, clash, or fuse into something completely new.
I’ve also added a Signature preset category to showcase what this engine can really do.
These kinds of capabilities are usually reserved for expensive modular setups or complex virtual patches, but I believe I have been able to deliver some modular power through a intuitive interface that can be learned in minutes.
And one more thing, I’ve created an Artist category.
If you’re on the beta and have a preset you’re proud of, send it through. I’d love to include it in the official release with your name on it.
i'm really impressed with the quality of the presets. You have a plethora of iconic/signature sounds that span across several synthesis types. Out of all the vibe coded stuff making their way for approval, yours is my favorite.
i really enjoy the sound of dante. totally my street.
Thanks Egobeats! Glad you like the sounds, hope you had a chance to try out the new Dualphonic Sync capability, the buttons allow you to cycle through all valid combinations, you can get some really surprising sounds.
We are getting closer to sending it off for approval for the AppStore. I forgot all the steps involved, it's been many years since I published apps into the store.
It may be vibe coded, but that doesn't mean I haven't had to put in a lot of effort and experimentation to get it to this state. You still need to bring your creativity and understanding of synthesis to pull it off, and be willing to learn about DSP, as Claude can be a little silly at times.
I am so glad you are enjoying Dante!
I have been overwhelmed by all the positive feedback I have received, especially about the sound and the quality of the random preset generator.
Just sent another update out to testers. Will be moving to a smaller focused group, for future feature updates, let us know if you want to be part of that.
Just messing around with XY pad on the Per-Osc Filter mode, with DANTE loaded in Drambo.
The ability to adjust the Filter independently for every oscillator is due to DANTE's ability to have a completely independent signal path for all 4 oscillators. If you prefer you can also choose to do things the traditional way and have a shared Filter.
It starts to get really interesting when you implement Dualphonic Sync mode, which enables two parallel hard-sync chains. Which you can then independently tweak filters on each of the 4 oscillators, with 2 of them as masters and 2 of them hard synced to the masters.
@Rob_Jackson_Music @dendy
Ok, so my learning exercise with vibe coding has led me to some interesting conclusions.
1) Someone without coding experience would struggle to pull off something as sophisticated an iOS syntherizer app with the current version of Claude Code (Opus I am using). I would suggest, it would likely be close to impossible, unless the app was very basic. There have been times I have had to guide Claude to look at things through a developers eye, and suggest what could be causing an issue, perhaps it would have got there eventually. I have also had to catch it, just before doing something silly. And then on the other hand, it will do things that even me at my best wouldn't have ever thought of.
2) Its strength is in implementing ideas and concepts quickly, and even filling in the gaps, I like to ask it to suggest a number of ways the idea could be implemented, for it to give me pros and cons, CPU usage, risk etc, it presents it all nicely structured for me to make a decision.
3) It knows DSP exceptionally well, and I do not. Working with this along with my deep knowledge on synthesis, ends up being a great combination, as I can do all the creative "architecture" stuff, and Claude implements the DSP that makes it work. I have enjoyed this part the most!! I have also enjoyed learning about DSP, which is possible, because it explains what it is using and why, I can then dive deeper outside of Claude Code if I want.
4) You spend far more time debugging than you spend implementing features. Regressions get introduce all the time, and you need to be testing constantly to make sure you catch them early. This is likely to annoy many developers. I' don't mind it, my early career was working for a large unmentionable software company, where my job was dealing with bugs all day, so I have the skills to communicate with Claude in a way it seems to understand well.
Anyway, we are feature complete, back to the debugging.
thanks for sharing your experience thus far @digitalferret.
Point 4 is interesting.
I read somewhere that in a recent study on a non-trivial project where Claude type coding assistants were used by experienced developers, they felt they were 20% more productive overall. At least to begin with...
However, further down the line, when the bugs started coming in, they were measured to be close to 20% less productive.
If I get a chance to find the article, I'll link it here.
Also, point 4 "You spend far more time debugging than you spend implementing features" reminded me of Kernighan's Law, for anyone not familiar, it states:
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
It is also interesting about where I am finding the bugs and regressions.
It is very rarely anything to do with DSP, and if an issue occurs with DSP, it is very easy to fix. I asked Claude why this is so, and it explained that these are well defined areas of knowledge, lots of data available over many decades, they are also self contained mathematical algorithms, with an input and output. So very self contained.
The issues are more related the order an operation, observable tracking, tree caching issues, state parameters etc. Anything that requires a larger context, or has many interacts or steps, that must occur in the correct order.
juce::AudioProcessorValueTreeState and juce::AudioProcessorValueTreeState::Listener handle all that stuff rather nicely
@Rob_Jackson_Music - Just bought ANALOGy8 and it is amazing, really lovely lush chord sounds. I have it playing alongside DANTE, which is providing an intense monophonic sound. Really wonderful contrast.