Wow!!  That one line did it thanks so much.

On Wed, Mar 27, 2019 at 10:09 PM Charles Z Henry <czhenry@gmail.com> wrote:
 fexpr~ ($y1+1)*($y1<2);
$x1*($y1==0)+$x2*($y1==1)+$x3*($y1==2)

might have a *lot* of high frequency content.

you could replace the counter in the above fexpr~ with a slower
counter and it would have a coarser effect.  That would reduce the
pitch of the noise. If the counter got slow enough, it would sound
more like abrubt panning between the signals instead of mixing the
signals and adding noise.

fexpr~ ($y1+$f4)-3*($y1+$f4>=3);
$x1*($y1<1)+$x2*($y1>=1&&$y1<2)+$x3*($y1>=2)

That adds a $f4 inlet, set to a float less than 1 to slow down the
counter.  It will pitch the noise down into a more usable range.  At
around 0.01-0.1, you'd start to hear some tones pop out (80-800 Hz).
Probably at around 0.0001, it would start to sound like an arpeggio.

Replace the counter with a random walk with drift on [0,3] might also
be good.  It would smear out the high frequency noise.  It would give
you 2 parameters to control the effect, speed and noise amplitude.

Or you could try to add some cross-fading with another parameter that
would cut down on the clicks.  I don't know what you had in mind for
this effect

Chuck




On Wed, Mar 27, 2019 at 5:04 PM Charles Z Henry <czhenry@gmail.com> wrote:
>
> 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



_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list


--
--
|======================================================|
|https://stillpointx.wordpress.com/research/modulated-plasma/                          
|======================================================|
"Knowledge may be the Key"
"But wisdom unlocks the door"
"Absolute Power demands absolutely nothing"

As the old maxim has it, you need find only one white crow to disprove the rule that all crows are black

"The bourgeois today burns as heretics and hangs as criminals those to whom he erects monuments tomorrow" ('Steppenwolf')

"There are two modes of being those in bliss and those seeking bliss,
may each step you take and each thought you make be made in a mindful and blissful state."
|======================================================|