If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Hammond clone anyone?
Hammond clone anyone?
Having a brief mental pause from my current project (see 'Additive Organ Pipes') and I'm starting to wonder about the next one, as you do. (We'll be into those long winter nights before we know it)
I want to tackle the Hammond Organ / Compton Organ principle, both of which I have years of experience with in their hardware forms, so I reckon I might improve on them. Whereas I knew at the outset exactly how to approach my pipe-organ project I'm struggling a bit with the architecture this time around. Can anyone help?
All of the 'clone-wheel' keyboards (Roland / Nord / Hammond etc) invariably point out that they continuously run 96 (or whatever) tone-wheel-type oscillators (=sine-ish), and then the keying and harmonic drawbar settings control their relative output levels. Which is exactly what happens in a real Hammond, so no surprise.
How would I do that in Flowstone? I'm confident of being able to produce a level-control array from the keyboard & drawbars (once I've given it some thought anyway ...!), but the only way I know to produce oscillators is via a poly stream that starts with MIDI. Whereas this time I need them to run all the time. Meanwhile my keyboard / drawbar section will indeed begin at MIDI_In.
And then once I have said 96 oscillators running, how do I index control of their outputs from my hypothetical contol array?
Anyone ever looked at anything like this? (And apologies in advance if I'm being dumb!)
I want to tackle the Hammond Organ / Compton Organ principle, both of which I have years of experience with in their hardware forms, so I reckon I might improve on them. Whereas I knew at the outset exactly how to approach my pipe-organ project I'm struggling a bit with the architecture this time around. Can anyone help?
All of the 'clone-wheel' keyboards (Roland / Nord / Hammond etc) invariably point out that they continuously run 96 (or whatever) tone-wheel-type oscillators (=sine-ish), and then the keying and harmonic drawbar settings control their relative output levels. Which is exactly what happens in a real Hammond, so no surprise.
How would I do that in Flowstone? I'm confident of being able to produce a level-control array from the keyboard & drawbars (once I've given it some thought anyway ...!), but the only way I know to produce oscillators is via a poly stream that starts with MIDI. Whereas this time I need them to run all the time. Meanwhile my keyboard / drawbar section will indeed begin at MIDI_In.
And then once I have said 96 oscillators running, how do I index control of their outputs from my hypothetical contol array?
Anyone ever looked at anything like this? (And apologies in advance if I'm being dumb!)
-
HughBanton - Posts: 265
- Joined: Sat Apr 12, 2008 3:10 pm
- Location: Evesham, Worcestershire
Re: Hammond clone anyone?
Sounds like a great project idea Hugh.
I don’t really see why you need 91 oscillators all running simultaneously though, especially since they would need to operate in Blue (mono) mode.
If you have poly oscillators, one for each drawbar, then you have 9 oscillators per note and the CPU will only increase in multiples of 4 notes (due to SSE assignment by Flowstone). If you had 91 oscillators running continuously, one for each frequency, that’s a constant 91 oscillators. With the poly method it would need 9 per key x10 if you held 10 keys down (one key per finger, assuming you’re not Russ Conway). That is 90 oscillator instances BUT they are divided amongst the 4 SSE channels so the CPU usage would effectively be equivalent to about 23 oscillators maximum.
The alternative might be to have groups of 4 oscillators in mono and use pack/unpack modules which would then utilise all 4 channels. This would lead to possible difficulties with the MIDI side of things, triggering voices and envelopes etc. You can convert mono to poly but then the CPU would get burned out in the process.
If you want to accurately model crosstalk between adjacent wheel pickups, and indeed inside the loom, then things would get even more intense. My view is that crosstalk would be masked by the actual tones so that may not be an issue. I guess you could trigger a "beehive" sample for the loom thing.
The key is to experiment with different methods and decide which is easier to get similar sounding results, with a keen eye on the CPU usage.
Your idea is fascinating and I’m looking forward to seeing how you get on!
Good luck
Spogg
I don’t really see why you need 91 oscillators all running simultaneously though, especially since they would need to operate in Blue (mono) mode.
If you have poly oscillators, one for each drawbar, then you have 9 oscillators per note and the CPU will only increase in multiples of 4 notes (due to SSE assignment by Flowstone). If you had 91 oscillators running continuously, one for each frequency, that’s a constant 91 oscillators. With the poly method it would need 9 per key x10 if you held 10 keys down (one key per finger, assuming you’re not Russ Conway). That is 90 oscillator instances BUT they are divided amongst the 4 SSE channels so the CPU usage would effectively be equivalent to about 23 oscillators maximum.
The alternative might be to have groups of 4 oscillators in mono and use pack/unpack modules which would then utilise all 4 channels. This would lead to possible difficulties with the MIDI side of things, triggering voices and envelopes etc. You can convert mono to poly but then the CPU would get burned out in the process.
If you want to accurately model crosstalk between adjacent wheel pickups, and indeed inside the loom, then things would get even more intense. My view is that crosstalk would be masked by the actual tones so that may not be an issue. I guess you could trigger a "beehive" sample for the loom thing.
The key is to experiment with different methods and decide which is easier to get similar sounding results, with a keen eye on the CPU usage.
Your idea is fascinating and I’m looking forward to seeing how you get on!
Good luck
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Hammond clone anyone?
I'm still strongly of the opinion that the multiple continuous-oscillator method is the elegant way to tackle an additive organ like Hammond or Compton. (It's always possible that FS doesn't easily configure to do this - shock!)
91 tone wheels - yes, that's the number that Hammond used for decades, I gather there were 5 blank ones just for mechanical balancing (presumably without coils & magnets), how quaint! 96 notes, 8 octaves, would obviously be preferable.
A major point is that with this single set of oscillators you can build a two-manual & pedal organ (or larger) with no loss of polyphony .. e.g. see VB3's spec, that lists its polyphony at 147 (61+61+25), for this reason. ( http://www.genuinesoundware.com/?a=showproduct&b=24 ). Mad Hammond organists do a lot of hand glissandos, arms on keyboards etc. - way too many notes
VB3, Native Instruments and many others have already succesfully covered the 'Hammond Thing' in software so I'm rather more interested in going off on a tangent. Compton electrostatics (and later Makin) used the additive principle with multiple generators to great effect, lots to explore there in digital world.
It's still basically drawbars but they're hidden away, still a set of harmonic levels anyway. Note levels would be added up as required (albeit logarithmically, hmm) ..
for example if you take note number 61 (C6), the summing for its output level would go :
if (C6 key_is_pressed) C6_level = 16' drawbar_level;
if (C5 key_is_pressed) C6_level = C6_level + 8' drawbar_level;
if (F4 key_is_pressed) C6_level = C6_level + 5 1/3' drawbar_level;
if (C4 key_is_pressed) C6_level = C6_level + 4' drawbar_level;
if (F3 key_is_pressed) C6_level = C6_level + 2 2/3' drawbar_level; ...
and so on for all the drawbars or harmonic levels. Then for the other 95 notes. (I've done something closely related to this for the note regulation/equalisation in my HB3 pipe organ .fsm).
Then do the same for the other manual(s), then the pedals.
This is the very basic principle. So .. you end up with an array containing the 96 note levels. How to make this array control a bank of 96 oscillators, and how to get the control array and the 96 notes into two poly streams that can be multiplied together ?? Stuck ...
91 tone wheels - yes, that's the number that Hammond used for decades, I gather there were 5 blank ones just for mechanical balancing (presumably without coils & magnets), how quaint! 96 notes, 8 octaves, would obviously be preferable.
A major point is that with this single set of oscillators you can build a two-manual & pedal organ (or larger) with no loss of polyphony .. e.g. see VB3's spec, that lists its polyphony at 147 (61+61+25), for this reason. ( http://www.genuinesoundware.com/?a=showproduct&b=24 ). Mad Hammond organists do a lot of hand glissandos, arms on keyboards etc. - way too many notes
VB3, Native Instruments and many others have already succesfully covered the 'Hammond Thing' in software so I'm rather more interested in going off on a tangent. Compton electrostatics (and later Makin) used the additive principle with multiple generators to great effect, lots to explore there in digital world.
It's still basically drawbars but they're hidden away, still a set of harmonic levels anyway. Note levels would be added up as required (albeit logarithmically, hmm) ..
for example if you take note number 61 (C6), the summing for its output level would go :
if (C6 key_is_pressed) C6_level = 16' drawbar_level;
if (C5 key_is_pressed) C6_level = C6_level + 8' drawbar_level;
if (F4 key_is_pressed) C6_level = C6_level + 5 1/3' drawbar_level;
if (C4 key_is_pressed) C6_level = C6_level + 4' drawbar_level;
if (F3 key_is_pressed) C6_level = C6_level + 2 2/3' drawbar_level; ...
and so on for all the drawbars or harmonic levels. Then for the other 95 notes. (I've done something closely related to this for the note regulation/equalisation in my HB3 pipe organ .fsm).
Then do the same for the other manual(s), then the pedals.
This is the very basic principle. So .. you end up with an array containing the 96 note levels. How to make this array control a bank of 96 oscillators, and how to get the control array and the 96 notes into two poly streams that can be multiplied together ?? Stuck ...
-
HughBanton - Posts: 265
- Joined: Sat Apr 12, 2008 3:10 pm
- Location: Evesham, Worcestershire
Re: Hammond clone anyone?
I wonder about tuning. Surely it must be all integer ratios, but that is incompatible with well tempered tuning. Which means some intervals may sound good but others not. So how is it done?
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: Hammond clone anyone?
martinvicanek wrote:I wonder about tuning. Surely it must be all integer ratios, but that is incompatible with well tempered tuning. Which means some intervals may sound good but others not. So how is it done?
I wondered about that too. You can't have a fraction of a tooth after all
Turns out they use a "best fit" approach, to minimise tuning errors, which are in fact present with deviations from equal temperament. Everything is based on a non-existent 320 tooth wheel as a reference value.
Here is a really useful article about that and many other points, if you want to emulate a Hammond well:
http://electricdruid.net/technical-aspe ... ond-organ/
More about tuning:
http://www.tonalsoft.com/enc/h/hammond-organ.aspx
This project looks ever more challenging the more I read. Can't wait to hear the result!
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Hammond clone anyone?
Do you know, surprisingly Hammond tuning is something that never seems to bother anyone. And it gets worse with all the borrowing, of course, because in equal temperament G2 isn't a particularly accurate 3rd. harmonic of C1 (5 1/3', 2 2/3'), and as for E3 pretending to be the 5th. harmonic (1 3/5') ... ouchh!
Mind you, turn on the vibrato, stick it through a Leslie and the tuning all gets beautifully stirred up anyway, problem solved. All part & parcel of that Hammond sound
Electrostatic Compton organs used pulleys & belts so were reasonably close to equal temperament. Later they (or more particularly Makin) added second and third off-tuned sets of wheels to get the pitches of the rogue harmonics closer. If I can get the new project working I'll try and re-introduce that.
Thanks for those links Spogg, interesting to see all the details laid out like that. It's always amazed me that Laurens Hammond couldn't play a note, did you know? He was a brilliant inventor (synchronous electric clock, 3-D cinema glasses etc.) and his organ design is so off the wall - quite unlike the instrument it was supposed to copy. And yet it remains, thanks mainly to rock & jazz, the only electric instument of old that's still held in such high regard.
Meanwhile, I've had some inspiration on how to do this, need to do some experiments (hit by the bug now!!) but I have a couple of technical questions (one re each of my projects), so I'll start new threads later.
Hugh
Mind you, turn on the vibrato, stick it through a Leslie and the tuning all gets beautifully stirred up anyway, problem solved. All part & parcel of that Hammond sound
Electrostatic Compton organs used pulleys & belts so were reasonably close to equal temperament. Later they (or more particularly Makin) added second and third off-tuned sets of wheels to get the pitches of the rogue harmonics closer. If I can get the new project working I'll try and re-introduce that.
Thanks for those links Spogg, interesting to see all the details laid out like that. It's always amazed me that Laurens Hammond couldn't play a note, did you know? He was a brilliant inventor (synchronous electric clock, 3-D cinema glasses etc.) and his organ design is so off the wall - quite unlike the instrument it was supposed to copy. And yet it remains, thanks mainly to rock & jazz, the only electric instument of old that's still held in such high regard.
Meanwhile, I've had some inspiration on how to do this, need to do some experiments (hit by the bug now!!) but I have a couple of technical questions (one re each of my projects), so I'll start new threads later.
Hugh
-
HughBanton - Posts: 265
- Joined: Sat Apr 12, 2008 3:10 pm
- Location: Evesham, Worcestershire
Re: Hammond clone anyone?
Talking about cpu load, running 96 sine generators is not a big deal. The tricky part will be the assignment of 96 amplitudes based on the keys pressed. I think it is feasible with some hopping, however I would agree with Spogg that in FS it is easier to generate each note and all its overtones individually whenever the corresponding key is pressed.
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: Hammond clone anyone?
I think Hugh is going down the “authentic” route rather than the “easy” route!
You could have a 9 input mixer using stream multipliers (VCAs) for each and every note, each mixer channel being controlled by a single drawbar. In addition you may need a further 2 channels in the mixer for percussion . The ADSR for percussion would have to be triggered only by the first note pressed i.e. only triggered when all keys are off and one is pressed. Or maybe you could have a laggy compressor/expander just for the percussion channel, which might be easier to implement. Alternatively use the audio level to trigger an ADSR running in blue, convert the envelope to poly and use that output for the percussion channels in the mixer.
Then for the crosstalk you could have a further mixer channel, per key, and pre-wire it for the crosstalk based on the original tonewheel positions. So that’s say 96 keys x 12 channels = 1,152 VCAs and a shed load of wires, so you’d have to use lots of wireless ins and outs.
One possibly big advantage of Hugh’s method is he can accurately tune every single sine oscillator to properly emulate the Hammond method. Fortunately there are tables available for the frequencies.
Just to add interest I’ve read that the pedal board low frequency wheels were not sine waves. They had notches cut into the wheels to provide some higher harmonics. Looking at the waveforms I think you could make a similar spectrum from some level of clipping. Another aspect for investigation.
What fun!!
Spogg
EDIT: I forgot about key click noise. So maybe you'd need another channel for this too.
You could have a 9 input mixer using stream multipliers (VCAs) for each and every note, each mixer channel being controlled by a single drawbar. In addition you may need a further 2 channels in the mixer for percussion . The ADSR for percussion would have to be triggered only by the first note pressed i.e. only triggered when all keys are off and one is pressed. Or maybe you could have a laggy compressor/expander just for the percussion channel, which might be easier to implement. Alternatively use the audio level to trigger an ADSR running in blue, convert the envelope to poly and use that output for the percussion channels in the mixer.
Then for the crosstalk you could have a further mixer channel, per key, and pre-wire it for the crosstalk based on the original tonewheel positions. So that’s say 96 keys x 12 channels = 1,152 VCAs and a shed load of wires, so you’d have to use lots of wireless ins and outs.
One possibly big advantage of Hugh’s method is he can accurately tune every single sine oscillator to properly emulate the Hammond method. Fortunately there are tables available for the frequencies.
Just to add interest I’ve read that the pedal board low frequency wheels were not sine waves. They had notches cut into the wheels to provide some higher harmonics. Looking at the waveforms I think you could make a similar spectrum from some level of clipping. Another aspect for investigation.
What fun!!
Spogg
EDIT: I forgot about key click noise. So maybe you'd need another channel for this too.
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Hammond clone anyone?
I think Hugh is going down the “authentic” route rather than the “easy” route!
You got me. Mr OCD here
Meanwhile you guys should love this, which turned up today : http://www.ultimate-guitar.com/articles ... nium-66331
I've looked at this before but you might find it a real eye opener! Truly mindblowing for its time.
Hugh
-
HughBanton - Posts: 265
- Joined: Sat Apr 12, 2008 3:10 pm
- Location: Evesham, Worcestershire
Re: Hammond clone anyone?
HughBanton wrote:Meanwhile you guys should love this, which turned up today : http://www.ultimate-guitar.com/articles ... nium-66331
Hugh
Blimey! I'd heard about such a thing but never researched it. And here I was thinking my modular analogue synth system I made in the 80s was big and expensive!
This is a true triumph of vision over practicality and I have nothing but respect when something like that is realised.
Presumably this will be your next emulation
Thanks for the link.
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Who is online
Users browsing this forum: No registered users and 61 guests