m3rten I guess the easiest thing would be to apply the vibrato directly to the oscillators (there are 50+ of them now) rather than trying to pitch shift the entire output signal?
That's the approach of 60s and 70s cheap transistor organs (think Farfisa, Eko, Vox, Philicordia). Earlier designs had 12 LC oscillators, one per chromatic note, while later on dedicated ICs (top octave generators, TOG) were used to generate the 12 notes for the top octave dividing down an ultrasonic master oscillator. Either way, vibrato was pretty simple to implement: by applying the vibrato to the 12 or 1 master oscillator(s), this was applied to all notes on the keyboard. Unfortunately, the result i It is far from ideal as the resulting sound is pretty dry unless combined with decent reverberation.
A step forward from that, in terms of resulting sounds, is to have two fixed-frequency oscillators per note. This tends to be costly, as the whole tone generator section needs to be duplicated and in fact it's been pretty rare. One example of this is the Hammond model B-C, which had two electromechanical generators (the main and the "chorus" one, slightly detuned, but with a fixed pitch). When enabling "chorus" (that's what the C is in the name is for), you'd have both generators playing at once and the beating between the two detuned sets of harmonics would give air, thickness and lush to the sound. Luckily, a few years following the introduction of the B-C, Laurens Hammond invented the vibrato scanner, a sort of electromechanical delay line which was much cheaper to manufacture than having a second generator and was more flexible. Acting pretty much like the modulated delay lines of modern chorus generators, this took the dry signal and made a 'vibrato' version of it. Mixing it with the dry signal you could get different flavours of pure vibrato or rich chorus.
Most later "organs" that wanted to emulate a Leslie without including an actual rotary unit would use a chorus/flanger effect unit (analog BBD-based or digital) to emulate the Leslie sound. As a matter of fact, Tony Banks of Genesis used an Electric Mistress flanger on his Hammond even when the band's financial resources had improved to the point that they could have afforded real Leslies (you can hear it on the late-ish 1977's Seconds Out live album). Most string machines - which are essentially glorified transistor organs - would also use a 2- or 3- voice chorus. In the Yamaha SK- series, the FM Hammond emulator voice is passed through the very same BBD-based 3-voice chorus as the string machine/polysynth section.
The Freeman String Symphoniser is one of the first string machines and also one of the very few to use a chorus-less multiple detuned oscillators per note approach (similar in principle to the Hammond model B-V, but solid-state and with additional modulator). The aforementioned Yamaha SK-40, one of the last ones, has both detuned oscillators and BBD chorus, but that's a pretty rare combination ... that's probably it's not even really a string machine, but rather a polysynth ... But I digress...
All of this said, unless you are looking for that classic Philicordia vibrato to play down tempo 60's cumbia (in which case you need reverb), I suggest you use on of the other two strategies (or a combination thereof):
- additional sets of detuned oscillators, or
- a flanger/chorus (or even phaser)
Note that duplicating 91 oscillators was not cheap endeavour for the Hammond B-C and - albeit cheaper - it may be resource intensive duplicating (or triplicating) 50 oscillators even on modern embedded digital hardware, depending on the implementation. The fun thing about flanger/chorus, is that out of that you'd still get a free vibrato, if that's of interest.
m3rten Also, I've seen some mentioning of 90° trailing with sine/cosine waves and I'm not entirely sure what this means.
Not sure ... Regarding classic BBD-based string machines flanger/chorus, the modulation waveform is often composed of two sinusoidal components: a lower frequency (< 1Hz) sinewave summed with a faster (5Hz) one. Given N stages in your chorus, the phase difference between a stage and the following one to be (1 / N * 360). So if you have three stages (a la Logan String Ensemble, Solina or Vermona Piano Strings), the first one should be 0º, the second one 120º and the third one 240º. If you only have two stages (a la Elka Rhapsody), then they should be 0º and 180º.
Now, you didn't ask for most of this, but for a Leslie. As mentioned, a decent flanger/chorus may be enough for giving you sound the desired movement (ask Tony Banks), but if you want something more closely resembling a Leslie, you'll need to start with a 800Hz crossover filter first, then feed each band to a single delay line where the delay time is modulated and adjust he dry/wet balance for each. The crucial thing about Leslie is the ramp-up and ramp-down time of the modulations: while the cruise speed for both horns and rotor is the same, the time it takes each of them to reach it is very different, with the horns reacting to speed changes faster than the rotor. If needed, a bit of AM can be added to simulate the opening of the horn or rotor looking away from you at any given time, although in real life and in a real space that sound should hit a wall and bounce back to you, so maybe feeding it into a multichannel reverb would be more fun instead of doing straight AM.
For a chorus/flanger, and/or straight up Leslie emulation, you'll need some basic building blocks:
- fractional delay line
- modulation waveforms
- adjustable gain, delay times, modulation depth
What programming language are you planning to use?
Lots of fun.