Skip to content

Commit 19dabb1

Browse files
committed
Reorganize
1 parent 44d5e90 commit 19dabb1

File tree

12 files changed

+104
-150
lines changed

12 files changed

+104
-150
lines changed

.eslintignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
src/bundle.js
1+
src/bundle.js
2+
src/ref/*.js

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
*.vsix
55
media
66
node_modules
7-
package-lock.json
7+
package-lock.json
8+
src/ref

jsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
},
1010
"exclude": [
1111
"node_modules",
12-
"src/bundle.js"
12+
"src/bundle.js",
13+
"src/ref"
1314
]
1415
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"jquery": "^3.3.1",
4949
"pug": "^2.0.3",
5050
"semantic-ui-css": "^2.4.1",
51-
"vue": "^2.6.2",
51+
"vue": "^2.6.6",
5252
"webpack": "^4.29.3"
5353
}
5454
}

src/bundle.js

Lines changed: 1 addition & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/controller.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
const canvasElement = document.getElementById('canvas')
2+
const canvasContext = canvasElement.getContext('2d')
3+
const WIDTH = canvasElement.width = window.innerWidth
4+
const HEIGHT = canvasElement.height = 512
5+
6+
let audioCtx = new AudioContext()
7+
let analyser = audioCtx.createAnalyser()
8+
analyser.smoothingTimeConstant = 0.0
9+
analyser.fftSize = 1024
10+
11+
let bufferLength = analyser.frequencyBinCount
12+
let eightBufferLength = 8 * bufferLength
13+
let dataArray = new Uint8Array(bufferLength)
14+
15+
let imageDataFrame = canvasContext.createImageData(2, canvasElement.height)
16+
for (let i = 0; i < imageDataFrame.data.length * 4; i += 8) {
17+
for(let j = 3; j <= 7; j++) {
18+
imageDataFrame.data[i + j] = 255 // = 0,0,0,255|255,255,255,255
19+
}
20+
}
21+
22+
function getData() {
23+
let request = new XMLHttpRequest()
24+
request.open('GET', rootPath, true)
25+
request.responseType = 'arraybuffer'
26+
27+
request.onload = () => {
28+
var audioData = request.response
29+
30+
audioCtx.decodeAudioData(audioData, buffer => {
31+
32+
let offlineCtx = new OfflineAudioContext(2, buffer.length, 44100)
33+
let source = offlineCtx.createBufferSource()
34+
source.buffer = buffer
35+
36+
source.connect(offlineCtx.destination)
37+
source.start()
38+
39+
offlineCtx
40+
.startRendering()
41+
.then(renderedBuffer => {
42+
const song = audioCtx.createBufferSource()
43+
song.buffer = renderedBuffer
44+
45+
song.connect(audioCtx.destination)
46+
song.connect(analyser)
47+
// // play.onclick = function() {
48+
// song.playbackRate.value = 2
49+
song.start()
50+
// }
51+
song.onended = function(e) {
52+
console.log('finished')
53+
}
54+
analyser.getByteFrequencyData(dataArray)
55+
draw()
56+
})
57+
.catch(err => {
58+
console.log('Rendering failed: ' + err)
59+
// Note: The promise should reject when startRendering is called a second time on an OfflineAudioContext
60+
})
61+
})
62+
}
63+
request.send()
64+
}
65+
66+
getData()
67+
68+
let x= 0
69+
function draw() {
70+
requestAnimationFrame(draw)
71+
analyser.getByteFrequencyData(dataArray)
72+
for (let i = 0, y = eightBufferLength; i < bufferLength; i++, y -= 8) {
73+
imageDataFrame.data[y] = dataArray[i]
74+
}
75+
canvasContext.putImageData(imageDataFrame, x, 0)
76+
x < WIDTH ? x++ : x = 0
77+
}

src/custom.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.vsc_bg {
2+
background-color: #1e1e1e;
3+
}
4+
.overflow{
5+
overflow: scroll;
6+
}

src/extension.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ const pug = require('pug')
55
const path = require('path')
66
const jquery_path = require.resolve('jquery')
77
const semjs_path = require.resolve('semantic-ui-css')
8-
let semcss_path = require.resolve('semantic-ui-css/semantic.min.css');
8+
const semcss_path = require.resolve('semantic-ui-css/semantic.min.css');
99

10-
// const p5 = require('p5')
1110
/**
1211
* @param {vscode.ExtensionContext} context
1312
*/
@@ -31,19 +30,19 @@ function activate(context) {
3130
// And restric the webview to only loading content from our extension's `media` directory.
3231
// localResourceRoots: [vscode.Uri.file(path.join(extensionPath, 'media'))]
3332
})
34-
const vue_template_uri = (vscode.Uri.file(path.join(context.extensionPath, 'src', 'vue_template.js'))).with({scheme: 'vscode-resource'})
35-
const song_path = (vscode.Uri.file(path.join(context.extensionPath, 'angel.mp3'))).with({scheme: 'vscode-resource'})
36-
const sk_uri = (vscode.Uri.file(path.join(context.extensionPath, 'src', 'bundle.js'))).with({scheme: 'vscode-resource'})
33+
const song_path = (vscode.Uri.file(path.join(context.extensionPath, 'beat.mp3'))).with({scheme: 'vscode-resource'})
34+
const bundle_uri = (vscode.Uri.file(path.join(context.extensionPath, 'src', 'bundle.js'))).with({scheme: 'vscode-resource'})
35+
const ctmcss_uri = (vscode.Uri.file(path.join(context.extensionPath, 'src', 'custom.css'))).with({scheme: 'vscode-resource'})
3736
const semjs_uri = (vscode.Uri.file(semjs_path)).with({scheme: 'vscode-resource'})
3837
const semcss_uri = (vscode.Uri.file(semcss_path)).with({scheme: 'vscode-resource'})
3938
const jquery_uri = (vscode.Uri.file(jquery_path)).with({scheme: 'vscode-resource'})
4039

