Troubleshooting

Need Help to Save and Load Presets of Multiple Objects

Started by tater01 on .

Sign in or create an account to join the conversation.

41 posts

kept using my old one for now.
Here is the reset change. The "nothing" option is a placeholder that doesn't clear anything (prevents accidental erasures). Play around with saving stuff across different banks and presets and use the clear menu to selectively clear stuff. The early morning guarantee is that it mostly works.... Let me know what you find. "Current" is the current display (doesn't mess with other presets or banks).

I am going to work the offset and swing sliders to free up more room. Also - not sure why the Clock 1 display is needed since you can't change it anywhere (unless there's a button/menu someplace that I'm not seeing).

ExamplesBanks.jzml
Wow, thanks again! You are a genius!
The presets and clear menu work great. I'm totally excited at how good it is coming along. So glad you are so good at coding too!
Love seeing the updates!
Thanks!
tater01 wrote:Wow, thanks again! You are a genius!
The presets and clear menu work great. I'm totally excited at how good it is coming along. So glad you are so good at coding too!
Love seeing the updates!
Thanks!
Started work on the start/end loop controls. I have them working outside the template and will tie them in in the next day or so.

Question - Swing currently sets the swing amount for all rows to the same amount. Is that useful or would you rather have individual control over each row? (swing yes/no, or set separate amounts per row)
Also, I don't have a good feel that's it's actually working - I don't see the marker 'swing' across the steps like I think it should.
Hey man! How you doing? Sorry for the unclear reply before. No, clock led/display is not needed. The clock can be deleted. Thanks for asking. And I think that one swing slider for all the stepswitches is sufficient. Just to try and give it a little human feel to it before its sent/recorded to DAW for further manipulation. I don't think it needs to be that sophisticated with swing adjustment for each stepswitch. Kinda overkill, and you already are killing it with this preset setup! Really appreciate the input and asking! I was thinking though, a way to manipulate velocity would be kinda cool? Could be a hidden control? And/or maybe even like a humanize knob, like on Toontrack EZdrummer, that varies velocities slightly to give human feel. Not necessary though.

And I don't really care it works good enough for me, but you asked me to troubleshoot. So...when you hit clear everything, and then play through the presets. It makes some junk in the B section. Can't remember exactly which one. But around B3 it leaves like a junk present of random stepswitch patterns. Not a big deal to me though!

Thanks again for the updates!
tater01 wrote:Hey man! How you doing? Sorry for the unclear reply before. No, clock led/display is not needed. The clock can be deleted. Thanks for asking. And I think that one swing slider for all the stepswitches is sufficient. Just to try and give it a little human feel to it before its sent/recorded to DAW for further manipulation. I don't think it needs to be that sophisticated with swing adjustment for each stepswitch. Kinda overkill, and you already are killing it with this preset setup! Really appreciate the input and asking! I was thinking though, a way to manipulate velocity would be kinda cool? Could be a hidden control? And/or maybe even like a humanize knob, like on Toontrack EZdrummer, that varies velocities slightly to give human feel. Not necessary though.

And I don't really care it works good enough for me, but you asked me to troubleshoot. So...when you hit clear everything, and then play through the presets. It makes some junk in the B section. Can't remember exactly which one. But around B3 it leaves like a junk present of random stepswitch patterns. Not a big deal to me though!

Thanks again for the updates!
I appreciate the feedback. I thought I saw something whiz by when I was testing the clear. I'll look at it again, although in theory the code is doing the exact same thing for each row and each bank.

I'll leave what Swing is doing alone then.
Is the Offset control useful/necessary for you to line up the audio and MIDI data between the device and the DAW? Just curious.

Been adding the loop start and end functionality with a pop-up fader to save space. it's just a little slow cutting and pasting scripts and objects from one template into another. Plus my wife's birthday and our anniversary are this week, so free time has been at a premium. Once the start/end loop buttons and swing are back on the screen, I'm going to be pretty much done with what I can do. I haven't turned on any music equipment for the past 2 weeks, so it's time to get away from the computer.

If you were using a device with a larger screen, there'd be more room to add things like velocity controls/variations and humanize type functionality, but given this form factor, you've about maximized what can be fit there.
give this (hopefully) final version a try.

Some things to pay attention to -- Swing in Lemur ranges from -1 to 1 with 0 being no swing. Commonly, swing is displayed as a percentage with 50% usually meaning both notes get equal amounts of time (i.e. - no swing). I'm displaying it as 0 - 100% with 50% in the middle to mirror gear like the LinnDrum, etc. If you want that changed to some other display type, let me know.

The Loop Start End points let you isolate any section and change them on the fly. I put in a basic guard to prevent setting start after end or end before start (not going to try to work the math gymnastics for going in reverse).

I cleaned up the Clear options to actually clear everything you ask it to.

