Csound “Rotor Organ” Technical Background

Tone Wheels

The original source of waveforms in an actual Hammond is a set of spinning toothed tone wheels (91 in all) that induce (nearly) sinusoidal signals in adjacent magnetic pickups. These are all driven by gearing from a common 1200 rpm central shaft. Because of the limitations of gear-ratios, the frequencies they generate are neither exactly on the equal temperament scale nor exact harmonics (though they are close to both).

Rather than using Csound’s built-in midi-note-number to frequency conversion, this emulation has a table of the actual 91 frequencies resulting from those gear-ratios and the number of teeth on each wheel, in the hopes that this gets even closer to the “Hammond sound”. [For those interested in more detail, a table of the the frequencies and their derivation is here]

Manuals and Drawbars

In a Hammond, the 91 tonewheels rotate continuously, and contacts under each key (nine of them per key in most cases) pick off the requisite harmonics to be played. These nine signals go to the nine corresponding drawbars, where the amplitude of each harmonic can be controlled.

In the simulation, the situation is a bit different. Each key pressed invokes a new instance of the instrument, which has its own nine oscillators that are set to produce the harmonics required. The drawbar settings just control the amplitude of each oscillator. The original drawbar values (0..8) are converted to a more suitable (semi-exponential) loudness value for this. Each tonewheel also has its own amplitude scaling so that higher frequencies are not overpowering.

Because — rather than a single tonewheel for each frequency — there is a set of oscillators for each key, there can be more than one instance of a given harmonic being generated at the same time. If these just free-ran, their phase would depend on exactly when a key was pressed, and their outputs would interfere with each other, resulting in awkward changes in harmonic amplitude. To prevent this, the startup phase of an oscillator is calculated (from clock time and frequency) to ensure that multiple instances are always in phase.

Percussion

Hammond “Percussion”—somewhat oddly named— is the transient addition of one of the harmonics of the fundamental (the 2nd or 3rd) to the signal. This transient can be “fast” or “slow” and “normal” or “strong”. It is also “single-triggered”—meaning that it is triggered by the first note struck, but will not be activated again until all keys have been released. A separate subinstrument is used to generate the percussion response, so that it can be independent of further keys once triggered.

I haven’t found any numeric values for decay-time and magnitude of the percussion, but from the values in the circuit diagram a “fast” decay time constant of about 0.37 sec looks plausible, as does 1.5 for “slow”. (Note that this is an "RC" time constant — i.e. the time taken to decay to about 1/3 of the original amplitude — so total decay time is several times longer.) Magnitude is a fully adjustable score parameter, so you can pick something that sounds right.

Key Click etc.

Because the various harmonics that create the final sound are selected by contacts under the keys, there is a noticeable click at onset. This is probably mainly because of the fact that the phase of the waveform from a tonewheel is independent of the moment the key is pressed, so sharp voltage changes can occur. Also, there are nine contacts for each key, and they will not all close at exactly the same instant, somewhat staggering those steps. The latest version of the code models the phasing of the wheels, and allows an adjustable amount of that transient to be transmitted. (Harmonics from the same 'wheel' going through different keys are now in phase, which may help avoid interference.) The possible effect of stagger is not modelled.

Hans Mikelson’s original Rotor Organ had a “click” parameter that introduced a noise transient at note onset if desired. This is still available (as a parameter in the orchestra file) but is disabled by default, as I don’t find it attractive.

Other artefacts of the Hammond’s electromechanics aren’t modelled at all. Actual hardware has magnetic and electrical crosstalk between the tones that apparently results in a ‘throatier’ sound, but I have no information or feeling as to its characteristics. The motor switch on an organ is often used to ‘bend’ the pitch; this perhaps wouldn’t be hard to emulate, but isn’t yet present.

Vibrato

