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 have a request if I may.
Orchestral instruments have limited note ranges.
For instance the range of a violin is between G2 and F6 according to the SWAM violin.
Many sequencers and generic emulations of orchestral instruments
don't limit the range at all so when a lay person is writing for those instruments
they can over extend the range.
So basically it would be something like this
Midi keyboard input > Mozaic limits the range of notes for instrument to emulate > sequencer
So the user can select violin or viola or cello and know for
certain that they are writing specifically for those instruments.
I would also add a velocity limiter for maximum and minimum velocity
as some sample instruments use velocity for their articulations.
iSymphonic and Korg in particular at this point.
I did put together something in Drambo so the concept is sound.
Here's a pdf link for the range of notes for the most
commonly known orchestral instruments for reference.
https://hallmusicstudio.co.uk/wp-content/uploads/2016/02/Ranges-of-Orchestral-Instruments.pdf
What you say is easy enough to do. But I think you need to specify things more completely. Maybe I'm missing something, but I don't see the loudness curve for the three voices as being simple functions. For example, what mix do you want at value 32? What mix at value 96? How are they supposed to transition? What mix at, say, 53?
It's all easy enough to program if you decide how you want things to transition. Without specifying, though, you're leaving programmer to guess what you want.
Should transpositions happen for modifiers such as "sounds an octave higher than written" and "sounds a 5th lower than written"?
I would say no after looking at the PDF as the PDF provides the actual range of notes.
I think transpositions should happen when converting the midi notes to score.
Do you have any input as to default velocity range limitations per instrument?
The Korg Orchestral Dreams sound pack has symphony drum sounds
above velocity 111 and "normal" string articulations below that.
Other users would most possible need to adjust it for their purposes
as well so is it possible to have the velocity range user adjustable?
I have this idea from the streetlytron pro mellotron app where you can preset three tracks, and with one knob you blend between track1 and track2 from fully counterclockwise to 12 o’clock, at the 12 o’clock setting track2 is at max volume and the rest are silent. Then turning further clockwise track2 fades out, track3 fades in till at fully clockwise only track3 is heard.
Thus, track1 fades out from 0 to 64 while at the same time track2 fades in from zero to max volume. Then from 64 to 127 track2 fades out to zero volume again while track3 fades in till maximum volume at value 127. This will fade between three sounds with one knob or midi controller.
So at value 32 I would like an equal volume of sound1 and sound2 , at 96 equal volumes of sound2 and sound3. How to exactly scale all this is a matter of trial and error I suppose, i can’t really explain what I need there.
I would be using several orchestral sounds and and blend between them to change the overall timbre.
So at values below 64 you won't have voice 3 at all, and above 64 is no voice 1 at all? From the way you've described it there is a max of two voices at one time. Is this right?:
0 = 100% voice 1,
1-63 = blend of voice 1 and 2,
64 = 100% voice 2,
65-126 = blend of voice 2 and voice 3, and
127: 100% voice 3.
and it follows that voice 2 is part of the mix everywhere except at the extreme values of 0 and 127.
Sure, I can have knobs for minimum and maximum velocity per instrument, with default ranges as above. I've got the note ranges done already.
Wow.
Very cool.
A question will it be able to pass through all other midi information.
So if a users midi controller or keyboard has
Aftertouch or Channel pressure that will be forwarded as well?
Basically a midi thru for everything else?
Yeh, I generally pass everything through in my scripts unless there's a reason not to.
For the velocities, should they be scaled to fit the range 1-110, or clipped so that nothing over 110 triggers a note? Also do you see a need for velocity range per instrument, or just overall?
Cool.
Clipped so nothing over 110 triggers the note.
Are you counting 0-127 or 1-128?
Overall.
Unless a user is going to have all of the instrument inputs active at
the same time I see no need at this point to have velocity range per instrument.
For the most part users will only be using one keyboard or midi controller.
Something to think about for the future though.
Good point.
1-127 since Note-On at velocity 0 = Note-Off and 128 is out of range for midi.
OK, I'll do it that way.
On second thought ... would it make more sense just to leave the velocity range cap up to the host or to other ways that people do keyboard splits?
Good question.
I've found that hosts will range midi notes but not velocity.
Doh! Uh yeh. Wasn't thinking.
OK @Gravitas - I think it's ready. Only lightly tested and I'm not totally sure I understood correctly, so please try it out. If / when it's in good shape I'll move it to patch storage.com.
https://www.dropbox.com/s/jxpxhb3hp78t0ij/Orchestral Instruments Range Limiter v0.1.mozaic?dl=0
Okay, I’ve tested it here.
The note ranges seem to work.
The problem is with the velocity limiter.
When that gets switched on then the notes become intermittent.
I’m using Note mode on the Launchpad X in effect a keyboard.
Channel pressure is going thru but for some reason the notes are getting blocked.
Here’s a screenshot from the streambyter monitor.
That is exactly what I need.
Maybe I misunderstood you. I thought you wanted any notes above 111 velocity blocked. Are you saying that you'd want them passed through but capped at 111? So, if velocity is at 127, let the note through but clip the velocity to 111?
Exactly this.
The notes played shouldn’t be blocked but the velocity should be capped at 111.
Ahh, ok I misunderstood what you wanted. This should work:
[edit] Link removed. 1.0 version is on patchstorage.com. See below.
Brilliantly done,
It works as expected now.
Thank you very much. 🙏🏾
Great @Gravitas - glad I could help. It was a nice diversion.
I made it v1.0 and posted it up to patchstorage.com: https://patchstorage.com/orchestral-instruments-range-limiter/
I’ve had a look on Patchstorage and noticed that you included sub-types.
That’s really cool.
Yeh, that was always there but not obvious since the help message when you first load the script doesn't make it obvious that you can scroll down. That's a small thing I wish was a little better implemented in Mozaic.
I needed to do it that way in order to fit in the needed number of pads.
It’s going to be perfect for composers who don’t read or write notation.
It removes the necessity of looking up the ranges of commonly known instruments
and a composer can play within the correct range per instrument and export out
the midi to a third party notation app and in the notation app simply add
the additional instructions necessary and then it’s giving the score to the musicians to play.
Simplifies the whole process and opens up the
world of classical composition for the everyday person.
This is a first stab at it. Untested, but I think it's close. I'm assuming you're wanting to control the AUM volume faders for each channel. You will need to check AUM Midi Ctrl for what channel nums and cc controls each track, so you can modify the @OnLoad settings in the code. This code uses linear ramping of cc vals. Also, I doubt whether the 0 - 127 cc outputs are what you want, since I think 0db for each fader is well below 127, but that can be easily tweaked if this works close to how you want.
Thanks hes,
When testing, AUM fader1 snaps to maximum, fader2 and fader3 snap to zero, regardless of initial fader settings or Mozaic knob0 position.
The Mozaic log displays:
[OnKnobChange] Syntax Error: unknown or invalid argument "GETKNOBVAL"
Try putting parenthesis around GetKnobValue and its parameter
(GetKnobValue LastKnob)