XAOC XAO-ERF-EUR Erfurt Binary Phase Accumulator Instruction Manual

June 4, 2024
Xaoc

XAOC XAO-ERF-EUR Erfurt Binary Phase Accumulator

XAOC-XAO-ERF-EUR-Erfurt-Binary-Phase-Accumulator-
product Thank you for purchasing this Xaoc De-vices product. Erfurt is a bi-directional digital counter, frequency divider, and component of our 8-bit Leibniz Binary Subsystem. It has multiple applications: the output of the counter may be used as a phase source driving a digital wavetable, connected to other Leibniz modules it may scan waveshapes in Jena, produce stepped voltages useful for making interesting glissandi with Drezno and any VCO, generate gate patterns animating the spectrum of Odessa harmonic banks, spawn pseudo-chaotic sequences when fed back to Lipsk, etc. It can also operate standalone (without other Leibniz components), and act as an 8-output clock and audio frequency divider. Since Erfurt is based on CMOS logic (no CPU!), it can be clocked at very high frequencies (exceeding audio rate) without any aliasing or frequency interference. It also features its own internal HF clock source that may be used with clockless data sources.

INSTALLATION

The module requires 6hp worth of free space in the eurorack cabinet. Always turn the power off before plugging the module into the bus board using the supplied ribbon cable. Pay close attention to the power cable pinout and orientation. The red stripe indicates the negative rail and should match the dot or –12V mark on the bus board as well as the unit. Erfurt is internally secured against reversed power connection, however, rotating the 16-pin header may cause serious damage to other components of your system, because it will short circuit the +12V and +5V power lines. Always pay particularly close attention to the proper orientation of your ribbon cable on both sides!
Besides power, you may want to connect Erfurt to other components of your Leib-niz Subsystem (unless you intend to use it standalone). Erfurt comes with one 10-pin ribbon data cable to connect with other Leibniz modules alongside any additional cables included with other modules in the subsystem. The 10-pin unshrouded header labeled out is where you need to plug the cable that goes to the in the header of your next Leibniz module (e.g. Drezno, Jena, or Odessa). The incoming data from a module preceding Erfurt (e.g. Ostankino, Drezno, Lipsk, etc.) should be plugged into the 10-pin unshrouded header labeled in. Please observe the marks of pin #1 (red stripe) on all connected modules. Depending on the intended use of Erfurt, these connections may not be necessary. We advise you to plan ahead as to how you wish to incorporate Erfurt into your modular setup. A jumper labeled clk src selects whether Erfurt runs with its own internal clock generator or uses the clock signal delivered with the Leibniz data. Put the jumper in the int position when there is only a static data source (e.g. Lipsk or Ostankino), or when you don’t feed Erfurt any data via the Leibniz interface. Set the jumper to ext when the preceding module delivers the clock alongside its data (usually changing over time), like Drezno or Jena.

front panel overview

note: do not plug a power cable to the Leibniz headers. This will destroy your unit and may also jeopardize other Leibniz modules connected to it! The module should be fastened by mounting the supplied screws before powering up. To better understand the device, we strongly advise the user to read through the entire manual before use.

MODULE OVERVIEW

The front panel of Erfurt is shown in fig. 1. As with other modules from the Leibniz series, Erfurt features a bank of eight binary outputs 1 producing 5V gates, where an active gate signal represents logic 1 and an inactive gate represents logic 0. There are eight corresponding yellow LEDs 2 that display the activity of individual bits of the digital number indicating the internal state of the counter. The two push buttons allow for manual incrementing 3 and decrementing 4 of the state (increasing and decreasing by a predefined value, default to 1). The state can also be reset to zero by simultaneously pressing both buttons. There are three clock inputs for incrementing 5 , decrementing 6, and resetting the state 7. All inputs accept arbitrary modular signals (including those of audio rate and above), but are best fed with clocks, gates, or triggers. The two switches allow the Leibniz clock to drive the counter when there is nothing plugged into the inner clock input 5. The leftmost switch 8 turns the Leibniz clock on and off, and the rightmost switch 9 offers three frequency pre-scal-ing options: 1:256, 1:1, and 1:64K (in other words: 256×256 which gives 65,536). With a typical Drezno clock of approximately 2MHz, this yields about 7kHz (high audio rate) in the upper position and about 28Hz (LFO rate) in the lower position. note: The switches have no effect when you plug your own clock to input 5.

PRINCIPLE OF OPERATION

The heart of Erfurt (fig. 2) is an 8-bit register that holds the internal state of the machine and an adder that combines the internal state with the incoming data value. At every rising edge of the clock signal, the output of the adder is written back to the register. The choice of the clock input (incrementing or decrementing) decides whether it is a sum or difference, though two clocks may be used simultaneously. If two edges arrive at exactly the same time, the increment-ing clock has higher priority.

