sequencer question - sustain value
hi there,
so i'm trying to find the cleanest solution to this issue:
Let's say I have a steady pulse of a short sine wave sound going at 120bpm, every now and then, randomly, I want the sine wave to be twice as long, meaning, it taking up 2 pulses in the sequence, without then retriggring it while it's playing.
So far I've used gate to accomplish this: every time the long impulse appears, the gate closes, so it won't pass through another trigger while it's playing.
I feel like there has to be a better option than this. This gets especially more complicated if I have e.g. 3 different sustain values for the sine wave, meaning e.g. first one taking up 1 pulse, second one 2 and the third one 3 of them.
your gate is an envelope, so what about using buffers for those envelopes? the lenght of what you read from a buffer will always have the correct lenght according to the speed.
Thanks for the help! i'm not sure i understand what you mean though. you mean the sounds itself being rather buffers with specific length? I guess I see what you're trying to say, but I still don't understand how that would solve my retrigger issue.
Also, using buffers will make it harder for me to adjust parameters of sounds in realtime.
Is there another way? Maybe I'm misunderstanding you though!
I thought a bit more and maybe stuff like: onebang, adsr, change, gate (retrigger, triggermodes), and coll could be other ways of making it work? I'm just not sure which is the most elegant and accurate way...
you maybe explained your problem in a wrong way.
what is it exactly that you want ?
play sustaining sound for 1 ,2 ,3 or any other number of "pulse" lengths ?
you must have some means of starting and muting the oscilator
if that sinewave is cycle~ ?
Another question is what is the sequencer ?
I mean running some kind of timeline that has events to trigger ?
what is wrong with seq, coll, mtr ...
anything that can store data ?
as simple as note on - note off
thanks!
yea essentially i just want different pulse lengths of sounds being played, including breaks, at random, without retriggering the individual pulses if they're longer than one pulse.
kind of like morse code
i've tried something with coll just now, but I cannot figure out the retrigger issue. If the coll is being run by a counter which is run by a constant bang pulse, then it will trigger new values either way all the time. What I'd need is a way for the bangs to wait until the coll has finished a corresponding "note length" so to speak.
I tried using change e.g. so if the same value is being sent several times it doesn't send out a bang from change. I guess it kind of works, but this will only work with two different "lengths". If I want 3, it won't work anymore.
Which would be your preferred way of doing that?
you put into that coll index that triggers something.
could be a list with freq, duration, level ... whatever.
Like :
1, 330 8n 0.6;
7, 220 4nt 0.7;
.....
or midi based note number - velocity - duration
you can use any kind of duration time units, ms, notelength
fraction of a beat etc
then you run counter at the speed you want ...
and when that magic number hits coll index
you get what you wanted
Thanks for the reply!
AHH. I see, so you leave out indexes in the coll. That's clever. So it will only send out what indexes it has. Fair enough. I can get around that.
I will try that.
I guess it will be quiet complex though if you have lots of parameters that you want to randomize or have the rhythm also randomise since you'll always have to update the coll or smth? Still wondering if there is a more straightforward option hmmm :)
I have no idea what you are trying to do, to be honest.
That's why answers are not helpfull enough.
You need somewhere a list that executes events.
It is up to you to see what is your prefered workflow.
if it is only to insert a length for something into running pulse,
in real time or counter, then just throw a number representing length into the stream.
it will get executed on next pulse for set length.
you can also randomise 0 and 1 with some probability,
and dump a list to cycle through.
like 1 1 0 0 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0
then retrigger 1 only after 0 got received.

okay i did this real quick. maybe this way you can understand it better. the envelopes duration should be randomized, so no predetermined rhythm/sequence
here is the initial test i did with a delay and gate, which is way to complicated for what I want to do. So ignore this. But I'm sending it anyway.
you seem to never have pause longer then 1 beat ?
is that correct ?
and does your timeline have a loop or definite length ?
I ask because of random generator.
Here is a quicky showing what I mean, random list with set steps length

thank you:)
well i guess it doesn't really matter really. i'd say including a loop for now, since adding infinite randomness shouldn't be big of a deal if you have the other.
I think I understand what you're trying to do here.
it is now only a matter to set some rules.
must list start with 1 ?
is pause allways 1 beat long ?
what is maximum length expressed in beats , like 4 ?
how many beats shall a list be long ?
I would first generate random list containing numbers in range 1 ~ max length
then create as many 1 numbers followed by a single 0
and so create that list.
which can be any length...

P.S. I replaced the screenshot, had a mistake in first one
P.S. I looked again at your drawing.
you make no pause at all, silent part seems a fraction of the beat,
and you pass the trigger as soon as note is not sustainning,
I did not get that yesterday.
in that case and if no preset sequence is needed,
your line/gate combo makes a good choice.
but needs a little bit of improvement...
in case you want to build counter related events
where count number triggers something,
you could generate random lengths and assign events to them,
then use accum to build absolute count / delta list.