Skip to content

Commit 4506a8d

Browse files
author
Developer
committed
fix: Add specific justification for 200 division limit
- Clarify that 200 division limit prevents UI performance issues - Each division creates DOM elements in temperament widget - Prevents excessive DOM elements and slow rendering - Improves error messages with specific range requirements Addresses Walter Bender's feedback about vague limits
1 parent 62e2df1 commit 4506a8d

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

js/utils/musicutils.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2354,8 +2354,10 @@ const addTemperamentToDictionary = (entryName, entryValue) => {
23542354
* @returns {Object} Temperament object with interval ratios
23552355
*/
23562356
const generateEqualTemperament = divisions => {
2357+
// Limit to 200 divisions to prevent UI performance issues
2358+
// Each division creates DOM elements in the temperament widget
23572359
if (divisions < 1 || divisions > 200) {
2358-
throw new Error("Invalid number of divisions");
2360+
throw new Error("Invalid number of divisions: must be between 1 and 200");
23592361
}
23602362

23612363
const temperament = {

js/widgets/temperament.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -899,9 +899,10 @@ function TemperamentWidget() {
899899
pitchNumber2 = Number(docById("octaveOut").value);
900900
divisions = Number(docById("divisions").value);
901901

902-
// Validate input to prevent performance issues
902+
// Validate input to prevent UI performance issues
903+
// Limit to 200 divisions to prevent excessive DOM elements and slow rendering
903904
if (isNaN(divisions) || divisions < 1 || divisions > 200) {
904-
throw new Error("Invalid divisions");
905+
throw new Error("Invalid divisions: must be between 1 and 200");
905906
}
906907

907908
this.tempRatios = this.ratios.slice();

0 commit comments

Comments
 (0)