Vibrato on a Hammond is created by a scanner, rotating at 412 rpm (i.e. 6.87 Hz), that picks the signal off selected taps on an inductor-capacitor ‘delay line’, with a total delay of about 1.1 milliseconds. As it rotates in each cycle, the scanner first moves down the line and then back, thus alternately lowering and raising the tones in the signal slightly. For the lowest vibrato (‘V1’) it scans about 45% of the line, ‘V2’ goes about 66%, and ‘V3’ scans the whole line. The taps are arranged so that the sweep is fairly triangular, with a slight flat spot at low delay. The waveform used in the emulation is intended to recreate this sweep. Chorus is the same as Vibrato, except that the original signal is mixed back in (assumed to be 50/50, but it’s infinitely variable through the p4 parameter).

Because the line is built from inductors and capacitors, it also acts as a low pass filter, with the roll-off frequency decreasing on taps with greater delay. The values of the inductors don’t seem to be available, so there is no good way of calculating this roll-off. Instead three of the parameters in the score command for vibrato — Maximum Frequency, Frequency Adjustment Factor, and filter “Q” — can be adjusted for a good sound (see the main manual).

A fourth parameter in the score command controls “Buzz”. The scanner is a capacitative pickup passing over 16 stator vanes, and although transition between vanes is fairly smooth, there is some amplitude modulation at 109.92 Hz (6.87*16). Apparently this can be audible, so it is emulated here.

Leslie

The “Leslie” is the rotating speaker unit that gives much of the character to the “Hammond sound” (the “Rotor” of the “Rotor Organ”). It does mechanically and acoustically somewhat the same sort of thing as the Vibrato. [In fact my guess is—as Hammond himself hated the Leslie—that the Vibrato, which came later, was intended to displace it, but it never did. In the end they can be used together rather well.]

The true effect of the Leslie is very complex, as there is Doppler shifting of frequencies, plus varying direct and reflected sound transmission, as the speakers (or rather attached horns and scoops) rotate. This makes it very hard to emulate properly, and probably neither of the methods here comes close.

Two Leslie schemes are included in the orchestra file. One is essentially that designed by Hans Mikelson in his original Csound Organ code. The other is a new, slightly different, approach. Both algorithms use essentially the same swept delay line to produce the Doppler effect, and split the signal into “high”, “midrange”, and “low” frequencies for different ‘rotation’ effects (the higher frequencies are much more directional, and so their amplitude is much more affected by the rotation). Both algorithms use the same function tables for amplitude vs rotation angle, which I believe Hans derived from some published plots.

Hans’ algorithm achieves some stereo by having a phase angle between the delay line pickoffs for left and right channels. However, it seems to me that this is not very realistic except for the recording case where microphones are placed on opposite sides of the speaker cabinet, say. When a human listener is more than a few feet from the speaker, the “rotational phase difference” between the two ears for direct sound will be minuscule. Stereo effects will almost certainly be a result of room reflections when the sound source is not pointing directly at the listener.

The new scheme explicitly includes such reflections (in a rather basic fashion). The audio fed into the delay line is (for the high and mid frequencies) tapped off again in three ways, a ‘direct’ channel, a ‘left-directed’ one, and another ‘right-directed’. The low frequencies only have the ‘direct’ tap because the ear is not very sensitive to direction there. All the taps are swept back and forth along the delay line at the rotation rate of the appropriate speaker (the high range and bass speakers spin at slightly different rates, adding to the effect). However the rotation phases of the ‘left’ and ‘right’ ones are 90° displaced from the ‘direct’ and have the specified reflection delay added in. All these channels are modulated by the angle-amplitude function appropriate to the frequency band (as in Hans’ version) and mixed back to left/right stereo.

Both forms of the Leslie have the same “tube amplifier” input, which can be given a distortion curve that approximates what an overdriven amp might produce. The actual frequency response of a Leslie is unclear, but — judging by the mellow sound on recordings — it may be rather low at the top end. In the emulation, the signal within the Leslie is split into three frequency bands centred at 500Hz, 2kHz, and 5kHz (with different treatment for horn and woofer). The relative amplitude of these bands can be controlled individually; by default the upper band is reduced compared to the others.

Reverb

There is a “Reverb” unit in some Hammonds, which I believe is a simple spring based device. The one included in this emulation has much more range, because it just employs the ‘reverb’ opcode, so you can add in any amount of effect you might desire.