Arabic Maqām Network - TypeScript Library Documentation - v0.1.0
    Preparing search index...

    Function getJinsTranspositions

    • Jins Transposition Analysis

      Finds all possible transpositions of a jins within available pitch classes. This function analyzes a jins interval pattern and systematically searches for all valid starting positions where the complete sequence can be realized within the tuning system.

      Algorithmic Operation:

      1. Pattern Extraction: Extracts intervallic fingerprint from the source jins
      2. Systematic Search: Tests all possible starting positions within tuning system
      3. Interval Matching: Uses appropriate matching criteria (exact ratios vs fuzzy cents)
      4. Octave Filtering: Ensures transpositions remain within valid octave bounds
      5. Tahlil Handling: Optionally includes or excludes the original analytical position

      Naming Conventions: Follows traditional Arabic nomenclature: "[jins name] al-[starting note]" Example: "jins kurd al-muhayyar" for kurd jins transposed to start on muhayyar

      Unlike maqām transpositions, ajnās have only a single non-directional sequence, so no bidirectional merging is required.

      Parameters

      • allPitchClasses: default[]

        Complete tuning system to search within

      • jinsData: null | default

        Source jins data to find transpositions for

      • withTahlil: boolean

        Include original analytical position in results

      • centsTolerance: number = 5

        Tolerance for interval matching (default: ±5 cents JND)

      • onlyOctaveOne: boolean = false

        Restrict search to first octave only

      Returns Jins[]

      Array of all possible jins transpositions following traditional naming