Internally, I deleted some containers and stuff that was just giving me headaches for minimal gain.
No comments yet - that's for Monday and I'll post that separately.
I will probably also rename some objects so they naturally group in the editor display.
I didn't group object on the screen so if you move things around, the text won't move with the button/slider, you have to move the separately. I'll do that as well, but note you have to ungroup them in the editor to change individual pieces.

enjoy

(other requests like velocity, etc will have to wait).

Oh - one important thing - to change the loop points or swing, just click on the displayed text/button and a slider will pop up. I still have to make the slider go away if you decide not to change anything and if you want to see your end loop point when changing the start point, let me know and I'll move the pop-up over more.

ExamplesBanksFinal.jzml
Ok, you are a god damn coding artist!!!
Thank you so much!!! Really!
That loop start stop system is much better than what I had in mind! Awesome job man! And the swing display is more than great. Thanks!

So...did some more troubleshooting (Sorry). When you hit play and don't have a preset stored it deletes the stepsequencer pattern. Not that big of a deal. Just have to remember to hit store before hitting play or it deletes it. Also, not that big of a deal. When the play cursor gets to the end of the sequence, it sends some junk midi to the pc. I have all the stepswitches set to send out channel 2 note on messages. Looking with a midi monitor on pc it sends like 10 messages of channel 1 cc 1 at the end of every stepswitch. No real biggie. I'm going to go through the entire layout and disable midi where I don't need it and same with osc messages where I don't need them to slim down on the amount of messages my huge layout is sending!

Also, the pop up sliders that pop up from your loop and swing pads, could you maybe make them the same size as the pop up offset/velocity/humanize sliders for me that I added? And also make them show right below their corresponding pad? No matter if I move them or resize them they always show back up in the same spot. Pretty sure that is the get object line of code but I couldn't find it to change their size and location. In this one I'm uploading now I added a velocity slider! And I think it works! Yay! I'm not totally useless! LoL! Which also brings me to my next thing: I don't expect you to do it, you've done more than enough for my undeserving ass! But, I do want to take a stab at a humanize slider. I want to have a fader that varies velocities slightly to give human feel. Like when the slider is 0 there is no variation in velocity. When the fader is at max or 1 it gives like 35% variation of the velocity. So if my velocity slider is at max 127, say like 8 of the 16 step notes will have a velocity of 127-35. So maybe you could describe it to me briefly and I can take a go at trying to build it. Or maybe if you have time, next week or month or year, or whenever you feel like it, you could code it for me? Not necessary though and I don't expect you to! Here is my small updated layout:
ExamplesBanksFinal 0.1.jzml

Thanks again for all your wisdom and generosity. Happy birthday to your wife! And happy anniversary! From your name "old"gearguy, I'm guessing you've been married a long time. So congrats on being a smart and strong enough person to survive marriage for so long! Good job! Keep up the good work with your family! Don't ever let me keep you from your family. Keep that wife happy. Happy wife=happy life!
Moved the pop-up sliders (code changes are/were in dispFader()).
Fixed clear of current pattern when hitting start (commented out a line in Start button test() code), although as soon as it switches to another pattern (even if you have it loop A0 -> A0) it will be erased. That's just the nature of having it auto-load patterns. I could have it auto-save whatever is currently there when you hit start, but that might overwrite the first pattern of a loop, so leaving it under user control is still the better option (I think).

MIDI junk - I'll look at it running on the iPad and see what's happening - been doing most testing on the computer with no MIDI involved.

Also - I noticed you changed the on color for the main pad area. Intentional?

For humanize, there's a way to add/subtract random amounts of velocity to each step (with some coding of course). Do you want each row to be different amounts of humanize, same value for all rows, selective rows only, ???

I can also change my pop-up slider to a MultiSlider to match yours.

Good work on the velocity and on changing the Offest to a button.
Hey there, thanks again for all your work. I might have never figured this out or been learning code for six months until I figured it out. Already been working on my whole layout for a couple months, and even took time away from it. The learning curve is steep when you don't know shit about programming! So thanks for helping me finish it. The stepsequencer is the last piece of the layout. Then I can get back to playing guitar!

I didn't change any colors. If you're talking about the stepswitch pads changing color, its because they are tied to the velocity fader now. Lemur changes their colors from almost see through at low velocity to almost white at high velocity. If you're talking about the offset/velocity/humanize buttons I made, I just didn't match the colors yet.

And I think one humanize fader to affect all the stepswitches at once is sufficient.

