Programmable real-time audio signal processing application
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.

gen_mod.py 27KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991
  1. # Generate the 'mod' file for time_line_lite.js
  2. import sys,copy
  3. # Selected presets
  4. scoreSeqL = [
  5. ( 1,"g_1_d"),
  6. ( 18,"a"),
  7. ( 43,"d"),
  8. ( 55,"g_1_a"),
  9. ( 74,"a"),
  10. ( 80,"d"),
  11. ( 91,"dry"),
  12. ( 95,"b"),
  13. ( 102,"g_a"),
  14. ( 126,"b"),
  15. ( 142,"a"),
  16. ( 156,"a"),
  17. ( 171,"a"),
  18. ( 186,"b"),
  19. ( 231,"f_4"),
  20. ( 236,"g_1_d"),
  21. ( 264,"g_1_d"),
  22. ( 286,"dry"),
  23. ( 291,"f_3"),
  24. ( 353,"f_4"),
  25. ( 378,"g_1_a"),
  26. ( 384,"f_4"),
  27. ( 391,"g_1_d"),
  28. ( 451,"f_1"),
  29. ( 480,"f_4"),
  30. ( 544,"f_1"),
  31. ( 559,"dry"),
  32. ( 610,"dry"),
  33. ( 699,"g_a"),
  34. ( 778,"f_3"),
  35. ( 917,"g_1_d"),
  36. ( 971,"f_3"),
  37. (1025,"g_1_d"),
  38. (1090,"g_1_d")
  39. ]
  40. # Hard-coded presets
  41. initPresetStr = """
  42. init:
  43. [
  44. // wnd len:1=512 2=1024 3=2048 4=4096 5=8192
  45. { loc:-1, mod:m1, var:win0, type:set, rate:100, val:3 },
  46. { var:win1, rate:100, val:2 },
  47. // hop: 1=1 2=2 3=4 4=8 5=16
  48. { var:hop0, rate:100, val:3 },
  49. { var:hop1, rate:100, val:3 },
  50. { var:mod0, val:1 },
  51. { var:mod1, val:1 },
  52. { var:thr0, val:65 },
  53. { var:thr1, val:65 },
  54. { var:upr0, val:0 },
  55. { var:upr1, val:0 },
  56. { var:lwr0, val:2.0 }, // lwr has a hardcoded min. of 0.3
  57. { var:lwr1, val:2.0 },
  58. { var:ceil0, val:20 },
  59. { var:ceil1, val:20 },
  60. { var:expo0, val:2.0 },
  61. { var:expo1, val:2.0 },
  62. { var:mix0, val:0.0 },
  63. { var:mix1, val:0.0 },
  64. { var:wet0, val:0.0 },
  65. { var:wet1, val:0.0 },
  66. { var:mint0, val:55 },
  67. { var:maxt0, val:85 },
  68. { var:minu0, val:0.0 },
  69. { var:maxu0, val:0.5 },
  70. { var:minl0, val:0 },
  71. { var:maxl0, val:3 },
  72. { var:mino0, val:-100.0 },
  73. { var:maxo0, val:100.0 },
  74. { var:mint1, val:55 },
  75. { var:maxt1, val:85 },
  76. { var:minu1, val:0.0 },
  77. { var:maxu1, val:0.5 },
  78. { var:minl1, val:0 },
  79. { var:maxl1, val:3 },
  80. { var:mino1, val:-100.0 },
  81. { var:maxo1, val:100.0 },
  82. { var:xfad0, val:100.0 },
  83. { var:xfad1, val:100.0 },
  84. { var:sw0, type:decl, val:1 },
  85. { var:sw1, type:decl, val:1 },
  86. // compressor
  87. { var:cbyp0, type:set, val:0.0 },
  88. { var:cigain0, val:3.0 },
  89. { var:cthrsh0, val:-20.0 },
  90. { var:cratio0, val:2.0 },
  91. { var:catkms0, val:20.0 },
  92. { var:crlsms0, val:1000.0 },
  93. { var:cmakeup0, val:1.0 },
  94. { var:cwndms0, val:200 },
  95. { var:cbyp1, val:0.0 },
  96. { var:cigain1, val:3.0 },
  97. { var:cthrsh1, val:-20.0 },
  98. { var:cratio1, val:2.0 },
  99. { var:catkms1, val:20.0 },
  100. { var:crlsms1, val:1000.0 },
  101. { var:cmakeup1, val:1.0 },
  102. { var:cwndms1, val:200 },
  103. { var:dgain0, val:1.0 },
  104. { var:dgain1, val:1.0 },
  105. { var:wgain0, val:1.0 },
  106. { var:wgain1, val:1.0 },
  107. ]
  108. // Dry
  109. preset_dry :
  110. [
  111. { loc:-1 mod:m1 var:mod0, type:set, val:1 },
  112. { var:cigain0, val: 5.0 },
  113. { var:wet0 val: 0.0}
  114. { var:sw0, val:0 },
  115. { var:mod1 val:1 },
  116. { var:cigain1, val: 5.0 },
  117. { var:wet1 val: 0.0}
  118. { var:sw1, val:0 },
  119. ]
  120. """
  121. # Default labels to match the 'kc' menu.
  122. dfltLabelsL = [ "a","b","c","d","f_1", "f_2", "f_3", "f_4", "g", "g_a", "g_1_a", "g_1_d" ]
  123. # Default preset values.
  124. dfltPresetL = [
  125. {"a":
  126. [
  127. {
  128. "mod": 1,
  129. "thr": 60.0,
  130. "upr": -1.1,
  131. "lwr": 2.0,
  132. "ceil": 0.0,
  133. "mix": 0.0,
  134. "cbyp": 0.0,
  135. "cigain": 6.0,
  136. "wet": 1.0,
  137. "wgain": 1.75,
  138. "sw": 0
  139. },
  140. {
  141. "mod": 1,
  142. "thr": 60.0,
  143. "upr": -0.99,
  144. "lwr": 2.0,
  145. "ceil": 0.0,
  146. "mix": 0.0,
  147. "cbyp": 0.0,
  148. "cigain": 6.0,
  149. "wet": 1.0,
  150. "wgain": 1.75,
  151. "sw": 0
  152. }
  153. ]
  154. },
  155. {"b":
  156. [
  157. {
  158. "mod": 1,
  159. "thr": 77.0,
  160. "upr": -0.5,
  161. "lwr": 3.0,
  162. "ceil": 0.0,
  163. "mix": 0.0,
  164. "cigain":10.0,
  165. "wet": 1.0,
  166. "wgain": 1.75,
  167. "sw": 0
  168. },
  169. {
  170. "mod": 1,
  171. "thr": 74.0,
  172. "upr": -0.5,
  173. "lwr": 2.0,
  174. "ceil": 0.0,
  175. "mix": 0.0,
  176. "cigain":10.0,
  177. "wet": 1.0,
  178. "wgain": 1.75,
  179. "sw": 0
  180. }
  181. ]
  182. },
  183. {"c":
  184. [
  185. {
  186. "mod": 1,
  187. "thr": 80.0,
  188. "upr": -0.5,
  189. "lwr": 5.0,
  190. "ceil": 0.0,
  191. "mix": 0.0,
  192. "cigain":11.0,
  193. "wet": 1.0,
  194. "wgain": 1.0,
  195. "sw": 0
  196. },
  197. {
  198. "mod": 1,
  199. "thr": 80.0,
  200. "upr": -0.5,
  201. "lwr": 5.0,
  202. "mix": 0.0,
  203. "ceil": 0.0,
  204. "cigain":11.0,
  205. "wet": 1.0,
  206. "wgain": 1.0,
  207. "sw": 0
  208. }
  209. ]
  210. },
  211. {"d":
  212. [
  213. {
  214. "mod": 1,
  215. "thr": 70.0,
  216. "upr": -3.9,
  217. "lwr": 4.0,
  218. "mix": 0.0,
  219. "ceil": 0.0,
  220. "cigain": 9.0,
  221. "wet": 1.0,
  222. "wgain": 1.0,
  223. "sw": 0
  224. },
  225. {
  226. "mod": 1,
  227. "thr": 70.0,
  228. "upr": -4.5,
  229. "lwr": 4.0,
  230. "mix": 0.0,
  231. "ceil": 0.0,
  232. "cigain": 9.0,
  233. "wet": 1.0,
  234. "wgain": 1.0,
  235. "sw": 0
  236. }
  237. ]
  238. },
  239. {"f_1":
  240. [
  241. {
  242. "mod": 1,
  243. "thr": 50.0,
  244. "upr": -3.0,
  245. "lwr": 1.0,
  246. "ceil": 0.0,
  247. "expo": 1.0,
  248. "mix": 0.0,
  249. "cigain": 6.0,
  250. "wet": 1.0,
  251. "wgain": 2.0,
  252. "sw": 0
  253. },
  254. {
  255. "mod": 1,
  256. "thr": 50.0,
  257. "upr": -3.0,
  258. "lwr": 1.0,
  259. "ceil": 0.0,
  260. "expo": 1.0,
  261. "mix": 0.0,
  262. "cigain": 6.0,
  263. "wet": 1.0,
  264. "wgain": 2.0,
  265. "sw": 0
  266. }
  267. ]
  268. },
  269. {"f_2":
  270. [
  271. {
  272. "mod": 1,
  273. "thr": 60.0,
  274. "upr": -3.0,
  275. "lwr": 1.0,
  276. "ceil": 0.0,
  277. "mix": 0.0,
  278. "cigain": 6.0,
  279. "wet": 1.0,
  280. "wgain": 2.0,
  281. "sw": 0
  282. },
  283. {
  284. "mod": 1,
  285. "thr": 60.0,
  286. "upr": -3.0,
  287. "lwr": 1.0,
  288. "ceil": 0.0,
  289. "mix": 0.0,
  290. "cigain": 6.0,
  291. "wet": 1.0,
  292. "wgain": 2.0,
  293. "sw": 0
  294. }
  295. ]
  296. },
  297. {"f_3":
  298. [
  299. {
  300. "mod": 1,
  301. "thr": 55.0,
  302. "upr": -3.0,
  303. "lwr": 1.0,
  304. "ceil": 0.0,
  305. "mix": 0.0,
  306. "cigain": 6.0,
  307. "wet": 1.0,
  308. "wgain": 2.0,
  309. "sw": 0
  310. },
  311. {
  312. "mod": 1,
  313. "thr": 55.0,
  314. "upr": -3.0,
  315. "lwr": 1.0,
  316. "ceil": 0.0,
  317. "mix": 0.0,
  318. "cigain": 6.0,
  319. "wet": 1.0,
  320. "wgain": 2.0,
  321. "sw": 0
  322. }
  323. ]
  324. },
  325. {"f_4":
  326. [
  327. {
  328. "mod": 1,
  329. "thr": 55.0,
  330. "upr": -5.0,
  331. "lwr": 1.0,
  332. "ceil": 0.0,
  333. "mix": 0.0,
  334. "cigain": 6.0,
  335. "wet": 1.0,
  336. "wgain": 2.0,
  337. "sw": 0
  338. },
  339. {
  340. "mod": 1,
  341. "thr": 55.0,
  342. "upr": -5.0,
  343. "lwr": 1.0,
  344. "ceil": 0.0,
  345. "mix": 0.0,
  346. "cigain": 6.0,
  347. "wet": 1.0,
  348. "wgain": 2.0,
  349. "sw": 0
  350. }
  351. ]
  352. },
  353. {"g":
  354. [
  355. {
  356. "mod": 4,
  357. "thr": 60.0,
  358. "upr": -0.7,
  359. "lwr": 8.0,
  360. "ceil": 20.0,
  361. "expo": 8.0,
  362. "mix": 1.0,
  363. "cigain":10.0,
  364. "wet": 1.0,
  365. "wgain": 1.0,
  366. "sw": 0
  367. },
  368. {
  369. "mod": 4,
  370. "thr": 64.0,
  371. "upr": -0.7,
  372. "lwr": 8.0,
  373. "ceil": 20.0,
  374. "expo": 8.0,
  375. "mix": 1.0,
  376. "cigain":10.0,
  377. "wet": 1.0,
  378. "wgain": 1.0,
  379. "sw": 0
  380. }
  381. ]
  382. },
  383. {"g_a":
  384. [
  385. {
  386. "mod": 4,
  387. "thr": 50.0,
  388. "upr": -0.7,
  389. "lwr": 2.0,
  390. "ceil": 40.0,
  391. "expo": 2.0,
  392. "mix": 1.0,
  393. "cigain":10.0,
  394. "wet": 1.0,
  395. "wgain": 1.0,
  396. "sw": 0
  397. },
  398. {
  399. "mod": 4,
  400. "thr": 54.0,
  401. "upr": -0.7,
  402. "lwr": 2.0,
  403. "ceil": 40.0,
  404. "expo": 2.0,
  405. "mix": 1.0,
  406. "cigain":10.0,
  407. "wet": 1.0,
  408. "wgain": 1.0,
  409. "sw": 0
  410. }
  411. ]
  412. },
  413. {"g_1_a":
  414. [
  415. {
  416. "mod": 4,
  417. "thr": 50.0,
  418. "upr": -0.7,
  419. "lwr": 8.0,
  420. "ceil": 20.0,
  421. "expo": 8.0,
  422. "mix": 1.0,
  423. "cigain":10.0,
  424. "wet": 1.0,
  425. "wgain": 1.0,
  426. "sw": 0
  427. },
  428. {
  429. "mod": 4,
  430. "thr": 54.0,
  431. "upr": -0.7,
  432. "lwr": 2.0,
  433. "ceil": 20.0,
  434. "expo": 2.0,
  435. "mix": 1.0,
  436. "cigain":10.0,
  437. "wet": 1.0,
  438. "wgain": 1.0,
  439. "sw": 0
  440. }
  441. ]
  442. },
  443. {"g_1_d":
  444. [
  445. {
  446. "mod": 4,
  447. "thr": 40.0,
  448. "upr": -0.4,
  449. "lwr": 7.0,
  450. "ceil": 60.0,
  451. "expo": 7.0,
  452. "mix": 1.0,
  453. "cigain":10.0,
  454. "wet": 1.0,
  455. "wgain": 1.0,
  456. "sw": 0
  457. },
  458. {
  459. "mod": 4,
  460. "thr": 34.0,
  461. "upr": -0.3,
  462. "lwr": 5.0,
  463. "ceil": 64.0,
  464. "expo": 5.0,
  465. "mix": 1.0,
  466. "cigain":10.0,
  467. "wet": 1.0,
  468. "wgain": 1.0,
  469. "sw": 0
  470. }
  471. ]
  472. }
  473. ]
  474. def write_seq( f, label, seqL ):
  475. """ Write a sequence preset.
  476. seqL = [
  477. (loc preset_label) # Set 'preset_label' to 'None' to assign the seq. label to the preset label.
  478. (loc var ch value) # 'ch' is 0=left or 1=right
  479. ]
  480. """
  481. f.write("seq_%s :\n" % label)
  482. f.write("[\n")
  483. f.write("{ loc:-1 type:exec val:init },\n")
  484. f.write("{ loc:-1 val:preset_dry },\n")
  485. typ0 = 'exec'
  486. for x in seqL:
  487. typ1 = typ0
  488. if len(x) == 2:
  489. typ1 = 'exec'
  490. preset_label = label if x[1]==None else x[1]
  491. typeS = 'type:exec,' if typ0!=typ1 else ' '
  492. f.write("{ loc:%5i, %s val:preset_%s },\n" % (x[0],typeS,preset_label))
  493. elif len(x) == 4:
  494. typ1 = 'set'
  495. typeS = 'type:set' if typ0!=typ1 else ' '
  496. f.write("{ loc:%5i %s var:%s%i val:%7.2f },\n" % (x[0],typeS,x[1],x[2],x[3]))
  497. typ0 = typ1
  498. f.write("]\n\n")
  499. def write_preset_ch( f, presetD, ch ):
  500. fmt0 = "{ loc:-1 mode:m1 var:%6s%i, type:set, val:%7.2f },\n"
  501. fmt1 = "{ var:%6s%i, val:%7.2f },\n"
  502. fmt = fmt0 if ch==0 else fmt1
  503. for key,val in presetD.items():
  504. f.write(fmt % (key,ch,val))
  505. fmt = fmt1
  506. def write_preset( f, label, psL ):
  507. f.write("preset_%s : \n" % label)
  508. f.write("[\n")
  509. write_preset_ch(f, psL[0], 0 )
  510. f.write("\n")
  511. write_preset_ch(f, psL[1], 1 )
  512. f.write("]\n")
  513. def write_seqs( f, labelL, seqL ):
  514. """ Assign a list of preset changes to all sequences named in labelL."""
  515. for label in labelL:
  516. write_seq( f, label, seqL )
  517. def write_presets( f, presetL ):
  518. for x in presetL:
  519. label = x.keys()[0]
  520. psL = x[label]
  521. write_preset(f,label,psL)
  522. def label_to_psL( presetL, keyLabel ):
  523. for preset in presetL:
  524. label = preset.keys()[0]
  525. if label == keyLabel:
  526. return preset[label]
  527. raise ValueError( "Preset %s not found." % keyLabel)
  528. def dupl_preset( presetL, keyLabel, labelsL ):
  529. """ Create a new preset list formed by duplicating the preset
  530. identified by 'keyLabel' for each label in 'labelsL'
  531. """
  532. psL = label_to_psL(presetL,keyLabel);
  533. newL = []
  534. for label in labelsL:
  535. newL.append( { label:copy.deepcopy(psL) } )
  536. return newL
  537. def mod_range( presetL, var, val00, val01, val10, val11 ):
  538. N = len(presetL)
  539. v0L = []
  540. v1L = []
  541. for i in range(0,N):
  542. v0L.append( val00 + (i*(val01-val00)/(N-1)) )
  543. v1L.append( val10 + (i*(val11-val10)/(N-1)) )
  544. for i,preset in enumerate(presetL):
  545. label = preset.keys()[0]
  546. psL = preset[label]
  547. #print "%i %s %f %f" % (i,label,v0L[i],v1L[i])
  548. psL[0][var] = v0L[i]
  549. psL[1][var] = v1L[i]
  550. def mod_discrete_range( presetL, var, v0L, v1L ):
  551. assert( len(v0L) == len(v1L) )
  552. N = min(len(v0L),len(presetL))
  553. for i in range(N):
  554. preset = presetL[i]
  555. label = preset.keys()[0]
  556. psL = preset[label]
  557. print "%i %s %f %f" % (i,label,v0L[i],v1L[i])
  558. psL[0][var] = v0L[i]
  559. psL[1][var] = v1L[i]
  560. return N
  561. def print_preset( presetL ):
  562. for x in presetL:
  563. label = x.keys()[0]
  564. psL = x[label]
  565. print "%s %i" % (label,len(psL))
  566. for i,psD in enumerate(psL):
  567. for var,val in psD.items():
  568. print "%s%i:%f" % (var,i,val)
  569. if __name__ == "__main__":
  570. #print_preset( presetL )
  571. fn = sys.argv[1]
  572. #
  573. seq0L = [
  574. ( 961, "g_1_d"), # (loc preset_label)
  575. ( 967, "wnd", 0, 3 ), # (loc var channel value)
  576. ( 967, "f_3"), # (loc preset_label)
  577. (1023, None) # (loc preset_label = seq_label)
  578. ]
  579. seq1L =[
  580. (1, None) # meas 1
  581. #(301, None) # meas 33
  582. #(480, None) # meas 41
  583. ]
  584. presetL = []
  585. # assign a sequential range of thresholds to each preset
  586. if 0: # 12/28/16
  587. mod_range( presetL, "thr", 50.0, 90.0, 55.0, 95.0 )
  588. mod_range( presetL, "cigain", 6.0, 12.0, 6.0, 12.0 )
  589. mod_range( presetL, "upr", 2.5, -5.0, 2.3, -5.2)
  590. mod_range( presetL, "lwr", 0.5, 2.0, 0.5, 2.0)
  591. if 0: # 12/28/16
  592. # make all presets identical to preset 'a'.
  593. presetL = dupl_preset( dfltPresetL, "g_1_d", dfltLabelsL)
  594. #mod_range( presetL, "thr", 30.0, 90.0, 35.0, 95.0 )
  595. #mod_range( presetL, "cigain", 10.0, 16.0, 10.0, 16.0 )
  596. mod_range( presetL, "thr", 65.0, 65.0, 65.0, 65.0 )
  597. #mod_range( presetL, "upr", -0.05, 4.5, -0.05, 4.5) # upr slope min: -0.05
  598. mod_range( presetL, "upr", -0.05, -0.05, -0.05, -0.05)
  599. #mod_range( presetL, "lwr", 1.1, 8.0, 1.1, 8.0 ) # 1.5 is good
  600. #mod_range( presetL, "lwr", 8.0, 8.0, 8.0, 8.0 )
  601. mod_range( presetL, "lwr", 1.5, 1.5, 1.5, 1.5 )
  602. mod_range( presetL, "ceil", 0.0, 99.9, 0.0, 99.9)
  603. #mod_range( presetL, "upr", 2.5, -5.0, 2.3, -5.2)
  604. #mod_range( presetL, "lwr", 0.5, 2.0, 0.5, 2.0)
  605. if 0: # 1/14/17
  606. seq1L =[
  607. (778, None) # meas 50
  608. ]
  609. if 0:
  610. presetL = dupl_preset( dfltPresetL, "f_3", dfltLabelsL)
  611. # thr: (40 ok) - (71 0k) upr:-3.0 lwr:1.0 cigain:6.0 vetted trajectory for measure 50
  612. mod_range( presetL, "thr", 40.0, 71.0, 40.0, 71.0 )
  613. #mod_range( presetL, "thr", 68.0, 68.0, 68.0, 68.0 )
  614. #mod_range( presetL, "upr", -4.0, 0.0, -4.0, 0.0)
  615. mod_range( presetL, "upr", -3.0, -3.0, -3.0, -3.0)
  616. mod_range( presetL, "lwr", 1.0, 1.0, 1.0, 1.0 )
  617. mod_range( presetL, "cigain", 6.0, 6.0, 6.0, 6.0 )
  618. else: # 3/6/17
  619. presetL = dupl_preset( dfltPresetL, "g_1_a", dfltLabelsL)
  620. mod_range( presetL, "thr", 20.0, 50.0, 20.0, 50.0 ) # offs:65 thr:20-50
  621. mod_range( presetL, "ceil", 10.0, 80.0, 10.0, 80.0)
  622. mod_range( presetL, "upr", -0.7, -0.2, -0.7, -0.2 )
  623. mod_range( presetL, "lwr", 2.0, 2.0, 8.0, 4.0 )
  624. mod_range( presetL, "cigain", 10.0, 14.0, 10.0, 14.0 )
  625. if 0: # 1/14/17 and 1/28/17
  626. seq1L =[
  627. (917, None) # meas 53
  628. #(1, None) # meas 1
  629. ]
  630. # 2/4/17 vetted for both meas 53 and meas 1
  631. # make all presets identical to preset 'a'.
  632. presetL = dupl_preset( dfltPresetL, "g_1_d", dfltLabelsL)
  633. mod_range( presetL, "thr", 20.0, 50.0, 20.0, 50.0 ) # offs:65 thr:20-50
  634. #mod_range( presetL, "ceil", 10.0, 80.0, 10.0, 80.0)
  635. #mod_range( presetL, "ceil", 65.0, 65.0, 65.0, 65.0) # thr 34, offset should be > 50
  636. #mod_range( presetL, "ceil", 50.0, 80.0, 50.0, 80.0)
  637. mod_range( presetL, "ceil", 10.0, 80.0, 10.0, 80.0)
  638. mod_range( presetL, "cigain", 14.0, 14.0, 14.0, 14.0 )
  639. if 0: # 1/28/17
  640. seq1L =[
  641. (917, None) # meas 53
  642. ]
  643. # make all presets identical to preset 'a'.
  644. presetL = dupl_preset( dfltPresetL, "f_3", dfltLabelsL)
  645. mod_range( presetL, "thr", 40.0, 90.0, 40.0, 90.0 )
  646. mod_range( presetL, "upr", 0.0, 0.0, 0.0, 0.0 )
  647. mod_range( presetL, "lwr", 4.0, 4.0, 4.0, 4.0) # vocal artifacts come in with lwr < 4
  648. mod_range( presetL, "cigain", 3.0, 8.0, 3.0, 8.0 )
  649. if 0: # 2/4/17
  650. seq1L =[
  651. (378, None), # meas 36
  652. ]
  653. presetL = dupl_preset( dfltPresetL, "g_1_a", dfltLabelsL)
  654. mod_range( presetL, "thr", 20.0, 50.0, 20.0, 50.0 ) # offs:65 thr:20-50
  655. mod_range( presetL, "ceil", 10.0, 80.0, 10.0, 80.0)
  656. mod_range( presetL, "upr", -0.7, -0.2, -0.7, -0.2 )
  657. mod_range( presetL, "lwr", 2.0, 2.0, 8.0, 4.0 )
  658. mod_range( presetL, "cigain", 10.0, 14.0, 10.0, 14.0 )
  659. if 0: # 2/4/17
  660. seq1L =[
  661. (378, "g_1_a"), # meas 36
  662. (384, None),
  663. ]
  664. presetL = dupl_preset( dfltPresetL, "f_4", dfltLabelsL)
  665. mod_range( presetL, "thr", 70.0, 75.0, 70.0, 75.0 )
  666. mod_range( presetL, "upr", -8.0, -4.0, -8.0, -4.0 )
  667. mod_range( presetL, "lwr", 8.0, 1.0, 8.0, 1.0)
  668. mod_range( presetL, "cigain", 10.0, 14.0, 10.0, 14.0 )
  669. if 0:
  670. seq1L =[
  671. (1, None) # meas 1
  672. ]
  673. # 2/4/17 vetted for both meas 53 and meas 1
  674. # make all presets identical to preset 'a'.
  675. presetL = dupl_preset( dfltPresetL, "g_1_d", dfltLabelsL)
  676. print "preset len:",len(presetL)
  677. w0L = [ 512, 512, 512, 512, 1024, 1024, 1024, 2048, 2048, 4096 ]
  678. w1L = [ 512, 1024, 2048, 4096, 1024, 2048, 4096, 2048, 4096, 4096 ]
  679. N = mod_discrete_range( presetL, "win", w0L, w1L )
  680. presetL = presetL[0:N]
  681. mod_range( presetL, "thr", 40.0, 40.0, 40.0, 40.0 ) # offs:65 thr:20-50
  682. mod_range( presetL, "ceil", 55.0, 55.0, 55.0, 55.0)
  683. mod_range( presetL, "cigain", 14.0, 14.0, 14.0, 14.0 )
  684. if 0: # 3/6/17
  685. seq1L =[
  686. (1, None) # meas 1
  687. ]
  688. presetL = dupl_preset( dfltPresetL, "g_1_d", dfltLabelsL)
  689. mod_range( presetL, "thr", 20.0, 50.0, 20.0, 50.0 ) # offs:65 thr:20-50
  690. mod_range( presetL, "ceil", 10.0, 80.0, 10.0, 80.0)
  691. mod_range( presetL, "cigain", 14.0, 14.0, 14.0, 14.0 )
  692. if 0: # 3/6/17
  693. seq1L =[
  694. (1, None) # meas 1
  695. ]
  696. presetL = dupl_preset( dfltPresetL, "a", dfltLabelsL)
  697. mod_range( presetL, "thr", 55.0, 65.0, 55.0, 65.0 )
  698. mod_range( presetL, "upr", -1.0, -5.0, -1.0, -5.0 )
  699. mod_range( presetL, "lwr", 2.0, 1.0, 2.0, 1.0 )
  700. mod_range( presetL, "cigain", 6.0, 8.0, 6.0, 8.0 )
  701. if 0: # 3/6/17
  702. seq1L =[
  703. #(1, None) # meas 38
  704. (476, None)
  705. ]
  706. presetL = dupl_preset( dfltPresetL, "f_4", dfltLabelsL)
  707. """
  708. w0L = [ 512, 512, 512, 512, 1024, 1024, 1024, 2048, 2048, 4096 ]
  709. w1L = [ 512, 1024, 2048, 4096, 1024, 2048, 4096, 2048, 4096, 4096 ]
  710. N = mod_discrete_range( presetL, "win", w0L, w1L )
  711. presetL = presetL[0:N]
  712. """
  713. if 1:
  714. mod_range( presetL, "thr", 55.0, 65.0, 55.0, 65.0 )
  715. mod_range( presetL, "upr", -1.0, -5.0, -1.0, -5.0 )
  716. mod_range( presetL, "lwr", 2.0, 1.0, 2.0, 1.0 )
  717. mod_range( presetL, "cigain", 6.0, 8.0, 6.0, 8.0 )
  718. else:
  719. mod_range( presetL, "thr", 55.0, 75.0, 55.0, 75.0 )
  720. mod_range( presetL, "upr", -8.0, -4.0, -8.0, -4.0 )
  721. mod_range( presetL, "lwr", 8.0, 1.0, 8.0, 1.0)
  722. mod_range( presetL, "cigain", 10.0, 14.0, 10.0, 14.0 )
  723. if 0: # 3/11/17
  724. seq1L =[
  725. (1015, None) # meas 57 (just before section 29)
  726. #(1068, None) # meas 58 (just before section 29)
  727. ]
  728. presetL = dupl_preset( dfltPresetL, "g_1_d", dfltLabelsL)
  729. # this is a good parameter space - notice that it can
  730. # generate 4 lines connecting the diagnals of a cube
  731. mod_range( presetL, "thr", 10.0, 80.0, 10.0, 80.0 ) # line 1
  732. mod_range( presetL, "ceil", 10.0, 99.0, 10.0, 99.0)
  733. #mod_range( presetL, "thr", 10.0, 80.0, 10.0, 80.0 ) # line 2
  734. #mod_range( presetL, "ceil", 99.0, 10.0, 99.0, 10.0)
  735. #mod_range( presetL, "upr", 5.0, -1.5, 5.0, -1.5 )
  736. mod_range( presetL, "upr", -1.5, 5.0, -1.5, 5.0 )
  737. #mod_range( presetL, "lwr", 0.9, 30.0, 0.9, 30.0 )
  738. mod_range( presetL, "cigain", 14.0, 14.0, 14.0, 14.0 )
  739. if 0: # 8/12/17 f_1 -> b
  740. seq1L =[ (875,None) ]
  741. presetL = dupl_preset( dfltPresetL, "f_1", dfltLabelsL)
  742. mod_range( presetL, "thr", 50.0, 77.0, 50.0, 74.0 )
  743. mod_range( presetL, "upr", -3.0, -0.5, -3.0, -0.5 )
  744. mod_range( presetL, "lwr", 1.0, 3.0, 1.0, 2.0 )
  745. if 0: # 8/12/17 f_1 -> g_1_d
  746. seq1L =[ (894,None) ]
  747. presetL = dupl_preset( dfltPresetL, "f_1", dfltLabelsL)
  748. mod_range( presetL, "thr", 50.0, 40.0, 50.0, 34.0 )
  749. mod_range( presetL, "upr", -3.0, -0.4, -3.0, -0.3 )
  750. mod_range( presetL, "lwr", 1.0, 7.0, 1.0, 5.0 )
  751. mod_range( presetL, "ceil", 0.0, 60.0, 0.0, 64.0 )
  752. mod_range( presetL, "expo", 1.0, 7.0, 1.0, 5.0 )
  753. mod_range( presetL, "mix", 0.0, 1.0, 0.0, 1.0 )
  754. if 0: # 8/12/17 b -> g_1_d
  755. seq1L =[ (1001,None) ]
  756. presetL = dupl_preset( dfltPresetL, "b", dfltLabelsL)
  757. mod_range( presetL, "thr", 77.0, 40.0, 74.0, 34.0 )
  758. mod_range( presetL, "upr", -0.5, -0.4, -0.5, -0.3 )
  759. mod_range( presetL, "lwr", 3.0, 7.0, 2.0, 5.0 )
  760. mod_range( presetL, "ceil", 0.0, 60.0, 0.0, 64.0 )
  761. mod_range( presetL, "expo", 1.0, 7.0, 1.0, 5.0 )
  762. mod_range( presetL, "mix", 0.0, 1.0, 0.0, 1.0 )
  763. if 0: # 8/26/17 a -> c
  764. seq1L =[ (1,None) ]
  765. presetL = dupl_preset( dfltPresetL, "a", dfltLabelsL)
  766. mod_range( presetL, "thr", 60.0, 80.0, 60.0, 80.0 )
  767. mod_range( presetL, "upr", -1.1, -0.5,-0.99, -0.5 )
  768. mod_range( presetL, "lwr", 2.0, 5.0, 2.0, 5.0 )
  769. mod_range( presetL, "cigain", 6.0, 11.0, 6.0, 11.0 )
  770. if 1: # 8/26/17 c -> c
  771. seq1L =[ (187,None) ]
  772. presetL = dupl_preset( dfltPresetL, "c", dfltLabelsL)
  773. mod_range( presetL, "thr", 80.0, 60.0, 80.0, 60.0 )
  774. mod_range( presetL, "upr", -0.5, -1.5, -0.5, -0.75 )
  775. mod_range( presetL, "lwr", 5.0, 2.0, 5.0, 2.0 )
  776. mod_range( presetL, "cigain", 11.0, 25.0, 11.0, 25.0 )
  777. mod_range( presetL, "cmakeup", 5.0, 20.0, 5.0, 20.0 )
  778. # thr upr lwr offs
  779. # 65 -0.05 1.5 0.0
  780. # 99.9
  781. # 65 -0.05 10.0 0.0
  782. # 99.0
  783. with open(fn,"wt") as f:
  784. f.write("{\n")
  785. write_seqs(f,dfltLabelsL,seq1L) # assign seq0L to each sequence
  786. #write_seqs(f,'a',scoreSeqL); # the only sequence will be 'a'
  787. f.write("%s\n" % initPresetStr)
  788. write_presets(f,presetL)
  789. f.write("}\n")