@hyperframes/core 0.7.107 → 0.7.109

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/audio/audioFxAutomation.d.ts +63 -0
  2. package/dist/audio/audioFxAutomation.d.ts.map +1 -0
  3. package/dist/audio/audioFxAutomation.js +219 -0
  4. package/dist/audio/audioFxAutomation.js.map +1 -0
  5. package/dist/audio/audioFxGraph.d.ts +73 -0
  6. package/dist/audio/audioFxGraph.d.ts.map +1 -0
  7. package/dist/audio/audioFxGraph.js +649 -0
  8. package/dist/audio/audioFxGraph.js.map +1 -0
  9. package/dist/audio/audioFxTail.d.ts +28 -0
  10. package/dist/audio/audioFxTail.d.ts.map +1 -0
  11. package/dist/audio/audioFxTail.js +95 -0
  12. package/dist/audio/audioFxTail.js.map +1 -0
  13. package/dist/audio/audioFxWorklets.d.ts +8 -0
  14. package/dist/audio/audioFxWorklets.d.ts.map +1 -0
  15. package/dist/audio/audioFxWorklets.js +263 -0
  16. package/dist/audio/audioFxWorklets.js.map +1 -0
  17. package/dist/audioAutomation.d.ts +191 -0
  18. package/dist/audioAutomation.d.ts.map +1 -0
  19. package/dist/audioAutomation.js +488 -0
  20. package/dist/audioAutomation.js.map +1 -0
  21. package/dist/audioCarve.d.ts +216 -0
  22. package/dist/audioCarve.d.ts.map +1 -0
  23. package/dist/audioCarve.js +608 -0
  24. package/dist/audioCarve.js.map +1 -0
  25. package/dist/audioFx.d.ts +182 -0
  26. package/dist/audioFx.d.ts.map +1 -0
  27. package/dist/audioFx.js +813 -0
  28. package/dist/audioFx.js.map +1 -0
  29. package/dist/audioFxCopy.d.ts +89 -0
  30. package/dist/audioFxCopy.d.ts.map +1 -0
  31. package/dist/audioFxCopy.js +340 -0
  32. package/dist/audioFxCopy.js.map +1 -0
  33. package/dist/audioFxEq.d.ts +75 -0
  34. package/dist/audioFxEq.d.ts.map +1 -0
  35. package/dist/audioFxEq.js +153 -0
  36. package/dist/audioFxEq.js.map +1 -0
  37. package/dist/audioFxJobs.d.ts +52 -0
  38. package/dist/audioFxJobs.d.ts.map +1 -0
  39. package/dist/audioFxJobs.js +92 -0
  40. package/dist/audioFxJobs.js.map +1 -0
  41. package/dist/audioFxPresets.d.ts +91 -0
  42. package/dist/audioFxPresets.d.ts.map +1 -0
  43. package/dist/audioFxPresets.js +320 -0
  44. package/dist/audioFxPresets.js.map +1 -0
  45. package/dist/audioFxProfiles.d.ts +65 -0
  46. package/dist/audioFxProfiles.d.ts.map +1 -0
  47. package/dist/audioFxProfiles.js +209 -0
  48. package/dist/audioFxProfiles.js.map +1 -0
  49. package/dist/audioLeveller.d.ts +62 -0
  50. package/dist/audioLeveller.d.ts.map +1 -0
  51. package/dist/audioLeveller.js +208 -0
  52. package/dist/audioLeveller.js.map +1 -0
  53. package/dist/canaryRegistry.d.ts.map +1 -1
  54. package/dist/canaryRegistry.js +8 -0
  55. package/dist/canaryRegistry.js.map +1 -1
  56. package/dist/compiler/compositionScoping.d.ts +3 -0
  57. package/dist/compiler/compositionScoping.d.ts.map +1 -1
  58. package/dist/compiler/compositionScoping.js +34 -11
  59. package/dist/compiler/compositionScoping.js.map +1 -1
  60. package/dist/compiler/htmlBundler.d.ts.map +1 -1
  61. package/dist/compiler/htmlBundler.js +42 -2
  62. package/dist/compiler/htmlBundler.js.map +1 -1
  63. package/dist/editing/affordances.d.ts +3 -0
  64. package/dist/editing/affordances.d.ts.map +1 -1
  65. package/dist/editing/affordances.js +1 -0
  66. package/dist/editing/affordances.js.map +1 -1
  67. package/dist/generated/audio-fx-runtime-inline.d.ts +3 -0
  68. package/dist/generated/audio-fx-runtime-inline.d.ts.map +1 -0
  69. package/dist/generated/audio-fx-runtime-inline.js +7 -0
  70. package/dist/generated/audio-fx-runtime-inline.js.map +1 -0
  71. package/dist/generated/runtime-inline.js +1 -1
  72. package/dist/generated/runtime-inline.js.map +1 -1
  73. package/dist/hyperframe.runtime.iife.js +238 -28
  74. package/dist/runtime/applyVariableBindings.d.ts +45 -0
  75. package/dist/runtime/applyVariableBindings.d.ts.map +1 -0
  76. package/dist/runtime/applyVariableBindings.js +194 -0
  77. package/dist/runtime/applyVariableBindings.js.map +1 -0
  78. package/dist/runtime/audioAutomationVolume.d.ts +17 -0
  79. package/dist/runtime/audioAutomationVolume.d.ts.map +1 -0
  80. package/dist/runtime/audioAutomationVolume.js +49 -0
  81. package/dist/runtime/audioAutomationVolume.js.map +1 -0
  82. package/dist/runtime/media.d.ts.map +1 -1
  83. package/dist/runtime/media.js +17 -1
  84. package/dist/runtime/media.js.map +1 -1
  85. package/dist/runtime/variableScope.d.ts +9 -0
  86. package/dist/runtime/variableScope.d.ts.map +1 -0
  87. package/dist/runtime/variableScope.js +21 -0
  88. package/dist/runtime/variableScope.js.map +1 -0
  89. package/package.json +51 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioFx.js","sourceRoot":"","sources":["../src/audioFx.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAE3E,iFAAiF;AACjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAyD3C,MAAM,IAAI,GAAG,CACX,GAAG,GAAG,WAAW,EACjB,KAAK,GAAG,WAAW,EACnB,GAAG,GAAG,IAAI,EACV,GAAG,GAAG,EAAE,EACR,GAAG,GAAG,KAAK,EACW,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,QAAQ;IACd,GAAG;IACH,KAAK;IACL,IAAI,EAAE,IAAI;IACV,GAAG;IACH,GAAG;IACH,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,IAAI,GAAG,iCAAiC,EAAwB,EAAE,CAAC,CAAC;IAC/F,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,IAAI;IACjB,IAAI;CACL,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAwB,EAAE,CAAC,CAAC;IACtE,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,IAAI;IACV,GAAG;IACH,GAAG;IACH,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,IAAI;CAClB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAuB;IAChC,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE;QACP,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE;QACjC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE;KACnC;IACD,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,qDAAqD;CAC5D,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA4B;IAClD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,4EAA4E;QACzF,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5B,GAAG,EAAE,WAAW;KACjB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,4DAA4D;QACzE,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7E,GAAG,EAAE,gBAAgB;KACtB;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,qDAAqD;QAClE,yEAAyE;QACzE,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,GAAG,EAAE,iBAAiB;KACvB;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9E,GAAG,EAAE,kBAAkB;KACxB;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,+DAA+D;QAC5E,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAC3E,GAAG,EAAE,iBAAiB;KACvB;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,uDAAuD;QACpE,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAC7E,GAAG,EAAE,gBAAgB;KACtB;IAED;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC,EAAE;gBACZ,IAAI,EAAE,kDAAkD;aACzD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,KAAK;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,2CAA2C;aAClD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,wCAAwC;aAC/C;SACF;QACD,GAAG,EAAE,oBAAoB;KAC1B;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,6CAA6C;QAC1D,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC,CAAC;aACZ;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,EAAE;gBACX,KAAK,EAAE,KAAK;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;SACF;QACD,GAAG,EAAE,iBAAiB;KACvB;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sDAAsD;QACnE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC,EAAE;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC,EAAE;gBACZ,IAAI,EAAE,0CAA0C;aACjD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,EAAE;aACZ;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,QAAQ;gBACb,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,KAAK;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,KAAK;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aACd;SACF;QACD,GAAG,EAAE,cAAc;KACpB;IAED;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,2DAA2D;QACxE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAClC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;oBAClC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE;oBACtC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;oBACpC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;oBACtC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;oBAC/B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBACzC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;iBACtC;gBACD,OAAO,EAAE,MAAM;aAChB;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC,CAAC;aACZ;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,QAAQ;gBACb,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC,EAAE;gBACR,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,YAAY;gBACjB,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,GAAG;gBACT,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,4CAA4C;aACnD;SACF;QACD,GAAG,EAAE,YAAY;KAClB;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,4DAA4D;QACzE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,GAAG;gBACT,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,mDAAmD;aAC1D;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,CAAC;aACX;SACF;QACD,GAAG,EAAE,kBAAkB;KACxB;IAED;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,yCAAyC;QACtD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,MAAM;gBACX,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,KAAK;aACb;YACD,uEAAuE;YACvE,0DAA0D;YAC1D;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,UAAU;gBACf,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;SACF;QACD,GAAG,EAAE,gBAAgB;KACtB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,uDAAuD;QACpE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;SACF;QACD,GAAG,EAAE,YAAY;KAClB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,+CAA+C;QAC5D,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,UAAU;gBACf,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aACd;YACD,mEAAmE;YACnE,+DAA+D;YAC/D;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,CAAC;aACX;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,OAAO;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE;oBACnC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE;iBACpC;gBACD,OAAO,EAAE,GAAG;aACb;SACF;QACD,GAAG,EAAE,gBAAgB;KACtB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,MAAM;QACb,WAAW,EACT,sFAAsF;QACxF,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,MAAM;gBACX,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,IAAI;gBACT,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,2CAA2C;aAClD;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,KAAK;gBACV,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,EAAE;gBACR,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG;aACb;SACF;QACD,GAAG,EAAE,WAAW;KACjB;CACO,CAAC;AAEX,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAsB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE/E,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,EAAU;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,EAAU,EACV,MAAkD;IAElD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAE,GAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,uEAAuE;QACvE,qEAAqE;QACrE,yEAAyE;QACzE,+BAA+B;QAC/B,MAAM,CAAC,GACL,OAAO,GAAG,KAAK,QAAQ;YACrB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC5C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACpF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAuED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CAAC,iCAAkC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,GAAG,GAAG,GAA6C,CAAC;IAC1D,IAAI,GAAG,CAAC,OAAO,KAAK,yBAAyB,EAAE,CAAC;QAC9C,MAAM,IAAI,iBAAiB,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,iBAAiB,CAAC,wCAAwC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,KAAK,GAAoB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,GAAG,CAWZ,CAAC;QACF,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,uEAAuE;YACvE,sEAAsE;YACtE,wDAAwD;YACxD,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU;gBACxD,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;gBACjC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,2EAA2E;YAC3E,mEAAmE;YACnE,GAAG,CAAC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;gBAC7E,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;YAC/B,MAAM,EAAE,sBAAsB,CAC5B,IAAI,CAAC,IAAI,EACT,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAqC,CAC/D;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CAAC,KAAqB;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,qBAAqB,CAAC,KAAqB;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,yBAAyB;QAClC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,2EAA2E;YAC3E,mCAAmC;YACnC,GAAG,CAAC,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC;gBAClE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;SACvD,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAqB;IACrD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The plain-language layer over the effect registry.
