[sdiy] A query about the TR-909 noise generator

Bernard Arthur Hutchins, Jr bah13 at cornell.edu
Fri Dec 27 00:27:01 CET 2019

Pseudo-Random Binary Sequences – PRBS generators (apparently AKA Linear-Feedback Shift Registers – LFSRs) are frequently misunderstood and likely still a considerable way from being completely understood. They are often thought to produce what is equivalent to a “coin-flip” (CF) results (H=1, T=0) as, typically, (22 ACTUAL flips):

0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 1         (CF-A)

although we know full-well that a result such as:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1         (All ONES!)

is possible and is as likely as the particular CF-A result recorded in my experiment.   There are 2^22 – 1 = 4,194,304 -1 = 4,194,303 PRBS “states” ALL OF WHICH make an appearance in a full PRBS “cycle”.  Thereafter, all 4,194,303 repeat exactly.  A discussion of this generator and related matters which are also addressed below is posted at:



     HOWEVER, the CF and the PRBS are fundamentally different in a least three ways.

(1) The PRBS is deterministic – the CF-A, if clocked as a PRBS generator state (example in AN-402), can only be followed by:

1 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0          (CF-B)

a right-shifted version of CF-A, with the left-most entry thereafter replaced with 1 (EXOR of 1 and 0).   If the left-most were INSTEAD filled by coin-flip, the register state:

0 0 0 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0          (CF-C)

would be equally likely with CF-B.

(2)  The fact that all possible length 22 states (except all zeros) of the PRBS MUST appear before any repeats means, for example, that no length-22 “state” of 0’s and 1’s could appear more than once in the 4,194,303 time series. The implications of this need to be studied.  For example, a length 23 series of all 1’s would be impossible – representing two instances of a length 22 sequence.

(3) By far the most important distinction between a CF-generated sequence and a PRBS is in the STRUCTURED EVOLUTION of the PRBS.  In particular, portions of the PBBS contain (by definition and/or observation) rather obvious segments that at least appear to be (and likely sound) non-random.   For example: the sequence of 22 ones (All ONES above), which is often a part of power-up initialization, (although it must eventually occur, and occur periodically with period 4,194,303).  If generated by a CF procedure, All ONES might well occur in virtual isolation, juxtaposed among numerous much more random-looking segments of which CDF-A would be typical.  If generated by the PRBS generator however, it would be surrounded by EXTENSIVE non-random-LOOKING material on BOTH sides.   This material occurs in noticeably ordered “Frames” of length 22, consecutive ones/zeros patterns which are simple and “obvious”.    We observe and fully understand how the clocking and feedback logic dictates the intriguing evolving nature: from random-looking segments, evolving to the unique state, followed by its dissipation back to something looking more random again.  Thus non-random-looking order fades-in from noise then fades back out.   At this point, look at and study the examples in AN-402 if you have not done so.

      In addition, it is not just a single power-up initialization anomaly that we deal with.  There are many more (see example).   Indeed, it may well be the case that there are countless such frames which just become less and less evident (thus more like expected randomness).   We are most concerned with these anomalies as they may appear with slow-clocking rates (perhaps melody controllers) or as audible so-called “heartbeats” as “clink – swish - clunk” audible markers.

     Once we have chosen a PRBS sequence length that will take perhaps 10 seconds to repeat, little is accomplished by making the register longer (it may in fact just make the anomalies last longer).  A length-N anomaly in a length-N register could be expected to take perhaps N full-register replacements to dissipate an anomaly, thus N^2 clockings to “wash out”.   This would also have required N^2 clockings to assemble.   For N=22 that might be 2(N^2) = 968 or roughly 1000 sample to “hide”.  This could be tried by EXORing the entire sequence with a shorter (“chop-up”) PRBS of perhaps N=10 (2^N-1 = 1023)

Comments invited.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20191226/3973c0d2/attachment.htm>

More information about the Synth-diy mailing list