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