Right on, that looks good. It still _does_ (and your image verifies this) correspond to:
*Each input i of B is connected to the output i mod m of A, where m is the number of outputs of A: A[i mod m] → [i]B* *This gives the following output distributions chart, which intuitively tracks if we have 2 outputs going to 8 inputs, as an example:* i i mod m A[...] → B[i] *0* *0* * A0 → B0* *1* *1* * A1 → B1* *2 * *0* * A0 → B2* *3* *1* * A1 → B3* *4* *0* * A0 → B4* *5* *1* * A1 → B5* *6* *0* * A0 → B6* *7* *1* * A1 → B7* So, in case we'd want a verbal and visual cue, belt 'n suspenders style, the above verbal definition is less misleading w/re: the use of a "mod"-operator-based mapping. Aaron Krister Johnson Music, etc.: https://soundcloud.com/aaron-krister-johnson https://soundcloud.com/filtercreed https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg https://aaronkristerjohnson.bandcamp.com/ http://www.untwelve.org Code: https://github.com/akjmicro <http://www.untwelve.org> On Sat, Dec 13, 2025 at 9:22 PM Julius Smith <[email protected]> wrote: > Hi Aaron, > > I think a figure is the best way to describe this one: > > [image: image.jpeg] > > import("stdfaust.lib"); > process = si.bus(4) <: si.bus(8); > > I think of it as repeating in "blocks", treating the source as a vector or > bus that needs repeating as a whole. > > - Julius > > On Fri, Dec 12, 2025 at 8:58 AM Aaron Krister Johnson <[email protected]> > wrote: > >> Hello all, >> >> I was trying to wrap my head around a bit of documentation about split ( >> <: ) and merge ( >: ) operators. >> >> I want to point out that the documentation for the split operator is >> misleading and incorrect. I verified it with ChatGPT here: >> https://chatgpt.com/share/693c44fe-3688-8004-a4ca-6a227aac7dd8 >> >> The documentation reads: >> >> >> >> >> >> >> >> >> >> >> >> *Split CompositionThe split composition (e.g., A<:B) operator is used to >> distribute the outputs of A to the inputs of B.For the operation to be >> valid, the number of inputs of B must be a multiple of the number of >> outputs of A: outputs(A).k = inputs(B)Each input i of B is connected to >> the output i mod k of A: A[i mod k] → [i]B* >> >> >> But, it should read as so: >> >> >> >> >> >> >> >> >> >> >> >> >> *Split CompositionThe split composition (e.g., A<:B) operator is used to >> distribute the outputs of A to the inputs of B.For the operation to be >> valid, the number of inputs of B must be some multiple, k, of the number of >> outputs of A: outputs(A).k = inputs(B)Each input i of B is connected to >> the output i mod m of A, where m is the number of outputs of A: A[i mod >> m] → [i]B* >> >> *This gives the following output distributions chart, which intuitively >> tracks if we have 2 outputs going to 8 inputs, as an example:* >> >> i i mod m A[...] → B[i] >> *0* *0* * A0 → B0* >> *1* *1* * A1 → B1* >> *2 * *0* * A0 → B2* >> *3* *1* * A1 → B3* >> *4* *0* * A0 → B4* >> *5* *1* * A1 → B5* >> *6* *0* * A0 → B6* >> *7* *1* * A1 → B7* >> I think having this chart really goes a long way for illustrating what's >> actually happening. >> >> Similar documentation fixes are likely required for the merge operator. >> >> Aaron Krister Johnson >> Music, etc.: >> https://soundcloud.com/aaron-krister-johnson >> https://soundcloud.com/filtercreed >> https://www.youtube.com/channel/UC_utjGYbSizWE0dNyr0Vdmg >> https://aaronkristerjohnson.bandcamp.com/ >> http://www.untwelve.org >> Code: >> https://github.com/akjmicro <http://www.untwelve.org> >> _______________________________________________ >> Faudiostream-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/faudiostream-users >> > > > -- > AI has taken my job, but only I know what it is. >
_______________________________________________ Faudiostream-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/faudiostream-users
