Spaces:
Running
on
Zero
Running
on
Zero
scroll bar
Browse files- javascript/app.js +13 -8
javascript/app.js
CHANGED
@@ -116,6 +116,7 @@ class MidiVisualizer extends HTMLElement{
|
|
116 |
for (let i=0;i<16;i++){
|
117 |
this.patches.push([[0,0]])
|
118 |
}
|
|
|
119 |
this.trackList = null
|
120 |
this.pianoRoll = null;
|
121 |
this.svg = null;
|
@@ -124,6 +125,10 @@ class MidiVisualizer extends HTMLElement{
|
|
124 |
noteHeight : 4,
|
125 |
beatWidth: 32
|
126 |
}
|
|
|
|
|
|
|
|
|
127 |
this.timePreBeat = 16
|
128 |
this.svgWidth = 0;
|
129 |
this.t1 = 0;
|
@@ -142,18 +147,16 @@ class MidiVisualizer extends HTMLElement{
|
|
142 |
this.innerHTML=''
|
143 |
const shadow = this.attachShadow({mode: 'open'});
|
144 |
const style = document.createElement("style");
|
|
|
145 |
const container = document.createElement('div');
|
146 |
container.style.display="flex";
|
147 |
-
container.style.height=`${this.config.noteHeight*128}px`;
|
148 |
const trackListContainer = document.createElement('div');
|
149 |
trackListContainer.style.width = "260px";
|
150 |
trackListContainer.style.minWidth = "260px";
|
151 |
trackListContainer.style.height = "100%";
|
152 |
trackListContainer.style.display="flex";
|
153 |
trackListContainer.style.flexDirection="column";
|
154 |
-
if (isMobile()){
|
155 |
-
trackListContainer.style.display = "none";
|
156 |
-
}
|
157 |
const trackList = document.createElement('div');
|
158 |
trackList.style.width = "100%";
|
159 |
trackList.style.height = "100%";
|
@@ -171,7 +174,6 @@ class MidiVisualizer extends HTMLElement{
|
|
171 |
allTrackBtn.textContent = "All";
|
172 |
allTrackBtn.style.width = "50%";
|
173 |
allTrackBtn.style.height = "100%";
|
174 |
-
allTrackBtn.style.backgroundColor = "transparent";
|
175 |
allTrackBtn.style.border = "none";
|
176 |
allTrackBtn.style.cursor = 'pointer';
|
177 |
let self = this;
|
@@ -184,7 +186,6 @@ class MidiVisualizer extends HTMLElement{
|
|
184 |
noneTrackBtn.textContent = "None";
|
185 |
noneTrackBtn.style.width = "50%";
|
186 |
noneTrackBtn.style.height = "100%";
|
187 |
-
noneTrackBtn.style.backgroundColor = "transparent";
|
188 |
noneTrackBtn.style.border = "none";
|
189 |
noneTrackBtn.style.cursor = 'pointer';
|
190 |
noneTrackBtn.onclick = function (){
|
@@ -193,7 +194,6 @@ class MidiVisualizer extends HTMLElement{
|
|
193 |
});
|
194 |
};
|
195 |
const pianoRoll = document.createElement('div');
|
196 |
-
style.textContent = ".note.active {stroke: black;stroke-width: 0.75;stroke-opacity: 0.75;}";
|
197 |
pianoRoll.style.overflowX= "scroll";
|
198 |
pianoRoll.style.flexGrow="1";
|
199 |
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
@@ -201,8 +201,12 @@ class MidiVisualizer extends HTMLElement{
|
|
201 |
svg.style.width = `${this.svgWidth}px`;
|
202 |
const timeLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
|
203 |
timeLine.style.stroke = "green"
|
204 |
-
timeLine.style.strokeWidth = 2;
|
205 |
|
|
|
|
|
|
|
|
|
206 |
shadow.appendChild(style)
|
207 |
shadow.appendChild(container);
|
208 |
container.appendChild(trackListContainer);
|
@@ -213,6 +217,7 @@ class MidiVisualizer extends HTMLElement{
|
|
213 |
container.appendChild(pianoRoll);
|
214 |
pianoRoll.appendChild(svg);
|
215 |
svg.appendChild(timeLine)
|
|
|
216 |
this.trackList = trackList;
|
217 |
this.pianoRoll = pianoRoll;
|
218 |
this.svg = svg;
|
|
|
116 |
for (let i=0;i<16;i++){
|
117 |
this.patches.push([[0,0]])
|
118 |
}
|
119 |
+
this.container = null;
|
120 |
this.trackList = null
|
121 |
this.pianoRoll = null;
|
122 |
this.svg = null;
|
|
|
125 |
noteHeight : 4,
|
126 |
beatWidth: 32
|
127 |
}
|
128 |
+
if (isMobile()){
|
129 |
+
this.config.noteHeight = 1;
|
130 |
+
this.config.beatWidth = 16;
|
131 |
+
}
|
132 |
this.timePreBeat = 16
|
133 |
this.svgWidth = 0;
|
134 |
this.t1 = 0;
|
|
|
147 |
this.innerHTML=''
|
148 |
const shadow = this.attachShadow({mode: 'open'});
|
149 |
const style = document.createElement("style");
|
150 |
+
style.textContent = ".note.active {stroke: black;stroke-width: 0.75;stroke-opacity: 0.75;}";
|
151 |
const container = document.createElement('div');
|
152 |
container.style.display="flex";
|
153 |
+
container.style.height=`${this.config.noteHeight*128 + 25}px`;
|
154 |
const trackListContainer = document.createElement('div');
|
155 |
trackListContainer.style.width = "260px";
|
156 |
trackListContainer.style.minWidth = "260px";
|
157 |
trackListContainer.style.height = "100%";
|
158 |
trackListContainer.style.display="flex";
|
159 |
trackListContainer.style.flexDirection="column";
|
|
|
|
|
|
|
160 |
const trackList = document.createElement('div');
|
161 |
trackList.style.width = "100%";
|
162 |
trackList.style.height = "100%";
|
|
|
174 |
allTrackBtn.textContent = "All";
|
175 |
allTrackBtn.style.width = "50%";
|
176 |
allTrackBtn.style.height = "100%";
|
|
|
177 |
allTrackBtn.style.border = "none";
|
178 |
allTrackBtn.style.cursor = 'pointer';
|
179 |
let self = this;
|
|
|
186 |
noneTrackBtn.textContent = "None";
|
187 |
noneTrackBtn.style.width = "50%";
|
188 |
noneTrackBtn.style.height = "100%";
|
|
|
189 |
noneTrackBtn.style.border = "none";
|
190 |
noneTrackBtn.style.cursor = 'pointer';
|
191 |
noneTrackBtn.onclick = function (){
|
|
|
194 |
});
|
195 |
};
|
196 |
const pianoRoll = document.createElement('div');
|
|
|
197 |
pianoRoll.style.overflowX= "scroll";
|
198 |
pianoRoll.style.flexGrow="1";
|
199 |
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
|
201 |
svg.style.width = `${this.svgWidth}px`;
|
202 |
const timeLine = document.createElementNS('http://www.w3.org/2000/svg', 'line');
|
203 |
timeLine.style.stroke = "green"
|
204 |
+
timeLine.style.strokeWidth = "2";
|
205 |
|
206 |
+
if (isMobile()){
|
207 |
+
trackListContainer.style.display = "none";
|
208 |
+
timeLine.style.strokeWidth = "1";
|
209 |
+
}
|
210 |
shadow.appendChild(style)
|
211 |
shadow.appendChild(container);
|
212 |
container.appendChild(trackListContainer);
|
|
|
217 |
container.appendChild(pianoRoll);
|
218 |
pianoRoll.appendChild(svg);
|
219 |
svg.appendChild(timeLine)
|
220 |
+
this.container = container;
|
221 |
this.trackList = trackList;
|
222 |
this.pianoRoll = pianoRoll;
|
223 |
this.svg = svg;
|