-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
113 lines (111 loc) · 3.49 KB
/
index.html
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<script src="./lib/midi-parser.js"></script>
<script src="./lib/encode.js"></script>
<script src="./lib/ffmpeg.js"></script>
<script src="./lib/notes.js"></script>
<script src="./lib/read-midi.js"></script>
<script src="./lib/bundle.js"></script>
<script src="./lib/web-audio.js"></script>
<script src="./lib/index.js"></script>
<script src="./lib/fft/real.js"></script>
<script src="./lib/fft/complex.js"></script>
<style>
* {
font-family: Calibri, Candara, Segoe, Segoe UI, Optima, Arial, sans-serif;
color: white;
background-color: rgb(29, 29, 29);
}
.number {
width: 60px;
}
</style>
<body>
MIDI File:
<input id="MIDI" type="file" name="file" />
<br />
Audio File:
<input id="AUDIO" type="file" name="file" />
<br />
<input type="checkbox" class="length">MIDI-Controlled Length</input>
<br />
Minimum Note Length:
<span class="sensorControllable">
<input type="range" class="minimum" min="0" max="1" step="0.001" value="0.25" />
</span>
<br />
Maximum Note Length:
<span class="sensorControllable">
<input type="range" class="maximum" min="0" max="1" step="0.001" value="1" />
</span>
<br />
Gain:
<span class="sensorControllable">
<input type="range" class="gain" min="0" max="1" step="0.001" value="1" />
</span>
<br />
Effect:
<select id="effect">
<option value="delay">Delay</option>
<option value="reverb">Reverb</option>
<option value="distortion">Distortion</option>
<option value="none" selected>None</option>
</select>
<div class="delayControl" hidden>
Feedback:
<span class="sensorControllable">
<input type="range" class="feedback" min="0" max="1" step="0.001" />
</span>
<br />
Delay Time:
<span class="sensorControllable">
<input type="range" class="delayTime" min="1" max="1000" step="0.001" />
</span>
<br />
Wet Level:
<span class="sensorControllable">
<input type="range" class="wetLevel" min="0" max="1" step="0.001" />
</span>
<br />
Dry Level:
<span class="sensorControllable">
<input type="range" class="dryLevel" min="0" max="1" step="0.001" />
</span>
<br />
</div>
<div class="distortionControl" hidden>
<span class="sensorControllable">
Multiplier:
<input type="number" class="distortionValue number" min="0" step="1" max="5" value="1.5" />
</span>
</span>
<br />
</div>
<div class="reverbFile" hidden>
Impulse Response:
<input id="REVERB" type="file" name="file" />
<br />
<span class="sensorControllable">
Low Cut:
<input type="number" class="lowCut number" min="0" step="1" max="22030" value="0" />
</span>
<br />
<span class="sensorControllable">
High Cut:
<input type="number" class="highCut number" min="0" step="1" max="22030" value="22030" />
</span>
</div>
<br />
<input type="checkbox" class="sensor">Sensor Input</input>
<br />
<span class="sensorInfo" hidden>
Right-click on a slider or input field to select as the sensor target!
<br />
</span>
<br />
<button onclick="run();">
Run
</button>
<button onclick="stop();">
Stop
</button>
<input type="checkbox" class="live">Live</input>
</body>