Skip to content

Commit d754db7

Browse files
authored
Merge pull request #44 from ishythefishy/play-scale
Scale playback and 12/24 fret toggle
2 parents cf96d35 + 3c9fcb6 commit d754db7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1985
-543
lines changed

apps/fretonator-web/src/app/common/chips/chip/chip.component.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
class="chip"
55
[class.chip--active]="selected"
66
[class.chip--round]="rounded"
7-
[class.chip--grey]="selectedColor === SelectedColor.grey"
7+
[class.chip--muted]="selectedColor === SelectedColor.muted"
88
>
99
<ng-content></ng-content>
1010
</a>

apps/fretonator-web/src/app/common/chips/chip/chip.component.scss

+11-7
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
@include chip_button_base()
1111
}
1212

13-
.chip--grey {
14-
border-color: var(--grey);
15-
color: var(--grey);
13+
.chip--muted {
14+
border-color: var(--chip-border-color-muted);
15+
color: var(--chip-foreground-color-muted);
16+
background-color: var(--chip-background-color-muted);
1617
}
1718

1819
.chip--round {
@@ -25,10 +26,13 @@
2526
}
2627

2728
.chip--active {
28-
background-color: var(--black);
29-
color: var(--white);
29+
background-color: var(--chip-background-color-active);
30+
color: var(--chip-foreground-color-active);
31+
border-color: var(--chip-border-color-active);
3032

31-
&.chip--grey {
32-
background-color: var(--grey);
33+
&.chip--muted {
34+
background-color: var(--chip-background-color-muted-active);
35+
border-color: var(--chip-border-color-muted-active);
36+
color: var(--chip-foreground-color-muted-active);
3337
}
3438
}

apps/fretonator-web/src/app/common/chips/chip/chip.component.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ActivatedRoute } from '@angular/router';
44

55
export enum SelectedColor {
66
default = 'default',
7-
grey = 'grey',
7+
muted = 'muted',
88
}
99

1010
@Component({

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

+70
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import {
1212
cIonianChordMap,
1313
cIonianFretMappings,
1414
cIonianMode,
15+
cIonianSimilarModes,
16+
cLydianMode,
17+
cLydianSimilarModes,
1518
cMajorPentatonicChordMap,
1619
cMinorPentatonicChordMap,
1720
cPhrygianMode,
@@ -1351,3 +1354,70 @@ describe('FretMapService:convertFretMapConfigurationToDisplayString', () => {
13511354
expect(result).toBe('A flat Minor Pentatonic');
13521355
});
13531356
});
1357+
1358+
describe('FretMapService:getNoteExtenderStringFromNoteObject', () => {
1359+
let service: FretMapService;
1360+
1361+
beforeEach(() => {
1362+
TestBed.configureTestingModule({});
1363+
service = TestBed.inject(FretMapService);
1364+
});
1365+
1366+
it('returns NoteExtenderString.flat for a flat note', () => {
1367+
const result = service.getNoteExtenderStringFromNoteObject({
1368+
name: 'b',
1369+
flat: true,
1370+
sharp: false,
1371+
doubleSharp: false,
1372+
doubleFlat: false
1373+
});
1374+
expect(result).toBe('flat');
1375+
});
1376+
1377+
1378+
it('returns NoteExtenderString.sharp for a sharp note', () => {
1379+
const result = service.getNoteExtenderStringFromNoteObject({
1380+
name: 'd',
1381+
flat: false,
1382+
sharp: true,
1383+
doubleSharp: false,
1384+
doubleFlat: false
1385+
});
1386+
expect(result).toBe('sharp');
1387+
});
1388+
1389+
it('returns NoteExtenderString.natural for a natural note', () => {
1390+
const result = service.getNoteExtenderStringFromNoteObject({
1391+
name: 'd',
1392+
flat: false,
1393+
sharp: false,
1394+
doubleSharp: false,
1395+
doubleFlat: false
1396+
});
1397+
expect(result).toBe('natural');
1398+
});
1399+
});
1400+
1401+
describe('FretMapService:getSimilarModes', () => {
1402+
let service: FretMapService;
1403+
1404+
beforeEach(() => {
1405+
TestBed.configureTestingModule({});
1406+
service = TestBed.inject(FretMapService);
1407+
});
1408+
1409+
it('returns correctly for an input of c natural ionian', () => {
1410+
const result = service.getSimilarModes(cIonianMode, Mode.ionian);
1411+
expect(result).toEqual(cIonianSimilarModes);
1412+
});
1413+
1414+
it('returns correctly for an input of c natural lydian', () => {
1415+
const result = service.getSimilarModes(cLydianMode, Mode.lydian);
1416+
expect(result).toEqual(cLydianSimilarModes);
1417+
});
1418+
1419+
it('returns an empty array for a mode not in the StandardModePatterns array', () => {
1420+
const result = service.getSimilarModes(fSharpHarmonicMinor, Mode.harmonicMinor);
1421+
expect(result).toEqual([]);
1422+
});
1423+
});

0 commit comments

Comments
 (0)