Skip to content

Commit 0010b9a

Browse files
author
Salma Alam-Naylor
committed
created getStandardModesInOrder to clean up getSimilarModes
1 parent 4c81a1c commit 0010b9a

File tree

3 files changed

+36
-8
lines changed

3 files changed

+36
-8
lines changed

apps/fretonator-web/src/app/common/fret-map/fret-map.service.spec.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,6 +1398,29 @@ describe('FretMapService:getNoteExtenderStringFromNoteObject', () => {
13981398
});
13991399
});
14001400

1401+
describe('FretMapService:getStandardModesInOrder', () => {
1402+
let service: FretMapService;
1403+
1404+
beforeEach(() => {
1405+
TestBed.configureTestingModule({});
1406+
service = TestBed.inject(FretMapService);
1407+
});
1408+
1409+
it('returns a set of modes correctly for starting mode dorian', () => {
1410+
const result = service.getStandardModesInOrder(1);
1411+
expect(result).toEqual([
1412+
Mode.dorian,
1413+
Mode.phrygian,
1414+
Mode.lydian,
1415+
Mode.mixolydian,
1416+
Mode.aolian,
1417+
Mode.locrian,
1418+
Mode.ionian,
1419+
])
1420+
})
1421+
});
1422+
1423+
14011424
describe('FretMapService:getSimilarModes', () => {
14021425
let service: FretMapService;
14031426

apps/fretonator-web/src/app/common/fret-map/fret-map.service.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,19 +426,31 @@ export class FretMapService {
426426
}
427427
};
428428

429+
getStandardModesInOrder = (startModeIndex: number): Mode[] => {
430+
const before = [...StandardModePatterns];
431+
const after = before.splice(startModeIndex);
432+
433+
return [
434+
...after,
435+
...before
436+
];
437+
};
438+
429439
getSimilarModes = (modeMap: ModeMap, inputMode: Mode): SimilarModes => {
430440
const firstModeInPattern = StandardModePatterns.indexOf(inputMode);
431441

432442
if (firstModeInPattern === -1) {
433443
return [];
434444
}
435445

446+
const nextModes = this.getStandardModesInOrder(firstModeInPattern);
447+
436448
const similarModes = modeMap
437449
.map((noteObject, index) => (
438450
{
439451
noteDisplayName: noteObject.displayName,
440452
note: noteObject.name,
441-
mode: StandardModePatterns[firstModeInPattern + index],
453+
mode: nextModes[index],
442454
noteExtender: this.getNoteExtenderStringFromNoteObject(noteObject)
443455
}
444456
));

apps/fretonator-web/src/app/util/constants.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -628,13 +628,6 @@ export const StringFrequencies = {
628628
}
629629

630630
export const StandardModePatterns = [
631-
Mode.ionian,
632-
Mode.dorian,
633-
Mode.phrygian,
634-
Mode.lydian,
635-
Mode.mixolydian,
636-
Mode.aolian,
637-
Mode.locrian,
638631
Mode.ionian,
639632
Mode.dorian,
640633
Mode.phrygian,

0 commit comments

Comments
 (0)