[PD] How can I weave multiple signals together?

Charles Z Henry czhenry at gmail.com
Wed Mar 27 23:04:52 CET 2019


there's another option you're missing which doesn't involve storage

When you do your interleaving in a literal way, think of it as the sum
of 3 signals:
A,0,0,B,0,0,C,0,0,...
0,1,0,0,2,0,0,3,0,...
0,0,!,0,0,@,0,0,#,...

Those signals are versions of the original, except pitched down by
factor of 3, with an additional bit of harmonic content, and then
added together.

If you didn't want to pitch down the signals, and you know that your
osc~ frequencies are low (< 4kHz should be enough)
you could just multiply by
1,0,0,1,0,0,1,0,0
0,1,0,0,1,0,0,1,0
0,0,1,0,0,1,0,0,1

and add them up.  If you DID want them pitched down by factor 3, you
could adjust your inputs to osc~ to freq/3

And you can do it with a single fexpr~

[ fexpr~ ($y1+1)*($y1<2); $x1*($y1==0)+$x2*($y1==1)+$x3*($y1==2) ]

That object takes your 3 input signals $x1, $x2, $x3, makes a counter
in the first output $y1 (0,1,2,0,1,2,...) and the 2nd output $y2 has
your interleaved signal ($x1[-1], $x2[0], $x3[1], $x1[1], ...)

I'd say, give it a try, it's a nice idea, but the high frequencies
you're going to introduce may be harsh and in the range of 8kHz and
up... and the result in the low frequency range won't be much
different from simply adding them up.

Chuck





More information about the Pd-list mailing list