This is an attempted reproduction of the “forgotten” Hammond Novachord synthesizer. This was produced only in the years 1939 through 1942, but was a true polyphonic synth. It was so far ahead of its time that few knew what to do with it, and production never resumed after the war. Only 1096 were ever built, and just a handful are still functional.
The Novachord was a 72-key instrument, fully electronic. It had selectable attack (ADSR) characteristics, and timbre could be varied widely with switchable filters. It had a unique true vibrato, with slightly different rates for different notes, giving an “orchestral” effect.
This emulation tries to provide most of the instrument’s features, how accurately I’m not sure, but it sounds fairly close to what I was able to find on the Web. It has a few modern enhancements added, like velocity sensitivity, overdrive and reverb. It is intended to be controlled by MIDI; there is no real provision to be driven from a Score file. As supplied, it is heavily tailored to my Axiom keyboard controller (default Patch 1), but it should be easily adaptable to any comparable keyboard. The controls of the original were all multiposition switches, rather than continuously variable, but the emulation just uses continuous MIDI controllers. It uses a total of 14 controllers, one of which is actually divided down to 8 positions, and another is mapped to On/Off.
If everything is set up correctly, you can run it with the command line
“csound novachord.csd
”.
However, you’ll need to ensure it’s using the correct MIDI device, either by
editing CsOptions in the CSD file, or with an option in the command line.
If your keyboard is not an Axiom, you will also need to edit all the MIDI
controller numbers in the file to your convenience.
This version has some minor changes and enhancements to the previous release. See Update below.
The actual keyboard had 72 notes, from the low-F on a piano (MIDI #29) to top-E (MIDI #100), but the emulation doesn’t bother to restrict this. You can play any available note if you want. The keyboard wasn’t velocity-sensitive, but the emulation is by default. You can suppress this, or alter its range, with a command line macro (see below). An Expression Pedal gave the player volume control, and this is provided here as the standard CC 11.
The original generated its notes with twelve top-octave oscillators, divided down for the lower octaves. These would never have been exactly in tune, so the notes of the octave in the emulation are detuned by a small arbitrary amount (kept to less than 10 cents). The maximum detuning can be changed or zeroed with a command-line macro (see below).
An attached Sustain pedal will operate just as on a piano (as this is built into Csound), though this is not a feature of the instrument itself. The Novachord had its own version of ‘Sustain’—adding an otherwise cut off ‘release’ section to a note—which is invoked if desired by the ‘Sustenuto’ pedal (CC 66). By default, this controller is disabled, with the release segment always present; it requires CC 5 (a fader on the Axiom) to be set to zero to be enabled.
The Novachord’s vibrato was supplied by metal reeds, vibrating at around seven times a second to generate square waves that modulated the notes’ frequencies. There were six of these, each driving two of the twelve top oscillators. Their rates were not identical, so they would give a chord a richer sound. The only control the player had was over intensity—the rates were fixed.
The emulation similarly has six square-wave oscillators, with arbitrarily chosen slightly differing frequencies. Each modulates two adjacent semitones of the octave. The intensity is continuously variable (unlike the fixed selections of the original) by the ModWheel CC 1. Optionally, you can also add vibrato with channel aftertouch. This is enabled with a macro (see below).
The Novachord’s Tone Controls could markedly shift the instrument’s timbre. The raw waveform from the oscillators and dividers was very ‘spiky’ (a threshold-chopped sawtooth), with a lot of harmonics, and the tone controls allowed passing different ranges of these to differing degrees. They were four-position switches in the original, but are continuously variable here.
All the controls are in parallel and additive. If they are all set to zero there will be no sound.
Some of the knobs on the Novachord’s front panel are not emulated. There was a ‘Balancer’, that adjusted the volume of the bass keys. A ‘Bright/Mellow’ switch could reduce the high harmonics, and a ‘Combination’ lever mechanically set all the other controls to “Percussion” or “Singing” configurations.
These were not in the original instrument, of course—at least deliberately… However, they can add to the character of the sound, so they are optionally available in the emulation:
A few macros are available, to allow setting some characteristics on the
command-line. These are applied by an option like: ‘--omacro:NAME=value
’.
‘--omacro:DBRANGE=80
’ will give an overall 80dB volume range.
‘--omacro:DBRANGE=0
’ will turn velocity sensitivity off.
‘--omacro:DETUNE=0
’ gives exact Equal Temperament tuning.
VTOUCH and ATOUCH may be used together if desired.
If you want to record the current controller settings, so that you can set them up to be the same at a later time, you can use the ‘Params’ instrument. This writes all the settings, in plain text, to a file ‘nova_params’ in the directory that csound is running from. Each invocation will append to the file.
You can trigger this by sending any MIDI percussion event (Channel 10)—
Trigger Pads are conveniently available on the Axiom. Alternatively you can
use a Real_Time Score Event ‘i"Params" 0 0
’ on stdin. (stdin is normally
enabled in the CsOptions.)
This version (April 2019) has a few updates from the original.
For my convenience, two faders were shifted to leave fader 9 free for other instruments
(see above and Axiom.html for the current assignments).
As Csound normally creates a new instrument instance for each key press, this caused
problems with Sustain Pedal use. Some added code now kills any earlier sounding of
the same note. And for playing along with recordings that may not be in standard
pitch, the MIDI RPN ‘1
’ Tuning Parameter has been implemented.
If you want to know more about the Novachord. here is a good place to start:
http://120years.net/the-novachordl-hammond-c-n-williamsusa1939/