The Leibniz clock that arrives together with the data through the ribbon data cable may be used to drive the counter when you set the leftmost by CLK switch to the on position. Since this clock is often very high frequency, it may be conveniently pre-scaled by 1:256 or 1:65,536 via the rightmost switch. This (divided or not) Leibniz clock is always used for counting up, therefore it is normal to the inner clock input and is replaced by anything patched there.
Erfurt also features an internal high frequency (near 2MHz) clock (selected using a jumper at the back) that is useful when the unit is operating standalone or connected to a static Leibniz data source like Lipsk (provided nothing is connected to Lipsk’s Leibniz in the header).

The Leibniz out header at the back taps directly from the adder before the data is written back to the register. This allows Erfurt to pass the potentially quickly changing data to subsequent Leibniz modules in the chain (e.g. samples of a signal from Drezno to Jena). The data is being offset (modulo 256) by the content of the register regardless of whether the content stays still, is updated slowly or rapidly (according to the clocks plugged into the front panel jacks), or is being adjusted manually.

COUNTER VS FREQUENCY DIVIDER
When Erfurt is operating without any Leibniz data source, the in the header at the back should be left unplugged. There is a normalization on the header, enforcing the value of 1 (binary: 00000001) being fed to the adder. Therefore, Erfurt changes its state by 1 at each impulse from the clock input so that it counts from 0 to 255. When the value exceeds 255 it flips back to 0. In other words, the counter operates modulo 256. Obviously, with a clock plugged into the decrementing input, Erfurt similarly counts down from 255 to 0. Taking signals out of the individual bit jacks offers the clock frequency divided by 2 (bit 0), 4 (bit 1), 8 (bit 2), 16 (bit 3), 32 (bit 4), 64 (bit 5), 128 (bit 6), and 256 (bit 7). Thus, in this configuration, Erfurt is a classic octave frequency divider.

block diagram

With two different clocks patched to the inputs, the counter alternately increases and decreases its state, and ultimately counts with a rate proportional to the frequency difference between the clocks.

GENERATING MORE COMPLEX PATTERNS

When there is a Leibniz data source connected at the back (even one as simple as Lipsk), the state of the counter may increase or decrease in larger steps, depending on the data present at the Leibniz bus (e.g. the value programmed by the Lipsk buttons). In that case, the counter over-flows quicker and produces patterns that are more complex than regular 4/4 because the remainder from overflow adds to the next cycle. In this case, the simple octave dependence between rates of individual outputs is no longer valid. When the decr clock input is used and certain non-trivial input values are programmed with Lipsk, Erfurt becomes a generator of intrinsic rhythms that may be recognized from dance music genres. It is due to the way many rhythmic patterns are defined, which is through various divisions of the common length by different integer factors. These divisions have remainders that contribute to in-spiring off- beat incidentals, not unlike the popular Euclidean rhythms. The rule of thumb is that most elaborate rhythms occur when 256 does not divide evenly by the input value N, and the remainder has several non-zero bits or is a prime number. For example, an input value of N=00011011 (which is an 8-bit equivalent of 27) is not an integer divisor of 256. The remainder is 00001101 (which is an 8-bit equivalent of 13) – a prime number. Thus, this combination of bits yields an interesting rhythm.

mathematical or musical?

When a binary counter counts upwards with an increment of 1, the cycle at each output starts with logic 0 in the first half, and proceeds to logic 1 in the second half (fig. 3a). Each completed cycle (going back from 1 to 0) causes the out-put directly above to advance by half a cycle. Thus, the first state of the counter is binary 00000000, and the last is bi-nary 11111111, which is called mathematical division. After the very last state (11111111 is an 8-bit equivalent to 255) the return to 0 of the lowest bit spawns a quick transition to 0 of all the bits above it. Counting downward (with a decrement-ing clock) reverts the situation: at each output, the cycle starts with logic 1 and ends with logic 0 in the second half (fig. 3b). Each completed cycle (going back Even more complex and less predictable sequences of bits may be obtained by patching feedback from Erfurt’s binary outputs to the inputs of the module preceding Erfurt in the Leibniz chain. In such a scenario, the increment value for each consecutive step is being modulated- fig. 3b musical clock division
0 to 1) causes the next bit above to advance by half of its cycle. Thus, the first state of the counter is binary 11111111, and the last one is binary 00000000, which is called musical division. After the very last state, the jump to 1 of the lowest bit spawns a quick transition to 1 of all the bits above it (transition from binary 0000000 to binary 11111111).
Erfurt offers both options thanks to its two clock inputs that are active simultaneously. For example, by using the decr clock input you get a very straightforward 4/4 rhythm on 8 levels (e.g. from 1/32nd up to 4 bars if your source clock corresponds to 1/64ths). Also, if there is any slip in the sequence, you can nudge it forward or backward by using the decr and incr push buttons respectively. ed (in a nonlinear way!) by the previous Erfurt counter state.
Such dependence sometimes yields simple cyclic behavior, but it may also produce a pseudo-chaotic sequence. The maximum length of such a sequence with one Erfurt is 256, but if your goal is total chaotic madness, it may be disrupted by feeding more data to the Leibniz in the port of Lipsk.

