martin-lueders / ML_modules

free modules for VCV Rack
BSD 3-Clause "New" or "Revised" License
90 stars 18 forks source link

Trigger Delay #31

Closed pure-github closed 6 years ago

pure-github commented 6 years ago

hello, i would like to comment on some behavior of Trigger Delay and suggest changes (or a new module?):

i hope my description is understandable...

martin-lueders commented 6 years ago

Hi, thanks for your comments.

I do (kind of) agree with your first point. I thought about this in the beginning and thought it might be a good feature if one can mute the gate. However, I now see that it is very difficult to select short pulses. I don't want to break backwards compatibility for people who might rely on the current behaviour for their patches. I will probably implement a menu option, which allows you to select 0ms or 1ms shortest pulse time.

For the second point, I will most likely not change it. The first reason is, that it is quite difficult to do as at a given step you don't know when the next pulse is coming. So you could only reset the GATE to 0 at the new trigger and then re-trigger it 1 ms later, which is not quite correct.

The other reason is, that I prefer (also in my upcoming sequencers) the separate trigger and gate ports (as you also have them as input for many ADSR modules). In this philosophy, the gates should melt together, and you can generate a second trigger pulse using the second delay line in the module. To make sure you have the same delay time, select the delay time by an external CV, instead of the knobs. When the second line has a short length, you get exactly that behaviour that you get a trigger on every trigger, and a gate which stays open the selected length.

pure-github commented 6 years ago

point 1: is a menu option something you reach with right-click on the module? i think it would be great if it were a switch on the front that has an immediate effect when clicked if the knob is at its minimum. so it can also be used as mute button for 1ms pulses. oh and of course a trig in to remote control it =)

point 2: agreed that it will introduce some delay since a new trigger has to do 2 things consecutively. but isn't the trigger treated like any audio signal? if so, shouldn't it be possible to reduce the delay to 1 sample of the audio rate? i would find that acceptable but maybe i am missing something...

martin-lueders commented 6 years ago

Hi,

to point 1: I am always worried about adding new inputs or switches to an existing module, as it might affect backwards compatibility. But I can play around with that. I would rather see it as a menu option as it controls the default behavior. Most people will probably switch it to (or leave it at the new default) of 1ms minimum pulse. The switch should only allow people to use the old behaviour if they need it.

To point 2. Even 1 sample delay can cause some problems. Personally, I also don't like the re-trigger style, but prefer the gate + trigger way. If you want to generate re-trigger style, you can use my Sum Mk II and subtract the trigger out of the second delay line from the gate out of the first. This way you get what you want.

pure-github commented 6 years ago

point 1: backwards compatibility is absolutely understandable but in this case it would just be faster to reach the function hence using it as mute button would come for free.

point 2: i will play around with your suggestion. thanks!

martin-lueders commented 6 years ago

I now restricted the pulse time to a minimum of 1 ms. If you want to switch it off, just use Fundamental Mutes in combination with it.

I hope that will work for you

pure-github commented 6 years ago

thanks!