4140
wv.webview.html = compiledFunction({
42-
sk_uri: sk_uri,
41+
bundle_uri: bundle_uri,
42+
jquery_uri: jquery_uri,
4343
semjs_uri: semjs_uri,
4444
semcss_uri: semcss_uri,
45-
vue_uri: vue_template_uri,
46-
jquery_uri: jquery_uri,
45+
ctmcss_uri: ctmcss_uri,
4746
song_path: song_path,
4847
nonce: '123'
4948
})

src/index.pug

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,14 @@ html
33
title Audio
44
meta(charset='UTF-8')
55
meta(http-equiv='Content-Security-Policy',
6-
content=`default-src 'none' file:; img-src vscode-resource: https:; script-src 'nonce-${nonce}'; style-src 'nonce-${nonce}' https:; font-src data: vscode-resource: https:; worker-src blob:; connect-src vscode-resource:`)
6+
content=`default-src 'none'; img-src vscode-resource: https:; script-src 'nonce-${nonce}'; style-src 'nonce-${nonce}' https:; font-src data: vscode-resource: https:; worker-src blob:; connect-src vscode-resource:`)
77
meta(name='viewport', content='width=device-width, initial-scale=1.0')
88
script(nonce=`${nonce}`).
99
rootPath = '#{song_path}'
1010
script(nonce=`${nonce}`, src=`${jquery_uri}`)
1111
script(nonce=`${nonce}`, src=`${semjs_uri}`)
12-
script(nonce=`${nonce}`, src=`${vue_uri}`)
1312
link(nonce=`${nonce}`, rel='stylesheet', type="text/css", href=`${semcss_uri}`)
14-
body
15-
p hello world
16-
canvas#canvas(height='512', width='800')
17-
script(nonce=`${nonce}`, src=`${sk_uri}`)
18-
13+
link(nonce=`${nonce}`, rel='stylesheet', type='text/css', href=`${ctmcss_uri}`)
14+
body.vsc_bg.overflow
15+
canvas#canvas
16+
script(nonce=`${nonce}`, src=`${bundle_uri}`)

src/sketch.js

Lines changed: 0 additions & 121 deletions
This file was deleted.

0 commit comments

Comments
 (0)