Thanks again for asking and feedback!
I'll upload a commented version with a basic humanize algorithm set up with hopefully enough comments in it to allow you to tweak what it does for your own needs.
The plan is to finish commenting, take a look at the MIDI data, then add in a humanize menu (I'm going to allow you to be able to adjust the amount of humanization per row/drum sound) with some basic randomization and you can take it from there.
ok, here's a mostly commented version with some humanizing thing in there.

I saw that you were turning off MIDI stuff in objects. I think it makes sense for you to go through this and clean up as much of the MIDI side as you can like that.

Once you do that (and play with the current humanizing), post it so that I don't keep undoing your MIDI work. At that point, I'll finish commenting the last couple things and debug any MIDI issues (if they are still there).

Sound like a plan?

ExamplesBanksHuman.jzml
Sounds more than great!

I've already been cleaning up the midi and osc signals on my whole layout. Really all we need on the stepsequencer page is the midi out of the stepswitch.out. Figured I could just disable all other midi and osc in the entire stepsequencer besides the stepswitch.out. I'll post it back soon! Also, might send the whole layout to you but the forum won't let me cuz the size is too big. So I might pm you a dropbox link to it.

Will definitely try to understand all your comments as I do thirst for knowledge! Thanks for taking the time to educate me master!

Thanks!
Ok, really cool humanize feature. Very cool!
It works the way I think it should, but I did find a small issue. The velocity fader has no effect on the stepswitches until you touch the humanize slider. So you can slide velocity all day, hit play and the velocity won't change. Then if you touch the corresponding humanize slider, then the velocity change takes effect. Would be nice if the velocity slider affected it first, no matter what. No big deal though, just have to remember to touch humanize fader first to make velocity change stick.

Also, turned off all midi and osc messages. So no more junk midi being sent, it was the clock reset button. All is working fine in this version I am uploading now:
ExamplesBanksHuman1.jzml

BUT (Sorry again), I have an issue when I add it to the rest of my layout. Once I copy/paste or export/import the stepsequencer into the rest of the layout it corrupts the SetAmount script under the HumanizeFaders. I imagine its because the expressions declared at the container level. I looked through to try and see which of the expressions at the container level aren't identical but I couldn't tell. I'll pm you the link to the whole layout so maybe you can take a look and fix it easily while I keep trying to look and figure out which expression probably needs to be at the project level.

Thanks again!
And don't laugh at my giant layout! Haha! I made a button for every single button in Reaper and then some! Also, copied other people's stuff like the LFO generator and Lexicon MX reverb controller which I happen to have!
for the folks playing at home, here's a version that fixes the velocity/humanize interaction.

As a bonus, I finished commenting the code in this version.

tater01 - your large master copy is in a private message. If you want to grab the comments from this one and paste them there, that will work.

The reason the big version was broken was that something else used the abbreviation min for minutes as a global variable.
Unfortunately this overrides Lemur's internal math function named min() so when I tried to take the min() of 2 values, it had no idea what I was trying to do. Once I changed the global min to minutes, everything was fine.

Why Lemur let you redefine an internal function is beyond me, but that's part of the fun with Lemur..

ExamplesBanksHuman2.jzml
I didn't forget about you old gear buddy. Can't thank you enough for what you coded for me.

I've been doing some heavier testing on it and I'm not really satisfied with the lag. A lot of the midi notes are being dropped. So, I've been doing a lot of thinking and tweaking. I would have to say it is either my network configuration. I hate how ISPs now give you a router built in to the modem. Then when you hook up another router the piggybacking and port forwarding. So, needless to say an ad hoc connection might work better, but I really don't want to waste money for a crappy wifi adapter in my desktop. Also, my old crappy Galaxy Tab 2 might have something to do with it, its pretty damn old nowadays. So, I have an iRig Midi adapter and am going to get a ipad in the next few weeks. So, I am going to test it out wired and let you know what happens.

In the mean time if you would like to help me make an easy endless rotary knob work for Reaper, I posted another quick easy topic here:

https://forum.liine.net/viewtopic.php?f=32&t=5591

Thanks again a zillion times!
Happy Holidays Everyone!
A few things might also be contributing to the timing issues (try using a slow BPM and see if the timing gets better)
There's a number of sequencer lines playing at once and there's all the humanization code and other operations going on.
I know other folks have expressed their disappointment in other threads about the relatively poor timing of the Step objects (dig around other threads looking for discussions and possible mitigations).
There's also (as you pointed out) possible network issues. If you have any hardware that can handle the messages, try hooking it up directly to the Galaxy Tab and see if it plays in sync better.

As far as the endless encoder sending0 or 1, you said there were solutions for MIDI but not OSC. It might be faster if you posted one of the MIDI ones that was close to what you want so folks could change it for OSC messages rather than coming up with it from scratch.
Hello again old buddy!

Yes, I tried lots of network tweaking. I have the network setup as good as can get. I have two way osc and midi communication. And yes I have most of the hardware to wire it and test it out wired. So, just waiting on an iPad. Coming soon, and I need to resize it and all that jazz. I'll post back the results in a few weeks!

And I updated the other post with an example!

Thanks!