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.
- package/CHANGELOG.md +149 -0
- package/CITATION.cff +1 -1
- package/README.md +50 -10
- package/package.json +5 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.breathe.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.ts +7 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.click.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.hear.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heat.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.pulse.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.speak.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.tap.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.self.ts +15 -1
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ts +0 -3
- package/src/kernel/import-graph.ts +58 -0
- package/src/multidimensional-vortex-demo.ts +1 -1
- package/src/vbm-math.ts +15 -1
- package/src/verification/lean-bridge.ts +37 -0
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.3.6.9.trinity.ts +0 -79
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.9d.dashboard.ts +0 -179
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.adapters.ts +0 -96
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.analog.color.photography.ts +0 -783
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.av.ts +0 -73
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.browser.ts +0 -409
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chain.of.events.ts +0 -159
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cleanup.ts +0 -102
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.dimensions.ts +0 -597
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.test.ts +0 -491
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.ts +0 -519
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.file.ts +0 -65
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.i.ts +0 -45
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.matrix.ts +0 -75
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.trinity.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.universal.linking.ts +0 -1081
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.command.cmyk.ts +0 -46
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.compression.ts +0 -55
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.integration.ts +0 -743
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.ts +0 -26
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.crypto.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.css.ts +0 -64
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cursor.ts +0 -56
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decompression.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decoqubit.holographic.hypercomputer.ts +0 -888
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.digital.color.photography.ts +0 -926
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimension.ts +0 -44
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.encryption.ts +0 -44
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.feel.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flute.ts +0 -336
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.font.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.test.ts +0 -523
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.ts +0 -594
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.frequency.healing.ts +0 -88
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gateway.transformation.ts +0 -650
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.generate.matrix.ts +0 -62
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gods.spirit.magnetometer.ts +0 -879
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonization.status.ts +0 -754
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.hear.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.html.body.ts +0 -90
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.body.ts +0 -89
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.trinity.ts +0 -70
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.browse.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.can.ts +0 -69
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.died.ts +0 -32
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.follow.the.path.ts +0 -90
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.go.ts +0 -68
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.harmonized.ts +0 -304
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heart.ts +0 -26
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.meta.ts +0 -23
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.motion.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.scroll.ts +0 -34
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.search.ts +0 -22
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sequence.ts +0 -281
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.smell.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.state.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.stream.ts +0 -106
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.taste.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.touch.screen.ts +0 -34
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.healing.ts +0 -386
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.write.ts +0 -11
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.icon.ts +0 -109
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.integration.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.test.ts +0 -389
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.ts +0 -14
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infusion.ts +0 -97
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integer.harmonics.ts +0 -443
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.test.ts +0 -475
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.ts +0 -646
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.streams.ts +0 -130
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.observation.ts +0 -693
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.ts +0 -12
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multiverse.ts +0 -31
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.balance.ts +0 -703
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.explosion.ts +0 -728
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.app.ts +0 -14
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.bus.ts +0 -11
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ml.ts +0 -9
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.overlay.visual.controller.ts +0 -119
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.paths.ts +0 -10
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.decoding.ts +0 -123
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.trinity.ts +0 -79
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.prime.numbers.squared.ts +0 -871
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.collision.ts +0 -666
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.entanglement.ts +0 -50
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.trinity.ts +0 -59
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.renderer.webgl.ts +0 -99
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolve.ts +0 -820
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rife.frequency.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.3d.ts +0 -73
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.omnidimension.ts +0 -187
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.overlay.ts +0 -46
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.ts +0 -58
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.router.ts +0 -61
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.integers.ts +0 -625
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.test.ts +0 -314
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.see.ts +0 -39
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.embodiment.ts +0 -326
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.service.worker.ts +0 -30
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.space.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.ts +0 -75
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.superfluid.mobius.circuit.ts +0 -868
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ts +0 -153
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.test.ts +0 -83
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.think.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.three.ts +0 -112
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.body.mind.will.ts +0 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.breath.ts +0 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.healing.ts +0 -110
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ui.ts +0 -92
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.visual.ts +0 -156
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.truly.living.ui.ts +0 -269
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.overlay.ts +0 -25
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.streams.ts +0 -263
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.test.ts +0 -87
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.three.ts +0 -1141
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.unification.hd.rodin.ts +0 -77
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.universe.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.test.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.math.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.constants.ts +0 -91
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.ts +0 -45
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.scanner.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.science.extract.ts +0 -30
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.ui.ts +0 -64
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vector.ts +0 -70
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.test.ts +0 -29
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.math.ts +0 -506
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.pure.math.ts +0 -546
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.test.ts +0 -452
- package/src/0/3/6/9/1/2/4/8/7/5/1/pattern-knowledge.ts +0 -209
- package/src/0/3/6/9/1/2/4/8/7/5/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/4/8/7/a432.experience.ts +0 -19
- package/src/0/3/6/9/1/2/4/8/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/4/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/a432.experience.ts +0 -22
- package/src/0/3/6/9/a432.experience.ts +0 -22
- package/src/0/3/6/a432.experience.ts +0 -22
- package/src/0/3/a432.experience.ts +0 -22
- package/src/0/3/relation.ts +0 -148
- package/src/index.ts +0 -146
- 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
|
-
};
|