5
5
< title > Step Sequencer: MDModemnz</ title >
6
6
< meta
7
7
name ="description "
8
- content ="Making an instrument with the Web Audio API "
9
- />
8
+ content ="Making an instrument with the Web Audio API " />
10
9
< meta
11
10
name ="viewport "
12
- content ="width=device-width, initial-scale=1, shrink-to-fit=no "
13
- />
11
+ content ="width=device-width, initial-scale=1, shrink-to-fit=no " />
14
12
< link rel ="stylesheet " type ="text/css " href ="style.css " />
15
13
</ head >
16
14
< body >
@@ -29,8 +27,7 @@ <h1>ModemDN</h1>
29
27
min ="60 "
30
28
max ="180 "
31
29
value ="120 "
32
- step ="1 "
33
- />
30
+ step ="1 " />
34
31
< span id ="bpmval "> 120</ span >
35
32
< input type ="checkbox " id ="playBtn " />
36
33
< label for ="playBtn "> Play</ label >
@@ -49,8 +46,7 @@ <h2>Sweep</h2>
49
46
min ="0 "
50
47
max ="1 "
51
48
value ="0.2 "
52
- step ="0.1 "
53
- />
49
+ step ="0.1 " />
54
50
< label for ="release "> Rel</ label >
55
51
< input
56
52
name ="release "
@@ -59,8 +55,7 @@ <h2>Sweep</h2>
59
55
min ="0 "
60
56
max ="1 "
61
57
value ="0.5 "
62
- step ="0.1 "
63
- />
58
+ step ="0.1 " />
64
59
</ section >
65
60
66
61
< section class ="pads ">
@@ -90,8 +85,7 @@ <h2>Pulse</h2>
90
85
min ="660 "
91
86
max ="1320 "
92
87
value ="880 "
93
- step ="1 "
94
- />
88
+ step ="1 " />
95
89
< label for ="lfo "> LFO</ label >
96
90
< input
97
91
name ="lfo "
@@ -100,8 +94,7 @@ <h2>Pulse</h2>
100
94
min ="20 "
101
95
max ="40 "
102
96
value ="30 "
103
- step ="1 "
104
- />
97
+ step ="1 " />
105
98
</ section >
106
99
<!--
107
100
@@ -110,13 +103,13 @@ <h2>Pulse</h2>
110
103
< input type ="checkbox " id ="v2n1 " />
111
104
< label for ="v2n1 "> Voice 2, Note 1</ label >
112
105
113
- < input type ="checkbox " id ="v1n2 " />
106
+ < input type ="checkbox " id ="v2n2 " />
114
107
< label for ="v2n2 "> Voice 2, Note 2</ label >
115
108
116
- < input type ="checkbox " id ="v1n3 " />
109
+ < input type ="checkbox " id ="v2n3 " />
117
110
< label for ="v2n3 "> Voice 2, Note 3</ label >
118
111
119
- < input type ="checkbox " id ="v1n4 " />
112
+ < input type ="checkbox " id ="v2n4 " />
120
113
< label for ="v2n4 "> Voice 2, Note 4</ label >
121
114
</ section >
122
115
</ section >
@@ -133,8 +126,7 @@ <h2>Noise</h2>
133
126
min ="0.25 "
134
127
max ="1 "
135
128
value ="1 "
136
- step ="0.25 "
137
- />
129
+ step ="0.25 " />
138
130
< label for ="band "> Band</ label >
139
131
< input
140
132
name ="band "
@@ -143,8 +135,7 @@ <h2>Noise</h2>
143
135
min ="400 "
144
136
max ="1200 "
145
137
value ="1000 "
146
- step ="5 "
147
- />
138
+ step ="5 " />
148
139
</ section >
149
140
150
141
< section class ="pads ">
@@ -174,8 +165,7 @@ <h2>DTMF</h2>
174
165
min ="0.1 "
175
166
max ="2 "
176
167
value ="1 "
177
- step ="0.1 "
178
- />
168
+ step ="0.1 " />
179
169
</ section >
180
170
<!--
181
171
@@ -216,7 +206,7 @@ <h2>DTMF</h2>
216
206
attackControl . addEventListener (
217
207
"input" ,
218
208
( ev ) => {
219
- attackTime = parseInt ( ev . target . value , 10 ) ;
209
+ attackTime = parseFloat ( ev . target . value ) ;
220
210
} ,
221
211
false
222
212
) ;
@@ -226,7 +216,7 @@ <h2>DTMF</h2>
226
216
releaseControl . addEventListener (
227
217
"input" ,
228
218
( ev ) => {
229
- releaseTime = parseInt ( ev . target . value , 10 ) ;
219
+ releaseTime = parseFloat ( ev . target . value ) ;
230
220
} ,
231
221
false
232
222
) ;
@@ -260,7 +250,7 @@ <h2>DTMF</h2>
260
250
hzControl . addEventListener (
261
251
"input" ,
262
252
( ev ) => {
263
- pulseHz = parseInt ( ev . target . value , 10 ) ;
253
+ pulseHz = parseFloat ( ev . target . value ) ;
264
254
} ,
265
255
false
266
256
) ;
@@ -270,7 +260,7 @@ <h2>DTMF</h2>
270
260
lfoControl . addEventListener (
271
261
"input" ,
272
262
( ev ) => {
273
- lfoHz = parseInt ( ev . target . value , 10 ) ;
263
+ lfoHz = parseFloat ( ev . target . value ) ;
274
264
} ,
275
265
false
276
266
) ;
@@ -314,7 +304,7 @@ <h2>DTMF</h2>
314
304
bandControl . addEventListener (
315
305
"input" ,
316
306
( ev ) => {
317
- bandHz = parseInt ( ev . target . value , 10 ) ;
307
+ bandHz = parseFloat ( ev . target . value ) ;
318
308
} ,
319
309
false
320
310
) ;
@@ -363,7 +353,7 @@ <h2>DTMF</h2>
363
353
rateControl . addEventListener (
364
354
"input" ,
365
355
( ev ) => {
366
- playbackRate = parseInt ( ev . target . value , 10 ) ;
356
+ playbackRate = parseFloat ( ev . target . value ) ;
367
357
} ,
368
358
false
369
359
) ;
@@ -395,7 +385,7 @@ <h2>DTMF</h2>
395
385
bpmControl . addEventListener (
396
386
"input" ,
397
387
( ev ) => {
398
- tempo = parseInt ( ev . target . value , 10 ) ;
388
+ tempo = parseFloat ( ev . target . value ) ;
399
389
bpmValEl . innerText = tempo ;
400
390
} ,
401
391
false
@@ -449,7 +439,7 @@ <h2>DTMF</h2>
449
439
}
450
440
451
441
// Draw function to update the UI, so we can see when the beat progress.
452
- // This is a loop: it reschudele itself to redraw at the end.
442
+ // This is a loop: it reschedules itself to redraw at the end.
453
443
let lastNoteDrawn = 3 ;
454
444
function draw ( ) {
455
445
let drawNote = lastNoteDrawn ;
0 commit comments