# # Bristol mild crosstalk gearbox # # This file defines the diverse tonewheel generator parameters for the bristol # preacher algorithm. There are definitions per wheel that define its gain and # waveform, the gain levels for each of the slider busses, frequency, phase and # crosstalk levels betweem all the compartments. The tone gain can be # seen to equalise the whole keyboard and the bus gains to equalise ane given # note. There are also settings per slide bar bus for linearity. # # The selection between bright and normal is from the GUI "bright" button. # # Wheel damping is also known as 'volume stealing', 'volume robbing', etc, it # defines how much signal loss occurs if the same tonewheel is tapped twice # for any chord combination. The Hammond did not drive all the possible note # combinations linearly, so using the same wheel twice did not necessarily # double the volume, it would tailer off slightly. The GUI controls the overall # amount of damping, this controls the mapping of the damping over the keyboard. # # There are 91 wheels [0..90], 9 slider busses [0..9], the ordering is not # relevant and any undefined entries are interpolated between the nearest # defined boundaries. Upper and lower extremes are leveled to the nearest # defined value when not explicitly specified. # # There are the following options: # # ToneNormal: - tonewheel waveform normal # ToneBright: - tonewheel waveform bright # # EQNormal: - relative gain for that wheel in normal setting # EQBright: - relative gain for that wheel in bright setting # # DampNormal: - relative damping of wheel, normal setting # DampBright: - relative damping of wheel, bright setting # # BusNormal: - relative gain of slider busses, normal setting # BusBright: - relative gain of slider busses, bright setting # # Use whatver values you want however anything <= 0 is ignored. # # Waveforms are as follows: # # 1.0 - sinewave. # > 1 - tends towards ramp wave (5.0 has a quite sharp leading edge) # < 1 - tends towards square (0.0 is a rather sharp edged square wave) # # The defaults amplify the bass and treble frequencies, using a slight square # wave for the low frequencies moving up to ramps for the high end. # # This file is reread when the compress option is selected from the GUI # although this button does not actually affect the sound quality of the # preacher (it does affect the sound when the preacher is not selected). # Reloads are quite an intensive operation since all 91 wheel waveforms are # recalculated. Avoid them whilst actively playing, but you can adust the # values without having to restart the engine and test the net results, plus # changing the 'bright' button setting will have no impact on performance # since the differences are precalculated. # # Tonewheel waveforms, lower end are flatter to be a little hollow. This may # be incorrect since using a bright, higher frequency response would typically # result in the lower frequency waves having a richer content. The ranges # should be fixed such that the waveforms for the tooths are common by number # of teeth - there were 12 of each: 2, 4, 8, 16, 32, 64, 128 plus 6 of 192 # The output waveforms for each of these ranges should be comparable. # ToneNormal: 0 0.9 ToneNormal: 11 0.9 ToneNormal: 12 0.95 ToneNormal: 23 0.95 ToneNormal: 24 1.0 ToneNormal: 35 1.0 ToneNormal: 36 1.0 ToneNormal: 47 1.0 ToneNormal: 48 1.0 ToneNormal: 59 1.0 ToneNormal: 60 1.0 ToneNormal: 71 1.0 ToneNormal: 72 1.0 ToneNormal: 83 1.0 ToneNormal: 84 1.0 ToneNormal: 96 1.0 # # ToneNormal: 0 0.60 # ToneNormal: 32 0.80 # ToneNormal: 40 0.90 # ToneNormal: 50 1.0 # ToneNormal: 65 1.0 # ToneNormal: 70 1.05 # ToneNormal: 75 1.1 # Equalisation "Normal" - tonewheels and busses. This is a rough estimate of # the mV output signals taken from a B3 and it should match up to the tapering # resistor values to normalise the signals later. EQNormal: 0 4.0 EQNormal: 11 2.5 EQNormal: 12 2.0 EQNormal: 23 1.5 EQNormal: 24 1.0 EQNormal: 35 1.0 EQNormal: 36 0.8 EQNormal: 47 0.9 EQNormal: 48 1.0 EQNormal: 59 1.3 EQNormal: 60 1.4 EQNormal: 71 1.4 EQNormal: 72 1.5 EQNormal: 82 3.0 EQNormal: 90 2.5 # Bus normal EQ BusNormal: 0 1.2 BusNormal: 5 1.0 BusNormal: 8 1.0 # Wheel damping 'normal' - some loss of signal at lower frequencies DampNormal: 0 0.9 DampNormal: 90 1.0 # Tonewheel bright waveforms: square at low end, small distortion upper ToneBright: 0 0.50 ToneBright: 11 0.50 ToneBright: 12 0.65 ToneBright: 23 0.65 ToneBright: 24 0.80 ToneBright: 35 0.80 ToneBright: 36 0.90 ToneBright: 47 0.90 ToneBright: 48 1.0 ToneBright: 59 1.0 ToneBright: 60 1.0 ToneBright: 71 1.0 ToneBright: 72 0.95 ToneBright: 83 0.95 ToneBright: 84 0.9 ToneBright: 96 0.9 # "Bright" equalisation EQBright: 0 4.0 EQBright: 11 2.5 EQBright: 12 2.0 EQBright: 23 1.5 EQBright: 24 1.0 EQBright: 35 1.0 EQBright: 36 0.8 EQBright: 47 0.9 EQBright: 48 1.0 EQBright: 59 1.3 EQBright: 60 2.4 EQBright: 71 2.4 EQBright: 72 2.5 EQBright: 83 2.5 EQBright: 85 3.5 EQBright: 90 3.5 # Bus Bright EQ - this is where most of the 'brightness' comes from now. BusBright: 0 1.0 BusBright: 4 0.6 BusBright: 8 1.5 # Wheel damping 'bright' - more loss of signal at lower frequencies DampBright: 0 0.85 DampBright: 90 1.0 # # These are the gains of each stop on the sliders. These values result in # a linear interpolation but you can change that if you want to have things # like exponential gains, uneven gains. # # These value add a small amount to the 'stopped' bus to emulate the bus # leakage (in a rather crude fashion). # stops: 0 0.0001 stops: 8 1.0 # # Wheels are defined as # # wheel: # # These can redefine the Hammond 'almost' Even Tempered frequencies and the # wheel phases. The default frequencies are the slightly off hammond notes, # here we are going to add additional flatness on the 192-toothed wheels. # # Default phase is to init totally randomly, this is pretty much how the # Hammond operated - the teeth were located by spring friction only and could # wander with transport as the wheel could 'walk' under vibration. Phase should # not affect the sound, but actually it does. If you don't like the random # change between invocations then they can be fixed here. Either way, you do # not want to go for all the wheels to be totally in phase, that would be very # electronic - if you want to emulate the L or M series this could be useful. # # Entering a negative value or the hyphen ('-') will leave the default value. # Entering zero instead of - should give you a clean leading phase. # # This is the default initial gearbox generated automatically by the engine, # you can redefine it here: # #wheel: 0 41.193748 - #wheel: 1 43.636250 - #wheel: 2 46.250000 - #wheel: 3 49.000000 - #wheel: 4 51.892502 - #wheel: 5 55.000000 - #wheel: 6 58.259998 - #wheel: 7 61.715000 - #wheel: 8 65.385002 - #wheel: 9 69.267502 - #wheel: 10 73.425003 - #wheel: 11 77.777496 - #wheel: 12 82.387497 - #wheel: 13 87.272499 - #wheel: 14 92.500000 - #wheel: 15 98.000000 - #wheel: 16 103.785004 - #wheel: 17 110.000000 - #wheel: 18 116.519997 - #wheel: 19 123.430000 - #wheel: 20 130.770004 - #wheel: 21 138.535004 - #wheel: 22 146.850006 - #wheel: 23 155.554993 - #wheel: 24 164.774994 - #wheel: 25 174.544998 - #wheel: 26 185.000000 - #wheel: 27 196.000000 - #wheel: 28 207.570007 - #wheel: 29 220.000000 - #wheel: 30 233.039993 - #wheel: 31 246.860001 - #wheel: 32 261.540009 - #wheel: 33 277.070007 - #wheel: 34 293.700012 - #wheel: 35 311.109985 - #wheel: 36 329.549988 - #wheel: 37 349.089996 - #wheel: 38 370.000000 - #wheel: 39 392.000000 - #wheel: 40 415.140015 - #wheel: 41 440.000000 - #wheel: 42 466.079987 - #wheel: 43 493.720001 - #wheel: 44 523.080017 - #wheel: 45 554.140015 - #wheel: 46 587.400024 - #wheel: 47 622.219971 - #wheel: 48 659.099976 - #wheel: 49 698.179993 - #wheel: 50 740.000000 - #wheel: 51 784.000000 - #wheel: 52 830.280029 - #wheel: 53 880.000000 - #wheel: 54 932.159973 - #wheel: 55 987.440002 - #wheel: 56 1046.160034 - #wheel: 57 1108.280029 - #wheel: 58 1174.800049 - #wheel: 59 1244.439941 - #wheel: 60 1318.199951 - #wheel: 61 1396.359985 - #wheel: 62 1480.000000 - #wheel: 63 1568.000000 - #wheel: 64 1660.560059 - #wheel: 65 1760.000000 - #wheel: 66 1864.319946 - #wheel: 67 1974.880005 - #wheel: 68 2092.320068 - #wheel: 69 2216.560059 - #wheel: 70 2349.600098 - #wheel: 71 2488.879883 - #wheel: 72 2636.399902 - #wheel: 73 2792.719971 - #wheel: 74 2960.000000 - #wheel: 75 3136.000000 - #wheel: 76 3321.120117 - #wheel: 77 3520.000000 - #wheel: 78 3728.639893 - #wheel: 79 3949.760010 - #wheel: 80 4184.640137 - #wheel: 81 4433.120117 - #wheel: 82 4699.200195 - #wheel: 83 4977.759766 - #wheel: 84 5272.799805 - #wheel: 85 5585.439941 - #wheel: 86 5920.000000 - #wheel: 87 6272.000000 - #wheel: 88 6642.240234 - #wheel: 89 7040.000000 - #wheel: 90 7457.279785 - # # This are for the 192 teethed wheels which are additionally a few cents out: # wheel: 84 5250.799805 - wheel: 85 5555.439941 - wheel: 86 5900.000000 - wheel: 87 6232.000000 - wheel: 88 6600.240234 - wheel: 89 7010.000000 - A - flatten by about 0.3 cents. The rest are flat wheel: 90 7400.279785 - and are now just a bit flatter. No phase changes. # # Level of crosstalk from the 3 other wheels in the same compartment. The # defaults should be according to the normal 60Hz tonewheel box including # crosstalk for the 2/4 and 8/32 wheels. # # These are not dB values but linear gain from 0 to 1.0 and if anybody wants # dB signal loss values then they either need to calculate them or get in # touch with me to encode it that way. # # The first two values govern the crosstalk between the two near wheels, and # the second two from the two far wheels. Crosstalk to the first wheel in a # compartment is typically lower due to the effects of the shaping filter # applied to low frequency wheels. # # The 4th entry is for the drawbar bus crosstalk. # # Entries 5 through 8 are filter and loom crosstalk. # crosstalkNormal: 0 0.0001 crosstalkNormal: 1 0.0002 crosstalkNormal: 2 0.0001 crosstalkNormal: 3 0.0002 crosstalkNormal: 4 0.0001 crosstalkNormal: 5 0.002 crosstalkNormal: 6 0.0005 crosstalkNormal: 7 0.003 crosstalkNormal: 8 0.001 crosstalkBright: 0 0.001 crosstalkBright: 1 0.002 crosstalkBright: 2 0.001 crosstalkBright: 3 0.002 crosstalkBright: 4 0.001 crosstalkBright: 5 0.002 crosstalkBright: 6 0.005 crosstalkBright: 7 0.003 crosstalkBright: 8 0.001 # # And the compartment table. These are the note numbers (Hammond counted from # 1, but as we all know that does not work well for computers) in each of # the 24 compartments. Each compartment had a pair of tonewheels at each side # and there was more crosstalk between these two than the far two at the other # side of the compartment due to distance. Note that these are not the same as # the MIDI note numbers from KeyOn events, but internal 'tooth' indeces. # # These chamber definitions should be correct but if you see any discrepencies # let me know. Each tonewheel was in a compartment with 3 other octaves of the # same note and there were two compartments for any given key covering either # seven or eight octaves. Some notes had empty top frequency tonewheels since # the then engineering could not put enough teeth on the wheel, these were # dealt with using foldback from lower frequencies (and the lowest octave also # had foldback from one octave above for slightly different related reasons). # # Crosstalk '0' is used between the first pair and the last pair - they are the # adjacent wheels. The other two crosstalk are for the opposite pair and could # really have been consolidated into a single value. # # Crosstalk level-3 is used for bus crosstalk of the drawbars. # # For example, from the first line: # # Wheel 0 has crosstalk from 48 at level0, plus 12 at level1 and 60 at level2. # Wheel 48 has crosstalk from 0 at level0, plus 60 at level1 and 12 at level2. # Wheel 12 has crosstalk from 60 at level0, plus 0 at level1 and 48 at level2. # Wheel 60 has crosstalk from 12 at level0, plus 48 at level1 and 0 at level2. # # These lines can be extended to include the crosstalk levels if you want to # redefine them per wheel. # #compartment: 0 0 48 12 60 0.01 0.03 0.01 0.02 compartment: 0 0 48 12 60 compartment: 1 24 72 37 - compartment: 2 7 55 19 67 compartment: 3 31 79 43 86 compartment: 4 2 50 14 62 compartment: 5 26 74 38 - compartment: 6 9 57 21 69 compartment: 7 33 81 45 88 compartment: 8 4 52 16 64 compartment: 9 28 76 40 - compartment: 10 11 59 23 71 compartment: 11 35 83 47 90 compartment: 12 6 54 18 66 compartment: 13 30 78 42 85 compartment: 14 1 49 13 61 compartment: 15 25 73 37 - compartment: 16 8 56 20 68 compartment: 17 32 80 44 54 compartment: 18 3 51 15 63 compartment: 19 27 75 13 - compartment: 20 10 58 22 70 compartment: 21 34 82 46 89 compartment: 22 5 53 17 65 compartment: 23 29 77 41 84 # # Adjacency table. Each wheel, apart from being in a shared compartment which # created crosstalk was also on a filter board with different notes in its # vicinity and in a wire loom with various adjacent cables. There are another # four entries in the crosstalk table for these values, the default given # here are for the filter adjacency, but the fact is these can be redefined for # arbitrary wheel numbers if you want to create a loom. Again, the crosstalk # values are optional and override the defaults. # # The default adjacency table is actually taken from the above compartment table # as the filter circuits were mounted on the outside, hence, wheel 30 in # compartment 13 had 4 main neighbors, these being 6, 1 and 49 and 54. The # crosstalk between these will follow the default values unless otherwise # defined. The adjacency for wheel zero is given as reference as it only has # two adjacent filters. # adjacency: 30 1 6 49 54 0.6 0.5 0.3 0.3 adjacency: 0 24 72 - - 0.6 0.5 # # Drawbar equalisation. # # The tapering table controls the wheel gains by drawbar. It works after the # wheel EQ given above and actually gives a different mix by drawbar by key. # Again, this should follow the actual tapering schematics although the values # used may need to be different as these translate again into linear gains. # # If these look wrong let me know, they were taken from the schematics of one # Hammond model. You can emulate broken stops by giving that stop value a very # large impedence - 1000, 2000, etc. # # The original circuit was a resistive divider with the output signal over # a 24 Ohms impedence. The values that are entered here are the net signal # gain/loss or a resistor index. The index makes it easier to change the # settings globally without needing a degree in 'vi'. The reason both formats # are accepted is that one is easier to define, the other is more flexible # and will allow resistor tolerances to be built in to be less mechanical. # # taper: note <16'> <5 1/3'> <8'> <4'> <2 2/3'> <2'> <1 3/5'> <1 1/3'> <1'> # # There is one entry per note from 0 to 60 for a C to C keyboard. Values outside # this range are undefined. # # The default taper table is: # # resistors: 100 50 34 24 15 10 # resistors: 0.4 0.6 0.8 1.0 1.2 1.4 // resulting gain level. # # taper: * 0.4 0.8 0.6 0.8 1.4 1.4 1.2 1.0 1.0 # # With the values given above the below three lines are ~equivalent, they use # R value with an index into the resistor array (value must be less than array # size), the actual resistor values as defined by Hammond, or any other value # greater than 6, or a literal value for the gain: # # taper: 0 R0 R2 R1 R2 R5 R5 R4 R3 R3 # taper: 0 R100 R34 R50 R34 R10 R10 R15 R24 R24 # taper: 0 R101 R31 R51 R33 R11 R10 R15 R25 R24 // slightly off # taper: 0 0.4 0.8 0.6 0.8 1.4 1.4 1.2 1.0 1.0 # resistors: 0 0.4 resistors: 5 1.4 taper: 0 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 1 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 2 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 3 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 4 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 5 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 6 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 7 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 8 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 9 R0 R2 R1 R2 R5 R5 R4 R3 R3 taper: 10 R1 R2 R1 R2 R5 R5 R4 R3 R3 taper: 11 R1 R2 R1 R2 R5 R4 R4 R3 R3 taper: 12 R1 R2 R1 R2 R4 R4 R4 R3 R3 taper: 13 R1 R2 R1 R3 R4 R4 R4 R3 R3 taper: 14 R1 R3 R1 R3 R4 R4 R4 R3 R3 taper: 15 R1 R3 R2 R3 R4 R4 R4 R3 R3 taper: 16 R2 R3 R2 R3 R4 R4 R4 R3 R3 taper: 17 R2 R3 R2 R3 R4 R4 R4 R3 R3 taper: 18 R2 R3 R2 R3 R4 R4 R3 R3 R3 taper: 19 R2 R3 R2 R3 R4 R4 R3 R3 R3 taper: 20 R2 R3 R2 R3 R3 R3 R3 R3 R3 taper: 21 R2 R3 R2 R3 R3 R3 R3 R3 R3 taper: 22 R2 R3 R2 R3 R3 R3 R3 R3 R3 taper: 23 R2 R3 R3 R3 R3 R3 R3 R3 R3 taper: 24 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 25 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 26 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 27 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 28 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 29 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 30 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 31 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 32 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 33 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 34 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 35 R3 R3 R3 R3 R3 R3 R3 R3 R3 taper: 36 R4 R3 R3 R3 R3 R3 R3 R3 R3 taper: 37 R4 R3 R4 R3 R3 R3 R3 R3 R3 taper: 38 R4 R4 R4 R3 R3 R3 R3 R3 R3 taper: 39 R4 R4 R4 R2 R3 R3 R3 R3 R3 taper: 40 R4 R4 R4 R2 R2 R3 R3 R3 R3 taper: 41 R4 R4 R4 R2 R2 R2 R3 R3 R3 taper: 42 R4 R4 R4 R2 R2 R2 R2 R3 R3 taper: 43 R4 R4 R4 R2 R2 R2 R2 R2 R1 taper: 44 R4 R4 R4 R2 R2 R2 R2 R2 R1 taper: 45 R4 R4 R4 R2 R2 R2 R2 R2 R1 taper: 46 R4 R4 R4 R2 R2 R2 R2 R2 R1 taper: 47 R4 R4 R4 R2 R2 R2 R2 R2 R1 taper: 48 R5 R4 R4 R2 R2 R2 R2 R1 R1 taper: 49 R5 R4 R5 R2 R2 R2 R2 R1 R1 taper: 50 R5 R5 R5 R2 R2 R2 R2 R1 R1 taper: 51 R5 R5 R5 R2 R2 R2 R1 R1 R1 taper: 52 R5 R5 R5 R2 R1 R2 R1 R1 R1 taper: 53 R5 R5 R5 R2 R1 R2 R1 R1 R1 taper: 54 R5 R5 R5 R2 R1 R2 R1 R1 R1 taper: 55 R5 R5 R5 R2 R1 R1 R1 R1 R1 taper: 56 R5 R5 R5 R2 R1 R1 R1 R1 R1 taper: 57 R5 R5 R5 R2 R1 R1 R1 R1 R1 taper: 58 R5 R5 R5 R2 R1 R1 R1 R1 R1 taper: 59 R5 R5 R5 R2 R1 R1 R1 R1 R1 taper: 60 R5 R5 R5 R2 R1 R1 R1 R1 R1 # # KeyClick section. The preacher has its own keyclick emulation. Each key has # 9 contacts, one for each drawbar bus, and each will make a contact at a # slightly different time due to wear and creep of the contacts. This is # emulated with a millisecond offset timer from the note_on event such that # each bus has its own delay before two things happen: # # 1: contact is made and the tonewheel finally passes to the output. # 2: click is generated at a specified level. # # The gain levels apply to the noise level from that single contact, they may # be different but always apply to the same offset timer. The timers are fixed, # however there is no link between the offset and the drawbar, they are # mildly randomised, partly by index selection but also by key velocity - these # are the maximum offsets, when a key is hit faster then it moves faster and # the contact delays compress, as with the original instrument (almost - if # you want to know the differences then mail me). # # Gains can be inverted on selection, and the pulse from each contact can be # controlled from a limited selection. # # There are currently 6 waveforms: 0 to 2 are sines of different frequencies, # 3 is a pulse wave edged with noise, 4 and 5 are ramped waves with different # attack and decay characteristics. # # The overall level of keyclick also has a control in the GUI. All these values # use the drawbar number as index. # # There is currently no NoteOff grooming (0.10.2). # BusDelayNormal: 0 0.001 BusDelayNormal: 8 80 BusDelayBright: 0 0.001 BusDelayBright: 1 100.0 BusDelayBright: 2 77.0 BusDelayBright: 3 3.0 BusDelayBright: 4 4.0 - These are the percussive busses and do not carry click BusDelayBright: 5 0.2 - also responds better with a short delay. BusDelayBright: 6 30 BusDelayBright: 7 70 BusDelayBright: 8 100 # Click gain levels by bus. ClickNormal: 0 1.0 ClickNormal: 8 0.5 ClickBright: 0 2.0 ClickBright: 1 1.0 ClickBright: 2 0.01 ClickBright: 3 0.8 ClickBright: 4 0.001 ClickBright: 5 0.001 ClickBright: 6 0.5 ClickBright: 7 1.0 ClickBright: 8 1.8 ClickPulseNormal: 0 0.001 ClickPulseNormal: 0 1.0 ClickPulseNormal: 0 2.0 ClickPulseNormal: 8 3 ClickPulseBright: 0 3 ClickPulseBright: 8 0.001 ClickInvertNormal: 0 0.01 ClickInvertNormal: 1 1 ClickInvertNormal: 2 0.01 ClickInvertNormal: 3 1 ClickInvertNormal: 4 0.01 ClickInvertNormal: 5 1 ClickInvertNormal: 6 0.01 ClickInvertNormal: 7 1 ClickInvertNormal: 8 0.01 ClickInvertBright: 0 1 ClickInvertBright: 1 0.01 ClickInvertBright: 2 1 ClickInvertBright: 3 0.01 ClickInvertBright: 4 1 ClickInvertBright: 5 0.01 ClickInvertBright: 6 1 ClickInvertBright: 7 0.01 ClickInvertBright: 8 1