diff --git a/src/dims.py b/src/dims.py index 0eac11b..d1b5d80 100644 --- a/src/dims.py +++ b/src/dims.py @@ -3,3 +3,4 @@ DIMS_8 = (2, 3, 5, 7, 11, 13, 17, 19) DIMS_7 = (2, 3, 5, 7, 11, 13, 17) DIMS_5 = (2, 3, 5, 7, 11) DIMS_4 = (2, 3, 5, 7) +DIMS_3 = (2, 3, 5) diff --git a/src/io.py b/src/io.py index 25d57d5..ece8216 100644 --- a/src/io.py +++ b/src/io.py @@ -325,7 +325,7 @@ def save_graph_to_cache( def main(): """Demo: Generate compact sets and build graph.""" import argparse - from .dims import DIMS_4, DIMS_5, DIMS_7, DIMS_8 + from .dims import DIMS_3, DIMS_4, DIMS_5, DIMS_7, DIMS_8 from .harmonic_space import HarmonicSpace from .pathfinder import PathFinder @@ -414,7 +414,10 @@ def main(): help="Make symdiff selection uniform across range (ignore weight differences)", ) parser.add_argument( - "--dims", type=int, default=7, help="Number of prime dimensions (4, 5, 7, or 8)" + "--dims", + type=int, + default=7, + help="Number of prime dimensions (3, 4, 5, 7, or 8)", ) parser.add_argument("--chord-size", type=int, default=3, help="Size of chords") parser.add_argument("--max-path", type=int, default=50, help="Maximum path length") @@ -530,7 +533,9 @@ def main(): return # Exit after OSC playback # Select dims - if args.dims == 4: + if args.dims == 3: + dims = DIMS_3 + elif args.dims == 4: dims = DIMS_4 elif args.dims == 5: dims = DIMS_5 diff --git a/src/transcriber.py b/src/transcriber.py index 432943e..e6d9e8e 100644 --- a/src/transcriber.py +++ b/src/transcriber.py @@ -347,8 +347,8 @@ def _is_adjacent(hs1: tuple, hs2: tuple) -> bool: def _compute_dim_diff(current: tuple, prev: tuple) -> int: """Compute dim_diff between two hs_arrays. Returns prime * direction.""" - primes = [3, 5, 7] - for i in range(1, 4): + primes = [3, 5, 7, 11] + for i in range(1, 5): diff = current[i] - prev[i] if diff == 1: return primes[i - 1]