The segmented envelope is the most flexible built-in envelope available in Dittytoy. You can set the number and levels of segments yourself and independently set the curvature value for each segment. This envelope is similar to the segmented envelope used in Super Collider.
doc.sccode.org/classes/env.html
dittytoy.net/syntax#envelopes
#dittytoy #tutorial
Log in to post a comment.
// #16 Segmented envelope (segenv). DittyToy 2022.
// The MIT License.
//
// https://dittytoy.net/ditty/ce63852ccf
//
// The segmented envelope is the most flexible built-in envelope available in Dittytoy.
// You can set the number and levels of segments yourself and independently set the curvature
// value for each segment. This envelope is similar to the segmented envelope used in
// Super Collider.
//
// adsr envelope: https://dittytoy.net/ditty/34e1600f63
// adsr2 envelope: https://dittytoy.net/ditty/0f2e4c2cdd
// segmented envelope: https://dittytoy.net/ditty/ce63852ccf
//
// https://doc.sccode.org/Classes/Env.html
// https://dittytoy.net/syntax#envelopes
//
input.duration = 0.5; // min=0, max=2, step=0.001
// signalProbe - by athibaul
const signalProbe = filter.def(
class {
process(input) {
debug.probe('signal', input[0]+input[1], 2, 1);
return input;
}
});
loop( () => {
sine.play(c, {
levels: [0, 1, 0.5, 0],
times: [0.1, 0.1, 0.25], // in seconds
curves: [0, -2, -2], // you can also pass one number
releaseNode: 2, // set to -1 if you don't want a releaseNode
duration: input.duration, // in ticks
env: segenv
});
sleep( input.duration + 1);
}, { name: 'Segmented enveloppe' }).connect( signalProbe.create() );