The way dblue’s tool work, there is an “attack” part where the curve ramps up until the note is reached, and then a “release” part during the remainder of the note. Triggering shapes just starting at the note would be enough, I think.
I think I’ve figured a way to make this work on the UI side, with a completely different button layout and more flexible options. So there’s a bit of work before I can implement this “trigger on notes” feature, but it’s somewhere down the road.
What I have in mind is a fade in/out operator, that would apply a scale to a selected range, with a scale factor continuously increasing (or decreasing). So that’s not exactly the same thing as this step function (because it’s continuous, the curves would be slightly deformed).
The other way to do this would be to add an option to configure the shapes creation. This would achieve a real step by step progression; maybe this would sound nicer?
The “max” points are positioned exactly on the pattern lines where notes appear, then the curve fades out to the “min” point which is the pattern line just before the next note. The “attack” was not really intended, and is just a side effect of the envelope ramping up to the next point over the duration of that last pattern line. What I actually should have done is position the very last point a tiny fraction before the next note appears, rather than a whole pattern line before.
This modified behaviour produces results like this:
3077
As you can see, the attack period is basically non-existent here.
Looks like you’re already doing something like this anyway.
i’ve never used Automation that much, but i’m working on a project that’s not very feasible to do with pattern effects, so will have to dive into the whole Automation-thing. this tool will be of great use, i imagine. and even if i would never use it, it is certainly a great piece of work. really amazing, good job. looking forward to seeing how you handle all the feature-requests
also, have yet to test this out so don’t know what the GUI looks like now, but maybe you could make those curve-icons a bit smaller? in the screenshot at least they look fairly big to me? just a tip. think it would make it all look sexier
Here’s a new version. No fancy features yet, but I’ve completely reorganized the UI so that it’s more flexible (and to prepare the terrain for the fancy features).
3079
The idea is that you can construct your shape with either one or two parts. This allow for a lot of variations, without having too many buttons.
Also now you can repeat the shape as much as you want, e.g. in the screenshot above the shape would be repeated 32 times over a length of 16 lines. This way you can fill long parts easily. This will be especially useful once the ramp up/ramp down modifiers are implemented.
I’ve uploaded a new version in the first post. I added the possibility to configure different values for odd and even shapes, and configurable step increments for all the values.
I’ve also added a few new shapes: there’s two kind or “curved ramps” now. I’m not sure I use the best equations here, so I’m highly interested in comments about these shapes. Currently the bottom row are just perfectly round (i.e. sin(arccos(x)) kind of curves), and the row above is just the four parts of a sine function.
I couldn’t find any workable exponential or logarithmic equations… By “workable” I mean functions that map from [0,1] to [0, 1]. I’d rather not implement cubic bezier curves just for this…
So I’d like to know if the current curves correspond to what you expect to use in automation, or if they are “off”…
(@Jonas: I will address this error when I’ll implement cross-patterns curves)
Wouldn’t mind having sliders for ‘base step’ & ‘peak step’ as well, to easily change settings, preview changes.
Talking about previewing changes, might be cool to add a ‘auto update’ toggle next to ‘Apply Shape’ button in your tool, similar to how it works in the ‘custom wave synth’ tool from It-Alien ( Custom Wave Synth | Renoise ).
If enabled, dragging a slider will automatically update the waveshape, in your tool… envelope, which can be handy imo, automatically linking the result with what you’re doing in the tool gui!
Yes, I wasn’t satisfied with the current layout either.
On a side note, I just realised it would be much more useful to be able to set the destination values, rather than the steps. I’ll make the change in the next version, unless someone has objections… ^ ^
That would be really cool, but I’m not sure it would work for shapes that are more than a few lines long. At least not with my current implementation.
The main feature is… Cross-pattern curves! You can write shapes across multiple patterns now, just be aware that it can be a little slow and Renoise might freeze its interface a few seconds (but not the sound ).
I had to rewrite the main algorithm for this to work, and a side effect is that you can now configure the resolution, by setting the number of automation points per line.
Unfortunately, Renoise does not interpolate automation envelopes between patterns, which means there might be a small glitch in the curve. It’s only noticeable for steep curves, and you can adjust the resolution to find a setting that works better, or correct it by hand. Fixing this would be tricky, and IMHO the better option would be to add cross-pattern interpolation to Renoise.
I’ve also changed the GUI a little bit:
3106
Selecting the shape you want should be faster now. Also, as said in my last post, I’ve changed the way to configure step progression: you enter the destination values now, rather than the step.
ok, maybe its too slow anyway, with certain setting, as I guess with large envelopes containing lots of dots, a lot of undo data is collected at every slider change. Still, if it would be made optional, it could be handy, something to try out?
Also, I see you have changed the content for the ‘first part’ & ‘second part’ shape boxes, dividing all the options across the 2, could you please have all shapes back in the first and second part. Certain shapes that were possible in earlier versions can’t be made anymore!
AFAIK, all the same shapes are possible, you just have to invert the phase (i.e. set it to 0.5).
Now I understand that these particular shapes are slightly more complicated to obtain, but I was under the impression they were not that useful, hence it was not a big loss. I find myself the simplified selector much faster to use, but maybe it’s just me?
If the phase method to obtain these shapes is not convenient enough, tell me and I can add the whole selection back.
As for real-time changes, I’ll give it a try but with my current implementation I’m afraid even relatively short curves will make Renoise suffer (the problem is in the way I erase automation before writing the curve).