PATCH IDEAS

  •  A Xaoc Moskwa II sequencer connected to its Ostankino II expander can act as a source of Leibniz data. Each Mosk-wa II sequence step generates an 8-bit value corresponding to the position of the CV potentiometer. Connect Ostanki-no II’s Leibniz out to Erfurt’s Leibniz in, and then Erfurt’s out to Jena’s in and then – via Jena’s out – to Drezno’s in. Use Erfurt’s internal clock, and set the division to 1:256. This will produce a digital stepped ramp in Erfurt (so-called phasor) which can be waves-aped and modulated by Jena and converted to an audio signal by Drezno. Set Jena to asynchronous mode to obtain nicely aliased waveforms resulting from the skipped samples. Use synchronous mode for cleaner results. note: Moskwa will affect the pitch lin-early (not V/oct).
  •  If you set up a chain consisting of Lipsk followed by Erfurt (whose Leib-niz output is then fed to the input of Drezno) you may generate interesting CV glissandi that can drive a VCO. Use an LFO to clock the steps and program the width and direction of the steps with Lipsk’s buttons. Experiment with using both of Erfurt’s clock inputs simultaneously. To limit the length you can use feedback from a selected bi-nary output of Erfurt connected to its own reset input. You can also limit the number of bits in Drezno’s D/A conversion by patching dummy cables into the bit inputs to make the quantization steps wider without affecting the speed of the glissando. Alternatively, you can unlink the normalization in Drezno, and patch only a few of the highest bit inputs to the front panel.
  •  Apart from pitch sequences, the Os-tankini II and Erfurt chain may be used to animate Odessa’s spectrum. Connect the out header of Erfurt to Odessa’s Leibniz in the header, and activate Odes-sa’s Leibniz connection by holding the voices button until it starts blinking. Remember that the effect very much depends on Odessa’s bank length and number of audible overtones.
  • Lipsk with Erfurt can produce a variety of rhythmic patterns that may trigger drum modules or fire envelopes, but you can also try the special drum bank in Jena. Please consult the pattern guide available on our website (Jena shapes chart). For the best results, use Jena’s synchronous mode and special drum bank e. Connect Lipsk to Erfurt and then Erfurt to Jena and use the individual bit outs from Jena as triggers. With the Leibniz clock divided by 64K, the value programmed on Lipsk will be your tempo multiplier.

ACCESSORY

  • Our Coal Mine black panels are available for all of Xaoc Devices modules. Sold separately. Ask your favorite retailer.

WARRANTY TERMS

XAOC DEVICES WARRANT THIS PRODUCT TO BE FREE OF DEFECTS IN MATERIALS OR WORKMANSHIP AND TO CONFORM WITH THE SPECIFICATIONS AT THE TIME OF SHIPMENT FOR ONE YEAR FROM THE DATE OF PURCHASE. DURING THAT PERIOD, ANY MALFUNCTIONING OR DAMAGED UNITS WILL BE REPAIRED, SERVICED, AND CALIBRATED ON A RETURN-TO- FACTORY BASIS. THIS WARRANTY DOES NOT COVER ANY PROBLEMS RESULTING FROM DAMAGES DURING SHIPPING, INCORRECT INSTALLATION OR POWER SUPPLY, IMPROPER WORKING ENVIRONMENT, ABUSIVE TREATMENT, OR ANY OTHER OBVIOUS USER-INFLICTED FAULT.

LEGACY SUPPORT
IF SOMETHING GOES WRONG WITH A XAOC PRODUCT AFTER THE WARRANTY PERIOD IS OVER, NO NEED TO WORRY, AS WE’RE STILL HAPPY TO HELP! THIS APPLIES TO ANY DEVICE, WHEREVER, AND WHENEVER ORIGINALLY ACQUIRED. HOWEVER, IN SPECIFIC CASES, WE RESERVE THE RIGHT TO CHARGE FOR LABOR, PARTS, AND TRANSIT EXPENSES WHERE APPLICABLE.

RETURN POLICY
THE DEVICE INTENDED FOR REPAIR OR REPLACEMENT UNDER WARRANTY NEEDS TO BE SHIPPED IN THE ORIGINAL PACKAGING ONLY AND MUST INCLUDE A COMPLETED RMA FORM. XAOC DEVICES CAN NOT TAKE ANY RESPONSIBILITY FOR DAMAGES CAUSED DURING TRANSPORT. SO BEFORE SENDING US ANYTHING, PLEASE CONTACT US AT SUPPORT@XAOCDEVICES.COM. NOTE THAT ANY UNSOLICITED PARCEL WILL BE REJECTED AND RETURNED!

GENERAL INQUIRIES
FOR USER FEEDBACK SUGGESTIONS AND DISTRIBUTION TERMS, FEEL FREE TO CONTACT XAOC DEVICES AT INFO@XAOCDEVICES.COM. PLEASE VISIT XAOCDEVICES.COM FOR INFORMATION ABOUT THE CURRENT PRODUCT LINE, USER MANUALS, FIRMWARE UPDATES, TUTORIALS, AND MERCHANDISE.

MAIN FEATURES

  • Leibniz Binary Subsystem component Phase accumulator
  • Programmable digital oscillator
  • Bi-directional
  • binary counter Clock and audio frequency divider

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals