Creates a new TuningSystem instance.
English title of the tuning system
Arabic title of the tuning system
Year the system was documented or created
English name of the source document
Arabic name of the source document
Array of page references within the source
English name of the creator/theorist
Arabic name of the creator/theorist
Additional English comments
Additional Arabic comments
Raw input values (ratios, decimals, or cents as strings)
Arrays of note names corresponding to pitch classes
Traditional Arabic alphabetical names
String length parameter for instruments
Mapping of note names to reference frequencies
Default frequency anchor (e.g., 440 Hz)
Whether the system has been saved to storage
Gets the unique identifier for this tuning system.
Unique ID string generated from creator, year, and title
Gets the English title of the tuning system.
English title
Gets the Arabic title of the tuning system.
Arabic title
Gets the year the tuning system was documented or created.
Year as string
Gets the English name of the source document.
English source name
Gets the Arabic name of the source document.
Arabic source name
Gets the page references within the source document.
Array of page references
Gets the English name of the tuning system's creator.
Creator's English name
Gets the Arabic name of the tuning system's creator.
Creator's Arabic name
Gets additional English comments about the tuning system.
English comments
Gets additional Arabic comments about the tuning system.
Arabic comments
Gets the original pitch class values as inputted by the user.
These are raw string values representing mathematical intervals in their original format (e.g., "9/8" for fractional ratios, "1.125" for decimals, or "204.0" for cents). They are NOT PitchClass objects but preserve the exact format as entered, allowing the system to maintain mathematical precision and cultural authenticity of historical tuning descriptions.
Array of original pitch class values as strings
Gets the sets of note names.
Array of note name sets
Gets the traditional abjad (Arabic alphabetical) names for pitch classes.
Array of abjad names
Gets the string length parameter for instruments (if applicable).
String length value
Gets the mapping of note names to their reference frequencies.
This allows different notes within the system to serve as frequency anchors for tuning and synthesis purposes.
Object mapping note names to frequencies in Hz
Gets the default reference frequency for the tuning system.
This is the primary frequency anchor (e.g., 440 Hz for A4 in Western music, or 220 Hz for ʿushayrān in Al-Kindī's system) used to convert mathematical ratios into actual audible frequencies.
Default reference frequency in Hz
Checks whether this tuning system has been saved to persistent storage.
True if saved, false otherwise
Creates a string representation of the tuning system for display purposes.
Format: "Creator (Year) Title" (e.g., "Al-Kindī (874) 12-tone System")
Formatted string representation
Gets note name sets expanded to include octaves above and below.
This method is crucial for jins and maqam analysis as it provides access to pitch classes in multiple octaves. Each note name set is expanded to include the octave below (-1) and the octave above (+1) the primary octave, giving analysts access to a three-octave range for comprehensive modal analysis.
Expanded note name sets with three octaves of coverage
Creates a copy of this tuning system with new note name sets.
New note name sets to use in the copy
New TuningSystem instance with updated note names
Static
createCreates a blank/default tuning system for initialization purposes.
This factory method creates an empty tuning system with placeholder values in both English and Arabic. Useful for initializing the interface before users input their own tuning system data or when creating templates for new systems.
A new TuningSystem instance with default placeholder values
Represents a tuning system used in Arabic maqam music theory.
A tuning system is a comprehensive framework that defines the available pitch relationships within an octave and their cultural context. Following historical precedents like Al-Kindī's 12-tone system from 874 CE, each tuning system contains:
The system supports multiple octaves (below and above the primary octave) which is crucial for jins and maqam analysis. Since each pitch class has both relational and absolute values, all other representations can be derived through conversion formulas.