How do you Tempo Sync ADSR?
-
Hi, does anyone know how to Tempo Sync the ADSR of a Send Container?
If I have several Samplers being sent to the same Send Container, I want to change the ADSR of that group as a whole, to the tempo of the track. For example; Attack = 1/8 > Decay = 1/64 > Release = 1/16, etc.
Thanks.
-
@Delamere how many samplers are you working with?
-
@Delamere I haven't used it but I think you can accomplish this with the Transport Handler
Something similar could be done with scriptnode but I would look into the transport handler first.
-
@Chazrox Thanks for the reply.
I have uploaded a quick diagram of what I am trying to do.
The idea is:
Samplers 1-7 will each have a knob to control the amount they're being sent to Send Container 1.
Send Container 1 will have a Tempo Synced ADSR Envelope to control Samplers 1-7 & a knob to control the amount being sent to Send Container 2.
Sampler 8 & 9 will each contain a Tempo Synced ADSR Envelope & a knob to control the amount they're each sent to Send Container 2.
Send Container 2 will then have a Simple Gain knob controlling the volume before the Master Group Input.
Hope that makes sense, thanks.
-
@Delamere Send containers are only for send effects. You can't route general audio to them or voices and have them processed by envelopes.
This simple snippet shows that the envelope has no effect - I think the fact we can add them in a Send Container at all is a glitch.
HiseSnippet 1064.3oc6X0raaaDDdok1TKkzz5hfhdjG5AmhfBQWGaIzC9GYoTgFYKX5j1aAqHWYsvj6xtboaEJ589X0GgBzWD+FzNKorIYDqhDqhKhg0AAsytCmY+l4alQbfT3PCCERjQ8ylDPQFOBaOgqF2dLgwQ8NBY7XbeRnhJMSDc3j.RXH0EYXT4EZAF0phh+b0dGR7HbGZpHD50BlC8kLelJU5f8+dlmWWhK8LlelSu898bD71BOQD3OUvMPADmKHmSOlnO1ZXz2QBGiL9Jbim2pUigM2sUiQ6XYQZ1p4NCIMrb21g1zhrUqQV6t0vgNNHiGzwkoDRaEQQCgG5gB2I1iE+LOw.ulExF5Q0KrP1fkSDiZOl44N3ZvIDAOnAoPUkDn5I39LW1MxSgrOMdCyTMxBZFqMOWxZIbIiLtT0DWZCrsijEnR2Q6OOD2iCQvQDH1j0URNKx3OvsEvA3pu1mbAsqDVbiBatSiFOyD95oe6nHtihI3lB9wBE8D9lOs9uVuV8eqt4au0nQEtm1LRgmGUV315zA47TbSdj+Pp7YlWR7hn2bP35mGSevhgoNI25LGTv6wYpSBnSW2U34pwJ8umMBflBavudUuiHJhNnLUFbt.pTwztiwQzKAZPRHpF9HZ3EJQ.PDlI9AYNB2HOhJe5jlnMcC.OxEC0AJdHSMIKQbIxwZL2brE0E2.OfobFWrOtVA9HfTuO7woLyOF2YzHpiJ0Aqh69ikkFt3le8+kZnOJlfAqnRqUQEzfEtBpQkUUAP7+CE.WMIm2ye9Pg+73Dy+PrMPUh4PwF+yiWa9CjKolufBjHM3MOhzet5IRm3n.yeljvCCDg4dv1Te1YBtFERE9pPnQJ8mNUGMyJusfHKbqq1qKbIKTGahJRFmVbfuHhqxkF7VD7pKVqu7LhLmu.le06Y9KuKla5rZW6i1L+.OZG9kTOX7fXe7yf4AFQh7TWKMehceAWDLVvYNYi5mRUR14mSkY88BuPGnTvPzoRdx9mR8njrYve49uDx7HR.mnkDKV9IUKLd8E3D20TyFM+vshck6zUryEN+nD6uN1lxcAKl7WF0KLS7n4UmV+vIbN0C9CCgTU9hpb2dbW5ujMJa6KDpwL944B8UtsSS2H498eI+r5hA9ui++wohHEfF8IP0..nvGG4aCcrbnSgUvPXi0Rg4F50WitwK9a3yzMszqMlto00admwFyNl9mDGFuYx7rg1xNt9U6UzTFWsWwSY.krWpw0Wlb42aMsWMYt2oZfmHz7VoA9u+Wy1.Ggt60.+VMMaEzLek6ukuw988VxZCehiT7FmjWfnNWd8XIv8lG+Zkqg6qWaZgheohYiw9PUw2neKxYeTyn3VkUwuorJtcYU74kUwcJqh6VVEa9tUT2z5fHkvOgxhP8GzI9svZXzgSfL9X1A5e.T4Et5L
-
@d-healey Okay thanks for the reply David.
So does that mean each sampler will need to have its own Tempo Synced ADSR?
None of the samplers will contain any individual effects. Is there a way of creating 1 sampler containing 7 different instruments with the option to turn each instrument up or down in volume individually with its own knob?
Thanks.
-
@HISEnberg Okay thanks for the reply, I will look at the link you sent.
Thanks.
-
@Delamere You can use the Synthesizer Group to load in several samplers and control them with the same envelope. You can also use a Container for that
HISE | Audio Modules | Syntesiser Group
A container for other Sound generators that allows FM and other additional synthesis types.
(docs.hise.audio)
-
@Delamere said in How do you Tempo Sync ADSR?:
Tempo Synced ADSR?
The ADSR only lets you set values in ms, so if you're calculating the time based on the host tempo you can apply it to all the envelopes so they have the same values.
@Delamere said in How do you Tempo Sync ADSR?:
Is there a way of creating 1 sampler containing 7 different instruments with the option to turn each instrument up or down in volume individually with its own knob?
If the instruments are simple you could map each one to a separate group and control the volume separately using
setRRGroupVolume()
@HISEnberg said in How do you Tempo Sync ADSR?:
You can also use a Container for that
Are you sure?
-
@HISEnberg Thanks that's great and what I needed to do. Only thing is, you can't add a Simple Gain to each Sampler in the Synth Group to control their output volume with a Knob before the Synth Group. If I try to use a Knob to control the Gain of each Sampler it goes straight form 0db to -100db with no in between, it doesn't follow the Knobs Value. Any idea why?
Thanks.
-
@d-healey Ok thanks, is Tempo Synced ADSR not possible then? Say for example you had a Synth Pad preset & you wanted the attack to be 1/4 tempo and for it to automatically match the tempo of the project you're working on in your DAW so you don't have to use a reverb calculator every time?
-
@Delamere Yes it's possible, but you have to convert the project tempo to ms and set the knobs to the value you want.
-
@d-healey Ok great, how do you convert the project tempo to ms? & does that mean the attack will always be set at that tempo? Would a user not be able to use a knob to change from 1/4 or 1/16 etc?
-
@Delamere said in How do you Tempo Sync ADSR?:
how do you convert the project tempo to ms?
As @HISEnberg said above you can use the Transport Handler to get the host tempo.
@Delamere said in How do you Tempo Sync ADSR?:
Would a user not be able to use a knob to change from 1/4 or 1/16 etc?
Yes they can if that's what you want.
-
@d-healey Ok thanks, I just really don't understand it. I just want to be able to have an ADSR Envelope with 4 knobs on the Interface that control the attack, decay, sustain & release. But with the Attack, Decay & Release to be Synced to the tempo of the track in the DAW, instead of ms.
-
@Delamere If the knobs are synced to the DAW what will happen when the user moves the knobs on the interface?
-
@d-healey What I don't understand, is how to sync the knobs to the DAW? I know you said to use the Transport Handler, but I can't understand how to do it.
-
@Delamere The link that @HISEnberg provided earlier takes you to the documentation. On that page there is a snippet that you can load into HISE that demonstrates how to use it.
If you can tell me which part you're struggling with I can give more specific info.
Again though, if the knobs are synced to the DAW, what happens when the user moves the knobs manually?
-
@d-healey I have read the link & opened the snippet but I just don't understand it. I know very little about scripting & I have been building most of the plug-in without it.
Again though, if the knobs are synced to the DAW, what happens when the user moves the knobs manually?
I'm not sure I understand what you mean by this question. I intend for the whole plug-in to be tempo synced to the DAW. If the User moves the knobs manually I want the tempo of the Attack, Decay & Release to change in beats, not ms?
-
@Delamere said in How do you Tempo Sync ADSR?:
I'm not sure I understand what you mean by this question. I intend for the whole plug-in to be tempo synced to the DAW. If the User moves the knobs manually I want the tempo of the Attack, Decay & Release to change in beats, not ms?
Ah I get it now, I was misunderstanding the user interaction.
@Delamere said in How do you Tempo Sync ADSR?:
I know very little about scripting & I have been building most of the plug-in without it.
The transport handler provides a callback that will tell your script when the tempo of the DAW has changed.
TransportHandler.setOnTempoChange(var sync, var f)
In that callback function you can use the tempo, combined with the value of the knob on the UI (1/4, 1/8, etc.) to calculate the number of milliseconds the attack and release should be.
You can use that calculated value to set the attack and release knobs of the envelopes.
This is probably a bit more complicated than beginner level scripting so I recommend you start with something simpler - my scripting 101 video on YouTube might be a good starting point for you depending on where you are at currently.