1#
2# The midi control mapping file. This is used by the engine to define a static
3# selection of midi mappings for the runtime for each emulation. There is a
4# separate 'global' mapping file for the engine that are applied before these
5# mappings:
6#
7# $BRISTOL/memory/profiles/midicontrollermap
8#
9# You are strongly advised NOT TO EDIT THIS FILE, but to make a private copy
10# in $HOME/.bristol/memory/profiles, or if you have defined your own DB in
11# $BRISTOL_CACHE/memory/profiles since that way any changes can be undone by
12# removing the private file and hence reverting back to the factory default.
13#
14# This file is read once when the emulation is started.
15#
16# microTonalMap: <midi_key> <frequency>
17# velocityMap: <velocity> <gain>
18# velocityTable: 0 <table>
19#
20# There is no default microTonalMap, the engine has an internal evenly tempered
21# scale that is used if the private map is not defined. If you want to have
22# a true microtonal mapping then it will really have to be defined for each
23# key, I don't have any interpolation routines as the scale is undefined.
24#
25# This microtonal map has priority over the engine mapping as it is specific to
26# just one emulation. Also, if a microtonal map is defined then pitch bend will
27# currently not operate. The pitch bend is evenly tempered and as such the
28# results for any microtonal map is undefined as the scale is not defined.
29#
30#
31#
32# The velocity map is table of points that is interpolated linearly: you
33# may only have to define the inflexion points, however if you want smooth
34# curves you will have to define each of the 128 velocity values that are used
35# in noteon/noteoff events. The emulation only has a single table of gain
36# levels for each key.velocity index, the engine by contrast has two tables,
37# one for each on/off event however that is an integer map, not a gain map.
38#
39# There are several default tables if you do not want to specify your own
40# interpolated curve. Each table is the gain for the Midi velocity value given
41# in the note event, it has 128 entries. The following are implmented:
42#
43#	100-199 Convex curves for a soft touch keyboard player
44#	200-499 Concave curves for a hard touch, linear up to quadratic function.
45#
46# The next set up to 525 are repeats of the above but with less granularity. In
47# the above range the value of 200 is linear, as is 510 below:
48#
49#	500-509 Convex curves for a soft touch keyboard player
50#	510 linear
51#	511-25 Concave curves for a hard touched player.
52#
53# Then there are a couple of specific curves
54#
55#	550 logarithmic
56#	560 parabolic
57#
58# The values up to 100 consists of two digit numbers. The first digit defines
59# how late the line starts (it is linear) to ramp up, and the second digit is
60# how late it reaches 1.0. The value of 09 is almost the linear mapping above
61# as it starts from 0 and ends almost at the end. A value of 49 would be for
62# a heavy player, it is zero for a large part of the velocity table, and then
63# ramps up to max gain (1.0) close the end of the table. Note that these table
64# could also have been defined with velocityMap definitions as they are linear
65# interpolations. A present release will include curves to smooth things out
66# a little.
67#
68# Option 520 is a squared powercurve and feels quite natural although that is
69# very subjective. Perhaps its natural for a hard player and it could be a
70# better default than the linear curve.
71#
72# The value 1000 will invert the mapping, so:
73#
74#	1510 - linear from 1.0 down to 0.0 as velocity increases
75#	1520 - exponential, from 1.0 down to 0.0 as velocity increases
76#
77# The engine mapping is applied before the emulation mapping given here. There
78# are reasonable arguments to make this table logarithmic - you are welcome to
79# do so. There are no limits to the values here other than negative values are
80# not mapped, so this table can also be used to compensate for volume levels.
81#
82#velocityMap: 0 0.000001
83#velocityMap: 127 1.0
84velocityTable: 0 518
85
86#
87# It is possible to  specify a value curve for each continuous controller. The
88# interface recognises the following controllers with their associated indeces:
89#
90#	BankSelectCoarse (0)
91#	ModulationWheelCoarse (1)
92#	BreathcontrollerCoarse (2)
93#	FootPedalCoarse (4)
94#	PortamentoTimeCoarse (5)
95#	DataEntryCoarse (6)
96#	VolumeCoarse (7)
97#	BalanceCoarse (8)
98#	PanpositionCoarse (10)
99#	ExpressionCoarse (11)
100#	EffectControl1Coarse (12)
101#	EffectControl2Coarse (13)
102#	GeneralPurposeSlider1 (16)
103#	GeneralPurposeSlider2 (17)
104#	GeneralPurposeSlider3 (18)
105#	GeneralPurposeSlider4 (19)
106#	BankSelectFine (32)
107#	ModulationWheelFine (33)
108#	BreathcontrollerFine (34)
109#	FootPedalFine (36)
110#	PortamentoTimeFine (37)
111#	DataEntryFine (38)
112#	VolumeFine (39)
113#	BalanceFine (40)
114#	PanpositionFine (42)
115#	ExpressionFine (43)
116#	EffectControl1Fine (44)
117#	EffectControl2Fine (45)
118#	HoldPedal (64)
119#	Portamento (65)
120#	SustenutoPedal (66)
121#	SoftPedal (67)
122#	LegatoPedal (68)
123#	Hold2Pedal (69)
124#	SoundVariation (70)
125#	SoundTimbre (71)
126#	SoundReleaseTime (72)
127#	SoundAttackTime (73)
128#	SoundBrightness (74)
129#	SoundControl6 (75)
130#	SoundControl7 (76)
131#	SoundControl8 (77)
132#	SoundControl9 (78)
133#	SoundControl10 (79)
134#	GeneralPurposeButton1 (80)
135#	GeneralPurposeButton2 (81)
136#	GeneralPurposeButton3 (82)
137#	GeneralPurposeButton4 (83)
138#	EffectsLevel (91)
139#	TremuloLevel (92)
140#	ChorusLevel (93)
141#	CelesteLevel (94)
142#	PhaserLevel (95)
143#	DataButtonincrement (96)
144#	DataButtondecrement (97)
145#	Non-registeredParameter (98)
146#	Non-registeredParameter (99)
147#	RegisteredParameter (100)
148#	RegisteredParameter (101)
149#	AllSoundOff (120)
150#	AllControllersOff (121)
151#	LocalKeyboard (122)
152#	AllNotesOff (123)
153#	OmniModeOff (124)
154#	OmniModeOn (125)
155#	MonoOperation (126)
156#	PolyOperation (127)
157#
158# The controllers above 95 should not really be remapped, the default linear
159# mapping is the only one that makes sense however they are still parsed. The
160# following definition would define a curve for the foot pedal with a sharp
161# high end since there is an inflexion at value 100 - these are the 'from-to'
162# mappings:
163#
164#	FootPedalCoarse: 0 0.0001
165#	FootPedalCoarse: 100 64
166#	FootPedalCoarse: 127 127
167#
168# The default curve is linear one-to-one. There are several factory curves:
169#
170#	linear
171#	inverseLinear
172#	log
173#	inverseLog
174#	exponential
175#	inverseExponential
176#	parabola
177#	inverseParabola
178#
179# The following defines an exponential curve for the same foot pedal - the
180# exponential is a list of the controllers that will be given its curve, in
181# this case controller number 4 - a value other than zero will apply this
182# curve to the given controller id:
183#
184#	exponential: 4 1
185#
186# The factory curves are parsed first, then any specific curves, so of both of
187# two above settings were given then the foot pedal would first be given the
188# factory exponential curve, then the specific FootPedal control would be
189# applied.
190#
191# By way of disclaimer, the fact that the GUI and engine recognise these
192# controllers does not mean they interpret them. If you want to have the
193# envelope attach be controlled by SoundAttackTime (73) then you have to
194# configure that as a controller mapping with the GUI (middle mouse button
195# then move controller. If you want that to be an inverse controller such that
196# attack goes slower as the value goes up then you remap it to inverseLinear
197# here.
198# Work is being done to deliver some default controller mappings that are as
199# near as possible to GM2 - the above controller definitions.
200#
201
202#
203# The default microtonal map, ie, the bristol ET scale for the midi key range,
204# is not actually correct for the Vox. It had a master oscillator at about
205# 2MHz and divided those values down introducing a few cents of error:
206#
207microTonalMap: 0 8.175879
208microTonalMap: 1 8.661983
209microTonalMap: 2 9.177091
210microTonalMap: 3 9.722803
211microTonalMap: 4 10.300889
212microTonalMap: 5 10.913456
213microTonalMap: 6 11.562431
214microTonalMap: 7 12.249948
215microTonalMap: 8 12.978416
216microTonalMap: 9 13.750051
217microTonalMap: 10 14.567703
218microTonalMap: 11 15.434004
219microTonalMap: 12 16.351892
220microTonalMap: 13 17.324118
221microTonalMap: 14 18.354349
222microTonalMap: 15 19.445795
223microTonalMap: 16 20.601990
224microTonalMap: 17 21.826912
225microTonalMap: 18 23.125130
226microTonalMap: 19 24.500196
227microTonalMap: 20 25.957170
228microTonalMap: 21 27.500481
229microTonalMap: 22 29.135832
230microTonalMap: 23 30.868008
231microTonalMap: 24 32.704319
232microTonalMap: 25 34.648834
233microTonalMap: 26 36.709373
234microTonalMap: 27 38.892345
235microTonalMap: 28 41.204830
236microTonalMap: 29 43.654778
237microTonalMap: 30 46.251331
238microTonalMap: 31 49.000393
239microTonalMap: 32 51.915688
240microTonalMap: 33 55.002476
241microTonalMap: 34 58.271664
242microTonalMap: 35 61.736015
243microTonalMap: 36 65.410782
244microTonalMap: 37 69.300072
245microTonalMap: 38 73.421440
246microTonalMap: 39 77.784691
247microTonalMap: 40 82.413055
248microTonalMap: 41 87.313370
249microTonalMap: 42 92.506935
250microTonalMap: 43 98.000786
251microTonalMap: 44 103.831375
252microTonalMap: 45 110.011002
253microTonalMap: 46 116.550117
254microTonalMap: 47 123.472031
255microTonalMap: 48 130.821564
256microTonalMap: 49 138.600143
257microTonalMap: 50 146.842880
258microTonalMap: 51 155.569382
259microTonalMap: 52 164.826111
260microTonalMap: 53 174.641983
261microTonalMap: 54 185.013870
262microTonalMap: 55 196.001572
263microTonalMap: 56 207.684326
264microTonalMap: 57 220.022003
265microTonalMap: 58 233.100235
266microTonalMap: 59 246.974564
267microTonalMap: 60 261.643127
268microTonalMap: 61 277.238708
269microTonalMap: 62 293.685760
270microTonalMap: 63 311.138763
271microTonalMap: 64 329.706573
272microTonalMap: 65 349.283966
273microTonalMap: 66 370.096222
274microTonalMap: 67 392.003143
275microTonalMap: 68 415.454926
276microTonalMap: 69 440.140839
277microTonalMap: 70 466.200470
278microTonalMap: 71 494.071136
279microTonalMap: 72 523.286255
280microTonalMap: 73 554.631165
281microTonalMap: 74 587.544067
282microTonalMap: 75 622.277527
283microTonalMap: 76 659.630615
284microTonalMap: 77 698.812012
285microTonalMap: 78 740.192444
286microTonalMap: 79 784.313721
287microTonalMap: 80 831.255188
288microTonalMap: 81 880.281677
289microTonalMap: 82 932.835815
290microTonalMap: 83 988.142273
291microTonalMap: 84 1047.120361
292microTonalMap: 85 1109.877930
293microTonalMap: 86 1175.088135
294microTonalMap: 87 1245.329956
295microTonalMap: 88 1319.261230
296microTonalMap: 89 1398.601440
297microTonalMap: 90 1481.481445
298microTonalMap: 91 1569.858765
299microTonalMap: 92 1663.893555
300microTonalMap: 93 1760.563354
301microTonalMap: 94 1865.671631
302microTonalMap: 95 1976.284546
303microTonalMap: 96 2096.436035
304microTonalMap: 97 2222.222168
305microTonalMap: 98 2352.941162
306microTonalMap: 99 2493.765625
307microTonalMap: 100 2638.522461
308microTonalMap: 101 2801.120361
309microTonalMap: 102 2967.359131
310microTonalMap: 103 3144.654053
311microTonalMap: 104 3333.333252
312microTonalMap: 105 3521.126709
313microTonalMap: 106 3731.343262
314microTonalMap: 107 3952.569092
315microTonalMap: 108 4201.680664
316microTonalMap: 109 4444.444336
317microTonalMap: 110 4716.980957
318microTonalMap: 111 5000.000000
319microTonalMap: 112 5291.005371
320microTonalMap: 113 5617.977539
321microTonalMap: 114 5952.380859
322microTonalMap: 115 6289.308105
323microTonalMap: 116 6666.666504
324microTonalMap: 117 7042.253418
325microTonalMap: 118 7462.686523
326microTonalMap: 119 7936.507812
327microTonalMap: 120 8403.361328
328microTonalMap: 121 8928.571289
329microTonalMap: 122 9433.961914
330microTonalMap: 123 10000.000000
331microTonalMap: 124 10638.297852
332microTonalMap: 125 11235.955078
333microTonalMap: 126 11904.761719
334microTonalMap: 127 12658.227539
335
336