-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathaudioMode.js
76 lines (64 loc) · 1.86 KB
/
audioMode.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function AudioMode(num, volumes){
this.num = num;
this.numOfSettings = 3;
this.audioModes = ['Practice', 'Sonify', 'Perform'];
this.musicVol = volumes.musicVol;
this.voice = volumes.voice;
this.controlsVol = volumes.controlsVol;
this.setDefaults = function() {
this.musicVol.volume.value = -18;
this.voice.setVolume(1);
this.controlsVol.volume.value = 0;
}
this.getMode = function() {
return this.audioModes[this.num];
}
this.changeSettingTo = function(num){
this.num = mod(num, this.numOfSettings);
this.setMode();
}
this.changeSettingRight = function() {
this.num = mod(this.num += 1, this.numOfSettings);
this.speakMode();
this.setMode();
}
this.changeSettingLeft = function() {
this.num = mod(this.num -= 1, this.numOfSettings);
this.speakMode();
this.setMode();
}
this.setMode = function() {
switch(this.num) {
case 0:
this.setToPractice();
break;
case 1:
this.setToSonify();
break;
case 2:
this.setToPerform();
}
}
this.setToPractice = function() {
this.musicVol.volume.rampTo(-18, 1);
this.voice.setVolume(1);
this.controlsVol.volume.rampTo(0, 1);
}
this.setToSonify = function() {
this.musicVol.volume.rampTo(-10, 1);
this.voice.setVolume(1);
this.controlsVol.volume.rampTo(0, 1);
}
this.setToPerform = function() {
this.musicVol.volume.rampTo(0, 1);
this.voice.setVolume(0);
this.controlsVol.volume.rampTo(-30, 1);
}
this.speakMode = function() {
this.voice.setVolume(1);
this.voice.speak(this.getMode());
}
}
function mod(n, m) {
return ((n % m) + m) % m;
}