zeropoint-node 1.0.6 → 1.0.8

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 (166) hide show
  1. package/CHANGELOG.md +149 -0
  2. package/CITATION.cff +1 -1
  3. package/README.md +50 -10
  4. package/package.json +5 -2
  5. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.breathe.ts +15 -1
  6. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.ts +7 -1
  7. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.click.ts +15 -1
  8. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.hear.ts +15 -1
  9. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heat.ts +15 -1
  10. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.pulse.ts +15 -1
  11. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.speak.ts +15 -1
  12. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.tap.ts +15 -1
  13. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.ts +15 -1
  14. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.self.ts +15 -1
  15. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ts +0 -3
  16. package/src/kernel/import-graph.ts +58 -0
  17. package/src/multidimensional-vortex-demo.ts +1 -1
  18. package/src/vbm-math.ts +15 -1
  19. package/src/verification/lean-bridge.ts +37 -0
  20. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.ts +0 -60
  21. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.ts +0 -60
  22. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.ts +0 -60
  23. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.3.6.9.trinity.ts +0 -79
  24. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.9d.dashboard.ts +0 -179
  25. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.adapters.ts +0 -96
  26. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.analog.color.photography.ts +0 -783
  27. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.av.ts +0 -73
  28. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.browser.ts +0 -409
  29. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chain.of.events.ts +0 -159
  30. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cleanup.ts +0 -102
  31. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.dimensions.ts +0 -597
  32. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.test.ts +0 -491
  33. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.ts +0 -519
  34. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.file.ts +0 -65
  35. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.i.ts +0 -45
  36. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.matrix.ts +0 -75
  37. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.trinity.ts +0 -41
  38. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.universal.linking.ts +0 -1081
  39. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.command.cmyk.ts +0 -46
  40. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.compression.ts +0 -55
  41. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.integration.ts +0 -743
  42. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.ts +0 -26
  43. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.crypto.ts +0 -53
  44. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.css.ts +0 -64
  45. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cursor.ts +0 -56
  46. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decompression.ts +0 -60
  47. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decoqubit.holographic.hypercomputer.ts +0 -888
  48. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.digital.color.photography.ts +0 -926
  49. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimension.ts +0 -44
  50. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.encryption.ts +0 -44
  51. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ts +0 -28
  52. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.feel.ts +0 -43
  53. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flute.ts +0 -336
  54. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.font.ts +0 -53
  55. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.test.ts +0 -523
  56. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.ts +0 -594
  57. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.frequency.healing.ts +0 -88
  58. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gateway.transformation.ts +0 -650
  59. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.generate.matrix.ts +0 -62
  60. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gods.spirit.magnetometer.ts +0 -879
  61. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonization.status.ts +0 -754
  62. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.hear.ts +0 -41
  63. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.html.body.ts +0 -90
  64. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.body.ts +0 -89
  65. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.trinity.ts +0 -70
  66. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.browse.ts +0 -27
  67. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.can.ts +0 -69
  68. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.died.ts +0 -32
  69. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.follow.the.path.ts +0 -90
  70. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.go.ts +0 -68
  71. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.harmonized.ts +0 -304
  72. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heart.ts +0 -26
  73. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.meta.ts +0 -23
  74. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.motion.ts +0 -27
  75. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.scroll.ts +0 -34
  76. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.search.ts +0 -22
  77. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sequence.ts +0 -281
  78. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.smell.ts +0 -27
  79. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.state.ts +0 -28
  80. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.stream.ts +0 -106
  81. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.taste.ts +0 -27
  82. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.touch.screen.ts +0 -34
  83. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.healing.ts +0 -386
  84. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.write.ts +0 -11
  85. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.icon.ts +0 -109
  86. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.integration.ts +0 -74
  87. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.test.ts +0 -389
  88. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.ts +0 -14
  89. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infusion.ts +0 -97
  90. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integer.harmonics.ts +0 -443
  91. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.test.ts +0 -475
  92. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.ts +0 -646
  93. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.streams.ts +0 -130
  94. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.observation.ts +0 -693
  95. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.ts +0 -12
  96. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multiverse.ts +0 -31
  97. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.balance.ts +0 -703
  98. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.explosion.ts +0 -728
  99. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.app.ts +0 -14
  100. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.bus.ts +0 -11
  101. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ml.ts +0 -9
  102. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.overlay.visual.controller.ts +0 -119
  103. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.paths.ts +0 -10
  104. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.decoding.ts +0 -123
  105. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.trinity.ts +0 -79
  106. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.prime.numbers.squared.ts +0 -871
  107. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.collision.ts +0 -666
  108. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.entanglement.ts +0 -50
  109. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.trinity.ts +0 -59
  110. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.renderer.webgl.ts +0 -99
  111. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolve.ts +0 -820
  112. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rife.frequency.ts +0 -74
  113. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.3d.ts +0 -73
  114. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.omnidimension.ts +0 -187
  115. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.overlay.ts +0 -46
  116. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.ts +0 -58
  117. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.router.ts +0 -61
  118. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.integers.ts +0 -625
  119. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.test.ts +0 -314
  120. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.see.ts +0 -39
  121. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.embodiment.ts +0 -326
  122. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.service.worker.ts +0 -30
  123. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.space.ts +0 -53
  124. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.ts +0 -75
  125. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.superfluid.mobius.circuit.ts +0 -868
  126. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ts +0 -153
  127. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.test.ts +0 -83
  128. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.think.ts +0 -43
  129. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.three.ts +0 -112
  130. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.body.mind.will.ts +0 -2
  131. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.breath.ts +0 -2
  132. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.healing.ts +0 -110
  133. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ui.ts +0 -92
  134. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.visual.ts +0 -156
  135. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.truly.living.ui.ts +0 -269
  136. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.overlay.ts +0 -25
  137. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.streams.ts +0 -263
  138. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.test.ts +0 -87
  139. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.three.ts +0 -1141
  140. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.unification.hd.rodin.ts +0 -77
  141. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.universe.ts +0 -43
  142. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.test.ts +0 -28
  143. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.math.ts +0 -74
  144. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.constants.ts +0 -91
  145. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.ts +0 -45
  146. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.scanner.ts +0 -41
  147. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.science.extract.ts +0 -30
  148. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.ui.ts +0 -64
  149. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vector.ts +0 -70
  150. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.test.ts +0 -29
  151. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.math.ts +0 -506
  152. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.pure.math.ts +0 -546
  153. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.test.ts +0 -452
  154. package/src/0/3/6/9/1/2/4/8/7/5/1/pattern-knowledge.ts +0 -209
  155. package/src/0/3/6/9/1/2/4/8/7/5/a432.experience.ts +0 -22
  156. package/src/0/3/6/9/1/2/4/8/7/a432.experience.ts +0 -19
  157. package/src/0/3/6/9/1/2/4/8/a432.experience.ts +0 -22
  158. package/src/0/3/6/9/1/2/4/a432.experience.ts +0 -22
  159. package/src/0/3/6/9/1/2/a432.experience.ts +0 -22
  160. package/src/0/3/6/9/1/a432.experience.ts +0 -22
  161. package/src/0/3/6/9/a432.experience.ts +0 -22
  162. package/src/0/3/6/a432.experience.ts +0 -22
  163. package/src/0/3/a432.experience.ts +0 -22
  164. package/src/0/3/relation.ts +0 -148
  165. package/src/index.ts +0 -146
  166. package/src/zero-entropy-demo.ts +0 -305
