picadae calibration programs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

p_ac.yml 35KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690
  1. {
  2. p_ac: {
  3. # Audio device setup
  4. audio: {
  5. inPortLabel: "8 USB Audio CODEC:", #"HDA Intel PCH: CS4208", # "5 USB Audio CODEC:", #"5 USB Sound Device",
  6. #inPortLabel: "8 Scarlett 18i20 USB: Audio",
  7. outPortLabel: ,
  8. },
  9. midi: {
  10. inMonitorFl: False,
  11. outMonitorFl: False,
  12. throughFl: False,
  13. #inPortLabel: "MIDI9/QRS PNOScan:MIDI9/QRS PNOScan MIDI 1",
  14. #outPortLabel: "MIDI9/QRS PNOScan:MIDI9/QRS PNOScan MIDI 1"
  15. #inPortLabel: "Fastlane:Fastlane MIDI A",
  16. #outPortLabel: "Fastlane:Fastlane MIDI A",
  17. #inPortLabel: "picadae:picadae MIDI 1",
  18. #outPortLabel: "picadae:picadae MIDI 1"
  19. },
  20. NoteTester:
  21. {
  22. noteCount: 200,
  23. minNoteDurMs: 100,
  24. maxNoteDurMs: 1000,
  25. minPauseDurMs: 5,
  26. maxPauseDurMs: 500,
  27. pitch: 60,
  28. minAttackUsec: 4000,
  29. maxAttackUsec: 20000,
  30. filename: "note_tester.json"
  31. },
  32. PolyNoteTester:
  33. {
  34. mode: "simple",
  35. noteCount: 11,
  36. minPitch: 21,
  37. maxPitch: 31,
  38. skipPitchL: [22,68,102],
  39. minNoteDurMs: 1000,
  40. maxNoteDurMs: 2000,
  41. minInterOnsetMs: 100,
  42. maxInterOnsetMs: 1000,
  43. minAttackUsec: 4000,
  44. maxAttackUsec: 20000,
  45. holdDutyPct: 35,
  46. },
  47. ChordTester:
  48. {
  49. useVelTableFl: False,
  50. #pitchL: [24,36,48,60,72,84,96],
  51. #pitchL: [24,96,48,72,36,84,60],
  52. #pitchL: [ 36,40,43,47, 48, 52, 55, 59],
  53. #pitchL: [ 36,39,41,33 ],
  54. pitchL: [ 21,23,24,25,26,27,28,29,30,31],
  55. #pitchL: [ 36,33,35,34,37,40,43,42,38,39,41],
  56. #pitchL: [ 43,44,45,46,47,48,49,50,51,52,53],
  57. #pitchL: [ 54,55,56,57,58,59,60,61,62,63,64 ],
  58. repeatCnt: 3,
  59. atkUsec: 10000,
  60. durMs: 1000,
  61. pauseMs: 1000,
  62. holdDuty: 35,
  63. },
  64. # Picadae API args
  65. serial_dev: "/dev/ttyACM0",
  66. serial_baud: 38400,
  67. i2c_base_addr: 21,
  68. prescaler_usec: 16,
  69. pwm_div: 5,
  70. serial_sync_timeout_ms: 10000,
  71. # MeasureSeq args
  72. outDir: "~/temp/p_ac_3_ok",
  73. noteDurMs: 500,
  74. pauseDurMs: 500,
  75. reversePulseListFl: True,
  76. useFullPulseListFl: True, # don't select a new set of resample points based on the previous samples from this pitch
  77. maxSilentNoteCount: 4,
  78. silentNoteMaxPulseUs: 15000,
  79. silentNoteMinDurMs: 180, #250,
  80. defaultHoldDelayUsecs: 1000,
  81. # Midi file player
  82. midiFileFn: "/home/kevin/media/audio/midi/txt/988-v25.txt",
  83. full_pulse0L: [ 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 8000, 9000, 10000, 12000, 14000, 18000, 22000, 26000, 30000, 34000, 40000],
  84. full_pulse1L: [ 10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000, 20000, 22000, 24000, 26000, 30000, 32000, 34000, 36000, 40000],
  85. full_pulse2L: [ 10000, 10500, 11000, 11500, 12000, 12500, 13000, 13500, 14000, 14500, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 20000, 22000, 24000, 26000, 30000, 32000, 34000, 36000, 40000],
  86. full_pulse3L: [ 10000, 10125, 10250, 10500, 10625, 10750, 10875, 11000, 11125, 11250, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14500, 14625, 14750, 14875, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 20000, 22000, 24000, 26000, 30000, 32000, 34000, 36000, 40000],
  87. full_pulse4L: [ 8000, 8125, 8250, 8375, 8500, 8625, 8750, 8875, 9000, 9125, 9250, 9375, 9500, 9625, 9750, 9875, 10000, 10125, 10250, 10375, 10500, 10625, 10750, 10875, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14375, 14250, 14500, 14625, 14750, 14875, 15000, 15250, 15375, 15500, 15750, 16000, 16250, 16500, 16750, 17000, 17250, 17500, 17750, 18000, 18250, 18500, 18750, 20000, 21000, 22000, 23000, 24000, 25000, 26000, 27000, 28000, 30000, 32000, 34000, 36000, 40000],
  88. full_pulse5L: [ 10000, 10125, 10250, 10375, 10500, 10625, 10750, 10875, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000, 15250, 15375, 15500, 15750, 16000, 16250, 16500, 16750, 17000, 17250, 17500, 17750, 18000, 18250, 18500, 18750, 20000, 21000, 22000, 23000, 24000, 25000, 26000, 27000, 28000, 30000, 32000, 34000, 36000, 40000],
  89. full_pulse6L: [ 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000, 15250, 15375, 15500, 15750, 16000, 16250, 16500, 16750, 17000, 17250, 17500, 17750, 18000, 18250, 18500, 18750, 19000, 19500, 20000, 20500, 21000, 21500, 22000, 22500, 23000, 23500, 24000, 24500, 25000, 25500, 26000, 26500, 27000, 27500, 28000, 28500, 29000, 30000, 31000, 32000, 33000, 34000, 35000, 36000, 37000, 38000, 39000, 40000 ],
  90. full_pulseMainL: [ 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000, 15250, 15375, 15500, 15750, 16000, 16250, 16500, 16750, 17000, 17250, 17500, 17750, 18000, 18250, 18500, 18750, 19000, 19500, 20000, 20500, 21000, 21500, 22000, 22500, 23000, 23500, 24000, 24500, 25000, 25500, 26000, 26500, 27000, 27500, 28000, 28500, 29000, 30000, 31000, 32000, 33000, 34000, 35000, 36000, 37000, 38000, 39000, 40000 ],
  91. full_pulse8L: [ 10000, 10050, 10100, 10150, 10200, 10250, 10300, 10350, 10400, 10450, 10500, 10550, 10600, 10650, 10700, 10750, 10800, 10850, 10900, 10950, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000, 15250, 15375, 15500, 15750, 16000, 16250, 16500, 16750, 17000, 17250, 17500, 17750, 18000, 18250, 18500, 18750, 19000, 19500, 20000, 20500, 21000, 21500, 22000, 22500, 23000, 23500, 24000, 24500, 25000, 25500, 26000, 26500, 27000, 27500, 28000, 28500, 29000, 30000, 31000, 32000, 33000, 34000, 35000, 36000, 37000, 38000, 39000, 40000 ],
  92. # full_pulse9L was the last pulse list used on Matt's piano
  93. full_pulse9L: [11000, 11075, 11150, 11225, 11300, 11375, 11450, 11525, 11600,11675, 11750, 11825, 11900, 11975, 12050, 12125, 12200, 12275,12350, 12425, 12500, 12575, 12650, 12725, 12800, 12875, 12950, 13025, 13100, 13175, 13250, 13325, 13400, 13475, 13550, 13625, 13700, 13775, 13850, 13925, 14000, 14075, 14150, 14225, 14300, 14375, 14450, 14525, 14600, 14675, 14750, 14825, 14900, 14975],
  94. full_pulse10L: [ 8750, 8800, 8850, 8900, 8950, 9000, 9050, 9100, 9150, 9200, 9250, 9300, 9350, 9400, 9450,9500, 9550, 9600, 9650, 9700, 9750, 9800, 9850, 9900, 9950, 10000, 10050, 10100, 10150, 10200, 10250, 10300, 10350, 10400, 10450, 10500, 10550, 10600, 10650, 10700, 10750, 10800, 10850, 10900, 10950, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000, 15250, 15375, 15500, 15750, 16000, 16250, 16500, 16750, 17000, 17250, 17500, 17750, 18000, 18250, 18500, 18750, 19000, 19500, 20000, 20500, 21000, 21500, 22000, 22500, 23000, 23500, 24000, 24500, 25000, 25500, 26000, 26500, 27000, 27500, 28000, 28500, 29000, 30000, 31000, 32000, 33000, 34000, 35000, 36000, 37000, 38000, 39000, 40000 ],
  95. full_pulse11L: [ 9000, 9050, 9100, 9150, 9200, 9250, 9300, 9350, 9400, 9450,9500, 9550, 9600, 9650, 9700, 9750, 9800, 9850, 9900, 9950, 10000, 10050, 10100, 10150, 10200, 10250, 10300, 10350, 10400, 10450, 10500, 10550, 10600, 10650, 10700, 10750, 10800, 10850, 10900, 10950, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000 ],
  96. full_pulse12L: [ 8750, 8800, 8850, 8900, 8950, 9000, 9050, 9100, 9150, 9200, 9250, 9300, 9350, 9400, 9450,9500, 9550, 9600, 9650, 9700, 9750, 9800, 9850, 9900, 9950, 10000, 10050, 10100, 10150, 10200, 10250, 10300, 10350, 10400, 10450, 10500, 10550, 10600, 10650, 10700, 10750, 10800, 10850, 10900, 10950, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13125, 13250, 13375, 13500, 13625, 13750, 13875, 14000, 14125, 14250, 14375, 14500, 14625, 14750, 14875, 15000 ],
  97. # pulse lists below this line were developed on Steinway D (11/14/20)
  98. # 60
  99. full_pulse13L: [8000, 8250, 8500, 8750, 9000, 9250, 9500, 9750, 10000, 10250, 10500, 10750, 11000, 11250, 11500, 11750, 12000, 12250, 12500, 12750, 13000, 13500, 14000, 14500, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 19000, 19500, 20000 ],
  100. full_pulse14L: [ 9000, 9125, 9250, 9375, 9500, 9625, 9750, 9875, 10000, 10125, 10250, 10375, 10500, 10625, 10750, 10875, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12250, 12500, 12750, 13000, 13500, 14000, 14500, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 19000, 19500, 20000, 20500, 21000, 21500, 22000 ],
  101. full_pulse15L: [ 8000, 9000,10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000 ],
  102. full_pulse16L: [ 8000, 8125, 8250, 8375, 8500, 8625, 8750, 8875, 9000, 9125, 9250, 9375, 9500, 9625, 9750, 9875, 10000, 10125, 10250, 10375, 10500, 10625, 10750, 10875, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12250, 12500, 12750, 13000, 13500, 14000, 14500, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 19000, 19500, 20000, 20500, 21000, 21500, 22000 ],
  103. full_pulse17L: [ 8100, 8150, 8200, 8250, 8300, 8350, 8400, 8450, 8500, 8550, 8600, 8650, 8700, 8750, 8800, 8850, 8900, 8950, 9000, 9125, 9250, 9375, 9500, 9625, 9750, 9875, 10000, 10125, 10250, 10375, 10500, 10625, 10750, 10875, 11000, 11125, 11250, 11375, 11500, 11625, 11750, 11875, 12000, 12250, 12500, 12750, 13000, 13500, 14000, 14500, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 19000, 19500, 20000, 20500, 21000, 21500, 22000 ],
  104. full_pulse18L: [ 11500, 11625, 11750, 11875, 12000, 12250, 12500, 12750, 13000, 13500, 14000, 14500, 15000, 15500 ],
  105. full_pulse19L: [ 11875, 12000, 12125, 12250, 12375, 12500, 12625, 12750, 12875, 13000, 13250, 13500, 13750, 14000, 14500, 15000, 15500, 16000, 16500 ],
  106. # pulse lists below this line were developed on Steinway D w/ new firmware (11/21/20)
  107. full_pulse20L: [ 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, 4000, 4250, 4500, 4750, 5000, 5250, 5500, 5750, 6000, 6250, 6500, 6750, 7000, 7250, 7500, 7750, 8000, 8250, 8500, 8750, 9000, 9250, 9500, 9750, 10000, 10250, 10500, 10750, 11000, 11250, 11500, 11750, 12000, 12250, 12500, 12750, 13000, 13500, 14000, 14500, 15000, 15500 ],
  108. full_pulse21L: [ 1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000, 3250, 3500, 3750, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500, 9000, 10000, 11000, 12000, 13000, 14000, 15000, 16000, 17000, 18000, 19000 ],
  109. full_pulse22L: [ 3500, 3750, 4000, 4250, 4500, 4750, 5000, 5250, 5500, 5750, 6000, 6250, 6500, 6750, 7000, 7500, 8000, 8500, 9000, 9500, 10000, 10500, 11000, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000 ],
  110. # 60,72,84
  111. full_pulse23L: [ 2000, 2250, 2500,2750, 3000, 3250, 3500, 3750, 4000, 4250, 4500, 4750, 5000, 5250, 5500, 5750, 6000, 6250, 6500, 6750, 7000, 7500, 8000, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000, 22000 ],
  112. full_pulseL24: [ 5000, 5125, 5250, 5375, 5500, 5625, 5750, 5875, 6000, 6125, 6250, 6500, 6750, 7000, 7500, 8000, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000, 22000 ],
  113. # 23-40
  114. full_pulseL25: [ 3500, 3625, 3750, 3875, 4000, 4125, 4250, 4375, 4500, 4625, 4750, 4875, 5000, 5125, 5250, 5375, 5500, 5625, 5750, 5875, 6000, 6125, 6250, 6375, 6500, 6625, 6750, 6875, 7000, 7250, 7500, 7750, 8000, 8250, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000 ],
  115. full_pulse25aL: [ 2000, 2050, 2100, 2150, 2200, 2250, 2300, 2350, 2400, 2450, 2500, 2550, 2600, 2650, 2700, 2750, 2800, 2850, 2900, 2950, 3000, 3050, 3100, 3150, 3200, 3250, 3300, 3350, 3400, 3450, 3500, 3550, 3600, 3650, 3700, 3750, 3800, 3850, 3900, 3950, 4000, 4050, 4100, 4150, 4200, 4250, 4300, 4350, 4400, 4450, 4500, 4550, 4600, 4650, 4700, 4750, 4800, 4850, 4900, 4950, 5000, 5050, 5100, 5150, 5200, 5250, 5300, 5350, 5400, 5450, 5500, 5550, 5600, 5650, 5700, 5750, 5800, 5850, 5900, 5950, 6000, 6125, 6250, 6375, 6500, 6625, 6750, 6875, 7000, 7250, 7500, 7750, 8000, 8250, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000 ],
  116. # 21-
  117. full_pulse26L: [ 1500, 1625, 1750, 1875, 2000, 2125, 2250, 2375, 2500, 2625, 2750, 2875, 3000, 3125, 3250, 3375,3500, 3625, 3750, 3875, 4000, 4125, 4250, 4375, 4500, 4625, 4750, 4875, 5000, 5125, 5250, 5375, 5500, 5625, 5750, 5875, 6000, 6125, 6250, 6375, 6500, 6625, 6750, 6875, 7000, 7250, 7500, 7750, 8000, 8250, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000, 22000 ],
  118. full_pulseL: [ 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3625, 3750, 3875, 4000, 4125, 4250, 4375, 4500, 4625, 4750, 4875, 5000, 5125, 5250, 5375, 5500, 5625, 5750, 5875, 6000, 6125, 6250, 6375, 6500, 6625, 6750, 6875, 7000, 7250, 7500, 7750, 8000, 8250, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000, 20000, 22000 ],
  119. # 92
  120. full_pulse27L: [ 1500, 1625, 1750, 1875, 2000, 2125, 2250, 2375, 2500, 2625, 2750, 2875, 3000, 3125, 3250, 3375, 3500, 3625, 3750, 3875, 4000, 4125, 4250, 4375, 4500, 4625, 4750, 4875, 5000, 5125, 5250, 5375, 5500, 5625, 5750, 5875, 6000, 6125, 6250, 6375, 6500, 6625, 6750, 6875, 7000, 7250, 7500, 7750, 8000, 8250, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 14000, 15000, 16000, 17000, 18000, 19000 ],
  121. full_pulse28L: [ 4000, 8000, 12000, 16000 ],
  122. full_pulse29L: [ 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500, 9000, 9500, 10000, 10500, 11000, 11500, 12000, 12500, 13000, 13500, 14000, 14500, 15000, 15500, 16000, 16500, 17000, 17500, 18000, 18500, 19000, 19500, 20000 ],
  123. # RMS analysis args
  124. analysisArgs: {
  125. rmsAnalysisArgs: {
  126. rmsWndMs: 300, # length of the RMS measurment window
  127. rmsHopMs: 30, # RMS measurement inter window distance
  128. dbLinRef: 0.01, # length of initial portion of signal to use to calculate the dB reference level
  129. harmCandN: 5, # count of harmonic candidates to locate during harmonic based RMS analysis
  130. harmN: 3, # count of harmonics to use to calculate harmonic based RMS analysis
  131. durDecayPct: 40, # percent drop in RMS to indicate the end of a note
  132. },
  133. resampleMinDb: -5.0, # note's less than this will be skipped
  134. resampleNoiseLimitPct: 5.0, #
  135. resampleMinDurMs: 150, # notes's whose duration is less than this will be skipped
  136. useLastTakeOnlyFl: True,
  137. minAttkDb: -5.0, # threshold of silence level
  138. maxDbOffset: 0.25, # travel down the from the max. note level by at most this amount to locate the max. peak
  139. maxDeltaDb: 1.5, # maximum db change between volume samples (changes greater than this will trigger resampling)
  140. samplesPerDb: 4, # count of samples per dB to resample ranges whose range is less than maxDeltaDb
  141. minSampleDistUs: 50, # minimum distance between sample points in microseconds
  142. auditionNoteN: 19, # count of notes to play for audition
  143. finalPulseListCacheFn: "/home/kevin/temp/final_pulse_list_cache.pickle",
  144. rmsAnalysisCacheFn: "/home/kevin/temp/rms_analysis_cache.pickle"
  145. },
  146. # used by plot_seq_1.gen_vel_map()
  147. velTableDbL: [ 2, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 27, 29 ],
  148. manualMinD: {
  149. 21:[-1,6],
  150. 23:[-1,1], # 10
  151. 24:[-1,11], # 11
  152. 25:[-1,8],
  153. 26:[-1,9], # 13
  154. 27:[-1,11],
  155. 28:[-1,2],
  156. 29:[-1,16],
  157. 30:[-1,4],
  158. 31:[-1,8],
  159. 32:[-1,9],
  160. 33:[-1,10],
  161. 34:[-1,9], # 15
  162. 35:[-1,9],
  163. 36:[-1,4],
  164. 37:[-1,7],
  165. 38:[-1,5],
  166. 39:[-1,5],
  167. 40:[-1,6], # 2 lwr
  168. 41:[-1,10], # 24 lwr
  169. 42:[-1,2],
  170. 43:[-1,4],
  171. 44:[-1,5],
  172. 45:[-1,10],
  173. 46:[-1,4],
  174. 47:[-1,7],
  175. 48:[-1,9],
  176. 49:[-1,2],
  177. 50:[-1,5],
  178. 51:[-1,4],
  179. 52:[-1,8],
  180. 53:[-1,0], # 16
  181. 54:[-1,8],
  182. 55:[-1,14],
  183. 56:[-1,8],
  184. 57:[-1,9],
  185. 58:[-1,10],
  186. 59:[-1,7],
  187. 60:[-1,7], # 14
  188. 61:[-1,10], # 14
  189. 62:[-1,1], # 7
  190. 63:[-1,5],
  191. 64:[-1,2],
  192. 65:[-1,8],
  193. 66:[-1,3],
  194. 67:[-1,3], # 17 lwr
  195. 68:[-1,3],
  196. 69:[-1,9],
  197. 70:[-1,15], # 15 lwr
  198. 71:[-1,0], # 7 lwr
  199. 72:[-1,3],# 12 lwr
  200. 73:[-1,0],# 21 lwr
  201. 74:[-1,0],# 24 lwr
  202. 75:[-1,0],# 18 lwr
  203. 76:[-1,0],# 13 lwr
  204. 77:[-1,0],# 22 lwr
  205. 78:[-1,0],# 14 lwr
  206. 79:[-1,8],
  207. 80:[-1,3],
  208. 81:[-1,2], # 14 lwr
  209. 82:[-1,5], # 11
  210. 83:[-1,7],
  211. 84:[-1,3], # 13
  212. 85:[-1,5],
  213. 86:[-1,4],
  214. 87:[-1,7],
  215. 88:[-1,5], # 22
  216. 89:[-1,19],
  217. 90:[-1,2], # 10
  218. 91:[-1,10],
  219. 92:[-1,8],
  220. 93:[-1,7],
  221. 94:[-1,5], # 10
  222. 95:[-1,9],
  223. 96:[-1,13],
  224. 97:[-1,12],
  225. 98:[-1,14],
  226. 99:[-1,14],
  227. 100:[-1,18],
  228. 101:[-1,18],
  229. 103:[-1,25],
  230. 104:[-1,26],
  231. 105:[-1,18],
  232. 106:[-1,26],
  233. 107:[-1,29],
  234. 108:[-1,28],
  235. },
  236. manualAnchorPitchMinDbL: [ 24, 36,48,60,72,84,96 ],
  237. manualAnchorPitchMaxDbL: [ 24, 36,48,60,72,84,96 ],
  238. manualLastFl: true,
  239. manualMinD_0: {
  240. 23: [2, 24],
  241. 24: [2, 18],
  242. 25: [2, 41],
  243. 26: [2, 26], #
  244. 27: [2, 35], # (36 is an outlier)
  245. 28: [2, 35], # /36 (resample?)
  246. 29: [2, 22], # /23 (resample?)
  247. 30: [2, 28], # /29
  248. 31: [2, 39], #
  249. 32: [2, 27], #
  250. 33: [2, 10], #
  251. 34: [2, 27], # (29 outlier)
  252. 35: [2, 15], #
  253. 36: [2, 16], # ngz: (0 32 36) (1 31 36)
  254. 37: [2, 18], #
  255. 38: [2, 33], #
  256. 39: [2, 18], #
  257. 40: [2, 6], # ngz: (0 25 41)
  258. 41: [2, 22], # ngz: (2 9 22)
  259. 42: [2, 11], #
  260. 43: [2, 7], #(8 outlier)], #
  261. 44: [2, 19],
  262. 45: [4, 7], # 5 sample traes
  263. 46: [2, 4],
  264. 47: [2, 11], # /12
  265. 48: [2, 27], # /28
  266. 49: [2, 12],
  267. 50: [2, 6],
  268. 51: [2, 14],
  269. 52: [2, 26],
  270. 53: [3, 24 ], # ngz at onset
  271. 54: [2, 21], # /22
  272. 55: [2, 10], # /11
  273. 56: [2, 5],
  274. 57: [2, 6],
  275. 58: [2, 11],
  276. 59: [2, 5],
  277. 60: [2, 13],
  278. 61: [4, 5],
  279. 62: [2, 7],
  280. 63: [2, 12],
  281. 64: [3, 33],
  282. 65: [2, 23],
  283. 66: [2, 36],
  284. 67: [2, 16],
  285. 68: [2, 1], # needs decreased start us
  286. 69: [1, 7],
  287. 70: [2, 34],
  288. 71: [2, 23],
  289. 72: [2, 14],
  290. 73: [2, 30],
  291. 74: [2, 26],
  292. 75: [2, 31],
  293. 76: [2, 20],
  294. 77: [2, 28],
  295. 78: [2, 28],
  296. 79: [2, 44],
  297. 80: [2, 25],
  298. 81: [2, 36],
  299. 82: [2, 51], # incorrect hold voltages (resample)
  300. 83: [2, 43],
  301. 84: [2, 38],
  302. 85: [2, 27],
  303. 86: [2, 43],
  304. 87: [2, 33],
  305. 88: [2, 42],
  306. 89: [3, 21], # ngz (3 15 19)
  307. 91: [2, 4], # bad samples (resample)
  308. 92: [2, 10],
  309. 93: [2, 42],
  310. 94: [2, 39],
  311. 95: [2, 19],
  312. 96: [2, 1], # needs decreaed start us ngz: (0 22 38)
  313. 97: [2, 51],
  314. 98: [2, 30],
  315. 99: [2, 41],
  316. 100: [2, 24],
  317. 101: [2, 39],
  318. },
  319. manualAnchorPitchMinDbL_0: [ 23, 27, 31, 34, 44, 51, 61, 70, 74, 81, 87, 93, 96, 101 ],
  320. manualAnchorPitchMaxDbL_0: [ 23, 32, 49, 57, 67, 76, 83, 93, 99, 101 ],
  321. calibrateArgs: {
  322. outDir: "~/temp/calib2",
  323. outLabel: "test_3",
  324. inDir: "~/temp/p_ac_3f",
  325. analysisD: {
  326. rmsWndMs: 300, # length of the RMS measurment window
  327. rmsHopMs: 30, # RMS measurement inter window distance
  328. dbLinRef: 0.01, # length of initial portion of signal to use to calculate the dB reference level
  329. harmCandN: 5, # count of harmonic candidates to locate during harmonic based RMS analysis
  330. harmN: 3, # count of harmonics to use to calculate harmonic based RMS analysis
  331. durDecayPct: 40 # percent drop in RMS to indicate the end of a note
  332. },
  333. noteOnDurMs: 500,
  334. noteOffDurMs: 500,
  335. #pitchL: [ 31, 33, 34, 35 ], # list of pitches
  336. #pitchL: [ 80,81,82 ], # 8
  337. pitchL: [ 40,41,42 ], # 12
  338. targetDbL: [ 13 ], # list of target db
  339. minMeasDurMs: 140, # minimum candidate note duration
  340. tolDbPct: 2.0, # tolerance as a percent of targetDb above/below used to form match db window
  341. maxPulseUs: 45000, # max. allowable pulse us
  342. minPulseUs: 2000, # min. allowable pulse us
  343. initPulseUs: 15000, # pulseUs for first note
  344. minMatchN: 3, # at least 3 candidate notes must be within tolDbPct to move on to a new targetDb
  345. maxAttemptN: 30, # give up if more than 20 candidate notes fail for a given targetDb
  346. dbSrcLabel: 'hm', # source of the db measurement 'td' (time-domain) or 'hm' (harmonic)
  347. holdDutyPctD: {
  348. 21: [[0, 50]],
  349. 23: [[0, 50]],
  350. 24: [[0, 50]],
  351. 25: [[0, 50]],
  352. 26: [[0, 50]],
  353. 27: [[0, 50]],
  354. 28: [[0, 50]],
  355. 29: [[0, 50]],
  356. 30: [[0, 50]],
  357. 31: [[0, 50]],
  358. 32: [[0, 50]],
  359. 33: [[0, 50]],
  360. 34: [[0, 50]],
  361. 35: [[0, 50]],
  362. 36: [[0, 50]],
  363. 37: [[0, 50]],
  364. 38: [[0, 50]],
  365. 39: [[0, 50]],
  366. 40: [[0, 50]],
  367. 41: [[0, 45]],
  368. 42: [[0, 45]],
  369. 43: [[0, 45]],
  370. 44: [[0, 45]],
  371. 45: [[0, 45]],
  372. 46: [[0, 40],[10000,45]],
  373. 47: [[0, 40],[10000,45]],
  374. 48: [[0, 40],[10000,45]],
  375. 49: [[0, 40],[10000,45]],
  376. 50: [[0, 40],[10000,45]],
  377. 51: [[0, 40],[10000,45]],
  378. 52: [[0, 40],[10000,45]],
  379. 53: [[0, 40],[10000,45]],
  380. 54: [[0, 40],[10000,45]],
  381. 55: [[0, 40],[10000,45]],
  382. 56: [[0, 40],[10000,45]],
  383. 57: [[0, 40],[10000,45]],
  384. 58: [[0, 40],[10000,45]],
  385. 59: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  386. 60: [[0, 40],[10000,43],[11000,45],[12000,45], [13000,50],[14000,55],[15000,60],[16000,65]],
  387. 61: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  388. 62: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  389. 63: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  390. 64: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  391. 65: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  392. 66: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  393. 67: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  394. 68: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  395. 69: [[0, 32],[5000,64] ],
  396. 70: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  397. 71: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  398. 72: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  399. 73: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  400. 74: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  401. 75: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  402. 76: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  403. 77: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55],[15000,60]],
  404. 78: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  405. 79: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  406. 80: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  407. 81: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  408. 82: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  409. 83: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  410. 84: [[0, 35],[8000,40],[10000,45],[12000,48],[13000,50],[14000,55]],
  411. 85: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  412. 86: [[0, 40],[10000,45],[12000,48],[13000,50],[14000,55]],
  413. 87: [[0, 40],[10000,45],[12000,48],[13000,50]],
  414. 88: [[0, 40],[10000,45],[12000,48],[13000,50]],
  415. 89: [[0, 40],[10000,45],[12000,48],[13000,50]],
  416. 90: [[0, 40],[10000,45],[12000,48],[13000,50]],
  417. 91: [[0, 40],[10000,45],[12000,48],[13000,50]],
  418. 92: [[0, 37]],
  419. 93: [[0, 37]],
  420. 94: [[0, 37]],
  421. 95: [[0, 37]],
  422. 96: [[0, 37]],
  423. 97: [[0, 40]],
  424. 98: [[0, 40]],
  425. 99: [[0, 37]],
  426. 100: [[0, 37]],
  427. 101: [[0, 37]],
  428. 102: [[0, 37]],
  429. 103: [[0, 40],[10000,45],[15000,50]],
  430. 104: [[0, 40],[7500,45],[15000,50]],
  431. 105: [[0, 40],[10000,45],[15000,50]],
  432. 106: [[0, 37]],
  433. 107: [[0, 37]],
  434. 108: [[0, 37]],
  435. },
  436. # Final for Matt's piano
  437. holdDutyPct0D: {
  438. 23: [[0, 70]],
  439. 24: [[0, 75]],
  440. 25: [[0, 70]],
  441. 26: [[0, 65]],
  442. 27: [[0, 70]],
  443. 28: [[0, 70]],
  444. 29: [[0, 65]],
  445. 30: [[0, 65]],
  446. 31: [[0, 65]],
  447. 32: [[0, 60]],
  448. 33: [[0, 65]],
  449. 34: [[0, 65]],
  450. 35: [[0, 65]],
  451. 36: [[0, 65]],
  452. 37: [[0, 65]],
  453. 38: [[0, 60]],
  454. 39: [[0, 60]],
  455. 40: [[0, 55]],
  456. 41: [[0, 60]],
  457. 42: [[0, 60]],
  458. 43: [[0, 65]],
  459. 44: [[0, 60]],
  460. 45: [[0, 60]],
  461. 46: [[0, 60]],
  462. 47: [[0, 60]],
  463. 48: [[0, 70]],
  464. 49: [[0, 60]],
  465. 50: [[0, 50]],
  466. 51: [[0, 50]],
  467. 52: [[0, 55]],
  468. 53: [[0, 50]],
  469. 54: [[0, 50]],
  470. 55: [[0, 50], [22000, 55]],
  471. 56: [[0, 50]],
  472. 57: [[0, 50]],
  473. 58: [[0, 50]],
  474. 59: [[0, 60]],
  475. 60: [[0, 50]],
  476. 61: [[0, 50]],
  477. 62: [[0, 55]],
  478. 63: [[0, 50]],
  479. 64: [[0, 50]],
  480. 65: [[0, 50], [17000, 65]],
  481. 66: [[0, 53]],
  482. 67: [[0, 55]],
  483. 68: [[0, 53]],
  484. 69: [[0, 55]],
  485. 70: [[0, 50]],
  486. 71: [[0, 50]],
  487. 72: [[0, 60]],
  488. 73: [[0, 50]],
  489. 74: [[0, 60]],
  490. 75: [[0, 55]],
  491. 76: [[0, 70]],
  492. 77: [[0, 50], [15000, 60], [19000, 70]],
  493. 78: [[0, 60]],
  494. 79: [[0, 50], [15000, 60], [19000, 70]],
  495. 80: [[0, 45]],
  496. 81: [[0, 50], [15000, 70]],
  497. 82: [[0, 50], [12500, 60], [14000, 65], [17000, 70]],
  498. 83: [[0, 50], [15000, 65]],
  499. 84: [[0, 50], [12500, 60], [14000, 65], [17000, 70]],
  500. 85: [[0, 50], [12500, 60], [14000, 65], [17000, 70]],
  501. 86: [[0, 50], [12500, 60], [14000, 65], [17000, 70]],
  502. 87: [[0, 50], [14000, 60]],
  503. 88: [[0, 50], [12500, 60], [14000, 65], [17000, 70]],
  504. 89: [[0, 50], [12500, 60], [14000, 65], [17000, 70]],
  505. 91: [[0, 40], [12500, 50], [14000, 60], [17000, 65]],
  506. 92: [[0, 40], [14000, 50]],
  507. 93: [[0, 40], [12500, 50], [14000, 60], [17000, 65]],
  508. 94: [[0, 40], [14000, 50]],
  509. 95: [[0, 40], [12500, 50], [14000, 60], [17000, 65]],
  510. 96: [[0, 40], [12500, 50], [14000, 60], [17000, 65]],
  511. 97: [[0, 40], [14000, 50]],
  512. 98: [[0, 50]],
  513. 99: [[0, 50]],
  514. 100: [[0, 50]],
  515. 101: [[0, 50]],
  516. 106: [[0, 50]]
  517. },
  518. },
  519. key_mapL: [
  520. { index: 0, board: 1, ch: 1, type: 'wB', midi: 21, class: 'A' },
  521. { index: 1, board: 1, ch: 2, type: 'Bl', midi: 22, class: 'A#' },
  522. { index: 2, board: 1, ch: 3, type: 'wF', midi: 23, class: 'B' },
  523. { index: 3, board: 1, ch: 4, type: 'wB', midi: 24, class: 'C' },
  524. { index: 4, board: 1, ch: 5, type: 'Bl', midi: 25, class: 'C#' },
  525. { index: 5, board: 1, ch: 6, type: 'wF', midi: 26, class: 'D' },
  526. { index: 6, board: 1, ch: 7, type: 'Bl', midi: 27, class: 'D#' },
  527. { index: 7, board: 1, ch: 8, type: 'wB', midi: 28, class: 'E' },
  528. { index: 8, board: 1, ch: 9, type: 'wF', midi: 29, class: 'F' },
  529. { index: 9, board: 1, ch: 10, type: 'Bl', midi: 30, class: 'F#' },
  530. { index: 10, board: 1, ch: 11, type: 'wB', midi: 31, class: 'G' },
  531. { index: 11, board: 2, ch: 1, type: 'Bl', midi: 32, class: 'G#' },
  532. { index: 12, board: 2, ch: 2, type: 'wF', midi: 33, class: 'A' },
  533. { index: 13, board: 2, ch: 3, type: 'Bl', midi: 34, class: 'A#' },
  534. { index: 14, board: 2, ch: 4, type: 'wB', midi: 35, class: 'B' },
  535. { index: 15, board: 2, ch: 5, type: 'wF', midi: 36, class: 'C' },
  536. { index: 16, board: 2, ch: 6, type: 'Bl', midi: 37, class: 'C#' },
  537. { index: 17, board: 2, ch: 7, type: 'wB', midi: 38, class: 'D' },
  538. { index: 18, board: 2, ch: 8, type: 'Bl', midi: 39, class: 'D#' },
  539. { index: 19, board: 2, ch: 9, type: 'wF', midi: 40, class: 'E' },
  540. { index: 20, board: 2, ch: 10, type: 'wB', midi: 41, class: 'F' },
  541. { index: 21, board: 2, ch: 11, type: 'Bl', midi: 42, class: 'F#' },
  542. { index: 22, board: 3, ch: 1, type: 'wF', midi: 43, class: 'G' },
  543. { index: 23, board: 3, ch: 2, type: 'Bl', midi: 44, class: 'G#' },
  544. { index: 24, board: 3, ch: 3, type: 'wB', midi: 45, class: 'A' },
  545. { index: 25, board: 3, ch: 4, type: 'Bl', midi: 46, class: 'A#' },
  546. { index: 26, board: 3, ch: 5, type: 'wF', midi: 47, class: 'B' },
  547. { index: 27, board: 3, ch: 6, type: 'wB', midi: 48, class: 'C' },
  548. { index: 28, board: 3, ch: 7, type: 'Bl', midi: 49, class: 'C#' },
  549. { index: 29, board: 3, ch: 8, type: 'wF', midi: 50, class: 'D' },
  550. { index: 30, board: 3, ch: 9, type: 'Bl', midi: 51, class: 'D#' },
  551. { index: 31, board: 3, ch: 10, type: 'wB', midi: 52, class: 'E' },
  552. { index: 32, board: 3, ch: 11, type: 'wF', midi: 53, class: 'F' },
  553. { index: 33, board: 4, ch: 1, type: 'Bl', midi: 54, class: 'F#' },
  554. { index: 34, board: 4, ch: 2, type: 'wB', midi: 55, class: 'G' },
  555. { index: 35, board: 4, ch: 3, type: 'Bl', midi: 56, class: 'G#' },
  556. { index: 36, board: 4, ch: 4, type: 'wF', midi: 57, class: 'A' },
  557. { index: 37, board: 4, ch: 5, type: 'Bl', midi: 58, class: 'A#' },
  558. { index: 38, board: 4, ch: 6, type: 'wB', midi: 59, class: 'B' },
  559. { index: 39, board: 4, ch: 7, type: 'wF', midi: 60, class: 'C' },
  560. { index: 40, board: 4, ch: 8, type: 'Bl', midi: 61, class: 'C#' },
  561. { index: 41, board: 4, ch: 9, type: 'wB', midi: 62, class: 'D' },
  562. { index: 42, board: 4, ch: 10, type: 'Bl', midi: 63, class: 'D#' },
  563. { index: 43, board: 4, ch: 11, type: 'wF', midi: 64, class: 'E' },
  564. { index: 44, board: 5, ch: 1, type: 'wB', midi: 65, class: 'F' },
  565. { index: 45, board: 5, ch: 2, type: 'Bl', midi: 66, class: 'F#' },
  566. { index: 46, board: 5, ch: 3, type: 'wF', midi: 67, class: 'G' },
  567. { index: 47, board: 5, ch: 4, type: 'Bl', midi: 68, class: 'G#' },
  568. { index: 48, board: 5, ch: 5, type: 'wB', midi: 69, class: 'A' },
  569. { index: 49, board: 5, ch: 6, type: 'Bl', midi: 70, class: 'A#' },
  570. { index: 50, board: 5, ch: 7, type: 'wF', midi: 71, class: 'B' },
  571. { index: 51, board: 5, ch: 8, type: 'wB', midi: 72, class: 'C' },
  572. { index: 52, board: 5, ch: 9, type: 'Bl', midi: 73, class: 'C#' },
  573. { index: 53, board: 5, ch: 10, type: 'wF', midi: 74, class: 'D' },
  574. { index: 54, board: 5, ch: 11, type: 'Bl', midi: 75, class: 'D#' },
  575. { index: 55, board: 6, ch: 1, type: 'wB', midi: 76, class: 'E' },
  576. { index: 56, board: 6, ch: 2, type: 'wF', midi: 77, class: 'F' },
  577. { index: 57, board: 6, ch: 3, type: 'Bl', midi: 78, class: 'F#' },
  578. { index: 58, board: 6, ch: 4, type: 'wB', midi: 79, class: 'G' },
  579. { index: 59, board: 6, ch: 5, type: 'Bl', midi: 80, class: 'G#' },
  580. { index: 60, board: 6, ch: 6, type: 'wF', midi: 81, class: 'A' },
  581. { index: 61, board: 6, ch: 7, type: 'Bl', midi: 82, class: 'A#' },
  582. { index: 62, board: 6, ch: 8, type: 'wB', midi: 83, class: 'B' },
  583. { index: 63, board: 6, ch: 9, type: 'wF', midi: 84, class: 'C' },
  584. { index: 64, board: 6, ch: 10, type: 'Bl', midi: 85, class: 'C#' },
  585. { index: 65, board: 6, ch: 11, type: 'wB', midi: 86, class: 'D' },
  586. { index: 66, board: 6, ch: 1, type: 'Bl', midi: 87, class: 'D#' },
  587. { index: 67, board: 6, ch: 2, type: 'wF', midi: 88, class: 'E' },
  588. { index: 68, board: 6, ch: 3, type: 'wB', midi: 89, class: 'F' },
  589. { index: 69, board: 6, ch: 4, type: 'Bl', midi: 90, class: 'F#' },
  590. { index: 70, board: 6, ch: 5, type: 'wF', midi: 91, class: 'G' },
  591. { index: 71, board: 6, ch: 6, type: 'Bl', midi: 92, class: 'G#' },
  592. { index: 72, board: 6, ch: 7, type: 'wB', midi: 93, class: 'A' },
  593. { index: 73, board: 6, ch: 8, type: 'Bl', midi: 94, class: 'A#' },
  594. { index: 74, board: 6, ch: 9, type: 'wF', midi: 95, class: 'B' },
  595. { index: 75, board: 6, ch: 10, type: 'wB', midi: 96, class: 'C' },
  596. { index: 76, board: 6, ch: 11, type: 'Bl', midi: 97, class: 'C#' },
  597. { index: 77, board: 7, ch: 1, type: 'wF', midi: 98, class: 'D' },
  598. { index: 78, board: 7, ch: 2, type: 'Bl', midi: 99, class: 'D#' },
  599. { index: 79, board: 7, ch: 3, type: 'wB', midi: 100, class: 'E' },
  600. { index: 80, board: 7, ch: 4, type: 'wF', midi: 101, class: 'F' },
  601. { index: 81, board: 7, ch: 5, type: 'Bl', midi: 102, class: 'F#' },
  602. { index: 82, board: 7, ch: 6, type: 'wB', midi: 103, class: 'G' },
  603. { index: 83, board: 7, ch: 7, type: 'Bl', midi: 104, class: 'G#' },
  604. { index: 84, board: 7, ch: 8, type: 'wF', midi: 105, class: 'A' },
  605. { index: 85, board: 7, ch: 9, type: 'Bl', midi: 106, class: 'A#' },
  606. { index: 86, board: 7, ch: 10, type: 'wB', midi: 107, class: 'B' },
  607. { index: 87, board: 7, ch: 11, type: 'wF', midi: 108, class: 'C' },
  608. ]
  609. }
  610. }