3
+ *
4
+ * Every entry is written for somebody who has never opened a mixer. The rule
5
+ * used throughout: name the OUTCOME, never the mechanism, and describe a control
6
+ * by what changes in the sound rather than what it does to the signal.
7
+ *
8
+ * This is a layer *over* the registry, not a replacement for it. `HF_AUDIO_FX`
9
+ * stays the authority on what an effect is and what its parameters do; this says
10
+ * what to call those things in front of an author. `audioFxCopy.test.ts` holds
11
+ * the two together — every shipped effect, every one of its parameters, and
12
+ * every preset must have an entry here, so adding one to the registry without
13
+ * copy fails a test rather than shipping a rack panel labelled `highpass`.
14
+ *
15
+ * Tone and the levelling module are deliberately absent: both carry their own
16
+ * copy in core already (`audioEqSummary`, `levellingSummary`), because a summary
17
+ * that has to read the chain belongs beside the code that writes it.
18
+ *
19
+ * Design rationale, and the review page built from this, in
20
+ * `plans/audio-fx-ux/README.md`.
21
+ */
22
+ export interface Ends {
23
+ /** What the low end of the control sounds like. */
24
+ low: string;
25
+ high: string;
26
+ }
27
+ export interface ParamCopy {
28
+ label: string;
29
+ hint?: string;
30
+ ends?: Ends;
31
+ }
32
+ export interface EffectCopy {
33
+ /** What the module is called in the rack. Never the DSP name. */
34
+ title: string;
35
+ /** One line: what it is for. Present tense, second person implied. */
36
+ does: string;
37
+ /** The problem an author would say out loud that leads here. */
38
+ reachFor: string;
39
+ /**
40
+ * The single control that carries the module. Either a real parameter key,
41
+ * or "strength" — meaning the module gets one derived knob and the real
42
+ * parameters live behind Details.
43
+ */
44
+ primary: string;
45
+ primaryEnds: Ends;
46
+ /** Plain names for the real parameters, shown only under Details. */
47
+ params: Record<string, ParamCopy>;
48
+ /** Which frequencies it acts on, for the shared ruler. Omit if not spectral. */
49
+ band?: [number, number];
50
+ }
51
+ export declare const EFFECT_COPY: Record<string, EffectCopy>;
52
+ /**
53
+ * The shared vocabulary. Frequencies mean nothing to somebody who has not been
54
+ * taught them; these words are what the same person would say unprompted, and
55
+ * naming the ranges once teaches them everywhere they appear.
56
+ */
57
+ export declare const BANDS: {
58
+ from: number;
59
+ to: number;
60
+ name: string;
61
+ says: string;
62
+ }[];
63
+ /**
64
+ * Which named range a frequency falls in.
65
+ *
66
+ * The whole point of `BANDS` is that the words get taught, and they only get
67
+ * taught if a module can say which one it is working in. Below the first band
68
+ * and above the last both clamp rather than returning nothing: 15 Hz is still
69
+ * rumble to anybody who can hear it, and the alternative is a filter at the edge
70
+ * of its range having no name at all.
71
+ */
72
+ export declare function audioBandAt(hz: number): (typeof BANDS)[number] | undefined;
73
+ /** Which everyday complaint each preset answers. Presets ARE the product here. */
74
+ export declare const PRESET_PROBLEM: Record<string, string>;
75
+ /**
76
+ * What a module says when it is CLOSED.
77
+ *
78
+ * The most-seen state by a distance: a rack with six modules is six of these
79
+ * and nothing else. So it is a sentence about what is happening to the sound,
80
+ * not a dump of the parameter that happens to be first. An author should be
81
+ * able to read the rack top to bottom and understand their own mix.
82
+ *
83
+ * Numbers stay in — they are what makes it checkable rather than vague — but
84
+ * they arrive inside a phrase instead of on their own.
85
+ */
86
+ type P = Record<string, unknown>;
87
+ export declare const SUMMARY: Record<string, (p: P) => string>;
88
+ export {};
89
+ //# sourceMappingURL=audioFxCopy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioFxCopy.d.ts","sourceRoot":"","sources":["../src/audioFxCopy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,IAAI;IACnB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,CAAC;IAClB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,gFAAgF;IAChF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzB;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAiOlD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAQ3E,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAO1E;AAED,kFAAkF;AAClF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoBjD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AASjC,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAoCpD,CAAC"}
@@ -0,0 +1,340 @@
1
+ /**
2
+ * The plain-language layer over the effect registry.
3
+ *
4
+ * Every entry is written for somebody who has never opened a mixer. The rule
5
+ * used throughout: name the OUTCOME, never the mechanism, and describe a control
6
+ * by what changes in the sound rather than what it does to the signal.
7
+ *
8
+ * This is a layer *over* the registry, not a replacement for it. `HF_AUDIO_FX`
9
+ * stays the authority on what an effect is and what its parameters do; this says
10
+ * what to call those things in front of an author. `audioFxCopy.test.ts` holds
11
+ * the two together — every shipped effect, every one of its parameters, and
12
+ * every preset must have an entry here, so adding one to the registry without
13
+ * copy fails a test rather than shipping a rack panel labelled `highpass`.
14
+ *
15
+ * Tone and the levelling module are deliberately absent: both carry their own
16
+ * copy in core already (`audioEqSummary`, `levellingSummary`), because a summary
17
+ * that has to read the chain belongs beside the code that writes it.
18
+ *
19
+ * Design rationale, and the review page built from this, in
20
+ * `plans/audio-fx-ux/README.md`.
21
+ */
22
+ export const EFFECT_COPY = {
23
+ gain: {
24
+ title: "Volume",
25
+ does: "Turns this track up or down.",
26
+ reachFor: "It's too loud, or too quiet, against everything else.",
27
+ primary: "gain",
28
+ primaryEnds: { low: "Silent", high: "Louder" },
29
+ params: { gain: { label: "Level", ends: { low: "Silent", high: "Louder" } } },
30
+ },
31
+ highpass: {
32
+ title: "Remove Rumble",
33
+ does: "Cuts the very bottom — traffic, footsteps, air conditioning, hands on the mic.",
34
+ reachFor: "There's a low hum or thump under everything.",
35
+ primary: "frequency",
36
+ primaryEnds: { low: "Only the deepest", high: "Thins it out" },
37
+ band: [20, 300],
38
+ params: {
39
+ frequency: {
40
+ label: "Cut below",
41
+ hint: "Everything under this is removed.",
42
+ ends: { low: "Only the deepest", high: "Thins it out" },
43
+ },
44
+ q: { label: "Sharpness", hint: "How abruptly the cut starts." },
45
+ poles: { label: "Steepness", hint: "How fast it falls away below the point." },
46
+ },
47
+ },
48
+ lowpass: {
49
+ title: "Muffle",
50
+ does: "Takes the top off, like the sound is coming through a door.",
51
+ reachFor: "You want something to sound distant, or behind something else.",
52
+ primary: "frequency",
53
+ primaryEnds: { low: "Very muffled", high: "Barely changed" },
54
+ band: [1000, 20000],
55
+ params: {
56
+ frequency: { label: "Cut above", ends: { low: "Very muffled", high: "Barely changed" } },
57
+ q: { label: "Sharpness" },
58
+ poles: { label: "Steepness" },
59
+ },
60
+ },
61
+ peaking: {
62
+ title: "Shape One Range",
63
+ does: "Lifts or lowers one part of the sound and leaves the rest alone.",
64
+ reachFor: "One quality is wrong — boomy, boxy, harsh — but the rest is fine.",
65
+ primary: "gain",
66
+ primaryEnds: { low: "Take it out", high: "Bring it forward" },
67
+ band: [20, 20000],
68
+ params: {
69
+ frequency: { label: "Where", hint: "Which part of the sound to change." },
70
+ gain: { label: "How much", ends: { low: "Take it out", high: "Bring it forward" } },
71
+ q: {
72
+ label: "How wide",
73
+ hint: "A narrow setting fixes one note; a wide one changes the whole character.",
74
+ },
75
+ },
76
+ },
77
+ lowshelf: {
78
+ title: "Bass",
79
+ does: "More or less weight underneath everything.",
80
+ reachFor: "It sounds thin, or too heavy.",
81
+ primary: "gain",
82
+ primaryEnds: { low: "Thinner", high: "Heavier" },
83
+ band: [20, 300],
84
+ params: {
85
+ frequency: { label: "Up to", hint: "Everything below this is lifted or dropped." },
86
+ gain: { label: "How much", ends: { low: "Thinner", high: "Heavier" } },
87
+ },
88
+ },
89
+ highshelf: {
90
+ title: "Brightness",
91
+ does: "More or less sparkle at the top.",
92
+ reachFor: "It sounds dull, or too fizzy.",
93
+ primary: "gain",
94
+ primaryEnds: { low: "Duller", high: "Brighter" },
95
+ band: [2000, 20000],
96
+ params: {
97
+ frequency: { label: "From", hint: "Everything above this is lifted or dropped." },
98
+ gain: { label: "How much", ends: { low: "Duller", high: "Brighter" } },
99
+ },
100
+ },
101
+ compressor: {
102
+ title: "Even Out Loudness",
103
+ does: "Brings the quiet parts up and holds the loud parts down, so nothing jumps out at the listener.",
104
+ reachFor: "Some parts are much louder than others.",
105
+ primary: "strength",
106
+ primaryEnds: { low: "Barely touched", high: "Very even, quite squashed" },
107
+ params: {
108
+ threshold: { label: "Starts working at", hint: "Anything louder than this gets held down." },
109
+ ratio: { label: "How hard", hint: "How much of the excess is removed." },
110
+ attack: { label: "How fast it grabs", ends: { low: "Instant", high: "Lets peaks through" } },
111
+ release: { label: "How fast it lets go", ends: { low: "Snappy", high: "Smooth" } },
112
+ knee: { label: "How gradual" },
113
+ makeup: {
114
+ label: "Volume back up",
115
+ hint: "Compression makes things quieter; this puts the level back.",
116
+ },
117
+ mix: { label: "Blend with the original" },
118
+ },
119
+ },
120
+ limiter: {
121
+ title: "Peak Ceiling",
122
+ does: "Nothing gets louder than this, ever. A safety net at the end of the chain.",
123
+ reachFor: "You want to be sure it never clips or spikes.",
124
+ primary: "limit",
125
+ primaryEnds: { low: "A lot of headroom", high: "Right up to the edge" },
126
+ params: {
127
+ limit: {
128
+ label: "Never exceed",
129
+ ends: { low: "A lot of headroom", high: "Right up to the edge" },
130
+ },
131
+ attack: { label: "How fast it catches" },
132
+ release: { label: "How fast it recovers" },
133
+ level_out: { label: "Level after" },
134
+ },
135
+ },
136
+ gate: {
137
+ title: "Silence the Gaps",
138
+ does: "Mutes the pauses. Whatever sits underneath stays — this closes the gaps, it does not remove noise.",
139
+ reachFor: "You can hear the room in the gaps.",
140
+ primary: "strength",
141
+ primaryEnds: { low: "Only true silence", high: "Cuts quiet parts too" },
142
+ params: {
143
+ threshold: { label: "Quieter than this is a gap" },
144
+ range: {
145
+ label: "How far to duck the gaps",
146
+ hint: "Not all the way down, usually — total silence sounds broken.",
147
+ },
148
+ ratio: { label: "How hard" },
149
+ attack: { label: "How fast it opens" },
150
+ release: {
151
+ label: "How fast it closes",
152
+ ends: { low: "Clips tails short", high: "Leaves tails intact" },
153
+ },
154
+ knee: { label: "How gradual" },
155
+ },
156
+ },
157
+ saturate: {
158
+ title: "Warmth",
159
+ does: "Adds a little grit and density, the way analogue gear does.",
160
+ reachFor: "It sounds clean but lifeless.",
161
+ primary: "strength",
162
+ primaryEnds: { low: "Just a sheen", high: "Openly distorted" },
163
+ params: {
164
+ type: {
165
+ label: "Character",
166
+ hint: "Different flavours of the same idea. Tanh is the gentle one.",
167
+ },
168
+ threshold: {
169
+ label: "How much drive",
170
+ ends: { low: "Just a sheen", high: "Openly distorted" },
171
+ },
172
+ output: { label: "Level after", hint: "Drive makes things louder; this puts it back." },
173
+ oversample: { label: "Quality", hint: "Higher costs more but sounds cleaner." },
174
+ },
175
+ },
176
+ bitcrush: {
177
+ title: "Lo-Fi",
178
+ does: "Crushes the sound down to fewer steps, like an old sampler or a bad phone line.",
179
+ reachFor: "You want it to sound cheap or digital on purpose.",
180
+ primary: "strength",
181
+ primaryEnds: { low: "Slightly gritty", high: "Destroyed" },
182
+ params: {
183
+ bits: { label: "How many steps", ends: { low: "Destroyed", high: "Clean" } },
184
+ samples: {
185
+ label: "How rough",
186
+ hint: "Holds each value for longer, which dulls and grits it.",
187
+ },
188
+ mix: { label: "Blend with the original" },
189
+ },
190
+ },
191
+ delay: {
192
+ title: "Echo",
193
+ does: "Repeats the sound after a gap.",
194
+ reachFor: "You want space, or a rhythmic effect.",
195
+ primary: "mix",
196
+ primaryEnds: { low: "A hint", high: "Washed out" },
197
+ params: {
198
+ time: { label: "Gap between repeats" },
199
+ feedback: { label: "How many repeats", ends: { low: "One", high: "Trails away for ages" } },
200
+ mix: { label: "How loud", ends: { low: "A hint", high: "Washed out" } },
201
+ },
202
+ },
203
+ reverb: {
204
+ title: "Room",
205
+ does: "Puts the sound somewhere, instead of nowhere.",
206
+ reachFor: "It sounds dry and stuck to the speaker.",
207
+ primary: "strength",
208
+ primaryEnds: { low: "A small tight room", high: "A big open hall" },
209
+ params: {
210
+ size: { label: "How big the space is" },
211
+ damping: {
212
+ label: "How soft the walls are",
213
+ ends: { low: "Hard and bright", high: "Soft and dark" },
214
+ },
215
+ wet: { label: "How much room" },
216
+ dry: { label: "How much original" },
217
+ },
218
+ },
219
+ chorus: {
220
+ title: "Thicken",
221
+ does: "Doubles the sound slightly out of tune, which makes it wider and less exact.",
222
+ reachFor: "It sounds thin or too plain on its own.",
223
+ primary: "mix",
224
+ primaryEnds: { low: "Just wider", high: "Obviously wobbling" },
225
+ params: {
226
+ delay: { label: "Spread" },
227
+ depth: { label: "How much wobble" },
228
+ speed: { label: "How fast it wobbles" },
229
+ mix: { label: "How much", ends: { low: "Just wider", high: "Obviously wobbling" } },
230
+ },
231
+ },
232
+ phaser: {
233
+ title: "Swirl",
234
+ does: "A filter that sweeps up and down, giving a moving, hollow shimmer.",
235
+ reachFor: "You want movement, or a 1970s flavour.",
236
+ primary: "out_gain",
237
+ primaryEnds: { low: "Subtle", high: "Strong" },
238
+ params: {
239
+ in_gain: { label: "Depth in" },
240
+ out_gain: { label: "How strong", ends: { low: "Subtle", high: "Strong" } },
241
+ delay: { label: "Where it sweeps" },
242
+ decay: { label: "How resonant" },
243
+ speed: { label: "How fast it sweeps" },
244
+ type: { label: "Shape of the sweep" },
245
+ },
246
+ },
247
+ };
248
+ /**
249
+ * The shared vocabulary. Frequencies mean nothing to somebody who has not been
250
+ * taught them; these words are what the same person would say unprompted, and
251
+ * naming the ranges once teaches them everywhere they appear.
252
+ */
253
+ export const BANDS = [
254
+ { from: 20, to: 80, name: "Rumble", says: "traffic, footsteps, handling" },
255
+ { from: 80, to: 250, name: "Weight", says: "body, warmth, low end" },
256
+ { from: 250, to: 600, name: "Mud", says: "boxy, muffled, cardboard" },
257
+ { from: 600, to: 2000, name: "Middle", says: "the body of the sound" },
258
+ { from: 2000, to: 5000, name: "Presence", says: "definition, consonants" },
259
+ { from: 5000, to: 10000, name: "Edge", says: "harshness, sibilance" },
260
+ { from: 10000, to: 20000, name: "Air", says: "sparkle, openness" },
261
+ ];
262
+ /**
263
+ * Which named range a frequency falls in.
264
+ *
265
+ * The whole point of `BANDS` is that the words get taught, and they only get
266
+ * taught if a module can say which one it is working in. Below the first band
267
+ * and above the last both clamp rather than returning nothing: 15 Hz is still
268
+ * rumble to anybody who can hear it, and the alternative is a filter at the edge
269
+ * of its range having no name at all.
270
+ */
271
+ export function audioBandAt(hz) {
272
+ if (!Number.isFinite(hz))
273
+ return undefined;
274
+ const first = BANDS[0];
275
+ const last = BANDS.at(-1);
276
+ if (first && hz < first.from)
277
+ return first;
278
+ if (last && hz >= last.to)
279
+ return last;
280
+ return BANDS.find((band) => hz >= band.from && hz < band.to);
281
+ }
282
+ /** Which everyday complaint each preset answers. Presets ARE the product here. */
283
+ export const PRESET_PROBLEM = {
284
+ "voice-clean": "My voice sounds amateur",
285
+ "voice-broadcast": "I want it to sound like radio",
286
+ "voice-warm": "I want it intimate and close",
287
+ "rumble-cut": "There's a hum or thump underneath",
288
+ "room-gate": "I can hear the room in the gaps",
289
+ "boom-tame": "It sounds boomy",
290
+ "harsh-tame": "It's harsh and tiring to listen to",
291
+ telephone: "Make it sound like a phone call",
292
+ "radio-am": "Make it sound like an old radio",
293
+ megaphone: "Make it sound shouted through a horn",
294
+ "lofi-tape": "Make it sound like an old tape",
295
+ "pa-system": "Make it sound like a station announcement",
296
+ intercom: "Make it sound like a door intercom",
297
+ "doofus-worble": "Make it wobble like it is seasick",
298
+ "room-tight": "It sounds dry and stuck to the speaker",
299
+ "room-natural": "It should sound like a real place",
300
+ hall: "It should sound far away and big",
301
+ "slap-echo": "I want one quick echo",
302
+ "dub-throw": "I want long trailing echoes",
303
+ };
304
+ const n = (v, fallback = 0) => (typeof v === "number" ? v : fallback);
305
+ const hz = (v) => {
306
+ const x = n(v);
307
+ return x >= 1000 ? `${(x / 1000).toFixed(x % 1000 === 0 ? 0 : 1)} kHz` : `${Math.round(x)} Hz`;
308
+ };
309
+ const strength = (x, words) => x < 0.34 ? words[0] : x < 0.67 ? words[1] : words[2];
310
+ export const SUMMARY = {
311
+ gain: (p) => n(p.gain) === 0
312
+ ? "No change"
313
+ : n(p.gain) > 0
314
+ ? `Up ${n(p.gain)} dB`
315
+ : `Down ${Math.abs(n(p.gain))} dB`,
316
+ highpass: (p) => `Cutting everything below ${hz(p.frequency)}`,
317
+ lowpass: (p) => `Muffled above ${hz(p.frequency)}`,
318
+ // A band at 0 dB is doing nothing, and saying "lifting by 0 dB" describes a
319
+ // non-event as though it were a setting. Freshly added effects sit exactly
320
+ // here, so this is the FIRST thing an author reads after adding one.
321
+ peaking: (p) => n(p.gain) === 0
322
+ ? `Sitting on ${hz(p.frequency)}, doing nothing yet`
323
+ : `${n(p.gain) > 0 ? "Lifting" : "Cutting"} ${hz(p.frequency)} by ${Math.abs(n(p.gain))} dB`,
324
+ lowshelf: (p) => n(p.gain) === 0
325
+ ? "Doing nothing yet"
326
+ : `${n(p.gain) > 0 ? "More" : "Less"} weight below ${hz(p.frequency)}`,
327
+ highshelf: (p) => n(p.gain) === 0
328
+ ? "Doing nothing yet"
329
+ : `${n(p.gain) > 0 ? "More" : "Less"} sparkle above ${hz(p.frequency)}`,
330
+ compressor: (p) => `Evening out — ${strength(Math.min(1, (n(p.ratio, 3) - 1) / 7), ["gentle", "moderate", "firm"])}`,
331
+ limiter: (p) => `Nothing louder than ${n(p.limit, -1)} dB`,
332
+ gate: (p) => `Closing gaps quieter than ${n(p.threshold, -45)} dB`,
333
+ saturate: (p) => `${strength(Math.min(1, Math.abs(n(p.threshold, -6)) / 30), ["A little", "Some", "Heavy"])} warmth`,
334
+ bitcrush: (p) => `Crushed to ${n(p.bits, 8)} bits`,
335
+ delay: (p) => `Echo every ${n(p.time, 250)} ms`,
336
+ reverb: (p) => `${strength(n(p.size, 0.7), ["A small", "A medium", "A large"])} room, ${strength(n(p.wet, 0.35), ["lightly", "moderately", "heavily"])}`,
337
+ chorus: (p) => `Thickened${n(p.mix, 0.5) > 0.6 ? ", wobbling" : ""}`,
338
+ phaser: () => "Swirling",
339
+ };
340
+ //# sourceMappingURL=audioFxCopy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioFxCopy.js","sourceRoot":"","sources":["../src/audioFxCopy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * A multi-band EQ, as a composite over effects that already ship.
3
+ *
4
+ * Bass, middle and treble is the most widely understood audio control there is
5
+ * — everyone has used one — which makes it the right answer for an author who
6
+ * would never reach for a parametric filter. It also removes a real failure:
7
+ * without it, a chain shaping two ranges holds two peaking filters that look
8
+ * identical in the rack.
9
+ *
10
+ * Built the way the carve is: one module owning several tagged nodes, rather
11
+ * than a new effect type. Three bands ARE a low shelf, a peaking and a high
12
+ * shelf, so there is nothing new in the graph, nothing new in the render, and
13
+ * an author who opens the details finds exactly the filters they could have
14
+ * added by hand.
15
+ *
16
+ * That is also forced by the registry: parameters are a flat key/value record,
17
+ * so an `eq` effect *type* carrying N bands would need array-shaped params it
18
+ * has no way to express.
19
+ */
20
+ import { type HfAudioFxChain, type HfAudioFxNode } from "./audioFx.js";
21
+ /** A band is one node. `name` is what the fader is labelled, and its handle. */
22
+ export interface HfAudioEqBand {
23
+ name: string;
24
+ /** Corner for a shelf, centre for a peak. */
25
+ frequency: number;
26
+ /** The only value a fader moves. Everything else is fixed when the band is made. */
27
+ gain: number;
28
+ q?: number;
29
+ kind: "lowshelf" | "peaking" | "highshelf";
30
+ }
31
+ /**
32
+ * How far a fader travels. The registry allows ±40 dB on these filters, which
33
+ * is a repair tool's range — a tone control that can bury a track under 40 dB
34
+ * of bass is not a tone control. ±12 is the span a hi-fi offers, and it is
35
+ * enough to fix a voice.
36
+ */
37
+ export declare const HF_AUDIO_EQ_RANGE_DB = 12;
38
+ /** Bass, middle, treble — the set nobody needs taught. */
39
+ export declare const HF_AUDIO_EQ_3: readonly HfAudioEqBand[];
40
+ /**
41
+ * Five bands, named from the shared vocabulary the rest of the rack uses — so
42
+ * reaching for the EQ is also how an author learns the words.
43
+ */
44
+ export declare const HF_AUDIO_EQ_5: readonly HfAudioEqBand[];
45
+ /** Realise bands as ordinary nodes, tagged so the module can find them again. */
46
+ export declare function audioEqNodes(bands: readonly HfAudioEqBand[], eqId: string, chain: HfAudioFxChain): HfAudioFxNode[];
47
+ /** Add an EQ to a chain. Returns the chain and the id the module addresses it by. */
48
+ export declare function addAudioEq(chain: HfAudioFxChain, bands?: readonly HfAudioEqBand[]): {
49
+ chain: HfAudioFxChain;
50
+ eqId: string;
51
+ };
52
+ /** Every EQ in a chain, in the order their first band appears. */
53
+ export declare function audioEqIds(chain: HfAudioFxChain): string[];
54
+ /**
55
+ * Read one EQ's bands back out of the chain.
56
+ *
57
+ * The nodes are the truth, not a cached band list: an author can open the
58
+ * details and move a frequency by hand, and the faders have to reflect that
59
+ * rather than silently overwrite it on the next drag.
60
+ */
61
+ export declare function readAudioEqBands(chain: HfAudioFxChain, eqId: string): HfAudioEqBand[];
62
+ /** Move one fader. Everything else about the band is left alone. */
63
+ export declare function setAudioEqBandGain(chain: HfAudioFxChain, eqId: string, bandName: string, gain: number): HfAudioFxChain;
64
+ /** Remove a whole EQ, bands and all. */
65
+ export declare function removeAudioEq(chain: HfAudioFxChain, eqId: string): HfAudioFxChain;
66
+ /**
67
+ * What the module says when it is closed.
68
+ *
69
+ * Named for the bands that were actually moved, so a rack of collapsed modules
70
+ * still reads as a sentence — and an untouched EQ says so rather than listing
71
+ * three zeroes.
72
+ */
73
+ export declare function audioEqSummary(bands: readonly HfAudioEqBand[]): string;
74
+ export declare const HF_AUDIO_EQ_CHAIN_VERSION = 1;
75
+ //# sourceMappingURL=audioFxEq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioFxEq.d.ts","sourceRoot":"","sources":["../src/audioFxEq.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;CAC5C;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,0DAA0D;AAC1D,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,EAIjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,EAMjD,CAAC;AAKF,iFAAiF;AACjF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,cAAc,GACpB,aAAa,EAAE,CAsBjB;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CACxB,KAAK,EAAE,cAAc,EACrB,KAAK,GAAE,SAAS,aAAa,EAAkB,GAC9C;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAQzC;AAED,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAM1D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CAkBrF;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,cAAc,CAehB;AAED,wCAAwC;AACxC,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAEjF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAMtE;AAED,eAAO,MAAM,yBAAyB,IAA4B,CAAC"}