@@ -1,443 +0,0 @@
1
- /**
2
- * A432 Integer Harmonics Module
3
- * Pure integer arithmetic for harmonic calculations
4
- * No floating point operations - all exact mathematics
5
- */
6
-
7
- import { abs } from './a432.algebra.ts'
8
- import { legacyDigitalRoot } from './a432.roots.ts'
9
- // ============================================================================
10
- // INTEGER FREQUENCY TABLES
11
- // ============================================================================
12
-
13
- /**
14
- * All frequencies stored as integers (Hz * 10000 for precision)
15
- * This allows 4 decimal places of precision without using floats
16
- */
17
- export const INTEGER_FREQUENCIES = {
18
- // Note frequencies in A432 tuning (Hz * 10000)
19
- C0: 161280, // 16.128 Hz
20
- D0: 181020, // 18.102 Hz
21
- E0: 203190, // 20.319 Hz
22
- F0: 215270, // 21.527 Hz
23
- G0: 241920, // 24.192 Hz
24
- A0: 270000, // 27.000 Hz
25
- B0: 303750, // 30.375 Hz
26
-
27
- C1: 322560, // 32.256 Hz
28
- D1: 362040, // 36.204 Hz
29
- E1: 406380, // 40.638 Hz
30
- F1: 430540, // 43.054 Hz
31
- G1: 483840, // 48.384 Hz
32
- A1: 540000, // 54.000 Hz
33
- B1: 607500, // 60.750 Hz
34
-
35
- C2: 645120, // 64.512 Hz
36
- D2: 724080, // 72.408 Hz
37
- E2: 812760, // 81.276 Hz
38
- F2: 861080, // 86.108 Hz
39
- G2: 967680, // 96.768 Hz
40
- A2: 1080000, // 108.000 Hz
41
- B2: 1215000, // 121.500 Hz
42
-
43
- C3: 1290240, // 129.024 Hz
44
- D3: 1448160, // 144.816 Hz
45
- E3: 1625520, // 162.552 Hz
46
- F3: 1722160, // 172.216 Hz
47
- G3: 1935360, // 193.536 Hz
48
- A3: 2160000, // 216.000 Hz
49
- B3: 2430000, // 243.000 Hz
50
-
51
- C4: 2580480, // 258.048 Hz (Middle C in A432)
52
- D4: 2896320, // 289.632 Hz
53
- E4: 3251040, // 325.104 Hz
54
- F4: 3444320, // 344.432 Hz
55
- G4: 3870720, // 387.072 Hz
56
- A4: 4320000, // 432.000 Hz (A432)
57
- B4: 4860000, // 486.000 Hz
58
-
59
- C5: 5160960, // 516.096 Hz
60
- D5: 5792640, // 579.264 Hz
61
- E5: 6502080, // 650.208 Hz
62
- F5: 6888640, // 688.864 Hz
63
- G5: 7741440, // 774.144 Hz
64
- A5: 8640000, // 864.000 Hz
65
- B5: 9720000, // 972.000 Hz
66
- } as const;
67
-
68
- // ============================================================================
69
- // INTERVAL RATIOS AS INTEGER PAIRS
70
- // ============================================================================
71
-
72
- export const INTERVAL_RATIOS = {
73
- // Just intonation intervals as [numerator, denominator]
74
- UNISON: [1, 1],
75
- MINOR_SECOND: [16, 15],
76
- MAJOR_SECOND: [9, 8],
77
- MINOR_THIRD: [6, 5],
78
- MAJOR_THIRD: [5, 4],
79
- PERFECT_FOURTH: [4, 3],
80
- AUGMENTED_FOURTH: [45, 32],
81
- DIMINISHED_FIFTH: [64, 45],
82
- PERFECT_FIFTH: [3, 2],
83
- MINOR_SIXTH: [8, 5],
84
- MAJOR_SIXTH: [5, 3],
85
- MINOR_SEVENTH: [9, 5],
86
- MAJOR_SEVENTH: [15, 8],
87
- OCTAVE: [2, 1],
88
-
89
- // Pythagorean intervals
90
- PYTHAGOREAN_SECOND: [9, 8],
91
- PYTHAGOREAN_THIRD: [81, 64],
92
- PYTHAGOREAN_FOURTH: [4, 3],
93
- PYTHAGOREAN_FIFTH: [3, 2],
94
- PYTHAGOREAN_SIXTH: [27, 16],
95
- PYTHAGOREAN_SEVENTH: [243, 128],
96
-
97
- // Harmonic series intervals
98
- HARMONIC_2: [2, 1],
99
- HARMONIC_3: [3, 1],
100
- HARMONIC_4: [4, 1],
101
- HARMONIC_5: [5, 1],
102
- HARMONIC_6: [6, 1],
103
- HARMONIC_7: [7, 1],
104
- HARMONIC_8: [8, 1],
105
- HARMONIC_9: [9, 1],
106
- } as const;
107
-
108
- // ============================================================================
109
- // SACRED NUMBER SEQUENCES
110
- // ============================================================================
111
-
112
- export const SACRED_SEQUENCES = {
113
- // Fibonacci sequence
114
- FIBONACCI: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987],
115
-
116
- // Lucas numbers
117
- LUCAS: [2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843],
118
-
119
- // Pell numbers
120
- PELL: [0, 1, 2, 5, 12, 29, 70, 169, 408, 985, 2378, 5741],
121
-
122
- // Tribonacci sequence
123
- TRIBONACCI: [0, 0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149, 274, 504],
124
-
125
- // Perfect numbers
126
- PERFECT: [6, 28, 496, 8128, 33550336],
127
-
128
- // Mersenne primes
129
- MERSENNE: [3, 7, 31, 127, 8191, 131071, 524287, 2147483647],
130
-
131
- // Triangular numbers
132
- TRIANGULAR: [1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120],
133
-
134
- // Square numbers
135
- SQUARE: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225],
136
-
137
- // Pentagonal numbers
138
- PENTAGONAL: [1, 5, 12, 22, 35, 51, 70, 92, 117, 145, 176, 210, 247, 287],
139
-
140
- // Hexagonal numbers
141
- HEXAGONAL: [1, 6, 15, 28, 45, 66, 91, 120, 153, 190, 231, 276, 325],
142
- } as const;
143
-
144
- // ============================================================================
145
- // INTEGER HARMONIC CALCULATOR CLASS
146
- // ============================================================================
147
-
148
- export class IntegerHarmonics {
149
- /**
150
- * Calculate harmonic series using integer math
151
- * @param fundamental Base frequency as integer
152
- * @param count Number of harmonics to generate
153
- */
154
- static harmonicSeries(fundamental: number, count: number): number[] {
155
- const series: number[] = [];
156
- for (let n = 1; n <= count; n++) {
157
- series.push(fundamental * n);
158
- }
159
- return series;
160
- }
161
-
162
- /**
163
- * Calculate subharmonic series (undertones)
164
- * @param fundamental Base frequency as integer
165
- * @param count Number of subharmonics
166
- */
167
- static subharmonicSeries(fundamental: number, count: number): number[] {
168
- const series: number[] = [];
169
- for (let n = 1; n <= count; n++) {
170
- series.push(fundamental / n);
171
- }
172
- return series;
173
- }
174
-
175
- /**
176
- * Apply interval ratio to frequency
177
- * @param frequency Base frequency as integer
178
- * @param numerator Ratio numerator
179
- * @param denominator Ratio denominator
180
- */
181
- static applyInterval(frequency: number, numerator: number, denominator: number): number {
182
- return (frequency * numerator) / denominator;
183
- }
184
-
185
- /**
186
- * Calculate beat frequency between two integer frequencies
187
- */
188
- static beatFrequency(f1: number, f2: number): number {
189
- return abs(f1 - f2);
190
- }
191
-
192
- /**
193
- * Calculate combination tones
194
- */
195
- static combinationTones(f1: number, f2: number): {
196
- sum: number;
197
- difference: number;
198
- product: number;
199
- } {
200
- return {
201
- sum: f1 + f2,
202
- difference: abs(f1 - f2),
203
- product: f1 * f2,
204
- };
205
- }
206
-
207
- /**
208
- * Find common harmonics between two fundamentals
209
- */
210
- static commonHarmonics(f1: number, f2: number, maxHarmonic: number): number[] {
211
- const harmonics1 = this.harmonicSeries(f1, maxHarmonic);
212
- const harmonics2 = this.harmonicSeries(f2, maxHarmonic);
213
-
214
- const common: number[] = [];
215
- for (const h1 of harmonics1) {
216
- if (harmonics2.includes(h1)) {
217
- common.push(h1);
218
- }
219
- }
220
- return common;
221
- }
222
-
223
- /**
224
- * Calculate consonance rating based on ratio simplicity
225
- * Lower numbers = more consonant
226
- */
227
- static consonanceRating(f1: number, f2: number): number {
228
- const gcd = this.gcd(f1, f2);
229
- const ratio1 = f1 / gcd;
230
- const ratio2 = f2 / gcd;
231
- return ratio1 + ratio2;
232
- }
233
-
234
- /**
235
- * Greatest Common Divisor
236
- */
237
- static gcd(a: number, b: number): number {
238
- while (b !== 0) {
239
- const temp = b;
240
- b = a % b;
241
- a = temp;
242
- }
243
- return a;
244
- }
245
-
246
- /**
247
- * Least Common Multiple
248
- */
249
- static lcm(a: number, b: number): number {
250
- return (a * b) / this.gcd(a, b);
251
- }
252
-
253
- /**
254
- * Find convergence point of multiple frequencies
255
- */
256
- static convergencePoint(frequencies: number[]): number {
257
- if (frequencies.length === 0) return 0;
258
- let result = frequencies[0];
259
- for (let i = 1; i < frequencies.length; i++) {
260
- result = this.lcm(result, frequencies[i]);
261
- }
262
- return result;
263
- }
264
-
265
- /**
266
- * Calculate harmonic mean without decimals
267
- */
268
- static harmonicMean(values: number[]): number {
269
- if (values.length === 0) return 0;
270
-
271
- // Find LCM to avoid fractions
272
- let lcmValue = values[0];
273
- for (let i = 1; i < values.length; i++) {
274
- lcmValue = this.lcm(lcmValue, values[i]);
275
- }
276
-
277
- // Calculate sum of LCM/value
278
- let sum = 0;
279
- for (const value of values) {
280
- sum += lcmValue / value;
281
- }
282
-
283
- return (values.length * lcmValue) / sum;
284
- }
285
-
286
- /**
287
- * Generate chord frequencies
288
- */
289
- static chord(root: number, intervals: ReadonlyArray<readonly [number, number]>): number[] {
290
- const frequencies = [root];
291
- for (const [num, den] of intervals) {
292
- frequencies.push(this.applyInterval(root, num, den));
293
- }
294
- return frequencies;
295
- }
296
-
297
- /**
298
- * Major triad in just intonation
299
- */
300
- static majorTriad(root: number): number[] {
301
- return this.chord(root, [
302
- INTERVAL_RATIOS.MAJOR_THIRD,
303
- INTERVAL_RATIOS.PERFECT_FIFTH,
304
- ]);
305
- }
306
-
307
- /**
308
- * Minor triad in just intonation
309
- */
310
- static minorTriad(root: number): number[] {
311
- return this.chord(root, [
312
- INTERVAL_RATIOS.MINOR_THIRD,
313
- INTERVAL_RATIOS.PERFECT_FIFTH,
314
- ]);
315
- }
316
-
317
- /**
318
- * Calculate temperament comma
319
- * Pythagorean comma = (3/2)^12 / 2^7
320
- */
321
- static pythagoreanComma(): [number, number] {
322
- // (3/2)^12 = 3^12 / 2^12 = 531441 / 4096
323
- // 2^7 = 128
324
- // Comma = 531441 / (4096 * 128) = 531441 / 524288
325
- return [531441, 524288];
326
- }
327
-
328
- /**
329
- * Syntonic comma (81/80)
330
- */
331
- static syntonicComma(): [number, number] {
332
- return [81, 80];
333
- }
334
-
335
- /**
336
- * Calculate cents between two frequencies (integer approximation)
337
- * cents = 1200 * log2(f2/f1)
338
- * Using integer math: multiply by 10000 for precision
339
- */
340
- static cents(f1: number, f2: number): number {
341
- // Approximate log2 using integer math
342
- // Find n such that 2^n is close to f2/f1
343
- let ratio = (f2 * 10000) / f1;
344
- let cents = 0;
345
- const power = 10000; // 2^0 * 10000
346
-
347
- // Binary search for log2
348
- for (let i = 11; i >= -11; i--) {
349
- const testPower = i > 0 ? power * (1 << i) : power / (1 << -i);
350
- if (ratio >= testPower) {
351
- cents += i * 100; // Each octave = 1200 cents
352
- ratio = (ratio * 10000) / testPower;
353
- }
354
- }
355
-
356
- return cents;
357
- }
358
- }
359
-
360
- // ============================================================================
361
- // VORTEX MATHEMATICS WITH INTEGERS
362
- // ============================================================================
363
-
364
- export class VortexIntegerMath {
365
- /**
366
- * Digital root using modulo 9
367
- */
368
- static digitalRoot(n: number): number {
369
- return legacyDigitalRoot(n)
370
- }
371
-
372
- /**
373
- * Vortex doubling sequence
374
- */
375
- static vortexDouble(n: number): number {
376
- return this.digitalRoot(n * 2);
377
- }
378
-
379
- /**
380
- * Vortex halving sequence
381
- */
382
- static vortexHalve(n: number): number {
383
- // For halving, we need to handle odd numbers
384
- // Use the pattern: 1→5→7→8→4→2→1
385
- const sequence = [1, 5, 7, 8, 4, 2];
386
- const current = this.digitalRoot(n);
387
- const index = sequence.indexOf(current);
388
- if (index === -1) return current;
389
- return sequence[(index + 1) % sequence.length];
390
- }
391
-
392
- /**
393
- * Generate vortex pattern for number
394
- */
395
- static vortexPattern(n: number, steps: number): number[] {
396
- const pattern: number[] = [];
397
- let current = n;
398
- for (let i = 0; i < steps; i++) {
399
- pattern.push(this.digitalRoot(current));
400
- current = this.vortexDouble(current);
401
- }
402
- return pattern;
403
- }
404
-
405
- /**
406
- * Check if number is on the 3-6-9 axis
407
- */
408
- static isOnAxis(n: number): boolean {
409
- const root = this.digitalRoot(n);
410
- return root === 3 || root === 6 || root === 9;
411
- }
412
-
413
- /**
414
- * Calculate vortex flow between two numbers
415
- */
416
- static vortexFlow(from: number, to: number): number[] {
417
- const fromRoot = this.digitalRoot(from);
418
- const toRoot = this.digitalRoot(to);
419
-
420
- const path: number[] = [fromRoot];
421
- let current = fromRoot;
422
-
423
- // Find path through vortex
424
- for (let i = 0; i < 9 && current !== toRoot; i++) {
425
- current = this.vortexDouble(current);
426
- path.push(current);
427
- }
428
-
429
- return path;
430
- }
431
- }
432
-
433
- // ============================================================================
434
- // EXPORT ALL
435
- // ============================================================================
436
-
437
- export default {
438
- INTEGER_FREQUENCIES,
439
- INTERVAL_RATIOS,
440
- SACRED_SEQUENCES,
441
- IntegerHarmonics,
442
- VortexIntegerMath,
443
- };