The concept is rather simple. Each number between 0 and 2^16 -1, has a unique 16 bit binary representation. Now, instead of arrays and shit suppose you want a bass drum to go || : DUM . . . . . . DA DUM . DUM . . . . . : || - that would be 1000000110100000 in serial binary representation. And in decimal / float, that would be 1409.
Now suppose you have a counter going from 0 to 15 for every bar, you can use that to power up 2^n and have the binaries spit out as ones and zeores in sync.
That's what PReader.pd does. You provide the count and the seed. Preader spits out a loop of zeores and ones useful for triggering anything. All in the message domain.
Now, for those of us who don't calculate back and forth between binary and decimal, I made a simple seed calculator too. You on/off the binary toggles and get the float seed.
Once you have the seeds, get rid of the Pwriter. It's just here for you to quickly get from graphic representation (binary) to decimal sead for the reader. Use messages to seeed your reader, i.e.: [1409< etc. You can have other counters control different seed messages to the same reader and so forth.
This is all very simple, but I find it extremely useful for sequencing, rather than setting up complex matrices of this and that with multiple arrays. The gordian knot and KISS and all that jazz.